diff --git a/.travis.yml b/.travis.yml index e7f5e8ca6c9..2707f49afa6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,5 +16,5 @@ install: - if [[ $OS != "macos" ]]; then docker run -d -p 4569:4569 lphoward/fake-s3; fi script: - - travis_wait 30 swift build + - travis_wait 40 swift build - if [[ $OS != "macos" ]]; then swift test; fi diff --git a/Package.resolved b/Package.resolved index 7d1cd339a30..d99cd9c28eb 100644 --- a/Package.resolved +++ b/Package.resolved @@ -6,8 +6,8 @@ "repositoryURL": "https://github.com/noppoMan/aws-sdk-swift-core.git", "state": { "branch": null, - "revision": "4adb01cf6cac6471783477e1ec8330dbf96ebce1", - "version": "1.0.5" + "revision": "d5182811d91b0870cd4352b0bcf2560bdc509838", + "version": "1.0.6" } }, { diff --git a/Sources/AWSSDKSwift/Services/AWSMigrationHub/AWSMigrationHub_API.swift b/Sources/AWSSDKSwift/Services/AWSMigrationHub/AWSMigrationHub_API.swift new file mode 100644 index 00000000000..741ce167b05 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/AWSMigrationHub/AWSMigrationHub_API.swift @@ -0,0 +1,109 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** + +*/ +public struct AWSMigrationHub { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "AWSMigrationHub", + service: "mgh", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-05-31", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [AWSMigrationHubError.self] + ) + } + + /// Retrieves a list of all attributes associated with a specific migration task. + public func describeMigrationTask(_ input: DescribeMigrationTaskRequest) throws -> DescribeMigrationTaskResult { + return try client.send(operation: "DescribeMigrationTask", path: "/", httpMethod: "POST", input: input) + } + + /// Disassociate an Application Discovery Service (ADS) discovered resource from a migration task. + public func disassociateDiscoveredResource(_ input: DisassociateDiscoveredResourceRequest) throws -> DisassociateDiscoveredResourceResult { + return try client.send(operation: "DisassociateDiscoveredResource", path: "/", httpMethod: "POST", input: input) + } + + /// Provides identifying details of the resource being migrated so that it can be associated in the Application Discovery Service (ADS)'s repository. This association occurs asynchronously after PutResourceAttributes returns. Keep in mind that subsequent calls to PutResourceAttributes will override previously stored attributes. For example, if it is first called with a MAC address, but later, it is desired to add an IP address, it will then be required to call it with both the IP and MAC addresses to prevent overiding the MAC address. Because this is an asynchronous call, it will always return 200, whether an association occurs or not. To confirm if an association was found based on the provided details, call ListAssociatedResource. + public func putResourceAttributes(_ input: PutResourceAttributesRequest) throws -> PutResourceAttributesResult { + return try client.send(operation: "PutResourceAttributes", path: "/", httpMethod: "POST", input: input) + } + + /// Associates a created artifact of an AWS cloud resource, the target receiving the migration, with the migration task performed by a migration tool. This API has the following traits: Migration tools can call the AssociateCreatedArtifact operation to indicate which AWS artifact is associated with a migration task. The created artifact name must be provided in ARN (Amazon Resource Name) format which will contain information about type and region; for example: arn:aws:ec2:us-east-1:488216288981:image/ami-6d0ba87b. Examples of the AWS resource behind the created artifact are, AMI's, EC2 instance, or DMS endpoint, etc. + public func associateCreatedArtifact(_ input: AssociateCreatedArtifactRequest) throws -> AssociateCreatedArtifactResult { + return try client.send(operation: "AssociateCreatedArtifact", path: "/", httpMethod: "POST", input: input) + } + + /// Disassociates a created artifact of an AWS resource with a migration task performed by a migration tool that was previously associated. This API has the following traits: A migration user can call the DisassociateCreatedArtifacts operation to disassociate a created AWS Artifact from a migration task. The created artifact name must be provided in ARN (Amazon Resource Name) format which will contain information about type and region; for example: arn:aws:ec2:us-east-1:488216288981:image/ami-6d0ba87b. Examples of the AWS resource behind the created artifact are, AMI's, EC2 instance, or RDS instance, etc. + public func disassociateCreatedArtifact(_ input: DisassociateCreatedArtifactRequest) throws -> DisassociateCreatedArtifactResult { + return try client.send(operation: "DisassociateCreatedArtifact", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the created artifacts attached to a given migration task in an update stream. This API has the following traits: Gets the list of the created artifacts while migration is taking place. Shows the artifacts created by the migration tool that was associated by the AssociateCreatedArtifact API. Lists created artifacts in a paginated interface. + public func listCreatedArtifacts(_ input: ListCreatedArtifactsRequest) throws -> ListCreatedArtifactsResult { + return try client.send(operation: "ListCreatedArtifacts", path: "/", httpMethod: "POST", input: input) + } + + /// Notifies Migration Hub of the current status, progress, or other detail regarding a migration task. This API has the following traits: Migration tools will call the NotifyMigrationTaskState API to share the latest progress and status. MigrationTaskName is used for addressing updates to the correct target. ProgressUpdateStream is used for access control and to provide a namespace for each migration tool. + public func notifyMigrationTaskState(_ input: NotifyMigrationTaskStateRequest) throws -> NotifyMigrationTaskStateResult { + return try client.send(operation: "NotifyMigrationTaskState", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a progress update stream, including all of its tasks, which was previously created as an AWS resource used for access control. This API has the following traits: The only parameter needed for DeleteProgressUpdateStream is the stream name (same as a CreateProgressUpdateStream call). The call will return, and a background process will asynchronously be doing the actual delete of the stream and all of its resources (tasks, associated resources, resource attributes, created artifacts). If the stream takes time to be deleted, it might still show up on a ListProgressUpdateStreams call. CreateProgressUpdateStream, ImportMigrationTask, NotifyMigrationTaskState, and all Associate[*] APIs realted to the tasks belonging to the stream will throw "InvalidInputException" if the stream of the same name is in the process of being deleted. Once the stream and all of its resources are deleted, CreateProgressUpdateStream for a stream of the same name will succeed, and that stream will be an entirely new logical resource (without any resources associated with the old stream). + public func deleteProgressUpdateStream(_ input: DeleteProgressUpdateStreamRequest) throws -> DeleteProgressUpdateStreamResult { + return try client.send(operation: "DeleteProgressUpdateStream", path: "/", httpMethod: "POST", input: input) + } + + /// Lists all, or filtered by resource name, migration tasks associated with the user account making this call. This API has the following traits: Can show a summary list of the most recent migration tasks. Can show a summary list of migration tasks associated with a given discovered resource. Lists migration tasks in a paginated interface. + public func listMigrationTasks(_ input: ListMigrationTasksRequest) throws -> ListMigrationTasksResult { + return try client.send(operation: "ListMigrationTasks", path: "/", httpMethod: "POST", input: input) + } + + /// Associates a discovered resource ID from Application Discovery Service (ADS) with a migration task. + public func associateDiscoveredResource(_ input: AssociateDiscoveredResourceRequest) throws -> AssociateDiscoveredResourceResult { + return try client.send(operation: "AssociateDiscoveredResource", path: "/", httpMethod: "POST", input: input) + } + + /// Gets the migration status of an application. + public func describeApplicationState(_ input: DescribeApplicationStateRequest) throws -> DescribeApplicationStateResult { + return try client.send(operation: "DescribeApplicationState", path: "/", httpMethod: "POST", input: input) + } + + /// Registers a new migration task which represents a server, database, etc., being migrated to AWS by a migration tool. This API is a prerequisite to calling the NotifyMigrationTaskState API as the migration tool must first register the migration task with Migration Hub. + public func importMigrationTask(_ input: ImportMigrationTaskRequest) throws -> ImportMigrationTaskResult { + return try client.send(operation: "ImportMigrationTask", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a progress update stream which is an AWS resource used for access control as well as a namespace for migration task names that is implicitly linked to your AWS account. It must uniquely identify the migration tool as it is used for all updates made by the tool; however, it does not need to be unique for each AWS account because it is scoped to the AWS account. + public func createProgressUpdateStream(_ input: CreateProgressUpdateStreamRequest) throws -> CreateProgressUpdateStreamResult { + return try client.send(operation: "CreateProgressUpdateStream", path: "/", httpMethod: "POST", input: input) + } + + /// Lists progress update streams associated with the user account making this call. + public func listProgressUpdateStreams(_ input: ListProgressUpdateStreamsRequest) throws -> ListProgressUpdateStreamsResult { + return try client.send(operation: "ListProgressUpdateStreams", path: "/", httpMethod: "POST", input: input) + } + + /// Lists discovered resources associated with the given MigrationTask. + public func listDiscoveredResources(_ input: ListDiscoveredResourcesRequest) throws -> ListDiscoveredResourcesResult { + return try client.send(operation: "ListDiscoveredResources", path: "/", httpMethod: "POST", input: input) + } + + /// Sets the migration state of an application. For a given application identified by the value passed to ApplicationId, its status is set or updated by passing one of three values to Status: NOT_STARTED | IN_PROGRESS | COMPLETED. + public func notifyApplicationState(_ input: NotifyApplicationStateRequest) throws -> NotifyApplicationStateResult { + return try client.send(operation: "NotifyApplicationState", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/AWSMigrationHub/AWSMigrationHub_Error.swift b/Sources/AWSSDKSwift/Services/AWSMigrationHub/AWSMigrationHub_Error.swift new file mode 100644 index 00000000000..d149027ef4d --- /dev/null +++ b/Sources/AWSSDKSwift/Services/AWSMigrationHub/AWSMigrationHub_Error.swift @@ -0,0 +1,44 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for AWSMigrationHub +public enum AWSMigrationHubError: AWSErrorType { + case accessDeniedException(message: String?) + case internalServerError(message: String?) + case serviceUnavailableException(message: String?) + case invalidInputException(message: String?) + case resourceNotFoundException(message: String?) + case dryRunOperation(message: String?) + case unauthorizedOperation(message: String?) + case policyErrorException(message: String?) +} + +extension AWSMigrationHubError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "AccessDeniedException": + self = .accessDeniedException(message: message) + case "InternalServerError": + self = .internalServerError(message: message) + case "ServiceUnavailableException": + self = .serviceUnavailableException(message: message) + case "InvalidInputException": + self = .invalidInputException(message: message) + case "ResourceNotFoundException": + self = .resourceNotFoundException(message: message) + case "DryRunOperation": + self = .dryRunOperation(message: message) + case "UnauthorizedOperation": + self = .unauthorizedOperation(message: message) + case "PolicyErrorException": + self = .policyErrorException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/AWSMigrationHub/AWSMigrationHub_Shapes.swift b/Sources/AWSSDKSwift/Services/AWSMigrationHub/AWSMigrationHub_Shapes.swift new file mode 100644 index 00000000000..54a1d39000d --- /dev/null +++ b/Sources/AWSSDKSwift/Services/AWSMigrationHub/AWSMigrationHub_Shapes.swift @@ -0,0 +1,815 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension AWSMigrationHub { + + public struct DeleteProgressUpdateStreamResult: AWSShape { + + } + + public struct CreatedArtifact: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// An ARN that uniquely identifies the result of a migration task. + public let name: String + /// A description that can be free-form text to record additional detail about the artifact for clarity or for later reference. + public let description: String? + + public init(name: String, description: String? = nil) { + self.name = name + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case description = "Description" + } + } + + public struct ListMigrationTasksRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ResourceName", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken. + public let nextToken: String? + /// Filter migration tasks by discovered resource name. + public let resourceName: String? + /// Value to specify how many results are returned per page. + public let maxResults: Int32? + + public init(nextToken: String? = nil, resourceName: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.resourceName = resourceName + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case resourceName = "ResourceName" + case maxResults = "MaxResults" + } + } + + public struct DiscoveredResource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConfigurationId", required: true, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The configurationId in ADS that uniquely identifies the on-premise resource. + public let configurationId: String + /// A description that can be free-form text to record additional detail about the discovered resource for clarity or later reference. + public let description: String? + + public init(configurationId: String, description: String? = nil) { + self.configurationId = configurationId + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case configurationId = "ConfigurationId" + case description = "Description" + } + } + + public struct PutResourceAttributesResult: AWSShape { + + } + + public struct DisassociateCreatedArtifactRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: true, type: .string), + AWSShapeMember(label: "CreatedArtifactName", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "ProgressUpdateStream", required: true, type: .string) + ] + /// Unique identifier that references the migration task to be disassociated with the artifact. + public let migrationTaskName: String + /// An ARN of the AWS resource related to the migration (e.g., AMI, EC2 instance, RDS instance, etc.) + public let createdArtifactName: String + /// Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. + public let dryRun: Bool? + /// The name of the ProgressUpdateStream. + public let progressUpdateStream: String + + public init(migrationTaskName: String, createdArtifactName: String, dryRun: Bool? = nil, progressUpdateStream: String) { + self.migrationTaskName = migrationTaskName + self.createdArtifactName = createdArtifactName + self.dryRun = dryRun + self.progressUpdateStream = progressUpdateStream + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case createdArtifactName = "CreatedArtifactName" + case dryRun = "DryRun" + case progressUpdateStream = "ProgressUpdateStream" + } + } + + public struct ListMigrationTasksResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MigrationTaskSummaryList", required: false, type: .list) + ] + /// If there are more migration tasks than the max result, return the next token to be passed to the next call as a bookmark of where to start from. + public let nextToken: String? + /// Lists the migration task's summary which includes: MigrationTaskName, ProgressPercent, ProgressUpdateStream, Status, and the UpdateDateTime for each task. + public let migrationTaskSummaryList: [MigrationTaskSummary]? + + public init(nextToken: String? = nil, migrationTaskSummaryList: [MigrationTaskSummary]? = nil) { + self.nextToken = nextToken + self.migrationTaskSummaryList = migrationTaskSummaryList + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case migrationTaskSummaryList = "MigrationTaskSummaryList" + } + } + + public struct NotifyMigrationTaskStateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: true, type: .string), + AWSShapeMember(label: "NextUpdateSeconds", required: true, type: .integer), + AWSShapeMember(label: "UpdateDateTime", required: true, type: .timestamp), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "Task", required: true, type: .structure), + AWSShapeMember(label: "ProgressUpdateStream", required: true, type: .string) + ] + /// Unique identifier that references the migration task. + public let migrationTaskName: String + /// Number of seconds after the UpdateDateTime within which the Migration Hub can expect an update. If Migration Hub does not receive an update within the specified interval, then the migration task will be considered stale. + public let nextUpdateSeconds: Int32 + /// The timestamp when the task was gathered. + public let updateDateTime: TimeStamp + /// Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. + public let dryRun: Bool? + /// Information about the task's progress and status. + public let task: Task + /// The name of the ProgressUpdateStream. + public let progressUpdateStream: String + + public init(migrationTaskName: String, nextUpdateSeconds: Int32, updateDateTime: TimeStamp, dryRun: Bool? = nil, task: Task, progressUpdateStream: String) { + self.migrationTaskName = migrationTaskName + self.nextUpdateSeconds = nextUpdateSeconds + self.updateDateTime = updateDateTime + self.dryRun = dryRun + self.task = task + self.progressUpdateStream = progressUpdateStream + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case nextUpdateSeconds = "NextUpdateSeconds" + case updateDateTime = "UpdateDateTime" + case dryRun = "DryRun" + case task = "Task" + case progressUpdateStream = "ProgressUpdateStream" + } + } + + public enum Status: String, CustomStringConvertible, Codable { + case notStarted = "NOT_STARTED" + case inProgress = "IN_PROGRESS" + case failed = "FAILED" + case completed = "COMPLETED" + public var description: String { return self.rawValue } + } + + public struct AssociateDiscoveredResourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "ProgressUpdateStream", required: true, type: .string), + AWSShapeMember(label: "DiscoveredResource", required: true, type: .structure) + ] + /// The identifier given to the MigrationTask. + public let migrationTaskName: String + /// Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. + public let dryRun: Bool? + /// The name of the ProgressUpdateStream. + public let progressUpdateStream: String + /// Object representing a Resource. + public let discoveredResource: DiscoveredResource + + public init(migrationTaskName: String, dryRun: Bool? = nil, progressUpdateStream: String, discoveredResource: DiscoveredResource) { + self.migrationTaskName = migrationTaskName + self.dryRun = dryRun + self.progressUpdateStream = progressUpdateStream + self.discoveredResource = discoveredResource + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case dryRun = "DryRun" + case progressUpdateStream = "ProgressUpdateStream" + case discoveredResource = "DiscoveredResource" + } + } + + public struct NotifyApplicationStateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", required: true, type: .string), + AWSShapeMember(label: "Status", required: true, type: .enum), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// The configurationId in ADS that uniquely identifies the grouped application. + public let applicationId: String + /// Status of the application - Not Started, In-Progress, Complete. + public let status: ApplicationStatus + /// Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. + public let dryRun: Bool? + + public init(applicationId: String, status: ApplicationStatus, dryRun: Bool? = nil) { + self.applicationId = applicationId + self.status = status + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "ApplicationId" + case status = "Status" + case dryRun = "DryRun" + } + } + + public enum ResourceAttributeType: String, CustomStringConvertible, Codable { + case ipv4Address = "IPV4_ADDRESS" + case ipv6Address = "IPV6_ADDRESS" + case macAddress = "MAC_ADDRESS" + case fqdn = "FQDN" + case vmManagerId = "VM_MANAGER_ID" + case vmManagedObjectReference = "VM_MANAGED_OBJECT_REFERENCE" + case vmName = "VM_NAME" + case vmPath = "VM_PATH" + case biosId = "BIOS_ID" + case motherboardSerialNumber = "MOTHERBOARD_SERIAL_NUMBER" + case label = "LABEL" + public var description: String { return self.rawValue } + } + + public struct ListProgressUpdateStreamsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken. + public let nextToken: String? + /// Filter to limit the maximum number of results to list per page. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct DescribeMigrationTaskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: true, type: .string), + AWSShapeMember(label: "ProgressUpdateStream", required: true, type: .string) + ] + /// The identifier given to the MigrationTask. + public let migrationTaskName: String + /// The name of the ProgressUpdateStream. + public let progressUpdateStream: String + + public init(migrationTaskName: String, progressUpdateStream: String) { + self.migrationTaskName = migrationTaskName + self.progressUpdateStream = progressUpdateStream + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case progressUpdateStream = "ProgressUpdateStream" + } + } + + public struct AssociateDiscoveredResourceResult: AWSShape { + + } + + public struct CreateProgressUpdateStreamResult: AWSShape { + + } + + public struct ListDiscoveredResourcesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: true, type: .string), + AWSShapeMember(label: "ProgressUpdateStream", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The name of the MigrationTask. + public let migrationTaskName: String + /// The name of the ProgressUpdateStream. + public let progressUpdateStream: String + /// If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken. + public let nextToken: String? + /// The maximum number of results returned per page. + public let maxResults: Int32? + + public init(migrationTaskName: String, progressUpdateStream: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.migrationTaskName = migrationTaskName + self.progressUpdateStream = progressUpdateStream + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case progressUpdateStream = "ProgressUpdateStream" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct ImportMigrationTaskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: true, type: .string), + AWSShapeMember(label: "ProgressUpdateStream", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// Unique identifier that references the migration task. + public let migrationTaskName: String + /// The name of the ProgressUpdateStream. + public let progressUpdateStream: String + /// Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. + public let dryRun: Bool? + + public init(migrationTaskName: String, progressUpdateStream: String, dryRun: Bool? = nil) { + self.migrationTaskName = migrationTaskName + self.progressUpdateStream = progressUpdateStream + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case progressUpdateStream = "ProgressUpdateStream" + case dryRun = "DryRun" + } + } + + public struct DisassociateDiscoveredResourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: true, type: .string), + AWSShapeMember(label: "ConfigurationId", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "ProgressUpdateStream", required: true, type: .string) + ] + /// The identifier given to the MigrationTask. + public let migrationTaskName: String + /// ConfigurationId of the ADS resource to be disassociated. + public let configurationId: String + /// Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. + public let dryRun: Bool? + /// The name of the ProgressUpdateStream. + public let progressUpdateStream: String + + public init(migrationTaskName: String, configurationId: String, dryRun: Bool? = nil, progressUpdateStream: String) { + self.migrationTaskName = migrationTaskName + self.configurationId = configurationId + self.dryRun = dryRun + self.progressUpdateStream = progressUpdateStream + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case configurationId = "ConfigurationId" + case dryRun = "DryRun" + case progressUpdateStream = "ProgressUpdateStream" + } + } + + public struct DisassociateDiscoveredResourceResult: AWSShape { + + } + + public struct ProgressUpdateStreamSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProgressUpdateStreamName", required: false, type: .string) + ] + /// The name of the ProgressUpdateStream. + public let progressUpdateStreamName: String? + + public init(progressUpdateStreamName: String? = nil) { + self.progressUpdateStreamName = progressUpdateStreamName + } + + private enum CodingKeys: String, CodingKey { + case progressUpdateStreamName = "ProgressUpdateStreamName" + } + } + + public struct ImportMigrationTaskResult: AWSShape { + + } + + public struct DescribeApplicationStateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", required: true, type: .string) + ] + /// The configurationId in ADS that uniquely identifies the grouped application. + public let applicationId: String + + public init(applicationId: String) { + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "ApplicationId" + } + } + + public struct ListCreatedArtifactsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "CreatedArtifactList", required: false, type: .list) + ] + /// If there are more created artifacts than the max result, return the next token to be passed to the next call as a bookmark of where to start from. + public let nextToken: String? + /// List of created artifacts up to the maximum number of results specified in the request. + public let createdArtifactList: [CreatedArtifact]? + + public init(nextToken: String? = nil, createdArtifactList: [CreatedArtifact]? = nil) { + self.nextToken = nextToken + self.createdArtifactList = createdArtifactList + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case createdArtifactList = "CreatedArtifactList" + } + } + + public struct NotifyMigrationTaskStateResult: AWSShape { + + } + + public enum ApplicationStatus: String, CustomStringConvertible, Codable { + case notStarted = "NOT_STARTED" + case inProgress = "IN_PROGRESS" + case completed = "COMPLETED" + public var description: String { return self.rawValue } + } + + public struct ResourceAttribute: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "Value", required: true, type: .string) + ] + /// Type of resource. + public let `type`: ResourceAttributeType + /// Value of the resource type. + public let value: String + + public init(type: ResourceAttributeType, value: String) { + self.`type` = `type` + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case value = "Value" + } + } + + public struct MigrationTask: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: false, type: .string), + AWSShapeMember(label: "ResourceAttributeList", required: false, type: .list), + AWSShapeMember(label: "UpdateDateTime", required: false, type: .timestamp), + AWSShapeMember(label: "Task", required: false, type: .structure), + AWSShapeMember(label: "ProgressUpdateStream", required: false, type: .string) + ] + /// Unique identifier that references the migration task. + public let migrationTaskName: String? + public let resourceAttributeList: [ResourceAttribute]? + /// The timestamp when the task was gathered. + public let updateDateTime: TimeStamp? + /// Task object encapsulating task information. + public let task: Task? + /// A name that identifies the vendor of the migration tool being used. + public let progressUpdateStream: String? + + public init(migrationTaskName: String? = nil, resourceAttributeList: [ResourceAttribute]? = nil, updateDateTime: TimeStamp? = nil, task: Task? = nil, progressUpdateStream: String? = nil) { + self.migrationTaskName = migrationTaskName + self.resourceAttributeList = resourceAttributeList + self.updateDateTime = updateDateTime + self.task = task + self.progressUpdateStream = progressUpdateStream + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case resourceAttributeList = "ResourceAttributeList" + case updateDateTime = "UpdateDateTime" + case task = "Task" + case progressUpdateStream = "ProgressUpdateStream" + } + } + + public struct ListCreatedArtifactsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: true, type: .string), + AWSShapeMember(label: "ProgressUpdateStream", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Unique identifier that references the migration task. + public let migrationTaskName: String + /// The name of the ProgressUpdateStream. + public let progressUpdateStream: String + /// If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken. + public let nextToken: String? + /// Maximum number of results to be returned per page. + public let maxResults: Int32? + + public init(migrationTaskName: String, progressUpdateStream: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.migrationTaskName = migrationTaskName + self.progressUpdateStream = progressUpdateStream + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case progressUpdateStream = "ProgressUpdateStream" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct CreateProgressUpdateStreamRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProgressUpdateStreamName", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// The name of the ProgressUpdateStream. + public let progressUpdateStreamName: String + /// Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. + public let dryRun: Bool? + + public init(progressUpdateStreamName: String, dryRun: Bool? = nil) { + self.progressUpdateStreamName = progressUpdateStreamName + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case progressUpdateStreamName = "ProgressUpdateStreamName" + case dryRun = "DryRun" + } + } + + public struct DescribeApplicationStateResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastUpdatedTime", required: false, type: .timestamp), + AWSShapeMember(label: "ApplicationStatus", required: false, type: .enum) + ] + /// The timestamp when the application status was last updated. + public let lastUpdatedTime: TimeStamp? + /// Status of the application - Not Started, In-Progress, Complete. + public let applicationStatus: ApplicationStatus? + + public init(lastUpdatedTime: TimeStamp? = nil, applicationStatus: ApplicationStatus? = nil) { + self.lastUpdatedTime = lastUpdatedTime + self.applicationStatus = applicationStatus + } + + private enum CodingKeys: String, CodingKey { + case lastUpdatedTime = "LastUpdatedTime" + case applicationStatus = "ApplicationStatus" + } + } + + public struct NotifyApplicationStateResult: AWSShape { + + } + + public struct Task: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StatusDetail", required: false, type: .string), + AWSShapeMember(label: "Status", required: true, type: .enum), + AWSShapeMember(label: "ProgressPercent", required: false, type: .integer) + ] + /// Details of task status as notified by a migration tool. A tool might use this field to provide clarifying information about the status that is unique to that tool or that explains an error state. + public let statusDetail: String? + /// Status of the task - Not Started, In-Progress, Complete. + public let status: Status + /// Indication of the percentage completion of the task. + public let progressPercent: Int32? + + public init(statusDetail: String? = nil, status: Status, progressPercent: Int32? = nil) { + self.statusDetail = statusDetail + self.status = status + self.progressPercent = progressPercent + } + + private enum CodingKeys: String, CodingKey { + case statusDetail = "StatusDetail" + case status = "Status" + case progressPercent = "ProgressPercent" + } + } + + public struct ListDiscoveredResourcesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DiscoveredResourceList", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Returned list of discovered resources associated with the given MigrationTask. + public let discoveredResourceList: [DiscoveredResource]? + /// If there are more discovered resources than the max result, return the next token to be passed to the next call as a bookmark of where to start from. + public let nextToken: String? + + public init(discoveredResourceList: [DiscoveredResource]? = nil, nextToken: String? = nil) { + self.discoveredResourceList = discoveredResourceList + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case discoveredResourceList = "DiscoveredResourceList" + case nextToken = "NextToken" + } + } + + public struct PutResourceAttributesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: true, type: .string), + AWSShapeMember(label: "ResourceAttributeList", required: true, type: .list), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "ProgressUpdateStream", required: true, type: .string) + ] + /// Unique identifier that references the migration task. + public let migrationTaskName: String + /// Information about the resource that is being migrated. This data will be used to map the task to a resource in the Application Discovery Service (ADS)'s repository. + public let resourceAttributeList: [ResourceAttribute] + /// Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. + public let dryRun: Bool? + /// The name of the ProgressUpdateStream. + public let progressUpdateStream: String + + public init(migrationTaskName: String, resourceAttributeList: [ResourceAttribute], dryRun: Bool? = nil, progressUpdateStream: String) { + self.migrationTaskName = migrationTaskName + self.resourceAttributeList = resourceAttributeList + self.dryRun = dryRun + self.progressUpdateStream = progressUpdateStream + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case resourceAttributeList = "ResourceAttributeList" + case dryRun = "DryRun" + case progressUpdateStream = "ProgressUpdateStream" + } + } + + public struct DeleteProgressUpdateStreamRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProgressUpdateStreamName", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// The name of the ProgressUpdateStream. + public let progressUpdateStreamName: String + /// Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. + public let dryRun: Bool? + + public init(progressUpdateStreamName: String, dryRun: Bool? = nil) { + self.progressUpdateStreamName = progressUpdateStreamName + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case progressUpdateStreamName = "ProgressUpdateStreamName" + case dryRun = "DryRun" + } + } + + public struct DescribeMigrationTaskResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTask", required: false, type: .structure) + ] + /// Object encapsulating information about the migration task. + public let migrationTask: MigrationTask? + + public init(migrationTask: MigrationTask? = nil) { + self.migrationTask = migrationTask + } + + private enum CodingKeys: String, CodingKey { + case migrationTask = "MigrationTask" + } + } + + public struct DisassociateCreatedArtifactResult: AWSShape { + + } + + public struct AssociateCreatedArtifactRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "CreatedArtifact", required: true, type: .structure), + AWSShapeMember(label: "ProgressUpdateStream", required: true, type: .string) + ] + /// Unique identifier that references the migration task. + public let migrationTaskName: String + /// Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. + public let dryRun: Bool? + /// An ARN of the AWS resource related to the migration (e.g., AMI, EC2 instance, RDS instance, etc.) + public let createdArtifact: CreatedArtifact + /// The name of the ProgressUpdateStream. + public let progressUpdateStream: String + + public init(migrationTaskName: String, dryRun: Bool? = nil, createdArtifact: CreatedArtifact, progressUpdateStream: String) { + self.migrationTaskName = migrationTaskName + self.dryRun = dryRun + self.createdArtifact = createdArtifact + self.progressUpdateStream = progressUpdateStream + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case dryRun = "DryRun" + case createdArtifact = "CreatedArtifact" + case progressUpdateStream = "ProgressUpdateStream" + } + } + + public struct ListProgressUpdateStreamsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ProgressUpdateStreamSummaryList", required: false, type: .list) + ] + /// If there are more streams created than the max result, return the next token to be passed to the next call as a bookmark of where to start from. + public let nextToken: String? + /// List of progress update streams up to the max number of results passed in the input. + public let progressUpdateStreamSummaryList: [ProgressUpdateStreamSummary]? + + public init(nextToken: String? = nil, progressUpdateStreamSummaryList: [ProgressUpdateStreamSummary]? = nil) { + self.nextToken = nextToken + self.progressUpdateStreamSummaryList = progressUpdateStreamSummaryList + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case progressUpdateStreamSummaryList = "ProgressUpdateStreamSummaryList" + } + } + + public struct AssociateCreatedArtifactResult: AWSShape { + + } + + public struct MigrationTaskSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MigrationTaskName", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "UpdateDateTime", required: false, type: .timestamp), + AWSShapeMember(label: "ProgressPercent", required: false, type: .integer), + AWSShapeMember(label: "StatusDetail", required: false, type: .string), + AWSShapeMember(label: "ProgressUpdateStream", required: false, type: .string) + ] + /// Unique identifier that references the migration task. + public let migrationTaskName: String? + /// Status of the task. + public let status: Status? + /// The timestamp when the task was gathered. + public let updateDateTime: TimeStamp? + public let progressPercent: Int32? + /// Detail information of what is being done within the overall status state. + public let statusDetail: String? + /// An AWS resource used for access control. It should uniquely identify the migration tool as it is used for all updates made by the tool. + public let progressUpdateStream: String? + + public init(migrationTaskName: String? = nil, status: Status? = nil, updateDateTime: TimeStamp? = nil, progressPercent: Int32? = nil, statusDetail: String? = nil, progressUpdateStream: String? = nil) { + self.migrationTaskName = migrationTaskName + self.status = status + self.updateDateTime = updateDateTime + self.progressPercent = progressPercent + self.statusDetail = statusDetail + self.progressUpdateStream = progressUpdateStream + } + + private enum CodingKeys: String, CodingKey { + case migrationTaskName = "MigrationTaskName" + case status = "Status" + case updateDateTime = "UpdateDateTime" + case progressPercent = "ProgressPercent" + case statusDetail = "StatusDetail" + case progressUpdateStream = "ProgressUpdateStream" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/Cloud9/Cloud9_API.swift b/Sources/AWSSDKSwift/Services/Cloud9/Cloud9_API.swift new file mode 100644 index 00000000000..6897686983d --- /dev/null +++ b/Sources/AWSSDKSwift/Services/Cloud9/Cloud9_API.swift @@ -0,0 +1,79 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +AWS Cloud9 AWS Cloud9 is a collection of tools that you can use to code, build, run, test, debug, and release software in the cloud. In the background, these tools are available through development environments running on Amazon Elastic Compute Cloud (Amazon EC2) instances (known as Amazon EC2 environments), your own servers (known as SSH environments), or a combination. This enables you to create and switch between multiple environments, with each environment set up for a specific development project. For more information about AWS Cloud9, see the AWS Cloud9 User Guide. AWS Cloud9 supports these operations: CreateEnvironmentEC2: Creates an AWS Cloud9 development environment, launches an Amazon EC2 instance, and then hosts the environment on the instance. CreateEnvironmentMembership: Adds an environment member to an environment. DeleteEnvironment: Deletes an environment. If the environment is hosted on an Amazon EC2 instance, also terminates the instance. DeleteEnvironmentMembership: Deletes an environment member from an environment. DescribeEnvironmentMemberships: Gets information about environment members for an environment. DescribeEnvironments: Gets information about environments. DescribeEnvironmentStatus: Gets status information for an environment. ListEnvironments: Gets a list of environment identifiers. UpdateEnvironment: Changes the settings of an existing environment. UpdateEnvironmentMembership: Changes the settings of an existing environment member for an environment. +*/ +public struct Cloud9 { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "AWSCloud9WorkspaceManagementService", + service: "cloud9", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-09-23", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [Cloud9Error.self] + ) + } + + /// Deletes an AWS Cloud9 development environment. If the environment is hosted on an Amazon Elastic Compute Cloud (Amazon EC2) instance, also terminates the instance. + public func deleteEnvironment(_ input: DeleteEnvironmentRequest) throws -> DeleteEnvironmentResult { + return try client.send(operation: "DeleteEnvironment", path: "/", httpMethod: "POST", input: input) + } + + /// Gets a list of AWS Cloud9 development environment identifiers. + public func listEnvironments(_ input: ListEnvironmentsRequest) throws -> ListEnvironmentsResult { + return try client.send(operation: "ListEnvironments", path: "/", httpMethod: "POST", input: input) + } + + /// Adds an environment member to an AWS Cloud9 development environment. + public func createEnvironmentMembership(_ input: CreateEnvironmentMembershipRequest) throws -> CreateEnvironmentMembershipResult { + return try client.send(operation: "CreateEnvironmentMembership", path: "/", httpMethod: "POST", input: input) + } + + /// Gets status information for an AWS Cloud9 development environment. + public func describeEnvironmentStatus(_ input: DescribeEnvironmentStatusRequest) throws -> DescribeEnvironmentStatusResult { + return try client.send(operation: "DescribeEnvironmentStatus", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an AWS Cloud9 development environment, launches an Amazon Elastic Compute Cloud (Amazon EC2) instance, and then hosts the environment on the instance. + public func createEnvironmentEC2(_ input: CreateEnvironmentEC2Request) throws -> CreateEnvironmentEC2Result { + return try client.send(operation: "CreateEnvironmentEC2", path: "/", httpMethod: "POST", input: input) + } + + /// Changes the settings of an existing AWS Cloud9 development environment. + public func updateEnvironment(_ input: UpdateEnvironmentRequest) throws -> UpdateEnvironmentResult { + return try client.send(operation: "UpdateEnvironment", path: "/", httpMethod: "POST", input: input) + } + + /// Changes the settings of an existing environment member for an AWS Cloud9 development environment. + public func updateEnvironmentMembership(_ input: UpdateEnvironmentMembershipRequest) throws -> UpdateEnvironmentMembershipResult { + return try client.send(operation: "UpdateEnvironmentMembership", path: "/", httpMethod: "POST", input: input) + } + + /// Gets information about environment members for an AWS Cloud9 development environment. + public func describeEnvironmentMemberships(_ input: DescribeEnvironmentMembershipsRequest) throws -> DescribeEnvironmentMembershipsResult { + return try client.send(operation: "DescribeEnvironmentMemberships", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes an environment member from an AWS Cloud9 development environment. + public func deleteEnvironmentMembership(_ input: DeleteEnvironmentMembershipRequest) throws -> DeleteEnvironmentMembershipResult { + return try client.send(operation: "DeleteEnvironmentMembership", path: "/", httpMethod: "POST", input: input) + } + + /// Gets information about AWS Cloud9 development environments. + public func describeEnvironments(_ input: DescribeEnvironmentsRequest) throws -> DescribeEnvironmentsResult { + return try client.send(operation: "DescribeEnvironments", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/Cloud9/Cloud9_Error.swift b/Sources/AWSSDKSwift/Services/Cloud9/Cloud9_Error.swift new file mode 100644 index 00000000000..4222c7f2a46 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/Cloud9/Cloud9_Error.swift @@ -0,0 +1,41 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Cloud9 +public enum Cloud9Error: AWSErrorType { + case badRequestException(message: String?) + case conflictException(message: String?) + case notFoundException(message: String?) + case forbiddenException(message: String?) + case tooManyRequestsException(message: String?) + case limitExceededException(message: String?) + case internalServerErrorException(message: String?) +} + +extension Cloud9Error { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "BadRequestException": + self = .badRequestException(message: message) + case "ConflictException": + self = .conflictException(message: message) + case "NotFoundException": + self = .notFoundException(message: message) + case "ForbiddenException": + self = .forbiddenException(message: message) + case "TooManyRequestsException": + self = .tooManyRequestsException(message: message) + case "LimitExceededException": + self = .limitExceededException(message: message) + case "InternalServerErrorException": + self = .internalServerErrorException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/Cloud9/Cloud9_Shapes.swift b/Sources/AWSSDKSwift/Services/Cloud9/Cloud9_Shapes.swift new file mode 100644 index 00000000000..dddc69de5c9 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/Cloud9/Cloud9_Shapes.swift @@ -0,0 +1,504 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Cloud9 { + + public struct DescribeEnvironmentsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "environmentIds", required: true, type: .list) + ] + /// The IDs of invidividual environments to get information about. + public let environmentIds: [String] + + public init(environmentIds: [String]) { + self.environmentIds = environmentIds + } + + private enum CodingKeys: String, CodingKey { + case environmentIds = "environmentIds" + } + } + + public struct UpdateEnvironmentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "environmentId", required: true, type: .string) + ] + /// Any new or replacement description for the environment. + public let description: String? + /// Any replacement name for the environment. + public let name: String? + /// The ID of the environment to change settings. + public let environmentId: String + + public init(description: String? = nil, name: String? = nil, environmentId: String) { + self.description = description + self.name = name + self.environmentId = environmentId + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case name = "name" + case environmentId = "environmentId" + } + } + + public struct DescribeEnvironmentMembershipsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "memberships", required: false, type: .list) + ] + /// If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. + public let nextToken: String? + /// Information about the environment members for the environment. + public let memberships: [EnvironmentMember]? + + public init(nextToken: String? = nil, memberships: [EnvironmentMember]? = nil) { + self.nextToken = nextToken + self.memberships = memberships + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case memberships = "memberships" + } + } + + public enum Permissions: String, CustomStringConvertible, Codable { + case owner = "owner" + case readWrite = "read-write" + case readOnly = "read-only" + public var description: String { return self.rawValue } + } + + public struct DescribeEnvironmentStatusResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "message", required: false, type: .string) + ] + /// The status of the environment. Available values include: connecting: The environment is connecting. creating: The environment is being created. deleting: The environment is being deleted. error: The environment is in an error state. ready: The environment is ready. stopped: The environment is stopped. stopping: The environment is stopping. + public let status: EnvironmentStatus? + /// Any informational message about the status of the environment. + public let message: String? + + public init(status: EnvironmentStatus? = nil, message: String? = nil) { + self.status = status + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case message = "message" + } + } + + public enum EnvironmentStatus: String, CustomStringConvertible, Codable { + case error = "error" + case creating = "creating" + case connecting = "connecting" + case ready = "ready" + case stopping = "stopping" + case stopped = "stopped" + case deleting = "deleting" + public var description: String { return self.rawValue } + } + + public struct DescribeEnvironmentsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "environments", required: false, type: .list) + ] + /// Information about the environments that are returned. + public let environments: [Environment]? + + public init(environments: [Environment]? = nil) { + self.environments = environments + } + + private enum CodingKeys: String, CodingKey { + case environments = "environments" + } + } + + public struct ListEnvironmentsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "environmentIds", required: false, type: .list) + ] + /// If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. + public let nextToken: String? + /// The list of environment identifiers. + public let environmentIds: [String]? + + public init(nextToken: String? = nil, environmentIds: [String]? = nil) { + self.nextToken = nextToken + self.environmentIds = environmentIds + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case environmentIds = "environmentIds" + } + } + + public struct DescribeEnvironmentMembershipsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer), + AWSShapeMember(label: "userArn", required: false, type: .string), + AWSShapeMember(label: "environmentId", required: false, type: .string), + AWSShapeMember(label: "permissions", required: false, type: .list) + ] + /// During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + public let nextToken: String? + /// The maximum number of environment members to get information about. + public let maxResults: Int32? + /// The Amazon Resource Name (ARN) of an individual environment member to get information about. If no value is specified, information about all environment members are returned. + public let userArn: String? + /// The ID of the environment to get environment member information about. + public let environmentId: String? + /// The type of environment member permissions to get information about. Available values include: owner: Owns the environment. read-only: Has read-only access to the environment. read-write: Has read-write access to the environment. If no value is specified, information about all environment members are returned. + public let permissions: [Permissions]? + + public init(nextToken: String? = nil, maxResults: Int32? = nil, userArn: String? = nil, environmentId: String? = nil, permissions: [Permissions]? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + self.userArn = userArn + self.environmentId = environmentId + self.permissions = permissions + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + case userArn = "userArn" + case environmentId = "environmentId" + case permissions = "permissions" + } + } + + public struct Environment: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "ownerArn", required: false, type: .string), + AWSShapeMember(label: "id", required: false, type: .string), + AWSShapeMember(label: "type", required: false, type: .enum), + AWSShapeMember(label: "arn", required: false, type: .string) + ] + /// The description for the environment. + public let description: String? + /// The name of the environment. + public let name: String? + /// The Amazon Resource Name (ARN) of the environment owner. + public let ownerArn: String? + /// The ID of the environment. + public let id: String? + /// The type of environment. Valid values include the following: ec2: An environment hosted on an Amazon Elastic Compute Cloud (Amazon EC2) instance. ssh: An environment hosted on your own server. + public let `type`: EnvironmentType? + /// The Amazon Resource Name (ARN) of the environment. + public let arn: String? + + public init(description: String? = nil, name: String? = nil, ownerArn: String? = nil, id: String? = nil, type: EnvironmentType? = nil, arn: String? = nil) { + self.description = description + self.name = name + self.ownerArn = ownerArn + self.id = id + self.`type` = `type` + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case name = "name" + case ownerArn = "ownerArn" + case id = "id" + case `type` = "type" + case arn = "arn" + } + } + + public struct UpdateEnvironmentResult: AWSShape { + + } + + public struct DeleteEnvironmentMembershipResult: AWSShape { + + } + + public struct CreateEnvironmentMembershipResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "membership", required: false, type: .structure) + ] + /// Information about the environment member that was added. + public let membership: EnvironmentMember? + + public init(membership: EnvironmentMember? = nil) { + self.membership = membership + } + + private enum CodingKeys: String, CodingKey { + case membership = "membership" + } + } + + public struct DeleteEnvironmentMembershipRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "userArn", required: true, type: .string), + AWSShapeMember(label: "environmentId", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the environment member to delete from the environment. + public let userArn: String + /// The ID of the environment to delete the environment member from. + public let environmentId: String + + public init(userArn: String, environmentId: String) { + self.userArn = userArn + self.environmentId = environmentId + } + + private enum CodingKeys: String, CodingKey { + case userArn = "userArn" + case environmentId = "environmentId" + } + } + + public struct UpdateEnvironmentMembershipRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "userArn", required: true, type: .string), + AWSShapeMember(label: "permissions", required: true, type: .enum), + AWSShapeMember(label: "environmentId", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the environment member whose settings you want to change. + public let userArn: String + /// The replacement type of environment member permissions you want to associate with this environment member. Available values include: read-only: Has read-only access to the environment. read-write: Has read-write access to the environment. + public let permissions: MemberPermissions + /// The ID of the environment for the environment member whose settings you want to change. + public let environmentId: String + + public init(userArn: String, permissions: MemberPermissions, environmentId: String) { + self.userArn = userArn + self.permissions = permissions + self.environmentId = environmentId + } + + private enum CodingKeys: String, CodingKey { + case userArn = "userArn" + case permissions = "permissions" + case environmentId = "environmentId" + } + } + + public enum EnvironmentType: String, CustomStringConvertible, Codable { + case ssh = "ssh" + case ec2 = "ec2" + public var description: String { return self.rawValue } + } + + public struct UpdateEnvironmentMembershipResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "membership", required: false, type: .structure) + ] + /// Information about the environment member whose settings were changed. + public let membership: EnvironmentMember? + + public init(membership: EnvironmentMember? = nil) { + self.membership = membership + } + + private enum CodingKeys: String, CodingKey { + case membership = "membership" + } + } + + public struct ListEnvironmentsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer) + ] + /// During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + public let nextToken: String? + /// The maximum number of environments to get identifiers for. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct CreateEnvironmentMembershipRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "userArn", required: true, type: .string), + AWSShapeMember(label: "permissions", required: true, type: .enum), + AWSShapeMember(label: "environmentId", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the environment member you want to add. + public let userArn: String + /// The type of environment member permissions you want to associate with this environment member. Available values include: read-only: Has read-only access to the environment. read-write: Has read-write access to the environment. + public let permissions: MemberPermissions + /// The ID of the environment that contains the environment member you want to add. + public let environmentId: String + + public init(userArn: String, permissions: MemberPermissions, environmentId: String) { + self.userArn = userArn + self.permissions = permissions + self.environmentId = environmentId + } + + private enum CodingKeys: String, CodingKey { + case userArn = "userArn" + case permissions = "permissions" + case environmentId = "environmentId" + } + } + + public enum MemberPermissions: String, CustomStringConvertible, Codable { + case readWrite = "read-write" + case readOnly = "read-only" + public var description: String { return self.rawValue } + } + + public struct EnvironmentMember: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "userId", required: false, type: .string), + AWSShapeMember(label: "environmentId", required: false, type: .string), + AWSShapeMember(label: "lastAccess", required: false, type: .timestamp), + AWSShapeMember(label: "userArn", required: false, type: .string), + AWSShapeMember(label: "permissions", required: false, type: .enum) + ] + /// The user ID in AWS Identity and Access Management (AWS IAM) of the environment member. + public let userId: String? + /// The ID of the environment for the environment member. + public let environmentId: String? + /// The time, expressed in epoch time format, when the environment member last opened the environment. + public let lastAccess: TimeStamp? + /// The Amazon Resource Name (ARN) of the environment member. + public let userArn: String? + /// The type of environment member permissions associated with this environment member. Available values include: owner: Owns the environment. read-only: Has read-only access to the environment. read-write: Has read-write access to the environment. + public let permissions: Permissions? + + public init(userId: String? = nil, environmentId: String? = nil, lastAccess: TimeStamp? = nil, userArn: String? = nil, permissions: Permissions? = nil) { + self.userId = userId + self.environmentId = environmentId + self.lastAccess = lastAccess + self.userArn = userArn + self.permissions = permissions + } + + private enum CodingKeys: String, CodingKey { + case userId = "userId" + case environmentId = "environmentId" + case lastAccess = "lastAccess" + case userArn = "userArn" + case permissions = "permissions" + } + } + + public struct DescribeEnvironmentStatusRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "environmentId", required: true, type: .string) + ] + /// The ID of the environment to get status information about. + public let environmentId: String + + public init(environmentId: String) { + self.environmentId = environmentId + } + + private enum CodingKeys: String, CodingKey { + case environmentId = "environmentId" + } + } + + public struct DeleteEnvironmentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "environmentId", required: true, type: .string) + ] + /// The ID of the environment to delete. + public let environmentId: String + + public init(environmentId: String) { + self.environmentId = environmentId + } + + private enum CodingKeys: String, CodingKey { + case environmentId = "environmentId" + } + } + + public struct CreateEnvironmentEC2Result: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "environmentId", required: false, type: .string) + ] + /// The ID of the environment that was created. + public let environmentId: String? + + public init(environmentId: String? = nil) { + self.environmentId = environmentId + } + + private enum CodingKeys: String, CodingKey { + case environmentId = "environmentId" + } + } + + public struct DeleteEnvironmentResult: AWSShape { + + } + + public struct CreateEnvironmentEC2Request: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: true, type: .string), + AWSShapeMember(label: "instanceType", required: true, type: .string), + AWSShapeMember(label: "ownerArn", required: false, type: .string), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "clientRequestToken", required: false, type: .string), + AWSShapeMember(label: "automaticStopTimeMinutes", required: false, type: .integer), + AWSShapeMember(label: "subnetId", required: false, type: .string) + ] + /// The name of the environment to create. This name is visible to other AWS IAM users in the same AWS account. + public let name: String + /// The type of instance to host the environment on (for example, t2.micro). + public let instanceType: String + /// The Amazon Resource Name (ARN) of the environment owner. This ARN can be the ARN of any AWS IAM principal. If this value is not specified, the ARN defaults to this environment's creator. + public let ownerArn: String? + /// The description of the environment to create. + public let description: String? + /// A unique, case-sensitive string that helps AWS Cloud9 to ensure this operation completes no more than one time. For more information, see Client Tokens in the Amazon EC2 API Reference. + public let clientRequestToken: String? + /// The number of minutes until the running instance is shut down after the environment has last been used. + public let automaticStopTimeMinutes: Int32? + /// The ID of the subnet in Amazon VPC that AWS Cloud9 will use to communicate with the Amazon EC2 instance. + public let subnetId: String? + + public init(name: String, instanceType: String, ownerArn: String? = nil, description: String? = nil, clientRequestToken: String? = nil, automaticStopTimeMinutes: Int32? = nil, subnetId: String? = nil) { + self.name = name + self.instanceType = instanceType + self.ownerArn = ownerArn + self.description = description + self.clientRequestToken = clientRequestToken + self.automaticStopTimeMinutes = automaticStopTimeMinutes + self.subnetId = subnetId + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case instanceType = "instanceType" + case ownerArn = "ownerArn" + case description = "description" + case clientRequestToken = "clientRequestToken" + case automaticStopTimeMinutes = "automaticStopTimeMinutes" + case subnetId = "subnetId" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/GuardDuty/GuardDuty_API.swift b/Sources/AWSSDKSwift/Services/GuardDuty/GuardDuty_API.swift new file mode 100644 index 00000000000..1c53c1d6839 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/GuardDuty/GuardDuty_API.swift @@ -0,0 +1,213 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +Assess, monitor, manage, and remediate security issues across your AWS infrastructure, applications, and data. +*/ +public struct GuardDuty { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "guardduty", + serviceProtocol: ServiceProtocol(type: .restjson, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-11-28", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [GuardDutyError.self] + ) + } + + /// Re-enables GuardDuty to monitor findings of the member accounts specified by the account IDs. A master GuardDuty account can run this command after disabling GuardDuty from monitoring these members' findings by running StopMonitoringMembers. + public func startMonitoringMembers(_ input: StartMonitoringMembersRequest) throws -> StartMonitoringMembersResponse { + return try client.send(operation: "StartMonitoringMembers", path: "/detector/{detectorId}/member/start", httpMethod: "POST", input: input) + } + + /// Archives Amazon GuardDuty findings specified by the list of finding IDs. + public func archiveFindings(_ input: ArchiveFindingsRequest) throws -> ArchiveFindingsResponse { + return try client.send(operation: "ArchiveFindings", path: "/detector/{detectorId}/findings/archive", httpMethod: "POST", input: input) + } + + /// Provides the details for the GuardDuty master account to the current GuardDuty member account. + public func getMasterAccount(_ input: GetMasterAccountRequest) throws -> GetMasterAccountResponse { + return try client.send(operation: "GetMasterAccount", path: "/detector/{detectorId}/master", httpMethod: "GET", input: input) + } + + /// Creates a new IPSet - a list of trusted IP addresses that have been whitelisted for secure communication with AWS infrastructure and applications. + public func createIPSet(_ input: CreateIPSetRequest) throws -> CreateIPSetResponse { + return try client.send(operation: "CreateIPSet", path: "/detector/{detectorId}/ipset", httpMethod: "POST", input: input) + } + + /// Unarchives Amazon GuardDuty findings specified by the list of finding IDs. + public func unarchiveFindings(_ input: UnarchiveFindingsRequest) throws -> UnarchiveFindingsResponse { + return try client.send(operation: "UnarchiveFindings", path: "/detector/{detectorId}/findings/unarchive", httpMethod: "POST", input: input) + } + + /// Generates example findings of types specified by the list of finding types. If 'NULL' is specified for findingTypes, the API generates example findings of all supported finding types. + public func createSampleFindings(_ input: CreateSampleFindingsRequest) throws -> CreateSampleFindingsResponse { + return try client.send(operation: "CreateSampleFindings", path: "/detector/{detectorId}/findings/create", httpMethod: "POST", input: input) + } + + /// Updates an Amazon GuardDuty detector specified by the detectorId. + public func updateDetector(_ input: UpdateDetectorRequest) throws -> UpdateDetectorResponse { + return try client.send(operation: "UpdateDetector", path: "/detector/{detectorId}", httpMethod: "POST", input: input) + } + + /// Deletes GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs. + public func deleteMembers(_ input: DeleteMembersRequest) throws -> DeleteMembersResponse { + return try client.send(operation: "DeleteMembers", path: "/detector/{detectorId}/member/delete", httpMethod: "POST", input: input) + } + + /// Deletes invitations sent to the current member account by AWS accounts specified by their account IDs. + public func deleteInvitations(_ input: DeleteInvitationsRequest) throws -> DeleteInvitationsResponse { + return try client.send(operation: "DeleteInvitations", path: "/invitation/delete", httpMethod: "POST", input: input) + } + + /// Updates the IPSet specified by the IPSet ID. + public func updateIPSet(_ input: UpdateIPSetRequest) throws -> UpdateIPSetResponse { + return try client.send(operation: "UpdateIPSet", path: "/detector/{detectorId}/ipset/{ipSetId}", httpMethod: "POST", input: input) + } + + /// Lists all GuardDuty membership invitations that were sent to the current AWS account. + public func listInvitations(_ input: ListInvitationsRequest) throws -> ListInvitationsResponse { + return try client.send(operation: "ListInvitations", path: "/invitation", httpMethod: "GET", input: input) + } + + /// Retrieves the ThreatIntelSet that is specified by the ThreatIntelSet ID. + public func getThreatIntelSet(_ input: GetThreatIntelSetRequest) throws -> GetThreatIntelSetResponse { + return try client.send(operation: "GetThreatIntelSet", path: "/detector/{detectorId}/threatintelset/{threatIntelSetId}", httpMethod: "GET", input: input) + } + + /// Deletes a Amazon GuardDuty detector specified by the detector ID. + public func deleteDetector(_ input: DeleteDetectorRequest) throws -> DeleteDetectorResponse { + return try client.send(operation: "DeleteDetector", path: "/detector/{detectorId}", httpMethod: "DELETE", input: input) + } + + /// Retrieves the IPSet specified by the IPSet ID. + public func getIPSet(_ input: GetIPSetRequest) throws -> GetIPSetResponse { + return try client.send(operation: "GetIPSet", path: "/detector/{detectorId}/ipset/{ipSetId}", httpMethod: "GET", input: input) + } + + /// Marks specified Amazon GuardDuty findings as useful or not useful. + public func updateFindingsFeedback(_ input: UpdateFindingsFeedbackRequest) throws -> UpdateFindingsFeedbackResponse { + return try client.send(operation: "UpdateFindingsFeedback", path: "/detector/{detectorId}/findings/feedback", httpMethod: "POST", input: input) + } + + /// Returns the count of all GuardDuty membership invitations that were sent to the current member account except the currently accepted invitation. + public func getInvitationsCount(_ input: GetInvitationsCountRequest) throws -> GetInvitationsCountResponse { + return try client.send(operation: "GetInvitationsCount", path: "/invitation/count", httpMethod: "GET", input: input) + } + + /// Creates a single Amazon GuardDuty detector. A detector is an object that represents the GuardDuty service. A detector must be created in order for GuardDuty to become operational. + public func createDetector(_ input: CreateDetectorRequest) throws -> CreateDetectorResponse { + return try client.send(operation: "CreateDetector", path: "/detector", httpMethod: "POST", input: input) + } + + /// Deletes ThreatIntelSet specified by the ThreatIntelSet ID. + public func deleteThreatIntelSet(_ input: DeleteThreatIntelSetRequest) throws -> DeleteThreatIntelSetResponse { + return try client.send(operation: "DeleteThreatIntelSet", path: "/detector/{detectorId}/threatintelset/{threatIntelSetId}", httpMethod: "DELETE", input: input) + } + + /// Lists the IPSets of the GuardDuty service specified by the detector ID. + public func listIPSets(_ input: ListIPSetsRequest) throws -> ListIPSetsResponse { + return try client.send(operation: "ListIPSets", path: "/detector/{detectorId}/ipset", httpMethod: "GET", input: input) + } + + /// Updates the ThreatIntelSet specified by ThreatIntelSet ID. + public func updateThreatIntelSet(_ input: UpdateThreatIntelSetRequest) throws -> UpdateThreatIntelSetResponse { + return try client.send(operation: "UpdateThreatIntelSet", path: "/detector/{detectorId}/threatintelset/{threatIntelSetId}", httpMethod: "POST", input: input) + } + + /// Disables GuardDuty from monitoring findings of the member accounts specified by the account IDs. After running this command, a master GuardDuty account can run StartMonitoringMembers to re-enable GuardDuty to monitor these members' findings. + public func stopMonitoringMembers(_ input: StopMonitoringMembersRequest) throws -> StopMonitoringMembersResponse { + return try client.send(operation: "StopMonitoringMembers", path: "/detector/{detectorId}/member/stop", httpMethod: "POST", input: input) + } + + /// Retrieves GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs. + public func getMembers(_ input: GetMembersRequest) throws -> GetMembersResponse { + return try client.send(operation: "GetMembers", path: "/detector/{detectorId}/member/get", httpMethod: "POST", input: input) + } + + /// Lists Amazon GuardDuty findings for the specified detector ID. + public func listFindings(_ input: ListFindingsRequest) throws -> ListFindingsResponse { + return try client.send(operation: "ListFindings", path: "/detector/{detectorId}/findings", httpMethod: "POST", input: input) + } + + /// Declines invitations sent to the current member account by AWS account specified by their account IDs. + public func declineInvitations(_ input: DeclineInvitationsRequest) throws -> DeclineInvitationsResponse { + return try client.send(operation: "DeclineInvitations", path: "/invitation/decline", httpMethod: "POST", input: input) + } + + /// Describes Amazon GuardDuty findings specified by finding IDs. + public func getFindings(_ input: GetFindingsRequest) throws -> GetFindingsResponse { + return try client.send(operation: "GetFindings", path: "/detector/{detectorId}/findings/get", httpMethod: "POST", input: input) + } + + /// Creates member accounts of the current AWS account by specifying a list of AWS account IDs. The current AWS account can then invite these members to manage GuardDuty in their accounts. + public func createMembers(_ input: CreateMembersRequest) throws -> CreateMembersResponse { + return try client.send(operation: "CreateMembers", path: "/detector/{detectorId}/member", httpMethod: "POST", input: input) + } + + /// Disassociates GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs. + public func disassociateMembers(_ input: DisassociateMembersRequest) throws -> DisassociateMembersResponse { + return try client.send(operation: "DisassociateMembers", path: "/detector/{detectorId}/member/disassociate", httpMethod: "POST", input: input) + } + + /// Create a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates findings based on ThreatIntelSets. + public func createThreatIntelSet(_ input: CreateThreatIntelSetRequest) throws -> CreateThreatIntelSetResponse { + return try client.send(operation: "CreateThreatIntelSet", path: "/detector/{detectorId}/threatintelset", httpMethod: "POST", input: input) + } + + /// Lists Amazon GuardDuty findings' statistics for the specified detector ID. + public func getFindingsStatistics(_ input: GetFindingsStatisticsRequest) throws -> GetFindingsStatisticsResponse { + return try client.send(operation: "GetFindingsStatistics", path: "/detector/{detectorId}/findings/statistics", httpMethod: "POST", input: input) + } + + /// Accepts the invitation to be monitored by a master GuardDuty account. + public func acceptInvitation(_ input: AcceptInvitationRequest) throws -> AcceptInvitationResponse { + return try client.send(operation: "AcceptInvitation", path: "/detector/{detectorId}/master", httpMethod: "POST", input: input) + } + + /// Disassociates the current GuardDuty member account from its master account. + public func disassociateFromMasterAccount(_ input: DisassociateFromMasterAccountRequest) throws -> DisassociateFromMasterAccountResponse { + return try client.send(operation: "DisassociateFromMasterAccount", path: "/detector/{detectorId}/master/disassociate", httpMethod: "POST", input: input) + } + + /// Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty and allow the current AWS account to view and manage these accounts' GuardDuty findings on their behalf as the master account. + public func inviteMembers(_ input: InviteMembersRequest) throws -> InviteMembersResponse { + return try client.send(operation: "InviteMembers", path: "/detector/{detectorId}/member/invite", httpMethod: "POST", input: input) + } + + /// Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID. + public func listThreatIntelSets(_ input: ListThreatIntelSetsRequest) throws -> ListThreatIntelSetsResponse { + return try client.send(operation: "ListThreatIntelSets", path: "/detector/{detectorId}/threatintelset", httpMethod: "GET", input: input) + } + + /// Deletes the IPSet specified by the IPSet ID. + public func deleteIPSet(_ input: DeleteIPSetRequest) throws -> DeleteIPSetResponse { + return try client.send(operation: "DeleteIPSet", path: "/detector/{detectorId}/ipset/{ipSetId}", httpMethod: "DELETE", input: input) + } + + /// Lists detectorIds of all the existing Amazon GuardDuty detector resources. + public func listDetectors(_ input: ListDetectorsRequest) throws -> ListDetectorsResponse { + return try client.send(operation: "ListDetectors", path: "/detector", httpMethod: "GET", input: input) + } + + /// Lists details about all member accounts for the current GuardDuty master account. + public func listMembers(_ input: ListMembersRequest) throws -> ListMembersResponse { + return try client.send(operation: "ListMembers", path: "/detector/{detectorId}/member", httpMethod: "GET", input: input) + } + + /// Retrieves an Amazon GuardDuty detector specified by the detectorId. + public func getDetector(_ input: GetDetectorRequest) throws -> GetDetectorResponse { + return try client.send(operation: "GetDetector", path: "/detector/{detectorId}", httpMethod: "GET", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/GuardDuty/GuardDuty_Error.swift b/Sources/AWSSDKSwift/Services/GuardDuty/GuardDuty_Error.swift new file mode 100644 index 00000000000..d7ed7df3aa4 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/GuardDuty/GuardDuty_Error.swift @@ -0,0 +1,26 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for GuardDuty +public enum GuardDutyError: AWSErrorType { + case badRequestException(message: String?) + case internalServerErrorException(message: String?) +} + +extension GuardDutyError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "BadRequestException": + self = .badRequestException(message: message) + case "InternalServerErrorException": + self = .internalServerErrorException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/GuardDuty/GuardDuty_Shapes.swift b/Sources/AWSSDKSwift/Services/GuardDuty/GuardDuty_Shapes.swift new file mode 100644 index 00000000000..7066601b904 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/GuardDuty/GuardDuty_Shapes.swift @@ -0,0 +1,2326 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension GuardDuty { + + public struct DeleteMembersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UnprocessedAccounts", location: .body(locationName: "unprocessedAccounts"), required: false, type: .list) + ] + /// A list of objects containing the unprocessed account and a result string explaining why it was unprocessed. + public let unprocessedAccounts: [UnprocessedAccount]? + + public init(unprocessedAccounts: [UnprocessedAccount]? = nil) { + self.unprocessedAccounts = unprocessedAccounts + } + + private enum CodingKeys: String, CodingKey { + case unprocessedAccounts = "unprocessedAccounts" + } + } + + public struct DeclineInvitationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountIds", location: .body(locationName: "accountIds"), required: false, type: .list) + ] + /// A list of account IDs of the AWS accounts that sent invitations to the current member account that you want to decline invitations from. + public let accountIds: [String]? + + public init(accountIds: [String]? = nil) { + self.accountIds = accountIds + } + + private enum CodingKeys: String, CodingKey { + case accountIds = "accountIds" + } + } + + public struct ListDetectorsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "DetectorIds", location: .body(locationName: "detectorIds"), required: false, type: .list) + ] + public let nextToken: String? + public let detectorIds: [String]? + + public init(nextToken: String? = nil, detectorIds: [String]? = nil) { + self.nextToken = nextToken + self.detectorIds = detectorIds + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case detectorIds = "detectorIds" + } + } + + public struct GetThreatIntelSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Format", location: .body(locationName: "format"), required: false, type: .enum), + AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "Location", location: .body(locationName: "location"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string) + ] + /// The format of the threatIntelSet. + public let format: ThreatIntelSetFormat? + /// The status of threatIntelSet file uploaded. + public let status: ThreatIntelSetStatus? + /// The URI of the file that contains the ThreatIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key). + public let location: String? + /// A user-friendly ThreatIntelSet name that is displayed in all finding generated by activity that involves IP addresses included in this ThreatIntelSet. + public let name: String? + + public init(format: ThreatIntelSetFormat? = nil, status: ThreatIntelSetStatus? = nil, location: String? = nil, name: String? = nil) { + self.format = format + self.status = status + self.location = location + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case format = "format" + case status = "status" + case location = "location" + case name = "name" + } + } + + public struct ListFindingsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FindingCriteria", location: .body(locationName: "findingCriteria"), required: false, type: .structure), + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "SortCriteria", location: .body(locationName: "sortCriteria"), required: false, type: .structure), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + /// Represents the criteria used for querying findings. + public let findingCriteria: FindingCriteria? + public let detectorId: String + /// Represents the criteria used for sorting findings. + public let sortCriteria: SortCriteria? + /// You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListFindings action. For subsequent calls to the action fill nextToken in the request with the value of nextToken from the previous response to continue listing data. + public let nextToken: String? + /// You can use this parameter to indicate the maximum number of items you want in the response. The default value is 50. The maximum value is 50. + public let maxResults: Int32? + + public init(findingCriteria: FindingCriteria? = nil, detectorId: String, sortCriteria: SortCriteria? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.findingCriteria = findingCriteria + self.detectorId = detectorId + self.sortCriteria = sortCriteria + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case findingCriteria = "findingCriteria" + case detectorId = "detectorId" + case sortCriteria = "sortCriteria" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct GetMembersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "AccountIds", location: .body(locationName: "accountIds"), required: false, type: .list) + ] + public let detectorId: String + /// A list of account IDs of the GuardDuty member accounts that you want to describe. + public let accountIds: [String]? + + public init(detectorId: String, accountIds: [String]? = nil) { + self.detectorId = detectorId + self.accountIds = accountIds + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case accountIds = "accountIds" + } + } + + public struct NetworkConnectionAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConnectionDirection", location: .body(locationName: "connectionDirection"), required: false, type: .string), + AWSShapeMember(label: "LocalPortDetails", location: .body(locationName: "localPortDetails"), required: false, type: .structure), + AWSShapeMember(label: "RemotePortDetails", location: .body(locationName: "remotePortDetails"), required: false, type: .structure), + AWSShapeMember(label: "RemoteIpDetails", location: .body(locationName: "remoteIpDetails"), required: false, type: .structure), + AWSShapeMember(label: "Blocked", location: .body(locationName: "blocked"), required: false, type: .boolean), + AWSShapeMember(label: "Protocol", location: .body(locationName: "protocol"), required: false, type: .string) + ] + /// Network connection direction. + public let connectionDirection: String? + /// Local port information of the connection. + public let localPortDetails: LocalPortDetails? + /// Remote port information of the connection. + public let remotePortDetails: RemotePortDetails? + /// Remote IP information of the connection. + public let remoteIpDetails: RemoteIpDetails? + /// Network connection blocked information. + public let blocked: Bool? + /// Network connection protocol. + public let `protocol`: String? + + public init(connectionDirection: String? = nil, localPortDetails: LocalPortDetails? = nil, remotePortDetails: RemotePortDetails? = nil, remoteIpDetails: RemoteIpDetails? = nil, blocked: Bool? = nil, protocol: String? = nil) { + self.connectionDirection = connectionDirection + self.localPortDetails = localPortDetails + self.remotePortDetails = remotePortDetails + self.remoteIpDetails = remoteIpDetails + self.blocked = blocked + self.`protocol` = `protocol` + } + + private enum CodingKeys: String, CodingKey { + case connectionDirection = "connectionDirection" + case localPortDetails = "localPortDetails" + case remotePortDetails = "remotePortDetails" + case remoteIpDetails = "remoteIpDetails" + case blocked = "blocked" + case `protocol` = "protocol" + } + } + + public struct ListInvitationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public enum OrderBy: String, CustomStringConvertible, Codable { + case asc = "ASC" + case desc = "DESC" + public var description: String { return self.rawValue } + } + + public struct GeoLocation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Lat", location: .body(locationName: "lat"), required: false, type: .double), + AWSShapeMember(label: "Lon", location: .body(locationName: "lon"), required: false, type: .double) + ] + /// Latitude information of remote IP address. + public let lat: Double? + /// Longitude information of remote IP address. + public let lon: Double? + + public init(lat: Double? = nil, lon: Double? = nil) { + self.lat = lat + self.lon = lon + } + + private enum CodingKeys: String, CodingKey { + case lat = "lat" + case lon = "lon" + } + } + + public struct Action: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ActionType", location: .body(locationName: "actionType"), required: false, type: .string), + AWSShapeMember(label: "DnsRequestAction", location: .body(locationName: "dnsRequestAction"), required: false, type: .structure), + AWSShapeMember(label: "AwsApiCallAction", location: .body(locationName: "awsApiCallAction"), required: false, type: .structure), + AWSShapeMember(label: "NetworkConnectionAction", location: .body(locationName: "networkConnectionAction"), required: false, type: .structure) + ] + /// GuardDuty Finding activity type. + public let actionType: String? + /// Information about the DNS_REQUEST action described in this finding. + public let dnsRequestAction: DnsRequestAction? + /// Information about the AWS_API_CALL action described in this finding. + public let awsApiCallAction: AwsApiCallAction? + /// Information about the NETWORK_CONNECTION action described in this finding. + public let networkConnectionAction: NetworkConnectionAction? + + public init(actionType: String? = nil, dnsRequestAction: DnsRequestAction? = nil, awsApiCallAction: AwsApiCallAction? = nil, networkConnectionAction: NetworkConnectionAction? = nil) { + self.actionType = actionType + self.dnsRequestAction = dnsRequestAction + self.awsApiCallAction = awsApiCallAction + self.networkConnectionAction = networkConnectionAction + } + + private enum CodingKeys: String, CodingKey { + case actionType = "actionType" + case dnsRequestAction = "dnsRequestAction" + case awsApiCallAction = "awsApiCallAction" + case networkConnectionAction = "networkConnectionAction" + } + } + + public struct GetFindingsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "SortCriteria", location: .body(locationName: "sortCriteria"), required: false, type: .structure), + AWSShapeMember(label: "FindingIds", location: .body(locationName: "findingIds"), required: false, type: .list) + ] + public let detectorId: String + /// Represents the criteria used for sorting findings. + public let sortCriteria: SortCriteria? + /// IDs of the findings that you want to retrieve. + public let findingIds: [String]? + + public init(detectorId: String, sortCriteria: SortCriteria? = nil, findingIds: [String]? = nil) { + self.detectorId = detectorId + self.sortCriteria = sortCriteria + self.findingIds = findingIds + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case sortCriteria = "sortCriteria" + case findingIds = "findingIds" + } + } + + public struct DeleteThreatIntelSetResponse: AWSShape { + + } + + public struct CreateThreatIntelSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Format", location: .body(locationName: "format"), required: false, type: .enum), + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "Activate", location: .body(locationName: "activate"), required: false, type: .boolean), + AWSShapeMember(label: "Location", location: .body(locationName: "location"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string) + ] + /// The format of the file that contains the ThreatIntelSet. + public let format: ThreatIntelSetFormat? + public let detectorId: String + /// A boolean value that indicates whether GuardDuty is to start using the uploaded ThreatIntelSet. + public let activate: Bool? + /// The URI of the file that contains the ThreatIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key). + public let location: String? + /// A user-friendly ThreatIntelSet name that is displayed in all finding generated by activity that involves IP addresses included in this ThreatIntelSet. + public let name: String? + + public init(format: ThreatIntelSetFormat? = nil, detectorId: String, activate: Bool? = nil, location: String? = nil, name: String? = nil) { + self.format = format + self.detectorId = detectorId + self.activate = activate + self.location = location + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case format = "format" + case detectorId = "detectorId" + case activate = "activate" + case location = "location" + case name = "name" + } + } + + public enum DetectorStatus: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public enum FindingStatisticType: String, CustomStringConvertible, Codable { + case countBySeverity = "COUNT_BY_SEVERITY" + public var description: String { return self.rawValue } + } + + public struct GetIPSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "IpSetId", location: .uri(locationName: "ipSetId"), required: true, type: .string) + ] + public let detectorId: String + public let ipSetId: String + + public init(detectorId: String, ipSetId: String) { + self.detectorId = detectorId + self.ipSetId = ipSetId + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case ipSetId = "ipSetId" + } + } + + public struct DisassociateMembersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "AccountIds", location: .body(locationName: "accountIds"), required: false, type: .list) + ] + public let detectorId: String + /// A list of account IDs of the GuardDuty member accounts that you want to disassociate from master. + public let accountIds: [String]? + + public init(detectorId: String, accountIds: [String]? = nil) { + self.detectorId = detectorId + self.accountIds = accountIds + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case accountIds = "accountIds" + } + } + + public struct GetFindingsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Findings", location: .body(locationName: "findings"), required: false, type: .list) + ] + public let findings: [Finding]? + + public init(findings: [Finding]? = nil) { + self.findings = findings + } + + private enum CodingKeys: String, CodingKey { + case findings = "findings" + } + } + + public struct ListIPSetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let detectorId: String + public let nextToken: String? + public let maxResults: Int32? + + public init(detectorId: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.detectorId = detectorId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct GetDetectorRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string) + ] + public let detectorId: String + + public init(detectorId: String) { + self.detectorId = detectorId + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + } + } + + public struct City: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CityName", location: .body(locationName: "cityName"), required: false, type: .string) + ] + /// City name of the remote IP address. + public let cityName: String? + + public init(cityName: String? = nil) { + self.cityName = cityName + } + + private enum CodingKeys: String, CodingKey { + case cityName = "cityName" + } + } + + public struct CreateIPSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Format", location: .body(locationName: "format"), required: false, type: .enum), + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "Activate", location: .body(locationName: "activate"), required: false, type: .boolean), + AWSShapeMember(label: "Location", location: .body(locationName: "location"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string) + ] + /// The format of the file that contains the IPSet. + public let format: IpSetFormat? + public let detectorId: String + /// A boolean value that indicates whether GuardDuty is to start using the uploaded IPSet. + public let activate: Bool? + /// The URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key) + public let location: String? + /// The user friendly name to identify the IPSet. This name is displayed in all findings that are triggered by activity that involves IP addresses included in this IPSet. + public let name: String? + + public init(format: IpSetFormat? = nil, detectorId: String, activate: Bool? = nil, location: String? = nil, name: String? = nil) { + self.format = format + self.detectorId = detectorId + self.activate = activate + self.location = location + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case format = "format" + case detectorId = "detectorId" + case activate = "activate" + case location = "location" + case name = "name" + } + } + + public struct CreateIPSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IpSetId", location: .body(locationName: "ipSetId"), required: false, type: .string) + ] + public let ipSetId: String? + + public init(ipSetId: String? = nil) { + self.ipSetId = ipSetId + } + + private enum CodingKeys: String, CodingKey { + case ipSetId = "ipSetId" + } + } + + public struct UpdateIPSetResponse: AWSShape { + + } + + public struct StopMonitoringMembersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UnprocessedAccounts", location: .body(locationName: "unprocessedAccounts"), required: false, type: .list) + ] + /// A list of objects containing the unprocessed account and a result string explaining why it was unprocessed. + public let unprocessedAccounts: [UnprocessedAccount]? + + public init(unprocessedAccounts: [UnprocessedAccount]? = nil) { + self.unprocessedAccounts = unprocessedAccounts + } + + private enum CodingKeys: String, CodingKey { + case unprocessedAccounts = "unprocessedAccounts" + } + } + + public enum ThreatIntelSetFormat: String, CustomStringConvertible, Codable { + case txt = "TXT" + case stix = "STIX" + case otxCsv = "OTX_CSV" + case alienVault = "ALIEN_VAULT" + case proofPoint = "PROOF_POINT" + case fireEye = "FIRE_EYE" + public var description: String { return self.rawValue } + } + + public enum Feedback: String, CustomStringConvertible, Codable { + case useful = "USEFUL" + case notUseful = "NOT_USEFUL" + public var description: String { return self.rawValue } + } + + public struct StopMonitoringMembersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "AccountIds", location: .body(locationName: "accountIds"), required: false, type: .list) + ] + public let detectorId: String + /// A list of account IDs of the GuardDuty member accounts whose findings you want the master account to stop monitoring. + public let accountIds: [String]? + + public init(detectorId: String, accountIds: [String]? = nil) { + self.detectorId = detectorId + self.accountIds = accountIds + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case accountIds = "accountIds" + } + } + + public struct DeleteIPSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "IpSetId", location: .uri(locationName: "ipSetId"), required: true, type: .string) + ] + public let detectorId: String + public let ipSetId: String + + public init(detectorId: String, ipSetId: String) { + self.detectorId = detectorId + self.ipSetId = ipSetId + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case ipSetId = "ipSetId" + } + } + + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", location: .body(locationName: "value"), required: false, type: .string), + AWSShapeMember(label: "Key", location: .body(locationName: "key"), required: false, type: .string) + ] + /// EC2 instance tag value. + public let value: String? + /// EC2 instance tag key. + public let key: String? + + public init(value: String? = nil, key: String? = nil) { + self.value = value + self.key = key + } + + private enum CodingKeys: String, CodingKey { + case value = "value" + case key = "key" + } + } + + public enum IpSetStatus: String, CustomStringConvertible, Codable { + case inactive = "INACTIVE" + case activating = "ACTIVATING" + case active = "ACTIVE" + case deactivating = "DEACTIVATING" + case error = "ERROR" + case deletePending = "DELETE_PENDING" + case deleted = "DELETED" + public var description: String { return self.rawValue } + } + + public struct Organization: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AsnOrg", location: .body(locationName: "asnOrg"), required: false, type: .string), + AWSShapeMember(label: "Isp", location: .body(locationName: "isp"), required: false, type: .string), + AWSShapeMember(label: "Org", location: .body(locationName: "org"), required: false, type: .string), + AWSShapeMember(label: "Asn", location: .body(locationName: "asn"), required: false, type: .string) + ] + /// Organization that registered this ASN. + public let asnOrg: String? + /// ISP information for the internet provider. + public let isp: String? + /// Name of the internet provider. + public let org: String? + /// Autonomous system number of the internet provider of the remote IP address. + public let asn: String? + + public init(asnOrg: String? = nil, isp: String? = nil, org: String? = nil, asn: String? = nil) { + self.asnOrg = asnOrg + self.isp = isp + self.org = org + self.asn = asn + } + + private enum CodingKeys: String, CodingKey { + case asnOrg = "asnOrg" + case isp = "isp" + case org = "org" + case asn = "asn" + } + } + + public struct UpdateThreatIntelSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ThreatIntelSetId", location: .uri(locationName: "threatIntelSetId"), required: true, type: .string), + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "Activate", location: .body(locationName: "activate"), required: false, type: .boolean), + AWSShapeMember(label: "Location", location: .body(locationName: "location"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string) + ] + public let threatIntelSetId: String + public let detectorId: String + /// The updated boolean value that specifies whether the ThreateIntelSet is active or not. + public let activate: Bool? + /// The updated URI of the file that contains the ThreateIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key) + public let location: String? + /// The unique ID that specifies the ThreatIntelSet that you want to update. + public let name: String? + + public init(threatIntelSetId: String, detectorId: String, activate: Bool? = nil, location: String? = nil, name: String? = nil) { + self.threatIntelSetId = threatIntelSetId + self.detectorId = detectorId + self.activate = activate + self.location = location + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case threatIntelSetId = "threatIntelSetId" + case detectorId = "detectorId" + case activate = "activate" + case location = "location" + case name = "name" + } + } + + public struct InviteMembersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UnprocessedAccounts", location: .body(locationName: "unprocessedAccounts"), required: false, type: .list) + ] + /// A list of objects containing the unprocessed account and a result string explaining why it was unprocessed. + public let unprocessedAccounts: [UnprocessedAccount]? + + public init(unprocessedAccounts: [UnprocessedAccount]? = nil) { + self.unprocessedAccounts = unprocessedAccounts + } + + private enum CodingKeys: String, CodingKey { + case unprocessedAccounts = "unprocessedAccounts" + } + } + + public struct SortCriteria: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeName", location: .body(locationName: "attributeName"), required: false, type: .string), + AWSShapeMember(label: "OrderBy", location: .body(locationName: "orderBy"), required: false, type: .enum) + ] + /// Represents the finding attribute (for example, accountId) by which to sort findings. + public let attributeName: String? + /// Order by which the sorted findings are to be displayed. + public let orderBy: OrderBy? + + public init(attributeName: String? = nil, orderBy: OrderBy? = nil) { + self.attributeName = attributeName + self.orderBy = orderBy + } + + private enum CodingKeys: String, CodingKey { + case attributeName = "attributeName" + case orderBy = "orderBy" + } + } + + public struct FindingCriteria: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Criterion", location: .body(locationName: "criterion"), required: false, type: .map) + ] + /// Represents a map of finding properties that match specified conditions and values when querying findings. + public let criterion: [String: Condition]? + + public init(criterion: [String: Condition]? = nil) { + self.criterion = criterion + } + + private enum CodingKeys: String, CodingKey { + case criterion = "criterion" + } + } + + public struct GetThreatIntelSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ThreatIntelSetId", location: .uri(locationName: "threatIntelSetId"), required: true, type: .string), + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string) + ] + public let threatIntelSetId: String + public let detectorId: String + + public init(threatIntelSetId: String, detectorId: String) { + self.threatIntelSetId = threatIntelSetId + self.detectorId = detectorId + } + + private enum CodingKeys: String, CodingKey { + case threatIntelSetId = "threatIntelSetId" + case detectorId = "detectorId" + } + } + + public struct ListInvitationsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Invitations", location: .body(locationName: "invitations"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + public let invitations: [Invitation]? + public let nextToken: String? + + public init(invitations: [Invitation]? = nil, nextToken: String? = nil) { + self.invitations = invitations + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case invitations = "invitations" + case nextToken = "nextToken" + } + } + + public struct UnprocessedAccount: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountId", location: .body(locationName: "accountId"), required: false, type: .string), + AWSShapeMember(label: "Result", location: .body(locationName: "result"), required: false, type: .string) + ] + /// AWS Account ID. + public let accountId: String? + /// A reason why the account hasn't been processed. + public let result: String? + + public init(accountId: String? = nil, result: String? = nil) { + self.accountId = accountId + self.result = result + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case result = "result" + } + } + + public struct Resource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceDetails", location: .body(locationName: "instanceDetails"), required: false, type: .structure), + AWSShapeMember(label: "ResourceType", location: .body(locationName: "resourceType"), required: false, type: .string) + ] + public let instanceDetails: InstanceDetails? + /// The type of the AWS resource. + public let resourceType: String? + + public init(instanceDetails: InstanceDetails? = nil, resourceType: String? = nil) { + self.instanceDetails = instanceDetails + self.resourceType = resourceType + } + + private enum CodingKeys: String, CodingKey { + case instanceDetails = "instanceDetails" + case resourceType = "resourceType" + } + } + + public struct ProductCode: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProductType", location: .body(locationName: "productType"), required: false, type: .string), + AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .string) + ] + /// Product code type. + public let productType: String? + /// Product code information. + public let code: String? + + public init(productType: String? = nil, code: String? = nil) { + self.productType = productType + self.code = code + } + + private enum CodingKeys: String, CodingKey { + case productType = "productType" + case code = "code" + } + } + + public struct CreateThreatIntelSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ThreatIntelSetId", location: .body(locationName: "threatIntelSetId"), required: false, type: .string) + ] + public let threatIntelSetId: String? + + public init(threatIntelSetId: String? = nil) { + self.threatIntelSetId = threatIntelSetId + } + + private enum CodingKeys: String, CodingKey { + case threatIntelSetId = "threatIntelSetId" + } + } + + public struct Service: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .body(locationName: "detectorId"), required: false, type: .string), + AWSShapeMember(label: "ResourceRole", location: .body(locationName: "resourceRole"), required: false, type: .string), + AWSShapeMember(label: "ServiceName", location: .body(locationName: "serviceName"), required: false, type: .string), + AWSShapeMember(label: "Action", location: .body(locationName: "action"), required: false, type: .structure), + AWSShapeMember(label: "UserFeedback", location: .body(locationName: "userFeedback"), required: false, type: .string), + AWSShapeMember(label: "Archived", location: .body(locationName: "archived"), required: false, type: .boolean), + AWSShapeMember(label: "Count", location: .body(locationName: "count"), required: false, type: .integer), + AWSShapeMember(label: "EventLastSeen", location: .body(locationName: "eventLastSeen"), required: false, type: .string), + AWSShapeMember(label: "EventFirstSeen", location: .body(locationName: "eventFirstSeen"), required: false, type: .string) + ] + /// Detector ID for the GuardDuty service. + public let detectorId: String? + /// Resource role information for this finding. + public let resourceRole: String? + /// The name of the AWS service (GuardDuty) that generated a finding. + public let serviceName: String? + /// Information about the activity described in a finding. + public let action: Action? + /// Feedback left about the finding. + public let userFeedback: String? + /// Indicates whether this finding is archived. + public let archived: Bool? + /// Total count of the occurrences of this finding type. + public let count: Int32? + /// Last seen timestamp of the activity that prompted GuardDuty to generate this finding. + public let eventLastSeen: String? + /// First seen timestamp of the activity that prompted GuardDuty to generate this finding. + public let eventFirstSeen: String? + + public init(detectorId: String? = nil, resourceRole: String? = nil, serviceName: String? = nil, action: Action? = nil, userFeedback: String? = nil, archived: Bool? = nil, count: Int32? = nil, eventLastSeen: String? = nil, eventFirstSeen: String? = nil) { + self.detectorId = detectorId + self.resourceRole = resourceRole + self.serviceName = serviceName + self.action = action + self.userFeedback = userFeedback + self.archived = archived + self.count = count + self.eventLastSeen = eventLastSeen + self.eventFirstSeen = eventFirstSeen + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case resourceRole = "resourceRole" + case serviceName = "serviceName" + case action = "action" + case userFeedback = "userFeedback" + case archived = "archived" + case count = "count" + case eventLastSeen = "eventLastSeen" + case eventFirstSeen = "eventFirstSeen" + } + } + + public struct InviteMembersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string), + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "AccountIds", location: .body(locationName: "accountIds"), required: false, type: .list) + ] + /// The invitation message that you want to send to the accounts that you're inviting to GuardDuty as members. + public let message: String? + public let detectorId: String + /// A list of account IDs of the accounts that you want to invite to GuardDuty as members. + public let accountIds: [String]? + + public init(message: String? = nil, detectorId: String, accountIds: [String]? = nil) { + self.message = message + self.detectorId = detectorId + self.accountIds = accountIds + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + case detectorId = "detectorId" + case accountIds = "accountIds" + } + } + + public struct GetMembersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Members", location: .body(locationName: "members"), required: false, type: .list), + AWSShapeMember(label: "UnprocessedAccounts", location: .body(locationName: "unprocessedAccounts"), required: false, type: .list) + ] + public let members: [Member]? + /// A list of objects containing the unprocessed account and a result string explaining why it was unprocessed. + public let unprocessedAccounts: [UnprocessedAccount]? + + public init(members: [Member]? = nil, unprocessedAccounts: [UnprocessedAccount]? = nil) { + self.members = members + self.unprocessedAccounts = unprocessedAccounts + } + + private enum CodingKeys: String, CodingKey { + case members = "members" + case unprocessedAccounts = "unprocessedAccounts" + } + } + + public struct AccountDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountId", location: .body(locationName: "accountId"), required: false, type: .string), + AWSShapeMember(label: "Email", location: .body(locationName: "email"), required: false, type: .string) + ] + /// Member account ID. + public let accountId: String? + /// Member account's email address. + public let email: String? + + public init(accountId: String? = nil, email: String? = nil) { + self.accountId = accountId + self.email = email + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case email = "email" + } + } + + public struct DeleteIPSetResponse: AWSShape { + + } + + public struct ListFindingsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "FindingIds", location: .body(locationName: "findingIds"), required: false, type: .list) + ] + public let nextToken: String? + public let findingIds: [String]? + + public init(nextToken: String? = nil, findingIds: [String]? = nil) { + self.nextToken = nextToken + self.findingIds = findingIds + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case findingIds = "findingIds" + } + } + + public struct InstanceDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceState", location: .body(locationName: "instanceState"), required: false, type: .string), + AWSShapeMember(label: "Platform", location: .body(locationName: "platform"), required: false, type: .string), + AWSShapeMember(label: "ProductCodes", location: .body(locationName: "productCodes"), required: false, type: .list), + AWSShapeMember(label: "LaunchTime", location: .body(locationName: "launchTime"), required: false, type: .string), + AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), + AWSShapeMember(label: "Tags", location: .body(locationName: "tags"), required: false, type: .list), + AWSShapeMember(label: "IamInstanceProfile", location: .body(locationName: "iamInstanceProfile"), required: false, type: .structure), + AWSShapeMember(label: "ImageId", location: .body(locationName: "imageId"), required: false, type: .string), + AWSShapeMember(label: "NetworkInterfaces", location: .body(locationName: "networkInterfaces"), required: false, type: .list), + AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .string), + AWSShapeMember(label: "AvailabilityZone", location: .body(locationName: "availabilityZone"), required: false, type: .string) + ] + /// The state of the EC2 instance. + public let instanceState: String? + /// The platform of the EC2 instance. + public let platform: String? + /// The product code of the EC2 instance. + public let productCodes: [ProductCode]? + /// The launch time of the EC2 instance. + public let launchTime: String? + /// The ID of the EC2 instance. + public let instanceId: String? + /// The tags of the EC2 instance. + public let tags: [Tag]? + public let iamInstanceProfile: IamInstanceProfile? + /// The image ID of the EC2 instance. + public let imageId: String? + /// The network interface information of the EC2 instance. + public let networkInterfaces: [NetworkInterface]? + /// The type of the EC2 instance. + public let instanceType: String? + /// The availability zone of the EC2 instance. + public let availabilityZone: String? + + public init(instanceState: String? = nil, platform: String? = nil, productCodes: [ProductCode]? = nil, launchTime: String? = nil, instanceId: String? = nil, tags: [Tag]? = nil, iamInstanceProfile: IamInstanceProfile? = nil, imageId: String? = nil, networkInterfaces: [NetworkInterface]? = nil, instanceType: String? = nil, availabilityZone: String? = nil) { + self.instanceState = instanceState + self.platform = platform + self.productCodes = productCodes + self.launchTime = launchTime + self.instanceId = instanceId + self.tags = tags + self.iamInstanceProfile = iamInstanceProfile + self.imageId = imageId + self.networkInterfaces = networkInterfaces + self.instanceType = instanceType + self.availabilityZone = availabilityZone + } + + private enum CodingKeys: String, CodingKey { + case instanceState = "instanceState" + case platform = "platform" + case productCodes = "productCodes" + case launchTime = "launchTime" + case instanceId = "instanceId" + case tags = "tags" + case iamInstanceProfile = "iamInstanceProfile" + case imageId = "imageId" + case networkInterfaces = "networkInterfaces" + case instanceType = "instanceType" + case availabilityZone = "availabilityZone" + } + } + + public struct DisassociateFromMasterAccountResponse: AWSShape { + + } + + public struct ListThreatIntelSetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let detectorId: String + public let nextToken: String? + public let maxResults: Int32? + + public init(detectorId: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.detectorId = detectorId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct DisassociateMembersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UnprocessedAccounts", location: .body(locationName: "unprocessedAccounts"), required: false, type: .list) + ] + /// A list of objects containing the unprocessed account and a result string explaining why it was unprocessed. + public let unprocessedAccounts: [UnprocessedAccount]? + + public init(unprocessedAccounts: [UnprocessedAccount]? = nil) { + self.unprocessedAccounts = unprocessedAccounts + } + + private enum CodingKeys: String, CodingKey { + case unprocessedAccounts = "unprocessedAccounts" + } + } + + public struct Member: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountId", location: .body(locationName: "accountId"), required: false, type: .string), + AWSShapeMember(label: "DetectorId", location: .body(locationName: "detectorId"), required: false, type: .string), + AWSShapeMember(label: "Email", location: .body(locationName: "email"), required: false, type: .string), + AWSShapeMember(label: "MasterId", location: .body(locationName: "masterId"), required: false, type: .string), + AWSShapeMember(label: "UpdatedAt", location: .body(locationName: "updatedAt"), required: false, type: .string), + AWSShapeMember(label: "InvitedAt", location: .body(locationName: "invitedAt"), required: false, type: .string), + AWSShapeMember(label: "RelationshipStatus", location: .body(locationName: "relationshipStatus"), required: false, type: .string) + ] + public let accountId: String? + public let detectorId: String? + /// Member account's email address. + public let email: String? + public let masterId: String? + public let updatedAt: String? + /// Timestamp at which the invitation was sent + public let invitedAt: String? + /// The status of the relationship between the member and the master. + public let relationshipStatus: String? + + public init(accountId: String? = nil, detectorId: String? = nil, email: String? = nil, masterId: String? = nil, updatedAt: String? = nil, invitedAt: String? = nil, relationshipStatus: String? = nil) { + self.accountId = accountId + self.detectorId = detectorId + self.email = email + self.masterId = masterId + self.updatedAt = updatedAt + self.invitedAt = invitedAt + self.relationshipStatus = relationshipStatus + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case detectorId = "detectorId" + case email = "email" + case masterId = "masterId" + case updatedAt = "updatedAt" + case invitedAt = "invitedAt" + case relationshipStatus = "relationshipStatus" + } + } + + public struct ArchiveFindingsResponse: AWSShape { + + } + + public struct GetDetectorResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UpdatedAt", location: .body(locationName: "updatedAt"), required: false, type: .string), + AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "CreatedAt", location: .body(locationName: "createdAt"), required: false, type: .string), + AWSShapeMember(label: "ServiceRole", location: .body(locationName: "serviceRole"), required: false, type: .string) + ] + public let updatedAt: String? + public let status: DetectorStatus? + public let createdAt: String? + public let serviceRole: String? + + public init(updatedAt: String? = nil, status: DetectorStatus? = nil, createdAt: String? = nil, serviceRole: String? = nil) { + self.updatedAt = updatedAt + self.status = status + self.createdAt = createdAt + self.serviceRole = serviceRole + } + + private enum CodingKeys: String, CodingKey { + case updatedAt = "updatedAt" + case status = "status" + case createdAt = "createdAt" + case serviceRole = "serviceRole" + } + } + + public struct GetFindingsStatisticsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FindingStatistics", location: .body(locationName: "findingStatistics"), required: false, type: .structure) + ] + /// Finding statistics object. + public let findingStatistics: FindingStatistics? + + public init(findingStatistics: FindingStatistics? = nil) { + self.findingStatistics = findingStatistics + } + + private enum CodingKeys: String, CodingKey { + case findingStatistics = "findingStatistics" + } + } + + public struct UpdateIPSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "Activate", location: .body(locationName: "activate"), required: false, type: .boolean), + AWSShapeMember(label: "Location", location: .body(locationName: "location"), required: false, type: .string), + AWSShapeMember(label: "IpSetId", location: .uri(locationName: "ipSetId"), required: true, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string) + ] + public let detectorId: String + /// The updated boolean value that specifies whether the IPSet is active or not. + public let activate: Bool? + /// The updated URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key). + public let location: String? + public let ipSetId: String + /// The unique ID that specifies the IPSet that you want to update. + public let name: String? + + public init(detectorId: String, activate: Bool? = nil, location: String? = nil, ipSetId: String, name: String? = nil) { + self.detectorId = detectorId + self.activate = activate + self.location = location + self.ipSetId = ipSetId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case activate = "activate" + case location = "location" + case ipSetId = "ipSetId" + case name = "name" + } + } + + public struct ErrorResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", location: .body(locationName: "__type"), required: false, type: .string), + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + /// The error type. + public let `type`: String? + /// The error message. + public let message: String? + + public init(type: String? = nil, message: String? = nil) { + self.`type` = `type` + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case `type` = "__type" + case message = "message" + } + } + + public struct DnsRequestAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Domain", location: .body(locationName: "domain"), required: false, type: .string) + ] + /// Domain information for the DNS request. + public let domain: String? + + public init(domain: String? = nil) { + self.domain = domain + } + + private enum CodingKeys: String, CodingKey { + case domain = "domain" + } + } + + public struct UnarchiveFindingsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "FindingIds", location: .body(locationName: "findingIds"), required: false, type: .list) + ] + public let detectorId: String + /// IDs of the findings that you want to unarchive. + public let findingIds: [String]? + + public init(detectorId: String, findingIds: [String]? = nil) { + self.detectorId = detectorId + self.findingIds = findingIds + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case findingIds = "findingIds" + } + } + + public struct UpdateDetectorResponse: AWSShape { + + } + + public struct Invitation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountId", location: .body(locationName: "accountId"), required: false, type: .string), + AWSShapeMember(label: "InvitationId", location: .body(locationName: "invitationId"), required: false, type: .string), + AWSShapeMember(label: "RelationshipStatus", location: .body(locationName: "relationshipStatus"), required: false, type: .string), + AWSShapeMember(label: "InvitedAt", location: .body(locationName: "invitedAt"), required: false, type: .string) + ] + /// Inviter account ID + public let accountId: String? + /// This value is used to validate the inviter account to the member account. + public let invitationId: String? + /// The status of the relationship between the inviter and invitee accounts. + public let relationshipStatus: String? + /// Timestamp at which the invitation was sent + public let invitedAt: String? + + public init(accountId: String? = nil, invitationId: String? = nil, relationshipStatus: String? = nil, invitedAt: String? = nil) { + self.accountId = accountId + self.invitationId = invitationId + self.relationshipStatus = relationshipStatus + self.invitedAt = invitedAt + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case invitationId = "invitationId" + case relationshipStatus = "relationshipStatus" + case invitedAt = "invitedAt" + } + } + + public struct Finding: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Severity", location: .body(locationName: "severity"), required: false, type: .double), + AWSShapeMember(label: "AccountId", location: .body(locationName: "accountId"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "Partition", location: .body(locationName: "partition"), required: false, type: .string), + AWSShapeMember(label: "Service", location: .body(locationName: "service"), required: false, type: .structure), + AWSShapeMember(label: "Region", location: .body(locationName: "region"), required: false, type: .string), + AWSShapeMember(label: "UpdatedAt", location: .body(locationName: "updatedAt"), required: false, type: .string), + AWSShapeMember(label: "Title", location: .body(locationName: "title"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string), + AWSShapeMember(label: "CreatedAt", location: .body(locationName: "createdAt"), required: false, type: .string), + AWSShapeMember(label: "Resource", location: .body(locationName: "resource"), required: false, type: .structure), + AWSShapeMember(label: "SchemaVersion", location: .body(locationName: "schemaVersion"), required: false, type: .string), + AWSShapeMember(label: "Confidence", location: .body(locationName: "confidence"), required: false, type: .double), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .string) + ] + /// The severity of a finding. + public let severity: Double? + /// AWS account ID where the activity occurred that prompted GuardDuty to generate a finding. + public let accountId: String? + /// The ARN of a finding described by the action. + public let arn: String? + /// The AWS resource partition. + public let partition: String? + /// Additional information assigned to the generated finding by GuardDuty. + public let service: Service? + /// The AWS region where the activity occurred that prompted GuardDuty to generate a finding. + public let region: String? + /// The time stamp at which a finding was last updated. + public let updatedAt: String? + /// The title of a finding. + public let title: String? + /// The description of a finding. + public let description: String? + /// The identifier that corresponds to a finding described by the action. + public let id: String? + /// The time stamp at which a finding was generated. + public let createdAt: String? + /// The AWS resource associated with the activity that prompted GuardDuty to generate a finding. + public let resource: Resource? + /// Findings' schema version. + public let schemaVersion: String? + /// The confidence level of a finding. + public let confidence: Double? + /// The type of a finding described by the action. + public let `type`: String? + + public init(severity: Double? = nil, accountId: String? = nil, arn: String? = nil, partition: String? = nil, service: Service? = nil, region: String? = nil, updatedAt: String? = nil, title: String? = nil, description: String? = nil, id: String? = nil, createdAt: String? = nil, resource: Resource? = nil, schemaVersion: String? = nil, confidence: Double? = nil, type: String? = nil) { + self.severity = severity + self.accountId = accountId + self.arn = arn + self.partition = partition + self.service = service + self.region = region + self.updatedAt = updatedAt + self.title = title + self.description = description + self.id = id + self.createdAt = createdAt + self.resource = resource + self.schemaVersion = schemaVersion + self.confidence = confidence + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case severity = "severity" + case accountId = "accountId" + case arn = "arn" + case partition = "partition" + case service = "service" + case region = "region" + case updatedAt = "updatedAt" + case title = "title" + case description = "description" + case id = "id" + case createdAt = "createdAt" + case resource = "resource" + case schemaVersion = "schemaVersion" + case confidence = "confidence" + case `type` = "type" + } + } + + public struct UnarchiveFindingsResponse: AWSShape { + + } + + public struct DeleteDetectorResponse: AWSShape { + + } + + public struct NetworkInterface: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PrivateIpAddresses", location: .body(locationName: "privateIpAddresses"), required: false, type: .list), + AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "securityGroups"), required: false, type: .list), + AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), + AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), + AWSShapeMember(label: "PublicDnsName", location: .body(locationName: "publicDnsName"), required: false, type: .string), + AWSShapeMember(label: "Ipv6Addresses", location: .body(locationName: "ipv6Addresses"), required: false, type: .list), + AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: false, type: .string), + AWSShapeMember(label: "PrivateDnsName", location: .body(locationName: "privateDnsName"), required: false, type: .string), + AWSShapeMember(label: "PrivateIpAddress", location: .body(locationName: "privateIpAddress"), required: false, type: .string) + ] + /// Other private IP address information of the EC2 instance. + public let privateIpAddresses: [PrivateIpAddressDetails]? + /// Security groups associated with the EC2 instance. + public let securityGroups: [SecurityGroup]? + /// The subnet ID of the EC2 instance. + public let subnetId: String? + /// The VPC ID of the EC2 instance. + public let vpcId: String? + /// Public DNS name of the EC2 instance. + public let publicDnsName: String? + /// A list of EC2 instance IPv6 address information. + public let ipv6Addresses: [String]? + /// Public IP address of the EC2 instance. + public let publicIp: String? + /// Private DNS name of the EC2 instance. + public let privateDnsName: String? + /// Private IP address of the EC2 instance. + public let privateIpAddress: String? + + public init(privateIpAddresses: [PrivateIpAddressDetails]? = nil, securityGroups: [SecurityGroup]? = nil, subnetId: String? = nil, vpcId: String? = nil, publicDnsName: String? = nil, ipv6Addresses: [String]? = nil, publicIp: String? = nil, privateDnsName: String? = nil, privateIpAddress: String? = nil) { + self.privateIpAddresses = privateIpAddresses + self.securityGroups = securityGroups + self.subnetId = subnetId + self.vpcId = vpcId + self.publicDnsName = publicDnsName + self.ipv6Addresses = ipv6Addresses + self.publicIp = publicIp + self.privateDnsName = privateDnsName + self.privateIpAddress = privateIpAddress + } + + private enum CodingKeys: String, CodingKey { + case privateIpAddresses = "privateIpAddresses" + case securityGroups = "securityGroups" + case subnetId = "subnetId" + case vpcId = "vpcId" + case publicDnsName = "publicDnsName" + case ipv6Addresses = "ipv6Addresses" + case publicIp = "publicIp" + case privateDnsName = "privateDnsName" + case privateIpAddress = "privateIpAddress" + } + } + + public struct RemotePortDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PortName", location: .body(locationName: "portName"), required: false, type: .string), + AWSShapeMember(label: "Port", location: .body(locationName: "port"), required: false, type: .integer) + ] + /// Port name of the remote connection. + public let portName: String? + /// Port number of the remote connection. + public let port: Int32? + + public init(portName: String? = nil, port: Int32? = nil) { + self.portName = portName + self.port = port + } + + private enum CodingKeys: String, CodingKey { + case portName = "portName" + case port = "port" + } + } + + public struct CreateDetectorRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Enable", location: .body(locationName: "enable"), required: false, type: .boolean) + ] + /// A boolean value that specifies whether the detector is to be enabled. + public let enable: Bool? + + public init(enable: Bool? = nil) { + self.enable = enable + } + + private enum CodingKeys: String, CodingKey { + case enable = "enable" + } + } + + public struct RemoteIpDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Country", location: .body(locationName: "country"), required: false, type: .structure), + AWSShapeMember(label: "GeoLocation", location: .body(locationName: "geoLocation"), required: false, type: .structure), + AWSShapeMember(label: "City", location: .body(locationName: "city"), required: false, type: .structure), + AWSShapeMember(label: "IpAddressV4", location: .body(locationName: "ipAddressV4"), required: false, type: .string), + AWSShapeMember(label: "Organization", location: .body(locationName: "organization"), required: false, type: .structure) + ] + /// Country code of the remote IP address. + public let country: Country? + /// Location information of the remote IP address. + public let geoLocation: GeoLocation? + /// City information of the remote IP address. + public let city: City? + /// IPV4 remote address of the connection. + public let ipAddressV4: String? + /// ISP Organization information of the remote IP address. + public let organization: Organization? + + public init(country: Country? = nil, geoLocation: GeoLocation? = nil, city: City? = nil, ipAddressV4: String? = nil, organization: Organization? = nil) { + self.country = country + self.geoLocation = geoLocation + self.city = city + self.ipAddressV4 = ipAddressV4 + self.organization = organization + } + + private enum CodingKeys: String, CodingKey { + case country = "country" + case geoLocation = "geoLocation" + case city = "city" + case ipAddressV4 = "ipAddressV4" + case organization = "organization" + } + } + + public struct DeclineInvitationsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UnprocessedAccounts", location: .body(locationName: "unprocessedAccounts"), required: false, type: .list) + ] + /// A list of objects containing the unprocessed account and a result string explaining why it was unprocessed. + public let unprocessedAccounts: [UnprocessedAccount]? + + public init(unprocessedAccounts: [UnprocessedAccount]? = nil) { + self.unprocessedAccounts = unprocessedAccounts + } + + private enum CodingKeys: String, CodingKey { + case unprocessedAccounts = "unprocessedAccounts" + } + } + + public struct ListThreatIntelSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "ThreatIntelSetIds", location: .body(locationName: "threatIntelSetIds"), required: false, type: .list) + ] + public let nextToken: String? + public let threatIntelSetIds: [String]? + + public init(nextToken: String? = nil, threatIntelSetIds: [String]? = nil) { + self.nextToken = nextToken + self.threatIntelSetIds = threatIntelSetIds + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case threatIntelSetIds = "threatIntelSetIds" + } + } + + public struct UpdateThreatIntelSetResponse: AWSShape { + + } + + public struct GetInvitationsCountResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InvitationsCount", location: .body(locationName: "invitationsCount"), required: false, type: .integer) + ] + /// The number of received invitations. + public let invitationsCount: Int32? + + public init(invitationsCount: Int32? = nil) { + self.invitationsCount = invitationsCount + } + + private enum CodingKeys: String, CodingKey { + case invitationsCount = "invitationsCount" + } + } + + public struct IamInstanceProfile: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + /// AWS EC2 instance profile ARN. + public let arn: String? + /// AWS EC2 instance profile ID. + public let id: String? + + public init(arn: String? = nil, id: String? = nil) { + self.arn = arn + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case id = "id" + } + } + + public struct AcceptInvitationResponse: AWSShape { + + } + + public struct ListDetectorsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct Country: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CountryName", location: .body(locationName: "countryName"), required: false, type: .string), + AWSShapeMember(label: "CountryCode", location: .body(locationName: "countryCode"), required: false, type: .string) + ] + /// Country name of the remote IP address. + public let countryName: String? + /// Country code of the remote IP address. + public let countryCode: String? + + public init(countryName: String? = nil, countryCode: String? = nil) { + self.countryName = countryName + self.countryCode = countryCode + } + + private enum CodingKeys: String, CodingKey { + case countryName = "countryName" + case countryCode = "countryCode" + } + } + + public struct ArchiveFindingsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "FindingIds", location: .body(locationName: "findingIds"), required: false, type: .list) + ] + public let detectorId: String + /// IDs of the findings that you want to archive. + public let findingIds: [String]? + + public init(detectorId: String, findingIds: [String]? = nil) { + self.detectorId = detectorId + self.findingIds = findingIds + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case findingIds = "findingIds" + } + } + + public struct Master: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountId", location: .body(locationName: "accountId"), required: false, type: .string), + AWSShapeMember(label: "InvitationId", location: .body(locationName: "invitationId"), required: false, type: .string), + AWSShapeMember(label: "RelationshipStatus", location: .body(locationName: "relationshipStatus"), required: false, type: .string), + AWSShapeMember(label: "InvitedAt", location: .body(locationName: "invitedAt"), required: false, type: .string) + ] + /// Master account ID + public let accountId: String? + /// This value is used to validate the master account to the member account. + public let invitationId: String? + /// The status of the relationship between the master and member accounts. + public let relationshipStatus: String? + /// Timestamp at which the invitation was sent + public let invitedAt: String? + + public init(accountId: String? = nil, invitationId: String? = nil, relationshipStatus: String? = nil, invitedAt: String? = nil) { + self.accountId = accountId + self.invitationId = invitationId + self.relationshipStatus = relationshipStatus + self.invitedAt = invitedAt + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case invitationId = "invitationId" + case relationshipStatus = "relationshipStatus" + case invitedAt = "invitedAt" + } + } + + public struct UpdateFindingsFeedbackResponse: AWSShape { + + } + + public struct GetMasterAccountRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string) + ] + public let detectorId: String + + public init(detectorId: String) { + self.detectorId = detectorId + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + } + } + + public struct FindingStatistics: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CountBySeverity", location: .body(locationName: "countBySeverity"), required: false, type: .map) + ] + /// Represents a map of severity to count statistic for a set of findings + public let countBySeverity: [String: Int32]? + + public init(countBySeverity: [String: Int32]? = nil) { + self.countBySeverity = countBySeverity + } + + private enum CodingKeys: String, CodingKey { + case countBySeverity = "countBySeverity" + } + } + + public struct GetInvitationsCountRequest: AWSShape { + + } + + public struct Condition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Gte", location: .body(locationName: "gte"), required: false, type: .integer), + AWSShapeMember(label: "Lte", location: .body(locationName: "lte"), required: false, type: .integer), + AWSShapeMember(label: "Gt", location: .body(locationName: "gt"), required: false, type: .integer), + AWSShapeMember(label: "Neq", location: .body(locationName: "neq"), required: false, type: .list), + AWSShapeMember(label: "Eq", location: .body(locationName: "eq"), required: false, type: .list), + AWSShapeMember(label: "Lt", location: .body(locationName: "lt"), required: false, type: .integer) + ] + /// Represents the greater than equal condition to be applied to a single field when querying for findings. + public let gte: Int32? + /// Represents the less than equal condition to be applied to a single field when querying for findings. + public let lte: Int32? + /// Represents the greater than condition to be applied to a single field when querying for findings. + public let gt: Int32? + /// Represents the not equal condition to be applied to a single field when querying for findings. + public let neq: [String]? + /// Represents the equal condition to be applied to a single field when querying for findings. + public let eq: [String]? + /// Represents the less than condition to be applied to a single field when querying for findings. + public let lt: Int32? + + public init(gte: Int32? = nil, lte: Int32? = nil, gt: Int32? = nil, neq: [String]? = nil, eq: [String]? = nil, lt: Int32? = nil) { + self.gte = gte + self.lte = lte + self.gt = gt + self.neq = neq + self.eq = eq + self.lt = lt + } + + private enum CodingKeys: String, CodingKey { + case gte = "gte" + case lte = "lte" + case gt = "gt" + case neq = "neq" + case eq = "eq" + case lt = "lt" + } + } + + public struct GetIPSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Format", location: .body(locationName: "format"), required: false, type: .enum), + AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "Location", location: .body(locationName: "location"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string) + ] + /// The format of the file that contains the IPSet. + public let format: IpSetFormat? + /// The status of ipSet file uploaded. + public let status: IpSetStatus? + /// The URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key) + public let location: String? + /// The user friendly name to identify the IPSet. This name is displayed in all findings that are triggered by activity that involves IP addresses included in this IPSet. + public let name: String? + + public init(format: IpSetFormat? = nil, status: IpSetStatus? = nil, location: String? = nil, name: String? = nil) { + self.format = format + self.status = status + self.location = location + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case format = "format" + case status = "status" + case location = "location" + case name = "name" + } + } + + public struct DeleteInvitationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountIds", location: .body(locationName: "accountIds"), required: false, type: .list) + ] + /// A list of account IDs of the AWS accounts that sent invitations to the current member account that you want to delete invitations from. + public let accountIds: [String]? + + public init(accountIds: [String]? = nil) { + self.accountIds = accountIds + } + + private enum CodingKeys: String, CodingKey { + case accountIds = "accountIds" + } + } + + public struct ListMembersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Members", location: .body(locationName: "members"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + public let members: [Member]? + public let nextToken: String? + + public init(members: [Member]? = nil, nextToken: String? = nil) { + self.members = members + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case members = "members" + case nextToken = "nextToken" + } + } + + public struct ListMembersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "OnlyAssociated", location: .querystring(locationName: "onlyAssociated"), required: false, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let detectorId: String + public let onlyAssociated: String? + public let nextToken: String? + public let maxResults: Int32? + + public init(detectorId: String, onlyAssociated: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.detectorId = detectorId + self.onlyAssociated = onlyAssociated + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case onlyAssociated = "onlyAssociated" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct UpdateDetectorRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "Enable", location: .body(locationName: "enable"), required: false, type: .boolean) + ] + public let detectorId: String + /// Updated boolean value for the detector that specifies whether the detector is enabled. + public let enable: Bool? + + public init(detectorId: String, enable: Bool? = nil) { + self.detectorId = detectorId + self.enable = enable + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case enable = "enable" + } + } + + public struct UpdateFindingsFeedbackRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "FindingIds", location: .body(locationName: "findingIds"), required: false, type: .list), + AWSShapeMember(label: "Comments", location: .body(locationName: "comments"), required: false, type: .string), + AWSShapeMember(label: "Feedback", location: .body(locationName: "feedback"), required: false, type: .enum) + ] + public let detectorId: String + /// IDs of the findings that you want to mark as useful or not useful. + public let findingIds: [String]? + /// Additional feedback about the GuardDuty findings. + public let comments: String? + /// Valid values: USEFUL | NOT_USEFUL + public let feedback: Feedback? + + public init(detectorId: String, findingIds: [String]? = nil, comments: String? = nil, feedback: Feedback? = nil) { + self.detectorId = detectorId + self.findingIds = findingIds + self.comments = comments + self.feedback = feedback + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case findingIds = "findingIds" + case comments = "comments" + case feedback = "feedback" + } + } + + public struct AwsApiCallAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Api", location: .body(locationName: "api"), required: false, type: .string), + AWSShapeMember(label: "ServiceName", location: .body(locationName: "serviceName"), required: false, type: .string), + AWSShapeMember(label: "DomainDetails", location: .body(locationName: "domainDetails"), required: false, type: .structure), + AWSShapeMember(label: "RemoteIpDetails", location: .body(locationName: "remoteIpDetails"), required: false, type: .structure), + AWSShapeMember(label: "CallerType", location: .body(locationName: "callerType"), required: false, type: .string) + ] + /// AWS API name. + public let api: String? + /// AWS service name whose API was invoked. + public let serviceName: String? + /// Domain information for the AWS API call. + public let domainDetails: DomainDetails? + /// Remote IP information of the connection. + public let remoteIpDetails: RemoteIpDetails? + /// AWS API caller type. + public let callerType: String? + + public init(api: String? = nil, serviceName: String? = nil, domainDetails: DomainDetails? = nil, remoteIpDetails: RemoteIpDetails? = nil, callerType: String? = nil) { + self.api = api + self.serviceName = serviceName + self.domainDetails = domainDetails + self.remoteIpDetails = remoteIpDetails + self.callerType = callerType + } + + private enum CodingKeys: String, CodingKey { + case api = "api" + case serviceName = "serviceName" + case domainDetails = "domainDetails" + case remoteIpDetails = "remoteIpDetails" + case callerType = "callerType" + } + } + + public struct LocalPortDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PortName", location: .body(locationName: "portName"), required: false, type: .string), + AWSShapeMember(label: "Port", location: .body(locationName: "port"), required: false, type: .integer) + ] + /// Port name of the local connection. + public let portName: String? + /// Port number of the local connection. + public let port: Int32? + + public init(portName: String? = nil, port: Int32? = nil) { + self.portName = portName + self.port = port + } + + private enum CodingKeys: String, CodingKey { + case portName = "portName" + case port = "port" + } + } + + public struct CreateSampleFindingsResponse: AWSShape { + + } + + public struct StartMonitoringMembersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UnprocessedAccounts", location: .body(locationName: "unprocessedAccounts"), required: false, type: .list) + ] + /// A list of objects containing the unprocessed account and a result string explaining why it was unprocessed. + public let unprocessedAccounts: [UnprocessedAccount]? + + public init(unprocessedAccounts: [UnprocessedAccount]? = nil) { + self.unprocessedAccounts = unprocessedAccounts + } + + private enum CodingKeys: String, CodingKey { + case unprocessedAccounts = "unprocessedAccounts" + } + } + + public struct DomainDetails: AWSShape { + + } + + public struct StartMonitoringMembersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "AccountIds", location: .body(locationName: "accountIds"), required: false, type: .list) + ] + public let detectorId: String + /// A list of account IDs of the GuardDuty member accounts whose findings you want the master account to monitor. + public let accountIds: [String]? + + public init(detectorId: String, accountIds: [String]? = nil) { + self.detectorId = detectorId + self.accountIds = accountIds + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case accountIds = "accountIds" + } + } + + public enum IpSetFormat: String, CustomStringConvertible, Codable { + case txt = "TXT" + case stix = "STIX" + case otxCsv = "OTX_CSV" + case alienVault = "ALIEN_VAULT" + case proofPoint = "PROOF_POINT" + case fireEye = "FIRE_EYE" + public var description: String { return self.rawValue } + } + + public struct DeleteThreatIntelSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ThreatIntelSetId", location: .uri(locationName: "threatIntelSetId"), required: true, type: .string), + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string) + ] + public let threatIntelSetId: String + public let detectorId: String + + public init(threatIntelSetId: String, detectorId: String) { + self.threatIntelSetId = threatIntelSetId + self.detectorId = detectorId + } + + private enum CodingKeys: String, CodingKey { + case threatIntelSetId = "threatIntelSetId" + case detectorId = "detectorId" + } + } + + public struct DeleteMembersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "AccountIds", location: .body(locationName: "accountIds"), required: false, type: .list) + ] + public let detectorId: String + /// A list of account IDs of the GuardDuty member accounts that you want to delete. + public let accountIds: [String]? + + public init(detectorId: String, accountIds: [String]? = nil) { + self.detectorId = detectorId + self.accountIds = accountIds + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case accountIds = "accountIds" + } + } + + public struct SecurityGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupId", location: .body(locationName: "groupId"), required: false, type: .string), + AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: false, type: .string) + ] + /// EC2 instance's security group ID. + public let groupId: String? + /// EC2 instance's security group name. + public let groupName: String? + + public init(groupId: String? = nil, groupName: String? = nil) { + self.groupId = groupId + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case groupId = "groupId" + case groupName = "groupName" + } + } + + public struct PrivateIpAddressDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PrivateIpAddress", location: .body(locationName: "privateIpAddress"), required: false, type: .string), + AWSShapeMember(label: "PrivateDnsName", location: .body(locationName: "privateDnsName"), required: false, type: .string) + ] + /// Private IP address of the EC2 instance. + public let privateIpAddress: String? + /// Private DNS name of the EC2 instance. + public let privateDnsName: String? + + public init(privateIpAddress: String? = nil, privateDnsName: String? = nil) { + self.privateIpAddress = privateIpAddress + self.privateDnsName = privateDnsName + } + + private enum CodingKeys: String, CodingKey { + case privateIpAddress = "privateIpAddress" + case privateDnsName = "privateDnsName" + } + } + + public struct DeleteDetectorRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string) + ] + public let detectorId: String + + public init(detectorId: String) { + self.detectorId = detectorId + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + } + } + + public struct CreateMembersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UnprocessedAccounts", location: .body(locationName: "unprocessedAccounts"), required: false, type: .list) + ] + /// A list of objects containing the unprocessed account and a result string explaining why it was unprocessed. + public let unprocessedAccounts: [UnprocessedAccount]? + + public init(unprocessedAccounts: [UnprocessedAccount]? = nil) { + self.unprocessedAccounts = unprocessedAccounts + } + + private enum CodingKeys: String, CodingKey { + case unprocessedAccounts = "unprocessedAccounts" + } + } + + public struct CreateMembersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountDetails", location: .body(locationName: "accountDetails"), required: false, type: .list), + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string) + ] + /// A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account. + public let accountDetails: [AccountDetail]? + public let detectorId: String + + public init(accountDetails: [AccountDetail]? = nil, detectorId: String) { + self.accountDetails = accountDetails + self.detectorId = detectorId + } + + private enum CodingKeys: String, CodingKey { + case accountDetails = "accountDetails" + case detectorId = "detectorId" + } + } + + public struct DisassociateFromMasterAccountRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string) + ] + public let detectorId: String + + public init(detectorId: String) { + self.detectorId = detectorId + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + } + } + + public struct CreateSampleFindingsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "FindingTypes", location: .body(locationName: "findingTypes"), required: false, type: .list) + ] + public let detectorId: String + /// Types of sample findings that you want to generate. + public let findingTypes: [String]? + + public init(detectorId: String, findingTypes: [String]? = nil) { + self.detectorId = detectorId + self.findingTypes = findingTypes + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case findingTypes = "findingTypes" + } + } + + public struct CreateDetectorResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .body(locationName: "detectorId"), required: false, type: .string) + ] + /// The unique ID of the created detector. + public let detectorId: String? + + public init(detectorId: String? = nil) { + self.detectorId = detectorId + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + } + } + + public struct ListIPSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IpSetIds", location: .body(locationName: "ipSetIds"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + public let ipSetIds: [String]? + public let nextToken: String? + + public init(ipSetIds: [String]? = nil, nextToken: String? = nil) { + self.ipSetIds = ipSetIds + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case ipSetIds = "ipSetIds" + case nextToken = "nextToken" + } + } + + public struct DeleteInvitationsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UnprocessedAccounts", location: .body(locationName: "unprocessedAccounts"), required: false, type: .list) + ] + /// A list of objects containing the unprocessed account and a result string explaining why it was unprocessed. + public let unprocessedAccounts: [UnprocessedAccount]? + + public init(unprocessedAccounts: [UnprocessedAccount]? = nil) { + self.unprocessedAccounts = unprocessedAccounts + } + + private enum CodingKeys: String, CodingKey { + case unprocessedAccounts = "unprocessedAccounts" + } + } + + public struct GetFindingsStatisticsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FindingCriteria", location: .body(locationName: "findingCriteria"), required: false, type: .structure), + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "FindingStatisticTypes", location: .body(locationName: "findingStatisticTypes"), required: false, type: .list) + ] + /// Represents the criteria used for querying findings. + public let findingCriteria: FindingCriteria? + public let detectorId: String + /// Types of finding statistics to retrieve. + public let findingStatisticTypes: [FindingStatisticType]? + + public init(findingCriteria: FindingCriteria? = nil, detectorId: String, findingStatisticTypes: [FindingStatisticType]? = nil) { + self.findingCriteria = findingCriteria + self.detectorId = detectorId + self.findingStatisticTypes = findingStatisticTypes + } + + private enum CodingKeys: String, CodingKey { + case findingCriteria = "findingCriteria" + case detectorId = "detectorId" + case findingStatisticTypes = "findingStatisticTypes" + } + } + + public struct GetMasterAccountResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Master", location: .body(locationName: "master"), required: false, type: .structure) + ] + public let master: Master? + + public init(master: Master? = nil) { + self.master = master + } + + private enum CodingKeys: String, CodingKey { + case master = "master" + } + } + + public enum ThreatIntelSetStatus: String, CustomStringConvertible, Codable { + case inactive = "INACTIVE" + case activating = "ACTIVATING" + case active = "ACTIVE" + case deactivating = "DEACTIVATING" + case error = "ERROR" + case deletePending = "DELETE_PENDING" + case deleted = "DELETED" + public var description: String { return self.rawValue } + } + + public struct AcceptInvitationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetectorId", location: .uri(locationName: "detectorId"), required: true, type: .string), + AWSShapeMember(label: "InvitationId", location: .body(locationName: "invitationId"), required: false, type: .string), + AWSShapeMember(label: "MasterId", location: .body(locationName: "masterId"), required: false, type: .string) + ] + public let detectorId: String + /// This value is used to validate the master account to the member account. + public let invitationId: String? + /// The account ID of the master GuardDuty account whose invitation you're accepting. + public let masterId: String? + + public init(detectorId: String, invitationId: String? = nil, masterId: String? = nil) { + self.detectorId = detectorId + self.invitationId = invitationId + self.masterId = masterId + } + + private enum CodingKeys: String, CodingKey { + case detectorId = "detectorId" + case invitationId = "invitationId" + case masterId = "masterId" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/SageMaker/SageMaker_API.swift b/Sources/AWSSDKSwift/Services/SageMaker/SageMaker_API.swift new file mode 100644 index 00000000000..aa4617dfe03 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/SageMaker/SageMaker_API.swift @@ -0,0 +1,174 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +Definition of the public APIs exposed by SageMaker +*/ +public struct SageMaker { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "SageMaker", + service: "sagemaker", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-07-24", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [SageMakerError.self] + ) + } + + /// Returns a URL that you can use to connect to the Juypter server from a notebook instance. In the Amazon SageMaker console, when you choose Open next to a notebook instance, Amazon SageMaker opens a new tab showing the Jupyter server home page from the notebook instance. The console uses this API to get the URL and show the page. + public func createPresignedNotebookInstanceUrl(_ input: CreatePresignedNotebookInstanceUrlInput) throws -> CreatePresignedNotebookInstanceUrlOutput { + return try client.send(operation: "CreatePresignedNotebookInstanceUrl", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a model. The DeleteModel API deletes only the model entry that was created in Amazon SageMaker when you called the CreateModel API. It does not delete model artifacts, inference code, or the IAM role that you specified when creating the model. + public func deleteModel(_ input: DeleteModelInput) throws { + _ = try client.send(operation: "DeleteModel", path: "/", httpMethod: "POST", input: input) + } + + /// Launches an ML compute instance with the latest version of the libraries and attaches your ML storage volume. After configuring the notebook instance, Amazon SageMaker sets the notebook instance status to InService. A notebook instance's status must be InService (is this same as "Running" in the console?) before you can connect to your Jupyter notebook. + public func startNotebookInstance(_ input: StartNotebookInstanceInput) throws { + _ = try client.send(operation: "StartNotebookInstance", path: "/", httpMethod: "POST", input: input) + } + + /// Updates a notebook instance. NotebookInstance updates include upgrading or downgrading the ML compute instance used for your notebook instance to accommodate changes in your workload requirements. You can also update the VPC security groups. + public func updateNotebookInstance(_ input: UpdateNotebookInstanceInput) throws -> UpdateNotebookInstanceOutput { + return try client.send(operation: "UpdateNotebookInstance", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about a notebook instance. + public func describeNotebookInstance(_ input: DescribeNotebookInstanceInput) throws -> DescribeNotebookInstanceOutput { + return try client.send(operation: "DescribeNotebookInstance", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the tags for the specified Amazon SageMaker resource. + public func listTags(_ input: ListTagsInput) throws -> ListTagsOutput { + return try client.send(operation: "ListTags", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the description of an endpoint configuration created using the CreateEndpointConfig API. + public func describeEndpointConfig(_ input: DescribeEndpointConfigInput) throws -> DescribeEndpointConfigOutput { + return try client.send(operation: "DescribeEndpointConfig", path: "/", httpMethod: "POST", input: input) + } + + /// Lists models created with the CreateModel API. + public func listModels(_ input: ListModelsInput) throws -> ListModelsOutput { + return try client.send(operation: "ListModels", path: "/", httpMethod: "POST", input: input) + } + + /// Lists training jobs. + public func listTrainingJobs(_ input: ListTrainingJobsRequest) throws -> ListTrainingJobsResponse { + return try client.send(operation: "ListTrainingJobs", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes an Amazon SageMaker notebook instance. Before you can delete a notebook instance, you must call the StopNotebookInstance API. When you delete a notebook instance, you lose all of your data. Amazon SageMaker removes the ML compute instance, and deletes the ML storage volume and the network interface associated with the notebook instance. + public func deleteNotebookInstance(_ input: DeleteNotebookInstanceInput) throws { + _ = try client.send(operation: "DeleteNotebookInstance", path: "/", httpMethod: "POST", input: input) + } + + /// Stops a training job. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job termination for 120 seconds. Algorithms might use this 120-second window to save the model artifacts, so the results of the training is not lost. Training algorithms provided by Amazon SageMaker save the intermediate results of a model training job. This intermediate data is a valid model artifact. You can use the model artifacts that are saved when Amazon SageMaker stops a training job to create a model. When it receives a StopTrainingJob request, Amazon SageMaker changes the status of the job to Stopping. After Amazon SageMaker stops the job, it sets the status to Stopped. + public func stopTrainingJob(_ input: StopTrainingJobRequest) throws { + _ = try client.send(operation: "StopTrainingJob", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about a training job. + public func describeTrainingJob(_ input: DescribeTrainingJobRequest) throws -> DescribeTrainingJobResponse { + return try client.send(operation: "DescribeTrainingJob", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an Amazon SageMaker notebook instance. A notebook instance is an ML compute instance running on a Jupyter notebook. In a CreateNotebookInstance request, you specify the type of ML compute instance that you want to run. Amazon SageMaker launches the instance, installs common libraries that you can use to explore datasets for model training, and attaches an ML storage volume to the notebook instance. Amazon SageMaker also provides a set of example notebooks. Each notebook demonstrates how to use Amazon SageMaker with a specific an algorithm or with a machine learning framework. After receiving the request, Amazon SageMaker does the following: Creates a network interface in the Amazon SageMaker VPC. (Option) If you specified SubnetId, creates a network interface in your own VPC, which is inferred from the subnet ID that you provide in the input. When creating this network interface, Amazon SageMaker attaches the security group that you specified in the request to the network interface that it creates in your VPC. Launches an EC2 instance of the type specified in the request in the Amazon SageMaker VPC. If you specified SubnetId of your VPC, Amazon SageMaker specifies both network interfaces when launching this instance. This enables inbound traffic from your own VPC to the notebook instance, assuming that the security groups allow it. After creating the notebook instance, Amazon SageMaker returns its Amazon Resource Name (ARN). After Amazon SageMaker creates the notebook instance, you can connect to the Jupyter server and work in Jupyter notebooks. For example, you can write code to explore a dataset that you can use for model training, train a model, host models by creating Amazon SageMaker endpoints, and validate hosted models. For more information, see How It Works. + public func createNotebookInstance(_ input: CreateNotebookInstanceInput) throws -> CreateNotebookInstanceOutput { + return try client.send(operation: "CreateNotebookInstance", path: "/", httpMethod: "POST", input: input) + } + + /// Starts a model training job. After training completes, Amazon SageMaker saves the resulting model artifacts to an Amazon S3 location that you specify. If you choose to host your model using Amazon SageMaker hosting services, you can use the resulting model artifacts as part of the model. You can also use the artifacts in a deep learning service other than Amazon SageMaker, provided that you know how to use them for inferences. In the request body, you provide the following: AlgorithmSpecification - Identifies the training algorithm to use. HyperParameters - Specify these algorithm-specific parameters to influence the quality of the final model. For a list of hyperparameters for each training algorithm provided by Amazon SageMaker, see Algorithms. InputDataConfig - Describes the training dataset and the Amazon S3 location where it is stored. OutputDataConfig - Identifies the Amazon S3 location where you want Amazon SageMaker to save the results of model training. ResourceConfig - Identifies the resources, ML compute instances, and ML storage volumes to deploy for model training. In distributed training, you specify more than one instance. RoleARN - The Amazon Resource Number (ARN) that Amazon SageMaker assumes to perform tasks on your behalf during model training. You must grant this role the necessary permissions so that Amazon SageMaker can successfully complete model training. StoppingCondition - Sets a duration for training. Use this parameter to cap model training costs. For more information about Amazon SageMaker, see How It Works. + public func createTrainingJob(_ input: CreateTrainingJobRequest) throws -> CreateTrainingJobResponse { + return try client.send(operation: "CreateTrainingJob", path: "/", httpMethod: "POST", input: input) + } + + /// Deploys the new EndpointConfig specified in the request, switches to using newly created endpoint, and then deletes resources provisioned for the endpoint using the previous EndpointConfig (there is no availability loss). When Amazon SageMaker receives the request, it sets the endpoint status to Updating. After updating the endpoint, it sets the status to InService. To check the status of an endpoint, use the DescribeEndpoint API. + public func updateEndpoint(_ input: UpdateEndpointInput) throws -> UpdateEndpointOutput { + return try client.send(operation: "UpdateEndpoint", path: "/", httpMethod: "POST", input: input) + } + + /// Lists endpoint configurations. + public func listEndpointConfigs(_ input: ListEndpointConfigsInput) throws -> ListEndpointConfigsOutput { + return try client.send(operation: "ListEndpointConfigs", path: "/", httpMethod: "POST", input: input) + } + + /// Updates variant weight, capacity, or both of one or more variants associated with an endpoint. This operation updates weight, capacity, or both for the previously provisioned endpoint. When it receives the request, Amazon SageMaker sets the endpoint status to Updating. After updating the endpoint, it sets the status to InService. To check the status of an endpoint, use the DescribeEndpoint API. + public func updateEndpointWeightsAndCapacities(_ input: UpdateEndpointWeightsAndCapacitiesInput) throws -> UpdateEndpointWeightsAndCapacitiesOutput { + return try client.send(operation: "UpdateEndpointWeightsAndCapacities", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a model in Amazon SageMaker. In the request, you name the model and describe one or more containers. For each container, you specify the docker image containing inference code, artifacts (from prior training), and custom environment map that the inference code uses when you deploy the model into production. Use this API to create a model only if you want to use Amazon SageMaker hosting services. To host your model, you create an endpoint configuration with the CreateEndpointConfig API, and then create an endpoint with the CreateEndpoint API. Amazon SageMaker then deploys all of the containers that you defined for the model in the hosting environment. In the CreateModel request, you must define at least one container with the PrimaryContainer parameter. You can optionally specify additional containers with the SupplementalContainers parameter. In the request, you also provide an IAM role that Amazon SageMaker can assume to access model artifacts and docker image for deployment on ML compute hosting instances. In addition, you also use the IAM role to manage permissions the inference code needs. For example, if the inference code access any other AWS resources, you grant necessary permissions via this role. + public func createModel(_ input: CreateModelInput) throws -> CreateModelOutput { + return try client.send(operation: "CreateModel", path: "/", httpMethod: "POST", input: input) + } + + /// Adds or overwrites one or more tags for the specified Amazon SageMaker resource. You can add tags to notebook instances, training jobs, models, endpoint configurations, and endpoints. Each tag consists of a key and an optional value. Tag keys must be unique per resource. For more information about tags, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide. + public func addTags(_ input: AddTagsInput) throws -> AddTagsOutput { + return try client.send(operation: "AddTags", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an endpoint configuration that Amazon SageMaker hosting services uses to deploy models. In the configuration, you identify one or more models, created using the CreateModel API, to deploy and the resources that you want Amazon SageMaker to provision. Then you call the CreateEndpoint API. Use this API only if you want to use Amazon SageMaker hosting services to deploy models into production. In the request, you define one or more ProductionVariants, each of which identifies a model. Each ProductionVariant parameter also describes the resources that you want Amazon SageMaker to provision. This includes the number and type of ML compute instances to deploy. If you are hosting multiple models, you also assign a VariantWeight to specify how much traffic you want to allocate to each model. For example, suppose that you want to host two models, A and B, and you assign traffic weight 2 for model A and 1 for model B. Amazon SageMaker distributes two-thirds of the traffic to Model A, and one-third to model B. + public func createEndpointConfig(_ input: CreateEndpointConfigInput) throws -> CreateEndpointConfigOutput { + return try client.send(operation: "CreateEndpointConfig", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the description of an endpoint. + public func describeEndpoint(_ input: DescribeEndpointInput) throws -> DescribeEndpointOutput { + return try client.send(operation: "DescribeEndpoint", path: "/", httpMethod: "POST", input: input) + } + + /// Describes a model that you created using the CreateModel API. + public func describeModel(_ input: DescribeModelInput) throws -> DescribeModelOutput { + return try client.send(operation: "DescribeModel", path: "/", httpMethod: "POST", input: input) + } + + /// Lists endpoints. + public func listEndpoints(_ input: ListEndpointsInput) throws -> ListEndpointsOutput { + return try client.send(operation: "ListEndpoints", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes an endpoint. Amazon SageMaker frees up all of the resources that were deployed when the endpoint was created. + public func deleteEndpoint(_ input: DeleteEndpointInput) throws { + _ = try client.send(operation: "DeleteEndpoint", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes an endpoint configuration. The DeleteEndpoingConfig API deletes only the specified configuration. It does not delete endpoints created using the configuration. + public func deleteEndpointConfig(_ input: DeleteEndpointConfigInput) throws { + _ = try client.send(operation: "DeleteEndpointConfig", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the specified tags from an Amazon SageMaker resource. To list a resource's tags, use the ListTags API. + public func deleteTags(_ input: DeleteTagsInput) throws -> DeleteTagsOutput { + return try client.send(operation: "DeleteTags", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an endpoint using the endpoint configuration specified in the request. Amazon SageMaker uses the endpoint to provision resources and deploy models. You create the endpoint configuration with the CreateEndpointConfig API. Use this API only for hosting models using Amazon SageMaker hosting services. The endpoint name must be unique within an AWS Region in your AWS account. When it receives the request, Amazon SageMaker creates the endpoint, launches the resources (ML compute instances), and deploys the model(s) on them. When Amazon SageMaker receives the request, it sets the endpoint status to Creating. After it creates the endpoint, it sets the status to InService. Amazon SageMaker can then process incoming requests for inferences. To check the status of an endpoint, use the DescribeEndpoint API. For an example, see Exercise 1: Using the K-Means Algorithm Provided by Amazon SageMaker. + public func createEndpoint(_ input: CreateEndpointInput) throws -> CreateEndpointOutput { + return try client.send(operation: "CreateEndpoint", path: "/", httpMethod: "POST", input: input) + } + + /// Terminates the ML compute instance. Before terminating the instance, Amazon SageMaker disconnects the ML storage volume from it. Amazon SageMaker preserves the ML storage volume. To access data on the ML storage volume for a notebook instance that has been terminated, call the StartNotebookInstance API. StartNotebookInstance launches another ML compute instance, configures it, and attaches the preserved ML storage volume so you can continue your work. + public func stopNotebookInstance(_ input: StopNotebookInstanceInput) throws { + _ = try client.send(operation: "StopNotebookInstance", path: "/", httpMethod: "POST", input: input) + } + + /// Returns a list of the Amazon SageMaker notebook instances in the requester's account in an AWS Region. + public func listNotebookInstances(_ input: ListNotebookInstancesInput) throws -> ListNotebookInstancesOutput { + return try client.send(operation: "ListNotebookInstances", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/SageMaker/SageMaker_Error.swift b/Sources/AWSSDKSwift/Services/SageMaker/SageMaker_Error.swift new file mode 100644 index 00000000000..a8f7f65e8b8 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/SageMaker/SageMaker_Error.swift @@ -0,0 +1,29 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for SageMaker +public enum SageMakerError: AWSErrorType { + case resourceLimitExceeded(message: String?) + case resourceNotFound(message: String?) + case resourceInUse(message: String?) +} + +extension SageMakerError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "ResourceLimitExceeded": + self = .resourceLimitExceeded(message: message) + case "ResourceNotFound": + self = .resourceNotFound(message: message) + case "ResourceInUse": + self = .resourceInUse(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/SageMaker/SageMaker_Shapes.swift b/Sources/AWSSDKSwift/Services/SageMaker/SageMaker_Shapes.swift new file mode 100644 index 00000000000..dd43d0e014f --- /dev/null +++ b/Sources/AWSSDKSwift/Services/SageMaker/SageMaker_Shapes.swift @@ -0,0 +1,2064 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension SageMaker { + + public struct DescribeModelOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ModelName", required: true, type: .string), + AWSShapeMember(label: "ExecutionRoleArn", required: true, type: .string), + AWSShapeMember(label: "ModelArn", required: true, type: .string), + AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), + AWSShapeMember(label: "PrimaryContainer", required: true, type: .structure), + AWSShapeMember(label: "SupplementalContainers", required: true, type: .list) + ] + /// Name of the Amazon SageMaker model. + public let modelName: String + /// The Amazon Resource Name (ARN) of the IAM role that you specified for the model. + public let executionRoleArn: String + /// The Amazon Resource Name (ARN) of the model. + public let modelArn: String + /// A timestamp that shows when the model was created. + public let creationTime: TimeStamp + /// The location of the primary inference code, associated artifacts, and custom environment map that the inference code uses when it is deployed in production. + public let primaryContainer: ContainerDefinition + /// The description of additional optional containers that you defined when creating the model. + public let supplementalContainers: [ContainerDefinition] + + public init(modelName: String, executionRoleArn: String, modelArn: String, creationTime: TimeStamp, primaryContainer: ContainerDefinition, supplementalContainers: [ContainerDefinition]) { + self.modelName = modelName + self.executionRoleArn = executionRoleArn + self.modelArn = modelArn + self.creationTime = creationTime + self.primaryContainer = primaryContainer + self.supplementalContainers = supplementalContainers + } + + private enum CodingKeys: String, CodingKey { + case modelName = "ModelName" + case executionRoleArn = "ExecutionRoleArn" + case modelArn = "ModelArn" + case creationTime = "CreationTime" + case primaryContainer = "PrimaryContainer" + case supplementalContainers = "SupplementalContainers" + } + } + + public struct NotebookInstanceSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastModifiedTime", required: false, type: .timestamp), + AWSShapeMember(label: "NotebookInstanceName", required: true, type: .string), + AWSShapeMember(label: "Url", required: false, type: .string), + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "NotebookInstanceArn", required: true, type: .string), + AWSShapeMember(label: "InstanceType", required: false, type: .enum), + AWSShapeMember(label: "NotebookInstanceStatus", required: false, type: .enum) + ] + /// A timestamp that shows when the notebook instance was last modified. + public let lastModifiedTime: TimeStamp? + /// The name of the notebook instance that you want a summary for. + public let notebookInstanceName: String + /// The URL that you use to connect to the Jupyter instance running in your notebook instance. + public let url: String? + /// A timestamp that shows when the notebook instance was created. + public let creationTime: TimeStamp? + /// The Amazon Resource Name (ARN) of the notebook instance. + public let notebookInstanceArn: String + /// The type of ML compute instance that the notebook instance is running on. + public let instanceType: InstanceType? + /// The status of the notebook instance. + public let notebookInstanceStatus: NotebookInstanceStatus? + + public init(lastModifiedTime: TimeStamp? = nil, notebookInstanceName: String, url: String? = nil, creationTime: TimeStamp? = nil, notebookInstanceArn: String, instanceType: InstanceType? = nil, notebookInstanceStatus: NotebookInstanceStatus? = nil) { + self.lastModifiedTime = lastModifiedTime + self.notebookInstanceName = notebookInstanceName + self.url = url + self.creationTime = creationTime + self.notebookInstanceArn = notebookInstanceArn + self.instanceType = instanceType + self.notebookInstanceStatus = notebookInstanceStatus + } + + private enum CodingKeys: String, CodingKey { + case lastModifiedTime = "LastModifiedTime" + case notebookInstanceName = "NotebookInstanceName" + case url = "Url" + case creationTime = "CreationTime" + case notebookInstanceArn = "NotebookInstanceArn" + case instanceType = "InstanceType" + case notebookInstanceStatus = "NotebookInstanceStatus" + } + } + + public struct DeleteEndpointConfigInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointConfigName", required: true, type: .string) + ] + /// The name of the endpoint configuration that you want to delete. + public let endpointConfigName: String + + public init(endpointConfigName: String) { + self.endpointConfigName = endpointConfigName + } + + private enum CodingKeys: String, CodingKey { + case endpointConfigName = "EndpointConfigName" + } + } + + public struct DeleteNotebookInstanceInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NotebookInstanceName", required: true, type: .string) + ] + /// The name of the Amazon SageMaker notebook instance to delete. + public let notebookInstanceName: String + + public init(notebookInstanceName: String) { + self.notebookInstanceName = notebookInstanceName + } + + private enum CodingKeys: String, CodingKey { + case notebookInstanceName = "NotebookInstanceName" + } + } + + public enum EndpointStatus: String, CustomStringConvertible, Codable { + case outofservice = "OutOfService" + case creating = "Creating" + case updating = "Updating" + case rollingback = "RollingBack" + case inservice = "InService" + case deleting = "Deleting" + case failed = "Failed" + public var description: String { return self.rawValue } + } + + public enum EndpointConfigSortKey: String, CustomStringConvertible, Codable { + case name = "Name" + case creationtime = "CreationTime" + public var description: String { return self.rawValue } + } + + public struct DescribeEndpointOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastModifiedTime", required: true, type: .timestamp), + AWSShapeMember(label: "ProductionVariants", required: false, type: .list), + AWSShapeMember(label: "EndpointConfigName", required: true, type: .string), + AWSShapeMember(label: "EndpointName", required: true, type: .string), + AWSShapeMember(label: "EndpointArn", required: true, type: .string), + AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), + AWSShapeMember(label: "FailureReason", required: false, type: .string), + AWSShapeMember(label: "EndpointStatus", required: true, type: .enum) + ] + /// A timestamp that shows when the endpoint was last modified. + public let lastModifiedTime: TimeStamp + /// An array of ProductionVariant objects, one for each model hosted behind this endpoint. + public let productionVariants: [ProductionVariantSummary]? + /// The name of the endpoint configuration associated with this endpoint. + public let endpointConfigName: String + /// Name of the endpoint. + public let endpointName: String + /// The Amazon Resource Name (ARN) of the endpoint. + public let endpointArn: String + /// A timestamp that shows when the endpoint was created. + public let creationTime: TimeStamp + /// If the status of the endpoint is Failed, the reason why it failed. + public let failureReason: String? + /// The status of the endpoint. + public let endpointStatus: EndpointStatus + + public init(lastModifiedTime: TimeStamp, productionVariants: [ProductionVariantSummary]? = nil, endpointConfigName: String, endpointName: String, endpointArn: String, creationTime: TimeStamp, failureReason: String? = nil, endpointStatus: EndpointStatus) { + self.lastModifiedTime = lastModifiedTime + self.productionVariants = productionVariants + self.endpointConfigName = endpointConfigName + self.endpointName = endpointName + self.endpointArn = endpointArn + self.creationTime = creationTime + self.failureReason = failureReason + self.endpointStatus = endpointStatus + } + + private enum CodingKeys: String, CodingKey { + case lastModifiedTime = "LastModifiedTime" + case productionVariants = "ProductionVariants" + case endpointConfigName = "EndpointConfigName" + case endpointName = "EndpointName" + case endpointArn = "EndpointArn" + case creationTime = "CreationTime" + case failureReason = "FailureReason" + case endpointStatus = "EndpointStatus" + } + } + + public struct CreateModelInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ModelName", required: true, type: .string), + AWSShapeMember(label: "ExecutionRoleArn", required: false, type: .string), + AWSShapeMember(label: "PrimaryContainer", required: true, type: .structure), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "SupplementalContainers", required: false, type: .list) + ] + /// The name of the new model. + public let modelName: String + /// The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume to access model artifacts and docker image for deployment on ML compute instances. Deploying on ML compute instances is part of model hosting. For more information, see Amazon SageMaker Roles. + public let executionRoleArn: String? + /// The location of the primary docker image containing inference code, associated artifacts, and custom environment map that the inference code uses when the model is deployed into production. + public let primaryContainer: ContainerDefinition + /// An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide. + public let tags: [Tag]? + /// The additional optional containers to deploy. + public let supplementalContainers: [ContainerDefinition]? + + public init(modelName: String, executionRoleArn: String? = nil, primaryContainer: ContainerDefinition, tags: [Tag]? = nil, supplementalContainers: [ContainerDefinition]? = nil) { + self.modelName = modelName + self.executionRoleArn = executionRoleArn + self.primaryContainer = primaryContainer + self.tags = tags + self.supplementalContainers = supplementalContainers + } + + private enum CodingKeys: String, CodingKey { + case modelName = "ModelName" + case executionRoleArn = "ExecutionRoleArn" + case primaryContainer = "PrimaryContainer" + case tags = "Tags" + case supplementalContainers = "SupplementalContainers" + } + } + + public struct CreateEndpointOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointArn", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the endpoint. + public let endpointArn: String + + public init(endpointArn: String) { + self.endpointArn = endpointArn + } + + private enum CodingKeys: String, CodingKey { + case endpointArn = "EndpointArn" + } + } + + public struct CreateModelOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ModelArn", required: true, type: .string) + ] + /// The ARN of the model created in Amazon SageMaker. + public let modelArn: String + + public init(modelArn: String) { + self.modelArn = modelArn + } + + private enum CodingKeys: String, CodingKey { + case modelArn = "ModelArn" + } + } + + public struct ListNotebookInstancesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortBy", required: false, type: .enum), + AWSShapeMember(label: "LastModifiedTimeAfter", required: false, type: .timestamp), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "CreationTimeAfter", required: false, type: .timestamp), + AWSShapeMember(label: "NameContains", required: false, type: .string), + AWSShapeMember(label: "SortOrder", required: false, type: .enum), + AWSShapeMember(label: "LastModifiedTimeBefore", required: false, type: .timestamp), + AWSShapeMember(label: "StatusEquals", required: false, type: .enum), + AWSShapeMember(label: "CreationTimeBefore", required: false, type: .timestamp), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The field to sort results by. The default is Name. + public let sortBy: NotebookInstanceSortKey? + /// A filter that returns only notebook instances that were modified after the specified time (timestamp). + public let lastModifiedTimeAfter: TimeStamp? + /// If the previous call to the ListNotebookInstances is truncated, the response includes a NextToken. You can use this token in your subsequent ListNotebookInstances request to fetch the next set of notebook instances. You might specify a filter or a sort order in your request. When response is truncated, you must use the same values for the filer and sort order in the next request. + public let nextToken: String? + /// A filter that returns only notebook instances that were created after the specified time (timestamp). + public let creationTimeAfter: TimeStamp? + /// A string in the notebook instances' name. This filter returns only notebook instances whose name contains the specified string. + public let nameContains: String? + /// The sort order for results. + public let sortOrder: NotebookInstanceSortOrder? + /// A filter that returns only notebook instances that were modified before the specified time (timestamp). + public let lastModifiedTimeBefore: TimeStamp? + /// A filter that returns only notebook instances with the specified status. + public let statusEquals: NotebookInstanceStatus? + /// A filter that returns only notebook instances that were created before the specified time (timestamp). + public let creationTimeBefore: TimeStamp? + /// The maximum number of notebook instances to return. + public let maxResults: Int32? + + public init(sortBy: NotebookInstanceSortKey? = nil, lastModifiedTimeAfter: TimeStamp? = nil, nextToken: String? = nil, creationTimeAfter: TimeStamp? = nil, nameContains: String? = nil, sortOrder: NotebookInstanceSortOrder? = nil, lastModifiedTimeBefore: TimeStamp? = nil, statusEquals: NotebookInstanceStatus? = nil, creationTimeBefore: TimeStamp? = nil, maxResults: Int32? = nil) { + self.sortBy = sortBy + self.lastModifiedTimeAfter = lastModifiedTimeAfter + self.nextToken = nextToken + self.creationTimeAfter = creationTimeAfter + self.nameContains = nameContains + self.sortOrder = sortOrder + self.lastModifiedTimeBefore = lastModifiedTimeBefore + self.statusEquals = statusEquals + self.creationTimeBefore = creationTimeBefore + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case sortBy = "SortBy" + case lastModifiedTimeAfter = "LastModifiedTimeAfter" + case nextToken = "NextToken" + case creationTimeAfter = "CreationTimeAfter" + case nameContains = "NameContains" + case sortOrder = "SortOrder" + case lastModifiedTimeBefore = "LastModifiedTimeBefore" + case statusEquals = "StatusEquals" + case creationTimeBefore = "CreationTimeBefore" + case maxResults = "MaxResults" + } + } + + public struct UpdateEndpointWeightsAndCapacitiesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointArn", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the updated endpoint. + public let endpointArn: String + + public init(endpointArn: String) { + self.endpointArn = endpointArn + } + + private enum CodingKeys: String, CodingKey { + case endpointArn = "EndpointArn" + } + } + + public struct ListEndpointConfigsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortBy", required: false, type: .enum), + AWSShapeMember(label: "CreationTimeAfter", required: false, type: .timestamp), + AWSShapeMember(label: "NameContains", required: false, type: .string), + AWSShapeMember(label: "SortOrder", required: false, type: .enum), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "CreationTimeBefore", required: false, type: .timestamp), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The field to sort results by. The default is CreationTime. + public let sortBy: EndpointConfigSortKey? + /// A filter that returns only endpoint configurations created after the specified time (timestamp). + public let creationTimeAfter: TimeStamp? + /// A string in the endpoint configuration name. This filter returns only endpoint configurations whose name contains the specified string. + public let nameContains: String? + /// The sort order for results. The default is Ascending. + public let sortOrder: OrderKey? + /// If the result of the previous ListEndpointConfig request was truncated, the response includes a NextToken. To retrieve the next set of endpoint configurations, use the token in the next request. + public let nextToken: String? + /// A filter that returns only endpoint configurations created before the specified time (timestamp). + public let creationTimeBefore: TimeStamp? + /// The maximum number of training jobs to return in the response. + public let maxResults: Int32? + + public init(sortBy: EndpointConfigSortKey? = nil, creationTimeAfter: TimeStamp? = nil, nameContains: String? = nil, sortOrder: OrderKey? = nil, nextToken: String? = nil, creationTimeBefore: TimeStamp? = nil, maxResults: Int32? = nil) { + self.sortBy = sortBy + self.creationTimeAfter = creationTimeAfter + self.nameContains = nameContains + self.sortOrder = sortOrder + self.nextToken = nextToken + self.creationTimeBefore = creationTimeBefore + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case sortBy = "SortBy" + case creationTimeAfter = "CreationTimeAfter" + case nameContains = "NameContains" + case sortOrder = "SortOrder" + case nextToken = "NextToken" + case creationTimeBefore = "CreationTimeBefore" + case maxResults = "MaxResults" + } + } + + public struct UpdateEndpointInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointConfigName", required: true, type: .string), + AWSShapeMember(label: "EndpointName", required: true, type: .string) + ] + /// The name of the new endpoint configuration. + public let endpointConfigName: String + /// The name of the endpoint whose configuration you want to update. + public let endpointName: String + + public init(endpointConfigName: String, endpointName: String) { + self.endpointConfigName = endpointConfigName + self.endpointName = endpointName + } + + private enum CodingKeys: String, CodingKey { + case endpointConfigName = "EndpointConfigName" + case endpointName = "EndpointName" + } + } + + public enum ModelSortKey: String, CustomStringConvertible, Codable { + case name = "Name" + case creationtime = "CreationTime" + public var description: String { return self.rawValue } + } + + public struct UpdateEndpointOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointArn", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the endpoint. + public let endpointArn: String + + public init(endpointArn: String) { + self.endpointArn = endpointArn + } + + private enum CodingKeys: String, CodingKey { + case endpointArn = "EndpointArn" + } + } + + public enum NotebookInstanceSortKey: String, CustomStringConvertible, Codable { + case name = "Name" + case creationtime = "CreationTime" + case status = "Status" + public var description: String { return self.rawValue } + } + + public struct ProductionVariantSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CurrentWeight", required: false, type: .float), + AWSShapeMember(label: "DesiredWeight", required: false, type: .float), + AWSShapeMember(label: "DesiredInstanceCount", required: false, type: .integer), + AWSShapeMember(label: "VariantName", required: true, type: .string), + AWSShapeMember(label: "CurrentInstanceCount", required: false, type: .integer) + ] + /// The weight associated with the variant. + public let currentWeight: Float? + /// The requested weight, as specified in the UpdateWeightAndCapacities request. + public let desiredWeight: Float? + /// The number of instances requested in the UpdateWeightAndCapacities request. + public let desiredInstanceCount: Int32? + /// The name of the variant. + public let variantName: String + /// The number of instances associated with the variant. + public let currentInstanceCount: Int32? + + public init(currentWeight: Float? = nil, desiredWeight: Float? = nil, desiredInstanceCount: Int32? = nil, variantName: String, currentInstanceCount: Int32? = nil) { + self.currentWeight = currentWeight + self.desiredWeight = desiredWeight + self.desiredInstanceCount = desiredInstanceCount + self.variantName = variantName + self.currentInstanceCount = currentInstanceCount + } + + private enum CodingKeys: String, CodingKey { + case currentWeight = "CurrentWeight" + case desiredWeight = "DesiredWeight" + case desiredInstanceCount = "DesiredInstanceCount" + case variantName = "VariantName" + case currentInstanceCount = "CurrentInstanceCount" + } + } + + public struct DescribeNotebookInstanceInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NotebookInstanceName", required: true, type: .string) + ] + /// The name of the notebook instance that you want information about. + public let notebookInstanceName: String + + public init(notebookInstanceName: String) { + self.notebookInstanceName = notebookInstanceName + } + + private enum CodingKeys: String, CodingKey { + case notebookInstanceName = "NotebookInstanceName" + } + } + + public enum ProductionVariantInstanceType: String, CustomStringConvertible, Codable { + case mlC42Xlarge = "ml.c4.2xlarge" + case mlC48Xlarge = "ml.c4.8xlarge" + case mlC4Xlarge = "ml.c4.xlarge" + case mlC52Xlarge = "ml.c5.2xlarge" + case mlC59Xlarge = "ml.c5.9xlarge" + case mlC5Xlarge = "ml.c5.xlarge" + case mlM4Xlarge = "ml.m4.xlarge" + case mlP2Xlarge = "ml.p2.xlarge" + case mlP32Xlarge = "ml.p3.2xlarge" + case mlT2Medium = "ml.t2.medium" + public var description: String { return self.rawValue } + } + + public enum S3DataType: String, CustomStringConvertible, Codable { + case manifestfile = "ManifestFile" + case s3prefix = "S3Prefix" + public var description: String { return self.rawValue } + } + + public struct StartNotebookInstanceInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NotebookInstanceName", required: true, type: .string) + ] + /// The name of the notebook instance to start. + public let notebookInstanceName: String + + public init(notebookInstanceName: String) { + self.notebookInstanceName = notebookInstanceName + } + + private enum CodingKeys: String, CodingKey { + case notebookInstanceName = "NotebookInstanceName" + } + } + + public struct UpdateEndpointWeightsAndCapacitiesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointName", required: true, type: .string), + AWSShapeMember(label: "DesiredWeightsAndCapacities", required: true, type: .list) + ] + /// The name of an existing Amazon SageMaker endpoint. + public let endpointName: String + /// An object that provides new capacity and weight values for a variant. + public let desiredWeightsAndCapacities: [DesiredWeightAndCapacity] + + public init(endpointName: String, desiredWeightsAndCapacities: [DesiredWeightAndCapacity]) { + self.endpointName = endpointName + self.desiredWeightsAndCapacities = desiredWeightsAndCapacities + } + + private enum CodingKeys: String, CodingKey { + case endpointName = "EndpointName" + case desiredWeightsAndCapacities = "DesiredWeightsAndCapacities" + } + } + + public struct DeleteModelInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ModelName", required: true, type: .string) + ] + /// The name of the model to delete. + public let modelName: String + + public init(modelName: String) { + self.modelName = modelName + } + + private enum CodingKeys: String, CodingKey { + case modelName = "ModelName" + } + } + + public enum TrainingInputMode: String, CustomStringConvertible, Codable { + case pipe = "Pipe" + case file = "File" + public var description: String { return self.rawValue } + } + + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: true, type: .string), + AWSShapeMember(label: "Key", required: true, type: .string) + ] + /// The tag value. + public let value: String + /// The tag key. + public let key: String + + public init(value: String, key: String) { + self.value = value + self.key = key + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case key = "Key" + } + } + + public struct ListEndpointsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Endpoints", required: true, type: .list) + ] + /// If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request. + public let nextToken: String? + /// An array or endpoint objects. + public let endpoints: [EndpointSummary] + + public init(nextToken: String? = nil, endpoints: [EndpointSummary]) { + self.nextToken = nextToken + self.endpoints = endpoints + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case endpoints = "Endpoints" + } + } + + public struct ContainerDefinition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Environment", required: false, type: .map), + AWSShapeMember(label: "Image", required: true, type: .string), + AWSShapeMember(label: "ModelDataUrl", required: false, type: .string), + AWSShapeMember(label: "ContainerHostname", required: false, type: .string) + ] + /// The environment variables to set in the Docker container. Each key and value in the Environment string to string map can have length of up to 1024. We support up to 16 entries in the map. + public let environment: [String: String]? + /// The Amazon EC2 Container Registry (Amazon ECR) path where inference code is stored. If you are using your own custom algorithm instead of an algorithm provided by Amazon SageMaker, the inference code must meet Amazon SageMaker requirements. For more information, see Using Your Own Algorithms with Amazon SageMaker + public let image: String + /// The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix). + public let modelDataUrl: String? + /// The DNS host name for the container after Amazon SageMaker deploys it. + public let containerHostname: String? + + public init(environment: [String: String]? = nil, image: String, modelDataUrl: String? = nil, containerHostname: String? = nil) { + self.environment = environment + self.image = image + self.modelDataUrl = modelDataUrl + self.containerHostname = containerHostname + } + + private enum CodingKeys: String, CodingKey { + case environment = "Environment" + case image = "Image" + case modelDataUrl = "ModelDataUrl" + case containerHostname = "ContainerHostname" + } + } + + public enum SortOrder: String, CustomStringConvertible, Codable { + case ascending = "Ascending" + case descending = "Descending" + public var description: String { return self.rawValue } + } + + public struct DescribeModelInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ModelName", required: true, type: .string) + ] + /// The name of the model. + public let modelName: String + + public init(modelName: String) { + self.modelName = modelName + } + + private enum CodingKeys: String, CodingKey { + case modelName = "ModelName" + } + } + + public struct ListTagsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceArn", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The Amazon Resource Name (ARN) of the resource whose tags you want to retrieve. + public let resourceArn: String + /// If the response to the previous ListTags request is truncated, Amazon SageMaker returns this token. To retrieve the next set of tags, use it in the subsequent request. + public let nextToken: String? + /// Maximum number of tags to return. + public let maxResults: Int32? + + public init(resourceArn: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.resourceArn = resourceArn + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case resourceArn = "ResourceArn" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct Channel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContentType", required: false, type: .string), + AWSShapeMember(label: "DataSource", required: true, type: .structure), + AWSShapeMember(label: "CompressionType", required: false, type: .enum), + AWSShapeMember(label: "ChannelName", required: true, type: .string), + AWSShapeMember(label: "RecordWrapperType", required: false, type: .enum) + ] + /// The MIME type of the data. + public let contentType: String? + /// The location of the channel data. + public let dataSource: DataSource + /// If training data is compressed, the compression type. The default value is None. CompressionType is used only in PIPE input mode. In FILE mode, leave this field unset or set it to None. + public let compressionType: CompressionType? + /// The name of the channel. + public let channelName: String + /// Specify RecordIO as the value when input data is in raw format but the training algorithm requires the RecordIO format, in which caseAmazon SageMaker wraps each individual S3 object in a RecordIO record. If the input data is already in RecordIO format, you don't need to set this attribute. For more information, see Create a Dataset Using RecordIO. In FILE mode, leave this field unset or set it to None. + public let recordWrapperType: RecordWrapper? + + public init(contentType: String? = nil, dataSource: DataSource, compressionType: CompressionType? = nil, channelName: String, recordWrapperType: RecordWrapper? = nil) { + self.contentType = contentType + self.dataSource = dataSource + self.compressionType = compressionType + self.channelName = channelName + self.recordWrapperType = recordWrapperType + } + + private enum CodingKeys: String, CodingKey { + case contentType = "ContentType" + case dataSource = "DataSource" + case compressionType = "CompressionType" + case channelName = "ChannelName" + case recordWrapperType = "RecordWrapperType" + } + } + + public struct CreateEndpointConfigInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointConfigName", required: true, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "ProductionVariants", required: true, type: .list) + ] + /// The name of the endpoint configuration. You specify this name in a CreateEndpoint request. + public let endpointConfigName: String + /// An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide. + public let tags: [Tag]? + /// An array of ProductionVariant objects, one for each model that you want to host at this endpoint. + public let productionVariants: [ProductionVariant] + + public init(endpointConfigName: String, tags: [Tag]? = nil, productionVariants: [ProductionVariant]) { + self.endpointConfigName = endpointConfigName + self.tags = tags + self.productionVariants = productionVariants + } + + private enum CodingKeys: String, CodingKey { + case endpointConfigName = "EndpointConfigName" + case tags = "Tags" + case productionVariants = "ProductionVariants" + } + } + + public struct ModelArtifacts: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3ModelArtifacts", required: true, type: .string) + ] + /// The path of the S3 object that contains the model artifacts. For example, s3://bucket-name/keynameprefix/model.tar.gz. + public let s3ModelArtifacts: String + + public init(s3ModelArtifacts: String) { + self.s3ModelArtifacts = s3ModelArtifacts + } + + private enum CodingKeys: String, CodingKey { + case s3ModelArtifacts = "S3ModelArtifacts" + } + } + + public struct OutputDataConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3OutputPath", required: true, type: .string), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) + ] + /// Identifies the S3 path where you want Amazon SageMaker to store the model artifacts. For example, s3://bucket-name/key-name-prefix. + public let s3OutputPath: String + /// The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. If the configuration of the output S3 bucket requires server-side encryption for objects, and you don't provide the KMS key ID, Amazon SageMaker uses the default service key. For more information, see KMS-Managed Encryption Keys in Amazon Simple Storage Service developer guide. The KMS key policy must grant permission to the IAM role you specify in your CreateTrainingJob request. Using Key Policies in AWS KMS in the AWS Key Management Service Developer Guide. + public let kmsKeyId: String? + + public init(s3OutputPath: String, kmsKeyId: String? = nil) { + self.s3OutputPath = s3OutputPath + self.kmsKeyId = kmsKeyId + } + + private enum CodingKeys: String, CodingKey { + case s3OutputPath = "S3OutputPath" + case kmsKeyId = "KmsKeyId" + } + } + + public struct CreateTrainingJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TrainingJobArn", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the training job. + public let trainingJobArn: String + + public init(trainingJobArn: String) { + self.trainingJobArn = trainingJobArn + } + + private enum CodingKeys: String, CodingKey { + case trainingJobArn = "TrainingJobArn" + } + } + + public struct CreateNotebookInstanceOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NotebookInstanceArn", required: false, type: .string) + ] + /// The Amazon Resource Name (ARN) of the notebook instance. + public let notebookInstanceArn: String? + + public init(notebookInstanceArn: String? = nil) { + self.notebookInstanceArn = notebookInstanceArn + } + + private enum CodingKeys: String, CodingKey { + case notebookInstanceArn = "NotebookInstanceArn" + } + } + + public enum RecordWrapper: String, CustomStringConvertible, Codable { + case none = "None" + case recordio = "RecordIO" + public var description: String { return self.rawValue } + } + + public enum TrainingInstanceType: String, CustomStringConvertible, Codable { + case mlM4Xlarge = "ml.m4.xlarge" + case mlM44Xlarge = "ml.m4.4xlarge" + case mlM410Xlarge = "ml.m4.10xlarge" + case mlC4Xlarge = "ml.c4.xlarge" + case mlC42Xlarge = "ml.c4.2xlarge" + case mlC48Xlarge = "ml.c4.8xlarge" + case mlP2Xlarge = "ml.p2.xlarge" + case mlP28Xlarge = "ml.p2.8xlarge" + case mlP216Xlarge = "ml.p2.16xlarge" + case mlP32Xlarge = "ml.p3.2xlarge" + case mlP38Xlarge = "ml.p3.8xlarge" + case mlP316Xlarge = "ml.p3.16xlarge" + case mlC5Xlarge = "ml.c5.xlarge" + case mlC52Xlarge = "ml.c5.2xlarge" + case mlC54Xlarge = "ml.c5.4xlarge" + case mlC59Xlarge = "ml.c5.9xlarge" + case mlC518Xlarge = "ml.c5.18xlarge" + public var description: String { return self.rawValue } + } + + public enum OrderKey: String, CustomStringConvertible, Codable { + case ascending = "Ascending" + case descending = "Descending" + public var description: String { return self.rawValue } + } + + public struct DescribeTrainingJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TrainingJobName", required: true, type: .string) + ] + /// The name of the training job. + public let trainingJobName: String + + public init(trainingJobName: String) { + self.trainingJobName = trainingJobName + } + + private enum CodingKeys: String, CodingKey { + case trainingJobName = "TrainingJobName" + } + } + + public enum S3DataDistribution: String, CustomStringConvertible, Codable { + case fullyreplicated = "FullyReplicated" + case shardedbys3key = "ShardedByS3Key" + public var description: String { return self.rawValue } + } + + public struct AddTagsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: false, type: .list) + ] + /// A list of tags associated with the Amazon SageMaker resource. + public let tags: [Tag]? + + public init(tags: [Tag]? = nil) { + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + } + } + + public struct ListModelsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Models", required: true, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// An array of ModelSummary objects, each of which lists a model. + public let models: [ModelSummary] + /// If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of models, use it in the subsequent request. + public let nextToken: String? + + public init(models: [ModelSummary], nextToken: String? = nil) { + self.models = models + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case models = "Models" + case nextToken = "NextToken" + } + } + + public struct ModelSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ModelName", required: true, type: .string), + AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), + AWSShapeMember(label: "ModelArn", required: true, type: .string) + ] + /// The name of the model that you want a summary for. + public let modelName: String + /// A timestamp that indicates when the model was created. + public let creationTime: TimeStamp + /// The Amazon Resource Name (ARN) of the model. + public let modelArn: String + + public init(modelName: String, creationTime: TimeStamp, modelArn: String) { + self.modelName = modelName + self.creationTime = creationTime + self.modelArn = modelArn + } + + private enum CodingKeys: String, CodingKey { + case modelName = "ModelName" + case creationTime = "CreationTime" + case modelArn = "ModelArn" + } + } + + public struct DescribeEndpointConfigOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointConfigArn", required: true, type: .string), + AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), + AWSShapeMember(label: "ProductionVariants", required: true, type: .list), + AWSShapeMember(label: "EndpointConfigName", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the endpoint configuration. + public let endpointConfigArn: String + /// A timestamp that shows when the endpoint configuration was created. + public let creationTime: TimeStamp + /// An array of ProductionVariant objects, one for each model that you want to host at this endpoint. + public let productionVariants: [ProductionVariant] + /// Name of the Amazon SageMaker endpoint configuration. + public let endpointConfigName: String + + public init(endpointConfigArn: String, creationTime: TimeStamp, productionVariants: [ProductionVariant], endpointConfigName: String) { + self.endpointConfigArn = endpointConfigArn + self.creationTime = creationTime + self.productionVariants = productionVariants + self.endpointConfigName = endpointConfigName + } + + private enum CodingKeys: String, CodingKey { + case endpointConfigArn = "EndpointConfigArn" + case creationTime = "CreationTime" + case productionVariants = "ProductionVariants" + case endpointConfigName = "EndpointConfigName" + } + } + + public enum EndpointSortKey: String, CustomStringConvertible, Codable { + case name = "Name" + case creationtime = "CreationTime" + case status = "Status" + public var description: String { return self.rawValue } + } + + public struct DescribeEndpointInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointName", required: true, type: .string) + ] + /// The name of the endpoint. + public let endpointName: String + + public init(endpointName: String) { + self.endpointName = endpointName + } + + private enum CodingKeys: String, CodingKey { + case endpointName = "EndpointName" + } + } + + public struct CreatePresignedNotebookInstanceUrlInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SessionExpirationDurationInSeconds", required: false, type: .integer), + AWSShapeMember(label: "NotebookInstanceName", required: true, type: .string) + ] + /// The duration of the session, in seconds. The default is 12 hours. + public let sessionExpirationDurationInSeconds: Int32? + /// The name of the notebook instance. + public let notebookInstanceName: String + + public init(sessionExpirationDurationInSeconds: Int32? = nil, notebookInstanceName: String) { + self.sessionExpirationDurationInSeconds = sessionExpirationDurationInSeconds + self.notebookInstanceName = notebookInstanceName + } + + private enum CodingKeys: String, CodingKey { + case sessionExpirationDurationInSeconds = "SessionExpirationDurationInSeconds" + case notebookInstanceName = "NotebookInstanceName" + } + } + + public struct ProductionVariant: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InitialVariantWeight", required: false, type: .float), + AWSShapeMember(label: "ModelName", required: true, type: .string), + AWSShapeMember(label: "InitialInstanceCount", required: true, type: .integer), + AWSShapeMember(label: "InstanceType", required: true, type: .enum), + AWSShapeMember(label: "VariantName", required: true, type: .string) + ] + /// Determines initial traffic distribution among all of the models that you specify in the endpoint configuration. The traffic to a production variant is determined by the ratio of the VariantWeight to the sum of all VariantWeight values across all ProductionVariants. If unspecified, it defaults to 1.0. + public let initialVariantWeight: Float? + /// The name of the model that you want to host. This is the name that you specified when creating the model. + public let modelName: String + /// Number of instances to launch initially. + public let initialInstanceCount: Int32 + /// The ML compute instance type. + public let instanceType: ProductionVariantInstanceType + /// The name of the production variant. + public let variantName: String + + public init(initialVariantWeight: Float? = nil, modelName: String, initialInstanceCount: Int32, instanceType: ProductionVariantInstanceType, variantName: String) { + self.initialVariantWeight = initialVariantWeight + self.modelName = modelName + self.initialInstanceCount = initialInstanceCount + self.instanceType = instanceType + self.variantName = variantName + } + + private enum CodingKeys: String, CodingKey { + case initialVariantWeight = "InitialVariantWeight" + case modelName = "ModelName" + case initialInstanceCount = "InitialInstanceCount" + case instanceType = "InstanceType" + case variantName = "VariantName" + } + } + + public enum InstanceType: String, CustomStringConvertible, Codable { + case mlT2Medium = "ml.t2.medium" + case mlM4Xlarge = "ml.m4.xlarge" + case mlP2Xlarge = "ml.p2.xlarge" + public var description: String { return self.rawValue } + } + + public struct CreateEndpointConfigOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointConfigArn", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the endpoint configuration. + public let endpointConfigArn: String + + public init(endpointConfigArn: String) { + self.endpointConfigArn = endpointConfigArn + } + + private enum CodingKeys: String, CodingKey { + case endpointConfigArn = "EndpointConfigArn" + } + } + + public struct S3DataSource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3Uri", required: true, type: .string), + AWSShapeMember(label: "S3DataType", required: true, type: .enum), + AWSShapeMember(label: "S3DataDistributionType", required: false, type: .enum) + ] + /// Depending on the value specified for the S3DataType, identifies either a key name prefix or a manifest. For example: A key name prefix might look like this: s3://bucketname/exampleprefix. A manifest might look like this: s3://bucketname/example.manifest The manifest is an S3 object which is a JSON file with the following format: [ {"prefix": "s3://customer_bucket/some/prefix/"}, "relative/path/to/custdata-1", "relative/path/custdata-2", ... ] The preceding JSON matches the following s3Uris: s3://customer_bucket/some/prefix/relative/path/to/custdata-1 s3://customer_bucket/some/prefix/relative/path/custdata-1 ... The complete set of s3uris in this manifest constitutes the input data for the channel for this datasource. The object that each s3uris points to must readable by the IAM role that Amazon SageMaker uses to perform tasks on your behalf. + public let s3Uri: String + /// If you choose S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker uses all objects with the specified key name prefix for model training. If you choose ManifestFile, S3Uri identifies an object that is a manifest file containing a list of object keys that you want Amazon SageMaker to use for model training. + public let s3DataType: S3DataType + /// If you want Amazon SageMaker to replicate the entire dataset on each ML compute instance that is launched for model training, specify FullyReplicated. If you want Amazon SageMaker to replicate a subset of data on each ML compute instance that is launched for model training, specify ShardedByS3Key. If there are n ML compute instances launched for a training job, each instance gets approximately 1/n of the number of S3 objects. In this case, model training on each machine uses only the subset of training data. Don't choose more ML compute instances for training than available S3 objects. If you do, some nodes won't get any data and you will pay for nodes that aren't getting any training data. This applies in both FILE and PIPE modes. Keep this in mind when developing algorithms. In distributed training, where you use multiple ML compute EC2 instances, you might choose ShardedByS3Key. If the algorithm requires copying training data to the ML storage volume (when TrainingInputMode is set to File), this copies 1/n of the number of objects. + public let s3DataDistributionType: S3DataDistribution? + + public init(s3Uri: String, s3DataType: S3DataType, s3DataDistributionType: S3DataDistribution? = nil) { + self.s3Uri = s3Uri + self.s3DataType = s3DataType + self.s3DataDistributionType = s3DataDistributionType + } + + private enum CodingKeys: String, CodingKey { + case s3Uri = "S3Uri" + case s3DataType = "S3DataType" + case s3DataDistributionType = "S3DataDistributionType" + } + } + + public struct StoppingCondition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRuntimeInSeconds", required: false, type: .integer) + ] + /// The maximum length of time, in seconds, that the training job can run. If model training does not complete during this time, Amazon SageMaker ends the job. If value is not specified, default value is 1 day. Maximum value is 5 days. + public let maxRuntimeInSeconds: Int32? + + public init(maxRuntimeInSeconds: Int32? = nil) { + self.maxRuntimeInSeconds = maxRuntimeInSeconds + } + + private enum CodingKeys: String, CodingKey { + case maxRuntimeInSeconds = "MaxRuntimeInSeconds" + } + } + + public struct ListTrainingJobsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "TrainingJobSummaries", required: true, type: .list) + ] + /// If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request. + public let nextToken: String? + /// An array of TrainingJobSummary objects, each listing a training job. + public let trainingJobSummaries: [TrainingJobSummary] + + public init(nextToken: String? = nil, trainingJobSummaries: [TrainingJobSummary]) { + self.nextToken = nextToken + self.trainingJobSummaries = trainingJobSummaries + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case trainingJobSummaries = "TrainingJobSummaries" + } + } + + public struct ListEndpointsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortBy", required: false, type: .enum), + AWSShapeMember(label: "LastModifiedTimeAfter", required: false, type: .timestamp), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "CreationTimeAfter", required: false, type: .timestamp), + AWSShapeMember(label: "NameContains", required: false, type: .string), + AWSShapeMember(label: "SortOrder", required: false, type: .enum), + AWSShapeMember(label: "LastModifiedTimeBefore", required: false, type: .timestamp), + AWSShapeMember(label: "StatusEquals", required: false, type: .enum), + AWSShapeMember(label: "CreationTimeBefore", required: false, type: .timestamp), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Sorts the list of results. The default is CreationTime. + public let sortBy: EndpointSortKey? + /// A filter that returns only endpoints that were modified after the specified timestamp. + public let lastModifiedTimeAfter: TimeStamp? + /// If the result of a ListEndpoints request was truncated, the response includes a NextToken. To retrieve the next set of endpoints, use the token in the next request. + public let nextToken: String? + /// A filter that returns only endpoints that were created after the specified time (timestamp). + public let creationTimeAfter: TimeStamp? + /// A string in endpoint names. This filter returns only endpoints whose name contains the specified string. + public let nameContains: String? + /// The sort order for results. The default is Ascending. + public let sortOrder: OrderKey? + /// A filter that returns only endpoints that were modified before the specified timestamp. + public let lastModifiedTimeBefore: TimeStamp? + /// A filter that returns only endpoints with the specified status. + public let statusEquals: EndpointStatus? + /// A filter that returns only endpoints that were created before the specified time (timestamp). + public let creationTimeBefore: TimeStamp? + /// The maximum number of endpoints to return in the response. + public let maxResults: Int32? + + public init(sortBy: EndpointSortKey? = nil, lastModifiedTimeAfter: TimeStamp? = nil, nextToken: String? = nil, creationTimeAfter: TimeStamp? = nil, nameContains: String? = nil, sortOrder: OrderKey? = nil, lastModifiedTimeBefore: TimeStamp? = nil, statusEquals: EndpointStatus? = nil, creationTimeBefore: TimeStamp? = nil, maxResults: Int32? = nil) { + self.sortBy = sortBy + self.lastModifiedTimeAfter = lastModifiedTimeAfter + self.nextToken = nextToken + self.creationTimeAfter = creationTimeAfter + self.nameContains = nameContains + self.sortOrder = sortOrder + self.lastModifiedTimeBefore = lastModifiedTimeBefore + self.statusEquals = statusEquals + self.creationTimeBefore = creationTimeBefore + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case sortBy = "SortBy" + case lastModifiedTimeAfter = "LastModifiedTimeAfter" + case nextToken = "NextToken" + case creationTimeAfter = "CreationTimeAfter" + case nameContains = "NameContains" + case sortOrder = "SortOrder" + case lastModifiedTimeBefore = "LastModifiedTimeBefore" + case statusEquals = "StatusEquals" + case creationTimeBefore = "CreationTimeBefore" + case maxResults = "MaxResults" + } + } + + public struct TrainingJobSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastModifiedTime", required: false, type: .timestamp), + AWSShapeMember(label: "TrainingJobStatus", required: true, type: .enum), + AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), + AWSShapeMember(label: "TrainingJobArn", required: true, type: .string), + AWSShapeMember(label: "TrainingJobName", required: true, type: .string), + AWSShapeMember(label: "TrainingEndTime", required: false, type: .timestamp) + ] + /// Timestamp when the training job was last modified. + public let lastModifiedTime: TimeStamp? + /// The status of the training job. + public let trainingJobStatus: TrainingJobStatus + /// A timestamp that shows when the training job was created. + public let creationTime: TimeStamp + /// The Amazon Resource Name (ARN) of the training job. + public let trainingJobArn: String + /// The name of the training job that you want a summary for. + public let trainingJobName: String + /// A timestamp that shows when the training job ended. This field is set only if the training job has one of the terminal statuses (Completed, Failed, or Stopped). + public let trainingEndTime: TimeStamp? + + public init(lastModifiedTime: TimeStamp? = nil, trainingJobStatus: TrainingJobStatus, creationTime: TimeStamp, trainingJobArn: String, trainingJobName: String, trainingEndTime: TimeStamp? = nil) { + self.lastModifiedTime = lastModifiedTime + self.trainingJobStatus = trainingJobStatus + self.creationTime = creationTime + self.trainingJobArn = trainingJobArn + self.trainingJobName = trainingJobName + self.trainingEndTime = trainingEndTime + } + + private enum CodingKeys: String, CodingKey { + case lastModifiedTime = "LastModifiedTime" + case trainingJobStatus = "TrainingJobStatus" + case creationTime = "CreationTime" + case trainingJobArn = "TrainingJobArn" + case trainingJobName = "TrainingJobName" + case trainingEndTime = "TrainingEndTime" + } + } + + public struct CreateTrainingJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OutputDataConfig", required: true, type: .structure), + AWSShapeMember(label: "AlgorithmSpecification", required: true, type: .structure), + AWSShapeMember(label: "HyperParameters", required: false, type: .map), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "InputDataConfig", required: true, type: .list), + AWSShapeMember(label: "ResourceConfig", required: true, type: .structure), + AWSShapeMember(label: "RoleArn", required: true, type: .string), + AWSShapeMember(label: "TrainingJobName", required: true, type: .string), + AWSShapeMember(label: "StoppingCondition", required: true, type: .structure) + ] + /// Specifies the path to the S3 bucket where you want to store model artifacts. Amazon SageMaker creates subfolders for the artifacts. + public let outputDataConfig: OutputDataConfig + /// The registry path of the Docker image that contains the training algorithm and algorithm-specific metadata, including the input mode. For more information about algorithms provided by Amazon SageMaker, see Algorithms. For information about providing your own algorithms, see Bring Your Own Algorithms . + public let algorithmSpecification: AlgorithmSpecification + /// Algorithm-specific parameters. You set hyperparameters before you start the learning process. Hyperparameters influence the quality of the model. For a list of hyperparameters for each training algorithm provided by Amazon SageMaker, see Algorithms. You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and value is limited to 256 characters, as specified by the Length Constraint. + public let hyperParameters: [String: String]? + /// An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide. + public let tags: [Tag]? + /// An array of Channel objects. Each channel is a named input source. InputDataConfig describes the input data and its location. Algorithms can accept input data from one or more channels. For example, an algorithm might have two channels of input data, training_data and validation_data. The configuration for each channel provides the S3 location where the input data is stored. It also provides information about the stored data: the MIME type, compression method, and whether the data is wrapped in RecordIO format. Depending on the input mode that the algorithm supports, Amazon SageMaker either copies input data files from an S3 bucket to a local directory in the Docker container, or makes it available as input streams. + public let inputDataConfig: [Channel] + /// The resources, including the ML compute instances and ML storage volumes, to use for model training. ML storage volumes store model artifacts and incremental states. Training algorithms might also use ML storage volumes for scratch space. If you want Amazon SageMaker to use the ML storage volume to store the training data, choose File as the TrainingInputMode in the algorithm specification. For distributed training algorithms, specify an instance count greater than 1. + public let resourceConfig: ResourceConfig + /// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf. During model training, Amazon SageMaker needs your permission to read input data from an S3 bucket, download a Docker image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks to an IAM role. For more information, see Amazon SageMaker Roles. + public let roleArn: String + /// The name of the training job. The name must be unique within an AWS Region in an AWS account. It appears in the Amazon SageMaker console. + public let trainingJobName: String + /// Sets a duration for training. Use this parameter to cap model training costs. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job termination for 120 seconds. Algorithms might use this 120-second window to save the model artifacts. When Amazon SageMaker terminates a job because the stopping condition has been met, training algorithms provided by Amazon SageMaker save the intermediate results of the job. This intermediate data is a valid model artifact. You can use it to create a model using the CreateModel API. + public let stoppingCondition: StoppingCondition + + public init(outputDataConfig: OutputDataConfig, algorithmSpecification: AlgorithmSpecification, hyperParameters: [String: String]? = nil, tags: [Tag]? = nil, inputDataConfig: [Channel], resourceConfig: ResourceConfig, roleArn: String, trainingJobName: String, stoppingCondition: StoppingCondition) { + self.outputDataConfig = outputDataConfig + self.algorithmSpecification = algorithmSpecification + self.hyperParameters = hyperParameters + self.tags = tags + self.inputDataConfig = inputDataConfig + self.resourceConfig = resourceConfig + self.roleArn = roleArn + self.trainingJobName = trainingJobName + self.stoppingCondition = stoppingCondition + } + + private enum CodingKeys: String, CodingKey { + case outputDataConfig = "OutputDataConfig" + case algorithmSpecification = "AlgorithmSpecification" + case hyperParameters = "HyperParameters" + case tags = "Tags" + case inputDataConfig = "InputDataConfig" + case resourceConfig = "ResourceConfig" + case roleArn = "RoleArn" + case trainingJobName = "TrainingJobName" + case stoppingCondition = "StoppingCondition" + } + } + + public struct DesiredWeightAndCapacity: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VariantName", required: true, type: .string), + AWSShapeMember(label: "DesiredInstanceCount", required: false, type: .integer), + AWSShapeMember(label: "DesiredWeight", required: false, type: .float) + ] + /// The name of the variant to update. + public let variantName: String + /// The variant's capacity. + public let desiredInstanceCount: Int32? + /// The variant's weight. + public let desiredWeight: Float? + + public init(variantName: String, desiredInstanceCount: Int32? = nil, desiredWeight: Float? = nil) { + self.variantName = variantName + self.desiredInstanceCount = desiredInstanceCount + self.desiredWeight = desiredWeight + } + + private enum CodingKeys: String, CodingKey { + case variantName = "VariantName" + case desiredInstanceCount = "DesiredInstanceCount" + case desiredWeight = "DesiredWeight" + } + } + + public struct DescribeTrainingJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AlgorithmSpecification", required: true, type: .structure), + AWSShapeMember(label: "InputDataConfig", required: true, type: .list), + AWSShapeMember(label: "TrainingStartTime", required: false, type: .timestamp), + AWSShapeMember(label: "TrainingJobStatus", required: true, type: .enum), + AWSShapeMember(label: "ResourceConfig", required: true, type: .structure), + AWSShapeMember(label: "SecondaryStatus", required: true, type: .enum), + AWSShapeMember(label: "TrainingJobName", required: true, type: .string), + AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), + AWSShapeMember(label: "LastModifiedTime", required: false, type: .timestamp), + AWSShapeMember(label: "OutputDataConfig", required: false, type: .structure), + AWSShapeMember(label: "TrainingJobArn", required: true, type: .string), + AWSShapeMember(label: "ModelArtifacts", required: true, type: .structure), + AWSShapeMember(label: "HyperParameters", required: false, type: .map), + AWSShapeMember(label: "TrainingEndTime", required: false, type: .timestamp), + AWSShapeMember(label: "FailureReason", required: false, type: .string), + AWSShapeMember(label: "StoppingCondition", required: true, type: .structure), + AWSShapeMember(label: "RoleArn", required: false, type: .string) + ] + /// Information about the algorithm used for training, and algorithm metadata. + public let algorithmSpecification: AlgorithmSpecification + /// An array of Channel objects that describes each data input channel. + public let inputDataConfig: [Channel] + /// A timestamp that indicates when training started. + public let trainingStartTime: TimeStamp? + /// The status of the training job. For the InProgress status, Amazon SageMaker can return these secondary statuses: Starting - Preparing for training. Downloading - Optional stage for algorithms that support File training input mode. It indicates data is being downloaded to ML storage volumes. Training - Training is in progress. Uploading - Training is complete and model upload is in progress. For the Stopped training status, Amazon SageMaker can return these secondary statuses: MaxRuntimeExceeded - Job stopped as a result of maximum allowed runtime exceeded. + public let trainingJobStatus: TrainingJobStatus + /// Resources, including ML compute instances and ML storage volumes, that are configured for model training. + public let resourceConfig: ResourceConfig + /// Provides granular information about the system state. For more information, see TrainingJobStatus. + public let secondaryStatus: SecondaryStatus + /// Name of the model training job. + public let trainingJobName: String + /// A timestamp that indicates when the training job was created. + public let creationTime: TimeStamp + /// A timestamp that indicates when the status of the training job was last modified. + public let lastModifiedTime: TimeStamp? + /// The S3 path where model artifacts that you configured when creating the job are stored. Amazon SageMaker creates subfolders for model artifacts. + public let outputDataConfig: OutputDataConfig? + /// The Amazon Resource Name (ARN) of the training job. + public let trainingJobArn: String + /// Information about the Amazon S3 location that is configured for storing model artifacts. + public let modelArtifacts: ModelArtifacts + /// Algorithm-specific parameters. + public let hyperParameters: [String: String]? + /// A timestamp that indicates when model training ended. + public let trainingEndTime: TimeStamp? + /// If the training job failed, the reason it failed. + public let failureReason: String? + /// The condition under which to stop the training job. + public let stoppingCondition: StoppingCondition + /// The AWS Identity and Access Management (IAM) role configured for the training job. + public let roleArn: String? + + public init(algorithmSpecification: AlgorithmSpecification, inputDataConfig: [Channel], trainingStartTime: TimeStamp? = nil, trainingJobStatus: TrainingJobStatus, resourceConfig: ResourceConfig, secondaryStatus: SecondaryStatus, trainingJobName: String, creationTime: TimeStamp, lastModifiedTime: TimeStamp? = nil, outputDataConfig: OutputDataConfig? = nil, trainingJobArn: String, modelArtifacts: ModelArtifacts, hyperParameters: [String: String]? = nil, trainingEndTime: TimeStamp? = nil, failureReason: String? = nil, stoppingCondition: StoppingCondition, roleArn: String? = nil) { + self.algorithmSpecification = algorithmSpecification + self.inputDataConfig = inputDataConfig + self.trainingStartTime = trainingStartTime + self.trainingJobStatus = trainingJobStatus + self.resourceConfig = resourceConfig + self.secondaryStatus = secondaryStatus + self.trainingJobName = trainingJobName + self.creationTime = creationTime + self.lastModifiedTime = lastModifiedTime + self.outputDataConfig = outputDataConfig + self.trainingJobArn = trainingJobArn + self.modelArtifacts = modelArtifacts + self.hyperParameters = hyperParameters + self.trainingEndTime = trainingEndTime + self.failureReason = failureReason + self.stoppingCondition = stoppingCondition + self.roleArn = roleArn + } + + private enum CodingKeys: String, CodingKey { + case algorithmSpecification = "AlgorithmSpecification" + case inputDataConfig = "InputDataConfig" + case trainingStartTime = "TrainingStartTime" + case trainingJobStatus = "TrainingJobStatus" + case resourceConfig = "ResourceConfig" + case secondaryStatus = "SecondaryStatus" + case trainingJobName = "TrainingJobName" + case creationTime = "CreationTime" + case lastModifiedTime = "LastModifiedTime" + case outputDataConfig = "OutputDataConfig" + case trainingJobArn = "TrainingJobArn" + case modelArtifacts = "ModelArtifacts" + case hyperParameters = "HyperParameters" + case trainingEndTime = "TrainingEndTime" + case failureReason = "FailureReason" + case stoppingCondition = "StoppingCondition" + case roleArn = "RoleArn" + } + } + + public struct ListNotebookInstancesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NotebookInstances", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// An array of NotebookInstanceSummary objects, one for each notebook instance. + public let notebookInstances: [NotebookInstanceSummary]? + /// If the response to the previous ListNotebookInstances request was truncated, Amazon SageMaker returns this token. To retrieve the next set of notebook instances, use the token in the next request. + public let nextToken: String? + + public init(notebookInstances: [NotebookInstanceSummary]? = nil, nextToken: String? = nil) { + self.notebookInstances = notebookInstances + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case notebookInstances = "NotebookInstances" + case nextToken = "NextToken" + } + } + + public struct ListTrainingJobsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortBy", required: false, type: .enum), + AWSShapeMember(label: "LastModifiedTimeAfter", required: false, type: .timestamp), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "CreationTimeAfter", required: false, type: .timestamp), + AWSShapeMember(label: "NameContains", required: false, type: .string), + AWSShapeMember(label: "SortOrder", required: false, type: .enum), + AWSShapeMember(label: "LastModifiedTimeBefore", required: false, type: .timestamp), + AWSShapeMember(label: "StatusEquals", required: false, type: .enum), + AWSShapeMember(label: "CreationTimeBefore", required: false, type: .timestamp), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The field to sort results by. The default is CreationTime. + public let sortBy: SortBy? + /// A filter that returns only training jobs modified after the specified time (timestamp). + public let lastModifiedTimeAfter: TimeStamp? + /// If the result of the previous ListTrainingJobs request was truncated, the response includes a NextToken. To retrieve the next set of training jobs, use the token in the next request. + public let nextToken: String? + /// A filter that only training jobs created after the specified time (timestamp). + public let creationTimeAfter: TimeStamp? + /// A string in the training job name. This filter returns only models whose name contains the specified string. + public let nameContains: String? + /// The sort order for results. The default is Ascending. + public let sortOrder: SortOrder? + /// A filter that returns only training jobs modified before the specified time (timestamp). + public let lastModifiedTimeBefore: TimeStamp? + /// A filter that retrieves only training jobs with a specific status. + public let statusEquals: TrainingJobStatus? + /// A filter that returns only training jobs created before the specified time (timestamp). + public let creationTimeBefore: TimeStamp? + /// The maximum number of training jobs to return in the response. + public let maxResults: Int32? + + public init(sortBy: SortBy? = nil, lastModifiedTimeAfter: TimeStamp? = nil, nextToken: String? = nil, creationTimeAfter: TimeStamp? = nil, nameContains: String? = nil, sortOrder: SortOrder? = nil, lastModifiedTimeBefore: TimeStamp? = nil, statusEquals: TrainingJobStatus? = nil, creationTimeBefore: TimeStamp? = nil, maxResults: Int32? = nil) { + self.sortBy = sortBy + self.lastModifiedTimeAfter = lastModifiedTimeAfter + self.nextToken = nextToken + self.creationTimeAfter = creationTimeAfter + self.nameContains = nameContains + self.sortOrder = sortOrder + self.lastModifiedTimeBefore = lastModifiedTimeBefore + self.statusEquals = statusEquals + self.creationTimeBefore = creationTimeBefore + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case sortBy = "SortBy" + case lastModifiedTimeAfter = "LastModifiedTimeAfter" + case nextToken = "NextToken" + case creationTimeAfter = "CreationTimeAfter" + case nameContains = "NameContains" + case sortOrder = "SortOrder" + case lastModifiedTimeBefore = "LastModifiedTimeBefore" + case statusEquals = "StatusEquals" + case creationTimeBefore = "CreationTimeBefore" + case maxResults = "MaxResults" + } + } + + public struct ListModelsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortBy", required: false, type: .enum), + AWSShapeMember(label: "CreationTimeAfter", required: false, type: .timestamp), + AWSShapeMember(label: "NameContains", required: false, type: .string), + AWSShapeMember(label: "SortOrder", required: false, type: .enum), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "CreationTimeBefore", required: false, type: .timestamp), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Sorts the list of results. The default is CreationTime. + public let sortBy: ModelSortKey? + /// A filter that returns only models created after the specified time (timestamp). + public let creationTimeAfter: TimeStamp? + /// A string in the training job name. This filter returns only models in the training job whose name contains the specified string. + public let nameContains: String? + /// The sort order for results. The default is Ascending. + public let sortOrder: OrderKey? + /// If the response to a previous ListModels request was truncated, the response includes a NextToken. To retrieve the next set of models, use the token in the next request. + public let nextToken: String? + /// A filter that returns only models created before the specified time (timestamp). + public let creationTimeBefore: TimeStamp? + /// The maximum number of models to return in the response. + public let maxResults: Int32? + + public init(sortBy: ModelSortKey? = nil, creationTimeAfter: TimeStamp? = nil, nameContains: String? = nil, sortOrder: OrderKey? = nil, nextToken: String? = nil, creationTimeBefore: TimeStamp? = nil, maxResults: Int32? = nil) { + self.sortBy = sortBy + self.creationTimeAfter = creationTimeAfter + self.nameContains = nameContains + self.sortOrder = sortOrder + self.nextToken = nextToken + self.creationTimeBefore = creationTimeBefore + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case sortBy = "SortBy" + case creationTimeAfter = "CreationTimeAfter" + case nameContains = "NameContains" + case sortOrder = "SortOrder" + case nextToken = "NextToken" + case creationTimeBefore = "CreationTimeBefore" + case maxResults = "MaxResults" + } + } + + public struct DataSource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3DataSource", required: true, type: .structure) + ] + /// The S3 location of the data source that is associated with a channel. + public let s3DataSource: S3DataSource + + public init(s3DataSource: S3DataSource) { + self.s3DataSource = s3DataSource + } + + private enum CodingKeys: String, CodingKey { + case s3DataSource = "S3DataSource" + } + } + + public struct DescribeNotebookInstanceOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetId", required: false, type: .string), + AWSShapeMember(label: "NetworkInterfaceId", required: false, type: .string), + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "InstanceType", required: false, type: .enum), + AWSShapeMember(label: "LastModifiedTime", required: false, type: .timestamp), + AWSShapeMember(label: "SecurityGroups", required: false, type: .list), + AWSShapeMember(label: "NotebookInstanceName", required: false, type: .string), + AWSShapeMember(label: "Url", required: false, type: .string), + AWSShapeMember(label: "NotebookInstanceArn", required: false, type: .string), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "NotebookInstanceStatus", required: false, type: .enum), + AWSShapeMember(label: "FailureReason", required: false, type: .string), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) + ] + /// The ID of the VPC subnet. + public let subnetId: String? + /// Network interface IDs that Amazon SageMaker created at the time of creating the instance. + public let networkInterfaceId: String? + /// A timestamp. Use this parameter to return the time when the notebook instance was created + public let creationTime: TimeStamp? + /// The type of ML compute instance running on the notebook instance. + public let instanceType: InstanceType? + /// A timestamp. Use this parameter to retrieve the time when the notebook instance was last modified. + public let lastModifiedTime: TimeStamp? + /// The IDs of the VPC security groups. + public let securityGroups: [String]? + /// Name of the Amazon SageMaker notebook instance. + public let notebookInstanceName: String? + /// The URL that you use to connect to the Jupyter notebook that is running in your notebook instance. + public let url: String? + /// The Amazon Resource Name (ARN) of the notebook instance. + public let notebookInstanceArn: String? + /// Amazon Resource Name (ARN) of the IAM role associated with the instance. + public let roleArn: String? + /// The status of the notebook instance. + public let notebookInstanceStatus: NotebookInstanceStatus? + /// If staus is failed, the reason it failed. + public let failureReason: String? + /// AWS KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance. + public let kmsKeyId: String? + + public init(subnetId: String? = nil, networkInterfaceId: String? = nil, creationTime: TimeStamp? = nil, instanceType: InstanceType? = nil, lastModifiedTime: TimeStamp? = nil, securityGroups: [String]? = nil, notebookInstanceName: String? = nil, url: String? = nil, notebookInstanceArn: String? = nil, roleArn: String? = nil, notebookInstanceStatus: NotebookInstanceStatus? = nil, failureReason: String? = nil, kmsKeyId: String? = nil) { + self.subnetId = subnetId + self.networkInterfaceId = networkInterfaceId + self.creationTime = creationTime + self.instanceType = instanceType + self.lastModifiedTime = lastModifiedTime + self.securityGroups = securityGroups + self.notebookInstanceName = notebookInstanceName + self.url = url + self.notebookInstanceArn = notebookInstanceArn + self.roleArn = roleArn + self.notebookInstanceStatus = notebookInstanceStatus + self.failureReason = failureReason + self.kmsKeyId = kmsKeyId + } + + private enum CodingKeys: String, CodingKey { + case subnetId = "SubnetId" + case networkInterfaceId = "NetworkInterfaceId" + case creationTime = "CreationTime" + case instanceType = "InstanceType" + case lastModifiedTime = "LastModifiedTime" + case securityGroups = "SecurityGroups" + case notebookInstanceName = "NotebookInstanceName" + case url = "Url" + case notebookInstanceArn = "NotebookInstanceArn" + case roleArn = "RoleArn" + case notebookInstanceStatus = "NotebookInstanceStatus" + case failureReason = "FailureReason" + case kmsKeyId = "KmsKeyId" + } + } + + public struct DeleteTagsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceArn", required: true, type: .string), + AWSShapeMember(label: "TagKeys", required: true, type: .list) + ] + /// The Amazon Resource Name (ARN) of the resource whose tags you want to delete. + public let resourceArn: String + /// An array or one or more tag keys to delete. + public let tagKeys: [String] + + public init(resourceArn: String, tagKeys: [String]) { + self.resourceArn = resourceArn + self.tagKeys = tagKeys + } + + private enum CodingKeys: String, CodingKey { + case resourceArn = "ResourceArn" + case tagKeys = "TagKeys" + } + } + + public struct DescribeEndpointConfigInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointConfigName", required: true, type: .string) + ] + /// The name of the endpoint configuration. + public let endpointConfigName: String + + public init(endpointConfigName: String) { + self.endpointConfigName = endpointConfigName + } + + private enum CodingKeys: String, CodingKey { + case endpointConfigName = "EndpointConfigName" + } + } + + public struct DeleteEndpointInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointName", required: true, type: .string) + ] + /// The name of the endpoint that you want to delete. + public let endpointName: String + + public init(endpointName: String) { + self.endpointName = endpointName + } + + private enum CodingKeys: String, CodingKey { + case endpointName = "EndpointName" + } + } + + public enum SecondaryStatus: String, CustomStringConvertible, Codable { + case starting = "Starting" + case downloading = "Downloading" + case training = "Training" + case uploading = "Uploading" + case stopping = "Stopping" + case stopped = "Stopped" + case maxruntimeexceeded = "MaxRuntimeExceeded" + case completed = "Completed" + case failed = "Failed" + public var description: String { return self.rawValue } + } + + public struct ResourceConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceType", required: true, type: .enum), + AWSShapeMember(label: "VolumeSizeInGB", required: true, type: .integer), + AWSShapeMember(label: "InstanceCount", required: true, type: .integer) + ] + /// The ML compute instance type. + public let instanceType: TrainingInstanceType + /// The size of the ML storage volume that you want to provision. ML storage volumes store model artifacts and incremental states. Training algorithms might also use the ML storage volume for scratch space. If you want to store the training data in the ML storage volume, choose File as the TrainingInputMode in the algorithm specification. You must specify sufficient ML storage for your scenario. Amazon SageMaker supports only the General Purpose SSD (gp2) ML storage volume type. + public let volumeSizeInGB: Int32 + /// The number of ML compute instances to use. For distributed training, provide a value greater than 1. + public let instanceCount: Int32 + + public init(instanceType: TrainingInstanceType, volumeSizeInGB: Int32, instanceCount: Int32) { + self.instanceType = instanceType + self.volumeSizeInGB = volumeSizeInGB + self.instanceCount = instanceCount + } + + private enum CodingKeys: String, CodingKey { + case instanceType = "InstanceType" + case volumeSizeInGB = "VolumeSizeInGB" + case instanceCount = "InstanceCount" + } + } + + public struct EndpointSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastModifiedTime", required: true, type: .timestamp), + AWSShapeMember(label: "EndpointArn", required: true, type: .string), + AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), + AWSShapeMember(label: "EndpointName", required: true, type: .string), + AWSShapeMember(label: "EndpointStatus", required: true, type: .enum) + ] + /// A timestamp that shows when the endpoint was last modified. + public let lastModifiedTime: TimeStamp + /// The Amazon Resource Name (ARN) of the endpoint. + public let endpointArn: String + /// A timestamp that shows when the endpoint was created. + public let creationTime: TimeStamp + /// The name of the endpoint. + public let endpointName: String + /// The status of the endpoint. + public let endpointStatus: EndpointStatus + + public init(lastModifiedTime: TimeStamp, endpointArn: String, creationTime: TimeStamp, endpointName: String, endpointStatus: EndpointStatus) { + self.lastModifiedTime = lastModifiedTime + self.endpointArn = endpointArn + self.creationTime = creationTime + self.endpointName = endpointName + self.endpointStatus = endpointStatus + } + + private enum CodingKeys: String, CodingKey { + case lastModifiedTime = "LastModifiedTime" + case endpointArn = "EndpointArn" + case creationTime = "CreationTime" + case endpointName = "EndpointName" + case endpointStatus = "EndpointStatus" + } + } + + public struct EndpointConfigSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointConfigName", required: true, type: .string), + AWSShapeMember(label: "EndpointConfigArn", required: true, type: .string), + AWSShapeMember(label: "CreationTime", required: true, type: .timestamp) + ] + /// The name of the endpoint configuration. + public let endpointConfigName: String + /// The Amazon Resource Name (ARN) of the endpoint configuration. + public let endpointConfigArn: String + /// A timestamp that shows when the endpoint configuration was created. + public let creationTime: TimeStamp + + public init(endpointConfigName: String, endpointConfigArn: String, creationTime: TimeStamp) { + self.endpointConfigName = endpointConfigName + self.endpointConfigArn = endpointConfigArn + self.creationTime = creationTime + } + + private enum CodingKeys: String, CodingKey { + case endpointConfigName = "EndpointConfigName" + case endpointConfigArn = "EndpointConfigArn" + case creationTime = "CreationTime" + } + } + + public struct ListEndpointConfigsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "EndpointConfigs", required: true, type: .list) + ] + /// If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of endpoint configurations, use it in the subsequent request + public let nextToken: String? + /// An array of endpoint configurations. + public let endpointConfigs: [EndpointConfigSummary] + + public init(nextToken: String? = nil, endpointConfigs: [EndpointConfigSummary]) { + self.nextToken = nextToken + self.endpointConfigs = endpointConfigs + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case endpointConfigs = "EndpointConfigs" + } + } + + public enum NotebookInstanceStatus: String, CustomStringConvertible, Codable { + case pending = "Pending" + case inservice = "InService" + case stopping = "Stopping" + case stopped = "Stopped" + case failed = "Failed" + case deleting = "Deleting" + public var description: String { return self.rawValue } + } + + public enum SortBy: String, CustomStringConvertible, Codable { + case name = "Name" + case creationtime = "CreationTime" + case status = "Status" + public var description: String { return self.rawValue } + } + + public struct AlgorithmSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TrainingInputMode", required: true, type: .enum), + AWSShapeMember(label: "TrainingImage", required: true, type: .string) + ] + /// The input mode that the algorithm supports. For the input modes that Amazon SageMaker algorithms support, see Algorithms. If an algorithm supports the File input mode, Amazon SageMaker downloads the training data from S3 to the provisioned ML storage Volume, and mounts the directory to docker volume for training container. If an algorithm supports the Pipe input mode, Amazon SageMaker streams data directly from S3 to the container. In File mode, make sure you provision ML storage volume with sufficient capacity to accomodate the data download from S3. In addition to the training data, the ML storage volume also stores the output model. The algorithm container use ML storage volume to also store intermediate information, if any. For distributed algorithms using File mode, training data is distributed uniformly, and your training duration is predictable if the input data objects size is approximately same. Amazon SageMaker does not split the files any further for model training. If the object sizes are skewed, training won't be optimal as the data distribution is also skewed where one host in a training cluster is overloaded, thus becoming bottleneck in training. + public let trainingInputMode: TrainingInputMode + /// The registry path of the Docker image that contains the training algorithm. For information about using your own algorithms, see Docker Registry Paths for Algorithms Provided by Amazon SageMaker . + public let trainingImage: String + + public init(trainingInputMode: TrainingInputMode, trainingImage: String) { + self.trainingInputMode = trainingInputMode + self.trainingImage = trainingImage + } + + private enum CodingKeys: String, CodingKey { + case trainingInputMode = "TrainingInputMode" + case trainingImage = "TrainingImage" + } + } + + public struct AddTagsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceArn", required: true, type: .string), + AWSShapeMember(label: "Tags", required: true, type: .list) + ] + /// The Amazon Resource Name (ARN) of the resource that you want to tag. + public let resourceArn: String + /// An array of Tag objects. Each tag is a key-value pair. Only the key parameter is required. If you don't specify a value, Amazon SageMaker sets the value to an empty string. + public let tags: [Tag] + + public init(resourceArn: String, tags: [Tag]) { + self.resourceArn = resourceArn + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case resourceArn = "ResourceArn" + case tags = "Tags" + } + } + + public enum CompressionType: String, CustomStringConvertible, Codable { + case none = "None" + case gzip = "Gzip" + public var description: String { return self.rawValue } + } + + public enum NotebookInstanceSortOrder: String, CustomStringConvertible, Codable { + case ascending = "Ascending" + case descending = "Descending" + public var description: String { return self.rawValue } + } + + public enum TrainingJobStatus: String, CustomStringConvertible, Codable { + case inprogress = "InProgress" + case completed = "Completed" + case failed = "Failed" + case stopping = "Stopping" + case stopped = "Stopped" + public var description: String { return self.rawValue } + } + + public struct ListTagsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list) + ] + /// If response is truncated, Amazon SageMaker includes a token in the response. You can use this token in your subsequent request to fetch next set of tokens. + public let nextToken: String? + /// An array of Tag objects, each with a tag key and a value. + public let tags: [Tag]? + + public init(nextToken: String? = nil, tags: [Tag]? = nil) { + self.nextToken = nextToken + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case tags = "Tags" + } + } + + public struct CreateEndpointInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointConfigName", required: true, type: .string), + AWSShapeMember(label: "EndpointName", required: true, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list) + ] + /// The name of an endpoint configuration. For more information, see CreateEndpointConfig. + public let endpointConfigName: String + /// The name of the endpoint. The name must be unique within an AWS Region in your AWS account. + public let endpointName: String + /// An array of key-value pairs. For more information, see Using Cost Allocation Tagsin the AWS Billing and Cost Management User Guide. + public let tags: [Tag]? + + public init(endpointConfigName: String, endpointName: String, tags: [Tag]? = nil) { + self.endpointConfigName = endpointConfigName + self.endpointName = endpointName + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case endpointConfigName = "EndpointConfigName" + case endpointName = "EndpointName" + case tags = "Tags" + } + } + + public struct UpdateNotebookInstanceInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceType", required: false, type: .enum), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "NotebookInstanceName", required: true, type: .string) + ] + /// The Amazon ML compute instance type. + public let instanceType: InstanceType? + /// Amazon Resource Name (ARN) of the IAM role to associate with the instance. + public let roleArn: String? + /// The name of the notebook instance to update. + public let notebookInstanceName: String + + public init(instanceType: InstanceType? = nil, roleArn: String? = nil, notebookInstanceName: String) { + self.instanceType = instanceType + self.roleArn = roleArn + self.notebookInstanceName = notebookInstanceName + } + + private enum CodingKeys: String, CodingKey { + case instanceType = "InstanceType" + case roleArn = "RoleArn" + case notebookInstanceName = "NotebookInstanceName" + } + } + + public struct CreateNotebookInstanceInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetId", required: false, type: .string), + AWSShapeMember(label: "NotebookInstanceName", required: true, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "SecurityGroupIds", required: false, type: .list), + AWSShapeMember(label: "RoleArn", required: true, type: .string), + AWSShapeMember(label: "InstanceType", required: true, type: .enum), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) + ] + /// The ID of the subnet in a VPC to which you would like to have a connectivity from your ML compute instance. + public let subnetId: String? + /// The name of the new notebook instance. + public let notebookInstanceName: String + /// A list of tags to associate with the notebook instance. You can add tags later by using the CreateTags API. + public let tags: [Tag]? + /// The VPC security group IDs, in the form sg-xxxxxxxx. The security groups must be for the same VPC as specified in the subnet. + public let securityGroupIds: [String]? + /// When you send any requests to AWS resources from the notebook instance, Amazon SageMaker assumes this role to perform tasks on your behalf. You must grant this role necessary permissions so Amazon SageMaker can perform these tasks. The policy must allow the Amazon SageMaker service principal (sagemaker.amazonaws.com) permissions to assume this role. For more information, see Amazon SageMaker Roles. + public let roleArn: String + /// The type of ML compute instance to launch for the notebook instance. + public let instanceType: InstanceType + /// If you provide a AWS KMS key ID, Amazon SageMaker uses it to encrypt data at rest on the ML storage volume that is attached to your notebook instance. + public let kmsKeyId: String? + + public init(subnetId: String? = nil, notebookInstanceName: String, tags: [Tag]? = nil, securityGroupIds: [String]? = nil, roleArn: String, instanceType: InstanceType, kmsKeyId: String? = nil) { + self.subnetId = subnetId + self.notebookInstanceName = notebookInstanceName + self.tags = tags + self.securityGroupIds = securityGroupIds + self.roleArn = roleArn + self.instanceType = instanceType + self.kmsKeyId = kmsKeyId + } + + private enum CodingKeys: String, CodingKey { + case subnetId = "SubnetId" + case notebookInstanceName = "NotebookInstanceName" + case tags = "Tags" + case securityGroupIds = "SecurityGroupIds" + case roleArn = "RoleArn" + case instanceType = "InstanceType" + case kmsKeyId = "KmsKeyId" + } + } + + public struct StopTrainingJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TrainingJobName", required: true, type: .string) + ] + /// The name of the training job to stop. + public let trainingJobName: String + + public init(trainingJobName: String) { + self.trainingJobName = trainingJobName + } + + private enum CodingKeys: String, CodingKey { + case trainingJobName = "TrainingJobName" + } + } + + public struct StopNotebookInstanceInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NotebookInstanceName", required: true, type: .string) + ] + /// The name of the notebook instance to terminate. + public let notebookInstanceName: String + + public init(notebookInstanceName: String) { + self.notebookInstanceName = notebookInstanceName + } + + private enum CodingKeys: String, CodingKey { + case notebookInstanceName = "NotebookInstanceName" + } + } + + public struct UpdateNotebookInstanceOutput: AWSShape { + + } + + public struct DeleteTagsOutput: AWSShape { + + } + + public struct CreatePresignedNotebookInstanceUrlOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AuthorizedUrl", required: false, type: .string) + ] + /// A JSON object that contains the URL string. + public let authorizedUrl: String? + + public init(authorizedUrl: String? = nil) { + self.authorizedUrl = authorizedUrl + } + + private enum CodingKeys: String, CodingKey { + case authorizedUrl = "AuthorizedUrl" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/acm/Acm_API.swift b/Sources/AWSSDKSwift/Services/acm/Acm_API.swift index 61b251a8e2e..a3a6f4e5793 100644 --- a/Sources/AWSSDKSwift/Services/acm/Acm_API.swift +++ b/Sources/AWSSDKSwift/Services/acm/Acm_API.swift @@ -25,42 +25,42 @@ public struct Acm { ) } - /// Remove one or more tags from an ACM Certificate. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this function, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a certificate, use the AddTagsToCertificate action. To view all of the tags that have been applied to a specific ACM Certificate, use the ListTagsForCertificate action. + /// Remove one or more tags from an ACM Certificate. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this function, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a certificate, use the AddTagsToCertificate action. To view all of the tags that have been applied to a specific ACM Certificate, use the ListTagsForCertificate action. public func removeTagsFromCertificate(_ input: RemoveTagsFromCertificateRequest) throws { _ = try client.send(operation: "RemoveTagsFromCertificate", path: "/", httpMethod: "POST", input: input) } - /// Deletes an ACM Certificate and its associated private key. If this action succeeds, the certificate no longer appears in the list of ACM Certificates that can be displayed by calling the ListCertificates action or be retrieved by calling the GetCertificate action. The certificate will not be available for use by other AWS services. You cannot delete an ACM Certificate that is being used by another AWS service. To delete a certificate that is in use, the certificate association must first be removed. + /// Deletes a certificate and its associated private key. If this action succeeds, the certificate no longer appears in the list that can be displayed by calling the ListCertificates action or be retrieved by calling the GetCertificate action. The certificate will not be available for use by AWS services integrated with ACM. You cannot delete an ACM Certificate that is being used by another AWS service. To delete a certificate that is in use, the certificate association must first be removed. public func deleteCertificate(_ input: DeleteCertificateRequest) throws { _ = try client.send(operation: "DeleteCertificate", path: "/", httpMethod: "POST", input: input) } - /// Lists the tags that have been applied to the ACM Certificate. Use the certificate's Amazon Resource Name (ARN) to specify the certificate. To add a tag to an ACM Certificate, use the AddTagsToCertificate action. To delete a tag, use the RemoveTagsFromCertificate action. + /// Lists the tags that have been applied to the ACM Certificate. Use the certificate's Amazon Resource Name (ARN) to specify the certificate. To add a tag to an ACM Certificate, use the AddTagsToCertificate action. To delete a tag, use the RemoveTagsFromCertificate action. public func listTagsForCertificate(_ input: ListTagsForCertificateRequest) throws -> ListTagsForCertificateResponse { return try client.send(operation: "ListTagsForCertificate", path: "/", httpMethod: "POST", input: input) } - /// Retrieves an ACM Certificate and certificate chain for the certificate specified by an ARN. The chain is an ordered list of certificates that contains the root certificate, intermediate certificates of subordinate CAs, and the ACM Certificate. The certificate and certificate chain are base64 encoded. If you want to decode the certificate chain to see the individual certificate fields, you can use OpenSSL. Currently, ACM Certificates can be used only with Elastic Load Balancing and Amazon CloudFront. + /// Retrieves a certificate specified by an ARN and its certificate chain . The chain is an ordered list of certificates that contains the end entity ertificate, intermediate certificates of subordinate CAs, and the root certificate in that order. The certificate and certificate chain are base64 encoded. If you want to decode the certificate to see the individual fields, you can use OpenSSL. public func getCertificate(_ input: GetCertificateRequest) throws -> GetCertificateResponse { return try client.send(operation: "GetCertificate", path: "/", httpMethod: "POST", input: input) } - /// Imports an SSL/TLS certificate into AWS Certificate Manager (ACM) to use with ACM's integrated AWS services. ACM does not provide managed renewal for certificates that you import. For more information about importing certificates into ACM, including the differences between certificates that you import and those that ACM provides, see Importing Certificates in the AWS Certificate Manager User Guide. To import a certificate, you must provide the certificate and the matching private key. When the certificate is not self-signed, you must also provide a certificate chain. You can omit the certificate chain when importing a self-signed certificate. The certificate, private key, and certificate chain must be PEM-encoded. For more information about converting these items to PEM format, see Importing Certificates Troubleshooting in the AWS Certificate Manager User Guide. To import a new certificate, omit the CertificateArn field. Include this field only when you want to replace a previously imported certificate. This operation returns the Amazon Resource Name (ARN) of the imported certificate. + /// Imports a certificate into AWS Certificate Manager (ACM) to use with services that are integrated with ACM. For more information, see Integrated Services. ACM does not provide managed renewal for certificates that you import. For more information about importing certificates into ACM, including the differences between certificates that you import and those that ACM provides, see Importing Certificates in the AWS Certificate Manager User Guide. In general, you can import almost any valid certificate. However, services integrated with ACM allow only certificate types they support to be associated with their resources. The following guidelines are also important: You must enter the private key that matches the certificate you are importing. The private key must be unencrypted. You cannot import a private key that is protected by a password or a passphrase. If the certificate you are importing is not self-signed, you must enter its certificate chain. If a certificate chain is included, the issuer must be the subject of one of the certificates in the chain. The certificate, private key, and certificate chain must be PEM-encoded. The current time must be between the Not Before and Not After certificate fields. The Issuer field must not be empty. The OCSP authority URL must not exceed 1000 characters. To import a new certificate, omit the CertificateArn field. Include this field only when you want to replace a previously imported certificate. When you import a certificate by using the CLI or one of the SDKs, you must specify the certificate, certificate chain, and private key parameters as file names preceded by file://. For example, you can specify a certificate saved in the C:\temp folder as C:\temp\certificate_to_import.pem. If you are making an HTTP or HTTPS Query request, include these parameters as BLOBs. This operation returns the Amazon Resource Name (ARN) of the imported certificate. public func importCertificate(_ input: ImportCertificateRequest) throws -> ImportCertificateResponse { return try client.send(operation: "ImportCertificate", path: "/", httpMethod: "POST", input: input) } - /// Retrieves a list of ACM Certificates and the domain name for each. You can optionally filter the list to return only the certificates that match the specified status. + /// Retrieves a list of certificate ARNs and domain names. You can request that only certificates that match a specific status be listed. You can also filter by specific attributes of the certificate. public func listCertificates(_ input: ListCertificatesRequest) throws -> ListCertificatesResponse { return try client.send(operation: "ListCertificates", path: "/", httpMethod: "POST", input: input) } - /// Requests an ACM Certificate for use with other AWS services. To request an ACM Certificate, you must specify the fully qualified domain name (FQDN) for your site. You can also specify additional FQDNs if users can reach your site by using other names. For each domain name you specify, email is sent to the domain owner to request approval to issue the certificate. After receiving approval from the domain owner, the ACM Certificate is issued. For more information, see the AWS Certificate Manager User Guide. + /// Requests an ACM Certificate for use with other AWS services. To request an ACM Certificate, you must specify the fully qualified domain name (FQDN) for your site in the DomainName parameter. You can also specify additional FQDNs in the SubjectAlternativeNames parameter if users can reach your site by using other names. For each domain name you specify, email is sent to the domain owner to request approval to issue the certificate. Email is sent to three registered contact addresses in the WHOIS database and to five common system administration addresses formed from the DomainName you enter or the optional ValidationDomain parameter. For more information, see Validate Domain Ownership. After receiving approval from the domain owner, the ACM Certificate is issued. For more information, see the AWS Certificate Manager User Guide. public func requestCertificate(_ input: RequestCertificateRequest) throws -> RequestCertificateResponse { return try client.send(operation: "RequestCertificate", path: "/", httpMethod: "POST", input: input) } - /// Adds one or more tags to an ACM Certificate. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the certificate on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one certificate if you want to identify a specific characteristic of that certificate, or you can apply the same tag to multiple certificates if you want to filter for a common relationship among those certificates. Similarly, you can apply the same tag to multiple resources if you want to specify a relationship among those resources. For example, you can add the same tag to an ACM Certificate and an Elastic Load Balancing load balancer to indicate that they are both used by the same website. For more information, see Tagging ACM Certificates. To remove one or more tags, use the RemoveTagsFromCertificate action. To view all of the tags that have been applied to the certificate, use the ListTagsForCertificate action. + /// Adds one or more tags to an ACM Certificate. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the certificate on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one certificate if you want to identify a specific characteristic of that certificate, or you can apply the same tag to multiple certificates if you want to filter for a common relationship among those certificates. Similarly, you can apply the same tag to multiple resources if you want to specify a relationship among those resources. For example, you can add the same tag to an ACM Certificate and an Elastic Load Balancing load balancer to indicate that they are both used by the same website. For more information, see Tagging ACM Certificates. To remove one or more tags, use the RemoveTagsFromCertificate action. To view all of the tags that have been applied to the certificate, use the ListTagsForCertificate action. public func addTagsToCertificate(_ input: AddTagsToCertificateRequest) throws { _ = try client.send(operation: "AddTagsToCertificate", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/acm/Acm_Shapes.swift b/Sources/AWSSDKSwift/Services/acm/Acm_Shapes.swift index 58d04f6d514..99d061bea05 100644 --- a/Sources/AWSSDKSwift/Services/acm/Acm_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/acm/Acm_Shapes.swift @@ -12,13 +12,13 @@ extension Acm { } public struct RemoveTagsFromCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .list), AWSShapeMember(label: "CertificateArn", required: true, type: .string) ] /// The key-value pair that defines the tag to remove. public let tags: [Tag] - /// String that contains the ARN of the ACM Certificate with one or more tags that you want to remove. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. + /// String that contains the ARN of the ACM Certificate with one or more tags that you want to remove. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. public let certificateArn: String public init(tags: [Tag], certificateArn: String) { @@ -32,6 +32,22 @@ extension Acm { } } + public enum ExtendedKeyUsageName: String, CustomStringConvertible, Codable { + case tlsWebServerAuthentication = "TLS_WEB_SERVER_AUTHENTICATION" + case tlsWebClientAuthentication = "TLS_WEB_CLIENT_AUTHENTICATION" + case codeSigning = "CODE_SIGNING" + case emailProtection = "EMAIL_PROTECTION" + case timeStamping = "TIME_STAMPING" + case ocspSigning = "OCSP_SIGNING" + case ipsecEndSystem = "IPSEC_END_SYSTEM" + case ipsecTunnel = "IPSEC_TUNNEL" + case ipsecUser = "IPSEC_USER" + case any = "ANY" + case none = "NONE" + case custom = "CUSTOM" + public var description: String { return self.rawValue } + } + public enum DomainStatus: String, CustomStringConvertible, Codable { case pendingValidation = "PENDING_VALIDATION" case success = "SUCCESS" @@ -40,7 +56,7 @@ extension Acm { } public struct ListCertificatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "CertificateSummaryList", required: false, type: .list) ] @@ -60,8 +76,23 @@ extension Acm { } } + public enum KeyUsageName: String, CustomStringConvertible, Codable { + case digitalSignature = "DIGITAL_SIGNATURE" + case nonRepudiation = "NON_REPUDIATION" + case keyEncipherment = "KEY_ENCIPHERMENT" + case dataEncipherment = "DATA_ENCIPHERMENT" + case keyAgreement = "KEY_AGREEMENT" + case certificateSigning = "CERTIFICATE_SIGNING" + case crlSigning = "CRL_SIGNING" + case encipherOnly = "ENCIPHER_ONLY" + case decipherOnly = "DECIPHER_ONLY" + case any = "ANY" + case custom = "CUSTOM" + public var description: String { return self.rawValue } + } + public struct RequestCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateArn", required: false, type: .string) ] /// String that contains the ARN of the issued certificate. This must be of the form: arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012 @@ -76,6 +107,22 @@ extension Acm { } } + public struct KeyUsage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .enum) + ] + /// A string value that contains a Key Usage extension name. + public let name: KeyUsageName? + + public init(name: KeyUsageName? = nil) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + public enum CertificateStatus: String, CustomStringConvertible, Codable { case pendingValidation = "PENDING_VALIDATION" case issued = "ISSUED" @@ -87,20 +134,26 @@ extension Acm { public var description: String { return self.rawValue } } + public enum ValidationMethod: String, CustomStringConvertible, Codable { + case email = "EMAIL" + case dns = "DNS" + public var description: String { return self.rawValue } + } + public struct ImportCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificate", required: true, type: .blob), AWSShapeMember(label: "CertificateArn", required: false, type: .string), AWSShapeMember(label: "PrivateKey", required: true, type: .blob), AWSShapeMember(label: "CertificateChain", required: false, type: .blob) ] - /// The certificate to import. It must meet the following requirements: Must be PEM-encoded. Must contain a 1024-bit or 2048-bit RSA public key. Must be valid at the time of import. You cannot import a certificate before its validity period begins (the certificate's NotBefore date) or after it expires (the certificate's NotAfter date). + /// The certificate to import. public let certificate: Data - /// The Amazon Resource Name (ARN) of an imported certificate to replace. To import a new certificate, omit this field. + /// The Amazon Resource Name (ARN) of an imported certificate to replace. To import a new certificate, omit this field. public let certificateArn: String? - /// The private key that matches the public key in the certificate. It must meet the following requirements: Must be PEM-encoded. Must be unencrypted. You cannot import a private key that is protected by a password or passphrase. + /// The private key that matches the public key in the certificate. public let privateKey: Data - /// The certificate chain. It must be PEM-encoded. + /// The PEM encoded certificate chain. public let certificateChain: Data? public init(certificate: Data, certificateArn: String? = nil, privateKey: Data, certificateChain: Data? = nil) { @@ -118,24 +171,75 @@ extension Acm { } } - public struct ListTagsForCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Tags", required: false, type: .list) + public struct ResourceRecord: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "Value", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) ] - /// The key-value pairs that define the applied tags. - public let tags: [Tag]? + /// The type of DNS record. Currently this can be CNAME. + public let `type`: RecordType + /// The value of the CNAME record to add to your DNS database. This is supplied by ACM. + public let value: String + /// The name of the DNS record to create in your domain. This is supplied by ACM. + public let name: String + + public init(type: RecordType, value: String, name: String) { + self.`type` = `type` + self.value = value + self.name = name + } - public init(tags: [Tag]? = nil) { - self.tags = tags + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case value = "Value" + case name = "Name" + } + } + + public struct DomainValidation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ValidationDomain", required: false, type: .string), + AWSShapeMember(label: "ValidationStatus", required: false, type: .enum), + AWSShapeMember(label: "ResourceRecord", required: false, type: .structure), + AWSShapeMember(label: "DomainName", required: true, type: .string), + AWSShapeMember(label: "ValidationMethod", required: false, type: .enum), + AWSShapeMember(label: "ValidationEmails", required: false, type: .list) + ] + /// The domain name that ACM used to send domain validation emails. + public let validationDomain: String? + /// The validation status of the domain name. This can be one of the following values: PENDING_VALIDATION SUCCESS FAILED + public let validationStatus: DomainStatus? + /// Contains the CNAME record that you add to your DNS database for domain validation. For more information, see Use DNS to Validate Domain Ownership. + public let resourceRecord: ResourceRecord? + /// A fully qualified domain name (FQDN) in the certificate. For example, www.example.com or example.com. + public let domainName: String + /// Specifies the domain validation method. + public let validationMethod: ValidationMethod? + /// A list of email addresses that ACM used to send domain validation emails. + public let validationEmails: [String]? + + public init(validationDomain: String? = nil, validationStatus: DomainStatus? = nil, resourceRecord: ResourceRecord? = nil, domainName: String, validationMethod: ValidationMethod? = nil, validationEmails: [String]? = nil) { + self.validationDomain = validationDomain + self.validationStatus = validationStatus + self.resourceRecord = resourceRecord + self.domainName = domainName + self.validationMethod = validationMethod + self.validationEmails = validationEmails } private enum CodingKeys: String, CodingKey { - case tags = "Tags" + case validationDomain = "ValidationDomain" + case validationStatus = "ValidationStatus" + case resourceRecord = "ResourceRecord" + case domainName = "DomainName" + case validationMethod = "ValidationMethod" + case validationEmails = "ValidationEmails" } } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -156,7 +260,7 @@ extension Acm { } public struct GetCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateArn", required: true, type: .string) ] /// String that contains a certificate ARN in the following format: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. @@ -171,34 +275,19 @@ extension Acm { } } - public struct DomainValidation: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ValidationDomain", required: false, type: .string), - AWSShapeMember(label: "ValidationStatus", required: false, type: .enum), - AWSShapeMember(label: "DomainName", required: true, type: .string), - AWSShapeMember(label: "ValidationEmails", required: false, type: .list) + public struct ListTagsForCertificateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: false, type: .list) ] - /// The domain name that ACM used to send domain validation emails. - public let validationDomain: String? - /// The validation status of the domain name. - public let validationStatus: DomainStatus? - /// A fully qualified domain name (FQDN) in the certificate. For example, www.example.com or example.com. - public let domainName: String - /// A list of email addresses that ACM used to send domain validation emails. - public let validationEmails: [String]? + /// The key-value pairs that define the applied tags. + public let tags: [Tag]? - public init(validationDomain: String? = nil, validationStatus: DomainStatus? = nil, domainName: String, validationEmails: [String]? = nil) { - self.validationDomain = validationDomain - self.validationStatus = validationStatus - self.domainName = domainName - self.validationEmails = validationEmails + public init(tags: [Tag]? = nil) { + self.tags = tags } private enum CodingKeys: String, CodingKey { - case validationDomain = "ValidationDomain" - case validationStatus = "ValidationStatus" - case domainName = "DomainName" - case validationEmails = "ValidationEmails" + case tags = "Tags" } } @@ -211,13 +300,13 @@ extension Acm { } public struct AddTagsToCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .list), AWSShapeMember(label: "CertificateArn", required: true, type: .string) ] /// The key-value pair that defines the tag. The tag value is optional. public let tags: [Tag] - /// String that contains the ARN of the ACM Certificate to which the tag is to be applied. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. + /// String that contains the ARN of the ACM Certificate to which the tag is to be applied. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. public let certificateArn: String public init(tags: [Tag], certificateArn: String) { @@ -232,7 +321,7 @@ extension Acm { } public struct GetCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificate", required: false, type: .string), AWSShapeMember(label: "CertificateChain", required: false, type: .string) ] @@ -253,14 +342,14 @@ extension Acm { } public struct ResendValidationEmailRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ValidationDomain", required: true, type: .string), AWSShapeMember(label: "CertificateArn", required: true, type: .string), AWSShapeMember(label: "Domain", required: true, type: .string) ] /// The base validation domain that will act as the suffix of the email addresses that are used to send the emails. This must be the same as the Domain value or a superdomain of the Domain value. For example, if you requested a certificate for site.subdomain.example.com and specify a ValidationDomain of subdomain.example.com, ACM sends email to the domain registrant, technical contact, and administrative contact in WHOIS and the following five addresses: admin@subdomain.example.com administrator@subdomain.example.com hostmaster@subdomain.example.com postmaster@subdomain.example.com webmaster@subdomain.example.com public let validationDomain: String - /// String that contains the ARN of the requested certificate. The certificate ARN is generated and returned by the RequestCertificate action as soon as the request is made. By default, using this parameter causes email to be sent to all top-level domains you specified in the certificate request. The ARN must be of the form: arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012 + /// String that contains the ARN of the requested certificate. The certificate ARN is generated and returned by the RequestCertificate action as soon as the request is made. By default, using this parameter causes email to be sent to all top-level domains you specified in the certificate request. The ARN must be of the form: arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012 public let certificateArn: String /// The fully qualified domain name (FQDN) of the certificate that needs to be validated. public let domain: String @@ -292,8 +381,34 @@ extension Acm { public var description: String { return self.rawValue } } + public struct Filters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "extendedKeyUsage", required: false, type: .list), + AWSShapeMember(label: "keyTypes", required: false, type: .list), + AWSShapeMember(label: "keyUsage", required: false, type: .list) + ] + /// Specify one or more ExtendedKeyUsage extension values. + public let extendedKeyUsage: [ExtendedKeyUsageName]? + /// Specify one or more algorithms that can be used to generate key pairs. + public let keyTypes: [KeyAlgorithm]? + /// Specify one or more KeyUsage extension values. + public let keyUsage: [KeyUsageName]? + + public init(extendedKeyUsage: [ExtendedKeyUsageName]? = nil, keyTypes: [KeyAlgorithm]? = nil, keyUsage: [KeyUsageName]? = nil) { + self.extendedKeyUsage = extendedKeyUsage + self.keyTypes = keyTypes + self.keyUsage = keyUsage + } + + private enum CodingKeys: String, CodingKey { + case extendedKeyUsage = "extendedKeyUsage" + case keyTypes = "keyTypes" + case keyUsage = "keyUsage" + } + } + public struct RenewalSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainValidationOptions", required: true, type: .list), AWSShapeMember(label: "RenewalStatus", required: true, type: .enum) ] @@ -314,7 +429,7 @@ extension Acm { } public struct DomainValidationOption: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ValidationDomain", required: true, type: .string), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -335,11 +450,11 @@ extension Acm { } public struct CertificateSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateArn", required: false, type: .string), AWSShapeMember(label: "DomainName", required: false, type: .string) ] - /// Amazon Resource Name (ARN) of the certificate. This is of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. + /// Amazon Resource Name (ARN) of the certificate. This is of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. public let certificateArn: String? /// Fully qualified domain name (FQDN), such as www.example.com or example.com, for the certificate. public let domainName: String? @@ -356,7 +471,7 @@ extension Acm { } public struct DescribeCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the ACM Certificate. The ARN must have the following form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. @@ -374,38 +489,46 @@ extension Acm { public enum KeyAlgorithm: String, CustomStringConvertible, Codable { case rsa2048 = "RSA_2048" case rsa1024 = "RSA_1024" + case rsa4096 = "RSA_4096" case ecPrime256V1 = "EC_prime256v1" + case ecSecp384R1 = "EC_secp384r1" + case ecSecp521R1 = "EC_secp521r1" public var description: String { return self.rawValue } } public struct ListCertificatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateStatuses", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer) + AWSShapeMember(label: "MaxItems", required: false, type: .integer), + AWSShapeMember(label: "Includes", required: false, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// The status or statuses on which to filter the list of ACM Certificates. + /// Filter the certificate list by status value. public let certificateStatuses: [CertificateStatus]? - /// Use this parameter only when paginating results and only in a subsequent request after you receive a response with truncated results. Set it to the value of NextToken from the response you just received. - public let nextToken: String? /// Use this parameter when paginating results to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items. public let maxItems: Int32? + /// Filter the certificate list by one or more of the following values. For more information, see the Filters structure. extendedKeyUsage keyUsage keyTypes + public let includes: Filters? + /// Use this parameter only when paginating results and only in a subsequent request after you receive a response with truncated results. Set it to the value of NextToken from the response you just received. + public let nextToken: String? - public init(certificateStatuses: [CertificateStatus]? = nil, nextToken: String? = nil, maxItems: Int32? = nil) { + public init(certificateStatuses: [CertificateStatus]? = nil, maxItems: Int32? = nil, includes: Filters? = nil, nextToken: String? = nil) { self.certificateStatuses = certificateStatuses - self.nextToken = nextToken self.maxItems = maxItems + self.includes = includes + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { case certificateStatuses = "CertificateStatuses" - case nextToken = "NextToken" case maxItems = "MaxItems" + case includes = "Includes" + case nextToken = "NextToken" } } public struct DescribeCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificate", required: false, type: .structure) ] /// Metadata about an ACM certificate. @@ -421,38 +544,43 @@ extension Acm { } public struct RequestCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainValidationOptions", required: false, type: .list), - AWSShapeMember(label: "SubjectAlternativeNames", required: false, type: .list), + AWSShapeMember(label: "IdempotencyToken", required: false, type: .string), AWSShapeMember(label: "DomainName", required: true, type: .string), - AWSShapeMember(label: "IdempotencyToken", required: false, type: .string) + AWSShapeMember(label: "ValidationMethod", required: false, type: .enum), + AWSShapeMember(label: "SubjectAlternativeNames", required: false, type: .list) ] - /// The domain name that you want ACM to use to send you emails to validate your ownership of the domain. + /// The domain name that you want ACM to use to send you emails so taht your can validate domain ownership. public let domainValidationOptions: [DomainValidationOption]? - /// Additional FQDNs to be included in the Subject Alternative Name extension of the ACM Certificate. For example, add the name www.example.net to a certificate for which the DomainName field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM Certificate is 100. However, the initial limit is 10 domain names. If you need more than 10 names, you must request a limit increase. For more information, see Limits. - public let subjectAlternativeNames: [String]? - /// Fully qualified domain name (FQDN), such as www.example.com, of the site that you want to secure with an ACM Certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com. The maximum length of a DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples: (63 octets).(63 octets).(63 octets).(61 octets) is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets. (64 octets).(63 octets).(63 octets).(61 octets) is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets. (63 octets).(63 octets).(63 octets).(62 octets) is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets. - public let domainName: String /// Customer chosen string that can be used to distinguish between calls to RequestCertificate. Idempotency tokens time out after one hour. Therefore, if you call RequestCertificate multiple times with the same idempotency token within one hour, ACM recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, ACM recognizes that you are requesting multiple certificates. public let idempotencyToken: String? + /// Fully qualified domain name (FQDN), such as www.example.com, of the site that you want to secure with an ACM Certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com. The first domain name you enter cannot exceed 63 octets, including periods. Each subsequent Subject Alternative Name (SAN), however, can be up to 253 octets in length. + public let domainName: String + /// The method you want to use to validate your domain. + public let validationMethod: ValidationMethod? + /// Additional FQDNs to be included in the Subject Alternative Name extension of the ACM Certificate. For example, add the name www.example.net to a certificate for which the DomainName field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM Certificate is 100. However, the initial limit is 10 domain names. If you need more than 10 names, you must request a limit increase. For more information, see Limits. The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples: (63 octets).(63 octets).(63 octets).(61 octets) is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets. (64 octets).(63 octets).(63 octets).(61 octets) is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets. (63 octets).(63 octets).(63 octets).(62 octets) is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets. + public let subjectAlternativeNames: [String]? - public init(domainValidationOptions: [DomainValidationOption]? = nil, subjectAlternativeNames: [String]? = nil, domainName: String, idempotencyToken: String? = nil) { + public init(domainValidationOptions: [DomainValidationOption]? = nil, idempotencyToken: String? = nil, domainName: String, validationMethod: ValidationMethod? = nil, subjectAlternativeNames: [String]? = nil) { self.domainValidationOptions = domainValidationOptions - self.subjectAlternativeNames = subjectAlternativeNames - self.domainName = domainName self.idempotencyToken = idempotencyToken + self.domainName = domainName + self.validationMethod = validationMethod + self.subjectAlternativeNames = subjectAlternativeNames } private enum CodingKeys: String, CodingKey { case domainValidationOptions = "DomainValidationOptions" - case subjectAlternativeNames = "SubjectAlternativeNames" - case domainName = "DomainName" case idempotencyToken = "IdempotencyToken" + case domainName = "DomainName" + case validationMethod = "ValidationMethod" + case subjectAlternativeNames = "SubjectAlternativeNames" } } public struct ImportCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateArn", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the imported certificate. @@ -467,11 +595,37 @@ extension Acm { } } + public struct ExtendedKeyUsage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .enum), + AWSShapeMember(label: "OID", required: false, type: .string) + ] + /// The name of an Extended Key Usage value. + public let name: ExtendedKeyUsageName? + /// An object identifier (OID) for the extension value. OIDs are strings of numbers separated by periods. The following OIDs are defined in RFC 3280 and RFC 5280. 1.3.6.1.5.5.7.3.1 (TLS_WEB_SERVER_AUTHENTICATION) 1.3.6.1.5.5.7.3.2 (TLS_WEB_CLIENT_AUTHENTICATION) 1.3.6.1.5.5.7.3.3 (CODE_SIGNING) 1.3.6.1.5.5.7.3.4 (EMAIL_PROTECTION) 1.3.6.1.5.5.7.3.8 (TIME_STAMPING) 1.3.6.1.5.5.7.3.9 (OCSP_SIGNING) 1.3.6.1.5.5.7.3.5 (IPSEC_END_SYSTEM) 1.3.6.1.5.5.7.3.6 (IPSEC_TUNNEL) 1.3.6.1.5.5.7.3.7 (IPSEC_USER) + public let oid: String? + + public init(name: ExtendedKeyUsageName? = nil, oid: String? = nil) { + self.name = name + self.oid = oid + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case oid = "OID" + } + } + + public enum RecordType: String, CustomStringConvertible, Codable { + case cname = "CNAME" + public var description: String { return self.rawValue } + } + public struct ListTagsForCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateArn", required: true, type: .string) ] - /// String that contains the ARN of the ACM Certificate for which you want to list the tags. This has the following form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. + /// String that contains the ARN of the ACM Certificate for which you want to list the tags. This must have the following form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. public let certificateArn: String public init(certificateArn: String) { @@ -484,7 +638,7 @@ extension Acm { } public struct DeleteCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateArn", required: true, type: .string) ] /// String that contains the ARN of the ACM Certificate to be deleted. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. @@ -504,16 +658,19 @@ extension Acm { case additionalVerificationRequired = "ADDITIONAL_VERIFICATION_REQUIRED" case domainNotAllowed = "DOMAIN_NOT_ALLOWED" case invalidPublicDomain = "INVALID_PUBLIC_DOMAIN" + case caaError = "CAA_ERROR" case other = "OTHER" public var description: String { return self.rawValue } } public struct CertificateDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailureReason", required: false, type: .enum), AWSShapeMember(label: "IssuedAt", required: false, type: .timestamp), + AWSShapeMember(label: "ExtendedKeyUsages", required: false, type: .list), AWSShapeMember(label: "ImportedAt", required: false, type: .timestamp), AWSShapeMember(label: "RevokedAt", required: false, type: .timestamp), + AWSShapeMember(label: "KeyUsages", required: false, type: .list), AWSShapeMember(label: "RenewalSummary", required: false, type: .structure), AWSShapeMember(label: "SignatureAlgorithm", required: false, type: .string), AWSShapeMember(label: "Serial", required: false, type: .string), @@ -532,54 +689,60 @@ extension Acm { AWSShapeMember(label: "Issuer", required: false, type: .string), AWSShapeMember(label: "Subject", required: false, type: .string) ] - /// The reason the certificate request failed. This value exists only when the certificate status is FAILED. For more information, see Certificate Request Failed in the AWS Certificate Manager User Guide. + /// The reason the certificate request failed. This value exists only when the certificate status is FAILED. For more information, see Certificate Request Failed in the AWS Certificate Manager User Guide. public let failureReason: FailureReason? - /// The time at which the certificate was issued. This value exists only when the certificate type is AMAZON_ISSUED. + /// The time at which the certificate was issued. This value exists only when the certificate type is AMAZON_ISSUED. public let issuedAt: TimeStamp? - /// The date and time at which the certificate was imported. This value exists only when the certificate type is IMPORTED. + /// Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies a purpose for which the certificate public key can be used and consists of a name and an object identifier (OID). + public let extendedKeyUsages: [ExtendedKeyUsage]? + /// The date and time at which the certificate was imported. This value exists only when the certificate type is IMPORTED. public let importedAt: TimeStamp? - /// The time at which the certificate was revoked. This value exists only when the certificate status is REVOKED. + /// The time at which the certificate was revoked. This value exists only when the certificate status is REVOKED. public let revokedAt: TimeStamp? + /// A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose of the public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION, and more. + public let keyUsages: [KeyUsage]? /// Contains information about the status of ACM's managed renewal for the certificate. This field exists only when the certificate type is AMAZON_ISSUED. public let renewalSummary: RenewalSummary? /// The algorithm that was used to sign the certificate. public let signatureAlgorithm: String? /// The serial number of the certificate. public let serial: String? - /// The reason the certificate was revoked. This value exists only when the certificate status is REVOKED. + /// The reason the certificate was revoked. This value exists only when the certificate status is REVOKED. public let revocationReason: RevocationReason? /// The time after which the certificate is not valid. public let notAfter: TimeStamp? /// The status of the certificate. public let status: CertificateStatus? - /// The time at which the certificate was requested. This value exists only when the certificate type is AMAZON_ISSUED. + /// The time at which the certificate was requested. This value exists only when the certificate type is AMAZON_ISSUED. public let createdAt: TimeStamp? /// The time before which the certificate is not valid. public let notBefore: TimeStamp? - /// One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website. + /// One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website. public let subjectAlternativeNames: [String]? - /// Contains information about the initial validation of each domain name that occurs as a result of the RequestCertificate request. This field exists only when the certificate type is AMAZON_ISSUED. + /// Contains information about the initial validation of each domain name that occurs as a result of the RequestCertificate request. This field exists only when the certificate type is AMAZON_ISSUED. public let domainValidationOptions: [DomainValidation]? - /// The algorithm that was used to generate the key pair (the public and private key). + /// The algorithm that was used to generate the public-private key pair. public let keyAlgorithm: KeyAlgorithm? /// The Amazon Resource Name (ARN) of the certificate. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. public let certificateArn: String? /// The fully qualified domain name for the certificate, such as www.example.com or example.com. public let domainName: String? - /// The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the AWS Certificate Manager User Guide. + /// The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the AWS Certificate Manager User Guide. public let `type`: CertificateType? - /// A list of ARNs for the AWS resources that are using the certificate. A certificate can be used by multiple AWS resources. + /// A list of ARNs for the AWS resources that are using the certificate. A certificate can be used by multiple AWS resources. public let inUseBy: [String]? /// The name of the certificate authority that issued and signed the certificate. public let issuer: String? /// The name of the entity that is associated with the public key contained in the certificate. public let subject: String? - public init(failureReason: FailureReason? = nil, issuedAt: TimeStamp? = nil, importedAt: TimeStamp? = nil, revokedAt: TimeStamp? = nil, renewalSummary: RenewalSummary? = nil, signatureAlgorithm: String? = nil, serial: String? = nil, revocationReason: RevocationReason? = nil, notAfter: TimeStamp? = nil, status: CertificateStatus? = nil, createdAt: TimeStamp? = nil, notBefore: TimeStamp? = nil, subjectAlternativeNames: [String]? = nil, domainValidationOptions: [DomainValidation]? = nil, keyAlgorithm: KeyAlgorithm? = nil, certificateArn: String? = nil, domainName: String? = nil, type: CertificateType? = nil, inUseBy: [String]? = nil, issuer: String? = nil, subject: String? = nil) { + public init(failureReason: FailureReason? = nil, issuedAt: TimeStamp? = nil, extendedKeyUsages: [ExtendedKeyUsage]? = nil, importedAt: TimeStamp? = nil, revokedAt: TimeStamp? = nil, keyUsages: [KeyUsage]? = nil, renewalSummary: RenewalSummary? = nil, signatureAlgorithm: String? = nil, serial: String? = nil, revocationReason: RevocationReason? = nil, notAfter: TimeStamp? = nil, status: CertificateStatus? = nil, createdAt: TimeStamp? = nil, notBefore: TimeStamp? = nil, subjectAlternativeNames: [String]? = nil, domainValidationOptions: [DomainValidation]? = nil, keyAlgorithm: KeyAlgorithm? = nil, certificateArn: String? = nil, domainName: String? = nil, type: CertificateType? = nil, inUseBy: [String]? = nil, issuer: String? = nil, subject: String? = nil) { self.failureReason = failureReason self.issuedAt = issuedAt + self.extendedKeyUsages = extendedKeyUsages self.importedAt = importedAt self.revokedAt = revokedAt + self.keyUsages = keyUsages self.renewalSummary = renewalSummary self.signatureAlgorithm = signatureAlgorithm self.serial = serial @@ -602,8 +765,10 @@ extension Acm { private enum CodingKeys: String, CodingKey { case failureReason = "FailureReason" case issuedAt = "IssuedAt" + case extendedKeyUsages = "ExtendedKeyUsages" case importedAt = "ImportedAt" case revokedAt = "RevokedAt" + case keyUsages = "KeyUsages" case renewalSummary = "RenewalSummary" case signatureAlgorithm = "SignatureAlgorithm" case serial = "Serial" diff --git a/Sources/AWSSDKSwift/Services/alexaforbusiness/Alexaforbusiness_API.swift b/Sources/AWSSDKSwift/Services/alexaforbusiness/Alexaforbusiness_API.swift new file mode 100644 index 00000000000..2c7860cea49 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/alexaforbusiness/Alexaforbusiness_API.swift @@ -0,0 +1,209 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +Alexa for Business makes it easy for you to use Alexa in your organization. Alexa for Business gives you the tools you need to manage Alexa devices, enroll your users, and assign skills, at scale. You can build your own context-aware voice skills using the Alexa Skills Kit, and the Alexa for Business APIs, and you can make these available as private skills for your organization. Alexa for Business also makes it easy to voice-enable your products and services, providing context-aware voice experiences for your customers. +*/ +public struct Alexaforbusiness { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "AlexaForBusiness", + service: "a4b", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-11-09", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [AlexaforbusinessError.self] + ) + } + + /// Gets skill group details by skill group ARN. + public func getSkillGroup(_ input: GetSkillGroupRequest) throws -> GetSkillGroupResponse { + return try client.send(operation: "GetSkillGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Resets a device and its account to the known default settings by clearing all information and settings set by previous users. + public func startDeviceSync(_ input: StartDeviceSyncRequest) throws -> StartDeviceSyncResponse { + return try client.send(operation: "StartDeviceSync", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a room with the specified details. + public func createRoom(_ input: CreateRoomRequest) throws -> CreateRoomResponse { + return try client.send(operation: "CreateRoom", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a skill group by skill group ARN. + public func deleteSkillGroup(_ input: DeleteSkillGroupRequest) throws -> DeleteSkillGroupResponse { + return try client.send(operation: "DeleteSkillGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Lists all tags for a specific resource. + public func listTags(_ input: ListTagsRequest) throws -> ListTagsResponse { + return try client.send(operation: "ListTags", path: "/", httpMethod: "POST", input: input) + } + + /// Searches room profiles and lists the ones that meet a set of filter criteria. + public func searchProfiles(_ input: SearchProfilesRequest) throws -> SearchProfilesResponse { + return try client.send(operation: "SearchProfiles", path: "/", httpMethod: "POST", input: input) + } + + /// Revokes an invitation and invalidates the enrollment URL. + public func revokeInvitation(_ input: RevokeInvitationRequest) throws -> RevokeInvitationResponse { + return try client.send(operation: "RevokeInvitation", path: "/", httpMethod: "POST", input: input) + } + + /// Associates a device to a given room. This applies all the settings from the room profile to the device, and all the skills in any skill groups added to that room. This operation requires the device to be online, or a manual sync is required. + public func associateDeviceWithRoom(_ input: AssociateDeviceWithRoomRequest) throws -> AssociateDeviceWithRoomResponse { + return try client.send(operation: "AssociateDeviceWithRoom", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a user. + public func createUser(_ input: CreateUserRequest) throws -> CreateUserResponse { + return try client.send(operation: "CreateUser", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a room profile by the profile ARN. + public func deleteProfile(_ input: DeleteProfileRequest) throws -> DeleteProfileResponse { + return try client.send(operation: "DeleteProfile", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new room profile with the specified details. + public func createProfile(_ input: CreateProfileRequest) throws -> CreateProfileResponse { + return try client.send(operation: "CreateProfile", path: "/", httpMethod: "POST", input: input) + } + + /// Updates the device name by device ARN. + public func updateDevice(_ input: UpdateDeviceRequest) throws -> UpdateDeviceResponse { + return try client.send(operation: "UpdateDevice", path: "/", httpMethod: "POST", input: input) + } + + /// Searches rooms and lists the ones that meet a set of filter and sort criteria. + public func searchRooms(_ input: SearchRoomsRequest) throws -> SearchRoomsResponse { + return try client.send(operation: "SearchRooms", path: "/", httpMethod: "POST", input: input) + } + + /// Disassociates a skill group from a specified room. This disables all skills in the skill group on all devices in the room. + public func disassociateSkillGroupFromRoom(_ input: DisassociateSkillGroupFromRoomRequest) throws -> DisassociateSkillGroupFromRoomResponse { + return try client.send(operation: "DisassociateSkillGroupFromRoom", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a skill group with a specified name and description. + public func createSkillGroup(_ input: CreateSkillGroupRequest) throws -> CreateSkillGroupResponse { + return try client.send(operation: "CreateSkillGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Gets the details of a device by device ARN. + public func getDevice(_ input: GetDeviceRequest) throws -> GetDeviceResponse { + return try client.send(operation: "GetDevice", path: "/", httpMethod: "POST", input: input) + } + + /// Gets room details by room ARN. + public func getRoom(_ input: GetRoomRequest) throws -> GetRoomResponse { + return try client.send(operation: "GetRoom", path: "/", httpMethod: "POST", input: input) + } + + /// Searches skill groups and lists the ones that meet a set of filter and sort criteria. + public func searchSkillGroups(_ input: SearchSkillGroupsRequest) throws -> SearchSkillGroupsResponse { + return try client.send(operation: "SearchSkillGroups", path: "/", httpMethod: "POST", input: input) + } + + /// Disassociates a device from its current room. The device continues to be connected to the Wi-Fi network and is still registered to the account. The device settings and skills are removed from the room. + public func disassociateDeviceFromRoom(_ input: DisassociateDeviceFromRoomRequest) throws -> DisassociateDeviceFromRoomResponse { + return try client.send(operation: "DisassociateDeviceFromRoom", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes room skill parameter details by room, skill, and parameter key ID. + public func deleteRoomSkillParameter(_ input: DeleteRoomSkillParameterRequest) throws -> DeleteRoomSkillParameterResponse { + return try client.send(operation: "DeleteRoomSkillParameter", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a room by the room ARN. + public func deleteRoom(_ input: DeleteRoomRequest) throws -> DeleteRoomResponse { + return try client.send(operation: "DeleteRoom", path: "/", httpMethod: "POST", input: input) + } + + /// Sends an enrollment invitation email with a URL to a user. The URL is valid for 72 hours or until you call this operation again, whichever comes first. + public func sendInvitation(_ input: SendInvitationRequest) throws -> SendInvitationResponse { + return try client.send(operation: "SendInvitation", path: "/", httpMethod: "POST", input: input) + } + + /// Updates room details by room ARN. + public func updateRoom(_ input: UpdateRoomRequest) throws -> UpdateRoomResponse { + return try client.send(operation: "UpdateRoom", path: "/", httpMethod: "POST", input: input) + } + + /// Updates an existing room profile by room profile ARN. + public func updateProfile(_ input: UpdateProfileRequest) throws -> UpdateProfileResponse { + return try client.send(operation: "UpdateProfile", path: "/", httpMethod: "POST", input: input) + } + + /// Updates room skill parameter details by room, skill, and parameter key ID. Not all skills have a room skill parameter. + public func putRoomSkillParameter(_ input: PutRoomSkillParameterRequest) throws -> PutRoomSkillParameterResponse { + return try client.send(operation: "PutRoomSkillParameter", path: "/", httpMethod: "POST", input: input) + } + + /// Associates a skill group to a given room. This enables all skills in the associated skill group on all devices in the room. + public func associateSkillGroupWithRoom(_ input: AssociateSkillGroupWithRoomRequest) throws -> AssociateSkillGroupWithRoomResponse { + return try client.send(operation: "AssociateSkillGroupWithRoom", path: "/", httpMethod: "POST", input: input) + } + + /// Removes metadata tags from a specified resource. + public func untagResource(_ input: UntagResourceRequest) throws -> UntagResourceResponse { + return try client.send(operation: "UntagResource", path: "/", httpMethod: "POST", input: input) + } + + /// Determines the details for the room from which a skill request was invoked. This operation is used by skill developers. + public func resolveRoom(_ input: ResolveRoomRequest) throws -> ResolveRoomResponse { + return try client.send(operation: "ResolveRoom", path: "/", httpMethod: "POST", input: input) + } + + /// Lists all enabled skills in a specific skill group. + public func listSkills(_ input: ListSkillsRequest) throws -> ListSkillsResponse { + return try client.send(operation: "ListSkills", path: "/", httpMethod: "POST", input: input) + } + + /// Adds metadata tags to a specified resource. + public func tagResource(_ input: TagResourceRequest) throws -> TagResourceResponse { + return try client.send(operation: "TagResource", path: "/", httpMethod: "POST", input: input) + } + + /// Gets the details of a room profile by profile ARN. + public func getProfile(_ input: GetProfileRequest) throws -> GetProfileResponse { + return try client.send(operation: "GetProfile", path: "/", httpMethod: "POST", input: input) + } + + /// Gets room skill parameter details by room, skill, and parameter key ARN. + public func getRoomSkillParameter(_ input: GetRoomSkillParameterRequest) throws -> GetRoomSkillParameterResponse { + return try client.send(operation: "GetRoomSkillParameter", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a specified user by user ARN and enrollment ARN. + public func deleteUser(_ input: DeleteUserRequest) throws -> DeleteUserResponse { + return try client.send(operation: "DeleteUser", path: "/", httpMethod: "POST", input: input) + } + + /// Updates skill group details by skill group ARN. + public func updateSkillGroup(_ input: UpdateSkillGroupRequest) throws -> UpdateSkillGroupResponse { + return try client.send(operation: "UpdateSkillGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Searches devices and lists the ones that meet a set of filter criteria. + public func searchDevices(_ input: SearchDevicesRequest) throws -> SearchDevicesResponse { + return try client.send(operation: "SearchDevices", path: "/", httpMethod: "POST", input: input) + } + + /// Searches users and lists the ones that meet a set of filter and sort criteria. + public func searchUsers(_ input: SearchUsersRequest) throws -> SearchUsersResponse { + return try client.send(operation: "SearchUsers", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/alexaforbusiness/Alexaforbusiness_Error.swift b/Sources/AWSSDKSwift/Services/alexaforbusiness/Alexaforbusiness_Error.swift new file mode 100644 index 00000000000..b604c7ab04e --- /dev/null +++ b/Sources/AWSSDKSwift/Services/alexaforbusiness/Alexaforbusiness_Error.swift @@ -0,0 +1,38 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Alexaforbusiness +public enum AlexaforbusinessError: AWSErrorType { + case notFoundException(message: String?) + case alreadyExistsException(message: String?) + case limitExceededException(message: String?) + case resourceInUseException(message: String?) + case invalidUserStatusException(message: String?) + case nameInUseException(message: String?) +} + +extension AlexaforbusinessError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "NotFoundException": + self = .notFoundException(message: message) + case "AlreadyExistsException": + self = .alreadyExistsException(message: message) + case "LimitExceededException": + self = .limitExceededException(message: message) + case "ResourceInUseException": + self = .resourceInUseException(message: message) + case "InvalidUserStatusException": + self = .invalidUserStatusException(message: message) + case "NameInUseException": + self = .nameInUseException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/alexaforbusiness/Alexaforbusiness_Shapes.swift b/Sources/AWSSDKSwift/Services/alexaforbusiness/Alexaforbusiness_Shapes.swift new file mode 100644 index 00000000000..032c3e5a47a --- /dev/null +++ b/Sources/AWSSDKSwift/Services/alexaforbusiness/Alexaforbusiness_Shapes.swift @@ -0,0 +1,1907 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Alexaforbusiness { + + public struct GetSkillGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SkillGroup", required: false, type: .structure) + ] + /// The details of the skill group requested. Required. + public let skillGroup: SkillGroup? + + public init(skillGroup: SkillGroup? = nil) { + self.skillGroup = skillGroup + } + + private enum CodingKeys: String, CodingKey { + case skillGroup = "SkillGroup" + } + } + + public struct TagResourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: true, type: .list), + AWSShapeMember(label: "Arn", required: true, type: .string) + ] + /// The tags to be added to the specified resource. Do not provide system tags. Required. + public let tags: [Tag] + /// The ARN of the resource to which to add metadata tags. Required. + public let arn: String + + public init(tags: [Tag], arn: String) { + self.tags = tags + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + case arn = "Arn" + } + } + + public struct DeleteRoomSkillParameterResponse: AWSShape { + + } + + public struct DeleteRoomRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string) + ] + /// The ARN of the room to delete. Required. + public let roomArn: String? + + public init(roomArn: String? = nil) { + self.roomArn = roomArn + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + } + } + + public struct DeleteProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProfileArn", required: false, type: .string) + ] + /// The ARN of the room profile to delete. Required. + public let profileArn: String? + + public init(profileArn: String? = nil) { + self.profileArn = profileArn + } + + private enum CodingKeys: String, CodingKey { + case profileArn = "ProfileArn" + } + } + + public enum TemperatureUnit: String, CustomStringConvertible, Codable { + case fahrenheit = "FAHRENHEIT" + case celsius = "CELSIUS" + public var description: String { return self.rawValue } + } + + public enum DeviceStatus: String, CustomStringConvertible, Codable { + case ready = "READY" + case pending = "PENDING" + case wasOffline = "WAS_OFFLINE" + public var description: String { return self.rawValue } + } + + public struct ListTagsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list) + ] + /// The token returned to indicate that there is more data available. + public let nextToken: String? + /// The list of tags requested for the specific resource. + public let tags: [Tag]? + + public init(nextToken: String? = nil, tags: [Tag]? = nil) { + self.nextToken = nextToken + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case tags = "Tags" + } + } + + public struct CreateProfileResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProfileArn", required: false, type: .string) + ] + /// The ARN of the newly created room profile in the response. + public let profileArn: String? + + public init(profileArn: String? = nil) { + self.profileArn = profileArn + } + + private enum CodingKeys: String, CodingKey { + case profileArn = "ProfileArn" + } + } + + public struct GetDeviceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceArn", required: false, type: .string) + ] + /// The ARN of the device for which to request details. Required. + public let deviceArn: String? + + public init(deviceArn: String? = nil) { + self.deviceArn = deviceArn + } + + private enum CodingKeys: String, CodingKey { + case deviceArn = "DeviceArn" + } + } + + public struct ProfileData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TemperatureUnit", required: false, type: .enum), + AWSShapeMember(label: "Timezone", required: false, type: .string), + AWSShapeMember(label: "ProfileArn", required: false, type: .string), + AWSShapeMember(label: "Address", required: false, type: .string), + AWSShapeMember(label: "ProfileName", required: false, type: .string), + AWSShapeMember(label: "WakeWord", required: false, type: .enum), + AWSShapeMember(label: "DistanceUnit", required: false, type: .enum) + ] + /// The temperature unit of a room profile. + public let temperatureUnit: TemperatureUnit? + /// The timezone of a room profile. + public let timezone: String? + /// The ARN of a room profile. + public let profileArn: String? + /// The address of a room profile. + public let address: String? + /// The name of a room profile. + public let profileName: String? + /// The wake word of a room profile. + public let wakeWord: WakeWord? + /// The distance unit of a room profile. + public let distanceUnit: DistanceUnit? + + public init(temperatureUnit: TemperatureUnit? = nil, timezone: String? = nil, profileArn: String? = nil, address: String? = nil, profileName: String? = nil, wakeWord: WakeWord? = nil, distanceUnit: DistanceUnit? = nil) { + self.temperatureUnit = temperatureUnit + self.timezone = timezone + self.profileArn = profileArn + self.address = address + self.profileName = profileName + self.wakeWord = wakeWord + self.distanceUnit = distanceUnit + } + + private enum CodingKeys: String, CodingKey { + case temperatureUnit = "TemperatureUnit" + case timezone = "Timezone" + case profileArn = "ProfileArn" + case address = "Address" + case profileName = "ProfileName" + case wakeWord = "WakeWord" + case distanceUnit = "DistanceUnit" + } + } + + public struct UpdateDeviceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceArn", required: false, type: .string), + AWSShapeMember(label: "DeviceName", required: false, type: .string) + ] + /// The ARN of the device to update. Required. + public let deviceArn: String? + /// The updated device name. Required. + public let deviceName: String? + + public init(deviceArn: String? = nil, deviceName: String? = nil) { + self.deviceArn = deviceArn + self.deviceName = deviceName + } + + private enum CodingKeys: String, CodingKey { + case deviceArn = "DeviceArn" + case deviceName = "DeviceName" + } + } + + public struct RoomData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "ProviderCalendarId", required: false, type: .string), + AWSShapeMember(label: "RoomName", required: false, type: .string), + AWSShapeMember(label: "ProfileName", required: false, type: .string), + AWSShapeMember(label: "ProfileArn", required: false, type: .string) + ] + /// The ARN of a room. + public let roomArn: String? + /// The description of a room. + public let description: String? + /// The provider calendar ARN of a room. + public let providerCalendarId: String? + /// The name of a room. + public let roomName: String? + /// The profile name of a room. + public let profileName: String? + /// The profile ARN of a room. + public let profileArn: String? + + public init(roomArn: String? = nil, description: String? = nil, providerCalendarId: String? = nil, roomName: String? = nil, profileName: String? = nil, profileArn: String? = nil) { + self.roomArn = roomArn + self.description = description + self.providerCalendarId = providerCalendarId + self.roomName = roomName + self.profileName = profileName + self.profileArn = profileArn + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case description = "Description" + case providerCalendarId = "ProviderCalendarId" + case roomName = "RoomName" + case profileName = "ProfileName" + case profileArn = "ProfileArn" + } + } + + public struct GetSkillGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SkillGroupArn", required: false, type: .string) + ] + /// The ARN of the skill group for which to get details. Required. + public let skillGroupArn: String? + + public init(skillGroupArn: String? = nil) { + self.skillGroupArn = skillGroupArn + } + + private enum CodingKeys: String, CodingKey { + case skillGroupArn = "SkillGroupArn" + } + } + + public struct SearchDevicesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Devices", required: false, type: .list), + AWSShapeMember(label: "TotalCount", required: false, type: .integer) + ] + /// The token returned to indicate that there is more data available. + public let nextToken: String? + /// The devices that meet the specified set of filter criteria, in sort order. + public let devices: [DeviceData]? + /// The total number of devices returned. + public let totalCount: Int32? + + public init(nextToken: String? = nil, devices: [DeviceData]? = nil, totalCount: Int32? = nil) { + self.nextToken = nextToken + self.devices = devices + self.totalCount = totalCount + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case devices = "Devices" + case totalCount = "TotalCount" + } + } + + public struct CreateRoomRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "ProviderCalendarId", required: false, type: .string), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "RoomName", required: true, type: .string), + AWSShapeMember(label: "ProfileArn", required: false, type: .string) + ] + /// The description for the room. + public let description: String? + /// The calendar ARN for the room. + public let providerCalendarId: String? + /// A unique, user-specified identifier for this request that ensures idempotency. + public let clientRequestToken: String? + /// The tags for the room. + public let tags: [Tag]? + /// The name for the room. + public let roomName: String + /// The profile ARN for the room. + public let profileArn: String? + + public init(description: String? = nil, providerCalendarId: String? = nil, clientRequestToken: String? = nil, tags: [Tag]? = nil, roomName: String, profileArn: String? = nil) { + self.description = description + self.providerCalendarId = providerCalendarId + self.clientRequestToken = clientRequestToken + self.tags = tags + self.roomName = roomName + self.profileArn = profileArn + } + + private enum CodingKeys: String, CodingKey { + case description = "Description" + case providerCalendarId = "ProviderCalendarId" + case clientRequestToken = "ClientRequestToken" + case tags = "Tags" + case roomName = "RoomName" + case profileArn = "ProfileArn" + } + } + + public enum EnrollmentStatus: String, CustomStringConvertible, Codable { + case initialized = "INITIALIZED" + case pending = "PENDING" + case registered = "REGISTERED" + case deregistering = "DEREGISTERING" + public var description: String { return self.rawValue } + } + + public enum DistanceUnit: String, CustomStringConvertible, Codable { + case metric = "METRIC" + case imperial = "IMPERIAL" + public var description: String { return self.rawValue } + } + + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: false, type: .string), + AWSShapeMember(label: "Key", required: false, type: .string) + ] + /// The value of a tag. Tag values are case-sensitive and can be null. + public let value: String? + /// The key of a tag. Tag keys are case-sensitive. + public let key: String? + + public init(value: String? = nil, key: String? = nil) { + self.value = value + self.key = key + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case key = "Key" + } + } + + public struct GetRoomSkillParameterRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "SkillId", required: true, type: .string), + AWSShapeMember(label: "ParameterKey", required: true, type: .string) + ] + /// The ARN of the room from which to get the room skill parameter details. + public let roomArn: String? + /// The ARN of the skill from which to get the room skill parameter details. Required. + public let skillId: String + /// The room skill parameter key for which to get details. Required. + public let parameterKey: String + + public init(roomArn: String? = nil, skillId: String, parameterKey: String) { + self.roomArn = roomArn + self.skillId = skillId + self.parameterKey = parameterKey + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case skillId = "SkillId" + case parameterKey = "ParameterKey" + } + } + + public struct DeviceData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "MacAddress", required: false, type: .string), + AWSShapeMember(label: "RoomName", required: false, type: .string), + AWSShapeMember(label: "DeviceSerialNumber", required: false, type: .string), + AWSShapeMember(label: "DeviceArn", required: false, type: .string), + AWSShapeMember(label: "DeviceStatus", required: false, type: .enum), + AWSShapeMember(label: "SoftwareVersion", required: false, type: .string), + AWSShapeMember(label: "DeviceType", required: false, type: .string), + AWSShapeMember(label: "DeviceName", required: false, type: .string) + ] + /// The room ARN associated with a device. + public let roomArn: String? + /// The MAC address of a device. + public let macAddress: String? + /// The name of the room associated with a device. + public let roomName: String? + /// The serial number of a device. + public let deviceSerialNumber: String? + /// The ARN of a device. + public let deviceArn: String? + /// The status of a device. + public let deviceStatus: DeviceStatus? + /// The software version of a device. + public let softwareVersion: String? + /// The type of a device. + public let deviceType: String? + /// The name of a device. + public let deviceName: String? + + public init(roomArn: String? = nil, macAddress: String? = nil, roomName: String? = nil, deviceSerialNumber: String? = nil, deviceArn: String? = nil, deviceStatus: DeviceStatus? = nil, softwareVersion: String? = nil, deviceType: String? = nil, deviceName: String? = nil) { + self.roomArn = roomArn + self.macAddress = macAddress + self.roomName = roomName + self.deviceSerialNumber = deviceSerialNumber + self.deviceArn = deviceArn + self.deviceStatus = deviceStatus + self.softwareVersion = softwareVersion + self.deviceType = deviceType + self.deviceName = deviceName + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case macAddress = "MacAddress" + case roomName = "RoomName" + case deviceSerialNumber = "DeviceSerialNumber" + case deviceArn = "DeviceArn" + case deviceStatus = "DeviceStatus" + case softwareVersion = "SoftwareVersion" + case deviceType = "DeviceType" + case deviceName = "DeviceName" + } + } + + public struct SkillGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "SkillGroupArn", required: false, type: .string), + AWSShapeMember(label: "SkillGroupName", required: false, type: .string) + ] + /// The description of a skill group. + public let description: String? + /// The ARN of a skill group. + public let skillGroupArn: String? + /// The name of a skill group. + public let skillGroupName: String? + + public init(description: String? = nil, skillGroupArn: String? = nil, skillGroupName: String? = nil) { + self.description = description + self.skillGroupArn = skillGroupArn + self.skillGroupName = skillGroupName + } + + private enum CodingKeys: String, CodingKey { + case description = "Description" + case skillGroupArn = "SkillGroupArn" + case skillGroupName = "SkillGroupName" + } + } + + public struct SearchRoomsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Rooms", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "TotalCount", required: false, type: .integer) + ] + /// The rooms that meet the specified set of filter criteria, in sort order. + public let rooms: [RoomData]? + /// The token returned to indicate that there is more data available. + public let nextToken: String? + /// The total number of rooms returned. + public let totalCount: Int32? + + public init(rooms: [RoomData]? = nil, nextToken: String? = nil, totalCount: Int32? = nil) { + self.rooms = rooms + self.nextToken = nextToken + self.totalCount = totalCount + } + + private enum CodingKeys: String, CodingKey { + case rooms = "Rooms" + case nextToken = "NextToken" + case totalCount = "TotalCount" + } + } + + public struct SkillGroupData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "SkillGroupArn", required: false, type: .string), + AWSShapeMember(label: "SkillGroupName", required: false, type: .string) + ] + /// The description of a skill group. + public let description: String? + /// The skill group ARN of a skill group. + public let skillGroupArn: String? + /// The skill group name of a skill group. + public let skillGroupName: String? + + public init(description: String? = nil, skillGroupArn: String? = nil, skillGroupName: String? = nil) { + self.description = description + self.skillGroupArn = skillGroupArn + self.skillGroupName = skillGroupName + } + + private enum CodingKeys: String, CodingKey { + case description = "Description" + case skillGroupArn = "SkillGroupArn" + case skillGroupName = "SkillGroupName" + } + } + + public struct AssociateDeviceWithRoomRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "DeviceArn", required: false, type: .string) + ] + /// The ARN of the room with which to associate the device. Required. + public let roomArn: String? + /// The ARN of the device to associate to a room. Required. + public let deviceArn: String? + + public init(roomArn: String? = nil, deviceArn: String? = nil) { + self.roomArn = roomArn + self.deviceArn = deviceArn + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case deviceArn = "DeviceArn" + } + } + + public struct SkillSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SkillName", required: false, type: .string), + AWSShapeMember(label: "SkillId", required: false, type: .string), + AWSShapeMember(label: "SupportsLinking", required: false, type: .boolean) + ] + /// The name of the skill. + public let skillName: String? + /// The ARN of the skill summary. + public let skillId: String? + /// Linking support for a skill. + public let supportsLinking: Bool? + + public init(skillName: String? = nil, skillId: String? = nil, supportsLinking: Bool? = nil) { + self.skillName = skillName + self.skillId = skillId + self.supportsLinking = supportsLinking + } + + private enum CodingKeys: String, CodingKey { + case skillName = "SkillName" + case skillId = "SkillId" + case supportsLinking = "SupportsLinking" + } + } + + public struct CreateUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Email", required: false, type: .string), + AWSShapeMember(label: "UserId", required: true, type: .string), + AWSShapeMember(label: "FirstName", required: false, type: .string), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "LastName", required: false, type: .string) + ] + /// The email address for the user. + public let email: String? + /// The ARN for the user. + public let userId: String + /// The first name for the user. + public let firstName: String? + /// A unique, user-specified identifier for this request that ensures idempotency. + public let clientRequestToken: String? + /// The tags for the user. + public let tags: [Tag]? + /// The last name for the user. + public let lastName: String? + + public init(email: String? = nil, userId: String, firstName: String? = nil, clientRequestToken: String? = nil, tags: [Tag]? = nil, lastName: String? = nil) { + self.email = email + self.userId = userId + self.firstName = firstName + self.clientRequestToken = clientRequestToken + self.tags = tags + self.lastName = lastName + } + + private enum CodingKeys: String, CodingKey { + case email = "Email" + case userId = "UserId" + case firstName = "FirstName" + case clientRequestToken = "ClientRequestToken" + case tags = "Tags" + case lastName = "LastName" + } + } + + public struct SearchSkillGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "SortCriteria", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The filters to use to list a specified set of skill groups. The supported filter key is SkillGroupName. + public let filters: [Filter]? + /// The sort order to use in listing the specified set of skill groups. The supported sort key is SkillGroupName. + public let sortCriteria: [Sort]? + /// An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. Required. + public let nextToken: String? + /// The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + public let maxResults: Int32? + + public init(filters: [Filter]? = nil, sortCriteria: [Sort]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.filters = filters + self.sortCriteria = sortCriteria + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filters" + case sortCriteria = "SortCriteria" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct DeleteSkillGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SkillGroupArn", required: false, type: .string) + ] + /// The ARN of the skill group to delete. Required. + public let skillGroupArn: String? + + public init(skillGroupArn: String? = nil) { + self.skillGroupArn = skillGroupArn + } + + private enum CodingKeys: String, CodingKey { + case skillGroupArn = "SkillGroupArn" + } + } + + public struct PutRoomSkillParameterRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "SkillId", required: true, type: .string), + AWSShapeMember(label: "RoomSkillParameter", required: true, type: .structure) + ] + /// The ARN of the room associated with the room skill parameter. Required. + public let roomArn: String? + /// The ARN of the skill associated with the room skill parameter. Required. + public let skillId: String + /// The updated room skill parameter. Required. + public let roomSkillParameter: RoomSkillParameter + + public init(roomArn: String? = nil, skillId: String, roomSkillParameter: RoomSkillParameter) { + self.roomArn = roomArn + self.skillId = skillId + self.roomSkillParameter = roomSkillParameter + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case skillId = "SkillId" + case roomSkillParameter = "RoomSkillParameter" + } + } + + public struct PutRoomSkillParameterResponse: AWSShape { + + } + + public struct Sort: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: true, type: .enum), + AWSShapeMember(label: "Key", required: true, type: .string) + ] + /// The sort value of a sort object. + public let value: SortValue + /// The sort key of a sort object. + public let key: String + + public init(value: SortValue, key: String) { + self.value = value + self.key = key + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case key = "Key" + } + } + + public struct UpdateSkillGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "SkillGroupArn", required: false, type: .string), + AWSShapeMember(label: "SkillGroupName", required: false, type: .string) + ] + /// The updated description for the skill group. + public let description: String? + /// The ARN of the skill group to update. + public let skillGroupArn: String? + /// The updated name for the skill group. + public let skillGroupName: String? + + public init(description: String? = nil, skillGroupArn: String? = nil, skillGroupName: String? = nil) { + self.description = description + self.skillGroupArn = skillGroupArn + self.skillGroupName = skillGroupName + } + + private enum CodingKeys: String, CodingKey { + case description = "Description" + case skillGroupArn = "SkillGroupArn" + case skillGroupName = "SkillGroupName" + } + } + + public struct SearchProfilesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Profiles", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "TotalCount", required: false, type: .integer) + ] + /// The profiles that meet the specified set of filter criteria, in sort order. + public let profiles: [ProfileData]? + /// The token returned to indicate that there is more data available. + public let nextToken: String? + /// The total number of room profiles returned. + public let totalCount: Int32? + + public init(profiles: [ProfileData]? = nil, nextToken: String? = nil, totalCount: Int32? = nil) { + self.profiles = profiles + self.nextToken = nextToken + self.totalCount = totalCount + } + + private enum CodingKeys: String, CodingKey { + case profiles = "Profiles" + case nextToken = "NextToken" + case totalCount = "TotalCount" + } + } + + public struct StartDeviceSyncResponse: AWSShape { + + } + + public struct SearchDevicesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "SortCriteria", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The filters to use to list a specified set of devices. Supported filter keys are DeviceName, DeviceStatus, RoomName, DeviceType, DeviceSerialNumber, and UnassociatedOnly. + public let filters: [Filter]? + /// The sort order to use in listing the specified set of devices. Supported sort keys are DeviceName, DeviceStatus, RoomName, DeviceType, and DeviceSerialNumber. + public let sortCriteria: [Sort]? + /// An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + public let nextToken: String? + /// The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + public let maxResults: Int32? + + public init(filters: [Filter]? = nil, sortCriteria: [Sort]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.filters = filters + self.sortCriteria = sortCriteria + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filters" + case sortCriteria = "SortCriteria" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct CreateProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SetupModeDisabled", required: false, type: .boolean), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "Address", required: true, type: .string), + AWSShapeMember(label: "TemperatureUnit", required: true, type: .enum), + AWSShapeMember(label: "ProfileName", required: true, type: .string), + AWSShapeMember(label: "Timezone", required: true, type: .string), + AWSShapeMember(label: "PSTNEnabled", required: false, type: .boolean), + AWSShapeMember(label: "WakeWord", required: true, type: .enum), + AWSShapeMember(label: "MaxVolumeLimit", required: false, type: .integer), + AWSShapeMember(label: "DistanceUnit", required: true, type: .enum) + ] + /// Whether room profile setup is enabled. + public let setupModeDisabled: Bool? + /// The user-specified token that is used during the creation of a profile. + public let clientRequestToken: String? + /// The valid address for the room. + public let address: String + /// The temperature unit to be used by devices in the profile. + public let temperatureUnit: TemperatureUnit + /// The name of a room profile. + public let profileName: String + /// The time zone used by a room profile. + public let timezone: String + /// Whether PSTN calling is enabled. + public let pSTNEnabled: Bool? + /// A wake word for Alexa, Echo, Amazon, or a computer. + public let wakeWord: WakeWord + /// The maximum volume limit for a room profile. + public let maxVolumeLimit: Int32? + /// The distance unit to be used by devices in the profile. + public let distanceUnit: DistanceUnit + + public init(setupModeDisabled: Bool? = nil, clientRequestToken: String? = nil, address: String, temperatureUnit: TemperatureUnit, profileName: String, timezone: String, pSTNEnabled: Bool? = nil, wakeWord: WakeWord, maxVolumeLimit: Int32? = nil, distanceUnit: DistanceUnit) { + self.setupModeDisabled = setupModeDisabled + self.clientRequestToken = clientRequestToken + self.address = address + self.temperatureUnit = temperatureUnit + self.profileName = profileName + self.timezone = timezone + self.pSTNEnabled = pSTNEnabled + self.wakeWord = wakeWord + self.maxVolumeLimit = maxVolumeLimit + self.distanceUnit = distanceUnit + } + + private enum CodingKeys: String, CodingKey { + case setupModeDisabled = "SetupModeDisabled" + case clientRequestToken = "ClientRequestToken" + case address = "Address" + case temperatureUnit = "TemperatureUnit" + case profileName = "ProfileName" + case timezone = "Timezone" + case pSTNEnabled = "PSTNEnabled" + case wakeWord = "WakeWord" + case maxVolumeLimit = "MaxVolumeLimit" + case distanceUnit = "DistanceUnit" + } + } + + public struct StartDeviceSyncRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "DeviceArn", required: false, type: .string), + AWSShapeMember(label: "Features", required: true, type: .list) + ] + /// The ARN of the room with which the device to sync is associated. Required. + public let roomArn: String? + /// The ARN of the device to sync. Required. + public let deviceArn: String? + /// Request structure to start the device sync. Required. + public let features: [Feature] + + public init(roomArn: String? = nil, deviceArn: String? = nil, features: [Feature]) { + self.roomArn = roomArn + self.deviceArn = deviceArn + self.features = features + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case deviceArn = "DeviceArn" + case features = "Features" + } + } + + public struct DeleteUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EnrollmentId", required: true, type: .string), + AWSShapeMember(label: "UserArn", required: false, type: .string) + ] + /// The ARN of the user's enrollment in the organization. Required. + public let enrollmentId: String + /// The ARN of the user to delete in the organization. Required. + public let userArn: String? + + public init(enrollmentId: String, userArn: String? = nil) { + self.enrollmentId = enrollmentId + self.userArn = userArn + } + + private enum CodingKeys: String, CodingKey { + case enrollmentId = "EnrollmentId" + case userArn = "UserArn" + } + } + + public struct AssociateSkillGroupWithRoomResponse: AWSShape { + + } + + public struct RevokeInvitationResponse: AWSShape { + + } + + public struct DeleteProfileResponse: AWSShape { + + } + + public struct GetRoomResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Room", required: false, type: .structure) + ] + /// The details of the room requested. + public let room: Room? + + public init(room: Room? = nil) { + self.room = room + } + + private enum CodingKeys: String, CodingKey { + case room = "Room" + } + } + + public struct UpdateSkillGroupResponse: AWSShape { + + } + + public struct SearchUsersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "SortCriteria", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The filters to use for listing a specific set of users. Required. Supported filter keys are UserId, FirstName, LastName, Email, and EnrollmentStatus. + public let filters: [Filter]? + /// The sort order to use in listing the filtered set of users. Required. Supported sort keys are UserId, FirstName, LastName, Email, and EnrollmentStatus. + public let sortCriteria: [Sort]? + /// An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. Required. + public let nextToken: String? + /// The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. Required. + public let maxResults: Int32? + + public init(filters: [Filter]? = nil, sortCriteria: [Sort]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.filters = filters + self.sortCriteria = sortCriteria + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filters" + case sortCriteria = "SortCriteria" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct UpdateDeviceResponse: AWSShape { + + } + + public struct DisassociateSkillGroupFromRoomResponse: AWSShape { + + } + + public struct RevokeInvitationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EnrollmentId", required: false, type: .string), + AWSShapeMember(label: "UserArn", required: false, type: .string) + ] + /// The ARN of the enrollment invitation to revoke. Required. + public let enrollmentId: String? + /// The ARN of the user for whom to revoke an enrollment invitation. Required. + public let userArn: String? + + public init(enrollmentId: String? = nil, userArn: String? = nil) { + self.enrollmentId = enrollmentId + self.userArn = userArn + } + + private enum CodingKeys: String, CodingKey { + case enrollmentId = "EnrollmentId" + case userArn = "UserArn" + } + } + + public struct CreateSkillGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SkillGroupArn", required: false, type: .string) + ] + /// The ARN of the newly created skill group in the response. + public let skillGroupArn: String? + + public init(skillGroupArn: String? = nil) { + self.skillGroupArn = skillGroupArn + } + + private enum CodingKeys: String, CodingKey { + case skillGroupArn = "SkillGroupArn" + } + } + + public struct DisassociateDeviceFromRoomResponse: AWSShape { + + } + + public struct GetProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProfileArn", required: false, type: .string) + ] + /// The ARN of the room profile for which to request details. Required. + public let profileArn: String? + + public init(profileArn: String? = nil) { + self.profileArn = profileArn + } + + private enum CodingKeys: String, CodingKey { + case profileArn = "ProfileArn" + } + } + + public struct UpdateRoomRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "ProviderCalendarId", required: false, type: .string), + AWSShapeMember(label: "RoomName", required: false, type: .string), + AWSShapeMember(label: "ProfileArn", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The ARN of the room to update. + public let roomArn: String? + /// The updated provider calendar ARN for the room. + public let providerCalendarId: String? + /// The updated name for the room. + public let roomName: String? + /// The updated profile ARN for the room. + public let profileArn: String? + /// The updated description for the room. + public let description: String? + + public init(roomArn: String? = nil, providerCalendarId: String? = nil, roomName: String? = nil, profileArn: String? = nil, description: String? = nil) { + self.roomArn = roomArn + self.providerCalendarId = providerCalendarId + self.roomName = roomName + self.profileArn = profileArn + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case providerCalendarId = "ProviderCalendarId" + case roomName = "RoomName" + case profileArn = "ProfileArn" + case description = "Description" + } + } + + public struct UpdateRoomResponse: AWSShape { + + } + + public struct DeleteUserResponse: AWSShape { + + } + + public struct ListSkillsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "SkillGroupArn", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. Required. + public let nextToken: String? + /// The ARN of the skill group for which to list enabled skills. Required. + public let skillGroupArn: String? + /// The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. Required. + public let maxResults: Int32? + + public init(nextToken: String? = nil, skillGroupArn: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.skillGroupArn = skillGroupArn + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case skillGroupArn = "SkillGroupArn" + case maxResults = "MaxResults" + } + } + + public enum SortValue: String, CustomStringConvertible, Codable { + case asc = "ASC" + case desc = "DESC" + public var description: String { return self.rawValue } + } + + public struct SendInvitationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserArn", required: false, type: .string) + ] + /// The ARN of the user to whom to send an invitation. Required. + public let userArn: String? + + public init(userArn: String? = nil) { + self.userArn = userArn + } + + private enum CodingKeys: String, CodingKey { + case userArn = "UserArn" + } + } + + public struct SearchUsersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Users", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "TotalCount", required: false, type: .integer) + ] + /// The users that meet the specified set of filter criteria, in sort order. + public let users: [UserData]? + /// The token returned to indicate that there is more data available. + public let nextToken: String? + /// The total number of users returned. + public let totalCount: Int32? + + public init(users: [UserData]? = nil, nextToken: String? = nil, totalCount: Int32? = nil) { + self.users = users + self.nextToken = nextToken + self.totalCount = totalCount + } + + private enum CodingKeys: String, CodingKey { + case users = "Users" + case nextToken = "NextToken" + case totalCount = "TotalCount" + } + } + + public struct TagResourceResponse: AWSShape { + + } + + public struct UserData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EnrollmentId", required: false, type: .string), + AWSShapeMember(label: "Email", required: false, type: .string), + AWSShapeMember(label: "FirstName", required: false, type: .string), + AWSShapeMember(label: "UserArn", required: false, type: .string), + AWSShapeMember(label: "LastName", required: false, type: .string), + AWSShapeMember(label: "EnrollmentStatus", required: false, type: .enum) + ] + /// The enrollment ARN of a user. + public let enrollmentId: String? + /// The email of a user. + public let email: String? + /// The first name of a user. + public let firstName: String? + /// The ARN of a user. + public let userArn: String? + /// The last name of a user. + public let lastName: String? + /// The enrollment status of a user. + public let enrollmentStatus: EnrollmentStatus? + + public init(enrollmentId: String? = nil, email: String? = nil, firstName: String? = nil, userArn: String? = nil, lastName: String? = nil, enrollmentStatus: EnrollmentStatus? = nil) { + self.enrollmentId = enrollmentId + self.email = email + self.firstName = firstName + self.userArn = userArn + self.lastName = lastName + self.enrollmentStatus = enrollmentStatus + } + + private enum CodingKeys: String, CodingKey { + case enrollmentId = "EnrollmentId" + case email = "Email" + case firstName = "FirstName" + case userArn = "UserArn" + case lastName = "LastName" + case enrollmentStatus = "EnrollmentStatus" + } + } + + public struct RoomSkillParameter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ParameterKey", required: true, type: .string), + AWSShapeMember(label: "ParameterValue", required: true, type: .string) + ] + /// The parameter key of a room skill parameter. ParameterKey is an enumerated type that only takes “DEFAULT” or “SCOPE” as valid values. + public let parameterKey: String + /// The parameter value of a room skill parameter. + public let parameterValue: String + + public init(parameterKey: String, parameterValue: String) { + self.parameterKey = parameterKey + self.parameterValue = parameterValue + } + + private enum CodingKeys: String, CodingKey { + case parameterKey = "ParameterKey" + case parameterValue = "ParameterValue" + } + } + + public struct CreateSkillGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "SkillGroupName", required: true, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// A unique, user-specified identifier for this request that ensures idempotency. + public let clientRequestToken: String? + /// The name for the skill group. + public let skillGroupName: String + /// The description for the skill group. + public let description: String? + + public init(clientRequestToken: String? = nil, skillGroupName: String, description: String? = nil) { + self.clientRequestToken = clientRequestToken + self.skillGroupName = skillGroupName + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case clientRequestToken = "ClientRequestToken" + case skillGroupName = "SkillGroupName" + case description = "Description" + } + } + + public struct UpdateProfileResponse: AWSShape { + + } + + public struct SearchSkillGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "TotalCount", required: false, type: .integer), + AWSShapeMember(label: "SkillGroups", required: false, type: .list) + ] + /// The token returned to indicate that there is more data available. + public let nextToken: String? + /// The total number of skill groups returned. + public let totalCount: Int32? + /// The skill groups that meet the filter criteria, in sort order. + public let skillGroups: [SkillGroupData]? + + public init(nextToken: String? = nil, totalCount: Int32? = nil, skillGroups: [SkillGroupData]? = nil) { + self.nextToken = nextToken + self.totalCount = totalCount + self.skillGroups = skillGroups + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case totalCount = "TotalCount" + case skillGroups = "SkillGroups" + } + } + + public struct CreateUserResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserArn", required: false, type: .string) + ] + /// The ARN of the newly created user in the response. + public let userArn: String? + + public init(userArn: String? = nil) { + self.userArn = userArn + } + + private enum CodingKeys: String, CodingKey { + case userArn = "UserArn" + } + } + + public struct AssociateSkillGroupWithRoomRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "SkillGroupArn", required: false, type: .string) + ] + /// The ARN of the room with which to associate the skill group. Required. + public let roomArn: String? + /// The ARN of the skill group to associate with a room. Required. + public let skillGroupArn: String? + + public init(roomArn: String? = nil, skillGroupArn: String? = nil) { + self.roomArn = roomArn + self.skillGroupArn = skillGroupArn + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case skillGroupArn = "SkillGroupArn" + } + } + + public struct DeleteRoomResponse: AWSShape { + + } + + public struct DeleteSkillGroupResponse: AWSShape { + + } + + public struct GetRoomSkillParameterResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomSkillParameter", required: false, type: .structure) + ] + /// The details of the room skill parameter requested. Required. + public let roomSkillParameter: RoomSkillParameter? + + public init(roomSkillParameter: RoomSkillParameter? = nil) { + self.roomSkillParameter = roomSkillParameter + } + + private enum CodingKeys: String, CodingKey { + case roomSkillParameter = "RoomSkillParameter" + } + } + + public struct ResolveRoomResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "RoomName", required: false, type: .string), + AWSShapeMember(label: "RoomSkillParameters", required: false, type: .list) + ] + /// The ARN of the room from which the skill request was invoked. + public let roomArn: String? + /// The name of the room from which the skill request was invoked. + public let roomName: String? + /// Response to get the room profile request. Required. + public let roomSkillParameters: [RoomSkillParameter]? + + public init(roomArn: String? = nil, roomName: String? = nil, roomSkillParameters: [RoomSkillParameter]? = nil) { + self.roomArn = roomArn + self.roomName = roomName + self.roomSkillParameters = roomSkillParameters + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case roomName = "RoomName" + case roomSkillParameters = "RoomSkillParameters" + } + } + + public struct GetRoomRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string) + ] + /// The ARN of the room for which to request details. Required. + public let roomArn: String? + + public init(roomArn: String? = nil) { + self.roomArn = roomArn + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + } + } + + public struct ListSkillsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SkillSummaries", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The list of enabled skills requested. Required. + public let skillSummaries: [SkillSummary]? + /// The token returned to indicate that there is more data available. + public let nextToken: String? + + public init(skillSummaries: [SkillSummary]? = nil, nextToken: String? = nil) { + self.skillSummaries = skillSummaries + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case skillSummaries = "SkillSummaries" + case nextToken = "NextToken" + } + } + + public struct GetDeviceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Device", required: false, type: .structure) + ] + /// The details of the device requested. Required. + public let device: Device? + + public init(device: Device? = nil) { + self.device = device + } + + private enum CodingKeys: String, CodingKey { + case device = "Device" + } + } + + public enum WakeWord: String, CustomStringConvertible, Codable { + case alexa = "ALEXA" + case amazon = "AMAZON" + case echo = "ECHO" + case computer = "COMPUTER" + public var description: String { return self.rawValue } + } + + public struct DisassociateSkillGroupFromRoomRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "SkillGroupArn", required: false, type: .string) + ] + /// The ARN of the room from which the skill group is to be disassociated. Required. + public let roomArn: String? + /// The ARN of the skill group to disassociate from a room. Required. + public let skillGroupArn: String? + + public init(roomArn: String? = nil, skillGroupArn: String? = nil) { + self.roomArn = roomArn + self.skillGroupArn = skillGroupArn + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case skillGroupArn = "SkillGroupArn" + } + } + + public struct SearchRoomsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "SortCriteria", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The filters to use to list a specified set of rooms. The supported filter keys are RoomName and ProfileName. + public let filters: [Filter]? + /// The sort order to use in listing the specified set of rooms. The supported sort keys are RoomName and ProfileName. + public let sortCriteria: [Sort]? + /// An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + public let nextToken: String? + /// The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + public let maxResults: Int32? + + public init(filters: [Filter]? = nil, sortCriteria: [Sort]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.filters = filters + self.sortCriteria = sortCriteria + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filters" + case sortCriteria = "SortCriteria" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct UntagResourceResponse: AWSShape { + + } + + public struct DisassociateDeviceFromRoomRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceArn", required: false, type: .string) + ] + /// The ARN of the device to disassociate from a room. Required. + public let deviceArn: String? + + public init(deviceArn: String? = nil) { + self.deviceArn = deviceArn + } + + private enum CodingKeys: String, CodingKey { + case deviceArn = "DeviceArn" + } + } + + public struct AssociateDeviceWithRoomResponse: AWSShape { + + } + + public struct ResolveRoomRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SkillId", required: true, type: .string), + AWSShapeMember(label: "UserId", required: true, type: .string) + ] + /// The ARN of the skill that was requested. Required. + public let skillId: String + /// The ARN of the user. Required. + public let userId: String + + public init(skillId: String, userId: String) { + self.skillId = skillId + self.userId = userId + } + + private enum CodingKeys: String, CodingKey { + case skillId = "SkillId" + case userId = "UserId" + } + } + + public enum Feature: String, CustomStringConvertible, Codable { + case bluetooth = "BLUETOOTH" + case volume = "VOLUME" + case notifications = "NOTIFICATIONS" + case lists = "LISTS" + case skills = "SKILLS" + case all = "ALL" + public var description: String { return self.rawValue } + } + + public struct Device: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "MacAddress", required: false, type: .string), + AWSShapeMember(label: "DeviceSerialNumber", required: false, type: .string), + AWSShapeMember(label: "DeviceArn", required: false, type: .string), + AWSShapeMember(label: "DeviceStatus", required: false, type: .enum), + AWSShapeMember(label: "SoftwareVersion", required: false, type: .string), + AWSShapeMember(label: "DeviceType", required: false, type: .string), + AWSShapeMember(label: "DeviceName", required: false, type: .string) + ] + /// The room ARN of a device. + public let roomArn: String? + /// The MAC address of a device. + public let macAddress: String? + /// The serial number of a device. + public let deviceSerialNumber: String? + /// The ARN of a device. + public let deviceArn: String? + /// The status of a device. + public let deviceStatus: DeviceStatus? + /// The software version of a device. + public let softwareVersion: String? + /// The type of a device. + public let deviceType: String? + /// The name of a device. + public let deviceName: String? + + public init(roomArn: String? = nil, macAddress: String? = nil, deviceSerialNumber: String? = nil, deviceArn: String? = nil, deviceStatus: DeviceStatus? = nil, softwareVersion: String? = nil, deviceType: String? = nil, deviceName: String? = nil) { + self.roomArn = roomArn + self.macAddress = macAddress + self.deviceSerialNumber = deviceSerialNumber + self.deviceArn = deviceArn + self.deviceStatus = deviceStatus + self.softwareVersion = softwareVersion + self.deviceType = deviceType + self.deviceName = deviceName + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case macAddress = "MacAddress" + case deviceSerialNumber = "DeviceSerialNumber" + case deviceArn = "DeviceArn" + case deviceStatus = "DeviceStatus" + case softwareVersion = "SoftwareVersion" + case deviceType = "DeviceType" + case deviceName = "DeviceName" + } + } + + public struct DeleteRoomSkillParameterRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "SkillId", required: true, type: .string), + AWSShapeMember(label: "ParameterKey", required: true, type: .string) + ] + /// The ARN of the room from which to remove the room skill parameter details. + public let roomArn: String? + /// The ID of the skill from which to remove the room skill parameter details. + public let skillId: String + /// The room skill parameter key for which to remove details. + public let parameterKey: String + + public init(roomArn: String? = nil, skillId: String, parameterKey: String) { + self.roomArn = roomArn + self.skillId = skillId + self.parameterKey = parameterKey + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case skillId = "SkillId" + case parameterKey = "ParameterKey" + } + } + + public struct SendInvitationResponse: AWSShape { + + } + + public struct Room: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string), + AWSShapeMember(label: "ProviderCalendarId", required: false, type: .string), + AWSShapeMember(label: "RoomName", required: false, type: .string), + AWSShapeMember(label: "ProfileArn", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The ARN of a room. + public let roomArn: String? + /// The provider calendar ARN of a room. + public let providerCalendarId: String? + /// The name of a room. + public let roomName: String? + /// The profile ARN of a room. + public let profileArn: String? + /// The description of a room. + public let description: String? + + public init(roomArn: String? = nil, providerCalendarId: String? = nil, roomName: String? = nil, profileArn: String? = nil, description: String? = nil) { + self.roomArn = roomArn + self.providerCalendarId = providerCalendarId + self.roomName = roomName + self.profileArn = profileArn + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + case providerCalendarId = "ProviderCalendarId" + case roomName = "RoomName" + case profileArn = "ProfileArn" + case description = "Description" + } + } + + public struct UpdateProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SetupModeDisabled", required: false, type: .boolean), + AWSShapeMember(label: "PSTNEnabled", required: false, type: .boolean), + AWSShapeMember(label: "Address", required: false, type: .string), + AWSShapeMember(label: "TemperatureUnit", required: false, type: .enum), + AWSShapeMember(label: "ProfileName", required: false, type: .string), + AWSShapeMember(label: "Timezone", required: false, type: .string), + AWSShapeMember(label: "ProfileArn", required: false, type: .string), + AWSShapeMember(label: "WakeWord", required: false, type: .enum), + AWSShapeMember(label: "MaxVolumeLimit", required: false, type: .integer), + AWSShapeMember(label: "DistanceUnit", required: false, type: .enum) + ] + /// Whether the setup mode of the profile is enabled. + public let setupModeDisabled: Bool? + /// Whether the PSTN setting of the room profile is enabled. + public let pSTNEnabled: Bool? + /// The updated address for the room profile. + public let address: String? + /// The updated temperature unit for the room profile. + public let temperatureUnit: TemperatureUnit? + /// The updated name for the room profile. + public let profileName: String? + /// The updated timezone for the room profile. + public let timezone: String? + /// The ARN of the room profile to update. Required. + public let profileArn: String? + /// The updated wake word for the room profile. + public let wakeWord: WakeWord? + /// The updated maximum volume limit for the room profile. + public let maxVolumeLimit: Int32? + /// The updated distance unit for the room profile. + public let distanceUnit: DistanceUnit? + + public init(setupModeDisabled: Bool? = nil, pSTNEnabled: Bool? = nil, address: String? = nil, temperatureUnit: TemperatureUnit? = nil, profileName: String? = nil, timezone: String? = nil, profileArn: String? = nil, wakeWord: WakeWord? = nil, maxVolumeLimit: Int32? = nil, distanceUnit: DistanceUnit? = nil) { + self.setupModeDisabled = setupModeDisabled + self.pSTNEnabled = pSTNEnabled + self.address = address + self.temperatureUnit = temperatureUnit + self.profileName = profileName + self.timezone = timezone + self.profileArn = profileArn + self.wakeWord = wakeWord + self.maxVolumeLimit = maxVolumeLimit + self.distanceUnit = distanceUnit + } + + private enum CodingKeys: String, CodingKey { + case setupModeDisabled = "SetupModeDisabled" + case pSTNEnabled = "PSTNEnabled" + case address = "Address" + case temperatureUnit = "TemperatureUnit" + case profileName = "ProfileName" + case timezone = "Timezone" + case profileArn = "ProfileArn" + case wakeWord = "WakeWord" + case maxVolumeLimit = "MaxVolumeLimit" + case distanceUnit = "DistanceUnit" + } + } + + public struct ListTagsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Arn", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + public let nextToken: String? + /// The ARN of the specific resource for which to list tags. Required. + public let arn: String + /// The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + public let maxResults: Int32? + + public init(nextToken: String? = nil, arn: String, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.arn = arn + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case arn = "Arn" + case maxResults = "MaxResults" + } + } + + public struct GetProfileResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Profile", required: false, type: .structure) + ] + /// The details of the room profile requested. Required. + public let profile: Profile? + + public init(profile: Profile? = nil) { + self.profile = profile + } + + private enum CodingKeys: String, CodingKey { + case profile = "Profile" + } + } + + public struct CreateRoomResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoomArn", required: false, type: .string) + ] + /// The ARN of the newly created room in the response. + public let roomArn: String? + + public init(roomArn: String? = nil) { + self.roomArn = roomArn + } + + private enum CodingKeys: String, CodingKey { + case roomArn = "RoomArn" + } + } + + public struct Profile: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SetupModeDisabled", required: false, type: .boolean), + AWSShapeMember(label: "PSTNEnabled", required: false, type: .boolean), + AWSShapeMember(label: "Address", required: false, type: .string), + AWSShapeMember(label: "TemperatureUnit", required: false, type: .enum), + AWSShapeMember(label: "ProfileName", required: false, type: .string), + AWSShapeMember(label: "Timezone", required: false, type: .string), + AWSShapeMember(label: "ProfileArn", required: false, type: .string), + AWSShapeMember(label: "WakeWord", required: false, type: .enum), + AWSShapeMember(label: "MaxVolumeLimit", required: false, type: .integer), + AWSShapeMember(label: "DistanceUnit", required: false, type: .enum) + ] + /// The setup mode of a room profile. + public let setupModeDisabled: Bool? + /// The PSTN setting of a room profile. + public let pSTNEnabled: Bool? + /// The address of a room profile. + public let address: String? + /// The temperature unit of a room profile. + public let temperatureUnit: TemperatureUnit? + /// The name of a room profile. + public let profileName: String? + /// The time zone of a room profile. + public let timezone: String? + /// The ARN of a room profile. + public let profileArn: String? + /// The wake word of a room profile. + public let wakeWord: WakeWord? + /// The max volume limit of a room profile. + public let maxVolumeLimit: Int32? + /// The distance unit of a room profile. + public let distanceUnit: DistanceUnit? + + public init(setupModeDisabled: Bool? = nil, pSTNEnabled: Bool? = nil, address: String? = nil, temperatureUnit: TemperatureUnit? = nil, profileName: String? = nil, timezone: String? = nil, profileArn: String? = nil, wakeWord: WakeWord? = nil, maxVolumeLimit: Int32? = nil, distanceUnit: DistanceUnit? = nil) { + self.setupModeDisabled = setupModeDisabled + self.pSTNEnabled = pSTNEnabled + self.address = address + self.temperatureUnit = temperatureUnit + self.profileName = profileName + self.timezone = timezone + self.profileArn = profileArn + self.wakeWord = wakeWord + self.maxVolumeLimit = maxVolumeLimit + self.distanceUnit = distanceUnit + } + + private enum CodingKeys: String, CodingKey { + case setupModeDisabled = "SetupModeDisabled" + case pSTNEnabled = "PSTNEnabled" + case address = "Address" + case temperatureUnit = "TemperatureUnit" + case profileName = "ProfileName" + case timezone = "Timezone" + case profileArn = "ProfileArn" + case wakeWord = "WakeWord" + case maxVolumeLimit = "MaxVolumeLimit" + case distanceUnit = "DistanceUnit" + } + } + + public struct SearchProfilesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "SortCriteria", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The filters to use to list a specified set of room profiles. Supported filter keys are ProfileName and Address. Required. + public let filters: [Filter]? + /// The sort order to use in listing the specified set of room profiles. Supported sort keys are ProfileName and Address. + public let sortCriteria: [Sort]? + /// An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + public let nextToken: String? + /// The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + public let maxResults: Int32? + + public init(filters: [Filter]? = nil, sortCriteria: [Sort]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.filters = filters + self.sortCriteria = sortCriteria + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filters" + case sortCriteria = "SortCriteria" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct UntagResourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: true, type: .string), + AWSShapeMember(label: "TagKeys", required: true, type: .list) + ] + /// The ARN of the resource from which to remove metadata tags. Required. + public let arn: String + /// The tags to be removed from the specified resource. Do not provide system tags. Required. + public let tagKeys: [String] + + public init(arn: String, tagKeys: [String]) { + self.arn = arn + self.tagKeys = tagKeys + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case tagKeys = "TagKeys" + } + } + + public struct Filter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Key", required: true, type: .string), + AWSShapeMember(label: "Values", required: true, type: .list) + ] + /// The key of a filter. + public let key: String + /// The values of a filter. + public let values: [String] + + public init(key: String, values: [String]) { + self.key = key + self.values = values + } + + private enum CodingKeys: String, CodingKey { + case key = "Key" + case values = "Values" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/apigateway/Apigateway_API.swift b/Sources/AWSSDKSwift/Services/apigateway/Apigateway_API.swift index 9d4412da9fe..48b4c568b1c 100644 --- a/Sources/AWSSDKSwift/Services/apigateway/Apigateway_API.swift +++ b/Sources/AWSSDKSwift/Services/apigateway/Apigateway_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon API Gateway Amazon API Gateway helps developers deliver robust, secure, and scalable mobile and web application back ends. Amazon API Gateway allows developers to securely connect mobile and web applications to APIs that run on AWS Lambda, Amazon EC2, or other publicly addressable web services that are hosted outside of AWS. +Amazon API Gateway Amazon API Gateway helps developers deliver robust, secure, and scalable mobile and web application back ends. API Gateway allows developers to securely connect mobile and web applications to APIs that run on AWS Lambda, Amazon EC2, or other publicly addressable web services that are hosted outside of AWS. */ public struct Apigateway { @@ -24,7 +24,7 @@ public struct Apigateway { ) } - /// Represents a put integration. + /// Sets up a method's integration. public func putIntegration(_ input: PutIntegrationRequest) throws -> Integration { return try client.send(operation: "PutIntegration", path: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration", httpMethod: "PUT", input: input) } @@ -58,6 +58,11 @@ public struct Apigateway { return try client.send(operation: "GetDocumentationVersion", path: "/restapis/{restapi_id}/documentation/versions/{doc_version}", httpMethod: "GET", input: input) } + /// Deletes an existing VpcLink of a specified identifier. + public func deleteVpcLink(_ input: DeleteVpcLinkRequest) throws { + _ = try client.send(operation: "DeleteVpcLink", path: "/vpclinks/{vpclink_id}", httpMethod: "DELETE", input: input) + } + /// Changes information about a Resource resource. public func updateResource(_ input: UpdateResourceRequest) throws -> Resource { return try client.send(operation: "UpdateResource", path: "/restapis/{restapi_id}/resources/{resource_id}", httpMethod: "PATCH", input: input) @@ -188,6 +193,11 @@ public struct Apigateway { return try client.send(operation: "UpdateDomainName", path: "/domainnames/{domain_name}", httpMethod: "PATCH", input: input) } + /// Creates a customization of a GatewayResponse of a specified response type and status code on the given RestApi. + public func putGatewayResponse(_ input: PutGatewayResponseRequest) throws -> GatewayResponse { + return try client.send(operation: "PutGatewayResponse", path: "/restapis/{restapi_id}/gatewayresponses/{response_type}", httpMethod: "PUT", input: input) + } + /// Lists the RestApi resource in the collection. public func getRestApi(_ input: GetRestApiRequest) throws -> RestApi { return try client.send(operation: "GetRestApi", path: "/restapis/{restapi_id}", httpMethod: "GET", input: input) @@ -207,6 +217,11 @@ public struct Apigateway { return try client.send(operation: "GetUsagePlans", path: "/usageplans", httpMethod: "GET", input: input) } + /// Gets the VpcLinks collection under the caller's account in a selected region. + public func getVpcLinks(_ input: GetVpcLinksRequest) throws -> VpcLinks { + return try client.send(operation: "GetVpcLinks", path: "/vpclinks", httpMethod: "GET", input: input) + } + /// Gets all the usage plan keys representing the API keys added to a specified usage plan. public func getUsagePlanKeys(_ input: GetUsagePlanKeysRequest) throws -> UsagePlanKeys { return try client.send(operation: "GetUsagePlanKeys", path: "/usageplans/{usageplanId}/keys", httpMethod: "GET", input: input) @@ -240,11 +255,21 @@ public struct Apigateway { return try client.send(operation: "CreateBasePathMapping", path: "/domainnames/{domain_name}/basepathmappings", httpMethod: "POST", input: input) } + /// Gets a specified VPC link under the caller's account in a region. + public func getVpcLink(_ input: GetVpcLinkRequest) throws -> VpcLink { + return try client.send(operation: "GetVpcLink", path: "/vpclinks/{vpclink_id}", httpMethod: "GET", input: input) + } + /// Represents a delete integration response. public func deleteIntegrationResponse(_ input: DeleteIntegrationResponseRequest) throws { _ = try client.send(operation: "DeleteIntegrationResponse", path: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}", httpMethod: "DELETE", input: input) } + /// Gets a GatewayResponse of a specified response type on the given RestApi. + public func getGatewayResponse(_ input: GetGatewayResponseRequest) throws -> GatewayResponse { + return try client.send(operation: "GetGatewayResponse", path: "/restapis/{restapi_id}/gatewayresponses/{response_type}", httpMethod: "GET", input: input) + } + /// Generates a client SDK for a RestApi and Stage. public func getSdk(_ input: GetSdkRequest) throws -> SdkResponse { return try client.send(operation: "GetSdk", path: "/restapis/{restapi_id}/stages/{stage_name}/sdks/{sdk_type}", httpMethod: "GET", input: input) @@ -260,7 +285,7 @@ public struct Apigateway { _ = try client.send(operation: "DeleteDomainName", path: "/domainnames/{domain_name}", httpMethod: "DELETE", input: input) } - /// Grants a temporary extension to the reamining quota of a usage plan associated with a specified API key. + /// Grants a temporary extension to the remaining quota of a usage plan associated with a specified API key. public func updateUsage(_ input: UpdateUsageRequest) throws -> Usage { return try client.send(operation: "UpdateUsage", path: "/usageplans/{usageplanId}/keys/{keyId}/usage", httpMethod: "PATCH", input: input) } @@ -363,7 +388,12 @@ public struct Apigateway { _ = try client.send(operation: "FlushStageCache", path: "/restapis/{restapi_id}/stages/{stage_name}/cache/data", httpMethod: "DELETE", input: input) } - /// Represents a get integration. + /// Creates a VPC link, under the caller's account in a selected region, in an asynchronous operation that typically takes 2-4 minutes to complete and become operational. The caller must have permissions to create and update VPC Endpoint services. + public func createVpcLink(_ input: CreateVpcLinkRequest) throws -> VpcLink { + return try client.send(operation: "CreateVpcLink", path: "/vpclinks", httpMethod: "POST", input: input) + } + + /// Get the integration settings. public func getIntegration(_ input: GetIntegrationRequest) throws -> Integration { return try client.send(operation: "GetIntegration", path: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration", httpMethod: "GET", input: input) } @@ -383,7 +413,7 @@ public struct Apigateway { return try client.send(operation: "UpdateIntegration", path: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration", httpMethod: "PATCH", input: input) } - /// A feature of the Amazon API Gateway control service for creating a new API from an external API definition file. + /// A feature of the API Gateway control service for creating a new API from an external API definition file. public func importRestApi(_ input: ImportRestApiRequest) throws -> RestApi { return try client.send(operation: "ImportRestApi", path: "/restapis?mode=import", httpMethod: "POST", input: input) } @@ -428,11 +458,21 @@ public struct Apigateway { return try client.send(operation: "UpdateIntegrationResponse", path: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}", httpMethod: "PATCH", input: input) } + /// Updates an existing VpcLink of a specified identifier. + public func updateVpcLink(_ input: UpdateVpcLinkRequest) throws -> VpcLink { + return try client.send(operation: "UpdateVpcLink", path: "/vpclinks/{vpclink_id}", httpMethod: "PATCH", input: input) + } + /// Changes information about the specified API. public func updateRestApi(_ input: UpdateRestApiRequest) throws -> RestApi { return try client.send(operation: "UpdateRestApi", path: "/restapis/{restapi_id}", httpMethod: "PATCH", input: input) } + /// Gets the GatewayResponses collection on the given RestApi. If an API developer has not added any definitions for gateway responses, the result will be the API Gateway-generated default GatewayResponses collection for the supported response types. + public func getGatewayResponses(_ input: GetGatewayResponsesRequest) throws -> GatewayResponses { + return try client.send(operation: "GetGatewayResponses", path: "/restapis/{restapi_id}/gatewayresponses", httpMethod: "GET", input: input) + } + /// Represents a collection of BasePathMapping resources. public func getBasePathMappings(_ input: GetBasePathMappingsRequest) throws -> BasePathMappings { return try client.send(operation: "GetBasePathMappings", path: "/domainnames/{domain_name}/basepathmappings", httpMethod: "GET", input: input) @@ -448,7 +488,7 @@ public struct Apigateway { return try client.send(operation: "GetExport", path: "/restapis/{restapi_id}/stages/{stage_name}/exports/{export_type}", httpMethod: "GET", input: input) } - /// A feature of the Amazon API Gateway control service for updating an existing API with an input of external API definitions. The update can take the form of merging the supplied definition into the existing API or overwriting the existing API. + /// A feature of the API Gateway control service for updating an existing API with an input of external API definitions. The update can take the form of merging the supplied definition into the existing API or overwriting the existing API. public func putRestApi(_ input: PutRestApiRequest) throws -> RestApi { return try client.send(operation: "PutRestApi", path: "/restapis/{restapi_id}", httpMethod: "PUT", input: input) } @@ -483,6 +523,11 @@ public struct Apigateway { return try client.send(operation: "GetDeployments", path: "/restapis/{restapi_id}/deployments", httpMethod: "GET", input: input) } + /// Clears any customization of a GatewayResponse of a specified response type on the given RestApi and resets it with the default settings. + public func deleteGatewayResponse(_ input: DeleteGatewayResponseRequest) throws { + _ = try client.send(operation: "DeleteGatewayResponse", path: "/restapis/{restapi_id}/gatewayresponses/{response_type}", httpMethod: "DELETE", input: input) + } + /// Changes information about the current Account resource. public func updateAccount(_ input: UpdateAccountRequest) throws -> Account { return try client.send(operation: "UpdateAccount", path: "/account", httpMethod: "PATCH", input: input) @@ -527,6 +572,11 @@ public struct Apigateway { return try client.send(operation: "GetClientCertificate", path: "/clientcertificates/{clientcertificate_id}", httpMethod: "GET", input: input) } + /// Updates a GatewayResponse of a specified response type on the given RestApi. + public func updateGatewayResponse(_ input: UpdateGatewayResponseRequest) throws -> GatewayResponse { + return try client.send(operation: "UpdateGatewayResponse", path: "/restapis/{restapi_id}/gatewayresponses/{response_type}", httpMethod: "PATCH", input: input) + } + /// Lists information about a collection of Resource resources. public func getResources(_ input: GetResourcesRequest) throws -> Resources { return try client.send(operation: "GetResources", path: "/restapis/{restapi_id}/resources", httpMethod: "GET", input: input) diff --git a/Sources/AWSSDKSwift/Services/apigateway/Apigateway_Shapes.swift b/Sources/AWSSDKSwift/Services/apigateway/Apigateway_Shapes.swift index 73f4c90742c..b9fae7b7f63 100644 --- a/Sources/AWSSDKSwift/Services/apigateway/Apigateway_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/apigateway/Apigateway_Shapes.swift @@ -18,7 +18,7 @@ extension Apigateway { } public struct DeleteApiKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "apiKey", location: .uri(locationName: "api_Key"), required: true, type: .string) ] /// The identifier of the ApiKey resource to be deleted. @@ -36,22 +36,22 @@ extension Apigateway { public struct PutRestApiRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "mode", location: .querystring(locationName: "mode"), required: false, type: .enum), AWSShapeMember(label: "failOnWarnings", location: .querystring(locationName: "failonwarnings"), required: false, type: .boolean), AWSShapeMember(label: "body", required: true, type: .blob), AWSShapeMember(label: "parameters", required: false, type: .map) ] - /// The identifier of the RestApi to be updated. + /// The string identifier of the associated RestApi. public let restApiId: String /// The mode query parameter to specify the update mode. Valid values are "merge" and "overwrite". By default, the update mode is "merge". public let mode: PutMode? /// A query parameter to indicate whether to rollback the API update (true) or not (false) when a warning is encountered. The default value is false. public let failOnWarnings: Bool? - /// The PUT request body containing external API definitions. Currently, only Swagger definition JSON files are supported. + /// The PUT request body containing external API definitions. Currently, only Swagger definition JSON files are supported. The maximum size of the API definition file is 2MB. public let body: Data - /// Custom headers supplied as part of the request. + /// Custom header parameters as part of the request. For example, to exclude DocumentationParts from an imported API, set ignore=documentation as a parameters value, as in the AWS CLI command of aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json. public let parameters: [String: String]? public init(restApiId: String, mode: PutMode? = nil, failOnWarnings: Bool? = nil, body: Data, parameters: [String: String]? = nil) { @@ -83,8 +83,14 @@ extension Apigateway { public var description: String { return self.rawValue } } + public enum EndpointType: String, CustomStringConvertible, Codable { + case regional = "REGIONAL" + case edge = "EDGE" + public var description: String { return self.rawValue } + } + public struct DeleteDomainNameRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainName", location: .uri(locationName: "domain_name"), required: true, type: .string) ] /// The name of the DomainName resource to be deleted. @@ -100,13 +106,13 @@ extension Apigateway { } public struct GetDocumentationVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "documentationVersion", location: .uri(locationName: "doc_version"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) ] /// [Required] The version identifier of the to-be-retrieved documentation snapshot. public let documentationVersion: String - /// [Required] The identifier of the API of the to-be-retrieved documentation snapshot. + /// [Required] The string identifier of the associated RestApi. public let restApiId: String public init(documentationVersion: String, restApiId: String) { @@ -121,7 +127,7 @@ extension Apigateway { } public struct GetUsagePlanKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "keyId", location: .uri(locationName: "keyId"), required: true, type: .string), AWSShapeMember(label: "usagePlanId", location: .uri(locationName: "usageplanId"), required: true, type: .string) ] @@ -142,14 +148,14 @@ extension Apigateway { } public struct UpdateDocumentationVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "documentationVersion", location: .uri(locationName: "doc_version"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] /// [Required] The version identifier of the to-be-updated documentation version. public let documentationVersion: String - /// [Required] The identifier of an API of the to-be-updated documentation version. + /// [Required] The string identifier of the associated RestApi.. public let restApiId: String /// A list of update operations to be applied to the specified resource and in the order specified in this list. public let patchOperations: [PatchOperation]? @@ -168,7 +174,7 @@ extension Apigateway { } public struct CreateModelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "contentType", required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), @@ -181,7 +187,7 @@ extension Apigateway { public let contentType: String /// The RestApi identifier under which the Model will be created. public let restApiId: String - /// The name of the model. + /// The name of the model. Must be alphanumeric. public let name: String /// The schema for the model. For application/json models, this should be JSON-schema draft v4 model. public let schema: String? @@ -204,14 +210,14 @@ extension Apigateway { } public struct UpdateMethodResponseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list), AWSShapeMember(label: "statusCode", location: .uri(locationName: "status_code"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string) ] - /// The RestApi identifier for the MethodResponse resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// A list of update operations to be applied to the specified resource and in the order specified in this list. public let patchOperations: [PatchOperation]? @@ -240,14 +246,14 @@ extension Apigateway { } public struct UpdateDeploymentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentId", location: .uri(locationName: "deployment_id"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] /// The replacement identifier for the Deployment resource to change information about. public let deploymentId: String - /// The replacement identifier of the RestApi resource for the Deployment resource to change information about. + /// The string identifier of the associated RestApi. public let restApiId: String /// A list of update operations to be applied to the specified resource and in the order specified in this list. public let patchOperations: [PatchOperation]? @@ -266,12 +272,12 @@ extension Apigateway { } public struct DeleteMethodRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string) ] - /// The RestApi identifier for the Method resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// The HTTP verb of the Method resource. public let httpMethod: String @@ -292,11 +298,11 @@ extension Apigateway { } public struct GetStageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "stageName", location: .uri(locationName: "stage_name"), required: true, type: .string) ] - /// The identifier of the RestApi resource for the Stage resource to get information about. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the Stage resource to get information about. public let stageName: String @@ -313,7 +319,7 @@ extension Apigateway { } public struct GetApiKeysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "includeValues", location: .querystring(locationName: "includeValues"), required: false, type: .boolean), AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer), @@ -324,7 +330,7 @@ extension Apigateway { public let includeValues: Bool? /// The current pagination position in the paged result set. public let position: String? - /// The maximum number of ApiKeys to get information about. + /// The maximum number of returned results per page. public let limit: Int32? /// The name of queried API keys. public let nameQuery: String? @@ -349,11 +355,11 @@ extension Apigateway { } public struct BasePathMappings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// The current page of any BasePathMapping resources in the collection of base path mapping resources. + /// The current page of elements from this collection. public let items: [BasePathMapping]? public let position: String? @@ -369,7 +375,7 @@ extension Apigateway { } public struct GetUsageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "keyId", location: .querystring(locationName: "keyId"), required: false, type: .string), AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer), @@ -410,11 +416,11 @@ extension Apigateway { } public struct SdkTypes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// The set of SdkType items that comprise this view of the SdkTypes collection. + /// The current page of elements from this collection. public let items: [SdkType]? public let position: String? @@ -430,12 +436,12 @@ extension Apigateway { } public struct GetIntegrationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string) ] - /// Specifies a get integration request's API identifier. + /// The string identifier of the associated RestApi. public let restApiId: String /// Specifies a get integration request's HTTP method. public let httpMethod: String @@ -456,11 +462,11 @@ extension Apigateway { } public struct RestApis: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// An array of links to the current page of RestApi resources. + /// The current page of elements from this collection. public let items: [RestApi]? public let position: String? @@ -476,13 +482,13 @@ extension Apigateway { } public struct GetDocumentationPartRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "documentationPartId", location: .uri(locationName: "part_id"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) ] - /// [Required] The identifier of the to-be-retrieved documentation part. + /// [Required] The string identifier of the associated RestApi. public let documentationPartId: String - /// [Required] The identifier of an API of the to-be-retrieved documentation part. + /// [Required] The string identifier of the associated RestApi. public let restApiId: String public init(documentationPartId: String, restApiId: String) { @@ -497,14 +503,14 @@ extension Apigateway { } public struct GetDocumentationVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] /// The current pagination position in the paged result set. public let position: String? - /// [Required] The identifier of an API of the to-be-retrieved documentation versions. + /// [Required] The string identifier of the associated RestApi. public let restApiId: String /// The maximum number of returned results per page. public let limit: Int32? @@ -523,7 +529,7 @@ extension Apigateway { } public struct UpdateBasePathMappingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "basePath", location: .uri(locationName: "base_path"), required: true, type: .string), AWSShapeMember(label: "domainName", location: .uri(locationName: "domain_name"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) @@ -549,7 +555,7 @@ extension Apigateway { } public struct DeleteClientCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "clientCertificateId", location: .uri(locationName: "clientcertificate_id"), required: true, type: .string) ] /// The identifier of the ClientCertificate resource to be deleted. @@ -565,11 +571,11 @@ extension Apigateway { } public struct DeleteRequestValidatorRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "requestValidatorId", location: .uri(locationName: "requestvalidator_id"), required: true, type: .string) ] - /// [Required] The identifier of the RestApi from which the given RequestValidator is deleted. + /// The string identifier of the associated RestApi. public let restApiId: String /// [Required] The identifier of the RequestValidator to be deleted. public let requestValidatorId: String @@ -586,11 +592,11 @@ extension Apigateway { } public struct DeleteModelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "modelName", location: .uri(locationName: "model_name"), required: true, type: .string) ] - /// The RestApi under which the model will be deleted. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the model to delete. public let modelName: String @@ -607,7 +613,7 @@ extension Apigateway { } public struct Resource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "parentId", required: false, type: .string), AWSShapeMember(label: "pathPart", required: false, type: .string), AWSShapeMember(label: "path", required: false, type: .string), @@ -642,14 +648,22 @@ extension Apigateway { } } + public enum VpcLinkStatus: String, CustomStringConvertible, Codable { + case available = "AVAILABLE" + case pending = "PENDING" + case deleting = "DELETING" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + public struct DeleteDocumentationVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "documentationVersion", location: .uri(locationName: "doc_version"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) ] /// [Required] The version identifier of a to-be-deleted documentation snapshot. public let documentationVersion: String - /// [Required] The identifier of an API of a to-be-deleted documentation snapshot. + /// [Required] The string identifier of the associated RestApi. public let restApiId: String public init(documentationVersion: String, restApiId: String) { @@ -664,14 +678,14 @@ extension Apigateway { } public struct GetAuthorizersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] /// The current pagination position in the paged result set. public let position: String? - /// The RestApi identifier for the Authorizers resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// The maximum number of returned results per page. public let limit: Int32? @@ -699,79 +713,101 @@ extension Apigateway { } public struct CreateDomainNameRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateName", required: false, type: .string), - AWSShapeMember(label: "certificatePrivateKey", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainName", required: true, type: .string), AWSShapeMember(label: "certificateChain", required: false, type: .string), + AWSShapeMember(label: "endpointConfiguration", required: false, type: .structure), + AWSShapeMember(label: "certificateName", required: false, type: .string), + AWSShapeMember(label: "certificatePrivateKey", required: false, type: .string), + AWSShapeMember(label: "regionalCertificateName", required: false, type: .string), AWSShapeMember(label: "certificateBody", required: false, type: .string), - AWSShapeMember(label: "certificateArn", required: false, type: .string) + AWSShapeMember(label: "certificateArn", required: false, type: .string), + AWSShapeMember(label: "regionalCertificateArn", required: false, type: .string) ] - /// The user-friendly name of the certificate. - public let certificateName: String? - /// [Deprecated] Your certificate's private key. - public let certificatePrivateKey: String? /// (Required) The name of the DomainName resource. public let domainName: String - /// [Deprecated] The intermediate certificates and optionally the root certificate, one after the other without any blank lines. If you include the root certificate, your certificate chain must start with intermediate certificates and end with the root certificate. Use the intermediate certificates that were provided by your certificate authority. Do not include any intermediaries that are not in the chain of trust path. + /// [Deprecated] The intermediate certificates and optionally the root certificate, one after the other without any blank lines, used by an edge-optimized endpoint for this domain name. If you include the root certificate, your certificate chain must start with intermediate certificates and end with the root certificate. Use the intermediate certificates that were provided by your certificate authority. Do not include any intermediaries that are not in the chain of trust path. public let certificateChain: String? - /// [Deprecated] The body of the server certificate provided by your certificate authority. + /// The endpoint configuration of this DomainName showing the endpoint types of the domain name. + public let endpointConfiguration: EndpointConfiguration? + /// The user-friendly name of the certificate that will be used by edge-optimized endpoint for this domain name. + public let certificateName: String? + /// [Deprecated] Your edge-optimized endpoint's domain name certificate's private key. + public let certificatePrivateKey: String? + /// The user-friendly name of the certificate that will be used by regional endpoint for this domain name. + public let regionalCertificateName: String? + /// [Deprecated] The body of the server certificate that will be used by edge-optimized endpoint for this domain name provided by your certificate authority. public let certificateBody: String? - /// The reference to an AWS-managed certificate. AWS Certificate Manager is the only supported source. + /// The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source. public let certificateArn: String? + /// The reference to an AWS-managed certificate that will be used by regional endpoint for this domain name. AWS Certificate Manager is the only supported source. + public let regionalCertificateArn: String? - public init(certificateName: String? = nil, certificatePrivateKey: String? = nil, domainName: String, certificateChain: String? = nil, certificateBody: String? = nil, certificateArn: String? = nil) { - self.certificateName = certificateName - self.certificatePrivateKey = certificatePrivateKey + public init(domainName: String, certificateChain: String? = nil, endpointConfiguration: EndpointConfiguration? = nil, certificateName: String? = nil, certificatePrivateKey: String? = nil, regionalCertificateName: String? = nil, certificateBody: String? = nil, certificateArn: String? = nil, regionalCertificateArn: String? = nil) { self.domainName = domainName self.certificateChain = certificateChain + self.endpointConfiguration = endpointConfiguration + self.certificateName = certificateName + self.certificatePrivateKey = certificatePrivateKey + self.regionalCertificateName = regionalCertificateName self.certificateBody = certificateBody self.certificateArn = certificateArn + self.regionalCertificateArn = regionalCertificateArn } private enum CodingKeys: String, CodingKey { - case certificateName = "certificateName" - case certificatePrivateKey = "certificatePrivateKey" case domainName = "domainName" case certificateChain = "certificateChain" + case endpointConfiguration = "endpointConfiguration" + case certificateName = "certificateName" + case certificatePrivateKey = "certificatePrivateKey" + case regionalCertificateName = "regionalCertificateName" case certificateBody = "certificateBody" case certificateArn = "certificateArn" + case regionalCertificateArn = "regionalCertificateArn" } } - public struct ApiKeyIds: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ids", required: false, type: .list), - AWSShapeMember(label: "warnings", required: false, type: .list) + public struct GetRequestValidatorsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), + AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] - /// A list of all the ApiKey identifiers. - public let ids: [String]? - /// A list of warning messages. - public let warnings: [String]? + /// The current pagination position in the paged result set. + public let position: String? + /// The string identifier of the associated RestApi. + public let restApiId: String + /// The maximum number of returned results per page. + public let limit: Int32? - public init(ids: [String]? = nil, warnings: [String]? = nil) { - self.ids = ids - self.warnings = warnings + public init(position: String? = nil, restApiId: String, limit: Int32? = nil) { + self.position = position + self.restApiId = restApiId + self.limit = limit } private enum CodingKeys: String, CodingKey { - case ids = "ids" - case warnings = "warnings" + case position = "position" + case restApiId = "restapi_id" + case limit = "limit" } } public struct Stage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "documentationVersion", required: false, type: .string), AWSShapeMember(label: "cacheClusterStatus", required: false, type: .enum), AWSShapeMember(label: "cacheClusterSize", required: false, type: .enum), - AWSShapeMember(label: "variables", required: false, type: .map), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), AWSShapeMember(label: "description", required: false, type: .string), - AWSShapeMember(label: "deploymentId", required: false, type: .string), - AWSShapeMember(label: "clientCertificateId", required: false, type: .string), AWSShapeMember(label: "methodSettings", required: false, type: .map), AWSShapeMember(label: "lastUpdatedDate", required: false, type: .timestamp), + AWSShapeMember(label: "canarySettings", required: false, type: .structure), + AWSShapeMember(label: "variables", required: false, type: .map), + AWSShapeMember(label: "accessLogSettings", required: false, type: .structure), + AWSShapeMember(label: "deploymentId", required: false, type: .string), + AWSShapeMember(label: "clientCertificateId", required: false, type: .string), AWSShapeMember(label: "stageName", required: false, type: .string), AWSShapeMember(label: "cacheClusterEnabled", required: false, type: .boolean) ] @@ -781,36 +817,42 @@ extension Apigateway { public let cacheClusterStatus: CacheClusterStatus? /// The size of the cache cluster for the stage, if enabled. public let cacheClusterSize: CacheClusterSize? - /// A map that defines the stage variables for a Stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. - public let variables: [String: String]? /// The timestamp when the stage was created. public let createdDate: TimeStamp? /// The stage's description. public let description: String? - /// The identifier of the Deployment that the stage points to. - public let deploymentId: String? - /// The identifier of a client certificate for an API stage. - public let clientCertificateId: String? /// A map that defines the method settings for a Stage resource. Keys (designated as /{method_setting_key below) are method paths defined as {resource_path}/{http_method} for an individual method override, or /\*/\* for overriding all methods in the stage. public let methodSettings: [String: MethodSetting]? /// The timestamp when the stage last updated. public let lastUpdatedDate: TimeStamp? - /// The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to Amazon API Gateway. + /// Settings for the canary deployment in this stage. + public let canarySettings: CanarySettings? + /// A map that defines the stage variables for a Stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. + public let variables: [String: String]? + /// Settings for logging access in this stage. + public let accessLogSettings: AccessLogSettings? + /// The identifier of the Deployment that the stage points to. + public let deploymentId: String? + /// The identifier of a client certificate for an API stage. + public let clientCertificateId: String? + /// The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. public let stageName: String? /// Specifies whether a cache cluster is enabled for the stage. public let cacheClusterEnabled: Bool? - public init(documentationVersion: String? = nil, cacheClusterStatus: CacheClusterStatus? = nil, cacheClusterSize: CacheClusterSize? = nil, variables: [String: String]? = nil, createdDate: TimeStamp? = nil, description: String? = nil, deploymentId: String? = nil, clientCertificateId: String? = nil, methodSettings: [String: MethodSetting]? = nil, lastUpdatedDate: TimeStamp? = nil, stageName: String? = nil, cacheClusterEnabled: Bool? = nil) { + public init(documentationVersion: String? = nil, cacheClusterStatus: CacheClusterStatus? = nil, cacheClusterSize: CacheClusterSize? = nil, createdDate: TimeStamp? = nil, description: String? = nil, methodSettings: [String: MethodSetting]? = nil, lastUpdatedDate: TimeStamp? = nil, canarySettings: CanarySettings? = nil, variables: [String: String]? = nil, accessLogSettings: AccessLogSettings? = nil, deploymentId: String? = nil, clientCertificateId: String? = nil, stageName: String? = nil, cacheClusterEnabled: Bool? = nil) { self.documentationVersion = documentationVersion self.cacheClusterStatus = cacheClusterStatus self.cacheClusterSize = cacheClusterSize - self.variables = variables self.createdDate = createdDate self.description = description - self.deploymentId = deploymentId - self.clientCertificateId = clientCertificateId self.methodSettings = methodSettings self.lastUpdatedDate = lastUpdatedDate + self.canarySettings = canarySettings + self.variables = variables + self.accessLogSettings = accessLogSettings + self.deploymentId = deploymentId + self.clientCertificateId = clientCertificateId self.stageName = stageName self.cacheClusterEnabled = cacheClusterEnabled } @@ -819,51 +861,48 @@ extension Apigateway { case documentationVersion = "documentationVersion" case cacheClusterStatus = "cacheClusterStatus" case cacheClusterSize = "cacheClusterSize" - case variables = "variables" case createdDate = "createdDate" case description = "description" - case deploymentId = "deploymentId" - case clientCertificateId = "clientCertificateId" case methodSettings = "methodSettings" case lastUpdatedDate = "lastUpdatedDate" + case canarySettings = "canarySettings" + case variables = "variables" + case accessLogSettings = "accessLogSettings" + case deploymentId = "deploymentId" + case clientCertificateId = "clientCertificateId" case stageName = "stageName" case cacheClusterEnabled = "cacheClusterEnabled" } } - public struct GetRequestValidatorsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), - AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), - AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) + public struct ApiKeyIds: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ids", required: false, type: .list), + AWSShapeMember(label: "warnings", required: false, type: .list) ] - /// The current pagination position in the paged result set. - public let position: String? - /// [Required] The identifier of a RestApi to which the RequestValidators collection belongs. - public let restApiId: String - /// The maximum number of returned results per page. - public let limit: Int32? + /// A list of all the ApiKey identifiers. + public let ids: [String]? + /// A list of warning messages. + public let warnings: [String]? - public init(position: String? = nil, restApiId: String, limit: Int32? = nil) { - self.position = position - self.restApiId = restApiId - self.limit = limit + public init(ids: [String]? = nil, warnings: [String]? = nil) { + self.ids = ids + self.warnings = warnings } private enum CodingKeys: String, CodingKey { - case position = "position" - case restApiId = "restapi_id" - case limit = "limit" + case ids = "ids" + case warnings = "warnings" } } public struct GetMethodRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string) ] - /// The RestApi identifier for the Method resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// Specifies the method request's HTTP method type. public let httpMethod: String @@ -890,12 +929,33 @@ extension Apigateway { public var description: String { return self.rawValue } } + public struct DeleteGatewayResponseRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "responseType", location: .uri(locationName: "response_type"), required: true, type: .enum), + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) + ] + /// The response type of the associated GatewayResponse. Valid values are ACCESS_DENIEDAPI_CONFIGURATION_ERRORAUTHORIZER_FAILURE AUTHORIZER_CONFIGURATION_ERRORBAD_REQUEST_PARAMETERSBAD_REQUEST_BODYDEFAULT_4XXDEFAULT_5XXEXPIRED_TOKENINVALID_SIGNATUREINTEGRATION_FAILUREINTEGRATION_TIMEOUTINVALID_API_KEYMISSING_AUTHENTICATION_TOKEN QUOTA_EXCEEDEDREQUEST_TOO_LARGERESOURCE_NOT_FOUNDTHROTTLEDUNAUTHORIZEDUNSUPPORTED_MEDIA_TYPES + public let responseType: GatewayResponseType + /// The string identifier of the associated RestApi. + public let restApiId: String + + public init(responseType: GatewayResponseType, restApiId: String) { + self.responseType = responseType + self.restApiId = restApiId + } + + private enum CodingKeys: String, CodingKey { + case responseType = "response_type" + case restApiId = "restapi_id" + } + } + public struct UsagePlans: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// Gets the current item when enumerating the collection of UsagePlan. + /// The current page of elements from this collection. public let items: [UsagePlan]? public let position: String? @@ -910,50 +970,50 @@ extension Apigateway { } } - public struct DeleteStageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), - AWSShapeMember(label: "stageName", location: .uri(locationName: "stage_name"), required: true, type: .string) + public struct DeleteDeploymentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "deploymentId", location: .uri(locationName: "deployment_id"), required: true, type: .string), + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) ] - /// The identifier of the RestApi resource for the Stage resource to delete. + /// The identifier of the Deployment resource to delete. + public let deploymentId: String + /// The string identifier of the associated RestApi. public let restApiId: String - /// The name of the Stage resource to delete. - public let stageName: String - public init(restApiId: String, stageName: String) { + public init(deploymentId: String, restApiId: String) { + self.deploymentId = deploymentId self.restApiId = restApiId - self.stageName = stageName } private enum CodingKeys: String, CodingKey { + case deploymentId = "deployment_id" case restApiId = "restapi_id" - case stageName = "stage_name" } } - public struct DeleteDeploymentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "deploymentId", location: .uri(locationName: "deployment_id"), required: true, type: .string), - AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) + public struct DeleteStageRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), + AWSShapeMember(label: "stageName", location: .uri(locationName: "stage_name"), required: true, type: .string) ] - /// The identifier of the Deployment resource to delete. - public let deploymentId: String - /// The identifier of the RestApi resource for the Deployment resource to delete. + /// The string identifier of the associated RestApi. public let restApiId: String + /// The name of the Stage resource to delete. + public let stageName: String - public init(deploymentId: String, restApiId: String) { - self.deploymentId = deploymentId + public init(restApiId: String, stageName: String) { self.restApiId = restApiId + self.stageName = stageName } private enum CodingKeys: String, CodingKey { - case deploymentId = "deployment_id" case restApiId = "restapi_id" + case stageName = "stage_name" } } public struct TestInvokeAuthorizerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "authorizerId", location: .uri(locationName: "authorizer_id"), required: true, type: .string), AWSShapeMember(label: "headers", required: false, type: .map), AWSShapeMember(label: "pathWithQueryString", required: false, type: .string), @@ -972,7 +1032,7 @@ extension Apigateway { public let body: String? /// A key-value map of stage variables to simulate an invocation on a deployed Stage. public let stageVariables: [String: String]? - /// Specifies a test invoke authorizer request's RestApi identifier. + /// The string identifier of the associated RestApi. public let restApiId: String /// [Optional] A key-value map of additional context variables. public let additionalContext: [String: String]? @@ -999,7 +1059,7 @@ extension Apigateway { } public struct PutMethodRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "authorizerId", required: false, type: .string), AWSShapeMember(label: "requestModels", required: false, type: .map), AWSShapeMember(label: "requestParameters", required: false, type: .map), @@ -1015,11 +1075,11 @@ extension Apigateway { public let authorizerId: String? /// Specifies the Model resources used for the request's content type. Request models are represented as a key/value map, with a content type as the key and a Model name as the value. public let requestModels: [String: String]? - /// A key-value map defining required or optional method request parameters that can be accepted by Amazon API Gateway. A key defines a method request parameter name matching the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true) or optional (false). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or body-mapping templates. + /// A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key defines a method request parameter name matching the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true) or optional (false). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or body-mapping templates. public let requestParameters: [String: Bool]? /// Specifies the method request's HTTP method type. public let httpMethod: String - /// The RestApi identifier for the new Method resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// The identifier of a RequestValidator for validating the method request. public let requestValidatorId: String? @@ -1060,7 +1120,7 @@ extension Apigateway { } public struct GetBasePathMappingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "domainName", location: .uri(locationName: "domain_name"), required: true, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) @@ -1086,19 +1146,19 @@ extension Apigateway { } public struct PatchOperation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "from", required: false, type: .string), AWSShapeMember(label: "value", required: false, type: .string), AWSShapeMember(label: "path", required: false, type: .string), AWSShapeMember(label: "op", required: false, type: .enum) ] - /// Not supported. + /// The copy update operation's source as identified by a JSON-Pointer value referencing the location within the targeted resource to copy the value from. For example, to promote a canary deployment, you copy the canary deployment ID to the affiliated deployment ID by calling a PATCH request on a Stage resource with "op":"copy", "from":"/canarySettings/deploymentId" and "path":"/deploymentId". public let from: String? - /// The new target value of the update operation. When using AWS CLI to update a property of a JSON value, enclose the JSON object with a pair of single quotes in a Linux shell, e.g., '{"a": ...}'. In a Windows shell, see Using JSON for Parameters. + /// The new target value of the update operation. It is applicable for the add or replace operation. When using AWS CLI to update a property of a JSON value, enclose the JSON object with a pair of single quotes in a Linux shell, e.g., '{"a": ...}'. In a Windows shell, see Using JSON for Parameters. public let value: String? /// The op operation's target, as identified by a JSON Pointer value that references a location within the targeted resource. For example, if the target resource has an updateable property of {"name":"value"}, the path for this property is /name. If the name property value is a JSON object (e.g., {"name": {"child/name": "child-value"}}), the path for the child/name property will be /name/child~1name. Any slash ("/") character appearing in path names must be escaped with "~1", as shown in the example above. Each op operation can have only one path associated with it. public let path: String? - /// An update operation to be performed with this PATCH request. The valid value can be "add", "remove", or "replace". Not all valid operations are supported for a given resource. Support of the operations depends on specific operational contexts. Attempts to apply an unsupported operation on a resource will return an error message. + /// An update operation to be performed with this PATCH request. The valid value can be add, remove, replace or copy. Not all valid operations are supported for a given resource. Support of the operations depends on specific operational contexts. Attempts to apply an unsupported operation on a resource will return an error message. public let op: Op? public init(from: String? = nil, value: String? = nil, path: String? = nil, op: Op? = nil) { @@ -1117,7 +1177,7 @@ extension Apigateway { } public struct TestInvokeMethodRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "headers", required: false, type: .map), AWSShapeMember(label: "pathWithQueryString", required: false, type: .string), AWSShapeMember(label: "body", required: false, type: .string), @@ -1139,7 +1199,7 @@ extension Apigateway { public let stageVariables: [String: String]? /// A ClientCertificate identifier to use in the test invocation. API Gateway will use the certificate when making the HTTPS request to the defined back-end endpoint. public let clientCertificateId: String? - /// Specifies a test invoke method request's API identifier. + /// The string identifier of the associated RestApi. public let restApiId: String /// Specifies a test invoke method request's resource ID. public let resourceId: String @@ -1168,7 +1228,7 @@ extension Apigateway { } public struct CreateDocumentationVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "documentationVersion", required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "stageName", required: false, type: .string), @@ -1176,7 +1236,7 @@ extension Apigateway { ] /// [Required] The version identifier of the new snapshot. public let documentationVersion: String - /// [Required] Specifies the API identifier of the to-be-created documentation version. + /// [Required] The string identifier of the associated RestApi. public let restApiId: String /// The stage name to be associated with the new documentation snapshot. public let stageName: String? @@ -1199,14 +1259,14 @@ extension Apigateway { } public struct GetDeploymentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] /// The current pagination position in the paged result set. public let position: String? - /// The identifier of the RestApi resource for the collection of Deployment resources to get information about. + /// The string identifier of the associated RestApi. public let restApiId: String /// The maximum number of returned results per page. The value is 25 by default and could be between 1 - 500. public let limit: Int32? @@ -1225,7 +1285,7 @@ extension Apigateway { } public struct DeleteUsagePlanKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "keyId", location: .uri(locationName: "keyId"), required: true, type: .string), AWSShapeMember(label: "usagePlanId", location: .uri(locationName: "usageplanId"), required: true, type: .string) ] @@ -1245,48 +1305,12 @@ extension Apigateway { } } - public struct TestInvokeMethodResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "log", required: false, type: .string), - AWSShapeMember(label: "status", required: false, type: .integer), - AWSShapeMember(label: "headers", required: false, type: .map), - AWSShapeMember(label: "latency", required: false, type: .long), - AWSShapeMember(label: "body", required: false, type: .string) - ] - /// The Amazon API Gateway execution log for the test invoke request. - public let log: String? - /// The HTTP status code. - public let status: Int32? - /// The headers of the HTTP response. - public let headers: [String: String]? - /// The execution latency of the test invoke request. - public let latency: Int64? - /// The body of the HTTP response. - public let body: String? - - public init(log: String? = nil, status: Int32? = nil, headers: [String: String]? = nil, latency: Int64? = nil, body: String? = nil) { - self.log = log - self.status = status - self.headers = headers - self.latency = latency - self.body = body - } - - private enum CodingKeys: String, CodingKey { - case log = "log" - case status = "status" - case headers = "headers" - case latency = "latency" - case body = "body" - } - } - public struct DeleteResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string) ] - /// The RestApi identifier for the Resource resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// The identifier of the Resource resource. public let resourceId: String @@ -1302,8 +1326,29 @@ extension Apigateway { } } + public struct GetGatewayResponseRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "responseType", location: .uri(locationName: "response_type"), required: true, type: .enum), + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) + ] + /// The response type of the associated GatewayResponse. Valid values are ACCESS_DENIEDAPI_CONFIGURATION_ERRORAUTHORIZER_FAILURE AUTHORIZER_CONFIGURATION_ERRORBAD_REQUEST_PARAMETERSBAD_REQUEST_BODYDEFAULT_4XXDEFAULT_5XXEXPIRED_TOKENINVALID_SIGNATUREINTEGRATION_FAILUREINTEGRATION_TIMEOUTINVALID_API_KEYMISSING_AUTHENTICATION_TOKEN QUOTA_EXCEEDEDREQUEST_TOO_LARGERESOURCE_NOT_FOUNDTHROTTLEDUNAUTHORIZEDUNSUPPORTED_MEDIA_TYPES + public let responseType: GatewayResponseType + /// The string identifier of the associated RestApi. + public let restApiId: String + + public init(responseType: GatewayResponseType, restApiId: String) { + self.responseType = responseType + self.restApiId = restApiId + } + + private enum CodingKeys: String, CodingKey { + case responseType = "response_type" + case restApiId = "restapi_id" + } + } + public struct GetSdkTypesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] @@ -1324,11 +1369,11 @@ extension Apigateway { } public struct Models: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// Gets the current Model resource in the collection. + /// The current page of elements from this collection. public let items: [Model]? public let position: String? @@ -1343,12 +1388,74 @@ extension Apigateway { } } + public struct TestInvokeMethodResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "log", required: false, type: .string), + AWSShapeMember(label: "status", required: false, type: .integer), + AWSShapeMember(label: "headers", required: false, type: .map), + AWSShapeMember(label: "latency", required: false, type: .long), + AWSShapeMember(label: "body", required: false, type: .string) + ] + /// The API Gateway execution log for the test invoke request. + public let log: String? + /// The HTTP status code. + public let status: Int32? + /// The headers of the HTTP response. + public let headers: [String: String]? + /// The execution latency of the test invoke request. + public let latency: Int64? + /// The body of the HTTP response. + public let body: String? + + public init(log: String? = nil, status: Int32? = nil, headers: [String: String]? = nil, latency: Int64? = nil, body: String? = nil) { + self.log = log + self.status = status + self.headers = headers + self.latency = latency + self.body = body + } + + private enum CodingKeys: String, CodingKey { + case log = "log" + case status = "status" + case headers = "headers" + case latency = "latency" + case body = "body" + } + } + + public struct DeploymentCanarySettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "percentTraffic", required: false, type: .double), + AWSShapeMember(label: "stageVariableOverrides", required: false, type: .map), + AWSShapeMember(label: "useStageCache", required: false, type: .boolean) + ] + /// The percentage (0.0-100.0) of traffic routed to the canary deployment. + public let percentTraffic: Double? + /// A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values. + public let stageVariableOverrides: [String: String]? + /// A Boolean flag to indicate whether the canary release deployment uses the stage cache or not. + public let useStageCache: Bool? + + public init(percentTraffic: Double? = nil, stageVariableOverrides: [String: String]? = nil, useStageCache: Bool? = nil) { + self.percentTraffic = percentTraffic + self.stageVariableOverrides = stageVariableOverrides + self.useStageCache = useStageCache + } + + private enum CodingKeys: String, CodingKey { + case percentTraffic = "percentTraffic" + case stageVariableOverrides = "stageVariableOverrides" + case useStageCache = "useStageCache" + } + } + public struct Resources: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// Gets the current Resource resource in the collection. + /// The current page of elements from this collection. public let items: [Resource]? public let position: String? @@ -1363,20 +1470,10 @@ extension Apigateway { } } - public enum Op: String, CustomStringConvertible, Codable { - case add = "add" - case remove = "remove" - case replace = "replace" - case move = "move" - case copy = "copy" - case test = "test" - public var description: String { return self.rawValue } - } - public struct ExportResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "contentType", location: .header(locationName: "Content-Type"), required: false, type: .string), AWSShapeMember(label: "contentDisposition", location: .header(locationName: "Content-Disposition"), required: false, type: .string), AWSShapeMember(label: "body", required: false, type: .blob) @@ -1401,41 +1498,25 @@ extension Apigateway { } } - public struct GetModelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), - AWSShapeMember(label: "flatten", location: .querystring(locationName: "flatten"), required: false, type: .boolean), - AWSShapeMember(label: "modelName", location: .uri(locationName: "model_name"), required: true, type: .string) - ] - /// The RestApi identifier under which the Model exists. - public let restApiId: String - /// A query parameter of a Boolean value to resolve (true) all external model references and returns a flattened model schema or not (false) The default is false. - public let flatten: Bool? - /// The name of the model as an identifier. - public let modelName: String - - public init(restApiId: String, flatten: Bool? = nil, modelName: String) { - self.restApiId = restApiId - self.flatten = flatten - self.modelName = modelName - } - - private enum CodingKeys: String, CodingKey { - case restApiId = "restapi_id" - case flatten = "flatten" - case modelName = "model_name" - } + public enum Op: String, CustomStringConvertible, Codable { + case add = "add" + case remove = "remove" + case replace = "replace" + case move = "move" + case copy = "copy" + case test = "test" + public var description: String { return self.rawValue } } public struct UpdateAuthorizerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "authorizerId", location: .uri(locationName: "authorizer_id"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] /// The identifier of the Authorizer resource. public let authorizerId: String - /// The RestApi identifier for the Authorizer resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// A list of update operations to be applied to the specified resource and in the order specified in this list. public let patchOperations: [PatchOperation]? @@ -1453,14 +1534,40 @@ extension Apigateway { } } + public struct GetModelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), + AWSShapeMember(label: "flatten", location: .querystring(locationName: "flatten"), required: false, type: .boolean), + AWSShapeMember(label: "modelName", location: .uri(locationName: "model_name"), required: true, type: .string) + ] + /// The RestApi identifier under which the Model exists. + public let restApiId: String + /// A query parameter of a Boolean value to resolve (true) all external model references and returns a flattened model schema or not (false) The default is false. + public let flatten: Bool? + /// The name of the model as an identifier. + public let modelName: String + + public init(restApiId: String, flatten: Bool? = nil, modelName: String) { + self.restApiId = restApiId + self.flatten = flatten + self.modelName = modelName + } + + private enum CodingKeys: String, CodingKey { + case restApiId = "restapi_id" + case flatten = "flatten" + case modelName = "model_name" + } + } + public struct StageKey: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", required: false, type: .string), AWSShapeMember(label: "stageName", required: false, type: .string) ] - /// A list of Stage resources that are associated with the ApiKey resource. + /// The string identifier of the associated RestApi. public let restApiId: String? - /// The stage name in the RestApi that the stage key references. + /// The stage name associated with the stage key. public let stageName: String? public init(restApiId: String? = nil, stageName: String? = nil) { @@ -1475,12 +1582,12 @@ extension Apigateway { } public struct ApiKeys: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string), AWSShapeMember(label: "warnings", required: false, type: .list) ] - /// The current page of any ApiKey resources in the collection of ApiKey resources. + /// The current page of elements from this collection. public let items: [ApiKey]? public let position: String? /// A list of warning messages logged during the import of API keys when the failOnWarnings option is set to true. @@ -1500,9 +1607,10 @@ extension Apigateway { } public struct CreateStageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "documentationVersion", required: false, type: .string), AWSShapeMember(label: "variables", required: false, type: .map), + AWSShapeMember(label: "canarySettings", required: false, type: .structure), AWSShapeMember(label: "cacheClusterSize", required: false, type: .enum), AWSShapeMember(label: "deploymentId", required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), @@ -1514,22 +1622,25 @@ extension Apigateway { public let documentationVersion: String? /// A map that defines the stage variables for the new Stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. public let variables: [String: String]? + /// The canary deployment settings of this stage. + public let canarySettings: CanarySettings? /// The stage's cache cluster size. public let cacheClusterSize: CacheClusterSize? - /// The identifier of the Deployment resource for the Stage resource. + /// [Required] The identifier of the Deployment resource for the Stage resource. public let deploymentId: String - /// The identifier of the RestApi resource for the Stage resource to create. + /// The string identifier of the associated RestApi. public let restApiId: String - /// The name for the Stage resource. + /// [Required] The name for the Stage resource. public let stageName: String /// The description of the Stage resource. public let description: String? /// Whether cache clustering is enabled for the stage. public let cacheClusterEnabled: Bool? - public init(documentationVersion: String? = nil, variables: [String: String]? = nil, cacheClusterSize: CacheClusterSize? = nil, deploymentId: String, restApiId: String, stageName: String, description: String? = nil, cacheClusterEnabled: Bool? = nil) { + public init(documentationVersion: String? = nil, variables: [String: String]? = nil, canarySettings: CanarySettings? = nil, cacheClusterSize: CacheClusterSize? = nil, deploymentId: String, restApiId: String, stageName: String, description: String? = nil, cacheClusterEnabled: Bool? = nil) { self.documentationVersion = documentationVersion self.variables = variables + self.canarySettings = canarySettings self.cacheClusterSize = cacheClusterSize self.deploymentId = deploymentId self.restApiId = restApiId @@ -1541,6 +1652,7 @@ extension Apigateway { private enum CodingKeys: String, CodingKey { case documentationVersion = "documentationVersion" case variables = "variables" + case canarySettings = "canarySettings" case cacheClusterSize = "cacheClusterSize" case deploymentId = "deploymentId" case restApiId = "restapi_id" @@ -1550,28 +1662,12 @@ extension Apigateway { } } - public struct GetSdkTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "id", location: .uri(locationName: "sdktype_id"), required: true, type: .string) - ] - /// The identifier of the queried SdkType instance. - public let id: String - - public init(id: String) { - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case id = "sdktype_id" - } - } - public struct GetRequestValidatorRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "requestValidatorId", location: .uri(locationName: "requestvalidator_id"), required: true, type: .string) ] - /// [Required] The identifier of the RestApi to which the specified RequestValidator belongs. + /// The string identifier of the associated RestApi. public let restApiId: String /// [Required] The identifier of the RequestValidator to be retrieved. public let requestValidatorId: String @@ -1587,10 +1683,26 @@ extension Apigateway { } } + public struct GetSdkTypeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "id", location: .uri(locationName: "sdktype_id"), required: true, type: .string) + ] + /// The identifier of the queried SdkType instance. + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "sdktype_id" + } + } + public struct ImportApiKeysRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "body", required: true, type: .blob), AWSShapeMember(label: "format", location: .querystring(locationName: "format"), required: true, type: .enum), AWSShapeMember(label: "failOnWarnings", location: .querystring(locationName: "failonwarnings"), required: false, type: .boolean) @@ -1616,7 +1728,7 @@ extension Apigateway { } public struct MethodSetting: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "dataTraceEnabled", required: false, type: .boolean), AWSShapeMember(label: "metricsEnabled", required: false, type: .boolean), AWSShapeMember(label: "cacheDataEncrypted", required: false, type: .boolean), @@ -1677,7 +1789,7 @@ extension Apigateway { } public struct ApiKey: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "value", required: false, type: .string), AWSShapeMember(label: "id", required: false, type: .string), @@ -1732,15 +1844,51 @@ extension Apigateway { } } + public struct GatewayResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "responseTemplates", required: false, type: .map), + AWSShapeMember(label: "responseParameters", required: false, type: .map), + AWSShapeMember(label: "statusCode", required: false, type: .string), + AWSShapeMember(label: "responseType", required: false, type: .enum), + AWSShapeMember(label: "defaultResponse", required: false, type: .boolean) + ] + /// Response templates of the GatewayResponse as a string-to-string map of key-value pairs. + public let responseTemplates: [String: String]? + /// Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs. + public let responseParameters: [String: String]? + /// The HTTP status code for this GatewayResponse. + public let statusCode: String? + /// The response type of the associated GatewayResponse. Valid values are ACCESS_DENIEDAPI_CONFIGURATION_ERRORAUTHORIZER_FAILURE AUTHORIZER_CONFIGURATION_ERRORBAD_REQUEST_PARAMETERSBAD_REQUEST_BODYDEFAULT_4XXDEFAULT_5XXEXPIRED_TOKENINVALID_SIGNATUREINTEGRATION_FAILUREINTEGRATION_TIMEOUTINVALID_API_KEYMISSING_AUTHENTICATION_TOKEN QUOTA_EXCEEDEDREQUEST_TOO_LARGERESOURCE_NOT_FOUNDTHROTTLEDUNAUTHORIZEDUNSUPPORTED_MEDIA_TYPES + public let responseType: GatewayResponseType? + /// A Boolean flag to indicate whether this GatewayResponse is the default gateway response (true) or not (false). A default gateway response is one generated by API Gateway without any customization by an API developer. + public let defaultResponse: Bool? + + public init(responseTemplates: [String: String]? = nil, responseParameters: [String: String]? = nil, statusCode: String? = nil, responseType: GatewayResponseType? = nil, defaultResponse: Bool? = nil) { + self.responseTemplates = responseTemplates + self.responseParameters = responseParameters + self.statusCode = statusCode + self.responseType = responseType + self.defaultResponse = defaultResponse + } + + private enum CodingKeys: String, CodingKey { + case responseTemplates = "responseTemplates" + case responseParameters = "responseParameters" + case statusCode = "statusCode" + case responseType = "responseType" + case defaultResponse = "defaultResponse" + } + } + public struct UpdateIntegrationResponseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list), AWSShapeMember(label: "statusCode", location: .uri(locationName: "status_code"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string) ] - /// Specifies an update integration response request's API identifier. + /// The string identifier of the associated RestApi. public let restApiId: String /// A list of update operations to be applied to the specified resource and in the order specified in this list. public let patchOperations: [PatchOperation]? @@ -1769,7 +1917,7 @@ extension Apigateway { } public struct GetDomainNamesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] @@ -1790,7 +1938,7 @@ extension Apigateway { } public struct DocumentationPartLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "method", required: false, type: .string), AWSShapeMember(label: "path", required: false, type: .string), @@ -1805,7 +1953,7 @@ extension Apigateway { public let path: String? /// The HTTP status code of a response. It is a valid field for the API entity types of RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value is * for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other location attributes, the child entity's statusCode attribute must match that of the parent entity exactly. public let statusCode: String? - /// The type of API entity to which the documentation content applies. It is a valid and required field for API entity types of API, AUTHORIZER, MODEL, RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. Content inheritance does not apply to any entity of the API, AUTHROZER, METHOD, MODEL, REQUEST_BODY, or RESOURCE type. + /// The type of API entity to which the documentation content applies. It is a valid and required field for API entity types of API, AUTHORIZER, MODEL, RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. Content inheritance does not apply to any entity of the API, AUTHORIZER, METHOD, MODEL, REQUEST_BODY, or RESOURCE type. public let `type`: DocumentationPartType public init(name: String? = nil, method: String? = nil, path: String? = nil, statusCode: String? = nil, type: DocumentationPartType) { @@ -1826,11 +1974,11 @@ extension Apigateway { } public struct RequestValidators: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// The current page of RequestValidator resources in the RequestValidators collection. + /// The current page of elements from this collection. public let items: [RequestValidator]? public let position: String? @@ -1846,7 +1994,7 @@ extension Apigateway { } public struct MethodSnapshot: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "apiKeyRequired", required: false, type: .boolean), AWSShapeMember(label: "authorizationType", required: false, type: .string) ] @@ -1867,11 +2015,11 @@ extension Apigateway { } public struct UpdateRestApiRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] - /// The ID of the RestApi you want to update. + /// The string identifier of the associated RestApi. public let restApiId: String /// A list of update operations to be applied to the specified resource and in the order specified in this list. public let patchOperations: [PatchOperation]? @@ -1888,50 +2036,80 @@ extension Apigateway { } public struct DomainName: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateName", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainName", required: false, type: .string), - AWSShapeMember(label: "certificateArn", required: false, type: .string), AWSShapeMember(label: "certificateUploadDate", required: false, type: .timestamp), - AWSShapeMember(label: "distributionDomainName", required: false, type: .string) + AWSShapeMember(label: "endpointConfiguration", required: false, type: .structure), + AWSShapeMember(label: "regionalDomainName", required: false, type: .string), + AWSShapeMember(label: "distributionHostedZoneId", required: false, type: .string), + AWSShapeMember(label: "certificateName", required: false, type: .string), + AWSShapeMember(label: "regionalCertificateName", required: false, type: .string), + AWSShapeMember(label: "distributionDomainName", required: false, type: .string), + AWSShapeMember(label: "regionalHostedZoneId", required: false, type: .string), + AWSShapeMember(label: "regionalCertificateArn", required: false, type: .string), + AWSShapeMember(label: "certificateArn", required: false, type: .string) ] - /// The name of the certificate. - public let certificateName: String? /// The name of the DomainName resource. public let domainName: String? - /// The reference to an AWS-managed certificate. AWS Certificate Manager is the only supported source. - public let certificateArn: String? - /// The timestamp when the certificate was uploaded. + /// The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded. public let certificateUploadDate: TimeStamp? - /// The domain name of the Amazon CloudFront distribution. For more information, see the Amazon CloudFront documentation. + /// The endpoint configuration of this DomainName showing the endpoint types of the domain name. + public let endpointConfiguration: EndpointConfiguration? + /// The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name. The regional domain name is returned by API Gateway when you create a regional endpoint. + public let regionalDomainName: String? + /// The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid value is Z2FDTNDATAQYW2 for all the regions. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway. + public let distributionHostedZoneId: String? + /// The name of the certificate that will be used by edge-optimized endpoint for this domain name. + public let certificateName: String? + /// The name of the certificate that will be used for validating the regional domain name. + public let regionalCertificateName: String? + /// The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation. public let distributionDomainName: String? + /// The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway. + public let regionalHostedZoneId: String? + /// The reference to an AWS-managed certificate that will be used for validating the regional domain name. AWS Certificate Manager is the only supported source. + public let regionalCertificateArn: String? + /// The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source. + public let certificateArn: String? - public init(certificateName: String? = nil, domainName: String? = nil, certificateArn: String? = nil, certificateUploadDate: TimeStamp? = nil, distributionDomainName: String? = nil) { - self.certificateName = certificateName + public init(domainName: String? = nil, certificateUploadDate: TimeStamp? = nil, endpointConfiguration: EndpointConfiguration? = nil, regionalDomainName: String? = nil, distributionHostedZoneId: String? = nil, certificateName: String? = nil, regionalCertificateName: String? = nil, distributionDomainName: String? = nil, regionalHostedZoneId: String? = nil, regionalCertificateArn: String? = nil, certificateArn: String? = nil) { self.domainName = domainName - self.certificateArn = certificateArn self.certificateUploadDate = certificateUploadDate + self.endpointConfiguration = endpointConfiguration + self.regionalDomainName = regionalDomainName + self.distributionHostedZoneId = distributionHostedZoneId + self.certificateName = certificateName + self.regionalCertificateName = regionalCertificateName self.distributionDomainName = distributionDomainName + self.regionalHostedZoneId = regionalHostedZoneId + self.regionalCertificateArn = regionalCertificateArn + self.certificateArn = certificateArn } private enum CodingKeys: String, CodingKey { - case certificateName = "certificateName" case domainName = "domainName" - case certificateArn = "certificateArn" case certificateUploadDate = "certificateUploadDate" + case endpointConfiguration = "endpointConfiguration" + case regionalDomainName = "regionalDomainName" + case distributionHostedZoneId = "distributionHostedZoneId" + case certificateName = "certificateName" + case regionalCertificateName = "regionalCertificateName" case distributionDomainName = "distributionDomainName" + case regionalHostedZoneId = "regionalHostedZoneId" + case regionalCertificateArn = "regionalCertificateArn" + case certificateArn = "certificateArn" } } public struct GetExportRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "stageName", location: .uri(locationName: "stage_name"), required: true, type: .string), AWSShapeMember(label: "exportType", location: .uri(locationName: "export_type"), required: true, type: .string), AWSShapeMember(label: "accepts", location: .header(locationName: "Accept"), required: false, type: .string), AWSShapeMember(label: "parameters", required: false, type: .map) ] - /// The identifier of the RestApi to be exported. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the Stage that will be exported. public let stageName: String @@ -1960,7 +2138,7 @@ extension Apigateway { } public struct SdkConfigurationProperty: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "defaultValue", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), @@ -1996,14 +2174,14 @@ extension Apigateway { } public struct GetModelsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] /// The current pagination position in the paged result set. public let position: String? - /// The RestApi identifier. + /// The string identifier of the associated RestApi. public let restApiId: String /// The maximum number of returned results per page. The value is 25 by default and could be between 1 - 500. public let limit: Int32? @@ -2022,7 +2200,7 @@ extension Apigateway { } public struct PutIntegrationResponseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "statusCode", location: .uri(locationName: "status_code"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), @@ -2036,7 +2214,7 @@ extension Apigateway { public let statusCode: String /// Specifies a put integration response request's HTTP method. public let httpMethod: String - /// Specifies a put integration response request's API identifier. + /// The string identifier of the associated RestApi. public let restApiId: String /// Specifies a put integration response's templates. public let responseTemplates: [String: String]? @@ -2073,14 +2251,14 @@ extension Apigateway { } public struct GetResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "embed", location: .querystring(locationName: "embed"), required: false, type: .list), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string) ] /// A query parameter to retrieve the specified resources embedded in the returned Resource representation in the response. This embed parameter value is a list of comma-separated strings. Currently, the request supports only retrieval of the embedded Method resources this way. The query parameter value must be a single-valued list and contain the "methods" string. For example, GET /restapis/{restapi_id}/resources/{resource_id}?embed=methods. public let embed: [String]? - /// The RestApi identifier for the resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// The identifier for the Resource resource. public let resourceId: String @@ -2099,11 +2277,11 @@ extension Apigateway { } public struct Deployments: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// The current page of any Deployment resources in the collection of deployment resources. + /// The current page of elements from this collection. public let items: [Deployment]? public let position: String? @@ -2119,11 +2297,11 @@ extension Apigateway { } public struct FlushStageCacheRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "stageName", location: .uri(locationName: "stage_name"), required: true, type: .string) ] - /// The API identifier of the stage to flush its cache. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the stage to flush its cache. public let stageName: String @@ -2140,16 +2318,16 @@ extension Apigateway { } public struct BasePathMapping: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "basePath", required: false, type: .string), AWSShapeMember(label: "restApiId", required: false, type: .string), AWSShapeMember(label: "stage", required: false, type: .string) ] /// The base path name that callers of the API must provide as part of the URL after the domain name. public let basePath: String? - /// The name of the API. + /// The string identifier of the associated RestApi. public let restApiId: String? - /// The name of the API's stage. + /// The name of the associated stage. public let stage: String? public init(basePath: String? = nil, restApiId: String? = nil, stage: String? = nil) { @@ -2166,7 +2344,7 @@ extension Apigateway { } public struct GetClientCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "clientCertificateId", location: .uri(locationName: "clientcertificate_id"), required: true, type: .string) ] /// The identifier of the ClientCertificate resource to be described. @@ -2182,14 +2360,14 @@ extension Apigateway { } public struct UpdateModelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "patchOperations", required: false, type: .list), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "modelName", location: .uri(locationName: "model_name"), required: true, type: .string) ] /// A list of update operations to be applied to the specified resource and in the order specified in this list. public let patchOperations: [PatchOperation]? - /// The RestApi identifier under which the model exists. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the model to update. public let modelName: String @@ -2208,12 +2386,12 @@ extension Apigateway { } public struct DocumentationPart: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "location", required: false, type: .structure), AWSShapeMember(label: "properties", required: false, type: .string) ] - /// The DocumentationPart identifier, generated by Amazon API Gateway when the DocumentationPart is created. + /// The DocumentationPart identifier, generated by API Gateway when the DocumentationPart is created. public let id: String? /// The location of the API entity to which the documentation applies. Valid fields depend on the targeted API entity type. All the valid location fields are not required. If not explicitly specified, a valid location field is treated as a wildcard and associated documentation content may be inherited by matching entities, unless overridden. public let location: DocumentationPartLocation? @@ -2234,11 +2412,11 @@ extension Apigateway { } public struct ClientCertificates: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// The current page of any ClientCertificate resources in the collection of ClientCertificate resources. + /// The current page of elements from this collection. public let items: [ClientCertificate]? public let position: String? @@ -2254,7 +2432,7 @@ extension Apigateway { } public struct DeleteBasePathMappingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "basePath", location: .uri(locationName: "base_path"), required: true, type: .string), AWSShapeMember(label: "domainName", location: .uri(locationName: "domain_name"), required: true, type: .string) ] @@ -2275,7 +2453,7 @@ extension Apigateway { } public struct UpdateUsageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "keyId", location: .uri(locationName: "keyId"), required: true, type: .string), AWSShapeMember(label: "usagePlanId", location: .uri(locationName: "usageplanId"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) @@ -2300,8 +2478,29 @@ extension Apigateway { } } + public struct AccessLogSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "destinationArn", required: false, type: .string), + AWSShapeMember(label: "format", required: false, type: .string) + ] + /// The ARN of the CloudWatch Logs log group to receive access logs. + public let destinationArn: String? + /// A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId. + public let format: String? + + public init(destinationArn: String? = nil, format: String? = nil) { + self.destinationArn = destinationArn + self.format = format + } + + private enum CodingKeys: String, CodingKey { + case destinationArn = "destinationArn" + case format = "format" + } + } + public struct CreateUsagePlanRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "apiStages", required: false, type: .list), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "description", required: false, type: .string), @@ -2336,85 +2535,97 @@ extension Apigateway { } } - public struct SdkType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "description", required: false, type: .string), - AWSShapeMember(label: "configurationProperties", required: false, type: .list), - AWSShapeMember(label: "id", required: false, type: .string), - AWSShapeMember(label: "friendlyName", required: false, type: .string) + public struct CanarySettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "stageVariableOverrides", required: false, type: .map), + AWSShapeMember(label: "deploymentId", required: false, type: .string), + AWSShapeMember(label: "useStageCache", required: false, type: .boolean), + AWSShapeMember(label: "percentTraffic", required: false, type: .double) ] - /// The description of an SdkType. - public let description: String? - /// A list of configuration properties of an SdkType. - public let configurationProperties: [SdkConfigurationProperty]? - /// The identifier of an SdkType instance. - public let id: String? - /// The user-friendly name of an SdkType instance. - public let friendlyName: String? + /// Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values. + public let stageVariableOverrides: [String: String]? + /// The ID of the canary deployment. + public let deploymentId: String? + /// A Boolean flag to indicate whether the canary deployment uses the stage cache or not. + public let useStageCache: Bool? + /// The percent (0-100) of traffic diverted to a canary deployment. + public let percentTraffic: Double? - public init(description: String? = nil, configurationProperties: [SdkConfigurationProperty]? = nil, id: String? = nil, friendlyName: String? = nil) { - self.description = description - self.configurationProperties = configurationProperties - self.id = id - self.friendlyName = friendlyName + public init(stageVariableOverrides: [String: String]? = nil, deploymentId: String? = nil, useStageCache: Bool? = nil, percentTraffic: Double? = nil) { + self.stageVariableOverrides = stageVariableOverrides + self.deploymentId = deploymentId + self.useStageCache = useStageCache + self.percentTraffic = percentTraffic } private enum CodingKeys: String, CodingKey { - case description = "description" - case configurationProperties = "configurationProperties" - case id = "id" - case friendlyName = "friendlyName" + case stageVariableOverrides = "stageVariableOverrides" + case deploymentId = "deploymentId" + case useStageCache = "useStageCache" + case percentTraffic = "percentTraffic" } } public struct Integration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "integrationResponses", required: false, type: .map), AWSShapeMember(label: "cacheNamespace", required: false, type: .string), AWSShapeMember(label: "uri", required: false, type: .string), + AWSShapeMember(label: "connectionId", required: false, type: .string), + AWSShapeMember(label: "cacheKeyParameters", required: false, type: .list), + AWSShapeMember(label: "connectionType", required: false, type: .enum), + AWSShapeMember(label: "timeoutInMillis", required: false, type: .integer), + AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "requestParameters", required: false, type: .map), AWSShapeMember(label: "httpMethod", required: false, type: .string), - AWSShapeMember(label: "cacheKeyParameters", required: false, type: .list), AWSShapeMember(label: "requestTemplates", required: false, type: .map), AWSShapeMember(label: "contentHandling", required: false, type: .enum), AWSShapeMember(label: "credentials", required: false, type: .string), - AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "passthroughBehavior", required: false, type: .string) ] /// Specifies the integration's responses. Example: Get integration responses of a method Request GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} Response The successful response returns 200 OK status and a payload as follows: { "_links": { "curies": { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" } Creating an API public let integrationResponses: [String: IntegrationResponse]? /// Specifies the integration's cache namespace. public let cacheNamespace: String? - /// Specifies the integration's Uniform Resource Identifier (URI). For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification. For AWS integrations, the URI should be of the form arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}. Region, subdomain and service are used to determine the right endpoint. For AWS services that use the Action= query string parameter, service_api should be a valid action for the desired service. For RESTful AWS service APIs, path is used to indicate that the remaining substring in the URI should be treated as the path to the resource, including the initial /. + /// Specifies Uniform Resource Identifier (URI) of the integration endpoint. For HTTP or HTTP_PROXY integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification, for either standard integration, where connectionType is not VPC_LINK, or private integration, where connectionType is VPC_LINK. For a private HTTP integration, the URI is not used for routing. For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the name of the integrated AWS service (e.g., s3); and {subdomain} is a designated subdomain supported by certain AWS service for fast host-name lookup. action can be used for an AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api} refers to a supported action {name} plus any required input parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing service_api refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of GetObject, the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key} public let uri: String? + /// The (id) of the VpcLink used for the integration when connectionType=VPC_LINK and undefined, otherwise. + public let connectionId: String? + /// Specifies the integration's cache key parameters. + public let cacheKeyParameters: [String]? + /// The type of the network connection to the integration endpoint. The valid value is INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and an network load balancer in a VPC. The default value is INTERNET. + public let connectionType: ConnectionType? + /// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds. + public let timeoutInMillis: Int32? + /// Specifies an API method integration type. The valid value is one of the following: AWS: for integrating the API method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. AWS_PROXY: for integrating the API method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as the Lambda proxy integration. HTTP: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC. This integration is also referred to as the HTTP custom integration. HTTP_PROXY: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC, with the client request passed through as-is. This is also referred to as the HTTP proxy integration. MOCK: for integrating the API method request with API Gateway as a "loop-back" endpoint without invoking any backend. For the HTTP and HTTP proxy integrations, each integration can specify a protocol (http/https), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. An HTTP or HTTP proxy integration with a connectionType of VPC_LINK is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. + public let `type`: IntegrationType? /// A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name must be a valid and unique method request parameter name. public let requestParameters: [String: String]? /// Specifies the integration's HTTP method type. public let httpMethod: String? - /// Specifies the integration's cache key parameters. - public let cacheKeyParameters: [String]? /// Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. public let requestTemplates: [String: String]? /// Specifies how to handle request payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded string. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors is configured to support payload pass-through. public let contentHandling: ContentHandlingStrategy? - /// Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::\*:user/\*. To use resource-based permissions on supported AWS services, specify null. + /// Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::\*:user/\*. To use resource-based permissions on supported AWS services, specify null. public let credentials: String? - /// Specifies the integration's type. The valid value is HTTP for integrating with an HTTP back end, AWS for any AWS service endpoints, MOCK for testing without actually invoking the back end, HTTP_PROXY for integrating with the HTTP proxy integration, or AWS_PROXY for integrating with the Lambda proxy integration type. - public let `type`: IntegrationType? - /// Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in requestTemplates. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. WHEN_NO_MATCH passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. WHEN_NO_TEMPLATES passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response. NEVER rejects the method request with an HTTP 415 Unsupported Media Type response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. + /// Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in requestTemplates. The valid value is one of the following: WHEN_NO_MATCH: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. WHEN_NO_TEMPLATES: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response. NEVER: rejects the method request with an HTTP 415 Unsupported Media Type response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. public let passthroughBehavior: String? - public init(integrationResponses: [String: IntegrationResponse]? = nil, cacheNamespace: String? = nil, uri: String? = nil, requestParameters: [String: String]? = nil, httpMethod: String? = nil, cacheKeyParameters: [String]? = nil, requestTemplates: [String: String]? = nil, contentHandling: ContentHandlingStrategy? = nil, credentials: String? = nil, type: IntegrationType? = nil, passthroughBehavior: String? = nil) { + public init(integrationResponses: [String: IntegrationResponse]? = nil, cacheNamespace: String? = nil, uri: String? = nil, connectionId: String? = nil, cacheKeyParameters: [String]? = nil, connectionType: ConnectionType? = nil, timeoutInMillis: Int32? = nil, type: IntegrationType? = nil, requestParameters: [String: String]? = nil, httpMethod: String? = nil, requestTemplates: [String: String]? = nil, contentHandling: ContentHandlingStrategy? = nil, credentials: String? = nil, passthroughBehavior: String? = nil) { self.integrationResponses = integrationResponses self.cacheNamespace = cacheNamespace self.uri = uri + self.connectionId = connectionId + self.cacheKeyParameters = cacheKeyParameters + self.connectionType = connectionType + self.timeoutInMillis = timeoutInMillis + self.`type` = `type` self.requestParameters = requestParameters self.httpMethod = httpMethod - self.cacheKeyParameters = cacheKeyParameters self.requestTemplates = requestTemplates self.contentHandling = contentHandling self.credentials = credentials - self.`type` = `type` self.passthroughBehavior = passthroughBehavior } @@ -2422,19 +2633,53 @@ extension Apigateway { case integrationResponses = "integrationResponses" case cacheNamespace = "cacheNamespace" case uri = "uri" + case connectionId = "connectionId" + case cacheKeyParameters = "cacheKeyParameters" + case connectionType = "connectionType" + case timeoutInMillis = "timeoutInMillis" + case `type` = "type" case requestParameters = "requestParameters" case httpMethod = "httpMethod" - case cacheKeyParameters = "cacheKeyParameters" case requestTemplates = "requestTemplates" case contentHandling = "contentHandling" case credentials = "credentials" - case `type` = "type" case passthroughBehavior = "passthroughBehavior" } } + public struct SdkType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "configurationProperties", required: false, type: .list), + AWSShapeMember(label: "id", required: false, type: .string), + AWSShapeMember(label: "friendlyName", required: false, type: .string) + ] + /// The description of an SdkType. + public let description: String? + /// A list of configuration properties of an SdkType. + public let configurationProperties: [SdkConfigurationProperty]? + /// The identifier of an SdkType instance. + public let id: String? + /// The user-friendly name of an SdkType instance. + public let friendlyName: String? + + public init(description: String? = nil, configurationProperties: [SdkConfigurationProperty]? = nil, id: String? = nil, friendlyName: String? = nil) { + self.description = description + self.configurationProperties = configurationProperties + self.id = id + self.friendlyName = friendlyName + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case configurationProperties = "configurationProperties" + case id = "id" + case friendlyName = "friendlyName" + } + } + public struct Usage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "values"), required: false, type: .map), AWSShapeMember(label: "position", required: false, type: .string), AWSShapeMember(label: "startDate", required: false, type: .string), @@ -2469,7 +2714,7 @@ extension Apigateway { } public struct Deployment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "apiSummary", required: false, type: .map), AWSShapeMember(label: "id", required: false, type: .string), @@ -2502,13 +2747,13 @@ extension Apigateway { public struct ImportDocumentationPartsRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "mode", location: .querystring(locationName: "mode"), required: false, type: .enum), AWSShapeMember(label: "failOnWarnings", location: .querystring(locationName: "failonwarnings"), required: false, type: .boolean), AWSShapeMember(label: "body", required: true, type: .blob) ] - /// [Required] The identifier of an API of the to-be-imported documentation parts. + /// [Required] The string identifier of the associated RestApi. public let restApiId: String /// A query parameter to indicate whether to overwrite (OVERWRITE) any existing DocumentationParts definition or to merge (MERGE) the new definition into the existing one. The default value is MERGE. public let mode: PutMode? @@ -2532,8 +2777,51 @@ extension Apigateway { } } + public enum LocationStatusType: String, CustomStringConvertible, Codable { + case documented = "DOCUMENTED" + case undocumented = "UNDOCUMENTED" + public var description: String { return self.rawValue } + } + + public struct EndpointConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "types", required: false, type: .list) + ] + /// A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). For an edge-optimized API and its custom domain name, the endpoint type is "EDGE". For a regional API and its custom domain name, the endpoint type is REGIONAL. + public let types: [EndpointType]? + + public init(types: [EndpointType]? = nil) { + self.types = types + } + + private enum CodingKeys: String, CodingKey { + case types = "types" + } + } + + public struct UpdateVpcLinkRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "vpcLinkId", location: .uri(locationName: "vpclink_id"), required: true, type: .string), + AWSShapeMember(label: "patchOperations", required: false, type: .list) + ] + /// [Required] The identifier of the VpcLink. It is used in an Integration to reference this VpcLink. + public let vpcLinkId: String + /// A list of update operations to be applied to the specified resource and in the order specified in this list. + public let patchOperations: [PatchOperation]? + + public init(vpcLinkId: String, patchOperations: [PatchOperation]? = nil) { + self.vpcLinkId = vpcLinkId + self.patchOperations = patchOperations + } + + private enum CodingKeys: String, CodingKey { + case vpcLinkId = "vpclink_id" + case patchOperations = "patchOperations" + } + } + public struct ClientCertificate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "clientCertificateId", required: false, type: .string), AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "expirationDate", required: false, type: .timestamp), @@ -2569,11 +2857,11 @@ extension Apigateway { } public struct Authorizers: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// Gets the current list of Authorizer resources in the collection. + /// The current page of elements from this collection. public let items: [Authorizer]? public let position: String? @@ -2588,40 +2876,40 @@ extension Apigateway { } } - public struct DocumentationVersion: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "description", required: false, type: .string), - AWSShapeMember(label: "version", required: false, type: .string), - AWSShapeMember(label: "createdDate", required: false, type: .timestamp) + public struct UpdateGatewayResponseRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "responseType", location: .uri(locationName: "response_type"), required: true, type: .enum), + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), + AWSShapeMember(label: "patchOperations", required: false, type: .list) ] - /// The description of the API documentation snapshot. - public let description: String? - /// The version identifier of the API documentation snapshot. - public let version: String? - /// The date when the API documentation snapshot is created. - public let createdDate: TimeStamp? + /// The response type of the associated GatewayResponse. Valid values are ACCESS_DENIEDAPI_CONFIGURATION_ERRORAUTHORIZER_FAILURE AUTHORIZER_CONFIGURATION_ERRORBAD_REQUEST_PARAMETERSBAD_REQUEST_BODYDEFAULT_4XXDEFAULT_5XXEXPIRED_TOKENINVALID_SIGNATUREINTEGRATION_FAILUREINTEGRATION_TIMEOUTINVALID_API_KEYMISSING_AUTHENTICATION_TOKEN QUOTA_EXCEEDEDREQUEST_TOO_LARGERESOURCE_NOT_FOUNDTHROTTLEDUNAUTHORIZEDUNSUPPORTED_MEDIA_TYPES + public let responseType: GatewayResponseType + /// The string identifier of the associated RestApi. + public let restApiId: String + /// A list of update operations to be applied to the specified resource and in the order specified in this list. + public let patchOperations: [PatchOperation]? - public init(description: String? = nil, version: String? = nil, createdDate: TimeStamp? = nil) { - self.description = description - self.version = version - self.createdDate = createdDate + public init(responseType: GatewayResponseType, restApiId: String, patchOperations: [PatchOperation]? = nil) { + self.responseType = responseType + self.restApiId = restApiId + self.patchOperations = patchOperations } private enum CodingKeys: String, CodingKey { - case description = "description" - case version = "version" - case createdDate = "createdDate" + case responseType = "response_type" + case restApiId = "restapi_id" + case patchOperations = "patchOperations" } } public struct CreateBasePathMappingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", required: true, type: .string), AWSShapeMember(label: "domainName", location: .uri(locationName: "domain_name"), required: true, type: .string), AWSShapeMember(label: "basePath", required: false, type: .string), AWSShapeMember(label: "stage", required: false, type: .string) ] - /// The name of the API that you want to apply this mapping to. + /// The string identifier of the associated RestApi. public let restApiId: String /// The domain name of the BasePathMapping resource to create. public let domainName: String @@ -2646,7 +2934,7 @@ extension Apigateway { } public struct UpdateApiKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "apiKey", location: .uri(locationName: "api_Key"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] @@ -2666,8 +2954,34 @@ extension Apigateway { } } - public struct GetRestApiRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DocumentationVersion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "version", required: false, type: .string), + AWSShapeMember(label: "createdDate", required: false, type: .timestamp) + ] + /// The description of the API documentation snapshot. + public let description: String? + /// The version identifier of the API documentation snapshot. + public let version: String? + /// The date when the API documentation snapshot is created. + public let createdDate: TimeStamp? + + public init(description: String? = nil, version: String? = nil, createdDate: TimeStamp? = nil) { + self.description = description + self.version = version + self.createdDate = createdDate + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case version = "version" + case createdDate = "createdDate" + } + } + + public struct GetRestApiRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) ] /// The identifier of the RestApi resource. @@ -2683,7 +2997,7 @@ extension Apigateway { } public struct Template: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "value", required: false, type: .string) ] /// The Apache Velocity Template Language (VTL) template content used for the template resource. @@ -2699,7 +3013,7 @@ extension Apigateway { } public struct GetApiKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "includeValue", location: .querystring(locationName: "includeValue"), required: false, type: .boolean), AWSShapeMember(label: "apiKey", location: .uri(locationName: "api_Key"), required: true, type: .string) ] @@ -2720,12 +3034,12 @@ extension Apigateway { } public struct CreateDocumentationPartRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "location", required: true, type: .structure), AWSShapeMember(label: "properties", required: true, type: .string) ] - /// [Required] The identifier of an API of the to-be-created documentation part. + /// [Required] The string identifier of the associated RestApi. public let restApiId: String /// [Required] The location of the targeted API entity of the to-be-created documentation part. public let location: DocumentationPartLocation @@ -2746,7 +3060,7 @@ extension Apigateway { } public struct ThrottleSettings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "burstLimit", required: false, type: .integer), AWSShapeMember(label: "rateLimit", required: false, type: .double) ] @@ -2767,13 +3081,13 @@ extension Apigateway { } public struct DeleteIntegrationResponseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "statusCode", location: .uri(locationName: "status_code"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string) ] - /// Specifies a delete integration response request's API identifier. + /// The string identifier of the associated RestApi. public let restApiId: String /// Specifies a delete integration response request's status code. public let statusCode: String @@ -2800,7 +3114,7 @@ extension Apigateway { public struct SdkResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "contentType", location: .header(locationName: "Content-Type"), required: false, type: .string), AWSShapeMember(label: "contentDisposition", location: .header(locationName: "Content-Disposition"), required: false, type: .string), AWSShapeMember(label: "body", required: false, type: .blob) @@ -2826,12 +3140,12 @@ extension Apigateway { } public struct UpdateResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] - /// The RestApi identifier for the Resource resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// The identifier of the Resource resource. public let resourceId: String @@ -2851,14 +3165,40 @@ extension Apigateway { } } + public struct GetGatewayResponsesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), + AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) + ] + /// The current pagination position in the paged result set. The GatewayResponse collection does not support pagination and the position does not apply here. + public let position: String? + /// The string identifier of the associated RestApi. + public let restApiId: String + /// The maximum number of returned results per page. The GatewayResponses collection does not support pagination and the limit does not apply here. + public let limit: Int32? + + public init(position: String? = nil, restApiId: String, limit: Int32? = nil) { + self.position = position + self.restApiId = restApiId + self.limit = limit + } + + private enum CodingKeys: String, CodingKey { + case position = "position" + case restApiId = "restapi_id" + case limit = "limit" + } + } + public struct UpdateIntegrationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string) ] - /// Represents an update integration request's API identifier. + /// The string identifier of the associated RestApi. public let restApiId: String /// A list of update operations to be applied to the specified resource and in the order specified in this list. public let patchOperations: [PatchOperation]? @@ -2883,11 +3223,11 @@ extension Apigateway { } public struct UsagePlanKeys: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// Gets the current item of the usage plan keys collection. + /// The current page of elements from this collection. public let items: [UsagePlanKey]? public let position: String? @@ -2902,8 +3242,40 @@ extension Apigateway { } } + public enum ConnectionType: String, CustomStringConvertible, Codable { + case internet = "INTERNET" + case vpcLink = "VPC_LINK" + public var description: String { return self.rawValue } + } + + public struct CreateVpcLinkRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "name", required: true, type: .string), + AWSShapeMember(label: "targetArns", required: true, type: .list) + ] + /// The description of the VPC link. + public let description: String? + /// [Required] The name used to label and identify the VPC link. + public let name: String + /// [Required] The ARNs of network load balancers of the VPC targeted by the VPC link. The network load balancers must be owned by the same AWS account of the API owner. + public let targetArns: [String] + + public init(description: String? = nil, name: String, targetArns: [String]) { + self.description = description + self.name = name + self.targetArns = targetArns + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case name = "name" + case targetArns = "targetArns" + } + } + public struct ApiStage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "apiId", required: false, type: .string), AWSShapeMember(label: "stage", required: false, type: .string) ] @@ -2923,49 +3295,14 @@ extension Apigateway { } } - public struct CreateResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), - AWSShapeMember(label: "pathPart", required: true, type: .string), - AWSShapeMember(label: "parentId", location: .uri(locationName: "parent_id"), required: true, type: .string) - ] - /// The identifier of the RestApi for the resource. - public let restApiId: String - /// The last path segment for this resource. - public let pathPart: String - /// The parent resource's identifier. - public let parentId: String - - public init(restApiId: String, pathPart: String, parentId: String) { - self.restApiId = restApiId - self.pathPart = pathPart - self.parentId = parentId - } - - private enum CodingKeys: String, CodingKey { - case restApiId = "restapi_id" - case pathPart = "pathPart" - case parentId = "parent_id" - } - } - - public enum IntegrationType: String, CustomStringConvertible, Codable { - case http = "HTTP" - case aws = "AWS" - case mock = "MOCK" - case httpProxy = "HTTP_PROXY" - case awsProxy = "AWS_PROXY" - public var description: String { return self.rawValue } - } - public struct GetMethodResponseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "statusCode", location: .uri(locationName: "status_code"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string) ] - /// The RestApi identifier for the MethodResponse resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// The status code for the MethodResponse resource. public let statusCode: String @@ -2989,75 +3326,125 @@ extension Apigateway { } } - public struct GetDeploymentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "deploymentId", location: .uri(locationName: "deployment_id"), required: true, type: .string), - AWSShapeMember(label: "embed", location: .querystring(locationName: "embed"), required: false, type: .list), - AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) - ] - /// The identifier of the Deployment resource to get information about. - public let deploymentId: String - /// A query parameter to retrieve the specified embedded resources of the returned Deployment resource in the response. In a REST API call, this embed parameter value is a list of comma-separated strings, as in GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=var1,var2. The SDK and other platform-dependent libraries might use a different format for the list. Currently, this request supports only retrieval of the embedded API summary this way. Hence, the parameter value must be a single-valued list containing only the "apisummary" string. For example, GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=apisummary. - public let embed: [String]? - /// The identifier of the RestApi resource for the Deployment resource to get information about. - public let restApiId: String - - public init(deploymentId: String, embed: [String]? = nil, restApiId: String) { - self.deploymentId = deploymentId - self.embed = embed - self.restApiId = restApiId - } - - private enum CodingKeys: String, CodingKey { - case deploymentId = "deployment_id" - case embed = "embed" - case restApiId = "restapi_id" - } + public enum IntegrationType: String, CustomStringConvertible, Codable { + case http = "HTTP" + case aws = "AWS" + case mock = "MOCK" + case httpProxy = "HTTP_PROXY" + case awsProxy = "AWS_PROXY" + public var description: String { return self.rawValue } } public struct GetDocumentationPartsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), - AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer), AWSShapeMember(label: "path", location: .querystring(locationName: "path"), required: false, type: .string), + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), + AWSShapeMember(label: "locationStatus", location: .querystring(locationName: "locationStatus"), required: false, type: .enum), AWSShapeMember(label: "nameQuery", location: .querystring(locationName: "name"), required: false, type: .string), AWSShapeMember(label: "type", location: .querystring(locationName: "type"), required: false, type: .enum) ] /// The current pagination position in the paged result set. public let position: String? - /// [Required] The identifier of the API of the to-be-retrieved documentation parts. - public let restApiId: String /// The maximum number of returned results per page. public let limit: Int32? /// The path of API entities of the to-be-retrieved documentation parts. public let path: String? + /// [Required] The string identifier of the associated RestApi. + public let restApiId: String + /// The status of the API documentation parts to retrieve. Valid values are DOCUMENTED for retrieving DocumentationPart resources with content and UNDOCUMENTED for DocumentationPart resources without content. + public let locationStatus: LocationStatusType? /// The name of API entities of the to-be-retrieved documentation parts. public let nameQuery: String? /// The type of API entities of the to-be-retrieved documentation parts. public let `type`: DocumentationPartType? - public init(position: String? = nil, restApiId: String, limit: Int32? = nil, path: String? = nil, nameQuery: String? = nil, type: DocumentationPartType? = nil) { + public init(position: String? = nil, limit: Int32? = nil, path: String? = nil, restApiId: String, locationStatus: LocationStatusType? = nil, nameQuery: String? = nil, type: DocumentationPartType? = nil) { self.position = position - self.restApiId = restApiId self.limit = limit self.path = path + self.restApiId = restApiId + self.locationStatus = locationStatus self.nameQuery = nameQuery self.`type` = `type` } private enum CodingKeys: String, CodingKey { case position = "position" - case restApiId = "restapi_id" case limit = "limit" case path = "path" + case restApiId = "restapi_id" + case locationStatus = "locationStatus" case nameQuery = "name" case `type` = "type" } } + public struct PutGatewayResponseRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), + AWSShapeMember(label: "responseTemplates", required: false, type: .map), + AWSShapeMember(label: "statusCode", required: false, type: .string), + AWSShapeMember(label: "responseParameters", required: false, type: .map), + AWSShapeMember(label: "responseType", location: .uri(locationName: "response_type"), required: true, type: .enum) + ] + /// The string identifier of the associated RestApi. + public let restApiId: String + /// Response templates of the GatewayResponse as a string-to-string map of key-value pairs. + public let responseTemplates: [String: String]? + /// The HTTP status code of the GatewayResponse. + public let statusCode: String? + /// Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs. + public let responseParameters: [String: String]? + /// The response type of the associated GatewayResponse. Valid values are ACCESS_DENIEDAPI_CONFIGURATION_ERRORAUTHORIZER_FAILURE AUTHORIZER_CONFIGURATION_ERRORBAD_REQUEST_PARAMETERSBAD_REQUEST_BODYDEFAULT_4XXDEFAULT_5XXEXPIRED_TOKENINVALID_SIGNATUREINTEGRATION_FAILUREINTEGRATION_TIMEOUTINVALID_API_KEYMISSING_AUTHENTICATION_TOKEN QUOTA_EXCEEDEDREQUEST_TOO_LARGERESOURCE_NOT_FOUNDTHROTTLEDUNAUTHORIZEDUNSUPPORTED_MEDIA_TYPES + public let responseType: GatewayResponseType + + public init(restApiId: String, responseTemplates: [String: String]? = nil, statusCode: String? = nil, responseParameters: [String: String]? = nil, responseType: GatewayResponseType) { + self.restApiId = restApiId + self.responseTemplates = responseTemplates + self.statusCode = statusCode + self.responseParameters = responseParameters + self.responseType = responseType + } + + private enum CodingKeys: String, CodingKey { + case restApiId = "restapi_id" + case responseTemplates = "responseTemplates" + case statusCode = "statusCode" + case responseParameters = "responseParameters" + case responseType = "response_type" + } + } + + public struct CreateResourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), + AWSShapeMember(label: "pathPart", required: true, type: .string), + AWSShapeMember(label: "parentId", location: .uri(locationName: "parent_id"), required: true, type: .string) + ] + /// The string identifier of the associated RestApi. + public let restApiId: String + /// The last path segment for this resource. + public let pathPart: String + /// The parent resource's identifier. + public let parentId: String + + public init(restApiId: String, pathPart: String, parentId: String) { + self.restApiId = restApiId + self.pathPart = pathPart + self.parentId = parentId + } + + private enum CodingKeys: String, CodingKey { + case restApiId = "restapi_id" + case pathPart = "pathPart" + case parentId = "parent_id" + } + } + public struct UpdateAccountRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "patchOperations", required: false, type: .list) ] /// A list of update operations to be applied to the specified resource and in the order specified in this list. @@ -3073,7 +3460,7 @@ extension Apigateway { } public struct GenerateClientCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string) ] /// The description of the ClientCertificate. @@ -3088,12 +3475,38 @@ extension Apigateway { } } + public struct GetDeploymentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "deploymentId", location: .uri(locationName: "deployment_id"), required: true, type: .string), + AWSShapeMember(label: "embed", location: .querystring(locationName: "embed"), required: false, type: .list), + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) + ] + /// The identifier of the Deployment resource to get information about. + public let deploymentId: String + /// A query parameter to retrieve the specified embedded resources of the returned Deployment resource in the response. In a REST API call, this embed parameter value is a list of comma-separated strings, as in GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=var1,var2. The SDK and other platform-dependent libraries might use a different format for the list. Currently, this request supports only retrieval of the embedded API summary this way. Hence, the parameter value must be a single-valued list containing only the "apisummary" string. For example, GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=apisummary. + public let embed: [String]? + /// The string identifier of the associated RestApi. + public let restApiId: String + + public init(deploymentId: String, embed: [String]? = nil, restApiId: String) { + self.deploymentId = deploymentId + self.embed = embed + self.restApiId = restApiId + } + + private enum CodingKeys: String, CodingKey { + case deploymentId = "deployment_id" + case embed = "embed" + case restApiId = "restapi_id" + } + } + public struct DomainNames: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// The current page of any DomainName resources in the collection of DomainName resources. + /// The current page of elements from this collection. public let items: [DomainName]? public let position: String? @@ -3124,49 +3537,39 @@ extension Apigateway { public var description: String { return self.rawValue } } - public struct PutMethodResponseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct GetResourcesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), + AWSShapeMember(label: "embed", location: .querystring(locationName: "embed"), required: false, type: .list), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), - AWSShapeMember(label: "statusCode", location: .uri(locationName: "status_code"), required: true, type: .string), - AWSShapeMember(label: "responseModels", required: false, type: .map), - AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), - AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string), - AWSShapeMember(label: "responseParameters", required: false, type: .map) + AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] - /// The RestApi identifier for the Method resource. + /// The current pagination position in the paged result set. + public let position: String? + /// A query parameter used to retrieve the specified resources embedded in the returned Resources resource in the response. This embed parameter value is a list of comma-separated strings. Currently, the request supports only retrieval of the embedded Method resources this way. The query parameter value must be a single-valued list and contain the "methods" string. For example, GET /restapis/{restapi_id}/resources?embed=methods. + public let embed: [String]? + /// The string identifier of the associated RestApi. public let restApiId: String - /// The method response's status code. - public let statusCode: String - /// Specifies the Model resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a Model name as the value. - public let responseModels: [String: String]? - /// The Resource identifier for the Method resource. - public let resourceId: String - /// The HTTP verb of the Method resource. - public let httpMethod: String - /// A key-value map specifying required or optional response parameters that Amazon API Gateway can send back to the caller. A key defines a method response header name and the associated value is a Boolean flag indicating whether the method response parameter is required or not. The method response header names must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.) - public let responseParameters: [String: Bool]? + /// The maximum number of returned results per page. The value is 25 by default and could be between 1 - 500. + public let limit: Int32? - public init(restApiId: String, statusCode: String, responseModels: [String: String]? = nil, resourceId: String, httpMethod: String, responseParameters: [String: Bool]? = nil) { + public init(position: String? = nil, embed: [String]? = nil, restApiId: String, limit: Int32? = nil) { + self.position = position + self.embed = embed self.restApiId = restApiId - self.statusCode = statusCode - self.responseModels = responseModels - self.resourceId = resourceId - self.httpMethod = httpMethod - self.responseParameters = responseParameters + self.limit = limit } private enum CodingKeys: String, CodingKey { + case position = "position" + case embed = "embed" case restApiId = "restapi_id" - case statusCode = "status_code" - case responseModels = "responseModels" - case resourceId = "resource_id" - case httpMethod = "http_method" - case responseParameters = "responseParameters" + case limit = "limit" } } public struct UsagePlan: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "apiStages", required: false, type: .list), AWSShapeMember(label: "quota", required: false, type: .structure), AWSShapeMember(label: "name", required: false, type: .string), @@ -3211,43 +3614,13 @@ extension Apigateway { } } - public struct GetResourcesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), - AWSShapeMember(label: "embed", location: .querystring(locationName: "embed"), required: false, type: .list), - AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), - AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) - ] - /// The current pagination position in the paged result set. - public let position: String? - /// A query parameter used to retrieve the specified resources embedded in the returned Resources resource in the response. This embed parameter value is a list of comma-separated strings. Currently, the request supports only retrieval of the embedded Method resources this way. The query parameter value must be a single-valued list and contain the "methods" string. For example, GET /restapis/{restapi_id}/resources?embed=methods. - public let embed: [String]? - /// The RestApi identifier for the Resource. - public let restApiId: String - /// The maximum number of returned results per page. The value is 25 by default and could be between 1 - 500. - public let limit: Int32? - - public init(position: String? = nil, embed: [String]? = nil, restApiId: String, limit: Int32? = nil) { - self.position = position - self.embed = embed - self.restApiId = restApiId - self.limit = limit - } - - private enum CodingKeys: String, CodingKey { - case position = "position" - case embed = "embed" - case restApiId = "restapi_id" - case limit = "limit" - } - } - public struct RestApi: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "binaryMediaTypes", required: false, type: .list), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), + AWSShapeMember(label: "endpointConfiguration", required: false, type: .structure), AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "version", required: false, type: .string), AWSShapeMember(label: "warnings", required: false, type: .list) @@ -3256,10 +3629,12 @@ extension Apigateway { public let binaryMediaTypes: [String]? /// The API's name. public let name: String? - /// The API's identifier. This identifier is unique across all of your APIs in Amazon API Gateway. + /// The API's identifier. This identifier is unique across all of your APIs in API Gateway. public let id: String? /// The timestamp when the API was created. public let createdDate: TimeStamp? + /// The endpoint configuration of this RestApi showing the endpoint types of the API. + public let endpointConfiguration: EndpointConfiguration? /// The API's description. public let description: String? /// A version identifier for the API. @@ -3267,11 +3642,12 @@ extension Apigateway { /// The warning messages reported when failonwarnings is turned on during API import. public let warnings: [String]? - public init(binaryMediaTypes: [String]? = nil, name: String? = nil, id: String? = nil, createdDate: TimeStamp? = nil, description: String? = nil, version: String? = nil, warnings: [String]? = nil) { + public init(binaryMediaTypes: [String]? = nil, name: String? = nil, id: String? = nil, createdDate: TimeStamp? = nil, endpointConfiguration: EndpointConfiguration? = nil, description: String? = nil, version: String? = nil, warnings: [String]? = nil) { self.binaryMediaTypes = binaryMediaTypes self.name = name self.id = id self.createdDate = createdDate + self.endpointConfiguration = endpointConfiguration self.description = description self.version = version self.warnings = warnings @@ -3282,14 +3658,56 @@ extension Apigateway { case name = "name" case id = "id" case createdDate = "createdDate" + case endpointConfiguration = "endpointConfiguration" case description = "description" case version = "version" case warnings = "warnings" } } + public struct PutMethodResponseRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), + AWSShapeMember(label: "statusCode", location: .uri(locationName: "status_code"), required: true, type: .string), + AWSShapeMember(label: "responseModels", required: false, type: .map), + AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), + AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string), + AWSShapeMember(label: "responseParameters", required: false, type: .map) + ] + /// The string identifier of the associated RestApi. + public let restApiId: String + /// The method response's status code. + public let statusCode: String + /// Specifies the Model resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a Model name as the value. + public let responseModels: [String: String]? + /// The Resource identifier for the Method resource. + public let resourceId: String + /// The HTTP verb of the Method resource. + public let httpMethod: String + /// A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header name and the associated value is a Boolean flag indicating whether the method response parameter is required or not. The method response header names must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.) + public let responseParameters: [String: Bool]? + + public init(restApiId: String, statusCode: String, responseModels: [String: String]? = nil, resourceId: String, httpMethod: String, responseParameters: [String: Bool]? = nil) { + self.restApiId = restApiId + self.statusCode = statusCode + self.responseModels = responseModels + self.resourceId = resourceId + self.httpMethod = httpMethod + self.responseParameters = responseParameters + } + + private enum CodingKeys: String, CodingKey { + case restApiId = "restapi_id" + case statusCode = "status_code" + case responseModels = "responseModels" + case resourceId = "resource_id" + case httpMethod = "http_method" + case responseParameters = "responseParameters" + } + } + public struct IntegrationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "responseTemplates", required: false, type: .map), AWSShapeMember(label: "contentHandling", required: false, type: .enum), AWSShapeMember(label: "statusCode", required: false, type: .string), @@ -3324,8 +3742,69 @@ extension Apigateway { } } + public struct VpcLink: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "targetArns", required: false, type: .list), + AWSShapeMember(label: "id", required: false, type: .string), + AWSShapeMember(label: "statusMessage", required: false, type: .string) + ] + /// The description of the VPC link. + public let description: String? + /// The status of the VPC link. The valid values are AVAILABLE, PENDING, DELETING, or FAILED. Deploying an API will wait if the status is PENDING and will fail if the status is DELETING. + public let status: VpcLinkStatus? + /// The name used to label and identify the VPC link. + public let name: String? + /// The ARNs of network load balancers of the VPC targeted by the VPC link. The network load balancers must be owned by the same AWS account of the API owner. + public let targetArns: [String]? + /// The identifier of the VpcLink. It is used in an Integration to reference this VpcLink. + public let id: String? + /// A description about the VPC link status. + public let statusMessage: String? + + public init(description: String? = nil, status: VpcLinkStatus? = nil, name: String? = nil, targetArns: [String]? = nil, id: String? = nil, statusMessage: String? = nil) { + self.description = description + self.status = status + self.name = name + self.targetArns = targetArns + self.id = id + self.statusMessage = statusMessage + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case status = "status" + case name = "name" + case targetArns = "targetArns" + case id = "id" + case statusMessage = "statusMessage" + } + } + + public struct GatewayResponses: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), + AWSShapeMember(label: "position", required: false, type: .string) + ] + /// Returns the entire collection, because of no pagination support. + public let items: [GatewayResponse]? + public let position: String? + + public init(items: [GatewayResponse]? = nil, position: String? = nil) { + self.items = items + self.position = position + } + + private enum CodingKeys: String, CodingKey { + case items = "item" + case position = "position" + } + } + public struct Account: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "features", required: false, type: .list), AWSShapeMember(label: "apiKeyVersion", required: false, type: .string), AWSShapeMember(label: "throttleSettings", required: false, type: .structure), @@ -3356,40 +3835,40 @@ extension Apigateway { } public struct CreateAuthorizerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "identityValidationExpression", required: false, type: .string), AWSShapeMember(label: "authorizerResultTtlInSeconds", required: false, type: .integer), AWSShapeMember(label: "authorizerUri", required: false, type: .string), AWSShapeMember(label: "authorizerCredentials", required: false, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), - AWSShapeMember(label: "identitySource", required: true, type: .string), + AWSShapeMember(label: "identitySource", required: false, type: .string), AWSShapeMember(label: "authType", required: false, type: .string), AWSShapeMember(label: "providerARNs", required: false, type: .list), AWSShapeMember(label: "type", required: true, type: .enum) ] /// [Required] The name of the authorizer. public let name: String - /// A validation expression for the incoming identity. + /// A validation expression for the incoming identity token. For TOKEN authorizers, this value is a regular expression. API Gateway will match the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the REQUEST authorizer. public let identityValidationExpression: String? - /// The TTL of cached authorizer results. + /// The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour. public let authorizerResultTtlInSeconds: Int32? - /// [Required] Specifies the authorizer's Uniform Resource Identifier (URI). + /// Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api}, where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. public let authorizerUri: String? - /// Specifies the credentials required for the authorizer, if any. + /// Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. public let authorizerCredentials: String? - /// The RestApi identifier under which the Authorizer will be created. + /// The string identifier of the associated RestApi. public let restApiId: String - /// [Required] The source of the identity in an incoming request. - public let identitySource: String - /// Optional customer-defined field, used in Swagger imports/exports. Has no functional impact. + /// The identity source for which authorization is requested. For a TOKEN authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is Auth, the header mapping expression is method.request.header.Auth.For the REQUEST authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an Auth header, a Name query string parameter are defined as identity sources, this value is method.request.header.Auth, method.request.querystring.Name. These parameters will be used to derive the authorization caching key and to perform runtime validation of the REQUEST authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional.For a COGNITO_USER_POOLS authorizer, this property is not used. + public let identitySource: String? + /// Optional customer-defined field, used in Swagger imports and exports without functional impact. public let authType: String? - /// A list of the Cognito Your User Pool authorizer's provider ARNs. + /// A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer. Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}. For a TOKEN or REQUEST authorizer, this is not defined. public let providerARNs: [String]? - /// [Required] The type of the authorizer. + /// [Required] The authorizer type. Valid values are TOKEN for a Lambda function using a single authorization token submitted in a custom header, REQUEST for a Lambda function using incoming request parameters, and COGNITO_USER_POOLS for using an Amazon Cognito user pool. public let `type`: AuthorizerType - public init(name: String, identityValidationExpression: String? = nil, authorizerResultTtlInSeconds: Int32? = nil, authorizerUri: String? = nil, authorizerCredentials: String? = nil, restApiId: String, identitySource: String, authType: String? = nil, providerARNs: [String]? = nil, type: AuthorizerType) { + public init(name: String, identityValidationExpression: String? = nil, authorizerResultTtlInSeconds: Int32? = nil, authorizerUri: String? = nil, authorizerCredentials: String? = nil, restApiId: String, identitySource: String? = nil, authType: String? = nil, providerARNs: [String]? = nil, type: AuthorizerType) { self.name = name self.identityValidationExpression = identityValidationExpression self.authorizerResultTtlInSeconds = authorizerResultTtlInSeconds @@ -3417,13 +3896,13 @@ extension Apigateway { } public struct GetStagesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentId", location: .querystring(locationName: "deploymentId"), required: false, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) ] /// The stages' deployment identifiers. public let deploymentId: String? - /// The stages' API identifiers. + /// The string identifier of the associated RestApi. public let restApiId: String public init(deploymentId: String? = nil, restApiId: String) { @@ -3440,16 +3919,16 @@ extension Apigateway { public struct ImportRestApiRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failOnWarnings", location: .querystring(locationName: "failonwarnings"), required: false, type: .boolean), AWSShapeMember(label: "body", required: true, type: .blob), AWSShapeMember(label: "parameters", required: false, type: .map) ] /// A query parameter to indicate whether to rollback the API creation (true) or not (false) when a warning is encountered. The default value is false. public let failOnWarnings: Bool? - /// The POST request body containing external API definitions. Currently, only Swagger definition JSON files are supported. + /// The POST request body containing external API definitions. Currently, only Swagger definition JSON files are supported. The maximum size of the API definition file is 2MB. public let body: Data - /// Custom header parameters as part of the request. + /// A key-value map of context-specific query string parameters specifying the behavior of different API importing operations. The following shows operation-specific parameters and their supported values. To exclude DocumentationParts from the import, set parameters as ignore=documentation. To configure the endpoint type, set parameters as endpointConfigurationTypes=EDGE orendpointConfigurationTypes=REGIONAL. The default endpoint type is EDGE. To handle imported basePath, set parameters as basePath=ignore, basePath=prepend or basePath=split. For example, the AWS CLI command to exclude documentation from the imported API is: aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json The AWS CLI command to set the regional endpoint on the imported API is: aws apigateway import-rest-api --parameters endpointConfigurationTypes=REGIONAL --body 'file:///path/to/imported-api-body.json public let parameters: [String: String]? public init(failOnWarnings: Bool? = nil, body: Data, parameters: [String: String]? = nil) { @@ -3465,8 +3944,32 @@ extension Apigateway { } } + public enum GatewayResponseType: String, CustomStringConvertible, Codable { + case default4Xx = "DEFAULT_4XX" + case default5Xx = "DEFAULT_5XX" + case resourceNotFound = "RESOURCE_NOT_FOUND" + case unauthorized = "UNAUTHORIZED" + case invalidApiKey = "INVALID_API_KEY" + case accessDenied = "ACCESS_DENIED" + case authorizerFailure = "AUTHORIZER_FAILURE" + case authorizerConfigurationError = "AUTHORIZER_CONFIGURATION_ERROR" + case invalidSignature = "INVALID_SIGNATURE" + case expiredToken = "EXPIRED_TOKEN" + case missingAuthenticationToken = "MISSING_AUTHENTICATION_TOKEN" + case integrationFailure = "INTEGRATION_FAILURE" + case integrationTimeout = "INTEGRATION_TIMEOUT" + case apiConfigurationError = "API_CONFIGURATION_ERROR" + case unsupportedMediaType = "UNSUPPORTED_MEDIA_TYPE" + case badRequestParameters = "BAD_REQUEST_PARAMETERS" + case badRequestBody = "BAD_REQUEST_BODY" + case requestTooLarge = "REQUEST_TOO_LARGE" + case throttled = "THROTTLED" + case quotaExceeded = "QUOTA_EXCEEDED" + public var description: String { return self.rawValue } + } + public struct GetRestApisRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] @@ -3487,19 +3990,19 @@ extension Apigateway { } public struct GetSdkRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "sdkType", location: .uri(locationName: "sdk_type"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "stageName", location: .uri(locationName: "stage_name"), required: true, type: .string), AWSShapeMember(label: "parameters", required: false, type: .map) ] - /// The language for the generated SDK. Currently javascript, android, and objectivec (for iOS) are supported. + /// The language for the generated SDK. Currently java, javascript, android, objectivec (for iOS), swift (for iOS), and ruby are supported. public let sdkType: String - /// The identifier of the RestApi that the SDK will use. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the Stage that the SDK will use. public let stageName: String - /// A key-value map of query string parameters that specify properties of the SDK, depending on the requested sdkType. For sdkType of objectivec, a parameter named classPrefix is required. For sdkType of android, parameters named groupId, artifactId, artifactVersion, and invokerPackage are required. + /// A string-to-string key-value map of query parameters sdkType-dependent properties of the SDK. For sdkType of objectivec or swift, a parameter named classPrefix is required. For sdkType of android, parameters named groupId, artifactId, artifactVersion, and invokerPackage are required. For sdkType of java, parameters named serviceName and javaPackageName are required. public let parameters: [String: String]? public init(sdkType: String, restApiId: String, stageName: String, parameters: [String: String]? = nil) { @@ -3518,7 +4021,7 @@ extension Apigateway { } public struct TestInvokeAuthorizerResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "authorization", required: false, type: .map), AWSShapeMember(label: "principalId", required: false, type: .string), AWSShapeMember(label: "log", required: false, type: .string), @@ -3530,7 +4033,7 @@ extension Apigateway { public let authorization: [String: [String]]? /// The principal identity returned by the Authorizer public let principalId: String? - /// The Amazon API Gateway execution log for the test authorizer request. + /// The API Gateway execution log for the test authorizer request. public let log: String? /// The execution latency of the test authorizer request. public let latency: Int64? @@ -3563,13 +4066,13 @@ extension Apigateway { } public struct UpdateMethodRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string) ] - /// The RestApi identifier for the Method resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// A list of update operations to be applied to the specified resource and in the order specified in this list. public let patchOperations: [PatchOperation]? @@ -3594,7 +4097,7 @@ extension Apigateway { } public struct Authorizer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "identityValidationExpression", required: false, type: .string), @@ -3610,21 +4113,21 @@ extension Apigateway { public let name: String? /// The identifier for the authorizer resource. public let id: String? - /// A validation expression for the incoming identity. For TOKEN authorizers, this value should be a regular expression. The incoming token from the client is matched against this expression, and will proceed if the token matches. If the token doesn't match, the client receives a 401 Unauthorized response. + /// A validation expression for the incoming identity token. For TOKEN authorizers, this value is a regular expression. API Gateway will match the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the REQUEST authorizer. public let identityValidationExpression: String? - /// The TTL in seconds of cached authorizer results. If greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour. + /// The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour. public let authorizerResultTtlInSeconds: Int32? - /// [Required] Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api}, where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. + /// Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api}, where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. public let authorizerUri: String? - /// Specifies the credentials required for the authorizer, if any. Two options are available. To specify an IAM role for Amazon API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. + /// Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. public let authorizerCredentials: String? - /// [Required] The source of the identity in an incoming request. For a TOKEN authorizer, this value is a mapping expression with the same syntax as integration parameter mappings. The only valid source for tokens is 'header', so the expression should match 'method.request.header.[headerName]'. The value of the header '[headerName]' will be interpreted as the incoming token. For COGNITO_USER_POOLS authorizers, this property is used. + /// The identity source for which authorization is requested. For a TOKEN authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is Auth, the header mapping expression is method.request.header.Auth.For the REQUEST authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an Auth header, a Name query string parameter are defined as identity sources, this value is method.request.header.Auth, method.request.querystring.Name. These parameters will be used to derive the authorization caching key and to perform runtime validation of the REQUEST authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional.For a COGNITO_USER_POOLS authorizer, this property is not used. public let identitySource: String? - /// Optional customer-defined field, used in Swagger imports/exports. Has no functional impact. + /// Optional customer-defined field, used in Swagger imports and exports without functional impact. public let authType: String? - /// A list of the provider ARNs of the authorizer. For an TOKEN authorizer, this is not defined. For authorizers of the COGNITO_USER_POOLS type, each element corresponds to a user pool ARN of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}. + /// A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer. Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}. For a TOKEN or REQUEST authorizer, this is not defined. public let providerARNs: [String]? - /// [Required] The type of the authorizer. Currently, the valid type is TOKEN for a Lambda function or COGNITO_USER_POOLS for an Amazon Cognito user pool. + /// [Required] The authorizer type. Valid values are TOKEN for a Lambda function using a single authorization token submitted in a custom header, REQUEST for a Lambda function using incoming request parameters, and COGNITO_USER_POOLS for using an Amazon Cognito user pool. public let `type`: AuthorizerType? public init(name: String? = nil, id: String? = nil, identityValidationExpression: String? = nil, authorizerResultTtlInSeconds: Int32? = nil, authorizerUri: String? = nil, authorizerCredentials: String? = nil, identitySource: String? = nil, authType: String? = nil, providerARNs: [String]? = nil, type: AuthorizerType? = nil) { @@ -3654,8 +4157,29 @@ extension Apigateway { } } + public struct GetVpcLinksRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), + AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) + ] + /// The current pagination position in the paged result set. + public let position: String? + /// The maximum number of returned results per page. + public let limit: Int32? + + public init(position: String? = nil, limit: Int32? = nil) { + self.position = position + self.limit = limit + } + + private enum CodingKeys: String, CodingKey { + case position = "position" + case limit = "limit" + } + } + public struct GetUsagePlansRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "keyId", location: .querystring(locationName: "keyId"), required: false, type: .string), AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) @@ -3681,12 +4205,12 @@ extension Apigateway { } public struct UpdateStageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "stageName", location: .uri(locationName: "stage_name"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] - /// The identifier of the RestApi resource for the Stage resource to change information about. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the Stage resource to change information about. public let stageName: String @@ -3707,7 +4231,7 @@ extension Apigateway { } public struct GetClientCertificatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] @@ -3728,7 +4252,7 @@ extension Apigateway { } public struct GetUsagePlanRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "usagePlanId", location: .uri(locationName: "usageplanId"), required: true, type: .string) ] /// The identifier of the UsagePlan resource to be retrieved. @@ -3744,11 +4268,11 @@ extension Apigateway { } public struct DocumentationParts: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// The current page of DocumentationPart resources in the DocumentationParts collection. + /// The current page of elements from this collection. public let items: [DocumentationPart]? public let position: String? @@ -3767,8 +4291,28 @@ extension Apigateway { } + public struct VpcLinks: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), + AWSShapeMember(label: "position", required: false, type: .string) + ] + /// The current page of elements from this collection. + public let items: [VpcLink]? + public let position: String? + + public init(items: [VpcLink]? = nil, position: String? = nil) { + self.items = items + self.position = position + } + + private enum CodingKeys: String, CodingKey { + case items = "item" + case position = "position" + } + } + public struct RequestValidator: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "validateRequestBody", required: false, type: .boolean), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "id", required: false, type: .string), @@ -3798,34 +4342,14 @@ extension Apigateway { } } - public struct DeleteDocumentationPartRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "documentationPartId", location: .uri(locationName: "part_id"), required: true, type: .string), - AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) - ] - /// [Required] The identifier of the to-be-deleted documentation part. - public let documentationPartId: String - /// [Required] Specifies the identifier of an API of the to-be-deleted documentation part. - public let restApiId: String - - public init(documentationPartId: String, restApiId: String) { - self.documentationPartId = documentationPartId - self.restApiId = restApiId - } - - private enum CodingKeys: String, CodingKey { - case documentationPartId = "part_id" - case restApiId = "restapi_id" - } - } - public struct CreateRestApiRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "binaryMediaTypes", required: false, type: .list), AWSShapeMember(label: "cloneFrom", required: false, type: .string), AWSShapeMember(label: "name", required: true, type: .string), - AWSShapeMember(label: "version", required: false, type: .string) + AWSShapeMember(label: "version", required: false, type: .string), + AWSShapeMember(label: "endpointConfiguration", required: false, type: .structure) ] /// The description of the RestApi. public let description: String? @@ -3837,13 +4361,16 @@ extension Apigateway { public let name: String /// A version identifier for the API. public let version: String? + /// The endpoint configuration of this RestApi showing the endpoint types of the API. + public let endpointConfiguration: EndpointConfiguration? - public init(description: String? = nil, binaryMediaTypes: [String]? = nil, cloneFrom: String? = nil, name: String, version: String? = nil) { + public init(description: String? = nil, binaryMediaTypes: [String]? = nil, cloneFrom: String? = nil, name: String, version: String? = nil, endpointConfiguration: EndpointConfiguration? = nil) { self.description = description self.binaryMediaTypes = binaryMediaTypes self.cloneFrom = cloneFrom self.name = name self.version = version + self.endpointConfiguration = endpointConfiguration } private enum CodingKeys: String, CodingKey { @@ -3852,14 +4379,37 @@ extension Apigateway { case cloneFrom = "cloneFrom" case name = "name" case version = "version" + case endpointConfiguration = "endpointConfiguration" + } + } + + public struct DeleteDocumentationPartRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "documentationPartId", location: .uri(locationName: "part_id"), required: true, type: .string), + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) + ] + /// [Required] The identifier of the to-be-deleted documentation part. + public let documentationPartId: String + /// [Required] The string identifier of the associated RestApi. + public let restApiId: String + + public init(documentationPartId: String, restApiId: String) { + self.documentationPartId = documentationPartId + self.restApiId = restApiId + } + + private enum CodingKeys: String, CodingKey { + case documentationPartId = "part_id" + case restApiId = "restapi_id" } } public struct CreateDeploymentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cacheClusterEnabled", required: false, type: .boolean), - AWSShapeMember(label: "cacheClusterSize", required: false, type: .enum), + AWSShapeMember(label: "canarySettings", required: false, type: .structure), AWSShapeMember(label: "variables", required: false, type: .map), + AWSShapeMember(label: "cacheClusterSize", required: false, type: .enum), AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "stageName", required: false, type: .string), @@ -3867,23 +4417,26 @@ extension Apigateway { ] /// Enables a cache cluster for the Stage resource specified in the input. public let cacheClusterEnabled: Bool? - /// Specifies the cache cluster size for the Stage resource specified in the input, if a cache cluster is enabled. - public let cacheClusterSize: CacheClusterSize? + /// The input configuration for the canary deployment when the deployment is a canary release deployment. + public let canarySettings: DeploymentCanarySettings? /// A map that defines the stage variables for the Stage resource that is associated with the new deployment. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. public let variables: [String: String]? + /// Specifies the cache cluster size for the Stage resource specified in the input, if a cache cluster is enabled. + public let cacheClusterSize: CacheClusterSize? /// The description for the Deployment resource to create. public let description: String? - /// The RestApi resource identifier for the Deployment resource to create. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the Stage resource for the Deployment resource to create. public let stageName: String? /// The description of the Stage resource for the Deployment resource to create. public let stageDescription: String? - public init(cacheClusterEnabled: Bool? = nil, cacheClusterSize: CacheClusterSize? = nil, variables: [String: String]? = nil, description: String? = nil, restApiId: String, stageName: String? = nil, stageDescription: String? = nil) { + public init(cacheClusterEnabled: Bool? = nil, canarySettings: DeploymentCanarySettings? = nil, variables: [String: String]? = nil, cacheClusterSize: CacheClusterSize? = nil, description: String? = nil, restApiId: String, stageName: String? = nil, stageDescription: String? = nil) { self.cacheClusterEnabled = cacheClusterEnabled - self.cacheClusterSize = cacheClusterSize + self.canarySettings = canarySettings self.variables = variables + self.cacheClusterSize = cacheClusterSize self.description = description self.restApiId = restApiId self.stageName = stageName @@ -3892,8 +4445,9 @@ extension Apigateway { private enum CodingKeys: String, CodingKey { case cacheClusterEnabled = "cacheClusterEnabled" - case cacheClusterSize = "cacheClusterSize" + case canarySettings = "canarySettings" case variables = "variables" + case cacheClusterSize = "cacheClusterSize" case description = "description" case restApiId = "restapi_id" case stageName = "stageName" @@ -3902,7 +4456,7 @@ extension Apigateway { } public struct GetBasePathMappingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "basePath", location: .uri(locationName: "base_path"), required: true, type: .string), AWSShapeMember(label: "domainName", location: .uri(locationName: "domain_name"), required: true, type: .string) ] @@ -3929,7 +4483,7 @@ extension Apigateway { } public struct UsagePlanKey: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "value", required: false, type: .string), AWSShapeMember(label: "id", required: false, type: .string), @@ -3960,11 +4514,11 @@ extension Apigateway { } public struct DocumentationVersions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "items", location: .body(locationName: "item"), required: false, type: .list), AWSShapeMember(label: "position", required: false, type: .string) ] - /// The current page of DocumentationVersion items from the DocumentationVersions collection of an API. + /// The current page of elements from this collection. public let items: [DocumentationVersion]? public let position: String? @@ -3980,7 +4534,7 @@ extension Apigateway { } public struct UpdateDomainNameRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainName", location: .uri(locationName: "domain_name"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] @@ -4001,12 +4555,12 @@ extension Apigateway { } public struct DeleteIntegrationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string) ] - /// Specifies a delete integration request's API identifier. + /// The string identifier of the associated RestApi. public let restApiId: String /// Specifies a delete integration request's HTTP method. public let httpMethod: String @@ -4027,7 +4581,7 @@ extension Apigateway { } public struct CreateUsagePlanKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "keyId", required: true, type: .string), AWSShapeMember(label: "keyType", required: true, type: .string), AWSShapeMember(label: "usagePlanId", location: .uri(locationName: "usageplanId"), required: true, type: .string) @@ -4053,7 +4607,7 @@ extension Apigateway { } public struct GetDomainNameRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainName", location: .uri(locationName: "domain_name"), required: true, type: .string) ] /// The name of the DomainName resource. @@ -4075,13 +4629,13 @@ extension Apigateway { } public struct GetAuthorizerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "authorizerId", location: .uri(locationName: "authorizer_id"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) ] /// The identifier of the Authorizer resource. public let authorizerId: String - /// The RestApi identifier for the Authorizer resource. + /// The string identifier of the associated RestApi. public let restApiId: String public init(authorizerId: String, restApiId: String) { @@ -4095,8 +4649,24 @@ extension Apigateway { } } + public struct GetVpcLinkRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "vpcLinkId", location: .uri(locationName: "vpclink_id"), required: true, type: .string) + ] + /// [Required] The identifier of the VpcLink. It is used in an Integration to reference this VpcLink. + public let vpcLinkId: String + + public init(vpcLinkId: String) { + self.vpcLinkId = vpcLinkId + } + + private enum CodingKeys: String, CodingKey { + case vpcLinkId = "vpclink_id" + } + } + public struct GetUsagePlanKeysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "position", location: .querystring(locationName: "position"), required: false, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .integer), AWSShapeMember(label: "nameQuery", location: .querystring(locationName: "name"), required: false, type: .string), @@ -4127,7 +4697,7 @@ extension Apigateway { } public struct DocumentationPartIds: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ids", required: false, type: .list), AWSShapeMember(label: "warnings", required: false, type: .list) ] @@ -4148,10 +4718,13 @@ extension Apigateway { } public struct PutIntegrationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cacheNamespace", required: false, type: .string), AWSShapeMember(label: "uri", required: false, type: .string), + AWSShapeMember(label: "connectionId", required: false, type: .string), + AWSShapeMember(label: "timeoutInMillis", required: false, type: .integer), AWSShapeMember(label: "cacheKeyParameters", required: false, type: .list), + AWSShapeMember(label: "connectionType", required: false, type: .enum), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "type", required: true, type: .enum), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), @@ -4165,11 +4738,17 @@ extension Apigateway { ] /// Specifies a put integration input's cache namespace. public let cacheNamespace: String? - /// Specifies a put integration input's Uniform Resource Identifier (URI). When the integration type is HTTP or AWS, this field is required. For integration with Lambda as an AWS service proxy, this value is of the 'arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/<functionArn>/invocations' format. + /// Specifies Uniform Resource Identifier (URI) of the integration endpoint. For HTTP or HTTP_PROXY integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification, for either standard integration, where connectionType is not VPC_LINK, or private integration, where connectionType is VPC_LINK. For a private HTTP integration, the URI is not used for routing. For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the name of the integrated AWS service (e.g., s3); and {subdomain} is a designated subdomain supported by certain AWS service for fast host-name lookup. action can be used for an AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api} refers to a supported action {name} plus any required input parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing service_api refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of GetObject, the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key} public let uri: String? + /// The (id) of the VpcLink used for the integration when connectionType=VPC_LINK and undefined, otherwise. + public let connectionId: String? + /// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds. + public let timeoutInMillis: Int32? /// Specifies a put integration input's cache key parameters. public let cacheKeyParameters: [String]? - /// Specifies a put integration request's API identifier. + /// The type of the network connection to the integration endpoint. The valid value is INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and an network load balancer in a VPC. The default value is INTERNET. + public let connectionType: ConnectionType? + /// The string identifier of the associated RestApi. public let restApiId: String /// Specifies a put integration input's type. public let `type`: IntegrationType @@ -4190,10 +4769,13 @@ extension Apigateway { /// Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration back end without transformation. NEVER rejects unmapped content types with an HTTP 415 'Unsupported Media Type' response. WHEN_NO_TEMPLATES allows pass-through when the integration has NO content types mapped to templates. However if there is at least one content type defined, unmapped content types will be rejected with the same 415 response. public let passthroughBehavior: String? - public init(cacheNamespace: String? = nil, uri: String? = nil, cacheKeyParameters: [String]? = nil, restApiId: String, type: IntegrationType, resourceId: String, requestParameters: [String: String]? = nil, httpMethod: String, requestTemplates: [String: String]? = nil, contentHandling: ContentHandlingStrategy? = nil, credentials: String? = nil, integrationHttpMethod: String? = nil, passthroughBehavior: String? = nil) { + public init(cacheNamespace: String? = nil, uri: String? = nil, connectionId: String? = nil, timeoutInMillis: Int32? = nil, cacheKeyParameters: [String]? = nil, connectionType: ConnectionType? = nil, restApiId: String, type: IntegrationType, resourceId: String, requestParameters: [String: String]? = nil, httpMethod: String, requestTemplates: [String: String]? = nil, contentHandling: ContentHandlingStrategy? = nil, credentials: String? = nil, integrationHttpMethod: String? = nil, passthroughBehavior: String? = nil) { self.cacheNamespace = cacheNamespace self.uri = uri + self.connectionId = connectionId + self.timeoutInMillis = timeoutInMillis self.cacheKeyParameters = cacheKeyParameters + self.connectionType = connectionType self.restApiId = restApiId self.`type` = `type` self.resourceId = resourceId @@ -4209,7 +4791,10 @@ extension Apigateway { private enum CodingKeys: String, CodingKey { case cacheNamespace = "cacheNamespace" case uri = "uri" + case connectionId = "connectionId" + case timeoutInMillis = "timeoutInMillis" case cacheKeyParameters = "cacheKeyParameters" + case connectionType = "connectionType" case restApiId = "restapi_id" case `type` = "type" case resourceId = "resource_id" @@ -4223,14 +4808,31 @@ extension Apigateway { } } + public struct DeleteRestApiRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) + ] + /// The string identifier of the associated RestApi. + public let restApiId: String + + public init(restApiId: String) { + self.restApiId = restApiId + } + + private enum CodingKeys: String, CodingKey { + case restApiId = "restapi_id" + } + } + public enum AuthorizerType: String, CustomStringConvertible, Codable { case token = "TOKEN" + case request = "REQUEST" case cognitoUserPools = "COGNITO_USER_POOLS" public var description: String { return self.rawValue } } public struct UpdateClientCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "clientCertificateId", location: .uri(locationName: "clientcertificate_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] @@ -4250,29 +4852,13 @@ extension Apigateway { } } - public struct DeleteRestApiRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) - ] - /// The ID of the RestApi you want to delete. - public let restApiId: String - - public init(restApiId: String) { - self.restApiId = restApiId - } - - private enum CodingKeys: String, CodingKey { - case restApiId = "restapi_id" - } - } - public struct MethodResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "responseParameters", required: false, type: .map), AWSShapeMember(label: "responseModels", required: false, type: .map), AWSShapeMember(label: "statusCode", required: false, type: .string) ] - /// A key-value map specifying required or optional response parameters that Amazon API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern method.response.header.{name}, where name is a valid and unique header name. Amazon API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.) + /// A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern method.response.header.{name}, where name is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.) public let responseParameters: [String: Bool]? /// Specifies the Model resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a Model name as the value. public let responseModels: [String: String]? @@ -4293,11 +4879,11 @@ extension Apigateway { } public struct GetModelTemplateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "modelName", location: .uri(locationName: "model_name"), required: true, type: .string) ] - /// The ID of the RestApi under which the model exists. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the model for which to generate a template. public let modelName: String @@ -4313,8 +4899,24 @@ extension Apigateway { } } + public struct DeleteVpcLinkRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "vpcLinkId", location: .uri(locationName: "vpclink_id"), required: true, type: .string) + ] + /// [Required] The identifier of the VpcLink. It is used in an Integration to reference this VpcLink. + public let vpcLinkId: String + + public init(vpcLinkId: String) { + self.vpcLinkId = vpcLinkId + } + + private enum CodingKeys: String, CodingKey { + case vpcLinkId = "vpclink_id" + } + } + public struct Model: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "contentType", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), @@ -4325,7 +4927,7 @@ extension Apigateway { public let description: String? /// The content-type for the model. public let contentType: String? - /// The name of the model. + /// The name of the model. Must be an alphanumeric string. public let name: String? /// The schema for the model. For application/json models, this should be JSON-schema draft v4 model. Do not include "\*/" characters in the description of any properties because such "\*/" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail. public let schema: String? @@ -4350,11 +4952,11 @@ extension Apigateway { } public struct FlushStageAuthorizersCacheRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "stageName", location: .uri(locationName: "stage_name"), required: true, type: .string) ] - /// The API identifier of the stage to flush. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the stage to flush. public let stageName: String @@ -4371,7 +4973,7 @@ extension Apigateway { } public struct QuotaSettings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "period", required: false, type: .enum), AWSShapeMember(label: "offset", required: false, type: .integer), AWSShapeMember(label: "limit", required: false, type: .integer) @@ -4397,7 +4999,7 @@ extension Apigateway { } public struct UpdateUsagePlanRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "usagePlanId", location: .uri(locationName: "usageplanId"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] @@ -4418,12 +5020,12 @@ extension Apigateway { } public struct UpdateRequestValidatorRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "requestValidatorId", location: .uri(locationName: "requestvalidator_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] - /// [Required] The identifier of the RestApi for which the given RequestValidator is updated. + /// The string identifier of the associated RestApi. public let restApiId: String /// [Required] The identifier of RequestValidator to be updated. public let requestValidatorId: String @@ -4444,10 +5046,10 @@ extension Apigateway { } public struct Stages: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] - /// An individual Stage resource. + /// The current page of elements from this collection. public let item: [Stage]? public init(item: [Stage]? = nil) { @@ -4460,7 +5062,7 @@ extension Apigateway { } public struct Method: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "authorizerId", required: false, type: .string), AWSShapeMember(label: "methodResponses", required: false, type: .map), AWSShapeMember(label: "requestModels", required: false, type: .map), @@ -4478,7 +5080,7 @@ extension Apigateway { public let methodResponses: [String: MethodResponse]? /// A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key). public let requestModels: [String: String]? - /// A key-value map defining required or optional method request parameters that can be accepted by Amazon API Gateway. A key is a method request parameter name matching the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true) or optional (false). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates. + /// A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true) or optional (false). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates. public let requestParameters: [String: Bool]? /// Gets the method's integration responsible for passing the client-submitted request to the back end and performing necessary transformations to make the request compliant with the back end. Example: Request GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date: 20160613T213210Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} Response The successful response returns a 200 OK status code and a payload similar to the following: { "_links": { "curies": [ { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html", "name": "integration", "templated": true }, { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true } ], "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:responses": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integrationresponse:put": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/{status_code}", "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "0cjtch", "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod": "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestTemplates": { "application/json": "{\n \"a\": \"$input.params('operand1')\",\n \"b\": \"$input.params('operand2')\", \n \"op\": \"$input.params('operator')\" \n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-west-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:Calc/invocations", "_embedded": { "integration:responses": { "_links": { "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.operator": "integration.response.body.op", "method.response.header.operand_2": "integration.response.body.b", "method.response.header.operand_1": "integration.response.body.a" }, "responseTemplates": { "application/json": "#set($res = $input.path('$'))\n{\n \"result\": \"$res.a, $res.b, $res.op => $res.c\",\n \"a\" : \"$res.a\",\n \"b\" : \"$res.b\",\n \"op\" : \"$res.op\",\n \"c\" : \"$res.c\"\n}" }, "selectionPattern": "", "statusCode": "200" } } } AWS CLI public let methodIntegration: Integration? @@ -4521,13 +5123,13 @@ extension Apigateway { } public struct DeleteMethodResponseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "statusCode", location: .uri(locationName: "status_code"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string) ] - /// The RestApi identifier for the MethodResponse resource. + /// The string identifier of the associated RestApi. public let restApiId: String /// The status code identifier for the MethodResponse resource. public let statusCode: String @@ -4552,7 +5154,7 @@ extension Apigateway { } public struct DeleteUsagePlanRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "usagePlanId", location: .uri(locationName: "usageplanId"), required: true, type: .string) ] /// The Id of the to-be-deleted usage plan. @@ -4568,14 +5170,14 @@ extension Apigateway { } public struct UpdateDocumentationPartRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "documentationPartId", location: .uri(locationName: "part_id"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "patchOperations", required: false, type: .list) ] /// [Required] The identifier of the to-be-updated documentation part. public let documentationPartId: String - /// [Required] The identifier of an API of the to-be-updated documentation part. + /// [Required] The string identifier of the associated RestApi. public let restApiId: String /// A list of update operations to be applied to the specified resource and in the order specified in this list. public let patchOperations: [PatchOperation]? @@ -4594,7 +5196,7 @@ extension Apigateway { } public struct CreateRequestValidatorRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "validateRequestBody", required: false, type: .boolean), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "name", required: false, type: .string), @@ -4602,7 +5204,7 @@ extension Apigateway { ] /// A Boolean flag to indicate whether to validate request body according to the configured model schema for the method (true) or not (false). public let validateRequestBody: Bool? - /// [Required] The identifier of the RestApi for which the RequestValidator is created. + /// The string identifier of the associated RestApi. public let restApiId: String /// The name of the to-be-created RequestValidator. public let name: String? @@ -4625,7 +5227,7 @@ extension Apigateway { } public struct CreateApiKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "generateDistinctId", required: false, type: .boolean), AWSShapeMember(label: "value", required: false, type: .string), @@ -4671,13 +5273,13 @@ extension Apigateway { } public struct DeleteAuthorizerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "authorizerId", location: .uri(locationName: "authorizer_id"), required: true, type: .string), AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string) ] /// The identifier of the Authorizer resource. public let authorizerId: String - /// The RestApi identifier for the Authorizer resource. + /// The string identifier of the associated RestApi. public let restApiId: String public init(authorizerId: String, restApiId: String) { @@ -4692,13 +5294,13 @@ extension Apigateway { } public struct GetIntegrationResponseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "restApiId", location: .uri(locationName: "restapi_id"), required: true, type: .string), AWSShapeMember(label: "statusCode", location: .uri(locationName: "status_code"), required: true, type: .string), AWSShapeMember(label: "resourceId", location: .uri(locationName: "resource_id"), required: true, type: .string), AWSShapeMember(label: "httpMethod", location: .uri(locationName: "http_method"), required: true, type: .string) ] - /// Specifies a get integration response request's API identifier. + /// The string identifier of the associated RestApi. public let restApiId: String /// Specifies a get integration response request's status code. public let statusCode: String diff --git a/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_API.swift b/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_API.swift index 0a0f46a7b14..3f6a1b635fe 100644 --- a/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_API.swift +++ b/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -With Application Auto Scaling, you can automatically scale your AWS resources. The experience similar to that of Auto Scaling. You can use Application Auto Scaling to accomplish the following tasks: Define scaling policies to automatically scale your AWS resources Scale your resources in response to CloudWatch alarms View the history of your scaling events Application Auto Scaling can scale the following AWS resources: Amazon ECS services. For more information, see Service Auto Scaling in the Amazon EC2 Container Service Developer Guide. Amazon EC2 Spot fleets. For more information, see Automatic Scaling for Spot Fleet in the Amazon EC2 User Guide. Amazon EMR clusters. For more information, see Using Automatic Scaling in Amazon EMR in the Amazon EMR Management Guide. AppStream 2.0 fleets. For more information, see Fleet Auto Scaling for Amazon AppStream 2.0 in the Amazon AppStream 2.0 Developer Guide. Provisioned read and write capacity for Amazon DynamoDB tables and global secondary indexes. For more information, see Auto Scaling for DynamoDB in the Amazon DynamoDB Developer Guide. For a list of supported regions, see AWS Regions and Endpoints: Application Auto Scaling in the AWS General Reference. +With Application Auto Scaling, you can automatically scale your AWS resources. The experience is similar to that of Auto Scaling. You can use Application Auto Scaling to accomplish the following tasks: Define scaling policies to automatically scale your AWS resources Scale your resources in response to CloudWatch alarms View the history of your scaling events Application Auto Scaling can scale the following AWS resources: Amazon ECS services. For more information, see Service Auto Scaling in the Amazon EC2 Container Service Developer Guide. Amazon EC2 Spot fleets. For more information, see Automatic Scaling for Spot Fleet in the Amazon EC2 User Guide. Amazon EMR clusters. For more information, see Using Automatic Scaling in Amazon EMR in the Amazon EMR Management Guide. AppStream 2.0 fleets. For more information, see Fleet Auto Scaling for Amazon AppStream 2.0 in the Amazon AppStream 2.0 Developer Guide. Provisioned read and write capacity for Amazon DynamoDB tables and global secondary indexes. For more information, see Managing Throughput Capacity Automatically with DynamoDB Auto Scaling in the Amazon DynamoDB Developer Guide. Amazon Aurora Replicas. For more information, see Using Application Auto Scaling with an Amazon Aurora DB Cluster. For a list of supported regions, see AWS Regions and Endpoints: Application Auto Scaling in the AWS General Reference. */ public struct ApplicationAutoscaling { @@ -30,14 +30,24 @@ public struct ApplicationAutoscaling { return try client.send(operation: "DeregisterScalableTarget", path: "/", httpMethod: "POST", input: input) } + /// Provides descriptive information about the scalable targets in the specified namespace. You can filter the results using the ResourceIds and ScalableDimension parameters. To create a scalable target or update an existing one, see RegisterScalableTarget. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget. + public func describeScalableTargets(_ input: DescribeScalableTargetsRequest) throws -> DescribeScalableTargetsResponse { + return try client.send(operation: "DescribeScalableTargets", path: "/", httpMethod: "POST", input: input) + } + /// Creates or updates a policy for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy without first registering a scalable target using RegisterScalableTarget. To update a policy, specify its policy name and the parameters that you want to change. Any parameters that you don't specify are not changed by this update request. You can view the scaling policies for a service namespace using DescribeScalingPolicies. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy. public func putScalingPolicy(_ input: PutScalingPolicyRequest) throws -> PutScalingPolicyResponse { return try client.send(operation: "PutScalingPolicy", path: "/", httpMethod: "POST", input: input) } - /// Provides descriptive information about the scalable targets in the specified namespace. You can filter the results using the ResourceIds and ScalableDimension parameters. To create a scalable target or update an existing one, see RegisterScalableTarget. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget. - public func describeScalableTargets(_ input: DescribeScalableTargetsRequest) throws -> DescribeScalableTargetsResponse { - return try client.send(operation: "DescribeScalableTargets", path: "/", httpMethod: "POST", input: input) + /// Creates or updates a scheduled action for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action without first registering a scalable target using RegisterScalableTarget. To update an action, specify its name and the parameters that you want to change. If you don't specify start and end times, the old values are deleted. Any other parameters that you don't specify are not changed by this update request. You can view the scheduled actions using DescribeScheduledActions. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction. + public func putScheduledAction(_ input: PutScheduledActionRequest) throws -> PutScheduledActionResponse { + return try client.send(operation: "PutScheduledAction", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the scaling policies for the specified service namespace. You can filter the results using the ResourceId, ScalableDimension, and PolicyNames parameters. To create a scaling policy or update an existing one, see PutScalingPolicy. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy. + public func describeScalingPolicies(_ input: DescribeScalingPoliciesRequest) throws -> DescribeScalingPoliciesResponse { + return try client.send(operation: "DescribeScalingPolicies", path: "/", httpMethod: "POST", input: input) } /// Provides descriptive information about the scaling activities in the specified namespace from the previous six weeks. You can filter the results using the ResourceId and ScalableDimension parameters. Scaling activities are triggered by CloudWatch alarms that are associated with scaling policies. To view the scaling policies for a service namespace, see DescribeScalingPolicies. To create a scaling policy or update an existing one, see PutScalingPolicy. @@ -45,9 +55,9 @@ public struct ApplicationAutoscaling { return try client.send(operation: "DescribeScalingActivities", path: "/", httpMethod: "POST", input: input) } - /// Provides descriptive information about the scaling policies in the specified namespace. You can filter the results using the ResourceId, ScalableDimension, and PolicyNames parameters. To create a scaling policy or update an existing one, see PutScalingPolicy. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy. - public func describeScalingPolicies(_ input: DescribeScalingPoliciesRequest) throws -> DescribeScalingPoliciesResponse { - return try client.send(operation: "DescribeScalingPolicies", path: "/", httpMethod: "POST", input: input) + /// Describes the scheduled actions for the specified service namespace. You can filter the results using the ResourceId, ScalableDimension, and ScheduledActionNames parameters. To create a scheduled action or update an existing one, see PutScheduledAction. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction. + public func describeScheduledActions(_ input: DescribeScheduledActionsRequest) throws -> DescribeScheduledActionsResponse { + return try client.send(operation: "DescribeScheduledActions", path: "/", httpMethod: "POST", input: input) } /// Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out or scale in. After you have registered a scalable target, you can use this operation to update the minimum and maximum values for your scalable dimension. After you register a scalable target, you can create and apply scaling policies using PutScalingPolicy. You can view the scaling policies for a service namespace using DescribeScalableTargets. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget. @@ -60,5 +70,10 @@ public struct ApplicationAutoscaling { return try client.send(operation: "DeleteScalingPolicy", path: "/", httpMethod: "POST", input: input) } + /// Deletes the specified Application Auto Scaling scheduled action. + public func deleteScheduledAction(_ input: DeleteScheduledActionRequest) throws -> DeleteScheduledActionResponse { + return try client.send(operation: "DeleteScheduledAction", path: "/", httpMethod: "POST", input: input) + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_Error.swift b/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_Error.swift index 72a538a2cdb..9daf2c5180e 100644 --- a/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_Error.swift +++ b/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_Error.swift @@ -8,9 +8,9 @@ public enum ApplicationAutoscalingError: AWSErrorType { case objectNotFoundException(message: String?) case concurrentUpdateException(message: String?) case internalServiceException(message: String?) + case invalidNextTokenException(message: String?) case limitExceededException(message: String?) case failedResourceAccessException(message: String?) - case invalidNextTokenException(message: String?) } extension ApplicationAutoscalingError { @@ -28,12 +28,12 @@ extension ApplicationAutoscalingError { self = .concurrentUpdateException(message: message) case "InternalServiceException": self = .internalServiceException(message: message) + case "InvalidNextTokenException": + self = .invalidNextTokenException(message: message) case "LimitExceededException": self = .limitExceededException(message: message) case "FailedResourceAccessException": self = .failedResourceAccessException(message: message) - case "InvalidNextTokenException": - self = .invalidNextTokenException(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_Shapes.swift b/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_Shapes.swift index ca45f7a9fd1..62cf5043745 100644 --- a/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/application-autoscaling/ApplicationAutoscaling_Shapes.swift @@ -5,8 +5,33 @@ import AWSSDKSwiftCore extension ApplicationAutoscaling { + public struct ScalableTargetAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxCapacity", required: false, type: .integer), + AWSShapeMember(label: "MinCapacity", required: false, type: .integer) + ] + /// The maximum capacity. + public let maxCapacity: Int32? + /// The minimum capacity. + public let minCapacity: Int32? + + public init(maxCapacity: Int32? = nil, minCapacity: Int32? = nil) { + self.maxCapacity = maxCapacity + self.minCapacity = minCapacity + } + + private enum CodingKeys: String, CodingKey { + case maxCapacity = "MaxCapacity" + case minCapacity = "MinCapacity" + } + } + + public struct DeleteScheduledActionResponse: AWSShape { + + } + public struct DescribeScalingActivitiesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ScalingActivities", required: false, type: .list) ] @@ -27,7 +52,7 @@ extension ApplicationAutoscaling { } public struct DescribeScalableTargetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScalableTargets", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -50,9 +75,36 @@ extension ApplicationAutoscaling { public enum MetricType: String, CustomStringConvertible, Codable { case dynamodbreadcapacityutilization = "DynamoDBReadCapacityUtilization" case dynamodbwritecapacityutilization = "DynamoDBWriteCapacityUtilization" + case albrequestcountpertarget = "ALBRequestCountPerTarget" + case rdsreaderaveragecpuutilization = "RDSReaderAverageCPUUtilization" + case rdsreaderaveragedatabaseconnections = "RDSReaderAverageDatabaseConnections" + case ec2spotfleetrequestaveragecpuutilization = "EC2SpotFleetRequestAverageCPUUtilization" + case ec2spotfleetrequestaveragenetworkin = "EC2SpotFleetRequestAverageNetworkIn" + case ec2spotfleetrequestaveragenetworkout = "EC2SpotFleetRequestAverageNetworkOut" public var description: String { return self.rawValue } } + public struct DescribeScheduledActionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ScheduledActions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Information about the scheduled actions. + public let scheduledActions: [ScheduledAction]? + /// The token required to get the next set of results. This value is null if there are no more results to return. + public let nextToken: String? + + public init(scheduledActions: [ScheduledAction]? = nil, nextToken: String? = nil) { + self.scheduledActions = scheduledActions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case scheduledActions = "ScheduledActions" + case nextToken = "NextToken" + } + } + public enum MetricAggregationType: String, CustomStringConvertible, Codable { case average = "Average" case minimum = "Minimum" @@ -61,7 +113,7 @@ extension ApplicationAutoscaling { } public struct MetricDimension: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -86,7 +138,7 @@ extension ApplicationAutoscaling { } public struct ScalingPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StepScalingPolicyConfiguration", required: false, type: .structure), AWSShapeMember(label: "TargetTrackingScalingPolicyConfiguration", required: false, type: .structure), AWSShapeMember(label: "PolicyType", required: true, type: .enum), @@ -110,11 +162,11 @@ extension ApplicationAutoscaling { public let policyARN: String /// The Unix timestamp for when the scaling policy was created. public let creationTime: TimeStamp - /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. + /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. public let scalableDimension: ScalableDimension /// The CloudWatch alarms associated with the scaling policy. public let alarms: [Alarm]? - /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. public let resourceId: String /// The name of the scaling policy. public let policyName: String @@ -163,7 +215,7 @@ extension ApplicationAutoscaling { } public struct DeleteScalingPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyName", required: true, type: .string), AWSShapeMember(label: "ScalableDimension", required: true, type: .enum), AWSShapeMember(label: "ResourceId", required: true, type: .string), @@ -171,9 +223,9 @@ extension ApplicationAutoscaling { ] /// The name of the scaling policy. public let policyName: String - /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. + /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. public let scalableDimension: ScalableDimension - /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. public let resourceId: String /// The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference. public let serviceNamespace: ServiceNamespace @@ -202,11 +254,12 @@ extension ApplicationAutoscaling { case dynamodbTableWritecapacityunits = "dynamodb:table:WriteCapacityUnits" case dynamodbIndexReadcapacityunits = "dynamodb:index:ReadCapacityUnits" case dynamodbIndexWritecapacityunits = "dynamodb:index:WriteCapacityUnits" + case rdsClusterReadreplicacount = "rds:cluster:ReadReplicaCount" public var description: String { return self.rawValue } } public struct PutScalingPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyName", required: true, type: .string), AWSShapeMember(label: "TargetTrackingScalingPolicyConfiguration", required: false, type: .structure), AWSShapeMember(label: "PolicyType", required: false, type: .enum), @@ -223,9 +276,9 @@ extension ApplicationAutoscaling { public let policyType: PolicyType? /// The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference. public let serviceNamespace: ServiceNamespace - /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. + /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. public let scalableDimension: ScalableDimension - /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. public let resourceId: String /// A step scaling policy. This parameter is required if you are creating a policy and the policy type is StepScaling. public let stepScalingPolicyConfiguration: StepScalingPolicyConfiguration? @@ -251,8 +304,49 @@ extension ApplicationAutoscaling { } } + public struct DescribeScheduledActionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum), + AWSShapeMember(label: "ScheduledActionNames", required: false, type: .list), + AWSShapeMember(label: "ScalableDimension", required: false, type: .enum), + AWSShapeMember(label: "ResourceId", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference. + public let serviceNamespace: ServiceNamespace + /// The names of the scheduled actions to describe. + public let scheduledActionNames: [String]? + /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. + public let scalableDimension: ScalableDimension? + /// The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. + public let resourceId: String? + /// The token for the next set of results. + public let nextToken: String? + /// The maximum number of scheduled action results. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. + public let maxResults: Int32? + + public init(serviceNamespace: ServiceNamespace, scheduledActionNames: [String]? = nil, scalableDimension: ScalableDimension? = nil, resourceId: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.serviceNamespace = serviceNamespace + self.scheduledActionNames = scheduledActionNames + self.scalableDimension = scalableDimension + self.resourceId = resourceId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case serviceNamespace = "ServiceNamespace" + case scheduledActionNames = "ScheduledActionNames" + case scalableDimension = "ScalableDimension" + case resourceId = "ResourceId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + public struct ScalableTarget: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum), AWSShapeMember(label: "RoleARN", required: true, type: .string), AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), @@ -267,9 +361,9 @@ extension ApplicationAutoscaling { public let roleARN: String /// The Unix timestamp for when the scalable target was created. public let creationTime: TimeStamp - /// The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. + /// The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. public let scalableDimension: ScalableDimension - /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. public let resourceId: String /// The maximum value to scale to in response to a scale out event. public let maxCapacity: Int32 @@ -298,14 +392,14 @@ extension ApplicationAutoscaling { } public struct DeregisterScalableTargetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "ScalableDimension", required: true, type: .enum), AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum) ] - /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. public let resourceId: String - /// The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. + /// The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. public let scalableDimension: ScalableDimension /// The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference. public let serviceNamespace: ServiceNamespace @@ -329,17 +423,18 @@ extension ApplicationAutoscaling { case ec2 = "ec2" case appstream = "appstream" case dynamodb = "dynamodb" + case rds = "rds" public var description: String { return self.rawValue } } public struct DescribeScalingPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ScalingPolicies", required: false, type: .list) ] /// The token required to get the next set of results. This value is null if there are no more results to return. public let nextToken: String? - /// A list of scaling policy objects. + /// Information about the scaling policies. public let scalingPolicies: [ScalingPolicy]? public init(nextToken: String? = nil, scalingPolicies: [ScalingPolicy]? = nil) { @@ -354,7 +449,7 @@ extension ApplicationAutoscaling { } public struct CustomizedMetricSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: true, type: .string), AWSShapeMember(label: "Namespace", required: true, type: .string), AWSShapeMember(label: "Unit", required: false, type: .string), @@ -390,7 +485,7 @@ extension ApplicationAutoscaling { } public struct DescribeScalableTargetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum), AWSShapeMember(label: "ResourceIds", required: false, type: .list), AWSShapeMember(label: "ScalableDimension", required: false, type: .enum), @@ -399,9 +494,9 @@ extension ApplicationAutoscaling { ] /// The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference. public let serviceNamespace: ServiceNamespace - /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. public let resourceIds: [String]? - /// The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. + /// The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. public let scalableDimension: ScalableDimension? /// The token for the next set of results. public let nextToken: String? @@ -425,8 +520,39 @@ extension ApplicationAutoscaling { } } + public struct DeleteScheduledActionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ScheduledActionName", required: true, type: .string), + AWSShapeMember(label: "ScalableDimension", required: false, type: .enum), + AWSShapeMember(label: "ResourceId", required: true, type: .string), + AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum) + ] + /// The name of the scheduled action. + public let scheduledActionName: String + /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. + public let scalableDimension: ScalableDimension? + /// The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. + public let resourceId: String + /// The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference. + public let serviceNamespace: ServiceNamespace + + public init(scheduledActionName: String, scalableDimension: ScalableDimension? = nil, resourceId: String, serviceNamespace: ServiceNamespace) { + self.scheduledActionName = scheduledActionName + self.scalableDimension = scalableDimension + self.resourceId = resourceId + self.serviceNamespace = serviceNamespace + } + + private enum CodingKeys: String, CodingKey { + case scheduledActionName = "ScheduledActionName" + case scalableDimension = "ScalableDimension" + case resourceId = "ResourceId" + case serviceNamespace = "ServiceNamespace" + } + } + public struct StepAdjustment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScalingAdjustment", required: true, type: .integer), AWSShapeMember(label: "MetricIntervalUpperBound", required: false, type: .double), AWSShapeMember(label: "MetricIntervalLowerBound", required: false, type: .double) @@ -451,28 +577,22 @@ extension ApplicationAutoscaling { } } - public struct DeleteScalingPolicyResponse: AWSShape { + public struct PutScheduledActionResponse: AWSShape { } - public enum ScalingActivityStatusCode: String, CustomStringConvertible, Codable { - case pending = "Pending" - case inprogress = "InProgress" - case successful = "Successful" - case overridden = "Overridden" - case unfulfilled = "Unfulfilled" - case failed = "Failed" - public var description: String { return self.rawValue } + public struct DeleteScalingPolicyResponse: AWSShape { + } public struct PredefinedMetricSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PredefinedMetricType", required: true, type: .enum), AWSShapeMember(label: "ResourceLabel", required: false, type: .string) ] - /// The metric type. + /// The metric type. The ALBRequestCountPerTarget metric type applies only to Spot fleet requests. public let predefinedMetricType: MetricType - /// Reserved for future use. + /// Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot fleet request. The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>, where: app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN. public let resourceLabel: String? public init(predefinedMetricType: MetricType, resourceLabel: String? = nil) { @@ -487,12 +607,13 @@ extension ApplicationAutoscaling { } public struct TargetTrackingScalingPolicyConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScaleOutCooldown", required: false, type: .integer), AWSShapeMember(label: "ScaleInCooldown", required: false, type: .integer), AWSShapeMember(label: "PredefinedMetricSpecification", required: false, type: .structure), AWSShapeMember(label: "TargetValue", required: true, type: .double), - AWSShapeMember(label: "CustomizedMetricSpecification", required: false, type: .structure) + AWSShapeMember(label: "CustomizedMetricSpecification", required: false, type: .structure), + AWSShapeMember(label: "DisableScaleIn", required: false, type: .boolean) ] /// The amount of time, in seconds, after a scale out activity completes before another scale out activity can start. While the cooldown period is in effect, the capacity that has been added by the previous scale out event that initiated the cooldown is calculated as part of the desired capacity for the next scale out. The intention is to continuously (but not excessively) scale out. public let scaleOutCooldown: Int32? @@ -504,13 +625,16 @@ extension ApplicationAutoscaling { public let targetValue: Double /// Reserved for future use. public let customizedMetricSpecification: CustomizedMetricSpecification? + /// Indicates whether scale in by the target tracking policy is disabled. If the value is true, scale in is disabled and the target tracking policy won't remove capacity from the scalable resource. Otherwise, scale in is enabled and the target tracking policy can remove capacity from the scalable resource. The default value is false. + public let disableScaleIn: Bool? - public init(scaleOutCooldown: Int32? = nil, scaleInCooldown: Int32? = nil, predefinedMetricSpecification: PredefinedMetricSpecification? = nil, targetValue: Double, customizedMetricSpecification: CustomizedMetricSpecification? = nil) { + public init(scaleOutCooldown: Int32? = nil, scaleInCooldown: Int32? = nil, predefinedMetricSpecification: PredefinedMetricSpecification? = nil, targetValue: Double, customizedMetricSpecification: CustomizedMetricSpecification? = nil, disableScaleIn: Bool? = nil) { self.scaleOutCooldown = scaleOutCooldown self.scaleInCooldown = scaleInCooldown self.predefinedMetricSpecification = predefinedMetricSpecification self.targetValue = targetValue self.customizedMetricSpecification = customizedMetricSpecification + self.disableScaleIn = disableScaleIn } private enum CodingKeys: String, CodingKey { @@ -519,11 +643,22 @@ extension ApplicationAutoscaling { case predefinedMetricSpecification = "PredefinedMetricSpecification" case targetValue = "TargetValue" case customizedMetricSpecification = "CustomizedMetricSpecification" + case disableScaleIn = "DisableScaleIn" } } + public enum ScalingActivityStatusCode: String, CustomStringConvertible, Codable { + case pending = "Pending" + case inprogress = "InProgress" + case successful = "Successful" + case overridden = "Overridden" + case unfulfilled = "Unfulfilled" + case failed = "Failed" + public var description: String { return self.rawValue } + } + public struct Alarm: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AlarmName", required: true, type: .string), AWSShapeMember(label: "AlarmARN", required: true, type: .string) ] @@ -544,7 +679,7 @@ extension ApplicationAutoscaling { } public struct StepScalingPolicyConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricAggregationType", required: false, type: .enum), AWSShapeMember(label: "Cooldown", required: false, type: .integer), AWSShapeMember(label: "MinAdjustmentMagnitude", required: false, type: .integer), @@ -579,8 +714,69 @@ extension ApplicationAutoscaling { } } + public struct ScheduledAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTime", required: false, type: .timestamp), + AWSShapeMember(label: "ScheduledActionARN", required: true, type: .string), + AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum), + AWSShapeMember(label: "EndTime", required: false, type: .timestamp), + AWSShapeMember(label: "ScheduledActionName", required: true, type: .string), + AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), + AWSShapeMember(label: "Schedule", required: true, type: .string), + AWSShapeMember(label: "ResourceId", required: true, type: .string), + AWSShapeMember(label: "ScalableDimension", required: false, type: .enum), + AWSShapeMember(label: "ScalableTargetAction", required: false, type: .structure) + ] + /// The date and time that the action is scheduled to begin. + public let startTime: TimeStamp? + /// The Amazon Resource Name (ARN) of the scheduled action. + public let scheduledActionARN: String + /// The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference. + public let serviceNamespace: ServiceNamespace + /// The date and time that the action is scheduled to end. + public let endTime: TimeStamp? + /// The name of the scheduled action. + public let scheduledActionName: String + /// The date and time that the scheduled action was created. + public let creationTime: TimeStamp + /// The schedule for this action. The following formats are supported: At expressions - at(yyyy-mm-ddThh:mm:ss) Rate expressions - rate(value unit) Cron expressions - cron(fields) At expressions are useful for one-time schedules. Specify the time, in UTC. For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days. For more information about cron expressions, see Cron. + public let schedule: String + /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. + public let resourceId: String + /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. + public let scalableDimension: ScalableDimension? + /// The new minimum and maximum capacity. You can set both values or just one. During the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity. + public let scalableTargetAction: ScalableTargetAction? + + public init(startTime: TimeStamp? = nil, scheduledActionARN: String, serviceNamespace: ServiceNamespace, endTime: TimeStamp? = nil, scheduledActionName: String, creationTime: TimeStamp, schedule: String, resourceId: String, scalableDimension: ScalableDimension? = nil, scalableTargetAction: ScalableTargetAction? = nil) { + self.startTime = startTime + self.scheduledActionARN = scheduledActionARN + self.serviceNamespace = serviceNamespace + self.endTime = endTime + self.scheduledActionName = scheduledActionName + self.creationTime = creationTime + self.schedule = schedule + self.resourceId = resourceId + self.scalableDimension = scalableDimension + self.scalableTargetAction = scalableTargetAction + } + + private enum CodingKeys: String, CodingKey { + case startTime = "StartTime" + case scheduledActionARN = "ScheduledActionARN" + case serviceNamespace = "ServiceNamespace" + case endTime = "EndTime" + case scheduledActionName = "ScheduledActionName" + case creationTime = "CreationTime" + case schedule = "Schedule" + case resourceId = "ResourceId" + case scalableDimension = "ScalableDimension" + case scalableTargetAction = "ScalableTargetAction" + } + } + public struct DescribeScalingActivitiesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum), AWSShapeMember(label: "ScalableDimension", required: false, type: .enum), AWSShapeMember(label: "ResourceId", required: false, type: .string), @@ -589,9 +785,9 @@ extension ApplicationAutoscaling { ] /// The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference. public let serviceNamespace: ServiceNamespace - /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. + /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. public let scalableDimension: ScalableDimension? - /// The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + /// The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. public let resourceId: String? /// The token for the next set of results. public let nextToken: String? @@ -622,7 +818,7 @@ extension ApplicationAutoscaling { } public struct PutScalingPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Alarms", required: false, type: .list), AWSShapeMember(label: "PolicyARN", required: true, type: .string) ] @@ -643,7 +839,7 @@ extension ApplicationAutoscaling { } public struct DescribeScalingPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum), AWSShapeMember(label: "ScalableDimension", required: false, type: .enum), AWSShapeMember(label: "PolicyNames", required: false, type: .list), @@ -653,13 +849,13 @@ extension ApplicationAutoscaling { ] /// The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference. public let serviceNamespace: ServiceNamespace - /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. + /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. public let scalableDimension: ScalableDimension? /// The names of the scaling policies to describe. public let policyNames: [String]? /// The token for the next set of results. public let nextToken: String? - /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. public let resourceId: String? /// The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. public let maxResults: Int32? @@ -683,8 +879,59 @@ extension ApplicationAutoscaling { } } + public struct PutScheduledActionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTime", required: false, type: .timestamp), + AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum), + AWSShapeMember(label: "EndTime", required: false, type: .timestamp), + AWSShapeMember(label: "ScheduledActionName", required: true, type: .string), + AWSShapeMember(label: "Schedule", required: false, type: .string), + AWSShapeMember(label: "ScalableDimension", required: false, type: .enum), + AWSShapeMember(label: "ResourceId", required: true, type: .string), + AWSShapeMember(label: "ScalableTargetAction", required: false, type: .structure) + ] + /// The date and time for the scheduled action to start. + public let startTime: TimeStamp? + /// The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference. + public let serviceNamespace: ServiceNamespace + /// The date and time for the scheduled action to end. + public let endTime: TimeStamp? + /// The name of the scheduled action. + public let scheduledActionName: String + /// The schedule for this action. The following formats are supported: At expressions - at(yyyy-mm-ddThh:mm:ss) Rate expressions - rate(value unit) Cron expressions - cron(fields) At expressions are useful for one-time schedules. Specify the time, in UTC. For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days. For more information about cron expressions, see Cron. + public let schedule: String? + /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. + public let scalableDimension: ScalableDimension? + /// The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. + public let resourceId: String + /// The new minimum and maximum capacity. You can set both values or just one. During the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity. + public let scalableTargetAction: ScalableTargetAction? + + public init(startTime: TimeStamp? = nil, serviceNamespace: ServiceNamespace, endTime: TimeStamp? = nil, scheduledActionName: String, schedule: String? = nil, scalableDimension: ScalableDimension? = nil, resourceId: String, scalableTargetAction: ScalableTargetAction? = nil) { + self.startTime = startTime + self.serviceNamespace = serviceNamespace + self.endTime = endTime + self.scheduledActionName = scheduledActionName + self.schedule = schedule + self.scalableDimension = scalableDimension + self.resourceId = resourceId + self.scalableTargetAction = scalableTargetAction + } + + private enum CodingKeys: String, CodingKey { + case startTime = "StartTime" + case serviceNamespace = "ServiceNamespace" + case endTime = "EndTime" + case scheduledActionName = "ScheduledActionName" + case schedule = "Schedule" + case scalableDimension = "ScalableDimension" + case resourceId = "ResourceId" + case scalableTargetAction = "ScalableTargetAction" + } + } + public struct RegisterScalableTargetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleARN", required: false, type: .string), AWSShapeMember(label: "ScalableDimension", required: true, type: .enum), AWSShapeMember(label: "MaxCapacity", required: false, type: .integer), @@ -692,13 +939,13 @@ extension ApplicationAutoscaling { AWSShapeMember(label: "MinCapacity", required: false, type: .integer), AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum) ] - /// The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf. This parameter is required when you register a scalable target and optional when you update one. + /// The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf. With Amazon RDS resources, permissions are granted using a service-linked role. For more information, see Service-Linked Roles for Application Auto Scaling. For resources that are not supported using a service-linked role, this parameter is required when you register a scalable target and optional when you update one. public let roleARN: String? - /// The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. + /// The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. public let scalableDimension: ScalableDimension /// The maximum value to scale to in response to a scale out event. This parameter is required if you are registering a scalable target and optional if you are updating one. public let maxCapacity: Int32? - /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + /// The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. public let resourceId: String /// The minimum value to scale to in response to a scale in event. This parameter is required if you are registering a scalable target and optional if you are updating one. public let minCapacity: Int32? @@ -729,7 +976,7 @@ extension ApplicationAutoscaling { } public struct ScalingActivity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: true, type: .timestamp), AWSShapeMember(label: "Details", required: false, type: .string), AWSShapeMember(label: "ServiceNamespace", required: true, type: .enum), @@ -754,13 +1001,13 @@ extension ApplicationAutoscaling { public let statusCode: ScalingActivityStatusCode /// A simple description of what caused the scaling activity to happen. public let cause: String - /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. + /// The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. public let scalableDimension: ScalableDimension /// The unique identifier of the scaling activity. public let activityId: String /// A simple message about the current status of the scaling activity. public let statusMessage: String? - /// The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. + /// The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. public let resourceId: String /// A simple description of what action the scaling activity intends to accomplish. public let description: String diff --git a/Sources/AWSSDKSwift/Services/appstream/Appstream_API.swift b/Sources/AWSSDKSwift/Services/appstream/Appstream_API.swift index b4a80e21adf..2f9c60554c2 100644 --- a/Sources/AWSSDKSwift/Services/appstream/Appstream_API.swift +++ b/Sources/AWSSDKSwift/Services/appstream/Appstream_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon AppStream 2.0 API documentation for Amazon AppStream 2.0. +Amazon AppStream 2.0 You can use Amazon AppStream 2.0 to stream desktop applications to any device running a web browser, without rewriting them. */ public struct Appstream { @@ -25,94 +25,142 @@ public struct Appstream { ) } - /// Updates an existing fleet. All the attributes except the fleet name can be updated in the STOPPED state. When a fleet is in the RUNNING state, only DisplayName and ComputeCapacity can be updated. A fleet cannot be updated in a status of STARTING or STOPPING. + /// Updates the specified fleet. If the fleet is in the STOPPED state, you can update any attribute except the fleet name. If the fleet is in the RUNNING state, you can update the DisplayName and ComputeCapacity attributes. If the fleet is in the STARTING or STOPPING state, you can't update it. public func updateFleet(_ input: UpdateFleetRequest) throws -> UpdateFleetResult { return try client.send(operation: "UpdateFleet", path: "/", httpMethod: "POST", input: input) } - /// Create a new stack. - public func createStack(_ input: CreateStackRequest) throws -> CreateStackResult { - return try client.send(operation: "CreateStack", path: "/", httpMethod: "POST", input: input) + public func describeImageBuilders(_ input: DescribeImageBuildersRequest) throws -> DescribeImageBuildersResult { + return try client.send(operation: "DescribeImageBuilders", path: "/", httpMethod: "POST", input: input) } - /// Lists all fleets associated with the stack. + /// Lists the fleets associated with the specified stack. public func listAssociatedFleets(_ input: ListAssociatedFleetsRequest) throws -> ListAssociatedFleetsResult { return try client.send(operation: "ListAssociatedFleets", path: "/", httpMethod: "POST", input: input) } - /// Stops a fleet. - public func stopFleet(_ input: StopFleetRequest) throws -> StopFleetResult { - return try client.send(operation: "StopFleet", path: "/", httpMethod: "POST", input: input) + /// Updates the specified directory configuration. + public func updateDirectoryConfig(_ input: UpdateDirectoryConfigRequest) throws -> UpdateDirectoryConfigResult { + return try client.send(operation: "UpdateDirectoryConfig", path: "/", httpMethod: "POST", input: input) } - /// Starts a fleet. - public func startFleet(_ input: StartFleetRequest) throws -> StartFleetResult { - return try client.send(operation: "StartFleet", path: "/", httpMethod: "POST", input: input) + /// Stops the specified fleet. + public func stopFleet(_ input: StopFleetRequest) throws -> StopFleetResult { + return try client.send(operation: "StopFleet", path: "/", httpMethod: "POST", input: input) } - /// Associate a fleet to a stack. + /// Associates the specified fleet with the specified stack. public func associateFleet(_ input: AssociateFleetRequest) throws -> AssociateFleetResult { return try client.send(operation: "AssociateFleet", path: "/", httpMethod: "POST", input: input) } - /// Disassociates a fleet from a stack. - public func disassociateFleet(_ input: DisassociateFleetRequest) throws -> DisassociateFleetResult { - return try client.send(operation: "DisassociateFleet", path: "/", httpMethod: "POST", input: input) + public func stopImageBuilder(_ input: StopImageBuilderRequest) throws -> StopImageBuilderResult { + return try client.send(operation: "StopImageBuilder", path: "/", httpMethod: "POST", input: input) + } + + public func startImageBuilder(_ input: StartImageBuilderRequest) throws -> StartImageBuilderResult { + return try client.send(operation: "StartImageBuilder", path: "/", httpMethod: "POST", input: input) } - /// Deletes a fleet. + /// Deletes the specified fleet. public func deleteFleet(_ input: DeleteFleetRequest) throws -> DeleteFleetResult { return try client.send(operation: "DeleteFleet", path: "/", httpMethod: "POST", input: input) } - /// This operation immediately stops a streaming session. - public func expireSession(_ input: ExpireSessionRequest) throws -> ExpireSessionResult { - return try client.send(operation: "ExpireSession", path: "/", httpMethod: "POST", input: input) + /// Disassociates the specified fleet from the specified stack. + public func disassociateFleet(_ input: DisassociateFleetRequest) throws -> DisassociateFleetResult { + return try client.send(operation: "DisassociateFleet", path: "/", httpMethod: "POST", input: input) } - /// Lists all stacks to which the specified fleet is associated. - public func listAssociatedStacks(_ input: ListAssociatedStacksRequest) throws -> ListAssociatedStacksResult { - return try client.send(operation: "ListAssociatedStacks", path: "/", httpMethod: "POST", input: input) + public func createImageBuilderStreamingURL(_ input: CreateImageBuilderStreamingURLRequest) throws -> CreateImageBuilderStreamingURLResult { + return try client.send(operation: "CreateImageBuilderStreamingURL", path: "/", httpMethod: "POST", input: input) } - /// Creates a new fleet. - public func createFleet(_ input: CreateFleetRequest) throws -> CreateFleetResult { - return try client.send(operation: "CreateFleet", path: "/", httpMethod: "POST", input: input) + /// Creates a directory configuration. + public func createDirectoryConfig(_ input: CreateDirectoryConfigRequest) throws -> CreateDirectoryConfigResult { + return try client.send(operation: "CreateDirectoryConfig", path: "/", httpMethod: "POST", input: input) } - /// Describes the streaming sessions for a stack and a fleet. If a user ID is provided, this operation returns streaming sessions for only that user. Pass this value for the nextToken parameter in a subsequent call to this operation to retrieve the next set of items. If an authentication type is not provided, the operation defaults to users authenticated using a streaming URL. + /// Describes the streaming sessions for the specified stack and fleet. If a user ID is provided, only the streaming sessions for only that user are returned. If an authentication type is not provided, the default is to authenticate users using a streaming URL. public func describeSessions(_ input: DescribeSessionsRequest) throws -> DescribeSessionsResult { return try client.send(operation: "DescribeSessions", path: "/", httpMethod: "POST", input: input) } - /// If stack names are not provided, this operation describes the specified stacks; otherwise, all stacks in the account are described. Pass the nextToken value in a subsequent call to this operation to retrieve the next set of items. - public func describeStacks(_ input: DescribeStacksRequest) throws -> DescribeStacksResult { - return try client.send(operation: "DescribeStacks", path: "/", httpMethod: "POST", input: input) + /// Creates a fleet. + public func createFleet(_ input: CreateFleetRequest) throws -> CreateFleetResult { + return try client.send(operation: "CreateFleet", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the stacks associated with the specified fleet. + public func listAssociatedStacks(_ input: ListAssociatedStacksRequest) throws -> ListAssociatedStacksResult { + return try client.send(operation: "ListAssociatedStacks", path: "/", httpMethod: "POST", input: input) } - /// If fleet names are provided, this operation describes the specified fleets; otherwise, all the fleets in the account are described. + /// Describes the specified fleets or all fleets in the account. public func describeFleets(_ input: DescribeFleetsRequest) throws -> DescribeFleetsResult { return try client.send(operation: "DescribeFleets", path: "/", httpMethod: "POST", input: input) } - /// Describes the images. If a list of names is not provided, all images in your account are returned. This operation does not return a paginated result. - public func describeImages(_ input: DescribeImagesRequest) throws -> DescribeImagesResult { - return try client.send(operation: "DescribeImages", path: "/", httpMethod: "POST", input: input) + /// Deletes the specified stack. After this operation completes, the environment can no longer be activated and any reservations made for the stack are released. + public func deleteStack(_ input: DeleteStackRequest) throws -> DeleteStackResult { + return try client.send(operation: "DeleteStack", path: "/", httpMethod: "POST", input: input) } - /// Updates the specified fields in the stack with the specified name. - public func updateStack(_ input: UpdateStackRequest) throws -> UpdateStackResult { - return try client.send(operation: "UpdateStack", path: "/", httpMethod: "POST", input: input) + /// Describes the specified images or all images in the account. + public func describeImages(_ input: DescribeImagesRequest) throws -> DescribeImagesResult { + return try client.send(operation: "DescribeImages", path: "/", httpMethod: "POST", input: input) } - /// Creates a URL to start an AppStream 2.0 streaming session for a user. By default, the URL is valid only for 1 minute from the time that it is generated. + /// Creates a URL to start a streaming session for the specified user. By default, the URL is valid only for one minute from the time that it is generated. public func createStreamingURL(_ input: CreateStreamingURLRequest) throws -> CreateStreamingURLResult { return try client.send(operation: "CreateStreamingURL", path: "/", httpMethod: "POST", input: input) } - /// Deletes the stack. After this operation completes, the environment can no longer be activated, and any reservations made for the stack are released. - public func deleteStack(_ input: DeleteStackRequest) throws -> DeleteStackResult { - return try client.send(operation: "DeleteStack", path: "/", httpMethod: "POST", input: input) + /// Deletes the specified directory configuration. + public func deleteDirectoryConfig(_ input: DeleteDirectoryConfigRequest) throws -> DeleteDirectoryConfigResult { + return try client.send(operation: "DeleteDirectoryConfig", path: "/", httpMethod: "POST", input: input) + } + + public func createImageBuilder(_ input: CreateImageBuilderRequest) throws -> CreateImageBuilderResult { + return try client.send(operation: "CreateImageBuilder", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a stack. + public func createStack(_ input: CreateStackRequest) throws -> CreateStackResult { + return try client.send(operation: "CreateStack", path: "/", httpMethod: "POST", input: input) + } + + /// Starts the specified fleet. + public func startFleet(_ input: StartFleetRequest) throws -> StartFleetResult { + return try client.send(operation: "StartFleet", path: "/", httpMethod: "POST", input: input) + } + + public func deleteImage(_ input: DeleteImageRequest) throws -> DeleteImageResult { + return try client.send(operation: "DeleteImage", path: "/", httpMethod: "POST", input: input) + } + + /// Stops the specified streaming session. + public func expireSession(_ input: ExpireSessionRequest) throws -> ExpireSessionResult { + return try client.send(operation: "ExpireSession", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the specified stacks or all stacks in the account. + public func describeStacks(_ input: DescribeStacksRequest) throws -> DescribeStacksResult { + return try client.send(operation: "DescribeStacks", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the specified directory configurations. + public func describeDirectoryConfigs(_ input: DescribeDirectoryConfigsRequest) throws -> DescribeDirectoryConfigsResult { + return try client.send(operation: "DescribeDirectoryConfigs", path: "/", httpMethod: "POST", input: input) + } + + public func deleteImageBuilder(_ input: DeleteImageBuilderRequest) throws -> DeleteImageBuilderResult { + return try client.send(operation: "DeleteImageBuilder", path: "/", httpMethod: "POST", input: input) + } + + /// Updates the specified stack. + public func updateStack(_ input: UpdateStackRequest) throws -> UpdateStackResult { + return try client.send(operation: "UpdateStack", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/appstream/Appstream_Error.swift b/Sources/AWSSDKSwift/Services/appstream/Appstream_Error.swift index 835956351cf..b9ea4e45645 100644 --- a/Sources/AWSSDKSwift/Services/appstream/Appstream_Error.swift +++ b/Sources/AWSSDKSwift/Services/appstream/Appstream_Error.swift @@ -12,8 +12,8 @@ public enum AppstreamError: AWSErrorType { case invalidParameterCombinationException(message: String?) case concurrentModificationException(message: String?) case incompatibleImageException(message: String?) - case resourceAlreadyExistsException(message: String?) case operationNotPermittedException(message: String?) + case resourceAlreadyExistsException(message: String?) } extension AppstreamError { @@ -39,10 +39,10 @@ extension AppstreamError { self = .concurrentModificationException(message: message) case "IncompatibleImageException": self = .incompatibleImageException(message: message) - case "ResourceAlreadyExistsException": - self = .resourceAlreadyExistsException(message: message) case "OperationNotPermittedException": self = .operationNotPermittedException(message: message) + case "ResourceAlreadyExistsException": + self = .resourceAlreadyExistsException(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/appstream/Appstream_Shapes.swift b/Sources/AWSSDKSwift/Services/appstream/Appstream_Shapes.swift index ec6cefd3c70..b789354a331 100644 --- a/Sources/AWSSDKSwift/Services/appstream/Appstream_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/appstream/Appstream_Shapes.swift @@ -5,33 +5,27 @@ import AWSSDKSwiftCore extension Appstream { - public struct ListAssociatedFleetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackName", required: true, type: .string), - AWSShapeMember(label: "NextToken", required: false, type: .string) + public struct StopImageBuilderResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ImageBuilder", required: false, type: .structure) ] - /// The name of the stack whose associated fleets are listed. - public let stackName: String - /// The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. - public let nextToken: String? + public let imageBuilder: ImageBuilder? - public init(stackName: String, nextToken: String? = nil) { - self.stackName = stackName - self.nextToken = nextToken + public init(imageBuilder: ImageBuilder? = nil) { + self.imageBuilder = imageBuilder } private enum CodingKeys: String, CodingKey { - case stackName = "StackName" - case nextToken = "NextToken" + case imageBuilder = "ImageBuilder" } } public struct DescribeStacksResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Stacks", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// The list of stack details. + /// Information about the stacks. public let stacks: [Stack]? /// The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. public let nextToken: String? @@ -47,109 +41,80 @@ extension Appstream { } } - public struct DeleteStackResult: AWSShape { - - } - - public struct ComputeCapacity: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DesiredInstances", required: true, type: .integer) + public struct DescribeDirectoryConfigsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DirectoryNames", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// The desired number of streaming instances. - public let desiredInstances: Int32 + /// The directory names. + public let directoryNames: [String]? + /// The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + public let nextToken: String? + /// The maximum size of each page of results. + public let maxResults: Int32? - public init(desiredInstances: Int32) { - self.desiredInstances = desiredInstances + public init(directoryNames: [String]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.directoryNames = directoryNames + self.nextToken = nextToken + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case desiredInstances = "DesiredInstances" + case directoryNames = "DirectoryNames" + case nextToken = "NextToken" + case maxResults = "MaxResults" } } - public struct DescribeImagesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Names", required: false, type: .list) + public struct CreateImageBuilderResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ImageBuilder", required: false, type: .structure) ] - /// A specific list of images to describe. - public let names: [String]? + public let imageBuilder: ImageBuilder? - public init(names: [String]? = nil) { - self.names = names + public init(imageBuilder: ImageBuilder? = nil) { + self.imageBuilder = imageBuilder } private enum CodingKeys: String, CodingKey { - case names = "Names" + case imageBuilder = "ImageBuilder" } } - public struct DescribeImagesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Images", required: false, type: .list) + public struct StartImageBuilderResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ImageBuilder", required: false, type: .structure) ] - /// The list of images. - public let images: [Image]? + public let imageBuilder: ImageBuilder? - public init(images: [Image]? = nil) { - self.images = images + public init(imageBuilder: ImageBuilder? = nil) { + self.imageBuilder = imageBuilder } private enum CodingKeys: String, CodingKey { - case images = "Images" + case imageBuilder = "ImageBuilder" } } - public enum FleetState: String, CustomStringConvertible, Codable { - case starting = "STARTING" - case running = "RUNNING" - case stopping = "STOPPING" - case stopped = "STOPPED" - public var description: String { return self.rawValue } - } - - public struct DescribeSessionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AuthenticationType", required: false, type: .enum), - AWSShapeMember(label: "UserId", required: false, type: .string), - AWSShapeMember(label: "Limit", required: false, type: .integer), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "StackName", required: true, type: .string), - AWSShapeMember(label: "FleetName", required: true, type: .string) + public struct DescribeImagesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Names", required: false, type: .list) ] - /// The authentication method of the user. It can be API for a user authenticated using a streaming URL, or SAML for a SAML federated user. If an authentication type is not provided, the operation defaults to users authenticated using a streaming URL. - public let authenticationType: AuthenticationType? - /// The user for whom to list sessions. Use null to describe all the sessions for the stack and fleet. - public let userId: String? - /// The size of each page of results. The default value is 20 and the maximum supported value is 50. - public let limit: Int32? - /// The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. - public let nextToken: String? - /// The name of the stack for which to list sessions. - public let stackName: String - /// The name of the fleet for which to list sessions. - public let fleetName: String + /// The names of the images to describe. + public let names: [String]? - public init(authenticationType: AuthenticationType? = nil, userId: String? = nil, limit: Int32? = nil, nextToken: String? = nil, stackName: String, fleetName: String) { - self.authenticationType = authenticationType - self.userId = userId - self.limit = limit - self.nextToken = nextToken - self.stackName = stackName - self.fleetName = fleetName + public init(names: [String]? = nil) { + self.names = names } private enum CodingKeys: String, CodingKey { - case authenticationType = "AuthenticationType" - case userId = "UserId" - case limit = "Limit" - case nextToken = "NextToken" - case stackName = "StackName" - case fleetName = "FleetName" + case names = "Names" } } public struct Session: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserId", required: true, type: .string), AWSShapeMember(label: "AuthenticationType", required: false, type: .enum), AWSShapeMember(label: "StackName", required: true, type: .string), @@ -159,15 +124,15 @@ extension Appstream { ] /// The identifier of the user for whom the session was created. public let userId: String - /// The authentication method of the user for whom the session was created. It can be API for a user authenticated using a streaming URL or SAML for a SAML federated user. + /// The authentication method. The user is authenticated using a streaming URL (API) or SAML federation (SAML). public let authenticationType: AuthenticationType? - /// The name of the stack for which the streaming session was created. + /// The name of the stack for the streaming session. public let stackName: String /// The current state of the streaming session. public let state: SessionState - /// The name of the fleet for which the streaming session was created. + /// The name of the fleet for the streaming session. public let fleetName: String - /// The unique ID for a streaming session. + /// The ID of the streaming session. public let id: String public init(userId: String, authenticationType: AuthenticationType? = nil, stackName: String, state: SessionState, fleetName: String, id: String) { @@ -189,35 +154,19 @@ extension Appstream { } } - public struct ListAssociatedFleetsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Names", required: false, type: .list) - ] - /// The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. - public let nextToken: String? - /// The names of associated fleets. - public let names: [String]? - - public init(nextToken: String? = nil, names: [String]? = nil) { - self.nextToken = nextToken - self.names = names - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case names = "Names" - } + public enum PlatformType: String, CustomStringConvertible, Codable { + case windows = "WINDOWS" + public var description: String { return self.rawValue } } public struct StackError: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorMessage", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .enum) ] - /// The error message of a stack error. + /// The error message. public let errorMessage: String? - /// The error code of a stack error. + /// The error code. public let errorCode: StackErrorCode? public init(errorMessage: String? = nil, errorCode: StackErrorCode? = nil) { @@ -231,46 +180,49 @@ extension Appstream { } } - public struct DescribeFleetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ComputeCapacity: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DesiredInstances", required: true, type: .integer) + ] + /// The desired number of streaming instances. + public let desiredInstances: Int32 + + public init(desiredInstances: Int32) { + self.desiredInstances = desiredInstances + } + + private enum CodingKeys: String, CodingKey { + case desiredInstances = "DesiredInstances" + } + } + + public struct DescribeImageBuildersResult: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Names", required: false, type: .list) + AWSShapeMember(label: "ImageBuilders", required: false, type: .list) ] - /// The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. public let nextToken: String? - /// The fleet names to describe. Use null to describe all the fleets for the AWS account. - public let names: [String]? + public let imageBuilders: [ImageBuilder]? - public init(nextToken: String? = nil, names: [String]? = nil) { + public init(nextToken: String? = nil, imageBuilders: [ImageBuilder]? = nil) { self.nextToken = nextToken - self.names = names + self.imageBuilders = imageBuilders } private enum CodingKeys: String, CodingKey { case nextToken = "NextToken" - case names = "Names" + case imageBuilders = "ImageBuilders" } } - public enum StackErrorCode: String, CustomStringConvertible, Codable { - case storageConnectorError = "STORAGE_CONNECTOR_ERROR" - case internalServiceError = "INTERNAL_SERVICE_ERROR" - public var description: String { return self.rawValue } - } - - public enum PlatformType: String, CustomStringConvertible, Codable { - case windows = "WINDOWS" - public var description: String { return self.rawValue } - } - public struct FleetError: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorMessage", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .enum) ] - /// The error message generated when the fleet has errors. + /// The error message. public let errorMessage: String? - /// The error code for the fleet error. + /// The error code. public let errorCode: FleetErrorCode? public init(errorMessage: String? = nil, errorCode: FleetErrorCode? = nil) { @@ -284,24 +236,18 @@ extension Appstream { } } - public struct ListAssociatedStacksResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Names", required: false, type: .list) + public struct DeleteImageResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Image", required: false, type: .structure) ] - /// The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. - public let nextToken: String? - /// The names of associated stacks. - public let names: [String]? + public let image: Image? - public init(nextToken: String? = nil, names: [String]? = nil) { - self.nextToken = nextToken - self.names = names + public init(image: Image? = nil) { + self.image = image } private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case names = "Names" + case image = "Image" } } @@ -311,10 +257,10 @@ extension Appstream { } public struct UpdateFleetResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Fleet", required: false, type: .structure) ] - /// A list of fleet details. + /// Information about the fleet. public let fleet: Fleet? public init(fleet: Fleet? = nil) { @@ -326,22 +272,52 @@ extension Appstream { } } - public enum FleetAttribute: String, CustomStringConvertible, Codable { - case vpcConfiguration = "VPC_CONFIGURATION" - case vpcConfigurationSecurityGroupIds = "VPC_CONFIGURATION_SECURITY_GROUP_IDS" - public var description: String { return self.rawValue } + public struct DescribeDirectoryConfigsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DirectoryConfigs", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Information about the directory configurations. + public let directoryConfigs: [DirectoryConfig]? + /// The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + public let nextToken: String? + + public init(directoryConfigs: [DirectoryConfig]? = nil, nextToken: String? = nil) { + self.directoryConfigs = directoryConfigs + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case directoryConfigs = "DirectoryConfigs" + case nextToken = "NextToken" + } } - public struct ExpireSessionResult: AWSShape { + public struct ImageBuilderStateChangeReason: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Code", required: false, type: .enum), + AWSShapeMember(label: "Message", required: false, type: .string) + ] + public let code: ImageBuilderStateChangeReasonCode? + public let message: String? + + public init(code: ImageBuilderStateChangeReasonCode? = nil, message: String? = nil) { + self.code = code + self.message = message + } + private enum CodingKeys: String, CodingKey { + case code = "Code" + case message = "Message" + } } - public struct DisassociateFleetResult: AWSShape { + public struct DeleteFleetResult: AWSShape { } public struct Stack: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "StackErrors", required: false, type: .list), AWSShapeMember(label: "DisplayName", required: false, type: .string), @@ -352,17 +328,17 @@ extension Appstream { ] /// The ARN of the stack. public let arn: String? - /// The list of errors associated with the stack. + /// The errors for the stack. public let stackErrors: [StackError]? - /// A display name for the stack. + /// The stack name displayed to end users. public let displayName: String? - /// The unique identifier of the stack. + /// The name of the stack. public let name: String - /// The storage connectors to be enabled for the stack. + /// The storage connectors to enable. public let storageConnectors: [StorageConnector]? - /// The timestamp when the stack was created. + /// The time the stack was created. public let createdTime: TimeStamp? - /// A meaningful description for the stack. + /// The description displayed to end users. public let description: String? public init(arn: String? = nil, stackErrors: [StackError]? = nil, displayName: String? = nil, name: String, storageConnectors: [StorageConnector]? = nil, createdTime: TimeStamp? = nil, description: String? = nil) { @@ -386,227 +362,921 @@ extension Appstream { } } - public struct UpdateStackResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Stack", required: false, type: .structure) + public struct DisassociateFleetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackName", required: true, type: .string), + AWSShapeMember(label: "FleetName", required: true, type: .string) ] - /// A list of stack details. - public let stack: Stack? + /// The name of the stack. + public let stackName: String + /// The name of the fleet. + public let fleetName: String - public init(stack: Stack? = nil) { - self.stack = stack + public init(stackName: String, fleetName: String) { + self.stackName = stackName + self.fleetName = fleetName } private enum CodingKeys: String, CodingKey { - case stack = "Stack" + case stackName = "StackName" + case fleetName = "FleetName" } } - public struct CreateFleetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ComputeCapacity", required: true, type: .structure), + public struct DeleteDirectoryConfigResult: AWSShape { + + } + + public struct UpdateFleetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeleteVpcConfig", required: false, type: .boolean), AWSShapeMember(label: "VpcConfig", required: false, type: .structure), - AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "DisplayName", required: false, type: .string), - AWSShapeMember(label: "ImageName", required: true, type: .string), - AWSShapeMember(label: "DisconnectTimeoutInSeconds", required: false, type: .integer), + AWSShapeMember(label: "ImageName", required: false, type: .string), + AWSShapeMember(label: "AttributesToDelete", required: false, type: .list), + AWSShapeMember(label: "DomainJoinInfo", required: false, type: .structure), + AWSShapeMember(label: "InstanceType", required: false, type: .string), AWSShapeMember(label: "EnableDefaultInternetAccess", required: false, type: .boolean), - AWSShapeMember(label: "MaxUserDurationInSeconds", required: false, type: .integer), - AWSShapeMember(label: "InstanceType", required: true, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string) + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "ComputeCapacity", required: false, type: .structure), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "DisconnectTimeoutInSeconds", required: false, type: .integer), + AWSShapeMember(label: "MaxUserDurationInSeconds", required: false, type: .integer) ] - /// The parameters for the capacity allocated to the fleet. - public let computeCapacity: ComputeCapacity + /// Deletes the VPC association for the specified fleet. + public let deleteVpcConfig: Bool? /// The VPC configuration for the fleet. public let vpcConfig: VpcConfig? - /// A unique identifier for the fleet. - public let name: String - /// The display name of the fleet. + /// The fleet name displayed to end users. public let displayName: String? - /// Unique name of the image used by the fleet. - public let imageName: String - /// The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600. - public let disconnectTimeoutInSeconds: Int32? - /// Enables or disables default Internet access for the fleet. + /// The name of the image used by the fleet. + public let imageName: String? + /// The fleet attributes to delete. + public let attributesToDelete: [FleetAttribute]? + /// The information needed for streaming instances to join a domain. + public let domainJoinInfo: DomainJoinInfo? + /// The instance type to use when launching fleet instances. The following instance types are available: stream.standard.medium stream.standard.large stream.compute.large stream.compute.xlarge stream.compute.2xlarge stream.compute.4xlarge stream.compute.8xlarge stream.memory.large stream.memory.xlarge stream.memory.2xlarge stream.memory.4xlarge stream.memory.8xlarge stream.graphics-design.large stream.graphics-design.xlarge stream.graphics-design.2xlarge stream.graphics-design.4xlarge stream.graphics-desktop.2xlarge stream.graphics-pro.4xlarge stream.graphics-pro.8xlarge stream.graphics-pro.16xlarge + public let instanceType: String? + /// Enables or disables default internet access for the fleet. public let enableDefaultInternetAccess: Bool? - /// The maximum time for which a streaming session can run. The input can be any numeric value in seconds between 600 and 57600. - public let maxUserDurationInSeconds: Int32? - /// The instance type of compute resources for the fleet. Fleet instances are launched from this instance type. - public let instanceType: String - /// The description of the fleet. + /// The description displayed to end users. public let description: String? + /// The desired capacity for the fleet. + public let computeCapacity: ComputeCapacity? + /// A unique name for the fleet. + public let name: String + /// The time after disconnection when a session is considered to have ended, in seconds. If a user who was disconnected reconnects within this time interval, the user is connected to their previous session. Specify a value between 60 and 57600. + public let disconnectTimeoutInSeconds: Int32? + /// The maximum time that a streaming session can run, in seconds. Specify a value between 600 and 57600. + public let maxUserDurationInSeconds: Int32? - public init(computeCapacity: ComputeCapacity, vpcConfig: VpcConfig? = nil, name: String, displayName: String? = nil, imageName: String, disconnectTimeoutInSeconds: Int32? = nil, enableDefaultInternetAccess: Bool? = nil, maxUserDurationInSeconds: Int32? = nil, instanceType: String, description: String? = nil) { - self.computeCapacity = computeCapacity + public init(deleteVpcConfig: Bool? = nil, vpcConfig: VpcConfig? = nil, displayName: String? = nil, imageName: String? = nil, attributesToDelete: [FleetAttribute]? = nil, domainJoinInfo: DomainJoinInfo? = nil, instanceType: String? = nil, enableDefaultInternetAccess: Bool? = nil, description: String? = nil, computeCapacity: ComputeCapacity? = nil, name: String, disconnectTimeoutInSeconds: Int32? = nil, maxUserDurationInSeconds: Int32? = nil) { + self.deleteVpcConfig = deleteVpcConfig self.vpcConfig = vpcConfig - self.name = name self.displayName = displayName self.imageName = imageName - self.disconnectTimeoutInSeconds = disconnectTimeoutInSeconds - self.enableDefaultInternetAccess = enableDefaultInternetAccess - self.maxUserDurationInSeconds = maxUserDurationInSeconds + self.attributesToDelete = attributesToDelete + self.domainJoinInfo = domainJoinInfo self.instanceType = instanceType + self.enableDefaultInternetAccess = enableDefaultInternetAccess self.description = description + self.computeCapacity = computeCapacity + self.name = name + self.disconnectTimeoutInSeconds = disconnectTimeoutInSeconds + self.maxUserDurationInSeconds = maxUserDurationInSeconds } private enum CodingKeys: String, CodingKey { - case computeCapacity = "ComputeCapacity" + case deleteVpcConfig = "DeleteVpcConfig" case vpcConfig = "VpcConfig" - case name = "Name" case displayName = "DisplayName" case imageName = "ImageName" - case disconnectTimeoutInSeconds = "DisconnectTimeoutInSeconds" - case enableDefaultInternetAccess = "EnableDefaultInternetAccess" - case maxUserDurationInSeconds = "MaxUserDurationInSeconds" + case attributesToDelete = "AttributesToDelete" + case domainJoinInfo = "DomainJoinInfo" case instanceType = "InstanceType" + case enableDefaultInternetAccess = "EnableDefaultInternetAccess" case description = "Description" + case computeCapacity = "ComputeCapacity" + case name = "Name" + case disconnectTimeoutInSeconds = "DisconnectTimeoutInSeconds" + case maxUserDurationInSeconds = "MaxUserDurationInSeconds" } } - public struct DeleteFleetResult: AWSShape { - - } - - public struct UpdateFleetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeleteVpcConfig", required: false, type: .boolean), - AWSShapeMember(label: "ComputeCapacity", required: false, type: .structure), + public struct Application: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Metadata", required: false, type: .map), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "DisplayName", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "LaunchPath", required: false, type: .string), + AWSShapeMember(label: "LaunchParameters", required: false, type: .string), + AWSShapeMember(label: "IconURL", required: false, type: .string) + ] + /// Additional attributes that describe the application. + public let metadata: [String: String]? + /// The name of the application. + public let name: String? + /// The application name displayed to end users. + public let displayName: String? + /// If there is a problem, the application can be disabled after image creation. + public let enabled: Bool? + /// The path to the application executable in the instance. + public let launchPath: String? + /// The arguments that are passed to the application at launch. + public let launchParameters: String? + /// The URL for the application icon. This URL might be time-limited. + public let iconURL: String? + + public init(metadata: [String: String]? = nil, name: String? = nil, displayName: String? = nil, enabled: Bool? = nil, launchPath: String? = nil, launchParameters: String? = nil, iconURL: String? = nil) { + self.metadata = metadata + self.name = name + self.displayName = displayName + self.enabled = enabled + self.launchPath = launchPath + self.launchParameters = launchParameters + self.iconURL = iconURL + } + + private enum CodingKeys: String, CodingKey { + case metadata = "Metadata" + case name = "Name" + case displayName = "DisplayName" + case enabled = "Enabled" + case launchPath = "LaunchPath" + case launchParameters = "LaunchParameters" + case iconURL = "IconURL" + } + } + + public struct StartFleetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The name of the fleet. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct StartFleetResult: AWSShape { + + } + + public enum ImageBuilderStateChangeReasonCode: String, CustomStringConvertible, Codable { + case internalError = "INTERNAL_ERROR" + case imageUnavailable = "IMAGE_UNAVAILABLE" + public var description: String { return self.rawValue } + } + + public struct StorageConnector: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceIdentifier", required: false, type: .string), + AWSShapeMember(label: "ConnectorType", required: true, type: .enum) + ] + /// The ARN of the storage connector. + public let resourceIdentifier: String? + /// The type of storage connector. + public let connectorType: StorageConnectorType + + public init(resourceIdentifier: String? = nil, connectorType: StorageConnectorType) { + self.resourceIdentifier = resourceIdentifier + self.connectorType = connectorType + } + + private enum CodingKeys: String, CodingKey { + case resourceIdentifier = "ResourceIdentifier" + case connectorType = "ConnectorType" + } + } + + public struct CreateImageBuilderStreamingURLRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Validity", required: false, type: .long) + ] + public let name: String + public let validity: Int64? + + public init(name: String, validity: Int64? = nil) { + self.name = name + self.validity = validity + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case validity = "Validity" + } + } + + public struct DescribeStacksRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Names", required: false, type: .list) + ] + /// The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + public let nextToken: String? + /// The names of the stacks to describe. + public let names: [String]? + + public init(nextToken: String? = nil, names: [String]? = nil) { + self.nextToken = nextToken + self.names = names + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case names = "Names" + } + } + + public struct CreateImageBuilderStreamingURLResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamingURL", required: false, type: .string), + AWSShapeMember(label: "Expires", required: false, type: .timestamp) + ] + public let streamingURL: String? + public let expires: TimeStamp? + + public init(streamingURL: String? = nil, expires: TimeStamp? = nil) { + self.streamingURL = streamingURL + self.expires = expires + } + + private enum CodingKeys: String, CodingKey { + case streamingURL = "StreamingURL" + case expires = "Expires" + } + } + + public struct ImageStateChangeReason: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Code", required: false, type: .enum), + AWSShapeMember(label: "Message", required: false, type: .string) + ] + /// The state change reason code. + public let code: ImageStateChangeReasonCode? + /// The state change reason message. + public let message: String? + + public init(code: ImageStateChangeReasonCode? = nil, message: String? = nil) { + self.code = code + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case code = "Code" + case message = "Message" + } + } + + public enum AuthenticationType: String, CustomStringConvertible, Codable { + case api = "API" + case saml = "SAML" + case userpool = "USERPOOL" + public var description: String { return self.rawValue } + } + + public struct DescribeImageBuildersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Names", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + public let names: [String]? + public let nextToken: String? + public let maxResults: Int32? + + public init(names: [String]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.names = names + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case names = "Names" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct CreateStackRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StorageConnectors", required: false, type: .list), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "DisplayName", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The storage connectors to enable. + public let storageConnectors: [StorageConnector]? + /// The name of the stack. + public let name: String + /// The stack name displayed to end users. + public let displayName: String? + /// The description displayed to end users. + public let description: String? + + public init(storageConnectors: [StorageConnector]? = nil, name: String, displayName: String? = nil, description: String? = nil) { + self.storageConnectors = storageConnectors + self.name = name + self.displayName = displayName + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case storageConnectors = "StorageConnectors" + case name = "Name" + case displayName = "DisplayName" + case description = "Description" + } + } + + public struct DeleteDirectoryConfigRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DirectoryName", required: true, type: .string) + ] + /// The name of the directory configuration. + public let directoryName: String + + public init(directoryName: String) { + self.directoryName = directoryName + } + + private enum CodingKeys: String, CodingKey { + case directoryName = "DirectoryName" + } + } + + public struct DeleteImageBuilderResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ImageBuilder", required: false, type: .structure) + ] + public let imageBuilder: ImageBuilder? + + public init(imageBuilder: ImageBuilder? = nil) { + self.imageBuilder = imageBuilder + } + + private enum CodingKeys: String, CodingKey { + case imageBuilder = "ImageBuilder" + } + } + + public struct StopImageBuilderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public enum ImageStateChangeReasonCode: String, CustomStringConvertible, Codable { + case internalError = "INTERNAL_ERROR" + case imageBuilderNotAvailable = "IMAGE_BUILDER_NOT_AVAILABLE" + public var description: String { return self.rawValue } + } + + public enum FleetErrorCode: String, CustomStringConvertible, Codable { + case iamServiceRoleMissingEniDescribeAction = "IAM_SERVICE_ROLE_MISSING_ENI_DESCRIBE_ACTION" + case iamServiceRoleMissingEniCreateAction = "IAM_SERVICE_ROLE_MISSING_ENI_CREATE_ACTION" + case iamServiceRoleMissingEniDeleteAction = "IAM_SERVICE_ROLE_MISSING_ENI_DELETE_ACTION" + case networkInterfaceLimitExceeded = "NETWORK_INTERFACE_LIMIT_EXCEEDED" + case internalServiceError = "INTERNAL_SERVICE_ERROR" + case iamServiceRoleIsMissing = "IAM_SERVICE_ROLE_IS_MISSING" + case subnetHasInsufficientIpAddresses = "SUBNET_HAS_INSUFFICIENT_IP_ADDRESSES" + case iamServiceRoleMissingDescribeSubnetAction = "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION" + case subnetNotFound = "SUBNET_NOT_FOUND" + case imageNotFound = "IMAGE_NOT_FOUND" + case invalidSubnetConfiguration = "INVALID_SUBNET_CONFIGURATION" + case securityGroupsNotFound = "SECURITY_GROUPS_NOT_FOUND" + case igwNotAttached = "IGW_NOT_ATTACHED" + case iamServiceRoleMissingDescribeSecurityGroupsAction = "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION" + case domainJoinErrorFileNotFound = "DOMAIN_JOIN_ERROR_FILE_NOT_FOUND" + case domainJoinErrorAccessDenied = "DOMAIN_JOIN_ERROR_ACCESS_DENIED" + case domainJoinErrorLogonFailure = "DOMAIN_JOIN_ERROR_LOGON_FAILURE" + case domainJoinErrorInvalidParameter = "DOMAIN_JOIN_ERROR_INVALID_PARAMETER" + case domainJoinErrorMoreData = "DOMAIN_JOIN_ERROR_MORE_DATA" + case domainJoinErrorNoSuchDomain = "DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN" + case domainJoinErrorNotSupported = "DOMAIN_JOIN_ERROR_NOT_SUPPORTED" + case domainJoinNerrInvalidWorkgroupName = "DOMAIN_JOIN_NERR_INVALID_WORKGROUP_NAME" + case domainJoinNerrWorkstationNotStarted = "DOMAIN_JOIN_NERR_WORKSTATION_NOT_STARTED" + case domainJoinErrorDsMachineAccountQuotaExceeded = "DOMAIN_JOIN_ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED" + case domainJoinNerrPasswordExpired = "DOMAIN_JOIN_NERR_PASSWORD_EXPIRED" + case domainJoinInternalServiceError = "DOMAIN_JOIN_INTERNAL_SERVICE_ERROR" + public var description: String { return self.rawValue } + } + + public struct ExpireSessionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SessionId", required: true, type: .string) + ] + /// The ID of the streaming session. + public let sessionId: String + + public init(sessionId: String) { + self.sessionId = sessionId + } + + private enum CodingKeys: String, CodingKey { + case sessionId = "SessionId" + } + } + + public struct ComputeCapacityStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Available", required: false, type: .integer), + AWSShapeMember(label: "InUse", required: false, type: .integer), + AWSShapeMember(label: "Desired", required: true, type: .integer), + AWSShapeMember(label: "Running", required: false, type: .integer) + ] + /// The number of currently available instances that can be used to stream sessions. + public let available: Int32? + /// The number of instances in use for streaming. + public let inUse: Int32? + /// The desired number of streaming instances. + public let desired: Int32 + /// The total number of simultaneous streaming instances that are running. + public let running: Int32? + + public init(available: Int32? = nil, inUse: Int32? = nil, desired: Int32, running: Int32? = nil) { + self.available = available + self.inUse = inUse + self.desired = desired + self.running = running + } + + private enum CodingKeys: String, CodingKey { + case available = "Available" + case inUse = "InUse" + case desired = "Desired" + case running = "Running" + } + } + + public struct Image: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Platform", required: false, type: .enum), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "State", required: false, type: .enum), + AWSShapeMember(label: "DisplayName", required: false, type: .string), + AWSShapeMember(label: "BaseImageArn", required: false, type: .string), + AWSShapeMember(label: "Applications", required: false, type: .list), + AWSShapeMember(label: "CreatedTime", required: false, type: .timestamp), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "StateChangeReason", required: false, type: .structure), + AWSShapeMember(label: "ImageBuilderSupported", required: false, type: .boolean), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "PublicBaseImageReleasedDate", required: false, type: .timestamp), + AWSShapeMember(label: "Visibility", required: false, type: .enum) + ] + /// The operating system platform of the image. + public let platform: PlatformType? + /// The ARN of the image. + public let arn: String? + /// The image starts in the PENDING state. If image creation succeeds, the state is AVAILABLE. If image creation fails, the state is FAILED. + public let state: ImageState? + /// The image name displayed to end users. + public let displayName: String? + /// The ARN of the image from which this image was created. + public let baseImageArn: String? + /// The applications associated with the image. + public let applications: [Application]? + /// The time the image was created. + public let createdTime: TimeStamp? + /// The description displayed to end users. + public let description: String? + /// The reason why the last state change occurred. + public let stateChangeReason: ImageStateChangeReason? + /// Indicates whether an image builder can be launched from this image. + public let imageBuilderSupported: Bool? + /// The name of the image. + public let name: String + /// The release date of the public base image. For private images, this date is the release date of the base image from which the image was created. + public let publicBaseImageReleasedDate: TimeStamp? + /// Indicates whether the image is public or private. + public let visibility: VisibilityType? + + public init(platform: PlatformType? = nil, arn: String? = nil, state: ImageState? = nil, displayName: String? = nil, baseImageArn: String? = nil, applications: [Application]? = nil, createdTime: TimeStamp? = nil, description: String? = nil, stateChangeReason: ImageStateChangeReason? = nil, imageBuilderSupported: Bool? = nil, name: String, publicBaseImageReleasedDate: TimeStamp? = nil, visibility: VisibilityType? = nil) { + self.platform = platform + self.arn = arn + self.state = state + self.displayName = displayName + self.baseImageArn = baseImageArn + self.applications = applications + self.createdTime = createdTime + self.description = description + self.stateChangeReason = stateChangeReason + self.imageBuilderSupported = imageBuilderSupported + self.name = name + self.publicBaseImageReleasedDate = publicBaseImageReleasedDate + self.visibility = visibility + } + + private enum CodingKeys: String, CodingKey { + case platform = "Platform" + case arn = "Arn" + case state = "State" + case displayName = "DisplayName" + case baseImageArn = "BaseImageArn" + case applications = "Applications" + case createdTime = "CreatedTime" + case description = "Description" + case stateChangeReason = "StateChangeReason" + case imageBuilderSupported = "ImageBuilderSupported" + case name = "Name" + case publicBaseImageReleasedDate = "PublicBaseImageReleasedDate" + case visibility = "Visibility" + } + } + + public struct DeleteImageRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct CreateStackResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Stack", required: false, type: .structure) + ] + /// Information about the stack. + public let stack: Stack? + + public init(stack: Stack? = nil) { + self.stack = stack + } + + private enum CodingKeys: String, CodingKey { + case stack = "Stack" + } + } + + public struct DeleteFleetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The name of the fleet. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct AssociateFleetResult: AWSShape { + + } + + public struct DescribeSessionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Sessions", required: false, type: .list) + ] + /// The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + public let nextToken: String? + /// Information about the streaming sessions. + public let sessions: [Session]? + + public init(nextToken: String? = nil, sessions: [Session]? = nil) { + self.nextToken = nextToken + self.sessions = sessions + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case sessions = "Sessions" + } + } + + public struct UpdateDirectoryConfigRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DirectoryName", required: true, type: .string), + AWSShapeMember(label: "ServiceAccountCredentials", required: false, type: .structure), + AWSShapeMember(label: "OrganizationalUnitDistinguishedNames", required: false, type: .list) + ] + /// The name of the directory configuration. + public let directoryName: String + /// The credentials for the service account used by the streaming instance to connect to the directory. + public let serviceAccountCredentials: ServiceAccountCredentials? + /// The distinguished names of the organizational units for computer accounts. + public let organizationalUnitDistinguishedNames: [String]? + + public init(directoryName: String, serviceAccountCredentials: ServiceAccountCredentials? = nil, organizationalUnitDistinguishedNames: [String]? = nil) { + self.directoryName = directoryName + self.serviceAccountCredentials = serviceAccountCredentials + self.organizationalUnitDistinguishedNames = organizationalUnitDistinguishedNames + } + + private enum CodingKeys: String, CodingKey { + case directoryName = "DirectoryName" + case serviceAccountCredentials = "ServiceAccountCredentials" + case organizationalUnitDistinguishedNames = "OrganizationalUnitDistinguishedNames" + } + } + + public struct ListAssociatedFleetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackName", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The name of the stack. + public let stackName: String + /// The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + public let nextToken: String? + + public init(stackName: String, nextToken: String? = nil) { + self.stackName = stackName + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case stackName = "StackName" + case nextToken = "NextToken" + } + } + + public struct DeleteStackResult: AWSShape { + + } + + public struct DescribeImagesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Images", required: false, type: .list) + ] + /// Information about the images. + public let images: [Image]? + + public init(images: [Image]? = nil) { + self.images = images + } + + private enum CodingKeys: String, CodingKey { + case images = "Images" + } + } + + public enum FleetState: String, CustomStringConvertible, Codable { + case starting = "STARTING" + case running = "RUNNING" + case stopping = "STOPPING" + case stopped = "STOPPED" + public var description: String { return self.rawValue } + } + + public struct DescribeSessionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AuthenticationType", required: false, type: .enum), + AWSShapeMember(label: "UserId", required: false, type: .string), + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StackName", required: true, type: .string), + AWSShapeMember(label: "FleetName", required: true, type: .string) + ] + /// The authentication method. Specify API for a user authenticated using a streaming URL or SAML for a SAML federated user. The default is to authenticate users using a streaming URL. + public let authenticationType: AuthenticationType? + /// The user ID. + public let userId: String? + /// The size of each page of results. The default value is 20 and the maximum value is 50. + public let limit: Int32? + /// The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + public let nextToken: String? + /// The name of the stack. + public let stackName: String + /// The name of the fleet. + public let fleetName: String + + public init(authenticationType: AuthenticationType? = nil, userId: String? = nil, limit: Int32? = nil, nextToken: String? = nil, stackName: String, fleetName: String) { + self.authenticationType = authenticationType + self.userId = userId + self.limit = limit + self.nextToken = nextToken + self.stackName = stackName + self.fleetName = fleetName + } + + private enum CodingKeys: String, CodingKey { + case authenticationType = "AuthenticationType" + case userId = "UserId" + case limit = "Limit" + case nextToken = "NextToken" + case stackName = "StackName" + case fleetName = "FleetName" + } + } + + public struct ListAssociatedFleetsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Names", required: false, type: .list) + ] + /// The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + public let nextToken: String? + /// The names of the fleets. + public let names: [String]? + + public init(nextToken: String? = nil, names: [String]? = nil) { + self.nextToken = nextToken + self.names = names + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case names = "Names" + } + } + + public struct DescribeFleetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Names", required: false, type: .list) + ] + /// The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + public let nextToken: String? + /// The names of the fleets to describe. + public let names: [String]? + + public init(nextToken: String? = nil, names: [String]? = nil) { + self.nextToken = nextToken + self.names = names + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case names = "Names" + } + } + + public enum StackErrorCode: String, CustomStringConvertible, Codable { + case storageConnectorError = "STORAGE_CONNECTOR_ERROR" + case internalServiceError = "INTERNAL_SERVICE_ERROR" + public var description: String { return self.rawValue } + } + + public struct ListAssociatedStacksResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Names", required: false, type: .list) + ] + /// The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + public let nextToken: String? + /// The names of the stacks. + public let names: [String]? + + public init(nextToken: String? = nil, names: [String]? = nil) { + self.nextToken = nextToken + self.names = names + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case names = "Names" + } + } + + public enum FleetAttribute: String, CustomStringConvertible, Codable { + case vpcConfiguration = "VPC_CONFIGURATION" + case vpcConfigurationSecurityGroupIds = "VPC_CONFIGURATION_SECURITY_GROUP_IDS" + case domainJoinInfo = "DOMAIN_JOIN_INFO" + public var description: String { return self.rawValue } + } + + public struct ExpireSessionResult: AWSShape { + + } + + public struct DisassociateFleetResult: AWSShape { + + } + + public struct CreateFleetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ComputeCapacity", required: true, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "VpcConfig", required: false, type: .structure), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "DisplayName", required: false, type: .string), - AWSShapeMember(label: "ImageName", required: false, type: .string), + AWSShapeMember(label: "ImageName", required: true, type: .string), AWSShapeMember(label: "DisconnectTimeoutInSeconds", required: false, type: .integer), - AWSShapeMember(label: "AttributesToDelete", required: false, type: .list), - AWSShapeMember(label: "InstanceType", required: false, type: .string), - AWSShapeMember(label: "MaxUserDurationInSeconds", required: false, type: .integer), + AWSShapeMember(label: "FleetType", required: false, type: .enum), AWSShapeMember(label: "EnableDefaultInternetAccess", required: false, type: .boolean), - AWSShapeMember(label: "Description", required: false, type: .string) + AWSShapeMember(label: "DomainJoinInfo", required: false, type: .structure), + AWSShapeMember(label: "InstanceType", required: true, type: .string), + AWSShapeMember(label: "MaxUserDurationInSeconds", required: false, type: .integer) ] - /// Delete the VPC association for the specified fleet. - public let deleteVpcConfig: Bool? - /// The parameters for the capacity allocated to the fleet. - public let computeCapacity: ComputeCapacity? + /// The desired capacity for the fleet. + public let computeCapacity: ComputeCapacity + /// The description displayed to end users. + public let description: String? /// The VPC configuration for the fleet. public let vpcConfig: VpcConfig? - /// The name of the fleet. + /// A unique name for the fleet. public let name: String - /// The name displayed to end users on the AppStream 2.0 portal. + /// The fleet name displayed to end users. public let displayName: String? - /// The image name from which a fleet is created. - public let imageName: String? - /// The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600. + /// The name of the image used by the fleet. + public let imageName: String + /// The time after disconnection when a session is considered to have ended, in seconds. If a user who was disconnected reconnects within this time interval, the user is connected to their previous session. Specify a value between 60 and 57600. public let disconnectTimeoutInSeconds: Int32? - /// Fleet attributes to be deleted. - public let attributesToDelete: [FleetAttribute]? - /// The instance type of compute resources for the fleet. Fleet instances are launched from this instance type. - public let instanceType: String? - /// The maximum time for which a streaming session can run. The input can be any numeric value in seconds between 600 and 57600. - public let maxUserDurationInSeconds: Int32? - /// Enables or disables default Internet access for the fleet. + public let fleetType: FleetType? + /// Enables or disables default internet access for the fleet. public let enableDefaultInternetAccess: Bool? - /// The description displayed to end users on the AppStream 2.0 portal. - public let description: String? + /// The information needed for streaming instances to join a domain. + public let domainJoinInfo: DomainJoinInfo? + /// The instance type to use when launching fleet instances. The following instance types are available: stream.standard.medium stream.standard.large stream.compute.large stream.compute.xlarge stream.compute.2xlarge stream.compute.4xlarge stream.compute.8xlarge stream.memory.large stream.memory.xlarge stream.memory.2xlarge stream.memory.4xlarge stream.memory.8xlarge stream.graphics-design.large stream.graphics-design.xlarge stream.graphics-design.2xlarge stream.graphics-design.4xlarge stream.graphics-desktop.2xlarge stream.graphics-pro.4xlarge stream.graphics-pro.8xlarge stream.graphics-pro.16xlarge + public let instanceType: String + /// The maximum time that a streaming session can run, in seconds. Specify a value between 600 and 57600. + public let maxUserDurationInSeconds: Int32? - public init(deleteVpcConfig: Bool? = nil, computeCapacity: ComputeCapacity? = nil, vpcConfig: VpcConfig? = nil, name: String, displayName: String? = nil, imageName: String? = nil, disconnectTimeoutInSeconds: Int32? = nil, attributesToDelete: [FleetAttribute]? = nil, instanceType: String? = nil, maxUserDurationInSeconds: Int32? = nil, enableDefaultInternetAccess: Bool? = nil, description: String? = nil) { - self.deleteVpcConfig = deleteVpcConfig + public init(computeCapacity: ComputeCapacity, description: String? = nil, vpcConfig: VpcConfig? = nil, name: String, displayName: String? = nil, imageName: String, disconnectTimeoutInSeconds: Int32? = nil, fleetType: FleetType? = nil, enableDefaultInternetAccess: Bool? = nil, domainJoinInfo: DomainJoinInfo? = nil, instanceType: String, maxUserDurationInSeconds: Int32? = nil) { self.computeCapacity = computeCapacity + self.description = description self.vpcConfig = vpcConfig self.name = name self.displayName = displayName self.imageName = imageName self.disconnectTimeoutInSeconds = disconnectTimeoutInSeconds - self.attributesToDelete = attributesToDelete + self.fleetType = fleetType + self.enableDefaultInternetAccess = enableDefaultInternetAccess + self.domainJoinInfo = domainJoinInfo self.instanceType = instanceType self.maxUserDurationInSeconds = maxUserDurationInSeconds - self.enableDefaultInternetAccess = enableDefaultInternetAccess - self.description = description } private enum CodingKeys: String, CodingKey { - case deleteVpcConfig = "DeleteVpcConfig" case computeCapacity = "ComputeCapacity" + case description = "Description" case vpcConfig = "VpcConfig" case name = "Name" case displayName = "DisplayName" case imageName = "ImageName" case disconnectTimeoutInSeconds = "DisconnectTimeoutInSeconds" - case attributesToDelete = "AttributesToDelete" + case fleetType = "FleetType" + case enableDefaultInternetAccess = "EnableDefaultInternetAccess" + case domainJoinInfo = "DomainJoinInfo" case instanceType = "InstanceType" case maxUserDurationInSeconds = "MaxUserDurationInSeconds" - case enableDefaultInternetAccess = "EnableDefaultInternetAccess" - case description = "Description" } } - public struct DisassociateFleetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackName", required: true, type: .string), - AWSShapeMember(label: "FleetName", required: true, type: .string) + public struct UpdateStackResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Stack", required: false, type: .structure) ] - /// The name of the stack with which the fleet is associated. - public let stackName: String - /// The name of the fleet to disassociate. - public let fleetName: String + /// Information about the stack. + public let stack: Stack? - public init(stackName: String, fleetName: String) { - self.stackName = stackName - self.fleetName = fleetName + public init(stack: Stack? = nil) { + self.stack = stack } private enum CodingKeys: String, CodingKey { - case stackName = "StackName" - case fleetName = "FleetName" + case stack = "Stack" } } - public struct Application: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Metadata", required: false, type: .map), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "DisplayName", required: false, type: .string), - AWSShapeMember(label: "Enabled", required: false, type: .boolean), - AWSShapeMember(label: "LaunchPath", required: false, type: .string), - AWSShapeMember(label: "LaunchParameters", required: false, type: .string), - AWSShapeMember(label: "IconURL", required: false, type: .string) + public struct StartImageBuilderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) ] - /// Additional attributes that describe the application. - public let metadata: [String: String]? - /// The unique identifier for the application. - public let name: String? - /// The name of the application shown to the end users. - public let displayName: String? - /// An application can be disabled after image creation if there is a problem. - public let enabled: Bool? - /// The path to the application executable in the instance. - public let launchPath: String? - /// A list of arguments that are passed to the application at launch. - public let launchParameters: String? - /// The URL for the application icon. This URL may be time-limited. - public let iconURL: String? + public let name: String - public init(metadata: [String: String]? = nil, name: String? = nil, displayName: String? = nil, enabled: Bool? = nil, launchPath: String? = nil, launchParameters: String? = nil, iconURL: String? = nil) { - self.metadata = metadata + public init(name: String) { self.name = name - self.displayName = displayName - self.enabled = enabled - self.launchPath = launchPath - self.launchParameters = launchParameters - self.iconURL = iconURL } private enum CodingKeys: String, CodingKey { - case metadata = "Metadata" case name = "Name" - case displayName = "DisplayName" - case enabled = "Enabled" - case launchPath = "LaunchPath" - case launchParameters = "LaunchParameters" - case iconURL = "IconURL" } } public struct Fleet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: true, type: .string), AWSShapeMember(label: "VpcConfig", required: false, type: .structure), AWSShapeMember(label: "State", required: true, type: .enum), @@ -614,12 +1284,14 @@ extension Appstream { AWSShapeMember(label: "DisplayName", required: false, type: .string), AWSShapeMember(label: "FleetErrors", required: false, type: .list), AWSShapeMember(label: "ImageName", required: true, type: .string), + AWSShapeMember(label: "DomainJoinInfo", required: false, type: .structure), AWSShapeMember(label: "EnableDefaultInternetAccess", required: false, type: .boolean), AWSShapeMember(label: "InstanceType", required: true, type: .string), AWSShapeMember(label: "CreatedTime", required: false, type: .timestamp), AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "DisconnectTimeoutInSeconds", required: false, type: .integer), + AWSShapeMember(label: "FleetType", required: false, type: .enum), AWSShapeMember(label: "MaxUserDurationInSeconds", required: false, type: .integer) ] /// The ARN for the fleet. @@ -628,30 +1300,33 @@ extension Appstream { public let vpcConfig: VpcConfig? /// The current state for the fleet. public let state: FleetState - /// The capacity information for the fleet. + /// The capacity status for the fleet. public let computeCapacityStatus: ComputeCapacityStatus - /// The name displayed to end users on the AppStream 2.0 portal. + /// The fleet name displayed to end users. public let displayName: String? - /// The list of fleet errors is appended to this list. + /// The fleet errors. public let fleetErrors: [FleetError]? /// The image used by the fleet. public let imageName: String - /// Whether default Internet access is enabled for the fleet. + /// The information needed for streaming instances to join a domain. + public let domainJoinInfo: DomainJoinInfo? + /// Indicates whether default internet access is enabled for the fleet. public let enableDefaultInternetAccess: Bool? - /// The instance type of compute resources for the fleet. The fleet instances are launched from this instance type. + /// The instance type to use when launching fleet instances. public let instanceType: String - /// The time at which the fleet was created. + /// The time the fleet was created. public let createdTime: TimeStamp? - /// The description displayed to end users on the AppStream 2.0 portal. + /// The description displayed to end users. public let description: String? /// The name of the fleet. public let name: String - /// The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600. + /// The time after disconnection when a session is considered to have ended, in seconds. If a user who was disconnected reconnects within this time interval, the user is connected to their previous session. Specify a value between 60 and 57600. public let disconnectTimeoutInSeconds: Int32? - /// The maximum time for which a streaming session can run. The value can be any numeric value in seconds between 600 and 57600. + public let fleetType: FleetType? + /// The maximum time that a streaming session can run, in seconds. Specify a value between 600 and 57600. public let maxUserDurationInSeconds: Int32? - public init(arn: String, vpcConfig: VpcConfig? = nil, state: FleetState, computeCapacityStatus: ComputeCapacityStatus, displayName: String? = nil, fleetErrors: [FleetError]? = nil, imageName: String, enableDefaultInternetAccess: Bool? = nil, instanceType: String, createdTime: TimeStamp? = nil, description: String? = nil, name: String, disconnectTimeoutInSeconds: Int32? = nil, maxUserDurationInSeconds: Int32? = nil) { + public init(arn: String, vpcConfig: VpcConfig? = nil, state: FleetState, computeCapacityStatus: ComputeCapacityStatus, displayName: String? = nil, fleetErrors: [FleetError]? = nil, imageName: String, domainJoinInfo: DomainJoinInfo? = nil, enableDefaultInternetAccess: Bool? = nil, instanceType: String, createdTime: TimeStamp? = nil, description: String? = nil, name: String, disconnectTimeoutInSeconds: Int32? = nil, fleetType: FleetType? = nil, maxUserDurationInSeconds: Int32? = nil) { self.arn = arn self.vpcConfig = vpcConfig self.state = state @@ -659,12 +1334,14 @@ extension Appstream { self.displayName = displayName self.fleetErrors = fleetErrors self.imageName = imageName + self.domainJoinInfo = domainJoinInfo self.enableDefaultInternetAccess = enableDefaultInternetAccess self.instanceType = instanceType self.createdTime = createdTime self.description = description self.name = name self.disconnectTimeoutInSeconds = disconnectTimeoutInSeconds + self.fleetType = fleetType self.maxUserDurationInSeconds = maxUserDurationInSeconds } @@ -676,65 +1353,147 @@ extension Appstream { case displayName = "DisplayName" case fleetErrors = "FleetErrors" case imageName = "ImageName" + case domainJoinInfo = "DomainJoinInfo" case enableDefaultInternetAccess = "EnableDefaultInternetAccess" case instanceType = "InstanceType" case createdTime = "CreatedTime" case description = "Description" case name = "Name" case disconnectTimeoutInSeconds = "DisconnectTimeoutInSeconds" + case fleetType = "FleetType" case maxUserDurationInSeconds = "MaxUserDurationInSeconds" } } - public struct StartFleetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: true, type: .string) + public struct DirectoryConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OrganizationalUnitDistinguishedNames", required: false, type: .list), + AWSShapeMember(label: "DirectoryName", required: true, type: .string), + AWSShapeMember(label: "CreatedTime", required: false, type: .timestamp), + AWSShapeMember(label: "ServiceAccountCredentials", required: false, type: .structure) ] - /// The name of the fleet to start. - public let name: String + /// The distinguished names of the organizational units for computer accounts. + public let organizationalUnitDistinguishedNames: [String]? + /// The fully qualified name of the directory (for example, corp.example.com). + public let directoryName: String + /// The time the directory configuration was created. + public let createdTime: TimeStamp? + /// The credentials for the service account used by the streaming instance to connect to the directory. + public let serviceAccountCredentials: ServiceAccountCredentials? - public init(name: String) { - self.name = name + public init(organizationalUnitDistinguishedNames: [String]? = nil, directoryName: String, createdTime: TimeStamp? = nil, serviceAccountCredentials: ServiceAccountCredentials? = nil) { + self.organizationalUnitDistinguishedNames = organizationalUnitDistinguishedNames + self.directoryName = directoryName + self.createdTime = createdTime + self.serviceAccountCredentials = serviceAccountCredentials } private enum CodingKeys: String, CodingKey { - case name = "Name" + case organizationalUnitDistinguishedNames = "OrganizationalUnitDistinguishedNames" + case directoryName = "DirectoryName" + case createdTime = "CreatedTime" + case serviceAccountCredentials = "ServiceAccountCredentials" } } - public struct StartFleetResult: AWSShape { + public struct ImageBuilder: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Platform", required: false, type: .enum), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "VpcConfig", required: false, type: .structure), + AWSShapeMember(label: "State", required: false, type: .enum), + AWSShapeMember(label: "DisplayName", required: false, type: .string), + AWSShapeMember(label: "DomainJoinInfo", required: false, type: .structure), + AWSShapeMember(label: "InstanceType", required: false, type: .string), + AWSShapeMember(label: "EnableDefaultInternetAccess", required: false, type: .boolean), + AWSShapeMember(label: "CreatedTime", required: false, type: .timestamp), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "StateChangeReason", required: false, type: .structure), + AWSShapeMember(label: "ImageBuilderErrors", required: false, type: .list), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "ImageArn", required: false, type: .string) + ] + public let platform: PlatformType? + public let arn: String? + public let vpcConfig: VpcConfig? + public let state: ImageBuilderState? + public let displayName: String? + public let domainJoinInfo: DomainJoinInfo? + public let instanceType: String? + public let enableDefaultInternetAccess: Bool? + public let createdTime: TimeStamp? + public let description: String? + public let stateChangeReason: ImageBuilderStateChangeReason? + public let imageBuilderErrors: [ResourceError]? + public let name: String + public let imageArn: String? + + public init(platform: PlatformType? = nil, arn: String? = nil, vpcConfig: VpcConfig? = nil, state: ImageBuilderState? = nil, displayName: String? = nil, domainJoinInfo: DomainJoinInfo? = nil, instanceType: String? = nil, enableDefaultInternetAccess: Bool? = nil, createdTime: TimeStamp? = nil, description: String? = nil, stateChangeReason: ImageBuilderStateChangeReason? = nil, imageBuilderErrors: [ResourceError]? = nil, name: String, imageArn: String? = nil) { + self.platform = platform + self.arn = arn + self.vpcConfig = vpcConfig + self.state = state + self.displayName = displayName + self.domainJoinInfo = domainJoinInfo + self.instanceType = instanceType + self.enableDefaultInternetAccess = enableDefaultInternetAccess + self.createdTime = createdTime + self.description = description + self.stateChangeReason = stateChangeReason + self.imageBuilderErrors = imageBuilderErrors + self.name = name + self.imageArn = imageArn + } + private enum CodingKeys: String, CodingKey { + case platform = "Platform" + case arn = "Arn" + case vpcConfig = "VpcConfig" + case state = "State" + case displayName = "DisplayName" + case domainJoinInfo = "DomainJoinInfo" + case instanceType = "InstanceType" + case enableDefaultInternetAccess = "EnableDefaultInternetAccess" + case createdTime = "CreatedTime" + case description = "Description" + case stateChangeReason = "StateChangeReason" + case imageBuilderErrors = "ImageBuilderErrors" + case name = "Name" + case imageArn = "ImageArn" + } } - public struct StorageConnector: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourceIdentifier", required: false, type: .string), - AWSShapeMember(label: "ConnectorType", required: true, type: .enum) + public struct ResourceError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorMessage", required: false, type: .string), + AWSShapeMember(label: "ErrorCode", required: false, type: .enum), + AWSShapeMember(label: "ErrorTimestamp", required: false, type: .timestamp) ] - /// The ARN associated with the storage connector. - public let resourceIdentifier: String? - /// The type of storage connector. The possible values include: HOMEFOLDERS. - public let connectorType: StorageConnectorType + public let errorMessage: String? + public let errorCode: FleetErrorCode? + public let errorTimestamp: TimeStamp? - public init(resourceIdentifier: String? = nil, connectorType: StorageConnectorType) { - self.resourceIdentifier = resourceIdentifier - self.connectorType = connectorType + public init(errorMessage: String? = nil, errorCode: FleetErrorCode? = nil, errorTimestamp: TimeStamp? = nil) { + self.errorMessage = errorMessage + self.errorCode = errorCode + self.errorTimestamp = errorTimestamp } private enum CodingKeys: String, CodingKey { - case resourceIdentifier = "ResourceIdentifier" - case connectorType = "ConnectorType" + case errorMessage = "ErrorMessage" + case errorCode = "ErrorCode" + case errorTimestamp = "ErrorTimestamp" } } public struct VpcConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: false, type: .list), AWSShapeMember(label: "SecurityGroupIds", required: false, type: .list) ] - /// The list of subnets to which a network interface is established from the fleet instance. + /// The subnets to which a network interface is established from the fleet instance. public let subnetIds: [String]? - /// Security groups associated with the fleet. + /// The security groups for the fleet. public let securityGroupIds: [String]? public init(subnetIds: [String]? = nil, securityGroupIds: [String]? = nil) { @@ -748,55 +1507,86 @@ extension Appstream { } } - public struct ImageStateChangeReason: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Code", required: false, type: .enum), - AWSShapeMember(label: "Message", required: false, type: .string) + public struct CreateImageBuilderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcConfig", required: false, type: .structure), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "DisplayName", required: false, type: .string), + AWSShapeMember(label: "ImageName", required: true, type: .string), + AWSShapeMember(label: "DomainJoinInfo", required: false, type: .structure), + AWSShapeMember(label: "InstanceType", required: true, type: .string), + AWSShapeMember(label: "EnableDefaultInternetAccess", required: false, type: .boolean), + AWSShapeMember(label: "Description", required: false, type: .string) ] - /// The state change reason code of the image. - public let code: ImageStateChangeReasonCode? - /// The state change reason message to the end user. - public let message: String? + public let vpcConfig: VpcConfig? + public let name: String + public let displayName: String? + public let imageName: String + public let domainJoinInfo: DomainJoinInfo? + public let instanceType: String + public let enableDefaultInternetAccess: Bool? + public let description: String? - public init(code: ImageStateChangeReasonCode? = nil, message: String? = nil) { - self.code = code - self.message = message + public init(vpcConfig: VpcConfig? = nil, name: String, displayName: String? = nil, imageName: String, domainJoinInfo: DomainJoinInfo? = nil, instanceType: String, enableDefaultInternetAccess: Bool? = nil, description: String? = nil) { + self.vpcConfig = vpcConfig + self.name = name + self.displayName = displayName + self.imageName = imageName + self.domainJoinInfo = domainJoinInfo + self.instanceType = instanceType + self.enableDefaultInternetAccess = enableDefaultInternetAccess + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case vpcConfig = "VpcConfig" + case name = "Name" + case displayName = "DisplayName" + case imageName = "ImageName" + case domainJoinInfo = "DomainJoinInfo" + case instanceType = "InstanceType" + case enableDefaultInternetAccess = "EnableDefaultInternetAccess" + case description = "Description" + } + } + + public struct DomainJoinInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OrganizationalUnitDistinguishedName", required: false, type: .string), + AWSShapeMember(label: "DirectoryName", required: false, type: .string) + ] + /// The distinguished name of the organizational unit for computer accounts. + public let organizationalUnitDistinguishedName: String? + /// The fully qualified name of the directory (for example, corp.example.com). + public let directoryName: String? + + public init(organizationalUnitDistinguishedName: String? = nil, directoryName: String? = nil) { + self.organizationalUnitDistinguishedName = organizationalUnitDistinguishedName + self.directoryName = directoryName } private enum CodingKeys: String, CodingKey { - case code = "Code" - case message = "Message" + case organizationalUnitDistinguishedName = "OrganizationalUnitDistinguishedName" + case directoryName = "DirectoryName" } } - public struct DescribeStacksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Names", required: false, type: .list) + public struct UpdateDirectoryConfigResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DirectoryConfig", required: false, type: .structure) ] - /// The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. - public let nextToken: String? - /// The stack names to describe. Use null to describe all the stacks for the AWS account. - public let names: [String]? + /// Information about the directory configuration. + public let directoryConfig: DirectoryConfig? - public init(nextToken: String? = nil, names: [String]? = nil) { - self.nextToken = nextToken - self.names = names + public init(directoryConfig: DirectoryConfig? = nil) { + self.directoryConfig = directoryConfig } private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case names = "Names" + case directoryConfig = "DirectoryConfig" } } - public enum AuthenticationType: String, CustomStringConvertible, Codable { - case api = "API" - case saml = "SAML" - case userpool = "USERPOOL" - public var description: String { return self.rawValue } - } - public enum VisibilityType: String, CustomStringConvertible, Codable { case `public` = "PUBLIC" case `private` = "PRIVATE" @@ -804,13 +1594,13 @@ extension Appstream { } public struct ListAssociatedStacksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "FleetName", required: true, type: .string) ] /// The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. public let nextToken: String? - /// The name of the fleet whose associated stacks are listed. + /// The name of the fleet. public let fleetName: String public init(nextToken: String? = nil, fleetName: String) { @@ -824,54 +1614,82 @@ extension Appstream { } } - public struct CreateStackRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StorageConnectors", required: false, type: .list), - AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "DisplayName", required: false, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string) + public struct DeleteImageBuilderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) ] - /// The storage connectors to be enabled for the stack. - public let storageConnectors: [StorageConnector]? - /// The unique identifier for this stack. public let name: String - /// The name displayed to end users on the AppStream 2.0 portal. - public let displayName: String? - /// The description displayed to end users on the AppStream 2.0 portal. - public let description: String? - public init(storageConnectors: [StorageConnector]? = nil, name: String, displayName: String? = nil, description: String? = nil) { - self.storageConnectors = storageConnectors + public init(name: String) { self.name = name - self.displayName = displayName - self.description = description } private enum CodingKeys: String, CodingKey { - case storageConnectors = "StorageConnectors" case name = "Name" - case displayName = "DisplayName" - case description = "Description" } } + public struct CreateDirectoryConfigRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DirectoryName", required: true, type: .string), + AWSShapeMember(label: "ServiceAccountCredentials", required: true, type: .structure), + AWSShapeMember(label: "OrganizationalUnitDistinguishedNames", required: true, type: .list) + ] + /// The fully qualified name of the directory (for example, corp.example.com). + public let directoryName: String + /// The credentials for the service account used by the streaming instance to connect to the directory. + public let serviceAccountCredentials: ServiceAccountCredentials + /// The distinguished names of the organizational units for computer accounts. + public let organizationalUnitDistinguishedNames: [String] + + public init(directoryName: String, serviceAccountCredentials: ServiceAccountCredentials, organizationalUnitDistinguishedNames: [String]) { + self.directoryName = directoryName + self.serviceAccountCredentials = serviceAccountCredentials + self.organizationalUnitDistinguishedNames = organizationalUnitDistinguishedNames + } + + private enum CodingKeys: String, CodingKey { + case directoryName = "DirectoryName" + case serviceAccountCredentials = "ServiceAccountCredentials" + case organizationalUnitDistinguishedNames = "OrganizationalUnitDistinguishedNames" + } + } + + public enum ImageBuilderState: String, CustomStringConvertible, Codable { + case pending = "PENDING" + case running = "RUNNING" + case stopping = "STOPPING" + case stopped = "STOPPED" + case rebooting = "REBOOTING" + case snapshotting = "SNAPSHOTTING" + case deleting = "DELETING" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + + public enum FleetType: String, CustomStringConvertible, Codable { + case alwaysOn = "ALWAYS_ON" + case onDemand = "ON_DEMAND" + public var description: String { return self.rawValue } + } + public struct UpdateStackRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeleteStorageConnectors", required: false, type: .boolean), AWSShapeMember(label: "StorageConnectors", required: false, type: .list), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "DisplayName", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] - /// Remove all the storage connectors currently enabled for the stack. + /// Deletes the storage connectors currently enabled for the stack. public let deleteStorageConnectors: Bool? - /// The storage connectors to be enabled for the stack. + /// The storage connectors to enable. public let storageConnectors: [StorageConnector]? - /// The name of the stack to update. + /// The name of the stack. public let name: String - /// The name displayed to end users on the AppStream 2.0 portal. + /// The stack name displayed to end users. public let displayName: String? - /// The description displayed to end users on the AppStream 2.0 portal. + /// The description displayed to end users. public let description: String? public init(deleteStorageConnectors: Bool? = nil, storageConnectors: [StorageConnector]? = nil, name: String, displayName: String? = nil, description: String? = nil) { @@ -891,11 +1709,48 @@ extension Appstream { } } + public struct CreateDirectoryConfigResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DirectoryConfig", required: false, type: .structure) + ] + /// Information about the directory configuration. + public let directoryConfig: DirectoryConfig? + + public init(directoryConfig: DirectoryConfig? = nil) { + self.directoryConfig = directoryConfig + } + + private enum CodingKeys: String, CodingKey { + case directoryConfig = "DirectoryConfig" + } + } + + public struct ServiceAccountCredentials: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountPassword", required: true, type: .string), + AWSShapeMember(label: "AccountName", required: true, type: .string) + ] + /// The password for the account. + public let accountPassword: String + /// The user name of the account. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified. + public let accountName: String + + public init(accountPassword: String, accountName: String) { + self.accountPassword = accountPassword + self.accountName = accountName + } + + private enum CodingKeys: String, CodingKey { + case accountPassword = "AccountPassword" + case accountName = "AccountName" + } + } + public struct StopFleetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] - /// The name of the fleet to stop. + /// The name of the fleet. public let name: String public init(name: String) { @@ -907,14 +1762,8 @@ extension Appstream { } } - public enum ImageStateChangeReasonCode: String, CustomStringConvertible, Codable { - case internalError = "INTERNAL_ERROR" - case imageBuilderNotAvailable = "IMAGE_BUILDER_NOT_AVAILABLE" - public var description: String { return self.rawValue } - } - public struct CreateStreamingURLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Validity", required: false, type: .long), AWSShapeMember(label: "UserId", required: true, type: .string), AWSShapeMember(label: "ApplicationId", required: false, type: .string), @@ -922,17 +1771,17 @@ extension Appstream { AWSShapeMember(label: "StackName", required: true, type: .string), AWSShapeMember(label: "FleetName", required: true, type: .string) ] - /// The duration up to which the URL returned by this action is valid. The input can be any numeric value in seconds between 1 and 604800 seconds. + /// The time that the streaming URL will be valid, in seconds. Specify a value between 1 and 604800 seconds. public let validity: Int64? - /// A unique user ID for whom the URL is generated. + /// The ID of the user. public let userId: String /// The ID of the application that must be launched after the session starts. public let applicationId: String? - /// The sessionContext of the streaming URL. + /// The session context of the streaming URL. public let sessionContext: String? - /// The stack for which the URL is generated. + /// The name of the stack. public let stackName: String - /// The fleet for which the URL is generated. + /// The name of the fleet. public let fleetName: String public init(validity: Int64? = nil, userId: String, applicationId: String? = nil, sessionContext: String? = nil, stackName: String, fleetName: String) { @@ -955,10 +1804,10 @@ extension Appstream { } public struct CreateFleetResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Fleet", required: false, type: .structure) ] - /// The details for the created fleet. + /// Information about the fleet. public let fleet: Fleet? public init(fleet: Fleet? = nil) { @@ -971,13 +1820,13 @@ extension Appstream { } public struct CreateStreamingURLResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamingURL", required: false, type: .string), AWSShapeMember(label: "Expires", required: false, type: .timestamp) ] /// The URL to start the AppStream 2.0 streaming session. public let streamingURL: String? - /// Elapsed seconds after the Unix epoch, at which time this URL expires. + /// The elapsed time, in seconds after the Unix epoch, when this URL expires. public let expires: TimeStamp? public init(streamingURL: String? = nil, expires: TimeStamp? = nil) { @@ -991,45 +1840,14 @@ extension Appstream { } } - public struct ComputeCapacityStatus: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Available", required: false, type: .integer), - AWSShapeMember(label: "InUse", required: false, type: .integer), - AWSShapeMember(label: "Desired", required: true, type: .integer), - AWSShapeMember(label: "Running", required: false, type: .integer) - ] - /// The number of currently available instances that can be used to stream sessions. - public let available: Int32? - /// The number of instances that are being used for streaming. - public let inUse: Int32? - /// The desired number of streaming instances. - public let desired: Int32 - /// The total number of simultaneous streaming instances that are running. - public let running: Int32? - - public init(available: Int32? = nil, inUse: Int32? = nil, desired: Int32, running: Int32? = nil) { - self.available = available - self.inUse = inUse - self.desired = desired - self.running = running - } - - private enum CodingKeys: String, CodingKey { - case available = "Available" - case inUse = "InUse" - case desired = "Desired" - case running = "Running" - } - } - public struct AssociateFleetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackName", required: true, type: .string), AWSShapeMember(label: "FleetName", required: true, type: .string) ] - /// The name of the stack to which the fleet is associated. + /// The name of the stack. public let stackName: String - /// The name of the fleet to associate. + /// The name of the fleet. public let fleetName: String public init(stackName: String, fleetName: String) { @@ -1055,13 +1873,13 @@ extension Appstream { } public struct DescribeFleetsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Fleets", required: false, type: .list) ] /// The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. public let nextToken: String? - /// The list of fleet details. + /// Information about the fleets. public let fleets: [Fleet]? public init(nextToken: String? = nil, fleets: [Fleet]? = nil) { @@ -1075,26 +1893,11 @@ extension Appstream { } } - public enum FleetErrorCode: String, CustomStringConvertible, Codable { - case iamServiceRoleMissingEniDescribeAction = "IAM_SERVICE_ROLE_MISSING_ENI_DESCRIBE_ACTION" - case iamServiceRoleMissingEniCreateAction = "IAM_SERVICE_ROLE_MISSING_ENI_CREATE_ACTION" - case iamServiceRoleMissingEniDeleteAction = "IAM_SERVICE_ROLE_MISSING_ENI_DELETE_ACTION" - case networkInterfaceLimitExceeded = "NETWORK_INTERFACE_LIMIT_EXCEEDED" - case internalServiceError = "INTERNAL_SERVICE_ERROR" - case iamServiceRoleIsMissing = "IAM_SERVICE_ROLE_IS_MISSING" - case subnetHasInsufficientIpAddresses = "SUBNET_HAS_INSUFFICIENT_IP_ADDRESSES" - case iamServiceRoleMissingDescribeSubnetAction = "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION" - case subnetNotFound = "SUBNET_NOT_FOUND" - case imageNotFound = "IMAGE_NOT_FOUND" - case invalidSubnetConfiguration = "INVALID_SUBNET_CONFIGURATION" - public var description: String { return self.rawValue } - } - public struct DeleteStackRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] - /// The name of the stack to delete. + /// The name of the stack. public let name: String public init(name: String) { @@ -1106,114 +1909,6 @@ extension Appstream { } } - public struct ExpireSessionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SessionId", required: true, type: .string) - ] - /// The unique identifier of the streaming session to be stopped. - public let sessionId: String - - public init(sessionId: String) { - self.sessionId = sessionId - } - - private enum CodingKeys: String, CodingKey { - case sessionId = "SessionId" - } - } - - public struct Image: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Platform", required: false, type: .enum), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "State", required: false, type: .enum), - AWSShapeMember(label: "DisplayName", required: false, type: .string), - AWSShapeMember(label: "BaseImageArn", required: false, type: .string), - AWSShapeMember(label: "Applications", required: false, type: .list), - AWSShapeMember(label: "CreatedTime", required: false, type: .timestamp), - AWSShapeMember(label: "Description", required: false, type: .string), - AWSShapeMember(label: "StateChangeReason", required: false, type: .structure), - AWSShapeMember(label: "ImageBuilderSupported", required: false, type: .boolean), - AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "PublicBaseImageReleasedDate", required: false, type: .timestamp), - AWSShapeMember(label: "Visibility", required: false, type: .enum) - ] - /// The operating system platform of the image. - public let platform: PlatformType? - /// The ARN for the image. - public let arn: String? - /// The image starts in the PENDING state, and then moves to AVAILABLE if image creation succeeds and FAILED if image creation has failed. - public let state: ImageState? - /// The display name for the image. - public let displayName: String? - /// The source image ARN from which this image was created. - public let baseImageArn: String? - /// The applications associated with an image. - public let applications: [Application]? - /// The timestamp when the image was created. - public let createdTime: TimeStamp? - /// A meaningful description for the image. - public let description: String? - /// The reason why the last state change occurred. - public let stateChangeReason: ImageStateChangeReason? - /// Whether an image builder can be launched from this image. - public let imageBuilderSupported: Bool? - /// The unique identifier for the image. - public let name: String - /// The AWS release date of the public base image. For private images, this date is the release date of the base image from which the image was created. - public let publicBaseImageReleasedDate: TimeStamp? - /// The visibility of an image to the user; images can be public or private. - public let visibility: VisibilityType? - - public init(platform: PlatformType? = nil, arn: String? = nil, state: ImageState? = nil, displayName: String? = nil, baseImageArn: String? = nil, applications: [Application]? = nil, createdTime: TimeStamp? = nil, description: String? = nil, stateChangeReason: ImageStateChangeReason? = nil, imageBuilderSupported: Bool? = nil, name: String, publicBaseImageReleasedDate: TimeStamp? = nil, visibility: VisibilityType? = nil) { - self.platform = platform - self.arn = arn - self.state = state - self.displayName = displayName - self.baseImageArn = baseImageArn - self.applications = applications - self.createdTime = createdTime - self.description = description - self.stateChangeReason = stateChangeReason - self.imageBuilderSupported = imageBuilderSupported - self.name = name - self.publicBaseImageReleasedDate = publicBaseImageReleasedDate - self.visibility = visibility - } - - private enum CodingKeys: String, CodingKey { - case platform = "Platform" - case arn = "Arn" - case state = "State" - case displayName = "DisplayName" - case baseImageArn = "BaseImageArn" - case applications = "Applications" - case createdTime = "CreatedTime" - case description = "Description" - case stateChangeReason = "StateChangeReason" - case imageBuilderSupported = "ImageBuilderSupported" - case name = "Name" - case publicBaseImageReleasedDate = "PublicBaseImageReleasedDate" - case visibility = "Visibility" - } - } - - public struct CreateStackResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Stack", required: false, type: .structure) - ] - /// The details for the created stack. - public let stack: Stack? - - public init(stack: Stack? = nil) { - self.stack = stack - } - - private enum CodingKeys: String, CodingKey { - case stack = "Stack" - } - } - public enum ImageState: String, CustomStringConvertible, Codable { case pending = "PENDING" case available = "AVAILABLE" @@ -1222,45 +1917,4 @@ extension Appstream { public var description: String { return self.rawValue } } - public struct DeleteFleetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: true, type: .string) - ] - /// The name of the fleet to be deleted. - public let name: String - - public init(name: String) { - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case name = "Name" - } - } - - public struct AssociateFleetResult: AWSShape { - - } - - public struct DescribeSessionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Sessions", required: false, type: .list) - ] - /// The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. - public let nextToken: String? - /// The list of streaming sessions. - public let sessions: [Session]? - - public init(nextToken: String? = nil, sessions: [Session]? = nil) { - self.nextToken = nextToken - self.sessions = sessions - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case sessions = "Sessions" - } - } - } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/appsync/Appsync_API.swift b/Sources/AWSSDKSwift/Services/appsync/Appsync_API.swift new file mode 100644 index 00000000000..2e95a626516 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/appsync/Appsync_API.swift @@ -0,0 +1,158 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +AWS AppSync provides API actions for creating and interacting with data sources using GraphQL from your application. +*/ +public struct Appsync { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "appsync", + serviceProtocol: ServiceProtocol(type: .restjson, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-07-25", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [AppsyncError.self] + ) + } + + /// Deletes an API key. + public func deleteApiKey(_ input: DeleteApiKeyRequest) throws -> DeleteApiKeyResponse { + return try client.send(operation: "DeleteApiKey", path: "/v1/apis/{apiId}/apikeys/{id}", httpMethod: "DELETE", input: input) + } + + /// Lists the API keys for a given API. + public func listApiKeys(_ input: ListApiKeysRequest) throws -> ListApiKeysResponse { + return try client.send(operation: "ListApiKeys", path: "/v1/apis/{apiId}/apikeys", httpMethod: "GET", input: input) + } + + /// Lists the resolvers for a given API and type. + public func listResolvers(_ input: ListResolversRequest) throws -> ListResolversResponse { + return try client.send(operation: "ListResolvers", path: "/v1/apis/{apiId}/types/{typeName}/resolvers", httpMethod: "GET", input: input) + } + + /// Deletes a Resolver object. + public func deleteResolver(_ input: DeleteResolverRequest) throws -> DeleteResolverResponse { + return try client.send(operation: "DeleteResolver", path: "/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}", httpMethod: "DELETE", input: input) + } + + /// Adds a new schema to your GraphQL API. This operation is asynchronous. Use to determine when it has completed. + public func startSchemaCreation(_ input: StartSchemaCreationRequest) throws -> StartSchemaCreationResponse { + return try client.send(operation: "StartSchemaCreation", path: "/v1/apis/{apiId}/schemacreation", httpMethod: "POST", input: input) + } + + /// Deletes a Type object. + public func deleteType(_ input: DeleteTypeRequest) throws -> DeleteTypeResponse { + return try client.send(operation: "DeleteType", path: "/v1/apis/{apiId}/types/{typeName}", httpMethod: "DELETE", input: input) + } + + /// Updates a Type object. + public func updateType(_ input: UpdateTypeRequest) throws -> UpdateTypeResponse { + return try client.send(operation: "UpdateType", path: "/v1/apis/{apiId}/types/{typeName}", httpMethod: "POST", input: input) + } + + /// Retrieves a GraphqlApi object. + public func getGraphqlApi(_ input: GetGraphqlApiRequest) throws -> GetGraphqlApiResponse { + return try client.send(operation: "GetGraphqlApi", path: "/v1/apis/{apiId}", httpMethod: "GET", input: input) + } + + /// Lists your GraphQL APIs. + public func listGraphqlApis(_ input: ListGraphqlApisRequest) throws -> ListGraphqlApisResponse { + return try client.send(operation: "ListGraphqlApis", path: "/v1/apis", httpMethod: "GET", input: input) + } + + /// Retrieves the introspection schema for a GraphQL API. + public func getIntrospectionSchema(_ input: GetIntrospectionSchemaRequest) throws -> GetIntrospectionSchemaResponse { + return try client.send(operation: "GetIntrospectionSchema", path: "/v1/apis/{apiId}/schema", httpMethod: "GET", input: input) + } + + /// Retrieves a Resolver object. + public func getResolver(_ input: GetResolverRequest) throws -> GetResolverResponse { + return try client.send(operation: "GetResolver", path: "/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}", httpMethod: "GET", input: input) + } + + /// Creates a DataSource object. + public func createDataSource(_ input: CreateDataSourceRequest) throws -> CreateDataSourceResponse { + return try client.send(operation: "CreateDataSource", path: "/v1/apis/{apiId}/datasources", httpMethod: "POST", input: input) + } + + /// Retrieves a Type object. + public func getType(_ input: GetTypeRequest) throws -> GetTypeResponse { + return try client.send(operation: "GetType", path: "/v1/apis/{apiId}/types/{typeName}", httpMethod: "GET", input: input) + } + + /// Retrieves the current status of a schema creation operation. + public func getSchemaCreationStatus(_ input: GetSchemaCreationStatusRequest) throws -> GetSchemaCreationStatusResponse { + return try client.send(operation: "GetSchemaCreationStatus", path: "/v1/apis/{apiId}/schemacreation", httpMethod: "GET", input: input) + } + + /// Creates a GraphqlApi object. + public func createGraphqlApi(_ input: CreateGraphqlApiRequest) throws -> CreateGraphqlApiResponse { + return try client.send(operation: "CreateGraphqlApi", path: "/v1/apis", httpMethod: "POST", input: input) + } + + /// Lists the types for a given API. + public func listTypes(_ input: ListTypesRequest) throws -> ListTypesResponse { + return try client.send(operation: "ListTypes", path: "/v1/apis/{apiId}/types", httpMethod: "GET", input: input) + } + + /// Lists the data sources for a given API. + public func listDataSources(_ input: ListDataSourcesRequest) throws -> ListDataSourcesResponse { + return try client.send(operation: "ListDataSources", path: "/v1/apis/{apiId}/datasources", httpMethod: "GET", input: input) + } + + /// Deletes a GraphqlApi object. + public func deleteGraphqlApi(_ input: DeleteGraphqlApiRequest) throws -> DeleteGraphqlApiResponse { + return try client.send(operation: "DeleteGraphqlApi", path: "/v1/apis/{apiId}", httpMethod: "DELETE", input: input) + } + + /// Updates a Resolver object. + public func updateResolver(_ input: UpdateResolverRequest) throws -> UpdateResolverResponse { + return try client.send(operation: "UpdateResolver", path: "/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}", httpMethod: "POST", input: input) + } + + /// Creates a unique key that you can distribute to clients who are executing your API. + public func createApiKey(_ input: CreateApiKeyRequest) throws -> CreateApiKeyResponse { + return try client.send(operation: "CreateApiKey", path: "/v1/apis/{apiId}/apikeys", httpMethod: "POST", input: input) + } + + /// Updates a DataSource object. + public func updateDataSource(_ input: UpdateDataSourceRequest) throws -> UpdateDataSourceResponse { + return try client.send(operation: "UpdateDataSource", path: "/v1/apis/{apiId}/datasources/{name}", httpMethod: "POST", input: input) + } + + /// Retrieves a DataSource object. + public func getDataSource(_ input: GetDataSourceRequest) throws -> GetDataSourceResponse { + return try client.send(operation: "GetDataSource", path: "/v1/apis/{apiId}/datasources/{name}", httpMethod: "GET", input: input) + } + + /// Deletes a DataSource object. + public func deleteDataSource(_ input: DeleteDataSourceRequest) throws -> DeleteDataSourceResponse { + return try client.send(operation: "DeleteDataSource", path: "/v1/apis/{apiId}/datasources/{name}", httpMethod: "DELETE", input: input) + } + + /// Creates a Type object. + public func createType(_ input: CreateTypeRequest) throws -> CreateTypeResponse { + return try client.send(operation: "CreateType", path: "/v1/apis/{apiId}/types", httpMethod: "POST", input: input) + } + + /// Updates a GraphqlApi object. + public func updateGraphqlApi(_ input: UpdateGraphqlApiRequest) throws -> UpdateGraphqlApiResponse { + return try client.send(operation: "UpdateGraphqlApi", path: "/v1/apis/{apiId}", httpMethod: "POST", input: input) + } + + /// Creates a Resolver object. A resolver converts incoming requests into a format that a data source can understand and converts the data source's responses into GraphQL. + public func createResolver(_ input: CreateResolverRequest) throws -> CreateResolverResponse { + return try client.send(operation: "CreateResolver", path: "/v1/apis/{apiId}/types/{typeName}/resolvers", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/appsync/Appsync_Error.swift b/Sources/AWSSDKSwift/Services/appsync/Appsync_Error.swift new file mode 100644 index 00000000000..d56d2573482 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/appsync/Appsync_Error.swift @@ -0,0 +1,47 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Appsync +public enum AppsyncError: AWSErrorType { + case badRequestException(message: String?) + case notFoundException(message: String?) + case unauthorizedException(message: String?) + case internalFailureException(message: String?) + case concurrentModificationException(message: String?) + case graphQLSchemaException(message: String?) + case limitExceededException(message: String?) + case apiLimitExceededException(message: String?) + case apiKeyLimitExceededException(message: String?) +} + +extension AppsyncError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "BadRequestException": + self = .badRequestException(message: message) + case "NotFoundException": + self = .notFoundException(message: message) + case "UnauthorizedException": + self = .unauthorizedException(message: message) + case "InternalFailureException": + self = .internalFailureException(message: message) + case "ConcurrentModificationException": + self = .concurrentModificationException(message: message) + case "GraphQLSchemaException": + self = .graphQLSchemaException(message: message) + case "LimitExceededException": + self = .limitExceededException(message: message) + case "ApiLimitExceededException": + self = .apiLimitExceededException(message: message) + case "ApiKeyLimitExceededException": + self = .apiKeyLimitExceededException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/appsync/Appsync_Shapes.swift b/Sources/AWSSDKSwift/Services/appsync/Appsync_Shapes.swift new file mode 100644 index 00000000000..43bd2142ee5 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/appsync/Appsync_Shapes.swift @@ -0,0 +1,1430 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Appsync { + + public struct UpdateResolverResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "resolver", required: false, type: .structure) + ] + /// The updated Resolver object. + public let resolver: Resolver? + + public init(resolver: Resolver? = nil) { + self.resolver = resolver + } + + private enum CodingKeys: String, CodingKey { + case resolver = "resolver" + } + } + + public struct DeleteApiKeyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "id", location: .uri(locationName: "id"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// The ID for the API key. + public let id: String + /// The API ID. + public let apiId: String + + public init(id: String, apiId: String) { + self.id = id + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case apiId = "apiId" + } + } + + public enum TypeDefinitionFormat: String, CustomStringConvertible, Codable { + case sdl = "SDL" + case json = "JSON" + public var description: String { return self.rawValue } + } + + public struct ListResolversResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "resolvers", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The Resolver objects. + public let resolvers: [Resolver]? + /// An identifier to be passed in the next request to this operation to return the next set of items in the list. + public let nextToken: String? + + public init(resolvers: [Resolver]? = nil, nextToken: String? = nil) { + self.resolvers = resolvers + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case resolvers = "resolvers" + case nextToken = "nextToken" + } + } + + public struct GetResolverRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "typeName", location: .uri(locationName: "typeName"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "fieldName", location: .uri(locationName: "fieldName"), required: true, type: .string) + ] + /// The resolver type name. + public let typeName: String + /// The API ID. + public let apiId: String + /// The resolver field name. + public let fieldName: String + + public init(typeName: String, apiId: String, fieldName: String) { + self.typeName = typeName + self.apiId = apiId + self.fieldName = fieldName + } + + private enum CodingKeys: String, CodingKey { + case typeName = "typeName" + case apiId = "apiId" + case fieldName = "fieldName" + } + } + + public struct GetGraphqlApiRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// The API ID for the GraphQL API. + public let apiId: String + + public init(apiId: String) { + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case apiId = "apiId" + } + } + + public struct CreateGraphqlApiRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "userPoolConfig", required: false, type: .structure), + AWSShapeMember(label: "name", required: true, type: .string), + AWSShapeMember(label: "authenticationType", required: true, type: .enum) + ] + /// The Amazon Cognito User Pool configuration. + public let userPoolConfig: UserPoolConfig? + /// A user-supplied name for the GraphqlApi. + public let name: String + /// The authentication type: API key, IAM, or Amazon Cognito User Pools. + public let authenticationType: AuthenticationType + + public init(userPoolConfig: UserPoolConfig? = nil, name: String, authenticationType: AuthenticationType) { + self.userPoolConfig = userPoolConfig + self.name = name + self.authenticationType = authenticationType + } + + private enum CodingKeys: String, CodingKey { + case userPoolConfig = "userPoolConfig" + case name = "name" + case authenticationType = "authenticationType" + } + } + + public struct UpdateTypeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "typeName", location: .uri(locationName: "typeName"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "definition", required: false, type: .string), + AWSShapeMember(label: "format", required: true, type: .enum) + ] + /// The new type name. + public let typeName: String + /// The API ID. + public let apiId: String + /// The new definition. + public let definition: String? + /// The new type format: SDL or JSON. + public let format: TypeDefinitionFormat + + public init(typeName: String, apiId: String, definition: String? = nil, format: TypeDefinitionFormat) { + self.typeName = typeName + self.apiId = apiId + self.definition = definition + self.format = format + } + + private enum CodingKeys: String, CodingKey { + case typeName = "typeName" + case apiId = "apiId" + case definition = "definition" + case format = "format" + } + } + + public struct GetTypeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "type", required: false, type: .structure) + ] + /// The Type object. + public let `type`: `Type`? + + public init(type: `Type`? = nil) { + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case `type` = "type" + } + } + + public struct ListTypesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "types", required: false, type: .list) + ] + /// An identifier to be passed in the next request to this operation to return the next set of items in the list. + public let nextToken: String? + /// The Type objects. + public let types: [`Type`]? + + public init(nextToken: String? = nil, types: [`Type`]? = nil) { + self.nextToken = nextToken + self.types = types + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case types = "types" + } + } + + public struct DeleteDataSourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// The name of the data source. + public let name: String + /// The API ID. + public let apiId: String + + public init(name: String, apiId: String) { + self.name = name + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case apiId = "apiId" + } + } + + public struct GetDataSourceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "dataSource", required: false, type: .structure) + ] + /// The DataSource object. + public let dataSource: DataSource? + + public init(dataSource: DataSource? = nil) { + self.dataSource = dataSource + } + + private enum CodingKeys: String, CodingKey { + case dataSource = "dataSource" + } + } + + public struct CreateDataSourceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "dataSource", required: false, type: .structure) + ] + /// The DataSource object. + public let dataSource: DataSource? + + public init(dataSource: DataSource? = nil) { + self.dataSource = dataSource + } + + private enum CodingKeys: String, CodingKey { + case dataSource = "dataSource" + } + } + + public struct GetGraphqlApiResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "graphqlApi", required: false, type: .structure) + ] + /// The GraphqlApi object. + public let graphqlApi: GraphqlApi? + + public init(graphqlApi: GraphqlApi? = nil) { + self.graphqlApi = graphqlApi + } + + private enum CodingKeys: String, CodingKey { + case graphqlApi = "graphqlApi" + } + } + + public struct GetDataSourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// The name of the data source. + public let name: String + /// The API ID. + public let apiId: String + + public init(name: String, apiId: String) { + self.name = name + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case apiId = "apiId" + } + } + + public struct DeleteApiKeyResponse: AWSShape { + + } + + public struct ListDataSourcesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// The maximum number of results you want the request to return. + public let maxResults: Int32? + /// The API ID. + public let apiId: String + + public init(nextToken: String? = nil, maxResults: Int32? = nil, apiId: String) { + self.nextToken = nextToken + self.maxResults = maxResults + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + case apiId = "apiId" + } + } + + public struct GetResolverResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "resolver", required: false, type: .structure) + ] + /// The Resolver object. + public let resolver: Resolver? + + public init(resolver: Resolver? = nil) { + self.resolver = resolver + } + + private enum CodingKeys: String, CodingKey { + case resolver = "resolver" + } + } + + public struct CreateResolverRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "typeName", location: .uri(locationName: "typeName"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "dataSourceName", required: true, type: .string), + AWSShapeMember(label: "responseMappingTemplate", required: false, type: .string), + AWSShapeMember(label: "fieldName", required: true, type: .string), + AWSShapeMember(label: "requestMappingTemplate", required: true, type: .string) + ] + /// The name of the Type. + public let typeName: String + /// The ID for the GraphQL API for which the resolver is being created. + public let apiId: String + /// The name of the data source for which the resolver is being created. + public let dataSourceName: String + /// The mapping template to be used for responses from the data source. + public let responseMappingTemplate: String? + /// The name of the field to attach the resolver to. + public let fieldName: String + /// The mapping template to be used for requests. A resolver use a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL). + public let requestMappingTemplate: String + + public init(typeName: String, apiId: String, dataSourceName: String, responseMappingTemplate: String? = nil, fieldName: String, requestMappingTemplate: String) { + self.typeName = typeName + self.apiId = apiId + self.dataSourceName = dataSourceName + self.responseMappingTemplate = responseMappingTemplate + self.fieldName = fieldName + self.requestMappingTemplate = requestMappingTemplate + } + + private enum CodingKeys: String, CodingKey { + case typeName = "typeName" + case apiId = "apiId" + case dataSourceName = "dataSourceName" + case responseMappingTemplate = "responseMappingTemplate" + case fieldName = "fieldName" + case requestMappingTemplate = "requestMappingTemplate" + } + } + + public enum OutputType: String, CustomStringConvertible, Codable { + case sdl = "SDL" + case json = "JSON" + public var description: String { return self.rawValue } + } + + public enum DefaultAction: String, CustomStringConvertible, Codable { + case allow = "ALLOW" + case deny = "DENY" + public var description: String { return self.rawValue } + } + + public struct GraphqlApi: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "apiId", required: false, type: .string), + AWSShapeMember(label: "uris", required: false, type: .map), + AWSShapeMember(label: "userPoolConfig", required: false, type: .structure), + AWSShapeMember(label: "authenticationType", required: false, type: .enum), + AWSShapeMember(label: "arn", required: false, type: .string) + ] + /// The API name. + public let name: String? + /// The API ID. + public let apiId: String? + /// The URIs. + public let uris: [String: String]? + /// The Amazon Cognito User Pool configuration. + public let userPoolConfig: UserPoolConfig? + /// The authentication type. + public let authenticationType: AuthenticationType? + /// The ARN. + public let arn: String? + + public init(name: String? = nil, apiId: String? = nil, uris: [String: String]? = nil, userPoolConfig: UserPoolConfig? = nil, authenticationType: AuthenticationType? = nil, arn: String? = nil) { + self.name = name + self.apiId = apiId + self.uris = uris + self.userPoolConfig = userPoolConfig + self.authenticationType = authenticationType + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case apiId = "apiId" + case uris = "uris" + case userPoolConfig = "userPoolConfig" + case authenticationType = "authenticationType" + case arn = "arn" + } + } + + public struct GetSchemaCreationStatusResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "details", required: false, type: .string), + AWSShapeMember(label: "status", required: false, type: .enum) + ] + /// Detailed information about the status of the schema creation operation. + public let details: String? + /// The current state of the schema (PROCESSING, ACTIVE, or DELETING). Once the schema is in the ACTIVE state, you can add data. + public let status: SchemaStatus? + + public init(details: String? = nil, status: SchemaStatus? = nil) { + self.details = details + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case details = "details" + case status = "status" + } + } + + public struct ListApiKeysResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "apiKeys", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The ApiKey objects. + public let apiKeys: [ApiKey]? + /// An identifier to be passed in the next request to this operation to return the next set of items in the list. + public let nextToken: String? + + public init(apiKeys: [ApiKey]? = nil, nextToken: String? = nil) { + self.apiKeys = apiKeys + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case apiKeys = "apiKeys" + case nextToken = "nextToken" + } + } + + public struct ListGraphqlApisRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// The maximum number of results you want the request to return. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct ListDataSourcesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "dataSources", required: false, type: .list) + ] + /// An identifier to be passed in the next request to this operation to return the next set of items in the list. + public let nextToken: String? + /// The DataSource objects. + public let dataSources: [DataSource]? + + public init(nextToken: String? = nil, dataSources: [DataSource]? = nil) { + self.nextToken = nextToken + self.dataSources = dataSources + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case dataSources = "dataSources" + } + } + + public enum DataSourceType: String, CustomStringConvertible, Codable { + case awsLambda = "AWS_LAMBDA" + case amazonDynamodb = "AMAZON_DYNAMODB" + case amazonElasticsearch = "AMAZON_ELASTICSEARCH" + public var description: String { return self.rawValue } + } + + public struct DeleteTypeResponse: AWSShape { + + } + + public struct UpdateGraphqlApiResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "graphqlApi", required: false, type: .structure) + ] + /// The udpated GraphqlApi object. + public let graphqlApi: GraphqlApi? + + public init(graphqlApi: GraphqlApi? = nil) { + self.graphqlApi = graphqlApi + } + + private enum CodingKeys: String, CodingKey { + case graphqlApi = "graphqlApi" + } + } + + public struct UpdateResolverRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "typeName", location: .uri(locationName: "typeName"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "dataSourceName", required: true, type: .string), + AWSShapeMember(label: "responseMappingTemplate", required: false, type: .string), + AWSShapeMember(label: "fieldName", location: .uri(locationName: "fieldName"), required: true, type: .string), + AWSShapeMember(label: "requestMappingTemplate", required: true, type: .string) + ] + /// The new type name. + public let typeName: String + /// The API ID. + public let apiId: String + /// The new data source name. + public let dataSourceName: String + /// The new response mapping template. + public let responseMappingTemplate: String? + /// The new field name. + public let fieldName: String + /// The new request mapping template. + public let requestMappingTemplate: String + + public init(typeName: String, apiId: String, dataSourceName: String, responseMappingTemplate: String? = nil, fieldName: String, requestMappingTemplate: String) { + self.typeName = typeName + self.apiId = apiId + self.dataSourceName = dataSourceName + self.responseMappingTemplate = responseMappingTemplate + self.fieldName = fieldName + self.requestMappingTemplate = requestMappingTemplate + } + + private enum CodingKeys: String, CodingKey { + case typeName = "typeName" + case apiId = "apiId" + case dataSourceName = "dataSourceName" + case responseMappingTemplate = "responseMappingTemplate" + case fieldName = "fieldName" + case requestMappingTemplate = "requestMappingTemplate" + } + } + + public struct UserPoolConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "defaultAction", required: true, type: .enum), + AWSShapeMember(label: "appIdClientRegex", required: false, type: .string), + AWSShapeMember(label: "awsRegion", required: true, type: .string), + AWSShapeMember(label: "userPoolId", required: true, type: .string) + ] + /// The action that you want your GraphQL API to take when a request that uses Amazon Cognito User Pool authentication doesn't match the Amazon Cognito User Pool configuration. + public let defaultAction: DefaultAction + /// A regular expression for validating the incoming Amazon Cognito User Pool app client ID. + public let appIdClientRegex: String? + /// The AWS region in which the user pool was created. + public let awsRegion: String + /// The user pool ID. + public let userPoolId: String + + public init(defaultAction: DefaultAction, appIdClientRegex: String? = nil, awsRegion: String, userPoolId: String) { + self.defaultAction = defaultAction + self.appIdClientRegex = appIdClientRegex + self.awsRegion = awsRegion + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case defaultAction = "defaultAction" + case appIdClientRegex = "appIdClientRegex" + case awsRegion = "awsRegion" + case userPoolId = "userPoolId" + } + } + + public struct DataSource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "dynamodbConfig", required: false, type: .structure), + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "dataSourceArn", required: false, type: .string), + AWSShapeMember(label: "lambdaConfig", required: false, type: .structure), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "serviceRoleArn", required: false, type: .string), + AWSShapeMember(label: "elasticsearchConfig", required: false, type: .structure), + AWSShapeMember(label: "type", required: false, type: .enum) + ] + /// DynamoDB settings. + public let dynamodbConfig: DynamodbDataSourceConfig? + /// The name of the data source. + public let name: String? + /// The data source ARN. + public let dataSourceArn: String? + /// Lambda settings. + public let lambdaConfig: LambdaDataSourceConfig? + /// The description of the data source. + public let description: String? + /// The IAM service role ARN for the data source. The system assumes this role when accessing the data source. + public let serviceRoleArn: String? + /// Amazon Elasticsearch settings. + public let elasticsearchConfig: ElasticsearchDataSourceConfig? + /// The type of the data source. + public let `type`: DataSourceType? + + public init(dynamodbConfig: DynamodbDataSourceConfig? = nil, name: String? = nil, dataSourceArn: String? = nil, lambdaConfig: LambdaDataSourceConfig? = nil, description: String? = nil, serviceRoleArn: String? = nil, elasticsearchConfig: ElasticsearchDataSourceConfig? = nil, type: DataSourceType? = nil) { + self.dynamodbConfig = dynamodbConfig + self.name = name + self.dataSourceArn = dataSourceArn + self.lambdaConfig = lambdaConfig + self.description = description + self.serviceRoleArn = serviceRoleArn + self.elasticsearchConfig = elasticsearchConfig + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case dynamodbConfig = "dynamodbConfig" + case name = "name" + case dataSourceArn = "dataSourceArn" + case lambdaConfig = "lambdaConfig" + case description = "description" + case serviceRoleArn = "serviceRoleArn" + case elasticsearchConfig = "elasticsearchConfig" + case `type` = "type" + } + } + + public struct CreateGraphqlApiResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "graphqlApi", required: false, type: .structure) + ] + /// The GraphqlApi. + public let graphqlApi: GraphqlApi? + + public init(graphqlApi: GraphqlApi? = nil) { + self.graphqlApi = graphqlApi + } + + private enum CodingKeys: String, CodingKey { + case graphqlApi = "graphqlApi" + } + } + + public struct `Type`: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "format", required: false, type: .enum), + AWSShapeMember(label: "definition", required: false, type: .string), + AWSShapeMember(label: "arn", required: false, type: .string) + ] + /// The type description. + public let description: String? + /// The type name. + public let name: String? + /// The type format: SDL or JSON. + public let format: TypeDefinitionFormat? + /// The type definition. + public let definition: String? + /// The type ARN. + public let arn: String? + + public init(description: String? = nil, name: String? = nil, format: TypeDefinitionFormat? = nil, definition: String? = nil, arn: String? = nil) { + self.description = description + self.name = name + self.format = format + self.definition = definition + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case name = "name" + case format = "format" + case definition = "definition" + case arn = "arn" + } + } + + public struct GetTypeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "typeName", location: .uri(locationName: "typeName"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "format", location: .querystring(locationName: "format"), required: true, type: .enum) + ] + /// The type name. + public let typeName: String + /// The API ID. + public let apiId: String + /// The type format: SDL or JSON. + public let format: TypeDefinitionFormat + + public init(typeName: String, apiId: String, format: TypeDefinitionFormat) { + self.typeName = typeName + self.apiId = apiId + self.format = format + } + + private enum CodingKeys: String, CodingKey { + case typeName = "typeName" + case apiId = "apiId" + case format = "format" + } + } + + public struct CreateResolverResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "resolver", required: false, type: .structure) + ] + /// The Resolver object. + public let resolver: Resolver? + + public init(resolver: Resolver? = nil) { + self.resolver = resolver + } + + private enum CodingKeys: String, CodingKey { + case resolver = "resolver" + } + } + + public struct DynamodbDataSourceConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "awsRegion", required: true, type: .string), + AWSShapeMember(label: "useCallerCredentials", required: false, type: .boolean), + AWSShapeMember(label: "tableName", required: true, type: .string) + ] + /// The AWS region. + public let awsRegion: String + /// Set to TRUE to use Amazon Cognito credentials with this data source. + public let useCallerCredentials: Bool? + /// The table name. + public let tableName: String + + public init(awsRegion: String, useCallerCredentials: Bool? = nil, tableName: String) { + self.awsRegion = awsRegion + self.useCallerCredentials = useCallerCredentials + self.tableName = tableName + } + + private enum CodingKeys: String, CodingKey { + case awsRegion = "awsRegion" + case useCallerCredentials = "useCallerCredentials" + case tableName = "tableName" + } + } + + public struct UpdateDataSourceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "dataSource", required: false, type: .structure) + ] + /// The updated DataSource object. + public let dataSource: DataSource? + + public init(dataSource: DataSource? = nil) { + self.dataSource = dataSource + } + + private enum CodingKeys: String, CodingKey { + case dataSource = "dataSource" + } + } + + public struct ListApiKeysRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// The maximum number of results you want the request to return. + public let maxResults: Int32? + /// The API ID. + public let apiId: String + + public init(nextToken: String? = nil, maxResults: Int32? = nil, apiId: String) { + self.nextToken = nextToken + self.maxResults = maxResults + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + case apiId = "apiId" + } + } + + public struct ApiKey: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "id", required: false, type: .string), + AWSShapeMember(label: "expires", required: false, type: .long), + AWSShapeMember(label: "description", required: false, type: .string) + ] + /// The API key ID. + public let id: String? + /// The time when the API key expires. + public let expires: Int64? + /// A description of the purpose of the API key. + public let description: String? + + public init(id: String? = nil, expires: Int64? = nil, description: String? = nil) { + self.id = id + self.expires = expires + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case expires = "expires" + case description = "description" + } + } + + public struct DeleteGraphqlApiRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// The API ID. + public let apiId: String + + public init(apiId: String) { + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case apiId = "apiId" + } + } + + public struct UpdateTypeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "type", required: false, type: .structure) + ] + /// The updated Type object. + public let `type`: `Type`? + + public init(type: `Type`? = nil) { + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case `type` = "type" + } + } + + public struct LambdaDataSourceConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "lambdaFunctionArn", required: true, type: .string) + ] + /// The ARN for the Lambda function. + public let lambdaFunctionArn: String + + public init(lambdaFunctionArn: String) { + self.lambdaFunctionArn = lambdaFunctionArn + } + + private enum CodingKeys: String, CodingKey { + case lambdaFunctionArn = "lambdaFunctionArn" + } + } + + public struct CreateApiKeyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "apiKey", required: false, type: .structure) + ] + /// The API key. + public let apiKey: ApiKey? + + public init(apiKey: ApiKey? = nil) { + self.apiKey = apiKey + } + + private enum CodingKeys: String, CodingKey { + case apiKey = "apiKey" + } + } + + public struct ListResolversRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "typeName", location: .uri(locationName: "typeName"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + /// The type name. + public let typeName: String + /// The API ID. + public let apiId: String + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// The maximum number of results you want the request to return. + public let maxResults: Int32? + + public init(typeName: String, apiId: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.typeName = typeName + self.apiId = apiId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case typeName = "typeName" + case apiId = "apiId" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public enum AuthenticationType: String, CustomStringConvertible, Codable { + case apiKey = "API_KEY" + case awsIam = "AWS_IAM" + case amazonCognitoUserPools = "AMAZON_COGNITO_USER_POOLS" + public var description: String { return self.rawValue } + } + + public struct ElasticsearchDataSourceConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "awsRegion", required: true, type: .string), + AWSShapeMember(label: "endpoint", required: true, type: .string) + ] + /// The AWS region. + public let awsRegion: String + /// The endpoint. + public let endpoint: String + + public init(awsRegion: String, endpoint: String) { + self.awsRegion = awsRegion + self.endpoint = endpoint + } + + private enum CodingKeys: String, CodingKey { + case awsRegion = "awsRegion" + case endpoint = "endpoint" + } + } + + public struct CreateTypeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "type", required: false, type: .structure) + ] + /// The Type object. + public let `type`: `Type`? + + public init(type: `Type`? = nil) { + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case `type` = "type" + } + } + + public struct StartSchemaCreationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "definition", required: true, type: .blob), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// The schema definition, in GraphQL schema language format. + public let definition: Data + /// The API ID. + public let apiId: String + + public init(definition: Data, apiId: String) { + self.definition = definition + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case definition = "definition" + case apiId = "apiId" + } + } + + public struct GetSchemaCreationStatusRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// The API ID. + public let apiId: String + + public init(apiId: String) { + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case apiId = "apiId" + } + } + + public struct Resolver: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "resolverArn", required: false, type: .string), + AWSShapeMember(label: "typeName", required: false, type: .string), + AWSShapeMember(label: "dataSourceName", required: false, type: .string), + AWSShapeMember(label: "responseMappingTemplate", required: false, type: .string), + AWSShapeMember(label: "fieldName", required: false, type: .string), + AWSShapeMember(label: "requestMappingTemplate", required: false, type: .string) + ] + /// The resolver ARN. + public let resolverArn: String? + /// The resolver type name. + public let typeName: String? + /// The resolver data source name. + public let dataSourceName: String? + /// The response mapping template. + public let responseMappingTemplate: String? + /// The resolver field name. + public let fieldName: String? + /// The request mapping template. + public let requestMappingTemplate: String? + + public init(resolverArn: String? = nil, typeName: String? = nil, dataSourceName: String? = nil, responseMappingTemplate: String? = nil, fieldName: String? = nil, requestMappingTemplate: String? = nil) { + self.resolverArn = resolverArn + self.typeName = typeName + self.dataSourceName = dataSourceName + self.responseMappingTemplate = responseMappingTemplate + self.fieldName = fieldName + self.requestMappingTemplate = requestMappingTemplate + } + + private enum CodingKeys: String, CodingKey { + case resolverArn = "resolverArn" + case typeName = "typeName" + case dataSourceName = "dataSourceName" + case responseMappingTemplate = "responseMappingTemplate" + case fieldName = "fieldName" + case requestMappingTemplate = "requestMappingTemplate" + } + } + + public struct UpdateDataSourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "dynamodbConfig", required: false, type: .structure), + AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "lambdaConfig", required: false, type: .structure), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "serviceRoleArn", required: false, type: .string), + AWSShapeMember(label: "elasticsearchConfig", required: false, type: .structure), + AWSShapeMember(label: "type", required: true, type: .enum) + ] + /// The new DynamoDB configuration. + public let dynamodbConfig: DynamodbDataSourceConfig? + /// The new name for the data source. + public let name: String + /// The API ID. + public let apiId: String + /// The new Lambda configuration. + public let lambdaConfig: LambdaDataSourceConfig? + /// The new description for the data source. + public let description: String? + /// The new service role ARN for the data source. + public let serviceRoleArn: String? + /// The new Elasticsearch configuration. + public let elasticsearchConfig: ElasticsearchDataSourceConfig? + /// The new data source type. + public let `type`: DataSourceType + + public init(dynamodbConfig: DynamodbDataSourceConfig? = nil, name: String, apiId: String, lambdaConfig: LambdaDataSourceConfig? = nil, description: String? = nil, serviceRoleArn: String? = nil, elasticsearchConfig: ElasticsearchDataSourceConfig? = nil, type: DataSourceType) { + self.dynamodbConfig = dynamodbConfig + self.name = name + self.apiId = apiId + self.lambdaConfig = lambdaConfig + self.description = description + self.serviceRoleArn = serviceRoleArn + self.elasticsearchConfig = elasticsearchConfig + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case dynamodbConfig = "dynamodbConfig" + case name = "name" + case apiId = "apiId" + case lambdaConfig = "lambdaConfig" + case description = "description" + case serviceRoleArn = "serviceRoleArn" + case elasticsearchConfig = "elasticsearchConfig" + case `type` = "type" + } + } + + public struct UpdateGraphqlApiRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "userPoolConfig", required: false, type: .structure), + AWSShapeMember(label: "authenticationType", required: false, type: .enum) + ] + /// The new name for the GraphqlApi object. + public let name: String + /// The API ID. + public let apiId: String + /// The new Amazon Cognito User Pool configuration for the GraphqlApi object. + public let userPoolConfig: UserPoolConfig? + /// The new authentication type for the GraphqlApi object. + public let authenticationType: AuthenticationType? + + public init(name: String, apiId: String, userPoolConfig: UserPoolConfig? = nil, authenticationType: AuthenticationType? = nil) { + self.name = name + self.apiId = apiId + self.userPoolConfig = userPoolConfig + self.authenticationType = authenticationType + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case apiId = "apiId" + case userPoolConfig = "userPoolConfig" + case authenticationType = "authenticationType" + } + } + + public struct StartSchemaCreationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum) + ] + /// The current state of the schema (PROCESSING, ACTIVE, or DELETING). Once the schema is in the ACTIVE state, you can add data. + public let status: SchemaStatus? + + public init(status: SchemaStatus? = nil) { + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + } + } + + public struct ListTypesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "format", location: .querystring(locationName: "format"), required: true, type: .enum) + ] + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// The maximum number of results you want the request to return. + public let maxResults: Int32? + /// The API ID. + public let apiId: String + /// The type format: SDL or JSON. + public let format: TypeDefinitionFormat + + public init(nextToken: String? = nil, maxResults: Int32? = nil, apiId: String, format: TypeDefinitionFormat) { + self.nextToken = nextToken + self.maxResults = maxResults + self.apiId = apiId + self.format = format + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + case apiId = "apiId" + case format = "format" + } + } + + public struct DeleteDataSourceResponse: AWSShape { + + } + + public struct CreateTypeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "definition", required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "format", required: true, type: .enum) + ] + /// The type definition, in GraphQL Schema Definition Language (SDL) format. For more information, see the GraphQL SDL documentation. + public let definition: String + /// The API ID. + public let apiId: String + /// The type format: SDL or JSON. + public let format: TypeDefinitionFormat + + public init(definition: String, apiId: String, format: TypeDefinitionFormat) { + self.definition = definition + self.apiId = apiId + self.format = format + } + + private enum CodingKeys: String, CodingKey { + case definition = "definition" + case apiId = "apiId" + case format = "format" + } + } + + public enum SchemaStatus: String, CustomStringConvertible, Codable { + case processing = "PROCESSING" + case active = "ACTIVE" + case deleting = "DELETING" + public var description: String { return self.rawValue } + } + + public struct DeleteResolverResponse: AWSShape { + + } + + public struct ListGraphqlApisResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "graphqlApis", required: false, type: .list) + ] + /// An identifier to be passed in the next request to this operation to return the next set of items in the list. + public let nextToken: String? + /// The GraphqlApi objects. + public let graphqlApis: [GraphqlApi]? + + public init(nextToken: String? = nil, graphqlApis: [GraphqlApi]? = nil) { + self.nextToken = nextToken + self.graphqlApis = graphqlApis + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case graphqlApis = "graphqlApis" + } + } + + public struct GetIntrospectionSchemaResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "schema" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "schema", required: false, type: .blob) + ] + /// The schema, in GraphQL Schema Definition Language (SDL) format. For more information, see the GraphQL SDL documentation. + public let schema: Data? + + public init(schema: Data? = nil) { + self.schema = schema + } + + private enum CodingKeys: String, CodingKey { + case schema = "schema" + } + } + + public struct DeleteGraphqlApiResponse: AWSShape { + + } + + public struct DeleteResolverRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "typeName", location: .uri(locationName: "typeName"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "fieldName", location: .uri(locationName: "fieldName"), required: true, type: .string) + ] + /// The name of the resolver type. + public let typeName: String + /// The API ID. + public let apiId: String + /// The resolver field name. + public let fieldName: String + + public init(typeName: String, apiId: String, fieldName: String) { + self.typeName = typeName + self.apiId = apiId + self.fieldName = fieldName + } + + private enum CodingKeys: String, CodingKey { + case typeName = "typeName" + case apiId = "apiId" + case fieldName = "fieldName" + } + } + + public struct CreateApiKeyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// A description of the purpose of the API key. + public let description: String? + /// The ID for your GraphQL API. + public let apiId: String + + public init(description: String? = nil, apiId: String) { + self.description = description + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case apiId = "apiId" + } + } + + public struct DeleteTypeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "typeName", location: .uri(locationName: "typeName"), required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string) + ] + /// The type name. + public let typeName: String + /// The API ID. + public let apiId: String + + public init(typeName: String, apiId: String) { + self.typeName = typeName + self.apiId = apiId + } + + private enum CodingKeys: String, CodingKey { + case typeName = "typeName" + case apiId = "apiId" + } + } + + public struct CreateDataSourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "dynamodbConfig", required: false, type: .structure), + AWSShapeMember(label: "name", required: true, type: .string), + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "lambdaConfig", required: false, type: .structure), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "serviceRoleArn", required: false, type: .string), + AWSShapeMember(label: "elasticsearchConfig", required: false, type: .structure), + AWSShapeMember(label: "type", required: true, type: .enum) + ] + /// DynamoDB settings. + public let dynamodbConfig: DynamodbDataSourceConfig? + /// A user-supplied name for the DataSource. + public let name: String + /// The API ID for the GraphQL API for the DataSource. + public let apiId: String + /// AWS Lambda settings. + public let lambdaConfig: LambdaDataSourceConfig? + /// A description of the DataSource. + public let description: String? + /// The IAM service role ARN for the data source. The system assumes this role when accessing the data source. + public let serviceRoleArn: String? + /// Amazon Elasticsearch settings. + public let elasticsearchConfig: ElasticsearchDataSourceConfig? + /// The type of the DataSource. + public let `type`: DataSourceType + + public init(dynamodbConfig: DynamodbDataSourceConfig? = nil, name: String, apiId: String, lambdaConfig: LambdaDataSourceConfig? = nil, description: String? = nil, serviceRoleArn: String? = nil, elasticsearchConfig: ElasticsearchDataSourceConfig? = nil, type: DataSourceType) { + self.dynamodbConfig = dynamodbConfig + self.name = name + self.apiId = apiId + self.lambdaConfig = lambdaConfig + self.description = description + self.serviceRoleArn = serviceRoleArn + self.elasticsearchConfig = elasticsearchConfig + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case dynamodbConfig = "dynamodbConfig" + case name = "name" + case apiId = "apiId" + case lambdaConfig = "lambdaConfig" + case description = "description" + case serviceRoleArn = "serviceRoleArn" + case elasticsearchConfig = "elasticsearchConfig" + case `type` = "type" + } + } + + public struct GetIntrospectionSchemaRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "apiId", location: .uri(locationName: "apiId"), required: true, type: .string), + AWSShapeMember(label: "format", location: .querystring(locationName: "format"), required: true, type: .enum) + ] + /// The API ID. + public let apiId: String + /// The schema format: SDL or JSON. + public let format: OutputType + + public init(apiId: String, format: OutputType) { + self.apiId = apiId + self.format = format + } + + private enum CodingKeys: String, CodingKey { + case apiId = "apiId" + case format = "format" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/athena/Athena_Shapes.swift b/Sources/AWSSDKSwift/Services/athena/Athena_Shapes.swift index c94cd0c8cd2..dbf6fd5c6d6 100644 --- a/Sources/AWSSDKSwift/Services/athena/Athena_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/athena/Athena_Shapes.swift @@ -13,7 +13,7 @@ extension Athena { } public struct ListNamedQueriesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -34,7 +34,7 @@ extension Athena { } public struct StopQueryExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueryExecutionId", required: true, type: .string) ] /// The unique ID of the query execution to stop. @@ -50,7 +50,7 @@ extension Athena { } public struct BatchGetNamedQueryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NamedQueries", required: false, type: .list), AWSShapeMember(label: "UnprocessedNamedQueryIds", required: false, type: .list) ] @@ -71,7 +71,7 @@ extension Athena { } public struct ResultConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OutputLocation", required: true, type: .string), AWSShapeMember(label: "EncryptionConfiguration", required: false, type: .structure) ] @@ -92,7 +92,7 @@ extension Athena { } public struct ListQueryExecutionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueryExecutionIds", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -113,7 +113,7 @@ extension Athena { } public struct GetNamedQueryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NamedQuery", required: false, type: .structure) ] /// Information about the query. @@ -129,7 +129,7 @@ extension Athena { } public struct StartQueryExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResultConfiguration", required: true, type: .structure), AWSShapeMember(label: "QueryString", required: true, type: .string), AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), @@ -160,7 +160,7 @@ extension Athena { } public struct CreateNamedQueryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NamedQueryId", required: false, type: .string) ] /// The unique ID of the query. @@ -176,7 +176,7 @@ extension Athena { } public struct UnprocessedQueryExecutionId: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorMessage", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .string), AWSShapeMember(label: "QueryExecutionId", required: false, type: .string) @@ -202,7 +202,7 @@ extension Athena { } public struct ResultSetMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ColumnInfo", required: false, type: .list) ] /// Information about the columns in a query execution result. @@ -218,7 +218,7 @@ extension Athena { } public struct GetQueryExecutionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueryExecution", required: false, type: .structure) ] /// Information about the query execution. @@ -234,7 +234,7 @@ extension Athena { } public struct BatchGetQueryExecutionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueryExecutions", required: false, type: .list), AWSShapeMember(label: "UnprocessedQueryExecutionIds", required: false, type: .list) ] @@ -264,7 +264,7 @@ extension Athena { } public struct StartQueryExecutionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueryExecutionId", required: false, type: .string) ] /// The unique ID of the query that ran as a result of this request. @@ -280,7 +280,7 @@ extension Athena { } public struct ResultSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rows", required: false, type: .list), AWSShapeMember(label: "ResultSetMetadata", required: false, type: .structure) ] @@ -301,7 +301,7 @@ extension Athena { } public struct GetQueryResultsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ResultSet", required: false, type: .structure) ] @@ -322,7 +322,7 @@ extension Athena { } public struct ColumnInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Nullable", required: false, type: .enum), AWSShapeMember(label: "CatalogName", required: false, type: .string), AWSShapeMember(label: "SchemaName", required: false, type: .string), @@ -387,7 +387,7 @@ extension Athena { } public struct Row: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Data", required: false, type: .list) ] /// The data that populates a row in a query result table. @@ -408,7 +408,7 @@ extension Athena { } public struct GetNamedQueryInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NamedQueryId", required: true, type: .string) ] /// The unique ID of the query. Use ListNamedQueries to get query IDs. @@ -431,7 +431,7 @@ extension Athena { } public struct Datum: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VarCharValue", required: false, type: .string) ] /// The value of the datum. @@ -447,7 +447,7 @@ extension Athena { } public struct UnprocessedNamedQueryId: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorMessage", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .string), AWSShapeMember(label: "NamedQueryId", required: false, type: .string) @@ -473,7 +473,7 @@ extension Athena { } public struct NamedQuery: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "QueryString", required: true, type: .string), AWSShapeMember(label: "NamedQueryId", required: false, type: .string), @@ -509,7 +509,7 @@ extension Athena { } public struct GetQueryExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueryExecutionId", required: true, type: .string) ] /// The unique ID of the query execution. @@ -525,7 +525,7 @@ extension Athena { } public struct ListQueryExecutionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -546,7 +546,7 @@ extension Athena { } public struct BatchGetQueryExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueryExecutionIds", required: true, type: .list) ] /// An array of query execution IDs. @@ -566,7 +566,7 @@ extension Athena { } public struct CreateNamedQueryInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueryString", required: true, type: .string), AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), @@ -602,7 +602,7 @@ extension Athena { } public struct GetQueryResultsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueryExecutionId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -628,7 +628,7 @@ extension Athena { } public struct QueryExecutionStatistics: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EngineExecutionTimeInMillis", required: false, type: .long), AWSShapeMember(label: "DataScannedInBytes", required: false, type: .long) ] @@ -649,7 +649,7 @@ extension Athena { } public struct ListNamedQueriesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "NamedQueryIds", required: false, type: .list) ] @@ -670,7 +670,7 @@ extension Athena { } public struct QueryExecutionStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StateChangeReason", required: false, type: .string), AWSShapeMember(label: "CompletionDateTime", required: false, type: .timestamp), AWSShapeMember(label: "State", required: false, type: .enum), @@ -701,7 +701,7 @@ extension Athena { } public struct BatchGetNamedQueryInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NamedQueryIds", required: true, type: .list) ] /// An array of query IDs. @@ -717,7 +717,7 @@ extension Athena { } public struct DeleteNamedQueryInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NamedQueryId", required: true, type: .string) ] /// The unique ID of the query to delete. @@ -733,7 +733,7 @@ extension Athena { } public struct EncryptionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EncryptionOption", required: true, type: .enum), AWSShapeMember(label: "KmsKey", required: false, type: .string) ] @@ -754,7 +754,7 @@ extension Athena { } public struct QueryExecution: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResultConfiguration", required: false, type: .structure), AWSShapeMember(label: "Status", required: false, type: .structure), AWSShapeMember(label: "Query", required: false, type: .string), @@ -795,7 +795,7 @@ extension Athena { } public struct QueryExecutionContext: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Database", required: false, type: .string) ] /// The name of the database. diff --git a/Sources/AWSSDKSwift/Services/autoscaling/Autoscaling_Shapes.swift b/Sources/AWSSDKSwift/Services/autoscaling/Autoscaling_Shapes.swift index 54a9ce30adf..bfb4acb0d04 100644 --- a/Sources/AWSSDKSwift/Services/autoscaling/Autoscaling_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/autoscaling/Autoscaling_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Autoscaling { public struct LaunchConfigurationsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LaunchConfigurations", required: true, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -27,7 +27,7 @@ extension Autoscaling { } public struct ActivityType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Activity", required: false, type: .structure) ] /// A scaling activity. @@ -42,8 +42,39 @@ extension Autoscaling { } } + public struct TargetTrackingConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetValue", required: true, type: .double), + AWSShapeMember(label: "PredefinedMetricSpecification", required: false, type: .structure), + AWSShapeMember(label: "CustomizedMetricSpecification", required: false, type: .structure), + AWSShapeMember(label: "DisableScaleIn", required: false, type: .boolean) + ] + /// The target value for the metric. + public let targetValue: Double + /// A predefined metric. You can specify either a predefined metric or a customized metric. + public let predefinedMetricSpecification: PredefinedMetricSpecification? + /// A customized metric. + public let customizedMetricSpecification: CustomizedMetricSpecification? + /// Indicates whether scale in by the target tracking policy is disabled. If the value is true, scale in is disabled and the target tracking policy won't remove instances from the Auto Scaling group. Otherwise, scale in is enabled and the target tracking policy can remove instances from the Auto Scaling group. The default value is false. + public let disableScaleIn: Bool? + + public init(targetValue: Double, predefinedMetricSpecification: PredefinedMetricSpecification? = nil, customizedMetricSpecification: CustomizedMetricSpecification? = nil, disableScaleIn: Bool? = nil) { + self.targetValue = targetValue + self.predefinedMetricSpecification = predefinedMetricSpecification + self.customizedMetricSpecification = customizedMetricSpecification + self.disableScaleIn = disableScaleIn + } + + private enum CodingKeys: String, CodingKey { + case targetValue = "TargetValue" + case predefinedMetricSpecification = "PredefinedMetricSpecification" + case customizedMetricSpecification = "CustomizedMetricSpecification" + case disableScaleIn = "DisableScaleIn" + } + } + public struct ProcessType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProcessName", required: true, type: .string) ] /// One of the following processes: Launch Terminate AddToLoadBalancer AlarmNotification AZRebalance HealthCheck ReplaceUnhealthy ScheduledActions @@ -63,7 +94,7 @@ extension Autoscaling { } public struct PutLifecycleHookType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NotificationTargetARN", required: false, type: .string), AWSShapeMember(label: "NotificationMetadata", required: false, type: .string), AWSShapeMember(label: "DefaultResult", required: false, type: .string), @@ -81,9 +112,9 @@ extension Autoscaling { public let defaultResult: String? /// The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. This parameter is required for new lifecycle hooks, but optional when updating existing hooks. public let roleARN: String? - /// The amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat. The default is 3600 seconds (1 hour). + /// The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from 30 to 7200 seconds. The default is 3600 seconds (1 hour). If the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat. public let heartbeatTimeout: Int32? - /// The name of the Auto Scaling group to which you want to assign the lifecycle hook. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String /// The instance state to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see DescribeLifecycleHookTypes. This parameter is required for new lifecycle hooks, but optional when updating existing hooks. public let lifecycleTransition: String? @@ -114,7 +145,7 @@ extension Autoscaling { } public struct LaunchConfigurationNamesType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "LaunchConfigurationNames", required: false, type: .list) @@ -140,7 +171,7 @@ extension Autoscaling { } public struct DescribeNotificationConfigurationsAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "NotificationConfigurations", required: true, type: .list) ] @@ -161,13 +192,14 @@ extension Autoscaling { } public struct ScalingPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MinAdjustmentStep", required: false, type: .integer), AWSShapeMember(label: "PolicyType", required: false, type: .string), AWSShapeMember(label: "AdjustmentType", required: false, type: .string), AWSShapeMember(label: "Cooldown", required: false, type: .integer), AWSShapeMember(label: "MinAdjustmentMagnitude", required: false, type: .integer), AWSShapeMember(label: "PolicyName", required: false, type: .string), + AWSShapeMember(label: "TargetTrackingConfiguration", required: false, type: .structure), AWSShapeMember(label: "MetricAggregationType", required: false, type: .string), AWSShapeMember(label: "ScalingAdjustment", required: false, type: .integer), AWSShapeMember(label: "PolicyARN", required: false, type: .string), @@ -188,13 +220,15 @@ extension Autoscaling { public let minAdjustmentMagnitude: Int32? /// The name of the scaling policy. public let policyName: String? + /// A target tracking policy. + public let targetTrackingConfiguration: TargetTrackingConfiguration? /// The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. public let metricAggregationType: String? /// The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. public let scalingAdjustment: Int32? /// The Amazon Resource Name (ARN) of the policy. public let policyARN: String? - /// The name of the Auto Scaling group associated with this scaling policy. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String? /// The CloudWatch alarms related to the policy. public let alarms: [Alarm]? @@ -203,13 +237,14 @@ extension Autoscaling { /// A set of adjustments that enable you to scale based on the size of the alarm breach. public let stepAdjustments: [StepAdjustment]? - public init(minAdjustmentStep: Int32? = nil, policyType: String? = nil, adjustmentType: String? = nil, cooldown: Int32? = nil, minAdjustmentMagnitude: Int32? = nil, policyName: String? = nil, metricAggregationType: String? = nil, scalingAdjustment: Int32? = nil, policyARN: String? = nil, autoScalingGroupName: String? = nil, alarms: [Alarm]? = nil, estimatedInstanceWarmup: Int32? = nil, stepAdjustments: [StepAdjustment]? = nil) { + public init(minAdjustmentStep: Int32? = nil, policyType: String? = nil, adjustmentType: String? = nil, cooldown: Int32? = nil, minAdjustmentMagnitude: Int32? = nil, policyName: String? = nil, targetTrackingConfiguration: TargetTrackingConfiguration? = nil, metricAggregationType: String? = nil, scalingAdjustment: Int32? = nil, policyARN: String? = nil, autoScalingGroupName: String? = nil, alarms: [Alarm]? = nil, estimatedInstanceWarmup: Int32? = nil, stepAdjustments: [StepAdjustment]? = nil) { self.minAdjustmentStep = minAdjustmentStep self.policyType = policyType self.adjustmentType = adjustmentType self.cooldown = cooldown self.minAdjustmentMagnitude = minAdjustmentMagnitude self.policyName = policyName + self.targetTrackingConfiguration = targetTrackingConfiguration self.metricAggregationType = metricAggregationType self.scalingAdjustment = scalingAdjustment self.policyARN = policyARN @@ -226,6 +261,7 @@ extension Autoscaling { case cooldown = "Cooldown" case minAdjustmentMagnitude = "MinAdjustmentMagnitude" case policyName = "PolicyName" + case targetTrackingConfiguration = "TargetTrackingConfiguration" case metricAggregationType = "MetricAggregationType" case scalingAdjustment = "ScalingAdjustment" case policyARN = "PolicyARN" @@ -237,7 +273,7 @@ extension Autoscaling { } public struct DetachLoadBalancersType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerNames", required: true, type: .list), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] @@ -258,7 +294,7 @@ extension Autoscaling { } public struct AdjustmentType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AdjustmentType", required: false, type: .string) ] /// The policy adjustment type. The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity. @@ -274,17 +310,18 @@ extension Autoscaling { } public struct AutoScalingInstanceDetails: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LaunchConfigurationName", required: true, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchConfigurationName", required: false, type: .string), AWSShapeMember(label: "LifecycleState", required: true, type: .string), AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "ProtectedFromScaleIn", required: true, type: .boolean), AWSShapeMember(label: "HealthStatus", required: true, type: .string), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), + AWSShapeMember(label: "LaunchTemplate", required: false, type: .structure), AWSShapeMember(label: "AvailabilityZone", required: true, type: .string) ] /// The launch configuration used to launch the instance. This value is not available if you attached the instance to the Auto Scaling group. - public let launchConfigurationName: String + public let launchConfigurationName: String? /// The lifecycle state for the instance. For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide. public let lifecycleState: String /// The ID of the instance. @@ -293,18 +330,21 @@ extension Autoscaling { public let protectedFromScaleIn: Bool /// The last reported health status of this instance. "Healthy" means that the instance is healthy and should remain in service. "Unhealthy" means that the instance is unhealthy and Auto Scaling should terminate and replace it. public let healthStatus: String - /// The name of the Auto Scaling group associated with the instance. + /// The name of the Auto Scaling group for the instance. public let autoScalingGroupName: String + /// The launch template for the instance. + public let launchTemplate: LaunchTemplateSpecification? /// The Availability Zone for the instance. public let availabilityZone: String - public init(launchConfigurationName: String, lifecycleState: String, instanceId: String, protectedFromScaleIn: Bool, healthStatus: String, autoScalingGroupName: String, availabilityZone: String) { + public init(launchConfigurationName: String? = nil, lifecycleState: String, instanceId: String, protectedFromScaleIn: Bool, healthStatus: String, autoScalingGroupName: String, launchTemplate: LaunchTemplateSpecification? = nil, availabilityZone: String) { self.launchConfigurationName = launchConfigurationName self.lifecycleState = lifecycleState self.instanceId = instanceId self.protectedFromScaleIn = protectedFromScaleIn self.healthStatus = healthStatus self.autoScalingGroupName = autoScalingGroupName + self.launchTemplate = launchTemplate self.availabilityZone = availabilityZone } @@ -315,12 +355,13 @@ extension Autoscaling { case protectedFromScaleIn = "ProtectedFromScaleIn" case healthStatus = "HealthStatus" case autoScalingGroupName = "AutoScalingGroupName" + case launchTemplate = "LaunchTemplate" case availabilityZone = "AvailabilityZone" } } public struct PutScheduledUpdateGroupActionType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "MinSize", required: false, type: .integer), AWSShapeMember(label: "Time", required: false, type: .timestamp), @@ -345,7 +386,7 @@ extension Autoscaling { public let endTime: TimeStamp? /// The name of this scaling action. public let scheduledActionName: String - /// The name or Amazon Resource Name (ARN) of the Auto Scaling group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String /// The recurring schedule for this action, in Unix cron syntax format. For more information, see Cron in Wikipedia. public let recurrence: String? @@ -376,7 +417,7 @@ extension Autoscaling { } public struct AutoScalingGroupNamesType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "AutoScalingGroupNames", required: false, type: .list) @@ -385,7 +426,7 @@ extension Autoscaling { public let maxRecords: Int32? /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? - /// The group names. If you omit this parameter, all Auto Scaling groups are described. + /// The names of the Auto Scaling groups. If you omit this parameter, all Auto Scaling groups are described. public let autoScalingGroupNames: [String]? public init(maxRecords: Int32? = nil, nextToken: String? = nil, autoScalingGroupNames: [String]? = nil) { @@ -402,7 +443,7 @@ extension Autoscaling { } public struct DescribeScheduledActionsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "ScheduledActionNames", required: false, type: .list), @@ -416,7 +457,7 @@ extension Autoscaling { public let startTime: TimeStamp? /// Describes one or more scheduled actions. If you omit this parameter, all scheduled actions are described. If you specify an unknown scheduled action, it is ignored with no error. You can describe up to a maximum of 50 instances with a single call. If there are more items to return, the call returns a token. To get the next set of items, repeat the call with the returned token. public let scheduledActionNames: [String]? - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String? /// The latest scheduled start time to return. If scheduled action names are provided, this parameter is ignored. public let endTime: TimeStamp? @@ -443,7 +484,7 @@ extension Autoscaling { } public struct LoadBalancerState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: false, type: .string), AWSShapeMember(label: "State", required: false, type: .string) ] @@ -464,7 +505,7 @@ extension Autoscaling { } public struct ExecutePolicyType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyName", required: true, type: .string), AWSShapeMember(label: "BreachThreshold", required: false, type: .double), AWSShapeMember(label: "AutoScalingGroupName", required: false, type: .string), @@ -475,7 +516,7 @@ extension Autoscaling { public let policyName: String /// The breach threshold for the alarm. This parameter is required if the policy type is StepScaling and not supported otherwise. public let breachThreshold: Double? - /// The name or Amazon Resource Name (ARN) of the Auto Scaling group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String? /// If this parameter is true, Auto Scaling waits for the cooldown period to complete before executing the policy. Otherwise, Auto Scaling executes the policy without waiting for the cooldown period to complete. This parameter is not supported if the policy type is StepScaling. For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide. public let honorCooldown: Bool? @@ -500,13 +541,13 @@ extension Autoscaling { } public struct DisableMetricsCollectionQuery: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metrics", required: false, type: .list), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] /// One or more of the following metrics. If you omit this parameter, all metrics are disabled. GroupMinSize GroupMaxSize GroupDesiredCapacity GroupInServiceInstances GroupPendingInstances GroupStandbyInstances GroupTerminatingInstances GroupTotalInstances public let metrics: [String]? - /// The name or Amazon Resource Name (ARN) of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String public init(metrics: [String]? = nil, autoScalingGroupName: String) { @@ -521,7 +562,7 @@ extension Autoscaling { } public struct DescribeAutoScalingNotificationTypesAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoScalingNotificationTypes", required: false, type: .list) ] /// The notification types. @@ -537,7 +578,7 @@ extension Autoscaling { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: true, type: .string), AWSShapeMember(label: "PropagateAtLaunch", required: false, type: .boolean), AWSShapeMember(label: "Value", required: false, type: .string), @@ -573,13 +614,13 @@ extension Autoscaling { } public struct AttachLoadBalancersType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerNames", required: true, type: .list), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] /// One or more load balancer names. public let loadBalancerNames: [String] - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String public init(loadBalancerNames: [String], autoScalingGroupName: String) { @@ -594,7 +635,7 @@ extension Autoscaling { } public struct LoadBalancerTargetGroupState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerTargetGroupARN", required: false, type: .string), AWSShapeMember(label: "State", required: false, type: .string) ] @@ -615,7 +656,7 @@ extension Autoscaling { } public struct TagDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "PropagateAtLaunch", required: false, type: .boolean), AWSShapeMember(label: "Value", required: false, type: .string), @@ -651,14 +692,14 @@ extension Autoscaling { } public struct CompleteLifecycleActionType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "LifecycleHookName", required: true, type: .string), AWSShapeMember(label: "LifecycleActionToken", required: false, type: .string), AWSShapeMember(label: "LifecycleActionResult", required: true, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string) ] - /// The name of the group for the lifecycle hook. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String /// The name of the lifecycle hook. public let lifecycleHookName: String @@ -687,7 +728,7 @@ extension Autoscaling { } public struct StepAdjustment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScalingAdjustment", required: true, type: .integer), AWSShapeMember(label: "MetricIntervalUpperBound", required: false, type: .double), AWSShapeMember(label: "MetricIntervalLowerBound", required: false, type: .double) @@ -717,7 +758,7 @@ extension Autoscaling { } public struct Alarm: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AlarmName", required: false, type: .string), AWSShapeMember(label: "AlarmARN", required: false, type: .string) ] @@ -738,52 +779,57 @@ extension Autoscaling { } public struct Instance: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ProtectedFromScaleIn", required: true, type: .boolean), - AWSShapeMember(label: "HealthStatus", required: true, type: .string), - AWSShapeMember(label: "LaunchConfigurationName", required: true, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchConfigurationName", required: false, type: .string), AWSShapeMember(label: "LifecycleState", required: true, type: .enum), AWSShapeMember(label: "InstanceId", required: true, type: .string), + AWSShapeMember(label: "ProtectedFromScaleIn", required: true, type: .boolean), + AWSShapeMember(label: "HealthStatus", required: true, type: .string), + AWSShapeMember(label: "LaunchTemplate", required: false, type: .structure), AWSShapeMember(label: "AvailabilityZone", required: true, type: .string) ] - /// Indicates whether the instance is protected from termination by Auto Scaling when scaling in. - public let protectedFromScaleIn: Bool - /// The last reported health status of the instance. "Healthy" means that the instance is healthy and should remain in service. "Unhealthy" means that the instance is unhealthy and Auto Scaling should terminate and replace it. - public let healthStatus: String /// The launch configuration associated with the instance. - public let launchConfigurationName: String + public let launchConfigurationName: String? /// A description of the current lifecycle state. Note that the Quarantined state is not used. public let lifecycleState: LifecycleState /// The ID of the instance. public let instanceId: String + /// Indicates whether the instance is protected from termination by Auto Scaling when scaling in. + public let protectedFromScaleIn: Bool + /// The last reported health status of the instance. "Healthy" means that the instance is healthy and should remain in service. "Unhealthy" means that the instance is unhealthy and Auto Scaling should terminate and replace it. + public let healthStatus: String + /// The launch template for the instance. + public let launchTemplate: LaunchTemplateSpecification? /// The Availability Zone in which the instance is running. public let availabilityZone: String - public init(protectedFromScaleIn: Bool, healthStatus: String, launchConfigurationName: String, lifecycleState: LifecycleState, instanceId: String, availabilityZone: String) { - self.protectedFromScaleIn = protectedFromScaleIn - self.healthStatus = healthStatus + public init(launchConfigurationName: String? = nil, lifecycleState: LifecycleState, instanceId: String, protectedFromScaleIn: Bool, healthStatus: String, launchTemplate: LaunchTemplateSpecification? = nil, availabilityZone: String) { self.launchConfigurationName = launchConfigurationName self.lifecycleState = lifecycleState self.instanceId = instanceId + self.protectedFromScaleIn = protectedFromScaleIn + self.healthStatus = healthStatus + self.launchTemplate = launchTemplate self.availabilityZone = availabilityZone } private enum CodingKeys: String, CodingKey { - case protectedFromScaleIn = "ProtectedFromScaleIn" - case healthStatus = "HealthStatus" case launchConfigurationName = "LaunchConfigurationName" case lifecycleState = "LifecycleState" case instanceId = "InstanceId" + case protectedFromScaleIn = "ProtectedFromScaleIn" + case healthStatus = "HealthStatus" + case launchTemplate = "LaunchTemplate" case availabilityZone = "AvailabilityZone" } } public struct ScalingProcessQuery: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "ScalingProcesses", required: false, type: .list) ] - /// The name or Amazon Resource Name (ARN) of the Auto Scaling group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String /// One or more of the following processes. If you omit this parameter, all processes are specified. Launch Terminate HealthCheck ReplaceUnhealthy AZRebalance AlarmNotification ScheduledActions AddToLoadBalancer public let scalingProcesses: [String]? @@ -800,7 +846,7 @@ extension Autoscaling { } public struct ExitStandbyQuery: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceIds", required: false, type: .list), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] @@ -821,10 +867,11 @@ extension Autoscaling { } public struct CreateAutoScalingGroupType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "LaunchConfigurationName", required: false, type: .string), AWSShapeMember(label: "NewInstancesProtectedFromScaleIn", required: false, type: .boolean), + AWSShapeMember(label: "LifecycleHookSpecificationList", required: false, type: .list), AWSShapeMember(label: "VPCZoneIdentifier", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "MaxSize", required: true, type: .integer), @@ -836,16 +883,19 @@ extension Autoscaling { AWSShapeMember(label: "DefaultCooldown", required: false, type: .integer), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "HealthCheckGracePeriod", required: false, type: .integer), - AWSShapeMember(label: "TerminationPolicies", required: false, type: .list), + AWSShapeMember(label: "LaunchTemplate", required: false, type: .structure), AWSShapeMember(label: "LoadBalancerNames", required: false, type: .list), - AWSShapeMember(label: "HealthCheckType", required: false, type: .string) + AWSShapeMember(label: "HealthCheckType", required: false, type: .string), + AWSShapeMember(label: "TerminationPolicies", required: false, type: .list) ] /// One or more Availability Zones for the group. This parameter is optional if you specify one or more subnets. public let availabilityZones: [String]? - /// The name of the launch configuration. Alternatively, specify an EC2 instance instead of a launch configuration. + /// The name of the launch configuration. You must specify one of the following: a launch configuration, a launch template, or an EC2 instance. public let launchConfigurationName: String? /// Indicates whether newly launched instances are protected from termination by Auto Scaling when scaling in. public let newInstancesProtectedFromScaleIn: Bool? + /// One or more lifecycle hooks. + public let lifecycleHookSpecificationList: [LifecycleHookSpecification]? /// A comma-separated list of subnet identifiers for your virtual private cloud (VPC). If you specify subnets and Availability Zones with this call, ensure that the subnets' Availability Zones match the Availability Zones specified. For more information, see Launching Auto Scaling Instances in a VPC in the Auto Scaling User Guide. public let vPCZoneIdentifier: String? /// One or more tags. For more information, see Tagging Auto Scaling Groups and Instances in the Auto Scaling User Guide. @@ -860,25 +910,28 @@ extension Autoscaling { public let desiredCapacity: Int32? /// The name of the placement group into which you'll launch your instances, if any. For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide. public let placementGroup: String? - /// The ID of the instance used to create a launch configuration for the group. Alternatively, specify a launch configuration instead of an EC2 instance. When you specify an ID of an instance, Auto Scaling creates a new launch configuration and associates it with the group. This launch configuration derives its attributes from the specified instance, with the exception of the block device mapping. For more information, see Create an Auto Scaling Group Using an EC2 Instance in the Auto Scaling User Guide. + /// The ID of the instance used to create a launch configuration for the group. You must specify one of the following: an EC2 instance, a launch configuration, or a launch template. When you specify an ID of an instance, Auto Scaling creates a new launch configuration and associates it with the group. This launch configuration derives its attributes from the specified instance, with the exception of the block device mapping. For more information, see Create an Auto Scaling Group Using an EC2 Instance in the Auto Scaling User Guide. public let instanceId: String? /// The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default is 300. For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide. public let defaultCooldown: Int32? - /// The name of the group. This name must be unique within the scope of your AWS account. + /// The name of the Auto Scaling group. This name must be unique within the scope of your AWS account. public let autoScalingGroupName: String /// The amount of time, in seconds, that Auto Scaling waits before checking the health status of an EC2 instance that has come into service. During this time, any health check failures for the instance are ignored. The default is 0. This parameter is required if you are adding an ELB health check. For more information, see Health Checks in the Auto Scaling User Guide. public let healthCheckGracePeriod: Int32? - /// One or more termination policies used to select the instance to terminate. These policies are executed in the order that they are listed. For more information, see Controlling Which Instances Auto Scaling Terminates During Scale In in the Auto Scaling User Guide. - public let terminationPolicies: [String]? + /// The launch template to use to launch instances. You must specify one of the following: a launch template, a launch configuration, or an EC2 instance. + public let launchTemplate: LaunchTemplateSpecification? /// One or more Classic Load Balancers. To specify an Application Load Balancer, use TargetGroupARNs instead. For more information, see Using a Load Balancer With an Auto Scaling Group in the Auto Scaling User Guide. public let loadBalancerNames: [String]? /// The service to use for the health checks. The valid values are EC2 and ELB. By default, health checks use Amazon EC2 instance status checks to determine the health of an instance. For more information, see Health Checks in the Auto Scaling User Guide. public let healthCheckType: String? + /// One or more termination policies used to select the instance to terminate. These policies are executed in the order that they are listed. For more information, see Controlling Which Instances Auto Scaling Terminates During Scale In in the Auto Scaling User Guide. + public let terminationPolicies: [String]? - public init(availabilityZones: [String]? = nil, launchConfigurationName: String? = nil, newInstancesProtectedFromScaleIn: Bool? = nil, vPCZoneIdentifier: String? = nil, tags: [Tag]? = nil, maxSize: Int32, targetGroupARNs: [String]? = nil, minSize: Int32, desiredCapacity: Int32? = nil, placementGroup: String? = nil, instanceId: String? = nil, defaultCooldown: Int32? = nil, autoScalingGroupName: String, healthCheckGracePeriod: Int32? = nil, terminationPolicies: [String]? = nil, loadBalancerNames: [String]? = nil, healthCheckType: String? = nil) { + public init(availabilityZones: [String]? = nil, launchConfigurationName: String? = nil, newInstancesProtectedFromScaleIn: Bool? = nil, lifecycleHookSpecificationList: [LifecycleHookSpecification]? = nil, vPCZoneIdentifier: String? = nil, tags: [Tag]? = nil, maxSize: Int32, targetGroupARNs: [String]? = nil, minSize: Int32, desiredCapacity: Int32? = nil, placementGroup: String? = nil, instanceId: String? = nil, defaultCooldown: Int32? = nil, autoScalingGroupName: String, healthCheckGracePeriod: Int32? = nil, launchTemplate: LaunchTemplateSpecification? = nil, loadBalancerNames: [String]? = nil, healthCheckType: String? = nil, terminationPolicies: [String]? = nil) { self.availabilityZones = availabilityZones self.launchConfigurationName = launchConfigurationName self.newInstancesProtectedFromScaleIn = newInstancesProtectedFromScaleIn + self.lifecycleHookSpecificationList = lifecycleHookSpecificationList self.vPCZoneIdentifier = vPCZoneIdentifier self.tags = tags self.maxSize = maxSize @@ -890,15 +943,17 @@ extension Autoscaling { self.defaultCooldown = defaultCooldown self.autoScalingGroupName = autoScalingGroupName self.healthCheckGracePeriod = healthCheckGracePeriod - self.terminationPolicies = terminationPolicies + self.launchTemplate = launchTemplate self.loadBalancerNames = loadBalancerNames self.healthCheckType = healthCheckType + self.terminationPolicies = terminationPolicies } private enum CodingKeys: String, CodingKey { case availabilityZones = "AvailabilityZones" case launchConfigurationName = "LaunchConfigurationName" case newInstancesProtectedFromScaleIn = "NewInstancesProtectedFromScaleIn" + case lifecycleHookSpecificationList = "LifecycleHookSpecificationList" case vPCZoneIdentifier = "VPCZoneIdentifier" case tags = "Tags" case maxSize = "MaxSize" @@ -910,14 +965,15 @@ extension Autoscaling { case defaultCooldown = "DefaultCooldown" case autoScalingGroupName = "AutoScalingGroupName" case healthCheckGracePeriod = "HealthCheckGracePeriod" - case terminationPolicies = "TerminationPolicies" + case launchTemplate = "LaunchTemplate" case loadBalancerNames = "LoadBalancerNames" case healthCheckType = "HealthCheckType" + case terminationPolicies = "TerminationPolicies" } } public struct TagsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list) ] @@ -938,7 +994,7 @@ extension Autoscaling { } public struct PutNotificationConfigurationType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NotificationTypes", required: true, type: .list), AWSShapeMember(label: "TopicARN", required: true, type: .string), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) @@ -963,8 +1019,29 @@ extension Autoscaling { } } + public struct MetricDimension: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The value of the dimension. + public let value: String + /// The name of the dimension. + public let name: String + + public init(value: String, name: String) { + self.value = value + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case name = "Name" + } + } + public struct EnabledMetric: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Granularity", required: false, type: .string), AWSShapeMember(label: "Metric", required: false, type: .string) ] @@ -985,7 +1062,7 @@ extension Autoscaling { } public struct MetricGranularityType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Granularity", required: false, type: .string) ] /// The granularity. The only valid value is 1Minute. @@ -1001,7 +1078,7 @@ extension Autoscaling { } public struct ScheduledUpdateGroupAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "ScheduledActionARN", required: false, type: .string), AWSShapeMember(label: "Time", required: false, type: .timestamp), @@ -1029,7 +1106,7 @@ extension Autoscaling { public let endTime: TimeStamp? /// The name of the scheduled action. public let scheduledActionName: String? - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String? /// The recurring schedule for the action. public let recurrence: String? @@ -1062,7 +1139,7 @@ extension Autoscaling { } public struct DeletePolicyType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoScalingGroupName", required: false, type: .string), AWSShapeMember(label: "PolicyName", required: true, type: .string) ] @@ -1083,7 +1160,7 @@ extension Autoscaling { } public struct ProcessesType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Processes", required: false, type: .list) ] /// The names of the process types. @@ -1099,13 +1176,13 @@ extension Autoscaling { } public struct AttachInstancesQuery: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceIds", required: false, type: .list), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] /// One or more instance IDs. public let instanceIds: [String]? - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String public init(instanceIds: [String]? = nil, autoScalingGroupName: String) { @@ -1120,7 +1197,7 @@ extension Autoscaling { } public struct AutoScalingGroupsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "AutoScalingGroups", required: true, type: .list) ] @@ -1141,7 +1218,7 @@ extension Autoscaling { } public struct AutoScalingGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: true, type: .list), AWSShapeMember(label: "EnabledMetrics", required: false, type: .list), AWSShapeMember(label: "LaunchConfigurationName", required: false, type: .string), @@ -1160,10 +1237,11 @@ extension Autoscaling { AWSShapeMember(label: "DefaultCooldown", required: true, type: .integer), AWSShapeMember(label: "Instances", required: false, type: .list), AWSShapeMember(label: "TerminationPolicies", required: false, type: .list), + AWSShapeMember(label: "LaunchTemplate", required: false, type: .structure), AWSShapeMember(label: "HealthCheckGracePeriod", required: false, type: .integer), - AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "LoadBalancerNames", required: false, type: .list), - AWSShapeMember(label: "HealthCheckType", required: true, type: .string) + AWSShapeMember(label: "HealthCheckType", required: true, type: .string), + AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] /// One or more Availability Zones for the group. public let availabilityZones: [String] @@ -1191,7 +1269,7 @@ extension Autoscaling { public let minSize: Int32 /// The desired size of the group. public let desiredCapacity: Int32 - /// The Amazon Resource Name (ARN) of the group. + /// The Amazon Resource Name (ARN) of the Auto Scaling group. public let autoScalingGroupARN: String? /// The name of the placement group into which you'll launch your instances, if any. For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide. public let placementGroup: String? @@ -1201,16 +1279,18 @@ extension Autoscaling { public let instances: [Instance]? /// The termination policies for the group. public let terminationPolicies: [String]? + /// The launch template for the group. + public let launchTemplate: LaunchTemplateSpecification? /// The amount of time, in seconds, that Auto Scaling waits before checking the health status of an EC2 instance that has come into service. public let healthCheckGracePeriod: Int32? - /// The name of the group. - public let autoScalingGroupName: String /// One or more load balancers associated with the group. public let loadBalancerNames: [String]? /// The service to use for the health checks. The valid values are EC2 and ELB. public let healthCheckType: String + /// The name of the Auto Scaling group. + public let autoScalingGroupName: String - public init(availabilityZones: [String], enabledMetrics: [EnabledMetric]? = nil, launchConfigurationName: String? = nil, newInstancesProtectedFromScaleIn: Bool? = nil, vPCZoneIdentifier: String? = nil, tags: [TagDescription]? = nil, maxSize: Int32, suspendedProcesses: [SuspendedProcess]? = nil, targetGroupARNs: [String]? = nil, createdTime: TimeStamp, status: String? = nil, minSize: Int32, desiredCapacity: Int32, autoScalingGroupARN: String? = nil, placementGroup: String? = nil, defaultCooldown: Int32, instances: [Instance]? = nil, terminationPolicies: [String]? = nil, healthCheckGracePeriod: Int32? = nil, autoScalingGroupName: String, loadBalancerNames: [String]? = nil, healthCheckType: String) { + public init(availabilityZones: [String], enabledMetrics: [EnabledMetric]? = nil, launchConfigurationName: String? = nil, newInstancesProtectedFromScaleIn: Bool? = nil, vPCZoneIdentifier: String? = nil, tags: [TagDescription]? = nil, maxSize: Int32, suspendedProcesses: [SuspendedProcess]? = nil, targetGroupARNs: [String]? = nil, createdTime: TimeStamp, status: String? = nil, minSize: Int32, desiredCapacity: Int32, autoScalingGroupARN: String? = nil, placementGroup: String? = nil, defaultCooldown: Int32, instances: [Instance]? = nil, terminationPolicies: [String]? = nil, launchTemplate: LaunchTemplateSpecification? = nil, healthCheckGracePeriod: Int32? = nil, loadBalancerNames: [String]? = nil, healthCheckType: String, autoScalingGroupName: String) { self.availabilityZones = availabilityZones self.enabledMetrics = enabledMetrics self.launchConfigurationName = launchConfigurationName @@ -1229,10 +1309,11 @@ extension Autoscaling { self.defaultCooldown = defaultCooldown self.instances = instances self.terminationPolicies = terminationPolicies + self.launchTemplate = launchTemplate self.healthCheckGracePeriod = healthCheckGracePeriod - self.autoScalingGroupName = autoScalingGroupName self.loadBalancerNames = loadBalancerNames self.healthCheckType = healthCheckType + self.autoScalingGroupName = autoScalingGroupName } private enum CodingKeys: String, CodingKey { @@ -1254,15 +1335,52 @@ extension Autoscaling { case defaultCooldown = "DefaultCooldown" case instances = "Instances" case terminationPolicies = "TerminationPolicies" + case launchTemplate = "LaunchTemplate" case healthCheckGracePeriod = "HealthCheckGracePeriod" - case autoScalingGroupName = "AutoScalingGroupName" case loadBalancerNames = "LoadBalancerNames" case healthCheckType = "HealthCheckType" + case autoScalingGroupName = "AutoScalingGroupName" + } + } + + public struct CustomizedMetricSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetricName", required: true, type: .string), + AWSShapeMember(label: "Namespace", required: true, type: .string), + AWSShapeMember(label: "Unit", required: false, type: .string), + AWSShapeMember(label: "Dimensions", required: false, type: .list), + AWSShapeMember(label: "Statistic", required: true, type: .enum) + ] + /// The name of the metric. + public let metricName: String + /// The namespace of the metric. + public let namespace: String + /// The unit of the metric. + public let unit: String? + /// The dimensions of the metric. + public let dimensions: [MetricDimension]? + /// The statistic of the metric. + public let statistic: MetricStatistic + + public init(metricName: String, namespace: String, unit: String? = nil, dimensions: [MetricDimension]? = nil, statistic: MetricStatistic) { + self.metricName = metricName + self.namespace = namespace + self.unit = unit + self.dimensions = dimensions + self.statistic = statistic + } + + private enum CodingKeys: String, CodingKey { + case metricName = "MetricName" + case namespace = "Namespace" + case unit = "Unit" + case dimensions = "Dimensions" + case statistic = "Statistic" } } public struct DescribeLifecycleHookTypesAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LifecycleHookTypes", required: false, type: .list) ] /// The lifecycle hook types. @@ -1278,7 +1396,7 @@ extension Autoscaling { } public struct DescribeNotificationConfigurationsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "AutoScalingGroupNames", required: false, type: .list) @@ -1287,7 +1405,7 @@ extension Autoscaling { public let maxRecords: Int32? /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupNames: [String]? public init(maxRecords: Int32? = nil, nextToken: String? = nil, autoScalingGroupNames: [String]? = nil) { @@ -1304,7 +1422,7 @@ extension Autoscaling { } public struct Ebs: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .string), AWSShapeMember(label: "DeleteOnTermination", required: false, type: .boolean), AWSShapeMember(label: "VolumeType", required: false, type: .string), @@ -1345,7 +1463,7 @@ extension Autoscaling { } public struct DescribeLoadBalancerTargetGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) @@ -1387,7 +1505,7 @@ extension Autoscaling { } public struct DescribeScalingActivitiesType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "AutoScalingGroupName", required: false, type: .string), AWSShapeMember(label: "ActivityIds", required: false, type: .list), @@ -1395,7 +1513,7 @@ extension Autoscaling { ] /// The maximum number of items to return with this call. The default value is 100. public let maxRecords: Int32? - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String? /// The activity IDs of the desired scaling activities. If you omit this parameter, all activities for the past six weeks are described. If you specify an Auto Scaling group, the results are limited to that group. The list of requested activities cannot contain more than 50 items. If unknown activities are requested, they are ignored with no error. public let activityIds: [String]? @@ -1418,14 +1536,14 @@ extension Autoscaling { } public struct DetachInstancesQuery: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShouldDecrementDesiredCapacity", required: true, type: .boolean), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "InstanceIds", required: false, type: .list) ] /// If True, the Auto Scaling group decrements the desired capacity value by the number of instances detached. public let shouldDecrementDesiredCapacity: Bool - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String /// One or more instance IDs. public let instanceIds: [String]? @@ -1444,7 +1562,7 @@ extension Autoscaling { } public struct DescribePoliciesType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "AutoScalingGroupName", required: false, type: .string), AWSShapeMember(label: "PolicyTypes", required: false, type: .list), @@ -1453,11 +1571,11 @@ extension Autoscaling { ] /// The maximum number of items to be returned with each call. The default value is 50 and the maximum value is 100. public let maxRecords: Int32? - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String? /// One or more policy types. Valid values are SimpleScaling and StepScaling. public let policyTypes: [String]? - /// One or more policy names or policy ARNs to be described. If you omit this parameter, all policy names are described. If an group name is provided, the results are limited to that group. This list is limited to 50 items. If you specify an unknown policy name, it is ignored with no error. + /// The names of one or more policies. If you omit this parameter, all policies are described. If an group name is provided, the results are limited to that group. This list is limited to 50 items. If you specify an unknown policy name, it is ignored with no error. public let policyNames: [String]? /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? @@ -1480,7 +1598,7 @@ extension Autoscaling { } public struct DeleteNotificationConfigurationType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicARN", required: true, type: .string), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] @@ -1501,7 +1619,7 @@ extension Autoscaling { } public struct PoliciesType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ScalingPolicies", required: false, type: .list) ] @@ -1526,7 +1644,7 @@ extension Autoscaling { } public struct LaunchConfigurationNameType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LaunchConfigurationName", required: true, type: .string) ] /// The name of the launch configuration. @@ -1541,8 +1659,54 @@ extension Autoscaling { } } + public struct LifecycleHookSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NotificationTargetARN", required: false, type: .string), + AWSShapeMember(label: "NotificationMetadata", required: false, type: .string), + AWSShapeMember(label: "DefaultResult", required: false, type: .string), + AWSShapeMember(label: "RoleARN", required: false, type: .string), + AWSShapeMember(label: "HeartbeatTimeout", required: false, type: .integer), + AWSShapeMember(label: "LifecycleTransition", required: true, type: .string), + AWSShapeMember(label: "LifecycleHookName", required: true, type: .string) + ] + /// The ARN of the target that Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic. + public let notificationTargetARN: String? + /// Additional information that you want to include any time Auto Scaling sends a message to the notification target. + public let notificationMetadata: String? + /// Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The valid values are CONTINUE and ABANDON. + public let defaultResult: String? + /// The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. + public let roleARN: String? + /// The maximum time, in seconds, that can elapse before the lifecycle hook times out. If the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat. + public let heartbeatTimeout: Int32? + /// The state of the EC2 instance to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see DescribeLifecycleHookTypes. + public let lifecycleTransition: String + /// The name of the lifecycle hook. + public let lifecycleHookName: String + + public init(notificationTargetARN: String? = nil, notificationMetadata: String? = nil, defaultResult: String? = nil, roleARN: String? = nil, heartbeatTimeout: Int32? = nil, lifecycleTransition: String, lifecycleHookName: String) { + self.notificationTargetARN = notificationTargetARN + self.notificationMetadata = notificationMetadata + self.defaultResult = defaultResult + self.roleARN = roleARN + self.heartbeatTimeout = heartbeatTimeout + self.lifecycleTransition = lifecycleTransition + self.lifecycleHookName = lifecycleHookName + } + + private enum CodingKeys: String, CodingKey { + case notificationTargetARN = "NotificationTargetARN" + case notificationMetadata = "NotificationMetadata" + case defaultResult = "DefaultResult" + case roleARN = "RoleARN" + case heartbeatTimeout = "HeartbeatTimeout" + case lifecycleTransition = "LifecycleTransition" + case lifecycleHookName = "LifecycleHookName" + } + } + public struct DescribeAccountLimitsAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxNumberOfLaunchConfigurations", required: false, type: .integer), AWSShapeMember(label: "NumberOfLaunchConfigurations", required: false, type: .integer), AWSShapeMember(label: "NumberOfAutoScalingGroups", required: false, type: .integer), @@ -1577,23 +1741,28 @@ extension Autoscaling { } public struct PolicyARNType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Alarms", required: false, type: .list), AWSShapeMember(label: "PolicyARN", required: false, type: .string) ] + /// The CloudWatch alarms created for the target tracking policy. + public let alarms: [Alarm]? /// The Amazon Resource Name (ARN) of the policy. public let policyARN: String? - public init(policyARN: String? = nil) { + public init(alarms: [Alarm]? = nil, policyARN: String? = nil) { + self.alarms = alarms self.policyARN = policyARN } private enum CodingKeys: String, CodingKey { + case alarms = "Alarms" case policyARN = "PolicyARN" } } public struct SuspendedProcess: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProcessName", required: false, type: .string), AWSShapeMember(label: "SuspensionReason", required: false, type: .string) ] @@ -1614,7 +1783,7 @@ extension Autoscaling { } public struct CreateLaunchConfigurationType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", required: false, type: .list), AWSShapeMember(label: "LaunchConfigurationName", required: true, type: .string), AWSShapeMember(label: "UserData", required: false, type: .string), @@ -1715,7 +1884,7 @@ extension Autoscaling { } public struct DescribeLifecycleHooksAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LifecycleHooks", required: false, type: .list) ] /// The lifecycle hooks for the specified group. @@ -1731,7 +1900,7 @@ extension Autoscaling { } public struct DescribeAutoScalingInstancesType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "InstanceIds", required: false, type: .list) @@ -1757,7 +1926,7 @@ extension Autoscaling { } public struct AutoScalingInstancesType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoScalingInstances", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1778,14 +1947,14 @@ extension Autoscaling { } public struct NotificationConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicARN", required: false, type: .string), AWSShapeMember(label: "AutoScalingGroupName", required: false, type: .string), AWSShapeMember(label: "NotificationType", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic. public let topicARN: String? - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String? /// One of the following event notification types: autoscaling:EC2_INSTANCE_LAUNCH autoscaling:EC2_INSTANCE_LAUNCH_ERROR autoscaling:EC2_INSTANCE_TERMINATE autoscaling:EC2_INSTANCE_TERMINATE_ERROR autoscaling:TEST_NOTIFICATION public let notificationType: String? @@ -1804,7 +1973,7 @@ extension Autoscaling { } public struct DescribeMetricCollectionTypesAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Granularities", required: false, type: .list), AWSShapeMember(label: "Metrics", required: false, type: .list) ] @@ -1825,7 +1994,7 @@ extension Autoscaling { } public struct DetachInstancesAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Activities", required: false, type: .list) ] /// The activities related to detaching the instances from the Auto Scaling group. @@ -1849,7 +2018,7 @@ extension Autoscaling { } public struct InstanceMonitoring: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Enabled", required: false, type: .boolean) ] /// If true, detailed monitoring is enabled. Otherwise, basic monitoring is enabled. @@ -1865,7 +2034,7 @@ extension Autoscaling { } public struct ExitStandbyAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Activities", required: false, type: .list) ] /// The activities related to moving instances out of Standby mode. @@ -1881,7 +2050,7 @@ extension Autoscaling { } public struct TerminateInstanceInAutoScalingGroupType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShouldDecrementDesiredCapacity", required: true, type: .boolean), AWSShapeMember(label: "InstanceId", required: true, type: .string) ] @@ -1902,7 +2071,7 @@ extension Autoscaling { } public struct SetDesiredCapacityType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DesiredCapacity", required: true, type: .integer), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "HonorCooldown", required: false, type: .boolean) @@ -1928,7 +2097,7 @@ extension Autoscaling { } public struct DescribeTerminationPolicyTypesAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TerminationPolicyTypes", required: false, type: .list) ] /// The termination policies supported by Auto Scaling (OldestInstance, OldestLaunchConfiguration, NewestInstance, ClosestToNextInstanceHour, and Default). @@ -1948,7 +2117,7 @@ extension Autoscaling { } public struct Activity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: true, type: .timestamp), AWSShapeMember(label: "Details", required: false, type: .string), AWSShapeMember(label: "Progress", required: false, type: .integer), @@ -2009,7 +2178,7 @@ extension Autoscaling { } public struct SetInstanceHealthQuery: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "HealthStatus", required: true, type: .string), AWSShapeMember(label: "ShouldRespectGracePeriod", required: false, type: .boolean) @@ -2035,7 +2204,7 @@ extension Autoscaling { } public struct DescribeAdjustmentTypesAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AdjustmentTypes", required: false, type: .list) ] /// The policy adjustment types. @@ -2051,7 +2220,7 @@ extension Autoscaling { } public struct ScheduledActionsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ScheduledUpdateGroupActions", required: false, type: .list) ] @@ -2072,7 +2241,7 @@ extension Autoscaling { } public struct ActivitiesType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Activities", required: true, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2093,7 +2262,7 @@ extension Autoscaling { } public struct EnterStandbyAnswer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Activities", required: false, type: .list) ] /// The activities related to moving instances into Standby mode. @@ -2109,7 +2278,7 @@ extension Autoscaling { } public struct MetricCollectionType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metric", required: false, type: .string) ] /// One of the following metrics: GroupMinSize GroupMaxSize GroupDesiredCapacity GroupInServiceInstances GroupPendingInstances GroupStandbyInstances GroupTerminatingInstances GroupTotalInstances @@ -2125,7 +2294,7 @@ extension Autoscaling { } public struct UpdateAutoScalingGroupType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "LaunchConfigurationName", required: false, type: .string), AWSShapeMember(label: "NewInstancesProtectedFromScaleIn", required: false, type: .boolean), @@ -2137,12 +2306,13 @@ extension Autoscaling { AWSShapeMember(label: "DefaultCooldown", required: false, type: .integer), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "HealthCheckGracePeriod", required: false, type: .integer), + AWSShapeMember(label: "LaunchTemplate", required: false, type: .structure), AWSShapeMember(label: "TerminationPolicies", required: false, type: .list), AWSShapeMember(label: "HealthCheckType", required: false, type: .string) ] /// One or more Availability Zones for the group. public let availabilityZones: [String]? - /// The name of the launch configuration. + /// The name of the launch configuration. You must specify either a launch configuration or a launch template. public let launchConfigurationName: String? /// Indicates whether newly launched instances are protected from termination by Auto Scaling when scaling in. public let newInstancesProtectedFromScaleIn: Bool? @@ -2162,12 +2332,14 @@ extension Autoscaling { public let autoScalingGroupName: String /// The amount of time, in seconds, that Auto Scaling waits before checking the health status of an EC2 instance that has come into service. The default is 0. For more information, see Health Checks in the Auto Scaling User Guide. public let healthCheckGracePeriod: Int32? + /// The launch template to use to specify the updates. You must specify a launch configuration or a launch template. + public let launchTemplate: LaunchTemplateSpecification? /// A standalone termination policy or a list of termination policies used to select the instance to terminate. The policies are executed in the order that they are listed. For more information, see Controlling Which Instances Auto Scaling Terminates During Scale In in the Auto Scaling User Guide. public let terminationPolicies: [String]? /// The service to use for the health checks. The valid values are EC2 and ELB. public let healthCheckType: String? - public init(availabilityZones: [String]? = nil, launchConfigurationName: String? = nil, newInstancesProtectedFromScaleIn: Bool? = nil, vPCZoneIdentifier: String? = nil, maxSize: Int32? = nil, minSize: Int32? = nil, desiredCapacity: Int32? = nil, placementGroup: String? = nil, defaultCooldown: Int32? = nil, autoScalingGroupName: String, healthCheckGracePeriod: Int32? = nil, terminationPolicies: [String]? = nil, healthCheckType: String? = nil) { + public init(availabilityZones: [String]? = nil, launchConfigurationName: String? = nil, newInstancesProtectedFromScaleIn: Bool? = nil, vPCZoneIdentifier: String? = nil, maxSize: Int32? = nil, minSize: Int32? = nil, desiredCapacity: Int32? = nil, placementGroup: String? = nil, defaultCooldown: Int32? = nil, autoScalingGroupName: String, healthCheckGracePeriod: Int32? = nil, launchTemplate: LaunchTemplateSpecification? = nil, terminationPolicies: [String]? = nil, healthCheckType: String? = nil) { self.availabilityZones = availabilityZones self.launchConfigurationName = launchConfigurationName self.newInstancesProtectedFromScaleIn = newInstancesProtectedFromScaleIn @@ -2179,6 +2351,7 @@ extension Autoscaling { self.defaultCooldown = defaultCooldown self.autoScalingGroupName = autoScalingGroupName self.healthCheckGracePeriod = healthCheckGracePeriod + self.launchTemplate = launchTemplate self.terminationPolicies = terminationPolicies self.healthCheckType = healthCheckType } @@ -2195,19 +2368,20 @@ extension Autoscaling { case defaultCooldown = "DefaultCooldown" case autoScalingGroupName = "AutoScalingGroupName" case healthCheckGracePeriod = "HealthCheckGracePeriod" + case launchTemplate = "LaunchTemplate" case terminationPolicies = "TerminationPolicies" case healthCheckType = "HealthCheckType" } } public struct DeleteLifecycleHookType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LifecycleHookName", required: true, type: .string), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] /// The name of the lifecycle hook. public let lifecycleHookName: String - /// The name of the Auto Scaling group for the lifecycle hook. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String public init(lifecycleHookName: String, autoScalingGroupName: String) { @@ -2222,7 +2396,7 @@ extension Autoscaling { } public struct DescribeLoadBalancersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "LoadBalancers", required: false, type: .list) ] @@ -2243,7 +2417,7 @@ extension Autoscaling { } public struct DeleteTagsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .list) ] /// One or more tags. @@ -2259,7 +2433,7 @@ extension Autoscaling { } public struct DescribeLoadBalancerTargetGroupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerTargetGroups", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2284,7 +2458,7 @@ extension Autoscaling { } public struct EnterStandbyQuery: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShouldDecrementDesiredCapacity", required: true, type: .boolean), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "InstanceIds", required: false, type: .list) @@ -2310,7 +2484,7 @@ extension Autoscaling { } public struct DetachLoadBalancerTargetGroupsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetGroupARNs", required: true, type: .list), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] @@ -2330,8 +2504,16 @@ extension Autoscaling { } } + public enum MetricType: String, CustomStringConvertible, Codable { + case asgaveragecpuutilization = "ASGAverageCPUUtilization" + case asgaveragenetworkin = "ASGAverageNetworkIn" + case asgaveragenetworkout = "ASGAverageNetworkOut" + case albrequestcountpertarget = "ALBRequestCountPerTarget" + public var description: String { return self.rawValue } + } + public struct AttachLoadBalancerTargetGroupsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetGroupARNs", required: true, type: .list), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] @@ -2352,7 +2534,7 @@ extension Autoscaling { } public struct DeleteScheduledActionType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScheduledActionName", required: true, type: .string), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] @@ -2372,6 +2554,15 @@ extension Autoscaling { } } + public enum MetricStatistic: String, CustomStringConvertible, Codable { + case average = "Average" + case minimum = "Minimum" + case maximum = "Maximum" + case samplecount = "SampleCount" + case sum = "Sum" + public var description: String { return self.rawValue } + } + public enum LifecycleState: String, CustomStringConvertible, Codable { case pending = "Pending" case pendingWait = "Pending:Wait" @@ -2390,7 +2581,7 @@ extension Autoscaling { } public struct LifecycleHook: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NotificationTargetARN", required: false, type: .string), AWSShapeMember(label: "NotificationMetadata", required: false, type: .string), AWSShapeMember(label: "DefaultResult", required: false, type: .string), @@ -2401,7 +2592,7 @@ extension Autoscaling { AWSShapeMember(label: "LifecycleHookName", required: false, type: .string), AWSShapeMember(label: "GlobalTimeout", required: false, type: .integer) ] - /// The ARN of the notification target that Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic. The notification message sent to the target includes the following: Lifecycle action token User account ID Name of the Auto Scaling group Lifecycle hook name EC2 instance ID Lifecycle transition Notification metadata + /// The ARN of the target that Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic. public let notificationTargetARN: String? /// Additional information that you want to include any time Auto Scaling sends a message to the notification target. public let notificationMetadata: String? @@ -2409,7 +2600,7 @@ extension Autoscaling { public let defaultResult: String? /// The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. public let roleARN: String? - /// The maximum time, in seconds, that can elapse before the lifecycle hook times out. The default is 3600 seconds (1 hour). When the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat. + /// The maximum time, in seconds, that can elapse before the lifecycle hook times out. If the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat. public let heartbeatTimeout: Int32? /// The name of the Auto Scaling group for the lifecycle hook. public let autoScalingGroupName: String? @@ -2446,14 +2637,14 @@ extension Autoscaling { } public struct EnableMetricsCollectionQuery: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Granularity", required: true, type: .string), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "Metrics", required: false, type: .list) ] /// The granularity to associate with the metrics to collect. The only valid value is 1Minute. public let granularity: String - /// The name or ARN of the Auto Scaling group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String /// One or more of the following metrics. If you omit this parameter, all metrics are enabled. GroupMinSize GroupMaxSize GroupDesiredCapacity GroupInServiceInstances GroupPendingInstances GroupStandbyInstances GroupTerminatingInstances GroupTotalInstances public let metrics: [String]? @@ -2472,7 +2663,7 @@ extension Autoscaling { } public struct LaunchConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LaunchConfigurationARN", required: false, type: .string), AWSShapeMember(label: "LaunchConfigurationName", required: true, type: .string), AWSShapeMember(label: "UserData", required: false, type: .string), @@ -2578,7 +2769,7 @@ extension Autoscaling { } public struct DescribeTagsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Filters", required: false, type: .list) @@ -2603,8 +2794,29 @@ extension Autoscaling { } } + public struct PredefinedMetricSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PredefinedMetricType", required: true, type: .enum), + AWSShapeMember(label: "ResourceLabel", required: false, type: .string) + ] + /// The metric type. + public let predefinedMetricType: MetricType + /// Identifies the resource associated with the metric type. The following predefined metrics are available: ASGAverageCPUUtilization - average CPU utilization of the Auto Scaling group ASGAverageNetworkIn - average number of bytes received on all network interfaces by the Auto Scaling group ASGAverageNetworkOut - average number of bytes sent out on all network interfaces by the Auto Scaling group ALBRequestCountPerTarget - number of requests completed per target in an Application Load Balancer target group For predefined metric types ASGAverageCPUUtilization, ASGAverageNetworkIn, and ASGAverageNetworkOut, the parameter must not be specified as the resource associated with the metric type is the Auto Scaling group. For predefined metric type ALBRequestCountPerTarget, the parameter must be specified in the format: app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id , where app/load-balancer-name/load-balancer-id is the final portion of the load balancer ARN, and targetgroup/target-group-name/target-group-id is the final portion of the target group ARN. The target group must be attached to the Auto Scaling group. + public let resourceLabel: String? + + public init(predefinedMetricType: MetricType, resourceLabel: String? = nil) { + self.predefinedMetricType = predefinedMetricType + self.resourceLabel = resourceLabel + } + + private enum CodingKeys: String, CodingKey { + case predefinedMetricType = "PredefinedMetricType" + case resourceLabel = "ResourceLabel" + } + } + public struct BlockDeviceMapping: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NoDevice", required: false, type: .boolean), AWSShapeMember(label: "VirtualName", required: false, type: .string), AWSShapeMember(label: "DeviceName", required: true, type: .string), @@ -2635,13 +2847,13 @@ extension Autoscaling { } public struct DeleteAutoScalingGroupType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ForceDelete", required: false, type: .boolean), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] /// Specifies that the group will be deleted along with all instances associated with the group, without waiting for all instances to be terminated. This parameter also deletes any lifecycle actions associated with the group. public let forceDelete: Bool? - /// The name of the group to delete. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String public init(forceDelete: Bool? = nil, autoScalingGroupName: String) { @@ -2655,14 +2867,40 @@ extension Autoscaling { } } + public struct LaunchTemplateSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateName", required: false, type: .string), + AWSShapeMember(label: "LaunchTemplateId", required: false, type: .string), + AWSShapeMember(label: "Version", required: false, type: .string) + ] + /// The name of the launch template. You must specify either a template name or a template ID. + public let launchTemplateName: String? + /// The ID of the launch template. You must specify either a template ID or a template name. + public let launchTemplateId: String? + /// The version number. By default, the default version of the launch template is used. + public let version: String? + + public init(launchTemplateName: String? = nil, launchTemplateId: String? = nil, version: String? = nil) { + self.launchTemplateName = launchTemplateName + self.launchTemplateId = launchTemplateId + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateName = "LaunchTemplateName" + case launchTemplateId = "LaunchTemplateId" + case version = "Version" + } + } + public struct RecordLifecycleActionHeartbeatType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "LifecycleHookName", required: true, type: .string), AWSShapeMember(label: "LifecycleActionToken", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string) ] - /// The name of the Auto Scaling group for the hook. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String /// The name of the lifecycle hook. public let lifecycleHookName: String @@ -2687,7 +2925,7 @@ extension Autoscaling { } public struct DescribeLoadBalancersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) @@ -2696,7 +2934,7 @@ extension Autoscaling { public let maxRecords: Int32? /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String public init(maxRecords: Int32? = nil, nextToken: String? = nil, autoScalingGroupName: String) { @@ -2713,80 +2951,85 @@ extension Autoscaling { } public struct PutScalingPolicyType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MinAdjustmentStep", required: false, type: .integer), AWSShapeMember(label: "MetricAggregationType", required: false, type: .string), - AWSShapeMember(label: "StepAdjustments", required: false, type: .list), + AWSShapeMember(label: "TargetTrackingConfiguration", required: false, type: .structure), + AWSShapeMember(label: "PolicyName", required: true, type: .string), AWSShapeMember(label: "PolicyType", required: false, type: .string), - AWSShapeMember(label: "AdjustmentType", required: true, type: .string), + AWSShapeMember(label: "AdjustmentType", required: false, type: .string), AWSShapeMember(label: "ScalingAdjustment", required: false, type: .integer), AWSShapeMember(label: "Cooldown", required: false, type: .integer), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), - AWSShapeMember(label: "MinAdjustmentMagnitude", required: false, type: .integer), AWSShapeMember(label: "EstimatedInstanceWarmup", required: false, type: .integer), - AWSShapeMember(label: "PolicyName", required: true, type: .string) + AWSShapeMember(label: "MinAdjustmentMagnitude", required: false, type: .integer), + AWSShapeMember(label: "StepAdjustments", required: false, type: .list) ] /// Available for backward compatibility. Use MinAdjustmentMagnitude instead. public let minAdjustmentStep: Int32? - /// The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average. This parameter is not supported if the policy type is SimpleScaling. + /// The aggregation type for the CloudWatch metrics. The valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average. This parameter is supported if the policy type is StepScaling. public let metricAggregationType: String? - /// A set of adjustments that enable you to scale based on the size of the alarm breach. This parameter is required if the policy type is StepScaling and not supported otherwise. - public let stepAdjustments: [StepAdjustment]? - /// The policy type. Valid values are SimpleScaling and StepScaling. If the policy type is null, the value is treated as SimpleScaling. + /// A target tracking policy. This parameter is required if the policy type is TargetTrackingScaling and not supported otherwise. + public let targetTrackingConfiguration: TargetTrackingConfiguration? + /// The name of the policy. + public let policyName: String + /// The policy type. The valid values are SimpleScaling, StepScaling, and TargetTrackingScaling. If the policy type is null, the value is treated as SimpleScaling. public let policyType: String? - /// The adjustment type. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity. For more information, see Dynamic Scaling in the Auto Scaling User Guide. - public let adjustmentType: String + /// The adjustment type. The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity. This parameter is supported if the policy type is SimpleScaling or StepScaling. For more information, see Dynamic Scaling in the Auto Scaling User Guide. + public let adjustmentType: String? /// The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. This parameter is required if the policy type is SimpleScaling and not supported otherwise. public let scalingAdjustment: Int32? - /// The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies. This parameter is not supported unless the policy type is SimpleScaling. For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide. + /// The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies. This parameter is supported if the policy type is SimpleScaling. For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide. public let cooldown: Int32? - /// The name or ARN of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String - /// The minimum number of instances to scale. If the value of AdjustmentType is PercentChangeInCapacity, the scaling policy changes the DesiredCapacity of the Auto Scaling group by at least this many instances. Otherwise, the error is ValidationError. - public let minAdjustmentMagnitude: Int32? - /// The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. The default is to use the value specified for the default cooldown period for the group. This parameter is not supported if the policy type is SimpleScaling. + /// The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. The default is to use the value specified for the default cooldown period for the group. This parameter is supported if the policy type is StepScaling or TargetTrackingScaling. public let estimatedInstanceWarmup: Int32? - /// The name of the policy. - public let policyName: String + /// The minimum number of instances to scale. If the value of AdjustmentType is PercentChangeInCapacity, the scaling policy changes the DesiredCapacity of the Auto Scaling group by at least this many instances. Otherwise, the error is ValidationError. This parameter is supported if the policy type is SimpleScaling or StepScaling. + public let minAdjustmentMagnitude: Int32? + /// A set of adjustments that enable you to scale based on the size of the alarm breach. This parameter is required if the policy type is StepScaling and not supported otherwise. + public let stepAdjustments: [StepAdjustment]? - public init(minAdjustmentStep: Int32? = nil, metricAggregationType: String? = nil, stepAdjustments: [StepAdjustment]? = nil, policyType: String? = nil, adjustmentType: String, scalingAdjustment: Int32? = nil, cooldown: Int32? = nil, autoScalingGroupName: String, minAdjustmentMagnitude: Int32? = nil, estimatedInstanceWarmup: Int32? = nil, policyName: String) { + public init(minAdjustmentStep: Int32? = nil, metricAggregationType: String? = nil, targetTrackingConfiguration: TargetTrackingConfiguration? = nil, policyName: String, policyType: String? = nil, adjustmentType: String? = nil, scalingAdjustment: Int32? = nil, cooldown: Int32? = nil, autoScalingGroupName: String, estimatedInstanceWarmup: Int32? = nil, minAdjustmentMagnitude: Int32? = nil, stepAdjustments: [StepAdjustment]? = nil) { self.minAdjustmentStep = minAdjustmentStep self.metricAggregationType = metricAggregationType - self.stepAdjustments = stepAdjustments + self.targetTrackingConfiguration = targetTrackingConfiguration + self.policyName = policyName self.policyType = policyType self.adjustmentType = adjustmentType self.scalingAdjustment = scalingAdjustment self.cooldown = cooldown self.autoScalingGroupName = autoScalingGroupName - self.minAdjustmentMagnitude = minAdjustmentMagnitude self.estimatedInstanceWarmup = estimatedInstanceWarmup - self.policyName = policyName + self.minAdjustmentMagnitude = minAdjustmentMagnitude + self.stepAdjustments = stepAdjustments } private enum CodingKeys: String, CodingKey { case minAdjustmentStep = "MinAdjustmentStep" case metricAggregationType = "MetricAggregationType" - case stepAdjustments = "StepAdjustments" + case targetTrackingConfiguration = "TargetTrackingConfiguration" + case policyName = "PolicyName" case policyType = "PolicyType" case adjustmentType = "AdjustmentType" case scalingAdjustment = "ScalingAdjustment" case cooldown = "Cooldown" case autoScalingGroupName = "AutoScalingGroupName" - case minAdjustmentMagnitude = "MinAdjustmentMagnitude" case estimatedInstanceWarmup = "EstimatedInstanceWarmup" - case policyName = "PolicyName" + case minAdjustmentMagnitude = "MinAdjustmentMagnitude" + case stepAdjustments = "StepAdjustments" } } public struct SetInstanceProtectionQuery: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProtectedFromScaleIn", required: true, type: .boolean), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string), AWSShapeMember(label: "InstanceIds", required: true, type: .list) ] /// Indicates whether the instance is protected from termination by Auto Scaling when scaling in. public let protectedFromScaleIn: Bool - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String /// One or more instance IDs. public let instanceIds: [String] @@ -2809,7 +3052,7 @@ extension Autoscaling { } public struct Filter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -2830,13 +3073,13 @@ extension Autoscaling { } public struct DescribeLifecycleHooksType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LifecycleHookNames", required: false, type: .list), AWSShapeMember(label: "AutoScalingGroupName", required: true, type: .string) ] /// The names of one or more lifecycle hooks. If you omit this parameter, all lifecycle hooks are described. public let lifecycleHookNames: [String]? - /// The name of the group. + /// The name of the Auto Scaling group. public let autoScalingGroupName: String public init(lifecycleHookNames: [String]? = nil, autoScalingGroupName: String) { @@ -2851,7 +3094,7 @@ extension Autoscaling { } public struct CreateOrUpdateTagsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .list) ] /// One or more tags. diff --git a/Sources/AWSSDKSwift/Services/batch/Batch_API.swift b/Sources/AWSSDKSwift/Services/batch/Batch_API.swift index ad57334aa85..56a54b5ae83 100644 --- a/Sources/AWSSDKSwift/Services/batch/Batch_API.swift +++ b/Sources/AWSSDKSwift/Services/batch/Batch_API.swift @@ -39,7 +39,7 @@ public struct Batch { return try client.send(operation: "DeregisterJobDefinition", path: "/v1/deregisterjobdefinition", httpMethod: "POST", input: input) } - /// Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED compute environments. In a managed compute environment, AWS Batch manages the compute resources within the environment, based on the compute resources that you specify. Instances launched into a managed compute environment use the latest Amazon ECS-optimized AMI. You can choose to use Amazon EC2 On-Demand instances in your managed compute environment, or you can use Amazon EC2 Spot instances that only launch when the Spot bid price is below a specified percentage of the On-Demand price. In an unmanaged compute environment, you can manage your own compute resources. This provides more compute resource configuration options, such as using a custom AMI, but you must ensure that your AMI meets the Amazon ECS container instance AMI specification. For more information, see Container Instance AMIs in the Amazon EC2 Container Service Developer Guide. After you have created your unmanaged compute environment, you can use the DescribeComputeEnvironments operation to find the Amazon ECS cluster that is associated with it and then manually launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS Container Instance in the Amazon EC2 Container Service Developer Guide. + /// Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED compute environments. In a managed compute environment, AWS Batch manages the compute resources within the environment, based on the compute resources that you specify. Instances launched into a managed compute environment use a recent, approved version of the Amazon ECS-optimized AMI. You can choose to use Amazon EC2 On-Demand Instances in your managed compute environment, or you can use Amazon EC2 Spot Instances that only launch when the Spot bid price is below a specified percentage of the On-Demand price. In an unmanaged compute environment, you can manage your own compute resources. This provides more compute resource configuration options, such as using a custom AMI, but you must ensure that your AMI meets the Amazon ECS container instance AMI specification. For more information, see Container Instance AMIs in the Amazon Elastic Container Service Developer Guide. After you have created your unmanaged compute environment, you can use the DescribeComputeEnvironments operation to find the Amazon ECS cluster that is associated with it and then manually launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS Container Instance in the Amazon Elastic Container Service Developer Guide. public func createComputeEnvironment(_ input: CreateComputeEnvironmentRequest) throws -> CreateComputeEnvironmentResponse { return try client.send(operation: "CreateComputeEnvironment", path: "/v1/createcomputeenvironment", httpMethod: "POST", input: input) } @@ -64,7 +64,7 @@ public struct Batch { return try client.send(operation: "UpdateJobQueue", path: "/v1/updatejobqueue", httpMethod: "POST", input: input) } - /// Terminates jobs in a job queue. Jobs that are in the STARTING or RUNNING state are terminated, which causes them to transition to FAILED. Jobs that have not progressed to the STARTING state are cancelled. + /// Terminates a job in a job queue. Jobs that are in the STARTING or RUNNING state are terminated, which causes them to transition to FAILED. Jobs that have not progressed to the STARTING state are cancelled. public func terminateJob(_ input: TerminateJobRequest) throws -> TerminateJobResponse { return try client.send(operation: "TerminateJob", path: "/v1/terminatejob", httpMethod: "POST", input: input) } @@ -84,12 +84,12 @@ public struct Batch { return try client.send(operation: "DeleteComputeEnvironment", path: "/v1/deletecomputeenvironment", httpMethod: "POST", input: input) } - /// Returns a list of task jobs for a specified job queue. You can filter the results by job status with the jobStatus parameter. + /// Returns a list of task jobs for a specified job queue. You can filter the results by job status with the jobStatus parameter. If you do not specify a status, only RUNNING jobs are returned. public func listJobs(_ input: ListJobsRequest) throws -> ListJobsResponse { return try client.send(operation: "ListJobs", path: "/v1/listjobs", httpMethod: "POST", input: input) } - /// Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation and terminate any jobs that have not completed with the TerminateJob. It is not necessary to disassociate compute environments from a queue before submitting a DeleteJobQueue request. + /// Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation. All jobs in the queue are terminated when you delete a job queue. It is not necessary to disassociate compute environments from a queue before submitting a DeleteJobQueue request. public func deleteJobQueue(_ input: DeleteJobQueueRequest) throws -> DeleteJobQueueResponse { return try client.send(operation: "DeleteJobQueue", path: "/v1/deletejobqueue", httpMethod: "POST", input: input) } @@ -99,7 +99,7 @@ public struct Batch { return try client.send(operation: "DescribeComputeEnvironments", path: "/v1/describecomputeenvironments", httpMethod: "POST", input: input) } - /// Cancels jobs in an AWS Batch job queue. Jobs that are in the SUBMITTED, PENDING, or RUNNABLE state are cancelled. Jobs that have progressed to STARTING or RUNNING are not cancelled (but the API operation still succeeds, even if no jobs are cancelled); these jobs must be terminated with the TerminateJob operation. + /// Cancels a job in an AWS Batch job queue. Jobs that are in the SUBMITTED, PENDING, or RUNNABLE state are cancelled. Jobs that have progressed to STARTING or RUNNING are not cancelled (but the API operation still succeeds, even if no job is cancelled); these jobs must be terminated with the TerminateJob operation. public func cancelJob(_ input: CancelJobRequest) throws -> CancelJobResponse { return try client.send(operation: "CancelJob", path: "/v1/canceljob", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/batch/Batch_Shapes.swift b/Sources/AWSSDKSwift/Services/batch/Batch_Shapes.swift index 9c35a556044..9f193217ce8 100644 --- a/Sources/AWSSDKSwift/Services/batch/Batch_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/batch/Batch_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Batch { public struct RegisterJobDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revision", required: true, type: .integer), AWSShapeMember(label: "jobDefinitionArn", required: true, type: .string), AWSShapeMember(label: "jobDefinitionName", required: true, type: .string) @@ -15,7 +15,7 @@ extension Batch { public let revision: Int32 /// The Amazon Resource Name (ARN) of the job definition. public let jobDefinitionArn: String - /// The name of the job definition. + /// The name of the job definition. public let jobDefinitionName: String public init(revision: Int32, jobDefinitionArn: String, jobDefinitionName: String) { @@ -31,14 +31,40 @@ extension Batch { } } + public struct ArrayPropertiesDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "statusSummary", required: false, type: .map), + AWSShapeMember(label: "size", required: false, type: .integer), + AWSShapeMember(label: "index", required: false, type: .integer) + ] + /// A summary of the number of array job children in each available job status. This parameter is returned for parent array jobs. + public let statusSummary: [String: Int32]? + /// The size of the array job. This parameter is returned for parent array jobs. + public let size: Int32? + /// The job index within the array that is associated with this job. This parameter is returned for array job children. + public let index: Int32? + + public init(statusSummary: [String: Int32]? = nil, size: Int32? = nil, index: Int32? = nil) { + self.statusSummary = statusSummary + self.size = size + self.index = index + } + + private enum CodingKeys: String, CodingKey { + case statusSummary = "statusSummary" + case size = "size" + case index = "index" + } + } + public struct TerminateJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobId", required: true, type: .string), AWSShapeMember(label: "reason", required: true, type: .string) ] - /// Job IDs to be terminated. Up to 100 jobs can be specified. + /// The AWS Batch job ID of the job to terminate. public let jobId: String - /// A message to attach to the job that explains the reason for cancelling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs. + /// A message to attach to the job that explains the reason for canceling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs. public let reason: String public init(jobId: String, reason: String) { @@ -64,23 +90,58 @@ extension Batch { } public struct JobSummary: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "jobId", required: true, type: .string), - AWSShapeMember(label: "jobName", required: true, type: .string) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "jobName", required: true, type: .string), + AWSShapeMember(label: "arrayProperties", required: false, type: .structure), + AWSShapeMember(label: "createdAt", required: false, type: .long), + AWSShapeMember(label: "stoppedAt", required: false, type: .long), + AWSShapeMember(label: "startedAt", required: false, type: .long), + AWSShapeMember(label: "statusReason", required: false, type: .string), + AWSShapeMember(label: "container", required: false, type: .structure), + AWSShapeMember(label: "jobId", required: true, type: .string) ] - /// The ID of the job. - public let jobId: String + /// The current status for the job. + public let status: JobStatus? /// The name of the job. public let jobName: String + /// The array properties of the job, if it is an array job. + public let arrayProperties: ArrayPropertiesSummary? + /// The Unix time stamp for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state (at the time SubmitJob was called). For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state. + public let createdAt: Int64? + /// The Unix time stamp for when the job was stopped (when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED). + public let stoppedAt: Int64? + /// The Unix time stamp for when the job was started (when the job transitioned from the STARTING state to the RUNNING state). + public let startedAt: Int64? + /// A short, human-readable string to provide additional details about the current status of the job. + public let statusReason: String? + /// An object representing the details of the container that is associated with the job. + public let container: ContainerSummary? + /// The ID of the job. + public let jobId: String - public init(jobId: String, jobName: String) { - self.jobId = jobId + public init(status: JobStatus? = nil, jobName: String, arrayProperties: ArrayPropertiesSummary? = nil, createdAt: Int64? = nil, stoppedAt: Int64? = nil, startedAt: Int64? = nil, statusReason: String? = nil, container: ContainerSummary? = nil, jobId: String) { + self.status = status self.jobName = jobName + self.arrayProperties = arrayProperties + self.createdAt = createdAt + self.stoppedAt = stoppedAt + self.startedAt = startedAt + self.statusReason = statusReason + self.container = container + self.jobId = jobId } private enum CodingKeys: String, CodingKey { - case jobId = "jobId" + case status = "status" case jobName = "jobName" + case arrayProperties = "arrayProperties" + case createdAt = "createdAt" + case stoppedAt = "stoppedAt" + case startedAt = "startedAt" + case statusReason = "statusReason" + case container = "container" + case jobId = "jobId" } } @@ -95,7 +156,7 @@ extension Batch { } public struct AttemptDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "statusReason", required: false, type: .string), AWSShapeMember(label: "startedAt", required: false, type: .long), AWSShapeMember(label: "container", required: false, type: .structure), @@ -103,11 +164,11 @@ extension Batch { ] /// A short, human-readable string to provide additional details about the current status of the job attempt. public let statusReason: String? - /// The Unix timestamp for when the attempt was started (when the task transitioned from the PENDING state to the RUNNING state). + /// The Unix time stamp for when the attempt was started (when the attempt transitioned from the STARTING state to the RUNNING state). public let startedAt: Int64? /// Details about the container in this job attempt. public let container: AttemptContainerDetail? - /// The Unix timestamp for when the attempt was stopped (when the task transitioned from the RUNNING state to the STOPPED state). + /// The Unix time stamp for when the attempt was stopped (when the attempt transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED). public let stoppedAt: Int64? public init(statusReason: String? = nil, startedAt: Int64? = nil, container: AttemptContainerDetail? = nil, stoppedAt: Int64? = nil) { @@ -126,7 +187,7 @@ extension Batch { } public struct JobQueueDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: true, type: .enum), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "computeEnvironmentOrder", required: true, type: .list), @@ -171,29 +232,29 @@ extension Batch { } } - public struct SubmitJobResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "jobName", required: true, type: .string), - AWSShapeMember(label: "jobId", required: true, type: .string) + public struct ContainerSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "exitCode", required: false, type: .integer), + AWSShapeMember(label: "reason", required: false, type: .string) ] - /// The name of the job. - public let jobName: String - /// The unique identifier for the job. - public let jobId: String + /// The exit code to return upon completion. + public let exitCode: Int32? + /// A short (255 max characters) human-readable string to provide additional details about a running or stopped container. + public let reason: String? - public init(jobName: String, jobId: String) { - self.jobName = jobName - self.jobId = jobId + public init(exitCode: Int32? = nil, reason: String? = nil) { + self.exitCode = exitCode + self.reason = reason } private enum CodingKeys: String, CodingKey { - case jobName = "jobName" - case jobId = "jobId" + case exitCode = "exitCode" + case reason = "reason" } } public struct ContainerProperties: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "user", required: false, type: .string), AWSShapeMember(label: "readonlyRootFilesystem", required: false, type: .boolean), AWSShapeMember(label: "mountPoints", required: false, type: .list), @@ -217,11 +278,11 @@ extension Batch { public let image: String /// A list of data volumes used in a job. public let volumes: [Volume]? - /// The number of vCPUs reserved for the container. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. + /// The number of vCPUs reserved for the container. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one vCPU. public let vcpus: Int32 /// When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run. public let privileged: Bool? - /// The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run. We do not recommend using plain text environment variables for sensitive information, such as credential data. + /// The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run. We do not recommend using plaintext environment variables for sensitive information, such as credential data. Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the AWS Batch service. public let environment: [KeyValuePair]? /// The command that is passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. public let command: [String]? @@ -229,7 +290,7 @@ extension Batch { public let jobRoleArn: String? /// A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. public let ulimits: [Ulimit]? - /// The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. + /// The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job. public let memory: Int32 public init(user: String? = nil, readonlyRootFilesystem: Bool? = nil, mountPoints: [MountPoint]? = nil, image: String, volumes: [Volume]? = nil, vcpus: Int32, privileged: Bool? = nil, environment: [KeyValuePair]? = nil, command: [String]? = nil, jobRoleArn: String? = nil, ulimits: [Ulimit]? = nil, memory: Int32) { @@ -263,26 +324,51 @@ extension Batch { } } + public struct SubmitJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobName", required: true, type: .string), + AWSShapeMember(label: "jobId", required: true, type: .string) + ] + /// The name of the job. + public let jobName: String + /// The unique identifier for the job. + public let jobId: String + + public init(jobName: String, jobId: String) { + self.jobName = jobName + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case jobName = "jobName" + case jobId = "jobId" + } + } + public struct AttemptContainerDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "reason", required: false, type: .string), AWSShapeMember(label: "taskArn", required: false, type: .string), AWSShapeMember(label: "containerInstanceArn", required: false, type: .string), + AWSShapeMember(label: "logStreamName", required: false, type: .string), AWSShapeMember(label: "exitCode", required: false, type: .integer) ] /// A short (255 max characters) human-readable string to provide additional details about a running or stopped container. public let reason: String? - /// The Amazon Resource Name (ARN) of the Amazon ECS task that is associated with the job attempt. + /// The Amazon Resource Name (ARN) of the Amazon ECS task that is associated with the job attempt. Each container attempt receives a task ARN when they reach the STARTING status. public let taskArn: String? /// The Amazon Resource Name (ARN) of the Amazon ECS container instance that hosts the job attempt. public let containerInstanceArn: String? + /// The name of the CloudWatch Logs log stream associated with the container. The log group for AWS Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach the RUNNING status. + public let logStreamName: String? /// The exit code for the job attempt. A non-zero exit code is considered a failure. public let exitCode: Int32? - public init(reason: String? = nil, taskArn: String? = nil, containerInstanceArn: String? = nil, exitCode: Int32? = nil) { + public init(reason: String? = nil, taskArn: String? = nil, containerInstanceArn: String? = nil, logStreamName: String? = nil, exitCode: Int32? = nil) { self.reason = reason self.taskArn = taskArn self.containerInstanceArn = containerInstanceArn + self.logStreamName = logStreamName self.exitCode = exitCode } @@ -290,6 +376,7 @@ extension Batch { case reason = "reason" case taskArn = "taskArn" case containerInstanceArn = "containerInstanceArn" + case logStreamName = "logStreamName" case exitCode = "exitCode" } } @@ -300,7 +387,7 @@ extension Batch { } public struct ComputeResource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ec2KeyPair", required: false, type: .string), AWSShapeMember(label: "maxvCpus", required: true, type: .integer), AWSShapeMember(label: "imageId", required: false, type: .string), @@ -327,7 +414,7 @@ extension Batch { public let `type`: CRType /// The minimum percentage that a Spot Instance price must be when compared with the On-Demand price for that instance type before instances are launched. For example, if your bid percentage is 20%, then the Spot price must be below 20% of the current On-Demand price for that EC2 instance. public let bidPercentage: Int32? - /// The instances types that may launched. + /// The instances types that may be launched. You can specify instance families to launch any instance type within those families (for example, c4 or p3), or you can specify specific sizes within a family (such as c4.8xlarge). You can also choose optimal to pick instance types (from the latest C, M, and R instance families) on the fly that match the demand of your job queues. public let instanceTypes: [String] /// The VPC subnets into which the compute resources are launched. public let subnets: [String] @@ -335,7 +422,7 @@ extension Batch { public let spotIamFleetRole: String? /// The EC2 security group that is associated with instances launched in the compute environment. public let securityGroupIds: [String] - /// The Amazon ECS instance role applied to Amazon EC2 instances in a compute environment. + /// The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole. For more information, see Amazon ECS Instance Role in the AWS Batch User Guide. public let instanceRole: String /// The desired number of EC2 vCPUS in the compute environment. public let desiredvCpus: Int32? @@ -375,8 +462,18 @@ extension Batch { } } + public enum JQStatus: String, CustomStringConvertible, Codable { + case creating = "CREATING" + case updating = "UPDATING" + case deleting = "DELETING" + case deleted = "DELETED" + case valid = "VALID" + case invalid = "INVALID" + public var description: String { return self.rawValue } + } + public struct ComputeEnvironmentDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: false, type: .enum), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "computeEnvironmentArn", required: true, type: .string), @@ -431,22 +528,12 @@ extension Batch { } } - public enum JQStatus: String, CustomStringConvertible, Codable { - case creating = "CREATING" - case updating = "UPDATING" - case deleting = "DELETING" - case deleted = "DELETED" - case valid = "VALID" - case invalid = "INVALID" - public var description: String { return self.rawValue } - } - public struct DeleteJobQueueResponse: AWSShape { } public struct UpdateComputeEnvironmentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "computeEnvironmentName", required: false, type: .string), AWSShapeMember(label: "computeEnvironmentArn", required: false, type: .string) ] @@ -466,39 +553,12 @@ extension Batch { } } - public struct UpdateJobQueueRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "state", required: false, type: .enum), - AWSShapeMember(label: "jobQueue", required: true, type: .string), - AWSShapeMember(label: "computeEnvironmentOrder", required: false, type: .list), - AWSShapeMember(label: "priority", required: false, type: .integer) - ] - /// Describes the queue's ability to accept new jobs. - public let state: JQState? - /// The name or the Amazon Resource Name (ARN) of the job queue. - public let jobQueue: String - /// Details the set of compute environments mapped to a job queue and their order relative to each other. This is one of the parameters used by the job scheduler to determine which compute environment should execute a given job. - public let computeEnvironmentOrder: [ComputeEnvironmentOrder]? - /// The priority of the job queue. Job queues with a higher priority (or a lower integer value for the priority parameter) are evaluated first when associated with same compute environment. Priority is determined in ascending order, for example, a job queue with a priority value of 1 is given scheduling preference over a job queue with a priority value of 10. - public let priority: Int32? - - public init(state: JQState? = nil, jobQueue: String, computeEnvironmentOrder: [ComputeEnvironmentOrder]? = nil, priority: Int32? = nil) { - self.state = state - self.jobQueue = jobQueue - self.computeEnvironmentOrder = computeEnvironmentOrder - self.priority = priority - } + public struct TerminateJobResponse: AWSShape { - private enum CodingKeys: String, CodingKey { - case state = "state" - case jobQueue = "jobQueue" - case computeEnvironmentOrder = "computeEnvironmentOrder" - case priority = "priority" - } } public struct CreateComputeEnvironmentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: false, type: .enum), AWSShapeMember(label: "type", required: true, type: .enum), AWSShapeMember(label: "serviceRole", required: true, type: .string), @@ -509,9 +569,9 @@ extension Batch { public let state: CEState? /// The type of the compute environment. public let `type`: CEType - /// The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf. + /// The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf. If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. Depending on how you created your AWS Batch service role, its ARN may contain the service-role path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments. public let serviceRole: String - /// The name for your compute environment. Up to 128 letters (uppercase and lowercase), numbers, and underscores are allowed. + /// The name for your compute environment. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. public let computeEnvironmentName: String /// Details of the compute resources managed by the compute environment. This parameter is required for managed compute environments. public let computeResources: ComputeResource? @@ -533,12 +593,39 @@ extension Batch { } } - public struct TerminateJobResponse: AWSShape { + public struct UpdateJobQueueRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "state", required: false, type: .enum), + AWSShapeMember(label: "jobQueue", required: true, type: .string), + AWSShapeMember(label: "computeEnvironmentOrder", required: false, type: .list), + AWSShapeMember(label: "priority", required: false, type: .integer) + ] + /// Describes the queue's ability to accept new jobs. + public let state: JQState? + /// The name or the Amazon Resource Name (ARN) of the job queue. + public let jobQueue: String + /// Details the set of compute environments mapped to a job queue and their order relative to each other. This is one of the parameters used by the job scheduler to determine which compute environment should execute a given job. + public let computeEnvironmentOrder: [ComputeEnvironmentOrder]? + /// The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with same compute environment. Priority is determined in descending order, for example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. + public let priority: Int32? + + public init(state: JQState? = nil, jobQueue: String, computeEnvironmentOrder: [ComputeEnvironmentOrder]? = nil, priority: Int32? = nil) { + self.state = state + self.jobQueue = jobQueue + self.computeEnvironmentOrder = computeEnvironmentOrder + self.priority = priority + } + private enum CodingKeys: String, CodingKey { + case state = "state" + case jobQueue = "jobQueue" + case computeEnvironmentOrder = "computeEnvironmentOrder" + case priority = "priority" + } } public struct DescribeComputeEnvironmentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "computeEnvironments", required: false, type: .list), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string) @@ -564,7 +651,7 @@ extension Batch { } public struct DeleteComputeEnvironmentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "computeEnvironment", required: true, type: .string) ] /// The name or Amazon Resource Name (ARN) of the compute environment to delete. @@ -580,7 +667,7 @@ extension Batch { } public struct DescribeComputeEnvironmentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "computeEnvironments", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -601,7 +688,7 @@ extension Batch { } public struct DeregisterJobDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobDefinition", required: true, type: .string) ] /// The name and revision (name:revision) or full Amazon Resource Name (ARN) of the job definition to deregister. @@ -621,10 +708,11 @@ extension Batch { } public struct ContainerDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "reason", required: false, type: .string), AWSShapeMember(label: "readonlyRootFilesystem", required: false, type: .boolean), AWSShapeMember(label: "mountPoints", required: false, type: .list), + AWSShapeMember(label: "logStreamName", required: false, type: .string), AWSShapeMember(label: "user", required: false, type: .string), AWSShapeMember(label: "vcpus", required: false, type: .integer), AWSShapeMember(label: "ulimits", required: false, type: .list), @@ -645,6 +733,8 @@ extension Batch { public let readonlyRootFilesystem: Bool? /// The mount points for data volumes in your container. public let mountPoints: [MountPoint]? + /// The name of the CloudWatch Logs log stream associated with the container. The log group for AWS Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach the RUNNING status. + public let logStreamName: String? /// The user name to use inside the container. public let user: String? /// The number of VCPUs allocated for the job. @@ -653,7 +743,7 @@ extension Batch { public let ulimits: [Ulimit]? /// The number of MiB of memory reserved for the job. public let memory: Int32? - /// The environment variables to pass to a container. + /// The environment variables to pass to a container. Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the AWS Batch service. public let environment: [KeyValuePair]? /// The Amazon Resource Name (ARN) of the container instance on which the container is running. public let containerInstanceArn: String? @@ -665,17 +755,18 @@ extension Batch { public let privileged: Bool? /// The exit code to return upon completion. public let exitCode: Int32? - /// The Amazon Resource Name (ARN) of the Amazon ECS task that is associated with the container job. + /// The Amazon Resource Name (ARN) of the Amazon ECS task that is associated with the container job. Each container attempt receives a task ARN when they reach the STARTING status. public let taskArn: String? /// The command that is passed to the container. public let command: [String]? /// The Amazon Resource Name (ARN) associated with the job upon execution. public let jobRoleArn: String? - public init(reason: String? = nil, readonlyRootFilesystem: Bool? = nil, mountPoints: [MountPoint]? = nil, user: String? = nil, vcpus: Int32? = nil, ulimits: [Ulimit]? = nil, memory: Int32? = nil, environment: [KeyValuePair]? = nil, containerInstanceArn: String? = nil, image: String? = nil, volumes: [Volume]? = nil, privileged: Bool? = nil, exitCode: Int32? = nil, taskArn: String? = nil, command: [String]? = nil, jobRoleArn: String? = nil) { + public init(reason: String? = nil, readonlyRootFilesystem: Bool? = nil, mountPoints: [MountPoint]? = nil, logStreamName: String? = nil, user: String? = nil, vcpus: Int32? = nil, ulimits: [Ulimit]? = nil, memory: Int32? = nil, environment: [KeyValuePair]? = nil, containerInstanceArn: String? = nil, image: String? = nil, volumes: [Volume]? = nil, privileged: Bool? = nil, exitCode: Int32? = nil, taskArn: String? = nil, command: [String]? = nil, jobRoleArn: String? = nil) { self.reason = reason self.readonlyRootFilesystem = readonlyRootFilesystem self.mountPoints = mountPoints + self.logStreamName = logStreamName self.user = user self.vcpus = vcpus self.ulimits = ulimits @@ -695,6 +786,7 @@ extension Batch { case reason = "reason" case readonlyRootFilesystem = "readonlyRootFilesystem" case mountPoints = "mountPoints" + case logStreamName = "logStreamName" case user = "user" case vcpus = "vcpus" case ulimits = "ulimits" @@ -712,7 +804,7 @@ extension Batch { } public struct MountPoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "sourceVolume", required: false, type: .string), AWSShapeMember(label: "readOnly", required: false, type: .boolean), AWSShapeMember(label: "containerPath", required: false, type: .string) @@ -738,7 +830,7 @@ extension Batch { } public struct UpdateComputeEnvironmentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: false, type: .enum), AWSShapeMember(label: "computeEnvironment", required: true, type: .string), AWSShapeMember(label: "computeResources", required: false, type: .structure), @@ -750,7 +842,7 @@ extension Batch { public let computeEnvironment: String /// Details of the compute resources managed by the compute environment. Required for a managed compute environment. public let computeResources: ComputeResourceUpdate? - /// The name or full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to ECS, Auto Scaling, and EC2 on your behalf. + /// The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf. If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. Depending on how you created your AWS Batch service role, its ARN may contain the service-role path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments. public let serviceRole: String? public init(state: CEState? = nil, computeEnvironment: String, computeResources: ComputeResourceUpdate? = nil, serviceRole: String? = nil) { @@ -768,8 +860,24 @@ extension Batch { } } + public struct DescribeJobsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobs", required: true, type: .list) + ] + /// A space-separated list of up to 100 job IDs. + public let jobs: [String] + + public init(jobs: [String]) { + self.jobs = jobs + } + + private enum CodingKeys: String, CodingKey { + case jobs = "jobs" + } + } + public struct CreateJobQueueResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobQueueName", required: true, type: .string), AWSShapeMember(label: "jobQueueArn", required: true, type: .string) ] @@ -789,14 +897,8 @@ extension Batch { } } - public enum CEState: String, CustomStringConvertible, Codable { - case enabled = "ENABLED" - case disabled = "DISABLED" - public var description: String { return self.rawValue } - } - public struct Host: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "sourcePath", required: false, type: .string) ] /// The path on the host container instance that is presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the host parameter contains a sourcePath file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the sourcePath value does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported. @@ -811,55 +913,14 @@ extension Batch { } } - public struct DescribeJobsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "jobs", required: true, type: .list) - ] - /// A space-separated list of up to 100 job IDs. - public let jobs: [String] - - public init(jobs: [String]) { - self.jobs = jobs - } - - private enum CodingKeys: String, CodingKey { - case jobs = "jobs" - } - } - - public struct ContainerOverrides: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "vcpus", required: false, type: .integer), - AWSShapeMember(label: "environment", required: false, type: .list), - AWSShapeMember(label: "command", required: false, type: .list), - AWSShapeMember(label: "memory", required: false, type: .integer) - ] - /// The number of vCPUs to reserve for the container. This value overrides the value set in the job definition. - public let vcpus: Int32? - /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the job definition. - public let environment: [KeyValuePair]? - /// The command to send to the container that overrides the default command from the Docker image or the job definition. - public let command: [String]? - /// The number of MiB of memory reserved for the job. This value overrides the value set in the job definition. - public let memory: Int32? - - public init(vcpus: Int32? = nil, environment: [KeyValuePair]? = nil, command: [String]? = nil, memory: Int32? = nil) { - self.vcpus = vcpus - self.environment = environment - self.command = command - self.memory = memory - } - - private enum CodingKeys: String, CodingKey { - case vcpus = "vcpus" - case environment = "environment" - case command = "command" - case memory = "memory" - } + public enum CEState: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } } public struct JobDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobName", required: true, type: .string), AWSShapeMember(label: "createdAt", required: false, type: .long), AWSShapeMember(label: "startedAt", required: true, type: .long), @@ -867,6 +928,7 @@ extension Batch { AWSShapeMember(label: "container", required: false, type: .structure), AWSShapeMember(label: "dependsOn", required: false, type: .list), AWSShapeMember(label: "jobQueue", required: true, type: .string), + AWSShapeMember(label: "arrayProperties", required: false, type: .structure), AWSShapeMember(label: "status", required: true, type: .enum), AWSShapeMember(label: "attempts", required: false, type: .list), AWSShapeMember(label: "parameters", required: false, type: .map), @@ -877,9 +939,9 @@ extension Batch { ] /// The name of the job. public let jobName: String - /// The Unix timestamp for when the job was created (when the task entered the PENDING state). + /// The Unix time stamp for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state (at the time SubmitJob was called). For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state. public let createdAt: Int64? - /// The Unix timestamp for when the job was started (when the task transitioned from the PENDING state to the RUNNING state). + /// The Unix time stamp for when the job was started (when the job transitioned from the STARTING state to the RUNNING state). public let startedAt: Int64 /// A short, human-readable string to provide additional details about the current status of the job. public let statusReason: String? @@ -889,13 +951,15 @@ extension Batch { public let dependsOn: [JobDependency]? /// The Amazon Resource Name (ARN) of the job queue with which the job is associated. public let jobQueue: String + /// The array properties of the job, if it is an array job. + public let arrayProperties: ArrayPropertiesDetail? /// The current status for the job. public let status: JobStatus /// A list of job attempts associated with this job. public let attempts: [AttemptDetail]? /// Additional parameters passed to the job that replace parameter substitution placeholders or override any corresponding parameter defaults from the job definition. public let parameters: [String: String]? - /// The Unix timestamp for when the job was stopped (when the task transitioned from the RUNNING state to the STOPPED state). + /// The Unix time stamp for when the job was stopped (when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED). public let stoppedAt: Int64? /// The retry strategy to use for this job if an attempt fails. public let retryStrategy: RetryStrategy? @@ -904,7 +968,7 @@ extension Batch { /// The ID for the job. public let jobId: String - public init(jobName: String, createdAt: Int64? = nil, startedAt: Int64, statusReason: String? = nil, container: ContainerDetail? = nil, dependsOn: [JobDependency]? = nil, jobQueue: String, status: JobStatus, attempts: [AttemptDetail]? = nil, parameters: [String: String]? = nil, stoppedAt: Int64? = nil, retryStrategy: RetryStrategy? = nil, jobDefinition: String, jobId: String) { + public init(jobName: String, createdAt: Int64? = nil, startedAt: Int64, statusReason: String? = nil, container: ContainerDetail? = nil, dependsOn: [JobDependency]? = nil, jobQueue: String, arrayProperties: ArrayPropertiesDetail? = nil, status: JobStatus, attempts: [AttemptDetail]? = nil, parameters: [String: String]? = nil, stoppedAt: Int64? = nil, retryStrategy: RetryStrategy? = nil, jobDefinition: String, jobId: String) { self.jobName = jobName self.createdAt = createdAt self.startedAt = startedAt @@ -912,6 +976,7 @@ extension Batch { self.container = container self.dependsOn = dependsOn self.jobQueue = jobQueue + self.arrayProperties = arrayProperties self.status = status self.attempts = attempts self.parameters = parameters @@ -929,6 +994,7 @@ extension Batch { case container = "container" case dependsOn = "dependsOn" case jobQueue = "jobQueue" + case arrayProperties = "arrayProperties" case status = "status" case attempts = "attempts" case parameters = "parameters" @@ -939,9 +1005,41 @@ extension Batch { } } + public struct ContainerOverrides: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "vcpus", required: false, type: .integer), + AWSShapeMember(label: "environment", required: false, type: .list), + AWSShapeMember(label: "command", required: false, type: .list), + AWSShapeMember(label: "memory", required: false, type: .integer) + ] + /// The number of vCPUs to reserve for the container. This value overrides the value set in the job definition. + public let vcpus: Int32? + /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the job definition. Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the AWS Batch service. + public let environment: [KeyValuePair]? + /// The command to send to the container that overrides the default command from the Docker image or the job definition. + public let command: [String]? + /// The number of MiB of memory reserved for the job. This value overrides the value set in the job definition. + public let memory: Int32? + + public init(vcpus: Int32? = nil, environment: [KeyValuePair]? = nil, command: [String]? = nil, memory: Int32? = nil) { + self.vcpus = vcpus + self.environment = environment + self.command = command + self.memory = memory + } + + private enum CodingKeys: String, CodingKey { + case vcpus = "vcpus" + case environment = "environment" + case command = "command" + case memory = "memory" + } + } + public struct SubmitJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobQueue", required: true, type: .string), + AWSShapeMember(label: "arrayProperties", required: false, type: .structure), AWSShapeMember(label: "jobName", required: true, type: .string), AWSShapeMember(label: "parameters", required: false, type: .map), AWSShapeMember(label: "retryStrategy", required: false, type: .structure), @@ -949,9 +1047,11 @@ extension Batch { AWSShapeMember(label: "containerOverrides", required: false, type: .structure), AWSShapeMember(label: "dependsOn", required: false, type: .list) ] - /// The job queue into which the job will be submitted. You can specify either the name or the Amazon Resource Name (ARN) of the queue. + /// The job queue into which the job is submitted. You can specify either the name or the Amazon Resource Name (ARN) of the queue. public let jobQueue: String - /// The name of the job. A name must be 1 to 128 characters in length. Pattern: ^[a-zA-Z0-9_]+$ + /// The array properties for the submitted job, such as the size of the array. The array size can be between 2 and 10,000. If you specify array properties for a job, it becomes an array job. For more information, see Array Jobs in the AWS Batch User Guide. + public let arrayProperties: ArrayProperties? + /// The name of the job. The first character must be alphanumeric, and up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. public let jobName: String /// Additional parameters passed to the job that replace parameter substitution placeholders that are set in the job definition. Parameters are specified as a key and value pair mapping. Parameters in a SubmitJob request override any corresponding parameter defaults from the job definition. public let parameters: [String: String]? @@ -961,11 +1061,12 @@ extension Batch { public let jobDefinition: String /// A list of container overrides in JSON format that specify the name of a container in the specified job definition and the overrides it should receive. You can override the default command for a container (that is specified in the job definition or the Docker image) with a command override. You can also override existing environment variables (that are specified in the job definition or Docker image) on a container or add new environment variables to it with an environment override. public let containerOverrides: ContainerOverrides? - /// A list of job IDs on which this job depends. A job can depend upon a maximum of 100 jobs. + /// A list of dependencies for the job. A job can depend upon a maximum of 20 jobs. You can specify a SEQUENTIAL type dependency without specifying a job ID for array jobs so that each child array job completes sequentially, starting at index 0. You can also specify an N_TO_N type dependency with a job ID for array jobs so that each index child of this job must wait for the corresponding index child of each dependency to complete before it can begin. public let dependsOn: [JobDependency]? - public init(jobQueue: String, jobName: String, parameters: [String: String]? = nil, retryStrategy: RetryStrategy? = nil, jobDefinition: String, containerOverrides: ContainerOverrides? = nil, dependsOn: [JobDependency]? = nil) { + public init(jobQueue: String, arrayProperties: ArrayProperties? = nil, jobName: String, parameters: [String: String]? = nil, retryStrategy: RetryStrategy? = nil, jobDefinition: String, containerOverrides: ContainerOverrides? = nil, dependsOn: [JobDependency]? = nil) { self.jobQueue = jobQueue + self.arrayProperties = arrayProperties self.jobName = jobName self.parameters = parameters self.retryStrategy = retryStrategy @@ -976,6 +1077,7 @@ extension Batch { private enum CodingKeys: String, CodingKey { case jobQueue = "jobQueue" + case arrayProperties = "arrayProperties" case jobName = "jobName" case parameters = "parameters" case retryStrategy = "retryStrategy" @@ -986,7 +1088,7 @@ extension Batch { } public struct DescribeJobsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobs", required: false, type: .list) ] /// The list of jobs. @@ -1001,18 +1103,12 @@ extension Batch { } } - public enum CEType: String, CustomStringConvertible, Codable { - case managed = "MANAGED" - case unmanaged = "UNMANAGED" - public var description: String { return self.rawValue } - } - public struct DeleteComputeEnvironmentResponse: AWSShape { } public struct ListJobsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "jobSummaryList", required: true, type: .list) ] @@ -1032,8 +1128,50 @@ extension Batch { } } + public struct RegisterJobDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobDefinitionName", required: true, type: .string), + AWSShapeMember(label: "retryStrategy", required: false, type: .structure), + AWSShapeMember(label: "type", required: true, type: .enum), + AWSShapeMember(label: "containerProperties", required: false, type: .structure), + AWSShapeMember(label: "parameters", required: false, type: .map) + ] + /// The name of the job definition to register. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. + public let jobDefinitionName: String + /// The retry strategy to use for failed jobs that are submitted with this job definition. Any retry strategy that is specified during a SubmitJob operation overrides the retry strategy defined here. + public let retryStrategy: RetryStrategy? + /// The type of job definition. + public let `type`: JobDefinitionType + /// An object with various properties specific for container-based jobs. This parameter is required if the type parameter is container. + public let containerProperties: ContainerProperties? + /// Default parameter substitution placeholders to set in the job definition. Parameters are specified as a key-value pair mapping. Parameters in a SubmitJob request override any corresponding parameter defaults from the job definition. + public let parameters: [String: String]? + + public init(jobDefinitionName: String, retryStrategy: RetryStrategy? = nil, type: JobDefinitionType, containerProperties: ContainerProperties? = nil, parameters: [String: String]? = nil) { + self.jobDefinitionName = jobDefinitionName + self.retryStrategy = retryStrategy + self.`type` = `type` + self.containerProperties = containerProperties + self.parameters = parameters + } + + private enum CodingKeys: String, CodingKey { + case jobDefinitionName = "jobDefinitionName" + case retryStrategy = "retryStrategy" + case `type` = "type" + case containerProperties = "containerProperties" + case parameters = "parameters" + } + } + + public enum CEType: String, CustomStringConvertible, Codable { + case managed = "MANAGED" + case unmanaged = "UNMANAGED" + public var description: String { return self.rawValue } + } + public struct DescribeJobDefinitionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobDefinitionName", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), @@ -1068,75 +1206,81 @@ extension Batch { } } - public struct RegisterJobDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "jobDefinitionName", required: true, type: .string), - AWSShapeMember(label: "retryStrategy", required: false, type: .structure), - AWSShapeMember(label: "type", required: true, type: .enum), - AWSShapeMember(label: "containerProperties", required: false, type: .structure), - AWSShapeMember(label: "parameters", required: false, type: .map) - ] - /// The name of the job definition to register. - public let jobDefinitionName: String - /// The retry strategy to use for failed jobs that are submitted with this job definition. Any retry strategy that is specified during a SubmitJob operation overrides the retry strategy defined here. - public let retryStrategy: RetryStrategy? - /// The type of job definition. - public let `type`: JobDefinitionType - /// An object with various properties specific for container-based jobs. This parameter is required if the type parameter is container. - public let containerProperties: ContainerProperties? - /// Default parameter substitution placeholders to set in the job definition. Parameters are specified as a key-value pair mapping. Parameters in a SubmitJob request override any corresponding parameter defaults from the job definition. - public let parameters: [String: String]? - - public init(jobDefinitionName: String, retryStrategy: RetryStrategy? = nil, type: JobDefinitionType, containerProperties: ContainerProperties? = nil, parameters: [String: String]? = nil) { - self.jobDefinitionName = jobDefinitionName - self.retryStrategy = retryStrategy - self.`type` = `type` - self.containerProperties = containerProperties - self.parameters = parameters - } - - private enum CodingKeys: String, CodingKey { - case jobDefinitionName = "jobDefinitionName" - case retryStrategy = "retryStrategy" - case `type` = "type" - case containerProperties = "containerProperties" - case parameters = "parameters" - } - } - public struct ListJobsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "jobQueue", required: true, type: .string), - AWSShapeMember(label: "nextToken", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobQueue", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), - AWSShapeMember(label: "jobStatus", required: false, type: .enum) + AWSShapeMember(label: "jobStatus", required: false, type: .enum), + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "arrayJobId", required: false, type: .string) ] /// The name or full Amazon Resource Name (ARN) of the job queue with which to list jobs. - public let jobQueue: String - /// The nextToken value returned from a previous paginated ListJobs request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. - public let nextToken: String? + public let jobQueue: String? /// The maximum number of results returned by ListJobs in paginated output. When this parameter is used, ListJobs only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListJobs request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListJobs returns up to 100 results and a nextToken value if applicable. public let maxResults: Int32? - /// The job status with which to filter jobs in the specified queue. + /// The job status with which to filter jobs in the specified queue. If you do not specify a status, only RUNNING jobs are returned. public let jobStatus: JobStatus? + /// The nextToken value returned from a previous paginated ListJobs request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + public let nextToken: String? + /// The job ID for an array job. Specifying an array job ID with this parameter lists all child jobs from within the specified array. + public let arrayJobId: String? - public init(jobQueue: String, nextToken: String? = nil, maxResults: Int32? = nil, jobStatus: JobStatus? = nil) { + public init(jobQueue: String? = nil, maxResults: Int32? = nil, jobStatus: JobStatus? = nil, nextToken: String? = nil, arrayJobId: String? = nil) { self.jobQueue = jobQueue - self.nextToken = nextToken self.maxResults = maxResults self.jobStatus = jobStatus + self.nextToken = nextToken + self.arrayJobId = arrayJobId } private enum CodingKeys: String, CodingKey { case jobQueue = "jobQueue" - case nextToken = "nextToken" case maxResults = "maxResults" case jobStatus = "jobStatus" + case nextToken = "nextToken" + case arrayJobId = "arrayJobId" + } + } + + public struct DescribeJobQueuesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobQueues", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The list of job queues. + public let jobQueues: [JobQueueDetail]? + /// The nextToken value to include in a future DescribeJobQueues request. When the results of a DescribeJobQueues request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + + public init(jobQueues: [JobQueueDetail]? = nil, nextToken: String? = nil) { + self.jobQueues = jobQueues + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case jobQueues = "jobQueues" + case nextToken = "nextToken" + } + } + + public struct ArrayProperties: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "size", required: false, type: .integer) + ] + /// The size of the array job. + public let size: Int32? + + public init(size: Int32? = nil) { + self.size = size + } + + private enum CodingKeys: String, CodingKey { + case size = "size" } } public struct DescribeJobQueuesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobQueues", required: false, type: .list), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string) @@ -1161,29 +1305,24 @@ extension Batch { } } - public struct DescribeJobQueuesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "jobQueues", required: false, type: .list), - AWSShapeMember(label: "nextToken", required: false, type: .string) + public struct DeleteJobQueueRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobQueue", required: true, type: .string) ] - /// The list of job queues. - public let jobQueues: [JobQueueDetail]? - /// The nextToken value to include in a future DescribeJobQueues request. When the results of a DescribeJobQueues request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. - public let nextToken: String? + /// The short name or full Amazon Resource Name (ARN) of the queue to delete. + public let jobQueue: String - public init(jobQueues: [JobQueueDetail]? = nil, nextToken: String? = nil) { - self.jobQueues = jobQueues - self.nextToken = nextToken + public init(jobQueue: String) { + self.jobQueue = jobQueue } private enum CodingKeys: String, CodingKey { - case jobQueues = "jobQueues" - case nextToken = "nextToken" + case jobQueue = "jobQueue" } } public struct DescribeJobDefinitionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "jobDefinitions", required: false, type: .list) ] @@ -1203,24 +1342,35 @@ extension Batch { } } - public struct DeleteJobQueueRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "jobQueue", required: true, type: .string) + public enum ArrayJobDependency: String, CustomStringConvertible, Codable { + case nToN = "N_TO_N" + case sequential = "SEQUENTIAL" + public var description: String { return self.rawValue } + } + + public struct ArrayPropertiesSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "size", required: false, type: .integer), + AWSShapeMember(label: "index", required: false, type: .integer) ] - /// The short name or full Amazon Resource Name (ARN) of the queue to delete. - public let jobQueue: String + /// The size of the array job. This parameter is returned for parent array jobs. + public let size: Int32? + /// The job index within the array that is associated with this job. This parameter is returned for children of array jobs. + public let index: Int32? - public init(jobQueue: String) { - self.jobQueue = jobQueue + public init(size: Int32? = nil, index: Int32? = nil) { + self.size = size + self.index = index } private enum CodingKeys: String, CodingKey { - case jobQueue = "jobQueue" + case size = "size" + case index = "index" } } public struct JobDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revision", required: true, type: .integer), AWSShapeMember(label: "status", required: false, type: .string), AWSShapeMember(label: "jobDefinitionName", required: true, type: .string), @@ -1271,13 +1421,13 @@ extension Batch { } public struct KeyValuePair: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "value", required: false, type: .string) ] - /// The name of the key value pair. For environment variables, this is the name of the environment variable. + /// The name of the key-value pair. For environment variables, this is the name of the environment variable. public let name: String? - /// The value of the key value pair. For environment variables, this is the value of the environment variable. + /// The value of the key-value pair. For environment variables, this is the value of the environment variable. public let value: String? public init(name: String? = nil, value: String? = nil) { @@ -1292,7 +1442,7 @@ extension Batch { } public struct CreateJobQueueRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: false, type: .enum), AWSShapeMember(label: "computeEnvironmentOrder", required: true, type: .list), AWSShapeMember(label: "priority", required: true, type: .integer), @@ -1300,9 +1450,9 @@ extension Batch { ] /// The state of the job queue. If the job queue state is ENABLED, it is able to accept jobs. public let state: JQState? - /// The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment should execute a given job. Compute environments must be in the VALID state before you can associate them with a job queue. You can associate up to 3 compute environments with a job queue. + /// The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment should execute a given job. Compute environments must be in the VALID state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. public let computeEnvironmentOrder: [ComputeEnvironmentOrder] - /// The priority of the job queue. Job queues with a higher priority (or a lower integer value for the priority parameter) are evaluated first when associated with same compute environment. Priority is determined in ascending order, for example, a job queue with a priority value of 1 is given scheduling preference over a job queue with a priority value of 10. + /// The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with same compute environment. Priority is determined in descending order, for example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. public let priority: Int32 /// The name of the job queue. public let jobQueueName: String @@ -1323,13 +1473,13 @@ extension Batch { } public struct CancelJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobId", required: true, type: .string), AWSShapeMember(label: "reason", required: true, type: .string) ] - /// A list of up to 100 job IDs to cancel. + /// The AWS Batch job ID of the job to cancel. public let jobId: String - /// A message to attach to the job that explains the reason for cancelling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs. + /// A message to attach to the job that explains the reason for canceling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs. public let reason: String public init(jobId: String, reason: String) { @@ -1344,7 +1494,7 @@ extension Batch { } public struct CreateComputeEnvironmentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "computeEnvironmentName", required: false, type: .string), AWSShapeMember(label: "computeEnvironmentArn", required: false, type: .string) ] @@ -1375,10 +1525,10 @@ extension Batch { } public struct RetryStrategy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attempts", required: false, type: .integer) ] - /// The number of times to move a job to the RUNNABLE status. You may specify between 1 and 10 attempts. If attempts is greater than one, the job is retried if it fails until it has moved to RUNNABLE that many times. + /// The number of times to move a job to the RUNNABLE status. You may specify between 1 and 10 attempts. If the value of attempts is greater than one, the job is retried if it fails until it has moved to RUNNABLE that many times. public let attempts: Int32? public init(attempts: Int32? = nil) { @@ -1397,7 +1547,7 @@ extension Batch { } public struct UpdateJobQueueResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobQueueName", required: false, type: .string), AWSShapeMember(label: "jobQueueArn", required: false, type: .string) ] @@ -1418,13 +1568,13 @@ extension Batch { } public struct Volume: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "host", required: false, type: .structure) ] /// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This name is referenced in the sourceVolume parameter of container definition mountPoints. public let name: String? - /// The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running. + /// The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data is not guaranteed to persist after the containers associated with it stop running. public let host: Host? public init(name: String? = nil, host: Host? = nil) { @@ -1439,7 +1589,7 @@ extension Batch { } public struct ComputeResourceUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxvCpus", required: false, type: .integer), AWSShapeMember(label: "minvCpus", required: false, type: .integer), AWSShapeMember(label: "desiredvCpus", required: false, type: .integer) @@ -1465,23 +1615,28 @@ extension Batch { } public struct JobDependency: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "jobId", required: false, type: .string) ] + /// The type of the job dependency. + public let `type`: ArrayJobDependency? /// The job ID of the AWS Batch job associated with this dependency. public let jobId: String? - public init(jobId: String? = nil) { + public init(type: ArrayJobDependency? = nil, jobId: String? = nil) { + self.`type` = `type` self.jobId = jobId } private enum CodingKeys: String, CodingKey { + case `type` = "type" case jobId = "jobId" } } public struct Ulimit: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "softLimit", required: true, type: .integer), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "hardLimit", required: true, type: .integer) @@ -1507,7 +1662,7 @@ extension Batch { } public struct ComputeEnvironmentOrder: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "computeEnvironment", required: true, type: .string), AWSShapeMember(label: "order", required: true, type: .integer) ] diff --git a/Sources/AWSSDKSwift/Services/budgets/Budgets_Shapes.swift b/Sources/AWSSDKSwift/Services/budgets/Budgets_Shapes.swift index bc40a56d498..0c110a38a8f 100644 --- a/Sources/AWSSDKSwift/Services/budgets/Budgets_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/budgets/Budgets_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Budgets { public struct DeleteBudgetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "BudgetName", required: true, type: .string) ] @@ -25,7 +25,7 @@ extension Budgets { } public struct DescribeBudgetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Budgets", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -44,7 +44,7 @@ extension Budgets { } public struct DescribeBudgetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "BudgetName", required: true, type: .string) ] @@ -63,7 +63,7 @@ extension Budgets { } public struct DescribeBudgetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Budget", required: false, type: .structure) ] public let budget: Budget? @@ -78,7 +78,7 @@ extension Budgets { } public struct DeleteNotificationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "Notification", required: true, type: .structure), AWSShapeMember(label: "BudgetName", required: true, type: .string) @@ -101,7 +101,7 @@ extension Budgets { } public struct NotificationWithSubscribers: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subscribers", required: true, type: .list), AWSShapeMember(label: "Notification", required: true, type: .structure) ] @@ -120,7 +120,7 @@ extension Budgets { } public struct UpdateSubscriberRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "Notification", required: true, type: .structure), AWSShapeMember(label: "OldSubscriber", required: true, type: .structure), @@ -161,7 +161,7 @@ extension Budgets { } public struct CreateNotificationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "Notification", required: true, type: .structure), AWSShapeMember(label: "Subscribers", required: true, type: .list), @@ -192,7 +192,7 @@ extension Budgets { } public struct DescribeNotificationsForBudgetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Notifications", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -211,7 +211,7 @@ extension Budgets { } public struct DeleteSubscriberRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "Subscriber", required: true, type: .structure), AWSShapeMember(label: "Notification", required: true, type: .structure), @@ -242,7 +242,7 @@ extension Budgets { } public struct CostTypes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IncludeSubscription", required: true, type: .boolean), AWSShapeMember(label: "UseBlended", required: true, type: .boolean), AWSShapeMember(label: "IncludeTax", required: true, type: .boolean) @@ -269,7 +269,7 @@ extension Budgets { } public struct DescribeBudgetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -296,7 +296,7 @@ extension Budgets { } public struct CreateBudgetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "Budget", required: true, type: .structure), AWSShapeMember(label: "NotificationsWithSubscribers", required: false, type: .list) @@ -323,7 +323,7 @@ extension Budgets { } public struct UpdateNotificationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "OldNotification", required: true, type: .structure), AWSShapeMember(label: "NewNotification", required: true, type: .structure), @@ -357,14 +357,21 @@ extension Budgets { } + public enum ThresholdType: String, CustomStringConvertible, Codable { + case percentage = "PERCENTAGE" + case absoluteValue = "ABSOLUTE_VALUE" + public var description: String { return self.rawValue } + } + public enum BudgetType: String, CustomStringConvertible, Codable { case usage = "USAGE" case cost = "COST" + case riUtilization = "RI_UTILIZATION" public var description: String { return self.rawValue } } public struct DescribeSubscribersForNotificationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "Notification", required: true, type: .structure), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -395,7 +402,7 @@ extension Budgets { } public struct CreateSubscriberRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "Subscriber", required: true, type: .structure), AWSShapeMember(label: "Notification", required: true, type: .structure), @@ -426,30 +433,34 @@ extension Budgets { } public struct Notification: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ComparisonOperator", required: true, type: .enum), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Threshold", required: true, type: .double), - AWSShapeMember(label: "NotificationType", required: true, type: .enum) + AWSShapeMember(label: "NotificationType", required: true, type: .enum), + AWSShapeMember(label: "ComparisonOperator", required: true, type: .enum), + AWSShapeMember(label: "ThresholdType", required: false, type: .enum) ] - public let comparisonOperator: ComparisonOperator public let threshold: Double public let notificationType: NotificationType + public let comparisonOperator: ComparisonOperator + public let thresholdType: ThresholdType? - public init(comparisonOperator: ComparisonOperator, threshold: Double, notificationType: NotificationType) { - self.comparisonOperator = comparisonOperator + public init(threshold: Double, notificationType: NotificationType, comparisonOperator: ComparisonOperator, thresholdType: ThresholdType? = nil) { self.threshold = threshold self.notificationType = notificationType + self.comparisonOperator = comparisonOperator + self.thresholdType = thresholdType } private enum CodingKeys: String, CodingKey { - case comparisonOperator = "ComparisonOperator" case threshold = "Threshold" case notificationType = "NotificationType" + case comparisonOperator = "ComparisonOperator" + case thresholdType = "ThresholdType" } } public struct Subscriber: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Address", required: true, type: .string), AWSShapeMember(label: "SubscriptionType", required: true, type: .enum) ] @@ -468,7 +479,7 @@ extension Budgets { } public struct DescribeNotificationsForBudgetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "BudgetName", required: true, type: .string), @@ -495,7 +506,7 @@ extension Budgets { } public struct UpdateBudgetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "NewBudget", required: true, type: .structure) ] @@ -514,6 +525,7 @@ extension Budgets { } public enum TimeUnit: String, CustomStringConvertible, Codable { + case daily = "DAILY" case monthly = "MONTHLY" case quarterly = "QUARTERLY" case annually = "ANNUALLY" @@ -521,7 +533,7 @@ extension Budgets { } public struct Budget: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TimeUnit", required: true, type: .enum), AWSShapeMember(label: "BudgetLimit", required: true, type: .structure), AWSShapeMember(label: "BudgetName", required: true, type: .string), @@ -564,7 +576,7 @@ extension Budgets { } public struct TimePeriod: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Start", required: true, type: .timestamp), AWSShapeMember(label: "End", required: true, type: .timestamp) ] @@ -583,7 +595,7 @@ extension Budgets { } public struct CalculatedSpend: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ForecastedSpend", required: false, type: .structure), AWSShapeMember(label: "ActualSpend", required: true, type: .structure) ] @@ -602,7 +614,7 @@ extension Budgets { } public struct Spend: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Unit", required: true, type: .string), AWSShapeMember(label: "Amount", required: true, type: .string) ] @@ -621,7 +633,7 @@ extension Budgets { } public struct DescribeSubscribersForNotificationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subscribers", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/ce/Ce_API.swift b/Sources/AWSSDKSwift/Services/ce/Ce_API.swift new file mode 100644 index 00000000000..319f5b4907f --- /dev/null +++ b/Sources/AWSSDKSwift/Services/ce/Ce_API.swift @@ -0,0 +1,49 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +The Cost Explorer API allows you to programmatically query your cost and usage data. You can query for aggregated data such as total monthly costs or total daily usage. You can also query for granular data, such as the number of daily write operations for DynamoDB database tables in your production environment. Service Endpoint The Cost Explorer API provides the following endpoint: https://ce.us-east-1.amazonaws.com +*/ +public struct Ce { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "AWSInsightsIndexService", + service: "ce", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-10-25", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [CeError.self] + ) + } + + /// Retrieve cost and usage metrics for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as AWS Service or AvailabilityZone, in a specific time range. See the GetDimensionValues action for a complete list of the valid dimensions. Master accounts in an organization have access to all member accounts. + public func getCostAndUsage(_ input: GetCostAndUsageRequest) throws -> GetCostAndUsageResponse { + return try client.send(operation: "GetCostAndUsage", path: "/", httpMethod: "POST", input: input) + } + + /// You can retrieve the Reservation utilization for your account. Master accounts in an organization have access to their associated member accounts. You can filter data by dimensions in a time period. You can use GetDimensionValues to determine the possible dimension values. Currently, you can group only by SUBSCRIPTION_ID. + public func getReservationUtilization(_ input: GetReservationUtilizationRequest) throws -> GetReservationUtilizationResponse { + return try client.send(operation: "GetReservationUtilization", path: "/", httpMethod: "POST", input: input) + } + + /// You can use GetDimensionValues to retrieve all available filter values for a specific filter over a period of time. You can search the dimension values for an arbitrary string. + public func getDimensionValues(_ input: GetDimensionValuesRequest) throws -> GetDimensionValuesResponse { + return try client.send(operation: "GetDimensionValues", path: "/", httpMethod: "POST", input: input) + } + + /// You can query for available tag keys and tag values for a specified period. You can search the tag values for an arbitrary string. + public func getTags(_ input: GetTagsRequest) throws -> GetTagsResponse { + return try client.send(operation: "GetTags", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/ce/Ce_Error.swift b/Sources/AWSSDKSwift/Services/ce/Ce_Error.swift new file mode 100644 index 00000000000..e938c32e58f --- /dev/null +++ b/Sources/AWSSDKSwift/Services/ce/Ce_Error.swift @@ -0,0 +1,23 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Ce +public enum CeError: AWSErrorType { + case limitExceededException(message: String?) +} + +extension CeError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "LimitExceededException": + self = .limitExceededException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/ce/Ce_Shapes.swift b/Sources/AWSSDKSwift/Services/ce/Ce_Shapes.swift new file mode 100644 index 00000000000..49e94825513 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/ce/Ce_Shapes.swift @@ -0,0 +1,605 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Ce { + + public struct GetCostAndUsageResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupDefinitions", required: false, type: .list), + AWSShapeMember(label: "ResultsByTime", required: false, type: .list), + AWSShapeMember(label: "NextPageToken", required: false, type: .string) + ] + /// The groups specified by the the Filter or GroupBy parameters in the request. + public let groupDefinitions: [GroupDefinition]? + /// The time period covered by the results in the response. + public let resultsByTime: [ResultByTime]? + /// The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size. + public let nextPageToken: String? + + public init(groupDefinitions: [GroupDefinition]? = nil, resultsByTime: [ResultByTime]? = nil, nextPageToken: String? = nil) { + self.groupDefinitions = groupDefinitions + self.resultsByTime = resultsByTime + self.nextPageToken = nextPageToken + } + + private enum CodingKeys: String, CodingKey { + case groupDefinitions = "GroupDefinitions" + case resultsByTime = "ResultsByTime" + case nextPageToken = "NextPageToken" + } + } + + public struct GetCostAndUsageRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Metrics", required: false, type: .list), + AWSShapeMember(label: "Filter", required: false, type: .structure), + AWSShapeMember(label: "GroupBy", required: false, type: .list), + AWSShapeMember(label: "TimePeriod", required: false, type: .structure), + AWSShapeMember(label: "Granularity", required: false, type: .enum), + AWSShapeMember(label: "NextPageToken", required: false, type: .string) + ] + /// Which metrics are returned in the query. For more information about blended and unblended rates, see https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/. Valid values are BlendedCost, UnblendedCost, and UsageQuantity. If you return the UsageQuantity metric, the service aggregates all usage numbers without taking into account the units. For example, if you aggregate usageQuantity across all of EC2, the results aren't meaningful because EC2 compute hours and data transfer are measured in different units (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, filter by UsageType or UsageTypeGroups. + public let metrics: [String]? + /// Filters AWS costs by different dimensions. For example, you can specify Service and Linked Account and get the costs associated with that account's usage of that service. You can nest Expression objects to define any combination of dimension filters. For more information, see the Expression object or More Examples. + public let filter: Expression? + /// You can group AWS costs using up to two different groups, either dimensions, tag keys, or both. When you group by tag key, you get all tag values, including empty strings. Valid values are: AZ, INSTANCE_TYPE, LINKED_ACCCOUNT, OPERATION, PURCHASE_TYPE, SERVICE, USAGE_TYPE, TAGS, and PLATFORM. + public let groupBy: [GroupDefinition]? + /// Sets the start and end dates for retrieving AWS costs. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01. + public let timePeriod: DateInterval? + /// Sets the AWS cost granularity to MONTHLY or DAILY. + public let granularity: Granularity? + /// The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size. + public let nextPageToken: String? + + public init(metrics: [String]? = nil, filter: Expression? = nil, groupBy: [GroupDefinition]? = nil, timePeriod: DateInterval? = nil, granularity: Granularity? = nil, nextPageToken: String? = nil) { + self.metrics = metrics + self.filter = filter + self.groupBy = groupBy + self.timePeriod = timePeriod + self.granularity = granularity + self.nextPageToken = nextPageToken + } + + private enum CodingKeys: String, CodingKey { + case metrics = "Metrics" + case filter = "Filter" + case groupBy = "GroupBy" + case timePeriod = "TimePeriod" + case granularity = "Granularity" + case nextPageToken = "NextPageToken" + } + } + + public struct DimensionValues: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Key", required: false, type: .enum), + AWSShapeMember(label: "Values", required: false, type: .list) + ] + /// The names of the metadata types that you can use to filter and group your results. For example, AZ returns a list of Availability Zones. + public let key: Dimension? + /// The metadata values that you can use to filter and group your results. You can use GetDimensionValues to find specific values. + public let values: [String]? + + public init(key: Dimension? = nil, values: [String]? = nil) { + self.key = key + self.values = values + } + + private enum CodingKeys: String, CodingKey { + case key = "Key" + case values = "Values" + } + } + + public struct ResultByTime: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Estimated", required: false, type: .boolean), + AWSShapeMember(label: "TimePeriod", required: false, type: .structure), + AWSShapeMember(label: "Total", required: false, type: .map), + AWSShapeMember(label: "Groups", required: false, type: .list) + ] + /// Whether or not this result is estimated. + public let estimated: Bool? + /// The time period covered by a result. + public let timePeriod: DateInterval? + /// The total amount of cost or usage accrued during the time period. + public let total: [String: MetricValue]? + /// The groups that are included in this time period. + public let groups: [Group]? + + public init(estimated: Bool? = nil, timePeriod: DateInterval? = nil, total: [String: MetricValue]? = nil, groups: [Group]? = nil) { + self.estimated = estimated + self.timePeriod = timePeriod + self.total = total + self.groups = groups + } + + private enum CodingKeys: String, CodingKey { + case estimated = "Estimated" + case timePeriod = "TimePeriod" + case total = "Total" + case groups = "Groups" + } + } + + public struct DateInterval: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Start", required: true, type: .string), + AWSShapeMember(label: "End", required: true, type: .string) + ] + /// The beginning of the time period that you want the usage and costs for. The start date is inclusive. For example, if start is 2017-01-01, then the cost and usage data is retrieved starting at 2017-01-01 up to the end date. + public let start: String + /// The end of the time period that you want the usage and costs for. The end date is exclusive. For example, if the end is 2017-05-01, then the cost and usage data is retrieved from the start date but not including 2017-05-01. + public let end: String + + public init(start: String, end: String) { + self.start = start + self.end = end + } + + private enum CodingKeys: String, CodingKey { + case start = "Start" + case end = "End" + } + } + + public class Expression: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Or", required: false, type: .list), + AWSShapeMember(label: "Dimensions", required: false, type: .structure), + AWSShapeMember(label: "Not", required: false, type: .structure), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "And", required: false, type: .list) + ] + /// Return results that match either Dimension. + public let or: [Expression]? + /// The specific Dimension to use for Expression. + public let dimensions: DimensionValues? + /// Return results that don't match Dimension. + public let not: Expression? + /// The specific Tag to use for Expression. + public let tags: TagValues? + /// Return results that match both Dimension objects. + public let and: [Expression]? + + public init(or: [Expression]? = nil, dimensions: DimensionValues? = nil, not: Expression? = nil, tags: TagValues? = nil, and: [Expression]? = nil) { + self.or = or + self.dimensions = dimensions + self.not = not + self.tags = tags + self.and = and + } + + private enum CodingKeys: String, CodingKey { + case or = "Or" + case dimensions = "Dimensions" + case not = "Not" + case tags = "Tags" + case and = "And" + } + } + + public struct GroupDefinition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "Key", required: false, type: .string) + ] + /// The string that represents the type of group. + public let `type`: GroupDefinitionType? + /// The string that represents a key for a specified group. + public let key: String? + + public init(type: GroupDefinitionType? = nil, key: String? = nil) { + self.`type` = `type` + self.key = key + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case key = "Key" + } + } + + public struct MetricValue: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Unit", required: false, type: .string), + AWSShapeMember(label: "Amount", required: false, type: .string) + ] + /// The unit that the metric is given in. + public let unit: String? + /// The actual number that represents the metric. + public let amount: String? + + public init(unit: String? = nil, amount: String? = nil) { + self.unit = unit + self.amount = amount + } + + private enum CodingKeys: String, CodingKey { + case unit = "Unit" + case amount = "Amount" + } + } + + public struct GetTagsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TagKey", required: false, type: .string), + AWSShapeMember(label: "TimePeriod", required: true, type: .structure), + AWSShapeMember(label: "SearchString", required: false, type: .string), + AWSShapeMember(label: "NextPageToken", required: false, type: .string) + ] + /// The key of the tag that you want to return values for. + public let tagKey: String? + /// The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01. + public let timePeriod: DateInterval + /// The value that you want to search for. + public let searchString: String? + /// The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size. + public let nextPageToken: String? + + public init(tagKey: String? = nil, timePeriod: DateInterval, searchString: String? = nil, nextPageToken: String? = nil) { + self.tagKey = tagKey + self.timePeriod = timePeriod + self.searchString = searchString + self.nextPageToken = nextPageToken + } + + private enum CodingKeys: String, CodingKey { + case tagKey = "TagKey" + case timePeriod = "TimePeriod" + case searchString = "SearchString" + case nextPageToken = "NextPageToken" + } + } + + public struct UtilizationByTime: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimePeriod", required: false, type: .structure), + AWSShapeMember(label: "Groups", required: false, type: .list), + AWSShapeMember(label: "Total", required: false, type: .structure) + ] + /// The period of time over which this utilization was used. + public let timePeriod: DateInterval? + /// The groups that are included in this utilization result. + public let groups: [ReservationUtilizationGroup]? + /// The total number of RI hours that were used. + public let total: ReservationAggregates? + + public init(timePeriod: DateInterval? = nil, groups: [ReservationUtilizationGroup]? = nil, total: ReservationAggregates? = nil) { + self.timePeriod = timePeriod + self.groups = groups + self.total = total + } + + private enum CodingKeys: String, CodingKey { + case timePeriod = "TimePeriod" + case groups = "Groups" + case total = "Total" + } + } + + public struct ReservationAggregates: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UtilizationPercentage", required: false, type: .string), + AWSShapeMember(label: "TotalActualHours", required: false, type: .string), + AWSShapeMember(label: "PurchasedHours", required: false, type: .string), + AWSShapeMember(label: "UnusedHours", required: false, type: .string) + ] + /// The percentage of RI time that you used. + public let utilizationPercentage: String? + /// The total number of RI hours that you used. + public let totalActualHours: String? + /// How many RI hours you purchased. + public let purchasedHours: String? + /// The number of RI hours that you didn't use. + public let unusedHours: String? + + public init(utilizationPercentage: String? = nil, totalActualHours: String? = nil, purchasedHours: String? = nil, unusedHours: String? = nil) { + self.utilizationPercentage = utilizationPercentage + self.totalActualHours = totalActualHours + self.purchasedHours = purchasedHours + self.unusedHours = unusedHours + } + + private enum CodingKeys: String, CodingKey { + case utilizationPercentage = "UtilizationPercentage" + case totalActualHours = "TotalActualHours" + case purchasedHours = "PurchasedHours" + case unusedHours = "UnusedHours" + } + } + + public struct GetTagsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReturnSize", required: true, type: .integer), + AWSShapeMember(label: "TotalSize", required: true, type: .integer), + AWSShapeMember(label: "Tags", required: true, type: .list), + AWSShapeMember(label: "NextPageToken", required: false, type: .string) + ] + /// The number of query results that AWS returns at a time. + public let returnSize: Int32 + /// The total number of query results. + public let totalSize: Int32 + /// The tags that match your request. + public let tags: [String] + /// The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size. + public let nextPageToken: String? + + public init(returnSize: Int32, totalSize: Int32, tags: [String], nextPageToken: String? = nil) { + self.returnSize = returnSize + self.totalSize = totalSize + self.tags = tags + self.nextPageToken = nextPageToken + } + + private enum CodingKeys: String, CodingKey { + case returnSize = "ReturnSize" + case totalSize = "TotalSize" + case tags = "Tags" + case nextPageToken = "NextPageToken" + } + } + + public struct DimensionValuesWithAttributes: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: false, type: .string), + AWSShapeMember(label: "Attributes", required: false, type: .map) + ] + /// The value of a dimension with a specific attribute. + public let value: String? + /// The attribute that applies to a specific Dimension. + public let attributes: [String: String]? + + public init(value: String? = nil, attributes: [String: String]? = nil) { + self.value = value + self.attributes = attributes + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case attributes = "Attributes" + } + } + + public enum Dimension: String, CustomStringConvertible, Codable { + case az = "AZ" + case instanceType = "INSTANCE_TYPE" + case linkedAccount = "LINKED_ACCOUNT" + case operation = "OPERATION" + case purchaseType = "PURCHASE_TYPE" + case region = "REGION" + case service = "SERVICE" + case usageType = "USAGE_TYPE" + case usageTypeGroup = "USAGE_TYPE_GROUP" + case recordType = "RECORD_TYPE" + case operatingSystem = "OPERATING_SYSTEM" + case tenancy = "TENANCY" + case scope = "SCOPE" + case platform = "PLATFORM" + case subscriptionId = "SUBSCRIPTION_ID" + public var description: String { return self.rawValue } + } + + public struct ReservationUtilizationGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Attributes", required: false, type: .map), + AWSShapeMember(label: "Key", required: false, type: .string), + AWSShapeMember(label: "Utilization", required: false, type: .structure), + AWSShapeMember(label: "Value", required: false, type: .string) + ] + /// The attributes for this group of RIs. + public let attributes: [String: String]? + /// The key for a specific RI attribute. + public let key: String? + /// How much you used this group of RIs. + public let utilization: ReservationAggregates? + /// The value of a specific RI attribute. + public let value: String? + + public init(attributes: [String: String]? = nil, key: String? = nil, utilization: ReservationAggregates? = nil, value: String? = nil) { + self.attributes = attributes + self.key = key + self.utilization = utilization + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case attributes = "Attributes" + case key = "Key" + case utilization = "Utilization" + case value = "Value" + } + } + + public struct TagValues: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Key", required: false, type: .string), + AWSShapeMember(label: "Values", required: false, type: .list) + ] + /// The key for a tag. + public let key: String? + /// The specific value of a tag. + public let values: [String]? + + public init(key: String? = nil, values: [String]? = nil) { + self.key = key + self.values = values + } + + private enum CodingKeys: String, CodingKey { + case key = "Key" + case values = "Values" + } + } + + public struct GetDimensionValuesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Context", required: false, type: .enum), + AWSShapeMember(label: "Dimension", required: true, type: .enum), + AWSShapeMember(label: "TimePeriod", required: true, type: .structure), + AWSShapeMember(label: "SearchString", required: false, type: .string), + AWSShapeMember(label: "NextPageToken", required: false, type: .string) + ] + /// The context for the call to GetDimensionValues. This can be RESERVED_INSTANCE or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is set to RESERVED_INSTANCE, the resulting dimension values can be used in the GetReservationUtilization action. If the context is set to COST_AND_USAGE, , the resulting dimension values can be used in the GetCostAndUsage operation. If you set the context to CostAndUsage, you can use the following dimensions for searching: AZ - The Availability Zone. An example is us-east-1a. InstanceType - The type of EC2 instance. An example is m4.xlarge. LinkedAccount - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account Operation - The action performed. Examples include RunInstance and CreateBucket. PurchaseType - The reservation type of the purchase to which this usage is related. Examples include: On Demand Instances and Standard Reserved Instances Service - The AWS service such as DynamoDB. UsageType -The type of usage. An example is DataTransfer-In-Bytes. The response for the GetDimensionValues action includes a unit attribute, examples of which include GB and Hrs. UsageTypeGroup - The grouping of common usage types. An example is EC2: CloudWatch – Alarms. The response for this action includes a unit attribute. RecordType - The different types of charges such as RI fees, usage costs, tax refunds, and credits If you set the context to ReservedInstance, you can use the following dimensions for searching: AZ - The Availability Zone. An example is us-east-1a. InstanceType - The type of EC2 instance. An example is m4.xlarge. LinkedAccount - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account Platform - The operating system. Examples are Windows or Linux. Region - The AWS region. Scope - The scope of a reserved instance (RI). Values are regional or a single availability zone. Tenancy - The tenancy of a resource. Examples are shared or dedicated. + public let context: Context? + /// The name of the dimension. Different Dimensionsare available for different Contexts. For more information, see Context. + public let dimension: Dimension + /// The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01. + public let timePeriod: DateInterval + /// The value that you want to search the filter values for. + public let searchString: String? + /// The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size. + public let nextPageToken: String? + + public init(context: Context? = nil, dimension: Dimension, timePeriod: DateInterval, searchString: String? = nil, nextPageToken: String? = nil) { + self.context = context + self.dimension = dimension + self.timePeriod = timePeriod + self.searchString = searchString + self.nextPageToken = nextPageToken + } + + private enum CodingKeys: String, CodingKey { + case context = "Context" + case dimension = "Dimension" + case timePeriod = "TimePeriod" + case searchString = "SearchString" + case nextPageToken = "NextPageToken" + } + } + + public struct GetDimensionValuesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReturnSize", required: true, type: .integer), + AWSShapeMember(label: "DimensionValues", required: true, type: .list), + AWSShapeMember(label: "TotalSize", required: true, type: .integer), + AWSShapeMember(label: "NextPageToken", required: false, type: .string) + ] + /// The number of results that AWS returned at one time. + public let returnSize: Int32 + /// The filters that you used to filter your request. Some dimensions are available only for a specific context: If you set the context to CostAndUsage, you can use the following dimensions for searching: AZ - The Availability Zone. An example is us-east-1a. InstanceType - The type of EC2 instance. An example is m4.xlarge. LinkedAccount - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account Operation - The action performed. Examples include RunInstance and CreateBucket. PurchaseType - The reservation type of the purchase to which this usage is related. Examples include: On Demand Instances and Standard Reserved Instances Service - The AWS service such as DynamoDB. UsageType -The type of usage. An example is DataTransfer-In-Bytes. The response for the GetDimensionValues action includes a unit attribute, examples of which include GB and Hrs. UsageTypeGroup - The grouping of common usage types. An example is EC2: CloudWatch – Alarms. The response for this action includes a unit attribute. RecordType - The different types of charges such as RI fees, usage costs, tax refunds, and credits If you set the context to ReservedInstance, you can use the following dimensions for searching: AZ - The Availability Zone. An example is us-east-1a. InstanceType - The type of EC2 instance. An example is m4.xlarge. LinkedAccount - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account Platform - The operating system. Examples are Windows or Linux. Region - The AWS region. Scope - The scope of a reserved instance (RI). Values are regional or a single availability zone. Tenancy - The tenancy of a resource. Examples are shared or dedicated. + public let dimensionValues: [DimensionValuesWithAttributes] + /// The total number of search results. + public let totalSize: Int32 + /// The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size. + public let nextPageToken: String? + + public init(returnSize: Int32, dimensionValues: [DimensionValuesWithAttributes], totalSize: Int32, nextPageToken: String? = nil) { + self.returnSize = returnSize + self.dimensionValues = dimensionValues + self.totalSize = totalSize + self.nextPageToken = nextPageToken + } + + private enum CodingKeys: String, CodingKey { + case returnSize = "ReturnSize" + case dimensionValues = "DimensionValues" + case totalSize = "TotalSize" + case nextPageToken = "NextPageToken" + } + } + + public struct Group: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Metrics", required: false, type: .map), + AWSShapeMember(label: "Keys", required: false, type: .list) + ] + /// The metrics included in this group. + public let metrics: [String: MetricValue]? + /// The keys included in this group. + public let keys: [String]? + + public init(metrics: [String: MetricValue]? = nil, keys: [String]? = nil) { + self.metrics = metrics + self.keys = keys + } + + private enum CodingKeys: String, CodingKey { + case metrics = "Metrics" + case keys = "Keys" + } + } + + public struct GetReservationUtilizationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filter", required: false, type: .structure), + AWSShapeMember(label: "GroupBy", required: false, type: .list), + AWSShapeMember(label: "TimePeriod", required: true, type: .structure), + AWSShapeMember(label: "Granularity", required: false, type: .enum), + AWSShapeMember(label: "NextPageToken", required: false, type: .string) + ] + /// Filters utilization data by using different dimensions. GetReservationUtilization uses the same Expression object as the other operations, but only AND is supported among each dimension, and nesting is supported up to only one level deep. If there are multiple values for a dimension, they are OR'd together. + public let filter: Expression? + /// Groups only by SubscriptionId. Metadata is included. + public let groupBy: [GroupDefinition]? + /// Sets the start and end dates for retrieving reserve instance (RI) utilization. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01. + public let timePeriod: DateInterval + /// Sets the AWS cost granularity to MONTHLY or DAILY. If both GroupBy and granularity are not set, GetReservationUtilization defaults to DAILY. If GroupBy is set, Granularity can't be set, and the response object doesn't include MONTHLY or DAILY granularity. + public let granularity: Granularity? + /// The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size. + public let nextPageToken: String? + + public init(filter: Expression? = nil, groupBy: [GroupDefinition]? = nil, timePeriod: DateInterval, granularity: Granularity? = nil, nextPageToken: String? = nil) { + self.filter = filter + self.groupBy = groupBy + self.timePeriod = timePeriod + self.granularity = granularity + self.nextPageToken = nextPageToken + } + + private enum CodingKeys: String, CodingKey { + case filter = "Filter" + case groupBy = "GroupBy" + case timePeriod = "TimePeriod" + case granularity = "Granularity" + case nextPageToken = "NextPageToken" + } + } + + public enum Granularity: String, CustomStringConvertible, Codable { + case daily = "DAILY" + case monthly = "MONTHLY" + public var description: String { return self.rawValue } + } + + public struct GetReservationUtilizationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UtilizationsByTime", required: true, type: .list), + AWSShapeMember(label: "Total", required: false, type: .structure), + AWSShapeMember(label: "NextPageToken", required: false, type: .string) + ] + /// The amount of time that you utilized your RIs. + public let utilizationsByTime: [UtilizationByTime] + /// The total amount of time that you utilized your RIs. + public let total: ReservationAggregates? + /// The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size. + public let nextPageToken: String? + + public init(utilizationsByTime: [UtilizationByTime], total: ReservationAggregates? = nil, nextPageToken: String? = nil) { + self.utilizationsByTime = utilizationsByTime + self.total = total + self.nextPageToken = nextPageToken + } + + private enum CodingKeys: String, CodingKey { + case utilizationsByTime = "UtilizationsByTime" + case total = "Total" + case nextPageToken = "NextPageToken" + } + } + + public enum GroupDefinitionType: String, CustomStringConvertible, Codable { + case dimension = "DIMENSION" + case tag = "TAG" + public var description: String { return self.rawValue } + } + + public enum Context: String, CustomStringConvertible, Codable { + case costAndUsage = "COST_AND_USAGE" + case reservations = "RESERVATIONS" + public var description: String { return self.rawValue } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/clouddirectory/Clouddirectory_Error.swift b/Sources/AWSSDKSwift/Services/clouddirectory/Clouddirectory_Error.swift index 507e7df02a2..b5b9f34df39 100644 --- a/Sources/AWSSDKSwift/Services/clouddirectory/Clouddirectory_Error.swift +++ b/Sources/AWSSDKSwift/Services/clouddirectory/Clouddirectory_Error.swift @@ -13,9 +13,9 @@ public enum ClouddirectoryError: AWSErrorType { case resourceNotFoundException(message: String?) case schemaAlreadyPublishedException(message: String?) case directoryAlreadyExistsException(message: String?) + case directoryNotEnabledException(message: String?) case invalidAttachmentException(message: String?) case facetValidationException(message: String?) - case directoryNotEnabledException(message: String?) case linkNameAlreadyInUseException(message: String?) case directoryDeletedException(message: String?) case facetNotFoundException(message: String?) @@ -65,12 +65,12 @@ extension ClouddirectoryError { self = .schemaAlreadyPublishedException(message: message) case "DirectoryAlreadyExistsException": self = .directoryAlreadyExistsException(message: message) + case "DirectoryNotEnabledException": + self = .directoryNotEnabledException(message: message) case "InvalidAttachmentException": self = .invalidAttachmentException(message: message) case "FacetValidationException": self = .facetValidationException(message: message) - case "DirectoryNotEnabledException": - self = .directoryNotEnabledException(message: message) case "LinkNameAlreadyInUseException": self = .linkNameAlreadyInUseException(message: message) case "DirectoryDeletedException": diff --git a/Sources/AWSSDKSwift/Services/clouddirectory/Clouddirectory_Shapes.swift b/Sources/AWSSDKSwift/Services/clouddirectory/Clouddirectory_Shapes.swift index 8f84353d7ca..cd801d29524 100644 --- a/Sources/AWSSDKSwift/Services/clouddirectory/Clouddirectory_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/clouddirectory/Clouddirectory_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Clouddirectory { public struct FacetAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeDefinition", required: false, type: .structure), AWSShapeMember(label: "AttributeReference", required: false, type: .structure), AWSShapeMember(label: "Name", required: true, type: .string), @@ -36,8 +36,12 @@ extension Clouddirectory { } } + public struct BatchDetachPolicyResponse: AWSShape { + + } + public struct TagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string), AWSShapeMember(label: "Tags", required: true, type: .list) ] @@ -57,8 +61,29 @@ extension Clouddirectory { } } + public struct BatchListIncomingTypedLinksResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LinkSpecifiers", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Returns one or more typed link specifiers as output. + public let linkSpecifiers: [TypedLinkSpecifier]? + /// The pagination token. + public let nextToken: String? + + public init(linkSpecifiers: [TypedLinkSpecifier]? = nil, nextToken: String? = nil) { + self.linkSpecifiers = linkSpecifiers + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case linkSpecifiers = "LinkSpecifiers" + case nextToken = "NextToken" + } + } + public struct UpdateSchemaResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaArn", required: false, type: .string) ] /// The ARN that is associated with the updated schema. For more information, see arns. @@ -74,7 +99,7 @@ extension Clouddirectory { } public struct Rule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Parameters", required: false, type: .map) ] @@ -95,7 +120,7 @@ extension Clouddirectory { } public struct GetDirectoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] /// The ARN of the directory. @@ -111,7 +136,7 @@ extension Clouddirectory { } public struct ListObjectChildrenResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Children", required: false, type: .map) ] @@ -131,6 +156,10 @@ extension Clouddirectory { } } + public struct BatchAttachPolicyResponse: AWSShape { + + } + public struct AddFacetToObjectResponse: AWSShape { } @@ -142,11 +171,18 @@ extension Clouddirectory { case invalidnexttokenexception = "InvalidNextTokenException" case accessdeniedexception = "AccessDeniedException" case notnodeexception = "NotNodeException" + case facetvalidationexception = "FacetValidationException" + case cannotlistparentofrootexception = "CannotListParentOfRootException" + case notindexexception = "NotIndexException" + case notpolicyexception = "NotPolicyException" + case directorynotenabledexception = "DirectoryNotEnabledException" + case limitexceededexception = "LimitExceededException" + case internalserviceexception = "InternalServiceException" public var description: String { return self.rawValue } } public struct TypedAttributeValueRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndValue", required: false, type: .structure), AWSShapeMember(label: "EndMode", required: true, type: .enum), AWSShapeMember(label: "StartValue", required: false, type: .structure), @@ -186,7 +222,7 @@ extension Clouddirectory { } public struct GetSchemaAsJsonResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Document", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -207,7 +243,7 @@ extension Clouddirectory { } public struct AddFacetToObjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "SchemaFacet", required: true, type: .structure), AWSShapeMember(label: "ObjectAttributeList", required: false, type: .list), @@ -237,6 +273,69 @@ extension Clouddirectory { } } + public struct BatchListAttachedIndices: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetReference", required: true, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// A reference to the object that has indices attached. + public let targetReference: ObjectReference + /// The pagination token. + public let nextToken: String? + /// The maximum number of results to retrieve. + public let maxResults: Int32? + + public init(targetReference: ObjectReference, nextToken: String? = nil, maxResults: Int32? = nil) { + self.targetReference = targetReference + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case targetReference = "TargetReference" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct BatchListPolicyAttachmentsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ObjectIdentifiers", required: false, type: .list) + ] + /// The pagination token. + public let nextToken: String? + /// A list of ObjectIdentifiers to which the policy is attached. + public let objectIdentifiers: [String]? + + public init(nextToken: String? = nil, objectIdentifiers: [String]? = nil) { + self.nextToken = nextToken + self.objectIdentifiers = objectIdentifiers + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case objectIdentifiers = "ObjectIdentifiers" + } + } + + public struct BatchDetachFromIndexResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetachedObjectIdentifier", required: false, type: .string) + ] + /// The ObjectIdentifier of the object that was detached from the index. + public let detachedObjectIdentifier: String? + + public init(detachedObjectIdentifier: String? = nil) { + self.detachedObjectIdentifier = detachedObjectIdentifier + } + + private enum CodingKeys: String, CodingKey { + case detachedObjectIdentifier = "DetachedObjectIdentifier" + } + } + public enum ObjectType: String, CustomStringConvertible, Codable { case node = "NODE" case leafNode = "LEAF_NODE" @@ -246,7 +345,7 @@ extension Clouddirectory { } public struct ListDevelopmentSchemaArnsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -267,7 +366,7 @@ extension Clouddirectory { } public struct Directory: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CreationDateTime", required: false, type: .timestamp), AWSShapeMember(label: "DirectoryArn", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -298,7 +397,7 @@ extension Clouddirectory { } public struct GetTypedLinkFacetInformationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityAttributeOrder", required: false, type: .list) ] /// The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed links considers the order that the attributes are defined on the typed link facet. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. For more information about identity attributes, see Typed link. @@ -314,7 +413,7 @@ extension Clouddirectory { } public struct LookupPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyToPathList", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -339,7 +438,7 @@ extension Clouddirectory { } public struct CreateSchemaResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaArn", required: false, type: .string) ] /// The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. @@ -355,7 +454,7 @@ extension Clouddirectory { } public struct RemoveFacetFromObjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaFacet", required: true, type: .structure), AWSShapeMember(label: "ObjectReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) @@ -381,7 +480,7 @@ extension Clouddirectory { } public struct ObjectAttributeRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Range", required: false, type: .structure), AWSShapeMember(label: "AttributeKey", required: false, type: .structure) ] @@ -402,7 +501,7 @@ extension Clouddirectory { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -423,48 +522,83 @@ extension Clouddirectory { } public struct BatchWriteOperationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AddFacetToObject", required: false, type: .structure), - AWSShapeMember(label: "UpdateObjectAttributes", required: false, type: .structure), AWSShapeMember(label: "DetachObject", required: false, type: .structure), + AWSShapeMember(label: "AttachTypedLink", required: false, type: .structure), AWSShapeMember(label: "AttachObject", required: false, type: .structure), - AWSShapeMember(label: "CreateObject", required: false, type: .structure), + AWSShapeMember(label: "DetachTypedLink", required: false, type: .structure), + AWSShapeMember(label: "CreateIndex", required: false, type: .structure), AWSShapeMember(label: "DeleteObject", required: false, type: .structure), - AWSShapeMember(label: "RemoveFacetFromObject", required: false, type: .structure) + AWSShapeMember(label: "UpdateObjectAttributes", required: false, type: .structure), + AWSShapeMember(label: "RemoveFacetFromObject", required: false, type: .structure), + AWSShapeMember(label: "DetachFromIndex", required: false, type: .structure), + AWSShapeMember(label: "DetachPolicy", required: false, type: .structure), + AWSShapeMember(label: "AttachPolicy", required: false, type: .structure), + AWSShapeMember(label: "CreateObject", required: false, type: .structure), + AWSShapeMember(label: "AttachToIndex", required: false, type: .structure) ] /// The result of an add facet to object batch operation. public let addFacetToObject: BatchAddFacetToObjectResponse? - /// Updates a given object’s attributes. - public let updateObjectAttributes: BatchUpdateObjectAttributesResponse? /// Detaches an object from a Directory. public let detachObject: BatchDetachObjectResponse? + /// Attaches a typed link to a specified source and target object. For more information, see Typed link. + public let attachTypedLink: BatchAttachTypedLinkResponse? /// Attaches an object to a Directory. public let attachObject: BatchAttachObjectResponse? - /// Creates an object in a Directory. - public let createObject: BatchCreateObjectResponse? + /// Detaches a typed link from a specified source and target object. For more information, see Typed link. + public let detachTypedLink: BatchDetachTypedLinkResponse? + /// Creates an index object. See Indexing for more information. + public let createIndex: BatchCreateIndexResponse? /// Deletes an object in a Directory. public let deleteObject: BatchDeleteObjectResponse? + /// Updates a given object’s attributes. + public let updateObjectAttributes: BatchUpdateObjectAttributesResponse? /// The result of a batch remove facet from object operation. public let removeFacetFromObject: BatchRemoveFacetFromObjectResponse? + /// Detaches the specified object from the specified index. + public let detachFromIndex: BatchDetachFromIndexResponse? + /// Detaches a policy from a Directory. + public let detachPolicy: BatchDetachPolicyResponse? + /// Attaches a policy object to a regular object. An object can have a limited number of attached policies. + public let attachPolicy: BatchAttachPolicyResponse? + /// Creates an object in a Directory. + public let createObject: BatchCreateObjectResponse? + /// Attaches the specified object to the specified index. + public let attachToIndex: BatchAttachToIndexResponse? - public init(addFacetToObject: BatchAddFacetToObjectResponse? = nil, updateObjectAttributes: BatchUpdateObjectAttributesResponse? = nil, detachObject: BatchDetachObjectResponse? = nil, attachObject: BatchAttachObjectResponse? = nil, createObject: BatchCreateObjectResponse? = nil, deleteObject: BatchDeleteObjectResponse? = nil, removeFacetFromObject: BatchRemoveFacetFromObjectResponse? = nil) { + public init(addFacetToObject: BatchAddFacetToObjectResponse? = nil, detachObject: BatchDetachObjectResponse? = nil, attachTypedLink: BatchAttachTypedLinkResponse? = nil, attachObject: BatchAttachObjectResponse? = nil, detachTypedLink: BatchDetachTypedLinkResponse? = nil, createIndex: BatchCreateIndexResponse? = nil, deleteObject: BatchDeleteObjectResponse? = nil, updateObjectAttributes: BatchUpdateObjectAttributesResponse? = nil, removeFacetFromObject: BatchRemoveFacetFromObjectResponse? = nil, detachFromIndex: BatchDetachFromIndexResponse? = nil, detachPolicy: BatchDetachPolicyResponse? = nil, attachPolicy: BatchAttachPolicyResponse? = nil, createObject: BatchCreateObjectResponse? = nil, attachToIndex: BatchAttachToIndexResponse? = nil) { self.addFacetToObject = addFacetToObject - self.updateObjectAttributes = updateObjectAttributes self.detachObject = detachObject + self.attachTypedLink = attachTypedLink self.attachObject = attachObject - self.createObject = createObject + self.detachTypedLink = detachTypedLink + self.createIndex = createIndex self.deleteObject = deleteObject + self.updateObjectAttributes = updateObjectAttributes self.removeFacetFromObject = removeFacetFromObject + self.detachFromIndex = detachFromIndex + self.detachPolicy = detachPolicy + self.attachPolicy = attachPolicy + self.createObject = createObject + self.attachToIndex = attachToIndex } private enum CodingKeys: String, CodingKey { case addFacetToObject = "AddFacetToObject" - case updateObjectAttributes = "UpdateObjectAttributes" case detachObject = "DetachObject" + case attachTypedLink = "AttachTypedLink" case attachObject = "AttachObject" - case createObject = "CreateObject" + case detachTypedLink = "DetachTypedLink" + case createIndex = "CreateIndex" case deleteObject = "DeleteObject" + case updateObjectAttributes = "UpdateObjectAttributes" case removeFacetFromObject = "RemoveFacetFromObject" + case detachFromIndex = "DetachFromIndex" + case detachPolicy = "DetachPolicy" + case attachPolicy = "AttachPolicy" + case createObject = "CreateObject" + case attachToIndex = "AttachToIndex" } } @@ -477,7 +611,7 @@ extension Clouddirectory { } public struct ListOutgoingTypedLinksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "ConsistencyLevel", required: false, type: .enum), @@ -523,7 +657,7 @@ extension Clouddirectory { } public struct ApplySchemaRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PublishedSchemaArn", required: true, type: .string), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] @@ -543,8 +677,34 @@ extension Clouddirectory { } } + public struct BatchListObjectParentPaths: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ObjectReference", required: true, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The reference that identifies the object whose attributes will be listed. + public let objectReference: ObjectReference + /// The pagination token. + public let nextToken: String? + /// The maximum number of results to retrieve. + public let maxResults: Int32? + + public init(objectReference: ObjectReference, nextToken: String? = nil, maxResults: Int32? = nil) { + self.objectReference = objectReference + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case objectReference = "ObjectReference" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + public struct ListIndexRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IndexReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "ConsistencyLevel", location: .header(locationName: "x-amz-consistency-level"), required: false, type: .enum), @@ -585,7 +745,7 @@ extension Clouddirectory { } public struct ListTypedLinkFacetAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), @@ -616,7 +776,7 @@ extension Clouddirectory { } public struct TypedLinkFacetAttributeUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: true, type: .enum), AWSShapeMember(label: "Attribute", required: true, type: .structure) ] @@ -637,7 +797,7 @@ extension Clouddirectory { } public struct AttachToIndexRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetReference", required: true, type: .structure), AWSShapeMember(label: "IndexReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) @@ -662,8 +822,39 @@ extension Clouddirectory { } } + public struct BatchListIndex: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IndexReference", required: true, type: .structure), + AWSShapeMember(label: "RangesOnIndexedValues", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The reference to the index to list. + public let indexReference: ObjectReference + /// Specifies the ranges of indexed values that you want to query. + public let rangesOnIndexedValues: [ObjectAttributeRange]? + /// The pagination token. + public let nextToken: String? + /// The maximum number of results to retrieve. + public let maxResults: Int32? + + public init(indexReference: ObjectReference, rangesOnIndexedValues: [ObjectAttributeRange]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.indexReference = indexReference + self.rangesOnIndexedValues = rangesOnIndexedValues + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case indexReference = "IndexReference" + case rangesOnIndexedValues = "RangesOnIndexedValues" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + public struct DeleteTypedLinkFacetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] @@ -684,7 +875,7 @@ extension Clouddirectory { } public struct ListTypedLinkFacetAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Attributes", required: false, type: .list) ] @@ -704,8 +895,60 @@ extension Clouddirectory { } } + public struct BatchCreateIndex: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OrderedIndexedAttributeList", required: true, type: .list), + AWSShapeMember(label: "IsUnique", required: true, type: .boolean), + AWSShapeMember(label: "ParentReference", required: false, type: .structure), + AWSShapeMember(label: "BatchReferenceName", required: false, type: .string), + AWSShapeMember(label: "LinkName", required: false, type: .string) + ] + /// Specifies the attributes that should be indexed on. Currently only a single attribute is supported. + public let orderedIndexedAttributeList: [AttributeKey] + /// Indicates whether the attribute that is being indexed has unique values or not. + public let isUnique: Bool + /// A reference to the parent object that contains the index object. + public let parentReference: ObjectReference? + /// The batch reference name. See Batches for more information. + public let batchReferenceName: String? + /// The name of the link between the parent object and the index object. + public let linkName: String? + + public init(orderedIndexedAttributeList: [AttributeKey], isUnique: Bool, parentReference: ObjectReference? = nil, batchReferenceName: String? = nil, linkName: String? = nil) { + self.orderedIndexedAttributeList = orderedIndexedAttributeList + self.isUnique = isUnique + self.parentReference = parentReference + self.batchReferenceName = batchReferenceName + self.linkName = linkName + } + + private enum CodingKeys: String, CodingKey { + case orderedIndexedAttributeList = "OrderedIndexedAttributeList" + case isUnique = "IsUnique" + case parentReference = "ParentReference" + case batchReferenceName = "BatchReferenceName" + case linkName = "LinkName" + } + } + + public struct DeleteDirectoryRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) + ] + /// The ARN of the directory to delete. + public let directoryArn: String + + public init(directoryArn: String) { + self.directoryArn = directoryArn + } + + private enum CodingKeys: String, CodingKey { + case directoryArn = "x-amz-data-partition" + } + } + public struct BatchListObjectAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Attributes", required: false, type: .list) ] @@ -725,24 +968,44 @@ extension Clouddirectory { } } - public struct DeleteDirectoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) + public struct BatchListOutgoingTypedLinks: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FilterTypedLink", required: false, type: .structure), + AWSShapeMember(label: "MaxResults", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "FilterAttributeRanges", required: false, type: .list), + AWSShapeMember(label: "ObjectReference", required: true, type: .structure) ] - /// The ARN of the directory to delete. - public let directoryArn: String + /// Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls. + public let filterTypedLink: TypedLinkSchemaAndFacetName? + /// The maximum number of results to retrieve. + public let maxResults: Int32? + /// The pagination token. + public let nextToken: String? + /// Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. + public let filterAttributeRanges: [TypedLinkAttributeRange]? + /// The reference that identifies the object whose attributes will be listed. + public let objectReference: ObjectReference - public init(directoryArn: String) { - self.directoryArn = directoryArn + public init(filterTypedLink: TypedLinkSchemaAndFacetName? = nil, maxResults: Int32? = nil, nextToken: String? = nil, filterAttributeRanges: [TypedLinkAttributeRange]? = nil, objectReference: ObjectReference) { + self.filterTypedLink = filterTypedLink + self.maxResults = maxResults + self.nextToken = nextToken + self.filterAttributeRanges = filterAttributeRanges + self.objectReference = objectReference } private enum CodingKeys: String, CodingKey { - case directoryArn = "x-amz-data-partition" + case filterTypedLink = "FilterTypedLink" + case maxResults = "MaxResults" + case nextToken = "NextToken" + case filterAttributeRanges = "FilterAttributeRanges" + case objectReference = "ObjectReference" } } public struct DetachTypedLinkRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "TypedLinkSpecifier", required: true, type: .structure) ] @@ -767,7 +1030,7 @@ extension Clouddirectory { } public struct BatchWriteResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Responses", required: false, type: .list) ] /// A list of all the responses for each batch write. @@ -783,7 +1046,7 @@ extension Clouddirectory { } public struct DeleteDirectoryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryArn", required: true, type: .string) ] /// The ARN of the deleted directory. @@ -799,7 +1062,7 @@ extension Clouddirectory { } public struct AttachObjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParentReference", required: true, type: .structure), AWSShapeMember(label: "ChildReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), @@ -830,7 +1093,7 @@ extension Clouddirectory { } public struct GetObjectInformationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConsistencyLevel", location: .header(locationName: "x-amz-consistency-level"), required: false, type: .enum), AWSShapeMember(label: "ObjectReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) @@ -859,12 +1122,28 @@ extension Clouddirectory { } + public struct BatchAttachToIndexResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttachedObjectIdentifier", required: false, type: .string) + ] + /// The ObjectIdentifier of the object that was attached to the index. + public let attachedObjectIdentifier: String? + + public init(attachedObjectIdentifier: String? = nil) { + self.attachedObjectIdentifier = attachedObjectIdentifier + } + + private enum CodingKeys: String, CodingKey { + case attachedObjectIdentifier = "AttachedObjectIdentifier" + } + } + public struct DeleteTypedLinkFacetResponse: AWSShape { } public struct TypedLinkAttributeDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsImmutable", required: false, type: .boolean), AWSShapeMember(label: "Rules", required: false, type: .map), AWSShapeMember(label: "Type", required: true, type: .enum), @@ -905,7 +1184,7 @@ extension Clouddirectory { } public struct ListAttachedIndicesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "TargetReference", required: true, type: .structure), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -914,7 +1193,7 @@ extension Clouddirectory { ] /// The ARN of the directory. public let directoryArn: String - /// A reference to the object to that has indices attached. + /// A reference to the object that has indices attached. public let targetReference: ObjectReference /// The pagination token. public let nextToken: String? @@ -940,8 +1219,44 @@ extension Clouddirectory { } } + public struct BatchListIncomingTypedLinks: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FilterTypedLink", required: false, type: .structure), + AWSShapeMember(label: "MaxResults", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "FilterAttributeRanges", required: false, type: .list), + AWSShapeMember(label: "ObjectReference", required: true, type: .structure) + ] + /// Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. + public let filterTypedLink: TypedLinkSchemaAndFacetName? + /// The maximum number of results to retrieve. + public let maxResults: Int32? + /// The pagination token. + public let nextToken: String? + /// Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. + public let filterAttributeRanges: [TypedLinkAttributeRange]? + /// The reference that identifies the object whose attributes will be listed. + public let objectReference: ObjectReference + + public init(filterTypedLink: TypedLinkSchemaAndFacetName? = nil, maxResults: Int32? = nil, nextToken: String? = nil, filterAttributeRanges: [TypedLinkAttributeRange]? = nil, objectReference: ObjectReference) { + self.filterTypedLink = filterTypedLink + self.maxResults = maxResults + self.nextToken = nextToken + self.filterAttributeRanges = filterAttributeRanges + self.objectReference = objectReference + } + + private enum CodingKeys: String, CodingKey { + case filterTypedLink = "FilterTypedLink" + case maxResults = "MaxResults" + case nextToken = "NextToken" + case filterAttributeRanges = "FilterAttributeRanges" + case objectReference = "ObjectReference" + } + } + public struct CreateIndexResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectIdentifier", required: false, type: .string) ] /// The ObjectIdentifier of the index created by this operation. @@ -957,7 +1272,7 @@ extension Clouddirectory { } public struct TypedLinkAttributeRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Range", required: true, type: .structure), AWSShapeMember(label: "AttributeName", required: false, type: .string) ] @@ -978,7 +1293,7 @@ extension Clouddirectory { } public struct PolicyAttachment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyType", required: false, type: .string), AWSShapeMember(label: "ObjectIdentifier", required: false, type: .string), AWSShapeMember(label: "PolicyId", required: false, type: .string) @@ -1004,7 +1319,7 @@ extension Clouddirectory { } public struct ListAppliedSchemaArnsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaArns", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1025,7 +1340,7 @@ extension Clouddirectory { } public struct EnableDirectoryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryArn", required: true, type: .string) ] /// The ARN of the enabled directory. @@ -1041,7 +1356,7 @@ extension Clouddirectory { } public struct ListTagsForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -1067,7 +1382,7 @@ extension Clouddirectory { } public struct ListTagsForResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list) ] @@ -1088,7 +1403,7 @@ extension Clouddirectory { } public struct ListPolicyAttachmentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ObjectIdentifiers", required: false, type: .list) ] @@ -1109,7 +1424,7 @@ extension Clouddirectory { } public struct ListObjectParentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "ConsistencyLevel", location: .header(locationName: "x-amz-consistency-level"), required: false, type: .enum), @@ -1144,8 +1459,29 @@ extension Clouddirectory { } } + public struct BatchListIndexResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IndexAttachments", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The objects and indexed values attached to the index. + public let indexAttachments: [IndexAttachment]? + /// The pagination token. + public let nextToken: String? + + public init(indexAttachments: [IndexAttachment]? = nil, nextToken: String? = nil) { + self.indexAttachments = indexAttachments + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case indexAttachments = "IndexAttachments" + case nextToken = "NextToken" + } + } + public struct PutSchemaFromJsonRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Document", required: true, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] @@ -1166,7 +1502,7 @@ extension Clouddirectory { } public struct ListAppliedSchemaArnsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "DirectoryArn", required: true, type: .string) @@ -1192,7 +1528,7 @@ extension Clouddirectory { } public struct ObjectAttributeAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectAttributeActionType", required: false, type: .enum), AWSShapeMember(label: "ObjectAttributeUpdateValue", required: false, type: .structure) ] @@ -1212,8 +1548,24 @@ extension Clouddirectory { } } + public struct BatchGetObjectInformation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ObjectReference", required: true, type: .structure) + ] + /// A reference to the object. + public let objectReference: ObjectReference + + public init(objectReference: ObjectReference) { + self.objectReference = objectReference + } + + private enum CodingKeys: String, CodingKey { + case objectReference = "ObjectReference" + } + } + public struct DetachObjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LinkName", required: true, type: .string), AWSShapeMember(label: "ParentReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) @@ -1238,8 +1590,24 @@ extension Clouddirectory { } } + public struct AttachTypedLinkResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TypedLinkSpecifier", required: false, type: .structure) + ] + /// Returns a typed link specifier as output. + public let typedLinkSpecifier: TypedLinkSpecifier? + + public init(typedLinkSpecifier: TypedLinkSpecifier? = nil) { + self.typedLinkSpecifier = typedLinkSpecifier + } + + private enum CodingKeys: String, CodingKey { + case typedLinkSpecifier = "TypedLinkSpecifier" + } + } + public struct DetachPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyReference", required: true, type: .structure), AWSShapeMember(label: "ObjectReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) @@ -1264,24 +1632,50 @@ extension Clouddirectory { } } - public struct AttachTypedLinkResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TypedLinkSpecifier", required: false, type: .structure) + public struct ListOutgoingTypedLinksResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "TypedLinkSpecifiers", required: false, type: .list) ] + /// The pagination token. + public let nextToken: String? /// Returns a typed link specifier as output. - public let typedLinkSpecifier: TypedLinkSpecifier? + public let typedLinkSpecifiers: [TypedLinkSpecifier]? - public init(typedLinkSpecifier: TypedLinkSpecifier? = nil) { - self.typedLinkSpecifier = typedLinkSpecifier + public init(nextToken: String? = nil, typedLinkSpecifiers: [TypedLinkSpecifier]? = nil) { + self.nextToken = nextToken + self.typedLinkSpecifiers = typedLinkSpecifiers } private enum CodingKeys: String, CodingKey { - case typedLinkSpecifier = "TypedLinkSpecifier" + case nextToken = "NextToken" + case typedLinkSpecifiers = "TypedLinkSpecifiers" + } + } + + public struct BatchGetObjectInformationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SchemaFacets", required: false, type: .list), + AWSShapeMember(label: "ObjectIdentifier", required: false, type: .string) + ] + /// The facets attached to the specified object. + public let schemaFacets: [SchemaFacet]? + /// The ObjectIdentifier of the specified object. + public let objectIdentifier: String? + + public init(schemaFacets: [SchemaFacet]? = nil, objectIdentifier: String? = nil) { + self.schemaFacets = schemaFacets + self.objectIdentifier = objectIdentifier + } + + private enum CodingKeys: String, CodingKey { + case schemaFacets = "SchemaFacets" + case objectIdentifier = "ObjectIdentifier" } } public struct TypedLinkSpecifier: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetObjectReference", required: true, type: .structure), AWSShapeMember(label: "IdentityAttributeValues", required: true, type: .list), AWSShapeMember(label: "TypedLinkFacet", required: true, type: .structure), @@ -1311,8 +1705,8 @@ extension Clouddirectory { } } - public struct ListOutgoingTypedLinksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct BatchListOutgoingTypedLinksResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "TypedLinkSpecifiers", required: false, type: .list) ] @@ -1333,7 +1727,7 @@ extension Clouddirectory { } public struct SchemaFacet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaArn", required: false, type: .string), AWSShapeMember(label: "FacetName", required: false, type: .string) ] @@ -1354,7 +1748,7 @@ extension Clouddirectory { } public struct PublishSchemaRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DevelopmentSchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Version", required: true, type: .string) @@ -1380,7 +1774,7 @@ extension Clouddirectory { } public struct GetDirectoryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Directory", required: true, type: .structure) ] /// Metadata about the directory. @@ -1396,7 +1790,7 @@ extension Clouddirectory { } public struct BatchReadResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Responses", required: false, type: .list) ] /// A list of all the responses for each batch read. @@ -1412,7 +1806,7 @@ extension Clouddirectory { } public struct BatchDetachObjectResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "detachedObjectIdentifier", required: false, type: .string) ] /// The ObjectIdentifier of the detached object. @@ -1428,7 +1822,7 @@ extension Clouddirectory { } public struct FacetAttributeReference: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetAttributeName", required: true, type: .string), AWSShapeMember(label: "TargetFacetName", required: true, type: .string) ] @@ -1449,7 +1843,7 @@ extension Clouddirectory { } public struct BatchDeleteObject: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectReference", required: true, type: .structure) ] /// The reference that identifies the object. @@ -1464,8 +1858,34 @@ extension Clouddirectory { } } + public struct BatchLookupPolicy: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ObjectReference", required: true, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Reference that identifies the object whose policies will be looked up. + public let objectReference: ObjectReference + /// The pagination token. + public let nextToken: String? + /// The maximum number of results to retrieve. + public let maxResults: Int32? + + public init(objectReference: ObjectReference, nextToken: String? = nil, maxResults: Int32? = nil) { + self.objectReference = objectReference + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case objectReference = "ObjectReference" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + public struct CreateObjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaFacets", required: true, type: .list), AWSShapeMember(label: "ParentReference", required: false, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), @@ -1500,29 +1920,39 @@ extension Clouddirectory { } } - public struct TypedLinkSchemaAndFacetName: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TypedLinkName", required: true, type: .string), - AWSShapeMember(label: "SchemaArn", required: true, type: .string) + public struct BatchAttachTypedLink: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetObjectReference", required: true, type: .structure), + AWSShapeMember(label: "Attributes", required: true, type: .list), + AWSShapeMember(label: "TypedLinkFacet", required: true, type: .structure), + AWSShapeMember(label: "SourceObjectReference", required: true, type: .structure) ] - /// The unique name of the typed link facet. - public let typedLinkName: String - /// The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. - public let schemaArn: String + /// Identifies the target object that the typed link will attach to. + public let targetObjectReference: ObjectReference + /// A set of attributes that are associated with the typed link. + public let attributes: [AttributeNameAndValue] + /// Identifies the typed link facet that is associated with the typed link. + public let typedLinkFacet: TypedLinkSchemaAndFacetName + /// Identifies the source object that the typed link will attach to. + public let sourceObjectReference: ObjectReference - public init(typedLinkName: String, schemaArn: String) { - self.typedLinkName = typedLinkName - self.schemaArn = schemaArn + public init(targetObjectReference: ObjectReference, attributes: [AttributeNameAndValue], typedLinkFacet: TypedLinkSchemaAndFacetName, sourceObjectReference: ObjectReference) { + self.targetObjectReference = targetObjectReference + self.attributes = attributes + self.typedLinkFacet = typedLinkFacet + self.sourceObjectReference = sourceObjectReference } private enum CodingKeys: String, CodingKey { - case typedLinkName = "TypedLinkName" - case schemaArn = "SchemaArn" + case targetObjectReference = "TargetObjectReference" + case attributes = "Attributes" + case typedLinkFacet = "TypedLinkFacet" + case sourceObjectReference = "SourceObjectReference" } } public struct ApplySchemaResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AppliedSchemaArn", required: false, type: .string), AWSShapeMember(label: "DirectoryArn", required: false, type: .string) ] @@ -1542,12 +1972,33 @@ extension Clouddirectory { } } + public struct TypedLinkSchemaAndFacetName: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TypedLinkName", required: true, type: .string), + AWSShapeMember(label: "SchemaArn", required: true, type: .string) + ] + /// The unique name of the typed link facet. + public let typedLinkName: String + /// The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. + public let schemaArn: String + + public init(typedLinkName: String, schemaArn: String) { + self.typedLinkName = typedLinkName + self.schemaArn = schemaArn + } + + private enum CodingKeys: String, CodingKey { + case typedLinkName = "TypedLinkName" + case schemaArn = "SchemaArn" + } + } + public struct CreateFacetResponse: AWSShape { } public struct LookupPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -1577,8 +2028,29 @@ extension Clouddirectory { } } + public struct BatchAttachPolicy: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ObjectReference", required: true, type: .structure), + AWSShapeMember(label: "PolicyReference", required: true, type: .structure) + ] + /// The reference that identifies the object to which the policy will be attached. + public let objectReference: ObjectReference + /// The reference that is associated with the policy object. + public let policyReference: ObjectReference + + public init(objectReference: ObjectReference, policyReference: ObjectReference) { + self.objectReference = objectReference + self.policyReference = policyReference + } + + private enum CodingKeys: String, CodingKey { + case objectReference = "ObjectReference" + case policyReference = "PolicyReference" + } + } + public struct BatchReadOperationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExceptionResponse", required: false, type: .structure), AWSShapeMember(label: "SuccessfulResponse", required: false, type: .structure) ] @@ -1599,7 +2071,7 @@ extension Clouddirectory { } public struct ListAttachedIndicesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IndexAttachments", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1633,11 +2105,19 @@ extension Clouddirectory { case objectnotdetachedexception = "ObjectNotDetachedException" case resourcenotfoundexception = "ResourceNotFoundException" case accessdeniedexception = "AccessDeniedException" + case invalidattachmentexception = "InvalidAttachmentException" + case notindexexception = "NotIndexException" + case indexedattributemissingexception = "IndexedAttributeMissingException" + case objectalreadydetachedexception = "ObjectAlreadyDetachedException" + case notpolicyexception = "NotPolicyException" + case directorynotenabledexception = "DirectoryNotEnabledException" + case limitexceededexception = "LimitExceededException" + case unsupportedindextypeexception = "UnsupportedIndexTypeException" public var description: String { return self.rawValue } } public struct BatchAddFacetToObject: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaFacet", required: true, type: .structure), AWSShapeMember(label: "ObjectAttributeList", required: true, type: .list), AWSShapeMember(label: "ObjectReference", required: true, type: .structure) @@ -1663,7 +2143,7 @@ extension Clouddirectory { } public struct ListObjectAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Attributes", required: false, type: .list) ] @@ -1690,7 +2170,7 @@ extension Clouddirectory { } public struct BatchUpdateObjectAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeUpdates", required: true, type: .list), AWSShapeMember(label: "ObjectReference", required: true, type: .structure) ] @@ -1711,7 +2191,7 @@ extension Clouddirectory { } public struct CreateFacetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectType", required: true, type: .enum), AWSShapeMember(label: "Attributes", required: false, type: .list), AWSShapeMember(label: "Name", required: true, type: .string), @@ -1746,7 +2226,7 @@ extension Clouddirectory { } public struct ListFacetNamesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "FacetNames", required: false, type: .list) ] @@ -1767,7 +2247,7 @@ extension Clouddirectory { } public struct CreateDirectoryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryArn", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "ObjectIdentifier", required: true, type: .string), @@ -1806,7 +2286,7 @@ extension Clouddirectory { } public struct BatchCreateObject: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParentReference", required: true, type: .structure), AWSShapeMember(label: "SchemaFacet", required: true, type: .list), AWSShapeMember(label: "BatchReferenceName", required: true, type: .string), @@ -1824,25 +2304,46 @@ extension Clouddirectory { /// The name of the link. public let linkName: String - public init(parentReference: ObjectReference, schemaFacet: [SchemaFacet], batchReferenceName: String, objectAttributeList: [AttributeKeyAndValue], linkName: String) { - self.parentReference = parentReference - self.schemaFacet = schemaFacet - self.batchReferenceName = batchReferenceName - self.objectAttributeList = objectAttributeList - self.linkName = linkName + public init(parentReference: ObjectReference, schemaFacet: [SchemaFacet], batchReferenceName: String, objectAttributeList: [AttributeKeyAndValue], linkName: String) { + self.parentReference = parentReference + self.schemaFacet = schemaFacet + self.batchReferenceName = batchReferenceName + self.objectAttributeList = objectAttributeList + self.linkName = linkName + } + + private enum CodingKeys: String, CodingKey { + case parentReference = "ParentReference" + case schemaFacet = "SchemaFacet" + case batchReferenceName = "BatchReferenceName" + case objectAttributeList = "ObjectAttributeList" + case linkName = "LinkName" + } + } + + public struct BatchAttachToIndex: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetReference", required: true, type: .structure), + AWSShapeMember(label: "IndexReference", required: true, type: .structure) + ] + /// A reference to the object that you are attaching to the index. + public let targetReference: ObjectReference + /// A reference to the index that you are attaching the object to. + public let indexReference: ObjectReference + + public init(targetReference: ObjectReference, indexReference: ObjectReference) { + self.targetReference = targetReference + self.indexReference = indexReference } private enum CodingKeys: String, CodingKey { - case parentReference = "ParentReference" - case schemaFacet = "SchemaFacet" - case batchReferenceName = "BatchReferenceName" - case objectAttributeList = "ObjectAttributeList" - case linkName = "LinkName" + case targetReference = "TargetReference" + case indexReference = "IndexReference" } } public struct UntagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -1863,7 +2364,7 @@ extension Clouddirectory { } public struct ListDirectoriesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Directories", required: true, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1884,7 +2385,7 @@ extension Clouddirectory { } public struct AttachTypedLinkRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetObjectReference", required: true, type: .structure), AWSShapeMember(label: "Attributes", required: true, type: .list), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), @@ -1920,7 +2421,7 @@ extension Clouddirectory { } public struct BatchListObjectChildrenResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Children", required: false, type: .map) ] @@ -1941,7 +2442,7 @@ extension Clouddirectory { } public struct ListObjectPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "ConsistencyLevel", location: .header(locationName: "x-amz-consistency-level"), required: false, type: .enum), @@ -1977,7 +2478,7 @@ extension Clouddirectory { } public struct DisableDirectoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] /// The ARN of the directory to disable. @@ -1993,7 +2494,7 @@ extension Clouddirectory { } public struct DetachFromIndexResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DetachedObjectIdentifier", required: false, type: .string) ] /// The ObjectIdentifier of the object that was detached from the index. @@ -2013,7 +2514,7 @@ extension Clouddirectory { } public struct BatchListObjectAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FacetFilter", required: false, type: .structure), AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -2044,7 +2545,7 @@ extension Clouddirectory { } public struct AttachObjectResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttachedObjectIdentifier", required: false, type: .string) ] /// The attached ObjectIdentifier, which is the child ObjectIdentifier. @@ -2060,7 +2561,7 @@ extension Clouddirectory { } public struct ListObjectParentPathsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -2091,7 +2592,7 @@ extension Clouddirectory { } public struct CreateDirectoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] @@ -2112,7 +2613,7 @@ extension Clouddirectory { } public struct GetSchemaAsJsonRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] /// The ARN of the schema to retrieve. @@ -2128,7 +2629,7 @@ extension Clouddirectory { } public struct UpdateFacetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectType", required: false, type: .enum), AWSShapeMember(label: "AttributeUpdates", required: false, type: .list), AWSShapeMember(label: "Name", required: true, type: .string), @@ -2159,7 +2660,7 @@ extension Clouddirectory { } public struct ListTypedLinkFacetNamesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -2184,8 +2685,29 @@ extension Clouddirectory { } } + public struct BatchDetachPolicy: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ObjectReference", required: true, type: .structure), + AWSShapeMember(label: "PolicyReference", required: true, type: .structure) + ] + /// Reference that identifies the object whose policy object will be detached. + public let objectReference: ObjectReference + /// Reference that identifies the policy object. + public let policyReference: ObjectReference + + public init(objectReference: ObjectReference, policyReference: ObjectReference) { + self.objectReference = objectReference + self.policyReference = policyReference + } + + private enum CodingKeys: String, CodingKey { + case objectReference = "ObjectReference" + case policyReference = "PolicyReference" + } + } + public struct DisableDirectoryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryArn", required: true, type: .string) ] /// The ARN of the directory that has been disabled. @@ -2201,7 +2723,7 @@ extension Clouddirectory { } public struct AttachPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyReference", required: true, type: .structure), AWSShapeMember(label: "ObjectReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: false, type: .string) @@ -2234,7 +2756,7 @@ extension Clouddirectory { } public struct ListDevelopmentSchemaArnsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaArns", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2255,7 +2777,7 @@ extension Clouddirectory { } public struct BatchWriteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Operations", required: true, type: .list), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] @@ -2276,7 +2798,7 @@ extension Clouddirectory { } public struct ListTypedLinkFacetNamesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "FacetNames", required: false, type: .list) ] @@ -2303,7 +2825,7 @@ extension Clouddirectory { } public struct BatchCreateObjectResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectIdentifier", required: false, type: .string) ] /// The ID that is associated with the object. @@ -2318,8 +2840,34 @@ extension Clouddirectory { } } + public struct BatchListPolicyAttachments: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxResults", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "PolicyReference", required: true, type: .structure) + ] + /// The maximum number of results to retrieve. + public let maxResults: Int32? + /// The pagination token. + public let nextToken: String? + /// The reference that identifies the policy object. + public let policyReference: ObjectReference + + public init(maxResults: Int32? = nil, nextToken: String? = nil, policyReference: ObjectReference) { + self.maxResults = maxResults + self.nextToken = nextToken + self.policyReference = policyReference + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "MaxResults" + case nextToken = "NextToken" + case policyReference = "PolicyReference" + } + } + public struct BatchUpdateObjectAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectIdentifier", required: false, type: .string) ] /// ID that is associated with the object. @@ -2335,7 +2883,7 @@ extension Clouddirectory { } public struct BatchReadRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConsistencyLevel", location: .header(locationName: "x-amz-consistency-level"), required: false, type: .enum), AWSShapeMember(label: "Operations", required: true, type: .list), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) @@ -2361,7 +2909,7 @@ extension Clouddirectory { } public struct ListPublishedSchemaArnsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaArns", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2382,28 +2930,73 @@ extension Clouddirectory { } public struct BatchReadSuccessfulResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ListObjectPolicies", required: false, type: .structure), + AWSShapeMember(label: "ListObjectAttributes", required: false, type: .structure), + AWSShapeMember(label: "ListIncomingTypedLinks", required: false, type: .structure), + AWSShapeMember(label: "GetObjectInformation", required: false, type: .structure), + AWSShapeMember(label: "ListOutgoingTypedLinks", required: false, type: .structure), AWSShapeMember(label: "ListObjectChildren", required: false, type: .structure), - AWSShapeMember(label: "ListObjectAttributes", required: false, type: .structure) - ] - /// Returns a paginated list of child objects that are associated with a given object. - public let listObjectChildren: BatchListObjectChildrenResponse? + AWSShapeMember(label: "ListIndex", required: false, type: .structure), + AWSShapeMember(label: "ListObjectParentPaths", required: false, type: .structure), + AWSShapeMember(label: "ListPolicyAttachments", required: false, type: .structure), + AWSShapeMember(label: "LookupPolicy", required: false, type: .structure), + AWSShapeMember(label: "ListAttachedIndices", required: false, type: .structure) + ] + /// Returns policies attached to an object in pagination fashion. + public let listObjectPolicies: BatchListObjectPoliciesResponse? /// Lists all attributes that are associated with an object. public let listObjectAttributes: BatchListObjectAttributesResponse? - - public init(listObjectChildren: BatchListObjectChildrenResponse? = nil, listObjectAttributes: BatchListObjectAttributesResponse? = nil) { - self.listObjectChildren = listObjectChildren + /// Returns a paginated list of all the incoming TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed link. + public let listIncomingTypedLinks: BatchListIncomingTypedLinksResponse? + /// Retrieves metadata about an object. + public let getObjectInformation: BatchGetObjectInformationResponse? + /// Returns a paginated list of all the outgoing TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed link. + public let listOutgoingTypedLinks: BatchListOutgoingTypedLinksResponse? + /// Returns a paginated list of child objects that are associated with a given object. + public let listObjectChildren: BatchListObjectChildrenResponse? + /// Lists objects attached to the specified index. + public let listIndex: BatchListIndexResponse? + /// Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see Directory Structure. + public let listObjectParentPaths: BatchListObjectParentPathsResponse? + /// Returns all of the ObjectIdentifiers to which a given policy is attached. + public let listPolicyAttachments: BatchListPolicyAttachmentsResponse? + /// Lists all policies from the root of the Directory to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the ObjectIdentifier for such objects. If policies are present, it returns ObjectIdentifier, policyId, and policyType. Paths that don't lead to the root from the target object are ignored. For more information, see Policies. + public let lookupPolicy: BatchLookupPolicyResponse? + /// Lists indices attached to an object. + public let listAttachedIndices: BatchListAttachedIndicesResponse? + + public init(listObjectPolicies: BatchListObjectPoliciesResponse? = nil, listObjectAttributes: BatchListObjectAttributesResponse? = nil, listIncomingTypedLinks: BatchListIncomingTypedLinksResponse? = nil, getObjectInformation: BatchGetObjectInformationResponse? = nil, listOutgoingTypedLinks: BatchListOutgoingTypedLinksResponse? = nil, listObjectChildren: BatchListObjectChildrenResponse? = nil, listIndex: BatchListIndexResponse? = nil, listObjectParentPaths: BatchListObjectParentPathsResponse? = nil, listPolicyAttachments: BatchListPolicyAttachmentsResponse? = nil, lookupPolicy: BatchLookupPolicyResponse? = nil, listAttachedIndices: BatchListAttachedIndicesResponse? = nil) { + self.listObjectPolicies = listObjectPolicies self.listObjectAttributes = listObjectAttributes + self.listIncomingTypedLinks = listIncomingTypedLinks + self.getObjectInformation = getObjectInformation + self.listOutgoingTypedLinks = listOutgoingTypedLinks + self.listObjectChildren = listObjectChildren + self.listIndex = listIndex + self.listObjectParentPaths = listObjectParentPaths + self.listPolicyAttachments = listPolicyAttachments + self.lookupPolicy = lookupPolicy + self.listAttachedIndices = listAttachedIndices } private enum CodingKeys: String, CodingKey { - case listObjectChildren = "ListObjectChildren" + case listObjectPolicies = "ListObjectPolicies" case listObjectAttributes = "ListObjectAttributes" + case listIncomingTypedLinks = "ListIncomingTypedLinks" + case getObjectInformation = "GetObjectInformation" + case listOutgoingTypedLinks = "ListOutgoingTypedLinks" + case listObjectChildren = "ListObjectChildren" + case listIndex = "ListIndex" + case listObjectParentPaths = "ListObjectParentPaths" + case listPolicyAttachments = "ListPolicyAttachments" + case lookupPolicy = "LookupPolicy" + case listAttachedIndices = "ListAttachedIndices" } } public struct TypedAttributeValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StringValue", required: false, type: .string), AWSShapeMember(label: "BinaryValue", required: false, type: .blob), AWSShapeMember(label: "BooleanValue", required: false, type: .boolean), @@ -2439,7 +3032,7 @@ extension Clouddirectory { } public struct ListObjectParentPathsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "PathToObjectIdentifiersList", required: false, type: .list) ] @@ -2460,7 +3053,7 @@ extension Clouddirectory { } public struct AttributeKey: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SchemaArn", required: true, type: .string), AWSShapeMember(label: "FacetName", required: true, type: .string) @@ -2486,7 +3079,7 @@ extension Clouddirectory { } public struct PathToObjectIdentifiers: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectIdentifiers", required: false, type: .list), AWSShapeMember(label: "Path", required: false, type: .string) ] @@ -2507,7 +3100,7 @@ extension Clouddirectory { } public struct AttributeNameAndValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: true, type: .string), AWSShapeMember(label: "Value", required: true, type: .structure) ] @@ -2528,7 +3121,7 @@ extension Clouddirectory { } public struct BatchDetachObject: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BatchReferenceName", required: true, type: .string), AWSShapeMember(label: "ParentReference", required: true, type: .structure), AWSShapeMember(label: "LinkName", required: true, type: .string) @@ -2554,7 +3147,7 @@ extension Clouddirectory { } public struct GetFacetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] @@ -2575,7 +3168,7 @@ extension Clouddirectory { } public struct UpdateSchemaRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] @@ -2596,7 +3189,7 @@ extension Clouddirectory { } public struct IndexAttachment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IndexedAttributes", required: false, type: .list), AWSShapeMember(label: "ObjectIdentifier", required: false, type: .string) ] @@ -2617,7 +3210,7 @@ extension Clouddirectory { } public struct ObjectAttributeUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectAttributeKey", required: false, type: .structure), AWSShapeMember(label: "ObjectAttributeAction", required: false, type: .structure) ] @@ -2638,7 +3231,7 @@ extension Clouddirectory { } public struct CreateIndexRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrderedIndexedAttributeList", required: true, type: .list), AWSShapeMember(label: "IsUnique", required: true, type: .boolean), AWSShapeMember(label: "ParentReference", required: false, type: .structure), @@ -2674,7 +3267,7 @@ extension Clouddirectory { } public struct Facet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectType", required: false, type: .enum), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -2694,6 +3287,27 @@ extension Clouddirectory { } } + public struct BatchListAttachedIndicesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IndexAttachments", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The indices attached to the specified object. + public let indexAttachments: [IndexAttachment]? + /// The pagination token. + public let nextToken: String? + + public init(indexAttachments: [IndexAttachment]? = nil, nextToken: String? = nil) { + self.indexAttachments = indexAttachments + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case indexAttachments = "IndexAttachments" + case nextToken = "NextToken" + } + } + public enum FacetAttributeType: String, CustomStringConvertible, Codable { case string = "STRING" case binary = "BINARY" @@ -2704,7 +3318,7 @@ extension Clouddirectory { } public struct ListDirectoriesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: false, type: .enum), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -2730,7 +3344,7 @@ extension Clouddirectory { } public struct FacetAttributeDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsImmutable", required: false, type: .boolean), AWSShapeMember(label: "Rules", required: false, type: .map), AWSShapeMember(label: "Type", required: true, type: .enum), @@ -2765,7 +3379,7 @@ extension Clouddirectory { } public struct ListObjectAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "FacetFilter", required: false, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), @@ -2806,7 +3420,7 @@ extension Clouddirectory { } public struct PublishSchemaResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PublishedSchemaArn", required: false, type: .string) ] /// The ARN that is associated with the published schema. For more information, see arns. @@ -2822,7 +3436,7 @@ extension Clouddirectory { } public struct CreateTypedLinkFacetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Facet", required: true, type: .structure), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] @@ -2843,7 +3457,7 @@ extension Clouddirectory { } public struct CreateObjectResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectIdentifier", required: false, type: .string) ] /// The identifier that is associated with the object. @@ -2859,7 +3473,7 @@ extension Clouddirectory { } public struct ListIncomingTypedLinksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LinkSpecifiers", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2880,7 +3494,7 @@ extension Clouddirectory { } public struct DeleteSchemaRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the development schema. For more information, see arns. @@ -2896,7 +3510,7 @@ extension Clouddirectory { } public struct GetObjectInformationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaFacets", required: false, type: .list), AWSShapeMember(label: "ObjectIdentifier", required: false, type: .string) ] @@ -2916,8 +3530,45 @@ extension Clouddirectory { } } + public struct BatchDetachTypedLink: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TypedLinkSpecifier", required: true, type: .structure) + ] + /// Used to accept a typed link specifier as input. + public let typedLinkSpecifier: TypedLinkSpecifier + + public init(typedLinkSpecifier: TypedLinkSpecifier) { + self.typedLinkSpecifier = typedLinkSpecifier + } + + private enum CodingKeys: String, CodingKey { + case typedLinkSpecifier = "TypedLinkSpecifier" + } + } + + public struct BatchDetachFromIndex: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetReference", required: true, type: .structure), + AWSShapeMember(label: "IndexReference", required: true, type: .structure) + ] + /// A reference to the object being detached from the index. + public let targetReference: ObjectReference + /// A reference to the index object. + public let indexReference: ObjectReference + + public init(targetReference: ObjectReference, indexReference: ObjectReference) { + self.targetReference = targetReference + self.indexReference = indexReference + } + + private enum CodingKeys: String, CodingKey { + case targetReference = "TargetReference" + case indexReference = "IndexReference" + } + } + public struct ListIncomingTypedLinksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "ConsistencyLevel", required: false, type: .enum), @@ -2966,8 +3617,24 @@ extension Clouddirectory { } + public struct BatchAttachTypedLinkResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TypedLinkSpecifier", required: false, type: .structure) + ] + /// Returns a typed link specifier as output. + public let typedLinkSpecifier: TypedLinkSpecifier? + + public init(typedLinkSpecifier: TypedLinkSpecifier? = nil) { + self.typedLinkSpecifier = typedLinkSpecifier + } + + private enum CodingKeys: String, CodingKey { + case typedLinkSpecifier = "TypedLinkSpecifier" + } + } + public struct ListIndexResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IndexAttachments", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2987,8 +3654,29 @@ extension Clouddirectory { } } + public struct BatchLookupPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyToPathList", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier, and PolicyType. For more information, see Policies. + public let policyToPathList: [PolicyToPath]? + /// The pagination token. + public let nextToken: String? + + public init(policyToPathList: [PolicyToPath]? = nil, nextToken: String? = nil) { + self.policyToPathList = policyToPathList + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case policyToPathList = "PolicyToPathList" + case nextToken = "NextToken" + } + } + public struct UpdateObjectAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectReference", required: true, type: .structure), AWSShapeMember(label: "AttributeUpdates", required: true, type: .list), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) @@ -3014,53 +3702,88 @@ extension Clouddirectory { } public struct BatchWriteOperation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AddFacetToObject", required: false, type: .structure), - AWSShapeMember(label: "UpdateObjectAttributes", required: false, type: .structure), AWSShapeMember(label: "DetachObject", required: false, type: .structure), + AWSShapeMember(label: "AttachTypedLink", required: false, type: .structure), AWSShapeMember(label: "AttachObject", required: false, type: .structure), - AWSShapeMember(label: "CreateObject", required: false, type: .structure), + AWSShapeMember(label: "DetachTypedLink", required: false, type: .structure), + AWSShapeMember(label: "CreateIndex", required: false, type: .structure), AWSShapeMember(label: "DeleteObject", required: false, type: .structure), - AWSShapeMember(label: "RemoveFacetFromObject", required: false, type: .structure) + AWSShapeMember(label: "UpdateObjectAttributes", required: false, type: .structure), + AWSShapeMember(label: "RemoveFacetFromObject", required: false, type: .structure), + AWSShapeMember(label: "DetachFromIndex", required: false, type: .structure), + AWSShapeMember(label: "DetachPolicy", required: false, type: .structure), + AWSShapeMember(label: "AttachPolicy", required: false, type: .structure), + AWSShapeMember(label: "CreateObject", required: false, type: .structure), + AWSShapeMember(label: "AttachToIndex", required: false, type: .structure) ] /// A batch operation that adds a facet to an object. public let addFacetToObject: BatchAddFacetToObject? - /// Updates a given object's attributes. - public let updateObjectAttributes: BatchUpdateObjectAttributes? /// Detaches an object from a Directory. public let detachObject: BatchDetachObject? + /// Attaches a typed link to a specified source and target object. For more information, see Typed link. + public let attachTypedLink: BatchAttachTypedLink? /// Attaches an object to a Directory. public let attachObject: BatchAttachObject? - /// Creates an object. - public let createObject: BatchCreateObject? + /// Detaches a typed link from a specified source and target object. For more information, see Typed link. + public let detachTypedLink: BatchDetachTypedLink? + /// Creates an index object. See Indexing for more information. + public let createIndex: BatchCreateIndex? /// Deletes an object in a Directory. public let deleteObject: BatchDeleteObject? + /// Updates a given object's attributes. + public let updateObjectAttributes: BatchUpdateObjectAttributes? /// A batch operation that removes a facet from an object. public let removeFacetFromObject: BatchRemoveFacetFromObject? + /// Detaches the specified object from the specified index. + public let detachFromIndex: BatchDetachFromIndex? + /// Detaches a policy from a Directory. + public let detachPolicy: BatchDetachPolicy? + /// Attaches a policy object to a regular object. An object can have a limited number of attached policies. + public let attachPolicy: BatchAttachPolicy? + /// Creates an object. + public let createObject: BatchCreateObject? + /// Attaches the specified object to the specified index. + public let attachToIndex: BatchAttachToIndex? - public init(addFacetToObject: BatchAddFacetToObject? = nil, updateObjectAttributes: BatchUpdateObjectAttributes? = nil, detachObject: BatchDetachObject? = nil, attachObject: BatchAttachObject? = nil, createObject: BatchCreateObject? = nil, deleteObject: BatchDeleteObject? = nil, removeFacetFromObject: BatchRemoveFacetFromObject? = nil) { + public init(addFacetToObject: BatchAddFacetToObject? = nil, detachObject: BatchDetachObject? = nil, attachTypedLink: BatchAttachTypedLink? = nil, attachObject: BatchAttachObject? = nil, detachTypedLink: BatchDetachTypedLink? = nil, createIndex: BatchCreateIndex? = nil, deleteObject: BatchDeleteObject? = nil, updateObjectAttributes: BatchUpdateObjectAttributes? = nil, removeFacetFromObject: BatchRemoveFacetFromObject? = nil, detachFromIndex: BatchDetachFromIndex? = nil, detachPolicy: BatchDetachPolicy? = nil, attachPolicy: BatchAttachPolicy? = nil, createObject: BatchCreateObject? = nil, attachToIndex: BatchAttachToIndex? = nil) { self.addFacetToObject = addFacetToObject - self.updateObjectAttributes = updateObjectAttributes self.detachObject = detachObject + self.attachTypedLink = attachTypedLink self.attachObject = attachObject - self.createObject = createObject + self.detachTypedLink = detachTypedLink + self.createIndex = createIndex self.deleteObject = deleteObject + self.updateObjectAttributes = updateObjectAttributes self.removeFacetFromObject = removeFacetFromObject + self.detachFromIndex = detachFromIndex + self.detachPolicy = detachPolicy + self.attachPolicy = attachPolicy + self.createObject = createObject + self.attachToIndex = attachToIndex } private enum CodingKeys: String, CodingKey { case addFacetToObject = "AddFacetToObject" - case updateObjectAttributes = "UpdateObjectAttributes" case detachObject = "DetachObject" + case attachTypedLink = "AttachTypedLink" case attachObject = "AttachObject" - case createObject = "CreateObject" + case detachTypedLink = "DetachTypedLink" + case createIndex = "CreateIndex" case deleteObject = "DeleteObject" + case updateObjectAttributes = "UpdateObjectAttributes" case removeFacetFromObject = "RemoveFacetFromObject" + case detachFromIndex = "DetachFromIndex" + case detachPolicy = "DetachPolicy" + case attachPolicy = "AttachPolicy" + case createObject = "CreateObject" + case attachToIndex = "AttachToIndex" } } public struct DeleteSchemaResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaArn", required: false, type: .string) ] /// The input ARN that is returned as part of the response. For more information, see arns. @@ -3076,7 +3799,7 @@ extension Clouddirectory { } public struct ListObjectChildrenRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "ConsistencyLevel", location: .header(locationName: "x-amz-consistency-level"), required: false, type: .enum), @@ -3112,7 +3835,7 @@ extension Clouddirectory { } public struct ListPublishedSchemaArnsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -3133,7 +3856,7 @@ extension Clouddirectory { } public struct GetTypedLinkFacetInformationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] @@ -3154,7 +3877,7 @@ extension Clouddirectory { } public struct CreateSchemaRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// The name that is associated with the schema. This is unique to each account and in each region. @@ -3170,7 +3893,7 @@ extension Clouddirectory { } public struct GetFacetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Facet", required: false, type: .structure) ] /// The Facet structure that is associated with the facet. @@ -3186,7 +3909,7 @@ extension Clouddirectory { } public struct ListObjectPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttachedPolicyIds", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -3207,7 +3930,7 @@ extension Clouddirectory { } public struct PutSchemaFromJsonResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string) ] /// The ARN of the schema to update. @@ -3223,7 +3946,7 @@ extension Clouddirectory { } public struct BatchAttachObject: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChildReference", required: true, type: .structure), AWSShapeMember(label: "ParentReference", required: true, type: .structure), AWSShapeMember(label: "LinkName", required: true, type: .string) @@ -3249,7 +3972,7 @@ extension Clouddirectory { } public struct DetachObjectResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DetachedObjectIdentifier", required: false, type: .string) ] /// The ObjectIdentifier that was detached from the object. @@ -3265,7 +3988,7 @@ extension Clouddirectory { } public struct AttributeKeyAndValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .structure), AWSShapeMember(label: "Key", required: true, type: .structure) ] @@ -3286,7 +4009,7 @@ extension Clouddirectory { } public struct EnableDirectoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] /// The ARN of the directory to enable. @@ -3301,8 +4024,34 @@ extension Clouddirectory { } } + public struct BatchListObjectPolicies: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ObjectReference", required: true, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The reference that identifies the object whose attributes will be listed. + public let objectReference: ObjectReference + /// The pagination token. + public let nextToken: String? + /// The maximum number of results to retrieve. + public let maxResults: Int32? + + public init(objectReference: ObjectReference, nextToken: String? = nil, maxResults: Int32? = nil) { + self.objectReference = objectReference + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case objectReference = "ObjectReference" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + public struct ListFacetAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Attributes", required: false, type: .list) ] @@ -3323,28 +4072,73 @@ extension Clouddirectory { } public struct BatchReadOperation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ListObjectPolicies", required: false, type: .structure), + AWSShapeMember(label: "ListObjectAttributes", required: false, type: .structure), + AWSShapeMember(label: "ListIncomingTypedLinks", required: false, type: .structure), + AWSShapeMember(label: "GetObjectInformation", required: false, type: .structure), + AWSShapeMember(label: "ListOutgoingTypedLinks", required: false, type: .structure), AWSShapeMember(label: "ListObjectChildren", required: false, type: .structure), - AWSShapeMember(label: "ListObjectAttributes", required: false, type: .structure) - ] - /// Returns a paginated list of child objects that are associated with a given object. - public let listObjectChildren: BatchListObjectChildren? + AWSShapeMember(label: "ListIndex", required: false, type: .structure), + AWSShapeMember(label: "ListObjectParentPaths", required: false, type: .structure), + AWSShapeMember(label: "ListPolicyAttachments", required: false, type: .structure), + AWSShapeMember(label: "LookupPolicy", required: false, type: .structure), + AWSShapeMember(label: "ListAttachedIndices", required: false, type: .structure) + ] + /// Returns policies attached to an object in pagination fashion. + public let listObjectPolicies: BatchListObjectPolicies? /// Lists all attributes that are associated with an object. public let listObjectAttributes: BatchListObjectAttributes? - - public init(listObjectChildren: BatchListObjectChildren? = nil, listObjectAttributes: BatchListObjectAttributes? = nil) { - self.listObjectChildren = listObjectChildren + /// Returns a paginated list of all the incoming TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed link. + public let listIncomingTypedLinks: BatchListIncomingTypedLinks? + /// Retrieves metadata about an object. + public let getObjectInformation: BatchGetObjectInformation? + /// Returns a paginated list of all the outgoing TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed link. + public let listOutgoingTypedLinks: BatchListOutgoingTypedLinks? + /// Returns a paginated list of child objects that are associated with a given object. + public let listObjectChildren: BatchListObjectChildren? + /// Lists objects attached to the specified index. + public let listIndex: BatchListIndex? + /// Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see Directory Structure. + public let listObjectParentPaths: BatchListObjectParentPaths? + /// Returns all of the ObjectIdentifiers to which a given policy is attached. + public let listPolicyAttachments: BatchListPolicyAttachments? + /// Lists all policies from the root of the Directory to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the ObjectIdentifier for such objects. If policies are present, it returns ObjectIdentifier, policyId, and policyType. Paths that don't lead to the root from the target object are ignored. For more information, see Policies. + public let lookupPolicy: BatchLookupPolicy? + /// Lists indices attached to an object. + public let listAttachedIndices: BatchListAttachedIndices? + + public init(listObjectPolicies: BatchListObjectPolicies? = nil, listObjectAttributes: BatchListObjectAttributes? = nil, listIncomingTypedLinks: BatchListIncomingTypedLinks? = nil, getObjectInformation: BatchGetObjectInformation? = nil, listOutgoingTypedLinks: BatchListOutgoingTypedLinks? = nil, listObjectChildren: BatchListObjectChildren? = nil, listIndex: BatchListIndex? = nil, listObjectParentPaths: BatchListObjectParentPaths? = nil, listPolicyAttachments: BatchListPolicyAttachments? = nil, lookupPolicy: BatchLookupPolicy? = nil, listAttachedIndices: BatchListAttachedIndices? = nil) { + self.listObjectPolicies = listObjectPolicies self.listObjectAttributes = listObjectAttributes + self.listIncomingTypedLinks = listIncomingTypedLinks + self.getObjectInformation = getObjectInformation + self.listOutgoingTypedLinks = listOutgoingTypedLinks + self.listObjectChildren = listObjectChildren + self.listIndex = listIndex + self.listObjectParentPaths = listObjectParentPaths + self.listPolicyAttachments = listPolicyAttachments + self.lookupPolicy = lookupPolicy + self.listAttachedIndices = listAttachedIndices } private enum CodingKeys: String, CodingKey { - case listObjectChildren = "ListObjectChildren" + case listObjectPolicies = "ListObjectPolicies" case listObjectAttributes = "ListObjectAttributes" + case listIncomingTypedLinks = "ListIncomingTypedLinks" + case getObjectInformation = "GetObjectInformation" + case listOutgoingTypedLinks = "ListOutgoingTypedLinks" + case listObjectChildren = "ListObjectChildren" + case listIndex = "ListIndex" + case listObjectParentPaths = "ListObjectParentPaths" + case listPolicyAttachments = "ListPolicyAttachments" + case lookupPolicy = "LookupPolicy" + case listAttachedIndices = "ListAttachedIndices" } } public struct ListFacetAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), @@ -3374,8 +4168,45 @@ extension Clouddirectory { } } + public struct BatchCreateIndexResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ObjectIdentifier", required: false, type: .string) + ] + /// The ObjectIdentifier of the index created by this operation. + public let objectIdentifier: String? + + public init(objectIdentifier: String? = nil) { + self.objectIdentifier = objectIdentifier + } + + private enum CodingKeys: String, CodingKey { + case objectIdentifier = "ObjectIdentifier" + } + } + + public struct BatchListObjectParentPathsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "PathToObjectIdentifiersList", required: false, type: .list) + ] + /// The pagination token. + public let nextToken: String? + /// Returns the path to the ObjectIdentifiers that are associated with the directory. + public let pathToObjectIdentifiersList: [PathToObjectIdentifiers]? + + public init(nextToken: String? = nil, pathToObjectIdentifiersList: [PathToObjectIdentifiers]? = nil) { + self.nextToken = nextToken + self.pathToObjectIdentifiersList = pathToObjectIdentifiersList + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case pathToObjectIdentifiersList = "PathToObjectIdentifiersList" + } + } + public struct BatchReadException: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Message", required: false, type: .string) ] @@ -3402,7 +4233,7 @@ extension Clouddirectory { } public struct DeleteObjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] @@ -3423,7 +4254,7 @@ extension Clouddirectory { } public struct BatchListObjectChildren: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectReference", required: true, type: .structure), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -3453,7 +4284,7 @@ extension Clouddirectory { } public struct PolicyToPath: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policies", required: false, type: .list), AWSShapeMember(label: "Path", required: false, type: .string) ] @@ -3474,7 +4305,7 @@ extension Clouddirectory { } public struct ObjectReference: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Selector", required: false, type: .string) ] /// A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see Accessing Objects. You can identify an object in one of the following ways: $ObjectIdentifier - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier /some/path - Identifies the object based on path #SomeBatchReference - Identifies the object in a batch call @@ -3490,7 +4321,7 @@ extension Clouddirectory { } public struct UpdateTypedLinkFacetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeUpdates", required: true, type: .list), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), @@ -3525,7 +4356,7 @@ extension Clouddirectory { } public struct AttachToIndexResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttachedObjectIdentifier", required: false, type: .string) ] /// The ObjectIdentifier of the object that was attached to the index. @@ -3541,7 +4372,7 @@ extension Clouddirectory { } public struct DetachFromIndexRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetReference", required: true, type: .structure), AWSShapeMember(label: "IndexReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) @@ -3566,8 +4397,29 @@ extension Clouddirectory { } } + public struct BatchListObjectPoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttachedPolicyIds", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of policy ObjectIdentifiers, that are attached to the object. + public let attachedPolicyIds: [String]? + /// The pagination token. + public let nextToken: String? + + public init(attachedPolicyIds: [String]? = nil, nextToken: String? = nil) { + self.attachedPolicyIds = attachedPolicyIds + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case attachedPolicyIds = "AttachedPolicyIds" + case nextToken = "NextToken" + } + } + public struct BatchRemoveFacetFromObject: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaFacet", required: true, type: .structure), AWSShapeMember(label: "ObjectReference", required: true, type: .structure) ] @@ -3588,7 +4440,7 @@ extension Clouddirectory { } public struct TypedLinkFacet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Attributes", required: true, type: .list), AWSShapeMember(label: "IdentityAttributeOrder", required: true, type: .list) @@ -3597,7 +4449,7 @@ extension Clouddirectory { public let name: String /// A set of key-value pairs associated with the typed link. Typed link attributes are used when you have data values that are related to the link itself, and not to one of the two objects being linked. Identity attributes also serve to distinguish the link from others of the same type between the same objects. public let attributes: [TypedLinkAttributeDefinition] - /// The set of attributes that distinguish links made from this facet from each other, in the order of significance. Listing typed links can filter on the values of these attributes. See ListOutgoingTypedLinks and ListIncomingTypeLinks for details. + /// The set of attributes that distinguish links made from this facet from each other, in the order of significance. Listing typed links can filter on the values of these attributes. See ListOutgoingTypedLinks and ListIncomingTypedLinks for details. public let identityAttributeOrder: [String] public init(name: String, attributes: [TypedLinkAttributeDefinition], identityAttributeOrder: [String]) { @@ -3614,7 +4466,7 @@ extension Clouddirectory { } public struct ListFacetNamesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -3640,7 +4492,7 @@ extension Clouddirectory { } public struct BatchAttachObjectResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attachedObjectIdentifier", required: false, type: .string) ] /// The ObjectIdentifier of the object that has been attached. @@ -3656,7 +4508,7 @@ extension Clouddirectory { } public struct FacetAttributeUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: false, type: .enum), AWSShapeMember(label: "Attribute", required: false, type: .structure) ] @@ -3676,8 +4528,12 @@ extension Clouddirectory { } } + public struct BatchDetachTypedLinkResponse: AWSShape { + + } + public struct UpdateObjectAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectIdentifier", required: false, type: .string) ] /// The ObjectIdentifier of the updated object. @@ -3697,7 +4553,7 @@ extension Clouddirectory { } public struct ListPolicyAttachmentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyReference", required: true, type: .structure), AWSShapeMember(label: "DirectoryArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -3733,7 +4589,7 @@ extension Clouddirectory { } public struct ListObjectParentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Parents", required: false, type: .map) ] @@ -3754,7 +4610,7 @@ extension Clouddirectory { } public struct DeleteFacetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SchemaArn", location: .header(locationName: "x-amz-data-partition"), required: true, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_API.swift b/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_API.swift index 7ea3ad10e67..e61279238a9 100644 --- a/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_API.swift +++ b/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_API.swift @@ -34,9 +34,9 @@ public struct Cloudformation { return try client.send(operation: "DescribeStackEvents", path: "/", httpMethod: "POST", input: input) } - /// Returns the estimated monthly cost of a template. The return value is an AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template. - public func estimateTemplateCost(_ input: EstimateTemplateCostInput) throws -> EstimateTemplateCostOutput { - return try client.send(operation: "EstimateTemplateCost", path: "/", httpMethod: "POST", input: input) + /// Deletes a stack set. Before you can delete a stack set, all of its member stack instances must be deleted. For more information about how to do this, see DeleteStackInstances. + public func deleteStackSet(_ input: DeleteStackSetInput) throws -> DeleteStackSetOutput { + return try client.send(operation: "DeleteStackSet", path: "/", httpMethod: "POST", input: input) } /// Sets a stack policy for a specified stack. @@ -44,29 +44,49 @@ public struct Cloudformation { _ = try client.send(operation: "SetStackPolicy", path: "/", httpMethod: "POST", input: input) } + /// Returns the estimated monthly cost of a template. The return value is an AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template. + public func estimateTemplateCost(_ input: EstimateTemplateCostInput) throws -> EstimateTemplateCostOutput { + return try client.send(operation: "EstimateTemplateCost", path: "/", httpMethod: "POST", input: input) + } + /// Lists all stacks that are importing an exported output value. To modify or remove an exported output value, first use this action to see which stacks are using it. To see the exported output values in your account, see ListExports. For more information about importing an exported output value, see the Fn::ImportValue function. public func listImports(_ input: ListImportsInput) throws -> ListImportsOutput { return try client.send(operation: "ListImports", path: "/", httpMethod: "POST", input: input) } + /// Creates stack instances for the specified accounts, within the specified regions. A stack instance refers to a stack in a specific account and region. Accounts and Regions are required parameters—you must specify at least one account and one region. + public func createStackInstances(_ input: CreateStackInstancesInput) throws -> CreateStackInstancesOutput { + return try client.send(operation: "CreateStackInstances", path: "/", httpMethod: "POST", input: input) + } + /// Lists all exported output values in the account and region in which you call this action. Use this action to see the exported output values that you can import into other stacks. To import values, use the Fn::ImportValue function. For more information, see AWS CloudFormation Export Stack Output Values. public func listExports(_ input: ListExportsInput) throws -> ListExportsOutput { return try client.send(operation: "ListExports", path: "/", httpMethod: "POST", input: input) } + /// Returns the description of the specified stack set operation. + public func describeStackSetOperation(_ input: DescribeStackSetOperationInput) throws -> DescribeStackSetOperationOutput { + return try client.send(operation: "DescribeStackSetOperation", path: "/", httpMethod: "POST", input: input) + } + /// Returns the ID and status of each active change set for a stack. For example, AWS CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING state. public func listChangeSets(_ input: ListChangeSetsInput) throws -> ListChangeSetsOutput { return try client.send(operation: "ListChangeSets", path: "/", httpMethod: "POST", input: input) } + /// Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks is returned (including existing stacks and stacks that have been deleted). + public func listStacks(_ input: ListStacksInput) throws -> ListStacksOutput { + return try client.send(operation: "ListStacks", path: "/", httpMethod: "POST", input: input) + } + /// Retrieves your account's AWS CloudFormation limits, such as the maximum number of stacks that you can create in your account. public func describeAccountLimits(_ input: DescribeAccountLimitsInput) throws -> DescribeAccountLimitsOutput { return try client.send(operation: "DescribeAccountLimits", path: "/", httpMethod: "POST", input: input) } - /// Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks is returned (including existing stacks and stacks that have been deleted). - public func listStacks(_ input: ListStacksInput) throws -> ListStacksOutput { - return try client.send(operation: "ListStacks", path: "/", httpMethod: "POST", input: input) + /// Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not show up in the DescribeStacks API if the deletion has been completed successfully. + public func deleteStack(_ input: DeleteStackInput) throws { + _ = try client.send(operation: "DeleteStack", path: "/", httpMethod: "POST", input: input) } /// Returns descriptions of all resources of the specified stack. For deleted stacks, ListStackResources returns resource information for up to 90 days after the stack has been deleted. @@ -74,9 +94,9 @@ public struct Cloudformation { return try client.send(operation: "ListStackResources", path: "/", httpMethod: "POST", input: input) } - /// Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not show up in the DescribeStacks API if the deletion has been completed successfully. - public func deleteStack(_ input: DeleteStackInput) throws { - _ = try client.send(operation: "DeleteStack", path: "/", httpMethod: "POST", input: input) + /// Updates the stack set and all associated stack instances. Even if the stack set operation created by updating the stack set fails (completely or partially, below or above a specified failure tolerance), the stack set is updated with your changes. Subsequent CreateStackInstances calls on the specified stack set use the updated stack set. + public func updateStackSet(_ input: UpdateStackSetInput) throws -> UpdateStackSetOutput { + return try client.send(operation: "UpdateStackSet", path: "/", httpMethod: "POST", input: input) } /// Returns the inputs for the change set and a list of changes that AWS CloudFormation will make if you execute the change set. For more information, see Updating Stacks Using Change Sets in the AWS CloudFormation User Guide. @@ -84,19 +104,34 @@ public struct Cloudformation { return try client.send(operation: "DescribeChangeSet", path: "/", httpMethod: "POST", input: input) } + /// Returns summary information about operations performed on a stack set. + public func listStackSetOperations(_ input: ListStackSetOperationsInput) throws -> ListStackSetOperationsOutput { + return try client.send(operation: "ListStackSetOperations", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the stack instance that's associated with the specified stack set, AWS account, and region. For a list of stack instances that are associated with a specific stack set, use ListStackInstances. + public func describeStackInstance(_ input: DescribeStackInstanceInput) throws -> DescribeStackInstanceOutput { + return try client.send(operation: "DescribeStackInstance", path: "/", httpMethod: "POST", input: input) + } + /// Returns AWS resource descriptions for running and deleted stacks. If StackName is specified, all the associated resources that are part of the stack are returned. If PhysicalResourceId is specified, the associated resources of the stack that the resource belongs to are returned. Only the first 100 resources will be returned. If your stack has more resources than this, you should use ListStackResources instead. For deleted stacks, DescribeStackResources returns resource information for up to 90 days after the stack has been deleted. You must specify either StackName or PhysicalResourceId, but not both. In addition, you can specify LogicalResourceId to filter the returned result. For more information about resources, the LogicalResourceId and PhysicalResourceId, go to the AWS CloudFormation User Guide. A ValidationError is returned if you specify both StackName and PhysicalResourceId in the same request. public func describeStackResources(_ input: DescribeStackResourcesInput) throws -> DescribeStackResourcesOutput { return try client.send(operation: "DescribeStackResources", path: "/", httpMethod: "POST", input: input) } + /// Returns the description of the specified stack set. + public func describeStackSet(_ input: DescribeStackSetInput) throws -> DescribeStackSetOutput { + return try client.send(operation: "DescribeStackSet", path: "/", httpMethod: "POST", input: input) + } + /// Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. You can check the status of the stack via the DescribeStacks API. public func createStack(_ input: CreateStackInput) throws -> CreateStackOutput { return try client.send(operation: "CreateStack", path: "/", httpMethod: "POST", input: input) } - /// Creates a list of changes that will be applied to a stack so that you can review the changes before executing them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for a stack that doesn't exist, the change set shows all of the resources that AWS CloudFormation will create. If you create a change set for an existing stack, AWS CloudFormation compares the stack's information with the information that you submit in the change set and lists the differences. Use change sets to understand which resources AWS CloudFormation will create or change, and how it will change resources in an existing stack, before you create or update a stack. To create a change set for a stack that doesn't exist, for the ChangeSetType parameter, specify CREATE. To create a change set for an existing stack, specify UPDATE for the ChangeSetType parameter. After the CreateChangeSet call successfully completes, AWS CloudFormation starts creating the change set. To check the status of the change set or to review it, use the DescribeChangeSet action. When you are satisfied with the changes the change set will make, execute the change set by using the ExecuteChangeSet action. AWS CloudFormation doesn't make changes until you execute the change set. - public func createChangeSet(_ input: CreateChangeSetInput) throws -> CreateChangeSetOutput { - return try client.send(operation: "CreateChangeSet", path: "/", httpMethod: "POST", input: input) + /// Returns summary information about stack sets that are associated with the user. + public func listStackSets(_ input: ListStackSetsInput) throws -> ListStackSetsOutput { + return try client.send(operation: "ListStackSets", path: "/", httpMethod: "POST", input: input) } /// Cancels an update on the specified stack. If the call completes successfully, the stack rolls back the update and reverts to the previous stack configuration. You can cancel only stacks that are in the UPDATE_IN_PROGRESS state. @@ -104,6 +139,21 @@ public struct Cloudformation { _ = try client.send(operation: "CancelUpdateStack", path: "/", httpMethod: "POST", input: input) } + /// Creates a list of changes that will be applied to a stack so that you can review the changes before executing them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for a stack that doesn't exist, the change set shows all of the resources that AWS CloudFormation will create. If you create a change set for an existing stack, AWS CloudFormation compares the stack's information with the information that you submit in the change set and lists the differences. Use change sets to understand which resources AWS CloudFormation will create or change, and how it will change resources in an existing stack, before you create or update a stack. To create a change set for a stack that doesn't exist, for the ChangeSetType parameter, specify CREATE. To create a change set for an existing stack, specify UPDATE for the ChangeSetType parameter. After the CreateChangeSet call successfully completes, AWS CloudFormation starts creating the change set. To check the status of the change set or to review it, use the DescribeChangeSet action. When you are satisfied with the changes the change set will make, execute the change set by using the ExecuteChangeSet action. AWS CloudFormation doesn't make changes until you execute the change set. + public func createChangeSet(_ input: CreateChangeSetInput) throws -> CreateChangeSetOutput { + return try client.send(operation: "CreateChangeSet", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a stack set. + public func createStackSet(_ input: CreateStackSetInput) throws -> CreateStackSetOutput { + return try client.send(operation: "CreateStackSet", path: "/", httpMethod: "POST", input: input) + } + + /// Stops an in-progress operation on a stack set and its associated stack instances. + public func stopStackSetOperation(_ input: StopStackSetOperationInput) throws -> StopStackSetOperationOutput { + return try client.send(operation: "StopStackSetOperation", path: "/", httpMethod: "POST", input: input) + } + /// Returns the template body for a specified stack. You can get the template for running or deleted stacks. For deleted stacks, GetTemplate returns the template for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned. public func getTemplate(_ input: GetTemplateInput) throws -> GetTemplateOutput { return try client.send(operation: "GetTemplate", path: "/", httpMethod: "POST", input: input) @@ -114,6 +164,16 @@ public struct Cloudformation { return try client.send(operation: "ExecuteChangeSet", path: "/", httpMethod: "POST", input: input) } + /// Returns summary information about stack instances that are associated with the specified stack set. You can filter for stack instances that are associated with a specific AWS account name or region. + public func listStackInstances(_ input: ListStackInstancesInput) throws -> ListStackInstancesOutput { + return try client.send(operation: "ListStackInstances", path: "/", httpMethod: "POST", input: input) + } + + /// Updates the parameter values for stack instances for the specified accounts, within the specified regions. A stack instance refers to a stack in a specific account and region. You can only update stack instances in regions and accounts where they already exist; to create additional stack instances, use CreateStackInstances. During stack set updates, any parameters overridden for a stack instance are not updated, but retain their overridden value. You can only update the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using UpdateStackInstances. + public func updateStackInstances(_ input: UpdateStackInstancesInput) throws -> UpdateStackInstancesOutput { + return try client.send(operation: "UpdateStackInstances", path: "/", httpMethod: "POST", input: input) + } + /// Sends a signal to the specified resource with a success or failure status. You can use the SignalResource API in conjunction with a creation policy or update policy. AWS CloudFormation doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout period is exceeded. The SignalResource API is useful in cases where you want to send signals from anywhere other than an Amazon EC2 instance. public func signalResource(_ input: SignalResourceInput) throws { _ = try client.send(operation: "SignalResource", path: "/", httpMethod: "POST", input: input) @@ -124,27 +184,42 @@ public struct Cloudformation { return try client.send(operation: "DescribeStackResource", path: "/", httpMethod: "POST", input: input) } + /// Returns summary information about the results of a stack set operation. + public func listStackSetOperationResults(_ input: ListStackSetOperationResultsInput) throws -> ListStackSetOperationResultsOutput { + return try client.send(operation: "ListStackSetOperationResults", path: "/", httpMethod: "POST", input: input) + } + + /// Updates termination protection for the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack. + public func updateTerminationProtection(_ input: UpdateTerminationProtectionInput) throws -> UpdateTerminationProtectionOutput { + return try client.send(operation: "UpdateTerminationProtection", path: "/", httpMethod: "POST", input: input) + } + /// Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created. If the stack does not exist, an AmazonCloudFormationException is returned. public func describeStacks(_ input: DescribeStacksInput) throws -> DescribeStacksOutput { return try client.send(operation: "DescribeStacks", path: "/", httpMethod: "POST", input: input) } + /// Deletes stack instances for the specified accounts, in the specified regions. + public func deleteStackInstances(_ input: DeleteStackInstancesInput) throws -> DeleteStackInstancesOutput { + return try client.send(operation: "DeleteStackInstances", path: "/", httpMethod: "POST", input: input) + } + /// For a specified stack that is in the UPDATE_ROLLBACK_FAILED state, continues rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can manually fix the error and continue the rollback. By continuing the rollback, you can return your stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try to update the stack again. A stack goes into the UPDATE_ROLLBACK_FAILED state when AWS CloudFormation cannot roll back all changes after a failed stack update. For example, you might have a stack that is rolling back to an old database instance that was deleted outside of AWS CloudFormation. Because AWS CloudFormation doesn't know the database was deleted, it assumes that the database instance still exists and attempts to roll back to it, causing the update rollback to fail. public func continueUpdateRollback(_ input: ContinueUpdateRollbackInput) throws -> ContinueUpdateRollbackOutput { return try client.send(operation: "ContinueUpdateRollback", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified change set. Deleting change sets ensures that no one executes the wrong change set. If the call successfully completes, AWS CloudFormation successfully deleted the change set. - public func deleteChangeSet(_ input: DeleteChangeSetInput) throws -> DeleteChangeSetOutput { - return try client.send(operation: "DeleteChangeSet", path: "/", httpMethod: "POST", input: input) - } - /// Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack via the DescribeStacks action. To get a copy of the template for an existing stack, you can use the GetTemplate action. For more information about creating an update template, updating a stack, and monitoring the progress of the update, see Updating a Stack. public func updateStack(_ input: UpdateStackInput) throws -> UpdateStackOutput { return try client.send(operation: "UpdateStack", path: "/", httpMethod: "POST", input: input) } - /// Returns information about a new or existing template. The GetTemplateSummary action is useful for viewing parameter information, such as default parameter values and parameter types, before you create or update a stack. You can use the GetTemplateSummary action when you submit a template, or you can get template information for a running or deleted stack. For deleted stacks, GetTemplateSummary returns the template information for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned. + /// Deletes the specified change set. Deleting change sets ensures that no one executes the wrong change set. If the call successfully completes, AWS CloudFormation successfully deleted the change set. + public func deleteChangeSet(_ input: DeleteChangeSetInput) throws -> DeleteChangeSetOutput { + return try client.send(operation: "DeleteChangeSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about a new or existing template. The GetTemplateSummary action is useful for viewing parameter information, such as default parameter values and parameter types, before you create or update a stack or stack set. You can use the GetTemplateSummary action when you submit a template, or you can get template information for a stack set, or a running or deleted stack. For deleted stacks, GetTemplateSummary returns the template information for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned. public func getTemplateSummary(_ input: GetTemplateSummaryInput) throws -> GetTemplateSummaryOutput { return try client.send(operation: "GetTemplateSummary", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_Error.swift b/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_Error.swift index b87b862e315..fb2c3a6b6b2 100644 --- a/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_Error.swift +++ b/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_Error.swift @@ -4,11 +4,21 @@ import AWSSDKSwiftCore /// Error enum for Cloudformation public enum CloudformationError: AWSErrorType { + case stackSetNotEmptyException(message: String?) + case operationInProgressException(message: String?) + case stackSetNotFoundException(message: String?) + case operationIdAlreadyExistsException(message: String?) + case staleRequestException(message: String?) + case invalidOperationException(message: String?) + case limitExceededException(message: String?) + case operationNotFoundException(message: String?) case tokenAlreadyExistsException(message: String?) case changeSetNotFoundException(message: String?) - case limitExceededException(message: String?) + case stackInstanceNotFoundException(message: String?) case alreadyExistsException(message: String?) case insufficientCapabilitiesException(message: String?) + case nameAlreadyExistsException(message: String?) + case createdButModifiedException(message: String?) case invalidChangeSetStatusException(message: String?) } @@ -19,16 +29,36 @@ extension CloudformationError { errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) } switch errorCode { + case "StackSetNotEmptyException": + self = .stackSetNotEmptyException(message: message) + case "OperationInProgressException": + self = .operationInProgressException(message: message) + case "StackSetNotFoundException": + self = .stackSetNotFoundException(message: message) + case "OperationIdAlreadyExistsException": + self = .operationIdAlreadyExistsException(message: message) + case "StaleRequestException": + self = .staleRequestException(message: message) + case "InvalidOperationException": + self = .invalidOperationException(message: message) + case "LimitExceededException": + self = .limitExceededException(message: message) + case "OperationNotFoundException": + self = .operationNotFoundException(message: message) case "TokenAlreadyExistsException": self = .tokenAlreadyExistsException(message: message) case "ChangeSetNotFoundException": self = .changeSetNotFoundException(message: message) - case "LimitExceededException": - self = .limitExceededException(message: message) + case "StackInstanceNotFoundException": + self = .stackInstanceNotFoundException(message: message) case "AlreadyExistsException": self = .alreadyExistsException(message: message) case "InsufficientCapabilitiesException": self = .insufficientCapabilitiesException(message: message) + case "NameAlreadyExistsException": + self = .nameAlreadyExistsException(message: message) + case "CreatedButModifiedException": + self = .createdButModifiedException(message: message) case "InvalidChangeSetStatusException": self = .invalidChangeSetStatusException(message: message) default: diff --git a/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_Shapes.swift b/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_Shapes.swift index 1b2cb3cff1d..e8f2a369fcd 100644 --- a/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/cloudformation/Cloudformation_Shapes.swift @@ -12,24 +12,19 @@ extension Cloudformation { public var description: String { return self.rawValue } } - public struct DescribeStacksInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackName", required: false, type: .string), - AWSShapeMember(label: "NextToken", required: false, type: .string) + public struct DeleteStackInstancesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperationId", required: false, type: .string) ] - /// The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. - public let stackName: String? - /// A string that identifies the next page of stacks that you want to retrieve. - public let nextToken: String? + /// The unique identifier for this stack set operation. + public let operationId: String? - public init(stackName: String? = nil, nextToken: String? = nil) { - self.stackName = stackName - self.nextToken = nextToken + public init(operationId: String? = nil) { + self.operationId = operationId } private enum CodingKeys: String, CodingKey { - case stackName = "StackName" - case nextToken = "NextToken" + case operationId = "OperationId" } } @@ -38,128 +33,80 @@ extension Cloudformation { public var description: String { return self.rawValue } } - public struct DeleteStackInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), - AWSShapeMember(label: "StackName", required: true, type: .string), - AWSShapeMember(label: "RetainResources", required: false, type: .list), - AWSShapeMember(label: "RoleARN", required: false, type: .string) - ] - /// A unique identifier for this DeleteStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to delete a stack with the same name. You might retry DeleteStack requests to ensure that AWS CloudFormation successfully received them. - public let clientRequestToken: String? - /// The name or the unique stack ID that is associated with the stack. - public let stackName: String - /// For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack. - public let retainResources: [String]? - /// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to delete the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. - public let roleARN: String? - - public init(clientRequestToken: String? = nil, stackName: String, retainResources: [String]? = nil, roleARN: String? = nil) { - self.clientRequestToken = clientRequestToken - self.stackName = stackName - self.retainResources = retainResources - self.roleARN = roleARN - } - - private enum CodingKeys: String, CodingKey { - case clientRequestToken = "ClientRequestToken" - case stackName = "StackName" - case retainResources = "RetainResources" - case roleARN = "RoleARN" - } - } - - public enum ChangeSource: String, CustomStringConvertible, Codable { - case resourcereference = "ResourceReference" - case parameterreference = "ParameterReference" - case resourceattribute = "ResourceAttribute" - case directmodification = "DirectModification" - case automatic = "Automatic" - public var description: String { return self.rawValue } - } - - public enum OnFailure: String, CustomStringConvertible, Codable { - case doNothing = "DO_NOTHING" - case rollback = "ROLLBACK" - case delete = "DELETE" - public var description: String { return self.rawValue } - } - - public struct GetStackPolicyOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackPolicyBody", required: false, type: .string) - ] - /// Structure containing the stack policy body. (For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide.) - public let stackPolicyBody: String? - - public init(stackPolicyBody: String? = nil) { - self.stackPolicyBody = stackPolicyBody + public struct ListStackInstancesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackInstanceRegion", required: false, type: .string), + AWSShapeMember(label: "StackInstanceAccount", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StackSetName", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The name of the region where you want to list stack instances. + public let stackInstanceRegion: String? + /// The name of the AWS account that you want to list stack instances for. + public let stackInstanceAccount: String? + /// If the previous request didn't return all of the remaining results, the response's NextToken parameter value is set to a token. To retrieve the next set of results, call ListStackInstances again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + public let nextToken: String? + /// The name or unique ID of the stack set that you want to list stack instances for. + public let stackSetName: String + /// The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + public let maxResults: Int32? + + public init(stackInstanceRegion: String? = nil, stackInstanceAccount: String? = nil, nextToken: String? = nil, stackSetName: String, maxResults: Int32? = nil) { + self.stackInstanceRegion = stackInstanceRegion + self.stackInstanceAccount = stackInstanceAccount + self.nextToken = nextToken + self.stackSetName = stackSetName + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case stackPolicyBody = "StackPolicyBody" + case stackInstanceRegion = "StackInstanceRegion" + case stackInstanceAccount = "StackInstanceAccount" + case nextToken = "NextToken" + case stackSetName = "StackSetName" + case maxResults = "MaxResults" } } - public struct ResourceChange: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Details", required: false, type: .list), - AWSShapeMember(label: "Action", required: false, type: .enum), - AWSShapeMember(label: "LogicalResourceId", required: false, type: .string), - AWSShapeMember(label: "ResourceType", required: false, type: .string), - AWSShapeMember(label: "Replacement", required: false, type: .enum), - AWSShapeMember(label: "PhysicalResourceId", required: false, type: .string), - AWSShapeMember(label: "Scope", required: false, type: .list) + public struct ListStackSetsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Summaries", required: false, type: .list) ] - /// For the Modify action, a list of ResourceChangeDetail structures that describes the changes that AWS CloudFormation will make to the resource. - public let details: [ResourceChangeDetail]? - /// The action that AWS CloudFormation takes on the resource, such as Add (adds a new resource), Modify (changes a resource), or Remove (deletes a resource). - public let action: ChangeAction? - /// The resource's logical ID, which is defined in the stack's template. - public let logicalResourceId: String? - /// The type of AWS CloudFormation resource, such as AWS::S3::Bucket. - public let resourceType: String? - /// For the Modify action, indicates whether AWS CloudFormation will replace the resource by creating a new one and deleting the old one. This value depends on the value of the RequiresRecreation property in the ResourceTargetDefinition structure. For example, if the RequiresRecreation field is Always and the Evaluation field is Static, Replacement is True. If the RequiresRecreation field is Always and the Evaluation field is Dynamic, Replacement is Conditionally. If you have multiple changes with different RequiresRecreation values, the Replacement value depends on the change with the most impact. A RequiresRecreation value of Always has the most impact, followed by Conditionally, and then Never. - public let replacement: Replacement? - /// The resource's physical ID (resource name). Resources that you are adding don't have physical IDs because they haven't been created. - public let physicalResourceId: String? - /// For the Modify action, indicates which resource attribute is triggering this update, such as a change in the resource attribute's Metadata, Properties, or Tags. - public let scope: [ResourceAttribute]? + /// If the request doesn't return all of the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListStackInstances again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null. + public let nextToken: String? + /// A list of StackSetSummary structures that contain information about the user's stack sets. + public let summaries: [StackSetSummary]? - public init(details: [ResourceChangeDetail]? = nil, action: ChangeAction? = nil, logicalResourceId: String? = nil, resourceType: String? = nil, replacement: Replacement? = nil, physicalResourceId: String? = nil, scope: [ResourceAttribute]? = nil) { - self.details = details - self.action = action - self.logicalResourceId = logicalResourceId - self.resourceType = resourceType - self.replacement = replacement - self.physicalResourceId = physicalResourceId - self.scope = scope + public init(nextToken: String? = nil, summaries: [StackSetSummary]? = nil) { + self.nextToken = nextToken + self.summaries = summaries } private enum CodingKeys: String, CodingKey { - case details = "Details" - case action = "Action" - case logicalResourceId = "LogicalResourceId" - case resourceType = "ResourceType" - case replacement = "Replacement" - case physicalResourceId = "PhysicalResourceId" - case scope = "Scope" + case nextToken = "NextToken" + case summaries = "Summaries" } } public struct StackSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastUpdatedTime", required: false, type: .timestamp), + AWSShapeMember(label: "ParentId", required: false, type: .string), AWSShapeMember(label: "DeletionTime", required: false, type: .timestamp), AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "StackStatus", required: true, type: .enum), AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), AWSShapeMember(label: "StackStatusReason", required: false, type: .string), AWSShapeMember(label: "StackName", required: true, type: .string), - AWSShapeMember(label: "TemplateDescription", required: false, type: .string) + AWSShapeMember(label: "TemplateDescription", required: false, type: .string), + AWSShapeMember(label: "RootId", required: false, type: .string) ] /// The time the stack was last updated. This field will only be returned if the stack has been updated at least once. public let lastUpdatedTime: TimeStamp? + /// For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack. For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide. + public let parentId: String? /// The time the stack was deleted. public let deletionTime: TimeStamp? /// Unique stack identifier. @@ -174,9 +121,12 @@ extension Cloudformation { public let stackName: String /// The template description of the template used to create the stack. public let templateDescription: String? + /// For nested stacks--stacks created as resources for another stack--the stack ID of the the top-level stack to which the nested stack ultimately belongs. For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide. + public let rootId: String? - public init(lastUpdatedTime: TimeStamp? = nil, deletionTime: TimeStamp? = nil, stackId: String? = nil, stackStatus: StackStatus, creationTime: TimeStamp, stackStatusReason: String? = nil, stackName: String, templateDescription: String? = nil) { + public init(lastUpdatedTime: TimeStamp? = nil, parentId: String? = nil, deletionTime: TimeStamp? = nil, stackId: String? = nil, stackStatus: StackStatus, creationTime: TimeStamp, stackStatusReason: String? = nil, stackName: String, templateDescription: String? = nil, rootId: String? = nil) { self.lastUpdatedTime = lastUpdatedTime + self.parentId = parentId self.deletionTime = deletionTime self.stackId = stackId self.stackStatus = stackStatus @@ -184,10 +134,12 @@ extension Cloudformation { self.stackStatusReason = stackStatusReason self.stackName = stackName self.templateDescription = templateDescription + self.rootId = rootId } private enum CodingKeys: String, CodingKey { case lastUpdatedTime = "LastUpdatedTime" + case parentId = "ParentId" case deletionTime = "DeletionTime" case stackId = "StackId" case stackStatus = "StackStatus" @@ -195,129 +147,102 @@ extension Cloudformation { case stackStatusReason = "StackStatusReason" case stackName = "StackName" case templateDescription = "TemplateDescription" + case rootId = "RootId" } } - public struct CreateChangeSetOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackId", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) + public struct GetStackPolicyOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackPolicyBody", required: false, type: .string) ] - /// The unique ID of the stack. - public let stackId: String? - /// The Amazon Resource Name (ARN) of the change set. - public let id: String? + /// Structure containing the stack policy body. (For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide.) + public let stackPolicyBody: String? - public init(stackId: String? = nil, id: String? = nil) { - self.stackId = stackId - self.id = id + public init(stackPolicyBody: String? = nil) { + self.stackPolicyBody = stackPolicyBody } private enum CodingKeys: String, CodingKey { - case stackId = "StackId" - case id = "Id" + case stackPolicyBody = "StackPolicyBody" } } - public struct Stack: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackStatus", required: true, type: .enum), - AWSShapeMember(label: "Tags", required: false, type: .list), - AWSShapeMember(label: "RoleARN", required: false, type: .string), - AWSShapeMember(label: "DisableRollback", required: false, type: .boolean), - AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), - AWSShapeMember(label: "Outputs", required: false, type: .list), - AWSShapeMember(label: "StackStatusReason", required: false, type: .string), - AWSShapeMember(label: "NotificationARNs", required: false, type: .list), - AWSShapeMember(label: "LastUpdatedTime", required: false, type: .timestamp), - AWSShapeMember(label: "Description", required: false, type: .string), - AWSShapeMember(label: "Parameters", required: false, type: .list), - AWSShapeMember(label: "StackId", required: false, type: .string), - AWSShapeMember(label: "ChangeSetId", required: false, type: .string), - AWSShapeMember(label: "TimeoutInMinutes", required: false, type: .integer), - AWSShapeMember(label: "StackName", required: true, type: .string), - AWSShapeMember(label: "Capabilities", required: false, type: .list) + public struct ListStackSetOperationResultsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Summaries", required: false, type: .list) ] - /// Current status of the stack. - public let stackStatus: StackStatus - /// A list of Tags that specify information about the stack. - public let tags: [Tag]? - /// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that is associated with the stack. During a stack operation, AWS CloudFormation uses this role's credentials to make calls on your behalf. - public let roleARN: String? - /// Boolean to enable or disable rollback on stack creation failures: true: disable rollback false: enable rollback - public let disableRollback: Bool? - /// The time at which the stack was created. - public let creationTime: TimeStamp - /// A list of output structures. - public let outputs: [Output]? - /// Success/failure message associated with the stack status. - public let stackStatusReason: String? - /// SNS topic ARNs to which stack related events are published. - public let notificationARNs: [String]? - /// The time the stack was last updated. This field will only be returned if the stack has been updated at least once. - public let lastUpdatedTime: TimeStamp? - /// A user-defined description associated with the stack. - public let description: String? - /// A list of Parameter structures. - public let parameters: [Parameter]? - /// Unique identifier of the stack. + /// If the request doesn't return all results, NextToken is set to a token. To retrieve the next set of results, call ListOperationResults again and assign that token to the request object's NextToken parameter. If there are no remaining results, NextToken is set to null. + public let nextToken: String? + /// A list of StackSetOperationResultSummary structures that contain information about the specified operation results, for accounts and regions that are included in the operation. + public let summaries: [StackSetOperationResultSummary]? + + public init(nextToken: String? = nil, summaries: [StackSetOperationResultSummary]? = nil) { + self.nextToken = nextToken + self.summaries = summaries + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case summaries = "Summaries" + } + } + + public struct StackInstance: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "StackSetId", required: false, type: .string), + AWSShapeMember(label: "Account", required: false, type: .string), + AWSShapeMember(label: "StackId", required: false, type: .string), + AWSShapeMember(label: "StatusReason", required: false, type: .string), + AWSShapeMember(label: "Region", required: false, type: .string), + AWSShapeMember(label: "ParameterOverrides", required: false, type: .list) + ] + /// The status of the stack instance, in terms of its synchronization with its associated stack set. INOPERABLE: A DeleteStackInstances operation has failed and left the stack in an unstable state. Stacks in this state are excluded from further UpdateStackSet operations. You might need to perform a DeleteStackInstances operation, with RetainStacks set to true, to delete the stack instance, and then delete the stack manually. OUTDATED: The stack isn't currently up to date with the stack set because: The associated stack failed during a CreateStackSet or UpdateStackSet operation. The stack was part of a CreateStackSet or UpdateStackSet operation that failed or was stopped before the stack was created or updated. CURRENT: The stack is currently up to date with the stack set. + public let status: StackInstanceStatus? + /// The name or unique ID of the stack set that the stack instance is associated with. + public let stackSetId: String? + /// The name of the AWS account that the stack instance is associated with. + public let account: String? + /// The ID of the stack instance. public let stackId: String? - /// The unique ID of the change set. - public let changeSetId: String? - /// The amount of time within which stack creation should complete. - public let timeoutInMinutes: Int32? - /// The name associated with the stack. - public let stackName: String - /// The capabilities allowed in the stack. - public let capabilities: [Capability]? + /// The explanation for the specific status code that is assigned to this stack instance. + public let statusReason: String? + /// The name of the AWS region that the stack instance is associated with. + public let region: String? + /// A list of parameters from the stack set template whose values have been overridden in this stack instance. + public let parameterOverrides: [Parameter]? - public init(stackStatus: StackStatus, tags: [Tag]? = nil, roleARN: String? = nil, disableRollback: Bool? = nil, creationTime: TimeStamp, outputs: [Output]? = nil, stackStatusReason: String? = nil, notificationARNs: [String]? = nil, lastUpdatedTime: TimeStamp? = nil, description: String? = nil, parameters: [Parameter]? = nil, stackId: String? = nil, changeSetId: String? = nil, timeoutInMinutes: Int32? = nil, stackName: String, capabilities: [Capability]? = nil) { - self.stackStatus = stackStatus - self.tags = tags - self.roleARN = roleARN - self.disableRollback = disableRollback - self.creationTime = creationTime - self.outputs = outputs - self.stackStatusReason = stackStatusReason - self.notificationARNs = notificationARNs - self.lastUpdatedTime = lastUpdatedTime - self.description = description - self.parameters = parameters + public init(status: StackInstanceStatus? = nil, stackSetId: String? = nil, account: String? = nil, stackId: String? = nil, statusReason: String? = nil, region: String? = nil, parameterOverrides: [Parameter]? = nil) { + self.status = status + self.stackSetId = stackSetId + self.account = account self.stackId = stackId - self.changeSetId = changeSetId - self.timeoutInMinutes = timeoutInMinutes - self.stackName = stackName - self.capabilities = capabilities + self.statusReason = statusReason + self.region = region + self.parameterOverrides = parameterOverrides } private enum CodingKeys: String, CodingKey { - case stackStatus = "StackStatus" - case tags = "Tags" - case roleARN = "RoleARN" - case disableRollback = "DisableRollback" - case creationTime = "CreationTime" - case outputs = "Outputs" - case stackStatusReason = "StackStatusReason" - case notificationARNs = "NotificationARNs" - case lastUpdatedTime = "LastUpdatedTime" - case description = "Description" - case parameters = "Parameters" + case status = "Status" + case stackSetId = "StackSetId" + case account = "Account" case stackId = "StackId" - case changeSetId = "ChangeSetId" - case timeoutInMinutes = "TimeoutInMinutes" - case stackName = "StackName" - case capabilities = "Capabilities" + case statusReason = "StatusReason" + case region = "Region" + case parameterOverrides = "ParameterOverrides" } } public struct UpdateStackInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackPolicyBody", required: false, type: .string), AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "RoleARN", required: false, type: .string), AWSShapeMember(label: "StackPolicyDuringUpdateBody", required: false, type: .string), AWSShapeMember(label: "UsePreviousTemplate", required: false, type: .boolean), + AWSShapeMember(label: "RollbackConfiguration", required: false, type: .structure), AWSShapeMember(label: "StackPolicyDuringUpdateURL", required: false, type: .string), AWSShapeMember(label: "StackPolicyURL", required: false, type: .string), AWSShapeMember(label: "NotificationARNs", required: false, type: .list), @@ -330,9 +255,9 @@ extension Cloudformation { ] /// Structure containing a new stack policy body. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged. public let stackPolicyBody: String? - /// A unique identifier for this UpdateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to update a stack with the same name. You might retry UpdateStack requests to ensure that AWS CloudFormation successfully received them. + /// A unique identifier for this UpdateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to update a stack with the same name. You might retry UpdateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002. public let clientRequestToken: String? - /// Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to supported resources in the stack. You can specify a maximum number of 10 tags. If you don't specify this parameter, AWS CloudFormation doesn't modify the stack's tags. If you specify an empty value, AWS CloudFormation removes all associated tags. + /// Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to supported resources in the stack. You can specify a maximum number of 50 tags. If you don't specify this parameter, AWS CloudFormation doesn't modify the stack's tags. If you specify an empty value, AWS CloudFormation removes all associated tags. public let tags: [Tag]? /// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to update the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. public let roleARN: String? @@ -340,6 +265,8 @@ extension Cloudformation { public let stackPolicyDuringUpdateBody: String? /// Reuse the existing template that is associated with the stack that you are updating. Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true. public let usePreviousTemplate: Bool? + /// The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. + public let rollbackConfiguration: RollbackConfiguration? /// Location of a file containing the temporary overriding stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both. If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used. public let stackPolicyDuringUpdateURL: String? /// Location of a file containing the updated stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged. @@ -359,13 +286,14 @@ extension Cloudformation { /// A list of values that you must specify before AWS CloudFormation can update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account, for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter. The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. public let capabilities: [Capability]? - public init(stackPolicyBody: String? = nil, clientRequestToken: String? = nil, tags: [Tag]? = nil, roleARN: String? = nil, stackPolicyDuringUpdateBody: String? = nil, usePreviousTemplate: Bool? = nil, stackPolicyDuringUpdateURL: String? = nil, stackPolicyURL: String? = nil, notificationARNs: [String]? = nil, parameters: [Parameter]? = nil, resourceTypes: [String]? = nil, templateURL: String? = nil, templateBody: String? = nil, stackName: String, capabilities: [Capability]? = nil) { + public init(stackPolicyBody: String? = nil, clientRequestToken: String? = nil, tags: [Tag]? = nil, roleARN: String? = nil, stackPolicyDuringUpdateBody: String? = nil, usePreviousTemplate: Bool? = nil, rollbackConfiguration: RollbackConfiguration? = nil, stackPolicyDuringUpdateURL: String? = nil, stackPolicyURL: String? = nil, notificationARNs: [String]? = nil, parameters: [Parameter]? = nil, resourceTypes: [String]? = nil, templateURL: String? = nil, templateBody: String? = nil, stackName: String, capabilities: [Capability]? = nil) { self.stackPolicyBody = stackPolicyBody self.clientRequestToken = clientRequestToken self.tags = tags self.roleARN = roleARN self.stackPolicyDuringUpdateBody = stackPolicyDuringUpdateBody self.usePreviousTemplate = usePreviousTemplate + self.rollbackConfiguration = rollbackConfiguration self.stackPolicyDuringUpdateURL = stackPolicyDuringUpdateURL self.stackPolicyURL = stackPolicyURL self.notificationARNs = notificationARNs @@ -384,6 +312,7 @@ extension Cloudformation { case roleARN = "RoleARN" case stackPolicyDuringUpdateBody = "StackPolicyDuringUpdateBody" case usePreviousTemplate = "UsePreviousTemplate" + case rollbackConfiguration = "RollbackConfiguration" case stackPolicyDuringUpdateURL = "StackPolicyDuringUpdateURL" case stackPolicyURL = "StackPolicyURL" case notificationARNs = "NotificationARNs" @@ -396,24 +325,15 @@ extension Cloudformation { } } - public struct ListExportsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - /// A string (provided by the ListExports response output) that identifies the next page of exported output values that you asked to retrieve. - public let nextToken: String? - - public init(nextToken: String? = nil) { - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - } + public enum RequiresRecreation: String, CustomStringConvertible, Codable { + case never = "Never" + case conditionally = "Conditionally" + case always = "Always" + public var description: String { return self.rawValue } } public struct ParameterDeclaration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterType", required: false, type: .string), AWSShapeMember(label: "NoEcho", required: false, type: .boolean), AWSShapeMember(label: "ParameterConstraints", required: false, type: .structure), @@ -454,7 +374,7 @@ extension Cloudformation { } public struct StackResourceDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metadata", required: false, type: .string), AWSShapeMember(label: "ResourceStatus", required: true, type: .enum), AWSShapeMember(label: "StackId", required: false, type: .string), @@ -520,36 +440,70 @@ extension Cloudformation { public var description: String { return self.rawValue } } - public enum RequiresRecreation: String, CustomStringConvertible, Codable { - case never = "Never" - case conditionally = "Conditionally" - case always = "Always" - public var description: String { return self.rawValue } + public struct DeleteStackInstancesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RetainStacks", required: true, type: .boolean), + AWSShapeMember(label: "OperationId", required: false, type: .string), + AWSShapeMember(label: "Accounts", required: true, type: .list), + AWSShapeMember(label: "OperationPreferences", required: false, type: .structure), + AWSShapeMember(label: "Regions", required: true, type: .list), + AWSShapeMember(label: "StackSetName", required: true, type: .string) + ] + /// Removes the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a retained stack or add an existing, saved stack to a new stack set. For more information, see Stack set operation options. + public let retainStacks: Bool + /// The unique identifier for this stack set operation. If you don't specify an operation ID, the SDK generates one automatically. The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You can retry stack set operation requests to ensure that AWS CloudFormation successfully received them. Repeating this stack set operation with a new operation ID retries all stack instances whose status is OUTDATED. + public let operationId: String? + /// The names of the AWS accounts that you want to delete stack instances for. + public let accounts: [String] + /// Preferences for how AWS CloudFormation performs this stack set operation. + public let operationPreferences: StackSetOperationPreferences? + /// The regions where you want to delete stack set instances. + public let regions: [String] + /// The name or unique ID of the stack set that you want to delete stack instances for. + public let stackSetName: String + + public init(retainStacks: Bool, operationId: String? = nil, accounts: [String], operationPreferences: StackSetOperationPreferences? = nil, regions: [String], stackSetName: String) { + self.retainStacks = retainStacks + self.operationId = operationId + self.accounts = accounts + self.operationPreferences = operationPreferences + self.regions = regions + self.stackSetName = stackSetName + } + + private enum CodingKeys: String, CodingKey { + case retainStacks = "RetainStacks" + case operationId = "OperationId" + case accounts = "Accounts" + case operationPreferences = "OperationPreferences" + case regions = "Regions" + case stackSetName = "StackSetName" + } } - public struct ListImportsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "ExportName", required: true, type: .string) + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: true, type: .string), + AWSShapeMember(label: "Key", required: true, type: .string) ] - /// A string (provided by the ListImports response output) that identifies the next page of stacks that are importing the specified exported output value. - public let nextToken: String? - /// The name of the exported output value. AWS CloudFormation returns the stack names that are importing this value. - public let exportName: String + /// Required. A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value. + public let value: String + /// Required. A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have the reserved prefix: aws:. + public let key: String - public init(nextToken: String? = nil, exportName: String) { - self.nextToken = nextToken - self.exportName = exportName + public init(value: String, key: String) { + self.value = value + self.key = key } private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case exportName = "ExportName" + case value = "Value" + case key = "Key" } } public struct ListChangeSetsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Summaries", required: false, type: .list) ] @@ -569,55 +523,8 @@ extension Cloudformation { } } - public struct DescribeStacksOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Stacks", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - /// A list of stack structures. - public let stacks: [Stack]? - /// If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If no additional page exists, this value is null. - public let nextToken: String? - - public init(stacks: [Stack]? = nil, nextToken: String? = nil) { - self.stacks = stacks - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case stacks = "Stacks" - case nextToken = "NextToken" - } - } - - public struct ExecuteChangeSetInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackName", required: false, type: .string), - AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), - AWSShapeMember(label: "ChangeSetName", required: true, type: .string) - ] - /// If you specified the name of a change set, specify the stack name or ID (ARN) that is associated with the change set you want to execute. - public let stackName: String? - /// A unique identifier for this ExecuteChangeSet request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to execute a change set to update a stack with the same name. You might retry ExecuteChangeSet requests to ensure that AWS CloudFormation successfully received them. - public let clientRequestToken: String? - /// The name or ARN of the change set that you want use to update the specified stack. - public let changeSetName: String - - public init(stackName: String? = nil, clientRequestToken: String? = nil, changeSetName: String) { - self.stackName = stackName - self.clientRequestToken = clientRequestToken - self.changeSetName = changeSetName - } - - private enum CodingKeys: String, CodingKey { - case stackName = "StackName" - case clientRequestToken = "ClientRequestToken" - case changeSetName = "ChangeSetName" - } - } - public struct ListStackResourcesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackResourceSummaries", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -637,60 +544,8 @@ extension Cloudformation { } } - public struct TemplateParameter: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NoEcho", required: false, type: .boolean), - AWSShapeMember(label: "DefaultValue", required: false, type: .string), - AWSShapeMember(label: "ParameterKey", required: false, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string) - ] - /// Flag indicating whether the parameter should be displayed as plain text in logs and UIs. - public let noEcho: Bool? - /// The default value associated with the parameter. - public let defaultValue: String? - /// The name associated with the parameter. - public let parameterKey: String? - /// User defined description associated with the parameter. - public let description: String? - - public init(noEcho: Bool? = nil, defaultValue: String? = nil, parameterKey: String? = nil, description: String? = nil) { - self.noEcho = noEcho - self.defaultValue = defaultValue - self.parameterKey = parameterKey - self.description = description - } - - private enum CodingKeys: String, CodingKey { - case noEcho = "NoEcho" - case defaultValue = "DefaultValue" - case parameterKey = "ParameterKey" - case description = "Description" - } - } - - public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: false, type: .string), - AWSShapeMember(label: "Key", required: false, type: .string) - ] - /// Required. A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value. - public let value: String? - /// Required. A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have the reserved prefix: aws:. - public let key: String? - - public init(value: String? = nil, key: String? = nil) { - self.value = value - self.key = key - } - - private enum CodingKeys: String, CodingKey { - case value = "Value" - case key = "Key" - } - } - public struct DescribeAccountLimitsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string) ] /// A string that identifies the next page of limits that you want to retrieve. @@ -705,44 +560,15 @@ extension Cloudformation { } } - public struct ValidateTemplateOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CapabilitiesReason", required: false, type: .string), - AWSShapeMember(label: "DeclaredTransforms", required: false, type: .list), - AWSShapeMember(label: "Parameters", required: false, type: .list), - AWSShapeMember(label: "Capabilities", required: false, type: .list), - AWSShapeMember(label: "Description", required: false, type: .string) - ] - /// The list of resources that generated the values in the Capabilities response element. - public let capabilitiesReason: String? - /// A list of the transforms that are declared in the template. - public let declaredTransforms: [String]? - /// A list of TemplateParameter structures. - public let parameters: [TemplateParameter]? - /// The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return an InsufficientCapabilities error. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. - public let capabilities: [Capability]? - /// The description found within the template. - public let description: String? - - public init(capabilitiesReason: String? = nil, declaredTransforms: [String]? = nil, parameters: [TemplateParameter]? = nil, capabilities: [Capability]? = nil, description: String? = nil) { - self.capabilitiesReason = capabilitiesReason - self.declaredTransforms = declaredTransforms - self.parameters = parameters - self.capabilities = capabilities - self.description = description - } - - private enum CodingKeys: String, CodingKey { - case capabilitiesReason = "CapabilitiesReason" - case declaredTransforms = "DeclaredTransforms" - case parameters = "Parameters" - case capabilities = "Capabilities" - case description = "Description" - } + public enum StackInstanceStatus: String, CustomStringConvertible, Codable { + case current = "CURRENT" + case outdated = "OUTDATED" + case inoperable = "INOPERABLE" + public var description: String { return self.rawValue } } public struct ResourceChangeDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Target", required: false, type: .structure), AWSShapeMember(label: "CausingEntity", required: false, type: .string), AWSShapeMember(label: "ChangeSource", required: false, type: .enum), @@ -772,17 +598,8 @@ extension Cloudformation { } } - public enum ChangeSetStatus: String, CustomStringConvertible, Codable { - case createPending = "CREATE_PENDING" - case createInProgress = "CREATE_IN_PROGRESS" - case createComplete = "CREATE_COMPLETE" - case deleteComplete = "DELETE_COMPLETE" - case failed = "FAILED" - public var description: String { return self.rawValue } - } - public struct ListStacksInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "StackStatusFilter", required: false, type: .list) ] @@ -808,12 +625,8 @@ extension Cloudformation { public var description: String { return self.rawValue } } - public struct ExecuteChangeSetOutput: AWSShape { - - } - public struct SignalResourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UniqueId", required: true, type: .string), AWSShapeMember(label: "Status", required: true, type: .enum), AWSShapeMember(label: "StackName", required: true, type: .string), @@ -847,82 +660,86 @@ extension Cloudformation { } - public enum EvaluationType: String, CustomStringConvertible, Codable { - case `static` = "Static" - case dynamic = "Dynamic" - public var description: String { return self.rawValue } - } - - public struct DescribeStackResourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackName", required: true, type: .string), - AWSShapeMember(label: "LogicalResourceId", required: true, type: .string) + public struct DescribeStackEventsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackName", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string) ] /// The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. - public let stackName: String - /// The logical name of the resource as specified in the template. Default: There is no default value. - public let logicalResourceId: String + public let stackName: String? + /// A string that identifies the next page of events that you want to retrieve. + public let nextToken: String? - public init(stackName: String, logicalResourceId: String) { + public init(stackName: String? = nil, nextToken: String? = nil) { self.stackName = stackName - self.logicalResourceId = logicalResourceId + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { case stackName = "StackName" - case logicalResourceId = "LogicalResourceId" + case nextToken = "NextToken" } } - public struct DescribeStackEventsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DescribeChangeSetInput: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackName", required: false, type: .string), - AWSShapeMember(label: "NextToken", required: false, type: .string) + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ChangeSetName", required: true, type: .string) ] - /// The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. + /// If you specified the name of a change set, specify the stack name or ID (ARN) of the change set you want to describe. public let stackName: String? - /// A string that identifies the next page of events that you want to retrieve. + /// A string (provided by the DescribeChangeSet response output) that identifies the next page of information that you want to retrieve. public let nextToken: String? + /// The name or Amazon Resource Name (ARN) of the change set that you want to describe. + public let changeSetName: String - public init(stackName: String? = nil, nextToken: String? = nil) { + public init(stackName: String? = nil, nextToken: String? = nil, changeSetName: String) { self.stackName = stackName self.nextToken = nextToken + self.changeSetName = changeSetName } private enum CodingKeys: String, CodingKey { case stackName = "StackName" case nextToken = "NextToken" + case changeSetName = "ChangeSetName" } } public struct GetTemplateSummaryInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackName", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TemplateURL", required: false, type: .string), - AWSShapeMember(label: "TemplateBody", required: false, type: .string) + AWSShapeMember(label: "TemplateBody", required: false, type: .string), + AWSShapeMember(label: "StackName", required: false, type: .string), + AWSShapeMember(label: "StackSetName", required: false, type: .string) ] - /// The name or the stack ID that is associated with the stack, which are not always interchangeable. For running stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the unique stack ID. Conditional: You must specify only one of the following parameters: StackName, TemplateBody, or TemplateURL. - public let stackName: String? - /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: StackName, TemplateBody, or TemplateURL. + /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. public let templateURL: String? - /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: StackName, TemplateBody, or TemplateURL. + /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. public let templateBody: String? + /// The name or the stack ID that is associated with the stack, which are not always interchangeable. For running stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the unique stack ID. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. + public let stackName: String? + /// The name or unique ID of the stack set from which the stack was created. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. + public let stackSetName: String? - public init(stackName: String? = nil, templateURL: String? = nil, templateBody: String? = nil) { - self.stackName = stackName + public init(templateURL: String? = nil, templateBody: String? = nil, stackName: String? = nil, stackSetName: String? = nil) { self.templateURL = templateURL self.templateBody = templateBody + self.stackName = stackName + self.stackSetName = stackSetName } private enum CodingKeys: String, CodingKey { - case stackName = "StackName" case templateURL = "TemplateURL" case templateBody = "TemplateBody" + case stackName = "StackName" + case stackSetName = "StackSetName" } } public struct EstimateTemplateCostInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .list), AWSShapeMember(label: "TemplateURL", required: false, type: .string), AWSShapeMember(label: "TemplateBody", required: false, type: .string) @@ -947,176 +764,128 @@ extension Cloudformation { } } - public struct DescribeChangeSetInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackName", required: false, type: .string), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "ChangeSetName", required: true, type: .string) + public struct DescribeStackInstanceInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackInstanceAccount", required: true, type: .string), + AWSShapeMember(label: "StackInstanceRegion", required: true, type: .string), + AWSShapeMember(label: "StackSetName", required: true, type: .string) ] - /// If you specified the name of a change set, specify the stack name or ID (ARN) of the change set you want to describe. - public let stackName: String? - /// A string (provided by the DescribeChangeSet response output) that identifies the next page of information that you want to retrieve. - public let nextToken: String? - /// The name or Amazon Resource Name (ARN) of the change set that you want to describe. - public let changeSetName: String + /// The ID of an AWS account that's associated with this stack instance. + public let stackInstanceAccount: String + /// The name of a region that's associated with this stack instance. + public let stackInstanceRegion: String + /// The name or the unique stack ID of the stack set that you want to get stack instance information for. + public let stackSetName: String - public init(stackName: String? = nil, nextToken: String? = nil, changeSetName: String) { - self.stackName = stackName - self.nextToken = nextToken - self.changeSetName = changeSetName + public init(stackInstanceAccount: String, stackInstanceRegion: String, stackSetName: String) { + self.stackInstanceAccount = stackInstanceAccount + self.stackInstanceRegion = stackInstanceRegion + self.stackSetName = stackSetName } private enum CodingKeys: String, CodingKey { - case stackName = "StackName" - case nextToken = "NextToken" - case changeSetName = "ChangeSetName" + case stackInstanceAccount = "StackInstanceAccount" + case stackInstanceRegion = "StackInstanceRegion" + case stackSetName = "StackSetName" } } - public struct ValidateTemplateInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TemplateURL", required: false, type: .string), - AWSShapeMember(label: "TemplateBody", required: false, type: .string) + public struct StackInstanceSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StatusReason", required: false, type: .string), + AWSShapeMember(label: "StackSetId", required: false, type: .string), + AWSShapeMember(label: "Account", required: false, type: .string), + AWSShapeMember(label: "StackId", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "Region", required: false, type: .string) ] - /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. - public let templateURL: String? - /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. - public let templateBody: String? + /// The explanation for the specific status code assigned to this stack instance. + public let statusReason: String? + /// The name or unique ID of the stack set that the stack instance is associated with. + public let stackSetId: String? + /// The name of the AWS account that the stack instance is associated with. + public let account: String? + /// The ID of the stack instance. + public let stackId: String? + /// The status of the stack instance, in terms of its synchronization with its associated stack set. INOPERABLE: A DeleteStackInstances operation has failed and left the stack in an unstable state. Stacks in this state are excluded from further UpdateStackSet operations. You might need to perform a DeleteStackInstances operation, with RetainStacks set to true, to delete the stack instance, and then delete the stack manually. OUTDATED: The stack isn't currently up to date with the stack set because: The associated stack failed during a CreateStackSet or UpdateStackSet operation. The stack was part of a CreateStackSet or UpdateStackSet operation that failed or was stopped before the stack was created or updated. CURRENT: The stack is currently up to date with the stack set. + public let status: StackInstanceStatus? + /// The name of the AWS region that the stack instance is associated with. + public let region: String? - public init(templateURL: String? = nil, templateBody: String? = nil) { - self.templateURL = templateURL - self.templateBody = templateBody + public init(statusReason: String? = nil, stackSetId: String? = nil, account: String? = nil, stackId: String? = nil, status: StackInstanceStatus? = nil, region: String? = nil) { + self.statusReason = statusReason + self.stackSetId = stackSetId + self.account = account + self.stackId = stackId + self.status = status + self.region = region } private enum CodingKeys: String, CodingKey { - case templateURL = "TemplateURL" - case templateBody = "TemplateBody" + case statusReason = "StatusReason" + case stackSetId = "StackSetId" + case account = "Account" + case stackId = "StackId" + case status = "Status" + case region = "Region" } } - public enum TemplateStage: String, CustomStringConvertible, Codable { - case original = "Original" - case processed = "Processed" - public var description: String { return self.rawValue } + public struct CreateStackInstancesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperationId", required: false, type: .string) + ] + /// The unique identifier for this stack set operation. + public let operationId: String? + + public init(operationId: String? = nil) { + self.operationId = operationId + } + + private enum CodingKeys: String, CodingKey { + case operationId = "OperationId" + } } public struct Parameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterValue", required: false, type: .string), AWSShapeMember(label: "UsePreviousValue", required: false, type: .boolean), - AWSShapeMember(label: "ParameterKey", required: false, type: .string) + AWSShapeMember(label: "ParameterKey", required: false, type: .string), + AWSShapeMember(label: "ResolvedValue", required: false, type: .string) ] - /// The value associated with the parameter. + /// The input value associated with the parameter. public let parameterValue: String? /// During a stack update, use the existing parameter value that the stack is using for a given parameter key. If you specify true, do not specify a parameter value. public let usePreviousValue: Bool? /// The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that is specified in your template. public let parameterKey: String? + /// Read-only. The value that corresponds to a Systems Manager parameter key. This field is returned only for SSM parameter types in the template. + public let resolvedValue: String? - public init(parameterValue: String? = nil, usePreviousValue: Bool? = nil, parameterKey: String? = nil) { + public init(parameterValue: String? = nil, usePreviousValue: Bool? = nil, parameterKey: String? = nil, resolvedValue: String? = nil) { self.parameterValue = parameterValue self.usePreviousValue = usePreviousValue self.parameterKey = parameterKey + self.resolvedValue = resolvedValue } private enum CodingKeys: String, CodingKey { case parameterValue = "ParameterValue" case usePreviousValue = "UsePreviousValue" case parameterKey = "ParameterKey" - } - } - - public struct ContinueUpdateRollbackOutput: AWSShape { - - } - - public struct ListExportsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Exports", required: false, type: .list) - ] - /// If the output exceeds 100 exported output values, a string that identifies the next page of exports. If there is no additional page, this value is null. - public let nextToken: String? - /// The output for the ListExports action. - public let exports: [Export]? - - public init(nextToken: String? = nil, exports: [Export]? = nil) { - self.nextToken = nextToken - self.exports = exports - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case exports = "Exports" - } - } - - public struct ListImportsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Imports", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - /// A list of stack names that are importing the specified exported output value. - public let imports: [String]? - /// A string that identifies the next page of exports. If there is no additional page, this value is null. - public let nextToken: String? - - public init(imports: [String]? = nil, nextToken: String? = nil) { - self.imports = imports - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case imports = "Imports" - case nextToken = "NextToken" - } - } - - public struct CreateStackOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackId", required: false, type: .string) - ] - /// Unique identifier of the stack. - public let stackId: String? - - public init(stackId: String? = nil) { - self.stackId = stackId - } - - private enum CodingKeys: String, CodingKey { - case stackId = "StackId" - } - } - - public struct Change: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Type", required: false, type: .enum), - AWSShapeMember(label: "ResourceChange", required: false, type: .structure) - ] - /// The type of entity that AWS CloudFormation changes. Currently, the only entity type is Resource. - public let `type`: ChangeType? - /// A ResourceChange structure that describes the resource and action that AWS CloudFormation will perform. - public let resourceChange: ResourceChange? - - public init(type: ChangeType? = nil, resourceChange: ResourceChange? = nil) { - self.`type` = `type` - self.resourceChange = resourceChange - } - - private enum CodingKeys: String, CodingKey { - case `type` = "Type" - case resourceChange = "ResourceChange" + case resolvedValue = "ResolvedValue" } } public struct ContinueUpdateRollbackInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourcesToSkip", required: false, type: .list), AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), AWSShapeMember(label: "StackName", required: true, type: .string), AWSShapeMember(label: "RoleARN", required: false, type: .string) ] - /// A list of the logical IDs of the resources that AWS CloudFormation skips during the continue update rollback operation. You can specify only resources that are in the UPDATE_FAILED state because a rollback failed. You can't specify resources that are in the UPDATE_FAILED state for other reasons, for example, because an update was canceled. To check why a resource update failed, use the DescribeStackResources action, and view the resource status reason. Specify this property to skip rolling back resources that AWS CloudFormation can't successfully roll back. We recommend that you troubleshoot resources before skipping them. AWS CloudFormation sets the status of the specified resources to UPDATE_COMPLETE and continues to roll back the stack. After the rollback is complete, the state of the skipped resources will be inconsistent with the state of the resources in the stack template. Before performing another stack update, you must update the stack or resources to be consistent with each other. If you don't, subsequent stack updates might fail, and the stack will become unrecoverable. Specify the minimum number of resources required to successfully roll back your stack. For example, a failed resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the dependent resources. To specify resources in a nested stack, use the following format: NestedStackName.ResourceLogicalID. If the ResourceLogicalID is a stack resource (Type: AWS::CloudFormation::Stack), it must be in one of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED. + /// A list of the logical IDs of the resources that AWS CloudFormation skips during the continue update rollback operation. You can specify only resources that are in the UPDATE_FAILED state because a rollback failed. You can't specify resources that are in the UPDATE_FAILED state for other reasons, for example, because an update was cancelled. To check why a resource update failed, use the DescribeStackResources action, and view the resource status reason. Specify this property to skip rolling back resources that AWS CloudFormation can't successfully roll back. We recommend that you troubleshoot resources before skipping them. AWS CloudFormation sets the status of the specified resources to UPDATE_COMPLETE and continues to roll back the stack. After the rollback is complete, the state of the skipped resources will be inconsistent with the state of the resources in the stack template. Before performing another stack update, you must update the stack or resources to be consistent with each other. If you don't, subsequent stack updates might fail, and the stack will become unrecoverable. Specify the minimum number of resources required to successfully roll back your stack. For example, a failed resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the dependent resources. To skip resources that are part of nested stacks, use the following format: NestedStackName.ResourceLogicalID. If you want to specify the logical ID of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip list, then its corresponding embedded stack must be in one of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED. Don't confuse a child stack's name with its corresponding logical ID defined in the parent stack. For an example of a continue update rollback operation with nested stacks, see Using ResourcesToSkip to recover a nested stacks hierarchy. public let resourcesToSkip: [String]? /// A unique identifier for this ContinueUpdateRollback request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to continue the rollback to a stack with the same name. You might retry ContinueUpdateRollback requests to ensure that AWS CloudFormation successfully received them. public let clientRequestToken: String? @@ -1140,104 +909,29 @@ extension Cloudformation { } } - public struct CreateStackInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackPolicyBody", required: false, type: .string), - AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .list), - AWSShapeMember(label: "OnFailure", required: false, type: .enum), - AWSShapeMember(label: "RoleARN", required: false, type: .string), - AWSShapeMember(label: "DisableRollback", required: false, type: .boolean), - AWSShapeMember(label: "StackPolicyURL", required: false, type: .string), - AWSShapeMember(label: "NotificationARNs", required: false, type: .list), - AWSShapeMember(label: "Parameters", required: false, type: .list), - AWSShapeMember(label: "ResourceTypes", required: false, type: .list), - AWSShapeMember(label: "TimeoutInMinutes", required: false, type: .integer), - AWSShapeMember(label: "TemplateURL", required: false, type: .string), - AWSShapeMember(label: "TemplateBody", required: false, type: .string), - AWSShapeMember(label: "StackName", required: true, type: .string), - AWSShapeMember(label: "Capabilities", required: false, type: .list) + public struct AccountLimit: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: false, type: .integer), + AWSShapeMember(label: "Name", required: false, type: .string) ] - /// Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. - public let stackPolicyBody: String? - /// A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. - public let clientRequestToken: String? - /// Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 10 tags can be specified. - public let tags: [Tag]? - /// Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both. Default: ROLLBACK - public let onFailure: OnFailure? - /// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. - public let roleARN: String? - /// Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both. Default: false - public let disableRollback: Bool? - /// Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. - public let stackPolicyURL: String? - /// The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI). - public let notificationARNs: [String]? - /// A list of Parameter structures that specify input parameters for the stack. For more information, see the Parameter data type. - public let parameters: [Parameter]? - /// The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management. - public let resourceTypes: [String]? - /// The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back. - public let timeoutInMinutes: Int32? - /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, go to the Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. - public let templateURL: String? - /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. - public let templateBody: String? - /// The name that is associated with the stack. The name must be unique in the region in which you are creating the stack. A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. - public let stackName: String - /// A list of values that you must specify before AWS CloudFormation can create certain stacks. Some stack templates might include resources that can affect permissions in your AWS account, for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter. The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. - public let capabilities: [Capability]? + /// The value that is associated with the account limit name. + public let value: Int32? + /// The name of the account limit. Currently, the only account limit is StackLimit. + public let name: String? - public init(stackPolicyBody: String? = nil, clientRequestToken: String? = nil, tags: [Tag]? = nil, onFailure: OnFailure? = nil, roleARN: String? = nil, disableRollback: Bool? = nil, stackPolicyURL: String? = nil, notificationARNs: [String]? = nil, parameters: [Parameter]? = nil, resourceTypes: [String]? = nil, timeoutInMinutes: Int32? = nil, templateURL: String? = nil, templateBody: String? = nil, stackName: String, capabilities: [Capability]? = nil) { - self.stackPolicyBody = stackPolicyBody - self.clientRequestToken = clientRequestToken - self.tags = tags - self.onFailure = onFailure - self.roleARN = roleARN - self.disableRollback = disableRollback - self.stackPolicyURL = stackPolicyURL - self.notificationARNs = notificationARNs - self.parameters = parameters - self.resourceTypes = resourceTypes - self.timeoutInMinutes = timeoutInMinutes - self.templateURL = templateURL - self.templateBody = templateBody - self.stackName = stackName - self.capabilities = capabilities + public init(value: Int32? = nil, name: String? = nil) { + self.value = value + self.name = name } private enum CodingKeys: String, CodingKey { - case stackPolicyBody = "StackPolicyBody" - case clientRequestToken = "ClientRequestToken" - case tags = "Tags" - case onFailure = "OnFailure" - case roleARN = "RoleARN" - case disableRollback = "DisableRollback" - case stackPolicyURL = "StackPolicyURL" - case notificationARNs = "NotificationARNs" - case parameters = "Parameters" - case resourceTypes = "ResourceTypes" - case timeoutInMinutes = "TimeoutInMinutes" - case templateURL = "TemplateURL" - case templateBody = "TemplateBody" - case stackName = "StackName" - case capabilities = "Capabilities" + case value = "Value" + case name = "Name" } } - public enum ExecutionStatus: String, CustomStringConvertible, Codable { - case unavailable = "UNAVAILABLE" - case available = "AVAILABLE" - case executeInProgress = "EXECUTE_IN_PROGRESS" - case executeComplete = "EXECUTE_COMPLETE" - case executeFailed = "EXECUTE_FAILED" - case obsolete = "OBSOLETE" - public var description: String { return self.rawValue } - } - public struct SetStackPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackName", required: true, type: .string), AWSShapeMember(label: "StackPolicyBody", required: false, type: .string), AWSShapeMember(label: "StackPolicyURL", required: false, type: .string) @@ -1262,24 +956,8 @@ extension Cloudformation { } } - public struct DescribeStackResourcesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackResources", required: false, type: .list) - ] - /// A list of StackResource structures. - public let stackResources: [StackResource]? - - public init(stackResources: [StackResource]? = nil) { - self.stackResources = stackResources - } - - private enum CodingKeys: String, CodingKey { - case stackResources = "StackResources" - } - } - public struct Export: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExportingStackId", required: false, type: .string), AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) @@ -1305,7 +983,7 @@ extension Cloudformation { } public struct GetTemplateSummaryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metadata", required: false, type: .string), AWSShapeMember(label: "CapabilitiesReason", required: false, type: .string), AWSShapeMember(label: "Parameters", required: false, type: .list), @@ -1355,81 +1033,97 @@ extension Cloudformation { } } - public struct ListStacksOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "StackSummaries", required: false, type: .list) + public enum Replacement: String, CustomStringConvertible, Codable { + case `true` = "True" + case `false` = "False" + case conditional = "Conditional" + public var description: String { return self.rawValue } + } + + public struct RollbackConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RollbackTriggers", required: false, type: .list), + AWSShapeMember(label: "MonitoringTimeInMinutes", required: false, type: .integer) ] - /// If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If no additional page exists, this value is null. - public let nextToken: String? - /// A list of StackSummary structures containing information about the specified stacks. - public let stackSummaries: [StackSummary]? + /// The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. This means: If you don't specify this parameter, AWS CloudFormation uses the rollback triggers previously specified for this stack, if any. If you specify any rollback triggers using this parameter, you must specify all the triggers that you want used for this stack, even triggers you've specifed before (for example, when creating the stack or during a previous stack update). Any triggers that you don't include in the updated list of triggers are no longer applied to the stack. If you specify an empty list, AWS CloudFormation removes all currently specified triggers. If a specified Cloudwatch alarm is missing, the entire stack operation fails and is rolled back. + public let rollbackTriggers: [RollbackTrigger]? + /// The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. If any of the alarms goes to ALERT state during the stack operation or this monitoring period, CloudFormation rolls back the entire stack operation. Then, for update operations, if the monitoring period expires without any alarms going to ALERT state CloudFormation proceeds to dispose of old resources as usual. If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources for update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes. + public let monitoringTimeInMinutes: Int32? - public init(nextToken: String? = nil, stackSummaries: [StackSummary]? = nil) { - self.nextToken = nextToken - self.stackSummaries = stackSummaries + public init(rollbackTriggers: [RollbackTrigger]? = nil, monitoringTimeInMinutes: Int32? = nil) { + self.rollbackTriggers = rollbackTriggers + self.monitoringTimeInMinutes = monitoringTimeInMinutes } private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case stackSummaries = "StackSummaries" + case rollbackTriggers = "RollbackTriggers" + case monitoringTimeInMinutes = "MonitoringTimeInMinutes" } } - public struct AccountLimit: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: false, type: .integer), - AWSShapeMember(label: "Name", required: false, type: .string) - ] - /// The value that is associated with the account limit name. - public let value: Int32? - /// The name of the account limit. Currently, the only account limit is StackLimit. - public let name: String? - - public init(value: Int32? = nil, name: String? = nil) { - self.value = value - self.name = name + public struct StackSetOperation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RetainStacks", required: false, type: .boolean), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "StackSetId", required: false, type: .string), + AWSShapeMember(label: "OperationPreferences", required: false, type: .structure), + AWSShapeMember(label: "Action", required: false, type: .enum), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "OperationId", required: false, type: .string), + AWSShapeMember(label: "EndTimestamp", required: false, type: .timestamp) + ] + /// For stack set operations of action type DELETE, specifies whether to remove the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a retained stack, or add an existing, saved stack to a new stack set. + public let retainStacks: Bool? + /// The status of the operation. FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each region during stack create and update operations. If the number of failed stacks within a region exceeds the failure tolerance, the status of the operation in the region is set to FAILED. This in turn sets the status of the operation as a whole to FAILED, and AWS CloudFormation cancels the operation in any remaining regions. RUNNING: The operation is currently being performed. STOPPED: The user has cancelled the operation. STOPPING: The operation is in the process of stopping, at user request. SUCCEEDED: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation. + public let status: StackSetOperationStatus? + /// The ID of the stack set. + public let stackSetId: String? + /// The preferences for how AWS CloudFormation performs this stack set operation. + public let operationPreferences: StackSetOperationPreferences? + /// The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete operations affect only the specified stack set instances that are associated with the specified stack set. Update operations affect both the stack set itself, as well as all associated stack set instances. + public let action: StackSetOperationAction? + /// The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because AWS CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested regions, before actually creating the first stacks. + public let creationTimestamp: TimeStamp? + /// The unique ID of a stack set operation. + public let operationId: String? + /// The time at which the stack set operation ended, across all accounts and regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or region. + public let endTimestamp: TimeStamp? + + public init(retainStacks: Bool? = nil, status: StackSetOperationStatus? = nil, stackSetId: String? = nil, operationPreferences: StackSetOperationPreferences? = nil, action: StackSetOperationAction? = nil, creationTimestamp: TimeStamp? = nil, operationId: String? = nil, endTimestamp: TimeStamp? = nil) { + self.retainStacks = retainStacks + self.status = status + self.stackSetId = stackSetId + self.operationPreferences = operationPreferences + self.action = action + self.creationTimestamp = creationTimestamp + self.operationId = operationId + self.endTimestamp = endTimestamp } private enum CodingKeys: String, CodingKey { - case value = "Value" - case name = "Name" + case retainStacks = "RetainStacks" + case status = "Status" + case stackSetId = "StackSetId" + case operationPreferences = "OperationPreferences" + case action = "Action" + case creationTimestamp = "CreationTimestamp" + case operationId = "OperationId" + case endTimestamp = "EndTimestamp" } } - public enum Replacement: String, CustomStringConvertible, Codable { - case `true` = "True" - case `false` = "False" - case conditional = "Conditional" - public var description: String { return self.rawValue } - } - - public enum ResourceStatus: String, CustomStringConvertible, Codable { - case createInProgress = "CREATE_IN_PROGRESS" - case createFailed = "CREATE_FAILED" - case createComplete = "CREATE_COMPLETE" - case deleteInProgress = "DELETE_IN_PROGRESS" - case deleteFailed = "DELETE_FAILED" - case deleteComplete = "DELETE_COMPLETE" - case deleteSkipped = "DELETE_SKIPPED" - case updateInProgress = "UPDATE_IN_PROGRESS" - case updateFailed = "UPDATE_FAILED" - case updateComplete = "UPDATE_COMPLETE" - public var description: String { return self.rawValue } - } - - public struct DescribeStackResourcesInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackName", required: false, type: .string), - AWSShapeMember(label: "LogicalResourceId", required: false, type: .string), - AWSShapeMember(label: "PhysicalResourceId", required: false, type: .string) - ] - /// The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. Required: Conditional. If you do not specify StackName, you must specify PhysicalResourceId. - public let stackName: String? - /// The logical name of the resource as specified in the template. Default: There is no default value. - public let logicalResourceId: String? - /// The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation. For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources to find which stack the instance belongs to and what other resources are part of the stack. Required: Conditional. If you do not specify PhysicalResourceId, you must specify StackName. Default: There is no default value. - public let physicalResourceId: String? + public struct DescribeStackResourcesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackName", required: false, type: .string), + AWSShapeMember(label: "LogicalResourceId", required: false, type: .string), + AWSShapeMember(label: "PhysicalResourceId", required: false, type: .string) + ] + /// The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. Required: Conditional. If you do not specify StackName, you must specify PhysicalResourceId. + public let stackName: String? + /// The logical name of the resource as specified in the template. Default: There is no default value. + public let logicalResourceId: String? + /// The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation. For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources to find which stack the instance belongs to and what other resources are part of the stack. Required: Conditional. If you do not specify PhysicalResourceId, you must specify StackName. Default: There is no default value. + public let physicalResourceId: String? public init(stackName: String? = nil, logicalResourceId: String? = nil, physicalResourceId: String? = nil) { self.stackName = stackName @@ -1445,13 +1139,14 @@ extension Cloudformation { } public struct DescribeChangeSetOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExecutionStatus", required: false, type: .enum), AWSShapeMember(label: "Changes", required: false, type: .list), AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), - AWSShapeMember(label: "NotificationARNs", required: false, type: .list), + AWSShapeMember(label: "RollbackConfiguration", required: false, type: .structure), AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "NotificationARNs", required: false, type: .list), AWSShapeMember(label: "StatusReason", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "Parameters", required: false, type: .list), @@ -1470,10 +1165,12 @@ extension Cloudformation { public let tags: [Tag]? /// The start time when the change set was created, in UTC. public let creationTime: TimeStamp? - /// The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that will be associated with the stack if you execute the change set. - public let notificationARNs: [String]? + /// The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. + public let rollbackConfiguration: RollbackConfiguration? /// Information about the change set. public let description: String? + /// The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that will be associated with the stack if you execute the change set. + public let notificationARNs: [String]? /// A description of the change set's status. For example, if your attempt to create a change set failed, AWS CloudFormation shows the error message. public let statusReason: String? /// The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE, or FAILED. @@ -1493,13 +1190,14 @@ extension Cloudformation { /// If you execute the change set, the list of capabilities that were explicitly acknowledged when the change set was created. public let capabilities: [Capability]? - public init(executionStatus: ExecutionStatus? = nil, changes: [Change]? = nil, tags: [Tag]? = nil, creationTime: TimeStamp? = nil, notificationARNs: [String]? = nil, description: String? = nil, statusReason: String? = nil, status: ChangeSetStatus? = nil, parameters: [Parameter]? = nil, stackId: String? = nil, changeSetName: String? = nil, changeSetId: String? = nil, stackName: String? = nil, nextToken: String? = nil, capabilities: [Capability]? = nil) { + public init(executionStatus: ExecutionStatus? = nil, changes: [Change]? = nil, tags: [Tag]? = nil, creationTime: TimeStamp? = nil, rollbackConfiguration: RollbackConfiguration? = nil, description: String? = nil, notificationARNs: [String]? = nil, statusReason: String? = nil, status: ChangeSetStatus? = nil, parameters: [Parameter]? = nil, stackId: String? = nil, changeSetName: String? = nil, changeSetId: String? = nil, stackName: String? = nil, nextToken: String? = nil, capabilities: [Capability]? = nil) { self.executionStatus = executionStatus self.changes = changes self.tags = tags self.creationTime = creationTime - self.notificationARNs = notificationARNs + self.rollbackConfiguration = rollbackConfiguration self.description = description + self.notificationARNs = notificationARNs self.statusReason = statusReason self.status = status self.parameters = parameters @@ -1516,8 +1214,9 @@ extension Cloudformation { case changes = "Changes" case tags = "Tags" case creationTime = "CreationTime" - case notificationARNs = "NotificationARNs" + case rollbackConfiguration = "RollbackConfiguration" case description = "Description" + case notificationARNs = "NotificationARNs" case statusReason = "StatusReason" case status = "Status" case parameters = "Parameters" @@ -1531,7 +1230,7 @@ extension Cloudformation { } public struct ListStackResourcesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackName", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1551,45 +1250,14 @@ extension Cloudformation { } } - public struct EstimateTemplateCostOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Url", required: false, type: .string) - ] - /// An AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template. - public let url: String? - - public init(url: String? = nil) { - self.url = url - } - - private enum CodingKeys: String, CodingKey { - case url = "Url" - } - } - - public struct UpdateStackOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackId", required: false, type: .string) - ] - /// Unique identifier of the stack. - public let stackId: String? - - public init(stackId: String? = nil) { - self.stackId = stackId - } - - private enum CodingKeys: String, CodingKey { - case stackId = "StackId" - } - } - public struct CreateChangeSetInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientToken", required: false, type: .string), AWSShapeMember(label: "ChangeSetType", required: false, type: .enum), AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "RoleARN", required: false, type: .string), AWSShapeMember(label: "UsePreviousTemplate", required: false, type: .boolean), + AWSShapeMember(label: "RollbackConfiguration", required: false, type: .structure), AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "NotificationARNs", required: false, type: .list), AWSShapeMember(label: "Parameters", required: false, type: .list), @@ -1604,12 +1272,14 @@ extension Cloudformation { public let clientToken: String? /// The type of change set operation. To create a change set for a new stack, specify CREATE. To create a change set for an existing stack, specify UPDATE. If you create a change set for a new stack, AWS Cloudformation creates a stack with a unique stack ID, but no template or resources. The stack will be in the REVIEW_IN_PROGRESS state until you execute the change set. By default, AWS CloudFormation specifies UPDATE. You can't use the UPDATE type to create a change set for a new stack or the CREATE type to create a change set for an existing stack. public let changeSetType: ChangeSetType? - /// Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to resources in the stack. You can specify a maximum of 10 tags. + /// Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to resources in the stack. You can specify a maximum of 50 tags. public let tags: [Tag]? /// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes when executing the change set. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. public let roleARN: String? /// Whether to reuse the template that is associated with the stack to create the change set. public let usePreviousTemplate: Bool? + /// The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. + public let rollbackConfiguration: RollbackConfiguration? /// A description to help you identify this change set. public let description: String? /// The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon SNS) topics that AWS CloudFormation associates with the stack. To remove all associated notification topics, specify an empty list. @@ -1629,12 +1299,13 @@ extension Cloudformation { /// A list of values that you must specify before AWS CloudFormation can update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account, for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter. The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. public let capabilities: [Capability]? - public init(clientToken: String? = nil, changeSetType: ChangeSetType? = nil, tags: [Tag]? = nil, roleARN: String? = nil, usePreviousTemplate: Bool? = nil, description: String? = nil, notificationARNs: [String]? = nil, parameters: [Parameter]? = nil, changeSetName: String, resourceTypes: [String]? = nil, templateURL: String? = nil, templateBody: String? = nil, stackName: String, capabilities: [Capability]? = nil) { + public init(clientToken: String? = nil, changeSetType: ChangeSetType? = nil, tags: [Tag]? = nil, roleARN: String? = nil, usePreviousTemplate: Bool? = nil, rollbackConfiguration: RollbackConfiguration? = nil, description: String? = nil, notificationARNs: [String]? = nil, parameters: [Parameter]? = nil, changeSetName: String, resourceTypes: [String]? = nil, templateURL: String? = nil, templateBody: String? = nil, stackName: String, capabilities: [Capability]? = nil) { self.clientToken = clientToken self.changeSetType = changeSetType self.tags = tags self.roleARN = roleARN self.usePreviousTemplate = usePreviousTemplate + self.rollbackConfiguration = rollbackConfiguration self.description = description self.notificationARNs = notificationARNs self.parameters = parameters @@ -1652,6 +1323,7 @@ extension Cloudformation { case tags = "Tags" case roleARN = "RoleARN" case usePreviousTemplate = "UsePreviousTemplate" + case rollbackConfiguration = "RollbackConfiguration" case description = "Description" case notificationARNs = "NotificationARNs" case parameters = "Parameters" @@ -1665,7 +1337,7 @@ extension Cloudformation { } public struct ListChangeSetsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackName", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1706,32 +1378,6 @@ extension Cloudformation { public var description: String { return self.rawValue } } - public struct GetTemplateInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackName", required: false, type: .string), - AWSShapeMember(label: "ChangeSetName", required: false, type: .string), - AWSShapeMember(label: "TemplateStage", required: false, type: .enum) - ] - /// The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. - public let stackName: String? - /// The name or Amazon Resource Name (ARN) of a change set for which AWS CloudFormation returns the associated template. If you specify a name, you must also specify the StackName. - public let changeSetName: String? - /// For templates that include transforms, the stage of the template that AWS CloudFormation returns. To get the user-submitted template, specify Original. To get the template after AWS CloudFormation has processed all transforms, specify Processed. If the template doesn't include transforms, Original and Processed return the same template. By default, AWS CloudFormation specifies Original. - public let templateStage: TemplateStage? - - public init(stackName: String? = nil, changeSetName: String? = nil, templateStage: TemplateStage? = nil) { - self.stackName = stackName - self.changeSetName = changeSetName - self.templateStage = templateStage - } - - private enum CodingKeys: String, CodingKey { - case stackName = "StackName" - case changeSetName = "ChangeSetName" - case templateStage = "TemplateStage" - } - } - public enum ResourceAttribute: String, CustomStringConvertible, Codable { case properties = "Properties" case metadata = "Metadata" @@ -1742,8 +1388,29 @@ extension Cloudformation { public var description: String { return self.rawValue } } + public struct ListStackInstancesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Summaries", required: false, type: .list) + ] + /// If the request doesn't return all of the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListStackInstances again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null. + public let nextToken: String? + /// A list of StackInstanceSummary structures that contain information about the specified stack instances. + public let summaries: [StackInstanceSummary]? + + public init(nextToken: String? = nil, summaries: [StackInstanceSummary]? = nil) { + self.nextToken = nextToken + self.summaries = summaries + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case summaries = "Summaries" + } + } + public struct DescribeStackEventsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "StackEvents", required: false, type: .list) ] @@ -1763,8 +1430,38 @@ extension Cloudformation { } } + public struct StopStackSetOperationOutput: AWSShape { + + } + + public struct GetTemplateInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackName", required: false, type: .string), + AWSShapeMember(label: "ChangeSetName", required: false, type: .string), + AWSShapeMember(label: "TemplateStage", required: false, type: .enum) + ] + /// The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. + public let stackName: String? + /// The name or Amazon Resource Name (ARN) of a change set for which AWS CloudFormation returns the associated template. If you specify a name, you must also specify the StackName. + public let changeSetName: String? + /// For templates that include transforms, the stage of the template that AWS CloudFormation returns. To get the user-submitted template, specify Original. To get the template after AWS CloudFormation has processed all transforms, specify Processed. If the template doesn't include transforms, Original and Processed return the same template. By default, AWS CloudFormation specifies Original. + public let templateStage: TemplateStage? + + public init(stackName: String? = nil, changeSetName: String? = nil, templateStage: TemplateStage? = nil) { + self.stackName = stackName + self.changeSetName = changeSetName + self.templateStage = templateStage + } + + private enum CodingKeys: String, CodingKey { + case stackName = "StackName" + case changeSetName = "ChangeSetName" + case templateStage = "TemplateStage" + } + } + public struct StackEvent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Timestamp", required: true, type: .timestamp), AWSShapeMember(label: "ResourceStatus", required: false, type: .enum), AWSShapeMember(label: "StackId", required: true, type: .string), @@ -1789,7 +1486,7 @@ extension Cloudformation { public let resourceType: String? /// The logical name of the resource specified in the template. public let logicalResourceId: String? - /// The token passed to the operation that generated this event. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. + /// The token passed to the operation that generated this event. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002. public let clientRequestToken: String? /// BLOB of the properties used to create the resource. public let resourceProperties: String? @@ -1830,7 +1527,7 @@ extension Cloudformation { } public struct ChangeSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "StatusReason", required: false, type: .string), AWSShapeMember(label: "ExecutionStatus", required: false, type: .enum), @@ -1885,82 +1582,77 @@ extension Cloudformation { } } - public enum ResourceSignalStatus: String, CustomStringConvertible, Codable { - case success = "SUCCESS" - case failure = "FAILURE" - public var description: String { return self.rawValue } - } - public struct Output: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OutputValue", required: false, type: .string), + AWSShapeMember(label: "ExportName", required: false, type: .string), AWSShapeMember(label: "OutputKey", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] /// The value associated with the output. public let outputValue: String? + /// The name of the export associated with the output. + public let exportName: String? /// The key associated with the output. public let outputKey: String? /// User defined description associated with the output. public let description: String? - public init(outputValue: String? = nil, outputKey: String? = nil, description: String? = nil) { + public init(outputValue: String? = nil, exportName: String? = nil, outputKey: String? = nil, description: String? = nil) { self.outputValue = outputValue + self.exportName = exportName self.outputKey = outputKey self.description = description } private enum CodingKeys: String, CodingKey { case outputValue = "OutputValue" + case exportName = "ExportName" case outputKey = "OutputKey" case description = "Description" } } - public struct ParameterConstraints: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AllowedValues", required: false, type: .list) + public enum ResourceSignalStatus: String, CustomStringConvertible, Codable { + case success = "SUCCESS" + case failure = "FAILURE" + public var description: String { return self.rawValue } + } + + public struct DescribeStackSetOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackSet", required: false, type: .structure) ] - /// A list of values that are permitted for a parameter. - public let allowedValues: [String]? + /// The specified stack set. + public let stackSet: StackSet? - public init(allowedValues: [String]? = nil) { - self.allowedValues = allowedValues + public init(stackSet: StackSet? = nil) { + self.stackSet = stackSet } private enum CodingKeys: String, CodingKey { - case allowedValues = "AllowedValues" + case stackSet = "StackSet" } } - public struct ResourceTargetDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RequiresRecreation", required: false, type: .enum), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "Attribute", required: false, type: .enum) + public struct ParameterConstraints: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AllowedValues", required: false, type: .list) ] - /// If the Attribute value is Properties, indicates whether a change to this property causes the resource to be recreated. The value can be Never, Always, or Conditionally. To determine the conditions for a Conditionally recreation, see the update behavior for that property in the AWS CloudFormation User Guide. - public let requiresRecreation: RequiresRecreation? - /// If the Attribute value is Properties, the name of the property. For all other attributes, the value is null. - public let name: String? - /// Indicates which resource attribute is triggering this update, such as a change in the resource attribute's Metadata, Properties, or Tags. - public let attribute: ResourceAttribute? + /// A list of values that are permitted for a parameter. + public let allowedValues: [String]? - public init(requiresRecreation: RequiresRecreation? = nil, name: String? = nil, attribute: ResourceAttribute? = nil) { - self.requiresRecreation = requiresRecreation - self.name = name - self.attribute = attribute + public init(allowedValues: [String]? = nil) { + self.allowedValues = allowedValues } private enum CodingKeys: String, CodingKey { - case requiresRecreation = "RequiresRecreation" - case name = "Name" - case attribute = "Attribute" + case allowedValues = "AllowedValues" } } public struct StackResourceSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceType", required: true, type: .string), AWSShapeMember(label: "PhysicalResourceId", required: false, type: .string), AWSShapeMember(label: "ResourceStatusReason", required: false, type: .string), @@ -2000,8 +1692,34 @@ extension Cloudformation { } } + public struct ResourceTargetDefinition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RequiresRecreation", required: false, type: .enum), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Attribute", required: false, type: .enum) + ] + /// If the Attribute value is Properties, indicates whether a change to this property causes the resource to be recreated. The value can be Never, Always, or Conditionally. To determine the conditions for a Conditionally recreation, see the update behavior for that property in the AWS CloudFormation User Guide. + public let requiresRecreation: RequiresRecreation? + /// If the Attribute value is Properties, the name of the property. For all other attributes, the value is null. + public let name: String? + /// Indicates which resource attribute is triggering this update, such as a change in the resource attribute's Metadata, Properties, or Tags. + public let attribute: ResourceAttribute? + + public init(requiresRecreation: RequiresRecreation? = nil, name: String? = nil, attribute: ResourceAttribute? = nil) { + self.requiresRecreation = requiresRecreation + self.name = name + self.attribute = attribute + } + + private enum CodingKeys: String, CodingKey { + case requiresRecreation = "RequiresRecreation" + case name = "Name" + case attribute = "Attribute" + } + } + public struct CancelUpdateStackInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), AWSShapeMember(label: "StackName", required: true, type: .string) ] @@ -2021,24 +1739,15 @@ extension Cloudformation { } } - public struct GetStackPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StackName", required: true, type: .string) - ] - /// The name or unique stack ID that is associated with the stack whose policy you want to get. - public let stackName: String - - public init(stackName: String) { - self.stackName = stackName - } - - private enum CodingKeys: String, CodingKey { - case stackName = "StackName" - } + public enum StackSetOperationAction: String, CustomStringConvertible, Codable { + case create = "CREATE" + case update = "UPDATE" + case delete = "DELETE" + public var description: String { return self.rawValue } } public struct StackResource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Timestamp", required: true, type: .timestamp), AWSShapeMember(label: "ResourceStatus", required: true, type: .enum), AWSShapeMember(label: "StackId", required: false, type: .string), @@ -2094,7 +1803,7 @@ extension Cloudformation { } public struct DescribeAccountLimitsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "AccountLimits", required: false, type: .list) ] @@ -2114,8 +1823,69 @@ extension Cloudformation { } } + public struct UpdateStackSetInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackSetName", required: true, type: .string), + AWSShapeMember(label: "OperationPreferences", required: false, type: .structure), + AWSShapeMember(label: "Parameters", required: false, type: .list), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "OperationId", required: false, type: .string), + AWSShapeMember(label: "UsePreviousTemplate", required: false, type: .boolean), + AWSShapeMember(label: "TemplateURL", required: false, type: .string), + AWSShapeMember(label: "TemplateBody", required: false, type: .string), + AWSShapeMember(label: "Capabilities", required: false, type: .list), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The name or unique ID of the stack set that you want to update. + public let stackSetName: String + /// Preferences for how AWS CloudFormation performs this stack set operation. + public let operationPreferences: StackSetOperationPreferences? + /// A list of input parameters for the stack set template. + public let parameters: [Parameter]? + /// The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks. You can specify a maximum number of 50 tags. If you specify tags for this parameter, those tags replace any list of tags that are currently associated with this stack set. This means: If you don't specify this parameter, AWS CloudFormation doesn't modify the stack's tags. If you specify any tags using this parameter, you must specify all the tags that you want associated with this stack set, even tags you've specifed before (for example, when creating the stack set or during a previous update of the stack set.). Any tags that you don't include in the updated list of tags are removed from the stack set, and therefore from the stacks and resources as well. If you specify an empty value, AWS CloudFormation removes all currently associated tags. If you specify new tags as part of an UpdateStackSet action, AWS CloudFormation checks to see if you have the required IAM permission to tag resources. If you omit tags that are currently associated with the stack set from the list of tags you specify, AWS CloudFormation assumes that you want to remove those tags from the stack set, and checks to see if you have permission to untag resources. If you don't have the necessary permission(s), the entire UpdateStackSet action fails with an access denied error, and the stack set is not updated. + public let tags: [Tag]? + /// The unique ID for this stack set operation. The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, AWS CloudFormation generates one automatically. Repeating this stack set operation with a new operation ID retries all stack instances whose status is OUTDATED. + public let operationId: String? + /// Use the existing template that's associated with the stack set that you're updating. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. + public let usePreviousTemplate: Bool? + /// The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. + public let templateURL: String? + /// The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. + public let templateBody: String? + /// A list of values that you must specify before AWS CloudFormation can create certain stack sets. Some stack set templates might include resources that can affect permissions in your AWS account—for example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly acknowledge their capabilities by specifying this parameter. The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter: AWS::IAM::AccessKey AWS::IAM::Group AWS::IAM::InstanceProfile AWS::IAM::Policy AWS::IAM::Role AWS::IAM::User AWS::IAM::UserToGroupAddition If your stack template contains these resources, we recommend that you review all permissions that are associated with them and edit their permissions if necessary. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. + public let capabilities: [Capability]? + /// A brief description of updates that you are making. + public let description: String? + + public init(stackSetName: String, operationPreferences: StackSetOperationPreferences? = nil, parameters: [Parameter]? = nil, tags: [Tag]? = nil, operationId: String? = nil, usePreviousTemplate: Bool? = nil, templateURL: String? = nil, templateBody: String? = nil, capabilities: [Capability]? = nil, description: String? = nil) { + self.stackSetName = stackSetName + self.operationPreferences = operationPreferences + self.parameters = parameters + self.tags = tags + self.operationId = operationId + self.usePreviousTemplate = usePreviousTemplate + self.templateURL = templateURL + self.templateBody = templateBody + self.capabilities = capabilities + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case stackSetName = "StackSetName" + case operationPreferences = "OperationPreferences" + case parameters = "Parameters" + case tags = "Tags" + case operationId = "OperationId" + case usePreviousTemplate = "UsePreviousTemplate" + case templateURL = "TemplateURL" + case templateBody = "TemplateBody" + case capabilities = "Capabilities" + case description = "Description" + } + } + public struct DeleteChangeSetInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackName", required: false, type: .string), AWSShapeMember(label: "ChangeSetName", required: true, type: .string) ] @@ -2135,8 +1905,1460 @@ extension Cloudformation { } } + public struct StopStackSetOperationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperationId", required: true, type: .string), + AWSShapeMember(label: "StackSetName", required: true, type: .string) + ] + /// The ID of the stack operation. + public let operationId: String + /// The name or unique ID of the stack set that you want to stop the operation for. + public let stackSetName: String + + public init(operationId: String, stackSetName: String) { + self.operationId = operationId + self.stackSetName = stackSetName + } + + private enum CodingKeys: String, CodingKey { + case operationId = "OperationId" + case stackSetName = "StackSetName" + } + } + + public enum AccountGateStatus: String, CustomStringConvertible, Codable { + case succeeded = "SUCCEEDED" + case failed = "FAILED" + case skipped = "SKIPPED" + public var description: String { return self.rawValue } + } + + public enum StackSetStatus: String, CustomStringConvertible, Codable { + case active = "ACTIVE" + case deleted = "DELETED" + public var description: String { return self.rawValue } + } + + public struct UpdateTerminationProtectionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackName", required: true, type: .string), + AWSShapeMember(label: "EnableTerminationProtection", required: true, type: .boolean) + ] + /// The name or unique ID of the stack for which you want to set termination protection. + public let stackName: String + /// Whether to enable termination protection on the specified stack. + public let enableTerminationProtection: Bool + + public init(stackName: String, enableTerminationProtection: Bool) { + self.stackName = stackName + self.enableTerminationProtection = enableTerminationProtection + } + + private enum CodingKeys: String, CodingKey { + case stackName = "StackName" + case enableTerminationProtection = "EnableTerminationProtection" + } + } + + public struct ListStackSetsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The status of the stack sets that you want to get summary information about. + public let status: StackSetStatus? + /// If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call ListStackSets again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + public let nextToken: String? + /// The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + public let maxResults: Int32? + + public init(status: StackSetStatus? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.status = status + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case status = "Status" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct DescribeStackInstanceOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackInstance", required: false, type: .structure) + ] + /// The stack instance that matches the specified request parameters. + public let stackInstance: StackInstance? + + public init(stackInstance: StackInstance? = nil) { + self.stackInstance = stackInstance + } + + private enum CodingKeys: String, CodingKey { + case stackInstance = "StackInstance" + } + } + + public struct DeleteStackSetInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackSetName", required: true, type: .string) + ] + /// The name or unique ID of the stack set that you're deleting. You can obtain this value by running ListStackSets. + public let stackSetName: String + + public init(stackSetName: String) { + self.stackSetName = stackSetName + } + + private enum CodingKeys: String, CodingKey { + case stackSetName = "StackSetName" + } + } + + public struct DescribeStacksInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackName", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. + public let stackName: String? + /// A string that identifies the next page of stacks that you want to retrieve. + public let nextToken: String? + + public init(stackName: String? = nil, nextToken: String? = nil) { + self.stackName = stackName + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case stackName = "StackName" + case nextToken = "NextToken" + } + } + + public enum StackSetOperationResultStatus: String, CustomStringConvertible, Codable { + case pending = "PENDING" + case running = "RUNNING" + case succeeded = "SUCCEEDED" + case failed = "FAILED" + case cancelled = "CANCELLED" + public var description: String { return self.rawValue } + } + + public struct DeleteStackInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "StackName", required: true, type: .string), + AWSShapeMember(label: "RetainResources", required: false, type: .list), + AWSShapeMember(label: "RoleARN", required: false, type: .string) + ] + /// A unique identifier for this DeleteStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to delete a stack with the same name. You might retry DeleteStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002. + public let clientRequestToken: String? + /// The name or the unique stack ID that is associated with the stack. + public let stackName: String + /// For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack. + public let retainResources: [String]? + /// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to delete the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. + public let roleARN: String? + + public init(clientRequestToken: String? = nil, stackName: String, retainResources: [String]? = nil, roleARN: String? = nil) { + self.clientRequestToken = clientRequestToken + self.stackName = stackName + self.retainResources = retainResources + self.roleARN = roleARN + } + + private enum CodingKeys: String, CodingKey { + case clientRequestToken = "ClientRequestToken" + case stackName = "StackName" + case retainResources = "RetainResources" + case roleARN = "RoleARN" + } + } + + public enum ChangeSource: String, CustomStringConvertible, Codable { + case resourcereference = "ResourceReference" + case parameterreference = "ParameterReference" + case resourceattribute = "ResourceAttribute" + case directmodification = "DirectModification" + case automatic = "Automatic" + public var description: String { return self.rawValue } + } + + public enum OnFailure: String, CustomStringConvertible, Codable { + case doNothing = "DO_NOTHING" + case rollback = "ROLLBACK" + case delete = "DELETE" + public var description: String { return self.rawValue } + } + + public struct UpdateStackInstancesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperationId", required: false, type: .string) + ] + /// The unique identifier for this stack set operation. + public let operationId: String? + + public init(operationId: String? = nil) { + self.operationId = operationId + } + + private enum CodingKeys: String, CodingKey { + case operationId = "OperationId" + } + } + + public struct ResourceChange: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Details", required: false, type: .list), + AWSShapeMember(label: "Action", required: false, type: .enum), + AWSShapeMember(label: "LogicalResourceId", required: false, type: .string), + AWSShapeMember(label: "ResourceType", required: false, type: .string), + AWSShapeMember(label: "Replacement", required: false, type: .enum), + AWSShapeMember(label: "PhysicalResourceId", required: false, type: .string), + AWSShapeMember(label: "Scope", required: false, type: .list) + ] + /// For the Modify action, a list of ResourceChangeDetail structures that describes the changes that AWS CloudFormation will make to the resource. + public let details: [ResourceChangeDetail]? + /// The action that AWS CloudFormation takes on the resource, such as Add (adds a new resource), Modify (changes a resource), or Remove (deletes a resource). + public let action: ChangeAction? + /// The resource's logical ID, which is defined in the stack's template. + public let logicalResourceId: String? + /// The type of AWS CloudFormation resource, such as AWS::S3::Bucket. + public let resourceType: String? + /// For the Modify action, indicates whether AWS CloudFormation will replace the resource by creating a new one and deleting the old one. This value depends on the value of the RequiresRecreation property in the ResourceTargetDefinition structure. For example, if the RequiresRecreation field is Always and the Evaluation field is Static, Replacement is True. If the RequiresRecreation field is Always and the Evaluation field is Dynamic, Replacement is Conditionally. If you have multiple changes with different RequiresRecreation values, the Replacement value depends on the change with the most impact. A RequiresRecreation value of Always has the most impact, followed by Conditionally, and then Never. + public let replacement: Replacement? + /// The resource's physical ID (resource name). Resources that you are adding don't have physical IDs because they haven't been created. + public let physicalResourceId: String? + /// For the Modify action, indicates which resource attribute is triggering this update, such as a change in the resource attribute's Metadata, Properties, or Tags. + public let scope: [ResourceAttribute]? + + public init(details: [ResourceChangeDetail]? = nil, action: ChangeAction? = nil, logicalResourceId: String? = nil, resourceType: String? = nil, replacement: Replacement? = nil, physicalResourceId: String? = nil, scope: [ResourceAttribute]? = nil) { + self.details = details + self.action = action + self.logicalResourceId = logicalResourceId + self.resourceType = resourceType + self.replacement = replacement + self.physicalResourceId = physicalResourceId + self.scope = scope + } + + private enum CodingKeys: String, CodingKey { + case details = "Details" + case action = "Action" + case logicalResourceId = "LogicalResourceId" + case resourceType = "ResourceType" + case replacement = "Replacement" + case physicalResourceId = "PhysicalResourceId" + case scope = "Scope" + } + } + + public struct CreateChangeSetOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackId", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// The unique ID of the stack. + public let stackId: String? + /// The Amazon Resource Name (ARN) of the change set. + public let id: String? + + public init(stackId: String? = nil, id: String? = nil) { + self.stackId = stackId + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case stackId = "StackId" + case id = "Id" + } + } + + public struct ListExportsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A string (provided by the ListExports response output) that identifies the next page of exported output values that you asked to retrieve. + public let nextToken: String? + + public init(nextToken: String? = nil) { + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + } + } + + public struct Stack: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ParentId", required: false, type: .string), + AWSShapeMember(label: "StackStatus", required: true, type: .enum), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "RoleARN", required: false, type: .string), + AWSShapeMember(label: "DisableRollback", required: false, type: .boolean), + AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), + AWSShapeMember(label: "RollbackConfiguration", required: false, type: .structure), + AWSShapeMember(label: "Outputs", required: false, type: .list), + AWSShapeMember(label: "StackStatusReason", required: false, type: .string), + AWSShapeMember(label: "NotificationARNs", required: false, type: .list), + AWSShapeMember(label: "LastUpdatedTime", required: false, type: .timestamp), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "EnableTerminationProtection", required: false, type: .boolean), + AWSShapeMember(label: "StackId", required: false, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .list), + AWSShapeMember(label: "DeletionTime", required: false, type: .timestamp), + AWSShapeMember(label: "TimeoutInMinutes", required: false, type: .integer), + AWSShapeMember(label: "ChangeSetId", required: false, type: .string), + AWSShapeMember(label: "StackName", required: true, type: .string), + AWSShapeMember(label: "Capabilities", required: false, type: .list), + AWSShapeMember(label: "RootId", required: false, type: .string) + ] + /// For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack. For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide. + public let parentId: String? + /// Current status of the stack. + public let stackStatus: StackStatus + /// A list of Tags that specify information about the stack. + public let tags: [Tag]? + /// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that is associated with the stack. During a stack operation, AWS CloudFormation uses this role's credentials to make calls on your behalf. + public let roleARN: String? + /// Boolean to enable or disable rollback on stack creation failures: true: disable rollback false: enable rollback + public let disableRollback: Bool? + /// The time at which the stack was created. + public let creationTime: TimeStamp + /// The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. + public let rollbackConfiguration: RollbackConfiguration? + /// A list of output structures. + public let outputs: [Output]? + /// Success/failure message associated with the stack status. + public let stackStatusReason: String? + /// SNS topic ARNs to which stack related events are published. + public let notificationARNs: [String]? + /// The time the stack was last updated. This field will only be returned if the stack has been updated at least once. + public let lastUpdatedTime: TimeStamp? + /// A user-defined description associated with the stack. + public let description: String? + /// Whether termination protection is enabled for the stack. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide. + public let enableTerminationProtection: Bool? + /// Unique identifier of the stack. + public let stackId: String? + /// A list of Parameter structures. + public let parameters: [Parameter]? + /// The time the stack was deleted. + public let deletionTime: TimeStamp? + /// The amount of time within which stack creation should complete. + public let timeoutInMinutes: Int32? + /// The unique ID of the change set. + public let changeSetId: String? + /// The name associated with the stack. + public let stackName: String + /// The capabilities allowed in the stack. + public let capabilities: [Capability]? + /// For nested stacks--stacks created as resources for another stack--the stack ID of the the top-level stack to which the nested stack ultimately belongs. For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide. + public let rootId: String? + + public init(parentId: String? = nil, stackStatus: StackStatus, tags: [Tag]? = nil, roleARN: String? = nil, disableRollback: Bool? = nil, creationTime: TimeStamp, rollbackConfiguration: RollbackConfiguration? = nil, outputs: [Output]? = nil, stackStatusReason: String? = nil, notificationARNs: [String]? = nil, lastUpdatedTime: TimeStamp? = nil, description: String? = nil, enableTerminationProtection: Bool? = nil, stackId: String? = nil, parameters: [Parameter]? = nil, deletionTime: TimeStamp? = nil, timeoutInMinutes: Int32? = nil, changeSetId: String? = nil, stackName: String, capabilities: [Capability]? = nil, rootId: String? = nil) { + self.parentId = parentId + self.stackStatus = stackStatus + self.tags = tags + self.roleARN = roleARN + self.disableRollback = disableRollback + self.creationTime = creationTime + self.rollbackConfiguration = rollbackConfiguration + self.outputs = outputs + self.stackStatusReason = stackStatusReason + self.notificationARNs = notificationARNs + self.lastUpdatedTime = lastUpdatedTime + self.description = description + self.enableTerminationProtection = enableTerminationProtection + self.stackId = stackId + self.parameters = parameters + self.deletionTime = deletionTime + self.timeoutInMinutes = timeoutInMinutes + self.changeSetId = changeSetId + self.stackName = stackName + self.capabilities = capabilities + self.rootId = rootId + } + + private enum CodingKeys: String, CodingKey { + case parentId = "ParentId" + case stackStatus = "StackStatus" + case tags = "Tags" + case roleARN = "RoleARN" + case disableRollback = "DisableRollback" + case creationTime = "CreationTime" + case rollbackConfiguration = "RollbackConfiguration" + case outputs = "Outputs" + case stackStatusReason = "StackStatusReason" + case notificationARNs = "NotificationARNs" + case lastUpdatedTime = "LastUpdatedTime" + case description = "Description" + case enableTerminationProtection = "EnableTerminationProtection" + case stackId = "StackId" + case parameters = "Parameters" + case deletionTime = "DeletionTime" + case timeoutInMinutes = "TimeoutInMinutes" + case changeSetId = "ChangeSetId" + case stackName = "StackName" + case capabilities = "Capabilities" + case rootId = "RootId" + } + } + + public struct ExecuteChangeSetInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackName", required: false, type: .string), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "ChangeSetName", required: true, type: .string) + ] + /// If you specified the name of a change set, specify the stack name or ID (ARN) that is associated with the change set you want to execute. + public let stackName: String? + /// A unique identifier for this ExecuteChangeSet request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to execute a change set to update a stack with the same name. You might retry ExecuteChangeSet requests to ensure that AWS CloudFormation successfully received them. + public let clientRequestToken: String? + /// The name or ARN of the change set that you want use to update the specified stack. + public let changeSetName: String + + public init(stackName: String? = nil, clientRequestToken: String? = nil, changeSetName: String) { + self.stackName = stackName + self.clientRequestToken = clientRequestToken + self.changeSetName = changeSetName + } + + private enum CodingKeys: String, CodingKey { + case stackName = "StackName" + case clientRequestToken = "ClientRequestToken" + case changeSetName = "ChangeSetName" + } + } + + public struct StackSetOperationResultSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StatusReason", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "Account", required: false, type: .string), + AWSShapeMember(label: "Region", required: false, type: .string), + AWSShapeMember(label: "AccountGateResult", required: false, type: .structure) + ] + /// The reason for the assigned result status. + public let statusReason: String? + /// The result status of the stack set operation for the given account in the given region. CANCELLED: The operation in the specified account and region has been cancelled. This is either because a user has stopped the stack set operation, or because the failure tolerance of the stack set operation has been exceeded. FAILED: The operation in the specified account and region failed. If the stack set operation fails in enough accounts within a region, the failure tolerance for the stack set operation as a whole might be exceeded. RUNNING: The operation in the specified account and region is currently in progress. PENDING: The operation in the specified account and region has yet to start. SUCCEEDED: The operation in the specified account and region completed successfully. + public let status: StackSetOperationResultStatus? + /// The name of the AWS account for this operation result. + public let account: String? + /// The name of the AWS region for this operation result. + public let region: String? + /// The results of the account gate function AWS CloudFormation invokes, if present, before proceeding with stack set operations in an account + public let accountGateResult: AccountGateResult? + + public init(statusReason: String? = nil, status: StackSetOperationResultStatus? = nil, account: String? = nil, region: String? = nil, accountGateResult: AccountGateResult? = nil) { + self.statusReason = statusReason + self.status = status + self.account = account + self.region = region + self.accountGateResult = accountGateResult + } + + private enum CodingKeys: String, CodingKey { + case statusReason = "StatusReason" + case status = "Status" + case account = "Account" + case region = "Region" + case accountGateResult = "AccountGateResult" + } + } + + public struct ListImportsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ExportName", required: true, type: .string) + ] + /// A string (provided by the ListImports response output) that identifies the next page of stacks that are importing the specified exported output value. + public let nextToken: String? + /// The name of the exported output value. AWS CloudFormation returns the stack names that are importing this value. + public let exportName: String + + public init(nextToken: String? = nil, exportName: String) { + self.nextToken = nextToken + self.exportName = exportName + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case exportName = "ExportName" + } + } + + public struct DescribeStacksOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Stacks", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of stack structures. + public let stacks: [Stack]? + /// If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If no additional page exists, this value is null. + public let nextToken: String? + + public init(stacks: [Stack]? = nil, nextToken: String? = nil) { + self.stacks = stacks + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case stacks = "Stacks" + case nextToken = "NextToken" + } + } + + public struct StackSetOperationSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "OperationId", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "Action", required: false, type: .enum), + AWSShapeMember(label: "EndTimestamp", required: false, type: .timestamp) + ] + /// The overall status of the operation. FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each region during stack create and update operations. If the number of failed stacks within a region exceeds the failure tolerance, the status of the operation in the region is set to FAILED. This in turn sets the status of the operation as a whole to FAILED, and AWS CloudFormation cancels the operation in any remaining regions. RUNNING: The operation is currently being performed. STOPPED: The user has cancelled the operation. STOPPING: The operation is in the process of stopping, at user request. SUCCEEDED: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation. + public let status: StackSetOperationStatus? + /// The unique ID of the stack set operation. + public let operationId: String? + /// The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because AWS CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested regions, before actually creating the first stacks. + public let creationTimestamp: TimeStamp? + /// The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations affect only the specified stack instances that are associated with the specified stack set. Update operations affect both the stack set itself as well as all associated stack set instances. + public let action: StackSetOperationAction? + /// The time at which the stack set operation ended, across all accounts and regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or region. + public let endTimestamp: TimeStamp? + + public init(status: StackSetOperationStatus? = nil, operationId: String? = nil, creationTimestamp: TimeStamp? = nil, action: StackSetOperationAction? = nil, endTimestamp: TimeStamp? = nil) { + self.status = status + self.operationId = operationId + self.creationTimestamp = creationTimestamp + self.action = action + self.endTimestamp = endTimestamp + } + + private enum CodingKeys: String, CodingKey { + case status = "Status" + case operationId = "OperationId" + case creationTimestamp = "CreationTimestamp" + case action = "Action" + case endTimestamp = "EndTimestamp" + } + } + + public struct TemplateParameter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NoEcho", required: false, type: .boolean), + AWSShapeMember(label: "DefaultValue", required: false, type: .string), + AWSShapeMember(label: "ParameterKey", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// Flag indicating whether the parameter should be displayed as plain text in logs and UIs. + public let noEcho: Bool? + /// The default value associated with the parameter. + public let defaultValue: String? + /// The name associated with the parameter. + public let parameterKey: String? + /// User defined description associated with the parameter. + public let description: String? + + public init(noEcho: Bool? = nil, defaultValue: String? = nil, parameterKey: String? = nil, description: String? = nil) { + self.noEcho = noEcho + self.defaultValue = defaultValue + self.parameterKey = parameterKey + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case noEcho = "NoEcho" + case defaultValue = "DefaultValue" + case parameterKey = "ParameterKey" + case description = "Description" + } + } + + public struct ListStackSetOperationResultsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperationId", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StackSetName", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The ID of the stack set operation. + public let operationId: String + /// If the previous request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call ListStackSetOperationResults again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + public let nextToken: String? + /// The name or unique ID of the stack set that you want to get operation results for. + public let stackSetName: String + /// The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + public let maxResults: Int32? + + public init(operationId: String, nextToken: String? = nil, stackSetName: String, maxResults: Int32? = nil) { + self.operationId = operationId + self.nextToken = nextToken + self.stackSetName = stackSetName + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case operationId = "OperationId" + case nextToken = "NextToken" + case stackSetName = "StackSetName" + case maxResults = "MaxResults" + } + } + + public struct DescribeStackSetInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackSetName", required: true, type: .string) + ] + /// The name or unique ID of the stack set whose description you want. + public let stackSetName: String + + public init(stackSetName: String) { + self.stackSetName = stackSetName + } + + private enum CodingKeys: String, CodingKey { + case stackSetName = "StackSetName" + } + } + + public struct ValidateTemplateOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CapabilitiesReason", required: false, type: .string), + AWSShapeMember(label: "DeclaredTransforms", required: false, type: .list), + AWSShapeMember(label: "Parameters", required: false, type: .list), + AWSShapeMember(label: "Capabilities", required: false, type: .list), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The list of resources that generated the values in the Capabilities response element. + public let capabilitiesReason: String? + /// A list of the transforms that are declared in the template. + public let declaredTransforms: [String]? + /// A list of TemplateParameter structures. + public let parameters: [TemplateParameter]? + /// The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return an InsufficientCapabilities error. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. + public let capabilities: [Capability]? + /// The description found within the template. + public let description: String? + + public init(capabilitiesReason: String? = nil, declaredTransforms: [String]? = nil, parameters: [TemplateParameter]? = nil, capabilities: [Capability]? = nil, description: String? = nil) { + self.capabilitiesReason = capabilitiesReason + self.declaredTransforms = declaredTransforms + self.parameters = parameters + self.capabilities = capabilities + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case capabilitiesReason = "CapabilitiesReason" + case declaredTransforms = "DeclaredTransforms" + case parameters = "Parameters" + case capabilities = "Capabilities" + case description = "Description" + } + } + + public enum ChangeSetStatus: String, CustomStringConvertible, Codable { + case createPending = "CREATE_PENDING" + case createInProgress = "CREATE_IN_PROGRESS" + case createComplete = "CREATE_COMPLETE" + case deleteComplete = "DELETE_COMPLETE" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + + public struct RollbackTrigger: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .string), + AWSShapeMember(label: "Arn", required: true, type: .string) + ] + /// The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm is the only supported resource type. + public let `type`: String + /// The Amazon Resource Name (ARN) of the rollback trigger. + public let arn: String + + public init(type: String, arn: String) { + self.`type` = `type` + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case arn = "Arn" + } + } + + public struct ExecuteChangeSetOutput: AWSShape { + + } + + public struct DescribeStackSetOperationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperationId", required: true, type: .string), + AWSShapeMember(label: "StackSetName", required: true, type: .string) + ] + /// The unique ID of the stack set operation. + public let operationId: String + /// The name or the unique stack ID of the stack set for the stack operation. + public let stackSetName: String + + public init(operationId: String, stackSetName: String) { + self.operationId = operationId + self.stackSetName = stackSetName + } + + private enum CodingKeys: String, CodingKey { + case operationId = "OperationId" + case stackSetName = "StackSetName" + } + } + + public enum StackSetOperationStatus: String, CustomStringConvertible, Codable { + case running = "RUNNING" + case succeeded = "SUCCEEDED" + case failed = "FAILED" + case stopping = "STOPPING" + case stopped = "STOPPED" + public var description: String { return self.rawValue } + } + + public struct DescribeStackResourceInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackName", required: true, type: .string), + AWSShapeMember(label: "LogicalResourceId", required: true, type: .string) + ] + /// The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. + public let stackName: String + /// The logical name of the resource as specified in the template. Default: There is no default value. + public let logicalResourceId: String + + public init(stackName: String, logicalResourceId: String) { + self.stackName = stackName + self.logicalResourceId = logicalResourceId + } + + private enum CodingKeys: String, CodingKey { + case stackName = "StackName" + case logicalResourceId = "LogicalResourceId" + } + } + + public enum EvaluationType: String, CustomStringConvertible, Codable { + case `static` = "Static" + case dynamic = "Dynamic" + public var description: String { return self.rawValue } + } + + public struct CreateStackInstancesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ParameterOverrides", required: false, type: .list), + AWSShapeMember(label: "OperationId", required: false, type: .string), + AWSShapeMember(label: "Accounts", required: true, type: .list), + AWSShapeMember(label: "OperationPreferences", required: false, type: .structure), + AWSShapeMember(label: "Regions", required: true, type: .list), + AWSShapeMember(label: "StackSetName", required: true, type: .string) + ] + /// A list of stack set parameters whose values you want to override in the selected stack instances. Any overridden parameter values will be applied to all stack instances in the specified accounts and regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during stack instance operations: To override the current value for a parameter, include the parameter and specify its value. To leave a parameter set to its present value, you can do one of the following: Do not include the parameter in the list. Include the parameter and specify UsePreviousValue as true. (You cannot specify both a value and set UsePreviousValue to true.) To set all overridden parameter back to the values specified in the stack set, specify a parameter list but do not include any parameters. To leave all parameters set to their present values, do not specify this property at all. During stack set updates, any parameter values overridden for a stack instance are not updated, but retain their overridden value. You can only override the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. + public let parameterOverrides: [Parameter]? + /// The unique identifier for this stack set operation. The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, the SDK generates one automatically. Repeating this stack set operation with a new operation ID retries all stack instances whose status is OUTDATED. + public let operationId: String? + /// The names of one or more AWS accounts that you want to create stack instances in the specified region(s) for. + public let accounts: [String] + /// Preferences for how AWS CloudFormation performs this stack set operation. + public let operationPreferences: StackSetOperationPreferences? + /// The names of one or more regions where you want to create stack instances using the specified AWS account(s). + public let regions: [String] + /// The name or unique ID of the stack set that you want to create stack instances from. + public let stackSetName: String + + public init(parameterOverrides: [Parameter]? = nil, operationId: String? = nil, accounts: [String], operationPreferences: StackSetOperationPreferences? = nil, regions: [String], stackSetName: String) { + self.parameterOverrides = parameterOverrides + self.operationId = operationId + self.accounts = accounts + self.operationPreferences = operationPreferences + self.regions = regions + self.stackSetName = stackSetName + } + + private enum CodingKeys: String, CodingKey { + case parameterOverrides = "ParameterOverrides" + case operationId = "OperationId" + case accounts = "Accounts" + case operationPreferences = "OperationPreferences" + case regions = "Regions" + case stackSetName = "StackSetName" + } + } + + public struct ValidateTemplateInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TemplateURL", required: false, type: .string), + AWSShapeMember(label: "TemplateBody", required: false, type: .string) + ] + /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. + public let templateURL: String? + /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. + public let templateBody: String? + + public init(templateURL: String? = nil, templateBody: String? = nil) { + self.templateURL = templateURL + self.templateBody = templateBody + } + + private enum CodingKeys: String, CodingKey { + case templateURL = "TemplateURL" + case templateBody = "TemplateBody" + } + } + + public enum TemplateStage: String, CustomStringConvertible, Codable { + case original = "Original" + case processed = "Processed" + public var description: String { return self.rawValue } + } + + public struct ListStackSetOperationsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StackSetName", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call ListStackSetOperations again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + public let nextToken: String? + /// The name or unique ID of the stack set that you want to get operation summaries for. + public let stackSetName: String + /// The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + public let maxResults: Int32? + + public init(nextToken: String? = nil, stackSetName: String, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.stackSetName = stackSetName + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case stackSetName = "StackSetName" + case maxResults = "MaxResults" + } + } + + public struct ContinueUpdateRollbackOutput: AWSShape { + + } + + public struct DeleteStackSetOutput: AWSShape { + + } + + public struct ListExportsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Exports", required: false, type: .list) + ] + /// If the output exceeds 100 exported output values, a string that identifies the next page of exports. If there is no additional page, this value is null. + public let nextToken: String? + /// The output for the ListExports action. + public let exports: [Export]? + + public init(nextToken: String? = nil, exports: [Export]? = nil) { + self.nextToken = nextToken + self.exports = exports + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case exports = "Exports" + } + } + + public struct ListImportsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Imports", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of stack names that are importing the specified exported output value. + public let imports: [String]? + /// A string that identifies the next page of exports. If there is no additional page, this value is null. + public let nextToken: String? + + public init(imports: [String]? = nil, nextToken: String? = nil) { + self.imports = imports + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case imports = "Imports" + case nextToken = "NextToken" + } + } + + public struct CreateStackOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackId", required: false, type: .string) + ] + /// Unique identifier of the stack. + public let stackId: String? + + public init(stackId: String? = nil) { + self.stackId = stackId + } + + private enum CodingKeys: String, CodingKey { + case stackId = "StackId" + } + } + + public struct UpdateTerminationProtectionOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackId", required: false, type: .string) + ] + /// The unique ID of the stack. + public let stackId: String? + + public init(stackId: String? = nil) { + self.stackId = stackId + } + + private enum CodingKeys: String, CodingKey { + case stackId = "StackId" + } + } + + public struct Change: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "ResourceChange", required: false, type: .structure) + ] + /// The type of entity that AWS CloudFormation changes. Currently, the only entity type is Resource. + public let `type`: ChangeType? + /// A ResourceChange structure that describes the resource and action that AWS CloudFormation will perform. + public let resourceChange: ResourceChange? + + public init(type: ChangeType? = nil, resourceChange: ResourceChange? = nil) { + self.`type` = `type` + self.resourceChange = resourceChange + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case resourceChange = "ResourceChange" + } + } + + public struct CreateStackInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackPolicyBody", required: false, type: .string), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "OnFailure", required: false, type: .enum), + AWSShapeMember(label: "RoleARN", required: false, type: .string), + AWSShapeMember(label: "DisableRollback", required: false, type: .boolean), + AWSShapeMember(label: "RollbackConfiguration", required: false, type: .structure), + AWSShapeMember(label: "NotificationARNs", required: false, type: .list), + AWSShapeMember(label: "StackPolicyURL", required: false, type: .string), + AWSShapeMember(label: "EnableTerminationProtection", required: false, type: .boolean), + AWSShapeMember(label: "Parameters", required: false, type: .list), + AWSShapeMember(label: "ResourceTypes", required: false, type: .list), + AWSShapeMember(label: "TimeoutInMinutes", required: false, type: .integer), + AWSShapeMember(label: "TemplateURL", required: false, type: .string), + AWSShapeMember(label: "TemplateBody", required: false, type: .string), + AWSShapeMember(label: "StackName", required: true, type: .string), + AWSShapeMember(label: "Capabilities", required: false, type: .list) + ] + /// Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. + public let stackPolicyBody: String? + /// A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002. + public let clientRequestToken: String? + /// Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified. + public let tags: [Tag]? + /// Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both. Default: ROLLBACK + public let onFailure: OnFailure? + /// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. + public let roleARN: String? + /// Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both. Default: false + public let disableRollback: Bool? + /// The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. + public let rollbackConfiguration: RollbackConfiguration? + /// The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI). + public let notificationARNs: [String]? + /// Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. + public let stackPolicyURL: String? + /// Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide. Termination protection is disabled on stacks by default. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack. + public let enableTerminationProtection: Bool? + /// A list of Parameter structures that specify input parameters for the stack. For more information, see the Parameter data type. + public let parameters: [Parameter]? + /// The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management. + public let resourceTypes: [String]? + /// The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back. + public let timeoutInMinutes: Int32? + /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, go to the Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + public let templateURL: String? + /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + public let templateBody: String? + /// The name that is associated with the stack. The name must be unique in the region in which you are creating the stack. A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. + public let stackName: String + /// A list of values that you must specify before AWS CloudFormation can create certain stacks. Some stack templates might include resources that can affect permissions in your AWS account, for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter. The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. + public let capabilities: [Capability]? + + public init(stackPolicyBody: String? = nil, clientRequestToken: String? = nil, tags: [Tag]? = nil, onFailure: OnFailure? = nil, roleARN: String? = nil, disableRollback: Bool? = nil, rollbackConfiguration: RollbackConfiguration? = nil, notificationARNs: [String]? = nil, stackPolicyURL: String? = nil, enableTerminationProtection: Bool? = nil, parameters: [Parameter]? = nil, resourceTypes: [String]? = nil, timeoutInMinutes: Int32? = nil, templateURL: String? = nil, templateBody: String? = nil, stackName: String, capabilities: [Capability]? = nil) { + self.stackPolicyBody = stackPolicyBody + self.clientRequestToken = clientRequestToken + self.tags = tags + self.onFailure = onFailure + self.roleARN = roleARN + self.disableRollback = disableRollback + self.rollbackConfiguration = rollbackConfiguration + self.notificationARNs = notificationARNs + self.stackPolicyURL = stackPolicyURL + self.enableTerminationProtection = enableTerminationProtection + self.parameters = parameters + self.resourceTypes = resourceTypes + self.timeoutInMinutes = timeoutInMinutes + self.templateURL = templateURL + self.templateBody = templateBody + self.stackName = stackName + self.capabilities = capabilities + } + + private enum CodingKeys: String, CodingKey { + case stackPolicyBody = "StackPolicyBody" + case clientRequestToken = "ClientRequestToken" + case tags = "Tags" + case onFailure = "OnFailure" + case roleARN = "RoleARN" + case disableRollback = "DisableRollback" + case rollbackConfiguration = "RollbackConfiguration" + case notificationARNs = "NotificationARNs" + case stackPolicyURL = "StackPolicyURL" + case enableTerminationProtection = "EnableTerminationProtection" + case parameters = "Parameters" + case resourceTypes = "ResourceTypes" + case timeoutInMinutes = "TimeoutInMinutes" + case templateURL = "TemplateURL" + case templateBody = "TemplateBody" + case stackName = "StackName" + case capabilities = "Capabilities" + } + } + + public enum ExecutionStatus: String, CustomStringConvertible, Codable { + case unavailable = "UNAVAILABLE" + case available = "AVAILABLE" + case executeInProgress = "EXECUTE_IN_PROGRESS" + case executeComplete = "EXECUTE_COMPLETE" + case executeFailed = "EXECUTE_FAILED" + case obsolete = "OBSOLETE" + public var description: String { return self.rawValue } + } + + public struct StackSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackSetName", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "StackSetId", required: false, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .list), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "TemplateBody", required: false, type: .string), + AWSShapeMember(label: "Capabilities", required: false, type: .list), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The name that's associated with the stack set. + public let stackSetName: String? + /// The status of the stack set. + public let status: StackSetStatus? + /// The ID of the stack set. + public let stackSetId: String? + /// A list of input parameters for a stack set. + public let parameters: [Parameter]? + /// A list of tags that specify information about the stack set. A maximum number of 50 tags can be specified. + public let tags: [Tag]? + /// The structure that contains the body of the template that was used to create or update the stack set. + public let templateBody: String? + /// The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your AWS account—for example, by creating new AWS Identity and Access Management (IAM) users. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. + public let capabilities: [Capability]? + /// A description of the stack set that you specify when the stack set is created or updated. + public let description: String? + + public init(stackSetName: String? = nil, status: StackSetStatus? = nil, stackSetId: String? = nil, parameters: [Parameter]? = nil, tags: [Tag]? = nil, templateBody: String? = nil, capabilities: [Capability]? = nil, description: String? = nil) { + self.stackSetName = stackSetName + self.status = status + self.stackSetId = stackSetId + self.parameters = parameters + self.tags = tags + self.templateBody = templateBody + self.capabilities = capabilities + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case stackSetName = "StackSetName" + case status = "Status" + case stackSetId = "StackSetId" + case parameters = "Parameters" + case tags = "Tags" + case templateBody = "TemplateBody" + case capabilities = "Capabilities" + case description = "Description" + } + } + + public struct DescribeStackSetOperationOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackSetOperation", required: false, type: .structure) + ] + /// The specified stack set operation. + public let stackSetOperation: StackSetOperation? + + public init(stackSetOperation: StackSetOperation? = nil) { + self.stackSetOperation = stackSetOperation + } + + private enum CodingKeys: String, CodingKey { + case stackSetOperation = "StackSetOperation" + } + } + + public struct DescribeStackResourcesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackResources", required: false, type: .list) + ] + /// A list of StackResource structures. + public let stackResources: [StackResource]? + + public init(stackResources: [StackResource]? = nil) { + self.stackResources = stackResources + } + + private enum CodingKeys: String, CodingKey { + case stackResources = "StackResources" + } + } + + public struct ListStacksOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StackSummaries", required: false, type: .list) + ] + /// If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If no additional page exists, this value is null. + public let nextToken: String? + /// A list of StackSummary structures containing information about the specified stacks. + public let stackSummaries: [StackSummary]? + + public init(nextToken: String? = nil, stackSummaries: [StackSummary]? = nil) { + self.nextToken = nextToken + self.stackSummaries = stackSummaries + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case stackSummaries = "StackSummaries" + } + } + + public struct CreateStackSetOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackSetId", required: false, type: .string) + ] + /// The ID of the stack set that you're creating. + public let stackSetId: String? + + public init(stackSetId: String? = nil) { + self.stackSetId = stackSetId + } + + private enum CodingKeys: String, CodingKey { + case stackSetId = "StackSetId" + } + } + + public enum ResourceStatus: String, CustomStringConvertible, Codable { + case createInProgress = "CREATE_IN_PROGRESS" + case createFailed = "CREATE_FAILED" + case createComplete = "CREATE_COMPLETE" + case deleteInProgress = "DELETE_IN_PROGRESS" + case deleteFailed = "DELETE_FAILED" + case deleteComplete = "DELETE_COMPLETE" + case deleteSkipped = "DELETE_SKIPPED" + case updateInProgress = "UPDATE_IN_PROGRESS" + case updateFailed = "UPDATE_FAILED" + case updateComplete = "UPDATE_COMPLETE" + public var description: String { return self.rawValue } + } + + public struct EstimateTemplateCostOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Url", required: false, type: .string) + ] + /// An AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template. + public let url: String? + + public init(url: String? = nil) { + self.url = url + } + + private enum CodingKeys: String, CodingKey { + case url = "Url" + } + } + + public struct UpdateStackOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackId", required: false, type: .string) + ] + /// Unique identifier of the stack. + public let stackId: String? + + public init(stackId: String? = nil) { + self.stackId = stackId + } + + private enum CodingKeys: String, CodingKey { + case stackId = "StackId" + } + } + + public struct CreateStackSetInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackSetName", required: true, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .list), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "TemplateURL", required: false, type: .string), + AWSShapeMember(label: "TemplateBody", required: false, type: .string), + AWSShapeMember(label: "Capabilities", required: false, type: .list), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The name to associate with the stack set. The name must be unique in the region where you create your stack set. A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and can't be longer than 128 characters. + public let stackSetName: String + /// The input parameters for the stack set template. + public let parameters: [Parameter]? + /// The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can be specified. If you specify tags as part of a CreateStackSet action, AWS CloudFormation checks to see if you have the required IAM permission to tag resources. If you don't, the entire CreateStackSet action fails with an access denied error, and the stack set is not created. + public let tags: [Tag]? + /// A unique identifier for this CreateStackSet request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create another stack set with the same name. You might retry CreateStackSet requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, the SDK generates one automatically. + public let clientRequestToken: String? + /// The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 bucket. For more information, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + public let templateURL: String? + /// The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + public let templateBody: String? + /// A list of values that you must specify before AWS CloudFormation can create certain stack sets. Some stack set templates might include resources that can affect permissions in your AWS account—for example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly acknowledge their capabilities by specifying this parameter. The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter: AWS::IAM::AccessKey AWS::IAM::Group AWS::IAM::InstanceProfile AWS::IAM::Policy AWS::IAM::Role AWS::IAM::User AWS::IAM::UserToGroupAddition If your stack template contains these resources, we recommend that you review all permissions that are associated with them and edit their permissions if necessary. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. + public let capabilities: [Capability]? + /// A description of the stack set. You can use the description to identify the stack set's purpose or other important information. + public let description: String? + + public init(stackSetName: String, parameters: [Parameter]? = nil, tags: [Tag]? = nil, clientRequestToken: String? = nil, templateURL: String? = nil, templateBody: String? = nil, capabilities: [Capability]? = nil, description: String? = nil) { + self.stackSetName = stackSetName + self.parameters = parameters + self.tags = tags + self.clientRequestToken = clientRequestToken + self.templateURL = templateURL + self.templateBody = templateBody + self.capabilities = capabilities + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case stackSetName = "StackSetName" + case parameters = "Parameters" + case tags = "Tags" + case clientRequestToken = "ClientRequestToken" + case templateURL = "TemplateURL" + case templateBody = "TemplateBody" + case capabilities = "Capabilities" + case description = "Description" + } + } + + public struct StackSetOperationPreferences: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FailureTolerancePercentage", required: false, type: .integer), + AWSShapeMember(label: "MaxConcurrentPercentage", required: false, type: .integer), + AWSShapeMember(label: "FailureToleranceCount", required: false, type: .integer), + AWSShapeMember(label: "RegionOrder", required: false, type: .list), + AWSShapeMember(label: "MaxConcurrentCount", required: false, type: .integer) + ] + /// The percentage of accounts, per region, for which this stack operation can fail before AWS CloudFormation stops the operation in that region. If the operation is stopped in a region, AWS CloudFormation doesn't attempt the operation in any subsequent regions. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage, but not both. + public let failureTolerancePercentage: Int32? + /// The maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead. Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both. + public let maxConcurrentPercentage: Int32? + /// The number of accounts, per region, for which this operation can fail before AWS CloudFormation stops the operation in that region. If the operation is stopped in a region, AWS CloudFormation doesn't attempt the operation in any subsequent regions. Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage (but not both). + public let failureToleranceCount: Int32? + /// The order of the regions in where you want to perform the stack operation. + public let regionOrder: [String]? + /// The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of FailureToleranceCount—MaxConcurrentCount is at most one more than the FailureToleranceCount . Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both. + public let maxConcurrentCount: Int32? + + public init(failureTolerancePercentage: Int32? = nil, maxConcurrentPercentage: Int32? = nil, failureToleranceCount: Int32? = nil, regionOrder: [String]? = nil, maxConcurrentCount: Int32? = nil) { + self.failureTolerancePercentage = failureTolerancePercentage + self.maxConcurrentPercentage = maxConcurrentPercentage + self.failureToleranceCount = failureToleranceCount + self.regionOrder = regionOrder + self.maxConcurrentCount = maxConcurrentCount + } + + private enum CodingKeys: String, CodingKey { + case failureTolerancePercentage = "FailureTolerancePercentage" + case maxConcurrentPercentage = "MaxConcurrentPercentage" + case failureToleranceCount = "FailureToleranceCount" + case regionOrder = "RegionOrder" + case maxConcurrentCount = "MaxConcurrentCount" + } + } + + public struct AccountGateResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StatusReason", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum) + ] + /// The reason for the account gate status assigned to this account and region for the stack set operation. + public let statusReason: String? + /// The status of the account gate function. SUCCEEDED: The account gate function has determined that the account and region passes any requirements for a stack set operation to occur. AWS CloudFormation proceeds with the stack operation in that account and region. FAILED: The account gate function has determined that the account and region does not meet the requirements for a stack set operation to occur. AWS CloudFormation cancels the stack set operation in that account and region, and sets the stack set operation result status for that account and region to FAILED. SKIPPED: AWS CloudFormation has skipped calling the account gate function for this account and region, for one of the following reasons: An account gate function has not been specified for the account and region. AWS CloudFormation proceeds with the stack set operation in this account and region. The AWSCloudFormationStackSetExecutionRole of the stack set adminstration account lacks permissions to invoke the function. AWS CloudFormation proceeds with the stack set operation in this account and region. Either no action is necessary, or no action is possible, on the stack. AWS CloudFormation skips the stack set operation in this account and region. + public let status: AccountGateStatus? + + public init(statusReason: String? = nil, status: AccountGateStatus? = nil) { + self.statusReason = statusReason + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case statusReason = "StatusReason" + case status = "Status" + } + } + + public struct UpdateStackSetOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperationId", required: false, type: .string) + ] + /// The unique ID for this stack set operation. + public let operationId: String? + + public init(operationId: String? = nil) { + self.operationId = operationId + } + + private enum CodingKeys: String, CodingKey { + case operationId = "OperationId" + } + } + + public struct UpdateStackInstancesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ParameterOverrides", required: false, type: .list), + AWSShapeMember(label: "OperationId", required: false, type: .string), + AWSShapeMember(label: "Accounts", required: true, type: .list), + AWSShapeMember(label: "OperationPreferences", required: false, type: .structure), + AWSShapeMember(label: "Regions", required: true, type: .list), + AWSShapeMember(label: "StackSetName", required: true, type: .string) + ] + /// A list of input parameters whose values you want to update for the specified stack instances. Any overridden parameter values will be applied to all stack instances in the specified accounts and regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during stack instance update operations: To override the current value for a parameter, include the parameter and specify its value. To leave a parameter set to its present value, you can do one of the following: Do not include the parameter in the list. Include the parameter and specify UsePreviousValue as true. (You cannot specify both a value and set UsePreviousValue to true.) To set all overridden parameter back to the values specified in the stack set, specify a parameter list but do not include any parameters. To leave all parameters set to their present values, do not specify this property at all. During stack set updates, any parameter values overridden for a stack instance are not updated, but retain their overridden value. You can only override the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using UpdateStackInstances. + public let parameterOverrides: [Parameter]? + /// The unique identifier for this stack set operation. The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, the SDK generates one automatically. + public let operationId: String? + /// The names of one or more AWS accounts for which you want to update parameter values for stack instances. The overridden parameter values will be applied to all stack instances in the specified accounts and regions. + public let accounts: [String] + /// Preferences for how AWS CloudFormation performs this stack set operation. + public let operationPreferences: StackSetOperationPreferences? + /// The names of one or more regions in which you want to update parameter values for stack instances. The overridden parameter values will be applied to all stack instances in the specified accounts and regions. + public let regions: [String] + /// The name or unique ID of the stack set associated with the stack instances. + public let stackSetName: String + + public init(parameterOverrides: [Parameter]? = nil, operationId: String? = nil, accounts: [String], operationPreferences: StackSetOperationPreferences? = nil, regions: [String], stackSetName: String) { + self.parameterOverrides = parameterOverrides + self.operationId = operationId + self.accounts = accounts + self.operationPreferences = operationPreferences + self.regions = regions + self.stackSetName = stackSetName + } + + private enum CodingKeys: String, CodingKey { + case parameterOverrides = "ParameterOverrides" + case operationId = "OperationId" + case accounts = "Accounts" + case operationPreferences = "OperationPreferences" + case regions = "Regions" + case stackSetName = "StackSetName" + } + } + + public struct GetStackPolicyInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StackName", required: true, type: .string) + ] + /// The name or unique stack ID that is associated with the stack whose policy you want to get. + public let stackName: String + + public init(stackName: String) { + self.stackName = stackName + } + + private enum CodingKeys: String, CodingKey { + case stackName = "StackName" + } + } + + public struct StackSetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "StackSetId", required: false, type: .string), + AWSShapeMember(label: "StackSetName", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The status of the stack set. + public let status: StackSetStatus? + /// The ID of the stack set. + public let stackSetId: String? + /// The name of the stack set. + public let stackSetName: String? + /// A description of the stack set that you specify when the stack set is created or updated. + public let description: String? + + public init(status: StackSetStatus? = nil, stackSetId: String? = nil, stackSetName: String? = nil, description: String? = nil) { + self.status = status + self.stackSetId = stackSetId + self.stackSetName = stackSetName + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case status = "Status" + case stackSetId = "StackSetId" + case stackSetName = "StackSetName" + case description = "Description" + } + } + + public struct ListStackSetOperationsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Summaries", required: false, type: .list) + ] + /// If the request doesn't return all results, NextToken is set to a token. To retrieve the next set of results, call ListOperationResults again and assign that token to the request object's NextToken parameter. If there are no remaining results, NextToken is set to null. + public let nextToken: String? + /// A list of StackSetOperationSummary structures that contain summary information about operations for the specified stack set. + public let summaries: [StackSetOperationSummary]? + + public init(nextToken: String? = nil, summaries: [StackSetOperationSummary]? = nil) { + self.nextToken = nextToken + self.summaries = summaries + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case summaries = "Summaries" + } + } + public struct GetTemplateOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StagesAvailable", required: false, type: .list), AWSShapeMember(label: "TemplateBody", required: false, type: .string) ] @@ -2157,7 +3379,7 @@ extension Cloudformation { } public struct DescribeStackResourceOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackResourceDetail", required: false, type: .structure) ] /// A StackResourceDetail structure containing the description of the specified resource in the specified stack. diff --git a/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_API.swift b/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_API.swift index f37a007d97d..56cb34925c0 100644 --- a/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_API.swift +++ b/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon CloudFront This is the Amazon CloudFront API Reference. This guide is for developers who need detailed information about the CloudFront API actions, data types, and errors. For detailed information about CloudFront features and their associated API calls, see the Amazon CloudFront Developer Guide. +Amazon CloudFront This is the Amazon CloudFront API Reference. This guide is for developers who need detailed information about CloudFront API actions, data types, and errors. For detailed information about CloudFront features, see the Amazon CloudFront Developer Guide. */ public struct Cloudfront { @@ -38,8 +38,8 @@ public struct Cloudfront { return try client.send(operation: "UpdateDistribution2017_03_25", path: "/2017-03-25/distribution/{Id}/config", httpMethod: "PUT", input: input) } - public func listDistributionsByWebACLId20170325(_ input: ListDistributionsByWebACLIdRequest) throws -> ListDistributionsByWebACLIdResult { - return try client.send(operation: "ListDistributionsByWebACLId2017_03_25", path: "/2017-03-25/distributionsByWebACLId/{WebACLId}", httpMethod: "GET", input: input) + public func deleteServiceLinkedRole20170325(_ input: DeleteServiceLinkedRoleRequest) throws { + _ = try client.send(operation: "DeleteServiceLinkedRole2017_03_25", path: "/2017-03-25/service-linked-role/{RoleName}", httpMethod: "DELETE", input: input) } public func getCloudFrontOriginAccessIdentity20170325(_ input: GetCloudFrontOriginAccessIdentityRequest) throws -> GetCloudFrontOriginAccessIdentityResult { @@ -50,6 +50,10 @@ public struct Cloudfront { return try client.send(operation: "CreateCloudFrontOriginAccessIdentity2017_03_25", path: "/2017-03-25/origin-access-identity/cloudfront", httpMethod: "POST", input: input) } + public func listDistributionsByWebACLId20170325(_ input: ListDistributionsByWebACLIdRequest) throws -> ListDistributionsByWebACLIdResult { + return try client.send(operation: "ListDistributionsByWebACLId2017_03_25", path: "/2017-03-25/distributionsByWebACLId/{WebACLId}", httpMethod: "GET", input: input) + } + public func listDistributions20170325(_ input: ListDistributionsRequest) throws -> ListDistributionsResult { return try client.send(operation: "ListDistributions2017_03_25", path: "/2017-03-25/distribution", httpMethod: "GET", input: input) } diff --git a/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_Error.swift b/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_Error.swift index 5a115682a8d..3318ea370f2 100644 --- a/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_Error.swift +++ b/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_Error.swift @@ -49,10 +49,11 @@ public enum CloudfrontError: AWSErrorType { case invalidOriginReadTimeout(message: String?) case invalidOriginKeepaliveTimeout(message: String?) case noSuchDistribution(message: String?) + case resourceInUse(message: String?) + case noSuchResource(message: String?) case cloudFrontOriginAccessIdentityAlreadyExists(message: String?) case tooManyCloudFrontOriginAccessIdentities(message: String?) case invalidTagging(message: String?) - case noSuchResource(message: String?) case batchTooLarge(message: String?) case tooManyInvalidationsInProgress(message: String?) case noSuchInvalidation(message: String?) @@ -162,14 +163,16 @@ extension CloudfrontError { self = .invalidOriginKeepaliveTimeout(message: message) case "NoSuchDistribution": self = .noSuchDistribution(message: message) + case "ResourceInUse": + self = .resourceInUse(message: message) + case "NoSuchResource": + self = .noSuchResource(message: message) case "CloudFrontOriginAccessIdentityAlreadyExists": self = .cloudFrontOriginAccessIdentityAlreadyExists(message: message) case "TooManyCloudFrontOriginAccessIdentities": self = .tooManyCloudFrontOriginAccessIdentities(message: message) case "InvalidTagging": self = .invalidTagging(message: message) - case "NoSuchResource": - self = .noSuchResource(message: message) case "BatchTooLarge": self = .batchTooLarge(message: message) case "TooManyInvalidationsInProgress": diff --git a/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_Shapes.swift b/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_Shapes.swift index 0bb9ee374f1..dc547bd40b4 100644 --- a/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/cloudfront/Cloudfront_Shapes.swift @@ -8,7 +8,7 @@ extension Cloudfront { public struct GetStreamingDistributionResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "StreamingDistribution" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "StreamingDistribution", required: false, type: .structure) ] @@ -31,7 +31,7 @@ extension Cloudfront { public struct TagResourceRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "Tags" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Resource", location: .querystring(locationName: "Resource"), required: true, type: .string), AWSShapeMember(label: "Tags", location: .body(locationName: "Tags"), required: true, type: .structure) ] @@ -52,7 +52,7 @@ extension Cloudfront { } public struct CloudFrontOriginAccessIdentitySummaryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CloudFrontOriginAccessIdentitySummary", required: false, type: .list) ] public let cloudFrontOriginAccessIdentitySummary: [CloudFrontOriginAccessIdentitySummary]? @@ -67,7 +67,7 @@ extension Cloudfront { } public struct Signer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AwsAccountNumber", required: false, type: .string), AWSShapeMember(label: "KeyPairIds", required: false, type: .structure) ] @@ -90,7 +90,7 @@ extension Cloudfront { public struct CreateStreamingDistributionWithTagsResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "StreamingDistribution" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: false, type: .string), AWSShapeMember(label: "StreamingDistribution", required: false, type: .structure) @@ -117,7 +117,7 @@ extension Cloudfront { public struct UpdateStreamingDistributionResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "StreamingDistribution" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "StreamingDistribution", required: false, type: .structure) ] @@ -138,7 +138,7 @@ extension Cloudfront { } public struct QueryStringCacheKeysList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .list) ] public let name: [String]? @@ -160,7 +160,7 @@ extension Cloudfront { } public struct InvalidationSummaryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InvalidationSummary", required: false, type: .list) ] public let invalidationSummary: [InvalidationSummary]? @@ -175,7 +175,7 @@ extension Cloudfront { } public struct InvalidationBatch: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CallerReference", required: true, type: .string), AWSShapeMember(label: "Paths", required: true, type: .structure) ] @@ -196,7 +196,7 @@ extension Cloudfront { } public struct TrustedSigners: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Enabled", required: true, type: .boolean), AWSShapeMember(label: "Quantity", required: true, type: .integer) @@ -224,7 +224,7 @@ extension Cloudfront { public struct ListCloudFrontOriginAccessIdentitiesResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "CloudFrontOriginAccessIdentityList" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CloudFrontOriginAccessIdentityList", required: false, type: .structure) ] /// The CloudFrontOriginAccessIdentityList type. @@ -240,13 +240,13 @@ extension Cloudfront { } public struct Headers: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] - /// A complex type that contains one Name element for each header that you want CloudFront to forward to the origin and to vary on for this cache behavior. If Quantity is 0, omit Items. + /// A list that contains one Name element for each header that you want CloudFront to use for caching in this cache behavior. If Quantity is 0, omit Items. public let items: HeaderList? - /// The number of different headers that you want CloudFront to forward to the origin for this cache behavior. You can configure each cache behavior in a web distribution to do one of the following: Forward all headers to your origin: Specify 1 for Quantity and * for Name. If you configure CloudFront to forward all headers to your origin, CloudFront doesn't cache the objects associated with this cache behavior. Instead, it sends every request to the origin. Forward a whitelist of headers you specify: Specify the number of headers that you want to forward, and specify the header names in Name elements. CloudFront caches your objects based on the values in all of the specified headers. CloudFront also forwards the headers that it forwards by default, but it caches your objects based only on the headers that you specify. Forward only the default headers: Specify 0 for Quantity and omit Items. In this configuration, CloudFront doesn't cache based on the values in the request headers. + /// The number of different headers that you want CloudFront to base caching on for this cache behavior. You can configure each cache behavior in a web distribution to do one of the following: Forward all headers to your origin: Specify 1 for Quantity and * for Name. CloudFront doesn't cache the objects that are associated with this cache behavior. Instead, CloudFront sends every request to the origin. Forward a whitelist of headers you specify: Specify the number of headers that you want CloudFront to base caching on. Then specify the header names in Name elements. CloudFront caches your objects based on the values in the specified headers. Forward only the default headers: Specify 0 for Quantity and omit Items. In this configuration, CloudFront doesn't cache based on the values in the request headers. Regardless of which option you choose, CloudFront forwards headers to your origin based on whether the origin is an S3 bucket or a custom origin. See the following documentation: S3 bucket: See HTTP Request Headers That CloudFront Removes or Updates Custom origin: See HTTP Request Headers and CloudFront Behavior public let quantity: Int32 public init(items: HeaderList? = nil, quantity: Int32) { @@ -263,7 +263,7 @@ extension Cloudfront { public struct CreateStreamingDistributionWithTagsRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "StreamingDistributionConfigWithTags" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamingDistributionConfigWithTags", location: .body(locationName: "StreamingDistributionConfigWithTags"), required: true, type: .structure) ] /// The streaming distribution's configuration information. @@ -279,7 +279,7 @@ extension Cloudfront { } public struct QueryStringCacheKeys: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -300,7 +300,7 @@ extension Cloudfront { } public struct LambdaFunctionAssociations: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -321,7 +321,7 @@ extension Cloudfront { } public struct GetStreamingDistributionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The streaming distribution's ID. @@ -337,7 +337,7 @@ extension Cloudfront { } public struct Paths: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -358,7 +358,7 @@ extension Cloudfront { } public struct SslProtocolsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SslProtocol", required: false, type: .list) ] public let sslProtocol: [SslProtocol]? @@ -373,7 +373,7 @@ extension Cloudfront { } public struct DefaultCacheBehavior: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultTTL", required: false, type: .long), AWSShapeMember(label: "TargetOriginId", required: true, type: .string), AWSShapeMember(label: "ForwardedValues", required: true, type: .structure), @@ -437,7 +437,7 @@ extension Cloudfront { } public struct PathList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Path", required: false, type: .list) ] public let path: [String]? @@ -452,7 +452,7 @@ extension Cloudfront { } public struct Invalidation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InvalidationBatch", required: true, type: .structure), AWSShapeMember(label: "Status", required: true, type: .string), AWSShapeMember(label: "CreateTime", required: true, type: .timestamp), @@ -483,7 +483,7 @@ extension Cloudfront { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -506,7 +506,7 @@ extension Cloudfront { public struct CreateDistributionRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "DistributionConfig" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DistributionConfig", location: .body(locationName: "DistributionConfig"), required: true, type: .structure) ] /// The distribution's configuration information. @@ -522,7 +522,7 @@ extension Cloudfront { } public struct GetCloudFrontOriginAccessIdentityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The identity's ID. @@ -547,7 +547,7 @@ extension Cloudfront { public struct UpdateCloudFrontOriginAccessIdentityRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "CloudFrontOriginAccessIdentityConfig" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string), AWSShapeMember(label: "CloudFrontOriginAccessIdentityConfig", location: .body(locationName: "CloudFrontOriginAccessIdentityConfig"), required: true, type: .structure), AWSShapeMember(label: "IfMatch", location: .header(locationName: "If-Match"), required: false, type: .string) @@ -575,7 +575,7 @@ extension Cloudfront { public struct GetInvalidationResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "Invalidation" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Invalidation", required: false, type: .structure) ] /// The invalidation's information. For more information, see Invalidation Complex Type. @@ -593,7 +593,7 @@ extension Cloudfront { public struct CreateInvalidationResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "Invalidation" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: false, type: .string), AWSShapeMember(label: "Invalidation", required: false, type: .structure) ] @@ -614,7 +614,7 @@ extension Cloudfront { } public struct StreamingDistributionSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastModifiedTime", required: true, type: .timestamp), AWSShapeMember(label: "Status", required: true, type: .string), AWSShapeMember(label: "Id", required: true, type: .string), @@ -631,7 +631,7 @@ extension Cloudfront { public let lastModifiedTime: TimeStamp /// Indicates the current status of the distribution. When the status is Deployed, the distribution's information is fully propagated throughout the Amazon CloudFront system. public let status: String - /// The identifier for the distribution. For example: EDFDVBD632BHDS5. + /// The identifier for the distribution, for example, EDFDVBD632BHDS5. public let id: String /// A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution. public let aliases: Aliases @@ -645,7 +645,7 @@ extension Cloudfront { public let enabled: Bool /// The ARN (Amazon Resource Name) for the streaming distribution. For example: arn:aws:cloudfront::123456789012:streaming-distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID. public let arn: String - /// The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net. + /// The domain name corresponding to the distribution, for example, d111111abcdef8.cloudfront.net. public let domainName: String public let priceClass: PriceClass @@ -679,7 +679,7 @@ extension Cloudfront { } public struct CacheBehavior: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetOriginId", required: true, type: .string), AWSShapeMember(label: "PathPattern", required: true, type: .string), AWSShapeMember(label: "AllowedMethods", required: false, type: .structure), @@ -749,7 +749,7 @@ extension Cloudfront { } public struct DistributionConfigWithTags: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .structure), AWSShapeMember(label: "DistributionConfig", required: true, type: .structure) ] @@ -772,7 +772,7 @@ extension Cloudfront { public struct ListStreamingDistributionsResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "StreamingDistributionList" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamingDistributionList", required: false, type: .structure) ] /// The StreamingDistributionList type. @@ -788,7 +788,7 @@ extension Cloudfront { } public struct Origins: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -811,7 +811,7 @@ extension Cloudfront { public struct GetDistributionConfigResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "DistributionConfig" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "DistributionConfig", required: false, type: .structure) ] @@ -832,7 +832,7 @@ extension Cloudfront { } public struct InvalidationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", required: true, type: .integer), AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "NextMarker", required: false, type: .string), @@ -873,7 +873,7 @@ extension Cloudfront { } public struct GetInvalidationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DistributionId", location: .uri(locationName: "DistributionId"), required: true, type: .string), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] @@ -894,7 +894,7 @@ extension Cloudfront { } public struct ForwardedValues: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueryString", required: true, type: .boolean), AWSShapeMember(label: "Headers", required: false, type: .structure), AWSShapeMember(label: "Cookies", required: true, type: .structure), @@ -902,7 +902,7 @@ extension Cloudfront { ] /// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of QueryString and on the values that you specify for QueryStringCacheKeys, if any: If you specify true for QueryString and you don't specify any values for QueryStringCacheKeys, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. If you specify true for QueryString and you specify one or more values for QueryStringCacheKeys, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. If you specify false for QueryString, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. For more information, see Configuring CloudFront to Cache Based on Query String Parameters in the Amazon CloudFront Developer Guide. public let queryString: Bool - /// A complex type that specifies the Headers, if any, that you want CloudFront to vary upon for this cache behavior. + /// A complex type that specifies the Headers, if any, that you want CloudFront to base caching on for this cache behavior. public let headers: Headers? /// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see How CloudFront Forwards, Caches, and Logs Cookies in the Amazon CloudFront Developer Guide. public let cookies: CookiePreference @@ -932,7 +932,7 @@ extension Cloudfront { } public struct LocationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Location", required: false, type: .list) ] public let location: [String]? @@ -947,7 +947,7 @@ extension Cloudfront { } public struct SignerList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Signer", required: false, type: .list) ] public let signer: [Signer]? @@ -964,7 +964,7 @@ extension Cloudfront { public struct UpdateDistributionRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "DistributionConfig" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string), AWSShapeMember(label: "IfMatch", location: .header(locationName: "If-Match"), required: false, type: .string), AWSShapeMember(label: "DistributionConfig", location: .body(locationName: "DistributionConfig"), required: true, type: .structure) @@ -990,7 +990,7 @@ extension Cloudfront { } public struct CacheBehaviorList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheBehavior", required: false, type: .list) ] public let cacheBehavior: [CacheBehavior]? @@ -1005,13 +1005,13 @@ extension Cloudfront { } public struct LambdaFunctionAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventType", required: false, type: .enum), AWSShapeMember(label: "LambdaFunctionARN", required: false, type: .string) ] - /// Specifies the event type that triggers a Lambda function invocation. Valid values are: viewer-request origin-request viewer-response origin-response + /// Specifies the event type that triggers a Lambda function invocation. You can specify the following values: viewer-request: The function executes when CloudFront receives a request from a viewer and before it checks to see whether the requested object is in the edge cache. origin-request: The function executes only when CloudFront forwards a request to your origin. When the requested object is in the edge cache, the function doesn't execute. origin-response: The function executes after CloudFront receives a response from the origin and before it caches the object in the response. When the requested object is in the edge cache, the function doesn't execute. If the origin returns an HTTP status code other than HTTP 200 (OK), the function doesn't execute. viewer-response: The function executes before CloudFront returns the requested object to the viewer. The function executes regardless of whether the object was already in the edge cache. If the origin returns an HTTP status code other than HTTP 200 (OK), the function doesn't execute. public let eventType: EventType? - /// The ARN of the Lambda function. + /// The ARN of the Lambda function. You must specify the ARN of a function version; you can't specify a Lambda alias or $LATEST. public let lambdaFunctionARN: String? public init(eventType: EventType? = nil, lambdaFunctionARN: String? = nil) { @@ -1026,7 +1026,7 @@ extension Cloudfront { } public struct ListTagsForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Resource", location: .querystring(locationName: "Resource"), required: true, type: .string) ] /// An ARN of a CloudFront resource. @@ -1042,7 +1042,7 @@ extension Cloudfront { } public struct OriginCustomHeader: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HeaderName", required: true, type: .string), AWSShapeMember(label: "HeaderValue", required: true, type: .string) ] @@ -1063,7 +1063,7 @@ extension Cloudfront { } public struct ListInvalidationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", location: .querystring(locationName: "Marker"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .string), AWSShapeMember(label: "DistributionId", location: .uri(locationName: "DistributionId"), required: true, type: .string) @@ -1089,7 +1089,7 @@ extension Cloudfront { } public struct CacheBehaviors: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -1119,7 +1119,7 @@ extension Cloudfront { public struct CreateCloudFrontOriginAccessIdentityResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "CloudFrontOriginAccessIdentity" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: false, type: .string), AWSShapeMember(label: "CloudFrontOriginAccessIdentity", required: false, type: .structure) @@ -1145,7 +1145,7 @@ extension Cloudfront { } public struct AllowedMethods: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: true, type: .structure), AWSShapeMember(label: "CachedMethods", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) @@ -1172,7 +1172,7 @@ extension Cloudfront { public struct CreateStreamingDistributionRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "StreamingDistributionConfig" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamingDistributionConfig", location: .body(locationName: "StreamingDistributionConfig"), required: true, type: .structure) ] /// The streaming distribution's configuration information. @@ -1188,7 +1188,7 @@ extension Cloudfront { } public struct ListStreamingDistributionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", location: .querystring(locationName: "Marker"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .string) ] @@ -1211,7 +1211,7 @@ extension Cloudfront { public struct ListDistributionsByWebACLIdResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "DistributionList" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DistributionList", required: false, type: .structure) ] /// The DistributionList type. @@ -1227,7 +1227,7 @@ extension Cloudfront { } public struct ListDistributionsByWebACLIdRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", location: .querystring(locationName: "Marker"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .string), AWSShapeMember(label: "WebACLId", location: .uri(locationName: "WebACLId"), required: true, type: .string) @@ -1253,7 +1253,7 @@ extension Cloudfront { } public struct S3OriginConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OriginAccessIdentity", required: true, type: .string) ] /// The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can only access objects in an Amazon S3 bucket through CloudFront. The format of the value is: origin-access-identity/cloudfront/ID-of-origin-access-identity where ID-of-origin-access-identity is the value that CloudFront returned in the ID element when you created the origin access identity. If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. For more information about the origin access identity, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide. @@ -1269,7 +1269,7 @@ extension Cloudfront { } public struct CookiePreference: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Forward", required: true, type: .enum), AWSShapeMember(label: "WhitelistedNames", required: false, type: .structure) ] @@ -1290,7 +1290,7 @@ extension Cloudfront { } public struct OriginSslProtocols: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: true, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -1313,13 +1313,16 @@ extension Cloudfront { public enum MinimumProtocolVersion: String, CustomStringConvertible, Codable { case sslv3 = "SSLv3" case tlsv1 = "TLSv1" + case tlsv12016 = "TLSv1_2016" + case tlsv112016 = "TLSv1.1_2016" + case tlsv122018 = "TLSv1.2_2018" public var description: String { return self.rawValue } } public struct CreateDistributionWithTagsRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "DistributionConfigWithTags" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DistributionConfigWithTags", location: .body(locationName: "DistributionConfigWithTags"), required: true, type: .structure) ] /// The distribution's configuration information. @@ -1337,7 +1340,7 @@ extension Cloudfront { public struct CreateDistributionWithTagsResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "Distribution" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: false, type: .string), AWSShapeMember(label: "Distribution", required: false, type: .structure) @@ -1365,7 +1368,7 @@ extension Cloudfront { public struct CreateDistributionResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "Distribution" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: false, type: .string), AWSShapeMember(label: "Distribution", required: false, type: .structure) @@ -1390,10 +1393,25 @@ extension Cloudfront { } } + public struct DeleteServiceLinkedRoleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleName", location: .uri(locationName: "RoleName"), required: true, type: .string) + ] + public let roleName: String + + public init(roleName: String) { + self.roleName = roleName + } + + private enum CodingKeys: String, CodingKey { + case roleName = "RoleName" + } + } + public struct ListDistributionsResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "DistributionList" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DistributionList", required: false, type: .structure) ] /// The DistributionList type. @@ -1409,7 +1427,7 @@ extension Cloudfront { } public struct DistributionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", required: true, type: .integer), AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "NextMarker", required: false, type: .string), @@ -1450,7 +1468,7 @@ extension Cloudfront { } public struct TagKeys: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure) ] /// A complex type that contains Tag key elements. @@ -1474,7 +1492,7 @@ extension Cloudfront { } public struct LoggingConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", required: true, type: .string), AWSShapeMember(label: "Prefix", required: true, type: .string), AWSShapeMember(label: "Enabled", required: true, type: .boolean), @@ -1482,11 +1500,11 @@ extension Cloudfront { ] /// The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com. public let bucket: String - /// An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element. + /// An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty Prefix element in the Logging element. public let prefix: String - /// Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket, prefix, and IncludeCookies, the values are automatically deleted. + /// Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket, prefix, and IncludeCookies, the values are automatically deleted. public let enabled: Bool - /// Specifies whether you want CloudFront to include cookies in access logs, specify true for IncludeCookies. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you do not want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify false for IncludeCookies. + /// Specifies whether you want CloudFront to include cookies in access logs, specify true for IncludeCookies. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify false for IncludeCookies. public let includeCookies: Bool public init(bucket: String, prefix: String, enabled: Bool, includeCookies: Bool) { @@ -1505,7 +1523,7 @@ extension Cloudfront { } public struct ListCloudFrontOriginAccessIdentitiesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", location: .querystring(locationName: "Marker"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .string) ] @@ -1528,7 +1546,7 @@ extension Cloudfront { public struct ListTagsForResourceResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "Tags" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .structure) ] /// A complex type that contains zero or more Tag elements. @@ -1544,7 +1562,7 @@ extension Cloudfront { } public struct HeaderList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .list) ] public let name: [String]? @@ -1559,7 +1577,7 @@ extension Cloudfront { } public struct ListDistributionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", location: .querystring(locationName: "Marker"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .string) ] @@ -1580,7 +1598,7 @@ extension Cloudfront { } public struct DistributionConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HttpVersion", required: false, type: .enum), AWSShapeMember(label: "DefaultRootObject", required: false, type: .string), AWSShapeMember(label: "CallerReference", required: true, type: .string), @@ -1600,7 +1618,7 @@ extension Cloudfront { ] /// (Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront. The default value for new web distributions is http2. Viewers that don't support HTTP/2 automatically use an earlier HTTP version. For viewers and CloudFront to use HTTP/2, viewers must support TLS 1.2 or later, and must support Server Name Identification (SNI). In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization." public let httpVersion: HttpVersion? - /// The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/product-description.html). Specifying a default root object avoids exposing the contents of your distribution. Specify only the object name, for example, index.html. Do not add a / before the object name. If you don't want to specify a default root object when you create a distribution, include an empty DefaultRootObject element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element. To replace the default root object, update the distribution configuration and specify the new object. For more information about the default root object, see Creating a Default Root Object in the Amazon CloudFront Developer Guide. + /// The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/product-description.html). Specifying a default root object avoids exposing the contents of your distribution. Specify only the object name, for example, index.html. Don't add a / before the object name. If you don't want to specify a default root object when you create a distribution, include an empty DefaultRootObject element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element. To replace the default root object, update the distribution configuration and specify the new object. For more information about the default root object, see Creating a Default Root Object in the Amazon CloudFront Developer Guide. public let defaultRootObject: String? /// A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of CallerReference is new (regardless of the content of the DistributionConfig object), CloudFront creates a new distribution. If CallerReference is a value you already sent in a previous request to create a distribution, and if the content of the DistributionConfig is identical to the original request (ignoring white space), CloudFront returns the same the response that it returned to the original request. If CallerReference is a value you already sent in a previous request to create a distribution but the content of the DistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error. public let callerReference: String @@ -1614,7 +1632,7 @@ extension Cloudfront { public let comment: String /// From this field, you can enable or disable the selected distribution. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted. public let enabled: Bool - /// If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify true. If you specify false, CloudFront responds to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the IpAddress parameter to restrict the IP addresses that can access your content, do not enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see Creating a Signed URL Using a Custom Policy in the Amazon CloudFront Developer Guide. If you're using an Amazon Route 53 alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: You enable IPv6 for the distribution You're using alternate domain names in the URLs for your objects For more information, see Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name in the Amazon Route 53 Developer Guide. If you created a CNAME resource record set, either with Amazon Route 53 or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. + /// If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify true. If you specify false, CloudFront responds to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the IpAddress parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see Creating a Signed URL Using a Custom Policy in the Amazon CloudFront Developer Guide. If you're using an Amazon Route 53 alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: You enable IPv6 for the distribution You're using alternate domain names in the URLs for your objects For more information, see Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name in the Amazon Route 53 Developer Guide. If you created a CNAME resource record set, either with Amazon Route 53 or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. public let isIPV6Enabled: Bool? /// The price class that corresponds with the maximum price that you want to pay for CloudFront service. If you specify PriceClass_All, CloudFront responds to requests for your objects from all CloudFront edge locations. If you specify a price class other than PriceClass_All, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance. For more information about price classes, see Choosing the Price Class for a CloudFront Distribution in the Amazon CloudFront Developer Guide. For information about CloudFront pricing, including how price classes map to CloudFront regions, see Amazon CloudFront Pricing. public let priceClass: PriceClass? @@ -1626,7 +1644,7 @@ extension Cloudfront { public let logging: LoggingConfig? /// A complex type that contains zero or more CacheBehavior elements. public let cacheBehaviors: CacheBehaviors? - /// A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior. + /// A complex type that describes the default cache behavior if you don't specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior. public let defaultCacheBehavior: DefaultCacheBehavior public init(httpVersion: HttpVersion? = nil, defaultRootObject: String? = nil, callerReference: String, customErrorResponses: CustomErrorResponses? = nil, origins: Origins, webACLId: String? = nil, comment: String, enabled: Bool, isIPV6Enabled: Bool? = nil, priceClass: PriceClass? = nil, viewerCertificate: ViewerCertificate? = nil, restrictions: Restrictions? = nil, aliases: Aliases? = nil, logging: LoggingConfig? = nil, cacheBehaviors: CacheBehaviors? = nil, defaultCacheBehavior: DefaultCacheBehavior) { @@ -1669,7 +1687,7 @@ extension Cloudfront { } public struct Restrictions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GeoRestriction", required: true, type: .structure) ] public let geoRestriction: GeoRestriction @@ -1684,7 +1702,7 @@ extension Cloudfront { } public struct ViewerCertificate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SSLSupportMethod", required: false, type: .enum), AWSShapeMember(label: "IAMCertificateId", required: false, type: .string), AWSShapeMember(label: "MinimumProtocolVersion", required: false, type: .enum), @@ -1693,16 +1711,19 @@ extension Cloudfront { AWSShapeMember(label: "CloudFrontDefaultCertificate", required: false, type: .boolean), AWSShapeMember(label: "CertificateSource", required: false, type: .enum) ] - /// If you specify a value for ACMCertificateArn or for IAMCertificateId, you must also specify how you want CloudFront to serve HTTPS requests: using a method that works for all clients or one that works for most clients: vip: CloudFront uses dedicated IP addresses for your content and can respond to HTTPS requests from any viewer. However, you will incur additional monthly charges. sni-only: CloudFront can respond to HTTPS requests from viewers that support Server Name Indication (SNI). All modern browsers support SNI, but some browsers still in use don't support SNI. If some of your users' browsers don't support SNI, we recommend that you do one of the following: Use the vip option (dedicated IP addresses) instead of sni-only. Use the CloudFront SSL/TLS certificate instead of a custom certificate. This requires that you use the CloudFront domain name of your distribution in the URLs for your objects, for example, https://d111111abcdef8.cloudfront.net/logo.png. If you can control which browser your users use, upgrade the browser to one that supports SNI. Use HTTP instead of HTTPS. Do not specify a value for SSLSupportMethod if you specified <CloudFrontDefaultCertificate>true<CloudFrontDefaultCertificate>. For more information, see Using Alternate Domain Names and HTTPS in the Amazon CloudFront Developer Guide. + /// If you specify a value for ViewerCertificate$ACMCertificateArn or for ViewerCertificate$IAMCertificateId, you must also specify how you want CloudFront to serve HTTPS requests: using a method that works for all clients or one that works for most clients: vip: CloudFront uses dedicated IP addresses for your content and can respond to HTTPS requests from any viewer. However, you will incur additional monthly charges. sni-only: CloudFront can respond to HTTPS requests from viewers that support Server Name Indication (SNI). All modern browsers support SNI, but some browsers still in use don't support SNI. If some of your users' browsers don't support SNI, we recommend that you do one of the following: Use the vip option (dedicated IP addresses) instead of sni-only. Use the CloudFront SSL/TLS certificate instead of a custom certificate. This requires that you use the CloudFront domain name of your distribution in the URLs for your objects, for example, https://d111111abcdef8.cloudfront.net/logo.png. If you can control which browser your users use, upgrade the browser to one that supports SNI. Use HTTP instead of HTTPS. Don't specify a value for SSLSupportMethod if you specified <CloudFrontDefaultCertificate>true<CloudFrontDefaultCertificate>. For more information, see Using Alternate Domain Names and HTTPS in the Amazon CloudFront Developer Guide. public let sSLSupportMethod: SSLSupportMethod? + /// For information about how and when to use IAMCertificateId, see ViewerCertificate. public let iAMCertificateId: String? - /// Specify the minimum version of the SSL/TLS protocol that you want CloudFront to use for HTTPS connections between viewers and CloudFront: SSLv3 or TLSv1. CloudFront serves your objects only to viewers that support SSL/TLS version that you specify and later versions. The TLSv1 protocol is more secure, so we recommend that you specify SSLv3 only if your users are using browsers or devices that don't support TLSv1. Note the following: If you specify <CloudFrontDefaultCertificate>true<CloudFrontDefaultCertificate>, the minimum SSL protocol version is TLSv1 and can't be changed. If you're using a custom certificate (if you specify a value for ACMCertificateArn or for IAMCertificateId) and if you're using SNI (if you specify sni-only for SSLSupportMethod), you must specify TLSv1 for MinimumProtocolVersion. + /// Specify the security policy that you want CloudFront to use for HTTPS connections. A security policy determines two settings: The minimum SSL/TLS protocol that CloudFront uses to communicate with viewers The cipher that CloudFront uses to encrypt the content that it returns to viewers On the CloudFront console, this setting is called Security policy. We recommend that you specify TLSv1.1_2016 unless your users are using browsers or devices that do not support TLSv1.1 or later. When both of the following are true, you must specify TLSv1 or later for the security policy: You're using a custom certificate: you specified a value for ACMCertificateArn or for IAMCertificateId You're using SNI: you specified sni-only for SSLSupportMethod If you specify true for CloudFrontDefaultCertificate, CloudFront automatically sets the security policy to TLSv1 regardless of the value that you specify for MinimumProtocolVersion. For information about the relationship between the security policy that you choose and the protocols and ciphers that CloudFront uses to communicate with viewers, see Supported SSL/TLS Protocols and Ciphers for Communication Between Viewers and CloudFront in the Amazon CloudFront Developer Guide. public let minimumProtocolVersion: MinimumProtocolVersion? + /// For information about how and when to use ACMCertificateArn, see ViewerCertificate. public let aCMCertificateArn: String? - /// Include one of these values to specify the following: Whether you want viewers to use HTTP or HTTPS to request your objects. If you want viewers to use HTTPS, whether you're using an alternate domain name such as example.com or the CloudFront domain name for your distribution, such as d111111abcdef8.cloudfront.net. If you're using an alternate domain name, whether AWS Certificate Manager (ACM) provided the certificate, or you purchased a certificate from a third-party certificate authority and imported it into ACM or uploaded it to the IAM certificate store. You must specify one (and only one) of the three values. Do not specify false for CloudFrontDefaultCertificate. If you want viewers to use HTTP to request your objects: Specify the following value: <CloudFrontDefaultCertificate>true<CloudFrontDefaultCertificate> In addition, specify allow-all for ViewerProtocolPolicy for all of your cache behaviors. If you want viewers to use HTTPS to request your objects: Choose the type of certificate that you want to use based on whether you're using an alternate domain name for your objects or the CloudFront domain name: If you're using an alternate domain name, such as example.com: Specify one of the following values, depending on whether ACM provided your certificate or you purchased your certificate from third-party certificate authority: <ACMCertificateArn>ARN for ACM SSL/TLS certificate<ACMCertificateArn> where ARN for ACM SSL/TLS certificate is the ARN for the ACM SSL/TLS certificate that you want to use for this distribution. <IAMCertificateId>IAM certificate ID<IAMCertificateId> where IAM certificate ID is the ID that IAM returned when you added the certificate to the IAM certificate store. If you specify ACMCertificateArn or IAMCertificateId, you must also specify a value for SSLSupportMethod. If you choose to use an ACM certificate or a certificate in the IAM certificate store, we recommend that you use only an alternate domain name in your object URLs (https://example.com/logo.jpg). If you use the domain name that is associated with your CloudFront distribution (https://d111111abcdef8.cloudfront.net/logo.jpg) and the viewer supports SNI, then CloudFront behaves normally. However, if the browser does not support SNI, the user's experience depends on the value that you choose for SSLSupportMethod: vip: The viewer displays a warning because there is a mismatch between the CloudFront domain name and the domain name in your SSL/TLS certificate. sni-only: CloudFront drops the connection with the browser without returning the object. If you're using the CloudFront domain name for your distribution, such as d111111abcdef8.cloudfront.net : Specify the following value: <CloudFrontDefaultCertificate>true<CloudFrontDefaultCertificate> If you want viewers to use HTTPS, you must also specify one of the following values in your cache behaviors: <ViewerProtocolPolicy>https-only<ViewerProtocolPolicy> <ViewerProtocolPolicy>redirect-to-https<ViewerProtocolPolicy> You can also optionally require that CloudFront use HTTPS to communicate with your origin by specifying one of the following values for the applicable origins: <OriginProtocolPolicy>https-only<OriginProtocolPolicy> <OriginProtocolPolicy>match-viewer<OriginProtocolPolicy> For more information, see Using Alternate Domain Names and HTTPS in the Amazon CloudFront Developer Guide. + /// This field has been deprecated. Use one of the following fields instead: ViewerCertificate$ACMCertificateArn ViewerCertificate$IAMCertificateId ViewerCertificate$CloudFrontDefaultCertificate public let certificate: String? + /// For information about how and when to use CloudFrontDefaultCertificate, see ViewerCertificate. public let cloudFrontDefaultCertificate: Bool? - /// This field is deprecated. You can use one of the following: [ACMCertificateArn, IAMCertificateId, or CloudFrontDefaultCertificate]. + /// This field has been deprecated. Use one of the following fields instead: ViewerCertificate$ACMCertificateArn ViewerCertificate$IAMCertificateId ViewerCertificate$CloudFrontDefaultCertificate public let certificateSource: CertificateSource? public init(sSLSupportMethod: SSLSupportMethod? = nil, iAMCertificateId: String? = nil, minimumProtocolVersion: MinimumProtocolVersion? = nil, aCMCertificateArn: String? = nil, certificate: String? = nil, cloudFrontDefaultCertificate: Bool? = nil, certificateSource: CertificateSource? = nil) { @@ -1729,7 +1750,7 @@ extension Cloudfront { public struct UntagResourceRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "TagKeys" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Resource", location: .querystring(locationName: "Resource"), required: true, type: .string), AWSShapeMember(label: "TagKeys", location: .body(locationName: "TagKeys"), required: true, type: .structure) ] @@ -1750,7 +1771,7 @@ extension Cloudfront { } public struct GetStreamingDistributionConfigRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The streaming distribution's ID. @@ -1766,7 +1787,7 @@ extension Cloudfront { } public struct StreamingDistribution: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastModifiedTime", required: false, type: .timestamp), AWSShapeMember(label: "Status", required: true, type: .string), AWSShapeMember(label: "StreamingDistributionConfig", required: true, type: .structure), @@ -1784,7 +1805,7 @@ extension Cloudfront { /// A complex type that lists the AWS accounts, if any, that you included in the TrustedSigners complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content. The Signer complex type lists the AWS account number of the trusted signer or self if the signer is the AWS account that created the distribution. The Signer element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's AWS account. If no KeyPairId element appears for a Signer, that signer can't create signed URLs. For more information, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide. public let activeTrustedSigners: ActiveTrustedSigners public let arn: String - /// The domain name that corresponds to the streaming distribution. For example: s5c39gqb8ow64r.cloudfront.net. + /// The domain name that corresponds to the streaming distribution, for example, s5c39gqb8ow64r.cloudfront.net. public let domainName: String /// The identifier for the RTMP distribution. For example: EGTXBD79EXAMPLE. public let id: String @@ -1811,7 +1832,7 @@ extension Cloudfront { } public struct CustomHeaders: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -1832,7 +1853,7 @@ extension Cloudfront { } public struct CachedMethods: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: true, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -1853,7 +1874,7 @@ extension Cloudfront { } public struct DistributionSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HttpVersion", required: true, type: .enum), AWSShapeMember(label: "CustomErrorResponses", required: true, type: .structure), AWSShapeMember(label: "Origins", required: true, type: .structure), @@ -1902,9 +1923,9 @@ extension Cloudfront { public let priceClass: PriceClass /// A complex type that contains zero or more CacheBehavior elements. public let cacheBehaviors: CacheBehaviors - /// The domain name that corresponds to the distribution. For example: d604721fxaaqy9.cloudfront.net. + /// The domain name that corresponds to the distribution, for example, d111111abcdef8.cloudfront.net. public let domainName: String - /// A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior. + /// A complex type that describes the default cache behavior if you don't specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior. public let defaultCacheBehavior: DefaultCacheBehavior public init(httpVersion: HttpVersion, customErrorResponses: CustomErrorResponses, origins: Origins, comment: String, enabled: Bool, webACLId: String, arn: String, isIPV6Enabled: Bool, restrictions: Restrictions, lastModifiedTime: TimeStamp, viewerCertificate: ViewerCertificate, id: String, status: String, aliases: Aliases, priceClass: PriceClass, cacheBehaviors: CacheBehaviors, domainName: String, defaultCacheBehavior: DefaultCacheBehavior) { @@ -1951,7 +1972,7 @@ extension Cloudfront { } public struct CustomOriginConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OriginProtocolPolicy", required: true, type: .enum), AWSShapeMember(label: "HTTPPort", required: true, type: .integer), AWSShapeMember(label: "OriginKeepaliveTimeout", required: false, type: .integer), @@ -1994,7 +2015,7 @@ extension Cloudfront { public struct CreateStreamingDistributionResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "StreamingDistribution" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: false, type: .string), AWSShapeMember(label: "StreamingDistribution", required: false, type: .structure) @@ -2020,7 +2041,7 @@ extension Cloudfront { } public struct KeyPairIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyPairId", required: false, type: .list) ] public let keyPairId: [String]? @@ -2035,7 +2056,7 @@ extension Cloudfront { } public struct CustomErrorResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResponseCode", required: false, type: .string), AWSShapeMember(label: "ErrorCachingMinTTL", required: false, type: .long), AWSShapeMember(label: "ErrorCode", required: true, type: .integer), @@ -2074,7 +2095,7 @@ extension Cloudfront { public struct GetCloudFrontOriginAccessIdentityConfigResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "CloudFrontOriginAccessIdentityConfig" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "CloudFrontOriginAccessIdentityConfig", required: false, type: .structure) ] @@ -2095,7 +2116,7 @@ extension Cloudfront { } public struct CloudFrontOriginAccessIdentity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3CanonicalUserId", required: true, type: .string), AWSShapeMember(label: "CloudFrontOriginAccessIdentityConfig", required: false, type: .structure), AWSShapeMember(label: "Id", required: true, type: .string) @@ -2104,7 +2125,7 @@ extension Cloudfront { public let s3CanonicalUserId: String /// The current configuration information for the identity. public let cloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig? - /// The ID for the origin access identity. For example: E74FTE3AJFJ256A. + /// The ID for the origin access identity, for example, E74FTE3AJFJ256A. public let id: String public init(s3CanonicalUserId: String, cloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig? = nil, id: String) { @@ -2121,7 +2142,7 @@ extension Cloudfront { } public struct TagList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tag", required: false, type: .list) ] public let tag: [Tag]? @@ -2136,7 +2157,7 @@ extension Cloudfront { } public struct GetDistributionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The distribution's ID. @@ -2160,16 +2181,16 @@ extension Cloudfront { } public struct StreamingLoggingConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", required: true, type: .string), AWSShapeMember(label: "Enabled", required: true, type: .boolean), AWSShapeMember(label: "Prefix", required: true, type: .string) ] /// The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com. public let bucket: String - /// Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted. + /// Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted. public let enabled: Bool - /// An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element. + /// An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, myprefix/. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty Prefix element in the Logging element. public let prefix: String public init(bucket: String, enabled: Bool, prefix: String) { @@ -2193,14 +2214,14 @@ extension Cloudfront { } public struct GeoRestriction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "RestrictionType", required: true, type: .enum), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] - /// A complex type that contains a Location element for each country in which you want CloudFront either to distribute your content (whitelist) or not distribute your content (blacklist). The Location element is a two-letter, uppercase country code for a country that you want to include in your blacklist or whitelist. Include one Location element for each country. CloudFront and MaxMind both use ISO 3166 country codes. For the current list of countries and the corresponding codes, see ISO 3166-1-alpha-2 code on the International Organization for Standardization website. You can also refer to the country list in the CloudFront console, which includes both country names and codes. + /// A complex type that contains a Location element for each country in which you want CloudFront either to distribute your content (whitelist) or not distribute your content (blacklist). The Location element is a two-letter, uppercase country code for a country that you want to include in your blacklist or whitelist. Include one Location element for each country. CloudFront and MaxMind both use ISO 3166 country codes. For the current list of countries and the corresponding codes, see ISO 3166-1-alpha-2 code on the International Organization for Standardization website. You can also refer to the country list on the CloudFront console, which includes both country names and codes. public let items: LocationList? - /// The method that you want to use to restrict distribution of your content by country: none: No geo restriction is enabled, meaning access to content is not restricted by client geo location. blacklist: The Location elements specify the countries in which you do not want CloudFront to distribute your content. whitelist: The Location elements specify the countries in which you want CloudFront to distribute your content. + /// The method that you want to use to restrict distribution of your content by country: none: No geo restriction is enabled, meaning access to content is not restricted by client geo location. blacklist: The Location elements specify the countries in which you don't want CloudFront to distribute your content. whitelist: The Location elements specify the countries in which you want CloudFront to distribute your content. public let restrictionType: GeoRestrictionType /// When geo restriction is enabled, this is the number of countries in your whitelist or blacklist. Otherwise, when it is not enabled, Quantity is 0, and you can omit Items. public let quantity: Int32 @@ -2219,7 +2240,7 @@ extension Cloudfront { } public struct StreamingDistributionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", required: true, type: .integer), AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "NextMarker", required: false, type: .string), @@ -2260,7 +2281,7 @@ extension Cloudfront { } public struct S3Origin: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OriginAccessIdentity", required: true, type: .string), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -2281,7 +2302,7 @@ extension Cloudfront { } public struct AliasList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CNAME", required: false, type: .list) ] public let cname: [String]? @@ -2298,7 +2319,7 @@ extension Cloudfront { public struct ListInvalidationsResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "InvalidationList" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InvalidationList", required: false, type: .structure) ] /// Information about invalidation batches. @@ -2314,7 +2335,7 @@ extension Cloudfront { } public struct CustomErrorResponseList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomErrorResponse", required: false, type: .list) ] public let customErrorResponse: [CustomErrorResponse]? @@ -2329,7 +2350,7 @@ extension Cloudfront { } public struct DistributionSummaryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DistributionSummary", required: false, type: .list) ] public let distributionSummary: [DistributionSummary]? @@ -2344,7 +2365,7 @@ extension Cloudfront { } public struct OriginCustomHeadersList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OriginCustomHeader", required: false, type: .list) ] public let originCustomHeader: [OriginCustomHeader]? @@ -2365,7 +2386,7 @@ extension Cloudfront { } public struct CloudFrontOriginAccessIdentitySummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string), AWSShapeMember(label: "S3CanonicalUserId", required: true, type: .string), AWSShapeMember(label: "Comment", required: true, type: .string) @@ -2391,7 +2412,7 @@ extension Cloudfront { } public struct InvalidationSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string), AWSShapeMember(label: "Status", required: true, type: .string), AWSShapeMember(label: "CreateTime", required: true, type: .timestamp) @@ -2416,7 +2437,7 @@ extension Cloudfront { } public struct ActiveTrustedSigners: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Enabled", required: true, type: .boolean), AWSShapeMember(label: "Quantity", required: true, type: .integer) @@ -2442,7 +2463,7 @@ extension Cloudfront { } public struct StreamingDistributionConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Aliases", required: false, type: .structure), AWSShapeMember(label: "CallerReference", required: true, type: .string), AWSShapeMember(label: "Logging", required: false, type: .structure), @@ -2493,7 +2514,7 @@ extension Cloudfront { } public struct MethodsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Method", required: false, type: .list) ] public let method: [Method]? @@ -2508,7 +2529,7 @@ extension Cloudfront { } public struct DeleteCloudFrontOriginAccessIdentityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IfMatch", location: .header(locationName: "If-Match"), required: false, type: .string), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] @@ -2531,7 +2552,7 @@ extension Cloudfront { public struct CreateInvalidationRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "InvalidationBatch" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InvalidationBatch", location: .body(locationName: "InvalidationBatch"), required: true, type: .structure), AWSShapeMember(label: "DistributionId", location: .uri(locationName: "DistributionId"), required: true, type: .string) ] @@ -2552,7 +2573,7 @@ extension Cloudfront { } public struct TagKeyList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .list) ] public let key: [String]? @@ -2567,7 +2588,7 @@ extension Cloudfront { } public struct OriginList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Origin", required: false, type: .list) ] public let origin: [Origin]? @@ -2582,7 +2603,7 @@ extension Cloudfront { } public struct GetDistributionConfigRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The distribution's ID. @@ -2600,7 +2621,7 @@ extension Cloudfront { public struct UpdateDistributionResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "Distribution" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "Distribution", required: false, type: .structure) ] @@ -2630,7 +2651,7 @@ extension Cloudfront { public struct GetStreamingDistributionConfigResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "StreamingDistributionConfig" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "StreamingDistributionConfig", required: false, type: .structure) ] @@ -2651,7 +2672,7 @@ extension Cloudfront { } public struct KeyPairIds: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -2672,7 +2693,7 @@ extension Cloudfront { } public struct Origin: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomHeaders", required: false, type: .structure), AWSShapeMember(label: "CustomOriginConfig", required: false, type: .structure), AWSShapeMember(label: "DomainName", required: true, type: .string), @@ -2684,7 +2705,7 @@ extension Cloudfront { public let customHeaders: CustomHeaders? /// A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the S3OriginConfig element instead. public let customOriginConfig: CustomOriginConfig? - /// Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com. Constraints for Amazon S3 origins: If you configured Amazon S3 Transfer Acceleration for your bucket, do not specify the s3-accelerate endpoint for DomainName. The bucket name must be between 3 and 63 characters long (inclusive). The bucket name must contain only lowercase characters, numbers, periods, underscores, and dashes. The bucket name must not contain adjacent periods. Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com. Constraints for custom origins: DomainName must be a valid DNS name that contains only a-z, A-Z, 0-9, dot (.), hyphen (-), or underscore (_) characters. The name cannot exceed 128 characters. + /// Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com. Constraints for Amazon S3 origins: If you configured Amazon S3 Transfer Acceleration for your bucket, don't specify the s3-accelerate endpoint for DomainName. The bucket name must be between 3 and 63 characters long (inclusive). The bucket name must contain only lowercase characters, numbers, periods, underscores, and dashes. The bucket name must not contain adjacent periods. Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com. Constraints for custom origins: DomainName must be a valid DNS name that contains only a-z, A-Z, 0-9, dot (.), hyphen (-), or underscore (_) characters. The name cannot exceed 128 characters. public let domainName: String /// An optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin. When you include the OriginPath element, specify the directory name, beginning with a /. CloudFront appends the directory name to the value of DomainName, for example, example.com/production. Do not include a / at the end of the directory name. For example, suppose you've specified the following values for your distribution: DomainName: An Amazon S3 bucket named myawsbucket. OriginPath: /production CNAME: example.com When a user enters example.com/index.html in a browser, CloudFront sends a request to Amazon S3 for myawsbucket/production/index.html. When a user enters example.com/acme/index.html in a browser, CloudFront sends a request to Amazon S3 for myawsbucket/production/acme/index.html. public let originPath: String? @@ -2713,7 +2734,7 @@ extension Cloudfront { } public struct Tags: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure) ] /// A complex type that contains Tag elements. @@ -2729,7 +2750,7 @@ extension Cloudfront { } public struct LambdaFunctionAssociationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LambdaFunctionAssociation", required: false, type: .list) ] public let lambdaFunctionAssociation: [LambdaFunctionAssociation]? @@ -2744,7 +2765,7 @@ extension Cloudfront { } public struct StreamingDistributionSummaryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamingDistributionSummary", required: false, type: .list) ] public let streamingDistributionSummary: [StreamingDistributionSummary]? @@ -2761,7 +2782,7 @@ extension Cloudfront { public struct GetCloudFrontOriginAccessIdentityResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "CloudFrontOriginAccessIdentity" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "CloudFrontOriginAccessIdentity", required: false, type: .structure) ] @@ -2784,7 +2805,7 @@ extension Cloudfront { public struct GetDistributionResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "Distribution" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "Distribution", required: false, type: .structure) ] @@ -2807,7 +2828,7 @@ extension Cloudfront { public struct UpdateStreamingDistributionRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "StreamingDistributionConfig" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IfMatch", location: .header(locationName: "If-Match"), required: false, type: .string), AWSShapeMember(label: "StreamingDistributionConfig", location: .body(locationName: "StreamingDistributionConfig"), required: true, type: .structure), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) @@ -2833,7 +2854,7 @@ extension Cloudfront { } public struct CloudFrontOriginAccessIdentityList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", required: true, type: .integer), AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "NextMarker", required: false, type: .string), @@ -2874,7 +2895,7 @@ extension Cloudfront { } public struct GetCloudFrontOriginAccessIdentityConfigRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The identity's ID. @@ -2892,7 +2913,7 @@ extension Cloudfront { public struct CreateCloudFrontOriginAccessIdentityRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "CloudFrontOriginAccessIdentityConfig" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CloudFrontOriginAccessIdentityConfig", location: .body(locationName: "CloudFrontOriginAccessIdentityConfig"), required: true, type: .structure) ] /// The current configuration information for the identity. @@ -2908,7 +2929,7 @@ extension Cloudfront { } public struct Distribution: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastModifiedTime", required: true, type: .timestamp), AWSShapeMember(label: "Status", required: true, type: .string), AWSShapeMember(label: "ActiveTrustedSigners", required: true, type: .structure), @@ -2928,7 +2949,7 @@ extension Cloudfront { public let arn: String /// The current configuration information for the distribution. Send a GET request to the /CloudFront API version/distribution ID/config resource. public let distributionConfig: DistributionConfig - /// The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net. + /// The domain name corresponding to the distribution, for example, d111111abcdef8.cloudfront.net. public let domainName: String /// The number of invalidation batches currently in progress. public let inProgressInvalidationBatches: Int32 @@ -2959,7 +2980,7 @@ extension Cloudfront { } public struct StreamingDistributionConfigWithTags: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .structure), AWSShapeMember(label: "StreamingDistributionConfig", required: true, type: .structure) ] @@ -2980,7 +3001,7 @@ extension Cloudfront { } public struct CloudFrontOriginAccessIdentityConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CallerReference", required: true, type: .string), AWSShapeMember(label: "Comment", required: true, type: .string) ] @@ -3003,7 +3024,7 @@ extension Cloudfront { public struct UpdateCloudFrontOriginAccessIdentityResult: AWSShape { /// The key for the payload public static let payloadPath: String? = "CloudFrontOriginAccessIdentity" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), AWSShapeMember(label: "CloudFrontOriginAccessIdentity", required: false, type: .structure) ] @@ -3024,7 +3045,7 @@ extension Cloudfront { } public struct DeleteStreamingDistributionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IfMatch", location: .header(locationName: "If-Match"), required: false, type: .string), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] @@ -3045,7 +3066,7 @@ extension Cloudfront { } public struct CustomErrorResponses: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -3066,7 +3087,7 @@ extension Cloudfront { } public struct CookieNames: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -3087,7 +3108,7 @@ extension Cloudfront { } public struct CookieNameList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .list) ] public let name: [String]? @@ -3113,7 +3134,7 @@ extension Cloudfront { } public struct AwsAccountNumberList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AwsAccountNumber", required: false, type: .list) ] public let awsAccountNumber: [String]? @@ -3128,7 +3149,7 @@ extension Cloudfront { } public struct Aliases: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "Quantity", required: true, type: .integer) ] @@ -3149,7 +3170,7 @@ extension Cloudfront { } public struct DeleteDistributionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IfMatch", location: .header(locationName: "If-Match"), required: false, type: .string), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/cloudhsm/Cloudhsm_API.swift b/Sources/AWSSDKSwift/Services/cloudhsm/Cloudhsm_API.swift index 1c583648e7c..ed4f6157f29 100644 --- a/Sources/AWSSDKSwift/Services/cloudhsm/Cloudhsm_API.swift +++ b/Sources/AWSSDKSwift/Services/cloudhsm/Cloudhsm_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -AWS CloudHSM Service +AWS CloudHSM Service This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. */ public struct Cloudhsm { @@ -25,102 +25,102 @@ public struct Cloudhsm { ) } - /// Modifies an HSM. This operation can result in the HSM being offline for up to 15 minutes while the AWS CloudHSM service is reconfigured. If you are modifying a production HSM, you should ensure that your AWS CloudHSM service is configured for high availability, and consider executing this operation during a maintenance window. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Modifies an HSM. This operation can result in the HSM being offline for up to 15 minutes while the AWS CloudHSM service is reconfigured. If you are modifying a production HSM, you should ensure that your AWS CloudHSM service is configured for high availability, and consider executing this operation during a maintenance window. public func modifyHsm(_ input: ModifyHsmRequest) throws -> ModifyHsmResponse { return try client.send(operation: "ModifyHsm", path: "/", httpMethod: "POST", input: input) } - /// Retrieves information about an HSM client. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves information about an HSM client. public func describeLunaClient(_ input: DescribeLunaClientRequest) throws -> DescribeLunaClientResponse { return try client.send(operation: "DescribeLunaClient", path: "/", httpMethod: "POST", input: input) } - /// Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number. public func describeHsm(_ input: DescribeHsmRequest) throws -> DescribeHsmResponse { return try client.send(operation: "DescribeHsm", path: "/", httpMethod: "POST", input: input) } - /// Deletes an HSM. After completion, this operation cannot be undone and your key material cannot be recovered. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Deletes an HSM. After completion, this operation cannot be undone and your key material cannot be recovered. public func deleteHsm(_ input: DeleteHsmRequest) throws -> DeleteHsmResponse { return try client.send(operation: "DeleteHsm", path: "/", httpMethod: "POST", input: input) } - /// Removes one or more tags from the specified AWS CloudHSM resource. To remove a tag, specify only the tag key to remove (not the value). To overwrite the value for an existing tag, use AddTagsToResource. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Removes one or more tags from the specified AWS CloudHSM resource. To remove a tag, specify only the tag key to remove (not the value). To overwrite the value for an existing tag, use AddTagsToResource. public func removeTagsFromResource(_ input: RemoveTagsFromResourceRequest) throws -> RemoveTagsFromResourceResponse { return try client.send(operation: "RemoveTagsFromResource", path: "/", httpMethod: "POST", input: input) } - /// Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs. public func createHapg(_ input: CreateHapgRequest) throws -> CreateHapgResponse { return try client.send(operation: "CreateHapg", path: "/", httpMethod: "POST", input: input) } - /// Deletes a client. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Deletes a client. public func deleteLunaClient(_ input: DeleteLunaClientRequest) throws -> DeleteLunaClientResponse { return try client.send(operation: "DeleteLunaClient", path: "/", httpMethod: "POST", input: input) } - /// Modifies the certificate used by the client. This action can potentially start a workflow to install the new certificate on the client's HSMs. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Modifies the certificate used by the client. This action can potentially start a workflow to install the new certificate on the client's HSMs. public func modifyLunaClient(_ input: ModifyLunaClientRequest) throws -> ModifyLunaClientResponse { return try client.send(operation: "ModifyLunaClient", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of all tags for the specified AWS CloudHSM resource. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Returns a list of all tags for the specified AWS CloudHSM resource. public func listTagsForResource(_ input: ListTagsForResourceRequest) throws -> ListTagsForResourceResponse { return try client.send(operation: "ListTagsForResource", path: "/", httpMethod: "POST", input: input) } - /// Gets the configuration files necessary to connect to all high availability partition groups the client is associated with. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Gets the configuration files necessary to connect to all high availability partition groups the client is associated with. public func getConfig(_ input: GetConfigRequest) throws -> GetConfigResponse { return try client.send(operation: "GetConfig", path: "/", httpMethod: "POST", input: input) } - /// Lists the Availability Zones that have available AWS CloudHSM capacity. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Lists the Availability Zones that have available AWS CloudHSM capacity. public func listAvailableZones(_ input: ListAvailableZonesRequest) throws -> ListAvailableZonesResponse { return try client.send(operation: "ListAvailableZones", path: "/", httpMethod: "POST", input: input) } - /// Lists all of the clients. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListLunaClients to retrieve the next set of items. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Lists all of the clients. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListLunaClients to retrieve the next set of items. public func listLunaClients(_ input: ListLunaClientsRequest) throws -> ListLunaClientsResponse { return try client.send(operation: "ListLunaClients", path: "/", httpMethod: "POST", input: input) } - /// Deletes a high-availability partition group. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Deletes a high-availability partition group. public func deleteHapg(_ input: DeleteHapgRequest) throws -> DeleteHapgResponse { return try client.send(operation: "DeleteHapg", path: "/", httpMethod: "POST", input: input) } - /// Modifies an existing high-availability partition group. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Modifies an existing high-availability partition group. public func modifyHapg(_ input: ModifyHapgRequest) throws -> ModifyHapgResponse { return try client.send(operation: "ModifyHapg", path: "/", httpMethod: "POST", input: input) } - /// Retrieves information about a high-availability partition group. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves information about a high-availability partition group. public func describeHapg(_ input: DescribeHapgRequest) throws -> DescribeHapgResponse { return try client.send(operation: "DescribeHapg", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the identifiers of all of the HSMs provisioned for the current customer. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHsms to retrieve the next set of items. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves the identifiers of all of the HSMs provisioned for the current customer. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHsms to retrieve the next set of items. public func listHsms(_ input: ListHsmsRequest) throws -> ListHsmsResponse { return try client.send(operation: "ListHsms", path: "/", httpMethod: "POST", input: input) } - /// Creates an uninitialized HSM instance. There is an upfront fee charged for each HSM instance that you create with the CreateHsm operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the DeleteHsm operation, go to the AWS Support Center, create a new case, and select Account and Billing Support. It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the DescribeHsm operation. The HSM is ready to be initialized when the status changes to RUNNING. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Creates an uninitialized HSM instance. There is an upfront fee charged for each HSM instance that you create with the CreateHsm operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the DeleteHsm operation, go to the AWS Support Center, create a new case, and select Account and Billing Support. It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the DescribeHsm operation. The HSM is ready to be initialized when the status changes to RUNNING. public func createHsm(_ input: CreateHsmRequest) throws -> CreateHsmResponse { return try client.send(operation: "CreateHsm", path: "/", httpMethod: "POST", input: input) } - /// Adds or overwrites one or more tags for the specified AWS CloudHSM resource. Each tag consists of a key and a value. Tag keys must be unique to each resource. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Adds or overwrites one or more tags for the specified AWS CloudHSM resource. Each tag consists of a key and a value. Tag keys must be unique to each resource. public func addTagsToResource(_ input: AddTagsToResourceRequest) throws -> AddTagsToResourceResponse { return try client.send(operation: "AddTagsToResource", path: "/", httpMethod: "POST", input: input) } - /// Lists the high-availability partition groups for the account. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHapgs to retrieve the next set of items. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Lists the high-availability partition groups for the account. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHapgs to retrieve the next set of items. public func listHapgs(_ input: ListHapgsRequest) throws -> ListHapgsResponse { return try client.send(operation: "ListHapgs", path: "/", httpMethod: "POST", input: input) } - /// Creates an HSM client. + /// This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Creates an HSM client. public func createLunaClient(_ input: CreateLunaClientRequest) throws -> CreateLunaClientResponse { return try client.send(operation: "CreateLunaClient", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/cloudhsm/Cloudhsm_Shapes.swift b/Sources/AWSSDKSwift/Services/cloudhsm/Cloudhsm_Shapes.swift index 66c4406c945..219ced0ef7c 100644 --- a/Sources/AWSSDKSwift/Services/cloudhsm/Cloudhsm_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/cloudhsm/Cloudhsm_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Cloudhsm { public struct ModifyHapgResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HapgArn", required: false, type: .string) ] /// The ARN of the high-availability partition group. @@ -22,7 +22,7 @@ extension Cloudhsm { } public struct DeleteHsmResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: true, type: .string) ] /// The status of the operation. @@ -38,7 +38,7 @@ extension Cloudhsm { } public struct DescribeHsmRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmSerialNumber", required: false, type: .string), AWSShapeMember(label: "HsmArn", required: false, type: .string) ] @@ -59,7 +59,7 @@ extension Cloudhsm { } public struct ListTagsForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the AWS CloudHSM resource. @@ -75,7 +75,7 @@ extension Cloudhsm { } public struct ListTagsForResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagList", required: true, type: .list) ] /// One or more tags. @@ -91,7 +91,7 @@ extension Cloudhsm { } public struct CreateHapgRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Label", required: true, type: .string) ] /// The label of the new high-availability partition group. @@ -107,7 +107,7 @@ extension Cloudhsm { } public struct GetConfigRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientArn", required: true, type: .string), AWSShapeMember(label: "HapgList", required: true, type: .list), AWSShapeMember(label: "ClientVersion", required: true, type: .enum) @@ -133,7 +133,7 @@ extension Cloudhsm { } public struct ModifyHapgRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Label", required: false, type: .string), AWSShapeMember(label: "HapgArn", required: true, type: .string), AWSShapeMember(label: "PartitionSerialList", required: false, type: .list) @@ -159,7 +159,7 @@ extension Cloudhsm { } public struct ListLunaClientsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string) ] /// The NextToken value from a previous call to ListLunaClients. Pass null if this is the first call. @@ -175,7 +175,7 @@ extension Cloudhsm { } public struct CreateLunaClientRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificate", required: true, type: .string), AWSShapeMember(label: "Label", required: false, type: .string) ] @@ -208,7 +208,7 @@ extension Cloudhsm { } public struct ModifyLunaClientRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificate", required: true, type: .string), AWSShapeMember(label: "ClientArn", required: true, type: .string) ] @@ -229,7 +229,7 @@ extension Cloudhsm { } public struct DescribeLunaClientRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientArn", required: false, type: .string), AWSShapeMember(label: "CertificateFingerprint", required: false, type: .string) ] @@ -250,7 +250,7 @@ extension Cloudhsm { } public struct GetConfigResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigType", required: false, type: .string), AWSShapeMember(label: "ConfigFile", required: false, type: .string), AWSShapeMember(label: "ConfigCred", required: false, type: .string) @@ -287,7 +287,7 @@ extension Cloudhsm { } public struct DeleteHsmRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmArn", location: .body(locationName: "HsmArn"), required: true, type: .string) ] /// The ARN of the HSM to delete. @@ -303,7 +303,7 @@ extension Cloudhsm { } public struct ListHsmsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string) ] /// The NextToken value from a previous call to ListHsms. Pass null if this is the first call. @@ -319,7 +319,7 @@ extension Cloudhsm { } public struct ModifyHsmRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExternalId", location: .body(locationName: "ExternalId"), required: false, type: .string), AWSShapeMember(label: "SubnetId", location: .body(locationName: "SubnetId"), required: false, type: .string), AWSShapeMember(label: "EniIp", location: .body(locationName: "EniIp"), required: false, type: .string), @@ -360,7 +360,7 @@ extension Cloudhsm { } public struct DescribeHapgResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmsPendingDeletion", required: false, type: .list), AWSShapeMember(label: "State", required: false, type: .enum), AWSShapeMember(label: "HapgArn", required: false, type: .string), @@ -413,7 +413,7 @@ extension Cloudhsm { } public struct DescribeLunaClientResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificate", required: false, type: .string), AWSShapeMember(label: "LastModifiedTimestamp", required: false, type: .string), AWSShapeMember(label: "ClientArn", required: false, type: .string), @@ -449,7 +449,7 @@ extension Cloudhsm { } public struct RemoveTagsFromResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: true, type: .string) ] /// The status of the operation. @@ -465,7 +465,7 @@ extension Cloudhsm { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -486,7 +486,7 @@ extension Cloudhsm { } public struct AddTagsToResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: true, type: .string) ] /// The status of the operation. @@ -502,7 +502,7 @@ extension Cloudhsm { } public struct DeleteHapgRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HapgArn", required: true, type: .string) ] /// The ARN of the high-availability partition group to delete. @@ -518,7 +518,7 @@ extension Cloudhsm { } public struct DescribeHsmResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StatusDetails", required: false, type: .string), AWSShapeMember(label: "SubnetId", required: false, type: .string), AWSShapeMember(label: "EniIp", required: false, type: .string), @@ -633,7 +633,7 @@ extension Cloudhsm { } public struct ListLunaClientsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ClientList", required: true, type: .list) ] @@ -654,7 +654,7 @@ extension Cloudhsm { } public struct DeleteLunaClientResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: true, type: .string) ] /// The status of the action. @@ -670,7 +670,7 @@ extension Cloudhsm { } public struct ListAvailableZonesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AZList", required: false, type: .list) ] /// The list of Availability Zones that have available AWS CloudHSM capacity. @@ -686,7 +686,7 @@ extension Cloudhsm { } public struct AddTagsToResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string), AWSShapeMember(label: "TagList", required: true, type: .list) ] @@ -707,7 +707,7 @@ extension Cloudhsm { } public struct CreateLunaClientResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientArn", required: false, type: .string) ] /// The ARN of the client. @@ -723,7 +723,7 @@ extension Cloudhsm { } public struct CreateHapgResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HapgArn", required: false, type: .string) ] /// The ARN of the high-availability partition group. @@ -739,7 +739,7 @@ extension Cloudhsm { } public struct CreateHsmResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmArn", required: false, type: .string) ] /// The ARN of the HSM. @@ -755,7 +755,7 @@ extension Cloudhsm { } public struct ListHapgsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "HapgList", required: true, type: .list) ] @@ -776,7 +776,7 @@ extension Cloudhsm { } public struct CreateHsmRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", location: .body(locationName: "SubnetId"), required: true, type: .string), AWSShapeMember(label: "ClientToken", location: .body(locationName: "ClientToken"), required: false, type: .string), AWSShapeMember(label: "EniIp", location: .body(locationName: "EniIp"), required: false, type: .string), @@ -826,7 +826,7 @@ extension Cloudhsm { } public struct RemoveTagsFromResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagKeyList", required: true, type: .list), AWSShapeMember(label: "ResourceArn", required: true, type: .string) ] @@ -851,7 +851,7 @@ extension Cloudhsm { } public struct DeleteHapgResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: true, type: .string) ] /// The status of the action. @@ -867,7 +867,7 @@ extension Cloudhsm { } public struct DeleteLunaClientRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientArn", required: true, type: .string) ] /// The ARN of the client to delete. @@ -883,7 +883,7 @@ extension Cloudhsm { } public struct ListHsmsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmList", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -904,7 +904,7 @@ extension Cloudhsm { } public struct DescribeHapgRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HapgArn", required: true, type: .string) ] /// The ARN of the high-availability partition group to describe. @@ -920,7 +920,7 @@ extension Cloudhsm { } public struct ModifyLunaClientResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientArn", required: false, type: .string) ] /// The ARN of the client. @@ -936,7 +936,7 @@ extension Cloudhsm { } public struct ModifyHsmResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmArn", required: false, type: .string) ] /// The ARN of the HSM. @@ -952,7 +952,7 @@ extension Cloudhsm { } public struct ListHapgsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string) ] /// The NextToken value from a previous call to ListHapgs. Pass null if this is the first call. diff --git a/Sources/AWSSDKSwift/Services/cloudhsmv2/Cloudhsmv2_API.swift b/Sources/AWSSDKSwift/Services/cloudhsmv2/Cloudhsmv2_API.swift new file mode 100644 index 00000000000..3d8f0f0321a --- /dev/null +++ b/Sources/AWSSDKSwift/Services/cloudhsmv2/Cloudhsmv2_API.swift @@ -0,0 +1,79 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +For more information about AWS CloudHSM, see AWS CloudHSM and the AWS CloudHSM User Guide. +*/ +public struct Cloudhsmv2 { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "BaldrApiService", + service: "cloudhsmv2", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-04-28", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [Cloudhsmv2Error.self] + ) + } + + /// Gets information about backups of AWS CloudHSM clusters. This is a paginated operation, which means that each response might contain only a subset of all the backups. When the response contains only a subset of backups, it includes a NextToken value. Use this value in a subsequent DescribeBackups request to get more backups. When you receive a response with no NextToken (or an empty or null value), that means there are no more backups to get. + public func describeBackups(_ input: DescribeBackupsRequest) throws -> DescribeBackupsResponse { + return try client.send(operation: "DescribeBackups", path: "/", httpMethod: "POST", input: input) + } + + /// Removes the specified tag or tags from the specified AWS CloudHSM cluster. + public func untagResource(_ input: UntagResourceRequest) throws -> UntagResourceResponse { + return try client.send(operation: "UntagResource", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the specified AWS CloudHSM cluster. Before you can delete a cluster, you must delete all HSMs in the cluster. To see if the cluster contains any HSMs, use DescribeClusters. To delete an HSM, use DeleteHsm. + public func deleteCluster(_ input: DeleteClusterRequest) throws -> DeleteClusterResponse { + return try client.send(operation: "DeleteCluster", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the specified HSM. To specify an HSM, you can use its identifier (ID), the IP address of the HSM's elastic network interface (ENI), or the ID of the HSM's ENI. You need to specify only one of these values. To find these values, use DescribeClusters. + public func deleteHsm(_ input: DeleteHsmRequest) throws -> DeleteHsmResponse { + return try client.send(operation: "DeleteHsm", path: "/", httpMethod: "POST", input: input) + } + + /// Adds or overwrites one or more tags for the specified AWS CloudHSM cluster. + public func tagResource(_ input: TagResourceRequest) throws -> TagResourceResponse { + return try client.send(operation: "TagResource", path: "/", httpMethod: "POST", input: input) + } + + /// Gets a list of tags for the specified AWS CloudHSM cluster. This is a paginated operation, which means that each response might contain only a subset of all the tags. When the response contains only a subset of tags, it includes a NextToken value. Use this value in a subsequent ListTags request to get more tags. When you receive a response with no NextToken (or an empty or null value), that means there are no more tags to get. + public func listTags(_ input: ListTagsRequest) throws -> ListTagsResponse { + return try client.send(operation: "ListTags", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new hardware security module (HSM) in the specified AWS CloudHSM cluster. + public func createHsm(_ input: CreateHsmRequest) throws -> CreateHsmResponse { + return try client.send(operation: "CreateHsm", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new AWS CloudHSM cluster. + public func createCluster(_ input: CreateClusterRequest) throws -> CreateClusterResponse { + return try client.send(operation: "CreateCluster", path: "/", httpMethod: "POST", input: input) + } + + /// Gets information about AWS CloudHSM clusters. This is a paginated operation, which means that each response might contain only a subset of all the clusters. When the response contains only a subset of clusters, it includes a NextToken value. Use this value in a subsequent DescribeClusters request to get more clusters. When you receive a response with no NextToken (or an empty or null value), that means there are no more clusters to get. + public func describeClusters(_ input: DescribeClustersRequest) throws -> DescribeClustersResponse { + return try client.send(operation: "DescribeClusters", path: "/", httpMethod: "POST", input: input) + } + + /// Claims an AWS CloudHSM cluster by submitting the cluster certificate issued by your issuing certificate authority (CA) and the CA's root certificate. Before you can claim a cluster, you must sign the cluster's certificate signing request (CSR) with your issuing CA. To get the cluster's CSR, use DescribeClusters. + public func initializeCluster(_ input: InitializeClusterRequest) throws -> InitializeClusterResponse { + return try client.send(operation: "InitializeCluster", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/cloudhsmv2/Cloudhsmv2_Error.swift b/Sources/AWSSDKSwift/Services/cloudhsmv2/Cloudhsmv2_Error.swift new file mode 100644 index 00000000000..0d3ea7660e3 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/cloudhsmv2/Cloudhsmv2_Error.swift @@ -0,0 +1,35 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Cloudhsmv2 +public enum Cloudhsmv2Error: AWSErrorType { + case cloudHsmInternalFailureException(message: String?) + case cloudHsmServiceException(message: String?) + case cloudHsmResourceNotFoundException(message: String?) + case cloudHsmInvalidRequestException(message: String?) + case cloudHsmAccessDeniedException(message: String?) +} + +extension Cloudhsmv2Error { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "CloudHsmInternalFailureException": + self = .cloudHsmInternalFailureException(message: message) + case "CloudHsmServiceException": + self = .cloudHsmServiceException(message: message) + case "CloudHsmResourceNotFoundException": + self = .cloudHsmResourceNotFoundException(message: message) + case "CloudHsmInvalidRequestException": + self = .cloudHsmInvalidRequestException(message: message) + case "CloudHsmAccessDeniedException": + self = .cloudHsmAccessDeniedException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/cloudhsmv2/Cloudhsmv2_Shapes.swift b/Sources/AWSSDKSwift/Services/cloudhsmv2/Cloudhsmv2_Shapes.swift new file mode 100644 index 00000000000..d66a542a605 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/cloudhsmv2/Cloudhsmv2_Shapes.swift @@ -0,0 +1,658 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Cloudhsmv2 { + + public struct DeleteHsmResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "HsmId", required: false, type: .string) + ] + /// The identifier (ID) of the HSM that was deleted. + public let hsmId: String? + + public init(hsmId: String? = nil) { + self.hsmId = hsmId + } + + private enum CodingKeys: String, CodingKey { + case hsmId = "HsmId" + } + } + + public struct Cluster: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StateMessage", required: false, type: .string), + AWSShapeMember(label: "BackupPolicy", required: false, type: .enum), + AWSShapeMember(label: "SecurityGroup", required: false, type: .string), + AWSShapeMember(label: "Certificates", required: false, type: .structure), + AWSShapeMember(label: "Hsms", required: false, type: .list), + AWSShapeMember(label: "State", required: false, type: .enum), + AWSShapeMember(label: "SubnetMapping", required: false, type: .map), + AWSShapeMember(label: "VpcId", required: false, type: .string), + AWSShapeMember(label: "PreCoPassword", required: false, type: .string), + AWSShapeMember(label: "CreateTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "HsmType", required: false, type: .string), + AWSShapeMember(label: "ClusterId", required: false, type: .string), + AWSShapeMember(label: "SourceBackupId", required: false, type: .string) + ] + /// A description of the cluster's state. + public let stateMessage: String? + /// The cluster's backup policy. + public let backupPolicy: BackupPolicy? + /// The identifier (ID) of the cluster's security group. + public let securityGroup: String? + /// Contains one or more certificates or a certificate signing request (CSR). + public let certificates: Certificates? + /// Contains information about the HSMs in the cluster. + public let hsms: [Hsm]? + /// The cluster's state. + public let state: ClusterState? + /// A map of the cluster's subnets and their corresponding Availability Zones. + public let subnetMapping: [String: String]? + /// The identifier (ID) of the virtual private cloud (VPC) that contains the cluster. + public let vpcId: String? + /// The default password for the cluster's Pre-Crypto Officer (PRECO) user. + public let preCoPassword: String? + /// The date and time when the cluster was created. + public let createTimestamp: TimeStamp? + /// The type of HSM that the cluster contains. + public let hsmType: String? + /// The cluster's identifier (ID). + public let clusterId: String? + /// The identifier (ID) of the backup used to create the cluster. This value exists only when the cluster was created from a backup. + public let sourceBackupId: String? + + public init(stateMessage: String? = nil, backupPolicy: BackupPolicy? = nil, securityGroup: String? = nil, certificates: Certificates? = nil, hsms: [Hsm]? = nil, state: ClusterState? = nil, subnetMapping: [String: String]? = nil, vpcId: String? = nil, preCoPassword: String? = nil, createTimestamp: TimeStamp? = nil, hsmType: String? = nil, clusterId: String? = nil, sourceBackupId: String? = nil) { + self.stateMessage = stateMessage + self.backupPolicy = backupPolicy + self.securityGroup = securityGroup + self.certificates = certificates + self.hsms = hsms + self.state = state + self.subnetMapping = subnetMapping + self.vpcId = vpcId + self.preCoPassword = preCoPassword + self.createTimestamp = createTimestamp + self.hsmType = hsmType + self.clusterId = clusterId + self.sourceBackupId = sourceBackupId + } + + private enum CodingKeys: String, CodingKey { + case stateMessage = "StateMessage" + case backupPolicy = "BackupPolicy" + case securityGroup = "SecurityGroup" + case certificates = "Certificates" + case hsms = "Hsms" + case state = "State" + case subnetMapping = "SubnetMapping" + case vpcId = "VpcId" + case preCoPassword = "PreCoPassword" + case createTimestamp = "CreateTimestamp" + case hsmType = "HsmType" + case clusterId = "ClusterId" + case sourceBackupId = "SourceBackupId" + } + } + + public struct TagResourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceId", required: true, type: .string), + AWSShapeMember(label: "TagList", required: true, type: .list) + ] + /// The cluster identifier (ID) for the cluster that you are tagging. To find the cluster ID, use DescribeClusters. + public let resourceId: String + /// A list of one or more tags. + public let tagList: [Tag] + + public init(resourceId: String, tagList: [Tag]) { + self.resourceId = resourceId + self.tagList = tagList + } + + private enum CodingKeys: String, CodingKey { + case resourceId = "ResourceId" + case tagList = "TagList" + } + } + + public enum BackupState: String, CustomStringConvertible, Codable { + case createInProgress = "CREATE_IN_PROGRESS" + case ready = "READY" + case deleted = "DELETED" + public var description: String { return self.rawValue } + } + + public struct ListTagsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "TagList", required: true, type: .list) + ] + /// An opaque string that indicates that the response contains only a subset of tags. Use this value in a subsequent ListTags request to get more tags. + public let nextToken: String? + /// A list of tags. + public let tagList: [Tag] + + public init(nextToken: String? = nil, tagList: [Tag]) { + self.nextToken = nextToken + self.tagList = tagList + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case tagList = "TagList" + } + } + + public struct Hsm: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StateMessage", required: false, type: .string), + AWSShapeMember(label: "SubnetId", required: false, type: .string), + AWSShapeMember(label: "EniIp", required: false, type: .string), + AWSShapeMember(label: "State", required: false, type: .enum), + AWSShapeMember(label: "EniId", required: false, type: .string), + AWSShapeMember(label: "HsmId", required: true, type: .string), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "ClusterId", required: false, type: .string) + ] + /// A description of the HSM's state. + public let stateMessage: String? + /// The subnet that contains the HSM's elastic network interface (ENI). + public let subnetId: String? + /// The IP address of the HSM's elastic network interface (ENI). + public let eniIp: String? + /// The HSM's state. + public let state: HsmState? + /// The identifier (ID) of the HSM's elastic network interface (ENI). + public let eniId: String? + /// The HSM's identifier (ID). + public let hsmId: String + /// The Availability Zone that contains the HSM. + public let availabilityZone: String? + /// The identifier (ID) of the cluster that contains the HSM. + public let clusterId: String? + + public init(stateMessage: String? = nil, subnetId: String? = nil, eniIp: String? = nil, state: HsmState? = nil, eniId: String? = nil, hsmId: String, availabilityZone: String? = nil, clusterId: String? = nil) { + self.stateMessage = stateMessage + self.subnetId = subnetId + self.eniIp = eniIp + self.state = state + self.eniId = eniId + self.hsmId = hsmId + self.availabilityZone = availabilityZone + self.clusterId = clusterId + } + + private enum CodingKeys: String, CodingKey { + case stateMessage = "StateMessage" + case subnetId = "SubnetId" + case eniIp = "EniIp" + case state = "State" + case eniId = "EniId" + case hsmId = "HsmId" + case availabilityZone = "AvailabilityZone" + case clusterId = "ClusterId" + } + } + + public struct InitializeClusterResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StateMessage", required: false, type: .string), + AWSShapeMember(label: "State", required: false, type: .enum) + ] + /// A description of the cluster's state. + public let stateMessage: String? + /// The cluster's state. + public let state: ClusterState? + + public init(stateMessage: String? = nil, state: ClusterState? = nil) { + self.stateMessage = stateMessage + self.state = state + } + + private enum CodingKeys: String, CodingKey { + case stateMessage = "StateMessage" + case state = "State" + } + } + + public enum ClusterState: String, CustomStringConvertible, Codable { + case createInProgress = "CREATE_IN_PROGRESS" + case uninitialized = "UNINITIALIZED" + case initializeInProgress = "INITIALIZE_IN_PROGRESS" + case initialized = "INITIALIZED" + case active = "ACTIVE" + case updateInProgress = "UPDATE_IN_PROGRESS" + case deleteInProgress = "DELETE_IN_PROGRESS" + case deleted = "DELETED" + case degraded = "DEGRADED" + public var description: String { return self.rawValue } + } + + public struct TagResourceResponse: AWSShape { + + } + + public struct CreateClusterResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Cluster", required: false, type: .structure) + ] + /// Information about the cluster that was created. + public let cluster: Cluster? + + public init(cluster: Cluster? = nil) { + self.cluster = cluster + } + + private enum CodingKeys: String, CodingKey { + case cluster = "Cluster" + } + } + + public enum HsmState: String, CustomStringConvertible, Codable { + case createInProgress = "CREATE_IN_PROGRESS" + case active = "ACTIVE" + case degraded = "DEGRADED" + case deleteInProgress = "DELETE_IN_PROGRESS" + case deleted = "DELETED" + public var description: String { return self.rawValue } + } + + public struct DeleteHsmRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "HsmId", required: false, type: .string), + AWSShapeMember(label: "EniIp", required: false, type: .string), + AWSShapeMember(label: "EniId", required: false, type: .string), + AWSShapeMember(label: "ClusterId", required: true, type: .string) + ] + /// The identifier (ID) of the HSM that you are deleting. + public let hsmId: String? + /// The IP address of the elastic network interface (ENI) of the HSM that you are deleting. + public let eniIp: String? + /// The identifier (ID) of the elastic network interface (ENI) of the HSM that you are deleting. + public let eniId: String? + /// The identifier (ID) of the cluster that contains the HSM that you are deleting. + public let clusterId: String + + public init(hsmId: String? = nil, eniIp: String? = nil, eniId: String? = nil, clusterId: String) { + self.hsmId = hsmId + self.eniIp = eniIp + self.eniId = eniId + self.clusterId = clusterId + } + + private enum CodingKeys: String, CodingKey { + case hsmId = "HsmId" + case eniIp = "EniIp" + case eniId = "EniId" + case clusterId = "ClusterId" + } + } + + public struct CreateClusterRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIds", required: true, type: .list), + AWSShapeMember(label: "HsmType", required: true, type: .string), + AWSShapeMember(label: "SourceBackupId", required: false, type: .string) + ] + /// The identifiers (IDs) of the subnets where you are creating the cluster. You must specify at least one subnet. If you specify multiple subnets, they must meet the following criteria: All subnets must be in the same virtual private cloud (VPC). You can specify only one subnet per Availability Zone. + public let subnetIds: [String] + /// The type of HSM to use in the cluster. Currently the only allowed value is hsm1.medium. + public let hsmType: String + /// The identifier (ID) of the cluster backup to restore. Use this value to restore the cluster from a backup instead of creating a new cluster. To find the backup ID, use DescribeBackups. + public let sourceBackupId: String? + + public init(subnetIds: [String], hsmType: String, sourceBackupId: String? = nil) { + self.subnetIds = subnetIds + self.hsmType = hsmType + self.sourceBackupId = sourceBackupId + } + + private enum CodingKeys: String, CodingKey { + case subnetIds = "SubnetIds" + case hsmType = "HsmType" + case sourceBackupId = "SourceBackupId" + } + } + + public struct DeleteClusterResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Cluster", required: false, type: .structure) + ] + /// Information about the cluster that was deleted. + public let cluster: Cluster? + + public init(cluster: Cluster? = nil) { + self.cluster = cluster + } + + private enum CodingKeys: String, CodingKey { + case cluster = "Cluster" + } + } + + public enum BackupPolicy: String, CustomStringConvertible, Codable { + case `default` = "DEFAULT" + public var description: String { return self.rawValue } + } + + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: true, type: .string), + AWSShapeMember(label: "Key", required: true, type: .string) + ] + /// The value of the tag. + public let value: String + /// The key of the tag. + public let key: String + + public init(value: String, key: String) { + self.value = value + self.key = key + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case key = "Key" + } + } + + public struct DeleteClusterRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClusterId", required: true, type: .string) + ] + /// The identifier (ID) of the cluster that you are deleting. To find the cluster ID, use DescribeClusters. + public let clusterId: String + + public init(clusterId: String) { + self.clusterId = clusterId + } + + private enum CodingKeys: String, CodingKey { + case clusterId = "ClusterId" + } + } + + public struct DescribeBackupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .map), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The NextToken value that you received in the previous response. Use this value to get more backups. + public let nextToken: String? + /// One or more filters to limit the items returned in the response. Use the backupIds filter to return only the specified backups. Specify backups by their backup identifier (ID). Use the clusterIds filter to return only the backups for the specified clusters. Specify clusters by their cluster identifier (ID). Use the states filter to return only backups that match the specified state. + public let filters: [String: [String]]? + /// The maximum number of backups to return in the response. When there are more backups than the number you specify, the response contains a NextToken value. + public let maxResults: Int32? + + public init(nextToken: String? = nil, filters: [String: [String]]? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.filters = filters + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case filters = "Filters" + case maxResults = "MaxResults" + } + } + + public struct InitializeClusterRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClusterId", required: true, type: .string), + AWSShapeMember(label: "TrustAnchor", required: true, type: .string), + AWSShapeMember(label: "SignedCert", required: true, type: .string) + ] + /// The identifier (ID) of the cluster that you are claiming. To find the cluster ID, use DescribeClusters. + public let clusterId: String + /// The issuing certificate of the issuing certificate authority (CA) that issued (signed) the cluster certificate. This can be a root (self-signed) certificate or a certificate chain that begins with the certificate that issued the cluster certificate and ends with a root certificate. The certificate or certificate chain must be in PEM format and can contain a maximum of 5000 characters. + public let trustAnchor: String + /// The cluster certificate issued (signed) by your issuing certificate authority (CA). The certificate must be in PEM format and can contain a maximum of 5000 characters. + public let signedCert: String + + public init(clusterId: String, trustAnchor: String, signedCert: String) { + self.clusterId = clusterId + self.trustAnchor = trustAnchor + self.signedCert = signedCert + } + + private enum CodingKeys: String, CodingKey { + case clusterId = "ClusterId" + case trustAnchor = "TrustAnchor" + case signedCert = "SignedCert" + } + } + + public struct UntagResourceResponse: AWSShape { + + } + + public struct DescribeClustersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Clusters", required: false, type: .list) + ] + /// An opaque string that indicates that the response contains only a subset of clusters. Use this value in a subsequent DescribeClusters request to get more clusters. + public let nextToken: String? + /// A list of clusters. + public let clusters: [Cluster]? + + public init(nextToken: String? = nil, clusters: [Cluster]? = nil) { + self.nextToken = nextToken + self.clusters = clusters + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case clusters = "Clusters" + } + } + + public struct Backup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "BackupState", required: false, type: .enum), + AWSShapeMember(label: "BackupId", required: true, type: .string), + AWSShapeMember(label: "ClusterId", required: false, type: .string) + ] + /// The date and time when the backup was created. + public let createTimestamp: TimeStamp? + /// The state of the backup. + public let backupState: BackupState? + /// The identifier (ID) of the backup. + public let backupId: String + /// The identifier (ID) of the cluster that was backed up. + public let clusterId: String? + + public init(createTimestamp: TimeStamp? = nil, backupState: BackupState? = nil, backupId: String, clusterId: String? = nil) { + self.createTimestamp = createTimestamp + self.backupState = backupState + self.backupId = backupId + self.clusterId = clusterId + } + + private enum CodingKeys: String, CodingKey { + case createTimestamp = "CreateTimestamp" + case backupState = "BackupState" + case backupId = "BackupId" + case clusterId = "ClusterId" + } + } + + public struct CreateHsmResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Hsm", required: false, type: .structure) + ] + /// Information about the HSM that was created. + public let hsm: Hsm? + + public init(hsm: Hsm? = nil) { + self.hsm = hsm + } + + private enum CodingKeys: String, CodingKey { + case hsm = "Hsm" + } + } + + public struct CreateHsmRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZone", required: true, type: .string), + AWSShapeMember(label: "ClusterId", required: true, type: .string), + AWSShapeMember(label: "IpAddress", required: false, type: .string) + ] + /// The Availability Zone where you are creating the HSM. To find the cluster's Availability Zones, use DescribeClusters. + public let availabilityZone: String + /// The identifier (ID) of the HSM's cluster. To find the cluster ID, use DescribeClusters. + public let clusterId: String + /// The HSM's IP address. If you specify an IP address, use an available address from the subnet that maps to the Availability Zone where you are creating the HSM. If you don't specify an IP address, one is chosen for you from that subnet. + public let ipAddress: String? + + public init(availabilityZone: String, clusterId: String, ipAddress: String? = nil) { + self.availabilityZone = availabilityZone + self.clusterId = clusterId + self.ipAddress = ipAddress + } + + private enum CodingKeys: String, CodingKey { + case availabilityZone = "AvailabilityZone" + case clusterId = "ClusterId" + case ipAddress = "IpAddress" + } + } + + public struct DescribeBackupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Backups", required: false, type: .list) + ] + /// An opaque string that indicates that the response contains only a subset of backups. Use this value in a subsequent DescribeBackups request to get more backups. + public let nextToken: String? + /// A list of backups. + public let backups: [Backup]? + + public init(nextToken: String? = nil, backups: [Backup]? = nil) { + self.nextToken = nextToken + self.backups = backups + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case backups = "Backups" + } + } + + public struct DescribeClustersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .map), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The NextToken value that you received in the previous response. Use this value to get more clusters. + public let nextToken: String? + /// One or more filters to limit the items returned in the response. Use the clusterIds filter to return only the specified clusters. Specify clusters by their cluster identifier (ID). Use the vpcIds filter to return only the clusters in the specified virtual private clouds (VPCs). Specify VPCs by their VPC identifier (ID). Use the states filter to return only clusters that match the specified state. + public let filters: [String: [String]]? + /// The maximum number of clusters to return in the response. When there are more clusters than the number you specify, the response contains a NextToken value. + public let maxResults: Int32? + + public init(nextToken: String? = nil, filters: [String: [String]]? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.filters = filters + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case filters = "Filters" + case maxResults = "MaxResults" + } + } + + public struct ListTagsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceId", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The cluster identifier (ID) for the cluster whose tags you are getting. To find the cluster ID, use DescribeClusters. + public let resourceId: String + /// The NextToken value that you received in the previous response. Use this value to get more tags. + public let nextToken: String? + /// The maximum number of tags to return in the response. When there are more tags than the number you specify, the response contains a NextToken value. + public let maxResults: Int32? + + public init(resourceId: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.resourceId = resourceId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case resourceId = "ResourceId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct UntagResourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TagKeyList", required: true, type: .list), + AWSShapeMember(label: "ResourceId", required: true, type: .string) + ] + /// A list of one or more tag keys for the tags that you are removing. Specify only the tag keys, not the tag values. + public let tagKeyList: [String] + /// The cluster identifier (ID) for the cluster whose tags you are removing. To find the cluster ID, use DescribeClusters. + public let resourceId: String + + public init(tagKeyList: [String], resourceId: String) { + self.tagKeyList = tagKeyList + self.resourceId = resourceId + } + + private enum CodingKeys: String, CodingKey { + case tagKeyList = "TagKeyList" + case resourceId = "ResourceId" + } + } + + public struct Certificates: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AwsHardwareCertificate", required: false, type: .string), + AWSShapeMember(label: "ClusterCsr", required: false, type: .string), + AWSShapeMember(label: "ClusterCertificate", required: false, type: .string), + AWSShapeMember(label: "ManufacturerHardwareCertificate", required: false, type: .string), + AWSShapeMember(label: "HsmCertificate", required: false, type: .string) + ] + /// The HSM hardware certificate issued (signed) by AWS CloudHSM. + public let awsHardwareCertificate: String? + /// The cluster's certificate signing request (CSR). The CSR exists only when the cluster's state is UNINITIALIZED. + public let clusterCsr: String? + /// The cluster certificate issued (signed) by the issuing certificate authority (CA) of the cluster's owner. + public let clusterCertificate: String? + /// The HSM hardware certificate issued (signed) by the hardware manufacturer. + public let manufacturerHardwareCertificate: String? + /// The HSM certificate issued (signed) by the HSM hardware. + public let hsmCertificate: String? + + public init(awsHardwareCertificate: String? = nil, clusterCsr: String? = nil, clusterCertificate: String? = nil, manufacturerHardwareCertificate: String? = nil, hsmCertificate: String? = nil) { + self.awsHardwareCertificate = awsHardwareCertificate + self.clusterCsr = clusterCsr + self.clusterCertificate = clusterCertificate + self.manufacturerHardwareCertificate = manufacturerHardwareCertificate + self.hsmCertificate = hsmCertificate + } + + private enum CodingKeys: String, CodingKey { + case awsHardwareCertificate = "AwsHardwareCertificate" + case clusterCsr = "ClusterCsr" + case clusterCertificate = "ClusterCertificate" + case manufacturerHardwareCertificate = "ManufacturerHardwareCertificate" + case hsmCertificate = "HsmCertificate" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/cloudsearch/Cloudsearch_Shapes.swift b/Sources/AWSSDKSwift/Services/cloudsearch/Cloudsearch_Shapes.swift index 69bd8a3dc85..4037d3e0c43 100644 --- a/Sources/AWSSDKSwift/Services/cloudsearch/Cloudsearch_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/cloudsearch/Cloudsearch_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Cloudsearch { public struct DescribeScalingParametersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] public let domainName: String @@ -21,7 +21,7 @@ extension Cloudsearch { } public struct IntOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "FacetEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceField", required: false, type: .string), @@ -62,7 +62,7 @@ extension Cloudsearch { } public struct ExpressionStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .structure), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -82,7 +82,7 @@ extension Cloudsearch { } public struct DescribeScalingParametersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScalingParameters", required: true, type: .structure) ] public let scalingParameters: ScalingParametersStatus @@ -97,7 +97,7 @@ extension Cloudsearch { } public struct AnalysisScheme: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AnalysisSchemeLanguage", required: true, type: .enum), AWSShapeMember(label: "AnalysisSchemeName", required: true, type: .string), AWSShapeMember(label: "AnalysisOptions", required: false, type: .structure) @@ -120,7 +120,7 @@ extension Cloudsearch { } public struct DeleteIndexFieldRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IndexFieldName", required: true, type: .string), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -140,7 +140,7 @@ extension Cloudsearch { } public struct DeleteExpressionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Expression", required: true, type: .structure) ] /// The status of the expression being deleted. @@ -156,7 +156,7 @@ extension Cloudsearch { } public struct LiteralOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "FacetEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceField", required: false, type: .string), @@ -196,7 +196,7 @@ extension Cloudsearch { } public struct DescribeAnalysisSchemesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AnalysisSchemeNames", required: false, type: .list), AWSShapeMember(label: "Deployed", required: false, type: .boolean), AWSShapeMember(label: "DomainName", required: true, type: .string) @@ -222,7 +222,7 @@ extension Cloudsearch { } public struct OptionStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UpdateVersion", required: false, type: .integer), AWSShapeMember(label: "PendingDeletion", required: false, type: .boolean), AWSShapeMember(label: "CreationDate", required: true, type: .timestamp), @@ -258,7 +258,7 @@ extension Cloudsearch { } public struct DescribeDomainsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainNames", required: false, type: .list) ] /// The names of the domains you want to include in the response. @@ -274,7 +274,7 @@ extension Cloudsearch { } public struct UpdateServiceAccessPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccessPolicies", required: true, type: .structure) ] /// The access rules configured for the domain. @@ -290,7 +290,7 @@ extension Cloudsearch { } public struct DoubleArrayOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceFields", required: false, type: .string), AWSShapeMember(label: "FacetEnabled", required: false, type: .boolean), @@ -326,7 +326,7 @@ extension Cloudsearch { } public struct DomainStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limits", required: false, type: .structure), AWSShapeMember(label: "Processing", required: false, type: .boolean), AWSShapeMember(label: "Created", required: false, type: .boolean), @@ -406,7 +406,7 @@ extension Cloudsearch { } public struct UpdateScalingParametersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScalingParameters", required: true, type: .structure) ] public let scalingParameters: ScalingParametersStatus @@ -421,7 +421,7 @@ extension Cloudsearch { } public struct ListDomainNamesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainNames", required: false, type: .map) ] /// The names of the search domains owned by an account. @@ -437,7 +437,7 @@ extension Cloudsearch { } public struct DescribeAvailabilityOptionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Deployed", required: false, type: .boolean), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -458,7 +458,7 @@ extension Cloudsearch { } public struct DeleteIndexFieldResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IndexField", required: true, type: .structure) ] /// The status of the index field being deleted. @@ -474,7 +474,7 @@ extension Cloudsearch { } public struct DefineSuggesterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Suggester", required: true, type: .structure), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -493,7 +493,7 @@ extension Cloudsearch { } public struct DescribeIndexFieldsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Deployed", required: false, type: .boolean), AWSShapeMember(label: "FieldNames", required: false, type: .list), AWSShapeMember(label: "DomainName", required: true, type: .string) @@ -531,7 +531,7 @@ extension Cloudsearch { } public struct DeleteDomainResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainStatus", required: false, type: .structure) ] public let domainStatus: DomainStatus? @@ -553,7 +553,7 @@ extension Cloudsearch { } public struct Suggester: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SuggesterName", required: true, type: .string), AWSShapeMember(label: "DocumentSuggesterOptions", required: true, type: .structure) ] @@ -572,7 +572,7 @@ extension Cloudsearch { } public struct ScalingParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DesiredReplicationCount", required: false, type: .integer), AWSShapeMember(label: "DesiredInstanceType", required: false, type: .enum), AWSShapeMember(label: "DesiredPartitionCount", required: false, type: .integer) @@ -598,7 +598,7 @@ extension Cloudsearch { } public struct DescribeServiceAccessPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Deployed", required: false, type: .boolean), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -619,7 +619,7 @@ extension Cloudsearch { } public struct CreateDomainResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainStatus", required: false, type: .structure) ] public let domainStatus: DomainStatus? @@ -634,7 +634,7 @@ extension Cloudsearch { } public struct DocumentSuggesterOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SortExpression", required: false, type: .string), AWSShapeMember(label: "FuzzyMatching", required: false, type: .enum), AWSShapeMember(label: "SourceField", required: true, type: .string) @@ -660,7 +660,7 @@ extension Cloudsearch { } public struct DefineExpressionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string), AWSShapeMember(label: "Expression", required: true, type: .structure) ] @@ -679,7 +679,7 @@ extension Cloudsearch { } public struct TextArrayOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AnalysisScheme", required: false, type: .string), AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceFields", required: false, type: .string), @@ -715,7 +715,7 @@ extension Cloudsearch { } public struct DescribeDomainsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainStatusList", required: true, type: .list) ] public let domainStatusList: [DomainStatus] @@ -730,7 +730,7 @@ extension Cloudsearch { } public struct DeleteSuggesterResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Suggester", required: true, type: .structure) ] /// The status of the suggester being deleted. @@ -746,7 +746,7 @@ extension Cloudsearch { } public struct DefineIndexFieldRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IndexField", required: true, type: .structure), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -781,7 +781,7 @@ extension Cloudsearch { } public struct DefineAnalysisSchemeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AnalysisScheme", required: true, type: .structure), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -800,7 +800,7 @@ extension Cloudsearch { } public struct DeleteDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The name of the domain you want to permanently delete. @@ -816,7 +816,7 @@ extension Cloudsearch { } public struct IndexDocumentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] public let domainName: String @@ -831,7 +831,7 @@ extension Cloudsearch { } public struct DeleteExpressionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExpressionName", required: true, type: .string), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -851,7 +851,7 @@ extension Cloudsearch { } public struct IndexFieldStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .structure), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -870,7 +870,7 @@ extension Cloudsearch { } public struct DeleteAnalysisSchemeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AnalysisSchemeName", required: true, type: .string), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -890,7 +890,7 @@ extension Cloudsearch { } public struct ScalingParametersStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .structure), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -909,7 +909,7 @@ extension Cloudsearch { } public struct AnalysisOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StemmingDictionary", required: false, type: .string), AWSShapeMember(label: "JapaneseTokenizationDictionary", required: false, type: .string), AWSShapeMember(label: "Stopwords", required: false, type: .string), @@ -945,7 +945,7 @@ extension Cloudsearch { } public struct UpdateServiceAccessPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccessPolicies", required: true, type: .string), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -965,7 +965,7 @@ extension Cloudsearch { } public struct DateArrayOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceFields", required: false, type: .string), AWSShapeMember(label: "FacetEnabled", required: false, type: .boolean), @@ -1001,7 +1001,7 @@ extension Cloudsearch { } public struct DeleteAnalysisSchemeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AnalysisScheme", required: true, type: .structure) ] /// The status of the analysis scheme being deleted. @@ -1017,7 +1017,7 @@ extension Cloudsearch { } public struct BuildSuggestersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FieldNames", required: false, type: .list) ] public let fieldNames: [String]? @@ -1032,7 +1032,7 @@ extension Cloudsearch { } public struct AnalysisSchemeStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .structure), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -1051,7 +1051,7 @@ extension Cloudsearch { } public struct AccessPoliciesStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .string), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -1070,7 +1070,7 @@ extension Cloudsearch { } public struct TextOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AnalysisScheme", required: false, type: .string), AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceField", required: false, type: .string), @@ -1110,7 +1110,7 @@ extension Cloudsearch { } public struct IndexDocumentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FieldNames", required: false, type: .list) ] /// The names of the fields that are currently being indexed. @@ -1126,7 +1126,7 @@ extension Cloudsearch { } public struct DefineExpressionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Expression", required: true, type: .structure) ] public let expression: ExpressionStatus @@ -1141,7 +1141,7 @@ extension Cloudsearch { } public struct UpdateAvailabilityOptionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityOptions", required: false, type: .structure) ] /// The newly-configured availability options. Indicates whether Multi-AZ is enabled for the domain. @@ -1157,7 +1157,7 @@ extension Cloudsearch { } public struct LiteralArrayOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceFields", required: false, type: .string), AWSShapeMember(label: "FacetEnabled", required: false, type: .boolean), @@ -1193,7 +1193,7 @@ extension Cloudsearch { } public struct IntArrayOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceFields", required: false, type: .string), AWSShapeMember(label: "FacetEnabled", required: false, type: .boolean), @@ -1229,7 +1229,7 @@ extension Cloudsearch { } public struct DescribeAnalysisSchemesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AnalysisSchemes", required: true, type: .list) ] /// The analysis scheme descriptions. @@ -1245,7 +1245,7 @@ extension Cloudsearch { } public struct DescribeExpressionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Expressions", required: true, type: .list) ] /// The expressions configured for the domain. @@ -1261,7 +1261,7 @@ extension Cloudsearch { } public struct Expression: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExpressionValue", required: true, type: .string), AWSShapeMember(label: "ExpressionName", required: true, type: .string) ] @@ -1280,7 +1280,7 @@ extension Cloudsearch { } public struct SuggesterStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .structure), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -1299,7 +1299,7 @@ extension Cloudsearch { } public struct DescribeSuggestersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Deployed", required: false, type: .boolean), AWSShapeMember(label: "SuggesterNames", required: false, type: .list), AWSShapeMember(label: "DomainName", required: true, type: .string) @@ -1325,7 +1325,7 @@ extension Cloudsearch { } public struct IndexField: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IntOptions", required: false, type: .structure), AWSShapeMember(label: "DateOptions", required: false, type: .structure), AWSShapeMember(label: "TextArrayOptions", required: false, type: .structure), @@ -1389,7 +1389,7 @@ extension Cloudsearch { } public struct LatLonOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "FacetEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceField", required: false, type: .string), @@ -1468,7 +1468,7 @@ extension Cloudsearch { } public struct DescribeExpressionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Deployed", required: false, type: .boolean), AWSShapeMember(label: "ExpressionNames", required: false, type: .list), AWSShapeMember(label: "DomainName", required: true, type: .string) @@ -1494,7 +1494,7 @@ extension Cloudsearch { } public struct DoubleOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "FacetEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceField", required: false, type: .string), @@ -1535,7 +1535,7 @@ extension Cloudsearch { } public struct DateOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReturnEnabled", required: false, type: .boolean), AWSShapeMember(label: "FacetEnabled", required: false, type: .boolean), AWSShapeMember(label: "SourceField", required: false, type: .string), @@ -1575,7 +1575,7 @@ extension Cloudsearch { } public struct UpdateAvailabilityOptionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MultiAZ", required: true, type: .boolean), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -1595,7 +1595,7 @@ extension Cloudsearch { } public struct DescribeServiceAccessPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccessPolicies", required: true, type: .structure) ] /// The access rules configured for the domain specified in the request. @@ -1611,7 +1611,7 @@ extension Cloudsearch { } public struct BuildSuggestersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] public let domainName: String @@ -1626,7 +1626,7 @@ extension Cloudsearch { } public struct AvailabilityOptionsStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .boolean), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -1646,7 +1646,7 @@ extension Cloudsearch { } public struct ServiceEndpoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Endpoint", required: false, type: .string) ] public let endpoint: String? @@ -1661,7 +1661,7 @@ extension Cloudsearch { } public struct DeleteSuggesterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SuggesterName", required: true, type: .string), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -1681,7 +1681,7 @@ extension Cloudsearch { } public struct Limits: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaximumReplicationCount", required: true, type: .integer), AWSShapeMember(label: "MaximumPartitionCount", required: true, type: .integer) ] @@ -1700,7 +1700,7 @@ extension Cloudsearch { } public struct DescribeIndexFieldsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IndexFields", required: true, type: .list) ] /// The index fields configured for the domain. @@ -1716,7 +1716,7 @@ extension Cloudsearch { } public struct UpdateScalingParametersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScalingParameters", required: true, type: .structure), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -1735,7 +1735,7 @@ extension Cloudsearch { } public struct DefineAnalysisSchemeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AnalysisScheme", required: true, type: .structure) ] public let analysisScheme: AnalysisSchemeStatus @@ -1750,7 +1750,7 @@ extension Cloudsearch { } public struct DefineSuggesterResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Suggester", required: true, type: .structure) ] public let suggester: SuggesterStatus @@ -1765,7 +1765,7 @@ extension Cloudsearch { } public struct DefineIndexFieldResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IndexField", required: true, type: .structure) ] public let indexField: IndexFieldStatus @@ -1780,7 +1780,7 @@ extension Cloudsearch { } public struct DescribeSuggestersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Suggesters", required: true, type: .list) ] /// The suggesters configured for the domain specified in the request. @@ -1804,7 +1804,7 @@ extension Cloudsearch { } public struct DescribeAvailabilityOptionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityOptions", required: false, type: .structure) ] /// The availability options configured for the domain. Indicates whether Multi-AZ is enabled for the domain. @@ -1820,7 +1820,7 @@ extension Cloudsearch { } public struct CreateDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// A name for the domain you are creating. Allowed characters are a-z (lower-case letters), 0-9, and hyphen (-). Domain names must start with a letter or number and be at least 3 and no more than 28 characters long. diff --git a/Sources/AWSSDKSwift/Services/cloudsearchdomain/Cloudsearchdomain_Shapes.swift b/Sources/AWSSDKSwift/Services/cloudsearchdomain/Cloudsearchdomain_Shapes.swift index d148bf1be7d..a979b265e21 100644 --- a/Sources/AWSSDKSwift/Services/cloudsearchdomain/Cloudsearchdomain_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/cloudsearchdomain/Cloudsearchdomain_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Cloudsearchdomain { public struct Bucket: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "value", required: false, type: .string), AWSShapeMember(label: "count", required: false, type: .long) ] @@ -27,7 +27,7 @@ extension Cloudsearchdomain { } public struct SuggestResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .structure), AWSShapeMember(label: "suggest", required: false, type: .structure) ] @@ -56,7 +56,7 @@ extension Cloudsearchdomain { } public struct FieldStats: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "stddev", required: false, type: .double), AWSShapeMember(label: "max", required: false, type: .string), AWSShapeMember(label: "count", required: false, type: .long), @@ -107,7 +107,7 @@ extension Cloudsearchdomain { } public struct SearchStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rid", required: false, type: .string), AWSShapeMember(label: "timems", required: false, type: .long) ] @@ -128,7 +128,7 @@ extension Cloudsearchdomain { } public struct SearchResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "hits", required: false, type: .structure), AWSShapeMember(label: "status", required: false, type: .structure), AWSShapeMember(label: "stats", required: false, type: .map), @@ -159,7 +159,7 @@ extension Cloudsearchdomain { } public struct SuggestRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "suggester", location: .querystring(locationName: "suggester"), required: true, type: .string), AWSShapeMember(label: "size", location: .querystring(locationName: "size"), required: false, type: .long), AWSShapeMember(label: "query", location: .querystring(locationName: "q"), required: true, type: .string) @@ -185,7 +185,7 @@ extension Cloudsearchdomain { } public struct SuggestModel: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "suggestions", required: false, type: .list), AWSShapeMember(label: "found", required: false, type: .long), AWSShapeMember(label: "query", required: false, type: .string) @@ -217,7 +217,7 @@ extension Cloudsearchdomain { } public struct DocumentServiceWarning: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "message", required: false, type: .string) ] /// The description for a warning returned by the document service. @@ -233,7 +233,7 @@ extension Cloudsearchdomain { } public struct Hits: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "hit", required: false, type: .list), AWSShapeMember(label: "cursor", required: false, type: .string), AWSShapeMember(label: "start", required: false, type: .long), @@ -264,7 +264,7 @@ extension Cloudsearchdomain { } public struct SuggestionMatch: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "score", required: false, type: .long), AWSShapeMember(label: "suggestion", required: false, type: .string) @@ -292,7 +292,7 @@ extension Cloudsearchdomain { public struct UploadDocumentsRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "documents" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "documents", required: true, type: .blob), AWSShapeMember(label: "contentType", location: .header(locationName: "Content-Type"), required: true, type: .enum) ] @@ -313,7 +313,7 @@ extension Cloudsearchdomain { } public struct BucketInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "buckets", required: false, type: .list) ] /// A list of the calculated facet values and counts. @@ -329,7 +329,7 @@ extension Cloudsearchdomain { } public struct SuggestStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rid", required: false, type: .string), AWSShapeMember(label: "timems", required: false, type: .long) ] @@ -350,7 +350,7 @@ extension Cloudsearchdomain { } public struct Hit: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "fields", required: false, type: .map), AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "exprs", required: false, type: .map), @@ -381,7 +381,7 @@ extension Cloudsearchdomain { } public struct SearchRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "sort", location: .querystring(locationName: "sort"), required: false, type: .string), AWSShapeMember(label: "expr", location: .querystring(locationName: "expr"), required: false, type: .string), AWSShapeMember(label: "size", location: .querystring(locationName: "size"), required: false, type: .long), @@ -462,7 +462,7 @@ extension Cloudsearchdomain { } public struct UploadDocumentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .string), AWSShapeMember(label: "deletes", required: false, type: .long), AWSShapeMember(label: "adds", required: false, type: .long), diff --git a/Sources/AWSSDKSwift/Services/cloudtrail/Cloudtrail_Shapes.swift b/Sources/AWSSDKSwift/Services/cloudtrail/Cloudtrail_Shapes.swift index cf1e4ded3ed..b5625102456 100644 --- a/Sources/AWSSDKSwift/Services/cloudtrail/Cloudtrail_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/cloudtrail/Cloudtrail_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Cloudtrail { public struct PublicKey: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ValidityEndTime", required: false, type: .timestamp), AWSShapeMember(label: "Fingerprint", required: false, type: .string), AWSShapeMember(label: "Value", required: false, type: .blob), @@ -37,7 +37,7 @@ extension Cloudtrail { } public struct CreateTrailResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KmsKeyId", required: false, type: .string), AWSShapeMember(label: "SnsTopicARN", required: false, type: .string), AWSShapeMember(label: "IncludeGlobalServiceEvents", required: false, type: .boolean), @@ -112,7 +112,7 @@ extension Cloudtrail { } public struct AddTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "TagsList", required: false, type: .list) ] @@ -137,7 +137,7 @@ extension Cloudtrail { } public struct ListPublicKeysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndTime", required: false, type: .timestamp), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "StartTime", required: false, type: .timestamp) @@ -163,7 +163,7 @@ extension Cloudtrail { } public struct LookupEventsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "EndTime", required: false, type: .timestamp), AWSShapeMember(label: "LookupAttributes", required: false, type: .list), @@ -199,7 +199,7 @@ extension Cloudtrail { } public struct DataResource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -220,7 +220,7 @@ extension Cloudtrail { } public struct PutEventSelectorsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSelectors", required: true, type: .list), AWSShapeMember(label: "TrailName", required: true, type: .string) ] @@ -241,7 +241,7 @@ extension Cloudtrail { } public struct RemoveTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "TagsList", required: false, type: .list) ] @@ -262,7 +262,7 @@ extension Cloudtrail { } public struct ListTagsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceTagList", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -283,7 +283,7 @@ extension Cloudtrail { } public struct UpdateTrailResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KmsKeyId", required: false, type: .string), AWSShapeMember(label: "SnsTopicARN", required: false, type: .string), AWSShapeMember(label: "IncludeGlobalServiceEvents", required: false, type: .boolean), @@ -354,7 +354,7 @@ extension Cloudtrail { } public struct Trail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KmsKeyId", required: false, type: .string), AWSShapeMember(label: "LogFileValidationEnabled", required: false, type: .boolean), AWSShapeMember(label: "HomeRegion", required: false, type: .string), @@ -435,7 +435,7 @@ extension Cloudtrail { } public struct GetTrailStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LatestNotificationError", required: false, type: .string), AWSShapeMember(label: "LatestDeliveryTime", required: false, type: .timestamp), AWSShapeMember(label: "TimeLoggingStarted", required: false, type: .string), @@ -531,7 +531,7 @@ extension Cloudtrail { } public struct GetEventSelectorsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSelectors", required: false, type: .list), AWSShapeMember(label: "TrailARN", required: false, type: .string) ] @@ -552,7 +552,7 @@ extension Cloudtrail { } public struct Event: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSource", required: false, type: .string), AWSShapeMember(label: "EventTime", required: false, type: .timestamp), AWSShapeMember(label: "Username", required: false, type: .string), @@ -598,7 +598,7 @@ extension Cloudtrail { } public struct DescribeTrailsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "trailNameList", required: false, type: .list), AWSShapeMember(label: "includeShadowTrails", required: false, type: .boolean) ] @@ -619,7 +619,7 @@ extension Cloudtrail { } public struct PutEventSelectorsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSelectors", required: false, type: .list), AWSShapeMember(label: "TrailARN", required: false, type: .string) ] @@ -640,7 +640,7 @@ extension Cloudtrail { } public struct ListPublicKeysResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PublicKeyList", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -661,7 +661,7 @@ extension Cloudtrail { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -682,7 +682,7 @@ extension Cloudtrail { } public struct LookupAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeKey", required: true, type: .enum), AWSShapeMember(label: "AttributeValue", required: true, type: .string) ] @@ -703,7 +703,7 @@ extension Cloudtrail { } public struct UpdateTrailRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnableLogFileValidation", required: false, type: .boolean), AWSShapeMember(label: "S3BucketName", required: false, type: .string), AWSShapeMember(label: "S3KeyPrefix", required: false, type: .string), @@ -764,7 +764,7 @@ extension Cloudtrail { } public struct CreateTrailRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnableLogFileValidation", required: false, type: .boolean), AWSShapeMember(label: "S3BucketName", required: true, type: .string), AWSShapeMember(label: "S3KeyPrefix", required: false, type: .string), @@ -829,7 +829,7 @@ extension Cloudtrail { } public struct DeleteTrailRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// Specifies the name or the CloudTrail ARN of the trail to be deleted. The format of a trail ARN is: arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail @@ -845,7 +845,7 @@ extension Cloudtrail { } public struct GetEventSelectorsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrailName", required: true, type: .string) ] /// Specifies the name of the trail or trail ARN. If you specify a trail name, the string must meet the following requirements: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) Start with a letter or number, and end with a letter or number Be between 3 and 128 characters Have no adjacent periods, underscores or dashes. Names like my-_namespace and my--namespace are invalid. Not be in IP address format (for example, 192.168.5.4) If you specify a trail ARN, it must be in the format: arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail @@ -871,7 +871,7 @@ extension Cloudtrail { } public struct Resource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceName", required: false, type: .string), AWSShapeMember(label: "ResourceType", required: false, type: .string) ] @@ -892,7 +892,7 @@ extension Cloudtrail { } public struct DescribeTrailsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "trailList", required: false, type: .list) ] /// The list of trail objects. @@ -908,7 +908,7 @@ extension Cloudtrail { } public struct StartLoggingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// Specifies the name or the CloudTrail ARN of the trail for which CloudTrail logs AWS API calls. The format of a trail ARN is: arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail @@ -924,7 +924,7 @@ extension Cloudtrail { } public struct StopLoggingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// Specifies the name or the CloudTrail ARN of the trail for which CloudTrail will stop logging AWS API calls. The format of a trail ARN is: arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail @@ -940,7 +940,7 @@ extension Cloudtrail { } public struct EventSelector: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReadWriteType", required: false, type: .enum), AWSShapeMember(label: "DataResources", required: false, type: .list), AWSShapeMember(label: "IncludeManagementEvents", required: false, type: .boolean) @@ -966,7 +966,7 @@ extension Cloudtrail { } public struct GetTrailStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// Specifies the name or the CloudTrail ARN of the trail for which you are requesting status. To get the status of a shadow trail (a replication of the trail in another region), you must specify its ARN. The format of a trail ARN is: arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail @@ -982,7 +982,7 @@ extension Cloudtrail { } public struct ResourceTag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: false, type: .string), AWSShapeMember(label: "TagsList", required: false, type: .list) ] @@ -1014,7 +1014,7 @@ extension Cloudtrail { } public struct ListTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceIdList", required: true, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1035,7 +1035,7 @@ extension Cloudtrail { } public struct LookupEventsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Events", required: false, type: .list) ] diff --git a/Sources/AWSSDKSwift/Services/codebuild/Codebuild_API.swift b/Sources/AWSSDKSwift/Services/codebuild/Codebuild_API.swift index bf427ca6e9a..c5e59c789d1 100644 --- a/Sources/AWSSDKSwift/Services/codebuild/Codebuild_API.swift +++ b/Sources/AWSSDKSwift/Services/codebuild/Codebuild_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -AWS CodeBuild AWS CodeBuild is a fully managed build service in the cloud. AWS CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. AWS CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for the most popular programming languages and build tools, such as Apach Maven, Gradle, and more. You can also fully customize build environments in AWS CodeBuild to use your own build tools. AWS CodeBuild scales automatically to meet peak build requests, and you pay only for the build time you consume. For more information about AWS CodeBuild, see the AWS CodeBuild User Guide. AWS CodeBuild supports these operations: BatchGetProjects: Gets information about one or more build projects. A build project defines how AWS CodeBuild will run a build. This includes information such as where to get the source code to build, the build environment to use, the build commands to run, and where to store the build output. A build environment represents a combination of operating system, programming language runtime, and tools that AWS CodeBuild will use to run a build. Also, you can add tags to build projects to help manage your resources and costs. CreateProject: Creates a build project. DeleteProject: Deletes a build project. ListProjects: Gets a list of build project names, with each build project name representing a single build project. UpdateProject: Changes the settings of an existing build project. BatchGetBuilds: Gets information about one or more builds. ListBuilds: Gets a list of build IDs, with each build ID representing a single build. ListBuildsForProject: Gets a list of build IDs for the specified build project, with each build ID representing a single build. StartBuild: Starts running a build. StopBuild: Attempts to stop running a build. ListCuratedEnvironmentImages: Gets information about Docker images that are managed by AWS CodeBuild. +AWS CodeBuild AWS CodeBuild is a fully managed build service in the cloud. AWS CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. AWS CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for the most popular programming languages and build tools, such as Apache Maven, Gradle, and more. You can also fully customize build environments in AWS CodeBuild to use your own build tools. AWS CodeBuild scales automatically to meet peak build requests, and you pay only for the build time you consume. For more information about AWS CodeBuild, see the AWS CodeBuild User Guide. AWS CodeBuild supports these operations: BatchDeleteBuilds: Deletes one or more builds. BatchGetProjects: Gets information about one or more build projects. A build project defines how AWS CodeBuild will run a build. This includes information such as where to get the source code to build, the build environment to use, the build commands to run, and where to store the build output. A build environment represents a combination of operating system, programming language runtime, and tools that AWS CodeBuild will use to run a build. Also, you can add tags to build projects to help manage your resources and costs. CreateProject: Creates a build project. CreateWebhook: For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository. DeleteProject: Deletes a build project. DeleteWebhook: For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, stops AWS CodeBuild from automatically rebuilding the source code every time a code change is pushed to the repository. ListProjects: Gets a list of build project names, with each build project name representing a single build project. UpdateProject: Changes the settings of an existing build project. BatchGetBuilds: Gets information about one or more builds. ListBuilds: Gets a list of build IDs, with each build ID representing a single build. ListBuildsForProject: Gets a list of build IDs for the specified build project, with each build ID representing a single build. StartBuild: Starts running a build. StopBuild: Attempts to stop running a build. ListCuratedEnvironmentImages: Gets information about Docker images that are managed by AWS CodeBuild. */ public struct Codebuild { @@ -25,19 +25,19 @@ public struct Codebuild { ) } + /// Resets the cache for a project. + public func invalidateProjectCache(_ input: InvalidateProjectCacheInput) throws -> InvalidateProjectCacheOutput { + return try client.send(operation: "InvalidateProjectCache", path: "/", httpMethod: "POST", input: input) + } + /// Gets information about Docker images that are managed by AWS CodeBuild. public func listCuratedEnvironmentImages(_ input: ListCuratedEnvironmentImagesInput) throws -> ListCuratedEnvironmentImagesOutput { return try client.send(operation: "ListCuratedEnvironmentImages", path: "/", httpMethod: "POST", input: input) } - /// Gets information about builds. - public func batchGetBuilds(_ input: BatchGetBuildsInput) throws -> BatchGetBuildsOutput { - return try client.send(operation: "BatchGetBuilds", path: "/", httpMethod: "POST", input: input) - } - - /// Starts running a build. - public func startBuild(_ input: StartBuildInput) throws -> StartBuildOutput { - return try client.send(operation: "StartBuild", path: "/", httpMethod: "POST", input: input) + /// Deletes one or more builds. + public func batchDeleteBuilds(_ input: BatchDeleteBuildsInput) throws -> BatchDeleteBuildsOutput { + return try client.send(operation: "BatchDeleteBuilds", path: "/", httpMethod: "POST", input: input) } /// Gets a list of build IDs for the specified build project, with each build ID representing a single build. @@ -45,24 +45,14 @@ public struct Codebuild { return try client.send(operation: "ListBuildsForProject", path: "/", httpMethod: "POST", input: input) } - /// Attempts to stop running a build. - public func stopBuild(_ input: StopBuildInput) throws -> StopBuildOutput { - return try client.send(operation: "StopBuild", path: "/", httpMethod: "POST", input: input) - } - - /// Gets a list of build IDs, with each build ID representing a single build. - public func listBuilds(_ input: ListBuildsInput) throws -> ListBuildsOutput { - return try client.send(operation: "ListBuilds", path: "/", httpMethod: "POST", input: input) - } - /// Gets a list of build project names, with each build project name representing a single build project. public func listProjects(_ input: ListProjectsInput) throws -> ListProjectsOutput { return try client.send(operation: "ListProjects", path: "/", httpMethod: "POST", input: input) } - /// Deletes a build project. - public func deleteProject(_ input: DeleteProjectInput) throws -> DeleteProjectOutput { - return try client.send(operation: "DeleteProject", path: "/", httpMethod: "POST", input: input) + /// Creates a build project. + public func createProject(_ input: CreateProjectInput) throws -> CreateProjectOutput { + return try client.send(operation: "CreateProject", path: "/", httpMethod: "POST", input: input) } /// Changes the settings of a build project. @@ -70,9 +60,9 @@ public struct Codebuild { return try client.send(operation: "UpdateProject", path: "/", httpMethod: "POST", input: input) } - /// Creates a build project. - public func createProject(_ input: CreateProjectInput) throws -> CreateProjectOutput { - return try client.send(operation: "CreateProject", path: "/", httpMethod: "POST", input: input) + /// Deletes a build project. + public func deleteProject(_ input: DeleteProjectInput) throws -> DeleteProjectOutput { + return try client.send(operation: "DeleteProject", path: "/", httpMethod: "POST", input: input) } /// Gets information about build projects. @@ -80,5 +70,35 @@ public struct Codebuild { return try client.send(operation: "BatchGetProjects", path: "/", httpMethod: "POST", input: input) } + /// For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository. If you enable webhooks for an AWS CodeBuild project, and the project is used as a build step in AWS CodePipeline, then two identical builds will be created for each commit. One build is triggered through webhooks, and one through AWS CodePipeline. Because billing is on a per-build basis, you will be billed for both builds. Therefore, if you are using AWS CodePipeline, we recommend that you disable webhooks in CodeBuild. In the AWS CodeBuild console, clear the Webhook box. For more information, see step 9 in Change a Build Project’s Settings. + public func createWebhook(_ input: CreateWebhookInput) throws -> CreateWebhookOutput { + return try client.send(operation: "CreateWebhook", path: "/", httpMethod: "POST", input: input) + } + + /// Starts running a build. + public func startBuild(_ input: StartBuildInput) throws -> StartBuildOutput { + return try client.send(operation: "StartBuild", path: "/", httpMethod: "POST", input: input) + } + + /// Gets information about builds. + public func batchGetBuilds(_ input: BatchGetBuildsInput) throws -> BatchGetBuildsOutput { + return try client.send(operation: "BatchGetBuilds", path: "/", httpMethod: "POST", input: input) + } + + /// Attempts to stop running a build. + public func stopBuild(_ input: StopBuildInput) throws -> StopBuildOutput { + return try client.send(operation: "StopBuild", path: "/", httpMethod: "POST", input: input) + } + + /// Gets a list of build IDs, with each build ID representing a single build. + public func listBuilds(_ input: ListBuildsInput) throws -> ListBuildsOutput { + return try client.send(operation: "ListBuilds", path: "/", httpMethod: "POST", input: input) + } + + /// For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, stops AWS CodeBuild from automatically rebuilding the source code every time a code change is pushed to the repository. + public func deleteWebhook(_ input: DeleteWebhookInput) throws -> DeleteWebhookOutput { + return try client.send(operation: "DeleteWebhook", path: "/", httpMethod: "POST", input: input) + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/codebuild/Codebuild_Error.swift b/Sources/AWSSDKSwift/Services/codebuild/Codebuild_Error.swift index 7a8f95b63b0..bbdb7448f10 100644 --- a/Sources/AWSSDKSwift/Services/codebuild/Codebuild_Error.swift +++ b/Sources/AWSSDKSwift/Services/codebuild/Codebuild_Error.swift @@ -6,8 +6,9 @@ import AWSSDKSwiftCore public enum CodebuildError: AWSErrorType { case invalidInputException(message: String?) case resourceNotFoundException(message: String?) - case accountLimitExceededException(message: String?) case resourceAlreadyExistsException(message: String?) + case accountLimitExceededException(message: String?) + case oAuthProviderException(message: String?) } extension CodebuildError { @@ -21,10 +22,12 @@ extension CodebuildError { self = .invalidInputException(message: message) case "ResourceNotFoundException": self = .resourceNotFoundException(message: message) - case "AccountLimitExceededException": - self = .accountLimitExceededException(message: message) case "ResourceAlreadyExistsException": self = .resourceAlreadyExistsException(message: message) + case "AccountLimitExceededException": + self = .accountLimitExceededException(message: message) + case "OAuthProviderException": + self = .oAuthProviderException(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/codebuild/Codebuild_Shapes.swift b/Sources/AWSSDKSwift/Services/codebuild/Codebuild_Shapes.swift index 706433ca39d..38e7f699196 100644 --- a/Sources/AWSSDKSwift/Services/codebuild/Codebuild_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/codebuild/Codebuild_Shapes.swift @@ -5,27 +5,6 @@ import AWSSDKSwiftCore extension Codebuild { - public struct ListProjectsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextToken", required: false, type: .string), - AWSShapeMember(label: "projects", required: false, type: .list) - ] - /// If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. - public let nextToken: String? - /// The list of build project names, with each build project name representing a single build project. - public let projects: [String]? - - public init(nextToken: String? = nil, projects: [String]? = nil) { - self.nextToken = nextToken - self.projects = projects - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "nextToken" - case projects = "projects" - } - } - public enum LanguageType: String, CustomStringConvertible, Codable { case java = "JAVA" case python = "PYTHON" @@ -34,12 +13,13 @@ extension Codebuild { case golang = "GOLANG" case docker = "DOCKER" case android = "ANDROID" + case dotnet = "DOTNET" case base = "BASE" public var description: String { return self.rawValue } } public struct StopBuildOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "build", required: false, type: .structure) ] /// Information about the build. @@ -54,24 +34,8 @@ extension Codebuild { } } - public struct StopBuildInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "id", required: true, type: .string) - ] - /// The ID of the build. - public let id: String - - public init(id: String) { - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case id = "id" - } - } - public struct BatchGetProjectsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "projects", required: false, type: .list), AWSShapeMember(label: "projectsNotFound", required: false, type: .list) ] @@ -91,79 +55,8 @@ extension Codebuild { } } - public struct Project: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "name", required: false, type: .string), - AWSShapeMember(label: "lastModified", required: false, type: .timestamp), - AWSShapeMember(label: "source", required: false, type: .structure), - AWSShapeMember(label: "timeoutInMinutes", required: false, type: .integer), - AWSShapeMember(label: "created", required: false, type: .timestamp), - AWSShapeMember(label: "encryptionKey", required: false, type: .string), - AWSShapeMember(label: "description", required: false, type: .string), - AWSShapeMember(label: "artifacts", required: false, type: .structure), - AWSShapeMember(label: "environment", required: false, type: .structure), - AWSShapeMember(label: "tags", required: false, type: .list), - AWSShapeMember(label: "serviceRole", required: false, type: .string), - AWSShapeMember(label: "arn", required: false, type: .string) - ] - /// The name of the build project. - public let name: String? - /// When the build project's settings were last modified, expressed in Unix time format. - public let lastModified: TimeStamp? - /// Information about the build input source code for this build project. - public let source: ProjectSource? - /// How long, in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait before timing out any related build that did not get marked as completed. The default is 60 minutes. - public let timeoutInMinutes: Int32? - /// When the build project was created, expressed in Unix time format. - public let created: TimeStamp? - /// The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts. This is expressed either as the CMK's Amazon Resource Name (ARN) or, if specified, the CMK's alias (using the format alias/alias-name ). - public let encryptionKey: String? - /// A description that makes the build project easy to identify. - public let description: String? - /// Information about the build output artifacts for the build project. - public let artifacts: ProjectArtifacts? - /// Information about the build environment for this build project. - public let environment: ProjectEnvironment? - /// The tags for this build project. These tags are available for use by AWS services that support AWS CodeBuild build project tags. - public let tags: [Tag]? - /// The ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account. - public let serviceRole: String? - /// The Amazon Resource Name (ARN) of the build project. - public let arn: String? - - public init(name: String? = nil, lastModified: TimeStamp? = nil, source: ProjectSource? = nil, timeoutInMinutes: Int32? = nil, created: TimeStamp? = nil, encryptionKey: String? = nil, description: String? = nil, artifacts: ProjectArtifacts? = nil, environment: ProjectEnvironment? = nil, tags: [Tag]? = nil, serviceRole: String? = nil, arn: String? = nil) { - self.name = name - self.lastModified = lastModified - self.source = source - self.timeoutInMinutes = timeoutInMinutes - self.created = created - self.encryptionKey = encryptionKey - self.description = description - self.artifacts = artifacts - self.environment = environment - self.tags = tags - self.serviceRole = serviceRole - self.arn = arn - } - - private enum CodingKeys: String, CodingKey { - case name = "name" - case lastModified = "lastModified" - case source = "source" - case timeoutInMinutes = "timeoutInMinutes" - case created = "created" - case encryptionKey = "encryptionKey" - case description = "description" - case artifacts = "artifacts" - case environment = "environment" - case tags = "tags" - case serviceRole = "serviceRole" - case arn = "arn" - } - } - public struct BuildArtifacts: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "md5sum", required: false, type: .string), AWSShapeMember(label: "location", required: false, type: .string), AWSShapeMember(label: "sha256sum", required: false, type: .string) @@ -188,49 +81,29 @@ extension Codebuild { } } - public struct BuildPhase: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "durationInSeconds", required: false, type: .long), - AWSShapeMember(label: "endTime", required: false, type: .timestamp), - AWSShapeMember(label: "startTime", required: false, type: .timestamp), - AWSShapeMember(label: "contexts", required: false, type: .list), - AWSShapeMember(label: "phaseStatus", required: false, type: .enum), - AWSShapeMember(label: "phaseType", required: false, type: .enum) + public struct BuildNotDeleted: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "id", required: false, type: .string), + AWSShapeMember(label: "statusCode", required: false, type: .string) ] - /// How long, in seconds, between the starting and ending times of the build's phase. - public let durationInSeconds: Int64? - /// When the build phase ended, expressed in Unix time format. - public let endTime: TimeStamp? - /// When the build phase started, expressed in Unix time format. - public let startTime: TimeStamp? - /// Additional information about a build phase, especially to help troubleshoot a failed build. - public let contexts: [PhaseContext]? - /// The current status of the build phase. Valid values include: FAILED: The build phase failed. FAULT: The build phase faulted. IN_PROGRESS: The build phase is still in progress. STOPPED: The build phase stopped. SUCCEEDED: The build phase succeeded. TIMED_OUT: The build phase timed out. - public let phaseStatus: StatusType? - /// The name of the build phase. Valid values include: BUILD: Core build activities typically occur in this build phase. COMPLETED: The build has been completed. DOWNLOAD_SOURCE: Source code is being downloaded in this build phase. FINALIZING: The build process is completing in this build phase. INSTALL: Installation activities typically occur in this build phase. POST_BUILD: Post-build activities typically occur in this build phase. PRE_BUILD: Pre-build activities typically occur in this build phase. PROVISIONING: The build environment is being set up. SUBMITTED: The build has been submitted. UPLOAD_ARTIFACTS: Build output artifacts are being uploaded to the output location. - public let phaseType: BuildPhaseType? + /// The ID of the build that could not be successfully deleted. + public let id: String? + /// Additional information about the build that could not be successfully deleted. + public let statusCode: String? - public init(durationInSeconds: Int64? = nil, endTime: TimeStamp? = nil, startTime: TimeStamp? = nil, contexts: [PhaseContext]? = nil, phaseStatus: StatusType? = nil, phaseType: BuildPhaseType? = nil) { - self.durationInSeconds = durationInSeconds - self.endTime = endTime - self.startTime = startTime - self.contexts = contexts - self.phaseStatus = phaseStatus - self.phaseType = phaseType + public init(id: String? = nil, statusCode: String? = nil) { + self.id = id + self.statusCode = statusCode } private enum CodingKeys: String, CodingKey { - case durationInSeconds = "durationInSeconds" - case endTime = "endTime" - case startTime = "startTime" - case contexts = "contexts" - case phaseStatus = "phaseStatus" - case phaseType = "phaseType" + case id = "id" + case statusCode = "statusCode" } } public struct LogsLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deepLink", required: false, type: .string), AWSShapeMember(label: "groupName", required: false, type: .string), AWSShapeMember(label: "streamName", required: false, type: .string) @@ -255,48 +128,6 @@ extension Codebuild { } } - public struct SourceAuth: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "type", required: true, type: .enum), - AWSShapeMember(label: "resource", required: false, type: .string) - ] - /// The authorization type to use. The only valid value is OAUTH, which represents the OAuth authorization type. - public let `type`: SourceAuthType - /// The resource value that applies to the specified authorization type. - public let resource: String? - - public init(type: SourceAuthType, resource: String? = nil) { - self.`type` = `type` - self.resource = resource - } - - private enum CodingKeys: String, CodingKey { - case `type` = "type" - case resource = "resource" - } - } - - public struct EnvironmentPlatform: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "languages", required: false, type: .list), - AWSShapeMember(label: "platform", required: false, type: .enum) - ] - /// The list of programming languages that are available for the specified platform. - public let languages: [EnvironmentLanguage]? - /// The platform's name. - public let platform: PlatformType? - - public init(languages: [EnvironmentLanguage]? = nil, platform: PlatformType? = nil) { - self.languages = languages - self.platform = platform - } - - private enum CodingKeys: String, CodingKey { - case languages = "languages" - case platform = "platform" - } - } - public enum PlatformType: String, CustomStringConvertible, Codable { case debian = "DEBIAN" case amazonLinux = "AMAZON_LINUX" @@ -311,15 +142,18 @@ extension Codebuild { } public struct Build: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "phases", required: false, type: .list), AWSShapeMember(label: "source", required: false, type: .structure), + AWSShapeMember(label: "networkInterface", required: false, type: .structure), AWSShapeMember(label: "timeoutInMinutes", required: false, type: .integer), + AWSShapeMember(label: "vpcConfig", required: false, type: .structure), AWSShapeMember(label: "sourceVersion", required: false, type: .string), AWSShapeMember(label: "currentPhase", required: false, type: .string), AWSShapeMember(label: "artifacts", required: false, type: .structure), AWSShapeMember(label: "buildStatus", required: false, type: .enum), AWSShapeMember(label: "arn", required: false, type: .string), + AWSShapeMember(label: "cache", required: false, type: .structure), AWSShapeMember(label: "initiator", required: false, type: .string), AWSShapeMember(label: "environment", required: false, type: .structure), AWSShapeMember(label: "id", required: false, type: .string), @@ -333,8 +167,12 @@ extension Codebuild { public let phases: [BuildPhase]? /// Information about the source code to be built. public let source: ProjectSource? + /// Describes a network interface. + public let networkInterface: NetworkInterface? /// How long, in minutes, for AWS CodeBuild to wait before timing out this build if it does not get marked as completed. public let timeoutInMinutes: Int32? + /// If your AWS CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID. + public let vpcConfig: VpcConfig? /// Any version identifier for the version of the source code to be built. public let sourceVersion: String? /// The current build phase. @@ -345,6 +183,8 @@ extension Codebuild { public let buildStatus: StatusType? /// The Amazon Resource Name (ARN) of the build. public let arn: String? + /// Information about the cache for the build. + public let cache: ProjectCache? /// The entity that started the build. Valid values include: If AWS CodePipeline started the build, the pipeline's name (for example, codepipeline/my-demo-pipeline). If an AWS Identity and Access Management (IAM) user started the build, the user's name (for example MyUserName). If the Jenkins plugin for AWS CodeBuild started the build, the string CodeBuild-Jenkins-Plugin. public let initiator: String? /// Information about the build environment for this build. @@ -362,15 +202,18 @@ extension Codebuild { /// When the build process started, expressed in Unix time format. public let startTime: TimeStamp? - public init(phases: [BuildPhase]? = nil, source: ProjectSource? = nil, timeoutInMinutes: Int32? = nil, sourceVersion: String? = nil, currentPhase: String? = nil, artifacts: BuildArtifacts? = nil, buildStatus: StatusType? = nil, arn: String? = nil, initiator: String? = nil, environment: ProjectEnvironment? = nil, id: String? = nil, projectName: String? = nil, buildComplete: Bool? = nil, endTime: TimeStamp? = nil, logs: LogsLocation? = nil, startTime: TimeStamp? = nil) { + public init(phases: [BuildPhase]? = nil, source: ProjectSource? = nil, networkInterface: NetworkInterface? = nil, timeoutInMinutes: Int32? = nil, vpcConfig: VpcConfig? = nil, sourceVersion: String? = nil, currentPhase: String? = nil, artifacts: BuildArtifacts? = nil, buildStatus: StatusType? = nil, arn: String? = nil, cache: ProjectCache? = nil, initiator: String? = nil, environment: ProjectEnvironment? = nil, id: String? = nil, projectName: String? = nil, buildComplete: Bool? = nil, endTime: TimeStamp? = nil, logs: LogsLocation? = nil, startTime: TimeStamp? = nil) { self.phases = phases self.source = source + self.networkInterface = networkInterface self.timeoutInMinutes = timeoutInMinutes + self.vpcConfig = vpcConfig self.sourceVersion = sourceVersion self.currentPhase = currentPhase self.artifacts = artifacts self.buildStatus = buildStatus self.arn = arn + self.cache = cache self.initiator = initiator self.environment = environment self.id = id @@ -384,12 +227,15 @@ extension Codebuild { private enum CodingKeys: String, CodingKey { case phases = "phases" case source = "source" + case networkInterface = "networkInterface" case timeoutInMinutes = "timeoutInMinutes" + case vpcConfig = "vpcConfig" case sourceVersion = "sourceVersion" case currentPhase = "currentPhase" case artifacts = "artifacts" case buildStatus = "buildStatus" case arn = "arn" + case cache = "cache" case initiator = "initiator" case environment = "environment" case id = "id" @@ -402,7 +248,7 @@ extension Codebuild { } public struct DeleteProjectInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string) ] /// The name of the build project. @@ -417,46 +263,8 @@ extension Codebuild { } } - public struct DeleteProjectOutput: AWSShape { - - } - - public enum SourceAuthType: String, CustomStringConvertible, Codable { - case oauth = "OAUTH" - public var description: String { return self.rawValue } - } - - public enum ProjectSortByType: String, CustomStringConvertible, Codable { - case name = "NAME" - case createdTime = "CREATED_TIME" - case lastModifiedTime = "LAST_MODIFIED_TIME" - public var description: String { return self.rawValue } - } - - public struct UpdateProjectOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "project", required: false, type: .structure) - ] - /// Information about the build project that was changed. - public let project: Project? - - public init(project: Project? = nil) { - self.project = project - } - - private enum CodingKeys: String, CodingKey { - case project = "project" - } - } - - public enum ArtifactNamespace: String, CustomStringConvertible, Codable { - case none = "NONE" - case buildId = "BUILD_ID" - public var description: String { return self.rawValue } - } - public struct ProjectArtifacts: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "location", required: false, type: .string), AWSShapeMember(label: "path", required: false, type: .string), @@ -496,12 +304,39 @@ extension Codebuild { } } + public enum ArtifactNamespace: String, CustomStringConvertible, Codable { + case none = "NONE" + case buildId = "BUILD_ID" + public var description: String { return self.rawValue } + } + + public struct ProjectCache: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "type", required: true, type: .enum), + AWSShapeMember(label: "location", required: false, type: .string) + ] + /// The type of cache used by the build project. Valid values include: NO_CACHE: The build project will not use any cache. S3: The build project will read and write from/to S3. + public let `type`: CacheType + /// Information about the cache location, as follows: NO_CACHE: This value will be ignored. S3: This is the S3 bucket name/prefix. + public let location: String? + + public init(type: CacheType, location: String? = nil) { + self.`type` = `type` + self.location = location + } + + private enum CodingKeys: String, CodingKey { + case `type` = "type" + case location = "location" + } + } + public struct ListCuratedEnvironmentImagesInput: AWSShape { } public struct BatchGetBuildsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "builds", required: false, type: .list), AWSShapeMember(label: "buildsNotFound", required: false, type: .list) ] @@ -521,92 +356,706 @@ extension Codebuild { } } - public struct EnvironmentLanguage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "language", required: false, type: .enum), - AWSShapeMember(label: "images", required: false, type: .list) + public struct StartBuildOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "build", required: false, type: .structure) ] - /// The programming language for the Docker images. - public let language: LanguageType? - /// The list of Docker images that are related by the specified programming language. - public let images: [EnvironmentImage]? + /// Information about the build to be run. + public let build: Build? - public init(language: LanguageType? = nil, images: [EnvironmentImage]? = nil) { - self.language = language - self.images = images + public init(build: Build? = nil) { + self.build = build } private enum CodingKeys: String, CodingKey { - case language = "language" - case images = "images" + case build = "build" + } + } + + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "key", required: false, type: .string), + AWSShapeMember(label: "value", required: false, type: .string) + ] + /// The tag's key. + public let key: String? + /// The tag's value. + public let value: String? + + public init(key: String? = nil, value: String? = nil) { + self.key = key + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case key = "key" + case value = "value" + } + } + + public enum EnvironmentType: String, CustomStringConvertible, Codable { + case linuxContainer = "LINUX_CONTAINER" + public var description: String { return self.rawValue } + } + + public struct ListBuildsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ids", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// A list of build IDs, with each build ID representing a single build. + public let ids: [String]? + /// If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. + public let nextToken: String? + + public init(ids: [String]? = nil, nextToken: String? = nil) { + self.ids = ids + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case ids = "ids" + case nextToken = "nextToken" + } + } + + public struct CreateWebhookInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "projectName", required: true, type: .string) + ] + /// The name of the build project. + public let projectName: String + + public init(projectName: String) { + self.projectName = projectName + } + + private enum CodingKeys: String, CodingKey { + case projectName = "projectName" + } + } + + public struct ListBuildsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "sortOrder", required: false, type: .enum) + ] + /// During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + public let nextToken: String? + /// The order to list build IDs. Valid values include: ASCENDING: List the build IDs in ascending order by build ID. DESCENDING: List the build IDs in descending order by build ID. + public let sortOrder: SortOrderType? + + public init(nextToken: String? = nil, sortOrder: SortOrderType? = nil) { + self.nextToken = nextToken + self.sortOrder = sortOrder + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case sortOrder = "sortOrder" + } + } + + public struct BatchDeleteBuildsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ids", required: true, type: .list) + ] + /// The IDs of the builds to delete. + public let ids: [String] + + public init(ids: [String]) { + self.ids = ids + } + + private enum CodingKeys: String, CodingKey { + case ids = "ids" + } + } + + public enum ComputeType: String, CustomStringConvertible, Codable { + case buildGeneral1Small = "BUILD_GENERAL1_SMALL" + case buildGeneral1Medium = "BUILD_GENERAL1_MEDIUM" + case buildGeneral1Large = "BUILD_GENERAL1_LARGE" + public var description: String { return self.rawValue } + } + + public struct Webhook: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "url", required: false, type: .string) + ] + /// The URL to the webhook. + public let url: String? + + public init(url: String? = nil) { + self.url = url + } + + private enum CodingKeys: String, CodingKey { + case url = "url" + } + } + + public enum SourceType: String, CustomStringConvertible, Codable { + case codecommit = "CODECOMMIT" + case codepipeline = "CODEPIPELINE" + case github = "GITHUB" + case s3 = "S3" + case bitbucket = "BITBUCKET" + public var description: String { return self.rawValue } + } + + public struct EnvironmentImage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "name", required: false, type: .string) + ] + /// The description of the Docker image. + public let description: String? + /// The name of the Docker image. + public let name: String? + + public init(description: String? = nil, name: String? = nil) { + self.description = description + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case name = "name" + } + } + + public enum StatusType: String, CustomStringConvertible, Codable { + case succeeded = "SUCCEEDED" + case failed = "FAILED" + case fault = "FAULT" + case timedOut = "TIMED_OUT" + case inProgress = "IN_PROGRESS" + case stopped = "STOPPED" + public var description: String { return self.rawValue } + } + + public struct EnvironmentVariable: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "type", required: false, type: .enum), + AWSShapeMember(label: "name", required: true, type: .string), + AWSShapeMember(label: "value", required: true, type: .string) + ] + /// The type of environment variable. Valid values include: PARAMETER_STORE: An environment variable stored in Amazon EC2 Systems Manager Parameter Store. PLAINTEXT: An environment variable in plaintext format. + public let `type`: EnvironmentVariableType? + /// The name or key of the environment variable. + public let name: String + /// The value of the environment variable. We strongly discourage using environment variables to store sensitive values, especially AWS secret key IDs and secret access keys. Environment variables can be displayed in plain text using tools such as the AWS CodeBuild console and the AWS Command Line Interface (AWS CLI). + public let value: String + + public init(type: EnvironmentVariableType? = nil, name: String, value: String) { + self.`type` = `type` + self.name = name + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case `type` = "type" + case name = "name" + case value = "value" + } + } + + public struct CreateProjectOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "project", required: false, type: .structure) + ] + /// Information about the build project that was created. + public let project: Project? + + public init(project: Project? = nil) { + self.project = project + } + + private enum CodingKeys: String, CodingKey { + case project = "project" + } + } + + public struct CreateProjectInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "cache", required: false, type: .structure), + AWSShapeMember(label: "name", required: true, type: .string), + AWSShapeMember(label: "badgeEnabled", required: false, type: .boolean), + AWSShapeMember(label: "source", required: true, type: .structure), + AWSShapeMember(label: "vpcConfig", required: false, type: .structure), + AWSShapeMember(label: "environment", required: true, type: .structure), + AWSShapeMember(label: "encryptionKey", required: false, type: .string), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "artifacts", required: true, type: .structure), + AWSShapeMember(label: "timeoutInMinutes", required: false, type: .integer), + AWSShapeMember(label: "tags", required: false, type: .list), + AWSShapeMember(label: "serviceRole", required: false, type: .string) + ] + /// Stores recently used information so that it can be quickly accessed at a later time. + public let cache: ProjectCache? + /// The name of the build project. + public let name: String + /// Set this to true to generate a publicly-accessible URL for your project's build badge. + public let badgeEnabled: Bool? + /// Information about the build input source code for the build project. + public let source: ProjectSource + /// VpcConfig enables AWS CodeBuild to access resources in an Amazon VPC. + public let vpcConfig: VpcConfig? + /// Information about the build environment for the build project. + public let environment: ProjectEnvironment + /// The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts. You can specify either the CMK's Amazon Resource Name (ARN) or, if available, the CMK's alias (using the format alias/alias-name ). + public let encryptionKey: String? + /// A description that makes the build project easy to identify. + public let description: String? + /// Information about the build output artifacts for the build project. + public let artifacts: ProjectArtifacts + /// How long, in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait until timing out any build that has not been marked as completed. The default is 60 minutes. + public let timeoutInMinutes: Int32? + /// A set of tags for this build project. These tags are available for use by AWS services that support AWS CodeBuild build project tags. + public let tags: [Tag]? + /// The ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account. + public let serviceRole: String? + + public init(cache: ProjectCache? = nil, name: String, badgeEnabled: Bool? = nil, source: ProjectSource, vpcConfig: VpcConfig? = nil, environment: ProjectEnvironment, encryptionKey: String? = nil, description: String? = nil, artifacts: ProjectArtifacts, timeoutInMinutes: Int32? = nil, tags: [Tag]? = nil, serviceRole: String? = nil) { + self.cache = cache + self.name = name + self.badgeEnabled = badgeEnabled + self.source = source + self.vpcConfig = vpcConfig + self.environment = environment + self.encryptionKey = encryptionKey + self.description = description + self.artifacts = artifacts + self.timeoutInMinutes = timeoutInMinutes + self.tags = tags + self.serviceRole = serviceRole + } + + private enum CodingKeys: String, CodingKey { + case cache = "cache" + case name = "name" + case badgeEnabled = "badgeEnabled" + case source = "source" + case vpcConfig = "vpcConfig" + case environment = "environment" + case encryptionKey = "encryptionKey" + case description = "description" + case artifacts = "artifacts" + case timeoutInMinutes = "timeoutInMinutes" + case tags = "tags" + case serviceRole = "serviceRole" + } + } + + public enum SortOrderType: String, CustomStringConvertible, Codable { + case ascending = "ASCENDING" + case descending = "DESCENDING" + public var description: String { return self.rawValue } + } + + public struct ListCuratedEnvironmentImagesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "platforms", required: false, type: .list) + ] + /// Information about supported platforms for Docker images that are managed by AWS CodeBuild. + public let platforms: [EnvironmentPlatform]? + + public init(platforms: [EnvironmentPlatform]? = nil) { + self.platforms = platforms + } + + private enum CodingKeys: String, CodingKey { + case platforms = "platforms" + } + } + + public struct ListProjectsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "sortBy", required: false, type: .enum), + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "sortOrder", required: false, type: .enum) + ] + /// The criterion to be used to list build project names. Valid values include: CREATED_TIME: List the build project names based on when each build project was created. LAST_MODIFIED_TIME: List the build project names based on when information about each build project was last changed. NAME: List the build project names based on each build project's name. Use sortOrder to specify in what order to list the build project names based on the preceding criteria. + public let sortBy: ProjectSortByType? + /// During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + public let nextToken: String? + /// The order in which to list build projects. Valid values include: ASCENDING: List the build project names in ascending order. DESCENDING: List the build project names in descending order. Use sortBy to specify the criterion to be used to list build project names. + public let sortOrder: SortOrderType? + + public init(sortBy: ProjectSortByType? = nil, nextToken: String? = nil, sortOrder: SortOrderType? = nil) { + self.sortBy = sortBy + self.nextToken = nextToken + self.sortOrder = sortOrder + } + + private enum CodingKeys: String, CodingKey { + case sortBy = "sortBy" + case nextToken = "nextToken" + case sortOrder = "sortOrder" } } - public struct StartBuildOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "build", required: false, type: .structure) + public struct BatchDeleteBuildsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "buildsNotDeleted", required: false, type: .list), + AWSShapeMember(label: "buildsDeleted", required: false, type: .list) ] - /// Information about the build to be run. - public let build: Build? + /// Information about any builds that could not be successfully deleted. + public let buildsNotDeleted: [BuildNotDeleted]? + /// The IDs of the builds that were successfully deleted. + public let buildsDeleted: [String]? - public init(build: Build? = nil) { - self.build = build + public init(buildsNotDeleted: [BuildNotDeleted]? = nil, buildsDeleted: [String]? = nil) { + self.buildsNotDeleted = buildsNotDeleted + self.buildsDeleted = buildsDeleted + } + + private enum CodingKeys: String, CodingKey { + case buildsNotDeleted = "buildsNotDeleted" + case buildsDeleted = "buildsDeleted" + } + } + + public struct ListProjectsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "projects", required: false, type: .list) + ] + /// If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. + public let nextToken: String? + /// The list of build project names, with each build project name representing a single build project. + public let projects: [String]? + + public init(nextToken: String? = nil, projects: [String]? = nil) { + self.nextToken = nextToken + self.projects = projects + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case projects = "projects" + } + } + + public struct StopBuildInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "id", required: true, type: .string) + ] + /// The ID of the build. + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + } + } + + public struct NetworkInterface: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "networkInterfaceId", required: false, type: .string), + AWSShapeMember(label: "subnetId", required: false, type: .string) + ] + /// The ID of the network interface. + public let networkInterfaceId: String? + /// The ID of the subnet. + public let subnetId: String? + + public init(networkInterfaceId: String? = nil, subnetId: String? = nil) { + self.networkInterfaceId = networkInterfaceId + self.subnetId = subnetId + } + + private enum CodingKeys: String, CodingKey { + case networkInterfaceId = "networkInterfaceId" + case subnetId = "subnetId" + } + } + + public struct Project: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "source", required: false, type: .structure), + AWSShapeMember(label: "timeoutInMinutes", required: false, type: .integer), + AWSShapeMember(label: "vpcConfig", required: false, type: .structure), + AWSShapeMember(label: "badge", required: false, type: .structure), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "webhook", required: false, type: .structure), + AWSShapeMember(label: "artifacts", required: false, type: .structure), + AWSShapeMember(label: "tags", required: false, type: .list), + AWSShapeMember(label: "serviceRole", required: false, type: .string), + AWSShapeMember(label: "arn", required: false, type: .string), + AWSShapeMember(label: "cache", required: false, type: .structure), + AWSShapeMember(label: "lastModified", required: false, type: .timestamp), + AWSShapeMember(label: "created", required: false, type: .timestamp), + AWSShapeMember(label: "environment", required: false, type: .structure), + AWSShapeMember(label: "encryptionKey", required: false, type: .string) + ] + /// The name of the build project. + public let name: String? + /// Information about the build input source code for this build project. + public let source: ProjectSource? + /// How long, in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait before timing out any related build that did not get marked as completed. The default is 60 minutes. + public let timeoutInMinutes: Int32? + /// If your AWS CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID. + public let vpcConfig: VpcConfig? + /// Information about the build badge for the build project. + public let badge: ProjectBadge? + /// A description that makes the build project easy to identify. + public let description: String? + /// Information about a webhook in GitHub that connects repository events to a build project in AWS CodeBuild. + public let webhook: Webhook? + /// Information about the build output artifacts for the build project. + public let artifacts: ProjectArtifacts? + /// The tags for this build project. These tags are available for use by AWS services that support AWS CodeBuild build project tags. + public let tags: [Tag]? + /// The ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account. + public let serviceRole: String? + /// The Amazon Resource Name (ARN) of the build project. + public let arn: String? + /// Information about the cache for the build project. + public let cache: ProjectCache? + /// When the build project's settings were last modified, expressed in Unix time format. + public let lastModified: TimeStamp? + /// When the build project was created, expressed in Unix time format. + public let created: TimeStamp? + /// Information about the build environment for this build project. + public let environment: ProjectEnvironment? + /// The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts. This is expressed either as the CMK's Amazon Resource Name (ARN) or, if specified, the CMK's alias (using the format alias/alias-name ). + public let encryptionKey: String? + + public init(name: String? = nil, source: ProjectSource? = nil, timeoutInMinutes: Int32? = nil, vpcConfig: VpcConfig? = nil, badge: ProjectBadge? = nil, description: String? = nil, webhook: Webhook? = nil, artifacts: ProjectArtifacts? = nil, tags: [Tag]? = nil, serviceRole: String? = nil, arn: String? = nil, cache: ProjectCache? = nil, lastModified: TimeStamp? = nil, created: TimeStamp? = nil, environment: ProjectEnvironment? = nil, encryptionKey: String? = nil) { + self.name = name + self.source = source + self.timeoutInMinutes = timeoutInMinutes + self.vpcConfig = vpcConfig + self.badge = badge + self.description = description + self.webhook = webhook + self.artifacts = artifacts + self.tags = tags + self.serviceRole = serviceRole + self.arn = arn + self.cache = cache + self.lastModified = lastModified + self.created = created + self.environment = environment + self.encryptionKey = encryptionKey + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case source = "source" + case timeoutInMinutes = "timeoutInMinutes" + case vpcConfig = "vpcConfig" + case badge = "badge" + case description = "description" + case webhook = "webhook" + case artifacts = "artifacts" + case tags = "tags" + case serviceRole = "serviceRole" + case arn = "arn" + case cache = "cache" + case lastModified = "lastModified" + case created = "created" + case environment = "environment" + case encryptionKey = "encryptionKey" + } + } + + public struct BuildPhase: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "durationInSeconds", required: false, type: .long), + AWSShapeMember(label: "endTime", required: false, type: .timestamp), + AWSShapeMember(label: "startTime", required: false, type: .timestamp), + AWSShapeMember(label: "contexts", required: false, type: .list), + AWSShapeMember(label: "phaseStatus", required: false, type: .enum), + AWSShapeMember(label: "phaseType", required: false, type: .enum) + ] + /// How long, in seconds, between the starting and ending times of the build's phase. + public let durationInSeconds: Int64? + /// When the build phase ended, expressed in Unix time format. + public let endTime: TimeStamp? + /// When the build phase started, expressed in Unix time format. + public let startTime: TimeStamp? + /// Additional information about a build phase, especially to help troubleshoot a failed build. + public let contexts: [PhaseContext]? + /// The current status of the build phase. Valid values include: FAILED: The build phase failed. FAULT: The build phase faulted. IN_PROGRESS: The build phase is still in progress. STOPPED: The build phase stopped. SUCCEEDED: The build phase succeeded. TIMED_OUT: The build phase timed out. + public let phaseStatus: StatusType? + /// The name of the build phase. Valid values include: BUILD: Core build activities typically occur in this build phase. COMPLETED: The build has been completed. DOWNLOAD_SOURCE: Source code is being downloaded in this build phase. FINALIZING: The build process is completing in this build phase. INSTALL: Installation activities typically occur in this build phase. POST_BUILD: Post-build activities typically occur in this build phase. PRE_BUILD: Pre-build activities typically occur in this build phase. PROVISIONING: The build environment is being set up. SUBMITTED: The build has been submitted. UPLOAD_ARTIFACTS: Build output artifacts are being uploaded to the output location. + public let phaseType: BuildPhaseType? + + public init(durationInSeconds: Int64? = nil, endTime: TimeStamp? = nil, startTime: TimeStamp? = nil, contexts: [PhaseContext]? = nil, phaseStatus: StatusType? = nil, phaseType: BuildPhaseType? = nil) { + self.durationInSeconds = durationInSeconds + self.endTime = endTime + self.startTime = startTime + self.contexts = contexts + self.phaseStatus = phaseStatus + self.phaseType = phaseType + } + + private enum CodingKeys: String, CodingKey { + case durationInSeconds = "durationInSeconds" + case endTime = "endTime" + case startTime = "startTime" + case contexts = "contexts" + case phaseStatus = "phaseStatus" + case phaseType = "phaseType" + } + } + + public struct SourceAuth: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "type", required: true, type: .enum), + AWSShapeMember(label: "resource", required: false, type: .string) + ] + /// The authorization type to use. The only valid value is OAUTH, which represents the OAuth authorization type. + public let `type`: SourceAuthType + /// The resource value that applies to the specified authorization type. + public let resource: String? + + public init(type: SourceAuthType, resource: String? = nil) { + self.`type` = `type` + self.resource = resource + } + + private enum CodingKeys: String, CodingKey { + case `type` = "type" + case resource = "resource" + } + } + + public struct EnvironmentPlatform: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "languages", required: false, type: .list), + AWSShapeMember(label: "platform", required: false, type: .enum) + ] + /// The list of programming languages that are available for the specified platform. + public let languages: [EnvironmentLanguage]? + /// The platform's name. + public let platform: PlatformType? + + public init(languages: [EnvironmentLanguage]? = nil, platform: PlatformType? = nil) { + self.languages = languages + self.platform = platform + } + + private enum CodingKeys: String, CodingKey { + case languages = "languages" + case platform = "platform" + } + } + + public struct DeleteProjectOutput: AWSShape { + + } + + public struct DeleteWebhookOutput: AWSShape { + + } + + public enum ProjectSortByType: String, CustomStringConvertible, Codable { + case name = "NAME" + case createdTime = "CREATED_TIME" + case lastModifiedTime = "LAST_MODIFIED_TIME" + public var description: String { return self.rawValue } + } + + public struct UpdateProjectOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "project", required: false, type: .structure) + ] + /// Information about the build project that was changed. + public let project: Project? + + public init(project: Project? = nil) { + self.project = project + } + + private enum CodingKeys: String, CodingKey { + case project = "project" + } + } + + public enum SourceAuthType: String, CustomStringConvertible, Codable { + case oauth = "OAUTH" + public var description: String { return self.rawValue } + } + + public struct EnvironmentLanguage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "language", required: false, type: .enum), + AWSShapeMember(label: "images", required: false, type: .list) + ] + /// The programming language for the Docker images. + public let language: LanguageType? + /// The list of Docker images that are related by the specified programming language. + public let images: [EnvironmentImage]? + + public init(language: LanguageType? = nil, images: [EnvironmentImage]? = nil) { + self.language = language + self.images = images } private enum CodingKeys: String, CodingKey { - case build = "build" + case language = "language" + case images = "images" } } - public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "key", required: false, type: .string), - AWSShapeMember(label: "value", required: false, type: .string) + public enum EnvironmentVariableType: String, CustomStringConvertible, Codable { + case plaintext = "PLAINTEXT" + case parameterStore = "PARAMETER_STORE" + public var description: String { return self.rawValue } + } + + public struct VpcConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "securityGroupIds", required: false, type: .list), + AWSShapeMember(label: "subnets", required: false, type: .list), + AWSShapeMember(label: "vpcId", required: false, type: .string) ] - /// The tag's key. - public let key: String? - /// The tag's value. - public let value: String? + /// A list of one or more security groups IDs in your Amazon VPC. + public let securityGroupIds: [String]? + /// A list of one or more subnet IDs in your Amazon VPC. + public let subnets: [String]? + /// The ID of the Amazon VPC. + public let vpcId: String? - public init(key: String? = nil, value: String? = nil) { - self.key = key - self.value = value + public init(securityGroupIds: [String]? = nil, subnets: [String]? = nil, vpcId: String? = nil) { + self.securityGroupIds = securityGroupIds + self.subnets = subnets + self.vpcId = vpcId } private enum CodingKeys: String, CodingKey { - case key = "key" - case value = "value" + case securityGroupIds = "securityGroupIds" + case subnets = "subnets" + case vpcId = "vpcId" } } - public struct ListBuildsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ids", required: false, type: .list), - AWSShapeMember(label: "nextToken", required: false, type: .string) + public struct InvalidateProjectCacheInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "projectName", required: true, type: .string) ] - /// A list of build IDs, with each build ID representing a single build. - public let ids: [String]? - /// If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. - public let nextToken: String? + /// The name of the build project that the cache will be reset for. + public let projectName: String - public init(ids: [String]? = nil, nextToken: String? = nil) { - self.ids = ids - self.nextToken = nextToken + public init(projectName: String) { + self.projectName = projectName } private enum CodingKeys: String, CodingKey { - case ids = "ids" - case nextToken = "nextToken" + case projectName = "projectName" } } - public enum EnvironmentType: String, CustomStringConvertible, Codable { - case linuxContainer = "LINUX_CONTAINER" - public var description: String { return self.rawValue } - } - public struct ListBuildsForProjectOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ids", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -627,7 +1076,7 @@ extension Codebuild { } public struct ProjectEnvironment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: true, type: .enum), AWSShapeMember(label: "computeType", required: true, type: .enum), AWSShapeMember(label: "image", required: true, type: .string), @@ -642,7 +1091,7 @@ extension Codebuild { public let image: String /// A set of environment variables to make available to builds for this build project. public let environmentVariables: [EnvironmentVariable]? - /// If set to true, enables running the Docker daemon inside a Docker container; otherwise, false or not specified (the default). This value must be set to true only if this build project will be used to build Docker images, and the specified build environment image is not one provided by AWS CodeBuild with Docker support. Otherwise, all associated builds that attempt to interact with the Docker daemon will fail. Note that you must also start the Docker daemon so that your builds can interact with it as needed. One way to do this is to initialize the Docker daemon in the install phase of your build spec by running the following build commands. (Do not run the following build commands if the specified build environment image is provided by AWS CodeBuild with Docker support.) - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=vfs& - timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done" + /// If set to true, enables running the Docker daemon inside a Docker container; otherwise, false or not specified (the default). This value must be set to true only if this build project will be used to build Docker images, and the specified build environment image is not one provided by AWS CodeBuild with Docker support. Otherwise, all associated builds that attempt to interact with the Docker daemon will fail. Note that you must also start the Docker daemon so that your builds can interact with it as needed. One way to do this is to initialize the Docker daemon in the install phase of your build spec by running the following build commands. (Do not run the following build commands if the specified build environment image is provided by AWS CodeBuild with Docker support.) - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay& - timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done" public let privilegedMode: Bool? public init(type: EnvironmentType, computeType: ComputeType, image: String, environmentVariables: [EnvironmentVariable]? = nil, privilegedMode: Bool? = nil) { @@ -662,29 +1111,34 @@ extension Codebuild { } } - public struct ListBuildsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListBuildsForProjectInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "projectName", required: true, type: .string), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "sortOrder", required: false, type: .enum) ] + /// The name of the build project. + public let projectName: String /// During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. public let nextToken: String? /// The order to list build IDs. Valid values include: ASCENDING: List the build IDs in ascending order by build ID. DESCENDING: List the build IDs in descending order by build ID. public let sortOrder: SortOrderType? - public init(nextToken: String? = nil, sortOrder: SortOrderType? = nil) { + public init(projectName: String, nextToken: String? = nil, sortOrder: SortOrderType? = nil) { + self.projectName = projectName self.nextToken = nextToken self.sortOrder = sortOrder } private enum CodingKeys: String, CodingKey { + case projectName = "projectName" case nextToken = "nextToken" case sortOrder = "sortOrder" } } public struct BatchGetProjectsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "names", required: true, type: .list) ] /// The names of the build projects. @@ -699,105 +1153,117 @@ extension Codebuild { } } - public struct ListBuildsForProjectInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "projectName", required: true, type: .string), - AWSShapeMember(label: "nextToken", required: false, type: .string), - AWSShapeMember(label: "sortOrder", required: false, type: .enum) + public struct DeleteWebhookInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "projectName", required: true, type: .string) ] /// The name of the build project. public let projectName: String - /// During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. - public let nextToken: String? - /// The order to list build IDs. Valid values include: ASCENDING: List the build IDs in ascending order by build ID. DESCENDING: List the build IDs in descending order by build ID. - public let sortOrder: SortOrderType? - public init(projectName: String, nextToken: String? = nil, sortOrder: SortOrderType? = nil) { + public init(projectName: String) { self.projectName = projectName - self.nextToken = nextToken - self.sortOrder = sortOrder } private enum CodingKeys: String, CodingKey { case projectName = "projectName" - case nextToken = "nextToken" - case sortOrder = "sortOrder" } } - public enum ComputeType: String, CustomStringConvertible, Codable { - case buildGeneral1Small = "BUILD_GENERAL1_SMALL" - case buildGeneral1Medium = "BUILD_GENERAL1_MEDIUM" - case buildGeneral1Large = "BUILD_GENERAL1_LARGE" + public enum CacheType: String, CustomStringConvertible, Codable { + case noCache = "NO_CACHE" + case s3 = "S3" public var description: String { return self.rawValue } } - public enum SourceType: String, CustomStringConvertible, Codable { - case codecommit = "CODECOMMIT" - case codepipeline = "CODEPIPELINE" - case github = "GITHUB" - case s3 = "S3" - public var description: String { return self.rawValue } + public struct CreateWebhookOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "webhook", required: false, type: .structure) + ] + /// Information about a webhook in GitHub that connects repository events to a build project in AWS CodeBuild. + public let webhook: Webhook? + + public init(webhook: Webhook? = nil) { + self.webhook = webhook + } + + private enum CodingKeys: String, CodingKey { + case webhook = "webhook" + } } public struct UpdateProjectInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "cache", required: false, type: .structure), AWSShapeMember(label: "name", required: true, type: .string), - AWSShapeMember(label: "environment", required: false, type: .structure), + AWSShapeMember(label: "badgeEnabled", required: false, type: .boolean), AWSShapeMember(label: "source", required: false, type: .structure), - AWSShapeMember(label: "timeoutInMinutes", required: false, type: .integer), + AWSShapeMember(label: "vpcConfig", required: false, type: .structure), + AWSShapeMember(label: "environment", required: false, type: .structure), AWSShapeMember(label: "encryptionKey", required: false, type: .string), AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "artifacts", required: false, type: .structure), + AWSShapeMember(label: "timeoutInMinutes", required: false, type: .integer), AWSShapeMember(label: "tags", required: false, type: .list), AWSShapeMember(label: "serviceRole", required: false, type: .string) ] + /// Stores recently used information so that it can be quickly accessed at a later time. + public let cache: ProjectCache? /// The name of the build project. You cannot change a build project's name. public let name: String - /// Information to be changed about the build environment for the build project. - public let environment: ProjectEnvironment? + /// Set this to true to generate a publicly-accessible URL for your project's build badge. + public let badgeEnabled: Bool? /// Information to be changed about the build input source code for the build project. public let source: ProjectSource? - /// The replacement value in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait before timing out any related build that did not get marked as completed. - public let timeoutInMinutes: Int32? + /// VpcConfig enables AWS CodeBuild to access resources in an Amazon VPC. + public let vpcConfig: VpcConfig? + /// Information to be changed about the build environment for the build project. + public let environment: ProjectEnvironment? /// The replacement AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts. You can specify either the CMK's Amazon Resource Name (ARN) or, if available, the CMK's alias (using the format alias/alias-name ). public let encryptionKey: String? /// A new or replacement description of the build project. public let description: String? /// Information to be changed about the build output artifacts for the build project. public let artifacts: ProjectArtifacts? + /// The replacement value in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait before timing out any related build that did not get marked as completed. + public let timeoutInMinutes: Int32? /// The replacement set of tags for this build project. These tags are available for use by AWS services that support AWS CodeBuild build project tags. public let tags: [Tag]? /// The replacement ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account. public let serviceRole: String? - public init(name: String, environment: ProjectEnvironment? = nil, source: ProjectSource? = nil, timeoutInMinutes: Int32? = nil, encryptionKey: String? = nil, description: String? = nil, artifacts: ProjectArtifacts? = nil, tags: [Tag]? = nil, serviceRole: String? = nil) { + public init(cache: ProjectCache? = nil, name: String, badgeEnabled: Bool? = nil, source: ProjectSource? = nil, vpcConfig: VpcConfig? = nil, environment: ProjectEnvironment? = nil, encryptionKey: String? = nil, description: String? = nil, artifacts: ProjectArtifacts? = nil, timeoutInMinutes: Int32? = nil, tags: [Tag]? = nil, serviceRole: String? = nil) { + self.cache = cache self.name = name - self.environment = environment + self.badgeEnabled = badgeEnabled self.source = source - self.timeoutInMinutes = timeoutInMinutes + self.vpcConfig = vpcConfig + self.environment = environment self.encryptionKey = encryptionKey self.description = description self.artifacts = artifacts + self.timeoutInMinutes = timeoutInMinutes self.tags = tags self.serviceRole = serviceRole } private enum CodingKeys: String, CodingKey { + case cache = "cache" case name = "name" - case environment = "environment" + case badgeEnabled = "badgeEnabled" case source = "source" - case timeoutInMinutes = "timeoutInMinutes" + case vpcConfig = "vpcConfig" + case environment = "environment" case encryptionKey = "encryptionKey" case description = "description" case artifacts = "artifacts" + case timeoutInMinutes = "timeoutInMinutes" case tags = "tags" case serviceRole = "serviceRole" } } public struct StartBuildInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "sourceVersion", required: false, type: .string), AWSShapeMember(label: "environmentVariablesOverride", required: false, type: .list), AWSShapeMember(label: "artifactsOverride", required: false, type: .structure), @@ -805,7 +1271,7 @@ extension Codebuild { AWSShapeMember(label: "timeoutInMinutesOverride", required: false, type: .integer), AWSShapeMember(label: "buildspecOverride", required: false, type: .string) ] - /// A version of the build input to be built, for this build only. If not specified, the latest version will be used. If specified, must be one of: For AWS CodeCommit or GitHub: the commit ID to use. For Amazon Simple Storage Service (Amazon S3): the version ID of the object representing the build input ZIP file to use. + /// A version of the build input to be built, for this build only. If not specified, the latest version will be used. If specified, must be one of: For AWS CodeCommit: the commit ID to use. For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format pr/pull-request-ID (for example pr/25). If a branch name is specified, the branch's HEAD commit ID will be used. If not specified, the default branch's HEAD commit ID will be used. For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID will be used. If not specified, the default branch's HEAD commit ID will be used. For Amazon Simple Storage Service (Amazon S3): the version ID of the object representing the build input ZIP file to use. public let sourceVersion: String? /// A set of environment variables that overrides, for this build only, the latest ones already defined in the build project. public let environmentVariablesOverride: [EnvironmentVariable]? @@ -851,60 +1317,8 @@ extension Codebuild { public var description: String { return self.rawValue } } - public struct EnvironmentImage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "description", required: false, type: .string), - AWSShapeMember(label: "name", required: false, type: .string) - ] - /// The description of the Docker image. - public let description: String? - /// The name of the Docker image. - public let name: String? - - public init(description: String? = nil, name: String? = nil) { - self.description = description - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case description = "description" - case name = "name" - } - } - - public enum StatusType: String, CustomStringConvertible, Codable { - case succeeded = "SUCCEEDED" - case failed = "FAILED" - case fault = "FAULT" - case timedOut = "TIMED_OUT" - case inProgress = "IN_PROGRESS" - case stopped = "STOPPED" - public var description: String { return self.rawValue } - } - - public struct EnvironmentVariable: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "name", required: true, type: .string), - AWSShapeMember(label: "value", required: true, type: .string) - ] - /// The name or key of the environment variable. - public let name: String - /// The value of the environment variable. We strongly discourage using environment variables to store sensitive values, especially AWS secret key IDs and secret access keys. Environment variables can be displayed in plain text using tools such as the AWS CodeBuild console and the AWS Command Line Interface (AWS CLI). - public let value: String - - public init(name: String, value: String) { - self.name = name - self.value = value - } - - private enum CodingKeys: String, CodingKey { - case name = "name" - case value = "value" - } - } - public struct BatchGetBuildsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ids", required: true, type: .list) ] /// The IDs of the builds. @@ -920,7 +1334,7 @@ extension Codebuild { } public struct PhaseContext: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "message", required: false, type: .string), AWSShapeMember(label: "statusCode", required: false, type: .string) ] @@ -940,84 +1354,6 @@ extension Codebuild { } } - public struct CreateProjectInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "name", required: true, type: .string), - AWSShapeMember(label: "environment", required: true, type: .structure), - AWSShapeMember(label: "source", required: true, type: .structure), - AWSShapeMember(label: "timeoutInMinutes", required: false, type: .integer), - AWSShapeMember(label: "encryptionKey", required: false, type: .string), - AWSShapeMember(label: "description", required: false, type: .string), - AWSShapeMember(label: "artifacts", required: true, type: .structure), - AWSShapeMember(label: "tags", required: false, type: .list), - AWSShapeMember(label: "serviceRole", required: false, type: .string) - ] - /// The name of the build project. - public let name: String - /// Information about the build environment for the build project. - public let environment: ProjectEnvironment - /// Information about the build input source code for the build project. - public let source: ProjectSource - /// How long, in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait until timing out any build that has not been marked as completed. The default is 60 minutes. - public let timeoutInMinutes: Int32? - /// The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts. You can specify either the CMK's Amazon Resource Name (ARN) or, if available, the CMK's alias (using the format alias/alias-name ). - public let encryptionKey: String? - /// A description that makes the build project easy to identify. - public let description: String? - /// Information about the build output artifacts for the build project. - public let artifacts: ProjectArtifacts - /// A set of tags for this build project. These tags are available for use by AWS services that support AWS CodeBuild build project tags. - public let tags: [Tag]? - /// The ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account. - public let serviceRole: String? - - public init(name: String, environment: ProjectEnvironment, source: ProjectSource, timeoutInMinutes: Int32? = nil, encryptionKey: String? = nil, description: String? = nil, artifacts: ProjectArtifacts, tags: [Tag]? = nil, serviceRole: String? = nil) { - self.name = name - self.environment = environment - self.source = source - self.timeoutInMinutes = timeoutInMinutes - self.encryptionKey = encryptionKey - self.description = description - self.artifacts = artifacts - self.tags = tags - self.serviceRole = serviceRole - } - - private enum CodingKeys: String, CodingKey { - case name = "name" - case environment = "environment" - case source = "source" - case timeoutInMinutes = "timeoutInMinutes" - case encryptionKey = "encryptionKey" - case description = "description" - case artifacts = "artifacts" - case tags = "tags" - case serviceRole = "serviceRole" - } - } - - public struct CreateProjectOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "project", required: false, type: .structure) - ] - /// Information about the build project that was created. - public let project: Project? - - public init(project: Project? = nil) { - self.project = project - } - - private enum CodingKeys: String, CodingKey { - case project = "project" - } - } - - public enum SortOrderType: String, CustomStringConvertible, Codable { - case ascending = "ASCENDING" - case descending = "DESCENDING" - public var description: String { return self.rawValue } - } - public enum ArtifactsType: String, CustomStringConvertible, Codable { case codepipeline = "CODEPIPELINE" case s3 = "S3" @@ -1025,8 +1361,12 @@ extension Codebuild { public var description: String { return self.rawValue } } + public struct InvalidateProjectCacheOutput: AWSShape { + + } + public struct ProjectSource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "buildspec", required: false, type: .string), AWSShapeMember(label: "location", required: false, type: .string), AWSShapeMember(label: "type", required: true, type: .enum), @@ -1034,11 +1374,11 @@ extension Codebuild { ] /// The build spec declaration to use for the builds in this build project. If this value is not specified, a build spec must be included along with the source code to be built. public let buildspec: String? - /// Information about the location of the source code to be built. Valid values include: For source code settings that are specified in the source action of a pipeline in AWS CodePipeline, location should not be specified. If it is specified, AWS CodePipeline will ignore it. This is because AWS CodePipeline uses the settings in a pipeline's source action instead of this value. For source code in an AWS CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the build spec (for example, https://git-codecommit.region-ID.amazonaws.com/v1/repos/repo-name ). For source code in an Amazon Simple Storage Service (Amazon S3) input bucket, the path to the ZIP file that contains the source code (for example, bucket-name/path/to/object-name.zip) For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the build spec. Also, you must connect your AWS account to your GitHub account. To do this, use the AWS CodeBuild console to begin creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub Authorize application page that displays, for Organization access, choose Request access next to each repository you want to allow AWS CodeBuild to have access to. Then choose Authorize application. (After you have connected to your GitHub account, you do not need to finish creating the build project, and you may then leave the AWS CodeBuild console.) To instruct AWS CodeBuild to then use this connection, in the source object, set the auth object's type value to OAUTH. + /// Information about the location of the source code to be built. Valid values include: For source code settings that are specified in the source action of a pipeline in AWS CodePipeline, location should not be specified. If it is specified, AWS CodePipeline will ignore it. This is because AWS CodePipeline uses the settings in a pipeline's source action instead of this value. For source code in an AWS CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the build spec (for example, https://git-codecommit.region-ID.amazonaws.com/v1/repos/repo-name ). For source code in an Amazon Simple Storage Service (Amazon S3) input bucket, the path to the ZIP file that contains the source code (for example, bucket-name/path/to/object-name.zip) For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the build spec. Also, you must connect your AWS account to your GitHub account. To do this, use the AWS CodeBuild console to begin creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub Authorize application page that displays, for Organization access, choose Request access next to each repository you want to allow AWS CodeBuild to have access to. Then choose Authorize application. (After you have connected to your GitHub account, you do not need to finish creating the build project, and you may then leave the AWS CodeBuild console.) To instruct AWS CodeBuild to then use this connection, in the source object, set the auth object's type value to OAUTH. For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the build spec. Also, you must connect your AWS account to your Bitbucket account. To do this, use the AWS CodeBuild console to begin creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket Confirm access to your account page that displays, choose Grant access. (After you have connected to your Bitbucket account, you do not need to finish creating the build project, and you may then leave the AWS CodeBuild console.) To instruct AWS CodeBuild to then use this connection, in the source object, set the auth object's type value to OAUTH. public let location: String? - /// The type of repository that contains the source code to be built. Valid values include: CODECOMMIT: The source code is in an AWS CodeCommit repository. CODEPIPELINE: The source code settings are specified in the source action of a pipeline in AWS CodePipeline. GITHUB: The source code is in a GitHub repository. S3: The source code is in an Amazon Simple Storage Service (Amazon S3) input bucket. + /// The type of repository that contains the source code to be built. Valid values include: BITBUCKET: The source code is in a Bitbucket repository. CODECOMMIT: The source code is in an AWS CodeCommit repository. CODEPIPELINE: The source code settings are specified in the source action of a pipeline in AWS CodePipeline. GITHUB: The source code is in a GitHub repository. S3: The source code is in an Amazon Simple Storage Service (Amazon S3) input bucket. public let `type`: SourceType - /// Information about the authorization settings for AWS CodeBuild to access the source code to be built. This information is for the AWS CodeBuild console's use only. Your code should not get or set this information directly (unless the build project's source type value is GITHUB). + /// Information about the authorization settings for AWS CodeBuild to access the source code to be built. This information is for the AWS CodeBuild console's use only. Your code should not get or set this information directly (unless the build project's source type value is BITBUCKET or GITHUB). public let auth: SourceAuth? public init(buildspec: String? = nil, location: String? = nil, type: SourceType, auth: SourceAuth? = nil) { @@ -1056,45 +1396,24 @@ extension Codebuild { } } - public struct ListProjectsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "sortBy", required: false, type: .enum), - AWSShapeMember(label: "nextToken", required: false, type: .string), - AWSShapeMember(label: "sortOrder", required: false, type: .enum) - ] - /// The criterion to be used to list build project names. Valid values include: CREATED_TIME: List the build project names based on when each build project was created. LAST_MODIFIED_TIME: List the build project names based on when information about each build project was last changed. NAME: List the build project names based on each build project's name. Use sortOrder to specify in what order to list the build project names based on the preceding criteria. - public let sortBy: ProjectSortByType? - /// During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. - public let nextToken: String? - /// The order in which to list build projects. Valid values include: ASCENDING: List the build project names in ascending order. DESCENDING: List the build project names in descending order. Use sortBy to specify the criterion to be used to list build project names. - public let sortOrder: SortOrderType? - - public init(sortBy: ProjectSortByType? = nil, nextToken: String? = nil, sortOrder: SortOrderType? = nil) { - self.sortBy = sortBy - self.nextToken = nextToken - self.sortOrder = sortOrder - } - - private enum CodingKeys: String, CodingKey { - case sortBy = "sortBy" - case nextToken = "nextToken" - case sortOrder = "sortOrder" - } - } - - public struct ListCuratedEnvironmentImagesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "platforms", required: false, type: .list) + public struct ProjectBadge: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "badgeRequestUrl", required: false, type: .string), + AWSShapeMember(label: "badgeEnabled", required: false, type: .boolean) ] - /// Information about supported platforms for Docker images that are managed by AWS CodeBuild. - public let platforms: [EnvironmentPlatform]? + /// The publicly-accessible URL through which you can access the build badge for your project. + public let badgeRequestUrl: String? + /// Set this to true to generate a publicly-accessible URL for your project's build badge. + public let badgeEnabled: Bool? - public init(platforms: [EnvironmentPlatform]? = nil) { - self.platforms = platforms + public init(badgeRequestUrl: String? = nil, badgeEnabled: Bool? = nil) { + self.badgeRequestUrl = badgeRequestUrl + self.badgeEnabled = badgeEnabled } private enum CodingKeys: String, CodingKey { - case platforms = "platforms" + case badgeRequestUrl = "badgeRequestUrl" + case badgeEnabled = "badgeEnabled" } } diff --git a/Sources/AWSSDKSwift/Services/codecommit/Codecommit_API.swift b/Sources/AWSSDKSwift/Services/codecommit/Codecommit_API.swift index 022810ffacd..06b6cffbbb3 100644 --- a/Sources/AWSSDKSwift/Services/codecommit/Codecommit_API.swift +++ b/Sources/AWSSDKSwift/Services/codecommit/Codecommit_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -AWS CodeCommit This is the AWS CodeCommit API Reference. This reference provides descriptions of the operations and data types for AWS CodeCommit API along with usage examples. You can use the AWS CodeCommit API to work with the following objects: Repositories, by calling the following: BatchGetRepositories, which returns information about one or more repositories associated with your AWS account CreateRepository, which creates an AWS CodeCommit repository DeleteRepository, which deletes an AWS CodeCommit repository GetRepository, which returns information about a specified repository ListRepositories, which lists all AWS CodeCommit repositories associated with your AWS account UpdateRepositoryDescription, which sets or updates the description of the repository UpdateRepositoryName, which changes the name of the repository. If you change the name of a repository, no other users of that repository will be able to access it until you send them the new HTTPS or SSH URL to use. Branches, by calling the following: CreateBranch, which creates a new branch in a specified repository GetBranch, which returns information about a specified branch ListBranches, which lists all branches for a specified repository UpdateDefaultBranch, which changes the default branch for a repository Information about committed code in a repository, by calling the following: GetBlob, which returns the base-64 encoded content of an individual Git blob object within a repository GetCommit, which returns information about a commit, including commit messages and author and committer information GetDifferences, which returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID or other fully qualified reference) Triggers, by calling the following: GetRepositoryTriggers, which returns information about triggers configured for a repository PutRepositoryTriggers, which replaces all triggers for a repository and can be used to create or delete triggers TestRepositoryTriggers, which tests the functionality of a repository trigger by sending data to the trigger target For information about how to use AWS CodeCommit, see the AWS CodeCommit User Guide. +AWS CodeCommit This is the AWS CodeCommit API Reference. This reference provides descriptions of the operations and data types for AWS CodeCommit API along with usage examples. You can use the AWS CodeCommit API to work with the following objects: Repositories, by calling the following: BatchGetRepositories, which returns information about one or more repositories associated with your AWS account. CreateRepository, which creates an AWS CodeCommit repository. DeleteRepository, which deletes an AWS CodeCommit repository. GetRepository, which returns information about a specified repository. ListRepositories, which lists all AWS CodeCommit repositories associated with your AWS account. UpdateRepositoryDescription, which sets or updates the description of the repository. UpdateRepositoryName, which changes the name of the repository. If you change the name of a repository, no other users of that repository will be able to access it until you send them the new HTTPS or SSH URL to use. Branches, by calling the following: CreateBranch, which creates a new branch in a specified repository. DeleteBranch, which deletes the specified branch in a repository unless it is the default branch. GetBranch, which returns information about a specified branch. ListBranches, which lists all branches for a specified repository. UpdateDefaultBranch, which changes the default branch for a repository. Information about committed code in a repository, by calling the following: GetBlob, which returns the base-64 encoded content of an individual Git blob object within a repository. GetCommit, which returns information about a commit, including commit messages and author and committer information. GetDifferences, which returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID or other fully qualified reference). Pull requests, by calling the following: CreatePullRequest, which creates a pull request in a specified repository. DescribePullRequestEvents, which returns information about one or more pull request events. GetCommentsForPullRequest, which returns information about comments on a specified pull request. GetMergeConflicts, which returns information about merge conflicts between the source and destination branch in a pull request. GetPullRequest, which returns information about a specified pull request. ListPullRequests, which lists all pull requests for a repository. MergePullRequestByFastForward, which merges the source destination branch of a pull request into the specified destination branch for that pull request using the fast-forward merge option. PostCommentForPullRequest, which posts a comment to a pull request at the specified line, file, or request. UpdatePullRequestDescription, which updates the description of a pull request. UpdatePullRequestStatus, which updates the status of a pull request. UpdatePullRequestTitle, which updates the title of a pull request. Information about comments in a repository, by calling the following: DeleteCommentContent, which deletes the content of a comment on a commit in a repository. GetComment, which returns information about a comment on a commit. GetCommentsForComparedCommit, which returns information about comments on the comparison between two commit specifiers in a repository. PostCommentForComparedCommit, which creates a comment on the comparison between two commit specifiers in a repository. PostCommentReply, which creates a reply to a comment. UpdateComment, which updates the content of a comment on a commit in a repository. Triggers, by calling the following: GetRepositoryTriggers, which returns information about triggers configured for a repository. PutRepositoryTriggers, which replaces all triggers for a repository and can be used to create or delete triggers. TestRepositoryTriggers, which tests the functionality of a repository trigger by sending data to the trigger target. For information about how to use AWS CodeCommit, see the AWS CodeCommit User Guide. */ public struct Codecommit { @@ -25,29 +25,34 @@ public struct Codecommit { ) } + /// Returns the content of a comment made on a change, file, or commit in a repository. + public func getComment(_ input: GetCommentInput) throws -> GetCommentOutput { + return try client.send(operation: "GetComment", path: "/", httpMethod: "POST", input: input) + } + /// Creates a new branch in a repository and points the branch to a commit. Calling the create branch operation does not set a repository's default branch. To do this, call the update default branch operation. public func createBranch(_ input: CreateBranchInput) throws { _ = try client.send(operation: "CreateBranch", path: "/", httpMethod: "POST", input: input) } + /// Deletes a branch from a repository, unless that branch is the default branch for the repository. + public func deleteBranch(_ input: DeleteBranchInput) throws -> DeleteBranchOutput { + return try client.send(operation: "DeleteBranch", path: "/", httpMethod: "POST", input: input) + } + /// Returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID or other fully qualified reference). Results can be limited to a specified path. public func getDifferences(_ input: GetDifferencesInput) throws -> GetDifferencesOutput { return try client.send(operation: "GetDifferences", path: "/", httpMethod: "POST", input: input) } - /// Creates a new, empty repository. - public func createRepository(_ input: CreateRepositoryInput) throws -> CreateRepositoryOutput { - return try client.send(operation: "CreateRepository", path: "/", httpMethod: "POST", input: input) - } - - /// Sets or changes the comment or description for a repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a web page could expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a web page. - public func updateRepositoryDescription(_ input: UpdateRepositoryDescriptionInput) throws { - _ = try client.send(operation: "UpdateRepositoryDescription", path: "/", httpMethod: "POST", input: input) + /// Replaces the title of a pull request. + public func updatePullRequestTitle(_ input: UpdatePullRequestTitleInput) throws -> UpdatePullRequestTitleOutput { + return try client.send(operation: "UpdatePullRequestTitle", path: "/", httpMethod: "POST", input: input) } - /// Gets information about one or more branches in a repository. - public func listBranches(_ input: ListBranchesInput) throws -> ListBranchesOutput { - return try client.send(operation: "ListBranches", path: "/", httpMethod: "POST", input: input) + /// Returns information about merge conflicts between the before and after commit IDs for a pull request in a repository. + public func getMergeConflicts(_ input: GetMergeConflictsInput) throws -> GetMergeConflictsOutput { + return try client.send(operation: "GetMergeConflicts", path: "/", httpMethod: "POST", input: input) } /// Sets or changes the default branch name for the specified repository. If you use this operation to change the default branch name to the current default branch name, a success message is returned even though the default branch did not change. @@ -65,11 +70,6 @@ public struct Codecommit { return try client.send(operation: "TestRepositoryTriggers", path: "/", httpMethod: "POST", input: input) } - /// Deletes a repository. If a specified repository was already deleted, a null repository ID will be returned. Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository will fail. - public func deleteRepository(_ input: DeleteRepositoryInput) throws -> DeleteRepositoryOutput { - return try client.send(operation: "DeleteRepository", path: "/", httpMethod: "POST", input: input) - } - /// Gets information about triggers configured for a repository. public func getRepositoryTriggers(_ input: GetRepositoryTriggersInput) throws -> GetRepositoryTriggersOutput { return try client.send(operation: "GetRepositoryTriggers", path: "/", httpMethod: "POST", input: input) @@ -80,14 +80,19 @@ public struct Codecommit { return try client.send(operation: "GetCommit", path: "/", httpMethod: "POST", input: input) } - /// Replaces all triggers for a repository. This can be used to create or delete triggers. - public func putRepositoryTriggers(_ input: PutRepositoryTriggersInput) throws -> PutRepositoryTriggersOutput { - return try client.send(operation: "PutRepositoryTriggers", path: "/", httpMethod: "POST", input: input) + /// Gets information about a pull request in a specified repository. + public func getPullRequest(_ input: GetPullRequestInput) throws -> GetPullRequestOutput { + return try client.send(operation: "GetPullRequest", path: "/", httpMethod: "POST", input: input) } - /// Returns information about a repository branch, including its name and the last commit ID. - public func getBranch(_ input: GetBranchInput) throws -> GetBranchOutput { - return try client.send(operation: "GetBranch", path: "/", httpMethod: "POST", input: input) + /// Posts a comment in reply to an existing comment on a comparison between commits or a pull request. + public func postCommentReply(_ input: PostCommentReplyInput) throws -> PostCommentReplyOutput { + return try client.send(operation: "PostCommentReply", path: "/", httpMethod: "POST", input: input) + } + + /// Closes a pull request and attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the fast-forward merge option. + public func mergePullRequestByFastForward(_ input: MergePullRequestByFastForwardInput) throws -> MergePullRequestByFastForwardOutput { + return try client.send(operation: "MergePullRequestByFastForward", path: "/", httpMethod: "POST", input: input) } /// Renames a repository. The repository name must be unique across the calling AWS account. In addition, repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. The suffix ".git" is prohibited. For a full description of the limits on repository names, see Limits in the AWS CodeCommit User Guide. @@ -95,6 +100,16 @@ public struct Codecommit { _ = try client.send(operation: "UpdateRepositoryName", path: "/", httpMethod: "POST", input: input) } + /// Returns a list of pull requests for a specified repository. The return list can be refined by pull request status or pull request author ARN. + public func listPullRequests(_ input: ListPullRequestsInput) throws -> ListPullRequestsOutput { + return try client.send(operation: "ListPullRequests", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the content of a comment made on a change, file, or commit in a repository. + public func deleteCommentContent(_ input: DeleteCommentContentInput) throws -> DeleteCommentContentOutput { + return try client.send(operation: "DeleteCommentContent", path: "/", httpMethod: "POST", input: input) + } + /// Returns information about a repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a web page could expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a web page. public func getRepository(_ input: GetRepositoryInput) throws -> GetRepositoryOutput { return try client.send(operation: "GetRepository", path: "/", httpMethod: "POST", input: input) @@ -105,6 +120,81 @@ public struct Codecommit { return try client.send(operation: "GetBlob", path: "/", httpMethod: "POST", input: input) } + /// Posts a comment on a pull request. + public func postCommentForPullRequest(_ input: PostCommentForPullRequestInput) throws -> PostCommentForPullRequestOutput { + return try client.send(operation: "PostCommentForPullRequest", path: "/", httpMethod: "POST", input: input) + } + + /// Replaces the contents of a comment. + public func updateComment(_ input: UpdateCommentInput) throws -> UpdateCommentOutput { + return try client.send(operation: "UpdateComment", path: "/", httpMethod: "POST", input: input) + } + + /// Returns comments made on a pull request. + public func getCommentsForPullRequest(_ input: GetCommentsForPullRequestInput) throws -> GetCommentsForPullRequestOutput { + return try client.send(operation: "GetCommentsForPullRequest", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about one or more pull request events. + public func describePullRequestEvents(_ input: DescribePullRequestEventsInput) throws -> DescribePullRequestEventsOutput { + return try client.send(operation: "DescribePullRequestEvents", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new, empty repository. + public func createRepository(_ input: CreateRepositoryInput) throws -> CreateRepositoryOutput { + return try client.send(operation: "CreateRepository", path: "/", httpMethod: "POST", input: input) + } + + /// Sets or changes the comment or description for a repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a web page could expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a web page. + public func updateRepositoryDescription(_ input: UpdateRepositoryDescriptionInput) throws { + _ = try client.send(operation: "UpdateRepositoryDescription", path: "/", httpMethod: "POST", input: input) + } + + /// Posts a comment on the comparison between two commits. + public func postCommentForComparedCommit(_ input: PostCommentForComparedCommitInput) throws -> PostCommentForComparedCommitOutput { + return try client.send(operation: "PostCommentForComparedCommit", path: "/", httpMethod: "POST", input: input) + } + + /// Gets information about one or more branches in a repository. + public func listBranches(_ input: ListBranchesInput) throws -> ListBranchesOutput { + return try client.send(operation: "ListBranches", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a pull request in the specified repository. + public func createPullRequest(_ input: CreatePullRequestInput) throws -> CreatePullRequestOutput { + return try client.send(operation: "CreatePullRequest", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a repository. If a specified repository was already deleted, a null repository ID will be returned. Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository will fail. + public func deleteRepository(_ input: DeleteRepositoryInput) throws -> DeleteRepositoryOutput { + return try client.send(operation: "DeleteRepository", path: "/", httpMethod: "POST", input: input) + } + + /// Replaces the contents of the description of a pull request. + public func updatePullRequestDescription(_ input: UpdatePullRequestDescriptionInput) throws -> UpdatePullRequestDescriptionOutput { + return try client.send(operation: "UpdatePullRequestDescription", path: "/", httpMethod: "POST", input: input) + } + + /// Replaces all triggers for a repository. This can be used to create or delete triggers. + public func putRepositoryTriggers(_ input: PutRepositoryTriggersInput) throws -> PutRepositoryTriggersOutput { + return try client.send(operation: "PutRepositoryTriggers", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about a repository branch, including its name and the last commit ID. + public func getBranch(_ input: GetBranchInput) throws -> GetBranchOutput { + return try client.send(operation: "GetBranch", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about comments made on the comparison between two commits. + public func getCommentsForComparedCommit(_ input: GetCommentsForComparedCommitInput) throws -> GetCommentsForComparedCommitOutput { + return try client.send(operation: "GetCommentsForComparedCommit", path: "/", httpMethod: "POST", input: input) + } + + /// Updates the status of a pull request. + public func updatePullRequestStatus(_ input: UpdatePullRequestStatusInput) throws -> UpdatePullRequestStatusOutput { + return try client.send(operation: "UpdatePullRequestStatus", path: "/", httpMethod: "POST", input: input) + } + /// Returns information about one or more repositories. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a web page could expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a web page. public func batchGetRepositories(_ input: BatchGetRepositoriesInput) throws -> BatchGetRepositoriesOutput { return try client.send(operation: "BatchGetRepositories", path: "/", httpMethod: "POST", input: input) diff --git a/Sources/AWSSDKSwift/Services/codecommit/Codecommit_Error.swift b/Sources/AWSSDKSwift/Services/codecommit/Codecommit_Error.swift index 7f8022f6805..cbf3be3a3d5 100644 --- a/Sources/AWSSDKSwift/Services/codecommit/Codecommit_Error.swift +++ b/Sources/AWSSDKSwift/Services/codecommit/Codecommit_Error.swift @@ -4,6 +4,10 @@ import AWSSDKSwiftCore /// Error enum for Codecommit public enum CodecommitError: AWSErrorType { + case commentDoesNotExistException(message: String?) + case commentIdRequiredException(message: String?) + case invalidCommentIdException(message: String?) + case commentDeletedException(message: String?) case repositoryNameRequiredException(message: String?) case invalidRepositoryNameException(message: String?) case repositoryDoesNotExistException(message: String?) @@ -18,15 +22,24 @@ public enum CodecommitError: AWSErrorType { case encryptionKeyDisabledException(message: String?) case encryptionKeyNotFoundException(message: String?) case encryptionKeyUnavailableException(message: String?) + case defaultBranchCannotBeDeletedException(message: String?) case invalidContinuationTokenException(message: String?) case invalidMaxResultsException(message: String?) case commitRequiredException(message: String?) case invalidCommitException(message: String?) case invalidPathException(message: String?) case pathDoesNotExistException(message: String?) - case repositoryNameExistsException(message: String?) - case invalidRepositoryDescriptionException(message: String?) - case repositoryLimitExceededException(message: String?) + case pullRequestDoesNotExistException(message: String?) + case invalidPullRequestIdException(message: String?) + case pullRequestIdRequiredException(message: String?) + case titleRequiredException(message: String?) + case invalidTitleException(message: String?) + case pullRequestAlreadyClosedException(message: String?) + case mergeOptionRequiredException(message: String?) + case invalidMergeOptionException(message: String?) + case invalidDestinationCommitSpecifierException(message: String?) + case invalidSourceCommitSpecifierException(message: String?) + case tipsDivergenceExceededException(message: String?) case branchDoesNotExistException(message: String?) case invalidSortByException(message: String?) case invalidOrderException(message: String?) @@ -44,10 +57,47 @@ public enum CodecommitError: AWSErrorType { case repositoryTriggerBranchNameListRequiredException(message: String?) case repositoryTriggerEventsListRequiredException(message: String?) case commitIdDoesNotExistException(message: String?) + case clientRequestTokenRequiredException(message: String?) + case invalidClientRequestTokenException(message: String?) + case idempotencyParameterMismatchException(message: String?) + case commentContentRequiredException(message: String?) + case commentContentSizeLimitExceededException(message: String?) + case manualMergeRequiredException(message: String?) + case tipOfSourceReferenceIsDifferentException(message: String?) + case referenceDoesNotExistException(message: String?) + case repositoryNameExistsException(message: String?) + case invalidPullRequestStatusException(message: String?) + case invalidAuthorArnException(message: String?) + case authorDoesNotExistException(message: String?) case blobIdRequiredException(message: String?) case invalidBlobIdException(message: String?) case blobIdDoesNotExistException(message: String?) case fileTooLargeException(message: String?) + case repositoryNotAssociatedWithPullRequestException(message: String?) + case invalidFileLocationException(message: String?) + case invalidRelativeFileVersionEnumException(message: String?) + case pathRequiredException(message: String?) + case invalidFilePositionException(message: String?) + case beforeCommitIdAndAfterCommitIdAreSameException(message: String?) + case commentNotCreatedByCallerException(message: String?) + case invalidPullRequestEventTypeException(message: String?) + case invalidActorArnException(message: String?) + case actorDoesNotExistException(message: String?) + case invalidRepositoryDescriptionException(message: String?) + case repositoryLimitExceededException(message: String?) + case referenceNameRequiredException(message: String?) + case invalidReferenceNameException(message: String?) + case referenceTypeNotSupportedException(message: String?) + case invalidDescriptionException(message: String?) + case targetsRequiredException(message: String?) + case invalidTargetsException(message: String?) + case targetRequiredException(message: String?) + case invalidTargetException(message: String?) + case multipleRepositoriesInPullRequestException(message: String?) + case maximumOpenPullRequestsExceededException(message: String?) + case sourceAndDestinationAreSameException(message: String?) + case invalidPullRequestStatusUpdateException(message: String?) + case pullRequestStatusRequiredException(message: String?) case repositoryNamesRequiredException(message: String?) case maximumRepositoryNamesExceededException(message: String?) } @@ -59,6 +109,14 @@ extension CodecommitError { errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) } switch errorCode { + case "CommentDoesNotExistException": + self = .commentDoesNotExistException(message: message) + case "CommentIdRequiredException": + self = .commentIdRequiredException(message: message) + case "InvalidCommentIdException": + self = .invalidCommentIdException(message: message) + case "CommentDeletedException": + self = .commentDeletedException(message: message) case "RepositoryNameRequiredException": self = .repositoryNameRequiredException(message: message) case "InvalidRepositoryNameException": @@ -87,6 +145,8 @@ extension CodecommitError { self = .encryptionKeyNotFoundException(message: message) case "EncryptionKeyUnavailableException": self = .encryptionKeyUnavailableException(message: message) + case "DefaultBranchCannotBeDeletedException": + self = .defaultBranchCannotBeDeletedException(message: message) case "InvalidContinuationTokenException": self = .invalidContinuationTokenException(message: message) case "InvalidMaxResultsException": @@ -99,12 +159,28 @@ extension CodecommitError { self = .invalidPathException(message: message) case "PathDoesNotExistException": self = .pathDoesNotExistException(message: message) - case "RepositoryNameExistsException": - self = .repositoryNameExistsException(message: message) - case "InvalidRepositoryDescriptionException": - self = .invalidRepositoryDescriptionException(message: message) - case "RepositoryLimitExceededException": - self = .repositoryLimitExceededException(message: message) + case "PullRequestDoesNotExistException": + self = .pullRequestDoesNotExistException(message: message) + case "InvalidPullRequestIdException": + self = .invalidPullRequestIdException(message: message) + case "PullRequestIdRequiredException": + self = .pullRequestIdRequiredException(message: message) + case "TitleRequiredException": + self = .titleRequiredException(message: message) + case "InvalidTitleException": + self = .invalidTitleException(message: message) + case "PullRequestAlreadyClosedException": + self = .pullRequestAlreadyClosedException(message: message) + case "MergeOptionRequiredException": + self = .mergeOptionRequiredException(message: message) + case "InvalidMergeOptionException": + self = .invalidMergeOptionException(message: message) + case "InvalidDestinationCommitSpecifierException": + self = .invalidDestinationCommitSpecifierException(message: message) + case "InvalidSourceCommitSpecifierException": + self = .invalidSourceCommitSpecifierException(message: message) + case "TipsDivergenceExceededException": + self = .tipsDivergenceExceededException(message: message) case "BranchDoesNotExistException": self = .branchDoesNotExistException(message: message) case "InvalidSortByException": @@ -139,6 +215,30 @@ extension CodecommitError { self = .repositoryTriggerEventsListRequiredException(message: message) case "CommitIdDoesNotExistException": self = .commitIdDoesNotExistException(message: message) + case "ClientRequestTokenRequiredException": + self = .clientRequestTokenRequiredException(message: message) + case "InvalidClientRequestTokenException": + self = .invalidClientRequestTokenException(message: message) + case "IdempotencyParameterMismatchException": + self = .idempotencyParameterMismatchException(message: message) + case "CommentContentRequiredException": + self = .commentContentRequiredException(message: message) + case "CommentContentSizeLimitExceededException": + self = .commentContentSizeLimitExceededException(message: message) + case "ManualMergeRequiredException": + self = .manualMergeRequiredException(message: message) + case "TipOfSourceReferenceIsDifferentException": + self = .tipOfSourceReferenceIsDifferentException(message: message) + case "ReferenceDoesNotExistException": + self = .referenceDoesNotExistException(message: message) + case "RepositoryNameExistsException": + self = .repositoryNameExistsException(message: message) + case "InvalidPullRequestStatusException": + self = .invalidPullRequestStatusException(message: message) + case "InvalidAuthorArnException": + self = .invalidAuthorArnException(message: message) + case "AuthorDoesNotExistException": + self = .authorDoesNotExistException(message: message) case "BlobIdRequiredException": self = .blobIdRequiredException(message: message) case "InvalidBlobIdException": @@ -147,6 +247,56 @@ extension CodecommitError { self = .blobIdDoesNotExistException(message: message) case "FileTooLargeException": self = .fileTooLargeException(message: message) + case "RepositoryNotAssociatedWithPullRequestException": + self = .repositoryNotAssociatedWithPullRequestException(message: message) + case "InvalidFileLocationException": + self = .invalidFileLocationException(message: message) + case "InvalidRelativeFileVersionEnumException": + self = .invalidRelativeFileVersionEnumException(message: message) + case "PathRequiredException": + self = .pathRequiredException(message: message) + case "InvalidFilePositionException": + self = .invalidFilePositionException(message: message) + case "BeforeCommitIdAndAfterCommitIdAreSameException": + self = .beforeCommitIdAndAfterCommitIdAreSameException(message: message) + case "CommentNotCreatedByCallerException": + self = .commentNotCreatedByCallerException(message: message) + case "InvalidPullRequestEventTypeException": + self = .invalidPullRequestEventTypeException(message: message) + case "InvalidActorArnException": + self = .invalidActorArnException(message: message) + case "ActorDoesNotExistException": + self = .actorDoesNotExistException(message: message) + case "InvalidRepositoryDescriptionException": + self = .invalidRepositoryDescriptionException(message: message) + case "RepositoryLimitExceededException": + self = .repositoryLimitExceededException(message: message) + case "ReferenceNameRequiredException": + self = .referenceNameRequiredException(message: message) + case "InvalidReferenceNameException": + self = .invalidReferenceNameException(message: message) + case "ReferenceTypeNotSupportedException": + self = .referenceTypeNotSupportedException(message: message) + case "InvalidDescriptionException": + self = .invalidDescriptionException(message: message) + case "TargetsRequiredException": + self = .targetsRequiredException(message: message) + case "InvalidTargetsException": + self = .invalidTargetsException(message: message) + case "TargetRequiredException": + self = .targetRequiredException(message: message) + case "InvalidTargetException": + self = .invalidTargetException(message: message) + case "MultipleRepositoriesInPullRequestException": + self = .multipleRepositoriesInPullRequestException(message: message) + case "MaximumOpenPullRequestsExceededException": + self = .maximumOpenPullRequestsExceededException(message: message) + case "SourceAndDestinationAreSameException": + self = .sourceAndDestinationAreSameException(message: message) + case "InvalidPullRequestStatusUpdateException": + self = .invalidPullRequestStatusUpdateException(message: message) + case "PullRequestStatusRequiredException": + self = .pullRequestStatusRequiredException(message: message) case "RepositoryNamesRequiredException": self = .repositoryNamesRequiredException(message: message) case "MaximumRepositoryNamesExceededException": diff --git a/Sources/AWSSDKSwift/Services/codecommit/Codecommit_Shapes.swift b/Sources/AWSSDKSwift/Services/codecommit/Codecommit_Shapes.swift index 02bbe5082e1..5fa07193c0b 100644 --- a/Sources/AWSSDKSwift/Services/codecommit/Codecommit_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/codecommit/Codecommit_Shapes.swift @@ -5,8 +5,24 @@ import AWSSDKSwiftCore extension Codecommit { + public struct MergePullRequestByFastForwardOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequest", required: false, type: .structure) + ] + /// Information about the specified pull request, including information about the merge. + public let pullRequest: PullRequest? + + public init(pullRequest: PullRequest? = nil) { + self.pullRequest = pullRequest + } + + private enum CodingKeys: String, CodingKey { + case pullRequest = "pullRequest" + } + } + public struct ListRepositoriesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repositories", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -26,34 +42,44 @@ extension Codecommit { } } - public struct UserInfo: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "name", required: false, type: .string), - AWSShapeMember(label: "date", required: false, type: .string), - AWSShapeMember(label: "email", required: false, type: .string) + public struct ListPullRequestsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorArn", required: false, type: .string), + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer), + AWSShapeMember(label: "repositoryName", required: true, type: .string), + AWSShapeMember(label: "pullRequestStatus", required: false, type: .enum) ] - /// The name of the user who made the specified commit. - public let name: String? - /// The date when the specified commit was pushed to the repository. - public let date: String? - /// The email address associated with the user who made the commit, if any. - public let email: String? + /// Optional. The Amazon Resource Name (ARN) of the user who created the pull request. If used, this filters the results to pull requests created by that user. + public let authorArn: String? + /// An enumeration token that when provided in a request, returns the next batch of the results. + public let nextToken: String? + /// A non-negative integer used to limit the number of returned results. + public let maxResults: Int32? + /// The name of the repository for which you want to list pull requests. + public let repositoryName: String + /// Optional. The status of the pull request. If used, this refines the results to the pull requests that match the specified status. + public let pullRequestStatus: PullRequestStatusEnum? - public init(name: String? = nil, date: String? = nil, email: String? = nil) { - self.name = name - self.date = date - self.email = email + public init(authorArn: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil, repositoryName: String, pullRequestStatus: PullRequestStatusEnum? = nil) { + self.authorArn = authorArn + self.nextToken = nextToken + self.maxResults = maxResults + self.repositoryName = repositoryName + self.pullRequestStatus = pullRequestStatus } private enum CodingKeys: String, CodingKey { - case name = "name" - case date = "date" - case email = "email" + case authorArn = "authorArn" + case nextToken = "nextToken" + case maxResults = "maxResults" + case repositoryName = "repositoryName" + case pullRequestStatus = "pullRequestStatus" } } public struct BranchInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "branchName", required: false, type: .string), AWSShapeMember(label: "commitId", required: false, type: .string) ] @@ -73,8 +99,59 @@ extension Codecommit { } } + public struct CommentsForPullRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "pullRequestId", required: false, type: .string), + AWSShapeMember(label: "afterBlobId", required: false, type: .string), + AWSShapeMember(label: "afterCommitId", required: false, type: .string), + AWSShapeMember(label: "beforeBlobId", required: false, type: .string), + AWSShapeMember(label: "comments", required: false, type: .list), + AWSShapeMember(label: "beforeCommitId", required: false, type: .string) + ] + /// Location information about the comment on the pull request, including the file name, line number, and whether the version of the file where the comment was made is 'BEFORE' (destination branch) or 'AFTER' (source branch). + public let location: Location? + /// The name of the repository that contains the pull request. + public let repositoryName: String? + /// The system-generated ID of the pull request. + public let pullRequestId: String? + /// The full blob ID of the file on which you want to comment on the source commit. + public let afterBlobId: String? + /// he full commit ID of the commit that was the tip of the source branch at the time the comment was made. + public let afterCommitId: String? + /// The full blob ID of the file on which you want to comment on the destination commit. + public let beforeBlobId: String? + /// An array of comment objects. Each comment object contains information about a comment on the pull request. + public let comments: [Comment]? + /// The full commit ID of the commit that was the tip of the destination branch when the pull request was created. This commit will be superceded by the after commit in the source branch when and if you merge the source branch into the destination branch. + public let beforeCommitId: String? + + public init(location: Location? = nil, repositoryName: String? = nil, pullRequestId: String? = nil, afterBlobId: String? = nil, afterCommitId: String? = nil, beforeBlobId: String? = nil, comments: [Comment]? = nil, beforeCommitId: String? = nil) { + self.location = location + self.repositoryName = repositoryName + self.pullRequestId = pullRequestId + self.afterBlobId = afterBlobId + self.afterCommitId = afterCommitId + self.beforeBlobId = beforeBlobId + self.comments = comments + self.beforeCommitId = beforeCommitId + } + + private enum CodingKeys: String, CodingKey { + case location = "location" + case repositoryName = "repositoryName" + case pullRequestId = "pullRequestId" + case afterBlobId = "afterBlobId" + case afterCommitId = "afterCommitId" + case beforeBlobId = "beforeBlobId" + case comments = "comments" + case beforeCommitId = "beforeCommitId" + } + } + public struct GetCommitOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "commit", required: true, type: .structure) ] /// A commit data type object that contains information about the specified commit. @@ -89,85 +166,65 @@ extension Codecommit { } } - public struct DeleteRepositoryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "repositoryId", required: false, type: .string) + public struct DeleteCommentContentOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "comment", required: false, type: .structure) ] - /// The ID of the repository that was deleted. - public let repositoryId: String? + /// Information about the comment you just deleted. + public let comment: Comment? - public init(repositoryId: String? = nil) { - self.repositoryId = repositoryId + public init(comment: Comment? = nil) { + self.comment = comment } private enum CodingKeys: String, CodingKey { - case repositoryId = "repositoryId" + case comment = "comment" } } - public struct RepositoryMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "repositoryDescription", required: false, type: .string), - AWSShapeMember(label: "Arn", required: false, type: .string), + public struct PullRequestTarget: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "destinationReference", required: false, type: .string), + AWSShapeMember(label: "sourceCommit", required: false, type: .string), + AWSShapeMember(label: "mergeMetadata", required: false, type: .structure), AWSShapeMember(label: "repositoryName", required: false, type: .string), - AWSShapeMember(label: "creationDate", required: false, type: .timestamp), - AWSShapeMember(label: "cloneUrlSsh", required: false, type: .string), - AWSShapeMember(label: "accountId", required: false, type: .string), - AWSShapeMember(label: "cloneUrlHttp", required: false, type: .string), - AWSShapeMember(label: "repositoryId", required: false, type: .string), - AWSShapeMember(label: "lastModifiedDate", required: false, type: .timestamp), - AWSShapeMember(label: "defaultBranch", required: false, type: .string) + AWSShapeMember(label: "destinationCommit", required: false, type: .string), + AWSShapeMember(label: "sourceReference", required: false, type: .string) ] - /// A comment or description about the repository. - public let repositoryDescription: String? - /// The Amazon Resource Name (ARN) of the repository. - public let arn: String? - /// The repository's name. + /// The branch of the repository where the pull request changes will be merged into. Also known as the destination branch. + public let destinationReference: String? + /// The full commit ID of the tip of the source branch used to create the pull request. If the pull request branch is updated by a push while the pull request is open, the commit ID will change to reflect the new tip of the branch. + public let sourceCommit: String? + /// Returns metadata about the state of the merge, including whether the merge has been made. + public let mergeMetadata: MergeMetadata? + /// The name of the repository that contains the pull request source and destination branches. public let repositoryName: String? - /// The date and time the repository was created, in timestamp format. - public let creationDate: TimeStamp? - /// The URL to use for cloning the repository over SSH. - public let cloneUrlSsh: String? - /// The ID of the AWS account associated with the repository. - public let accountId: String? - /// The URL to use for cloning the repository over HTTPS. - public let cloneUrlHttp: String? - /// The ID of the repository. - public let repositoryId: String? - /// The date and time the repository was last modified, in timestamp format. - public let lastModifiedDate: TimeStamp? - /// The repository's default branch name. - public let defaultBranch: String? - - public init(repositoryDescription: String? = nil, arn: String? = nil, repositoryName: String? = nil, creationDate: TimeStamp? = nil, cloneUrlSsh: String? = nil, accountId: String? = nil, cloneUrlHttp: String? = nil, repositoryId: String? = nil, lastModifiedDate: TimeStamp? = nil, defaultBranch: String? = nil) { - self.repositoryDescription = repositoryDescription - self.arn = arn + /// The full commit ID that is the tip of the destination branch. This is the commit where the pull request was or will be merged. + public let destinationCommit: String? + /// The branch of the repository that contains the changes for the pull request. Also known as the source branch. + public let sourceReference: String? + + public init(destinationReference: String? = nil, sourceCommit: String? = nil, mergeMetadata: MergeMetadata? = nil, repositoryName: String? = nil, destinationCommit: String? = nil, sourceReference: String? = nil) { + self.destinationReference = destinationReference + self.sourceCommit = sourceCommit + self.mergeMetadata = mergeMetadata self.repositoryName = repositoryName - self.creationDate = creationDate - self.cloneUrlSsh = cloneUrlSsh - self.accountId = accountId - self.cloneUrlHttp = cloneUrlHttp - self.repositoryId = repositoryId - self.lastModifiedDate = lastModifiedDate - self.defaultBranch = defaultBranch + self.destinationCommit = destinationCommit + self.sourceReference = sourceReference } private enum CodingKeys: String, CodingKey { - case repositoryDescription = "repositoryDescription" - case arn = "Arn" + case destinationReference = "destinationReference" + case sourceCommit = "sourceCommit" + case mergeMetadata = "mergeMetadata" case repositoryName = "repositoryName" - case creationDate = "creationDate" - case cloneUrlSsh = "cloneUrlSsh" - case accountId = "accountId" - case cloneUrlHttp = "cloneUrlHttp" - case repositoryId = "repositoryId" - case lastModifiedDate = "lastModifiedDate" - case defaultBranch = "defaultBranch" + case destinationCommit = "destinationCommit" + case sourceReference = "sourceReference" } } public struct ListBranchesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "branches", required: false, type: .list) ] @@ -187,44 +244,8 @@ extension Codecommit { } } - public struct RepositoryTrigger: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "destinationArn", required: true, type: .string), - AWSShapeMember(label: "name", required: true, type: .string), - AWSShapeMember(label: "branches", required: false, type: .list), - AWSShapeMember(label: "customData", required: false, type: .string), - AWSShapeMember(label: "events", required: true, type: .list) - ] - /// The ARN of the resource that is the target for a trigger. For example, the ARN of a topic in Amazon Simple Notification Service (SNS). - public let destinationArn: String - /// The name of the trigger. - public let name: String - /// The branches that will be included in the trigger configuration. If no branches are specified, the trigger will apply to all branches. - public let branches: [String]? - /// Any custom data associated with the trigger that will be included in the information sent to the target of the trigger. - public let customData: String? - /// The repository events that will cause the trigger to run actions in another service, such as sending a notification through Amazon Simple Notification Service (SNS). The valid value "all" cannot be used with any other values. - public let events: [RepositoryTriggerEventEnum] - - public init(destinationArn: String, name: String, branches: [String]? = nil, customData: String? = nil, events: [RepositoryTriggerEventEnum]) { - self.destinationArn = destinationArn - self.name = name - self.branches = branches - self.customData = customData - self.events = events - } - - private enum CodingKeys: String, CodingKey { - case destinationArn = "destinationArn" - case name = "name" - case branches = "branches" - case customData = "customData" - case events = "events" - } - } - public struct BlobMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "blobId", required: false, type: .string), AWSShapeMember(label: "mode", required: false, type: .string), AWSShapeMember(label: "path", required: false, type: .string) @@ -250,16 +271,21 @@ extension Codecommit { } public struct Commit: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "parents", required: false, type: .list), + AWSShapeMember(label: "commitId", required: false, type: .string), + AWSShapeMember(label: "committer", required: false, type: .structure), AWSShapeMember(label: "message", required: false, type: .string), AWSShapeMember(label: "author", required: false, type: .structure), AWSShapeMember(label: "treeId", required: false, type: .string), - AWSShapeMember(label: "additionalData", required: false, type: .string), - AWSShapeMember(label: "committer", required: false, type: .structure) + AWSShapeMember(label: "additionalData", required: false, type: .string) ] /// The parent list for the specified commit. public let parents: [String]? + /// The full SHA of the specified commit. + public let commitId: String? + /// Information about the person who committed the specified commit, also known as the committer. Information includes the date in timestamp format with GMT offset, the name of the committer, and the email address for the committer, as configured in Git. For more information about the difference between an author and a committer in Git, see Viewing the Commit History in Pro Git by Scott Chacon and Ben Straub. + public let committer: UserInfo? /// The commit message associated with the specified commit. public let message: String? /// Information about the author of the specified commit. Information includes the date in timestamp format with GMT offset, the name of the author, and the email address for the author, as configured in Git. @@ -268,30 +294,46 @@ extension Codecommit { public let treeId: String? /// Any additional data associated with the specified commit. public let additionalData: String? - /// Information about the person who committed the specified commit, also known as the committer. Information includes the date in timestamp format with GMT offset, the name of the committer, and the email address for the committer, as configured in Git. For more information about the difference between an author and a committer in Git, see Viewing the Commit History in Pro Git by Scott Chacon and Ben Straub. - public let committer: UserInfo? - public init(parents: [String]? = nil, message: String? = nil, author: UserInfo? = nil, treeId: String? = nil, additionalData: String? = nil, committer: UserInfo? = nil) { + public init(parents: [String]? = nil, commitId: String? = nil, committer: UserInfo? = nil, message: String? = nil, author: UserInfo? = nil, treeId: String? = nil, additionalData: String? = nil) { self.parents = parents + self.commitId = commitId + self.committer = committer self.message = message self.author = author self.treeId = treeId self.additionalData = additionalData - self.committer = committer } private enum CodingKeys: String, CodingKey { case parents = "parents" + case commitId = "commitId" + case committer = "committer" case message = "message" case author = "author" case treeId = "treeId" case additionalData = "additionalData" - case committer = "committer" + } + } + + public struct GetRepositoryOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "repositoryMetadata", required: false, type: .structure) + ] + /// Information about the repository. + public let repositoryMetadata: RepositoryMetadata? + + public init(repositoryMetadata: RepositoryMetadata? = nil) { + self.repositoryMetadata = repositoryMetadata + } + + private enum CodingKeys: String, CodingKey { + case repositoryMetadata = "repositoryMetadata" } } public struct UpdateDefaultBranchInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "defaultBranchName", required: true, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string) ] @@ -311,51 +353,72 @@ extension Codecommit { } } + public struct PullRequestStatusChangedEventMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequestStatus", required: false, type: .enum) + ] + /// The changed status of the pull request. + public let pullRequestStatus: PullRequestStatusEnum? + + public init(pullRequestStatus: PullRequestStatusEnum? = nil) { + self.pullRequestStatus = pullRequestStatus + } + + private enum CodingKeys: String, CodingKey { + case pullRequestStatus = "pullRequestStatus" + } + } + public enum OrderEnum: String, CustomStringConvertible, Codable { case ascending = "ascending" case descending = "descending" public var description: String { return self.rawValue } } - public struct GetRepositoryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "repositoryMetadata", required: false, type: .structure) + public struct DescribePullRequestEventsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "pullRequestEvents", required: true, type: .list) ] - /// Information about the repository. - public let repositoryMetadata: RepositoryMetadata? + /// An enumeration token that can be used in a request to return the next batch of the results. + public let nextToken: String? + /// Information about the pull request events. + public let pullRequestEvents: [PullRequestEvent] - public init(repositoryMetadata: RepositoryMetadata? = nil) { - self.repositoryMetadata = repositoryMetadata + public init(nextToken: String? = nil, pullRequestEvents: [PullRequestEvent]) { + self.nextToken = nextToken + self.pullRequestEvents = pullRequestEvents } private enum CodingKeys: String, CodingKey { - case repositoryMetadata = "repositoryMetadata" + case nextToken = "nextToken" + case pullRequestEvents = "pullRequestEvents" } } - public struct TestRepositoryTriggersOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "successfulExecutions", required: false, type: .list), - AWSShapeMember(label: "failedExecutions", required: false, type: .list) + public struct UpdateCommentInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "content", required: true, type: .string), + AWSShapeMember(label: "commentId", required: true, type: .string) ] - /// The list of triggers that were successfully tested. This list provides the names of the triggers that were successfully tested, separated by commas. - public let successfulExecutions: [String]? - /// The list of triggers that were not able to be tested. This list provides the names of the triggers that could not be tested, separated by commas. - public let failedExecutions: [RepositoryTriggerExecutionFailure]? + /// The updated content with which you want to replace the existing content of the comment. + public let content: String + /// The system-generated ID of the comment you want to update. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest. + public let commentId: String - public init(successfulExecutions: [String]? = nil, failedExecutions: [RepositoryTriggerExecutionFailure]? = nil) { - self.successfulExecutions = successfulExecutions - self.failedExecutions = failedExecutions + public init(content: String, commentId: String) { + self.content = content + self.commentId = commentId } private enum CodingKeys: String, CodingKey { - case successfulExecutions = "successfulExecutions" - case failedExecutions = "failedExecutions" + case content = "content" + case commentId = "commentId" } } public struct TestRepositoryTriggersInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "triggers", required: true, type: .list), AWSShapeMember(label: "repositoryName", required: true, type: .string) ] @@ -375,15 +438,40 @@ extension Codecommit { } } - public enum ChangeTypeEnum: String, CustomStringConvertible, Codable { - case a = "A" - case m = "M" - case d = "D" - public var description: String { return self.rawValue } + public struct UpdatePullRequestDescriptionOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequest", required: true, type: .structure) + ] + /// Information about the updated pull request. + public let pullRequest: PullRequest + + public init(pullRequest: PullRequest) { + self.pullRequest = pullRequest + } + + private enum CodingKeys: String, CodingKey { + case pullRequest = "pullRequest" + } + } + + public struct GetPullRequestOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequest", required: true, type: .structure) + ] + /// Information about the specified pull request. + public let pullRequest: PullRequest + + public init(pullRequest: PullRequest) { + self.pullRequest = pullRequest + } + + private enum CodingKeys: String, CodingKey { + case pullRequest = "pullRequest" + } } public struct UpdateRepositoryDescriptionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repositoryName", required: true, type: .string), AWSShapeMember(label: "repositoryDescription", required: false, type: .string) ] @@ -404,7 +492,7 @@ extension Codecommit { } public struct PutRepositoryTriggersOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configurationId", required: false, type: .string) ] /// The system-generated unique ID for the create or update operation. @@ -414,13 +502,1006 @@ extension Codecommit { self.configurationId = configurationId } - private enum CodingKeys: String, CodingKey { - case configurationId = "configurationId" - } + private enum CodingKeys: String, CodingKey { + case configurationId = "configurationId" + } + } + + public struct Difference: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "changeType", required: false, type: .enum), + AWSShapeMember(label: "afterBlob", required: false, type: .structure), + AWSShapeMember(label: "beforeBlob", required: false, type: .structure) + ] + /// Whether the change type of the difference is an addition (A), deletion (D), or modification (M). + public let changeType: ChangeTypeEnum? + /// Information about an afterBlob data type object, including the ID, the file mode permission code, and the path. + public let afterBlob: BlobMetadata? + /// Information about a beforeBlob data type object, including the ID, the file mode permission code, and the path. + public let beforeBlob: BlobMetadata? + + public init(changeType: ChangeTypeEnum? = nil, afterBlob: BlobMetadata? = nil, beforeBlob: BlobMetadata? = nil) { + self.changeType = changeType + self.afterBlob = afterBlob + self.beforeBlob = beforeBlob + } + + private enum CodingKeys: String, CodingKey { + case changeType = "changeType" + case afterBlob = "afterBlob" + case beforeBlob = "beforeBlob" + } + } + + public struct UpdatePullRequestTitleOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequest", required: true, type: .structure) + ] + /// Information about the updated pull request. + public let pullRequest: PullRequest + + public init(pullRequest: PullRequest) { + self.pullRequest = pullRequest + } + + private enum CodingKeys: String, CodingKey { + case pullRequest = "pullRequest" + } + } + + public struct CreateBranchInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "branchName", required: true, type: .string), + AWSShapeMember(label: "commitId", required: true, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// The name of the new branch to create. + public let branchName: String + /// The ID of the commit to point the new branch to. + public let commitId: String + /// The name of the repository in which you want to create the new branch. + public let repositoryName: String + + public init(branchName: String, commitId: String, repositoryName: String) { + self.branchName = branchName + self.commitId = commitId + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case branchName = "branchName" + case commitId = "commitId" + case repositoryName = "repositoryName" + } + } + + public struct PullRequestMergedStateChangedEventMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "destinationReference", required: false, type: .string), + AWSShapeMember(label: "mergeMetadata", required: false, type: .structure), + AWSShapeMember(label: "repositoryName", required: false, type: .string) + ] + /// The name of the branch that the pull request will be merged into. + public let destinationReference: String? + /// Information about the merge state change event. + public let mergeMetadata: MergeMetadata? + /// The name of the repository where the pull request was created. + public let repositoryName: String? + + public init(destinationReference: String? = nil, mergeMetadata: MergeMetadata? = nil, repositoryName: String? = nil) { + self.destinationReference = destinationReference + self.mergeMetadata = mergeMetadata + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case destinationReference = "destinationReference" + case mergeMetadata = "mergeMetadata" + case repositoryName = "repositoryName" + } + } + + public struct DeleteRepositoryInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// The name of the repository to delete. + public let repositoryName: String + + public init(repositoryName: String) { + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case repositoryName = "repositoryName" + } + } + + public struct ListBranchesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// An enumeration token that allows the operation to batch the results. + public let nextToken: String? + /// The name of the repository that contains the branches. + public let repositoryName: String + + public init(nextToken: String? = nil, repositoryName: String) { + self.nextToken = nextToken + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case repositoryName = "repositoryName" + } + } + + public struct MergeMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "mergedBy", required: false, type: .string), + AWSShapeMember(label: "isMerged", required: false, type: .boolean) + ] + /// The Amazon Resource Name (ARN) of the user who merged the branches. + public let mergedBy: String? + /// A Boolean value indicating whether the merge has been made. + public let isMerged: Bool? + + public init(mergedBy: String? = nil, isMerged: Bool? = nil) { + self.mergedBy = mergedBy + self.isMerged = isMerged + } + + private enum CodingKeys: String, CodingKey { + case mergedBy = "mergedBy" + case isMerged = "isMerged" + } + } + + public struct GetBranchOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "branch", required: false, type: .structure) + ] + /// The name of the branch. + public let branch: BranchInfo? + + public init(branch: BranchInfo? = nil) { + self.branch = branch + } + + private enum CodingKeys: String, CodingKey { + case branch = "branch" + } + } + + public struct GetPullRequestInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequestId", required: true, type: .string) + ] + /// The system-generated ID of the pull request. To get this ID, use ListPullRequests. + public let pullRequestId: String + + public init(pullRequestId: String) { + self.pullRequestId = pullRequestId + } + + private enum CodingKeys: String, CodingKey { + case pullRequestId = "pullRequestId" + } + } + + public struct PullRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "creationDate", required: false, type: .timestamp), + AWSShapeMember(label: "pullRequestId", required: false, type: .string), + AWSShapeMember(label: "pullRequestTargets", required: false, type: .list), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "authorArn", required: false, type: .string), + AWSShapeMember(label: "title", required: false, type: .string), + AWSShapeMember(label: "clientRequestToken", required: false, type: .string), + AWSShapeMember(label: "lastActivityDate", required: false, type: .timestamp), + AWSShapeMember(label: "pullRequestStatus", required: false, type: .enum) + ] + /// The date and time the pull request was originally created, in timestamp format. + public let creationDate: TimeStamp? + /// The system-generated ID of the pull request. + public let pullRequestId: String? + /// The targets of the pull request, including the source branch and destination branch for the pull request. + public let pullRequestTargets: [PullRequestTarget]? + /// The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request. + public let description: String? + /// The Amazon Resource Name (ARN) of the user who created the pull request. + public let authorArn: String? + /// The user-defined title of the pull request. This title is displayed in the list of pull requests to other users of the repository. + public let title: String? + /// A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token. + public let clientRequestToken: String? + /// The day and time of the last user or system activity on the pull request, in timestamp format. + public let lastActivityDate: TimeStamp? + /// The status of the pull request. Pull request status can only change from OPEN to CLOSED. + public let pullRequestStatus: PullRequestStatusEnum? + + public init(creationDate: TimeStamp? = nil, pullRequestId: String? = nil, pullRequestTargets: [PullRequestTarget]? = nil, description: String? = nil, authorArn: String? = nil, title: String? = nil, clientRequestToken: String? = nil, lastActivityDate: TimeStamp? = nil, pullRequestStatus: PullRequestStatusEnum? = nil) { + self.creationDate = creationDate + self.pullRequestId = pullRequestId + self.pullRequestTargets = pullRequestTargets + self.description = description + self.authorArn = authorArn + self.title = title + self.clientRequestToken = clientRequestToken + self.lastActivityDate = lastActivityDate + self.pullRequestStatus = pullRequestStatus + } + + private enum CodingKeys: String, CodingKey { + case creationDate = "creationDate" + case pullRequestId = "pullRequestId" + case pullRequestTargets = "pullRequestTargets" + case description = "description" + case authorArn = "authorArn" + case title = "title" + case clientRequestToken = "clientRequestToken" + case lastActivityDate = "lastActivityDate" + case pullRequestStatus = "pullRequestStatus" + } + } + + public struct GetCommitInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "commitId", required: true, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// The commit ID. Commit IDs are the full SHA of the commit. + public let commitId: String + /// The name of the repository to which the commit was made. + public let repositoryName: String + + public init(commitId: String, repositoryName: String) { + self.commitId = commitId + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case commitId = "commitId" + case repositoryName = "repositoryName" + } + } + + public struct CreatePullRequestInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "targets", required: true, type: .list), + AWSShapeMember(label: "title", required: true, type: .string), + AWSShapeMember(label: "clientRequestToken", required: false, type: .string) + ] + /// A description of the pull request. + public let description: String? + /// The targets for the pull request, including the source of the code to be reviewed (the source branch), and the destination where the creator of the pull request intends the code to be merged after the pull request is closed (the destination branch). + public let targets: [Target] + /// The title of the pull request. This title will be used to identify the pull request to other users in the repository. + public let title: String + /// A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token. The AWS SDKs prepopulate client request tokens. If using an AWS SDK, you do not have to generate an idempotency token, as this will be done for you. + public let clientRequestToken: String? + + public init(description: String? = nil, targets: [Target], title: String, clientRequestToken: String? = nil) { + self.description = description + self.targets = targets + self.title = title + self.clientRequestToken = clientRequestToken + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case targets = "targets" + case title = "title" + case clientRequestToken = "clientRequestToken" + } + } + + public enum PullRequestEventType: String, CustomStringConvertible, Codable { + case pullRequestCreated = "PULL_REQUEST_CREATED" + case pullRequestStatusChanged = "PULL_REQUEST_STATUS_CHANGED" + case pullRequestSourceReferenceUpdated = "PULL_REQUEST_SOURCE_REFERENCE_UPDATED" + case pullRequestMergeStateChanged = "PULL_REQUEST_MERGE_STATE_CHANGED" + public var description: String { return self.rawValue } + } + + public struct GetRepositoryInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// The name of the repository to get information about. + public let repositoryName: String + + public init(repositoryName: String) { + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case repositoryName = "repositoryName" + } + } + + public struct UpdateRepositoryNameInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "oldName", required: true, type: .string), + AWSShapeMember(label: "newName", required: true, type: .string) + ] + /// The existing name of the repository. + public let oldName: String + /// The new name for the repository. + public let newName: String + + public init(oldName: String, newName: String) { + self.oldName = oldName + self.newName = newName + } + + private enum CodingKeys: String, CodingKey { + case oldName = "oldName" + case newName = "newName" + } + } + + public struct GetDifferencesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "differences", required: false, type: .list) + ] + /// An enumeration token that can be used in a request to return the next batch of the results. + public let nextToken: String? + /// A differences data type object that contains information about the differences, including whether the difference is added, modified, or deleted (A, D, M). + public let differences: [Difference]? + + public init(nextToken: String? = nil, differences: [Difference]? = nil) { + self.nextToken = nextToken + self.differences = differences + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case differences = "differences" + } + } + + public struct RepositoryTriggerExecutionFailure: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "failureMessage", required: false, type: .string), + AWSShapeMember(label: "trigger", required: false, type: .string) + ] + /// Additional message information about the trigger that did not run. + public let failureMessage: String? + /// The name of the trigger that did not run. + public let trigger: String? + + public init(failureMessage: String? = nil, trigger: String? = nil) { + self.failureMessage = failureMessage + self.trigger = trigger + } + + private enum CodingKeys: String, CodingKey { + case failureMessage = "failureMessage" + case trigger = "trigger" + } + } + + public struct MergePullRequestByFastForwardInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "sourceCommitId", required: false, type: .string), + AWSShapeMember(label: "pullRequestId", required: true, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID. + public let sourceCommitId: String? + /// The system-generated ID of the pull request. To get this ID, use ListPullRequests. + public let pullRequestId: String + /// The name of the repository where the pull request was created. + public let repositoryName: String + + public init(sourceCommitId: String? = nil, pullRequestId: String, repositoryName: String) { + self.sourceCommitId = sourceCommitId + self.pullRequestId = pullRequestId + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case sourceCommitId = "sourceCommitId" + case pullRequestId = "pullRequestId" + case repositoryName = "repositoryName" + } + } + + public struct DeleteBranchOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "deletedBranch", required: false, type: .structure) + ] + /// Information about the branch deleted by the operation, including the branch name and the commit ID that was the tip of the branch. + public let deletedBranch: BranchInfo? + + public init(deletedBranch: BranchInfo? = nil) { + self.deletedBranch = deletedBranch + } + + private enum CodingKeys: String, CodingKey { + case deletedBranch = "deletedBranch" + } + } + + public struct CreateRepositoryInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "repositoryName", required: true, type: .string), + AWSShapeMember(label: "repositoryDescription", required: false, type: .string) + ] + /// The name of the new repository to be created. The repository name must be unique across the calling AWS account. In addition, repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. For a full description of the limits on repository names, see Limits in the AWS CodeCommit User Guide. The suffix ".git" is prohibited. + public let repositoryName: String + /// A comment or description about the new repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a web page could expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a web page. + public let repositoryDescription: String? + + public init(repositoryName: String, repositoryDescription: String? = nil) { + self.repositoryName = repositoryName + self.repositoryDescription = repositoryDescription + } + + private enum CodingKeys: String, CodingKey { + case repositoryName = "repositoryName" + case repositoryDescription = "repositoryDescription" + } + } + + public struct GetCommentsForComparedCommitInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "beforeCommitId", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer), + AWSShapeMember(label: "repositoryName", required: true, type: .string), + AWSShapeMember(label: "afterCommitId", required: true, type: .string) + ] + /// An enumeration token that when provided in a request, returns the next batch of the results. + public let nextToken: String? + /// To establish the directionality of the comparison, the full commit ID of the 'before' commit. + public let beforeCommitId: String? + /// A non-negative integer used to limit the number of returned results. The default is 100 comments, and is configurable up to 500. + public let maxResults: Int32? + /// The name of the repository where you want to compare commits. + public let repositoryName: String + /// To establish the directionality of the comparison, the full commit ID of the 'after' commit. + public let afterCommitId: String + + public init(nextToken: String? = nil, beforeCommitId: String? = nil, maxResults: Int32? = nil, repositoryName: String, afterCommitId: String) { + self.nextToken = nextToken + self.beforeCommitId = beforeCommitId + self.maxResults = maxResults + self.repositoryName = repositoryName + self.afterCommitId = afterCommitId + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case beforeCommitId = "beforeCommitId" + case maxResults = "maxResults" + case repositoryName = "repositoryName" + case afterCommitId = "afterCommitId" + } + } + + public struct GetCommentsForPullRequestOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "commentsForPullRequestData", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// An array of comment objects on the pull request. + public let commentsForPullRequestData: [CommentsForPullRequest]? + /// An enumeration token that can be used in a request to return the next batch of the results. + public let nextToken: String? + + public init(commentsForPullRequestData: [CommentsForPullRequest]? = nil, nextToken: String? = nil) { + self.commentsForPullRequestData = commentsForPullRequestData + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case commentsForPullRequestData = "commentsForPullRequestData" + case nextToken = "nextToken" + } + } + + public struct BatchGetRepositoriesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "repositoryNames", required: true, type: .list) + ] + /// The names of the repositories to get information about. + public let repositoryNames: [String] + + public init(repositoryNames: [String]) { + self.repositoryNames = repositoryNames + } + + private enum CodingKeys: String, CodingKey { + case repositoryNames = "repositoryNames" + } + } + + public struct PostCommentForComparedCommitOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "afterBlobId", required: false, type: .string), + AWSShapeMember(label: "afterCommitId", required: false, type: .string), + AWSShapeMember(label: "beforeBlobId", required: false, type: .string), + AWSShapeMember(label: "comment", required: false, type: .structure), + AWSShapeMember(label: "beforeCommitId", required: false, type: .string) + ] + /// The location of the comment in the comparison between the two commits. + public let location: Location? + /// The name of the repository where you posted a comment on the comparison between commits. + public let repositoryName: String? + /// In the directionality you established, the blob ID of the 'after' blob. + public let afterBlobId: String? + /// In the directionality you established, the full commit ID of the 'after' commit. + public let afterCommitId: String? + /// In the directionality you established, the blob ID of the 'before' blob. + public let beforeBlobId: String? + /// The content of the comment you posted. + public let comment: Comment? + /// In the directionality you established, the full commit ID of the 'before' commit. + public let beforeCommitId: String? + + public init(location: Location? = nil, repositoryName: String? = nil, afterBlobId: String? = nil, afterCommitId: String? = nil, beforeBlobId: String? = nil, comment: Comment? = nil, beforeCommitId: String? = nil) { + self.location = location + self.repositoryName = repositoryName + self.afterBlobId = afterBlobId + self.afterCommitId = afterCommitId + self.beforeBlobId = beforeBlobId + self.comment = comment + self.beforeCommitId = beforeCommitId + } + + private enum CodingKeys: String, CodingKey { + case location = "location" + case repositoryName = "repositoryName" + case afterBlobId = "afterBlobId" + case afterCommitId = "afterCommitId" + case beforeBlobId = "beforeBlobId" + case comment = "comment" + case beforeCommitId = "beforeCommitId" + } + } + + public struct UpdatePullRequestStatusOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequest", required: true, type: .structure) + ] + /// Information about the pull request. + public let pullRequest: PullRequest + + public init(pullRequest: PullRequest) { + self.pullRequest = pullRequest + } + + private enum CodingKeys: String, CodingKey { + case pullRequest = "pullRequest" + } + } + + public struct Target: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "destinationReference", required: false, type: .string), + AWSShapeMember(label: "sourceReference", required: true, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// The branch of the repository where the pull request changes will be merged into. Also known as the destination branch. + public let destinationReference: String? + /// The branch of the repository that contains the changes for the pull request. Also known as the source branch. + public let sourceReference: String + /// The name of the repository that contains the pull request. + public let repositoryName: String + + public init(destinationReference: String? = nil, sourceReference: String, repositoryName: String) { + self.destinationReference = destinationReference + self.sourceReference = sourceReference + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case destinationReference = "destinationReference" + case sourceReference = "sourceReference" + case repositoryName = "repositoryName" + } + } + + public struct DeleteBranchInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "branchName", required: true, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// The name of the branch to delete. + public let branchName: String + /// The name of the repository that contains the branch to be deleted. + public let repositoryName: String + + public init(branchName: String, repositoryName: String) { + self.branchName = branchName + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case branchName = "branchName" + case repositoryName = "repositoryName" + } + } + + public struct GetCommentInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "commentId", required: true, type: .string) + ] + /// The unique, system-generated ID of the comment. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest. + public let commentId: String + + public init(commentId: String) { + self.commentId = commentId + } + + private enum CodingKeys: String, CodingKey { + case commentId = "commentId" + } + } + + public struct UserInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "date", required: false, type: .string), + AWSShapeMember(label: "email", required: false, type: .string) + ] + /// The name of the user who made the specified commit. + public let name: String? + /// The date when the specified commit was pushed to the repository. + public let date: String? + /// The email address associated with the user who made the commit, if any. + public let email: String? + + public init(name: String? = nil, date: String? = nil, email: String? = nil) { + self.name = name + self.date = date + self.email = email + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case date = "date" + case email = "email" + } + } + + public struct GetCommentOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "comment", required: false, type: .structure) + ] + /// The contents of the comment. + public let comment: Comment? + + public init(comment: Comment? = nil) { + self.comment = comment + } + + private enum CodingKeys: String, CodingKey { + case comment = "comment" + } + } + + public struct UpdatePullRequestStatusInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequestId", required: true, type: .string), + AWSShapeMember(label: "pullRequestStatus", required: true, type: .enum) + ] + /// The system-generated ID of the pull request. To get this ID, use ListPullRequests. + public let pullRequestId: String + /// The status of the pull request. The only valid operations are to update the status from OPEN to OPEN, OPEN to CLOSED or from from CLOSED to CLOSED. + public let pullRequestStatus: PullRequestStatusEnum + + public init(pullRequestId: String, pullRequestStatus: PullRequestStatusEnum) { + self.pullRequestId = pullRequestId + self.pullRequestStatus = pullRequestStatus + } + + private enum CodingKeys: String, CodingKey { + case pullRequestId = "pullRequestId" + case pullRequestStatus = "pullRequestStatus" + } + } + + public struct PostCommentForPullRequestOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "pullRequestId", required: false, type: .string), + AWSShapeMember(label: "afterBlobId", required: false, type: .string), + AWSShapeMember(label: "afterCommitId", required: false, type: .string), + AWSShapeMember(label: "beforeBlobId", required: false, type: .string), + AWSShapeMember(label: "comment", required: false, type: .structure), + AWSShapeMember(label: "beforeCommitId", required: false, type: .string) + ] + /// The location of the change where you posted your comment. + public let location: Location? + /// The name of the repository where you posted a comment on a pull request. + public let repositoryName: String? + /// The system-generated ID of the pull request. + public let pullRequestId: String? + /// In the directionality of the pull request, the blob ID of the 'after' blob. + public let afterBlobId: String? + /// The full commit ID of the commit in the destination branch where the pull request will be merged. + public let afterCommitId: String? + /// In the directionality of the pull request, the blob ID of the 'before' blob. + public let beforeBlobId: String? + /// The content of the comment you posted. + public let comment: Comment? + /// The full commit ID of the commit in the source branch used to create the pull request, or in the case of an updated pull request, the full commit ID of the commit used to update the pull request. + public let beforeCommitId: String? + + public init(location: Location? = nil, repositoryName: String? = nil, pullRequestId: String? = nil, afterBlobId: String? = nil, afterCommitId: String? = nil, beforeBlobId: String? = nil, comment: Comment? = nil, beforeCommitId: String? = nil) { + self.location = location + self.repositoryName = repositoryName + self.pullRequestId = pullRequestId + self.afterBlobId = afterBlobId + self.afterCommitId = afterCommitId + self.beforeBlobId = beforeBlobId + self.comment = comment + self.beforeCommitId = beforeCommitId + } + + private enum CodingKeys: String, CodingKey { + case location = "location" + case repositoryName = "repositoryName" + case pullRequestId = "pullRequestId" + case afterBlobId = "afterBlobId" + case afterCommitId = "afterCommitId" + case beforeBlobId = "beforeBlobId" + case comment = "comment" + case beforeCommitId = "beforeCommitId" + } + } + + public struct DeleteRepositoryOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "repositoryId", required: false, type: .string) + ] + /// The ID of the repository that was deleted. + public let repositoryId: String? + + public init(repositoryId: String? = nil) { + self.repositoryId = repositoryId + } + + private enum CodingKeys: String, CodingKey { + case repositoryId = "repositoryId" + } + } + + public struct RepositoryMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "repositoryDescription", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp), + AWSShapeMember(label: "cloneUrlSsh", required: false, type: .string), + AWSShapeMember(label: "accountId", required: false, type: .string), + AWSShapeMember(label: "cloneUrlHttp", required: false, type: .string), + AWSShapeMember(label: "repositoryId", required: false, type: .string), + AWSShapeMember(label: "lastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "defaultBranch", required: false, type: .string) + ] + /// A comment or description about the repository. + public let repositoryDescription: String? + /// The Amazon Resource Name (ARN) of the repository. + public let arn: String? + /// The repository's name. + public let repositoryName: String? + /// The date and time the repository was created, in timestamp format. + public let creationDate: TimeStamp? + /// The URL to use for cloning the repository over SSH. + public let cloneUrlSsh: String? + /// The ID of the AWS account associated with the repository. + public let accountId: String? + /// The URL to use for cloning the repository over HTTPS. + public let cloneUrlHttp: String? + /// The ID of the repository. + public let repositoryId: String? + /// The date and time the repository was last modified, in timestamp format. + public let lastModifiedDate: TimeStamp? + /// The repository's default branch name. + public let defaultBranch: String? + + public init(repositoryDescription: String? = nil, arn: String? = nil, repositoryName: String? = nil, creationDate: TimeStamp? = nil, cloneUrlSsh: String? = nil, accountId: String? = nil, cloneUrlHttp: String? = nil, repositoryId: String? = nil, lastModifiedDate: TimeStamp? = nil, defaultBranch: String? = nil) { + self.repositoryDescription = repositoryDescription + self.arn = arn + self.repositoryName = repositoryName + self.creationDate = creationDate + self.cloneUrlSsh = cloneUrlSsh + self.accountId = accountId + self.cloneUrlHttp = cloneUrlHttp + self.repositoryId = repositoryId + self.lastModifiedDate = lastModifiedDate + self.defaultBranch = defaultBranch + } + + private enum CodingKeys: String, CodingKey { + case repositoryDescription = "repositoryDescription" + case arn = "Arn" + case repositoryName = "repositoryName" + case creationDate = "creationDate" + case cloneUrlSsh = "cloneUrlSsh" + case accountId = "accountId" + case cloneUrlHttp = "cloneUrlHttp" + case repositoryId = "repositoryId" + case lastModifiedDate = "lastModifiedDate" + case defaultBranch = "defaultBranch" + } + } + + public struct PostCommentForComparedCommitInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "content", required: true, type: .string), + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "beforeCommitId", required: false, type: .string), + AWSShapeMember(label: "clientRequestToken", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string), + AWSShapeMember(label: "afterCommitId", required: true, type: .string) + ] + /// The content of the comment you want to make. + public let content: String + /// The location of the comparison where you want to comment. + public let location: Location? + /// To establish the directionality of the comparison, the full commit ID of the 'before' commit. + public let beforeCommitId: String? + /// A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token. + public let clientRequestToken: String? + /// The name of the repository where you want to post a comment on the comparison between commits. + public let repositoryName: String + /// To establish the directionality of the comparison, the full commit ID of the 'after' commit. + public let afterCommitId: String + + public init(content: String, location: Location? = nil, beforeCommitId: String? = nil, clientRequestToken: String? = nil, repositoryName: String, afterCommitId: String) { + self.content = content + self.location = location + self.beforeCommitId = beforeCommitId + self.clientRequestToken = clientRequestToken + self.repositoryName = repositoryName + self.afterCommitId = afterCommitId + } + + private enum CodingKeys: String, CodingKey { + case content = "content" + case location = "location" + case beforeCommitId = "beforeCommitId" + case clientRequestToken = "clientRequestToken" + case repositoryName = "repositoryName" + case afterCommitId = "afterCommitId" + } + } + + public struct RepositoryTrigger: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "destinationArn", required: true, type: .string), + AWSShapeMember(label: "name", required: true, type: .string), + AWSShapeMember(label: "branches", required: false, type: .list), + AWSShapeMember(label: "customData", required: false, type: .string), + AWSShapeMember(label: "events", required: true, type: .list) + ] + /// The ARN of the resource that is the target for a trigger. For example, the ARN of a topic in Amazon Simple Notification Service (SNS). + public let destinationArn: String + /// The name of the trigger. + public let name: String + /// The branches that will be included in the trigger configuration. If you specify an empty array, the trigger will apply to all branches. While no content is required in the array, you must include the array itself. + public let branches: [String]? + /// Any custom data associated with the trigger that will be included in the information sent to the target of the trigger. + public let customData: String? + /// The repository events that will cause the trigger to run actions in another service, such as sending a notification through Amazon Simple Notification Service (SNS). The valid value "all" cannot be used with any other values. + public let events: [RepositoryTriggerEventEnum] + + public init(destinationArn: String, name: String, branches: [String]? = nil, customData: String? = nil, events: [RepositoryTriggerEventEnum]) { + self.destinationArn = destinationArn + self.name = name + self.branches = branches + self.customData = customData + self.events = events + } + + private enum CodingKeys: String, CodingKey { + case destinationArn = "destinationArn" + case name = "name" + case branches = "branches" + case customData = "customData" + case events = "events" + } + } + + public struct TestRepositoryTriggersOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "successfulExecutions", required: false, type: .list), + AWSShapeMember(label: "failedExecutions", required: false, type: .list) + ] + /// The list of triggers that were successfully tested. This list provides the names of the triggers that were successfully tested, separated by commas. + public let successfulExecutions: [String]? + /// The list of triggers that were not able to be tested. This list provides the names of the triggers that could not be tested, separated by commas. + public let failedExecutions: [RepositoryTriggerExecutionFailure]? + + public init(successfulExecutions: [String]? = nil, failedExecutions: [RepositoryTriggerExecutionFailure]? = nil) { + self.successfulExecutions = successfulExecutions + self.failedExecutions = failedExecutions + } + + private enum CodingKeys: String, CodingKey { + case successfulExecutions = "successfulExecutions" + case failedExecutions = "failedExecutions" + } + } + + public struct Comment: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "content", required: false, type: .string), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp), + AWSShapeMember(label: "deleted", required: false, type: .boolean), + AWSShapeMember(label: "commentId", required: false, type: .string), + AWSShapeMember(label: "authorArn", required: false, type: .string), + AWSShapeMember(label: "clientRequestToken", required: false, type: .string), + AWSShapeMember(label: "lastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "inReplyTo", required: false, type: .string) + ] + /// The content of the comment. + public let content: String? + /// The date and time the comment was created, in timestamp format. + public let creationDate: TimeStamp? + /// A Boolean value indicating whether the comment has been deleted. + public let deleted: Bool? + /// The system-generated comment ID. + public let commentId: String? + /// The Amazon Resource Name (ARN) of the person who posted the comment. + public let authorArn: String? + /// A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token. + public let clientRequestToken: String? + /// The date and time the comment was most recently modified, in timestamp format. + public let lastModifiedDate: TimeStamp? + /// The ID of the comment for which this comment is a reply, if any. + public let inReplyTo: String? + + public init(content: String? = nil, creationDate: TimeStamp? = nil, deleted: Bool? = nil, commentId: String? = nil, authorArn: String? = nil, clientRequestToken: String? = nil, lastModifiedDate: TimeStamp? = nil, inReplyTo: String? = nil) { + self.content = content + self.creationDate = creationDate + self.deleted = deleted + self.commentId = commentId + self.authorArn = authorArn + self.clientRequestToken = clientRequestToken + self.lastModifiedDate = lastModifiedDate + self.inReplyTo = inReplyTo + } + + private enum CodingKeys: String, CodingKey { + case content = "content" + case creationDate = "creationDate" + case deleted = "deleted" + case commentId = "commentId" + case authorArn = "authorArn" + case clientRequestToken = "clientRequestToken" + case lastModifiedDate = "lastModifiedDate" + case inReplyTo = "inReplyTo" + } + } + + public enum ChangeTypeEnum: String, CustomStringConvertible, Codable { + case a = "A" + case m = "M" + case d = "D" + public var description: String { return self.rawValue } + } + + public enum PullRequestStatusEnum: String, CustomStringConvertible, Codable { + case open = "OPEN" + case closed = "CLOSED" + public var description: String { return self.rawValue } } public struct GetBranchInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "branchName", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: false, type: .string) ] @@ -441,7 +1522,7 @@ extension Codecommit { } public struct CreateRepositoryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repositoryMetadata", required: false, type: .structure) ] /// Information about the newly created repository. @@ -462,34 +1543,19 @@ extension Codecommit { public var description: String { return self.rawValue } } - public struct Difference: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "changeType", required: false, type: .enum), - AWSShapeMember(label: "afterBlob", required: false, type: .structure), - AWSShapeMember(label: "beforeBlob", required: false, type: .structure) - ] - /// Whether the change type of the difference is an addition (A), deletion (D), or modification (M). - public let changeType: ChangeTypeEnum? - /// Information about an afterBlob data type object, including the ID, the file mode permission code, and the path. - public let afterBlob: BlobMetadata? - /// Information about a beforeBlob data type object, including the ID, the file mode permission code, and the path. - public let beforeBlob: BlobMetadata? - - public init(changeType: ChangeTypeEnum? = nil, afterBlob: BlobMetadata? = nil, beforeBlob: BlobMetadata? = nil) { - self.changeType = changeType - self.afterBlob = afterBlob - self.beforeBlob = beforeBlob - } + public enum MergeOptionTypeEnum: String, CustomStringConvertible, Codable { + case fastForwardMerge = "FAST_FORWARD_MERGE" + public var description: String { return self.rawValue } + } - private enum CodingKeys: String, CodingKey { - case changeType = "changeType" - case afterBlob = "afterBlob" - case beforeBlob = "beforeBlob" - } + public enum RelativeFileVersionEnum: String, CustomStringConvertible, Codable { + case before = "BEFORE" + case after = "AFTER" + public var description: String { return self.rawValue } } public struct RepositoryNameIdPair: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repositoryId", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: false, type: .string) ] @@ -509,6 +1575,98 @@ extension Codecommit { } } + public struct PostCommentForPullRequestInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "content", required: true, type: .string), + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "repositoryName", required: true, type: .string), + AWSShapeMember(label: "pullRequestId", required: true, type: .string), + AWSShapeMember(label: "afterCommitId", required: true, type: .string), + AWSShapeMember(label: "beforeCommitId", required: true, type: .string), + AWSShapeMember(label: "clientRequestToken", required: false, type: .string) + ] + /// The content of your comment on the change. + public let content: String + /// The location of the change where you want to post your comment. If no location is provided, the comment will be posted as a general comment on the pull request difference between the before commit ID and the after commit ID. + public let location: Location? + /// The name of the repository where you want to post a comment on a pull request. + public let repositoryName: String + /// The system-generated ID of the pull request. To get this ID, use ListPullRequests. + public let pullRequestId: String + /// The full commit ID of the commit in the source branch that is the current tip of the branch for the pull request when you post the comment. + public let afterCommitId: String + /// The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created. + public let beforeCommitId: String + /// A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token. + public let clientRequestToken: String? + + public init(content: String, location: Location? = nil, repositoryName: String, pullRequestId: String, afterCommitId: String, beforeCommitId: String, clientRequestToken: String? = nil) { + self.content = content + self.location = location + self.repositoryName = repositoryName + self.pullRequestId = pullRequestId + self.afterCommitId = afterCommitId + self.beforeCommitId = beforeCommitId + self.clientRequestToken = clientRequestToken + } + + private enum CodingKeys: String, CodingKey { + case content = "content" + case location = "location" + case repositoryName = "repositoryName" + case pullRequestId = "pullRequestId" + case afterCommitId = "afterCommitId" + case beforeCommitId = "beforeCommitId" + case clientRequestToken = "clientRequestToken" + } + } + + public struct PullRequestEvent: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequestSourceReferenceUpdatedEventMetadata", required: false, type: .structure), + AWSShapeMember(label: "pullRequestStatusChangedEventMetadata", required: false, type: .structure), + AWSShapeMember(label: "pullRequestId", required: false, type: .string), + AWSShapeMember(label: "actorArn", required: false, type: .string), + AWSShapeMember(label: "pullRequestMergedStateChangedEventMetadata", required: false, type: .structure), + AWSShapeMember(label: "eventDate", required: false, type: .timestamp), + AWSShapeMember(label: "pullRequestEventType", required: false, type: .enum) + ] + /// Information about the updated source branch for the pull request event. + public let pullRequestSourceReferenceUpdatedEventMetadata: PullRequestSourceReferenceUpdatedEventMetadata? + /// Information about the change in status for the pull request event. + public let pullRequestStatusChangedEventMetadata: PullRequestStatusChangedEventMetadata? + /// The system-generated ID of the pull request. + public let pullRequestId: String? + /// The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with additional commits or changing the status of a pull request. + public let actorArn: String? + /// Information about the change in mergability state for the pull request event. + public let pullRequestMergedStateChangedEventMetadata: PullRequestMergedStateChangedEventMetadata? + /// The day and time of the pull request event, in timestamp format. + public let eventDate: TimeStamp? + /// The type of the pull request event, for example a status change event (PULL_REQUEST_STATUS_CHANGED) or update event (PULL_REQUEST_SOURCE_REFERENCE_UPDATED). + public let pullRequestEventType: PullRequestEventType? + + public init(pullRequestSourceReferenceUpdatedEventMetadata: PullRequestSourceReferenceUpdatedEventMetadata? = nil, pullRequestStatusChangedEventMetadata: PullRequestStatusChangedEventMetadata? = nil, pullRequestId: String? = nil, actorArn: String? = nil, pullRequestMergedStateChangedEventMetadata: PullRequestMergedStateChangedEventMetadata? = nil, eventDate: TimeStamp? = nil, pullRequestEventType: PullRequestEventType? = nil) { + self.pullRequestSourceReferenceUpdatedEventMetadata = pullRequestSourceReferenceUpdatedEventMetadata + self.pullRequestStatusChangedEventMetadata = pullRequestStatusChangedEventMetadata + self.pullRequestId = pullRequestId + self.actorArn = actorArn + self.pullRequestMergedStateChangedEventMetadata = pullRequestMergedStateChangedEventMetadata + self.eventDate = eventDate + self.pullRequestEventType = pullRequestEventType + } + + private enum CodingKeys: String, CodingKey { + case pullRequestSourceReferenceUpdatedEventMetadata = "pullRequestSourceReferenceUpdatedEventMetadata" + case pullRequestStatusChangedEventMetadata = "pullRequestStatusChangedEventMetadata" + case pullRequestId = "pullRequestId" + case actorArn = "actorArn" + case pullRequestMergedStateChangedEventMetadata = "pullRequestMergedStateChangedEventMetadata" + case eventDate = "eventDate" + case pullRequestEventType = "pullRequestEventType" + } + } + public enum RepositoryTriggerEventEnum: String, CustomStringConvertible, Codable { case all = "all" case updatereference = "updateReference" @@ -518,7 +1676,7 @@ extension Codecommit { } public struct GetDifferencesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "afterCommitSpecifier", required: true, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string), AWSShapeMember(label: "beforeCommitSpecifier", required: false, type: .string), @@ -563,124 +1721,181 @@ extension Codecommit { } } - public struct CreateBranchInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "branchName", required: true, type: .string), - AWSShapeMember(label: "commitId", required: true, type: .string), - AWSShapeMember(label: "repositoryName", required: true, type: .string) + public struct UpdateCommentOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "comment", required: false, type: .structure) ] - /// The name of the new branch to create. - public let branchName: String - /// The ID of the commit to point the new branch to. - public let commitId: String - /// The name of the repository in which you want to create the new branch. - public let repositoryName: String + /// Information about the updated comment. + public let comment: Comment? - public init(branchName: String, commitId: String, repositoryName: String) { - self.branchName = branchName - self.commitId = commitId - self.repositoryName = repositoryName + public init(comment: Comment? = nil) { + self.comment = comment } private enum CodingKeys: String, CodingKey { - case branchName = "branchName" - case commitId = "commitId" - case repositoryName = "repositoryName" + case comment = "comment" } } - public struct DeleteRepositoryInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "repositoryName", required: true, type: .string) + public struct GetMergeConflictsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "mergeOption", required: true, type: .enum), + AWSShapeMember(label: "sourceCommitSpecifier", required: true, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string), + AWSShapeMember(label: "destinationCommitSpecifier", required: true, type: .string) ] - /// The name of the repository to delete. + /// The merge option or strategy you want to use to merge the code. The only valid value is FAST_FORWARD_MERGE. + public let mergeOption: MergeOptionTypeEnum + /// The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, a branch name or a full commit ID. + public let sourceCommitSpecifier: String + /// The name of the repository where the pull request was created. public let repositoryName: String + /// The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, a branch name or a full commit ID. + public let destinationCommitSpecifier: String - public init(repositoryName: String) { + public init(mergeOption: MergeOptionTypeEnum, sourceCommitSpecifier: String, repositoryName: String, destinationCommitSpecifier: String) { + self.mergeOption = mergeOption + self.sourceCommitSpecifier = sourceCommitSpecifier self.repositoryName = repositoryName + self.destinationCommitSpecifier = destinationCommitSpecifier } private enum CodingKeys: String, CodingKey { + case mergeOption = "mergeOption" + case sourceCommitSpecifier = "sourceCommitSpecifier" case repositoryName = "repositoryName" + case destinationCommitSpecifier = "destinationCommitSpecifier" } } - public struct ListBranchesInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextToken", required: false, type: .string), - AWSShapeMember(label: "repositoryName", required: true, type: .string) + public struct CreatePullRequestOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequest", required: true, type: .structure) ] - /// An enumeration token that allows the operation to batch the results. - public let nextToken: String? - /// The name of the repository that contains the branches. - public let repositoryName: String + /// Information about the newly created pull request. + public let pullRequest: PullRequest - public init(nextToken: String? = nil, repositoryName: String) { - self.nextToken = nextToken - self.repositoryName = repositoryName + public init(pullRequest: PullRequest) { + self.pullRequest = pullRequest } private enum CodingKeys: String, CodingKey { - case nextToken = "nextToken" - case repositoryName = "repositoryName" + case pullRequest = "pullRequest" } } - public struct GetBranchOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "branch", required: false, type: .structure) + public struct PostCommentReplyOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "comment", required: false, type: .structure) ] - /// The name of the branch. - public let branch: BranchInfo? + /// Information about the reply to a comment. + public let comment: Comment? - public init(branch: BranchInfo? = nil) { - self.branch = branch + public init(comment: Comment? = nil) { + self.comment = comment } private enum CodingKeys: String, CodingKey { - case branch = "branch" + case comment = "comment" } } - public struct GetCommitInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "commitId", required: true, type: .string), - AWSShapeMember(label: "repositoryName", required: true, type: .string) + public struct PostCommentReplyInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "content", required: true, type: .string), + AWSShapeMember(label: "clientRequestToken", required: false, type: .string), + AWSShapeMember(label: "inReplyTo", required: true, type: .string) ] - /// The commit ID. - public let commitId: String - /// The name of the repository to which the commit was made. - public let repositoryName: String + /// The contents of your reply to a comment. + public let content: String + /// A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token. + public let clientRequestToken: String? + /// The system-generated ID of the comment to which you want to reply. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest. + public let inReplyTo: String + + public init(content: String, clientRequestToken: String? = nil, inReplyTo: String) { + self.content = content + self.clientRequestToken = clientRequestToken + self.inReplyTo = inReplyTo + } - public init(commitId: String, repositoryName: String) { - self.commitId = commitId - self.repositoryName = repositoryName + private enum CodingKeys: String, CodingKey { + case content = "content" + case clientRequestToken = "clientRequestToken" + case inReplyTo = "inReplyTo" + } + } + + public struct DeleteCommentContentInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "commentId", required: true, type: .string) + ] + /// The unique, system-generated ID of the comment. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest. + public let commentId: String + + public init(commentId: String) { + self.commentId = commentId } private enum CodingKeys: String, CodingKey { - case commitId = "commitId" - case repositoryName = "repositoryName" + case commentId = "commentId" } } - public struct GetRepositoryInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "repositoryName", required: true, type: .string) + public struct PullRequestSourceReferenceUpdatedEventMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "afterCommitId", required: false, type: .string), + AWSShapeMember(label: "beforeCommitId", required: false, type: .string) ] - /// The name of the repository to get information about. - public let repositoryName: String + /// The name of the repository where the pull request was updated. + public let repositoryName: String? + /// The full commit ID of the commit in the source branch that was the tip of the branch at the time the pull request was updated. + public let afterCommitId: String? + /// The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was updated. + public let beforeCommitId: String? - public init(repositoryName: String) { + public init(repositoryName: String? = nil, afterCommitId: String? = nil, beforeCommitId: String? = nil) { self.repositoryName = repositoryName + self.afterCommitId = afterCommitId + self.beforeCommitId = beforeCommitId } private enum CodingKeys: String, CodingKey { case repositoryName = "repositoryName" + case afterCommitId = "afterCommitId" + case beforeCommitId = "beforeCommitId" + } + } + + public struct GetMergeConflictsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "sourceCommitId", required: true, type: .string), + AWSShapeMember(label: "destinationCommitId", required: true, type: .string), + AWSShapeMember(label: "mergeable", required: true, type: .boolean) + ] + /// The commit ID of the source commit specifier that was used in the merge evaluation. + public let sourceCommitId: String + /// The commit ID of the destination commit specifier that was used in the merge evaluation. + public let destinationCommitId: String + /// A Boolean value that indicates whether the code is mergable by the specified merge option. + public let mergeable: Bool + + public init(sourceCommitId: String, destinationCommitId: String, mergeable: Bool) { + self.sourceCommitId = sourceCommitId + self.destinationCommitId = destinationCommitId + self.mergeable = mergeable + } + + private enum CodingKeys: String, CodingKey { + case sourceCommitId = "sourceCommitId" + case destinationCommitId = "destinationCommitId" + case mergeable = "mergeable" } } public struct GetRepositoryTriggersOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configurationId", required: false, type: .string), AWSShapeMember(label: "triggers", required: false, type: .list) ] @@ -701,7 +1916,7 @@ extension Codecommit { } public struct GetRepositoryTriggersInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repositoryName", required: true, type: .string) ] /// The name of the repository for which the trigger is configured. @@ -716,29 +1931,29 @@ extension Codecommit { } } - public struct UpdateRepositoryNameInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "oldName", required: true, type: .string), - AWSShapeMember(label: "newName", required: true, type: .string) + public struct GetCommentsForComparedCommitOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "commentsForComparedCommitData", required: false, type: .list) ] - /// The existing name of the repository. - public let oldName: String - /// The new name for the repository. - public let newName: String + /// An enumeration token that can be used in a request to return the next batch of the results. + public let nextToken: String? + /// A list of comment objects on the compared commit. + public let commentsForComparedCommitData: [CommentsForComparedCommit]? - public init(oldName: String, newName: String) { - self.oldName = oldName - self.newName = newName + public init(nextToken: String? = nil, commentsForComparedCommitData: [CommentsForComparedCommit]? = nil) { + self.nextToken = nextToken + self.commentsForComparedCommitData = commentsForComparedCommitData } private enum CodingKeys: String, CodingKey { - case oldName = "oldName" - case newName = "newName" + case nextToken = "nextToken" + case commentsForComparedCommitData = "commentsForComparedCommitData" } } public struct BatchGetRepositoriesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repositories", required: false, type: .list), AWSShapeMember(label: "repositoriesNotFound", required: false, type: .list) ] @@ -758,29 +1973,137 @@ extension Codecommit { } } - public struct GetDifferencesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "differences", required: false, type: .list) + public struct DescribePullRequestEventsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequestEventType", required: false, type: .enum), + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "actorArn", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer), + AWSShapeMember(label: "pullRequestId", required: true, type: .string) ] - /// An enumeration token that can be used in a request to return the next batch of the results. + /// Optional. The pull request event type about which you want to return information. + public let pullRequestEventType: PullRequestEventType? + /// An enumeration token that when provided in a request, returns the next batch of the results. public let nextToken: String? - /// A differences data type object that contains information about the differences, including whether the difference is added, modified, or deleted (A, D, M). - public let differences: [Difference]? + /// The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with additional commits or changing the status of a pull request. + public let actorArn: String? + /// A non-negative integer used to limit the number of returned results. The default is 100 events, which is also the maximum number of events that can be returned in a result. + public let maxResults: Int32? + /// The system-generated ID of the pull request. To get this ID, use ListPullRequests. + public let pullRequestId: String - public init(nextToken: String? = nil, differences: [Difference]? = nil) { + public init(pullRequestEventType: PullRequestEventType? = nil, nextToken: String? = nil, actorArn: String? = nil, maxResults: Int32? = nil, pullRequestId: String) { + self.pullRequestEventType = pullRequestEventType self.nextToken = nextToken - self.differences = differences + self.actorArn = actorArn + self.maxResults = maxResults + self.pullRequestId = pullRequestId } private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case differences = "differences" + case pullRequestEventType = "pullRequestEventType" + case nextToken = "nextToken" + case actorArn = "actorArn" + case maxResults = "maxResults" + case pullRequestId = "pullRequestId" + } + } + + public struct ListPullRequestsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "pullRequestIds", required: true, type: .list) + ] + /// An enumeration token that when provided in a request, returns the next batch of the results. + public let nextToken: String? + /// The system-generated IDs of the pull requests. + public let pullRequestIds: [String] + + public init(nextToken: String? = nil, pullRequestIds: [String]) { + self.nextToken = nextToken + self.pullRequestIds = pullRequestIds + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case pullRequestIds = "pullRequestIds" + } + } + + public struct Location: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "filePosition", required: false, type: .long), + AWSShapeMember(label: "relativeFileVersion", required: false, type: .enum), + AWSShapeMember(label: "filePath", required: false, type: .string) + ] + /// The position of a change within a compared file, in line number format. + public let filePosition: Int64? + /// In a comparison of commits or a pull request, whether the change is in the 'before' or 'after' of that comparison. + public let relativeFileVersion: RelativeFileVersionEnum? + /// The name of the file being compared, including its extension and subdirectory, if any. + public let filePath: String? + + public init(filePosition: Int64? = nil, relativeFileVersion: RelativeFileVersionEnum? = nil, filePath: String? = nil) { + self.filePosition = filePosition + self.relativeFileVersion = relativeFileVersion + self.filePath = filePath + } + + private enum CodingKeys: String, CodingKey { + case filePosition = "filePosition" + case relativeFileVersion = "relativeFileVersion" + case filePath = "filePath" + } + } + + public struct CommentsForComparedCommit: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "afterBlobId", required: false, type: .string), + AWSShapeMember(label: "afterCommitId", required: false, type: .string), + AWSShapeMember(label: "beforeBlobId", required: false, type: .string), + AWSShapeMember(label: "comments", required: false, type: .list), + AWSShapeMember(label: "beforeCommitId", required: false, type: .string) + ] + /// Location information about the comment on the comparison, including the file name, line number, and whether the version of the file where the comment was made is 'BEFORE' or 'AFTER'. + public let location: Location? + /// The name of the repository that contains the compared commits. + public let repositoryName: String? + /// The full blob ID of the commit used to establish the 'after' of the comparison. + public let afterBlobId: String? + /// The full commit ID of the commit used to establish the 'after' of the comparison. + public let afterCommitId: String? + /// The full blob ID of the commit used to establish the 'before' of the comparison. + public let beforeBlobId: String? + /// An array of comment objects. Each comment object contains information about a comment on the comparison between commits. + public let comments: [Comment]? + /// The full commit ID of the commit used to establish the 'before' of the comparison. + public let beforeCommitId: String? + + public init(location: Location? = nil, repositoryName: String? = nil, afterBlobId: String? = nil, afterCommitId: String? = nil, beforeBlobId: String? = nil, comments: [Comment]? = nil, beforeCommitId: String? = nil) { + self.location = location + self.repositoryName = repositoryName + self.afterBlobId = afterBlobId + self.afterCommitId = afterCommitId + self.beforeBlobId = beforeBlobId + self.comments = comments + self.beforeCommitId = beforeCommitId + } + + private enum CodingKeys: String, CodingKey { + case location = "location" + case repositoryName = "repositoryName" + case afterBlobId = "afterBlobId" + case afterCommitId = "afterCommitId" + case beforeBlobId = "beforeBlobId" + case comments = "comments" + case beforeCommitId = "beforeCommitId" } } public struct ListRepositoriesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "sortBy", required: false, type: .enum), AWSShapeMember(label: "order", required: false, type: .enum), AWSShapeMember(label: "nextToken", required: false, type: .string) @@ -806,7 +2129,7 @@ extension Codecommit { } public struct GetBlobOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "content", required: true, type: .blob) ] /// The content of the blob, usually a file. @@ -821,29 +2144,70 @@ extension Codecommit { } } - public struct RepositoryTriggerExecutionFailure: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "failureMessage", required: false, type: .string), - AWSShapeMember(label: "trigger", required: false, type: .string) + public struct GetCommentsForPullRequestInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "beforeCommitId", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer), + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "pullRequestId", required: true, type: .string), + AWSShapeMember(label: "afterCommitId", required: false, type: .string) ] - /// Additional message information about the trigger that did not run. - public let failureMessage: String? - /// The name of the trigger that did not run. - public let trigger: String? + /// An enumeration token that when provided in a request, returns the next batch of the results. + public let nextToken: String? + /// The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created. + public let beforeCommitId: String? + /// A non-negative integer used to limit the number of returned results. The default is 100 comments. You can return up to 500 comments with a single request. + public let maxResults: Int32? + /// The name of the repository that contains the pull request. + public let repositoryName: String? + /// The system-generated ID of the pull request. To get this ID, use ListPullRequests. + public let pullRequestId: String + /// The full commit ID of the commit in the source branch that was the tip of the branch at the time the comment was made. + public let afterCommitId: String? - public init(failureMessage: String? = nil, trigger: String? = nil) { - self.failureMessage = failureMessage - self.trigger = trigger + public init(nextToken: String? = nil, beforeCommitId: String? = nil, maxResults: Int32? = nil, repositoryName: String? = nil, pullRequestId: String, afterCommitId: String? = nil) { + self.nextToken = nextToken + self.beforeCommitId = beforeCommitId + self.maxResults = maxResults + self.repositoryName = repositoryName + self.pullRequestId = pullRequestId + self.afterCommitId = afterCommitId } private enum CodingKeys: String, CodingKey { - case failureMessage = "failureMessage" - case trigger = "trigger" + case nextToken = "nextToken" + case beforeCommitId = "beforeCommitId" + case maxResults = "maxResults" + case repositoryName = "repositoryName" + case pullRequestId = "pullRequestId" + case afterCommitId = "afterCommitId" + } + } + + public struct UpdatePullRequestTitleInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pullRequestId", required: true, type: .string), + AWSShapeMember(label: "title", required: true, type: .string) + ] + /// The system-generated ID of the pull request. To get this ID, use ListPullRequests. + public let pullRequestId: String + /// The updated title of the pull request. This will replace the existing title. + public let title: String + + public init(pullRequestId: String, title: String) { + self.pullRequestId = pullRequestId + self.title = title + } + + private enum CodingKeys: String, CodingKey { + case pullRequestId = "pullRequestId" + case title = "title" } } public struct GetBlobInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "blobId", required: true, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string) ] @@ -863,29 +2227,8 @@ extension Codecommit { } } - public struct CreateRepositoryInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "repositoryName", required: true, type: .string), - AWSShapeMember(label: "repositoryDescription", required: false, type: .string) - ] - /// The name of the new repository to be created. The repository name must be unique across the calling AWS account. In addition, repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. For a full description of the limits on repository names, see Limits in the AWS CodeCommit User Guide. The suffix ".git" is prohibited. - public let repositoryName: String - /// A comment or description about the new repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a web page could expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a web page. - public let repositoryDescription: String? - - public init(repositoryName: String, repositoryDescription: String? = nil) { - self.repositoryName = repositoryName - self.repositoryDescription = repositoryDescription - } - - private enum CodingKeys: String, CodingKey { - case repositoryName = "repositoryName" - case repositoryDescription = "repositoryDescription" - } - } - public struct PutRepositoryTriggersInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "triggers", required: true, type: .list), AWSShapeMember(label: "repositoryName", required: true, type: .string) ] @@ -905,19 +2248,24 @@ extension Codecommit { } } - public struct BatchGetRepositoriesInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "repositoryNames", required: true, type: .list) + public struct UpdatePullRequestDescriptionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: true, type: .string), + AWSShapeMember(label: "pullRequestId", required: true, type: .string) ] - /// The names of the repositories to get information about. - public let repositoryNames: [String] + /// The updated content of the description for the pull request. This content will replace the existing description. + public let description: String + /// The system-generated ID of the pull request. To get this ID, use ListPullRequests. + public let pullRequestId: String - public init(repositoryNames: [String]) { - self.repositoryNames = repositoryNames + public init(description: String, pullRequestId: String) { + self.description = description + self.pullRequestId = pullRequestId } private enum CodingKeys: String, CodingKey { - case repositoryNames = "repositoryNames" + case description = "description" + case pullRequestId = "pullRequestId" } } diff --git a/Sources/AWSSDKSwift/Services/codedeploy/Codedeploy_Error.swift b/Sources/AWSSDKSwift/Services/codedeploy/Codedeploy_Error.swift index 837ff7700c1..470bb8db99c 100644 --- a/Sources/AWSSDKSwift/Services/codedeploy/Codedeploy_Error.swift +++ b/Sources/AWSSDKSwift/Services/codedeploy/Codedeploy_Error.swift @@ -50,6 +50,9 @@ public enum CodedeployError: AWSErrorType { case invalidLoadBalancerInfoException(message: String?) case invalidDeploymentStyleException(message: String?) case invalidBlueGreenDeploymentConfigurationException(message: String?) + case invalidEC2TagCombinationException(message: String?) + case invalidOnPremisesTagCombinationException(message: String?) + case tagSetListLimitExceededException(message: String?) case revisionDoesNotExistException(message: String?) case revisionRequiredException(message: String?) case invalidRevisionException(message: String?) @@ -183,6 +186,12 @@ extension CodedeployError { self = .invalidDeploymentStyleException(message: message) case "InvalidBlueGreenDeploymentConfigurationException": self = .invalidBlueGreenDeploymentConfigurationException(message: message) + case "InvalidEC2TagCombinationException": + self = .invalidEC2TagCombinationException(message: message) + case "InvalidOnPremisesTagCombinationException": + self = .invalidOnPremisesTagCombinationException(message: message) + case "TagSetListLimitExceededException": + self = .tagSetListLimitExceededException(message: message) case "RevisionDoesNotExistException": self = .revisionDoesNotExistException(message: message) case "RevisionRequiredException": diff --git a/Sources/AWSSDKSwift/Services/codedeploy/Codedeploy_Shapes.swift b/Sources/AWSSDKSwift/Services/codedeploy/Codedeploy_Shapes.swift index c48f904a9cc..ecadfdac04c 100644 --- a/Sources/AWSSDKSwift/Services/codedeploy/Codedeploy_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/codedeploy/Codedeploy_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Codedeploy { public struct RevisionLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "s3Location", required: false, type: .structure), AWSShapeMember(label: "gitHubLocation", required: false, type: .structure), AWSShapeMember(label: "revisionType", required: false, type: .enum) @@ -32,7 +32,7 @@ extension Codedeploy { } public struct GetDeploymentConfigOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentConfigInfo", required: false, type: .structure) ] /// Information about the deployment configuration. @@ -54,7 +54,7 @@ extension Codedeploy { } public struct CreateDeploymentOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentId", required: false, type: .string) ] /// A unique deployment ID. @@ -70,7 +70,7 @@ extension Codedeploy { } public struct ListGitHubAccountTokenNamesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// An identifier returned from the previous ListGitHubAccountTokenNames call. It can be used to return the next set of names in the list. @@ -86,7 +86,7 @@ extension Codedeploy { } public struct GetDeploymentOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentInfo", required: false, type: .structure) ] /// Information about the deployment. @@ -102,7 +102,7 @@ extension Codedeploy { } public struct SkipWaitTimeForInstanceTerminationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentId", required: false, type: .string) ] /// The ID of the blue/green deployment for which you want to skip the instance termination wait time. @@ -118,7 +118,7 @@ extension Codedeploy { } public struct BatchGetDeploymentInstancesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instancesSummary", required: false, type: .list), AWSShapeMember(label: "errorMessage", required: false, type: .string) ] @@ -139,7 +139,7 @@ extension Codedeploy { } public struct GetDeploymentInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentId", required: true, type: .string) ] /// A deployment ID associated with the applicable IAM user or AWS account. @@ -155,7 +155,7 @@ extension Codedeploy { } public struct DeploymentStyle: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentType", required: false, type: .enum), AWSShapeMember(label: "deploymentOption", required: false, type: .enum) ] @@ -176,7 +176,7 @@ extension Codedeploy { } public struct DeploymentInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentGroupName", required: false, type: .string), AWSShapeMember(label: "loadBalancerInfo", required: false, type: .structure), AWSShapeMember(label: "creator", required: false, type: .enum), @@ -325,7 +325,7 @@ extension Codedeploy { } public struct BatchGetApplicationRevisionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revisions", required: true, type: .list), AWSShapeMember(label: "applicationName", required: true, type: .string) ] @@ -346,7 +346,7 @@ extension Codedeploy { } public struct TimeRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "start", required: false, type: .timestamp), AWSShapeMember(label: "end", required: false, type: .timestamp) ] @@ -367,7 +367,7 @@ extension Codedeploy { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -388,7 +388,7 @@ extension Codedeploy { } public struct BatchGetOnPremisesInstancesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceNames", required: false, type: .list) ] /// The names of the on-premises instances about which to get information. @@ -410,7 +410,7 @@ extension Codedeploy { } public struct TagFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) @@ -443,7 +443,7 @@ extension Codedeploy { } public struct ErrorInformation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "code", required: false, type: .enum), AWSShapeMember(label: "message", required: false, type: .string) ] @@ -464,7 +464,7 @@ extension Codedeploy { } public struct ListApplicationRevisionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "sortOrder", required: false, type: .enum), AWSShapeMember(label: "s3KeyPrefix", required: false, type: .string), @@ -510,7 +510,7 @@ extension Codedeploy { } public struct BatchGetDeploymentsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentsInfo", required: false, type: .list) ] /// Information about the deployments. @@ -526,7 +526,7 @@ extension Codedeploy { } public struct CreateApplicationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "applicationName", required: true, type: .string) ] /// The name of the application. This name must be unique with the applicable IAM user or AWS account. @@ -542,7 +542,7 @@ extension Codedeploy { } public struct UpdateDeploymentGroupOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "hooksNotCleanedUp", required: false, type: .list) ] /// If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the AWS account. If the output contains data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the AWS account. @@ -558,7 +558,7 @@ extension Codedeploy { } public struct Alarm: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string) ] /// The name of the alarm. Maximum length is 255 characters. Each alarm name can be used only once in a list of alarms. @@ -574,7 +574,7 @@ extension Codedeploy { } public struct CreateDeploymentConfigOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentConfigId", required: false, type: .string) ] /// A unique deployment configuration ID. @@ -590,7 +590,7 @@ extension Codedeploy { } public struct GetOnPremisesInstanceOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceInfo", required: false, type: .structure) ] /// Information about the on-premises instance. @@ -606,7 +606,7 @@ extension Codedeploy { } public struct GetDeploymentInstanceOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceSummary", required: false, type: .structure) ] /// Information about the instance. @@ -622,7 +622,7 @@ extension Codedeploy { } public struct DeploymentReadyOption: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "actionOnTimeout", required: false, type: .enum), AWSShapeMember(label: "waitTimeInMinutes", required: false, type: .integer) ] @@ -643,7 +643,7 @@ extension Codedeploy { } public struct RollbackInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rollbackDeploymentId", required: false, type: .string), AWSShapeMember(label: "rollbackTriggeringDeploymentId", required: false, type: .string), AWSShapeMember(label: "rollbackMessage", required: false, type: .string) @@ -668,8 +668,24 @@ extension Codedeploy { } } + public struct TargetGroupInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string) + ] + /// For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with. For in-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes. + public let name: String? + + public init(name: String? = nil) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + } + } + public struct ListDeploymentsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "createTimeRange", required: false, type: .structure), AWSShapeMember(label: "deploymentGroupName", required: false, type: .string), @@ -705,7 +721,7 @@ extension Codedeploy { } public struct BatchGetDeploymentsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentIds", required: false, type: .list) ] /// A list of deployment IDs, separated by spaces. @@ -727,7 +743,7 @@ extension Codedeploy { } public struct DeleteDeploymentGroupOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "hooksNotCleanedUp", required: false, type: .list) ] /// If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group. If the output contains data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group. @@ -743,7 +759,7 @@ extension Codedeploy { } public struct ListApplicationRevisionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revisions", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -771,7 +787,7 @@ extension Codedeploy { } public struct ListOnPremisesInstancesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceNames", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -792,7 +808,7 @@ extension Codedeploy { } public struct ListDeploymentConfigsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// An identifier returned from the previous list deployment configurations call. It can be used to return the next set of deployment configurations in the list. @@ -814,7 +830,7 @@ extension Codedeploy { } public struct BatchGetApplicationsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "applicationsInfo", required: false, type: .list) ] /// Information about the applications. @@ -840,7 +856,7 @@ extension Codedeploy { } public struct BlueGreenDeploymentConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "terminateBlueInstancesOnDeploymentSuccess", required: false, type: .structure), AWSShapeMember(label: "greenFleetProvisioningOption", required: false, type: .structure), AWSShapeMember(label: "deploymentReadyOption", required: false, type: .structure) @@ -866,7 +882,7 @@ extension Codedeploy { } public struct BatchGetDeploymentGroupsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentGroupsInfo", required: false, type: .list), AWSShapeMember(label: "errorMessage", required: false, type: .string) ] @@ -887,7 +903,7 @@ extension Codedeploy { } public struct ContinueDeploymentInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentId", required: false, type: .string) ] /// The deployment ID of the blue/green deployment for which you want to start rerouting traffic to the replacement environment. @@ -903,7 +919,7 @@ extension Codedeploy { } public struct DeleteDeploymentConfigInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentConfigName", required: true, type: .string) ] /// The name of a deployment configuration associated with the applicable IAM user or AWS account. @@ -919,7 +935,7 @@ extension Codedeploy { } public struct AutoScalingGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "hook", required: false, type: .string) ] @@ -940,7 +956,7 @@ extension Codedeploy { } public struct ListDeploymentGroupsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "applicationName", required: true, type: .string) ] @@ -961,7 +977,7 @@ extension Codedeploy { } public struct ListDeploymentInstancesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceStatusFilter", required: false, type: .list), AWSShapeMember(label: "instanceTypeFilter", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -1025,7 +1041,7 @@ extension Codedeploy { } public struct DeleteApplicationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "applicationName", required: true, type: .string) ] /// The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account. @@ -1041,31 +1057,37 @@ extension Codedeploy { } public struct CreateDeploymentGroupInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentGroupName", required: true, type: .string), AWSShapeMember(label: "serviceRoleArn", required: true, type: .string), + AWSShapeMember(label: "ec2TagSet", required: false, type: .structure), AWSShapeMember(label: "loadBalancerInfo", required: false, type: .structure), AWSShapeMember(label: "alarmConfiguration", required: false, type: .structure), AWSShapeMember(label: "blueGreenDeploymentConfiguration", required: false, type: .structure), + AWSShapeMember(label: "onPremisesTagSet", required: false, type: .structure), AWSShapeMember(label: "applicationName", required: true, type: .string), AWSShapeMember(label: "autoScalingGroups", required: false, type: .list), AWSShapeMember(label: "deploymentConfigName", required: false, type: .string), AWSShapeMember(label: "triggerConfigurations", required: false, type: .list), AWSShapeMember(label: "deploymentStyle", required: false, type: .structure), - AWSShapeMember(label: "ec2TagFilters", required: false, type: .list), AWSShapeMember(label: "onPremisesInstanceTagFilters", required: false, type: .list), + AWSShapeMember(label: "ec2TagFilters", required: false, type: .list), AWSShapeMember(label: "autoRollbackConfiguration", required: false, type: .structure) ] /// The name of a new deployment group for the specified application. public let deploymentGroupName: String /// A service role ARN that allows AWS CodeDeploy to act on the user's behalf when interacting with AWS services. public let serviceRoleArn: String + /// Information about groups of tags applied to EC2 instances. The deployment group will include only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters. + public let ec2TagSet: EC2TagSet? /// Information about the load balancer used in a deployment. public let loadBalancerInfo: LoadBalancerInfo? /// Information to add about Amazon CloudWatch alarms when the deployment group is created. public let alarmConfiguration: AlarmConfiguration? /// Information about blue/green deployment options for a deployment group. public let blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration? + /// Information about groups of tags applied to on-premises instances. The deployment group will include only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters. + public let onPremisesTagSet: OnPremisesTagSet? /// The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account. public let applicationName: String /// A list of associated Auto Scaling groups. @@ -1076,42 +1098,46 @@ extension Codedeploy { public let triggerConfigurations: [TriggerConfig]? /// Information about the type of deployment, in-place or blue/green, that you want to run and whether to route deployment traffic behind a load balancer. public let deploymentStyle: DeploymentStyle? - /// The Amazon EC2 tags on which to filter. The deployment group will include EC2 instances with any of the specified tags. - public let ec2TagFilters: [EC2TagFilter]? - /// The on-premises instance tags on which to filter. The deployment group will include on-premises instances with any of the specified tags. + /// The on-premises instance tags on which to filter. The deployment group will include on-premises instances with any of the specified tags. Cannot be used in the same call as OnPremisesTagSet. public let onPremisesInstanceTagFilters: [TagFilter]? + /// The Amazon EC2 tags on which to filter. The deployment group will include EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet. + public let ec2TagFilters: [EC2TagFilter]? /// Configuration information for an automatic rollback that is added when a deployment group is created. public let autoRollbackConfiguration: AutoRollbackConfiguration? - public init(deploymentGroupName: String, serviceRoleArn: String, loadBalancerInfo: LoadBalancerInfo? = nil, alarmConfiguration: AlarmConfiguration? = nil, blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration? = nil, applicationName: String, autoScalingGroups: [String]? = nil, deploymentConfigName: String? = nil, triggerConfigurations: [TriggerConfig]? = nil, deploymentStyle: DeploymentStyle? = nil, ec2TagFilters: [EC2TagFilter]? = nil, onPremisesInstanceTagFilters: [TagFilter]? = nil, autoRollbackConfiguration: AutoRollbackConfiguration? = nil) { + public init(deploymentGroupName: String, serviceRoleArn: String, ec2TagSet: EC2TagSet? = nil, loadBalancerInfo: LoadBalancerInfo? = nil, alarmConfiguration: AlarmConfiguration? = nil, blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration? = nil, onPremisesTagSet: OnPremisesTagSet? = nil, applicationName: String, autoScalingGroups: [String]? = nil, deploymentConfigName: String? = nil, triggerConfigurations: [TriggerConfig]? = nil, deploymentStyle: DeploymentStyle? = nil, onPremisesInstanceTagFilters: [TagFilter]? = nil, ec2TagFilters: [EC2TagFilter]? = nil, autoRollbackConfiguration: AutoRollbackConfiguration? = nil) { self.deploymentGroupName = deploymentGroupName self.serviceRoleArn = serviceRoleArn + self.ec2TagSet = ec2TagSet self.loadBalancerInfo = loadBalancerInfo self.alarmConfiguration = alarmConfiguration self.blueGreenDeploymentConfiguration = blueGreenDeploymentConfiguration + self.onPremisesTagSet = onPremisesTagSet self.applicationName = applicationName self.autoScalingGroups = autoScalingGroups self.deploymentConfigName = deploymentConfigName self.triggerConfigurations = triggerConfigurations self.deploymentStyle = deploymentStyle - self.ec2TagFilters = ec2TagFilters self.onPremisesInstanceTagFilters = onPremisesInstanceTagFilters + self.ec2TagFilters = ec2TagFilters self.autoRollbackConfiguration = autoRollbackConfiguration } private enum CodingKeys: String, CodingKey { case deploymentGroupName = "deploymentGroupName" case serviceRoleArn = "serviceRoleArn" + case ec2TagSet = "ec2TagSet" case loadBalancerInfo = "loadBalancerInfo" case alarmConfiguration = "alarmConfiguration" case blueGreenDeploymentConfiguration = "blueGreenDeploymentConfiguration" + case onPremisesTagSet = "onPremisesTagSet" case applicationName = "applicationName" case autoScalingGroups = "autoScalingGroups" case deploymentConfigName = "deploymentConfigName" case triggerConfigurations = "triggerConfigurations" case deploymentStyle = "deploymentStyle" - case ec2TagFilters = "ec2TagFilters" case onPremisesInstanceTagFilters = "onPremisesInstanceTagFilters" + case ec2TagFilters = "ec2TagFilters" case autoRollbackConfiguration = "autoRollbackConfiguration" } } @@ -1121,23 +1147,28 @@ extension Codedeploy { } public struct LoadBalancerInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "targetGroupInfoList", required: false, type: .list), AWSShapeMember(label: "elbInfoList", required: false, type: .list) ] - /// An array containing information about the load balancer in Elastic Load Balancing to use in a deployment. + /// An array containing information about the target group to use for load balancing in a deployment. In Elastic Load Balancing, target groups are used with Application Load Balancers. + public let targetGroupInfoList: [TargetGroupInfo]? + /// An array containing information about the load balancer to use for load balancing in a deployment. In Elastic Load Balancing, load balancers are used with Classic Load Balancers. public let elbInfoList: [ELBInfo]? - public init(elbInfoList: [ELBInfo]? = nil) { + public init(targetGroupInfoList: [TargetGroupInfo]? = nil, elbInfoList: [ELBInfo]? = nil) { + self.targetGroupInfoList = targetGroupInfoList self.elbInfoList = elbInfoList } private enum CodingKeys: String, CodingKey { + case targetGroupInfoList = "targetGroupInfoList" case elbInfoList = "elbInfoList" } } public struct BatchGetDeploymentInstancesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentId", required: true, type: .string), AWSShapeMember(label: "instanceIds", required: true, type: .list) ] @@ -1158,7 +1189,7 @@ extension Codedeploy { } public struct BatchGetOnPremisesInstancesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceInfos", required: false, type: .list) ] /// Information about the on-premises instances. @@ -1184,7 +1215,7 @@ extension Codedeploy { } public struct StopDeploymentOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "statusMessage", required: false, type: .string) ] @@ -1204,8 +1235,24 @@ extension Codedeploy { } } + public struct OnPremisesTagSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "onPremisesTagSetList", required: false, type: .list) + ] + /// A list containing other lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list. + public let onPremisesTagSetList: [[TagFilter]]? + + public init(onPremisesTagSetList: [[TagFilter]]? = nil) { + self.onPremisesTagSetList = onPremisesTagSetList + } + + private enum CodingKeys: String, CodingKey { + case onPremisesTagSetList = "onPremisesTagSetList" + } + } + public struct AutoRollbackConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "events", required: false, type: .list), AWSShapeMember(label: "enabled", required: false, type: .boolean) ] @@ -1226,7 +1273,7 @@ extension Codedeploy { } public struct ListDeploymentGroupsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentGroups", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "applicationName", required: false, type: .string) @@ -1259,7 +1306,7 @@ extension Codedeploy { } public struct AddTagsToOnPremisesInstancesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: true, type: .list), AWSShapeMember(label: "instanceNames", required: true, type: .list) ] @@ -1291,7 +1338,7 @@ extension Codedeploy { } public struct ListDeploymentConfigsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "deploymentConfigsList", required: false, type: .list) ] @@ -1312,7 +1359,7 @@ extension Codedeploy { } public struct GitHubLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "commitId", required: false, type: .string), AWSShapeMember(label: "repository", required: false, type: .string) ] @@ -1333,16 +1380,16 @@ extension Codedeploy { } public struct CreateDeploymentConfigInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentConfigName", required: true, type: .string), - AWSShapeMember(label: "minimumHealthyHosts", required: false, type: .structure) + AWSShapeMember(label: "minimumHealthyHosts", required: true, type: .structure) ] /// The name of the deployment configuration to create. public let deploymentConfigName: String /// The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value. The type parameter takes either of the following values: HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value. FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. The value parameter takes an integer. For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95. - public let minimumHealthyHosts: MinimumHealthyHosts? + public let minimumHealthyHosts: MinimumHealthyHosts - public init(deploymentConfigName: String, minimumHealthyHosts: MinimumHealthyHosts? = nil) { + public init(deploymentConfigName: String, minimumHealthyHosts: MinimumHealthyHosts) { self.deploymentConfigName = deploymentConfigName self.minimumHealthyHosts = minimumHealthyHosts } @@ -1354,7 +1401,7 @@ extension Codedeploy { } public struct ListOnPremisesInstancesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tagFilters", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "registrationStatus", required: false, type: .enum) @@ -1380,7 +1427,7 @@ extension Codedeploy { } public struct RegisterApplicationRevisionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "revision", required: true, type: .structure), AWSShapeMember(label: "applicationName", required: true, type: .string) @@ -1406,7 +1453,7 @@ extension Codedeploy { } public struct CreateApplicationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "applicationId", required: false, type: .string) ] /// A unique application ID. @@ -1422,7 +1469,7 @@ extension Codedeploy { } public struct RemoveTagsFromOnPremisesInstancesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: true, type: .list), AWSShapeMember(label: "instanceNames", required: true, type: .list) ] @@ -1443,7 +1490,7 @@ extension Codedeploy { } public struct RevisionInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "genericRevisionInfo", required: false, type: .structure), AWSShapeMember(label: "revisionLocation", required: false, type: .structure) ] @@ -1464,7 +1511,7 @@ extension Codedeploy { } public struct EC2TagFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) @@ -1490,14 +1537,16 @@ extension Codedeploy { } public struct DeploymentGroupInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lastSuccessfulDeployment", required: false, type: .structure), AWSShapeMember(label: "deploymentGroupName", required: false, type: .string), AWSShapeMember(label: "serviceRoleArn", required: false, type: .string), + AWSShapeMember(label: "ec2TagSet", required: false, type: .structure), AWSShapeMember(label: "loadBalancerInfo", required: false, type: .structure), AWSShapeMember(label: "deploymentGroupId", required: false, type: .string), AWSShapeMember(label: "alarmConfiguration", required: false, type: .structure), AWSShapeMember(label: "blueGreenDeploymentConfiguration", required: false, type: .structure), + AWSShapeMember(label: "onPremisesTagSet", required: false, type: .structure), AWSShapeMember(label: "applicationName", required: false, type: .string), AWSShapeMember(label: "autoScalingGroups", required: false, type: .list), AWSShapeMember(label: "deploymentConfigName", required: false, type: .string), @@ -1515,6 +1564,8 @@ extension Codedeploy { public let deploymentGroupName: String? /// A service role ARN. public let serviceRoleArn: String? + /// Information about groups of tags applied to an EC2 instance. The deployment group includes only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters. + public let ec2TagSet: EC2TagSet? /// Information about the load balancer to use in a deployment. public let loadBalancerInfo: LoadBalancerInfo? /// The deployment group ID. @@ -1523,6 +1574,8 @@ extension Codedeploy { public let alarmConfiguration: AlarmConfiguration? /// Information about blue/green deployment options for a deployment group. public let blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration? + /// Information about groups of tags applied to an on-premises instance. The deployment group includes only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters. + public let onPremisesTagSet: OnPremisesTagSet? /// The application name. public let applicationName: String? /// A list of associated Auto Scaling groups. @@ -1535,23 +1588,25 @@ extension Codedeploy { public let deploymentStyle: DeploymentStyle? /// Information about the most recent attempted deployment to the deployment group. public let lastAttemptedDeployment: LastDeploymentInfo? - /// The on-premises instance tags on which to filter. + /// The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags. public let onPremisesInstanceTagFilters: [TagFilter]? - /// The Amazon EC2 tags on which to filter. + /// The Amazon EC2 tags on which to filter. The deployment group includes EC2 instances with any of the specified tags. public let ec2TagFilters: [EC2TagFilter]? /// Information about the automatic rollback configuration associated with the deployment group. public let autoRollbackConfiguration: AutoRollbackConfiguration? /// Information about the deployment group's target revision, including type and location. public let targetRevision: RevisionLocation? - public init(lastSuccessfulDeployment: LastDeploymentInfo? = nil, deploymentGroupName: String? = nil, serviceRoleArn: String? = nil, loadBalancerInfo: LoadBalancerInfo? = nil, deploymentGroupId: String? = nil, alarmConfiguration: AlarmConfiguration? = nil, blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration? = nil, applicationName: String? = nil, autoScalingGroups: [AutoScalingGroup]? = nil, deploymentConfigName: String? = nil, triggerConfigurations: [TriggerConfig]? = nil, deploymentStyle: DeploymentStyle? = nil, lastAttemptedDeployment: LastDeploymentInfo? = nil, onPremisesInstanceTagFilters: [TagFilter]? = nil, ec2TagFilters: [EC2TagFilter]? = nil, autoRollbackConfiguration: AutoRollbackConfiguration? = nil, targetRevision: RevisionLocation? = nil) { + public init(lastSuccessfulDeployment: LastDeploymentInfo? = nil, deploymentGroupName: String? = nil, serviceRoleArn: String? = nil, ec2TagSet: EC2TagSet? = nil, loadBalancerInfo: LoadBalancerInfo? = nil, deploymentGroupId: String? = nil, alarmConfiguration: AlarmConfiguration? = nil, blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration? = nil, onPremisesTagSet: OnPremisesTagSet? = nil, applicationName: String? = nil, autoScalingGroups: [AutoScalingGroup]? = nil, deploymentConfigName: String? = nil, triggerConfigurations: [TriggerConfig]? = nil, deploymentStyle: DeploymentStyle? = nil, lastAttemptedDeployment: LastDeploymentInfo? = nil, onPremisesInstanceTagFilters: [TagFilter]? = nil, ec2TagFilters: [EC2TagFilter]? = nil, autoRollbackConfiguration: AutoRollbackConfiguration? = nil, targetRevision: RevisionLocation? = nil) { self.lastSuccessfulDeployment = lastSuccessfulDeployment self.deploymentGroupName = deploymentGroupName self.serviceRoleArn = serviceRoleArn + self.ec2TagSet = ec2TagSet self.loadBalancerInfo = loadBalancerInfo self.deploymentGroupId = deploymentGroupId self.alarmConfiguration = alarmConfiguration self.blueGreenDeploymentConfiguration = blueGreenDeploymentConfiguration + self.onPremisesTagSet = onPremisesTagSet self.applicationName = applicationName self.autoScalingGroups = autoScalingGroups self.deploymentConfigName = deploymentConfigName @@ -1568,10 +1623,12 @@ extension Codedeploy { case lastSuccessfulDeployment = "lastSuccessfulDeployment" case deploymentGroupName = "deploymentGroupName" case serviceRoleArn = "serviceRoleArn" + case ec2TagSet = "ec2TagSet" case loadBalancerInfo = "loadBalancerInfo" case deploymentGroupId = "deploymentGroupId" case alarmConfiguration = "alarmConfiguration" case blueGreenDeploymentConfiguration = "blueGreenDeploymentConfiguration" + case onPremisesTagSet = "onPremisesTagSet" case applicationName = "applicationName" case autoScalingGroups = "autoScalingGroups" case deploymentConfigName = "deploymentConfigName" @@ -1586,7 +1643,7 @@ extension Codedeploy { } public struct ListApplicationsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// An identifier returned from the previous list applications call. It can be used to return the next set of applications in the list. @@ -1602,7 +1659,7 @@ extension Codedeploy { } public struct StopDeploymentInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentId", required: true, type: .string), AWSShapeMember(label: "autoRollbackEnabled", required: false, type: .boolean) ] @@ -1630,7 +1687,7 @@ extension Codedeploy { } public struct InstanceInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "iamSessionArn", required: false, type: .string), AWSShapeMember(label: "instanceName", required: false, type: .string), AWSShapeMember(label: "deregisterTime", required: false, type: .timestamp), @@ -1676,7 +1733,7 @@ extension Codedeploy { } public struct ListApplicationsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "applications", required: false, type: .list) ] @@ -1697,7 +1754,7 @@ extension Codedeploy { } public struct Diagnostics: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scriptName", required: false, type: .string), AWSShapeMember(label: "message", required: false, type: .string), AWSShapeMember(label: "errorCode", required: false, type: .enum), @@ -1728,7 +1785,7 @@ extension Codedeploy { } public struct GenericRevisionInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "firstUsedTime", required: false, type: .timestamp), AWSShapeMember(label: "lastUsedTime", required: false, type: .timestamp), @@ -1770,7 +1827,7 @@ extension Codedeploy { } public struct BatchGetApplicationsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "applicationNames", required: false, type: .list) ] /// A list of application names separated by spaces. @@ -1786,7 +1843,7 @@ extension Codedeploy { } public struct GetApplicationRevisionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revision", required: true, type: .structure), AWSShapeMember(label: "applicationName", required: true, type: .string) ] @@ -1829,7 +1886,7 @@ extension Codedeploy { } public struct ApplicationInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "gitHubAccountName", required: false, type: .string), AWSShapeMember(label: "linkedToGitHub", required: false, type: .boolean), AWSShapeMember(label: "createTime", required: false, type: .timestamp), @@ -1871,7 +1928,7 @@ extension Codedeploy { } public struct GetDeploymentGroupOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentGroupInfo", required: false, type: .structure) ] /// Information about the deployment group. @@ -1887,7 +1944,7 @@ extension Codedeploy { } public struct BlueInstanceTerminationOption: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "action", required: false, type: .enum), AWSShapeMember(label: "terminationWaitTimeInMinutes", required: false, type: .integer) ] @@ -1908,7 +1965,7 @@ extension Codedeploy { } public struct TriggerConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "triggerEvents", required: false, type: .list), AWSShapeMember(label: "triggerName", required: false, type: .string), AWSShapeMember(label: "triggerTargetArn", required: false, type: .string) @@ -1952,7 +2009,7 @@ extension Codedeploy { } public struct ListGitHubAccountTokenNamesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "tokenNameList", required: false, type: .list) ] @@ -1973,7 +2030,7 @@ extension Codedeploy { } public struct GetDeploymentGroupInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentGroupName", required: true, type: .string), AWSShapeMember(label: "applicationName", required: true, type: .string) ] @@ -1994,7 +2051,7 @@ extension Codedeploy { } public struct AlarmConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "alarms", required: false, type: .list), AWSShapeMember(label: "enabled", required: false, type: .boolean), AWSShapeMember(label: "ignorePollAlarmFailure", required: false, type: .boolean) @@ -2020,7 +2077,7 @@ extension Codedeploy { } public struct BatchGetDeploymentGroupsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentGroupNames", required: true, type: .list), AWSShapeMember(label: "applicationName", required: true, type: .string) ] @@ -2041,7 +2098,7 @@ extension Codedeploy { } public struct CreateDeploymentInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revision", required: false, type: .structure), AWSShapeMember(label: "deploymentConfigName", required: false, type: .string), AWSShapeMember(label: "targetInstances", required: false, type: .structure), @@ -2102,7 +2159,7 @@ extension Codedeploy { } public struct S3Location: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "bundleType", required: false, type: .enum), AWSShapeMember(label: "version", required: false, type: .string), AWSShapeMember(label: "bucket", required: false, type: .string), @@ -2138,7 +2195,7 @@ extension Codedeploy { } public struct GetApplicationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "application", required: false, type: .structure) ] /// Information about the application. @@ -2154,10 +2211,10 @@ extension Codedeploy { } public struct ELBInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string) ] - /// For blue/green deployments, the name of the load balancer that will be used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re-registered with after the deployment completes. + /// For blue/green deployments, the name of the load balancer that will be used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes. public let name: String? public init(name: String? = nil) { @@ -2170,7 +2227,7 @@ extension Codedeploy { } public struct GetDeploymentConfigInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentConfigName", required: true, type: .string) ] /// The name of a deployment configuration associated with the applicable IAM user or AWS account. @@ -2193,7 +2250,7 @@ extension Codedeploy { } public struct ListDeploymentsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deployments", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -2214,7 +2271,7 @@ extension Codedeploy { } public struct DeleteDeploymentGroupInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentGroupName", required: true, type: .string), AWSShapeMember(label: "applicationName", required: true, type: .string) ] @@ -2235,7 +2292,7 @@ extension Codedeploy { } public struct ListDeploymentInstancesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "instancesList", required: false, type: .list) ] @@ -2256,7 +2313,7 @@ extension Codedeploy { } public struct LastDeploymentInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentId", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "endTime", required: false, type: .timestamp), @@ -2287,7 +2344,7 @@ extension Codedeploy { } public struct DeregisterOnPremisesInstanceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceName", required: true, type: .string) ] /// The name of the on-premises instance to deregister. @@ -2303,7 +2360,7 @@ extension Codedeploy { } public struct BatchGetApplicationRevisionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revisions", required: false, type: .list), AWSShapeMember(label: "errorMessage", required: false, type: .string), AWSShapeMember(label: "applicationName", required: false, type: .string) @@ -2329,7 +2386,7 @@ extension Codedeploy { } public struct GetApplicationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "applicationName", required: true, type: .string) ] /// The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account. @@ -2345,7 +2402,7 @@ extension Codedeploy { } public struct GetOnPremisesInstanceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceName", required: true, type: .string) ] /// The name of the on-premises instance about which to get information. @@ -2361,7 +2418,7 @@ extension Codedeploy { } public struct GetApplicationRevisionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revision", required: false, type: .structure), AWSShapeMember(label: "revisionInfo", required: false, type: .structure), AWSShapeMember(label: "applicationName", required: false, type: .string) @@ -2387,7 +2444,7 @@ extension Codedeploy { } public struct GreenFleetProvisioningOption: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "action", required: false, type: .enum) ] /// The method used to add instances to a replacement environment. DISCOVER_EXISTING: Use instances that already exist or will be created manually. COPY_AUTO_SCALING_GROUP: Use settings from a specified Auto Scaling group to define and create instances in a new Auto Scaling group. @@ -2403,7 +2460,7 @@ extension Codedeploy { } public struct DeploymentOverview: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InProgress", required: false, type: .long), AWSShapeMember(label: "Pending", required: false, type: .long), AWSShapeMember(label: "Skipped", required: false, type: .long), @@ -2444,7 +2501,7 @@ extension Codedeploy { } public struct UpdateApplicationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "newApplicationName", required: false, type: .string), AWSShapeMember(label: "applicationName", required: false, type: .string) ] @@ -2465,12 +2522,14 @@ extension Codedeploy { } public struct UpdateDeploymentGroupInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "serviceRoleArn", required: false, type: .string), - AWSShapeMember(label: "newDeploymentGroupName", required: false, type: .string), + AWSShapeMember(label: "ec2TagSet", required: false, type: .structure), AWSShapeMember(label: "loadBalancerInfo", required: false, type: .structure), + AWSShapeMember(label: "newDeploymentGroupName", required: false, type: .string), AWSShapeMember(label: "alarmConfiguration", required: false, type: .structure), AWSShapeMember(label: "blueGreenDeploymentConfiguration", required: false, type: .structure), + AWSShapeMember(label: "onPremisesTagSet", required: false, type: .structure), AWSShapeMember(label: "applicationName", required: true, type: .string), AWSShapeMember(label: "autoScalingGroups", required: false, type: .list), AWSShapeMember(label: "deploymentConfigName", required: false, type: .string), @@ -2483,14 +2542,18 @@ extension Codedeploy { ] /// A replacement ARN for the service role, if you want to change it. public let serviceRoleArn: String? - /// The new name of the deployment group, if you want to change it. - public let newDeploymentGroupName: String? + /// Information about groups of tags applied to on-premises instances. The deployment group will include only EC2 instances identified by all the tag groups. + public let ec2TagSet: EC2TagSet? /// Information about the load balancer used in a deployment. public let loadBalancerInfo: LoadBalancerInfo? + /// The new name of the deployment group, if you want to change it. + public let newDeploymentGroupName: String? /// Information to add or change about Amazon CloudWatch alarms when the deployment group is updated. public let alarmConfiguration: AlarmConfiguration? /// Information about blue/green deployment options for a deployment group. public let blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration? + /// Information about an on-premises instance tag set. The deployment group will include only on-premises instances identified by all the tag groups. + public let onPremisesTagSet: OnPremisesTagSet? /// The application name corresponding to the deployment group to update. public let applicationName: String /// The replacement list of Auto Scaling groups to be included in the deployment group, if you want to change them. To keep the Auto Scaling groups, enter their names. To remove Auto Scaling groups, do not enter any Auto Scaling group names. @@ -2510,12 +2573,14 @@ extension Codedeploy { /// Information for an automatic rollback configuration that is added or changed when a deployment group is updated. public let autoRollbackConfiguration: AutoRollbackConfiguration? - public init(serviceRoleArn: String? = nil, newDeploymentGroupName: String? = nil, loadBalancerInfo: LoadBalancerInfo? = nil, alarmConfiguration: AlarmConfiguration? = nil, blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration? = nil, applicationName: String, autoScalingGroups: [String]? = nil, deploymentConfigName: String? = nil, triggerConfigurations: [TriggerConfig]? = nil, deploymentStyle: DeploymentStyle? = nil, currentDeploymentGroupName: String, onPremisesInstanceTagFilters: [TagFilter]? = nil, ec2TagFilters: [EC2TagFilter]? = nil, autoRollbackConfiguration: AutoRollbackConfiguration? = nil) { + public init(serviceRoleArn: String? = nil, ec2TagSet: EC2TagSet? = nil, loadBalancerInfo: LoadBalancerInfo? = nil, newDeploymentGroupName: String? = nil, alarmConfiguration: AlarmConfiguration? = nil, blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration? = nil, onPremisesTagSet: OnPremisesTagSet? = nil, applicationName: String, autoScalingGroups: [String]? = nil, deploymentConfigName: String? = nil, triggerConfigurations: [TriggerConfig]? = nil, deploymentStyle: DeploymentStyle? = nil, currentDeploymentGroupName: String, onPremisesInstanceTagFilters: [TagFilter]? = nil, ec2TagFilters: [EC2TagFilter]? = nil, autoRollbackConfiguration: AutoRollbackConfiguration? = nil) { self.serviceRoleArn = serviceRoleArn - self.newDeploymentGroupName = newDeploymentGroupName + self.ec2TagSet = ec2TagSet self.loadBalancerInfo = loadBalancerInfo + self.newDeploymentGroupName = newDeploymentGroupName self.alarmConfiguration = alarmConfiguration self.blueGreenDeploymentConfiguration = blueGreenDeploymentConfiguration + self.onPremisesTagSet = onPremisesTagSet self.applicationName = applicationName self.autoScalingGroups = autoScalingGroups self.deploymentConfigName = deploymentConfigName @@ -2529,10 +2594,12 @@ extension Codedeploy { private enum CodingKeys: String, CodingKey { case serviceRoleArn = "serviceRoleArn" - case newDeploymentGroupName = "newDeploymentGroupName" + case ec2TagSet = "ec2TagSet" case loadBalancerInfo = "loadBalancerInfo" + case newDeploymentGroupName = "newDeploymentGroupName" case alarmConfiguration = "alarmConfiguration" case blueGreenDeploymentConfiguration = "blueGreenDeploymentConfiguration" + case onPremisesTagSet = "onPremisesTagSet" case applicationName = "applicationName" case autoScalingGroups = "autoScalingGroups" case deploymentConfigName = "deploymentConfigName" @@ -2545,8 +2612,24 @@ extension Codedeploy { } } + public struct EC2TagSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ec2TagSetList", required: false, type: .list) + ] + /// A list containing other lists of EC2 instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list. + public let ec2TagSetList: [[EC2TagFilter]]? + + public init(ec2TagSetList: [[EC2TagFilter]]? = nil) { + self.ec2TagSetList = ec2TagSetList + } + + private enum CodingKeys: String, CodingKey { + case ec2TagSetList = "ec2TagSetList" + } + } + public struct CreateDeploymentGroupOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentGroupId", required: false, type: .string) ] /// A unique deployment group ID. @@ -2562,7 +2645,7 @@ extension Codedeploy { } public struct InstanceSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceId", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "instanceType", required: false, type: .enum), @@ -2603,7 +2686,7 @@ extension Codedeploy { } public struct RegisterOnPremisesInstanceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "iamSessionArn", required: false, type: .string), AWSShapeMember(label: "iamUserArn", required: false, type: .string), AWSShapeMember(label: "instanceName", required: true, type: .string) @@ -2641,7 +2724,7 @@ extension Codedeploy { } public struct DeploymentConfigInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deploymentConfigName", required: false, type: .string), AWSShapeMember(label: "minimumHealthyHosts", required: false, type: .structure), AWSShapeMember(label: "createTime", required: false, type: .timestamp), @@ -2672,7 +2755,7 @@ extension Codedeploy { } public struct LifecycleEvent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "diagnostics", required: false, type: .structure), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "endTime", required: false, type: .timestamp), @@ -2708,28 +2791,33 @@ extension Codedeploy { } public struct TargetInstances: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tagFilters", required: false, type: .list), + AWSShapeMember(label: "ec2TagSet", required: false, type: .structure), AWSShapeMember(label: "autoScalingGroups", required: false, type: .list) ] - /// The tag filter key, type, and value used to identify Amazon EC2 instances in a replacement environment for a blue/green deployment. + /// The tag filter key, type, and value used to identify Amazon EC2 instances in a replacement environment for a blue/green deployment. Cannot be used in the same call as ec2TagSet. public let tagFilters: [EC2TagFilter]? + /// Information about the groups of EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as tagFilters. + public let ec2TagSet: EC2TagSet? /// The names of one or more Auto Scaling groups to identify a replacement environment for a blue/green deployment. public let autoScalingGroups: [String]? - public init(tagFilters: [EC2TagFilter]? = nil, autoScalingGroups: [String]? = nil) { + public init(tagFilters: [EC2TagFilter]? = nil, ec2TagSet: EC2TagSet? = nil, autoScalingGroups: [String]? = nil) { self.tagFilters = tagFilters + self.ec2TagSet = ec2TagSet self.autoScalingGroups = autoScalingGroups } private enum CodingKeys: String, CodingKey { case tagFilters = "tagFilters" + case ec2TagSet = "ec2TagSet" case autoScalingGroups = "autoScalingGroups" } } public struct GetDeploymentInstanceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceId", required: true, type: .string), AWSShapeMember(label: "deploymentId", required: true, type: .string) ] @@ -2750,7 +2838,7 @@ extension Codedeploy { } public struct MinimumHealthyHosts: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "value", required: false, type: .integer) ] diff --git a/Sources/AWSSDKSwift/Services/codepipeline/Codepipeline_API.swift b/Sources/AWSSDKSwift/Services/codepipeline/Codepipeline_API.swift index 263c2420b57..978cf09c933 100644 --- a/Sources/AWSSDKSwift/Services/codepipeline/Codepipeline_API.swift +++ b/Sources/AWSSDKSwift/Services/codepipeline/Codepipeline_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -AWS CodePipeline Overview This is the AWS CodePipeline API Reference. This guide provides descriptions of the actions and data types for AWS CodePipeline. Some functionality for your pipeline is only configurable through the API. For additional information, see the AWS CodePipeline User Guide. You can use the AWS CodePipeline API to work with pipelines, stages, actions, gates, and transitions, as described below. Pipelines are models of automated release processes. Each pipeline is uniquely named, and consists of actions, gates, and stages. You can work with pipelines by calling: CreatePipeline, which creates a uniquely-named pipeline. DeletePipeline, which deletes the specified pipeline. GetPipeline, which returns information about a pipeline structure. GetPipelineExecution, which returns information about a specific execution of a pipeline. GetPipelineState, which returns information about the current state of the stages and actions of a pipeline. ListPipelines, which gets a summary of all of the pipelines associated with your account. StartPipelineExecution, which runs the the most recent revision of an artifact through the pipeline. UpdatePipeline, which updates a pipeline with edits or changes to the structure of the pipeline. Pipelines include stages, which are logical groupings of gates and actions. Each stage contains one or more actions that must complete before the next stage begins. A stage will result in success or failure. If a stage fails, then the pipeline stops at that stage and will remain stopped until either a new version of an artifact appears in the source location, or a user takes action to re-run the most recent artifact through the pipeline. You can call GetPipelineState, which displays the status of a pipeline, including the status of stages in the pipeline, or GetPipeline, which returns the entire structure of the pipeline, including the stages of that pipeline. For more information about the structure of stages and actions, also refer to the AWS CodePipeline Pipeline Structure Reference. Pipeline stages include actions, which are categorized into categories such as source or build actions performed within a stage of a pipeline. For example, you can use a source action to import artifacts into a pipeline from a source such as Amazon S3. Like stages, you do not work with actions directly in most cases, but you do define and interact with actions when working with pipeline operations such as CreatePipeline and GetPipelineState. Pipelines also include transitions, which allow the transition of artifacts from one stage to the next in a pipeline after the actions in one stage complete. You can work with transitions by calling: DisableStageTransition, which prevents artifacts from transitioning to the next stage in a pipeline. EnableStageTransition, which enables transition of artifacts between stages in a pipeline. Using the API to integrate with AWS CodePipeline For third-party integrators or developers who want to create their own integrations with AWS CodePipeline, the expected sequence varies from the standard API user. In order to integrate with AWS CodePipeline, developers will need to work with the following items: Jobs, which are instances of an action. For example, a job for a source action might import a revision of an artifact from a source. You can work with jobs by calling: AcknowledgeJob, which confirms whether a job worker has received the specified job, GetJobDetails, which returns the details of a job, PollForJobs, which determines whether there are any jobs to act upon, PutJobFailureResult, which provides details of a job failure, and PutJobSuccessResult, which provides details of a job success. Third party jobs, which are instances of an action created by a partner action and integrated into AWS CodePipeline. Partner actions are created by members of the AWS Partner Network. You can work with third party jobs by calling: AcknowledgeThirdPartyJob, which confirms whether a job worker has received the specified job, GetThirdPartyJobDetails, which requests the details of a job for a partner action, PollForThirdPartyJobs, which determines whether there are any jobs to act upon, PutThirdPartyJobFailureResult, which provides details of a job failure, and PutThirdPartyJobSuccessResult, which provides details of a job success. +AWS CodePipeline Overview This is the AWS CodePipeline API Reference. This guide provides descriptions of the actions and data types for AWS CodePipeline. Some functionality for your pipeline is only configurable through the API. For additional information, see the AWS CodePipeline User Guide. You can use the AWS CodePipeline API to work with pipelines, stages, actions, gates, and transitions, as described below. Pipelines are models of automated release processes. Each pipeline is uniquely named, and consists of actions, gates, and stages. You can work with pipelines by calling: CreatePipeline, which creates a uniquely-named pipeline. DeletePipeline, which deletes the specified pipeline. GetPipeline, which returns information about the pipeline structure and pipeline metadata, including the pipeline Amazon Resource Name (ARN). GetPipelineExecution, which returns information about a specific execution of a pipeline. GetPipelineState, which returns information about the current state of the stages and actions of a pipeline. ListPipelines, which gets a summary of all of the pipelines associated with your account. ListPipelineExecutions, which gets a summary of the most recent executions for a pipeline. StartPipelineExecution, which runs the the most recent revision of an artifact through the pipeline. UpdatePipeline, which updates a pipeline with edits or changes to the structure of the pipeline. Pipelines include stages, which are logical groupings of gates and actions. Each stage contains one or more actions that must complete before the next stage begins. A stage will result in success or failure. If a stage fails, then the pipeline stops at that stage and will remain stopped until either a new version of an artifact appears in the source location, or a user takes action to re-run the most recent artifact through the pipeline. You can call GetPipelineState, which displays the status of a pipeline, including the status of stages in the pipeline, or GetPipeline, which returns the entire structure of the pipeline, including the stages of that pipeline. For more information about the structure of stages and actions, also refer to the AWS CodePipeline Pipeline Structure Reference. Pipeline stages include actions, which are categorized into categories such as source or build actions performed within a stage of a pipeline. For example, you can use a source action to import artifacts into a pipeline from a source such as Amazon S3. Like stages, you do not work with actions directly in most cases, but you do define and interact with actions when working with pipeline operations such as CreatePipeline and GetPipelineState. Pipelines also include transitions, which allow the transition of artifacts from one stage to the next in a pipeline after the actions in one stage complete. You can work with transitions by calling: DisableStageTransition, which prevents artifacts from transitioning to the next stage in a pipeline. EnableStageTransition, which enables transition of artifacts between stages in a pipeline. Using the API to integrate with AWS CodePipeline For third-party integrators or developers who want to create their own integrations with AWS CodePipeline, the expected sequence varies from the standard API user. In order to integrate with AWS CodePipeline, developers will need to work with the following items: Jobs, which are instances of an action. For example, a job for a source action might import a revision of an artifact from a source. You can work with jobs by calling: AcknowledgeJob, which confirms whether a job worker has received the specified job, GetJobDetails, which returns the details of a job, PollForJobs, which determines whether there are any jobs to act upon, PutJobFailureResult, which provides details of a job failure, and PutJobSuccessResult, which provides details of a job success. Third party jobs, which are instances of an action created by a partner action and integrated into AWS CodePipeline. Partner actions are created by members of the AWS Partner Network. You can work with third party jobs by calling: AcknowledgeThirdPartyJob, which confirms whether a job worker has received the specified job, GetThirdPartyJobDetails, which requests the details of a job for a partner action, PollForThirdPartyJobs, which determines whether there are any jobs to act upon, PutThirdPartyJobFailureResult, which provides details of a job failure, and PutThirdPartyJobSuccessResult, which provides details of a job success. */ public struct Codepipeline { diff --git a/Sources/AWSSDKSwift/Services/codepipeline/Codepipeline_Shapes.swift b/Sources/AWSSDKSwift/Services/codepipeline/Codepipeline_Shapes.swift index 12478754440..362de4ae922 100644 --- a/Sources/AWSSDKSwift/Services/codepipeline/Codepipeline_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/codepipeline/Codepipeline_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Codepipeline { public struct ActionContext: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string) ] /// The name of the action within the context of a job. @@ -22,7 +22,7 @@ extension Codepipeline { } public struct PipelineSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "updated", required: false, type: .timestamp), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "version", required: false, type: .integer), @@ -53,7 +53,7 @@ extension Codepipeline { } public struct FailureDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: true, type: .enum), AWSShapeMember(label: "message", required: true, type: .string), AWSShapeMember(label: "externalExecutionId", required: false, type: .string) @@ -79,7 +79,7 @@ extension Codepipeline { } public struct ListActionTypesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "actionTypes", required: true, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -100,13 +100,13 @@ extension Codepipeline { } public struct ListPipelineExecutionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineExecutionSummaries", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// A list of executions in the history of a pipeline. public let pipelineExecutionSummaries: [PipelineExecutionSummary]? - /// A token that can be used in the next list pipeline executions call to return the next set of pipeline executions. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned. + /// A token that can be used in the next ListPipelineExecutions call. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned. public let nextToken: String? public init(pipelineExecutionSummaries: [PipelineExecutionSummary]? = nil, nextToken: String? = nil) { @@ -121,7 +121,7 @@ extension Codepipeline { } public struct CurrentRevision: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revision", required: true, type: .string), AWSShapeMember(label: "changeIdentifier", required: true, type: .string), AWSShapeMember(label: "created", required: false, type: .timestamp), @@ -152,7 +152,7 @@ extension Codepipeline { } public struct GetJobDetailsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobId", required: true, type: .string) ] /// The unique system-generated ID for the job. @@ -168,7 +168,7 @@ extension Codepipeline { } public struct PutActionRevisionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineExecutionId", required: false, type: .string), AWSShapeMember(label: "newRevision", required: false, type: .boolean) ] @@ -189,7 +189,7 @@ extension Codepipeline { } public struct RetryStageExecutionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineExecutionId", required: false, type: .string) ] /// The ID of the current workflow execution in the failed stage. @@ -205,7 +205,7 @@ extension Codepipeline { } public struct ArtifactDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "minimumCount", required: true, type: .integer), AWSShapeMember(label: "maximumCount", required: true, type: .integer) ] @@ -226,7 +226,7 @@ extension Codepipeline { } public struct ErrorDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "code", required: false, type: .string), AWSShapeMember(label: "message", required: false, type: .string) ] @@ -247,7 +247,7 @@ extension Codepipeline { } public struct ActionConfigurationProperty: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "key", required: true, type: .boolean), AWSShapeMember(label: "secret", required: true, type: .boolean), @@ -268,7 +268,7 @@ extension Codepipeline { public let required: Bool /// The type of the configuration property. public let `type`: ActionConfigurationPropertyType? - /// Indicates that the proprety will be used in conjunction with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret. If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to additional restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens. + /// Indicates that the property will be used in conjunction with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret. If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to additional restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens. public let queryable: Bool? public init(name: String, key: Bool, secret: Bool, description: String? = nil, required: Bool, type: ActionConfigurationPropertyType? = nil, queryable: Bool? = nil) { @@ -293,7 +293,7 @@ extension Codepipeline { } public struct StageContext: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string) ] /// The name of the stage. @@ -309,7 +309,7 @@ extension Codepipeline { } public struct StageExecution: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: true, type: .enum), AWSShapeMember(label: "pipelineExecutionId", required: true, type: .string) ] @@ -330,7 +330,7 @@ extension Codepipeline { } public struct ActionExecution: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "summary", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "lastUpdatedBy", required: false, type: .string), @@ -386,7 +386,7 @@ extension Codepipeline { } public struct StartPipelineExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string) ] /// The name of the pipeline to start. @@ -402,7 +402,7 @@ extension Codepipeline { } public struct StageState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "inboundTransitionState", required: false, type: .structure), AWSShapeMember(label: "actionStates", required: false, type: .list), AWSShapeMember(label: "stageName", required: false, type: .string), @@ -433,7 +433,7 @@ extension Codepipeline { } public struct PutActionRevisionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "stageName", required: true, type: .string), AWSShapeMember(label: "actionName", required: true, type: .string), AWSShapeMember(label: "pipelineName", required: true, type: .string), @@ -464,7 +464,7 @@ extension Codepipeline { } public struct PutThirdPartyJobFailureResultInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failureDetails", required: true, type: .structure), AWSShapeMember(label: "clientToken", required: true, type: .string), AWSShapeMember(label: "jobId", required: true, type: .string) @@ -490,7 +490,7 @@ extension Codepipeline { } public struct Artifact: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revision", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "location", required: false, type: .structure) @@ -516,7 +516,7 @@ extension Codepipeline { } public struct JobData: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "actionTypeId", required: false, type: .structure), AWSShapeMember(label: "actionConfiguration", required: false, type: .structure), AWSShapeMember(label: "artifactCredentials", required: false, type: .structure), @@ -567,7 +567,7 @@ extension Codepipeline { } public struct PutApprovalResultInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "stageName", required: true, type: .string), AWSShapeMember(label: "actionName", required: true, type: .string), AWSShapeMember(label: "result", required: true, type: .structure), @@ -603,7 +603,7 @@ extension Codepipeline { } public struct ArtifactLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "s3Location", required: false, type: .structure) ] @@ -624,7 +624,7 @@ extension Codepipeline { } public struct GetPipelineExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineName", required: true, type: .string), AWSShapeMember(label: "pipelineExecutionId", required: true, type: .string) ] @@ -661,7 +661,7 @@ extension Codepipeline { } public struct DisableStageTransitionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "transitionType", required: true, type: .enum), AWSShapeMember(label: "stageName", required: true, type: .string), AWSShapeMember(label: "reason", required: true, type: .string), @@ -707,7 +707,7 @@ extension Codepipeline { } public struct GetJobDetailsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobDetails", required: false, type: .structure) ] /// The details of the job. If AWSSessionCredentials is used, a long-running job can call GetJobDetails again to obtain new credentials. @@ -723,7 +723,7 @@ extension Codepipeline { } public struct AcknowledgeJobOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum) ] /// Whether the job worker has received the specified job. @@ -739,14 +739,14 @@ extension Codepipeline { } public struct PipelineExecution: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "pipelineVersion", required: false, type: .integer), AWSShapeMember(label: "pipelineExecutionId", required: false, type: .string), AWSShapeMember(label: "pipelineName", required: false, type: .string), AWSShapeMember(label: "artifactRevisions", required: false, type: .list) ] - /// The status of the pipeline execution. InProgress: The pipeline execution is currently running. Succeeded: The pipeline execution completed successfully. Superseded: While this pipeline execution was waiting for the next stage to be completed, a newer pipeline execution caught up and continued through the pipeline instead. Failed: The pipeline execution did not complete successfully. + /// The status of the pipeline execution. InProgress: The pipeline execution is currently running. Succeeded: The pipeline execution was completed successfully. Superseded: While this pipeline execution was waiting for the next stage to be completed, a newer pipeline execution advanced and continued through the pipeline instead. Failed: The pipeline execution was not completed successfully. public let status: PipelineExecutionStatus? /// The version number of the pipeline that was executed. public let pipelineVersion: Int32? @@ -775,7 +775,7 @@ extension Codepipeline { } public struct AcknowledgeJobInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nonce", required: true, type: .string), AWSShapeMember(label: "jobId", required: true, type: .string) ] @@ -796,7 +796,7 @@ extension Codepipeline { } public struct JobDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "accountId", required: false, type: .string), AWSShapeMember(label: "data", required: false, type: .structure) @@ -822,7 +822,7 @@ extension Codepipeline { } public struct S3ArtifactLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "bucketName", required: true, type: .string), AWSShapeMember(label: "objectKey", required: true, type: .string) ] @@ -842,8 +842,34 @@ extension Codepipeline { } } + public struct PipelineMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "created", required: false, type: .timestamp), + AWSShapeMember(label: "updated", required: false, type: .timestamp), + AWSShapeMember(label: "pipelineArn", required: false, type: .string) + ] + /// The date and time the pipeline was created, in timestamp format. + public let created: TimeStamp? + /// The date and time the pipeline was last updated, in timestamp format. + public let updated: TimeStamp? + /// The Amazon Resource Name (ARN) of the pipeline. + public let pipelineArn: String? + + public init(created: TimeStamp? = nil, updated: TimeStamp? = nil, pipelineArn: String? = nil) { + self.created = created + self.updated = updated + self.pipelineArn = pipelineArn + } + + private enum CodingKeys: String, CodingKey { + case created = "created" + case updated = "updated" + case pipelineArn = "pipelineArn" + } + } + public struct CreateCustomActionTypeOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "actionType", required: true, type: .structure) ] /// Returns information about the details of an action type. @@ -859,7 +885,7 @@ extension Codepipeline { } public struct ActionTypeId: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "owner", required: true, type: .enum), AWSShapeMember(label: "version", required: true, type: .string), AWSShapeMember(label: "provider", required: true, type: .string), @@ -897,7 +923,7 @@ extension Codepipeline { } public struct GetThirdPartyJobDetailsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "clientToken", required: true, type: .string), AWSShapeMember(label: "jobId", required: true, type: .string) ] @@ -918,7 +944,7 @@ extension Codepipeline { } public struct PutThirdPartyJobSuccessResultInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "executionDetails", required: false, type: .structure), AWSShapeMember(label: "clientToken", required: true, type: .string), AWSShapeMember(label: "continuationToken", required: false, type: .string), @@ -954,7 +980,7 @@ extension Codepipeline { } public struct DeleteCustomActionTypeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "provider", required: true, type: .string), AWSShapeMember(label: "version", required: true, type: .string), AWSShapeMember(label: "category", required: true, type: .enum) @@ -980,7 +1006,7 @@ extension Codepipeline { } public struct StageDeclaration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "blockers", required: false, type: .list), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "actions", required: true, type: .list) @@ -1006,7 +1032,7 @@ extension Codepipeline { } public struct AWSSessionCredentials: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "sessionToken", required: true, type: .string), AWSShapeMember(label: "accessKeyId", required: true, type: .string), AWSShapeMember(label: "secretAccessKey", required: true, type: .string) @@ -1032,7 +1058,7 @@ extension Codepipeline { } public struct EncryptionKey: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: true, type: .string), AWSShapeMember(label: "type", required: true, type: .enum) ] @@ -1053,7 +1079,7 @@ extension Codepipeline { } public struct EnableStageTransitionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineName", required: true, type: .string), AWSShapeMember(label: "transitionType", required: true, type: .enum), AWSShapeMember(label: "stageName", required: true, type: .string) @@ -1079,7 +1105,7 @@ extension Codepipeline { } public struct InputArtifact: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string) ] /// The name of the artifact to be worked on, for example, "My App". The input artifact of an action must exactly match the output artifact declared in a preceding action, but the input artifact does not have to be the next action in strict sequence from the action that provided the output artifact. Actions in parallel can declare different output artifacts, which are in turn consumed by different following actions. @@ -1101,7 +1127,7 @@ extension Codepipeline { } public struct PollForJobsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobs", required: false, type: .list) ] /// Information about the jobs to take action on. @@ -1122,7 +1148,7 @@ extension Codepipeline { } public struct ActionDeclaration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "actionTypeId", required: true, type: .structure), AWSShapeMember(label: "roleArn", required: false, type: .string), AWSShapeMember(label: "name", required: true, type: .string), @@ -1168,7 +1194,7 @@ extension Codepipeline { } public struct GetPipelineStateOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "updated", required: false, type: .timestamp), AWSShapeMember(label: "pipelineVersion", required: false, type: .integer), AWSShapeMember(label: "stageStates", required: false, type: .list), @@ -1204,7 +1230,7 @@ extension Codepipeline { } public struct PutJobSuccessResultInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "executionDetails", required: false, type: .structure), AWSShapeMember(label: "continuationToken", required: false, type: .string), AWSShapeMember(label: "currentRevision", required: false, type: .structure), @@ -1235,7 +1261,7 @@ extension Codepipeline { } public struct OutputArtifact: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string) ] /// The name of the output of an artifact, such as "My App". The input artifact of an action must exactly match the output artifact declared in a preceding action, but the input artifact does not have to be the next action in strict sequence from the action that provided the output artifact. Actions in parallel can declare different output artifacts, which are in turn consumed by different following actions. Output artifact names must be unique within a pipeline. @@ -1251,7 +1277,7 @@ extension Codepipeline { } public struct DeletePipelineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string) ] /// The name of the pipeline to be deleted. @@ -1267,14 +1293,14 @@ extension Codepipeline { } public struct PipelineDeclaration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "artifactStore", required: true, type: .structure), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "stages", required: true, type: .list), AWSShapeMember(label: "roleArn", required: true, type: .string), AWSShapeMember(label: "version", required: false, type: .integer) ] - /// Represents the context of an action within the stage of a pipeline to a job worker. + /// Represents information about the Amazon S3 bucket where artifacts are stored for the pipeline. public let artifactStore: ArtifactStore /// The name of the action to be performed. public let name: String @@ -1303,7 +1329,7 @@ extension Codepipeline { } public struct ThirdPartyJobDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "nonce", required: false, type: .string), AWSShapeMember(label: "data", required: false, type: .structure) @@ -1329,7 +1355,7 @@ extension Codepipeline { } public struct ActionState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "entityUrl", required: false, type: .string), AWSShapeMember(label: "actionName", required: false, type: .string), AWSShapeMember(label: "currentRevision", required: false, type: .structure), @@ -1365,7 +1391,7 @@ extension Codepipeline { } public struct PollForJobsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "actionTypeId", required: true, type: .structure), AWSShapeMember(label: "queryParam", required: false, type: .map), AWSShapeMember(label: "maxBatchSize", required: false, type: .integer) @@ -1391,7 +1417,7 @@ extension Codepipeline { } public struct ThirdPartyJob: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobId", required: false, type: .string), AWSShapeMember(label: "clientId", required: false, type: .string) ] @@ -1412,7 +1438,7 @@ extension Codepipeline { } public struct ArtifactRevision: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revisionSummary", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "created", required: false, type: .timestamp), @@ -1453,7 +1479,7 @@ extension Codepipeline { } public struct ListPipelinesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// An identifier that was returned from the previous list pipelines call, which can be used to return the next set of pipelines in the list. @@ -1469,7 +1495,7 @@ extension Codepipeline { } public struct ActionRevision: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "created", required: true, type: .timestamp), AWSShapeMember(label: "revisionChangeId", required: true, type: .string), AWSShapeMember(label: "revisionId", required: true, type: .string) @@ -1503,7 +1529,7 @@ extension Codepipeline { } public struct RetryStageExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "retryMode", required: true, type: .enum), AWSShapeMember(label: "pipelineExecutionId", required: true, type: .string), AWSShapeMember(label: "stageName", required: true, type: .string), @@ -1534,7 +1560,7 @@ extension Codepipeline { } public struct TransitionState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "enabled", required: false, type: .boolean), AWSShapeMember(label: "disabledReason", required: false, type: .string), AWSShapeMember(label: "lastChangedAt", required: false, type: .timestamp), @@ -1571,13 +1597,14 @@ extension Codepipeline { } public struct PipelineContext: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineName", required: false, type: .string), AWSShapeMember(label: "action", required: false, type: .structure), AWSShapeMember(label: "stage", required: false, type: .structure) ] /// The name of the pipeline. This is a user-specified value. Pipeline names must be unique across all pipeline names under an Amazon Web Services account. public let pipelineName: String? + /// The context of an action to a job worker within the stage of a pipeline. public let action: ActionContext? /// The stage of the pipeline. public let stage: StageContext? @@ -1596,7 +1623,7 @@ extension Codepipeline { } public struct PollForThirdPartyJobsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "actionTypeId", required: true, type: .structure), AWSShapeMember(label: "maxBatchSize", required: false, type: .integer) ] @@ -1617,7 +1644,7 @@ extension Codepipeline { } public struct PollForThirdPartyJobsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobs", required: false, type: .list) ] /// Information about the jobs to take action on. @@ -1633,7 +1660,7 @@ extension Codepipeline { } public struct PutJobFailureResultInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failureDetails", required: true, type: .structure), AWSShapeMember(label: "jobId", required: true, type: .string) ] @@ -1654,7 +1681,7 @@ extension Codepipeline { } public struct ArtifactStore: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: true, type: .enum), AWSShapeMember(label: "location", required: true, type: .string), AWSShapeMember(label: "encryptionKey", required: false, type: .structure) @@ -1680,7 +1707,7 @@ extension Codepipeline { } public struct PutApprovalResultOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "approvedAt", required: false, type: .timestamp) ] /// The timestamp showing when the approval or rejection was submitted. @@ -1713,7 +1740,7 @@ extension Codepipeline { } public struct GetPipelineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "version", required: false, type: .integer) ] @@ -1734,7 +1761,7 @@ extension Codepipeline { } public struct ActionType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "inputArtifactDetails", required: true, type: .structure), AWSShapeMember(label: "id", required: true, type: .structure), AWSShapeMember(label: "actionConfigurationProperties", required: false, type: .list), @@ -1775,7 +1802,7 @@ extension Codepipeline { } public struct ListPipelineExecutionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineName", required: true, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string) @@ -1784,7 +1811,7 @@ extension Codepipeline { public let pipelineName: String /// The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value. The available pipeline execution history is limited to the most recent 12 months, based on pipeline execution start times. Default value is 100. public let maxResults: Int32? - /// The token that was returned from the previous list pipeline executions call, which can be used to return the next set of pipeline executions in the list. + /// The token that was returned from the previous ListPipelineExecutions call, which can be used to return the next set of pipeline executions in the list. public let nextToken: String? public init(pipelineName: String, maxResults: Int32? = nil, nextToken: String? = nil) { @@ -1801,7 +1828,7 @@ extension Codepipeline { } public struct GetPipelineExecutionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineExecution", required: false, type: .structure) ] /// Represents information about the execution of a pipeline. @@ -1817,7 +1844,7 @@ extension Codepipeline { } public struct ThirdPartyJobData: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "actionTypeId", required: false, type: .structure), AWSShapeMember(label: "actionConfiguration", required: false, type: .structure), AWSShapeMember(label: "artifactCredentials", required: false, type: .structure), @@ -1868,23 +1895,28 @@ extension Codepipeline { } public struct GetPipelineOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "metadata", required: false, type: .structure), AWSShapeMember(label: "pipeline", required: false, type: .structure) ] + /// Represents the pipeline metadata information returned as part of the output of a GetPipeline action. + public let metadata: PipelineMetadata? /// Represents the structure of actions and stages to be performed in the pipeline. public let pipeline: PipelineDeclaration? - public init(pipeline: PipelineDeclaration? = nil) { + public init(metadata: PipelineMetadata? = nil, pipeline: PipelineDeclaration? = nil) { + self.metadata = metadata self.pipeline = pipeline } private enum CodingKeys: String, CodingKey { + case metadata = "metadata" case pipeline = "pipeline" } } public struct ActionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configuration", required: false, type: .map) ] /// The configuration data for the action. @@ -1900,7 +1932,7 @@ extension Codepipeline { } public struct CreatePipelineOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipeline", required: false, type: .structure) ] /// Represents the structure of actions and stages to be performed in the pipeline. @@ -1916,7 +1948,7 @@ extension Codepipeline { } public struct StartPipelineExecutionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineExecutionId", required: false, type: .string) ] /// The unique system-generated ID of the pipeline execution that was started. @@ -1939,7 +1971,7 @@ extension Codepipeline { } public struct GetPipelineStateInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string) ] /// The name of the pipeline about which you want to get information. @@ -1955,7 +1987,7 @@ extension Codepipeline { } public struct ActionTypeSettings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "revisionUrlTemplate", required: false, type: .string), AWSShapeMember(label: "thirdPartyConfigurationUrl", required: false, type: .string), AWSShapeMember(label: "executionUrlTemplate", required: false, type: .string), @@ -1986,7 +2018,7 @@ extension Codepipeline { } public struct AcknowledgeThirdPartyJobOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum) ] /// The status information for the third party job, if any. @@ -2002,7 +2034,7 @@ extension Codepipeline { } public struct CreateCustomActionTypeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "inputArtifactDetails", required: true, type: .structure), AWSShapeMember(label: "settings", required: false, type: .structure), AWSShapeMember(label: "outputArtifactDetails", required: true, type: .structure), @@ -2048,7 +2080,7 @@ extension Codepipeline { } public struct ApprovalResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "summary", required: true, type: .string), AWSShapeMember(label: "status", required: true, type: .enum) ] @@ -2069,7 +2101,7 @@ extension Codepipeline { } public struct BlockerDeclaration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: true, type: .enum), AWSShapeMember(label: "name", required: true, type: .string) ] @@ -2097,7 +2129,7 @@ extension Codepipeline { } public struct ListActionTypesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "actionOwnerFilter", required: false, type: .enum) ] @@ -2118,7 +2150,7 @@ extension Codepipeline { } public struct CreatePipelineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipeline", required: true, type: .structure) ] /// Represents the structure of actions and stages to be performed in the pipeline. @@ -2134,7 +2166,7 @@ extension Codepipeline { } public struct UpdatePipelineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipeline", required: true, type: .structure) ] /// The name of the pipeline to be updated. @@ -2150,13 +2182,13 @@ extension Codepipeline { } public struct PipelineExecutionSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "pipelineExecutionId", required: false, type: .string), AWSShapeMember(label: "startTime", required: false, type: .timestamp), AWSShapeMember(label: "lastUpdateTime", required: false, type: .timestamp) ] - /// The status of the pipeline execution. InProgress: The pipeline execution is currently running. Succeeded: The pipeline execution completed successfully. Superseded: While this pipeline execution was waiting for the next stage to be completed, a newer pipeline execution caught up and continued through the pipeline instead. Failed: The pipeline execution did not complete successfully. + /// The status of the pipeline execution. InProgress: The pipeline execution is currently running. Succeeded: The pipeline execution was completed successfully. Superseded: While this pipeline execution was waiting for the next stage to be completed, a newer pipeline execution advanced and continued through the pipeline instead. Failed: The pipeline execution was not completed successfully. public let status: PipelineExecutionStatus? /// The ID of the pipeline execution. public let pipelineExecutionId: String? @@ -2181,7 +2213,7 @@ extension Codepipeline { } public struct Job: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", required: false, type: .string), AWSShapeMember(label: "data", required: false, type: .structure), AWSShapeMember(label: "id", required: false, type: .string), @@ -2212,7 +2244,7 @@ extension Codepipeline { } public struct UpdatePipelineOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipeline", required: false, type: .structure) ] /// The structure of the updated pipeline. @@ -2228,7 +2260,7 @@ extension Codepipeline { } public struct ExecutionDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "summary", required: false, type: .string), AWSShapeMember(label: "percentComplete", required: false, type: .integer), AWSShapeMember(label: "externalExecutionId", required: false, type: .string) @@ -2254,7 +2286,7 @@ extension Codepipeline { } public struct GetThirdPartyJobDetailsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "jobDetails", required: false, type: .structure) ] /// The details of the job, including any protected values defined for the job. @@ -2270,7 +2302,7 @@ extension Codepipeline { } public struct AcknowledgeThirdPartyJobInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nonce", required: true, type: .string), AWSShapeMember(label: "jobId", required: true, type: .string), AWSShapeMember(label: "clientToken", required: true, type: .string) @@ -2296,7 +2328,7 @@ extension Codepipeline { } public struct ListPipelinesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "pipelines", required: false, type: .list) ] diff --git a/Sources/AWSSDKSwift/Services/codestar/Codestar_API.swift b/Sources/AWSSDKSwift/Services/codestar/Codestar_API.swift index d8d54cfc1e0..28a4325f8d9 100644 --- a/Sources/AWSSDKSwift/Services/codestar/Codestar_API.swift +++ b/Sources/AWSSDKSwift/Services/codestar/Codestar_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -AWS CodeStar This is the API reference for AWS CodeStar. This reference provides descriptions of the operations and data types for the AWS CodeStar API along with usage examples. You can use the AWS CodeStar API to work with: Projects and their resources, by calling the following: DeleteProject, which deletes a project in AWS CodeStar. DescribeProject, which lists the attributes of a project. ListProjects, which lists all AWS CodeStar projects associated with your AWS account. ListResources, which lists the resources associated with an AWS CodeStar project. UpdateProject, which updates the attributes of an AWS CodeStar project. Teams and team members, by calling the following: AssociateTeamMember, which adds an IAM user to the team for an AWS CodeStar project. DisassociateTeamMember, which removes an IAM user from the team for an AWS CodeStar project. ListTeamMembers, which lists all the IAM users in the team for an AWS CodeStar project, including their roles and attributes. Users, by calling the following: CreateUserProfile, which creates a user profile that contains data associated with the user across all AWS CodeStar projects. DeleteUserProfile, which deletes all user profile information across all AWS CodeStar projects. DescribeUserProfile, which describes the profile of a user. ListUserProfiles, which lists all AWS CodeStar user profiles. UpdateUserProfile, which updates the profile for an AWS CodeStar user. +AWS CodeStar This is the API reference for AWS CodeStar. This reference provides descriptions of the operations and data types for the AWS CodeStar API along with usage examples. You can use the AWS CodeStar API to work with: Projects and their resources, by calling the following: DeleteProject, which deletes a project. DescribeProject, which lists the attributes of a project. ListProjects, which lists all projects associated with your AWS account. ListResources, which lists the resources associated with a project. ListTagsForProject, which lists the tags associated with a project. TagProject, which adds tags to a project. UntagProject, which removes tags from a project. UpdateProject, which updates the attributes of a project. Teams and team members, by calling the following: AssociateTeamMember, which adds an IAM user to the team for a project. DisassociateTeamMember, which removes an IAM user from the team for a project. ListTeamMembers, which lists all the IAM users in the team for a project, including their roles and attributes. UpdateTeamMember, which updates a team member's attributes in a project. Users, by calling the following: CreateUserProfile, which creates a user profile that contains data associated with the user across all projects. DeleteUserProfile, which deletes all user profile information across all projects. DescribeUserProfile, which describes the profile of a user. ListUserProfiles, which lists all user profiles. UpdateUserProfile, which updates the profile for a user. */ public struct Codestar { @@ -60,11 +60,21 @@ public struct Codestar { return try client.send(operation: "DeleteProject", path: "/", httpMethod: "POST", input: input) } + /// Adds tags to a project. + public func tagProject(_ input: TagProjectRequest) throws -> TagProjectResult { + return try client.send(operation: "TagProject", path: "/", httpMethod: "POST", input: input) + } + /// Lists resources associated with a project in AWS CodeStar. public func listResources(_ input: ListResourcesRequest) throws -> ListResourcesResult { return try client.send(operation: "ListResources", path: "/", httpMethod: "POST", input: input) } + /// Removes tags from a project. + public func untagProject(_ input: UntagProjectRequest) throws -> UntagProjectResult { + return try client.send(operation: "UntagProject", path: "/", httpMethod: "POST", input: input) + } + /// Lists all team members associated with a project. public func listTeamMembers(_ input: ListTeamMembersRequest) throws -> ListTeamMembersResult { return try client.send(operation: "ListTeamMembers", path: "/", httpMethod: "POST", input: input) @@ -95,6 +105,11 @@ public struct Codestar { return try client.send(operation: "UpdateTeamMember", path: "/", httpMethod: "POST", input: input) } + /// Gets the tags for a project. + public func listTagsForProject(_ input: ListTagsForProjectRequest) throws -> ListTagsForProjectResult { + return try client.send(operation: "ListTagsForProject", path: "/", httpMethod: "POST", input: input) + } + /// Describes a project and its resources. public func describeProject(_ input: DescribeProjectRequest) throws -> DescribeProjectResult { return try client.send(operation: "DescribeProject", path: "/", httpMethod: "POST", input: input) diff --git a/Sources/AWSSDKSwift/Services/codestar/Codestar_Shapes.swift b/Sources/AWSSDKSwift/Services/codestar/Codestar_Shapes.swift index db8bc76e9e2..1c1d048f4ca 100644 --- a/Sources/AWSSDKSwift/Services/codestar/Codestar_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/codestar/Codestar_Shapes.swift @@ -5,8 +5,29 @@ import AWSSDKSwiftCore extension Codestar { + public struct UntagProjectRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "id", required: true, type: .string), + AWSShapeMember(label: "tags", required: true, type: .list) + ] + /// The ID of the project to remove tags from. + public let id: String + /// The tags to remove from the project. + public let tags: [String] + + public init(id: String, tags: [String]) { + self.id = id + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case tags = "tags" + } + } + public struct CreateUserProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "emailAddress", required: true, type: .string), AWSShapeMember(label: "displayName", required: true, type: .string), AWSShapeMember(label: "userArn", required: true, type: .string), @@ -37,7 +58,7 @@ extension Codestar { } public struct ListUserProfilesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer) ] @@ -57,8 +78,50 @@ extension Codestar { } } + public struct ListTagsForProjectResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "tags", required: false, type: .map), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The tags for the project. + public let tags: [String: String]? + /// Reserved for future use. + public let nextToken: String? + + public init(tags: [String: String]? = nil, nextToken: String? = nil) { + self.tags = tags + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case tags = "tags" + case nextToken = "nextToken" + } + } + + public struct TagProjectRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "id", required: true, type: .string), + AWSShapeMember(label: "tags", required: true, type: .map) + ] + /// The ID of the project you want to add a tag to. + public let id: String + /// The tags you want to add to the project. + public let tags: [String: String] + + public init(id: String, tags: [String: String]) { + self.id = id + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case tags = "tags" + } + } + public struct UpdateUserProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "createdTimestamp", required: false, type: .timestamp), AWSShapeMember(label: "emailAddress", required: false, type: .string), AWSShapeMember(label: "displayName", required: false, type: .string), @@ -99,7 +162,7 @@ extension Codestar { } public struct CreateProjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "id", required: true, type: .string), @@ -134,7 +197,7 @@ extension Codestar { } public struct ListTeamMembersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "teamMembers", required: true, type: .list) ] @@ -155,7 +218,7 @@ extension Codestar { } public struct DeleteProjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: true, type: .string), AWSShapeMember(label: "clientRequestToken", required: false, type: .string), AWSShapeMember(label: "deleteStack", required: false, type: .boolean) @@ -181,7 +244,7 @@ extension Codestar { } public struct DeleteUserProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "userArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the user deleted from AWS CodeStar. @@ -197,7 +260,7 @@ extension Codestar { } public struct UpdateTeamMemberResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "userArn", required: false, type: .string), AWSShapeMember(label: "projectRole", required: false, type: .string), AWSShapeMember(label: "remoteAccessAllowed", required: false, type: .boolean) @@ -223,7 +286,7 @@ extension Codestar { } public struct DisassociateTeamMemberRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "userArn", required: true, type: .string), AWSShapeMember(label: "projectId", required: true, type: .string) ] @@ -244,7 +307,7 @@ extension Codestar { } public struct CreateUserProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "createdTimestamp", required: false, type: .timestamp), AWSShapeMember(label: "emailAddress", required: false, type: .string), AWSShapeMember(label: "displayName", required: false, type: .string), @@ -285,7 +348,7 @@ extension Codestar { } public struct CreateProjectResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "projectTemplateId", required: false, type: .string), AWSShapeMember(label: "id", required: true, type: .string), AWSShapeMember(label: "clientRequestToken", required: false, type: .string), @@ -316,7 +379,7 @@ extension Codestar { } public struct ListUserProfilesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "userProfiles", required: true, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -337,7 +400,7 @@ extension Codestar { } public struct DescribeUserProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "createdTimestamp", required: true, type: .timestamp), AWSShapeMember(label: "emailAddress", required: false, type: .string), AWSShapeMember(label: "displayName", required: false, type: .string), @@ -377,8 +440,24 @@ extension Codestar { } } + public struct TagProjectResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "tags", required: false, type: .map) + ] + /// The tags for the project. + public let tags: [String: String]? + + public init(tags: [String: String]? = nil) { + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case tags = "tags" + } + } + public struct DescribeProjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: true, type: .string) ] /// The ID of the project. @@ -393,8 +472,12 @@ extension Codestar { } } + public struct UntagProjectResult: AWSShape { + + } + public struct ListTeamMembersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "projectId", required: true, type: .string), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer) @@ -420,7 +503,7 @@ extension Codestar { } public struct ListResourcesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resources", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -441,7 +524,7 @@ extension Codestar { } public struct UserProfileSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "emailAddress", required: false, type: .string), AWSShapeMember(label: "displayName", required: false, type: .string), AWSShapeMember(label: "userArn", required: false, type: .string), @@ -472,10 +555,10 @@ extension Codestar { } public struct AssociateTeamMemberResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "clientRequestToken", required: false, type: .string) ] - /// The user- or system-generated token from the initial request that can be used to repeat the request. + /// The user- or system-generated token from the initial request that can be used to repeat the request. public let clientRequestToken: String? public init(clientRequestToken: String? = nil) { @@ -488,7 +571,7 @@ extension Codestar { } public struct UpdateUserProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "emailAddress", required: false, type: .string), AWSShapeMember(label: "displayName", required: false, type: .string), AWSShapeMember(label: "userArn", required: true, type: .string), @@ -519,7 +602,7 @@ extension Codestar { } public struct ListProjectsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "projects", required: true, type: .list) ] @@ -539,8 +622,34 @@ extension Codestar { } } + public struct ListTagsForProjectRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "id", required: true, type: .string), + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer) + ] + /// The ID of the project to get tags for. + public let id: String + /// Reserved for future use. + public let nextToken: String? + /// Reserved for future use. + public let maxResults: Int32? + + public init(id: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.id = id + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + public struct Resource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the resource. @@ -556,7 +665,7 @@ extension Codestar { } public struct AssociateTeamMemberRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "projectId", required: true, type: .string), AWSShapeMember(label: "projectRole", required: true, type: .string), AWSShapeMember(label: "remoteAccessAllowed", required: false, type: .boolean), @@ -569,9 +678,9 @@ extension Codestar { public let projectRole: String /// Whether the team member is allowed to use an SSH public/private key pair to remotely access project resources, for example Amazon EC2 instances. public let remoteAccessAllowed: Bool? - /// A user- or system-generated token that identifies the entity that requested the team member association to the project. This token can be used to repeat the request. + /// A user- or system-generated token that identifies the entity that requested the team member association to the project. This token can be used to repeat the request. public let clientRequestToken: String? - /// The Amazon Resource Name (ARN) for the IAM user you want to add to the DevHub project. + /// The Amazon Resource Name (ARN) for the IAM user you want to add to the AWS CodeStar project. public let userArn: String public init(projectId: String, projectRole: String, remoteAccessAllowed: Bool? = nil, clientRequestToken: String? = nil, userArn: String) { @@ -592,7 +701,7 @@ extension Codestar { } public struct DescribeUserProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "userArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the user. @@ -608,7 +717,7 @@ extension Codestar { } public struct ListResourcesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "projectId", required: true, type: .string), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer) @@ -617,7 +726,7 @@ extension Codestar { public let projectId: String /// The continuation token for the next set of results, if the results cannot be returned in one response. public let nextToken: String? - /// he maximum amount of data that can be contained in a single set of results. + /// The maximum amount of data that can be contained in a single set of results. public let maxResults: Int32? public init(projectId: String, nextToken: String? = nil, maxResults: Int32? = nil) { @@ -634,7 +743,7 @@ extension Codestar { } public struct ProjectSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "projectId", required: false, type: .string), AWSShapeMember(label: "projectArn", required: false, type: .string) ] @@ -655,7 +764,7 @@ extension Codestar { } public struct ListProjectsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer) ] @@ -676,7 +785,7 @@ extension Codestar { } public struct DeleteProjectResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "stackId", required: false, type: .string), AWSShapeMember(label: "projectArn", required: false, type: .string) ] @@ -697,7 +806,7 @@ extension Codestar { } public struct UpdateProjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: true, type: .string), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "description", required: false, type: .string) @@ -723,7 +832,7 @@ extension Codestar { } public struct TeamMember: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "userArn", required: true, type: .string), AWSShapeMember(label: "projectRole", required: true, type: .string), AWSShapeMember(label: "remoteAccessAllowed", required: false, type: .boolean) @@ -749,7 +858,7 @@ extension Codestar { } public struct DeleteUserProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "userArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the user to delete from AWS CodeStar. @@ -769,7 +878,7 @@ extension Codestar { } public struct UpdateTeamMemberRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "projectId", required: true, type: .string), AWSShapeMember(label: "projectRole", required: false, type: .string), AWSShapeMember(label: "remoteAccessAllowed", required: false, type: .boolean), @@ -800,7 +909,7 @@ extension Codestar { } public struct DescribeProjectResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "stackId", required: false, type: .string), diff --git a/Sources/AWSSDKSwift/Services/cognito-identity/CognitoIdentity_Shapes.swift b/Sources/AWSSDKSwift/Services/cognito-identity/CognitoIdentity_Shapes.swift index 37489673f97..11afe7e9783 100644 --- a/Sources/AWSSDKSwift/Services/cognito-identity/CognitoIdentity_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/cognito-identity/CognitoIdentity_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension CognitoIdentity { public struct MappingRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Claim", required: true, type: .string), AWSShapeMember(label: "MatchType", required: true, type: .enum), AWSShapeMember(label: "Value", required: true, type: .string), @@ -37,7 +37,7 @@ extension CognitoIdentity { } public struct CreateIdentityPoolInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OpenIdConnectProviderARNs", required: false, type: .list), AWSShapeMember(label: "CognitoIdentityProviders", required: false, type: .list), AWSShapeMember(label: "DeveloperProviderName", required: false, type: .string), @@ -83,7 +83,7 @@ extension CognitoIdentity { } public struct ListIdentityPoolsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: true, type: .integer) ] @@ -104,7 +104,7 @@ extension CognitoIdentity { } public struct Credentials: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecretKey", required: false, type: .string), AWSShapeMember(label: "AccessKeyId", required: false, type: .string), AWSShapeMember(label: "SessionToken", required: false, type: .string), @@ -135,7 +135,7 @@ extension CognitoIdentity { } public struct GetCredentialsForIdentityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomRoleArn", required: false, type: .string), AWSShapeMember(label: "Logins", required: false, type: .map), AWSShapeMember(label: "IdentityId", required: true, type: .string) @@ -161,7 +161,7 @@ extension CognitoIdentity { } public struct LookupDeveloperIdentityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeveloperUserIdentifier", required: false, type: .string), AWSShapeMember(label: "IdentityId", required: false, type: .string), AWSShapeMember(label: "IdentityPoolId", required: true, type: .string), @@ -197,7 +197,7 @@ extension CognitoIdentity { } public struct RulesConfigurationType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: true, type: .list) ] /// An array of rules. You can specify up to 25 rules per identity provider. Rules are evaluated in order. The first one to match specifies the role. @@ -213,7 +213,7 @@ extension CognitoIdentity { } public struct IdentityPool: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OpenIdConnectProviderARNs", required: false, type: .list), AWSShapeMember(label: "CognitoIdentityProviders", required: false, type: .list), AWSShapeMember(label: "DeveloperProviderName", required: false, type: .string), @@ -264,7 +264,7 @@ extension CognitoIdentity { } public struct IdentityPoolShortDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", required: false, type: .string), AWSShapeMember(label: "IdentityPoolName", required: false, type: .string) ] @@ -285,7 +285,7 @@ extension CognitoIdentity { } public struct ListIdentitiesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HideDisabled", required: false, type: .boolean), AWSShapeMember(label: "IdentityPoolId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -316,7 +316,7 @@ extension CognitoIdentity { } public struct DeleteIdentityPoolInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", required: true, type: .string) ] /// An identity pool ID in the format REGION:GUID. @@ -332,7 +332,7 @@ extension CognitoIdentity { } public struct GetCredentialsForIdentityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Credentials", required: false, type: .structure), AWSShapeMember(label: "IdentityId", required: false, type: .string) ] @@ -353,7 +353,7 @@ extension CognitoIdentity { } public struct MergeDeveloperIdentitiesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DestinationUserIdentifier", required: true, type: .string), AWSShapeMember(label: "IdentityPoolId", required: true, type: .string), AWSShapeMember(label: "SourceUserIdentifier", required: true, type: .string), @@ -384,7 +384,7 @@ extension CognitoIdentity { } public struct DeleteIdentitiesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UnprocessedIdentityIds", required: false, type: .list) ] /// An array of UnprocessedIdentityId objects, each of which contains an ErrorCode and IdentityId. @@ -400,7 +400,7 @@ extension CognitoIdentity { } public struct GetOpenIdTokenForDeveloperIdentityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TokenDuration", required: false, type: .long), AWSShapeMember(label: "IdentityId", required: false, type: .string), AWSShapeMember(label: "IdentityPoolId", required: true, type: .string), @@ -431,7 +431,7 @@ extension CognitoIdentity { } public struct GetOpenIdTokenInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Logins", required: false, type: .map), AWSShapeMember(label: "IdentityId", required: true, type: .string) ] @@ -452,7 +452,7 @@ extension CognitoIdentity { } public struct DeleteIdentitiesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityIdsToDelete", required: true, type: .list) ] /// A list of 1-60 identities that you want to delete. @@ -468,7 +468,7 @@ extension CognitoIdentity { } public struct GetIdInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: false, type: .string), AWSShapeMember(label: "IdentityPoolId", required: true, type: .string), AWSShapeMember(label: "Logins", required: false, type: .map) @@ -494,7 +494,7 @@ extension CognitoIdentity { } public struct ListIdentityPoolsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPools", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -515,7 +515,7 @@ extension CognitoIdentity { } public struct GetIdentityPoolRolesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", required: false, type: .string), AWSShapeMember(label: "RoleMappings", required: false, type: .map), AWSShapeMember(label: "Roles", required: false, type: .map) @@ -541,7 +541,7 @@ extension CognitoIdentity { } public struct GetOpenIdTokenForDeveloperIdentityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Token", required: false, type: .string), AWSShapeMember(label: "IdentityId", required: false, type: .string) ] @@ -562,7 +562,7 @@ extension CognitoIdentity { } public struct DescribeIdentityPoolInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", required: true, type: .string) ] /// An identity pool ID in the format REGION:GUID. @@ -578,7 +578,7 @@ extension CognitoIdentity { } public struct GetIdentityPoolRolesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", required: true, type: .string) ] /// An identity pool ID in the format REGION:GUID. @@ -594,7 +594,7 @@ extension CognitoIdentity { } public struct UnlinkDeveloperIdentityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeveloperUserIdentifier", required: true, type: .string), AWSShapeMember(label: "IdentityId", required: true, type: .string), AWSShapeMember(label: "IdentityPoolId", required: true, type: .string), @@ -625,7 +625,7 @@ extension CognitoIdentity { } public struct GetIdResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityId", required: false, type: .string) ] /// A unique identifier in the format REGION:GUID. @@ -653,7 +653,7 @@ extension CognitoIdentity { } public struct IdentityDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), AWSShapeMember(label: "IdentityId", required: false, type: .string), @@ -684,7 +684,7 @@ extension CognitoIdentity { } public struct SetIdentityPoolRolesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", required: true, type: .string), AWSShapeMember(label: "RoleMappings", required: false, type: .map), AWSShapeMember(label: "Roles", required: true, type: .map) @@ -710,7 +710,7 @@ extension CognitoIdentity { } public struct UnlinkIdentityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Logins", required: true, type: .map), AWSShapeMember(label: "LoginsToRemove", required: true, type: .list), AWSShapeMember(label: "IdentityId", required: true, type: .string) @@ -736,7 +736,7 @@ extension CognitoIdentity { } public struct GetOpenIdTokenResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Token", required: false, type: .string), AWSShapeMember(label: "IdentityId", required: false, type: .string) ] @@ -757,7 +757,7 @@ extension CognitoIdentity { } public struct CognitoIdentityProvider: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServerSideTokenCheck", required: false, type: .boolean), AWSShapeMember(label: "ProviderName", required: false, type: .string), AWSShapeMember(label: "ClientId", required: false, type: .string) @@ -783,7 +783,7 @@ extension CognitoIdentity { } public struct ListIdentitiesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", required: false, type: .string), AWSShapeMember(label: "Identities", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) @@ -809,7 +809,7 @@ extension CognitoIdentity { } public struct LookupDeveloperIdentityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeveloperUserIdentifierList", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "IdentityId", required: false, type: .string) @@ -835,7 +835,7 @@ extension CognitoIdentity { } public struct UnprocessedIdentityId: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorCode", required: false, type: .enum), AWSShapeMember(label: "IdentityId", required: false, type: .string) ] @@ -856,7 +856,7 @@ extension CognitoIdentity { } public struct MergeDeveloperIdentitiesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityId", required: false, type: .string) ] /// A unique identifier in the format REGION:GUID. @@ -880,7 +880,7 @@ extension CognitoIdentity { } public struct RoleMapping: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "RulesConfiguration", required: false, type: .structure), AWSShapeMember(label: "AmbiguousRoleResolution", required: false, type: .enum) @@ -912,7 +912,7 @@ extension CognitoIdentity { } public struct DescribeIdentityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityId", required: true, type: .string) ] /// A unique identifier in the format REGION:GUID. diff --git a/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_API.swift b/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_API.swift index f08dcd698c8..8e0ebbfe935 100644 --- a/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_API.swift +++ b/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_API.swift @@ -30,6 +30,11 @@ public struct CognitoIdp { return try client.send(operation: "AdminUpdateUserAttributes", path: "/", httpMethod: "POST", input: input) } + /// Lists the devices. + public func listDevices(_ input: ListDevicesRequest) throws -> ListDevicesResponse { + return try client.send(operation: "ListDevices", path: "/", httpMethod: "POST", input: input) + } + /// Lists the users in the specified group. Requires developer credentials. public func listUsersInGroup(_ input: ListUsersInGroupRequest) throws -> ListUsersInGroupResponse { return try client.send(operation: "ListUsersInGroup", path: "/", httpMethod: "POST", input: input) @@ -55,12 +60,17 @@ public struct CognitoIdp { _ = try client.send(operation: "AdminDeleteUser", path: "/", httpMethod: "POST", input: input) } - /// Gets information about a domain. - public func describeUserPoolDomain(_ input: DescribeUserPoolDomainRequest) throws -> DescribeUserPoolDomainResponse { - return try client.send(operation: "DescribeUserPoolDomain", path: "/", httpMethod: "POST", input: input) + /// Sets the user's multi-factor authentication (MFA) preference. + public func adminSetUserMFAPreference(_ input: AdminSetUserMFAPreferenceRequest) throws -> AdminSetUserMFAPreferenceResponse { + return try client.send(operation: "AdminSetUserMFAPreference", path: "/", httpMethod: "POST", input: input) + } + + /// Returns a unique generated shared secret key code for the user account. The request takes an access token or a session string, but not both. + public func associateSoftwareToken(_ input: AssociateSoftwareTokenRequest) throws -> AssociateSoftwareTokenResponse { + return try client.send(operation: "AssociateSoftwareToken", path: "/", httpMethod: "POST", input: input) } - /// Creates a new user in the specified user pool and sends a welcome message via email or phone (SMS). This message is based on a template that you configured in your call to CreateUserPool or UpdateUserPool. This template includes your custom sign-up instructions and placeholders for user name and temporary password. Requires developer credentials. + /// Creates a new user in the specified user pool. If MessageAction is not set, the default is to send a welcome message via email or phone (SMS). This message is based on a template that you configured in your call to or . This template includes your custom sign-up instructions and placeholders for user name and temporary password. Alternatively, you can call AdminCreateUser with “SUPPRESS” for the MessageAction parameter, and Amazon Cognito will not send any email. In either case, the user will be in the FORCE_CHANGE_PASSWORD state until they sign in and change their password. AdminCreateUser requires developer credentials. public func adminCreateUser(_ input: AdminCreateUserRequest) throws -> AdminCreateUserResponse { return try client.send(operation: "AdminCreateUser", path: "/", httpMethod: "POST", input: input) } @@ -80,16 +90,16 @@ public struct CognitoIdp { return try client.send(operation: "GetDevice", path: "/", httpMethod: "POST", input: input) } - /// Describes the user import job. - public func describeUserImportJob(_ input: DescribeUserImportJobRequest) throws -> DescribeUserImportJobResponse { - return try client.send(operation: "DescribeUserImportJob", path: "/", httpMethod: "POST", input: input) - } - /// Lists the clients that have been created for the specified user pool. public func listUserPoolClients(_ input: ListUserPoolClientsRequest) throws -> ListUserPoolClientsResponse { return try client.send(operation: "ListUserPoolClients", path: "/", httpMethod: "POST", input: input) } + /// Describes the user import job. + public func describeUserImportJob(_ input: DescribeUserImportJobRequest) throws -> DescribeUserImportJobResponse { + return try client.send(operation: "DescribeUserImportJob", path: "/", httpMethod: "POST", input: input) + } + /// Lists the user pools associated with an AWS account. public func listUserPools(_ input: ListUserPoolsRequest) throws -> ListUserPoolsResponse { return try client.send(operation: "ListUserPools", path: "/", httpMethod: "POST", input: input) @@ -100,21 +110,16 @@ public struct CognitoIdp { return try client.send(operation: "AdminListGroupsForUser", path: "/", httpMethod: "POST", input: input) } - /// Changes the password for a specified user in a user pool. - public func changePassword(_ input: ChangePasswordRequest) throws -> ChangePasswordResponse { - return try client.send(operation: "ChangePassword", path: "/", httpMethod: "POST", input: input) - } - - /// Updates the device status as an administrator. Requires developer credentials. - public func adminUpdateDeviceStatus(_ input: AdminUpdateDeviceStatusRequest) throws -> AdminUpdateDeviceStatusResponse { - return try client.send(operation: "AdminUpdateDeviceStatus", path: "/", httpMethod: "POST", input: input) - } - /// Creates the user pool client. public func createUserPoolClient(_ input: CreateUserPoolClientRequest) throws -> CreateUserPoolClientResponse { return try client.send(operation: "CreateUserPoolClient", path: "/", httpMethod: "POST", input: input) } + /// Changes the password for a specified user in a user pool. + public func changePassword(_ input: ChangePasswordRequest) throws -> ChangePasswordResponse { + return try client.send(operation: "ChangePassword", path: "/", httpMethod: "POST", input: input) + } + /// Lists the user import jobs. public func listUserImportJobs(_ input: ListUserImportJobsRequest) throws -> ListUserImportJobsResponse { return try client.send(operation: "ListUserImportJobs", path: "/", httpMethod: "POST", input: input) @@ -125,7 +130,12 @@ public struct CognitoIdp { _ = try client.send(operation: "ForgetDevice", path: "/", httpMethod: "POST", input: input) } - /// Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. If a verified phone number exists for the user, the confirmation code is sent to the phone number. Otherwise, if a verified email exists, the confirmation code is sent to the email. If neither a verified phone number nor a verified email exists, InvalidParameterException is thrown. To use the confirmation code for resetting the password, call ConfirmForgotPassword. + /// Links an existing user account in a user pool (DestinationUser) to an identity from an external identity provider (SourceUser) based on a specified attribute name and value from the external identity provider. This allows you to create a link from the existing user account to an external federated user identity that has not yet been used to sign in, so that the federated user identity can be used to sign in as the existing user account. For example, if there is an existing user with a username and password, this API links that user to a federated user identity, so that when the federated user identity is used, the user signs in as the existing user account. Because this API allows a user with an external federated identity to sign in as an existing user in the user pool, it is critical that it only be used with external identity providers and provider attributes that have been trusted by the application owner. See also . This action is enabled only for admin access and requires developer credentials. + public func adminLinkProviderForUser(_ input: AdminLinkProviderForUserRequest) throws -> AdminLinkProviderForUserResponse { + return try client.send(operation: "AdminLinkProviderForUser", path: "/", httpMethod: "POST", input: input) + } + + /// Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. If a verified phone number exists for the user, the confirmation code is sent to the phone number. Otherwise, if a verified email exists, the confirmation code is sent to the email. If neither a verified phone number nor a verified email exists, InvalidParameterException is thrown. To use the confirmation code for resetting the password, call . public func forgotPassword(_ input: ForgotPasswordRequest) throws -> ForgotPasswordResponse { return try client.send(operation: "ForgotPassword", path: "/", httpMethod: "POST", input: input) } @@ -135,9 +145,9 @@ public struct CognitoIdp { return try client.send(operation: "AdminRespondToAuthChallenge", path: "/", httpMethod: "POST", input: input) } - /// Gets the user attribute verification code for the specified attribute name. - public func getUserAttributeVerificationCode(_ input: GetUserAttributeVerificationCodeRequest) throws -> GetUserAttributeVerificationCodeResponse { - return try client.send(operation: "GetUserAttributeVerificationCode", path: "/", httpMethod: "POST", input: input) + /// Gets information about a domain. + public func describeUserPoolDomain(_ input: DescribeUserPoolDomainRequest) throws -> DescribeUserPoolDomainResponse { + return try client.send(operation: "DescribeUserPoolDomain", path: "/", httpMethod: "POST", input: input) } /// Updates the specified group with the specified attributes. Requires developer credentials. @@ -145,14 +155,39 @@ public struct CognitoIdp { return try client.send(operation: "UpdateGroup", path: "/", httpMethod: "POST", input: input) } + /// Creates a new group in the specified user pool. Requires developer credentials. + public func createGroup(_ input: CreateGroupRequest) throws -> CreateGroupResponse { + return try client.send(operation: "CreateGroup", path: "/", httpMethod: "POST", input: input) + } + /// Verifies the specified user attributes in the user pool. public func verifyUserAttribute(_ input: VerifyUserAttributeRequest) throws -> VerifyUserAttributeResponse { return try client.send(operation: "VerifyUserAttribute", path: "/", httpMethod: "POST", input: input) } - /// Creates a new group in the specified user pool. Requires developer credentials. - public func createGroup(_ input: CreateGroupRequest) throws -> CreateGroupResponse { - return try client.send(operation: "CreateGroup", path: "/", httpMethod: "POST", input: input) + /// Configures actions on detected risks. To delete the risk configuration for UserPoolId or ClientId, pass null values for all four configuration types. To enable Amazon Cognito advanced security features, update the user pool to include the UserPoolAddOns keyAdvancedSecurityMode. See . + public func setRiskConfiguration(_ input: SetRiskConfigurationRequest) throws -> SetRiskConfigurationResponse { + return try client.send(operation: "SetRiskConfiguration", path: "/", httpMethod: "POST", input: input) + } + + /// Gets the user attribute verification code for the specified attribute name. + public func getUserAttributeVerificationCode(_ input: GetUserAttributeVerificationCodeRequest) throws -> GetUserAttributeVerificationCodeResponse { + return try client.send(operation: "GetUserAttributeVerificationCode", path: "/", httpMethod: "POST", input: input) + } + + /// Updates the device status as an administrator. Requires developer credentials. + public func adminUpdateDeviceStatus(_ input: AdminUpdateDeviceStatusRequest) throws -> AdminUpdateDeviceStatusResponse { + return try client.send(operation: "AdminUpdateDeviceStatus", path: "/", httpMethod: "POST", input: input) + } + + /// Gets the UI Customization information for a particular app client's app UI, if there is something set. If nothing is set for the particular client, but there is an existing pool level customization (app clientId will be ALL), then that is returned. If nothing is present, then an empty shape is returned. + public func getUICustomization(_ input: GetUICustomizationRequest) throws -> GetUICustomizationResponse { + return try client.send(operation: "GetUICustomization", path: "/", httpMethod: "POST", input: input) + } + + /// Set the user pool MFA configuration. + public func setUserPoolMfaConfig(_ input: SetUserPoolMfaConfigRequest) throws -> SetUserPoolMfaConfigResponse { + return try client.send(operation: "SetUserPoolMfaConfig", path: "/", httpMethod: "POST", input: input) } /// Stops the user import job. @@ -170,14 +205,19 @@ public struct CognitoIdp { return try client.send(operation: "AddCustomAttributes", path: "/", httpMethod: "POST", input: input) } + /// Gets the device, as an administrator. Requires developer credentials. + public func adminGetDevice(_ input: AdminGetDeviceRequest) throws -> AdminGetDeviceResponse { + return try client.send(operation: "AdminGetDevice", path: "/", httpMethod: "POST", input: input) + } + /// Updates the device status. public func updateDeviceStatus(_ input: UpdateDeviceStatusRequest) throws -> UpdateDeviceStatusResponse { return try client.send(operation: "UpdateDeviceStatus", path: "/", httpMethod: "POST", input: input) } - /// Gets the device, as an administrator. Requires developer credentials. - public func adminGetDevice(_ input: AdminGetDeviceRequest) throws -> AdminGetDeviceResponse { - return try client.send(operation: "AdminGetDevice", path: "/", httpMethod: "POST", input: input) + /// Use this API to register a user's entered TOTP code and mark the user's software token MFA status as "verified" if successful, + public func verifySoftwareToken(_ input: VerifySoftwareTokenRequest) throws -> VerifySoftwareTokenResponse { + return try client.send(operation: "VerifySoftwareToken", path: "/", httpMethod: "POST", input: input) } /// Updates identity provider information for a user pool. @@ -190,31 +230,46 @@ public struct CognitoIdp { return try client.send(operation: "CreateUserPool", path: "/", httpMethod: "POST", input: input) } - /// Allows a user to delete one's self. + /// Allows a user to delete himself or herself. public func deleteUser(_ input: DeleteUserRequest) throws { _ = try client.send(operation: "DeleteUser", path: "/", httpMethod: "POST", input: input) } - /// Disables the specified user as an administrator. Works on any user. Requires developer credentials. - public func adminDisableUser(_ input: AdminDisableUserRequest) throws -> AdminDisableUserResponse { - return try client.send(operation: "AdminDisableUser", path: "/", httpMethod: "POST", input: input) - } - /// Signs out users from all devices, as an administrator. Requires developer credentials. public func adminUserGlobalSignOut(_ input: AdminUserGlobalSignOutRequest) throws -> AdminUserGlobalSignOutResponse { return try client.send(operation: "AdminUserGlobalSignOut", path: "/", httpMethod: "POST", input: input) } + /// Disables the specified user as an administrator. Works on any user. Requires developer credentials. + public func adminDisableUser(_ input: AdminDisableUserRequest) throws -> AdminDisableUserResponse { + return try client.send(operation: "AdminDisableUser", path: "/", httpMethod: "POST", input: input) + } + /// Registers the user in the specified user pool and creates a user name, password, and user attributes. public func signUp(_ input: SignUpRequest) throws -> SignUpResponse { return try client.send(operation: "SignUp", path: "/", httpMethod: "POST", input: input) } + /// Describes a resource server. + public func describeResourceServer(_ input: DescribeResourceServerRequest) throws -> DescribeResourceServerResponse { + return try client.send(operation: "DescribeResourceServer", path: "/", httpMethod: "POST", input: input) + } + /// Deletes the attributes for a user. public func deleteUserAttributes(_ input: DeleteUserAttributesRequest) throws -> DeleteUserAttributesResponse { return try client.send(operation: "DeleteUserAttributes", path: "/", httpMethod: "POST", input: input) } + /// Deletes a resource server. + public func deleteResourceServer(_ input: DeleteResourceServerRequest) throws { + _ = try client.send(operation: "DeleteResourceServer", path: "/", httpMethod: "POST", input: input) + } + + /// Gets the user pool multi-factor authentication (MFA) configuration. + public func getUserPoolMfaConfig(_ input: GetUserPoolMfaConfigRequest) throws -> GetUserPoolMfaConfigResponse { + return try client.send(operation: "GetUserPoolMfaConfig", path: "/", httpMethod: "POST", input: input) + } + /// Returns the configuration information and metadata of the specified user pool. public func describeUserPool(_ input: DescribeUserPoolRequest) throws -> DescribeUserPoolResponse { return try client.send(operation: "DescribeUserPool", path: "/", httpMethod: "POST", input: input) @@ -235,11 +290,6 @@ public struct CognitoIdp { return try client.send(operation: "DescribeUserPoolClient", path: "/", httpMethod: "POST", input: input) } - /// Deletes a domain for a user pool. - public func deleteUserPoolDomain(_ input: DeleteUserPoolDomainRequest) throws -> DeleteUserPoolDomainResponse { - return try client.send(operation: "DeleteUserPoolDomain", path: "/", httpMethod: "POST", input: input) - } - /// Confirms tracking of the device. This API call is the call that begins device tracking. public func confirmDevice(_ input: ConfirmDeviceRequest) throws -> ConfirmDeviceResponse { return try client.send(operation: "ConfirmDevice", path: "/", httpMethod: "POST", input: input) @@ -250,14 +300,19 @@ public struct CognitoIdp { return try client.send(operation: "AdminConfirmSignUp", path: "/", httpMethod: "POST", input: input) } + /// Deletes a domain for a user pool. + public func deleteUserPoolDomain(_ input: DeleteUserPoolDomainRequest) throws -> DeleteUserPoolDomainResponse { + return try client.send(operation: "DeleteUserPoolDomain", path: "/", httpMethod: "POST", input: input) + } + /// Allows a user to enter a confirmation code to reset a forgotten password. public func confirmForgotPassword(_ input: ConfirmForgotPasswordRequest) throws -> ConfirmForgotPasswordResponse { return try client.send(operation: "ConfirmForgotPassword", path: "/", httpMethod: "POST", input: input) } - /// Deletes a group. Currently only groups with no members can be deleted. Requires developer credentials. - public func deleteGroup(_ input: DeleteGroupRequest) throws { - _ = try client.send(operation: "DeleteGroup", path: "/", httpMethod: "POST", input: input) + /// Describes the risk configuration. + public func describeRiskConfiguration(_ input: DescribeRiskConfigurationRequest) throws -> DescribeRiskConfigurationResponse { + return try client.send(operation: "DescribeRiskConfiguration", path: "/", httpMethod: "POST", input: input) } /// Lists the users in the Amazon Cognito user pool. @@ -275,6 +330,21 @@ public struct CognitoIdp { return try client.send(operation: "GetIdentityProviderByIdentifier", path: "/", httpMethod: "POST", input: input) } + /// Deletes a group. Currently only groups with no members can be deleted. Requires developer credentials. + public func deleteGroup(_ input: DeleteGroupRequest) throws { + _ = try client.send(operation: "DeleteGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Sets the UI customization information for a user pool's built-in app UI. You can specify app UI customization settings for a single client (with a specific clientId) or for all clients (by setting the clientId to ALL). If you specify ALL, the default configuration will be used for every client that has no UI customization set previously. If you specify UI customization settings for a particular client, it will no longer fall back to the ALL configuration. To use this API, your user pool must have a domain associated with it. Otherwise, there is no place to host the app's pages, and the service will throw an error. + public func setUICustomization(_ input: SetUICustomizationRequest) throws -> SetUICustomizationResponse { + return try client.send(operation: "SetUICustomization", path: "/", httpMethod: "POST", input: input) + } + + /// Adds the specified user to the specified group. Requires developer credentials. + public func adminAddUserToGroup(_ input: AdminAddUserToGroupRequest) throws { + _ = try client.send(operation: "AdminAddUserToGroup", path: "/", httpMethod: "POST", input: input) + } + /// Creates a new domain for a user pool. public func createUserPoolDomain(_ input: CreateUserPoolDomainRequest) throws -> CreateUserPoolDomainResponse { return try client.send(operation: "CreateUserPoolDomain", path: "/", httpMethod: "POST", input: input) @@ -285,14 +355,9 @@ public struct CognitoIdp { return try client.send(operation: "CreateUserImportJob", path: "/", httpMethod: "POST", input: input) } - /// Adds the specified user to the specified group. Requires developer credentials. - public func adminAddUserToGroup(_ input: AdminAddUserToGroupRequest) throws { - _ = try client.send(operation: "AdminAddUserToGroup", path: "/", httpMethod: "POST", input: input) - } - - /// Gets information about a specific identity provider. - public func describeIdentityProvider(_ input: DescribeIdentityProviderRequest) throws -> DescribeIdentityProviderResponse { - return try client.send(operation: "DescribeIdentityProvider", path: "/", httpMethod: "POST", input: input) + /// Lists devices, as an administrator. Requires developer credentials. + public func adminListDevices(_ input: AdminListDevicesRequest) throws -> AdminListDevicesResponse { + return try client.send(operation: "AdminListDevices", path: "/", httpMethod: "POST", input: input) } /// Allows a user to update a specific attribute (one at a time). @@ -300,19 +365,19 @@ public struct CognitoIdp { return try client.send(operation: "UpdateUserAttributes", path: "/", httpMethod: "POST", input: input) } - /// Lists devices, as an administrator. Requires developer credentials. - public func adminListDevices(_ input: AdminListDevicesRequest) throws -> AdminListDevicesResponse { - return try client.send(operation: "AdminListDevices", path: "/", httpMethod: "POST", input: input) + /// Gets information about a specific identity provider. + public func describeIdentityProvider(_ input: DescribeIdentityProviderRequest) throws -> DescribeIdentityProviderResponse { + return try client.send(operation: "DescribeIdentityProvider", path: "/", httpMethod: "POST", input: input) } - /// Gets the user attributes and metadata for a user. - public func getUser(_ input: GetUserRequest) throws -> GetUserResponse { - return try client.send(operation: "GetUser", path: "/", httpMethod: "POST", input: input) + /// Lists a history of user activity and any risks detected as part of Amazon Cognito advanced security. + public func adminListUserAuthEvents(_ input: AdminListUserAuthEventsRequest) throws -> AdminListUserAuthEventsResponse { + return try client.send(operation: "AdminListUserAuthEvents", path: "/", httpMethod: "POST", input: input) } - /// Removes the specified user from the specified group. Requires developer credentials. - public func adminRemoveUserFromGroup(_ input: AdminRemoveUserFromGroupRequest) throws { - _ = try client.send(operation: "AdminRemoveUserFromGroup", path: "/", httpMethod: "POST", input: input) + /// Provides the feedback for an authentication event whether it was from a valid user or not. This feedback is used for improving the risk evaluation decision for the user pool as part of Amazon Cognito advanced security. + public func updateAuthEventFeedback(_ input: UpdateAuthEventFeedbackRequest) throws -> UpdateAuthEventFeedbackResponse { + return try client.send(operation: "UpdateAuthEventFeedback", path: "/", httpMethod: "POST", input: input) } /// Allows the developer to update the specified user pool client and password policy. @@ -325,9 +390,9 @@ public struct CognitoIdp { return try client.send(operation: "GlobalSignOut", path: "/", httpMethod: "POST", input: input) } - /// Initiates the authentication flow. - public func initiateAuth(_ input: InitiateAuthRequest) throws -> InitiateAuthResponse { - return try client.send(operation: "InitiateAuth", path: "/", httpMethod: "POST", input: input) + /// Set the user's multi-factor authentication (MFA) method preference. + public func setUserMFAPreference(_ input: SetUserMFAPreferenceRequest) throws -> SetUserMFAPreferenceResponse { + return try client.send(operation: "SetUserMFAPreference", path: "/", httpMethod: "POST", input: input) } /// Deletes the user attributes in a user pool as an administrator. Works on any user. Requires developer credentials. @@ -335,6 +400,21 @@ public struct CognitoIdp { return try client.send(operation: "AdminDeleteUserAttributes", path: "/", httpMethod: "POST", input: input) } + /// Initiates the authentication flow. + public func initiateAuth(_ input: InitiateAuthRequest) throws -> InitiateAuthResponse { + return try client.send(operation: "InitiateAuth", path: "/", httpMethod: "POST", input: input) + } + + /// Removes the specified user from the specified group. Requires developer credentials. + public func adminRemoveUserFromGroup(_ input: AdminRemoveUserFromGroupRequest) throws { + _ = try client.send(operation: "AdminRemoveUserFromGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Gets the user attributes and metadata for a user. + public func getUser(_ input: GetUserRequest) throws -> GetUserResponse { + return try client.send(operation: "GetUser", path: "/", httpMethod: "POST", input: input) + } + /// Forgets the device, as an administrator. Requires developer credentials. public func adminForgetDevice(_ input: AdminForgetDeviceRequest) throws { _ = try client.send(operation: "AdminForgetDevice", path: "/", httpMethod: "POST", input: input) @@ -345,36 +425,56 @@ public struct CognitoIdp { return try client.send(operation: "UpdateUserPool", path: "/", httpMethod: "POST", input: input) } + /// Provides feedback for an authentication event as to whether it was from a valid user. This feedback is used for improving the risk evaluation decision for the user pool as part of Amazon Cognito advanced security. + public func adminUpdateAuthEventFeedback(_ input: AdminUpdateAuthEventFeedbackRequest) throws -> AdminUpdateAuthEventFeedbackResponse { + return try client.send(operation: "AdminUpdateAuthEventFeedback", path: "/", httpMethod: "POST", input: input) + } + + /// Disables the user from signing in with the specified external (SAML or social) identity provider. If the user to disable is a Cognito User Pools native username + password user, they are not permitted to use their password to sign-in. If the user to disable is a linked external IdP user, any link between that user and an existing user is removed. The next time the external user (no longer attached to the previously linked DestinationUser) signs in, they must create a new user account. See . This action is enabled only for admin access and requires developer credentials. The ProviderName must match the value specified when creating an IdP for the pool. To disable a native username + password user, the ProviderName value must be Cognito and the ProviderAttributeName must be Cognito_Subject, with the ProviderAttributeValue being the name that is used in the user pool for the user. The ProviderAttributeName must always be Cognito_Subject for social identity providers. The ProviderAttributeValue must always be the exact subject that was used when the user was originally linked as a source user. For de-linking a SAML identity, there are two scenarios. If the linked identity has not yet been used to sign-in, the ProviderAttributeName and ProviderAttributeValue must be the same values that were used for the SourceUser when the identities were originally linked in the call. (If the linking was done with ProviderAttributeName set to Cognito_Subject, the same applies here). However, if the user has already signed in, the ProviderAttributeName must be Cognito_Subject and ProviderAttributeValue must be the subject of the SAML assertion. + public func adminDisableProviderForUser(_ input: AdminDisableProviderForUserRequest) throws -> AdminDisableProviderForUserResponse { + return try client.send(operation: "AdminDisableProviderForUser", path: "/", httpMethod: "POST", input: input) + } + /// Sets all the user settings for a specified user name. Works on any user. Requires developer credentials. public func adminSetUserSettings(_ input: AdminSetUserSettingsRequest) throws -> AdminSetUserSettingsResponse { return try client.send(operation: "AdminSetUserSettings", path: "/", httpMethod: "POST", input: input) } - /// Resets the specified user's password in a user pool as an administrator. Works on any user. When a developer calls this API, the current password is invalidated, so it must be changed. If a user tries to sign in after the API is called, the app will get a PasswordResetRequiredException exception back and should direct the user down the flow to reset the password, which is the same as the forgot password flow. In addition, if the user pool has phone verification selected and a verified phone number exists for the user, or if email verification is selected and a verified email exists for the user, calling this API will also result in sending a message to the end user with the code to change their password. Requires developer credentials. - public func adminResetUserPassword(_ input: AdminResetUserPasswordRequest) throws -> AdminResetUserPasswordResponse { - return try client.send(operation: "AdminResetUserPassword", path: "/", httpMethod: "POST", input: input) - } - /// Initiates the authentication flow, as an administrator. Requires developer credentials. public func adminInitiateAuth(_ input: AdminInitiateAuthRequest) throws -> AdminInitiateAuthResponse { return try client.send(operation: "AdminInitiateAuth", path: "/", httpMethod: "POST", input: input) } + /// Updates the name and scopes of resource server. All other fields are read-only. + public func updateResourceServer(_ input: UpdateResourceServerRequest) throws -> UpdateResourceServerResponse { + return try client.send(operation: "UpdateResourceServer", path: "/", httpMethod: "POST", input: input) + } + + /// Resets the specified user's password in a user pool as an administrator. Works on any user. When a developer calls this API, the current password is invalidated, so it must be changed. If a user tries to sign in after the API is called, the app will get a PasswordResetRequiredException exception back and should direct the user down the flow to reset the password, which is the same as the forgot password flow. In addition, if the user pool has phone verification selected and a verified phone number exists for the user, or if email verification is selected and a verified email exists for the user, calling this API will also result in sending a message to the end user with the code to change their password. Requires developer credentials. + public func adminResetUserPassword(_ input: AdminResetUserPasswordRequest) throws -> AdminResetUserPasswordResponse { + return try client.send(operation: "AdminResetUserPassword", path: "/", httpMethod: "POST", input: input) + } + /// Sets the user settings like multi-factor authentication (MFA). If MFA is to be removed for a particular attribute pass the attribute with code delivery as null. If null list is passed, all MFA options are removed. public func setUserSettings(_ input: SetUserSettingsRequest) throws -> SetUserSettingsResponse { return try client.send(operation: "SetUserSettings", path: "/", httpMethod: "POST", input: input) } - /// Lists the groups associated with a user pool. Requires developer credentials. - public func listGroups(_ input: ListGroupsRequest) throws -> ListGroupsResponse { - return try client.send(operation: "ListGroups", path: "/", httpMethod: "POST", input: input) - } - /// Gets the header information for the .csv file to be used as input for the user import job. public func getCSVHeader(_ input: GetCSVHeaderRequest) throws -> GetCSVHeaderResponse { return try client.send(operation: "GetCSVHeader", path: "/", httpMethod: "POST", input: input) } + /// Lists the resource servers for a user pool. + public func listResourceServers(_ input: ListResourceServersRequest) throws -> ListResourceServersResponse { + return try client.send(operation: "ListResourceServers", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the groups associated with a user pool. Requires developer credentials. + public func listGroups(_ input: ListGroupsRequest) throws -> ListGroupsResponse { + return try client.send(operation: "ListGroups", path: "/", httpMethod: "POST", input: input) + } + /// Deletes an identity provider for a user pool. public func deleteIdentityProvider(_ input: DeleteIdentityProviderRequest) throws { _ = try client.send(operation: "DeleteIdentityProvider", path: "/", httpMethod: "POST", input: input) @@ -390,9 +490,9 @@ public struct CognitoIdp { return try client.send(operation: "AdminEnableUser", path: "/", httpMethod: "POST", input: input) } - /// Lists the devices. - public func listDevices(_ input: ListDevicesRequest) throws -> ListDevicesResponse { - return try client.send(operation: "ListDevices", path: "/", httpMethod: "POST", input: input) + /// Creates a new OAuth2.0 resource server and defines custom scopes in it. + public func createResourceServer(_ input: CreateResourceServerRequest) throws -> CreateResourceServerResponse { + return try client.send(operation: "CreateResourceServer", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_Error.swift b/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_Error.swift index f0e13426112..3cf50dbc9b4 100644 --- a/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_Error.swift +++ b/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_Error.swift @@ -14,15 +14,16 @@ public enum CognitoIdpError: AWSErrorType { case notAuthorizedException(message: String?) case userNotFoundException(message: String?) case internalErrorException(message: String?) + case invalidUserPoolConfigurationException(message: String?) + case passwordResetRequiredException(message: String?) + case userNotConfirmedException(message: String?) case codeMismatchException(message: String?) case expiredCodeException(message: String?) case invalidPasswordException(message: String?) - case invalidUserPoolConfigurationException(message: String?) case mFAMethodNotFoundException(message: String?) - case passwordResetRequiredException(message: String?) - case userNotConfirmedException(message: String?) case invalidSmsRoleAccessPolicyException(message: String?) case invalidSmsRoleTrustRelationshipException(message: String?) + case softwareTokenMFANotFoundException(message: String?) case userImportInProgressException(message: String?) case usernameExistsException(message: String?) case codeDeliveryFailureException(message: String?) @@ -34,6 +35,8 @@ public enum CognitoIdpError: AWSErrorType { case invalidOAuthFlowException(message: String?) case invalidEmailRoleAccessPolicyException(message: String?) case groupExistsException(message: String?) + case userPoolAddOnNotEnabledException(message: String?) + case enableSoftwareTokenMFAException(message: String?) case unsupportedIdentityProviderException(message: String?) case userPoolTaggingException(message: String?) case tooManyFailedAttemptsException(message: String?) @@ -67,24 +70,26 @@ extension CognitoIdpError { self = .userNotFoundException(message: message) case "InternalErrorException": self = .internalErrorException(message: message) + case "InvalidUserPoolConfigurationException": + self = .invalidUserPoolConfigurationException(message: message) + case "PasswordResetRequiredException": + self = .passwordResetRequiredException(message: message) + case "UserNotConfirmedException": + self = .userNotConfirmedException(message: message) case "CodeMismatchException": self = .codeMismatchException(message: message) case "ExpiredCodeException": self = .expiredCodeException(message: message) case "InvalidPasswordException": self = .invalidPasswordException(message: message) - case "InvalidUserPoolConfigurationException": - self = .invalidUserPoolConfigurationException(message: message) case "MFAMethodNotFoundException": self = .mFAMethodNotFoundException(message: message) - case "PasswordResetRequiredException": - self = .passwordResetRequiredException(message: message) - case "UserNotConfirmedException": - self = .userNotConfirmedException(message: message) case "InvalidSmsRoleAccessPolicyException": self = .invalidSmsRoleAccessPolicyException(message: message) case "InvalidSmsRoleTrustRelationshipException": self = .invalidSmsRoleTrustRelationshipException(message: message) + case "SoftwareTokenMFANotFoundException": + self = .softwareTokenMFANotFoundException(message: message) case "UserImportInProgressException": self = .userImportInProgressException(message: message) case "UsernameExistsException": @@ -107,6 +112,10 @@ extension CognitoIdpError { self = .invalidEmailRoleAccessPolicyException(message: message) case "GroupExistsException": self = .groupExistsException(message: message) + case "UserPoolAddOnNotEnabledException": + self = .userPoolAddOnNotEnabledException(message: message) + case "EnableSoftwareTokenMFAException": + self = .enableSoftwareTokenMFAException(message: message) case "UnsupportedIdentityProviderException": self = .unsupportedIdentityProviderException(message: message) case "UserPoolTaggingException": diff --git a/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_Shapes.swift b/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_Shapes.swift index b8c660d964a..db53286b5b1 100644 --- a/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/cognito-idp/CognitoIdp_Shapes.swift @@ -5,8 +5,2808 @@ import AWSSDKSwiftCore extension CognitoIdp { + public struct AdminUserGlobalSignOutResponse: AWSShape { + + } + + public struct AddCustomAttributesResponse: AWSShape { + + } + + public enum VerifiedAttributeType: String, CustomStringConvertible, Codable { + case phoneNumber = "phone_number" + case email = "email" + public var description: String { return self.rawValue } + } + + public struct ListDevicesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "PaginationToken", required: false, type: .string), + AWSShapeMember(label: "AccessToken", required: true, type: .string) + ] + /// The limit of the device request. + public let limit: Int32? + /// The pagination token for the list request. + public let paginationToken: String? + /// The access tokens for the request to list devices. + public let accessToken: String + + public init(limit: Int32? = nil, paginationToken: String? = nil, accessToken: String) { + self.limit = limit + self.paginationToken = paginationToken + self.accessToken = accessToken + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case paginationToken = "PaginationToken" + case accessToken = "AccessToken" + } + } + + public struct AnalyticsConfigurationType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ExternalId", required: true, type: .string), + AWSShapeMember(label: "ApplicationId", required: true, type: .string), + AWSShapeMember(label: "RoleArn", required: true, type: .string), + AWSShapeMember(label: "UserDataShared", required: false, type: .boolean) + ] + /// The external ID. + public let externalId: String + /// The application ID for an Amazon Pinpoint application. + public let applicationId: String + /// The ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics. + public let roleArn: String + /// If UserDataShared is true, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics. + public let userDataShared: Bool? + + public init(externalId: String, applicationId: String, roleArn: String, userDataShared: Bool? = nil) { + self.externalId = externalId + self.applicationId = applicationId + self.roleArn = roleArn + self.userDataShared = userDataShared + } + + private enum CodingKeys: String, CodingKey { + case externalId = "ExternalId" + case applicationId = "ApplicationId" + case roleArn = "RoleArn" + case userDataShared = "UserDataShared" + } + } + + public struct DeleteUserPoolRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The user pool ID for the user pool you want to delete. + public let userPoolId: String + + public init(userPoolId: String) { + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case userPoolId = "UserPoolId" + } + } + + public struct GetUserAttributeVerificationCodeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CodeDeliveryDetails", required: false, type: .structure) + ] + /// The code delivery details returned by the server in response to the request to get the user attribute verification code. + public let codeDeliveryDetails: CodeDeliveryDetailsType? + + public init(codeDeliveryDetails: CodeDeliveryDetailsType? = nil) { + self.codeDeliveryDetails = codeDeliveryDetails + } + + private enum CodingKeys: String, CodingKey { + case codeDeliveryDetails = "CodeDeliveryDetails" + } + } + + public struct AdminRespondToAuthChallengeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContextData", required: false, type: .structure), + AWSShapeMember(label: "Session", required: false, type: .string), + AWSShapeMember(label: "ChallengeResponses", required: false, type: .map), + AWSShapeMember(label: "ChallengeName", required: true, type: .enum), + AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "AnalyticsMetadata", required: false, type: .structure), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security. + public let contextData: ContextDataType? + /// The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call. + public let session: String? + /// The challenge responses. These are inputs corresponding to the value of ChallengeName, for example: SMS_MFA: SMS_MFA_CODE, USERNAME, SECRET_HASH (if app client is configured with client secret). PASSWORD_VERIFIER: PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, TIMESTAMP, USERNAME, SECRET_HASH (if app client is configured with client secret). ADMIN_NO_SRP_AUTH: PASSWORD, USERNAME, SECRET_HASH (if app client is configured with client secret). NEW_PASSWORD_REQUIRED: NEW_PASSWORD, any other required attributes, USERNAME, SECRET_HASH (if app client is configured with client secret). The value of the USERNAME attribute must be the user's actual username, not an alias (such as email address or phone number). To make this easier, the AdminInitiateAuth response includes the actual username value in the USERNAMEUSER_ID_FOR_SRP attribute, even if you specified an alias in your call to AdminInitiateAuth. + public let challengeResponses: [String: String]? + /// The challenge name. For more information, see . + public let challengeName: ChallengeNameType + /// The app client ID. + public let clientId: String + /// The analytics metadata for collecting Amazon Pinpoint metrics for AdminRespondToAuthChallenge calls. + public let analyticsMetadata: AnalyticsMetadataType? + /// The ID of the Amazon Cognito user pool. + public let userPoolId: String + + public init(contextData: ContextDataType? = nil, session: String? = nil, challengeResponses: [String: String]? = nil, challengeName: ChallengeNameType, clientId: String, analyticsMetadata: AnalyticsMetadataType? = nil, userPoolId: String) { + self.contextData = contextData + self.session = session + self.challengeResponses = challengeResponses + self.challengeName = challengeName + self.clientId = clientId + self.analyticsMetadata = analyticsMetadata + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case contextData = "ContextData" + case session = "Session" + case challengeResponses = "ChallengeResponses" + case challengeName = "ChallengeName" + case clientId = "ClientId" + case analyticsMetadata = "AnalyticsMetadata" + case userPoolId = "UserPoolId" + } + } + + public struct InitiateAuthResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChallengeName", required: false, type: .enum), + AWSShapeMember(label: "ChallengeParameters", required: false, type: .map), + AWSShapeMember(label: "AuthenticationResult", required: false, type: .structure), + AWSShapeMember(label: "Session", required: false, type: .string) + ] + /// The name of the challenge which you are responding to with this call. This is returned to you in the AdminInitiateAuth response if you need to pass another challenge. Valid values include the following. Note that all of these challenges require USERNAME and SECRET_HASH (if applicable) in the parameters. SMS_MFA: Next challenge is to supply an SMS_MFA_CODE, delivered via SMS. PASSWORD_VERIFIER: Next challenge is to supply PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, and TIMESTAMP after the client-side SRP calculations. CUSTOM_CHALLENGE: This is returned if your custom authentication flow determines that the user should pass another challenge before tokens are issued. DEVICE_SRP_AUTH: If device tracking was enabled on your user pool and the previous challenges were passed, this challenge is returned so that Amazon Cognito can start tracking this device. DEVICE_PASSWORD_VERIFIER: Similar to PASSWORD_VERIFIER, but for devices only. NEW_PASSWORD_REQUIRED: For users which are required to change their passwords after successful first login. This challenge should be passed with NEW_PASSWORD and any other required attributes. + public let challengeName: ChallengeNameType? + /// The challenge parameters. These are returned to you in the InitiateAuth response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (RespondToAuthChallenge). All challenges require USERNAME and SECRET_HASH (if applicable). + public let challengeParameters: [String: String]? + /// The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, ChallengeName, ChallengeParameters, and Session are returned. + public let authenticationResult: AuthenticationResultType? + /// The session which should be passed both ways in challenge-response calls to the service. If the or API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call. + public let session: String? + + public init(challengeName: ChallengeNameType? = nil, challengeParameters: [String: String]? = nil, authenticationResult: AuthenticationResultType? = nil, session: String? = nil) { + self.challengeName = challengeName + self.challengeParameters = challengeParameters + self.authenticationResult = authenticationResult + self.session = session + } + + private enum CodingKeys: String, CodingKey { + case challengeName = "ChallengeName" + case challengeParameters = "ChallengeParameters" + case authenticationResult = "AuthenticationResult" + case session = "Session" + } + } + + public struct ConfirmSignUpResponse: AWSShape { + + } + + public struct DeleteUserAttributesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserAttributeNames", required: true, type: .list), + AWSShapeMember(label: "AccessToken", required: true, type: .string) + ] + /// An array of strings representing the user attribute names you wish to delete. For custom attributes, you must prepend the custom: prefix to the attribute name. + public let userAttributeNames: [String] + /// The access token used in the request to delete user attributes. + public let accessToken: String + + public init(userAttributeNames: [String], accessToken: String) { + self.userAttributeNames = userAttributeNames + self.accessToken = accessToken + } + + private enum CodingKeys: String, CodingKey { + case userAttributeNames = "UserAttributeNames" + case accessToken = "AccessToken" + } + } + + public struct StartUserImportJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobId", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The job ID for the user import job. + public let jobId: String + /// The user pool ID for the user pool that the users are being imported into. + public let userPoolId: String + + public init(jobId: String, userPoolId: String) { + self.jobId = jobId + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case jobId = "JobId" + case userPoolId = "UserPoolId" + } + } + + public struct GetUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccessToken", required: true, type: .string) + ] + /// The access token returned by the server response to get information about the user. + public let accessToken: String + + public init(accessToken: String) { + self.accessToken = accessToken + } + + private enum CodingKeys: String, CodingKey { + case accessToken = "AccessToken" + } + } + + public struct DescribeUserPoolDomainResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainDescription", required: false, type: .structure) + ] + /// A domain description object containing information about the domain. + public let domainDescription: DomainDescriptionType? + + public init(domainDescription: DomainDescriptionType? = nil) { + self.domainDescription = domainDescription + } + + private enum CodingKeys: String, CodingKey { + case domainDescription = "DomainDescription" + } + } + + public struct DeleteUserPoolClientRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The app client ID of the app associated with the user pool. + public let clientId: String + /// The user pool ID for the user pool where you want to delete the client. + public let userPoolId: String + + public init(clientId: String, userPoolId: String) { + self.clientId = clientId + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case clientId = "ClientId" + case userPoolId = "UserPoolId" + } + } + + public struct AdminRemoveUserFromGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "GroupName", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The username for the user. + public let username: String + /// The group name. + public let groupName: String + /// The user pool ID for the user pool. + public let userPoolId: String + + public init(username: String, groupName: String, userPoolId: String) { + self.username = username + self.groupName = groupName + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case username = "Username" + case groupName = "GroupName" + case userPoolId = "UserPoolId" + } + } + + public struct UpdateDeviceStatusRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceKey", required: true, type: .string), + AWSShapeMember(label: "DeviceRememberedStatus", required: false, type: .enum), + AWSShapeMember(label: "AccessToken", required: true, type: .string) + ] + /// The device key. + public let deviceKey: String + /// The status of whether a device is remembered. + public let deviceRememberedStatus: DeviceRememberedStatusType? + /// The access token. + public let accessToken: String + + public init(deviceKey: String, deviceRememberedStatus: DeviceRememberedStatusType? = nil, accessToken: String) { + self.deviceKey = deviceKey + self.deviceRememberedStatus = deviceRememberedStatus + self.accessToken = accessToken + } + + private enum CodingKeys: String, CodingKey { + case deviceKey = "DeviceKey" + case deviceRememberedStatus = "DeviceRememberedStatus" + case accessToken = "AccessToken" + } + } + + public struct RiskConfigurationType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RiskExceptionConfiguration", required: false, type: .structure), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "ClientId", required: false, type: .string), + AWSShapeMember(label: "CompromisedCredentialsRiskConfiguration", required: false, type: .structure), + AWSShapeMember(label: "AccountTakeoverRiskConfiguration", required: false, type: .structure), + AWSShapeMember(label: "UserPoolId", required: false, type: .string) + ] + /// The configuration to override the risk decision. + public let riskExceptionConfiguration: RiskExceptionConfigurationType? + /// The last modified date. + public let lastModifiedDate: TimeStamp? + /// The app client ID. + public let clientId: String? + /// The compromised credentials risk configuration object including the EventFilter and the EventAction + public let compromisedCredentialsRiskConfiguration: CompromisedCredentialsRiskConfigurationType? + /// The account takeover risk configuration object including the NotifyConfiguration object and Actions to take in the case of an account takeover. + public let accountTakeoverRiskConfiguration: AccountTakeoverRiskConfigurationType? + /// The user pool ID. + public let userPoolId: String? + + public init(riskExceptionConfiguration: RiskExceptionConfigurationType? = nil, lastModifiedDate: TimeStamp? = nil, clientId: String? = nil, compromisedCredentialsRiskConfiguration: CompromisedCredentialsRiskConfigurationType? = nil, accountTakeoverRiskConfiguration: AccountTakeoverRiskConfigurationType? = nil, userPoolId: String? = nil) { + self.riskExceptionConfiguration = riskExceptionConfiguration + self.lastModifiedDate = lastModifiedDate + self.clientId = clientId + self.compromisedCredentialsRiskConfiguration = compromisedCredentialsRiskConfiguration + self.accountTakeoverRiskConfiguration = accountTakeoverRiskConfiguration + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case riskExceptionConfiguration = "RiskExceptionConfiguration" + case lastModifiedDate = "LastModifiedDate" + case clientId = "ClientId" + case compromisedCredentialsRiskConfiguration = "CompromisedCredentialsRiskConfiguration" + case accountTakeoverRiskConfiguration = "AccountTakeoverRiskConfiguration" + case userPoolId = "UserPoolId" + } + } + + public struct UserPoolClientDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientName", required: false, type: .string), + AWSShapeMember(label: "ClientId", required: false, type: .string), + AWSShapeMember(label: "UserPoolId", required: false, type: .string) + ] + /// The client name from the user pool client description. + public let clientName: String? + /// The ID of the client associated with the user pool. + public let clientId: String? + /// The user pool ID for the user pool where you want to describe the user pool client. + public let userPoolId: String? + + public init(clientName: String? = nil, clientId: String? = nil, userPoolId: String? = nil) { + self.clientName = clientName + self.clientId = clientId + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case clientName = "ClientName" + case clientId = "ClientId" + case userPoolId = "UserPoolId" + } + } + + public struct DeviceSecretVerifierConfigType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Salt", required: false, type: .string), + AWSShapeMember(label: "PasswordVerifier", required: false, type: .string) + ] + /// The salt. + public let salt: String? + /// The password verifier. + public let passwordVerifier: String? + + public init(salt: String? = nil, passwordVerifier: String? = nil) { + self.salt = salt + self.passwordVerifier = passwordVerifier + } + + private enum CodingKeys: String, CodingKey { + case salt = "Salt" + case passwordVerifier = "PasswordVerifier" + } + } + + public struct RiskExceptionConfigurationType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BlockedIPRangeList", required: false, type: .list), + AWSShapeMember(label: "SkippedIPRangeList", required: false, type: .list) + ] + /// Overrides the risk decision to always block the pre-authentication requests. The IP range is in CIDR notation: a compact representation of an IP address and its associated routing prefix. + public let blockedIPRangeList: [String]? + /// Risk detection is not performed on the IP addresses in the range list. The IP range is in CIDR notation. + public let skippedIPRangeList: [String]? + + public init(blockedIPRangeList: [String]? = nil, skippedIPRangeList: [String]? = nil) { + self.blockedIPRangeList = blockedIPRangeList + self.skippedIPRangeList = skippedIPRangeList + } + + private enum CodingKeys: String, CodingKey { + case blockedIPRangeList = "BlockedIPRangeList" + case skippedIPRangeList = "SkippedIPRangeList" + } + } + + public struct ListUserImportJobsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PaginationToken", required: false, type: .string), + AWSShapeMember(label: "UserImportJobs", required: false, type: .list) + ] + /// An identifier that can be used to return the next set of user import jobs in the list. + public let paginationToken: String? + /// The user import jobs. + public let userImportJobs: [UserImportJobType]? + + public init(paginationToken: String? = nil, userImportJobs: [UserImportJobType]? = nil) { + self.paginationToken = paginationToken + self.userImportJobs = userImportJobs + } + + private enum CodingKeys: String, CodingKey { + case paginationToken = "PaginationToken" + case userImportJobs = "UserImportJobs" + } + } + + public struct AdminUpdateAuthEventFeedbackResponse: AWSShape { + + } + + public struct RespondToAuthChallengeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChallengeName", required: false, type: .enum), + AWSShapeMember(label: "ChallengeParameters", required: false, type: .map), + AWSShapeMember(label: "AuthenticationResult", required: false, type: .structure), + AWSShapeMember(label: "Session", required: false, type: .string) + ] + /// The challenge name. For more information, see . + public let challengeName: ChallengeNameType? + /// The challenge parameters. For more information, see . + public let challengeParameters: [String: String]? + /// The result returned by the server in response to the request to respond to the authentication challenge. + public let authenticationResult: AuthenticationResultType? + /// The session which should be passed both ways in challenge-response calls to the service. If the or API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call. + public let session: String? + + public init(challengeName: ChallengeNameType? = nil, challengeParameters: [String: String]? = nil, authenticationResult: AuthenticationResultType? = nil, session: String? = nil) { + self.challengeName = challengeName + self.challengeParameters = challengeParameters + self.authenticationResult = authenticationResult + self.session = session + } + + private enum CodingKeys: String, CodingKey { + case challengeName = "ChallengeName" + case challengeParameters = "ChallengeParameters" + case authenticationResult = "AuthenticationResult" + case session = "Session" + } + } + + public struct CreateUserPoolClientResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolClient", required: false, type: .structure) + ] + /// The user pool client that was just created. + public let userPoolClient: UserPoolClientType? + + public init(userPoolClient: UserPoolClientType? = nil) { + self.userPoolClient = userPoolClient + } + + private enum CodingKeys: String, CodingKey { + case userPoolClient = "UserPoolClient" + } + } + + public struct ListGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Groups", required: false, type: .list) + ] + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// The group objects for the groups. + public let groups: [GroupType]? + + public init(nextToken: String? = nil, groups: [GroupType]? = nil) { + self.nextToken = nextToken + self.groups = groups + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case groups = "Groups" + } + } + + public struct AdminInitiateAuthRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContextData", required: false, type: .structure), + AWSShapeMember(label: "AuthParameters", required: false, type: .map), + AWSShapeMember(label: "AuthFlow", required: true, type: .enum), + AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "ClientMetadata", required: false, type: .map), + AWSShapeMember(label: "AnalyticsMetadata", required: false, type: .structure), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security. + public let contextData: ContextDataType? + /// The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow: For USER_SRP_AUTH: USERNAME (required), SRP_A (required), SECRET_HASH (required if the app client is configured with a client secret), DEVICE_KEY For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: USERNAME (required), SECRET_HASH (required if the app client is configured with a client secret), REFRESH_TOKEN (required), DEVICE_KEY For ADMIN_NO_SRP_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), PASSWORD (required), DEVICE_KEY For CUSTOM_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), DEVICE_KEY + public let authParameters: [String: String]? + /// The authentication flow for this call to execute. The API action will depend on this value. For example: REFRESH_TOKEN_AUTH will take in a valid refresh token and return new tokens. USER_SRP_AUTH will take in USERNAME and SRP_A and return the SRP variables to be used for next challenge execution. Valid values include: USER_SRP_AUTH: Authentication flow for the Secure Remote Password (SRP) protocol. REFRESH_TOKEN_AUTH/REFRESH_TOKEN: Authentication flow for refreshing the access token and ID token by supplying a valid refresh token. CUSTOM_AUTH: Custom authentication flow. ADMIN_NO_SRP_AUTH: Non-SRP authentication flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled for calling the app client. + public let authFlow: AuthFlowType + /// The app client ID. + public let clientId: String + /// This is a random key-value pair map which can contain any key and will be passed to your PreAuthentication Lambda trigger as-is. It can be used to implement additional validations around authentication. + public let clientMetadata: [String: String]? + /// The analytics metadata for collecting Amazon Pinpoint metrics for AdminInitiateAuth calls. + public let analyticsMetadata: AnalyticsMetadataType? + /// The ID of the Amazon Cognito user pool. + public let userPoolId: String + + public init(contextData: ContextDataType? = nil, authParameters: [String: String]? = nil, authFlow: AuthFlowType, clientId: String, clientMetadata: [String: String]? = nil, analyticsMetadata: AnalyticsMetadataType? = nil, userPoolId: String) { + self.contextData = contextData + self.authParameters = authParameters + self.authFlow = authFlow + self.clientId = clientId + self.clientMetadata = clientMetadata + self.analyticsMetadata = analyticsMetadata + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case contextData = "ContextData" + case authParameters = "AuthParameters" + case authFlow = "AuthFlow" + case clientId = "ClientId" + case clientMetadata = "ClientMetadata" + case analyticsMetadata = "AnalyticsMetadata" + case userPoolId = "UserPoolId" + } + } + + public struct DescribeIdentityProviderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProviderName", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The identity provider name. + public let providerName: String + /// The user pool ID. + public let userPoolId: String + + public init(providerName: String, userPoolId: String) { + self.providerName = providerName + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case providerName = "ProviderName" + case userPoolId = "UserPoolId" + } + } + + public struct CreateUserPoolDomainResponse: AWSShape { + + } + + public struct UpdateUserPoolClientResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolClient", required: false, type: .structure) + ] + /// The user pool client value from the response from the server when an update user pool client request is made. + public let userPoolClient: UserPoolClientType? + + public init(userPoolClient: UserPoolClientType? = nil) { + self.userPoolClient = userPoolClient + } + + private enum CodingKeys: String, CodingKey { + case userPoolClient = "UserPoolClient" + } + } + + public struct UpdateIdentityProviderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IdpIdentifiers", required: false, type: .list), + AWSShapeMember(label: "ProviderName", required: true, type: .string), + AWSShapeMember(label: "AttributeMapping", required: false, type: .map), + AWSShapeMember(label: "ProviderDetails", required: false, type: .map), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// A list of identity provider identifiers. + public let idpIdentifiers: [String]? + /// The identity provider name. + public let providerName: String + /// The identity provider attribute mapping to be changed. + public let attributeMapping: [String: String]? + /// The identity provider details to be updated, such as MetadataURL and MetadataFile. + public let providerDetails: [String: String]? + /// The user pool ID. + public let userPoolId: String + + public init(idpIdentifiers: [String]? = nil, providerName: String, attributeMapping: [String: String]? = nil, providerDetails: [String: String]? = nil, userPoolId: String) { + self.idpIdentifiers = idpIdentifiers + self.providerName = providerName + self.attributeMapping = attributeMapping + self.providerDetails = providerDetails + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case idpIdentifiers = "IdpIdentifiers" + case providerName = "ProviderName" + case attributeMapping = "AttributeMapping" + case providerDetails = "ProviderDetails" + case userPoolId = "UserPoolId" + } + } + + public struct VerifyUserAttributeResponse: AWSShape { + + } + + public enum AliasAttributeType: String, CustomStringConvertible, Codable { + case phoneNumber = "phone_number" + case email = "email" + case preferredUsername = "preferred_username" + public var description: String { return self.rawValue } + } + + public struct AssociateSoftwareTokenRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Session", required: false, type: .string), + AWSShapeMember(label: "AccessToken", required: false, type: .string) + ] + /// The session which should be passed both ways in challenge-response calls to the service. This allows authentication of the user as part of the MFA setup process. + public let session: String? + /// The access token. + public let accessToken: String? + + public init(session: String? = nil, accessToken: String? = nil) { + self.session = session + self.accessToken = accessToken + } + + private enum CodingKeys: String, CodingKey { + case session = "Session" + case accessToken = "AccessToken" + } + } + + public struct ResourceServerScopeType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ScopeName", required: true, type: .string), + AWSShapeMember(label: "ScopeDescription", required: true, type: .string) + ] + /// The name of the scope. + public let scopeName: String + /// A description of the scope. + public let scopeDescription: String + + public init(scopeName: String, scopeDescription: String) { + self.scopeName = scopeName + self.scopeDescription = scopeDescription + } + + private enum CodingKeys: String, CodingKey { + case scopeName = "ScopeName" + case scopeDescription = "ScopeDescription" + } + } + + public struct SetUICustomizationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UICustomization", required: true, type: .structure) + ] + /// The UI customization information. + public let uICustomization: UICustomizationType + + public init(uICustomization: UICustomizationType) { + self.uICustomization = uICustomization + } + + private enum CodingKeys: String, CodingKey { + case uICustomization = "UICustomization" + } + } + + public struct UserPoolClientType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AllowedOAuthFlowsUserPoolClient", required: false, type: .boolean), + AWSShapeMember(label: "RefreshTokenValidity", required: false, type: .integer), + AWSShapeMember(label: "WriteAttributes", required: false, type: .list), + AWSShapeMember(label: "ReadAttributes", required: false, type: .list), + AWSShapeMember(label: "ExplicitAuthFlows", required: false, type: .list), + AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), + AWSShapeMember(label: "AnalyticsConfiguration", required: false, type: .structure), + AWSShapeMember(label: "ClientSecret", required: false, type: .string), + AWSShapeMember(label: "CallbackURLs", required: false, type: .list), + AWSShapeMember(label: "UserPoolId", required: false, type: .string), + AWSShapeMember(label: "ClientName", required: false, type: .string), + AWSShapeMember(label: "SupportedIdentityProviders", required: false, type: .list), + AWSShapeMember(label: "LogoutURLs", required: false, type: .list), + AWSShapeMember(label: "AllowedOAuthFlows", required: false, type: .list), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "DefaultRedirectURI", required: false, type: .string), + AWSShapeMember(label: "ClientId", required: false, type: .string), + AWSShapeMember(label: "AllowedOAuthScopes", required: false, type: .list) + ] + /// Set to TRUE if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools. + public let allowedOAuthFlowsUserPoolClient: Bool? + /// The time limit, in days, after which the refresh token is no longer valid and cannot be used. + public let refreshTokenValidity: Int32? + /// The writeable attributes. + public let writeAttributes: [String]? + /// The Read-only attributes. + public let readAttributes: [String]? + /// The explicit authentication flows. + public let explicitAuthFlows: [ExplicitAuthFlowsType]? + /// The date the user pool client was created. + public let creationDate: TimeStamp? + /// The Amazon Pinpoint analytics configuration for the user pool client. + public let analyticsConfiguration: AnalyticsConfigurationType? + /// The client secret from the user pool request of the client type. + public let clientSecret: String? + /// A list of allowed callback URLs for the identity providers. + public let callbackURLs: [String]? + /// The user pool ID for the user pool client. + public let userPoolId: String? + /// The client name from the user pool request of the client type. + public let clientName: String? + /// A list of provider names for the identity providers that are supported on this client. + public let supportedIdentityProviders: [String]? + /// A list of allowed logout URLs for the identity providers. + public let logoutURLs: [String]? + /// Set to code to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint. Set to token to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly. + public let allowedOAuthFlows: [OAuthFlowType]? + /// The date the user pool client was last modified. + public let lastModifiedDate: TimeStamp? + /// The default redirect URI. Must be in the CallbackURLs list. + public let defaultRedirectURI: String? + /// The ID of the client associated with the user pool. + public let clientId: String? + /// A list of allowed OAuth scopes. Currently supported values are "phone", "email", "openid", and "Cognito". + public let allowedOAuthScopes: [String]? + + public init(allowedOAuthFlowsUserPoolClient: Bool? = nil, refreshTokenValidity: Int32? = nil, writeAttributes: [String]? = nil, readAttributes: [String]? = nil, explicitAuthFlows: [ExplicitAuthFlowsType]? = nil, creationDate: TimeStamp? = nil, analyticsConfiguration: AnalyticsConfigurationType? = nil, clientSecret: String? = nil, callbackURLs: [String]? = nil, userPoolId: String? = nil, clientName: String? = nil, supportedIdentityProviders: [String]? = nil, logoutURLs: [String]? = nil, allowedOAuthFlows: [OAuthFlowType]? = nil, lastModifiedDate: TimeStamp? = nil, defaultRedirectURI: String? = nil, clientId: String? = nil, allowedOAuthScopes: [String]? = nil) { + self.allowedOAuthFlowsUserPoolClient = allowedOAuthFlowsUserPoolClient + self.refreshTokenValidity = refreshTokenValidity + self.writeAttributes = writeAttributes + self.readAttributes = readAttributes + self.explicitAuthFlows = explicitAuthFlows + self.creationDate = creationDate + self.analyticsConfiguration = analyticsConfiguration + self.clientSecret = clientSecret + self.callbackURLs = callbackURLs + self.userPoolId = userPoolId + self.clientName = clientName + self.supportedIdentityProviders = supportedIdentityProviders + self.logoutURLs = logoutURLs + self.allowedOAuthFlows = allowedOAuthFlows + self.lastModifiedDate = lastModifiedDate + self.defaultRedirectURI = defaultRedirectURI + self.clientId = clientId + self.allowedOAuthScopes = allowedOAuthScopes + } + + private enum CodingKeys: String, CodingKey { + case allowedOAuthFlowsUserPoolClient = "AllowedOAuthFlowsUserPoolClient" + case refreshTokenValidity = "RefreshTokenValidity" + case writeAttributes = "WriteAttributes" + case readAttributes = "ReadAttributes" + case explicitAuthFlows = "ExplicitAuthFlows" + case creationDate = "CreationDate" + case analyticsConfiguration = "AnalyticsConfiguration" + case clientSecret = "ClientSecret" + case callbackURLs = "CallbackURLs" + case userPoolId = "UserPoolId" + case clientName = "ClientName" + case supportedIdentityProviders = "SupportedIdentityProviders" + case logoutURLs = "LogoutURLs" + case allowedOAuthFlows = "AllowedOAuthFlows" + case lastModifiedDate = "LastModifiedDate" + case defaultRedirectURI = "DefaultRedirectURI" + case clientId = "ClientId" + case allowedOAuthScopes = "AllowedOAuthScopes" + } + } + + public struct DeleteIdentityProviderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProviderName", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The identity provider name. + public let providerName: String + /// The user pool ID. + public let userPoolId: String + + public init(providerName: String, userPoolId: String) { + self.providerName = providerName + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case providerName = "ProviderName" + case userPoolId = "UserPoolId" + } + } + + public struct SetUserMFAPreferenceResponse: AWSShape { + + } + + public struct GroupType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: false, type: .string), + AWSShapeMember(label: "GroupName", required: false, type: .string), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), + AWSShapeMember(label: "Precedence", required: false, type: .integer), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The user pool ID for the user pool. + public let userPoolId: String? + /// The name of the group. + public let groupName: String? + /// The date the group was last modified. + public let lastModifiedDate: TimeStamp? + /// The date the group was created. + public let creationDate: TimeStamp? + /// A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. If a user belongs to two or more groups, it is the group with the highest precedence whose role ARN will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens. Groups with higher Precedence values take precedence over groups with lower Precedence values or with null Precedence values. Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim is not set in users' tokens. The default Precedence value is null. + public let precedence: Int32? + /// The role ARN for the group. + public let roleArn: String? + /// A string containing the description of the group. + public let description: String? + + public init(userPoolId: String? = nil, groupName: String? = nil, lastModifiedDate: TimeStamp? = nil, creationDate: TimeStamp? = nil, precedence: Int32? = nil, roleArn: String? = nil, description: String? = nil) { + self.userPoolId = userPoolId + self.groupName = groupName + self.lastModifiedDate = lastModifiedDate + self.creationDate = creationDate + self.precedence = precedence + self.roleArn = roleArn + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case userPoolId = "UserPoolId" + case groupName = "GroupName" + case lastModifiedDate = "LastModifiedDate" + case creationDate = "CreationDate" + case precedence = "Precedence" + case roleArn = "RoleArn" + case description = "Description" + } + } + + public enum AuthFlowType: String, CustomStringConvertible, Codable { + case userSrpAuth = "USER_SRP_AUTH" + case refreshTokenAuth = "REFRESH_TOKEN_AUTH" + case refreshToken = "REFRESH_TOKEN" + case customAuth = "CUSTOM_AUTH" + case adminNoSrpAuth = "ADMIN_NO_SRP_AUTH" + public var description: String { return self.rawValue } + } + + public struct ResourceServerType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Identifier", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Scopes", required: false, type: .list), + AWSShapeMember(label: "UserPoolId", required: false, type: .string) + ] + /// The identifier for the resource server. + public let identifier: String? + /// The name of the resource server. + public let name: String? + /// A list of scopes that are defined for the resource server. + public let scopes: [ResourceServerScopeType]? + /// The user pool ID for the user pool that hosts the resource server. + public let userPoolId: String? + + public init(identifier: String? = nil, name: String? = nil, scopes: [ResourceServerScopeType]? = nil, userPoolId: String? = nil) { + self.identifier = identifier + self.name = name + self.scopes = scopes + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case identifier = "Identifier" + case name = "Name" + case scopes = "Scopes" + case userPoolId = "UserPoolId" + } + } + + public struct StopUserImportJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserImportJob", required: false, type: .structure) + ] + /// The job object that represents the user import job. + public let userImportJob: UserImportJobType? + + public init(userImportJob: UserImportJobType? = nil) { + self.userImportJob = userImportJob + } + + private enum CodingKeys: String, CodingKey { + case userImportJob = "UserImportJob" + } + } + + public enum AdvancedSecurityModeType: String, CustomStringConvertible, Codable { + case off = "OFF" + case audit = "AUDIT" + case enforced = "ENFORCED" + public var description: String { return self.rawValue } + } + + public enum UserStatusType: String, CustomStringConvertible, Codable { + case unconfirmed = "UNCONFIRMED" + case confirmed = "CONFIRMED" + case archived = "ARCHIVED" + case compromised = "COMPROMISED" + case unknown = "UNKNOWN" + case resetRequired = "RESET_REQUIRED" + case forceChangePassword = "FORCE_CHANGE_PASSWORD" + public var description: String { return self.rawValue } + } + + public struct VerifySoftwareTokenResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Session", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum) + ] + /// The session which should be passed both ways in challenge-response calls to the service. + public let session: String? + /// The status of the verify software token. + public let status: VerifySoftwareTokenResponseType? + + public init(session: String? = nil, status: VerifySoftwareTokenResponseType? = nil) { + self.session = session + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case session = "Session" + case status = "Status" + } + } + + public struct AccountTakeoverActionType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Notify", required: true, type: .boolean), + AWSShapeMember(label: "EventAction", required: true, type: .enum) + ] + /// Flag specifying whether to send a notification. + public let notify: Bool + /// The event action. BLOCK Choosing this action will block the request. MFA_IF_CONFIGURED Throw MFA challenge if user has configured it, else allow the request. MFA_REQUIRED Throw MFA challenge if user has configured it, else block the request. NO_ACTION Allow the user sign-in. + public let eventAction: AccountTakeoverEventActionType + + public init(notify: Bool, eventAction: AccountTakeoverEventActionType) { + self.notify = notify + self.eventAction = eventAction + } + + private enum CodingKeys: String, CodingKey { + case notify = "Notify" + case eventAction = "EventAction" + } + } + + public struct GetUserAttributeVerificationCodeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeName", required: true, type: .string), + AWSShapeMember(label: "AccessToken", required: true, type: .string) + ] + /// The attribute name returned by the server response to get the user attribute verification code. + public let attributeName: String + /// The access token returned by the server response to get the user attribute verification code. + public let accessToken: String + + public init(attributeName: String, accessToken: String) { + self.attributeName = attributeName + self.accessToken = accessToken + } + + private enum CodingKeys: String, CodingKey { + case attributeName = "AttributeName" + case accessToken = "AccessToken" + } + } + + public struct UpdateDeviceStatusResponse: AWSShape { + + } + + public struct AdminInitiateAuthResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChallengeName", required: false, type: .enum), + AWSShapeMember(label: "ChallengeParameters", required: false, type: .map), + AWSShapeMember(label: "AuthenticationResult", required: false, type: .structure), + AWSShapeMember(label: "Session", required: false, type: .string) + ] + /// The name of the challenge which you are responding to with this call. This is returned to you in the AdminInitiateAuth response if you need to pass another challenge. SMS_MFA: Next challenge is to supply an SMS_MFA_CODE, delivered via SMS. PASSWORD_VERIFIER: Next challenge is to supply PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, and TIMESTAMP after the client-side SRP calculations. CUSTOM_CHALLENGE: This is returned if your custom authentication flow determines that the user should pass another challenge before tokens are issued. DEVICE_SRP_AUTH: If device tracking was enabled on your user pool and the previous challenges were passed, this challenge is returned so that Amazon Cognito can start tracking this device. DEVICE_PASSWORD_VERIFIER: Similar to PASSWORD_VERIFIER, but for devices only. ADMIN_NO_SRP_AUTH: This is returned if you need to authenticate with USERNAME and PASSWORD directly. An app client must be enabled to use this flow. NEW_PASSWORD_REQUIRED: For users which are required to change their passwords after successful first login. This challenge should be passed with NEW_PASSWORD and any other required attributes. + public let challengeName: ChallengeNameType? + /// The challenge parameters. These are returned to you in the AdminInitiateAuth response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (AdminRespondToAuthChallenge). All challenges require USERNAME and SECRET_HASH (if applicable). The value of the USER_IF_FOR_SRP attribute will be the user's actual username, not an alias (such as email address or phone number), even if you specified an alias in your call to AdminInitiateAuth. This is because, in the AdminRespondToAuthChallenge API ChallengeResponses, the USERNAME attribute cannot be an alias. + public let challengeParameters: [String: String]? + /// The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, ChallengeName, ChallengeParameters, and Session are returned. + public let authenticationResult: AuthenticationResultType? + /// The session which should be passed both ways in challenge-response calls to the service. If AdminInitiateAuth or AdminRespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next AdminRespondToAuthChallenge API call. + public let session: String? + + public init(challengeName: ChallengeNameType? = nil, challengeParameters: [String: String]? = nil, authenticationResult: AuthenticationResultType? = nil, session: String? = nil) { + self.challengeName = challengeName + self.challengeParameters = challengeParameters + self.authenticationResult = authenticationResult + self.session = session + } + + private enum CodingKeys: String, CodingKey { + case challengeName = "ChallengeName" + case challengeParameters = "ChallengeParameters" + case authenticationResult = "AuthenticationResult" + case session = "Session" + } + } + + public struct SetRiskConfigurationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RiskConfiguration", required: true, type: .structure) + ] + /// The risk configuration. + public let riskConfiguration: RiskConfigurationType + + public init(riskConfiguration: RiskConfigurationType) { + self.riskConfiguration = riskConfiguration + } + + private enum CodingKeys: String, CodingKey { + case riskConfiguration = "RiskConfiguration" + } + } + + public struct NotifyEmailType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "HtmlBody", required: false, type: .string), + AWSShapeMember(label: "Subject", required: true, type: .string), + AWSShapeMember(label: "TextBody", required: false, type: .string) + ] + /// The HTML body. + public let htmlBody: String? + /// The subject. + public let subject: String + /// The text body. + public let textBody: String? + + public init(htmlBody: String? = nil, subject: String, textBody: String? = nil) { + self.htmlBody = htmlBody + self.subject = subject + self.textBody = textBody + } + + private enum CodingKeys: String, CodingKey { + case htmlBody = "HtmlBody" + case subject = "Subject" + case textBody = "TextBody" + } + } + + public struct AdminSetUserMFAPreferenceResponse: AWSShape { + + } + + public struct ListUserImportJobsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string), + AWSShapeMember(label: "PaginationToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: true, type: .integer) + ] + /// The user pool ID for the user pool that the users are being imported into. + public let userPoolId: String + /// An identifier that was returned from the previous call to ListUserImportJobs, which can be used to return the next set of import jobs in the list. + public let paginationToken: String? + /// The maximum number of import jobs you want the request to return. + public let maxResults: Int32 + + public init(userPoolId: String, paginationToken: String? = nil, maxResults: Int32) { + self.userPoolId = userPoolId + self.paginationToken = paginationToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case userPoolId = "UserPoolId" + case paginationToken = "PaginationToken" + case maxResults = "MaxResults" + } + } + + public struct ChangePasswordRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PreviousPassword", required: true, type: .string), + AWSShapeMember(label: "ProposedPassword", required: true, type: .string), + AWSShapeMember(label: "AccessToken", required: true, type: .string) + ] + /// The old password. + public let previousPassword: String + /// The new password. + public let proposedPassword: String + /// The access token. + public let accessToken: String + + public init(previousPassword: String, proposedPassword: String, accessToken: String) { + self.previousPassword = previousPassword + self.proposedPassword = proposedPassword + self.accessToken = accessToken + } + + private enum CodingKeys: String, CodingKey { + case previousPassword = "PreviousPassword" + case proposedPassword = "ProposedPassword" + case accessToken = "AccessToken" + } + } + + public struct UpdateResourceServerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Identifier", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Scopes", required: false, type: .list), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The identifier for the resource server. + public let identifier: String + /// The name of the resource server. + public let name: String + /// The scope values to be set for the resource server. + public let scopes: [ResourceServerScopeType]? + /// The user pool ID for the user pool. + public let userPoolId: String + + public init(identifier: String, name: String, scopes: [ResourceServerScopeType]? = nil, userPoolId: String) { + self.identifier = identifier + self.name = name + self.scopes = scopes + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case identifier = "Identifier" + case name = "Name" + case scopes = "Scopes" + case userPoolId = "UserPoolId" + } + } + + public struct AdminGetUserResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserStatus", required: false, type: .enum), + AWSShapeMember(label: "UserMFASettingList", required: false, type: .list), + AWSShapeMember(label: "PreferredMfaSetting", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "UserCreateDate", required: false, type: .timestamp), + AWSShapeMember(label: "MFAOptions", required: false, type: .list), + AWSShapeMember(label: "UserLastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "UserAttributes", required: false, type: .list) + ] + /// The user status. Can be one of the following: UNCONFIRMED - User has been created but not confirmed. CONFIRMED - User has been confirmed. ARCHIVED - User is no longer active. COMPROMISED - User is disabled due to a potential security threat. UNKNOWN - User status is not known. + public let userStatus: UserStatusType? + public let userMFASettingList: [String]? + public let preferredMfaSetting: String? + /// Indicates that the status is enabled. + public let enabled: Bool? + /// The user name of the user about whom you are receiving information. + public let username: String + /// The date the user was created. + public let userCreateDate: TimeStamp? + /// Specifies the options for MFA (e.g., email or phone number). + public let mFAOptions: [MFAOptionType]? + /// The date the user was last modified. + public let userLastModifiedDate: TimeStamp? + /// An array of name-value pairs representing user attributes. + public let userAttributes: [AttributeType]? + + public init(userStatus: UserStatusType? = nil, userMFASettingList: [String]? = nil, preferredMfaSetting: String? = nil, enabled: Bool? = nil, username: String, userCreateDate: TimeStamp? = nil, mFAOptions: [MFAOptionType]? = nil, userLastModifiedDate: TimeStamp? = nil, userAttributes: [AttributeType]? = nil) { + self.userStatus = userStatus + self.userMFASettingList = userMFASettingList + self.preferredMfaSetting = preferredMfaSetting + self.enabled = enabled + self.username = username + self.userCreateDate = userCreateDate + self.mFAOptions = mFAOptions + self.userLastModifiedDate = userLastModifiedDate + self.userAttributes = userAttributes + } + + private enum CodingKeys: String, CodingKey { + case userStatus = "UserStatus" + case userMFASettingList = "UserMFASettingList" + case preferredMfaSetting = "PreferredMfaSetting" + case enabled = "Enabled" + case username = "Username" + case userCreateDate = "UserCreateDate" + case mFAOptions = "MFAOptions" + case userLastModifiedDate = "UserLastModifiedDate" + case userAttributes = "UserAttributes" + } + } + + public struct ListUserPoolsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPools", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The user pools from the response to list users. + public let userPools: [UserPoolDescriptionType]? + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + + public init(userPools: [UserPoolDescriptionType]? = nil, nextToken: String? = nil) { + self.userPools = userPools + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case userPools = "UserPools" + case nextToken = "NextToken" + } + } + + public struct ListUsersInGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", required: true, type: .string), + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The name of the group. + public let groupName: String + /// The limit of the request to list users. + public let limit: Int32? + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// The user pool ID for the user pool. + public let userPoolId: String + + public init(groupName: String, limit: Int32? = nil, nextToken: String? = nil, userPoolId: String) { + self.groupName = groupName + self.limit = limit + self.nextToken = nextToken + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + case limit = "Limit" + case nextToken = "NextToken" + case userPoolId = "UserPoolId" + } + } + + public struct CreateGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "Precedence", required: false, type: .integer), + AWSShapeMember(label: "GroupName", required: true, type: .string), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// A string containing the description of the group. + public let description: String? + /// A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. Zero is the highest precedence value. Groups with lower Precedence values take precedence over groups with higher or null Precedence values. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens. Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim is not set in users' tokens. The default Precedence value is null. + public let precedence: Int32? + /// The name of the group. Must be unique. + public let groupName: String + /// The role ARN for the group. + public let roleArn: String? + /// The user pool ID for the user pool. + public let userPoolId: String + + public init(description: String? = nil, precedence: Int32? = nil, groupName: String, roleArn: String? = nil, userPoolId: String) { + self.description = description + self.precedence = precedence + self.groupName = groupName + self.roleArn = roleArn + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case description = "Description" + case precedence = "Precedence" + case groupName = "GroupName" + case roleArn = "RoleArn" + case userPoolId = "UserPoolId" + } + } + + public enum EventType: String, CustomStringConvertible, Codable { + case signin = "SignIn" + case signup = "SignUp" + case forgotpassword = "ForgotPassword" + public var description: String { return self.rawValue } + } + + public struct SoftwareTokenMfaConfigType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Enabled", required: false, type: .boolean) + ] + /// Specifies whether software token MFA is enabled. + public let enabled: Bool? + + public init(enabled: Bool? = nil) { + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case enabled = "Enabled" + } + } + + public struct ConfirmDeviceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserConfirmationNecessary", required: false, type: .boolean) + ] + /// Indicates whether the user confirmation is necessary to confirm the device response. + public let userConfirmationNecessary: Bool? + + public init(userConfirmationNecessary: Bool? = nil) { + self.userConfirmationNecessary = userConfirmationNecessary + } + + private enum CodingKeys: String, CodingKey { + case userConfirmationNecessary = "UserConfirmationNecessary" + } + } + + public struct AdminDisableUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string), + AWSShapeMember(label: "Username", required: true, type: .string) + ] + /// The user pool ID for the user pool where you want to disable the user. + public let userPoolId: String + /// The user name of the user you wish to disable. + public let username: String + + public init(userPoolId: String, username: String) { + self.userPoolId = userPoolId + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case userPoolId = "UserPoolId" + case username = "Username" + } + } + + public struct UpdateUserAttributesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserAttributes", required: true, type: .list), + AWSShapeMember(label: "AccessToken", required: true, type: .string) + ] + /// An array of name-value pairs representing user attributes. For custom attributes, you must prepend the custom: prefix to the attribute name. + public let userAttributes: [AttributeType] + /// The access token for the request to update user attributes. + public let accessToken: String + + public init(userAttributes: [AttributeType], accessToken: String) { + self.userAttributes = userAttributes + self.accessToken = accessToken + } + + private enum CodingKeys: String, CodingKey { + case userAttributes = "UserAttributes" + case accessToken = "AccessToken" + } + } + + public struct UpdateAuthEventFeedbackRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FeedbackToken", required: true, type: .string), + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "FeedbackValue", required: true, type: .enum), + AWSShapeMember(label: "EventId", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The feedback token. + public let feedbackToken: String + /// The user pool username. + public let username: String + /// The authentication event feedback value. + public let feedbackValue: FeedbackValueType + /// The event ID. + public let eventId: String + /// The user pool ID. + public let userPoolId: String + + public init(feedbackToken: String, username: String, feedbackValue: FeedbackValueType, eventId: String, userPoolId: String) { + self.feedbackToken = feedbackToken + self.username = username + self.feedbackValue = feedbackValue + self.eventId = eventId + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case feedbackToken = "FeedbackToken" + case username = "Username" + case feedbackValue = "FeedbackValue" + case eventId = "EventId" + case userPoolId = "UserPoolId" + } + } + + public struct ConfirmForgotPasswordResponse: AWSShape { + + } + + public struct UpdateAuthEventFeedbackResponse: AWSShape { + + } + + public struct AdminSetUserSettingsResponse: AWSShape { + + } + + public enum DeviceRememberedStatusType: String, CustomStringConvertible, Codable { + case remembered = "remembered" + case notRemembered = "not_remembered" + public var description: String { return self.rawValue } + } + + public struct UpdateResourceServerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceServer", required: true, type: .structure) + ] + /// The resource server. + public let resourceServer: ResourceServerType + + public init(resourceServer: ResourceServerType) { + self.resourceServer = resourceServer + } + + private enum CodingKeys: String, CodingKey { + case resourceServer = "ResourceServer" + } + } + + public struct CreateResourceServerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceServer", required: true, type: .structure) + ] + /// The newly created resource server. + public let resourceServer: ResourceServerType + + public init(resourceServer: ResourceServerType) { + self.resourceServer = resourceServer + } + + private enum CodingKeys: String, CodingKey { + case resourceServer = "ResourceServer" + } + } + + public struct DeleteUserPoolDomainResponse: AWSShape { + + } + + public enum MessageActionType: String, CustomStringConvertible, Codable { + case resend = "RESEND" + case suppress = "SUPPRESS" + public var description: String { return self.rawValue } + } + + public enum AccountTakeoverEventActionType: String, CustomStringConvertible, Codable { + case block = "BLOCK" + case mfaIfConfigured = "MFA_IF_CONFIGURED" + case mfaRequired = "MFA_REQUIRED" + case noAction = "NO_ACTION" + public var description: String { return self.rawValue } + } + + public struct ListResourceServersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ResourceServers", required: true, type: .list) + ] + /// A pagination token. + public let nextToken: String? + /// The resource servers. + public let resourceServers: [ResourceServerType] + + public init(nextToken: String? = nil, resourceServers: [ResourceServerType]) { + self.nextToken = nextToken + self.resourceServers = resourceServers + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case resourceServers = "ResourceServers" + } + } + + public struct AdminDisableProviderForUserResponse: AWSShape { + + } + + public struct SmsConfigurationType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ExternalId", required: false, type: .string), + AWSShapeMember(label: "SnsCallerArn", required: true, type: .string) + ] + /// The external ID. + public let externalId: String? + /// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller. + public let snsCallerArn: String + + public init(externalId: String? = nil, snsCallerArn: String) { + self.externalId = externalId + self.snsCallerArn = snsCallerArn + } + + private enum CodingKeys: String, CodingKey { + case externalId = "ExternalId" + case snsCallerArn = "SnsCallerArn" + } + } + + public struct AnalyticsMetadataType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AnalyticsEndpointId", required: false, type: .string) + ] + /// The endpoint ID. + public let analyticsEndpointId: String? + + public init(analyticsEndpointId: String? = nil) { + self.analyticsEndpointId = analyticsEndpointId + } + + private enum CodingKeys: String, CodingKey { + case analyticsEndpointId = "AnalyticsEndpointId" + } + } + + public struct SetUserPoolMfaConfigResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SoftwareTokenMfaConfiguration", required: false, type: .structure), + AWSShapeMember(label: "SmsMfaConfiguration", required: false, type: .structure), + AWSShapeMember(label: "MfaConfiguration", required: false, type: .enum) + ] + /// The software token MFA configuration. + public let softwareTokenMfaConfiguration: SoftwareTokenMfaConfigType? + /// The SMS text message MFA configuration. + public let smsMfaConfiguration: SmsMfaConfigType? + /// The MFA configuration. + public let mfaConfiguration: UserPoolMfaType? + + public init(softwareTokenMfaConfiguration: SoftwareTokenMfaConfigType? = nil, smsMfaConfiguration: SmsMfaConfigType? = nil, mfaConfiguration: UserPoolMfaType? = nil) { + self.softwareTokenMfaConfiguration = softwareTokenMfaConfiguration + self.smsMfaConfiguration = smsMfaConfiguration + self.mfaConfiguration = mfaConfiguration + } + + private enum CodingKeys: String, CodingKey { + case softwareTokenMfaConfiguration = "SoftwareTokenMfaConfiguration" + case smsMfaConfiguration = "SmsMfaConfiguration" + case mfaConfiguration = "MfaConfiguration" + } + } + + public struct GetCSVHeaderResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CSVHeader", required: false, type: .list), + AWSShapeMember(label: "UserPoolId", required: false, type: .string) + ] + /// The header information for the .csv file for the user import job. + public let cSVHeader: [String]? + /// The user pool ID for the user pool that the users are to be imported into. + public let userPoolId: String? + + public init(cSVHeader: [String]? = nil, userPoolId: String? = nil) { + self.cSVHeader = cSVHeader + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case cSVHeader = "CSVHeader" + case userPoolId = "UserPoolId" + } + } + + public struct AdminEnableUserResponse: AWSShape { + + } + + public struct UserPoolAddOnsType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AdvancedSecurityMode", required: true, type: .enum) + ] + /// The advanced security mode. + public let advancedSecurityMode: AdvancedSecurityModeType + + public init(advancedSecurityMode: AdvancedSecurityModeType) { + self.advancedSecurityMode = advancedSecurityMode + } + + private enum CodingKeys: String, CodingKey { + case advancedSecurityMode = "AdvancedSecurityMode" + } + } + + public struct ListUsersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Users", required: false, type: .list), + AWSShapeMember(label: "PaginationToken", required: false, type: .string) + ] + /// The users returned in the request to list users. + public let users: [UserType]? + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let paginationToken: String? + + public init(users: [UserType]? = nil, paginationToken: String? = nil) { + self.users = users + self.paginationToken = paginationToken + } + + private enum CodingKeys: String, CodingKey { + case users = "Users" + case paginationToken = "PaginationToken" + } + } + + public struct AccountTakeoverActionsType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LowAction", required: false, type: .structure), + AWSShapeMember(label: "MediumAction", required: false, type: .structure), + AWSShapeMember(label: "HighAction", required: false, type: .structure) + ] + /// Action to take for a low risk. + public let lowAction: AccountTakeoverActionType? + /// Action to take for a medium risk. + public let mediumAction: AccountTakeoverActionType? + /// Action to take for a high risk. + public let highAction: AccountTakeoverActionType? + + public init(lowAction: AccountTakeoverActionType? = nil, mediumAction: AccountTakeoverActionType? = nil, highAction: AccountTakeoverActionType? = nil) { + self.lowAction = lowAction + self.mediumAction = mediumAction + self.highAction = highAction + } + + private enum CodingKeys: String, CodingKey { + case lowAction = "LowAction" + case mediumAction = "MediumAction" + case highAction = "HighAction" + } + } + + public struct CreateUserPoolResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPool", required: false, type: .structure) + ] + /// A container for the user pool details. + public let userPool: UserPoolType? + + public init(userPool: UserPoolType? = nil) { + self.userPool = userPool + } + + private enum CodingKeys: String, CodingKey { + case userPool = "UserPool" + } + } + + public struct ProviderDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), + AWSShapeMember(label: "ProviderName", required: false, type: .string), + AWSShapeMember(label: "ProviderType", required: false, type: .enum) + ] + /// The date the provider was last modified. + public let lastModifiedDate: TimeStamp? + /// The date the provider was added to the user pool. + public let creationDate: TimeStamp? + /// The identity provider name. + public let providerName: String? + /// The identity provider type. + public let providerType: IdentityProviderTypeType? + + public init(lastModifiedDate: TimeStamp? = nil, creationDate: TimeStamp? = nil, providerName: String? = nil, providerType: IdentityProviderTypeType? = nil) { + self.lastModifiedDate = lastModifiedDate + self.creationDate = creationDate + self.providerName = providerName + self.providerType = providerType + } + + private enum CodingKeys: String, CodingKey { + case lastModifiedDate = "LastModifiedDate" + case creationDate = "CreationDate" + case providerName = "ProviderName" + case providerType = "ProviderType" + } + } + + public struct EventFeedbackType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Provider", required: true, type: .string), + AWSShapeMember(label: "FeedbackValue", required: true, type: .enum), + AWSShapeMember(label: "FeedbackDate", required: false, type: .timestamp) + ] + /// The provider. + public let provider: String + /// The event feedback value. + public let feedbackValue: FeedbackValueType + /// The event feedback date. + public let feedbackDate: TimeStamp? + + public init(provider: String, feedbackValue: FeedbackValueType, feedbackDate: TimeStamp? = nil) { + self.provider = provider + self.feedbackValue = feedbackValue + self.feedbackDate = feedbackDate + } + + private enum CodingKeys: String, CodingKey { + case provider = "Provider" + case feedbackValue = "FeedbackValue" + case feedbackDate = "FeedbackDate" + } + } + + public struct ResendConfirmationCodeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CodeDeliveryDetails", required: false, type: .structure) + ] + /// The code delivery details returned by the server in response to the request to resend the confirmation code. + public let codeDeliveryDetails: CodeDeliveryDetailsType? + + public init(codeDeliveryDetails: CodeDeliveryDetailsType? = nil) { + self.codeDeliveryDetails = codeDeliveryDetails + } + + private enum CodingKeys: String, CodingKey { + case codeDeliveryDetails = "CodeDeliveryDetails" + } + } + + public struct RespondToAuthChallengeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChallengeName", required: true, type: .enum), + AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "UserContextData", required: false, type: .structure), + AWSShapeMember(label: "Session", required: false, type: .string), + AWSShapeMember(label: "AnalyticsMetadata", required: false, type: .structure), + AWSShapeMember(label: "ChallengeResponses", required: false, type: .map) + ] + /// The challenge name. For more information, see . ADMIN_NO_SRP_AUTH is not a valid value. + public let challengeName: ChallengeNameType + /// The app client ID. + public let clientId: String + /// Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security. + public let userContextData: UserContextDataType? + /// The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call. + public let session: String? + /// The Amazon Pinpoint analytics metadata for collecting metrics for RespondToAuthChallenge calls. + public let analyticsMetadata: AnalyticsMetadataType? + /// The challenge responses. These are inputs corresponding to the value of ChallengeName, for example: SMS_MFA: SMS_MFA_CODE, USERNAME, SECRET_HASH (if app client is configured with client secret). PASSWORD_VERIFIER: PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, TIMESTAMP, USERNAME, SECRET_HASH (if app client is configured with client secret). NEW_PASSWORD_REQUIRED: NEW_PASSWORD, any other required attributes, USERNAME, SECRET_HASH (if app client is configured with client secret). + public let challengeResponses: [String: String]? + + public init(challengeName: ChallengeNameType, clientId: String, userContextData: UserContextDataType? = nil, session: String? = nil, analyticsMetadata: AnalyticsMetadataType? = nil, challengeResponses: [String: String]? = nil) { + self.challengeName = challengeName + self.clientId = clientId + self.userContextData = userContextData + self.session = session + self.analyticsMetadata = analyticsMetadata + self.challengeResponses = challengeResponses + } + + private enum CodingKeys: String, CodingKey { + case challengeName = "ChallengeName" + case clientId = "ClientId" + case userContextData = "UserContextData" + case session = "Session" + case analyticsMetadata = "AnalyticsMetadata" + case challengeResponses = "ChallengeResponses" + } + } + + public struct UpdateUserPoolRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolTags", required: false, type: .map), + AWSShapeMember(label: "EmailVerificationSubject", required: false, type: .string), + AWSShapeMember(label: "VerificationMessageTemplate", required: false, type: .structure), + AWSShapeMember(label: "AdminCreateUserConfig", required: false, type: .structure), + AWSShapeMember(label: "UserPoolAddOns", required: false, type: .structure), + AWSShapeMember(label: "Policies", required: false, type: .structure), + AWSShapeMember(label: "LambdaConfig", required: false, type: .structure), + AWSShapeMember(label: "MfaConfiguration", required: false, type: .enum), + AWSShapeMember(label: "UserPoolId", required: true, type: .string), + AWSShapeMember(label: "EmailConfiguration", required: false, type: .structure), + AWSShapeMember(label: "SmsVerificationMessage", required: false, type: .string), + AWSShapeMember(label: "SmsAuthenticationMessage", required: false, type: .string), + AWSShapeMember(label: "EmailVerificationMessage", required: false, type: .string), + AWSShapeMember(label: "SmsConfiguration", required: false, type: .structure), + AWSShapeMember(label: "AutoVerifiedAttributes", required: false, type: .list), + AWSShapeMember(label: "DeviceConfiguration", required: false, type: .structure) + ] + /// The cost allocation tags for the user pool. For more information, see Adding Cost Allocation Tags to Your User Pool + public let userPoolTags: [String: String]? + /// The subject of the email verification message. + public let emailVerificationSubject: String? + /// The template for verification messages. + public let verificationMessageTemplate: VerificationMessageTemplateType? + /// The configuration for AdminCreateUser requests. + public let adminCreateUserConfig: AdminCreateUserConfigType? + /// Used to enable advanced security risk detection. Set the key AdvancedSecurityMode to the value "AUDIT". + public let userPoolAddOns: UserPoolAddOnsType? + /// A container with the policies you wish to update in a user pool. + public let policies: UserPoolPolicyType? + /// The AWS Lambda configuration information from the request to update the user pool. + public let lambdaConfig: LambdaConfigType? + /// Can be one of the following values: OFF - MFA tokens are not required and cannot be specified during user registration. ON - MFA tokens are required for all user registrations. You can only specify required when you are initially creating a user pool. OPTIONAL - Users have the option when registering to create an MFA token. + public let mfaConfiguration: UserPoolMfaType? + /// The user pool ID for the user pool you want to update. + public let userPoolId: String + /// Email configuration. + public let emailConfiguration: EmailConfigurationType? + /// A container with information about the SMS verification message. + public let smsVerificationMessage: String? + /// The contents of the SMS authentication message. + public let smsAuthenticationMessage: String? + /// The contents of the email verification message. + public let emailVerificationMessage: String? + /// SMS configuration. + public let smsConfiguration: SmsConfigurationType? + /// The attributes that are automatically verified when the Amazon Cognito service makes a request to update user pools. + public let autoVerifiedAttributes: [VerifiedAttributeType]? + /// Device configuration. + public let deviceConfiguration: DeviceConfigurationType? + + public init(userPoolTags: [String: String]? = nil, emailVerificationSubject: String? = nil, verificationMessageTemplate: VerificationMessageTemplateType? = nil, adminCreateUserConfig: AdminCreateUserConfigType? = nil, userPoolAddOns: UserPoolAddOnsType? = nil, policies: UserPoolPolicyType? = nil, lambdaConfig: LambdaConfigType? = nil, mfaConfiguration: UserPoolMfaType? = nil, userPoolId: String, emailConfiguration: EmailConfigurationType? = nil, smsVerificationMessage: String? = nil, smsAuthenticationMessage: String? = nil, emailVerificationMessage: String? = nil, smsConfiguration: SmsConfigurationType? = nil, autoVerifiedAttributes: [VerifiedAttributeType]? = nil, deviceConfiguration: DeviceConfigurationType? = nil) { + self.userPoolTags = userPoolTags + self.emailVerificationSubject = emailVerificationSubject + self.verificationMessageTemplate = verificationMessageTemplate + self.adminCreateUserConfig = adminCreateUserConfig + self.userPoolAddOns = userPoolAddOns + self.policies = policies + self.lambdaConfig = lambdaConfig + self.mfaConfiguration = mfaConfiguration + self.userPoolId = userPoolId + self.emailConfiguration = emailConfiguration + self.smsVerificationMessage = smsVerificationMessage + self.smsAuthenticationMessage = smsAuthenticationMessage + self.emailVerificationMessage = emailVerificationMessage + self.smsConfiguration = smsConfiguration + self.autoVerifiedAttributes = autoVerifiedAttributes + self.deviceConfiguration = deviceConfiguration + } + + private enum CodingKeys: String, CodingKey { + case userPoolTags = "UserPoolTags" + case emailVerificationSubject = "EmailVerificationSubject" + case verificationMessageTemplate = "VerificationMessageTemplate" + case adminCreateUserConfig = "AdminCreateUserConfig" + case userPoolAddOns = "UserPoolAddOns" + case policies = "Policies" + case lambdaConfig = "LambdaConfig" + case mfaConfiguration = "MfaConfiguration" + case userPoolId = "UserPoolId" + case emailConfiguration = "EmailConfiguration" + case smsVerificationMessage = "SmsVerificationMessage" + case smsAuthenticationMessage = "SmsAuthenticationMessage" + case emailVerificationMessage = "EmailVerificationMessage" + case smsConfiguration = "SmsConfiguration" + case autoVerifiedAttributes = "AutoVerifiedAttributes" + case deviceConfiguration = "DeviceConfiguration" + } + } + + public struct CreateResourceServerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Identifier", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Scopes", required: false, type: .list), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// A unique resource server identifier for the resource server. This could be an HTTPS endpoint where the resource server is located. For example, https://my-weather-api.example.com. + public let identifier: String + /// A friendly name for the resource server. + public let name: String + /// A list of scopes. Each scope is map, where the keys are name and description. + public let scopes: [ResourceServerScopeType]? + /// The user pool ID for the user pool. + public let userPoolId: String + + public init(identifier: String, name: String, scopes: [ResourceServerScopeType]? = nil, userPoolId: String) { + self.identifier = identifier + self.name = name + self.scopes = scopes + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case identifier = "Identifier" + case name = "Name" + case scopes = "Scopes" + case userPoolId = "UserPoolId" + } + } + + public struct DescribeUserPoolDomainRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Domain", required: true, type: .string) + ] + /// The domain string. + public let domain: String + + public init(domain: String) { + self.domain = domain + } + + private enum CodingKeys: String, CodingKey { + case domain = "Domain" + } + } + + public struct ListGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The limit of the request to list groups. + public let limit: Int32? + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// The user pool ID for the user pool. + public let userPoolId: String + + public init(limit: Int32? = nil, nextToken: String? = nil, userPoolId: String) { + self.limit = limit + self.nextToken = nextToken + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case nextToken = "NextToken" + case userPoolId = "UserPoolId" + } + } + + public struct VerifySoftwareTokenRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccessToken", required: false, type: .string), + AWSShapeMember(label: "UserCode", required: true, type: .string), + AWSShapeMember(label: "Session", required: false, type: .string), + AWSShapeMember(label: "FriendlyDeviceName", required: false, type: .string) + ] + /// The access token. + public let accessToken: String? + /// The one time password computed using the secret code returned by + public let userCode: String + /// The session which should be passed both ways in challenge-response calls to the service. + public let session: String? + /// The friendly device name. + public let friendlyDeviceName: String? + + public init(accessToken: String? = nil, userCode: String, session: String? = nil, friendlyDeviceName: String? = nil) { + self.accessToken = accessToken + self.userCode = userCode + self.session = session + self.friendlyDeviceName = friendlyDeviceName + } + + private enum CodingKeys: String, CodingKey { + case accessToken = "AccessToken" + case userCode = "UserCode" + case session = "Session" + case friendlyDeviceName = "FriendlyDeviceName" + } + } + + public struct SetUserSettingsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MFAOptions", required: true, type: .list), + AWSShapeMember(label: "AccessToken", required: true, type: .string) + ] + /// Specifies the options for MFA (e.g., email or phone number). + public let mFAOptions: [MFAOptionType] + /// The access token for the set user settings request. + public let accessToken: String + + public init(mFAOptions: [MFAOptionType], accessToken: String) { + self.mFAOptions = mFAOptions + self.accessToken = accessToken + } + + private enum CodingKeys: String, CodingKey { + case mFAOptions = "MFAOptions" + case accessToken = "AccessToken" + } + } + + public struct AdminLinkProviderForUserResponse: AWSShape { + + } + + public struct SetUserMFAPreferenceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SMSMfaSettings", required: false, type: .structure), + AWSShapeMember(label: "SoftwareTokenMfaSettings", required: false, type: .structure), + AWSShapeMember(label: "AccessToken", required: true, type: .string) + ] + /// The SMS text message multi-factor authentication (MFA) settings. + public let sMSMfaSettings: SMSMfaSettingsType? + /// The time-based one-time password software token MFA settings. + public let softwareTokenMfaSettings: SoftwareTokenMfaSettingsType? + /// The access token. + public let accessToken: String + + public init(sMSMfaSettings: SMSMfaSettingsType? = nil, softwareTokenMfaSettings: SoftwareTokenMfaSettingsType? = nil, accessToken: String) { + self.sMSMfaSettings = sMSMfaSettings + self.softwareTokenMfaSettings = softwareTokenMfaSettings + self.accessToken = accessToken + } + + private enum CodingKeys: String, CodingKey { + case sMSMfaSettings = "SMSMfaSettings" + case softwareTokenMfaSettings = "SoftwareTokenMfaSettings" + case accessToken = "AccessToken" + } + } + + public struct GetIdentityProviderByIdentifierRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IdpIdentifier", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The identity provider ID. + public let idpIdentifier: String + /// The user pool ID. + public let userPoolId: String + + public init(idpIdentifier: String, userPoolId: String) { + self.idpIdentifier = idpIdentifier + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case idpIdentifier = "IdpIdentifier" + case userPoolId = "UserPoolId" + } + } + + public enum IdentityProviderTypeType: String, CustomStringConvertible, Codable { + case saml = "SAML" + case facebook = "Facebook" + case google = "Google" + case loginwithamazon = "LoginWithAmazon" + public var description: String { return self.rawValue } + } + + public struct AdminGetUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string), + AWSShapeMember(label: "Username", required: true, type: .string) + ] + /// The user pool ID for the user pool where you want to get information about the user. + public let userPoolId: String + /// The user name of the user you wish to retrieve. + public let username: String + + public init(userPoolId: String, username: String) { + self.userPoolId = userPoolId + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case userPoolId = "UserPoolId" + case username = "Username" + } + } + + public struct GetUserPoolMfaConfigRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The user pool ID. + public let userPoolId: String + + public init(userPoolId: String) { + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case userPoolId = "UserPoolId" + } + } + + public enum StatusType: String, CustomStringConvertible, Codable { + case enabled = "Enabled" + case disabled = "Disabled" + public var description: String { return self.rawValue } + } + + public struct GetGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Group", required: false, type: .structure) + ] + /// The group object for the group. + public let group: GroupType? + + public init(group: GroupType? = nil) { + self.group = group + } + + private enum CodingKeys: String, CodingKey { + case group = "Group" + } + } + + public enum OAuthFlowType: String, CustomStringConvertible, Codable { + case code = "code" + case implicit = "implicit" + case clientCredentials = "client_credentials" + public var description: String { return self.rawValue } + } + + public struct ListIdentityProvidersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Providers", required: true, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of identity provider objects. + public let providers: [ProviderDescription] + /// A pagination token. + public let nextToken: String? + + public init(providers: [ProviderDescription], nextToken: String? = nil) { + self.providers = providers + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case providers = "Providers" + case nextToken = "NextToken" + } + } + + public struct AdminUpdateAuthEventFeedbackRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "FeedbackValue", required: true, type: .enum), + AWSShapeMember(label: "EventId", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The user pool username. + public let username: String + /// The authentication event feedback value. + public let feedbackValue: FeedbackValueType + /// The authentication event ID. + public let eventId: String + /// The user pool ID. + public let userPoolId: String + + public init(username: String, feedbackValue: FeedbackValueType, eventId: String, userPoolId: String) { + self.username = username + self.feedbackValue = feedbackValue + self.eventId = eventId + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case username = "Username" + case feedbackValue = "FeedbackValue" + case eventId = "EventId" + case userPoolId = "UserPoolId" + } + } + + public struct GlobalSignOutResponse: AWSShape { + + } + + public struct DescribeUserPoolClientRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The app client ID of the app associated with the user pool. + public let clientId: String + /// The user pool ID for the user pool you want to describe. + public let userPoolId: String + + public init(clientId: String, userPoolId: String) { + self.clientId = clientId + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case clientId = "ClientId" + case userPoolId = "UserPoolId" + } + } + + public struct SignUpResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CodeDeliveryDetails", required: false, type: .structure), + AWSShapeMember(label: "UserConfirmed", required: true, type: .boolean), + AWSShapeMember(label: "UserSub", required: true, type: .string) + ] + /// The code delivery details returned by the server response to the user registration request. + public let codeDeliveryDetails: CodeDeliveryDetailsType? + /// A response from the server indicating that a user registration has been confirmed. + public let userConfirmed: Bool + /// The UUID of the authenticated user. This is not the same as username. + public let userSub: String + + public init(codeDeliveryDetails: CodeDeliveryDetailsType? = nil, userConfirmed: Bool, userSub: String) { + self.codeDeliveryDetails = codeDeliveryDetails + self.userConfirmed = userConfirmed + self.userSub = userSub + } + + private enum CodingKeys: String, CodingKey { + case codeDeliveryDetails = "CodeDeliveryDetails" + case userConfirmed = "UserConfirmed" + case userSub = "UserSub" + } + } + + public struct CreateUserPoolDomainRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Domain", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The domain string. + public let domain: String + /// The user pool ID. + public let userPoolId: String + + public init(domain: String, userPoolId: String) { + self.domain = domain + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case domain = "Domain" + case userPoolId = "UserPoolId" + } + } + + public enum DeliveryMediumType: String, CustomStringConvertible, Codable { + case sms = "SMS" + case email = "EMAIL" + public var description: String { return self.rawValue } + } + + public struct AdminResetUserPasswordResponse: AWSShape { + + } + + public struct AdminDisableProviderForUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "User", required: true, type: .structure), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The user to be disabled. + public let user: ProviderUserIdentifierType + /// The user pool ID for the user pool. + public let userPoolId: String + + public init(user: ProviderUserIdentifierType, userPoolId: String) { + self.user = user + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case user = "User" + case userPoolId = "UserPoolId" + } + } + + public struct AdminSetUserMFAPreferenceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "SMSMfaSettings", required: false, type: .structure), + AWSShapeMember(label: "SoftwareTokenMfaSettings", required: false, type: .structure), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The user pool username. + public let username: String + /// The SMS text message MFA settings. + public let sMSMfaSettings: SMSMfaSettingsType? + /// The time-based one-time password software token MFA settings. + public let softwareTokenMfaSettings: SoftwareTokenMfaSettingsType? + /// The user pool ID. + public let userPoolId: String + + public init(username: String, sMSMfaSettings: SMSMfaSettingsType? = nil, softwareTokenMfaSettings: SoftwareTokenMfaSettingsType? = nil, userPoolId: String) { + self.username = username + self.sMSMfaSettings = sMSMfaSettings + self.softwareTokenMfaSettings = softwareTokenMfaSettings + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case username = "Username" + case sMSMfaSettings = "SMSMfaSettings" + case softwareTokenMfaSettings = "SoftwareTokenMfaSettings" + case userPoolId = "UserPoolId" + } + } + + public struct AdminDisableUserResponse: AWSShape { + + } + + public struct AdminDeleteUserAttributesResponse: AWSShape { + + } + + public struct DeleteUserPoolDomainRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Domain", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The domain string. + public let domain: String + /// The user pool ID. + public let userPoolId: String + + public init(domain: String, userPoolId: String) { + self.domain = domain + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case domain = "Domain" + case userPoolId = "UserPoolId" + } + } + + public struct AddCustomAttributesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CustomAttributes", required: true, type: .list), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// An array of custom attributes, such as Mutable and Name. + public let customAttributes: [SchemaAttributeType] + /// The user pool ID for the user pool where you want to add custom attributes. + public let userPoolId: String + + public init(customAttributes: [SchemaAttributeType], userPoolId: String) { + self.customAttributes = customAttributes + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case customAttributes = "CustomAttributes" + case userPoolId = "UserPoolId" + } + } + + public struct UpdateUserAttributesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CodeDeliveryDetailsList", required: false, type: .list) + ] + /// The code delivery details list from the server for the request to update user attributes. + public let codeDeliveryDetailsList: [CodeDeliveryDetailsType]? + + public init(codeDeliveryDetailsList: [CodeDeliveryDetailsType]? = nil) { + self.codeDeliveryDetailsList = codeDeliveryDetailsList + } + + private enum CodingKeys: String, CodingKey { + case codeDeliveryDetailsList = "CodeDeliveryDetailsList" + } + } + + public struct NotifyConfigurationType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BlockEmail", required: false, type: .structure), + AWSShapeMember(label: "MfaEmail", required: false, type: .structure), + AWSShapeMember(label: "From", required: false, type: .string), + AWSShapeMember(label: "SourceArn", required: true, type: .string), + AWSShapeMember(label: "ReplyTo", required: false, type: .string), + AWSShapeMember(label: "NoActionEmail", required: false, type: .structure) + ] + /// Email template used when a detected risk event is blocked. + public let blockEmail: NotifyEmailType? + /// The MFA email template used when MFA is challenged as part of a detected risk. + public let mfaEmail: NotifyEmailType? + /// The email address that is sending the email. It must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. + public let from: String? + /// The Amazon Resource Name (ARN) of the identity that is associated with the sending authorization policy. It permits Amazon Cognito to send for the email address specified in the From parameter. + public let sourceArn: String + /// The destination to which the receiver of an email should reply to. + public let replyTo: String? + /// The email template used when a detected risk event is allowed. + public let noActionEmail: NotifyEmailType? + + public init(blockEmail: NotifyEmailType? = nil, mfaEmail: NotifyEmailType? = nil, from: String? = nil, sourceArn: String, replyTo: String? = nil, noActionEmail: NotifyEmailType? = nil) { + self.blockEmail = blockEmail + self.mfaEmail = mfaEmail + self.from = from + self.sourceArn = sourceArn + self.replyTo = replyTo + self.noActionEmail = noActionEmail + } + + private enum CodingKeys: String, CodingKey { + case blockEmail = "BlockEmail" + case mfaEmail = "MfaEmail" + case from = "From" + case sourceArn = "SourceArn" + case replyTo = "ReplyTo" + case noActionEmail = "NoActionEmail" + } + } + + public struct UpdateIdentityProviderResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IdentityProvider", required: true, type: .structure) + ] + /// The identity provider object. + public let identityProvider: IdentityProviderType + + public init(identityProvider: IdentityProviderType) { + self.identityProvider = identityProvider + } + + private enum CodingKeys: String, CodingKey { + case identityProvider = "IdentityProvider" + } + } + + public struct GetUICustomizationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientId", required: false, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The client ID for the client app. + public let clientId: String? + /// The user pool ID for the user pool. + public let userPoolId: String + + public init(clientId: String? = nil, userPoolId: String) { + self.clientId = clientId + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case clientId = "ClientId" + case userPoolId = "UserPoolId" + } + } + + public struct AdminListGroupsForUserResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Groups", required: false, type: .list) + ] + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// The groups that the user belongs to. + public let groups: [GroupType]? + + public init(nextToken: String? = nil, groups: [GroupType]? = nil) { + self.nextToken = nextToken + self.groups = groups + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case groups = "Groups" + } + } + + public struct PasswordPolicyType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MinimumLength", required: false, type: .integer), + AWSShapeMember(label: "RequireLowercase", required: false, type: .boolean), + AWSShapeMember(label: "RequireSymbols", required: false, type: .boolean), + AWSShapeMember(label: "RequireUppercase", required: false, type: .boolean), + AWSShapeMember(label: "RequireNumbers", required: false, type: .boolean) + ] + /// The minimum length of the password policy that you have set. Cannot be less than 6. + public let minimumLength: Int32? + /// In the password policy that you have set, refers to whether you have required users to use at least one lowercase letter in their password. + public let requireLowercase: Bool? + /// In the password policy that you have set, refers to whether you have required users to use at least one symbol in their password. + public let requireSymbols: Bool? + /// In the password policy that you have set, refers to whether you have required users to use at least one uppercase letter in their password. + public let requireUppercase: Bool? + /// In the password policy that you have set, refers to whether you have required users to use at least one number in their password. + public let requireNumbers: Bool? + + public init(minimumLength: Int32? = nil, requireLowercase: Bool? = nil, requireSymbols: Bool? = nil, requireUppercase: Bool? = nil, requireNumbers: Bool? = nil) { + self.minimumLength = minimumLength + self.requireLowercase = requireLowercase + self.requireSymbols = requireSymbols + self.requireUppercase = requireUppercase + self.requireNumbers = requireNumbers + } + + private enum CodingKeys: String, CodingKey { + case minimumLength = "MinimumLength" + case requireLowercase = "RequireLowercase" + case requireSymbols = "RequireSymbols" + case requireUppercase = "RequireUppercase" + case requireNumbers = "RequireNumbers" + } + } + + public enum EventResponseType: String, CustomStringConvertible, Codable { + case success = "Success" + case failure = "Failure" + public var description: String { return self.rawValue } + } + + public struct AdminGetDeviceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Device", required: true, type: .structure) + ] + /// The device. + public let device: DeviceType + + public init(device: DeviceType) { + self.device = device + } + + private enum CodingKeys: String, CodingKey { + case device = "Device" + } + } + + public struct ListIdentityProvidersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The user pool ID. + public let userPoolId: String + /// A pagination token. + public let nextToken: String? + /// The maximum number of identity providers to return. + public let maxResults: Int32? + + public init(userPoolId: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.userPoolId = userPoolId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case userPoolId = "UserPoolId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct AdminForgetDeviceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceKey", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string), + AWSShapeMember(label: "Username", required: true, type: .string) + ] + /// The device key. + public let deviceKey: String + /// The user pool ID. + public let userPoolId: String + /// The user name. + public let username: String + + public init(deviceKey: String, userPoolId: String, username: String) { + self.deviceKey = deviceKey + self.userPoolId = userPoolId + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case deviceKey = "DeviceKey" + case userPoolId = "UserPoolId" + case username = "Username" + } + } + + public struct InitiateAuthRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientMetadata", required: false, type: .map), + AWSShapeMember(label: "UserContextData", required: false, type: .structure), + AWSShapeMember(label: "AuthParameters", required: false, type: .map), + AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "AnalyticsMetadata", required: false, type: .structure), + AWSShapeMember(label: "AuthFlow", required: true, type: .enum) + ] + /// This is a random key-value pair map which can contain any key and will be passed to your PreAuthentication Lambda trigger as-is. It can be used to implement additional validations around authentication. + public let clientMetadata: [String: String]? + /// Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security. + public let userContextData: UserContextDataType? + /// The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow: For USER_SRP_AUTH: USERNAME (required), SRP_A (required), SECRET_HASH (required if the app client is configured with a client secret), DEVICE_KEY For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: USERNAME (required), SECRET_HASH (required if the app client is configured with a client secret), REFRESH_TOKEN (required), DEVICE_KEY For CUSTOM_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), DEVICE_KEY + public let authParameters: [String: String]? + /// The app client ID. + public let clientId: String + /// The Amazon Pinpoint analytics metadata for collecting metrics for InitiateAuth calls. + public let analyticsMetadata: AnalyticsMetadataType? + /// The authentication flow for this call to execute. The API action will depend on this value. For example: REFRESH_TOKEN_AUTH will take in a valid refresh token and return new tokens. USER_SRP_AUTH will take in USERNAME and SRP_A and return the SRP variables to be used for next challenge execution. Valid values include: USER_SRP_AUTH: Authentication flow for the Secure Remote Password (SRP) protocol. REFRESH_TOKEN_AUTH/REFRESH_TOKEN: Authentication flow for refreshing the access token and ID token by supplying a valid refresh token. CUSTOM_AUTH: Custom authentication flow. ADMIN_NO_SRP_AUTH is not a valid value. + public let authFlow: AuthFlowType + + public init(clientMetadata: [String: String]? = nil, userContextData: UserContextDataType? = nil, authParameters: [String: String]? = nil, clientId: String, analyticsMetadata: AnalyticsMetadataType? = nil, authFlow: AuthFlowType) { + self.clientMetadata = clientMetadata + self.userContextData = userContextData + self.authParameters = authParameters + self.clientId = clientId + self.analyticsMetadata = analyticsMetadata + self.authFlow = authFlow + } + + private enum CodingKeys: String, CodingKey { + case clientMetadata = "ClientMetadata" + case userContextData = "UserContextData" + case authParameters = "AuthParameters" + case clientId = "ClientId" + case analyticsMetadata = "AnalyticsMetadata" + case authFlow = "AuthFlow" + } + } + + public struct AdminAddUserToGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "GroupName", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The username for the user. + public let username: String + /// The group name. + public let groupName: String + /// The user pool ID for the user pool. + public let userPoolId: String + + public init(username: String, groupName: String, userPoolId: String) { + self.username = username + self.groupName = groupName + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case username = "Username" + case groupName = "GroupName" + case userPoolId = "UserPoolId" + } + } + + public struct EmailConfigurationType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReplyToEmailAddress", required: false, type: .string), + AWSShapeMember(label: "SourceArn", required: false, type: .string) + ] + /// The destination to which the receiver of the email should reply to. + public let replyToEmailAddress: String? + /// The Amazon Resource Name (ARN) of the email source. + public let sourceArn: String? + + public init(replyToEmailAddress: String? = nil, sourceArn: String? = nil) { + self.replyToEmailAddress = replyToEmailAddress + self.sourceArn = sourceArn + } + + private enum CodingKeys: String, CodingKey { + case replyToEmailAddress = "ReplyToEmailAddress" + case sourceArn = "SourceArn" + } + } + + public struct AdminCreateUserResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "User", required: false, type: .structure) + ] + /// The newly created user. + public let user: UserType? + + public init(user: UserType? = nil) { + self.user = user + } + + private enum CodingKeys: String, CodingKey { + case user = "User" + } + } + + public struct AdminUserGlobalSignOutRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string), + AWSShapeMember(label: "Username", required: true, type: .string) + ] + /// The user pool ID. + public let userPoolId: String + /// The user name. + public let username: String + + public init(userPoolId: String, username: String) { + self.userPoolId = userPoolId + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case userPoolId = "UserPoolId" + case username = "Username" + } + } + + public struct DeleteGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The name of the group. + public let groupName: String + /// The user pool ID for the user pool. + public let userPoolId: String + + public init(groupName: String, userPoolId: String) { + self.groupName = groupName + self.userPoolId = userPoolId + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + case userPoolId = "UserPoolId" + } + } + + public struct ListUsersInGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Users", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The users returned in the request to list users. + public let users: [UserType]? + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + + public init(users: [UserType]? = nil, nextToken: String? = nil) { + self.users = users + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case users = "Users" + case nextToken = "NextToken" + } + } + public struct DescribeUserImportJobResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserImportJob", required: false, type: .structure) ] /// The job object that represents the user import job. @@ -21,15 +2821,14 @@ extension CognitoIdp { } } - public struct AdminUserGlobalSignOutResponse: AWSShape { - - } - public struct CreateUserPoolRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolTags", required: false, type: .map), AWSShapeMember(label: "EmailVerificationSubject", required: false, type: .string), + AWSShapeMember(label: "VerificationMessageTemplate", required: false, type: .structure), + AWSShapeMember(label: "UsernameAttributes", required: false, type: .list), AWSShapeMember(label: "AdminCreateUserConfig", required: false, type: .structure), + AWSShapeMember(label: "UserPoolAddOns", required: false, type: .structure), AWSShapeMember(label: "Schema", required: false, type: .list), AWSShapeMember(label: "Policies", required: false, type: .structure), AWSShapeMember(label: "AliasAttributes", required: false, type: .list), @@ -48,8 +2847,14 @@ extension CognitoIdp { public let userPoolTags: [String: String]? /// A string representing the email verification subject. public let emailVerificationSubject: String? + /// The template for the verification message that the user sees when the app requests permission to access the user's information. + public let verificationMessageTemplate: VerificationMessageTemplateType? + /// Specifies whether email addresses or phone numbers can be specified as usernames when a user signs up. + public let usernameAttributes: [UsernameAttributeType]? /// The configuration for AdminCreateUser requests. public let adminCreateUserConfig: AdminCreateUserConfigType? + /// Used to enable advanced security risk detection. Set the key AdvancedSecurityMode to the value "AUDIT". + public let userPoolAddOns: UserPoolAddOnsType? /// An array of schema attributes for the new user pool. These attributes can be standard or custom attributes. public let schema: [SchemaAttributeType]? /// The policies associated with the new user pool. @@ -77,10 +2882,13 @@ extension CognitoIdp { /// The device configuration. public let deviceConfiguration: DeviceConfigurationType? - public init(userPoolTags: [String: String]? = nil, emailVerificationSubject: String? = nil, adminCreateUserConfig: AdminCreateUserConfigType? = nil, schema: [SchemaAttributeType]? = nil, policies: UserPoolPolicyType? = nil, aliasAttributes: [AliasAttributeType]? = nil, lambdaConfig: LambdaConfigType? = nil, mfaConfiguration: UserPoolMfaType? = nil, poolName: String, emailConfiguration: EmailConfigurationType? = nil, smsVerificationMessage: String? = nil, emailVerificationMessage: String? = nil, smsConfiguration: SmsConfigurationType? = nil, smsAuthenticationMessage: String? = nil, autoVerifiedAttributes: [VerifiedAttributeType]? = nil, deviceConfiguration: DeviceConfigurationType? = nil) { + public init(userPoolTags: [String: String]? = nil, emailVerificationSubject: String? = nil, verificationMessageTemplate: VerificationMessageTemplateType? = nil, usernameAttributes: [UsernameAttributeType]? = nil, adminCreateUserConfig: AdminCreateUserConfigType? = nil, userPoolAddOns: UserPoolAddOnsType? = nil, schema: [SchemaAttributeType]? = nil, policies: UserPoolPolicyType? = nil, aliasAttributes: [AliasAttributeType]? = nil, lambdaConfig: LambdaConfigType? = nil, mfaConfiguration: UserPoolMfaType? = nil, poolName: String, emailConfiguration: EmailConfigurationType? = nil, smsVerificationMessage: String? = nil, emailVerificationMessage: String? = nil, smsConfiguration: SmsConfigurationType? = nil, smsAuthenticationMessage: String? = nil, autoVerifiedAttributes: [VerifiedAttributeType]? = nil, deviceConfiguration: DeviceConfigurationType? = nil) { self.userPoolTags = userPoolTags self.emailVerificationSubject = emailVerificationSubject + self.verificationMessageTemplate = verificationMessageTemplate + self.usernameAttributes = usernameAttributes self.adminCreateUserConfig = adminCreateUserConfig + self.userPoolAddOns = userPoolAddOns self.schema = schema self.policies = policies self.aliasAttributes = aliasAttributes @@ -99,7 +2907,10 @@ extension CognitoIdp { private enum CodingKeys: String, CodingKey { case userPoolTags = "UserPoolTags" case emailVerificationSubject = "EmailVerificationSubject" + case verificationMessageTemplate = "VerificationMessageTemplate" + case usernameAttributes = "UsernameAttributes" case adminCreateUserConfig = "AdminCreateUserConfig" + case userPoolAddOns = "UserPoolAddOns" case schema = "Schema" case policies = "Policies" case aliasAttributes = "AliasAttributes" @@ -116,33 +2927,65 @@ extension CognitoIdp { } } - public struct AddCustomAttributesResponse: AWSShape { + public struct ContextDataType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EncodedData", required: false, type: .string), + AWSShapeMember(label: "HttpHeaders", required: true, type: .list), + AWSShapeMember(label: "ServerName", required: true, type: .string), + AWSShapeMember(label: "ServerPath", required: true, type: .string), + AWSShapeMember(label: "IpAddress", required: true, type: .string) + ] + /// Encoded data containing device fingerprinting details, collected using the Amazon Cognito context data collection library. + public let encodedData: String? + /// HttpHeaders received on your server in same order. + public let httpHeaders: [HttpHeader] + /// Your server endpoint where this API is invoked. + public let serverName: String + /// Your server path where this API is invoked. + public let serverPath: String + /// Source IP address of your user. + public let ipAddress: String + + public init(encodedData: String? = nil, httpHeaders: [HttpHeader], serverName: String, serverPath: String, ipAddress: String) { + self.encodedData = encodedData + self.httpHeaders = httpHeaders + self.serverName = serverName + self.serverPath = serverPath + self.ipAddress = ipAddress + } + private enum CodingKeys: String, CodingKey { + case encodedData = "EncodedData" + case httpHeaders = "HttpHeaders" + case serverName = "ServerName" + case serverPath = "ServerPath" + case ipAddress = "IpAddress" + } } - public struct ListUsersInGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Users", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) + public struct ChallengeResponseType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChallengeName", required: false, type: .enum), + AWSShapeMember(label: "ChallengeResponse", required: false, type: .enum) ] - /// The users returned in the request to list users. - public let users: [UserType]? - /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. - public let nextToken: String? + /// The challenge name + public let challengeName: ChallengeName? + /// The challenge response. + public let challengeResponse: ChallengeResponse? - public init(users: [UserType]? = nil, nextToken: String? = nil) { - self.users = users - self.nextToken = nextToken + public init(challengeName: ChallengeName? = nil, challengeResponse: ChallengeResponse? = nil) { + self.challengeName = challengeName + self.challengeResponse = challengeResponse } private enum CodingKeys: String, CodingKey { - case users = "Users" - case nextToken = "NextToken" + case challengeName = "ChallengeName" + case challengeResponse = "ChallengeResponse" } } public struct NumberAttributeConstraintsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MinValue", required: false, type: .string), AWSShapeMember(label: "MaxValue", required: false, type: .string) ] @@ -162,113 +3005,59 @@ extension CognitoIdp { } } - public enum VerifiedAttributeType: String, CustomStringConvertible, Codable { - case phoneNumber = "phone_number" - case email = "email" - public var description: String { return self.rawValue } - } - - public struct ListDevicesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Limit", required: false, type: .integer), - AWSShapeMember(label: "PaginationToken", required: false, type: .string), - AWSShapeMember(label: "AccessToken", required: true, type: .string) - ] - /// The limit of the device request. - public let limit: Int32? - /// The pagination token for the list request. - public let paginationToken: String? - /// The access tokens for the request to list devices. - public let accessToken: String - - public init(limit: Int32? = nil, paginationToken: String? = nil, accessToken: String) { - self.limit = limit - self.paginationToken = paginationToken - self.accessToken = accessToken - } - - private enum CodingKeys: String, CodingKey { - case limit = "Limit" - case paginationToken = "PaginationToken" - case accessToken = "AccessToken" - } - } - - public struct DeleteUserPoolRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The user pool ID for the user pool you want to delete. - public let userPoolId: String - - public init(userPoolId: String) { - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case userPoolId = "UserPoolId" - } - } - - public struct GetUserAttributeVerificationCodeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CodeDeliveryDetails", required: false, type: .structure) - ] - /// The code delivery details returned by the server in response to the request to get the user attribute verification code. - public let codeDeliveryDetails: CodeDeliveryDetailsType? - - public init(codeDeliveryDetails: CodeDeliveryDetailsType? = nil) { - self.codeDeliveryDetails = codeDeliveryDetails - } - - private enum CodingKeys: String, CodingKey { - case codeDeliveryDetails = "CodeDeliveryDetails" - } - } - public struct SignUpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserAttributes", required: false, type: .list), - AWSShapeMember(label: "ClientId", required: true, type: .string), - AWSShapeMember(label: "Password", required: true, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ValidationData", required: false, type: .list), AWSShapeMember(label: "SecretHash", required: false, type: .string), - AWSShapeMember(label: "Username", required: true, type: .string) + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "UserContextData", required: false, type: .structure), + AWSShapeMember(label: "Password", required: true, type: .string), + AWSShapeMember(label: "AnalyticsMetadata", required: false, type: .structure), + AWSShapeMember(label: "UserAttributes", required: false, type: .list) ] - /// An array of name-value pairs representing user attributes. For custom attributes, you must prepend the custom: prefix to the attribute name. - public let userAttributes: [AttributeType]? - /// The ID of the client associated with the user pool. - public let clientId: String - /// The password of the user you wish to register. - public let password: String /// The validation data in the request to register a user. public let validationData: [AttributeType]? /// A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message. public let secretHash: String? /// The user name of the user you wish to register. public let username: String + /// The ID of the client associated with the user pool. + public let clientId: String + /// Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security. + public let userContextData: UserContextDataType? + /// The password of the user you wish to register. + public let password: String + /// The Amazon Pinpoint analytics metadata for collecting metrics for SignUp calls. + public let analyticsMetadata: AnalyticsMetadataType? + /// An array of name-value pairs representing user attributes. For custom attributes, you must prepend the custom: prefix to the attribute name. + public let userAttributes: [AttributeType]? - public init(userAttributes: [AttributeType]? = nil, clientId: String, password: String, validationData: [AttributeType]? = nil, secretHash: String? = nil, username: String) { - self.userAttributes = userAttributes - self.clientId = clientId - self.password = password + public init(validationData: [AttributeType]? = nil, secretHash: String? = nil, username: String, clientId: String, userContextData: UserContextDataType? = nil, password: String, analyticsMetadata: AnalyticsMetadataType? = nil, userAttributes: [AttributeType]? = nil) { self.validationData = validationData self.secretHash = secretHash self.username = username + self.clientId = clientId + self.userContextData = userContextData + self.password = password + self.analyticsMetadata = analyticsMetadata + self.userAttributes = userAttributes } private enum CodingKeys: String, CodingKey { - case userAttributes = "UserAttributes" - case clientId = "ClientId" - case password = "Password" case validationData = "ValidationData" case secretHash = "SecretHash" case username = "Username" + case clientId = "ClientId" + case userContextData = "UserContextData" + case password = "Password" + case analyticsMetadata = "AnalyticsMetadata" + case userAttributes = "UserAttributes" } } public struct DescribeUserPoolClientResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolClient", required: false, type: .structure) ] /// The user pool client from a server response to describe the user pool client. @@ -283,44 +3072,8 @@ extension CognitoIdp { } } - public struct AdminRespondToAuthChallengeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChallengeName", required: true, type: .enum), - AWSShapeMember(label: "ClientId", required: true, type: .string), - AWSShapeMember(label: "Session", required: false, type: .string), - AWSShapeMember(label: "ChallengeResponses", required: false, type: .map), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The challenge name. For more information, see AdminInitiateAuth. - public let challengeName: ChallengeNameType - /// The app client ID. - public let clientId: String - /// The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call. - public let session: String? - /// The challenge responses. These are inputs corresponding to the value of ChallengeName, for example: SMS_MFA: SMS_MFA_CODE, USERNAME, SECRET_HASH (if app client is configured with client secret). PASSWORD_VERIFIER: PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, TIMESTAMP, USERNAME, SECRET_HASH (if app client is configured with client secret). ADMIN_NO_SRP_AUTH: PASSWORD, USERNAME, SECRET_HASH (if app client is configured with client secret). NEW_PASSWORD_REQUIRED: NEW_PASSWORD, any other required attributes, USERNAME, SECRET_HASH (if app client is configured with client secret). The value of the USERNAME attribute must be the user's actual username, not an alias (such as email address or phone number). To make this easier, the AdminInitiateAuth response includes the actual username value in the USERNAMEUSER_ID_FOR_SRP attribute, even if you specified an alias in your call to AdminInitiateAuth. - public let challengeResponses: [String: String]? - /// The ID of the Amazon Cognito user pool. - public let userPoolId: String - - public init(challengeName: ChallengeNameType, clientId: String, session: String? = nil, challengeResponses: [String: String]? = nil, userPoolId: String) { - self.challengeName = challengeName - self.clientId = clientId - self.session = session - self.challengeResponses = challengeResponses - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case challengeName = "ChallengeName" - case clientId = "ClientId" - case session = "Session" - case challengeResponses = "ChallengeResponses" - case userPoolId = "UserPoolId" - } - } - public struct AdminListGroupsForUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Username", required: true, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -329,58 +3082,33 @@ extension CognitoIdp { /// The username for the user. public let username: String /// The limit of the request to list groups. - public let limit: Int32? - /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. - public let nextToken: String? - /// The user pool ID for the user pool. - public let userPoolId: String - - public init(username: String, limit: Int32? = nil, nextToken: String? = nil, userPoolId: String) { - self.username = username - self.limit = limit - self.nextToken = nextToken - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case username = "Username" - case limit = "Limit" - case nextToken = "NextToken" - case userPoolId = "UserPoolId" - } - } - - public struct SetUserSettingsResponse: AWSShape { - - } - - public struct ConfirmSignUpResponse: AWSShape { - - } - - public struct ListUserPoolsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "MaxResults", required: true, type: .integer) - ] + public let limit: Int32? /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. public let nextToken: String? - /// The maximum number of results you want the request to return when listing the user pools. - public let maxResults: Int32 + /// The user pool ID for the user pool. + public let userPoolId: String - public init(nextToken: String? = nil, maxResults: Int32) { + public init(username: String, limit: Int32? = nil, nextToken: String? = nil, userPoolId: String) { + self.username = username + self.limit = limit self.nextToken = nextToken - self.maxResults = maxResults + self.userPoolId = userPoolId } private enum CodingKeys: String, CodingKey { + case username = "Username" + case limit = "Limit" case nextToken = "NextToken" - case maxResults = "MaxResults" + case userPoolId = "UserPoolId" } } + public struct SetUserSettingsResponse: AWSShape { + + } + public struct UpdateGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "Precedence", required: false, type: .integer), AWSShapeMember(label: "GroupName", required: true, type: .string), @@ -389,7 +3117,7 @@ extension CognitoIdp { ] /// A string containing the new description of the group. public let description: String? - /// The new precedence value for the group. For more information about this parameter, see CreateGroup. + /// The new precedence value for the group. For more information about this parameter, see . public let precedence: Int32? /// The name of the group. public let groupName: String @@ -415,186 +3143,119 @@ extension CognitoIdp { } } - public struct InitiateAuthResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChallengeName", required: false, type: .enum), - AWSShapeMember(label: "ChallengeParameters", required: false, type: .map), - AWSShapeMember(label: "AuthenticationResult", required: false, type: .structure), - AWSShapeMember(label: "Session", required: false, type: .string) - ] - /// The name of the challenge which you are responding to with this call. This is returned to you in the AdminInitiateAuth response if you need to pass another challenge. Valid values include the following. Note that all of these challenges require USERNAME and SECRET_HASH (if applicable) in the parameters. SMS_MFA: Next challenge is to supply an SMS_MFA_CODE, delivered via SMS. PASSWORD_VERIFIER: Next challenge is to supply PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, and TIMESTAMP after the client-side SRP calculations. CUSTOM_CHALLENGE: This is returned if your custom authentication flow determines that the user should pass another challenge before tokens are issued. DEVICE_SRP_AUTH: If device tracking was enabled on your user pool and the previous challenges were passed, this challenge is returned so that Amazon Cognito can start tracking this device. DEVICE_PASSWORD_VERIFIER: Similar to PASSWORD_VERIFIER, but for devices only. NEW_PASSWORD_REQUIRED: For users which are required to change their passwords after successful first login. This challenge should be passed with NEW_PASSWORD and any other required attributes. - public let challengeName: ChallengeNameType? - /// The challenge parameters. These are returned to you in the InitiateAuth response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (RespondToAuthChallenge). All challenges require USERNAME and SECRET_HASH (if applicable). - public let challengeParameters: [String: String]? - /// The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, ChallengeName, ChallengeParameters, and Session are returned. - public let authenticationResult: AuthenticationResultType? - /// The session which should be passed both ways in challenge-response calls to the service. If the InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call. - public let session: String? - - public init(challengeName: ChallengeNameType? = nil, challengeParameters: [String: String]? = nil, authenticationResult: AuthenticationResultType? = nil, session: String? = nil) { - self.challengeName = challengeName - self.challengeParameters = challengeParameters - self.authenticationResult = authenticationResult - self.session = session - } - - private enum CodingKeys: String, CodingKey { - case challengeName = "ChallengeName" - case challengeParameters = "ChallengeParameters" - case authenticationResult = "AuthenticationResult" - case session = "Session" - } - } - - public struct DeleteUserAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserAttributeNames", required: true, type: .list), - AWSShapeMember(label: "AccessToken", required: true, type: .string) + public struct ListUserPoolsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: true, type: .integer) ] - /// An array of strings representing the user attribute names you wish to delete. For custom attributes, you must prepend the custom: prefix to the attribute name. - public let userAttributeNames: [String] - /// The access token used in the request to delete user attributes. - public let accessToken: String + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// The maximum number of results you want the request to return when listing the user pools. + public let maxResults: Int32 - public init(userAttributeNames: [String], accessToken: String) { - self.userAttributeNames = userAttributeNames - self.accessToken = accessToken + public init(nextToken: String? = nil, maxResults: Int32) { + self.nextToken = nextToken + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case userAttributeNames = "UserAttributeNames" - case accessToken = "AccessToken" + case nextToken = "NextToken" + case maxResults = "MaxResults" } } - public struct StartUserImportJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "JobId", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) + public struct ListResourceServersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// The job ID for the user import job. - public let jobId: String - /// The user pool ID for the user pool that the users are being imported into. + /// The user pool ID for the user pool. public let userPoolId: String + /// A pagination token. + public let nextToken: String? + /// The maximum number of resource servers to return. + public let maxResults: Int32? - public init(jobId: String, userPoolId: String) { - self.jobId = jobId + public init(userPoolId: String, nextToken: String? = nil, maxResults: Int32? = nil) { self.userPoolId = userPoolId + self.nextToken = nextToken + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case jobId = "JobId" case userPoolId = "UserPoolId" + case nextToken = "NextToken" + case maxResults = "MaxResults" } } - public struct GetUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccessToken", required: true, type: .string) - ] - /// The access token returned by the server response to get information about the user. - public let accessToken: String - - public init(accessToken: String) { - self.accessToken = accessToken - } - - private enum CodingKeys: String, CodingKey { - case accessToken = "AccessToken" - } - } - - public struct DescribeUserPoolDomainResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DomainDescription", required: false, type: .structure) - ] - /// A domain description object containing information about the domain. - public let domainDescription: DomainDescriptionType? - - public init(domainDescription: DomainDescriptionType? = nil) { - self.domainDescription = domainDescription - } - - private enum CodingKeys: String, CodingKey { - case domainDescription = "DomainDescription" - } - } - - public struct DeleteUserPoolClientRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientId", required: true, type: .string), + public struct DeleteResourceServerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Identifier", required: true, type: .string), AWSShapeMember(label: "UserPoolId", required: true, type: .string) ] - /// The ID of the client associated with the user pool. - public let clientId: String - /// The user pool ID for the user pool where you want to delete the client. + /// The identifier for the resource server. + public let identifier: String + /// The user pool ID for the user pool that hosts the resource server. public let userPoolId: String - public init(clientId: String, userPoolId: String) { - self.clientId = clientId + public init(identifier: String, userPoolId: String) { + self.identifier = identifier self.userPoolId = userPoolId } private enum CodingKeys: String, CodingKey { - case clientId = "ClientId" + case identifier = "Identifier" case userPoolId = "UserPoolId" } } - public struct UpdateDeviceStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeviceKey", required: true, type: .string), - AWSShapeMember(label: "DeviceRememberedStatus", required: false, type: .enum), - AWSShapeMember(label: "AccessToken", required: true, type: .string) + public struct GetUICustomizationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UICustomization", required: true, type: .structure) ] - /// The device key. - public let deviceKey: String - /// The status of whether a device is remembered. - public let deviceRememberedStatus: DeviceRememberedStatusType? - /// The access token. - public let accessToken: String + /// The UI customization information. + public let uICustomization: UICustomizationType - public init(deviceKey: String, deviceRememberedStatus: DeviceRememberedStatusType? = nil, accessToken: String) { - self.deviceKey = deviceKey - self.deviceRememberedStatus = deviceRememberedStatus - self.accessToken = accessToken + public init(uICustomization: UICustomizationType) { + self.uICustomization = uICustomization } private enum CodingKeys: String, CodingKey { - case deviceKey = "DeviceKey" - case deviceRememberedStatus = "DeviceRememberedStatus" - case accessToken = "AccessToken" + case uICustomization = "UICustomization" } } - public struct AdminRemoveUserFromGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Username", required: true, type: .string), - AWSShapeMember(label: "GroupName", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) + public struct EventRiskType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RiskDecision", required: false, type: .enum), + AWSShapeMember(label: "RiskLevel", required: false, type: .enum) ] - /// The username for the user. - public let username: String - /// The group name. - public let groupName: String - /// The user pool ID for the user pool. - public let userPoolId: String + /// The risk decision. + public let riskDecision: RiskDecisionType? + /// The risk level. + public let riskLevel: RiskLevelType? - public init(username: String, groupName: String, userPoolId: String) { - self.username = username - self.groupName = groupName - self.userPoolId = userPoolId + public init(riskDecision: RiskDecisionType? = nil, riskLevel: RiskLevelType? = nil) { + self.riskDecision = riskDecision + self.riskLevel = riskLevel } private enum CodingKeys: String, CodingKey { - case username = "Username" - case groupName = "GroupName" - case userPoolId = "UserPoolId" + case riskDecision = "RiskDecision" + case riskLevel = "RiskLevel" } } + public enum UsernameAttributeType: String, CustomStringConvertible, Codable { + case phoneNumber = "phone_number" + case email = "email" + public var description: String { return self.rawValue } + } + public struct AdminDeleteUserAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolId", required: true, type: .string), AWSShapeMember(label: "UserAttributeNames", required: true, type: .list), AWSShapeMember(label: "Username", required: true, type: .string) @@ -619,55 +3280,24 @@ extension CognitoIdp { } } - public struct UserPoolClientDescription: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientName", required: false, type: .string), - AWSShapeMember(label: "ClientId", required: false, type: .string), - AWSShapeMember(label: "UserPoolId", required: false, type: .string) - ] - /// The client name from the user pool client description. - public let clientName: String? - /// The ID of the client associated with the user pool. - public let clientId: String? - /// The user pool ID for the user pool where you want to describe the user pool client. - public let userPoolId: String? - - public init(clientName: String? = nil, clientId: String? = nil, userPoolId: String? = nil) { - self.clientName = clientName - self.clientId = clientId - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case clientName = "ClientName" - case clientId = "ClientId" - case userPoolId = "UserPoolId" - } - } - - public struct DeviceSecretVerifierConfigType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Salt", required: false, type: .string), - AWSShapeMember(label: "PasswordVerifier", required: false, type: .string) + public struct DescribeResourceServerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceServer", required: true, type: .structure) ] - /// The salt. - public let salt: String? - /// The password verifier. - public let passwordVerifier: String? + /// The resource server. + public let resourceServer: ResourceServerType - public init(salt: String? = nil, passwordVerifier: String? = nil) { - self.salt = salt - self.passwordVerifier = passwordVerifier + public init(resourceServer: ResourceServerType) { + self.resourceServer = resourceServer } private enum CodingKeys: String, CodingKey { - case salt = "Salt" - case passwordVerifier = "PasswordVerifier" + case resourceServer = "ResourceServer" } } public struct GetIdentityProviderByIdentifierResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityProvider", required: true, type: .structure) ] /// The identity provider object. @@ -687,11 +3317,12 @@ extension CognitoIdp { case deleting = "DELETING" case updating = "UPDATING" case active = "ACTIVE" + case failed = "FAILED" public var description: String { return self.rawValue } } public struct IdentityProviderType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProviderType", required: false, type: .enum), AWSShapeMember(label: "IdpIdentifiers", required: false, type: .list), AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), @@ -741,174 +3372,144 @@ extension CognitoIdp { } } - public struct RespondToAuthChallengeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChallengeName", required: false, type: .enum), - AWSShapeMember(label: "ChallengeParameters", required: false, type: .map), - AWSShapeMember(label: "AuthenticationResult", required: false, type: .structure), - AWSShapeMember(label: "Session", required: false, type: .string) - ] - /// The challenge name. For more information, see InitiateAuth. - public let challengeName: ChallengeNameType? - /// The challenge parameters. For more information, see InitiateAuth. - public let challengeParameters: [String: String]? - /// The result returned by the server in response to the request to respond to the authentication challenge. - public let authenticationResult: AuthenticationResultType? - /// The session which should be passed both ways in challenge-response calls to the service. If the InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call. - public let session: String? - - public init(challengeName: ChallengeNameType? = nil, challengeParameters: [String: String]? = nil, authenticationResult: AuthenticationResultType? = nil, session: String? = nil) { - self.challengeName = challengeName - self.challengeParameters = challengeParameters - self.authenticationResult = authenticationResult - self.session = session - } - - private enum CodingKeys: String, CodingKey { - case challengeName = "ChallengeName" - case challengeParameters = "ChallengeParameters" - case authenticationResult = "AuthenticationResult" - case session = "Session" - } - } - - public struct ListUserImportJobsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PaginationToken", required: false, type: .string), - AWSShapeMember(label: "UserImportJobs", required: false, type: .list) - ] - /// An identifier that can be used to return the next set of user import jobs in the list. - public let paginationToken: String? - /// The user import jobs. - public let userImportJobs: [UserImportJobType]? - - public init(paginationToken: String? = nil, userImportJobs: [UserImportJobType]? = nil) { - self.paginationToken = paginationToken - self.userImportJobs = userImportJobs - } - - private enum CodingKeys: String, CodingKey { - case paginationToken = "PaginationToken" - case userImportJobs = "UserImportJobs" - } - } - - public struct CreateUserPoolClientResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolClient", required: false, type: .structure) + public struct HttpHeader: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "headerName", required: false, type: .string), + AWSShapeMember(label: "headerValue", required: false, type: .string) ] - /// The user pool client that was just created. - public let userPoolClient: UserPoolClientType? + /// The header name + public let headerName: String? + /// The header value. + public let headerValue: String? - public init(userPoolClient: UserPoolClientType? = nil) { - self.userPoolClient = userPoolClient + public init(headerName: String? = nil, headerValue: String? = nil) { + self.headerName = headerName + self.headerValue = headerValue } private enum CodingKeys: String, CodingKey { - case userPoolClient = "UserPoolClient" + case headerName = "headerName" + case headerValue = "headerValue" } } - public struct ListGroupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct AdminListUserAuthEventsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Groups", required: false, type: .list) + AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + /// The user pool username. + public let username: String + /// The user pool ID. + public let userPoolId: String + /// A pagination token. public let nextToken: String? - /// The group objects for the groups. - public let groups: [GroupType]? + /// The maximum number of authentication events to return. + public let maxResults: Int32? - public init(nextToken: String? = nil, groups: [GroupType]? = nil) { + public init(username: String, userPoolId: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.username = username + self.userPoolId = userPoolId self.nextToken = nextToken - self.groups = groups + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { + case username = "Username" + case userPoolId = "UserPoolId" case nextToken = "NextToken" - case groups = "Groups" + case maxResults = "MaxResults" } } - public struct AdminInitiateAuthRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientMetadata", required: false, type: .map), - AWSShapeMember(label: "ClientId", required: true, type: .string), - AWSShapeMember(label: "AuthParameters", required: false, type: .map), - AWSShapeMember(label: "AuthFlow", required: true, type: .enum), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) + public struct AccountTakeoverRiskConfigurationType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NotifyConfiguration", required: false, type: .structure), + AWSShapeMember(label: "Actions", required: true, type: .structure) ] - /// This is a random key-value pair map which can contain any key and will be passed to your PreAuthentication Lambda trigger as-is. It can be used to implement additional validations around authentication. - public let clientMetadata: [String: String]? - /// The app client ID. - public let clientId: String - /// The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow: For USER_SRP_AUTH: USERNAME (required), SRPA (required), SECRET_HASH (required if the app client is configured with a client secret), DEVICE_KEY For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: USERNAME (required), SECRET_HASH (required if the app client is configured with a client secret), REFRESH_TOKEN (required), DEVICE_KEY For ADMIN_NO_SRP_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), PASSWORD (required), DEVICE_KEY For CUSTOM_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), DEVICE_KEY - public let authParameters: [String: String]? - /// The authentication flow for this call to execute. The API action will depend on this value. For example: REFRESH_TOKEN_AUTH will take in a valid refresh token and return new tokens. USER_SRP_AUTH will take in USERNAME and SRPA and return the SRP variables to be used for next challenge execution. Valid values include: USER_SRP_AUTH: Authentication flow for the Secure Remote Password (SRP) protocol. REFRESH_TOKEN_AUTH/REFRESH_TOKEN: Authentication flow for refreshing the access token and ID token by supplying a valid refresh token. CUSTOM_AUTH: Custom authentication flow. ADMIN_NO_SRP_AUTH: Non-SRP authentication flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled for calling the app client. - public let authFlow: AuthFlowType - /// The ID of the Amazon Cognito user pool. - public let userPoolId: String + /// The notify configuration used to construct email notifications. + public let notifyConfiguration: NotifyConfigurationType? + /// Account takeover risk configuration actions + public let actions: AccountTakeoverActionsType - public init(clientMetadata: [String: String]? = nil, clientId: String, authParameters: [String: String]? = nil, authFlow: AuthFlowType, userPoolId: String) { - self.clientMetadata = clientMetadata - self.clientId = clientId - self.authParameters = authParameters - self.authFlow = authFlow - self.userPoolId = userPoolId + public init(notifyConfiguration: NotifyConfigurationType? = nil, actions: AccountTakeoverActionsType) { + self.notifyConfiguration = notifyConfiguration + self.actions = actions } private enum CodingKeys: String, CodingKey { - case clientMetadata = "ClientMetadata" - case clientId = "ClientId" - case authParameters = "AuthParameters" - case authFlow = "AuthFlow" - case userPoolId = "UserPoolId" + case notifyConfiguration = "NotifyConfiguration" + case actions = "Actions" } } - public struct DescribeIdentityProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ProviderName", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) + public struct SMSMfaSettingsType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PreferredMfa", required: false, type: .boolean), + AWSShapeMember(label: "Enabled", required: false, type: .boolean) ] - /// The identity provider name. - public let providerName: String - /// The user pool ID. - public let userPoolId: String + /// The preferred MFA method. + public let preferredMfa: Bool? + /// Specifies whether SMS text message MFA is enabled. + public let enabled: Bool? - public init(providerName: String, userPoolId: String) { - self.providerName = providerName - self.userPoolId = userPoolId + public init(preferredMfa: Bool? = nil, enabled: Bool? = nil) { + self.preferredMfa = preferredMfa + self.enabled = enabled } private enum CodingKeys: String, CodingKey { - case providerName = "ProviderName" - case userPoolId = "UserPoolId" + case preferredMfa = "PreferredMfa" + case enabled = "Enabled" } } - public struct CreateUserPoolDomainResponse: AWSShape { - - } - - public struct UpdateUserPoolClientResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolClient", required: false, type: .structure) + public struct SetRiskConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RiskExceptionConfiguration", required: false, type: .structure), + AWSShapeMember(label: "ClientId", required: false, type: .string), + AWSShapeMember(label: "CompromisedCredentialsRiskConfiguration", required: false, type: .structure), + AWSShapeMember(label: "AccountTakeoverRiskConfiguration", required: false, type: .structure), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) ] - /// The user pool client value from the response from the server when an update user pool client request is made. - public let userPoolClient: UserPoolClientType? + /// The configuration to override the risk decision. + public let riskExceptionConfiguration: RiskExceptionConfigurationType? + /// The app client ID. If ClientId is null, then the risk configuration is mapped to userPoolId. When the client ID is null, the same risk configuration is applied to all the clients in the userPool. Otherwise, ClientId is mapped to the client. When the client ID is not null, the user pool configuration is overridden and the risk configuration for the client is used instead. + public let clientId: String? + /// The compromised credentials risk configuration. + public let compromisedCredentialsRiskConfiguration: CompromisedCredentialsRiskConfigurationType? + /// The account takeover risk configuration. + public let accountTakeoverRiskConfiguration: AccountTakeoverRiskConfigurationType? + /// The user pool ID. + public let userPoolId: String - public init(userPoolClient: UserPoolClientType? = nil) { - self.userPoolClient = userPoolClient + public init(riskExceptionConfiguration: RiskExceptionConfigurationType? = nil, clientId: String? = nil, compromisedCredentialsRiskConfiguration: CompromisedCredentialsRiskConfigurationType? = nil, accountTakeoverRiskConfiguration: AccountTakeoverRiskConfigurationType? = nil, userPoolId: String) { + self.riskExceptionConfiguration = riskExceptionConfiguration + self.clientId = clientId + self.compromisedCredentialsRiskConfiguration = compromisedCredentialsRiskConfiguration + self.accountTakeoverRiskConfiguration = accountTakeoverRiskConfiguration + self.userPoolId = userPoolId } private enum CodingKeys: String, CodingKey { - case userPoolClient = "UserPoolClient" + case riskExceptionConfiguration = "RiskExceptionConfiguration" + case clientId = "ClientId" + case compromisedCredentialsRiskConfiguration = "CompromisedCredentialsRiskConfiguration" + case accountTakeoverRiskConfiguration = "AccountTakeoverRiskConfiguration" + case userPoolId = "UserPoolId" } } + public enum CompromisedCredentialsEventActionType: String, CustomStringConvertible, Codable { + case block = "BLOCK" + case noAction = "NO_ACTION" + public var description: String { return self.rawValue } + } + public struct DescribeUserImportJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobId", required: true, type: .string), AWSShapeMember(label: "UserPoolId", required: true, type: .string) ] @@ -940,47 +3541,11 @@ extension CognitoIdp { public var description: String { return self.rawValue } } - public struct UpdateIdentityProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IdpIdentifiers", required: false, type: .list), - AWSShapeMember(label: "ProviderName", required: true, type: .string), - AWSShapeMember(label: "AttributeMapping", required: false, type: .map), - AWSShapeMember(label: "ProviderDetails", required: false, type: .map), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// A list of identity provider identifiers. - public let idpIdentifiers: [String]? - /// The identity provider name. - public let providerName: String - /// The identity provider attribute mapping to be changed. - public let attributeMapping: [String: String]? - /// The identity provider details to be updated, such as MetadataURL and MetadataFile. - public let providerDetails: [String: String]? - /// The user pool ID. - public let userPoolId: String - - public init(idpIdentifiers: [String]? = nil, providerName: String, attributeMapping: [String: String]? = nil, providerDetails: [String: String]? = nil, userPoolId: String) { - self.idpIdentifiers = idpIdentifiers - self.providerName = providerName - self.attributeMapping = attributeMapping - self.providerDetails = providerDetails - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case idpIdentifiers = "IdpIdentifiers" - case providerName = "ProviderName" - case attributeMapping = "AttributeMapping" - case providerDetails = "ProviderDetails" - case userPoolId = "UserPoolId" - } - } - - public struct DeleteUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct GlobalSignOutRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccessToken", required: true, type: .string) ] - /// The access token from a request to delete a user. + /// The access token. public let accessToken: String public init(accessToken: String) { @@ -992,11 +3557,11 @@ extension CognitoIdp { } } - public struct GlobalSignOutRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DeleteUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccessToken", required: true, type: .string) ] - /// The access token. + /// The access token from a request to delete a user. public let accessToken: String public init(accessToken: String) { @@ -1009,12 +3574,13 @@ extension CognitoIdp { } public struct CreateUserPoolClientRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AllowedOAuthScopes", required: false, type: .list), AWSShapeMember(label: "AllowedOAuthFlowsUserPoolClient", required: false, type: .boolean), AWSShapeMember(label: "WriteAttributes", required: false, type: .list), AWSShapeMember(label: "RefreshTokenValidity", required: false, type: .integer), AWSShapeMember(label: "ReadAttributes", required: false, type: .list), + AWSShapeMember(label: "AnalyticsConfiguration", required: false, type: .structure), AWSShapeMember(label: "ExplicitAuthFlows", required: false, type: .list), AWSShapeMember(label: "CallbackURLs", required: false, type: .list), AWSShapeMember(label: "UserPoolId", required: true, type: .string), @@ -1035,6 +3601,8 @@ extension CognitoIdp { public let refreshTokenValidity: Int32? /// The read attributes. public let readAttributes: [String]? + /// The Amazon Pinpoint analytics configuration for collecting metrics for this user pool. + public let analyticsConfiguration: AnalyticsConfigurationType? /// The explicit authentication flows. public let explicitAuthFlows: [ExplicitAuthFlowsType]? /// A list of allowed callback URLs for the identity providers. @@ -1054,12 +3622,13 @@ extension CognitoIdp { /// Boolean to specify whether you want to generate a secret for the user pool client being created. public let generateSecret: Bool? - public init(allowedOAuthScopes: [String]? = nil, allowedOAuthFlowsUserPoolClient: Bool? = nil, writeAttributes: [String]? = nil, refreshTokenValidity: Int32? = nil, readAttributes: [String]? = nil, explicitAuthFlows: [ExplicitAuthFlowsType]? = nil, callbackURLs: [String]? = nil, userPoolId: String, clientName: String, supportedIdentityProviders: [String]? = nil, logoutURLs: [String]? = nil, allowedOAuthFlows: [OAuthFlowType]? = nil, defaultRedirectURI: String? = nil, generateSecret: Bool? = nil) { + public init(allowedOAuthScopes: [String]? = nil, allowedOAuthFlowsUserPoolClient: Bool? = nil, writeAttributes: [String]? = nil, refreshTokenValidity: Int32? = nil, readAttributes: [String]? = nil, analyticsConfiguration: AnalyticsConfigurationType? = nil, explicitAuthFlows: [ExplicitAuthFlowsType]? = nil, callbackURLs: [String]? = nil, userPoolId: String, clientName: String, supportedIdentityProviders: [String]? = nil, logoutURLs: [String]? = nil, allowedOAuthFlows: [OAuthFlowType]? = nil, defaultRedirectURI: String? = nil, generateSecret: Bool? = nil) { self.allowedOAuthScopes = allowedOAuthScopes self.allowedOAuthFlowsUserPoolClient = allowedOAuthFlowsUserPoolClient self.writeAttributes = writeAttributes self.refreshTokenValidity = refreshTokenValidity self.readAttributes = readAttributes + self.analyticsConfiguration = analyticsConfiguration self.explicitAuthFlows = explicitAuthFlows self.callbackURLs = callbackURLs self.userPoolId = userPoolId @@ -1077,6 +3646,7 @@ extension CognitoIdp { case writeAttributes = "WriteAttributes" case refreshTokenValidity = "RefreshTokenValidity" case readAttributes = "ReadAttributes" + case analyticsConfiguration = "AnalyticsConfiguration" case explicitAuthFlows = "ExplicitAuthFlows" case callbackURLs = "CallbackURLs" case userPoolId = "UserPoolId" @@ -1090,7 +3660,7 @@ extension CognitoIdp { } public struct AttributeType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1110,19 +3680,76 @@ extension CognitoIdp { } } - public struct VerifyUserAttributeResponse: AWSShape { + public struct GetUserPoolMfaConfigResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SoftwareTokenMfaConfiguration", required: false, type: .structure), + AWSShapeMember(label: "SmsMfaConfiguration", required: false, type: .structure), + AWSShapeMember(label: "MfaConfiguration", required: false, type: .enum) + ] + /// The software token multi-factor (MFA) configuration. + public let softwareTokenMfaConfiguration: SoftwareTokenMfaConfigType? + /// The SMS text message multi-factor (MFA) configuration. + public let smsMfaConfiguration: SmsMfaConfigType? + /// The multi-factor (MFA) configuration. + public let mfaConfiguration: UserPoolMfaType? + + public init(softwareTokenMfaConfiguration: SoftwareTokenMfaConfigType? = nil, smsMfaConfiguration: SmsMfaConfigType? = nil, mfaConfiguration: UserPoolMfaType? = nil) { + self.softwareTokenMfaConfiguration = softwareTokenMfaConfiguration + self.smsMfaConfiguration = smsMfaConfiguration + self.mfaConfiguration = mfaConfiguration + } + private enum CodingKeys: String, CodingKey { + case softwareTokenMfaConfiguration = "SoftwareTokenMfaConfiguration" + case smsMfaConfiguration = "SmsMfaConfiguration" + case mfaConfiguration = "MfaConfiguration" + } } - public enum AliasAttributeType: String, CustomStringConvertible, Codable { - case phoneNumber = "phone_number" - case email = "email" - case preferredUsername = "preferred_username" - public var description: String { return self.rawValue } + public struct UserContextDataType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EncodedData", required: false, type: .string) + ] + /// Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security. + public let encodedData: String? + + public init(encodedData: String? = nil) { + self.encodedData = encodedData + } + + private enum CodingKeys: String, CodingKey { + case encodedData = "EncodedData" + } + } + + public struct ProviderUserIdentifierType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProviderAttributeValue", required: false, type: .string), + AWSShapeMember(label: "ProviderName", required: false, type: .string), + AWSShapeMember(label: "ProviderAttributeName", required: false, type: .string) + ] + /// The value of the provider attribute to link to, for example, xxxxx_account. + public let providerAttributeValue: String? + /// The name of the provider, for example, Facebook, Google, or Login with Amazon. + public let providerName: String? + /// The name of the provider attribute to link to, for example, NameID. + public let providerAttributeName: String? + + public init(providerAttributeValue: String? = nil, providerName: String? = nil, providerAttributeName: String? = nil) { + self.providerAttributeValue = providerAttributeValue + self.providerName = providerName + self.providerAttributeName = providerAttributeName + } + + private enum CodingKeys: String, CodingKey { + case providerAttributeValue = "ProviderAttributeValue" + case providerName = "ProviderName" + case providerAttributeName = "ProviderAttributeName" + } } public struct DomainDescriptionType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "AWSAccountId", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .string), @@ -1167,104 +3794,8 @@ extension CognitoIdp { } } - public struct UserPoolClientType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AllowedOAuthFlowsUserPoolClient", required: false, type: .boolean), - AWSShapeMember(label: "RefreshTokenValidity", required: false, type: .integer), - AWSShapeMember(label: "WriteAttributes", required: false, type: .list), - AWSShapeMember(label: "ReadAttributes", required: false, type: .list), - AWSShapeMember(label: "ExplicitAuthFlows", required: false, type: .list), - AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), - AWSShapeMember(label: "ClientSecret", required: false, type: .string), - AWSShapeMember(label: "CallbackURLs", required: false, type: .list), - AWSShapeMember(label: "UserPoolId", required: false, type: .string), - AWSShapeMember(label: "ClientName", required: false, type: .string), - AWSShapeMember(label: "SupportedIdentityProviders", required: false, type: .list), - AWSShapeMember(label: "LogoutURLs", required: false, type: .list), - AWSShapeMember(label: "AllowedOAuthFlows", required: false, type: .list), - AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), - AWSShapeMember(label: "DefaultRedirectURI", required: false, type: .string), - AWSShapeMember(label: "ClientId", required: false, type: .string), - AWSShapeMember(label: "AllowedOAuthScopes", required: false, type: .list) - ] - /// Set to TRUE if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools. - public let allowedOAuthFlowsUserPoolClient: Bool? - /// The time limit, in days, after which the refresh token is no longer valid and cannot be used. - public let refreshTokenValidity: Int32? - /// The writeable attributes. - public let writeAttributes: [String]? - /// The Read-only attributes. - public let readAttributes: [String]? - /// The explicit authentication flows. - public let explicitAuthFlows: [ExplicitAuthFlowsType]? - /// The date the user pool client was created. - public let creationDate: TimeStamp? - /// The client secret from the user pool request of the client type. - public let clientSecret: String? - /// A list of allowed callback URLs for the identity providers. - public let callbackURLs: [String]? - /// The user pool ID for the user pool client. - public let userPoolId: String? - /// The client name from the user pool request of the client type. - public let clientName: String? - /// A list of provider names for the identity providers that are supported on this client. - public let supportedIdentityProviders: [String]? - /// A list ofallowed logout URLs for the identity providers. - public let logoutURLs: [String]? - /// Set to code to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint. Set to token to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly. - public let allowedOAuthFlows: [OAuthFlowType]? - /// The date the user pool client was last modified. - public let lastModifiedDate: TimeStamp? - /// The default redirect URI. Must be in the CallbackURLs list. - public let defaultRedirectURI: String? - /// The ID of the client associated with the user pool. - public let clientId: String? - /// A list of allowed OAuth scopes. Currently supported values are "phone", "email", "openid", and "Cognito". - public let allowedOAuthScopes: [String]? - - public init(allowedOAuthFlowsUserPoolClient: Bool? = nil, refreshTokenValidity: Int32? = nil, writeAttributes: [String]? = nil, readAttributes: [String]? = nil, explicitAuthFlows: [ExplicitAuthFlowsType]? = nil, creationDate: TimeStamp? = nil, clientSecret: String? = nil, callbackURLs: [String]? = nil, userPoolId: String? = nil, clientName: String? = nil, supportedIdentityProviders: [String]? = nil, logoutURLs: [String]? = nil, allowedOAuthFlows: [OAuthFlowType]? = nil, lastModifiedDate: TimeStamp? = nil, defaultRedirectURI: String? = nil, clientId: String? = nil, allowedOAuthScopes: [String]? = nil) { - self.allowedOAuthFlowsUserPoolClient = allowedOAuthFlowsUserPoolClient - self.refreshTokenValidity = refreshTokenValidity - self.writeAttributes = writeAttributes - self.readAttributes = readAttributes - self.explicitAuthFlows = explicitAuthFlows - self.creationDate = creationDate - self.clientSecret = clientSecret - self.callbackURLs = callbackURLs - self.userPoolId = userPoolId - self.clientName = clientName - self.supportedIdentityProviders = supportedIdentityProviders - self.logoutURLs = logoutURLs - self.allowedOAuthFlows = allowedOAuthFlows - self.lastModifiedDate = lastModifiedDate - self.defaultRedirectURI = defaultRedirectURI - self.clientId = clientId - self.allowedOAuthScopes = allowedOAuthScopes - } - - private enum CodingKeys: String, CodingKey { - case allowedOAuthFlowsUserPoolClient = "AllowedOAuthFlowsUserPoolClient" - case refreshTokenValidity = "RefreshTokenValidity" - case writeAttributes = "WriteAttributes" - case readAttributes = "ReadAttributes" - case explicitAuthFlows = "ExplicitAuthFlows" - case creationDate = "CreationDate" - case clientSecret = "ClientSecret" - case callbackURLs = "CallbackURLs" - case userPoolId = "UserPoolId" - case clientName = "ClientName" - case supportedIdentityProviders = "SupportedIdentityProviders" - case logoutURLs = "LogoutURLs" - case allowedOAuthFlows = "AllowedOAuthFlows" - case lastModifiedDate = "LastModifiedDate" - case defaultRedirectURI = "DefaultRedirectURI" - case clientId = "ClientId" - case allowedOAuthScopes = "AllowedOAuthScopes" - } - } - public struct CreateUserImportJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobName", required: true, type: .string), AWSShapeMember(label: "CloudWatchLogsRoleArn", required: true, type: .string), AWSShapeMember(label: "UserPoolId", required: true, type: .string) @@ -1289,29 +3820,8 @@ extension CognitoIdp { } } - public struct DeleteIdentityProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ProviderName", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The identity provider name. - public let providerName: String - /// The user pool ID. - public let userPoolId: String - - public init(providerName: String, userPoolId: String) { - self.providerName = providerName - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case providerName = "ProviderName" - case userPoolId = "UserPoolId" - } - } - public struct SchemaAttributeType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NumberAttributeConstraints", required: false, type: .structure), AWSShapeMember(label: "DeveloperOnlyAttribute", required: false, type: .boolean), AWSShapeMember(label: "Name", required: false, type: .string), @@ -1357,79 +3867,99 @@ extension CognitoIdp { } public struct ConfirmForgotPasswordRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientId", required: true, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfirmationCode", required: true, type: .string), - AWSShapeMember(label: "Password", required: true, type: .string), AWSShapeMember(label: "SecretHash", required: false, type: .string), - AWSShapeMember(label: "Username", required: true, type: .string) + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "UserContextData", required: false, type: .structure), + AWSShapeMember(label: "Password", required: true, type: .string), + AWSShapeMember(label: "AnalyticsMetadata", required: false, type: .structure) ] - /// The ID of the client associated with the user pool. - public let clientId: String - /// The confirmation code sent by a user's request to retrieve a forgotten password. For more information, see ForgotPassword + /// The confirmation code sent by a user's request to retrieve a forgotten password. For more information, see public let confirmationCode: String - /// The password sent by a user's request to retrieve a forgotten password. - public let password: String /// A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message. public let secretHash: String? /// The user name of the user for whom you want to enter a code to retrieve a forgotten password. public let username: String + /// The app client ID of the app associated with the user pool. + public let clientId: String + /// Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security. + public let userContextData: UserContextDataType? + /// The password sent by a user's request to retrieve a forgotten password. + public let password: String + /// The Amazon Pinpoint analytics metadata for collecting metrics for ConfirmForgotPassword calls. + public let analyticsMetadata: AnalyticsMetadataType? - public init(clientId: String, confirmationCode: String, password: String, secretHash: String? = nil, username: String) { - self.clientId = clientId + public init(confirmationCode: String, secretHash: String? = nil, username: String, clientId: String, userContextData: UserContextDataType? = nil, password: String, analyticsMetadata: AnalyticsMetadataType? = nil) { self.confirmationCode = confirmationCode - self.password = password self.secretHash = secretHash self.username = username + self.clientId = clientId + self.userContextData = userContextData + self.password = password + self.analyticsMetadata = analyticsMetadata } private enum CodingKeys: String, CodingKey { - case clientId = "ClientId" case confirmationCode = "ConfirmationCode" - case password = "Password" case secretHash = "SecretHash" case username = "Username" + case clientId = "ClientId" + case userContextData = "UserContextData" + case password = "Password" + case analyticsMetadata = "AnalyticsMetadata" } } public struct ConfirmSignUpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ForceAliasCreation", required: false, type: .boolean), - AWSShapeMember(label: "ClientId", required: true, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfirmationCode", required: true, type: .string), AWSShapeMember(label: "SecretHash", required: false, type: .string), - AWSShapeMember(label: "Username", required: true, type: .string) + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "UserContextData", required: false, type: .structure), + AWSShapeMember(label: "AnalyticsMetadata", required: false, type: .structure), + AWSShapeMember(label: "ForceAliasCreation", required: false, type: .boolean) ] - /// Boolean to be specified to force user confirmation irrespective of existing alias. By default set to False. If this parameter is set to True and the phone number/email used for sign up confirmation already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user being confirmed. If set to False, the API will throw an AliasExistsException error. - public let forceAliasCreation: Bool? - /// The ID of the client associated with the user pool. - public let clientId: String /// The confirmation code sent by a user's request to confirm registration. public let confirmationCode: String /// A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message. public let secretHash: String? /// The user name of the user whose registration you wish to confirm. public let username: String + /// The ID of the app client associated with the user pool. + public let clientId: String + /// Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security. + public let userContextData: UserContextDataType? + /// The Amazon Pinpoint analytics metadata for collecting metrics for ConfirmSignUp calls. + public let analyticsMetadata: AnalyticsMetadataType? + /// Boolean to be specified to force user confirmation irrespective of existing alias. By default set to False. If this parameter is set to True and the phone number/email used for sign up confirmation already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user being confirmed. If set to False, the API will throw an AliasExistsException error. + public let forceAliasCreation: Bool? - public init(forceAliasCreation: Bool? = nil, clientId: String, confirmationCode: String, secretHash: String? = nil, username: String) { - self.forceAliasCreation = forceAliasCreation - self.clientId = clientId + public init(confirmationCode: String, secretHash: String? = nil, username: String, clientId: String, userContextData: UserContextDataType? = nil, analyticsMetadata: AnalyticsMetadataType? = nil, forceAliasCreation: Bool? = nil) { self.confirmationCode = confirmationCode self.secretHash = secretHash self.username = username + self.clientId = clientId + self.userContextData = userContextData + self.analyticsMetadata = analyticsMetadata + self.forceAliasCreation = forceAliasCreation } private enum CodingKeys: String, CodingKey { - case forceAliasCreation = "ForceAliasCreation" - case clientId = "ClientId" case confirmationCode = "ConfirmationCode" case secretHash = "SecretHash" case username = "Username" + case clientId = "ClientId" + case userContextData = "UserContextData" + case analyticsMetadata = "AnalyticsMetadata" + case forceAliasCreation = "ForceAliasCreation" } } public struct DescribeIdentityProviderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityProvider", required: true, type: .structure) ] /// The identity provider that was deleted. @@ -1444,79 +3974,15 @@ extension CognitoIdp { } } - public struct GroupType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolId", required: false, type: .string), - AWSShapeMember(label: "GroupName", required: false, type: .string), - AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), - AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), - AWSShapeMember(label: "Precedence", required: false, type: .integer), - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string) - ] - /// The user pool ID for the user pool. - public let userPoolId: String? - /// The name of the group. - public let groupName: String? - /// The date the group was last modified. - public let lastModifiedDate: TimeStamp? - /// The date the group was created. - public let creationDate: TimeStamp? - /// A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. If a user belongs to two or more groups, it is the group with the highest precedence whose role ARN will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens. Groups with higher Precedence values take precedence over groups with lower Precedence values or with null Precedence values. Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim is not set in users' tokens. The default Precedence value is null. - public let precedence: Int32? - /// The role ARN for the group. - public let roleArn: String? - /// A string containing the description of the group. - public let description: String? - - public init(userPoolId: String? = nil, groupName: String? = nil, lastModifiedDate: TimeStamp? = nil, creationDate: TimeStamp? = nil, precedence: Int32? = nil, roleArn: String? = nil, description: String? = nil) { - self.userPoolId = userPoolId - self.groupName = groupName - self.lastModifiedDate = lastModifiedDate - self.creationDate = creationDate - self.precedence = precedence - self.roleArn = roleArn - self.description = description - } - - private enum CodingKeys: String, CodingKey { - case userPoolId = "UserPoolId" - case groupName = "GroupName" - case lastModifiedDate = "LastModifiedDate" - case creationDate = "CreationDate" - case precedence = "Precedence" - case roleArn = "RoleArn" - case description = "Description" - } - } - - public enum AuthFlowType: String, CustomStringConvertible, Codable { - case userSrpAuth = "USER_SRP_AUTH" - case refreshTokenAuth = "REFRESH_TOKEN_AUTH" - case refreshToken = "REFRESH_TOKEN" - case customAuth = "CUSTOM_AUTH" - case adminNoSrpAuth = "ADMIN_NO_SRP_AUTH" + public enum RiskLevelType: String, CustomStringConvertible, Codable { + case low = "Low" + case medium = "Medium" + case high = "High" public var description: String { return self.rawValue } } - public struct StopUserImportJobResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserImportJob", required: false, type: .structure) - ] - /// The job object that represents the user import job. - public let userImportJob: UserImportJobType? - - public init(userImportJob: UserImportJobType? = nil) { - self.userImportJob = userImportJob - } - - private enum CodingKeys: String, CodingKey { - case userImportJob = "UserImportJob" - } - } - public struct AdminEnableUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolId", required: true, type: .string), AWSShapeMember(label: "Username", required: true, type: .string) ] @@ -1537,33 +4003,59 @@ extension CognitoIdp { } public struct ForgotPasswordRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SecretHash", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "UserContextData", required: false, type: .structure), + AWSShapeMember(label: "SecretHash", required: false, type: .string), + AWSShapeMember(label: "AnalyticsMetadata", required: false, type: .structure), AWSShapeMember(label: "Username", required: true, type: .string) ] - /// A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message. - public let secretHash: String? /// The ID of the client associated with the user pool. public let clientId: String + /// Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security. + public let userContextData: UserContextDataType? + /// A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message. + public let secretHash: String? + /// The Amazon Pinpoint analytics metadata for collecting metrics for ForgotPassword calls. + public let analyticsMetadata: AnalyticsMetadataType? /// The user name of the user for whom you want to enter a code to reset a forgotten password. public let username: String - public init(secretHash: String? = nil, clientId: String, username: String) { - self.secretHash = secretHash + public init(clientId: String, userContextData: UserContextDataType? = nil, secretHash: String? = nil, analyticsMetadata: AnalyticsMetadataType? = nil, username: String) { self.clientId = clientId + self.userContextData = userContextData + self.secretHash = secretHash + self.analyticsMetadata = analyticsMetadata self.username = username } private enum CodingKeys: String, CodingKey { - case secretHash = "SecretHash" case clientId = "ClientId" + case userContextData = "UserContextData" + case secretHash = "SecretHash" + case analyticsMetadata = "AnalyticsMetadata" case username = "Username" } } + public struct CompromisedCredentialsActionsType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventAction", required: true, type: .enum) + ] + /// The event action. + public let eventAction: CompromisedCredentialsEventActionType + + public init(eventAction: CompromisedCredentialsEventActionType) { + self.eventAction = eventAction + } + + private enum CodingKeys: String, CodingKey { + case eventAction = "EventAction" + } + } + public struct AdminListDevicesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Username", required: true, type: .string), AWSShapeMember(label: "PaginationToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer), @@ -1593,75 +4085,44 @@ extension CognitoIdp { } } - public enum UserStatusType: String, CustomStringConvertible, Codable { - case unconfirmed = "UNCONFIRMED" - case confirmed = "CONFIRMED" - case archived = "ARCHIVED" - case compromised = "COMPROMISED" - case unknown = "UNKNOWN" - case resetRequired = "RESET_REQUIRED" - case forceChangePassword = "FORCE_CHANGE_PASSWORD" - public var description: String { return self.rawValue } - } - - public struct UpdateDeviceStatusResponse: AWSShape { - - } - - public struct GetUserAttributeVerificationCodeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeName", required: true, type: .string), - AWSShapeMember(label: "AccessToken", required: true, type: .string) - ] - /// The attribute name returned by the server response to get the user attribute verification code. - public let attributeName: String - /// The access token returned by the server response to get the user attribute verification code. - public let accessToken: String - - public init(attributeName: String, accessToken: String) { - self.attributeName = attributeName - self.accessToken = accessToken - } - - private enum CodingKeys: String, CodingKey { - case attributeName = "AttributeName" - case accessToken = "AccessToken" - } - } - - public struct AdminInitiateAuthResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChallengeName", required: false, type: .enum), - AWSShapeMember(label: "ChallengeParameters", required: false, type: .map), - AWSShapeMember(label: "AuthenticationResult", required: false, type: .structure), - AWSShapeMember(label: "Session", required: false, type: .string) - ] - /// The name of the challenge which you are responding to with this call. This is returned to you in the AdminInitiateAuth response if you need to pass another challenge. SMS_MFA: Next challenge is to supply an SMS_MFA_CODE, delivered via SMS. PASSWORD_VERIFIER: Next challenge is to supply PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, and TIMESTAMP after the client-side SRP calculations. CUSTOM_CHALLENGE: This is returned if your custom authentication flow determines that the user should pass another challenge before tokens are issued. DEVICE_SRP_AUTH: If device tracking was enabled on your user pool and the previous challenges were passed, this challenge is returned so that Amazon Cognito can start tracking this device. DEVICE_PASSWORD_VERIFIER: Similar to PASSWORD_VERIFIER, but for devices only. ADMIN_NO_SRP_AUTH: This is returned if you need to authenticate with USERNAME and PASSWORD directly. An app client must be enabled to use this flow. NEW_PASSWORD_REQUIRED: For users which are required to change their passwords after successful first login. This challenge should be passed with NEW_PASSWORD and any other required attributes. - public let challengeName: ChallengeNameType? - /// The challenge parameters. These are returned to you in the AdminInitiateAuth response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (AdminRespondToAuthChallenge). All challenges require USERNAME and SECRET_HASH (if applicable). The value of the USER_IF_FOR_SRP attribute will be the user's actual username, not an alias (such as email address or phone number), even if you specified an alias in your call to AdminInitiateAuth. This is because, in the AdminRespondToAuthChallenge API ChallengeResponses, the USERNAME attribute cannot be an alias. - public let challengeParameters: [String: String]? - /// The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, ChallengeName, ChallengeParameters, and Session are returned. - public let authenticationResult: AuthenticationResultType? - /// The session which should be passed both ways in challenge-response calls to the service. If AdminInitiateAuth or AdminRespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next AdminRespondToAuthChallenge API call. - public let session: String? + public struct EventContextDataType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IpAddress", required: false, type: .string), + AWSShapeMember(label: "Country", required: false, type: .string), + AWSShapeMember(label: "City", required: false, type: .string), + AWSShapeMember(label: "Timezone", required: false, type: .string), + AWSShapeMember(label: "DeviceName", required: false, type: .string) + ] + /// The user's IP address. + public let ipAddress: String? + /// The user's country. + public let country: String? + /// The user's city. + public let city: String? + /// The user's time zone. + public let timezone: String? + /// The user's device name. + public let deviceName: String? - public init(challengeName: ChallengeNameType? = nil, challengeParameters: [String: String]? = nil, authenticationResult: AuthenticationResultType? = nil, session: String? = nil) { - self.challengeName = challengeName - self.challengeParameters = challengeParameters - self.authenticationResult = authenticationResult - self.session = session + public init(ipAddress: String? = nil, country: String? = nil, city: String? = nil, timezone: String? = nil, deviceName: String? = nil) { + self.ipAddress = ipAddress + self.country = country + self.city = city + self.timezone = timezone + self.deviceName = deviceName } private enum CodingKeys: String, CodingKey { - case challengeName = "ChallengeName" - case challengeParameters = "ChallengeParameters" - case authenticationResult = "AuthenticationResult" - case session = "Session" + case ipAddress = "IpAddress" + case country = "Country" + case city = "City" + case timezone = "Timezone" + case deviceName = "DeviceName" } } public struct AdminDeleteUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolId", required: true, type: .string), AWSShapeMember(label: "Username", required: true, type: .string) ] @@ -1682,7 +4143,7 @@ extension CognitoIdp { } public struct GetGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupName", required: true, type: .string), AWSShapeMember(label: "UserPoolId", required: true, type: .string) ] @@ -1702,34 +4163,75 @@ extension CognitoIdp { } } - public struct ListUserImportJobsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolId", required: true, type: .string), - AWSShapeMember(label: "PaginationToken", required: false, type: .string), - AWSShapeMember(label: "MaxResults", required: true, type: .integer) + public struct SoftwareTokenMfaSettingsType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PreferredMfa", required: false, type: .boolean), + AWSShapeMember(label: "Enabled", required: false, type: .boolean) ] - /// The user pool ID for the user pool that the users are being imported into. - public let userPoolId: String - /// An identifier that was returned from the previous call to ListUserImportJobs, which can be used to return the next set of import jobs in the list. - public let paginationToken: String? - /// The maximum number of import jobs you want the request to return. - public let maxResults: Int32 + /// The preferred MFA method. + public let preferredMfa: Bool? + /// Specifies whether software token MFA is enabled. + public let enabled: Bool? - public init(userPoolId: String, paginationToken: String? = nil, maxResults: Int32) { + public init(preferredMfa: Bool? = nil, enabled: Bool? = nil) { + self.preferredMfa = preferredMfa + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case preferredMfa = "PreferredMfa" + case enabled = "Enabled" + } + } + + public struct UICustomizationType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CSS", required: false, type: .string), + AWSShapeMember(label: "ClientId", required: false, type: .string), + AWSShapeMember(label: "CSSVersion", required: false, type: .string), + AWSShapeMember(label: "ImageUrl", required: false, type: .string), + AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "UserPoolId", required: false, type: .string) + ] + /// The CSS values in the UI customization. + public let css: String? + /// The client ID for the client app. + public let clientId: String? + /// The CSS version number. + public let cSSVersion: String? + /// The logo image for the UI customization. + public let imageUrl: String? + /// The creation date for the UI customization. + public let creationDate: TimeStamp? + /// The last-modified date for the UI customization. + public let lastModifiedDate: TimeStamp? + /// The user pool ID for the user pool. + public let userPoolId: String? + + public init(css: String? = nil, clientId: String? = nil, cSSVersion: String? = nil, imageUrl: String? = nil, creationDate: TimeStamp? = nil, lastModifiedDate: TimeStamp? = nil, userPoolId: String? = nil) { + self.css = css + self.clientId = clientId + self.cSSVersion = cSSVersion + self.imageUrl = imageUrl + self.creationDate = creationDate + self.lastModifiedDate = lastModifiedDate self.userPoolId = userPoolId - self.paginationToken = paginationToken - self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { + case css = "CSS" + case clientId = "ClientId" + case cSSVersion = "CSSVersion" + case imageUrl = "ImageUrl" + case creationDate = "CreationDate" + case lastModifiedDate = "LastModifiedDate" case userPoolId = "UserPoolId" - case paginationToken = "PaginationToken" - case maxResults = "MaxResults" } } public struct AdminResetUserPasswordRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolId", required: true, type: .string), AWSShapeMember(label: "Username", required: true, type: .string) ] @@ -1749,34 +4251,45 @@ extension CognitoIdp { } } - public struct ChangePasswordRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PreviousPassword", required: true, type: .string), - AWSShapeMember(label: "ProposedPassword", required: true, type: .string), - AWSShapeMember(label: "AccessToken", required: true, type: .string) - ] - /// The old password in the change password request. - public let previousPassword: String - /// The new password in the change password request. - public let proposedPassword: String - /// The access token in the change password request. - public let accessToken: String + public struct SetUICustomizationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientId", required: false, type: .string), + AWSShapeMember(label: "CSS", required: false, type: .string), + AWSShapeMember(label: "ImageFile", required: false, type: .blob), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) + ] + /// The client ID for the client app. + public let clientId: String? + /// The CSS values in the UI customization. + public let css: String? + /// The uploaded logo image for the UI customization. + public let imageFile: Data? + /// The user pool ID for the user pool. + public let userPoolId: String - public init(previousPassword: String, proposedPassword: String, accessToken: String) { - self.previousPassword = previousPassword - self.proposedPassword = proposedPassword - self.accessToken = accessToken + public init(clientId: String? = nil, css: String? = nil, imageFile: Data? = nil, userPoolId: String) { + self.clientId = clientId + self.css = css + self.imageFile = imageFile + self.userPoolId = userPoolId } private enum CodingKeys: String, CodingKey { - case previousPassword = "PreviousPassword" - case proposedPassword = "ProposedPassword" - case accessToken = "AccessToken" + case clientId = "ClientId" + case css = "CSS" + case imageFile = "ImageFile" + case userPoolId = "UserPoolId" } } + public enum FeedbackValueType: String, CustomStringConvertible, Codable { + case valid = "Valid" + case invalid = "Invalid" + public var description: String { return self.rawValue } + } + public struct UserPoolDescriptionType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), AWSShapeMember(label: "Status", required: false, type: .enum), @@ -1817,7 +4330,7 @@ extension CognitoIdp { } public struct DeviceConfigurationType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceOnlyRememberedOnUserPrompt", required: false, type: .boolean), AWSShapeMember(label: "ChallengeRequiredOnNewDevice", required: false, type: .boolean) ] @@ -1837,106 +4350,15 @@ extension CognitoIdp { } } - public struct ListUserPoolsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPools", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - /// The user pools from the response to list users. - public let userPools: [UserPoolDescriptionType]? - /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. - public let nextToken: String? - - public init(userPools: [UserPoolDescriptionType]? = nil, nextToken: String? = nil) { - self.userPools = userPools - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case userPools = "UserPools" - case nextToken = "NextToken" - } - } - - public struct AdminGetUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserStatus", required: false, type: .enum), - AWSShapeMember(label: "Enabled", required: false, type: .boolean), - AWSShapeMember(label: "Username", required: true, type: .string), - AWSShapeMember(label: "UserCreateDate", required: false, type: .timestamp), - AWSShapeMember(label: "MFAOptions", required: false, type: .list), - AWSShapeMember(label: "UserLastModifiedDate", required: false, type: .timestamp), - AWSShapeMember(label: "UserAttributes", required: false, type: .list) - ] - /// The user status. Can be one of the following: UNCONFIRMED - User has been created but not confirmed. CONFIRMED - User has been confirmed. ARCHIVED - User is no longer active. COMPROMISED - User is disabled due to a potential security threat. UNKNOWN - User status is not known. - public let userStatus: UserStatusType? - /// Indicates that the status is enabled. - public let enabled: Bool? - /// The user name of the user about whom you are receiving information. - public let username: String - /// The date the user was created. - public let userCreateDate: TimeStamp? - /// Specifies the options for MFA (e.g., email or phone number). - public let mFAOptions: [MFAOptionType]? - /// The date the user was last modified. - public let userLastModifiedDate: TimeStamp? - /// An array of name-value pairs representing user attributes. - public let userAttributes: [AttributeType]? - - public init(userStatus: UserStatusType? = nil, enabled: Bool? = nil, username: String, userCreateDate: TimeStamp? = nil, mFAOptions: [MFAOptionType]? = nil, userLastModifiedDate: TimeStamp? = nil, userAttributes: [AttributeType]? = nil) { - self.userStatus = userStatus - self.enabled = enabled - self.username = username - self.userCreateDate = userCreateDate - self.mFAOptions = mFAOptions - self.userLastModifiedDate = userLastModifiedDate - self.userAttributes = userAttributes - } - - private enum CodingKeys: String, CodingKey { - case userStatus = "UserStatus" - case enabled = "Enabled" - case username = "Username" - case userCreateDate = "UserCreateDate" - case mFAOptions = "MFAOptions" - case userLastModifiedDate = "UserLastModifiedDate" - case userAttributes = "UserAttributes" - } - } - - public struct ListUsersInGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupName", required: true, type: .string), - AWSShapeMember(label: "Limit", required: false, type: .integer), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The name of the group. - public let groupName: String - /// The limit of the request to list users. - public let limit: Int32? - /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. - public let nextToken: String? - /// The user pool ID for the user pool. - public let userPoolId: String - - public init(groupName: String, limit: Int32? = nil, nextToken: String? = nil, userPoolId: String) { - self.groupName = groupName - self.limit = limit - self.nextToken = nextToken - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case groupName = "GroupName" - case limit = "Limit" - case nextToken = "NextToken" - case userPoolId = "UserPoolId" - } + public enum RiskDecisionType: String, CustomStringConvertible, Codable { + case norisk = "NoRisk" + case accounttakeover = "AccountTakeover" + case block = "Block" + public var description: String { return self.rawValue } } public struct CreateIdentityProviderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityProvider", required: true, type: .structure) ] /// The newly created identity provider object. @@ -1951,44 +4373,8 @@ extension CognitoIdp { } } - public struct CreateGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Description", required: false, type: .string), - AWSShapeMember(label: "Precedence", required: false, type: .integer), - AWSShapeMember(label: "GroupName", required: true, type: .string), - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// A string containing the description of the group. - public let description: String? - /// A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. Zero is the highest precedence value. Groups with lower Precedence values take precedence over groups with higher or null Precedence values. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens. Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim is not set in users' tokens. The default Precedence value is null. - public let precedence: Int32? - /// The name of the group. Must be unique. - public let groupName: String - /// The role ARN for the group. - public let roleArn: String? - /// The user pool ID for the user pool. - public let userPoolId: String - - public init(description: String? = nil, precedence: Int32? = nil, groupName: String, roleArn: String? = nil, userPoolId: String) { - self.description = description - self.precedence = precedence - self.groupName = groupName - self.roleArn = roleArn - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case description = "Description" - case precedence = "Precedence" - case groupName = "GroupName" - case roleArn = "RoleArn" - case userPoolId = "UserPoolId" - } - } - public struct MessageTemplateType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SMSMessage", required: false, type: .string), AWSShapeMember(label: "EmailMessage", required: false, type: .string), AWSShapeMember(label: "EmailSubject", required: false, type: .string) @@ -2013,24 +4399,8 @@ extension CognitoIdp { } } - public struct ConfirmDeviceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserConfirmationNecessary", required: false, type: .boolean) - ] - /// Indicates whether the user confirmation is necessary to confirm the device response. - public let userConfirmationNecessary: Bool? - - public init(userConfirmationNecessary: Bool? = nil) { - self.userConfirmationNecessary = userConfirmationNecessary - } - - private enum CodingKeys: String, CodingKey { - case userConfirmationNecessary = "UserConfirmationNecessary" - } - } - public struct StartUserImportJobResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserImportJob", required: false, type: .structure) ] /// The job object that represents the user import job. @@ -2045,50 +4415,30 @@ extension CognitoIdp { } } - public struct AdminDisableUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolId", required: true, type: .string), - AWSShapeMember(label: "Username", required: true, type: .string) + public enum VerifySoftwareTokenResponseType: String, CustomStringConvertible, Codable { + case success = "SUCCESS" + case error = "ERROR" + public var description: String { return self.rawValue } + } + + public struct DescribeUserPoolRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string) ] - /// The user pool ID for the user pool where you want to disable the user. + /// The user pool ID for the user pool you want to describe. public let userPoolId: String - /// The user name of the user you wish to disable. - public let username: String - public init(userPoolId: String, username: String) { + public init(userPoolId: String) { self.userPoolId = userPoolId - self.username = username } private enum CodingKeys: String, CodingKey { case userPoolId = "UserPoolId" - case username = "Username" - } - } - - public struct UpdateUserAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserAttributes", required: true, type: .list), - AWSShapeMember(label: "AccessToken", required: true, type: .string) - ] - /// An array of name-value pairs representing user attributes. For custom attributes, you must prepend the custom: prefix to the attribute name. - public let userAttributes: [AttributeType] - /// The access token for the request to update user attributes. - public let accessToken: String - - public init(userAttributes: [AttributeType], accessToken: String) { - self.userAttributes = userAttributes - self.accessToken = accessToken - } - - private enum CodingKeys: String, CodingKey { - case userAttributes = "UserAttributes" - case accessToken = "AccessToken" } } public struct MFAOptionType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: false, type: .string), AWSShapeMember(label: "DeliveryMedium", required: false, type: .enum) ] @@ -2108,76 +4458,54 @@ extension CognitoIdp { } } - public struct ConfirmForgotPasswordResponse: AWSShape { - - } - - public struct DescribeUserPoolRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The user pool ID for the user pool you want to describe. - public let userPoolId: String - - public init(userPoolId: String) { - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case userPoolId = "UserPoolId" - } - } - public struct GetUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserAttributes", required: true, type: .list), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserMFASettingList", required: false, type: .list), AWSShapeMember(label: "MFAOptions", required: false, type: .list), - AWSShapeMember(label: "Username", required: true, type: .string) + AWSShapeMember(label: "Username", required: true, type: .string), + AWSShapeMember(label: "PreferredMfaSetting", required: false, type: .string), + AWSShapeMember(label: "UserAttributes", required: true, type: .list) ] - /// An array of name-value pairs representing user attributes. For custom attributes, you must prepend the custom: prefix to the attribute name. - public let userAttributes: [AttributeType] + public let userMFASettingList: [String]? /// Specifies the options for MFA (e.g., email or phone number). public let mFAOptions: [MFAOptionType]? /// The user name of the user you wish to retrieve from the get user request. public let username: String + public let preferredMfaSetting: String? + /// An array of name-value pairs representing user attributes. For custom attributes, you must prepend the custom: prefix to the attribute name. + public let userAttributes: [AttributeType] - public init(userAttributes: [AttributeType], mFAOptions: [MFAOptionType]? = nil, username: String) { - self.userAttributes = userAttributes + public init(userMFASettingList: [String]? = nil, mFAOptions: [MFAOptionType]? = nil, username: String, preferredMfaSetting: String? = nil, userAttributes: [AttributeType]) { + self.userMFASettingList = userMFASettingList self.mFAOptions = mFAOptions self.username = username + self.preferredMfaSetting = preferredMfaSetting + self.userAttributes = userAttributes } private enum CodingKeys: String, CodingKey { - case userAttributes = "UserAttributes" + case userMFASettingList = "UserMFASettingList" case mFAOptions = "MFAOptions" case username = "Username" + case preferredMfaSetting = "PreferredMfaSetting" + case userAttributes = "UserAttributes" } } - public struct AdminSetUserSettingsResponse: AWSShape { - - } - - public enum DeviceRememberedStatusType: String, CustomStringConvertible, Codable { - case remembered = "remembered" - case notRemembered = "not_remembered" - public var description: String { return self.rawValue } - } - public struct AdminRespondToAuthChallengeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChallengeName", required: false, type: .enum), AWSShapeMember(label: "ChallengeParameters", required: false, type: .map), AWSShapeMember(label: "AuthenticationResult", required: false, type: .structure), AWSShapeMember(label: "Session", required: false, type: .string) ] - /// The name of the challenge. For more information, see AdminInitiateAuth. + /// The name of the challenge. For more information, see . public let challengeName: ChallengeNameType? - /// The challenge parameters. For more information, see AdminInitiateAuth. + /// The challenge parameters. For more information, see . public let challengeParameters: [String: String]? /// The result returned by the server in response to the authentication request. public let authenticationResult: AuthenticationResultType? - /// The session which should be passed both ways in challenge-response calls to the service. If the InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call. + /// The session which should be passed both ways in challenge-response calls to the service. If the or API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call. public let session: String? public init(challengeName: ChallengeNameType? = nil, challengeParameters: [String: String]? = nil, authenticationResult: AuthenticationResultType? = nil, session: String? = nil) { @@ -2196,11 +4524,12 @@ extension CognitoIdp { } public struct UpdateUserPoolClientRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AllowedOAuthFlowsUserPoolClient", required: false, type: .boolean), AWSShapeMember(label: "RefreshTokenValidity", required: false, type: .integer), AWSShapeMember(label: "WriteAttributes", required: false, type: .list), AWSShapeMember(label: "ReadAttributes", required: false, type: .list), + AWSShapeMember(label: "AnalyticsConfiguration", required: false, type: .structure), AWSShapeMember(label: "ExplicitAuthFlows", required: false, type: .list), AWSShapeMember(label: "CallbackURLs", required: false, type: .list), AWSShapeMember(label: "UserPoolId", required: true, type: .string), @@ -2220,6 +4549,8 @@ extension CognitoIdp { public let writeAttributes: [String]? /// The read-only attributes of the user pool. public let readAttributes: [String]? + /// The Amazon Pinpoint analytics configuration for collecting metrics for this user pool. + public let analyticsConfiguration: AnalyticsConfigurationType? /// Explicit authentication flows. public let explicitAuthFlows: [ExplicitAuthFlowsType]? /// A list of allowed callback URLs for the identity providers. @@ -2230,7 +4561,7 @@ extension CognitoIdp { public let clientName: String? /// A list of provider names for the identity providers that are supported on this client. public let supportedIdentityProviders: [String]? - /// A list ofallowed logout URLs for the identity providers. + /// A list of allowed logout URLs for the identity providers. public let logoutURLs: [String]? /// Set to code to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint. Set to token to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly. public let allowedOAuthFlows: [OAuthFlowType]? @@ -2241,11 +4572,12 @@ extension CognitoIdp { /// A list of allowed OAuth scopes. Currently supported values are "phone", "email", "openid", and "Cognito". public let allowedOAuthScopes: [String]? - public init(allowedOAuthFlowsUserPoolClient: Bool? = nil, refreshTokenValidity: Int32? = nil, writeAttributes: [String]? = nil, readAttributes: [String]? = nil, explicitAuthFlows: [ExplicitAuthFlowsType]? = nil, callbackURLs: [String]? = nil, userPoolId: String, clientName: String? = nil, supportedIdentityProviders: [String]? = nil, logoutURLs: [String]? = nil, allowedOAuthFlows: [OAuthFlowType]? = nil, defaultRedirectURI: String? = nil, clientId: String, allowedOAuthScopes: [String]? = nil) { + public init(allowedOAuthFlowsUserPoolClient: Bool? = nil, refreshTokenValidity: Int32? = nil, writeAttributes: [String]? = nil, readAttributes: [String]? = nil, analyticsConfiguration: AnalyticsConfigurationType? = nil, explicitAuthFlows: [ExplicitAuthFlowsType]? = nil, callbackURLs: [String]? = nil, userPoolId: String, clientName: String? = nil, supportedIdentityProviders: [String]? = nil, logoutURLs: [String]? = nil, allowedOAuthFlows: [OAuthFlowType]? = nil, defaultRedirectURI: String? = nil, clientId: String, allowedOAuthScopes: [String]? = nil) { self.allowedOAuthFlowsUserPoolClient = allowedOAuthFlowsUserPoolClient self.refreshTokenValidity = refreshTokenValidity self.writeAttributes = writeAttributes self.readAttributes = readAttributes + self.analyticsConfiguration = analyticsConfiguration self.explicitAuthFlows = explicitAuthFlows self.callbackURLs = callbackURLs self.userPoolId = userPoolId @@ -2263,6 +4595,7 @@ extension CognitoIdp { case refreshTokenValidity = "RefreshTokenValidity" case writeAttributes = "WriteAttributes" case readAttributes = "ReadAttributes" + case analyticsConfiguration = "AnalyticsConfiguration" case explicitAuthFlows = "ExplicitAuthFlows" case callbackURLs = "CallbackURLs" case userPoolId = "UserPoolId" @@ -2276,12 +4609,8 @@ extension CognitoIdp { } } - public struct DeleteUserPoolDomainResponse: AWSShape { - - } - public struct DeviceType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceKey", required: false, type: .string), AWSShapeMember(label: "DeviceLastModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "DeviceAttributes", required: false, type: .list), @@ -2308,11 +4637,32 @@ extension CognitoIdp { } private enum CodingKeys: String, CodingKey { - case deviceKey = "DeviceKey" - case deviceLastModifiedDate = "DeviceLastModifiedDate" - case deviceAttributes = "DeviceAttributes" - case deviceCreateDate = "DeviceCreateDate" - case deviceLastAuthenticatedDate = "DeviceLastAuthenticatedDate" + case deviceKey = "DeviceKey" + case deviceLastModifiedDate = "DeviceLastModifiedDate" + case deviceAttributes = "DeviceAttributes" + case deviceCreateDate = "DeviceCreateDate" + case deviceLastAuthenticatedDate = "DeviceLastAuthenticatedDate" + } + } + + public struct SmsMfaConfigType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SmsAuthenticationMessage", required: false, type: .string), + AWSShapeMember(label: "SmsConfiguration", required: false, type: .structure) + ] + /// The SMS authentication message. + public let smsAuthenticationMessage: String? + /// The SMS configuration. + public let smsConfiguration: SmsConfigurationType? + + public init(smsAuthenticationMessage: String? = nil, smsConfiguration: SmsConfigurationType? = nil) { + self.smsAuthenticationMessage = smsAuthenticationMessage + self.smsConfiguration = smsConfiguration + } + + private enum CodingKeys: String, CodingKey { + case smsAuthenticationMessage = "SmsAuthenticationMessage" + case smsConfiguration = "SmsConfiguration" } } @@ -2320,14 +4670,8 @@ extension CognitoIdp { } - public enum MessageActionType: String, CustomStringConvertible, Codable { - case resend = "RESEND" - case suppress = "SUPPRESS" - public var description: String { return self.rawValue } - } - public struct AdminUpdateUserAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Username", required: true, type: .string), AWSShapeMember(label: "UserAttributes", required: true, type: .list), AWSShapeMember(label: "UserPoolId", required: true, type: .string) @@ -2352,34 +4696,64 @@ extension CognitoIdp { } } - public struct SmsConfigurationType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ExternalId", required: false, type: .string), - AWSShapeMember(label: "SnsCallerArn", required: true, type: .string) - ] - /// The external ID. - public let externalId: String? - /// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller. - public let snsCallerArn: String - - public init(externalId: String? = nil, snsCallerArn: String) { - self.externalId = externalId - self.snsCallerArn = snsCallerArn + public struct AuthEventType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventId", required: false, type: .string), + AWSShapeMember(label: "ChallengeResponses", required: false, type: .list), + AWSShapeMember(label: "EventResponse", required: false, type: .enum), + AWSShapeMember(label: "EventFeedback", required: false, type: .structure), + AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), + AWSShapeMember(label: "EventRisk", required: false, type: .structure), + AWSShapeMember(label: "EventContextData", required: false, type: .structure), + AWSShapeMember(label: "EventType", required: false, type: .enum) + ] + /// The event ID. + public let eventId: String? + /// The challenge responses. + public let challengeResponses: [ChallengeResponseType]? + /// The event response. + public let eventResponse: EventResponseType? + /// A flag specifying the user feedback captured at the time of an event request is good or bad. + public let eventFeedback: EventFeedbackType? + /// The creation date + public let creationDate: TimeStamp? + /// The event risk. + public let eventRisk: EventRiskType? + /// The user context data captured at the time of an event request. It provides additional information about the client from which event the request is received. + public let eventContextData: EventContextDataType? + /// The event type. + public let eventType: EventType? + + public init(eventId: String? = nil, challengeResponses: [ChallengeResponseType]? = nil, eventResponse: EventResponseType? = nil, eventFeedback: EventFeedbackType? = nil, creationDate: TimeStamp? = nil, eventRisk: EventRiskType? = nil, eventContextData: EventContextDataType? = nil, eventType: EventType? = nil) { + self.eventId = eventId + self.challengeResponses = challengeResponses + self.eventResponse = eventResponse + self.eventFeedback = eventFeedback + self.creationDate = creationDate + self.eventRisk = eventRisk + self.eventContextData = eventContextData + self.eventType = eventType } private enum CodingKeys: String, CodingKey { - case externalId = "ExternalId" - case snsCallerArn = "SnsCallerArn" + case eventId = "EventId" + case challengeResponses = "ChallengeResponses" + case eventResponse = "EventResponse" + case eventFeedback = "EventFeedback" + case creationDate = "CreationDate" + case eventRisk = "EventRisk" + case eventContextData = "EventContextData" + case eventType = "EventType" } } public struct CodeDeliveryDetailsType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: false, type: .string), AWSShapeMember(label: "Destination", required: false, type: .string), AWSShapeMember(label: "DeliveryMedium", required: false, type: .enum) ] - /// The name of the attribute in the code delivery details type. + /// The attribute name. public let attributeName: String? /// The destination for the code delivery details. public let destination: String? @@ -2399,33 +4773,8 @@ extension CognitoIdp { } } - public struct GetCSVHeaderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CSVHeader", required: false, type: .list), - AWSShapeMember(label: "UserPoolId", required: false, type: .string) - ] - /// The header information for the .csv file for the user import job. - public let cSVHeader: [String]? - /// The user pool ID for the user pool that the users are to be imported into. - public let userPoolId: String? - - public init(cSVHeader: [String]? = nil, userPoolId: String? = nil) { - self.cSVHeader = cSVHeader - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case cSVHeader = "CSVHeader" - case userPoolId = "UserPoolId" - } - } - - public struct AdminEnableUserResponse: AWSShape { - - } - public struct AdminConfirmSignUpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolId", required: true, type: .string), AWSShapeMember(label: "Username", required: true, type: .string) ] @@ -2446,7 +4795,7 @@ extension CognitoIdp { } public struct ForgetDeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceKey", required: true, type: .string), AWSShapeMember(label: "AccessToken", required: false, type: .string) ] @@ -2466,295 +4815,216 @@ extension CognitoIdp { } } - public struct ListUsersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Users", required: false, type: .list), - AWSShapeMember(label: "PaginationToken", required: false, type: .string) - ] - /// The users returned in the request to list users. - public let users: [UserType]? - /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. - public let paginationToken: String? - - public init(users: [UserType]? = nil, paginationToken: String? = nil) { - self.users = users - self.paginationToken = paginationToken - } - - private enum CodingKeys: String, CodingKey { - case users = "Users" - case paginationToken = "PaginationToken" - } - } - public struct UserPoolType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EmailConfigurationFailure", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolTags", required: false, type: .map), + AWSShapeMember(label: "VerificationMessageTemplate", required: false, type: .structure), AWSShapeMember(label: "EmailVerificationSubject", required: false, type: .string), - AWSShapeMember(label: "AdminCreateUserConfig", required: false, type: .structure), + AWSShapeMember(label: "UsernameAttributes", required: false, type: .list), AWSShapeMember(label: "EstimatedNumberOfUsers", required: false, type: .integer), + AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), + AWSShapeMember(label: "MfaConfiguration", required: false, type: .enum), + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "SmsConfiguration", required: false, type: .structure), + AWSShapeMember(label: "EmailConfiguration", required: false, type: .structure), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "EmailVerificationMessage", required: false, type: .string), + AWSShapeMember(label: "DeviceConfiguration", required: false, type: .structure), + AWSShapeMember(label: "EmailConfigurationFailure", required: false, type: .string), + AWSShapeMember(label: "AdminCreateUserConfig", required: false, type: .structure), + AWSShapeMember(label: "UserPoolAddOns", required: false, type: .structure), AWSShapeMember(label: "AliasAttributes", required: false, type: .list), AWSShapeMember(label: "SchemaAttributes", required: false, type: .list), AWSShapeMember(label: "SmsConfigurationFailure", required: false, type: .string), AWSShapeMember(label: "LambdaConfig", required: false, type: .structure), AWSShapeMember(label: "Policies", required: false, type: .structure), - AWSShapeMember(label: "MfaConfiguration", required: false, type: .enum), - AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), - AWSShapeMember(label: "Id", required: false, type: .string), - AWSShapeMember(label: "Status", required: false, type: .enum), - AWSShapeMember(label: "SmsConfiguration", required: false, type: .structure), AWSShapeMember(label: "SmsVerificationMessage", required: false, type: .string), AWSShapeMember(label: "SmsAuthenticationMessage", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "EmailConfiguration", required: false, type: .structure), - AWSShapeMember(label: "EmailVerificationMessage", required: false, type: .string), AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), - AWSShapeMember(label: "AutoVerifiedAttributes", required: false, type: .list), - AWSShapeMember(label: "DeviceConfiguration", required: false, type: .structure) + AWSShapeMember(label: "AutoVerifiedAttributes", required: false, type: .list) ] - /// The reason why the email configuration cannot send the messages to your users. - public let emailConfigurationFailure: String? /// The cost allocation tags for the user pool. For more information, see Adding Cost Allocation Tags to Your User Pool public let userPoolTags: [String: String]? + /// The template for verification messages. + public let verificationMessageTemplate: VerificationMessageTemplateType? /// The subject of the email verification message. public let emailVerificationSubject: String? - /// The configuration for AdminCreateUser requests. - public let adminCreateUserConfig: AdminCreateUserConfigType? + /// Specifies whether email addresses or phone numbers can be specified as usernames when a user signs up. + public let usernameAttributes: [UsernameAttributeType]? /// A number estimating the size of the user pool. public let estimatedNumberOfUsers: Int32? - /// Specifies the attributes that are aliased in a user pool. - public let aliasAttributes: [AliasAttributeType]? - /// A container with the schema attributes of a user pool. - public let schemaAttributes: [SchemaAttributeType]? - /// The reason why the SMS configuration cannot send the messages to your users. - public let smsConfigurationFailure: String? - /// A container for the AWS Lambda triggers associated with a user pool. - public let lambdaConfig: LambdaConfigType? - /// A container for the policies associated with a user pool. - public let policies: UserPoolPolicyType? - /// Can be one of the following values: OFF - MFA tokens are not required and cannot be specified during user registration. ON - MFA tokens are required for all user registrations. You can only specify required when you are initially creating a user pool. OPTIONAL - Users have the option when registering to create an MFA token. - public let mfaConfiguration: UserPoolMfaType? /// The date the user pool was created. public let creationDate: TimeStamp? + /// Can be one of the following values: OFF - MFA tokens are not required and cannot be specified during user registration. ON - MFA tokens are required for all user registrations. You can only specify required when you are initially creating a user pool. OPTIONAL - Users have the option when registering to create an MFA token. + public let mfaConfiguration: UserPoolMfaType? /// The ID of the user pool. public let id: String? /// The status of a user pool. public let status: StatusType? /// The SMS configuration. public let smsConfiguration: SmsConfigurationType? - /// The contents of the SMS verification message. - public let smsVerificationMessage: String? - /// The contents of the SMS authentication message. - public let smsAuthenticationMessage: String? - /// The name of the user pool. - public let name: String? /// The email configuration. public let emailConfiguration: EmailConfigurationType? + /// The name of the user pool. + public let name: String? /// The contents of the email verification message. public let emailVerificationMessage: String? + /// The device configuration. + public let deviceConfiguration: DeviceConfigurationType? + /// The reason why the email configuration cannot send the messages to your users. + public let emailConfigurationFailure: String? + /// The configuration for AdminCreateUser requests. + public let adminCreateUserConfig: AdminCreateUserConfigType? + /// The user pool add-ons. + public let userPoolAddOns: UserPoolAddOnsType? + /// Specifies the attributes that are aliased in a user pool. + public let aliasAttributes: [AliasAttributeType]? + /// A container with the schema attributes of a user pool. + public let schemaAttributes: [SchemaAttributeType]? + /// The reason why the SMS configuration cannot send the messages to your users. + public let smsConfigurationFailure: String? + /// The AWS Lambda triggers associated with tue user pool. + public let lambdaConfig: LambdaConfigType? + /// The policies associated with the user pool. + public let policies: UserPoolPolicyType? + /// The contents of the SMS verification message. + public let smsVerificationMessage: String? + /// The contents of the SMS authentication message. + public let smsAuthenticationMessage: String? /// The date the user pool was last modified. public let lastModifiedDate: TimeStamp? /// Specifies the attributes that are auto-verified in a user pool. public let autoVerifiedAttributes: [VerifiedAttributeType]? - /// The device configuration. - public let deviceConfiguration: DeviceConfigurationType? - public init(emailConfigurationFailure: String? = nil, userPoolTags: [String: String]? = nil, emailVerificationSubject: String? = nil, adminCreateUserConfig: AdminCreateUserConfigType? = nil, estimatedNumberOfUsers: Int32? = nil, aliasAttributes: [AliasAttributeType]? = nil, schemaAttributes: [SchemaAttributeType]? = nil, smsConfigurationFailure: String? = nil, lambdaConfig: LambdaConfigType? = nil, policies: UserPoolPolicyType? = nil, mfaConfiguration: UserPoolMfaType? = nil, creationDate: TimeStamp? = nil, id: String? = nil, status: StatusType? = nil, smsConfiguration: SmsConfigurationType? = nil, smsVerificationMessage: String? = nil, smsAuthenticationMessage: String? = nil, name: String? = nil, emailConfiguration: EmailConfigurationType? = nil, emailVerificationMessage: String? = nil, lastModifiedDate: TimeStamp? = nil, autoVerifiedAttributes: [VerifiedAttributeType]? = nil, deviceConfiguration: DeviceConfigurationType? = nil) { - self.emailConfigurationFailure = emailConfigurationFailure + public init(userPoolTags: [String: String]? = nil, verificationMessageTemplate: VerificationMessageTemplateType? = nil, emailVerificationSubject: String? = nil, usernameAttributes: [UsernameAttributeType]? = nil, estimatedNumberOfUsers: Int32? = nil, creationDate: TimeStamp? = nil, mfaConfiguration: UserPoolMfaType? = nil, id: String? = nil, status: StatusType? = nil, smsConfiguration: SmsConfigurationType? = nil, emailConfiguration: EmailConfigurationType? = nil, name: String? = nil, emailVerificationMessage: String? = nil, deviceConfiguration: DeviceConfigurationType? = nil, emailConfigurationFailure: String? = nil, adminCreateUserConfig: AdminCreateUserConfigType? = nil, userPoolAddOns: UserPoolAddOnsType? = nil, aliasAttributes: [AliasAttributeType]? = nil, schemaAttributes: [SchemaAttributeType]? = nil, smsConfigurationFailure: String? = nil, lambdaConfig: LambdaConfigType? = nil, policies: UserPoolPolicyType? = nil, smsVerificationMessage: String? = nil, smsAuthenticationMessage: String? = nil, lastModifiedDate: TimeStamp? = nil, autoVerifiedAttributes: [VerifiedAttributeType]? = nil) { self.userPoolTags = userPoolTags + self.verificationMessageTemplate = verificationMessageTemplate self.emailVerificationSubject = emailVerificationSubject - self.adminCreateUserConfig = adminCreateUserConfig + self.usernameAttributes = usernameAttributes self.estimatedNumberOfUsers = estimatedNumberOfUsers + self.creationDate = creationDate + self.mfaConfiguration = mfaConfiguration + self.id = id + self.status = status + self.smsConfiguration = smsConfiguration + self.emailConfiguration = emailConfiguration + self.name = name + self.emailVerificationMessage = emailVerificationMessage + self.deviceConfiguration = deviceConfiguration + self.emailConfigurationFailure = emailConfigurationFailure + self.adminCreateUserConfig = adminCreateUserConfig + self.userPoolAddOns = userPoolAddOns self.aliasAttributes = aliasAttributes self.schemaAttributes = schemaAttributes self.smsConfigurationFailure = smsConfigurationFailure self.lambdaConfig = lambdaConfig self.policies = policies - self.mfaConfiguration = mfaConfiguration - self.creationDate = creationDate - self.id = id - self.status = status - self.smsConfiguration = smsConfiguration self.smsVerificationMessage = smsVerificationMessage self.smsAuthenticationMessage = smsAuthenticationMessage - self.name = name - self.emailConfiguration = emailConfiguration - self.emailVerificationMessage = emailVerificationMessage self.lastModifiedDate = lastModifiedDate self.autoVerifiedAttributes = autoVerifiedAttributes - self.deviceConfiguration = deviceConfiguration } private enum CodingKeys: String, CodingKey { - case emailConfigurationFailure = "EmailConfigurationFailure" case userPoolTags = "UserPoolTags" + case verificationMessageTemplate = "VerificationMessageTemplate" case emailVerificationSubject = "EmailVerificationSubject" - case adminCreateUserConfig = "AdminCreateUserConfig" + case usernameAttributes = "UsernameAttributes" case estimatedNumberOfUsers = "EstimatedNumberOfUsers" + case creationDate = "CreationDate" + case mfaConfiguration = "MfaConfiguration" + case id = "Id" + case status = "Status" + case smsConfiguration = "SmsConfiguration" + case emailConfiguration = "EmailConfiguration" + case name = "Name" + case emailVerificationMessage = "EmailVerificationMessage" + case deviceConfiguration = "DeviceConfiguration" + case emailConfigurationFailure = "EmailConfigurationFailure" + case adminCreateUserConfig = "AdminCreateUserConfig" + case userPoolAddOns = "UserPoolAddOns" case aliasAttributes = "AliasAttributes" case schemaAttributes = "SchemaAttributes" case smsConfigurationFailure = "SmsConfigurationFailure" case lambdaConfig = "LambdaConfig" case policies = "Policies" - case mfaConfiguration = "MfaConfiguration" - case creationDate = "CreationDate" - case id = "Id" - case status = "Status" - case smsConfiguration = "SmsConfiguration" case smsVerificationMessage = "SmsVerificationMessage" case smsAuthenticationMessage = "SmsAuthenticationMessage" - case name = "Name" - case emailConfiguration = "EmailConfiguration" - case emailVerificationMessage = "EmailVerificationMessage" case lastModifiedDate = "LastModifiedDate" case autoVerifiedAttributes = "AutoVerifiedAttributes" - case deviceConfiguration = "DeviceConfiguration" - } - } - - public struct GetDeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeviceKey", required: true, type: .string), - AWSShapeMember(label: "AccessToken", required: false, type: .string) - ] - /// The device key. - public let deviceKey: String - /// The access token. - public let accessToken: String? - - public init(deviceKey: String, accessToken: String? = nil) { - self.deviceKey = deviceKey - self.accessToken = accessToken - } - - private enum CodingKeys: String, CodingKey { - case deviceKey = "DeviceKey" - case accessToken = "AccessToken" - } - } - - public struct ListDevicesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PaginationToken", required: false, type: .string), - AWSShapeMember(label: "Devices", required: false, type: .list) - ] - /// The pagination token for the list device response. - public let paginationToken: String? - /// The devices returned in the list devices response. - public let devices: [DeviceType]? - - public init(paginationToken: String? = nil, devices: [DeviceType]? = nil) { - self.paginationToken = paginationToken - self.devices = devices - } - - private enum CodingKeys: String, CodingKey { - case paginationToken = "PaginationToken" - case devices = "Devices" - } - } - - public struct CreateUserPoolResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPool", required: false, type: .structure) - ] - /// A container for the user pool details. - public let userPool: UserPoolType? - - public init(userPool: UserPoolType? = nil) { - self.userPool = userPool - } - - private enum CodingKeys: String, CodingKey { - case userPool = "UserPool" - } - } - - public struct ProviderDescription: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), - AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), - AWSShapeMember(label: "ProviderName", required: false, type: .string), - AWSShapeMember(label: "ProviderType", required: false, type: .enum) + } + } + + public struct GetDeviceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceKey", required: true, type: .string), + AWSShapeMember(label: "AccessToken", required: false, type: .string) ] - /// The date the provider was last modified. - public let lastModifiedDate: TimeStamp? - /// The date the provider was added to the user pool. - public let creationDate: TimeStamp? - /// The identity provider name. - public let providerName: String? - /// The identity provider type. - public let providerType: IdentityProviderTypeType? + /// The device key. + public let deviceKey: String + /// The access token. + public let accessToken: String? - public init(lastModifiedDate: TimeStamp? = nil, creationDate: TimeStamp? = nil, providerName: String? = nil, providerType: IdentityProviderTypeType? = nil) { - self.lastModifiedDate = lastModifiedDate - self.creationDate = creationDate - self.providerName = providerName - self.providerType = providerType + public init(deviceKey: String, accessToken: String? = nil) { + self.deviceKey = deviceKey + self.accessToken = accessToken } private enum CodingKeys: String, CodingKey { - case lastModifiedDate = "LastModifiedDate" - case creationDate = "CreationDate" - case providerName = "ProviderName" - case providerType = "ProviderType" + case deviceKey = "DeviceKey" + case accessToken = "AccessToken" } } - public struct ResendConfirmationCodeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CodeDeliveryDetails", required: false, type: .structure) + public struct ListDevicesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PaginationToken", required: false, type: .string), + AWSShapeMember(label: "Devices", required: false, type: .list) ] - /// The code delivery details returned by the server in response to the request to resend the confirmation code. - public let codeDeliveryDetails: CodeDeliveryDetailsType? + /// The pagination token for the list device response. + public let paginationToken: String? + /// The devices returned in the list devices response. + public let devices: [DeviceType]? - public init(codeDeliveryDetails: CodeDeliveryDetailsType? = nil) { - self.codeDeliveryDetails = codeDeliveryDetails + public init(paginationToken: String? = nil, devices: [DeviceType]? = nil) { + self.paginationToken = paginationToken + self.devices = devices } private enum CodingKeys: String, CodingKey { - case codeDeliveryDetails = "CodeDeliveryDetails" + case paginationToken = "PaginationToken" + case devices = "Devices" } } - public struct AdminConfirmSignUpResponse: AWSShape { - - } - - public struct RespondToAuthChallengeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChallengeName", required: true, type: .enum), - AWSShapeMember(label: "ClientId", required: true, type: .string), - AWSShapeMember(label: "Session", required: false, type: .string), - AWSShapeMember(label: "ChallengeResponses", required: false, type: .map) + public struct DescribeRiskConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientId", required: false, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) ] - /// The challenge name. For more information, see InitiateAuth. ADMIN_NO_SRP_AUTH is not a valid value. - public let challengeName: ChallengeNameType /// The app client ID. - public let clientId: String - /// The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call. - public let session: String? - /// The challenge responses. These are inputs corresponding to the value of ChallengeName, for example: SMS_MFA: SMS_MFA_CODE, USERNAME, SECRET_HASH (if app client is configured with client secret). PASSWORD_VERIFIER: PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, TIMESTAMP, USERNAME, SECRET_HASH (if app client is configured with client secret). NEW_PASSWORD_REQUIRED: NEW_PASSWORD, any other required attributes, USERNAME, SECRET_HASH (if app client is configured with client secret). - public let challengeResponses: [String: String]? + public let clientId: String? + /// The user pool ID. + public let userPoolId: String - public init(challengeName: ChallengeNameType, clientId: String, session: String? = nil, challengeResponses: [String: String]? = nil) { - self.challengeName = challengeName + public init(clientId: String? = nil, userPoolId: String) { self.clientId = clientId - self.session = session - self.challengeResponses = challengeResponses + self.userPoolId = userPoolId } private enum CodingKeys: String, CodingKey { - case challengeName = "ChallengeName" case clientId = "ClientId" - case session = "Session" - case challengeResponses = "ChallengeResponses" + case userPoolId = "UserPoolId" } } + public struct AdminConfirmSignUpResponse: AWSShape { + + } + public struct CreateUserImportJobResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserImportJob", required: false, type: .structure) ] /// The job object that represents the user import job. @@ -2773,89 +5043,8 @@ extension CognitoIdp { } - public struct UpdateUserPoolRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolTags", required: false, type: .map), - AWSShapeMember(label: "EmailVerificationSubject", required: false, type: .string), - AWSShapeMember(label: "AdminCreateUserConfig", required: false, type: .structure), - AWSShapeMember(label: "Policies", required: false, type: .structure), - AWSShapeMember(label: "LambdaConfig", required: false, type: .structure), - AWSShapeMember(label: "MfaConfiguration", required: false, type: .enum), - AWSShapeMember(label: "UserPoolId", required: true, type: .string), - AWSShapeMember(label: "EmailConfiguration", required: false, type: .structure), - AWSShapeMember(label: "SmsVerificationMessage", required: false, type: .string), - AWSShapeMember(label: "SmsAuthenticationMessage", required: false, type: .string), - AWSShapeMember(label: "EmailVerificationMessage", required: false, type: .string), - AWSShapeMember(label: "SmsConfiguration", required: false, type: .structure), - AWSShapeMember(label: "AutoVerifiedAttributes", required: false, type: .list), - AWSShapeMember(label: "DeviceConfiguration", required: false, type: .structure) - ] - /// The cost allocation tags for the user pool. For more information, see Adding Cost Allocation Tags to Your User Pool - public let userPoolTags: [String: String]? - /// The subject of the email verification message. - public let emailVerificationSubject: String? - /// The configuration for AdminCreateUser requests. - public let adminCreateUserConfig: AdminCreateUserConfigType? - /// A container with the policies you wish to update in a user pool. - public let policies: UserPoolPolicyType? - /// The AWS Lambda configuration information from the request to update the user pool. - public let lambdaConfig: LambdaConfigType? - /// Can be one of the following values: OFF - MFA tokens are not required and cannot be specified during user registration. ON - MFA tokens are required for all user registrations. You can only specify required when you are initially creating a user pool. OPTIONAL - Users have the option when registering to create an MFA token. - public let mfaConfiguration: UserPoolMfaType? - /// The user pool ID for the user pool you want to update. - public let userPoolId: String - /// Email configuration. - public let emailConfiguration: EmailConfigurationType? - /// A container with information about the SMS verification message. - public let smsVerificationMessage: String? - /// The contents of the SMS authentication message. - public let smsAuthenticationMessage: String? - /// The contents of the email verification message. - public let emailVerificationMessage: String? - /// SMS configuration. - public let smsConfiguration: SmsConfigurationType? - /// The attributes that are automatically verified when the Amazon Cognito service makes a request to update user pools. - public let autoVerifiedAttributes: [VerifiedAttributeType]? - /// Device configuration. - public let deviceConfiguration: DeviceConfigurationType? - - public init(userPoolTags: [String: String]? = nil, emailVerificationSubject: String? = nil, adminCreateUserConfig: AdminCreateUserConfigType? = nil, policies: UserPoolPolicyType? = nil, lambdaConfig: LambdaConfigType? = nil, mfaConfiguration: UserPoolMfaType? = nil, userPoolId: String, emailConfiguration: EmailConfigurationType? = nil, smsVerificationMessage: String? = nil, smsAuthenticationMessage: String? = nil, emailVerificationMessage: String? = nil, smsConfiguration: SmsConfigurationType? = nil, autoVerifiedAttributes: [VerifiedAttributeType]? = nil, deviceConfiguration: DeviceConfigurationType? = nil) { - self.userPoolTags = userPoolTags - self.emailVerificationSubject = emailVerificationSubject - self.adminCreateUserConfig = adminCreateUserConfig - self.policies = policies - self.lambdaConfig = lambdaConfig - self.mfaConfiguration = mfaConfiguration - self.userPoolId = userPoolId - self.emailConfiguration = emailConfiguration - self.smsVerificationMessage = smsVerificationMessage - self.smsAuthenticationMessage = smsAuthenticationMessage - self.emailVerificationMessage = emailVerificationMessage - self.smsConfiguration = smsConfiguration - self.autoVerifiedAttributes = autoVerifiedAttributes - self.deviceConfiguration = deviceConfiguration - } - - private enum CodingKeys: String, CodingKey { - case userPoolTags = "UserPoolTags" - case emailVerificationSubject = "EmailVerificationSubject" - case adminCreateUserConfig = "AdminCreateUserConfig" - case policies = "Policies" - case lambdaConfig = "LambdaConfig" - case mfaConfiguration = "MfaConfiguration" - case userPoolId = "UserPoolId" - case emailConfiguration = "EmailConfiguration" - case smsVerificationMessage = "SmsVerificationMessage" - case smsAuthenticationMessage = "SmsAuthenticationMessage" - case emailVerificationMessage = "EmailVerificationMessage" - case smsConfiguration = "SmsConfiguration" - case autoVerifiedAttributes = "AutoVerifiedAttributes" - case deviceConfiguration = "DeviceConfiguration" - } - } - public struct LambdaConfigType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PostAuthentication", required: false, type: .string), AWSShapeMember(label: "CustomMessage", required: false, type: .string), AWSShapeMember(label: "PreSignUp", required: false, type: .string), @@ -2863,6 +5052,7 @@ extension CognitoIdp { AWSShapeMember(label: "DefineAuthChallenge", required: false, type: .string), AWSShapeMember(label: "CreateAuthChallenge", required: false, type: .string), AWSShapeMember(label: "PreAuthentication", required: false, type: .string), + AWSShapeMember(label: "PreTokenGeneration", required: false, type: .string), AWSShapeMember(label: "PostConfirmation", required: false, type: .string) ] /// A post-authentication AWS Lambda trigger. @@ -2879,10 +5069,12 @@ extension CognitoIdp { public let createAuthChallenge: String? /// A pre-authentication AWS Lambda trigger. public let preAuthentication: String? + /// A Lambda trigger that is invoked before token generation. + public let preTokenGeneration: String? /// A post-confirmation AWS Lambda trigger. public let postConfirmation: String? - public init(postAuthentication: String? = nil, customMessage: String? = nil, preSignUp: String? = nil, verifyAuthChallengeResponse: String? = nil, defineAuthChallenge: String? = nil, createAuthChallenge: String? = nil, preAuthentication: String? = nil, postConfirmation: String? = nil) { + public init(postAuthentication: String? = nil, customMessage: String? = nil, preSignUp: String? = nil, verifyAuthChallengeResponse: String? = nil, defineAuthChallenge: String? = nil, createAuthChallenge: String? = nil, preAuthentication: String? = nil, preTokenGeneration: String? = nil, postConfirmation: String? = nil) { self.postAuthentication = postAuthentication self.customMessage = customMessage self.preSignUp = preSignUp @@ -2890,6 +5082,7 @@ extension CognitoIdp { self.defineAuthChallenge = defineAuthChallenge self.createAuthChallenge = createAuthChallenge self.preAuthentication = preAuthentication + self.preTokenGeneration = preTokenGeneration self.postConfirmation = postConfirmation } @@ -2901,6 +5094,7 @@ extension CognitoIdp { case defineAuthChallenge = "DefineAuthChallenge" case createAuthChallenge = "CreateAuthChallenge" case preAuthentication = "PreAuthentication" + case preTokenGeneration = "PreTokenGeneration" case postConfirmation = "PostConfirmation" } } @@ -2913,140 +5107,62 @@ extension CognitoIdp { public var description: String { return self.rawValue } } - public struct DescribeUserPoolDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Domain", required: true, type: .string) - ] - /// The domain string. - public let domain: String - - public init(domain: String) { - self.domain = domain - } - - private enum CodingKeys: String, CodingKey { - case domain = "Domain" - } - } - - public struct ListGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Limit", required: false, type: .integer), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The limit of the request to list groups. - public let limit: Int32? - /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. - public let nextToken: String? - /// The user pool ID for the user pool. - public let userPoolId: String - - public init(limit: Int32? = nil, nextToken: String? = nil, userPoolId: String) { - self.limit = limit - self.nextToken = nextToken - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case limit = "Limit" - case nextToken = "NextToken" - case userPoolId = "UserPoolId" - } - } - - public struct SetUserSettingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MFAOptions", required: true, type: .list), - AWSShapeMember(label: "AccessToken", required: true, type: .string) - ] - /// Specifies the options for MFA (e.g., email or phone number). - public let mFAOptions: [MFAOptionType] - /// The access token for the set user settings request. - public let accessToken: String - - public init(mFAOptions: [MFAOptionType], accessToken: String) { - self.mFAOptions = mFAOptions - self.accessToken = accessToken - } - - private enum CodingKeys: String, CodingKey { - case mFAOptions = "MFAOptions" - case accessToken = "AccessToken" - } - } - - public struct GetIdentityProviderByIdentifierRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IdpIdentifier", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The identity provider ID. - public let idpIdentifier: String - /// The user pool ID. - public let userPoolId: String - - public init(idpIdentifier: String, userPoolId: String) { - self.idpIdentifier = idpIdentifier - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case idpIdentifier = "IdpIdentifier" - case userPoolId = "UserPoolId" - } - } - - public enum IdentityProviderTypeType: String, CustomStringConvertible, Codable { - case saml = "SAML" + public enum EventFilterType: String, CustomStringConvertible, Codable { + case signIn = "SIGN_IN" + case passwordChange = "PASSWORD_CHANGE" + case signUp = "SIGN_UP" public var description: String { return self.rawValue } } - public struct AdminGetUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolId", required: true, type: .string), - AWSShapeMember(label: "Username", required: true, type: .string) - ] - /// The user pool ID for the user pool where you want to get information about the user. - public let userPoolId: String - /// The user name of the user you wish to retrieve. - public let username: String - - public init(userPoolId: String, username: String) { - self.userPoolId = userPoolId - self.username = username + public struct CompromisedCredentialsRiskConfigurationType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Actions", required: true, type: .structure), + AWSShapeMember(label: "EventFilter", required: false, type: .list) + ] + /// The compromised credentials risk configuration actions. + public let actions: CompromisedCredentialsActionsType + /// Perform the action for these events. The default is to perform all events if no event filter is specified. + public let eventFilter: [EventFilterType]? + + public init(actions: CompromisedCredentialsActionsType, eventFilter: [EventFilterType]? = nil) { + self.actions = actions + self.eventFilter = eventFilter } private enum CodingKeys: String, CodingKey { - case userPoolId = "UserPoolId" - case username = "Username" + case actions = "Actions" + case eventFilter = "EventFilter" } } - public enum StatusType: String, CustomStringConvertible, Codable { - case enabled = "Enabled" - case disabled = "Disabled" - public var description: String { return self.rawValue } - } - - public struct GetGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Group", required: false, type: .structure) + public struct AdminCreateUserConfigType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AllowAdminCreateUserOnly", required: false, type: .boolean), + AWSShapeMember(label: "UnusedAccountValidityDays", required: false, type: .integer), + AWSShapeMember(label: "InviteMessageTemplate", required: false, type: .structure) ] - /// The group object for the group. - public let group: GroupType? + /// Set to True if only the administrator is allowed to create user profiles. Set to False if users can sign themselves up via an app. + public let allowAdminCreateUserOnly: Bool? + /// The user account expiration limit, in days, after which the account is no longer usable. To reset the account after that time limit, you must call AdminCreateUser again, specifying "RESEND" for the MessageAction parameter. The default value for this parameter is 7. + public let unusedAccountValidityDays: Int32? + /// The message template to be used for the welcome message to new users. See also Customizing User Invitation Messages. + public let inviteMessageTemplate: MessageTemplateType? - public init(group: GroupType? = nil) { - self.group = group + public init(allowAdminCreateUserOnly: Bool? = nil, unusedAccountValidityDays: Int32? = nil, inviteMessageTemplate: MessageTemplateType? = nil) { + self.allowAdminCreateUserOnly = allowAdminCreateUserOnly + self.unusedAccountValidityDays = unusedAccountValidityDays + self.inviteMessageTemplate = inviteMessageTemplate } private enum CodingKeys: String, CodingKey { - case group = "Group" + case allowAdminCreateUserOnly = "AllowAdminCreateUserOnly" + case unusedAccountValidityDays = "UnusedAccountValidityDays" + case inviteMessageTemplate = "InviteMessageTemplate" } } public struct AuthenticationResultType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExpiresIn", required: false, type: .integer), AWSShapeMember(label: "NewDeviceMetadata", required: false, type: .structure), AWSShapeMember(label: "IdToken", required: false, type: .string), @@ -3058,13 +5174,13 @@ extension CognitoIdp { public let expiresIn: Int32? /// The new device metadata from an authentication result. public let newDeviceMetadata: NewDeviceMetadataType? - /// The ID token of the authentication result. + /// The ID token. public let idToken: String? - /// The token type of the authentication result. + /// The token type. public let tokenType: String? - /// The refresh token of the authentication result. + /// The refresh token. public let refreshToken: String? - /// The access token of the authentication result. + /// The access token. public let accessToken: String? public init(expiresIn: Int32? = nil, newDeviceMetadata: NewDeviceMetadataType? = nil, idToken: String? = nil, tokenType: String? = nil, refreshToken: String? = nil, accessToken: String? = nil) { @@ -3086,65 +5202,32 @@ extension CognitoIdp { } } - public enum OAuthFlowType: String, CustomStringConvertible, Codable { - case code = "code" - case implicit = "implicit" - case clientCredentials = "client_credentials" - public var description: String { return self.rawValue } - } - - public struct AdminCreateUserConfigType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AllowAdminCreateUserOnly", required: false, type: .boolean), - AWSShapeMember(label: "UnusedAccountValidityDays", required: false, type: .integer), - AWSShapeMember(label: "InviteMessageTemplate", required: false, type: .structure) - ] - /// Set to True if only the administrator is allowed to create user profiles. Set to False if users can sign themselves up via an app. - public let allowAdminCreateUserOnly: Bool? - /// The user account expiration limit, in days, after which the account is no longer usable. To reset the account after that time limit, you must call AdminCreateUser again, specifying "RESEND" for the MessageAction parameter. The default value for this parameter is 7. - public let unusedAccountValidityDays: Int32? - /// The message template to be used for the welcome message to new users. - public let inviteMessageTemplate: MessageTemplateType? - - public init(allowAdminCreateUserOnly: Bool? = nil, unusedAccountValidityDays: Int32? = nil, inviteMessageTemplate: MessageTemplateType? = nil) { - self.allowAdminCreateUserOnly = allowAdminCreateUserOnly - self.unusedAccountValidityDays = unusedAccountValidityDays - self.inviteMessageTemplate = inviteMessageTemplate - } - - private enum CodingKeys: String, CodingKey { - case allowAdminCreateUserOnly = "AllowAdminCreateUserOnly" - case unusedAccountValidityDays = "UnusedAccountValidityDays" - case inviteMessageTemplate = "InviteMessageTemplate" - } - } - - public struct ListIdentityProvidersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Providers", required: true, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) + public struct StringAttributeConstraintsType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MinLength", required: false, type: .string), + AWSShapeMember(label: "MaxLength", required: false, type: .string) ] - /// A list of identity provider objects. - public let providers: [ProviderDescription] - /// A pagination token. - public let nextToken: String? + /// The minimum length. + public let minLength: String? + /// The maximum length. + public let maxLength: String? - public init(providers: [ProviderDescription], nextToken: String? = nil) { - self.providers = providers - self.nextToken = nextToken + public init(minLength: String? = nil, maxLength: String? = nil) { + self.minLength = minLength + self.maxLength = maxLength } private enum CodingKeys: String, CodingKey { - case providers = "Providers" - case nextToken = "NextToken" + case minLength = "MinLength" + case maxLength = "MaxLength" } } public struct UserPoolPolicyType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PasswordPolicy", required: false, type: .structure) ] - /// A container for information about the user pool password policy. + /// The password policy. public let passwordPolicy: PasswordPolicyType? public init(passwordPolicy: PasswordPolicyType? = nil) { @@ -3157,7 +5240,7 @@ extension CognitoIdp { } public struct ForgotPasswordResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CodeDeliveryDetails", required: false, type: .structure) ] /// The code delivery details returned by the server in response to the request to reset a password. @@ -3172,29 +5255,8 @@ extension CognitoIdp { } } - public struct StringAttributeConstraintsType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MinLength", required: false, type: .string), - AWSShapeMember(label: "MaxLength", required: false, type: .string) - ] - /// The minimum length of an attribute value of the string type. - public let minLength: String? - /// The maximum length of an attribute value of the string type. - public let maxLength: String? - - public init(minLength: String? = nil, maxLength: String? = nil) { - self.minLength = minLength - self.maxLength = maxLength - } - - private enum CodingKeys: String, CodingKey { - case minLength = "MinLength" - case maxLength = "MaxLength" - } - } - public struct CreateGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Group", required: false, type: .structure) ] /// The group object for the group. @@ -3209,10 +5271,6 @@ extension CognitoIdp { } } - public struct GlobalSignOutResponse: AWSShape { - - } - public enum ExplicitAuthFlowsType: String, CustomStringConvertible, Codable { case adminNoSrpAuth = "ADMIN_NO_SRP_AUTH" case customAuthFlowOnly = "CUSTOM_AUTH_FLOW_ONLY" @@ -3227,7 +5285,7 @@ extension CognitoIdp { } public struct NewDeviceMetadataType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceGroupKey", required: false, type: .string), AWSShapeMember(label: "DeviceKey", required: false, type: .string) ] @@ -3247,55 +5305,14 @@ extension CognitoIdp { } } - public struct DescribeUserPoolClientRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientId", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The ID of the client associated with the user pool. - public let clientId: String - /// The user pool ID for the user pool you want to describe. - public let userPoolId: String - - public init(clientId: String, userPoolId: String) { - self.clientId = clientId - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case clientId = "ClientId" - case userPoolId = "UserPoolId" - } - } - - public struct SignUpResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CodeDeliveryDetails", required: false, type: .structure), - AWSShapeMember(label: "UserConfirmed", required: true, type: .boolean), - AWSShapeMember(label: "UserSub", required: true, type: .string) - ] - /// The code delivery details returned by the server response to the user registration request. - public let codeDeliveryDetails: CodeDeliveryDetailsType? - /// A response from the server indicating that a user registration has been confirmed. - public let userConfirmed: Bool - /// The UUID of the authenticated user. This is not the same as username. - public let userSub: String - - public init(codeDeliveryDetails: CodeDeliveryDetailsType? = nil, userConfirmed: Bool, userSub: String) { - self.codeDeliveryDetails = codeDeliveryDetails - self.userConfirmed = userConfirmed - self.userSub = userSub - } - - private enum CodingKeys: String, CodingKey { - case codeDeliveryDetails = "CodeDeliveryDetails" - case userConfirmed = "UserConfirmed" - case userSub = "UserSub" - } + public enum DefaultEmailOptionType: String, CustomStringConvertible, Codable { + case confirmWithLink = "CONFIRM_WITH_LINK" + case confirmWithCode = "CONFIRM_WITH_CODE" + public var description: String { return self.rawValue } } public struct UpdateGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Group", required: false, type: .structure) ] /// The group object for the group. @@ -3310,39 +5327,11 @@ extension CognitoIdp { } } - public struct CreateUserPoolDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Domain", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The domain string. - public let domain: String - /// The user pool ID. - public let userPoolId: String - - public init(domain: String, userPoolId: String) { - self.domain = domain - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case domain = "Domain" - case userPoolId = "UserPoolId" - } - } - - public enum DeliveryMediumType: String, CustomStringConvertible, Codable { - case sms = "SMS" - case email = "EMAIL" - public var description: String { return self.rawValue } - } - - public struct AdminResetUserPasswordResponse: AWSShape { - - } - public enum ChallengeNameType: String, CustomStringConvertible, Codable { case smsMfa = "SMS_MFA" + case softwareTokenMfa = "SOFTWARE_TOKEN_MFA" + case selectMfaType = "SELECT_MFA_TYPE" + case mfaSetup = "MFA_SETUP" case passwordVerifier = "PASSWORD_VERIFIER" case customChallenge = "CUSTOM_CHALLENGE" case deviceSrpAuth = "DEVICE_SRP_AUTH" @@ -3353,7 +5342,7 @@ extension CognitoIdp { } public struct AdminSetUserSettingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolId", required: true, type: .string), AWSShapeMember(label: "MFAOptions", required: true, type: .list), AWSShapeMember(label: "Username", required: true, type: .string) @@ -3378,37 +5367,8 @@ extension CognitoIdp { } } - public struct AdminDisableUserResponse: AWSShape { - - } - - public struct AdminDeleteUserAttributesResponse: AWSShape { - - } - - public struct DeleteUserPoolDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Domain", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The domain string. - public let domain: String - /// The user pool ID. - public let userPoolId: String - - public init(domain: String, userPoolId: String) { - self.domain = domain - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case domain = "Domain" - case userPoolId = "UserPoolId" - } - } - public struct StopUserImportJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobId", required: true, type: .string), AWSShapeMember(label: "UserPoolId", required: true, type: .string) ] @@ -3429,7 +5389,7 @@ extension CognitoIdp { } public struct GetCSVHeaderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolId", required: true, type: .string) ] /// The user pool ID for the user pool that the users are to be imported into. @@ -3445,33 +5405,43 @@ extension CognitoIdp { } public struct ResendConfirmationCodeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SecretHash", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientId", required: true, type: .string), + AWSShapeMember(label: "UserContextData", required: false, type: .structure), + AWSShapeMember(label: "SecretHash", required: false, type: .string), + AWSShapeMember(label: "AnalyticsMetadata", required: false, type: .structure), AWSShapeMember(label: "Username", required: true, type: .string) ] - /// A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message. - public let secretHash: String? /// The ID of the client associated with the user pool. public let clientId: String + /// Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security. + public let userContextData: UserContextDataType? + /// A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message. + public let secretHash: String? + /// The Amazon Pinpoint analytics metadata for collecting metrics for ResendConfirmationCode calls. + public let analyticsMetadata: AnalyticsMetadataType? /// The user name of the user to whom you wish to resend a confirmation code. public let username: String - public init(secretHash: String? = nil, clientId: String, username: String) { - self.secretHash = secretHash + public init(clientId: String, userContextData: UserContextDataType? = nil, secretHash: String? = nil, analyticsMetadata: AnalyticsMetadataType? = nil, username: String) { self.clientId = clientId + self.userContextData = userContextData + self.secretHash = secretHash + self.analyticsMetadata = analyticsMetadata self.username = username } private enum CodingKeys: String, CodingKey { - case secretHash = "SecretHash" case clientId = "ClientId" + case userContextData = "UserContextData" + case secretHash = "SecretHash" + case analyticsMetadata = "AnalyticsMetadata" case username = "Username" } } public struct DescribeUserPoolResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPool", required: false, type: .structure) ] /// The container of metadata returned by the server to describe the pool. @@ -3482,49 +5452,18 @@ extension CognitoIdp { } private enum CodingKeys: String, CodingKey { - case userPool = "UserPool" - } - } - - public struct AddCustomAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CustomAttributes", required: true, type: .list), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// An array of custom attributes, such as Mutable and Name. - public let customAttributes: [SchemaAttributeType] - /// The user pool ID for the user pool where you want to add custom attributes. - public let userPoolId: String - - public init(customAttributes: [SchemaAttributeType], userPoolId: String) { - self.customAttributes = customAttributes - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case customAttributes = "CustomAttributes" - case userPoolId = "UserPoolId" - } - } - - public struct UpdateUserAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CodeDeliveryDetailsList", required: false, type: .list) - ] - /// The code delivery details list from the server for the request to update user attributes. - public let codeDeliveryDetailsList: [CodeDeliveryDetailsType]? - - public init(codeDeliveryDetailsList: [CodeDeliveryDetailsType]? = nil) { - self.codeDeliveryDetailsList = codeDeliveryDetailsList - } - - private enum CodingKeys: String, CodingKey { - case codeDeliveryDetailsList = "CodeDeliveryDetailsList" + case userPool = "UserPool" } } + public enum ChallengeResponse: String, CustomStringConvertible, Codable { + case success = "Success" + case failure = "Failure" + public var description: String { return self.rawValue } + } + public struct UserImportJobType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CompletionDate", required: false, type: .timestamp), AWSShapeMember(label: "CompletionMessage", required: false, type: .string), AWSShapeMember(label: "FailedUsers", required: false, type: .long), @@ -3603,28 +5542,12 @@ extension CognitoIdp { } - public struct UpdateIdentityProviderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IdentityProvider", required: true, type: .structure) - ] - /// The identity provider object. - public let identityProvider: IdentityProviderType - - public init(identityProvider: IdentityProviderType) { - self.identityProvider = identityProvider - } - - private enum CodingKeys: String, CodingKey { - case identityProvider = "IdentityProvider" - } - } - public struct DeleteUserAttributesResponse: AWSShape { } public struct ConfirmDeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceKey", required: true, type: .string), AWSShapeMember(label: "DeviceSecretVerifierConfig", required: false, type: .structure), AWSShapeMember(label: "DeviceName", required: false, type: .string), @@ -3655,7 +5578,7 @@ extension CognitoIdp { } public struct AdminCreateUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ForceAliasCreation", required: false, type: .boolean), AWSShapeMember(label: "UserPoolId", required: true, type: .string), AWSShapeMember(label: "DesiredDeliveryMediums", required: false, type: .list), @@ -3679,7 +5602,7 @@ extension CognitoIdp { public let username: String /// The user's temporary password. This password must conform to the password policy that you specified when you created the user pool. The temporary password is valid only once. To complete the Admin Create User flow, the user must enter the temporary password in the sign-in page along with a new password to be used in all future sign-ins. This parameter is not required. If you do not specify a value, Amazon Cognito generates one for you. The temporary password can only be used until the user account expiration limit that you specified when you created the user pool. To reset the account after that time limit, you must call AdminCreateUser again, specifying "RESEND" for the MessageAction parameter. public let temporaryPassword: String? - /// An array of name-value pairs that contain user attributes and attribute values to be set for the user to be created. You can create a user without specifying any attributes other than Username. However, any attributes that you specify as required (in CreateUserPool or in the Attributes tab of the console) must be supplied either by you (in your call to AdminCreateUser) or by the user (when he or she signs up in response to your welcome message). For custom attributes, you must prepend the custom: prefix to the attribute name. To send a message inviting the user to sign up, you must specify the user's email address or phone number. This can be done in your call to AdminCreateUser or in the Users tab of the Amazon Cognito console for managing your user pools. In your call to AdminCreateUser, you can set the email_verified attribute to True, and you can set the phone_number_verified attribute to True. (You can also do this by calling AdminUpdateUserAttributes.) email: The email address of the user to whom the message that contains the code and username will be sent. Required if the email_verified attribute is set to True, or if "EMAIL" is specified in the DesiredDeliveryMediums parameter. phone_number: The phone number of the user to whom the message that contains the code and username will be sent. Required if the phone_number_verified attribute is set to True, or if "SMS" is specified in the DesiredDeliveryMediums parameter. + /// An array of name-value pairs that contain user attributes and attribute values to be set for the user to be created. You can create a user without specifying any attributes other than Username. However, any attributes that you specify as required (in or in the Attributes tab of the console) must be supplied either by you (in your call to AdminCreateUser) or by the user (when he or she signs up in response to your welcome message). For custom attributes, you must prepend the custom: prefix to the attribute name. To send a message inviting the user to sign up, you must specify the user's email address or phone number. This can be done in your call to AdminCreateUser or in the Users tab of the Amazon Cognito console for managing your user pools. In your call to AdminCreateUser, you can set the email_verified attribute to True, and you can set the phone_number_verified attribute to True. (You can also do this by calling .) email: The email address of the user to whom the message that contains the code and username will be sent. Required if the email_verified attribute is set to True, or if "EMAIL" is specified in the DesiredDeliveryMediums parameter. phone_number: The phone number of the user to whom the message that contains the code and username will be sent. Required if the phone_number_verified attribute is set to True, or if "SMS" is specified in the DesiredDeliveryMediums parameter. public let userAttributes: [AttributeType]? public init(forceAliasCreation: Bool? = nil, userPoolId: String, desiredDeliveryMediums: [DeliveryMediumType]? = nil, messageAction: MessageActionType? = nil, validationData: [AttributeType]? = nil, username: String, temporaryPassword: String? = nil, userAttributes: [AttributeType]? = nil) { @@ -3705,29 +5628,8 @@ extension CognitoIdp { } } - public struct AdminListGroupsForUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Groups", required: false, type: .list) - ] - /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. - public let nextToken: String? - /// The groups that the user belongs to. - public let groups: [GroupType]? - - public init(nextToken: String? = nil, groups: [GroupType]? = nil) { - self.nextToken = nextToken - self.groups = groups - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case groups = "Groups" - } - } - public struct AdminListDevicesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PaginationToken", required: false, type: .string), AWSShapeMember(label: "Devices", required: false, type: .list) ] @@ -3747,44 +5649,8 @@ extension CognitoIdp { } } - public struct PasswordPolicyType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MinimumLength", required: false, type: .integer), - AWSShapeMember(label: "RequireLowercase", required: false, type: .boolean), - AWSShapeMember(label: "RequireSymbols", required: false, type: .boolean), - AWSShapeMember(label: "RequireUppercase", required: false, type: .boolean), - AWSShapeMember(label: "RequireNumbers", required: false, type: .boolean) - ] - /// The minimum length of the password policy that you have set. Cannot be less than 6. - public let minimumLength: Int32? - /// In the password policy that you have set, refers to whether you have required users to use at least one lowercase letter in their password. - public let requireLowercase: Bool? - /// In the password policy that you have set, refers to whether you have required users to use at least one symbol in their password. - public let requireSymbols: Bool? - /// In the password policy that you have set, refers to whether you have required users to use at least one uppercase letter in their password. - public let requireUppercase: Bool? - /// In the password policy that you have set, refers to whether you have required users to use at least one number in their password. - public let requireNumbers: Bool? - - public init(minimumLength: Int32? = nil, requireLowercase: Bool? = nil, requireSymbols: Bool? = nil, requireUppercase: Bool? = nil, requireNumbers: Bool? = nil) { - self.minimumLength = minimumLength - self.requireLowercase = requireLowercase - self.requireSymbols = requireSymbols - self.requireUppercase = requireUppercase - self.requireNumbers = requireNumbers - } - - private enum CodingKeys: String, CodingKey { - case minimumLength = "MinimumLength" - case requireLowercase = "RequireLowercase" - case requireSymbols = "RequireSymbols" - case requireUppercase = "RequireUppercase" - case requireNumbers = "RequireNumbers" - } - } - public struct UserType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserStatus", required: false, type: .enum), AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "Username", required: false, type: .string), @@ -3829,21 +5695,88 @@ extension CognitoIdp { } } + public struct VerificationMessageTemplateType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SmsMessage", required: false, type: .string), + AWSShapeMember(label: "EmailMessage", required: false, type: .string), + AWSShapeMember(label: "DefaultEmailOption", required: false, type: .enum), + AWSShapeMember(label: "EmailSubject", required: false, type: .string), + AWSShapeMember(label: "EmailSubjectByLink", required: false, type: .string), + AWSShapeMember(label: "EmailMessageByLink", required: false, type: .string) + ] + /// The SMS message template. + public let smsMessage: String? + /// The email message template. + public let emailMessage: String? + /// The default email option. + public let defaultEmailOption: DefaultEmailOptionType? + /// The subject line for the email message template. + public let emailSubject: String? + /// The subject line for the email message template for sending a confirmation link to the user. + public let emailSubjectByLink: String? + /// The email message template for sending a confirmation link to the user. + public let emailMessageByLink: String? + + public init(smsMessage: String? = nil, emailMessage: String? = nil, defaultEmailOption: DefaultEmailOptionType? = nil, emailSubject: String? = nil, emailSubjectByLink: String? = nil, emailMessageByLink: String? = nil) { + self.smsMessage = smsMessage + self.emailMessage = emailMessage + self.defaultEmailOption = defaultEmailOption + self.emailSubject = emailSubject + self.emailSubjectByLink = emailSubjectByLink + self.emailMessageByLink = emailMessageByLink + } + + private enum CodingKeys: String, CodingKey { + case smsMessage = "SmsMessage" + case emailMessage = "EmailMessage" + case defaultEmailOption = "DefaultEmailOption" + case emailSubject = "EmailSubject" + case emailSubjectByLink = "EmailSubjectByLink" + case emailMessageByLink = "EmailMessageByLink" + } + } + + public struct AdminLinkProviderForUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string), + AWSShapeMember(label: "SourceUser", required: true, type: .structure), + AWSShapeMember(label: "DestinationUser", required: true, type: .structure) + ] + /// The user pool ID for the user pool. + public let userPoolId: String + /// An external identity provider account for a user who does not currently exist yet in the user pool. This user must be a federated user (for example, a SAML or Facebook user), not another native user. If the SourceUser is a federated social identity provider user (Facebook, Google, or Login with Amazon), you must set the ProviderAttributeName to Cognito_Subject. For social identity providers, the ProviderName will be Facebook, Google, or LoginWithAmazon, and Cognito will automatically parse the Facebook, Google, and Login with Amazon tokens for id, sub, and user_id, respectively. The ProviderAttributeValue for the user must be the same value as the id, sub, or user_id value found in the social identity provider token. For SAML, the ProviderAttributeName can be any value that matches a claim in the SAML assertion. If you wish to link SAML users based on the subject of the SAML assertion, you should map the subject to a claim through the SAML identity provider and submit that claim name as the ProviderAttributeName. If you set ProviderAttributeName to Cognito_Subject, Cognito will automatically parse the default unique identifier found in the subject from the SAML token. + public let sourceUser: ProviderUserIdentifierType + /// The existing user in the user pool to be linked to the external identity provider user account. Can be a native (Username + Password) Cognito User Pools user or a federated user (for example, a SAML or Facebook user). If the user doesn't exist, an exception is thrown. This is the user that is returned when the new user (with the linked identity provider attribute) signs in. For a native username + password user, the ProviderAttributeValue for the DestinationUser should be the username in the user pool. For a federated user, it should be the provider-specific user_id. The ProviderAttributeName of the DestinationUser is ignored. The ProviderName should be set to Cognito for users in Cognito user pools. + public let destinationUser: ProviderUserIdentifierType + + public init(userPoolId: String, sourceUser: ProviderUserIdentifierType, destinationUser: ProviderUserIdentifierType) { + self.userPoolId = userPoolId + self.sourceUser = sourceUser + self.destinationUser = destinationUser + } + + private enum CodingKeys: String, CodingKey { + case userPoolId = "UserPoolId" + case sourceUser = "SourceUser" + case destinationUser = "DestinationUser" + } + } + public struct ListUsersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributesToGet", required: false, type: .list), AWSShapeMember(label: "PaginationToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "Filter", required: false, type: .string), AWSShapeMember(label: "UserPoolId", required: true, type: .string) ] - /// An array of strings, where each string is the name of a user attribute to be returned for each user in the search results. If the array is empty, all attributes are returned. + /// An array of strings, where each string is the name of a user attribute to be returned for each user in the search results. If the array is null, all attributes are returned. public let attributesToGet: [String]? /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. public let paginationToken: String? /// Maximum number of users to be returned. public let limit: Int32? - /// A filter string of the form "AttributeName Filter-Type "AttributeValue"". Quotation marks within the filter string must be escaped using the backslash (\) character. For example, "family_name = \"Reddy\"". AttributeName: The name of the attribute to search for. You can only search for one attribute at a time. Filter-Type: For an exact match, use =, for example, "given_name = \"Jon\"". For a prefix ("starts with") match, use ^=, for example, "given_name ^= \"Jon\"". AttributeValue: The attribute value that must be matched for each user. If the filter string is empty, ListUsers returns all users in the user pool. You can only search for the following standard attributes: username (case-sensitive) email phone_number name given_name family_name preferred_username cognito:user_status (called Enabled in the Console) (case-sensitive) status (case-insensitive) Custom attributes are not searchable. For more information, see Searching for Users Using the ListUsers API and Examples of Using the ListUsers API in the Amazon Cognito Developer Guide. + /// A filter string of the form "AttributeName Filter-Type "AttributeValue"". Quotation marks within the filter string must be escaped using the backslash (\) character. For example, "family_name = \"Reddy\"". AttributeName: The name of the attribute to search for. You can only search for one attribute at a time. Filter-Type: For an exact match, use =, for example, "given_name = \"Jon\"". For a prefix ("starts with") match, use ^=, for example, "given_name ^= \"Jon\"". AttributeValue: The attribute value that must be matched for each user. If the filter string is empty, ListUsers returns all users in the user pool. You can only search for the following standard attributes: username (case-sensitive) email phone_number name given_name family_name preferred_username cognito:user_status (called Enabled in the Console) (case-sensitive) status (case-insensitive) sub Custom attributes are not searchable. For more information, see Searching for Users Using the ListUsers API and Examples of Using the ListUsers API in the Amazon Cognito Developer Guide. public let filter: String? /// The user pool ID for the user pool on which the search should be performed. public let userPoolId: String @@ -3866,7 +5799,7 @@ extension CognitoIdp { } public struct GetDeviceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Device", required: true, type: .structure) ] /// The device. @@ -3881,24 +5814,39 @@ extension CognitoIdp { } } - public struct AdminGetDeviceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Device", required: true, type: .structure) + public struct SetUserPoolMfaConfigRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserPoolId", required: true, type: .string), + AWSShapeMember(label: "SoftwareTokenMfaConfiguration", required: false, type: .structure), + AWSShapeMember(label: "SmsMfaConfiguration", required: false, type: .structure), + AWSShapeMember(label: "MfaConfiguration", required: false, type: .enum) ] - /// The device. - public let device: DeviceType + /// The user pool ID. + public let userPoolId: String + /// The software token MFA configuration. + public let softwareTokenMfaConfiguration: SoftwareTokenMfaConfigType? + /// The SMS text message MFA configuration. + public let smsMfaConfiguration: SmsMfaConfigType? + /// The MFA configuration. + public let mfaConfiguration: UserPoolMfaType? - public init(device: DeviceType) { - self.device = device + public init(userPoolId: String, softwareTokenMfaConfiguration: SoftwareTokenMfaConfigType? = nil, smsMfaConfiguration: SmsMfaConfigType? = nil, mfaConfiguration: UserPoolMfaType? = nil) { + self.userPoolId = userPoolId + self.softwareTokenMfaConfiguration = softwareTokenMfaConfiguration + self.smsMfaConfiguration = smsMfaConfiguration + self.mfaConfiguration = mfaConfiguration } private enum CodingKeys: String, CodingKey { - case device = "Device" + case userPoolId = "UserPoolId" + case softwareTokenMfaConfiguration = "SoftwareTokenMfaConfiguration" + case smsMfaConfiguration = "SmsMfaConfiguration" + case mfaConfiguration = "MfaConfiguration" } } public struct AdminUpdateDeviceStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceKey", required: true, type: .string), AWSShapeMember(label: "DeviceRememberedStatus", required: false, type: .enum), AWSShapeMember(label: "UserPoolId", required: true, type: .string), @@ -3929,7 +5877,7 @@ extension CognitoIdp { } public struct VerifyUserAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: true, type: .string), AWSShapeMember(label: "Code", required: true, type: .string), AWSShapeMember(label: "AccessToken", required: true, type: .string) @@ -3958,60 +5906,45 @@ extension CognitoIdp { } - public struct AdminForgetDeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeviceKey", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string), - AWSShapeMember(label: "Username", required: true, type: .string) + public struct DescribeRiskConfigurationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RiskConfiguration", required: true, type: .structure) ] - /// The device key. - public let deviceKey: String - /// The user pool ID. - public let userPoolId: String - /// The user name. - public let username: String + /// The risk configuration. + public let riskConfiguration: RiskConfigurationType - public init(deviceKey: String, userPoolId: String, username: String) { - self.deviceKey = deviceKey - self.userPoolId = userPoolId - self.username = username + public init(riskConfiguration: RiskConfigurationType) { + self.riskConfiguration = riskConfiguration } private enum CodingKeys: String, CodingKey { - case deviceKey = "DeviceKey" - case userPoolId = "UserPoolId" - case username = "Username" + case riskConfiguration = "RiskConfiguration" } } - public struct ListIdentityProvidersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolId", required: true, type: .string), + public struct AdminListUserAuthEventsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) + AWSShapeMember(label: "AuthEvents", required: false, type: .list) ] - /// The user pool ID. - public let userPoolId: String /// A pagination token. public let nextToken: String? - /// The maximum number of identity providers to return. - public let maxResults: Int32? + /// The response object. It includes the EventID, EventType, CreationDate, EventRisk, and EventResponse. + public let authEvents: [AuthEventType]? - public init(userPoolId: String, nextToken: String? = nil, maxResults: Int32? = nil) { - self.userPoolId = userPoolId + public init(nextToken: String? = nil, authEvents: [AuthEventType]? = nil) { self.nextToken = nextToken - self.maxResults = maxResults + self.authEvents = authEvents } private enum CodingKeys: String, CodingKey { - case userPoolId = "UserPoolId" case nextToken = "NextToken" - case maxResults = "MaxResults" + case authEvents = "AuthEvents" } } public struct AdminGetDeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceKey", required: true, type: .string), AWSShapeMember(label: "Username", required: true, type: .string), AWSShapeMember(label: "UserPoolId", required: true, type: .string) @@ -4036,39 +5969,8 @@ extension CognitoIdp { } } - public struct InitiateAuthRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientMetadata", required: false, type: .map), - AWSShapeMember(label: "ClientId", required: true, type: .string), - AWSShapeMember(label: "AuthParameters", required: false, type: .map), - AWSShapeMember(label: "AuthFlow", required: true, type: .enum) - ] - /// This is a random key-value pair map which can contain any key and will be passed to your PreAuthentication Lambda trigger as-is. It can be used to implement additional validations around authentication. - public let clientMetadata: [String: String]? - /// The app client ID. - public let clientId: String - /// The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow: For USER_SRP_AUTH: USERNAME (required), SRPA (required), SECRET_HASH (required if the app client is configured with a client secret), DEVICE_KEY For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: USERNAME (required), SECRET_HASH (required if the app client is configured with a client secret), REFRESH_TOKEN (required), DEVICE_KEY For CUSTOM_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), DEVICE_KEY - public let authParameters: [String: String]? - /// The authentication flow for this call to execute. The API action will depend on this value. For example: REFRESH_TOKEN_AUTH will take in a valid refresh token and return new tokens. USER_SRP_AUTH will take in USERNAME and SRPA and return the SRP variables to be used for next challenge execution. Valid values include: USER_SRP_AUTH: Authentication flow for the Secure Remote Password (SRP) protocol. REFRESH_TOKEN_AUTH/REFRESH_TOKEN: Authentication flow for refreshing the access token and ID token by supplying a valid refresh token. CUSTOM_AUTH: Custom authentication flow. ADMIN_NO_SRP_AUTH is not a valid value. - public let authFlow: AuthFlowType - - public init(clientMetadata: [String: String]? = nil, clientId: String, authParameters: [String: String]? = nil, authFlow: AuthFlowType) { - self.clientMetadata = clientMetadata - self.clientId = clientId - self.authParameters = authParameters - self.authFlow = authFlow - } - - private enum CodingKeys: String, CodingKey { - case clientMetadata = "ClientMetadata" - case clientId = "ClientId" - case authParameters = "AuthParameters" - case authFlow = "AuthFlow" - } - } - public struct ListUserPoolClientsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserPoolId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -4093,34 +5995,14 @@ extension CognitoIdp { } } - public struct AdminAddUserToGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Username", required: true, type: .string), - AWSShapeMember(label: "GroupName", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The username for the user. - public let username: String - /// The group name. - public let groupName: String - /// The user pool ID for the user pool. - public let userPoolId: String - - public init(username: String, groupName: String, userPoolId: String) { - self.username = username - self.groupName = groupName - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case username = "Username" - case groupName = "GroupName" - case userPoolId = "UserPoolId" - } + public enum ChallengeName: String, CustomStringConvertible, Codable { + case password = "Password" + case mfa = "Mfa" + public var description: String { return self.rawValue } } public struct CreateIdentityProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdpIdentifiers", required: false, type: .list), AWSShapeMember(label: "ProviderName", required: true, type: .string), AWSShapeMember(label: "ProviderType", required: true, type: .enum), @@ -4160,66 +6042,50 @@ extension CognitoIdp { } } - public struct EmailConfigurationType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReplyToEmailAddress", required: false, type: .string), - AWSShapeMember(label: "SourceArn", required: false, type: .string) + public struct AssociateSoftwareTokenResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Session", required: false, type: .string), + AWSShapeMember(label: "SecretCode", required: false, type: .string) ] - /// The REPLY-TO email address. - public let replyToEmailAddress: String? - /// The Amazon Resource Name (ARN) of the email source. - public let sourceArn: String? + /// The session which should be passed both ways in challenge-response calls to the service. This allows authentication of the user as part of the MFA setup process. + public let session: String? + /// A unique generated shared secret code that is used in the TOTP algorithm to generate a one time code. + public let secretCode: String? - public init(replyToEmailAddress: String? = nil, sourceArn: String? = nil) { - self.replyToEmailAddress = replyToEmailAddress - self.sourceArn = sourceArn + public init(session: String? = nil, secretCode: String? = nil) { + self.session = session + self.secretCode = secretCode } private enum CodingKeys: String, CodingKey { - case replyToEmailAddress = "ReplyToEmailAddress" - case sourceArn = "SourceArn" + case session = "Session" + case secretCode = "SecretCode" } } - public struct AdminUserGlobalSignOutRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserPoolId", required: true, type: .string), - AWSShapeMember(label: "Username", required: true, type: .string) + public struct DescribeResourceServerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Identifier", required: true, type: .string), + AWSShapeMember(label: "UserPoolId", required: true, type: .string) ] - /// The user pool ID. + /// The identifier for the resource server + public let identifier: String + /// The user pool ID for the user pool that hosts the resource server. public let userPoolId: String - /// The user name. - public let username: String - public init(userPoolId: String, username: String) { + public init(identifier: String, userPoolId: String) { + self.identifier = identifier self.userPoolId = userPoolId - self.username = username } private enum CodingKeys: String, CodingKey { + case identifier = "Identifier" case userPoolId = "UserPoolId" - case username = "Username" - } - } - - public struct AdminCreateUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "User", required: false, type: .structure) - ] - /// The user returned in the request to create a new user. - public let user: UserType? - - public init(user: UserType? = nil) { - self.user = user - } - - private enum CodingKeys: String, CodingKey { - case user = "User" } } public struct ListUserPoolClientsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "UserPoolClients", required: false, type: .list) ] @@ -4239,25 +6105,4 @@ extension CognitoIdp { } } - public struct DeleteGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupName", required: true, type: .string), - AWSShapeMember(label: "UserPoolId", required: true, type: .string) - ] - /// The name of the group. - public let groupName: String - /// The user pool ID for the user pool. - public let userPoolId: String - - public init(groupName: String, userPoolId: String) { - self.groupName = groupName - self.userPoolId = userPoolId - } - - private enum CodingKeys: String, CodingKey { - case groupName = "GroupName" - case userPoolId = "UserPoolId" - } - } - } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/cognito-sync/CognitoSync_Shapes.swift b/Sources/AWSSDKSwift/Services/cognito-sync/CognitoSync_Shapes.swift index aa443a23fb5..a7c85248419 100644 --- a/Sources/AWSSDKSwift/Services/cognito-sync/CognitoSync_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/cognito-sync/CognitoSync_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension CognitoSync { public struct ListDatasetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Datasets", required: false, type: .list), AWSShapeMember(label: "Count", required: false, type: .integer) @@ -32,7 +32,7 @@ extension CognitoSync { } public struct DescribeDatasetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string), AWSShapeMember(label: "DatasetName", location: .uri(locationName: "DatasetName"), required: true, type: .string), AWSShapeMember(label: "IdentityId", location: .uri(locationName: "IdentityId"), required: true, type: .string) @@ -58,7 +58,7 @@ extension CognitoSync { } public struct ListIdentityPoolUsageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) ] @@ -79,7 +79,7 @@ extension CognitoSync { } public struct UpdateRecordsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Records", required: false, type: .list) ] /// A list of records that have been updated. @@ -95,7 +95,7 @@ extension CognitoSync { } public struct BulkPublishRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string) ] /// A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region. @@ -111,7 +111,7 @@ extension CognitoSync { } public struct GetBulkPublishDetailsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BulkPublishStartTime", required: false, type: .timestamp), AWSShapeMember(label: "BulkPublishCompleteTime", required: false, type: .timestamp), AWSShapeMember(label: "BulkPublishStatus", required: false, type: .enum), @@ -147,7 +147,7 @@ extension CognitoSync { } public struct GetBulkPublishDetailsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string) ] /// A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region. @@ -163,7 +163,7 @@ extension CognitoSync { } public struct RegisterDeviceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceId", required: false, type: .string) ] /// The unique ID generated for this device by Cognito. @@ -179,7 +179,7 @@ extension CognitoSync { } public struct ListDatasetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityId", location: .uri(locationName: "IdentityId"), required: true, type: .string), AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string), AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), @@ -210,7 +210,7 @@ extension CognitoSync { } public struct GetIdentityPoolConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string) ] /// A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. This is the ID of the pool for which to return a configuration. @@ -226,7 +226,7 @@ extension CognitoSync { } public struct GetCognitoEventsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string) ] /// The Cognito Identity Pool ID for the request @@ -246,7 +246,7 @@ extension CognitoSync { } public struct GetCognitoEventsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Events", required: false, type: .map) ] /// The Cognito Events returned from the GetCognitoEvents request @@ -268,7 +268,7 @@ extension CognitoSync { } public struct RegisterDeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Platform", required: true, type: .enum), AWSShapeMember(label: "Token", required: true, type: .string), AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string), @@ -307,7 +307,7 @@ extension CognitoSync { } public struct SetIdentityPoolConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string), AWSShapeMember(label: "PushSync", required: false, type: .structure), AWSShapeMember(label: "CognitoStreams", required: false, type: .structure) @@ -333,7 +333,7 @@ extension CognitoSync { } public struct CognitoStreams: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleArn", required: false, type: .string), AWSShapeMember(label: "StreamingStatus", required: false, type: .enum), AWSShapeMember(label: "StreamName", required: false, type: .string) @@ -359,7 +359,7 @@ extension CognitoSync { } public struct ListRecordsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SyncSessionToken", location: .querystring(locationName: "syncSessionToken"), required: false, type: .string), AWSShapeMember(label: "DatasetName", location: .uri(locationName: "DatasetName"), required: true, type: .string), AWSShapeMember(label: "LastSyncCount", location: .querystring(locationName: "lastSyncCount"), required: false, type: .long), @@ -405,7 +405,7 @@ extension CognitoSync { } public struct DescribeDatasetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Dataset", required: false, type: .structure) ] /// Meta data for a collection of data for an identity. An identity can have multiple datasets. A dataset can be general or associated with a particular entity in an application (like a saved game). Datasets are automatically created if they don't exist. Data is synced by dataset, and a dataset can hold up to 1MB of key-value pairs. @@ -421,7 +421,7 @@ extension CognitoSync { } public struct UnsubscribeFromDatasetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceId", location: .uri(locationName: "DeviceId"), required: true, type: .string), AWSShapeMember(label: "IdentityId", location: .uri(locationName: "IdentityId"), required: true, type: .string), AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string), @@ -452,7 +452,7 @@ extension CognitoSync { } public struct PushSync: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleArn", required: false, type: .string), AWSShapeMember(label: "ApplicationArns", required: false, type: .list) ] @@ -473,7 +473,7 @@ extension CognitoSync { } public struct Record: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "DeviceLastModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "Key", required: false, type: .string), @@ -514,7 +514,7 @@ extension CognitoSync { } public struct IdentityUsage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DatasetCount", required: false, type: .integer), AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "IdentityId", required: false, type: .string), @@ -550,7 +550,7 @@ extension CognitoSync { } public struct DescribeIdentityPoolUsageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string) ] /// A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region. @@ -566,7 +566,7 @@ extension CognitoSync { } public struct Dataset: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NumRecords", required: false, type: .long), AWSShapeMember(label: "DatasetName", required: false, type: .string), AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), @@ -612,7 +612,7 @@ extension CognitoSync { } public struct SetIdentityPoolConfigurationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", required: false, type: .string), AWSShapeMember(label: "PushSync", required: false, type: .structure), AWSShapeMember(label: "CognitoStreams", required: false, type: .structure) @@ -644,7 +644,7 @@ extension CognitoSync { } public struct DescribeIdentityUsageResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityUsage", required: false, type: .structure) ] /// Usage information for the identity. @@ -660,7 +660,7 @@ extension CognitoSync { } public struct GetIdentityPoolConfigurationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", required: false, type: .string), AWSShapeMember(label: "PushSync", required: false, type: .structure), AWSShapeMember(label: "CognitoStreams", required: false, type: .structure) @@ -686,7 +686,7 @@ extension CognitoSync { } public struct ListIdentityPoolUsageResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "IdentityPoolUsages", required: false, type: .list), @@ -717,7 +717,7 @@ extension CognitoSync { } public struct UpdateRecordsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceId", required: false, type: .string), AWSShapeMember(label: "SyncSessionToken", required: true, type: .string), AWSShapeMember(label: "DatasetName", location: .uri(locationName: "DatasetName"), required: true, type: .string), @@ -763,7 +763,7 @@ extension CognitoSync { } public struct SubscribeToDatasetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceId", location: .uri(locationName: "DeviceId"), required: true, type: .string), AWSShapeMember(label: "IdentityId", location: .uri(locationName: "IdentityId"), required: true, type: .string), AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string), @@ -794,7 +794,7 @@ extension CognitoSync { } public struct IdentityPoolUsage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SyncSessionsCount", required: false, type: .long), AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "IdentityPoolId", required: false, type: .string), @@ -825,7 +825,7 @@ extension CognitoSync { } public struct DescribeIdentityPoolUsageResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolUsage", required: false, type: .structure) ] /// Information about the usage of the identity pool. @@ -841,7 +841,7 @@ extension CognitoSync { } public struct ListRecordsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Records", required: false, type: .list), AWSShapeMember(label: "MergedDatasetNames", required: false, type: .list), AWSShapeMember(label: "SyncSessionToken", required: false, type: .string), @@ -897,7 +897,7 @@ extension CognitoSync { } public struct DeleteDatasetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string), AWSShapeMember(label: "DatasetName", location: .uri(locationName: "DatasetName"), required: true, type: .string), AWSShapeMember(label: "IdentityId", location: .uri(locationName: "IdentityId"), required: true, type: .string) @@ -931,7 +931,7 @@ extension CognitoSync { } public struct DeleteDatasetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Dataset", required: false, type: .structure) ] /// A collection of data for an identity pool. An identity pool can have multiple datasets. A dataset is per identity and can be general or associated with a particular entity in an application (like a saved game). Datasets are automatically created if they don't exist. Data is synced by dataset, and a dataset can hold up to 1MB of key-value pairs. @@ -947,7 +947,7 @@ extension CognitoSync { } public struct RecordPatch: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Op", required: true, type: .enum), AWSShapeMember(label: "DeviceLastModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "Key", required: true, type: .string), @@ -983,7 +983,7 @@ extension CognitoSync { } public struct SetCognitoEventsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string), AWSShapeMember(label: "Events", required: true, type: .map) ] @@ -1004,7 +1004,7 @@ extension CognitoSync { } public struct DescribeIdentityUsageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", location: .uri(locationName: "IdentityPoolId"), required: true, type: .string), AWSShapeMember(label: "IdentityId", location: .uri(locationName: "IdentityId"), required: true, type: .string) ] @@ -1029,7 +1029,7 @@ extension CognitoSync { } public struct BulkPublishResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityPoolId", required: false, type: .string) ] /// A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region. diff --git a/Sources/AWSSDKSwift/Services/comprehend/Comprehend_API.swift b/Sources/AWSSDKSwift/Services/comprehend/Comprehend_API.swift new file mode 100644 index 00000000000..44658bf4acf --- /dev/null +++ b/Sources/AWSSDKSwift/Services/comprehend/Comprehend_API.swift @@ -0,0 +1,84 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +Amazon Comprehend is an AWS service for gaining insight into the content of documents. Use these actions to determine the topics contained in your documents, the topics they discuss, the predominant sentiment expressed in them, the predominant language used, and more. +*/ +public struct Comprehend { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "Comprehend_20171127", + service: "comprehend", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-11-27", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [ComprehendError.self] + ) + } + + /// Determines the dominant language of the input text. For a list of languages that Amazon Comprehend can detect, see Amazon Comprehend Supported Languages. + public func detectDominantLanguage(_ input: DetectDominantLanguageRequest) throws -> DetectDominantLanguageResponse { + return try client.send(operation: "DetectDominantLanguage", path: "/", httpMethod: "POST", input: input) + } + + /// Inspects text and returns an inference of the prevailing sentiment (POSITIVE, NEUTRAL, MIXED, or NEGATIVE). + public func detectSentiment(_ input: DetectSentimentRequest) throws -> DetectSentimentResponse { + return try client.send(operation: "DetectSentiment", path: "/", httpMethod: "POST", input: input) + } + + /// Determines the dominant language of the input text for a batch of documents. For a list of languages that Amazon Comprehend can detect, see Amazon Comprehend Supported Languages. + public func batchDetectDominantLanguage(_ input: BatchDetectDominantLanguageRequest) throws -> BatchDetectDominantLanguageResponse { + return try client.send(operation: "BatchDetectDominantLanguage", path: "/", httpMethod: "POST", input: input) + } + + /// Gets a list of the topic detection jobs that you have submitted. + public func listTopicsDetectionJobs(_ input: ListTopicsDetectionJobsRequest) throws -> ListTopicsDetectionJobsResponse { + return try client.send(operation: "ListTopicsDetectionJobs", path: "/", httpMethod: "POST", input: input) + } + + /// Starts an asynchronous topic detection job. Use the DescribeTopicDetectionJob operation to track the status of a job. + public func startTopicsDetectionJob(_ input: StartTopicsDetectionJobRequest) throws -> StartTopicsDetectionJobResponse { + return try client.send(operation: "StartTopicsDetectionJob", path: "/", httpMethod: "POST", input: input) + } + + /// Inspects a batch of documents and returns an inference of the prevailing sentiment, POSITIVE, NEUTRAL, MIXED, or NEGATIVE, in each one. + public func batchDetectSentiment(_ input: BatchDetectSentimentRequest) throws -> BatchDetectSentimentResponse { + return try client.send(operation: "BatchDetectSentiment", path: "/", httpMethod: "POST", input: input) + } + + /// Inspects the text of a batch of documents and returns information about them. For more information about entities, see how-entities + public func batchDetectEntities(_ input: BatchDetectEntitiesRequest) throws -> BatchDetectEntitiesResponse { + return try client.send(operation: "BatchDetectEntities", path: "/", httpMethod: "POST", input: input) + } + + /// Inspects text for entities, and returns information about them. For more information, about entities, see how-entities. + public func detectEntities(_ input: DetectEntitiesRequest) throws -> DetectEntitiesResponse { + return try client.send(operation: "DetectEntities", path: "/", httpMethod: "POST", input: input) + } + + /// Gets the properties associated with a topic detection job. Use this operation to get the status of a detection job. + public func describeTopicsDetectionJob(_ input: DescribeTopicsDetectionJobRequest) throws -> DescribeTopicsDetectionJobResponse { + return try client.send(operation: "DescribeTopicsDetectionJob", path: "/", httpMethod: "POST", input: input) + } + + /// Detects the key noun phrases found in a batch of documents. + public func batchDetectKeyPhrases(_ input: BatchDetectKeyPhrasesRequest) throws -> BatchDetectKeyPhrasesResponse { + return try client.send(operation: "BatchDetectKeyPhrases", path: "/", httpMethod: "POST", input: input) + } + + /// Detects the key noun phrases found in the text. + public func detectKeyPhrases(_ input: DetectKeyPhrasesRequest) throws -> DetectKeyPhrasesResponse { + return try client.send(operation: "DetectKeyPhrases", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/comprehend/Comprehend_Error.swift b/Sources/AWSSDKSwift/Services/comprehend/Comprehend_Error.swift new file mode 100644 index 00000000000..d03508316ea --- /dev/null +++ b/Sources/AWSSDKSwift/Services/comprehend/Comprehend_Error.swift @@ -0,0 +1,44 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Comprehend +public enum ComprehendError: AWSErrorType { + case invalidRequestException(message: String?) + case textSizeLimitExceededException(message: String?) + case internalServerException(message: String?) + case unsupportedLanguageException(message: String?) + case batchSizeLimitExceededException(message: String?) + case tooManyRequestsException(message: String?) + case invalidFilterException(message: String?) + case jobNotFoundException(message: String?) +} + +extension ComprehendError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "InvalidRequestException": + self = .invalidRequestException(message: message) + case "TextSizeLimitExceededException": + self = .textSizeLimitExceededException(message: message) + case "InternalServerException": + self = .internalServerException(message: message) + case "UnsupportedLanguageException": + self = .unsupportedLanguageException(message: message) + case "BatchSizeLimitExceededException": + self = .batchSizeLimitExceededException(message: message) + case "TooManyRequestsException": + self = .tooManyRequestsException(message: message) + case "InvalidFilterException": + self = .invalidFilterException(message: message) + case "JobNotFoundException": + self = .jobNotFoundException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/comprehend/Comprehend_Shapes.swift b/Sources/AWSSDKSwift/Services/comprehend/Comprehend_Shapes.swift new file mode 100644 index 00000000000..28da932f63e --- /dev/null +++ b/Sources/AWSSDKSwift/Services/comprehend/Comprehend_Shapes.swift @@ -0,0 +1,858 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Comprehend { + + public struct BatchDetectDominantLanguageResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorList", required: true, type: .list), + AWSShapeMember(label: "ResultList", required: true, type: .list) + ] + /// A list containing one object for each document that contained an error. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If there are no errors in the batch, the ErrorList is empty. + public let errorList: [BatchItemError] + /// A list of objects containing the results of the operation. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If all of the documents contain an error, the ResultList is empty. + public let resultList: [BatchDetectDominantLanguageItemResult] + + public init(errorList: [BatchItemError], resultList: [BatchDetectDominantLanguageItemResult]) { + self.errorList = errorList + self.resultList = resultList + } + + private enum CodingKeys: String, CodingKey { + case errorList = "ErrorList" + case resultList = "ResultList" + } + } + + public enum JobStatus: String, CustomStringConvertible, Codable { + case submitted = "SUBMITTED" + case inProgress = "IN_PROGRESS" + case completed = "COMPLETED" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + + public struct BatchDetectSentimentResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorList", required: true, type: .list), + AWSShapeMember(label: "ResultList", required: true, type: .list) + ] + /// A list containing one object for each document that contained an error. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If there are no errors in the batch, the ErrorList is empty. + public let errorList: [BatchItemError] + /// A list of objects containing the results of the operation. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If all of the documents contain an error, the ResultList is empty. + public let resultList: [BatchDetectSentimentItemResult] + + public init(errorList: [BatchItemError], resultList: [BatchDetectSentimentItemResult]) { + self.errorList = errorList + self.resultList = resultList + } + + private enum CodingKeys: String, CodingKey { + case errorList = "ErrorList" + case resultList = "ResultList" + } + } + + public struct StartTopicsDetectionJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DataAccessRoleArn", required: true, type: .string), + AWSShapeMember(label: "OutputDataConfig", required: true, type: .structure), + AWSShapeMember(label: "JobName", required: false, type: .string), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "NumberOfTopics", required: false, type: .integer), + AWSShapeMember(label: "InputDataConfig", required: true, type: .structure) + ] + /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. + public let dataAccessRoleArn: String + /// Specifies where to send the output files. + public let outputDataConfig: OutputDataConfig + /// The identifier of the job. + public let jobName: String? + /// A unique identifier for the request. If you do not set the client request token, Amazon Comprehend generates one. + public let clientRequestToken: String? + /// The number of topics to detect. + public let numberOfTopics: Int32? + /// Specifies the format and location of the input data for the job. + public let inputDataConfig: InputDataConfig + + public init(dataAccessRoleArn: String, outputDataConfig: OutputDataConfig, jobName: String? = nil, clientRequestToken: String? = nil, numberOfTopics: Int32? = nil, inputDataConfig: InputDataConfig) { + self.dataAccessRoleArn = dataAccessRoleArn + self.outputDataConfig = outputDataConfig + self.jobName = jobName + self.clientRequestToken = clientRequestToken + self.numberOfTopics = numberOfTopics + self.inputDataConfig = inputDataConfig + } + + private enum CodingKeys: String, CodingKey { + case dataAccessRoleArn = "DataAccessRoleArn" + case outputDataConfig = "OutputDataConfig" + case jobName = "JobName" + case clientRequestToken = "ClientRequestToken" + case numberOfTopics = "NumberOfTopics" + case inputDataConfig = "InputDataConfig" + } + } + + public struct DetectEntitiesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", required: true, type: .enum), + AWSShapeMember(label: "Text", required: true, type: .string) + ] + /// The RFC 5646 language code of the input text. If the request does not specify the language code, the service detects the dominant language. If you specify a language code that the service does not support, it returns UnsupportedLanguageException exception. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site. + public let languageCode: LanguageCode + /// A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters. + public let text: String + + public init(languageCode: LanguageCode, text: String) { + self.languageCode = languageCode + self.text = text + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "LanguageCode" + case text = "Text" + } + } + + public struct DetectSentimentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", required: true, type: .enum), + AWSShapeMember(label: "Text", required: true, type: .string) + ] + /// The RFC 5646 language code for the input text. If you don't specify a language code, Amazon Comprehend detects the dominant language. If you specify the code for a language that Amazon Comprehend does not support, it returns and UnsupportedLanguageException. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site. + public let languageCode: LanguageCode + /// A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters. + public let text: String + + public init(languageCode: LanguageCode, text: String) { + self.languageCode = languageCode + self.text = text + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "LanguageCode" + case text = "Text" + } + } + + public struct DetectKeyPhrasesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KeyPhrases", required: false, type: .list) + ] + /// A collection of key phrases that Amazon Comprehend identified in the input text. For each key phrase, the response provides the text of the key phrase, where the key phrase begins and ends, and the level of confidence that Amazon Comprehend has in the accuracy of the detection. + public let keyPhrases: [KeyPhrase]? + + public init(keyPhrases: [KeyPhrase]? = nil) { + self.keyPhrases = keyPhrases + } + + private enum CodingKeys: String, CodingKey { + case keyPhrases = "KeyPhrases" + } + } + + public enum LanguageCode: String, CustomStringConvertible, Codable { + case en = "en" + case es = "es" + public var description: String { return self.rawValue } + } + + public struct DescribeTopicsDetectionJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobId", required: true, type: .string) + ] + /// The identifier assigned by the user to the detection job. + public let jobId: String + + public init(jobId: String) { + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case jobId = "JobId" + } + } + + public struct DetectSentimentResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Sentiment", required: false, type: .enum), + AWSShapeMember(label: "SentimentScore", required: false, type: .structure) + ] + /// The inferred sentiment that Amazon Comprehend has the highest level of confidence in. + public let sentiment: SentimentType? + /// An object that lists the sentiments, and their corresponding confidence levels. + public let sentimentScore: SentimentScore? + + public init(sentiment: SentimentType? = nil, sentimentScore: SentimentScore? = nil) { + self.sentiment = sentiment + self.sentimentScore = sentimentScore + } + + private enum CodingKeys: String, CodingKey { + case sentiment = "Sentiment" + case sentimentScore = "SentimentScore" + } + } + + public struct StartTopicsDetectionJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobId", required: false, type: .string), + AWSShapeMember(label: "JobStatus", required: false, type: .enum) + ] + /// The identifier generated for the job. To get the status of the job, use this identifier with the DescribeTopicDetectionJob operation. + public let jobId: String? + /// The status of the job: SUBMITTED - The job has been received and is queued for processing. IN_PROGRESS - Amazon Comprehend is processing the job. COMPLETED - The job was successfully completed and the output is available. FAILED - The job did not complete. To get details, use the DescribeTopicDetectionJob operation. + public let jobStatus: JobStatus? + + public init(jobId: String? = nil, jobStatus: JobStatus? = nil) { + self.jobId = jobId + self.jobStatus = jobStatus + } + + private enum CodingKeys: String, CodingKey { + case jobId = "JobId" + case jobStatus = "JobStatus" + } + } + + public struct BatchDetectEntitiesItemResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Index", required: false, type: .integer), + AWSShapeMember(label: "Entities", required: false, type: .list) + ] + /// The zero-based index of the document in the input list. + public let index: Int32? + /// One or more Entity objects, one for each entity detected in the document. + public let entities: [Entity]? + + public init(index: Int32? = nil, entities: [Entity]? = nil) { + self.index = index + self.entities = entities + } + + private enum CodingKeys: String, CodingKey { + case index = "Index" + case entities = "Entities" + } + } + + public struct DescribeTopicsDetectionJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TopicsDetectionJobProperties", required: false, type: .structure) + ] + /// The list of properties for the requested job. + public let topicsDetectionJobProperties: TopicsDetectionJobProperties? + + public init(topicsDetectionJobProperties: TopicsDetectionJobProperties? = nil) { + self.topicsDetectionJobProperties = topicsDetectionJobProperties + } + + private enum CodingKeys: String, CodingKey { + case topicsDetectionJobProperties = "TopicsDetectionJobProperties" + } + } + + public enum InputFormat: String, CustomStringConvertible, Codable { + case oneDocPerFile = "ONE_DOC_PER_FILE" + case oneDocPerLine = "ONE_DOC_PER_LINE" + public var description: String { return self.rawValue } + } + + public struct Entity: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Score", required: false, type: .float), + AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "EndOffset", required: false, type: .integer), + AWSShapeMember(label: "Text", required: false, type: .string), + AWSShapeMember(label: "BeginOffset", required: false, type: .integer) + ] + /// The level of confidence that Amazon Comprehend has in the accuracy of the detection. + public let score: Float? + /// The entity's type. + public let `type`: EntityType? + /// A character offset in the input text that shows where the entity ends. The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point. + public let endOffset: Int32? + /// The text of the entity. + public let text: String? + /// A character offset in the input text that shows where the entity begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point. + public let beginOffset: Int32? + + public init(score: Float? = nil, type: EntityType? = nil, endOffset: Int32? = nil, text: String? = nil, beginOffset: Int32? = nil) { + self.score = score + self.`type` = `type` + self.endOffset = endOffset + self.text = text + self.beginOffset = beginOffset + } + + private enum CodingKeys: String, CodingKey { + case score = "Score" + case `type` = "Type" + case endOffset = "EndOffset" + case text = "Text" + case beginOffset = "BeginOffset" + } + } + + public struct ListTopicsDetectionJobsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxResults", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filter", required: false, type: .structure) + ] + /// The maximum number of results to return in each page. + public let maxResults: Int32? + /// Identifies the next page of results to return. + public let nextToken: String? + /// Filters the jobs that are returned. Jobs can be filtered on their name, status, or the date and time that they were submitted. You can set only one filter at a time. + public let filter: TopicsDetectionJobFilter? + + public init(maxResults: Int32? = nil, nextToken: String? = nil, filter: TopicsDetectionJobFilter? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + self.filter = filter + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "MaxResults" + case nextToken = "NextToken" + case filter = "Filter" + } + } + + public struct TopicsDetectionJobProperties: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OutputDataConfig", required: false, type: .structure), + AWSShapeMember(label: "Message", required: false, type: .string), + AWSShapeMember(label: "InputDataConfig", required: false, type: .structure), + AWSShapeMember(label: "EndTime", required: false, type: .timestamp), + AWSShapeMember(label: "JobName", required: false, type: .string), + AWSShapeMember(label: "JobStatus", required: false, type: .enum), + AWSShapeMember(label: "NumberOfTopics", required: false, type: .integer), + AWSShapeMember(label: "JobId", required: false, type: .string), + AWSShapeMember(label: "SubmitTime", required: false, type: .timestamp) + ] + /// The output data configuration supplied when you created the topic detection job. + public let outputDataConfig: OutputDataConfig? + /// A description for the status of a job. + public let message: String? + /// The input data configuration supplied when you created the topic detection job. + public let inputDataConfig: InputDataConfig? + /// The time that the topic detection job was completed. + public let endTime: TimeStamp? + /// The name of the topic detection job. + public let jobName: String? + /// The current status of the topic detection job. If the status is Failed, the reason for the failure is shown in the Message field. + public let jobStatus: JobStatus? + /// The number of topics to detect supplied when you created the topic detection job. The default is 10. + public let numberOfTopics: Int32? + /// The identifier assigned to the topic detection job. + public let jobId: String? + /// The time that the topic detection job was submitted for processing. + public let submitTime: TimeStamp? + + public init(outputDataConfig: OutputDataConfig? = nil, message: String? = nil, inputDataConfig: InputDataConfig? = nil, endTime: TimeStamp? = nil, jobName: String? = nil, jobStatus: JobStatus? = nil, numberOfTopics: Int32? = nil, jobId: String? = nil, submitTime: TimeStamp? = nil) { + self.outputDataConfig = outputDataConfig + self.message = message + self.inputDataConfig = inputDataConfig + self.endTime = endTime + self.jobName = jobName + self.jobStatus = jobStatus + self.numberOfTopics = numberOfTopics + self.jobId = jobId + self.submitTime = submitTime + } + + private enum CodingKeys: String, CodingKey { + case outputDataConfig = "OutputDataConfig" + case message = "Message" + case inputDataConfig = "InputDataConfig" + case endTime = "EndTime" + case jobName = "JobName" + case jobStatus = "JobStatus" + case numberOfTopics = "NumberOfTopics" + case jobId = "JobId" + case submitTime = "SubmitTime" + } + } + + public struct SentimentScore: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Negative", required: false, type: .float), + AWSShapeMember(label: "Neutral", required: false, type: .float), + AWSShapeMember(label: "Mixed", required: false, type: .float), + AWSShapeMember(label: "Positive", required: false, type: .float) + ] + /// The level of confidence that Amazon Comprehend has in the accuracy of its detection of the NEGATIVE sentiment. + public let negative: Float? + /// The level of confidence that Amazon Comprehend has in the accuracy of its detection of the NEUTRAL sentiment. + public let neutral: Float? + /// The level of confidence that Amazon Comprehend has in the accuracy of its detection of the MIXED sentiment. + public let mixed: Float? + /// The level of confidence that Amazon Comprehend has in the accuracy of its detection of the POSITIVE sentiment. + public let positive: Float? + + public init(negative: Float? = nil, neutral: Float? = nil, mixed: Float? = nil, positive: Float? = nil) { + self.negative = negative + self.neutral = neutral + self.mixed = mixed + self.positive = positive + } + + private enum CodingKeys: String, CodingKey { + case negative = "Negative" + case neutral = "Neutral" + case mixed = "Mixed" + case positive = "Positive" + } + } + + public struct ListTopicsDetectionJobsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TopicsDetectionJobPropertiesList", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list containing the properties of each job that is returned. + public let topicsDetectionJobPropertiesList: [TopicsDetectionJobProperties]? + /// Identifies the next page of results to return. + public let nextToken: String? + + public init(topicsDetectionJobPropertiesList: [TopicsDetectionJobProperties]? = nil, nextToken: String? = nil) { + self.topicsDetectionJobPropertiesList = topicsDetectionJobPropertiesList + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case topicsDetectionJobPropertiesList = "TopicsDetectionJobPropertiesList" + case nextToken = "NextToken" + } + } + + public struct KeyPhrase: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Score", required: false, type: .float), + AWSShapeMember(label: "EndOffset", required: false, type: .integer), + AWSShapeMember(label: "BeginOffset", required: false, type: .integer), + AWSShapeMember(label: "Text", required: false, type: .string) + ] + /// The level of confidence that Amazon Comprehend has in the accuracy of the detection. + public let score: Float? + /// A character offset in the input text where the key phrase ends. The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point. + public let endOffset: Int32? + /// A character offset in the input text that shows where the key phrase begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point. + public let beginOffset: Int32? + /// The text of a key noun phrase. + public let text: String? + + public init(score: Float? = nil, endOffset: Int32? = nil, beginOffset: Int32? = nil, text: String? = nil) { + self.score = score + self.endOffset = endOffset + self.beginOffset = beginOffset + self.text = text + } + + private enum CodingKeys: String, CodingKey { + case score = "Score" + case endOffset = "EndOffset" + case beginOffset = "BeginOffset" + case text = "Text" + } + } + + public struct BatchDetectDominantLanguageRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TextList", required: true, type: .list) + ] + /// A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document should contain at least 20 characters and must contain fewer than 5,000 bytes of UTF-8 encoded characters. + public let textList: [String] + + public init(textList: [String]) { + self.textList = textList + } + + private enum CodingKeys: String, CodingKey { + case textList = "TextList" + } + } + + public struct BatchItemError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorMessage", required: false, type: .string), + AWSShapeMember(label: "Index", required: false, type: .integer), + AWSShapeMember(label: "ErrorCode", required: false, type: .string) + ] + /// A text description of the error. + public let errorMessage: String? + /// The zero-based index of the document in the input list. + public let index: Int32? + /// The numeric error code of the error. + public let errorCode: String? + + public init(errorMessage: String? = nil, index: Int32? = nil, errorCode: String? = nil) { + self.errorMessage = errorMessage + self.index = index + self.errorCode = errorCode + } + + private enum CodingKeys: String, CodingKey { + case errorMessage = "ErrorMessage" + case index = "Index" + case errorCode = "ErrorCode" + } + } + + public struct OutputDataConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3Uri", required: true, type: .string) + ] + /// The Amazon S3 URI where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The service creates an output file called output.tar.gz. It is a compressed archive that contains two files, topic-terms.csv that lists the terms associated with each topic, and doc-topics.csv that lists the documents associated with each topic. For more information, see topic-modeling. + public let s3Uri: String + + public init(s3Uri: String) { + self.s3Uri = s3Uri + } + + private enum CodingKeys: String, CodingKey { + case s3Uri = "S3Uri" + } + } + + public struct TopicsDetectionJobFilter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubmitTimeBefore", required: false, type: .timestamp), + AWSShapeMember(label: "JobName", required: false, type: .string), + AWSShapeMember(label: "JobStatus", required: false, type: .enum), + AWSShapeMember(label: "SubmitTimeAfter", required: false, type: .timestamp) + ] + /// Filters the list of jobs based on the time that the job was submitted for processing. Only returns jobs submitted before the specified time. Jobs are returned in descending order, newest to oldest. + public let submitTimeBefore: TimeStamp? + public let jobName: String? + /// Filters the list of topic detection jobs based on job status. Returns only jobs with the specified status. + public let jobStatus: JobStatus? + /// Filters the list of jobs based on the time that the job was submitted for processing. Only returns jobs submitted after the specified time. Jobs are returned in ascending order, oldest to newest. + public let submitTimeAfter: TimeStamp? + + public init(submitTimeBefore: TimeStamp? = nil, jobName: String? = nil, jobStatus: JobStatus? = nil, submitTimeAfter: TimeStamp? = nil) { + self.submitTimeBefore = submitTimeBefore + self.jobName = jobName + self.jobStatus = jobStatus + self.submitTimeAfter = submitTimeAfter + } + + private enum CodingKeys: String, CodingKey { + case submitTimeBefore = "SubmitTimeBefore" + case jobName = "JobName" + case jobStatus = "JobStatus" + case submitTimeAfter = "SubmitTimeAfter" + } + } + + public struct BatchDetectKeyPhrasesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", required: true, type: .string), + AWSShapeMember(label: "TextList", required: true, type: .list) + ] + /// The language of the input documents. All documents must be in the same language. + public let languageCode: String + /// A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters. + public let textList: [String] + + public init(languageCode: String, textList: [String]) { + self.languageCode = languageCode + self.textList = textList + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "LanguageCode" + case textList = "TextList" + } + } + + public struct BatchDetectSentimentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", required: true, type: .string), + AWSShapeMember(label: "TextList", required: true, type: .list) + ] + /// The language of the input documents. All documents must be in the same language. + public let languageCode: String + /// A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters. + public let textList: [String] + + public init(languageCode: String, textList: [String]) { + self.languageCode = languageCode + self.textList = textList + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "LanguageCode" + case textList = "TextList" + } + } + + public struct DetectKeyPhrasesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", required: true, type: .enum), + AWSShapeMember(label: "Text", required: true, type: .string) + ] + /// The RFC 5646 language code for the input text. If you don't specify a language code, Amazon Comprehend detects the dominant language. If you specify the code for a language that Amazon Comprehend does not support, it returns and UnsupportedLanguageException. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site. + public let languageCode: LanguageCode + /// A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters. + public let text: String + + public init(languageCode: LanguageCode, text: String) { + self.languageCode = languageCode + self.text = text + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "LanguageCode" + case text = "Text" + } + } + + public struct DominantLanguage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", required: false, type: .string), + AWSShapeMember(label: "Score", required: false, type: .float) + ] + /// The RFC 5646 language code for the dominant language. + public let languageCode: String? + /// The level of confidence that Amazon Comprehend has in the accuracy of the detection. + public let score: Float? + + public init(languageCode: String? = nil, score: Float? = nil) { + self.languageCode = languageCode + self.score = score + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "LanguageCode" + case score = "Score" + } + } + + public enum EntityType: String, CustomStringConvertible, Codable { + case person = "PERSON" + case location = "LOCATION" + case organization = "ORGANIZATION" + case commercialItem = "COMMERCIAL_ITEM" + case event = "EVENT" + case date = "DATE" + case quantity = "QUANTITY" + case title = "TITLE" + case other = "OTHER" + public var description: String { return self.rawValue } + } + + public struct DetectDominantLanguageResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Languages", required: false, type: .list) + ] + /// The languages that Amazon Comprehend detected in the input text. For each language, the response returns the RFC 5646 language code and the level of confidence that Amazon Comprehend has in the accuracy of its inference. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site. + public let languages: [DominantLanguage]? + + public init(languages: [DominantLanguage]? = nil) { + self.languages = languages + } + + private enum CodingKeys: String, CodingKey { + case languages = "Languages" + } + } + + public struct BatchDetectEntitiesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorList", required: true, type: .list), + AWSShapeMember(label: "ResultList", required: true, type: .list) + ] + /// A list containing one object for each document that contained an error. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If there are no errors in the batch, the ErrorList is empty. + public let errorList: [BatchItemError] + /// A list of objects containing the results of the operation. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If all of the documents contain an error, the ResultList is empty. + public let resultList: [BatchDetectEntitiesItemResult] + + public init(errorList: [BatchItemError], resultList: [BatchDetectEntitiesItemResult]) { + self.errorList = errorList + self.resultList = resultList + } + + private enum CodingKeys: String, CodingKey { + case errorList = "ErrorList" + case resultList = "ResultList" + } + } + + public struct InputDataConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3Uri", required: true, type: .string), + AWSShapeMember(label: "InputFormat", required: false, type: .enum) + ] + /// The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files. For example, if you use the URI S3://bucketName/prefix, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input. + public let s3Uri: String + /// Specifies how the text in an input file should be processed: ONE_DOC_PER_FILE - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. ONE_DOC_PER_LINE - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. + public let inputFormat: InputFormat? + + public init(s3Uri: String, inputFormat: InputFormat? = nil) { + self.s3Uri = s3Uri + self.inputFormat = inputFormat + } + + private enum CodingKeys: String, CodingKey { + case s3Uri = "S3Uri" + case inputFormat = "InputFormat" + } + } + + public struct DetectDominantLanguageRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Text", required: true, type: .string) + ] + /// A UTF-8 text string. Each string should contain at least 20 characters and must contain fewer that 5,000 bytes of UTF-8 encoded characters. + public let text: String + + public init(text: String) { + self.text = text + } + + private enum CodingKeys: String, CodingKey { + case text = "Text" + } + } + + public struct DetectEntitiesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Entities", required: false, type: .list) + ] + /// A collection of entities identified in the input text. For each entity, the response provides the entity text, entity type, where the entity text begins and ends, and the level of confidence that Amazon Comprehend has in the detection. For a list of entity types, see how-entities. + public let entities: [Entity]? + + public init(entities: [Entity]? = nil) { + self.entities = entities + } + + private enum CodingKeys: String, CodingKey { + case entities = "Entities" + } + } + + public struct BatchDetectKeyPhrasesItemResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Index", required: false, type: .integer), + AWSShapeMember(label: "KeyPhrases", required: false, type: .list) + ] + /// The zero-based index of the document in the input list. + public let index: Int32? + /// One or more KeyPhrase objects, one for each key phrase detected in the document. + public let keyPhrases: [KeyPhrase]? + + public init(index: Int32? = nil, keyPhrases: [KeyPhrase]? = nil) { + self.index = index + self.keyPhrases = keyPhrases + } + + private enum CodingKeys: String, CodingKey { + case index = "Index" + case keyPhrases = "KeyPhrases" + } + } + + public struct BatchDetectEntitiesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", required: true, type: .string), + AWSShapeMember(label: "TextList", required: true, type: .list) + ] + /// The language of the input documents. All documents must be in the same language. + public let languageCode: String + /// A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer than 5,000 bytes of UTF-8 encoded characters. + public let textList: [String] + + public init(languageCode: String, textList: [String]) { + self.languageCode = languageCode + self.textList = textList + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "LanguageCode" + case textList = "TextList" + } + } + + public struct BatchDetectKeyPhrasesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorList", required: true, type: .list), + AWSShapeMember(label: "ResultList", required: true, type: .list) + ] + /// A list containing one object for each document that contained an error. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If there are no errors in the batch, the ErrorList is empty. + public let errorList: [BatchItemError] + /// A list of objects containing the results of the operation. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If all of the documents contain an error, the ResultList is empty. + public let resultList: [BatchDetectKeyPhrasesItemResult] + + public init(errorList: [BatchItemError], resultList: [BatchDetectKeyPhrasesItemResult]) { + self.errorList = errorList + self.resultList = resultList + } + + private enum CodingKeys: String, CodingKey { + case errorList = "ErrorList" + case resultList = "ResultList" + } + } + + public struct BatchDetectDominantLanguageItemResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Languages", required: false, type: .list), + AWSShapeMember(label: "Index", required: false, type: .integer) + ] + /// One or more DominantLanguage objects describing the dominant languages in the document. + public let languages: [DominantLanguage]? + /// The zero-based index of the document in the input list. + public let index: Int32? + + public init(languages: [DominantLanguage]? = nil, index: Int32? = nil) { + self.languages = languages + self.index = index + } + + private enum CodingKeys: String, CodingKey { + case languages = "Languages" + case index = "Index" + } + } + + public struct BatchDetectSentimentItemResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Index", required: false, type: .integer), + AWSShapeMember(label: "SentimentScore", required: false, type: .structure), + AWSShapeMember(label: "Sentiment", required: false, type: .enum) + ] + /// The zero-based index of the document in the input list. + public let index: Int32? + /// The level of confidence that Amazon Comprehend has in the accuracy of its sentiment detection. + public let sentimentScore: SentimentScore? + /// The sentiment detected in the document. + public let sentiment: SentimentType? + + public init(index: Int32? = nil, sentimentScore: SentimentScore? = nil, sentiment: SentimentType? = nil) { + self.index = index + self.sentimentScore = sentimentScore + self.sentiment = sentiment + } + + private enum CodingKeys: String, CodingKey { + case index = "Index" + case sentimentScore = "SentimentScore" + case sentiment = "Sentiment" + } + } + + public enum SentimentType: String, CustomStringConvertible, Codable { + case positive = "POSITIVE" + case negative = "NEGATIVE" + case neutral = "NEUTRAL" + case mixed = "MIXED" + public var description: String { return self.rawValue } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/config/Config_API.swift b/Sources/AWSSDKSwift/Services/config/Config_API.swift index f2c58f37b6c..4ba76ca9899 100644 --- a/Sources/AWSSDKSwift/Services/config/Config_API.swift +++ b/Sources/AWSSDKSwift/Services/config/Config_API.swift @@ -70,7 +70,7 @@ public struct Config { return try client.send(operation: "DeliverConfigSnapshot", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of configuration items for the specified resource. The list contains details about each state of the resource during the specified time interval. The response is paginated, and by default, AWS Config returns a limit of 10 configuration items per page. You can customize this number with the limit parameter. The response includes a nextToken string, and to get the next page of results, run the request again and enter this string for the nextToken parameter. Each call to the API is limited to span a duration of seven days. It is likely that the number of records returned is smaller than the specified limit. In such cases, you can make another call, using the nextToken. + /// Returns a list of configuration items for the specified resource. The list contains details about each state of the resource during the specified time interval. The response is paginated. By default, AWS Config returns a limit of 10 configuration items per page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter. Each call to the API is limited to span a duration of seven days. It is likely that the number of records returned is smaller than the specified limit. In such cases, you can make another call, using the nextToken. public func getResourceConfigHistory(_ input: GetResourceConfigHistoryRequest) throws -> GetResourceConfigHistoryResponse { return try client.send(operation: "GetResourceConfigHistory", path: "/", httpMethod: "POST", input: input) } @@ -140,7 +140,7 @@ public struct Config { return try client.send(operation: "GetComplianceSummaryByResourceType", path: "/", httpMethod: "POST", input: input) } - /// Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of resources that AWS Config has discovered, including those that AWS Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name. You can specify either resource IDs or a resource name but not both in the same request. The response is paginated, and by default AWS Config lists 100 resource identifiers on each page. You can customize this number with the limit parameter. The response includes a nextToken string, and to get the next page of results, run the request again and enter this string for the nextToken parameter. + /// Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of resources that AWS Config has discovered, including those that AWS Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name. You can specify either resource IDs or a resource name but not both in the same request. The response is paginated. By default, AWS Config lists 100 resource identifiers on each page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter. public func listDiscoveredResources(_ input: ListDiscoveredResourcesRequest) throws -> ListDiscoveredResourcesResponse { return try client.send(operation: "ListDiscoveredResources", path: "/", httpMethod: "POST", input: input) } @@ -155,5 +155,10 @@ public struct Config { return try client.send(operation: "StartConfigRulesEvaluation", path: "/", httpMethod: "POST", input: input) } + /// Returns the resource types, the number of each resource type, and the total number of resources that AWS Config is recording in this region for your AWS account. Example AWS Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets. You make a call to the GetDiscoveredResourceCounts action and specify that you want all resource types. AWS Config returns the following: The resource types (EC2 instances, IAM users, and S3 buckets) The number of each resource type (25, 20, and 15) The total number of all resources (60) The response is paginated. By default, AWS Config lists 100 ResourceCount objects on each page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter. If you make a call to the GetDiscoveredResourceCounts action, you may not immediately receive resource counts in the following situations: You are a new AWS Config customer You just enabled resource recording It may take a few minutes for AWS Config to record and count your resources. Wait a few minutes and then retry the GetDiscoveredResourceCounts action. + public func getDiscoveredResourceCounts(_ input: GetDiscoveredResourceCountsRequest) throws -> GetDiscoveredResourceCountsResponse { + return try client.send(operation: "GetDiscoveredResourceCounts", path: "/", httpMethod: "POST", input: input) + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/config/Config_Shapes.swift b/Sources/AWSSDKSwift/Services/config/Config_Shapes.swift index 225e6f5d98b..8596b20cde7 100644 --- a/Sources/AWSSDKSwift/Services/config/Config_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/config/Config_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Config { public struct ConfigStreamDeliveryInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lastErrorMessage", required: false, type: .string), AWSShapeMember(label: "lastErrorCode", required: false, type: .string), AWSShapeMember(label: "lastStatus", required: false, type: .enum), @@ -37,7 +37,7 @@ extension Config { } public struct GetComplianceDetailsByConfigRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EvaluationResults", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -58,7 +58,7 @@ extension Config { } public struct GetComplianceDetailsByResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EvaluationResults", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -79,7 +79,7 @@ extension Config { } public struct Source: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Owner", required: true, type: .enum), AWSShapeMember(label: "SourceDetails", required: false, type: .list), AWSShapeMember(label: "SourceIdentifier", required: true, type: .string) @@ -88,7 +88,7 @@ extension Config { public let owner: Owner /// Provides the source and type of the event that causes AWS Config to evaluate your AWS resources. public let sourceDetails: [SourceDetail]? - /// For AWS Config managed rules, a predefined identifier from a list. For example, IAM_PASSWORD_POLICY is a managed rule. To reference a managed rule, see Using AWS Managed Config Rules. For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's AWS Lambda function, such as arn:aws:lambda:us-east-1:123456789012:function:custom_rule_name. + /// For AWS Config managed rules, a predefined identifier from a list. For example, IAM_PASSWORD_POLICY is a managed rule. To reference a managed rule, see Using AWS Managed Config Rules. For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's AWS Lambda function, such as arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name. public let sourceIdentifier: String public init(owner: Owner, sourceDetails: [SourceDetail]? = nil, sourceIdentifier: String) { @@ -105,7 +105,7 @@ extension Config { } public struct DeleteConfigRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigRuleName", required: true, type: .string) ] /// The name of the AWS Config rule that you want to delete. @@ -121,7 +121,7 @@ extension Config { } public struct ConfigExportDeliveryInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lastErrorMessage", required: false, type: .string), AWSShapeMember(label: "lastAttemptTime", required: false, type: .timestamp), AWSShapeMember(label: "lastSuccessfulTime", required: false, type: .timestamp), @@ -162,7 +162,7 @@ extension Config { } public struct SourceDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MessageType", required: false, type: .enum), AWSShapeMember(label: "EventSource", required: false, type: .enum), AWSShapeMember(label: "MaximumExecutionFrequency", required: false, type: .enum) @@ -196,7 +196,7 @@ extension Config { } public struct DescribeConfigurationRecordersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationRecorders", required: false, type: .list) ] /// A list that contains the descriptions of the specified configuration recorders. @@ -212,7 +212,7 @@ extension Config { } public struct DescribeConfigurationRecordersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationRecorderNames", required: false, type: .list) ] /// A list of configuration recorder names. @@ -228,7 +228,7 @@ extension Config { } public struct ResourceIdentifier: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceType", required: false, type: .enum), AWSShapeMember(label: "resourceId", required: false, type: .string), AWSShapeMember(label: "resourceName", required: false, type: .string), @@ -259,7 +259,7 @@ extension Config { } public struct DeliveryChannel: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "s3KeyPrefix", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "configSnapshotDeliveryProperties", required: false, type: .structure), @@ -295,7 +295,7 @@ extension Config { } public struct PutConfigRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigRule", required: true, type: .structure) ] /// The rule that you want to add to your account. @@ -311,7 +311,7 @@ extension Config { } public struct DescribeDeliveryChannelsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryChannels", required: false, type: .list) ] /// A list that contains the descriptions of the specified delivery channel. @@ -327,7 +327,7 @@ extension Config { } public struct DescribeConfigRuleEvaluationStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ConfigRulesEvaluationStatus", required: false, type: .list) ] @@ -353,7 +353,7 @@ extension Config { } public struct DescribeComplianceByResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ComplianceByResources", required: false, type: .list) ] @@ -374,7 +374,7 @@ extension Config { } public struct DescribeConfigRulesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigRuleNames", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -395,7 +395,7 @@ extension Config { } public struct DeliverConfigSnapshotResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configSnapshotId", required: false, type: .string) ] /// The ID of the snapshot that is being created. @@ -411,7 +411,7 @@ extension Config { } public struct ListDiscoveredResourcesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "includeDeletedResources", required: false, type: .boolean), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "resourceType", required: true, type: .enum), @@ -452,7 +452,7 @@ extension Config { } public struct DeliverConfigSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deliveryChannelName", required: true, type: .string) ] /// The name of the delivery channel through which the snapshot is delivered. @@ -468,7 +468,7 @@ extension Config { } public struct DescribeDeliveryChannelsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryChannelNames", required: false, type: .list) ] /// A list of delivery channel names. @@ -527,6 +527,13 @@ extension Config { case awsRedshiftClustersubnetgroup = "AWS::Redshift::ClusterSubnetGroup" case awsRedshiftEventsubscription = "AWS::Redshift::EventSubscription" case awsCloudwatchAlarm = "AWS::CloudWatch::Alarm" + case awsCloudformationStack = "AWS::CloudFormation::Stack" + case awsDynamodbTable = "AWS::DynamoDB::Table" + case awsAutoscalingAutoscalinggroup = "AWS::AutoScaling::AutoScalingGroup" + case awsAutoscalingLaunchconfiguration = "AWS::AutoScaling::LaunchConfiguration" + case awsAutoscalingScalingpolicy = "AWS::AutoScaling::ScalingPolicy" + case awsAutoscalingScheduledaction = "AWS::AutoScaling::ScheduledAction" + case awsCodebuildProject = "AWS::CodeBuild::Project" public var description: String { return self.rawValue } } @@ -537,7 +544,7 @@ extension Config { } public struct GetComplianceSummaryByResourceTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComplianceSummariesByResourceType", required: false, type: .list) ] /// The number of resources that are compliant and the number that are noncompliant. If one or more resource types were provided with the request, the numbers are returned for each resource type. The maximum number returned is 100. @@ -553,7 +560,7 @@ extension Config { } public struct DeleteEvaluationResultsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigRuleName", required: true, type: .string) ] /// The name of the Config rule for which you want to delete the evaluation results. @@ -569,7 +576,7 @@ extension Config { } public struct ConfigurationItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configurationStateId", required: false, type: .string), AWSShapeMember(label: "resourceType", required: false, type: .enum), AWSShapeMember(label: "resourceName", required: false, type: .string), @@ -670,7 +677,7 @@ extension Config { } public struct PutConfigurationRecorderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationRecorder", required: true, type: .structure) ] /// The configuration recorder object that records each configuration change made to the resources. @@ -686,7 +693,7 @@ extension Config { } public struct EvaluationResultIdentifier: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrderingTimestamp", required: false, type: .timestamp), AWSShapeMember(label: "EvaluationResultQualifier", required: false, type: .structure) ] @@ -707,7 +714,7 @@ extension Config { } public struct RecordingGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "allSupported", required: false, type: .boolean), AWSShapeMember(label: "includeGlobalResourceTypes", required: false, type: .boolean), AWSShapeMember(label: "resourceTypes", required: false, type: .list) @@ -733,7 +740,7 @@ extension Config { } public struct GetComplianceDetailsByConfigRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigRuleName", required: true, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -764,7 +771,7 @@ extension Config { } public struct ComplianceSummaryByResourceType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComplianceSummary", required: false, type: .structure), AWSShapeMember(label: "ResourceType", required: false, type: .string) ] @@ -785,7 +792,7 @@ extension Config { } public struct PutDeliveryChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryChannel", required: true, type: .structure) ] /// The configuration delivery channel object that delivers the configuration information to an Amazon S3 bucket, and to an Amazon SNS topic. @@ -801,7 +808,7 @@ extension Config { } public struct Evaluation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComplianceType", required: true, type: .enum), AWSShapeMember(label: "ComplianceResourceType", required: true, type: .string), AWSShapeMember(label: "ComplianceResourceId", required: true, type: .string), @@ -837,7 +844,7 @@ extension Config { } public struct StopConfigurationRecorderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationRecorderName", required: true, type: .string) ] /// The name of the recorder object that records each configuration change made to the resources. @@ -853,7 +860,7 @@ extension Config { } public struct ConfigRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigRuleState", required: false, type: .enum), AWSShapeMember(label: "ConfigRuleName", required: false, type: .string), AWSShapeMember(label: "InputParameters", required: false, type: .string), @@ -909,7 +916,7 @@ extension Config { } public struct EvaluationResultQualifier: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: false, type: .string), AWSShapeMember(label: "ResourceType", required: false, type: .string), AWSShapeMember(label: "ConfigRuleName", required: false, type: .string) @@ -934,8 +941,34 @@ extension Config { } } + public struct GetDiscoveredResourceCountsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "resourceTypes", required: false, type: .list), + AWSShapeMember(label: "limit", required: false, type: .integer) + ] + /// The nextToken string returned on a previous page that you use to get the next page of results in a paginated response. + public let nextToken: String? + /// The comma-separated list that specifies the resource types that you want the AWS Config to return. For example, ("AWS::EC2::Instance", "AWS::IAM::User"). If a value for resourceTypes is not specified, AWS Config returns all resource types that AWS Config is recording in the region for your account. If the configuration recorder is turned off, AWS Config returns an empty list of ResourceCount objects. If the configuration recorder is not recording a specific resource type (for example, S3 buckets), that resource type is not returned in the list of ResourceCount objects. + public let resourceTypes: [String]? + /// The maximum number of ResourceCount objects returned on each page. The default is 100. You cannot specify a limit greater than 100. If you specify 0, AWS Config uses the default. + public let limit: Int32? + + public init(nextToken: String? = nil, resourceTypes: [String]? = nil, limit: Int32? = nil) { + self.nextToken = nextToken + self.resourceTypes = resourceTypes + self.limit = limit + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case resourceTypes = "resourceTypes" + case limit = "limit" + } + } + public struct DescribeConfigurationRecorderStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationRecordersStatus", required: false, type: .list) ] /// A list that contains status of the specified recorders. @@ -951,7 +984,7 @@ extension Config { } public struct ComplianceSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComplianceSummaryTimestamp", required: false, type: .timestamp), AWSShapeMember(label: "NonCompliantResourceCount", required: false, type: .structure), AWSShapeMember(label: "CompliantResourceCount", required: false, type: .structure) @@ -984,7 +1017,7 @@ extension Config { } public struct Scope: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComplianceResourceTypes", required: false, type: .list), AWSShapeMember(label: "ComplianceResourceId", required: false, type: .string), AWSShapeMember(label: "TagValue", required: false, type: .string), @@ -996,7 +1029,7 @@ extension Config { public let complianceResourceId: String? /// The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule. If you specify a value for TagValue, you must also specify a value for TagKey. public let tagValue: String? - /// The tag key that is applied to only those AWS resources that you want you want to trigger an evaluation for the rule. + /// The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule. public let tagKey: String? public init(complianceResourceTypes: [String]? = nil, complianceResourceId: String? = nil, tagValue: String? = nil, tagKey: String? = nil) { @@ -1015,7 +1048,7 @@ extension Config { } public struct ConfigRuleEvaluationStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastFailedEvaluationTime", required: false, type: .timestamp), AWSShapeMember(label: "FirstEvaluationStarted", required: false, type: .boolean), AWSShapeMember(label: "LastSuccessfulEvaluationTime", required: false, type: .timestamp), @@ -1081,7 +1114,7 @@ extension Config { } public struct GetComplianceSummaryByConfigRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComplianceSummary", required: false, type: .structure) ] /// The number of AWS Config rules that are compliant and the number that are noncompliant, up to a maximum of 25 for each. @@ -1097,7 +1130,7 @@ extension Config { } public struct GetComplianceSummaryByResourceTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceTypes", required: false, type: .list) ] /// Specify one or more resource types to get the number of resources that are compliant and the number that are noncompliant for each resource type. For this request, you can specify an AWS resource type such as AWS::EC2::Instance, and you can specify that the resource type is an AWS account by specifying AWS::::Account. @@ -1113,7 +1146,7 @@ extension Config { } public struct DescribeComplianceByConfigRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigRuleNames", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ComplianceTypes", required: false, type: .list) @@ -1139,7 +1172,7 @@ extension Config { } public struct GetComplianceDetailsByResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ResourceType", required: true, type: .string), @@ -1170,7 +1203,7 @@ extension Config { } public struct ComplianceByResource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Compliance", required: false, type: .structure), AWSShapeMember(label: "ResourceId", required: false, type: .string), AWSShapeMember(label: "ResourceType", required: false, type: .string) @@ -1196,7 +1229,7 @@ extension Config { } public struct DescribeComplianceByConfigRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComplianceByConfigRules", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1217,7 +1250,7 @@ extension Config { } public struct DescribeConfigRuleEvaluationStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigRuleNames", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -1243,7 +1276,7 @@ extension Config { } public struct DeliveryChannelStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "configStreamDeliveryInfo", required: false, type: .structure), AWSShapeMember(label: "configHistoryDeliveryInfo", required: false, type: .structure), @@ -1278,7 +1311,7 @@ extension Config { } public struct ComplianceByConfigRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Compliance", required: false, type: .structure), AWSShapeMember(label: "ConfigRuleName", required: false, type: .string) ] @@ -1299,7 +1332,7 @@ extension Config { } public struct GetResourceConfigHistoryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configurationItems", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1320,7 +1353,7 @@ extension Config { } public struct ComplianceContributorCount: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CappedCount", required: false, type: .integer), AWSShapeMember(label: "CapExceeded", required: false, type: .boolean) ] @@ -1341,7 +1374,7 @@ extension Config { } public struct DeleteConfigurationRecorderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationRecorderName", required: true, type: .string) ] /// The name of the configuration recorder to be deleted. You can retrieve the name of your configuration recorder by using the DescribeConfigurationRecorders action. @@ -1357,7 +1390,7 @@ extension Config { } public struct GetResourceConfigHistoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "laterTime", required: false, type: .timestamp), AWSShapeMember(label: "limit", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -1403,7 +1436,7 @@ extension Config { } public struct Relationship: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceType", required: false, type: .enum), AWSShapeMember(label: "resourceId", required: false, type: .string), AWSShapeMember(label: "resourceName", required: false, type: .string), @@ -1433,8 +1466,29 @@ extension Config { } } + public struct ResourceCount: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "count", required: false, type: .long), + AWSShapeMember(label: "resourceType", required: false, type: .enum) + ] + /// The number of resources. + public let count: Int64? + /// The resource type, for example "AWS::EC2::Instance". + public let resourceType: ResourceType? + + public init(count: Int64? = nil, resourceType: ResourceType? = nil) { + self.count = count + self.resourceType = resourceType + } + + private enum CodingKeys: String, CodingKey { + case count = "count" + case resourceType = "resourceType" + } + } + public struct Compliance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComplianceContributorCount", required: false, type: .structure), AWSShapeMember(label: "ComplianceType", required: false, type: .enum) ] @@ -1455,7 +1509,7 @@ extension Config { } public struct DescribeConfigurationRecorderStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationRecorderNames", required: false, type: .list) ] /// The name(s) of the configuration recorder. If the name is not specified, the action returns the current status of all the configuration recorders associated with the account. @@ -1471,7 +1525,7 @@ extension Config { } public struct ConfigSnapshotDeliveryProperties: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "deliveryFrequency", required: false, type: .enum) ] /// The frequency with which AWS Config delivers configuration snapshots. @@ -1494,7 +1548,7 @@ extension Config { } public struct ListDiscoveredResourcesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceIdentifiers", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1522,12 +1576,38 @@ extension Config { public var description: String { return self.rawValue } } + public struct GetDiscoveredResourceCountsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "resourceCounts", required: false, type: .list), + AWSShapeMember(label: "totalDiscoveredResources", required: false, type: .long), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The list of ResourceCount objects. Each object is listed in descending order by the number of resources. + public let resourceCounts: [ResourceCount]? + /// The total number of resources that AWS Config is recording in the region for your account. If you specify resource types in the request, AWS Config returns only the total number of resources for those resource types. Example AWS Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets, for a total of 60 resources. You make a call to the GetDiscoveredResourceCounts action and specify the resource type, "AWS::EC2::Instances" in the request. AWS Config returns 25 for totalDiscoveredResources. + public let totalDiscoveredResources: Int64? + /// The string that you use in a subsequent request to get the next page of results in a paginated response. + public let nextToken: String? + + public init(resourceCounts: [ResourceCount]? = nil, totalDiscoveredResources: Int64? = nil, nextToken: String? = nil) { + self.resourceCounts = resourceCounts + self.totalDiscoveredResources = totalDiscoveredResources + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case resourceCounts = "resourceCounts" + case totalDiscoveredResources = "totalDiscoveredResources" + case nextToken = "nextToken" + } + } + public struct DeleteEvaluationResultsResponse: AWSShape { } public struct DescribeConfigRulesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigRules", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1557,7 +1637,7 @@ extension Config { } public struct EvaluationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EvaluationResultIdentifier", required: false, type: .structure), AWSShapeMember(label: "ConfigRuleInvokedTime", required: false, type: .timestamp), AWSShapeMember(label: "ResultRecordedTime", required: false, type: .timestamp), @@ -1606,7 +1686,7 @@ extension Config { } public struct DescribeComplianceByResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "ResourceId", required: false, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -1642,7 +1722,7 @@ extension Config { } public struct DescribeDeliveryChannelStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryChannelsStatus", required: false, type: .list) ] /// A list that contains the status of a specified delivery channel. @@ -1658,7 +1738,7 @@ extension Config { } public struct PutEvaluationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedEvaluations", required: false, type: .list) ] /// Requests that failed because of a client or server error. @@ -1680,7 +1760,7 @@ extension Config { } public struct StartConfigRulesEvaluationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigRuleNames", required: false, type: .list) ] /// The list of names of Config rules that you want to run evaluations for. @@ -1696,7 +1776,7 @@ extension Config { } public struct StartConfigurationRecorderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationRecorderName", required: true, type: .string) ] /// The name of the recorder object that records each configuration change made to the resources. @@ -1712,7 +1792,7 @@ extension Config { } public struct DeleteDeliveryChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryChannelName", required: true, type: .string) ] /// The name of the delivery channel to delete. @@ -1728,7 +1808,7 @@ extension Config { } public struct DescribeDeliveryChannelStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryChannelNames", required: false, type: .list) ] /// A list of delivery channel names. @@ -1744,7 +1824,7 @@ extension Config { } public struct ConfigurationRecorderStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "lastStatusChangeTime", required: false, type: .timestamp), AWSShapeMember(label: "lastStopTime", required: false, type: .timestamp), @@ -1795,7 +1875,7 @@ extension Config { } public struct ConfigurationRecorder: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "recordingGroup", required: false, type: .structure), AWSShapeMember(label: "roleARN", required: false, type: .string) @@ -1821,7 +1901,7 @@ extension Config { } public struct PutEvaluationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Evaluations", required: false, type: .list), AWSShapeMember(label: "ResultToken", required: true, type: .string), AWSShapeMember(label: "TestMode", required: false, type: .boolean) diff --git a/Sources/AWSSDKSwift/Services/cur/Cur_Shapes.swift b/Sources/AWSSDKSwift/Services/cur/Cur_Shapes.swift index ba164fff908..0278517bb23 100644 --- a/Sources/AWSSDKSwift/Services/cur/Cur_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/cur/Cur_Shapes.swift @@ -17,7 +17,7 @@ extension Cur { } public struct DescribeReportDefinitionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ReportDefinitions", required: false, type: .list) ] @@ -42,7 +42,7 @@ extension Cur { } public struct DeleteReportDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResponseMessage", required: false, type: .string) ] public let responseMessage: String? @@ -61,7 +61,7 @@ extension Cur { } public struct ReportDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TimeUnit", required: true, type: .enum), AWSShapeMember(label: "Format", required: true, type: .enum), AWSShapeMember(label: "Compression", required: true, type: .enum), @@ -120,7 +120,7 @@ extension Cur { } public struct PutReportDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReportDefinition", required: true, type: .structure) ] public let reportDefinition: ReportDefinition @@ -146,7 +146,7 @@ extension Cur { } public struct DescribeReportDefinitionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -165,7 +165,7 @@ extension Cur { } public struct DeleteReportDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReportName", required: false, type: .string) ] public let reportName: String? diff --git a/Sources/AWSSDKSwift/Services/datapipeline/Datapipeline_Shapes.swift b/Sources/AWSSDKSwift/Services/datapipeline/Datapipeline_Shapes.swift index 2f26a9efe1b..10bd3dea2d1 100644 --- a/Sources/AWSSDKSwift/Services/datapipeline/Datapipeline_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/datapipeline/Datapipeline_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Datapipeline { public struct PipelineObject: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: true, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "fields", required: true, type: .list) @@ -32,7 +32,7 @@ extension Datapipeline { } public struct DescribePipelinesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineIds", required: true, type: .list) ] /// The IDs of the pipelines to describe. You can pass as many as 25 identifiers in a single call. To obtain pipeline IDs, call ListPipelines. @@ -48,7 +48,7 @@ extension Datapipeline { } public struct RemoveTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineId", required: true, type: .string), AWSShapeMember(label: "tagKeys", required: true, type: .list) ] @@ -69,7 +69,7 @@ extension Datapipeline { } public struct PutPipelineDefinitionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "errored", required: true, type: .boolean), AWSShapeMember(label: "validationErrors", required: false, type: .list), AWSShapeMember(label: "validationWarnings", required: false, type: .list) @@ -95,7 +95,7 @@ extension Datapipeline { } public struct ParameterValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: true, type: .string), AWSShapeMember(label: "stringValue", required: true, type: .string) ] @@ -116,7 +116,7 @@ extension Datapipeline { } public struct TaskObject: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineId", required: false, type: .string), AWSShapeMember(label: "objects", required: false, type: .map), AWSShapeMember(label: "taskId", required: false, type: .string), @@ -147,7 +147,7 @@ extension Datapipeline { } public struct DescribeObjectsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "marker", required: false, type: .string), AWSShapeMember(label: "pipelineId", required: true, type: .string), AWSShapeMember(label: "evaluateExpressions", required: false, type: .boolean), @@ -178,7 +178,7 @@ extension Datapipeline { } public struct EvaluateExpressionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "evaluatedExpression", required: true, type: .string) ] /// The evaluated expression. @@ -194,7 +194,7 @@ extension Datapipeline { } public struct PollForTaskOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskObject", required: false, type: .structure) ] /// The information needed to complete the task that is being assigned to the task runner. One of the fields returned in this object is taskId, which contains an identifier for the task being assigned. The calling task runner uses taskId in subsequent calls to ReportTaskProgress and SetTaskStatus. @@ -210,7 +210,7 @@ extension Datapipeline { } public struct PipelineDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "fields", required: true, type: .list), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "pipelineId", required: true, type: .string), @@ -246,7 +246,7 @@ extension Datapipeline { } public struct ValidatePipelineDefinitionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "parameterValues", required: false, type: .list), AWSShapeMember(label: "pipelineId", required: true, type: .string), AWSShapeMember(label: "pipelineObjects", required: true, type: .list), @@ -277,7 +277,7 @@ extension Datapipeline { } public struct ValidatePipelineDefinitionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "errored", required: true, type: .boolean), AWSShapeMember(label: "validationErrors", required: false, type: .list), AWSShapeMember(label: "validationWarnings", required: false, type: .list) @@ -303,7 +303,7 @@ extension Datapipeline { } public struct ActivatePipelineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "parameterValues", required: false, type: .list), AWSShapeMember(label: "pipelineId", required: true, type: .string), AWSShapeMember(label: "startTimestamp", required: false, type: .timestamp) @@ -329,7 +329,7 @@ extension Datapipeline { } public struct ParameterAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .string), AWSShapeMember(label: "stringValue", required: true, type: .string) ] @@ -350,7 +350,7 @@ extension Datapipeline { } public struct ReportTaskProgressOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "canceled", required: true, type: .boolean) ] /// If true, the calling task runner should cancel processing of the task. The task runner does not need to call SetTaskStatus for canceled tasks. @@ -366,7 +366,7 @@ extension Datapipeline { } public struct Operator: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "values", required: false, type: .list) ] @@ -387,7 +387,7 @@ extension Datapipeline { } public struct PollForTaskInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "hostname", required: false, type: .string), AWSShapeMember(label: "workerGroup", required: true, type: .string), AWSShapeMember(label: "instanceIdentity", required: false, type: .structure) @@ -426,7 +426,7 @@ extension Datapipeline { } public struct CreatePipelineOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineId", required: true, type: .string) ] /// The ID that AWS Data Pipeline assigns the newly created pipeline. For example, df-06372391ZG65EXAMPLE. @@ -442,7 +442,7 @@ extension Datapipeline { } public struct QueryObjectsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "sphere", required: true, type: .string), AWSShapeMember(label: "pipelineId", required: true, type: .string), AWSShapeMember(label: "limit", required: false, type: .integer), @@ -478,7 +478,7 @@ extension Datapipeline { } public struct ValidationWarning: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "warnings", required: false, type: .list) ] @@ -499,7 +499,7 @@ extension Datapipeline { } public struct GetPipelineDefinitionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "version", required: false, type: .string), AWSShapeMember(label: "pipelineId", required: true, type: .string) ] @@ -520,7 +520,7 @@ extension Datapipeline { } public struct DescribeObjectsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "marker", required: false, type: .string), AWSShapeMember(label: "hasMoreResults", required: false, type: .boolean), AWSShapeMember(label: "pipelineObjects", required: true, type: .list) @@ -550,7 +550,7 @@ extension Datapipeline { } public struct GetPipelineDefinitionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "parameterValues", required: false, type: .list), AWSShapeMember(label: "parameterObjects", required: false, type: .list), AWSShapeMember(label: "pipelineObjects", required: false, type: .list) @@ -576,7 +576,7 @@ extension Datapipeline { } public struct ParameterObject: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: true, type: .string), AWSShapeMember(label: "attributes", required: true, type: .list) ] @@ -597,7 +597,7 @@ extension Datapipeline { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .string), AWSShapeMember(label: "value", required: true, type: .string) ] @@ -618,7 +618,7 @@ extension Datapipeline { } public struct Selector: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operator", required: false, type: .structure), AWSShapeMember(label: "fieldName", required: false, type: .string) ] @@ -638,7 +638,7 @@ extension Datapipeline { } public struct PipelineIdName: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string) ] @@ -659,7 +659,7 @@ extension Datapipeline { } public struct DeletePipelineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineId", required: true, type: .string) ] /// The ID of the pipeline. @@ -675,7 +675,7 @@ extension Datapipeline { } public struct EvaluateExpressionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "objectId", required: true, type: .string), AWSShapeMember(label: "expression", required: true, type: .string), AWSShapeMember(label: "pipelineId", required: true, type: .string) @@ -701,7 +701,7 @@ extension Datapipeline { } public struct DescribePipelinesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineDescriptionList", required: true, type: .list) ] /// An array of descriptions for the specified pipelines. @@ -724,7 +724,7 @@ extension Datapipeline { } public struct DeactivatePipelineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pipelineId", required: true, type: .string), AWSShapeMember(label: "cancelActive", required: false, type: .boolean) ] @@ -749,7 +749,7 @@ extension Datapipeline { } public struct ReportTaskProgressInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "fields", required: false, type: .list), AWSShapeMember(label: "taskId", required: true, type: .string) ] @@ -770,7 +770,7 @@ extension Datapipeline { } public struct CreatePipelineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "tags", required: false, type: .list), @@ -801,7 +801,7 @@ extension Datapipeline { } public struct Query: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "selectors", required: false, type: .list) ] /// List of selectors that define the query. An object must satisfy all of the selectors to match the query. @@ -817,7 +817,7 @@ extension Datapipeline { } public struct ListPipelinesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "marker", required: false, type: .string) ] /// The starting point for the results to be returned. For the first call, this value should be empty. As long as there are more results, continue to call ListPipelines with the marker value from the previous call to retrieve the next set of results. @@ -833,7 +833,7 @@ extension Datapipeline { } public struct SetStatusInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "objectIds", required: true, type: .list), AWSShapeMember(label: "status", required: true, type: .string), AWSShapeMember(label: "pipelineId", required: true, type: .string) @@ -859,7 +859,7 @@ extension Datapipeline { } public struct ReportTaskRunnerHeartbeatInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "hostname", required: false, type: .string), AWSShapeMember(label: "workerGroup", required: false, type: .string), AWSShapeMember(label: "taskrunnerId", required: true, type: .string) @@ -885,7 +885,7 @@ extension Datapipeline { } public struct ReportTaskRunnerHeartbeatOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "terminate", required: true, type: .boolean) ] /// Indicates whether the calling task runner should terminate. @@ -901,7 +901,7 @@ extension Datapipeline { } public struct AddTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: true, type: .list), AWSShapeMember(label: "pipelineId", required: true, type: .string) ] @@ -922,7 +922,7 @@ extension Datapipeline { } public struct InstanceIdentity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "document", required: false, type: .string), AWSShapeMember(label: "signature", required: false, type: .string) ] @@ -943,7 +943,7 @@ extension Datapipeline { } public struct SetTaskStatusInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "errorMessage", required: false, type: .string), AWSShapeMember(label: "taskId", required: true, type: .string), AWSShapeMember(label: "errorStackTrace", required: false, type: .string), @@ -979,7 +979,7 @@ extension Datapipeline { } public struct ValidationError: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "errors", required: false, type: .list) ] @@ -1008,7 +1008,7 @@ extension Datapipeline { } public struct PutPipelineDefinitionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "parameterValues", required: false, type: .list), AWSShapeMember(label: "pipelineId", required: true, type: .string), AWSShapeMember(label: "pipelineObjects", required: true, type: .list), @@ -1039,7 +1039,7 @@ extension Datapipeline { } public struct QueryObjectsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "marker", required: false, type: .string), AWSShapeMember(label: "hasMoreResults", required: false, type: .boolean), AWSShapeMember(label: "ids", required: false, type: .list) @@ -1065,7 +1065,7 @@ extension Datapipeline { } public struct ListPipelinesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "marker", required: false, type: .string), AWSShapeMember(label: "hasMoreResults", required: false, type: .boolean), AWSShapeMember(label: "pipelineIdList", required: true, type: .list) @@ -1091,7 +1091,7 @@ extension Datapipeline { } public struct Field: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .string), AWSShapeMember(label: "refValue", required: false, type: .string), AWSShapeMember(label: "stringValue", required: false, type: .string) diff --git a/Sources/AWSSDKSwift/Services/dax/Dax_Shapes.swift b/Sources/AWSSDKSwift/Services/dax/Dax_Shapes.swift index 67cb864284e..78d510b8620 100644 --- a/Sources/AWSSDKSwift/Services/dax/Dax_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/dax/Dax_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Dax { public struct NodeTypeSpecificValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "NodeType", required: false, type: .string) ] @@ -27,7 +27,7 @@ extension Dax { } public struct UpdateSubnetGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetGroup", required: false, type: .structure) ] /// The subnet group that has been modified. @@ -43,7 +43,7 @@ extension Dax { } public struct TagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .list), AWSShapeMember(label: "ResourceName", required: true, type: .string) ] @@ -64,7 +64,7 @@ extension Dax { } public struct UpdateSubnetGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: false, type: .list), AWSShapeMember(label: "SubnetGroupName", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) @@ -90,7 +90,7 @@ extension Dax { } public struct CreateSubnetGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: true, type: .list), AWSShapeMember(label: "SubnetGroupName", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) @@ -116,7 +116,7 @@ extension Dax { } public struct DescribeParametersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Source", required: false, type: .string), AWSShapeMember(label: "ParameterGroupName", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -147,7 +147,7 @@ extension Dax { } public struct NotificationConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicStatus", required: false, type: .string), AWSShapeMember(label: "TopicArn", required: false, type: .string) ] @@ -168,7 +168,7 @@ extension Dax { } public struct ListTagsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list) ] @@ -189,7 +189,7 @@ extension Dax { } public struct RebootNodeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] /// A description of the DAX cluster after a node has been rebooted. @@ -211,7 +211,7 @@ extension Dax { } public struct Endpoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Address", required: false, type: .string), AWSShapeMember(label: "Port", required: false, type: .integer) ] @@ -232,7 +232,7 @@ extension Dax { } public struct ParameterNameValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterName", required: false, type: .string), AWSShapeMember(label: "ParameterValue", required: false, type: .string) ] @@ -253,7 +253,7 @@ extension Dax { } public struct CreateClusterResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] /// A description of the DAX cluster that you have created. @@ -269,7 +269,7 @@ extension Dax { } public struct DeleteSubnetGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeletionMessage", required: false, type: .string) ] /// A user-specified message for this action (i.e., a reason for deleting the subnet group). @@ -285,7 +285,7 @@ extension Dax { } public struct IncreaseReplicationFactorResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] /// A description of the DAX cluster. with its new replication factor. @@ -301,7 +301,7 @@ extension Dax { } public struct UpdateParameterGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterGroup", required: false, type: .structure) ] /// The parameter group that has been modified. @@ -317,7 +317,7 @@ extension Dax { } public struct CreateParameterGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterGroup", required: false, type: .structure) ] /// Represents the output of a CreateParameterGroup action. @@ -333,7 +333,7 @@ extension Dax { } public struct UpdateParameterGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterNameValues", required: true, type: .list), AWSShapeMember(label: "ParameterGroupName", required: true, type: .string) ] @@ -354,7 +354,7 @@ extension Dax { } public struct DescribeParameterGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterGroupNames", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -380,7 +380,7 @@ extension Dax { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -401,7 +401,7 @@ extension Dax { } public struct DeleteClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterName", required: true, type: .string) ] /// The name of the cluster to be deleted. @@ -417,7 +417,7 @@ extension Dax { } public struct DecreaseReplicationFactorRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "NodeIdsToRemove", required: false, type: .list), AWSShapeMember(label: "ClusterName", required: true, type: .string), @@ -448,7 +448,7 @@ extension Dax { } public struct DescribeSubnetGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "SubnetGroupNames", required: false, type: .list), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -474,7 +474,7 @@ extension Dax { } public struct DescribeParametersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -495,7 +495,7 @@ extension Dax { } public struct ParameterGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "ParameterGroupName", required: false, type: .string) ] @@ -516,7 +516,7 @@ extension Dax { } public struct DescribeClustersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Clusters", required: false, type: .list) ] @@ -544,7 +544,7 @@ extension Dax { } public struct DescribeEventsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "SourceName", required: false, type: .string), AWSShapeMember(label: "SourceType", required: false, type: .enum), @@ -590,7 +590,7 @@ extension Dax { } public struct UpdateClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NotificationTopicArn", required: false, type: .string), AWSShapeMember(label: "NotificationTopicStatus", required: false, type: .string), AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), @@ -636,7 +636,7 @@ extension Dax { } public struct DeleteSubnetGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetGroupName", required: true, type: .string) ] /// The name of the subnet group to delete. @@ -652,7 +652,7 @@ extension Dax { } public struct DeleteParameterGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeletionMessage", required: false, type: .string) ] /// A user-specified message for this action (i.e., a reason for deleting the parameter group). @@ -668,7 +668,7 @@ extension Dax { } public struct SubnetGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetGroupName", required: false, type: .string), AWSShapeMember(label: "Subnets", required: false, type: .list), AWSShapeMember(label: "VpcId", required: false, type: .string), @@ -699,7 +699,7 @@ extension Dax { } public struct CreateParameterGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "ParameterGroupName", required: true, type: .string) ] @@ -720,7 +720,7 @@ extension Dax { } public struct DescribeDefaultParametersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -741,7 +741,7 @@ extension Dax { } public struct SecurityGroupMembership: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "SecurityGroupIdentifier", required: false, type: .string) ] @@ -762,7 +762,7 @@ extension Dax { } public struct IncreaseReplicationFactorRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "ClusterName", required: true, type: .string), AWSShapeMember(label: "NewReplicationFactor", required: true, type: .integer) @@ -788,7 +788,7 @@ extension Dax { } public struct DescribeEventsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Events", required: false, type: .list) ] @@ -809,7 +809,7 @@ extension Dax { } public struct Cluster: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterDiscoveryEndpoint", required: false, type: .structure), AWSShapeMember(label: "ClusterName", required: false, type: .string), AWSShapeMember(label: "NodeType", required: false, type: .string), @@ -900,7 +900,7 @@ extension Dax { } public struct DescribeParameterGroupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ParameterGroups", required: false, type: .list) ] @@ -921,7 +921,7 @@ extension Dax { } public struct Subnet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIdentifier", required: false, type: .string), AWSShapeMember(label: "SubnetAvailabilityZone", required: false, type: .string) ] @@ -949,7 +949,7 @@ extension Dax { } public struct Parameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterType", required: false, type: .enum), AWSShapeMember(label: "NodeTypeSpecificValues", required: false, type: .list), AWSShapeMember(label: "AllowedValues", required: false, type: .string), @@ -1010,7 +1010,7 @@ extension Dax { } public struct DescribeSubnetGroupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetGroups", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1031,7 +1031,7 @@ extension Dax { } public struct DescribeDefaultParametersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -1052,7 +1052,7 @@ extension Dax { } public struct TagResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: false, type: .list) ] /// The list of tags that are associated with the DAX resource. @@ -1068,7 +1068,7 @@ extension Dax { } public struct Event: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceName", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "SourceType", required: false, type: .enum), @@ -1099,7 +1099,7 @@ extension Dax { } public struct CreateClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "ReplicationFactor", required: true, type: .integer), AWSShapeMember(label: "NotificationTopicArn", required: false, type: .string), @@ -1170,7 +1170,7 @@ extension Dax { } public struct CreateSubnetGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetGroup", required: false, type: .structure) ] /// Represents the output of a CreateSubnetGroup operation. @@ -1186,7 +1186,7 @@ extension Dax { } public struct DeleteClusterResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] /// A description of the DAX cluster that is being deleted. @@ -1202,7 +1202,7 @@ extension Dax { } public struct RebootNodeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeId", required: true, type: .string), AWSShapeMember(label: "ClusterName", required: true, type: .string) ] @@ -1223,7 +1223,7 @@ extension Dax { } public struct ParameterGroupStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterApplyStatus", required: false, type: .string), AWSShapeMember(label: "NodeIdsToReboot", required: false, type: .list), AWSShapeMember(label: "ParameterGroupName", required: false, type: .string) @@ -1255,7 +1255,7 @@ extension Dax { } public struct DecreaseReplicationFactorResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] /// A description of the DAX cluster, after you have decreased its replication factor. @@ -1271,7 +1271,7 @@ extension Dax { } public struct UpdateClusterResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] /// A description of the DAX cluster, after it has been modified. @@ -1287,7 +1287,7 @@ extension Dax { } public struct UntagResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: false, type: .list) ] /// The tag keys that have been removed from the cluster. @@ -1303,7 +1303,7 @@ extension Dax { } public struct DeleteParameterGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterGroupName", required: true, type: .string) ] /// The name of the parameter group to delete. @@ -1319,7 +1319,7 @@ extension Dax { } public struct DescribeClustersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterNames", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -1345,7 +1345,7 @@ extension Dax { } public struct Node: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterGroupStatus", required: false, type: .string), AWSShapeMember(label: "Endpoint", required: false, type: .structure), AWSShapeMember(label: "NodeCreateTime", required: false, type: .timestamp), @@ -1386,7 +1386,7 @@ extension Dax { } public struct ListTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ResourceName", required: true, type: .string) ] @@ -1407,7 +1407,7 @@ extension Dax { } public struct UntagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceName", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] diff --git a/Sources/AWSSDKSwift/Services/devicefarm/Devicefarm_Shapes.swift b/Sources/AWSSDKSwift/Services/devicefarm/Devicefarm_Shapes.swift index 0fb5dabaabe..402707f26a3 100644 --- a/Sources/AWSSDKSwift/Services/devicefarm/Devicefarm_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/devicefarm/Devicefarm_Shapes.swift @@ -10,7 +10,7 @@ extension Devicefarm { } public struct ListDevicesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: false, type: .string) ] @@ -31,7 +31,7 @@ extension Devicefarm { } public struct NetworkProfile: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uplinkJitterMs", required: false, type: .long), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "downlinkJitterMs", required: false, type: .long), @@ -102,7 +102,7 @@ extension Devicefarm { } public struct GetTestResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "test", required: false, type: .structure) ] /// A test condition that is evaluated. @@ -118,7 +118,7 @@ extension Devicefarm { } public struct Rule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attribute", required: false, type: .enum), AWSShapeMember(label: "operator", required: false, type: .enum), AWSShapeMember(label: "value", required: false, type: .string) @@ -144,7 +144,7 @@ extension Devicefarm { } public struct ListTestsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) ] @@ -165,7 +165,7 @@ extension Devicefarm { } public struct GetUploadResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "upload", required: false, type: .structure) ] /// An app or a set of one or more tests to upload or that have been uploaded. @@ -181,7 +181,7 @@ extension Devicefarm { } public struct CreateRemoteAccessSessionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "billingMethod", required: false, type: .enum) ] /// Returns the billing method for purposes of configuring a remote access session. @@ -197,7 +197,7 @@ extension Devicefarm { } public struct ListSuitesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "suites", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -218,7 +218,7 @@ extension Devicefarm { } public struct ListRemoteAccessSessionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "remoteAccessSessions", required: false, type: .list) ] @@ -239,7 +239,7 @@ extension Devicefarm { } public struct UpdateNetworkProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uplinkJitterMs", required: false, type: .long), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "downlinkJitterMs", required: false, type: .long), @@ -310,7 +310,7 @@ extension Devicefarm { } public struct GetDevicePoolResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "devicePool", required: false, type: .structure) ] /// An object containing information about the requested device pool. @@ -334,7 +334,7 @@ extension Devicefarm { } public struct DevicePool: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "type", required: false, type: .enum), @@ -370,7 +370,7 @@ extension Devicefarm { } public struct CreateProjectResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "project", required: false, type: .structure) ] /// The newly created project. @@ -386,7 +386,7 @@ extension Devicefarm { } public struct PurchaseOfferingResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "offeringTransaction", required: false, type: .structure) ] /// Represents the offering transaction for the purchase result. @@ -402,7 +402,7 @@ extension Devicefarm { } public struct ExecutionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountsCleanup", required: false, type: .boolean), AWSShapeMember(label: "jobTimeoutMinutes", required: false, type: .integer), AWSShapeMember(label: "appPackagesCleanup", required: false, type: .boolean) @@ -428,7 +428,7 @@ extension Devicefarm { } public struct MonetaryAmount: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "currencyCode", required: false, type: .enum), AWSShapeMember(label: "amount", required: false, type: .double) ] @@ -449,7 +449,7 @@ extension Devicefarm { } public struct CreateNetworkProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uplinkJitterMs", required: false, type: .long), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "downlinkJitterMs", required: false, type: .long), @@ -520,7 +520,7 @@ extension Devicefarm { } public struct GetDevicePoolRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The device pool's ARN. @@ -536,78 +536,98 @@ extension Devicefarm { } public struct RemoteAccessSession: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "billingMethod", required: false, type: .enum), - AWSShapeMember(label: "status", required: false, type: .enum), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "remoteDebugEnabled", required: false, type: .boolean), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "endpoint", required: false, type: .string), + AWSShapeMember(label: "clientId", required: false, type: .string), + AWSShapeMember(label: "device", required: false, type: .structure), + AWSShapeMember(label: "result", required: false, type: .enum), + AWSShapeMember(label: "arn", required: false, type: .string), + AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "created", required: false, type: .timestamp), AWSShapeMember(label: "started", required: false, type: .timestamp), + AWSShapeMember(label: "hostAddress", required: false, type: .string), AWSShapeMember(label: "stopped", required: false, type: .timestamp), AWSShapeMember(label: "deviceMinutes", required: false, type: .structure), AWSShapeMember(label: "message", required: false, type: .string), - AWSShapeMember(label: "device", required: false, type: .structure), - AWSShapeMember(label: "result", required: false, type: .enum), - AWSShapeMember(label: "arn", required: false, type: .string) + AWSShapeMember(label: "deviceUdid", required: false, type: .string), + AWSShapeMember(label: "billingMethod", required: false, type: .enum) ] - /// The billing method of the remote access session. Possible values include METERED or UNMETERED. For more information about metered devices, see AWS Device Farm terminology." - public let billingMethod: BillingMethod? - /// The status of the remote access session. Can be any of the following: PENDING: A pending status. PENDING_CONCURRENCY: A pending concurrency status. PENDING_DEVICE: A pending device status. PROCESSING: A processing status. SCHEDULING: A scheduling status. PREPARING: A preparing status. RUNNING: A running status. COMPLETED: A completed status. STOPPING: A stopping status. - public let status: ExecutionStatus? + /// This flag is set to true if remote debugging is enabled for the remote access session. + public let remoteDebugEnabled: Bool? /// The name of the remote access session. public let name: String? /// The endpoint for the remote access sesssion. public let endpoint: String? + /// Unique identifier of your client for the remote access session. Only returned if remote debugging is enabled for the remote access session. + public let clientId: String? + /// The device (phone or tablet) used in the remote access session. + public let device: Device? + /// The result of the remote access session. Can be any of the following: PENDING: A pending condition. PASSED: A passing condition. WARNED: A warning condition. FAILED: A failed condition. SKIPPED: A skipped condition. ERRORED: An error condition. STOPPED: A stopped condition. + public let result: ExecutionResult? + /// The Amazon Resource Name (ARN) of the remote access session. + public let arn: String? + /// The status of the remote access session. Can be any of the following: PENDING: A pending status. PENDING_CONCURRENCY: A pending concurrency status. PENDING_DEVICE: A pending device status. PROCESSING: A processing status. SCHEDULING: A scheduling status. PREPARING: A preparing status. RUNNING: A running status. COMPLETED: A completed status. STOPPING: A stopping status. + public let status: ExecutionStatus? /// The date and time the remote access session was created. public let created: TimeStamp? /// The date and time the remote access session was started. public let started: TimeStamp? + /// IP address of the EC2 host where you need to connect to remotely debug devices. Only returned if remote debugging is enabled for the remote access session. + public let hostAddress: String? /// The date and time the remote access session was stopped. public let stopped: TimeStamp? /// The number of minutes a device is used in a remote access sesssion (including setup and teardown minutes). public let deviceMinutes: DeviceMinutes? /// A message about the remote access session. public let message: String? - /// The device (phone or tablet) used in the remote access session. - public let device: Device? - /// The result of the remote access session. Can be any of the following: PENDING: A pending condition. PASSED: A passing condition. WARNED: A warning condition. FAILED: A failed condition. SKIPPED: A skipped condition. ERRORED: An error condition. STOPPED: A stopped condition. - public let result: ExecutionResult? - /// The Amazon Resource Name (ARN) of the remote access session. - public let arn: String? + /// Unique device identifier for the remote device. Only returned if remote debugging is enabled for the remote access session. + public let deviceUdid: String? + /// The billing method of the remote access session. Possible values include METERED or UNMETERED. For more information about metered devices, see AWS Device Farm terminology." + public let billingMethod: BillingMethod? - public init(billingMethod: BillingMethod? = nil, status: ExecutionStatus? = nil, name: String? = nil, endpoint: String? = nil, created: TimeStamp? = nil, started: TimeStamp? = nil, stopped: TimeStamp? = nil, deviceMinutes: DeviceMinutes? = nil, message: String? = nil, device: Device? = nil, result: ExecutionResult? = nil, arn: String? = nil) { - self.billingMethod = billingMethod - self.status = status + public init(remoteDebugEnabled: Bool? = nil, name: String? = nil, endpoint: String? = nil, clientId: String? = nil, device: Device? = nil, result: ExecutionResult? = nil, arn: String? = nil, status: ExecutionStatus? = nil, created: TimeStamp? = nil, started: TimeStamp? = nil, hostAddress: String? = nil, stopped: TimeStamp? = nil, deviceMinutes: DeviceMinutes? = nil, message: String? = nil, deviceUdid: String? = nil, billingMethod: BillingMethod? = nil) { + self.remoteDebugEnabled = remoteDebugEnabled self.name = name self.endpoint = endpoint + self.clientId = clientId + self.device = device + self.result = result + self.arn = arn + self.status = status self.created = created self.started = started + self.hostAddress = hostAddress self.stopped = stopped self.deviceMinutes = deviceMinutes self.message = message - self.device = device - self.result = result - self.arn = arn + self.deviceUdid = deviceUdid + self.billingMethod = billingMethod } private enum CodingKeys: String, CodingKey { - case billingMethod = "billingMethod" - case status = "status" + case remoteDebugEnabled = "remoteDebugEnabled" case name = "name" case endpoint = "endpoint" + case clientId = "clientId" + case device = "device" + case result = "result" + case arn = "arn" + case status = "status" case created = "created" case started = "started" + case hostAddress = "hostAddress" case stopped = "stopped" case deviceMinutes = "deviceMinutes" case message = "message" - case device = "device" - case result = "result" - case arn = "arn" + case deviceUdid = "deviceUdid" + case billingMethod = "billingMethod" } } public struct RecurringCharge: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "frequency", required: false, type: .enum), AWSShapeMember(label: "cost", required: false, type: .structure) ] @@ -628,7 +648,7 @@ extension Devicefarm { } public struct Suite: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "created", required: false, type: .timestamp), @@ -694,7 +714,7 @@ extension Devicefarm { } public struct DeleteUploadRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// Represents the Amazon Resource Name (ARN) of the Device Farm upload you wish to delete. @@ -710,7 +730,7 @@ extension Devicefarm { } public struct ListUniqueProblemsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) ] @@ -740,7 +760,7 @@ extension Devicefarm { } public struct ProblemDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "arn", required: false, type: .string) ] @@ -761,19 +781,22 @@ extension Devicefarm { } public struct ScheduleRunConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "extraDataPackageArn", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "customerArtifactPaths", required: false, type: .structure), AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "extraDataPackageArn", required: false, type: .string), AWSShapeMember(label: "networkProfileArn", required: false, type: .string), AWSShapeMember(label: "auxiliaryApps", required: false, type: .list), AWSShapeMember(label: "radios", required: false, type: .structure), AWSShapeMember(label: "locale", required: false, type: .string), AWSShapeMember(label: "billingMethod", required: false, type: .enum) ] - /// The ARN of the extra data for the run. The extra data is a .zip file that AWS Device Farm will extract to external data for Android or the app's sandbox for iOS. - public let extraDataPackageArn: String? + /// Input CustomerArtifactPaths object for the scheduled run configuration. + public let customerArtifactPaths: CustomerArtifactPaths? /// Information about the location that is used for the run. public let location: Location? + /// The ARN of the extra data for the run. The extra data is a .zip file that AWS Device Farm will extract to external data for Android or the app's sandbox for iOS. + public let extraDataPackageArn: String? /// Reserved for internal use. public let networkProfileArn: String? /// A list of auxiliary apps for the run. @@ -785,9 +808,10 @@ extension Devicefarm { /// Specifies the billing method for a test run: metered or unmetered. If the parameter is not specified, the default value is metered. public let billingMethod: BillingMethod? - public init(extraDataPackageArn: String? = nil, location: Location? = nil, networkProfileArn: String? = nil, auxiliaryApps: [String]? = nil, radios: Radios? = nil, locale: String? = nil, billingMethod: BillingMethod? = nil) { - self.extraDataPackageArn = extraDataPackageArn + public init(customerArtifactPaths: CustomerArtifactPaths? = nil, location: Location? = nil, extraDataPackageArn: String? = nil, networkProfileArn: String? = nil, auxiliaryApps: [String]? = nil, radios: Radios? = nil, locale: String? = nil, billingMethod: BillingMethod? = nil) { + self.customerArtifactPaths = customerArtifactPaths self.location = location + self.extraDataPackageArn = extraDataPackageArn self.networkProfileArn = networkProfileArn self.auxiliaryApps = auxiliaryApps self.radios = radios @@ -796,8 +820,9 @@ extension Devicefarm { } private enum CodingKeys: String, CodingKey { - case extraDataPackageArn = "extraDataPackageArn" + case customerArtifactPaths = "customerArtifactPaths" case location = "location" + case extraDataPackageArn = "extraDataPackageArn" case networkProfileArn = "networkProfileArn" case auxiliaryApps = "auxiliaryApps" case radios = "radios" @@ -807,7 +832,7 @@ extension Devicefarm { } public struct GetJobResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "job", required: false, type: .structure) ] /// An object containing information about the requested job. @@ -833,7 +858,7 @@ extension Devicefarm { } public struct ListOfferingsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "offerings", required: false, type: .list) ] @@ -854,7 +879,7 @@ extension Devicefarm { } public struct StopRunResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "run", required: false, type: .structure) ] /// The run that was stopped. @@ -870,7 +895,7 @@ extension Devicefarm { } public struct ScheduleRunRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "projectArn", required: true, type: .string), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "executionConfiguration", required: false, type: .structure), @@ -941,12 +966,13 @@ extension Devicefarm { case formFactor = "FORM_FACTOR" case manufacturer = "MANUFACTURER" case remoteAccessEnabled = "REMOTE_ACCESS_ENABLED" + case remoteDebugEnabled = "REMOTE_DEBUG_ENABLED" case appiumVersion = "APPIUM_VERSION" public var description: String { return self.rawValue } } public struct Artifact: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "extension", required: false, type: .string), @@ -982,7 +1008,7 @@ extension Devicefarm { } public struct CreateNetworkProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "networkProfile", required: false, type: .structure) ] /// The network profile that is returned by the create network profile request. @@ -998,7 +1024,7 @@ extension Devicefarm { } public struct DeleteNetworkProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the network profile you want to delete. @@ -1014,7 +1040,7 @@ extension Devicefarm { } public struct Project: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "created", required: false, type: .timestamp), AWSShapeMember(label: "defaultJobTimeoutMinutes", required: false, type: .integer), @@ -1045,7 +1071,7 @@ extension Devicefarm { } public struct ScheduleRunResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "run", required: false, type: .structure) ] /// Information about the scheduled run. @@ -1061,7 +1087,7 @@ extension Devicefarm { } public struct GetRunRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The run's ARN. @@ -1077,7 +1103,7 @@ extension Devicefarm { } public struct ListNetworkProfilesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "networkProfiles", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1098,7 +1124,7 @@ extension Devicefarm { } public struct ListSamplesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) ] @@ -1119,7 +1145,7 @@ extension Devicefarm { } public struct CreateProjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "defaultJobTimeoutMinutes", required: false, type: .integer) ] @@ -1140,7 +1166,7 @@ extension Devicefarm { } public struct GetRemoteAccessSessionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "remoteAccessSession", required: false, type: .structure) ] /// A container that lists detailed information about the remote access session. @@ -1156,7 +1182,7 @@ extension Devicefarm { } public struct UpdateDevicePoolResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "devicePool", required: false, type: .structure) ] /// The device pool you just updated. @@ -1172,7 +1198,7 @@ extension Devicefarm { } public struct PurchaseOfferingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "offeringPromotionId", required: false, type: .string), AWSShapeMember(label: "quantity", required: false, type: .integer), AWSShapeMember(label: "offeringId", required: false, type: .string) @@ -1230,11 +1256,13 @@ extension Devicefarm { case applicationCrashReport = "APPLICATION_CRASH_REPORT" case xctestLog = "XCTEST_LOG" case video = "VIDEO" + case customerArtifact = "CUSTOMER_ARTIFACT" + case customerArtifactLog = "CUSTOMER_ARTIFACT_LOG" public var description: String { return self.rawValue } } public struct StopRemoteAccessSessionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the remote access session you wish to stop. @@ -1257,7 +1285,7 @@ extension Devicefarm { } public struct CreateUploadResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "upload", required: false, type: .structure) ] /// The newly created upload. @@ -1273,7 +1301,7 @@ extension Devicefarm { } public struct UniqueProblem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "problems", required: false, type: .list), AWSShapeMember(label: "message", required: false, type: .string) ] @@ -1294,7 +1322,7 @@ extension Devicefarm { } public struct UpdateNetworkProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "networkProfile", required: false, type: .structure) ] /// A list of the available network profiles. @@ -1310,7 +1338,7 @@ extension Devicefarm { } public struct ListNetworkProfilesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) @@ -1336,7 +1364,7 @@ extension Devicefarm { } public struct GetJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The job's ARN. @@ -1352,7 +1380,7 @@ extension Devicefarm { } public struct ListRunsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "runs", required: false, type: .list) ] @@ -1373,7 +1401,7 @@ extension Devicefarm { } public struct ListTestsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tests", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1398,7 +1426,7 @@ extension Devicefarm { } public struct ListOfferingPromotionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "offeringPromotions", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1419,7 +1447,7 @@ extension Devicefarm { } public struct OfferingTransaction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "transactionId", required: false, type: .string), AWSShapeMember(label: "cost", required: false, type: .structure), AWSShapeMember(label: "createdOn", required: false, type: .timestamp), @@ -1460,7 +1488,7 @@ extension Devicefarm { } public struct ListOfferingPromotionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. @@ -1476,7 +1504,7 @@ extension Devicefarm { } public struct ListDevicesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "devices", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1497,7 +1525,7 @@ extension Devicefarm { } public struct ListUploadsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uploads", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1518,7 +1546,7 @@ extension Devicefarm { } public struct Offering: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "recurringCharges", required: false, type: .list), AWSShapeMember(label: "id", required: false, type: .string), @@ -1554,7 +1582,7 @@ extension Devicefarm { } public struct GetSuiteResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "suite", required: false, type: .structure) ] /// A collection of one or more tests. @@ -1570,7 +1598,7 @@ extension Devicefarm { } public struct GetSuiteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The suite's ARN. @@ -1586,7 +1614,7 @@ extension Devicefarm { } public struct GetUploadRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The upload's ARN. @@ -1601,8 +1629,34 @@ extension Devicefarm { } } + public struct CustomerArtifactPaths: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "deviceHostPaths", required: false, type: .list), + AWSShapeMember(label: "iosPaths", required: false, type: .list), + AWSShapeMember(label: "androidPaths", required: false, type: .list) + ] + /// Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests will be pulled from. + public let deviceHostPaths: [String]? + /// Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests will be pulled from. + public let iosPaths: [String]? + /// Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests will be pulled from. + public let androidPaths: [String]? + + public init(deviceHostPaths: [String]? = nil, iosPaths: [String]? = nil, androidPaths: [String]? = nil) { + self.deviceHostPaths = deviceHostPaths + self.iosPaths = iosPaths + self.androidPaths = androidPaths + } + + private enum CodingKeys: String, CodingKey { + case deviceHostPaths = "deviceHostPaths" + case iosPaths = "iosPaths" + case androidPaths = "androidPaths" + } + } + public struct Test: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "created", required: false, type: .timestamp), @@ -1667,8 +1721,34 @@ extension Devicefarm { } } + public struct GetOfferingStatusResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextPeriod", required: false, type: .map), + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "current", required: false, type: .map) + ] + /// When specified, gets the offering status for the next period. + public let nextPeriod: [String: OfferingStatus]? + /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + public let nextToken: String? + /// When specified, gets the offering status for the current period. + public let current: [String: OfferingStatus]? + + public init(nextPeriod: [String: OfferingStatus]? = nil, nextToken: String? = nil, current: [String: OfferingStatus]? = nil) { + self.nextPeriod = nextPeriod + self.nextToken = nextToken + self.current = current + } + + private enum CodingKeys: String, CodingKey { + case nextPeriod = "nextPeriod" + case nextToken = "nextToken" + case current = "current" + } + } + public struct DeleteRemoteAccessSessionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the sesssion for which you want to delete remote access. @@ -1683,29 +1763,19 @@ extension Devicefarm { } } - public struct GetOfferingStatusResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextPeriod", required: false, type: .map), - AWSShapeMember(label: "nextToken", required: false, type: .string), - AWSShapeMember(label: "current", required: false, type: .map) + public struct GetOfferingStatusRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string) ] - /// When specified, gets the offering status for the next period. - public let nextPeriod: [String: OfferingStatus]? /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. public let nextToken: String? - /// When specified, gets the offering status for the current period. - public let current: [String: OfferingStatus]? - public init(nextPeriod: [String: OfferingStatus]? = nil, nextToken: String? = nil, current: [String: OfferingStatus]? = nil) { - self.nextPeriod = nextPeriod + public init(nextToken: String? = nil) { self.nextToken = nextToken - self.current = current } private enum CodingKeys: String, CodingKey { - case nextPeriod = "nextPeriod" case nextToken = "nextToken" - case current = "current" } } @@ -1727,24 +1797,8 @@ extension Devicefarm { public var description: String { return self.rawValue } } - public struct GetOfferingStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextToken", required: false, type: .string) - ] - /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. - public let nextToken: String? - - public init(nextToken: String? = nil) { - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "nextToken" - } - } - public struct IncompatibilityMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "message", required: false, type: .string) ] @@ -1765,7 +1819,7 @@ extension Devicefarm { } public struct CreateUploadRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "contentType", required: false, type: .string), AWSShapeMember(label: "type", required: true, type: .enum), @@ -1796,7 +1850,7 @@ extension Devicefarm { } public struct UpdateProjectResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "project", required: false, type: .structure) ] /// The project you wish to update. @@ -1812,7 +1866,7 @@ extension Devicefarm { } public struct ScheduleRunTest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "filter", required: false, type: .string), AWSShapeMember(label: "type", required: true, type: .enum), AWSShapeMember(label: "testPackageArn", required: false, type: .string), @@ -1847,7 +1901,7 @@ extension Devicefarm { } public struct ListUploadsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) ] @@ -1868,7 +1922,7 @@ extension Devicefarm { } public struct CreateRemoteAccessSessionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "remoteAccessSession", required: false, type: .structure) ] /// A container that describes the remote access session when the request to create a remote access session is sent. @@ -1884,7 +1938,7 @@ extension Devicefarm { } public struct GetDeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The device type's ARN. @@ -1900,7 +1954,7 @@ extension Devicefarm { } public struct Radios: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "wifi", required: false, type: .boolean), AWSShapeMember(label: "bluetooth", required: false, type: .boolean), AWSShapeMember(label: "nfc", required: false, type: .boolean), @@ -1937,7 +1991,7 @@ extension Devicefarm { } public struct GetRunResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "run", required: false, type: .structure) ] /// The run you wish to get results from. @@ -1953,7 +2007,7 @@ extension Devicefarm { } public struct RenewOfferingResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "offeringTransaction", required: false, type: .structure) ] /// Represents the status of the offering transaction for the renewal. @@ -1975,7 +2029,7 @@ extension Devicefarm { } public struct DeleteDevicePoolRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// Represents the Amazon Resource Name (ARN) of the Device Farm device pool you wish to delete. @@ -1991,38 +2045,53 @@ extension Devicefarm { } public struct CreateRemoteAccessSessionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "name", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "sshPublicKey", required: false, type: .string), + AWSShapeMember(label: "remoteDebugEnabled", required: false, type: .boolean), AWSShapeMember(label: "deviceArn", required: true, type: .string), + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "clientId", required: false, type: .string), AWSShapeMember(label: "projectArn", required: true, type: .string), AWSShapeMember(label: "configuration", required: false, type: .structure) ] - /// The name of the remote access session that you wish to create. - public let name: String? + /// The public key of the ssh key pair you want to use for connecting to remote devices in your remote debugging session. This is only required if remoteDebugEnabled is set to true. + public let sshPublicKey: String? + /// Set to true if you want to access devices remotely for debugging in your remote access session. + public let remoteDebugEnabled: Bool? /// The Amazon Resource Name (ARN) of the device for which you want to create a remote access session. public let deviceArn: String + /// The name of the remote access session that you wish to create. + public let name: String? + /// Unique identifier for the client. If you want access to multiple devices on the same client, you should pass the same clientId value in each call to CreateRemoteAccessSession. This is required only if remoteDebugEnabled is set to true true. + public let clientId: String? /// The Amazon Resource Name (ARN) of the project for which you want to create a remote access session. public let projectArn: String /// The configuration information for the remote access session request. public let configuration: CreateRemoteAccessSessionConfiguration? - public init(name: String? = nil, deviceArn: String, projectArn: String, configuration: CreateRemoteAccessSessionConfiguration? = nil) { - self.name = name + public init(sshPublicKey: String? = nil, remoteDebugEnabled: Bool? = nil, deviceArn: String, name: String? = nil, clientId: String? = nil, projectArn: String, configuration: CreateRemoteAccessSessionConfiguration? = nil) { + self.sshPublicKey = sshPublicKey + self.remoteDebugEnabled = remoteDebugEnabled self.deviceArn = deviceArn + self.name = name + self.clientId = clientId self.projectArn = projectArn self.configuration = configuration } private enum CodingKeys: String, CodingKey { - case name = "name" + case sshPublicKey = "sshPublicKey" + case remoteDebugEnabled = "remoteDebugEnabled" case deviceArn = "deviceArn" + case name = "name" + case clientId = "clientId" case projectArn = "projectArn" case configuration = "configuration" } } public struct ListJobsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "jobs", required: false, type: .list) ] @@ -2043,7 +2112,7 @@ extension Devicefarm { } public struct ListSamplesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "samples", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -2064,7 +2133,7 @@ extension Devicefarm { } public struct CreateDevicePoolRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "rules", required: true, type: .list), @@ -2095,7 +2164,7 @@ extension Devicefarm { } public struct ListProjectsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "projects", required: false, type: .list) ] @@ -2116,7 +2185,7 @@ extension Devicefarm { } public struct OfferingStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "quantity", required: false, type: .integer), AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "effectiveOn", required: false, type: .timestamp), @@ -2147,7 +2216,7 @@ extension Devicefarm { } public struct ListDevicePoolsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) @@ -2173,7 +2242,7 @@ extension Devicefarm { } public struct ListJobsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) ] @@ -2194,12 +2263,15 @@ extension Devicefarm { } public struct Run: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "customerArtifactPaths", required: false, type: .structure), + AWSShapeMember(label: "resultCode", required: false, type: .enum), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "platform", required: false, type: .enum), AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "result", required: false, type: .enum), AWSShapeMember(label: "arn", required: false, type: .string), + AWSShapeMember(label: "parsingResultUrl", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "completedJobs", required: false, type: .integer), AWSShapeMember(label: "created", required: false, type: .timestamp), @@ -2212,6 +2284,10 @@ extension Devicefarm { AWSShapeMember(label: "counters", required: false, type: .structure), AWSShapeMember(label: "billingMethod", required: false, type: .enum) ] + /// Output CustomerArtifactPaths object for the test run. + public let customerArtifactPaths: CustomerArtifactPaths? + /// Supporting field for the result field. Set only if result is SKIPPED. PARSING_FAILED if the result is skipped because of test package parsing failure. + public let resultCode: ExecutionResultCode? /// The run's name. public let name: String? /// The run's platform. Allowed values include: ANDROID: The Android platform. IOS: The iOS platform. @@ -2222,6 +2298,8 @@ extension Devicefarm { public let result: ExecutionResult? /// The run's ARN. public let arn: String? + /// Read-only URL for an object in S3 bucket where you can get the parsing results of the test package. If the test package doesn't parse, the reason why it doesn't parse appears in the file that this URL points to. + public let parsingResultUrl: String? /// The run's status. Allowed values include: PENDING: A pending status. PENDING_CONCURRENCY: A pending concurrency status. PENDING_DEVICE: A pending device status. PROCESSING: A processing status. SCHEDULING: A scheduling status. PREPARING: A preparing status. RUNNING: A running status. COMPLETED: A completed status. STOPPING: A stopping status. public let status: ExecutionStatus? /// The total number of completed jobs. @@ -2245,12 +2323,15 @@ extension Devicefarm { /// Specifies the billing method for a test run: metered or unmetered. If the parameter is not specified, the default value is metered. public let billingMethod: BillingMethod? - public init(name: String? = nil, platform: DevicePlatform? = nil, type: TestType? = nil, result: ExecutionResult? = nil, arn: String? = nil, status: ExecutionStatus? = nil, completedJobs: Int32? = nil, created: TimeStamp? = nil, started: TimeStamp? = nil, totalJobs: Int32? = nil, stopped: TimeStamp? = nil, deviceMinutes: DeviceMinutes? = nil, message: String? = nil, networkProfile: NetworkProfile? = nil, counters: Counters? = nil, billingMethod: BillingMethod? = nil) { + public init(customerArtifactPaths: CustomerArtifactPaths? = nil, resultCode: ExecutionResultCode? = nil, name: String? = nil, platform: DevicePlatform? = nil, type: TestType? = nil, result: ExecutionResult? = nil, arn: String? = nil, parsingResultUrl: String? = nil, status: ExecutionStatus? = nil, completedJobs: Int32? = nil, created: TimeStamp? = nil, started: TimeStamp? = nil, totalJobs: Int32? = nil, stopped: TimeStamp? = nil, deviceMinutes: DeviceMinutes? = nil, message: String? = nil, networkProfile: NetworkProfile? = nil, counters: Counters? = nil, billingMethod: BillingMethod? = nil) { + self.customerArtifactPaths = customerArtifactPaths + self.resultCode = resultCode self.name = name self.platform = platform self.`type` = `type` self.result = result self.arn = arn + self.parsingResultUrl = parsingResultUrl self.status = status self.completedJobs = completedJobs self.created = created @@ -2265,11 +2346,14 @@ extension Devicefarm { } private enum CodingKeys: String, CodingKey { + case customerArtifactPaths = "customerArtifactPaths" + case resultCode = "resultCode" case name = "name" case platform = "platform" case `type` = "type" case result = "result" case arn = "arn" + case parsingResultUrl = "parsingResultUrl" case status = "status" case completedJobs = "completedJobs" case created = "created" @@ -2285,7 +2369,7 @@ extension Devicefarm { } public struct TrialMinutes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "total", required: false, type: .double), AWSShapeMember(label: "remaining", required: false, type: .double) ] @@ -2306,7 +2390,7 @@ extension Devicefarm { } public struct DevicePoolCompatibilityResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "device", required: false, type: .structure), AWSShapeMember(label: "compatible", required: false, type: .boolean), AWSShapeMember(label: "incompatibilityMessages", required: false, type: .list) @@ -2332,7 +2416,7 @@ extension Devicefarm { } public struct Upload: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "metadata", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "contentType", required: false, type: .string), @@ -2388,7 +2472,7 @@ extension Devicefarm { } public struct ListOfferingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. @@ -2412,7 +2496,7 @@ extension Devicefarm { } public struct ListDevicePoolsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "devicePools", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -2433,7 +2517,7 @@ extension Devicefarm { } public struct ListOfferingTransactionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "offeringTransactions", required: false, type: .list) ] @@ -2460,7 +2544,7 @@ extension Devicefarm { } public struct ListSuitesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) ] @@ -2481,7 +2565,7 @@ extension Devicefarm { } public struct CPU: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "frequency", required: false, type: .string), AWSShapeMember(label: "architecture", required: false, type: .string), AWSShapeMember(label: "clock", required: false, type: .double) @@ -2507,7 +2591,7 @@ extension Devicefarm { } public struct InstallToRemoteAccessSessionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "appUpload", required: false, type: .structure) ] /// An app to upload or that has been uploaded. @@ -2523,7 +2607,7 @@ extension Devicefarm { } public struct GetNetworkProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the network profile you want to return information about. @@ -2539,7 +2623,7 @@ extension Devicefarm { } public struct Counters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "warned", required: false, type: .integer), AWSShapeMember(label: "errored", required: false, type: .integer), AWSShapeMember(label: "failed", required: false, type: .integer), @@ -2589,7 +2673,7 @@ extension Devicefarm { } public struct DeviceMinutes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "total", required: false, type: .double), AWSShapeMember(label: "metered", required: false, type: .double), AWSShapeMember(label: "unmetered", required: false, type: .double) @@ -2615,7 +2699,7 @@ extension Devicefarm { } public struct ListRemoteAccessSessionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) ] @@ -2636,7 +2720,7 @@ extension Devicefarm { } public struct ListArtifactsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: true, type: .enum), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) @@ -2662,7 +2746,7 @@ extension Devicefarm { } public struct GetTestRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The test's ARN. @@ -2678,7 +2762,7 @@ extension Devicefarm { } public struct GetDeviceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "device", required: false, type: .structure) ] /// An object containing information about the requested device. @@ -2694,7 +2778,7 @@ extension Devicefarm { } public struct DeleteProjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// Represents the Amazon Resource Name (ARN) of the Device Farm project you wish to delete. @@ -2723,7 +2807,7 @@ extension Devicefarm { } public struct StopRunRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// Represents the Amazon Resource Name (ARN) of the Device Farm run you wish to stop. @@ -2744,7 +2828,7 @@ extension Devicefarm { } public struct OfferingPromotion: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "description", required: false, type: .string) ] @@ -2765,7 +2849,7 @@ extension Devicefarm { } public struct ListUniqueProblemsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uniqueProblems", required: false, type: .map), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -2792,7 +2876,7 @@ extension Devicefarm { } public struct Problem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "test", required: false, type: .structure), AWSShapeMember(label: "suite", required: false, type: .structure), AWSShapeMember(label: "job", required: false, type: .structure), @@ -2838,7 +2922,7 @@ extension Devicefarm { } public struct Sample: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "url", required: false, type: .string), AWSShapeMember(label: "arn", required: false, type: .string) @@ -2864,7 +2948,7 @@ extension Devicefarm { } public struct DeleteRunRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) for the run you wish to delete. @@ -2880,7 +2964,7 @@ extension Devicefarm { } public struct CreateDevicePoolResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "devicePool", required: false, type: .structure) ] /// The newly created device pool. @@ -2896,7 +2980,7 @@ extension Devicefarm { } public struct UpdateDevicePoolRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "rules", required: false, type: .list), @@ -2948,7 +3032,7 @@ extension Devicefarm { } public struct ListOfferingTransactionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. @@ -2964,7 +3048,7 @@ extension Devicefarm { } public struct AccountSettings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "trialMinutes", required: false, type: .structure), AWSShapeMember(label: "unmeteredDevices", required: false, type: .map), AWSShapeMember(label: "maxJobTimeoutMinutes", required: false, type: .integer), @@ -3010,7 +3094,7 @@ extension Devicefarm { } public struct StopRemoteAccessSessionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "remoteAccessSession", required: false, type: .structure) ] /// A container representing the metadata from the service about the remote access session you are stopping. @@ -3026,7 +3110,7 @@ extension Devicefarm { } public struct ListArtifactsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "artifacts", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -3047,7 +3131,7 @@ extension Devicefarm { } public struct GetNetworkProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "networkProfile", required: false, type: .structure) ] /// The network profile. @@ -3063,7 +3147,7 @@ extension Devicefarm { } public struct Location: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "longitude", required: true, type: .double), AWSShapeMember(label: "latitude", required: true, type: .double) ] @@ -3084,7 +3168,7 @@ extension Devicefarm { } public struct GetAccountSettingsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountSettings", required: false, type: .structure) ] /// The account settings. @@ -3099,39 +3183,8 @@ extension Devicefarm { } } - public struct GetDevicePoolCompatibilityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "testType", required: false, type: .enum), - AWSShapeMember(label: "test", required: false, type: .structure), - AWSShapeMember(label: "appArn", required: false, type: .string), - AWSShapeMember(label: "devicePoolArn", required: true, type: .string) - ] - /// The test type for the specified device pool. Allowed values include the following: BUILTIN_FUZZ: The built-in fuzz type. BUILTIN_EXPLORER: For Android, an app explorer that will traverse an Android app, interacting with it and capturing screenshots at the same time. APPIUM_JAVA_JUNIT: The Appium Java JUnit type. APPIUM_JAVA_TESTNG: The Appium Java TestNG type. APPIUM_PYTHON: The Appium Python type. APPIUM_WEB_JAVA_JUNIT: The Appium Java JUnit type for Web apps. APPIUM_WEB_JAVA_TESTNG: The Appium Java TestNG type for Web apps. APPIUM_WEB_PYTHON: The Appium Python type for Web apps. CALABASH: The Calabash type. INSTRUMENTATION: The Instrumentation type. UIAUTOMATION: The uiautomation type. UIAUTOMATOR: The uiautomator type. XCTEST: The XCode test type. XCTEST_UI: The XCode UI test type. - public let testType: TestType? - /// Information about the uploaded test to be run against the device pool. - public let test: ScheduleRunTest? - /// The ARN of the app that is associated with the specified device pool. - public let appArn: String? - /// The device pool's ARN. - public let devicePoolArn: String - - public init(testType: TestType? = nil, test: ScheduleRunTest? = nil, appArn: String? = nil, devicePoolArn: String) { - self.testType = testType - self.test = test - self.appArn = appArn - self.devicePoolArn = devicePoolArn - } - - private enum CodingKeys: String, CodingKey { - case testType = "testType" - case test = "test" - case appArn = "appArn" - case devicePoolArn = "devicePoolArn" - } - } - public struct Resolution: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "height", required: false, type: .integer), AWSShapeMember(label: "width", required: false, type: .integer) ] @@ -3152,7 +3205,7 @@ extension Devicefarm { } public struct RenewOfferingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "offeringId", required: false, type: .string), AWSShapeMember(label: "quantity", required: false, type: .integer) ] @@ -3172,8 +3225,40 @@ extension Devicefarm { } } + public struct GetDevicePoolCompatibilityRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "testType", required: false, type: .enum), + AWSShapeMember(label: "test", required: false, type: .structure), + AWSShapeMember(label: "appArn", required: false, type: .string), + AWSShapeMember(label: "devicePoolArn", required: true, type: .string) + ] + /// The test type for the specified device pool. Allowed values include the following: BUILTIN_FUZZ: The built-in fuzz type. BUILTIN_EXPLORER: For Android, an app explorer that will traverse an Android app, interacting with it and capturing screenshots at the same time. APPIUM_JAVA_JUNIT: The Appium Java JUnit type. APPIUM_JAVA_TESTNG: The Appium Java TestNG type. APPIUM_PYTHON: The Appium Python type. APPIUM_WEB_JAVA_JUNIT: The Appium Java JUnit type for Web apps. APPIUM_WEB_JAVA_TESTNG: The Appium Java TestNG type for Web apps. APPIUM_WEB_PYTHON: The Appium Python type for Web apps. CALABASH: The Calabash type. INSTRUMENTATION: The Instrumentation type. UIAUTOMATION: The uiautomation type. UIAUTOMATOR: The uiautomator type. XCTEST: The XCode test type. XCTEST_UI: The XCode UI test type. + public let testType: TestType? + /// Information about the uploaded test to be run against the device pool. + public let test: ScheduleRunTest? + /// The ARN of the app that is associated with the specified device pool. + public let appArn: String? + /// The device pool's ARN. + public let devicePoolArn: String + + public init(testType: TestType? = nil, test: ScheduleRunTest? = nil, appArn: String? = nil, devicePoolArn: String) { + self.testType = testType + self.test = test + self.appArn = appArn + self.devicePoolArn = devicePoolArn + } + + private enum CodingKeys: String, CodingKey { + case testType = "testType" + case test = "test" + case appArn = "appArn" + case devicePoolArn = "devicePoolArn" + } + } + public struct Device: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "remoteDebugEnabled", required: false, type: .boolean), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "cpu", required: false, type: .structure), AWSShapeMember(label: "platform", required: false, type: .enum), @@ -3192,6 +3277,8 @@ extension Devicefarm { AWSShapeMember(label: "manufacturer", required: false, type: .string), AWSShapeMember(label: "carrier", required: false, type: .string) ] + /// This flag is set to true if remote debugging is enabled for the device. + public let remoteDebugEnabled: Bool? /// The device's display name. public let name: String? /// Information about the device's CPU. @@ -3227,7 +3314,8 @@ extension Devicefarm { /// The device's carrier. public let carrier: String? - public init(name: String? = nil, cpu: CPU? = nil, platform: DevicePlatform? = nil, heapSize: Int64? = nil, model: String? = nil, radio: String? = nil, arn: String? = nil, memory: Int64? = nil, resolution: Resolution? = nil, os: String? = nil, image: String? = nil, remoteAccessEnabled: Bool? = nil, formFactor: DeviceFormFactor? = nil, fleetType: String? = nil, fleetName: String? = nil, manufacturer: String? = nil, carrier: String? = nil) { + public init(remoteDebugEnabled: Bool? = nil, name: String? = nil, cpu: CPU? = nil, platform: DevicePlatform? = nil, heapSize: Int64? = nil, model: String? = nil, radio: String? = nil, arn: String? = nil, memory: Int64? = nil, resolution: Resolution? = nil, os: String? = nil, image: String? = nil, remoteAccessEnabled: Bool? = nil, formFactor: DeviceFormFactor? = nil, fleetType: String? = nil, fleetName: String? = nil, manufacturer: String? = nil, carrier: String? = nil) { + self.remoteDebugEnabled = remoteDebugEnabled self.name = name self.cpu = cpu self.platform = platform @@ -3248,6 +3336,7 @@ extension Devicefarm { } private enum CodingKeys: String, CodingKey { + case remoteDebugEnabled = "remoteDebugEnabled" case name = "name" case cpu = "cpu" case platform = "platform" @@ -3269,7 +3358,7 @@ extension Devicefarm { } public struct ListRunsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: true, type: .string) ] @@ -3290,7 +3379,7 @@ extension Devicefarm { } public struct Job: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "device", required: false, type: .structure), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "name", required: false, type: .string), @@ -3361,7 +3450,7 @@ extension Devicefarm { } public struct GetProjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The project's ARN. @@ -3377,7 +3466,7 @@ extension Devicefarm { } public struct ListProjectsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "arn", required: false, type: .string) ] @@ -3398,7 +3487,7 @@ extension Devicefarm { } public struct UpdateProjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "defaultJobTimeoutMinutes", required: false, type: .integer), AWSShapeMember(label: "arn", required: true, type: .string) @@ -3440,8 +3529,13 @@ extension Devicefarm { public var description: String { return self.rawValue } } + public enum ExecutionResultCode: String, CustomStringConvertible, Codable { + case parsingFailed = "PARSING_FAILED" + public var description: String { return self.rawValue } + } + public struct InstallToRemoteAccessSessionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "appArn", required: true, type: .string), AWSShapeMember(label: "remoteAccessSessionArn", required: true, type: .string) ] @@ -3462,7 +3556,7 @@ extension Devicefarm { } public struct GetDevicePoolCompatibilityResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "incompatibleDevices", required: false, type: .list), AWSShapeMember(label: "compatibleDevices", required: false, type: .list) ] @@ -3483,7 +3577,7 @@ extension Devicefarm { } public struct GetRemoteAccessSessionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "arn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the remote access session about which you want to get session information. @@ -3499,7 +3593,7 @@ extension Devicefarm { } public struct GetProjectResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "project", required: false, type: .structure) ] /// The project you wish to get information about. diff --git a/Sources/AWSSDKSwift/Services/directconnect/Directconnect_API.swift b/Sources/AWSSDKSwift/Services/directconnect/Directconnect_API.swift index ba211c55d4d..be8fc5f21e5 100644 --- a/Sources/AWSSDKSwift/Services/directconnect/Directconnect_API.swift +++ b/Sources/AWSSDKSwift/Services/directconnect/Directconnect_API.swift @@ -25,6 +25,11 @@ public struct Directconnect { ) } + /// Creates a new connection between the customer network and a specific AWS Direct Connect location. A connection links your internal network to an AWS Direct Connect location over a standard 1 gigabit or 10 gigabit Ethernet fiber-optic cable. One end of the cable is connected to your router, the other to an AWS Direct Connect router. An AWS Direct Connect location provides access to Amazon Web Services in the region it is associated with. You can establish connections with AWS Direct Connect locations in multiple regions, but a connection in one region does not provide connectivity to other regions. To find the locations for your region, use DescribeLocations. You can automatically add the new connection to a link aggregation group (LAG) by specifying a LAG ID in the request. This ensures that the new connection is allocated on the same AWS Direct Connect endpoint that hosts the specified LAG. If there are no available ports on the endpoint, the request fails and no connection will be created. + public func createConnection(_ input: CreateConnectionRequest) throws -> Connection { + return try client.send(operation: "CreateConnection", path: "/", httpMethod: "POST", input: input) + } + /// Deletes a BGP peer on the specified virtual interface that matches the specified customer address and ASN. You cannot delete the last BGP peer from a virtual interface. public func deleteBGPPeer(_ input: DeleteBGPPeerRequest) throws -> DeleteBGPPeerResponse { return try client.send(operation: "DeleteBGPPeer", path: "/", httpMethod: "POST", input: input) @@ -40,6 +45,11 @@ public struct Directconnect { return try client.send(operation: "DescribeConnections", path: "/", httpMethod: "POST", input: input) } + /// Creates an association between a direct connect gateway and a virtual private gateway (VGW). The VGW must be attached to a VPC and must not be associated with another direct connect gateway. + public func createDirectConnectGatewayAssociation(_ input: CreateDirectConnectGatewayAssociationRequest) throws -> CreateDirectConnectGatewayAssociationResult { + return try client.send(operation: "CreateDirectConnectGatewayAssociation", path: "/", httpMethod: "POST", input: input) + } + /// Creates a new BGP peer on a specified virtual interface. The BGP peer cannot be in the same address family (IPv4/IPv6) of an existing BGP peer on the virtual interface. You must create a BGP peer for the corresponding address family in order to access AWS resources that also use that address family. When creating a IPv6 BGP peer, the Amazon address and customer address fields must be left blank. IPv6 addresses are automatically assigned from Amazon's pool of IPv6 addresses; you cannot specify custom IPv6 addresses. For a public virtual interface, the Autonomous System Number (ASN) must be private or already whitelisted for the virtual interface. public func createBGPPeer(_ input: CreateBGPPeerRequest) throws -> CreateBGPPeerResponse { return try client.send(operation: "CreateBGPPeer", path: "/", httpMethod: "POST", input: input) @@ -60,16 +70,16 @@ public struct Directconnect { return try client.send(operation: "DescribeLags", path: "/", httpMethod: "POST", input: input) } - /// Creates a new public virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A public virtual interface supports sending traffic to public services of AWS such as Amazon Simple Storage Service (Amazon S3). When creating an IPv6 public virtual interface (addressFamily is 'ipv6'), the customer and amazon address fields should be left blank to use auto-assigned IPv6 space. Custom IPv6 Addresses are currently not supported. - public func createPublicVirtualInterface(_ input: CreatePublicVirtualInterfaceRequest) throws -> VirtualInterface { - return try client.send(operation: "CreatePublicVirtualInterface", path: "/", httpMethod: "POST", input: input) - } - /// Creates a new private virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A private virtual interface supports sending traffic to a single virtual private cloud (VPC). public func createPrivateVirtualInterface(_ input: CreatePrivateVirtualInterfaceRequest) throws -> VirtualInterface { return try client.send(operation: "CreatePrivateVirtualInterface", path: "/", httpMethod: "POST", input: input) } + /// Creates a new public virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A public virtual interface supports sending traffic to public services of AWS such as Amazon Simple Storage Service (Amazon S3). When creating an IPv6 public virtual interface (addressFamily is 'ipv6'), the customer and amazon address fields should be left blank to use auto-assigned IPv6 space. Custom IPv6 Addresses are currently not supported. + public func createPublicVirtualInterface(_ input: CreatePublicVirtualInterfaceRequest) throws -> VirtualInterface { + return try client.send(operation: "CreatePublicVirtualInterface", path: "/", httpMethod: "POST", input: input) + } + /// Confirm the creation of a hosted connection on an interconnect. Upon creation, the hosted connection is initially in the 'Ordering' state, and will remain in this state until the owner calls ConfirmConnection to confirm creation of the hosted connection. public func confirmConnection(_ input: ConfirmConnectionRequest) throws -> ConfirmConnectionResponse { return try client.send(operation: "ConfirmConnection", path: "/", httpMethod: "POST", input: input) @@ -100,7 +110,7 @@ public struct Directconnect { return try client.send(operation: "DescribeInterconnects", path: "/", httpMethod: "POST", input: input) } - /// Associates a virtual interface with a specified link aggregation group (LAG) or connection. Connectivity to AWS is temporarily interrupted as the virtual interface is being migrated. If the target connection or LAG has an associated virtual interface with a conflicting VLAN number or a conflicting IP address, the operation fails. Virtual interfaces associated with a hosted connection cannot be associated with a LAG; hosted connections must be migrated along with their virtual interfaces using AssociateHostedConnection. Hosted virtual interfaces (an interface for which the owner of the connection is not the owner of physical connection) can only be reassociated by the owner of the physical connection. + /// Associates a virtual interface with a specified link aggregation group (LAG) or connection. Connectivity to AWS is temporarily interrupted as the virtual interface is being migrated. If the target connection or LAG has an associated virtual interface with a conflicting VLAN number or a conflicting IP address, the operation fails. Virtual interfaces associated with a hosted connection cannot be associated with a LAG; hosted connections must be migrated along with their virtual interfaces using AssociateHostedConnection. In order to reassociate a virtual interface to a new connection or LAG, the requester must own either the virtual interface itself or the connection to which the virtual interface is currently associated. Additionally, the requester must own the connection or LAG to which the virtual interface will be newly associated. public func associateVirtualInterface(_ input: AssociateVirtualInterfaceRequest) throws -> VirtualInterface { return try client.send(operation: "AssociateVirtualInterface", path: "/", httpMethod: "POST", input: input) } @@ -110,9 +120,14 @@ public struct Directconnect { return try client.send(operation: "AllocatePublicVirtualInterface", path: "/", httpMethod: "POST", input: input) } - /// Deprecated in favor of DescribeLoa. Returns the LOA-CFA for a Connection. The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that your APN partner or service provider uses when establishing your cross connect to AWS at the colocation facility. For more information, see Requesting Cross Connects at AWS Direct Connect Locations in the AWS Direct Connect user guide. - public func describeConnectionLoa(_ input: DescribeConnectionLoaRequest) throws -> DescribeConnectionLoaResponse { - return try client.send(operation: "DescribeConnectionLoa", path: "/", httpMethod: "POST", input: input) + /// Returns a list of direct connect gateways in your account. Deleted direct connect gateways are not returned. You can provide a direct connect gateway ID in the request to return information about the specific direct connect gateway only. Otherwise, if a direct connect gateway ID is not provided, information about all of your direct connect gateways is returned. + public func describeDirectConnectGateways(_ input: DescribeDirectConnectGatewaysRequest) throws -> DescribeDirectConnectGatewaysResult { + return try client.send(operation: "DescribeDirectConnectGateways", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the association between a direct connect gateway and a virtual private gateway. + public func deleteDirectConnectGatewayAssociation(_ input: DeleteDirectConnectGatewayAssociationRequest) throws -> DeleteDirectConnectGatewayAssociationResult { + return try client.send(operation: "DeleteDirectConnectGatewayAssociation", path: "/", httpMethod: "POST", input: input) } /// Accept ownership of a public virtual interface created by another customer. After the virtual interface owner calls this function, the specified virtual interface will be created and made available for handling traffic. @@ -130,6 +145,26 @@ public struct Directconnect { return try client.send(operation: "DescribeInterconnectLoa", path: "/", httpMethod: "POST", input: input) } + /// Returns a list of all direct connect gateway and virtual interface (VIF) attachments. Either a direct connect gateway ID or a VIF ID must be provided in the request. If a direct connect gateway ID is provided, the response returns all VIFs attached to the direct connect gateway. If a VIF ID is provided, the response returns all direct connect gateways attached to the VIF. If both are provided, the response only returns the attachment that matches both the direct connect gateway and the VIF. + public func describeDirectConnectGatewayAttachments(_ input: DescribeDirectConnectGatewayAttachmentsRequest) throws -> DescribeDirectConnectGatewayAttachmentsResult { + return try client.send(operation: "DescribeDirectConnectGatewayAttachments", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a direct connect gateway. You must first delete all virtual interfaces that are attached to the direct connect gateway and disassociate all virtual private gateways that are associated with the direct connect gateway. + public func deleteDirectConnectGateway(_ input: DeleteDirectConnectGatewayRequest) throws -> DeleteDirectConnectGatewayResult { + return try client.send(operation: "DeleteDirectConnectGateway", path: "/", httpMethod: "POST", input: input) + } + + /// Deprecated in favor of DescribeLoa. Returns the LOA-CFA for a Connection. The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that your APN partner or service provider uses when establishing your cross connect to AWS at the colocation facility. For more information, see Requesting Cross Connects at AWS Direct Connect Locations in the AWS Direct Connect user guide. + public func describeConnectionLoa(_ input: DescribeConnectionLoaRequest) throws -> DescribeConnectionLoaResponse { + return try client.send(operation: "DescribeConnectionLoa", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new direct connect gateway. A direct connect gateway is an intermediate object that enables you to connect a set of virtual interfaces and virtual private gateways. direct connect gateways are global and visible in any AWS region after they are created. The virtual interfaces and virtual private gateways that are connected through a direct connect gateway can be in different regions. This enables you to connect to a VPC in any region, regardless of the region in which the virtual interfaces are located, and pass traffic between them. + public func createDirectConnectGateway(_ input: CreateDirectConnectGatewayRequest) throws -> CreateDirectConnectGatewayResult { + return try client.send(operation: "CreateDirectConnectGateway", path: "/", httpMethod: "POST", input: input) + } + /// Returns the list of AWS Direct Connect locations in the current AWS region. These are the locations that may be selected when calling CreateConnection or CreateInterconnect. public func describeLocations() throws -> Locations { return try client.send(operation: "DescribeLocations", path: "/", httpMethod: "POST") @@ -195,7 +230,7 @@ public struct Directconnect { return try client.send(operation: "DeleteInterconnect", path: "/", httpMethod: "POST", input: input) } - /// Accept ownership of a private virtual interface created by another customer. After the virtual interface owner calls this function, the virtual interface will be created and attached to the given virtual private gateway, and will be available for handling traffic. + /// Accept ownership of a private virtual interface created by another customer. After the virtual interface owner calls this function, the virtual interface will be created and attached to the given virtual private gateway or direct connect gateway, and will be available for handling traffic. public func confirmPrivateVirtualInterface(_ input: ConfirmPrivateVirtualInterfaceRequest) throws -> ConfirmPrivateVirtualInterfaceResponse { return try client.send(operation: "ConfirmPrivateVirtualInterface", path: "/", httpMethod: "POST", input: input) } @@ -205,9 +240,9 @@ public struct Directconnect { return try client.send(operation: "AssociateConnectionWithLag", path: "/", httpMethod: "POST", input: input) } - /// Creates a new connection between the customer network and a specific AWS Direct Connect location. A connection links your internal network to an AWS Direct Connect location over a standard 1 gigabit or 10 gigabit Ethernet fiber-optic cable. One end of the cable is connected to your router, the other to an AWS Direct Connect router. An AWS Direct Connect location provides access to Amazon Web Services in the region it is associated with. You can establish connections with AWS Direct Connect locations in multiple regions, but a connection in one region does not provide connectivity to other regions. You can automatically add the new connection to a link aggregation group (LAG) by specifying a LAG ID in the request. This ensures that the new connection is allocated on the same AWS Direct Connect endpoint that hosts the specified LAG. If there are no available ports on the endpoint, the request fails and no connection will be created. - public func createConnection(_ input: CreateConnectionRequest) throws -> Connection { - return try client.send(operation: "CreateConnection", path: "/", httpMethod: "POST", input: input) + /// Returns a list of all direct connect gateway and virtual private gateway (VGW) associations. Either a direct connect gateway ID or a VGW ID must be provided in the request. If a direct connect gateway ID is provided, the response returns all VGWs associated with the direct connect gateway. If a VGW ID is provided, the response returns all direct connect gateways associated with the VGW. If both are provided, the response only returns the association that matches both the direct connect gateway and the VGW. + public func describeDirectConnectGatewayAssociations(_ input: DescribeDirectConnectGatewayAssociationsRequest) throws -> DescribeDirectConnectGatewayAssociationsResult { + return try client.send(operation: "DescribeDirectConnectGatewayAssociations", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/directconnect/Directconnect_Shapes.swift b/Sources/AWSSDKSwift/Services/directconnect/Directconnect_Shapes.swift index cfcf16d2328..c932228c94f 100644 --- a/Sources/AWSSDKSwift/Services/directconnect/Directconnect_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/directconnect/Directconnect_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Directconnect { public struct CreateLagRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "location", required: true, type: .string), AWSShapeMember(label: "connectionsBandwidth", required: true, type: .string), AWSShapeMember(label: "connectionId", required: false, type: .string), @@ -41,8 +41,29 @@ extension Directconnect { } } + public struct CreateDirectConnectGatewayAssociationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayId", required: true, type: .string), + AWSShapeMember(label: "virtualGatewayId", required: true, type: .string) + ] + /// The ID of the direct connect gateway. Example: "abcd1234-dcba-5678-be23-cdef9876ab45" Default: None + public let directConnectGatewayId: String + /// The ID of the virtual private gateway. Example: "vgw-abc123ef" Default: None + public let virtualGatewayId: String + + public init(directConnectGatewayId: String, virtualGatewayId: String) { + self.directConnectGatewayId = directConnectGatewayId + self.virtualGatewayId = virtualGatewayId + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayId = "directConnectGatewayId" + case virtualGatewayId = "virtualGatewayId" + } + } + public struct DescribeTagsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceTags", required: false, type: .list) ] /// Information about the tags. @@ -58,7 +79,7 @@ extension Directconnect { } public struct VirtualGateways: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualGateways", required: false, type: .list) ] /// A list of virtual private gateways. @@ -74,7 +95,7 @@ extension Directconnect { } public struct TagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceArn", required: true, type: .string), AWSShapeMember(label: "tags", required: true, type: .list) ] @@ -95,7 +116,7 @@ extension Directconnect { } public struct AllocateHostedConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ownerAccount", required: true, type: .string), AWSShapeMember(label: "connectionName", required: true, type: .string), AWSShapeMember(label: "connectionId", required: true, type: .string), @@ -130,8 +151,29 @@ extension Directconnect { } } + public struct DeleteDirectConnectGatewayAssociationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayId", required: true, type: .string), + AWSShapeMember(label: "virtualGatewayId", required: true, type: .string) + ] + /// The ID of the direct connect gateway. Example: "abcd1234-dcba-5678-be23-cdef9876ab45" Default: None + public let directConnectGatewayId: String + /// The ID of the virtual private gateway. Example: "vgw-abc123ef" Default: None + public let virtualGatewayId: String + + public init(directConnectGatewayId: String, virtualGatewayId: String) { + self.directConnectGatewayId = directConnectGatewayId + self.virtualGatewayId = virtualGatewayId + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayId = "directConnectGatewayId" + case virtualGatewayId = "virtualGatewayId" + } + } + public struct Lag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "connections", required: false, type: .list), AWSShapeMember(label: "location", required: false, type: .string), AWSShapeMember(label: "lagId", required: false, type: .string), @@ -198,7 +240,7 @@ extension Directconnect { } public struct DeleteVirtualInterfaceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterfaceState", required: false, type: .enum) ] public let virtualInterfaceState: VirtualInterfaceState? @@ -213,7 +255,7 @@ extension Directconnect { } public struct AssociateVirtualInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterfaceId", required: true, type: .string), AWSShapeMember(label: "connectionId", required: true, type: .string) ] @@ -243,7 +285,7 @@ extension Directconnect { } public struct CreateBGPPeerResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterface", required: false, type: .structure) ] public let virtualInterface: VirtualInterface? @@ -257,8 +299,24 @@ extension Directconnect { } } + public struct DeleteDirectConnectGatewayAssociationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayAssociation", required: false, type: .structure) + ] + /// The direct connect gateway association to be deleted. + public let directConnectGatewayAssociation: DirectConnectGatewayAssociation? + + public init(directConnectGatewayAssociation: DirectConnectGatewayAssociation? = nil) { + self.directConnectGatewayAssociation = directConnectGatewayAssociation + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayAssociation = "directConnectGatewayAssociation" + } + } + public struct DescribeLagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lagId", required: false, type: .string) ] /// The ID of the LAG. Example: dxlag-abc123 Default: None @@ -274,7 +332,7 @@ extension Directconnect { } public struct DescribeTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceArns", required: true, type: .list) ] /// The Amazon Resource Names (ARNs) of the Direct Connect resources. @@ -290,7 +348,7 @@ extension Directconnect { } public struct DescribeConnectionLoaResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "loa", required: false, type: .structure) ] public let loa: Loa? @@ -315,7 +373,7 @@ extension Directconnect { } public struct NewPublicVirtualInterfaceAllocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "customerAddress", required: false, type: .string), AWSShapeMember(label: "virtualInterfaceName", required: true, type: .string), AWSShapeMember(label: "authKey", required: false, type: .string), @@ -368,7 +426,7 @@ extension Directconnect { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .string), AWSShapeMember(label: "value", required: false, type: .string) ] @@ -389,7 +447,7 @@ extension Directconnect { } public struct CreatePrivateVirtualInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "connectionId", required: true, type: .string), AWSShapeMember(label: "newPrivateVirtualInterface", required: true, type: .structure) ] @@ -409,7 +467,7 @@ extension Directconnect { } public struct AssociateHostedConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "connectionId", required: true, type: .string), AWSShapeMember(label: "parentConnectionId", required: true, type: .string) ] @@ -430,7 +488,7 @@ extension Directconnect { } public struct DeleteInterconnectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "interconnectId", required: true, type: .string) ] public let interconnectId: String @@ -445,7 +503,7 @@ extension Directconnect { } public struct DescribeInterconnectLoaRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "providerName", required: false, type: .string), AWSShapeMember(label: "loaContentType", required: false, type: .enum), AWSShapeMember(label: "interconnectId", required: true, type: .string) @@ -468,67 +526,8 @@ extension Directconnect { } } - public struct NewPublicVirtualInterface: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "customerAddress", required: false, type: .string), - AWSShapeMember(label: "virtualInterfaceName", required: true, type: .string), - AWSShapeMember(label: "authKey", required: false, type: .string), - AWSShapeMember(label: "amazonAddress", required: false, type: .string), - AWSShapeMember(label: "asn", required: true, type: .integer), - AWSShapeMember(label: "addressFamily", required: false, type: .enum), - AWSShapeMember(label: "routeFilterPrefixes", required: false, type: .list), - AWSShapeMember(label: "vlan", required: true, type: .integer) - ] - public let customerAddress: String? - public let virtualInterfaceName: String - public let authKey: String? - public let amazonAddress: String? - public let asn: Int32 - public let addressFamily: AddressFamily? - public let routeFilterPrefixes: [RouteFilterPrefix]? - public let vlan: Int32 - - public init(customerAddress: String? = nil, virtualInterfaceName: String, authKey: String? = nil, amazonAddress: String? = nil, asn: Int32, addressFamily: AddressFamily? = nil, routeFilterPrefixes: [RouteFilterPrefix]? = nil, vlan: Int32) { - self.customerAddress = customerAddress - self.virtualInterfaceName = virtualInterfaceName - self.authKey = authKey - self.amazonAddress = amazonAddress - self.asn = asn - self.addressFamily = addressFamily - self.routeFilterPrefixes = routeFilterPrefixes - self.vlan = vlan - } - - private enum CodingKeys: String, CodingKey { - case customerAddress = "customerAddress" - case virtualInterfaceName = "virtualInterfaceName" - case authKey = "authKey" - case amazonAddress = "amazonAddress" - case asn = "asn" - case addressFamily = "addressFamily" - case routeFilterPrefixes = "routeFilterPrefixes" - case vlan = "vlan" - } - } - - public struct Interconnects: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "interconnects", required: false, type: .list) - ] - /// A list of interconnects. - public let interconnects: [Interconnect]? - - public init(interconnects: [Interconnect]? = nil) { - self.interconnects = interconnects - } - - private enum CodingKeys: String, CodingKey { - case interconnects = "interconnects" - } - } - public struct AllocatePrivateVirtualInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "connectionId", required: true, type: .string), AWSShapeMember(label: "newPrivateVirtualInterfaceAllocation", required: true, type: .structure), AWSShapeMember(label: "ownerAccount", required: true, type: .string) @@ -554,7 +553,7 @@ extension Directconnect { } public struct DeleteLagRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lagId", required: true, type: .string) ] /// The ID of the LAG to delete. Example: dxlag-abc123 Default: None @@ -569,41 +568,62 @@ extension Directconnect { } } - public struct UpdateLagRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "minimumLinks", required: false, type: .integer), - AWSShapeMember(label: "lagId", required: true, type: .string), - AWSShapeMember(label: "lagName", required: false, type: .string) + public struct NewPrivateVirtualInterface: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "customerAddress", required: false, type: .string), + AWSShapeMember(label: "virtualInterfaceName", required: true, type: .string), + AWSShapeMember(label: "authKey", required: false, type: .string), + AWSShapeMember(label: "amazonAddress", required: false, type: .string), + AWSShapeMember(label: "directConnectGatewayId", required: false, type: .string), + AWSShapeMember(label: "addressFamily", required: false, type: .enum), + AWSShapeMember(label: "virtualGatewayId", required: false, type: .string), + AWSShapeMember(label: "asn", required: true, type: .integer), + AWSShapeMember(label: "vlan", required: true, type: .integer) ] - /// The minimum number of physical connections that must be operational for the LAG itself to be operational. Default: None - public let minimumLinks: Int32? - /// The ID of the LAG to update. Example: dxlag-abc123 Default: None - public let lagId: String - /// The name for the LAG. Example: "3x10G LAG to AWS" Default: None - public let lagName: String? + public let customerAddress: String? + public let virtualInterfaceName: String + public let authKey: String? + public let amazonAddress: String? + public let directConnectGatewayId: String? + public let addressFamily: AddressFamily? + public let virtualGatewayId: String? + public let asn: Int32 + public let vlan: Int32 - public init(minimumLinks: Int32? = nil, lagId: String, lagName: String? = nil) { - self.minimumLinks = minimumLinks - self.lagId = lagId - self.lagName = lagName + public init(customerAddress: String? = nil, virtualInterfaceName: String, authKey: String? = nil, amazonAddress: String? = nil, directConnectGatewayId: String? = nil, addressFamily: AddressFamily? = nil, virtualGatewayId: String? = nil, asn: Int32, vlan: Int32) { + self.customerAddress = customerAddress + self.virtualInterfaceName = virtualInterfaceName + self.authKey = authKey + self.amazonAddress = amazonAddress + self.directConnectGatewayId = directConnectGatewayId + self.addressFamily = addressFamily + self.virtualGatewayId = virtualGatewayId + self.asn = asn + self.vlan = vlan } private enum CodingKeys: String, CodingKey { - case minimumLinks = "minimumLinks" - case lagId = "lagId" - case lagName = "lagName" + case customerAddress = "customerAddress" + case virtualInterfaceName = "virtualInterfaceName" + case authKey = "authKey" + case amazonAddress = "amazonAddress" + case directConnectGatewayId = "directConnectGatewayId" + case addressFamily = "addressFamily" + case virtualGatewayId = "virtualGatewayId" + case asn = "asn" + case vlan = "vlan" } } - public struct NewPrivateVirtualInterface: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct NewPublicVirtualInterface: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "customerAddress", required: false, type: .string), AWSShapeMember(label: "virtualInterfaceName", required: true, type: .string), AWSShapeMember(label: "authKey", required: false, type: .string), AWSShapeMember(label: "amazonAddress", required: false, type: .string), AWSShapeMember(label: "asn", required: true, type: .integer), AWSShapeMember(label: "addressFamily", required: false, type: .enum), - AWSShapeMember(label: "virtualGatewayId", required: true, type: .string), + AWSShapeMember(label: "routeFilterPrefixes", required: false, type: .list), AWSShapeMember(label: "vlan", required: true, type: .integer) ] public let customerAddress: String? @@ -612,17 +632,17 @@ extension Directconnect { public let amazonAddress: String? public let asn: Int32 public let addressFamily: AddressFamily? - public let virtualGatewayId: String + public let routeFilterPrefixes: [RouteFilterPrefix]? public let vlan: Int32 - public init(customerAddress: String? = nil, virtualInterfaceName: String, authKey: String? = nil, amazonAddress: String? = nil, asn: Int32, addressFamily: AddressFamily? = nil, virtualGatewayId: String, vlan: Int32) { + public init(customerAddress: String? = nil, virtualInterfaceName: String, authKey: String? = nil, amazonAddress: String? = nil, asn: Int32, addressFamily: AddressFamily? = nil, routeFilterPrefixes: [RouteFilterPrefix]? = nil, vlan: Int32) { self.customerAddress = customerAddress self.virtualInterfaceName = virtualInterfaceName self.authKey = authKey self.amazonAddress = amazonAddress self.asn = asn self.addressFamily = addressFamily - self.virtualGatewayId = virtualGatewayId + self.routeFilterPrefixes = routeFilterPrefixes self.vlan = vlan } @@ -633,44 +653,71 @@ extension Directconnect { case amazonAddress = "amazonAddress" case asn = "asn" case addressFamily = "addressFamily" - case virtualGatewayId = "virtualGatewayId" + case routeFilterPrefixes = "routeFilterPrefixes" case vlan = "vlan" } } - public struct DescribeHostedConnectionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "connectionId", required: true, type: .string) + public struct UpdateLagRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "minimumLinks", required: false, type: .integer), + AWSShapeMember(label: "lagId", required: true, type: .string), + AWSShapeMember(label: "lagName", required: false, type: .string) ] - /// The ID of the interconnect or LAG on which the hosted connections are provisioned. Example: dxcon-abc123 or dxlag-abc123 Default: None - public let connectionId: String + /// The minimum number of physical connections that must be operational for the LAG itself to be operational. Default: None + public let minimumLinks: Int32? + /// The ID of the LAG to update. Example: dxlag-abc123 Default: None + public let lagId: String + /// The name for the LAG. Example: "3x10G LAG to AWS" Default: None + public let lagName: String? - public init(connectionId: String) { - self.connectionId = connectionId + public init(minimumLinks: Int32? = nil, lagId: String, lagName: String? = nil) { + self.minimumLinks = minimumLinks + self.lagId = lagId + self.lagName = lagName } private enum CodingKeys: String, CodingKey { - case connectionId = "connectionId" + case minimumLinks = "minimumLinks" + case lagId = "lagId" + case lagName = "lagName" } } - public struct DeleteConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "connectionId", required: true, type: .string) + public struct Interconnects: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "interconnects", required: false, type: .list) ] - public let connectionId: String + /// A list of interconnects. + public let interconnects: [Interconnect]? - public init(connectionId: String) { - self.connectionId = connectionId + public init(interconnects: [Interconnect]? = nil) { + self.interconnects = interconnects } private enum CodingKeys: String, CodingKey { - case connectionId = "connectionId" + case interconnects = "interconnects" + } + } + + public struct DeleteDirectConnectGatewayRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayId", required: true, type: .string) + ] + /// The ID of the direct connect gateway. Example: "abcd1234-dcba-5678-be23-cdef9876ab45" Default: None + public let directConnectGatewayId: String + + public init(directConnectGatewayId: String) { + self.directConnectGatewayId = directConnectGatewayId + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayId = "directConnectGatewayId" } } public struct NewPrivateVirtualInterfaceAllocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "customerAddress", required: false, type: .string), AWSShapeMember(label: "virtualInterfaceName", required: true, type: .string), AWSShapeMember(label: "authKey", required: false, type: .string), @@ -708,8 +755,23 @@ extension Directconnect { } } + public struct DeleteConnectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "connectionId", required: true, type: .string) + ] + public let connectionId: String + + public init(connectionId: String) { + self.connectionId = connectionId + } + + private enum CodingKeys: String, CodingKey { + case connectionId = "connectionId" + } + } + public struct CreatePublicVirtualInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "connectionId", required: true, type: .string), AWSShapeMember(label: "newPublicVirtualInterface", required: true, type: .structure) ] @@ -728,6 +790,21 @@ extension Directconnect { } } + public struct DescribeInterconnectsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "interconnectId", required: false, type: .string) + ] + public let interconnectId: String? + + public init(interconnectId: String? = nil) { + self.interconnectId = interconnectId + } + + private enum CodingKeys: String, CodingKey { + case interconnectId = "interconnectId" + } + } + public enum VirtualInterfaceState: String, CustomStringConvertible, Codable { case confirming = "confirming" case verifying = "verifying" @@ -740,23 +817,24 @@ extension Directconnect { public var description: String { return self.rawValue } } - public struct DescribeInterconnectsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "interconnectId", required: false, type: .string) + public struct DescribeHostedConnectionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "connectionId", required: true, type: .string) ] - public let interconnectId: String? + /// The ID of the interconnect or LAG on which the hosted connections are provisioned. Example: dxcon-abc123 or dxlag-abc123 Default: None + public let connectionId: String - public init(interconnectId: String? = nil) { - self.interconnectId = interconnectId + public init(connectionId: String) { + self.connectionId = connectionId } private enum CodingKeys: String, CodingKey { - case interconnectId = "interconnectId" + case connectionId = "connectionId" } } public struct ResourceTag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceArn", required: false, type: .string), AWSShapeMember(label: "tags", required: false, type: .list) ] @@ -776,39 +854,39 @@ extension Directconnect { } } - public struct ConfirmConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "connectionId", required: true, type: .string) + public struct AssociateConnectionWithLagRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "connectionId", required: true, type: .string), + AWSShapeMember(label: "lagId", required: true, type: .string) ] + /// The ID of the connection. Example: dxcon-abc123 Default: None public let connectionId: String + /// The ID of the LAG with which to associate the connection. Example: dxlag-abc123 Default: None + public let lagId: String - public init(connectionId: String) { + public init(connectionId: String, lagId: String) { self.connectionId = connectionId + self.lagId = lagId } private enum CodingKeys: String, CodingKey { case connectionId = "connectionId" + case lagId = "lagId" } } - public struct AssociateConnectionWithLagRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "connectionId", required: true, type: .string), - AWSShapeMember(label: "lagId", required: true, type: .string) + public struct ConfirmConnectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "connectionId", required: true, type: .string) ] - /// The ID of the connection. Example: dxcon-abc123 Default: None public let connectionId: String - /// The ID of the LAG with which to associate the connection. Example: dxlag-abc123 Default: None - public let lagId: String - public init(connectionId: String, lagId: String) { + public init(connectionId: String) { self.connectionId = connectionId - self.lagId = lagId } private enum CodingKeys: String, CodingKey { case connectionId = "connectionId" - case lagId = "lagId" } } @@ -819,7 +897,7 @@ extension Directconnect { } public struct AllocatePublicVirtualInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "newPublicVirtualInterfaceAllocation", required: true, type: .structure), AWSShapeMember(label: "connectionId", required: true, type: .string), AWSShapeMember(label: "ownerAccount", required: true, type: .string) @@ -845,7 +923,7 @@ extension Directconnect { } public struct ConfirmPublicVirtualInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterfaceId", required: true, type: .string) ] public let virtualInterfaceId: String @@ -859,8 +937,65 @@ extension Directconnect { } } + public struct DescribeDirectConnectGatewayAssociationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayId", required: false, type: .string), + AWSShapeMember(label: "virtualGatewayId", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The ID of the direct connect gateway. Example: "abcd1234-dcba-5678-be23-cdef9876ab45" Default: None + public let directConnectGatewayId: String? + /// The ID of the virtual private gateway. Example: "vgw-abc123ef" Default: None + public let virtualGatewayId: String? + /// The maximum number of direct connect gateway associations to return per page. Example: 15 Default: None + public let maxResults: Int32? + /// The token provided in the previous describe result to retrieve the next page of the result. Default: None + public let nextToken: String? + + public init(directConnectGatewayId: String? = nil, virtualGatewayId: String? = nil, maxResults: Int32? = nil, nextToken: String? = nil) { + self.directConnectGatewayId = directConnectGatewayId + self.virtualGatewayId = virtualGatewayId + self.maxResults = maxResults + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayId = "directConnectGatewayId" + case virtualGatewayId = "virtualGatewayId" + case maxResults = "maxResults" + case nextToken = "nextToken" + } + } + + public struct DescribeDirectConnectGatewaysRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayId", required: false, type: .string), + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer) + ] + /// The ID of the direct connect gateway. Example: "abcd1234-dcba-5678-be23-cdef9876ab45" Default: None + public let directConnectGatewayId: String? + /// The token provided in the previous describe result to retrieve the next page of the result. Default: None + public let nextToken: String? + /// The maximum number of direct connect gateways to return per page. Example: 15 Default: None + public let maxResults: Int32? + + public init(directConnectGatewayId: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.directConnectGatewayId = directConnectGatewayId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayId = "directConnectGatewayId" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + public struct CreateInterconnectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "location", required: true, type: .string), AWSShapeMember(label: "lagId", required: false, type: .string), AWSShapeMember(label: "interconnectName", required: true, type: .string), @@ -882,31 +1017,95 @@ extension Directconnect { } private enum CodingKeys: String, CodingKey { - case location = "location" - case lagId = "lagId" - case interconnectName = "interconnectName" - case bandwidth = "bandwidth" + case location = "location" + case lagId = "lagId" + case interconnectName = "interconnectName" + case bandwidth = "bandwidth" + } + } + + public struct Connections: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "connections", required: false, type: .list) + ] + /// A list of connections. + public let connections: [Connection]? + + public init(connections: [Connection]? = nil) { + self.connections = connections + } + + private enum CodingKeys: String, CodingKey { + case connections = "connections" + } + } + + public struct DescribeDirectConnectGatewayAttachmentsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayAttachments", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// Information about the direct connect gateway attachments. + public let directConnectGatewayAttachments: [DirectConnectGatewayAttachment]? + public let nextToken: String? + + public init(directConnectGatewayAttachments: [DirectConnectGatewayAttachment]? = nil, nextToken: String? = nil) { + self.directConnectGatewayAttachments = directConnectGatewayAttachments + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayAttachments = "directConnectGatewayAttachments" + case nextToken = "nextToken" } } - public struct Connections: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "connections", required: false, type: .list) + public struct DirectConnectGatewayAttachment: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "virtualInterfaceOwnerAccount", required: false, type: .string), + AWSShapeMember(label: "directConnectGatewayId", required: false, type: .string), + AWSShapeMember(label: "attachmentState", required: false, type: .enum), + AWSShapeMember(label: "virtualInterfaceRegion", required: false, type: .string), + AWSShapeMember(label: "stateChangeError", required: false, type: .string), + AWSShapeMember(label: "virtualInterfaceId", required: false, type: .string) ] - /// A list of connections. - public let connections: [Connection]? + /// The AWS account ID of the owner of the virtual interface. + public let virtualInterfaceOwnerAccount: String? + public let directConnectGatewayId: String? + public let attachmentState: DirectConnectGatewayAttachmentState? + public let virtualInterfaceRegion: String? + public let stateChangeError: String? + public let virtualInterfaceId: String? - public init(connections: [Connection]? = nil) { - self.connections = connections + public init(virtualInterfaceOwnerAccount: String? = nil, directConnectGatewayId: String? = nil, attachmentState: DirectConnectGatewayAttachmentState? = nil, virtualInterfaceRegion: String? = nil, stateChangeError: String? = nil, virtualInterfaceId: String? = nil) { + self.virtualInterfaceOwnerAccount = virtualInterfaceOwnerAccount + self.directConnectGatewayId = directConnectGatewayId + self.attachmentState = attachmentState + self.virtualInterfaceRegion = virtualInterfaceRegion + self.stateChangeError = stateChangeError + self.virtualInterfaceId = virtualInterfaceId } private enum CodingKeys: String, CodingKey { - case connections = "connections" + case virtualInterfaceOwnerAccount = "virtualInterfaceOwnerAccount" + case directConnectGatewayId = "directConnectGatewayId" + case attachmentState = "attachmentState" + case virtualInterfaceRegion = "virtualInterfaceRegion" + case stateChangeError = "stateChangeError" + case virtualInterfaceId = "virtualInterfaceId" } } + public enum DirectConnectGatewayAttachmentState: String, CustomStringConvertible, Codable { + case attaching = "attaching" + case attached = "attached" + case detaching = "detaching" + case detached = "detached" + public var description: String { return self.rawValue } + } + public struct DescribeInterconnectLoaResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "loa", required: false, type: .structure) ] public let loa: Loa? @@ -920,8 +1119,45 @@ extension Directconnect { } } + public struct CreateDirectConnectGatewayAssociationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayAssociation", required: false, type: .structure) + ] + /// The direct connect gateway association to be created. + public let directConnectGatewayAssociation: DirectConnectGatewayAssociation? + + public init(directConnectGatewayAssociation: DirectConnectGatewayAssociation? = nil) { + self.directConnectGatewayAssociation = directConnectGatewayAssociation + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayAssociation = "directConnectGatewayAssociation" + } + } + + public struct CreateDirectConnectGatewayRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayName", required: true, type: .string), + AWSShapeMember(label: "amazonSideAsn", required: false, type: .long) + ] + /// The name of the direct connect gateway. Example: "My direct connect gateway" Default: None + public let directConnectGatewayName: String + /// The autonomous system number (ASN) for Border Gateway Protocol (BGP) to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294 Example: 65200 Default: 64512 + public let amazonSideAsn: Int64? + + public init(directConnectGatewayName: String, amazonSideAsn: Int64? = nil) { + self.directConnectGatewayName = directConnectGatewayName + self.amazonSideAsn = amazonSideAsn + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayName = "directConnectGatewayName" + case amazonSideAsn = "amazonSideAsn" + } + } + public struct Connection: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "loaIssueTime", required: false, type: .timestamp), AWSShapeMember(label: "bandwidth", required: false, type: .string), AWSShapeMember(label: "location", required: false, type: .string), @@ -985,7 +1221,7 @@ extension Directconnect { } public struct DescribeConnectionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "connectionId", required: false, type: .string) ] public let connectionId: String? @@ -999,8 +1235,28 @@ extension Directconnect { } } + public struct DescribeDirectConnectGatewayAssociationsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayAssociations", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// Information about the direct connect gateway associations. + public let directConnectGatewayAssociations: [DirectConnectGatewayAssociation]? + public let nextToken: String? + + public init(directConnectGatewayAssociations: [DirectConnectGatewayAssociation]? = nil, nextToken: String? = nil) { + self.directConnectGatewayAssociations = directConnectGatewayAssociations + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayAssociations = "directConnectGatewayAssociations" + case nextToken = "nextToken" + } + } + public struct Lags: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lags", required: false, type: .list) ] /// A list of LAGs. @@ -1016,7 +1272,7 @@ extension Directconnect { } public struct DeleteInterconnectResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "interconnectState", required: false, type: .enum) ] public let interconnectState: InterconnectState? @@ -1030,12 +1286,39 @@ extension Directconnect { } } + public struct ConfirmPrivateVirtualInterfaceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "virtualInterfaceState", required: false, type: .enum) + ] + public let virtualInterfaceState: VirtualInterfaceState? + + public init(virtualInterfaceState: VirtualInterfaceState? = nil) { + self.virtualInterfaceState = virtualInterfaceState + } + + private enum CodingKeys: String, CodingKey { + case virtualInterfaceState = "virtualInterfaceState" + } + } + public struct TagResourceResponse: AWSShape { } + public enum ConnectionState: String, CustomStringConvertible, Codable { + case ordering = "ordering" + case requested = "requested" + case pending = "pending" + case available = "available" + case down = "down" + case deleting = "deleting" + case deleted = "deleted" + case rejected = "rejected" + public var description: String { return self.rawValue } + } + public struct BGPPeer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "bgpPeerState", required: false, type: .enum), AWSShapeMember(label: "customerAddress", required: false, type: .string), AWSShapeMember(label: "bgpStatus", required: false, type: .enum), @@ -1074,7 +1357,7 @@ extension Directconnect { } public struct DisassociateConnectionFromLagRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "connectionId", required: true, type: .string), AWSShapeMember(label: "lagId", required: true, type: .string) ] @@ -1094,56 +1377,68 @@ extension Directconnect { } } - public struct CreateBGPPeerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DescribeDirectConnectGatewaysResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGateways", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// Information about the direct connect gateways. + public let directConnectGateways: [DirectConnectGateway]? + public let nextToken: String? + + public init(directConnectGateways: [DirectConnectGateway]? = nil, nextToken: String? = nil) { + self.directConnectGateways = directConnectGateways + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case directConnectGateways = "directConnectGateways" + case nextToken = "nextToken" + } + } + + public struct DescribeVirtualInterfacesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterfaceId", required: false, type: .string), - AWSShapeMember(label: "newBGPPeer", required: false, type: .structure) + AWSShapeMember(label: "connectionId", required: false, type: .string) ] - /// The ID of the virtual interface on which the BGP peer will be provisioned. Example: dxvif-456abc78 Default: None public let virtualInterfaceId: String? - /// Detailed information for the BGP peer to be created. Default: None - public let newBGPPeer: NewBGPPeer? + public let connectionId: String? - public init(virtualInterfaceId: String? = nil, newBGPPeer: NewBGPPeer? = nil) { + public init(virtualInterfaceId: String? = nil, connectionId: String? = nil) { self.virtualInterfaceId = virtualInterfaceId - self.newBGPPeer = newBGPPeer + self.connectionId = connectionId } private enum CodingKeys: String, CodingKey { case virtualInterfaceId = "virtualInterfaceId" - case newBGPPeer = "newBGPPeer" + case connectionId = "connectionId" } } - public enum ConnectionState: String, CustomStringConvertible, Codable { - case ordering = "ordering" - case requested = "requested" - case pending = "pending" - case available = "available" - case down = "down" - case deleting = "deleting" - case deleted = "deleted" - case rejected = "rejected" - public var description: String { return self.rawValue } - } - - public struct ConfirmPrivateVirtualInterfaceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "virtualInterfaceState", required: false, type: .enum) + public struct CreateBGPPeerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "virtualInterfaceId", required: false, type: .string), + AWSShapeMember(label: "newBGPPeer", required: false, type: .structure) ] - public let virtualInterfaceState: VirtualInterfaceState? + /// The ID of the virtual interface on which the BGP peer will be provisioned. Example: dxvif-456abc78 Default: None + public let virtualInterfaceId: String? + /// Detailed information for the BGP peer to be created. Default: None + public let newBGPPeer: NewBGPPeer? - public init(virtualInterfaceState: VirtualInterfaceState? = nil) { - self.virtualInterfaceState = virtualInterfaceState + public init(virtualInterfaceId: String? = nil, newBGPPeer: NewBGPPeer? = nil) { + self.virtualInterfaceId = virtualInterfaceId + self.newBGPPeer = newBGPPeer } private enum CodingKeys: String, CodingKey { - case virtualInterfaceState = "virtualInterfaceState" + case virtualInterfaceId = "virtualInterfaceId" + case newBGPPeer = "newBGPPeer" } } public struct DeleteBGPPeerResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterface", required: false, type: .structure) ] public let virtualInterface: VirtualInterface? @@ -1157,27 +1452,8 @@ extension Directconnect { } } - public struct DescribeVirtualInterfacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "virtualInterfaceId", required: false, type: .string), - AWSShapeMember(label: "connectionId", required: false, type: .string) - ] - public let virtualInterfaceId: String? - public let connectionId: String? - - public init(virtualInterfaceId: String? = nil, connectionId: String? = nil) { - self.virtualInterfaceId = virtualInterfaceId - self.connectionId = connectionId - } - - private enum CodingKeys: String, CodingKey { - case virtualInterfaceId = "virtualInterfaceId" - case connectionId = "connectionId" - } - } - public struct DescribeLoaRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "providerName", required: false, type: .string), AWSShapeMember(label: "connectionId", required: true, type: .string), AWSShapeMember(label: "loaContentType", required: false, type: .enum) @@ -1203,7 +1479,7 @@ extension Directconnect { } public struct DeleteBGPPeerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterfaceId", required: false, type: .string), AWSShapeMember(label: "asn", required: false, type: .integer), AWSShapeMember(label: "customerAddress", required: false, type: .string) @@ -1227,7 +1503,7 @@ extension Directconnect { } public struct Interconnect: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "loaIssueTime", required: false, type: .timestamp), AWSShapeMember(label: "interconnectState", required: false, type: .enum), AWSShapeMember(label: "location", required: false, type: .string), @@ -1276,7 +1552,7 @@ extension Directconnect { } public struct AllocateConnectionOnInterconnectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "bandwidth", required: true, type: .string), AWSShapeMember(label: "connectionName", required: true, type: .string), AWSShapeMember(label: "interconnectId", required: true, type: .string), @@ -1312,7 +1588,7 @@ extension Directconnect { } public struct DescribeConnectionsOnInterconnectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "interconnectId", required: true, type: .string) ] /// ID of the interconnect on which a list of connection is provisioned. Example: dxcon-abc123 Default: None @@ -1333,7 +1609,7 @@ extension Directconnect { } public struct VirtualInterfaces: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterfaces", required: false, type: .list) ] /// A list of virtual interfaces. @@ -1354,12 +1630,48 @@ extension Directconnect { public var description: String { return self.rawValue } } + public struct DirectConnectGatewayAssociation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "virtualGatewayOwnerAccount", required: false, type: .string), + AWSShapeMember(label: "virtualGatewayRegion", required: false, type: .string), + AWSShapeMember(label: "directConnectGatewayId", required: false, type: .string), + AWSShapeMember(label: "virtualGatewayId", required: false, type: .string), + AWSShapeMember(label: "stateChangeError", required: false, type: .string), + AWSShapeMember(label: "associationState", required: false, type: .enum) + ] + /// The AWS account ID of the owner of the virtual private gateway. + public let virtualGatewayOwnerAccount: String? + public let virtualGatewayRegion: String? + public let directConnectGatewayId: String? + public let virtualGatewayId: String? + public let stateChangeError: String? + public let associationState: DirectConnectGatewayAssociationState? + + public init(virtualGatewayOwnerAccount: String? = nil, virtualGatewayRegion: String? = nil, directConnectGatewayId: String? = nil, virtualGatewayId: String? = nil, stateChangeError: String? = nil, associationState: DirectConnectGatewayAssociationState? = nil) { + self.virtualGatewayOwnerAccount = virtualGatewayOwnerAccount + self.virtualGatewayRegion = virtualGatewayRegion + self.directConnectGatewayId = directConnectGatewayId + self.virtualGatewayId = virtualGatewayId + self.stateChangeError = stateChangeError + self.associationState = associationState + } + + private enum CodingKeys: String, CodingKey { + case virtualGatewayOwnerAccount = "virtualGatewayOwnerAccount" + case virtualGatewayRegion = "virtualGatewayRegion" + case directConnectGatewayId = "directConnectGatewayId" + case virtualGatewayId = "virtualGatewayId" + case stateChangeError = "stateChangeError" + case associationState = "associationState" + } + } + public struct UntagResourceResponse: AWSShape { } public struct Location: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "locationCode", required: false, type: .string), AWSShapeMember(label: "locationName", required: false, type: .string) ] @@ -1380,7 +1692,7 @@ extension Directconnect { } public struct Loa: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "loaContentType", required: false, type: .enum), AWSShapeMember(label: "loaContent", required: false, type: .blob) ] @@ -1399,7 +1711,7 @@ extension Directconnect { } public struct VirtualInterface: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "customerAddress", required: false, type: .string), AWSShapeMember(label: "virtualInterfaceType", required: false, type: .string), AWSShapeMember(label: "connectionId", required: false, type: .string), @@ -1407,16 +1719,18 @@ extension Directconnect { AWSShapeMember(label: "asn", required: false, type: .integer), AWSShapeMember(label: "addressFamily", required: false, type: .enum), AWSShapeMember(label: "routeFilterPrefixes", required: false, type: .list), + AWSShapeMember(label: "amazonSideAsn", required: false, type: .long), AWSShapeMember(label: "location", required: false, type: .string), AWSShapeMember(label: "virtualInterfaceName", required: false, type: .string), AWSShapeMember(label: "authKey", required: false, type: .string), AWSShapeMember(label: "amazonAddress", required: false, type: .string), AWSShapeMember(label: "customerRouterConfig", required: false, type: .string), + AWSShapeMember(label: "virtualInterfaceState", required: false, type: .enum), + AWSShapeMember(label: "directConnectGatewayId", required: false, type: .string), AWSShapeMember(label: "bgpPeers", required: false, type: .list), - AWSShapeMember(label: "virtualGatewayId", required: false, type: .string), AWSShapeMember(label: "virtualInterfaceId", required: false, type: .string), - AWSShapeMember(label: "virtualInterfaceState", required: false, type: .enum), - AWSShapeMember(label: "vlan", required: false, type: .integer) + AWSShapeMember(label: "vlan", required: false, type: .integer), + AWSShapeMember(label: "virtualGatewayId", required: false, type: .string) ] public let customerAddress: String? public let virtualInterfaceType: String? @@ -1426,19 +1740,22 @@ extension Directconnect { public let asn: Int32? public let addressFamily: AddressFamily? public let routeFilterPrefixes: [RouteFilterPrefix]? + /// The autonomous system number (ASN) for the Amazon side of the connection. + public let amazonSideAsn: Int64? public let location: String? public let virtualInterfaceName: String? public let authKey: String? public let amazonAddress: String? /// Information for generating the customer router configuration. public let customerRouterConfig: String? + public let virtualInterfaceState: VirtualInterfaceState? + public let directConnectGatewayId: String? public let bgpPeers: [BGPPeer]? - public let virtualGatewayId: String? public let virtualInterfaceId: String? - public let virtualInterfaceState: VirtualInterfaceState? public let vlan: Int32? + public let virtualGatewayId: String? - public init(customerAddress: String? = nil, virtualInterfaceType: String? = nil, connectionId: String? = nil, ownerAccount: String? = nil, asn: Int32? = nil, addressFamily: AddressFamily? = nil, routeFilterPrefixes: [RouteFilterPrefix]? = nil, location: String? = nil, virtualInterfaceName: String? = nil, authKey: String? = nil, amazonAddress: String? = nil, customerRouterConfig: String? = nil, bgpPeers: [BGPPeer]? = nil, virtualGatewayId: String? = nil, virtualInterfaceId: String? = nil, virtualInterfaceState: VirtualInterfaceState? = nil, vlan: Int32? = nil) { + public init(customerAddress: String? = nil, virtualInterfaceType: String? = nil, connectionId: String? = nil, ownerAccount: String? = nil, asn: Int32? = nil, addressFamily: AddressFamily? = nil, routeFilterPrefixes: [RouteFilterPrefix]? = nil, amazonSideAsn: Int64? = nil, location: String? = nil, virtualInterfaceName: String? = nil, authKey: String? = nil, amazonAddress: String? = nil, customerRouterConfig: String? = nil, virtualInterfaceState: VirtualInterfaceState? = nil, directConnectGatewayId: String? = nil, bgpPeers: [BGPPeer]? = nil, virtualInterfaceId: String? = nil, vlan: Int32? = nil, virtualGatewayId: String? = nil) { self.customerAddress = customerAddress self.virtualInterfaceType = virtualInterfaceType self.connectionId = connectionId @@ -1446,16 +1763,18 @@ extension Directconnect { self.asn = asn self.addressFamily = addressFamily self.routeFilterPrefixes = routeFilterPrefixes + self.amazonSideAsn = amazonSideAsn self.location = location self.virtualInterfaceName = virtualInterfaceName self.authKey = authKey self.amazonAddress = amazonAddress self.customerRouterConfig = customerRouterConfig + self.virtualInterfaceState = virtualInterfaceState + self.directConnectGatewayId = directConnectGatewayId self.bgpPeers = bgpPeers - self.virtualGatewayId = virtualGatewayId self.virtualInterfaceId = virtualInterfaceId - self.virtualInterfaceState = virtualInterfaceState self.vlan = vlan + self.virtualGatewayId = virtualGatewayId } private enum CodingKeys: String, CodingKey { @@ -1466,21 +1785,23 @@ extension Directconnect { case asn = "asn" case addressFamily = "addressFamily" case routeFilterPrefixes = "routeFilterPrefixes" + case amazonSideAsn = "amazonSideAsn" case location = "location" case virtualInterfaceName = "virtualInterfaceName" case authKey = "authKey" case amazonAddress = "amazonAddress" case customerRouterConfig = "customerRouterConfig" + case virtualInterfaceState = "virtualInterfaceState" + case directConnectGatewayId = "directConnectGatewayId" case bgpPeers = "bgpPeers" - case virtualGatewayId = "virtualGatewayId" case virtualInterfaceId = "virtualInterfaceId" - case virtualInterfaceState = "virtualInterfaceState" case vlan = "vlan" + case virtualGatewayId = "virtualGatewayId" } } public struct ConfirmPublicVirtualInterfaceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterfaceState", required: false, type: .enum) ] public let virtualInterfaceState: VirtualInterfaceState? @@ -1494,8 +1815,45 @@ extension Directconnect { } } + public struct DirectConnectGateway: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGatewayState", required: false, type: .enum), + AWSShapeMember(label: "directConnectGatewayName", required: false, type: .string), + AWSShapeMember(label: "stateChangeError", required: false, type: .string), + AWSShapeMember(label: "directConnectGatewayId", required: false, type: .string), + AWSShapeMember(label: "amazonSideAsn", required: false, type: .long), + AWSShapeMember(label: "ownerAccount", required: false, type: .string) + ] + public let directConnectGatewayState: DirectConnectGatewayState? + public let directConnectGatewayName: String? + public let stateChangeError: String? + public let directConnectGatewayId: String? + /// The autonomous system number (ASN) for the Amazon side of the connection. + public let amazonSideAsn: Int64? + /// The AWS account ID of the owner of the direct connect gateway. + public let ownerAccount: String? + + public init(directConnectGatewayState: DirectConnectGatewayState? = nil, directConnectGatewayName: String? = nil, stateChangeError: String? = nil, directConnectGatewayId: String? = nil, amazonSideAsn: Int64? = nil, ownerAccount: String? = nil) { + self.directConnectGatewayState = directConnectGatewayState + self.directConnectGatewayName = directConnectGatewayName + self.stateChangeError = stateChangeError + self.directConnectGatewayId = directConnectGatewayId + self.amazonSideAsn = amazonSideAsn + self.ownerAccount = ownerAccount + } + + private enum CodingKeys: String, CodingKey { + case directConnectGatewayState = "directConnectGatewayState" + case directConnectGatewayName = "directConnectGatewayName" + case stateChangeError = "stateChangeError" + case directConnectGatewayId = "directConnectGatewayId" + case amazonSideAsn = "amazonSideAsn" + case ownerAccount = "ownerAccount" + } + } + public struct Locations: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "locations", required: false, type: .list) ] /// A list of colocation hubs where network providers have equipment. Most regions have multiple locations available. @@ -1510,35 +1868,24 @@ extension Directconnect { } } - public struct CreateConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "connectionName", required: true, type: .string), - AWSShapeMember(label: "location", required: true, type: .string), - AWSShapeMember(label: "lagId", required: false, type: .string), - AWSShapeMember(label: "bandwidth", required: true, type: .string) + public struct DeleteDirectConnectGatewayResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGateway", required: false, type: .structure) ] - public let connectionName: String - public let location: String - public let lagId: String? - public let bandwidth: String + /// The direct connect gateway to be deleted. + public let directConnectGateway: DirectConnectGateway? - public init(connectionName: String, location: String, lagId: String? = nil, bandwidth: String) { - self.connectionName = connectionName - self.location = location - self.lagId = lagId - self.bandwidth = bandwidth + public init(directConnectGateway: DirectConnectGateway? = nil) { + self.directConnectGateway = directConnectGateway } private enum CodingKeys: String, CodingKey { - case connectionName = "connectionName" - case location = "location" - case lagId = "lagId" - case bandwidth = "bandwidth" + case directConnectGateway = "directConnectGateway" } } public struct DescribeConnectionLoaRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "providerName", required: false, type: .string), AWSShapeMember(label: "connectionId", required: true, type: .string), AWSShapeMember(label: "loaContentType", required: false, type: .enum) @@ -1561,28 +1908,107 @@ extension Directconnect { } } + public struct DescribeDirectConnectGatewayAttachmentsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "directConnectGatewayId", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer), + AWSShapeMember(label: "virtualInterfaceId", required: false, type: .string) + ] + /// The token provided in the previous describe result to retrieve the next page of the result. Default: None + public let nextToken: String? + /// The ID of the direct connect gateway. Example: "abcd1234-dcba-5678-be23-cdef9876ab45" Default: None + public let directConnectGatewayId: String? + /// The maximum number of direct connect gateway attachments to return per page. Example: 15 Default: None + public let maxResults: Int32? + /// The ID of the virtual interface. Example: "dxvif-abc123ef" Default: None + public let virtualInterfaceId: String? + + public init(nextToken: String? = nil, directConnectGatewayId: String? = nil, maxResults: Int32? = nil, virtualInterfaceId: String? = nil) { + self.nextToken = nextToken + self.directConnectGatewayId = directConnectGatewayId + self.maxResults = maxResults + self.virtualInterfaceId = virtualInterfaceId + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case directConnectGatewayId = "directConnectGatewayId" + case maxResults = "maxResults" + case virtualInterfaceId = "virtualInterfaceId" + } + } + + public struct CreateDirectConnectGatewayResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "directConnectGateway", required: false, type: .structure) + ] + /// The direct connect gateway to be created. + public let directConnectGateway: DirectConnectGateway? + + public init(directConnectGateway: DirectConnectGateway? = nil) { + self.directConnectGateway = directConnectGateway + } + + private enum CodingKeys: String, CodingKey { + case directConnectGateway = "directConnectGateway" + } + } + public struct ConfirmPrivateVirtualInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterfaceId", required: true, type: .string), - AWSShapeMember(label: "virtualGatewayId", required: true, type: .string) + AWSShapeMember(label: "directConnectGatewayId", required: false, type: .string), + AWSShapeMember(label: "virtualGatewayId", required: false, type: .string) ] public let virtualInterfaceId: String + /// ID of the direct connect gateway that will be attached to the virtual interface. A direct connect gateway can be managed via the AWS Direct Connect console or the CreateDirectConnectGateway action. Default: None + public let directConnectGatewayId: String? /// ID of the virtual private gateway that will be attached to the virtual interface. A virtual private gateway can be managed via the Amazon Virtual Private Cloud (VPC) console or the EC2 CreateVpnGateway action. Default: None - public let virtualGatewayId: String + public let virtualGatewayId: String? - public init(virtualInterfaceId: String, virtualGatewayId: String) { + public init(virtualInterfaceId: String, directConnectGatewayId: String? = nil, virtualGatewayId: String? = nil) { self.virtualInterfaceId = virtualInterfaceId + self.directConnectGatewayId = directConnectGatewayId self.virtualGatewayId = virtualGatewayId } private enum CodingKeys: String, CodingKey { case virtualInterfaceId = "virtualInterfaceId" + case directConnectGatewayId = "directConnectGatewayId" case virtualGatewayId = "virtualGatewayId" } } + public struct CreateConnectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "connectionName", required: true, type: .string), + AWSShapeMember(label: "location", required: true, type: .string), + AWSShapeMember(label: "lagId", required: false, type: .string), + AWSShapeMember(label: "bandwidth", required: true, type: .string) + ] + public let connectionName: String + public let location: String + public let lagId: String? + public let bandwidth: String + + public init(connectionName: String, location: String, lagId: String? = nil, bandwidth: String) { + self.connectionName = connectionName + self.location = location + self.lagId = lagId + self.bandwidth = bandwidth + } + + private enum CodingKeys: String, CodingKey { + case connectionName = "connectionName" + case location = "location" + case lagId = "lagId" + case bandwidth = "bandwidth" + } + } + public struct NewBGPPeer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "amazonAddress", required: false, type: .string), AWSShapeMember(label: "customerAddress", required: false, type: .string), AWSShapeMember(label: "addressFamily", required: false, type: .enum), @@ -1612,8 +2038,16 @@ extension Directconnect { } } + public enum DirectConnectGatewayAssociationState: String, CustomStringConvertible, Codable { + case associating = "associating" + case associated = "associated" + case disassociating = "disassociating" + case disassociated = "disassociated" + public var description: String { return self.rawValue } + } + public struct ConfirmConnectionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "connectionState", required: false, type: .enum) ] public let connectionState: ConnectionState? @@ -1628,7 +2062,7 @@ extension Directconnect { } public struct RouteFilterPrefix: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cidr", required: false, type: .string) ] /// CIDR notation for the advertised route. Multiple routes are separated by commas. IPv6 CIDRs must be at least a /64 or shorter Example: 10.10.10.0/24,10.10.11.0/24,2001:db8::/64 @@ -1643,8 +2077,16 @@ extension Directconnect { } } + public enum DirectConnectGatewayState: String, CustomStringConvertible, Codable { + case pending = "pending" + case available = "available" + case deleting = "deleting" + case deleted = "deleted" + public var description: String { return self.rawValue } + } + public struct DeleteVirtualInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualInterfaceId", required: true, type: .string) ] public let virtualInterfaceId: String @@ -1659,7 +2101,7 @@ extension Directconnect { } public struct UntagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceArn", required: true, type: .string), AWSShapeMember(label: "tagKeys", required: true, type: .list) ] @@ -1680,7 +2122,7 @@ extension Directconnect { } public struct VirtualGateway: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "virtualGatewayState", required: false, type: .string), AWSShapeMember(label: "virtualGatewayId", required: false, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/discovery/Discovery_API.swift b/Sources/AWSSDKSwift/Services/discovery/Discovery_API.swift index 2df19ca8e5c..3cf3f7e14a6 100644 --- a/Sources/AWSSDKSwift/Services/discovery/Discovery_API.swift +++ b/Sources/AWSSDKSwift/Services/discovery/Discovery_API.swift @@ -85,7 +85,7 @@ public struct Discovery { return try client.send(operation: "ListConfigurations", path: "/", httpMethod: "POST", input: input) } - /// Export the configuration data about discovered configuration items and relationships to an S3 bucket in a specified format. + /// Begins the export of discovered data to an S3 bucket. If you specify agentId in a filter, the task exports up to 72 hours of detailed data collected by the identified Application Discovery Agent, including network, process, and performance details. A time range for exported agent data may be set by using startTime and endTime. Export of detailed agent data is limited to five concurrently running exports. If you do not include an agentId filter, summary data is exported that includes both AWS Agentless Discovery Connector data and summary data from AWS Discovery Agents. Export of summary data is limited to two exports per day. public func startExportTask(_ input: StartExportTaskRequest) throws -> StartExportTaskResponse { return try client.send(operation: "StartExportTask", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/discovery/Discovery_Shapes.swift b/Sources/AWSSDKSwift/Services/discovery/Discovery_Shapes.swift index 6c9df0c4ac4..237f0549809 100644 --- a/Sources/AWSSDKSwift/Services/discovery/Discovery_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/discovery/Discovery_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Discovery { public struct DisassociateConfigurationItemsFromApplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "applicationConfigurationId", required: true, type: .string), AWSShapeMember(label: "configurationIds", required: true, type: .list) ] @@ -27,7 +27,7 @@ extension Discovery { } public struct DescribeTagsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: false, type: .structure), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -48,7 +48,7 @@ extension Discovery { } public struct CreateTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: true, type: .structure), AWSShapeMember(label: "configurationIds", required: true, type: .list) ] @@ -73,7 +73,7 @@ extension Discovery { } public struct FilterValues: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -92,7 +92,7 @@ extension Discovery { } public struct TagSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Tag]? @@ -107,7 +107,7 @@ extension Discovery { } public struct OrderByElement: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "fieldName", required: true, type: .string), AWSShapeMember(label: "sortOrder", required: false, type: .enum) ] @@ -128,7 +128,7 @@ extension Discovery { } public struct AgentInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "health", required: false, type: .enum), AWSShapeMember(label: "agentNetworkInfoList", required: false, type: .list), AWSShapeMember(label: "lastHealthPingTime", required: false, type: .string), @@ -189,7 +189,7 @@ extension Discovery { } public struct GetDiscoverySummaryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "serversMappedtoTags", required: false, type: .long), AWSShapeMember(label: "applications", required: false, type: .long), AWSShapeMember(label: "connectorSummary", required: false, type: .structure), @@ -230,7 +230,7 @@ extension Discovery { } public struct ConfigurationTag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "timeOfCreation", required: false, type: .timestamp), AWSShapeMember(label: "configurationType", required: false, type: .enum), AWSShapeMember(label: "value", required: false, type: .string), @@ -266,7 +266,7 @@ extension Discovery { } public struct ListConfigurationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configurations", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -287,7 +287,7 @@ extension Discovery { } public struct NeighborConnectionDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "destinationServerId", required: true, type: .string), AWSShapeMember(label: "transportProtocol", required: false, type: .string), AWSShapeMember(label: "connectionsCount", required: true, type: .long), @@ -331,7 +331,7 @@ extension Discovery { } public struct DescribeTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "filters", required: false, type: .list), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string) @@ -357,7 +357,7 @@ extension Discovery { } public struct ListServerNeighborsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "neighbors", required: true, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "knownDependencyCount", required: false, type: .long) @@ -383,7 +383,7 @@ extension Discovery { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .string), AWSShapeMember(label: "value", required: true, type: .string) ] @@ -404,7 +404,7 @@ extension Discovery { } public struct CreateApplicationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configurationId", required: false, type: .string) ] /// Configuration ID of an application to be created. @@ -420,7 +420,7 @@ extension Discovery { } public struct TagFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "values", required: true, type: .structure) ] @@ -441,7 +441,7 @@ extension Discovery { } public struct AssociateConfigurationItemsToApplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "applicationConfigurationId", required: true, type: .string), AWSShapeMember(label: "configurationIds", required: true, type: .list) ] @@ -461,11 +461,37 @@ extension Discovery { } } + public struct ExportFilter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: true, type: .string), + AWSShapeMember(label: "values", required: true, type: .structure), + AWSShapeMember(label: "condition", required: true, type: .string) + ] + /// A single ExportFilter name. Supported filters: agentId. + public let name: String + /// A single agentId for a Discovery Agent. An agentId can be found using the DescribeAgents action. Typically an ADS agentId is in the form o-0123456789abcdef0. + public let values: FilterValues + /// Supported condition: EQUALS + public let condition: String + + public init(name: String, values: FilterValues, condition: String) { + self.name = name + self.values = values + self.condition = condition + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case values = "values" + case condition = "condition" + } + } + public struct StartExportTaskResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "exportId", required: false, type: .string) ] - /// A unique identifier used to query the status of an export request. + /// A unique identifier used to query the status of an export request. public let exportId: String? public init(exportId: String? = nil) { @@ -478,7 +504,7 @@ extension Discovery { } public struct ConfigurationTagSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ConfigurationTag]? @@ -493,7 +519,7 @@ extension Discovery { } public struct ExportConfigurationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "exportId", required: false, type: .string) ] /// A unique identifier that you can use to query the export status. @@ -509,7 +535,7 @@ extension Discovery { } public struct CreateApplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", required: true, type: .string) ] @@ -530,33 +556,38 @@ extension Discovery { } public struct DescribeExportTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "exportIds", required: false, type: .list), + AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string), - AWSShapeMember(label: "maxResults", required: false, type: .integer) + AWSShapeMember(label: "filters", required: false, type: .list) ] /// One or more unique identifiers used to query the status of an export request. public let exportIds: [String]? - /// The nextToken value returned from a previous paginated DescribeExportTasks request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. - public let nextToken: String? /// The maximum number of volume results returned by DescribeExportTasks in paginated output. When this parameter is used, DescribeExportTasks only returns maxResults results in a single page along with a nextToken response element. public let maxResults: Int32? + /// The nextToken value returned from a previous paginated DescribeExportTasks request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. + public let nextToken: String? + /// One or more filters. AgentId - ID of the agent whose collected data will be exported + public let filters: [ExportFilter]? - public init(exportIds: [String]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + public init(exportIds: [String]? = nil, maxResults: Int32? = nil, nextToken: String? = nil, filters: [ExportFilter]? = nil) { self.exportIds = exportIds - self.nextToken = nextToken self.maxResults = maxResults + self.nextToken = nextToken + self.filters = filters } private enum CodingKeys: String, CodingKey { case exportIds = "exportIds" - case nextToken = "nextToken" case maxResults = "maxResults" + case nextToken = "nextToken" + case filters = "filters" } } public struct ListServerNeighborsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "portInformationNeeded", required: false, type: .boolean), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -598,7 +629,7 @@ extension Discovery { } public struct ListConfigurationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configurationType", required: true, type: .enum), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -641,7 +672,7 @@ extension Discovery { } public struct DescribeExportTasksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "exportsInfo", required: false, type: .list) ] @@ -662,7 +693,7 @@ extension Discovery { } public struct DescribeExportConfigurationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "exportIds", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer) @@ -688,7 +719,7 @@ extension Discovery { } public struct DeleteApplicationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configurationIds", required: true, type: .list) ] /// Configuration ID of an application to be deleted. @@ -704,7 +735,7 @@ extension Discovery { } public struct AgentConfigurationStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "agentId", required: false, type: .string), AWSShapeMember(label: "operationSucceeded", required: false, type: .boolean) @@ -730,7 +761,7 @@ extension Discovery { } public struct CustomerConnectorInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "unhealthyConnectors", required: true, type: .integer), AWSShapeMember(label: "healthyConnectors", required: true, type: .integer), AWSShapeMember(label: "activeConnectors", required: true, type: .integer), @@ -776,7 +807,7 @@ extension Discovery { } public struct StopDataCollectionByAgentIdsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "agentIds", required: true, type: .list) ] /// The IDs of the agents or connectors from which to stop collecting data. @@ -792,7 +823,7 @@ extension Discovery { } public struct DeleteTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: false, type: .structure), AWSShapeMember(label: "configurationIds", required: true, type: .list) ] @@ -813,7 +844,7 @@ extension Discovery { } public struct DescribeConfigurationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configurationIds", required: true, type: .list) ] /// One or more configuration IDs. @@ -839,17 +870,32 @@ extension Discovery { } public struct StartExportTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "endTime", required: false, type: .timestamp), + AWSShapeMember(label: "startTime", required: false, type: .timestamp), + AWSShapeMember(label: "filters", required: false, type: .list), AWSShapeMember(label: "exportDataFormat", required: false, type: .list) ] + /// The end timestamp for exported data from the single Application Discovery Agent selected in the filters. If no value is specified, exported data includes the most recent data collected by the agent. + public let endTime: TimeStamp? + /// The start timestamp for exported data from the single Application Discovery Agent selected in the filters. If no value is specified, data is exported starting from the first data collected by the agent. + public let startTime: TimeStamp? + /// If a filter is present, it selects the single agentId of the Application Discovery Agent for which data is exported. The agentId can be found in the results of the DescribeAgents API or CLI. If no filter is present, startTime and endTime are ignored and exported data includes both Agentless Discovery Connector data and summary data from Application Discovery agents. + public let filters: [ExportFilter]? /// The file format for the returned export data. Default value is CSV. public let exportDataFormat: [ExportDataFormat]? - public init(exportDataFormat: [ExportDataFormat]? = nil) { + public init(endTime: TimeStamp? = nil, startTime: TimeStamp? = nil, filters: [ExportFilter]? = nil, exportDataFormat: [ExportDataFormat]? = nil) { + self.endTime = endTime + self.startTime = startTime + self.filters = filters self.exportDataFormat = exportDataFormat } private enum CodingKeys: String, CodingKey { + case endTime = "endTime" + case startTime = "startTime" + case filters = "filters" case exportDataFormat = "exportDataFormat" } } @@ -859,7 +905,7 @@ extension Discovery { } public struct DescribeExportConfigurationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "exportsInfo", required: false, type: .list) ] @@ -880,7 +926,7 @@ extension Discovery { } public struct StopDataCollectionByAgentIdsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "agentsConfigurationStatus", required: false, type: .list) ] /// Information about the agents or connector that were instructed to stop collecting data. Information includes the agent/connector ID, a description of the operation performed, and whether the agent/connector configuration was updated. @@ -896,7 +942,7 @@ extension Discovery { } public struct StartDataCollectionByAgentIdsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "agentsConfigurationStatus", required: false, type: .list) ] /// Information about agents or the connector that were instructed to start collecting data. Information includes the agent/connector ID, a description of the operation performed, and whether the agent/connector configuration was updated. @@ -922,25 +968,37 @@ extension Discovery { } public struct ExportInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "requestedEndTime", required: false, type: .timestamp), + AWSShapeMember(label: "requestedStartTime", required: false, type: .timestamp), + AWSShapeMember(label: "isTruncated", required: false, type: .boolean), AWSShapeMember(label: "exportId", required: true, type: .string), AWSShapeMember(label: "exportStatus", required: true, type: .enum), AWSShapeMember(label: "configurationsDownloadUrl", required: false, type: .string), AWSShapeMember(label: "statusMessage", required: true, type: .string), AWSShapeMember(label: "exportRequestTime", required: true, type: .timestamp) ] - /// A unique identifier that you can use to query the export. + /// The endTime used in the StartExportTask request. If no endTime was requested, this result does not appear in ExportInfo. + public let requestedEndTime: TimeStamp? + /// The value of startTime parameter in the StartExportTask request. If no startTime was requested, this result does not appear in ExportInfo. + public let requestedStartTime: TimeStamp? + /// If true, the export of agent information exceeded the size limit for a single export and the exported data is incomplete for the requested time range. To address this, select a smaller time range for the export by using startDate and endDate. + public let isTruncated: Bool? + /// A unique identifier used to query an export. public let exportId: String - /// The status of the configuration data export. The status can succeed, fail, or be in-progress. + /// The status of the data export job. public let exportStatus: ExportStatus - /// A URL for an Amazon S3 bucket where you can review the configuration data. The URL is displayed only if the export succeeded. + /// A URL for an Amazon S3 bucket where you can review the exported data. The URL is displayed only if the export succeeded. public let configurationsDownloadUrl: String? - /// Helpful status messages for API callers. For example: Too many exports in the last 6 hours. Export in progress. Export was successful. + /// A status message provided for API callers. public let statusMessage: String - /// The time that the configuration data export was initiated. + /// The time that the data export was initiated. public let exportRequestTime: TimeStamp - public init(exportId: String, exportStatus: ExportStatus, configurationsDownloadUrl: String? = nil, statusMessage: String, exportRequestTime: TimeStamp) { + public init(requestedEndTime: TimeStamp? = nil, requestedStartTime: TimeStamp? = nil, isTruncated: Bool? = nil, exportId: String, exportStatus: ExportStatus, configurationsDownloadUrl: String? = nil, statusMessage: String, exportRequestTime: TimeStamp) { + self.requestedEndTime = requestedEndTime + self.requestedStartTime = requestedStartTime + self.isTruncated = isTruncated self.exportId = exportId self.exportStatus = exportStatus self.configurationsDownloadUrl = configurationsDownloadUrl @@ -949,6 +1007,9 @@ extension Discovery { } private enum CodingKeys: String, CodingKey { + case requestedEndTime = "requestedEndTime" + case requestedStartTime = "requestedStartTime" + case isTruncated = "isTruncated" case exportId = "exportId" case exportStatus = "exportStatus" case configurationsDownloadUrl = "configurationsDownloadUrl" @@ -958,7 +1019,7 @@ extension Discovery { } public struct DescribeAgentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "agentsInfo", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -983,7 +1044,7 @@ extension Discovery { } public struct DescribeConfigurationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "configurations", required: false, type: .list) ] /// A key in the response map. The value is an array of data. @@ -999,7 +1060,7 @@ extension Discovery { } public struct DescribeAgentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "filters", required: false, type: .list), @@ -1034,7 +1095,7 @@ extension Discovery { } public struct CustomerAgentInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "unhealthyAgents", required: true, type: .integer), AWSShapeMember(label: "blackListedAgents", required: true, type: .integer), AWSShapeMember(label: "totalAgents", required: true, type: .integer), @@ -1080,7 +1141,7 @@ extension Discovery { } public struct StartDataCollectionByAgentIdsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "agentIds", required: true, type: .list) ] /// The IDs of the agents or connectors from which to start collecting data. If you send a request to an agent/connector ID that you do not have permission to contact, according to your AWS account, the service does not throw an exception. Instead, it returns the error in the Description field. If you send a request to multiple agents/connectors and you do not have permission to contact some of those agents/connectors, the system does not throw an exception. Instead, the system shows Failed in the Description field. @@ -1096,7 +1157,7 @@ extension Discovery { } public struct UpdateApplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "configurationId", required: true, type: .string) @@ -1122,7 +1183,7 @@ extension Discovery { } public struct Filter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "values", required: true, type: .structure), AWSShapeMember(label: "condition", required: true, type: .string) @@ -1148,7 +1209,7 @@ extension Discovery { } public struct AgentNetworkInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "macAddress", required: false, type: .string), AWSShapeMember(label: "ipAddress", required: false, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/dms/Dms_API.swift b/Sources/AWSSDKSwift/Services/dms/Dms_API.swift index a7ea408cb1a..f5ac6113341 100644 --- a/Sources/AWSSDKSwift/Services/dms/Dms_API.swift +++ b/Sources/AWSSDKSwift/Services/dms/Dms_API.swift @@ -120,7 +120,7 @@ public struct Dms { return try client.send(operation: "DescribeEvents", path: "/", httpMethod: "POST", input: input) } - /// Returns table statistics on the database migration task, including table name, rows inserted, rows updated, and rows deleted. + /// Returns table statistics on the database migration task, including table name, rows inserted, rows updated, and rows deleted. Note that the "last updated" column the DMS console only indicates the time that AWS DMS last updated the table statistics record for a table. It does not indicate the time of the last update to the table. public func describeTableStatistics(_ input: DescribeTableStatisticsMessage) throws -> DescribeTableStatisticsResponse { return try client.send(operation: "DescribeTableStatistics", path: "/", httpMethod: "POST", input: input) } @@ -160,6 +160,11 @@ public struct Dms { return try client.send(operation: "CreateReplicationTask", path: "/", httpMethod: "POST", input: input) } + /// Returns the task assessment results from Amazon S3. This action always returns the latest results. + public func describeReplicationTaskAssessmentResults(_ input: DescribeReplicationTaskAssessmentResultsMessage) throws -> DescribeReplicationTaskAssessmentResultsResponse { + return try client.send(operation: "DescribeReplicationTaskAssessmentResults", path: "/", httpMethod: "POST", input: input) + } + /// Removes metadata tags from a DMS resource. public func removeTagsFromResource(_ input: RemoveTagsFromResourceMessage) throws -> RemoveTagsFromResourceResponse { return try client.send(operation: "RemoveTagsFromResource", path: "/", httpMethod: "POST", input: input) @@ -205,16 +210,16 @@ public struct Dms { return try client.send(operation: "DescribeEndpointTypes", path: "/", httpMethod: "POST", input: input) } + /// Starts the replication task assessment for unsupported data types in the source database. + public func startReplicationTaskAssessment(_ input: StartReplicationTaskAssessmentMessage) throws -> StartReplicationTaskAssessmentResponse { + return try client.send(operation: "StartReplicationTaskAssessment", path: "/", httpMethod: "POST", input: input) + } + /// Provides a description of the certificate. public func describeCertificates(_ input: DescribeCertificatesMessage) throws -> DescribeCertificatesResponse { return try client.send(operation: "DescribeCertificates", path: "/", httpMethod: "POST", input: input) } - /// Creates an endpoint using the provided settings. - public func createEndpoint(_ input: CreateEndpointMessage) throws -> CreateEndpointResponse { - return try client.send(operation: "CreateEndpoint", path: "/", httpMethod: "POST", input: input) - } - /// Adds metadata tags to a DMS resource, including replication instance, endpoint, security group, and migration task. These tags can also be used with cost allocation reporting to track cost associated with DMS resources, or used in a Condition statement in an IAM policy for DMS. public func addTagsToResource(_ input: AddTagsToResourceMessage) throws -> AddTagsToResourceResponse { return try client.send(operation: "AddTagsToResource", path: "/", httpMethod: "POST", input: input) @@ -225,5 +230,10 @@ public struct Dms { return try client.send(operation: "ModifyReplicationTask", path: "/", httpMethod: "POST", input: input) } + /// Creates an endpoint using the provided settings. + public func createEndpoint(_ input: CreateEndpointMessage) throws -> CreateEndpointResponse { + return try client.send(operation: "CreateEndpoint", path: "/", httpMethod: "POST", input: input) + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/dms/Dms_Shapes.swift b/Sources/AWSSDKSwift/Services/dms/Dms_Shapes.swift index 26649bd9730..fc21f9da921 100644 --- a/Sources/AWSSDKSwift/Services/dms/Dms_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/dms/Dms_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Dms { public struct ModifyReplicationSubnetGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationSubnetGroup", required: false, type: .structure) ] /// The modified replication subnet group. @@ -22,7 +22,7 @@ extension Dms { } public struct CreateReplicationTaskResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTask", required: false, type: .structure) ] /// The replication task that was created. @@ -38,22 +38,22 @@ extension Dms { } public struct CreateReplicationSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubnetIds", required: true, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIds", required: true, type: .list), AWSShapeMember(label: "ReplicationSubnetGroupIdentifier", required: true, type: .string), AWSShapeMember(label: "ReplicationSubnetGroupDescription", required: true, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure) + AWSShapeMember(label: "Tags", required: false, type: .list) ] /// The EC2 subnet IDs for the subnet group. - public let subnetIds: SubnetIdentifierList + public let subnetIds: [String] /// The name for the replication subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 alphanumeric characters, periods, spaces, underscores, or hyphens. Must not be "default". Example: mySubnetgroup public let replicationSubnetGroupIdentifier: String /// The description for the subnet group. public let replicationSubnetGroupDescription: String /// The tag to be assigned to the subnet group. - public let tags: TagList? + public let tags: [Tag]? - public init(subnetIds: SubnetIdentifierList, replicationSubnetGroupIdentifier: String, replicationSubnetGroupDescription: String, tags: TagList? = nil) { + public init(subnetIds: [String], replicationSubnetGroupIdentifier: String, replicationSubnetGroupDescription: String, tags: [Tag]? = nil) { self.subnetIds = subnetIds self.replicationSubnetGroupIdentifier = replicationSubnetGroupIdentifier self.replicationSubnetGroupDescription = replicationSubnetGroupDescription @@ -69,7 +69,7 @@ extension Dms { } public struct ModifyEndpointResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Endpoint", required: false, type: .structure) ] /// The modified endpoint. @@ -84,35 +84,20 @@ extension Dms { } } - public struct ReplicationTaskList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReplicationTask", required: false, type: .list) - ] - public let replicationTask: [ReplicationTask]? - - public init(replicationTask: [ReplicationTask]? = nil) { - self.replicationTask = replicationTask - } - - private enum CodingKeys: String, CodingKey { - case replicationTask = "ReplicationTask" - } - } - public struct DescribeReplicationSubnetGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure) + AWSShapeMember(label: "Filters", required: false, type: .list) ] /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. public let maxRecords: Int32? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// Filters applied to the describe action. - public let filters: FilterList? + public let filters: [Filter]? - public init(maxRecords: Int32? = nil, marker: String? = nil, filters: FilterList? = nil) { + public init(maxRecords: Int32? = nil, marker: String? = nil, filters: [Filter]? = nil) { self.maxRecords = maxRecords self.marker = marker self.filters = filters @@ -125,35 +110,20 @@ extension Dms { } } - public struct FilterList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Filter", required: false, type: .list) - ] - public let filter: [Filter]? - - public init(filter: [Filter]? = nil) { - self.filter = filter - } - - private enum CodingKeys: String, CodingKey { - case filter = "Filter" - } - } - public struct DescribeEndpointsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure) + AWSShapeMember(label: "Filters", required: false, type: .list) ] /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. public let maxRecords: Int32? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// Filters applied to the describe action. Valid filter names: endpoint-arn | endpoint-type | endpoint-id | engine-name - public let filters: FilterList? + public let filters: [Filter]? - public init(maxRecords: Int32? = nil, marker: String? = nil, filters: FilterList? = nil) { + public init(maxRecords: Int32? = nil, marker: String? = nil, filters: [Filter]? = nil) { self.maxRecords = maxRecords self.marker = marker self.filters = filters @@ -166,39 +136,50 @@ extension Dms { } } - public struct DeleteEndpointMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EndpointArn", required: true, type: .string) + public struct DescribeReplicationTaskAssessmentResultsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "ReplicationTaskArn", required: false, type: .string) ] - /// The Amazon Resource Name (ARN) string that uniquely identifies the endpoint. - public let endpointArn: String + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// - The Amazon Resource Name (ARN) string that uniquely identifies the task. When this input parameter is specified the API will return only one result and ignore the values of the max-records and marker parameters. + public let replicationTaskArn: String? - public init(endpointArn: String) { - self.endpointArn = endpointArn + public init(marker: String? = nil, maxRecords: Int32? = nil, replicationTaskArn: String? = nil) { + self.marker = marker + self.maxRecords = maxRecords + self.replicationTaskArn = replicationTaskArn } private enum CodingKeys: String, CodingKey { - case endpointArn = "EndpointArn" + case marker = "Marker" + case maxRecords = "MaxRecords" + case replicationTaskArn = "ReplicationTaskArn" } } - public struct EventCategoriesList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventCategory", required: false, type: .list) + public struct DeleteEndpointMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointArn", required: true, type: .string) ] - public let eventCategory: [String]? + /// The Amazon Resource Name (ARN) string that uniquely identifies the endpoint. + public let endpointArn: String - public init(eventCategory: [String]? = nil) { - self.eventCategory = eventCategory + public init(endpointArn: String) { + self.endpointArn = endpointArn } private enum CodingKeys: String, CodingKey { - case eventCategory = "EventCategory" + case endpointArn = "EndpointArn" } } public struct S3Settings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CsvRowDelimiter", required: false, type: .string), AWSShapeMember(label: "CompressionType", required: false, type: .enum), AWSShapeMember(label: "ServiceAccessRoleArn", required: false, type: .string), @@ -243,38 +224,8 @@ extension Dms { } } - public struct ReplicationSubnetGroups: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReplicationSubnetGroup", required: false, type: .list) - ] - public let replicationSubnetGroup: [ReplicationSubnetGroup]? - - public init(replicationSubnetGroup: [ReplicationSubnetGroup]? = nil) { - self.replicationSubnetGroup = replicationSubnetGroup - } - - private enum CodingKeys: String, CodingKey { - case replicationSubnetGroup = "ReplicationSubnetGroup" - } - } - - public struct FilterValueList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: false, type: .list) - ] - public let value: [String]? - - public init(value: [String]? = nil) { - self.value = value - } - - private enum CodingKeys: String, CodingKey { - case value = "Value" - } - } - public struct Endpoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExtraConnectionAttributes", required: false, type: .string), AWSShapeMember(label: "EndpointIdentifier", required: false, type: .string), AWSShapeMember(label: "Username", required: false, type: .string), @@ -370,16 +321,16 @@ extension Dms { } public struct DescribeOrderableReplicationInstancesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OrderableReplicationInstances", required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OrderableReplicationInstances", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string) ] /// The order-able replication instances available. - public let orderableReplicationInstances: OrderableReplicationInstanceList? + public let orderableReplicationInstances: [OrderableReplicationInstance]? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - public init(orderableReplicationInstances: OrderableReplicationInstanceList? = nil, marker: String? = nil) { + public init(orderableReplicationInstances: [OrderableReplicationInstance]? = nil, marker: String? = nil) { self.orderableReplicationInstances = orderableReplicationInstances self.marker = marker } @@ -390,8 +341,34 @@ extension Dms { } } + public struct DescribeReplicationTaskAssessmentResultsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "ReplicationTaskAssessmentResults", required: false, type: .list), + AWSShapeMember(label: "BucketName", required: false, type: .string) + ] + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// The task assessment report. + public let replicationTaskAssessmentResults: [ReplicationTaskAssessmentResult]? + /// - The Amazon S3 bucket where the task assessment report is located. + public let bucketName: String? + + public init(marker: String? = nil, replicationTaskAssessmentResults: [ReplicationTaskAssessmentResult]? = nil, bucketName: String? = nil) { + self.marker = marker + self.replicationTaskAssessmentResults = replicationTaskAssessmentResults + self.bucketName = bucketName + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case replicationTaskAssessmentResults = "ReplicationTaskAssessmentResults" + case bucketName = "BucketName" + } + } + public struct DescribeTableStatisticsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "TableStatistics", required: false, type: .list), AWSShapeMember(label: "ReplicationTaskArn", required: false, type: .string) @@ -417,15 +394,15 @@ extension Dms { } public struct EventSubscription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "SnsTopicArn", required: false, type: .string), - AWSShapeMember(label: "SourceIdsList", required: false, type: .structure), + AWSShapeMember(label: "SourceIdsList", required: false, type: .list), AWSShapeMember(label: "SourceType", required: false, type: .string), AWSShapeMember(label: "CustSubscriptionId", required: false, type: .string), AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "CustomerAwsId", required: false, type: .string), - AWSShapeMember(label: "EventCategoriesList", required: false, type: .structure), + AWSShapeMember(label: "EventCategoriesList", required: false, type: .list), AWSShapeMember(label: "SubscriptionCreationTime", required: false, type: .string) ] /// The status of the AWS DMS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that AWS DMS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created. @@ -433,7 +410,7 @@ extension Dms { /// The topic ARN of the AWS DMS event notification subscription. public let snsTopicArn: String? /// A list of source Ids for the event subscription. - public let sourceIdsList: SourceIdsList? + public let sourceIdsList: [String]? /// The type of AWS DMS resource that generates events. Valid values: replication-instance | replication-server | security-group | migration-task public let sourceType: String? /// The AWS DMS event notification subscription Id. @@ -443,11 +420,11 @@ extension Dms { /// The AWS customer account associated with the AWS DMS event notification subscription. public let customerAwsId: String? /// A lists of event categories. - public let eventCategoriesList: EventCategoriesList? + public let eventCategoriesList: [String]? /// The time the RDS event notification subscription was created. public let subscriptionCreationTime: String? - public init(status: String? = nil, snsTopicArn: String? = nil, sourceIdsList: SourceIdsList? = nil, sourceType: String? = nil, custSubscriptionId: String? = nil, enabled: Bool? = nil, customerAwsId: String? = nil, eventCategoriesList: EventCategoriesList? = nil, subscriptionCreationTime: String? = nil) { + public init(status: String? = nil, snsTopicArn: String? = nil, sourceIdsList: [String]? = nil, sourceType: String? = nil, custSubscriptionId: String? = nil, enabled: Bool? = nil, customerAwsId: String? = nil, eventCategoriesList: [String]? = nil, subscriptionCreationTime: String? = nil) { self.status = status self.snsTopicArn = snsTopicArn self.sourceIdsList = sourceIdsList @@ -473,19 +450,19 @@ extension Dms { } public struct DescribeEndpointTypesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure) + AWSShapeMember(label: "Filters", required: false, type: .list) ] /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. public let maxRecords: Int32? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// Filters applied to the describe action. Valid filter names: engine-name | endpoint-type - public let filters: FilterList? + public let filters: [Filter]? - public init(maxRecords: Int32? = nil, marker: String? = nil, filters: FilterList? = nil) { + public init(maxRecords: Int32? = nil, marker: String? = nil, filters: [Filter]? = nil) { self.maxRecords = maxRecords self.marker = marker self.filters = filters @@ -498,36 +475,6 @@ extension Dms { } } - public struct VpcSecurityGroupMembershipList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcSecurityGroupMembership", required: false, type: .list) - ] - public let vpcSecurityGroupMembership: [VpcSecurityGroupMembership]? - - public init(vpcSecurityGroupMembership: [VpcSecurityGroupMembership]? = nil) { - self.vpcSecurityGroupMembership = vpcSecurityGroupMembership - } - - private enum CodingKeys: String, CodingKey { - case vpcSecurityGroupMembership = "VpcSecurityGroupMembership" - } - } - - public struct TagList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Tag", required: false, type: .list) - ] - public let tag: [Tag]? - - public init(tag: [Tag]? = nil) { - self.tag = tag - } - - private enum CodingKeys: String, CodingKey { - case tag = "Tag" - } - } - public enum DmsSslModeValue: String, CustomStringConvertible, Codable { case none = "none" case require = "require" @@ -537,7 +484,7 @@ extension Dms { } public struct DeleteReplicationInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationInstanceArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the replication instance to be deleted. @@ -553,7 +500,7 @@ extension Dms { } public struct SupportedEndpointType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EngineName", required: false, type: .string), AWSShapeMember(label: "EndpointType", required: false, type: .enum), AWSShapeMember(label: "SupportsCDC", required: false, type: .boolean) @@ -579,7 +526,7 @@ extension Dms { } public struct DeleteEventSubscriptionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSubscription", required: false, type: .structure) ] /// The event subscription that was deleted. @@ -602,16 +549,16 @@ extension Dms { } public struct DescribeEventCategoriesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceType", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure) + AWSShapeMember(label: "Filters", required: false, type: .list) ] /// The type of AWS DMS resource that generates events. Valid values: replication-instance | migration-task public let sourceType: String? /// Filters applied to the action. - public let filters: FilterList? + public let filters: [Filter]? - public init(sourceType: String? = nil, filters: FilterList? = nil) { + public init(sourceType: String? = nil, filters: [Filter]? = nil) { self.sourceType = sourceType self.filters = filters } @@ -623,16 +570,16 @@ extension Dms { } public struct DescribeCertificatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Certificates", required: false, type: .structure) + AWSShapeMember(label: "Certificates", required: false, type: .list) ] /// The pagination token. public let marker: String? /// The Secure Sockets Layer (SSL) certificates associated with the replication instance. - public let certificates: CertificateList? + public let certificates: [Certificate]? - public init(marker: String? = nil, certificates: CertificateList? = nil) { + public init(marker: String? = nil, certificates: [Certificate]? = nil) { self.marker = marker self.certificates = certificates } @@ -648,19 +595,19 @@ extension Dms { } public struct DescribeReplicationTasksMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure) + AWSShapeMember(label: "Filters", required: false, type: .list) ] /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. public let maxRecords: Int32? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// Filters applied to the describe action. Valid filter names: replication-task-arn | replication-task-id | migration-type | endpoint-arn | replication-instance-arn - public let filters: FilterList? + public let filters: [Filter]? - public init(maxRecords: Int32? = nil, marker: String? = nil, filters: FilterList? = nil) { + public init(maxRecords: Int32? = nil, marker: String? = nil, filters: [Filter]? = nil) { self.maxRecords = maxRecords self.marker = marker self.filters = filters @@ -674,7 +621,7 @@ extension Dms { } public struct DeleteReplicationInstanceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationInstance", required: false, type: .structure) ] /// The replication instance that was deleted. @@ -690,7 +637,7 @@ extension Dms { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -715,7 +662,7 @@ extension Dms { } public struct ReloadTablesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTaskArn", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the replication task. @@ -731,16 +678,16 @@ extension Dms { } public struct DescribeEndpointTypesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "SupportedEndpointTypes", required: false, type: .structure) + AWSShapeMember(label: "SupportedEndpointTypes", required: false, type: .list) ] /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// The type of endpoints that are supported. - public let supportedEndpointTypes: SupportedEndpointTypeList? + public let supportedEndpointTypes: [SupportedEndpointType]? - public init(marker: String? = nil, supportedEndpointTypes: SupportedEndpointTypeList? = nil) { + public init(marker: String? = nil, supportedEndpointTypes: [SupportedEndpointType]? = nil) { self.marker = marker self.supportedEndpointTypes = supportedEndpointTypes } @@ -752,7 +699,7 @@ extension Dms { } public struct ListTagsForResourceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) string that uniquely identifies the AWS DMS resource. @@ -768,14 +715,14 @@ extension Dms { } public struct CreateEventSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnsTopicArn", required: true, type: .string), AWSShapeMember(label: "SubscriptionName", required: true, type: .string), AWSShapeMember(label: "SourceType", required: false, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "EventCategories", required: false, type: .structure), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "EventCategories", required: false, type: .list), AWSShapeMember(label: "Enabled", required: false, type: .boolean), - AWSShapeMember(label: "SourceIds", required: false, type: .structure) + AWSShapeMember(label: "SourceIds", required: false, type: .list) ] /// The Amazon Resource Name (ARN) of the Amazon SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it. public let snsTopicArn: String @@ -784,15 +731,15 @@ extension Dms { /// The type of AWS DMS resource that generates the events. For example, if you want to be notified of events generated by a replication instance, you set this parameter to replication-instance. If this value is not specified, all events are returned. Valid values: replication-instance | migration-task public let sourceType: String? /// A tag to be attached to the event subscription. - public let tags: TagList? + public let tags: [Tag]? /// A list of event categories for a source type that you want to subscribe to. You can see a list of the categories for a given source type by calling the DescribeEventCategories action or in the topic Working with Events and Notifications in the AWS Database Migration Service User Guide. - public let eventCategories: EventCategoriesList? + public let eventCategories: [String]? /// A Boolean value; set to true to activate the subscription, or set to false to create the subscription but not activate it. public let enabled: Bool? /// The list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens. - public let sourceIds: SourceIdsList? + public let sourceIds: [String]? - public init(snsTopicArn: String, subscriptionName: String, sourceType: String? = nil, tags: TagList? = nil, eventCategories: EventCategoriesList? = nil, enabled: Bool? = nil, sourceIds: SourceIdsList? = nil) { + public init(snsTopicArn: String, subscriptionName: String, sourceType: String? = nil, tags: [Tag]? = nil, eventCategories: [String]? = nil, enabled: Bool? = nil, sourceIds: [String]? = nil) { self.snsTopicArn = snsTopicArn self.subscriptionName = subscriptionName self.sourceType = sourceType @@ -814,12 +761,12 @@ extension Dms { } public struct StartReplicationTaskMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTaskArn", required: true, type: .string), AWSShapeMember(label: "CdcStartTime", required: false, type: .timestamp), AWSShapeMember(label: "StartReplicationTaskType", required: true, type: .enum) ] - /// The Amazon Resource Number (ARN) of the replication task to be started. + /// The Amazon Resource Name (ARN) of the replication task to be started. public let replicationTaskArn: String /// The start time for the Change Data Capture (CDC) operation. public let cdcStartTime: TimeStamp? @@ -840,11 +787,11 @@ extension Dms { } public struct CreateReplicationInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), - AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), + AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .list), AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), @@ -858,11 +805,11 @@ extension Dms { /// Specifies if the replication instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the Multi-AZ parameter is set to true. public let multiAZ: Bool? /// Tags to be associated with the replication instance. - public let tags: TagList? + public let tags: [Tag]? /// The amount of storage (in gigabytes) to be initially allocated for the replication instance. public let allocatedStorage: Int32? /// Specifies the VPC security group to be used with the replication instance. The VPC security group must work with the VPC containing the replication instance. - public let vpcSecurityGroupIds: VpcSecurityGroupIdList? + public let vpcSecurityGroupIds: [String]? /// The EC2 Availability Zone that the replication instance will be created in. Default: A random, system-chosen Availability Zone in the endpoint's region. Example: us-east-1d public let availabilityZone: String? /// Specifies the accessibility options for the replication instance. A value of true represents an instance with a public IP address. A value of false represents an instance with a private IP address. The default value is true. @@ -882,7 +829,7 @@ extension Dms { /// The KMS key identifier that will be used to encrypt the content on the replication instance. If you do not specify a value for the KmsKeyId parameter, then AWS DMS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region. public let kmsKeyId: String? - public init(multiAZ: Bool? = nil, tags: TagList? = nil, allocatedStorage: Int32? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, availabilityZone: String? = nil, publiclyAccessible: Bool? = nil, autoMinorVersionUpgrade: Bool? = nil, replicationInstanceIdentifier: String, engineVersion: String? = nil, replicationInstanceClass: String, preferredMaintenanceWindow: String? = nil, replicationSubnetGroupIdentifier: String? = nil, kmsKeyId: String? = nil) { + public init(multiAZ: Bool? = nil, tags: [Tag]? = nil, allocatedStorage: Int32? = nil, vpcSecurityGroupIds: [String]? = nil, availabilityZone: String? = nil, publiclyAccessible: Bool? = nil, autoMinorVersionUpgrade: Bool? = nil, replicationInstanceIdentifier: String, engineVersion: String? = nil, replicationInstanceClass: String, preferredMaintenanceWindow: String? = nil, replicationSubnetGroupIdentifier: String? = nil, kmsKeyId: String? = nil) { self.multiAZ = multiAZ self.tags = tags self.allocatedStorage = allocatedStorage @@ -921,7 +868,7 @@ extension Dms { } public struct DeleteCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificate", required: false, type: .structure) ] /// The Secure Sockets Layer (SSL) certificate. @@ -937,16 +884,16 @@ extension Dms { } public struct DescribeConnectionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Connections", required: false, type: .structure) + AWSShapeMember(label: "Connections", required: false, type: .list) ] /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// A description of the connections. - public let connections: ConnectionList? + public let connections: [Connection]? - public init(marker: String? = nil, connections: ConnectionList? = nil) { + public init(marker: String? = nil, connections: [Connection]? = nil) { self.marker = marker self.connections = connections } @@ -958,14 +905,14 @@ extension Dms { } public struct DescribeEventsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "SourceType", required: false, type: .enum), - AWSShapeMember(label: "EventCategories", required: false, type: .structure), + AWSShapeMember(label: "EventCategories", required: false, type: .list), AWSShapeMember(label: "EndTime", required: false, type: .timestamp), - AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "SourceIdentifier", required: false, type: .string), AWSShapeMember(label: "Duration", required: false, type: .integer) ] @@ -978,17 +925,17 @@ extension Dms { /// The type of AWS DMS resource that generates events. Valid values: replication-instance | migration-task public let sourceType: SourceType? /// A list of event categories for a source type that you want to subscribe to. - public let eventCategories: EventCategoriesList? + public let eventCategories: [String]? /// The end time for the events to be listed. public let endTime: TimeStamp? /// Filters applied to the action. - public let filters: FilterList? + public let filters: [Filter]? /// The identifier of the event source. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It cannot end with a hyphen or contain two consecutive hyphens. public let sourceIdentifier: String? /// The duration of the events to be listed. public let duration: Int32? - public init(startTime: TimeStamp? = nil, maxRecords: Int32? = nil, marker: String? = nil, sourceType: SourceType? = nil, eventCategories: EventCategoriesList? = nil, endTime: TimeStamp? = nil, filters: FilterList? = nil, sourceIdentifier: String? = nil, duration: Int32? = nil) { + public init(startTime: TimeStamp? = nil, maxRecords: Int32? = nil, marker: String? = nil, sourceType: SourceType? = nil, eventCategories: [String]? = nil, endTime: TimeStamp? = nil, filters: [Filter]? = nil, sourceIdentifier: String? = nil, duration: Int32? = nil) { self.startTime = startTime self.maxRecords = maxRecords self.marker = marker @@ -1013,18 +960,19 @@ extension Dms { } } - public struct VpcSecurityGroupIdList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcSecurityGroupId", required: false, type: .list) + public struct StartReplicationTaskAssessmentResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReplicationTask", required: false, type: .structure) ] - public let vpcSecurityGroupId: [String]? + /// The assessed replication task. + public let replicationTask: ReplicationTask? - public init(vpcSecurityGroupId: [String]? = nil) { - self.vpcSecurityGroupId = vpcSecurityGroupId + public init(replicationTask: ReplicationTask? = nil) { + self.replicationTask = replicationTask } private enum CodingKeys: String, CodingKey { - case vpcSecurityGroupId = "VpcSecurityGroupId" + case replicationTask = "ReplicationTask" } } @@ -1035,33 +983,38 @@ extension Dms { } public struct DescribeTableStatisticsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "ReplicationTaskArn", required: true, type: .string) + AWSShapeMember(label: "ReplicationTaskArn", required: true, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "Marker", required: false, type: .string) ] - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 500. public let maxRecords: Int32? /// The Amazon Resource Name (ARN) of the replication task. public let replicationTaskArn: String + /// Filters applied to the describe table statistics action. Valid filter names: schema-name | table-name | table-state A combination of filters creates an AND condition where each record matches all specified filters. + public let filters: [Filter]? + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? - public init(marker: String? = nil, maxRecords: Int32? = nil, replicationTaskArn: String) { - self.marker = marker + public init(maxRecords: Int32? = nil, replicationTaskArn: String, filters: [Filter]? = nil, marker: String? = nil) { self.maxRecords = maxRecords self.replicationTaskArn = replicationTaskArn + self.filters = filters + self.marker = marker } private enum CodingKeys: String, CodingKey { - case marker = "Marker" case maxRecords = "MaxRecords" case replicationTaskArn = "ReplicationTaskArn" + case filters = "Filters" + case marker = "Marker" } } public struct DescribeRefreshSchemasStatusMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndpointArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) string that uniquely identifies the endpoint. @@ -1077,7 +1030,7 @@ extension Dms { } public struct RemoveTagsFromResourceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -1104,7 +1057,7 @@ extension Dms { } public struct MongoDbSettings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthType", required: false, type: .enum), AWSShapeMember(label: "AuthSource", required: false, type: .string), AWSShapeMember(label: "ServerName", required: false, type: .string), @@ -1170,7 +1123,7 @@ extension Dms { } public struct ModifyReplicationInstanceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationInstance", required: false, type: .structure) ] /// The modified replication instance. @@ -1186,13 +1139,13 @@ extension Dms { } public struct DescribeEventCategoriesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventCategoryGroupList", required: false, type: .structure) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventCategoryGroupList", required: false, type: .list) ] /// A list of event categories. - public let eventCategoryGroupList: EventCategoryGroupList? + public let eventCategoryGroupList: [EventCategoryGroup]? - public init(eventCategoryGroupList: EventCategoryGroupList? = nil) { + public init(eventCategoryGroupList: [EventCategoryGroup]? = nil) { self.eventCategoryGroupList = eventCategoryGroupList } @@ -1201,32 +1154,33 @@ extension Dms { } } - public struct EventList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Event", required: false, type: .list) + public struct StartReplicationTaskAssessmentMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReplicationTaskArn", required: true, type: .string) ] - public let event: [Event]? + /// The Amazon Resource Name (ARN) of the replication task. + public let replicationTaskArn: String - public init(event: [Event]? = nil) { - self.event = event + public init(replicationTaskArn: String) { + self.replicationTaskArn = replicationTaskArn } private enum CodingKeys: String, CodingKey { - case event = "Event" + case replicationTaskArn = "ReplicationTaskArn" } } public struct DescribeReplicationSubnetGroupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "ReplicationSubnetGroups", required: false, type: .structure) + AWSShapeMember(label: "ReplicationSubnetGroups", required: false, type: .list) ] /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// A description of the replication subnet groups. - public let replicationSubnetGroups: ReplicationSubnetGroups? + public let replicationSubnetGroups: [ReplicationSubnetGroup]? - public init(marker: String? = nil, replicationSubnetGroups: ReplicationSubnetGroups? = nil) { + public init(marker: String? = nil, replicationSubnetGroups: [ReplicationSubnetGroup]? = nil) { self.marker = marker self.replicationSubnetGroups = replicationSubnetGroups } @@ -1238,13 +1192,13 @@ extension Dms { } public struct DescribeAccountAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountQuotas", required: false, type: .structure) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountQuotas", required: false, type: .list) ] /// Account quota information. - public let accountQuotas: AccountQuotaList? + public let accountQuotas: [AccountQuota]? - public init(accountQuotas: AccountQuotaList? = nil) { + public init(accountQuotas: [AccountQuota]? = nil) { self.accountQuotas = accountQuotas } @@ -1254,16 +1208,16 @@ extension Dms { } public struct DescribeEventsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Events", required: false, type: .structure) + AWSShapeMember(label: "Events", required: false, type: .list) ] /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// The events described. - public let events: EventList? + public let events: [Event]? - public init(marker: String? = nil, events: EventList? = nil) { + public init(marker: String? = nil, events: [Event]? = nil) { self.marker = marker self.events = events } @@ -1275,7 +1229,7 @@ extension Dms { } public struct DeleteEventSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubscriptionName", required: true, type: .string) ] /// The name of the DMS event notification subscription to be deleted. @@ -1298,7 +1252,7 @@ extension Dms { } public struct DescribeSchemasResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Schemas", required: false, type: .list) ] @@ -1322,38 +1276,8 @@ extension Dms { } - public struct SourceIdsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceId", required: false, type: .list) - ] - public let sourceId: [String]? - - public init(sourceId: [String]? = nil) { - self.sourceId = sourceId - } - - private enum CodingKeys: String, CodingKey { - case sourceId = "SourceId" - } - } - - public struct SubnetIdentifierList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubnetIdentifier", required: false, type: .list) - ] - public let subnetIdentifier: [String]? - - public init(subnetIdentifier: [String]? = nil) { - self.subnetIdentifier = subnetIdentifier - } - - private enum CodingKeys: String, CodingKey { - case subnetIdentifier = "SubnetIdentifier" - } - } - public struct TableToReload: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaName", required: false, type: .string), AWSShapeMember(label: "TableName", required: false, type: .string) ] @@ -1373,23 +1297,8 @@ extension Dms { } } - public struct CertificateList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Certificate", required: false, type: .list) - ] - public let certificate: [Certificate]? - - public init(certificate: [Certificate]? = nil) { - self.certificate = certificate - } - - private enum CodingKeys: String, CodingKey { - case certificate = "Certificate" - } - } - public struct Certificate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ValidFromDate", required: false, type: .timestamp), AWSShapeMember(label: "KeyLength", required: false, type: .integer), AWSShapeMember(label: "SigningAlgorithm", required: false, type: .string), @@ -1449,29 +1358,14 @@ extension Dms { } } - public struct ReplicationInstanceList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReplicationInstance", required: false, type: .list) - ] - public let replicationInstance: [ReplicationInstance]? - - public init(replicationInstance: [ReplicationInstance]? = nil) { - self.replicationInstance = replicationInstance - } - - private enum CodingKeys: String, CodingKey { - case replicationInstance = "ReplicationInstance" - } - } - public struct ListTagsForResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TagList", required: false, type: .structure) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TagList", required: false, type: .list) ] /// A list of tags for the resource. - public let tagList: TagList? + public let tagList: [Tag]? - public init(tagList: TagList? = nil) { + public init(tagList: [Tag]? = nil) { self.tagList = tagList } @@ -1481,11 +1375,11 @@ extension Dms { } public struct ModifyEventSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnsTopicArn", required: false, type: .string), AWSShapeMember(label: "SubscriptionName", required: true, type: .string), AWSShapeMember(label: "SourceType", required: false, type: .string), - AWSShapeMember(label: "EventCategories", required: false, type: .structure), + AWSShapeMember(label: "EventCategories", required: false, type: .list), AWSShapeMember(label: "Enabled", required: false, type: .boolean) ] /// The Amazon Resource Name (ARN) of the Amazon SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it. @@ -1495,11 +1389,11 @@ extension Dms { /// The type of AWS DMS resource that generates the events you want to subscribe to. Valid values: replication-instance | migration-task public let sourceType: String? /// A list of event categories for a source type that you want to subscribe to. Use the DescribeEventCategories action to see a list of event categories. - public let eventCategories: EventCategoriesList? + public let eventCategories: [String]? /// A Boolean value; set to true to activate the subscription. public let enabled: Bool? - public init(snsTopicArn: String? = nil, subscriptionName: String, sourceType: String? = nil, eventCategories: EventCategoriesList? = nil, enabled: Bool? = nil) { + public init(snsTopicArn: String? = nil, subscriptionName: String, sourceType: String? = nil, eventCategories: [String]? = nil, enabled: Bool? = nil) { self.snsTopicArn = snsTopicArn self.subscriptionName = subscriptionName self.sourceType = sourceType @@ -1517,7 +1411,7 @@ extension Dms { } public struct AvailabilityZone: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string) ] /// The name of the availability zone. @@ -1540,7 +1434,7 @@ extension Dms { } public struct ModifyReplicationInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AllowMajorVersionUpgrade", required: false, type: .boolean), AWSShapeMember(label: "ReplicationInstanceIdentifier", required: false, type: .string), AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), @@ -1548,7 +1442,7 @@ extension Dms { AWSShapeMember(label: "ReplicationInstanceClass", required: false, type: .string), AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), - AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), + AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .list), AWSShapeMember(label: "ReplicationInstanceArn", required: true, type: .string), AWSShapeMember(label: "ApplyImmediately", required: false, type: .boolean), AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean) @@ -1568,7 +1462,7 @@ extension Dms { /// The amount of storage (in gigabytes) to be allocated for the replication instance. public let allocatedStorage: Int32? /// Specifies the VPC security group to be used with the replication instance. The VPC security group must work with the VPC containing the replication instance. - public let vpcSecurityGroupIds: VpcSecurityGroupIdList? + public let vpcSecurityGroupIds: [String]? /// The Amazon Resource Name (ARN) of the replication instance. public let replicationInstanceArn: String /// Indicates whether the changes should be applied immediately or during the next maintenance window. @@ -1576,7 +1470,7 @@ extension Dms { /// Indicates that minor version upgrades will be applied automatically to the replication instance during the maintenance window. Changing this parameter does not result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to true during the maintenance window, and a newer minor version is available, and AWS DMS has enabled auto patching for that engine version. public let autoMinorVersionUpgrade: Bool? - public init(allowMajorVersionUpgrade: Bool? = nil, replicationInstanceIdentifier: String? = nil, multiAZ: Bool? = nil, engineVersion: String? = nil, replicationInstanceClass: String? = nil, preferredMaintenanceWindow: String? = nil, allocatedStorage: Int32? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, replicationInstanceArn: String, applyImmediately: Bool? = nil, autoMinorVersionUpgrade: Bool? = nil) { + public init(allowMajorVersionUpgrade: Bool? = nil, replicationInstanceIdentifier: String? = nil, multiAZ: Bool? = nil, engineVersion: String? = nil, replicationInstanceClass: String? = nil, preferredMaintenanceWindow: String? = nil, allocatedStorage: Int32? = nil, vpcSecurityGroupIds: [String]? = nil, replicationInstanceArn: String, applyImmediately: Bool? = nil, autoMinorVersionUpgrade: Bool? = nil) { self.allowMajorVersionUpgrade = allowMajorVersionUpgrade self.replicationInstanceIdentifier = replicationInstanceIdentifier self.multiAZ = multiAZ @@ -1606,7 +1500,7 @@ extension Dms { } public struct Connection: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastFailureMessage", required: false, type: .string), AWSShapeMember(label: "ReplicationInstanceIdentifier", required: false, type: .string), AWSShapeMember(label: "ReplicationInstanceArn", required: false, type: .string), @@ -1647,7 +1541,7 @@ extension Dms { } public struct RefreshSchemasStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastFailureMessage", required: false, type: .string), AWSShapeMember(label: "ReplicationInstanceArn", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .enum), @@ -1683,19 +1577,19 @@ extension Dms { } public struct DescribeReplicationInstancesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure) + AWSShapeMember(label: "Filters", required: false, type: .list) ] /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. public let maxRecords: Int32? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// Filters applied to the describe action. Valid filter names: replication-instance-arn | replication-instance-id | replication-instance-class | engine-version - public let filters: FilterList? + public let filters: [Filter]? - public init(maxRecords: Int32? = nil, marker: String? = nil, filters: FilterList? = nil) { + public init(maxRecords: Int32? = nil, marker: String? = nil, filters: [Filter]? = nil) { self.maxRecords = maxRecords self.marker = marker self.filters = filters @@ -1709,16 +1603,16 @@ extension Dms { } public struct DescribeEventSubscriptionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventSubscriptionsList", required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventSubscriptionsList", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string) ] /// A list of event subscriptions. - public let eventSubscriptionsList: EventSubscriptionsList? + public let eventSubscriptionsList: [EventSubscription]? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - public init(eventSubscriptionsList: EventSubscriptionsList? = nil, marker: String? = nil) { + public init(eventSubscriptionsList: [EventSubscription]? = nil, marker: String? = nil) { self.eventSubscriptionsList = eventSubscriptionsList self.marker = marker } @@ -1729,23 +1623,8 @@ extension Dms { } } - public struct ConnectionList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Connection", required: false, type: .list) - ] - public let connection: [Connection]? - - public init(connection: [Connection]? = nil) { - self.connection = connection - } - - private enum CodingKeys: String, CodingKey { - case connection = "Connection" - } - } - public struct AccountQuota: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Max", required: false, type: .long), AWSShapeMember(label: "Used", required: false, type: .long), AWSShapeMember(label: "AccountQuotaName", required: false, type: .string) @@ -1771,19 +1650,19 @@ extension Dms { } public struct DescribeCertificatesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure) + AWSShapeMember(label: "Filters", required: false, type: .list) ] /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 10 public let maxRecords: Int32? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// Filters applied to the certificate described in the form of key-value pairs. - public let filters: FilterList? + public let filters: [Filter]? - public init(maxRecords: Int32? = nil, marker: String? = nil, filters: FilterList? = nil) { + public init(maxRecords: Int32? = nil, marker: String? = nil, filters: [Filter]? = nil) { self.maxRecords = maxRecords self.marker = marker self.filters = filters @@ -1797,7 +1676,7 @@ extension Dms { } public struct ReloadTablesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTaskArn", required: true, type: .string), AWSShapeMember(label: "TablesToReload", required: true, type: .list) ] @@ -1818,7 +1697,7 @@ extension Dms { } public struct RefreshSchemasMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationInstanceArn", required: true, type: .string), AWSShapeMember(label: "EndpointArn", required: true, type: .string) ] @@ -1839,7 +1718,7 @@ extension Dms { } public struct ModifyEventSubscriptionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSubscription", required: false, type: .structure) ] /// The modified event subscription. @@ -1855,7 +1734,7 @@ extension Dms { } public struct StartReplicationTaskResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTask", required: false, type: .structure) ] /// The replication task started. @@ -1871,7 +1750,7 @@ extension Dms { } public struct DeleteReplicationTaskMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTaskArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the replication task to be deleted. @@ -1887,7 +1766,7 @@ extension Dms { } public struct Subnet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIdentifier", required: false, type: .string), AWSShapeMember(label: "SubnetAvailabilityZone", required: false, type: .structure), AWSShapeMember(label: "SubnetStatus", required: false, type: .string) @@ -1913,10 +1792,10 @@ extension Dms { } public struct CreateEndpointMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KmsKeyId", required: false, type: .string), AWSShapeMember(label: "EndpointIdentifier", required: true, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "Username", required: false, type: .string), AWSShapeMember(label: "MongoDbSettings", required: false, type: .structure), AWSShapeMember(label: "DynamoDbSettings", required: false, type: .structure), @@ -1936,7 +1815,7 @@ extension Dms { /// The database endpoint identifier. Identifiers must begin with a letter; must contain only ASCII letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens. public let endpointIdentifier: String /// Tags to be added to the endpoint. - public let tags: TagList? + public let tags: [Tag]? /// The user name to be used to login to the endpoint database. public let username: String? /// Settings in JSON format for the source MongoDB endpoint. For more information about the available settings, see the Configuration Properties When Using MongoDB as a Source for AWS Database Migration Service section at Using Amazon S3 as a Target for AWS Database Migration Service. @@ -1953,7 +1832,7 @@ extension Dms { public let databaseName: String? /// The SSL mode to use for the SSL connection. SSL mode can be one of four values: none, require, verify-ca, verify-full. The default value is none. public let sslMode: DmsSslModeValue? - /// The Amazon Resource Number (ARN) for the certificate. + /// The Amazon Resource Name (ARN) for the certificate. public let certificateArn: String? /// The type of engine for the endpoint. Valid values, depending on the EndPointType, include MYSQL, ORACLE, POSTGRES, MARIADB, AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, MONGODB, and SQLSERVER. public let engineName: String @@ -1964,7 +1843,7 @@ extension Dms { /// Additional attributes associated with the connection. public let extraConnectionAttributes: String? - public init(kmsKeyId: String? = nil, endpointIdentifier: String, tags: TagList? = nil, username: String? = nil, mongoDbSettings: MongoDbSettings? = nil, dynamoDbSettings: DynamoDbSettings? = nil, endpointType: ReplicationEndpointTypeValue, serverName: String? = nil, s3Settings: S3Settings? = nil, databaseName: String? = nil, sslMode: DmsSslModeValue? = nil, certificateArn: String? = nil, engineName: String, password: String? = nil, port: Int32? = nil, extraConnectionAttributes: String? = nil) { + public init(kmsKeyId: String? = nil, endpointIdentifier: String, tags: [Tag]? = nil, username: String? = nil, mongoDbSettings: MongoDbSettings? = nil, dynamoDbSettings: DynamoDbSettings? = nil, endpointType: ReplicationEndpointTypeValue, serverName: String? = nil, s3Settings: S3Settings? = nil, databaseName: String? = nil, sslMode: DmsSslModeValue? = nil, certificateArn: String? = nil, engineName: String, password: String? = nil, port: Int32? = nil, extraConnectionAttributes: String? = nil) { self.kmsKeyId = kmsKeyId self.endpointIdentifier = endpointIdentifier self.tags = tags @@ -2004,16 +1883,16 @@ extension Dms { } public struct EventCategoryGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceType", required: false, type: .string), - AWSShapeMember(label: "EventCategories", required: false, type: .structure) + AWSShapeMember(label: "EventCategories", required: false, type: .list) ] /// The type of AWS DMS resource that generates events. Valid values: replication-instance | replication-server | security-group | migration-task public let sourceType: String? /// A list of event categories for a SourceType that you want to subscribe to. - public let eventCategories: EventCategoriesList? + public let eventCategories: [String]? - public init(sourceType: String? = nil, eventCategories: EventCategoriesList? = nil) { + public init(sourceType: String? = nil, eventCategories: [String]? = nil) { self.sourceType = sourceType self.eventCategories = eventCategories } @@ -2025,9 +1904,9 @@ extension Dms { } public struct ReplicationSubnetGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetGroupStatus", required: false, type: .string), - AWSShapeMember(label: "Subnets", required: false, type: .structure), + AWSShapeMember(label: "Subnets", required: false, type: .list), AWSShapeMember(label: "ReplicationSubnetGroupIdentifier", required: false, type: .string), AWSShapeMember(label: "ReplicationSubnetGroupDescription", required: false, type: .string), AWSShapeMember(label: "VpcId", required: false, type: .string) @@ -2035,7 +1914,7 @@ extension Dms { /// The status of the subnet group. public let subnetGroupStatus: String? /// The subnets that are in the subnet group. - public let subnets: SubnetList? + public let subnets: [Subnet]? /// The identifier of the replication instance subnet group. public let replicationSubnetGroupIdentifier: String? /// The description of the replication subnet group. @@ -2043,7 +1922,7 @@ extension Dms { /// The ID of the VPC. public let vpcId: String? - public init(subnetGroupStatus: String? = nil, subnets: SubnetList? = nil, replicationSubnetGroupIdentifier: String? = nil, replicationSubnetGroupDescription: String? = nil, vpcId: String? = nil) { + public init(subnetGroupStatus: String? = nil, subnets: [Subnet]? = nil, replicationSubnetGroupIdentifier: String? = nil, replicationSubnetGroupDescription: String? = nil, vpcId: String? = nil) { self.subnetGroupStatus = subnetGroupStatus self.subnets = subnets self.replicationSubnetGroupIdentifier = replicationSubnetGroupIdentifier @@ -2061,12 +1940,12 @@ extension Dms { } public struct Event: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "SourceIdentifier", required: false, type: .string), AWSShapeMember(label: "Date", required: false, type: .timestamp), AWSShapeMember(label: "SourceType", required: false, type: .enum), - AWSShapeMember(label: "EventCategories", required: false, type: .structure) + AWSShapeMember(label: "EventCategories", required: false, type: .list) ] /// The event message. public let message: String? @@ -2077,9 +1956,9 @@ extension Dms { /// The type of AWS DMS resource that generates events. Valid values: replication-instance | endpoint | migration-task public let sourceType: SourceType? /// The event categories available for the specified source type. - public let eventCategories: EventCategoriesList? + public let eventCategories: [String]? - public init(message: String? = nil, sourceIdentifier: String? = nil, date: TimeStamp? = nil, sourceType: SourceType? = nil, eventCategories: EventCategoriesList? = nil) { + public init(message: String? = nil, sourceIdentifier: String? = nil, date: TimeStamp? = nil, sourceType: SourceType? = nil, eventCategories: [String]? = nil) { self.message = message self.sourceIdentifier = sourceIdentifier self.date = date @@ -2097,7 +1976,7 @@ extension Dms { } public struct TestConnectionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Connection", required: false, type: .structure) ] /// The connection tested. @@ -2113,22 +1992,22 @@ extension Dms { } public struct DescribeEventSubscriptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "SubscriptionName", required: false, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string) ] /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. public let maxRecords: Int32? /// Filters applied to the action. - public let filters: FilterList? + public let filters: [Filter]? /// The name of the AWS DMS event subscription to be described. public let subscriptionName: String? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, subscriptionName: String? = nil, marker: String? = nil) { + public init(maxRecords: Int32? = nil, filters: [Filter]? = nil, subscriptionName: String? = nil, marker: String? = nil) { self.maxRecords = maxRecords self.filters = filters self.subscriptionName = subscriptionName @@ -2144,73 +2023,93 @@ extension Dms { } public struct TableStatistics: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Deletes", required: false, type: .long), - AWSShapeMember(label: "Updates", required: false, type: .long), - AWSShapeMember(label: "TableState", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaName", required: false, type: .string), AWSShapeMember(label: "FullLoadCondtnlChkFailedRows", required: false, type: .long), AWSShapeMember(label: "FullLoadRows", required: false, type: .long), + AWSShapeMember(label: "LastUpdateTime", required: false, type: .timestamp), + AWSShapeMember(label: "ValidationSuspendedRecords", required: false, type: .long), + AWSShapeMember(label: "ValidationState", required: false, type: .string), + AWSShapeMember(label: "Ddls", required: false, type: .long), + AWSShapeMember(label: "Updates", required: false, type: .long), + AWSShapeMember(label: "TableState", required: false, type: .string), + AWSShapeMember(label: "ValidationFailedRecords", required: false, type: .long), + AWSShapeMember(label: "ValidationPendingRecords", required: false, type: .long), AWSShapeMember(label: "Inserts", required: false, type: .long), - AWSShapeMember(label: "FullLoadErrorRows", required: false, type: .long), AWSShapeMember(label: "TableName", required: false, type: .string), - AWSShapeMember(label: "LastUpdateTime", required: false, type: .timestamp), - AWSShapeMember(label: "Ddls", required: false, type: .long) + AWSShapeMember(label: "FullLoadErrorRows", required: false, type: .long), + AWSShapeMember(label: "Deletes", required: false, type: .long) ] - /// The number of delete actions performed on a table. - public let deletes: Int64? - /// The number of update actions performed on a table. - public let updates: Int64? - /// The state of the table. - public let tableState: String? /// The schema name. public let schemaName: String? /// The number of rows that failed conditional checks during the Full Load operation (valid only for DynamoDB as a target migrations). public let fullLoadCondtnlChkFailedRows: Int64? /// The number of rows added during the Full Load operation. public let fullLoadRows: Int64? - /// The number of insert actions performed on a table. - public let inserts: Int64? - /// The number of rows that failed to load during the Full Load operation (valid only for DynamoDB as a target migrations). - public let fullLoadErrorRows: Int64? - /// The name of the table. - public let tableName: String? /// The last time the table was updated. public let lastUpdateTime: TimeStamp? + /// The number of records that could not be validated. + public let validationSuspendedRecords: Int64? + /// The validation state of the table. The parameter can have the following values Not enabled—Validation is not enabled for the table in the migration task. Pending records—Some records in the table are waiting for validation. Mismatched records—Some records in the table do not match between the source and target. Suspended records—Some records in the table could not be validated. No primary key—The table could not be validated because it had no primary key. Table error—The table was not validated because it was in an error state and some data was not migrated. Validated—All rows in the table were validated. If the table is updated, the status can change from Validated. Error—The table could not be validated because of an unexpected error. + public let validationState: String? /// The Data Definition Language (DDL) used to build and modify the structure of your tables. public let ddls: Int64? + /// The number of update actions performed on a table. + public let updates: Int64? + /// The state of the tables described. Valid states: Table does not exist | Before load | Full load | Table completed | Table cancelled | Table error | Table all | Table updates | Table is being reloaded + public let tableState: String? + /// The number of records that failed validation. + public let validationFailedRecords: Int64? + /// The number of records that have yet to be validated. + public let validationPendingRecords: Int64? + /// The number of insert actions performed on a table. + public let inserts: Int64? + /// The name of the table. + public let tableName: String? + /// The number of rows that failed to load during the Full Load operation (valid only for DynamoDB as a target migrations). + public let fullLoadErrorRows: Int64? + /// The number of delete actions performed on a table. + public let deletes: Int64? - public init(deletes: Int64? = nil, updates: Int64? = nil, tableState: String? = nil, schemaName: String? = nil, fullLoadCondtnlChkFailedRows: Int64? = nil, fullLoadRows: Int64? = nil, inserts: Int64? = nil, fullLoadErrorRows: Int64? = nil, tableName: String? = nil, lastUpdateTime: TimeStamp? = nil, ddls: Int64? = nil) { - self.deletes = deletes - self.updates = updates - self.tableState = tableState + public init(schemaName: String? = nil, fullLoadCondtnlChkFailedRows: Int64? = nil, fullLoadRows: Int64? = nil, lastUpdateTime: TimeStamp? = nil, validationSuspendedRecords: Int64? = nil, validationState: String? = nil, ddls: Int64? = nil, updates: Int64? = nil, tableState: String? = nil, validationFailedRecords: Int64? = nil, validationPendingRecords: Int64? = nil, inserts: Int64? = nil, tableName: String? = nil, fullLoadErrorRows: Int64? = nil, deletes: Int64? = nil) { self.schemaName = schemaName self.fullLoadCondtnlChkFailedRows = fullLoadCondtnlChkFailedRows self.fullLoadRows = fullLoadRows - self.inserts = inserts - self.fullLoadErrorRows = fullLoadErrorRows - self.tableName = tableName self.lastUpdateTime = lastUpdateTime + self.validationSuspendedRecords = validationSuspendedRecords + self.validationState = validationState self.ddls = ddls + self.updates = updates + self.tableState = tableState + self.validationFailedRecords = validationFailedRecords + self.validationPendingRecords = validationPendingRecords + self.inserts = inserts + self.tableName = tableName + self.fullLoadErrorRows = fullLoadErrorRows + self.deletes = deletes } private enum CodingKeys: String, CodingKey { - case deletes = "Deletes" - case updates = "Updates" - case tableState = "TableState" case schemaName = "SchemaName" case fullLoadCondtnlChkFailedRows = "FullLoadCondtnlChkFailedRows" case fullLoadRows = "FullLoadRows" - case inserts = "Inserts" - case fullLoadErrorRows = "FullLoadErrorRows" - case tableName = "TableName" case lastUpdateTime = "LastUpdateTime" + case validationSuspendedRecords = "ValidationSuspendedRecords" + case validationState = "ValidationState" case ddls = "Ddls" + case updates = "Updates" + case tableState = "TableState" + case validationFailedRecords = "ValidationFailedRecords" + case validationPendingRecords = "ValidationPendingRecords" + case inserts = "Inserts" + case tableName = "TableName" + case fullLoadErrorRows = "FullLoadErrorRows" + case deletes = "Deletes" } } public struct CreateReplicationSubnetGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationSubnetGroup", required: false, type: .structure) ] /// The replication subnet group that was created. @@ -2226,10 +2125,10 @@ extension Dms { } public struct ImportCertificateMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateWallet", required: false, type: .blob), AWSShapeMember(label: "CertificatePem", required: false, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "CertificateIdentifier", required: true, type: .string) ] /// The location of the imported Oracle Wallet certificate for use with SSL. @@ -2237,11 +2136,11 @@ extension Dms { /// The contents of the .pem X.509 certificate file for the certificate. public let certificatePem: String? /// The tags associated with the certificate. - public let tags: TagList? + public let tags: [Tag]? /// The customer-assigned name of the certificate. Valid characters are A-z and 0-9. public let certificateIdentifier: String - public init(certificateWallet: Data? = nil, certificatePem: String? = nil, tags: TagList? = nil, certificateIdentifier: String) { + public init(certificateWallet: Data? = nil, certificatePem: String? = nil, tags: [Tag]? = nil, certificateIdentifier: String) { self.certificateWallet = certificateWallet self.certificatePem = certificatePem self.tags = tags @@ -2257,7 +2156,7 @@ extension Dms { } public struct TestConnectionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationInstanceArn", required: true, type: .string), AWSShapeMember(label: "EndpointArn", required: true, type: .string) ] @@ -2278,7 +2177,7 @@ extension Dms { } public struct DeleteReplicationTaskResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTask", required: false, type: .structure) ] /// The deleted replication task. @@ -2294,7 +2193,7 @@ extension Dms { } public struct CreateEndpointResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Endpoint", required: false, type: .structure) ] /// The endpoint that was created. @@ -2309,54 +2208,70 @@ extension Dms { } } - public struct CreateReplicationInstanceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReplicationInstance", required: false, type: .structure) - ] - /// The replication instance that was created. - public let replicationInstance: ReplicationInstance? - - public init(replicationInstance: ReplicationInstance? = nil) { - self.replicationInstance = replicationInstance - } - - private enum CodingKeys: String, CodingKey { - case replicationInstance = "ReplicationInstance" - } - } - - public struct SubnetList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Subnet", required: false, type: .list) + public struct ReplicationTaskAssessmentResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3ObjectUrl", required: false, type: .string), + AWSShapeMember(label: "AssessmentResultsFile", required: false, type: .string), + AWSShapeMember(label: "ReplicationTaskArn", required: false, type: .string), + AWSShapeMember(label: "ReplicationTaskLastAssessmentDate", required: false, type: .timestamp), + AWSShapeMember(label: "AssessmentResults", required: false, type: .string), + AWSShapeMember(label: "ReplicationTaskIdentifier", required: false, type: .string), + AWSShapeMember(label: "AssessmentStatus", required: false, type: .string) ] - public let subnet: [Subnet]? + /// The URL of the S3 object containing the task assessment results. + public let s3ObjectUrl: String? + /// The file containing the results of the task assessment. + public let assessmentResultsFile: String? + /// The Amazon Resource Name (ARN) of the replication task. + public let replicationTaskArn: String? + /// The date the task assessment was completed. + public let replicationTaskLastAssessmentDate: TimeStamp? + /// The task assessment results in JSON format. + public let assessmentResults: String? + /// The replication task identifier of the task on which the task assessment was run. + public let replicationTaskIdentifier: String? + /// The status of the task assessment. + public let assessmentStatus: String? - public init(subnet: [Subnet]? = nil) { - self.subnet = subnet + public init(s3ObjectUrl: String? = nil, assessmentResultsFile: String? = nil, replicationTaskArn: String? = nil, replicationTaskLastAssessmentDate: TimeStamp? = nil, assessmentResults: String? = nil, replicationTaskIdentifier: String? = nil, assessmentStatus: String? = nil) { + self.s3ObjectUrl = s3ObjectUrl + self.assessmentResultsFile = assessmentResultsFile + self.replicationTaskArn = replicationTaskArn + self.replicationTaskLastAssessmentDate = replicationTaskLastAssessmentDate + self.assessmentResults = assessmentResults + self.replicationTaskIdentifier = replicationTaskIdentifier + self.assessmentStatus = assessmentStatus } private enum CodingKeys: String, CodingKey { - case subnet = "Subnet" + case s3ObjectUrl = "S3ObjectUrl" + case assessmentResultsFile = "AssessmentResultsFile" + case replicationTaskArn = "ReplicationTaskArn" + case replicationTaskLastAssessmentDate = "ReplicationTaskLastAssessmentDate" + case assessmentResults = "AssessmentResults" + case replicationTaskIdentifier = "ReplicationTaskIdentifier" + case assessmentStatus = "AssessmentStatus" } } - public struct EndpointList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Endpoint", required: false, type: .list) + public struct CreateReplicationInstanceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReplicationInstance", required: false, type: .structure) ] - public let endpoint: [Endpoint]? + /// The replication instance that was created. + public let replicationInstance: ReplicationInstance? - public init(endpoint: [Endpoint]? = nil) { - self.endpoint = endpoint + public init(replicationInstance: ReplicationInstance? = nil) { + self.replicationInstance = replicationInstance } private enum CodingKeys: String, CodingKey { - case endpoint = "Endpoint" + case replicationInstance = "ReplicationInstance" } } public struct ModifyReplicationTaskMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TableMappings", required: false, type: .string), AWSShapeMember(label: "ReplicationTaskArn", required: true, type: .string), AWSShapeMember(label: "ReplicationTaskIdentifier", required: false, type: .string), @@ -2397,19 +2312,19 @@ extension Dms { } public struct ModifyReplicationSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubnetIds", required: true, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIds", required: true, type: .list), AWSShapeMember(label: "ReplicationSubnetGroupIdentifier", required: true, type: .string), AWSShapeMember(label: "ReplicationSubnetGroupDescription", required: false, type: .string) ] /// A list of subnet IDs. - public let subnetIds: SubnetIdentifierList + public let subnetIds: [String] /// The name of the replication instance subnet group. public let replicationSubnetGroupIdentifier: String /// The description of the replication instance subnet group. public let replicationSubnetGroupDescription: String? - public init(subnetIds: SubnetIdentifierList, replicationSubnetGroupIdentifier: String, replicationSubnetGroupDescription: String? = nil) { + public init(subnetIds: [String], replicationSubnetGroupIdentifier: String, replicationSubnetGroupDescription: String? = nil) { self.subnetIds = subnetIds self.replicationSubnetGroupIdentifier = replicationSubnetGroupIdentifier self.replicationSubnetGroupDescription = replicationSubnetGroupDescription @@ -2423,7 +2338,7 @@ extension Dms { } public struct OrderableReplicationInstance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EngineVersion", required: false, type: .string), AWSShapeMember(label: "ReplicationInstanceClass", required: false, type: .string), AWSShapeMember(label: "DefaultAllocatedStorage", required: false, type: .integer), @@ -2469,7 +2384,7 @@ extension Dms { } public struct ReplicationTaskStats: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TablesLoaded", required: false, type: .integer), AWSShapeMember(label: "ElapsedTimeMillis", required: false, type: .long), AWSShapeMember(label: "FullLoadProgressPercent", required: false, type: .integer), @@ -2510,7 +2425,7 @@ extension Dms { } public struct DeleteEndpointResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Endpoint", required: false, type: .structure) ] /// The endpoint that was deleted. @@ -2526,7 +2441,7 @@ extension Dms { } public struct ModifyReplicationTaskResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTask", required: false, type: .structure) ] /// The replication task that was modified. @@ -2541,23 +2456,8 @@ extension Dms { } } - public struct SupportedEndpointTypeList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SupportedEndpointType", required: false, type: .list) - ] - public let supportedEndpointType: [SupportedEndpointType]? - - public init(supportedEndpointType: [SupportedEndpointType]? = nil) { - self.supportedEndpointType = supportedEndpointType - } - - private enum CodingKeys: String, CodingKey { - case supportedEndpointType = "SupportedEndpointType" - } - } - public struct ReplicationTask: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTaskStats", required: false, type: .structure), AWSShapeMember(label: "LastFailureMessage", required: false, type: .string), AWSShapeMember(label: "ReplicationTaskStartDate", required: false, type: .timestamp), @@ -2638,7 +2538,7 @@ extension Dms { } public struct StopReplicationTaskResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTask", required: false, type: .structure) ] /// The replication task stopped. @@ -2654,7 +2554,7 @@ extension Dms { } public struct RefreshSchemasResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RefreshSchemasStatus", required: false, type: .structure) ] /// The status of the refreshed schema. @@ -2670,7 +2570,7 @@ extension Dms { } public struct DeleteCertificateMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the deleted certificate. @@ -2686,7 +2586,7 @@ extension Dms { } public struct DynamoDbSettings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceAccessRoleArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) used by the service access IAM role. @@ -2702,7 +2602,7 @@ extension Dms { } public struct DescribeRefreshSchemasStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RefreshSchemasStatus", required: false, type: .structure) ] /// The status of the schema. @@ -2718,7 +2618,7 @@ extension Dms { } public struct DescribeSchemasMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "EndpointArn", required: true, type: .string), AWSShapeMember(label: "MaxRecords", required: false, type: .integer) @@ -2744,10 +2644,10 @@ extension Dms { } public struct StopReplicationTaskMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationTaskArn", required: true, type: .string) ] - /// The Amazon Resource Number(ARN) of the replication task to be stopped. + /// The Amazon Resource Name(ARN) of the replication task to be stopped. public let replicationTaskArn: String public init(replicationTaskArn: String) { @@ -2760,7 +2660,7 @@ extension Dms { } public struct CreateEventSubscriptionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSubscription", required: false, type: .structure) ] /// The event subscription that was created. @@ -2782,47 +2682,17 @@ extension Dms { public var description: String { return self.rawValue } } - public struct OrderableReplicationInstanceList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OrderableReplicationInstance", required: false, type: .list) - ] - public let orderableReplicationInstance: [OrderableReplicationInstance]? - - public init(orderableReplicationInstance: [OrderableReplicationInstance]? = nil) { - self.orderableReplicationInstance = orderableReplicationInstance - } - - private enum CodingKeys: String, CodingKey { - case orderableReplicationInstance = "OrderableReplicationInstance" - } - } - - public struct EventCategoryGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventCategoryGroup", required: false, type: .list) - ] - public let eventCategoryGroup: [EventCategoryGroup]? - - public init(eventCategoryGroup: [EventCategoryGroup]? = nil) { - self.eventCategoryGroup = eventCategoryGroup - } - - private enum CodingKeys: String, CodingKey { - case eventCategoryGroup = "EventCategoryGroup" - } - } - public struct DescribeReplicationTasksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "ReplicationTasks", required: false, type: .structure) + AWSShapeMember(label: "ReplicationTasks", required: false, type: .list) ] /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// A description of the replication tasks. - public let replicationTasks: ReplicationTaskList? + public let replicationTasks: [ReplicationTask]? - public init(marker: String? = nil, replicationTasks: ReplicationTaskList? = nil) { + public init(marker: String? = nil, replicationTasks: [ReplicationTask]? = nil) { self.marker = marker self.replicationTasks = replicationTasks } @@ -2834,16 +2704,16 @@ extension Dms { } public struct AddTagsToResourceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string), - AWSShapeMember(label: "Tags", required: true, type: .structure) + AWSShapeMember(label: "Tags", required: true, type: .list) ] /// The Amazon Resource Name (ARN) of the AWS DMS resource the tag is to be added to. AWS DMS resources include a replication instance, endpoint, and a replication task. public let resourceArn: String /// The tag to be assigned to the DMS resource. - public let tags: TagList + public let tags: [Tag] - public init(resourceArn: String, tags: TagList) { + public init(resourceArn: String, tags: [Tag]) { self.resourceArn = resourceArn self.tags = tags } @@ -2855,19 +2725,19 @@ extension Dms { } public struct DescribeConnectionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure) + AWSShapeMember(label: "Filters", required: false, type: .list) ] /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. public let maxRecords: Int32? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// The filters applied to the connection. Valid filter names: endpoint-arn | replication-instance-arn - public let filters: FilterList? + public let filters: [Filter]? - public init(maxRecords: Int32? = nil, marker: String? = nil, filters: FilterList? = nil) { + public init(maxRecords: Int32? = nil, marker: String? = nil, filters: [Filter]? = nil) { self.maxRecords = maxRecords self.marker = marker self.filters = filters @@ -2880,27 +2750,12 @@ extension Dms { } } - public struct AccountQuotaList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountQuota", required: false, type: .list) - ] - public let accountQuota: [AccountQuota]? - - public init(accountQuota: [AccountQuota]? = nil) { - self.accountQuota = accountQuota - } - - private enum CodingKeys: String, CodingKey { - case accountQuota = "AccountQuota" - } - } - public struct DeleteReplicationSubnetGroupResponse: AWSShape { } public struct DeleteReplicationSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationSubnetGroupIdentifier", required: true, type: .string) ] /// The subnet group name of the replication instance. @@ -2922,7 +2777,7 @@ extension Dms { } public struct ReplicationPendingModifiedValues: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), AWSShapeMember(label: "EngineVersion", required: false, type: .string), AWSShapeMember(label: "ReplicationInstanceClass", required: false, type: .string), @@ -2952,27 +2807,12 @@ extension Dms { } } - public struct EventSubscriptionsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventSubscription", required: false, type: .list) - ] - public let eventSubscription: [EventSubscription]? - - public init(eventSubscription: [EventSubscription]? = nil) { - self.eventSubscription = eventSubscription - } - - private enum CodingKeys: String, CodingKey { - case eventSubscription = "EventSubscription" - } - } - public struct ReplicationInstance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceCreateTime", required: false, type: .timestamp), AWSShapeMember(label: "PendingModifiedValues", required: false, type: .structure), AWSShapeMember(label: "ReplicationInstanceStatus", required: false, type: .string), - AWSShapeMember(label: "VpcSecurityGroups", required: false, type: .structure), + AWSShapeMember(label: "VpcSecurityGroups", required: false, type: .list), AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), AWSShapeMember(label: "ReplicationInstancePublicIpAddresses", required: false, type: .list), AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), @@ -2998,7 +2838,7 @@ extension Dms { /// The status of the replication instance. public let replicationInstanceStatus: String? /// The VPC security group for the instance. - public let vpcSecurityGroups: VpcSecurityGroupMembershipList? + public let vpcSecurityGroups: [VpcSecurityGroupMembership]? /// Specifies if the replication instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the Multi-AZ parameter is set to true. public let multiAZ: Bool? /// The public IP address of the replication instance. @@ -3034,7 +2874,7 @@ extension Dms { /// The KMS key identifier that is used to encrypt the content on the replication instance. If you do not specify a value for the KmsKeyId parameter, then AWS DMS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region. public let kmsKeyId: String? - public init(instanceCreateTime: TimeStamp? = nil, pendingModifiedValues: ReplicationPendingModifiedValues? = nil, replicationInstanceStatus: String? = nil, vpcSecurityGroups: VpcSecurityGroupMembershipList? = nil, multiAZ: Bool? = nil, replicationInstancePublicIpAddresses: [String]? = nil, allocatedStorage: Int32? = nil, replicationSubnetGroup: ReplicationSubnetGroup? = nil, replicationInstancePrivateIpAddress: String? = nil, availabilityZone: String? = nil, autoMinorVersionUpgrade: Bool? = nil, publiclyAccessible: Bool? = nil, replicationInstanceIdentifier: String? = nil, replicationInstancePrivateIpAddresses: [String]? = nil, engineVersion: String? = nil, replicationInstanceClass: String? = nil, preferredMaintenanceWindow: String? = nil, replicationInstanceArn: String? = nil, replicationInstancePublicIpAddress: String? = nil, secondaryAvailabilityZone: String? = nil, kmsKeyId: String? = nil) { + public init(instanceCreateTime: TimeStamp? = nil, pendingModifiedValues: ReplicationPendingModifiedValues? = nil, replicationInstanceStatus: String? = nil, vpcSecurityGroups: [VpcSecurityGroupMembership]? = nil, multiAZ: Bool? = nil, replicationInstancePublicIpAddresses: [String]? = nil, allocatedStorage: Int32? = nil, replicationSubnetGroup: ReplicationSubnetGroup? = nil, replicationInstancePrivateIpAddress: String? = nil, availabilityZone: String? = nil, autoMinorVersionUpgrade: Bool? = nil, publiclyAccessible: Bool? = nil, replicationInstanceIdentifier: String? = nil, replicationInstancePrivateIpAddresses: [String]? = nil, engineVersion: String? = nil, replicationInstanceClass: String? = nil, preferredMaintenanceWindow: String? = nil, replicationInstanceArn: String? = nil, replicationInstancePublicIpAddress: String? = nil, secondaryAvailabilityZone: String? = nil, kmsKeyId: String? = nil) { self.instanceCreateTime = instanceCreateTime self.pendingModifiedValues = pendingModifiedValues self.replicationInstanceStatus = replicationInstanceStatus @@ -3084,7 +2924,7 @@ extension Dms { } public struct ImportCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificate", required: false, type: .structure) ] /// The certificate to be uploaded. @@ -3100,16 +2940,16 @@ extension Dms { } public struct DescribeEndpointsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Endpoints", required: false, type: .structure) + AWSShapeMember(label: "Endpoints", required: false, type: .list) ] /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// Endpoint description. - public let endpoints: EndpointList? + public let endpoints: [Endpoint]? - public init(marker: String? = nil, endpoints: EndpointList? = nil) { + public init(marker: String? = nil, endpoints: [Endpoint]? = nil) { self.marker = marker self.endpoints = endpoints } @@ -3121,7 +2961,7 @@ extension Dms { } public struct ModifyEndpointMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndpointIdentifier", required: false, type: .string), AWSShapeMember(label: "Username", required: false, type: .string), AWSShapeMember(label: "EndpointArn", required: true, type: .string), @@ -3166,7 +3006,7 @@ extension Dms { public let password: String? /// The port used by the endpoint database. public let port: Int32? - /// Additional attributes associated with the connection. + /// Additional attributes associated with the connection. To reset this parameter, pass the empty string ("") as an argument. public let extraConnectionAttributes: String? public init(endpointIdentifier: String? = nil, username: String? = nil, endpointArn: String, dynamoDbSettings: DynamoDbSettings? = nil, mongoDbSettings: MongoDbSettings? = nil, endpointType: ReplicationEndpointTypeValue? = nil, serverName: String? = nil, s3Settings: S3Settings? = nil, databaseName: String? = nil, sslMode: DmsSslModeValue? = nil, certificateArn: String? = nil, engineName: String? = nil, password: String? = nil, port: Int32? = nil, extraConnectionAttributes: String? = nil) { @@ -3207,7 +3047,7 @@ extension Dms { } public struct VpcSecurityGroupMembership: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "VpcSecurityGroupId", required: false, type: .string) ] @@ -3228,7 +3068,7 @@ extension Dms { } public struct DescribeOrderableReplicationInstancesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string) ] @@ -3249,10 +3089,10 @@ extension Dms { } public struct CreateReplicationTaskMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TableMappings", required: true, type: .string), AWSShapeMember(label: "SourceEndpointArn", required: true, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "ReplicationInstanceArn", required: true, type: .string), AWSShapeMember(label: "ReplicationTaskIdentifier", required: true, type: .string), AWSShapeMember(label: "MigrationType", required: true, type: .enum), @@ -3265,7 +3105,7 @@ extension Dms { /// The Amazon Resource Name (ARN) string that uniquely identifies the endpoint. public let sourceEndpointArn: String /// Tags to be added to the replication instance. - public let tags: TagList? + public let tags: [Tag]? /// The Amazon Resource Name (ARN) of the replication instance. public let replicationInstanceArn: String /// The replication task identifier. Constraints: Must contain from 1 to 255 alphanumeric characters or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. @@ -3279,7 +3119,7 @@ extension Dms { /// Settings for the task, such as target metadata settings. For a complete list of task settings, see Task Settings for AWS Database Migration Service Tasks. public let replicationTaskSettings: String? - public init(tableMappings: String, sourceEndpointArn: String, tags: TagList? = nil, replicationInstanceArn: String, replicationTaskIdentifier: String, migrationType: MigrationTypeValue, targetEndpointArn: String, cdcStartTime: TimeStamp? = nil, replicationTaskSettings: String? = nil) { + public init(tableMappings: String, sourceEndpointArn: String, tags: [Tag]? = nil, replicationInstanceArn: String, replicationTaskIdentifier: String, migrationType: MigrationTypeValue, targetEndpointArn: String, cdcStartTime: TimeStamp? = nil, replicationTaskSettings: String? = nil) { self.tableMappings = tableMappings self.sourceEndpointArn = sourceEndpointArn self.tags = tags @@ -3311,16 +3151,16 @@ extension Dms { } public struct Filter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "Values", required: true, type: .structure) + AWSShapeMember(label: "Values", required: true, type: .list) ] /// The name of the filter. public let name: String /// The filter value. - public let values: FilterValueList + public let values: [String] - public init(name: String, values: FilterValueList) { + public init(name: String, values: [String]) { self.name = name self.values = values } @@ -3332,16 +3172,16 @@ extension Dms { } public struct DescribeReplicationInstancesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "ReplicationInstances", required: false, type: .structure) + AWSShapeMember(label: "ReplicationInstances", required: false, type: .list) ] /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? /// The replication instances described. - public let replicationInstances: ReplicationInstanceList? + public let replicationInstances: [ReplicationInstance]? - public init(marker: String? = nil, replicationInstances: ReplicationInstanceList? = nil) { + public init(marker: String? = nil, replicationInstances: [ReplicationInstance]? = nil) { self.marker = marker self.replicationInstances = replicationInstances } diff --git a/Sources/AWSSDKSwift/Services/ds/Ds_API.swift b/Sources/AWSSDKSwift/Services/ds/Ds_API.swift index 7ab27f99f0c..e154616b724 100644 --- a/Sources/AWSSDKSwift/Services/ds/Ds_API.swift +++ b/Sources/AWSSDKSwift/Services/ds/Ds_API.swift @@ -25,9 +25,9 @@ public struct Ds { ) } - /// Obtains information about the conditional forwarders for this account. If no input parameters are provided for RemoteDomainNames, this request describes all conditional forwarders for the specified directory ID. - public func describeConditionalForwarders(_ input: DescribeConditionalForwardersRequest) throws -> DescribeConditionalForwardersResult { - return try client.send(operation: "DescribeConditionalForwarders", path: "/", httpMethod: "POST", input: input) + /// Updates a conditional forwarder that has been set up for your AWS directory. + public func updateConditionalForwarder(_ input: UpdateConditionalForwarderRequest) throws -> UpdateConditionalForwarderResult { + return try client.send(operation: "UpdateConditionalForwarder", path: "/", httpMethod: "POST", input: input) } /// Creates a Simple AD directory. Before you call CreateDirectory, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the CreateDirectory operation, see AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference. @@ -35,9 +35,9 @@ public struct Ds { return try client.send(operation: "CreateDirectory", path: "/", httpMethod: "POST", input: input) } - /// AWS Directory Service for Microsoft Active Directory allows you to configure trust relationships. For example, you can establish a trust between your Microsoft AD in the AWS cloud, and your existing on-premises Microsoft Active Directory. This would allow you to provide users and groups access to resources in either domain, with a single set of credentials. This action initiates the creation of the AWS side of a trust relationship between a Microsoft AD in the AWS cloud and an external domain. - public func createTrust(_ input: CreateTrustRequest) throws -> CreateTrustResult { - return try client.send(operation: "CreateTrust", path: "/", httpMethod: "POST", input: input) + /// Obtains information about the conditional forwarders for this account. If no input parameters are provided for RemoteDomainNames, this request describes all conditional forwarders for the specified directory ID. + public func describeConditionalForwarders(_ input: DescribeConditionalForwardersRequest) throws -> DescribeConditionalForwardersResult { + return try client.send(operation: "DescribeConditionalForwarders", path: "/", httpMethod: "POST", input: input) } /// Applies a schema extension to a Microsoft AD directory. @@ -50,6 +50,16 @@ public struct Ds { return try client.send(operation: "EnableSso", path: "/", httpMethod: "POST", input: input) } + /// AWS Directory Service for Microsoft Active Directory allows you to configure trust relationships. For example, you can establish a trust between your Microsoft AD in the AWS cloud, and your existing on-premises Microsoft Active Directory. This would allow you to provide users and groups access to resources in either domain, with a single set of credentials. This action initiates the creation of the AWS side of a trust relationship between a Microsoft AD in the AWS cloud and an external domain. + public func createTrust(_ input: CreateTrustRequest) throws -> CreateTrustResult { + return try client.send(operation: "CreateTrust", path: "/", httpMethod: "POST", input: input) + } + + /// Provides information about any domain controllers in your directory. + public func describeDomainControllers(_ input: DescribeDomainControllersRequest) throws -> DescribeDomainControllersResult { + return try client.send(operation: "DescribeDomainControllers", path: "/", httpMethod: "POST", input: input) + } + /// Lists all tags on a directory. public func listTagsForResource(_ input: ListTagsForResourceRequest) throws -> ListTagsForResourceResult { return try client.send(operation: "ListTagsForResource", path: "/", httpMethod: "POST", input: input) @@ -180,14 +190,19 @@ public struct Ds { return try client.send(operation: "DeleteConditionalForwarder", path: "/", httpMethod: "POST", input: input) } + /// Enables multi-factor authentication (MFA) with the Remote Authentication Dial In User Service (RADIUS) server for an AD Connector directory. + public func enableRadius(_ input: EnableRadiusRequest) throws -> EnableRadiusResult { + return try client.send(operation: "EnableRadius", path: "/", httpMethod: "POST", input: input) + } + /// If the DNS server for your on-premises domain uses a publicly addressable IP address, you must add a CIDR address block to correctly route traffic to and from your Microsoft AD on Amazon Web Services. AddIpRoutes adds this address block. You can also use AddIpRoutes to facilitate routing traffic that uses public IP ranges from your Microsoft AD on AWS to a peer VPC. Before you call AddIpRoutes, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the AddIpRoutes operation, see AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference. public func addIpRoutes(_ input: AddIpRoutesRequest) throws -> AddIpRoutesResult { return try client.send(operation: "AddIpRoutes", path: "/", httpMethod: "POST", input: input) } - /// Enables multi-factor authentication (MFA) with the Remote Authentication Dial In User Service (RADIUS) server for an AD Connector directory. - public func enableRadius(_ input: EnableRadiusRequest) throws -> EnableRadiusResult { - return try client.send(operation: "EnableRadius", path: "/", httpMethod: "POST", input: input) + /// Adds or removes domain controllers to or from the directory. Based on the difference between current value and new value (provided through this API call), domain controllers will be added or removed. It may take up to 45 minutes for any new domain controllers to become fully active once the requested number of domain controllers is updated. During this time, you cannot make another update request. + public func updateNumberOfDomainControllers(_ input: UpdateNumberOfDomainControllersRequest) throws -> UpdateNumberOfDomainControllersResult { + return try client.send(operation: "UpdateNumberOfDomainControllers", path: "/", httpMethod: "POST", input: input) } /// Obtains information about which SNS topics receive status messages from the specified directory. If no input parameters are provided, such as DirectoryId or TopicName, this request describes all of the associations in the account. @@ -195,25 +210,20 @@ public struct Ds { return try client.send(operation: "DescribeEventTopics", path: "/", httpMethod: "POST", input: input) } - /// Associates a directory with an SNS topic. This establishes the directory as a publisher to the specified SNS topic. You can then receive email or text (SMS) messages when the status of your directory changes. You get notified if your directory goes from an Active status to an Impaired or Inoperable status. You also receive a notification when the directory returns to an Active status. - public func registerEventTopic(_ input: RegisterEventTopicRequest) throws -> RegisterEventTopicResult { - return try client.send(operation: "RegisterEventTopic", path: "/", httpMethod: "POST", input: input) - } - /// Removes IP address blocks from a directory. public func removeIpRoutes(_ input: RemoveIpRoutesRequest) throws -> RemoveIpRoutesResult { return try client.send(operation: "RemoveIpRoutes", path: "/", httpMethod: "POST", input: input) } + /// Associates a directory with an SNS topic. This establishes the directory as a publisher to the specified SNS topic. You can then receive email or text (SMS) messages when the status of your directory changes. You get notified if your directory goes from an Active status to an Impaired or Inoperable status. You also receive a notification when the directory returns to an Active status. + public func registerEventTopic(_ input: RegisterEventTopicRequest) throws -> RegisterEventTopicResult { + return try client.send(operation: "RegisterEventTopic", path: "/", httpMethod: "POST", input: input) + } + /// Adds or overwrites one or more tags for the specified directory. Each directory can have a maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique to each resource. public func addTagsToResource(_ input: AddTagsToResourceRequest) throws -> AddTagsToResourceResult { return try client.send(operation: "AddTagsToResource", path: "/", httpMethod: "POST", input: input) } - /// Updates a conditional forwarder that has been set up for your AWS directory. - public func updateConditionalForwarder(_ input: UpdateConditionalForwarderRequest) throws -> UpdateConditionalForwarderResult { - return try client.send(operation: "UpdateConditionalForwarder", path: "/", httpMethod: "POST", input: input) - } - } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/ds/Ds_Error.swift b/Sources/AWSSDKSwift/Services/ds/Ds_Error.swift index a0fba2df535..94bf6910636 100644 --- a/Sources/AWSSDKSwift/Services/ds/Ds_Error.swift +++ b/Sources/AWSSDKSwift/Services/ds/Ds_Error.swift @@ -11,12 +11,13 @@ public enum DsError: AWSErrorType { case clientException(message: String?) case serviceException(message: String?) case directoryLimitExceededException(message: String?) - case entityAlreadyExistsException(message: String?) case snapshotLimitExceededException(message: String?) case insufficientPermissionsException(message: String?) case authenticationFailedException(message: String?) + case entityAlreadyExistsException(message: String?) case invalidNextTokenException(message: String?) case ipRouteLimitExceededException(message: String?) + case domainControllerLimitExceededException(message: String?) case tagLimitExceededException(message: String?) } @@ -41,18 +42,20 @@ extension DsError { self = .serviceException(message: message) case "DirectoryLimitExceededException": self = .directoryLimitExceededException(message: message) - case "EntityAlreadyExistsException": - self = .entityAlreadyExistsException(message: message) case "SnapshotLimitExceededException": self = .snapshotLimitExceededException(message: message) case "InsufficientPermissionsException": self = .insufficientPermissionsException(message: message) case "AuthenticationFailedException": self = .authenticationFailedException(message: message) + case "EntityAlreadyExistsException": + self = .entityAlreadyExistsException(message: message) case "InvalidNextTokenException": self = .invalidNextTokenException(message: message) case "IpRouteLimitExceededException": self = .ipRouteLimitExceededException(message: message) + case "DomainControllerLimitExceededException": + self = .domainControllerLimitExceededException(message: message) case "TagLimitExceededException": self = .tagLimitExceededException(message: message) default: diff --git a/Sources/AWSSDKSwift/Services/ds/Ds_Shapes.swift b/Sources/AWSSDKSwift/Services/ds/Ds_Shapes.swift index c7713754469..44448f1ea44 100644 --- a/Sources/AWSSDKSwift/Services/ds/Ds_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/ds/Ds_Shapes.swift @@ -10,7 +10,7 @@ extension Ds { } public struct DeleteDirectoryResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: false, type: .string) ] /// The directory identifier. @@ -33,7 +33,7 @@ extension Ds { } public struct DeleteTrustRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeleteAssociatedConditionalForwarder", required: false, type: .boolean), AWSShapeMember(label: "TrustId", required: true, type: .string) ] @@ -54,7 +54,7 @@ extension Ds { } public struct DescribeTrustsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrustIds", required: false, type: .list), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -85,7 +85,7 @@ extension Ds { } public struct CreateTrustResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrustId", required: false, type: .string) ] /// A unique identifier for the trust relationship that was created. @@ -101,7 +101,7 @@ extension Ds { } public struct RemoveIpRoutesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: true, type: .string), AWSShapeMember(label: "CidrIps", required: true, type: .list) ] @@ -122,7 +122,7 @@ extension Ds { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -146,8 +146,19 @@ extension Ds { } + public enum DomainControllerStatus: String, CustomStringConvertible, Codable { + case creating = "Creating" + case active = "Active" + case impaired = "Impaired" + case restoring = "Restoring" + case deleting = "Deleting" + case deleted = "Deleted" + case failed = "Failed" + public var description: String { return self.rawValue } + } + public struct Computer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComputerId", required: false, type: .string), AWSShapeMember(label: "ComputerName", required: false, type: .string), AWSShapeMember(label: "ComputerAttributes", required: false, type: .list) @@ -186,7 +197,7 @@ extension Ds { } public struct Attribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -207,7 +218,7 @@ extension Ds { } public struct CreateAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Alias", required: true, type: .string), AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] @@ -228,7 +239,7 @@ extension Ds { } public struct DirectoryConnectSettingsDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: false, type: .list), AWSShapeMember(label: "SecurityGroupId", required: false, type: .string), AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), @@ -269,7 +280,7 @@ extension Ds { } public struct DescribeSnapshotsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Snapshots", required: false, type: .list) ] @@ -290,7 +301,7 @@ extension Ds { } public struct AddTagsToResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "Tags", required: true, type: .list) ] @@ -311,7 +322,7 @@ extension Ds { } public struct DeleteDirectoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] /// The identifier of the directory to delete. @@ -327,7 +338,7 @@ extension Ds { } public struct IpRoute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CidrIp", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] @@ -348,7 +359,7 @@ extension Ds { } public struct DirectoryDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShortName", required: false, type: .string), AWSShapeMember(label: "LaunchTime", required: false, type: .timestamp), AWSShapeMember(label: "DirectoryId", required: false, type: .string), @@ -357,11 +368,12 @@ extension Ds { AWSShapeMember(label: "StageLastUpdatedDateTime", required: false, type: .timestamp), AWSShapeMember(label: "VpcSettings", required: false, type: .structure), AWSShapeMember(label: "SsoEnabled", required: false, type: .boolean), - AWSShapeMember(label: "RadiusSettings", required: false, type: .structure), + AWSShapeMember(label: "DesiredNumberOfDomainControllers", required: false, type: .integer), AWSShapeMember(label: "StageReason", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "AccessUrl", required: false, type: .string), AWSShapeMember(label: "Size", required: false, type: .enum), + AWSShapeMember(label: "RadiusSettings", required: false, type: .structure), AWSShapeMember(label: "Alias", required: false, type: .string), AWSShapeMember(label: "RadiusStatus", required: false, type: .enum), AWSShapeMember(label: "Type", required: false, type: .enum), @@ -384,8 +396,8 @@ extension Ds { public let vpcSettings: DirectoryVpcSettingsDescription? /// Indicates if single-sign on is enabled for the directory. For more information, see EnableSso and DisableSso. public let ssoEnabled: Bool? - /// A RadiusSettings object that contains information about the RADIUS server configured for this directory. - public let radiusSettings: RadiusSettings? + /// The desired number of domain controllers in the directory if the directory is Microsoft AD. + public let desiredNumberOfDomainControllers: Int32? /// Additional information about the directory stage. public let stageReason: String? /// The fully-qualified name of the directory. @@ -394,6 +406,8 @@ extension Ds { public let accessUrl: String? /// The directory size. public let size: DirectorySize? + /// A RadiusSettings object that contains information about the RADIUS server configured for this directory. + public let radiusSettings: RadiusSettings? /// The alias for the directory. If no alias has been created for the directory, the alias is the directory identifier, such as d-XXXXXXXXXX. public let alias: String? /// The status of the RADIUS MFA server connection. @@ -405,7 +419,7 @@ extension Ds { /// The IP addresses of the DNS servers for the directory. For a Simple AD or Microsoft AD directory, these are the IP addresses of the Simple AD or Microsoft AD directory servers. For an AD Connector directory, these are the IP addresses of the DNS servers or domain controllers in the on-premises directory to which the AD Connector is connected. public let dnsIpAddrs: [String]? - public init(shortName: String? = nil, launchTime: TimeStamp? = nil, directoryId: String? = nil, stage: DirectoryStage? = nil, description: String? = nil, stageLastUpdatedDateTime: TimeStamp? = nil, vpcSettings: DirectoryVpcSettingsDescription? = nil, ssoEnabled: Bool? = nil, radiusSettings: RadiusSettings? = nil, stageReason: String? = nil, name: String? = nil, accessUrl: String? = nil, size: DirectorySize? = nil, alias: String? = nil, radiusStatus: RadiusStatus? = nil, type: DirectoryType? = nil, connectSettings: DirectoryConnectSettingsDescription? = nil, dnsIpAddrs: [String]? = nil) { + public init(shortName: String? = nil, launchTime: TimeStamp? = nil, directoryId: String? = nil, stage: DirectoryStage? = nil, description: String? = nil, stageLastUpdatedDateTime: TimeStamp? = nil, vpcSettings: DirectoryVpcSettingsDescription? = nil, ssoEnabled: Bool? = nil, desiredNumberOfDomainControllers: Int32? = nil, stageReason: String? = nil, name: String? = nil, accessUrl: String? = nil, size: DirectorySize? = nil, radiusSettings: RadiusSettings? = nil, alias: String? = nil, radiusStatus: RadiusStatus? = nil, type: DirectoryType? = nil, connectSettings: DirectoryConnectSettingsDescription? = nil, dnsIpAddrs: [String]? = nil) { self.shortName = shortName self.launchTime = launchTime self.directoryId = directoryId @@ -414,11 +428,12 @@ extension Ds { self.stageLastUpdatedDateTime = stageLastUpdatedDateTime self.vpcSettings = vpcSettings self.ssoEnabled = ssoEnabled - self.radiusSettings = radiusSettings + self.desiredNumberOfDomainControllers = desiredNumberOfDomainControllers self.stageReason = stageReason self.name = name self.accessUrl = accessUrl self.size = size + self.radiusSettings = radiusSettings self.alias = alias self.radiusStatus = radiusStatus self.`type` = `type` @@ -435,11 +450,12 @@ extension Ds { case stageLastUpdatedDateTime = "StageLastUpdatedDateTime" case vpcSettings = "VpcSettings" case ssoEnabled = "SsoEnabled" - case radiusSettings = "RadiusSettings" + case desiredNumberOfDomainControllers = "DesiredNumberOfDomainControllers" case stageReason = "StageReason" case name = "Name" case accessUrl = "AccessUrl" case size = "Size" + case radiusSettings = "RadiusSettings" case alias = "Alias" case radiusStatus = "RadiusStatus" case `type` = "Type" @@ -449,7 +465,7 @@ extension Ds { } public struct UpdateConditionalForwarderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: true, type: .string), AWSShapeMember(label: "DnsIpAddrs", required: true, type: .list), AWSShapeMember(label: "RemoteDomainName", required: true, type: .string) @@ -475,7 +491,7 @@ extension Ds { } public struct Trust: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RemoteDomainName", required: false, type: .string), AWSShapeMember(label: "LastUpdatedDateTime", required: false, type: .timestamp), AWSShapeMember(label: "TrustType", required: false, type: .enum), @@ -536,7 +552,7 @@ extension Ds { } public struct ListIpRoutesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -573,7 +589,7 @@ extension Ds { } public struct EventTopic: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: false, type: .string), AWSShapeMember(label: "TopicName", required: false, type: .string), AWSShapeMember(label: "CreatedDateTime", required: false, type: .timestamp), @@ -609,7 +625,7 @@ extension Ds { } public struct DirectoryVpcSettings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: true, type: .string), AWSShapeMember(label: "SubnetIds", required: true, type: .list) ] @@ -630,7 +646,7 @@ extension Ds { } public struct ListTagsForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -655,8 +671,39 @@ extension Ds { } } + public struct DescribeDomainControllersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "DomainControllerIds", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "DirectoryId", required: true, type: .string) + ] + /// The maximum number of items to return. + public let limit: Int32? + /// A list of identifiers for the domain controllers whose information will be provided. + public let domainControllerIds: [String]? + /// The DescribeDomainControllers.NextToken value from a previous call to DescribeDomainControllers. Pass null if this is the first call. + public let nextToken: String? + /// Identifier of the directory for which to retrieve the domain controller information. + public let directoryId: String + + public init(limit: Int32? = nil, domainControllerIds: [String]? = nil, nextToken: String? = nil, directoryId: String) { + self.limit = limit + self.domainControllerIds = domainControllerIds + self.nextToken = nextToken + self.directoryId = directoryId + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case domainControllerIds = "DomainControllerIds" + case nextToken = "NextToken" + case directoryId = "DirectoryId" + } + } + public struct DescribeTrustsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Trusts", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -677,13 +724,14 @@ extension Ds { } public struct CreateMicrosoftADRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcSettings", required: true, type: .structure), AWSShapeMember(label: "ShortName", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Password", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] + /// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation. public let vpcSettings: DirectoryVpcSettings /// The NetBIOS name for your domain. A short identifier for your domain, such as CORP. If you don't specify a NetBIOS name, it will default to the first part of your directory DNS. For example, CORP for the directory DNS corp.example.com. public let shortName: String? @@ -716,7 +764,7 @@ extension Ds { } public struct DirectoryLimits: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CloudOnlyDirectoriesLimit", required: false, type: .integer), AWSShapeMember(label: "CloudOnlyDirectoriesLimitReached", required: false, type: .boolean), AWSShapeMember(label: "ConnectedDirectoriesCurrentCount", required: false, type: .integer), @@ -772,7 +820,7 @@ extension Ds { } public struct ListSchemaExtensionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -797,8 +845,12 @@ extension Ds { } } + public struct EnableSsoResult: AWSShape { + + } + public struct DeregisterEventTopicRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicName", required: true, type: .string), AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] @@ -818,12 +870,8 @@ extension Ds { } } - public struct EnableSsoResult: AWSShape { - - } - public struct GetDirectoryLimitsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryLimits", required: false, type: .structure) ] /// A DirectoryLimits object that contains the directory limits for the current region. @@ -839,7 +887,7 @@ extension Ds { } public struct ConnectDirectoryResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: false, type: .string) ] /// The identifier of the new directory. @@ -861,7 +909,7 @@ extension Ds { } public struct DescribeConditionalForwardersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RemoteDomainNames", required: false, type: .list), AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] @@ -885,6 +933,10 @@ extension Ds { } + public struct UpdateNumberOfDomainControllersResult: AWSShape { + + } + public enum TrustState: String, CustomStringConvertible, Codable { case creating = "Creating" case created = "Created" @@ -898,7 +950,7 @@ extension Ds { } public struct EnableSsoRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Password", required: false, type: .string), AWSShapeMember(label: "UserName", required: false, type: .string), AWSShapeMember(label: "DirectoryId", required: true, type: .string) @@ -924,7 +976,7 @@ extension Ds { } public struct StartSchemaExtensionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: true, type: .string), AWSShapeMember(label: "CreateSnapshotBeforeSchemaExtension", required: true, type: .boolean), AWSShapeMember(label: "LdifContent", required: true, type: .string), @@ -967,7 +1019,7 @@ extension Ds { } public struct ConditionalForwarder: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DnsIpAddrs", required: false, type: .list), AWSShapeMember(label: "ReplicationScope", required: false, type: .enum), AWSShapeMember(label: "RemoteDomainName", required: false, type: .string) @@ -992,8 +1044,29 @@ extension Ds { } } + public struct DescribeDomainControllersResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainControllers", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// List of the DomainController objects that were retrieved. + public let domainControllers: [DomainController]? + /// If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to DescribeDomainControllers retrieve the next set of items. + public let nextToken: String? + + public init(domainControllers: [DomainController]? = nil, nextToken: String? = nil) { + self.domainControllers = domainControllers + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case domainControllers = "DomainControllers" + case nextToken = "NextToken" + } + } + public struct EnableRadiusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RadiusSettings", required: true, type: .structure), AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] @@ -1014,7 +1087,7 @@ extension Ds { } public struct CreateSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] @@ -1035,7 +1108,7 @@ extension Ds { } public struct ListTagsForResourceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list) ] @@ -1056,7 +1129,7 @@ extension Ds { } public struct GetSnapshotLimitsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotLimits", required: false, type: .structure) ] /// A SnapshotLimits object that contains the manual snapshot limits for the specified directory. @@ -1072,7 +1145,7 @@ extension Ds { } public struct SchemaExtensionInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaExtensionId", required: false, type: .string), AWSShapeMember(label: "SchemaExtensionStatusReason", required: false, type: .string), AWSShapeMember(label: "EndDateTime", required: false, type: .timestamp), @@ -1118,7 +1191,7 @@ extension Ds { } public struct DescribeDirectoriesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "DirectoryIds", required: false, type: .list) @@ -1149,7 +1222,7 @@ extension Ds { } public struct CreateComputerResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Computer", required: false, type: .structure) ] /// A Computer object that represents the computer account. @@ -1169,7 +1242,7 @@ extension Ds { } public struct DeleteConditionalForwarderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: true, type: .string), AWSShapeMember(label: "RemoteDomainName", required: true, type: .string) ] @@ -1190,7 +1263,7 @@ extension Ds { } public struct StartSchemaExtensionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaExtensionId", required: false, type: .string) ] /// The identifier of the schema extension that will be applied. @@ -1206,7 +1279,7 @@ extension Ds { } public struct DescribeConditionalForwardersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConditionalForwarders", required: false, type: .list) ] /// The list of conditional forwarders that have been created. @@ -1222,7 +1295,7 @@ extension Ds { } public struct SnapshotLimits: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ManualSnapshotsLimit", required: false, type: .integer), AWSShapeMember(label: "ManualSnapshotsLimitReached", required: false, type: .boolean), AWSShapeMember(label: "ManualSnapshotsCurrentCount", required: false, type: .integer) @@ -1248,7 +1321,7 @@ extension Ds { } public struct CreateComputerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrganizationalUnitDistinguishedName", required: false, type: .string), AWSShapeMember(label: "ComputerName", required: true, type: .string), AWSShapeMember(label: "ComputerAttributes", required: false, type: .list), @@ -1294,7 +1367,7 @@ extension Ds { } public struct DescribeSnapshotsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotIds", required: false, type: .list), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -1325,7 +1398,7 @@ extension Ds { } public struct DescribeEventTopicsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicNames", required: false, type: .list), AWSShapeMember(label: "DirectoryId", required: false, type: .string) ] @@ -1346,7 +1419,7 @@ extension Ds { } public struct DirectoryVpcSettingsDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: false, type: .list), AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "SecurityGroupId", required: false, type: .string), @@ -1377,7 +1450,7 @@ extension Ds { } public struct DeleteTrustResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrustId", required: false, type: .string) ] /// The Trust ID of the trust relationship that was deleted. @@ -1393,7 +1466,7 @@ extension Ds { } public struct CreateAliasResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Alias", required: false, type: .string), AWSShapeMember(label: "DirectoryId", required: false, type: .string) ] @@ -1414,7 +1487,7 @@ extension Ds { } public struct RadiusSettings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RadiusPort", required: false, type: .integer), AWSShapeMember(label: "AuthenticationProtocol", required: false, type: .enum), AWSShapeMember(label: "RadiusRetries", required: false, type: .integer), @@ -1469,7 +1542,7 @@ extension Ds { } public struct Snapshot: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "StartTime", required: false, type: .timestamp), @@ -1518,7 +1591,7 @@ extension Ds { } public struct RestoreFromSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: true, type: .string) ] /// The identifier of the snapshot to restore from. @@ -1549,7 +1622,7 @@ extension Ds { } public struct DeleteSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .string) ] /// The identifier of the directory snapshot that was deleted. @@ -1565,7 +1638,7 @@ extension Ds { } public struct CreateDirectoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "VpcSettings", required: false, type: .structure), AWSShapeMember(label: "ShortName", required: false, type: .string), @@ -1606,7 +1679,7 @@ extension Ds { } public struct UpdateRadiusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RadiusSettings", required: true, type: .structure), AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] @@ -1627,7 +1700,7 @@ extension Ds { } public struct DisableSsoRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Password", required: false, type: .string), AWSShapeMember(label: "UserName", required: false, type: .string), AWSShapeMember(label: "DirectoryId", required: true, type: .string) @@ -1653,7 +1726,7 @@ extension Ds { } public struct DeleteSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: true, type: .string) ] /// The identifier of the directory snapshot to be deleted. @@ -1669,7 +1742,7 @@ extension Ds { } public struct CreateTrustRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RemoteDomainName", required: true, type: .string), AWSShapeMember(label: "TrustDirection", required: true, type: .enum), AWSShapeMember(label: "ConditionalForwarderIpAddrs", required: false, type: .list), @@ -1710,7 +1783,7 @@ extension Ds { } public struct VerifyTrustRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrustId", required: true, type: .string) ] /// The unique Trust ID of the trust relationship to verify. @@ -1725,8 +1798,29 @@ extension Ds { } } + public struct UpdateNumberOfDomainControllersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DesiredNumber", required: true, type: .integer), + AWSShapeMember(label: "DirectoryId", required: true, type: .string) + ] + /// The number of domain controllers desired in the directory. + public let desiredNumber: Int32 + /// Identifier of the directory to which the domain controllers will be added or removed. + public let directoryId: String + + public init(desiredNumber: Int32, directoryId: String) { + self.desiredNumber = desiredNumber + self.directoryId = directoryId + } + + private enum CodingKeys: String, CodingKey { + case desiredNumber = "DesiredNumber" + case directoryId = "DirectoryId" + } + } + public struct RegisterEventTopicRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicName", required: true, type: .string), AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] @@ -1747,7 +1841,7 @@ extension Ds { } public struct CreateSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .string) ] /// The identifier of the snapshot that was created. @@ -1771,7 +1865,7 @@ extension Ds { } public struct AddIpRoutesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UpdateSecurityGroupForDirectoryControllers", required: false, type: .boolean), AWSShapeMember(label: "DirectoryId", required: true, type: .string), AWSShapeMember(label: "IpRoutes", required: true, type: .list) @@ -1802,7 +1896,7 @@ extension Ds { } public struct RemoveTagsFromResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -1834,7 +1928,7 @@ extension Ds { } public struct CancelSchemaExtensionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SchemaExtensionId", required: true, type: .string), AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] @@ -1855,7 +1949,7 @@ extension Ds { } public struct DescribeDirectoriesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryDescriptions", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1876,7 +1970,7 @@ extension Ds { } public struct CreateMicrosoftADResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: false, type: .string) ] /// The identifier of the directory that was created. @@ -1892,7 +1986,7 @@ extension Ds { } public struct GetSnapshotLimitsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] /// Contains the identifier of the directory to obtain the limits for. @@ -1912,7 +2006,7 @@ extension Ds { } public struct ListSchemaExtensionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "SchemaExtensionsInfo", required: false, type: .list) ] @@ -1937,7 +2031,7 @@ extension Ds { } public struct DescribeEventTopicsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventTopics", required: false, type: .list) ] /// A list of SNS topic names that receive status messages from the specified Directory ID. @@ -1953,7 +2047,7 @@ extension Ds { } public struct IpRouteInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "IpRouteStatusMsg", required: false, type: .enum), AWSShapeMember(label: "AddedDateTime", required: false, type: .timestamp), @@ -1994,7 +2088,7 @@ extension Ds { } public struct ConnectDirectoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Password", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "ShortName", required: false, type: .string), @@ -2035,7 +2129,7 @@ extension Ds { } public struct VerifyTrustResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrustId", required: false, type: .string) ] /// The unique Trust ID of the trust relationship that was verified. @@ -2055,7 +2149,7 @@ extension Ds { } public struct CreateConditionalForwarderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: true, type: .string), AWSShapeMember(label: "DnsIpAddrs", required: true, type: .list), AWSShapeMember(label: "RemoteDomainName", required: true, type: .string) @@ -2089,7 +2183,7 @@ extension Ds { } public struct DisableRadiusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: true, type: .string) ] /// The identifier of the directory for which to disable MFA. @@ -2117,8 +2211,69 @@ extension Ds { public var description: String { return self.rawValue } } + public struct DomainController: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "StatusLastUpdatedDateTime", required: false, type: .timestamp), + AWSShapeMember(label: "SubnetId", required: false, type: .string), + AWSShapeMember(label: "LaunchTime", required: false, type: .timestamp), + AWSShapeMember(label: "StatusReason", required: false, type: .string), + AWSShapeMember(label: "VpcId", required: false, type: .string), + AWSShapeMember(label: "DnsIpAddr", required: false, type: .string), + AWSShapeMember(label: "DirectoryId", required: false, type: .string), + AWSShapeMember(label: "DomainControllerId", required: false, type: .string), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string) + ] + /// The status of the domain controller. + public let status: DomainControllerStatus? + /// The date and time that the status was last updated. + public let statusLastUpdatedDateTime: TimeStamp? + /// Identifier of the subnet in the VPC that contains the domain controller. + public let subnetId: String? + /// Specifies when the domain controller was created. + public let launchTime: TimeStamp? + /// A description of the domain controller state. + public let statusReason: String? + /// The identifier of the VPC that contains the domain controller. + public let vpcId: String? + /// The IP address of the domain controller. + public let dnsIpAddr: String? + /// Identifier of the directory where the domain controller resides. + public let directoryId: String? + /// Identifies a specific domain controller in the directory. + public let domainControllerId: String? + /// The Availability Zone where the domain controller is located. + public let availabilityZone: String? + + public init(status: DomainControllerStatus? = nil, statusLastUpdatedDateTime: TimeStamp? = nil, subnetId: String? = nil, launchTime: TimeStamp? = nil, statusReason: String? = nil, vpcId: String? = nil, dnsIpAddr: String? = nil, directoryId: String? = nil, domainControllerId: String? = nil, availabilityZone: String? = nil) { + self.status = status + self.statusLastUpdatedDateTime = statusLastUpdatedDateTime + self.subnetId = subnetId + self.launchTime = launchTime + self.statusReason = statusReason + self.vpcId = vpcId + self.dnsIpAddr = dnsIpAddr + self.directoryId = directoryId + self.domainControllerId = domainControllerId + self.availabilityZone = availabilityZone + } + + private enum CodingKeys: String, CodingKey { + case status = "Status" + case statusLastUpdatedDateTime = "StatusLastUpdatedDateTime" + case subnetId = "SubnetId" + case launchTime = "LaunchTime" + case statusReason = "StatusReason" + case vpcId = "VpcId" + case dnsIpAddr = "DnsIpAddr" + case directoryId = "DirectoryId" + case domainControllerId = "DomainControllerId" + case availabilityZone = "AvailabilityZone" + } + } + public struct CreateDirectoryResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: false, type: .string) ] /// The identifier of the directory that was created. @@ -2134,7 +2289,7 @@ extension Ds { } public struct ListIpRoutesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "IpRoutesInfo", required: false, type: .list) ] @@ -2155,7 +2310,7 @@ extension Ds { } public struct DirectoryConnectSettings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: true, type: .list), AWSShapeMember(label: "VpcId", required: true, type: .string), AWSShapeMember(label: "CustomerUserName", required: true, type: .string), diff --git a/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_API.swift b/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_API.swift index 85b64b33d48..26f67a30005 100644 --- a/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_API.swift +++ b/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_API.swift @@ -26,21 +26,91 @@ public struct Dynamodb { ) } - /// Creates a new item, or replaces an old item with a new item. If an item that has the same primary key as the new item already exists in the specified table, the new item completely replaces the existing item. You can perform a conditional put operation (add a new item if one with the specified primary key doesn't exist), or replace an existing item if it has certain attribute values. In addition to putting an item, you can also return the item's attribute values in the same operation, using the ReturnValues parameter. When you add an item, the primary key attribute(s) are the only required attributes. Attribute values cannot be null. String and Binary type attributes must have lengths greater than zero. Set type attributes cannot be empty. Requests with empty values will be rejected with a ValidationException exception. To prevent a new item from replacing an existing item, use a conditional expression that contains the attribute_not_exists function with the name of the attribute being used as the partition key for the table. Since every record must contain that attribute, the attribute_not_exists function will only succeed if no matching item exists. For more information about PutItem, see Working with Items in the Amazon DynamoDB Developer Guide. + /// Creates a global table from an existing table. A global table creates a replication relationship between two or more DynamoDB tables with the same table name in the provided regions. Tables can only be added as the replicas of a global table group under the following conditions: The tables must have the same name. The tables must contain no items. The tables must have the same hash key and sort key (if present). The tables must have DynamoDB Streams enabled (NEW_AND_OLD_IMAGES). + public func createGlobalTable(_ input: CreateGlobalTableInput) throws -> CreateGlobalTableOutput { + return try client.send(operation: "CreateGlobalTable", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new item, or replaces an old item with a new item. If an item that has the same primary key as the new item already exists in the specified table, the new item completely replaces the existing item. You can perform a conditional put operation (add a new item if one with the specified primary key doesn't exist), or replace an existing item if it has certain attribute values. You can return the item's attribute values in the same operation, using the ReturnValues parameter. This topic provides general information about the PutItem API. For information on how to call the PutItem API using the AWS SDK in specific languages, see the following: PutItem in the AWS Command Line Interface PutItem in the AWS SDK for .NET PutItem in the AWS SDK for C++ PutItem in the AWS SDK for Go PutItem in the AWS SDK for Java PutItem in the AWS SDK for JavaScript PutItem in the AWS SDK for PHP V3 PutItem in the AWS SDK for Python PutItem in the AWS SDK for Ruby V2 When you add an item, the primary key attribute(s) are the only required attributes. Attribute values cannot be null. String and Binary type attributes must have lengths greater than zero. Set type attributes cannot be empty. Requests with empty values will be rejected with a ValidationException exception. To prevent a new item from replacing an existing item, use a conditional expression that contains the attribute_not_exists function with the name of the attribute being used as the partition key for the table. Since every record must contain that attribute, the attribute_not_exists function will only succeed if no matching item exists. For more information about PutItem, see Working with Items in the Amazon DynamoDB Developer Guide. public func putItem(_ input: PutItemInput) throws -> PutItemOutput { return try client.send(operation: "PutItem", path: "/", httpMethod: "POST", input: input) } - /// A Query operation uses the primary key of a table or a secondary index to directly access items from that table or index. Use the KeyConditionExpression parameter to provide a specific value for the partition key. The Query operation will return all of the items from the table or index with that partition key value. You can optionally narrow the scope of the Query operation by specifying a sort key value and a comparison operator in KeyConditionExpression. You can use the ScanIndexForward parameter to get results in forward or reverse order, by sort key. Queries that do not return results consume the minimum number of read capacity units for that type of read operation. If the total number of items meeting the query criteria exceeds the result set size limit of 1 MB, the query stops and results are returned to the user with the LastEvaluatedKey element to continue the query in a subsequent operation. Unlike a Scan operation, a Query operation never returns both an empty result set and a LastEvaluatedKey value. LastEvaluatedKey is only provided if you have used the Limit parameter, or if the result set exceeds 1 MB (prior to applying a filter). You can query a table, a local secondary index, or a global secondary index. For a query on a table or on a local secondary index, you can set the ConsistentRead parameter to true and obtain a strongly consistent result. Global secondary indexes support eventually consistent reads only, so do not specify ConsistentRead when querying a global secondary index. - public func query(_ input: QueryInput) throws -> QueryOutput { - return try client.send(operation: "Query", path: "/", httpMethod: "POST", input: input) + /// Creates a backup for an existing table. Each time you create an On-Demand Backup, the entire table data is backed up. There is no limit to the number of on-demand backups that can be taken. You can call CreateBackup at a maximum rate of 50 times per second. All backups in DynamoDB work without consuming any provisioned throughput on the table. This results in a fast, low-cost, and scalable backup process. In general, the larger the table, the more time it takes to back up. The backup is stored in an S3 data store that is maintained and managed by DynamoDB. Backups incorporate all writes (delete, put, update) that were completed within the last minute before the backup request was initiated. Backups might include some writes (delete, put, update) that were completed before the backup request was finished. For example, if you submit the backup request on 2018-12-14 at 14:25:00, the backup is guaranteed to contain all data committed to the table up to 14:24:00, and data committed after 14:26:00 will not be. The backup may or may not contain data modifications made between 14:24:00 and 14:26:00. On-Demand Backup does not support causal consistency. Along with data, the following are also included on the backups: Global secondary indexes (GSIs) Local secondary indexes (LSIs) Streams Provisioned read and write capacity + public func createBackup(_ input: CreateBackupInput) throws -> CreateBackupOutput { + return try client.send(operation: "CreateBackup", path: "/", httpMethod: "POST", input: input) } - /// Specify the lifetime of individual table items. The database automatically removes the item at the expiration of the item. The UpdateTimeToLive method will enable or disable TTL for the specified table. A successful UpdateTimeToLive call returns the current TimeToLiveSpecification; it may take up to one hour for the change to fully process. TTL compares the current time in epoch time format to the time stored in the TTL attribute of an item. If the epoch time value stored in the attribute is less than the current time, the item is marked as expired and subsequently deleted. The epoch time format is the number of seconds elapsed since 12:00:00 AM January 1st, 1970 UTC. DynamoDB deletes expired items on a best-effort basis to ensure availability of throughput for other data operations. DynamoDB typically deletes expired items within two days of expiration. The exact duration within which an item gets deleted after expiration is specific to the nature of the workload. Items that have expired and not been deleted will still show up in reads, queries, and scans. As items are deleted, they are removed from any Local Secondary Index and Global Secondary Index immediately in the same eventually consistent way as a standard delete operation. For more information, see Time To Live in the Amazon DynamoDB Developer Guide. + /// Returns information about the global table. + public func describeGlobalTable(_ input: DescribeGlobalTableInput) throws -> DescribeGlobalTableOutput { + return try client.send(operation: "DescribeGlobalTable", path: "/", httpMethod: "POST", input: input) + } + + /// The UpdateTimeToLive method will enable or disable TTL for the specified table. A successful UpdateTimeToLive call returns the current TimeToLiveSpecification; it may take up to one hour for the change to fully process. Any additional UpdateTimeToLive calls for the same table during this one hour duration result in a ValidationException. TTL compares the current time in epoch time format to the time stored in the TTL attribute of an item. If the epoch time value stored in the attribute is less than the current time, the item is marked as expired and subsequently deleted. The epoch time format is the number of seconds elapsed since 12:00:00 AM January 1st, 1970 UTC. DynamoDB deletes expired items on a best-effort basis to ensure availability of throughput for other data operations. DynamoDB typically deletes expired items within two days of expiration. The exact duration within which an item gets deleted after expiration is specific to the nature of the workload. Items that have expired and not been deleted will still show up in reads, queries, and scans. As items are deleted, they are removed from any Local Secondary Index and Global Secondary Index immediately in the same eventually consistent way as a standard delete operation. For more information, see Time To Live in the Amazon DynamoDB Developer Guide. public func updateTimeToLive(_ input: UpdateTimeToLiveInput) throws -> UpdateTimeToLiveOutput { return try client.send(operation: "UpdateTimeToLive", path: "/", httpMethod: "POST", input: input) } + /// Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table. If you issue a DescribeTable request immediately after a CreateTable request, DynamoDB might return a ResourceNotFoundException. This is because DescribeTable uses an eventually consistent query, and the metadata for your table might not be available at that moment. Wait for a few seconds, and then try the DescribeTable request again. + public func describeTable(_ input: DescribeTableInput) throws -> DescribeTableOutput { + return try client.send(operation: "DescribeTable", path: "/", httpMethod: "POST", input: input) + } + + /// List all tags on an Amazon DynamoDB resource. You can call ListTagsOfResource up to 10 times per second, per account. For an overview on tagging DynamoDB resources, see Tagging for DynamoDB in the Amazon DynamoDB Developer Guide. + public func listTagsOfResource(_ input: ListTagsOfResourceInput) throws -> ListTagsOfResourceOutput { + return try client.send(operation: "ListTagsOfResource", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new table from an existing backup. Any number of users can execute up to 10 concurrent restores in a given account. You can call RestoreTableFromBackup at a maximum rate of 10 times per second. You must manually set up the following on the restored table: Auto scaling policies IAM policies Cloudwatch metrics and alarms Tags Time to Live (TTL) settings + public func restoreTableFromBackup(_ input: RestoreTableFromBackupInput) throws -> RestoreTableFromBackupOutput { + return try client.send(operation: "RestoreTableFromBackup", path: "/", httpMethod: "POST", input: input) + } + + /// Gives a description of the Time to Live (TTL) status on the specified table. + public func describeTimeToLive(_ input: DescribeTimeToLiveInput) throws -> DescribeTimeToLiveOutput { + return try client.send(operation: "DescribeTimeToLive", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the current provisioned-capacity limits for your AWS account in a region, both for the region as a whole and for any one DynamoDB table that you create there. When you establish an AWS account, the account has initial limits on the maximum read capacity units and write capacity units that you can provision across all of your DynamoDB tables in a given region. Also, there are per-table limits that apply when you create a table there. For more information, see Limits page in the Amazon DynamoDB Developer Guide. Although you can increase these limits by filing a case at AWS Support Center, obtaining the increase is not instantaneous. The DescribeLimits action lets you write code to compare the capacity you are currently using to those limits imposed by your account so that you have enough time to apply for an increase before you hit a limit. For example, you could use one of the AWS SDKs to do the following: Call DescribeLimits for a particular region to obtain your current account limits on provisioned capacity there. Create a variable to hold the aggregate read capacity units provisioned for all your tables in that region, and one to hold the aggregate write capacity units. Zero them both. Call ListTables to obtain a list of all your DynamoDB tables. For each table name listed by ListTables, do the following: Call DescribeTable with the table name. Use the data returned by DescribeTable to add the read capacity units and write capacity units provisioned for the table itself to your variables. If the table has one or more global secondary indexes (GSIs), loop over these GSIs and add their provisioned capacity values to your variables as well. Report the account limits for that region returned by DescribeLimits, along with the total current provisioned capacity levels you have calculated. This will let you see whether you are getting close to your account-level limits. The per-table limits apply only when you are creating a new table. They restrict the sum of the provisioned capacity of the new table itself and all its global secondary indexes. For existing tables and their GSIs, DynamoDB will not let you increase provisioned capacity extremely rapidly, but the only upper limit that applies is that the aggregate provisioned capacity over all your tables and GSIs cannot exceed either of the per-account limits. DescribeLimits should only be called periodically. You can expect throttling errors if you call it more than once in a minute. The DescribeLimits Request element has no content. + public func describeLimits(_ input: DescribeLimitsInput) throws -> DescribeLimitsOutput { + return try client.send(operation: "DescribeLimits", path: "/", httpMethod: "POST", input: input) + } + + /// Lists all the global tables. Only those global tables that have replicas in the region specified as input are returned. + public func listGlobalTables(_ input: ListGlobalTablesInput) throws -> ListGlobalTablesOutput { + return try client.send(operation: "ListGlobalTables", path: "/", httpMethod: "POST", input: input) + } + + /// The GetItem operation returns a set of attributes for the item with the given primary key. If there is no matching item, GetItem does not return any data and there will be no Item element in the response. GetItem provides an eventually consistent read by default. If your application requires a strongly consistent read, set ConsistentRead to true. Although a strongly consistent read might take more time than an eventually consistent read, it always returns the last updated value. + public func getItem(_ input: GetItemInput) throws -> GetItemOutput { + return try client.send(operation: "GetItem", path: "/", httpMethod: "POST", input: input) + } + + /// Edits an existing item's attributes, or adds a new item to the table if it does not already exist. You can put, delete, or add attribute values. You can also perform a conditional update on an existing item (insert a new attribute name-value pair if it doesn't exist, or replace an existing name-value pair if it has certain expected attribute values). You can also return the item's attribute values in the same UpdateItem operation using the ReturnValues parameter. + public func updateItem(_ input: UpdateItemInput) throws -> UpdateItemOutput { + return try client.send(operation: "UpdateItem", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a single item in a table by primary key. You can perform a conditional delete operation that deletes the item if it exists, or if it has an expected attribute value. In addition to deleting an item, you can also return the item's attribute values in the same operation, using the ReturnValues parameter. Unless you specify conditions, the DeleteItem is an idempotent operation; running it multiple times on the same item or attribute does not result in an error response. Conditional deletes are useful for deleting items only if specific conditions are met. If those conditions are met, DynamoDB performs the delete. Otherwise, the item is not deleted. + public func deleteItem(_ input: DeleteItemInput) throws -> DeleteItemOutput { + return try client.send(operation: "DeleteItem", path: "/", httpMethod: "POST", input: input) + } + + /// List backups associated with an AWS account. To list backups for a given table, specify TableName. ListBackups returns a paginated list of results with at most 1MB worth of items in a page. You can also specify a limit for the maximum number of entries to be returned in a page. In the request, start time is inclusive but end time is exclusive. Note that these limits are for the time at which the original backup was requested. You can call ListBackups a maximum of 5 times per second. + public func listBackups(_ input: ListBackupsInput) throws -> ListBackupsOutput { + return try client.send(operation: "ListBackups", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes an existing backup of a table. You can call DeleteBackup at a maximum rate of 10 times per second. + public func deleteBackup(_ input: DeleteBackupInput) throws -> DeleteBackupOutput { + return try client.send(operation: "DeleteBackup", path: "/", httpMethod: "POST", input: input) + } + + /// The Query operation finds items based on primary key values. You can query any table or secondary index that has a composite primary key (a partition key and a sort key). Use the KeyConditionExpression parameter to provide a specific value for the partition key. The Query operation will return all of the items from the table or index with that partition key value. You can optionally narrow the scope of the Query operation by specifying a sort key value and a comparison operator in KeyConditionExpression. To further refine the Query results, you can optionally provide a FilterExpression. A FilterExpression determines which items within the results should be returned to you. All of the other results are discarded. A Query operation always returns a result set. If no matching items are found, the result set will be empty. Queries that do not return results consume the minimum number of read capacity units for that type of read operation. DynamoDB calculates the number of read capacity units consumed based on item size, not on the amount of data that is returned to an application. The number of capacity units consumed will be the same whether you request all of the attributes (the default behavior) or just some of them (using a projection expression). The number will also be the same whether or not you use a FilterExpression. Query results are always sorted by the sort key value. If the data type of the sort key is Number, the results are returned in numeric order; otherwise, the results are returned in order of UTF-8 bytes. By default, the sort order is ascending. To reverse the order, set the ScanIndexForward parameter to false. A single Query operation will read up to the maximum number of items set (if using the Limit parameter) or a maximum of 1 MB of data and then apply any filtering to the results using FilterExpression. If LastEvaluatedKey is present in the response, you will need to paginate the result set. For more information, see Paginating the Results in the Amazon DynamoDB Developer Guide. FilterExpression is applied after a Query finishes, but before the results are returned. A FilterExpression cannot contain partition key or sort key attributes. You need to specify those attributes in the KeyConditionExpression. A Query operation can return an empty result set and a LastEvaluatedKey if all the items read for the page of results are filtered out. You can query a table, a local secondary index, or a global secondary index. For a query on a table or on a local secondary index, you can set the ConsistentRead parameter to true and obtain a strongly consistent result. Global secondary indexes support eventually consistent reads only, so do not specify ConsistentRead when querying a global secondary index. + public func query(_ input: QueryInput) throws -> QueryOutput { + return try client.send(operation: "Query", path: "/", httpMethod: "POST", input: input) + } + /// Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table. You can only perform one of the following operations at once: Modify the provisioned throughput settings of the table. Enable or disable Streams on the table. Remove a global secondary index from the table. Create a new global secondary index on the table. Once the index begins backfilling, you can use UpdateTable to perform other operations. UpdateTable is an asynchronous operation; while it is executing, the table status changes from ACTIVE to UPDATING. While it is UPDATING, you cannot issue another UpdateTable request. When the table returns to the ACTIVE state, the UpdateTable operation is complete. public func updateTable(_ input: UpdateTableInput) throws -> UpdateTableOutput { return try client.send(operation: "UpdateTable", path: "/", httpMethod: "POST", input: input) @@ -51,14 +121,14 @@ public struct Dynamodb { return try client.send(operation: "BatchWriteItem", path: "/", httpMethod: "POST", input: input) } - /// List all tags on an Amazon DynamoDB resource. You can call ListTagsOfResource up to 10 times per second, per account. For an overview on tagging DynamoDB resources, see Tagging for DynamoDB in the Amazon DynamoDB Developer Guide. - public func listTagsOfResource(_ input: ListTagsOfResourceInput) throws -> ListTagsOfResourceOutput { - return try client.send(operation: "ListTagsOfResource", path: "/", httpMethod: "POST", input: input) + /// Checks the status of the backup restore settings on the specified table. If backups are enabled, ContinuousBackupsStatus will bet set to ENABLED. You can call DescribeContinuousBackups at a maximum rate of 10 times per second. + public func describeContinuousBackups(_ input: DescribeContinuousBackupsInput) throws -> DescribeContinuousBackupsOutput { + return try client.send(operation: "DescribeContinuousBackups", path: "/", httpMethod: "POST", input: input) } - /// Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table. If you issue a DescribeTable request immediately after a CreateTable request, DynamoDB might return a ResourceNotFoundException. This is because DescribeTable uses an eventually consistent query, and the metadata for your table might not be available at that moment. Wait for a few seconds, and then try the DescribeTable request again. - public func describeTable(_ input: DescribeTableInput) throws -> DescribeTableOutput { - return try client.send(operation: "DescribeTable", path: "/", httpMethod: "POST", input: input) + /// Returns an array of table names associated with the current account and endpoint. The output from ListTables is paginated, with each page returning a maximum of 100 table names. + public func listTables(_ input: ListTablesInput) throws -> ListTablesOutput { + return try client.send(operation: "ListTables", path: "/", httpMethod: "POST", input: input) } /// The BatchGetItem operation returns the attributes of one or more items from one or more tables. You identify requested items by primary key. A single operation can retrieve up to 16 MB of data, which can contain as many as 100 items. BatchGetItem will return a partial result if the response size limit is exceeded, the table's provisioned throughput is exceeded, or an internal processing failure occurs. If a partial result is returned, the operation returns a value for UnprocessedKeys. You can use this value to retry the operation starting with the next item to get. If you request more than 100 items BatchGetItem will return a ValidationException with the message "Too many items requested for the BatchGetItem call". For example, if you ask to retrieve 100 items, but each individual item is 300 KB in size, the system returns 52 items (so as not to exceed the 16 MB limit). It also returns an appropriate UnprocessedKeys value so you can get the next page of results. If desired, your application can include its own logic to assemble the pages of results into one data set. If none of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then BatchGetItem will return a ProvisionedThroughputExceededException. If at least one of the items is successfully processed, then BatchGetItem completes successfully, while returning the keys of the unread items in UnprocessedKeys. If DynamoDB returns any unprocessed items, you should retry the batch operation on those items. However, we strongly recommend that you use an exponential backoff algorithm. If you retry the batch operation immediately, the underlying read or write requests can still fail due to throttling on the individual tables. If you delay the batch operation using exponential backoff, the individual requests in the batch are much more likely to succeed. For more information, see Batch Operations and Error Handling in the Amazon DynamoDB Developer Guide. By default, BatchGetItem performs eventually consistent reads on every table in the request. If you want strongly consistent reads instead, you can set ConsistentRead to true for any or all tables. In order to minimize response latency, BatchGetItem retrieves items in parallel. When designing your application, keep in mind that DynamoDB does not return items in any particular order. To help parse the response by item, include the primary key values for the items in your request in the ProjectionExpression parameter. If a requested item does not exist, it is not returned in the result. Requests for nonexistent items consume the minimum read capacity units according to the type of read. For more information, see Capacity Units Calculations in the Amazon DynamoDB Developer Guide. @@ -66,19 +136,19 @@ public struct Dynamodb { return try client.send(operation: "BatchGetItem", path: "/", httpMethod: "POST", input: input) } - /// Gives a description of the Time to Live (TTL) status on the specified table. - public func describeTimeToLive(_ input: DescribeTimeToLiveInput) throws -> DescribeTimeToLiveOutput { - return try client.send(operation: "DescribeTimeToLive", path: "/", httpMethod: "POST", input: input) + /// Removes the association of tags from an Amazon DynamoDB resource. You can call UntagResource up to 5 times per second, per account. For an overview on tagging DynamoDB resources, see Tagging for DynamoDB in the Amazon DynamoDB Developer Guide. + public func untagResource(_ input: UntagResourceInput) throws { + _ = try client.send(operation: "UntagResource", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of table names associated with the current account and endpoint. The output from ListTables is paginated, with each page returning a maximum of 100 table names. - public func listTables(_ input: ListTablesInput) throws -> ListTablesOutput { - return try client.send(operation: "ListTables", path: "/", httpMethod: "POST", input: input) + /// Describes an existing backup of a table. You can call DescribeBackup at a maximum rate of 10 times per second. + public func describeBackup(_ input: DescribeBackupInput) throws -> DescribeBackupOutput { + return try client.send(operation: "DescribeBackup", path: "/", httpMethod: "POST", input: input) } - /// Removes the association of tags from an Amazon DynamoDB resource. You can call UntagResource up to 5 times per second, per account. For an overview on tagging DynamoDB resources, see Tagging for DynamoDB in the Amazon DynamoDB Developer Guide. - public func untagResource(_ input: UntagResourceInput) throws { - _ = try client.send(operation: "UntagResource", path: "/", httpMethod: "POST", input: input) + /// Adds or removes replicas to the specified global table. The global table should already exist to be able to use this operation. Currently, the replica to be added should be empty. + public func updateGlobalTable(_ input: UpdateGlobalTableInput) throws -> UpdateGlobalTableOutput { + return try client.send(operation: "UpdateGlobalTable", path: "/", httpMethod: "POST", input: input) } /// The DeleteTable operation deletes a table and all of its items. After a DeleteTable request, the specified table is in the DELETING state until DynamoDB completes the deletion. If the table is in the ACTIVE state, you can delete it. If a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException. If the specified table does not exist, DynamoDB returns a ResourceNotFoundException. If table is already in the DELETING state, no error is returned. DynamoDB might continue to accept data read and write operations, such as GetItem and PutItem, on a table in the DELETING state until the table deletion is complete. When you delete a table, any indexes on that table are also deleted. If you have DynamoDB Streams enabled on the table, then the corresponding stream on that table goes into the DISABLED state, and the stream is automatically deleted after 24 hours. Use the DescribeTable action to check the status of the table. @@ -86,39 +156,19 @@ public struct Dynamodb { return try client.send(operation: "DeleteTable", path: "/", httpMethod: "POST", input: input) } - /// The Scan operation returns one or more items and item attributes by accessing every item in a table or a secondary index. To have DynamoDB return fewer items, you can provide a FilterExpression operation. If the total number of scanned items exceeds the maximum data set size limit of 1 MB, the scan stops and results are returned to the user as a LastEvaluatedKey value to continue the scan in a subsequent operation. The results also include the number of items exceeding the limit. A scan can result in no table data meeting the filter criteria. By default, Scan operations proceed sequentially; however, for faster performance on a large table or secondary index, applications can request a parallel Scan operation by providing the Segment and TotalSegments parameters. For more information, see Parallel Scan in the Amazon DynamoDB Developer Guide. By default, Scan uses eventually consistent reads when accessing the data in a table; therefore, the result set might not include the changes to data in the table immediately before the operation began. If you need a consistent copy of the data, as of the time that the Scan begins, you can set the ConsistentRead parameter to true. + /// The Scan operation returns one or more items and item attributes by accessing every item in a table or a secondary index. To have DynamoDB return fewer items, you can provide a FilterExpression operation. If the total number of scanned items exceeds the maximum data set size limit of 1 MB, the scan stops and results are returned to the user as a LastEvaluatedKey value to continue the scan in a subsequent operation. The results also include the number of items exceeding the limit. A scan can result in no table data meeting the filter criteria. A single Scan operation will read up to the maximum number of items set (if using the Limit parameter) or a maximum of 1 MB of data and then apply any filtering to the results using FilterExpression. If LastEvaluatedKey is present in the response, you will need to paginate the result set. For more information, see Paginating the Results in the Amazon DynamoDB Developer Guide. Scan operations proceed sequentially; however, for faster performance on a large table or secondary index, applications can request a parallel Scan operation by providing the Segment and TotalSegments parameters. For more information, see Parallel Scan in the Amazon DynamoDB Developer Guide. Scan uses eventually consistent reads when accessing the data in a table; therefore, the result set might not include the changes to data in the table immediately before the operation began. If you need a consistent copy of the data, as of the time that the Scan begins, you can set the ConsistentRead parameter to true. public func scan(_ input: ScanInput) throws -> ScanOutput { return try client.send(operation: "Scan", path: "/", httpMethod: "POST", input: input) } - /// Edits an existing item's attributes, or adds a new item to the table if it does not already exist. You can put, delete, or add attribute values. You can also perform a conditional update on an existing item (insert a new attribute name-value pair if it doesn't exist, or replace an existing name-value pair if it has certain expected attribute values). You can also return the item's attribute values in the same UpdateItem operation using the ReturnValues parameter. - public func updateItem(_ input: UpdateItemInput) throws -> UpdateItemOutput { - return try client.send(operation: "UpdateItem", path: "/", httpMethod: "POST", input: input) - } - - /// The CreateTable operation adds a new table to your account. In an AWS account, table names must be unique within each region. That is, you can have two tables with same name if you create the tables in different regions. CreateTable is an asynchronous operation. Upon receiving a CreateTable request, DynamoDB immediately returns a response with a TableStatus of CREATING. After the table is created, DynamoDB sets the TableStatus to ACTIVE. You can perform read and write operations only on an ACTIVE table. You can optionally define secondary indexes on the new table, as part of the CreateTable operation. If you want to create multiple tables with secondary indexes on them, you must create the tables sequentially. Only one table with secondary indexes can be in the CREATING state at any given time. You can use the DescribeTable action to check the table status. - public func createTable(_ input: CreateTableInput) throws -> CreateTableOutput { - return try client.send(operation: "CreateTable", path: "/", httpMethod: "POST", input: input) - } - - /// Returns the current provisioned-capacity limits for your AWS account in a region, both for the region as a whole and for any one DynamoDB table that you create there. When you establish an AWS account, the account has initial limits on the maximum read capacity units and write capacity units that you can provision across all of your DynamoDB tables in a given region. Also, there are per-table limits that apply when you create a table there. For more information, see Limits page in the Amazon DynamoDB Developer Guide. Although you can increase these limits by filing a case at AWS Support Center, obtaining the increase is not instantaneous. The DescribeLimits action lets you write code to compare the capacity you are currently using to those limits imposed by your account so that you have enough time to apply for an increase before you hit a limit. For example, you could use one of the AWS SDKs to do the following: Call DescribeLimits for a particular region to obtain your current account limits on provisioned capacity there. Create a variable to hold the aggregate read capacity units provisioned for all your tables in that region, and one to hold the aggregate write capacity units. Zero them both. Call ListTables to obtain a list of all your DynamoDB tables. For each table name listed by ListTables, do the following: Call DescribeTable with the table name. Use the data returned by DescribeTable to add the read capacity units and write capacity units provisioned for the table itself to your variables. If the table has one or more global secondary indexes (GSIs), loop over these GSIs and add their provisioned capacity values to your variables as well. Report the account limits for that region returned by DescribeLimits, along with the total current provisioned capacity levels you have calculated. This will let you see whether you are getting close to your account-level limits. The per-table limits apply only when you are creating a new table. They restrict the sum of the provisioned capacity of the new table itself and all its global secondary indexes. For existing tables and their GSIs, DynamoDB will not let you increase provisioned capacity extremely rapidly, but the only upper limit that applies is that the aggregate provisioned capacity over all your tables and GSIs cannot exceed either of the per-account limits. DescribeLimits should only be called periodically. You can expect throttling errors if you call it more than once in a minute. The DescribeLimits Request element has no content. - public func describeLimits(_ input: DescribeLimitsInput) throws -> DescribeLimitsOutput { - return try client.send(operation: "DescribeLimits", path: "/", httpMethod: "POST", input: input) - } - /// Associate a set of tags with an Amazon DynamoDB resource. You can then activate these user-defined tags so that they appear on the Billing and Cost Management console for cost allocation tracking. You can call TagResource up to 5 times per second, per account. For an overview on tagging DynamoDB resources, see Tagging for DynamoDB in the Amazon DynamoDB Developer Guide. public func tagResource(_ input: TagResourceInput) throws { _ = try client.send(operation: "TagResource", path: "/", httpMethod: "POST", input: input) } - /// The GetItem operation returns a set of attributes for the item with the given primary key. If there is no matching item, GetItem does not return any data and there will be no Item element in the response. GetItem provides an eventually consistent read by default. If your application requires a strongly consistent read, set ConsistentRead to true. Although a strongly consistent read might take more time than an eventually consistent read, it always returns the last updated value. - public func getItem(_ input: GetItemInput) throws -> GetItemOutput { - return try client.send(operation: "GetItem", path: "/", httpMethod: "POST", input: input) - } - - /// Deletes a single item in a table by primary key. You can perform a conditional delete operation that deletes the item if it exists, or if it has an expected attribute value. In addition to deleting an item, you can also return the item's attribute values in the same operation, using the ReturnValues parameter. Unless you specify conditions, the DeleteItem is an idempotent operation; running it multiple times on the same item or attribute does not result in an error response. Conditional deletes are useful for deleting items only if specific conditions are met. If those conditions are met, DynamoDB performs the delete. Otherwise, the item is not deleted. - public func deleteItem(_ input: DeleteItemInput) throws -> DeleteItemOutput { - return try client.send(operation: "DeleteItem", path: "/", httpMethod: "POST", input: input) + /// The CreateTable operation adds a new table to your account. In an AWS account, table names must be unique within each region. That is, you can have two tables with same name if you create the tables in different regions. CreateTable is an asynchronous operation. Upon receiving a CreateTable request, DynamoDB immediately returns a response with a TableStatus of CREATING. After the table is created, DynamoDB sets the TableStatus to ACTIVE. You can perform read and write operations only on an ACTIVE table. You can optionally define secondary indexes on the new table, as part of the CreateTable operation. If you want to create multiple tables with secondary indexes on them, you must create the tables sequentially. Only one table with secondary indexes can be in the CREATING state at any given time. You can use the DescribeTable action to check the table status. + public func createTable(_ input: CreateTableInput) throws -> CreateTableOutput { + return try client.send(operation: "CreateTable", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_Error.swift b/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_Error.swift index d91a13ab85a..0859a89aca2 100644 --- a/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_Error.swift +++ b/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_Error.swift @@ -4,13 +4,23 @@ import AWSSDKSwiftCore /// Error enum for Dynamodb public enum DynamodbError: AWSErrorType { + case limitExceededException(message: String?) + case internalServerError(message: String?) + case globalTableAlreadyExistsException(message: String?) + case tableNotFoundException(message: String?) case conditionalCheckFailedException(message: String?) case provisionedThroughputExceededException(message: String?) case resourceNotFoundException(message: String?) case itemCollectionSizeLimitExceededException(message: String?) - case internalServerError(message: String?) + case tableInUseException(message: String?) + case continuousBackupsUnavailableException(message: String?) + case backupInUseException(message: String?) + case globalTableNotFoundException(message: String?) case resourceInUseException(message: String?) - case limitExceededException(message: String?) + case tableAlreadyExistsException(message: String?) + case backupNotFoundException(message: String?) + case replicaAlreadyExistsException(message: String?) + case replicaNotFoundException(message: String?) } extension DynamodbError { @@ -20,6 +30,14 @@ extension DynamodbError { errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) } switch errorCode { + case "LimitExceededException": + self = .limitExceededException(message: message) + case "InternalServerError": + self = .internalServerError(message: message) + case "GlobalTableAlreadyExistsException": + self = .globalTableAlreadyExistsException(message: message) + case "TableNotFoundException": + self = .tableNotFoundException(message: message) case "ConditionalCheckFailedException": self = .conditionalCheckFailedException(message: message) case "ProvisionedThroughputExceededException": @@ -28,12 +46,24 @@ extension DynamodbError { self = .resourceNotFoundException(message: message) case "ItemCollectionSizeLimitExceededException": self = .itemCollectionSizeLimitExceededException(message: message) - case "InternalServerError": - self = .internalServerError(message: message) + case "TableInUseException": + self = .tableInUseException(message: message) + case "ContinuousBackupsUnavailableException": + self = .continuousBackupsUnavailableException(message: message) + case "BackupInUseException": + self = .backupInUseException(message: message) + case "GlobalTableNotFoundException": + self = .globalTableNotFoundException(message: message) case "ResourceInUseException": self = .resourceInUseException(message: message) - case "LimitExceededException": - self = .limitExceededException(message: message) + case "TableAlreadyExistsException": + self = .tableAlreadyExistsException(message: message) + case "BackupNotFoundException": + self = .backupNotFoundException(message: message) + case "ReplicaAlreadyExistsException": + self = .replicaAlreadyExistsException(message: message) + case "ReplicaNotFoundException": + self = .replicaNotFoundException(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_Shapes.swift b/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_Shapes.swift index 122534614ca..d3702c96f61 100644 --- a/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/dynamodb/Dynamodb_Shapes.swift @@ -5,16 +5,59 @@ import AWSSDKSwiftCore extension Dynamodb { - public enum TimeToLiveStatus: String, CustomStringConvertible, Codable { - case enabling = "ENABLING" - case disabling = "DISABLING" - case enabled = "ENABLED" - case disabled = "DISABLED" - public var description: String { return self.rawValue } + public struct SourceTableDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KeySchema", required: true, type: .list), + AWSShapeMember(label: "ProvisionedThroughput", required: true, type: .structure), + AWSShapeMember(label: "TableCreationDateTime", required: true, type: .timestamp), + AWSShapeMember(label: "TableArn", required: false, type: .string), + AWSShapeMember(label: "ItemCount", required: false, type: .long), + AWSShapeMember(label: "TableSizeBytes", required: false, type: .long), + AWSShapeMember(label: "TableId", required: true, type: .string), + AWSShapeMember(label: "TableName", required: true, type: .string) + ] + /// Schema of the table. + public let keySchema: [KeySchemaElement] + /// Read IOPs and Write IOPS on the table when the backup was created. + public let provisionedThroughput: ProvisionedThroughput + /// Time when the source table was created. + public let tableCreationDateTime: TimeStamp + /// ARN of the table for which backup was created. + public let tableArn: String? + /// Number of items in the table. Please note this is an approximate value. + public let itemCount: Int64? + /// Size of the table in bytes. Please note this is an approximate value. + public let tableSizeBytes: Int64? + /// Unique identifier for the table for which the backup was created. + public let tableId: String + /// The name of the table for which the backup was created. + public let tableName: String + + public init(keySchema: [KeySchemaElement], provisionedThroughput: ProvisionedThroughput, tableCreationDateTime: TimeStamp, tableArn: String? = nil, itemCount: Int64? = nil, tableSizeBytes: Int64? = nil, tableId: String, tableName: String) { + self.keySchema = keySchema + self.provisionedThroughput = provisionedThroughput + self.tableCreationDateTime = tableCreationDateTime + self.tableArn = tableArn + self.itemCount = itemCount + self.tableSizeBytes = tableSizeBytes + self.tableId = tableId + self.tableName = tableName + } + + private enum CodingKeys: String, CodingKey { + case keySchema = "KeySchema" + case provisionedThroughput = "ProvisionedThroughput" + case tableCreationDateTime = "TableCreationDateTime" + case tableArn = "TableArn" + case itemCount = "ItemCount" + case tableSizeBytes = "TableSizeBytes" + case tableId = "TableId" + case tableName = "TableName" + } } public struct UpdateTableInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeDefinitions", required: false, type: .list), AWSShapeMember(label: "ProvisionedThroughput", required: false, type: .structure), AWSShapeMember(label: "TableName", required: true, type: .string), @@ -49,24 +92,8 @@ extension Dynamodb { } } - public struct DeleteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Key", required: true, type: .map) - ] - /// A map of attribute name to attribute values, representing the primary key of the item to delete. All of the table's primary key attributes must be specified, and their data types must match those of the table's key schema. - public let key: [String: AttributeValue] - - public init(key: [String: AttributeValue]) { - self.key = key - } - - private enum CodingKeys: String, CodingKey { - case key = "Key" - } - } - public struct CreateGlobalSecondaryIndexAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Projection", required: true, type: .structure), AWSShapeMember(label: "IndexName", required: true, type: .string), AWSShapeMember(label: "KeySchema", required: true, type: .list), @@ -96,71 +123,61 @@ extension Dynamodb { } } - public struct Projection: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NonKeyAttributes", required: false, type: .list), - AWSShapeMember(label: "ProjectionType", required: false, type: .enum) + public struct Replica: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegionName", required: false, type: .string) ] - /// Represents the non-key attribute names which will be projected into the index. For local secondary indexes, the total count of NonKeyAttributes summed across all of the local secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. - public let nonKeyAttributes: [String]? - /// The set of attributes that are projected into the index: KEYS_ONLY - Only the index and primary keys are projected into the index. INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes. ALL - All of the table attributes are projected into the index. - public let projectionType: ProjectionType? + /// The region where the replica needs to be created. + public let regionName: String? - public init(nonKeyAttributes: [String]? = nil, projectionType: ProjectionType? = nil) { - self.nonKeyAttributes = nonKeyAttributes - self.projectionType = projectionType + public init(regionName: String? = nil) { + self.regionName = regionName } private enum CodingKeys: String, CodingKey { - case nonKeyAttributes = "NonKeyAttributes" - case projectionType = "ProjectionType" + case regionName = "RegionName" } } - public struct KeySchemaElement: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeName", required: true, type: .string), - AWSShapeMember(label: "KeyType", required: true, type: .enum) + public struct DescribeBackupInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupArn", required: true, type: .string) ] - /// The name of a key attribute. - public let attributeName: String - /// The role that this key attribute will assume: HASH - partition key RANGE - sort key The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. - public let keyType: KeyType + /// The ARN associated with the backup. + public let backupArn: String - public init(attributeName: String, keyType: KeyType) { - self.attributeName = attributeName - self.keyType = keyType + public init(backupArn: String) { + self.backupArn = backupArn } private enum CodingKeys: String, CodingKey { - case attributeName = "AttributeName" - case keyType = "KeyType" + case backupArn = "BackupArn" } } - public struct TagResourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourceArn", required: true, type: .string), - AWSShapeMember(label: "Tags", required: true, type: .list) + public struct Projection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NonKeyAttributes", required: false, type: .list), + AWSShapeMember(label: "ProjectionType", required: false, type: .enum) ] - /// Identifies the Amazon DynamoDB resource to which tags should be added. This value is an Amazon Resource Name (ARN). - public let resourceArn: String - /// The tags to be assigned to the Amazon DynamoDB resource. - public let tags: [Tag] + /// Represents the non-key attribute names which will be projected into the index. For local secondary indexes, the total count of NonKeyAttributes summed across all of the local secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. + public let nonKeyAttributes: [String]? + /// The set of attributes that are projected into the index: KEYS_ONLY - Only the index and primary keys are projected into the index. INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes. ALL - All of the table attributes are projected into the index. + public let projectionType: ProjectionType? - public init(resourceArn: String, tags: [Tag]) { - self.resourceArn = resourceArn - self.tags = tags + public init(nonKeyAttributes: [String]? = nil, projectionType: ProjectionType? = nil) { + self.nonKeyAttributes = nonKeyAttributes + self.projectionType = projectionType } private enum CodingKeys: String, CodingKey { - case resourceArn = "ResourceArn" - case tags = "Tags" + case nonKeyAttributes = "NonKeyAttributes" + case projectionType = "ProjectionType" } } public struct ProvisionedThroughput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WriteCapacityUnits", required: true, type: .long), AWSShapeMember(label: "ReadCapacityUnits", required: true, type: .long) ] @@ -187,29 +204,109 @@ extension Dynamodb { public var description: String { return self.rawValue } } - public enum KeyType: String, CustomStringConvertible, Codable { - case hash = "HASH" - case range = "RANGE" + public struct CreateGlobalTableOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GlobalTableDescription", required: false, type: .structure) + ] + /// Contains the details of the global table. + public let globalTableDescription: GlobalTableDescription? + + public init(globalTableDescription: GlobalTableDescription? = nil) { + self.globalTableDescription = globalTableDescription + } + + private enum CodingKeys: String, CodingKey { + case globalTableDescription = "GlobalTableDescription" + } + } + + public struct LocalSecondaryIndexInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Projection", required: false, type: .structure), + AWSShapeMember(label: "IndexName", required: false, type: .string), + AWSShapeMember(label: "KeySchema", required: false, type: .list) + ] + /// Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. + public let projection: Projection? + /// Represents the name of the local secondary index. + public let indexName: String? + /// The complete key schema for a local secondary index, which consists of one or more pairs of attribute names and key types: HASH - partition key RANGE - sort key The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. + public let keySchema: [KeySchemaElement]? + + public init(projection: Projection? = nil, indexName: String? = nil, keySchema: [KeySchemaElement]? = nil) { + self.projection = projection + self.indexName = indexName + self.keySchema = keySchema + } + + private enum CodingKeys: String, CodingKey { + case projection = "Projection" + case indexName = "IndexName" + case keySchema = "KeySchema" + } + } + + public struct ListBackupsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimeRangeLowerBound", required: false, type: .timestamp), + AWSShapeMember(label: "TimeRangeUpperBound", required: false, type: .timestamp), + AWSShapeMember(label: "TableName", required: false, type: .string), + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "ExclusiveStartBackupArn", required: false, type: .string) + ] + /// Only backups created after this time are listed. TimeRangeLowerBound is inclusive. + public let timeRangeLowerBound: TimeStamp? + /// Only backups created before this time are listed. TimeRangeUpperBound is exclusive. + public let timeRangeUpperBound: TimeStamp? + /// The backups from the table specified by TableName are listed. + public let tableName: String? + /// Maximum number of backups to return at once. + public let limit: Int32? + /// LastEvaluatedBackupARN returned by the previous ListBackups call. + public let exclusiveStartBackupArn: String? + + public init(timeRangeLowerBound: TimeStamp? = nil, timeRangeUpperBound: TimeStamp? = nil, tableName: String? = nil, limit: Int32? = nil, exclusiveStartBackupArn: String? = nil) { + self.timeRangeLowerBound = timeRangeLowerBound + self.timeRangeUpperBound = timeRangeUpperBound + self.tableName = tableName + self.limit = limit + self.exclusiveStartBackupArn = exclusiveStartBackupArn + } + + private enum CodingKeys: String, CodingKey { + case timeRangeLowerBound = "TimeRangeLowerBound" + case timeRangeUpperBound = "TimeRangeUpperBound" + case tableName = "TableName" + case limit = "Limit" + case exclusiveStartBackupArn = "ExclusiveStartBackupArn" + } + } + + public enum BackupStatus: String, CustomStringConvertible, Codable { + case creating = "CREATING" + case deleted = "DELETED" + case available = "AVAILABLE" public var description: String { return self.rawValue } } - public struct DescribeTimeToLiveOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TimeToLiveDescription", required: false, type: .structure) + public struct ReplicaDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegionName", required: false, type: .string) ] - public let timeToLiveDescription: TimeToLiveDescription? + /// The name of the region. + public let regionName: String? - public init(timeToLiveDescription: TimeToLiveDescription? = nil) { - self.timeToLiveDescription = timeToLiveDescription + public init(regionName: String? = nil) { + self.regionName = regionName } private enum CodingKeys: String, CodingKey { - case timeToLiveDescription = "TimeToLiveDescription" + case regionName = "RegionName" } } public struct ConsumedCapacity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CapacityUnits", required: false, type: .double), AWSShapeMember(label: "Table", required: false, type: .structure), AWSShapeMember(label: "TableName", required: false, type: .string), @@ -244,47 +341,8 @@ extension Dynamodb { } } - public enum Select: String, CustomStringConvertible, Codable { - case allAttributes = "ALL_ATTRIBUTES" - case allProjectedAttributes = "ALL_PROJECTED_ATTRIBUTES" - case specificAttributes = "SPECIFIC_ATTRIBUTES" - case count = "COUNT" - public var description: String { return self.rawValue } - } - - public struct ExpectedAttributeValue: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeValueList", required: false, type: .list), - AWSShapeMember(label: "ComparisonOperator", required: false, type: .enum), - AWSShapeMember(label: "Value", required: false, type: .structure), - AWSShapeMember(label: "Exists", required: false, type: .boolean) - ] - /// One or more values to evaluate against the supplied attribute. The number of values in the list depends on the ComparisonOperator being used. For type Number, value comparisons are numeric. String value comparisons for greater than, equals, or less than are based on ASCII character code values. For example, a is greater than A, and a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters. For Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values. For information on specifying data types in JSON, see JSON Data Format in the Amazon DynamoDB Developer Guide. - public let attributeValueList: [AttributeValue]? - /// A comparator for evaluating attributes in the AttributeValueList. For example, equals, greater than, less than, etc. The following comparison operators are available: EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN The following are descriptions of each comparison operator. EQ : Equal. EQ is supported for all data types, including lists and maps. AttributeValueList can contain only one AttributeValue element of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}. NE : Not equal. NE is supported for all data types, including lists and maps. AttributeValueList can contain only one AttributeValue of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}. LE : Less than or equal. AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]}. LT : Less than. AttributeValueList can contain only one AttributeValue of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]}. GE : Greater than or equal. AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]}. GT : Greater than. AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]}. NOT_NULL : The attribute exists. NOT_NULL is supported for all data types, including lists and maps. This operator tests for the existence of an attribute, not its data type. If the data type of attribute "a" is null, and you evaluate it using NOT_NULL, the result is a Boolean true. This result is because the attribute "a" exists; its data type is not relevant to the NOT_NULL comparison operator. NULL : The attribute does not exist. NULL is supported for all data types, including lists and maps. This operator tests for the nonexistence of an attribute, not its data type. If the data type of attribute "a" is null, and you evaluate it using NULL, the result is a Boolean false. This is because the attribute "a" exists; its data type is not relevant to the NULL comparison operator. CONTAINS : Checks for a subsequence, or value in a set. AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is of type String, then the operator checks for a substring match. If the target attribute of the comparison is of type Binary, then the operator looks for a subsequence of the target that matches the input. If the target attribute of the comparison is a set ("SS", "NS", or "BS"), then the operator evaluates to true if it finds an exact match with any member of the set. CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can be a list; however, "b" cannot be a set, a map, or a list. NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value in a set. AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is a String, then the operator checks for the absence of a substring match. If the target attribute of the comparison is Binary, then the operator checks for the absence of a subsequence of the target that matches the input. If the target attribute of the comparison is a set ("SS", "NS", or "BS"), then the operator evaluates to true if it does not find an exact match with any member of the set. NOT_CONTAINS is supported for lists: When evaluating "a NOT CONTAINS b", "a" can be a list; however, "b" cannot be a set, a map, or a list. BEGINS_WITH : Checks for a prefix. AttributeValueList can contain only one AttributeValue of type String or Binary (not a Number or a set type). The target attribute of the comparison must be of type String or Binary (not a Number or a set type). IN : Checks for matching elements in a list. AttributeValueList can contain one or more AttributeValue elements of type String, Number, or Binary. These attributes are compared against an existing attribute of an item. If any elements of the input are equal to the item attribute, the expression evaluates to true. BETWEEN : Greater than or equal to the first value, and less than or equal to the second value. AttributeValueList must contain two AttributeValue elements of the same type, either String, Number, or Binary (not a set type). A target attribute matches if the target value is greater than, or equal to, the first element and less than, or equal to, the second element. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not compare to {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]} - public let comparisonOperator: ComparisonOperator? - /// Represents the data for the expected attribute. Each attribute value is described as a name-value pair. The name is the data type, and the value is the data itself. For more information, see Data Types in the Amazon DynamoDB Developer Guide. - public let value: AttributeValue? - /// Causes DynamoDB to evaluate the value before attempting a conditional operation: If Exists is true, DynamoDB will check to see if that attribute value already exists in the table. If it is found, then the operation succeeds. If it is not found, the operation fails with a ConditionalCheckFailedException. If Exists is false, DynamoDB assumes that the attribute value does not exist in the table. If in fact the value does not exist, then the assumption is valid and the operation succeeds. If the value is found, despite the assumption that it does not exist, the operation fails with a ConditionalCheckFailedException. The default setting for Exists is true. If you supply a Value all by itself, DynamoDB assumes the attribute exists: You don't have to set Exists to true, because it is implied. DynamoDB returns a ValidationException if: Exists is true but there is no Value to check. (You expect a value to exist, but don't specify what that value is.) Exists is false but you also provide a Value. (You cannot expect an attribute to have a value, while also expecting it not to exist.) - public let exists: Bool? - - public init(attributeValueList: [AttributeValue]? = nil, comparisonOperator: ComparisonOperator? = nil, value: AttributeValue? = nil, exists: Bool? = nil) { - self.attributeValueList = attributeValueList - self.comparisonOperator = comparisonOperator - self.value = value - self.exists = exists - } - - private enum CodingKeys: String, CodingKey { - case attributeValueList = "AttributeValueList" - case comparisonOperator = "ComparisonOperator" - case value = "Value" - case exists = "Exists" - } - } - public struct QueryInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConsistentRead", required: false, type: .boolean), AWSShapeMember(label: "ExpressionAttributeNames", required: false, type: .map), AWSShapeMember(label: "ProjectionExpression", required: false, type: .string), @@ -378,61 +436,8 @@ extension Dynamodb { } } - public enum ConditionalOperator: String, CustomStringConvertible, Codable { - case and = "AND" - case or = "OR" - public var description: String { return self.rawValue } - } - - public struct PutItemOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ConsumedCapacity", required: false, type: .structure), - AWSShapeMember(label: "Attributes", required: false, type: .map), - AWSShapeMember(label: "ItemCollectionMetrics", required: false, type: .structure) - ] - /// The capacity units consumed by the PutItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide. - public let consumedCapacity: ConsumedCapacity? - /// The attribute values as they appeared before the PutItem operation, but only if ReturnValues is specified as ALL_OLD in the request. Each element consists of an attribute name and an attribute value. - public let attributes: [String: AttributeValue]? - /// Information about item collections, if any, that were affected by the PutItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response. Each ItemCollectionMetrics element consists of: ItemCollectionKey - The partition key value of the item collection. This is the same as the partition key value of the item itself. SizeEstimateRange - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. - public let itemCollectionMetrics: ItemCollectionMetrics? - - public init(consumedCapacity: ConsumedCapacity? = nil, attributes: [String: AttributeValue]? = nil, itemCollectionMetrics: ItemCollectionMetrics? = nil) { - self.consumedCapacity = consumedCapacity - self.attributes = attributes - self.itemCollectionMetrics = itemCollectionMetrics - } - - private enum CodingKeys: String, CodingKey { - case consumedCapacity = "ConsumedCapacity" - case attributes = "Attributes" - case itemCollectionMetrics = "ItemCollectionMetrics" - } - } - - public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: true, type: .string), - AWSShapeMember(label: "Key", required: true, type: .string) - ] - /// The value of the tag. Tag values are case-sensitive and can be null. - public let value: String - /// The key of the tag.Tag keys are case sensitive. Each DynamoDB table can only have up to one tag with the same key. If you try to add an existing tag (same key), the existing tag value will be updated to the new value. - public let key: String - - public init(value: String, key: String) { - self.value = value - self.key = key - } - - private enum CodingKeys: String, CodingKey { - case value = "Value" - case key = "Key" - } - } - public struct GetItemInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConsistentRead", required: false, type: .boolean), AWSShapeMember(label: "ExpressionAttributeNames", required: false, type: .map), AWSShapeMember(label: "ProjectionExpression", required: false, type: .string), @@ -476,8 +481,29 @@ extension Dynamodb { } } + public struct ListGlobalTablesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GlobalTables", required: false, type: .list), + AWSShapeMember(label: "LastEvaluatedGlobalTableName", required: false, type: .string) + ] + /// List of global table names. + public let globalTables: [GlobalTable]? + /// Last evaluated global table name. + public let lastEvaluatedGlobalTableName: String? + + public init(globalTables: [GlobalTable]? = nil, lastEvaluatedGlobalTableName: String? = nil) { + self.globalTables = globalTables + self.lastEvaluatedGlobalTableName = lastEvaluatedGlobalTableName + } + + private enum CodingKeys: String, CodingKey { + case globalTables = "GlobalTables" + case lastEvaluatedGlobalTableName = "LastEvaluatedGlobalTableName" + } + } + public struct AttributeValueUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: false, type: .enum), AWSShapeMember(label: "Value", required: false, type: .structure) ] @@ -497,36 +523,36 @@ extension Dynamodb { } } - public enum ProjectionType: String, CustomStringConvertible, Codable { - case all = "ALL" - case keysOnly = "KEYS_ONLY" - case include = "INCLUDE" - public var description: String { return self.rawValue } - } - - public struct WriteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeleteRequest", required: false, type: .structure), - AWSShapeMember(label: "PutRequest", required: false, type: .structure) + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: true, type: .string), + AWSShapeMember(label: "Key", required: true, type: .string) ] - /// A request to perform a DeleteItem operation. - public let deleteRequest: DeleteRequest? - /// A request to perform a PutItem operation. - public let putRequest: PutRequest? + /// The value of the tag. Tag values are case-sensitive and can be null. + public let value: String + /// The key of the tag.Tag keys are case sensitive. Each DynamoDB table can only have up to one tag with the same key. If you try to add an existing tag (same key), the existing tag value will be updated to the new value. + public let key: String - public init(deleteRequest: DeleteRequest? = nil, putRequest: PutRequest? = nil) { - self.deleteRequest = deleteRequest - self.putRequest = putRequest + public init(value: String, key: String) { + self.value = value + self.key = key } private enum CodingKeys: String, CodingKey { - case deleteRequest = "DeleteRequest" - case putRequest = "PutRequest" + case value = "Value" + case key = "Key" } } + public enum ProjectionType: String, CustomStringConvertible, Codable { + case all = "ALL" + case keysOnly = "KEYS_ONLY" + case include = "INCLUDE" + public var description: String { return self.rawValue } + } + public struct CreateTableOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TableDescription", required: false, type: .structure) ] /// Represents the properties of the table. @@ -541,29 +567,8 @@ extension Dynamodb { } } - public struct TimeToLiveSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeName", required: true, type: .string), - AWSShapeMember(label: "Enabled", required: true, type: .boolean) - ] - /// The name of the Time to Live attribute used to store the expiration time for items in the table. - public let attributeName: String - /// Indicates whether Time To Live is to be enabled (true) or disabled (false) on the table. - public let enabled: Bool - - public init(attributeName: String, enabled: Bool) { - self.attributeName = attributeName - self.enabled = enabled - } - - private enum CodingKeys: String, CodingKey { - case attributeName = "AttributeName" - case enabled = "Enabled" - } - } - public struct ListTagsOfResourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -583,32 +588,8 @@ extension Dynamodb { } } - public enum IndexStatus: String, CustomStringConvertible, Codable { - case creating = "CREATING" - case updating = "UPDATING" - case deleting = "DELETING" - case active = "ACTIVE" - public var description: String { return self.rawValue } - } - - public struct DeleteTableInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TableName", required: true, type: .string) - ] - /// The name of the table to delete. - public let tableName: String - - public init(tableName: String) { - self.tableName = tableName - } - - private enum CodingKeys: String, CodingKey { - case tableName = "TableName" - } - } - public struct ScanOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastEvaluatedKey", required: false, type: .map), AWSShapeMember(label: "ConsumedCapacity", required: false, type: .structure), AWSShapeMember(label: "ScannedCount", required: false, type: .integer), @@ -643,8 +624,29 @@ extension Dynamodb { } } + public struct CreateGlobalTableInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReplicationGroup", required: true, type: .list), + AWSShapeMember(label: "GlobalTableName", required: true, type: .string) + ] + /// The regions where the global table needs to be created. + public let replicationGroup: [Replica] + /// The global table name. + public let globalTableName: String + + public init(replicationGroup: [Replica], globalTableName: String) { + self.replicationGroup = replicationGroup + self.globalTableName = globalTableName + } + + private enum CodingKeys: String, CodingKey { + case replicationGroup = "ReplicationGroup" + case globalTableName = "GlobalTableName" + } + } + public struct GlobalSecondaryIndex: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Projection", required: true, type: .structure), AWSShapeMember(label: "IndexName", required: true, type: .string), AWSShapeMember(label: "KeySchema", required: true, type: .list), @@ -681,7 +683,7 @@ extension Dynamodb { } public struct PutRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Item", required: true, type: .map) ] /// A map of attribute name to attribute values, representing the primary key of an item to be processed by PutItem. All of the table's primary key attributes must be specified, and their data types must match those of the table's key schema. If any attributes are present in the item which are part of an index key schema for the table, their types must match the index key schema. @@ -696,54 +698,24 @@ extension Dynamodb { } } - public struct CreateTableInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeDefinitions", required: true, type: .list), - AWSShapeMember(label: "KeySchema", required: true, type: .list), - AWSShapeMember(label: "ProvisionedThroughput", required: true, type: .structure), - AWSShapeMember(label: "LocalSecondaryIndexes", required: false, type: .list), - AWSShapeMember(label: "GlobalSecondaryIndexes", required: false, type: .list), - AWSShapeMember(label: "TableName", required: true, type: .string), - AWSShapeMember(label: "StreamSpecification", required: false, type: .structure) + public struct DeleteBackupOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupDescription", required: false, type: .structure) ] - /// An array of attributes that describe the key schema for the table and indexes. - public let attributeDefinitions: [AttributeDefinition] - /// Specifies the attributes that make up the primary key for a table or an index. The attributes in KeySchema must also be defined in the AttributeDefinitions array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. Each KeySchemaElement in the array is composed of: AttributeName - The name of this key attribute. KeyType - The role that the key attribute will assume: HASH - partition key RANGE - sort key The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. For a simple primary key (partition key), you must provide exactly one element with a KeyType of HASH. For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a KeyType of HASH, and the second element must have a KeyType of RANGE. For more information, see Specifying the Primary Key in the Amazon DynamoDB Developer Guide. - public let keySchema: [KeySchemaElement] - /// Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the UpdateTable operation. For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide. - public let provisionedThroughput: ProvisionedThroughput - /// One or more local secondary indexes (the maximum is five) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained. Each local secondary index in the array includes the following: IndexName - The name of the local secondary index. Must be unique only for this table. KeySchema - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table. Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: ProjectionType - One of the following: KEYS_ONLY - Only the index and primary keys are projected into the index. INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes. ALL - All of the table attributes are projected into the index. NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. - public let localSecondaryIndexes: [LocalSecondaryIndex]? - /// One or more global secondary indexes (the maximum is five) to be created on the table. Each global secondary index in the array includes the following: IndexName - The name of the global secondary index. Must be unique only for this table. KeySchema - Specifies the key schema for the global secondary index. Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: ProjectionType - One of the following: KEYS_ONLY - Only the index and primary keys are projected into the index. INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes. ALL - All of the table attributes are projected into the index. NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. ProvisionedThroughput - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units. - public let globalSecondaryIndexes: [GlobalSecondaryIndex]? - /// The name of the table to create. - public let tableName: String - /// The settings for DynamoDB Streams on the table. These settings consist of: StreamEnabled - Indicates whether Streams is to be enabled (true) or disabled (false). StreamViewType - When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values for StreamViewType are: KEYS_ONLY - Only the key attributes of the modified item are written to the stream. NEW_IMAGE - The entire item, as it appears after it was modified, is written to the stream. OLD_IMAGE - The entire item, as it appeared before it was modified, is written to the stream. NEW_AND_OLD_IMAGES - Both the new and the old item images of the item are written to the stream. - public let streamSpecification: StreamSpecification? + /// Contains the description of the backup created for the table. + public let backupDescription: BackupDescription? - public init(attributeDefinitions: [AttributeDefinition], keySchema: [KeySchemaElement], provisionedThroughput: ProvisionedThroughput, localSecondaryIndexes: [LocalSecondaryIndex]? = nil, globalSecondaryIndexes: [GlobalSecondaryIndex]? = nil, tableName: String, streamSpecification: StreamSpecification? = nil) { - self.attributeDefinitions = attributeDefinitions - self.keySchema = keySchema - self.provisionedThroughput = provisionedThroughput - self.localSecondaryIndexes = localSecondaryIndexes - self.globalSecondaryIndexes = globalSecondaryIndexes - self.tableName = tableName - self.streamSpecification = streamSpecification + public init(backupDescription: BackupDescription? = nil) { + self.backupDescription = backupDescription } private enum CodingKeys: String, CodingKey { - case attributeDefinitions = "AttributeDefinitions" - case keySchema = "KeySchema" - case provisionedThroughput = "ProvisionedThroughput" - case localSecondaryIndexes = "LocalSecondaryIndexes" - case globalSecondaryIndexes = "GlobalSecondaryIndexes" - case tableName = "TableName" - case streamSpecification = "StreamSpecification" + case backupDescription = "BackupDescription" } } public struct ListTablesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExclusiveStartTableName", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] @@ -764,7 +736,7 @@ extension Dynamodb { } public struct TimeToLiveDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TimeToLiveStatus", required: false, type: .enum), AWSShapeMember(label: "AttributeName", required: false, type: .string) ] @@ -784,33 +756,15 @@ extension Dynamodb { } } - public struct BatchGetItemInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReturnConsumedCapacity", required: false, type: .enum), - AWSShapeMember(label: "RequestItems", required: true, type: .map) - ] - public let returnConsumedCapacity: ReturnConsumedCapacity? - /// A map of one or more table names and, for each table, a map that describes one or more items to retrieve from that table. Each table name can be used only once per BatchGetItem request. Each element in the map of items to retrieve consists of the following: ConsistentRead - If true, a strongly consistent read is used; if false (the default), an eventually consistent read is used. ExpressionAttributeNames - One or more substitution tokens for attribute names in the ProjectionExpression parameter. The following are some use cases for using ExpressionAttributeNames: To access an attribute whose name conflicts with a DynamoDB reserved word. To create a placeholder for repeating occurrences of an attribute name in an expression. To prevent special characters in an attribute name from being misinterpreted in an expression. Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name: Percentile The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames: {"#P":"Percentile"} You could then use this substitution in an expression, as in this example: #P = :val Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime. For more information on expression attribute names, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide. Keys - An array of primary key attribute values that define specific items in the table. For each primary key, you must provide all of the key attributes. For example, with a simple primary key, you only need to provide the partition key value. For a composite key, you must provide both the partition key value and the sort key value. ProjectionExpression - A string that identifies one or more attributes to retrieve from the table. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result. For more information, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide. AttributesToGet - This is a legacy parameter. Use ProjectionExpression instead. For more information, see AttributesToGet in the Amazon DynamoDB Developer Guide. - public let requestItems: [String: KeysAndAttributes] - - public init(returnConsumedCapacity: ReturnConsumedCapacity? = nil, requestItems: [String: KeysAndAttributes]) { - self.returnConsumedCapacity = returnConsumedCapacity - self.requestItems = requestItems - } - - private enum CodingKeys: String, CodingKey { - case returnConsumedCapacity = "ReturnConsumedCapacity" - case requestItems = "RequestItems" - } - } - public struct TableDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LatestStreamArn", required: false, type: .string), AWSShapeMember(label: "ProvisionedThroughput", required: false, type: .structure), AWSShapeMember(label: "KeySchema", required: false, type: .list), AWSShapeMember(label: "TableArn", required: false, type: .string), + AWSShapeMember(label: "RestoreSummary", required: false, type: .structure), AWSShapeMember(label: "ItemCount", required: false, type: .long), + AWSShapeMember(label: "TableId", required: false, type: .string), AWSShapeMember(label: "StreamSpecification", required: false, type: .structure), AWSShapeMember(label: "AttributeDefinitions", required: false, type: .list), AWSShapeMember(label: "CreationDateTime", required: false, type: .timestamp), @@ -829,8 +783,12 @@ extension Dynamodb { public let keySchema: [KeySchemaElement]? /// The Amazon Resource Name (ARN) that uniquely identifies the table. public let tableArn: String? + /// Contains details for the restore. + public let restoreSummary: RestoreSummary? /// The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. public let itemCount: Int64? + /// Unique identifier for the table for which the backup was created. + public let tableId: String? /// The current DynamoDB Streams configuration for the table. public let streamSpecification: StreamSpecification? /// An array of AttributeDefinition objects. Each of these objects describes one attribute in the table and index key schema. Each AttributeDefinition object in this array is composed of: AttributeName - The name of the attribute. AttributeType - The data type for the attribute. @@ -850,12 +808,14 @@ extension Dynamodb { /// A timestamp, in ISO 8601 format, for this stream. Note that LatestStreamLabel is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique: the AWS customer ID. the table name. the StreamLabel. public let latestStreamLabel: String? - public init(latestStreamArn: String? = nil, provisionedThroughput: ProvisionedThroughputDescription? = nil, keySchema: [KeySchemaElement]? = nil, tableArn: String? = nil, itemCount: Int64? = nil, streamSpecification: StreamSpecification? = nil, attributeDefinitions: [AttributeDefinition]? = nil, creationDateTime: TimeStamp? = nil, localSecondaryIndexes: [LocalSecondaryIndexDescription]? = nil, globalSecondaryIndexes: [GlobalSecondaryIndexDescription]? = nil, tableSizeBytes: Int64? = nil, tableName: String? = nil, tableStatus: TableStatus? = nil, latestStreamLabel: String? = nil) { + public init(latestStreamArn: String? = nil, provisionedThroughput: ProvisionedThroughputDescription? = nil, keySchema: [KeySchemaElement]? = nil, tableArn: String? = nil, restoreSummary: RestoreSummary? = nil, itemCount: Int64? = nil, tableId: String? = nil, streamSpecification: StreamSpecification? = nil, attributeDefinitions: [AttributeDefinition]? = nil, creationDateTime: TimeStamp? = nil, localSecondaryIndexes: [LocalSecondaryIndexDescription]? = nil, globalSecondaryIndexes: [GlobalSecondaryIndexDescription]? = nil, tableSizeBytes: Int64? = nil, tableName: String? = nil, tableStatus: TableStatus? = nil, latestStreamLabel: String? = nil) { self.latestStreamArn = latestStreamArn self.provisionedThroughput = provisionedThroughput self.keySchema = keySchema self.tableArn = tableArn + self.restoreSummary = restoreSummary self.itemCount = itemCount + self.tableId = tableId self.streamSpecification = streamSpecification self.attributeDefinitions = attributeDefinitions self.creationDateTime = creationDateTime @@ -872,7 +832,9 @@ extension Dynamodb { case provisionedThroughput = "ProvisionedThroughput" case keySchema = "KeySchema" case tableArn = "TableArn" + case restoreSummary = "RestoreSummary" case itemCount = "ItemCount" + case tableId = "TableId" case streamSpecification = "StreamSpecification" case attributeDefinitions = "AttributeDefinitions" case creationDateTime = "CreationDateTime" @@ -885,115 +847,34 @@ extension Dynamodb { } } - public enum ReturnValue: String, CustomStringConvertible, Codable { - case none = "NONE" - case allOld = "ALL_OLD" - case updatedOld = "UPDATED_OLD" - case allNew = "ALL_NEW" - case updatedNew = "UPDATED_NEW" - public var description: String { return self.rawValue } - } - - public struct QueryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LastEvaluatedKey", required: false, type: .map), - AWSShapeMember(label: "ConsumedCapacity", required: false, type: .structure), - AWSShapeMember(label: "ScannedCount", required: false, type: .integer), - AWSShapeMember(label: "Items", required: false, type: .list), - AWSShapeMember(label: "Count", required: false, type: .integer) - ] - /// The primary key of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request. If LastEvaluatedKey is empty, then the "last page" of results has been processed and there is no more data to be retrieved. If LastEvaluatedKey is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when LastEvaluatedKey is empty. - public let lastEvaluatedKey: [String: AttributeValue]? - /// The capacity units consumed by the Query operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide. - public let consumedCapacity: ConsumedCapacity? - /// The number of items evaluated, before any QueryFilter is applied. A high ScannedCount value with few, or no, Count results indicates an inefficient Query operation. For more information, see Count and ScannedCount in the Amazon DynamoDB Developer Guide. If you did not use a filter in the request, then ScannedCount is the same as Count. - public let scannedCount: Int32? - /// An array of item attributes that match the query criteria. Each element in this array consists of an attribute name and the value for that attribute. - public let items: [[String: AttributeValue]]? - /// The number of items in the response. If you used a QueryFilter in the request, then Count is the number of items returned after the filter was applied, and ScannedCount is the number of matching items before the filter was applied. If you did not use a filter in the request, then Count and ScannedCount are the same. - public let count: Int32? - - public init(lastEvaluatedKey: [String: AttributeValue]? = nil, consumedCapacity: ConsumedCapacity? = nil, scannedCount: Int32? = nil, items: [[String: AttributeValue]]? = nil, count: Int32? = nil) { - self.lastEvaluatedKey = lastEvaluatedKey - self.consumedCapacity = consumedCapacity - self.scannedCount = scannedCount - self.items = items - self.count = count - } - - private enum CodingKeys: String, CodingKey { - case lastEvaluatedKey = "LastEvaluatedKey" - case consumedCapacity = "ConsumedCapacity" - case scannedCount = "ScannedCount" - case items = "Items" - case count = "Count" - } - } - - public struct UntagResourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourceArn", required: true, type: .string), - AWSShapeMember(label: "TagKeys", required: true, type: .list) - ] - /// The Amazon DyanamoDB resource the tags will be removed from. This value is an Amazon Resource Name (ARN). - public let resourceArn: String - /// A list of tag keys. Existing tags of the resource whose keys are members of this list will be removed from the Amazon DynamoDB resource. - public let tagKeys: [String] - - public init(resourceArn: String, tagKeys: [String]) { - self.resourceArn = resourceArn - self.tagKeys = tagKeys - } - - private enum CodingKeys: String, CodingKey { - case resourceArn = "ResourceArn" - case tagKeys = "TagKeys" - } - } - - public struct LocalSecondaryIndexDescription: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Projection", required: false, type: .structure), - AWSShapeMember(label: "IndexName", required: false, type: .string), - AWSShapeMember(label: "KeySchema", required: false, type: .list), - AWSShapeMember(label: "IndexSizeBytes", required: false, type: .long), - AWSShapeMember(label: "IndexArn", required: false, type: .string), - AWSShapeMember(label: "ItemCount", required: false, type: .long) + public struct BackupDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupDetails", required: false, type: .structure), + AWSShapeMember(label: "SourceTableFeatureDetails", required: false, type: .structure), + AWSShapeMember(label: "SourceTableDetails", required: false, type: .structure) ] - /// Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. - public let projection: Projection? - /// Represents the name of the local secondary index. - public let indexName: String? - /// The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: HASH - partition key RANGE - sort key The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. - public let keySchema: [KeySchemaElement]? - /// The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. - public let indexSizeBytes: Int64? - /// The Amazon Resource Name (ARN) that uniquely identifies the index. - public let indexArn: String? - /// The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. - public let itemCount: Int64? + /// Contains the details of the backup created for the table. + public let backupDetails: BackupDetails? + /// Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL. + public let sourceTableFeatureDetails: SourceTableFeatureDetails? + /// Contains the details of the table when the backup was created. + public let sourceTableDetails: SourceTableDetails? - public init(projection: Projection? = nil, indexName: String? = nil, keySchema: [KeySchemaElement]? = nil, indexSizeBytes: Int64? = nil, indexArn: String? = nil, itemCount: Int64? = nil) { - self.projection = projection - self.indexName = indexName - self.keySchema = keySchema - self.indexSizeBytes = indexSizeBytes - self.indexArn = indexArn - self.itemCount = itemCount + public init(backupDetails: BackupDetails? = nil, sourceTableFeatureDetails: SourceTableFeatureDetails? = nil, sourceTableDetails: SourceTableDetails? = nil) { + self.backupDetails = backupDetails + self.sourceTableFeatureDetails = sourceTableFeatureDetails + self.sourceTableDetails = sourceTableDetails } private enum CodingKeys: String, CodingKey { - case projection = "Projection" - case indexName = "IndexName" - case keySchema = "KeySchema" - case indexSizeBytes = "IndexSizeBytes" - case indexArn = "IndexArn" - case itemCount = "ItemCount" + case backupDetails = "BackupDetails" + case sourceTableFeatureDetails = "SourceTableFeatureDetails" + case sourceTableDetails = "SourceTableDetails" } } public struct StreamSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamViewType", required: false, type: .enum), AWSShapeMember(label: "StreamEnabled", required: false, type: .boolean) ] @@ -1014,7 +895,7 @@ extension Dynamodb { } public struct DescribeTimeToLiveInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TableName", required: true, type: .string) ] /// The name of the table to be described. @@ -1029,12 +910,8 @@ extension Dynamodb { } } - public struct DescribeLimitsInput: AWSShape { - - } - public struct DeleteItemInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExpressionAttributeNames", required: false, type: .map), AWSShapeMember(label: "ConditionExpression", required: false, type: .string), AWSShapeMember(label: "ConditionalOperator", required: false, type: .enum), @@ -1061,7 +938,7 @@ extension Dynamodb { /// The name of the table from which to delete the item. public let tableName: String public let returnConsumedCapacity: ReturnConsumedCapacity? - /// This is a legacy parameter. Use ConditionExpresssion instead. For more information, see Expected in the Amazon DynamoDB Developer Guide. + /// This is a legacy parameter. Use ConditionExpression instead. For more information, see Expected in the Amazon DynamoDB Developer Guide. public let expected: [String: ExpectedAttributeValue]? /// One or more values that can be substituted in an expression. Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following: Available | Backordered | Discontinued You would first need to specify ExpressionAttributeValues as follows: { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} } You could then use these values in an expression, such as this: ProductStatus IN (:avail, :back, :disc) For more information on expression attribute values, see Specifying Conditions in the Amazon DynamoDB Developer Guide. public let expressionAttributeValues: [String: AttributeValue]? @@ -1093,15 +970,8 @@ extension Dynamodb { } } - public enum ScalarAttributeType: String, CustomStringConvertible, Codable { - case s = "S" - case n = "N" - case b = "B" - public var description: String { return self.rawValue } - } - public struct DescribeTableOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Table", required: false, type: .structure) ] /// The properties of the table. @@ -1116,8 +986,44 @@ extension Dynamodb { } } + public struct BackupDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupName", required: true, type: .string), + AWSShapeMember(label: "BackupCreationDateTime", required: true, type: .timestamp), + AWSShapeMember(label: "BackupArn", required: true, type: .string), + AWSShapeMember(label: "BackupSizeBytes", required: false, type: .long), + AWSShapeMember(label: "BackupStatus", required: true, type: .enum) + ] + /// Name of the requested backup. + public let backupName: String + /// Time at which the backup was created. This is the request time of the backup. + public let backupCreationDateTime: TimeStamp + /// ARN associated with the backup. + public let backupArn: String + /// Size of the backup in bytes. + public let backupSizeBytes: Int64? + /// Backup can be in one of the following states: CREATING, ACTIVE, DELETED. + public let backupStatus: BackupStatus + + public init(backupName: String, backupCreationDateTime: TimeStamp, backupArn: String, backupSizeBytes: Int64? = nil, backupStatus: BackupStatus) { + self.backupName = backupName + self.backupCreationDateTime = backupCreationDateTime + self.backupArn = backupArn + self.backupSizeBytes = backupSizeBytes + self.backupStatus = backupStatus + } + + private enum CodingKeys: String, CodingKey { + case backupName = "BackupName" + case backupCreationDateTime = "BackupCreationDateTime" + case backupArn = "BackupArn" + case backupSizeBytes = "BackupSizeBytes" + case backupStatus = "BackupStatus" + } + } + public struct UpdateTimeToLiveInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TableName", required: true, type: .string), AWSShapeMember(label: "TimeToLiveSpecification", required: true, type: .structure) ] @@ -1137,16 +1043,29 @@ extension Dynamodb { } } - public enum TableStatus: String, CustomStringConvertible, Codable { - case creating = "CREATING" - case updating = "UPDATING" - case deleting = "DELETING" - case active = "ACTIVE" - public var description: String { return self.rawValue } + public struct ListBackupsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupSummaries", required: false, type: .list), + AWSShapeMember(label: "LastEvaluatedBackupArn", required: false, type: .string) + ] + /// List of BackupSummary objects. + public let backupSummaries: [BackupSummary]? + /// Last evaluated BackupARN. + public let lastEvaluatedBackupArn: String? + + public init(backupSummaries: [BackupSummary]? = nil, lastEvaluatedBackupArn: String? = nil) { + self.backupSummaries = backupSummaries + self.lastEvaluatedBackupArn = lastEvaluatedBackupArn + } + + private enum CodingKeys: String, CodingKey { + case backupSummaries = "BackupSummaries" + case lastEvaluatedBackupArn = "LastEvaluatedBackupArn" + } } public struct ScanInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConsistentRead", required: false, type: .boolean), AWSShapeMember(label: "ExpressionAttributeNames", required: false, type: .map), AWSShapeMember(label: "ProjectionExpression", required: false, type: .string), @@ -1236,7 +1155,7 @@ extension Dynamodb { } public struct BatchWriteItemOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UnprocessedItems", required: false, type: .map), AWSShapeMember(label: "ConsumedCapacity", required: false, type: .list), AWSShapeMember(label: "ItemCollectionMetrics", required: false, type: .map) @@ -1245,7 +1164,7 @@ extension Dynamodb { public let unprocessedItems: [String: [WriteRequest]]? /// The capacity units consumed by the entire BatchWriteItem operation. Each element consists of: TableName - The table that consumed the provisioned throughput. CapacityUnits - The total number of capacity units consumed. public let consumedCapacity: [ConsumedCapacity]? - /// A list of tables that were processed by BatchWriteItem and, for each table, information about any item collections that were affected by individual DeleteItem or PutItem operations. Each entry consists of the following subelements: ItemCollectionKey - The partition key value of the item collection. This is the same as the partition key value of the item. SizeEstimateRange - An estimate of item collection size, expressed in GB. This is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on the table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. + /// A list of tables that were processed by BatchWriteItem and, for each table, information about any item collections that were affected by individual DeleteItem or PutItem operations. Each entry consists of the following subelements: ItemCollectionKey - The partition key value of the item collection. This is the same as the partition key value of the item. SizeEstimateRangeGB - An estimate of item collection size, expressed in GB. This is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on the table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. public let itemCollectionMetrics: [String: [ItemCollectionMetrics]]? public init(unprocessedItems: [String: [WriteRequest]]? = nil, consumedCapacity: [ConsumedCapacity]? = nil, itemCollectionMetrics: [String: [ItemCollectionMetrics]]? = nil) { @@ -1261,24 +1180,40 @@ extension Dynamodb { } } - public struct DeleteTableOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TableDescription", required: false, type: .structure) + public struct DeleteReplicaAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegionName", required: true, type: .string) ] - /// Represents the properties of a table. - public let tableDescription: TableDescription? + /// The region of the replica to be removed. + public let regionName: String - public init(tableDescription: TableDescription? = nil) { - self.tableDescription = tableDescription + public init(regionName: String) { + self.regionName = regionName } private enum CodingKeys: String, CodingKey { - case tableDescription = "TableDescription" + case regionName = "RegionName" + } + } + + public struct DescribeGlobalTableOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GlobalTableDescription", required: false, type: .structure) + ] + /// Contains the details of the global table. + public let globalTableDescription: GlobalTableDescription? + + public init(globalTableDescription: GlobalTableDescription? = nil) { + self.globalTableDescription = globalTableDescription + } + + private enum CodingKeys: String, CodingKey { + case globalTableDescription = "GlobalTableDescription" } } public struct ProvisionedThroughputDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WriteCapacityUnits", required: false, type: .long), AWSShapeMember(label: "LastIncreaseDateTime", required: false, type: .timestamp), AWSShapeMember(label: "ReadCapacityUnits", required: false, type: .long), @@ -1313,8 +1248,24 @@ extension Dynamodb { } } + public struct RestoreTableFromBackupOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableDescription", required: false, type: .structure) + ] + /// The description of the table created from an existing backup. + public let tableDescription: TableDescription? + + public init(tableDescription: TableDescription? = nil) { + self.tableDescription = tableDescription + } + + private enum CodingKeys: String, CodingKey { + case tableDescription = "TableDescription" + } + } + public struct PutItemInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExpressionAttributeNames", required: false, type: .map), AWSShapeMember(label: "ConditionExpression", required: false, type: .string), AWSShapeMember(label: "ConditionalOperator", required: false, type: .enum), @@ -1341,7 +1292,7 @@ extension Dynamodb { /// The name of the table to contain the item. public let tableName: String public let returnConsumedCapacity: ReturnConsumedCapacity? - /// This is a legacy parameter. Use ConditionExpresssion instead. For more information, see Expected in the Amazon DynamoDB Developer Guide. + /// This is a legacy parameter. Use ConditionExpression instead. For more information, see Expected in the Amazon DynamoDB Developer Guide. public let expected: [String: ExpectedAttributeValue]? /// One or more values that can be substituted in an expression. Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following: Available | Backordered | Discontinued You would first need to specify ExpressionAttributeValues as follows: { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} } You could then use these values in an expression, such as this: ProductStatus IN (:avail, :back, :disc) For more information on expression attribute values, see Specifying Conditions in the Amazon DynamoDB Developer Guide. public let expressionAttributeValues: [String: AttributeValue]? @@ -1374,7 +1325,7 @@ extension Dynamodb { } public struct Condition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComparisonOperator", required: true, type: .enum), AWSShapeMember(label: "AttributeValueList", required: false, type: .list) ] @@ -1394,64 +1345,39 @@ extension Dynamodb { } } - public struct GlobalSecondaryIndexDescription: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IndexName", required: false, type: .string), - AWSShapeMember(label: "KeySchema", required: false, type: .list), - AWSShapeMember(label: "IndexArn", required: false, type: .string), - AWSShapeMember(label: "ProvisionedThroughput", required: false, type: .structure), - AWSShapeMember(label: "ItemCount", required: false, type: .long), - AWSShapeMember(label: "Projection", required: false, type: .structure), - AWSShapeMember(label: "IndexSizeBytes", required: false, type: .long), - AWSShapeMember(label: "IndexStatus", required: false, type: .enum), - AWSShapeMember(label: "Backfilling", required: false, type: .boolean) + public struct DescribeLimitsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableMaxWriteCapacityUnits", required: false, type: .long), + AWSShapeMember(label: "TableMaxReadCapacityUnits", required: false, type: .long), + AWSShapeMember(label: "AccountMaxReadCapacityUnits", required: false, type: .long), + AWSShapeMember(label: "AccountMaxWriteCapacityUnits", required: false, type: .long) ] - /// The name of the global secondary index. - public let indexName: String? - /// The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: HASH - partition key RANGE - sort key The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. - public let keySchema: [KeySchemaElement]? - /// The Amazon Resource Name (ARN) that uniquely identifies the index. - public let indexArn: String? - /// Represents the provisioned throughput settings for the specified global secondary index. For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide. - public let provisionedThroughput: ProvisionedThroughputDescription? - /// The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. - public let itemCount: Int64? - /// Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. - public let projection: Projection? - /// The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. - public let indexSizeBytes: Int64? - /// The current state of the global secondary index: CREATING - The index is being created. UPDATING - The index is being updated. DELETING - The index is being deleted. ACTIVE - The index is ready for use. - public let indexStatus: IndexStatus? - /// Indicates whether the index is currently backfilling. Backfilling is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and Backfilling is false. For indexes that were created during a CreateTable operation, the Backfilling attribute does not appear in the DescribeTable output. - public let backfilling: Bool? + /// The maximum write capacity units that your account allows you to provision for a new table that you are creating in this region, including the write capacity units provisioned for its global secondary indexes (GSIs). + public let tableMaxWriteCapacityUnits: Int64? + /// The maximum read capacity units that your account allows you to provision for a new table that you are creating in this region, including the read capacity units provisioned for its global secondary indexes (GSIs). + public let tableMaxReadCapacityUnits: Int64? + /// The maximum total read capacity units that your account allows you to provision across all of your tables in this region. + public let accountMaxReadCapacityUnits: Int64? + /// The maximum total write capacity units that your account allows you to provision across all of your tables in this region. + public let accountMaxWriteCapacityUnits: Int64? - public init(indexName: String? = nil, keySchema: [KeySchemaElement]? = nil, indexArn: String? = nil, provisionedThroughput: ProvisionedThroughputDescription? = nil, itemCount: Int64? = nil, projection: Projection? = nil, indexSizeBytes: Int64? = nil, indexStatus: IndexStatus? = nil, backfilling: Bool? = nil) { - self.indexName = indexName - self.keySchema = keySchema - self.indexArn = indexArn - self.provisionedThroughput = provisionedThroughput - self.itemCount = itemCount - self.projection = projection - self.indexSizeBytes = indexSizeBytes - self.indexStatus = indexStatus - self.backfilling = backfilling + public init(tableMaxWriteCapacityUnits: Int64? = nil, tableMaxReadCapacityUnits: Int64? = nil, accountMaxReadCapacityUnits: Int64? = nil, accountMaxWriteCapacityUnits: Int64? = nil) { + self.tableMaxWriteCapacityUnits = tableMaxWriteCapacityUnits + self.tableMaxReadCapacityUnits = tableMaxReadCapacityUnits + self.accountMaxReadCapacityUnits = accountMaxReadCapacityUnits + self.accountMaxWriteCapacityUnits = accountMaxWriteCapacityUnits } private enum CodingKeys: String, CodingKey { - case indexName = "IndexName" - case keySchema = "KeySchema" - case indexArn = "IndexArn" - case provisionedThroughput = "ProvisionedThroughput" - case itemCount = "ItemCount" - case projection = "Projection" - case indexSizeBytes = "IndexSizeBytes" - case indexStatus = "IndexStatus" - case backfilling = "Backfilling" + case tableMaxWriteCapacityUnits = "TableMaxWriteCapacityUnits" + case tableMaxReadCapacityUnits = "TableMaxReadCapacityUnits" + case accountMaxReadCapacityUnits = "AccountMaxReadCapacityUnits" + case accountMaxWriteCapacityUnits = "AccountMaxWriteCapacityUnits" } } public struct DeleteItemOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConsumedCapacity", required: false, type: .structure), AWSShapeMember(label: "Attributes", required: false, type: .map), AWSShapeMember(label: "ItemCollectionMetrics", required: false, type: .structure) @@ -1460,7 +1386,7 @@ extension Dynamodb { public let consumedCapacity: ConsumedCapacity? /// A map of attribute names to AttributeValue objects, representing the item as it appeared before the DeleteItem operation. This map appears in the response only if ReturnValues was specified as ALL_OLD in the request. public let attributes: [String: AttributeValue]? - /// Information about item collections, if any, that were affected by the DeleteItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response. Each ItemCollectionMetrics element consists of: ItemCollectionKey - The partition key value of the item collection. This is the same as the partition key value of the item itself. SizeEstimateRange - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. + /// Information about item collections, if any, that were affected by the DeleteItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response. Each ItemCollectionMetrics element consists of: ItemCollectionKey - The partition key value of the item collection. This is the same as the partition key value of the item itself. SizeEstimateRangeGB - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. public let itemCollectionMetrics: ItemCollectionMetrics? public init(consumedCapacity: ConsumedCapacity? = nil, attributes: [String: AttributeValue]? = nil, itemCollectionMetrics: ItemCollectionMetrics? = nil) { @@ -1476,39 +1402,8 @@ extension Dynamodb { } } - public struct DescribeLimitsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TableMaxWriteCapacityUnits", required: false, type: .long), - AWSShapeMember(label: "TableMaxReadCapacityUnits", required: false, type: .long), - AWSShapeMember(label: "AccountMaxReadCapacityUnits", required: false, type: .long), - AWSShapeMember(label: "AccountMaxWriteCapacityUnits", required: false, type: .long) - ] - /// The maximum write capacity units that your account allows you to provision for a new table that you are creating in this region, including the write capacity units provisioned for its global secondary indexes (GSIs). - public let tableMaxWriteCapacityUnits: Int64? - /// The maximum read capacity units that your account allows you to provision for a new table that you are creating in this region, including the read capacity units provisioned for its global secondary indexes (GSIs). - public let tableMaxReadCapacityUnits: Int64? - /// The maximum total read capacity units that your account allows you to provision across all of your tables in this region. - public let accountMaxReadCapacityUnits: Int64? - /// The maximum total write capacity units that your account allows you to provision across all of your tables in this region. - public let accountMaxWriteCapacityUnits: Int64? - - public init(tableMaxWriteCapacityUnits: Int64? = nil, tableMaxReadCapacityUnits: Int64? = nil, accountMaxReadCapacityUnits: Int64? = nil, accountMaxWriteCapacityUnits: Int64? = nil) { - self.tableMaxWriteCapacityUnits = tableMaxWriteCapacityUnits - self.tableMaxReadCapacityUnits = tableMaxReadCapacityUnits - self.accountMaxReadCapacityUnits = accountMaxReadCapacityUnits - self.accountMaxWriteCapacityUnits = accountMaxWriteCapacityUnits - } - - private enum CodingKeys: String, CodingKey { - case tableMaxWriteCapacityUnits = "TableMaxWriteCapacityUnits" - case tableMaxReadCapacityUnits = "TableMaxReadCapacityUnits" - case accountMaxReadCapacityUnits = "AccountMaxReadCapacityUnits" - case accountMaxWriteCapacityUnits = "AccountMaxWriteCapacityUnits" - } - } - public struct BatchGetItemOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UnprocessedKeys", required: false, type: .map), AWSShapeMember(label: "ConsumedCapacity", required: false, type: .list), AWSShapeMember(label: "Responses", required: false, type: .map) @@ -1540,111 +1435,8 @@ extension Dynamodb { public var description: String { return self.rawValue } } - public enum StreamViewType: String, CustomStringConvertible, Codable { - case newImage = "NEW_IMAGE" - case oldImage = "OLD_IMAGE" - case newAndOldImages = "NEW_AND_OLD_IMAGES" - case keysOnly = "KEYS_ONLY" - public var description: String { return self.rawValue } - } - - public struct BatchWriteItemInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReturnItemCollectionMetrics", required: false, type: .enum), - AWSShapeMember(label: "ReturnConsumedCapacity", required: false, type: .enum), - AWSShapeMember(label: "RequestItems", required: true, type: .map) - ] - /// Determines whether item collection metrics are returned. If set to SIZE, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to NONE (the default), no statistics are returned. - public let returnItemCollectionMetrics: ReturnItemCollectionMetrics? - public let returnConsumedCapacity: ReturnConsumedCapacity? - /// A map of one or more table names and, for each table, a list of operations to be performed (DeleteRequest or PutRequest). Each element in the map consists of the following: DeleteRequest - Perform a DeleteItem operation on the specified item. The item to be deleted is identified by a Key subelement: Key - A map of primary key attribute values that uniquely identify the ! item. Each entry in this map consists of an attribute name and an attribute value. For each primary key, you must provide all of the key attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key. PutRequest - Perform a PutItem operation on the specified item. The item to be put is identified by an Item subelement: Item - A map of attributes and their values. Each entry in this map consists of an attribute name and an attribute value. Attribute values must not be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests that contain empty values will be rejected with a ValidationException exception. If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition. - public let requestItems: [String: [WriteRequest]] - - public init(returnItemCollectionMetrics: ReturnItemCollectionMetrics? = nil, returnConsumedCapacity: ReturnConsumedCapacity? = nil, requestItems: [String: [WriteRequest]]) { - self.returnItemCollectionMetrics = returnItemCollectionMetrics - self.returnConsumedCapacity = returnConsumedCapacity - self.requestItems = requestItems - } - - private enum CodingKeys: String, CodingKey { - case returnItemCollectionMetrics = "ReturnItemCollectionMetrics" - case returnConsumedCapacity = "ReturnConsumedCapacity" - case requestItems = "RequestItems" - } - } - - public struct UpdateItemInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeUpdates", required: false, type: .map), - AWSShapeMember(label: "ExpressionAttributeNames", required: false, type: .map), - AWSShapeMember(label: "ConditionExpression", required: false, type: .string), - AWSShapeMember(label: "ConditionalOperator", required: false, type: .enum), - AWSShapeMember(label: "ReturnItemCollectionMetrics", required: false, type: .enum), - AWSShapeMember(label: "ReturnValues", required: false, type: .enum), - AWSShapeMember(label: "Key", required: true, type: .map), - AWSShapeMember(label: "TableName", required: true, type: .string), - AWSShapeMember(label: "ReturnConsumedCapacity", required: false, type: .enum), - AWSShapeMember(label: "Expected", required: false, type: .map), - AWSShapeMember(label: "ExpressionAttributeValues", required: false, type: .map), - AWSShapeMember(label: "UpdateExpression", required: false, type: .string) - ] - /// This is a legacy parameter. Use UpdateExpression instead. For more information, see AttributeUpdates in the Amazon DynamoDB Developer Guide. - public let attributeUpdates: [String: AttributeValueUpdate]? - /// One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames: To access an attribute whose name conflicts with a DynamoDB reserved word. To create a placeholder for repeating occurrences of an attribute name in an expression. To prevent special characters in an attribute name from being misinterpreted in an expression. Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name: Percentile The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames: {"#P":"Percentile"} You could then use this substitution in an expression, as in this example: #P = :val Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime. For more information on expression attribute names, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide. - public let expressionAttributeNames: [String: String]? - /// A condition that must be satisfied in order for a conditional update to succeed. An expression can contain any of the following: Functions: attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size These function names are case-sensitive. Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN Logical operators: AND | OR | NOT For more information on condition expressions, see Specifying Conditions in the Amazon DynamoDB Developer Guide. - public let conditionExpression: String? - /// This is a legacy parameter. Use ConditionExpression instead. For more information, see ConditionalOperator in the Amazon DynamoDB Developer Guide. - public let conditionalOperator: ConditionalOperator? - /// Determines whether item collection metrics are returned. If set to SIZE, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to NONE (the default), no statistics are returned. - public let returnItemCollectionMetrics: ReturnItemCollectionMetrics? - /// Use ReturnValues if you want to get the item attributes as they appeared either before or after they were updated. For UpdateItem, the valid values are: NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.) ALL_OLD - Returns all of the attributes of the item, as they appeared before the UpdateItem operation. UPDATED_OLD - Returns only the updated attributes, as they appeared before the UpdateItem operation. ALL_NEW - Returns all of the attributes of the item, as they appear after the UpdateItem operation. UPDATED_NEW - Returns only the updated attributes, as they appear after the UpdateItem operation. There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No Read Capacity Units are consumed. Values returned are strongly consistent - public let returnValues: ReturnValue? - /// The primary key of the item to be updated. Each element consists of an attribute name and a value for that attribute. For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key. - public let key: [String: AttributeValue] - /// The name of the table containing the item to update. - public let tableName: String - public let returnConsumedCapacity: ReturnConsumedCapacity? - /// This is a legacy parameter. Use ConditionExpresssion instead. For more information, see Expected in the Amazon DynamoDB Developer Guide. - public let expected: [String: ExpectedAttributeValue]? - /// One or more values that can be substituted in an expression. Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following: Available | Backordered | Discontinued You would first need to specify ExpressionAttributeValues as follows: { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} } You could then use these values in an expression, such as this: ProductStatus IN (:avail, :back, :disc) For more information on expression attribute values, see Specifying Conditions in the Amazon DynamoDB Developer Guide. - public let expressionAttributeValues: [String: AttributeValue]? - /// An expression that defines one or more attributes to be updated, the action to be performed on them, and new value(s) for them. The following action values are available for UpdateExpression. SET - Adds one or more attributes and values to an item. If any of these attribute already exist, they are replaced by the new values. You can also use SET to add or subtract from an attribute that is of type Number. For example: SET myNum = myNum + :val SET supports the following functions: if_not_exists (path, operand) - if the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute that may already be present in the item. list_append (operand, operand) - evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands. These function names are case-sensitive. REMOVE - Removes one or more attributes from an item. ADD - Adds the specified value to the item, if the attribute does not already exist. If the attribute does exist, then the behavior of ADD depends on the data type of the attribute: If the existing attribute is a number, and if Value is also a number, then Value is mathematically added to the existing attribute. If Value is a negative number, then it is subtracted from the existing attribute. If you use ADD to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses 0 as the initial value. Similarly, if you use ADD for an existing item to increment or decrement an attribute value that doesn't exist before the update, DynamoDB uses 0 as the initial value. For example, suppose that the item you want to update doesn't have an attribute named itemcount, but you decide to ADD the number 3 to this attribute anyway. DynamoDB will create the itemcount attribute, set its initial value to 0, and finally add 3 to it. The result will be a new itemcount attribute in the item, with a value of 3. If the existing data type is a set and if Value is also a set, then Value is added to the existing set. For example, if the attribute value is the set [1,2], and the ADD action specified [3], then the final attribute value is [1,2,3]. An error occurs if an ADD action is specified for a set attribute and the attribute type specified does not match the existing set type. Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the Value must also be a set of strings. The ADD action only supports Number and set data types. In addition, ADD can only be used on top-level attributes, not nested attributes. DELETE - Deletes an element from a set. If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set [a,b,c] and the DELETE action specifies [a,c], then the final attribute value is [b]. Specifying an empty set is an error. The DELETE action only supports set data types. In addition, DELETE can only be used on top-level attributes, not nested attributes. You can have many actions in a single expression, such as the following: SET a=:value1, b=:value2 DELETE :value3, :value4, :value5 For more information on update expressions, see Modifying Items and Attributes in the Amazon DynamoDB Developer Guide. - public let updateExpression: String? - - public init(attributeUpdates: [String: AttributeValueUpdate]? = nil, expressionAttributeNames: [String: String]? = nil, conditionExpression: String? = nil, conditionalOperator: ConditionalOperator? = nil, returnItemCollectionMetrics: ReturnItemCollectionMetrics? = nil, returnValues: ReturnValue? = nil, key: [String: AttributeValue], tableName: String, returnConsumedCapacity: ReturnConsumedCapacity? = nil, expected: [String: ExpectedAttributeValue]? = nil, expressionAttributeValues: [String: AttributeValue]? = nil, updateExpression: String? = nil) { - self.attributeUpdates = attributeUpdates - self.expressionAttributeNames = expressionAttributeNames - self.conditionExpression = conditionExpression - self.conditionalOperator = conditionalOperator - self.returnItemCollectionMetrics = returnItemCollectionMetrics - self.returnValues = returnValues - self.key = key - self.tableName = tableName - self.returnConsumedCapacity = returnConsumedCapacity - self.expected = expected - self.expressionAttributeValues = expressionAttributeValues - self.updateExpression = updateExpression - } - - private enum CodingKeys: String, CodingKey { - case attributeUpdates = "AttributeUpdates" - case expressionAttributeNames = "ExpressionAttributeNames" - case conditionExpression = "ConditionExpression" - case conditionalOperator = "ConditionalOperator" - case returnItemCollectionMetrics = "ReturnItemCollectionMetrics" - case returnValues = "ReturnValues" - case key = "Key" - case tableName = "TableName" - case returnConsumedCapacity = "ReturnConsumedCapacity" - case expected = "Expected" - case expressionAttributeValues = "ExpressionAttributeValues" - case updateExpression = "UpdateExpression" - } - } - public struct GetItemOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Item", required: false, type: .map), AWSShapeMember(label: "ConsumedCapacity", required: false, type: .structure) ] @@ -1665,7 +1457,7 @@ extension Dynamodb { } public struct ItemCollectionMetrics: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ItemCollectionKey", required: false, type: .map), AWSShapeMember(label: "SizeEstimateRangeGB", required: false, type: .list) ] @@ -1685,8 +1477,24 @@ extension Dynamodb { } } + public struct UpdateTimeToLiveOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimeToLiveSpecification", required: false, type: .structure) + ] + /// Represents the output of an UpdateTimeToLive operation. + public let timeToLiveSpecification: TimeToLiveSpecification? + + public init(timeToLiveSpecification: TimeToLiveSpecification? = nil) { + self.timeToLiveSpecification = timeToLiveSpecification + } + + private enum CodingKeys: String, CodingKey { + case timeToLiveSpecification = "TimeToLiveSpecification" + } + } + public struct LocalSecondaryIndex: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Projection", required: true, type: .structure), AWSShapeMember(label: "IndexName", required: true, type: .string), AWSShapeMember(label: "KeySchema", required: true, type: .list) @@ -1711,42 +1519,10 @@ extension Dynamodb { } } - public struct DeleteGlobalSecondaryIndexAction: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IndexName", required: true, type: .string) - ] - /// The name of the global secondary index to be deleted. - public let indexName: String - - public init(indexName: String) { - self.indexName = indexName - } - - private enum CodingKeys: String, CodingKey { - case indexName = "IndexName" - } - } - - public struct UpdateTimeToLiveOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TimeToLiveSpecification", required: false, type: .structure) - ] - /// Represents the output of an UpdateTimeToLive operation. - public let timeToLiveSpecification: TimeToLiveSpecification? - - public init(timeToLiveSpecification: TimeToLiveSpecification? = nil) { - self.timeToLiveSpecification = timeToLiveSpecification - } - - private enum CodingKeys: String, CodingKey { - case timeToLiveSpecification = "TimeToLiveSpecification" - } - } - - public struct AttributeDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeType", required: true, type: .enum), - AWSShapeMember(label: "AttributeName", required: true, type: .string) + public struct AttributeDefinition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeType", required: true, type: .enum), + AWSShapeMember(label: "AttributeName", required: true, type: .string) ] /// The data type for the attribute, where: S - the attribute is of type String N - the attribute is of type Number B - the attribute is of type Binary public let attributeType: ScalarAttributeType @@ -1764,8 +1540,24 @@ extension Dynamodb { } } + public struct UpdateGlobalTableOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GlobalTableDescription", required: false, type: .structure) + ] + /// Contains the details of the global table. + public let globalTableDescription: GlobalTableDescription? + + public init(globalTableDescription: GlobalTableDescription? = nil) { + self.globalTableDescription = globalTableDescription + } + + private enum CodingKeys: String, CodingKey { + case globalTableDescription = "GlobalTableDescription" + } + } + public struct KeysAndAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConsistentRead", required: false, type: .boolean), AWSShapeMember(label: "ExpressionAttributeNames", required: false, type: .map), AWSShapeMember(label: "ProjectionExpression", required: false, type: .string), @@ -1801,7 +1593,7 @@ extension Dynamodb { } public struct ListTagsOfResourceOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list) ] @@ -1821,24 +1613,8 @@ extension Dynamodb { } } - public struct DescribeTableInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TableName", required: true, type: .string) - ] - /// The name of the table to describe. - public let tableName: String - - public init(tableName: String) { - self.tableName = tableName - } - - private enum CodingKeys: String, CodingKey { - case tableName = "TableName" - } - } - public struct ListTablesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TableNames", required: false, type: .list), AWSShapeMember(label: "LastEvaluatedTableName", required: false, type: .string) ] @@ -1858,69 +1634,24 @@ extension Dynamodb { } } - public struct AttributeValue: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NS", required: false, type: .list), - AWSShapeMember(label: "N", required: false, type: .string), - AWSShapeMember(label: "BOOL", required: false, type: .boolean), - AWSShapeMember(label: "BS", required: false, type: .list), - AWSShapeMember(label: "L", required: false, type: .list), - AWSShapeMember(label: "NULL", required: false, type: .boolean), - AWSShapeMember(label: "B", required: false, type: .blob), - AWSShapeMember(label: "M", required: false, type: .map), - AWSShapeMember(label: "SS", required: false, type: .list), - AWSShapeMember(label: "S", required: false, type: .string) + public struct DescribeTableInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableName", required: true, type: .string) ] - /// An attribute of type Number Set. For example: "NS": ["42.2", "-19", "7.5", "3.14"] Numbers are sent across the network to DynamoDB as strings, to maximize compatibility across languages and libraries. However, DynamoDB treats them as number type attributes for mathematical operations. - public let ns: [String]? - /// An attribute of type Number. For example: "N": "123.45" Numbers are sent across the network to DynamoDB as strings, to maximize compatibility across languages and libraries. However, DynamoDB treats them as number type attributes for mathematical operations. - public let n: String? - /// An attribute of type Boolean. For example: "BOOL": true - public let bool: Bool? - /// An attribute of type Binary Set. For example: "BS": ["U3Vubnk=", "UmFpbnk=", "U25vd3k="] - public let bs: [Data]? - /// An attribute of type List. For example: "L": ["Cookies", "Coffee", 3.14159] - public let l: [AttributeValue]? - /// An attribute of type Null. For example: "NULL": true - public let null: Bool? - /// An attribute of type Binary. For example: "B": "dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk" - public let b: Data? - /// An attribute of type Map. For example: "M": {"Name": {"S": "Joe"}, "Age": {"N": "35"}} - public let m: [String: AttributeValue]? - /// An attribute of type String Set. For example: "SS": ["Giraffe", "Hippo" ,"Zebra"] - public let ss: [String]? - /// An attribute of type String. For example: "S": "Hello" - public let s: String? + /// The name of the table to describe. + public let tableName: String - public init(ns: [String]? = nil, n: String? = nil, bool: Bool? = nil, bs: [Data]? = nil, l: [AttributeValue]? = nil, null: Bool? = nil, b: Data? = nil, m: [String: AttributeValue]? = nil, ss: [String]? = nil, s: String? = nil) { - self.ns = ns - self.n = n - self.bool = bool - self.bs = bs - self.l = l - self.null = null - self.b = b - self.m = m - self.ss = ss - self.s = s + public init(tableName: String) { + self.tableName = tableName } private enum CodingKeys: String, CodingKey { - case ns = "NS" - case n = "N" - case bool = "BOOL" - case bs = "BS" - case l = "L" - case null = "NULL" - case b = "B" - case m = "M" - case ss = "SS" - case s = "S" + case tableName = "TableName" } } public struct UpdateTableOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TableDescription", required: false, type: .structure) ] /// Represents the properties of the table. @@ -1936,16 +1667,16 @@ extension Dynamodb { } public struct UpdateItemOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConsumedCapacity", required: false, type: .structure), AWSShapeMember(label: "Attributes", required: false, type: .map), AWSShapeMember(label: "ItemCollectionMetrics", required: false, type: .structure) ] /// The capacity units consumed by the UpdateItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide. public let consumedCapacity: ConsumedCapacity? - /// A map of attribute values as they appeared before the UpdateItem operation. This map only appears if ReturnValues was specified as something other than NONE in the request. Each element represents one attribute. + /// A map of attribute values as they appear before or after the UpdateItem operation, as determined by the ReturnValues parameter. The Attributes map is only present if ReturnValues was specified as something other than NONE in the request. Each element represents one attribute. public let attributes: [String: AttributeValue]? - /// Information about item collections, if any, that were affected by the UpdateItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response. Each ItemCollectionMetrics element consists of: ItemCollectionKey - The partition key value of the item collection. This is the same as the partition key value of the item itself. SizeEstimateRange - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. + /// Information about item collections, if any, that were affected by the UpdateItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response. Each ItemCollectionMetrics element consists of: ItemCollectionKey - The partition key value of the item collection. This is the same as the partition key value of the item itself. SizeEstimateRangeGB - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. public let itemCollectionMetrics: ItemCollectionMetrics? public init(consumedCapacity: ConsumedCapacity? = nil, attributes: [String: AttributeValue]? = nil, itemCollectionMetrics: ItemCollectionMetrics? = nil) { @@ -1961,29 +1692,60 @@ extension Dynamodb { } } - public struct UpdateGlobalSecondaryIndexAction: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IndexName", required: true, type: .string), - AWSShapeMember(label: "ProvisionedThroughput", required: true, type: .structure) + public struct GlobalSecondaryIndexInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Projection", required: false, type: .structure), + AWSShapeMember(label: "IndexName", required: false, type: .string), + AWSShapeMember(label: "KeySchema", required: false, type: .list), + AWSShapeMember(label: "ProvisionedThroughput", required: false, type: .structure) ] - /// The name of the global secondary index to be updated. - public let indexName: String - /// Represents the provisioned throughput settings for the specified global secondary index. For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide. - public let provisionedThroughput: ProvisionedThroughput + /// Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. + public let projection: Projection? + /// The name of the global secondary index. + public let indexName: String? + /// The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: HASH - partition key RANGE - sort key The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. + public let keySchema: [KeySchemaElement]? + /// Represents the provisioned throughput settings for the specified global secondary index. + public let provisionedThroughput: ProvisionedThroughput? - public init(indexName: String, provisionedThroughput: ProvisionedThroughput) { + public init(projection: Projection? = nil, indexName: String? = nil, keySchema: [KeySchemaElement]? = nil, provisionedThroughput: ProvisionedThroughput? = nil) { + self.projection = projection self.indexName = indexName + self.keySchema = keySchema self.provisionedThroughput = provisionedThroughput } private enum CodingKeys: String, CodingKey { + case projection = "Projection" case indexName = "IndexName" + case keySchema = "KeySchema" case provisionedThroughput = "ProvisionedThroughput" } } + public struct UpdateGlobalTableInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GlobalTableName", required: true, type: .string), + AWSShapeMember(label: "ReplicaUpdates", required: true, type: .list) + ] + /// The global table name. + public let globalTableName: String + /// A list of regions that should be added or removed from the global table. + public let replicaUpdates: [ReplicaUpdate] + + public init(globalTableName: String, replicaUpdates: [ReplicaUpdate]) { + self.globalTableName = globalTableName + self.replicaUpdates = replicaUpdates + } + + private enum CodingKeys: String, CodingKey { + case globalTableName = "GlobalTableName" + case replicaUpdates = "ReplicaUpdates" + } + } + public struct Capacity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CapacityUnits", required: false, type: .double) ] /// The total number of capacity units consumed on a table or an index. @@ -2016,7 +1778,7 @@ extension Dynamodb { } public struct GlobalSecondaryIndexUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Create", required: false, type: .structure), AWSShapeMember(label: "Update", required: false, type: .structure), AWSShapeMember(label: "Delete", required: false, type: .structure) @@ -2041,4 +1803,1094 @@ extension Dynamodb { } } + public enum TimeToLiveStatus: String, CustomStringConvertible, Codable { + case enabling = "ENABLING" + case disabling = "DISABLING" + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public struct DeleteRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Key", required: true, type: .map) + ] + /// A map of attribute name to attribute values, representing the primary key of the item to delete. All of the table's primary key attributes must be specified, and their data types must match those of the table's key schema. + public let key: [String: AttributeValue] + + public init(key: [String: AttributeValue]) { + self.key = key + } + + private enum CodingKeys: String, CodingKey { + case key = "Key" + } + } + + public enum ContinuousBackupsStatus: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public struct DescribeGlobalTableInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GlobalTableName", required: true, type: .string) + ] + /// The name of the global table. + public let globalTableName: String + + public init(globalTableName: String) { + self.globalTableName = globalTableName + } + + private enum CodingKeys: String, CodingKey { + case globalTableName = "GlobalTableName" + } + } + + public struct KeySchemaElement: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeName", required: true, type: .string), + AWSShapeMember(label: "KeyType", required: true, type: .enum) + ] + /// The name of a key attribute. + public let attributeName: String + /// The role that this key attribute will assume: HASH - partition key RANGE - sort key The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. + public let keyType: KeyType + + public init(attributeName: String, keyType: KeyType) { + self.attributeName = attributeName + self.keyType = keyType + } + + private enum CodingKeys: String, CodingKey { + case attributeName = "AttributeName" + case keyType = "KeyType" + } + } + + public struct TagResourceInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceArn", required: true, type: .string), + AWSShapeMember(label: "Tags", required: true, type: .list) + ] + /// Identifies the Amazon DynamoDB resource to which tags should be added. This value is an Amazon Resource Name (ARN). + public let resourceArn: String + /// The tags to be assigned to the Amazon DynamoDB resource. + public let tags: [Tag] + + public init(resourceArn: String, tags: [Tag]) { + self.resourceArn = resourceArn + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case resourceArn = "ResourceArn" + case tags = "Tags" + } + } + + public struct GlobalTable: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReplicationGroup", required: false, type: .list), + AWSShapeMember(label: "GlobalTableName", required: false, type: .string) + ] + /// The regions where the global table has replicas. + public let replicationGroup: [Replica]? + /// The global table name. + public let globalTableName: String? + + public init(replicationGroup: [Replica]? = nil, globalTableName: String? = nil) { + self.replicationGroup = replicationGroup + self.globalTableName = globalTableName + } + + private enum CodingKeys: String, CodingKey { + case replicationGroup = "ReplicationGroup" + case globalTableName = "GlobalTableName" + } + } + + public enum KeyType: String, CustomStringConvertible, Codable { + case hash = "HASH" + case range = "RANGE" + public var description: String { return self.rawValue } + } + + public struct DescribeTimeToLiveOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimeToLiveDescription", required: false, type: .structure) + ] + public let timeToLiveDescription: TimeToLiveDescription? + + public init(timeToLiveDescription: TimeToLiveDescription? = nil) { + self.timeToLiveDescription = timeToLiveDescription + } + + private enum CodingKeys: String, CodingKey { + case timeToLiveDescription = "TimeToLiveDescription" + } + } + + public enum Select: String, CustomStringConvertible, Codable { + case allAttributes = "ALL_ATTRIBUTES" + case allProjectedAttributes = "ALL_PROJECTED_ATTRIBUTES" + case specificAttributes = "SPECIFIC_ATTRIBUTES" + case count = "COUNT" + public var description: String { return self.rawValue } + } + + public struct ExpectedAttributeValue: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeValueList", required: false, type: .list), + AWSShapeMember(label: "ComparisonOperator", required: false, type: .enum), + AWSShapeMember(label: "Value", required: false, type: .structure), + AWSShapeMember(label: "Exists", required: false, type: .boolean) + ] + /// One or more values to evaluate against the supplied attribute. The number of values in the list depends on the ComparisonOperator being used. For type Number, value comparisons are numeric. String value comparisons for greater than, equals, or less than are based on ASCII character code values. For example, a is greater than A, and a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters. For Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values. For information on specifying data types in JSON, see JSON Data Format in the Amazon DynamoDB Developer Guide. + public let attributeValueList: [AttributeValue]? + /// A comparator for evaluating attributes in the AttributeValueList. For example, equals, greater than, less than, etc. The following comparison operators are available: EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN The following are descriptions of each comparison operator. EQ : Equal. EQ is supported for all data types, including lists and maps. AttributeValueList can contain only one AttributeValue element of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}. NE : Not equal. NE is supported for all data types, including lists and maps. AttributeValueList can contain only one AttributeValue of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}. LE : Less than or equal. AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]}. LT : Less than. AttributeValueList can contain only one AttributeValue of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]}. GE : Greater than or equal. AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]}. GT : Greater than. AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]}. NOT_NULL : The attribute exists. NOT_NULL is supported for all data types, including lists and maps. This operator tests for the existence of an attribute, not its data type. If the data type of attribute "a" is null, and you evaluate it using NOT_NULL, the result is a Boolean true. This result is because the attribute "a" exists; its data type is not relevant to the NOT_NULL comparison operator. NULL : The attribute does not exist. NULL is supported for all data types, including lists and maps. This operator tests for the nonexistence of an attribute, not its data type. If the data type of attribute "a" is null, and you evaluate it using NULL, the result is a Boolean false. This is because the attribute "a" exists; its data type is not relevant to the NULL comparison operator. CONTAINS : Checks for a subsequence, or value in a set. AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is of type String, then the operator checks for a substring match. If the target attribute of the comparison is of type Binary, then the operator looks for a subsequence of the target that matches the input. If the target attribute of the comparison is a set ("SS", "NS", or "BS"), then the operator evaluates to true if it finds an exact match with any member of the set. CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can be a list; however, "b" cannot be a set, a map, or a list. NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value in a set. AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is a String, then the operator checks for the absence of a substring match. If the target attribute of the comparison is Binary, then the operator checks for the absence of a subsequence of the target that matches the input. If the target attribute of the comparison is a set ("SS", "NS", or "BS"), then the operator evaluates to true if it does not find an exact match with any member of the set. NOT_CONTAINS is supported for lists: When evaluating "a NOT CONTAINS b", "a" can be a list; however, "b" cannot be a set, a map, or a list. BEGINS_WITH : Checks for a prefix. AttributeValueList can contain only one AttributeValue of type String or Binary (not a Number or a set type). The target attribute of the comparison must be of type String or Binary (not a Number or a set type). IN : Checks for matching elements in a list. AttributeValueList can contain one or more AttributeValue elements of type String, Number, or Binary. These attributes are compared against an existing attribute of an item. If any elements of the input are equal to the item attribute, the expression evaluates to true. BETWEEN : Greater than or equal to the first value, and less than or equal to the second value. AttributeValueList must contain two AttributeValue elements of the same type, either String, Number, or Binary (not a set type). A target attribute matches if the target value is greater than, or equal to, the first element and less than, or equal to, the second element. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {"S":"6"} does not compare to {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]} + public let comparisonOperator: ComparisonOperator? + /// Represents the data for the expected attribute. Each attribute value is described as a name-value pair. The name is the data type, and the value is the data itself. For more information, see Data Types in the Amazon DynamoDB Developer Guide. + public let value: AttributeValue? + /// Causes DynamoDB to evaluate the value before attempting a conditional operation: If Exists is true, DynamoDB will check to see if that attribute value already exists in the table. If it is found, then the operation succeeds. If it is not found, the operation fails with a ConditionalCheckFailedException. If Exists is false, DynamoDB assumes that the attribute value does not exist in the table. If in fact the value does not exist, then the assumption is valid and the operation succeeds. If the value is found, despite the assumption that it does not exist, the operation fails with a ConditionalCheckFailedException. The default setting for Exists is true. If you supply a Value all by itself, DynamoDB assumes the attribute exists: You don't have to set Exists to true, because it is implied. DynamoDB returns a ValidationException if: Exists is true but there is no Value to check. (You expect a value to exist, but don't specify what that value is.) Exists is false but you also provide a Value. (You cannot expect an attribute to have a value, while also expecting it not to exist.) + public let exists: Bool? + + public init(attributeValueList: [AttributeValue]? = nil, comparisonOperator: ComparisonOperator? = nil, value: AttributeValue? = nil, exists: Bool? = nil) { + self.attributeValueList = attributeValueList + self.comparisonOperator = comparisonOperator + self.value = value + self.exists = exists + } + + private enum CodingKeys: String, CodingKey { + case attributeValueList = "AttributeValueList" + case comparisonOperator = "ComparisonOperator" + case value = "Value" + case exists = "Exists" + } + } + + public enum ConditionalOperator: String, CustomStringConvertible, Codable { + case and = "AND" + case or = "OR" + public var description: String { return self.rawValue } + } + + public struct PutItemOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConsumedCapacity", required: false, type: .structure), + AWSShapeMember(label: "Attributes", required: false, type: .map), + AWSShapeMember(label: "ItemCollectionMetrics", required: false, type: .structure) + ] + /// The capacity units consumed by the PutItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide. + public let consumedCapacity: ConsumedCapacity? + /// The attribute values as they appeared before the PutItem operation, but only if ReturnValues is specified as ALL_OLD in the request. Each element consists of an attribute name and an attribute value. + public let attributes: [String: AttributeValue]? + /// Information about item collections, if any, that were affected by the PutItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response. Each ItemCollectionMetrics element consists of: ItemCollectionKey - The partition key value of the item collection. This is the same as the partition key value of the item itself. SizeEstimateRangeGB - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. + public let itemCollectionMetrics: ItemCollectionMetrics? + + public init(consumedCapacity: ConsumedCapacity? = nil, attributes: [String: AttributeValue]? = nil, itemCollectionMetrics: ItemCollectionMetrics? = nil) { + self.consumedCapacity = consumedCapacity + self.attributes = attributes + self.itemCollectionMetrics = itemCollectionMetrics + } + + private enum CodingKeys: String, CodingKey { + case consumedCapacity = "ConsumedCapacity" + case attributes = "Attributes" + case itemCollectionMetrics = "ItemCollectionMetrics" + } + } + + public struct WriteRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeleteRequest", required: false, type: .structure), + AWSShapeMember(label: "PutRequest", required: false, type: .structure) + ] + /// A request to perform a DeleteItem operation. + public let deleteRequest: DeleteRequest? + /// A request to perform a PutItem operation. + public let putRequest: PutRequest? + + public init(deleteRequest: DeleteRequest? = nil, putRequest: PutRequest? = nil) { + self.deleteRequest = deleteRequest + self.putRequest = putRequest + } + + private enum CodingKeys: String, CodingKey { + case deleteRequest = "DeleteRequest" + case putRequest = "PutRequest" + } + } + + public struct TimeToLiveSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeName", required: true, type: .string), + AWSShapeMember(label: "Enabled", required: true, type: .boolean) + ] + /// The name of the Time to Live attribute used to store the expiration time for items in the table. + public let attributeName: String + /// Indicates whether Time To Live is to be enabled (true) or disabled (false) on the table. + public let enabled: Bool + + public init(attributeName: String, enabled: Bool) { + self.attributeName = attributeName + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case attributeName = "AttributeName" + case enabled = "Enabled" + } + } + + public enum IndexStatus: String, CustomStringConvertible, Codable { + case creating = "CREATING" + case updating = "UPDATING" + case deleting = "DELETING" + case active = "ACTIVE" + public var description: String { return self.rawValue } + } + + public struct DeleteTableInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableName", required: true, type: .string) + ] + /// The name of the table to delete. + public let tableName: String + + public init(tableName: String) { + self.tableName = tableName + } + + private enum CodingKeys: String, CodingKey { + case tableName = "TableName" + } + } + + public struct ListGlobalTablesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "ExclusiveStartGlobalTableName", required: false, type: .string), + AWSShapeMember(label: "RegionName", required: false, type: .string) + ] + /// The maximum number of table names to return. + public let limit: Int32? + /// The first global table name that this operation will evaluate. + public let exclusiveStartGlobalTableName: String? + /// Lists the global tables in a specific region. + public let regionName: String? + + public init(limit: Int32? = nil, exclusiveStartGlobalTableName: String? = nil, regionName: String? = nil) { + self.limit = limit + self.exclusiveStartGlobalTableName = exclusiveStartGlobalTableName + self.regionName = regionName + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case exclusiveStartGlobalTableName = "ExclusiveStartGlobalTableName" + case regionName = "RegionName" + } + } + + public struct DeleteBackupInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupArn", required: true, type: .string) + ] + /// The ARN associated with the backup. + public let backupArn: String + + public init(backupArn: String) { + self.backupArn = backupArn + } + + private enum CodingKeys: String, CodingKey { + case backupArn = "BackupArn" + } + } + + public struct DescribeContinuousBackupsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableName", required: true, type: .string) + ] + /// Name of the table for which the customer wants to check the backup and restore settings. + public let tableName: String + + public init(tableName: String) { + self.tableName = tableName + } + + private enum CodingKeys: String, CodingKey { + case tableName = "TableName" + } + } + + public struct DescribeBackupOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupDescription", required: false, type: .structure) + ] + /// Contains the description of the backup created for the table. + public let backupDescription: BackupDescription? + + public init(backupDescription: BackupDescription? = nil) { + self.backupDescription = backupDescription + } + + private enum CodingKeys: String, CodingKey { + case backupDescription = "BackupDescription" + } + } + + public struct CreateTableInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeDefinitions", required: true, type: .list), + AWSShapeMember(label: "KeySchema", required: true, type: .list), + AWSShapeMember(label: "ProvisionedThroughput", required: true, type: .structure), + AWSShapeMember(label: "LocalSecondaryIndexes", required: false, type: .list), + AWSShapeMember(label: "GlobalSecondaryIndexes", required: false, type: .list), + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "StreamSpecification", required: false, type: .structure) + ] + /// An array of attributes that describe the key schema for the table and indexes. + public let attributeDefinitions: [AttributeDefinition] + /// Specifies the attributes that make up the primary key for a table or an index. The attributes in KeySchema must also be defined in the AttributeDefinitions array. For more information, see Data Model in the Amazon DynamoDB Developer Guide. Each KeySchemaElement in the array is composed of: AttributeName - The name of this key attribute. KeyType - The role that the key attribute will assume: HASH - partition key RANGE - sort key The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. For a simple primary key (partition key), you must provide exactly one element with a KeyType of HASH. For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a KeyType of HASH, and the second element must have a KeyType of RANGE. For more information, see Specifying the Primary Key in the Amazon DynamoDB Developer Guide. + public let keySchema: [KeySchemaElement] + /// Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the UpdateTable operation. For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide. + public let provisionedThroughput: ProvisionedThroughput + /// One or more local secondary indexes (the maximum is five) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained. Each local secondary index in the array includes the following: IndexName - The name of the local secondary index. Must be unique only for this table. KeySchema - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table. Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: ProjectionType - One of the following: KEYS_ONLY - Only the index and primary keys are projected into the index. INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes. ALL - All of the table attributes are projected into the index. NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. + public let localSecondaryIndexes: [LocalSecondaryIndex]? + /// One or more global secondary indexes (the maximum is five) to be created on the table. Each global secondary index in the array includes the following: IndexName - The name of the global secondary index. Must be unique only for this table. KeySchema - Specifies the key schema for the global secondary index. Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: ProjectionType - One of the following: KEYS_ONLY - Only the index and primary keys are projected into the index. INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes. ALL - All of the table attributes are projected into the index. NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. ProvisionedThroughput - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units. + public let globalSecondaryIndexes: [GlobalSecondaryIndex]? + /// The name of the table to create. + public let tableName: String + /// The settings for DynamoDB Streams on the table. These settings consist of: StreamEnabled - Indicates whether Streams is to be enabled (true) or disabled (false). StreamViewType - When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values for StreamViewType are: KEYS_ONLY - Only the key attributes of the modified item are written to the stream. NEW_IMAGE - The entire item, as it appears after it was modified, is written to the stream. OLD_IMAGE - The entire item, as it appeared before it was modified, is written to the stream. NEW_AND_OLD_IMAGES - Both the new and the old item images of the item are written to the stream. + public let streamSpecification: StreamSpecification? + + public init(attributeDefinitions: [AttributeDefinition], keySchema: [KeySchemaElement], provisionedThroughput: ProvisionedThroughput, localSecondaryIndexes: [LocalSecondaryIndex]? = nil, globalSecondaryIndexes: [GlobalSecondaryIndex]? = nil, tableName: String, streamSpecification: StreamSpecification? = nil) { + self.attributeDefinitions = attributeDefinitions + self.keySchema = keySchema + self.provisionedThroughput = provisionedThroughput + self.localSecondaryIndexes = localSecondaryIndexes + self.globalSecondaryIndexes = globalSecondaryIndexes + self.tableName = tableName + self.streamSpecification = streamSpecification + } + + private enum CodingKeys: String, CodingKey { + case attributeDefinitions = "AttributeDefinitions" + case keySchema = "KeySchema" + case provisionedThroughput = "ProvisionedThroughput" + case localSecondaryIndexes = "LocalSecondaryIndexes" + case globalSecondaryIndexes = "GlobalSecondaryIndexes" + case tableName = "TableName" + case streamSpecification = "StreamSpecification" + } + } + + public struct BatchGetItemInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReturnConsumedCapacity", required: false, type: .enum), + AWSShapeMember(label: "RequestItems", required: true, type: .map) + ] + public let returnConsumedCapacity: ReturnConsumedCapacity? + /// A map of one or more table names and, for each table, a map that describes one or more items to retrieve from that table. Each table name can be used only once per BatchGetItem request. Each element in the map of items to retrieve consists of the following: ConsistentRead - If true, a strongly consistent read is used; if false (the default), an eventually consistent read is used. ExpressionAttributeNames - One or more substitution tokens for attribute names in the ProjectionExpression parameter. The following are some use cases for using ExpressionAttributeNames: To access an attribute whose name conflicts with a DynamoDB reserved word. To create a placeholder for repeating occurrences of an attribute name in an expression. To prevent special characters in an attribute name from being misinterpreted in an expression. Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name: Percentile The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames: {"#P":"Percentile"} You could then use this substitution in an expression, as in this example: #P = :val Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime. For more information on expression attribute names, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide. Keys - An array of primary key attribute values that define specific items in the table. For each primary key, you must provide all of the key attributes. For example, with a simple primary key, you only need to provide the partition key value. For a composite key, you must provide both the partition key value and the sort key value. ProjectionExpression - A string that identifies one or more attributes to retrieve from the table. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result. For more information, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide. AttributesToGet - This is a legacy parameter. Use ProjectionExpression instead. For more information, see AttributesToGet in the Amazon DynamoDB Developer Guide. + public let requestItems: [String: KeysAndAttributes] + + public init(returnConsumedCapacity: ReturnConsumedCapacity? = nil, requestItems: [String: KeysAndAttributes]) { + self.returnConsumedCapacity = returnConsumedCapacity + self.requestItems = requestItems + } + + private enum CodingKeys: String, CodingKey { + case returnConsumedCapacity = "ReturnConsumedCapacity" + case requestItems = "RequestItems" + } + } + + public enum ReturnValue: String, CustomStringConvertible, Codable { + case none = "NONE" + case allOld = "ALL_OLD" + case updatedOld = "UPDATED_OLD" + case allNew = "ALL_NEW" + case updatedNew = "UPDATED_NEW" + public var description: String { return self.rawValue } + } + + public struct ContinuousBackupsDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContinuousBackupsStatus", required: true, type: .enum) + ] + /// ContinuousBackupsStatus can be one of the following states : ENABLED, DISABLED + public let continuousBackupsStatus: ContinuousBackupsStatus + + public init(continuousBackupsStatus: ContinuousBackupsStatus) { + self.continuousBackupsStatus = continuousBackupsStatus + } + + private enum CodingKeys: String, CodingKey { + case continuousBackupsStatus = "ContinuousBackupsStatus" + } + } + + public struct QueryOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastEvaluatedKey", required: false, type: .map), + AWSShapeMember(label: "ConsumedCapacity", required: false, type: .structure), + AWSShapeMember(label: "ScannedCount", required: false, type: .integer), + AWSShapeMember(label: "Items", required: false, type: .list), + AWSShapeMember(label: "Count", required: false, type: .integer) + ] + /// The primary key of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request. If LastEvaluatedKey is empty, then the "last page" of results has been processed and there is no more data to be retrieved. If LastEvaluatedKey is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when LastEvaluatedKey is empty. + public let lastEvaluatedKey: [String: AttributeValue]? + /// The capacity units consumed by the Query operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide. + public let consumedCapacity: ConsumedCapacity? + /// The number of items evaluated, before any QueryFilter is applied. A high ScannedCount value with few, or no, Count results indicates an inefficient Query operation. For more information, see Count and ScannedCount in the Amazon DynamoDB Developer Guide. If you did not use a filter in the request, then ScannedCount is the same as Count. + public let scannedCount: Int32? + /// An array of item attributes that match the query criteria. Each element in this array consists of an attribute name and the value for that attribute. + public let items: [[String: AttributeValue]]? + /// The number of items in the response. If you used a QueryFilter in the request, then Count is the number of items returned after the filter was applied, and ScannedCount is the number of matching items before the filter was applied. If you did not use a filter in the request, then Count and ScannedCount are the same. + public let count: Int32? + + public init(lastEvaluatedKey: [String: AttributeValue]? = nil, consumedCapacity: ConsumedCapacity? = nil, scannedCount: Int32? = nil, items: [[String: AttributeValue]]? = nil, count: Int32? = nil) { + self.lastEvaluatedKey = lastEvaluatedKey + self.consumedCapacity = consumedCapacity + self.scannedCount = scannedCount + self.items = items + self.count = count + } + + private enum CodingKeys: String, CodingKey { + case lastEvaluatedKey = "LastEvaluatedKey" + case consumedCapacity = "ConsumedCapacity" + case scannedCount = "ScannedCount" + case items = "Items" + case count = "Count" + } + } + + public struct CreateReplicaAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegionName", required: true, type: .string) + ] + /// The region of the replica to be added. + public let regionName: String + + public init(regionName: String) { + self.regionName = regionName + } + + private enum CodingKeys: String, CodingKey { + case regionName = "RegionName" + } + } + + public struct RestoreSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceTableArn", required: false, type: .string), + AWSShapeMember(label: "RestoreDateTime", required: true, type: .timestamp), + AWSShapeMember(label: "SourceBackupArn", required: false, type: .string), + AWSShapeMember(label: "RestoreInProgress", required: true, type: .boolean) + ] + /// ARN of the source table of the backup that is being restored. + public let sourceTableArn: String? + /// Point in time or source backup time. + public let restoreDateTime: TimeStamp + /// ARN of the backup from which the table was restored. + public let sourceBackupArn: String? + /// Indicates if a restore is in progress or not. + public let restoreInProgress: Bool + + public init(sourceTableArn: String? = nil, restoreDateTime: TimeStamp, sourceBackupArn: String? = nil, restoreInProgress: Bool) { + self.sourceTableArn = sourceTableArn + self.restoreDateTime = restoreDateTime + self.sourceBackupArn = sourceBackupArn + self.restoreInProgress = restoreInProgress + } + + private enum CodingKeys: String, CodingKey { + case sourceTableArn = "SourceTableArn" + case restoreDateTime = "RestoreDateTime" + case sourceBackupArn = "SourceBackupArn" + case restoreInProgress = "RestoreInProgress" + } + } + + public struct UntagResourceInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceArn", required: true, type: .string), + AWSShapeMember(label: "TagKeys", required: true, type: .list) + ] + /// The Amazon DyanamoDB resource the tags will be removed from. This value is an Amazon Resource Name (ARN). + public let resourceArn: String + /// A list of tag keys. Existing tags of the resource whose keys are members of this list will be removed from the Amazon DynamoDB resource. + public let tagKeys: [String] + + public init(resourceArn: String, tagKeys: [String]) { + self.resourceArn = resourceArn + self.tagKeys = tagKeys + } + + private enum CodingKeys: String, CodingKey { + case resourceArn = "ResourceArn" + case tagKeys = "TagKeys" + } + } + + public struct LocalSecondaryIndexDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Projection", required: false, type: .structure), + AWSShapeMember(label: "IndexName", required: false, type: .string), + AWSShapeMember(label: "KeySchema", required: false, type: .list), + AWSShapeMember(label: "IndexSizeBytes", required: false, type: .long), + AWSShapeMember(label: "IndexArn", required: false, type: .string), + AWSShapeMember(label: "ItemCount", required: false, type: .long) + ] + /// Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. + public let projection: Projection? + /// Represents the name of the local secondary index. + public let indexName: String? + /// The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: HASH - partition key RANGE - sort key The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. + public let keySchema: [KeySchemaElement]? + /// The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. + public let indexSizeBytes: Int64? + /// The Amazon Resource Name (ARN) that uniquely identifies the index. + public let indexArn: String? + /// The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. + public let itemCount: Int64? + + public init(projection: Projection? = nil, indexName: String? = nil, keySchema: [KeySchemaElement]? = nil, indexSizeBytes: Int64? = nil, indexArn: String? = nil, itemCount: Int64? = nil) { + self.projection = projection + self.indexName = indexName + self.keySchema = keySchema + self.indexSizeBytes = indexSizeBytes + self.indexArn = indexArn + self.itemCount = itemCount + } + + private enum CodingKeys: String, CodingKey { + case projection = "Projection" + case indexName = "IndexName" + case keySchema = "KeySchema" + case indexSizeBytes = "IndexSizeBytes" + case indexArn = "IndexArn" + case itemCount = "ItemCount" + } + } + + public struct DescribeLimitsInput: AWSShape { + + } + + public enum ScalarAttributeType: String, CustomStringConvertible, Codable { + case s = "S" + case n = "N" + case b = "B" + public var description: String { return self.rawValue } + } + + public struct CreateBackupOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupDetails", required: false, type: .structure) + ] + /// Contains the details of the backup created for the table. + public let backupDetails: BackupDetails? + + public init(backupDetails: BackupDetails? = nil) { + self.backupDetails = backupDetails + } + + private enum CodingKeys: String, CodingKey { + case backupDetails = "BackupDetails" + } + } + + public struct DescribeContinuousBackupsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContinuousBackupsDescription", required: false, type: .structure) + ] + /// ContinuousBackupsDescription can be one of the following : ENABLED, DISABLED. + public let continuousBackupsDescription: ContinuousBackupsDescription? + + public init(continuousBackupsDescription: ContinuousBackupsDescription? = nil) { + self.continuousBackupsDescription = continuousBackupsDescription + } + + private enum CodingKeys: String, CodingKey { + case continuousBackupsDescription = "ContinuousBackupsDescription" + } + } + + public enum TableStatus: String, CustomStringConvertible, Codable { + case creating = "CREATING" + case updating = "UPDATING" + case deleting = "DELETING" + case active = "ACTIVE" + public var description: String { return self.rawValue } + } + + public struct DeleteTableOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableDescription", required: false, type: .structure) + ] + /// Represents the properties of a table. + public let tableDescription: TableDescription? + + public init(tableDescription: TableDescription? = nil) { + self.tableDescription = tableDescription + } + + private enum CodingKeys: String, CodingKey { + case tableDescription = "TableDescription" + } + } + + public enum GlobalTableStatus: String, CustomStringConvertible, Codable { + case creating = "CREATING" + case active = "ACTIVE" + case deleting = "DELETING" + case updating = "UPDATING" + public var description: String { return self.rawValue } + } + + public struct GlobalTableDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReplicationGroup", required: false, type: .list), + AWSShapeMember(label: "GlobalTableArn", required: false, type: .string), + AWSShapeMember(label: "CreationDateTime", required: false, type: .timestamp), + AWSShapeMember(label: "GlobalTableStatus", required: false, type: .enum), + AWSShapeMember(label: "GlobalTableName", required: false, type: .string) + ] + /// The regions where the global table has replicas. + public let replicationGroup: [ReplicaDescription]? + /// The unique identifier of the global table. + public let globalTableArn: String? + /// The creation time of the global table. + public let creationDateTime: TimeStamp? + /// The current state of the global table: CREATING - The global table is being created. UPDATING - The global table is being updated. DELETING - The global table is being deleted. ACTIVE - The global table is ready for use. + public let globalTableStatus: GlobalTableStatus? + /// The global table name. + public let globalTableName: String? + + public init(replicationGroup: [ReplicaDescription]? = nil, globalTableArn: String? = nil, creationDateTime: TimeStamp? = nil, globalTableStatus: GlobalTableStatus? = nil, globalTableName: String? = nil) { + self.replicationGroup = replicationGroup + self.globalTableArn = globalTableArn + self.creationDateTime = creationDateTime + self.globalTableStatus = globalTableStatus + self.globalTableName = globalTableName + } + + private enum CodingKeys: String, CodingKey { + case replicationGroup = "ReplicationGroup" + case globalTableArn = "GlobalTableArn" + case creationDateTime = "CreationDateTime" + case globalTableStatus = "GlobalTableStatus" + case globalTableName = "GlobalTableName" + } + } + + public struct GlobalSecondaryIndexDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IndexName", required: false, type: .string), + AWSShapeMember(label: "KeySchema", required: false, type: .list), + AWSShapeMember(label: "IndexArn", required: false, type: .string), + AWSShapeMember(label: "ProvisionedThroughput", required: false, type: .structure), + AWSShapeMember(label: "ItemCount", required: false, type: .long), + AWSShapeMember(label: "Projection", required: false, type: .structure), + AWSShapeMember(label: "IndexSizeBytes", required: false, type: .long), + AWSShapeMember(label: "IndexStatus", required: false, type: .enum), + AWSShapeMember(label: "Backfilling", required: false, type: .boolean) + ] + /// The name of the global secondary index. + public let indexName: String? + /// The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: HASH - partition key RANGE - sort key The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. + public let keySchema: [KeySchemaElement]? + /// The Amazon Resource Name (ARN) that uniquely identifies the index. + public let indexArn: String? + /// Represents the provisioned throughput settings for the specified global secondary index. For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide. + public let provisionedThroughput: ProvisionedThroughputDescription? + /// The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. + public let itemCount: Int64? + /// Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. + public let projection: Projection? + /// The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. + public let indexSizeBytes: Int64? + /// The current state of the global secondary index: CREATING - The index is being created. UPDATING - The index is being updated. DELETING - The index is being deleted. ACTIVE - The index is ready for use. + public let indexStatus: IndexStatus? + /// Indicates whether the index is currently backfilling. Backfilling is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and Backfilling is false. For indexes that were created during a CreateTable operation, the Backfilling attribute does not appear in the DescribeTable output. + public let backfilling: Bool? + + public init(indexName: String? = nil, keySchema: [KeySchemaElement]? = nil, indexArn: String? = nil, provisionedThroughput: ProvisionedThroughputDescription? = nil, itemCount: Int64? = nil, projection: Projection? = nil, indexSizeBytes: Int64? = nil, indexStatus: IndexStatus? = nil, backfilling: Bool? = nil) { + self.indexName = indexName + self.keySchema = keySchema + self.indexArn = indexArn + self.provisionedThroughput = provisionedThroughput + self.itemCount = itemCount + self.projection = projection + self.indexSizeBytes = indexSizeBytes + self.indexStatus = indexStatus + self.backfilling = backfilling + } + + private enum CodingKeys: String, CodingKey { + case indexName = "IndexName" + case keySchema = "KeySchema" + case indexArn = "IndexArn" + case provisionedThroughput = "ProvisionedThroughput" + case itemCount = "ItemCount" + case projection = "Projection" + case indexSizeBytes = "IndexSizeBytes" + case indexStatus = "IndexStatus" + case backfilling = "Backfilling" + } + } + + public enum StreamViewType: String, CustomStringConvertible, Codable { + case newImage = "NEW_IMAGE" + case oldImage = "OLD_IMAGE" + case newAndOldImages = "NEW_AND_OLD_IMAGES" + case keysOnly = "KEYS_ONLY" + public var description: String { return self.rawValue } + } + + public struct BatchWriteItemInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReturnItemCollectionMetrics", required: false, type: .enum), + AWSShapeMember(label: "ReturnConsumedCapacity", required: false, type: .enum), + AWSShapeMember(label: "RequestItems", required: true, type: .map) + ] + /// Determines whether item collection metrics are returned. If set to SIZE, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to NONE (the default), no statistics are returned. + public let returnItemCollectionMetrics: ReturnItemCollectionMetrics? + public let returnConsumedCapacity: ReturnConsumedCapacity? + /// A map of one or more table names and, for each table, a list of operations to be performed (DeleteRequest or PutRequest). Each element in the map consists of the following: DeleteRequest - Perform a DeleteItem operation on the specified item. The item to be deleted is identified by a Key subelement: Key - A map of primary key attribute values that uniquely identify the item. Each entry in this map consists of an attribute name and an attribute value. For each primary key, you must provide all of the key attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key. PutRequest - Perform a PutItem operation on the specified item. The item to be put is identified by an Item subelement: Item - A map of attributes and their values. Each entry in this map consists of an attribute name and an attribute value. Attribute values must not be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests that contain empty values will be rejected with a ValidationException exception. If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition. + public let requestItems: [String: [WriteRequest]] + + public init(returnItemCollectionMetrics: ReturnItemCollectionMetrics? = nil, returnConsumedCapacity: ReturnConsumedCapacity? = nil, requestItems: [String: [WriteRequest]]) { + self.returnItemCollectionMetrics = returnItemCollectionMetrics + self.returnConsumedCapacity = returnConsumedCapacity + self.requestItems = requestItems + } + + private enum CodingKeys: String, CodingKey { + case returnItemCollectionMetrics = "ReturnItemCollectionMetrics" + case returnConsumedCapacity = "ReturnConsumedCapacity" + case requestItems = "RequestItems" + } + } + + public struct UpdateItemInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeUpdates", required: false, type: .map), + AWSShapeMember(label: "ExpressionAttributeNames", required: false, type: .map), + AWSShapeMember(label: "ConditionExpression", required: false, type: .string), + AWSShapeMember(label: "ConditionalOperator", required: false, type: .enum), + AWSShapeMember(label: "ReturnItemCollectionMetrics", required: false, type: .enum), + AWSShapeMember(label: "ReturnValues", required: false, type: .enum), + AWSShapeMember(label: "Key", required: true, type: .map), + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "ReturnConsumedCapacity", required: false, type: .enum), + AWSShapeMember(label: "Expected", required: false, type: .map), + AWSShapeMember(label: "ExpressionAttributeValues", required: false, type: .map), + AWSShapeMember(label: "UpdateExpression", required: false, type: .string) + ] + /// This is a legacy parameter. Use UpdateExpression instead. For more information, see AttributeUpdates in the Amazon DynamoDB Developer Guide. + public let attributeUpdates: [String: AttributeValueUpdate]? + /// One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames: To access an attribute whose name conflicts with a DynamoDB reserved word. To create a placeholder for repeating occurrences of an attribute name in an expression. To prevent special characters in an attribute name from being misinterpreted in an expression. Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name: Percentile The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames: {"#P":"Percentile"} You could then use this substitution in an expression, as in this example: #P = :val Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime. For more information on expression attribute names, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide. + public let expressionAttributeNames: [String: String]? + /// A condition that must be satisfied in order for a conditional update to succeed. An expression can contain any of the following: Functions: attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size These function names are case-sensitive. Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN Logical operators: AND | OR | NOT For more information on condition expressions, see Specifying Conditions in the Amazon DynamoDB Developer Guide. + public let conditionExpression: String? + /// This is a legacy parameter. Use ConditionExpression instead. For more information, see ConditionalOperator in the Amazon DynamoDB Developer Guide. + public let conditionalOperator: ConditionalOperator? + /// Determines whether item collection metrics are returned. If set to SIZE, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to NONE (the default), no statistics are returned. + public let returnItemCollectionMetrics: ReturnItemCollectionMetrics? + /// Use ReturnValues if you want to get the item attributes as they appear before or after they are updated. For UpdateItem, the valid values are: NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.) ALL_OLD - Returns all of the attributes of the item, as they appeared before the UpdateItem operation. UPDATED_OLD - Returns only the updated attributes, as they appeared before the UpdateItem operation. ALL_NEW - Returns all of the attributes of the item, as they appear after the UpdateItem operation. UPDATED_NEW - Returns only the updated attributes, as they appear after the UpdateItem operation. There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed. The values returned are strongly consistent. + public let returnValues: ReturnValue? + /// The primary key of the item to be updated. Each element consists of an attribute name and a value for that attribute. For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key. + public let key: [String: AttributeValue] + /// The name of the table containing the item to update. + public let tableName: String + public let returnConsumedCapacity: ReturnConsumedCapacity? + /// This is a legacy parameter. Use ConditionExpression instead. For more information, see Expected in the Amazon DynamoDB Developer Guide. + public let expected: [String: ExpectedAttributeValue]? + /// One or more values that can be substituted in an expression. Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following: Available | Backordered | Discontinued You would first need to specify ExpressionAttributeValues as follows: { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} } You could then use these values in an expression, such as this: ProductStatus IN (:avail, :back, :disc) For more information on expression attribute values, see Specifying Conditions in the Amazon DynamoDB Developer Guide. + public let expressionAttributeValues: [String: AttributeValue]? + /// An expression that defines one or more attributes to be updated, the action to be performed on them, and new value(s) for them. The following action values are available for UpdateExpression. SET - Adds one or more attributes and values to an item. If any of these attribute already exist, they are replaced by the new values. You can also use SET to add or subtract from an attribute that is of type Number. For example: SET myNum = myNum + :val SET supports the following functions: if_not_exists (path, operand) - if the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute that may already be present in the item. list_append (operand, operand) - evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands. These function names are case-sensitive. REMOVE - Removes one or more attributes from an item. ADD - Adds the specified value to the item, if the attribute does not already exist. If the attribute does exist, then the behavior of ADD depends on the data type of the attribute: If the existing attribute is a number, and if Value is also a number, then Value is mathematically added to the existing attribute. If Value is a negative number, then it is subtracted from the existing attribute. If you use ADD to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses 0 as the initial value. Similarly, if you use ADD for an existing item to increment or decrement an attribute value that doesn't exist before the update, DynamoDB uses 0 as the initial value. For example, suppose that the item you want to update doesn't have an attribute named itemcount, but you decide to ADD the number 3 to this attribute anyway. DynamoDB will create the itemcount attribute, set its initial value to 0, and finally add 3 to it. The result will be a new itemcount attribute in the item, with a value of 3. If the existing data type is a set and if Value is also a set, then Value is added to the existing set. For example, if the attribute value is the set [1,2], and the ADD action specified [3], then the final attribute value is [1,2,3]. An error occurs if an ADD action is specified for a set attribute and the attribute type specified does not match the existing set type. Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the Value must also be a set of strings. The ADD action only supports Number and set data types. In addition, ADD can only be used on top-level attributes, not nested attributes. DELETE - Deletes an element from a set. If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set [a,b,c] and the DELETE action specifies [a,c], then the final attribute value is [b]. Specifying an empty set is an error. The DELETE action only supports set data types. In addition, DELETE can only be used on top-level attributes, not nested attributes. You can have many actions in a single expression, such as the following: SET a=:value1, b=:value2 DELETE :value3, :value4, :value5 For more information on update expressions, see Modifying Items and Attributes in the Amazon DynamoDB Developer Guide. + public let updateExpression: String? + + public init(attributeUpdates: [String: AttributeValueUpdate]? = nil, expressionAttributeNames: [String: String]? = nil, conditionExpression: String? = nil, conditionalOperator: ConditionalOperator? = nil, returnItemCollectionMetrics: ReturnItemCollectionMetrics? = nil, returnValues: ReturnValue? = nil, key: [String: AttributeValue], tableName: String, returnConsumedCapacity: ReturnConsumedCapacity? = nil, expected: [String: ExpectedAttributeValue]? = nil, expressionAttributeValues: [String: AttributeValue]? = nil, updateExpression: String? = nil) { + self.attributeUpdates = attributeUpdates + self.expressionAttributeNames = expressionAttributeNames + self.conditionExpression = conditionExpression + self.conditionalOperator = conditionalOperator + self.returnItemCollectionMetrics = returnItemCollectionMetrics + self.returnValues = returnValues + self.key = key + self.tableName = tableName + self.returnConsumedCapacity = returnConsumedCapacity + self.expected = expected + self.expressionAttributeValues = expressionAttributeValues + self.updateExpression = updateExpression + } + + private enum CodingKeys: String, CodingKey { + case attributeUpdates = "AttributeUpdates" + case expressionAttributeNames = "ExpressionAttributeNames" + case conditionExpression = "ConditionExpression" + case conditionalOperator = "ConditionalOperator" + case returnItemCollectionMetrics = "ReturnItemCollectionMetrics" + case returnValues = "ReturnValues" + case key = "Key" + case tableName = "TableName" + case returnConsumedCapacity = "ReturnConsumedCapacity" + case expected = "Expected" + case expressionAttributeValues = "ExpressionAttributeValues" + case updateExpression = "UpdateExpression" + } + } + + public struct BackupSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupName", required: false, type: .string), + AWSShapeMember(label: "TableArn", required: false, type: .string), + AWSShapeMember(label: "BackupSizeBytes", required: false, type: .long), + AWSShapeMember(label: "TableId", required: false, type: .string), + AWSShapeMember(label: "TableName", required: false, type: .string), + AWSShapeMember(label: "BackupArn", required: false, type: .string), + AWSShapeMember(label: "BackupCreationDateTime", required: false, type: .timestamp), + AWSShapeMember(label: "BackupStatus", required: false, type: .enum) + ] + /// Name of the specified backup. + public let backupName: String? + /// ARN associated with the table. + public let tableArn: String? + /// Size of the backup in bytes. + public let backupSizeBytes: Int64? + /// Unique identifier for the table. + public let tableId: String? + /// Name of the table. + public let tableName: String? + /// ARN associated with the backup. + public let backupArn: String? + /// Time at which the backup was created. + public let backupCreationDateTime: TimeStamp? + /// Backup can be in one of the following states: CREATING, ACTIVE, DELETED. + public let backupStatus: BackupStatus? + + public init(backupName: String? = nil, tableArn: String? = nil, backupSizeBytes: Int64? = nil, tableId: String? = nil, tableName: String? = nil, backupArn: String? = nil, backupCreationDateTime: TimeStamp? = nil, backupStatus: BackupStatus? = nil) { + self.backupName = backupName + self.tableArn = tableArn + self.backupSizeBytes = backupSizeBytes + self.tableId = tableId + self.tableName = tableName + self.backupArn = backupArn + self.backupCreationDateTime = backupCreationDateTime + self.backupStatus = backupStatus + } + + private enum CodingKeys: String, CodingKey { + case backupName = "BackupName" + case tableArn = "TableArn" + case backupSizeBytes = "BackupSizeBytes" + case tableId = "TableId" + case tableName = "TableName" + case backupArn = "BackupArn" + case backupCreationDateTime = "BackupCreationDateTime" + case backupStatus = "BackupStatus" + } + } + + public struct SourceTableFeatureDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimeToLiveDescription", required: false, type: .structure), + AWSShapeMember(label: "LocalSecondaryIndexes", required: false, type: .list), + AWSShapeMember(label: "GlobalSecondaryIndexes", required: false, type: .list), + AWSShapeMember(label: "StreamDescription", required: false, type: .structure) + ] + /// Time to Live settings on the table when the backup was created. + public let timeToLiveDescription: TimeToLiveDescription? + /// Represents the LSI properties for the table when the backup was created. It includes the IndexName, KeySchema and Projection for the LSIs on the table at the time of backup. + public let localSecondaryIndexes: [LocalSecondaryIndexInfo]? + /// Represents the GSI properties for the table when the backup was created. It includes the IndexName, KeySchema, Projection and ProvisionedThroughput for the GSIs on the table at the time of backup. + public let globalSecondaryIndexes: [GlobalSecondaryIndexInfo]? + /// Stream settings on the table when the backup was created. + public let streamDescription: StreamSpecification? + + public init(timeToLiveDescription: TimeToLiveDescription? = nil, localSecondaryIndexes: [LocalSecondaryIndexInfo]? = nil, globalSecondaryIndexes: [GlobalSecondaryIndexInfo]? = nil, streamDescription: StreamSpecification? = nil) { + self.timeToLiveDescription = timeToLiveDescription + self.localSecondaryIndexes = localSecondaryIndexes + self.globalSecondaryIndexes = globalSecondaryIndexes + self.streamDescription = streamDescription + } + + private enum CodingKeys: String, CodingKey { + case timeToLiveDescription = "TimeToLiveDescription" + case localSecondaryIndexes = "LocalSecondaryIndexes" + case globalSecondaryIndexes = "GlobalSecondaryIndexes" + case streamDescription = "StreamDescription" + } + } + + public struct DeleteGlobalSecondaryIndexAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IndexName", required: true, type: .string) + ] + /// The name of the global secondary index to be deleted. + public let indexName: String + + public init(indexName: String) { + self.indexName = indexName + } + + private enum CodingKeys: String, CodingKey { + case indexName = "IndexName" + } + } + + public struct RestoreTableFromBackupInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupArn", required: true, type: .string), + AWSShapeMember(label: "TargetTableName", required: true, type: .string) + ] + /// The ARN associated with the backup. + public let backupArn: String + /// The name of the new table to which the backup must be restored. + public let targetTableName: String + + public init(backupArn: String, targetTableName: String) { + self.backupArn = backupArn + self.targetTableName = targetTableName + } + + private enum CodingKeys: String, CodingKey { + case backupArn = "BackupArn" + case targetTableName = "TargetTableName" + } + } + + public class AttributeValue: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NS", required: false, type: .list), + AWSShapeMember(label: "N", required: false, type: .string), + AWSShapeMember(label: "BOOL", required: false, type: .boolean), + AWSShapeMember(label: "BS", required: false, type: .list), + AWSShapeMember(label: "L", required: false, type: .list), + AWSShapeMember(label: "NULL", required: false, type: .boolean), + AWSShapeMember(label: "B", required: false, type: .blob), + AWSShapeMember(label: "M", required: false, type: .map), + AWSShapeMember(label: "SS", required: false, type: .list), + AWSShapeMember(label: "S", required: false, type: .string) + ] + /// An attribute of type Number Set. For example: "NS": ["42.2", "-19", "7.5", "3.14"] Numbers are sent across the network to DynamoDB as strings, to maximize compatibility across languages and libraries. However, DynamoDB treats them as number type attributes for mathematical operations. + public let ns: [String]? + /// An attribute of type Number. For example: "N": "123.45" Numbers are sent across the network to DynamoDB as strings, to maximize compatibility across languages and libraries. However, DynamoDB treats them as number type attributes for mathematical operations. + public let n: String? + /// An attribute of type Boolean. For example: "BOOL": true + public let bool: Bool? + /// An attribute of type Binary Set. For example: "BS": ["U3Vubnk=", "UmFpbnk=", "U25vd3k="] + public let bs: [Data]? + /// An attribute of type List. For example: "L": ["Cookies", "Coffee", 3.14159] + public let l: [AttributeValue]? + /// An attribute of type Null. For example: "NULL": true + public let null: Bool? + /// An attribute of type Binary. For example: "B": "dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk" + public let b: Data? + /// An attribute of type Map. For example: "M": {"Name": {"S": "Joe"}, "Age": {"N": "35"}} + public let m: [String: AttributeValue]? + /// An attribute of type String Set. For example: "SS": ["Giraffe", "Hippo" ,"Zebra"] + public let ss: [String]? + /// An attribute of type String. For example: "S": "Hello" + public let s: String? + + public init(ns: [String]? = nil, n: String? = nil, bool: Bool? = nil, bs: [Data]? = nil, l: [AttributeValue]? = nil, null: Bool? = nil, b: Data? = nil, m: [String: AttributeValue]? = nil, ss: [String]? = nil, s: String? = nil) { + self.ns = ns + self.n = n + self.bool = bool + self.bs = bs + self.l = l + self.null = null + self.b = b + self.m = m + self.ss = ss + self.s = s + } + + private enum CodingKeys: String, CodingKey { + case ns = "NS" + case n = "N" + case bool = "BOOL" + case bs = "BS" + case l = "L" + case null = "NULL" + case b = "B" + case m = "M" + case ss = "SS" + case s = "S" + } + } + + public struct UpdateGlobalSecondaryIndexAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IndexName", required: true, type: .string), + AWSShapeMember(label: "ProvisionedThroughput", required: true, type: .structure) + ] + /// The name of the global secondary index to be updated. + public let indexName: String + /// Represents the provisioned throughput settings for the specified global secondary index. For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide. + public let provisionedThroughput: ProvisionedThroughput + + public init(indexName: String, provisionedThroughput: ProvisionedThroughput) { + self.indexName = indexName + self.provisionedThroughput = provisionedThroughput + } + + private enum CodingKeys: String, CodingKey { + case indexName = "IndexName" + case provisionedThroughput = "ProvisionedThroughput" + } + } + + public struct ReplicaUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Create", required: false, type: .structure), + AWSShapeMember(label: "Delete", required: false, type: .structure) + ] + /// The parameters required for creating a replica on an existing global table. + public let create: CreateReplicaAction? + /// The name of the existing replica to be removed. + public let delete: DeleteReplicaAction? + + public init(create: CreateReplicaAction? = nil, delete: DeleteReplicaAction? = nil) { + self.create = create + self.delete = delete + } + + private enum CodingKeys: String, CodingKey { + case create = "Create" + case delete = "Delete" + } + } + + public struct CreateBackupInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupName", required: true, type: .string), + AWSShapeMember(label: "TableName", required: true, type: .string) + ] + /// Specified name for the backup. + public let backupName: String + /// The name of the table. + public let tableName: String + + public init(backupName: String, tableName: String) { + self.backupName = backupName + self.tableName = tableName + } + + private enum CodingKeys: String, CodingKey { + case backupName = "BackupName" + case tableName = "TableName" + } + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/ec2/Ec2_API.swift b/Sources/AWSSDKSwift/Services/ec2/Ec2_API.swift index 53b7d7736ee..3ac57856e3a 100644 --- a/Sources/AWSSDKSwift/Services/ec2/Ec2_API.swift +++ b/Sources/AWSSDKSwift/Services/ec2/Ec2_API.swift @@ -28,6 +28,11 @@ public struct Ec2 { return try client.send(operation: "DescribeHostReservations", path: "/", httpMethod: "POST", input: input) } + /// Creates a new version for a launch template. You can specify an existing version of launch template from which to base the new version. Launch template versions are numbered in the order in which they are created. You cannot specify, change, or replace the numbering of launch template versions. + public func createLaunchTemplateVersion(_ input: CreateLaunchTemplateVersionRequest) throws -> CreateLaunchTemplateVersionResult { + return try client.send(operation: "CreateLaunchTemplateVersion", path: "/", httpMethod: "POST", input: input) + } + /// Describes the specified attribute of the specified volume. You can specify only one attribute at a time. For more information about EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide. public func describeVolumeAttribute(_ input: DescribeVolumeAttributeRequest) throws -> DescribeVolumeAttributeResult { return try client.send(operation: "DescribeVolumeAttribute", path: "/", httpMethod: "POST", input: input) @@ -43,7 +48,7 @@ public struct Ec2 { return try client.send(operation: "ReplaceNetworkAclAssociation", path: "/", httpMethod: "POST", input: input) } - /// Describes available AWS services in a prefix list format, which includes the prefix list name and prefix list ID of the service and the IP address range for the service. A prefix list ID is required for creating an outbound security group rule that allows traffic from a VPC to access an AWS service through a VPC endpoint. + /// Describes available AWS services in a prefix list format, which includes the prefix list name and prefix list ID of the service and the IP address range for the service. A prefix list ID is required for creating an outbound security group rule that allows traffic from a VPC to access an AWS service through a gateway VPC endpoint. public func describePrefixLists(_ input: DescribePrefixListsRequest) throws -> DescribePrefixListsResult { return try client.send(operation: "DescribePrefixLists", path: "/", httpMethod: "POST", input: input) } @@ -68,39 +73,39 @@ public struct Ec2 { return try client.send(operation: "DescribeVpcEndpoints", path: "/", httpMethod: "POST", input: input) } - /// Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the peer VPC can delete the VPC peering connection if it's in the active state. The owner of the requester VPC can delete a VPC peering connection in the pending-acceptance state. - public func deleteVpcPeeringConnection(_ input: DeleteVpcPeeringConnectionRequest) throws -> DeleteVpcPeeringConnectionResult { - return try client.send(operation: "DeleteVpcPeeringConnection", path: "/", httpMethod: "POST", input: input) - } - /// Describes the status of the specified volumes. Volume status provides the result of the checks performed on your volumes to determine events that can impair the performance of your volumes. The performance of a volume can be affected if an issue occurs on the volume's underlying host. If the volume's underlying host experiences a power outage or system issue, after the system is restored, there could be data inconsistencies on the volume. Volume events notify you if this occurs. Volume actions notify you if any action needs to be taken in response to the event. The DescribeVolumeStatus operation provides the following information about the specified volumes: Status: Reflects the current status of the volume. The possible values are ok, impaired , warning, or insufficient-data. If all checks pass, the overall status of the volume is ok. If the check fails, the overall status is impaired. If the status is insufficient-data, then the checks may still be taking place on your volume at the time. We recommend that you retry the request. For more information on volume status, see Monitoring the Status of Your Volumes. Events: Reflect the cause of a volume status and may require you to take action. For example, if your volume returns an impaired status, then the volume event might be potential-data-inconsistency. This means that your volume has been affected by an issue with the underlying host, has all I/O operations disabled, and may have inconsistent data. Actions: Reflect the actions you may have to take in response to an event. For example, if the status of the volume is impaired and the volume event shows potential-data-inconsistency, then the action shows enable-volume-io. This means that you may want to enable the I/O operations for the volume by calling the EnableVolumeIO action and then check the volume for data consistency. Volume status is based on the volume status checks, and does not reflect the volume state. Therefore, volume status does not indicate volumes in the error state (for example, when a volume is incapable of accepting I/O.) public func describeVolumeStatus(_ input: DescribeVolumeStatusRequest) throws -> DescribeVolumeStatusResult { return try client.send(operation: "DescribeVolumeStatus", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more of your virtual private gateways. For more information about virtual private gateways, see Adding an IPsec Hardware VPN to Your VPC in the Amazon Virtual Private Cloud User Guide. + /// Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the accepter VPC can delete the VPC peering connection if it's in the active state. The owner of the requester VPC can delete a VPC peering connection in the pending-acceptance state. + public func deleteVpcPeeringConnection(_ input: DeleteVpcPeeringConnectionRequest) throws -> DeleteVpcPeeringConnectionResult { + return try client.send(operation: "DeleteVpcPeeringConnection", path: "/", httpMethod: "POST", input: input) + } + + /// Describes one or more of your virtual private gateways. For more information about virtual private gateways, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide. public func describeVpnGateways(_ input: DescribeVpnGatewaysRequest) throws -> DescribeVpnGatewaysResult { return try client.send(operation: "DescribeVpnGateways", path: "/", httpMethod: "POST", input: input) } + /// Creates a connection notification for a specified VPC endpoint or VPC endpoint service. A connection notification notifies you of specific endpoint events. You must create an SNS topic to receive notifications. For more information, see Create a Topic in the Amazon Simple Notification Service Developer Guide. You can create a connection notification for interface endpoints only. + public func createVpcEndpointConnectionNotification(_ input: CreateVpcEndpointConnectionNotificationRequest) throws -> CreateVpcEndpointConnectionNotificationResult { + return try client.send(operation: "CreateVpcEndpointConnectionNotification", path: "/", httpMethod: "POST", input: input) + } + /// Deletes the specified network interface. You must detach the network interface before you can delete it. public func deleteNetworkInterface(_ input: DeleteNetworkInterfaceRequest) throws { _ = try client.send(operation: "DeleteNetworkInterface", path: "/", httpMethod: "POST", input: input) } - /// Modifies the specified attribute of the specified VPC. - public func modifyVpcAttribute(_ input: ModifyVpcAttributeRequest) throws { - _ = try client.send(operation: "ModifyVpcAttribute", path: "/", httpMethod: "POST", input: input) - } - /// Cancels an active export task. The request removes all artifacts of the export, including any partially-created Amazon S3 objects. If the export task is complete or is in the process of transferring the final disk image, the command fails and returns an error. public func cancelExportTask(_ input: CancelExportTaskRequest) throws { _ = try client.send(operation: "CancelExportTask", path: "/", httpMethod: "POST", input: input) } - /// Cancels one or more Spot instance requests. Spot instances are instances that Amazon EC2 starts on your behalf when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide. Canceling a Spot instance request does not terminate running Spot instances associated with the request. - public func cancelSpotInstanceRequests(_ input: CancelSpotInstanceRequestsRequest) throws -> CancelSpotInstanceRequestsResult { - return try client.send(operation: "CancelSpotInstanceRequests", path: "/", httpMethod: "POST", input: input) + /// Modifies the specified attribute of the specified VPC. + public func modifyVpcAttribute(_ input: ModifyVpcAttributeRequest) throws { + _ = try client.send(operation: "ModifyVpcAttribute", path: "/", httpMethod: "POST", input: input) } /// Describes one or more of your security groups. A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide. @@ -108,27 +113,32 @@ public struct Ec2 { return try client.send(operation: "DescribeSecurityGroups", path: "/", httpMethod: "POST", input: input) } + /// Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with CreateKeyPair, in which AWS creates the key pair and gives the keys to you (AWS keeps a copy of the public key). With ImportKeyPair, you create the key pair and give AWS just the public key. The private key is never transferred between you and AWS. For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide. + public func importKeyPair(_ input: ImportKeyPairRequest) throws -> ImportKeyPairResult { + return try client.send(operation: "ImportKeyPair", path: "/", httpMethod: "POST", input: input) + } + /// Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform. The Elastic IP address must be allocated to your account for more than 24 hours, and it must not be associated with an instance. After the Elastic IP address is moved, it is no longer available for use in the EC2-Classic platform, unless you move it back using the RestoreAddressToClassic request. You cannot move an Elastic IP address that was originally allocated for use in the EC2-VPC platform to the EC2-Classic platform. public func moveAddressToVpc(_ input: MoveAddressToVpcRequest) throws -> MoveAddressToVpcResult { return try client.send(operation: "MoveAddressToVpc", path: "/", httpMethod: "POST", input: input) } - /// Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#8 private key. If a key with the specified name already exists, Amazon EC2 returns an error. You can have up to five thousand key pairs per region. The key pair returned to you is available only in the region in which you create it. To create a key pair that is available in all regions, use ImportKeyPair. For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide. + /// Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#1 private key. If a key with the specified name already exists, Amazon EC2 returns an error. You can have up to five thousand key pairs per region. The key pair returned to you is available only in the region in which you create it. If you prefer, you can create your own key pair using a third-party tool and upload it to any region using ImportKeyPair. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide. public func createKeyPair(_ input: CreateKeyPairRequest) throws -> KeyPair { return try client.send(operation: "CreateKeyPair", path: "/", httpMethod: "POST", input: input) } - /// Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with CreateKeyPair, in which AWS creates the key pair and gives the keys to you (AWS keeps a copy of the public key). With ImportKeyPair, you create the key pair and give AWS just the public key. The private key is never transferred between you and AWS. For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide. - public func importKeyPair(_ input: ImportKeyPairRequest) throws -> ImportKeyPairResult { - return try client.send(operation: "ImportKeyPair", path: "/", httpMethod: "POST", input: input) + /// Cancels one or more Spot Instance requests. Spot Instances are instances that Amazon EC2 starts on your behalf when the maximum price that you specify exceeds the current Spot price. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide. Canceling a Spot Instance request does not terminate running Spot Instances associated with the request. + public func cancelSpotInstanceRequests(_ input: CancelSpotInstanceRequestsRequest) throws -> CancelSpotInstanceRequestsResult { + return try client.send(operation: "CancelSpotInstanceRequests", path: "/", httpMethod: "POST", input: input) } - /// Releases the specified Elastic IP address. After releasing an Elastic IP address, it is released to the IP address pool and might be unavailable to you. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an AuthFailure error if the address is already allocated to another AWS account. [EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress. [Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you try to release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse). + /// Releases the specified Elastic IP address. [EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress. [Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you can release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse). After releasing an Elastic IP address, it is released to the IP address pool. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an AuthFailure error if the address is already allocated to another AWS account. [EC2-VPC] After you release an Elastic IP address for use in a VPC, you might be able to recover it. For more information, see AllocateAddress. public func releaseAddress(_ input: ReleaseAddressRequest) throws { _ = try client.send(operation: "ReleaseAddress", path: "/", httpMethod: "POST", input: input) } - /// Describes the running instances for the specified Spot fleet. + /// Describes the running instances for the specified Spot Fleet. public func describeSpotFleetInstances(_ input: DescribeSpotFleetInstancesRequest) throws -> DescribeSpotFleetInstancesResponse { return try client.send(operation: "DescribeSpotFleetInstances", path: "/", httpMethod: "POST", input: input) } @@ -143,7 +153,7 @@ public struct Ec2 { return try client.send(operation: "ModifyVolume", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the encrypted administrator password for an instance running Windows. The Windows password is generated at boot if the EC2Config service plugin, Ec2SetPassword, is enabled. This usually only happens the first time an AMI is launched, and then Ec2SetPassword is automatically disabled. The password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling. The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file. Password generation and encryption takes a few moments. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password. + /// Retrieves the encrypted administrator password for a running Windows instance. The Windows password is generated at boot by the EC2Config service or EC2Launch scripts (Windows Server 2016 and later). This usually only happens the first time an instance is launched. For more information, see EC2Config and EC2Launch in the Amazon Elastic Compute Cloud User Guide. For the EC2Config service, the password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling. The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file. When you launch an instance, password generation and encryption may take a few minutes. If you try to retrieve the password before it's available, the output returns an empty string. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password. public func getPasswordData(_ input: GetPasswordDataRequest) throws -> GetPasswordDataResult { return try client.send(operation: "GetPasswordData", path: "/", httpMethod: "POST", input: input) } @@ -163,12 +173,22 @@ public struct Ec2 { _ = try client.send(operation: "EnableVgwRoutePropagation", path: "/", httpMethod: "POST", input: input) } + /// Deletes one or more versions of a launch template. You cannot delete the default version of a launch template; you must first assign a different version as the default. If the default version is the only version for the launch template, you must delete the entire launch template using DeleteLaunchTemplate. + public func deleteLaunchTemplateVersions(_ input: DeleteLaunchTemplateVersionsRequest) throws -> DeleteLaunchTemplateVersionsResult { + return try client.send(operation: "DeleteLaunchTemplateVersions", path: "/", httpMethod: "POST", input: input) + } + /// Requests a reboot of one or more instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored. If an instance does not cleanly shut down within four minutes, Amazon EC2 performs a hard reboot. For more information about troubleshooting, see Getting Console Output and Rebooting Instances in the Amazon Elastic Compute Cloud User Guide. public func rebootInstances(_ input: RebootInstancesRequest) throws { _ = try client.send(operation: "RebootInstances", path: "/", httpMethod: "POST", input: input) } - /// Modifies attributes of a specified VPC endpoint. You can modify the policy associated with the endpoint, and you can add and remove route tables associated with the endpoint. + /// Modifies a connection notification for VPC endpoint or VPC endpoint service. You can change the SNS topic for the notification, or the events for which to be notified. + public func modifyVpcEndpointConnectionNotification(_ input: ModifyVpcEndpointConnectionNotificationRequest) throws -> ModifyVpcEndpointConnectionNotificationResult { + return try client.send(operation: "ModifyVpcEndpointConnectionNotification", path: "/", httpMethod: "POST", input: input) + } + + /// Modifies attributes of a specified VPC endpoint. The attributes that you can modify depend on the type of VPC endpoint (interface or gateway). For more information, see VPC Endpoints in the Amazon Virtual Private Cloud User Guide. public func modifyVpcEndpoint(_ input: ModifyVpcEndpointRequest) throws -> ModifyVpcEndpointResult { return try client.send(operation: "ModifyVpcEndpoint", path: "/", httpMethod: "POST", input: input) } @@ -193,29 +213,29 @@ public struct Ec2 { _ = try client.send(operation: "DeleteDhcpOptions", path: "/", httpMethod: "POST", input: input) } + /// Creates a placement group in which to launch instances. The strategy of the placement group determines how the instances are organized within the group. A cluster placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A spread placement group places instances on distinct hardware. For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide. + public func createPlacementGroup(_ input: CreatePlacementGroupRequest) throws { + _ = try client.send(operation: "CreatePlacementGroup", path: "/", httpMethod: "POST", input: input) + } + /// Describes one or more of your subnets. For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide. public func describeSubnets(_ input: DescribeSubnetsRequest) throws -> DescribeSubnetsResult { return try client.send(operation: "DescribeSubnets", path: "/", httpMethod: "POST", input: input) } - /// Creates a placement group that you launch cluster instances into. You must give the group a name that's unique within the scope of your account. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide. - public func createPlacementGroup(_ input: CreatePlacementGroupRequest) throws { - _ = try client.send(operation: "CreatePlacementGroup", path: "/", httpMethod: "POST", input: input) - } - /// Replaces an entry (rule) in a network ACL. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide. public func replaceNetworkAclEntry(_ input: ReplaceNetworkAclEntryRequest) throws { _ = try client.send(operation: "ReplaceNetworkAclEntry", path: "/", httpMethod: "POST", input: input) } - /// Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time. AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made public. The SriovNetSupport enhanced networking attribute cannot be changed using this command. Instead, enable SriovNetSupport on an instance and create an AMI from the instance. This will result in an image with SriovNetSupport enabled. + /// Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time. You can use the Attribute parameter to specify the attribute or one of the following parameters: Description, LaunchPermission, or ProductCode. AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made public. To enable the SriovNetSupport enhanced networking attribute of an image, enable SriovNetSupport on an instance and create an AMI from the instance. public func modifyImageAttribute(_ input: ModifyImageAttributeRequest) throws { _ = try client.send(operation: "ModifyImageAttribute", path: "/", httpMethod: "POST", input: input) } - /// Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped. If you customized your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes. For more information, see Creating Amazon EBS-Backed Linux AMIs in the Amazon Elastic Compute Cloud User Guide. - public func createImage(_ input: CreateImageRequest) throws -> CreateImageResult { - return try client.send(operation: "CreateImage", path: "/", httpMethod: "POST", input: input) + /// Rejects one or more VPC endpoint connection requests to your VPC endpoint service. + public func rejectVpcEndpointConnections(_ input: RejectVpcEndpointConnectionsRequest) throws -> RejectVpcEndpointConnectionsResult { + return try client.send(operation: "RejectVpcEndpointConnections", path: "/", httpMethod: "POST", input: input) } /// [EC2-VPC only] Describes the stale security group rules for security groups in a specified VPC. Rules are stale when they reference a deleted security group in a peer VPC, or a security group in a peer VPC for which the VPC peering connection has been deleted. @@ -223,6 +243,11 @@ public struct Ec2 { return try client.send(operation: "DescribeStaleSecurityGroups", path: "/", httpMethod: "POST", input: input) } + /// Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped. If you customized your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes. For more information, see Creating Amazon EBS-Backed Linux AMIs in the Amazon Elastic Compute Cloud User Guide. + public func createImage(_ input: CreateImageRequest) throws -> CreateImageResult { + return try client.send(operation: "CreateImage", path: "/", httpMethod: "POST", input: input) + } + /// Preview a reservation purchase with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation. This is a preview of the PurchaseHostReservation action and does not result in the offering being purchased. public func getHostReservationPurchasePreview(_ input: GetHostReservationPurchasePreviewRequest) throws -> GetHostReservationPurchasePreviewResult { return try client.send(operation: "GetHostReservationPurchasePreview", path: "/", httpMethod: "POST", input: input) @@ -238,32 +263,37 @@ public struct Ec2 { _ = try client.send(operation: "UnassignPrivateIpAddresses", path: "/", httpMethod: "POST", input: input) } + /// Set the instance affinity value for a specific stopped instance and modify the instance tenancy setting. Instance affinity is disabled by default. When instance affinity is host and it is not associated with a specific Dedicated Host, the next time it is launched it will automatically be associated with the host it lands on. This relationship will persist if the instance is stopped/started, or rebooted. You can modify the host ID associated with a stopped instance. If a stopped instance has a new host ID association, the instance will target that host when restarted. You can modify the tenancy of a stopped instance with a tenancy of host or dedicated. Affinity, hostID, and tenancy are not required parameters, but at least one of them must be specified in the request. Affinity and tenancy can be modified in the same request, but tenancy can only be modified on instances that are stopped. + public func modifyInstancePlacement(_ input: ModifyInstancePlacementRequest) throws -> ModifyInstancePlacementResult { + return try client.send(operation: "ModifyInstancePlacement", path: "/", httpMethod: "POST", input: input) + } + /// Deletes the specified EBS volume. The volume must be in the available state (not attached to an instance). The volume may remain in the deleting state for several minutes. For more information, see Deleting an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide. public func deleteVolume(_ input: DeleteVolumeRequest) throws { _ = try client.send(operation: "DeleteVolume", path: "/", httpMethod: "POST", input: input) } - /// Set the instance affinity value for a specific stopped instance and modify the instance tenancy setting. Instance affinity is disabled by default. When instance affinity is host and it is not associated with a specific Dedicated Host, the next time it is launched it will automatically be associated with the host it lands on. This relationship will persist if the instance is stopped/started, or rebooted. You can modify the host ID associated with a stopped instance. If a stopped instance has a new host ID association, the instance will target that host when restarted. You can modify the tenancy of a stopped instance with a tenancy of host or dedicated. Affinity, hostID, and tenancy are not required parameters, but at least one of them must be specified in the request. Affinity and tenancy can be modified in the same request, but tenancy can only be modified on instances that are stopped. - public func modifyInstancePlacement(_ input: ModifyInstancePlacementRequest) throws -> ModifyInstancePlacementResult { - return try client.send(operation: "ModifyInstancePlacement", path: "/", httpMethod: "POST", input: input) + /// Updates the description of an ingress (inbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously. You specify the description as part of the IP permissions structure. You can remove a description for a security group rule by omitting the description parameter in the request. + public func updateSecurityGroupRuleDescriptionsIngress(_ input: UpdateSecurityGroupRuleDescriptionsIngressRequest) throws -> UpdateSecurityGroupRuleDescriptionsIngressResult { + return try client.send(operation: "UpdateSecurityGroupRuleDescriptionsIngress", path: "/", httpMethod: "POST", input: input) } - /// Removes one or more ingress rules from a security group. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be removed. Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur. + /// Removes one or more ingress rules from a security group. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly. [EC2-Classic security groups only] If the values you specify do not match the existing rule's values, no error is returned. Use DescribeSecurityGroups to verify that the rule has been removed. Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not have to specify the description to revoke the rule. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur. public func revokeSecurityGroupIngress(_ input: RevokeSecurityGroupIngressRequest) throws { _ = try client.send(operation: "RevokeSecurityGroupIngress", path: "/", httpMethod: "POST", input: input) } - /// Disables detailed monitoring for a running instance. For more information, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide. - public func unmonitorInstances(_ input: UnmonitorInstancesRequest) throws -> UnmonitorInstancesResult { - return try client.send(operation: "UnmonitorInstances", path: "/", httpMethod: "POST", input: input) - } - /// Describes the specified attribute of the specified VPC. You can specify only one attribute at a time. public func describeVpcAttribute(_ input: DescribeVpcAttributeRequest) throws -> DescribeVpcAttributeResult { return try client.send(operation: "DescribeVpcAttribute", path: "/", httpMethod: "POST", input: input) } - /// Disassociates a CIDR block from a VPC. Currently, you can disassociate an IPv6 CIDR block only. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it. + /// Disables detailed monitoring for a running instance. For more information, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide. + public func unmonitorInstances(_ input: UnmonitorInstancesRequest) throws -> UnmonitorInstancesResult { + return try client.send(operation: "UnmonitorInstances", path: "/", httpMethod: "POST", input: input) + } + + /// Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you must specify its association ID. You can get the association ID by using DescribeVpcs. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it. You cannot disassociate the CIDR block with which you originally created the VPC (the primary CIDR block). public func disassociateVpcCidrBlock(_ input: DisassociateVpcCidrBlockRequest) throws -> DisassociateVpcCidrBlockResult { return try client.send(operation: "DisassociateVpcCidrBlock", path: "/", httpMethod: "POST", input: input) } @@ -273,36 +303,51 @@ public struct Ec2 { return try client.send(operation: "DescribeDhcpOptions", path: "/", httpMethod: "POST", input: input) } - /// Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway. For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. + /// Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway. For more information about VPN connections, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide. public func createVpnConnectionRoute(_ input: CreateVpnConnectionRouteRequest) throws { _ = try client.send(operation: "CreateVpnConnectionRoute", path: "/", httpMethod: "POST", input: input) } - /// Adds one or more ingress rules to a security group. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur. [EC2-Classic] This action gives one or more IPv4 CIDR address ranges permission to access a security group in your account, or gives one or more security groups (called the source groups) permission to access a security group for your account. A source group can be for your own AWS account, or another. You can have up to 100 rules per group. [EC2-VPC] This action gives one or more IPv4 or IPv6 CIDR address ranges permission to access a security group in your VPC, or gives one or more other security groups (called the source groups) permission to access a security group for your VPC. The security groups must all be for the same VPC or a peer VPC in a VPC peering connection. For more information about VPC security group limits, see Amazon VPC Limits. + /// Adds one or more ingress rules to a security group. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur. [EC2-Classic] This action gives one or more IPv4 CIDR address ranges permission to access a security group in your account, or gives one or more security groups (called the source groups) permission to access a security group for your account. A source group can be for your own AWS account, or another. You can have up to 100 rules per group. [EC2-VPC] This action gives one or more IPv4 or IPv6 CIDR address ranges permission to access a security group in your VPC, or gives one or more other security groups (called the source groups) permission to access a security group for your VPC. The security groups must all be for the same VPC or a peer VPC in a VPC peering connection. For more information about VPC security group limits, see Amazon VPC Limits. You can optionally specify a description for the security group rule. public func authorizeSecurityGroupIngress(_ input: AuthorizeSecurityGroupIngressRequest) throws { _ = try client.send(operation: "AuthorizeSecurityGroupIngress", path: "/", httpMethod: "POST", input: input) } + /// Copies the specified Amazon FPGA Image (AFI) to the current region. + public func copyFpgaImage(_ input: CopyFpgaImageRequest) throws -> CopyFpgaImageResult { + return try client.send(operation: "CopyFpgaImage", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a permission for a network interface. By default, you cannot delete the permission if the account for which you're removing the permission has attached the network interface to an instance. However, you can force delete the permission, regardless of any attachment. + public func deleteNetworkInterfacePermission(_ input: DeleteNetworkInterfacePermissionRequest) throws -> DeleteNetworkInterfacePermissionResult { + return try client.send(operation: "DeleteNetworkInterfacePermission", path: "/", httpMethod: "POST", input: input) + } + /// Describes one or more of your conversion tasks. For more information, see the VM Import/Export User Guide. For information about the import manifest referenced by this API action, see VM Import Manifest. public func describeConversionTasks(_ input: DescribeConversionTasksRequest) throws -> DescribeConversionTasksResult { return try client.send(operation: "DescribeConversionTasks", path: "/", httpMethod: "POST", input: input) } - /// Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules. We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules. After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide. - public func createNetworkAclEntry(_ input: CreateNetworkAclEntryRequest) throws { - _ = try client.send(operation: "CreateNetworkAclEntry", path: "/", httpMethod: "POST", input: input) - } - /// Deletes the specified ingress or egress entry (rule) from the specified network ACL. public func deleteNetworkAclEntry(_ input: DeleteNetworkAclEntryRequest) throws { _ = try client.send(operation: "DeleteNetworkAclEntry", path: "/", httpMethod: "POST", input: input) } + /// Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules. We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules. After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide. + public func createNetworkAclEntry(_ input: CreateNetworkAclEntryRequest) throws { + _ = try client.send(operation: "CreateNetworkAclEntry", path: "/", httpMethod: "POST", input: input) + } + /// Describes one or more of your network interfaces. public func describeNetworkInterfaces(_ input: DescribeNetworkInterfacesRequest) throws -> DescribeNetworkInterfacesResult { return try client.send(operation: "DescribeNetworkInterfaces", path: "/", httpMethod: "POST", input: input) } + /// Grants an AWS authorized partner account permission to attach the specified network interface to an instance in their account. You can grant permission to a single AWS account only, and only one account at a time. + public func createNetworkInterfacePermission(_ input: CreateNetworkInterfacePermissionRequest) throws -> CreateNetworkInterfacePermissionResult { + return try client.send(operation: "CreateNetworkInterfacePermission", path: "/", httpMethod: "POST", input: input) + } + /// Displays details about an import virtual machine or import snapshot tasks that are already created. public func describeImportImageTasks(_ input: DescribeImportImageTasksRequest) throws -> DescribeImportImageTasksResult { return try client.send(operation: "DescribeImportImageTasks", path: "/", httpMethod: "POST", input: input) @@ -318,7 +363,7 @@ public struct Ec2 { return try client.send(operation: "DisassociateSubnetCidrBlock", path: "/", httpMethod: "POST", input: input) } - /// Launches the specified number of instances using an AMI for which you have permissions. You can specify a number of options, or leave the default options. The following rules apply: [EC2-VPC] If you don't specify a subnet ID, we choose a default subnet from your default VPC for you. If you don't have a default VPC, you must specify a subnet ID in the request. [EC2-Classic] If don't specify an Availability Zone, we choose one for you. Some instance types must be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID, the request fails. For more information, see Instance Types Available Only in a VPC. [EC2-VPC] All instances have a network interface with a primary private IPv4 address. If you don't specify this address, we choose one from the IPv4 range of your subnet. Not all instance types support IPv6 addresses. For more information, see Instance Types. If you don't specify a security group ID, we use the default security group. For more information, see Security Groups. If any of the AMIs have a product code attached for which the user has not subscribed, the request fails. To ensure faster instance launches, break up large requests into smaller batches. For example, create 5 separate launch requests for 100 instances each instead of 1 launch request for 500 instances. An instance is ready for you to use when it's in the running state. You can check the state of your instance using DescribeInstances. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see CreateTags and Tagging Your Amazon EC2 Resources. Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide. For troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide. + /// Launches the specified number of instances using an AMI for which you have permissions. You can specify a number of options, or leave the default options. The following rules apply: [EC2-VPC] If you don't specify a subnet ID, we choose a default subnet from your default VPC for you. If you don't have a default VPC, you must specify a subnet ID in the request. [EC2-Classic] If don't specify an Availability Zone, we choose one for you. Some instance types must be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID, the request fails. For more information, see Instance Types Available Only in a VPC. [EC2-VPC] All instances have a network interface with a primary private IPv4 address. If you don't specify this address, we choose one from the IPv4 range of your subnet. Not all instance types support IPv6 addresses. For more information, see Instance Types. If you don't specify a security group ID, we use the default security group. For more information, see Security Groups. If any of the AMIs have a product code attached for which the user has not subscribed, the request fails. You can create a launch template, which is a resource that contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify the launch template instead of specifying the launch parameters. To ensure faster instance launches, break up large requests into smaller batches. For example, create five separate launch requests for 100 instances each instead of one launch request for 500 instances. An instance is ready for you to use when it's in the running state. You can check the state of your instance using DescribeInstances. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see CreateTags and Tagging Your Amazon EC2 Resources. Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide. For troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide. public func runInstances(_ input: RunInstancesRequest) throws -> Reservation { return try client.send(operation: "RunInstances", path: "/", httpMethod: "POST", input: input) } @@ -333,9 +378,9 @@ public struct Ec2 { return try client.send(operation: "ImportVolume", path: "/", httpMethod: "POST", input: input) } - /// Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the Reserved Instance Marketplace. You can submit one Standard Reserved Instance listing at a time. To get a list of your Standard Reserved Instances, you can use the DescribeReservedInstances operation. Only Standard Reserved Instances with a capacity reservation can be sold in the Reserved Instance Marketplace. Convertible Reserved Instances and Standard Reserved Instances with a regional benefit cannot be sold. The Reserved Instance Marketplace matches sellers who want to resell Standard Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances. To sell your Standard Reserved Instances, you must first register as a seller in the Reserved Instance Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of some or all of your Standard Reserved Instances, and specify the upfront price to receive for them. Your Standard Reserved Instance listings then become available for purchase. To view the details of your Standard Reserved Instance listing, you can use the DescribeReservedInstancesListings operation. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide. - public func createReservedInstancesListing(_ input: CreateReservedInstancesListingRequest) throws -> CreateReservedInstancesListingResult { - return try client.send(operation: "CreateReservedInstancesListing", path: "/", httpMethod: "POST", input: input) + /// Creates a subnet in an existing VPC. When you create each subnet, you provide the VPC ID and the IPv4 CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The size of the subnet's IPv4 CIDR block can be the same as a VPC's IPv4 CIDR block, or a subset of a VPC's IPv4 CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length. AWS reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use. If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle. If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available. For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide. + public func createSubnet(_ input: CreateSubnetRequest) throws -> CreateSubnetResult { + return try client.send(operation: "CreateSubnet", path: "/", httpMethod: "POST", input: input) } /// Creates a set of DHCP options for your VPC. After creating the set, you must associate it with the VPC, causing all existing and new instances that you launch in the VPC to use this set of DHCP options. The following are the individual DHCP options you can specify. For more information about the options, see RFC 2132. domain-name-servers - The IP addresses of up to four domain name servers, or AmazonProvidedDNS. The default DHCP option set specifies AmazonProvidedDNS. If specifying more than one domain name server, specify the IP addresses in a single parameter, separated by commas. If you want your instance to receive a custom DNS hostname as specified in domain-name, you must set domain-name-servers to a custom DNS server. domain-name - If you're using AmazonProvidedDNS in us-east-1, specify ec2.internal. If you're using AmazonProvidedDNS in another region, specify region.compute.internal (for example, ap-northeast-1.compute.internal). Otherwise, specify a domain name (for example, MyCompany.com). This value is used to complete unqualified DNS hostnames. Important: Some Linux operating systems accept multiple domain names separated by spaces. However, Windows and other Linux operating systems treat the value as a single domain, which results in unexpected behavior. If your DHCP options set is associated with a VPC that has instances with multiple operating systems, specify only one domain name. ntp-servers - The IP addresses of up to four Network Time Protocol (NTP) servers. netbios-name-servers - The IP addresses of up to four NetBIOS name servers. netbios-node-type - The NetBIOS node type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and multicast are not currently supported). For more information about these node types, see RFC 2132. Your VPC automatically starts out with a set of DHCP options that includes only a DNS server that we provide (AmazonProvidedDNS). If you create a set of options, and if your VPC has an Internet gateway, make sure to set the domain-name-servers option either to AmazonProvidedDNS or to a domain name server of your choice. For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide. @@ -343,12 +388,12 @@ public struct Ec2 { return try client.send(operation: "CreateDhcpOptions", path: "/", httpMethod: "POST", input: input) } - /// Creates a subnet in an existing VPC. When you create each subnet, you provide the VPC ID and the CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The subnet's IPv4 CIDR block can be the same as the VPC's IPv4 CIDR block (assuming you want only a single subnet in the VPC), or a subset of the VPC's IPv4 CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length. AWS reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use. If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle. If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available. For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide. - public func createSubnet(_ input: CreateSubnetRequest) throws -> CreateSubnetResult { - return try client.send(operation: "CreateSubnet", path: "/", httpMethod: "POST", input: input) + /// Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the Reserved Instance Marketplace. You can submit one Standard Reserved Instance listing at a time. To get a list of your Standard Reserved Instances, you can use the DescribeReservedInstances operation. Only Standard Reserved Instances with a capacity reservation can be sold in the Reserved Instance Marketplace. Convertible Reserved Instances and Standard Reserved Instances with a regional benefit cannot be sold. The Reserved Instance Marketplace matches sellers who want to resell Standard Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances. To sell your Standard Reserved Instances, you must first register as a seller in the Reserved Instance Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of some or all of your Standard Reserved Instances, and specify the upfront price to receive for them. Your Standard Reserved Instance listings then become available for purchase. To view the details of your Standard Reserved Instance listing, you can use the DescribeReservedInstancesListings operation. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide. + public func createReservedInstancesListing(_ input: CreateReservedInstancesListingRequest) throws -> CreateReservedInstancesListingResult { + return try client.send(operation: "CreateReservedInstancesListing", path: "/", httpMethod: "POST", input: input) } - /// Acquires an Elastic IP address. An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. + /// Allocates an Elastic IP address. An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. By default, you can allocate 5 Elastic IP addresses for EC2-Classic per region and 5 Elastic IP addresses for EC2-VPC per region. If you release an Elastic IP address for use in a VPC, you might be able to recover it. To recover an Elastic IP address that you released, specify it in the Address parameter. Note that you cannot recover an Elastic IP address that you released after it is allocated to another AWS account. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. public func allocateAddress(_ input: AllocateAddressRequest) throws -> AllocateAddressResult { return try client.send(operation: "AllocateAddress", path: "/", httpMethod: "POST", input: input) } @@ -373,7 +418,7 @@ public struct Ec2 { return try client.send(operation: "DescribeIdFormat", path: "/", httpMethod: "POST", input: input) } - /// Describes the data feed for Spot instances. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide. + /// Describes the data feed for Spot Instances. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide. public func describeSpotDatafeedSubscription(_ input: DescribeSpotDatafeedSubscriptionRequest) throws -> DescribeSpotDatafeedSubscriptionResult { return try client.send(operation: "DescribeSpotDatafeedSubscription", path: "/", httpMethod: "POST", input: input) } @@ -388,7 +433,7 @@ public struct Ec2 { _ = try client.send(operation: "DeleteSecurityGroup", path: "/", httpMethod: "POST", input: input) } - /// Deletes the data feed for Spot instances. + /// Deletes the data feed for Spot Instances. public func deleteSpotDatafeedSubscription(_ input: DeleteSpotDatafeedSubscriptionRequest) throws { _ = try client.send(operation: "DeleteSpotDatafeedSubscription", path: "/", httpMethod: "POST", input: input) } @@ -398,17 +443,17 @@ public struct Ec2 { return try client.send(operation: "CreateNatGateway", path: "/", httpMethod: "POST", input: input) } - /// Starts an Amazon EBS-backed AMI that you've previously stopped. Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for hourly instance usage. However, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM. Performing this operation on an instance that uses an instance store as its root device returns an error. For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide. + /// Starts an Amazon EBS-backed instance that you've previously stopped. Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for instance usage. However, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Every time you start your Windows instance, Amazon EC2 charges you for a full instance hour. If you stop and restart your Windows instance, a new instance hour begins and Amazon EC2 charges you for another full instance hour even if you are still within the same 60-minute period when it was stopped. Every time you start your Linux instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM. Performing this operation on an instance that uses an instance store as its root device returns an error. For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide. public func startInstances(_ input: StartInstancesRequest) throws -> StartInstancesResult { return try client.send(operation: "StartInstances", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more of your VPN connections. For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. + /// Describes one or more of your VPN connections. For more information about VPN connections, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide. public func describeVpnConnections(_ input: DescribeVpnConnectionsRequest) throws -> DescribeVpnConnectionsResult { return try client.send(operation: "DescribeVpnConnections", path: "/", httpMethod: "POST", input: input) } - /// Associates a CIDR block with your VPC. You can only associate a single Amazon-provided IPv6 CIDR block with your VPC. The IPv6 CIDR block size is fixed at /56. + /// Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block, or you can associate an Amazon-provided IPv6 CIDR block. The IPv6 CIDR block size is fixed at /56. For more information about associating CIDR blocks with your VPC and applicable restrictions, see VPC and Subnet Sizing in the Amazon Virtual Private Cloud User Guide. public func associateVpcCidrBlock(_ input: AssociateVpcCidrBlockRequest) throws -> AssociateVpcCidrBlockResult { return try client.send(operation: "AssociateVpcCidrBlock", path: "/", httpMethod: "POST", input: input) } @@ -418,7 +463,7 @@ public struct Ec2 { return try client.send(operation: "CopySnapshot", path: "/", httpMethod: "POST", input: input) } - /// Creates a Spot instance request. Spot instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot Instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide. + /// Creates a Spot Instance request. Spot Instances are instances that Amazon EC2 launches when the maximum price that you specify exceeds the current Spot price. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide. public func requestSpotInstances(_ input: RequestSpotInstancesRequest) throws -> RequestSpotInstancesResult { return try client.send(operation: "RequestSpotInstances", path: "/", httpMethod: "POST", input: input) } @@ -433,16 +478,16 @@ public struct Ec2 { return try client.send(operation: "AssociateIamInstanceProfile", path: "/", httpMethod: "POST", input: input) } - /// Modifies the ID format for the specified resource on a per-region basis. You can specify that resources should receive longer IDs (17-character IDs) when they are created. The following resource types support longer IDs: instance | reservation | snapshot | volume. This setting applies to the IAM user who makes the request; it does not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user. If you're using this action as the root user, then these settings apply to the entire account, unless an IAM user explicitly overrides these settings for themselves. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide. Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type. - public func modifyIdFormat(_ input: ModifyIdFormatRequest) throws { - _ = try client.send(operation: "ModifyIdFormat", path: "/", httpMethod: "POST", input: input) - } - /// Submits feedback about the status of an instance. The instance must be in the running state. If your experience with the instance differs from the instance status returned by DescribeInstanceStatus, use ReportInstanceStatus to report your experience with the instance. Amazon EC2 collects this information to improve the accuracy of status checks. Use of this action does not change the value returned by DescribeInstanceStatus. public func reportInstanceStatus(_ input: ReportInstanceStatusRequest) throws { _ = try client.send(operation: "ReportInstanceStatus", path: "/", httpMethod: "POST", input: input) } + /// Deletes one or more flow logs. + public func deleteFlowLogs(_ input: DeleteFlowLogsRequest) throws -> DeleteFlowLogsResult { + return try client.send(operation: "DeleteFlowLogs", path: "/", httpMethod: "POST", input: input) + } + /// Deletes the specified NAT gateway. Deleting a NAT gateway disassociates its Elastic IP address, but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway routes in your route tables. public func deleteNatGateway(_ input: DeleteNatGatewayRequest) throws -> DeleteNatGatewayResult { return try client.send(operation: "DeleteNatGateway", path: "/", httpMethod: "POST", input: input) @@ -458,7 +503,7 @@ public struct Ec2 { _ = try client.send(operation: "ResetNetworkInterfaceAttribute", path: "/", httpMethod: "POST", input: input) } - /// Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the pending-acceptance state, and you must be the owner of the peer VPC. Use DescribeVpcPeeringConnections to view your outstanding VPC peering connection requests. + /// Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the pending-acceptance state, and you must be the owner of the peer VPC. Use DescribeVpcPeeringConnections to view your outstanding VPC peering connection requests. For an inter-region VPC peering connection request, you must accept the VPC peering connection in the region of the accepter VPC. public func acceptVpcPeeringConnection(_ input: AcceptVpcPeeringConnectionRequest) throws -> AcceptVpcPeeringConnectionResult { return try client.send(operation: "AcceptVpcPeeringConnection", path: "/", httpMethod: "POST", input: input) } @@ -468,9 +513,9 @@ public struct Ec2 { return try client.send(operation: "DescribeFpgaImages", path: "/", httpMethod: "POST", input: input) } - /// Deletes one or more flow logs. - public func deleteFlowLogs(_ input: DeleteFlowLogsRequest) throws -> DeleteFlowLogsResult { - return try client.send(operation: "DeleteFlowLogs", path: "/", httpMethod: "POST", input: input) + /// Modifies the ID format for the specified resource on a per-region basis. You can specify that resources should receive longer IDs (17-character IDs) when they are created. The following resource types support longer IDs: instance | reservation | snapshot | volume. This setting applies to the IAM user who makes the request; it does not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user. If you're using this action as the root user, then these settings apply to the entire account, unless an IAM user explicitly overrides these settings for themselves. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide. Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type. + public func modifyIdFormat(_ input: ModifyIdFormatRequest) throws { + _ = try client.send(operation: "ModifyIdFormat", path: "/", httpMethod: "POST", input: input) } /// Describes one or more of your egress-only Internet gateways. @@ -483,7 +528,7 @@ public struct Ec2 { return try client.send(operation: "DescribeIdentityIdFormat", path: "/", httpMethod: "POST", input: input) } - /// Returns details about the values and term of your specified Convertible Reserved Instances. When a target configuration is specified, it returns information about whether the exchange is valid and can be performed. + /// Returns a quote and exchange information for exchanging one or more specified Convertible Reserved Instances for a new Convertible Reserved Instance. If the exchange cannot be performed, the reason is returned in the response. Use AcceptReservedInstancesExchangeQuote to perform the exchange. public func getReservedInstancesExchangeQuote(_ input: GetReservedInstancesExchangeQuoteRequest) throws -> GetReservedInstancesExchangeQuoteResult { return try client.send(operation: "GetReservedInstancesExchangeQuote", path: "/", httpMethod: "POST", input: input) } @@ -503,12 +548,12 @@ public struct Ec2 { return try client.send(operation: "AssociateAddress", path: "/", httpMethod: "POST", input: input) } - /// Gets the console output for the specified instance. Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface. Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output which is available for at least one hour after the most recent post. For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it. For Windows instances, the instance console output includes output from the EC2Config service. + /// Gets the console output for the specified instance. Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface. Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output, which is available for at least one hour after the most recent post. For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it. For Windows instances, the instance console output includes output from the EC2Config service. public func getConsoleOutput(_ input: GetConsoleOutputRequest) throws -> GetConsoleOutputResult { return try client.send(operation: "GetConsoleOutput", path: "/", httpMethod: "POST", input: input) } - /// Stops an Amazon EBS-backed instance. We don't charge hourly usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour. You can't start or stop Spot instances, and you can't stop instance store-backed instances. When you stop an instance, we shut it down. You can restart your instance at any time. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM. Stopping an instance is different to rebooting or terminating it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide. When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide. + /// Stops an Amazon EBS-backed instance. We don't charge usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. Every time you start your Windows instance, Amazon EC2 charges you for a full instance hour. If you stop and restart your Windows instance, a new instance hour begins and Amazon EC2 charges you for another full instance hour even if you are still within the same 60-minute period when it was stopped. Every time you start your Linux instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage. You can't start or stop Spot Instances, and you can't stop instance store-backed instances. When you stop an instance, we shut it down. You can restart your instance at any time. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM. Stopping an instance is different to rebooting or terminating it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide. When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide. public func stopInstances(_ input: StopInstancesRequest) throws -> StopInstancesResult { return try client.send(operation: "StopInstances", path: "/", httpMethod: "POST", input: input) } @@ -518,16 +563,36 @@ public struct Ec2 { return try client.send(operation: "PurchaseReservedInstancesOffering", path: "/", httpMethod: "POST", input: input) } + /// Describes the VPC endpoint connections to your VPC endpoint services, including any endpoints that are pending your acceptance. + public func describeVpcEndpointConnections(_ input: DescribeVpcEndpointConnectionsRequest) throws -> DescribeVpcEndpointConnectionsResult { + return try client.send(operation: "DescribeVpcEndpointConnections", path: "/", httpMethod: "POST", input: input) + } + /// Cancels a bundling operation for an instance store-backed Windows instance. public func cancelBundleTask(_ input: CancelBundleTaskRequest) throws -> CancelBundleTaskResult { return try client.send(operation: "CancelBundleTask", path: "/", httpMethod: "POST", input: input) } + /// Deletes one or more VPC endpoint service configurations in your account. Before you delete the endpoint service configuration, you must reject any Available or PendingAcceptance interface endpoint connections that are attached to the service. + public func deleteVpcEndpointServiceConfigurations(_ input: DeleteVpcEndpointServiceConfigurationsRequest) throws -> DeleteVpcEndpointServiceConfigurationsResult { + return try client.send(operation: "DeleteVpcEndpointServiceConfigurations", path: "/", httpMethod: "POST", input: input) + } + + /// Resets the specified attribute of the specified Amazon FPGA Image (AFI) to its default value. You can only reset the load permission attribute. + public func resetFpgaImageAttribute(_ input: ResetFpgaImageAttributeRequest) throws -> ResetFpgaImageAttributeResult { + return try client.send(operation: "ResetFpgaImageAttribute", path: "/", httpMethod: "POST", input: input) + } + /// Modifies a subnet attribute. You can only modify one attribute at a time. public func modifySubnetAttribute(_ input: ModifySubnetAttributeRequest) throws { _ = try client.send(operation: "ModifySubnetAttribute", path: "/", httpMethod: "POST", input: input) } + /// Deletes the specified Amazon FPGA Image (AFI). + public func deleteFpgaImage(_ input: DeleteFpgaImageRequest) throws -> DeleteFpgaImageResult { + return try client.send(operation: "DeleteFpgaImage", path: "/", httpMethod: "POST", input: input) + } + /// Assigns one or more IPv6 addresses to the specified network interface. You can specify one or more specific IPv6 addresses, or you can specify the number of IPv6 addresses to be automatically assigned from within the subnet's IPv6 CIDR block range. You can assign as many IPv6 addresses to a network interface as you can assign private IPv4 addresses, and the limit varies per instance type. For information, see IP Addresses Per Network Interface Per Instance Type in the Amazon Elastic Compute Cloud User Guide. public func assignIpv6Addresses(_ input: AssignIpv6AddressesRequest) throws -> AssignIpv6AddressesResult { return try client.send(operation: "AssignIpv6Addresses", path: "/", httpMethod: "POST", input: input) @@ -538,17 +603,27 @@ public struct Ec2 { _ = try client.send(operation: "DisableVgwRoutePropagation", path: "/", httpMethod: "POST", input: input) } + /// Describes the Elastic GPUs associated with your instances. For more information about Elastic GPUs, see Amazon EC2 Elastic GPUs. + public func describeElasticGpus(_ input: DescribeElasticGpusRequest) throws -> DescribeElasticGpusResult { + return try client.send(operation: "DescribeElasticGpus", path: "/", httpMethod: "POST", input: input) + } + /// Creates a network interface in the specified subnet. For more information about network interfaces, see Elastic Network Interfaces in the Amazon Virtual Private Cloud User Guide. public func createNetworkInterface(_ input: CreateNetworkInterfaceRequest) throws -> CreateNetworkInterfaceResult { return try client.send(operation: "CreateNetworkInterface", path: "/", httpMethod: "POST", input: input) } - /// Cancels the specified Spot fleet requests. After you cancel a Spot fleet request, the Spot fleet launches no new Spot instances. You must specify whether the Spot fleet should also terminate its Spot instances. If you terminate the instances, the Spot fleet request enters the cancelled_terminating state. Otherwise, the Spot fleet request enters the cancelled_running state and the instances continue to run until they are interrupted or you terminate them manually. + /// Cancels the specified Spot Fleet requests. After you cancel a Spot Fleet request, the Spot Fleet launches no new Spot Instances. You must specify whether the Spot Fleet should also terminate its Spot Instances. If you terminate the instances, the Spot Fleet request enters the cancelled_terminating state. Otherwise, the Spot Fleet request enters the cancelled_running state and the instances continue to run until they are interrupted or you terminate them manually. public func cancelSpotFleetRequests(_ input: CancelSpotFleetRequestsRequest) throws -> CancelSpotFleetRequestsResponse { return try client.send(operation: "CancelSpotFleetRequests", path: "/", httpMethod: "POST", input: input) } - /// Creates a VPC endpoint for a specified AWS service. An endpoint enables you to create a private connection between your VPC and another AWS service in your account. You can specify an endpoint policy to attach to the endpoint that will control access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. Use DescribeVpcEndpointServices to get a list of supported AWS services. + /// Creates a default subnet with a size /20 IPv4 CIDR block in the specified Availability Zone in your default VPC. You can have only one default subnet per Availability Zone. For more information, see Creating a Default Subnet in the Amazon Virtual Private Cloud User Guide. + public func createDefaultSubnet(_ input: CreateDefaultSubnetRequest) throws -> CreateDefaultSubnetResult { + return try client.send(operation: "CreateDefaultSubnet", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a VPC endpoint for a specified service. An endpoint enables you to create a private connection between your VPC and the service. The service may be provided by AWS, an AWS Marketplace partner, or another AWS account. For more information, see VPC Endpoints in the Amazon Virtual Private Cloud User Guide. A gateway endpoint serves as a target for a route in your route table for traffic destined for the AWS service. You can specify an endpoint policy to attach to the endpoint that will control access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. An interface endpoint is a network interface in your subnet that serves as an endpoint for communicating with the specified service. You can specify the subnets in which to create an endpoint, and the security groups to associate with the endpoint network interface. Use DescribeVpcEndpointServices to get a list of supported services. public func createVpcEndpoint(_ input: CreateVpcEndpointRequest) throws -> CreateVpcEndpointResult { return try client.send(operation: "CreateVpcEndpoint", path: "/", httpMethod: "POST", input: input) } @@ -573,7 +648,7 @@ public struct Ec2 { _ = try client.send(operation: "DeleteVpnConnectionRoute", path: "/", httpMethod: "POST", input: input) } - /// Creates a data feed for Spot instances, enabling you to view Spot instance usage logs. You can create one data feed per AWS account. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide. + /// Creates a data feed for Spot Instances, enabling you to view Spot Instance usage logs. You can create one data feed per AWS account. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide. public func createSpotDatafeedSubscription(_ input: CreateSpotDatafeedSubscriptionRequest) throws -> CreateSpotDatafeedSubscriptionResult { return try client.send(operation: "CreateSpotDatafeedSubscription", path: "/", httpMethod: "POST", input: input) } @@ -583,34 +658,34 @@ public struct Ec2 { return try client.send(operation: "ReplaceRouteTableAssociation", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more of your VPN customer gateways. For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. + /// Describes one or more of your VPN customer gateways. For more information about VPN customer gateways, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide. public func describeCustomerGateways(_ input: DescribeCustomerGatewaysRequest) throws -> DescribeCustomerGatewaysResult { return try client.send(operation: "DescribeCustomerGateways", path: "/", httpMethod: "POST", input: input) } + /// Describes one or more regions that are currently available to you. For a list of the regions supported by Amazon EC2, see Regions and Endpoints. + public func describeRegions(_ input: DescribeRegionsRequest) throws -> DescribeRegionsResult { + return try client.send(operation: "DescribeRegions", path: "/", httpMethod: "POST", input: input) + } + + /// Unassigns one or more IPv6 addresses from a network interface. + public func unassignIpv6Addresses(_ input: UnassignIpv6AddressesRequest) throws -> UnassignIpv6AddressesResult { + return try client.send(operation: "UnassignIpv6Addresses", path: "/", httpMethod: "POST", input: input) + } + /// Describes one or more of your Internet gateways. public func describeInternetGateways(_ input: DescribeInternetGatewaysRequest) throws -> DescribeInternetGatewaysResult { return try client.send(operation: "DescribeInternetGateways", path: "/", httpMethod: "POST", input: input) } - /// Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). To help you decide how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide. You can optionally request an Amazon-provided IPv6 CIDR block for the VPC. The IPv6 CIDR block uses a /56 prefix length, and is allocated from Amazon's pool of IPv6 addresses. You cannot choose the IPv6 range for your VPC. By default, each instance you launch in the VPC has the default DHCP options, which includes only a default DNS server that we provide (AmazonProvidedDNS). For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide. You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see Dedicated Instances in the Amazon Elastic Compute Cloud User Guide. - public func createVpc(_ input: CreateVpcRequest) throws -> CreateVpcResult { - return try client.send(operation: "CreateVpc", path: "/", httpMethod: "POST", input: input) - } - /// Rejects a VPC peering connection request. The VPC peering connection must be in the pending-acceptance state. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests. To delete an active VPC peering connection, or to delete a VPC peering connection request that you initiated, use DeleteVpcPeeringConnection. public func rejectVpcPeeringConnection(_ input: RejectVpcPeeringConnectionRequest) throws -> RejectVpcPeeringConnectionResult { return try client.send(operation: "RejectVpcPeeringConnection", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified virtual private gateway. We recommend that before you delete a virtual private gateway, you detach it from the VPC and delete the VPN connection. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network. - public func deleteVpnGateway(_ input: DeleteVpnGatewayRequest) throws { - _ = try client.send(operation: "DeleteVpnGateway", path: "/", httpMethod: "POST", input: input) - } - - /// Imports a disk into an EBS snapshot. - public func importSnapshot(_ input: ImportSnapshotRequest) throws -> ImportSnapshotResult { - return try client.send(operation: "ImportSnapshot", path: "/", httpMethod: "POST", input: input) + /// Creates an import instance task using metadata from the specified disk image. ImportInstance only supports single-volume VMs. To import multi-volume VMs, use ImportImage. For more information, see Importing a Virtual Machine Using the Amazon EC2 CLI. For information about the import manifest referenced by this API action, see VM Import Manifest. + public func importInstance(_ input: ImportInstanceRequest) throws -> ImportInstanceResult { + return try client.send(operation: "ImportInstance", path: "/", httpMethod: "POST", input: input) } /// Describes one or more of your linked EC2-Classic instances. This request only returns information about EC2-Classic instances linked to a VPC through ClassicLink; you cannot use this request to return information about other instances. @@ -628,24 +703,24 @@ public struct Ec2 { _ = try client.send(operation: "DeleteRouteTable", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more regions that are currently available to you. For a list of the regions supported by Amazon EC2, see Regions and Endpoints. - public func describeRegions(_ input: DescribeRegionsRequest) throws -> DescribeRegionsResult { - return try client.send(operation: "DescribeRegions", path: "/", httpMethod: "POST", input: input) + /// Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner must verify whether another user's instance is eligible for support. + public func confirmProductInstance(_ input: ConfirmProductInstanceRequest) throws -> ConfirmProductInstanceResult { + return try client.send(operation: "ConfirmProductInstance", path: "/", httpMethod: "POST", input: input) } - /// Creates an import instance task using metadata from the specified disk image. ImportInstance only supports single-volume VMs. To import multi-volume VMs, use ImportImage. For more information, see Importing a Virtual Machine Using the Amazon EC2 CLI. For information about the import manifest referenced by this API action, see VM Import Manifest. - public func importInstance(_ input: ImportInstanceRequest) throws -> ImportInstanceResult { - return try client.send(operation: "ImportInstance", path: "/", httpMethod: "POST", input: input) + /// Deletes the specified virtual private gateway. We recommend that before you delete a virtual private gateway, you detach it from the VPC and delete the VPN connection. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network. + public func deleteVpnGateway(_ input: DeleteVpnGatewayRequest) throws { + _ = try client.send(operation: "DeleteVpnGateway", path: "/", httpMethod: "POST", input: input) } - /// Unassigns one or more IPv6 addresses from a network interface. - public func unassignIpv6Addresses(_ input: UnassignIpv6AddressesRequest) throws -> UnassignIpv6AddressesResult { - return try client.send(operation: "UnassignIpv6Addresses", path: "/", httpMethod: "POST", input: input) + /// Imports a disk into an EBS snapshot. + public func importSnapshot(_ input: ImportSnapshotRequest) throws -> ImportSnapshotResult { + return try client.send(operation: "ImportSnapshot", path: "/", httpMethod: "POST", input: input) } - /// Accepts the Convertible Reserved Instance exchange quote described in the GetReservedInstancesExchangeQuote call. - public func acceptReservedInstancesExchangeQuote(_ input: AcceptReservedInstancesExchangeQuoteRequest) throws -> AcceptReservedInstancesExchangeQuoteResult { - return try client.send(operation: "AcceptReservedInstancesExchangeQuote", path: "/", httpMethod: "POST", input: input) + /// Describes one or more of the images (AMIs, AKIs, and ARIs) available to you. Images available to you include public images, private images that you own, and private images owned by other AWS accounts but for which you have explicit launch permissions. Deregistered images are included in the returned results for an unspecified interval after deregistration. + public func describeImages(_ input: DescribeImagesRequest) throws -> DescribeImagesResult { + return try client.send(operation: "DescribeImages", path: "/", httpMethod: "POST", input: input) } /// Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume. Failure to do so can result in the volume becoming stuck in the busy state while detaching. If this happens, detachment can be delayed indefinitely until you unmount the volume, force detachment, reboot the instance, or all three. If an EBS volume is the root device of an instance, it can't be detached while the instance is running. To detach the root volume, stop the instance first. When a volume with an AWS Marketplace product code is detached from an instance, the product code is no longer associated with the instance. For more information, see Detaching an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide. @@ -653,14 +728,14 @@ public struct Ec2 { return try client.send(operation: "DetachVolume", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more of the images (AMIs, AKIs, and ARIs) available to you. Images available to you include public images, private images that you own, and private images owned by other AWS accounts but for which you have explicit launch permissions. Deregistered images are included in the returned results for an unspecified interval after deregistration. - public func describeImages(_ input: DescribeImagesRequest) throws -> DescribeImagesResult { - return try client.send(operation: "DescribeImages", path: "/", httpMethod: "POST", input: input) + /// Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). To help you decide how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide. You can optionally request an Amazon-provided IPv6 CIDR block for the VPC. The IPv6 CIDR block uses a /56 prefix length, and is allocated from Amazon's pool of IPv6 addresses. You cannot choose the IPv6 range for your VPC. By default, each instance you launch in the VPC has the default DHCP options, which includes only a default DNS server that we provide (AmazonProvidedDNS). For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide. You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see Dedicated Instances in the Amazon Elastic Compute Cloud User Guide. + public func createVpc(_ input: CreateVpcRequest) throws -> CreateVpcResult { + return try client.send(operation: "CreateVpc", path: "/", httpMethod: "POST", input: input) } - /// Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner needs to verify whether another user's instance is eligible for support. - public func confirmProductInstance(_ input: ConfirmProductInstanceRequest) throws -> ConfirmProductInstanceResult { - return try client.send(operation: "ConfirmProductInstance", path: "/", httpMethod: "POST", input: input) + /// Accepts the Convertible Reserved Instance exchange quote described in the GetReservedInstancesExchangeQuote call. + public func acceptReservedInstancesExchangeQuote(_ input: AcceptReservedInstancesExchangeQuoteRequest) throws -> AcceptReservedInstancesExchangeQuoteResult { + return try client.send(operation: "AcceptReservedInstancesExchangeQuote", path: "/", httpMethod: "POST", input: input) } /// Describes the ClassicLink status of one or more VPCs. @@ -673,9 +748,9 @@ public struct Ec2 { return try client.send(operation: "DescribeReservedInstancesListings", path: "/", httpMethod: "POST", input: input) } - /// Resets permission settings for the specified snapshot. For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide. - public func resetSnapshotAttribute(_ input: ResetSnapshotAttributeRequest) throws { - _ = try client.send(operation: "ResetSnapshotAttribute", path: "/", httpMethod: "POST", input: input) + /// Creates a launch template. A launch template contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify a launch template instead of providing the launch parameters in the request. + public func createLaunchTemplate(_ input: CreateLaunchTemplateRequest) throws -> CreateLaunchTemplateResult { + return try client.send(operation: "CreateLaunchTemplate", path: "/", httpMethod: "POST", input: input) } /// Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time. For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide. @@ -683,6 +758,11 @@ public struct Ec2 { return try client.send(operation: "DescribeSnapshotAttribute", path: "/", httpMethod: "POST", input: input) } + /// Resets permission settings for the specified snapshot. For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide. + public func resetSnapshotAttribute(_ input: ResetSnapshotAttributeRequest) throws { + _ = try client.send(operation: "ResetSnapshotAttribute", path: "/", httpMethod: "POST", input: input) + } + /// Describes one or more of your VPC peering connections. public func describeVpcPeeringConnections(_ input: DescribeVpcPeeringConnectionsRequest) throws -> DescribeVpcPeeringConnectionsResult { return try client.send(operation: "DescribeVpcPeeringConnections", path: "/", httpMethod: "POST", input: input) @@ -708,41 +788,56 @@ public struct Ec2 { return try client.send(operation: "RunScheduledInstances", path: "/", httpMethod: "POST", input: input) } - /// Describes the status of one or more instances. By default, only running instances are described, unless specified otherwise. Instance status includes the following components: Status checks - Amazon EC2 performs status checks on running EC2 instances to identify hardware and software issues. For more information, see Status Checks for Your Instances and Troubleshooting Instances with Failed Status Checks in the Amazon Elastic Compute Cloud User Guide. Scheduled events - Amazon EC2 can schedule events (such as reboot, stop, or terminate) for your instances related to hardware issues, software updates, or system maintenance. For more information, see Scheduled Events for Your Instances in the Amazon Elastic Compute Cloud User Guide. Instance state - You can manage your instances from the moment you launch them through their termination. For more information, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide. + /// Describes one or more launch templates. + public func describeLaunchTemplates(_ input: DescribeLaunchTemplatesRequest) throws -> DescribeLaunchTemplatesResult { + return try client.send(operation: "DescribeLaunchTemplates", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the status of one or more instances. By default, only running instances are described, unless you specifically indicate to return the status of all instances. Instance status includes the following components: Status checks - Amazon EC2 performs status checks on running EC2 instances to identify hardware and software issues. For more information, see Status Checks for Your Instances and Troubleshooting Instances with Failed Status Checks in the Amazon Elastic Compute Cloud User Guide. Scheduled events - Amazon EC2 can schedule events (such as reboot, stop, or terminate) for your instances related to hardware issues, software updates, or system maintenance. For more information, see Scheduled Events for Your Instances in the Amazon Elastic Compute Cloud User Guide. Instance state - You can manage your instances from the moment you launch them through their termination. For more information, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide. public func describeInstanceStatus(_ input: DescribeInstanceStatusRequest) throws -> DescribeInstanceStatusResult { return try client.send(operation: "DescribeInstanceStatus", path: "/", httpMethod: "POST", input: input) } + /// Describes the permissions for your network interfaces. + public func describeNetworkInterfacePermissions(_ input: DescribeNetworkInterfacePermissionsRequest) throws -> DescribeNetworkInterfacePermissionsResult { + return try client.send(operation: "DescribeNetworkInterfacePermissions", path: "/", httpMethod: "POST", input: input) + } + /// Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC's route tables have existing routes for address ranges within the 10.0.0.0/8 IP address range, excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address ranges. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide. public func enableVpcClassicLink(_ input: EnableVpcClassicLinkRequest) throws -> EnableVpcClassicLinkResult { return try client.send(operation: "EnableVpcClassicLink", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified set of tags from the specified set of resources. This call is designed to follow a DescribeTags request. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide. + /// Deletes the specified set of tags from the specified set of resources. To list the current tags, use DescribeTags. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide. public func deleteTags(_ input: DeleteTagsRequest) throws { _ = try client.send(operation: "DeleteTags", path: "/", httpMethod: "POST", input: input) } - /// Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You must provide the Internet-routable IP address of the customer gateway's external interface. The IP address must be static and may be behind a device performing network address translation (NAT). For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN (in the 64512 - 65534 range). Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is reserved in the us-east-1 region, and 9059, which is reserved in the eu-west-1 region. For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. You cannot create more than one customer gateway with the same VPN type, IP address, and BGP ASN parameter values. If you run an identical request more than one time, the first request creates the customer gateway, and subsequent requests return information about the existing customer gateway. The subsequent requests do not create new customer gateway resources. + /// Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You must provide the Internet-routable IP address of the customer gateway's external interface. The IP address must be static and may be behind a device performing network address translation (NAT). For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN (in the 64512 - 65534 range). Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is reserved in the us-east-1 region, and 9059, which is reserved in the eu-west-1 region. For more information about VPN customer gateways, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide. You cannot create more than one customer gateway with the same VPN type, IP address, and BGP ASN parameter values. If you run an identical request more than one time, the first request creates the customer gateway, and subsequent requests return information about the existing customer gateway. The subsequent requests do not create new customer gateway resources. public func createCustomerGateway(_ input: CreateCustomerGatewayRequest) throws -> CreateCustomerGatewayResult { return try client.send(operation: "CreateCustomerGateway", path: "/", httpMethod: "POST", input: input) } - /// Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC. After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance. For more information, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide. - public func associateDhcpOptions(_ input: AssociateDhcpOptionsRequest) throws { - _ = try client.send(operation: "AssociateDhcpOptions", path: "/", httpMethod: "POST", input: input) - } - /// Describes one or more of your VPCs. public func describeVpcs(_ input: DescribeVpcsRequest) throws -> DescribeVpcsResult { return try client.send(operation: "DescribeVpcs", path: "/", httpMethod: "POST", input: input) } + /// Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC. After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance. For more information, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide. + public func associateDhcpOptions(_ input: AssociateDhcpOptionsRequest) throws { + _ = try client.send(operation: "AssociateDhcpOptions", path: "/", httpMethod: "POST", input: input) + } + /// Describes the specified EBS volumes. If you are describing a long list of volumes, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeVolumes request to retrieve the remaining results. For more information about EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide. public func describeVolumes(_ input: DescribeVolumesRequest) throws -> DescribeVolumesResult { return try client.send(operation: "DescribeVolumes", path: "/", httpMethod: "POST", input: input) } + /// Accepts one or more interface VPC endpoint connection requests to your VPC endpoint service. + public func acceptVpcEndpointConnections(_ input: AcceptVpcEndpointConnectionsRequest) throws -> AcceptVpcEndpointConnectionsResult { + return try client.send(operation: "AcceptVpcEndpointConnections", path: "/", httpMethod: "POST", input: input) + } + /// Creates an Internet gateway for use with a VPC. After creating the Internet gateway, you attach it to a VPC using AttachInternetGateway. For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide. public func createInternetGateway(_ input: CreateInternetGatewayRequest) throws -> CreateInternetGatewayResult { return try client.send(operation: "CreateInternetGateway", path: "/", httpMethod: "POST", input: input) @@ -793,9 +888,14 @@ public struct Ec2 { _ = try client.send(operation: "DisassociateRouteTable", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified VPN connection. If you're deleting the VPC and its associated components, we recommend that you detach the virtual private gateway from the VPC and delete the VPC before deleting the VPN connection. If you believe that the tunnel credentials for your VPN connection have been compromised, you can delete the VPN connection and create a new one that has new keys, without needing to delete the VPC or virtual private gateway. If you create a new VPN connection, you must reconfigure the customer gateway using the new configuration information returned with the new VPN connection ID. - public func deleteVpnConnection(_ input: DeleteVpnConnectionRequest) throws { - _ = try client.send(operation: "DeleteVpnConnection", path: "/", httpMethod: "POST", input: input) + /// Describes the principals (service consumers) that are permitted to discover your VPC endpoint service. + public func describeVpcEndpointServicePermissions(_ input: DescribeVpcEndpointServicePermissionsRequest) throws -> DescribeVpcEndpointServicePermissionsResult { + return try client.send(operation: "DescribeVpcEndpointServicePermissions", path: "/", httpMethod: "POST", input: input) + } + + /// Modifies the permissions for your VPC endpoint service. You can add or remove permissions for service consumers (IAM users, IAM roles, and AWS accounts) to discover your endpoint service. + public func modifyVpcEndpointServicePermissions(_ input: ModifyVpcEndpointServicePermissionsRequest) throws -> ModifyVpcEndpointServicePermissionsResult { + return try client.send(operation: "ModifyVpcEndpointServicePermissions", path: "/", httpMethod: "POST", input: input) } /// Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide. @@ -803,6 +903,11 @@ public struct Ec2 { return try client.send(operation: "CreateNetworkAcl", path: "/", httpMethod: "POST", input: input) } + /// Deletes the specified VPN connection. If you're deleting the VPC and its associated components, we recommend that you detach the virtual private gateway from the VPC and delete the VPC before deleting the VPN connection. If you believe that the tunnel credentials for your VPN connection have been compromised, you can delete the VPN connection and create a new one that has new keys, without needing to delete the VPC or virtual private gateway. If you create a new VPN connection, you must reconfigure the customer gateway using the new configuration information returned with the new VPN connection ID. + public func deleteVpnConnection(_ input: DeleteVpnConnectionRequest) throws { + _ = try client.send(operation: "DeleteVpnConnection", path: "/", httpMethod: "POST", input: input) + } + /// [IPv6 only] Creates an egress-only Internet gateway for your VPC. An egress-only Internet gateway is used to enable outbound communication over IPv6 from instances in your VPC to the Internet, and prevents hosts outside of your VPC from initiating an IPv6 connection with your instance. public func createEgressOnlyInternetGateway(_ input: CreateEgressOnlyInternetGatewayRequest) throws -> CreateEgressOnlyInternetGatewayResult { return try client.send(operation: "CreateEgressOnlyInternetGateway", path: "/", httpMethod: "POST", input: input) @@ -823,22 +928,22 @@ public struct Ec2 { return try client.send(operation: "CancelImportTask", path: "/", httpMethod: "POST", input: input) } - /// Reports the current modification status of EBS volumes. Current-generation EBS volumes support modification of attributes including type, size, and (for io1 volumes) IOPS provisioning while either attached to or detached from an instance. Following an action from the API or the console to modify a volume, the status of the modification may be modifying, optimizing, completed, or failed. If a volume has never been modified, then certain elements of the returned VolumeModification objects are null. You can also use CloudWatch Events to check the status of a modification to an EBS volume. For information about CloudWatch Events, see the Amazon CloudWatch Events User Guide. For more information, see Monitoring Volume Modifications". - public func describeVolumesModifications(_ input: DescribeVolumesModificationsRequest) throws -> DescribeVolumesModificationsResult { - return try client.send(operation: "DescribeVolumesModifications", path: "/", httpMethod: "POST", input: input) - } - /// Describes one or more of your network ACLs. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide. public func describeNetworkAcls(_ input: DescribeNetworkAclsRequest) throws -> DescribeNetworkAclsResult { return try client.send(operation: "DescribeNetworkAcls", path: "/", httpMethod: "POST", input: input) } - /// Describes the Spot instance requests that belong to your account. Spot instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide. You can use DescribeSpotInstanceRequests to find a running Spot instance by examining the response. If the status of the Spot instance is fulfilled, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to look for instances where the instance lifecycle is spot. Spot instance requests are deleted 4 hours after they are canceled and their instances are terminated. + /// Reports the current modification status of EBS volumes. Current-generation EBS volumes support modification of attributes including type, size, and (for io1 volumes) IOPS provisioning while either attached to or detached from an instance. Following an action from the API or the console to modify a volume, the status of the modification may be modifying, optimizing, completed, or failed. If a volume has never been modified, then certain elements of the returned VolumeModification objects are null. You can also use CloudWatch Events to check the status of a modification to an EBS volume. For information about CloudWatch Events, see the Amazon CloudWatch Events User Guide. For more information, see Monitoring Volume Modifications". + public func describeVolumesModifications(_ input: DescribeVolumesModificationsRequest) throws -> DescribeVolumesModificationsResult { + return try client.send(operation: "DescribeVolumesModifications", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the Spot Instance requests that belong to your account. Spot Instances are instances that Amazon EC2 launches when the Spot price that you specify exceeds the current Spot price. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide. You can use DescribeSpotInstanceRequests to find a running Spot Instance by examining the response. If the status of the Spot Instance is fulfilled, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to look for instances where the instance lifecycle is spot. Spot Instance requests are deleted 4 hours after they are canceled and their instances are terminated. public func describeSpotInstanceRequests(_ input: DescribeSpotInstanceRequestsRequest) throws -> DescribeSpotInstanceRequestsResult { return try client.send(operation: "DescribeSpotInstanceRequests", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified placement group. You must terminate all instances in the placement group before you can delete the placement group. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide. + /// Deletes the specified placement group. You must terminate all instances in the placement group before you can delete the placement group. For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide. public func deletePlacementGroup(_ input: DeletePlacementGroupRequest) throws { _ = try client.send(operation: "DeletePlacementGroup", path: "/", httpMethod: "POST", input: input) } @@ -858,11 +963,16 @@ public struct Ec2 { return try client.send(operation: "CopyImage", path: "/", httpMethod: "POST", input: input) } - /// Deletes one or more specified VPC endpoints. Deleting the endpoint also deletes the endpoint routes in the route tables that were associated with the endpoint. + /// Deletes one or more specified VPC endpoints. Deleting a gateway endpoint also deletes the endpoint routes in the route tables that were associated with the endpoint. Deleting an interface endpoint deletes the endpoint network interfaces. public func deleteVpcEndpoints(_ input: DeleteVpcEndpointsRequest) throws -> DeleteVpcEndpointsResult { return try client.send(operation: "DeleteVpcEndpoints", path: "/", httpMethod: "POST", input: input) } + /// Modifies the credit option for CPU usage on a running or stopped T2 instance. The credit options are standard and unlimited. For more information, see T2 Instances in the Amazon Elastic Compute Cloud User Guide. + public func modifyInstanceCreditSpecification(_ input: ModifyInstanceCreditSpecificationRequest) throws -> ModifyInstanceCreditSpecificationResult { + return try client.send(operation: "ModifyInstanceCreditSpecification", path: "/", httpMethod: "POST", input: input) + } + /// Cancels an active conversion task. The task can be the import of an instance or volume. The action removes all artifacts of the conversion, including a partially uploaded volume or instance. If the conversion is complete or is in the process of transferring the final disk image, the command fails and returns an exception. For more information, see Importing a Virtual Machine Using the Amazon EC2 CLI. public func cancelConversionTask(_ input: CancelConversionRequest) throws { _ = try client.send(operation: "CancelConversionTask", path: "/", httpMethod: "POST", input: input) @@ -878,11 +988,16 @@ public struct Ec2 { return try client.send(operation: "DetachClassicLinkVpc", path: "/", httpMethod: "POST", input: input) } - /// Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Standard Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type. For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide. + /// Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type. For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide. public func modifyReservedInstances(_ input: ModifyReservedInstancesRequest) throws -> ModifyReservedInstancesResult { return try client.send(operation: "ModifyReservedInstances", path: "/", httpMethod: "POST", input: input) } + /// Describes the specified attribute of the specified Amazon FPGA Image (AFI). + public func describeFpgaImageAttribute(_ input: DescribeFpgaImageAttributeRequest) throws -> DescribeFpgaImageAttributeResult { + return try client.send(operation: "DescribeFpgaImageAttribute", path: "/", httpMethod: "POST", input: input) + } + /// Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was potentially inconsistent. public func enableVolumeIO(_ input: EnableVolumeIORequest) throws { _ = try client.send(operation: "EnableVolumeIO", path: "/", httpMethod: "POST", input: input) @@ -898,11 +1013,16 @@ public struct Ec2 { return try client.send(operation: "CreateVolume", path: "/", httpMethod: "POST", input: input) } - /// Describes all supported AWS services that can be specified when creating a VPC endpoint. + /// Describes available services to which you can create a VPC endpoint. public func describeVpcEndpointServices(_ input: DescribeVpcEndpointServicesRequest) throws -> DescribeVpcEndpointServicesResult { return try client.send(operation: "DescribeVpcEndpointServices", path: "/", httpMethod: "POST", input: input) } + /// Deletes one or more VPC endpoint connection notifications. + public func deleteVpcEndpointConnectionNotifications(_ input: DeleteVpcEndpointConnectionNotificationsRequest) throws -> DeleteVpcEndpointConnectionNotificationsResult { + return try client.send(operation: "DeleteVpcEndpointConnectionNotifications", path: "/", httpMethod: "POST", input: input) + } + /// Resets an attribute of an instance to its default value. To reset the kernel or ramdisk, the instance must be in a stopped state. To reset the sourceDestCheck, the instance can be either running or stopped. The sourceDestCheck attribute controls whether source/destination checking is enabled. The default value is true, which means checking is enabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide. public func resetInstanceAttribute(_ input: ResetInstanceAttributeRequest) throws { _ = try client.send(operation: "ResetInstanceAttribute", path: "/", httpMethod: "POST", input: input) @@ -913,14 +1033,9 @@ public struct Ec2 { _ = try client.send(operation: "ModifyInstanceAttribute", path: "/", httpMethod: "POST", input: input) } - /// Creates one or more flow logs to capture IP traffic for a specific network interface, subnet, or VPC. Flow logs are delivered to a specified log group in Amazon CloudWatch Logs. If you specify a VPC or subnet in the request, a log stream is created in CloudWatch Logs for each network interface in the subnet or VPC. Log streams can include information about accepted and rejected traffic to a network interface. You can view the data in your log streams using Amazon CloudWatch Logs. In your request, you must also specify an IAM role that has permission to publish logs to CloudWatch Logs. - public func createFlowLogs(_ input: CreateFlowLogsRequest) throws -> CreateFlowLogsResult { - return try client.send(operation: "CreateFlowLogs", path: "/", httpMethod: "POST", input: input) - } - - /// Disassociates an Elastic IP address from the instance or network interface it's associated with. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error. - public func disassociateAddress(_ input: DisassociateAddressRequest) throws { - _ = try client.send(operation: "DisassociateAddress", path: "/", httpMethod: "POST", input: input) + /// Modifies a launch template. You can specify which version of the launch template to set as the default version. When launching an instance, the default version applies when a launch template version is not specified. + public func modifyLaunchTemplate(_ input: ModifyLaunchTemplateRequest) throws -> ModifyLaunchTemplateResult { + return try client.send(operation: "ModifyLaunchTemplate", path: "/", httpMethod: "POST", input: input) } /// Creates a security group. A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide. EC2-Classic: You can have up to 500 security groups. EC2-VPC: You can create up to 500 security groups per VPC. When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name. You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other. You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress. @@ -928,9 +1043,14 @@ public struct Ec2 { return try client.send(operation: "CreateSecurityGroup", path: "/", httpMethod: "POST", input: input) } - /// Assigns one or more secondary private IP addresses to the specified network interface. You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. AssignPrivateIpAddresses is available only in EC2-VPC. - public func assignPrivateIpAddresses(_ input: AssignPrivateIpAddressesRequest) throws { - _ = try client.send(operation: "AssignPrivateIpAddresses", path: "/", httpMethod: "POST", input: input) + /// Disassociates an Elastic IP address from the instance or network interface it's associated with. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error. + public func disassociateAddress(_ input: DisassociateAddressRequest) throws { + _ = try client.send(operation: "DisassociateAddress", path: "/", httpMethod: "POST", input: input) + } + + /// Creates one or more flow logs to capture IP traffic for a specific network interface, subnet, or VPC. Flow logs are delivered to a specified log group in Amazon CloudWatch Logs. If you specify a VPC or subnet in the request, a log stream is created in CloudWatch Logs for each network interface in the subnet or VPC. Log streams can include information about accepted and rejected traffic to a network interface. You can view the data in your log streams using Amazon CloudWatch Logs. In your request, you must also specify an IAM role that has permission to publish logs to CloudWatch Logs. + public func createFlowLogs(_ input: CreateFlowLogsRequest) throws -> CreateFlowLogsResult { + return try client.send(operation: "CreateFlowLogs", path: "/", httpMethod: "POST", input: input) } /// Describes a network interface attribute. You can specify only one attribute at a time. @@ -938,11 +1058,16 @@ public struct Ec2 { return try client.send(operation: "DescribeNetworkInterfaceAttribute", path: "/", httpMethod: "POST", input: input) } - /// Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances. This command does not delete the AMI. + /// Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances; however, it doesn't affect any instances that you've already launched from the AMI. You'll continue to incur usage costs for those instances until you terminate them. When you deregister an Amazon EBS-backed AMI, it doesn't affect the snapshot that was created for the root volume of the instance during the AMI creation process. When you deregister an instance store-backed AMI, it doesn't affect the files that you uploaded to Amazon S3 when you created the AMI. public func deregisterImage(_ input: DeregisterImageRequest) throws { _ = try client.send(operation: "DeregisterImage", path: "/", httpMethod: "POST", input: input) } + /// Assigns one or more secondary private IP addresses to the specified network interface. You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. AssignPrivateIpAddresses is available only in EC2-VPC. + public func assignPrivateIpAddresses(_ input: AssignPrivateIpAddressesRequest) throws { + _ = try client.send(operation: "AssignPrivateIpAddresses", path: "/", httpMethod: "POST", input: input) + } + /// Describes one or more of the Availability Zones that are available to you. The results include zones only for the region you're currently using. If there is an event impacting an Availability Zone, you can use this request to view the state and any provided message for that Availability Zone. For more information, see Regions and Availability Zones in the Amazon Elastic Compute Cloud User Guide. public func describeAvailabilityZones(_ input: DescribeAvailabilityZonesRequest) throws -> DescribeAvailabilityZonesResult { return try client.send(operation: "DescribeAvailabilityZones", path: "/", httpMethod: "POST", input: input) @@ -968,7 +1093,7 @@ public struct Ec2 { _ = try client.send(operation: "ModifyNetworkInterfaceAttribute", path: "/", httpMethod: "POST", input: input) } - /// [EC2-VPC only] Removes one or more egress rules from a security group for EC2-VPC. This action doesn't apply to security groups for use in EC2-Classic. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be revoked. Each rule consists of the protocol and the IPv4 or IPv6 CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur. + /// [EC2-VPC only] Removes one or more egress rules from a security group for EC2-VPC. This action doesn't apply to security groups for use in EC2-Classic. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly. Each rule consists of the protocol and the IPv4 or IPv6 CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not have to specify the description to revoke the rule. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur. public func revokeSecurityGroupEgress(_ input: RevokeSecurityGroupEgressRequest) throws { _ = try client.send(operation: "RevokeSecurityGroupEgress", path: "/", httpMethod: "POST", input: input) } @@ -978,14 +1103,19 @@ public struct Ec2 { _ = try client.send(operation: "DeleteInternetGateway", path: "/", httpMethod: "POST", input: input) } - /// Requests a VPC peering connection between two VPCs: a requester VPC that you own and a peer VPC with which to create the connection. The peer VPC can belong to another AWS account. The requester VPC and peer VPC cannot have overlapping CIDR blocks. The owner of the peer VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected. If you try to create a VPC peering connection between VPCs that have overlapping CIDR blocks, the VPC peering connection status goes to failed. + /// Requests a VPC peering connection between two VPCs: a requester VPC that you own and an accepter VPC with which to create the connection. The accepter VPC can belong to another AWS account and can be in a different region to the requester VPC. The requester VPC and accepter VPC cannot have overlapping CIDR blocks. The owner of the accepter VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected. If you create a VPC peering connection request between VPCs with overlapping CIDR blocks, the VPC peering connection has a status of failed. public func createVpcPeeringConnection(_ input: CreateVpcPeeringConnectionRequest) throws -> CreateVpcPeeringConnectionResult { return try client.send(operation: "CreateVpcPeeringConnection", path: "/", httpMethod: "POST", input: input) } - /// Attaches a network interface to an instance. - public func attachNetworkInterface(_ input: AttachNetworkInterfaceRequest) throws -> AttachNetworkInterfaceResult { - return try client.send(operation: "AttachNetworkInterface", path: "/", httpMethod: "POST", input: input) + /// Creates a VPC endpoint service configuration to which service consumers (AWS accounts, IAM users, and IAM roles) can connect. Service consumers can create an interface VPC endpoint to connect to your service. To create an endpoint service configuration, you must first create a Network Load Balancer for your service. For more information, see VPC Endpoint Services in the Amazon Virtual Private Cloud User Guide. + public func createVpcEndpointServiceConfiguration(_ input: CreateVpcEndpointServiceConfigurationRequest) throws -> CreateVpcEndpointServiceConfigurationResult { + return try client.send(operation: "CreateVpcEndpointServiceConfiguration", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the credit option for CPU usage of one or more of your T2 instances. The credit options are standard and unlimited. If you do not specify an instance ID, Amazon EC2 returns only the T2 instances with the unlimited credit option. If you specify one or more instance IDs, Amazon EC2 returns the credit option (standard or unlimited) of those instances. If you specify an instance ID that is not valid, such as an instance that is not a T2 instance, an error is returned. Recently terminated instances might appear in the returned results. This interval is usually less than one hour. If an Availability Zone is experiencing a service disruption and you specify instance IDs in the affected zone, or do not specify any instance IDs at all, the call fails. If you specify only instance IDs in an unaffected zone, the call works normally. For more information, see T2 Instances in the Amazon Elastic Compute Cloud User Guide. + public func describeInstanceCreditSpecifications(_ input: DescribeInstanceCreditSpecificationsRequest) throws -> DescribeInstanceCreditSpecificationsResult { + return try client.send(operation: "DescribeInstanceCreditSpecifications", path: "/", httpMethod: "POST", input: input) } /// Detaches a network interface from an instance. @@ -993,6 +1123,11 @@ public struct Ec2 { _ = try client.send(operation: "DetachNetworkInterface", path: "/", httpMethod: "POST", input: input) } + /// Attaches a network interface to an instance. + public func attachNetworkInterface(_ input: AttachNetworkInterfaceRequest) throws -> AttachNetworkInterfaceResult { + return try client.send(operation: "AttachNetworkInterface", path: "/", httpMethod: "POST", input: input) + } + /// Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name. Encrypted EBS volumes may only be attached to instances that support Amazon EBS encryption. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide. For a list of supported device names, see Attaching an EBS Volume to an Instance. Any device names that aren't reserved for instance store volumes can be used for EBS volumes. For more information, see Amazon EC2 Instance Store in the Amazon Elastic Compute Cloud User Guide. If a volume has an AWS Marketplace product code: The volume can be attached only to a stopped instance. AWS Marketplace product codes are copied from the volume to the instance. You must be subscribed to the product. The instance type and operating system of the instance must support the product. For example, you can't detach a volume from a Windows instance and attach it to a Linux instance. For an overview of the AWS Marketplace, see Introducing AWS Marketplace. For more information about EBS volumes, see Attaching Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide. public func attachVolume(_ input: AttachVolumeRequest) throws -> VolumeAttachment { return try client.send(operation: "AttachVolume", path: "/", httpMethod: "POST", input: input) @@ -1003,7 +1138,12 @@ public struct Ec2 { return try client.send(operation: "ModifyVpcPeeringConnectionOptions", path: "/", httpMethod: "POST", input: input) } - /// Creates a Spot fleet request. You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet. By default, the Spot fleet requests Spot instances in the Spot pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload. Alternatively, you can specify that the Spot fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot instances in your Spot fleet are in different Spot pools, you can improve the availability of your fleet. For more information, see Spot Fleet Requests in the Amazon Elastic Compute Cloud User Guide. + /// Describes the VPC endpoint service configurations in your account (your services). + public func describeVpcEndpointServiceConfigurations(_ input: DescribeVpcEndpointServiceConfigurationsRequest) throws -> DescribeVpcEndpointServiceConfigurationsResult { + return try client.send(operation: "DescribeVpcEndpointServiceConfigurations", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a Spot Fleet request. You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet. By default, the Spot Fleet requests Spot Instances in the Spot pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload. Alternatively, you can specify that the Spot Fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot Instances in your Spot Fleet are in different Spot pools, you can improve the availability of your fleet. You can specify tags for the Spot Instances. You cannot tag other resource types in a Spot Fleet request; only the instance resource type is supported. For more information, see Spot Fleet Requests in the Amazon Elastic Compute Cloud User Guide. public func requestSpotFleet(_ input: RequestSpotFleetRequest) throws -> RequestSpotFleetResponse { return try client.send(operation: "RequestSpotFleet", path: "/", httpMethod: "POST", input: input) } @@ -1013,7 +1153,7 @@ public struct Ec2 { return try client.send(operation: "MonitorInstances", path: "/", httpMethod: "POST", input: input) } - /// [EC2-VPC only] Adds one or more egress rules to a security group for use with a VPC. Specifically, this action permits instances to send traffic to one or more destination IPv4 or IPv6 CIDR address ranges, or to one or more destination security groups for the same VPC. This action doesn't apply to security groups for use in EC2-Classic. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide. For more information about security group limits, see Amazon VPC Limits. Each rule consists of the protocol (for example, TCP), plus either a CIDR range or a source group. For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes. Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur. + /// [EC2-VPC only] Adds one or more egress rules to a security group for use with a VPC. Specifically, this action permits instances to send traffic to one or more destination IPv4 or IPv6 CIDR address ranges, or to one or more destination security groups for the same VPC. This action doesn't apply to security groups for use in EC2-Classic. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide. For more information about security group limits, see Amazon VPC Limits. Each rule consists of the protocol (for example, TCP), plus either a CIDR range or a source group. For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes. You can optionally specify a description for the rule. Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur. public func authorizeSecurityGroupEgress(_ input: AuthorizeSecurityGroupEgressRequest) throws { _ = try client.send(operation: "AuthorizeSecurityGroupEgress", path: "/", httpMethod: "POST", input: input) } @@ -1048,7 +1188,7 @@ public struct Ec2 { return try client.send(operation: "PurchaseHostReservation", path: "/", httpMethod: "POST", input: input) } - /// Attaches a virtual private gateway to a VPC. You can attach one virtual private gateway to one VPC at a time. For more information, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. + /// Attaches a virtual private gateway to a VPC. You can attach one virtual private gateway to one VPC at a time. For more information, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide. public func attachVpnGateway(_ input: AttachVpnGatewayRequest) throws -> AttachVpnGatewayResult { return try client.send(operation: "AttachVpnGateway", path: "/", httpMethod: "POST", input: input) } @@ -1063,7 +1203,7 @@ public struct Ec2 { return try client.send(operation: "DisassociateIamInstanceProfile", path: "/", httpMethod: "POST", input: input) } - /// Modifies the specified Spot fleet request. While the Spot fleet request is being modified, it is in the modifying state. To scale up your Spot fleet, increase its target capacity. The Spot fleet launches the additional Spot instances according to the allocation strategy for the Spot fleet request. If the allocation strategy is lowestPrice, the Spot fleet launches instances using the Spot pool with the lowest price. If the allocation strategy is diversified, the Spot fleet distributes the instances across the Spot pools. To scale down your Spot fleet, decrease its target capacity. First, the Spot fleet cancels any open bids that exceed the new target capacity. You can request that the Spot fleet terminate Spot instances until the size of the fleet no longer exceeds the new target capacity. If the allocation strategy is lowestPrice, the Spot fleet terminates the instances with the highest price per unit. If the allocation strategy is diversified, the Spot fleet terminates instances across the Spot pools. Alternatively, you can request that the Spot fleet keep the fleet at its current size, but not replace any Spot instances that are interrupted or that you terminate manually. + /// Modifies the specified Spot Fleet request. While the Spot Fleet request is being modified, it is in the modifying state. To scale up your Spot Fleet, increase its target capacity. The Spot Fleet launches the additional Spot Instances according to the allocation strategy for the Spot Fleet request. If the allocation strategy is lowestPrice, the Spot Fleet launches instances using the Spot pool with the lowest price. If the allocation strategy is diversified, the Spot Fleet distributes the instances across the Spot pools. To scale down your Spot Fleet, decrease its target capacity. First, the Spot Fleet cancels any open requests that exceed the new target capacity. You can request that the Spot Fleet terminate Spot Instances until the size of the fleet no longer exceeds the new target capacity. If the allocation strategy is lowestPrice, the Spot Fleet terminates the instances with the highest price per unit. If the allocation strategy is diversified, the Spot Fleet terminates instances across the Spot pools. Alternatively, you can request that the Spot Fleet keep the fleet at its current size, but not replace any Spot Instances that are interrupted or that you terminate manually. If you are finished with your Spot Fleet for now, but will use it again later, you can set the target capacity to 0. public func modifySpotFleetRequest(_ input: ModifySpotFleetRequestRequest) throws -> ModifySpotFleetRequestResponse { return try client.send(operation: "ModifySpotFleetRequest", path: "/", httpMethod: "POST", input: input) } @@ -1078,9 +1218,9 @@ public struct Ec2 { return try client.send(operation: "ReplaceIamInstanceProfileAssociation", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more of your export tasks. - public func describeExportTasks(_ input: DescribeExportTasksRequest) throws -> DescribeExportTasksResult { - return try client.send(operation: "DescribeExportTasks", path: "/", httpMethod: "POST", input: input) + /// Describes one or more versions of a specified launch template. You can describe all versions, individual versions, or a range of versions. + public func describeLaunchTemplateVersions(_ input: DescribeLaunchTemplateVersionsRequest) throws -> DescribeLaunchTemplateVersionsResult { + return try client.send(operation: "DescribeLaunchTemplateVersions", path: "/", httpMethod: "POST", input: input) } /// Describes Reserved Instance offerings that are available for purchase. With Reserved Instances, you purchase the right to launch instances for a period of time. During that time period, you do not receive insufficient capacity errors, and you pay a lower usage rate than the rate charged for On-Demand instances for the actual time used. If you have listed your own Reserved Instances for sale in the Reserved Instance Marketplace, they will be excluded from these results. This is to ensure that you do not purchase your own Reserved Instances. For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide. @@ -1088,14 +1228,14 @@ public struct Ec2 { return try client.send(operation: "DescribeReservedInstancesOfferings", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more of your placement groups. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide. - public func describePlacementGroups(_ input: DescribePlacementGroupsRequest) throws -> DescribePlacementGroupsResult { - return try client.send(operation: "DescribePlacementGroups", path: "/", httpMethod: "POST", input: input) + /// Describes one or more of your export tasks. + public func describeExportTasks(_ input: DescribeExportTasksRequest) throws -> DescribeExportTasksResult { + return try client.send(operation: "DescribeExportTasks", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more of your Elastic IP addresses. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. - public func describeAddresses(_ input: DescribeAddressesRequest) throws -> DescribeAddressesResult { - return try client.send(operation: "DescribeAddresses", path: "/", httpMethod: "POST", input: input) + /// Describes one or more of your Dedicated Hosts. The results describe only the Dedicated Hosts in the region you're currently using. All listed instances consume capacity on your Dedicated Host. Dedicated Hosts that have recently been released will be listed with the state released. + public func describeHosts(_ input: DescribeHostsRequest) throws -> DescribeHostsResult { + return try client.send(operation: "DescribeHosts", path: "/", httpMethod: "POST", input: input) } /// When you no longer want to use an On-Demand Dedicated Host it can be released. On-Demand billing is stopped and the host goes into released state. The host ID of Dedicated Hosts that have been released can no longer be specified in another request, e.g., ModifyHosts. You must stop or terminate all instances on a host before it can be released. When Dedicated Hosts are released, it make take some time for them to stop counting toward your limit and you may receive capacity errors when trying to allocate new Dedicated hosts. Try waiting a few minutes, and then try again. Released hosts will still appear in a DescribeHosts response. @@ -1103,24 +1243,24 @@ public struct Ec2 { return try client.send(operation: "ReleaseHosts", path: "/", httpMethod: "POST", input: input) } - /// Describes the events for the specified Spot fleet request during the specified time. Spot fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event. - public func describeSpotFleetRequestHistory(_ input: DescribeSpotFleetRequestHistoryRequest) throws -> DescribeSpotFleetRequestHistoryResponse { - return try client.send(operation: "DescribeSpotFleetRequestHistory", path: "/", httpMethod: "POST", input: input) + /// Describes one or more of your placement groups. For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide. + public func describePlacementGroups(_ input: DescribePlacementGroupsRequest) throws -> DescribePlacementGroupsResult { + return try client.send(operation: "DescribePlacementGroups", path: "/", httpMethod: "POST", input: input) } - /// Describes your Spot fleet requests. Spot fleet requests are deleted 48 hours after they are canceled and their instances are terminated. + /// Describes your Spot Fleet requests. Spot Fleet requests are deleted 48 hours after they are canceled and their instances are terminated. public func describeSpotFleetRequests(_ input: DescribeSpotFleetRequestsRequest) throws -> DescribeSpotFleetRequestsResponse { return try client.send(operation: "DescribeSpotFleetRequests", path: "/", httpMethod: "POST", input: input) } - /// Finds available schedules that meet the specified criteria. You can search for an available schedule no more than 3 months in advance. You must meet the minimum required duration of 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours. After you find a schedule that meets your needs, call PurchaseScheduledInstances to purchase Scheduled Instances with that schedule. - public func describeScheduledInstanceAvailability(_ input: DescribeScheduledInstanceAvailabilityRequest) throws -> DescribeScheduledInstanceAvailabilityResult { - return try client.send(operation: "DescribeScheduledInstanceAvailability", path: "/", httpMethod: "POST", input: input) + /// Describes the events for the specified Spot Fleet request during the specified time. Spot Fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event. + public func describeSpotFleetRequestHistory(_ input: DescribeSpotFleetRequestHistoryRequest) throws -> DescribeSpotFleetRequestHistoryResponse { + return try client.send(operation: "DescribeSpotFleetRequestHistory", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more of your Dedicated Hosts. The results describe only the Dedicated Hosts in the region you're currently using. All listed instances consume capacity on your Dedicated Host. Dedicated Hosts that have recently been released will be listed with the state released. - public func describeHosts(_ input: DescribeHostsRequest) throws -> DescribeHostsResult { - return try client.send(operation: "DescribeHosts", path: "/", httpMethod: "POST", input: input) + /// Modifies the specified attribute of the specified Amazon FPGA Image (AFI). + public func modifyFpgaImageAttribute(_ input: ModifyFpgaImageAttributeRequest) throws -> ModifyFpgaImageAttributeResult { + return try client.send(operation: "ModifyFpgaImageAttribute", path: "/", httpMethod: "POST", input: input) } /// Associates a CIDR block with your subnet. You can only associate a single IPv6 CIDR block with your subnet. An IPv6 CIDR block must have a prefix length of /64. @@ -1128,9 +1268,29 @@ public struct Ec2 { return try client.send(operation: "AssociateSubnetCidrBlock", path: "/", httpMethod: "POST", input: input) } - /// Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only supported connection type is ipsec.1. The response includes information that you need to give to your network administrator to configure your customer gateway. We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway. If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call. This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error. For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. - public func createVpnConnection(_ input: CreateVpnConnectionRequest) throws -> CreateVpnConnectionResult { - return try client.send(operation: "CreateVpnConnection", path: "/", httpMethod: "POST", input: input) + /// Retrieves the configuration data of the specified instance. You can use this data to create a launch template. + public func getLaunchTemplateData(_ input: GetLaunchTemplateDataRequest) throws -> GetLaunchTemplateDataResult { + return try client.send(operation: "GetLaunchTemplateData", path: "/", httpMethod: "POST", input: input) + } + + /// Finds available schedules that meet the specified criteria. You can search for an available schedule no more than 3 months in advance. You must meet the minimum required duration of 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours. After you find a schedule that meets your needs, call PurchaseScheduledInstances to purchase Scheduled Instances with that schedule. + public func describeScheduledInstanceAvailability(_ input: DescribeScheduledInstanceAvailabilityRequest) throws -> DescribeScheduledInstanceAvailabilityResult { + return try client.send(operation: "DescribeScheduledInstanceAvailability", path: "/", httpMethod: "POST", input: input) + } + + /// Describes one or more of your Elastic IP addresses. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide. + public func describeAddresses(_ input: DescribeAddressesRequest) throws -> DescribeAddressesResult { + return try client.send(operation: "DescribeAddresses", path: "/", httpMethod: "POST", input: input) + } + + /// [EC2-VPC only] Updates the description of an egress (outbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously. You specify the description as part of the IP permissions structure. You can remove a description for a security group rule by omitting the description parameter in the request. + public func updateSecurityGroupRuleDescriptionsEgress(_ input: UpdateSecurityGroupRuleDescriptionsEgressRequest) throws -> UpdateSecurityGroupRuleDescriptionsEgressResult { + return try client.send(operation: "UpdateSecurityGroupRuleDescriptionsEgress", path: "/", httpMethod: "POST", input: input) + } + + /// Modifies the instance tenancy attribute of the specified VPC. You can change the instance tenancy attribute of a VPC to default only. You cannot change the instance tenancy attribute to dedicated. After you modify the tenancy of the VPC, any new instances that you launch into the VPC have a tenancy of default, unless you specify otherwise during launch. The tenancy of any existing instances in the VPC is not affected. For more information about Dedicated Instances, see Dedicated Instances in the Amazon Elastic Compute Cloud User Guide. + public func modifyVpcTenancy(_ input: ModifyVpcTenancyRequest) throws -> ModifyVpcTenancyResult { + return try client.send(operation: "ModifyVpcTenancy", path: "/", httpMethod: "POST", input: input) } /// Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete the default network ACL. @@ -1148,22 +1308,47 @@ public struct Ec2 { _ = try client.send(operation: "DeleteSubnet", path: "/", httpMethod: "POST", input: input) } + /// Describes the connection notifications for VPC endpoints and VPC endpoint services. + public func describeVpcEndpointConnectionNotifications(_ input: DescribeVpcEndpointConnectionNotificationsRequest) throws -> DescribeVpcEndpointConnectionNotificationsResult { + return try client.send(operation: "DescribeVpcEndpointConnectionNotifications", path: "/", httpMethod: "POST", input: input) + } + /// Retrieve a JPG-format screenshot of a running instance to help with troubleshooting. The returned content is Base64-encoded. public func getConsoleScreenshot(_ input: GetConsoleScreenshotRequest) throws -> GetConsoleScreenshotResult { return try client.send(operation: "GetConsoleScreenshot", path: "/", httpMethod: "POST", input: input) } + /// Creates a default VPC with a size /16 IPv4 CIDR block and a default subnet in each Availability Zone. For more information about the components of a default VPC, see Default VPC and Default Subnets in the Amazon Virtual Private Cloud User Guide. You cannot specify the components of the default VPC yourself. You can create a default VPC if you deleted your previous default VPC. You cannot have more than one default VPC per region. If your account supports EC2-Classic, you cannot use this action to create a default VPC in a region that supports EC2-Classic. If you want a default VPC in a region that supports EC2-Classic, see "I really want a default VPC for my existing EC2 account. Is that possible?" in the Default VPCs FAQ. + public func createDefaultVpc(_ input: CreateDefaultVpcRequest) throws -> CreateDefaultVpcResult { + return try client.send(operation: "CreateDefaultVpc", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a launch template. Deleting a launch template deletes all of its versions. + public func deleteLaunchTemplate(_ input: DeleteLaunchTemplateRequest) throws -> DeleteLaunchTemplateResult { + return try client.send(operation: "DeleteLaunchTemplate", path: "/", httpMethod: "POST", input: input) + } + /// Deletes the specified key pair, by removing the public key from Amazon EC2. public func deleteKeyPair(_ input: DeleteKeyPairRequest) throws { _ = try client.send(operation: "DeleteKeyPair", path: "/", httpMethod: "POST", input: input) } + /// Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only supported connection type is ipsec.1. The response includes information that you need to give to your network administrator to configure your customer gateway. We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway. If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call. This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error. For more information, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide. + public func createVpnConnection(_ input: CreateVpnConnectionRequest) throws -> CreateVpnConnectionResult { + return try client.send(operation: "CreateVpnConnection", path: "/", httpMethod: "POST", input: input) + } + /// Describes your import snapshot tasks. public func describeImportSnapshotTasks(_ input: DescribeImportSnapshotTasksRequest) throws -> DescribeImportSnapshotTasksResult { return try client.send(operation: "DescribeImportSnapshotTasks", path: "/", httpMethod: "POST", input: input) } - /// Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself. For more information about virtual private gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. + /// Modifies the attributes of your VPC endpoint service configuration. You can change the Network Load Balancers for your service, and you can specify whether acceptance is required for requests to connect to your endpoint service through an interface VPC endpoint. + public func modifyVpcEndpointServiceConfiguration(_ input: ModifyVpcEndpointServiceConfigurationRequest) throws -> ModifyVpcEndpointServiceConfigurationResult { + return try client.send(operation: "ModifyVpcEndpointServiceConfiguration", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself. For more information about virtual private gateways, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide. public func createVpnGateway(_ input: CreateVpnGatewayRequest) throws -> CreateVpnGatewayResult { return try client.send(operation: "CreateVpnGateway", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/ec2/Ec2_Shapes.swift b/Sources/AWSSDKSwift/Services/ec2/Ec2_Shapes.swift index 66a355be06c..32dc07adb1d 100644 --- a/Sources/AWSSDKSwift/Services/ec2/Ec2_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/ec2/Ec2_Shapes.swift @@ -5,8 +5,16 @@ import AWSSDKSwiftCore extension Ec2 { + public enum NetworkInterfaceStatus: String, CustomStringConvertible, Codable { + case available = "available" + case attaching = "attaching" + case inUse = "in-use" + case detaching = "detaching" + public var description: String { return self.rawValue } + } + public struct DescribeVpcClassicLinkResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Vpcs", location: .body(locationName: "vpcSet"), required: false, type: .structure) ] /// The ClassicLink status of one or more VPCs. @@ -22,7 +30,7 @@ extension Ec2 { } public struct GetConsoleScreenshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WakeUp", required: false, type: .boolean), AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "DryRun", required: false, type: .boolean) @@ -48,7 +56,7 @@ extension Ec2 { } public struct DescribeIamInstanceProfileAssociationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociationIds", location: .body(locationName: "AssociationId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -78,8 +86,39 @@ extension Ec2 { } } + public struct CreateVpcEndpointServiceConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NetworkLoadBalancerArns", location: .body(locationName: "NetworkLoadBalancerArn"), required: true, type: .structure), + AWSShapeMember(label: "ClientToken", required: false, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "AcceptanceRequired", required: false, type: .boolean) + ] + /// The Amazon Resource Names (ARNs) of one or more Network Load Balancers for your service. + public let networkLoadBalancerArns: ValueStringList + /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency. + public let clientToken: String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// Indicate whether requests from service consumers to create an endpoint to your service must be accepted. To accept a request, use AcceptVpcEndpointConnections. + public let acceptanceRequired: Bool? + + public init(networkLoadBalancerArns: ValueStringList, clientToken: String? = nil, dryRun: Bool? = nil, acceptanceRequired: Bool? = nil) { + self.networkLoadBalancerArns = networkLoadBalancerArns + self.clientToken = clientToken + self.dryRun = dryRun + self.acceptanceRequired = acceptanceRequired + } + + private enum CodingKeys: String, CodingKey { + case networkLoadBalancerArns = "NetworkLoadBalancerArn" + case clientToken = "ClientToken" + case dryRun = "DryRun" + case acceptanceRequired = "AcceptanceRequired" + } + } + public struct InstanceCountList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceCount]? @@ -93,6 +132,32 @@ extension Ec2 { } } + public struct DeleteLaunchTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateName", required: false, type: .string), + AWSShapeMember(label: "LaunchTemplateId", required: false, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// The name of the launch template. You must specify either the launch template ID or launch template name in the request. + public let launchTemplateName: String? + /// The ID of the launch template. You must specify either the launch template ID or launch template name in the request. + public let launchTemplateId: String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(launchTemplateName: String? = nil, launchTemplateId: String? = nil, dryRun: Bool? = nil) { + self.launchTemplateName = launchTemplateName + self.launchTemplateId = launchTemplateId + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateName = "LaunchTemplateName" + case launchTemplateId = "LaunchTemplateId" + case dryRun = "DryRun" + } + } + public enum MoveStatus: String, CustomStringConvertible, Codable { case movingtovpc = "movingToVpc" case restoringtoclassic = "restoringToClassic" @@ -100,7 +165,7 @@ extension Ec2 { } public struct DescribeInstanceAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: true, type: .string), AWSShapeMember(label: "Attribute", location: .body(locationName: "attribute"), required: true, type: .enum) @@ -126,7 +191,7 @@ extension Ec2 { } public struct BlobAttributeValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", location: .body(locationName: "value"), required: false, type: .blob) ] public let value: Data? @@ -140,8 +205,55 @@ extension Ec2 { } } + public struct ClassicLoadBalancersConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClassicLoadBalancers", location: .body(locationName: "classicLoadBalancers"), required: true, type: .structure) + ] + /// One or more Classic Load Balancers. + public let classicLoadBalancers: ClassicLoadBalancers + + public init(classicLoadBalancers: ClassicLoadBalancers) { + self.classicLoadBalancers = classicLoadBalancers + } + + private enum CodingKeys: String, CodingKey { + case classicLoadBalancers = "classicLoadBalancers" + } + } + + public struct LaunchTemplateBlockDeviceMappingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NoDevice", required: false, type: .string), + AWSShapeMember(label: "VirtualName", required: false, type: .string), + AWSShapeMember(label: "DeviceName", required: false, type: .string), + AWSShapeMember(label: "Ebs", required: false, type: .structure) + ] + /// Suppresses the specified device included in the block device mapping of the AMI. + public let noDevice: String? + /// The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. + public let virtualName: String? + /// The device name (for example, /dev/sdh or xvdh). + public let deviceName: String? + /// Parameters used to automatically set up EBS volumes when the instance is launched. + public let ebs: LaunchTemplateEbsBlockDeviceRequest? + + public init(noDevice: String? = nil, virtualName: String? = nil, deviceName: String? = nil, ebs: LaunchTemplateEbsBlockDeviceRequest? = nil) { + self.noDevice = noDevice + self.virtualName = virtualName + self.deviceName = deviceName + self.ebs = ebs + } + + private enum CodingKeys: String, CodingKey { + case noDevice = "NoDevice" + case virtualName = "VirtualName" + case deviceName = "DeviceName" + case ebs = "Ebs" + } + } + public struct ModifyVolumeAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VolumeId", required: true, type: .string), AWSShapeMember(label: "AutoEnableIO", required: false, type: .structure) @@ -171,6 +283,12 @@ extension Ec2 { public var description: String { return self.rawValue } } + public enum ArchitectureValues: String, CustomStringConvertible, Codable { + case i386 = "i386" + case x8664 = "x86_64" + public var description: String { return self.rawValue } + } + public enum TrafficType: String, CustomStringConvertible, Codable { case accept = "ACCEPT" case reject = "REJECT" @@ -178,14 +296,23 @@ extension Ec2 { public var description: String { return self.rawValue } } - public enum ArchitectureValues: String, CustomStringConvertible, Codable { - case i386 = "i386" - case x8664 = "x86_64" - public var description: String { return self.rawValue } + public struct LoadPermissionList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [LoadPermission]? + + public init(item: [LoadPermission]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } } public struct InternetGatewayAttachment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum) ] @@ -205,8 +332,13 @@ extension Ec2 { } } + public enum ConnectionNotificationType: String, CustomStringConvertible, Codable { + case topic = "Topic" + public var description: String { return self.rawValue } + } + public struct DescribeScheduledInstanceAvailabilityResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "ScheduledInstanceAvailabilitySet", location: .body(locationName: "scheduledInstanceAvailabilitySet"), required: false, type: .structure) ] @@ -227,7 +359,7 @@ extension Ec2 { } public struct RouteTableAssociationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [RouteTableAssociation]? @@ -242,7 +374,7 @@ extension Ec2 { } public struct DescribeAddressesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Addresses", location: .body(locationName: "addressesSet"), required: false, type: .structure) ] /// Information about one or more Elastic IP addresses. @@ -258,7 +390,7 @@ extension Ec2 { } public struct DescribeNatGatewaysResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NatGateways", location: .body(locationName: "natGatewaySet"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] @@ -279,7 +411,7 @@ extension Ec2 { } public struct CreateEgressOnlyInternetGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: true, type: .string), AWSShapeMember(label: "ClientToken", required: false, type: .string), AWSShapeMember(label: "DryRun", required: false, type: .boolean) @@ -305,7 +437,7 @@ extension Ec2 { } public struct ModifyVpcAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnableDnsSupport", required: false, type: .structure), AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), AWSShapeMember(label: "EnableDnsHostnames", required: false, type: .structure) @@ -330,26 +462,76 @@ extension Ec2 { } } + public struct ConnectionNotification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConnectionNotificationType", location: .body(locationName: "connectionNotificationType"), required: false, type: .enum), + AWSShapeMember(label: "ConnectionNotificationArn", location: .body(locationName: "connectionNotificationArn"), required: false, type: .string), + AWSShapeMember(label: "ConnectionNotificationId", location: .body(locationName: "connectionNotificationId"), required: false, type: .string), + AWSShapeMember(label: "ServiceId", location: .body(locationName: "serviceId"), required: false, type: .string), + AWSShapeMember(label: "VpcEndpointId", location: .body(locationName: "vpcEndpointId"), required: false, type: .string), + AWSShapeMember(label: "ConnectionEvents", location: .body(locationName: "connectionEvents"), required: false, type: .structure), + AWSShapeMember(label: "ConnectionNotificationState", location: .body(locationName: "connectionNotificationState"), required: false, type: .enum) + ] + /// The type of notification. + public let connectionNotificationType: ConnectionNotificationType? + /// The ARN of the SNS topic for the notification. + public let connectionNotificationArn: String? + /// The ID of the notification. + public let connectionNotificationId: String? + /// The ID of the endpoint service. + public let serviceId: String? + /// The ID of the VPC endpoint. + public let vpcEndpointId: String? + /// The events for the notification. Valid values are Accept, Connect, Delete, and Reject. + public let connectionEvents: ValueStringList? + /// The state of the notification. + public let connectionNotificationState: ConnectionNotificationState? + + public init(connectionNotificationType: ConnectionNotificationType? = nil, connectionNotificationArn: String? = nil, connectionNotificationId: String? = nil, serviceId: String? = nil, vpcEndpointId: String? = nil, connectionEvents: ValueStringList? = nil, connectionNotificationState: ConnectionNotificationState? = nil) { + self.connectionNotificationType = connectionNotificationType + self.connectionNotificationArn = connectionNotificationArn + self.connectionNotificationId = connectionNotificationId + self.serviceId = serviceId + self.vpcEndpointId = vpcEndpointId + self.connectionEvents = connectionEvents + self.connectionNotificationState = connectionNotificationState + } + + private enum CodingKeys: String, CodingKey { + case connectionNotificationType = "connectionNotificationType" + case connectionNotificationArn = "connectionNotificationArn" + case connectionNotificationId = "connectionNotificationId" + case serviceId = "serviceId" + case vpcEndpointId = "vpcEndpointId" + case connectionEvents = "connectionEvents" + case connectionNotificationState = "connectionNotificationState" + } + } + public struct CreateVpcPeeringConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PeerOwnerId", location: .body(locationName: "peerOwnerId"), required: false, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), + AWSShapeMember(label: "PeerRegion", required: false, type: .string), AWSShapeMember(label: "PeerVpcId", location: .body(locationName: "peerVpcId"), required: false, type: .string) ] - /// The AWS account ID of the owner of the peer VPC. Default: Your AWS account ID + /// The AWS account ID of the owner of the accepter VPC. Default: Your AWS account ID public let peerOwnerId: String? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// The ID of the requester VPC. + /// The ID of the requester VPC. You must specify this parameter in the request. public let vpcId: String? - /// The ID of the VPC with which you are creating the VPC peering connection. + /// The region code for the accepter VPC, if the accepter VPC is located in a region other than the region in which you make the request. Default: The region in which you make the request. + public let peerRegion: String? + /// The ID of the VPC with which you are creating the VPC peering connection. You must specify this parameter in the request. public let peerVpcId: String? - public init(peerOwnerId: String? = nil, dryRun: Bool? = nil, vpcId: String? = nil, peerVpcId: String? = nil) { + public init(peerOwnerId: String? = nil, dryRun: Bool? = nil, vpcId: String? = nil, peerRegion: String? = nil, peerVpcId: String? = nil) { self.peerOwnerId = peerOwnerId self.dryRun = dryRun self.vpcId = vpcId + self.peerRegion = peerRegion self.peerVpcId = peerVpcId } @@ -357,12 +539,13 @@ extension Ec2 { case peerOwnerId = "peerOwnerId" case dryRun = "dryRun" case vpcId = "vpcId" + case peerRegion = "PeerRegion" case peerVpcId = "peerVpcId" } } public struct Host: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), AWSShapeMember(label: "AutoPlacement", location: .body(locationName: "autoPlacement"), required: false, type: .enum), AWSShapeMember(label: "HostId", location: .body(locationName: "hostId"), required: false, type: .string), @@ -417,8 +600,39 @@ extension Ec2 { } } + public struct ModifyVpcEndpointConnectionNotificationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "ConnectionNotificationArn", required: false, type: .string), + AWSShapeMember(label: "ConnectionEvents", required: false, type: .structure), + AWSShapeMember(label: "ConnectionNotificationId", required: true, type: .string) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The ARN for the SNS topic for the notification. + public let connectionNotificationArn: String? + /// One or more events for the endpoint. Valid values are Accept, Connect, Delete, and Reject. + public let connectionEvents: ValueStringList? + /// The ID of the notification. + public let connectionNotificationId: String + + public init(dryRun: Bool? = nil, connectionNotificationArn: String? = nil, connectionEvents: ValueStringList? = nil, connectionNotificationId: String) { + self.dryRun = dryRun + self.connectionNotificationArn = connectionNotificationArn + self.connectionEvents = connectionEvents + self.connectionNotificationId = connectionNotificationId + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case connectionNotificationArn = "ConnectionNotificationArn" + case connectionEvents = "ConnectionEvents" + case connectionNotificationId = "ConnectionNotificationId" + } + } + public struct ReservedIntancesIds: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ReservedInstancesId]? @@ -432,8 +646,34 @@ extension Ec2 { } } + public struct VpcCidrBlockAssociation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: false, type: .string), + AWSShapeMember(label: "CidrBlockState", location: .body(locationName: "cidrBlockState"), required: false, type: .structure), + AWSShapeMember(label: "CidrBlock", location: .body(locationName: "cidrBlock"), required: false, type: .string) + ] + /// The association ID for the IPv4 CIDR block. + public let associationId: String? + /// Information about the state of the CIDR block. + public let cidrBlockState: VpcCidrBlockState? + /// The IPv4 CIDR block. + public let cidrBlock: String? + + public init(associationId: String? = nil, cidrBlockState: VpcCidrBlockState? = nil, cidrBlock: String? = nil) { + self.associationId = associationId + self.cidrBlockState = cidrBlockState + self.cidrBlock = cidrBlock + } + + private enum CodingKeys: String, CodingKey { + case associationId = "associationId" + case cidrBlockState = "cidrBlockState" + case cidrBlock = "cidrBlock" + } + } + public struct TargetReservationValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetConfiguration", location: .body(locationName: "targetConfiguration"), required: false, type: .structure), AWSShapeMember(label: "ReservationValue", location: .body(locationName: "reservationValue"), required: false, type: .structure) ] @@ -454,7 +694,7 @@ extension Ec2 { } public struct ImportKeyPairResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyFingerprint", location: .body(locationName: "keyFingerprint"), required: false, type: .string), AWSShapeMember(label: "KeyName", location: .body(locationName: "keyName"), required: false, type: .string) ] @@ -474,8 +714,29 @@ extension Ec2 { } } + public struct DeleteVpcEndpointServiceConfigurationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceIds", location: .body(locationName: "ServiceId"), required: true, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// The IDs of one or more services. + public let serviceIds: ValueStringList + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(serviceIds: ValueStringList, dryRun: Bool? = nil) { + self.serviceIds = serviceIds + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case serviceIds = "ServiceId" + case dryRun = "DryRun" + } + } + public struct SpotFleetRequestConfigSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [SpotFleetRequestConfig]? @@ -490,7 +751,7 @@ extension Ec2 { } public struct CancelSpotFleetRequestsErrorSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [CancelSpotFleetRequestsErrorItem]? @@ -505,7 +766,7 @@ extension Ec2 { } public struct DescribeSnapshotsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "Snapshots", location: .body(locationName: "snapshotSet"), required: false, type: .structure) ] @@ -526,7 +787,7 @@ extension Ec2 { } public struct DescribeInstanceStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "IncludeAllInstances", location: .body(locationName: "includeAllInstances"), required: false, type: .boolean), @@ -566,8 +827,59 @@ extension Ec2 { } } + public struct DescribeInstanceCreditSpecificationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: false, type: .structure), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// One or more filters. instance-id - The ID of the instance. + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The token to retrieve the next page of results. + public let nextToken: String? + /// One or more instance IDs. Default: Describes all your instances. Constraints: Maximum 1000 explicitly specified instance IDs. + public let instanceIds: InstanceIdStringList? + /// The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter in the same call. + public let maxResults: Int32? + + public init(filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, instanceIds: InstanceIdStringList? = nil, maxResults: Int32? = nil) { + self.filters = filters + self.dryRun = dryRun + self.nextToken = nextToken + self.instanceIds = instanceIds + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filter" + case dryRun = "DryRun" + case nextToken = "NextToken" + case instanceIds = "InstanceId" + case maxResults = "MaxResults" + } + } + + public struct VpcCidrBlockAssociationSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [VpcCidrBlockAssociation]? + + public init(item: [VpcCidrBlockAssociation]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct VolumeStatusItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Actions", location: .body(locationName: "actionsSet"), required: false, type: .structure), AWSShapeMember(label: "VolumeStatus", location: .body(locationName: "volumeStatus"), required: false, type: .structure), AWSShapeMember(label: "Events", location: .body(locationName: "eventsSet"), required: false, type: .structure), @@ -602,8 +914,29 @@ extension Ec2 { } } + public struct EnableVpcClassicLinkRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// The ID of the VPC. + public let vpcId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(vpcId: String, dryRun: Bool? = nil) { + self.vpcId = vpcId + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case vpcId = "vpcId" + case dryRun = "dryRun" + } + } + public struct CreateRouteTableResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RouteTable", location: .body(locationName: "routeTable"), required: false, type: .structure) ] /// Information about the route table. @@ -618,29 +951,34 @@ extension Ec2 { } } - public struct EnableVpcClassicLinkRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + public struct DeleteLaunchTemplateVersionsResponseSuccessItem: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateName", location: .body(locationName: "launchTemplateName"), required: false, type: .string), + AWSShapeMember(label: "LaunchTemplateId", location: .body(locationName: "launchTemplateId"), required: false, type: .string), + AWSShapeMember(label: "VersionNumber", location: .body(locationName: "versionNumber"), required: false, type: .long) ] - /// The ID of the VPC. - public let vpcId: String - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? + /// The name of the launch template. + public let launchTemplateName: String? + /// The ID of the launch template. + public let launchTemplateId: String? + /// The version number of the launch template. + public let versionNumber: Int64? - public init(vpcId: String, dryRun: Bool? = nil) { - self.vpcId = vpcId - self.dryRun = dryRun + public init(launchTemplateName: String? = nil, launchTemplateId: String? = nil, versionNumber: Int64? = nil) { + self.launchTemplateName = launchTemplateName + self.launchTemplateId = launchTemplateId + self.versionNumber = versionNumber } private enum CodingKeys: String, CodingKey { - case vpcId = "vpcId" - case dryRun = "dryRun" + case launchTemplateName = "launchTemplateName" + case launchTemplateId = "launchTemplateId" + case versionNumber = "versionNumber" } } public struct InstanceNetworkInterface: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), AWSShapeMember(label: "MacAddress", location: .body(locationName: "macAddress"), required: false, type: .string), @@ -725,39 +1063,39 @@ extension Ec2 { } } - public struct CreateNetworkInterfaceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NetworkInterface", location: .body(locationName: "networkInterface"), required: false, type: .structure) + public struct ReservedInstancesModificationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// Information about the network interface. - public let networkInterface: NetworkInterface? + public let item: [ReservedInstancesModification]? - public init(networkInterface: NetworkInterface? = nil) { - self.networkInterface = networkInterface + public init(item: [ReservedInstancesModification]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case networkInterface = "networkInterface" + case item = "item" } } - public struct ReservedInstancesModificationList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct CreateNetworkInterfaceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NetworkInterface", location: .body(locationName: "networkInterface"), required: false, type: .structure) ] - public let item: [ReservedInstancesModification]? + /// Information about the network interface. + public let networkInterface: NetworkInterface? - public init(item: [ReservedInstancesModification]? = nil) { - self.item = item + public init(networkInterface: NetworkInterface? = nil) { + self.networkInterface = networkInterface } private enum CodingKeys: String, CodingKey { - case item = "item" + case networkInterface = "networkInterface" } } public struct ResetInstanceAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: true, type: .string), AWSShapeMember(label: "Attribute", location: .body(locationName: "attribute"), required: true, type: .enum) @@ -782,24 +1120,107 @@ extension Ec2 { } } - public struct Monitoring: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum) + public struct DeleteLaunchTemplateResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplate", location: .body(locationName: "launchTemplate"), required: false, type: .structure) ] - /// Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled. - public let state: MonitoringState? + /// Information about the launch template. + public let launchTemplate: LaunchTemplate? - public init(state: MonitoringState? = nil) { - self.state = state + public init(launchTemplate: LaunchTemplate? = nil) { + self.launchTemplate = launchTemplate } private enum CodingKeys: String, CodingKey { - case state = "state" + case launchTemplate = "launchTemplate" } } - public struct RequestSpotLaunchSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DescribeLaunchTemplatesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateIds", location: .body(locationName: "LaunchTemplateId"), required: false, type: .structure), + AWSShapeMember(label: "LaunchTemplateNames", location: .body(locationName: "LaunchTemplateName"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// One or more launch template IDs. + public let launchTemplateIds: ValueStringList? + /// One or more launch template names. + public let launchTemplateNames: LaunchTemplateNameStringList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// One or more filters. create-time - The time the launch template was created. launch-template-name - The name of the launch template. + public let filters: FilterList? + /// The token to request the next page of results. + public let nextToken: String? + /// The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. + public let maxResults: Int32? + + public init(launchTemplateIds: ValueStringList? = nil, launchTemplateNames: LaunchTemplateNameStringList? = nil, dryRun: Bool? = nil, filters: FilterList? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.launchTemplateIds = launchTemplateIds + self.launchTemplateNames = launchTemplateNames + self.dryRun = dryRun + self.filters = filters + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateIds = "LaunchTemplateId" + case launchTemplateNames = "LaunchTemplateName" + case dryRun = "DryRun" + case filters = "Filter" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct Monitoring: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum) + ] + /// Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled. + public let state: MonitoringState? + + public init(state: MonitoringState? = nil) { + self.state = state + } + + private enum CodingKeys: String, CodingKey { + case state = "state" + } + } + + public struct AssociateVpcCidrBlockRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), + AWSShapeMember(label: "CidrBlock", required: false, type: .string), + AWSShapeMember(label: "AmazonProvidedIpv6CidrBlock", location: .body(locationName: "amazonProvidedIpv6CidrBlock"), required: false, type: .boolean) + ] + /// The ID of the VPC. + public let vpcId: String + /// An IPv4 CIDR block to associate with the VPC. + public let cidrBlock: String? + /// Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IPv6 addresses, or the size of the CIDR block. + public let amazonProvidedIpv6CidrBlock: Bool? + + public init(vpcId: String, cidrBlock: String? = nil, amazonProvidedIpv6CidrBlock: Bool? = nil) { + self.vpcId = vpcId + self.cidrBlock = cidrBlock + self.amazonProvidedIpv6CidrBlock = amazonProvidedIpv6CidrBlock + } + + private enum CodingKeys: String, CodingKey { + case vpcId = "vpcId" + case cidrBlock = "CidrBlock" + case amazonProvidedIpv6CidrBlock = "amazonProvidedIpv6CidrBlock" + } + } + + public struct RequestSpotLaunchSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "blockDeviceMapping"), required: false, type: .structure), AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "UserData", location: .body(locationName: "userData"), required: false, type: .string), @@ -817,7 +1238,7 @@ extension Ec2 { AWSShapeMember(label: "Placement", location: .body(locationName: "placement"), required: false, type: .structure), AWSShapeMember(label: "RamdiskId", location: .body(locationName: "ramdiskId"), required: false, type: .string) ] - /// One or more block device mapping entries. Although you can specify encrypted EBS volumes in this block device mapping for your Spot Instances, these volumes are not encrypted. + /// One or more block device mapping entries. You can't specify both a snapshot ID and an encryption value. This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status. public let blockDeviceMappings: BlockDeviceMappingList? /// The ID of the subnet in which to launch the instance. public let subnetId: String? @@ -889,29 +1310,59 @@ extension Ec2 { } } - public struct AssociateVpcCidrBlockRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), - AWSShapeMember(label: "AmazonProvidedIpv6CidrBlock", location: .body(locationName: "amazonProvidedIpv6CidrBlock"), required: false, type: .boolean) + public struct UnsuccessfulInstanceCreditSpecificationSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The ID of the VPC. - public let vpcId: String - /// Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IPv6 addresses, or the size of the CIDR block. - public let amazonProvidedIpv6CidrBlock: Bool? + public let item: [UnsuccessfulInstanceCreditSpecificationItem]? - public init(vpcId: String, amazonProvidedIpv6CidrBlock: Bool? = nil) { - self.vpcId = vpcId - self.amazonProvidedIpv6CidrBlock = amazonProvidedIpv6CidrBlock + public init(item: [UnsuccessfulInstanceCreditSpecificationItem]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case vpcId = "vpcId" - case amazonProvidedIpv6CidrBlock = "amazonProvidedIpv6CidrBlock" + case item = "item" + } + } + + public struct CreateNetworkInterfacePermissionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NetworkInterfaceId", required: true, type: .string), + AWSShapeMember(label: "AwsService", required: false, type: .string), + AWSShapeMember(label: "AwsAccountId", required: false, type: .string), + AWSShapeMember(label: "Permission", required: true, type: .enum), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// The ID of the network interface. + public let networkInterfaceId: String + /// The AWS service. Currently not supported. + public let awsService: String? + /// The AWS account ID. + public let awsAccountId: String? + /// The type of permission to grant. + public let permission: InterfacePermissionType + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(networkInterfaceId: String, awsService: String? = nil, awsAccountId: String? = nil, permission: InterfacePermissionType, dryRun: Bool? = nil) { + self.networkInterfaceId = networkInterfaceId + self.awsService = awsService + self.awsAccountId = awsAccountId + self.permission = permission + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case networkInterfaceId = "NetworkInterfaceId" + case awsService = "AwsService" + case awsAccountId = "AwsAccountId" + case permission = "Permission" + case dryRun = "DryRun" } } public struct ImageDiskContainer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .string), AWSShapeMember(label: "Format", required: false, type: .string), AWSShapeMember(label: "UserBucket", required: false, type: .structure), @@ -952,7 +1403,7 @@ extension Ec2 { } public struct PurchaseReservedInstancesOfferingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesOfferingId", required: true, type: .string), AWSShapeMember(label: "InstanceCount", required: true, type: .integer), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), @@ -982,8 +1433,45 @@ extension Ec2 { } } + public struct DeleteVpcEndpointConnectionNotificationsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure) + ] + /// Information about the notifications that could not be deleted successfully. + public let unsuccessful: UnsuccessfulItemSet? + + public init(unsuccessful: UnsuccessfulItemSet? = nil) { + self.unsuccessful = unsuccessful + } + + private enum CodingKeys: String, CodingKey { + case unsuccessful = "unsuccessful" + } + } + + public struct DescribeFpgaImagesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "FpgaImages", location: .body(locationName: "fpgaImageSet"), required: false, type: .structure) + ] + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + /// Information about one or more FPGA images. + public let fpgaImages: FpgaImageList? + + public init(nextToken: String? = nil, fpgaImages: FpgaImageList? = nil) { + self.nextToken = nextToken + self.fpgaImages = fpgaImages + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case fpgaImages = "fpgaImageSet" + } + } + public struct ReservedInstances: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecurringCharges", location: .body(locationName: "recurringCharges"), required: false, type: .structure), AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), AWSShapeMember(label: "UsagePrice", location: .body(locationName: "usagePrice"), required: false, type: .float), @@ -1083,29 +1571,8 @@ extension Ec2 { } } - public struct DescribeFpgaImagesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "FpgaImages", location: .body(locationName: "fpgaImageSet"), required: false, type: .structure) - ] - /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. - public let nextToken: String? - /// Information about one or more FPGA images. - public let fpgaImages: FpgaImageList? - - public init(nextToken: String? = nil, fpgaImages: FpgaImageList? = nil) { - self.nextToken = nextToken - self.fpgaImages = fpgaImages - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "nextToken" - case fpgaImages = "fpgaImageSet" - } - } - public struct NetworkInterfaceIpv6Address: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ipv6Address", location: .body(locationName: "ipv6Address"), required: false, type: .string) ] /// The IPv6 address. @@ -1121,7 +1588,7 @@ extension Ec2 { } public struct DescribeCustomerGatewaysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomerGatewayIds", location: .body(locationName: "CustomerGatewayId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -1147,7 +1614,7 @@ extension Ec2 { } public struct NetworkInterface: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), AWSShapeMember(label: "MacAddress", location: .body(locationName: "macAddress"), required: false, type: .string), @@ -1258,7 +1725,7 @@ extension Ec2 { } public struct VolumeModificationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VolumeModification]? @@ -1281,7 +1748,7 @@ extension Ec2 { } public struct Subnet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MapPublicIpOnLaunch", location: .body(locationName: "mapPublicIpOnLaunch"), required: false, type: .boolean), AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "DefaultForAz", location: .body(locationName: "defaultForAz"), required: false, type: .boolean), @@ -1347,10 +1814,10 @@ extension Ec2 { } public struct CancelSpotInstanceRequestsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CancelledSpotInstanceRequests", location: .body(locationName: "spotInstanceRequestSet"), required: false, type: .structure) ] - /// One or more Spot instance requests. + /// One or more Spot Instance requests. public let cancelledSpotInstanceRequests: CancelledSpotInstanceRequestList? public init(cancelledSpotInstanceRequests: CancelledSpotInstanceRequestList? = nil) { @@ -1363,7 +1830,7 @@ extension Ec2 { } public struct DhcpConfigurationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [DhcpConfiguration]? @@ -1378,7 +1845,7 @@ extension Ec2 { } public struct EnableVolumeIORequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeId", location: .body(locationName: "volumeId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -1399,7 +1866,7 @@ extension Ec2 { } public struct VolumeIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeId", required: false, type: .list) ] public let volumeId: [String]? @@ -1413,34 +1880,13 @@ extension Ec2 { } } - public struct AssociateSubnetCidrBlockResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), - AWSShapeMember(label: "Ipv6CidrBlockAssociation", location: .body(locationName: "ipv6CidrBlockAssociation"), required: false, type: .structure) - ] - /// The ID of the subnet. - public let subnetId: String? - /// Information about the IPv6 CIDR block association. - public let ipv6CidrBlockAssociation: SubnetIpv6CidrBlockAssociation? - - public init(subnetId: String? = nil, ipv6CidrBlockAssociation: SubnetIpv6CidrBlockAssociation? = nil) { - self.subnetId = subnetId - self.ipv6CidrBlockAssociation = ipv6CidrBlockAssociation - } - - private enum CodingKeys: String, CodingKey { - case subnetId = "subnetId" - case ipv6CidrBlockAssociation = "ipv6CidrBlockAssociation" - } - } - public struct EventInformation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSubType", location: .body(locationName: "eventSubType"), required: false, type: .string), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), AWSShapeMember(label: "EventDescription", location: .body(locationName: "eventDescription"), required: false, type: .string) ] - /// The event. The following are the error events. iamFleetRoleInvalid - The Spot fleet did not have the required permissions either to launch or terminate an instance. launchSpecTemporarilyBlacklisted - The configuration is not valid and several attempts to launch instances have failed. For more information, see the description of the event. spotFleetRequestConfigurationInvalid - The configuration is not valid. For more information, see the description of the event. spotInstanceCountLimitExceeded - You've reached the limit on the number of Spot instances that you can launch. The following are the fleetRequestChange events. active - The Spot fleet has been validated and Amazon EC2 is attempting to maintain the target number of running Spot instances. cancelled - The Spot fleet is canceled and has no running Spot instances. The Spot fleet will be deleted two days after its instances were terminated. cancelled_running - The Spot fleet is canceled and will not launch additional Spot instances, but its existing Spot instances continue to run until they are interrupted or terminated. cancelled_terminating - The Spot fleet is canceled and its Spot instances are terminating. expired - The Spot fleet request has expired. A subsequent event indicates that the instances were terminated, if the request was created with TerminateInstancesWithExpiration set. modify_in_progress - A request to modify the Spot fleet request was accepted and is in progress. modify_successful - The Spot fleet request was modified. price_update - The bid price for a launch configuration was adjusted because it was too high. This change is permanent. submitted - The Spot fleet request is being evaluated and Amazon EC2 is preparing to launch the target number of Spot instances. The following are the instanceChange events. launched - A bid was fulfilled and a new instance was launched. terminated - An instance was terminated by the user. + /// The event. The following are the error events: iamFleetRoleInvalid - The Spot Fleet did not have the required permissions either to launch or terminate an instance. launchSpecTemporarilyBlacklisted - The configuration is not valid and several attempts to launch instances have failed. For more information, see the description of the event. spotFleetRequestConfigurationInvalid - The configuration is not valid. For more information, see the description of the event. spotInstanceCountLimitExceeded - You've reached the limit on the number of Spot Instances that you can launch. The following are the fleetRequestChange events: active - The Spot Fleet has been validated and Amazon EC2 is attempting to maintain the target number of running Spot Instances. cancelled - The Spot Fleet is canceled and has no running Spot Instances. The Spot Fleet will be deleted two days after its instances were terminated. cancelled_running - The Spot Fleet is canceled and will not launch additional Spot Instances, but its existing Spot Instances continue to run until they are interrupted or terminated. cancelled_terminating - The Spot Fleet is canceled and its Spot Instances are terminating. expired - The Spot Fleet request has expired. A subsequent event indicates that the instances were terminated, if the request was created with TerminateInstancesWithExpiration set. modify_in_progress - A request to modify the Spot Fleet request was accepted and is in progress. modify_successful - The Spot Fleet request was modified. price_update - The price for a launch configuration was adjusted because it was too high. This change is permanent. submitted - The Spot Fleet request is being evaluated and Amazon EC2 is preparing to launch the target number of Spot Instances. The following are the instanceChange events: launched - A request was fulfilled and a new instance was launched. terminated - An instance was terminated by the user. The following are the Information events: launchSpecUnusable - The price in a launch specification is not valid because it is below the Spot price or the Spot price is above the On-Demand price. fleetProgressHalted - The price in every launch specification is not valid. A launch specification might become valid if the Spot price changes. public let eventSubType: String? /// The ID of the instance. This information is available only for instanceChange events. public let instanceId: String? @@ -1460,8 +1906,50 @@ extension Ec2 { } } + public struct UnsuccessfulInstanceCreditSpecificationItemError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .enum), + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + /// The error code. + public let code: UnsuccessfulInstanceCreditSpecificationErrorCode? + /// The applicable error message. + public let message: String? + + public init(code: UnsuccessfulInstanceCreditSpecificationErrorCode? = nil, message: String? = nil) { + self.code = code + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case code = "code" + case message = "message" + } + } + + public struct AssociateSubnetCidrBlockResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), + AWSShapeMember(label: "Ipv6CidrBlockAssociation", location: .body(locationName: "ipv6CidrBlockAssociation"), required: false, type: .structure) + ] + /// The ID of the subnet. + public let subnetId: String? + /// Information about the IPv6 CIDR block association. + public let ipv6CidrBlockAssociation: SubnetIpv6CidrBlockAssociation? + + public init(subnetId: String? = nil, ipv6CidrBlockAssociation: SubnetIpv6CidrBlockAssociation? = nil) { + self.subnetId = subnetId + self.ipv6CidrBlockAssociation = ipv6CidrBlockAssociation + } + + private enum CodingKeys: String, CodingKey { + case subnetId = "subnetId" + case ipv6CidrBlockAssociation = "ipv6CidrBlockAssociation" + } + } + public struct ProductCodeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ProductCode]? @@ -1476,7 +1964,7 @@ extension Ec2 { } public struct ExecutableByStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExecutableBy", required: false, type: .list) ] public let executableBy: [String]? @@ -1490,34 +1978,8 @@ extension Ec2 { } } - public struct DescribeSubnetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubnetIds", location: .body(locationName: "SubnetId"), required: false, type: .structure), - AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) - ] - /// One or more subnet IDs. Default: Describes all your subnets. - public let subnetIds: SubnetIdStringList? - /// One or more filters. availabilityZone - The Availability Zone for the subnet. You can also use availability-zone as the filter name. available-ip-address-count - The number of IPv4 addresses in the subnet that are available. cidrBlock - The IPv4 CIDR block of the subnet. The CIDR block you specify must exactly match the subnet's CIDR block for information to be returned for the subnet. You can also use cidr or cidr-block as the filter names. defaultForAz - Indicates whether this is the default subnet for the Availability Zone. You can also use default-for-az as the filter name. ipv6-cidr-block-association.ipv6-cidr-block - An IPv6 CIDR block associated with the subnet. ipv6-cidr-block-association.association-id - An association ID for an IPv6 CIDR block associated with the subnet. ipv6-cidr-block-association.state - The state of an IPv6 CIDR block associated with the subnet. state - The state of the subnet (pending | available). subnet-id - The ID of the subnet. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-id - The ID of the VPC for the subnet. - public let filters: FilterList? - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - - public init(subnetIds: SubnetIdStringList? = nil, filters: FilterList? = nil, dryRun: Bool? = nil) { - self.subnetIds = subnetIds - self.filters = filters - self.dryRun = dryRun - } - - private enum CodingKeys: String, CodingKey { - case subnetIds = "SubnetId" - case filters = "Filter" - case dryRun = "dryRun" - } - } - public struct DescribeTagsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure) ] @@ -1538,7 +2000,7 @@ extension Ec2 { } public struct AcceptReservedInstancesExchangeQuoteResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExchangeId", location: .body(locationName: "exchangeId"), required: false, type: .string) ] /// The ID of the successful exchange. @@ -1553,14 +2015,40 @@ extension Ec2 { } } + public struct DescribeSubnetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIds", location: .body(locationName: "SubnetId"), required: false, type: .structure), + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// One or more subnet IDs. Default: Describes all your subnets. + public let subnetIds: SubnetIdStringList? + /// One or more filters. availabilityZone - The Availability Zone for the subnet. You can also use availability-zone as the filter name. available-ip-address-count - The number of IPv4 addresses in the subnet that are available. cidrBlock - The IPv4 CIDR block of the subnet. The CIDR block you specify must exactly match the subnet's CIDR block for information to be returned for the subnet. You can also use cidr or cidr-block as the filter names. defaultForAz - Indicates whether this is the default subnet for the Availability Zone. You can also use default-for-az as the filter name. ipv6-cidr-block-association.ipv6-cidr-block - An IPv6 CIDR block associated with the subnet. ipv6-cidr-block-association.association-id - An association ID for an IPv6 CIDR block associated with the subnet. ipv6-cidr-block-association.state - The state of an IPv6 CIDR block associated with the subnet. state - The state of the subnet (pending | available). subnet-id - The ID of the subnet. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-id - The ID of the VPC for the subnet. + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(subnetIds: SubnetIdStringList? = nil, filters: FilterList? = nil, dryRun: Bool? = nil) { + self.subnetIds = subnetIds + self.filters = filters + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case subnetIds = "SubnetId" + case filters = "Filter" + case dryRun = "dryRun" + } + } + public struct DescribeNatGatewaysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filter", required: false, type: .structure), AWSShapeMember(label: "NatGatewayIds", location: .body(locationName: "NatGatewayId"), required: false, type: .structure), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// One or more filters. nat-gateway-id - The ID of the NAT gateway. state - The state of the NAT gateway (pending | failed | available | deleting | deleted). subnet-id - The ID of the subnet in which the NAT gateway resides. vpc-id - The ID of the VPC in which the NAT gateway resides. + /// One or more filters. nat-gateway-id - The ID of the NAT gateway. state - The state of the NAT gateway (pending | failed | available | deleting | deleted). subnet-id - The ID of the subnet in which the NAT gateway resides. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-id - The ID of the VPC in which the NAT gateway resides. public let filter: FilterList? /// One or more NAT gateway IDs. public let natGatewayIds: ValueStringList? @@ -1591,27 +2079,20 @@ extension Ec2 { public var description: String { return self.rawValue } } - public enum DatafeedSubscriptionState: String, CustomStringConvertible, Codable { - case active = "Active" - case inactive = "Inactive" - public var description: String { return self.rawValue } - } - public enum DomainType: String, CustomStringConvertible, Codable { case vpc = "vpc" case standard = "standard" public var description: String { return self.rawValue } } - public enum FlowLogsResourceType: String, CustomStringConvertible, Codable { - case vpc = "VPC" - case subnet = "Subnet" - case networkinterface = "NetworkInterface" + public enum DatafeedSubscriptionState: String, CustomStringConvertible, Codable { + case active = "Active" + case inactive = "Inactive" public var description: String { return self.rawValue } } public struct NetworkInterfacePrivateIpAddress: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Association", location: .body(locationName: "association"), required: false, type: .structure), AWSShapeMember(label: "PrivateDnsName", location: .body(locationName: "privateDnsName"), required: false, type: .string), AWSShapeMember(label: "Primary", location: .body(locationName: "primary"), required: false, type: .boolean), @@ -1641,8 +2122,15 @@ extension Ec2 { } } + public enum FlowLogsResourceType: String, CustomStringConvertible, Codable { + case vpc = "VPC" + case subnet = "Subnet" + case networkinterface = "NetworkInterface" + public var description: String { return self.rawValue } + } + public struct DescribeNetworkAclsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NetworkAcls", location: .body(locationName: "networkAclSet"), required: false, type: .structure) ] /// Information about one or more network ACLs. @@ -1658,7 +2146,7 @@ extension Ec2 { } public struct ReservedInstancesListing: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), AWSShapeMember(label: "PriceSchedules", location: .body(locationName: "priceSchedules"), required: false, type: .structure), AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), @@ -1719,7 +2207,7 @@ extension Ec2 { } public struct ReservedInstanceIdSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstanceId", required: false, type: .list) ] public let reservedInstanceId: [String]? @@ -1733,8 +2221,64 @@ extension Ec2 { } } + public struct LaunchTemplateInstanceNetworkInterfaceSpecificationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [LaunchTemplateInstanceNetworkInterfaceSpecification]? + + public init(item: [LaunchTemplateInstanceNetworkInterfaceSpecification]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct CopyFpgaImageRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceFpgaImageId", required: true, type: .string), + AWSShapeMember(label: "ClientToken", required: false, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "SourceRegion", required: true, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The ID of the source AFI. + public let sourceFpgaImageId: String + /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency. + public let clientToken: String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The region that contains the source AFI. + public let sourceRegion: String + /// The name for the new AFI. The default is the name of the source AFI. + public let name: String? + /// The description for the new AFI. + public let description: String? + + public init(sourceFpgaImageId: String, clientToken: String? = nil, dryRun: Bool? = nil, sourceRegion: String, name: String? = nil, description: String? = nil) { + self.sourceFpgaImageId = sourceFpgaImageId + self.clientToken = clientToken + self.dryRun = dryRun + self.sourceRegion = sourceRegion + self.name = name + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case sourceFpgaImageId = "SourceFpgaImageId" + case clientToken = "ClientToken" + case dryRun = "DryRun" + case sourceRegion = "SourceRegion" + case name = "Name" + case description = "Description" + } + } + public struct DeleteNetworkAclRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "NetworkAclId", location: .body(locationName: "networkAclId"), required: true, type: .string) ] @@ -1754,8 +2298,24 @@ extension Ec2 { } } + public struct CreateNetworkInterfacePermissionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InterfacePermission", location: .body(locationName: "interfacePermission"), required: false, type: .structure) + ] + /// Information about the permission for the network interface. + public let interfacePermission: NetworkInterfacePermission? + + public init(interfacePermission: NetworkInterfacePermission? = nil) { + self.interfacePermission = interfacePermission + } + + private enum CodingKeys: String, CodingKey { + case interfacePermission = "interfacePermission" + } + } + public struct DescribeConversionTaskList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ConversionTask]? @@ -1769,8 +2329,23 @@ extension Ec2 { } } + public struct ElasticGpuAssociationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [ElasticGpuAssociation]? + + public init(item: [ElasticGpuAssociation]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct AllocateHostsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoPlacement", location: .body(locationName: "autoPlacement"), required: false, type: .enum), AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: true, type: .string), @@ -1805,34 +2380,44 @@ extension Ec2 { } } - public struct DescribeVpcEndpointServicesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DryRun", required: false, type: .boolean), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) + public struct SpotMarketOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxPrice", required: false, type: .string), + AWSShapeMember(label: "BlockDurationMinutes", required: false, type: .integer), + AWSShapeMember(label: "ValidUntil", required: false, type: .timestamp), + AWSShapeMember(label: "InstanceInterruptionBehavior", required: false, type: .enum), + AWSShapeMember(label: "SpotInstanceType", required: false, type: .enum) ] - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// The token for the next set of items to return. (You received this token from a prior call.) - public let nextToken: String? - /// The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. Constraint: If the value is greater than 1000, we return only 1000 items. - public let maxResults: Int32? + /// The maximum hourly price you're willing to pay for the Spot Instances. The default is the On-Demand price. + public let maxPrice: String? + /// The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). + public let blockDurationMinutes: Int32? + /// The end date of the request. For a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached. The default end date is 7 days from the current date. + public let validUntil: TimeStamp? + /// The behavior when a Spot Instance is interrupted. The default is terminate. + public let instanceInterruptionBehavior: InstanceInterruptionBehavior? + /// The Spot Instance request type. + public let spotInstanceType: SpotInstanceType? - public init(dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { - self.dryRun = dryRun - self.nextToken = nextToken - self.maxResults = maxResults + public init(maxPrice: String? = nil, blockDurationMinutes: Int32? = nil, validUntil: TimeStamp? = nil, instanceInterruptionBehavior: InstanceInterruptionBehavior? = nil, spotInstanceType: SpotInstanceType? = nil) { + self.maxPrice = maxPrice + self.blockDurationMinutes = blockDurationMinutes + self.validUntil = validUntil + self.instanceInterruptionBehavior = instanceInterruptionBehavior + self.spotInstanceType = spotInstanceType } private enum CodingKeys: String, CodingKey { - case dryRun = "DryRun" - case nextToken = "NextToken" - case maxResults = "MaxResults" + case maxPrice = "MaxPrice" + case blockDurationMinutes = "BlockDurationMinutes" + case validUntil = "ValidUntil" + case instanceInterruptionBehavior = "InstanceInterruptionBehavior" + case spotInstanceType = "SpotInstanceType" } } public struct UnassignIpv6AddressesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ipv6Addresses", location: .body(locationName: "ipv6Addresses"), required: true, type: .structure), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: true, type: .string) ] @@ -1852,8 +2437,111 @@ extension Ec2 { } } + public struct LaunchTemplate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateId", location: .body(locationName: "launchTemplateId"), required: false, type: .string), + AWSShapeMember(label: "LatestVersionNumber", location: .body(locationName: "latestVersionNumber"), required: false, type: .long), + AWSShapeMember(label: "LaunchTemplateName", location: .body(locationName: "launchTemplateName"), required: false, type: .string), + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), + AWSShapeMember(label: "DefaultVersionNumber", location: .body(locationName: "defaultVersionNumber"), required: false, type: .long), + AWSShapeMember(label: "CreateTime", location: .body(locationName: "createTime"), required: false, type: .timestamp), + AWSShapeMember(label: "CreatedBy", location: .body(locationName: "createdBy"), required: false, type: .string) + ] + /// The ID of the launch template. + public let launchTemplateId: String? + /// The version number of the latest version of the launch template. + public let latestVersionNumber: Int64? + /// The name of the launch template. + public let launchTemplateName: String? + /// The tags for the launch template. + public let tags: TagList? + /// The version number of the default version of the launch template. + public let defaultVersionNumber: Int64? + /// The time launch template was created. + public let createTime: TimeStamp? + /// The principal that created the launch template. + public let createdBy: String? + + public init(launchTemplateId: String? = nil, latestVersionNumber: Int64? = nil, launchTemplateName: String? = nil, tags: TagList? = nil, defaultVersionNumber: Int64? = nil, createTime: TimeStamp? = nil, createdBy: String? = nil) { + self.launchTemplateId = launchTemplateId + self.latestVersionNumber = latestVersionNumber + self.launchTemplateName = launchTemplateName + self.tags = tags + self.defaultVersionNumber = defaultVersionNumber + self.createTime = createTime + self.createdBy = createdBy + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateId = "launchTemplateId" + case latestVersionNumber = "latestVersionNumber" + case launchTemplateName = "launchTemplateName" + case tags = "tagSet" + case defaultVersionNumber = "defaultVersionNumber" + case createTime = "createTime" + case createdBy = "createdBy" + } + } + + public struct DescribeVpcEndpointConnectionNotificationsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "ConnectionNotificationSet", location: .body(locationName: "connectionNotificationSet"), required: false, type: .structure) + ] + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + /// One or more notifications. + public let connectionNotificationSet: ConnectionNotificationSet? + + public init(nextToken: String? = nil, connectionNotificationSet: ConnectionNotificationSet? = nil) { + self.nextToken = nextToken + self.connectionNotificationSet = connectionNotificationSet + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case connectionNotificationSet = "connectionNotificationSet" + } + } + + public struct DescribeVpcEndpointServicesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ServiceNames", location: .body(locationName: "ServiceName"), required: false, type: .structure), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// One or more filters. service-name: The name of the service. + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The token for the next set of items to return. (You received this token from a prior call.) + public let nextToken: String? + /// One or more service names. + public let serviceNames: ValueStringList? + /// The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. Constraint: If the value is greater than 1000, we return only 1000 items. + public let maxResults: Int32? + + public init(filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, serviceNames: ValueStringList? = nil, maxResults: Int32? = nil) { + self.filters = filters + self.dryRun = dryRun + self.nextToken = nextToken + self.serviceNames = serviceNames + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filter" + case dryRun = "DryRun" + case nextToken = "NextToken" + case serviceNames = "ServiceName" + case maxResults = "MaxResults" + } + } + public struct BundleInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BundleTask", location: .body(locationName: "bundleInstanceTask"), required: false, type: .structure) ] /// Information about the bundle task. @@ -1869,7 +2557,7 @@ extension Ec2 { } public struct DeletePlacementGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: true, type: .string) ] @@ -1890,23 +2578,28 @@ extension Ec2 { } public struct PrefixListId: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PrefixListId", location: .body(locationName: "prefixListId"), required: false, type: .string) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PrefixListId", location: .body(locationName: "prefixListId"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) ] /// The ID of the prefix. public let prefixListId: String? + /// A description for the security group rule that references this prefix list ID. Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* + public let description: String? - public init(prefixListId: String? = nil) { + public init(prefixListId: String? = nil, description: String? = nil) { self.prefixListId = prefixListId + self.description = description } private enum CodingKeys: String, CodingKey { case prefixListId = "prefixListId" + case description = "description" } } public struct PeeringConnectionOptionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AllowEgressFromLocalVpcToRemoteClassicLink", required: false, type: .boolean), AWSShapeMember(label: "AllowEgressFromLocalClassicLinkToRemoteVpc", required: false, type: .boolean), AWSShapeMember(label: "AllowDnsResolutionFromRemoteVpc", required: false, type: .boolean) @@ -1932,7 +2625,7 @@ extension Ec2 { } public struct AccountAttributeValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeValue", location: .body(locationName: "attributeValue"), required: false, type: .string) ] /// The value of the attribute. @@ -1948,7 +2641,7 @@ extension Ec2 { } public struct PurchaseScheduledInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PurchaseRequests", location: .body(locationName: "PurchaseRequest"), required: true, type: .structure), AWSShapeMember(label: "ClientToken", required: false, type: .string), AWSShapeMember(label: "DryRun", required: false, type: .boolean) @@ -1974,7 +2667,7 @@ extension Ec2 { } public struct DescribeHostReservationOfferingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxDuration", required: false, type: .integer), AWSShapeMember(label: "MinDuration", required: false, type: .integer), AWSShapeMember(label: "Filter", required: false, type: .structure), @@ -2014,8 +2707,34 @@ extension Ec2 { } } + public struct ModifyInstanceCreditSpecificationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "InstanceCreditSpecifications", location: .body(locationName: "InstanceCreditSpecification"), required: true, type: .structure), + AWSShapeMember(label: "ClientToken", required: false, type: .string) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// Information about the credit option for CPU usage. + public let instanceCreditSpecifications: InstanceCreditSpecificationListRequest + /// A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency. + public let clientToken: String? + + public init(dryRun: Bool? = nil, instanceCreditSpecifications: InstanceCreditSpecificationListRequest, clientToken: String? = nil) { + self.dryRun = dryRun + self.instanceCreditSpecifications = instanceCreditSpecifications + self.clientToken = clientToken + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case instanceCreditSpecifications = "InstanceCreditSpecification" + case clientToken = "ClientToken" + } + } + public struct StopInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StoppingInstances", location: .body(locationName: "instancesSet"), required: false, type: .structure) ] /// Information about one or more stopped instances. @@ -2031,7 +2750,7 @@ extension Ec2 { } public struct OccurrenceDaySet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Int32]? @@ -2046,7 +2765,7 @@ extension Ec2 { } public struct DescribeScheduledInstanceAvailabilityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FirstSlotStartTimeRange", required: true, type: .structure), AWSShapeMember(label: "MinSlotDurationInHours", required: false, type: .integer), AWSShapeMember(label: "MaxSlotDurationInHours", required: false, type: .integer), @@ -2096,45 +2815,29 @@ extension Ec2 { } } - public struct ReservedInstancesModificationResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReservedInstancesId", location: .body(locationName: "reservedInstancesId"), required: false, type: .string), - AWSShapeMember(label: "TargetConfiguration", location: .body(locationName: "targetConfiguration"), required: false, type: .structure) - ] - /// The ID for the Reserved Instances that were created as part of the modification request. This field is only available when the modification is fulfilled. - public let reservedInstancesId: String? - /// The target Reserved Instances configurations supplied as part of the modification request. - public let targetConfiguration: ReservedInstancesConfiguration? - - public init(reservedInstancesId: String? = nil, targetConfiguration: ReservedInstancesConfiguration? = nil) { - self.reservedInstancesId = reservedInstancesId - self.targetConfiguration = targetConfiguration - } - - private enum CodingKeys: String, CodingKey { - case reservedInstancesId = "reservedInstancesId" - case targetConfiguration = "targetConfiguration" - } - } - - public struct EnableVpcClassicLinkDnsSupportResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + public struct InstanceMarketOptionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SpotOptions", required: false, type: .structure), + AWSShapeMember(label: "MarketType", required: false, type: .enum) ] - /// Returns true if the request succeeds; otherwise, it returns an error. - public let `return`: Bool? + /// The options for Spot Instances. + public let spotOptions: SpotMarketOptions? + /// The market type. + public let marketType: MarketType? - public init(return: Bool? = nil) { - self.`return` = `return` + public init(spotOptions: SpotMarketOptions? = nil, marketType: MarketType? = nil) { + self.spotOptions = spotOptions + self.marketType = marketType } private enum CodingKeys: String, CodingKey { - case `return` = "return" + case spotOptions = "SpotOptions" + case marketType = "MarketType" } } public struct ImportVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Image", location: .body(locationName: "image"), required: true, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Volume", location: .body(locationName: "volume"), required: true, type: .structure), @@ -2169,8 +2872,45 @@ extension Ec2 { } } + public struct ReservedInstancesModificationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedInstancesId", location: .body(locationName: "reservedInstancesId"), required: false, type: .string), + AWSShapeMember(label: "TargetConfiguration", location: .body(locationName: "targetConfiguration"), required: false, type: .structure) + ] + /// The ID for the Reserved Instances that were created as part of the modification request. This field is only available when the modification is fulfilled. + public let reservedInstancesId: String? + /// The target Reserved Instances configurations supplied as part of the modification request. + public let targetConfiguration: ReservedInstancesConfiguration? + + public init(reservedInstancesId: String? = nil, targetConfiguration: ReservedInstancesConfiguration? = nil) { + self.reservedInstancesId = reservedInstancesId + self.targetConfiguration = targetConfiguration + } + + private enum CodingKeys: String, CodingKey { + case reservedInstancesId = "reservedInstancesId" + case targetConfiguration = "targetConfiguration" + } + } + + public struct EnableVpcClassicLinkDnsSupportResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// Returns true if the request succeeds; otherwise, it returns an error. + public let `return`: Bool? + + public init(return: Bool? = nil) { + self.`return` = `return` + } + + private enum CodingKeys: String, CodingKey { + case `return` = "return" + } + } + public struct ScheduledInstancesNetworkInterfaceSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NetworkInterface", required: false, type: .list) ] public let networkInterface: [ScheduledInstancesNetworkInterface]? @@ -2189,24 +2929,34 @@ extension Ec2 { case attached = "attached" case detaching = "detaching" case detached = "detached" + case busy = "busy" public var description: String { return self.rawValue } } - public enum EventType: String, CustomStringConvertible, Codable { - case instancechange = "instanceChange" - case fleetrequestchange = "fleetRequestChange" - case error = "error" - public var description: String { return self.rawValue } - } - - public struct DescribeAddressesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PublicIps", location: .body(locationName: "PublicIp"), required: false, type: .structure), - AWSShapeMember(label: "AllocationIds", location: .body(locationName: "AllocationId"), required: false, type: .structure), - AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + public struct Ipv6CidrBlock: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Ipv6CidrBlock", location: .body(locationName: "ipv6CidrBlock"), required: false, type: .string) ] - /// [EC2-Classic] One or more Elastic IP addresses. Default: Describes all your Elastic IP addresses. + /// The IPv6 CIDR block. + public let ipv6CidrBlock: String? + + public init(ipv6CidrBlock: String? = nil) { + self.ipv6CidrBlock = ipv6CidrBlock + } + + private enum CodingKeys: String, CodingKey { + case ipv6CidrBlock = "ipv6CidrBlock" + } + } + + public struct DescribeAddressesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PublicIps", location: .body(locationName: "PublicIp"), required: false, type: .structure), + AWSShapeMember(label: "AllocationIds", location: .body(locationName: "AllocationId"), required: false, type: .structure), + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// [EC2-Classic] One or more Elastic IP addresses. Default: Describes all your Elastic IP addresses. public let publicIps: PublicIpStringList? /// [EC2-VPC] One or more allocation IDs. Default: Describes all your Elastic IP addresses. public let allocationIds: AllocationIdList? @@ -2230,24 +2980,15 @@ extension Ec2 { } } - public struct Ipv6CidrBlock: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Ipv6CidrBlock", location: .body(locationName: "ipv6CidrBlock"), required: false, type: .string) - ] - /// The IPv6 CIDR block. - public let ipv6CidrBlock: String? - - public init(ipv6CidrBlock: String? = nil) { - self.ipv6CidrBlock = ipv6CidrBlock - } - - private enum CodingKeys: String, CodingKey { - case ipv6CidrBlock = "ipv6CidrBlock" - } + public enum EventType: String, CustomStringConvertible, Codable { + case instancechange = "instanceChange" + case fleetrequestchange = "fleetRequestChange" + case error = "error" + public var description: String { return self.rawValue } } public struct VolumeStatusActionsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VolumeStatusAction]? @@ -2262,7 +3003,7 @@ extension Ec2 { } public struct SecurityGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IpPermissionsEgress", location: .body(locationName: "ipPermissionsEgress"), required: false, type: .structure), AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: false, type: .string), AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), @@ -2313,7 +3054,7 @@ extension Ec2 { } public struct DescribeAccountAttributesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountAttributes", location: .body(locationName: "accountAttributeSet"), required: false, type: .structure) ] /// Information about one or more account attributes. @@ -2328,8 +3069,13 @@ extension Ec2 { } } + public enum MarketType: String, CustomStringConvertible, Codable { + case spot = "spot" + public var description: String { return self.rawValue } + } + public struct ReplaceRouteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), AWSShapeMember(label: "NatGatewayId", location: .body(locationName: "natGatewayId"), required: false, type: .string), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), @@ -2390,7 +3136,7 @@ extension Ec2 { } public struct CreateRouteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), AWSShapeMember(label: "NatGatewayId", location: .body(locationName: "natGatewayId"), required: false, type: .string), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), @@ -2451,7 +3197,7 @@ extension Ec2 { } public struct FpgaImageIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -2465,8 +3211,39 @@ extension Ec2 { } } + public struct ModifyVpcEndpointServicePermissionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RemoveAllowedPrincipals", required: false, type: .structure), + AWSShapeMember(label: "ServiceId", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "AddAllowedPrincipals", required: false, type: .structure) + ] + /// One or more Amazon Resource Names (ARNs) of principals for which to remove permission. + public let removeAllowedPrincipals: ValueStringList? + /// The ID of the service. + public let serviceId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// One or more Amazon Resource Names (ARNs) of principals for which to allow permission. Specify * to allow all principals. + public let addAllowedPrincipals: ValueStringList? + + public init(removeAllowedPrincipals: ValueStringList? = nil, serviceId: String, dryRun: Bool? = nil, addAllowedPrincipals: ValueStringList? = nil) { + self.removeAllowedPrincipals = removeAllowedPrincipals + self.serviceId = serviceId + self.dryRun = dryRun + self.addAllowedPrincipals = addAllowedPrincipals + } + + private enum CodingKeys: String, CodingKey { + case removeAllowedPrincipals = "RemoveAllowedPrincipals" + case serviceId = "ServiceId" + case dryRun = "DryRun" + case addAllowedPrincipals = "AddAllowedPrincipals" + } + } + public struct ImageIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImageId", required: false, type: .list) ] public let imageId: [String]? @@ -2481,7 +3258,7 @@ extension Ec2 { } public struct DeleteVpnConnectionRouteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpnConnectionId", required: true, type: .string), AWSShapeMember(label: "DestinationCidrBlock", required: true, type: .string) ] @@ -2501,8 +3278,23 @@ extension Ec2 { } } + public struct GroupIdentifierSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [SecurityGroupIdentifier]? + + public init(item: [SecurityGroupIdentifier]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct KeyPairInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyFingerprint", location: .body(locationName: "keyFingerprint"), required: false, type: .string), AWSShapeMember(label: "KeyName", location: .body(locationName: "keyName"), required: false, type: .string) ] @@ -2523,7 +3315,7 @@ extension Ec2 { } public struct VolumeAttachment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttachTime", location: .body(locationName: "attachTime"), required: false, type: .timestamp), AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), AWSShapeMember(label: "Device", location: .body(locationName: "device"), required: false, type: .string), @@ -2564,7 +3356,7 @@ extension Ec2 { } public struct ImportSnapshotTask: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImportTaskId", location: .body(locationName: "importTaskId"), required: false, type: .string), AWSShapeMember(label: "SnapshotTaskDetail", location: .body(locationName: "snapshotTaskDetail"), required: false, type: .structure), AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) @@ -2589,8 +3381,23 @@ extension Ec2 { } } + public struct ConnectionNotificationSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [ConnectionNotification]? + + public init(item: [ConnectionNotification]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct CreateNatGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", required: true, type: .string), AWSShapeMember(label: "AllocationId", required: true, type: .string), AWSShapeMember(label: "ClientToken", required: false, type: .string) @@ -2616,7 +3423,7 @@ extension Ec2 { } public struct LaunchPermissionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [LaunchPermission]? @@ -2631,7 +3438,7 @@ extension Ec2 { } public struct AttachVpnGatewayResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcAttachment", location: .body(locationName: "attachment"), required: false, type: .structure) ] /// Information about the attachment. @@ -2646,110 +3453,125 @@ extension Ec2 { } } + public struct LaunchTemplateEbsBlockDevice: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VolumeType", location: .body(locationName: "volumeType"), required: false, type: .enum), + AWSShapeMember(label: "Encrypted", location: .body(locationName: "encrypted"), required: false, type: .boolean), + AWSShapeMember(label: "SnapshotId", location: .body(locationName: "snapshotId"), required: false, type: .string), + AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), + AWSShapeMember(label: "VolumeSize", location: .body(locationName: "volumeSize"), required: false, type: .integer), + AWSShapeMember(label: "Iops", location: .body(locationName: "iops"), required: false, type: .integer), + AWSShapeMember(label: "KmsKeyId", location: .body(locationName: "kmsKeyId"), required: false, type: .string) + ] + /// The volume type. + public let volumeType: VolumeType? + /// Indicates whether the EBS volume is encrypted. + public let encrypted: Bool? + /// The ID of the snapshot. + public let snapshotId: String? + /// Indicates whether the EBS volume is deleted on instance termination. + public let deleteOnTermination: Bool? + /// The size of the volume, in GiB. + public let volumeSize: Int32? + /// The number of I/O operations per second (IOPS) that the volume supports. + public let iops: Int32? + /// The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption. + public let kmsKeyId: String? + + public init(volumeType: VolumeType? = nil, encrypted: Bool? = nil, snapshotId: String? = nil, deleteOnTermination: Bool? = nil, volumeSize: Int32? = nil, iops: Int32? = nil, kmsKeyId: String? = nil) { + self.volumeType = volumeType + self.encrypted = encrypted + self.snapshotId = snapshotId + self.deleteOnTermination = deleteOnTermination + self.volumeSize = volumeSize + self.iops = iops + self.kmsKeyId = kmsKeyId + } + + private enum CodingKeys: String, CodingKey { + case volumeType = "volumeType" + case encrypted = "encrypted" + case snapshotId = "snapshotId" + case deleteOnTermination = "deleteOnTermination" + case volumeSize = "volumeSize" + case iops = "iops" + case kmsKeyId = "kmsKeyId" + } + } + public struct RequestSpotInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ValidUntil", location: .body(locationName: "validUntil"), required: false, type: .timestamp), - AWSShapeMember(label: "AvailabilityZoneGroup", location: .body(locationName: "availabilityZoneGroup"), required: false, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BlockDurationMinutes", location: .body(locationName: "blockDurationMinutes"), required: false, type: .integer), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), - AWSShapeMember(label: "LaunchSpecification", required: false, type: .structure), + AWSShapeMember(label: "InstanceInterruptionBehavior", required: false, type: .enum), AWSShapeMember(label: "ValidFrom", location: .body(locationName: "validFrom"), required: false, type: .timestamp), - AWSShapeMember(label: "SpotPrice", location: .body(locationName: "spotPrice"), required: true, type: .string), - AWSShapeMember(label: "InstanceCount", location: .body(locationName: "instanceCount"), required: false, type: .integer), + AWSShapeMember(label: "LaunchSpecification", required: false, type: .structure), + AWSShapeMember(label: "SpotPrice", location: .body(locationName: "spotPrice"), required: false, type: .string), AWSShapeMember(label: "LaunchGroup", location: .body(locationName: "launchGroup"), required: false, type: .string), - AWSShapeMember(label: "BlockDurationMinutes", location: .body(locationName: "blockDurationMinutes"), required: false, type: .integer), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum) + AWSShapeMember(label: "ValidUntil", location: .body(locationName: "validUntil"), required: false, type: .timestamp), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "AvailabilityZoneGroup", location: .body(locationName: "availabilityZoneGroup"), required: false, type: .string), + AWSShapeMember(label: "InstanceCount", location: .body(locationName: "instanceCount"), required: false, type: .integer) ] - /// The end date of the request. If this is a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached. Default: The request is effective indefinitely. - public let validUntil: TimeStamp? - /// The user-specified name for a logical grouping of bids. When you specify an Availability Zone group in a Spot Instance request, all Spot instances in the request are launched in the same Availability Zone. Instance proximity is maintained with this parameter, but the choice of Availability Zone is not. The group applies only to bids for Spot Instances of the same instance type. Any additional Spot instance requests that are specified with the same Availability Zone group name are launched in that same Availability Zone, as long as at least one instance from the group is still active. If there is no active instance running in the Availability Zone group that you specify for a new Spot instance request (all instances are terminated, the bid is expired, or the bid falls below current market), then Amazon EC2 launches the instance in any Availability Zone where the constraint can be met. Consequently, the subsequent set of Spot instances could be placed in a different zone from the original request, even if you specified the same Availability Zone group. Default: Instances are launched in any available Availability Zone. - public let availabilityZoneGroup: String? + /// The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot Instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can't specify an Availability Zone group or a launch group if you specify a duration. + public let blockDurationMinutes: Int32? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide. public let clientToken: String? + /// The behavior when a Spot Instance is interrupted. The default is terminate. + public let instanceInterruptionBehavior: InstanceInterruptionBehavior? + /// The start date of the request. If this is a one-time request, the request becomes active at this date and time and remains active until all instances launch, the request expires, or the request is canceled. If the request is persistent, the request becomes active at this date and time and remains active until it expires or is canceled. + public let validFrom: TimeStamp? /// The launch specification. public let launchSpecification: RequestSpotLaunchSpecification? - /// The start date of the request. If this is a one-time request, the request becomes active at this date and time and remains active until all instances launch, the request expires, or the request is canceled. If the request is persistent, the request becomes active at this date and time and remains active until it expires or is canceled. Default: The request is effective indefinitely. - public let validFrom: TimeStamp? - /// The maximum hourly price (bid) for any Spot instance launched to fulfill the request. - public let spotPrice: String - /// The maximum number of Spot instances to launch. Default: 1 - public let instanceCount: Int32? - /// The instance launch group. Launch groups are Spot instances that launch together and terminate together. Default: Instances are launched and terminated individually + /// The maximum price per hour that you are willing to pay for a Spot Instance. The default is the On-Demand price. + public let spotPrice: String? + /// The instance launch group. Launch groups are Spot Instances that launch together and terminate together. Default: Instances are launched and terminated individually public let launchGroup: String? - /// The required duration for the Spot instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can't specify an Availability Zone group or a launch group if you specify a duration. - public let blockDurationMinutes: Int32? - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// The Spot instance request type. Default: one-time + /// The end date of the request. If this is a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached. The default end date is 7 days from the current date. + public let validUntil: TimeStamp? + /// The Spot Instance request type. Default: one-time public let `type`: SpotInstanceType? + /// The user-specified name for a logical grouping of requests. When you specify an Availability Zone group in a Spot Instance request, all Spot Instances in the request are launched in the same Availability Zone. Instance proximity is maintained with this parameter, but the choice of Availability Zone is not. The group applies only to requests for Spot Instances of the same instance type. Any additional Spot Instance requests that are specified with the same Availability Zone group name are launched in that same Availability Zone, as long as at least one instance from the group is still active. If there is no active instance running in the Availability Zone group that you specify for a new Spot Instance request (all instances are terminated, the request is expired, or the maximum price you specified falls below current Spot price), then Amazon EC2 launches the instance in any Availability Zone where the constraint can be met. Consequently, the subsequent set of Spot Instances could be placed in a different zone from the original request, even if you specified the same Availability Zone group. Default: Instances are launched in any available Availability Zone. + public let availabilityZoneGroup: String? + /// The maximum number of Spot Instances to launch. Default: 1 + public let instanceCount: Int32? - public init(validUntil: TimeStamp? = nil, availabilityZoneGroup: String? = nil, clientToken: String? = nil, launchSpecification: RequestSpotLaunchSpecification? = nil, validFrom: TimeStamp? = nil, spotPrice: String, instanceCount: Int32? = nil, launchGroup: String? = nil, blockDurationMinutes: Int32? = nil, dryRun: Bool? = nil, type: SpotInstanceType? = nil) { - self.validUntil = validUntil - self.availabilityZoneGroup = availabilityZoneGroup + public init(blockDurationMinutes: Int32? = nil, dryRun: Bool? = nil, clientToken: String? = nil, instanceInterruptionBehavior: InstanceInterruptionBehavior? = nil, validFrom: TimeStamp? = nil, launchSpecification: RequestSpotLaunchSpecification? = nil, spotPrice: String? = nil, launchGroup: String? = nil, validUntil: TimeStamp? = nil, type: SpotInstanceType? = nil, availabilityZoneGroup: String? = nil, instanceCount: Int32? = nil) { + self.blockDurationMinutes = blockDurationMinutes + self.dryRun = dryRun self.clientToken = clientToken - self.launchSpecification = launchSpecification + self.instanceInterruptionBehavior = instanceInterruptionBehavior self.validFrom = validFrom + self.launchSpecification = launchSpecification self.spotPrice = spotPrice - self.instanceCount = instanceCount self.launchGroup = launchGroup - self.blockDurationMinutes = blockDurationMinutes - self.dryRun = dryRun + self.validUntil = validUntil self.`type` = `type` + self.availabilityZoneGroup = availabilityZoneGroup + self.instanceCount = instanceCount } private enum CodingKeys: String, CodingKey { - case validUntil = "validUntil" - case availabilityZoneGroup = "availabilityZoneGroup" + case blockDurationMinutes = "blockDurationMinutes" + case dryRun = "dryRun" case clientToken = "clientToken" - case launchSpecification = "LaunchSpecification" + case instanceInterruptionBehavior = "InstanceInterruptionBehavior" case validFrom = "validFrom" + case launchSpecification = "LaunchSpecification" case spotPrice = "spotPrice" - case instanceCount = "instanceCount" case launchGroup = "launchGroup" - case blockDurationMinutes = "blockDurationMinutes" - case dryRun = "dryRun" + case validUntil = "validUntil" case `type` = "type" - } - } - - public struct DescribeImagesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "ExecutableUsers", location: .body(locationName: "ExecutableBy"), required: false, type: .structure), - AWSShapeMember(label: "ImageIds", location: .body(locationName: "ImageId"), required: false, type: .structure), - AWSShapeMember(label: "Owners", location: .body(locationName: "Owner"), required: false, type: .structure) - ] - /// One or more filters. architecture - The image architecture (i386 | x86_64). block-device-mapping.delete-on-termination - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination. block-device-mapping.device-name - The device name for the EBS volume (for example, /dev/sdh). block-device-mapping.snapshot-id - The ID of the snapshot used for the EBS volume. block-device-mapping.volume-size - The volume size of the EBS volume, in GiB. block-device-mapping.volume-type - The volume type of the EBS volume (gp2 | io1 | st1 | sc1 | standard). description - The description of the image (provided during image creation). ena-support - A Boolean that indicates whether enhanced networking with ENA is enabled. hypervisor - The hypervisor type (ovm | xen). image-id - The ID of the image. image-type - The image type (machine | kernel | ramdisk). is-public - A Boolean that indicates whether the image is public. kernel-id - The kernel ID. manifest-location - The location of the image manifest. name - The name of the AMI (provided during image creation). owner-alias - String value from an Amazon-maintained list (amazon | aws-marketplace | microsoft) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console. owner-id - The AWS account ID of the image owner. platform - The platform. To only list Windows-based AMIs, use windows. product-code - The product code. product-code.type - The type of the product code (devpay | marketplace). ramdisk-id - The RAM disk ID. root-device-name - The name of the root device volume (for example, /dev/sda1). root-device-type - The type of the root device volume (ebs | instance-store). state - The state of the image (available | pending | failed). state-reason-code - The reason code for the state change. state-reason-message - The message for the state change. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. virtualization-type - The virtualization type (paravirtual | hvm). - public let filters: FilterList? - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// Scopes the images by users with explicit launch permissions. Specify an AWS account ID, self (the sender of the request), or all (public AMIs). - public let executableUsers: ExecutableByStringList? - /// One or more image IDs. Default: Describes all images available to you. - public let imageIds: ImageIdStringList? - /// Filters the images by the owner. Specify an AWS account ID, self (owner is the sender of the request), or an AWS owner alias (valid values are amazon | aws-marketplace | microsoft). Omitting this option returns all images for which you have launch permissions, regardless of ownership. - public let owners: OwnerStringList? - - public init(filters: FilterList? = nil, dryRun: Bool? = nil, executableUsers: ExecutableByStringList? = nil, imageIds: ImageIdStringList? = nil, owners: OwnerStringList? = nil) { - self.filters = filters - self.dryRun = dryRun - self.executableUsers = executableUsers - self.imageIds = imageIds - self.owners = owners - } - - private enum CodingKeys: String, CodingKey { - case filters = "Filter" - case dryRun = "dryRun" - case executableUsers = "ExecutableBy" - case imageIds = "ImageId" - case owners = "Owner" + case availabilityZoneGroup = "availabilityZoneGroup" + case instanceCount = "instanceCount" } } public struct HostOffering: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UpfrontPrice", location: .body(locationName: "upfrontPrice"), required: false, type: .string), AWSShapeMember(label: "PaymentOption", location: .body(locationName: "paymentOption"), required: false, type: .enum), AWSShapeMember(label: "OfferingId", location: .body(locationName: "offeringId"), required: false, type: .string), @@ -2794,8 +3616,44 @@ extension Ec2 { } } + public struct DescribeImagesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "ExecutableUsers", location: .body(locationName: "ExecutableBy"), required: false, type: .structure), + AWSShapeMember(label: "ImageIds", location: .body(locationName: "ImageId"), required: false, type: .structure), + AWSShapeMember(label: "Owners", location: .body(locationName: "Owner"), required: false, type: .structure) + ] + /// One or more filters. architecture - The image architecture (i386 | x86_64). block-device-mapping.delete-on-termination - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination. block-device-mapping.device-name - The device name specified in the block device mapping (for example, /dev/sdh or xvdh). block-device-mapping.snapshot-id - The ID of the snapshot used for the EBS volume. block-device-mapping.volume-size - The volume size of the EBS volume, in GiB. block-device-mapping.volume-type - The volume type of the EBS volume (gp2 | io1 | st1 | sc1 | standard). description - The description of the image (provided during image creation). ena-support - A Boolean that indicates whether enhanced networking with ENA is enabled. hypervisor - The hypervisor type (ovm | xen). image-id - The ID of the image. image-type - The image type (machine | kernel | ramdisk). is-public - A Boolean that indicates whether the image is public. kernel-id - The kernel ID. manifest-location - The location of the image manifest. name - The name of the AMI (provided during image creation). owner-alias - String value from an Amazon-maintained list (amazon | aws-marketplace | microsoft) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console. owner-id - The AWS account ID of the image owner. platform - The platform. To only list Windows-based AMIs, use windows. product-code - The product code. product-code.type - The type of the product code (devpay | marketplace). ramdisk-id - The RAM disk ID. root-device-name - The device name of the root device volume (for example, /dev/sda1). root-device-type - The type of the root device volume (ebs | instance-store). state - The state of the image (available | pending | failed). state-reason-code - The reason code for the state change. state-reason-message - The message for the state change. sriov-net-support - A value of simple indicates that enhanced networking with the Intel 82599 VF interface is enabled. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. virtualization-type - The virtualization type (paravirtual | hvm). + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// Scopes the images by users with explicit launch permissions. Specify an AWS account ID, self (the sender of the request), or all (public AMIs). + public let executableUsers: ExecutableByStringList? + /// One or more image IDs. Default: Describes all images available to you. + public let imageIds: ImageIdStringList? + /// Filters the images by the owner. Specify an AWS account ID, self (owner is the sender of the request), or an AWS owner alias (valid values are amazon | aws-marketplace | microsoft). Omitting this option returns all images for which you have launch permissions, regardless of ownership. + public let owners: OwnerStringList? + + public init(filters: FilterList? = nil, dryRun: Bool? = nil, executableUsers: ExecutableByStringList? = nil, imageIds: ImageIdStringList? = nil, owners: OwnerStringList? = nil) { + self.filters = filters + self.dryRun = dryRun + self.executableUsers = executableUsers + self.imageIds = imageIds + self.owners = owners + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filter" + case dryRun = "dryRun" + case executableUsers = "ExecutableBy" + case imageIds = "ImageId" + case owners = "Owner" + } + } + public struct InstanceNetworkInterfaceSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceIndex", location: .body(locationName: "deviceIndex"), required: false, type: .integer), AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), @@ -2866,7 +3724,7 @@ extension Ec2 { } public struct DeleteRouteTableRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RouteTableId", location: .body(locationName: "routeTableId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -2887,7 +3745,7 @@ extension Ec2 { } public struct NatGatewayAddress: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: false, type: .string), AWSShapeMember(label: "PrivateIp", location: .body(locationName: "privateIp"), required: false, type: .string), @@ -2918,7 +3776,7 @@ extension Ec2 { } public struct DescribeNetworkInterfaceAttributeResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .structure), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), AWSShapeMember(label: "Attachment", location: .body(locationName: "attachment"), required: false, type: .structure), @@ -2954,7 +3812,7 @@ extension Ec2 { } public struct ModifyVpcEndpointResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] /// Returns true if the request succeeds; otherwise, it returns an error. @@ -2970,7 +3828,7 @@ extension Ec2 { } public struct ImportSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientToken", required: false, type: .string), AWSShapeMember(label: "RoleName", required: false, type: .string), AWSShapeMember(label: "DryRun", required: false, type: .boolean), @@ -3010,8 +3868,23 @@ extension Ec2 { } } + public struct ElasticGpuSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [ElasticGpus]? + + public init(item: [ElasticGpus]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct CreateVpcRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceTenancy", location: .body(locationName: "instanceTenancy"), required: false, type: .enum), AWSShapeMember(label: "AmazonProvidedIpv6CidrBlock", location: .body(locationName: "amazonProvidedIpv6CidrBlock"), required: false, type: .boolean), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), @@ -3042,7 +3915,7 @@ extension Ec2 { } public struct DhcpOptionsIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DhcpOptionsId", required: false, type: .list) ] public let dhcpOptionsId: [String]? @@ -3057,7 +3930,7 @@ extension Ec2 { } public struct CreateRouteTableRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -3077,8 +3950,24 @@ extension Ec2 { } } + public struct ModifyLaunchTemplateResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplate", location: .body(locationName: "launchTemplate"), required: false, type: .structure) + ] + /// Information about the launch template. + public let launchTemplate: LaunchTemplate? + + public init(launchTemplate: LaunchTemplate? = nil) { + self.launchTemplate = launchTemplate + } + + private enum CodingKeys: String, CodingKey { + case launchTemplate = "launchTemplate" + } + } + public struct DescribeVpcsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Vpcs", location: .body(locationName: "vpcSet"), required: false, type: .structure) ] /// Information about one or more VPCs. @@ -3093,8 +3982,23 @@ extension Ec2 { } } - public struct ImportInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct TunnelOptionsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [VpnTunnelOptionsSpecification]? + + public init(item: [VpnTunnelOptionsSpecification]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct ImportInstanceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DiskImages", location: .body(locationName: "diskImage"), required: false, type: .list), AWSShapeMember(label: "Platform", location: .body(locationName: "platform"), required: true, type: .enum), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), @@ -3129,65 +4033,80 @@ extension Ec2 { } } - public struct CreateVpcEndpointRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct CreateFpgaImageRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientToken", required: false, type: .string), - AWSShapeMember(label: "ServiceName", required: true, type: .string), - AWSShapeMember(label: "VpcId", required: true, type: .string), - AWSShapeMember(label: "RouteTableIds", location: .body(locationName: "RouteTableId"), required: false, type: .structure), + AWSShapeMember(label: "InputStorageLocation", required: true, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean), - AWSShapeMember(label: "PolicyDocument", required: false, type: .string) + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LogsStorageLocation", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string) ] - /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency. + /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency. public let clientToken: String? - /// The AWS service name, in the form com.amazonaws.region.service . To get a list of available services, use the DescribeVpcEndpointServices request. - public let serviceName: String - /// The ID of the VPC in which the endpoint will be used. - public let vpcId: String - /// One or more route table IDs. - public let routeTableIds: ValueStringList? + /// The location of the encrypted design checkpoint in Amazon S3. The input must be a tarball. + public let inputStorageLocation: StorageLocation /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format. If this parameter is not specified, we attach a default policy that allows full access to the service. - public let policyDocument: String? + /// A name for the AFI. + public let name: String? + /// The location in Amazon S3 for the output logs. + public let logsStorageLocation: StorageLocation? + /// A description for the AFI. + public let description: String? - public init(clientToken: String? = nil, serviceName: String, vpcId: String, routeTableIds: ValueStringList? = nil, dryRun: Bool? = nil, policyDocument: String? = nil) { + public init(clientToken: String? = nil, inputStorageLocation: StorageLocation, dryRun: Bool? = nil, name: String? = nil, logsStorageLocation: StorageLocation? = nil, description: String? = nil) { self.clientToken = clientToken - self.serviceName = serviceName - self.vpcId = vpcId - self.routeTableIds = routeTableIds + self.inputStorageLocation = inputStorageLocation self.dryRun = dryRun - self.policyDocument = policyDocument + self.name = name + self.logsStorageLocation = logsStorageLocation + self.description = description } private enum CodingKeys: String, CodingKey { case clientToken = "ClientToken" - case serviceName = "ServiceName" - case vpcId = "VpcId" - case routeTableIds = "RouteTableId" + case inputStorageLocation = "InputStorageLocation" case dryRun = "DryRun" - case policyDocument = "PolicyDocument" + case name = "Name" + case logsStorageLocation = "LogsStorageLocation" + case description = "Description" } } - public struct MovingAddressStatus: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MoveStatus", location: .body(locationName: "moveStatus"), required: false, type: .enum), - AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: false, type: .string) + public struct ModifyLaunchTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateId", required: false, type: .string), + AWSShapeMember(label: "ClientToken", required: false, type: .string), + AWSShapeMember(label: "DefaultVersion", location: .body(locationName: "SetDefaultVersion"), required: false, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "LaunchTemplateName", required: false, type: .string) ] - /// The status of the Elastic IP address that's being moved to the EC2-VPC platform, or restored to the EC2-Classic platform. - public let moveStatus: MoveStatus? - /// The Elastic IP address. - public let publicIp: String? + /// The ID of the launch template. You must specify either the launch template ID or launch template name in the request. + public let launchTemplateId: String? + /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency. + public let clientToken: String? + /// The version number of the launch template to set as the default version. + public let defaultVersion: String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The name of the launch template. You must specify either the launch template ID or launch template name in the request. + public let launchTemplateName: String? - public init(moveStatus: MoveStatus? = nil, publicIp: String? = nil) { - self.moveStatus = moveStatus - self.publicIp = publicIp + public init(launchTemplateId: String? = nil, clientToken: String? = nil, defaultVersion: String? = nil, dryRun: Bool? = nil, launchTemplateName: String? = nil) { + self.launchTemplateId = launchTemplateId + self.clientToken = clientToken + self.defaultVersion = defaultVersion + self.dryRun = dryRun + self.launchTemplateName = launchTemplateName } private enum CodingKeys: String, CodingKey { - case moveStatus = "moveStatus" - case publicIp = "publicIp" + case launchTemplateId = "LaunchTemplateId" + case clientToken = "ClientToken" + case defaultVersion = "SetDefaultVersion" + case dryRun = "DryRun" + case launchTemplateName = "LaunchTemplateName" } } @@ -3198,7 +4117,7 @@ extension Ec2 { } public struct AvailabilityZoneList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [AvailabilityZone]? @@ -3212,49 +4131,90 @@ extension Ec2 { } } - public struct CreateFpgaImageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct MovingAddressStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MoveStatus", location: .body(locationName: "moveStatus"), required: false, type: .enum), + AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: false, type: .string) + ] + /// The status of the Elastic IP address that's being moved to the EC2-VPC platform, or restored to the EC2-Classic platform. + public let moveStatus: MoveStatus? + /// The Elastic IP address. + public let publicIp: String? + + public init(moveStatus: MoveStatus? = nil, publicIp: String? = nil) { + self.moveStatus = moveStatus + self.publicIp = publicIp + } + + private enum CodingKeys: String, CodingKey { + case moveStatus = "moveStatus" + case publicIp = "publicIp" + } + } + + public struct CreateVpcEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIds", location: .body(locationName: "SubnetId"), required: false, type: .structure), AWSShapeMember(label: "ClientToken", required: false, type: .string), - AWSShapeMember(label: "InputStorageLocation", required: true, type: .structure), + AWSShapeMember(label: "ServiceName", required: true, type: .string), + AWSShapeMember(label: "VpcId", required: true, type: .string), + AWSShapeMember(label: "SecurityGroupIds", location: .body(locationName: "SecurityGroupId"), required: false, type: .structure), + AWSShapeMember(label: "PrivateDnsEnabled", required: false, type: .boolean), AWSShapeMember(label: "DryRun", required: false, type: .boolean), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "LogsStorageLocation", required: false, type: .structure), - AWSShapeMember(label: "Description", required: false, type: .string) + AWSShapeMember(label: "RouteTableIds", location: .body(locationName: "RouteTableId"), required: false, type: .structure), + AWSShapeMember(label: "VpcEndpointType", required: false, type: .enum), + AWSShapeMember(label: "PolicyDocument", required: false, type: .string) ] - /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency. + /// (Interface endpoint) The ID of one or more subnets in which to create an endpoint network interface. + public let subnetIds: ValueStringList? + /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency. public let clientToken: String? - /// The location of the encrypted design checkpoint in Amazon S3. The input must be a tarball. - public let inputStorageLocation: StorageLocation + /// The service name. To get a list of available services, use the DescribeVpcEndpointServices request. + public let serviceName: String + /// The ID of the VPC in which the endpoint will be used. + public let vpcId: String + /// (Interface endpoint) The ID of one or more security groups to associate with the endpoint network interface. + public let securityGroupIds: ValueStringList? + /// (Interface endpoint) Indicate whether to associate a private hosted zone with the specified VPC. The private hosted zone contains a record set for the default public DNS name for the service for the region (for example, kinesis.us-east-1.amazonaws.com) which resolves to the private IP addresses of the endpoint network interfaces in the VPC. This enables you to make requests to the default public DNS name for the service instead of the public DNS names that are automatically generated by the VPC endpoint service. To use a private hosted zone, you must set the following VPC attributes to true: enableDnsHostnames and enableDnsSupport. Use ModifyVpcAttribute to set the VPC attributes. Default: true + public let privateDnsEnabled: Bool? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// A name for the AFI. - public let name: String? - /// The location in Amazon S3 for the output logs. - public let logsStorageLocation: StorageLocation? - /// A description for the AFI. - public let description: String? + /// (Gateway endpoint) One or more route table IDs. + public let routeTableIds: ValueStringList? + /// The type of endpoint. Default: Gateway + public let vpcEndpointType: VpcEndpointType? + /// (Gateway endpoint) A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format. If this parameter is not specified, we attach a default policy that allows full access to the service. + public let policyDocument: String? - public init(clientToken: String? = nil, inputStorageLocation: StorageLocation, dryRun: Bool? = nil, name: String? = nil, logsStorageLocation: StorageLocation? = nil, description: String? = nil) { + public init(subnetIds: ValueStringList? = nil, clientToken: String? = nil, serviceName: String, vpcId: String, securityGroupIds: ValueStringList? = nil, privateDnsEnabled: Bool? = nil, dryRun: Bool? = nil, routeTableIds: ValueStringList? = nil, vpcEndpointType: VpcEndpointType? = nil, policyDocument: String? = nil) { + self.subnetIds = subnetIds self.clientToken = clientToken - self.inputStorageLocation = inputStorageLocation + self.serviceName = serviceName + self.vpcId = vpcId + self.securityGroupIds = securityGroupIds + self.privateDnsEnabled = privateDnsEnabled self.dryRun = dryRun - self.name = name - self.logsStorageLocation = logsStorageLocation - self.description = description + self.routeTableIds = routeTableIds + self.vpcEndpointType = vpcEndpointType + self.policyDocument = policyDocument } private enum CodingKeys: String, CodingKey { + case subnetIds = "SubnetId" case clientToken = "ClientToken" - case inputStorageLocation = "InputStorageLocation" + case serviceName = "ServiceName" + case vpcId = "VpcId" + case securityGroupIds = "SecurityGroupId" + case privateDnsEnabled = "PrivateDnsEnabled" case dryRun = "DryRun" - case name = "Name" - case logsStorageLocation = "LogsStorageLocation" - case description = "Description" + case routeTableIds = "RouteTableId" + case vpcEndpointType = "VpcEndpointType" + case policyDocument = "PolicyDocument" } } public struct VpcIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: false, type: .list) ] public let vpcId: [String]? @@ -3269,7 +4229,7 @@ extension Ec2 { } public struct DeregisterImageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImageId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -3290,7 +4250,7 @@ extension Ec2 { } public struct SpotPriceHistoryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [SpotPrice]? @@ -3305,7 +4265,7 @@ extension Ec2 { } public struct DeleteSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -3326,7 +4286,7 @@ extension Ec2 { } public struct DescribeReservedInstancesOfferingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxDuration", required: false, type: .long), AWSShapeMember(label: "InstanceTenancy", location: .body(locationName: "instanceTenancy"), required: false, type: .enum), AWSShapeMember(label: "ReservedInstancesOfferingIds", location: .body(locationName: "ReservedInstancesOfferingId"), required: false, type: .list), @@ -3411,14 +4371,55 @@ extension Ec2 { } } + public struct ElasticGpus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ElasticGpuType", location: .body(locationName: "elasticGpuType"), required: false, type: .string), + AWSShapeMember(label: "ElasticGpuId", location: .body(locationName: "elasticGpuId"), required: false, type: .string), + AWSShapeMember(label: "ElasticGpuState", location: .body(locationName: "elasticGpuState"), required: false, type: .enum), + AWSShapeMember(label: "ElasticGpuHealth", location: .body(locationName: "elasticGpuHealth"), required: false, type: .structure), + AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), + AWSShapeMember(label: "AvailabilityZone", location: .body(locationName: "availabilityZone"), required: false, type: .string) + ] + /// The type of Elastic GPU. + public let elasticGpuType: String? + /// The ID of the Elastic GPU. + public let elasticGpuId: String? + /// The state of the Elastic GPU. + public let elasticGpuState: ElasticGpuState? + /// The status of the Elastic GPU. + public let elasticGpuHealth: ElasticGpuHealth? + /// The ID of the instance to which the Elastic GPU is attached. + public let instanceId: String? + /// The Availability Zone in the which the Elastic GPU resides. + public let availabilityZone: String? + + public init(elasticGpuType: String? = nil, elasticGpuId: String? = nil, elasticGpuState: ElasticGpuState? = nil, elasticGpuHealth: ElasticGpuHealth? = nil, instanceId: String? = nil, availabilityZone: String? = nil) { + self.elasticGpuType = elasticGpuType + self.elasticGpuId = elasticGpuId + self.elasticGpuState = elasticGpuState + self.elasticGpuHealth = elasticGpuHealth + self.instanceId = instanceId + self.availabilityZone = availabilityZone + } + + private enum CodingKeys: String, CodingKey { + case elasticGpuType = "elasticGpuType" + case elasticGpuId = "elasticGpuId" + case elasticGpuState = "elasticGpuState" + case elasticGpuHealth = "elasticGpuHealth" + case instanceId = "instanceId" + case availabilityZone = "availabilityZone" + } + } + public struct CancelledSpotInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SpotInstanceRequestId", location: .body(locationName: "spotInstanceRequestId"), required: false, type: .string), AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum) ] - /// The ID of the Spot instance request. + /// The ID of the Spot Instance request. public let spotInstanceRequestId: String? - /// The state of the Spot instance request. + /// The state of the Spot Instance request. public let state: CancelSpotInstanceRequestState? public init(spotInstanceRequestId: String? = nil, state: CancelSpotInstanceRequestState? = nil) { @@ -3433,7 +4434,7 @@ extension Ec2 { } public struct VpcPeeringConnectionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VpcPeeringConnection]? @@ -3448,7 +4449,7 @@ extension Ec2 { } public struct MovingAddressStatusSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [MovingAddressStatus]? @@ -3462,8 +4463,70 @@ extension Ec2 { } } + public struct UpdateSecurityGroupRuleDescriptionsEgressRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "GroupName", required: false, type: .string), + AWSShapeMember(label: "IpPermissions", required: true, type: .structure), + AWSShapeMember(label: "GroupId", required: false, type: .string) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// [Default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request. + public let groupName: String? + /// The IP permissions for the security group rule. + public let ipPermissions: IpPermissionList + /// The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. + public let groupId: String? + + public init(dryRun: Bool? = nil, groupName: String? = nil, ipPermissions: IpPermissionList, groupId: String? = nil) { + self.dryRun = dryRun + self.groupName = groupName + self.ipPermissions = ipPermissions + self.groupId = groupId + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case groupName = "GroupName" + case ipPermissions = "IpPermissions" + case groupId = "GroupId" + } + } + + public struct UpdateSecurityGroupRuleDescriptionsIngressRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "GroupName", required: false, type: .string), + AWSShapeMember(label: "IpPermissions", required: true, type: .structure), + AWSShapeMember(label: "GroupId", required: false, type: .string) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// [EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request. + public let groupName: String? + /// The IP permissions for the security group rule. + public let ipPermissions: IpPermissionList + /// The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. + public let groupId: String? + + public init(dryRun: Bool? = nil, groupName: String? = nil, ipPermissions: IpPermissionList, groupId: String? = nil) { + self.dryRun = dryRun + self.groupName = groupName + self.ipPermissions = ipPermissions + self.groupId = groupId + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case groupName = "GroupName" + case ipPermissions = "IpPermissions" + case groupId = "GroupId" + } + } + public struct ModifyImageAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProductCodes", location: .body(locationName: "ProductCode"), required: false, type: .structure), AWSShapeMember(label: "Description", required: false, type: .structure), AWSShapeMember(label: "UserIds", location: .body(locationName: "UserId"), required: false, type: .structure), @@ -3475,25 +4538,25 @@ extension Ec2 { AWSShapeMember(label: "LaunchPermission", required: false, type: .structure), AWSShapeMember(label: "OperationType", required: false, type: .enum) ] - /// One or more product codes. After you add a product code to an AMI, it can't be removed. This is only valid when modifying the productCodes attribute. + /// One or more DevPay product codes. After you add a product code to an AMI, it can't be removed. public let productCodes: ProductCodeStringList? - /// A description for the AMI. + /// A new description for the AMI. public let description: AttributeValue? - /// One or more AWS account IDs. This is only valid when modifying the launchPermission attribute. + /// One or more AWS account IDs. This parameter can be used only when the Attribute parameter is launchPermission. public let userIds: UserIdStringList? /// The ID of the AMI. public let imageId: String - /// One or more user groups. This is only valid when modifying the launchPermission attribute. + /// One or more user groups. This parameter can be used only when the Attribute parameter is launchPermission. public let userGroups: UserGroupStringList? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// The name of the attribute to modify. + /// The name of the attribute to modify. The valid values are description, launchPermission, and productCodes. public let attribute: String? - /// The value of the attribute being modified. This is only valid when modifying the description attribute. + /// The value of the attribute being modified. This parameter can be used only when the Attribute parameter is description or productCodes. public let value: String? - /// A launch permission modification. + /// A new launch permission for the AMI. public let launchPermission: LaunchPermissionModifications? - /// The operation type. + /// The operation type. This parameter can be used only when the Attribute parameter is launchPermission. public let operationType: OperationType? public init(productCodes: ProductCodeStringList? = nil, description: AttributeValue? = nil, userIds: UserIdStringList? = nil, imageId: String, userGroups: UserGroupStringList? = nil, dryRun: Bool? = nil, attribute: String? = nil, value: String? = nil, launchPermission: LaunchPermissionModifications? = nil, operationType: OperationType? = nil) { @@ -3524,7 +4587,7 @@ extension Ec2 { } public struct SubnetIpv6CidrBlockAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ipv6CidrBlock", location: .body(locationName: "ipv6CidrBlock"), required: false, type: .string), AWSShapeMember(label: "Ipv6CidrBlockState", location: .body(locationName: "ipv6CidrBlockState"), required: false, type: .structure), AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: false, type: .string) @@ -3549,8 +4612,44 @@ extension Ec2 { } } + public struct LaunchTemplateOverrides: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WeightedCapacity", location: .body(locationName: "weightedCapacity"), required: false, type: .double), + AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), + AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .enum), + AWSShapeMember(label: "AvailabilityZone", location: .body(locationName: "availabilityZone"), required: false, type: .string), + AWSShapeMember(label: "SpotPrice", location: .body(locationName: "spotPrice"), required: false, type: .string) + ] + /// The number of units provided by the specified instance type. + public let weightedCapacity: Double? + /// The ID of the subnet in which to launch the instances. + public let subnetId: String? + /// The instance type. + public let instanceType: InstanceType? + /// The Availability Zone in which to launch the instances. + public let availabilityZone: String? + /// The maximum price per unit hour that you are willing to pay for a Spot Instance. + public let spotPrice: String? + + public init(weightedCapacity: Double? = nil, subnetId: String? = nil, instanceType: InstanceType? = nil, availabilityZone: String? = nil, spotPrice: String? = nil) { + self.weightedCapacity = weightedCapacity + self.subnetId = subnetId + self.instanceType = instanceType + self.availabilityZone = availabilityZone + self.spotPrice = spotPrice + } + + private enum CodingKeys: String, CodingKey { + case weightedCapacity = "weightedCapacity" + case subnetId = "subnetId" + case instanceType = "instanceType" + case availabilityZone = "availabilityZone" + case spotPrice = "spotPrice" + } + } + public struct NetworkAclList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [NetworkAcl]? @@ -3565,7 +4664,7 @@ extension Ec2 { } public struct VolumeStatusDetailsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VolumeStatusDetails]? @@ -3579,8 +4678,23 @@ extension Ec2 { } } + public struct ClassicLoadBalancers: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [ClassicLoadBalancer]? + + public init(item: [ClassicLoadBalancer]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct CreateDhcpOptionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DhcpOptions", location: .body(locationName: "dhcpOptions"), required: false, type: .structure) ] /// A set of DHCP options. @@ -3596,7 +4710,7 @@ extension Ec2 { } public struct InstanceNetworkInterfaceAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: false, type: .string), AWSShapeMember(label: "IpOwnerId", location: .body(locationName: "ipOwnerId"), required: false, type: .string), AWSShapeMember(label: "PublicDnsName", location: .body(locationName: "publicDnsName"), required: false, type: .string) @@ -3622,7 +4736,7 @@ extension Ec2 { } public struct AddressList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Address]? @@ -3637,7 +4751,7 @@ extension Ec2 { } public struct EbsInstanceBlockDevice: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttachTime", location: .body(locationName: "attachTime"), required: false, type: .timestamp), AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), @@ -3667,8 +4781,29 @@ extension Ec2 { } } + public struct LaunchTemplateInstanceMarketOptionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SpotOptions", required: false, type: .structure), + AWSShapeMember(label: "MarketType", required: false, type: .enum) + ] + /// The options for Spot Instances. + public let spotOptions: LaunchTemplateSpotMarketOptionsRequest? + /// The market type. + public let marketType: MarketType? + + public init(spotOptions: LaunchTemplateSpotMarketOptionsRequest? = nil, marketType: MarketType? = nil) { + self.spotOptions = spotOptions + self.marketType = marketType + } + + private enum CodingKeys: String, CodingKey { + case spotOptions = "SpotOptions" + case marketType = "MarketType" + } + } + public struct CancelImportTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", required: false, type: .boolean), AWSShapeMember(label: "CancelReason", required: false, type: .string), AWSShapeMember(label: "ImportTaskId", required: false, type: .string) @@ -3693,8 +4828,29 @@ extension Ec2 { } } + public struct CreateDefaultSubnetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZone", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// The Availability Zone in which to create the default subnet. + public let availabilityZone: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(availabilityZone: String, dryRun: Bool? = nil) { + self.availabilityZone = availabilityZone + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case availabilityZone = "AvailabilityZone" + case dryRun = "DryRun" + } + } + public struct ReservedInstanceReservationValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstanceId", location: .body(locationName: "reservedInstanceId"), required: false, type: .string), AWSShapeMember(label: "ReservationValue", location: .body(locationName: "reservationValue"), required: false, type: .structure) ] @@ -3715,7 +4871,7 @@ extension Ec2 { } public struct CreateFlowLogsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FlowLogIds", location: .body(locationName: "flowLogIdSet"), required: false, type: .structure), AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure), AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string) @@ -3740,8 +4896,16 @@ extension Ec2 { } } + public enum UnsuccessfulInstanceCreditSpecificationErrorCode: String, CustomStringConvertible, Codable { + case invalidinstanceidMalformed = "InvalidInstanceID.Malformed" + case invalidinstanceidNotfound = "InvalidInstanceID.NotFound" + case incorrectinstancestate = "IncorrectInstanceState" + case instancecreditspecificationNotsupported = "InstanceCreditSpecification.NotSupported" + public var description: String { return self.rawValue } + } + public struct StopInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: true, type: .structure), AWSShapeMember(label: "Force", location: .body(locationName: "force"), required: false, type: .boolean) @@ -3767,7 +4931,7 @@ extension Ec2 { } public struct AvailabilityZone: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ZoneName", location: .body(locationName: "zoneName"), required: false, type: .string), AWSShapeMember(label: "State", location: .body(locationName: "zoneState"), required: false, type: .enum), AWSShapeMember(label: "Messages", location: .body(locationName: "messageSet"), required: false, type: .structure), @@ -3797,29 +4961,23 @@ extension Ec2 { } } - public struct VolumeStatusDetails: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .enum), - AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .string) + public struct TagSpecificationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The name of the volume status. - public let name: VolumeStatusName? - /// The intended status of the volume status. - public let status: String? + public let item: [TagSpecification]? - public init(name: VolumeStatusName? = nil, status: String? = nil) { - self.name = name - self.status = status + public init(item: [TagSpecification]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case name = "name" - case status = "status" + case item = "item" } } public struct DisassociateIamInstanceProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamInstanceProfileAssociation", location: .body(locationName: "iamInstanceProfileAssociation"), required: false, type: .structure) ] /// Information about the IAM instance profile association. @@ -3842,40 +5000,51 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct DescribeReservedInstancesModificationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), - AWSShapeMember(label: "ReservedInstancesModificationIds", location: .body(locationName: "ReservedInstancesModificationId"), required: false, type: .structure) + public struct VolumeStatusDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .enum), + AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .string) ] - /// The token to retrieve the next page of results. - public let nextToken: String? - /// One or more filters. client-token - The idempotency token for the modification request. create-date - The time when the modification request was created. effective-date - The time when the modification becomes effective. modification-result.reserved-instances-id - The ID for the Reserved Instances created as part of the modification request. This ID is only available when the status of the modification is fulfilled. modification-result.target-configuration.availability-zone - The Availability Zone for the new Reserved Instances. modification-result.target-configuration.instance-count - The number of new Reserved Instances. modification-result.target-configuration.instance-type - The instance type of the new Reserved Instances. modification-result.target-configuration.platform - The network platform of the new Reserved Instances (EC2-Classic | EC2-VPC). reserved-instances-id - The ID of the Reserved Instances modified. reserved-instances-modification-id - The ID of the modification request. status - The status of the Reserved Instances modification request (processing | fulfilled | failed). status-message - The reason for the status. update-date - The time when the modification request was last updated. - public let filters: FilterList? - /// IDs for the submitted modification request. - public let reservedInstancesModificationIds: ReservedInstancesModificationIdStringList? + /// The name of the volume status. + public let name: VolumeStatusName? + /// The intended status of the volume status. + public let status: String? - public init(nextToken: String? = nil, filters: FilterList? = nil, reservedInstancesModificationIds: ReservedInstancesModificationIdStringList? = nil) { - self.nextToken = nextToken - self.filters = filters - self.reservedInstancesModificationIds = reservedInstancesModificationIds + public init(name: VolumeStatusName? = nil, status: String? = nil) { + self.name = name + self.status = status } private enum CodingKeys: String, CodingKey { - case nextToken = "nextToken" - case filters = "Filter" - case reservedInstancesModificationIds = "ReservedInstancesModificationId" + case name = "name" + case status = "status" + } + } + + public struct DescribeImagesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Images", location: .body(locationName: "imagesSet"), required: false, type: .structure) + ] + /// Information about one or more images. + public let images: ImageList? + + public init(images: ImageList? = nil) { + self.images = images + } + + private enum CodingKeys: String, CodingKey { + case images = "imagesSet" } } public struct SpotInstanceStateFault: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .string), AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) ] - /// The reason code for the Spot instance state change. + /// The reason code for the Spot Instance state change. public let code: String? - /// The message for the Spot instance state change. + /// The message for the Spot Instance state change. public let message: String? public init(code: String? = nil, message: String? = nil) { @@ -3889,39 +5058,34 @@ extension Ec2 { } } - public struct DescribeImagesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Images", location: .body(locationName: "imagesSet"), required: false, type: .structure) - ] - /// Information about one or more images. - public let images: ImageList? - - public init(images: ImageList? = nil) { - self.images = images - } - - private enum CodingKeys: String, CodingKey { - case images = "imagesSet" - } - } - - public struct TagSpecificationList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct DescribeReservedInstancesModificationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "ReservedInstancesModificationIds", location: .body(locationName: "ReservedInstancesModificationId"), required: false, type: .structure) ] - public let item: [TagSpecification]? + /// The token to retrieve the next page of results. + public let nextToken: String? + /// One or more filters. client-token - The idempotency token for the modification request. create-date - The time when the modification request was created. effective-date - The time when the modification becomes effective. modification-result.reserved-instances-id - The ID for the Reserved Instances created as part of the modification request. This ID is only available when the status of the modification is fulfilled. modification-result.target-configuration.availability-zone - The Availability Zone for the new Reserved Instances. modification-result.target-configuration.instance-count - The number of new Reserved Instances. modification-result.target-configuration.instance-type - The instance type of the new Reserved Instances. modification-result.target-configuration.platform - The network platform of the new Reserved Instances (EC2-Classic | EC2-VPC). reserved-instances-id - The ID of the Reserved Instances modified. reserved-instances-modification-id - The ID of the modification request. status - The status of the Reserved Instances modification request (processing | fulfilled | failed). status-message - The reason for the status. update-date - The time when the modification request was last updated. + public let filters: FilterList? + /// IDs for the submitted modification request. + public let reservedInstancesModificationIds: ReservedInstancesModificationIdStringList? - public init(item: [TagSpecification]? = nil) { - self.item = item + public init(nextToken: String? = nil, filters: FilterList? = nil, reservedInstancesModificationIds: ReservedInstancesModificationIdStringList? = nil) { + self.nextToken = nextToken + self.filters = filters + self.reservedInstancesModificationIds = reservedInstancesModificationIds } private enum CodingKeys: String, CodingKey { - case item = "item" + case nextToken = "nextToken" + case filters = "Filter" + case reservedInstancesModificationIds = "ReservedInstancesModificationId" } } public struct SecurityGroupIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroupId", required: false, type: .list) ] public let securityGroupId: [String]? @@ -3935,38 +5099,17 @@ extension Ec2 { } } - public struct ScheduledInstancesPlacement: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), - AWSShapeMember(label: "GroupName", required: false, type: .string) - ] - /// The Availability Zone. - public let availabilityZone: String? - /// The name of the placement group. - public let groupName: String? - - public init(availabilityZone: String? = nil, groupName: String? = nil) { - self.availabilityZone = availabilityZone - self.groupName = groupName - } - - private enum CodingKeys: String, CodingKey { - case availabilityZone = "AvailabilityZone" - case groupName = "GroupName" - } - } - public struct CancelSpotFleetRequestsSuccessItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentSpotFleetRequestState", location: .body(locationName: "currentSpotFleetRequestState"), required: true, type: .enum), AWSShapeMember(label: "PreviousSpotFleetRequestState", location: .body(locationName: "previousSpotFleetRequestState"), required: true, type: .enum), AWSShapeMember(label: "SpotFleetRequestId", location: .body(locationName: "spotFleetRequestId"), required: true, type: .string) ] - /// The current state of the Spot fleet request. + /// The current state of the Spot Fleet request. public let currentSpotFleetRequestState: BatchState - /// The previous state of the Spot fleet request. + /// The previous state of the Spot Fleet request. public let previousSpotFleetRequestState: BatchState - /// The ID of the Spot fleet request. + /// The ID of the Spot Fleet request. public let spotFleetRequestId: String public init(currentSpotFleetRequestState: BatchState, previousSpotFleetRequestState: BatchState, spotFleetRequestId: String) { @@ -3982,8 +5125,29 @@ extension Ec2 { } } + public struct ScheduledInstancesPlacement: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "GroupName", required: false, type: .string) + ] + /// The Availability Zone. + public let availabilityZone: String? + /// The name of the placement group. + public let groupName: String? + + public init(availabilityZone: String? = nil, groupName: String? = nil) { + self.availabilityZone = availabilityZone + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case availabilityZone = "AvailabilityZone" + case groupName = "GroupName" + } + } + public struct AuthorizeSecurityGroupIngressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceSecurityGroupOwnerId", required: false, type: .string), AWSShapeMember(label: "GroupName", required: false, type: .string), AWSShapeMember(label: "IpPermissions", required: false, type: .structure), @@ -3995,11 +5159,11 @@ extension Ec2 { AWSShapeMember(label: "IpProtocol", required: false, type: .string), AWSShapeMember(label: "GroupId", required: false, type: .string) ] - /// [EC2-Classic] The AWS account number for the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead. + /// [EC2-Classic] The AWS account ID for the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead. public let sourceSecurityGroupOwnerId: String? - /// [EC2-Classic, default VPC] The name of the security group. + /// [EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request. public let groupName: String? - /// A set of IP permissions. Can be used to specify multiple rules in a single command. + /// One or more sets of IP permissions. Can be used to specify multiple rules in a single command. public let ipPermissions: IpPermissionList? /// The CIDR IPv4 address range. You can't specify this parameter when specifying a source security group. public let cidrIp: String? @@ -4007,13 +5171,13 @@ extension Ec2 { public let sourceSecurityGroupName: String? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. For the ICMP/ICMPv6 type number, use -1 to specify all types. + /// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. For the ICMP/ICMPv6 type number, use -1 to specify all types. If you specify all ICMP/ICMPv6 types, you must specify all codes. public let fromPort: Int32? - /// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code number. For the ICMP/ICMPv6 code number, use -1 to specify all codes. + /// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code number. For the ICMP/ICMPv6 code number, use -1 to specify all codes. If you specify all ICMP/ICMPv6 types, you must specify all codes. public let toPort: Int32? /// The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). (VPC only) Use -1 to specify all protocols. If you specify -1, or a protocol number other than tcp, udp, icmp, or 58 (ICMPv6), traffic on all ports is allowed, regardless of any ports you specify. For tcp, udp, and icmp, you must specify a port range. For protocol 58 (ICMPv6), you can optionally specify a port range; if you don't, traffic for all types and codes is allowed. public let ipProtocol: String? - /// The ID of the security group. Required for a nondefault VPC. + /// The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. public let groupId: String? public init(sourceSecurityGroupOwnerId: String? = nil, groupName: String? = nil, ipPermissions: IpPermissionList? = nil, cidrIp: String? = nil, sourceSecurityGroupName: String? = nil, dryRun: Bool? = nil, fromPort: Int32? = nil, toPort: Int32? = nil, ipProtocol: String? = nil, groupId: String? = nil) { @@ -4044,7 +5208,7 @@ extension Ec2 { } public struct KeyNameStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyName", required: false, type: .list) ] public let keyName: [String]? @@ -4059,7 +5223,7 @@ extension Ec2 { } public struct PortRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "From", location: .body(locationName: "from"), required: false, type: .integer), AWSShapeMember(label: "To", location: .body(locationName: "to"), required: false, type: .integer) ] @@ -4080,7 +5244,7 @@ extension Ec2 { } public struct InstanceState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .enum), AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .integer) ] @@ -4100,6 +5264,57 @@ extension Ec2 { } } + public struct ServiceDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZones", location: .body(locationName: "availabilityZoneSet"), required: false, type: .structure), + AWSShapeMember(label: "ServiceName", location: .body(locationName: "serviceName"), required: false, type: .string), + AWSShapeMember(label: "VpcEndpointPolicySupported", location: .body(locationName: "vpcEndpointPolicySupported"), required: false, type: .boolean), + AWSShapeMember(label: "AcceptanceRequired", location: .body(locationName: "acceptanceRequired"), required: false, type: .boolean), + AWSShapeMember(label: "PrivateDnsName", location: .body(locationName: "privateDnsName"), required: false, type: .string), + AWSShapeMember(label: "Owner", location: .body(locationName: "owner"), required: false, type: .string), + AWSShapeMember(label: "ServiceType", location: .body(locationName: "serviceType"), required: false, type: .structure), + AWSShapeMember(label: "BaseEndpointDnsNames", location: .body(locationName: "baseEndpointDnsNameSet"), required: false, type: .structure) + ] + /// The Availability Zones in which the service is available. + public let availabilityZones: ValueStringList? + /// The Amazon Resource Name (ARN) of the service. + public let serviceName: String? + /// Indicates whether the service supports endpoint policies. + public let vpcEndpointPolicySupported: Bool? + /// Indicates whether VPC endpoint connection requests to the service must be accepted by the service owner. + public let acceptanceRequired: Bool? + /// The private DNS name for the service. + public let privateDnsName: String? + /// The AWS account ID of the service owner. + public let owner: String? + /// The type of service. + public let serviceType: ServiceTypeDetailSet? + /// The DNS names for the service. + public let baseEndpointDnsNames: ValueStringList? + + public init(availabilityZones: ValueStringList? = nil, serviceName: String? = nil, vpcEndpointPolicySupported: Bool? = nil, acceptanceRequired: Bool? = nil, privateDnsName: String? = nil, owner: String? = nil, serviceType: ServiceTypeDetailSet? = nil, baseEndpointDnsNames: ValueStringList? = nil) { + self.availabilityZones = availabilityZones + self.serviceName = serviceName + self.vpcEndpointPolicySupported = vpcEndpointPolicySupported + self.acceptanceRequired = acceptanceRequired + self.privateDnsName = privateDnsName + self.owner = owner + self.serviceType = serviceType + self.baseEndpointDnsNames = baseEndpointDnsNames + } + + private enum CodingKeys: String, CodingKey { + case availabilityZones = "availabilityZoneSet" + case serviceName = "serviceName" + case vpcEndpointPolicySupported = "vpcEndpointPolicySupported" + case acceptanceRequired = "acceptanceRequired" + case privateDnsName = "privateDnsName" + case owner = "owner" + case serviceType = "serviceType" + case baseEndpointDnsNames = "baseEndpointDnsNameSet" + } + } + public enum Tenancy: String, CustomStringConvertible, Codable { case `default` = "default" case dedicated = "dedicated" @@ -4108,7 +5323,7 @@ extension Ec2 { } public struct VgwTelemetryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VgwTelemetry]? @@ -4123,7 +5338,7 @@ extension Ec2 { } public struct InstancePrivateIpAddress: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Association", location: .body(locationName: "association"), required: false, type: .structure), AWSShapeMember(label: "PrivateDnsName", location: .body(locationName: "privateDnsName"), required: false, type: .string), AWSShapeMember(label: "Primary", location: .body(locationName: "primary"), required: false, type: .boolean), @@ -4154,7 +5369,7 @@ extension Ec2 { } public struct HostProperties: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Sockets", location: .body(locationName: "sockets"), required: false, type: .integer), AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .string), AWSShapeMember(label: "TotalVCpus", location: .body(locationName: "totalVCpus"), required: false, type: .integer), @@ -4185,7 +5400,7 @@ extension Ec2 { } public struct UnassignPrivateIpAddressesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: true, type: .string), AWSShapeMember(label: "PrivateIpAddresses", location: .body(locationName: "privateIpAddress"), required: true, type: .structure) ] @@ -4205,8 +5420,23 @@ extension Ec2 { } } + public struct RegionList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [Region]? + + public init(item: [Region]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct SecurityGroupReference: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReferencingVpcId", location: .body(locationName: "referencingVpcId"), required: true, type: .string), AWSShapeMember(label: "GroupId", location: .body(locationName: "groupId"), required: true, type: .string), AWSShapeMember(label: "VpcPeeringConnectionId", location: .body(locationName: "vpcPeeringConnectionId"), required: false, type: .string) @@ -4231,23 +5461,8 @@ extension Ec2 { } } - public struct RegionList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) - ] - public let item: [Region]? - - public init(item: [Region]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "item" - } - } - public struct PriceSchedule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Price", location: .body(locationName: "price"), required: false, type: .double), AWSShapeMember(label: "CurrencyCode", location: .body(locationName: "currencyCode"), required: false, type: .enum), AWSShapeMember(label: "Term", location: .body(locationName: "term"), required: false, type: .long), @@ -4277,8 +5492,49 @@ extension Ec2 { } } + public struct NetworkInterfacePermission: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), + AWSShapeMember(label: "AwsService", location: .body(locationName: "awsService"), required: false, type: .string), + AWSShapeMember(label: "AwsAccountId", location: .body(locationName: "awsAccountId"), required: false, type: .string), + AWSShapeMember(label: "Permission", location: .body(locationName: "permission"), required: false, type: .enum), + AWSShapeMember(label: "NetworkInterfacePermissionId", location: .body(locationName: "networkInterfacePermissionId"), required: false, type: .string), + AWSShapeMember(label: "PermissionState", location: .body(locationName: "permissionState"), required: false, type: .structure) + ] + /// The ID of the network interface. + public let networkInterfaceId: String? + /// The AWS service. + public let awsService: String? + /// The AWS account ID. + public let awsAccountId: String? + /// The type of permission. + public let permission: InterfacePermissionType? + /// The ID of the network interface permission. + public let networkInterfacePermissionId: String? + /// Information about the state of the permission. + public let permissionState: NetworkInterfacePermissionState? + + public init(networkInterfaceId: String? = nil, awsService: String? = nil, awsAccountId: String? = nil, permission: InterfacePermissionType? = nil, networkInterfacePermissionId: String? = nil, permissionState: NetworkInterfacePermissionState? = nil) { + self.networkInterfaceId = networkInterfaceId + self.awsService = awsService + self.awsAccountId = awsAccountId + self.permission = permission + self.networkInterfacePermissionId = networkInterfacePermissionId + self.permissionState = permissionState + } + + private enum CodingKeys: String, CodingKey { + case networkInterfaceId = "networkInterfaceId" + case awsService = "awsService" + case awsAccountId = "awsAccountId" + case permission = "permission" + case networkInterfacePermissionId = "networkInterfacePermissionId" + case permissionState = "permissionState" + } + } + public struct DescribePrefixListsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrefixListIds", location: .body(locationName: "PrefixListId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean), @@ -4314,7 +5570,7 @@ extension Ec2 { } public struct DiskImage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Image", required: false, type: .structure), AWSShapeMember(label: "Volume", required: false, type: .structure), AWSShapeMember(label: "Description", required: false, type: .string) @@ -4340,7 +5596,7 @@ extension Ec2 { } public struct DescribeRouteTablesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RouteTableIds", location: .body(locationName: "RouteTableId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -4366,7 +5622,7 @@ extension Ec2 { } public struct DescribeInternetGatewaysResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InternetGateways", location: .body(locationName: "internetGatewaySet"), required: false, type: .structure) ] /// Information about one or more Internet gateways. @@ -4381,8 +5637,29 @@ extension Ec2 { } } + public struct DescribeInstanceCreditSpecificationsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "InstanceCreditSpecifications", location: .body(locationName: "instanceCreditSpecificationSet"), required: false, type: .structure) + ] + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + /// Information about the credit option for CPU usage of an instance. + public let instanceCreditSpecifications: InstanceCreditSpecificationList? + + public init(nextToken: String? = nil, instanceCreditSpecifications: InstanceCreditSpecificationList? = nil) { + self.nextToken = nextToken + self.instanceCreditSpecifications = instanceCreditSpecifications + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case instanceCreditSpecifications = "instanceCreditSpecificationSet" + } + } + public struct InstanceNetworkInterfaceAttachment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttachTime", location: .body(locationName: "attachTime"), required: false, type: .timestamp), AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), AWSShapeMember(label: "DeviceIndex", location: .body(locationName: "deviceIndex"), required: false, type: .integer), @@ -4417,8 +5694,29 @@ extension Ec2 { } } + public struct DescribeVpcEndpointServiceConfigurationsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceConfigurations", location: .body(locationName: "serviceConfigurationSet"), required: false, type: .structure), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + /// Information about one or more services. + public let serviceConfigurations: ServiceConfigurationSet? + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + + public init(serviceConfigurations: ServiceConfigurationSet? = nil, nextToken: String? = nil) { + self.serviceConfigurations = serviceConfigurations + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case serviceConfigurations = "serviceConfigurationSet" + case nextToken = "nextToken" + } + } + public struct NetworkInterfaceIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -4433,7 +5731,7 @@ extension Ec2 { } public struct DisassociateVpcCidrBlockRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: true, type: .string) ] /// The association ID for the CIDR block. @@ -4449,7 +5747,7 @@ extension Ec2 { } public struct DescribeVpcPeeringConnectionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VpcPeeringConnectionIds", location: .body(locationName: "VpcPeeringConnectionId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure) @@ -4458,7 +5756,7 @@ extension Ec2 { public let dryRun: Bool? /// One or more VPC peering connection IDs. Default: Describes all your VPC peering connections. public let vpcPeeringConnectionIds: ValueStringList? - /// One or more filters. accepter-vpc-info.cidr-block - The IPv4 CIDR block of the peer VPC. accepter-vpc-info.owner-id - The AWS account ID of the owner of the peer VPC. accepter-vpc-info.vpc-id - The ID of the peer VPC. expiration-time - The expiration date and time for the VPC peering connection. requester-vpc-info.cidr-block - The IPv4 CIDR block of the requester's VPC. requester-vpc-info.owner-id - The AWS account ID of the owner of the requester VPC. requester-vpc-info.vpc-id - The ID of the requester VPC. status-code - The status of the VPC peering connection (pending-acceptance | failed | expired | provisioning | active | deleted | rejected). status-message - A message that provides more information about the status of the VPC peering connection, if applicable. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-peering-connection-id - The ID of the VPC peering connection. + /// One or more filters. accepter-vpc-info.cidr-block - The IPv4 CIDR block of the accepter VPC. accepter-vpc-info.owner-id - The AWS account ID of the owner of the accepter VPC. accepter-vpc-info.vpc-id - The ID of the accepter VPC. expiration-time - The expiration date and time for the VPC peering connection. requester-vpc-info.cidr-block - The IPv4 CIDR block of the requester's VPC. requester-vpc-info.owner-id - The AWS account ID of the owner of the requester VPC. requester-vpc-info.vpc-id - The ID of the requester VPC. status-code - The status of the VPC peering connection (pending-acceptance | failed | expired | provisioning | active | deleting | deleted | rejected). status-message - A message that provides more information about the status of the VPC peering connection, if applicable. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-peering-connection-id - The ID of the VPC peering connection. public let filters: FilterList? public init(dryRun: Bool? = nil, vpcPeeringConnectionIds: ValueStringList? = nil, filters: FilterList? = nil) { @@ -4475,7 +5773,7 @@ extension Ec2 { } public struct DetachClassicLinkVpcRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -4500,17 +5798,32 @@ extension Ec2 { } } - public struct ReservationValue: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "HourlyPrice", location: .body(locationName: "hourlyPrice"), required: false, type: .string), - AWSShapeMember(label: "RemainingTotalValue", location: .body(locationName: "remainingTotalValue"), required: false, type: .string), - AWSShapeMember(label: "RemainingUpfrontValue", location: .body(locationName: "remainingUpfrontValue"), required: false, type: .string) + public struct UnsuccessfulItemList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The hourly rate of the reservation. - public let hourlyPrice: String? - /// The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice * number of hours remaining). - public let remainingTotalValue: String? - /// The remaining upfront cost of the reservation. + public let item: [UnsuccessfulItem]? + + public init(item: [UnsuccessfulItem]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct ReservationValue: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "HourlyPrice", location: .body(locationName: "hourlyPrice"), required: false, type: .string), + AWSShapeMember(label: "RemainingTotalValue", location: .body(locationName: "remainingTotalValue"), required: false, type: .string), + AWSShapeMember(label: "RemainingUpfrontValue", location: .body(locationName: "remainingUpfrontValue"), required: false, type: .string) + ] + /// The hourly rate of the reservation. + public let hourlyPrice: String? + /// The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice * number of hours remaining). + public let remainingTotalValue: String? + /// The remaining upfront cost of the reservation. public let remainingUpfrontValue: String? public init(hourlyPrice: String? = nil, remainingTotalValue: String? = nil, remainingUpfrontValue: String? = nil) { @@ -4527,7 +5840,7 @@ extension Ec2 { } public struct DetachClassicLinkVpcResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] /// Returns true if the request succeeds; otherwise, it returns an error. @@ -4542,23 +5855,8 @@ extension Ec2 { } } - public struct UnsuccessfulItemList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) - ] - public let item: [UnsuccessfulItem]? - - public init(item: [UnsuccessfulItem]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "item" - } - } - public struct PrivateIpAddressSpecificationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [PrivateIpAddressSpecification]? @@ -4573,7 +5871,7 @@ extension Ec2 { } public struct S3Storage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .body(locationName: "bucket"), required: false, type: .string), AWSShapeMember(label: "AWSAccessKeyId", required: false, type: .string), AWSShapeMember(label: "UploadPolicySignature", location: .body(locationName: "uploadPolicySignature"), required: false, type: .string), @@ -4608,8 +5906,49 @@ extension Ec2 { } } + public struct LaunchTemplateSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateName", required: false, type: .string), + AWSShapeMember(label: "LaunchTemplateId", required: false, type: .string), + AWSShapeMember(label: "Version", required: false, type: .string) + ] + /// The name of the launch template. + public let launchTemplateName: String? + /// The ID of the launch template. + public let launchTemplateId: String? + /// The version number of the launch template. Default: The default version for the launch template. + public let version: String? + + public init(launchTemplateName: String? = nil, launchTemplateId: String? = nil, version: String? = nil) { + self.launchTemplateName = launchTemplateName + self.launchTemplateId = launchTemplateId + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateName = "LaunchTemplateName" + case launchTemplateId = "LaunchTemplateId" + case version = "Version" + } + } + + public struct InstanceCreditSpecificationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [InstanceCreditSpecification]? + + public init(item: [InstanceCreditSpecification]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct VolumeAttachmentList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VolumeAttachment]? @@ -4624,7 +5963,7 @@ extension Ec2 { } public struct DescribeInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "Reservations", location: .body(locationName: "reservationSet"), required: false, type: .structure) ] @@ -4645,7 +5984,7 @@ extension Ec2 { } public struct DescribeReservedInstancesListingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesId", location: .body(locationName: "reservedInstancesId"), required: false, type: .string), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "ReservedInstancesListingId", location: .body(locationName: "reservedInstancesListingId"), required: false, type: .string) @@ -4671,7 +6010,7 @@ extension Ec2 { } public struct ScheduledInstancesSecurityGroupIdSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroupId", required: false, type: .list) ] public let securityGroupId: [String]? @@ -4694,7 +6033,7 @@ extension Ec2 { } public struct AccountAttributeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [AccountAttribute]? @@ -4709,7 +6048,7 @@ extension Ec2 { } public struct CancelBundleTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BundleId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -4730,7 +6069,7 @@ extension Ec2 { } public struct ImageDiskContainerList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ImageDiskContainer]? @@ -4745,7 +6084,7 @@ extension Ec2 { } public struct DeleteCustomerGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomerGatewayId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -4766,7 +6105,7 @@ extension Ec2 { } public struct DescribeHostsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Hosts", location: .body(locationName: "hostSet"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] @@ -4793,7 +6132,7 @@ extension Ec2 { } public struct NatGatewayAddressList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [NatGatewayAddress]? @@ -4808,15 +6147,15 @@ extension Ec2 { } public struct PurchaseHostReservationResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Purchase", location: .body(locationName: "purchase"), required: false, type: .list), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Purchase", location: .body(locationName: "purchase"), required: false, type: .structure), AWSShapeMember(label: "TotalUpfrontPrice", location: .body(locationName: "totalUpfrontPrice"), required: false, type: .string), AWSShapeMember(label: "CurrencyCode", location: .body(locationName: "currencyCode"), required: false, type: .enum), AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), AWSShapeMember(label: "TotalHourlyPrice", location: .body(locationName: "totalHourlyPrice"), required: false, type: .string) ] /// Describes the details of the purchase. - public let purchase: [Purchase]? + public let purchase: PurchaseSet? /// The total amount that will be charged to your account when you purchase the reservation. public let totalUpfrontPrice: String? /// The currency in which the totalUpfrontPrice and totalHourlyPrice amounts are specified. At this time, the only supported currency is USD. @@ -4826,7 +6165,7 @@ extension Ec2 { /// The total hourly price of the reservation calculated per hour. public let totalHourlyPrice: String? - public init(purchase: [Purchase]? = nil, totalUpfrontPrice: String? = nil, currencyCode: CurrencyCodeValues? = nil, clientToken: String? = nil, totalHourlyPrice: String? = nil) { + public init(purchase: PurchaseSet? = nil, totalUpfrontPrice: String? = nil, currencyCode: CurrencyCodeValues? = nil, clientToken: String? = nil, totalHourlyPrice: String? = nil) { self.purchase = purchase self.totalUpfrontPrice = totalUpfrontPrice self.currencyCode = currencyCode @@ -4843,8 +6182,24 @@ extension Ec2 { } } + public struct CreateLaunchTemplateResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplate", location: .body(locationName: "launchTemplate"), required: false, type: .structure) + ] + /// Information about the launch template. + public let launchTemplate: LaunchTemplate? + + public init(launchTemplate: LaunchTemplate? = nil) { + self.launchTemplate = launchTemplate + } + + private enum CodingKeys: String, CodingKey { + case launchTemplate = "launchTemplate" + } + } + public struct DeleteEgressOnlyInternetGatewayResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReturnCode", location: .body(locationName: "returnCode"), required: false, type: .boolean) ] /// Returns true if the request succeeds; otherwise, it returns an error. @@ -4860,7 +6215,7 @@ extension Ec2 { } public struct DeleteVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -4881,7 +6236,7 @@ extension Ec2 { } public struct EgressOnlyInternetGatewayIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -4895,8 +6250,23 @@ extension Ec2 { } } + public struct DeleteLaunchTemplateVersionsResponseErrorSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [DeleteLaunchTemplateVersionsResponseErrorItem]? + + public init(item: [DeleteLaunchTemplateVersionsResponseErrorItem]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct RequestHostIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -4911,7 +6281,7 @@ extension Ec2 { } public struct TargetConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OfferingId", location: .body(locationName: "offeringId"), required: false, type: .string), AWSShapeMember(label: "InstanceCount", location: .body(locationName: "instanceCount"), required: false, type: .integer) ] @@ -4932,7 +6302,7 @@ extension Ec2 { } public struct FilterList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filter", required: false, type: .list) ] public let filter: [Filter]? @@ -4947,7 +6317,7 @@ extension Ec2 { } public struct CreateCustomerGatewayResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomerGateway", location: .body(locationName: "customerGateway"), required: false, type: .structure) ] /// Information about the customer gateway. @@ -4963,7 +6333,7 @@ extension Ec2 { } public struct DescribeBundleTasksResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BundleTasks", location: .body(locationName: "bundleInstanceTasksSet"), required: false, type: .structure) ] /// Information about one or more bundle tasks. @@ -4978,8 +6348,29 @@ extension Ec2 { } } + public struct LoadPermissionModifications: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Remove", required: false, type: .structure), + AWSShapeMember(label: "Add", required: false, type: .structure) + ] + /// The load permissions to remove. + public let remove: LoadPermissionListRequest? + /// The load permissions to add. + public let add: LoadPermissionListRequest? + + public init(remove: LoadPermissionListRequest? = nil, add: LoadPermissionListRequest? = nil) { + self.remove = remove + self.add = add + } + + private enum CodingKeys: String, CodingKey { + case remove = "Remove" + case add = "Add" + } + } + public struct GetReservedInstancesExchangeQuoteResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OutputReservedInstancesWillExpireAt", location: .body(locationName: "outputReservedInstancesWillExpireAt"), required: false, type: .timestamp), AWSShapeMember(label: "TargetConfigurationValueRollup", location: .body(locationName: "targetConfigurationValueRollup"), required: false, type: .structure), AWSShapeMember(label: "IsValidExchange", location: .body(locationName: "isValidExchange"), required: false, type: .boolean), @@ -5035,7 +6426,7 @@ extension Ec2 { } public struct InstanceExportDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), AWSShapeMember(label: "TargetEnvironment", location: .body(locationName: "targetEnvironment"), required: false, type: .enum) ] @@ -5055,44 +6446,55 @@ extension Ec2 { } } - public struct NetworkAcl: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IsDefault", location: .body(locationName: "default"), required: false, type: .boolean), - AWSShapeMember(label: "Entries", location: .body(locationName: "entrySet"), required: false, type: .structure), - AWSShapeMember(label: "NetworkAclId", location: .body(locationName: "networkAclId"), required: false, type: .string), - AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), - AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), - AWSShapeMember(label: "Associations", location: .body(locationName: "associationSet"), required: false, type: .structure) + public struct DescribeNetworkInterfacePermissionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NetworkInterfacePermissions", location: .body(locationName: "networkInterfacePermissions"), required: false, type: .structure), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] - /// Indicates whether this is the default network ACL for the VPC. - public let isDefault: Bool? - /// One or more entries (rules) in the network ACL. - public let entries: NetworkAclEntryList? - /// The ID of the network ACL. - public let networkAclId: String? - /// The ID of the VPC for the network ACL. - public let vpcId: String? - /// Any tags assigned to the network ACL. - public let tags: TagList? - /// Any associations between the network ACL and one or more subnets - public let associations: NetworkAclAssociationList? + /// The network interface permissions. + public let networkInterfacePermissions: NetworkInterfacePermissionList? + /// The token to use to retrieve the next page of results. + public let nextToken: String? - public init(isDefault: Bool? = nil, entries: NetworkAclEntryList? = nil, networkAclId: String? = nil, vpcId: String? = nil, tags: TagList? = nil, associations: NetworkAclAssociationList? = nil) { - self.isDefault = isDefault - self.entries = entries - self.networkAclId = networkAclId - self.vpcId = vpcId - self.tags = tags - self.associations = associations + public init(networkInterfacePermissions: NetworkInterfacePermissionList? = nil, nextToken: String? = nil) { + self.networkInterfacePermissions = networkInterfacePermissions + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case isDefault = "default" - case entries = "entrySet" - case networkAclId = "networkAclId" - case vpcId = "vpcId" - case tags = "tagSet" - case associations = "associationSet" + case networkInterfacePermissions = "networkInterfacePermissions" + case nextToken = "nextToken" + } + } + + public struct PciId: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VendorId", required: false, type: .string), + AWSShapeMember(label: "DeviceId", required: false, type: .string), + AWSShapeMember(label: "SubsystemVendorId", required: false, type: .string), + AWSShapeMember(label: "SubsystemId", required: false, type: .string) + ] + /// The ID of the vendor. + public let vendorId: String? + /// The ID of the device. + public let deviceId: String? + /// The ID of the vendor for the subsystem. + public let subsystemVendorId: String? + /// The ID of the subsystem. + public let subsystemId: String? + + public init(vendorId: String? = nil, deviceId: String? = nil, subsystemVendorId: String? = nil, subsystemId: String? = nil) { + self.vendorId = vendorId + self.deviceId = deviceId + self.subsystemVendorId = subsystemVendorId + self.subsystemId = subsystemId + } + + private enum CodingKeys: String, CodingKey { + case vendorId = "VendorId" + case deviceId = "DeviceId" + case subsystemVendorId = "SubsystemVendorId" + case subsystemId = "SubsystemId" } } @@ -5103,7 +6505,7 @@ extension Ec2 { } public struct RevokeSecurityGroupIngressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceSecurityGroupOwnerId", required: false, type: .string), AWSShapeMember(label: "GroupName", required: false, type: .string), AWSShapeMember(label: "IpPermissions", required: false, type: .structure), @@ -5117,9 +6519,9 @@ extension Ec2 { ] /// [EC2-Classic] The AWS account ID of the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead. public let sourceSecurityGroupOwnerId: String? - /// [EC2-Classic, default VPC] The name of the security group. + /// [EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request. public let groupName: String? - /// A set of IP permissions. You can't specify a source security group and a CIDR IP address range. + /// One or more sets of IP permissions. You can't specify a source security group and a CIDR IP address range in the same set of permissions. public let ipPermissions: IpPermissionList? /// The CIDR IP address range. You can't specify this parameter when specifying a source security group. public let cidrIp: String? @@ -5133,7 +6535,7 @@ extension Ec2 { public let toPort: Int32? /// The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). Use -1 to specify all. public let ipProtocol: String? - /// The ID of the security group. Required for a security group in a nondefault VPC. + /// The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. public let groupId: String? public init(sourceSecurityGroupOwnerId: String? = nil, groupName: String? = nil, ipPermissions: IpPermissionList? = nil, cidrIp: String? = nil, sourceSecurityGroupName: String? = nil, dryRun: Bool? = nil, fromPort: Int32? = nil, toPort: Int32? = nil, ipProtocol: String? = nil, groupId: String? = nil) { @@ -5163,8 +6565,49 @@ extension Ec2 { } } + public struct NetworkAcl: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IsDefault", location: .body(locationName: "default"), required: false, type: .boolean), + AWSShapeMember(label: "Entries", location: .body(locationName: "entrySet"), required: false, type: .structure), + AWSShapeMember(label: "NetworkAclId", location: .body(locationName: "networkAclId"), required: false, type: .string), + AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), + AWSShapeMember(label: "Associations", location: .body(locationName: "associationSet"), required: false, type: .structure) + ] + /// Indicates whether this is the default network ACL for the VPC. + public let isDefault: Bool? + /// One or more entries (rules) in the network ACL. + public let entries: NetworkAclEntryList? + /// The ID of the network ACL. + public let networkAclId: String? + /// The ID of the VPC for the network ACL. + public let vpcId: String? + /// Any tags assigned to the network ACL. + public let tags: TagList? + /// Any associations between the network ACL and one or more subnets + public let associations: NetworkAclAssociationList? + + public init(isDefault: Bool? = nil, entries: NetworkAclEntryList? = nil, networkAclId: String? = nil, vpcId: String? = nil, tags: TagList? = nil, associations: NetworkAclAssociationList? = nil) { + self.isDefault = isDefault + self.entries = entries + self.networkAclId = networkAclId + self.vpcId = vpcId + self.tags = tags + self.associations = associations + } + + private enum CodingKeys: String, CodingKey { + case isDefault = "default" + case entries = "entrySet" + case networkAclId = "networkAclId" + case vpcId = "vpcId" + case tags = "tagSet" + case associations = "associationSet" + } + } + public struct DescribeKeyPairsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyPairs", location: .body(locationName: "keySet"), required: false, type: .structure) ] /// Information about one or more key pairs. @@ -5180,7 +6623,7 @@ extension Ec2 { } public struct ScheduledInstancesPrivateIpAddressConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Primary", required: false, type: .boolean), AWSShapeMember(label: "PrivateIpAddress", required: false, type: .string) ] @@ -5200,39 +6643,24 @@ extension Ec2 { } } - public struct PciId: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VendorId", required: false, type: .string), - AWSShapeMember(label: "DeviceId", required: false, type: .string), - AWSShapeMember(label: "SubsystemVendorId", required: false, type: .string), - AWSShapeMember(label: "SubsystemId", required: false, type: .string) + public struct ResetFpgaImageAttributeResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] - /// The ID of the vendor. - public let vendorId: String? - /// The ID of the device. - public let deviceId: String? - /// The ID of the vendor for the subsystem. - public let subsystemVendorId: String? - /// The ID of the subsystem. - public let subsystemId: String? + /// Is true if the request succeeds, and an error otherwise. + public let `return`: Bool? - public init(vendorId: String? = nil, deviceId: String? = nil, subsystemVendorId: String? = nil, subsystemId: String? = nil) { - self.vendorId = vendorId - self.deviceId = deviceId - self.subsystemVendorId = subsystemVendorId - self.subsystemId = subsystemId + public init(return: Bool? = nil) { + self.`return` = `return` } private enum CodingKeys: String, CodingKey { - case vendorId = "VendorId" - case deviceId = "DeviceId" - case subsystemVendorId = "SubsystemVendorId" - case subsystemId = "SubsystemId" + case `return` = "return" } } public struct CancelReservedInstancesListingResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesListings", location: .body(locationName: "reservedInstancesListingsSet"), required: false, type: .structure) ] /// The Reserved Instance listing. @@ -5248,7 +6676,7 @@ extension Ec2 { } public struct ReservationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Reservation]? @@ -5263,14 +6691,14 @@ extension Ec2 { } public struct AcceptReservedInstancesExchangeQuoteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstanceIds", location: .body(locationName: "ReservedInstanceId"), required: true, type: .structure), AWSShapeMember(label: "TargetConfigurations", location: .body(locationName: "TargetConfiguration"), required: false, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean) ] - /// The IDs of the Convertible Reserved Instances to exchange for other Convertible Reserved Instances of the same or higher value. + /// The IDs of the Convertible Reserved Instances to exchange for another Convertible Reserved Instance of the same or higher value. public let reservedInstanceIds: ReservedInstanceIdSet - /// The configurations of the Convertible Reserved Instance offerings that you are purchasing in this exchange. + /// The configuration of the target Convertible Reserved Instance to exchange for your current Convertible Reserved Instances. public let targetConfigurations: TargetConfigurationRequestSet? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -5289,15 +6717,19 @@ extension Ec2 { } public enum State: String, CustomStringConvertible, Codable { + case pendingacceptance = "PendingAcceptance" case pending = "Pending" case available = "Available" case deleting = "Deleting" case deleted = "Deleted" + case rejected = "Rejected" + case failed = "Failed" + case expired = "Expired" public var description: String { return self.rawValue } } public struct BundleInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "Storage", required: true, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -5323,7 +6755,7 @@ extension Ec2 { } public struct DescribeVolumesModificationsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "VolumesModifications", location: .body(locationName: "volumeModificationSet"), required: false, type: .structure) ] @@ -5344,7 +6776,7 @@ extension Ec2 { } public struct DescribeVpcClassicLinkRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "VpcIds", location: .body(locationName: "VpcId"), required: false, type: .structure) @@ -5370,7 +6802,7 @@ extension Ec2 { } public struct DhcpOptionsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [DhcpOptions]? @@ -5385,7 +6817,7 @@ extension Ec2 { } public struct VpcClassicLinkList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VpcClassicLink]? @@ -5400,7 +6832,7 @@ extension Ec2 { } public struct SpotInstanceRequestList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [SpotInstanceRequest]? @@ -5415,7 +6847,7 @@ extension Ec2 { } public struct DescribeVolumeAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VolumeId", required: true, type: .string), AWSShapeMember(label: "Attribute", required: false, type: .enum) @@ -5440,37 +6872,24 @@ extension Ec2 { } } - public struct GetPasswordDataRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceId", required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + public struct TargetGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: true, type: .string) ] - /// The ID of the Windows instance. - public let instanceId: String - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? + /// The Amazon Resource Name (ARN) of the target group. + public let arn: String - public init(instanceId: String, dryRun: Bool? = nil) { - self.instanceId = instanceId - self.dryRun = dryRun + public init(arn: String) { + self.arn = arn } private enum CodingKeys: String, CodingKey { - case instanceId = "InstanceId" - case dryRun = "dryRun" + case arn = "arn" } } - public enum RIProductDescription: String, CustomStringConvertible, Codable { - case linuxUnix = "Linux/UNIX" - case linuxUnixAmazonVpc = "Linux/UNIX (Amazon VPC)" - case windows = "Windows" - case windowsAmazonVpc = "Windows (Amazon VPC)" - public var description: String { return self.rawValue } - } - public struct ReportInstanceStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", location: .body(locationName: "startTime"), required: false, type: .timestamp), AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: true, type: .enum), AWSShapeMember(label: "EndTime", location: .body(locationName: "endTime"), required: false, type: .timestamp), @@ -5487,7 +6906,7 @@ extension Ec2 { public let endTime: TimeStamp? /// One or more instances. public let instances: InstanceIdStringList - /// One or more reason codes that describes the health state of your instance. instance-stuck-in-state: My instance is stuck in a state. unresponsive: My instance is unresponsive. not-accepting-credentials: My instance is not accepting my credentials. password-not-available: A password is not available for my instance. performance-network: My instance is experiencing performance problems which I believe are network related. performance-instance-store: My instance is experiencing performance problems which I believe are related to the instance stores. performance-ebs-volume: My instance is experiencing performance problems which I believe are related to an EBS volume. performance-other: My instance is experiencing performance problems. other: [explain using the description parameter] + /// One or more reason codes that describe the health state of your instance. instance-stuck-in-state: My instance is stuck in a state. unresponsive: My instance is unresponsive. not-accepting-credentials: My instance is not accepting my credentials. password-not-available: A password is not available for my instance. performance-network: My instance is experiencing performance problems that I believe are network related. performance-instance-store: My instance is experiencing performance problems that I believe are related to the instance stores. performance-ebs-volume: My instance is experiencing performance problems that I believe are related to an EBS volume. performance-other: My instance is experiencing performance problems. other: [explain using the description parameter] public let reasonCodes: ReasonCodesList /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -5515,12 +6934,41 @@ extension Ec2 { } } - public struct AllocateHostsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "HostIds", location: .body(locationName: "hostIdSet"), required: false, type: .structure) - ] - /// The ID of the allocated Dedicated Host. This is used when you want to launch an instance onto a specific host. - public let hostIds: ResponseHostIdList? + public enum RIProductDescription: String, CustomStringConvertible, Codable { + case linuxUnix = "Linux/UNIX" + case linuxUnixAmazonVpc = "Linux/UNIX (Amazon VPC)" + case windows = "Windows" + case windowsAmazonVpc = "Windows (Amazon VPC)" + public var description: String { return self.rawValue } + } + + public struct GetPasswordDataRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceId", required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// The ID of the Windows instance. + public let instanceId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(instanceId: String, dryRun: Bool? = nil) { + self.instanceId = instanceId + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case instanceId = "InstanceId" + case dryRun = "dryRun" + } + } + + public struct AllocateHostsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "HostIds", location: .body(locationName: "hostIdSet"), required: false, type: .structure) + ] + /// The ID of the allocated Dedicated Host. This is used when you want to launch an instance onto a specific host. + public let hostIds: ResponseHostIdList? public init(hostIds: ResponseHostIdList? = nil) { self.hostIds = hostIds @@ -5532,7 +6980,7 @@ extension Ec2 { } public struct InternetGatewayAttachmentList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InternetGatewayAttachment]? @@ -5547,7 +6995,7 @@ extension Ec2 { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", location: .body(locationName: "value"), required: false, type: .string), AWSShapeMember(label: "Key", location: .body(locationName: "key"), required: false, type: .string) ] @@ -5568,7 +7016,7 @@ extension Ec2 { } public struct DescribeRegionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RegionNames", location: .body(locationName: "RegionName"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -5594,7 +7042,7 @@ extension Ec2 { } public struct TagDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", location: .body(locationName: "key"), required: false, type: .string), AWSShapeMember(label: "ResourceId", location: .body(locationName: "resourceId"), required: false, type: .string), AWSShapeMember(label: "Value", location: .body(locationName: "value"), required: false, type: .string), @@ -5625,7 +7073,7 @@ extension Ec2 { } public struct RegionNameStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RegionName", required: false, type: .list) ] public let regionName: [String]? @@ -5639,8 +7087,24 @@ extension Ec2 { } } + public struct DescribeSpotDatafeedSubscriptionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(dryRun: Bool? = nil) { + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "dryRun" + } + } + public struct ProvisionedBandwidth: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Provisioned", location: .body(locationName: "provisioned"), required: false, type: .string), AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .string), AWSShapeMember(label: "RequestTime", location: .body(locationName: "requestTime"), required: false, type: .timestamp), @@ -5675,50 +7139,8 @@ extension Ec2 { } } - public struct DescribeSnapshotAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SnapshotId", required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "Attribute", required: true, type: .enum) - ] - /// The ID of the EBS snapshot. - public let snapshotId: String - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// The snapshot attribute you would like to view. - public let attribute: SnapshotAttributeName - - public init(snapshotId: String, dryRun: Bool? = nil, attribute: SnapshotAttributeName) { - self.snapshotId = snapshotId - self.dryRun = dryRun - self.attribute = attribute - } - - private enum CodingKeys: String, CodingKey { - case snapshotId = "SnapshotId" - case dryRun = "dryRun" - case attribute = "Attribute" - } - } - - public struct DescribeSpotDatafeedSubscriptionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) - ] - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - - public init(dryRun: Bool? = nil) { - self.dryRun = dryRun - } - - private enum CodingKeys: String, CodingKey { - case dryRun = "dryRun" - } - } - public struct DescribeSnapshotAttributeResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProductCodes", location: .body(locationName: "productCodes"), required: false, type: .structure), AWSShapeMember(label: "SnapshotId", location: .body(locationName: "snapshotId"), required: false, type: .string), AWSShapeMember(label: "CreateVolumePermissions", location: .body(locationName: "createVolumePermission"), required: false, type: .structure) @@ -5743,29 +7165,34 @@ extension Ec2 { } } - public struct RecurringCharge: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Frequency", location: .body(locationName: "frequency"), required: false, type: .enum), - AWSShapeMember(label: "Amount", location: .body(locationName: "amount"), required: false, type: .double) + public struct DescribeSnapshotAttributeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SnapshotId", required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "Attribute", required: true, type: .enum) ] - /// The frequency of the recurring charge. - public let frequency: RecurringChargeFrequency? - /// The amount of the recurring charge. - public let amount: Double? + /// The ID of the EBS snapshot. + public let snapshotId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The snapshot attribute you would like to view. + public let attribute: SnapshotAttributeName - public init(frequency: RecurringChargeFrequency? = nil, amount: Double? = nil) { - self.frequency = frequency - self.amount = amount + public init(snapshotId: String, dryRun: Bool? = nil, attribute: SnapshotAttributeName) { + self.snapshotId = snapshotId + self.dryRun = dryRun + self.attribute = attribute } private enum CodingKeys: String, CodingKey { - case frequency = "frequency" - case amount = "amount" + case snapshotId = "SnapshotId" + case dryRun = "dryRun" + case attribute = "Attribute" } } public struct DeleteVpcPeeringConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VpcPeeringConnectionId", location: .body(locationName: "vpcPeeringConnectionId"), required: true, type: .string) ] @@ -5786,7 +7213,7 @@ extension Ec2 { } public struct DescribeAvailabilityZonesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "ZoneNames", location: .body(locationName: "ZoneName"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure) @@ -5811,8 +7238,29 @@ extension Ec2 { } } + public struct RecurringCharge: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Frequency", location: .body(locationName: "frequency"), required: false, type: .enum), + AWSShapeMember(label: "Amount", location: .body(locationName: "amount"), required: false, type: .double) + ] + /// The frequency of the recurring charge. + public let frequency: RecurringChargeFrequency? + /// The amount of the recurring charge. + public let amount: Double? + + public init(frequency: RecurringChargeFrequency? = nil, amount: Double? = nil) { + self.frequency = frequency + self.amount = amount + } + + private enum CodingKeys: String, CodingKey { + case frequency = "frequency" + case amount = "amount" + } + } + public struct AssociateRouteTableResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: false, type: .string) ] /// The route table association ID (needed to disassociate the route table). @@ -5827,8 +7275,101 @@ extension Ec2 { } } + public struct CopyFpgaImageResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FpgaImageId", location: .body(locationName: "fpgaImageId"), required: false, type: .string) + ] + /// The ID of the new AFI. + public let fpgaImageId: String? + + public init(fpgaImageId: String? = nil) { + self.fpgaImageId = fpgaImageId + } + + private enum CodingKeys: String, CodingKey { + case fpgaImageId = "fpgaImageId" + } + } + + public struct VersionStringList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [String]? + + public init(item: [String]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct VpnTunnelOptionsSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PreSharedKey", required: false, type: .string), + AWSShapeMember(label: "TunnelInsideCidr", required: false, type: .string) + ] + /// The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway. Constraints: Allowed characters are alphanumeric characters and ._. Must be between 8 and 64 characters in length and cannot start with zero (0). + public let preSharedKey: String? + /// The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway. Constraints: A size /30 CIDR block from the 169.254.0.0/16 range. The following CIDR blocks are reserved and cannot be used: 169.254.0.0/30 169.254.1.0/30 169.254.2.0/30 169.254.3.0/30 169.254.4.0/30 169.254.5.0/30 169.254.169.252/30 + public let tunnelInsideCidr: String? + + public init(preSharedKey: String? = nil, tunnelInsideCidr: String? = nil) { + self.preSharedKey = preSharedKey + self.tunnelInsideCidr = tunnelInsideCidr + } + + private enum CodingKeys: String, CodingKey { + case preSharedKey = "PreSharedKey" + case tunnelInsideCidr = "TunnelInsideCidr" + } + } + + public struct CreateVpcEndpointConnectionNotificationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientToken", required: false, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "VpcEndpointId", required: false, type: .string), + AWSShapeMember(label: "ConnectionNotificationArn", required: true, type: .string), + AWSShapeMember(label: "ServiceId", required: false, type: .string), + AWSShapeMember(label: "ConnectionEvents", required: true, type: .structure) + ] + /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency. + public let clientToken: String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The ID of the endpoint. + public let vpcEndpointId: String? + /// The ARN of the SNS topic for the notifications. + public let connectionNotificationArn: String + /// The ID of the endpoint service. + public let serviceId: String? + /// One or more endpoint events for which to receive notifications. Valid values are Accept, Connect, Delete, and Reject. + public let connectionEvents: ValueStringList + + public init(clientToken: String? = nil, dryRun: Bool? = nil, vpcEndpointId: String? = nil, connectionNotificationArn: String, serviceId: String? = nil, connectionEvents: ValueStringList) { + self.clientToken = clientToken + self.dryRun = dryRun + self.vpcEndpointId = vpcEndpointId + self.connectionNotificationArn = connectionNotificationArn + self.serviceId = serviceId + self.connectionEvents = connectionEvents + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "ClientToken" + case dryRun = "DryRun" + case vpcEndpointId = "VpcEndpointId" + case connectionNotificationArn = "ConnectionNotificationArn" + case serviceId = "ServiceId" + case connectionEvents = "ConnectionEvents" + } + } + public struct Ipv6AddressList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -5842,8 +7383,28 @@ extension Ec2 { } } + public struct LoadPermissionListRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [LoadPermissionRequest]? + + public init(item: [LoadPermissionRequest]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public enum ResetFpgaImageAttributeName: String, CustomStringConvertible, Codable { + case loadpermission = "loadPermission" + public var description: String { return self.rawValue } + } + public struct IcmpTypeCode: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .integer), AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .integer) ] @@ -5864,7 +7425,7 @@ extension Ec2 { } public struct DeleteFlowLogsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FlowLogIds", location: .body(locationName: "FlowLogId"), required: true, type: .structure) ] /// One or more flow log IDs. @@ -5880,7 +7441,7 @@ extension Ec2 { } public struct DescribeVpnConnectionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpnConnectionIds", location: .body(locationName: "VpnConnectionId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -5905,8 +7466,23 @@ extension Ec2 { } } + public struct LaunchTemplateVersionSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [LaunchTemplateVersion]? + + public init(item: [LaunchTemplateVersion]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct ReservedInstanceLimitPrice: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrencyCode", location: .body(locationName: "currencyCode"), required: false, type: .enum), AWSShapeMember(label: "Amount", location: .body(locationName: "amount"), required: false, type: .double) ] @@ -5927,7 +7503,7 @@ extension Ec2 { } public struct NewDhcpConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", location: .body(locationName: "key"), required: false, type: .string), AWSShapeMember(label: "Values", location: .body(locationName: "Value"), required: false, type: .structure) ] @@ -5946,7 +7522,7 @@ extension Ec2 { } public struct KeyPairList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [KeyPairInfo]? @@ -5960,8 +7536,23 @@ extension Ec2 { } } + public struct LaunchTemplateOverridesList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [LaunchTemplateOverrides]? + + public init(item: [LaunchTemplateOverrides]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct NetworkAclEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CidrBlock", location: .body(locationName: "cidrBlock"), required: false, type: .string), AWSShapeMember(label: "IcmpTypeCode", location: .body(locationName: "icmpTypeCode"), required: false, type: .structure), AWSShapeMember(label: "RuleNumber", location: .body(locationName: "ruleNumber"), required: false, type: .integer), @@ -6012,13 +7603,14 @@ extension Ec2 { } public struct Vpc: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsDefault", location: .body(locationName: "isDefault"), required: false, type: .boolean), AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), - AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), - AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), + AWSShapeMember(label: "CidrBlockAssociationSet", location: .body(locationName: "cidrBlockAssociationSet"), required: false, type: .structure), AWSShapeMember(label: "DhcpOptionsId", location: .body(locationName: "dhcpOptionsId"), required: false, type: .string), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), AWSShapeMember(label: "Ipv6CidrBlockAssociationSet", location: .body(locationName: "ipv6CidrBlockAssociationSet"), required: false, type: .structure), + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), AWSShapeMember(label: "InstanceTenancy", location: .body(locationName: "instanceTenancy"), required: false, type: .enum), AWSShapeMember(label: "CidrBlock", location: .body(locationName: "cidrBlock"), required: false, type: .string) ] @@ -6026,26 +7618,29 @@ extension Ec2 { public let isDefault: Bool? /// The ID of the VPC. public let vpcId: String? - /// The current state of the VPC. - public let state: VpcState? - /// Any tags assigned to the VPC. - public let tags: TagList? + /// Information about the IPv4 CIDR blocks associated with the VPC. + public let cidrBlockAssociationSet: VpcCidrBlockAssociationSet? /// The ID of the set of DHCP options you've associated with the VPC (or default if the default options are associated with the VPC). public let dhcpOptionsId: String? + /// The current state of the VPC. + public let state: VpcState? /// Information about the IPv6 CIDR blocks associated with the VPC. public let ipv6CidrBlockAssociationSet: VpcIpv6CidrBlockAssociationSet? + /// Any tags assigned to the VPC. + public let tags: TagList? /// The allowed tenancy of instances launched into the VPC. public let instanceTenancy: Tenancy? - /// The IPv4 CIDR block for the VPC. + /// The primary IPv4 CIDR block for the VPC. public let cidrBlock: String? - public init(isDefault: Bool? = nil, vpcId: String? = nil, state: VpcState? = nil, tags: TagList? = nil, dhcpOptionsId: String? = nil, ipv6CidrBlockAssociationSet: VpcIpv6CidrBlockAssociationSet? = nil, instanceTenancy: Tenancy? = nil, cidrBlock: String? = nil) { + public init(isDefault: Bool? = nil, vpcId: String? = nil, cidrBlockAssociationSet: VpcCidrBlockAssociationSet? = nil, dhcpOptionsId: String? = nil, state: VpcState? = nil, ipv6CidrBlockAssociationSet: VpcIpv6CidrBlockAssociationSet? = nil, tags: TagList? = nil, instanceTenancy: Tenancy? = nil, cidrBlock: String? = nil) { self.isDefault = isDefault self.vpcId = vpcId - self.state = state - self.tags = tags + self.cidrBlockAssociationSet = cidrBlockAssociationSet self.dhcpOptionsId = dhcpOptionsId + self.state = state self.ipv6CidrBlockAssociationSet = ipv6CidrBlockAssociationSet + self.tags = tags self.instanceTenancy = instanceTenancy self.cidrBlock = cidrBlock } @@ -6053,17 +7648,18 @@ extension Ec2 { private enum CodingKeys: String, CodingKey { case isDefault = "isDefault" case vpcId = "vpcId" - case state = "state" - case tags = "tagSet" + case cidrBlockAssociationSet = "cidrBlockAssociationSet" case dhcpOptionsId = "dhcpOptionsId" + case state = "state" case ipv6CidrBlockAssociationSet = "ipv6CidrBlockAssociationSet" + case tags = "tagSet" case instanceTenancy = "instanceTenancy" case cidrBlock = "cidrBlock" } } public struct AvailabilityZoneMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) ] /// The message about the Availability Zone. @@ -6079,7 +7675,7 @@ extension Ec2 { } public struct DescribeStaleSecurityGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", required: false, type: .boolean), AWSShapeMember(label: "VpcId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -6109,8 +7705,24 @@ extension Ec2 { } } + public struct CreateLaunchTemplateVersionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateVersion", location: .body(locationName: "launchTemplateVersion"), required: false, type: .structure) + ] + /// Information about the launch template version. + public let launchTemplateVersion: LaunchTemplateVersion? + + public init(launchTemplateVersion: LaunchTemplateVersion? = nil) { + self.launchTemplateVersion = launchTemplateVersion + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateVersion = "launchTemplateVersion" + } + } + public struct RestoreAddressToClassicRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: true, type: .string) ] @@ -6130,16 +7742,52 @@ extension Ec2 { } } - public struct RouteTable: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Routes", location: .body(locationName: "routeSet"), required: false, type: .structure), - AWSShapeMember(label: "PropagatingVgws", location: .body(locationName: "propagatingVgwSet"), required: false, type: .structure), - AWSShapeMember(label: "RouteTableId", location: .body(locationName: "routeTableId"), required: false, type: .string), - AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), - AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), - AWSShapeMember(label: "Associations", location: .body(locationName: "associationSet"), required: false, type: .structure) - ] - /// The routes in the route table. + public struct VolumeStatusEvent: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NotBefore", location: .body(locationName: "notBefore"), required: false, type: .timestamp), + AWSShapeMember(label: "NotAfter", location: .body(locationName: "notAfter"), required: false, type: .timestamp), + AWSShapeMember(label: "EventType", location: .body(locationName: "eventType"), required: false, type: .string), + AWSShapeMember(label: "EventId", location: .body(locationName: "eventId"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// The earliest start time of the event. + public let notBefore: TimeStamp? + /// The latest end time of the event. + public let notAfter: TimeStamp? + /// The type of this event. + public let eventType: String? + /// The ID of this event. + public let eventId: String? + /// A description of the event. + public let description: String? + + public init(notBefore: TimeStamp? = nil, notAfter: TimeStamp? = nil, eventType: String? = nil, eventId: String? = nil, description: String? = nil) { + self.notBefore = notBefore + self.notAfter = notAfter + self.eventType = eventType + self.eventId = eventId + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case notBefore = "notBefore" + case notAfter = "notAfter" + case eventType = "eventType" + case eventId = "eventId" + case description = "description" + } + } + + public struct RouteTable: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Routes", location: .body(locationName: "routeSet"), required: false, type: .structure), + AWSShapeMember(label: "PropagatingVgws", location: .body(locationName: "propagatingVgwSet"), required: false, type: .structure), + AWSShapeMember(label: "RouteTableId", location: .body(locationName: "routeTableId"), required: false, type: .string), + AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), + AWSShapeMember(label: "Associations", location: .body(locationName: "associationSet"), required: false, type: .structure) + ] + /// The routes in the route table. public let routes: RouteList? /// Any virtual private gateway (VGW) propagating routes. public let propagatingVgws: PropagatingVgwList? @@ -6177,106 +7825,85 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct VolumeStatusEvent: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NotBefore", location: .body(locationName: "notBefore"), required: false, type: .timestamp), - AWSShapeMember(label: "NotAfter", location: .body(locationName: "notAfter"), required: false, type: .timestamp), - AWSShapeMember(label: "EventType", location: .body(locationName: "eventType"), required: false, type: .string), - AWSShapeMember(label: "EventId", location: .body(locationName: "eventId"), required: false, type: .string), - AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) - ] - /// The earliest start time of the event. - public let notBefore: TimeStamp? - /// The latest end time of the event. - public let notAfter: TimeStamp? - /// The type of this event. - public let eventType: String? - /// The ID of this event. - public let eventId: String? - /// A description of the event. - public let description: String? - - public init(notBefore: TimeStamp? = nil, notAfter: TimeStamp? = nil, eventType: String? = nil, eventId: String? = nil, description: String? = nil) { - self.notBefore = notBefore - self.notAfter = notAfter - self.eventType = eventType - self.eventId = eventId - self.description = description - } - - private enum CodingKeys: String, CodingKey { - case notBefore = "notBefore" - case notAfter = "notAfter" - case eventType = "eventType" - case eventId = "eventId" - case description = "description" - } - } - public struct ModifyVpcEndpointRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RemoveRouteTableIds", location: .body(locationName: "RemoveRouteTableId"), required: false, type: .structure), AWSShapeMember(label: "AddRouteTableIds", location: .body(locationName: "AddRouteTableId"), required: false, type: .structure), + AWSShapeMember(label: "RemoveSubnetIds", location: .body(locationName: "RemoveSubnetId"), required: false, type: .structure), + AWSShapeMember(label: "AddSecurityGroupIds", location: .body(locationName: "AddSecurityGroupId"), required: false, type: .structure), + AWSShapeMember(label: "AddSubnetIds", location: .body(locationName: "AddSubnetId"), required: false, type: .structure), + AWSShapeMember(label: "PrivateDnsEnabled", required: false, type: .boolean), AWSShapeMember(label: "DryRun", required: false, type: .boolean), AWSShapeMember(label: "VpcEndpointId", required: true, type: .string), AWSShapeMember(label: "PolicyDocument", required: false, type: .string), - AWSShapeMember(label: "ResetPolicy", required: false, type: .boolean), - AWSShapeMember(label: "RemoveRouteTableIds", location: .body(locationName: "RemoveRouteTableId"), required: false, type: .structure) + AWSShapeMember(label: "RemoveSecurityGroupIds", location: .body(locationName: "RemoveSecurityGroupId"), required: false, type: .structure), + AWSShapeMember(label: "ResetPolicy", required: false, type: .boolean) ] - /// One or more route tables IDs to associate with the endpoint. + /// (Gateway endpoint) One or more route table IDs to disassociate from the endpoint. + public let removeRouteTableIds: ValueStringList? + /// (Gateway endpoint) One or more route tables IDs to associate with the endpoint. public let addRouteTableIds: ValueStringList? + /// (Interface endpoint) One or more subnets IDs in which to remove the endpoint. + public let removeSubnetIds: ValueStringList? + /// (Interface endpoint) One or more security group IDs to associate with the network interface. + public let addSecurityGroupIds: ValueStringList? + /// (Interface endpoint) One or more subnet IDs in which to serve the endpoint. + public let addSubnetIds: ValueStringList? + /// (Interface endpoint) Indicate whether a private hosted zone is associated with the VPC. + public let privateDnsEnabled: Bool? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? /// The ID of the endpoint. public let vpcEndpointId: String - /// A policy document to attach to the endpoint. The policy must be in valid JSON format. + /// (Gateway endpoint) A policy document to attach to the endpoint. The policy must be in valid JSON format. public let policyDocument: String? - /// Specify true to reset the policy document to the default policy. The default policy allows access to the service. + /// (Interface endpoint) One or more security group IDs to disassociate from the network interface. + public let removeSecurityGroupIds: ValueStringList? + /// (Gateway endpoint) Specify true to reset the policy document to the default policy. The default policy allows full access to the service. public let resetPolicy: Bool? - /// One or more route table IDs to disassociate from the endpoint. - public let removeRouteTableIds: ValueStringList? - public init(addRouteTableIds: ValueStringList? = nil, dryRun: Bool? = nil, vpcEndpointId: String, policyDocument: String? = nil, resetPolicy: Bool? = nil, removeRouteTableIds: ValueStringList? = nil) { + public init(removeRouteTableIds: ValueStringList? = nil, addRouteTableIds: ValueStringList? = nil, removeSubnetIds: ValueStringList? = nil, addSecurityGroupIds: ValueStringList? = nil, addSubnetIds: ValueStringList? = nil, privateDnsEnabled: Bool? = nil, dryRun: Bool? = nil, vpcEndpointId: String, policyDocument: String? = nil, removeSecurityGroupIds: ValueStringList? = nil, resetPolicy: Bool? = nil) { + self.removeRouteTableIds = removeRouteTableIds self.addRouteTableIds = addRouteTableIds + self.removeSubnetIds = removeSubnetIds + self.addSecurityGroupIds = addSecurityGroupIds + self.addSubnetIds = addSubnetIds + self.privateDnsEnabled = privateDnsEnabled self.dryRun = dryRun self.vpcEndpointId = vpcEndpointId self.policyDocument = policyDocument + self.removeSecurityGroupIds = removeSecurityGroupIds self.resetPolicy = resetPolicy - self.removeRouteTableIds = removeRouteTableIds } private enum CodingKeys: String, CodingKey { + case removeRouteTableIds = "RemoveRouteTableId" case addRouteTableIds = "AddRouteTableId" + case removeSubnetIds = "RemoveSubnetId" + case addSecurityGroupIds = "AddSecurityGroupId" + case addSubnetIds = "AddSubnetId" + case privateDnsEnabled = "PrivateDnsEnabled" case dryRun = "DryRun" case vpcEndpointId = "VpcEndpointId" case policyDocument = "PolicyDocument" + case removeSecurityGroupIds = "RemoveSecurityGroupId" case resetPolicy = "ResetPolicy" - case removeRouteTableIds = "RemoveRouteTableId" } } - public struct VpcClassicLink: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), - AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), - AWSShapeMember(label: "ClassicLinkEnabled", location: .body(locationName: "classicLinkEnabled"), required: false, type: .boolean) + public struct DisassociateIamInstanceProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssociationId", required: true, type: .string) ] - /// The ID of the VPC. - public let vpcId: String? - /// Any tags assigned to the VPC. - public let tags: TagList? - /// Indicates whether the VPC is enabled for ClassicLink. - public let classicLinkEnabled: Bool? + /// The ID of the IAM instance profile association. + public let associationId: String - public init(vpcId: String? = nil, tags: TagList? = nil, classicLinkEnabled: Bool? = nil) { - self.vpcId = vpcId - self.tags = tags - self.classicLinkEnabled = classicLinkEnabled + public init(associationId: String) { + self.associationId = associationId } private enum CodingKeys: String, CodingKey { - case vpcId = "vpcId" - case tags = "tagSet" - case classicLinkEnabled = "classicLinkEnabled" + case associationId = "AssociationId" } } @@ -6320,6 +7947,12 @@ extension Ec2 { case r416Xlarge = "r4.16xlarge" case x116Xlarge = "x1.16xlarge" case x132Xlarge = "x1.32xlarge" + case x1eXlarge = "x1e.xlarge" + case x1e2Xlarge = "x1e.2xlarge" + case x1e4Xlarge = "x1e.4xlarge" + case x1e8Xlarge = "x1e.8xlarge" + case x1e16Xlarge = "x1e.16xlarge" + case x1e32Xlarge = "x1e.32xlarge" case i2Xlarge = "i2.xlarge" case i22Xlarge = "i2.2xlarge" case i24Xlarge = "i2.4xlarge" @@ -6344,50 +7977,97 @@ extension Ec2 { case c42Xlarge = "c4.2xlarge" case c44Xlarge = "c4.4xlarge" case c48Xlarge = "c4.8xlarge" + case c5Large = "c5.large" + case c5Xlarge = "c5.xlarge" + case c52Xlarge = "c5.2xlarge" + case c54Xlarge = "c5.4xlarge" + case c59Xlarge = "c5.9xlarge" + case c518Xlarge = "c5.18xlarge" case cc14Xlarge = "cc1.4xlarge" case cc28Xlarge = "cc2.8xlarge" case g22Xlarge = "g2.2xlarge" case g28Xlarge = "g2.8xlarge" + case g34Xlarge = "g3.4xlarge" + case g38Xlarge = "g3.8xlarge" + case g316Xlarge = "g3.16xlarge" case cg14Xlarge = "cg1.4xlarge" case p2Xlarge = "p2.xlarge" case p28Xlarge = "p2.8xlarge" case p216Xlarge = "p2.16xlarge" + case p32Xlarge = "p3.2xlarge" + case p38Xlarge = "p3.8xlarge" + case p316Xlarge = "p3.16xlarge" case d2Xlarge = "d2.xlarge" case d22Xlarge = "d2.2xlarge" case d24Xlarge = "d2.4xlarge" case d28Xlarge = "d2.8xlarge" case f12Xlarge = "f1.2xlarge" case f116Xlarge = "f1.16xlarge" + case m5Large = "m5.large" + case m5Xlarge = "m5.xlarge" + case m52Xlarge = "m5.2xlarge" + case m54Xlarge = "m5.4xlarge" + case m512Xlarge = "m5.12xlarge" + case m524Xlarge = "m5.24xlarge" + case h12Xlarge = "h1.2xlarge" + case h14Xlarge = "h1.4xlarge" + case h18Xlarge = "h1.8xlarge" + case h116Xlarge = "h1.16xlarge" public var description: String { return self.rawValue } } - public struct DisassociateIamInstanceProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AssociationId", required: true, type: .string) + public struct VpcClassicLink: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), + AWSShapeMember(label: "ClassicLinkEnabled", location: .body(locationName: "classicLinkEnabled"), required: false, type: .boolean) ] - /// The ID of the IAM instance profile association. - public let associationId: String + /// The ID of the VPC. + public let vpcId: String? + /// Any tags assigned to the VPC. + public let tags: TagList? + /// Indicates whether the VPC is enabled for ClassicLink. + public let classicLinkEnabled: Bool? - public init(associationId: String) { - self.associationId = associationId + public init(vpcId: String? = nil, tags: TagList? = nil, classicLinkEnabled: Bool? = nil) { + self.vpcId = vpcId + self.tags = tags + self.classicLinkEnabled = classicLinkEnabled } private enum CodingKeys: String, CodingKey { - case associationId = "AssociationId" + case vpcId = "vpcId" + case tags = "tagSet" + case classicLinkEnabled = "classicLinkEnabled" + } + } + + public struct LaunchTemplateTagSpecificationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [LaunchTemplateTagSpecification]? + + public init(item: [LaunchTemplateTagSpecification]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" } } public struct DescribeHostReservationOfferingsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OfferingSet", location: .body(locationName: "offeringSet"), required: false, type: .list), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OfferingSet", location: .body(locationName: "offeringSet"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] /// Information about the offerings. - public let offeringSet: [HostOffering]? + public let offeringSet: HostOfferingSet? /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. public let nextToken: String? - public init(offeringSet: [HostOffering]? = nil, nextToken: String? = nil) { + public init(offeringSet: HostOfferingSet? = nil, nextToken: String? = nil) { self.offeringSet = offeringSet self.nextToken = nextToken } @@ -6399,7 +8079,7 @@ extension Ec2 { } public struct NatGatewayList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [NatGateway]? @@ -6414,7 +8094,7 @@ extension Ec2 { } public struct VpcCidrBlockState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), AWSShapeMember(label: "StatusMessage", location: .body(locationName: "statusMessage"), required: false, type: .string) ] @@ -6435,7 +8115,7 @@ extension Ec2 { } public struct NetworkAclAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "NetworkAclAssociationId", location: .body(locationName: "networkAclAssociationId"), required: false, type: .string), AWSShapeMember(label: "NetworkAclId", location: .body(locationName: "networkAclId"), required: false, type: .string) @@ -6466,40 +8146,40 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct DeleteNatGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NatGatewayId", required: true, type: .string) + public struct PurchaseScheduledInstancesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ScheduledInstanceSet", location: .body(locationName: "scheduledInstanceSet"), required: false, type: .structure) ] - /// The ID of the NAT gateway. - public let natGatewayId: String + /// Information about the Scheduled Instances. + public let scheduledInstanceSet: PurchasedScheduledInstanceSet? - public init(natGatewayId: String) { - self.natGatewayId = natGatewayId + public init(scheduledInstanceSet: PurchasedScheduledInstanceSet? = nil) { + self.scheduledInstanceSet = scheduledInstanceSet } private enum CodingKeys: String, CodingKey { - case natGatewayId = "NatGatewayId" + case scheduledInstanceSet = "scheduledInstanceSet" } } - public struct PurchaseScheduledInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ScheduledInstanceSet", location: .body(locationName: "scheduledInstanceSet"), required: false, type: .structure) + public struct DeleteNatGatewayRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NatGatewayId", required: true, type: .string) ] - /// Information about the Scheduled Instances. - public let scheduledInstanceSet: PurchasedScheduledInstanceSet? + /// The ID of the NAT gateway. + public let natGatewayId: String - public init(scheduledInstanceSet: PurchasedScheduledInstanceSet? = nil) { - self.scheduledInstanceSet = scheduledInstanceSet + public init(natGatewayId: String) { + self.natGatewayId = natGatewayId } private enum CodingKeys: String, CodingKey { - case scheduledInstanceSet = "scheduledInstanceSet" + case natGatewayId = "NatGatewayId" } } public struct DescribeVolumeStatusResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "VolumeStatuses", location: .body(locationName: "volumeStatusSet"), required: false, type: .structure) ] @@ -6520,7 +8200,7 @@ extension Ec2 { } public struct AvailableCapacity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailableInstanceCapacity", location: .body(locationName: "availableInstanceCapacity"), required: false, type: .structure), AWSShapeMember(label: "AvailableVCpus", location: .body(locationName: "availableVCpus"), required: false, type: .integer) ] @@ -6540,59 +8220,8 @@ extension Ec2 { } } - public struct SpotPrice: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Timestamp", location: .body(locationName: "timestamp"), required: false, type: .timestamp), - AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .enum), - AWSShapeMember(label: "AvailabilityZone", location: .body(locationName: "availabilityZone"), required: false, type: .string), - AWSShapeMember(label: "SpotPrice", location: .body(locationName: "spotPrice"), required: false, type: .string), - AWSShapeMember(label: "ProductDescription", location: .body(locationName: "productDescription"), required: false, type: .enum) - ] - /// The date and time the request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). - public let timestamp: TimeStamp? - /// The instance type. Note that T2 and HS1 instance types are not supported. - public let instanceType: InstanceType? - /// The Availability Zone. - public let availabilityZone: String? - /// The maximum price (bid) that you are willing to pay for a Spot instance. - public let spotPrice: String? - /// A general description of the AMI. - public let productDescription: RIProductDescription? - - public init(timestamp: TimeStamp? = nil, instanceType: InstanceType? = nil, availabilityZone: String? = nil, spotPrice: String? = nil, productDescription: RIProductDescription? = nil) { - self.timestamp = timestamp - self.instanceType = instanceType - self.availabilityZone = availabilityZone - self.spotPrice = spotPrice - self.productDescription = productDescription - } - - private enum CodingKeys: String, CodingKey { - case timestamp = "timestamp" - case instanceType = "instanceType" - case availabilityZone = "availabilityZone" - case spotPrice = "spotPrice" - case productDescription = "productDescription" - } - } - - public struct SnapshotList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) - ] - public let item: [Snapshot]? - - public init(item: [Snapshot]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "item" - } - } - public struct ReservedInstancesConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Platform", location: .body(locationName: "platform"), required: false, type: .string), AWSShapeMember(label: "InstanceCount", location: .body(locationName: "instanceCount"), required: false, type: .integer), AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .enum), @@ -6627,8 +8256,44 @@ extension Ec2 { } } + public struct DescribeVpcEndpointServicePermissionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AllowedPrincipals", location: .body(locationName: "allowedPrincipals"), required: false, type: .structure), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + /// Information about one or more allowed principals. + public let allowedPrincipals: AllowedPrincipalSet? + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + + public init(allowedPrincipals: AllowedPrincipalSet? = nil, nextToken: String? = nil) { + self.allowedPrincipals = allowedPrincipals + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case allowedPrincipals = "allowedPrincipals" + case nextToken = "nextToken" + } + } + + public struct SnapshotList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [Snapshot]? + + public init(item: [Snapshot]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct CreatePlacementGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Strategy", location: .body(locationName: "strategy"), required: true, type: .enum), AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: true, type: .string) @@ -6637,7 +8302,7 @@ extension Ec2 { public let dryRun: Bool? /// The placement strategy. public let strategy: PlacementStrategy - /// A name for the placement group. Constraints: Up to 255 ASCII characters + /// A name for the placement group. Must be unique within the scope of your account for the region. Constraints: Up to 255 ASCII characters public let groupName: String public init(dryRun: Bool? = nil, strategy: PlacementStrategy, groupName: String) { @@ -6654,7 +8319,7 @@ extension Ec2 { } public struct DescribeSecurityGroupReferencesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupId", required: true, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean) ] @@ -6675,7 +8340,7 @@ extension Ec2 { } public struct AvailableInstanceCapacityList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceCapacity]? @@ -6689,18 +8354,107 @@ extension Ec2 { } } - public struct PurchasedScheduledInstanceSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct ClassicLoadBalancer: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: true, type: .string) ] - public let item: [ScheduledInstance]? + /// The name of the load balancer. + public let name: String - public init(item: [ScheduledInstance]? = nil) { - self.item = item + public init(name: String) { + self.name = name } private enum CodingKeys: String, CodingKey { - case item = "item" + case name = "name" + } + } + + public struct SpotPrice: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Timestamp", location: .body(locationName: "timestamp"), required: false, type: .timestamp), + AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .enum), + AWSShapeMember(label: "AvailabilityZone", location: .body(locationName: "availabilityZone"), required: false, type: .string), + AWSShapeMember(label: "SpotPrice", location: .body(locationName: "spotPrice"), required: false, type: .string), + AWSShapeMember(label: "ProductDescription", location: .body(locationName: "productDescription"), required: false, type: .enum) + ] + /// The date and time the request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). + public let timestamp: TimeStamp? + /// The instance type. + public let instanceType: InstanceType? + /// The Availability Zone. + public let availabilityZone: String? + /// The maximum price per hour that you are willing to pay for a Spot Instance. + public let spotPrice: String? + /// A general description of the AMI. + public let productDescription: RIProductDescription? + + public init(timestamp: TimeStamp? = nil, instanceType: InstanceType? = nil, availabilityZone: String? = nil, spotPrice: String? = nil, productDescription: RIProductDescription? = nil) { + self.timestamp = timestamp + self.instanceType = instanceType + self.availabilityZone = availabilityZone + self.spotPrice = spotPrice + self.productDescription = productDescription + } + + private enum CodingKeys: String, CodingKey { + case timestamp = "timestamp" + case instanceType = "instanceType" + case availabilityZone = "availabilityZone" + case spotPrice = "spotPrice" + case productDescription = "productDescription" + } + } + + public struct DeleteVpcEndpointServiceConfigurationsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure) + ] + /// Information about the service configurations that were not deleted, if applicable. + public let unsuccessful: UnsuccessfulItemSet? + + public init(unsuccessful: UnsuccessfulItemSet? = nil) { + self.unsuccessful = unsuccessful + } + + private enum CodingKeys: String, CodingKey { + case unsuccessful = "unsuccessful" + } + } + + public struct InstanceCreditSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), + AWSShapeMember(label: "CpuCredits", location: .body(locationName: "cpuCredits"), required: false, type: .string) + ] + /// The ID of the instance. + public let instanceId: String? + /// The credit option for CPU usage of the instance. Valid values are standard and unlimited. + public let cpuCredits: String? + + public init(instanceId: String? = nil, cpuCredits: String? = nil) { + self.instanceId = instanceId + self.cpuCredits = cpuCredits + } + + private enum CodingKeys: String, CodingKey { + case instanceId = "instanceId" + case cpuCredits = "cpuCredits" + } + } + + public struct PurchasedScheduledInstanceSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [ScheduledInstance]? + + public init(item: [ScheduledInstance]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" } } @@ -6713,7 +8467,7 @@ extension Ec2 { } public struct DescribeVolumesModificationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeIds", location: .body(locationName: "VolumeId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean), @@ -6749,7 +8503,7 @@ extension Ec2 { } public struct ImageAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "blockDeviceMapping"), required: false, type: .structure), AWSShapeMember(label: "ProductCodes", location: .body(locationName: "productCodes"), required: false, type: .structure), AWSShapeMember(label: "LaunchPermissions", location: .body(locationName: "launchPermission"), required: false, type: .structure), @@ -6800,7 +8554,7 @@ extension Ec2 { } public struct CreateInstanceExportTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetEnvironment", location: .body(locationName: "targetEnvironment"), required: false, type: .enum), AWSShapeMember(label: "ExportToS3Task", location: .body(locationName: "exportToS3"), required: false, type: .structure), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: true, type: .string), @@ -6831,7 +8585,7 @@ extension Ec2 { } public struct CreateFlowLogsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrafficType", required: true, type: .enum), AWSShapeMember(label: "ResourceIds", location: .body(locationName: "ResourceId"), required: true, type: .structure), AWSShapeMember(label: "DeliverLogsPermissionArn", required: true, type: .string), @@ -6872,7 +8626,7 @@ extension Ec2 { } public struct ScheduledInstancesIpv6AddressList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ipv6Address", required: false, type: .list) ] public let ipv6Address: [ScheduledInstancesIpv6Address]? @@ -6887,7 +8641,7 @@ extension Ec2 { } public struct AccountAttributeValueList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [AccountAttributeValue]? @@ -6902,7 +8656,7 @@ extension Ec2 { } public struct TargetConfigurationRequestSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetConfigurationRequest", required: false, type: .list) ] public let targetConfigurationRequest: [TargetConfigurationRequest]? @@ -6917,7 +8671,7 @@ extension Ec2 { } public struct ImportImageTask: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LicenseType", location: .body(locationName: "licenseType"), required: false, type: .string), AWSShapeMember(label: "Platform", location: .body(locationName: "platform"), required: false, type: .string), AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .string), @@ -6983,7 +8737,7 @@ extension Ec2 { } public struct DescribeVolumesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Volumes", location: .body(locationName: "volumeSet"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] @@ -7003,23 +8757,8 @@ extension Ec2 { } } - public struct ResponseHostIdSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) - ] - public let item: [String]? - - public init(item: [String]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "item" - } - } - public struct ModifyInstancePlacementRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Affinity", location: .body(locationName: "affinity"), required: false, type: .enum), AWSShapeMember(label: "HostId", location: .body(locationName: "hostId"), required: false, type: .string), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: true, type: .string), @@ -7049,8 +8788,23 @@ extension Ec2 { } } + public struct ResponseHostIdSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [String]? + + public init(item: [String]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct ScheduledInstancesLaunchSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "BlockDeviceMapping"), required: false, type: .structure), AWSShapeMember(label: "SubnetId", required: false, type: .string), AWSShapeMember(label: "UserData", required: false, type: .string), @@ -7131,7 +8885,7 @@ extension Ec2 { } public struct DisableVpcClassicLinkRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -7152,7 +8906,7 @@ extension Ec2 { } public struct MoveAddressToVpcResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), AWSShapeMember(label: "AllocationId", location: .body(locationName: "allocationId"), required: false, type: .string) ] @@ -7172,29 +8926,8 @@ extension Ec2 { } } - public struct DeleteVpnConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpnConnectionId", required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) - ] - /// The ID of the VPN connection. - public let vpnConnectionId: String - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - - public init(vpnConnectionId: String, dryRun: Bool? = nil) { - self.vpnConnectionId = vpnConnectionId - self.dryRun = dryRun - } - - private enum CodingKeys: String, CodingKey { - case vpnConnectionId = "VpnConnectionId" - case dryRun = "dryRun" - } - } - public struct CreateVolumePermission: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserId", location: .body(locationName: "userId"), required: false, type: .string), AWSShapeMember(label: "Group", location: .body(locationName: "group"), required: false, type: .enum) ] @@ -7214,8 +8947,29 @@ extension Ec2 { } } + public struct DeleteVpnConnectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpnConnectionId", required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// The ID of the VPN connection. + public let vpnConnectionId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(vpnConnectionId: String, dryRun: Bool? = nil) { + self.vpnConnectionId = vpnConnectionId + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case vpnConnectionId = "VpnConnectionId" + case dryRun = "dryRun" + } + } + public struct ReservedInstancesModificationIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesModificationId", required: false, type: .list) ] public let reservedInstancesModificationId: [String]? @@ -7230,7 +8984,7 @@ extension Ec2 { } public struct BlockDeviceMappingList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [BlockDeviceMapping]? @@ -7244,8 +8998,44 @@ extension Ec2 { } } + public struct CreateLaunchTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VersionDescription", required: false, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "LaunchTemplateData", required: true, type: .structure), + AWSShapeMember(label: "LaunchTemplateName", required: true, type: .string), + AWSShapeMember(label: "ClientToken", required: false, type: .string) + ] + /// A description for the first version of the launch template. + public let versionDescription: String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The information for the launch template. + public let launchTemplateData: RequestLaunchTemplateData + /// A name for the launch template. + public let launchTemplateName: String + /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency. + public let clientToken: String? + + public init(versionDescription: String? = nil, dryRun: Bool? = nil, launchTemplateData: RequestLaunchTemplateData, launchTemplateName: String, clientToken: String? = nil) { + self.versionDescription = versionDescription + self.dryRun = dryRun + self.launchTemplateData = launchTemplateData + self.launchTemplateName = launchTemplateName + self.clientToken = clientToken + } + + private enum CodingKeys: String, CodingKey { + case versionDescription = "VersionDescription" + case dryRun = "DryRun" + case launchTemplateData = "LaunchTemplateData" + case launchTemplateName = "LaunchTemplateName" + case clientToken = "ClientToken" + } + } + public struct CustomerGateway: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomerGatewayId", location: .body(locationName: "customerGatewayId"), required: false, type: .string), AWSShapeMember(label: "BgpAsn", location: .body(locationName: "bgpAsn"), required: false, type: .string), AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .string), @@ -7286,7 +9076,7 @@ extension Ec2 { } public struct DescribeAccountAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeNames", location: .body(locationName: "attributeName"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -7307,7 +9097,7 @@ extension Ec2 { } public struct HistoryRecords: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [HistoryRecord]? @@ -7322,7 +9112,7 @@ extension Ec2 { } public struct ReservedInstancesModificationResultList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ReservedInstancesModificationResult]? @@ -7337,7 +9127,7 @@ extension Ec2 { } public struct VpnGatewayIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpnGatewayId", required: false, type: .list) ] public let vpnGatewayId: [String]? @@ -7351,34 +9141,81 @@ extension Ec2 { } } + public struct NetworkInterfacePermissionState: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "StatusMessage", location: .body(locationName: "statusMessage"), required: false, type: .string) + ] + /// The state of the permission. + public let state: NetworkInterfacePermissionStateCode? + /// A status message, if applicable. + public let statusMessage: String? + + public init(state: NetworkInterfacePermissionStateCode? = nil, statusMessage: String? = nil) { + self.state = state + self.statusMessage = statusMessage + } + + private enum CodingKeys: String, CodingKey { + case state = "state" + case statusMessage = "statusMessage" + } + } + + public struct DescribeVpcEndpointConnectionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "VpcEndpointConnections", location: .body(locationName: "vpcEndpointConnectionSet"), required: false, type: .structure) + ] + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + /// Information about one or more VPC endpoint connections. + public let vpcEndpointConnections: VpcEndpointConnectionSet? + + public init(nextToken: String? = nil, vpcEndpointConnections: VpcEndpointConnectionSet? = nil) { + self.nextToken = nextToken + self.vpcEndpointConnections = vpcEndpointConnections + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case vpcEndpointConnections = "vpcEndpointConnectionSet" + } + } + public struct CreateVpnGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AmazonSideAsn", required: false, type: .long), AWSShapeMember(label: "Type", required: true, type: .enum), - AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string) ] + /// A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a 32-bit ASN, it must be in the 4200000000 to 4294967294 range. Default: 64512 + public let amazonSideAsn: Int64? /// The type of VPN connection this virtual private gateway supports. public let `type`: GatewayType - /// The Availability Zone for the virtual private gateway. - public let availabilityZone: String? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? + /// The Availability Zone for the virtual private gateway. + public let availabilityZone: String? - public init(type: GatewayType, availabilityZone: String? = nil, dryRun: Bool? = nil) { + public init(amazonSideAsn: Int64? = nil, type: GatewayType, dryRun: Bool? = nil, availabilityZone: String? = nil) { + self.amazonSideAsn = amazonSideAsn self.`type` = `type` - self.availabilityZone = availabilityZone self.dryRun = dryRun + self.availabilityZone = availabilityZone } private enum CodingKeys: String, CodingKey { + case amazonSideAsn = "AmazonSideAsn" case `type` = "Type" - case availabilityZone = "AvailabilityZone" case dryRun = "dryRun" + case availabilityZone = "AvailabilityZone" } } public struct DeleteSpotDatafeedSubscriptionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. @@ -7394,7 +9231,7 @@ extension Ec2 { } public struct Route: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EgressOnlyInternetGatewayId", location: .body(locationName: "egressOnlyInternetGatewayId"), required: false, type: .string), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), AWSShapeMember(label: "NatGatewayId", location: .body(locationName: "natGatewayId"), required: false, type: .string), @@ -7464,14 +9301,29 @@ extension Ec2 { } } + public struct ElasticGpuSpecificationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ElasticGpuSpecification", required: false, type: .list) + ] + public let elasticGpuSpecification: [ElasticGpuSpecification]? + + public init(elasticGpuSpecification: [ElasticGpuSpecification]? = nil) { + self.elasticGpuSpecification = elasticGpuSpecification + } + + private enum CodingKeys: String, CodingKey { + case elasticGpuSpecification = "ElasticGpuSpecification" + } + } + public struct CancelSpotFleetRequestsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SuccessfulFleetRequests", location: .body(locationName: "successfulFleetRequestSet"), required: false, type: .structure), AWSShapeMember(label: "UnsuccessfulFleetRequests", location: .body(locationName: "unsuccessfulFleetRequestSet"), required: false, type: .structure) ] - /// Information about the Spot fleet requests that are successfully canceled. + /// Information about the Spot Fleet requests that are successfully canceled. public let successfulFleetRequests: CancelSpotFleetRequestsSuccessSet? - /// Information about the Spot fleet requests that are not successfully canceled. + /// Information about the Spot Fleet requests that are not successfully canceled. public let unsuccessfulFleetRequests: CancelSpotFleetRequestsErrorSet? public init(successfulFleetRequests: CancelSpotFleetRequestsSuccessSet? = nil, unsuccessfulFleetRequests: CancelSpotFleetRequestsErrorSet? = nil) { @@ -7486,7 +9338,7 @@ extension Ec2 { } public struct VpnGatewayList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VpnGateway]? @@ -7500,34 +9352,23 @@ extension Ec2 { } } - public struct DeleteSecurityGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupName", required: false, type: .string), - AWSShapeMember(label: "GroupId", required: false, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + public struct UserGroupStringList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserGroup", required: false, type: .list) ] - /// [EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID. - public let groupName: String? - /// The ID of the security group. Required for a nondefault VPC. - public let groupId: String? - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? + public let userGroup: [String]? - public init(groupName: String? = nil, groupId: String? = nil, dryRun: Bool? = nil) { - self.groupName = groupName - self.groupId = groupId - self.dryRun = dryRun + public init(userGroup: [String]? = nil) { + self.userGroup = userGroup } private enum CodingKeys: String, CodingKey { - case groupName = "GroupName" - case groupId = "GroupId" - case dryRun = "dryRun" + case userGroup = "UserGroup" } } public struct CreateVpcResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Vpc", location: .body(locationName: "vpc"), required: false, type: .structure) ] /// Information about the VPC. @@ -7543,14 +9384,14 @@ extension Ec2 { } public struct DescribeInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: false, type: .structure), AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) ] - /// One or more filters. affinity - The affinity setting for an instance running on a Dedicated Host (default | host). architecture - The instance architecture (i386 | x86_64). availability-zone - The Availability Zone of the instance. block-device-mapping.attach-time - The attach time for an EBS volume mapped to the instance, for example, 2010-09-15T17:15:20.000Z. block-device-mapping.delete-on-termination - A Boolean that indicates whether the EBS volume is deleted on instance termination. block-device-mapping.device-name - The device name for the EBS volume (for example, /dev/sdh or xvdh). block-device-mapping.status - The status for the EBS volume (attaching | attached | detaching | detached). block-device-mapping.volume-id - The volume ID of the EBS volume. client-token - The idempotency token you provided when you launched the instance. dns-name - The public DNS name of the instance. group-id - The ID of the security group for the instance. EC2-Classic only. group-name - The name of the security group for the instance. EC2-Classic only. host-id - The ID of the Dedicated Host on which the instance is running, if applicable. hypervisor - The hypervisor type of the instance (ovm | xen). iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN. image-id - The ID of the image used to launch the instance. instance-id - The ID of the instance. instance-lifecycle - Indicates whether this is a Spot Instance or a Scheduled Instance (spot | scheduled). instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped). instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped). instance-type - The type of instance (for example, t2.micro). instance.group-id - The ID of the security group for the instance. instance.group-name - The name of the security group for the instance. ip-address - The public IPv4 address of the instance. kernel-id - The kernel ID. key-name - The name of the key pair used when the instance was launched. launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on). launch-time - The time when the instance was launched. monitoring-state - Indicates whether detailed monitoring is enabled (disabled | enabled). network-interface.addresses.private-ip-address - The private IPv4 address associated with the network interface. network-interface.addresses.primary - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address. network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address (IPv4) with a network interface. network-interface.addresses.association.ip-owner-id - The owner ID of the private IPv4 address associated with the network interface. network-interface.association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface. network-interface.association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface. network-interface.association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface. network-interface.association.association-id - The association ID returned when the network interface was associated with an IPv4 address. network-interface.attachment.attachment-id - The ID of the interface attachment. network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached. network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached. network-interface.attachment.device-index - The device index to which the network interface is attached. network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached). network-interface.attachment.attach-time - The time that the network interface was attached to an instance. network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated. network-interface.availability-zone - The Availability Zone for the network interface. network-interface.description - The description of the network interface. network-interface.group-id - The ID of a security group associated with the network interface. network-interface.group-name - The name of a security group associated with the network interface. network-interface.ipv6-addresses.ipv6-address - The IPv6 address associated with the network interface. network-interface.mac-address - The MAC address of the network interface. network-interface.network-interface-id - The ID of the network interface. network-interface.owner-id - The ID of the owner of the network interface. network-interface.private-dns-name - The private DNS name of the network interface. network-interface.requester-id - The requester ID for the network interface. network-interface.requester-managed - Indicates whether the network interface is being managed by AWS. network-interface.status - The status of the network interface (available) | in-use). network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC. network-interface.subnet-id - The ID of the subnet for the network interface. network-interface.vpc-id - The ID of the VPC for the network interface. owner-id - The AWS account ID of the instance owner. placement-group-name - The name of the placement group for the instance. platform - The platform. Use windows if you have Windows instances; otherwise, leave blank. private-dns-name - The private IPv4 DNS name of the instance. private-ip-address - The private IPv4 address of the instance. product-code - The product code associated with the AMI used to launch the instance. product-code.type - The type of product code (devpay | marketplace). ramdisk-id - The RAM disk ID. reason - The reason for the current state of the instance (for example, shows "User Initiated [date]" when you stop or terminate the instance). Similar to the state-reason-code filter. requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on). reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you'll get one reservation ID. If you launch ten instances using the same launch request, you'll also get one reservation ID. root-device-name - The name of the root device for the instance (for example, /dev/sda1 or /dev/xvda). root-device-type - The type of root device that the instance uses (ebs | instance-store). source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC. spot-instance-request-id - The ID of the Spot instance request. state-reason-code - The reason code for the state change. state-reason-message - A message that describes the state change. subnet-id - The ID of the subnet for the instance. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. tenancy - The tenancy of an instance (dedicated | default | host). virtualization-type - The virtualization type of the instance (paravirtual | hvm). vpc-id - The ID of the VPC that the instance is running in. + /// One or more filters. affinity - The affinity setting for an instance running on a Dedicated Host (default | host). architecture - The instance architecture (i386 | x86_64). availability-zone - The Availability Zone of the instance. block-device-mapping.attach-time - The attach time for an EBS volume mapped to the instance, for example, 2010-09-15T17:15:20.000Z. block-device-mapping.delete-on-termination - A Boolean that indicates whether the EBS volume is deleted on instance termination. block-device-mapping.device-name - The device name specified in the block device mapping (for example, /dev/sdh or xvdh). block-device-mapping.status - The status for the EBS volume (attaching | attached | detaching | detached). block-device-mapping.volume-id - The volume ID of the EBS volume. client-token - The idempotency token you provided when you launched the instance. dns-name - The public DNS name of the instance. group-id - The ID of the security group for the instance. EC2-Classic only. group-name - The name of the security group for the instance. EC2-Classic only. host-id - The ID of the Dedicated Host on which the instance is running, if applicable. hypervisor - The hypervisor type of the instance (ovm | xen). iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN. image-id - The ID of the image used to launch the instance. instance-id - The ID of the instance. instance-lifecycle - Indicates whether this is a Spot Instance or a Scheduled Instance (spot | scheduled). instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped). instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped). instance-type - The type of instance (for example, t2.micro). instance.group-id - The ID of the security group for the instance. instance.group-name - The name of the security group for the instance. ip-address - The public IPv4 address of the instance. kernel-id - The kernel ID. key-name - The name of the key pair used when the instance was launched. launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on). launch-time - The time when the instance was launched. monitoring-state - Indicates whether detailed monitoring is enabled (disabled | enabled). network-interface.addresses.private-ip-address - The private IPv4 address associated with the network interface. network-interface.addresses.primary - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address. network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address (IPv4) with a network interface. network-interface.addresses.association.ip-owner-id - The owner ID of the private IPv4 address associated with the network interface. network-interface.association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface. network-interface.association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface. network-interface.association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface. network-interface.association.association-id - The association ID returned when the network interface was associated with an IPv4 address. network-interface.attachment.attachment-id - The ID of the interface attachment. network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached. network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached. network-interface.attachment.device-index - The device index to which the network interface is attached. network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached). network-interface.attachment.attach-time - The time that the network interface was attached to an instance. network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated. network-interface.availability-zone - The Availability Zone for the network interface. network-interface.description - The description of the network interface. network-interface.group-id - The ID of a security group associated with the network interface. network-interface.group-name - The name of a security group associated with the network interface. network-interface.ipv6-addresses.ipv6-address - The IPv6 address associated with the network interface. network-interface.mac-address - The MAC address of the network interface. network-interface.network-interface-id - The ID of the network interface. network-interface.owner-id - The ID of the owner of the network interface. network-interface.private-dns-name - The private DNS name of the network interface. network-interface.requester-id - The requester ID for the network interface. network-interface.requester-managed - Indicates whether the network interface is being managed by AWS. network-interface.status - The status of the network interface (available) | in-use). network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC. network-interface.subnet-id - The ID of the subnet for the network interface. network-interface.vpc-id - The ID of the VPC for the network interface. owner-id - The AWS account ID of the instance owner. placement-group-name - The name of the placement group for the instance. platform - The platform. Use windows if you have Windows instances; otherwise, leave blank. private-dns-name - The private IPv4 DNS name of the instance. private-ip-address - The private IPv4 address of the instance. product-code - The product code associated with the AMI used to launch the instance. product-code.type - The type of product code (devpay | marketplace). ramdisk-id - The RAM disk ID. reason - The reason for the current state of the instance (for example, shows "User Initiated [date]" when you stop or terminate the instance). Similar to the state-reason-code filter. requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on). reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you get one reservation ID. If you launch ten instances using the same launch request, you also get one reservation ID. root-device-name - The device name of the root device volume (for example, /dev/sda1). root-device-type - The type of the root device volume (ebs | instance-store). source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC. spot-instance-request-id - The ID of the Spot Instance request. state-reason-code - The reason code for the state change. state-reason-message - A message that describes the state change. subnet-id - The ID of the subnet for the instance. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of the tag's key). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. tenancy - The tenancy of an instance (dedicated | default | host). virtualization-type - The virtualization type of the instance (paravirtual | hvm). vpc-id - The ID of the VPC that the instance is running in. public let filters: FilterList? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -7578,23 +9419,8 @@ extension Ec2 { } } - public struct UserGroupStringList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserGroup", required: false, type: .list) - ] - public let userGroup: [String]? - - public init(userGroup: [String]? = nil) { - self.userGroup = userGroup - } - - private enum CodingKeys: String, CodingKey { - case userGroup = "UserGroup" - } - } - public struct DescribeScheduledInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "ScheduledInstanceSet", location: .body(locationName: "scheduledInstanceSet"), required: false, type: .structure) ] @@ -7614,20 +9440,46 @@ extension Ec2 { } } - public enum FpgaImageStateCode: String, CustomStringConvertible, Codable { - case pending = "pending" - case failed = "failed" - case available = "available" - case unavailable = "unavailable" - public var description: String { return self.rawValue } - } - - public struct DeleteNetworkAclEntryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NetworkAclId", location: .body(locationName: "networkAclId"), required: true, type: .string), - AWSShapeMember(label: "RuleNumber", location: .body(locationName: "ruleNumber"), required: true, type: .integer), - AWSShapeMember(label: "Egress", location: .body(locationName: "egress"), required: true, type: .boolean), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + public struct DeleteSecurityGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", required: false, type: .string), + AWSShapeMember(label: "GroupId", required: false, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// [EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID. + public let groupName: String? + /// The ID of the security group. Required for a nondefault VPC. + public let groupId: String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(groupName: String? = nil, groupId: String? = nil, dryRun: Bool? = nil) { + self.groupName = groupName + self.groupId = groupId + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + case groupId = "GroupId" + case dryRun = "dryRun" + } + } + + public enum FpgaImageStateCode: String, CustomStringConvertible, Codable { + case pending = "pending" + case failed = "failed" + case available = "available" + case unavailable = "unavailable" + public var description: String { return self.rawValue } + } + + public struct DeleteNetworkAclEntryRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NetworkAclId", location: .body(locationName: "networkAclId"), required: true, type: .string), + AWSShapeMember(label: "RuleNumber", location: .body(locationName: "ruleNumber"), required: true, type: .integer), + AWSShapeMember(label: "Egress", location: .body(locationName: "egress"), required: true, type: .boolean), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] /// The ID of the network ACL. public let networkAclId: String @@ -7654,7 +9506,7 @@ extension Ec2 { } public struct NewDhcpConfigurationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [NewDhcpConfiguration]? @@ -7668,8 +9520,24 @@ extension Ec2 { } } + public struct CreateDefaultVpcResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Vpc", location: .body(locationName: "vpc"), required: false, type: .structure) + ] + /// Information about the VPC. + public let vpc: Vpc? + + public init(vpc: Vpc? = nil) { + self.vpc = vpc + } + + private enum CodingKeys: String, CodingKey { + case vpc = "vpc" + } + } + public struct ResetSnapshotAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Attribute", required: true, type: .enum) @@ -7695,57 +9563,83 @@ extension Ec2 { } public struct VpnGateway: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcAttachments", location: .body(locationName: "attachments"), required: false, type: .structure), - AWSShapeMember(label: "AvailabilityZone", location: .body(locationName: "availabilityZone"), required: false, type: .string), - AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), - AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), + AWSShapeMember(label: "AmazonSideAsn", location: .body(locationName: "amazonSideAsn"), required: false, type: .long), AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "AvailabilityZone", location: .body(locationName: "availabilityZone"), required: false, type: .string), AWSShapeMember(label: "VpnGatewayId", location: .body(locationName: "vpnGatewayId"), required: false, type: .string) ] /// Any VPCs attached to the virtual private gateway. public let vpcAttachments: VpcAttachmentList? - /// The Availability Zone where the virtual private gateway was created, if applicable. This field may be empty or not returned. - public let availabilityZone: String? - /// The type of VPN connection the virtual private gateway supports. - public let `type`: GatewayType? - /// Any tags assigned to the virtual private gateway. - public let tags: TagList? + /// The private Autonomous System Number (ASN) for the Amazon side of a BGP session. + public let amazonSideAsn: Int64? /// The current state of the virtual private gateway. public let state: VpnState? + /// Any tags assigned to the virtual private gateway. + public let tags: TagList? + /// The type of VPN connection the virtual private gateway supports. + public let `type`: GatewayType? + /// The Availability Zone where the virtual private gateway was created, if applicable. This field may be empty or not returned. + public let availabilityZone: String? /// The ID of the virtual private gateway. public let vpnGatewayId: String? - public init(vpcAttachments: VpcAttachmentList? = nil, availabilityZone: String? = nil, type: GatewayType? = nil, tags: TagList? = nil, state: VpnState? = nil, vpnGatewayId: String? = nil) { + public init(vpcAttachments: VpcAttachmentList? = nil, amazonSideAsn: Int64? = nil, state: VpnState? = nil, tags: TagList? = nil, type: GatewayType? = nil, availabilityZone: String? = nil, vpnGatewayId: String? = nil) { self.vpcAttachments = vpcAttachments - self.availabilityZone = availabilityZone - self.`type` = `type` - self.tags = tags + self.amazonSideAsn = amazonSideAsn self.state = state + self.tags = tags + self.`type` = `type` + self.availabilityZone = availabilityZone self.vpnGatewayId = vpnGatewayId } private enum CodingKeys: String, CodingKey { case vpcAttachments = "attachments" - case availabilityZone = "availabilityZone" - case `type` = "type" - case tags = "tagSet" + case amazonSideAsn = "amazonSideAsn" case state = "state" + case tags = "tagSet" + case `type` = "type" + case availabilityZone = "availabilityZone" case vpnGatewayId = "vpnGatewayId" } } + public struct ResponseError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .enum), + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + /// The error code. + public let code: LaunchTemplateErrorCode? + /// The error message, if applicable. + public let message: String? + + public init(code: LaunchTemplateErrorCode? = nil, message: String? = nil) { + self.code = code + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case code = "code" + case message = "message" + } + } + public struct CancelSpotFleetRequestsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "TerminateInstances", location: .body(locationName: "terminateInstances"), required: true, type: .boolean), AWSShapeMember(label: "SpotFleetRequestIds", location: .body(locationName: "spotFleetRequestId"), required: true, type: .structure) ] /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// Indicates whether to terminate instances for a Spot fleet request if it is canceled successfully. + /// Indicates whether to terminate instances for a Spot Fleet request if it is canceled successfully. public let terminateInstances: Bool - /// The IDs of the Spot fleet requests. + /// The IDs of the Spot Fleet requests. public let spotFleetRequestIds: ValueStringList public init(dryRun: Bool? = nil, terminateInstances: Bool, spotFleetRequestIds: ValueStringList) { @@ -7762,7 +9656,7 @@ extension Ec2 { } public struct InstanceIpv6AddressList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceIpv6Address]? @@ -7776,8 +9670,59 @@ extension Ec2 { } } + public struct ModifyVpcEndpointServiceConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AddNetworkLoadBalancerArns", location: .body(locationName: "addNetworkLoadBalancerArn"), required: false, type: .structure), + AWSShapeMember(label: "ServiceId", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "RemoveNetworkLoadBalancerArns", location: .body(locationName: "removeNetworkLoadBalancerArn"), required: false, type: .structure), + AWSShapeMember(label: "AcceptanceRequired", required: false, type: .boolean) + ] + /// The Amazon Resource Names (ARNs) of Network Load Balancers to add to your service configuration. + public let addNetworkLoadBalancerArns: ValueStringList? + /// The ID of the service. + public let serviceId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The Amazon Resource Names (ARNs) of Network Load Balancers to remove from your service configuration. + public let removeNetworkLoadBalancerArns: ValueStringList? + /// Indicate whether requests to create an endpoint to your service must be accepted. + public let acceptanceRequired: Bool? + + public init(addNetworkLoadBalancerArns: ValueStringList? = nil, serviceId: String, dryRun: Bool? = nil, removeNetworkLoadBalancerArns: ValueStringList? = nil, acceptanceRequired: Bool? = nil) { + self.addNetworkLoadBalancerArns = addNetworkLoadBalancerArns + self.serviceId = serviceId + self.dryRun = dryRun + self.removeNetworkLoadBalancerArns = removeNetworkLoadBalancerArns + self.acceptanceRequired = acceptanceRequired + } + + private enum CodingKeys: String, CodingKey { + case addNetworkLoadBalancerArns = "addNetworkLoadBalancerArn" + case serviceId = "ServiceId" + case dryRun = "DryRun" + case removeNetworkLoadBalancerArns = "removeNetworkLoadBalancerArn" + case acceptanceRequired = "AcceptanceRequired" + } + } + + public struct ElasticGpuSpecifications: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [ElasticGpuSpecification]? + + public init(item: [ElasticGpuSpecification]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct ScheduledInstanceSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ScheduledInstance]? @@ -7792,7 +9737,7 @@ extension Ec2 { } public struct DescribeVolumeStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeIds", location: .body(locationName: "VolumeId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), @@ -7828,7 +9773,7 @@ extension Ec2 { } public struct InstanceStatusList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceStatus]? @@ -7843,38 +9788,48 @@ extension Ec2 { } public struct DescribeSecurityGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "GroupIds", location: .body(locationName: "GroupId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "GroupNames", location: .body(locationName: "GroupName"), required: false, type: .structure) ] + /// The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned NextToken value. This value can be between 5 and 1000. + public let maxResults: Int32? /// One or more security group IDs. Required for security groups in a nondefault VPC. Default: Describes all your security groups. public let groupIds: GroupIdStringList? - /// One or more filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters. description - The description of the security group. egress.ip-permission.prefix-list-id - The ID (prefix) of the AWS service to which the security group allows access. group-id - The ID of the security group. group-name - The name of the security group. ip-permission.cidr - An IPv4 CIDR range that has been granted permission in a security group rule. ip-permission.from-port - The start of port range for the TCP and UDP protocols, or an ICMP type number. ip-permission.group-id - The ID of a security group that has been granted permission. ip-permission.group-name - The name of a security group that has been granted permission. ip-permission.ipv6-cidr - An IPv6 CIDR range that has been granted permission in a security group rule. ip-permission.protocol - The IP protocol for the permission (tcp | udp | icmp or a protocol number). ip-permission.to-port - The end of port range for the TCP and UDP protocols, or an ICMP code. ip-permission.user-id - The ID of an AWS account that has been granted permission. owner-id - The AWS account ID of the owner of the security group. tag-key - The key of a tag assigned to the security group. tag-value - The value of a tag assigned to the security group. vpc-id - The ID of the VPC specified when the security group was created. + /// One or more filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters. description - The description of the security group. egress.ip-permission.cidr - An IPv4 CIDR block for an outbound security group rule. egress.ip-permission.from-port - For an outbound rule, the start of port range for the TCP and UDP protocols, or an ICMP type number. egress.ip-permission.group-id - The ID of a security group that has been referenced in an outbound security group rule. egress.ip-permission.group-name - The name of a security group that has been referenced in an outbound security group rule. egress.ip-permission.ipv6-cidr - An IPv6 CIDR block for an outbound security group rule. egress.ip-permission.prefix-list-id - The ID (prefix) of the AWS service to which a security group rule allows outbound access. egress.ip-permission.protocol - The IP protocol for an outbound security group rule (tcp | udp | icmp or a protocol number). egress.ip-permission.to-port - For an outbound rule, the end of port range for the TCP and UDP protocols, or an ICMP code. egress.ip-permission.user-id - The ID of an AWS account that has been referenced in an outbound security group rule. group-id - The ID of the security group. group-name - The name of the security group. ip-permission.cidr - An IPv4 CIDR block for an inbound security group rule. ip-permission.from-port - For an inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP type number. ip-permission.group-id - The ID of a security group that has been referenced in an inbound security group rule. ip-permission.group-name - The name of a security group that has been referenced in an inbound security group rule. ip-permission.ipv6-cidr - An IPv6 CIDR block for an inbound security group rule. ip-permission.prefix-list-id - The ID (prefix) of the AWS service from which a security group rule allows inbound access. ip-permission.protocol - The IP protocol for an inbound security group rule (tcp | udp | icmp or a protocol number). ip-permission.to-port - For an inbound rule, the end of port range for the TCP and UDP protocols, or an ICMP code. ip-permission.user-id - The ID of an AWS account that has been referenced in an inbound security group rule. owner-id - The AWS account ID of the owner of the security group. tag-key - The key of a tag assigned to the security group. tag-value - The value of a tag assigned to the security group. vpc-id - The ID of the VPC specified when the security group was created. public let filters: FilterList? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? + /// The token to request the next page of results. + public let nextToken: String? /// [EC2-Classic and default VPC only] One or more security group names. You can specify either the security group name or the security group ID. For security groups in a nondefault VPC, use the group-name filter to describe security groups by name. Default: Describes all your security groups. public let groupNames: GroupNameStringList? - public init(groupIds: GroupIdStringList? = nil, filters: FilterList? = nil, dryRun: Bool? = nil, groupNames: GroupNameStringList? = nil) { + public init(maxResults: Int32? = nil, groupIds: GroupIdStringList? = nil, filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, groupNames: GroupNameStringList? = nil) { + self.maxResults = maxResults self.groupIds = groupIds self.filters = filters self.dryRun = dryRun + self.nextToken = nextToken self.groupNames = groupNames } private enum CodingKeys: String, CodingKey { + case maxResults = "MaxResults" case groupIds = "GroupId" case filters = "Filter" case dryRun = "dryRun" + case nextToken = "NextToken" case groupNames = "GroupName" } } public struct Snapshot: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StateMessage", location: .body(locationName: "statusMessage"), required: false, type: .string), AWSShapeMember(label: "State", location: .body(locationName: "status"), required: false, type: .enum), AWSShapeMember(label: "VolumeId", location: .body(locationName: "volumeId"), required: false, type: .string), @@ -7955,14 +9910,14 @@ extension Ec2 { } public struct DescribeVpcsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcIds", location: .body(locationName: "VpcId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] /// One or more VPC IDs. Default: Describes all your VPCs. public let vpcIds: VpcIdStringList? - /// One or more filters. cidr - The IPv4 CIDR block of the VPC. The CIDR block you specify must exactly match the VPC's CIDR block for information to be returned for the VPC. Must contain the slash followed by one or two digits (for example, /28). dhcp-options-id - The ID of a set of DHCP options. ipv6-cidr-block-association.ipv6-cidr-block - An IPv6 CIDR block associated with the VPC. ipv6-cidr-block-association.association-id - The association ID for an IPv6 CIDR block associated with the VPC. ipv6-cidr-block-association.state - The state of an IPv6 CIDR block associated with the VPC. isDefault - Indicates whether the VPC is the default VPC. state - The state of the VPC (pending | available). tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-id - The ID of the VPC. + /// One or more filters. cidr - The primary IPv4 CIDR block of the VPC. The CIDR block you specify must exactly match the VPC's CIDR block for information to be returned for the VPC. Must contain the slash followed by one or two digits (for example, /28). cidr-block-association.cidr-block - An IPv4 CIDR block associated with the VPC. cidr-block-association.association-id - The association ID for an IPv4 CIDR block associated with the VPC. cidr-block-association.state - The state of an IPv4 CIDR block associated with the VPC. dhcp-options-id - The ID of a set of DHCP options. ipv6-cidr-block-association.ipv6-cidr-block - An IPv6 CIDR block associated with the VPC. ipv6-cidr-block-association.association-id - The association ID for an IPv6 CIDR block associated with the VPC. ipv6-cidr-block-association.state - The state of an IPv6 CIDR block associated with the VPC. isDefault - Indicates whether the VPC is the default VPC. state - The state of the VPC (pending | available). tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-id - The ID of the VPC. public let filters: FilterList? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -7981,7 +9936,7 @@ extension Ec2 { } public struct PurchaseRequestSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PurchaseRequest", required: false, type: .list) ] public let purchaseRequest: [PurchaseRequest]? @@ -7996,7 +9951,7 @@ extension Ec2 { } public struct DescribeIdFormatResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Statuses", location: .body(locationName: "statusSet"), required: false, type: .structure) ] /// Information about the ID format for the resource. @@ -8012,7 +9967,7 @@ extension Ec2 { } public struct RegisterImageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BillingProducts", location: .body(locationName: "BillingProduct"), required: false, type: .structure), AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "BlockDeviceMapping"), required: false, type: .structure), AWSShapeMember(label: "SriovNetSupport", location: .body(locationName: "sriovNetSupport"), required: false, type: .string), @@ -8033,7 +9988,7 @@ extension Ec2 { public let blockDeviceMappings: BlockDeviceMappingRequestList? /// Set to simple to enable enhanced networking with the Intel 82599 Virtual Function interface for the AMI and any instances that you launch from the AMI. There is no way to disable sriovNetSupport at this time. This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable. public let sriovNetSupport: String? - /// The name of the root device (for example, /dev/sda1, or /dev/xvda). + /// The device name of the root device volume (for example, /dev/sda1). public let rootDeviceName: String? /// The full path to your AMI manifest in Amazon S3 storage. public let imageLocation: String? @@ -8049,7 +10004,7 @@ extension Ec2 { public let enaSupport: Bool? /// The architecture of the AMI. Default: For Amazon EBS-backed AMIs, i386. For instance store-backed AMIs, the architecture specified in the manifest file. public let architecture: ArchitectureValues? - /// The type of virtualization. Default: paravirtual + /// The type of virtualization (hvm | paravirtual). Default: paravirtual public let virtualizationType: String? /// The ID of the RAM disk. public let ramdiskId: String? @@ -8088,7 +10043,7 @@ extension Ec2 { } public struct DescribeMovingAddressesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PublicIps", location: .body(locationName: "publicIp"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), @@ -8124,7 +10079,7 @@ extension Ec2 { } public struct BillingProductList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -8138,8 +10093,24 @@ extension Ec2 { } } + public struct ModifyVpcTenancyResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReturnValue", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// Returns true if the request succeeds; otherwise, returns an error. + public let returnValue: Bool? + + public init(returnValue: Bool? = nil) { + self.returnValue = returnValue + } + + private enum CodingKeys: String, CodingKey { + case returnValue = "return" + } + } + public struct MonitorInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceMonitorings", location: .body(locationName: "instancesSet"), required: false, type: .structure) ] /// The monitoring information. @@ -8154,8 +10125,34 @@ extension Ec2 { } } + public struct FleetLaunchTemplateSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateName", location: .body(locationName: "launchTemplateName"), required: false, type: .string), + AWSShapeMember(label: "LaunchTemplateId", location: .body(locationName: "launchTemplateId"), required: false, type: .string), + AWSShapeMember(label: "Version", location: .body(locationName: "version"), required: false, type: .string) + ] + /// The name of the launch template. You must specify either a template name or a template ID. + public let launchTemplateName: String? + /// The ID of the launch template. You must specify either a template ID or a template name. + public let launchTemplateId: String? + /// The version number. By default, the default version of the launch template is used. + public let version: String? + + public init(launchTemplateName: String? = nil, launchTemplateId: String? = nil, version: String? = nil) { + self.launchTemplateName = launchTemplateName + self.launchTemplateId = launchTemplateId + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateName = "launchTemplateName" + case launchTemplateId = "launchTemplateId" + case version = "version" + } + } + public struct AssignIpv6AddressesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssignedIpv6Addresses", location: .body(locationName: "assignedIpv6Addresses"), required: false, type: .structure), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string) ] @@ -8176,7 +10173,7 @@ extension Ec2 { } public struct AssignPrivateIpAddressesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AllowReassignment", location: .body(locationName: "allowReassignment"), required: false, type: .boolean), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: true, type: .string), AWSShapeMember(label: "SecondaryPrivateIpAddressCount", location: .body(locationName: "secondaryPrivateIpAddressCount"), required: false, type: .integer), @@ -8214,7 +10211,7 @@ extension Ec2 { } public struct RunInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagSpecifications", location: .body(locationName: "TagSpecification"), required: false, type: .structure), AWSShapeMember(label: "DisableApiTermination", location: .body(locationName: "disableApiTermination"), required: false, type: .boolean), AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), @@ -8223,6 +10220,7 @@ extension Ec2 { AWSShapeMember(label: "Ipv6AddressCount", required: false, type: .integer), AWSShapeMember(label: "InstanceType", required: false, type: .enum), AWSShapeMember(label: "PrivateIpAddress", location: .body(locationName: "privateIpAddress"), required: false, type: .string), + AWSShapeMember(label: "ElasticGpuSpecification", required: false, type: .structure), AWSShapeMember(label: "KeyName", required: false, type: .string), AWSShapeMember(label: "IamInstanceProfile", location: .body(locationName: "iamInstanceProfile"), required: false, type: .structure), AWSShapeMember(label: "InstanceInitiatedShutdownBehavior", location: .body(locationName: "instanceInitiatedShutdownBehavior"), required: false, type: .enum), @@ -8235,12 +10233,15 @@ extension Ec2 { AWSShapeMember(label: "SecurityGroupIds", location: .body(locationName: "SecurityGroupId"), required: false, type: .structure), AWSShapeMember(label: "Monitoring", required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "CreditSpecification", required: false, type: .structure), AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "SecurityGroup"), required: false, type: .structure), + AWSShapeMember(label: "InstanceMarketOptions", required: false, type: .structure), AWSShapeMember(label: "MaxCount", required: true, type: .integer), AWSShapeMember(label: "AdditionalInfo", location: .body(locationName: "additionalInfo"), required: false, type: .string), AWSShapeMember(label: "Placement", required: false, type: .structure), AWSShapeMember(label: "NetworkInterfaces", location: .body(locationName: "networkInterface"), required: false, type: .structure), - AWSShapeMember(label: "ImageId", required: true, type: .string) + AWSShapeMember(label: "ImageId", required: false, type: .string), + AWSShapeMember(label: "LaunchTemplate", required: false, type: .structure) ] /// The tags to apply to the resources during launch. You can tag instances and volumes. The specified tags are applied to all instances or volumes that are created during launch. public let tagSpecifications: TagSpecificationList? @@ -8248,7 +10249,7 @@ extension Ec2 { public let disableApiTermination: Bool? /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency. Constraints: Maximum 64 ASCII characters public let clientToken: String? - /// Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: false + /// Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: false public let ebsOptimized: Bool? /// The ID of the kernel. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide. public let kernelId: String? @@ -8258,6 +10259,8 @@ extension Ec2 { public let instanceType: InstanceType? /// [EC2-VPC] The primary IPv4 address. You must specify a value from the IPv4 address range of the subnet. Only one private IP address can be designated as primary. You can't specify this option if you've specified the option to designate a private IP address as the primary IP address in a network interface specification. You cannot specify this option if you're launching more than one instance in the request. public let privateIpAddress: String? + /// An elastic GPU to associate with the instance. + public let elasticGpuSpecification: ElasticGpuSpecifications? /// The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair. If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. public let keyName: String? /// The IAM instance profile. @@ -8270,11 +10273,11 @@ extension Ec2 { public let minCount: Int32 /// The ID of the RAM disk. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide. public let ramdiskId: String? - /// The block device mapping. Supplying both a snapshot ID and an encryption value as arguments for block-device mapping results in an error. This is because only blank volumes can be encrypted on start, and these are not created from a snapshot. If a snapshot is the basis for the volume, it contains data by definition and its encryption status cannot be changed using this action. + /// One or more block device mapping entries. You can't specify both a snapshot ID and an encryption value. This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status. public let blockDeviceMappings: BlockDeviceMappingRequestList? /// [EC2-VPC] The ID of the subnet to launch the instance into. public let subnetId: String? - /// The user data to make available to the instance. For more information, see Running Commands on Your Linux Instance at Launch (Linux) and Adding User Data (Windows). If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text. + /// The user data to make available to the instance. For more information, see Running Commands on Your Linux Instance at Launch (Linux) and Adding User Data (Windows). If you are using a command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text. public let userData: String? /// One or more security group IDs. You can create a security group using CreateSecurityGroup. Default: Amazon EC2 uses the default security group. public let securityGroupIds: SecurityGroupIdStringList? @@ -8282,8 +10285,12 @@ extension Ec2 { public let monitoring: RunInstancesMonitoringEnabled? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? + /// The credit option for CPU usage of the instance. Valid values are standard and unlimited. To change this attribute after launch, use ModifyInstanceCreditSpecification. For more information, see T2 Instances in the Amazon Elastic Compute Cloud User Guide. Default: standard + public let creditSpecification: CreditSpecificationRequest? /// [EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead. Default: Amazon EC2 uses the default security group. public let securityGroups: SecurityGroupStringList? + /// The market (purchasing) option for the instances. + public let instanceMarketOptions: InstanceMarketOptionsRequest? /// The maximum number of instances to launch. If you specify more instances than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 launches the largest possible number of instances above MinCount. Constraints: Between 1 and the maximum number you're allowed for the specified instance type. For more information about the default limits, and how to request an increase, see How many instances can I run in Amazon EC2 in the Amazon EC2 FAQ. public let maxCount: Int32 /// Reserved. @@ -8293,9 +10300,11 @@ extension Ec2 { /// One or more network interfaces. public let networkInterfaces: InstanceNetworkInterfaceSpecificationList? /// The ID of the AMI, which you can get by calling DescribeImages. - public let imageId: String + public let imageId: String? + /// The launch template to use to launch the instances. Any parameters that you specify in RunInstances override the same parameters in the launch template. + public let launchTemplate: LaunchTemplateSpecification? - public init(tagSpecifications: TagSpecificationList? = nil, disableApiTermination: Bool? = nil, clientToken: String? = nil, ebsOptimized: Bool? = nil, kernelId: String? = nil, ipv6AddressCount: Int32? = nil, instanceType: InstanceType? = nil, privateIpAddress: String? = nil, keyName: String? = nil, iamInstanceProfile: IamInstanceProfileSpecification? = nil, instanceInitiatedShutdownBehavior: ShutdownBehavior? = nil, ipv6Addresses: InstanceIpv6AddressList? = nil, minCount: Int32, ramdiskId: String? = nil, blockDeviceMappings: BlockDeviceMappingRequestList? = nil, subnetId: String? = nil, userData: String? = nil, securityGroupIds: SecurityGroupIdStringList? = nil, monitoring: RunInstancesMonitoringEnabled? = nil, dryRun: Bool? = nil, securityGroups: SecurityGroupStringList? = nil, maxCount: Int32, additionalInfo: String? = nil, placement: Placement? = nil, networkInterfaces: InstanceNetworkInterfaceSpecificationList? = nil, imageId: String) { + public init(tagSpecifications: TagSpecificationList? = nil, disableApiTermination: Bool? = nil, clientToken: String? = nil, ebsOptimized: Bool? = nil, kernelId: String? = nil, ipv6AddressCount: Int32? = nil, instanceType: InstanceType? = nil, privateIpAddress: String? = nil, elasticGpuSpecification: ElasticGpuSpecifications? = nil, keyName: String? = nil, iamInstanceProfile: IamInstanceProfileSpecification? = nil, instanceInitiatedShutdownBehavior: ShutdownBehavior? = nil, ipv6Addresses: InstanceIpv6AddressList? = nil, minCount: Int32, ramdiskId: String? = nil, blockDeviceMappings: BlockDeviceMappingRequestList? = nil, subnetId: String? = nil, userData: String? = nil, securityGroupIds: SecurityGroupIdStringList? = nil, monitoring: RunInstancesMonitoringEnabled? = nil, dryRun: Bool? = nil, creditSpecification: CreditSpecificationRequest? = nil, securityGroups: SecurityGroupStringList? = nil, instanceMarketOptions: InstanceMarketOptionsRequest? = nil, maxCount: Int32, additionalInfo: String? = nil, placement: Placement? = nil, networkInterfaces: InstanceNetworkInterfaceSpecificationList? = nil, imageId: String? = nil, launchTemplate: LaunchTemplateSpecification? = nil) { self.tagSpecifications = tagSpecifications self.disableApiTermination = disableApiTermination self.clientToken = clientToken @@ -8304,6 +10313,7 @@ extension Ec2 { self.ipv6AddressCount = ipv6AddressCount self.instanceType = instanceType self.privateIpAddress = privateIpAddress + self.elasticGpuSpecification = elasticGpuSpecification self.keyName = keyName self.iamInstanceProfile = iamInstanceProfile self.instanceInitiatedShutdownBehavior = instanceInitiatedShutdownBehavior @@ -8316,12 +10326,15 @@ extension Ec2 { self.securityGroupIds = securityGroupIds self.monitoring = monitoring self.dryRun = dryRun + self.creditSpecification = creditSpecification self.securityGroups = securityGroups + self.instanceMarketOptions = instanceMarketOptions self.maxCount = maxCount self.additionalInfo = additionalInfo self.placement = placement self.networkInterfaces = networkInterfaces self.imageId = imageId + self.launchTemplate = launchTemplate } private enum CodingKeys: String, CodingKey { @@ -8333,6 +10346,7 @@ extension Ec2 { case ipv6AddressCount = "Ipv6AddressCount" case instanceType = "InstanceType" case privateIpAddress = "privateIpAddress" + case elasticGpuSpecification = "ElasticGpuSpecification" case keyName = "KeyName" case iamInstanceProfile = "iamInstanceProfile" case instanceInitiatedShutdownBehavior = "instanceInitiatedShutdownBehavior" @@ -8345,22 +10359,26 @@ extension Ec2 { case securityGroupIds = "SecurityGroupId" case monitoring = "Monitoring" case dryRun = "dryRun" + case creditSpecification = "CreditSpecification" case securityGroups = "SecurityGroup" + case instanceMarketOptions = "InstanceMarketOptions" case maxCount = "MaxCount" case additionalInfo = "additionalInfo" case placement = "Placement" case networkInterfaces = "networkInterface" case imageId = "ImageId" + case launchTemplate = "LaunchTemplate" } } public struct SpotInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchGroup", location: .body(locationName: "launchGroup"), required: false, type: .string), AWSShapeMember(label: "LaunchedAvailabilityZone", location: .body(locationName: "launchedAvailabilityZone"), required: false, type: .string), AWSShapeMember(label: "SpotInstanceRequestId", location: .body(locationName: "spotInstanceRequestId"), required: false, type: .string), + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), AWSShapeMember(label: "SpotPrice", location: .body(locationName: "spotPrice"), required: false, type: .string), - AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), AWSShapeMember(label: "ValidUntil", location: .body(locationName: "validUntil"), required: false, type: .timestamp), AWSShapeMember(label: "Fault", location: .body(locationName: "fault"), required: false, type: .structure), AWSShapeMember(label: "ProductDescription", location: .body(locationName: "productDescription"), required: false, type: .enum), @@ -8370,54 +10388,57 @@ extension Ec2 { AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), AWSShapeMember(label: "ActualBlockHourlyPrice", location: .body(locationName: "actualBlockHourlyPrice"), required: false, type: .string), AWSShapeMember(label: "BlockDurationMinutes", location: .body(locationName: "blockDurationMinutes"), required: false, type: .integer), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), AWSShapeMember(label: "LaunchSpecification", location: .body(locationName: "launchSpecification"), required: false, type: .structure), AWSShapeMember(label: "CreateTime", location: .body(locationName: "createTime"), required: false, type: .timestamp), - AWSShapeMember(label: "LaunchGroup", location: .body(locationName: "launchGroup"), required: false, type: .string), - AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum) + AWSShapeMember(label: "InstanceInterruptionBehavior", location: .body(locationName: "instanceInterruptionBehavior"), required: false, type: .enum) ] - /// The Availability Zone in which the bid is launched. + /// The instance launch group. Launch groups are Spot Instances that launch together and terminate together. + public let launchGroup: String? + /// The Availability Zone in which the request is launched. public let launchedAvailabilityZone: String? - /// The ID of the Spot instance request. + /// The ID of the Spot Instance request. public let spotInstanceRequestId: String? - /// The state of the Spot instance request. Spot bid status information can help you track your Spot instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide. - public let state: SpotInstanceState? - /// The maximum hourly price (bid) for the Spot instance launched to fulfill the request. - public let spotPrice: String? /// Any tags assigned to the resource. public let tags: TagList? - /// The end date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). If this is a one-time request, it remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached. + /// The state of the Spot Instance request. Spot status information can help you track your Spot Instance requests. For more information, see Spot Status in the Amazon Elastic Compute Cloud User Guide. + public let state: SpotInstanceState? + /// The maximum price per hour that you are willing to pay for a Spot Instance. + public let spotPrice: String? + /// The end date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). If this is a one-time request, it remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached. The default end date is 7 days from the current date. public let validUntil: TimeStamp? - /// The fault codes for the Spot instance request, if any. + /// The fault codes for the Spot Instance request, if any. public let fault: SpotInstanceStateFault? - /// The product description associated with the Spot instance. + /// The product description associated with the Spot Instance. public let productDescription: RIProductDescription? - /// The Availability Zone group. If you specify the same Availability Zone group for all Spot instance requests, all Spot instances are launched in the same Availability Zone. + /// The Availability Zone group. If you specify the same Availability Zone group for all Spot Instance requests, all Spot Instances are launched in the same Availability Zone. public let availabilityZoneGroup: String? - /// The status code and status message describing the Spot instance request. + /// The status code and status message describing the Spot Instance request. public let status: SpotInstanceStatus? /// The start date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The request becomes active at this date and time. public let validFrom: TimeStamp? - /// The instance ID, if an instance has been launched to fulfill the Spot instance request. + /// The instance ID, if an instance has been launched to fulfill the Spot Instance request. public let instanceId: String? - /// If you specified a duration and your Spot instance request was fulfilled, this is the fixed hourly price in effect for the Spot instance while it runs. + /// If you specified a duration and your Spot Instance request was fulfilled, this is the fixed hourly price in effect for the Spot Instance while it runs. public let actualBlockHourlyPrice: String? - /// The duration for the Spot instance, in minutes. + /// The duration for the Spot Instance, in minutes. public let blockDurationMinutes: Int32? + /// The Spot Instance request type. + public let `type`: SpotInstanceType? /// Additional information for launching instances. public let launchSpecification: LaunchSpecification? - /// The date and time when the Spot instance request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). + /// The date and time when the Spot Instance request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). public let createTime: TimeStamp? - /// The instance launch group. Launch groups are Spot instances that launch together and terminate together. - public let launchGroup: String? - /// The Spot instance request type. - public let `type`: SpotInstanceType? + /// The behavior when a Spot Instance is interrupted. + public let instanceInterruptionBehavior: InstanceInterruptionBehavior? - public init(launchedAvailabilityZone: String? = nil, spotInstanceRequestId: String? = nil, state: SpotInstanceState? = nil, spotPrice: String? = nil, tags: TagList? = nil, validUntil: TimeStamp? = nil, fault: SpotInstanceStateFault? = nil, productDescription: RIProductDescription? = nil, availabilityZoneGroup: String? = nil, status: SpotInstanceStatus? = nil, validFrom: TimeStamp? = nil, instanceId: String? = nil, actualBlockHourlyPrice: String? = nil, blockDurationMinutes: Int32? = nil, launchSpecification: LaunchSpecification? = nil, createTime: TimeStamp? = nil, launchGroup: String? = nil, type: SpotInstanceType? = nil) { + public init(launchGroup: String? = nil, launchedAvailabilityZone: String? = nil, spotInstanceRequestId: String? = nil, tags: TagList? = nil, state: SpotInstanceState? = nil, spotPrice: String? = nil, validUntil: TimeStamp? = nil, fault: SpotInstanceStateFault? = nil, productDescription: RIProductDescription? = nil, availabilityZoneGroup: String? = nil, status: SpotInstanceStatus? = nil, validFrom: TimeStamp? = nil, instanceId: String? = nil, actualBlockHourlyPrice: String? = nil, blockDurationMinutes: Int32? = nil, type: SpotInstanceType? = nil, launchSpecification: LaunchSpecification? = nil, createTime: TimeStamp? = nil, instanceInterruptionBehavior: InstanceInterruptionBehavior? = nil) { + self.launchGroup = launchGroup self.launchedAvailabilityZone = launchedAvailabilityZone self.spotInstanceRequestId = spotInstanceRequestId + self.tags = tags self.state = state self.spotPrice = spotPrice - self.tags = tags self.validUntil = validUntil self.fault = fault self.productDescription = productDescription @@ -8427,18 +10448,19 @@ extension Ec2 { self.instanceId = instanceId self.actualBlockHourlyPrice = actualBlockHourlyPrice self.blockDurationMinutes = blockDurationMinutes + self.`type` = `type` self.launchSpecification = launchSpecification self.createTime = createTime - self.launchGroup = launchGroup - self.`type` = `type` + self.instanceInterruptionBehavior = instanceInterruptionBehavior } private enum CodingKeys: String, CodingKey { + case launchGroup = "launchGroup" case launchedAvailabilityZone = "launchedAvailabilityZone" case spotInstanceRequestId = "spotInstanceRequestId" + case tags = "tagSet" case state = "state" case spotPrice = "spotPrice" - case tags = "tagSet" case validUntil = "validUntil" case fault = "fault" case productDescription = "productDescription" @@ -8448,15 +10470,15 @@ extension Ec2 { case instanceId = "instanceId" case actualBlockHourlyPrice = "actualBlockHourlyPrice" case blockDurationMinutes = "blockDurationMinutes" + case `type` = "type" case launchSpecification = "launchSpecification" case createTime = "createTime" - case launchGroup = "launchGroup" - case `type` = "type" + case instanceInterruptionBehavior = "instanceInterruptionBehavior" } } public struct RebootInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: true, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -8476,8 +10498,24 @@ extension Ec2 { } } + public struct AcceptVpcEndpointConnectionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure) + ] + /// Information about the interface endpoints that were not accepted, if applicable. + public let unsuccessful: UnsuccessfulItemSet? + + public init(unsuccessful: UnsuccessfulItemSet? = nil) { + self.unsuccessful = unsuccessful + } + + private enum CodingKeys: String, CodingKey { + case unsuccessful = "unsuccessful" + } + } + public struct VpcPeeringConnectionStateReason: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .enum), AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) ] @@ -8497,14 +10535,6 @@ extension Ec2 { } } - public enum ExportTaskState: String, CustomStringConvertible, Codable { - case active = "active" - case cancelling = "cancelling" - case cancelled = "cancelled" - case completed = "completed" - public var description: String { return self.rawValue } - } - public enum IamInstanceProfileAssociationState: String, CustomStringConvertible, Codable { case associating = "associating" case associated = "associated" @@ -8513,8 +10543,16 @@ extension Ec2 { public var description: String { return self.rawValue } } + public enum ExportTaskState: String, CustomStringConvertible, Codable { + case active = "active" + case cancelling = "cancelling" + case cancelled = "cancelled" + case completed = "completed" + public var description: String { return self.rawValue } + } + public struct ScheduledInstance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Platform", location: .body(locationName: "platform"), required: false, type: .string), AWSShapeMember(label: "PreviousSlotEndTime", location: .body(locationName: "previousSlotEndTime"), required: false, type: .timestamp), AWSShapeMember(label: "TotalScheduledInstanceHours", location: .body(locationName: "totalScheduledInstanceHours"), required: false, type: .integer), @@ -8600,14 +10638,14 @@ extension Ec2 { } public struct DescribeSpotFleetInstancesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "SpotFleetRequestId", location: .body(locationName: "spotFleetRequestId"), required: true, type: .string), AWSShapeMember(label: "ActiveInstances", location: .body(locationName: "activeInstanceSet"), required: true, type: .structure) ] /// The token required to retrieve the next set of results. This value is null when there are no more results to return. public let nextToken: String? - /// The ID of the Spot fleet request. + /// The ID of the Spot Fleet request. public let spotFleetRequestId: String /// The running instances. Note that this list is refreshed periodically and might be out of date. public let activeInstances: ActiveInstanceSet @@ -8626,7 +10664,7 @@ extension Ec2 { } public struct ProductCode: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProductCodeType", location: .body(locationName: "type"), required: false, type: .enum), AWSShapeMember(label: "ProductCodeId", location: .body(locationName: "productCode"), required: false, type: .string) ] @@ -8646,8 +10684,16 @@ extension Ec2 { } } + public enum NetworkInterfacePermissionStateCode: String, CustomStringConvertible, Codable { + case pending = "pending" + case granted = "granted" + case revoking = "revoking" + case revoked = "revoked" + public var description: String { return self.rawValue } + } + public struct InstanceStatusEvent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .enum), AWSShapeMember(label: "NotBefore", location: .body(locationName: "notBefore"), required: false, type: .timestamp), AWSShapeMember(label: "NotAfter", location: .body(locationName: "notAfter"), required: false, type: .timestamp), @@ -8678,7 +10724,7 @@ extension Ec2 { } public struct DescribeVolumeAttributeResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProductCodes", location: .body(locationName: "productCodes"), required: false, type: .structure), AWSShapeMember(label: "AutoEnableIO", location: .body(locationName: "autoEnableIO"), required: false, type: .structure), AWSShapeMember(label: "VolumeId", location: .body(locationName: "volumeId"), required: false, type: .string) @@ -8704,7 +10750,7 @@ extension Ec2 { } public struct DeleteNetworkInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -8725,20 +10771,20 @@ extension Ec2 { } public struct SpotDatafeedSubscription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .body(locationName: "bucket"), required: false, type: .string), AWSShapeMember(label: "OwnerId", location: .body(locationName: "ownerId"), required: false, type: .string), AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), AWSShapeMember(label: "Fault", location: .body(locationName: "fault"), required: false, type: .structure), AWSShapeMember(label: "Prefix", location: .body(locationName: "prefix"), required: false, type: .string) ] - /// The Amazon S3 bucket where the Spot instance data feed is located. + /// The Amazon S3 bucket where the Spot Instance data feed is located. public let bucket: String? /// The AWS account ID of the account. public let ownerId: String? - /// The state of the Spot instance data feed subscription. + /// The state of the Spot Instance data feed subscription. public let state: DatafeedSubscriptionState? - /// The fault codes for the Spot instance request, if any. + /// The fault codes for the Spot Instance request, if any. public let fault: SpotInstanceStateFault? /// The prefix that is prepended to data feed files. public let prefix: String? @@ -8761,7 +10807,7 @@ extension Ec2 { } public struct ImportImageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LicenseType", required: false, type: .string), AWSShapeMember(label: "Platform", required: false, type: .string), AWSShapeMember(label: "ClientToken", required: false, type: .string), @@ -8821,8 +10867,29 @@ extension Ec2 { } } + public struct SpotFleetTagSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", location: .body(locationName: "tag"), required: false, type: .structure), + AWSShapeMember(label: "ResourceType", location: .body(locationName: "resourceType"), required: false, type: .enum) + ] + /// The tags. + public let tags: TagList? + /// The type of resource. Currently, the only resource type that is supported is instance. + public let resourceType: ResourceType? + + public init(tags: TagList? = nil, resourceType: ResourceType? = nil) { + self.tags = tags + self.resourceType = resourceType + } + + private enum CodingKeys: String, CodingKey { + case tags = "tag" + case resourceType = "resourceType" + } + } + public struct OwnerStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Owner", required: false, type: .list) ] public let owner: [String]? @@ -8837,7 +10904,7 @@ extension Ec2 { } public struct ImportInstanceVolumeDetailItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: true, type: .string), AWSShapeMember(label: "BytesConverted", location: .body(locationName: "bytesConverted"), required: true, type: .long), AWSShapeMember(label: "Volume", location: .body(locationName: "volume"), required: true, type: .structure), @@ -8883,7 +10950,7 @@ extension Ec2 { } public struct RecurringChargesList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [RecurringCharge]? @@ -8898,7 +10965,7 @@ extension Ec2 { } public struct UnsuccessfulItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", location: .body(locationName: "resourceId"), required: false, type: .string), AWSShapeMember(label: "Error", location: .body(locationName: "error"), required: true, type: .structure) ] @@ -8919,7 +10986,7 @@ extension Ec2 { } public struct DescribeIamInstanceProfileAssociationsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "IamInstanceProfileAssociations", location: .body(locationName: "iamInstanceProfileAssociationSet"), required: false, type: .structure) ] @@ -8940,7 +11007,7 @@ extension Ec2 { } public struct ModifySpotFleetRequestResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] /// Is true if the request succeeds, and an error otherwise. @@ -8955,18 +11022,18 @@ extension Ec2 { } } - public struct OccurrenceDayRequestSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OccurenceDay", required: false, type: .list) + public struct FpgaImageList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - public let occurenceDay: [Int32]? + public let item: [FpgaImage]? - public init(occurenceDay: [Int32]? = nil) { - self.occurenceDay = occurenceDay + public init(item: [FpgaImage]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case occurenceDay = "OccurenceDay" + case item = "item" } } @@ -8979,23 +11046,23 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct FpgaImageList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct OccurrenceDayRequestSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OccurenceDay", required: false, type: .list) ] - public let item: [FpgaImage]? + public let occurenceDay: [Int32]? - public init(item: [FpgaImage]? = nil) { - self.item = item + public init(occurenceDay: [Int32]? = nil) { + self.occurenceDay = occurenceDay } private enum CodingKeys: String, CodingKey { - case item = "item" + case occurenceDay = "OccurenceDay" } } public struct Volume: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeType", location: .body(locationName: "volumeType"), required: false, type: .enum), AWSShapeMember(label: "State", location: .body(locationName: "status"), required: false, type: .enum), AWSShapeMember(label: "Encrypted", location: .body(locationName: "encrypted"), required: false, type: .boolean), @@ -9066,7 +11133,7 @@ extension Ec2 { } public struct PurchaseHostReservationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrencyCode", required: false, type: .enum), AWSShapeMember(label: "ClientToken", required: false, type: .string), AWSShapeMember(label: "HostIdSet", required: true, type: .structure), @@ -9101,15 +11168,61 @@ extension Ec2 { } } - public struct SubnetCidrBlockState: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), - AWSShapeMember(label: "StatusMessage", location: .body(locationName: "statusMessage"), required: false, type: .string) - ] - /// The state of a CIDR block. - public let state: SubnetCidrBlockStateCode? - /// A message about the status of the CIDR block, if applicable. - public let statusMessage: String? + public struct ModifySnapshotAttributeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserIds", location: .body(locationName: "UserId"), required: false, type: .structure), + AWSShapeMember(label: "SnapshotId", required: true, type: .string), + AWSShapeMember(label: "CreateVolumePermission", required: false, type: .structure), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "Attribute", required: false, type: .enum), + AWSShapeMember(label: "OperationType", required: false, type: .enum), + AWSShapeMember(label: "GroupNames", location: .body(locationName: "UserGroup"), required: false, type: .structure) + ] + /// The account ID to modify for the snapshot. + public let userIds: UserIdStringList? + /// The ID of the snapshot. + public let snapshotId: String + /// A JSON representation of the snapshot attribute modification. + public let createVolumePermission: CreateVolumePermissionModifications? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The snapshot attribute to modify. Only volume creation permissions may be modified at the customer level. + public let attribute: SnapshotAttributeName? + /// The type of operation to perform to the attribute. + public let operationType: OperationType? + /// The group to modify for the snapshot. + public let groupNames: GroupNameStringList? + + public init(userIds: UserIdStringList? = nil, snapshotId: String, createVolumePermission: CreateVolumePermissionModifications? = nil, dryRun: Bool? = nil, attribute: SnapshotAttributeName? = nil, operationType: OperationType? = nil, groupNames: GroupNameStringList? = nil) { + self.userIds = userIds + self.snapshotId = snapshotId + self.createVolumePermission = createVolumePermission + self.dryRun = dryRun + self.attribute = attribute + self.operationType = operationType + self.groupNames = groupNames + } + + private enum CodingKeys: String, CodingKey { + case userIds = "UserId" + case snapshotId = "SnapshotId" + case createVolumePermission = "CreateVolumePermission" + case dryRun = "dryRun" + case attribute = "Attribute" + case operationType = "OperationType" + case groupNames = "UserGroup" + } + } + + public struct SubnetCidrBlockState: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "StatusMessage", location: .body(locationName: "statusMessage"), required: false, type: .string) + ] + /// The state of a CIDR block. + public let state: SubnetCidrBlockStateCode? + /// A message about the status of the CIDR block, if applicable. + public let statusMessage: String? public init(state: SubnetCidrBlockStateCode? = nil, statusMessage: String? = nil) { self.state = state @@ -9122,8 +11235,55 @@ extension Ec2 { } } + public struct DescribeConversionTasksResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConversionTasks", location: .body(locationName: "conversionTasks"), required: false, type: .structure) + ] + /// Information about the conversion tasks. + public let conversionTasks: DescribeConversionTaskList? + + public init(conversionTasks: DescribeConversionTaskList? = nil) { + self.conversionTasks = conversionTasks + } + + private enum CodingKeys: String, CodingKey { + case conversionTasks = "conversionTasks" + } + } + + public struct DeleteLaunchTemplateVersionsResponseErrorItem: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateId", location: .body(locationName: "launchTemplateId"), required: false, type: .string), + AWSShapeMember(label: "LaunchTemplateName", location: .body(locationName: "launchTemplateName"), required: false, type: .string), + AWSShapeMember(label: "VersionNumber", location: .body(locationName: "versionNumber"), required: false, type: .long), + AWSShapeMember(label: "ResponseError", location: .body(locationName: "responseError"), required: false, type: .structure) + ] + /// The ID of the launch template. + public let launchTemplateId: String? + /// The name of the launch template. + public let launchTemplateName: String? + /// The version number of the launch template. + public let versionNumber: Int64? + /// Information about the error. + public let responseError: ResponseError? + + public init(launchTemplateId: String? = nil, launchTemplateName: String? = nil, versionNumber: Int64? = nil, responseError: ResponseError? = nil) { + self.launchTemplateId = launchTemplateId + self.launchTemplateName = launchTemplateName + self.versionNumber = versionNumber + self.responseError = responseError + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateId = "launchTemplateId" + case launchTemplateName = "launchTemplateName" + case versionNumber = "versionNumber" + case responseError = "responseError" + } + } + public struct InstanceAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "blockDeviceMapping"), required: false, type: .structure), AWSShapeMember(label: "UserData", location: .body(locationName: "userData"), required: false, type: .structure), AWSShapeMember(label: "SriovNetSupport", location: .body(locationName: "sriovNetSupport"), required: false, type: .structure), @@ -9146,15 +11306,15 @@ extension Ec2 { public let userData: AttributeValue? /// Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is enabled. public let sriovNetSupport: AttributeValue? - /// The name of the root device (for example, /dev/sda1 or /dev/xvda). + /// The device name of the root device volume (for example, /dev/sda1). public let rootDeviceName: AttributeValue? /// If the value is true, you can't terminate the instance through the Amazon EC2 console, CLI, or API; otherwise, you can. public let disableApiTermination: AttributeBooleanValue? - /// Indicates whether the instance is optimized for EBS I/O. + /// Indicates whether the instance is optimized for Amazon EBS I/O. public let ebsOptimized: AttributeBooleanValue? /// The kernel ID. public let kernelId: AttributeValue? - /// Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT. + /// Indicates whether source/destination checking is enabled. A value of true means that checking is enabled, and false means that checking is disabled. This value must be false for a NAT instance to perform NAT. public let sourceDestCheck: AttributeBooleanValue? /// The instance type. public let instanceType: AttributeValue? @@ -9208,70 +11368,24 @@ extension Ec2 { } } - public struct DescribeConversionTasksResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ConversionTasks", location: .body(locationName: "conversionTasks"), required: false, type: .structure) - ] - /// Information about the conversion tasks. - public let conversionTasks: DescribeConversionTaskList? - - public init(conversionTasks: DescribeConversionTaskList? = nil) { - self.conversionTasks = conversionTasks - } - - private enum CodingKeys: String, CodingKey { - case conversionTasks = "conversionTasks" - } - } - - public struct ModifySnapshotAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserIds", location: .body(locationName: "UserId"), required: false, type: .structure), - AWSShapeMember(label: "SnapshotId", required: true, type: .string), - AWSShapeMember(label: "CreateVolumePermission", required: false, type: .structure), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "Attribute", required: false, type: .enum), - AWSShapeMember(label: "OperationType", required: false, type: .enum), - AWSShapeMember(label: "GroupNames", location: .body(locationName: "UserGroup"), required: false, type: .structure) + public struct AttachClassicLinkVpcResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] - /// The account ID to modify for the snapshot. - public let userIds: UserIdStringList? - /// The ID of the snapshot. - public let snapshotId: String - /// A JSON representation of the snapshot attribute modification. - public let createVolumePermission: CreateVolumePermissionModifications? - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// The snapshot attribute to modify. Only volume creation permissions may be modified at the customer level. - public let attribute: SnapshotAttributeName? - /// The type of operation to perform to the attribute. - public let operationType: OperationType? - /// The group to modify for the snapshot. - public let groupNames: GroupNameStringList? + /// Returns true if the request succeeds; otherwise, it returns an error. + public let `return`: Bool? - public init(userIds: UserIdStringList? = nil, snapshotId: String, createVolumePermission: CreateVolumePermissionModifications? = nil, dryRun: Bool? = nil, attribute: SnapshotAttributeName? = nil, operationType: OperationType? = nil, groupNames: GroupNameStringList? = nil) { - self.userIds = userIds - self.snapshotId = snapshotId - self.createVolumePermission = createVolumePermission - self.dryRun = dryRun - self.attribute = attribute - self.operationType = operationType - self.groupNames = groupNames + public init(return: Bool? = nil) { + self.`return` = `return` } private enum CodingKeys: String, CodingKey { - case userIds = "UserId" - case snapshotId = "SnapshotId" - case createVolumePermission = "CreateVolumePermission" - case dryRun = "dryRun" - case attribute = "Attribute" - case operationType = "OperationType" - case groupNames = "UserGroup" + case `return` = "return" } } public struct CancelledSpotInstanceRequestList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [CancelledSpotInstanceRequest]? @@ -9285,33 +11399,17 @@ extension Ec2 { } } - public struct AttachClassicLinkVpcResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) - ] - /// Returns true if the request succeeds; otherwise, it returns an error. - public let `return`: Bool? - - public init(return: Bool? = nil) { - self.`return` = `return` - } - - private enum CodingKeys: String, CodingKey { - case `return` = "return" - } - } - public struct ModifySpotFleetRequestRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetCapacity", location: .body(locationName: "targetCapacity"), required: false, type: .integer), AWSShapeMember(label: "SpotFleetRequestId", location: .body(locationName: "spotFleetRequestId"), required: true, type: .string), AWSShapeMember(label: "ExcessCapacityTerminationPolicy", location: .body(locationName: "excessCapacityTerminationPolicy"), required: false, type: .enum) ] /// The size of the fleet. public let targetCapacity: Int32? - /// The ID of the Spot fleet request. + /// The ID of the Spot Fleet request. public let spotFleetRequestId: String - /// Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet. + /// Indicates whether running Spot Instances should be terminated if the target capacity of the Spot Fleet request is decreased below the current size of the Spot Fleet. public let excessCapacityTerminationPolicy: ExcessCapacityTerminationPolicy? public init(targetCapacity: Int32? = nil, spotFleetRequestId: String, excessCapacityTerminationPolicy: ExcessCapacityTerminationPolicy? = nil) { @@ -9328,7 +11426,7 @@ extension Ec2 { } public struct BundleTaskList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [BundleTask]? @@ -9343,7 +11441,7 @@ extension Ec2 { } public struct HostReservation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UpfrontPrice", location: .body(locationName: "upfrontPrice"), required: false, type: .string), AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), AWSShapeMember(label: "PaymentOption", location: .body(locationName: "paymentOption"), required: false, type: .enum), @@ -9419,7 +11517,7 @@ extension Ec2 { } public struct CreateReservedInstancesListingResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesListings", location: .body(locationName: "reservedInstancesListingsSet"), required: false, type: .structure) ] /// Information about the Standard Reserved Instance listing. @@ -9435,7 +11533,7 @@ extension Ec2 { } public struct DescribeHostsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filter", location: .body(locationName: "filter"), required: false, type: .structure), AWSShapeMember(label: "HostIds", location: .body(locationName: "hostId"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), @@ -9465,29 +11563,49 @@ extension Ec2 { } } + public struct HostReservationSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [HostReservation]? + + public init(item: [HostReservation]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct AllocateAddressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Address", required: false, type: .string), AWSShapeMember(label: "Domain", required: false, type: .enum), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] + /// [EC2-VPC] The Elastic IP address to recover. + public let address: String? /// Set to vpc to allocate the address for use with instances in a VPC. Default: The address is for use with instances in EC2-Classic. public let domain: DomainType? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - public init(domain: DomainType? = nil, dryRun: Bool? = nil) { + public init(address: String? = nil, domain: DomainType? = nil, dryRun: Bool? = nil) { + self.address = address self.domain = domain self.dryRun = dryRun } private enum CodingKeys: String, CodingKey { + case address = "Address" case domain = "Domain" case dryRun = "dryRun" } } public struct DescribeBundleTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "BundleIds", location: .body(locationName: "BundleId"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -9513,7 +11631,7 @@ extension Ec2 { } public struct CustomerGatewayList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [CustomerGateway]? @@ -9528,7 +11646,7 @@ extension Ec2 { } public struct RunScheduledInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceIdSet", location: .body(locationName: "instanceIdSet"), required: false, type: .structure) ] /// The IDs of the newly launched instances. @@ -9544,49 +11662,59 @@ extension Ec2 { } public struct DescribeVpcEndpointServicesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "ServiceNames", location: .body(locationName: "serviceNameSet"), required: false, type: .structure) + AWSShapeMember(label: "ServiceNames", location: .body(locationName: "serviceNameSet"), required: false, type: .structure), + AWSShapeMember(label: "ServiceDetails", location: .body(locationName: "serviceDetailSet"), required: false, type: .structure) ] /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. public let nextToken: String? - /// A list of supported AWS services. + /// A list of supported services. public let serviceNames: ValueStringList? + /// Information about the service. + public let serviceDetails: ServiceDetailSet? - public init(nextToken: String? = nil, serviceNames: ValueStringList? = nil) { + public init(nextToken: String? = nil, serviceNames: ValueStringList? = nil, serviceDetails: ServiceDetailSet? = nil) { self.nextToken = nextToken self.serviceNames = serviceNames + self.serviceDetails = serviceDetails } private enum CodingKeys: String, CodingKey { case nextToken = "nextToken" case serviceNames = "serviceNameSet" + case serviceDetails = "serviceDetailSet" } } public struct AssociateVpcCidrBlockResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), + AWSShapeMember(label: "CidrBlockAssociation", location: .body(locationName: "cidrBlockAssociation"), required: false, type: .structure), AWSShapeMember(label: "Ipv6CidrBlockAssociation", location: .body(locationName: "ipv6CidrBlockAssociation"), required: false, type: .structure) ] /// The ID of the VPC. public let vpcId: String? + /// Information about the IPv4 CIDR block association. + public let cidrBlockAssociation: VpcCidrBlockAssociation? /// Information about the IPv6 CIDR block association. public let ipv6CidrBlockAssociation: VpcIpv6CidrBlockAssociation? - public init(vpcId: String? = nil, ipv6CidrBlockAssociation: VpcIpv6CidrBlockAssociation? = nil) { + public init(vpcId: String? = nil, cidrBlockAssociation: VpcCidrBlockAssociation? = nil, ipv6CidrBlockAssociation: VpcIpv6CidrBlockAssociation? = nil) { self.vpcId = vpcId + self.cidrBlockAssociation = cidrBlockAssociation self.ipv6CidrBlockAssociation = ipv6CidrBlockAssociation } private enum CodingKeys: String, CodingKey { case vpcId = "vpcId" + case cidrBlockAssociation = "cidrBlockAssociation" case ipv6CidrBlockAssociation = "ipv6CidrBlockAssociation" } } public struct ExportTaskList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ExportTask]? @@ -9608,24 +11736,8 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct UserData: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Data", location: .body(locationName: "data"), required: false, type: .string) - ] - /// The user data. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text. - public let data: String? - - public init(data: String? = nil) { - self.data = data - } - - private enum CodingKeys: String, CodingKey { - case data = "data" - } - } - public struct AssociateAddressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrivateIpAddress", location: .body(locationName: "privateIpAddress"), required: false, type: .string), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string), @@ -9670,14 +11782,24 @@ extension Ec2 { } } - public enum HypervisorType: String, CustomStringConvertible, Codable { - case ovm = "ovm" - case xen = "xen" - public var description: String { return self.rawValue } + public struct UserData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Data", location: .body(locationName: "data"), required: false, type: .string) + ] + /// The user data. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text. + public let data: String? + + public init(data: String? = nil) { + self.data = data + } + + private enum CodingKeys: String, CodingKey { + case data = "data" + } } public struct DisassociateSubnetCidrBlockRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: true, type: .string) ] /// The association ID for the CIDR block. @@ -9692,8 +11814,14 @@ extension Ec2 { } } + public enum HypervisorType: String, CustomStringConvertible, Codable { + case ovm = "ovm" + case xen = "xen" + public var description: String { return self.rawValue } + } + public struct DeleteEgressOnlyInternetGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EgressOnlyInternetGatewayId", required: true, type: .string), AWSShapeMember(label: "DryRun", required: false, type: .boolean) ] @@ -9720,7 +11848,7 @@ extension Ec2 { } public struct AuthorizeSecurityGroupEgressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceSecurityGroupOwnerId", location: .body(locationName: "sourceSecurityGroupOwnerId"), required: false, type: .string), AWSShapeMember(label: "IpPermissions", location: .body(locationName: "ipPermissions"), required: false, type: .structure), AWSShapeMember(label: "CidrIp", location: .body(locationName: "cidrIp"), required: false, type: .string), @@ -9731,21 +11859,21 @@ extension Ec2 { AWSShapeMember(label: "IpProtocol", location: .body(locationName: "ipProtocol"), required: false, type: .string), AWSShapeMember(label: "GroupId", location: .body(locationName: "groupId"), required: true, type: .string) ] - /// The AWS account number for a destination security group. To authorize outbound access to a destination security group, we recommend that you use a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify a destination security group. public let sourceSecurityGroupOwnerId: String? - /// A set of IP permissions. You can't specify a destination security group and a CIDR IP address range. + /// One or more sets of IP permissions. You can't specify a destination security group and a CIDR IP address range in the same set of permissions. public let ipPermissions: IpPermissionList? - /// The CIDR IPv4 address range. We recommend that you specify the CIDR range in a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify the CIDR. public let cidrIp: String? - /// The name of a destination security group. To authorize outbound access to a destination security group, we recommend that you use a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify a destination security group. public let sourceSecurityGroupName: String? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// The start of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify the port. public let fromPort: Int32? - /// The end of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify the port. public let toPort: Int32? - /// The IP protocol name or number. We recommend that you specify the protocol in a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify the protocol name or number. public let ipProtocol: String? /// The ID of the security group. public let groupId: String @@ -9776,7 +11904,7 @@ extension Ec2 { } public struct VpcList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Vpc]? @@ -9791,7 +11919,7 @@ extension Ec2 { } public struct FlowLog: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliverLogsErrorMessage", location: .body(locationName: "deliverLogsErrorMessage"), required: false, type: .string), AWSShapeMember(label: "FlowLogStatus", location: .body(locationName: "flowLogStatus"), required: false, type: .string), AWSShapeMember(label: "FlowLogId", location: .body(locationName: "flowLogId"), required: false, type: .string), @@ -9846,8 +11974,24 @@ extension Ec2 { } } + public struct AttachNetworkInterfaceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttachmentId", location: .body(locationName: "attachmentId"), required: false, type: .string) + ] + /// The ID of the network interface attachment. + public let attachmentId: String? + + public init(attachmentId: String? = nil) { + self.attachmentId = attachmentId + } + + private enum CodingKeys: String, CodingKey { + case attachmentId = "attachmentId" + } + } + public struct CreateVpcEndpointResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), AWSShapeMember(label: "VpcEndpoint", location: .body(locationName: "vpcEndpoint"), required: false, type: .structure) ] @@ -9867,24 +12011,24 @@ extension Ec2 { } } - public struct AttachNetworkInterfaceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttachmentId", location: .body(locationName: "attachmentId"), required: false, type: .string) + public struct ServiceTypeDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceType", location: .body(locationName: "serviceType"), required: false, type: .enum) ] - /// The ID of the network interface attachment. - public let attachmentId: String? + /// The type of service. + public let serviceType: ServiceType? - public init(attachmentId: String? = nil) { - self.attachmentId = attachmentId + public init(serviceType: ServiceType? = nil) { + self.serviceType = serviceType } private enum CodingKeys: String, CodingKey { - case attachmentId = "attachmentId" + case serviceType = "serviceType" } } public struct DescribeVpcEndpointsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "VpcEndpoints", location: .body(locationName: "vpcEndpointSet"), required: false, type: .structure) ] @@ -9905,7 +12049,7 @@ extension Ec2 { } public struct CreateKeyPairRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyName", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -9925,8 +12069,39 @@ extension Ec2 { } } + public struct DescribeVpcEndpointConnectionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// One or more filters. customer-account-id - The AWS account number of the owner of the endpoint. endpoint-connection-state - The state of the endpoint (PendingAcceptance | Pending | Available | Deleting | Deleted | Rejected | Failed). vpc-endpoint-id - The ID of the endpoint. vpc-endpoint-service-id - The ID of the service. + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The token to retrieve the next page of results. + public let nextToken: String? + /// The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. + public let maxResults: Int32? + + public init(filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.filters = filters + self.dryRun = dryRun + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filter" + case dryRun = "DryRun" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + public struct StaleSecurityGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StaleIpPermissions", location: .body(locationName: "staleIpPermissions"), required: false, type: .structure), AWSShapeMember(label: "StaleIpPermissionsEgress", location: .body(locationName: "staleIpPermissionsEgress"), required: false, type: .structure), AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: false, type: .string), @@ -9966,15 +12141,30 @@ extension Ec2 { } } - public struct ConfirmProductInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OwnerId", location: .body(locationName: "ownerId"), required: false, type: .string), - AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + public struct InstanceIpv6AddressListRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceIpv6Address", required: false, type: .list) ] - /// The AWS account ID of the instance owner. This is only present if the product code is attached to the instance. - public let ownerId: String? - /// The return value of the request. Returns true if the specified product code is owned by the requester and associated with the specified instance. - public let `return`: Bool? + public let instanceIpv6Address: [InstanceIpv6AddressRequest]? + + public init(instanceIpv6Address: [InstanceIpv6AddressRequest]? = nil) { + self.instanceIpv6Address = instanceIpv6Address + } + + private enum CodingKeys: String, CodingKey { + case instanceIpv6Address = "InstanceIpv6Address" + } + } + + public struct ConfirmProductInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OwnerId", location: .body(locationName: "ownerId"), required: false, type: .string), + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// The AWS account ID of the instance owner. This is only present if the product code is attached to the instance. + public let ownerId: String? + /// The return value of the request. Returns true if the specified product code is owned by the requester and associated with the specified instance. + public let `return`: Bool? public init(ownerId: String? = nil, return: Bool? = nil) { self.ownerId = ownerId @@ -9994,23 +12184,8 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct UserIdGroupPairList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) - ] - public let item: [UserIdGroupPair]? - - public init(item: [UserIdGroupPair]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "item" - } - } - public struct ImportKeyPairRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyName", location: .body(locationName: "keyName"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "PublicKeyMaterial", location: .body(locationName: "publicKeyMaterial"), required: true, type: .blob) @@ -10035,8 +12210,23 @@ extension Ec2 { } } + public struct UserIdGroupPairList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [UserIdGroupPair]? + + public init(item: [UserIdGroupPair]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct InstanceIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: false, type: .list) ] public let instanceId: [String]? @@ -10051,7 +12241,7 @@ extension Ec2 { } public struct VpcClassicLinkIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: false, type: .list) ] public let vpcId: [String]? @@ -10066,7 +12256,7 @@ extension Ec2 { } public struct RunInstancesMonitoringEnabled: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Enabled", location: .body(locationName: "enabled"), required: true, type: .boolean) ] /// Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled. @@ -10082,12 +12272,12 @@ extension Ec2 { } public struct GetPasswordDataResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PasswordData", location: .body(locationName: "passwordData"), required: false, type: .string), AWSShapeMember(label: "Timestamp", location: .body(locationName: "timestamp"), required: false, type: .timestamp), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string) ] - /// The password of the instance. + /// The password of the instance. Returns an empty string if the password is not available. public let passwordData: String? /// The time the data was last updated. public let timestamp: TimeStamp? @@ -10107,28 +12297,8 @@ extension Ec2 { } } - public struct AvailabilityZoneMessageList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) - ] - public let item: [AvailabilityZoneMessage]? - - public init(item: [AvailabilityZoneMessage]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "item" - } - } - - public enum PlatformValues: String, CustomStringConvertible, Codable { - case windows = "Windows" - public var description: String { return self.rawValue } - } - public struct IdFormat: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Deadline", location: .body(locationName: "deadline"), required: false, type: .timestamp), AWSShapeMember(label: "Resource", location: .body(locationName: "resource"), required: false, type: .string), AWSShapeMember(label: "UseLongIds", location: .body(locationName: "useLongIds"), required: false, type: .boolean) @@ -10154,7 +12324,7 @@ extension Ec2 { } public struct FpgaImage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", location: .body(locationName: "tags"), required: false, type: .structure), AWSShapeMember(label: "ShellVersion", location: .body(locationName: "shellVersion"), required: false, type: .string), AWSShapeMember(label: "FpgaImageGlobalId", location: .body(locationName: "fpgaImageGlobalId"), required: false, type: .string), @@ -10162,6 +12332,7 @@ extension Ec2 { AWSShapeMember(label: "FpgaImageId", location: .body(locationName: "fpgaImageId"), required: false, type: .string), AWSShapeMember(label: "UpdateTime", location: .body(locationName: "updateTime"), required: false, type: .timestamp), AWSShapeMember(label: "OwnerId", location: .body(locationName: "ownerId"), required: false, type: .string), + AWSShapeMember(label: "Public", location: .body(locationName: "public"), required: false, type: .boolean), AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), AWSShapeMember(label: "ProductCodes", location: .body(locationName: "productCodes"), required: false, type: .structure), AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), @@ -10183,6 +12354,8 @@ extension Ec2 { public let updateTime: TimeStamp? /// The AWS account ID of the AFI owner. public let ownerId: String? + /// Indicates whether the AFI is public. + public let `public`: Bool? /// The description of the AFI. public let description: String? /// The product codes for the AFI. @@ -10196,7 +12369,7 @@ extension Ec2 { /// The alias of the AFI owner. Possible values include self, amazon, and aws-marketplace. public let ownerAlias: String? - public init(tags: TagList? = nil, shellVersion: String? = nil, fpgaImageGlobalId: String? = nil, state: FpgaImageState? = nil, fpgaImageId: String? = nil, updateTime: TimeStamp? = nil, ownerId: String? = nil, description: String? = nil, productCodes: ProductCodeList? = nil, name: String? = nil, pciId: PciId? = nil, createTime: TimeStamp? = nil, ownerAlias: String? = nil) { + public init(tags: TagList? = nil, shellVersion: String? = nil, fpgaImageGlobalId: String? = nil, state: FpgaImageState? = nil, fpgaImageId: String? = nil, updateTime: TimeStamp? = nil, ownerId: String? = nil, public: Bool? = nil, description: String? = nil, productCodes: ProductCodeList? = nil, name: String? = nil, pciId: PciId? = nil, createTime: TimeStamp? = nil, ownerAlias: String? = nil) { self.tags = tags self.shellVersion = shellVersion self.fpgaImageGlobalId = fpgaImageGlobalId @@ -10204,6 +12377,7 @@ extension Ec2 { self.fpgaImageId = fpgaImageId self.updateTime = updateTime self.ownerId = ownerId + self.`public` = `public` self.description = description self.productCodes = productCodes self.name = name @@ -10220,6 +12394,7 @@ extension Ec2 { case fpgaImageId = "fpgaImageId" case updateTime = "updateTime" case ownerId = "ownerId" + case `public` = "public" case description = "description" case productCodes = "productCodes" case name = "name" @@ -10229,44 +12404,49 @@ extension Ec2 { } } - public struct RunScheduledInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientToken", required: false, type: .string), - AWSShapeMember(label: "DryRun", required: false, type: .boolean), - AWSShapeMember(label: "LaunchSpecification", required: true, type: .structure), - AWSShapeMember(label: "InstanceCount", required: false, type: .integer), - AWSShapeMember(label: "ScheduledInstanceId", required: true, type: .string) + public enum PlatformValues: String, CustomStringConvertible, Codable { + case windows = "Windows" + public var description: String { return self.rawValue } + } + + public struct DescribeClassicLinkInstancesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: false, type: .structure), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) ] - /// Unique, case-sensitive identifier that ensures the idempotency of the request. For more information, see Ensuring Idempotency. - public let clientToken: String? + /// One or more filters. group-id - The ID of a VPC security group that's associated with the instance. instance-id - The ID of the instance. tag:key=value - The key/value combination of a tag assigned to the resource. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-id - The ID of the VPC that the instance is linked to. + public let filters: FilterList? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// The launch specification. You must match the instance type, Availability Zone, network, and platform of the schedule that you purchased. - public let launchSpecification: ScheduledInstancesLaunchSpecification - /// The number of instances. Default: 1 - public let instanceCount: Int32? - /// The Scheduled Instance ID. - public let scheduledInstanceId: String + /// The token to retrieve the next page of results. + public let nextToken: String? + /// One or more instance IDs. Must be instances linked to a VPC through ClassicLink. + public let instanceIds: InstanceIdStringList? + /// The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the instance IDs parameter in the same request. Constraint: If the value is greater than 1000, we return only 1000 items. + public let maxResults: Int32? - public init(clientToken: String? = nil, dryRun: Bool? = nil, launchSpecification: ScheduledInstancesLaunchSpecification, instanceCount: Int32? = nil, scheduledInstanceId: String) { - self.clientToken = clientToken + public init(filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, instanceIds: InstanceIdStringList? = nil, maxResults: Int32? = nil) { + self.filters = filters self.dryRun = dryRun - self.launchSpecification = launchSpecification - self.instanceCount = instanceCount - self.scheduledInstanceId = scheduledInstanceId + self.nextToken = nextToken + self.instanceIds = instanceIds + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case clientToken = "ClientToken" - case dryRun = "DryRun" - case launchSpecification = "LaunchSpecification" - case instanceCount = "InstanceCount" - case scheduledInstanceId = "ScheduledInstanceId" + case filters = "Filter" + case dryRun = "dryRun" + case nextToken = "nextToken" + case instanceIds = "InstanceId" + case maxResults = "maxResults" } } public struct BlockDeviceMapping: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NoDevice", location: .body(locationName: "noDevice"), required: false, type: .string), AWSShapeMember(label: "VirtualName", location: .body(locationName: "virtualName"), required: false, type: .string), AWSShapeMember(label: "DeviceName", location: .body(locationName: "deviceName"), required: false, type: .string), @@ -10276,7 +12456,7 @@ extension Ec2 { public let noDevice: String? /// The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1.The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI. public let virtualName: String? - /// The device name exposed to the instance (for example, /dev/sdh or xvdh). + /// The device name (for example, /dev/sdh or xvdh). public let deviceName: String? /// Parameters used to automatically set up EBS volumes when the instance is launched. public let ebs: EbsBlockDevice? @@ -10296,6 +12476,42 @@ extension Ec2 { } } + public struct RunScheduledInstancesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientToken", required: false, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "LaunchSpecification", required: true, type: .structure), + AWSShapeMember(label: "InstanceCount", required: false, type: .integer), + AWSShapeMember(label: "ScheduledInstanceId", required: true, type: .string) + ] + /// Unique, case-sensitive identifier that ensures the idempotency of the request. For more information, see Ensuring Idempotency. + public let clientToken: String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The launch specification. You must match the instance type, Availability Zone, network, and platform of the schedule that you purchased. + public let launchSpecification: ScheduledInstancesLaunchSpecification + /// The number of instances. Default: 1 + public let instanceCount: Int32? + /// The Scheduled Instance ID. + public let scheduledInstanceId: String + + public init(clientToken: String? = nil, dryRun: Bool? = nil, launchSpecification: ScheduledInstancesLaunchSpecification, instanceCount: Int32? = nil, scheduledInstanceId: String) { + self.clientToken = clientToken + self.dryRun = dryRun + self.launchSpecification = launchSpecification + self.instanceCount = instanceCount + self.scheduledInstanceId = scheduledInstanceId + } + + private enum CodingKeys: String, CodingKey { + case clientToken = "ClientToken" + case dryRun = "DryRun" + case launchSpecification = "LaunchSpecification" + case instanceCount = "InstanceCount" + case scheduledInstanceId = "ScheduledInstanceId" + } + } + public enum InstanceStateName: String, CustomStringConvertible, Codable { case pending = "pending" case running = "running" @@ -10306,65 +12522,45 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct ReplaceIamInstanceProfileAssociationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IamInstanceProfile", required: true, type: .structure), - AWSShapeMember(label: "AssociationId", required: true, type: .string) + public struct LaunchTemplateIamInstanceProfileSpecificationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string) ] - /// The IAM instance profile. - public let iamInstanceProfile: IamInstanceProfileSpecification - /// The ID of the existing IAM instance profile association. - public let associationId: String + /// The name of the instance profile. + public let name: String? + /// The Amazon Resource Name (ARN) of the instance profile. + public let arn: String? - public init(iamInstanceProfile: IamInstanceProfileSpecification, associationId: String) { - self.iamInstanceProfile = iamInstanceProfile - self.associationId = associationId + public init(name: String? = nil, arn: String? = nil) { + self.name = name + self.arn = arn } private enum CodingKeys: String, CodingKey { - case iamInstanceProfile = "IamInstanceProfile" - case associationId = "AssociationId" + case name = "Name" + case arn = "Arn" } } - public struct DescribeClassicLinkInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: false, type: .structure), - AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + public struct UpdateSecurityGroupRuleDescriptionsIngressResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] - /// One or more filters. group-id - The ID of a VPC security group that's associated with the instance. instance-id - The ID of the instance. tag:key=value - The key/value combination of a tag assigned to the resource. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-id - The ID of the VPC that the instance is linked to. - public let filters: FilterList? - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// The token to retrieve the next page of results. - public let nextToken: String? - /// One or more instance IDs. Must be instances linked to a VPC through ClassicLink. - public let instanceIds: InstanceIdStringList? - /// The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the instance IDs parameter in the same request. Constraint: If the value is greater than 1000, we return only 1000 items. - public let maxResults: Int32? + /// Returns true if the request succeeds; otherwise, returns an error. + public let `return`: Bool? - public init(filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, instanceIds: InstanceIdStringList? = nil, maxResults: Int32? = nil) { - self.filters = filters - self.dryRun = dryRun - self.nextToken = nextToken - self.instanceIds = instanceIds - self.maxResults = maxResults + public init(return: Bool? = nil) { + self.`return` = `return` } private enum CodingKeys: String, CodingKey { - case filters = "Filter" - case dryRun = "dryRun" - case nextToken = "nextToken" - case instanceIds = "InstanceId" - case maxResults = "maxResults" + case `return` = "return" } } public struct AllocationIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AllocationId", required: false, type: .list) ] public let allocationId: [String]? @@ -10379,7 +12575,7 @@ extension Ec2 { } public struct ScheduledInstancesIpv6Address: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ipv6Address", required: false, type: .string) ] /// The IPv6 address. @@ -10407,7 +12603,7 @@ extension Ec2 { } public struct DescribeSpotFleetRequestHistoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", location: .body(locationName: "startTime"), required: true, type: .timestamp), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "EventType", location: .body(locationName: "eventType"), required: false, type: .enum), @@ -10423,7 +12619,7 @@ extension Ec2 { public let eventType: EventType? /// The token for the next set of results. public let nextToken: String? - /// The ID of the Spot fleet request. + /// The ID of the Spot Fleet request. public let spotFleetRequestId: String /// The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value. public let maxResults: Int32? @@ -10447,8 +12643,23 @@ extension Ec2 { } } + public struct PricingDetailsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [PricingDetail]? + + public init(item: [PricingDetail]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct ScheduledInstanceAvailability: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Platform", location: .body(locationName: "platform"), required: false, type: .string), AWSShapeMember(label: "TotalScheduledInstanceHours", location: .body(locationName: "totalScheduledInstanceHours"), required: false, type: .integer), AWSShapeMember(label: "MinTermDurationInDays", location: .body(locationName: "minTermDurationInDays"), required: false, type: .integer), @@ -10523,39 +12734,39 @@ extension Ec2 { } } - public struct PricingDetailsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct VolumeDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Size", location: .body(locationName: "size"), required: true, type: .long) ] - public let item: [PricingDetail]? + /// The size of the volume, in GiB. + public let size: Int64 - public init(item: [PricingDetail]? = nil) { - self.item = item + public init(size: Int64) { + self.size = size } private enum CodingKeys: String, CodingKey { - case item = "item" + case size = "size" } } - public struct VolumeDetail: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Size", location: .body(locationName: "size"), required: true, type: .long) + public struct AvailabilityZoneMessageList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The size of the volume, in GiB. - public let size: Int64 + public let item: [AvailabilityZoneMessage]? - public init(size: Int64) { - self.size = size + public init(item: [AvailabilityZoneMessage]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case size = "size" + case item = "item" } } public struct ReleaseHostsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostIds", location: .body(locationName: "hostId"), required: true, type: .structure) ] /// The IDs of the Dedicated Hosts you want to release. @@ -10570,43 +12781,50 @@ extension Ec2 { } } - public enum CancelSpotInstanceRequestState: String, CustomStringConvertible, Codable { - case active = "active" - case open = "open" - case closed = "closed" - case cancelled = "cancelled" - case completed = "completed" - public var description: String { return self.rawValue } - } + public struct DnsEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DnsName", location: .body(locationName: "dnsName"), required: false, type: .string), + AWSShapeMember(label: "HostedZoneId", location: .body(locationName: "hostedZoneId"), required: false, type: .string) + ] + /// The DNS name. + public let dnsName: String? + /// The ID of the private hosted zone. + public let hostedZoneId: String? - public struct InstanceStatusDetails: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .enum), - AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), - AWSShapeMember(label: "ImpairedSince", location: .body(locationName: "impairedSince"), required: false, type: .timestamp) + public init(dnsName: String? = nil, hostedZoneId: String? = nil) { + self.dnsName = dnsName + self.hostedZoneId = hostedZoneId + } + + private enum CodingKeys: String, CodingKey { + case dnsName = "dnsName" + case hostedZoneId = "hostedZoneId" + } + } + + public struct ReplaceIamInstanceProfileAssociationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IamInstanceProfile", required: true, type: .structure), + AWSShapeMember(label: "AssociationId", required: true, type: .string) ] - /// The type of instance status. - public let name: StatusName? - /// The status. - public let status: StatusType? - /// The time when a status check failed. For an instance that was launched and impaired, this is the time when the instance was launched. - public let impairedSince: TimeStamp? + /// The IAM instance profile. + public let iamInstanceProfile: IamInstanceProfileSpecification + /// The ID of the existing IAM instance profile association. + public let associationId: String - public init(name: StatusName? = nil, status: StatusType? = nil, impairedSince: TimeStamp? = nil) { - self.name = name - self.status = status - self.impairedSince = impairedSince + public init(iamInstanceProfile: IamInstanceProfileSpecification, associationId: String) { + self.iamInstanceProfile = iamInstanceProfile + self.associationId = associationId } private enum CodingKeys: String, CodingKey { - case name = "name" - case status = "status" - case impairedSince = "impairedSince" + case iamInstanceProfile = "IamInstanceProfile" + case associationId = "AssociationId" } } public struct StartInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: true, type: .structure), AWSShapeMember(label: "AdditionalInfo", location: .body(locationName: "additionalInfo"), required: false, type: .string) @@ -10631,8 +12849,34 @@ extension Ec2 { } } + public struct InstanceStatusDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .enum), + AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "ImpairedSince", location: .body(locationName: "impairedSince"), required: false, type: .timestamp) + ] + /// The type of instance status. + public let name: StatusName? + /// The status. + public let status: StatusType? + /// The time when a status check failed. For an instance that was launched and impaired, this is the time when the instance was launched. + public let impairedSince: TimeStamp? + + public init(name: StatusName? = nil, status: StatusType? = nil, impairedSince: TimeStamp? = nil) { + self.name = name + self.status = status + self.impairedSince = impairedSince + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case status = "status" + case impairedSince = "impairedSince" + } + } + public struct FlowLogSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [FlowLog]? @@ -10646,8 +12890,17 @@ extension Ec2 { } } + public enum CancelSpotInstanceRequestState: String, CustomStringConvertible, Codable { + case active = "active" + case open = "open" + case closed = "closed" + case cancelled = "cancelled" + case completed = "completed" + public var description: String { return self.rawValue } + } + public struct SlotStartTimeRangeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EarliestTime", required: false, type: .timestamp), AWSShapeMember(label: "LatestTime", required: false, type: .timestamp) ] @@ -10667,8 +12920,24 @@ extension Ec2 { } } + public struct CreditSpecificationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CpuCredits", required: true, type: .string) + ] + /// The credit option for CPU usage of a T2 instance. Valid values are standard and unlimited. + public let cpuCredits: String + + public init(cpuCredits: String) { + self.cpuCredits = cpuCredits + } + + private enum CodingKeys: String, CodingKey { + case cpuCredits = "CpuCredits" + } + } + public struct CreateRouteResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] /// Returns true if the request succeeds; otherwise, it returns an error. @@ -10684,7 +12953,7 @@ extension Ec2 { } public struct VolumeStatusEventsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VolumeStatusEvent]? @@ -10704,31 +12973,15 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct DescribeReservedInstancesListingsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReservedInstancesListings", location: .body(locationName: "reservedInstancesListingsSet"), required: false, type: .structure) - ] - /// Information about the Reserved Instance listing. - public let reservedInstancesListings: ReservedInstancesListingList? - - public init(reservedInstancesListings: ReservedInstancesListingList? = nil) { - self.reservedInstancesListings = reservedInstancesListings - } - - private enum CodingKeys: String, CodingKey { - case reservedInstancesListings = "reservedInstancesListingsSet" - } - } - public struct GetHostReservationPurchasePreviewResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Purchase", location: .body(locationName: "purchase"), required: false, type: .list), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Purchase", location: .body(locationName: "purchase"), required: false, type: .structure), AWSShapeMember(label: "TotalUpfrontPrice", location: .body(locationName: "totalUpfrontPrice"), required: false, type: .string), AWSShapeMember(label: "CurrencyCode", location: .body(locationName: "currencyCode"), required: false, type: .enum), AWSShapeMember(label: "TotalHourlyPrice", location: .body(locationName: "totalHourlyPrice"), required: false, type: .string) ] /// The purchase information of the Dedicated Host Reservation and the Dedicated Hosts associated with it. - public let purchase: [Purchase]? + public let purchase: PurchaseSet? /// The potential total upfront price. This is billed immediately. public let totalUpfrontPrice: String? /// The currency in which the totalUpfrontPrice and totalHourlyPrice amounts are specified. At this time, the only supported currency is USD. @@ -10736,7 +12989,7 @@ extension Ec2 { /// The potential total hourly price of the reservation per hour. public let totalHourlyPrice: String? - public init(purchase: [Purchase]? = nil, totalUpfrontPrice: String? = nil, currencyCode: CurrencyCodeValues? = nil, totalHourlyPrice: String? = nil) { + public init(purchase: PurchaseSet? = nil, totalUpfrontPrice: String? = nil, currencyCode: CurrencyCodeValues? = nil, totalHourlyPrice: String? = nil) { self.purchase = purchase self.totalUpfrontPrice = totalUpfrontPrice self.currencyCode = currencyCode @@ -10751,8 +13004,24 @@ extension Ec2 { } } + public struct DescribeReservedInstancesListingsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedInstancesListings", location: .body(locationName: "reservedInstancesListingsSet"), required: false, type: .structure) + ] + /// Information about the Reserved Instance listing. + public let reservedInstancesListings: ReservedInstancesListingList? + + public init(reservedInstancesListings: ReservedInstancesListingList? = nil) { + self.reservedInstancesListings = reservedInstancesListings + } + + private enum CodingKeys: String, CodingKey { + case reservedInstancesListings = "reservedInstancesListingsSet" + } + } + public struct ExportTask: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceExportDetails", location: .body(locationName: "instanceExport"), required: false, type: .structure), AWSShapeMember(label: "ExportTaskId", location: .body(locationName: "exportTaskId"), required: false, type: .string), AWSShapeMember(label: "ExportToS3Task", location: .body(locationName: "exportToS3"), required: false, type: .structure), @@ -10792,13 +13061,59 @@ extension Ec2 { } } + public struct NetworkInterfaceAttachment: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceIndex", location: .body(locationName: "deviceIndex"), required: false, type: .integer), + AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), + AWSShapeMember(label: "AttachTime", location: .body(locationName: "attachTime"), required: false, type: .timestamp), + AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), + AWSShapeMember(label: "AttachmentId", location: .body(locationName: "attachmentId"), required: false, type: .string), + AWSShapeMember(label: "InstanceOwnerId", location: .body(locationName: "instanceOwnerId"), required: false, type: .string) + ] + /// The device index of the network interface attachment on the instance. + public let deviceIndex: Int32? + /// The attachment state. + public let status: AttachmentStatus? + /// The ID of the instance. + public let instanceId: String? + /// The timestamp indicating when the attachment initiated. + public let attachTime: TimeStamp? + /// Indicates whether the network interface is deleted when the instance is terminated. + public let deleteOnTermination: Bool? + /// The ID of the network interface attachment. + public let attachmentId: String? + /// The AWS account ID of the owner of the instance. + public let instanceOwnerId: String? + + public init(deviceIndex: Int32? = nil, status: AttachmentStatus? = nil, instanceId: String? = nil, attachTime: TimeStamp? = nil, deleteOnTermination: Bool? = nil, attachmentId: String? = nil, instanceOwnerId: String? = nil) { + self.deviceIndex = deviceIndex + self.status = status + self.instanceId = instanceId + self.attachTime = attachTime + self.deleteOnTermination = deleteOnTermination + self.attachmentId = attachmentId + self.instanceOwnerId = instanceOwnerId + } + + private enum CodingKeys: String, CodingKey { + case deviceIndex = "deviceIndex" + case status = "status" + case instanceId = "instanceId" + case attachTime = "attachTime" + case deleteOnTermination = "deleteOnTermination" + case attachmentId = "attachmentId" + case instanceOwnerId = "instanceOwnerId" + } + } + public struct CreateSpotDatafeedSubscriptionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .body(locationName: "bucket"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Prefix", location: .body(locationName: "prefix"), required: false, type: .string) ] - /// The Amazon S3 bucket in which to store the Spot instance data feed. + /// The Amazon S3 bucket in which to store the Spot Instance data feed. public let bucket: String /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -10818,8 +13133,29 @@ extension Ec2 { } } + public struct DeleteSubnetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetId", required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// The ID of the subnet. + public let subnetId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(subnetId: String, dryRun: Bool? = nil) { + self.subnetId = subnetId + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case subnetId = "SubnetId" + case dryRun = "dryRun" + } + } + public struct EgressOnlyInternetGatewayList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [EgressOnlyInternetGateway]? @@ -10833,8 +13169,29 @@ extension Ec2 { } } + public struct EbsInstanceBlockDeviceSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), + AWSShapeMember(label: "VolumeId", location: .body(locationName: "volumeId"), required: false, type: .string) + ] + /// Indicates whether the volume is deleted on instance termination. + public let deleteOnTermination: Bool? + /// The ID of the EBS volume. + public let volumeId: String? + + public init(deleteOnTermination: Bool? = nil, volumeId: String? = nil) { + self.deleteOnTermination = deleteOnTermination + self.volumeId = volumeId + } + + private enum CodingKeys: String, CodingKey { + case deleteOnTermination = "deleteOnTermination" + case volumeId = "volumeId" + } + } + public struct DescribeScheduledInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SlotStartTimeRange", required: false, type: .structure), AWSShapeMember(label: "ScheduledInstanceIds", location: .body(locationName: "ScheduledInstanceId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), @@ -10874,117 +13231,24 @@ extension Ec2 { } } - public struct DeleteSubnetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubnetId", required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) - ] - /// The ID of the subnet. - public let subnetId: String - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - - public init(subnetId: String, dryRun: Bool? = nil) { - self.subnetId = subnetId - self.dryRun = dryRun - } - - private enum CodingKeys: String, CodingKey { - case subnetId = "SubnetId" - case dryRun = "dryRun" - } - } - - public struct EbsInstanceBlockDeviceSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), - AWSShapeMember(label: "VolumeId", location: .body(locationName: "volumeId"), required: false, type: .string) - ] - /// Indicates whether the volume is deleted on instance termination. - public let deleteOnTermination: Bool? - /// The ID of the EBS volume. - public let volumeId: String? - - public init(deleteOnTermination: Bool? = nil, volumeId: String? = nil) { - self.deleteOnTermination = deleteOnTermination - self.volumeId = volumeId - } - - private enum CodingKeys: String, CodingKey { - case deleteOnTermination = "deleteOnTermination" - case volumeId = "volumeId" - } - } - - public struct NetworkInterfaceAttachment: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeviceIndex", location: .body(locationName: "deviceIndex"), required: false, type: .integer), - AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), - AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), - AWSShapeMember(label: "AttachTime", location: .body(locationName: "attachTime"), required: false, type: .timestamp), - AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), - AWSShapeMember(label: "AttachmentId", location: .body(locationName: "attachmentId"), required: false, type: .string), - AWSShapeMember(label: "InstanceOwnerId", location: .body(locationName: "instanceOwnerId"), required: false, type: .string) - ] - /// The device index of the network interface attachment on the instance. - public let deviceIndex: Int32? - /// The attachment state. - public let status: AttachmentStatus? - /// The ID of the instance. - public let instanceId: String? - /// The timestamp indicating when the attachment initiated. - public let attachTime: TimeStamp? - /// Indicates whether the network interface is deleted when the instance is terminated. - public let deleteOnTermination: Bool? - /// The ID of the network interface attachment. - public let attachmentId: String? - /// The AWS account ID of the owner of the instance. - public let instanceOwnerId: String? - - public init(deviceIndex: Int32? = nil, status: AttachmentStatus? = nil, instanceId: String? = nil, attachTime: TimeStamp? = nil, deleteOnTermination: Bool? = nil, attachmentId: String? = nil, instanceOwnerId: String? = nil) { - self.deviceIndex = deviceIndex - self.status = status - self.instanceId = instanceId - self.attachTime = attachTime - self.deleteOnTermination = deleteOnTermination - self.attachmentId = attachmentId - self.instanceOwnerId = instanceOwnerId - } - - private enum CodingKeys: String, CodingKey { - case deviceIndex = "deviceIndex" - case status = "status" - case instanceId = "instanceId" - case attachTime = "attachTime" - case deleteOnTermination = "deleteOnTermination" - case attachmentId = "attachmentId" - case instanceOwnerId = "instanceOwnerId" - } - } - - public struct DescribePrefixListsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "PrefixLists", location: .body(locationName: "prefixListSet"), required: false, type: .structure) + public struct LaunchTemplatesMonitoring: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Enabled", location: .body(locationName: "enabled"), required: false, type: .boolean) ] - /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. - public let nextToken: String? - /// All available prefix lists. - public let prefixLists: PrefixListSet? + /// Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled. + public let enabled: Bool? - public init(nextToken: String? = nil, prefixLists: PrefixListSet? = nil) { - self.nextToken = nextToken - self.prefixLists = prefixLists + public init(enabled: Bool? = nil) { + self.enabled = enabled } private enum CodingKeys: String, CodingKey { - case nextToken = "nextToken" - case prefixLists = "prefixListSet" + case enabled = "enabled" } } public struct ReplaceRouteTableAssociationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "RouteTableId", location: .body(locationName: "routeTableId"), required: true, type: .string), AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: true, type: .string) @@ -11010,7 +13274,7 @@ extension Ec2 { } public struct AccountAttributeNameStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributeName", required: false, type: .list) ] public let attributeName: [AccountAttributeName]? @@ -11043,8 +13307,29 @@ extension Ec2 { public var description: String { return self.rawValue } } + public struct DescribePrefixListsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "PrefixLists", location: .body(locationName: "prefixListSet"), required: false, type: .structure) + ] + /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. + public let nextToken: String? + /// All available prefix lists. + public let prefixLists: PrefixListSet? + + public init(nextToken: String? = nil, prefixLists: PrefixListSet? = nil) { + self.nextToken = nextToken + self.prefixLists = prefixLists + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case prefixLists = "prefixListSet" + } + } + public struct ScheduledInstancesBlockDeviceMappingSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMapping", required: false, type: .list) ] public let blockDeviceMapping: [ScheduledInstancesBlockDeviceMapping]? @@ -11059,7 +13344,7 @@ extension Ec2 { } public struct SecurityGroupReferences: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [SecurityGroupReference]? @@ -11073,8 +13358,29 @@ extension Ec2 { } } + public struct CreateVpcEndpointServiceConfigurationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceConfiguration", location: .body(locationName: "serviceConfiguration"), required: false, type: .structure), + AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string) + ] + /// Information about the service configuration. + public let serviceConfiguration: ServiceConfiguration? + /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. + public let clientToken: String? + + public init(serviceConfiguration: ServiceConfiguration? = nil, clientToken: String? = nil) { + self.serviceConfiguration = serviceConfiguration + self.clientToken = clientToken + } + + private enum CodingKeys: String, CodingKey { + case serviceConfiguration = "serviceConfiguration" + case clientToken = "clientToken" + } + } + public struct InstanceStatusSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Details", location: .body(locationName: "details"), required: false, type: .structure), AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum) ] @@ -11094,8 +13400,24 @@ extension Ec2 { } } + public struct DeleteFpgaImageResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// Is true if the request succeeds, and an error otherwise. + public let `return`: Bool? + + public init(return: Bool? = nil) { + self.`return` = `return` + } + + private enum CodingKeys: String, CodingKey { + case `return` = "return" + } + } + public struct UnsuccessfulItemError: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: true, type: .string), AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: true, type: .string) ] @@ -11116,7 +13438,7 @@ extension Ec2 { } public struct SnapshotIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .list) ] public let snapshotId: [String]? @@ -11131,7 +13453,7 @@ extension Ec2 { } public struct RestoreAddressToClassicResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: false, type: .string) ] @@ -11152,7 +13474,7 @@ extension Ec2 { } public struct CopyImageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImageId", location: .body(locationName: "imageId"), required: false, type: .string) ] /// The ID of the new AMI. @@ -11168,7 +13490,7 @@ extension Ec2 { } public struct DescribeSecurityGroupReferencesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroupReferenceSet", location: .body(locationName: "securityGroupReferenceSet"), required: false, type: .structure) ] /// Information about the VPCs with the referencing security groups. @@ -11184,7 +13506,7 @@ extension Ec2 { } public struct InstanceStateChangeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceStateChange]? @@ -11199,7 +13521,7 @@ extension Ec2 { } public struct LaunchPermission: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserId", location: .body(locationName: "userId"), required: false, type: .string), AWSShapeMember(label: "Group", location: .body(locationName: "group"), required: false, type: .enum) ] @@ -11225,7 +13547,7 @@ extension Ec2 { } public struct ImportImageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LicenseType", location: .body(locationName: "licenseType"), required: false, type: .string), AWSShapeMember(label: "Platform", location: .body(locationName: "platform"), required: false, type: .string), AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .string), @@ -11291,7 +13613,7 @@ extension Ec2 { } public struct DescribeVpcPeeringConnectionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcPeeringConnections", location: .body(locationName: "vpcPeeringConnectionSet"), required: false, type: .structure) ] /// Information about the VPC peering connections. @@ -11307,7 +13629,7 @@ extension Ec2 { } public struct DiskImageDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Format", location: .body(locationName: "format"), required: true, type: .enum), AWSShapeMember(label: "ImportManifestUrl", location: .body(locationName: "importManifestUrl"), required: true, type: .string), AWSShapeMember(label: "Bytes", location: .body(locationName: "bytes"), required: true, type: .long) @@ -11319,99 +13641,36 @@ extension Ec2 { /// The size of the disk image, in GiB. public let bytes: Int64 - public init(format: DiskImageFormat, importManifestUrl: String, bytes: Int64) { - self.format = format - self.importManifestUrl = importManifestUrl - self.bytes = bytes - } - - private enum CodingKeys: String, CodingKey { - case format = "format" - case importManifestUrl = "importManifestUrl" - case bytes = "bytes" - } - } - - public struct PrefixList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PrefixListId", location: .body(locationName: "prefixListId"), required: false, type: .string), - AWSShapeMember(label: "PrefixListName", location: .body(locationName: "prefixListName"), required: false, type: .string), - AWSShapeMember(label: "Cidrs", location: .body(locationName: "cidrSet"), required: false, type: .structure) - ] - /// The ID of the prefix. - public let prefixListId: String? - /// The name of the prefix. - public let prefixListName: String? - /// The IP address range of the AWS service. - public let cidrs: ValueStringList? - - public init(prefixListId: String? = nil, prefixListName: String? = nil, cidrs: ValueStringList? = nil) { - self.prefixListId = prefixListId - self.prefixListName = prefixListName - self.cidrs = cidrs - } - - private enum CodingKeys: String, CodingKey { - case prefixListId = "prefixListId" - case prefixListName = "prefixListName" - case cidrs = "cidrSet" - } - } - - public struct ModifyIdFormatRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Resource", required: true, type: .string), - AWSShapeMember(label: "UseLongIds", required: true, type: .boolean) - ] - /// The type of resource: instance | reservation | snapshot | volume - public let resource: String - /// Indicate whether the resource should use longer IDs (17-character IDs). - public let useLongIds: Bool - - public init(resource: String, useLongIds: Bool) { - self.resource = resource - self.useLongIds = useLongIds + public init(format: DiskImageFormat, importManifestUrl: String, bytes: Int64) { + self.format = format + self.importManifestUrl = importManifestUrl + self.bytes = bytes } private enum CodingKeys: String, CodingKey { - case resource = "Resource" - case useLongIds = "UseLongIds" + case format = "format" + case importManifestUrl = "importManifestUrl" + case bytes = "bytes" } } - public struct DescribeTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + public struct SpotFleetTagSpecificationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// One or more filters. key - The tag key. resource-id - The resource ID. resource-type - The resource type (customer-gateway | dhcp-options | image | instance | internet-gateway | network-acl | network-interface | reserved-instances | route-table | security-group | snapshot | spot-instances-request | subnet | volume | vpc | vpn-connection | vpn-gateway). value - The tag value. - public let filters: FilterList? - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// The token to retrieve the next page of results. - public let nextToken: String? - /// The maximum number of results to return in a single call. This value can be between 5 and 1000. To retrieve the remaining results, make another call with the returned NextToken value. - public let maxResults: Int32? + public let item: [SpotFleetTagSpecification]? - public init(filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { - self.filters = filters - self.dryRun = dryRun - self.nextToken = nextToken - self.maxResults = maxResults + public init(item: [SpotFleetTagSpecification]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case filters = "Filter" - case dryRun = "dryRun" - case nextToken = "nextToken" - case maxResults = "maxResults" + case item = "item" } } public struct BundleTask: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", location: .body(locationName: "startTime"), required: false, type: .timestamp), AWSShapeMember(label: "BundleTaskError", location: .body(locationName: "error"), required: false, type: .structure), AWSShapeMember(label: "Progress", location: .body(locationName: "progress"), required: false, type: .string), @@ -11461,6 +13720,92 @@ extension Ec2 { } } + public struct DescribeTagsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + /// One or more filters. key - The tag key. resource-id - The resource ID. resource-type - The resource type (customer-gateway | dhcp-options | image | instance | internet-gateway | network-acl | network-interface | reserved-instances | route-table | security-group | snapshot | spot-instances-request | subnet | volume | vpc | vpn-connection | vpn-gateway). value - The tag value. + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The token to retrieve the next page of results. + public let nextToken: String? + /// The maximum number of results to return in a single call. This value can be between 5 and 1000. To retrieve the remaining results, make another call with the returned NextToken value. + public let maxResults: Int32? + + public init(filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.filters = filters + self.dryRun = dryRun + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filter" + case dryRun = "dryRun" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public enum FpgaImageAttributeName: String, CustomStringConvertible, Codable { + case description = "description" + case name = "name" + case loadpermission = "loadPermission" + case productcodes = "productCodes" + public var description: String { return self.rawValue } + } + + public struct ModifyIdFormatRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Resource", required: true, type: .string), + AWSShapeMember(label: "UseLongIds", required: true, type: .boolean) + ] + /// The type of resource: instance | reservation | snapshot | volume + public let resource: String + /// Indicate whether the resource should use longer IDs (17-character IDs). + public let useLongIds: Bool + + public init(resource: String, useLongIds: Bool) { + self.resource = resource + self.useLongIds = useLongIds + } + + private enum CodingKeys: String, CodingKey { + case resource = "Resource" + case useLongIds = "UseLongIds" + } + } + + public struct PrefixList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PrefixListId", location: .body(locationName: "prefixListId"), required: false, type: .string), + AWSShapeMember(label: "PrefixListName", location: .body(locationName: "prefixListName"), required: false, type: .string), + AWSShapeMember(label: "Cidrs", location: .body(locationName: "cidrSet"), required: false, type: .structure) + ] + /// The ID of the prefix. + public let prefixListId: String? + /// The name of the prefix. + public let prefixListName: String? + /// The IP address range of the AWS service. + public let cidrs: ValueStringList? + + public init(prefixListId: String? = nil, prefixListName: String? = nil, cidrs: ValueStringList? = nil) { + self.prefixListId = prefixListId + self.prefixListName = prefixListName + self.cidrs = cidrs + } + + private enum CodingKeys: String, CodingKey { + case prefixListId = "prefixListId" + case prefixListName = "prefixListName" + case cidrs = "cidrSet" + } + } + public enum SubnetCidrBlockStateCode: String, CustomStringConvertible, Codable { case associating = "associating" case associated = "associated" @@ -11471,8 +13816,29 @@ extension Ec2 { public var description: String { return self.rawValue } } + public struct ModifyInstanceCreditSpecificationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SuccessfulInstanceCreditSpecifications", location: .body(locationName: "successfulInstanceCreditSpecificationSet"), required: false, type: .structure), + AWSShapeMember(label: "UnsuccessfulInstanceCreditSpecifications", location: .body(locationName: "unsuccessfulInstanceCreditSpecificationSet"), required: false, type: .structure) + ] + /// Information about the instances whose credit option for CPU usage was successfully modified. + public let successfulInstanceCreditSpecifications: SuccessfulInstanceCreditSpecificationSet? + /// Information about the instances whose credit option for CPU usage was not modified. + public let unsuccessfulInstanceCreditSpecifications: UnsuccessfulInstanceCreditSpecificationSet? + + public init(successfulInstanceCreditSpecifications: SuccessfulInstanceCreditSpecificationSet? = nil, unsuccessfulInstanceCreditSpecifications: UnsuccessfulInstanceCreditSpecificationSet? = nil) { + self.successfulInstanceCreditSpecifications = successfulInstanceCreditSpecifications + self.unsuccessfulInstanceCreditSpecifications = unsuccessfulInstanceCreditSpecifications + } + + private enum CodingKeys: String, CodingKey { + case successfulInstanceCreditSpecifications = "successfulInstanceCreditSpecificationSet" + case unsuccessfulInstanceCreditSpecifications = "unsuccessfulInstanceCreditSpecificationSet" + } + } + public struct DetachNetworkInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "AttachmentId", location: .body(locationName: "attachmentId"), required: true, type: .string), AWSShapeMember(label: "Force", location: .body(locationName: "force"), required: false, type: .boolean) @@ -11498,7 +13864,7 @@ extension Ec2 { } public struct DescribeRegionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Regions", location: .body(locationName: "regionInfo"), required: false, type: .structure) ] /// Information about one or more regions. @@ -11513,8 +13879,23 @@ extension Ec2 { } } + public struct ZoneNameStringList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ZoneName", required: false, type: .list) + ] + public let zoneName: [String]? + + public init(zoneName: [String]? = nil) { + self.zoneName = zoneName + } + + private enum CodingKeys: String, CodingKey { + case zoneName = "ZoneName" + } + } + public struct GetConsoleOutputRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -11535,7 +13916,7 @@ extension Ec2 { } public struct CreateVolumePermissionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [CreateVolumePermission]? @@ -11549,23 +13930,8 @@ extension Ec2 { } } - public struct ZoneNameStringList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ZoneName", required: false, type: .list) - ] - public let zoneName: [String]? - - public init(zoneName: [String]? = nil) { - self.zoneName = zoneName - } - - private enum CodingKeys: String, CodingKey { - case zoneName = "ZoneName" - } - } - public struct PlacementGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [PlacementGroup]? @@ -11580,14 +13946,14 @@ extension Ec2 { } public struct CreateVpnConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", location: .body(locationName: "options"), required: false, type: .structure), AWSShapeMember(label: "CustomerGatewayId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Type", required: true, type: .string), AWSShapeMember(label: "VpnGatewayId", required: true, type: .string) ] - /// Indicates whether the VPN connection requires static routes. If you are creating a VPN connection for a device that does not support BGP, you must specify true. Default: false + /// The options for the VPN connection. public let options: VpnConnectionOptionsSpecification? /// The ID of the customer gateway. public let customerGatewayId: String @@ -11616,7 +13982,7 @@ extension Ec2 { } public struct DescribeSpotPriceHistoryResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "SpotPriceHistory", location: .body(locationName: "spotPriceHistorySet"), required: false, type: .structure) ] @@ -11637,7 +14003,7 @@ extension Ec2 { } public struct CreateSecurityGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupId", location: .body(locationName: "groupId"), required: false, type: .string) ] /// The ID of the security group. @@ -11653,7 +14019,7 @@ extension Ec2 { } public struct InstanceNetworkInterfaceSpecificationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceNetworkInterfaceSpecification]? @@ -11667,8 +14033,44 @@ extension Ec2 { } } + public struct LaunchTemplateSpotMarketOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxPrice", location: .body(locationName: "maxPrice"), required: false, type: .string), + AWSShapeMember(label: "BlockDurationMinutes", location: .body(locationName: "blockDurationMinutes"), required: false, type: .integer), + AWSShapeMember(label: "ValidUntil", location: .body(locationName: "validUntil"), required: false, type: .timestamp), + AWSShapeMember(label: "InstanceInterruptionBehavior", location: .body(locationName: "instanceInterruptionBehavior"), required: false, type: .enum), + AWSShapeMember(label: "SpotInstanceType", location: .body(locationName: "spotInstanceType"), required: false, type: .enum) + ] + /// The maximum hourly price you're willing to pay for the Spot Instances. + public let maxPrice: String? + /// The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). + public let blockDurationMinutes: Int32? + /// The end date of the request. For a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached. + public let validUntil: TimeStamp? + /// The behavior when a Spot Instance is interrupted. + public let instanceInterruptionBehavior: InstanceInterruptionBehavior? + /// The Spot Instance request type. + public let spotInstanceType: SpotInstanceType? + + public init(maxPrice: String? = nil, blockDurationMinutes: Int32? = nil, validUntil: TimeStamp? = nil, instanceInterruptionBehavior: InstanceInterruptionBehavior? = nil, spotInstanceType: SpotInstanceType? = nil) { + self.maxPrice = maxPrice + self.blockDurationMinutes = blockDurationMinutes + self.validUntil = validUntil + self.instanceInterruptionBehavior = instanceInterruptionBehavior + self.spotInstanceType = spotInstanceType + } + + private enum CodingKeys: String, CodingKey { + case maxPrice = "maxPrice" + case blockDurationMinutes = "blockDurationMinutes" + case validUntil = "validUntil" + case instanceInterruptionBehavior = "instanceInterruptionBehavior" + case spotInstanceType = "spotInstanceType" + } + } + public struct CancelSpotFleetRequestsSuccessSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [CancelSpotFleetRequestsSuccessItem]? @@ -11688,29 +14090,8 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct CreateNatGatewayResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), - AWSShapeMember(label: "NatGateway", location: .body(locationName: "natGateway"), required: false, type: .structure) - ] - /// Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request. - public let clientToken: String? - /// Information about the NAT gateway. - public let natGateway: NatGateway? - - public init(clientToken: String? = nil, natGateway: NatGateway? = nil) { - self.clientToken = clientToken - self.natGateway = natGateway - } - - private enum CodingKeys: String, CodingKey { - case clientToken = "clientToken" - case natGateway = "natGateway" - } - } - public struct InstanceStatusDetailsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceStatusDetails]? @@ -11724,18 +14105,80 @@ extension Ec2 { } } - public struct SecurityGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct ServiceConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZones", location: .body(locationName: "availabilityZoneSet"), required: false, type: .structure), + AWSShapeMember(label: "NetworkLoadBalancerArns", location: .body(locationName: "networkLoadBalancerArnSet"), required: false, type: .structure), + AWSShapeMember(label: "ServiceName", location: .body(locationName: "serviceName"), required: false, type: .string), + AWSShapeMember(label: "AcceptanceRequired", location: .body(locationName: "acceptanceRequired"), required: false, type: .boolean), + AWSShapeMember(label: "ServiceId", location: .body(locationName: "serviceId"), required: false, type: .string), + AWSShapeMember(label: "PrivateDnsName", location: .body(locationName: "privateDnsName"), required: false, type: .string), + AWSShapeMember(label: "ServiceType", location: .body(locationName: "serviceType"), required: false, type: .structure), + AWSShapeMember(label: "ServiceState", location: .body(locationName: "serviceState"), required: false, type: .enum), + AWSShapeMember(label: "BaseEndpointDnsNames", location: .body(locationName: "baseEndpointDnsNameSet"), required: false, type: .structure) + ] + /// In the Availability Zones in which the service is available. + public let availabilityZones: ValueStringList? + /// The Amazon Resource Names (ARNs) of the Network Load Balancers for the service. + public let networkLoadBalancerArns: ValueStringList? + /// The name of the service. + public let serviceName: String? + /// Indicates whether requests from other AWS accounts to create an endpoint to the service must first be accepted. + public let acceptanceRequired: Bool? + /// The ID of the service. + public let serviceId: String? + /// The private DNS name for the service. + public let privateDnsName: String? + /// The type of service. + public let serviceType: ServiceTypeDetailSet? + /// The service state. + public let serviceState: ServiceState? + /// The DNS names for the service. + public let baseEndpointDnsNames: ValueStringList? + + public init(availabilityZones: ValueStringList? = nil, networkLoadBalancerArns: ValueStringList? = nil, serviceName: String? = nil, acceptanceRequired: Bool? = nil, serviceId: String? = nil, privateDnsName: String? = nil, serviceType: ServiceTypeDetailSet? = nil, serviceState: ServiceState? = nil, baseEndpointDnsNames: ValueStringList? = nil) { + self.availabilityZones = availabilityZones + self.networkLoadBalancerArns = networkLoadBalancerArns + self.serviceName = serviceName + self.acceptanceRequired = acceptanceRequired + self.serviceId = serviceId + self.privateDnsName = privateDnsName + self.serviceType = serviceType + self.serviceState = serviceState + self.baseEndpointDnsNames = baseEndpointDnsNames + } + + private enum CodingKeys: String, CodingKey { + case availabilityZones = "availabilityZoneSet" + case networkLoadBalancerArns = "networkLoadBalancerArnSet" + case serviceName = "serviceName" + case acceptanceRequired = "acceptanceRequired" + case serviceId = "serviceId" + case privateDnsName = "privateDnsName" + case serviceType = "serviceType" + case serviceState = "serviceState" + case baseEndpointDnsNames = "baseEndpointDnsNameSet" + } + } + + public struct CreateNatGatewayResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), + AWSShapeMember(label: "NatGateway", location: .body(locationName: "natGateway"), required: false, type: .structure) ] - public let item: [SecurityGroup]? + /// Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request. + public let clientToken: String? + /// Information about the NAT gateway. + public let natGateway: NatGateway? - public init(item: [SecurityGroup]? = nil) { - self.item = item + public init(clientToken: String? = nil, natGateway: NatGateway? = nil) { + self.clientToken = clientToken + self.natGateway = natGateway } private enum CodingKeys: String, CodingKey { - case item = "item" + case clientToken = "clientToken" + case natGateway = "natGateway" } } @@ -11748,38 +14191,28 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct SpotPlacement: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AvailabilityZone", location: .body(locationName: "availabilityZone"), required: false, type: .string), - AWSShapeMember(label: "Tenancy", location: .body(locationName: "tenancy"), required: false, type: .enum), - AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: false, type: .string) + public struct SecurityGroupList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The Availability Zone. [Spot fleet only] To specify multiple Availability Zones, separate them using commas; for example, "us-west-2a, us-west-2b". - public let availabilityZone: String? - /// The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for Spot instances. - public let tenancy: Tenancy? - /// The name of the placement group (for cluster instances). - public let groupName: String? + public let item: [SecurityGroup]? - public init(availabilityZone: String? = nil, tenancy: Tenancy? = nil, groupName: String? = nil) { - self.availabilityZone = availabilityZone - self.tenancy = tenancy - self.groupName = groupName + public init(item: [SecurityGroup]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case availabilityZone = "availabilityZone" - case tenancy = "tenancy" - case groupName = "groupName" + case item = "item" } } public struct Instance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), AWSShapeMember(label: "RootDeviceName", location: .body(locationName: "rootDeviceName"), required: false, type: .string), AWSShapeMember(label: "EbsOptimized", location: .body(locationName: "ebsOptimized"), required: false, type: .boolean), AWSShapeMember(label: "SourceDestCheck", location: .body(locationName: "sourceDestCheck"), required: false, type: .boolean), + AWSShapeMember(label: "ElasticGpuAssociations", location: .body(locationName: "elasticGpuAssociationSet"), required: false, type: .structure), AWSShapeMember(label: "KernelId", location: .body(locationName: "kernelId"), required: false, type: .string), AWSShapeMember(label: "PrivateDnsName", location: .body(locationName: "privateDnsName"), required: false, type: .string), AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .enum), @@ -11817,15 +14250,17 @@ extension Ec2 { ] /// The idempotency token you provided when you launched the instance, if applicable. public let clientToken: String? - /// The root device name (for example, /dev/sda1 or /dev/xvda). + /// The device name of the root device volume (for example, /dev/sda1). public let rootDeviceName: String? - /// Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. + /// Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. public let ebsOptimized: Bool? - /// Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide. + /// Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide. public let sourceDestCheck: Bool? + /// The Elastic GPU associated with the instance. + public let elasticGpuAssociations: ElasticGpuAssociationList? /// The kernel associated with this instance, if applicable. public let kernelId: String? - /// (IPv4 only) The private DNS hostname name assigned to the instance. This DNS hostname can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state. [EC2-VPC] The Amazon-provided DNS server will resolve Amazon-provided private DNS hostnames if you've enabled DNS resolution and DNS hostnames in your VPC. If you are not using the Amazon-provided DNS server in your VPC, your custom domain name servers must resolve the hostname as appropriate. + /// (IPv4 only) The private DNS hostname name assigned to the instance. This DNS hostname can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state. [EC2-VPC] The Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if you've enabled DNS resolution and DNS hostnames in your VPC. If you are not using the Amazon-provided DNS server in your VPC, your custom domain name servers must resolve the hostname as appropriate. public let privateDnsName: String? /// The instance type. public let instanceType: InstanceType? @@ -11847,7 +14282,7 @@ extension Ec2 { public let rootDeviceType: DeviceType? /// The RAM disk associated with this instance, if applicable. public let ramdiskId: String? - /// Indicates whether this is a Spot instance or a Scheduled Instance. + /// Indicates whether this is a Spot Instance or a Scheduled Instance. public let instanceLifecycle: InstanceLifecycleType? /// Any block device mapping entries for the instance. public let blockDeviceMappings: InstanceBlockDeviceMappingList? @@ -11857,7 +14292,7 @@ extension Ec2 { public let platform: PlatformValues? /// Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled. public let sriovNetSupport: String? - /// If the request is a Spot instance request, the ID of the request. + /// If the request is a Spot Instance request, the ID of the request. public let spotInstanceRequestId: String? /// Any tags assigned to the instance. public let tags: TagList? @@ -11892,11 +14327,12 @@ extension Ec2 { /// The virtualization type of the instance. public let virtualizationType: VirtualizationType? - public init(clientToken: String? = nil, rootDeviceName: String? = nil, ebsOptimized: Bool? = nil, sourceDestCheck: Bool? = nil, kernelId: String? = nil, privateDnsName: String? = nil, instanceType: InstanceType? = nil, privateIpAddress: String? = nil, productCodes: ProductCodeList? = nil, keyName: String? = nil, instanceId: String? = nil, iamInstanceProfile: IamInstanceProfile? = nil, publicDnsName: String? = nil, vpcId: String? = nil, rootDeviceType: DeviceType? = nil, ramdiskId: String? = nil, instanceLifecycle: InstanceLifecycleType? = nil, blockDeviceMappings: InstanceBlockDeviceMappingList? = nil, subnetId: String? = nil, platform: PlatformValues? = nil, sriovNetSupport: String? = nil, spotInstanceRequestId: String? = nil, tags: TagList? = nil, launchTime: TimeStamp? = nil, state: InstanceState? = nil, publicIpAddress: String? = nil, monitoring: Monitoring? = nil, stateReason: StateReason? = nil, stateTransitionReason: String? = nil, securityGroups: GroupIdentifierList? = nil, hypervisor: HypervisorType? = nil, architecture: ArchitectureValues? = nil, imageId: String? = nil, enaSupport: Bool? = nil, networkInterfaces: InstanceNetworkInterfaceList? = nil, amiLaunchIndex: Int32? = nil, placement: Placement? = nil, virtualizationType: VirtualizationType? = nil) { + public init(clientToken: String? = nil, rootDeviceName: String? = nil, ebsOptimized: Bool? = nil, sourceDestCheck: Bool? = nil, elasticGpuAssociations: ElasticGpuAssociationList? = nil, kernelId: String? = nil, privateDnsName: String? = nil, instanceType: InstanceType? = nil, privateIpAddress: String? = nil, productCodes: ProductCodeList? = nil, keyName: String? = nil, instanceId: String? = nil, iamInstanceProfile: IamInstanceProfile? = nil, publicDnsName: String? = nil, vpcId: String? = nil, rootDeviceType: DeviceType? = nil, ramdiskId: String? = nil, instanceLifecycle: InstanceLifecycleType? = nil, blockDeviceMappings: InstanceBlockDeviceMappingList? = nil, subnetId: String? = nil, platform: PlatformValues? = nil, sriovNetSupport: String? = nil, spotInstanceRequestId: String? = nil, tags: TagList? = nil, launchTime: TimeStamp? = nil, state: InstanceState? = nil, publicIpAddress: String? = nil, monitoring: Monitoring? = nil, stateReason: StateReason? = nil, stateTransitionReason: String? = nil, securityGroups: GroupIdentifierList? = nil, hypervisor: HypervisorType? = nil, architecture: ArchitectureValues? = nil, imageId: String? = nil, enaSupport: Bool? = nil, networkInterfaces: InstanceNetworkInterfaceList? = nil, amiLaunchIndex: Int32? = nil, placement: Placement? = nil, virtualizationType: VirtualizationType? = nil) { self.clientToken = clientToken self.rootDeviceName = rootDeviceName self.ebsOptimized = ebsOptimized self.sourceDestCheck = sourceDestCheck + self.elasticGpuAssociations = elasticGpuAssociations self.kernelId = kernelId self.privateDnsName = privateDnsName self.instanceType = instanceType @@ -11938,6 +14374,7 @@ extension Ec2 { case rootDeviceName = "rootDeviceName" case ebsOptimized = "ebsOptimized" case sourceDestCheck = "sourceDestCheck" + case elasticGpuAssociations = "elasticGpuAssociationSet" case kernelId = "kernelId" case privateDnsName = "privateDnsName" case instanceType = "instanceType" @@ -11975,6 +14412,32 @@ extension Ec2 { } } + public struct SpotPlacement: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZone", location: .body(locationName: "availabilityZone"), required: false, type: .string), + AWSShapeMember(label: "Tenancy", location: .body(locationName: "tenancy"), required: false, type: .enum), + AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: false, type: .string) + ] + /// The Availability Zone. [Spot Fleet only] To specify multiple Availability Zones, separate them using commas; for example, "us-west-2a, us-west-2b". + public let availabilityZone: String? + /// The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for Spot Instances. + public let tenancy: Tenancy? + /// The name of the placement group. + public let groupName: String? + + public init(availabilityZone: String? = nil, tenancy: Tenancy? = nil, groupName: String? = nil) { + self.availabilityZone = availabilityZone + self.tenancy = tenancy + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case availabilityZone = "availabilityZone" + case tenancy = "tenancy" + case groupName = "groupName" + } + } + public enum ReportStatusType: String, CustomStringConvertible, Codable { case ok = "ok" case impaired = "impaired" @@ -11982,13 +14445,13 @@ extension Ec2 { } public struct AttachVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Device", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "VolumeId", required: true, type: .string) ] - /// The device name to expose to the instance (for example, /dev/sdh or xvdh). + /// The device name (for example, /dev/sdh or xvdh). public let device: String /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -12013,7 +14476,7 @@ extension Ec2 { } public struct DisableVpcClassicLinkResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] /// Returns true if the request succeeds; otherwise, it returns an error. @@ -12035,13 +14498,13 @@ extension Ec2 { } public struct AcceptVpcPeeringConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VpcPeeringConnectionId", location: .body(locationName: "vpcPeeringConnectionId"), required: false, type: .string) ] /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// The ID of the VPC peering connection. + /// The ID of the VPC peering connection. You must specify this parameter in the request. public let vpcPeeringConnectionId: String? public init(dryRun: Bool? = nil, vpcPeeringConnectionId: String? = nil) { @@ -12056,7 +14519,7 @@ extension Ec2 { } public struct DescribeFlowLogsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filter", required: false, type: .structure), AWSShapeMember(label: "FlowLogIds", location: .body(locationName: "FlowLogId"), required: false, type: .structure), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -12087,7 +14550,7 @@ extension Ec2 { } public struct HostInstance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .string), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string) ] @@ -12107,20 +14570,27 @@ extension Ec2 { } } - public enum NatGatewayState: String, CustomStringConvertible, Codable { - case pending = "pending" - case failed = "failed" - case available = "available" - case deleting = "deleting" - case deleted = "deleted" - public var description: String { return self.rawValue } + public struct UpdateSecurityGroupRuleDescriptionsEgressResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// Returns true if the request succeeds; otherwise, returns an error. + public let `return`: Bool? + + public init(return: Bool? = nil) { + self.`return` = `return` + } + + private enum CodingKeys: String, CodingKey { + case `return` = "return" + } } public struct DescribeSpotDatafeedSubscriptionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SpotDatafeedSubscription", location: .body(locationName: "spotDatafeedSubscription"), required: false, type: .structure) ] - /// The Spot instance data feed subscription. + /// The Spot Instance data feed subscription. public let spotDatafeedSubscription: SpotDatafeedSubscription? public init(spotDatafeedSubscription: SpotDatafeedSubscription? = nil) { @@ -12132,8 +14602,17 @@ extension Ec2 { } } + public enum NatGatewayState: String, CustomStringConvertible, Codable { + case pending = "pending" + case failed = "failed" + case available = "available" + case deleting = "deleting" + case deleted = "deleted" + public var description: String { return self.rawValue } + } + public struct SpotFleetMonitoring: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Enabled", location: .body(locationName: "enabled"), required: false, type: .boolean) ] /// Enables monitoring for the instance. Default: false @@ -12149,7 +14628,7 @@ extension Ec2 { } public struct Storage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3", required: false, type: .structure) ] /// An Amazon S3 storage location. @@ -12164,8 +14643,39 @@ extension Ec2 { } } + public struct LaunchTemplateBlockDeviceMapping: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NoDevice", location: .body(locationName: "noDevice"), required: false, type: .string), + AWSShapeMember(label: "VirtualName", location: .body(locationName: "virtualName"), required: false, type: .string), + AWSShapeMember(label: "DeviceName", location: .body(locationName: "deviceName"), required: false, type: .string), + AWSShapeMember(label: "Ebs", location: .body(locationName: "ebs"), required: false, type: .structure) + ] + /// Suppresses the specified device included in the block device mapping of the AMI. + public let noDevice: String? + /// The virtual device name (ephemeralN). + public let virtualName: String? + /// The device name. + public let deviceName: String? + /// Information about the block device for an EBS volume. + public let ebs: LaunchTemplateEbsBlockDevice? + + public init(noDevice: String? = nil, virtualName: String? = nil, deviceName: String? = nil, ebs: LaunchTemplateEbsBlockDevice? = nil) { + self.noDevice = noDevice + self.virtualName = virtualName + self.deviceName = deviceName + self.ebs = ebs + } + + private enum CodingKeys: String, CodingKey { + case noDevice = "noDevice" + case virtualName = "virtualName" + case deviceName = "deviceName" + case ebs = "ebs" + } + } + public struct BlockDeviceMappingRequestList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMapping", required: false, type: .list) ] public let blockDeviceMapping: [BlockDeviceMapping]? @@ -12179,14 +14689,23 @@ extension Ec2 { } } - public enum VirtualizationType: String, CustomStringConvertible, Codable { - case hvm = "hvm" - case paravirtual = "paravirtual" - public var description: String { return self.rawValue } + public struct GroupIdentifierList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [GroupIdentifier]? + + public init(item: [GroupIdentifier]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } } public struct ImportInstanceLaunchSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrivateIpAddress", location: .body(locationName: "privateIpAddress"), required: false, type: .string), AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "UserData", location: .body(locationName: "userData"), required: false, type: .structure), @@ -12251,13 +14770,19 @@ extension Ec2 { } } - public struct GroupIdentifierList: AWSShape { - public static var members: [AWSShapeMember] = [ + public enum VirtualizationType: String, CustomStringConvertible, Codable { + case hvm = "hvm" + case paravirtual = "paravirtual" + public var description: String { return self.rawValue } + } + + public struct ReservedInstancesList: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] - public let item: [GroupIdentifier]? + public let item: [ReservedInstances]? - public init(item: [GroupIdentifier]? = nil) { + public init(item: [ReservedInstances]? = nil) { self.item = item } @@ -12266,28 +14791,39 @@ extension Ec2 { } } - public struct ReservedInstancesList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct SpotInstanceStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string), + AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .string), + AWSShapeMember(label: "UpdateTime", location: .body(locationName: "updateTime"), required: false, type: .timestamp) ] - public let item: [ReservedInstances]? + /// The description for the status code. + public let message: String? + /// The status code. For a list of status codes, see Spot Status Codes in the Amazon Elastic Compute Cloud User Guide. + public let code: String? + /// The date and time of the most recent status update, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). + public let updateTime: TimeStamp? - public init(item: [ReservedInstances]? = nil) { - self.item = item + public init(message: String? = nil, code: String? = nil, updateTime: TimeStamp? = nil) { + self.message = message + self.code = code + self.updateTime = updateTime } private enum CodingKeys: String, CodingKey { - case item = "item" + case message = "message" + case code = "code" + case updateTime = "updateTime" } } - public struct IpPermissionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct Ipv6RangeList: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] - public let item: [IpPermission]? + public let item: [Ipv6Range]? - public init(item: [IpPermission]? = nil) { + public init(item: [Ipv6Range]? = nil) { self.item = item } @@ -12296,13 +14832,13 @@ extension Ec2 { } } - public struct Ipv6RangeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct IpPermissionList: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] - public let item: [Ipv6Range]? + public let item: [IpPermission]? - public init(item: [Ipv6Range]? = nil) { + public init(item: [IpPermission]? = nil) { self.item = item } @@ -12311,34 +14847,79 @@ extension Ec2 { } } - public struct SpotInstanceStatus: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string), - AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .string), - AWSShapeMember(label: "UpdateTime", location: .body(locationName: "updateTime"), required: false, type: .timestamp) + public struct LaunchTemplateInstanceNetworkInterfaceSpecificationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceIndex", required: false, type: .integer), + AWSShapeMember(label: "SubnetId", required: false, type: .string), + AWSShapeMember(label: "NetworkInterfaceId", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "PrivateIpAddress", required: false, type: .string), + AWSShapeMember(label: "SecondaryPrivateIpAddressCount", required: false, type: .integer), + AWSShapeMember(label: "PrivateIpAddresses", required: false, type: .structure), + AWSShapeMember(label: "Ipv6AddressCount", required: false, type: .integer), + AWSShapeMember(label: "Ipv6Addresses", required: false, type: .structure), + AWSShapeMember(label: "DeleteOnTermination", required: false, type: .boolean), + AWSShapeMember(label: "AssociatePublicIpAddress", required: false, type: .boolean), + AWSShapeMember(label: "Groups", location: .body(locationName: "SecurityGroupId"), required: false, type: .structure) ] - /// The description for the status code. - public let message: String? - /// The status code. For a list of status codes, see Spot Bid Status Codes in the Amazon Elastic Compute Cloud User Guide. - public let code: String? - /// The date and time of the most recent status update, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). - public let updateTime: TimeStamp? + /// The device index for the network interface attachment. + public let deviceIndex: Int32? + /// The ID of the subnet for the network interface. + public let subnetId: String? + /// The ID of the network interface. + public let networkInterfaceId: String? + /// A description for the network interface. + public let description: String? + /// The primary private IPv4 address of the network interface. + public let privateIpAddress: String? + /// The number of secondary private IPv4 addresses to assign to a network interface. + public let secondaryPrivateIpAddressCount: Int32? + /// One or more private IPv4 addresses. + public let privateIpAddresses: PrivateIpAddressSpecificationList? + /// The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses. + public let ipv6AddressCount: Int32? + /// One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses. + public let ipv6Addresses: InstanceIpv6AddressListRequest? + /// Indicates whether the network interface is deleted when the instance is terminated. + public let deleteOnTermination: Bool? + /// Associates a public IPv4 address with eth0 for a new network interface. + public let associatePublicIpAddress: Bool? + /// The IDs of one or more security groups. + public let groups: SecurityGroupIdStringList? - public init(message: String? = nil, code: String? = nil, updateTime: TimeStamp? = nil) { - self.message = message - self.code = code - self.updateTime = updateTime + public init(deviceIndex: Int32? = nil, subnetId: String? = nil, networkInterfaceId: String? = nil, description: String? = nil, privateIpAddress: String? = nil, secondaryPrivateIpAddressCount: Int32? = nil, privateIpAddresses: PrivateIpAddressSpecificationList? = nil, ipv6AddressCount: Int32? = nil, ipv6Addresses: InstanceIpv6AddressListRequest? = nil, deleteOnTermination: Bool? = nil, associatePublicIpAddress: Bool? = nil, groups: SecurityGroupIdStringList? = nil) { + self.deviceIndex = deviceIndex + self.subnetId = subnetId + self.networkInterfaceId = networkInterfaceId + self.description = description + self.privateIpAddress = privateIpAddress + self.secondaryPrivateIpAddressCount = secondaryPrivateIpAddressCount + self.privateIpAddresses = privateIpAddresses + self.ipv6AddressCount = ipv6AddressCount + self.ipv6Addresses = ipv6Addresses + self.deleteOnTermination = deleteOnTermination + self.associatePublicIpAddress = associatePublicIpAddress + self.groups = groups } private enum CodingKeys: String, CodingKey { - case message = "message" - case code = "code" - case updateTime = "updateTime" + case deviceIndex = "DeviceIndex" + case subnetId = "SubnetId" + case networkInterfaceId = "NetworkInterfaceId" + case description = "Description" + case privateIpAddress = "PrivateIpAddress" + case secondaryPrivateIpAddressCount = "SecondaryPrivateIpAddressCount" + case privateIpAddresses = "PrivateIpAddresses" + case ipv6AddressCount = "Ipv6AddressCount" + case ipv6Addresses = "Ipv6Addresses" + case deleteOnTermination = "DeleteOnTermination" + case associatePublicIpAddress = "AssociatePublicIpAddress" + case groups = "SecurityGroupId" } } public struct InstanceStatusEventList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceStatusEvent]? @@ -12353,7 +14934,7 @@ extension Ec2 { } public struct SecurityGroupStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroup", required: false, type: .list) ] public let securityGroup: [String]? @@ -12368,7 +14949,7 @@ extension Ec2 { } public struct InstanceIpv6Address: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ipv6Address", location: .body(locationName: "ipv6Address"), required: false, type: .string) ] /// The IPv6 address. @@ -12383,8 +14964,23 @@ extension Ec2 { } } + public struct LaunchTemplateBlockDeviceMappingRequestList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BlockDeviceMapping", required: false, type: .list) + ] + public let blockDeviceMapping: [LaunchTemplateBlockDeviceMappingRequest]? + + public init(blockDeviceMapping: [LaunchTemplateBlockDeviceMappingRequest]? = nil) { + self.blockDeviceMapping = blockDeviceMapping + } + + private enum CodingKeys: String, CodingKey { + case blockDeviceMapping = "BlockDeviceMapping" + } + } + public struct ImportSnapshotTaskList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ImportSnapshotTask]? @@ -12407,7 +15003,7 @@ extension Ec2 { } public struct StaleIpPermission: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrefixListIds", location: .body(locationName: "prefixListIds"), required: false, type: .structure), AWSShapeMember(label: "UserIdGroupPairs", location: .body(locationName: "groups"), required: false, type: .structure), AWSShapeMember(label: "IpRanges", location: .body(locationName: "ipRanges"), required: false, type: .structure), @@ -12448,7 +15044,7 @@ extension Ec2 { } public struct IamInstanceProfile: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) ] @@ -12469,23 +15065,28 @@ extension Ec2 { } public struct DescribeSecurityGroupsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "securityGroupInfo"), required: false, type: .structure) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "securityGroupInfo"), required: false, type: .structure), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] /// Information about one or more security groups. public let securityGroups: SecurityGroupList? + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? - public init(securityGroups: SecurityGroupList? = nil) { + public init(securityGroups: SecurityGroupList? = nil, nextToken: String? = nil) { self.securityGroups = securityGroups + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { case securityGroups = "securityGroupInfo" + case nextToken = "nextToken" } } public struct Purchase: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UpfrontPrice", location: .body(locationName: "upfrontPrice"), required: false, type: .string), AWSShapeMember(label: "HostIdSet", location: .body(locationName: "hostIdSet"), required: false, type: .structure), AWSShapeMember(label: "PaymentOption", location: .body(locationName: "paymentOption"), required: false, type: .enum), @@ -12524,46 +15125,102 @@ extension Ec2 { } private enum CodingKeys: String, CodingKey { - case upfrontPrice = "upfrontPrice" - case hostIdSet = "hostIdSet" - case paymentOption = "paymentOption" - case hourlyPrice = "hourlyPrice" - case currencyCode = "currencyCode" - case hostReservationId = "hostReservationId" - case duration = "duration" - case instanceFamily = "instanceFamily" + case upfrontPrice = "upfrontPrice" + case hostIdSet = "hostIdSet" + case paymentOption = "paymentOption" + case hourlyPrice = "hourlyPrice" + case currencyCode = "currencyCode" + case hostReservationId = "hostReservationId" + case duration = "duration" + case instanceFamily = "instanceFamily" + } + } + + public struct RequestSpotFleetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SpotFleetRequestConfig", location: .body(locationName: "spotFleetRequestConfig"), required: true, type: .structure), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// The configuration for the Spot Fleet request. + public let spotFleetRequestConfig: SpotFleetRequestConfigData + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(spotFleetRequestConfig: SpotFleetRequestConfigData, dryRun: Bool? = nil) { + self.spotFleetRequestConfig = spotFleetRequestConfig + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case spotFleetRequestConfig = "spotFleetRequestConfig" + case dryRun = "dryRun" + } + } + + public enum VpcState: String, CustomStringConvertible, Codable { + case pending = "pending" + case available = "available" + public var description: String { return self.rawValue } + } + + public struct DescribeNetworkInterfacesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "NetworkInterfaceIds", location: .body(locationName: "NetworkInterfaceId"), required: false, type: .structure), + AWSShapeMember(label: "Filters", location: .body(locationName: "filter"), required: false, type: .structure) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// One or more network interface IDs. Default: Describes all your network interfaces. + public let networkInterfaceIds: NetworkInterfaceIdList? + /// One or more filters. addresses.private-ip-address - The private IPv4 addresses associated with the network interface. addresses.primary - Whether the private IPv4 address is the primary IP address associated with the network interface. addresses.association.public-ip - The association ID returned when the network interface was associated with the Elastic IP address (IPv4). addresses.association.owner-id - The owner ID of the addresses associated with the network interface. association.association-id - The association ID returned when the network interface was associated with an IPv4 address. association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface. association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface. association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface. association.public-dns-name - The public DNS name for the network interface (IPv4). attachment.attachment-id - The ID of the interface attachment. attachment.attach.time - The time that the network interface was attached to an instance. attachment.delete-on-termination - Indicates whether the attachment is deleted when an instance is terminated. attachment.device-index - The device index to which the network interface is attached. attachment.instance-id - The ID of the instance to which the network interface is attached. attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached. attachment.nat-gateway-id - The ID of the NAT gateway to which the network interface is attached. attachment.status - The status of the attachment (attaching | attached | detaching | detached). availability-zone - The Availability Zone of the network interface. description - The description of the network interface. group-id - The ID of a security group associated with the network interface. group-name - The name of a security group associated with the network interface. ipv6-addresses.ipv6-address - An IPv6 address associated with the network interface. mac-address - The MAC address of the network interface. network-interface-id - The ID of the network interface. owner-id - The AWS account ID of the network interface owner. private-ip-address - The private IPv4 address or addresses of the network interface. private-dns-name - The private DNS name of the network interface (IPv4). requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on). requester-managed - Indicates whether the network interface is being managed by an AWS service (for example, AWS Management Console, Auto Scaling, and so on). source-desk-check - Indicates whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC. status - The status of the network interface. If the network interface is not attached to an instance, the status is available; if a network interface is attached to an instance the status is in-use. subnet-id - The ID of the subnet for the network interface. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-id - The ID of the VPC for the network interface. + public let filters: FilterList? + + public init(dryRun: Bool? = nil, networkInterfaceIds: NetworkInterfaceIdList? = nil, filters: FilterList? = nil) { + self.dryRun = dryRun + self.networkInterfaceIds = networkInterfaceIds + self.filters = filters + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "dryRun" + case networkInterfaceIds = "NetworkInterfaceId" + case filters = "filter" } } - public struct RequestSpotFleetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SpotFleetRequestConfig", location: .body(locationName: "spotFleetRequestConfig"), required: true, type: .structure), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + public struct InstanceCount: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "InstanceCount", location: .body(locationName: "instanceCount"), required: false, type: .integer) ] - /// The configuration for the Spot fleet request. - public let spotFleetRequestConfig: SpotFleetRequestConfigData - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? + /// The states of the listed Reserved Instances. + public let state: ListingState? + /// The number of listed Reserved Instances in the state specified by the state. + public let instanceCount: Int32? - public init(spotFleetRequestConfig: SpotFleetRequestConfigData, dryRun: Bool? = nil) { - self.spotFleetRequestConfig = spotFleetRequestConfig - self.dryRun = dryRun + public init(state: ListingState? = nil, instanceCount: Int32? = nil) { + self.state = state + self.instanceCount = instanceCount } private enum CodingKeys: String, CodingKey { - case spotFleetRequestConfig = "spotFleetRequestConfig" - case dryRun = "dryRun" + case state = "state" + case instanceCount = "instanceCount" } } - public enum VpcState: String, CustomStringConvertible, Codable { - case pending = "pending" - case available = "available" + public enum ServiceState: String, CustomStringConvertible, Codable { + case pending = "Pending" + case available = "Available" + case deleting = "Deleting" + case deleted = "Deleted" + case failed = "Failed" public var description: String { return self.rawValue } } public struct ReservedInstancesOffering: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecurringCharges", location: .body(locationName: "recurringCharges"), required: false, type: .structure), AWSShapeMember(label: "UsagePrice", location: .body(locationName: "usagePrice"), required: false, type: .float), AWSShapeMember(label: "InstanceTenancy", location: .body(locationName: "instanceTenancy"), required: false, type: .enum), @@ -12648,60 +15305,13 @@ extension Ec2 { } } - public struct InstanceCount: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), - AWSShapeMember(label: "InstanceCount", location: .body(locationName: "instanceCount"), required: false, type: .integer) - ] - /// The states of the listed Reserved Instances. - public let state: ListingState? - /// The number of listed Reserved Instances in the state specified by the state. - public let instanceCount: Int32? - - public init(state: ListingState? = nil, instanceCount: Int32? = nil) { - self.state = state - self.instanceCount = instanceCount - } - - private enum CodingKeys: String, CodingKey { - case state = "state" - case instanceCount = "instanceCount" - } - } - - public struct DescribeNetworkInterfacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "NetworkInterfaceIds", location: .body(locationName: "NetworkInterfaceId"), required: false, type: .structure), - AWSShapeMember(label: "Filters", location: .body(locationName: "filter"), required: false, type: .structure) - ] - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// One or more network interface IDs. Default: Describes all your network interfaces. - public let networkInterfaceIds: NetworkInterfaceIdList? - /// One or more filters. addresses.private-ip-address - The private IPv4 addresses associated with the network interface. addresses.primary - Whether the private IPv4 address is the primary IP address associated with the network interface. addresses.association.public-ip - The association ID returned when the network interface was associated with the Elastic IP address (IPv4). addresses.association.owner-id - The owner ID of the addresses associated with the network interface. association.association-id - The association ID returned when the network interface was associated with an IPv4 address. association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface. association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface. association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface. association.public-dns-name - The public DNS name for the network interface (IPv4). attachment.attachment-id - The ID of the interface attachment. attachment.attach.time - The time that the network interface was attached to an instance. attachment.delete-on-termination - Indicates whether the attachment is deleted when an instance is terminated. attachment.device-index - The device index to which the network interface is attached. attachment.instance-id - The ID of the instance to which the network interface is attached. attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached. attachment.nat-gateway-id - The ID of the NAT gateway to which the network interface is attached. attachment.status - The status of the attachment (attaching | attached | detaching | detached). availability-zone - The Availability Zone of the network interface. description - The description of the network interface. group-id - The ID of a security group associated with the network interface. group-name - The name of a security group associated with the network interface. ipv6-addresses.ipv6-address - An IPv6 address associated with the network interface. mac-address - The MAC address of the network interface. network-interface-id - The ID of the network interface. owner-id - The AWS account ID of the network interface owner. private-ip-address - The private IPv4 address or addresses of the network interface. private-dns-name - The private DNS name of the network interface (IPv4). requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on). requester-managed - Indicates whether the network interface is being managed by an AWS service (for example, AWS Management Console, Auto Scaling, and so on). source-desk-check - Indicates whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC. status - The status of the network interface. If the network interface is not attached to an instance, the status is available; if a network interface is attached to an instance the status is in-use. subnet-id - The ID of the subnet for the network interface. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. vpc-id - The ID of the VPC for the network interface. - public let filters: FilterList? - - public init(dryRun: Bool? = nil, networkInterfaceIds: NetworkInterfaceIdList? = nil, filters: FilterList? = nil) { - self.dryRun = dryRun - self.networkInterfaceIds = networkInterfaceIds - self.filters = filters - } - - private enum CodingKeys: String, CodingKey { - case dryRun = "dryRun" - case networkInterfaceIds = "NetworkInterfaceId" - case filters = "filter" - } - } - public enum GatewayType: String, CustomStringConvertible, Codable { case ipsec1 = "ipsec.1" public var description: String { return self.rawValue } } public struct CreateNetworkAclResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NetworkAcl", location: .body(locationName: "networkAcl"), required: false, type: .structure) ] /// Information about the network ACL. @@ -12717,13 +15327,13 @@ extension Ec2 { } public struct InstanceBlockDeviceMapping: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ebs", location: .body(locationName: "ebs"), required: false, type: .structure), AWSShapeMember(label: "DeviceName", location: .body(locationName: "deviceName"), required: false, type: .string) ] /// Parameters used to automatically set up EBS volumes when the instance is launched. public let ebs: EbsInstanceBlockDevice? - /// The device name exposed to the instance (for example, /dev/sdh or xvdh). + /// The device name (for example, /dev/sdh or xvdh). public let deviceName: String? public init(ebs: EbsInstanceBlockDevice? = nil, deviceName: String? = nil) { @@ -12738,7 +15348,7 @@ extension Ec2 { } public struct VolumeStatusAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .string), AWSShapeMember(label: "EventType", location: .body(locationName: "eventType"), required: false, type: .string), AWSShapeMember(label: "EventId", location: .body(locationName: "eventId"), required: false, type: .string), @@ -12769,7 +15379,7 @@ extension Ec2 { } public struct InstanceMonitoringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceMonitoring]? @@ -12784,7 +15394,7 @@ extension Ec2 { } public struct NetworkInterfaceList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [NetworkInterface]? @@ -12799,7 +15409,7 @@ extension Ec2 { } public struct CreateReservedInstancesListingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PriceSchedules", location: .body(locationName: "priceSchedules"), required: true, type: .structure), AWSShapeMember(label: "InstanceCount", location: .body(locationName: "instanceCount"), required: true, type: .integer), AWSShapeMember(label: "ReservedInstancesId", location: .body(locationName: "reservedInstancesId"), required: true, type: .string), @@ -12830,7 +15440,7 @@ extension Ec2 { } public struct GroupIds: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -12845,7 +15455,7 @@ extension Ec2 { } public struct DescribeRouteTablesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RouteTables", location: .body(locationName: "routeTableSet"), required: false, type: .structure) ] /// Information about one or more route tables. @@ -12861,7 +15471,7 @@ extension Ec2 { } public struct AssociateIamInstanceProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamInstanceProfileAssociation", location: .body(locationName: "iamInstanceProfileAssociation"), required: false, type: .structure) ] /// Information about the IAM instance profile association. @@ -12883,7 +15493,7 @@ extension Ec2 { } public struct DhcpOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DhcpOptionsId", location: .body(locationName: "dhcpOptionsId"), required: false, type: .string), AWSShapeMember(label: "DhcpConfigurations", location: .body(locationName: "dhcpConfigurationSet"), required: false, type: .structure), AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure) @@ -12909,7 +15519,7 @@ extension Ec2 { } public struct DescribeClassicLinkInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Instances", location: .body(locationName: "instancesSet"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] @@ -12930,7 +15540,7 @@ extension Ec2 { } public struct UserIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserId", required: false, type: .list) ] public let userId: [String]? @@ -12963,7 +15573,7 @@ extension Ec2 { } public struct CopyImageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KmsKeyId", location: .body(locationName: "kmsKeyId"), required: false, type: .string), AWSShapeMember(label: "ClientToken", required: false, type: .string), AWSShapeMember(label: "SourceRegion", required: true, type: .string), @@ -13013,8 +15623,90 @@ extension Ec2 { } } + public enum ServiceType: String, CustomStringConvertible, Codable { + case interface = "Interface" + case gateway = "Gateway" + public var description: String { return self.rawValue } + } + + public enum OperationType: String, CustomStringConvertible, Codable { + case add = "add" + case remove = "remove" + public var description: String { return self.rawValue } + } + + public enum ListingStatus: String, CustomStringConvertible, Codable { + case active = "active" + case pending = "pending" + case cancelled = "cancelled" + case closed = "closed" + public var description: String { return self.rawValue } + } + + public struct VpcAttachmentList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [VpcAttachment]? + + public init(item: [VpcAttachment]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct VpcEndpointConnectionSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [VpcEndpointConnection]? + + public init(item: [VpcEndpointConnection]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct RejectVpcEndpointConnectionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure) + ] + /// Information about the endpoints that were not rejected, if applicable. + public let unsuccessful: UnsuccessfulItemSet? + + public init(unsuccessful: UnsuccessfulItemSet? = nil) { + self.unsuccessful = unsuccessful + } + + private enum CodingKeys: String, CodingKey { + case unsuccessful = "unsuccessful" + } + } + + public struct InstanceIpv6AddressRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Ipv6Address", required: false, type: .string) + ] + /// The IPv6 address. + public let ipv6Address: String? + + public init(ipv6Address: String? = nil) { + self.ipv6Address = ipv6Address + } + + private enum CodingKeys: String, CodingKey { + case ipv6Address = "Ipv6Address" + } + } + public struct DescribeNetworkAclsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "NetworkAclIds", location: .body(locationName: "NetworkAclId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure) @@ -13039,27 +15731,13 @@ extension Ec2 { } } - public enum OperationType: String, CustomStringConvertible, Codable { - case add = "add" - case remove = "remove" - public var description: String { return self.rawValue } - } - - public enum ListingStatus: String, CustomStringConvertible, Codable { - case active = "active" - case pending = "pending" - case cancelled = "cancelled" - case closed = "closed" - public var description: String { return self.rawValue } - } - - public struct VpcAttachmentList: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ServiceDetailSet: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] - public let item: [VpcAttachment]? + public let item: [ServiceDetail]? - public init(item: [VpcAttachment]? = nil) { + public init(item: [ServiceDetail]? = nil) { self.item = item } @@ -13069,7 +15747,7 @@ extension Ec2 { } public struct TerminateInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TerminatingInstances", location: .body(locationName: "instancesSet"), required: false, type: .structure) ] /// Information about one or more terminated instances. @@ -13084,8 +15762,23 @@ extension Ec2 { } } + public struct NetworkInterfacePermissionList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [NetworkInterfacePermission]? + + public init(item: [NetworkInterfacePermission]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct CreateVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagSpecifications", location: .body(locationName: "TagSpecification"), required: false, type: .structure), AWSShapeMember(label: "VolumeType", required: false, type: .enum), AWSShapeMember(label: "Size", required: false, type: .integer), @@ -13146,8 +15839,23 @@ extension Ec2 { public var description: String { return self.rawValue } } + public struct InstanceCreditSpecificationListRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [InstanceCreditSpecificationRequest]? + + public init(item: [InstanceCreditSpecificationRequest]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct DescribeImportSnapshotTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filters", required: false, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -13183,7 +15891,7 @@ extension Ec2 { } public struct DisassociateSubnetCidrBlockResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "Ipv6CidrBlockAssociation", location: .body(locationName: "ipv6CidrBlockAssociation"), required: false, type: .structure) ] @@ -13203,23 +15911,44 @@ extension Ec2 { } } - public struct ReservedInstanceReservationValueSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct DescribeVpcEndpointServiceConfigurationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceIds", location: .body(locationName: "ServiceId"), required: false, type: .structure), + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - public let item: [ReservedInstanceReservationValue]? + /// The IDs of one or more services. + public let serviceIds: ValueStringList? + /// One or more filters. service-name - The ARN of the service. vpc-endpoint-service-id - The ID of the service. vpc-endpoint-service-state - The state of the service (Pending | Available | Deleting | Deleted | Failed). + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The token to retrieve the next page of results. + public let nextToken: String? + /// The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. + public let maxResults: Int32? - public init(item: [ReservedInstanceReservationValue]? = nil) { - self.item = item + public init(serviceIds: ValueStringList? = nil, filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.serviceIds = serviceIds + self.filters = filters + self.dryRun = dryRun + self.nextToken = nextToken + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case item = "item" + case serviceIds = "ServiceId" + case filters = "Filter" + case dryRun = "DryRun" + case nextToken = "NextToken" + case maxResults = "MaxResults" } } public struct AllocateAddressResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AllocationId", location: .body(locationName: "allocationId"), required: false, type: .string), AWSShapeMember(label: "Domain", location: .body(locationName: "domain"), required: false, type: .enum), AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: false, type: .string) @@ -13244,8 +15973,39 @@ extension Ec2 { } } + public struct ReservedInstanceReservationValueSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [ReservedInstanceReservationValue]? + + public init(item: [ReservedInstanceReservationValue]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct ElasticGpuSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .string) + ] + /// The type of Elastic GPU. + public let `type`: String + + public init(type: String) { + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + } + } + public struct VolumeModification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", location: .body(locationName: "startTime"), required: false, type: .timestamp), AWSShapeMember(label: "OriginalIops", location: .body(locationName: "originalIops"), required: false, type: .integer), AWSShapeMember(label: "ModificationState", location: .body(locationName: "modificationState"), required: false, type: .enum), @@ -13316,7 +16076,7 @@ extension Ec2 { } public struct UserBucket: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3Bucket", required: false, type: .string), AWSShapeMember(label: "S3Key", required: false, type: .string) ] @@ -13337,7 +16097,7 @@ extension Ec2 { } public struct AssociateDhcpOptionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: true, type: .string), AWSShapeMember(label: "DhcpOptionsId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -13363,7 +16123,7 @@ extension Ec2 { } public struct CreateSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VolumeId", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) @@ -13388,8 +16148,23 @@ extension Ec2 { } } + public struct ServiceConfigurationSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [ServiceConfiguration]? + + public init(item: [ServiceConfiguration]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct HostReservationIdSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -13403,8 +16178,49 @@ extension Ec2 { } } + public struct ServiceTypeDetailSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [ServiceTypeDetail]? + + public init(item: [ServiceTypeDetail]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct DeleteNetworkInterfacePermissionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NetworkInterfacePermissionId", required: true, type: .string), + AWSShapeMember(label: "Force", required: false, type: .boolean), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// The ID of the network interface permission. + public let networkInterfacePermissionId: String + /// Specify true to remove the permission even if the network interface is attached to an instance. + public let force: Bool? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(networkInterfacePermissionId: String, force: Bool? = nil, dryRun: Bool? = nil) { + self.networkInterfacePermissionId = networkInterfacePermissionId + self.force = force + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case networkInterfacePermissionId = "NetworkInterfacePermissionId" + case force = "Force" + case dryRun = "DryRun" + } + } + public struct DescribeIdFormatRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Resource", required: false, type: .string) ] /// The type of resource: instance | reservation | snapshot | volume @@ -13419,8 +16235,13 @@ extension Ec2 { } } + public enum VpcTenancy: String, CustomStringConvertible, Codable { + case `default` = "default" + public var description: String { return self.rawValue } + } + public struct HostInstanceList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [HostInstance]? @@ -13435,7 +16256,7 @@ extension Ec2 { } public struct DescribeHostReservationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostReservationIdSet", required: false, type: .structure), AWSShapeMember(label: "Filter", required: false, type: .structure), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -13466,7 +16287,7 @@ extension Ec2 { } public struct GetHostReservationPurchasePreviewRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostIdSet", required: true, type: .structure), AWSShapeMember(label: "OfferingId", required: true, type: .string) ] @@ -13487,7 +16308,7 @@ extension Ec2 { } public struct ActiveInstance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .string), AWSShapeMember(label: "InstanceHealth", location: .body(locationName: "instanceHealth"), required: false, type: .enum), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), @@ -13499,7 +16320,7 @@ extension Ec2 { public let instanceHealth: InstanceHealthStatus? /// The ID of the instance. public let instanceId: String? - /// The ID of the Spot instance request. + /// The ID of the Spot Instance request. public let spotInstanceRequestId: String? public init(instanceType: String? = nil, instanceHealth: InstanceHealthStatus? = nil, instanceId: String? = nil, spotInstanceRequestId: String? = nil) { @@ -13518,7 +16339,7 @@ extension Ec2 { } public struct DescribeMovingAddressesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "MovingAddressStatuses", location: .body(locationName: "movingAddressStatusSet"), required: false, type: .structure) ] @@ -13539,7 +16360,7 @@ extension Ec2 { } public struct ExportToS3Task: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3Key", location: .body(locationName: "s3Key"), required: false, type: .string), AWSShapeMember(label: "ContainerFormat", location: .body(locationName: "containerFormat"), required: false, type: .enum), AWSShapeMember(label: "S3Bucket", location: .body(locationName: "s3Bucket"), required: false, type: .string), @@ -13576,7 +16397,7 @@ extension Ec2 { } public struct ValueStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -13591,7 +16412,7 @@ extension Ec2 { } public struct VpcAttachment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum) ] @@ -13611,40 +16432,44 @@ extension Ec2 { } } - public struct Ipv6Range: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CidrIpv6", location: .body(locationName: "cidrIpv6"), required: false, type: .string) + public struct DeleteLaunchTemplateVersionsResponseSuccessSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The IPv6 CIDR range. You can either specify a CIDR range or a source security group, not both. To specify a single IPv6 address, use the /128 prefix. - public let cidrIpv6: String? + public let item: [DeleteLaunchTemplateVersionsResponseSuccessItem]? - public init(cidrIpv6: String? = nil) { - self.cidrIpv6 = cidrIpv6 + public init(item: [DeleteLaunchTemplateVersionsResponseSuccessItem]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case cidrIpv6 = "cidrIpv6" + case item = "item" } } - public struct DisableVpcClassicLinkDnsSupportResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + public struct Ipv6Range: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CidrIpv6", location: .body(locationName: "cidrIpv6"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) ] - /// Returns true if the request succeeds; otherwise, it returns an error. - public let `return`: Bool? + /// The IPv6 CIDR range. You can either specify a CIDR range or a source security group, not both. To specify a single IPv6 address, use the /128 prefix length. + public let cidrIpv6: String? + /// A description for the security group rule that references this IPv6 address range. Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* + public let description: String? - public init(return: Bool? = nil) { - self.`return` = `return` + public init(cidrIpv6: String? = nil, description: String? = nil) { + self.cidrIpv6 = cidrIpv6 + self.description = description } private enum CodingKeys: String, CodingKey { - case `return` = "return" + case cidrIpv6 = "cidrIpv6" + case description = "description" } } public struct CreateTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Tags", location: .body(locationName: "Tag"), required: true, type: .structure), AWSShapeMember(label: "Resources", location: .body(locationName: "ResourceId"), required: true, type: .list) @@ -13670,7 +16495,7 @@ extension Ec2 { } public struct PrefixListSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [PrefixList]? @@ -13684,8 +16509,24 @@ extension Ec2 { } } + public struct DisableVpcClassicLinkDnsSupportResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// Returns true if the request succeeds; otherwise, it returns an error. + public let `return`: Bool? + + public init(return: Bool? = nil) { + self.`return` = `return` + } + + private enum CodingKeys: String, CodingKey { + case `return` = "return" + } + } + public struct DescribeSnapshotsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RestorableByUserIds", location: .body(locationName: "RestorableBy"), required: false, type: .list), AWSShapeMember(label: "SnapshotIds", location: .body(locationName: "SnapshotId"), required: false, type: .structure), AWSShapeMember(label: "OwnerIds", location: .body(locationName: "Owner"), required: false, type: .structure), @@ -13700,7 +16541,7 @@ extension Ec2 { public let snapshotIds: SnapshotIdStringList? /// Returns the snapshots owned by the specified owner. Multiple owners can be specified. public let ownerIds: OwnerStringList? - /// One or more filters. description - A description of the snapshot. owner-alias - Value from an Amazon-maintained list (amazon | aws-marketplace | microsoft) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM consolew. owner-id - The ID of the AWS account that owns the snapshot. progress - The progress of the snapshot, as a percentage (for example, 80%). snapshot-id - The snapshot ID. start-time - The time stamp when the snapshot was initiated. status - The status of the snapshot (pending | completed | error). tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. volume-id - The ID of the volume the snapshot is for. volume-size - The size of the volume, in GiB. + /// One or more filters. description - A description of the snapshot. owner-alias - Value from an Amazon-maintained list (amazon | aws-marketplace | microsoft) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console. owner-id - The ID of the AWS account that owns the snapshot. progress - The progress of the snapshot, as a percentage (for example, 80%). snapshot-id - The snapshot ID. start-time - The time stamp when the snapshot was initiated. status - The status of the snapshot (pending | completed | error). tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. volume-id - The ID of the volume the snapshot is for. volume-size - The size of the volume, in GiB. public let filters: FilterList? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -13730,40 +16571,61 @@ extension Ec2 { } } - public struct CancelReservedInstancesListingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReservedInstancesListingId", location: .body(locationName: "reservedInstancesListingId"), required: true, type: .string) + public struct ScheduledInstancesMonitoring: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Enabled", required: false, type: .boolean) ] - /// The ID of the Reserved Instance listing. - public let reservedInstancesListingId: String + /// Indicates whether monitoring is enabled. + public let enabled: Bool? - public init(reservedInstancesListingId: String) { - self.reservedInstancesListingId = reservedInstancesListingId + public init(enabled: Bool? = nil) { + self.enabled = enabled } private enum CodingKeys: String, CodingKey { - case reservedInstancesListingId = "reservedInstancesListingId" + case enabled = "Enabled" } } - public struct ScheduledInstancesMonitoring: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Enabled", required: false, type: .boolean) + public struct CreateInstanceExportTaskResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ExportTask", location: .body(locationName: "exportTask"), required: false, type: .structure) ] - /// Indicates whether monitoring is enabled. - public let enabled: Bool? + /// Information about the instance export task. + public let exportTask: ExportTask? - public init(enabled: Bool? = nil) { - self.enabled = enabled + public init(exportTask: ExportTask? = nil) { + self.exportTask = exportTask } private enum CodingKeys: String, CodingKey { - case enabled = "Enabled" + case exportTask = "exportTask" + } + } + + public struct CancelSpotFleetRequestsErrorItem: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Error", location: .body(locationName: "error"), required: true, type: .structure), + AWSShapeMember(label: "SpotFleetRequestId", location: .body(locationName: "spotFleetRequestId"), required: true, type: .string) + ] + /// The error. + public let error: CancelSpotFleetRequestsError + /// The ID of the Spot Fleet request. + public let spotFleetRequestId: String + + public init(error: CancelSpotFleetRequestsError, spotFleetRequestId: String) { + self.error = error + self.spotFleetRequestId = spotFleetRequestId + } + + private enum CodingKeys: String, CodingKey { + case error = "error" + case spotFleetRequestId = "spotFleetRequestId" } } public struct CreateNetworkInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: true, type: .string), AWSShapeMember(label: "PrivateIpAddress", location: .body(locationName: "privateIpAddress"), required: false, type: .string), @@ -13818,8 +16680,24 @@ extension Ec2 { } } + public struct CancelReservedInstancesListingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedInstancesListingId", location: .body(locationName: "reservedInstancesListingId"), required: true, type: .string) + ] + /// The ID of the Reserved Instance listing. + public let reservedInstancesListingId: String + + public init(reservedInstancesListingId: String) { + self.reservedInstancesListingId = reservedInstancesListingId + } + + private enum CodingKeys: String, CodingKey { + case reservedInstancesListingId = "reservedInstancesListingId" + } + } + public struct ModifyReservedInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesIds", location: .body(locationName: "ReservedInstancesId"), required: true, type: .structure), AWSShapeMember(label: "TargetConfigurations", location: .body(locationName: "ReservedInstancesConfigurationSetItemType"), required: true, type: .structure), AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string) @@ -13844,45 +16722,8 @@ extension Ec2 { } } - public struct CancelSpotFleetRequestsErrorItem: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Error", location: .body(locationName: "error"), required: true, type: .structure), - AWSShapeMember(label: "SpotFleetRequestId", location: .body(locationName: "spotFleetRequestId"), required: true, type: .string) - ] - /// The error. - public let error: CancelSpotFleetRequestsError - /// The ID of the Spot fleet request. - public let spotFleetRequestId: String - - public init(error: CancelSpotFleetRequestsError, spotFleetRequestId: String) { - self.error = error - self.spotFleetRequestId = spotFleetRequestId - } - - private enum CodingKeys: String, CodingKey { - case error = "error" - case spotFleetRequestId = "spotFleetRequestId" - } - } - - public struct CreateInstanceExportTaskResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ExportTask", location: .body(locationName: "exportTask"), required: false, type: .structure) - ] - /// Information about the instance export task. - public let exportTask: ExportTask? - - public init(exportTask: ExportTask? = nil) { - self.exportTask = exportTask - } - - private enum CodingKeys: String, CodingKey { - case exportTask = "exportTask" - } - } - public struct DescribeVolumesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeIds", location: .body(locationName: "VolumeId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), @@ -13891,7 +16732,7 @@ extension Ec2 { ] /// One or more volume IDs. public let volumeIds: VolumeIdStringList? - /// One or more filters. attachment.attach-time - The time stamp when the attachment initiated. attachment.delete-on-termination - Whether the volume is deleted on instance termination. attachment.device - The device name that is exposed to the instance (for example, /dev/sda1). attachment.instance-id - The ID of the instance the volume is attached to. attachment.status - The attachment state (attaching | attached | detaching | detached). availability-zone - The Availability Zone in which the volume was created. create-time - The time stamp when the volume was created. encrypted - The encryption status of the volume. size - The size of the volume, in GiB. snapshot-id - The snapshot from which the volume was created. status - The status of the volume (creating | available | in-use | deleting | deleted | error). tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. volume-id - The volume ID. volume-type - The Amazon EBS volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes. + /// One or more filters. attachment.attach-time - The time stamp when the attachment initiated. attachment.delete-on-termination - Whether the volume is deleted on instance termination. attachment.device - The device name specified in the block device mapping (for example, /dev/sda1). attachment.instance-id - The ID of the instance the volume is attached to. attachment.status - The attachment state (attaching | attached | detaching | detached). availability-zone - The Availability Zone in which the volume was created. create-time - The time stamp when the volume was created. encrypted - The encryption status of the volume. size - The size of the volume, in GiB. snapshot-id - The snapshot from which the volume was created. status - The status of the volume (creating | available | in-use | deleting | deleted | error). tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. volume-id - The volume ID. volume-type - The Amazon EBS volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes. public let filters: FilterList? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -13918,7 +16759,7 @@ extension Ec2 { } public struct DeleteVpnGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VpnGatewayId", required: true, type: .string) ] @@ -13939,7 +16780,7 @@ extension Ec2 { } public struct DescribeReservedInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstances", location: .body(locationName: "reservedInstancesSet"), required: false, type: .structure) ] /// A list of Reserved Instances. @@ -13954,6 +16795,27 @@ extension Ec2 { } } + public struct LaunchTemplateTagSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), + AWSShapeMember(label: "ResourceType", location: .body(locationName: "resourceType"), required: false, type: .enum) + ] + /// The tags for the resource. + public let tags: TagList? + /// The type of resource. + public let resourceType: ResourceType? + + public init(tags: TagList? = nil, resourceType: ResourceType? = nil) { + self.tags = tags + self.resourceType = resourceType + } + + private enum CodingKeys: String, CodingKey { + case tags = "tagSet" + case resourceType = "resourceType" + } + } + public enum VolumeStatusName: String, CustomStringConvertible, Codable { case ioEnabled = "io-enabled" case ioPerformance = "io-performance" @@ -13961,7 +16823,7 @@ extension Ec2 { } public struct InstanceNetworkInterfaceList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceNetworkInterface]? @@ -13976,7 +16838,7 @@ extension Ec2 { } public struct EnableVpcClassicLinkDnsSupportRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: false, type: .string) ] /// The ID of the VPC. @@ -13992,7 +16854,7 @@ extension Ec2 { } public struct DescribeNetworkInterfaceAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: true, type: .string), AWSShapeMember(label: "Attribute", location: .body(locationName: "attribute"), required: false, type: .enum) @@ -14018,7 +16880,7 @@ extension Ec2 { } public struct SlotDateTimeRangeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EarliestTime", required: true, type: .timestamp), AWSShapeMember(label: "LatestTime", required: true, type: .timestamp) ] @@ -14038,8 +16900,44 @@ extension Ec2 { } } + public struct LaunchTemplateTagSpecificationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", location: .body(locationName: "Tag"), required: false, type: .structure), + AWSShapeMember(label: "ResourceType", required: false, type: .enum) + ] + /// The tags to apply to the resource. + public let tags: TagList? + /// The type of resource to tag. Currently, the resource types that support tagging on creation are instance and volume. + public let resourceType: ResourceType? + + public init(tags: TagList? = nil, resourceType: ResourceType? = nil) { + self.tags = tags + self.resourceType = resourceType + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tag" + case resourceType = "ResourceType" + } + } + + public struct LaunchTemplateNameStringList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [String]? + + public init(item: [String]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct DeleteVpcRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -14059,29 +16957,8 @@ extension Ec2 { } } - public struct StorageLocation: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Bucket", required: false, type: .string), - AWSShapeMember(label: "Key", required: false, type: .string) - ] - /// The name of the S3 bucket. - public let bucket: String? - /// The key. - public let key: String? - - public init(bucket: String? = nil, key: String? = nil) { - self.bucket = bucket - self.key = key - } - - private enum CodingKeys: String, CodingKey { - case bucket = "Bucket" - case key = "Key" - } - } - public struct InstanceBlockDeviceMappingSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NoDevice", location: .body(locationName: "noDevice"), required: false, type: .string), AWSShapeMember(label: "VirtualName", location: .body(locationName: "virtualName"), required: false, type: .string), AWSShapeMember(label: "DeviceName", location: .body(locationName: "deviceName"), required: false, type: .string), @@ -14091,28 +16968,49 @@ extension Ec2 { public let noDevice: String? /// The virtual device name. public let virtualName: String? - /// The device name exposed to the instance (for example, /dev/sdh or xvdh). + /// The device name (for example, /dev/sdh or xvdh). public let deviceName: String? /// Parameters used to automatically set up EBS volumes when the instance is launched. public let ebs: EbsInstanceBlockDeviceSpecification? - public init(noDevice: String? = nil, virtualName: String? = nil, deviceName: String? = nil, ebs: EbsInstanceBlockDeviceSpecification? = nil) { - self.noDevice = noDevice - self.virtualName = virtualName - self.deviceName = deviceName - self.ebs = ebs + public init(noDevice: String? = nil, virtualName: String? = nil, deviceName: String? = nil, ebs: EbsInstanceBlockDeviceSpecification? = nil) { + self.noDevice = noDevice + self.virtualName = virtualName + self.deviceName = deviceName + self.ebs = ebs + } + + private enum CodingKeys: String, CodingKey { + case noDevice = "noDevice" + case virtualName = "virtualName" + case deviceName = "deviceName" + case ebs = "ebs" + } + } + + public struct StorageLocation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Bucket", required: false, type: .string), + AWSShapeMember(label: "Key", required: false, type: .string) + ] + /// The name of the S3 bucket. + public let bucket: String? + /// The key. + public let key: String? + + public init(bucket: String? = nil, key: String? = nil) { + self.bucket = bucket + self.key = key } private enum CodingKeys: String, CodingKey { - case noDevice = "noDevice" - case virtualName = "virtualName" - case deviceName = "deviceName" - case ebs = "ebs" + case bucket = "Bucket" + case key = "Key" } } public struct InstanceMonitoring: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Monitoring", location: .body(locationName: "monitoring"), required: false, type: .structure), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string) ] @@ -14133,7 +17031,7 @@ extension Ec2 { } public struct PriceScheduleList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [PriceSchedule]? @@ -14147,18 +17045,57 @@ extension Ec2 { } } + public enum VolumeStatusInfoStatus: String, CustomStringConvertible, Codable { + case ok = "ok" + case impaired = "impaired" + case insufficientData = "insufficient-data" + public var description: String { return self.rawValue } + } + + public struct CreateVpnConnectionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpnConnection", location: .body(locationName: "vpnConnection"), required: false, type: .structure) + ] + /// Information about the VPN connection. + public let vpnConnection: VpnConnection? + + public init(vpnConnection: VpnConnection? = nil) { + self.vpnConnection = vpnConnection + } + + private enum CodingKeys: String, CodingKey { + case vpnConnection = "vpnConnection" + } + } + + public struct PropagatingVgw: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GatewayId", location: .body(locationName: "gatewayId"), required: false, type: .string) + ] + /// The ID of the virtual private gateway (VGW). + public let gatewayId: String? + + public init(gatewayId: String? = nil) { + self.gatewayId = gatewayId + } + + private enum CodingKeys: String, CodingKey { + case gatewayId = "gatewayId" + } + } + public struct DescribeVpcEndpointsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcEndpointIds", location: .body(locationName: "VpcEndpointId"), required: false, type: .structure), + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// One or more filters. service-name: The name of the AWS service. vpc-id: The ID of the VPC in which the endpoint resides. vpc-endpoint-id: The ID of the endpoint. vpc-endpoint-state: The state of the endpoint. (pending | available | deleting | deleted) - public let filters: FilterList? /// One or more endpoint IDs. public let vpcEndpointIds: ValueStringList? + /// One or more filters. service-name: The name of the service. vpc-id: The ID of the VPC in which the endpoint resides. vpc-endpoint-id: The ID of the endpoint. vpc-endpoint-state: The state of the endpoint. (pending | available | deleting | deleted) + public let filters: FilterList? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? /// The token for the next set of items to return. (You received this token from a prior call.) @@ -14166,32 +17103,25 @@ extension Ec2 { /// The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. Constraint: If the value is greater than 1000, we return only 1000 items. public let maxResults: Int32? - public init(filters: FilterList? = nil, vpcEndpointIds: ValueStringList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { - self.filters = filters + public init(vpcEndpointIds: ValueStringList? = nil, filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { self.vpcEndpointIds = vpcEndpointIds + self.filters = filters self.dryRun = dryRun self.nextToken = nextToken self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case filters = "Filter" case vpcEndpointIds = "VpcEndpointId" + case filters = "Filter" case dryRun = "DryRun" case nextToken = "NextToken" case maxResults = "MaxResults" } } - public enum VolumeStatusInfoStatus: String, CustomStringConvertible, Codable { - case ok = "ok" - case impaired = "impaired" - case insufficientData = "insufficient-data" - public var description: String { return self.rawValue } - } - public struct DescribeFlowLogsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "FlowLogs", location: .body(locationName: "flowLogSet"), required: false, type: .structure) ] @@ -14212,7 +17142,7 @@ extension Ec2 { } public struct EnableVpcClassicLinkResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] /// Returns true if the request succeeds; otherwise, it returns an error. @@ -14227,40 +17157,8 @@ extension Ec2 { } } - public struct CreateVpnConnectionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpnConnection", location: .body(locationName: "vpnConnection"), required: false, type: .structure) - ] - /// Information about the VPN connection. - public let vpnConnection: VpnConnection? - - public init(vpnConnection: VpnConnection? = nil) { - self.vpnConnection = vpnConnection - } - - private enum CodingKeys: String, CodingKey { - case vpnConnection = "vpnConnection" - } - } - - public struct PropagatingVgw: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GatewayId", location: .body(locationName: "gatewayId"), required: false, type: .string) - ] - /// The ID of the virtual private gateway (VGW). - public let gatewayId: String? - - public init(gatewayId: String? = nil) { - self.gatewayId = gatewayId - } - - private enum CodingKeys: String, CodingKey { - case gatewayId = "gatewayId" - } - } - public struct StartInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartingInstances", location: .body(locationName: "instancesSet"), required: false, type: .structure) ] /// Information about one or more started instances. @@ -14276,7 +17174,7 @@ extension Ec2 { } public struct RevokeSecurityGroupEgressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceSecurityGroupOwnerId", location: .body(locationName: "sourceSecurityGroupOwnerId"), required: false, type: .string), AWSShapeMember(label: "IpPermissions", location: .body(locationName: "ipPermissions"), required: false, type: .structure), AWSShapeMember(label: "CidrIp", location: .body(locationName: "cidrIp"), required: false, type: .string), @@ -14287,21 +17185,21 @@ extension Ec2 { AWSShapeMember(label: "IpProtocol", location: .body(locationName: "ipProtocol"), required: false, type: .string), AWSShapeMember(label: "GroupId", location: .body(locationName: "groupId"), required: true, type: .string) ] - /// The AWS account number for a destination security group. To revoke outbound access to a destination security group, we recommend that you use a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify a destination security group. public let sourceSecurityGroupOwnerId: String? - /// A set of IP permissions. You can't specify a destination security group and a CIDR IP address range. + /// One or more sets of IP permissions. You can't specify a destination security group and a CIDR IP address range in the same set of permissions. public let ipPermissions: IpPermissionList? - /// The CIDR IP address range. We recommend that you specify the CIDR range in a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify the CIDR. public let cidrIp: String? - /// The name of a destination security group. To revoke outbound access to a destination security group, we recommend that you use a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify a destination security group. public let sourceSecurityGroupName: String? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// The start of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify the port. public let fromPort: Int32? - /// The end of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify the port. public let toPort: Int32? - /// The IP protocol name or number. We recommend that you specify the protocol in a set of IP permissions instead. + /// Not supported. Use a set of IP permissions to specify the protocol name or number. public let ipProtocol: String? /// The ID of the security group. public let groupId: String @@ -14337,7 +17235,7 @@ extension Ec2 { } public struct PublicIpStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PublicIp", required: false, type: .list) ] public let publicIp: [String]? @@ -14351,8 +17249,24 @@ extension Ec2 { } } + public struct CidrBlock: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CidrBlock", location: .body(locationName: "cidrBlock"), required: false, type: .string) + ] + /// The IPv4 CIDR block. + public let cidrBlock: String? + + public init(cidrBlock: String? = nil) { + self.cidrBlock = cidrBlock + } + + private enum CodingKeys: String, CodingKey { + case cidrBlock = "cidrBlock" + } + } + public struct DescribeImportImageTasksResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "ImportImageTasks", location: .body(locationName: "importImageTaskSet"), required: false, type: .structure) ] @@ -14372,6 +17286,21 @@ extension Ec2 { } } + public struct HostOfferingSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [HostOffering]? + + public init(item: [HostOffering]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public enum PaymentOption: String, CustomStringConvertible, Codable { case allupfront = "AllUpfront" case partialupfront = "PartialUpfront" @@ -14401,7 +17330,7 @@ extension Ec2 { } public struct InstanceStateChange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PreviousState", location: .body(locationName: "previousState"), required: false, type: .structure), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), AWSShapeMember(label: "CurrentState", location: .body(locationName: "currentState"), required: false, type: .structure) @@ -14427,7 +17356,7 @@ extension Ec2 { } public struct ClassicLinkInstanceList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ClassicLinkInstance]? @@ -14442,7 +17371,7 @@ extension Ec2 { } public struct GroupIdentifier: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupId", location: .body(locationName: "groupId"), required: false, type: .string), AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: false, type: .string) ] @@ -14463,7 +17392,7 @@ extension Ec2 { } public struct CreateSubnetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Ipv6CidrBlock", required: false, type: .string), AWSShapeMember(label: "VpcId", required: true, type: .string), @@ -14498,8 +17427,44 @@ extension Ec2 { } } + public struct LaunchTemplateSpotMarketOptionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxPrice", required: false, type: .string), + AWSShapeMember(label: "BlockDurationMinutes", required: false, type: .integer), + AWSShapeMember(label: "ValidUntil", required: false, type: .timestamp), + AWSShapeMember(label: "InstanceInterruptionBehavior", required: false, type: .enum), + AWSShapeMember(label: "SpotInstanceType", required: false, type: .enum) + ] + /// The maximum hourly price you're willing to pay for the Spot Instances. + public let maxPrice: String? + /// The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). + public let blockDurationMinutes: Int32? + /// The end date of the request. For a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached. The default end date is 7 days from the current date. + public let validUntil: TimeStamp? + /// The behavior when a Spot Instance is interrupted. The default is terminate. + public let instanceInterruptionBehavior: InstanceInterruptionBehavior? + /// The Spot Instance request type. + public let spotInstanceType: SpotInstanceType? + + public init(maxPrice: String? = nil, blockDurationMinutes: Int32? = nil, validUntil: TimeStamp? = nil, instanceInterruptionBehavior: InstanceInterruptionBehavior? = nil, spotInstanceType: SpotInstanceType? = nil) { + self.maxPrice = maxPrice + self.blockDurationMinutes = blockDurationMinutes + self.validUntil = validUntil + self.instanceInterruptionBehavior = instanceInterruptionBehavior + self.spotInstanceType = spotInstanceType + } + + private enum CodingKeys: String, CodingKey { + case maxPrice = "MaxPrice" + case blockDurationMinutes = "BlockDurationMinutes" + case validUntil = "ValidUntil" + case instanceInterruptionBehavior = "InstanceInterruptionBehavior" + case spotInstanceType = "SpotInstanceType" + } + } + public struct ReservedInstancesId: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesId", location: .body(locationName: "reservedInstancesId"), required: false, type: .string) ] /// The ID of the Reserved Instance. @@ -14514,8 +17479,29 @@ extension Ec2 { } } + public struct CreateVpcEndpointConnectionNotificationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConnectionNotification", location: .body(locationName: "connectionNotification"), required: false, type: .structure), + AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string) + ] + /// Information about the notification. + public let connectionNotification: ConnectionNotification? + /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. + public let clientToken: String? + + public init(connectionNotification: ConnectionNotification? = nil, clientToken: String? = nil) { + self.connectionNotification = connectionNotification + self.clientToken = clientToken + } + + private enum CodingKeys: String, CodingKey { + case connectionNotification = "connectionNotification" + case clientToken = "clientToken" + } + } + public struct StaleIpPermissionSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [StaleIpPermission]? @@ -14530,7 +17516,7 @@ extension Ec2 { } public struct ResetNetworkInterfaceAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: true, type: .string), AWSShapeMember(label: "SourceDestCheck", location: .body(locationName: "sourceDestCheck"), required: false, type: .string) @@ -14555,6 +17541,37 @@ extension Ec2 { } } + public struct DescribeNetworkInterfacePermissionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "NetworkInterfacePermissionIds", location: .body(locationName: "NetworkInterfacePermissionId"), required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// One or more filters. network-interface-permission.network-interface-permission-id - The ID of the permission. network-interface-permission.network-interface-id - The ID of the network interface. network-interface-permission.aws-account-id - The AWS account ID. network-interface-permission.aws-service - The AWS service. network-interface-permission.permission - The type of permission (INSTANCE-ATTACH | EIP-ASSOCIATE). + public let filters: FilterList? + /// One or more network interface permission IDs. + public let networkInterfacePermissionIds: [String]? + /// The token to request the next page of results. + public let nextToken: String? + /// The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. If this parameter is not specified, up to 50 results are returned by default. + public let maxResults: Int32? + + public init(filters: FilterList? = nil, networkInterfacePermissionIds: [String]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.filters = filters + self.networkInterfacePermissionIds = networkInterfacePermissionIds + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filter" + case networkInterfacePermissionIds = "NetworkInterfacePermissionId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + public enum AccountAttributeName: String, CustomStringConvertible, Codable { case supportedPlatforms = "supported-platforms" case defaultVpc = "default-vpc" @@ -14562,7 +17579,7 @@ extension Ec2 { } public struct DescribeInternetGatewaysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InternetGatewayIds", location: .body(locationName: "internetGatewayId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -14588,7 +17605,7 @@ extension Ec2 { } public struct DescribeIdentityIdFormatRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrincipalArn", location: .body(locationName: "principalArn"), required: true, type: .string), AWSShapeMember(label: "Resource", location: .body(locationName: "resource"), required: false, type: .string) ] @@ -14609,7 +17626,7 @@ extension Ec2 { } public struct ResponseHostIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -14623,6 +17640,32 @@ extension Ec2 { } } + public struct ResetFpgaImageAttributeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "FpgaImageId", required: true, type: .string), + AWSShapeMember(label: "Attribute", required: false, type: .enum) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The ID of the AFI. + public let fpgaImageId: String + /// The attribute. + public let attribute: ResetFpgaImageAttributeName? + + public init(dryRun: Bool? = nil, fpgaImageId: String, attribute: ResetFpgaImageAttributeName? = nil) { + self.dryRun = dryRun + self.fpgaImageId = fpgaImageId + self.attribute = attribute + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case fpgaImageId = "FpgaImageId" + case attribute = "Attribute" + } + } + public enum ReportInstanceReasonCodes: String, CustomStringConvertible, Codable { case instanceStuckInState = "instance-stuck-in-state" case unresponsive = "unresponsive" @@ -14637,7 +17680,7 @@ extension Ec2 { } public struct CustomerGatewayIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomerGatewayId", required: false, type: .list) ] public let customerGatewayId: [String]? @@ -14660,7 +17703,7 @@ extension Ec2 { } public struct Image: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "blockDeviceMapping"), required: false, type: .structure), AWSShapeMember(label: "Platform", location: .body(locationName: "platform"), required: false, type: .enum), AWSShapeMember(label: "RootDeviceName", location: .body(locationName: "rootDeviceName"), required: false, type: .string), @@ -14690,7 +17733,7 @@ extension Ec2 { public let blockDeviceMappings: BlockDeviceMappingList? /// The value is Windows for Windows AMIs; otherwise blank. public let platform: PlatformValues? - /// The device name of the root device (for example, /dev/sda1 or /dev/xvda). + /// The device name of the root device volume (for example, /dev/sda1). public let rootDeviceName: String? /// Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled. public let sriovNetSupport: String? @@ -14790,23 +17833,29 @@ extension Ec2 { } } - public struct InternetGatewayList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct DeleteLaunchTemplateVersionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SuccessfullyDeletedLaunchTemplateVersions", location: .body(locationName: "successfullyDeletedLaunchTemplateVersionSet"), required: false, type: .structure), + AWSShapeMember(label: "UnsuccessfullyDeletedLaunchTemplateVersions", location: .body(locationName: "unsuccessfullyDeletedLaunchTemplateVersionSet"), required: false, type: .structure) ] - public let item: [InternetGateway]? + /// Information about the launch template versions that were successfully deleted. + public let successfullyDeletedLaunchTemplateVersions: DeleteLaunchTemplateVersionsResponseSuccessSet? + /// Information about the launch template versions that could not be deleted. + public let unsuccessfullyDeletedLaunchTemplateVersions: DeleteLaunchTemplateVersionsResponseErrorSet? - public init(item: [InternetGateway]? = nil) { - self.item = item + public init(successfullyDeletedLaunchTemplateVersions: DeleteLaunchTemplateVersionsResponseSuccessSet? = nil, unsuccessfullyDeletedLaunchTemplateVersions: DeleteLaunchTemplateVersionsResponseErrorSet? = nil) { + self.successfullyDeletedLaunchTemplateVersions = successfullyDeletedLaunchTemplateVersions + self.unsuccessfullyDeletedLaunchTemplateVersions = unsuccessfullyDeletedLaunchTemplateVersions } private enum CodingKeys: String, CodingKey { - case item = "item" + case successfullyDeletedLaunchTemplateVersions = "successfullyDeletedLaunchTemplateVersionSet" + case unsuccessfullyDeletedLaunchTemplateVersions = "unsuccessfullyDeletedLaunchTemplateVersionSet" } } public struct VpnConnectionOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StaticRoutesOnly", location: .body(locationName: "staticRoutesOnly"), required: false, type: .boolean) ] /// Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP. @@ -14821,8 +17870,54 @@ extension Ec2 { } } + public struct InternetGatewayList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [InternetGateway]? + + public init(item: [InternetGateway]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct CreditSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CpuCredits", location: .body(locationName: "cpuCredits"), required: false, type: .string) + ] + /// The credit option for CPU usage of a T2 instance. + public let cpuCredits: String? + + public init(cpuCredits: String? = nil) { + self.cpuCredits = cpuCredits + } + + private enum CodingKeys: String, CodingKey { + case cpuCredits = "cpuCredits" + } + } + + public struct VpnStaticRouteList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [VpnStaticRoute]? + + public init(item: [VpnStaticRoute]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct DescribeImportImageTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filters", required: false, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -14858,12 +17953,13 @@ extension Ec2 { } public struct NatGateway: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "NatGatewayId", location: .body(locationName: "natGatewayId"), required: false, type: .string), AWSShapeMember(label: "DeleteTime", location: .body(locationName: "deleteTime"), required: false, type: .timestamp), AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), AWSShapeMember(label: "FailureCode", location: .body(locationName: "failureCode"), required: false, type: .string), AWSShapeMember(label: "CreateTime", location: .body(locationName: "createTime"), required: false, type: .timestamp), AWSShapeMember(label: "FailureMessage", location: .body(locationName: "failureMessage"), required: false, type: .string), @@ -14880,6 +17976,8 @@ extension Ec2 { public let vpcId: String? /// The state of the NAT gateway. pending: The NAT gateway is being created and is not ready to process traffic. failed: The NAT gateway could not be created. Check the failureCode and failureMessage fields for the reason. available: The NAT gateway is able to process traffic. This status remains until you delete the NAT gateway, and does not indicate the health of the NAT gateway. deleting: The NAT gateway is in the process of being terminated and may still be processing traffic. deleted: The NAT gateway has been terminated and is no longer processing traffic. public let state: NatGatewayState? + /// The tags for the NAT gateway. + public let tags: TagList? /// If the NAT gateway could not be created, specifies the error code for the failure. (InsufficientFreeAddressesInSubnet | Gateway.NotAttached | InvalidAllocationID.NotFound | Resource.AlreadyAssociated | InternalError | InvalidSubnetID.NotFound) public let failureCode: String? /// The date and time the NAT gateway was created. @@ -14891,12 +17989,13 @@ extension Ec2 { /// Information about the IP addresses and network interface associated with the NAT gateway. public let natGatewayAddresses: NatGatewayAddressList? - public init(subnetId: String? = nil, natGatewayId: String? = nil, deleteTime: TimeStamp? = nil, vpcId: String? = nil, state: NatGatewayState? = nil, failureCode: String? = nil, createTime: TimeStamp? = nil, failureMessage: String? = nil, provisionedBandwidth: ProvisionedBandwidth? = nil, natGatewayAddresses: NatGatewayAddressList? = nil) { + public init(subnetId: String? = nil, natGatewayId: String? = nil, deleteTime: TimeStamp? = nil, vpcId: String? = nil, state: NatGatewayState? = nil, tags: TagList? = nil, failureCode: String? = nil, createTime: TimeStamp? = nil, failureMessage: String? = nil, provisionedBandwidth: ProvisionedBandwidth? = nil, natGatewayAddresses: NatGatewayAddressList? = nil) { self.subnetId = subnetId self.natGatewayId = natGatewayId self.deleteTime = deleteTime self.vpcId = vpcId self.state = state + self.tags = tags self.failureCode = failureCode self.createTime = createTime self.failureMessage = failureMessage @@ -14910,6 +18009,7 @@ extension Ec2 { case deleteTime = "deleteTime" case vpcId = "vpcId" case state = "state" + case tags = "tagSet" case failureCode = "failureCode" case createTime = "createTime" case failureMessage = "failureMessage" @@ -14918,13 +18018,13 @@ extension Ec2 { } } - public struct VpnStaticRouteList: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct LaunchTemplateSet: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] - public let item: [VpnStaticRoute]? + public let item: [LaunchTemplate]? - public init(item: [VpnStaticRoute]? = nil) { + public init(item: [LaunchTemplate]? = nil) { self.item = item } @@ -14934,7 +18034,7 @@ extension Ec2 { } public struct InstanceCapacity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .string), AWSShapeMember(label: "TotalCapacity", location: .body(locationName: "totalCapacity"), required: false, type: .integer), AWSShapeMember(label: "AvailableCapacity", location: .body(locationName: "availableCapacity"), required: false, type: .integer) @@ -14964,50 +18064,44 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct UnassignIpv6AddressesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), - AWSShapeMember(label: "UnassignedIpv6Addresses", location: .body(locationName: "unassignedIpv6Addresses"), required: false, type: .structure) + public struct SuccessfulInstanceCreditSpecificationSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The ID of the network interface. - public let networkInterfaceId: String? - /// The IPv6 addresses that have been unassigned from the network interface. - public let unassignedIpv6Addresses: Ipv6AddressList? + public let item: [SuccessfulInstanceCreditSpecificationItem]? - public init(networkInterfaceId: String? = nil, unassignedIpv6Addresses: Ipv6AddressList? = nil) { - self.networkInterfaceId = networkInterfaceId - self.unassignedIpv6Addresses = unassignedIpv6Addresses + public init(item: [SuccessfulInstanceCreditSpecificationItem]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case networkInterfaceId = "networkInterfaceId" - case unassignedIpv6Addresses = "unassignedIpv6Addresses" + case item = "item" } } - public struct ClassicLinkDnsSupport: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), - AWSShapeMember(label: "ClassicLinkDnsSupported", location: .body(locationName: "classicLinkDnsSupported"), required: false, type: .boolean) - ] - /// The ID of the VPC. - public let vpcId: String? - /// Indicates whether ClassicLink DNS support is enabled for the VPC. - public let classicLinkDnsSupported: Bool? + public struct UnassignIpv6AddressesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), + AWSShapeMember(label: "UnassignedIpv6Addresses", location: .body(locationName: "unassignedIpv6Addresses"), required: false, type: .structure) + ] + /// The ID of the network interface. + public let networkInterfaceId: String? + /// The IPv6 addresses that have been unassigned from the network interface. + public let unassignedIpv6Addresses: Ipv6AddressList? - public init(vpcId: String? = nil, classicLinkDnsSupported: Bool? = nil) { - self.vpcId = vpcId - self.classicLinkDnsSupported = classicLinkDnsSupported + public init(networkInterfaceId: String? = nil, unassignedIpv6Addresses: Ipv6AddressList? = nil) { + self.networkInterfaceId = networkInterfaceId + self.unassignedIpv6Addresses = unassignedIpv6Addresses } private enum CodingKeys: String, CodingKey { - case vpcId = "vpcId" - case classicLinkDnsSupported = "classicLinkDnsSupported" + case networkInterfaceId = "networkInterfaceId" + case unassignedIpv6Addresses = "unassignedIpv6Addresses" } } public struct ClassicLinkDnsSupportList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ClassicLinkDnsSupport]? @@ -15022,7 +18116,7 @@ extension Ec2 { } public struct FpgaImageState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .enum), AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) ] @@ -15042,8 +18136,29 @@ extension Ec2 { } } + public struct ClassicLinkDnsSupport: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), + AWSShapeMember(label: "ClassicLinkDnsSupported", location: .body(locationName: "classicLinkDnsSupported"), required: false, type: .boolean) + ] + /// The ID of the VPC. + public let vpcId: String? + /// Indicates whether ClassicLink DNS support is enabled for the VPC. + public let classicLinkDnsSupported: Bool? + + public init(vpcId: String? = nil, classicLinkDnsSupported: Bool? = nil) { + self.vpcId = vpcId + self.classicLinkDnsSupported = classicLinkDnsSupported + } + + private enum CodingKeys: String, CodingKey { + case vpcId = "vpcId" + case classicLinkDnsSupported = "classicLinkDnsSupported" + } + } + public struct CancelImportTaskResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PreviousState", location: .body(locationName: "previousState"), required: false, type: .string), AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .string), AWSShapeMember(label: "ImportTaskId", location: .body(locationName: "importTaskId"), required: false, type: .string) @@ -15068,8 +18183,49 @@ extension Ec2 { } } + public struct LaunchTemplatePlacementRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Affinity", required: false, type: .string), + AWSShapeMember(label: "SpreadDomain", required: false, type: .string), + AWSShapeMember(label: "HostId", required: false, type: .string), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "Tenancy", required: false, type: .enum), + AWSShapeMember(label: "GroupName", required: false, type: .string) + ] + /// The affinity setting for an instance on a Dedicated Host. + public let affinity: String? + /// Reserved for future use. + public let spreadDomain: String? + /// The ID of the Dedicated Host for the instance. + public let hostId: String? + /// The Availability Zone for the instance. + public let availabilityZone: String? + /// The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. + public let tenancy: Tenancy? + /// The name of the placement group for the instance. + public let groupName: String? + + public init(affinity: String? = nil, spreadDomain: String? = nil, hostId: String? = nil, availabilityZone: String? = nil, tenancy: Tenancy? = nil, groupName: String? = nil) { + self.affinity = affinity + self.spreadDomain = spreadDomain + self.hostId = hostId + self.availabilityZone = availabilityZone + self.tenancy = tenancy + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case affinity = "Affinity" + case spreadDomain = "SpreadDomain" + case hostId = "HostId" + case availabilityZone = "AvailabilityZone" + case tenancy = "Tenancy" + case groupName = "GroupName" + } + } + public struct SnapshotDetailList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [SnapshotDetail]? @@ -15084,7 +18240,7 @@ extension Ec2 { } public struct PriceScheduleSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Price", location: .body(locationName: "price"), required: false, type: .double), AWSShapeMember(label: "Term", location: .body(locationName: "term"), required: false, type: .long), AWSShapeMember(label: "CurrencyCode", location: .body(locationName: "currencyCode"), required: false, type: .enum) @@ -15116,7 +18272,7 @@ extension Ec2 { } public struct ProductCodeStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProductCode", required: false, type: .list) ] public let productCode: [String]? @@ -15139,7 +18295,7 @@ extension Ec2 { } public struct DescribeIdentityIdFormatResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Statuses", location: .body(locationName: "statusSet"), required: false, type: .structure) ] /// Information about the ID format for the resources. @@ -15155,7 +18311,7 @@ extension Ec2 { } public struct CreateVpnConnectionRouteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpnConnectionId", required: true, type: .string), AWSShapeMember(label: "DestinationCidrBlock", required: true, type: .string) ] @@ -15175,29 +18331,75 @@ extension Ec2 { } } - public struct ReservedInstancesConfigurationList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public enum VolumeAttributeName: String, CustomStringConvertible, Codable { + case autoenableio = "autoEnableIO" + case productcodes = "productCodes" + public var description: String { return self.rawValue } + } + + public struct ModifyFpgaImageAttributeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProductCodes", location: .body(locationName: "ProductCode"), required: false, type: .structure), + AWSShapeMember(label: "UserIds", location: .body(locationName: "UserId"), required: false, type: .structure), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "FpgaImageId", required: true, type: .string), + AWSShapeMember(label: "UserGroups", location: .body(locationName: "UserGroup"), required: false, type: .structure), + AWSShapeMember(label: "LoadPermission", required: false, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "Attribute", required: false, type: .enum), + AWSShapeMember(label: "OperationType", required: false, type: .enum), + AWSShapeMember(label: "Description", required: false, type: .string) ] - public let item: [ReservedInstancesConfiguration]? + /// One or more product codes. After you add a product code to an AFI, it can't be removed. This parameter is valid only when modifying the productCodes attribute. + public let productCodes: ProductCodeStringList? + /// One or more AWS account IDs. This parameter is valid only when modifying the loadPermission attribute. + public let userIds: UserIdStringList? + /// A name for the AFI. + public let name: String? + /// The ID of the AFI. + public let fpgaImageId: String + /// One or more user groups. This parameter is valid only when modifying the loadPermission attribute. + public let userGroups: UserGroupStringList? + /// The load permission for the AFI. + public let loadPermission: LoadPermissionModifications? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The name of the attribute. + public let attribute: FpgaImageAttributeName? + /// The operation type. + public let operationType: OperationType? + /// A description for the AFI. + public let description: String? - public init(item: [ReservedInstancesConfiguration]? = nil) { - self.item = item + public init(productCodes: ProductCodeStringList? = nil, userIds: UserIdStringList? = nil, name: String? = nil, fpgaImageId: String, userGroups: UserGroupStringList? = nil, loadPermission: LoadPermissionModifications? = nil, dryRun: Bool? = nil, attribute: FpgaImageAttributeName? = nil, operationType: OperationType? = nil, description: String? = nil) { + self.productCodes = productCodes + self.userIds = userIds + self.name = name + self.fpgaImageId = fpgaImageId + self.userGroups = userGroups + self.loadPermission = loadPermission + self.dryRun = dryRun + self.attribute = attribute + self.operationType = operationType + self.description = description } private enum CodingKeys: String, CodingKey { - case item = "item" + case productCodes = "ProductCode" + case userIds = "UserId" + case name = "Name" + case fpgaImageId = "FpgaImageId" + case userGroups = "UserGroup" + case loadPermission = "LoadPermission" + case dryRun = "DryRun" + case attribute = "Attribute" + case operationType = "OperationType" + case description = "Description" } } - public enum VolumeAttributeName: String, CustomStringConvertible, Codable { - case autoenableio = "autoEnableIO" - case productcodes = "productCodes" - public var description: String { return self.rawValue } - } - public struct ImportVolumeResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConversionTask", location: .body(locationName: "conversionTask"), required: false, type: .structure) ] /// Information about the conversion task. @@ -15212,74 +18414,23 @@ extension Ec2 { } } - public struct VpnConnection: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Options", location: .body(locationName: "options"), required: false, type: .structure), - AWSShapeMember(label: "CustomerGatewayId", location: .body(locationName: "customerGatewayId"), required: false, type: .string), - AWSShapeMember(label: "Routes", location: .body(locationName: "routes"), required: false, type: .structure), - AWSShapeMember(label: "VpnConnectionId", location: .body(locationName: "vpnConnectionId"), required: false, type: .string), - AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), - AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), - AWSShapeMember(label: "VgwTelemetry", location: .body(locationName: "vgwTelemetry"), required: false, type: .structure), - AWSShapeMember(label: "CustomerGatewayConfiguration", location: .body(locationName: "customerGatewayConfiguration"), required: false, type: .string), - AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), - AWSShapeMember(label: "VpnGatewayId", location: .body(locationName: "vpnGatewayId"), required: false, type: .string) + public struct ReservedInstancesConfigurationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The VPN connection options. - public let options: VpnConnectionOptions? - /// The ID of the customer gateway at your end of the VPN connection. - public let customerGatewayId: String? - /// The static routes associated with the VPN connection. - public let routes: VpnStaticRouteList? - /// The ID of the VPN connection. - public let vpnConnectionId: String? - /// The current state of the VPN connection. - public let state: VpnState? - /// Any tags assigned to the VPN connection. - public let tags: TagList? - /// Information about the VPN tunnel. - public let vgwTelemetry: VgwTelemetryList? - /// The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the CreateVpnConnection response; however, it's present in the DescribeVpnConnections response only if the VPN connection is in the pending or available state. - public let customerGatewayConfiguration: String? - /// The type of VPN connection. - public let `type`: GatewayType? - /// The ID of the virtual private gateway at the AWS side of the VPN connection. - public let vpnGatewayId: String? + public let item: [ReservedInstancesConfiguration]? - public init(options: VpnConnectionOptions? = nil, customerGatewayId: String? = nil, routes: VpnStaticRouteList? = nil, vpnConnectionId: String? = nil, state: VpnState? = nil, tags: TagList? = nil, vgwTelemetry: VgwTelemetryList? = nil, customerGatewayConfiguration: String? = nil, type: GatewayType? = nil, vpnGatewayId: String? = nil) { - self.options = options - self.customerGatewayId = customerGatewayId - self.routes = routes - self.vpnConnectionId = vpnConnectionId - self.state = state - self.tags = tags - self.vgwTelemetry = vgwTelemetry - self.customerGatewayConfiguration = customerGatewayConfiguration - self.`type` = `type` - self.vpnGatewayId = vpnGatewayId + public init(item: [ReservedInstancesConfiguration]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case options = "options" - case customerGatewayId = "customerGatewayId" - case routes = "routes" - case vpnConnectionId = "vpnConnectionId" - case state = "state" - case tags = "tagSet" - case vgwTelemetry = "vgwTelemetry" - case customerGatewayConfiguration = "customerGatewayConfiguration" - case `type` = "type" - case vpnGatewayId = "vpnGatewayId" + case item = "item" } } - public enum PlacementStrategy: String, CustomStringConvertible, Codable { - case cluster = "cluster" - public var description: String { return self.rawValue } - } - public struct Address: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NetworkInterfaceOwnerId", location: .body(locationName: "networkInterfaceOwnerId"), required: false, type: .string), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: false, type: .string), @@ -15329,15 +18480,21 @@ extension Ec2 { } } + public enum PlacementStrategy: String, CustomStringConvertible, Codable { + case cluster = "cluster" + case spread = "spread" + public var description: String { return self.rawValue } + } + public struct DescribeVpnGatewaysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpnGatewayIds", location: .body(locationName: "VpnGatewayId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] /// One or more virtual private gateway IDs. Default: Describes all your virtual private gateways. public let vpnGatewayIds: VpnGatewayIdStringList? - /// One or more filters. attachment.state - The current state of the attachment between the gateway and the VPC (attaching | attached | detaching | detached). attachment.vpc-id - The ID of an attached VPC. availability-zone - The Availability Zone for the virtual private gateway (if applicable). state - The state of the virtual private gateway (pending | available | deleting | deleted). tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. type - The type of virtual private gateway. Currently the only supported type is ipsec.1. vpn-gateway-id - The ID of the virtual private gateway. + /// One or more filters. amazon-side-asn - The Autonomous System Number (ASN) for the Amazon side of the gateway. attachment.state - The current state of the attachment between the gateway and the VPC (attaching | attached | detaching | detached). attachment.vpc-id - The ID of an attached VPC. availability-zone - The Availability Zone for the virtual private gateway (if applicable). state - The state of the virtual private gateway (pending | available | deleting | deleted). tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. type - The type of virtual private gateway. Currently the only supported type is ipsec.1. vpn-gateway-id - The ID of the virtual private gateway. public let filters: FilterList? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -15364,7 +18521,7 @@ extension Ec2 { } public struct TerminateInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: true, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -15384,13 +18541,13 @@ extension Ec2 { } } - public struct ReasonCodesList: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ImportImageTaskList: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] - public let item: [ReportInstanceReasonCodes]? + public let item: [ImportImageTask]? - public init(item: [ReportInstanceReasonCodes]? = nil) { + public init(item: [ImportImageTask]? = nil) { self.item = item } @@ -15399,23 +18556,24 @@ extension Ec2 { } } - public struct ImportImageTaskList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct PurchaseReservedInstancesOfferingResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedInstancesId", location: .body(locationName: "reservedInstancesId"), required: false, type: .string) ] - public let item: [ImportImageTask]? + /// The IDs of the purchased Reserved Instances. + public let reservedInstancesId: String? - public init(item: [ImportImageTask]? = nil) { - self.item = item + public init(reservedInstancesId: String? = nil) { + self.reservedInstancesId = reservedInstancesId } private enum CodingKeys: String, CodingKey { - case item = "item" + case reservedInstancesId = "reservedInstancesId" } } public struct NetworkAclAssociationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [NetworkAclAssociation]? @@ -15429,45 +18587,147 @@ extension Ec2 { } } - public struct PurchaseReservedInstancesOfferingResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReservedInstancesId", location: .body(locationName: "reservedInstancesId"), required: false, type: .string) + public struct ReasonCodesList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The IDs of the purchased Reserved Instances. - public let reservedInstancesId: String? + public let item: [ReportInstanceReasonCodes]? + + public init(item: [ReportInstanceReasonCodes]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct CreateNetworkAclRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// The ID of the VPC. + public let vpcId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(vpcId: String, dryRun: Bool? = nil) { + self.vpcId = vpcId + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case vpcId = "vpcId" + case dryRun = "dryRun" + } + } + + public struct ModifyVpcEndpointConnectionNotificationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReturnValue", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// Returns true if the request succeeds; otherwise, it returns an error. + public let returnValue: Bool? + + public init(returnValue: Bool? = nil) { + self.returnValue = returnValue + } + + private enum CodingKeys: String, CodingKey { + case returnValue = "return" + } + } + + public struct BundleTaskError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .string), + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + /// The error code. + public let code: String? + /// The error message. + public let message: String? - public init(reservedInstancesId: String? = nil) { - self.reservedInstancesId = reservedInstancesId + public init(code: String? = nil, message: String? = nil) { + self.code = code + self.message = message } private enum CodingKeys: String, CodingKey { - case reservedInstancesId = "reservedInstancesId" + case code = "code" + case message = "message" } } - public struct CreateNetworkAclRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + public struct VpnConnection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Options", location: .body(locationName: "options"), required: false, type: .structure), + AWSShapeMember(label: "CustomerGatewayId", location: .body(locationName: "customerGatewayId"), required: false, type: .string), + AWSShapeMember(label: "Routes", location: .body(locationName: "routes"), required: false, type: .structure), + AWSShapeMember(label: "VpnConnectionId", location: .body(locationName: "vpnConnectionId"), required: false, type: .string), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), + AWSShapeMember(label: "Category", location: .body(locationName: "category"), required: false, type: .string), + AWSShapeMember(label: "VgwTelemetry", location: .body(locationName: "vgwTelemetry"), required: false, type: .structure), + AWSShapeMember(label: "CustomerGatewayConfiguration", location: .body(locationName: "customerGatewayConfiguration"), required: false, type: .string), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "VpnGatewayId", location: .body(locationName: "vpnGatewayId"), required: false, type: .string) ] - /// The ID of the VPC. - public let vpcId: String - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? + /// The VPN connection options. + public let options: VpnConnectionOptions? + /// The ID of the customer gateway at your end of the VPN connection. + public let customerGatewayId: String? + /// The static routes associated with the VPN connection. + public let routes: VpnStaticRouteList? + /// The ID of the VPN connection. + public let vpnConnectionId: String? + /// The current state of the VPN connection. + public let state: VpnState? + /// Any tags assigned to the VPN connection. + public let tags: TagList? + /// The category of the VPN connection. A value of VPN indicates an AWS VPN connection. A value of VPN-Classic indicates an AWS Classic VPN connection. For more information, see AWS Managed VPN Categories in the Amazon Virtual Private Cloud User Guide. + public let category: String? + /// Information about the VPN tunnel. + public let vgwTelemetry: VgwTelemetryList? + /// The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the CreateVpnConnection response; however, it's present in the DescribeVpnConnections response only if the VPN connection is in the pending or available state. + public let customerGatewayConfiguration: String? + /// The type of VPN connection. + public let `type`: GatewayType? + /// The ID of the virtual private gateway at the AWS side of the VPN connection. + public let vpnGatewayId: String? - public init(vpcId: String, dryRun: Bool? = nil) { - self.vpcId = vpcId - self.dryRun = dryRun + public init(options: VpnConnectionOptions? = nil, customerGatewayId: String? = nil, routes: VpnStaticRouteList? = nil, vpnConnectionId: String? = nil, state: VpnState? = nil, tags: TagList? = nil, category: String? = nil, vgwTelemetry: VgwTelemetryList? = nil, customerGatewayConfiguration: String? = nil, type: GatewayType? = nil, vpnGatewayId: String? = nil) { + self.options = options + self.customerGatewayId = customerGatewayId + self.routes = routes + self.vpnConnectionId = vpnConnectionId + self.state = state + self.tags = tags + self.category = category + self.vgwTelemetry = vgwTelemetry + self.customerGatewayConfiguration = customerGatewayConfiguration + self.`type` = `type` + self.vpnGatewayId = vpnGatewayId } private enum CodingKeys: String, CodingKey { - case vpcId = "vpcId" - case dryRun = "dryRun" + case options = "options" + case customerGatewayId = "customerGatewayId" + case routes = "routes" + case vpnConnectionId = "vpnConnectionId" + case state = "state" + case tags = "tagSet" + case category = "category" + case vgwTelemetry = "vgwTelemetry" + case customerGatewayConfiguration = "customerGatewayConfiguration" + case `type` = "type" + case vpnGatewayId = "vpnGatewayId" } } public struct DescribeVpnConnectionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpnConnections", location: .body(locationName: "vpnConnectionSet"), required: false, type: .structure) ] /// Information about one or more VPN connections. @@ -15482,8 +18742,29 @@ extension Ec2 { } } + public struct AccountAttribute: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeName", location: .body(locationName: "attributeName"), required: false, type: .string), + AWSShapeMember(label: "AttributeValues", location: .body(locationName: "attributeValueSet"), required: false, type: .structure) + ] + /// The name of the account attribute. + public let attributeName: String? + /// One or more values for the account attribute. + public let attributeValues: AccountAttributeValueList? + + public init(attributeName: String? = nil, attributeValues: AccountAttributeValueList? = nil) { + self.attributeName = attributeName + self.attributeValues = attributeValues + } + + private enum CodingKeys: String, CodingKey { + case attributeName = "attributeName" + case attributeValues = "attributeValueSet" + } + } + public struct ImportInstanceTaskDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Platform", location: .body(locationName: "platform"), required: false, type: .enum), AWSShapeMember(label: "Volumes", location: .body(locationName: "volumes"), required: true, type: .structure), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), @@ -15513,50 +18794,8 @@ extension Ec2 { } } - public struct BundleTaskError: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .string), - AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) - ] - /// The error code. - public let code: String? - /// The error message. - public let message: String? - - public init(code: String? = nil, message: String? = nil) { - self.code = code - self.message = message - } - - private enum CodingKeys: String, CodingKey { - case code = "code" - case message = "message" - } - } - - public struct AccountAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeName", location: .body(locationName: "attributeName"), required: false, type: .string), - AWSShapeMember(label: "AttributeValues", location: .body(locationName: "attributeValueSet"), required: false, type: .structure) - ] - /// The name of the account attribute. - public let attributeName: String? - /// One or more values for the account attribute. - public let attributeValues: AccountAttributeValueList? - - public init(attributeName: String? = nil, attributeValues: AccountAttributeValueList? = nil) { - self.attributeName = attributeName - self.attributeValues = attributeValues - } - - private enum CodingKeys: String, CodingKey { - case attributeName = "attributeName" - case attributeValues = "attributeValueSet" - } - } - public struct PropagatingVgwList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [PropagatingVgw]? @@ -15571,7 +18810,7 @@ extension Ec2 { } public struct ModifyReservedInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesModificationId", location: .body(locationName: "reservedInstancesModificationId"), required: false, type: .string) ] /// The ID for the modification. @@ -15587,7 +18826,7 @@ extension Ec2 { } public struct CreateCustomerGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BgpAsn", required: true, type: .integer), AWSShapeMember(label: "PublicIp", location: .body(locationName: "IpAddress"), required: true, type: .string), AWSShapeMember(label: "Type", required: true, type: .enum), @@ -15618,13 +18857,13 @@ extension Ec2 { } public struct CancelSpotInstanceRequestsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "SpotInstanceRequestIds", location: .body(locationName: "SpotInstanceRequestId"), required: true, type: .structure) ] /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// One or more Spot instance request IDs. + /// One or more Spot Instance request IDs. public let spotInstanceRequestIds: SpotInstanceRequestIdList public init(dryRun: Bool? = nil, spotInstanceRequestIds: SpotInstanceRequestIdList) { @@ -15646,7 +18885,7 @@ extension Ec2 { } public struct DescribeEgressOnlyInternetGatewaysResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "EgressOnlyInternetGateways", location: .body(locationName: "egressOnlyInternetGatewaySet"), required: false, type: .structure) ] @@ -15667,7 +18906,7 @@ extension Ec2 { } public struct CreateSecurityGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupName", required: true, type: .string), AWSShapeMember(label: "VpcId", required: false, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), @@ -15697,44 +18936,49 @@ extension Ec2 { } } - public struct SubnetList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct DescribeImageAttributeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Attribute", required: true, type: .enum), + AWSShapeMember(label: "ImageId", required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] - public let item: [Subnet]? + /// The AMI attribute. Note: Depending on your account privileges, the blockDeviceMapping attribute may return a Client.AuthFailure error. If this happens, use DescribeImages to get information about the block device mapping for the AMI. + public let attribute: ImageAttributeName + /// The ID of the AMI. + public let imageId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? - public init(item: [Subnet]? = nil) { - self.item = item + public init(attribute: ImageAttributeName, imageId: String, dryRun: Bool? = nil) { + self.attribute = attribute + self.imageId = imageId + self.dryRun = dryRun } private enum CodingKeys: String, CodingKey { - case item = "item" + case attribute = "Attribute" + case imageId = "ImageId" + case dryRun = "dryRun" } } - public struct MoveAddressToVpcRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: true, type: .string) + public struct SubnetList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// The Elastic IP address. - public let publicIp: String + public let item: [Subnet]? - public init(dryRun: Bool? = nil, publicIp: String) { - self.dryRun = dryRun - self.publicIp = publicIp + public init(item: [Subnet]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case dryRun = "dryRun" - case publicIp = "publicIp" + case item = "item" } } public struct DescribeSpotFleetRequestHistoryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastEvaluatedTime", location: .body(locationName: "lastEvaluatedTime"), required: true, type: .timestamp), AWSShapeMember(label: "StartTime", location: .body(locationName: "startTime"), required: true, type: .timestamp), AWSShapeMember(label: "HistoryRecords", location: .body(locationName: "historyRecordSet"), required: true, type: .structure), @@ -15745,11 +18989,11 @@ extension Ec2 { public let lastEvaluatedTime: TimeStamp /// The starting date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). public let startTime: TimeStamp - /// Information about the events in the history of the Spot fleet request. + /// Information about the events in the history of the Spot Fleet request. public let historyRecords: HistoryRecords /// The token required to retrieve the next set of results. This value is null when there are no more results to return. public let nextToken: String? - /// The ID of the Spot fleet request. + /// The ID of the Spot Fleet request. public let spotFleetRequestId: String public init(lastEvaluatedTime: TimeStamp, startTime: TimeStamp, historyRecords: HistoryRecords, nextToken: String? = nil, spotFleetRequestId: String) { @@ -15770,7 +19014,7 @@ extension Ec2 { } public struct CreateInternetGatewayResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InternetGateway", location: .body(locationName: "internetGateway"), required: false, type: .structure) ] /// Information about the Internet gateway. @@ -15785,34 +19029,29 @@ extension Ec2 { } } - public struct DescribeImageAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Attribute", required: true, type: .enum), - AWSShapeMember(label: "ImageId", required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + public struct MoveAddressToVpcRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: true, type: .string) ] - /// The AMI attribute. Note: Depending on your account privileges, the blockDeviceMapping attribute may return a Client.AuthFailure error. If this happens, use DescribeImages to get information about the block device mapping for the AMI. - public let attribute: ImageAttributeName - /// The ID of the AMI. - public let imageId: String /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? + /// The Elastic IP address. + public let publicIp: String - public init(attribute: ImageAttributeName, imageId: String, dryRun: Bool? = nil) { - self.attribute = attribute - self.imageId = imageId + public init(dryRun: Bool? = nil, publicIp: String) { self.dryRun = dryRun + self.publicIp = publicIp } private enum CodingKeys: String, CodingKey { - case attribute = "Attribute" - case imageId = "ImageId" case dryRun = "dryRun" + case publicIp = "publicIp" } } public struct HostList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Host]? @@ -15826,8 +19065,29 @@ extension Ec2 { } } + public struct DeleteKeyPairRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KeyName", required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// The name of the key pair. + public let keyName: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(keyName: String, dryRun: Bool? = nil) { + self.keyName = keyName + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case keyName = "KeyName" + case dryRun = "dryRun" + } + } + public struct ReplaceNetworkAclEntryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CidrBlock", location: .body(locationName: "cidrBlock"), required: false, type: .string), AWSShapeMember(label: "IcmpTypeCode", location: .body(locationName: "Icmp"), required: false, type: .structure), AWSShapeMember(label: "RuleNumber", location: .body(locationName: "ruleNumber"), required: true, type: .integer), @@ -15887,85 +19147,106 @@ extension Ec2 { } } - public struct DeleteKeyPairRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "KeyName", required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + public struct IamInstanceProfileAssociationSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The name of the key pair. - public let keyName: String - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? + public let item: [IamInstanceProfileAssociation]? - public init(keyName: String, dryRun: Bool? = nil) { - self.keyName = keyName - self.dryRun = dryRun + public init(item: [IamInstanceProfileAssociation]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case keyName = "KeyName" - case dryRun = "dryRun" + case item = "item" } } - public struct IamInstanceProfileAssociationSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct LoadPermission: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserId", location: .body(locationName: "userId"), required: false, type: .string), + AWSShapeMember(label: "Group", location: .body(locationName: "group"), required: false, type: .enum) ] - public let item: [IamInstanceProfileAssociation]? + /// The AWS account ID. + public let userId: String? + /// The name of the group. + public let group: PermissionGroup? - public init(item: [IamInstanceProfileAssociation]? = nil) { - self.item = item + public init(userId: String? = nil, group: PermissionGroup? = nil) { + self.userId = userId + self.group = group + } + + private enum CodingKeys: String, CodingKey { + case userId = "userId" + case group = "group" + } + } + + public struct DescribeFpgaImageAttributeResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FpgaImageAttribute", location: .body(locationName: "fpgaImageAttribute"), required: false, type: .structure) + ] + /// Information about the attribute. + public let fpgaImageAttribute: FpgaImageAttribute? + + public init(fpgaImageAttribute: FpgaImageAttribute? = nil) { + self.fpgaImageAttribute = fpgaImageAttribute } private enum CodingKeys: String, CodingKey { - case item = "item" + case fpgaImageAttribute = "fpgaImageAttribute" } } public struct EbsBlockDevice: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VolumeType", location: .body(locationName: "volumeType"), required: false, type: .enum), + AWSShapeMember(label: "Encrypted", location: .body(locationName: "encrypted"), required: false, type: .boolean), AWSShapeMember(label: "SnapshotId", location: .body(locationName: "snapshotId"), required: false, type: .string), AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), AWSShapeMember(label: "VolumeSize", location: .body(locationName: "volumeSize"), required: false, type: .integer), - AWSShapeMember(label: "VolumeType", location: .body(locationName: "volumeType"), required: false, type: .enum), AWSShapeMember(label: "Iops", location: .body(locationName: "iops"), required: false, type: .integer), - AWSShapeMember(label: "Encrypted", location: .body(locationName: "encrypted"), required: false, type: .boolean) + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) ] + /// The volume type: gp2, io1, st1, sc1, or standard. Default: standard + public let volumeType: VolumeType? + /// Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value. This is because only blank volumes can be encrypted on creation. + public let encrypted: Bool? /// The ID of the snapshot. public let snapshotId: String? /// Indicates whether the EBS volume is deleted on instance termination. public let deleteOnTermination: Bool? /// The size of the volume, in GiB. Constraints: 1-16384 for General Purpose SSD (gp2), 4-16384 for Provisioned IOPS SSD (io1), 500-16384 for Throughput Optimized HDD (st1), 500-16384 for Cold HDD (sc1), and 1-1024 for Magnetic (standard) volumes. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size. public let volumeSize: Int32? - /// The volume type: gp2, io1, st1, sc1, or standard. Default: standard - public let volumeType: VolumeType? /// The number of I/O operations per second (IOPS) that the volume supports. For io1, this represents the number of IOPS that are provisioned for the volume. For gp2, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide. Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for gp2 volumes. Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes. public let iops: Int32? - /// Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption. - public let encrypted: Bool? + /// ID for a user-managed CMK under which the EBS volume is encrypted. Note: This parameter is only supported on BlockDeviceMapping objects called by RunInstances, RequestSpotFleet, and RequestSpotInstances. + public let kmsKeyId: String? - public init(snapshotId: String? = nil, deleteOnTermination: Bool? = nil, volumeSize: Int32? = nil, volumeType: VolumeType? = nil, iops: Int32? = nil, encrypted: Bool? = nil) { + public init(volumeType: VolumeType? = nil, encrypted: Bool? = nil, snapshotId: String? = nil, deleteOnTermination: Bool? = nil, volumeSize: Int32? = nil, iops: Int32? = nil, kmsKeyId: String? = nil) { + self.volumeType = volumeType + self.encrypted = encrypted self.snapshotId = snapshotId self.deleteOnTermination = deleteOnTermination self.volumeSize = volumeSize - self.volumeType = volumeType self.iops = iops - self.encrypted = encrypted + self.kmsKeyId = kmsKeyId } private enum CodingKeys: String, CodingKey { + case volumeType = "volumeType" + case encrypted = "encrypted" case snapshotId = "snapshotId" case deleteOnTermination = "deleteOnTermination" case volumeSize = "volumeSize" - case volumeType = "volumeType" case iops = "iops" - case encrypted = "encrypted" + case kmsKeyId = "KmsKeyId" } } public struct DescribeExportTasksResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExportTasks", location: .body(locationName: "exportTaskSet"), required: false, type: .structure) ] /// Information about the export tasks. @@ -15986,40 +19267,29 @@ extension Ec2 { public var description: String { return self.rawValue } } - public struct CreateVpcPeeringConnectionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcPeeringConnection", location: .body(locationName: "vpcPeeringConnection"), required: false, type: .structure) - ] - /// Information about the VPC peering connection. - public let vpcPeeringConnection: VpcPeeringConnection? - - public init(vpcPeeringConnection: VpcPeeringConnection? = nil) { - self.vpcPeeringConnection = vpcPeeringConnection - } - - private enum CodingKeys: String, CodingKey { - case vpcPeeringConnection = "vpcPeeringConnection" - } + public enum VpcEndpointType: String, CustomStringConvertible, Codable { + case interface = "Interface" + case gateway = "Gateway" + public var description: String { return self.rawValue } } - public struct IpRange: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CidrIp", location: .body(locationName: "cidrIp"), required: false, type: .string) + public struct GroupIdStringList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "groupId", required: false, type: .list) ] - /// The IPv4 CIDR range. You can either specify a CIDR range or a source security group, not both. To specify a single IPv4 address, use the /32 prefix. - public let cidrIp: String? + public let groupId: [String]? - public init(cidrIp: String? = nil) { - self.cidrIp = cidrIp + public init(groupId: [String]? = nil) { + self.groupId = groupId } private enum CodingKeys: String, CodingKey { - case cidrIp = "cidrIp" + case groupId = "groupId" } } public struct DhcpConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", location: .body(locationName: "key"), required: false, type: .string), AWSShapeMember(label: "Values", location: .body(locationName: "valueSet"), required: false, type: .structure) ] @@ -16040,7 +19310,7 @@ extension Ec2 { } public struct CancelConversionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "ConversionTaskId", location: .body(locationName: "conversionTaskId"), required: true, type: .string), AWSShapeMember(label: "ReasonMessage", location: .body(locationName: "reasonMessage"), required: false, type: .string) @@ -16065,23 +19335,60 @@ extension Ec2 { } } - public struct GroupIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "groupId", required: false, type: .list) + public struct CreateVpcPeeringConnectionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcPeeringConnection", location: .body(locationName: "vpcPeeringConnection"), required: false, type: .structure) ] - public let groupId: [String]? + /// Information about the VPC peering connection. + public let vpcPeeringConnection: VpcPeeringConnection? - public init(groupId: [String]? = nil) { - self.groupId = groupId + public init(vpcPeeringConnection: VpcPeeringConnection? = nil) { + self.vpcPeeringConnection = vpcPeeringConnection } private enum CodingKeys: String, CodingKey { - case groupId = "groupId" + case vpcPeeringConnection = "vpcPeeringConnection" + } + } + + public struct LaunchTemplateConfigList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [LaunchTemplateConfig]? + + public init(item: [LaunchTemplateConfig]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct IpRange: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CidrIp", location: .body(locationName: "cidrIp"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// The IPv4 CIDR range. You can either specify a CIDR range or a source security group, not both. To specify a single IPv4 address, use the /32 prefix length. + public let cidrIp: String? + /// A description for the security group rule that references this IPv4 address range. Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* + public let description: String? + + public init(cidrIp: String? = nil, description: String? = nil) { + self.cidrIp = cidrIp + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case cidrIp = "cidrIp" + case description = "description" } } public struct SpotInstanceRequestIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SpotInstanceRequestId", required: false, type: .list) ] public let spotInstanceRequestId: [String]? @@ -16096,7 +19403,7 @@ extension Ec2 { } public struct TagSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", location: .body(locationName: "Tag"), required: false, type: .structure), AWSShapeMember(label: "ResourceType", location: .body(locationName: "resourceType"), required: false, type: .enum) ] @@ -16116,34 +19423,34 @@ extension Ec2 { } } - public struct ModifyInstancePlacementResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + public struct NetworkInterfaceIpv6AddressesList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// Is true if the request succeeds, and an error otherwise. - public let `return`: Bool? + public let item: [NetworkInterfaceIpv6Address]? - public init(return: Bool? = nil) { - self.`return` = `return` + public init(item: [NetworkInterfaceIpv6Address]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case `return` = "return" + case item = "item" } } - public struct NetworkInterfaceIpv6AddressesList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct ModifyInstancePlacementResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] - public let item: [NetworkInterfaceIpv6Address]? + /// Is true if the request succeeds, and an error otherwise. + public let `return`: Bool? - public init(item: [NetworkInterfaceIpv6Address]? = nil) { - self.item = item + public init(return: Bool? = nil) { + self.`return` = `return` } private enum CodingKeys: String, CodingKey { - case item = "item" + case `return` = "return" } } @@ -16154,7 +19461,7 @@ extension Ec2 { } public struct UnsuccessfulItemSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [UnsuccessfulItem]? @@ -16168,34 +19475,8 @@ extension Ec2 { } } - public struct DescribeVpcAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcId", required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "Attribute", required: true, type: .enum) - ] - /// The ID of the VPC. - public let vpcId: String - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// The VPC attribute. - public let attribute: VpcAttributeName - - public init(vpcId: String, dryRun: Bool? = nil, attribute: VpcAttributeName) { - self.vpcId = vpcId - self.dryRun = dryRun - self.attribute = attribute - } - - private enum CodingKeys: String, CodingKey { - case vpcId = "VpcId" - case dryRun = "dryRun" - case attribute = "Attribute" - } - } - public struct ReservedInstancesModification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesIds", location: .body(locationName: "reservedInstancesSet"), required: false, type: .structure), AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .string), AWSShapeMember(label: "EffectiveDate", location: .body(locationName: "effectiveDate"), required: false, type: .timestamp), @@ -16250,8 +19531,101 @@ extension Ec2 { } } + public struct DescribeVpcAttributeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcId", required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "Attribute", required: true, type: .enum) + ] + /// The ID of the VPC. + public let vpcId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The VPC attribute. + public let attribute: VpcAttributeName + + public init(vpcId: String, dryRun: Bool? = nil, attribute: VpcAttributeName) { + self.vpcId = vpcId + self.dryRun = dryRun + self.attribute = attribute + } + + private enum CodingKeys: String, CodingKey { + case vpcId = "VpcId" + case dryRun = "dryRun" + case attribute = "Attribute" + } + } + + public struct FpgaImageAttribute: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProductCodes", location: .body(locationName: "productCodes"), required: false, type: .structure), + AWSShapeMember(label: "LoadPermissions", location: .body(locationName: "loadPermissions"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "FpgaImageId", location: .body(locationName: "fpgaImageId"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// One or more product codes. + public let productCodes: ProductCodeList? + /// One or more load permissions. + public let loadPermissions: LoadPermissionList? + /// The name of the AFI. + public let name: String? + /// The ID of the AFI. + public let fpgaImageId: String? + /// The description of the AFI. + public let description: String? + + public init(productCodes: ProductCodeList? = nil, loadPermissions: LoadPermissionList? = nil, name: String? = nil, fpgaImageId: String? = nil, description: String? = nil) { + self.productCodes = productCodes + self.loadPermissions = loadPermissions + self.name = name + self.fpgaImageId = fpgaImageId + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case productCodes = "productCodes" + case loadPermissions = "loadPermissions" + case name = "name" + case fpgaImageId = "fpgaImageId" + case description = "description" + } + } + + public struct AllowedPrincipalSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [AllowedPrincipal]? + + public init(item: [AllowedPrincipal]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct DeleteNetworkInterfacePermissionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// Returns true if the request succeeds, otherwise returns an error. + public let `return`: Bool? + + public init(return: Bool? = nil) { + self.`return` = `return` + } + + private enum CodingKeys: String, CodingKey { + case `return` = "return" + } + } + public struct DescribeAvailabilityZonesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", location: .body(locationName: "availabilityZoneInfo"), required: false, type: .structure) ] /// Information about one or more Availability Zones. @@ -16267,7 +19641,7 @@ extension Ec2 { } public struct RejectVpcPeeringConnectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VpcPeeringConnectionId", location: .body(locationName: "vpcPeeringConnectionId"), required: true, type: .string) ] @@ -16288,7 +19662,7 @@ extension Ec2 { } public struct NetworkInterfacePrivateIpAddressList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [NetworkInterfacePrivateIpAddress]? @@ -16303,7 +19677,7 @@ extension Ec2 { } public struct ReplaceIamInstanceProfileAssociationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamInstanceProfileAssociation", location: .body(locationName: "iamInstanceProfileAssociation"), required: false, type: .structure) ] /// Information about the IAM instance profile association. @@ -16319,7 +19693,7 @@ extension Ec2 { } public struct CreateImageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImageId", location: .body(locationName: "imageId"), required: false, type: .string) ] /// The ID of the new AMI. @@ -16334,8 +19708,24 @@ extension Ec2 { } } + public struct LaunchTemplatesMonitoringRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Enabled", required: false, type: .boolean) + ] + /// Specify true to enable detailed monitoring. Otherwise, basic monitoring is enabled. + public let enabled: Bool? + + public init(enabled: Bool? = nil) { + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case enabled = "Enabled" + } + } + public struct ImportVolumeTaskDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Image", location: .body(locationName: "image"), required: true, type: .structure), AWSShapeMember(label: "BytesConverted", location: .body(locationName: "bytesConverted"), required: true, type: .long), AWSShapeMember(label: "Volume", location: .body(locationName: "volume"), required: true, type: .structure), @@ -16370,8 +19760,29 @@ extension Ec2 { } } + public struct UnsuccessfulInstanceCreditSpecificationItem: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), + AWSShapeMember(label: "Error", location: .body(locationName: "error"), required: false, type: .structure) + ] + /// The ID of the instance. + public let instanceId: String? + /// The applicable error for the T2 instance whose credit option for CPU usage was not modified. + public let error: UnsuccessfulInstanceCreditSpecificationItemError? + + public init(instanceId: String? = nil, error: UnsuccessfulInstanceCreditSpecificationItemError? = nil) { + self.instanceId = instanceId + self.error = error + } + + private enum CodingKeys: String, CodingKey { + case instanceId = "instanceId" + case error = "error" + } + } + public struct IpRanges: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -16386,7 +19797,7 @@ extension Ec2 { } public struct NetworkInterfaceAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PublicIp", location: .body(locationName: "publicIp"), required: false, type: .string), AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: false, type: .string), AWSShapeMember(label: "IpOwnerId", location: .body(locationName: "ipOwnerId"), required: false, type: .string), @@ -16422,7 +19833,7 @@ extension Ec2 { } public struct ScheduledInstanceRecurrenceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OccurrenceDays", location: .body(locationName: "OccurrenceDay"), required: false, type: .structure), AWSShapeMember(label: "Frequency", required: false, type: .string), AWSShapeMember(label: "OccurrenceUnit", required: false, type: .string), @@ -16449,16 +19860,31 @@ extension Ec2 { } private enum CodingKeys: String, CodingKey { - case occurrenceDays = "OccurrenceDay" - case frequency = "Frequency" - case occurrenceUnit = "OccurrenceUnit" - case occurrenceRelativeToEnd = "OccurrenceRelativeToEnd" - case interval = "Interval" + case occurrenceDays = "OccurrenceDay" + case frequency = "Frequency" + case occurrenceUnit = "OccurrenceUnit" + case occurrenceRelativeToEnd = "OccurrenceRelativeToEnd" + case interval = "Interval" + } + } + + public struct TargetGroups: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [TargetGroup]? + + public init(item: [TargetGroup]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" } } public struct Filter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Values", location: .body(locationName: "Value"), required: false, type: .structure) ] @@ -16478,29 +19904,8 @@ extension Ec2 { } } - public struct MonitorInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: true, type: .structure), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) - ] - /// One or more instance IDs. - public let instanceIds: InstanceIdStringList - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - - public init(instanceIds: InstanceIdStringList, dryRun: Bool? = nil) { - self.instanceIds = instanceIds - self.dryRun = dryRun - } - - private enum CodingKeys: String, CodingKey { - case instanceIds = "InstanceId" - case dryRun = "dryRun" - } - } - public struct LaunchSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "blockDeviceMapping"), required: false, type: .structure), AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "UserData", location: .body(locationName: "userData"), required: false, type: .string), @@ -16517,7 +19922,7 @@ extension Ec2 { AWSShapeMember(label: "Placement", location: .body(locationName: "placement"), required: false, type: .structure), AWSShapeMember(label: "RamdiskId", location: .body(locationName: "ramdiskId"), required: false, type: .string) ] - /// One or more block device mapping entries. Although you can specify encrypted EBS volumes in this block device mapping for your Spot Instances, these volumes are not encrypted. + /// One or more block device mapping entries. public let blockDeviceMappings: BlockDeviceMappingList? /// The ID of the subnet in which to launch the instance. public let subnetId: String? @@ -16584,11 +19989,32 @@ extension Ec2 { } } + public struct MonitorInstancesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: true, type: .structure), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// One or more instance IDs. + public let instanceIds: InstanceIdStringList + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(instanceIds: InstanceIdStringList, dryRun: Bool? = nil) { + self.instanceIds = instanceIds + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case instanceIds = "InstanceId" + case dryRun = "dryRun" + } + } + public struct RequestSpotInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SpotInstanceRequests", location: .body(locationName: "spotInstanceRequestSet"), required: false, type: .structure) ] - /// One or more Spot instance requests. + /// One or more Spot Instance requests. public let spotInstanceRequests: SpotInstanceRequestList? public init(spotInstanceRequests: SpotInstanceRequestList? = nil) { @@ -16600,8 +20026,23 @@ extension Ec2 { } } + public struct ElasticGpuIdSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [String]? + + public init(item: [String]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct CreateNetworkAclEntryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CidrBlock", location: .body(locationName: "cidrBlock"), required: false, type: .string), AWSShapeMember(label: "IcmpTypeCode", location: .body(locationName: "Icmp"), required: false, type: .structure), AWSShapeMember(label: "RuleNumber", location: .body(locationName: "ruleNumber"), required: true, type: .integer), @@ -16661,8 +20102,29 @@ extension Ec2 { } } + public struct LoadPermissionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserId", required: false, type: .string), + AWSShapeMember(label: "Group", required: false, type: .enum) + ] + /// The AWS account ID. + public let userId: String? + /// The name of the group. + public let group: PermissionGroup? + + public init(userId: String? = nil, group: PermissionGroup? = nil) { + self.userId = userId + self.group = group + } + + private enum CodingKeys: String, CodingKey { + case userId = "UserId" + case group = "Group" + } + } + public struct CancelBundleTaskResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BundleTask", location: .body(locationName: "bundleInstanceTask"), required: false, type: .structure) ] /// Information about the bundle task. @@ -16678,7 +20140,7 @@ extension Ec2 { } public struct VpcPeeringConnection: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RequesterVpcInfo", location: .body(locationName: "requesterVpcInfo"), required: false, type: .structure), AWSShapeMember(label: "AccepterVpcInfo", location: .body(locationName: "accepterVpcInfo"), required: false, type: .structure), AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .structure), @@ -16718,14 +20180,36 @@ extension Ec2 { } } + public struct CreateDefaultSubnetResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Subnet", location: .body(locationName: "subnet"), required: false, type: .structure) + ] + /// Information about the subnet. + public let subnet: Subnet? + + public init(subnet: Subnet? = nil) { + self.subnet = subnet + } + + private enum CodingKeys: String, CodingKey { + case subnet = "subnet" + } + } + public enum ShutdownBehavior: String, CustomStringConvertible, Codable { case stop = "stop" case terminate = "terminate" public var description: String { return self.rawValue } } + public enum ConnectionNotificationState: String, CustomStringConvertible, Codable { + case enabled = "Enabled" + case disabled = "Disabled" + public var description: String { return self.rawValue } + } + public struct ScheduledInstanceAvailabilitySet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ScheduledInstanceAvailability]? @@ -16740,7 +20224,7 @@ extension Ec2 { } public struct RegisterImageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImageId", location: .body(locationName: "imageId"), required: false, type: .string) ] /// The ID of the newly registered AMI. @@ -16755,8 +20239,119 @@ extension Ec2 { } } + public struct RequestLaunchTemplateData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "BlockDeviceMapping"), required: false, type: .structure), + AWSShapeMember(label: "TagSpecifications", location: .body(locationName: "TagSpecification"), required: false, type: .structure), + AWSShapeMember(label: "DisableApiTermination", required: false, type: .boolean), + AWSShapeMember(label: "UserData", required: false, type: .string), + AWSShapeMember(label: "EbsOptimized", required: false, type: .boolean), + AWSShapeMember(label: "KernelId", required: false, type: .string), + AWSShapeMember(label: "SecurityGroupIds", location: .body(locationName: "SecurityGroupId"), required: false, type: .structure), + AWSShapeMember(label: "Monitoring", required: false, type: .structure), + AWSShapeMember(label: "InstanceType", required: false, type: .enum), + AWSShapeMember(label: "CreditSpecification", required: false, type: .structure), + AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "SecurityGroup"), required: false, type: .structure), + AWSShapeMember(label: "InstanceMarketOptions", required: false, type: .structure), + AWSShapeMember(label: "KeyName", required: false, type: .string), + AWSShapeMember(label: "IamInstanceProfile", required: false, type: .structure), + AWSShapeMember(label: "ImageId", required: false, type: .string), + AWSShapeMember(label: "InstanceInitiatedShutdownBehavior", required: false, type: .enum), + AWSShapeMember(label: "Placement", required: false, type: .structure), + AWSShapeMember(label: "RamDiskId", required: false, type: .string), + AWSShapeMember(label: "NetworkInterfaces", location: .body(locationName: "NetworkInterface"), required: false, type: .structure), + AWSShapeMember(label: "ElasticGpuSpecifications", location: .body(locationName: "ElasticGpuSpecification"), required: false, type: .structure) + ] + /// The block device mapping. Supplying both a snapshot ID and an encryption value as arguments for block-device mapping results in an error. This is because only blank volumes can be encrypted on start, and these are not created from a snapshot. If a snapshot is the basis for the volume, it contains data by definition and its encryption status cannot be changed using this action. + public let blockDeviceMappings: LaunchTemplateBlockDeviceMappingRequestList? + /// The tags to apply to the resources during launch. You can tag instances and volumes. The specified tags are applied to all instances or volumes that are created during launch. + public let tagSpecifications: LaunchTemplateTagSpecificationRequestList? + /// If set to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API. To change this attribute to false after launch, use ModifyInstanceAttribute. + public let disableApiTermination: Bool? + /// The user data to make available to the instance. For more information, see Running Commands on Your Linux Instance at Launch (Linux) and Adding User Data (Windows). If you are using a command line tool, base64-encoding is performed for you and you can load the text from a file. Otherwise, you must provide base64-encoded text. + public let userData: String? + /// Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. + public let ebsOptimized: Bool? + /// The ID of the kernel. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User Provided Kernels in the Amazon Elastic Compute Cloud User Guide. + public let kernelId: String? + /// One or more security group IDs. You can create a security group using CreateSecurityGroup. You cannot specify both a security group ID and security name in the same request. + public let securityGroupIds: SecurityGroupIdStringList? + /// The monitoring for the instance. + public let monitoring: LaunchTemplatesMonitoringRequest? + /// The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide. + public let instanceType: InstanceType? + /// The credit option for CPU usage of the instance. Valid for T2 instances only. + public let creditSpecification: CreditSpecificationRequest? + /// [EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead. You cannot specify both a security group ID and security name in the same request. + public let securityGroups: SecurityGroupStringList? + /// The market (purchasing) option for the instances. + public let instanceMarketOptions: LaunchTemplateInstanceMarketOptionsRequest? + /// The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair. If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. + public let keyName: String? + /// The IAM instance profile. + public let iamInstanceProfile: LaunchTemplateIamInstanceProfileSpecificationRequest? + /// The ID of the AMI, which you can get by using DescribeImages. + public let imageId: String? + /// Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). Default: stop + public let instanceInitiatedShutdownBehavior: ShutdownBehavior? + /// The placement for the instance. + public let placement: LaunchTemplatePlacementRequest? + /// The ID of the RAM disk. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User Provided Kernels in the Amazon Elastic Compute Cloud User Guide. + public let ramDiskId: String? + /// One or more network interfaces. + public let networkInterfaces: LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList? + /// An elastic GPU to associate with the instance. + public let elasticGpuSpecifications: ElasticGpuSpecificationList? + + public init(blockDeviceMappings: LaunchTemplateBlockDeviceMappingRequestList? = nil, tagSpecifications: LaunchTemplateTagSpecificationRequestList? = nil, disableApiTermination: Bool? = nil, userData: String? = nil, ebsOptimized: Bool? = nil, kernelId: String? = nil, securityGroupIds: SecurityGroupIdStringList? = nil, monitoring: LaunchTemplatesMonitoringRequest? = nil, instanceType: InstanceType? = nil, creditSpecification: CreditSpecificationRequest? = nil, securityGroups: SecurityGroupStringList? = nil, instanceMarketOptions: LaunchTemplateInstanceMarketOptionsRequest? = nil, keyName: String? = nil, iamInstanceProfile: LaunchTemplateIamInstanceProfileSpecificationRequest? = nil, imageId: String? = nil, instanceInitiatedShutdownBehavior: ShutdownBehavior? = nil, placement: LaunchTemplatePlacementRequest? = nil, ramDiskId: String? = nil, networkInterfaces: LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList? = nil, elasticGpuSpecifications: ElasticGpuSpecificationList? = nil) { + self.blockDeviceMappings = blockDeviceMappings + self.tagSpecifications = tagSpecifications + self.disableApiTermination = disableApiTermination + self.userData = userData + self.ebsOptimized = ebsOptimized + self.kernelId = kernelId + self.securityGroupIds = securityGroupIds + self.monitoring = monitoring + self.instanceType = instanceType + self.creditSpecification = creditSpecification + self.securityGroups = securityGroups + self.instanceMarketOptions = instanceMarketOptions + self.keyName = keyName + self.iamInstanceProfile = iamInstanceProfile + self.imageId = imageId + self.instanceInitiatedShutdownBehavior = instanceInitiatedShutdownBehavior + self.placement = placement + self.ramDiskId = ramDiskId + self.networkInterfaces = networkInterfaces + self.elasticGpuSpecifications = elasticGpuSpecifications + } + + private enum CodingKeys: String, CodingKey { + case blockDeviceMappings = "BlockDeviceMapping" + case tagSpecifications = "TagSpecification" + case disableApiTermination = "DisableApiTermination" + case userData = "UserData" + case ebsOptimized = "EbsOptimized" + case kernelId = "KernelId" + case securityGroupIds = "SecurityGroupId" + case monitoring = "Monitoring" + case instanceType = "InstanceType" + case creditSpecification = "CreditSpecification" + case securityGroups = "SecurityGroup" + case instanceMarketOptions = "InstanceMarketOptions" + case keyName = "KeyName" + case iamInstanceProfile = "IamInstanceProfile" + case imageId = "ImageId" + case instanceInitiatedShutdownBehavior = "InstanceInitiatedShutdownBehavior" + case placement = "Placement" + case ramDiskId = "RamDiskId" + case networkInterfaces = "NetworkInterface" + case elasticGpuSpecifications = "ElasticGpuSpecification" + } + } + public struct PriceScheduleSpecificationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [PriceScheduleSpecification]? @@ -16770,8 +20365,18 @@ extension Ec2 { } } + public enum PrincipalType: String, CustomStringConvertible, Codable { + case all = "All" + case service = "Service" + case organizationunit = "OrganizationUnit" + case account = "Account" + case user = "User" + case role = "Role" + public var description: String { return self.rawValue } + } + public struct ClientData: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Comment", required: false, type: .string), AWSShapeMember(label: "UploadStart", required: false, type: .timestamp), AWSShapeMember(label: "UploadEnd", required: false, type: .timestamp), @@ -16801,24 +20406,17 @@ extension Ec2 { } } - public struct RejectVpcPeeringConnectionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) - ] - /// Returns true if the request succeeds; otherwise, it returns an error. - public let `return`: Bool? - - public init(return: Bool? = nil) { - self.`return` = `return` - } - - private enum CodingKeys: String, CodingKey { - case `return` = "return" - } + public enum EventCode: String, CustomStringConvertible, Codable { + case instanceReboot = "instance-reboot" + case systemReboot = "system-reboot" + case systemMaintenance = "system-maintenance" + case instanceRetirement = "instance-retirement" + case instanceStop = "instance-stop" + public var description: String { return self.rawValue } } public struct DiskImageDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Format", location: .body(locationName: "format"), required: true, type: .enum), AWSShapeMember(label: "Checksum", location: .body(locationName: "checksum"), required: false, type: .string), AWSShapeMember(label: "ImportManifestUrl", location: .body(locationName: "importManifestUrl"), required: true, type: .string), @@ -16848,17 +20446,24 @@ extension Ec2 { } } - public enum EventCode: String, CustomStringConvertible, Codable { - case instanceReboot = "instance-reboot" - case systemReboot = "system-reboot" - case systemMaintenance = "system-maintenance" - case instanceRetirement = "instance-retirement" - case instanceStop = "instance-stop" - public var description: String { return self.rawValue } + public struct RejectVpcPeeringConnectionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// Returns true if the request succeeds; otherwise, it returns an error. + public let `return`: Bool? + + public init(return: Bool? = nil) { + self.`return` = `return` + } + + private enum CodingKeys: String, CodingKey { + case `return` = "return" + } } public struct CreateSubnetResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subnet", location: .body(locationName: "subnet"), required: false, type: .structure) ] /// Information about the subnet. @@ -16873,23 +20478,8 @@ extension Ec2 { } } - public struct PrivateIpAddressConfigSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PrivateIpAddressConfigSet", required: false, type: .list) - ] - public let privateIpAddressConfigSet: [ScheduledInstancesPrivateIpAddressConfig]? - - public init(privateIpAddressConfigSet: [ScheduledInstancesPrivateIpAddressConfig]? = nil) { - self.privateIpAddressConfigSet = privateIpAddressConfigSet - } - - private enum CodingKeys: String, CodingKey { - case privateIpAddressConfigSet = "PrivateIpAddressConfigSet" - } - } - public struct GroupNameStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupName", required: false, type: .list) ] public let groupName: [String]? @@ -16903,70 +20493,49 @@ extension Ec2 { } } - public struct GetConsoleOutputResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Timestamp", location: .body(locationName: "timestamp"), required: false, type: .timestamp), - AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), - AWSShapeMember(label: "Output", location: .body(locationName: "output"), required: false, type: .string) - ] - /// The time the output was last updated. - public let timestamp: TimeStamp? - /// The ID of the instance. - public let instanceId: String? - /// The console output, Base64-encoded. If using a command line tool, the tool decodes the output for you. - public let output: String? - - public init(timestamp: TimeStamp? = nil, instanceId: String? = nil, output: String? = nil) { - self.timestamp = timestamp - self.instanceId = instanceId - self.output = output - } - - private enum CodingKeys: String, CodingKey { - case timestamp = "timestamp" - case instanceId = "instanceId" - case output = "output" - } - } - - public struct InstanceIdSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct PrivateIpAddressConfigSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PrivateIpAddressConfigSet", required: false, type: .list) ] - public let item: [String]? + public let privateIpAddressConfigSet: [ScheduledInstancesPrivateIpAddressConfig]? - public init(item: [String]? = nil) { - self.item = item + public init(privateIpAddressConfigSet: [ScheduledInstancesPrivateIpAddressConfig]? = nil) { + self.privateIpAddressConfigSet = privateIpAddressConfigSet } private enum CodingKeys: String, CodingKey { - case item = "item" + case privateIpAddressConfigSet = "PrivateIpAddressConfigSet" } } - public struct DisassociateRouteTableRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: true, type: .string) + public struct GetConsoleOutputResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Timestamp", location: .body(locationName: "timestamp"), required: false, type: .timestamp), + AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), + AWSShapeMember(label: "Output", location: .body(locationName: "output"), required: false, type: .string) ] - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// The association ID representing the current association between the route table and subnet. - public let associationId: String + /// The time the output was last updated. + public let timestamp: TimeStamp? + /// The ID of the instance. + public let instanceId: String? + /// The console output, Base64-encoded. If using a command line tool, the tool decodes the output for you. + public let output: String? - public init(dryRun: Bool? = nil, associationId: String) { - self.dryRun = dryRun - self.associationId = associationId + public init(timestamp: TimeStamp? = nil, instanceId: String? = nil, output: String? = nil) { + self.timestamp = timestamp + self.instanceId = instanceId + self.output = output } private enum CodingKeys: String, CodingKey { - case dryRun = "dryRun" - case associationId = "associationId" + case timestamp = "timestamp" + case instanceId = "instanceId" + case output = "output" } } public struct AssignIpv6AddressesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ipv6AddressCount", location: .body(locationName: "ipv6AddressCount"), required: false, type: .integer), AWSShapeMember(label: "Ipv6Addresses", location: .body(locationName: "ipv6Addresses"), required: false, type: .structure), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: true, type: .string) @@ -16992,7 +20561,7 @@ extension Ec2 { } public struct DescribeImportSnapshotTasksResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "ImportSnapshotTasks", location: .body(locationName: "importSnapshotTaskSet"), required: false, type: .structure) ] @@ -17012,8 +20581,44 @@ extension Ec2 { } } + public struct InstanceIdSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [String]? + + public init(item: [String]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct DisassociateRouteTableRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: true, type: .string) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The association ID representing the current association between the route table and subnet. + public let associationId: String + + public init(dryRun: Bool? = nil, associationId: String) { + self.dryRun = dryRun + self.associationId = associationId + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "dryRun" + case associationId = "associationId" + } + } + public struct VpnConnectionIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpnConnectionId", required: false, type: .list) ] public let vpnConnectionId: [String]? @@ -17027,8 +20632,23 @@ extension Ec2 { } } + public struct LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceNetworkInterfaceSpecification", required: false, type: .list) + ] + public let instanceNetworkInterfaceSpecification: [LaunchTemplateInstanceNetworkInterfaceSpecificationRequest]? + + public init(instanceNetworkInterfaceSpecification: [LaunchTemplateInstanceNetworkInterfaceSpecificationRequest]? = nil) { + self.instanceNetworkInterfaceSpecification = instanceNetworkInterfaceSpecification + } + + private enum CodingKeys: String, CodingKey { + case instanceNetworkInterfaceSpecification = "InstanceNetworkInterfaceSpecification" + } + } + public struct VolumeStatusInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Details", location: .body(locationName: "details"), required: false, type: .structure), AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum) ] @@ -17049,7 +20669,7 @@ extension Ec2 { } public struct DisableVpcClassicLinkDnsSupportRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: false, type: .string) ] /// The ID of the VPC. @@ -17065,7 +20685,7 @@ extension Ec2 { } public struct RouteTableList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [RouteTable]? @@ -17079,8 +20699,29 @@ extension Ec2 { } } + public struct DeleteFpgaImageRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FpgaImageId", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// The ID of the AFI. + public let fpgaImageId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(fpgaImageId: String, dryRun: Bool? = nil) { + self.fpgaImageId = fpgaImageId + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case fpgaImageId = "FpgaImageId" + case dryRun = "DryRun" + } + } + public struct DescribeSubnetsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subnets", location: .body(locationName: "subnetSet"), required: false, type: .structure) ] /// Information about one or more subnets. @@ -17095,39 +20736,39 @@ extension Ec2 { } } - public struct DeleteVpcPeeringConnectionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + public struct StaleSecurityGroupSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// Returns true if the request succeeds; otherwise, it returns an error. - public let `return`: Bool? + public let item: [StaleSecurityGroup]? - public init(return: Bool? = nil) { - self.`return` = `return` + public init(item: [StaleSecurityGroup]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case `return` = "return" + case item = "item" } } - public struct StaleSecurityGroupSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct DeleteVpcEndpointsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure) ] - public let item: [StaleSecurityGroup]? + /// Information about the VPC endpoints that were not successfully deleted. + public let unsuccessful: UnsuccessfulItemSet? - public init(item: [StaleSecurityGroup]? = nil) { - self.item = item + public init(unsuccessful: UnsuccessfulItemSet? = nil) { + self.unsuccessful = unsuccessful } private enum CodingKeys: String, CodingKey { - case item = "item" + case unsuccessful = "unsuccessful" } } public struct UserBucketDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3Bucket", location: .body(locationName: "s3Bucket"), required: false, type: .string), AWSShapeMember(label: "S3Key", location: .body(locationName: "s3Key"), required: false, type: .string) ] @@ -17148,10 +20789,10 @@ extension Ec2 { } public struct RequestSpotFleetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SpotFleetRequestId", location: .body(locationName: "spotFleetRequestId"), required: true, type: .string) ] - /// The ID of the Spot fleet request. + /// The ID of the Spot Fleet request. public let spotFleetRequestId: String public init(spotFleetRequestId: String) { @@ -17163,24 +20804,45 @@ extension Ec2 { } } - public struct DeleteVpcEndpointsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure) + public struct DeleteVpcPeeringConnectionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) ] - /// Information about the endpoints that were not successfully deleted. - public let unsuccessful: UnsuccessfulItemSet? + /// Returns true if the request succeeds; otherwise, it returns an error. + public let `return`: Bool? - public init(unsuccessful: UnsuccessfulItemSet? = nil) { - self.unsuccessful = unsuccessful + public init(return: Bool? = nil) { + self.`return` = `return` } private enum CodingKeys: String, CodingKey { - case unsuccessful = "unsuccessful" + case `return` = "return" + } + } + + public struct ScheduledInstancesIamInstanceProfile: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string) + ] + /// The name. + public let name: String? + /// The Amazon Resource Name (ARN). + public let arn: String? + + public init(name: String? = nil, arn: String? = nil) { + self.name = name + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case arn = "Arn" } } public struct DescribeEgressOnlyInternetGatewaysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "DryRun", required: false, type: .boolean), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -17210,34 +20872,8 @@ extension Ec2 { } } - public struct AttachInternetGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), - AWSShapeMember(label: "InternetGatewayId", location: .body(locationName: "internetGatewayId"), required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) - ] - /// The ID of the VPC. - public let vpcId: String - /// The ID of the Internet gateway. - public let internetGatewayId: String - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - - public init(vpcId: String, internetGatewayId: String, dryRun: Bool? = nil) { - self.vpcId = vpcId - self.internetGatewayId = internetGatewayId - self.dryRun = dryRun - } - - private enum CodingKeys: String, CodingKey { - case vpcId = "vpcId" - case internetGatewayId = "internetGatewayId" - case dryRun = "dryRun" - } - } - public struct CopySnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", location: .body(locationName: "snapshotId"), required: false, type: .string) ] /// The ID of the new snapshot. @@ -17253,7 +20889,7 @@ extension Ec2 { } public struct VpcIpv6CidrBlockAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ipv6CidrBlock", location: .body(locationName: "ipv6CidrBlock"), required: false, type: .string), AWSShapeMember(label: "Ipv6CidrBlockState", location: .body(locationName: "ipv6CidrBlockState"), required: false, type: .structure), AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: false, type: .string) @@ -17278,29 +20914,121 @@ extension Ec2 { } } - public struct ScheduledInstancesIamInstanceProfile: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "Arn", required: false, type: .string) + public struct AttachInternetGatewayRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), + AWSShapeMember(label: "InternetGatewayId", location: .body(locationName: "internetGatewayId"), required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] - /// The name. - public let name: String? - /// The Amazon Resource Name (ARN). - public let arn: String? + /// The ID of the VPC. + public let vpcId: String + /// The ID of the Internet gateway. + public let internetGatewayId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? - public init(name: String? = nil, arn: String? = nil) { - self.name = name - self.arn = arn + public init(vpcId: String, internetGatewayId: String, dryRun: Bool? = nil) { + self.vpcId = vpcId + self.internetGatewayId = internetGatewayId + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case vpcId = "vpcId" + case internetGatewayId = "internetGatewayId" + case dryRun = "dryRun" + } + } + + public struct LaunchTemplatePlacement: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Affinity", location: .body(locationName: "affinity"), required: false, type: .string), + AWSShapeMember(label: "SpreadDomain", location: .body(locationName: "spreadDomain"), required: false, type: .string), + AWSShapeMember(label: "HostId", location: .body(locationName: "hostId"), required: false, type: .string), + AWSShapeMember(label: "AvailabilityZone", location: .body(locationName: "availabilityZone"), required: false, type: .string), + AWSShapeMember(label: "Tenancy", location: .body(locationName: "tenancy"), required: false, type: .enum), + AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: false, type: .string) + ] + /// The affinity setting for the instance on the Dedicated Host. + public let affinity: String? + /// Reserved for future use. + public let spreadDomain: String? + /// The ID of the Dedicated Host for the instance. + public let hostId: String? + /// The Availability Zone of the instance. + public let availabilityZone: String? + /// The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. + public let tenancy: Tenancy? + /// The name of the placement group for the instance. + public let groupName: String? + + public init(affinity: String? = nil, spreadDomain: String? = nil, hostId: String? = nil, availabilityZone: String? = nil, tenancy: Tenancy? = nil, groupName: String? = nil) { + self.affinity = affinity + self.spreadDomain = spreadDomain + self.hostId = hostId + self.availabilityZone = availabilityZone + self.tenancy = tenancy + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case affinity = "affinity" + case spreadDomain = "spreadDomain" + case hostId = "hostId" + case availabilityZone = "availabilityZone" + case tenancy = "tenancy" + case groupName = "groupName" + } + } + + public struct LaunchTemplateEbsBlockDeviceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VolumeType", required: false, type: .enum), + AWSShapeMember(label: "Encrypted", required: false, type: .boolean), + AWSShapeMember(label: "SnapshotId", required: false, type: .string), + AWSShapeMember(label: "DeleteOnTermination", required: false, type: .boolean), + AWSShapeMember(label: "VolumeSize", required: false, type: .integer), + AWSShapeMember(label: "Iops", required: false, type: .integer), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) + ] + /// The volume type. + public let volumeType: VolumeType? + /// Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value. + public let encrypted: Bool? + /// The ID of the snapshot. + public let snapshotId: String? + /// Indicates whether the EBS volume is deleted on instance termination. + public let deleteOnTermination: Bool? + /// The size of the volume, in GiB. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size. + public let volumeSize: Int32? + /// The number of I/O operations per second (IOPS) that the volume supports. For io1, this represents the number of IOPS that are provisioned for the volume. For gp2, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide. Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes. + public let iops: Int32? + /// The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption. + public let kmsKeyId: String? + + public init(volumeType: VolumeType? = nil, encrypted: Bool? = nil, snapshotId: String? = nil, deleteOnTermination: Bool? = nil, volumeSize: Int32? = nil, iops: Int32? = nil, kmsKeyId: String? = nil) { + self.volumeType = volumeType + self.encrypted = encrypted + self.snapshotId = snapshotId + self.deleteOnTermination = deleteOnTermination + self.volumeSize = volumeSize + self.iops = iops + self.kmsKeyId = kmsKeyId } private enum CodingKeys: String, CodingKey { - case name = "Name" - case arn = "Arn" + case volumeType = "VolumeType" + case encrypted = "Encrypted" + case snapshotId = "SnapshotId" + case deleteOnTermination = "DeleteOnTermination" + case volumeSize = "VolumeSize" + case iops = "Iops" + case kmsKeyId = "KmsKeyId" } } public struct ImportInstanceVolumeDetailSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ImportInstanceVolumeDetailItem]? @@ -17315,7 +21043,7 @@ extension Ec2 { } public struct AcceptVpcPeeringConnectionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcPeeringConnection", location: .body(locationName: "vpcPeeringConnection"), required: false, type: .structure) ] /// Information about the VPC peering connection. @@ -17331,7 +21059,7 @@ extension Ec2 { } public struct ImportSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImportTaskId", location: .body(locationName: "importTaskId"), required: false, type: .string), AWSShapeMember(label: "SnapshotTaskDetail", location: .body(locationName: "snapshotTaskDetail"), required: false, type: .structure), AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) @@ -17356,71 +21084,56 @@ extension Ec2 { } } - public struct SnapshotDiskContainer: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserBucket", required: false, type: .structure), - AWSShapeMember(label: "Format", required: false, type: .string), - AWSShapeMember(label: "Url", required: false, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string) + public struct DescribeDhcpOptionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DhcpOptions", location: .body(locationName: "dhcpOptionsSet"), required: false, type: .structure) ] - /// The S3 bucket for the disk image. - public let userBucket: UserBucket? - /// The format of the disk image being imported. Valid values: RAW | VHD | VMDK | OVA - public let format: String? - /// The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..). - public let url: String? - /// The description of the disk image being imported. - public let description: String? + /// Information about one or more DHCP options sets. + public let dhcpOptions: DhcpOptionsList? - public init(userBucket: UserBucket? = nil, format: String? = nil, url: String? = nil, description: String? = nil) { - self.userBucket = userBucket - self.format = format - self.url = url - self.description = description + public init(dhcpOptions: DhcpOptionsList? = nil) { + self.dhcpOptions = dhcpOptions } private enum CodingKeys: String, CodingKey { - case userBucket = "UserBucket" - case format = "Format" - case url = "Url" - case description = "Description" + case dhcpOptions = "dhcpOptionsSet" } } - public struct DeleteFlowLogsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure) + public struct ModifyFpgaImageAttributeResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FpgaImageAttribute", location: .body(locationName: "fpgaImageAttribute"), required: false, type: .structure) ] - /// Information about the flow logs that could not be deleted successfully. - public let unsuccessful: UnsuccessfulItemSet? + /// Information about the attribute. + public let fpgaImageAttribute: FpgaImageAttribute? - public init(unsuccessful: UnsuccessfulItemSet? = nil) { - self.unsuccessful = unsuccessful + public init(fpgaImageAttribute: FpgaImageAttribute? = nil) { + self.fpgaImageAttribute = fpgaImageAttribute } private enum CodingKeys: String, CodingKey { - case unsuccessful = "unsuccessful" + case fpgaImageAttribute = "fpgaImageAttribute" } } - public struct DescribeDhcpOptionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DhcpOptions", location: .body(locationName: "dhcpOptionsSet"), required: false, type: .structure) + public struct DeleteFlowLogsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure) ] - /// Information about one or more DHCP options sets. - public let dhcpOptions: DhcpOptionsList? + /// Information about the flow logs that could not be deleted successfully. + public let unsuccessful: UnsuccessfulItemSet? - public init(dhcpOptions: DhcpOptionsList? = nil) { - self.dhcpOptions = dhcpOptions + public init(unsuccessful: UnsuccessfulItemSet? = nil) { + self.unsuccessful = unsuccessful } private enum CodingKeys: String, CodingKey { - case dhcpOptions = "dhcpOptionsSet" + case unsuccessful = "unsuccessful" } } public struct UserIdGroupPairSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [UserIdGroupPair]? @@ -17435,7 +21148,7 @@ extension Ec2 { } public struct DeleteRouteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RouteTableId", location: .body(locationName: "routeTableId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "DestinationCidrBlock", location: .body(locationName: "destinationCidrBlock"), required: false, type: .string), @@ -17465,8 +21178,39 @@ extension Ec2 { } } + public struct SnapshotDiskContainer: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserBucket", required: false, type: .structure), + AWSShapeMember(label: "Format", required: false, type: .string), + AWSShapeMember(label: "Url", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The S3 bucket for the disk image. + public let userBucket: UserBucket? + /// The format of the disk image being imported. Valid values: RAW | VHD | VMDK | OVA + public let format: String? + /// The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..). + public let url: String? + /// The description of the disk image being imported. + public let description: String? + + public init(userBucket: UserBucket? = nil, format: String? = nil, url: String? = nil, description: String? = nil) { + self.userBucket = userBucket + self.format = format + self.url = url + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case userBucket = "UserBucket" + case format = "Format" + case url = "Url" + case description = "Description" + } + } + public struct IamInstanceProfileAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Timestamp", location: .body(locationName: "timestamp"), required: false, type: .timestamp), AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: false, type: .string), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), @@ -17501,8 +21245,34 @@ extension Ec2 { } } + public struct DescribeElasticGpusResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "ElasticGpuSet", location: .body(locationName: "elasticGpuSet"), required: false, type: .structure), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + /// Information about the Elastic GPUs. + public let elasticGpuSet: ElasticGpuSet? + /// The total number of items to return. If the total number of items available is more than the value specified in max-items then a Next-Token will be provided in the output that you can use to resume pagination. + public let maxResults: Int32? + + public init(nextToken: String? = nil, elasticGpuSet: ElasticGpuSet? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.elasticGpuSet = elasticGpuSet + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case elasticGpuSet = "elasticGpuSet" + case maxResults = "maxResults" + } + } + public struct PeeringConnectionOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AllowEgressFromLocalVpcToRemoteClassicLink", location: .body(locationName: "allowEgressFromLocalVpcToRemoteClassicLink"), required: false, type: .boolean), AWSShapeMember(label: "AllowEgressFromLocalClassicLinkToRemoteVpc", location: .body(locationName: "allowEgressFromLocalClassicLinkToRemoteVpc"), required: false, type: .boolean), AWSShapeMember(label: "AllowDnsResolutionFromRemoteVpc", location: .body(locationName: "allowDnsResolutionFromRemoteVpc"), required: false, type: .boolean) @@ -17527,8 +21297,59 @@ extension Ec2 { } } + public struct LaunchTemplateVersion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateId", location: .body(locationName: "launchTemplateId"), required: false, type: .string), + AWSShapeMember(label: "VersionDescription", location: .body(locationName: "versionDescription"), required: false, type: .string), + AWSShapeMember(label: "LaunchTemplateName", location: .body(locationName: "launchTemplateName"), required: false, type: .string), + AWSShapeMember(label: "VersionNumber", location: .body(locationName: "versionNumber"), required: false, type: .long), + AWSShapeMember(label: "DefaultVersion", location: .body(locationName: "defaultVersion"), required: false, type: .boolean), + AWSShapeMember(label: "LaunchTemplateData", location: .body(locationName: "launchTemplateData"), required: false, type: .structure), + AWSShapeMember(label: "CreateTime", location: .body(locationName: "createTime"), required: false, type: .timestamp), + AWSShapeMember(label: "CreatedBy", location: .body(locationName: "createdBy"), required: false, type: .string) + ] + /// The ID of the launch template. + public let launchTemplateId: String? + /// The description for the version. + public let versionDescription: String? + /// The name of the launch template. + public let launchTemplateName: String? + /// The version number. + public let versionNumber: Int64? + /// Indicates whether the version is the default version. + public let defaultVersion: Bool? + /// Information about the launch template. + public let launchTemplateData: ResponseLaunchTemplateData? + /// The time the version was created. + public let createTime: TimeStamp? + /// The principal that created the version. + public let createdBy: String? + + public init(launchTemplateId: String? = nil, versionDescription: String? = nil, launchTemplateName: String? = nil, versionNumber: Int64? = nil, defaultVersion: Bool? = nil, launchTemplateData: ResponseLaunchTemplateData? = nil, createTime: TimeStamp? = nil, createdBy: String? = nil) { + self.launchTemplateId = launchTemplateId + self.versionDescription = versionDescription + self.launchTemplateName = launchTemplateName + self.versionNumber = versionNumber + self.defaultVersion = defaultVersion + self.launchTemplateData = launchTemplateData + self.createTime = createTime + self.createdBy = createdBy + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateId = "launchTemplateId" + case versionDescription = "versionDescription" + case launchTemplateName = "launchTemplateName" + case versionNumber = "versionNumber" + case defaultVersion = "defaultVersion" + case launchTemplateData = "launchTemplateData" + case createTime = "createTime" + case createdBy = "createdBy" + } + } + public struct DetachVpnGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VpnGatewayId", required: true, type: .string) @@ -17554,7 +21375,7 @@ extension Ec2 { } public struct RouteTableAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "RouteTableId", location: .body(locationName: "routeTableId"), required: false, type: .string), AWSShapeMember(label: "RouteTableAssociationId", location: .body(locationName: "routeTableAssociationId"), required: false, type: .string), @@ -17584,8 +21405,29 @@ extension Ec2 { } } + public struct LaunchTemplateInstanceMarketOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SpotOptions", location: .body(locationName: "spotOptions"), required: false, type: .structure), + AWSShapeMember(label: "MarketType", location: .body(locationName: "marketType"), required: false, type: .enum) + ] + /// The options for Spot Instances. + public let spotOptions: LaunchTemplateSpotMarketOptions? + /// The market type. + public let marketType: MarketType? + + public init(spotOptions: LaunchTemplateSpotMarketOptions? = nil, marketType: MarketType? = nil) { + self.spotOptions = spotOptions + self.marketType = marketType + } + + private enum CodingKeys: String, CodingKey { + case spotOptions = "spotOptions" + case marketType = "marketType" + } + } + public struct ReservedInstancesListingList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ReservedInstancesListing]? @@ -17600,7 +21442,7 @@ extension Ec2 { } public struct UnmonitorInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceIds", location: .body(locationName: "InstanceId"), required: true, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -17620,8 +21462,39 @@ extension Ec2 { } } + public struct DeleteLaunchTemplateVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateId", required: false, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "LaunchTemplateName", required: false, type: .string), + AWSShapeMember(label: "Versions", location: .body(locationName: "LaunchTemplateVersion"), required: true, type: .structure) + ] + /// The ID of the launch template. You must specify either the launch template ID or launch template name in the request. + public let launchTemplateId: String? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The name of the launch template. You must specify either the launch template ID or launch template name in the request. + public let launchTemplateName: String? + /// The version numbers of one or more launch template versions to delete. + public let versions: VersionStringList + + public init(launchTemplateId: String? = nil, dryRun: Bool? = nil, launchTemplateName: String? = nil, versions: VersionStringList) { + self.launchTemplateId = launchTemplateId + self.dryRun = dryRun + self.launchTemplateName = launchTemplateName + self.versions = versions + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateId = "LaunchTemplateId" + case dryRun = "DryRun" + case launchTemplateName = "LaunchTemplateName" + case versions = "LaunchTemplateVersion" + } + } + public struct DescribeExportTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExportTaskIds", location: .body(locationName: "exportTaskId"), required: false, type: .structure) ] /// One or more export task IDs. @@ -17636,8 +21509,24 @@ extension Ec2 { } } + public struct ModifyVpcEndpointServicePermissionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReturnValue", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// Returns true if the request succeeds; otherwise, it returns an error. + public let returnValue: Bool? + + public init(returnValue: Bool? = nil) { + self.returnValue = returnValue + } + + private enum CodingKeys: String, CodingKey { + case returnValue = "return" + } + } + public struct PricingDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Price", location: .body(locationName: "price"), required: false, type: .double), AWSShapeMember(label: "Count", location: .body(locationName: "count"), required: false, type: .integer) ] @@ -17658,7 +21547,7 @@ extension Ec2 { } public struct ConversionIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -17673,7 +21562,7 @@ extension Ec2 { } public struct VolumeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Volume]? @@ -17687,29 +21576,8 @@ extension Ec2 { } } - public struct GetConsoleScreenshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), - AWSShapeMember(label: "ImageData", location: .body(locationName: "imageData"), required: false, type: .string) - ] - /// The ID of the instance. - public let instanceId: String? - /// The data that comprises the image. - public let imageData: String? - - public init(instanceId: String? = nil, imageData: String? = nil) { - self.instanceId = instanceId - self.imageData = imageData - } - - private enum CodingKeys: String, CodingKey { - case instanceId = "instanceId" - case imageData = "imageData" - } - } - public struct DescribeReservedInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesIds", location: .body(locationName: "ReservedInstancesId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), @@ -17744,8 +21612,29 @@ extension Ec2 { } } + public struct GetConsoleScreenshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), + AWSShapeMember(label: "ImageData", location: .body(locationName: "imageData"), required: false, type: .string) + ] + /// The ID of the instance. + public let instanceId: String? + /// The data that comprises the image. + public let imageData: String? + + public init(instanceId: String? = nil, imageData: String? = nil) { + self.instanceId = instanceId + self.imageData = imageData + } + + private enum CodingKeys: String, CodingKey { + case instanceId = "instanceId" + case imageData = "imageData" + } + } + public struct Placement: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Affinity", location: .body(locationName: "affinity"), required: false, type: .string), AWSShapeMember(label: "SpreadDomain", location: .body(locationName: "spreadDomain"), required: false, type: .string), AWSShapeMember(label: "HostId", location: .body(locationName: "hostId"), required: false, type: .string), @@ -17785,33 +21674,137 @@ extension Ec2 { } } + public struct RouteList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [Route]? + + public init(item: [Route]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct VolumeStatusList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VolumeStatusItem]? - public init(item: [VolumeStatusItem]? = nil) { - self.item = item + public init(item: [VolumeStatusItem]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct ElasticGpuAssociation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ElasticGpuId", location: .body(locationName: "elasticGpuId"), required: false, type: .string), + AWSShapeMember(label: "ElasticGpuAssociationTime", location: .body(locationName: "elasticGpuAssociationTime"), required: false, type: .string), + AWSShapeMember(label: "ElasticGpuAssociationState", location: .body(locationName: "elasticGpuAssociationState"), required: false, type: .string), + AWSShapeMember(label: "ElasticGpuAssociationId", location: .body(locationName: "elasticGpuAssociationId"), required: false, type: .string) + ] + /// The ID of the Elastic GPU. + public let elasticGpuId: String? + /// The time the Elastic GPU was associated with the instance. + public let elasticGpuAssociationTime: String? + /// The state of the association between the instance and the Elastic GPU. + public let elasticGpuAssociationState: String? + /// The ID of the association. + public let elasticGpuAssociationId: String? + + public init(elasticGpuId: String? = nil, elasticGpuAssociationTime: String? = nil, elasticGpuAssociationState: String? = nil, elasticGpuAssociationId: String? = nil) { + self.elasticGpuId = elasticGpuId + self.elasticGpuAssociationTime = elasticGpuAssociationTime + self.elasticGpuAssociationState = elasticGpuAssociationState + self.elasticGpuAssociationId = elasticGpuAssociationId + } + + private enum CodingKeys: String, CodingKey { + case elasticGpuId = "elasticGpuId" + case elasticGpuAssociationTime = "elasticGpuAssociationTime" + case elasticGpuAssociationState = "elasticGpuAssociationState" + case elasticGpuAssociationId = "elasticGpuAssociationId" + } + } + + public struct DescribeVpcEndpointServicePermissionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceId", required: true, type: .string), + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The ID of the service. + public let serviceId: String + /// One or more filters. principal - The ARN of the principal. principal-type - The principal type (All | Service | OrganizationUnit | Account | User | Role). + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The token to retrieve the next page of results. + public let nextToken: String? + /// The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. + public let maxResults: Int32? + + public init(serviceId: String, filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.serviceId = serviceId + self.filters = filters + self.dryRun = dryRun + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case serviceId = "ServiceId" + case filters = "Filter" + case dryRun = "DryRun" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct GetLaunchTemplateDataRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceId", required: true, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// The ID of the instance. + public let instanceId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(instanceId: String, dryRun: Bool? = nil) { + self.instanceId = instanceId + self.dryRun = dryRun } private enum CodingKeys: String, CodingKey { - case item = "item" + case instanceId = "InstanceId" + case dryRun = "DryRun" } } - public struct RouteList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct TargetGroupsConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetGroups", location: .body(locationName: "targetGroups"), required: true, type: .structure) ] - public let item: [Route]? + /// One or more target groups. + public let targetGroups: TargetGroups - public init(item: [Route]? = nil) { - self.item = item + public init(targetGroups: TargetGroups) { + self.targetGroups = targetGroups } private enum CodingKeys: String, CodingKey { - case item = "item" + case targetGroups = "targetGroups" } } @@ -17824,7 +21817,7 @@ extension Ec2 { } public struct DescribeStaleSecurityGroupsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StaleSecurityGroupSet", location: .body(locationName: "staleSecurityGroupSet"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] @@ -17845,7 +21838,7 @@ extension Ec2 { } public struct ScheduledInstancesNetworkInterface: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceIndex", required: false, type: .integer), AWSShapeMember(label: "SubnetId", required: false, type: .string), AWSShapeMember(label: "NetworkInterfaceId", required: false, type: .string), @@ -17916,48 +21909,53 @@ extension Ec2 { } public struct UserIdGroupPair: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PeeringStatus", location: .body(locationName: "peeringStatus"), required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserId", location: .body(locationName: "userId"), required: false, type: .string), + AWSShapeMember(label: "PeeringStatus", location: .body(locationName: "peeringStatus"), required: false, type: .string), AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: false, type: .string), + AWSShapeMember(label: "VpcPeeringConnectionId", location: .body(locationName: "vpcPeeringConnectionId"), required: false, type: .string), AWSShapeMember(label: "GroupId", location: .body(locationName: "groupId"), required: false, type: .string), - AWSShapeMember(label: "VpcPeeringConnectionId", location: .body(locationName: "vpcPeeringConnectionId"), required: false, type: .string) + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) ] - /// The status of a VPC peering connection, if applicable. - public let peeringStatus: String? /// The ID of an AWS account. For a referenced security group in another VPC, the account ID of the referenced security group is returned. [EC2-Classic] Required when adding or removing rules that reference a security group in another AWS account. public let userId: String? + /// The status of a VPC peering connection, if applicable. + public let peeringStatus: String? /// The ID of the VPC for the referenced security group, if applicable. public let vpcId: String? /// The name of the security group. In a request, use this parameter for a security group in EC2-Classic or a default VPC only. For a security group in a nondefault VPC, use the security group ID. public let groupName: String? - /// The ID of the security group. - public let groupId: String? /// The ID of the VPC peering connection, if applicable. public let vpcPeeringConnectionId: String? + /// The ID of the security group. + public let groupId: String? + /// A description for the security group rule that references this user ID group pair. Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* + public let description: String? - public init(peeringStatus: String? = nil, userId: String? = nil, vpcId: String? = nil, groupName: String? = nil, groupId: String? = nil, vpcPeeringConnectionId: String? = nil) { - self.peeringStatus = peeringStatus + public init(userId: String? = nil, peeringStatus: String? = nil, vpcId: String? = nil, groupName: String? = nil, vpcPeeringConnectionId: String? = nil, groupId: String? = nil, description: String? = nil) { self.userId = userId + self.peeringStatus = peeringStatus self.vpcId = vpcId self.groupName = groupName - self.groupId = groupId self.vpcPeeringConnectionId = vpcPeeringConnectionId + self.groupId = groupId + self.description = description } private enum CodingKeys: String, CodingKey { - case peeringStatus = "peeringStatus" case userId = "userId" + case peeringStatus = "peeringStatus" case vpcId = "vpcId" case groupName = "groupName" - case groupId = "groupId" case vpcPeeringConnectionId = "vpcPeeringConnectionId" + case groupId = "groupId" + case description = "description" } } public struct DescribeConversionTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "ConversionTaskIds", location: .body(locationName: "conversionTaskId"), required: false, type: .structure) ] @@ -17978,7 +21976,7 @@ extension Ec2 { } public struct ModifySubnetAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MapPublicIpOnLaunch", required: false, type: .structure), AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: true, type: .string), AWSShapeMember(label: "AssignIpv6AddressOnCreation", required: false, type: .structure) @@ -18003,8 +22001,70 @@ extension Ec2 { } } + public struct VpcEndpointConnection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceId", location: .body(locationName: "serviceId"), required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", location: .body(locationName: "creationTimestamp"), required: false, type: .timestamp), + AWSShapeMember(label: "VpcEndpointId", location: .body(locationName: "vpcEndpointId"), required: false, type: .string), + AWSShapeMember(label: "VpcEndpointState", location: .body(locationName: "vpcEndpointState"), required: false, type: .enum), + AWSShapeMember(label: "VpcEndpointOwner", location: .body(locationName: "vpcEndpointOwner"), required: false, type: .string) + ] + /// The ID of the service to which the endpoint is connected. + public let serviceId: String? + /// The date and time the VPC endpoint was created. + public let creationTimestamp: TimeStamp? + /// The ID of the VPC endpoint. + public let vpcEndpointId: String? + /// The state of the VPC endpoint. + public let vpcEndpointState: State? + /// The AWS account ID of the owner of the VPC endpoint. + public let vpcEndpointOwner: String? + + public init(serviceId: String? = nil, creationTimestamp: TimeStamp? = nil, vpcEndpointId: String? = nil, vpcEndpointState: State? = nil, vpcEndpointOwner: String? = nil) { + self.serviceId = serviceId + self.creationTimestamp = creationTimestamp + self.vpcEndpointId = vpcEndpointId + self.vpcEndpointState = vpcEndpointState + self.vpcEndpointOwner = vpcEndpointOwner + } + + private enum CodingKeys: String, CodingKey { + case serviceId = "serviceId" + case creationTimestamp = "creationTimestamp" + case vpcEndpointId = "vpcEndpointId" + case vpcEndpointState = "vpcEndpointState" + case vpcEndpointOwner = "vpcEndpointOwner" + } + } + + public struct DescribeFpgaImageAttributeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "FpgaImageId", required: true, type: .string), + AWSShapeMember(label: "Attribute", required: true, type: .enum) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The ID of the AFI. + public let fpgaImageId: String + /// The AFI attribute. + public let attribute: FpgaImageAttributeName + + public init(dryRun: Bool? = nil, fpgaImageId: String, attribute: FpgaImageAttributeName) { + self.dryRun = dryRun + self.fpgaImageId = fpgaImageId + self.attribute = attribute + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case fpgaImageId = "FpgaImageId" + case attribute = "Attribute" + } + } + public struct PlacementGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), AWSShapeMember(label: "Strategy", location: .body(locationName: "strategy"), required: false, type: .enum), AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: false, type: .string) @@ -18029,8 +22089,23 @@ extension Ec2 { } } + public struct LaunchTemplateBlockDeviceMappingList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [LaunchTemplateBlockDeviceMapping]? + + public init(item: [LaunchTemplateBlockDeviceMapping]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct InstanceBlockDeviceMappingSpecificationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceBlockDeviceMappingSpecification]? @@ -18045,7 +22120,7 @@ extension Ec2 { } public struct AssociateAddressResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: false, type: .string) ] /// [EC2-VPC] The ID that represents the association of the Elastic IP address with an instance. @@ -18061,7 +22136,7 @@ extension Ec2 { } public struct Reservation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RequesterId", location: .body(locationName: "requesterId"), required: false, type: .string), AWSShapeMember(label: "Instances", location: .body(locationName: "instancesSet"), required: false, type: .structure), AWSShapeMember(label: "ReservationId", location: .body(locationName: "reservationId"), required: false, type: .string), @@ -18096,6 +22171,13 @@ extension Ec2 { } } + public enum InstanceInterruptionBehavior: String, CustomStringConvertible, Codable { + case hibernate = "hibernate" + case stop = "stop" + case terminate = "terminate" + public var description: String { return self.rawValue } + } + public enum ReservationState: String, CustomStringConvertible, Codable { case paymentPending = "payment-pending" case paymentFailed = "payment-failed" @@ -18104,56 +22186,114 @@ extension Ec2 { public var description: String { return self.rawValue } } + public struct AllowedPrincipal: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Principal", location: .body(locationName: "principal"), required: false, type: .string), + AWSShapeMember(label: "PrincipalType", location: .body(locationName: "principalType"), required: false, type: .enum) + ] + /// The Amazon Resource Name (ARN) of the principal. + public let principal: String? + /// The type of principal. + public let principalType: PrincipalType? + + public init(principal: String? = nil, principalType: PrincipalType? = nil) { + self.principal = principal + self.principalType = principalType + } + + private enum CodingKeys: String, CodingKey { + case principal = "principal" + case principalType = "principalType" + } + } + + public struct ImageList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [Image]? + + public init(item: [Image]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public enum BundleTaskState: String, CustomStringConvertible, Codable { + case pending = "pending" + case waitingForShutdown = "waiting-for-shutdown" + case bundling = "bundling" + case storing = "storing" + case cancelling = "cancelling" + case complete = "complete" + case failed = "failed" + public var description: String { return self.rawValue } + } + public struct SpotFleetRequestConfigData: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetCapacity", location: .body(locationName: "targetCapacity"), required: true, type: .integer), AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), AWSShapeMember(label: "IamFleetRole", location: .body(locationName: "iamFleetRole"), required: true, type: .string), - AWSShapeMember(label: "SpotPrice", location: .body(locationName: "spotPrice"), required: true, type: .string), + AWSShapeMember(label: "SpotPrice", location: .body(locationName: "spotPrice"), required: false, type: .string), AWSShapeMember(label: "ValidUntil", location: .body(locationName: "validUntil"), required: false, type: .timestamp), + AWSShapeMember(label: "LoadBalancersConfig", location: .body(locationName: "loadBalancersConfig"), required: false, type: .structure), AWSShapeMember(label: "AllocationStrategy", location: .body(locationName: "allocationStrategy"), required: false, type: .enum), + AWSShapeMember(label: "LaunchTemplateConfigs", location: .body(locationName: "launchTemplateConfigs"), required: false, type: .structure), AWSShapeMember(label: "ExcessCapacityTerminationPolicy", location: .body(locationName: "excessCapacityTerminationPolicy"), required: false, type: .enum), AWSShapeMember(label: "ValidFrom", location: .body(locationName: "validFrom"), required: false, type: .timestamp), - AWSShapeMember(label: "LaunchSpecifications", location: .body(locationName: "launchSpecifications"), required: true, type: .structure), + AWSShapeMember(label: "LaunchSpecifications", location: .body(locationName: "launchSpecifications"), required: false, type: .structure), AWSShapeMember(label: "TerminateInstancesWithExpiration", location: .body(locationName: "terminateInstancesWithExpiration"), required: false, type: .boolean), AWSShapeMember(label: "ReplaceUnhealthyInstances", location: .body(locationName: "replaceUnhealthyInstances"), required: false, type: .boolean), AWSShapeMember(label: "FulfilledCapacity", location: .body(locationName: "fulfilledCapacity"), required: false, type: .double), - AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum) + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "InstanceInterruptionBehavior", location: .body(locationName: "instanceInterruptionBehavior"), required: false, type: .enum) ] - /// The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. + /// The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is maintain, you can specify a target capacity of 0 and add capacity later. public let targetCapacity: Int32 /// A unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see Ensuring Idempotency. public let clientToken: String? - /// Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration. + /// Grants the Spot Fleet permission to terminate Spot Instances on your behalf when you cancel its Spot Fleet request using CancelSpotFleetRequests or when the Spot Fleet request expires, if you set terminateInstancesWithExpiration. public let iamFleetRole: String - /// The bid price per unit hour. - public let spotPrice: String - /// The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. + /// The maximum price per unit hour that you are willing to pay for a Spot Instance. The default is the On-Demand price. + public let spotPrice: String? + /// The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot Instance requests are placed or able to fulfill the request. The default end date is 7 days from the current date. public let validUntil: TimeStamp? - /// Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice. + /// One or more Classic Load Balancers and target groups to attach to the Spot Fleet request. Spot Fleet registers the running Spot Instances with the specified Classic Load Balancers and target groups. With Network Load Balancers, Spot Fleet cannot register instances that have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. + public let loadBalancersConfig: LoadBalancersConfig? + /// Indicates how to allocate the target capacity across the Spot pools specified by the Spot Fleet request. The default is lowestPrice. public let allocationStrategy: AllocationStrategy? - /// Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet. + /// The launch template and overrides. + public let launchTemplateConfigs: LaunchTemplateConfigList? + /// Indicates whether running Spot Instances should be terminated if the target capacity of the Spot Fleet request is decreased below the current size of the Spot Fleet. public let excessCapacityTerminationPolicy: ExcessCapacityTerminationPolicy? /// The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. public let validFrom: TimeStamp? - /// Information about the launch specifications for the Spot fleet request. - public let launchSpecifications: LaunchSpecsList - /// Indicates whether running Spot instances should be terminated when the Spot fleet request expires. + /// The launch specifications for the Spot Fleet request. + public let launchSpecifications: LaunchSpecsList? + /// Indicates whether running Spot Instances should be terminated when the Spot Fleet request expires. public let terminateInstancesWithExpiration: Bool? - /// Indicates whether Spot fleet should replace unhealthy instances. + /// Indicates whether Spot Fleet should replace unhealthy instances. public let replaceUnhealthyInstances: Bool? /// The number of units fulfilled by this request compared to the set target capacity. public let fulfilledCapacity: Double? - /// The type of request. Indicates whether the fleet will only request the target capacity or also attempt to maintain it. When you request a certain target capacity, the fleet will only place the required bids. It will not attempt to replenish Spot instances if capacity is diminished, nor will it submit bids in alternative Spot pools if capacity is not available. When you want to maintain a certain target capacity, fleet will place the required bids to meet this target capacity. It will also automatically replenish any interrupted instances. Default: maintain. + /// The type of request. Indicates whether the fleet will only request the target capacity or also attempt to maintain it. When you request a certain target capacity, the fleet will only place the required requests. It will not attempt to replenish Spot Instances if capacity is diminished, nor will it submit requests in alternative Spot pools if capacity is not available. When you want to maintain a certain target capacity, fleet will place the required requests to meet this target capacity. It will also automatically replenish any interrupted instances. Default: maintain. public let `type`: FleetType? + /// The behavior when a Spot Instance is interrupted. The default is terminate. + public let instanceInterruptionBehavior: InstanceInterruptionBehavior? - public init(targetCapacity: Int32, clientToken: String? = nil, iamFleetRole: String, spotPrice: String, validUntil: TimeStamp? = nil, allocationStrategy: AllocationStrategy? = nil, excessCapacityTerminationPolicy: ExcessCapacityTerminationPolicy? = nil, validFrom: TimeStamp? = nil, launchSpecifications: LaunchSpecsList, terminateInstancesWithExpiration: Bool? = nil, replaceUnhealthyInstances: Bool? = nil, fulfilledCapacity: Double? = nil, type: FleetType? = nil) { + public init(targetCapacity: Int32, clientToken: String? = nil, iamFleetRole: String, spotPrice: String? = nil, validUntil: TimeStamp? = nil, loadBalancersConfig: LoadBalancersConfig? = nil, allocationStrategy: AllocationStrategy? = nil, launchTemplateConfigs: LaunchTemplateConfigList? = nil, excessCapacityTerminationPolicy: ExcessCapacityTerminationPolicy? = nil, validFrom: TimeStamp? = nil, launchSpecifications: LaunchSpecsList? = nil, terminateInstancesWithExpiration: Bool? = nil, replaceUnhealthyInstances: Bool? = nil, fulfilledCapacity: Double? = nil, type: FleetType? = nil, instanceInterruptionBehavior: InstanceInterruptionBehavior? = nil) { self.targetCapacity = targetCapacity self.clientToken = clientToken self.iamFleetRole = iamFleetRole self.spotPrice = spotPrice self.validUntil = validUntil + self.loadBalancersConfig = loadBalancersConfig self.allocationStrategy = allocationStrategy + self.launchTemplateConfigs = launchTemplateConfigs self.excessCapacityTerminationPolicy = excessCapacityTerminationPolicy self.validFrom = validFrom self.launchSpecifications = launchSpecifications @@ -18161,6 +22301,7 @@ extension Ec2 { self.replaceUnhealthyInstances = replaceUnhealthyInstances self.fulfilledCapacity = fulfilledCapacity self.`type` = `type` + self.instanceInterruptionBehavior = instanceInterruptionBehavior } private enum CodingKeys: String, CodingKey { @@ -18169,7 +22310,9 @@ extension Ec2 { case iamFleetRole = "iamFleetRole" case spotPrice = "spotPrice" case validUntil = "validUntil" + case loadBalancersConfig = "loadBalancersConfig" case allocationStrategy = "allocationStrategy" + case launchTemplateConfigs = "launchTemplateConfigs" case excessCapacityTerminationPolicy = "excessCapacityTerminationPolicy" case validFrom = "validFrom" case launchSpecifications = "launchSpecifications" @@ -18177,37 +22320,12 @@ extension Ec2 { case replaceUnhealthyInstances = "replaceUnhealthyInstances" case fulfilledCapacity = "fulfilledCapacity" case `type` = "type" + case instanceInterruptionBehavior = "instanceInterruptionBehavior" } } - public struct ImageList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) - ] - public let item: [Image]? - - public init(item: [Image]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "item" - } - } - - public enum BundleTaskState: String, CustomStringConvertible, Codable { - case pending = "pending" - case waitingForShutdown = "waiting-for-shutdown" - case bundling = "bundling" - case storing = "storing" - case cancelling = "cancelling" - case complete = "complete" - case failed = "failed" - public var description: String { return self.rawValue } - } - public struct DeleteInternetGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InternetGatewayId", location: .body(locationName: "internetGatewayId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -18228,7 +22346,7 @@ extension Ec2 { } public struct DescribeFpgaImagesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean), @@ -18268,8 +22386,79 @@ extension Ec2 { } } + public struct LaunchTemplateInstanceNetworkInterfaceSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceIndex", location: .body(locationName: "deviceIndex"), required: false, type: .integer), + AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), + AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "PrivateIpAddress", location: .body(locationName: "privateIpAddress"), required: false, type: .string), + AWSShapeMember(label: "SecondaryPrivateIpAddressCount", location: .body(locationName: "secondaryPrivateIpAddressCount"), required: false, type: .integer), + AWSShapeMember(label: "PrivateIpAddresses", location: .body(locationName: "privateIpAddressesSet"), required: false, type: .structure), + AWSShapeMember(label: "Ipv6AddressCount", location: .body(locationName: "ipv6AddressCount"), required: false, type: .integer), + AWSShapeMember(label: "Ipv6Addresses", location: .body(locationName: "ipv6AddressesSet"), required: false, type: .structure), + AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), + AWSShapeMember(label: "AssociatePublicIpAddress", location: .body(locationName: "associatePublicIpAddress"), required: false, type: .boolean), + AWSShapeMember(label: "Groups", location: .body(locationName: "groupSet"), required: false, type: .structure) + ] + /// The device index for the network interface attachment. + public let deviceIndex: Int32? + /// The ID of the subnet for the network interface. + public let subnetId: String? + /// The ID of the network interface. + public let networkInterfaceId: String? + /// A description for the network interface. + public let description: String? + /// The primary private IPv4 address of the network interface. + public let privateIpAddress: String? + /// The number of secondary private IPv4 addresses for the network interface. + public let secondaryPrivateIpAddressCount: Int32? + /// One or more private IPv4 addresses. + public let privateIpAddresses: PrivateIpAddressSpecificationList? + /// The number of IPv6 addresses for the network interface. + public let ipv6AddressCount: Int32? + /// The IPv6 addresses for the network interface. + public let ipv6Addresses: InstanceIpv6AddressList? + /// Indicates whether the network interface is deleted when the instance is terminated. + public let deleteOnTermination: Bool? + /// Indicates whether to associate a public IPv4 address with eth0 for a new network interface. + public let associatePublicIpAddress: Bool? + /// The IDs of one or more security groups. + public let groups: GroupIdStringList? + + public init(deviceIndex: Int32? = nil, subnetId: String? = nil, networkInterfaceId: String? = nil, description: String? = nil, privateIpAddress: String? = nil, secondaryPrivateIpAddressCount: Int32? = nil, privateIpAddresses: PrivateIpAddressSpecificationList? = nil, ipv6AddressCount: Int32? = nil, ipv6Addresses: InstanceIpv6AddressList? = nil, deleteOnTermination: Bool? = nil, associatePublicIpAddress: Bool? = nil, groups: GroupIdStringList? = nil) { + self.deviceIndex = deviceIndex + self.subnetId = subnetId + self.networkInterfaceId = networkInterfaceId + self.description = description + self.privateIpAddress = privateIpAddress + self.secondaryPrivateIpAddressCount = secondaryPrivateIpAddressCount + self.privateIpAddresses = privateIpAddresses + self.ipv6AddressCount = ipv6AddressCount + self.ipv6Addresses = ipv6Addresses + self.deleteOnTermination = deleteOnTermination + self.associatePublicIpAddress = associatePublicIpAddress + self.groups = groups + } + + private enum CodingKeys: String, CodingKey { + case deviceIndex = "deviceIndex" + case subnetId = "subnetId" + case networkInterfaceId = "networkInterfaceId" + case description = "description" + case privateIpAddress = "privateIpAddress" + case secondaryPrivateIpAddressCount = "secondaryPrivateIpAddressCount" + case privateIpAddresses = "privateIpAddressesSet" + case ipv6AddressCount = "ipv6AddressCount" + case ipv6Addresses = "ipv6AddressesSet" + case deleteOnTermination = "deleteOnTermination" + case associatePublicIpAddress = "associatePublicIpAddress" + case groups = "groupSet" + } + } + public struct ScheduledInstancesBlockDeviceMapping: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NoDevice", required: false, type: .string), AWSShapeMember(label: "VirtualName", required: false, type: .string), AWSShapeMember(label: "DeviceName", required: false, type: .string), @@ -18277,9 +22466,9 @@ extension Ec2 { ] /// Suppresses the specified device included in the block device mapping of the AMI. public let noDevice: String? - /// The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with two available instance store volumes can specify mappings for ephemeral0 and ephemeral1.The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI. + /// The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with two available instance store volumes can specify mappings for ephemeral0 and ephemeral1. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI. public let virtualName: String? - /// The device name exposed to the instance (for example, /dev/sdh or xvdh). + /// The device name (for example, /dev/sdh or xvdh). public let deviceName: String? /// Parameters used to set up EBS volumes automatically when the instance is launched. public let ebs: ScheduledInstancesEbs? @@ -18299,14 +22488,35 @@ extension Ec2 { } } + public struct DescribeLaunchTemplateVersionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "LaunchTemplateVersions", location: .body(locationName: "launchTemplateVersionSet"), required: false, type: .structure) + ] + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + /// Information about the launch template versions. + public let launchTemplateVersions: LaunchTemplateVersionSet? + + public init(nextToken: String? = nil, launchTemplateVersions: LaunchTemplateVersionSet? = nil) { + self.nextToken = nextToken + self.launchTemplateVersions = launchTemplateVersions + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case launchTemplateVersions = "launchTemplateVersionSet" + } + } + public struct StateReason: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: false, type: .string), AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) ] /// The reason code for the state change. public let code: String? - /// The message for the state change. Server.InsufficientInstanceCapacity: There was insufficient instance capacity to satisfy the launch request. Server.InternalError: An internal error occurred during instance launch, resulting in termination. Server.ScheduledStop: The instance was stopped due to a scheduled retirement. Server.SpotInstanceTermination: A Spot instance was terminated due to an increase in the market price. Client.InternalError: A client error caused the instance to terminate on launch. Client.InstanceInitiatedShutdown: The instance was shut down using the shutdown -h command from the instance. Client.UserInitiatedShutdown: The instance was shut down using the Amazon EC2 API. Client.VolumeLimitExceeded: The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your limits. Client.InvalidSnapshot.NotFound: The specified snapshot was not found. + /// The message for the state change. Server.InsufficientInstanceCapacity: There was insufficient instance capacity to satisfy the launch request. Server.InternalError: An internal error occurred during instance launch, resulting in termination. Server.ScheduledStop: The instance was stopped due to a scheduled retirement. Server.SpotInstanceTermination: A Spot Instance was terminated due to an increase in the Spot price. Client.InternalError: A client error caused the instance to terminate on launch. Client.InstanceInitiatedShutdown: The instance was shut down using the shutdown -h command from the instance. Client.InstanceTerminated: The instance was terminated or rebooted during AMI creation. Client.UserInitiatedShutdown: The instance was shut down using the Amazon EC2 API. Client.VolumeLimitExceeded: The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your limits. Client.InvalidSnapshot.NotFound: The specified snapshot was not found. public let message: String? public init(code: String? = nil, message: String? = nil) { @@ -18321,16 +22531,16 @@ extension Ec2 { } public struct DeleteTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Tags", location: .body(locationName: "tag"), required: false, type: .structure), AWSShapeMember(label: "Resources", location: .body(locationName: "resourceId"), required: true, type: .list) ] /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// One or more tags to delete. If you omit the value parameter, we delete the tag regardless of its value. If you specify this parameter with an empty string as the value, we delete the key only if its value is an empty string. + /// One or more tags to delete. If you omit this parameter, we delete all tags for the specified resources. Specify a tag key and an optional tag value to delete specific tags. If you specify a tag key without a tag value, we delete any tag with this key regardless of its value. If you specify a tag key with an empty string as the tag value, we delete the tag only if its value is an empty string. public let tags: TagList? - /// The ID of the resource. For example, ami-1a2b3c4d. You can specify more than one resource ID. + /// The IDs of one or more resources. public let resources: [String] public init(dryRun: Bool? = nil, tags: TagList? = nil, resources: [String]) { @@ -18347,7 +22557,7 @@ extension Ec2 { } public struct InstancePrivateIpAddressList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstancePrivateIpAddress]? @@ -18375,7 +22585,7 @@ extension Ec2 { } public struct IdFormatList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [IdFormat]? @@ -18390,7 +22600,7 @@ extension Ec2 { } public struct InstanceBlockDeviceMappingList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [InstanceBlockDeviceMapping]? @@ -18405,16 +22615,16 @@ extension Ec2 { } public struct DescribeSpotInstanceRequestsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "SpotInstanceRequestIds", location: .body(locationName: "SpotInstanceRequestId"), required: false, type: .structure) ] /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// One or more filters. availability-zone-group - The Availability Zone group. create-time - The time stamp when the Spot instance request was created. fault-code - The fault code related to the request. fault-message - The fault message related to the request. instance-id - The ID of the instance that fulfilled the request. launch-group - The Spot instance launch group. launch.block-device-mapping.delete-on-termination - Indicates whether the Amazon EBS volume is deleted on instance termination. launch.block-device-mapping.device-name - The device name for the Amazon EBS volume (for example, /dev/sdh). launch.block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS volume. launch.block-device-mapping.volume-size - The size of the Amazon EBS volume, in GiB. launch.block-device-mapping.volume-type - The type of the Amazon EBS volume: gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1for Cold HDD, or standard for Magnetic. launch.group-id - The security group for the instance. launch.image-id - The ID of the AMI. launch.instance-type - The type of instance (for example, m3.medium). launch.kernel-id - The kernel ID. launch.key-name - The name of the key pair the instance launched with. launch.monitoring-enabled - Whether monitoring is enabled for the Spot instance. launch.ramdisk-id - The RAM disk ID. network-interface.network-interface-id - The ID of the network interface. network-interface.device-index - The index of the device for the network interface attachment on the instance. network-interface.subnet-id - The ID of the subnet for the instance. network-interface.description - A description of the network interface. network-interface.private-ip-address - The primary private IP address of the network interface. network-interface.delete-on-termination - Indicates whether the network interface is deleted when the instance is terminated. network-interface.group-id - The ID of the security group associated with the network interface. network-interface.group-name - The name of the security group associated with the network interface. network-interface.addresses.primary - Indicates whether the IP address is the primary private IP address. product-description - The product description associated with the instance (Linux/UNIX | Windows). spot-instance-request-id - The Spot instance request ID. spot-price - The maximum hourly price for any Spot instance launched to fulfill the request. state - The state of the Spot instance request (open | active | closed | cancelled | failed). Spot bid status information can help you track your Amazon EC2 Spot instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide. status-code - The short code describing the most recent evaluation of your Spot instance request. status-message - The message explaining the status of the Spot instance request. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. type - The type of Spot instance request (one-time | persistent). launched-availability-zone - The Availability Zone in which the bid is launched. valid-from - The start date of the request. valid-until - The end date of the request. + /// One or more filters. availability-zone-group - The Availability Zone group. create-time - The time stamp when the Spot Instance request was created. fault-code - The fault code related to the request. fault-message - The fault message related to the request. instance-id - The ID of the instance that fulfilled the request. launch-group - The Spot Instance launch group. launch.block-device-mapping.delete-on-termination - Indicates whether the EBS volume is deleted on instance termination. launch.block-device-mapping.device-name - The device name for the volume in the block device mapping (for example, /dev/sdh or xvdh). launch.block-device-mapping.snapshot-id - The ID of the snapshot for the EBS volume. launch.block-device-mapping.volume-size - The size of the EBS volume, in GiB. launch.block-device-mapping.volume-type - The type of EBS volume: gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1for Cold HDD, or standard for Magnetic. launch.group-id - The security group for the instance. launch.image-id - The ID of the AMI. launch.instance-type - The type of instance (for example, m3.medium). launch.kernel-id - The kernel ID. launch.key-name - The name of the key pair the instance launched with. launch.monitoring-enabled - Whether detailed monitoring is enabled for the Spot Instance. launch.ramdisk-id - The RAM disk ID. launched-availability-zone - The Availability Zone in which the request is launched. network-interface.addresses.primary - Indicates whether the IP address is the primary private IP address. network-interface.delete-on-termination - Indicates whether the network interface is deleted when the instance is terminated. network-interface.description - A description of the network interface. network-interface.device-index - The index of the device for the network interface attachment on the instance. network-interface.group-id - The ID of the security group associated with the network interface. network-interface.network-interface-id - The ID of the network interface. network-interface.private-ip-address - The primary private IP address of the network interface. network-interface.subnet-id - The ID of the subnet for the instance. product-description - The product description associated with the instance (Linux/UNIX | Windows). spot-instance-request-id - The Spot Instance request ID. spot-price - The maximum hourly price for any Spot Instance launched to fulfill the request. state - The state of the Spot Instance request (open | active | closed | cancelled | failed). Spot request status information can help you track your Amazon EC2 Spot Instance requests. For more information, see Spot Request Status in the Amazon Elastic Compute Cloud User Guide. status-code - The short code describing the most recent evaluation of your Spot Instance request. status-message - The message explaining the status of the Spot Instance request. tag:key=value - The key/value combination of a tag assigned to the resource. Specify the key of the tag in the filter name and the value of the tag in the filter value. For example, for the tag Purpose=X, specify tag:Purpose for the filter name and X for the filter value. tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter. tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter. type - The type of Spot Instance request (one-time | persistent). valid-from - The start date of the request. valid-until - The end date of the request. public let filters: FilterList? - /// One or more Spot instance request IDs. + /// One or more Spot Instance request IDs. public let spotInstanceRequestIds: SpotInstanceRequestIdList? public init(dryRun: Bool? = nil, filters: FilterList? = nil, spotInstanceRequestIds: SpotInstanceRequestIdList? = nil) { @@ -18431,7 +22641,7 @@ extension Ec2 { } public struct AttachClassicLinkVpcRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: true, type: .string), @@ -18446,23 +22656,65 @@ extension Ec2 { /// The ID of one or more of the VPC's security groups. You cannot specify security groups from a different VPC. public let groups: GroupIdStringList - public init(dryRun: Bool? = nil, vpcId: String, instanceId: String, groups: GroupIdStringList) { - self.dryRun = dryRun - self.vpcId = vpcId - self.instanceId = instanceId - self.groups = groups + public init(dryRun: Bool? = nil, vpcId: String, instanceId: String, groups: GroupIdStringList) { + self.dryRun = dryRun + self.vpcId = vpcId + self.instanceId = instanceId + self.groups = groups + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "dryRun" + case vpcId = "vpcId" + case instanceId = "instanceId" + case groups = "SecurityGroupId" + } + } + + public struct AcceptVpcEndpointConnectionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "ServiceId", required: true, type: .string), + AWSShapeMember(label: "VpcEndpointIds", location: .body(locationName: "VpcEndpointId"), required: true, type: .structure) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The ID of the endpoint service. + public let serviceId: String + /// The IDs of one or more interface VPC endpoints. + public let vpcEndpointIds: ValueStringList + + public init(dryRun: Bool? = nil, serviceId: String, vpcEndpointIds: ValueStringList) { + self.dryRun = dryRun + self.serviceId = serviceId + self.vpcEndpointIds = vpcEndpointIds + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case serviceId = "ServiceId" + case vpcEndpointIds = "VpcEndpointId" + } + } + + public struct ModifyVpcEndpointServiceConfigurationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Return", location: .body(locationName: "return"), required: false, type: .boolean) + ] + /// Returns true if the request succeeds; otherwise, it returns an error. + public let `return`: Bool? + + public init(return: Bool? = nil) { + self.`return` = `return` } private enum CodingKeys: String, CodingKey { - case dryRun = "dryRun" - case vpcId = "vpcId" - case instanceId = "instanceId" - case groups = "SecurityGroupId" + case `return` = "return" } } public struct ReleaseHostsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Successful", location: .body(locationName: "successful"), required: false, type: .structure), AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure) ] @@ -18483,7 +22735,7 @@ extension Ec2 { } public struct ScheduledInstanceIdRequestSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScheduledInstanceId", required: false, type: .list) ] public let scheduledInstanceId: [String]? @@ -18498,7 +22750,7 @@ extension Ec2 { } public struct ExportToS3TaskSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3Prefix", location: .body(locationName: "s3Prefix"), required: false, type: .string), AWSShapeMember(label: "ContainerFormat", location: .body(locationName: "containerFormat"), required: false, type: .enum), AWSShapeMember(label: "DiskImageFormat", location: .body(locationName: "diskImageFormat"), required: false, type: .enum), @@ -18529,7 +22781,7 @@ extension Ec2 { } public struct CancelSpotFleetRequestsError: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", location: .body(locationName: "code"), required: true, type: .enum), AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: true, type: .string) ] @@ -18550,7 +22802,7 @@ extension Ec2 { } public struct DescribeKeyPairsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyNames", location: .body(locationName: "KeyName"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -18576,7 +22828,7 @@ extension Ec2 { } public struct DescribeReservedInstancesOfferingsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstancesOfferings", location: .body(locationName: "reservedInstancesOfferingsSet"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] @@ -18602,7 +22854,7 @@ extension Ec2 { } public struct VpnStaticRoute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DestinationCidrBlock", location: .body(locationName: "destinationCidrBlock"), required: false, type: .string), AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), AWSShapeMember(label: "Source", location: .body(locationName: "source"), required: false, type: .enum) @@ -18627,8 +22879,29 @@ extension Ec2 { } } + public struct InstanceCreditSpecificationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceId", required: false, type: .string), + AWSShapeMember(label: "CpuCredits", required: false, type: .string) + ] + /// The ID of the instance. + public let instanceId: String? + /// The credit option for CPU usage of the instance. Valid values are standard and unlimited. + public let cpuCredits: String? + + public init(instanceId: String? = nil, cpuCredits: String? = nil) { + self.instanceId = instanceId + self.cpuCredits = cpuCredits + } + + private enum CodingKeys: String, CodingKey { + case instanceId = "InstanceId" + case cpuCredits = "CpuCredits" + } + } + public struct CopySnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "KmsKeyId", location: .body(locationName: "kmsKeyId"), required: false, type: .string), AWSShapeMember(label: "SourceRegion", required: true, type: .string), @@ -18678,33 +22951,55 @@ extension Ec2 { } } + public struct GetLaunchTemplateDataResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateData", location: .body(locationName: "launchTemplateData"), required: false, type: .structure) + ] + /// The instance data. + public let launchTemplateData: ResponseLaunchTemplateData? + + public init(launchTemplateData: ResponseLaunchTemplateData? = nil) { + self.launchTemplateData = launchTemplateData + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateData = "launchTemplateData" + } + } + public enum StatusName: String, CustomStringConvertible, Codable { case reachability = "reachability" public var description: String { return self.rawValue } } - public struct IpRangeList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct LaunchTemplateIamInstanceProfileSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string) ] - public let item: [IpRange]? + /// The name of the instance profile. + public let name: String? + /// The Amazon Resource Name (ARN) of the instance profile. + public let arn: String? - public init(item: [IpRange]? = nil) { - self.item = item + public init(name: String? = nil, arn: String? = nil) { + self.name = name + self.arn = arn } private enum CodingKeys: String, CodingKey { - case item = "item" + case name = "name" + case arn = "arn" } } - public struct VpnConnectionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct IpRangeList: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] - public let item: [VpnConnection]? + public let item: [IpRange]? - public init(item: [VpnConnection]? = nil) { + public init(item: [IpRange]? = nil) { self.item = item } @@ -18713,24 +23008,29 @@ extension Ec2 { } } - public struct DescribePlacementGroupsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PlacementGroups", location: .body(locationName: "placementGroupSet"), required: false, type: .structure) + public struct EgressOnlyInternetGateway: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EgressOnlyInternetGatewayId", location: .body(locationName: "egressOnlyInternetGatewayId"), required: false, type: .string), + AWSShapeMember(label: "Attachments", location: .body(locationName: "attachmentSet"), required: false, type: .structure) ] - /// One or more placement groups. - public let placementGroups: PlacementGroupList? + /// The ID of the egress-only Internet gateway. + public let egressOnlyInternetGatewayId: String? + /// Information about the attachment of the egress-only Internet gateway. + public let attachments: InternetGatewayAttachmentList? - public init(placementGroups: PlacementGroupList? = nil) { - self.placementGroups = placementGroups + public init(egressOnlyInternetGatewayId: String? = nil, attachments: InternetGatewayAttachmentList? = nil) { + self.egressOnlyInternetGatewayId = egressOnlyInternetGatewayId + self.attachments = attachments } private enum CodingKeys: String, CodingKey { - case placementGroups = "placementGroupSet" + case egressOnlyInternetGatewayId = "egressOnlyInternetGatewayId" + case attachments = "attachmentSet" } } public struct DetachVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Device", required: false, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "InstanceId", required: false, type: .string), @@ -18765,29 +23065,165 @@ extension Ec2 { } } - public struct EgressOnlyInternetGateway: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EgressOnlyInternetGatewayId", location: .body(locationName: "egressOnlyInternetGatewayId"), required: false, type: .string), - AWSShapeMember(label: "Attachments", location: .body(locationName: "attachmentSet"), required: false, type: .structure) + public struct VpnConnectionList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// The ID of the egress-only Internet gateway. - public let egressOnlyInternetGatewayId: String? - /// Information about the attachment of the egress-only Internet gateway. - public let attachments: InternetGatewayAttachmentList? + public let item: [VpnConnection]? - public init(egressOnlyInternetGatewayId: String? = nil, attachments: InternetGatewayAttachmentList? = nil) { - self.egressOnlyInternetGatewayId = egressOnlyInternetGatewayId - self.attachments = attachments + public init(item: [VpnConnection]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case egressOnlyInternetGatewayId = "egressOnlyInternetGatewayId" - case attachments = "attachmentSet" + case item = "item" + } + } + + public struct PurchaseSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [Purchase]? + + public init(item: [Purchase]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct ResponseLaunchTemplateData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "blockDeviceMappingSet"), required: false, type: .structure), + AWSShapeMember(label: "TagSpecifications", location: .body(locationName: "tagSpecificationSet"), required: false, type: .structure), + AWSShapeMember(label: "DisableApiTermination", location: .body(locationName: "disableApiTermination"), required: false, type: .boolean), + AWSShapeMember(label: "UserData", location: .body(locationName: "userData"), required: false, type: .string), + AWSShapeMember(label: "EbsOptimized", location: .body(locationName: "ebsOptimized"), required: false, type: .boolean), + AWSShapeMember(label: "KernelId", location: .body(locationName: "kernelId"), required: false, type: .string), + AWSShapeMember(label: "SecurityGroupIds", location: .body(locationName: "securityGroupIdSet"), required: false, type: .structure), + AWSShapeMember(label: "Monitoring", location: .body(locationName: "monitoring"), required: false, type: .structure), + AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .enum), + AWSShapeMember(label: "CreditSpecification", location: .body(locationName: "creditSpecification"), required: false, type: .structure), + AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "securityGroupSet"), required: false, type: .structure), + AWSShapeMember(label: "InstanceMarketOptions", location: .body(locationName: "instanceMarketOptions"), required: false, type: .structure), + AWSShapeMember(label: "KeyName", location: .body(locationName: "keyName"), required: false, type: .string), + AWSShapeMember(label: "IamInstanceProfile", location: .body(locationName: "iamInstanceProfile"), required: false, type: .structure), + AWSShapeMember(label: "ImageId", location: .body(locationName: "imageId"), required: false, type: .string), + AWSShapeMember(label: "InstanceInitiatedShutdownBehavior", location: .body(locationName: "instanceInitiatedShutdownBehavior"), required: false, type: .enum), + AWSShapeMember(label: "Placement", location: .body(locationName: "placement"), required: false, type: .structure), + AWSShapeMember(label: "RamDiskId", location: .body(locationName: "ramDiskId"), required: false, type: .string), + AWSShapeMember(label: "NetworkInterfaces", location: .body(locationName: "networkInterfaceSet"), required: false, type: .structure), + AWSShapeMember(label: "ElasticGpuSpecifications", location: .body(locationName: "elasticGpuSpecificationSet"), required: false, type: .structure) + ] + /// The block device mappings. + public let blockDeviceMappings: LaunchTemplateBlockDeviceMappingList? + /// The tags. + public let tagSpecifications: LaunchTemplateTagSpecificationList? + /// If set to true, indicates that the instance cannot be terminated using the Amazon EC2 console, command line tool, or API. + public let disableApiTermination: Bool? + /// The user data for the instance. + public let userData: String? + /// Indicates whether the instance is optimized for Amazon EBS I/O. + public let ebsOptimized: Bool? + /// The ID of the kernel, if applicable. + public let kernelId: String? + /// The security group IDs. + public let securityGroupIds: ValueStringList? + /// The monitoring for the instance. + public let monitoring: LaunchTemplatesMonitoring? + /// The instance type. + public let instanceType: InstanceType? + /// The credit option for CPU usage of the instance. + public let creditSpecification: CreditSpecification? + /// The security group names. + public let securityGroups: ValueStringList? + /// The market (purchasing) option for the instances. + public let instanceMarketOptions: LaunchTemplateInstanceMarketOptions? + /// The name of the key pair. + public let keyName: String? + /// The IAM instance profile. + public let iamInstanceProfile: LaunchTemplateIamInstanceProfileSpecification? + /// The ID of the AMI that was used to launch the instance. + public let imageId: String? + /// Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). + public let instanceInitiatedShutdownBehavior: ShutdownBehavior? + /// The placement of the instance. + public let placement: LaunchTemplatePlacement? + /// The ID of the RAM disk, if applicable. + public let ramDiskId: String? + /// The network interfaces. + public let networkInterfaces: LaunchTemplateInstanceNetworkInterfaceSpecificationList? + /// The elastic GPU specification. + public let elasticGpuSpecifications: ElasticGpuSpecificationResponseList? + + public init(blockDeviceMappings: LaunchTemplateBlockDeviceMappingList? = nil, tagSpecifications: LaunchTemplateTagSpecificationList? = nil, disableApiTermination: Bool? = nil, userData: String? = nil, ebsOptimized: Bool? = nil, kernelId: String? = nil, securityGroupIds: ValueStringList? = nil, monitoring: LaunchTemplatesMonitoring? = nil, instanceType: InstanceType? = nil, creditSpecification: CreditSpecification? = nil, securityGroups: ValueStringList? = nil, instanceMarketOptions: LaunchTemplateInstanceMarketOptions? = nil, keyName: String? = nil, iamInstanceProfile: LaunchTemplateIamInstanceProfileSpecification? = nil, imageId: String? = nil, instanceInitiatedShutdownBehavior: ShutdownBehavior? = nil, placement: LaunchTemplatePlacement? = nil, ramDiskId: String? = nil, networkInterfaces: LaunchTemplateInstanceNetworkInterfaceSpecificationList? = nil, elasticGpuSpecifications: ElasticGpuSpecificationResponseList? = nil) { + self.blockDeviceMappings = blockDeviceMappings + self.tagSpecifications = tagSpecifications + self.disableApiTermination = disableApiTermination + self.userData = userData + self.ebsOptimized = ebsOptimized + self.kernelId = kernelId + self.securityGroupIds = securityGroupIds + self.monitoring = monitoring + self.instanceType = instanceType + self.creditSpecification = creditSpecification + self.securityGroups = securityGroups + self.instanceMarketOptions = instanceMarketOptions + self.keyName = keyName + self.iamInstanceProfile = iamInstanceProfile + self.imageId = imageId + self.instanceInitiatedShutdownBehavior = instanceInitiatedShutdownBehavior + self.placement = placement + self.ramDiskId = ramDiskId + self.networkInterfaces = networkInterfaces + self.elasticGpuSpecifications = elasticGpuSpecifications + } + + private enum CodingKeys: String, CodingKey { + case blockDeviceMappings = "blockDeviceMappingSet" + case tagSpecifications = "tagSpecificationSet" + case disableApiTermination = "disableApiTermination" + case userData = "userData" + case ebsOptimized = "ebsOptimized" + case kernelId = "kernelId" + case securityGroupIds = "securityGroupIdSet" + case monitoring = "monitoring" + case instanceType = "instanceType" + case creditSpecification = "creditSpecification" + case securityGroups = "securityGroupSet" + case instanceMarketOptions = "instanceMarketOptions" + case keyName = "keyName" + case iamInstanceProfile = "iamInstanceProfile" + case imageId = "imageId" + case instanceInitiatedShutdownBehavior = "instanceInitiatedShutdownBehavior" + case placement = "placement" + case ramDiskId = "ramDiskId" + case networkInterfaces = "networkInterfaceSet" + case elasticGpuSpecifications = "elasticGpuSpecificationSet" + } + } + + public struct CreateDefaultVpcRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", required: false, type: .boolean) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(dryRun: Bool? = nil) { + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" } } public struct EnableVgwRoutePropagationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RouteTableId", required: true, type: .string), AWSShapeMember(label: "GatewayId", required: true, type: .string) ] @@ -18808,7 +23244,7 @@ extension Ec2 { } public struct LaunchSpecsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [SpotFleetLaunchSpecification]? @@ -18823,14 +23259,14 @@ extension Ec2 { } public struct GetReservedInstancesExchangeQuoteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedInstanceIds", location: .body(locationName: "ReservedInstanceId"), required: true, type: .structure), AWSShapeMember(label: "TargetConfigurations", location: .body(locationName: "TargetConfiguration"), required: false, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean) ] /// The IDs of the Convertible Reserved Instances to exchange. public let reservedInstanceIds: ReservedInstanceIdSet - /// The configuration requirements of the Convertible Reserved Instances to exchange for your current Convertible Reserved Instances. + /// The configuration of the target Convertible Reserved Instance to exchange for your current Convertible Reserved Instances. public let targetConfigurations: TargetConfigurationRequestSet? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -18848,14 +23284,36 @@ extension Ec2 { } } + public struct DescribeLaunchTemplatesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "LaunchTemplates", location: .body(locationName: "launchTemplates"), required: false, type: .structure) + ] + /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + /// Information about the launch templates. + public let launchTemplates: LaunchTemplateSet? + + public init(nextToken: String? = nil, launchTemplates: LaunchTemplateSet? = nil) { + self.nextToken = nextToken + self.launchTemplates = launchTemplates + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case launchTemplates = "launchTemplates" + } + } + public struct SpotFleetLaunchSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "blockDeviceMapping"), required: false, type: .structure), - AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), + AWSShapeMember(label: "TagSpecifications", location: .body(locationName: "tagSpecificationSet"), required: false, type: .structure), AWSShapeMember(label: "UserData", location: .body(locationName: "userData"), required: false, type: .string), + AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: false, type: .string), AWSShapeMember(label: "EbsOptimized", location: .body(locationName: "ebsOptimized"), required: false, type: .boolean), - AWSShapeMember(label: "KernelId", location: .body(locationName: "kernelId"), required: false, type: .string), AWSShapeMember(label: "SpotPrice", location: .body(locationName: "spotPrice"), required: false, type: .string), + AWSShapeMember(label: "KernelId", location: .body(locationName: "kernelId"), required: false, type: .string), AWSShapeMember(label: "Monitoring", location: .body(locationName: "monitoring"), required: false, type: .structure), AWSShapeMember(label: "InstanceType", location: .body(locationName: "instanceType"), required: false, type: .enum), AWSShapeMember(label: "WeightedCapacity", location: .body(locationName: "weightedCapacity"), required: false, type: .double), @@ -18868,21 +23326,23 @@ extension Ec2 { AWSShapeMember(label: "Placement", location: .body(locationName: "placement"), required: false, type: .structure), AWSShapeMember(label: "RamdiskId", location: .body(locationName: "ramdiskId"), required: false, type: .string) ] - /// One or more block device mapping entries. + /// One or more block device mapping entries. You can't specify both a snapshot ID and an encryption value. This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status. public let blockDeviceMappings: BlockDeviceMappingList? - /// The ID of the subnet in which to launch the instances. To specify multiple subnets, separate them using commas; for example, "subnet-a61dafcf, subnet-65ea5f08". - public let subnetId: String? + /// The tags to apply during creation. + public let tagSpecifications: SpotFleetTagSpecificationList? /// The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text. public let userData: String? + /// The ID of the subnet in which to launch the instances. To specify multiple subnets, separate them using commas; for example, "subnet-a61dafcf, subnet-65ea5f08". + public let subnetId: String? /// Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: false public let ebsOptimized: Bool? + /// The maximum price per unit hour that you are willing to pay for a Spot Instance. If this value is not specified, the default is the Spot price specified for the fleet. To determine the Spot price per unit hour, divide the Spot price by the value of WeightedCapacity. + public let spotPrice: String? /// The ID of the kernel. public let kernelId: String? - /// The bid price per unit hour for the specified instance type. If this value is not specified, the default is the Spot bid price specified for the fleet. To determine the bid price per unit hour, divide the Spot bid price by the value of WeightedCapacity. - public let spotPrice: String? /// Enable or disable monitoring for the instances. public let monitoring: SpotFleetMonitoring? - /// The instance type. Note that T2 and HS1 instance types are not supported. + /// The instance type. public let instanceType: InstanceType? /// The number of units provided by the specified instance type. These are the same units that you chose to set the target capacity in terms (instances or a performance characteristic such as vCPUs, memory, or I/O). If the target capacity divided by this value is not a whole number, we round the number of instances to the next whole number. If this value is not specified, the default is 1. public let weightedCapacity: Double? @@ -18903,13 +23363,14 @@ extension Ec2 { /// The ID of the RAM disk. public let ramdiskId: String? - public init(blockDeviceMappings: BlockDeviceMappingList? = nil, subnetId: String? = nil, userData: String? = nil, ebsOptimized: Bool? = nil, kernelId: String? = nil, spotPrice: String? = nil, monitoring: SpotFleetMonitoring? = nil, instanceType: InstanceType? = nil, weightedCapacity: Double? = nil, securityGroups: GroupIdentifierList? = nil, keyName: String? = nil, addressingType: String? = nil, iamInstanceProfile: IamInstanceProfileSpecification? = nil, imageId: String? = nil, networkInterfaces: InstanceNetworkInterfaceSpecificationList? = nil, placement: SpotPlacement? = nil, ramdiskId: String? = nil) { + public init(blockDeviceMappings: BlockDeviceMappingList? = nil, tagSpecifications: SpotFleetTagSpecificationList? = nil, userData: String? = nil, subnetId: String? = nil, ebsOptimized: Bool? = nil, spotPrice: String? = nil, kernelId: String? = nil, monitoring: SpotFleetMonitoring? = nil, instanceType: InstanceType? = nil, weightedCapacity: Double? = nil, securityGroups: GroupIdentifierList? = nil, keyName: String? = nil, addressingType: String? = nil, iamInstanceProfile: IamInstanceProfileSpecification? = nil, imageId: String? = nil, networkInterfaces: InstanceNetworkInterfaceSpecificationList? = nil, placement: SpotPlacement? = nil, ramdiskId: String? = nil) { self.blockDeviceMappings = blockDeviceMappings - self.subnetId = subnetId + self.tagSpecifications = tagSpecifications self.userData = userData + self.subnetId = subnetId self.ebsOptimized = ebsOptimized - self.kernelId = kernelId self.spotPrice = spotPrice + self.kernelId = kernelId self.monitoring = monitoring self.instanceType = instanceType self.weightedCapacity = weightedCapacity @@ -18925,11 +23386,12 @@ extension Ec2 { private enum CodingKeys: String, CodingKey { case blockDeviceMappings = "blockDeviceMapping" - case subnetId = "subnetId" + case tagSpecifications = "tagSpecificationSet" case userData = "userData" + case subnetId = "subnetId" case ebsOptimized = "ebsOptimized" - case kernelId = "kernelId" case spotPrice = "spotPrice" + case kernelId = "kernelId" case monitoring = "monitoring" case instanceType = "instanceType" case weightedCapacity = "weightedCapacity" @@ -18945,7 +23407,7 @@ extension Ec2 { } public struct Region: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Endpoint", location: .body(locationName: "regionEndpoint"), required: false, type: .string), AWSShapeMember(label: "RegionName", location: .body(locationName: "regionName"), required: false, type: .string) ] @@ -18965,8 +23427,24 @@ extension Ec2 { } } + public struct DescribePlacementGroupsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PlacementGroups", location: .body(locationName: "placementGroupSet"), required: false, type: .structure) + ] + /// One or more placement groups. + public let placementGroups: PlacementGroupList? + + public init(placementGroups: PlacementGroupList? = nil) { + self.placementGroups = placementGroups + } + + private enum CodingKeys: String, CodingKey { + case placementGroups = "placementGroupSet" + } + } + public struct PurchaseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PurchaseToken", required: true, type: .string), AWSShapeMember(label: "InstanceCount", required: true, type: .integer) ] @@ -18987,7 +23465,7 @@ extension Ec2 { } public struct ImportTaskIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImportTaskId", required: false, type: .list) ] public let importTaskId: [String]? @@ -19002,7 +23480,7 @@ extension Ec2 { } public struct DetachInternetGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: true, type: .string), AWSShapeMember(label: "InternetGatewayId", location: .body(locationName: "internetGatewayId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -19028,7 +23506,7 @@ extension Ec2 { } public struct DescribeVpcClassicLinkDnsSupportResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Vpcs", location: .body(locationName: "vpcs"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] @@ -19037,19 +23515,50 @@ extension Ec2 { /// The token to use when requesting the next set of items. public let nextToken: String? - public init(vpcs: ClassicLinkDnsSupportList? = nil, nextToken: String? = nil) { - self.vpcs = vpcs - self.nextToken = nextToken + public init(vpcs: ClassicLinkDnsSupportList? = nil, nextToken: String? = nil) { + self.vpcs = vpcs + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case vpcs = "vpcs" + case nextToken = "nextToken" + } + } + + public enum LaunchTemplateErrorCode: String, CustomStringConvertible, Codable { + case launchtemplateiddoesnotexist = "launchTemplateIdDoesNotExist" + case launchtemplateidmalformed = "launchTemplateIdMalformed" + case launchtemplatenamedoesnotexist = "launchTemplateNameDoesNotExist" + case launchtemplatenamemalformed = "launchTemplateNameMalformed" + case launchtemplateversiondoesnotexist = "launchTemplateVersionDoesNotExist" + case unexpectederror = "unexpectedError" + public var description: String { return self.rawValue } + } + + public struct VpnConnectionOptionsSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TunnelOptions", required: false, type: .structure), + AWSShapeMember(label: "StaticRoutesOnly", location: .body(locationName: "staticRoutesOnly"), required: false, type: .boolean) + ] + /// The tunnel options for the VPN connection. + public let tunnelOptions: TunnelOptionsList? + /// Indicate whether the VPN connection uses static routes only. If you are creating a VPN connection for a device that does not support BGP, you must specify true. Default: false + public let staticRoutesOnly: Bool? + + public init(tunnelOptions: TunnelOptionsList? = nil, staticRoutesOnly: Bool? = nil) { + self.tunnelOptions = tunnelOptions + self.staticRoutesOnly = staticRoutesOnly } private enum CodingKeys: String, CodingKey { - case vpcs = "vpcs" - case nextToken = "nextToken" + case tunnelOptions = "TunnelOptions" + case staticRoutesOnly = "staticRoutesOnly" } } public struct CreateInternetGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. @@ -19064,22 +23573,6 @@ extension Ec2 { } } - public struct VpnConnectionOptionsSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StaticRoutesOnly", location: .body(locationName: "staticRoutesOnly"), required: false, type: .boolean) - ] - /// Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP. - public let staticRoutesOnly: Bool? - - public init(staticRoutesOnly: Bool? = nil) { - self.staticRoutesOnly = staticRoutesOnly - } - - private enum CodingKeys: String, CodingKey { - case staticRoutesOnly = "staticRoutesOnly" - } - } - public enum ImageState: String, CustomStringConvertible, Codable { case pending = "pending" case available = "available" @@ -19098,12 +23591,12 @@ extension Ec2 { } public struct HistoryRecord: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventType", location: .body(locationName: "eventType"), required: true, type: .enum), AWSShapeMember(label: "Timestamp", location: .body(locationName: "timestamp"), required: true, type: .timestamp), AWSShapeMember(label: "EventInformation", location: .body(locationName: "eventInformation"), required: true, type: .structure) ] - /// The event type. error - Indicates an error with the Spot fleet request. fleetRequestChange - Indicates a change in the status or configuration of the Spot fleet request. instanceChange - Indicates that an instance was launched or terminated. + /// The event type. error - An error with the Spot Fleet request. fleetRequestChange - A change in the status or configuration of the Spot Fleet request. instanceChange - An instance was launched or terminated. Information - An informational event. public let eventType: EventType /// The date and time of the event, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). public let timestamp: TimeStamp @@ -19124,13 +23617,13 @@ extension Ec2 { } public struct DescribeSpotFleetRequestsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "SpotFleetRequestConfigs", location: .body(locationName: "spotFleetRequestConfigSet"), required: true, type: .structure) ] /// The token required to retrieve the next set of results. This value is null when there are no more results to return. public let nextToken: String? - /// Information about the configuration of your Spot fleet. + /// Information about the configuration of your Spot Fleet. public let spotFleetRequestConfigs: SpotFleetRequestConfigSet public init(nextToken: String? = nil, spotFleetRequestConfigs: SpotFleetRequestConfigSet) { @@ -19144,8 +23637,24 @@ extension Ec2 { } } + public struct ElasticGpuSpecificationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .string) + ] + /// The elastic GPU type. + public let `type`: String? + + public init(type: String? = nil) { + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case `type` = "type" + } + } + public struct VpcPeeringConnectionOptionsDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AllowEgressFromLocalVpcToRemoteClassicLink", location: .body(locationName: "allowEgressFromLocalVpcToRemoteClassicLink"), required: false, type: .boolean), AWSShapeMember(label: "AllowEgressFromLocalClassicLinkToRemoteVpc", location: .body(locationName: "allowEgressFromLocalClassicLinkToRemoteVpc"), required: false, type: .boolean), AWSShapeMember(label: "AllowDnsResolutionFromRemoteVpc", location: .body(locationName: "allowDnsResolutionFromRemoteVpc"), required: false, type: .boolean) @@ -19171,7 +23680,7 @@ extension Ec2 { } public struct VpcEndpointSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [VpcEndpoint]? @@ -19186,7 +23695,7 @@ extension Ec2 { } public struct InstanceStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceState", location: .body(locationName: "instanceState"), required: false, type: .structure), AWSShapeMember(label: "SystemStatus", location: .body(locationName: "systemStatus"), required: false, type: .structure), AWSShapeMember(label: "Events", location: .body(locationName: "eventsSet"), required: false, type: .structure), @@ -19227,7 +23736,7 @@ extension Ec2 { } public struct ReservedInstancesOfferingList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ReservedInstancesOffering]? @@ -19252,10 +23761,12 @@ extension Ec2 { } public struct VpcPeeringConnectionVpcInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PeeringOptions", location: .body(locationName: "peeringOptions"), required: false, type: .structure), AWSShapeMember(label: "Ipv6CidrBlockSet", location: .body(locationName: "ipv6CidrBlockSet"), required: false, type: .structure), AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), + AWSShapeMember(label: "Region", location: .body(locationName: "region"), required: false, type: .string), + AWSShapeMember(label: "CidrBlockSet", location: .body(locationName: "cidrBlockSet"), required: false, type: .structure), AWSShapeMember(label: "OwnerId", location: .body(locationName: "ownerId"), required: false, type: .string), AWSShapeMember(label: "CidrBlock", location: .body(locationName: "cidrBlock"), required: false, type: .string) ] @@ -19265,15 +23776,21 @@ extension Ec2 { public let ipv6CidrBlockSet: Ipv6CidrBlockSet? /// The ID of the VPC. public let vpcId: String? + /// The region in which the VPC is located. + public let region: String? + /// Information about the IPv4 CIDR blocks for the VPC. + public let cidrBlockSet: CidrBlockSet? /// The AWS account ID of the VPC owner. public let ownerId: String? /// The IPv4 CIDR block for the VPC. public let cidrBlock: String? - public init(peeringOptions: VpcPeeringConnectionOptionsDescription? = nil, ipv6CidrBlockSet: Ipv6CidrBlockSet? = nil, vpcId: String? = nil, ownerId: String? = nil, cidrBlock: String? = nil) { + public init(peeringOptions: VpcPeeringConnectionOptionsDescription? = nil, ipv6CidrBlockSet: Ipv6CidrBlockSet? = nil, vpcId: String? = nil, region: String? = nil, cidrBlockSet: CidrBlockSet? = nil, ownerId: String? = nil, cidrBlock: String? = nil) { self.peeringOptions = peeringOptions self.ipv6CidrBlockSet = ipv6CidrBlockSet self.vpcId = vpcId + self.region = region + self.cidrBlockSet = cidrBlockSet self.ownerId = ownerId self.cidrBlock = cidrBlock } @@ -19282,13 +23799,15 @@ extension Ec2 { case peeringOptions = "peeringOptions" case ipv6CidrBlockSet = "ipv6CidrBlockSet" case vpcId = "vpcId" + case region = "region" + case cidrBlockSet = "cidrBlockSet" case ownerId = "ownerId" case cidrBlock = "cidrBlock" } } public struct SnapshotTaskDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .string), AWSShapeMember(label: "Progress", location: .body(locationName: "progress"), required: false, type: .string), AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), @@ -19343,8 +23862,44 @@ extension Ec2 { } } + public struct DescribeVpcEndpointConnectionNotificationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConnectionNotificationId", required: false, type: .string), + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The ID of the notification. + public let connectionNotificationId: String? + /// One or more filters. connection-notification-arn - The ARN of SNS topic for the notification. connection-notification-id - The ID of the notification. connection-notification-state - The state of the notification (Enabled | Disabled). connection-notification-type - The type of notification (Topic). service-id - The ID of the endpoint service. vpc-endpoint-id - The ID of the VPC endpoint. + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The token to request the next page of results. + public let nextToken: String? + /// The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned NextToken value. + public let maxResults: Int32? + + public init(connectionNotificationId: String? = nil, filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.connectionNotificationId = connectionNotificationId + self.filters = filters + self.dryRun = dryRun + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case connectionNotificationId = "ConnectionNotificationId" + case filters = "Filter" + case dryRun = "DryRun" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + public struct SubnetIpv6CidrBlockAssociationSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [SubnetIpv6CidrBlockAssociation]? @@ -19359,7 +23914,7 @@ extension Ec2 { } public struct TargetReservationValueSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [TargetReservationValue]? @@ -19374,10 +23929,10 @@ extension Ec2 { } public struct CreateSpotDatafeedSubscriptionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SpotDatafeedSubscription", location: .body(locationName: "spotDatafeedSubscription"), required: false, type: .structure) ] - /// The Spot instance data feed subscription. + /// The Spot Instance data feed subscription. public let spotDatafeedSubscription: SpotDatafeedSubscription? public init(spotDatafeedSubscription: SpotDatafeedSubscription? = nil) { @@ -19389,6 +23944,32 @@ extension Ec2 { } } + public struct RejectVpcEndpointConnectionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "ServiceId", required: true, type: .string), + AWSShapeMember(label: "VpcEndpointIds", location: .body(locationName: "VpcEndpointId"), required: true, type: .structure) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The ID of the service. + public let serviceId: String + /// The IDs of one or more VPC endpoints. + public let vpcEndpointIds: ValueStringList + + public init(dryRun: Bool? = nil, serviceId: String, vpcEndpointIds: ValueStringList) { + self.dryRun = dryRun + self.serviceId = serviceId + self.vpcEndpointIds = vpcEndpointIds + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case serviceId = "ServiceId" + case vpcEndpointIds = "VpcEndpointId" + } + } + public enum SummaryStatus: String, CustomStringConvertible, Codable { case ok = "ok" case impaired = "impaired" @@ -19399,10 +23980,10 @@ extension Ec2 { } public struct DescribeSpotInstanceRequestsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SpotInstanceRequests", location: .body(locationName: "spotInstanceRequestSet"), required: false, type: .structure) ] - /// One or more Spot instance requests. + /// One or more Spot Instance requests. public let spotInstanceRequests: SpotInstanceRequestList? public init(spotInstanceRequests: SpotInstanceRequestList? = nil) { @@ -19423,7 +24004,7 @@ extension Ec2 { } public struct ModifyVpcPeeringConnectionOptionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccepterPeeringConnectionOptions", required: false, type: .structure), AWSShapeMember(label: "RequesterPeeringConnectionOptions", required: false, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean), @@ -19460,7 +24041,7 @@ extension Ec2 { } public struct IamInstanceProfileSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string) ] @@ -19487,7 +24068,7 @@ extension Ec2 { } public struct TagList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Tag]? @@ -19502,7 +24083,7 @@ extension Ec2 { } public struct ConfirmProductInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "ProductCode", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -19528,7 +24109,7 @@ extension Ec2 { } public struct DisableVgwRoutePropagationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RouteTableId", required: true, type: .string), AWSShapeMember(label: "GatewayId", required: true, type: .string) ] @@ -19548,8 +24129,23 @@ extension Ec2 { } } + public struct ExportTaskIdStringList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ExportTaskId", required: false, type: .list) + ] + public let exportTaskId: [String]? + + public init(exportTaskId: [String]? = nil) { + self.exportTaskId = exportTaskId + } + + private enum CodingKeys: String, CodingKey { + case exportTaskId = "ExportTaskId" + } + } + public struct DescribeSpotPriceHistoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", location: .body(locationName: "startTime"), required: false, type: .timestamp), AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer), AWSShapeMember(label: "ProductDescriptions", location: .body(locationName: "ProductDescription"), required: false, type: .list), @@ -19576,7 +24172,7 @@ extension Ec2 { public let availabilityZone: String? /// The token for the next set of results. public let nextToken: String? - /// Filters the results by the specified instance types. Note that T2 and HS1 instance types are not supported. + /// Filters the results by the specified instance types. public let instanceTypes: [InstanceType]? public init(startTime: TimeStamp? = nil, maxResults: Int32? = nil, productDescriptions: [String]? = nil, endTime: TimeStamp? = nil, filters: FilterList? = nil, dryRun: Bool? = nil, availabilityZone: String? = nil, nextToken: String? = nil, instanceTypes: [InstanceType]? = nil) { @@ -19604,23 +24200,8 @@ extension Ec2 { } } - public struct ExportTaskIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ExportTaskId", required: false, type: .list) - ] - public let exportTaskId: [String]? - - public init(exportTaskId: [String]? = nil) { - self.exportTaskId = exportTaskId - } - - private enum CodingKeys: String, CodingKey { - case exportTaskId = "ExportTaskId" - } - } - public struct ConversionTask: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImportInstance", location: .body(locationName: "importInstance"), required: false, type: .structure), AWSShapeMember(label: "ExpirationTime", location: .body(locationName: "expirationTime"), required: false, type: .string), AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), @@ -19666,7 +24247,7 @@ extension Ec2 { } public struct ReplaceRouteTableAssociationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NewAssociationId", location: .body(locationName: "newAssociationId"), required: false, type: .string) ] /// The ID of the new association. @@ -19682,7 +24263,7 @@ extension Ec2 { } public struct CreateFpgaImageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FpgaImageId", location: .body(locationName: "fpgaImageId"), required: false, type: .string), AWSShapeMember(label: "FpgaImageGlobalId", location: .body(locationName: "fpgaImageGlobalId"), required: false, type: .string) ] @@ -19703,7 +24284,7 @@ extension Ec2 { } public struct PrefixListIdSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -19717,24 +24298,24 @@ extension Ec2 { } } - public struct ModifyVolumeResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VolumeModification", location: .body(locationName: "volumeModification"), required: false, type: .structure) + public struct ElasticGpuHealth: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum) ] - /// A VolumeModification object. - public let volumeModification: VolumeModification? + /// The health status. + public let status: ElasticGpuStatus? - public init(volumeModification: VolumeModification? = nil) { - self.volumeModification = volumeModification + public init(status: ElasticGpuStatus? = nil) { + self.status = status } private enum CodingKeys: String, CodingKey { - case volumeModification = "volumeModification" + case status = "status" } } public struct KeyPair: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyFingerprint", location: .body(locationName: "keyFingerprint"), required: false, type: .string), AWSShapeMember(label: "KeyName", location: .body(locationName: "keyName"), required: false, type: .string), AWSShapeMember(label: "KeyMaterial", location: .body(locationName: "keyMaterial"), required: false, type: .string) @@ -19759,8 +24340,24 @@ extension Ec2 { } } + public struct ModifyVolumeResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VolumeModification", location: .body(locationName: "volumeModification"), required: false, type: .structure) + ] + /// A VolumeModification object. + public let volumeModification: VolumeModification? + + public init(volumeModification: VolumeModification? = nil) { + self.volumeModification = volumeModification + } + + private enum CodingKeys: String, CodingKey { + case volumeModification = "volumeModification" + } + } + public struct DescribeVpnGatewaysResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpnGateways", location: .body(locationName: "vpnGatewaySet"), required: false, type: .structure) ] /// Information about one or more virtual private gateways. @@ -19776,7 +24373,7 @@ extension Ec2 { } public struct DescribeSpotFleetInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "SpotFleetRequestId", location: .body(locationName: "spotFleetRequestId"), required: true, type: .string), @@ -19786,7 +24383,7 @@ extension Ec2 { public let dryRun: Bool? /// The token for the next set of results. public let nextToken: String? - /// The ID of the Spot fleet request. + /// The ID of the Spot Fleet request. public let spotFleetRequestId: String /// The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value. public let maxResults: Int32? @@ -19806,12 +24403,33 @@ extension Ec2 { } } + public struct LoadBalancersConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetGroupsConfig", location: .body(locationName: "targetGroupsConfig"), required: false, type: .structure), + AWSShapeMember(label: "ClassicLoadBalancersConfig", location: .body(locationName: "classicLoadBalancersConfig"), required: false, type: .structure) + ] + /// The target groups. + public let targetGroupsConfig: TargetGroupsConfig? + /// The Classic Load Balancers. + public let classicLoadBalancersConfig: ClassicLoadBalancersConfig? + + public init(targetGroupsConfig: TargetGroupsConfig? = nil, classicLoadBalancersConfig: ClassicLoadBalancersConfig? = nil) { + self.targetGroupsConfig = targetGroupsConfig + self.classicLoadBalancersConfig = classicLoadBalancersConfig + } + + private enum CodingKeys: String, CodingKey { + case targetGroupsConfig = "targetGroupsConfig" + case classicLoadBalancersConfig = "classicLoadBalancersConfig" + } + } + public struct DeleteVpcEndpointsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcEndpointIds", location: .body(locationName: "VpcEndpointId"), required: true, type: .structure), AWSShapeMember(label: "DryRun", required: false, type: .boolean) ] - /// One or more endpoint IDs. + /// One or more VPC endpoint IDs. public let vpcEndpointIds: ValueStringList /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? @@ -19828,7 +24446,7 @@ extension Ec2 { } public struct DescribeReservedInstancesModificationsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "ReservedInstancesModifications", location: .body(locationName: "reservedInstancesModificationsSet"), required: false, type: .structure) ] @@ -19849,7 +24467,7 @@ extension Ec2 { } public struct AssociateSubnetCidrBlockRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ipv6CidrBlock", location: .body(locationName: "ipv6CidrBlock"), required: true, type: .string), AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: true, type: .string) ] @@ -19870,7 +24488,7 @@ extension Ec2 { } public struct DescribeDhcpOptionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DhcpOptionsIds", location: .body(locationName: "DhcpOptionsId"), required: false, type: .structure), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -19896,7 +24514,7 @@ extension Ec2 { } public struct LaunchPermissionModifications: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Remove", required: false, type: .structure), AWSShapeMember(label: "Add", required: false, type: .structure) ] @@ -19926,7 +24544,7 @@ extension Ec2 { } public struct ModifyHostsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostIds", location: .body(locationName: "hostId"), required: true, type: .structure), AWSShapeMember(label: "AutoPlacement", location: .body(locationName: "autoPlacement"), required: true, type: .enum) ] @@ -19954,8 +24572,29 @@ extension Ec2 { public var description: String { return self.rawValue } } + public struct AssociateIamInstanceProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceId", required: true, type: .string), + AWSShapeMember(label: "IamInstanceProfile", required: true, type: .structure) + ] + /// The ID of the instance. + public let instanceId: String + /// The IAM instance profile. + public let iamInstanceProfile: IamInstanceProfileSpecification + + public init(instanceId: String, iamInstanceProfile: IamInstanceProfileSpecification) { + self.instanceId = instanceId + self.iamInstanceProfile = iamInstanceProfile + } + + private enum CodingKeys: String, CodingKey { + case instanceId = "InstanceId" + case iamInstanceProfile = "IamInstanceProfile" + } + } + public struct ReleaseAddressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "AllocationId", required: false, type: .string), AWSShapeMember(label: "PublicIp", required: false, type: .string) @@ -19981,69 +24620,78 @@ extension Ec2 { } public struct VpcEndpoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "NetworkInterfaceIds", location: .body(locationName: "networkInterfaceIdSet"), required: false, type: .structure), + AWSShapeMember(label: "RouteTableIds", location: .body(locationName: "routeTableIdSet"), required: false, type: .structure), + AWSShapeMember(label: "VpcEndpointType", location: .body(locationName: "vpcEndpointType"), required: false, type: .enum), + AWSShapeMember(label: "SubnetIds", location: .body(locationName: "subnetIdSet"), required: false, type: .structure), AWSShapeMember(label: "CreationTimestamp", location: .body(locationName: "creationTimestamp"), required: false, type: .timestamp), + AWSShapeMember(label: "DnsEntries", location: .body(locationName: "dnsEntrySet"), required: false, type: .structure), AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), - AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), AWSShapeMember(label: "ServiceName", location: .body(locationName: "serviceName"), required: false, type: .string), + AWSShapeMember(label: "PrivateDnsEnabled", location: .body(locationName: "privateDnsEnabled"), required: false, type: .boolean), AWSShapeMember(label: "VpcEndpointId", location: .body(locationName: "vpcEndpointId"), required: false, type: .string), AWSShapeMember(label: "PolicyDocument", location: .body(locationName: "policyDocument"), required: false, type: .string), - AWSShapeMember(label: "RouteTableIds", location: .body(locationName: "routeTableIdSet"), required: false, type: .structure) + AWSShapeMember(label: "Groups", location: .body(locationName: "groupSet"), required: false, type: .structure) ] + /// The state of the VPC endpoint. + public let state: State? + /// (Interface endpoint) One or more network interfaces for the endpoint. + public let networkInterfaceIds: ValueStringList? + /// (Gateway endpoint) One or more route tables associated with the endpoint. + public let routeTableIds: ValueStringList? + /// The type of endpoint. + public let vpcEndpointType: VpcEndpointType? + /// (Interface endpoint) One or more subnets in which the endpoint is located. + public let subnetIds: ValueStringList? /// The date and time the VPC endpoint was created. public let creationTimestamp: TimeStamp? + /// (Interface endpoint) The DNS entries for the endpoint. + public let dnsEntries: DnsEntrySet? /// The ID of the VPC to which the endpoint is associated. public let vpcId: String? - /// The state of the VPC endpoint. - public let state: State? - /// The name of the AWS service to which the endpoint is associated. + /// The name of the service to which the endpoint is associated. public let serviceName: String? + /// (Interface endpoint) Indicates whether the VPC is associated with a private hosted zone. + public let privateDnsEnabled: Bool? /// The ID of the VPC endpoint. public let vpcEndpointId: String? - /// The policy document associated with the endpoint. + /// The policy document associated with the endpoint, if applicable. public let policyDocument: String? - /// One or more route tables associated with the endpoint. - public let routeTableIds: ValueStringList? + /// (Interface endpoint) Information about the security groups associated with the network interface. + public let groups: GroupIdentifierSet? - public init(creationTimestamp: TimeStamp? = nil, vpcId: String? = nil, state: State? = nil, serviceName: String? = nil, vpcEndpointId: String? = nil, policyDocument: String? = nil, routeTableIds: ValueStringList? = nil) { + public init(state: State? = nil, networkInterfaceIds: ValueStringList? = nil, routeTableIds: ValueStringList? = nil, vpcEndpointType: VpcEndpointType? = nil, subnetIds: ValueStringList? = nil, creationTimestamp: TimeStamp? = nil, dnsEntries: DnsEntrySet? = nil, vpcId: String? = nil, serviceName: String? = nil, privateDnsEnabled: Bool? = nil, vpcEndpointId: String? = nil, policyDocument: String? = nil, groups: GroupIdentifierSet? = nil) { + self.state = state + self.networkInterfaceIds = networkInterfaceIds + self.routeTableIds = routeTableIds + self.vpcEndpointType = vpcEndpointType + self.subnetIds = subnetIds self.creationTimestamp = creationTimestamp + self.dnsEntries = dnsEntries self.vpcId = vpcId - self.state = state self.serviceName = serviceName + self.privateDnsEnabled = privateDnsEnabled self.vpcEndpointId = vpcEndpointId self.policyDocument = policyDocument - self.routeTableIds = routeTableIds + self.groups = groups } private enum CodingKeys: String, CodingKey { + case state = "state" + case networkInterfaceIds = "networkInterfaceIdSet" + case routeTableIds = "routeTableIdSet" + case vpcEndpointType = "vpcEndpointType" + case subnetIds = "subnetIdSet" case creationTimestamp = "creationTimestamp" + case dnsEntries = "dnsEntrySet" case vpcId = "vpcId" - case state = "state" case serviceName = "serviceName" + case privateDnsEnabled = "privateDnsEnabled" case vpcEndpointId = "vpcEndpointId" case policyDocument = "policyDocument" - case routeTableIds = "routeTableIdSet" - } - } - - public struct AssociateIamInstanceProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceId", required: true, type: .string), - AWSShapeMember(label: "IamInstanceProfile", required: true, type: .structure) - ] - /// The ID of the instance. - public let instanceId: String - /// The IAM instance profile. - public let iamInstanceProfile: IamInstanceProfileSpecification - - public init(instanceId: String, iamInstanceProfile: IamInstanceProfileSpecification) { - self.instanceId = instanceId - self.iamInstanceProfile = iamInstanceProfile - } - - private enum CodingKeys: String, CodingKey { - case instanceId = "InstanceId" - case iamInstanceProfile = "IamInstanceProfile" + case groups = "groupSet" } } @@ -20058,28 +24706,33 @@ extension Ec2 { } public struct DisassociateVpcCidrBlockResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), + AWSShapeMember(label: "CidrBlockAssociation", location: .body(locationName: "cidrBlockAssociation"), required: false, type: .structure), AWSShapeMember(label: "Ipv6CidrBlockAssociation", location: .body(locationName: "ipv6CidrBlockAssociation"), required: false, type: .structure) ] /// The ID of the VPC. public let vpcId: String? + /// Information about the IPv4 CIDR block association. + public let cidrBlockAssociation: VpcCidrBlockAssociation? /// Information about the IPv6 CIDR block association. public let ipv6CidrBlockAssociation: VpcIpv6CidrBlockAssociation? - public init(vpcId: String? = nil, ipv6CidrBlockAssociation: VpcIpv6CidrBlockAssociation? = nil) { + public init(vpcId: String? = nil, cidrBlockAssociation: VpcCidrBlockAssociation? = nil, ipv6CidrBlockAssociation: VpcIpv6CidrBlockAssociation? = nil) { self.vpcId = vpcId + self.cidrBlockAssociation = cidrBlockAssociation self.ipv6CidrBlockAssociation = ipv6CidrBlockAssociation } private enum CodingKeys: String, CodingKey { case vpcId = "vpcId" + case cidrBlockAssociation = "cidrBlockAssociation" case ipv6CidrBlockAssociation = "ipv6CidrBlockAssociation" } } public struct InstanceList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Instance]? @@ -20094,7 +24747,7 @@ extension Ec2 { } public struct DeleteDhcpOptionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DhcpOptionsId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) ] @@ -20120,16 +24773,16 @@ extension Ec2 { } public struct DescribeHostReservationsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "HostReservationSet", location: .body(locationName: "hostReservationSet"), required: false, type: .list), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "HostReservationSet", location: .body(locationName: "hostReservationSet"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] /// Details about the reservation's configuration. - public let hostReservationSet: [HostReservation]? + public let hostReservationSet: HostReservationSet? /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. public let nextToken: String? - public init(hostReservationSet: [HostReservation]? = nil, nextToken: String? = nil) { + public init(hostReservationSet: HostReservationSet? = nil, nextToken: String? = nil) { self.hostReservationSet = hostReservationSet self.nextToken = nextToken } @@ -20148,7 +24801,7 @@ extension Ec2 { } public struct ModifyNetworkInterfaceAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .structure), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: true, type: .string), AWSShapeMember(label: "Attachment", location: .body(locationName: "attachment"), required: false, type: .structure), @@ -20188,23 +24841,8 @@ extension Ec2 { } } - public struct ReservedInstancesIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReservedInstancesId", required: false, type: .list) - ] - public let reservedInstancesId: [String]? - - public init(reservedInstancesId: [String]? = nil) { - self.reservedInstancesId = reservedInstancesId - } - - private enum CodingKeys: String, CodingKey { - case reservedInstancesId = "ReservedInstancesId" - } - } - public struct AttributeBooleanValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", location: .body(locationName: "value"), required: false, type: .boolean) ] /// The attribute value. The valid values are true or false. @@ -20220,7 +24858,7 @@ extension Ec2 { } public struct AttachVpnGatewayRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "VpnGatewayId", required: true, type: .string) @@ -20245,8 +24883,23 @@ extension Ec2 { } } + public struct ReservedInstancesIdStringList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedInstancesId", required: false, type: .list) + ] + public let reservedInstancesId: [String]? + + public init(reservedInstancesId: [String]? = nil) { + self.reservedInstancesId = reservedInstancesId + } + + private enum CodingKeys: String, CodingKey { + case reservedInstancesId = "ReservedInstancesId" + } + } + public struct ActiveInstanceSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ActiveInstance]? @@ -20260,8 +24913,24 @@ extension Ec2 { } } + public struct SuccessfulInstanceCreditSpecificationItem: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string) + ] + /// The ID of the instance. + public let instanceId: String? + + public init(instanceId: String? = nil) { + self.instanceId = instanceId + } + + private enum CodingKeys: String, CodingKey { + case instanceId = "instanceId" + } + } + public struct CreateEgressOnlyInternetGatewayResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientToken", location: .body(locationName: "clientToken"), required: false, type: .string), AWSShapeMember(label: "EgressOnlyInternetGateway", location: .body(locationName: "egressOnlyInternetGateway"), required: false, type: .structure) ] @@ -20289,7 +24958,7 @@ extension Ec2 { } public struct NetworkInterfaceAttachmentChanges: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeleteOnTermination", location: .body(locationName: "deleteOnTermination"), required: false, type: .boolean), AWSShapeMember(label: "AttachmentId", location: .body(locationName: "attachmentId"), required: false, type: .string) ] @@ -20310,7 +24979,7 @@ extension Ec2 { } public struct CancelExportTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExportTaskId", location: .body(locationName: "exportTaskId"), required: true, type: .string) ] /// The ID of the export task. This is the ID returned by CreateInstanceExportTask. @@ -20326,7 +24995,7 @@ extension Ec2 { } public struct ResetImageAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attribute", required: true, type: .enum), AWSShapeMember(label: "ImageId", required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -20352,7 +25021,7 @@ extension Ec2 { } public struct RequestHostIdSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [String]? @@ -20362,12 +25031,33 @@ extension Ec2 { } private enum CodingKeys: String, CodingKey { - case item = "item" + case item = "item" + } + } + + public struct SecurityGroupIdentifier: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupId", location: .body(locationName: "groupId"), required: false, type: .string), + AWSShapeMember(label: "GroupName", location: .body(locationName: "groupName"), required: false, type: .string) + ] + /// The ID of the security group. + public let groupId: String? + /// The name of the security group. + public let groupName: String? + + public init(groupId: String? = nil, groupName: String? = nil) { + self.groupId = groupId + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case groupId = "groupId" + case groupName = "groupName" } } public struct AssociateRouteTableRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", location: .body(locationName: "subnetId"), required: true, type: .string), AWSShapeMember(label: "RouteTableId", location: .body(locationName: "routeTableId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -20392,29 +25082,55 @@ extension Ec2 { } } - public struct PrivateIpAddressSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Primary", location: .body(locationName: "primary"), required: false, type: .boolean), - AWSShapeMember(label: "PrivateIpAddress", location: .body(locationName: "privateIpAddress"), required: true, type: .string) + public enum InterfacePermissionType: String, CustomStringConvertible, Codable { + case instanceAttach = "INSTANCE-ATTACH" + case eipAssociate = "EIP-ASSOCIATE" + public var description: String { return self.rawValue } + } + + public struct ElasticGpuSpecificationResponseList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) ] - /// Indicates whether the private IPv4 address is the primary private IPv4 address. Only one IPv4 address can be designated as primary. - public let primary: Bool? - /// The private IPv4 addresses. - public let privateIpAddress: String + public let item: [ElasticGpuSpecificationResponse]? - public init(primary: Bool? = nil, privateIpAddress: String) { - self.primary = primary - self.privateIpAddress = privateIpAddress + public init(item: [ElasticGpuSpecificationResponse]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case primary = "primary" - case privateIpAddress = "privateIpAddress" + case item = "item" + } + } + + public struct ReplaceNetworkAclAssociationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: true, type: .string), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "NetworkAclId", location: .body(locationName: "networkAclId"), required: true, type: .string) + ] + /// The ID of the current association between the original network ACL and the subnet. + public let associationId: String + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The ID of the new network ACL to associate with the subnet. + public let networkAclId: String + + public init(associationId: String, dryRun: Bool? = nil, networkAclId: String) { + self.associationId = associationId + self.dryRun = dryRun + self.networkAclId = networkAclId + } + + private enum CodingKeys: String, CodingKey { + case associationId = "associationId" + case dryRun = "dryRun" + case networkAclId = "networkAclId" } } public struct ClassicLinkInstance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), AWSShapeMember(label: "InstanceId", location: .body(locationName: "instanceId"), required: false, type: .string), AWSShapeMember(label: "Groups", location: .body(locationName: "groupSet"), required: false, type: .structure), @@ -20445,14 +25161,14 @@ extension Ec2 { } public struct DescribePlacementGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), AWSShapeMember(label: "GroupNames", location: .body(locationName: "groupName"), required: false, type: .list) ] /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// One or more filters. group-name - The name of the placement group. state - The state of the placement group (pending | available | deleting | deleted). strategy - The strategy of the placement group (cluster). + /// One or more filters. group-name - The name of the placement group. state - The state of the placement group (pending | available | deleting | deleted). strategy - The strategy of the placement group (cluster | spread). public let filters: FilterList? /// One or more placement group names. Default: Describes all your placement groups, or only those otherwise specified. public let groupNames: [String]? @@ -20470,34 +25186,90 @@ extension Ec2 { } } - public struct ReplaceNetworkAclAssociationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AssociationId", location: .body(locationName: "associationId"), required: true, type: .string), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "NetworkAclId", location: .body(locationName: "networkAclId"), required: true, type: .string) + public struct CreateLaunchTemplateVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateId", required: false, type: .string), + AWSShapeMember(label: "ClientToken", required: false, type: .string), + AWSShapeMember(label: "VersionDescription", required: false, type: .string), + AWSShapeMember(label: "LaunchTemplateName", required: false, type: .string), + AWSShapeMember(label: "SourceVersion", required: false, type: .string), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "LaunchTemplateData", required: true, type: .structure) ] - /// The ID of the current association between the original network ACL and the subnet. - public let associationId: String + /// The ID of the launch template. You must specify either the launch template ID or launch template name in the request. + public let launchTemplateId: String? + /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency. + public let clientToken: String? + /// A description for the version of the launch template. + public let versionDescription: String? + /// The name of the launch template. You must specify either the launch template ID or launch template name in the request. + public let launchTemplateName: String? + /// The version number of the launch template version on which to base the new version. The new version inherits the same launch parameters as the source version, except for parameters that you specify in LaunchTemplateData. + public let sourceVersion: String? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public let dryRun: Bool? - /// The ID of the new network ACL to associate with the subnet. - public let networkAclId: String + /// The information for the launch template. + public let launchTemplateData: RequestLaunchTemplateData - public init(associationId: String, dryRun: Bool? = nil, networkAclId: String) { - self.associationId = associationId + public init(launchTemplateId: String? = nil, clientToken: String? = nil, versionDescription: String? = nil, launchTemplateName: String? = nil, sourceVersion: String? = nil, dryRun: Bool? = nil, launchTemplateData: RequestLaunchTemplateData) { + self.launchTemplateId = launchTemplateId + self.clientToken = clientToken + self.versionDescription = versionDescription + self.launchTemplateName = launchTemplateName + self.sourceVersion = sourceVersion self.dryRun = dryRun - self.networkAclId = networkAclId + self.launchTemplateData = launchTemplateData } private enum CodingKeys: String, CodingKey { - case associationId = "associationId" - case dryRun = "dryRun" - case networkAclId = "networkAclId" + case launchTemplateId = "LaunchTemplateId" + case clientToken = "ClientToken" + case versionDescription = "VersionDescription" + case launchTemplateName = "LaunchTemplateName" + case sourceVersion = "SourceVersion" + case dryRun = "DryRun" + case launchTemplateData = "LaunchTemplateData" + } + } + + public struct VpcIpv6CidrBlockAssociationSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [VpcIpv6CidrBlockAssociation]? + + public init(item: [VpcIpv6CidrBlockAssociation]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct PrivateIpAddressSpecification: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Primary", location: .body(locationName: "primary"), required: false, type: .boolean), + AWSShapeMember(label: "PrivateIpAddress", location: .body(locationName: "privateIpAddress"), required: true, type: .string) + ] + /// Indicates whether the private IPv4 address is the primary private IPv4 address. Only one IPv4 address can be designated as primary. + public let primary: Bool? + /// The private IPv4 addresses. + public let privateIpAddress: String + + public init(primary: Bool? = nil, privateIpAddress: String) { + self.primary = primary + self.privateIpAddress = privateIpAddress + } + + private enum CodingKeys: String, CodingKey { + case primary = "primary" + case privateIpAddress = "privateIpAddress" } } public struct CreateImageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "blockDeviceMapping"), required: false, type: .structure), AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), @@ -20537,23 +25309,8 @@ extension Ec2 { } } - public struct VpcIpv6CidrBlockAssociationSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) - ] - public let item: [VpcIpv6CidrBlockAssociation]? - - public init(item: [VpcIpv6CidrBlockAssociation]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "item" - } - } - public struct ModifyVpcPeeringConnectionOptionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccepterPeeringConnectionOptions", location: .body(locationName: "accepterPeeringConnectionOptions"), required: false, type: .structure), AWSShapeMember(label: "RequesterPeeringConnectionOptions", location: .body(locationName: "requesterPeeringConnectionOptions"), required: false, type: .structure) ] @@ -20573,6 +25330,27 @@ extension Ec2 { } } + public struct DeleteVpcEndpointConnectionNotificationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "ConnectionNotificationIds", location: .body(locationName: "ConnectionNotificationId"), required: true, type: .structure) + ] + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// One or more notification IDs. + public let connectionNotificationIds: ValueStringList + + public init(dryRun: Bool? = nil, connectionNotificationIds: ValueStringList) { + self.dryRun = dryRun + self.connectionNotificationIds = connectionNotificationIds + } + + private enum CodingKeys: String, CodingKey { + case dryRun = "DryRun" + case connectionNotificationIds = "ConnectionNotificationId" + } + } + public enum BatchState: String, CustomStringConvertible, Codable { case submitted = "submitted" case active = "active" @@ -20585,7 +25363,7 @@ extension Ec2 { } public struct DescribeVpcAttributeResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", location: .body(locationName: "vpcId"), required: false, type: .string), AWSShapeMember(label: "EnableDnsSupport", location: .body(locationName: "enableDnsSupport"), required: false, type: .structure), AWSShapeMember(label: "EnableDnsHostnames", location: .body(locationName: "enableDnsHostnames"), required: false, type: .structure) @@ -20610,8 +25388,23 @@ extension Ec2 { } } + public struct DnsEntrySet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [DnsEntry]? + + public init(item: [DnsEntry]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct TagDescriptionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [TagDescription]? @@ -20626,7 +25419,7 @@ extension Ec2 { } public struct SubnetIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", required: false, type: .list) ] public let subnetId: [String]? @@ -20641,7 +25434,7 @@ extension Ec2 { } public struct ModifyVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeType", required: false, type: .enum), AWSShapeMember(label: "DryRun", required: false, type: .boolean), AWSShapeMember(label: "Iops", required: false, type: .integer), @@ -20675,8 +25468,24 @@ extension Ec2 { } } + public struct DescribeCustomerGatewaysResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CustomerGateways", location: .body(locationName: "customerGatewaySet"), required: false, type: .structure) + ] + /// Information about one or more customer gateways. + public let customerGateways: CustomerGatewayList? + + public init(customerGateways: CustomerGatewayList? = nil) { + self.customerGateways = customerGateways + } + + private enum CodingKeys: String, CodingKey { + case customerGateways = "customerGatewaySet" + } + } + public struct DhcpConfigurationValueList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [AttributeValue]? @@ -20690,24 +25499,64 @@ extension Ec2 { } } - public struct DescribeCustomerGatewaysResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CustomerGateways", location: .body(locationName: "customerGatewaySet"), required: false, type: .structure) + public struct DescribeLaunchTemplateVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxVersion", required: false, type: .string), + AWSShapeMember(label: "LaunchTemplateId", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer), + AWSShapeMember(label: "LaunchTemplateName", required: false, type: .string), + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "MinVersion", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Versions", location: .body(locationName: "LaunchTemplateVersion"), required: false, type: .structure) ] - /// Information about one or more customer gateways. - public let customerGateways: CustomerGatewayList? + /// The version number up to which to describe launch template versions. + public let maxVersion: String? + /// The ID of the launch template. You must specify either the launch template ID or launch template name in the request. + public let launchTemplateId: String? + /// The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. + public let maxResults: Int32? + /// The name of the launch template. You must specify either the launch template ID or launch template name in the request. + public let launchTemplateName: String? + /// One or more filters. create-time - The time the launch template version was created. ebs-optimized - A boolean that indicates whether the instance is optimized for Amazon EBS I/O. iam-instance-profile - The ARN of the IAM instance profile. image-id - The ID of the AMI. instance-type - The instance type. is-default-version - A boolean that indicates whether the launch template version is the default version. kernel-id - The kernel ID. ram-disk-id - The RAM disk ID. + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The version number after which to describe launch template versions. + public let minVersion: String? + /// The token to request the next page of results. + public let nextToken: String? + /// One or more versions of the launch template. + public let versions: VersionStringList? - public init(customerGateways: CustomerGatewayList? = nil) { - self.customerGateways = customerGateways + public init(maxVersion: String? = nil, launchTemplateId: String? = nil, maxResults: Int32? = nil, launchTemplateName: String? = nil, filters: FilterList? = nil, dryRun: Bool? = nil, minVersion: String? = nil, nextToken: String? = nil, versions: VersionStringList? = nil) { + self.maxVersion = maxVersion + self.launchTemplateId = launchTemplateId + self.maxResults = maxResults + self.launchTemplateName = launchTemplateName + self.filters = filters + self.dryRun = dryRun + self.minVersion = minVersion + self.nextToken = nextToken + self.versions = versions } private enum CodingKeys: String, CodingKey { - case customerGateways = "customerGatewaySet" + case maxVersion = "MaxVersion" + case launchTemplateId = "LaunchTemplateId" + case maxResults = "MaxResults" + case launchTemplateName = "LaunchTemplateName" + case filters = "Filter" + case dryRun = "DryRun" + case minVersion = "MinVersion" + case nextToken = "NextToken" + case versions = "LaunchTemplateVersion" } } public struct ModifyInstanceAttributeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", location: .body(locationName: "blockDeviceMapping"), required: false, type: .structure), AWSShapeMember(label: "DisableApiTermination", location: .body(locationName: "disableApiTermination"), required: false, type: .structure), AWSShapeMember(label: "UserData", location: .body(locationName: "userData"), required: false, type: .structure), @@ -20727,15 +25576,15 @@ extension Ec2 { ] /// Modifies the DeleteOnTermination attribute for volumes that are currently attached. The volume must be owned by the caller. If no value is specified for DeleteOnTermination, the default is true and the volume is deleted when the instance is terminated. To add instance store volumes to an Amazon EBS-backed instance, you must add them when you launch the instance. For more information, see Updating the Block Device Mapping when Launching an Instance in the Amazon Elastic Compute Cloud User Guide. public let blockDeviceMappings: InstanceBlockDeviceMappingSpecificationList? - /// If the value is true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this paramater for Spot Instances. + /// If the value is true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this parameter for Spot Instances. public let disableApiTermination: AttributeBooleanValue? - /// Changes the instance's user data to the specified value. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text. + /// Changes the instance's user data to the specified value. If you are using an AWS SDK or command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text. public let userData: BlobAttributeValue? /// Set to simple to enable enhanced networking with the Intel 82599 Virtual Function interface for the instance. There is no way to disable enhanced networking with the Intel 82599 Virtual Function interface at this time. This option is supported only for HVM instances. Specifying this option with a PV instance can make it unreachable. public let sriovNetSupport: AttributeValue? - /// Specifies whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. + /// Specifies whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. public let ebsOptimized: AttributeBooleanValue? - /// Specifies whether source/destination checking is enabled. A value of true means that checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT. + /// Specifies whether source/destination checking is enabled. A value of true means that checking is enabled, and false means that checking is disabled. This value must be false for a NAT instance to perform NAT. public let sourceDestCheck: AttributeBooleanValue? /// The name of the attribute. public let attribute: InstanceAttributeName? @@ -20798,7 +25647,7 @@ extension Ec2 { } public struct ScheduledInstanceRecurrence: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Frequency", location: .body(locationName: "frequency"), required: false, type: .string), AWSShapeMember(label: "OccurrenceUnit", location: .body(locationName: "occurrenceUnit"), required: false, type: .string), AWSShapeMember(label: "OccurrenceRelativeToEnd", location: .body(locationName: "occurrenceRelativeToEnd"), required: false, type: .boolean), @@ -20834,7 +25683,7 @@ extension Ec2 { } public struct CreateVpnGatewayResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpnGateway", location: .body(locationName: "vpnGateway"), required: false, type: .structure) ] /// Information about the virtual private gateway. @@ -20849,8 +25698,34 @@ extension Ec2 { } } + public struct DescribeVpcClassicLinkDnsSupportRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcIds", required: false, type: .structure), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + /// One or more VPC IDs. + public let vpcIds: VpcClassicLinkIdList? + /// The token for the next set of items to return. (You received this token from a prior call.) + public let nextToken: String? + /// The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. + public let maxResults: Int32? + + public init(vpcIds: VpcClassicLinkIdList? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.vpcIds = vpcIds + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case vpcIds = "VpcIds" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + public struct SnapshotDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .string), AWSShapeMember(label: "Progress", location: .body(locationName: "progress"), required: false, type: .string), AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), @@ -20910,34 +25785,8 @@ extension Ec2 { } } - public struct DescribeVpcClassicLinkDnsSupportRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcIds", required: false, type: .structure), - AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) - ] - /// One or more VPC IDs. - public let vpcIds: VpcClassicLinkIdList? - /// The token for the next set of items to return. (You received this token from a prior call.) - public let nextToken: String? - /// The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. - public let maxResults: Int32? - - public init(vpcIds: VpcClassicLinkIdList? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { - self.vpcIds = vpcIds - self.nextToken = nextToken - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case vpcIds = "VpcIds" - case nextToken = "nextToken" - case maxResults = "maxResults" - } - } - public struct DeleteNatGatewayResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NatGatewayId", location: .body(locationName: "natGatewayId"), required: false, type: .string) ] /// The ID of the NAT gateway. @@ -20953,7 +25802,7 @@ extension Ec2 { } public struct AttachNetworkInterfaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceIndex", location: .body(locationName: "deviceIndex"), required: true, type: .integer), AWSShapeMember(label: "NetworkInterfaceId", location: .body(locationName: "networkInterfaceId"), required: true, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), @@ -20983,8 +25832,13 @@ extension Ec2 { } } + public enum ElasticGpuState: String, CustomStringConvertible, Codable { + case attached = "ATTACHED" + public var description: String { return self.rawValue } + } + public struct PrivateIpAddressStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrivateIpAddress", required: false, type: .list) ] public let privateIpAddress: [String]? @@ -20999,7 +25853,7 @@ extension Ec2 { } public struct IpPermission: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserIdGroupPairs", location: .body(locationName: "groups"), required: false, type: .structure), AWSShapeMember(label: "IpRanges", location: .body(locationName: "ipRanges"), required: false, type: .structure), AWSShapeMember(label: "Ipv6Ranges", location: .body(locationName: "ipv6Ranges"), required: false, type: .structure), @@ -21016,11 +25870,11 @@ extension Ec2 { public let ipv6Ranges: Ipv6RangeList? /// (Valid for AuthorizeSecurityGroupEgress, RevokeSecurityGroupEgress and DescribeSecurityGroups only) One or more prefix list IDs for an AWS service. In an AuthorizeSecurityGroupEgress request, this is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. public let prefixListIds: PrefixListIdList? - /// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes for the specified ICMP type. + /// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes for the specified ICMP type. If you specify all ICMP/ICMPv6 types, you must specify all codes. public let toPort: Int32? /// The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). [EC2-VPC only] Use -1 to specify all protocols. When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or 58 (ICMPv6) allows traffic on all ports, regardless of any port range you specify. For tcp, udp, and icmp, you must specify a port range. For 58 (ICMPv6), you can optionally specify a port range; if you don't, traffic for all types and codes is allowed when authorizing rules. public let ipProtocol: String? - /// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types. + /// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes. public let fromPort: Int32? public init(userIdGroupPairs: UserIdGroupPairList? = nil, ipRanges: IpRangeList? = nil, ipv6Ranges: Ipv6RangeList? = nil, prefixListIds: PrefixListIdList? = nil, toPort: Int32? = nil, ipProtocol: String? = nil, fromPort: Int32? = nil) { @@ -21045,7 +25899,7 @@ extension Ec2 { } public struct VgwTelemetry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), AWSShapeMember(label: "LastStatusChange", location: .body(locationName: "lastStatusChange"), required: false, type: .timestamp), AWSShapeMember(label: "OutsideIpAddress", location: .body(locationName: "outsideIpAddress"), required: false, type: .string), @@ -21080,23 +25934,59 @@ extension Ec2 { } } - public struct PrefixListIdList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) + public struct PrefixListIdList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [PrefixListId]? + + public init(item: [PrefixListId]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct Ipv6CidrBlockSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [Ipv6CidrBlock]? + + public init(item: [Ipv6CidrBlock]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + + public struct LaunchTemplateConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateSpecification", location: .body(locationName: "launchTemplateSpecification"), required: false, type: .structure), + AWSShapeMember(label: "Overrides", location: .body(locationName: "overrides"), required: false, type: .structure) ] - public let item: [PrefixListId]? + /// The launch template. + public let launchTemplateSpecification: FleetLaunchTemplateSpecification? + /// Any parameters that you specify override the same parameters in the launch template. + public let overrides: LaunchTemplateOverridesList? - public init(item: [PrefixListId]? = nil) { - self.item = item + public init(launchTemplateSpecification: FleetLaunchTemplateSpecification? = nil, overrides: LaunchTemplateOverridesList? = nil) { + self.launchTemplateSpecification = launchTemplateSpecification + self.overrides = overrides } private enum CodingKeys: String, CodingKey { - case item = "item" + case launchTemplateSpecification = "launchTemplateSpecification" + case overrides = "overrides" } } public struct ReplaceNetworkAclAssociationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NewAssociationId", location: .body(locationName: "newAssociationId"), required: false, type: .string) ] /// The ID of the new association. @@ -21112,7 +26002,7 @@ extension Ec2 { } public struct NetworkAclEntryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [NetworkAclEntry]? @@ -21126,23 +26016,8 @@ extension Ec2 { } } - public struct Ipv6CidrBlockSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "item", required: false, type: .list) - ] - public let item: [Ipv6CidrBlock]? - - public init(item: [Ipv6CidrBlock]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "item" - } - } - public struct DiskImageVolumeDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Size", location: .body(locationName: "size"), required: false, type: .long), AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: true, type: .string) ] @@ -21162,18 +26037,8 @@ extension Ec2 { } } - public enum VolumeState: String, CustomStringConvertible, Codable { - case creating = "creating" - case available = "available" - case inUse = "in-use" - case deleting = "deleting" - case deleted = "deleted" - case error = "error" - public var description: String { return self.rawValue } - } - public struct AttributeValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", location: .body(locationName: "value"), required: false, type: .string) ] /// The attribute value. Note that the value is case-sensitive. @@ -21188,8 +26053,33 @@ extension Ec2 { } } + public struct LaunchTemplateTagSpecificationRequestList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LaunchTemplateTagSpecificationRequest", required: false, type: .list) + ] + public let launchTemplateTagSpecificationRequest: [LaunchTemplateTagSpecificationRequest]? + + public init(launchTemplateTagSpecificationRequest: [LaunchTemplateTagSpecificationRequest]? = nil) { + self.launchTemplateTagSpecificationRequest = launchTemplateTagSpecificationRequest + } + + private enum CodingKeys: String, CodingKey { + case launchTemplateTagSpecificationRequest = "LaunchTemplateTagSpecificationRequest" + } + } + + public enum VolumeState: String, CustomStringConvertible, Codable { + case creating = "creating" + case available = "available" + case inUse = "in-use" + case deleting = "deleting" + case deleted = "deleted" + case error = "error" + public var description: String { return self.rawValue } + } + public struct BundleIdStringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BundleId", required: false, type: .list) ] public let bundleId: [String]? @@ -21203,45 +26093,50 @@ extension Ec2 { } } - public struct ImportInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ConversionTask", location: .body(locationName: "conversionTask"), required: false, type: .structure) + public struct ModifyVpcTenancyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcId", required: true, type: .string), + AWSShapeMember(label: "InstanceTenancy", required: true, type: .enum), + AWSShapeMember(label: "DryRun", required: false, type: .boolean) ] - /// Information about the conversion task. - public let conversionTask: ConversionTask? + /// The ID of the VPC. + public let vpcId: String + /// The instance tenancy attribute for the VPC. + public let instanceTenancy: VpcTenancy + /// Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? - public init(conversionTask: ConversionTask? = nil) { - self.conversionTask = conversionTask + public init(vpcId: String, instanceTenancy: VpcTenancy, dryRun: Bool? = nil) { + self.vpcId = vpcId + self.instanceTenancy = instanceTenancy + self.dryRun = dryRun } private enum CodingKeys: String, CodingKey { - case conversionTask = "conversionTask" + case vpcId = "VpcId" + case instanceTenancy = "InstanceTenancy" + case dryRun = "DryRun" } } - public struct CreateDhcpOptionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DhcpConfigurations", location: .body(locationName: "dhcpConfiguration"), required: true, type: .structure), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + public struct ImportInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConversionTask", location: .body(locationName: "conversionTask"), required: false, type: .structure) ] - /// A DHCP configuration option. - public let dhcpConfigurations: NewDhcpConfigurationList - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? + /// Information about the conversion task. + public let conversionTask: ConversionTask? - public init(dhcpConfigurations: NewDhcpConfigurationList, dryRun: Bool? = nil) { - self.dhcpConfigurations = dhcpConfigurations - self.dryRun = dryRun + public init(conversionTask: ConversionTask? = nil) { + self.conversionTask = conversionTask } private enum CodingKeys: String, CodingKey { - case dhcpConfigurations = "dhcpConfiguration" - case dryRun = "dryRun" + case conversionTask = "conversionTask" } } public struct ModifyIdentityIdFormatRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrincipalArn", location: .body(locationName: "principalArn"), required: true, type: .string), AWSShapeMember(label: "Resource", location: .body(locationName: "resource"), required: true, type: .string), AWSShapeMember(label: "UseLongIds", location: .body(locationName: "useLongIds"), required: true, type: .boolean) @@ -21266,23 +26161,44 @@ extension Ec2 { } } + public struct CreateDhcpOptionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DhcpConfigurations", location: .body(locationName: "dhcpConfiguration"), required: true, type: .structure), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) + ] + /// A DHCP configuration option. + public let dhcpConfigurations: NewDhcpConfigurationList + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + + public init(dhcpConfigurations: NewDhcpConfigurationList, dryRun: Bool? = nil) { + self.dhcpConfigurations = dhcpConfigurations + self.dryRun = dryRun + } + + private enum CodingKeys: String, CodingKey { + case dhcpConfigurations = "dhcpConfiguration" + case dryRun = "dryRun" + } + } + public struct SpotFleetRequestConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActivityStatus", location: .body(locationName: "activityStatus"), required: false, type: .enum), AWSShapeMember(label: "CreateTime", location: .body(locationName: "createTime"), required: true, type: .timestamp), AWSShapeMember(label: "SpotFleetRequestState", location: .body(locationName: "spotFleetRequestState"), required: true, type: .enum), AWSShapeMember(label: "SpotFleetRequestConfig", location: .body(locationName: "spotFleetRequestConfig"), required: true, type: .structure), AWSShapeMember(label: "SpotFleetRequestId", location: .body(locationName: "spotFleetRequestId"), required: true, type: .string) ] - /// The progress of the Spot fleet request. If there is an error, the status is error. After all bids are placed, the status is pending_fulfillment. If the size of the fleet is equal to or greater than its target capacity, the status is fulfilled. If the size of the fleet is decreased, the status is pending_termination while Spot instances are terminating. + /// The progress of the Spot Fleet request. If there is an error, the status is error. After all requests are placed, the status is pending_fulfillment. If the size of the fleet is equal to or greater than its target capacity, the status is fulfilled. If the size of the fleet is decreased, the status is pending_termination while Spot Instances are terminating. public let activityStatus: ActivityStatus? /// The creation date and time of the request. public let createTime: TimeStamp - /// The state of the Spot fleet request. + /// The state of the Spot Fleet request. public let spotFleetRequestState: BatchState - /// Information about the configuration of the Spot fleet request. + /// The configuration of the Spot Fleet request. public let spotFleetRequestConfig: SpotFleetRequestConfigData - /// The ID of the Spot fleet request. + /// The ID of the Spot Fleet request. public let spotFleetRequestId: String public init(activityStatus: ActivityStatus? = nil, createTime: TimeStamp, spotFleetRequestState: BatchState, spotFleetRequestConfig: SpotFleetRequestConfigData, spotFleetRequestId: String) { @@ -21302,8 +26218,23 @@ extension Ec2 { } } + public struct CidrBlockSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "item", required: false, type: .list) + ] + public let item: [CidrBlock]? + + public init(item: [CidrBlock]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "item" + } + } + public struct ModifyHostsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Successful", location: .body(locationName: "successful"), required: false, type: .structure), AWSShapeMember(label: "Unsuccessful", location: .body(locationName: "unsuccessful"), required: false, type: .structure) ] @@ -21324,7 +26255,7 @@ extension Ec2 { } public struct DisassociateAddressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociationId", required: false, type: .string), AWSShapeMember(label: "PublicIp", required: false, type: .string), AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean) @@ -21350,7 +26281,7 @@ extension Ec2 { } public struct ScheduledInstancesEbs: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .string), AWSShapeMember(label: "DeleteOnTermination", required: false, type: .boolean), AWSShapeMember(label: "VolumeSize", required: false, type: .integer), @@ -21390,8 +26321,39 @@ extension Ec2 { } } + public struct DescribeSpotFleetRequestsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SpotFleetRequestIds", location: .body(locationName: "spotFleetRequestId"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + /// The IDs of the Spot Fleet requests. + public let spotFleetRequestIds: ValueStringList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The token for the next set of results. + public let nextToken: String? + /// The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value. + public let maxResults: Int32? + + public init(spotFleetRequestIds: ValueStringList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.spotFleetRequestIds = spotFleetRequestIds + self.dryRun = dryRun + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case spotFleetRequestIds = "spotFleetRequestId" + case dryRun = "dryRun" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + public struct UnmonitorInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceMonitorings", location: .body(locationName: "instancesSet"), required: false, type: .structure) ] /// The monitoring information. @@ -21406,34 +26368,44 @@ extension Ec2 { } } - public struct InternetGateway: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), - AWSShapeMember(label: "InternetGatewayId", location: .body(locationName: "internetGatewayId"), required: false, type: .string), - AWSShapeMember(label: "Attachments", location: .body(locationName: "attachmentSet"), required: false, type: .structure) + public struct DescribeElasticGpusRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ElasticGpuIds", location: .body(locationName: "ElasticGpuId"), required: false, type: .structure), + AWSShapeMember(label: "Filters", location: .body(locationName: "Filter"), required: false, type: .structure), + AWSShapeMember(label: "DryRun", required: false, type: .boolean), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// Any tags assigned to the Internet gateway. - public let tags: TagList? - /// The ID of the Internet gateway. - public let internetGatewayId: String? - /// Any VPCs attached to the Internet gateway. - public let attachments: InternetGatewayAttachmentList? + /// One or more Elastic GPU IDs. + public let elasticGpuIds: ElasticGpuIdSet? + /// One or more filters. availability-zone - The Availability Zone in which the Elastic GPU resides. elastic-gpu-health - The status of the Elastic GPU (OK | IMPAIRED). elastic-gpu-state - The state of the Elastic GPU (ATTACHED). elastic-gpu-type - The type of Elastic GPU; for example, eg1.medium. instance-id - The ID of the instance to which the Elastic GPU is associated. + public let filters: FilterList? + /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. + public let dryRun: Bool? + /// The token to request the next page of results. + public let nextToken: String? + /// The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. + public let maxResults: Int32? - public init(tags: TagList? = nil, internetGatewayId: String? = nil, attachments: InternetGatewayAttachmentList? = nil) { - self.tags = tags - self.internetGatewayId = internetGatewayId - self.attachments = attachments + public init(elasticGpuIds: ElasticGpuIdSet? = nil, filters: FilterList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.elasticGpuIds = elasticGpuIds + self.filters = filters + self.dryRun = dryRun + self.nextToken = nextToken + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case tags = "tagSet" - case internetGatewayId = "internetGatewayId" - case attachments = "attachmentSet" + case elasticGpuIds = "ElasticGpuId" + case filters = "Filter" + case dryRun = "DryRun" + case nextToken = "NextToken" + case maxResults = "MaxResults" } } public struct CreateVolumePermissionModifications: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Remove", required: false, type: .structure), AWSShapeMember(label: "Add", required: false, type: .structure) ] @@ -21453,39 +26425,34 @@ extension Ec2 { } } - public struct DescribeSpotFleetRequestsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SpotFleetRequestIds", location: .body(locationName: "spotFleetRequestId"), required: false, type: .structure), - AWSShapeMember(label: "DryRun", location: .body(locationName: "dryRun"), required: false, type: .boolean), - AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + public struct InternetGateway: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", location: .body(locationName: "tagSet"), required: false, type: .structure), + AWSShapeMember(label: "InternetGatewayId", location: .body(locationName: "internetGatewayId"), required: false, type: .string), + AWSShapeMember(label: "Attachments", location: .body(locationName: "attachmentSet"), required: false, type: .structure) ] - /// The IDs of the Spot fleet requests. - public let spotFleetRequestIds: ValueStringList? - /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. - public let dryRun: Bool? - /// The token for the next set of results. - public let nextToken: String? - /// The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value. - public let maxResults: Int32? + /// Any tags assigned to the Internet gateway. + public let tags: TagList? + /// The ID of the Internet gateway. + public let internetGatewayId: String? + /// Any VPCs attached to the Internet gateway. + public let attachments: InternetGatewayAttachmentList? - public init(spotFleetRequestIds: ValueStringList? = nil, dryRun: Bool? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { - self.spotFleetRequestIds = spotFleetRequestIds - self.dryRun = dryRun - self.nextToken = nextToken - self.maxResults = maxResults + public init(tags: TagList? = nil, internetGatewayId: String? = nil, attachments: InternetGatewayAttachmentList? = nil) { + self.tags = tags + self.internetGatewayId = internetGatewayId + self.attachments = attachments } private enum CodingKeys: String, CodingKey { - case spotFleetRequestIds = "spotFleetRequestId" - case dryRun = "dryRun" - case nextToken = "nextToken" - case maxResults = "maxResults" + case tags = "tagSet" + case internetGatewayId = "internetGatewayId" + case attachments = "attachmentSet" } } public struct DescribeNetworkInterfacesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NetworkInterfaces", location: .body(locationName: "networkInterfaceSet"), required: false, type: .structure) ] /// Information about one or more network interfaces. @@ -21500,23 +26467,8 @@ extension Ec2 { } } - public struct AssociationIdList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AssociationId", required: false, type: .list) - ] - public let associationId: [String]? - - public init(associationId: [String]? = nil) { - self.associationId = associationId - } - - private enum CodingKeys: String, CodingKey { - case associationId = "AssociationId" - } - } - public struct TargetConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OfferingId", required: true, type: .string), AWSShapeMember(label: "InstanceCount", required: false, type: .integer) ] @@ -21536,8 +26488,23 @@ extension Ec2 { } } + public struct AssociationIdList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssociationId", required: false, type: .list) + ] + public let associationId: [String]? + + public init(associationId: [String]? = nil) { + self.associationId = associationId + } + + private enum CodingKeys: String, CodingKey { + case associationId = "AssociationId" + } + } + public struct DescribeInstanceStatusResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceStatuses", location: .body(locationName: "instanceStatusSet"), required: false, type: .structure), AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) ] @@ -21557,11 +26524,9 @@ extension Ec2 { } } - public enum NetworkInterfaceStatus: String, CustomStringConvertible, Codable { - case available = "available" - case attaching = "attaching" - case inUse = "in-use" - case detaching = "detaching" + public enum ElasticGpuStatus: String, CustomStringConvertible, Codable { + case ok = "OK" + case impaired = "IMPAIRED" public var description: String { return self.rawValue } } diff --git a/Sources/AWSSDKSwift/Services/ecr/Ecr_API.swift b/Sources/AWSSDKSwift/Services/ecr/Ecr_API.swift index 2f85ee3d6bf..3d4ce3cf2fe 100644 --- a/Sources/AWSSDKSwift/Services/ecr/Ecr_API.swift +++ b/Sources/AWSSDKSwift/Services/ecr/Ecr_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon EC2 Container Registry (Amazon ECR) is a managed AWS Docker registry service. Customers can use the familiar Docker CLI to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry. Amazon ECR supports private Docker repositories with resource-based permissions using AWS IAM so that specific users or Amazon EC2 instances can access repositories and images. Developers can use the Docker CLI to author and manage images. +Amazon EC2 Container Registry (Amazon ECR) is a managed Docker registry service. Customers can use the familiar Docker CLI to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry. Amazon ECR supports private Docker repositories with resource-based permissions using IAM so that specific users or Amazon EC2 instances can access repositories and images. Developers can use the Docker CLI to author and manage images. */ public struct Ecr { @@ -25,17 +25,27 @@ public struct Ecr { ) } - /// Retrieves the pre-signed Amazon S3 download URL corresponding to an image layer. You can only get URLs for image layers that are referenced in an image. This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. - public func getDownloadUrlForLayer(_ input: GetDownloadUrlForLayerRequest) throws -> GetDownloadUrlForLayerResponse { - return try client.send(operation: "GetDownloadUrlForLayer", path: "/", httpMethod: "POST", input: input) - } - /// Deletes the repository policy from a specified repository. public func deleteRepositoryPolicy(_ input: DeleteRepositoryPolicyRequest) throws -> DeleteRepositoryPolicyResponse { return try client.send(operation: "DeleteRepositoryPolicy", path: "/", httpMethod: "POST", input: input) } - /// Inform Amazon ECR that the image layer upload for a specified registry, repository name, and upload ID, has completed. You can optionally provide a sha256 digest of the image layer for data validation purposes. This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Notify Amazon ECR that you intend to upload an image layer. This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + public func initiateLayerUpload(_ input: InitiateLayerUploadRequest) throws -> InitiateLayerUploadResponse { + return try client.send(operation: "InitiateLayerUpload", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the results of the specified lifecycle policy preview request. + public func getLifecyclePolicyPreview(_ input: GetLifecyclePolicyPreviewRequest) throws -> GetLifecyclePolicyPreviewResponse { + return try client.send(operation: "GetLifecyclePolicyPreview", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the pre-signed Amazon S3 download URL corresponding to an image layer. You can only get URLs for image layers that are referenced in an image. This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + public func getDownloadUrlForLayer(_ input: GetDownloadUrlForLayerRequest) throws -> GetDownloadUrlForLayerResponse { + return try client.send(operation: "GetDownloadUrlForLayer", path: "/", httpMethod: "POST", input: input) + } + + /// Informs Amazon ECR that the image layer upload has completed for a specified registry, repository name, and upload ID. You can optionally provide a sha256 digest of the image layer for data validation purposes. This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. public func completeLayerUpload(_ input: CompleteLayerUploadRequest) throws -> CompleteLayerUploadResponse { return try client.send(operation: "CompleteLayerUpload", path: "/", httpMethod: "POST", input: input) } @@ -55,6 +65,11 @@ public struct Ecr { return try client.send(operation: "BatchCheckLayerAvailability", path: "/", httpMethod: "POST", input: input) } + /// Uploads an image layer part to Amazon ECR. This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + public func uploadLayerPart(_ input: UploadLayerPartRequest) throws -> UploadLayerPartResponse { + return try client.send(operation: "UploadLayerPart", path: "/", httpMethod: "POST", input: input) + } + /// Deletes an existing image repository. If a repository contains images, you must use the force option to delete it. public func deleteRepository(_ input: DeleteRepositoryRequest) throws -> DeleteRepositoryResponse { return try client.send(operation: "DeleteRepository", path: "/", httpMethod: "POST", input: input) @@ -85,6 +100,16 @@ public struct Ecr { return try client.send(operation: "DescribeImages", path: "/", httpMethod: "POST", input: input) } + /// Deletes the specified lifecycle policy. + public func deleteLifecyclePolicy(_ input: DeleteLifecyclePolicyRequest) throws -> DeleteLifecyclePolicyResponse { + return try client.send(operation: "DeleteLifecyclePolicy", path: "/", httpMethod: "POST", input: input) + } + + /// Starts a preview of the specified lifecycle policy. This allows you to see the results before creating the lifecycle policy. + public func startLifecyclePolicyPreview(_ input: StartLifecyclePolicyPreviewRequest) throws -> StartLifecyclePolicyPreviewResponse { + return try client.send(operation: "StartLifecyclePolicyPreview", path: "/", httpMethod: "POST", input: input) + } + /// Gets detailed information for specified images within a specified repository. Images are specified with either imageTag or imageDigest. public func batchGetImage(_ input: BatchGetImageRequest) throws -> BatchGetImageResponse { return try client.send(operation: "BatchGetImage", path: "/", httpMethod: "POST", input: input) @@ -100,14 +125,14 @@ public struct Ecr { return try client.send(operation: "BatchDeleteImage", path: "/", httpMethod: "POST", input: input) } - /// Uploads an image layer part to Amazon ECR. This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. - public func uploadLayerPart(_ input: UploadLayerPartRequest) throws -> UploadLayerPartResponse { - return try client.send(operation: "UploadLayerPart", path: "/", httpMethod: "POST", input: input) + /// Creates or updates a lifecycle policy. + public func putLifecyclePolicy(_ input: PutLifecyclePolicyRequest) throws -> PutLifecyclePolicyResponse { + return try client.send(operation: "PutLifecyclePolicy", path: "/", httpMethod: "POST", input: input) } - /// Notify Amazon ECR that you intend to upload an image layer. This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. - public func initiateLayerUpload(_ input: InitiateLayerUploadRequest) throws -> InitiateLayerUploadResponse { - return try client.send(operation: "InitiateLayerUpload", path: "/", httpMethod: "POST", input: input) + /// Retrieves the specified lifecycle policy. + public func getLifecyclePolicy(_ input: GetLifecyclePolicyRequest) throws -> GetLifecyclePolicyResponse { + return try client.send(operation: "GetLifecyclePolicy", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/ecr/Ecr_Error.swift b/Sources/AWSSDKSwift/Services/ecr/Ecr_Error.swift index c204e97e052..0d304487c9a 100644 --- a/Sources/AWSSDKSwift/Services/ecr/Ecr_Error.swift +++ b/Sources/AWSSDKSwift/Services/ecr/Ecr_Error.swift @@ -6,10 +6,11 @@ import AWSSDKSwiftCore public enum EcrError: AWSErrorType { case serverException(message: String?) case invalidParameterException(message: String?) - case layersNotFoundException(message: String?) - case layerInaccessibleException(message: String?) case repositoryNotFoundException(message: String?) case repositoryPolicyNotFoundException(message: String?) + case lifecyclePolicyPreviewNotFoundException(message: String?) + case layersNotFoundException(message: String?) + case layerInaccessibleException(message: String?) case uploadNotFoundException(message: String?) case invalidLayerException(message: String?) case layerPartTooSmallException(message: String?) @@ -17,10 +18,12 @@ public enum EcrError: AWSErrorType { case emptyUploadException(message: String?) case repositoryAlreadyExistsException(message: String?) case limitExceededException(message: String?) + case invalidLayerPartException(message: String?) case repositoryNotEmptyException(message: String?) case imageAlreadyExistsException(message: String?) case imageNotFoundException(message: String?) - case invalidLayerPartException(message: String?) + case lifecyclePolicyNotFoundException(message: String?) + case lifecyclePolicyPreviewInProgressException(message: String?) } extension EcrError { @@ -34,14 +37,16 @@ extension EcrError { self = .serverException(message: message) case "InvalidParameterException": self = .invalidParameterException(message: message) - case "LayersNotFoundException": - self = .layersNotFoundException(message: message) - case "LayerInaccessibleException": - self = .layerInaccessibleException(message: message) case "RepositoryNotFoundException": self = .repositoryNotFoundException(message: message) case "RepositoryPolicyNotFoundException": self = .repositoryPolicyNotFoundException(message: message) + case "LifecyclePolicyPreviewNotFoundException": + self = .lifecyclePolicyPreviewNotFoundException(message: message) + case "LayersNotFoundException": + self = .layersNotFoundException(message: message) + case "LayerInaccessibleException": + self = .layerInaccessibleException(message: message) case "UploadNotFoundException": self = .uploadNotFoundException(message: message) case "InvalidLayerException": @@ -56,14 +61,18 @@ extension EcrError { self = .repositoryAlreadyExistsException(message: message) case "LimitExceededException": self = .limitExceededException(message: message) + case "InvalidLayerPartException": + self = .invalidLayerPartException(message: message) case "RepositoryNotEmptyException": self = .repositoryNotEmptyException(message: message) case "ImageAlreadyExistsException": self = .imageAlreadyExistsException(message: message) case "ImageNotFoundException": self = .imageNotFoundException(message: message) - case "InvalidLayerPartException": - self = .invalidLayerPartException(message: message) + case "LifecyclePolicyNotFoundException": + self = .lifecyclePolicyNotFoundException(message: message) + case "LifecyclePolicyPreviewInProgressException": + self = .lifecyclePolicyPreviewInProgressException(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/ecr/Ecr_Shapes.swift b/Sources/AWSSDKSwift/Services/ecr/Ecr_Shapes.swift index d8d4a1116a9..e8da536f3a7 100644 --- a/Sources/AWSSDKSwift/Services/ecr/Ecr_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/ecr/Ecr_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Ecr { public struct DescribeRepositoriesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "repositoryNames", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -37,7 +37,7 @@ extension Ecr { } public struct ListImagesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "imageIds", required: false, type: .list) ] @@ -58,7 +58,7 @@ extension Ecr { } public struct AuthorizationData: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "authorizationToken", required: false, type: .string), AWSShapeMember(label: "expiresAt", required: false, type: .timestamp), AWSShapeMember(label: "proxyEndpoint", required: false, type: .string) @@ -83,29 +83,29 @@ extension Ecr { } } - public struct BatchDeleteImageResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "failures", required: false, type: .list), - AWSShapeMember(label: "imageIds", required: false, type: .list) + public struct DeleteLifecyclePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registryId", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) ] - /// Any failures associated with the call. - public let failures: [ImageFailure]? - /// The image IDs of the deleted images. - public let imageIds: [ImageIdentifier]? + /// The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed. + public let registryId: String? + /// The name of the repository that is associated with the repository policy to
 delete. + public let repositoryName: String - public init(failures: [ImageFailure]? = nil, imageIds: [ImageIdentifier]? = nil) { - self.failures = failures - self.imageIds = imageIds + public init(registryId: String? = nil, repositoryName: String) { + self.registryId = registryId + self.repositoryName = repositoryName } private enum CodingKeys: String, CodingKey { - case failures = "failures" - case imageIds = "imageIds" + case registryId = "registryId" + case repositoryName = "repositoryName" } } public struct DescribeImagesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "imageDetails", required: false, type: .list) ] @@ -125,8 +125,29 @@ extension Ecr { } } + public struct BatchDeleteImageResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "failures", required: false, type: .list), + AWSShapeMember(label: "imageIds", required: false, type: .list) + ] + /// Any failures associated with the call. + public let failures: [ImageFailure]? + /// The image IDs of the deleted images. + public let imageIds: [ImageIdentifier]? + + public init(failures: [ImageFailure]? = nil, imageIds: [ImageIdentifier]? = nil) { + self.failures = failures + self.imageIds = imageIds + } + + private enum CodingKeys: String, CodingKey { + case failures = "failures" + case imageIds = "imageIds" + } + } + public struct DeleteRepositoryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repository", required: false, type: .structure) ] /// The repository that was deleted. @@ -141,8 +162,24 @@ extension Ecr { } } + public struct LifecyclePolicyPreviewFilter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "tagStatus", required: false, type: .enum) + ] + /// The tag status of the image. + public let tagStatus: TagStatus? + + public init(tagStatus: TagStatus? = nil) { + self.tagStatus = tagStatus + } + + private enum CodingKeys: String, CodingKey { + case tagStatus = "tagStatus" + } + } + public struct Layer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "layerSize", required: false, type: .long), AWSShapeMember(label: "layerAvailability", required: false, type: .enum), AWSShapeMember(label: "mediaType", required: false, type: .string), @@ -173,7 +210,7 @@ extension Ecr { } public struct DescribeImagesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "imageIds", required: false, type: .list), @@ -214,7 +251,7 @@ extension Ecr { } public struct ImageIdentifier: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "imageTag", required: false, type: .string), AWSShapeMember(label: "imageDigest", required: false, type: .string) ] @@ -235,7 +272,7 @@ extension Ecr { } public struct DeleteRepositoryPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "policyText", required: false, type: .string), AWSShapeMember(label: "registryId", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: false, type: .string) @@ -261,7 +298,7 @@ extension Ecr { } public struct LayerFailure: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "layerDigest", required: false, type: .string), AWSShapeMember(label: "failureCode", required: false, type: .enum), AWSShapeMember(label: "failureReason", required: false, type: .string) @@ -287,7 +324,7 @@ extension Ecr { } public struct ImageFailure: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "imageId", required: false, type: .structure), AWSShapeMember(label: "failureCode", required: false, type: .enum), AWSShapeMember(label: "failureReason", required: false, type: .string) @@ -312,8 +349,13 @@ extension Ecr { } } + public enum ImageActionType: String, CustomStringConvertible, Codable { + case expire = "EXPIRE" + public var description: String { return self.rawValue } + } + public struct BatchGetImageResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failures", required: false, type: .list), AWSShapeMember(label: "images", required: false, type: .list) ] @@ -339,8 +381,24 @@ extension Ecr { public var description: String { return self.rawValue } } + public struct GetAuthorizationTokenRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registryIds", required: false, type: .list) + ] + /// A list of AWS account IDs that are associated with the registries for which to get authorization tokens. If you do not specify a registry, the default registry is assumed. + public let registryIds: [String]? + + public init(registryIds: [String]? = nil) { + self.registryIds = registryIds + } + + private enum CodingKeys: String, CodingKey { + case registryIds = "registryIds" + } + } + public struct SetRepositoryPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "policyText", required: false, type: .string), AWSShapeMember(label: "registryId", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: false, type: .string) @@ -365,19 +423,86 @@ extension Ecr { } } - public struct GetAuthorizationTokenRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "registryIds", required: false, type: .list) + public struct StartLifecyclePolicyPreviewRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registryId", required: false, type: .string), + AWSShapeMember(label: "lifecyclePolicyText", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) ] - /// A list of AWS account IDs that are associated with the registries for which to get authorization tokens. If you do not specify a registry, the default registry is assumed. - public let registryIds: [String]? + /// The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed. + public let registryId: String? + /// The policy to be evaluated against. If you do not specify a policy, the current policy for the repository is used. + public let lifecyclePolicyText: String? + /// The name of the repository to be evaluated. + public let repositoryName: String - public init(registryIds: [String]? = nil) { - self.registryIds = registryIds + public init(registryId: String? = nil, lifecyclePolicyText: String? = nil, repositoryName: String) { + self.registryId = registryId + self.lifecyclePolicyText = lifecyclePolicyText + self.repositoryName = repositoryName } private enum CodingKeys: String, CodingKey { - case registryIds = "registryIds" + case registryId = "registryId" + case lifecyclePolicyText = "lifecyclePolicyText" + case repositoryName = "repositoryName" + } + } + + public struct StartLifecyclePolicyPreviewResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "lifecyclePolicyText", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "registryId", required: false, type: .string) + ] + /// The status of the lifecycle policy preview request. + public let status: LifecyclePolicyPreviewStatus? + /// The JSON repository policy text. + public let lifecyclePolicyText: String? + /// The repository name associated with the request. + public let repositoryName: String? + /// The registry ID associated with the request. + public let registryId: String? + + public init(status: LifecyclePolicyPreviewStatus? = nil, lifecyclePolicyText: String? = nil, repositoryName: String? = nil, registryId: String? = nil) { + self.status = status + self.lifecyclePolicyText = lifecyclePolicyText + self.repositoryName = repositoryName + self.registryId = registryId + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case lifecyclePolicyText = "lifecyclePolicyText" + case repositoryName = "repositoryName" + case registryId = "registryId" + } + } + + public struct PutLifecyclePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registryId", required: false, type: .string), + AWSShapeMember(label: "lifecyclePolicyText", required: true, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// The AWS account ID associated with the registry that contains the repository. If you do
 not specify a registry, the default registry is assumed. + public let registryId: String? + /// The JSON repository policy text to apply to the repository. + public let lifecyclePolicyText: String + /// The name of the repository to receive the policy. + public let repositoryName: String + + public init(registryId: String? = nil, lifecyclePolicyText: String, repositoryName: String) { + self.registryId = registryId + self.lifecyclePolicyText = lifecyclePolicyText + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case registryId = "registryId" + case lifecyclePolicyText = "lifecyclePolicyText" + case repositoryName = "repositoryName" } } @@ -388,7 +513,7 @@ extension Ecr { } public struct ImageDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "imageSizeInBytes", required: false, type: .long), AWSShapeMember(label: "repositoryName", required: false, type: .string), AWSShapeMember(label: "imageDigest", required: false, type: .string), @@ -429,7 +554,7 @@ extension Ecr { } public struct GetAuthorizationTokenResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "authorizationData", required: false, type: .list) ] /// A list of authorization token data objects that correspond to the registryIds values in the request. @@ -444,8 +569,29 @@ extension Ecr { } } + public struct GetLifecyclePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registryId", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed. + public let registryId: String? + /// The name of the repository with the policy to retrieve. + public let repositoryName: String + + public init(registryId: String? = nil, repositoryName: String) { + self.registryId = registryId + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case registryId = "registryId" + case repositoryName = "repositoryName" + } + } + public struct InitiateLayerUploadResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uploadId", required: false, type: .string), AWSShapeMember(label: "partSize", required: false, type: .long) ] @@ -466,7 +612,7 @@ extension Ecr { } public struct BatchGetImageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "acceptedMediaTypes", required: false, type: .list), AWSShapeMember(label: "imageIds", required: true, type: .list), AWSShapeMember(label: "repositoryName", required: true, type: .string), @@ -497,7 +643,7 @@ extension Ecr { } public struct DeleteRepositoryPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "registryId", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string) ] @@ -518,7 +664,7 @@ extension Ecr { } public struct GetDownloadUrlForLayerResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "layerDigest", required: false, type: .string), AWSShapeMember(label: "downloadUrl", required: false, type: .string) ] @@ -539,7 +685,7 @@ extension Ecr { } public struct Image: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "imageManifest", required: false, type: .string), AWSShapeMember(label: "imageId", required: false, type: .structure), AWSShapeMember(label: "repositoryName", required: false, type: .string), @@ -570,7 +716,7 @@ extension Ecr { } public struct CreateRepositoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repositoryName", required: true, type: .string) ] /// The name to use for the repository. The repository name may be specified on its own (such as nginx-web-app) or it can be prepended with a namespace to group the repository into a category (such as project-a/nginx-web-app). @@ -586,7 +732,7 @@ extension Ecr { } public struct GetRepositoryPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "policyText", required: false, type: .string), AWSShapeMember(label: "registryId", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: false, type: .string) @@ -612,7 +758,7 @@ extension Ecr { } public struct GetDownloadUrlForLayerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "layerDigest", required: true, type: .string), AWSShapeMember(label: "registryId", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string) @@ -638,7 +784,7 @@ extension Ecr { } public struct ListImagesFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tagStatus", required: false, type: .enum) ] /// The tag status with which to filter your ListImages results. You can filter results based on whether they are TAGGED or UNTAGGED. @@ -654,7 +800,7 @@ extension Ecr { } public struct SetRepositoryPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "force", required: false, type: .boolean), AWSShapeMember(label: "policyText", required: true, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string), @@ -685,7 +831,7 @@ extension Ecr { } public struct CreateRepositoryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repository", required: false, type: .structure) ] /// The repository that was created. @@ -701,7 +847,7 @@ extension Ecr { } public struct BatchCheckLayerAvailabilityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "layerDigests", required: true, type: .list), AWSShapeMember(label: "registryId", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string) @@ -727,13 +873,13 @@ extension Ecr { } public struct GetRepositoryPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "registryId", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string) ] /// The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed. public let registryId: String? - /// The name of the repository whose policy you want to retrieve. + /// The name of the repository with the policy to retrieve. public let repositoryName: String public init(registryId: String? = nil, repositoryName: String) { @@ -747,39 +893,39 @@ extension Ecr { } } - public struct UploadLayerPartResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "uploadId", required: false, type: .string), + public struct GetLifecyclePolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "lastEvaluatedAt", required: false, type: .timestamp), + AWSShapeMember(label: "lifecyclePolicyText", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: false, type: .string), - AWSShapeMember(label: "registryId", required: false, type: .string), - AWSShapeMember(label: "lastByteReceived", required: false, type: .long) + AWSShapeMember(label: "registryId", required: false, type: .string) ] - /// The upload ID associated with the request. - public let uploadId: String? + /// The time stamp of the last time that the lifecycle policy was run. + public let lastEvaluatedAt: TimeStamp? + /// The JSON repository policy text. + public let lifecyclePolicyText: String? /// The repository name associated with the request. public let repositoryName: String? /// The registry ID associated with the request. public let registryId: String? - /// The integer value of the last byte received in the request. - public let lastByteReceived: Int64? - public init(uploadId: String? = nil, repositoryName: String? = nil, registryId: String? = nil, lastByteReceived: Int64? = nil) { - self.uploadId = uploadId + public init(lastEvaluatedAt: TimeStamp? = nil, lifecyclePolicyText: String? = nil, repositoryName: String? = nil, registryId: String? = nil) { + self.lastEvaluatedAt = lastEvaluatedAt + self.lifecyclePolicyText = lifecyclePolicyText self.repositoryName = repositoryName self.registryId = registryId - self.lastByteReceived = lastByteReceived } private enum CodingKeys: String, CodingKey { - case uploadId = "uploadId" + case lastEvaluatedAt = "lastEvaluatedAt" + case lifecyclePolicyText = "lifecyclePolicyText" case repositoryName = "repositoryName" case registryId = "registryId" - case lastByteReceived = "lastByteReceived" } } public struct BatchCheckLayerAvailabilityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failures", required: false, type: .list), AWSShapeMember(label: "layers", required: false, type: .list) ] @@ -799,8 +945,39 @@ extension Ecr { } } + public struct UploadLayerPartResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "uploadId", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "registryId", required: false, type: .string), + AWSShapeMember(label: "lastByteReceived", required: false, type: .long) + ] + /// The upload ID associated with the request. + public let uploadId: String? + /// The repository name associated with the request. + public let repositoryName: String? + /// The registry ID associated with the request. + public let registryId: String? + /// The integer value of the last byte received in the request. + public let lastByteReceived: Int64? + + public init(uploadId: String? = nil, repositoryName: String? = nil, registryId: String? = nil, lastByteReceived: Int64? = nil) { + self.uploadId = uploadId + self.repositoryName = repositoryName + self.registryId = registryId + self.lastByteReceived = lastByteReceived + } + + private enum CodingKeys: String, CodingKey { + case uploadId = "uploadId" + case repositoryName = "repositoryName" + case registryId = "registryId" + case lastByteReceived = "lastByteReceived" + } + } + public struct PutImageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "imageTag", required: false, type: .string), AWSShapeMember(label: "imageManifest", required: true, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string), @@ -831,7 +1008,7 @@ extension Ecr { } public struct DescribeRepositoriesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repositories", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -851,24 +1028,83 @@ extension Ecr { } } - public struct InitiateLayerUploadRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "registryId", required: false, type: .string), - AWSShapeMember(label: "repositoryName", required: true, type: .string) + public struct DeleteLifecyclePolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "lastEvaluatedAt", required: false, type: .timestamp), + AWSShapeMember(label: "lifecyclePolicyText", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "registryId", required: false, type: .string) ] - /// The AWS account ID associated with the registry that you intend to upload layers to. If you do not specify a registry, the default registry is assumed. + /// The time stamp of the last time that the lifecycle policy was run. + public let lastEvaluatedAt: TimeStamp? + /// The JSON repository policy text. + public let lifecyclePolicyText: String? + /// The repository name associated with the request. + public let repositoryName: String? + /// The registry ID associated with the request. public let registryId: String? - /// The name of the repository that you intend to upload layers to. - public let repositoryName: String - public init(registryId: String? = nil, repositoryName: String) { - self.registryId = registryId + public init(lastEvaluatedAt: TimeStamp? = nil, lifecyclePolicyText: String? = nil, repositoryName: String? = nil, registryId: String? = nil) { + self.lastEvaluatedAt = lastEvaluatedAt + self.lifecyclePolicyText = lifecyclePolicyText self.repositoryName = repositoryName + self.registryId = registryId } private enum CodingKeys: String, CodingKey { + case lastEvaluatedAt = "lastEvaluatedAt" + case lifecyclePolicyText = "lifecyclePolicyText" + case repositoryName = "repositoryName" case registryId = "registryId" + } + } + + public enum LifecyclePolicyPreviewStatus: String, CustomStringConvertible, Codable { + case inProgress = "IN_PROGRESS" + case complete = "COMPLETE" + case expired = "EXPIRED" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + + public struct GetLifecyclePolicyPreviewRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "maxResults", required: false, type: .integer), + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "imageIds", required: false, type: .list), + AWSShapeMember(label: "filter", required: false, type: .structure), + AWSShapeMember(label: "repositoryName", required: true, type: .string), + AWSShapeMember(label: "registryId", required: false, type: .string) + ] + /// The maximum number of repository results returned by GetLifecyclePolicyPreviewRequest in
 paginated output. When this parameter is used, GetLifecyclePolicyPreviewRequest only returns
 maxResults results in a single page along with a nextToken
 response element. The remaining results of the initial request can be seen by sending
 another GetLifecyclePolicyPreviewRequest request with the returned nextToken
 value. This value can be between 1 and 100. If this
 parameter is not used, then GetLifecyclePolicyPreviewRequest returns up to
 100 results and a nextToken value, if
 applicable. + public let maxResults: Int32? + /// The nextToken value returned from a previous paginated
 GetLifecyclePolicyPreviewRequest request where maxResults was used and the
 results exceeded the value of that parameter. Pagination continues from the end of the
 previous results that returned the nextToken value. This value is
 null when there are no more results to return. + public let nextToken: String? + /// The list of imageIDs to be included. + public let imageIds: [ImageIdentifier]? + /// An optional parameter that filters results based on image tag status and all tags, if tagged. + public let filter: LifecyclePolicyPreviewFilter? + /// The name of the repository with the policy to retrieve. + public let repositoryName: String + /// The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed. + public let registryId: String? + + public init(maxResults: Int32? = nil, nextToken: String? = nil, imageIds: [ImageIdentifier]? = nil, filter: LifecyclePolicyPreviewFilter? = nil, repositoryName: String, registryId: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + self.imageIds = imageIds + self.filter = filter + self.repositoryName = repositoryName + self.registryId = registryId + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "maxResults" + case nextToken = "nextToken" + case imageIds = "imageIds" + case filter = "filter" case repositoryName = "repositoryName" + case registryId = "registryId" } } @@ -882,12 +1118,12 @@ extension Ecr { } public struct DeleteRepositoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "force", required: false, type: .boolean), AWSShapeMember(label: "registryId", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string) ] - /// Force the deletion of the repository if it contains images. + /// If a repository contains images, forces the deletion. public let force: Bool? /// The AWS account ID associated with the registry that contains the repository to delete. If you do not specify a registry, the default registry is assumed. public let registryId: String? @@ -908,7 +1144,7 @@ extension Ecr { } public struct PutImageResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "image", required: false, type: .structure) ] /// Details of the image uploaded. @@ -923,8 +1159,29 @@ extension Ecr { } } + public struct InitiateLayerUploadRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registryId", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: true, type: .string) + ] + /// The AWS account ID associated with the registry to which you intend to upload layers. If you do not specify a registry, the default registry is assumed. + public let registryId: String? + /// The name of the repository to which you intend to upload layers. + public let repositoryName: String + + public init(registryId: String? = nil, repositoryName: String) { + self.registryId = registryId + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case registryId = "registryId" + case repositoryName = "repositoryName" + } + } + public struct Repository: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "repositoryName", required: false, type: .string), AWSShapeMember(label: "repositoryUri", required: false, type: .string), AWSShapeMember(label: "registryId", required: false, type: .string), @@ -933,13 +1190,13 @@ extension Ecr { ] /// The name of the repository. public let repositoryName: String? - /// The URI for the repository. You can use this URI for Docker push and pull operations. + /// The URI for the repository. You can use this URI for Docker push or pull operations. public let repositoryUri: String? /// The AWS account ID associated with the registry that contains the repository. public let registryId: String? - /// The date and time, in JavaScript date/time format, when the repository was created. + /// The date and time, in JavaScript date format, when the repository was created. public let createdAt: TimeStamp? - /// The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the arn:aws:ecr namespace, followed by the region of the repository, the AWS account ID of the repository owner, the repository namespace, and then the repository name. For example, arn:aws:ecr:region:012345678910:repository/test. + /// The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the arn:aws:ecr namespace, followed by the region of the repository, AWS account ID of the repository owner, repository namespace, and repository name. For example, arn:aws:ecr:region:012345678910:repository/test. public let repositoryArn: String? public init(repositoryName: String? = nil, repositoryUri: String? = nil, registryId: String? = nil, createdAt: TimeStamp? = nil, repositoryArn: String? = nil) { @@ -959,8 +1216,24 @@ extension Ecr { } } + public struct LifecyclePolicyRuleAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "type", required: false, type: .enum) + ] + /// The type of action to be taken. + public let `type`: ImageActionType? + + public init(type: ImageActionType? = nil) { + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case `type` = "type" + } + } + public struct BatchDeleteImageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "registryId", required: false, type: .string), AWSShapeMember(label: "imageIds", required: true, type: .list), AWSShapeMember(label: "repositoryName", required: true, type: .string) @@ -985,8 +1258,24 @@ extension Ecr { } } + public struct LifecyclePolicyPreviewSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "expiringImageTotalCount", required: false, type: .integer) + ] + /// The number of expiring images. + public let expiringImageTotalCount: Int32? + + public init(expiringImageTotalCount: Int32? = nil) { + self.expiringImageTotalCount = expiringImageTotalCount + } + + private enum CodingKeys: String, CodingKey { + case expiringImageTotalCount = "expiringImageTotalCount" + } + } + public struct CompleteLayerUploadResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uploadId", required: false, type: .string), AWSShapeMember(label: "repositoryName", required: false, type: .string), AWSShapeMember(label: "registryId", required: false, type: .string), @@ -1017,7 +1306,7 @@ extension Ecr { } public struct UploadLayerPartRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uploadId", required: true, type: .string), AWSShapeMember(label: "layerPartBlob", required: true, type: .blob), AWSShapeMember(label: "repositoryName", required: true, type: .string), @@ -1029,11 +1318,11 @@ extension Ecr { public let uploadId: String /// The base64-encoded layer part payload. public let layerPartBlob: Data - /// The name of the repository that you are uploading layer parts to. + /// The name of the repository to which you are uploading layer parts. public let repositoryName: String /// The integer value of the last byte of the layer part. public let partLastByte: Int64 - /// The AWS account ID associated with the registry that you are uploading layer parts to. If you do not specify a registry, the default registry is assumed. + /// The AWS account ID associated with the registry to which you are uploading layer parts. If you do not specify a registry, the default registry is assumed. public let registryId: String? /// The integer value of the first byte of the layer part. public let partFirstByte: Int64 @@ -1058,7 +1347,7 @@ extension Ecr { } public struct CompleteLayerUploadRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uploadId", required: true, type: .string), AWSShapeMember(label: "repositoryName", required: true, type: .string), AWSShapeMember(label: "registryId", required: false, type: .string), @@ -1095,7 +1384,7 @@ extension Ecr { } public struct DescribeImagesFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tagStatus", required: false, type: .enum) ] /// The tag status with which to filter your DescribeImages results. You can filter results based on whether they are TAGGED or UNTAGGED. @@ -1110,8 +1399,116 @@ extension Ecr { } } + public struct PutLifecyclePolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registryId", required: false, type: .string), + AWSShapeMember(label: "lifecyclePolicyText", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: false, type: .string) + ] + /// The registry ID associated with the request. + public let registryId: String? + /// The JSON repository policy text. + public let lifecyclePolicyText: String? + /// The repository name associated with the request. + public let repositoryName: String? + + public init(registryId: String? = nil, lifecyclePolicyText: String? = nil, repositoryName: String? = nil) { + self.registryId = registryId + self.lifecyclePolicyText = lifecyclePolicyText + self.repositoryName = repositoryName + } + + private enum CodingKeys: String, CodingKey { + case registryId = "registryId" + case lifecyclePolicyText = "lifecyclePolicyText" + case repositoryName = "repositoryName" + } + } + + public struct GetLifecyclePolicyPreviewResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "summary", required: false, type: .structure), + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "repositoryName", required: false, type: .string), + AWSShapeMember(label: "registryId", required: false, type: .string), + AWSShapeMember(label: "lifecyclePolicyText", required: false, type: .string), + AWSShapeMember(label: "previewResults", required: false, type: .list) + ] + /// The list of images that is returned as a result of the action. + public let summary: LifecyclePolicyPreviewSummary? + /// The status of the lifecycle policy preview request. + public let status: LifecyclePolicyPreviewStatus? + /// The nextToken value to include in a future GetLifecyclePolicyPreview request. When the results of a GetLifecyclePolicyPreview request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + /// The repository name associated with the request. + public let repositoryName: String? + /// The registry ID associated with the request. + public let registryId: String? + /// The JSON repository policy text. + public let lifecyclePolicyText: String? + /// The results of the lifecycle policy preview request. + public let previewResults: [LifecyclePolicyPreviewResult]? + + public init(summary: LifecyclePolicyPreviewSummary? = nil, status: LifecyclePolicyPreviewStatus? = nil, nextToken: String? = nil, repositoryName: String? = nil, registryId: String? = nil, lifecyclePolicyText: String? = nil, previewResults: [LifecyclePolicyPreviewResult]? = nil) { + self.summary = summary + self.status = status + self.nextToken = nextToken + self.repositoryName = repositoryName + self.registryId = registryId + self.lifecyclePolicyText = lifecyclePolicyText + self.previewResults = previewResults + } + + private enum CodingKeys: String, CodingKey { + case summary = "summary" + case status = "status" + case nextToken = "nextToken" + case repositoryName = "repositoryName" + case registryId = "registryId" + case lifecyclePolicyText = "lifecyclePolicyText" + case previewResults = "previewResults" + } + } + + public struct LifecyclePolicyPreviewResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "action", required: false, type: .structure), + AWSShapeMember(label: "imageDigest", required: false, type: .string), + AWSShapeMember(label: "imageTags", required: false, type: .list), + AWSShapeMember(label: "imagePushedAt", required: false, type: .timestamp), + AWSShapeMember(label: "appliedRulePriority", required: false, type: .integer) + ] + /// The type of action to be taken. + public let action: LifecyclePolicyRuleAction? + /// The sha256 digest of the image manifest. + public let imageDigest: String? + /// The list of tags associated with this image. + public let imageTags: [String]? + /// The date and time, expressed in standard JavaScript date format, at which the current image was pushed to the repository. + public let imagePushedAt: TimeStamp? + /// The priority of the applied rule. + public let appliedRulePriority: Int32? + + public init(action: LifecyclePolicyRuleAction? = nil, imageDigest: String? = nil, imageTags: [String]? = nil, imagePushedAt: TimeStamp? = nil, appliedRulePriority: Int32? = nil) { + self.action = action + self.imageDigest = imageDigest + self.imageTags = imageTags + self.imagePushedAt = imagePushedAt + self.appliedRulePriority = appliedRulePriority + } + + private enum CodingKeys: String, CodingKey { + case action = "action" + case imageDigest = "imageDigest" + case imageTags = "imageTags" + case imagePushedAt = "imagePushedAt" + case appliedRulePriority = "appliedRulePriority" + } + } + public struct ListImagesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "filter", required: false, type: .structure), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), @@ -1124,9 +1521,9 @@ extension Ecr { public let nextToken: String? /// The maximum number of image results returned by ListImages in paginated output. When this parameter is used, ListImages only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListImages request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListImages returns up to 100 results and a nextToken value, if applicable. public let maxResults: Int32? - /// The repository whose image IDs are to be listed. + /// The repository with image IDs to be listed. public let repositoryName: String - /// The AWS account ID associated with the registry that contains the repository to list images in. If you do not specify a registry, the default registry is assumed. + /// The AWS account ID associated with the registry that contains the repository in which to list images. If you do not specify a registry, the default registry is assumed. public let registryId: String? public init(filter: ListImagesFilter? = nil, nextToken: String? = nil, maxResults: Int32? = nil, repositoryName: String, registryId: String? = nil) { diff --git a/Sources/AWSSDKSwift/Services/ecs/Ecs_API.swift b/Sources/AWSSDKSwift/Services/ecs/Ecs_API.swift index 3797561e8dd..27952dfa432 100644 --- a/Sources/AWSSDKSwift/Services/ecs/Ecs_API.swift +++ b/Sources/AWSSDKSwift/Services/ecs/Ecs_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon EC2 Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster of EC2 instances. Amazon ECS lets you launch and stop container-enabled applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features like security groups, Amazon EBS volumes, and IAM roles. You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon EC2 Container Service eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure. +Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster. You can host your cluster on a serverless infrastructure that is managed by Amazon ECS by launching your services or tasks using the Fargate launch type. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances that you manage by using the EC2 launch type. For more information about launch types, see Amazon ECS Launch Types. Amazon ECS lets you launch and stop container-based applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features. You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon ECS eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure. */ public struct Ecs { @@ -25,12 +25,12 @@ public struct Ecs { ) } - /// Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer available to run tasks. If you intend to use the container instance for some other purpose after deregistration, you should stop all of the tasks running on the container instance before deregistration to avoid any orphaned tasks from consuming resources. Deregistering a container instance removes the instance from a cluster, but it does not terminate the EC2 instance; if you are finished using the instance, be sure to terminate it in the Amazon EC2 console to stop billing. If you terminate a running container instance, Amazon ECS automatically deregisters the instance from your cluster (stopped container instances or instances with disconnected agents are not automatically deregistered when terminated). + /// Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer available to run tasks. If you intend to use the container instance for some other purpose after deregistration, you should stop all of the tasks running on the container instance before deregistration. That prevents any orphaned tasks from consuming resources. Deregistering a container instance removes the instance from a cluster, but it does not terminate the EC2 instance; if you are finished using the instance, be sure to terminate it in the Amazon EC2 console to stop billing. If you terminate a running container instance, Amazon ECS automatically deregisters the instance from your cluster (stopped container instances or instances with disconnected agents are not automatically deregistered when terminated). public func deregisterContainerInstance(_ input: DeregisterContainerInstanceRequest) throws -> DeregisterContainerInstanceResponse { return try client.send(operation: "DeregisterContainerInstance", path: "/", httpMethod: "POST", input: input) } - /// Describes Amazon EC2 Container Service container instances. Returns metadata about registered and remaining resources on each container instance requested. + /// Describes Amazon Elastic Container Service container instances. Returns metadata about registered and remaining resources on each container instance requested. public func describeContainerInstances(_ input: DescribeContainerInstancesRequest) throws -> DescribeContainerInstancesResponse { return try client.send(operation: "DescribeContainerInstances", path: "/", httpMethod: "POST", input: input) } @@ -40,12 +40,12 @@ public struct Ecs { return try client.send(operation: "DeleteCluster", path: "/", httpMethod: "POST", input: input) } - /// Starts a new task from the specified task definition on the specified container instance or instances. Alternatively, you can use RunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon EC2 Container Service Developer Guide. + /// Starts a new task from the specified task definition on the specified container instance or instances. Alternatively, you can use RunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide. public func startTask(_ input: StartTaskRequest) throws -> StartTaskResponse { return try client.send(operation: "StartTask", path: "/", httpMethod: "POST", input: input) } - /// Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as INACTIVE. Existing tasks and services that reference an INACTIVE task definition continue to run without disruption. Existing services that reference an INACTIVE task definition can still scale up or down by modifying the service's desired count. You cannot use an INACTIVE task definition to run new tasks or create new services, and you cannot update an existing service to reference an INACTIVE task definition (although there may be up to a 10 minute window following deregistration where these restrictions have not yet taken effect). At this time, INACTIVE task definitions remain discoverable in your account indefinitely; however, this behavior is subject to change in the future, so you should not rely on INACTIVE task definitions persisting beyond the life cycle of any associated tasks and services. + /// Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as INACTIVE. Existing tasks and services that reference an INACTIVE task definition continue to run without disruption. Existing services that reference an INACTIVE task definition can still scale up or down by modifying the service's desired count. You cannot use an INACTIVE task definition to run new tasks or create new services, and you cannot update an existing service to reference an INACTIVE task definition (although there may be up to a 10-minute window following deregistration where these restrictions have not yet taken effect). At this time, INACTIVE task definitions remain discoverable in your account indefinitely; however, this behavior is subject to change in the future, so you should not rely on INACTIVE task definitions persisting beyond the lifecycle of any associated tasks and services. public func deregisterTaskDefinition(_ input: DeregisterTaskDefinitionRequest) throws -> DeregisterTaskDefinitionResponse { return try client.send(operation: "DeregisterTaskDefinition", path: "/", httpMethod: "POST", input: input) } @@ -60,27 +60,27 @@ public struct Ecs { return try client.send(operation: "DescribeTasks", path: "/", httpMethod: "POST", input: input) } - /// Create or update an attribute on an Amazon ECS resource. If the attribute does not exist, it is created. If the attribute exists, its value is replaced with the specified value. To delete an attribute, use DeleteAttributes. For more information, see Attributes in the Amazon EC2 Container Service Developer Guide. + /// Create or update an attribute on an Amazon ECS resource. If the attribute does not exist, it is created. If the attribute exists, its value is replaced with the specified value. To delete an attribute, use DeleteAttributes. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide. public func putAttributes(_ input: PutAttributesRequest) throws -> PutAttributesResponse { return try client.send(operation: "PutAttributes", path: "/", httpMethod: "POST", input: input) } - /// Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action. + /// Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action. When you call the CreateCluster API operation, Amazon ECS attempts to create the service-linked role for your account so that required resources in other AWS services can be managed on your behalf. However, if the IAM user that makes the call does not have permissions to create the service-linked role, it is not created. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide. public func createCluster(_ input: CreateClusterRequest) throws -> CreateClusterResponse { return try client.send(operation: "CreateCluster", path: "/", httpMethod: "POST", input: input) } - /// This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent. Registers an EC2 instance into the specified cluster. This instance becomes available to place containers on. + /// This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent. Registers an EC2 instance into the specified cluster. This instance becomes available to place containers on. public func registerContainerInstance(_ input: RegisterContainerInstanceRequest) throws -> RegisterContainerInstanceResponse { return try client.send(operation: "RegisterContainerInstance", path: "/", httpMethod: "POST", input: input) } - /// Deletes a specified service within a cluster. You can delete a service if you have no running tasks in it and the desired task count is zero. If the service is actively maintaining tasks, you cannot delete it, and you must update the service to a desired task count of zero. For more information, see UpdateService. When you delete a service, if there are still running tasks that require cleanup, the service status moves from ACTIVE to DRAINING, and the service is no longer visible in the console or in ListServices API operations. After the tasks have stopped, then the service status moves from DRAINING to INACTIVE. Services in the DRAINING or INACTIVE status can still be viewed with DescribeServices API operations; however, in the future, INACTIVE services may be cleaned up and purged from Amazon ECS record keeping, and DescribeServices API operations on those services will return a ServiceNotFoundException error. + /// Deletes a specified service within a cluster. You can delete a service if you have no running tasks in it and the desired task count is zero. If the service is actively maintaining tasks, you cannot delete it, and you must update the service to a desired task count of zero. For more information, see UpdateService. When you delete a service, if there are still running tasks that require cleanup, the service status moves from ACTIVE to DRAINING, and the service is no longer visible in the console or in ListServices API operations. After the tasks have stopped, then the service status moves from DRAINING to INACTIVE. Services in the DRAINING or INACTIVE status can still be viewed with DescribeServices API operations. However, in the future, INACTIVE services may be cleaned up and purged from Amazon ECS record keeping, and DescribeServices API operations on those services return a ServiceNotFoundException error. public func deleteService(_ input: DeleteServiceRequest) throws -> DeleteServiceResponse { return try client.send(operation: "DeleteService", path: "/", httpMethod: "POST", input: input) } - /// Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide. You can specify an IAM role for your task with the taskRoleArn parameter. When you specify an IAM role for a task, its containers can then use the latest versions of the AWS CLI or SDKs to make API requests to the AWS services that are specified in the IAM policy associated with the role. For more information, see IAM Roles for Tasks in the Amazon EC2 Container Service Developer Guide. You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. The available network modes correspond to those described in Network settings in the Docker run reference. + /// Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide. You can specify an IAM role for your task with the taskRoleArn parameter. When you specify an IAM role for a task, its containers can then use the latest versions of the AWS CLI or SDKs to make API requests to the AWS services that are specified in the IAM policy associated with the role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide. You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. The available network modes correspond to those described in Network settings in the Docker run reference. If you specify the awsvpc network mode, the task is allocated an Elastic Network Interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide. public func registerTaskDefinition(_ input: RegisterTaskDefinitionRequest) throws -> RegisterTaskDefinitionResponse { return try client.send(operation: "RegisterTaskDefinition", path: "/", httpMethod: "POST", input: input) } @@ -90,7 +90,7 @@ public struct Ecs { return try client.send(operation: "ListAttributes", path: "/", httpMethod: "POST", input: input) } - /// Modifies the status of an Amazon ECS container instance. You can change the status of a container instance to DRAINING to manually remove an instance from a cluster, for example to perform system updates, update the Docker daemon, or scale down the cluster size. When you set a container instance to DRAINING, Amazon ECS prevents new tasks from being scheduled for placement on the container instance and replacement service tasks are started on other container instances in the cluster if the resources are available. Service tasks on the container instance that are in the PENDING state are stopped immediately. Service tasks on the container instance that are in the RUNNING state are stopped and replaced according the service's deployment configuration parameters, minimumHealthyPercent and maximumPercent. Note that you can change the deployment configuration of your service using UpdateService. If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount temporarily during task replacement. For example, desiredCount is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. If the minimum is 100%, the service scheduler can't remove existing tasks until the replacement tasks are considered healthy. Tasks for services that do not use a load balancer are considered healthy if they are in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they are in the RUNNING state and the container instance they are hosted on is reported as healthy by the load balancer. The maximumPercent parameter represents an upper limit on the number of running tasks during task replacement, which enables you to define the replacement batch size. For example, if desiredCount of four tasks, a maximum of 200% starts four new tasks before stopping the four tasks to be drained (provided that the cluster resources required to do this are available). If the maximum is 100%, then replacement tasks can't start until the draining tasks have stopped. Any PENDING or RUNNING tasks that do not belong to a service are not affected; you must wait for them to finish or stop them manually. A container instance has completed draining when it has no more RUNNING tasks. You can verify this using ListTasks. When you set a container instance to ACTIVE, the Amazon ECS scheduler can begin scheduling tasks on the instance again. + /// Modifies the status of an Amazon ECS container instance. You can change the status of a container instance to DRAINING to manually remove an instance from a cluster, for example to perform system updates, update the Docker daemon, or scale down the cluster size. When you set a container instance to DRAINING, Amazon ECS prevents new tasks from being scheduled for placement on the container instance and replacement service tasks are started on other container instances in the cluster if the resources are available. Service tasks on the container instance that are in the PENDING state are stopped immediately. Service tasks on the container instance that are in the RUNNING state are stopped and replaced according to the service's deployment configuration parameters, minimumHealthyPercent and maximumPercent. You can change the deployment configuration of your service using UpdateService. If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount temporarily during task replacement. For example, desiredCount is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. If the minimum is 100%, the service scheduler can't remove existing tasks until the replacement tasks are considered healthy. Tasks for services that do not use a load balancer are considered healthy if they are in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they are in the RUNNING state and the container instance they are hosted on is reported as healthy by the load balancer. The maximumPercent parameter represents an upper limit on the number of running tasks during task replacement, which enables you to define the replacement batch size. For example, if desiredCount of four tasks, a maximum of 200% starts four new tasks before stopping the four tasks to be drained (provided that the cluster resources required to do this are available). If the maximum is 100%, then replacement tasks can't start until the draining tasks have stopped. Any PENDING or RUNNING tasks that do not belong to a service are not affected; you must wait for them to finish or stop them manually. A container instance has completed draining when it has no more RUNNING tasks. You can verify this using ListTasks. When you set a container instance to ACTIVE, the Amazon ECS scheduler can begin scheduling tasks on the instance again. public func updateContainerInstancesState(_ input: UpdateContainerInstancesStateRequest) throws -> UpdateContainerInstancesStateResponse { return try client.send(operation: "UpdateContainerInstancesState", path: "/", httpMethod: "POST", input: input) } @@ -110,7 +110,7 @@ public struct Ecs { return try client.send(operation: "DescribeTaskDefinition", path: "/", httpMethod: "POST", input: input) } - /// Modifies the desired count, deployment configuration, or task definition used in a service. You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter. You can use UpdateService to modify your task definition and deploy a new version of your service. You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent, to determine the deployment strategy. If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount temporarily during a deployment. For example, if desiredCount is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they are in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they are in the RUNNING state and the container instance they are hosted on is reported as healthy by the load balancer. The maximumPercent parameter represents an upper limit on the number of running tasks during a deployment, which enables you to define the deployment batch size. For example, if desiredCount is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). When UpdateService stops a task during a deployment, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a 30-second timeout, after which SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent. When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic: Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes). By default, the service scheduler attempts to balance tasks across Availability Zones in this manner (although you can choose a different placement strategy): Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement. Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service. When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic: Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination. Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service. + /// Modifies the desired count, deployment configuration, network configuration, or task definition used in a service. You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter. You can use UpdateService to modify your task definition and deploy a new version of your service. You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent, to determine the deployment strategy. If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount temporarily during a deployment. For example, if desiredCount is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they are in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they are in the RUNNING state and the container instance they are hosted on is reported as healthy by the load balancer. The maximumPercent parameter represents an upper limit on the number of running tasks during a deployment, which enables you to define the deployment batch size. For example, if desiredCount is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). When UpdateService stops a task during a deployment, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a 30-second timeout, after which SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent. When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic: Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes). By default, the service scheduler attempts to balance tasks across Availability Zones in this manner (although you can choose a different placement strategy): Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement. Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service. When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic: Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination. Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service. public func updateService(_ input: UpdateServiceRequest) throws -> UpdateServiceResponse { return try client.send(operation: "UpdateService", path: "/", httpMethod: "POST", input: input) } @@ -120,17 +120,17 @@ public struct Ecs { return try client.send(operation: "ListClusters", path: "/", httpMethod: "POST", input: input) } - /// This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent. Sent to acknowledge that a task changed states. + /// This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent. Sent to acknowledge that a task changed states. public func submitTaskStateChange(_ input: SubmitTaskStateChangeRequest) throws -> SubmitTaskStateChangeResponse { return try client.send(operation: "SubmitTaskStateChange", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of tasks for a specified cluster. You can filter the results by family name, by a particular container instance, or by the desired status of the task with the family, containerInstance, and desiredStatus parameters. Recently-stopped tasks might appear in the returned results. Currently, stopped tasks appear in the returned results for at least one hour. + /// Returns a list of tasks for a specified cluster. You can filter the results by family name, by a particular container instance, or by the desired status of the task with the family, containerInstance, and desiredStatus parameters. Recently stopped tasks might appear in the returned results. Currently, stopped tasks appear in the returned results for at least one hour. public func listTasks(_ input: ListTasksRequest) throws -> ListTasksResponse { return try client.send(operation: "ListTasks", path: "/", httpMethod: "POST", input: input) } - /// Stops a running task. When StopTask is called on a task, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a default 30-second timeout, after which SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent. The default 30-second timeout can be configured on the Amazon ECS container agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide. + /// Stops a running task. When StopTask is called on a task, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a default 30-second timeout, after which SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent. The default 30-second timeout can be configured on the Amazon ECS container agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide. public func stopTask(_ input: StopTaskRequest) throws -> StopTaskResponse { return try client.send(operation: "StopTask", path: "/", httpMethod: "POST", input: input) } @@ -145,12 +145,12 @@ public struct Ecs { return try client.send(operation: "ListTaskDefinitions", path: "/", httpMethod: "POST", input: input) } - /// Starts a new task using the specified task definition. You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon EC2 Container Service Developer Guide. Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances. + /// Starts a new task using the specified task definition. You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide. Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances. public func runTask(_ input: RunTaskRequest) throws -> RunTaskResponse { return try client.send(operation: "RunTask", path: "/", httpMethod: "POST", input: input) } - /// This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent. Sent to acknowledge that a container changed states. + /// This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent. Sent to acknowledge that a container changed states. public func submitContainerStateChange(_ input: SubmitContainerStateChangeRequest) throws -> SubmitContainerStateChangeResponse { return try client.send(operation: "SubmitContainerStateChange", path: "/", httpMethod: "POST", input: input) } @@ -160,22 +160,22 @@ public struct Ecs { return try client.send(operation: "ListServices", path: "/", httpMethod: "POST", input: input) } - /// This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent. Returns an endpoint for the Amazon EC2 Container Service agent to poll for updates. + /// This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent. Returns an endpoint for the Amazon ECS agent to poll for updates. public func discoverPollEndpoint(_ input: DiscoverPollEndpointRequest) throws -> DiscoverPollEndpointResponse { return try client.send(operation: "DiscoverPollEndpoint", path: "/", httpMethod: "POST", input: input) } - /// Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container agent does not interrupt running tasks or services on the container instance. The process for updating the agent differs depending on whether your container instance was launched with the Amazon ECS-optimized AMI or another operating system. UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux with the ecs-init service installed and running. For help updating the Amazon ECS container agent on other operating systems, see Manually Updating the Amazon ECS Container Agent in the Amazon EC2 Container Service Developer Guide. + /// Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container agent does not interrupt running tasks or services on the container instance. The process for updating the agent differs depending on whether your container instance was launched with the Amazon ECS-optimized AMI or another operating system. UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux with the ecs-init service installed and running. For help updating the Amazon ECS container agent on other operating systems, see Manually Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. public func updateContainerAgent(_ input: UpdateContainerAgentRequest) throws -> UpdateContainerAgentResponse { return try client.send(operation: "UpdateContainerAgent", path: "/", httpMethod: "POST", input: input) } - /// Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below desiredCount, Amazon ECS spawns another copy of the task in the specified cluster. To update an existing service, see UpdateService. In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind a load balancer. The load balancer distributes traffic across the tasks that are associated with the service. For more information, see Service Load Balancing in the Amazon EC2 Container Service Developer Guide. You can optionally specify a deployment configuration for your service. During a deployment (which is triggered by changing the task definition or the desired count of a service with an UpdateService operation), the service scheduler uses the minimumHealthyPercent and maximumPercent parameters to determine the deployment strategy. The minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the scheduler can stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they are in the RUNNING state. Tasks for services that do use a load balancer are considered healthy if they are in the RUNNING state and the container instance they are hosted on is reported as healthy by the load balancer. The default value for minimumHealthyPercent is 50% in the console and 100% for the AWS CLI, the AWS SDKs, and the APIs. The maximumPercent parameter represents an upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service has a desiredCount of four tasks and a maximumPercent value of 200%, the scheduler can start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximumPercent is 200%. When the service scheduler launches new tasks, it determines task placement in your cluster using the following logic: Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes). By default, the service scheduler attempts to balance tasks across Availability Zones in this manner (although you can choose a different placement strategy) with the placementStrategy parameter): Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement. Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service. + /// Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below desiredCount, Amazon ECS spawns another copy of the task in the specified cluster. To update an existing service, see UpdateService. In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind a load balancer. The load balancer distributes traffic across the tasks that are associated with the service. For more information, see Service Load Balancing in the Amazon Elastic Container Service Developer Guide. You can optionally specify a deployment configuration for your service. During a deployment, the service scheduler uses the minimumHealthyPercent and maximumPercent parameters to determine the deployment strategy. The deployment is triggered by changing the task definition or the desired count of a service with an UpdateService operation. The minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the scheduler can stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they are in the RUNNING state. Tasks for services that do use a load balancer are considered healthy if they are in the RUNNING state and the container instance they are hosted on is reported as healthy by the load balancer. The default value for minimumHealthyPercent is 50% in the console and 100% for the AWS CLI, the AWS SDKs, and the APIs. The maximumPercent parameter represents an upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service has a desiredCount of four tasks and a maximumPercent value of 200%, the scheduler can start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximumPercent is 200%. When the service scheduler launches new tasks, it determines task placement in your cluster using the following logic: Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes). By default, the service scheduler attempts to balance tasks across Availability Zones in this manner (although you can choose a different placement strategy) with the placementStrategy parameter): Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement. Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service. public func createService(_ input: CreateServiceRequest) throws -> CreateServiceResponse { return try client.send(operation: "CreateService", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of container instances in a specified cluster. You can filter the results of a ListContainerInstances operation with cluster query language statements inside the filter parameter. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide. + /// Returns a list of container instances in a specified cluster. You can filter the results of a ListContainerInstances operation with cluster query language statements inside the filter parameter. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide. public func listContainerInstances(_ input: ListContainerInstancesRequest) throws -> ListContainerInstancesResponse { return try client.send(operation: "ListContainerInstances", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/ecs/Ecs_Error.swift b/Sources/AWSSDKSwift/Services/ecs/Ecs_Error.swift index af3fd71635b..7a33afa2735 100644 --- a/Sources/AWSSDKSwift/Services/ecs/Ecs_Error.swift +++ b/Sources/AWSSDKSwift/Services/ecs/Ecs_Error.swift @@ -10,10 +10,16 @@ public enum EcsError: AWSErrorType { case clusterNotFoundException(message: String?) case clusterContainsContainerInstancesException(message: String?) case clusterContainsServicesException(message: String?) + case clusterContainsTasksException(message: String?) case targetNotFoundException(message: String?) case attributeLimitExceededException(message: String?) case serviceNotFoundException(message: String?) case serviceNotActiveException(message: String?) + case platformUnknownException(message: String?) + case platformTaskDefinitionIncompatibilityException(message: String?) + case accessDeniedException(message: String?) + case unsupportedFeatureException(message: String?) + case blockedException(message: String?) case updateInProgressException(message: String?) case noUpdateAvailableException(message: String?) case missingVersionException(message: String?) @@ -38,6 +44,8 @@ extension EcsError { self = .clusterContainsContainerInstancesException(message: message) case "ClusterContainsServicesException": self = .clusterContainsServicesException(message: message) + case "ClusterContainsTasksException": + self = .clusterContainsTasksException(message: message) case "TargetNotFoundException": self = .targetNotFoundException(message: message) case "AttributeLimitExceededException": @@ -46,6 +54,16 @@ extension EcsError { self = .serviceNotFoundException(message: message) case "ServiceNotActiveException": self = .serviceNotActiveException(message: message) + case "PlatformUnknownException": + self = .platformUnknownException(message: message) + case "PlatformTaskDefinitionIncompatibilityException": + self = .platformTaskDefinitionIncompatibilityException(message: message) + case "AccessDeniedException": + self = .accessDeniedException(message: message) + case "UnsupportedFeatureException": + self = .unsupportedFeatureException(message: message) + case "BlockedException": + self = .blockedException(message: message) case "UpdateInProgressException": self = .updateInProgressException(message: message) case "NoUpdateAvailableException": diff --git a/Sources/AWSSDKSwift/Services/ecs/Ecs_Shapes.swift b/Sources/AWSSDKSwift/Services/ecs/Ecs_Shapes.swift index fe9306162c2..37ee2d2bb79 100644 --- a/Sources/AWSSDKSwift/Services/ecs/Ecs_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/ecs/Ecs_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Ecs { public struct VersionInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "agentHash", required: false, type: .string), AWSShapeMember(label: "dockerVersion", required: false, type: .string), AWSShapeMember(label: "agentVersion", required: false, type: .string) @@ -31,69 +31,91 @@ extension Ecs { } } + public enum DeviceCgroupPermission: String, CustomStringConvertible, Codable { + case read = "read" + case write = "write" + case mknod = "mknod" + public var description: String { return self.rawValue } + } + public struct CreateServiceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "desiredCount", required: true, type: .integer), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "platformVersion", required: false, type: .string), AWSShapeMember(label: "clientToken", required: false, type: .string), AWSShapeMember(label: "placementStrategy", required: false, type: .list), AWSShapeMember(label: "cluster", required: false, type: .string), - AWSShapeMember(label: "placementConstraints", required: false, type: .list), AWSShapeMember(label: "serviceName", required: true, type: .string), - AWSShapeMember(label: "deploymentConfiguration", required: false, type: .structure), - AWSShapeMember(label: "taskDefinition", required: true, type: .string), + AWSShapeMember(label: "networkConfiguration", required: false, type: .structure), AWSShapeMember(label: "loadBalancers", required: false, type: .list), - AWSShapeMember(label: "role", required: false, type: .string) + AWSShapeMember(label: "role", required: false, type: .string), + AWSShapeMember(label: "desiredCount", required: true, type: .integer), + AWSShapeMember(label: "launchType", required: false, type: .enum), + AWSShapeMember(label: "placementConstraints", required: false, type: .list), + AWSShapeMember(label: "deploymentConfiguration", required: false, type: .structure), + AWSShapeMember(label: "taskDefinition", required: true, type: .string) ] - /// The number of instantiations of the specified task definition to place and keep running on your cluster. - public let desiredCount: Int32 + /// The platform version on which to run your service. If one is not specified, the latest version is used by default. + public let platformVersion: String? /// Unique, case-sensitive identifier you provide to ensure the idempotency of the request. Up to 32 ASCII characters are allowed. public let clientToken: String? - /// The placement strategy objects to use for tasks in your service. You can specify a maximum of 5 strategy rules per service. + /// The placement strategy objects to use for tasks in your service. You can specify a maximum of five strategy rules per service. public let placementStrategy: [PlacementStrategy]? /// The short name or full Amazon Resource Name (ARN) of the cluster on which to run your service. If you do not specify a cluster, the default cluster is assumed. public let cluster: String? - /// An array of placement constraint objects to use for tasks in your service. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at run time). - public let placementConstraints: [PlacementConstraint]? /// The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a region or across multiple regions. public let serviceName: String + /// The network configuration for the service. This parameter is required for task definitions that use the awsvpc network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide. + public let networkConfiguration: NetworkConfiguration? + /// A load balancer object representing the load balancer to use with your service. Currently, you are limited to one load balancer or target group per service. After you create a service, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable. For Classic Load Balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here. For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here. + public let loadBalancers: [LoadBalancer]? + /// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is only permitted if you are using a load balancer with your service and your task definition does not use the awsvpc network mode. If you specify the role parameter, you must also specify a load balancer object with the loadBalancers parameter. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. The service-linked role is required if your task definition uses the awsvpc network mode, in which case you should not specify a role here. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide. If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/ then you would specify /foo/bar as the role name. For more information, see Friendly Names and Paths in the IAM User Guide. + public let role: String? + /// The number of instantiations of the specified task definition to place and keep running on your cluster. + public let desiredCount: Int32 + /// The launch type on which to run your service. + public let launchType: LaunchType? + /// An array of placement constraint objects to use for tasks in your service. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at run time). + public let placementConstraints: [PlacementConstraint]? /// Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. public let deploymentConfiguration: DeploymentConfiguration? - /// The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used. + /// The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used. public let taskDefinition: String - /// A load balancer object representing the load balancer to use with your service. Currently, you are limited to one load balancer or target group per service. After you create a service, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable. For Elastic Load Balancing Classic load balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here. For Elastic Load Balancing Application load balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here. - public let loadBalancers: [LoadBalancer]? - /// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service. If you specify the role parameter, you must also specify a load balancer object with the loadBalancers parameter. If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/ then you would specify /foo/bar as the role name. For more information, see Friendly Names and Paths in the IAM User Guide. - public let role: String? - public init(desiredCount: Int32, clientToken: String? = nil, placementStrategy: [PlacementStrategy]? = nil, cluster: String? = nil, placementConstraints: [PlacementConstraint]? = nil, serviceName: String, deploymentConfiguration: DeploymentConfiguration? = nil, taskDefinition: String, loadBalancers: [LoadBalancer]? = nil, role: String? = nil) { - self.desiredCount = desiredCount + public init(platformVersion: String? = nil, clientToken: String? = nil, placementStrategy: [PlacementStrategy]? = nil, cluster: String? = nil, serviceName: String, networkConfiguration: NetworkConfiguration? = nil, loadBalancers: [LoadBalancer]? = nil, role: String? = nil, desiredCount: Int32, launchType: LaunchType? = nil, placementConstraints: [PlacementConstraint]? = nil, deploymentConfiguration: DeploymentConfiguration? = nil, taskDefinition: String) { + self.platformVersion = platformVersion self.clientToken = clientToken self.placementStrategy = placementStrategy self.cluster = cluster - self.placementConstraints = placementConstraints self.serviceName = serviceName - self.deploymentConfiguration = deploymentConfiguration - self.taskDefinition = taskDefinition + self.networkConfiguration = networkConfiguration self.loadBalancers = loadBalancers self.role = role + self.desiredCount = desiredCount + self.launchType = launchType + self.placementConstraints = placementConstraints + self.deploymentConfiguration = deploymentConfiguration + self.taskDefinition = taskDefinition } private enum CodingKeys: String, CodingKey { - case desiredCount = "desiredCount" + case platformVersion = "platformVersion" case clientToken = "clientToken" case placementStrategy = "placementStrategy" case cluster = "cluster" - case placementConstraints = "placementConstraints" case serviceName = "serviceName" - case deploymentConfiguration = "deploymentConfiguration" - case taskDefinition = "taskDefinition" + case networkConfiguration = "networkConfiguration" case loadBalancers = "loadBalancers" case role = "role" + case desiredCount = "desiredCount" + case launchType = "launchType" + case placementConstraints = "placementConstraints" + case deploymentConfiguration = "deploymentConfiguration" + case taskDefinition = "taskDefinition" } } public struct DescribeContainerInstancesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "containerInstances", required: false, type: .list), AWSShapeMember(label: "failures", required: false, type: .list) ] @@ -113,13 +135,42 @@ extension Ecs { } } + public struct LinuxParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "initProcessEnabled", required: false, type: .boolean), + AWSShapeMember(label: "devices", required: false, type: .list), + AWSShapeMember(label: "capabilities", required: false, type: .structure) + ] + /// Run an init process inside the container that forwards signals and reaps processes. This parameter maps to the --init option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep "Server API version" + public let initProcessEnabled: Bool? + /// Any host devices to expose to the container. This parameter maps to Devices in the Create a container section of the Docker Remote API and the --device option to docker run. + public let devices: [Device]? + /// The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker. + public let capabilities: KernelCapabilities? + + public init(initProcessEnabled: Bool? = nil, devices: [Device]? = nil, capabilities: KernelCapabilities? = nil) { + self.initProcessEnabled = initProcessEnabled + self.devices = devices + self.capabilities = capabilities + } + + private enum CodingKeys: String, CodingKey { + case initProcessEnabled = "initProcessEnabled" + case devices = "devices" + case capabilities = "capabilities" + } + } + public struct Deployment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "desiredCount", required: false, type: .integer), AWSShapeMember(label: "status", required: false, type: .string), + AWSShapeMember(label: "platformVersion", required: false, type: .string), AWSShapeMember(label: "id", required: false, type: .string), + AWSShapeMember(label: "launchType", required: false, type: .enum), AWSShapeMember(label: "createdAt", required: false, type: .timestamp), AWSShapeMember(label: "updatedAt", required: false, type: .timestamp), + AWSShapeMember(label: "networkConfiguration", required: false, type: .structure), AWSShapeMember(label: "pendingCount", required: false, type: .integer), AWSShapeMember(label: "taskDefinition", required: false, type: .string), AWSShapeMember(label: "runningCount", required: false, type: .integer) @@ -128,12 +179,18 @@ extension Ecs { public let desiredCount: Int32? /// The status of the deployment. Valid values are PRIMARY (for the most recent deployment), ACTIVE (for previous deployments that still have tasks running, but are being replaced with the PRIMARY deployment), and INACTIVE (for deployments that have been completely replaced). public let status: String? + /// The platform version on which your service is running. + public let platformVersion: String? /// The ID of the deployment. public let id: String? - /// The Unix timestamp for when the service was created. + /// The launch type on which your service is running. + public let launchType: LaunchType? + /// The Unix time stamp for when the service was created. public let createdAt: TimeStamp? - /// The Unix timestamp for when the service was last updated. + /// The Unix time stamp for when the service was last updated. public let updatedAt: TimeStamp? + /// The VPC subnet and security group configuration for tasks that receive their own Elastic Network Interface by using the awsvpc networking mode. + public let networkConfiguration: NetworkConfiguration? /// The number of tasks in the deployment that are in the PENDING status. public let pendingCount: Int32? /// The most recent task definition that was specified for the service to use. @@ -141,12 +198,15 @@ extension Ecs { /// The number of tasks in the deployment that are in the RUNNING status. public let runningCount: Int32? - public init(desiredCount: Int32? = nil, status: String? = nil, id: String? = nil, createdAt: TimeStamp? = nil, updatedAt: TimeStamp? = nil, pendingCount: Int32? = nil, taskDefinition: String? = nil, runningCount: Int32? = nil) { + public init(desiredCount: Int32? = nil, status: String? = nil, platformVersion: String? = nil, id: String? = nil, launchType: LaunchType? = nil, createdAt: TimeStamp? = nil, updatedAt: TimeStamp? = nil, networkConfiguration: NetworkConfiguration? = nil, pendingCount: Int32? = nil, taskDefinition: String? = nil, runningCount: Int32? = nil) { self.desiredCount = desiredCount self.status = status + self.platformVersion = platformVersion self.id = id + self.launchType = launchType self.createdAt = createdAt self.updatedAt = updatedAt + self.networkConfiguration = networkConfiguration self.pendingCount = pendingCount self.taskDefinition = taskDefinition self.runningCount = runningCount @@ -155,9 +215,12 @@ extension Ecs { private enum CodingKeys: String, CodingKey { case desiredCount = "desiredCount" case status = "status" + case platformVersion = "platformVersion" case id = "id" + case launchType = "launchType" case createdAt = "createdAt" case updatedAt = "updatedAt" + case networkConfiguration = "networkConfiguration" case pendingCount = "pendingCount" case taskDefinition = "taskDefinition" case runningCount = "runningCount" @@ -167,12 +230,13 @@ extension Ecs { public enum NetworkMode: String, CustomStringConvertible, Codable { case bridge = "bridge" case host = "host" + case awsvpc = "awsvpc" case none = "none" public var description: String { return self.rawValue } } public struct SubmitContainerStateChangeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "acknowledgment", required: false, type: .string) ] /// Acknowledgement of the state change. @@ -188,7 +252,7 @@ extension Ecs { } public struct DeleteAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributes", required: false, type: .list) ] /// A list of attribute objects that were successfully deleted from your resource. @@ -204,7 +268,7 @@ extension Ecs { } public struct ContainerInstance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pendingTasksCount", required: false, type: .integer), AWSShapeMember(label: "versionInfo", required: false, type: .structure), AWSShapeMember(label: "ec2InstanceId", required: false, type: .string), @@ -212,6 +276,7 @@ extension Ecs { AWSShapeMember(label: "agentConnected", required: false, type: .boolean), AWSShapeMember(label: "agentUpdateStatus", required: false, type: .enum), AWSShapeMember(label: "registeredAt", required: false, type: .timestamp), + AWSShapeMember(label: "attachments", required: false, type: .list), AWSShapeMember(label: "remainingResources", required: false, type: .list), AWSShapeMember(label: "attributes", required: false, type: .list), AWSShapeMember(label: "status", required: false, type: .string), @@ -227,26 +292,28 @@ extension Ecs { public let ec2InstanceId: String? /// For most resource types, this parameter describes the registered resources on the container instance that are in use by current tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent when it registered the container instance with Amazon ECS. public let registeredResources: [Resource]? - /// This parameter returns true if the agent is actually connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return false, and instances without a connected agent cannot accept placement requests. + /// This parameter returns true if the agent is connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return false. Instances without a connected agent can't accept placement requests. public let agentConnected: Bool? /// The status of the most recent agent update. If an update has never been requested, this value is NULL. public let agentUpdateStatus: AgentUpdateStatus? - /// The Unix timestamp for when the container instance was registered. + /// The Unix time stamp for when the container instance was registered. public let registeredAt: TimeStamp? + /// The Elastic Network Interfaces associated with the container instance. + public let attachments: [Attachment]? /// For most resource types, this parameter describes the remaining resources of the container instance that are available for new tasks. For port resource types, this parameter describes the ports that are reserved by the Amazon ECS container agent and any containers that have reserved port mappings; any port that is not specified here is available for new tasks. public let remainingResources: [Resource]? /// The attributes set for the container instance, either by the Amazon ECS container agent at instance registration or manually with the PutAttributes operation. public let attributes: [Attribute]? - /// The status of the container instance. The valid values are ACTIVE, INACTIVE, or DRAINING. ACTIVE indicates that the container instance can accept tasks. DRAINING indicates that new tasks are not placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see Container Instance Draining in the Amazon EC2 Container Service Developer Guide. + /// The status of the container instance. The valid values are ACTIVE, INACTIVE, or DRAINING. ACTIVE indicates that the container instance can accept tasks. DRAINING indicates that new tasks are not placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see Container Instance Draining in the Amazon Elastic Container Service Developer Guide. public let status: String? /// The Amazon Resource Name (ARN) of the container instance. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID . public let containerInstanceArn: String? /// The number of tasks on the container instance that are in the RUNNING status. public let runningTasksCount: Int32? - /// The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch events for the container instance (inside the detail object) to verify that the version in your event stream is current. + /// The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch Events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch Events for the container instance (inside the detail object) to verify that the version in your event stream is current. public let version: Int64? - public init(pendingTasksCount: Int32? = nil, versionInfo: VersionInfo? = nil, ec2InstanceId: String? = nil, registeredResources: [Resource]? = nil, agentConnected: Bool? = nil, agentUpdateStatus: AgentUpdateStatus? = nil, registeredAt: TimeStamp? = nil, remainingResources: [Resource]? = nil, attributes: [Attribute]? = nil, status: String? = nil, containerInstanceArn: String? = nil, runningTasksCount: Int32? = nil, version: Int64? = nil) { + public init(pendingTasksCount: Int32? = nil, versionInfo: VersionInfo? = nil, ec2InstanceId: String? = nil, registeredResources: [Resource]? = nil, agentConnected: Bool? = nil, agentUpdateStatus: AgentUpdateStatus? = nil, registeredAt: TimeStamp? = nil, attachments: [Attachment]? = nil, remainingResources: [Resource]? = nil, attributes: [Attribute]? = nil, status: String? = nil, containerInstanceArn: String? = nil, runningTasksCount: Int32? = nil, version: Int64? = nil) { self.pendingTasksCount = pendingTasksCount self.versionInfo = versionInfo self.ec2InstanceId = ec2InstanceId @@ -254,6 +321,7 @@ extension Ecs { self.agentConnected = agentConnected self.agentUpdateStatus = agentUpdateStatus self.registeredAt = registeredAt + self.attachments = attachments self.remainingResources = remainingResources self.attributes = attributes self.status = status @@ -270,6 +338,7 @@ extension Ecs { case agentConnected = "agentConnected" case agentUpdateStatus = "agentUpdateStatus" case registeredAt = "registeredAt" + case attachments = "attachments" case remainingResources = "remainingResources" case attributes = "attributes" case status = "status" @@ -279,51 +348,46 @@ extension Ecs { } } - public struct StopTaskResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "task", required: false, type: .structure) + public struct NetworkConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "awsvpcConfiguration", required: false, type: .structure) ] - /// The task that was stopped. - public let task: Task? + /// The VPC subnets and security groups associated with a task. + public let awsvpcConfiguration: AwsVpcConfiguration? - public init(task: Task? = nil) { - self.task = task + public init(awsvpcConfiguration: AwsVpcConfiguration? = nil) { + self.awsvpcConfiguration = awsvpcConfiguration } private enum CodingKeys: String, CodingKey { - case task = "task" + case awsvpcConfiguration = "awsvpcConfiguration" } } - public struct ListTaskDefinitionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "taskDefinitionArns", required: false, type: .list), - AWSShapeMember(label: "nextToken", required: false, type: .string) + public struct StopTaskResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "task", required: false, type: .structure) ] - /// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions request. - public let taskDefinitionArns: [String]? - /// The nextToken value to include in a future ListTaskDefinitions request. When the results of a ListTaskDefinitions request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. - public let nextToken: String? + /// The task that was stopped. + public let task: Task? - public init(taskDefinitionArns: [String]? = nil, nextToken: String? = nil) { - self.taskDefinitionArns = taskDefinitionArns - self.nextToken = nextToken + public init(task: Task? = nil) { + self.task = task } private enum CodingKeys: String, CodingKey { - case taskDefinitionArns = "taskDefinitionArns" - case nextToken = "nextToken" + case task = "task" } } public struct DeploymentConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maximumPercent", required: false, type: .integer), AWSShapeMember(label: "minimumHealthyPercent", required: false, type: .integer) ] /// The upper limit (as a percentage of the service's desiredCount) of the number of tasks that are allowed in the RUNNING or PENDING state in a service during a deployment. The maximum number of tasks during a deployment is the desiredCount multiplied by maximumPercent/100, rounded down to the nearest integer value. public let maximumPercent: Int32? - /// The lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain in the RUNNING state in a service during a deployment. The minimum healthy tasks during a deployment is the desiredCount multiplied by minimumHealthyPercent/100, rounded up to the nearest integer value. + /// The lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain in the RUNNING state in a service during a deployment. The minimum number of healthy tasks during a deployment is the desiredCount multiplied by minimumHealthyPercent/100, rounded up to the nearest integer value. public let minimumHealthyPercent: Int32? public init(maximumPercent: Int32? = nil, minimumHealthyPercent: Int32? = nil) { @@ -337,13 +401,35 @@ extension Ecs { } } + public struct UpdateContainerAgentResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "containerInstance", required: false, type: .structure) + ] + /// The container instance for which the container agent was updated. + public let containerInstance: ContainerInstance? + + public init(containerInstance: ContainerInstance? = nil) { + self.containerInstance = containerInstance + } + + private enum CodingKeys: String, CodingKey { + case containerInstance = "containerInstance" + } + } + + public enum Connectivity: String, CustomStringConvertible, Codable { + case connected = "CONNECTED" + case disconnected = "DISCONNECTED" + public var description: String { return self.rawValue } + } + public struct UpdateContainerInstancesStateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "containerInstances", required: true, type: .list), AWSShapeMember(label: "status", required: true, type: .enum), AWSShapeMember(label: "cluster", required: false, type: .string) ] - /// A list of container instance IDs or full Amazon Resource Name (ARN) entries. + /// A list of container instance IDs or full ARN entries. public let containerInstances: [String] /// The container instance state with which to update the container instance. public let status: ContainerInstanceStatus @@ -363,19 +449,24 @@ extension Ecs { } } - public struct UpdateContainerAgentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "containerInstance", required: false, type: .structure) + public struct KernelCapabilities: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "add", required: false, type: .list), + AWSShapeMember(label: "drop", required: false, type: .list) ] - /// The container instance for which the container agent was updated. - public let containerInstance: ContainerInstance? + /// The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to CapAdd in the Create a container section of the Docker Remote API and the --cap-add option to docker run. Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM" + public let add: [String]? + /// The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to CapDrop in the Create a container section of the Docker Remote API and the --cap-drop option to docker run. Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM" + public let drop: [String]? - public init(containerInstance: ContainerInstance? = nil) { - self.containerInstance = containerInstance + public init(add: [String]? = nil, drop: [String]? = nil) { + self.add = add + self.drop = drop } private enum CodingKeys: String, CodingKey { - case containerInstance = "containerInstance" + case add = "add" + case drop = "drop" } } @@ -386,29 +477,29 @@ extension Ecs { public var description: String { return self.rawValue } } - public struct VolumeFrom: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "sourceContainer", required: false, type: .string), - AWSShapeMember(label: "readOnly", required: false, type: .boolean) + public struct ListTaskDefinitionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "taskDefinitionArns", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) ] - /// The name of another container within the same task definition to mount volumes from. - public let sourceContainer: String? - /// If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false. - public let readOnly: Bool? + /// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions request. + public let taskDefinitionArns: [String]? + /// The nextToken value to include in a future ListTaskDefinitions request. When the results of a ListTaskDefinitions request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? - public init(sourceContainer: String? = nil, readOnly: Bool? = nil) { - self.sourceContainer = sourceContainer - self.readOnly = readOnly + public init(taskDefinitionArns: [String]? = nil, nextToken: String? = nil) { + self.taskDefinitionArns = taskDefinitionArns + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case sourceContainer = "sourceContainer" - case readOnly = "readOnly" + case taskDefinitionArns = "taskDefinitionArns" + case nextToken = "nextToken" } } public struct CreateClusterResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cluster", required: false, type: .structure) ] /// The full description of your new cluster. @@ -423,8 +514,13 @@ extension Ecs { } } + public enum ClusterField: String, CustomStringConvertible, Codable { + case statistics = "STATISTICS" + public var description: String { return self.rawValue } + } + public struct DeleteServiceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "service", required: false, type: .structure) ] /// The full description of the deleted service. @@ -439,11 +535,38 @@ extension Ecs { } } + public enum AssignPublicIp: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public struct VolumeFrom: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "sourceContainer", required: false, type: .string), + AWSShapeMember(label: "readOnly", required: false, type: .boolean) + ] + /// The name of another container within the same task definition to mount volumes from. + public let sourceContainer: String? + /// If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false. + public let readOnly: Bool? + + public init(sourceContainer: String? = nil, readOnly: Bool? = nil) { + self.sourceContainer = sourceContainer + self.readOnly = readOnly + } + + private enum CodingKeys: String, CodingKey { + case sourceContainer = "sourceContainer" + case readOnly = "readOnly" + } + } + public struct HostVolumeProperties: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "sourcePath", required: false, type: .string) ] - /// The path on the host container instance that is presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the host parameter contains a sourcePath file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the sourcePath value does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported. + /// The path on the host container instance that is presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the host parameter contains a sourcePath file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the sourcePath value does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported. If you are using the Fargate launch type, the host parameter is not supported. public let sourcePath: String? public init(sourcePath: String? = nil) { @@ -456,13 +579,13 @@ extension Ecs { } public struct TaskDefinitionPlacementConstraint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "expression", required: false, type: .string) ] /// The type of constraint. The DistinctInstance constraint ensures that each task in a particular group is running on a different container instance. The MemberOf constraint restricts selection to be from a group of valid candidates. public let `type`: TaskDefinitionPlacementConstraintType? - /// A cluster query language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide. + /// A cluster query language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide. public let expression: String? public init(type: TaskDefinitionPlacementConstraintType? = nil, expression: String? = nil) { @@ -477,7 +600,7 @@ extension Ecs { } public struct DescribeTasksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failures", required: false, type: .list), AWSShapeMember(label: "tasks", required: false, type: .list) ] @@ -502,12 +625,19 @@ extension Ecs { public var description: String { return self.rawValue } } + public enum TaskDefinitionFamilyStatus: String, CustomStringConvertible, Codable { + case active = "ACTIVE" + case inactive = "INACTIVE" + case all = "ALL" + public var description: String { return self.rawValue } + } + public struct ListClustersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer) ] - /// The nextToken value returned from a previous paginated ListClusters request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + /// The nextToken value returned from a previous paginated ListClusters request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. public let nextToken: String? /// The maximum number of cluster results returned by ListClusters in paginated output. When this parameter is used, ListClusters only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListClusters request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListClusters returns up to 100 results and a nextToken value if applicable. public let maxResults: Int32? @@ -523,21 +653,14 @@ extension Ecs { } } - public enum TaskDefinitionFamilyStatus: String, CustomStringConvertible, Codable { - case active = "ACTIVE" - case inactive = "INACTIVE" - case all = "ALL" - public var description: String { return self.rawValue } - } - public struct LogConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "options", required: false, type: .map), AWSShapeMember(label: "logDriver", required: true, type: .enum) ] - /// The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version" + /// The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep "Server API version" public let options: [String: String]? - /// The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. If you have a custom driver that is not listed above that you would like to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that is available on GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, Amazon Web Services does not currently provide support for running modified copies of this software. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version" + /// The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. If using the Fargate launch type, the only supported value is awslogs. For more information about using the awslogs driver, see Using the awslogs Log Driver in the Amazon Elastic Container Service Developer Guide. If you have a custom driver that is not listed above that you would like to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that is available on GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, Amazon Web Services does not currently support running modified copies of this software. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep "Server API version" public let logDriver: LogDriver public init(options: [String: String]? = nil, logDriver: LogDriver) { @@ -551,8 +674,34 @@ extension Ecs { } } + public struct MountPoint: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "readOnly", required: false, type: .boolean), + AWSShapeMember(label: "sourceVolume", required: false, type: .string), + AWSShapeMember(label: "containerPath", required: false, type: .string) + ] + /// If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false. + public let readOnly: Bool? + /// The name of the volume to mount. If using the Fargate launch type, the sourceVolume parameter is not supported. + public let sourceVolume: String? + /// The path on the container to mount the host volume at. + public let containerPath: String? + + public init(readOnly: Bool? = nil, sourceVolume: String? = nil, containerPath: String? = nil) { + self.readOnly = readOnly + self.sourceVolume = sourceVolume + self.containerPath = containerPath + } + + private enum CodingKeys: String, CodingKey { + case readOnly = "readOnly" + case sourceVolume = "sourceVolume" + case containerPath = "containerPath" + } + } + public struct DiscoverPollEndpointResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "telemetryEndpoint", required: false, type: .string), AWSShapeMember(label: "endpoint", required: false, type: .string) ] @@ -572,40 +721,35 @@ extension Ecs { } } - public struct MountPoint: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "readOnly", required: false, type: .boolean), - AWSShapeMember(label: "sourceVolume", required: false, type: .string), - AWSShapeMember(label: "containerPath", required: false, type: .string) + public struct AttachmentStateChange: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: true, type: .string), + AWSShapeMember(label: "attachmentArn", required: true, type: .string) ] - /// If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false. - public let readOnly: Bool? - /// The name of the volume to mount. - public let sourceVolume: String? - /// The path on the container to mount the host volume at. - public let containerPath: String? + /// The status of the attachment. + public let status: String + /// The Amazon Resource Name (ARN) of the attachment. + public let attachmentArn: String - public init(readOnly: Bool? = nil, sourceVolume: String? = nil, containerPath: String? = nil) { - self.readOnly = readOnly - self.sourceVolume = sourceVolume - self.containerPath = containerPath + public init(status: String, attachmentArn: String) { + self.status = status + self.attachmentArn = attachmentArn } private enum CodingKeys: String, CodingKey { - case readOnly = "readOnly" - case sourceVolume = "sourceVolume" - case containerPath = "containerPath" + case status = "status" + case attachmentArn = "attachmentArn" } } public struct ListContainerInstancesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "containerInstanceArns", required: false, type: .list) ] /// The nextToken value to include in a future ListContainerInstances request. When the results of a ListContainerInstances request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. public let nextToken: String? - /// The list of container instances with full Amazon Resource Name (ARN) entries for each container instance associated with the specified cluster. + /// The list of container instances with full ARN entries for each container instance associated with the specified cluster. public let containerInstanceArns: [String]? public init(nextToken: String? = nil, containerInstanceArns: [String]? = nil) { @@ -626,7 +770,7 @@ extension Ecs { } public struct DeleteClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cluster", required: true, type: .string) ] /// The short name or full Amazon Resource Name (ARN) of the cluster to delete. @@ -642,7 +786,7 @@ extension Ecs { } public struct ContainerDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "memoryReservation", required: false, type: .integer), AWSShapeMember(label: "portMappings", required: false, type: .list), AWSShapeMember(label: "cpu", required: false, type: .integer), @@ -660,6 +804,7 @@ extension Ecs { AWSShapeMember(label: "essential", required: false, type: .boolean), AWSShapeMember(label: "workingDirectory", required: false, type: .string), AWSShapeMember(label: "dnsServers", required: false, type: .list), + AWSShapeMember(label: "linuxParameters", required: false, type: .structure), AWSShapeMember(label: "logConfiguration", required: false, type: .structure), AWSShapeMember(label: "ulimits", required: false, type: .list), AWSShapeMember(label: "dockerSecurityOptions", required: false, type: .list), @@ -672,21 +817,21 @@ extension Ecs { ] /// The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit; however, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to MemoryReservation in the Create a container section of the Docker Remote API and the --memory-reservation option to docker run. You must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used. For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation of 128 MiB, and a memory hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. public let memoryReservation: Int32? - /// The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. This parameter maps to PortBindings in the Create a container section of the Docker Remote API and the --publish option to docker run. If the network mode of a task definition is set to none, then you cannot specify port mappings. If the network mode of a task definition is set to host, then host ports must either be undefined or they must match the container port in the port mapping. After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the Network Bindings section of a container description of a selected task in the Amazon ECS console, or the networkBindings section DescribeTasks responses. + /// The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. If using containers in a task with the Fargate, exposed ports should be specified using containerPort. The hostPort can be left blank or it must be the same value as the containerPort. This parameter maps to PortBindings in the Create a container section of the Docker Remote API and the --publish option to docker run. If the network mode of a task definition is set to none, then you can't specify port mappings. If the network mode of a task definition is set to host, then host ports must either be undefined or they must match the container port in the port mapping. After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the Network Bindings section of a container description for a selected task in the Amazon ECS console, or the networkBindings section DescribeTasks responses. public let portMappings: [PortMapping]? - /// The number of cpu units reserved for the container. A container instance has 1,024 cpu units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the Amazon EC2 Instances detail page by 1,024. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units. The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see CPU share constraint in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: Agent versions less than or equal to 1.1.0: Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to 2 CPU shares. Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values of 1 are passed to Docker as 2. + /// The number of cpu units reserved for the container. If your containers will be part of a task using the Fargate launch type, this field is optional and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task cpu value. For containers that will be part of a task using the EC2 launch type, a container instance has 1,024 cpu units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the Amazon EC2 Instances detail page by 1,024. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units. The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see CPU share constraint in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: Agent versions less than or equal to 1.1.0: Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to 2 CPU shares. Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values of 1 are passed to Docker as 2. public let cpu: Int32? /// When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the --read-only option to docker run. public let readonlyRootFilesystem: Bool? - /// The mount points for data volumes in your container. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run. + /// The mount points for data volumes in your container. If using the Fargate launch type, the sourceVolume parameter is not supported. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run. public let mountPoints: [MountPoint]? - /// The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used. The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. + /// The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. If your containers will be part of a task using the Fargate launch type, this field is optional and the only requirement is that the total amount of memory reserved for all containers within a task be lower than the task memory value. For containers that will be part of a task using the EC2 launch type, you must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used. The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. public let memory: Int32? /// When this parameter is true, networking is disabled within the container. This parameter maps to NetworkDisabled in the Create a container section of the Docker Remote API. public let disableNetworking: Bool? - /// A key/value map of labels to add to the container. This parameter maps to Labels in the Create a container section of the Docker Remote API and the --label option to docker run. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version" + /// A key/value map of labels to add to the container. This parameter maps to Labels in the Create a container section of the Docker Remote API and the --label option to docker run. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep "Server API version" public let dockerLabels: [String: String]? - /// The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run. Images in Amazon ECR repositories use the full registry and repository URI (for example, 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>). Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo). Images in other repositories on Docker Hub are qualified with an organization name (for example, amazon/amazon-ecs-agent). Images in other online repositories are qualified further by a domain name (for example, quay.io/assemblyline/ubuntu). + /// The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either repository-url/image:tag or repository-url/image@digest . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run. Images in Amazon ECR repositories can be specified by either using the full registry/repository:tag or registry/repository@digest. For example, 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo). Images in other repositories on Docker Hub are qualified with an organization name (for example, amazon/amazon-ecs-agent). Images in other online repositories are qualified further by a domain name (for example, quay.io/assemblyline/ubuntu). public let image: String? /// The command that is passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. public let command: [String]? @@ -698,19 +843,21 @@ extension Ecs { public let name: String? /// The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run. public let user: String? - /// If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the essential parameter of a container is marked as false, then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. All tasks must have at least one essential container. If you have an application that is composed of multiple containers, you should group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see Application Architecture in the Amazon EC2 Container Service Developer Guide. + /// If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the essential parameter of a container is marked as false, then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. All tasks must have at least one essential container. If you have an application that is composed of multiple containers, you should group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see Application Architecture in the Amazon Elastic Container Service Developer Guide. public let essential: Bool? /// The working directory in which to run commands inside the container. This parameter maps to WorkingDir in the Create a container section of the Docker Remote API and the --workdir option to docker run. public let workingDirectory: String? /// A list of DNS servers that are presented to the container. This parameter maps to Dns in the Create a container section of the Docker Remote API and the --dns option to docker run. public let dnsServers: [String]? - /// The log configuration specification for the container. This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses; however the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation. Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version" The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide. + /// Linux-specific modifications that are applied to the container, such as Linux KernelCapabilities. This field is not valid for containers in tasks using the Fargate launch type. + public let linuxParameters: LinuxParameters? + /// The log configuration specification for the container. If using the Fargate launch type, the only supported value is awslogs. This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses; however the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation. Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep "Server API version" The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide. public let logConfiguration: LogConfiguration? - /// A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version" + /// A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep "Server API version" public let ulimits: [Ulimit]? - /// A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This parameter maps to SecurityOpt in the Create a container section of the Docker Remote API and the --security-opt option to docker run. The Amazon ECS container agent running on a container instance must register with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide. + /// A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This field is not valid for containers in tasks using the Fargate launch type. This parameter maps to SecurityOpt in the Create a container section of the Docker Remote API and the --security-opt option to docker run. The Amazon ECS container agent running on a container instance must register with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide. public let dockerSecurityOptions: [String]? - /// The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run. We do not recommend using plain text environment variables for sensitive information, such as credential data. + /// The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run. We do not recommend using plaintext environment variables for sensitive information, such as credential data. public let environment: [KeyValuePair]? /// Early versions of the Amazon ECS container agent do not properly handle entryPoint parameters. If you have problems using entryPoint, update your container agent or enter your commands and arguments as command array items instead. The entry point that is passed to the container. This parameter maps to Entrypoint in the Create a container section of the Docker Remote API and the --entrypoint option to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint. public let entryPoint: [String]? @@ -718,12 +865,12 @@ extension Ecs { public let privileged: Bool? /// A list of DNS search domains that are presented to the container. This parameter maps to DnsSearch in the Create a container section of the Docker Remote API and the --dns-search option to docker run. public let dnsSearchDomains: [String]? - /// The link parameter allows containers to communicate with each other without the need for port mappings, using the name parameter and optionally, an alias for the link. This construct is analogous to name:alias in Docker links. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each name and alias. For more information on linking Docker containers, see https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/. This parameter maps to Links in the Create a container section of the Docker Remote API and the --link option to docker run. Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. + /// The link parameter allows containers to communicate with each other without the need for port mappings, using the name parameter and optionally, an alias for the link. This construct is analogous to name:alias in Docker links. This field is not valid for containers in tasks using the Fargate launch type. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each name and alias. For more information on linking Docker containers, see https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/. This parameter maps to Links in the Create a container section of the Docker Remote API and the --link option to docker run. Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. public let links: [String]? - /// A list of hostnames and IP address mappings to append to the /etc/hosts file on the container. This parameter maps to ExtraHosts in the Create a container section of the Docker Remote API and the --add-host option to docker run. + /// A list of hostnames and IP address mappings to append to the /etc/hosts file on the container. If using the Fargate launch type, this may be used to list non-Fargate hosts you want the container to talk to. This parameter maps to ExtraHosts in the Create a container section of the Docker Remote API and the --add-host option to docker run. public let extraHosts: [HostEntry]? - public init(memoryReservation: Int32? = nil, portMappings: [PortMapping]? = nil, cpu: Int32? = nil, readonlyRootFilesystem: Bool? = nil, mountPoints: [MountPoint]? = nil, memory: Int32? = nil, disableNetworking: Bool? = nil, dockerLabels: [String: String]? = nil, image: String? = nil, command: [String]? = nil, hostname: String? = nil, volumesFrom: [VolumeFrom]? = nil, name: String? = nil, user: String? = nil, essential: Bool? = nil, workingDirectory: String? = nil, dnsServers: [String]? = nil, logConfiguration: LogConfiguration? = nil, ulimits: [Ulimit]? = nil, dockerSecurityOptions: [String]? = nil, environment: [KeyValuePair]? = nil, entryPoint: [String]? = nil, privileged: Bool? = nil, dnsSearchDomains: [String]? = nil, links: [String]? = nil, extraHosts: [HostEntry]? = nil) { + public init(memoryReservation: Int32? = nil, portMappings: [PortMapping]? = nil, cpu: Int32? = nil, readonlyRootFilesystem: Bool? = nil, mountPoints: [MountPoint]? = nil, memory: Int32? = nil, disableNetworking: Bool? = nil, dockerLabels: [String: String]? = nil, image: String? = nil, command: [String]? = nil, hostname: String? = nil, volumesFrom: [VolumeFrom]? = nil, name: String? = nil, user: String? = nil, essential: Bool? = nil, workingDirectory: String? = nil, dnsServers: [String]? = nil, linuxParameters: LinuxParameters? = nil, logConfiguration: LogConfiguration? = nil, ulimits: [Ulimit]? = nil, dockerSecurityOptions: [String]? = nil, environment: [KeyValuePair]? = nil, entryPoint: [String]? = nil, privileged: Bool? = nil, dnsSearchDomains: [String]? = nil, links: [String]? = nil, extraHosts: [HostEntry]? = nil) { self.memoryReservation = memoryReservation self.portMappings = portMappings self.cpu = cpu @@ -741,6 +888,7 @@ extension Ecs { self.essential = essential self.workingDirectory = workingDirectory self.dnsServers = dnsServers + self.linuxParameters = linuxParameters self.logConfiguration = logConfiguration self.ulimits = ulimits self.dockerSecurityOptions = dockerSecurityOptions @@ -770,6 +918,7 @@ extension Ecs { case essential = "essential" case workingDirectory = "workingDirectory" case dnsServers = "dnsServers" + case linuxParameters = "linuxParameters" case logConfiguration = "logConfiguration" case ulimits = "ulimits" case dockerSecurityOptions = "dockerSecurityOptions" @@ -783,7 +932,7 @@ extension Ecs { } public struct DeleteServiceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "service", required: true, type: .string), AWSShapeMember(label: "cluster", required: false, type: .string) ] @@ -810,7 +959,7 @@ extension Ecs { } public struct Attribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "value", required: false, type: .string), AWSShapeMember(label: "targetId", required: false, type: .string), @@ -822,7 +971,7 @@ extension Ecs { public let value: String? /// The ID of the target. You can specify the short form ID for a resource or the full Amazon Resource Name (ARN). public let targetId: String? - /// The type of the target with which to attach the attribute. This parameter is required if you use the short form ID for a resource instead of the full Amazon Resource Name (ARN). + /// The type of the target with which to attach the attribute. This parameter is required if you use the short form ID for a resource instead of the full ARN. public let targetType: TargetType? public init(name: String, value: String? = nil, targetId: String? = nil, targetType: TargetType? = nil) { @@ -847,15 +996,36 @@ extension Ecs { public var description: String { return self.rawValue } } + public struct DescribeClustersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "clusters", required: false, type: .list), + AWSShapeMember(label: "failures", required: false, type: .list) + ] + /// The list of clusters. + public let clusters: [Cluster]? + /// Any failures associated with the call. + public let failures: [Failure]? + + public init(clusters: [Cluster]? = nil, failures: [Failure]? = nil) { + self.clusters = clusters + self.failures = failures + } + + private enum CodingKeys: String, CodingKey { + case clusters = "clusters" + case failures = "failures" + } + } + public struct StopTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "task", required: true, type: .string), AWSShapeMember(label: "reason", required: false, type: .string), AWSShapeMember(label: "cluster", required: false, type: .string) ] - /// The task ID or full Amazon Resource Name (ARN) entry of the task to stop. + /// The task ID or full ARN entry of the task to stop. public let task: String - /// An optional message specified when a task is stopped. For example, if you are using a custom scheduler, you can use this parameter to specify the reason for stopping the task here, and the message will appear in subsequent DescribeTasks API operations on this task. Up to 255 characters are allowed in this message. + /// An optional message specified when a task is stopped. For example, if you are using a custom scheduler, you can use this parameter to specify the reason for stopping the task here, and the message appears in subsequent DescribeTasks API operations on this task. Up to 255 characters are allowed in this message. public let reason: String? /// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to stop. If you do not specify a cluster, the default cluster is assumed. public let cluster: String? @@ -873,29 +1043,8 @@ extension Ecs { } } - public struct DescribeClustersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "clusters", required: false, type: .list), - AWSShapeMember(label: "failures", required: false, type: .list) - ] - /// The list of clusters. - public let clusters: [Cluster]? - /// Any failures associated with the call. - public let failures: [Failure]? - - public init(clusters: [Cluster]? = nil, failures: [Failure]? = nil) { - self.clusters = clusters - self.failures = failures - } - - private enum CodingKeys: String, CodingKey { - case clusters = "clusters" - case failures = "failures" - } - } - public struct Resource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "longValue", required: false, type: .long), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "doubleValue", required: false, type: .double), @@ -935,49 +1084,91 @@ extension Ecs { } } + public enum Compatibility: String, CustomStringConvertible, Codable { + case ec2 = "EC2" + case fargate = "FARGATE" + public var description: String { return self.rawValue } + } + public struct RegisterTaskDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "placementConstraints", required: false, type: .list), - AWSShapeMember(label: "containerDefinitions", required: true, type: .list), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "executionRoleArn", required: false, type: .string), + AWSShapeMember(label: "cpu", required: false, type: .string), AWSShapeMember(label: "family", required: true, type: .string), - AWSShapeMember(label: "networkMode", required: false, type: .enum), + AWSShapeMember(label: "volumes", required: false, type: .list), AWSShapeMember(label: "taskRoleArn", required: false, type: .string), - AWSShapeMember(label: "volumes", required: false, type: .list) + AWSShapeMember(label: "networkMode", required: false, type: .enum), + AWSShapeMember(label: "placementConstraints", required: false, type: .list), + AWSShapeMember(label: "containerDefinitions", required: true, type: .list), + AWSShapeMember(label: "requiresCompatibilities", required: false, type: .list), + AWSShapeMember(label: "memory", required: false, type: .string) ] - /// An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at run time). - public let placementConstraints: [TaskDefinitionPlacementConstraint]? - /// A list of container definitions in JSON format that describe the different containers that make up your task. - public let containerDefinitions: [ContainerDefinition] + /// The Amazon Resource Name (ARN) of the task execution role that the Amazon ECS container agent and the Docker daemon can assume. + public let executionRoleArn: String? + /// The number of cpu units used by the task. If using the EC2 launch type, this field is optional and any value can be used. If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter: 256 (.25 vCPU) - Available memory values: 512MB, 1GB, 2GB 512 (.5 vCPU) - Available memory values: 1GB, 2GB, 3GB, 4GB 1024 (1 vCPU) - Available memory values: 2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB 2048 (2 vCPU) - Available memory values: Between 4GB and 16GB in 1GB increments 4096 (4 vCPU) - Available memory values: Between 8GB and 30GB in 1GB increments + public let cpu: String? /// You must specify a family for a task definition, which allows you to track multiple versions of the same task definition. The family is used as a name for your task definition. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. public let family: String - /// The Docker networking mode to use for the containers in the task. The valid values are none, bridge, and host. The default Docker network mode is bridge. If the network mode is set to none, you cannot specify port mappings in your container definitions, and the task's containers do not have external connectivity. The host network mode offers the highest networking performance for containers because they use the host network stack instead of the virtualized network stack provided by the bridge mode; however, exposed container ports are mapped directly to the corresponding host port, so you cannot take advantage of dynamic host port mappings or run multiple instantiations of the same task on a single container instance if port mappings are used. For more information, see Network settings in the Docker run reference. - public let networkMode: NetworkMode? - /// The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see IAM Roles for Tasks in the Amazon EC2 Container Service Developer Guide. - public let taskRoleArn: String? /// A list of volume definitions in JSON format that containers in your task may use. public let volumes: [Volume]? + /// The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide. + public let taskRoleArn: String? + /// The Docker networking mode to use for the containers in the task. The valid values are none, bridge, awsvpc, and host. The default Docker network mode is bridge. If using the Fargate launch type, the awsvpc network mode is required. If using the EC2 launch type, any network mode can be used. If the network mode is set to none, you can't specify port mappings in your container definitions, and the task's containers do not have external connectivity. The host and awsvpc network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the bridge mode. With the host and awsvpc network modes, exposed container ports are mapped directly to the corresponding host port (for the host network mode) or the attached elastic network interface port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings. If the network mode is awsvpc, the task is allocated an Elastic Network Interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide. If the network mode is host, you can't run multiple instantiations of the same task on a single container instance when port mappings are used. For more information, see Network settings in the Docker run reference. + public let networkMode: NetworkMode? + /// An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at run time). + public let placementConstraints: [TaskDefinitionPlacementConstraint]? + /// A list of container definitions in JSON format that describe the different containers that make up your task. + public let containerDefinitions: [ContainerDefinition] + /// The launch type required by the task. If no value is specified, it defaults to EC2. + public let requiresCompatibilities: [Compatibility]? + /// The amount (in MiB) of memory used by the task. If using the EC2 launch type, this field is optional and any value can be used. If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter: 512MB, 1GB, 2GB - Available cpu values: 256 (.25 vCPU) 1GB, 2GB, 3GB, 4GB - Available cpu values: 512 (.5 vCPU) 2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB - Available cpu values: 1024 (1 vCPU) Between 4GB and 16GB in 1GB increments - Available cpu values: 2048 (2 vCPU) Between 8GB and 30GB in 1GB increments - Available cpu values: 4096 (4 vCPU) + public let memory: String? - public init(placementConstraints: [TaskDefinitionPlacementConstraint]? = nil, containerDefinitions: [ContainerDefinition], family: String, networkMode: NetworkMode? = nil, taskRoleArn: String? = nil, volumes: [Volume]? = nil) { - self.placementConstraints = placementConstraints - self.containerDefinitions = containerDefinitions + public init(executionRoleArn: String? = nil, cpu: String? = nil, family: String, volumes: [Volume]? = nil, taskRoleArn: String? = nil, networkMode: NetworkMode? = nil, placementConstraints: [TaskDefinitionPlacementConstraint]? = nil, containerDefinitions: [ContainerDefinition], requiresCompatibilities: [Compatibility]? = nil, memory: String? = nil) { + self.executionRoleArn = executionRoleArn + self.cpu = cpu self.family = family - self.networkMode = networkMode - self.taskRoleArn = taskRoleArn self.volumes = volumes + self.taskRoleArn = taskRoleArn + self.networkMode = networkMode + self.placementConstraints = placementConstraints + self.containerDefinitions = containerDefinitions + self.requiresCompatibilities = requiresCompatibilities + self.memory = memory } private enum CodingKeys: String, CodingKey { - case placementConstraints = "placementConstraints" - case containerDefinitions = "containerDefinitions" + case executionRoleArn = "executionRoleArn" + case cpu = "cpu" case family = "family" - case networkMode = "networkMode" - case taskRoleArn = "taskRoleArn" case volumes = "volumes" + case taskRoleArn = "taskRoleArn" + case networkMode = "networkMode" + case placementConstraints = "placementConstraints" + case containerDefinitions = "containerDefinitions" + case requiresCompatibilities = "requiresCompatibilities" + case memory = "memory" + } + } + + public struct DeregisterTaskDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "taskDefinition", required: true, type: .string) + ] + /// The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to deregister. You must specify a revision. + public let taskDefinition: String + + public init(taskDefinition: String) { + self.taskDefinition = taskDefinition + } + + private enum CodingKeys: String, CodingKey { + case taskDefinition = "taskDefinition" } } public struct ListTaskDefinitionFamiliesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "families", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1003,7 +1194,7 @@ extension Ecs { } public struct ContainerOverride: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "memoryReservation", required: false, type: .integer), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "environment", required: false, type: .list), @@ -1043,54 +1234,68 @@ extension Ecs { } } - public struct DeregisterTaskDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "taskDefinition", required: true, type: .string) + public struct AwsVpcConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "securityGroups", required: false, type: .list), + AWSShapeMember(label: "assignPublicIp", required: false, type: .enum), + AWSShapeMember(label: "subnets", required: true, type: .list) ] - /// The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to deregister. You must specify a revision. - public let taskDefinition: String + /// The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. + public let securityGroups: [String]? + /// Specifies whether or not the task's elastic network interface receives a public IP address. + public let assignPublicIp: AssignPublicIp? + /// The subnets associated with the task or service. + public let subnets: [String] - public init(taskDefinition: String) { - self.taskDefinition = taskDefinition + public init(securityGroups: [String]? = nil, assignPublicIp: AssignPublicIp? = nil, subnets: [String]) { + self.securityGroups = securityGroups + self.assignPublicIp = assignPublicIp + self.subnets = subnets } private enum CodingKeys: String, CodingKey { - case taskDefinition = "taskDefinition" + case securityGroups = "securityGroups" + case assignPublicIp = "assignPublicIp" + case subnets = "subnets" } } public struct ListTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "containerInstance", required: false, type: .string), AWSShapeMember(label: "family", required: false, type: .string), + AWSShapeMember(label: "launchType", required: false, type: .enum), AWSShapeMember(label: "cluster", required: false, type: .string), AWSShapeMember(label: "serviceName", required: false, type: .string), AWSShapeMember(label: "desiredStatus", required: false, type: .enum), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "startedBy", required: false, type: .string) ] - /// The nextToken value returned from a previous paginated ListTasks request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + /// The nextToken value returned from a previous paginated ListTasks request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. public let nextToken: String? - /// The container instance ID or full Amazon Resource Name (ARN) of the container instance with which to filter the ListTasks results. Specifying a containerInstance limits the results to tasks that belong to that container instance. + /// The container instance ID or full ARN of the container instance with which to filter the ListTasks results. Specifying a containerInstance limits the results to tasks that belong to that container instance. public let containerInstance: String? /// The name of the family with which to filter the ListTasks results. Specifying a family limits the results to tasks that belong to that family. public let family: String? + /// The launch type for services you want to list. + public let launchType: LaunchType? /// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the tasks to list. If you do not specify a cluster, the default cluster is assumed. public let cluster: String? /// The name of the service with which to filter the ListTasks results. Specifying a serviceName limits the results to tasks that belong to that service. public let serviceName: String? - /// The task desired status with which to filter the ListTasks results. Specifying a desiredStatus of STOPPED limits the results to tasks that ECS has set the desired status to STOPPED, which can be useful for debugging tasks that are not starting properly or have died or finished. The default status filter is RUNNING, which shows tasks that ECS has set the desired status to RUNNING. Although you can filter results based on a desired status of PENDING, this will not return any results because ECS never sets the desired status of a task to that value (only a task's lastStatus may have a value of PENDING). + /// The task desired status with which to filter the ListTasks results. Specifying a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has set the desired status to STOPPED, which can be useful for debugging tasks that are not starting properly or have died or finished. The default status filter is RUNNING, which shows tasks that Amazon ECS has set the desired status to RUNNING. Although you can filter results based on a desired status of PENDING, this does not return any results because Amazon ECS never sets the desired status of a task to that value (only a task's lastStatus may have a value of PENDING). public let desiredStatus: DesiredStatus? /// The maximum number of task results returned by ListTasks in paginated output. When this parameter is used, ListTasks only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListTasks request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListTasks returns up to 100 results and a nextToken value if applicable. public let maxResults: Int32? /// The startedBy value with which to filter the task results. Specifying a startedBy value limits the results to tasks that were started with that value. public let startedBy: String? - public init(nextToken: String? = nil, containerInstance: String? = nil, family: String? = nil, cluster: String? = nil, serviceName: String? = nil, desiredStatus: DesiredStatus? = nil, maxResults: Int32? = nil, startedBy: String? = nil) { + public init(nextToken: String? = nil, containerInstance: String? = nil, family: String? = nil, launchType: LaunchType? = nil, cluster: String? = nil, serviceName: String? = nil, desiredStatus: DesiredStatus? = nil, maxResults: Int32? = nil, startedBy: String? = nil) { self.nextToken = nextToken self.containerInstance = containerInstance self.family = family + self.launchType = launchType self.cluster = cluster self.serviceName = serviceName self.desiredStatus = desiredStatus @@ -1102,6 +1307,7 @@ extension Ecs { case nextToken = "nextToken" case containerInstance = "containerInstance" case family = "family" + case launchType = "launchType" case cluster = "cluster" case serviceName = "serviceName" case desiredStatus = "desiredStatus" @@ -1111,7 +1317,7 @@ extension Ecs { } public struct PutAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cluster", required: false, type: .string), AWSShapeMember(label: "attributes", required: true, type: .list) ] @@ -1132,7 +1338,8 @@ extension Ecs { } public struct Service: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "platformVersion", required: false, type: .string), AWSShapeMember(label: "roleArn", required: false, type: .string), AWSShapeMember(label: "clusterArn", required: false, type: .string), AWSShapeMember(label: "placementStrategy", required: false, type: .list), @@ -1143,20 +1350,24 @@ extension Ecs { AWSShapeMember(label: "loadBalancers", required: false, type: .list), AWSShapeMember(label: "events", required: false, type: .list), AWSShapeMember(label: "serviceArn", required: false, type: .string), - AWSShapeMember(label: "desiredCount", required: false, type: .integer), + AWSShapeMember(label: "networkConfiguration", required: false, type: .structure), AWSShapeMember(label: "status", required: false, type: .string), + AWSShapeMember(label: "desiredCount", required: false, type: .integer), + AWSShapeMember(label: "launchType", required: false, type: .enum), AWSShapeMember(label: "placementConstraints", required: false, type: .list), AWSShapeMember(label: "deploymentConfiguration", required: false, type: .structure), AWSShapeMember(label: "taskDefinition", required: false, type: .string), AWSShapeMember(label: "runningCount", required: false, type: .integer) ] - /// The Amazon Resource Name (ARN) of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer. + /// The platform version on which your task is running. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide. + public let platformVersion: String? + /// The ARN of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer. public let roleArn: String? /// The Amazon Resource Name (ARN) of the cluster that hosts the service. public let clusterArn: String? /// The placement strategy that determines how tasks for the service are placed. public let placementStrategy: [PlacementStrategy]? - /// The Unix timestamp for when the service was created. + /// The Unix time stamp for when the service was created. public let createdAt: TimeStamp? /// The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a region or across multiple regions. public let serviceName: String? @@ -1168,12 +1379,16 @@ extension Ecs { public let loadBalancers: [LoadBalancer]? /// The event stream for your service. A maximum of 100 of the latest events are displayed. public let events: [ServiceEvent]? - /// The Amazon Resource Name (ARN) that identifies the service. The ARN contains the arn:aws:ecs namespace, followed by the region of the service, the AWS account ID of the service owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service . + /// The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace, followed by the region of the service, the AWS account ID of the service owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service . public let serviceArn: String? - /// The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService. - public let desiredCount: Int32? + /// The VPC subnet and security group configuration for tasks that receive their own Elastic Network Interface by using the awsvpc networking mode. + public let networkConfiguration: NetworkConfiguration? /// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE. public let status: String? + /// The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService. + public let desiredCount: Int32? + /// The launch type on which your service is running. + public let launchType: LaunchType? /// The placement constraints for the tasks in the service. public let placementConstraints: [PlacementConstraint]? /// Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. @@ -1183,7 +1398,8 @@ extension Ecs { /// The number of tasks in the cluster that are in the RUNNING state. public let runningCount: Int32? - public init(roleArn: String? = nil, clusterArn: String? = nil, placementStrategy: [PlacementStrategy]? = nil, createdAt: TimeStamp? = nil, serviceName: String? = nil, pendingCount: Int32? = nil, deployments: [Deployment]? = nil, loadBalancers: [LoadBalancer]? = nil, events: [ServiceEvent]? = nil, serviceArn: String? = nil, desiredCount: Int32? = nil, status: String? = nil, placementConstraints: [PlacementConstraint]? = nil, deploymentConfiguration: DeploymentConfiguration? = nil, taskDefinition: String? = nil, runningCount: Int32? = nil) { + public init(platformVersion: String? = nil, roleArn: String? = nil, clusterArn: String? = nil, placementStrategy: [PlacementStrategy]? = nil, createdAt: TimeStamp? = nil, serviceName: String? = nil, pendingCount: Int32? = nil, deployments: [Deployment]? = nil, loadBalancers: [LoadBalancer]? = nil, events: [ServiceEvent]? = nil, serviceArn: String? = nil, networkConfiguration: NetworkConfiguration? = nil, status: String? = nil, desiredCount: Int32? = nil, launchType: LaunchType? = nil, placementConstraints: [PlacementConstraint]? = nil, deploymentConfiguration: DeploymentConfiguration? = nil, taskDefinition: String? = nil, runningCount: Int32? = nil) { + self.platformVersion = platformVersion self.roleArn = roleArn self.clusterArn = clusterArn self.placementStrategy = placementStrategy @@ -1194,8 +1410,10 @@ extension Ecs { self.loadBalancers = loadBalancers self.events = events self.serviceArn = serviceArn - self.desiredCount = desiredCount + self.networkConfiguration = networkConfiguration self.status = status + self.desiredCount = desiredCount + self.launchType = launchType self.placementConstraints = placementConstraints self.deploymentConfiguration = deploymentConfiguration self.taskDefinition = taskDefinition @@ -1203,6 +1421,7 @@ extension Ecs { } private enum CodingKeys: String, CodingKey { + case platformVersion = "platformVersion" case roleArn = "roleArn" case clusterArn = "clusterArn" case placementStrategy = "placementStrategy" @@ -1213,8 +1432,10 @@ extension Ecs { case loadBalancers = "loadBalancers" case events = "events" case serviceArn = "serviceArn" - case desiredCount = "desiredCount" + case networkConfiguration = "networkConfiguration" case status = "status" + case desiredCount = "desiredCount" + case launchType = "launchType" case placementConstraints = "placementConstraints" case deploymentConfiguration = "deploymentConfiguration" case taskDefinition = "taskDefinition" @@ -1223,43 +1444,58 @@ extension Ecs { } public struct UpdateServiceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "service", required: true, type: .string), AWSShapeMember(label: "desiredCount", required: false, type: .integer), + AWSShapeMember(label: "platformVersion", required: false, type: .string), + AWSShapeMember(label: "cluster", required: false, type: .string), AWSShapeMember(label: "deploymentConfiguration", required: false, type: .structure), - AWSShapeMember(label: "taskDefinition", required: false, type: .string), - AWSShapeMember(label: "cluster", required: false, type: .string) + AWSShapeMember(label: "networkConfiguration", required: false, type: .structure), + AWSShapeMember(label: "forceNewDeployment", required: false, type: .boolean), + AWSShapeMember(label: "taskDefinition", required: false, type: .string) ] /// The name of the service to update. public let service: String /// The number of instantiations of the task to place and keep running in your service. public let desiredCount: Int32? + /// The platform version you want to update your service to run. + public let platformVersion: String? + /// The short name or full Amazon Resource Name (ARN) of the cluster that your service is running on. If you do not specify a cluster, the default cluster is assumed. + public let cluster: String? /// Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. public let deploymentConfiguration: DeploymentConfiguration? - /// The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used. If you modify the task definition with UpdateService, Amazon ECS spawns a task with the new version of the task definition and then stops an old task after the new version is running. + /// The network configuration for the service. This parameter is required for task definitions that use the awsvpc network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide. Updating a service to add a subnet to a list of existing subnets does not trigger a service deployment. For example, if your network configuration change is to keep the existing subnets and simply add another subnet to the network configuration, this does not trigger a new service deployment. + public let networkConfiguration: NetworkConfiguration? + /// Whether or not to force a new deployment of the service. + public let forceNewDeployment: Bool? + /// The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used. If you modify the task definition with UpdateService, Amazon ECS spawns a task with the new version of the task definition and then stops an old task after the new version is running. public let taskDefinition: String? - /// The short name or full Amazon Resource Name (ARN) of the cluster that your service is running on. If you do not specify a cluster, the default cluster is assumed. - public let cluster: String? - public init(service: String, desiredCount: Int32? = nil, deploymentConfiguration: DeploymentConfiguration? = nil, taskDefinition: String? = nil, cluster: String? = nil) { + public init(service: String, desiredCount: Int32? = nil, platformVersion: String? = nil, cluster: String? = nil, deploymentConfiguration: DeploymentConfiguration? = nil, networkConfiguration: NetworkConfiguration? = nil, forceNewDeployment: Bool? = nil, taskDefinition: String? = nil) { self.service = service self.desiredCount = desiredCount + self.platformVersion = platformVersion + self.cluster = cluster self.deploymentConfiguration = deploymentConfiguration + self.networkConfiguration = networkConfiguration + self.forceNewDeployment = forceNewDeployment self.taskDefinition = taskDefinition - self.cluster = cluster } private enum CodingKeys: String, CodingKey { case service = "service" case desiredCount = "desiredCount" + case platformVersion = "platformVersion" + case cluster = "cluster" case deploymentConfiguration = "deploymentConfiguration" + case networkConfiguration = "networkConfiguration" + case forceNewDeployment = "forceNewDeployment" case taskDefinition = "taskDefinition" - case cluster = "cluster" } } public struct DescribeTaskDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskDefinition", required: false, type: .structure) ] /// The full task definition description. @@ -1275,13 +1511,13 @@ extension Ecs { } public struct DiscoverPollEndpointRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cluster", required: false, type: .string), AWSShapeMember(label: "containerInstance", required: false, type: .string) ] /// The short name or full Amazon Resource Name (ARN) of the cluster that the container instance belongs to. public let cluster: String? - /// The container instance ID or full Amazon Resource Name (ARN) of the container instance. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID . + /// The container instance ID or full ARN of the container instance. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID . public let containerInstance: String? public init(cluster: String? = nil, containerInstance: String? = nil) { @@ -1296,13 +1532,13 @@ extension Ecs { } public struct StartTaskResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failures", required: false, type: .list), AWSShapeMember(label: "tasks", required: false, type: .list) ] /// Any failures associated with the call. public let failures: [Failure]? - /// A full description of the tasks that were started. Each task that was successfully placed on your container instances are described here. + /// A full description of the tasks that were started. Each task that was successfully placed on your container instances is described. public let tasks: [Task]? public init(failures: [Failure]? = nil, tasks: [Task]? = nil) { @@ -1316,29 +1552,8 @@ extension Ecs { } } - public struct DeleteAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "cluster", required: false, type: .string), - AWSShapeMember(label: "attributes", required: true, type: .list) - ] - /// The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to delete attributes. If you do not specify a cluster, the default cluster is assumed. - public let cluster: String? - /// The attributes to delete from your resource. You can specify up to 10 attributes per request. For custom attributes, specify the attribute name and target ID, but do not specify the value. If you specify the target ID using the short form, you must also specify the target type. - public let attributes: [Attribute] - - public init(cluster: String? = nil, attributes: [Attribute]) { - self.cluster = cluster - self.attributes = attributes - } - - private enum CodingKeys: String, CodingKey { - case cluster = "cluster" - case attributes = "attributes" - } - } - public struct ListContainerInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), @@ -1347,11 +1562,11 @@ extension Ecs { ] /// Filters the container instances by status. For example, if you specify the DRAINING status, the results include only container instances that have been set to DRAINING using UpdateContainerInstancesState. If you do not specify this parameter, the default is to include container instances set to ACTIVE and DRAINING. public let status: ContainerInstanceStatus? - /// The nextToken value returned from a previous paginated ListContainerInstances request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + /// The nextToken value returned from a previous paginated ListContainerInstances request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. public let nextToken: String? /// The maximum number of container instance results returned by ListContainerInstances in paginated output. When this parameter is used, ListContainerInstances only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListContainerInstances request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListContainerInstances returns up to 100 results and a nextToken value if applicable. public let maxResults: Int32? - /// You can filter the results of a ListContainerInstances operation with cluster query language statements. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide. + /// You can filter the results of a ListContainerInstances operation with cluster query language statements. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide. public let filter: String? /// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to list. If you do not specify a cluster, the default cluster is assumed. public let cluster: String? @@ -1379,14 +1594,35 @@ extension Ecs { public var description: String { return self.rawValue } } + public struct DeleteAttributesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "cluster", required: false, type: .string), + AWSShapeMember(label: "attributes", required: true, type: .list) + ] + /// The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to delete attributes. If you do not specify a cluster, the default cluster is assumed. + public let cluster: String? + /// The attributes to delete from your resource. You can specify up to 10 attributes per request. For custom attributes, specify the attribute name and target ID, but do not specify the value. If you specify the target ID using the short form, you must also specify the target type. + public let attributes: [Attribute] + + public init(cluster: String? = nil, attributes: [Attribute]) { + self.cluster = cluster + self.attributes = attributes + } + + private enum CodingKeys: String, CodingKey { + case cluster = "cluster" + case attributes = "attributes" + } + } + public struct Volume: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "host", required: false, type: .structure) ] /// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This name is referenced in the sourceVolume parameter of container definition mountPoints. public let name: String? - /// The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running. + /// The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running. If you are using the Fargate launch type, the host parameter is not supported. public let host: HostVolumeProperties? public init(name: String? = nil, host: HostVolumeProperties? = nil) { @@ -1401,16 +1637,16 @@ extension Ecs { } public struct PortMapping: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "protocol", required: false, type: .enum), AWSShapeMember(label: "containerPort", required: false, type: .integer), AWSShapeMember(label: "hostPort", required: false, type: .integer) ] /// The protocol used for the port mapping. Valid values are tcp and udp. The default is tcp. public let `protocol`: TransportProtocol? - /// The port number on the container that is bound to the user-specified or automatically assigned host port. If you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range (for more information, see hostPort). Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance. + /// The port number on the container that is bound to the user-specified or automatically assigned host port. If using containers in a task with the Fargate launch type, exposed ports should be specified using containerPort. If using containers in a task with the EC2 launch type and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range (for more information, see hostPort). Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance. public let containerPort: Int32? - /// The port number on the container instance to reserve for your container. You can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under /proc/sys/net/ipv4/ip_local_port_range; if this kernel parameter is unavailable, the default ephemeral port range of 49153 to 65535 is used. You should not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default ephemeral port range of 49153 to 65535 will always be used for Docker versions prior to 1.6.0. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678 and 51679. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released).The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output, and a container instance may have up to 100 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward the 100 reserved ports limit). + /// The port number on the container instance to reserve for your container. If using containers in a task with the Fargate launch type, the hostPort can either be left blank or needs to be the same value as the containerPort. If using containers in a task with the EC2 launch type, you can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under /proc/sys/net/ipv4/ip_local_port_range; if this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used. You should not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default ephemeral port range from 49153 through 65535 is always used for Docker versions before 1.6.0. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678 and 51679. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released). The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output, and a container instance may have up to 100 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward the 100 reserved ports limit). public let hostPort: Int32? public init(protocol: TransportProtocol? = nil, containerPort: Int32? = nil, hostPort: Int32? = nil) { @@ -1427,7 +1663,7 @@ extension Ecs { } public struct Ulimit: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "softLimit", required: true, type: .integer), AWSShapeMember(label: "name", required: true, type: .enum), AWSShapeMember(label: "hardLimit", required: true, type: .integer) @@ -1453,7 +1689,7 @@ extension Ecs { } public struct DescribeServicesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "services", required: false, type: .list), AWSShapeMember(label: "failures", required: false, type: .list) ] @@ -1474,13 +1710,14 @@ extension Ecs { } public struct Container: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "reason", required: false, type: .string), AWSShapeMember(label: "networkBindings", required: false, type: .list), AWSShapeMember(label: "containerArn", required: false, type: .string), AWSShapeMember(label: "exitCode", required: false, type: .integer), AWSShapeMember(label: "taskArn", required: false, type: .string), + AWSShapeMember(label: "networkInterfaces", required: false, type: .list), AWSShapeMember(label: "lastStatus", required: false, type: .string) ] /// The name of the container. @@ -1493,18 +1730,21 @@ extension Ecs { public let containerArn: String? /// The exit code returned from the container. public let exitCode: Int32? - /// The Amazon Resource Name (ARN) of the task. + /// The ARN of the task. public let taskArn: String? + /// The network interfaces associated with the container. + public let networkInterfaces: [NetworkInterface]? /// The last known status of the container. public let lastStatus: String? - public init(name: String? = nil, reason: String? = nil, networkBindings: [NetworkBinding]? = nil, containerArn: String? = nil, exitCode: Int32? = nil, taskArn: String? = nil, lastStatus: String? = nil) { + public init(name: String? = nil, reason: String? = nil, networkBindings: [NetworkBinding]? = nil, containerArn: String? = nil, exitCode: Int32? = nil, taskArn: String? = nil, networkInterfaces: [NetworkInterface]? = nil, lastStatus: String? = nil) { self.name = name self.reason = reason self.networkBindings = networkBindings self.containerArn = containerArn self.exitCode = exitCode self.taskArn = taskArn + self.networkInterfaces = networkInterfaces self.lastStatus = lastStatus } @@ -1515,12 +1755,13 @@ extension Ecs { case containerArn = "containerArn" case exitCode = "exitCode" case taskArn = "taskArn" + case networkInterfaces = "networkInterfaces" case lastStatus = "lastStatus" } } public struct DescribeTaskDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskDefinition", required: true, type: .string) ] /// The family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, or full Amazon Resource Name (ARN) of the task definition to describe. @@ -1536,7 +1777,7 @@ extension Ecs { } public struct LoadBalancer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "targetGroupArn", required: false, type: .string), AWSShapeMember(label: "loadBalancerName", required: false, type: .string), AWSShapeMember(label: "containerPort", required: false, type: .integer), @@ -1544,7 +1785,7 @@ extension Ecs { ] /// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group associated with a service. public let targetGroupArn: String? - /// The name of a Classic load balancer. + /// The name of a load balancer. public let loadBalancerName: String? /// The port on the container to associate with the load balancer. This port must correspond to a containerPort in the service's task definition. Your container instances must allow ingress traffic on the hostPort of the port mapping. public let containerPort: Int32? @@ -1567,7 +1808,7 @@ extension Ecs { } public struct UpdateContainerInstancesStateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "containerInstances", required: false, type: .list), AWSShapeMember(label: "failures", required: false, type: .list) ] @@ -1588,12 +1829,13 @@ extension Ecs { } public struct Cluster: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pendingTasksCount", required: false, type: .integer), AWSShapeMember(label: "status", required: false, type: .string), AWSShapeMember(label: "clusterArn", required: false, type: .string), AWSShapeMember(label: "clusterName", required: false, type: .string), AWSShapeMember(label: "registeredContainerInstancesCount", required: false, type: .integer), + AWSShapeMember(label: "statistics", required: false, type: .list), AWSShapeMember(label: "runningTasksCount", required: false, type: .integer), AWSShapeMember(label: "activeServicesCount", required: false, type: .integer) ] @@ -1607,17 +1849,20 @@ extension Ecs { public let clusterName: String? /// The number of container instances registered into the cluster. public let registeredContainerInstancesCount: Int32? + /// Additional information about your clusters that are separated by launch type, including: runningEC2TasksCount RunningFargateTasksCount pendingEC2TasksCount pendingFargateTasksCount activeEC2ServiceCount activeFargateServiceCount drainingEC2ServiceCount drainingFargateServiceCount + public let statistics: [KeyValuePair]? /// The number of tasks in the cluster that are in the RUNNING state. public let runningTasksCount: Int32? /// The number of services that are running on the cluster in an ACTIVE state. You can view these services with ListServices. public let activeServicesCount: Int32? - public init(pendingTasksCount: Int32? = nil, status: String? = nil, clusterArn: String? = nil, clusterName: String? = nil, registeredContainerInstancesCount: Int32? = nil, runningTasksCount: Int32? = nil, activeServicesCount: Int32? = nil) { + public init(pendingTasksCount: Int32? = nil, status: String? = nil, clusterArn: String? = nil, clusterName: String? = nil, registeredContainerInstancesCount: Int32? = nil, statistics: [KeyValuePair]? = nil, runningTasksCount: Int32? = nil, activeServicesCount: Int32? = nil) { self.pendingTasksCount = pendingTasksCount self.status = status self.clusterArn = clusterArn self.clusterName = clusterName self.registeredContainerInstancesCount = registeredContainerInstancesCount + self.statistics = statistics self.runningTasksCount = runningTasksCount self.activeServicesCount = activeServicesCount } @@ -1628,115 +1873,172 @@ extension Ecs { case clusterArn = "clusterArn" case clusterName = "clusterName" case registeredContainerInstancesCount = "registeredContainerInstancesCount" + case statistics = "statistics" case runningTasksCount = "runningTasksCount" case activeServicesCount = "activeServicesCount" } } public struct StartTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "overrides", required: false, type: .structure), - AWSShapeMember(label: "taskDefinition", required: true, type: .string), - AWSShapeMember(label: "containerInstances", required: true, type: .list), + AWSShapeMember(label: "cluster", required: false, type: .string), AWSShapeMember(label: "startedBy", required: false, type: .string), + AWSShapeMember(label: "containerInstances", required: true, type: .list), AWSShapeMember(label: "group", required: false, type: .string), - AWSShapeMember(label: "cluster", required: false, type: .string) + AWSShapeMember(label: "networkConfiguration", required: false, type: .structure), + AWSShapeMember(label: "taskDefinition", required: true, type: .string) ] /// A list of container overrides in JSON format that specify the name of a container in the specified task definition and the overrides it should receive. You can override the default command for a container (that is specified in the task definition or Docker image) with a command override. You can also override existing environment variables (that are specified in the task definition or Docker image) on a container or add new environment variables to it with an environment override. A total of 8192 characters are allowed for overrides. This limit includes the JSON formatting characters of the override structure. public let overrides: TaskOverride? - /// The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to start. If a revision is not specified, the latest ACTIVE revision is used. - public let taskDefinition: String - /// The container instance IDs or full Amazon Resource Name (ARN) entries for the container instances on which you would like to place your task. You can specify up to 10 container instances. - public let containerInstances: [String] + /// The short name or full Amazon Resource Name (ARN) of the cluster on which to start your task. If you do not specify a cluster, the default cluster is assumed. + public let cluster: String? /// An optional tag specified when a task is started. For example if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the startedBy parameter. You can then identify which tasks belong to that job by filtering the results of a ListTasks call with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. If a task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it. public let startedBy: String? + /// The container instance IDs or full ARN entries for the container instances on which you would like to place your task. You can specify up to 10 container instances. + public let containerInstances: [String] /// The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name). public let group: String? - /// The short name or full Amazon Resource Name (ARN) of the cluster on which to start your task. If you do not specify a cluster, the default cluster is assumed. - public let cluster: String? + /// The VPC subnet and security group configuration for tasks that receive their own Elastic Network Interface by using the awsvpc networking mode. + public let networkConfiguration: NetworkConfiguration? + /// The family and revision (family:revision) or full ARN of the task definition to start. If a revision is not specified, the latest ACTIVE revision is used. + public let taskDefinition: String - public init(overrides: TaskOverride? = nil, taskDefinition: String, containerInstances: [String], startedBy: String? = nil, group: String? = nil, cluster: String? = nil) { + public init(overrides: TaskOverride? = nil, cluster: String? = nil, startedBy: String? = nil, containerInstances: [String], group: String? = nil, networkConfiguration: NetworkConfiguration? = nil, taskDefinition: String) { self.overrides = overrides - self.taskDefinition = taskDefinition - self.containerInstances = containerInstances + self.cluster = cluster self.startedBy = startedBy + self.containerInstances = containerInstances self.group = group - self.cluster = cluster + self.networkConfiguration = networkConfiguration + self.taskDefinition = taskDefinition } private enum CodingKeys: String, CodingKey { case overrides = "overrides" - case taskDefinition = "taskDefinition" - case containerInstances = "containerInstances" + case cluster = "cluster" case startedBy = "startedBy" + case containerInstances = "containerInstances" case group = "group" - case cluster = "cluster" + case networkConfiguration = "networkConfiguration" + case taskDefinition = "taskDefinition" } } public struct TaskDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "compatibilities", required: false, type: .list), + AWSShapeMember(label: "cpu", required: false, type: .string), + AWSShapeMember(label: "family", required: false, type: .string), + AWSShapeMember(label: "taskRoleArn", required: false, type: .string), + AWSShapeMember(label: "taskDefinitionArn", required: false, type: .string), + AWSShapeMember(label: "memory", required: false, type: .string), AWSShapeMember(label: "revision", required: false, type: .integer), + AWSShapeMember(label: "executionRoleArn", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "requiresAttributes", required: false, type: .list), - AWSShapeMember(label: "family", required: false, type: .string), - AWSShapeMember(label: "volumes", required: false, type: .list), - AWSShapeMember(label: "taskRoleArn", required: false, type: .string), AWSShapeMember(label: "networkMode", required: false, type: .enum), + AWSShapeMember(label: "volumes", required: false, type: .list), AWSShapeMember(label: "placementConstraints", required: false, type: .list), AWSShapeMember(label: "containerDefinitions", required: false, type: .list), - AWSShapeMember(label: "taskDefinitionArn", required: false, type: .string) + AWSShapeMember(label: "requiresCompatibilities", required: false, type: .list) ] + /// The launch type to use with your task. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide. + public let compatibilities: [Compatibility]? + /// The number of cpu units used by the task. If using the EC2 launch type, this field is optional and any value can be used. If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter: 256 (.25 vCPU) - Available memory values: 512MB, 1GB, 2GB 512 (.5 vCPU) - Available memory values: 1GB, 2GB, 3GB, 4GB 1024 (1 vCPU) - Available memory values: 2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB 2048 (2 vCPU) - Available memory values: Between 4GB and 16GB in 1GB increments 4096 (4 vCPU) - Available memory values: Between 8GB and 30GB in 1GB increments + public let cpu: String? + /// The family of your task definition, used as the definition name. + public let family: String? + /// The ARN of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. + public let taskRoleArn: String? + /// The full Amazon Resource Name (ARN) of the task definition. + public let taskDefinitionArn: String? + /// The amount (in MiB) of memory used by the task. If using the EC2 launch type, this field is optional and any value can be used. If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter: 512MB, 1GB, 2GB - Available cpu values: 256 (.25 vCPU) 1GB, 2GB, 3GB, 4GB - Available cpu values: 512 (.5 vCPU) 2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB - Available cpu values: 1024 (1 vCPU) Between 4GB and 16GB in 1GB increments - Available cpu values: 2048 (2 vCPU) Between 8GB and 30GB in 1GB increments - Available cpu values: 4096 (4 vCPU) + public let memory: String? /// The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is 1; each time you register a new revision of a task definition in the same family, the revision value always increases by one (even if you have deregistered previous revisions in this family). public let revision: Int32? + /// The Amazon Resource Name (ARN) of the task execution role that the Amazon ECS container agent and the Docker daemon can assume. + public let executionRoleArn: String? /// The status of the task definition. public let status: TaskDefinitionStatus? - /// The container instance attributes required by your task. + /// The container instance attributes required by your task. This field is not valid if using the Fargate launch type for your task. public let requiresAttributes: [Attribute]? - /// The family of your task definition, used as the definition name. - public let family: String? - /// The list of volumes in a task. For more information about volume definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide. - public let volumes: [Volume]? - /// The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. - public let taskRoleArn: String? - /// The Docker networking mode to use for the containers in the task. The valid values are none, bridge, and host. If the network mode is none, the containers do not have external connectivity. The default Docker network mode is bridge. The host network mode offers the highest networking performance for containers because it uses the host network stack instead of the virtualized network stack provided by the bridge mode. For more information, see Network settings in the Docker run reference. + /// The Docker networking mode to use for the containers in the task. The valid values are none, bridge, awsvpc, and host. The default Docker network mode is bridge. If using the Fargate launch type, the awsvpc network mode is required. If using the EC2 launch type, any network mode can be used. If the network mode is set to none, you can't specify port mappings in your container definitions, and the task's containers do not have external connectivity. The host and awsvpc network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the bridge mode. With the host and awsvpc network modes, exposed container ports are mapped directly to the corresponding host port (for the host network mode) or the attached elastic network interface port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings. If the network mode is awsvpc, the task is allocated an Elastic Network Interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide. If the network mode is host, you can't run multiple instantiations of the same task on a single container instance when port mappings are used. For more information, see Network settings in the Docker run reference. public let networkMode: NetworkMode? - /// An array of placement constraint objects to use for tasks. + /// The list of volumes in a task. If you are using the Fargate launch type, the host and sourcePath parameters are not supported. For more information about volume definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide. + public let volumes: [Volume]? + /// An array of placement constraint objects to use for tasks. This field is not valid if using the Fargate launch type for your task. public let placementConstraints: [TaskDefinitionPlacementConstraint]? - /// A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide. + /// A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide. public let containerDefinitions: [ContainerDefinition]? - /// The full Amazon Resource Name (ARN) of the task definition. - public let taskDefinitionArn: String? + /// The launch type the task is using. + public let requiresCompatibilities: [Compatibility]? - public init(revision: Int32? = nil, status: TaskDefinitionStatus? = nil, requiresAttributes: [Attribute]? = nil, family: String? = nil, volumes: [Volume]? = nil, taskRoleArn: String? = nil, networkMode: NetworkMode? = nil, placementConstraints: [TaskDefinitionPlacementConstraint]? = nil, containerDefinitions: [ContainerDefinition]? = nil, taskDefinitionArn: String? = nil) { + public init(compatibilities: [Compatibility]? = nil, cpu: String? = nil, family: String? = nil, taskRoleArn: String? = nil, taskDefinitionArn: String? = nil, memory: String? = nil, revision: Int32? = nil, executionRoleArn: String? = nil, status: TaskDefinitionStatus? = nil, requiresAttributes: [Attribute]? = nil, networkMode: NetworkMode? = nil, volumes: [Volume]? = nil, placementConstraints: [TaskDefinitionPlacementConstraint]? = nil, containerDefinitions: [ContainerDefinition]? = nil, requiresCompatibilities: [Compatibility]? = nil) { + self.compatibilities = compatibilities + self.cpu = cpu + self.family = family + self.taskRoleArn = taskRoleArn + self.taskDefinitionArn = taskDefinitionArn + self.memory = memory self.revision = revision + self.executionRoleArn = executionRoleArn self.status = status self.requiresAttributes = requiresAttributes - self.family = family - self.volumes = volumes - self.taskRoleArn = taskRoleArn self.networkMode = networkMode + self.volumes = volumes self.placementConstraints = placementConstraints self.containerDefinitions = containerDefinitions - self.taskDefinitionArn = taskDefinitionArn + self.requiresCompatibilities = requiresCompatibilities } private enum CodingKeys: String, CodingKey { + case compatibilities = "compatibilities" + case cpu = "cpu" + case family = "family" + case taskRoleArn = "taskRoleArn" + case taskDefinitionArn = "taskDefinitionArn" + case memory = "memory" case revision = "revision" + case executionRoleArn = "executionRoleArn" case status = "status" case requiresAttributes = "requiresAttributes" - case family = "family" - case volumes = "volumes" - case taskRoleArn = "taskRoleArn" case networkMode = "networkMode" + case volumes = "volumes" case placementConstraints = "placementConstraints" case containerDefinitions = "containerDefinitions" - case taskDefinitionArn = "taskDefinitionArn" + case requiresCompatibilities = "requiresCompatibilities" + } + } + + public struct NetworkInterface: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "attachmentId", required: false, type: .string), + AWSShapeMember(label: "privateIpv4Address", required: false, type: .string), + AWSShapeMember(label: "ipv6Address", required: false, type: .string) + ] + /// The attachment ID for the network interface. + public let attachmentId: String? + /// The private IPv4 address for the network interface. + public let privateIpv4Address: String? + /// The private IPv6 address for the network interface. + public let ipv6Address: String? + + public init(attachmentId: String? = nil, privateIpv4Address: String? = nil, ipv6Address: String? = nil) { + self.attachmentId = attachmentId + self.privateIpv4Address = privateIpv4Address + self.ipv6Address = ipv6Address + } + + private enum CodingKeys: String, CodingKey { + case attachmentId = "attachmentId" + case privateIpv4Address = "privateIpv4Address" + case ipv6Address = "ipv6Address" } } public struct HostEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "hostname", required: true, type: .string), AWSShapeMember(label: "ipAddress", required: true, type: .string) ] @@ -1757,7 +2059,7 @@ extension Ecs { } public struct PlacementStrategy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "field", required: false, type: .string) ] @@ -1777,10 +2079,46 @@ extension Ecs { } } - public enum TaskDefinitionStatus: String, CustomStringConvertible, Codable { - case active = "ACTIVE" - case inactive = "INACTIVE" - public var description: String { return self.rawValue } + public struct SubmitTaskStateChangeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "acknowledgment", required: false, type: .string) + ] + /// Acknowledgement of the state change. + public let acknowledgment: String? + + public init(acknowledgment: String? = nil) { + self.acknowledgment = acknowledgment + } + + private enum CodingKeys: String, CodingKey { + case acknowledgment = "acknowledgment" + } + } + + public struct ServiceEvent: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "id", required: false, type: .string), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "message", required: false, type: .string) + ] + /// The ID string of the event. + public let id: String? + /// The Unix time stamp for when the event was triggered. + public let createdAt: TimeStamp? + /// The event message. + public let message: String? + + public init(id: String? = nil, createdAt: TimeStamp? = nil, message: String? = nil) { + self.id = id + self.createdAt = createdAt + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case createdAt = "createdAt" + case message = "message" + } } public enum LogDriver: String, CustomStringConvertible, Codable { @@ -1813,66 +2151,30 @@ extension Ecs { public var description: String { return self.rawValue } } - public struct ServiceEvent: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "id", required: false, type: .string), - AWSShapeMember(label: "createdAt", required: false, type: .timestamp), - AWSShapeMember(label: "message", required: false, type: .string) + public enum TaskDefinitionStatus: String, CustomStringConvertible, Codable { + case active = "ACTIVE" + case inactive = "INACTIVE" + public var description: String { return self.rawValue } + } + + public struct UpdateServiceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "service", required: false, type: .structure) ] - /// The ID string of the event. - public let id: String? - /// The Unix timestamp for when the event was triggered. - public let createdAt: TimeStamp? - /// The event message. - public let message: String? + /// The full description of your service following the update call. + public let service: Service? - public init(id: String? = nil, createdAt: TimeStamp? = nil, message: String? = nil) { - self.id = id - self.createdAt = createdAt - self.message = message + public init(service: Service? = nil) { + self.service = service } private enum CodingKeys: String, CodingKey { - case id = "id" - case createdAt = "createdAt" - case message = "message" - } - } - - public struct SubmitTaskStateChangeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "acknowledgment", required: false, type: .string) - ] - /// Acknowledgement of the state change. - public let acknowledgment: String? - - public init(acknowledgment: String? = nil) { - self.acknowledgment = acknowledgment - } - - private enum CodingKeys: String, CodingKey { - case acknowledgment = "acknowledgment" - } - } - - public struct UpdateServiceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "service", required: false, type: .structure) - ] - /// The full description of your service following the update call. - public let service: Service? - - public init(service: Service? = nil) { - self.service = service - } - - private enum CodingKeys: String, CodingKey { - case service = "service" + case service = "service" } } public struct CreateClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "clusterName", required: false, type: .string) ] /// The name of your cluster. If you do not specify a name for your cluster, you create a cluster named default. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. @@ -1888,38 +2190,63 @@ extension Ecs { } public struct SubmitTaskStateChangeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "attachments", required: false, type: .list), AWSShapeMember(label: "status", required: false, type: .string), AWSShapeMember(label: "reason", required: false, type: .string), + AWSShapeMember(label: "pullStartedAt", required: false, type: .timestamp), AWSShapeMember(label: "cluster", required: false, type: .string), - AWSShapeMember(label: "task", required: false, type: .string) + AWSShapeMember(label: "executionStoppedAt", required: false, type: .timestamp), + AWSShapeMember(label: "pullStoppedAt", required: false, type: .timestamp), + AWSShapeMember(label: "task", required: false, type: .string), + AWSShapeMember(label: "containers", required: false, type: .list) ] + /// Any attachments associated with the state change request. + public let attachments: [AttachmentStateChange]? /// The status of the state change request. public let status: String? /// The reason for the state change request. public let reason: String? + /// The Unix time stamp for when the container image pull began. + public let pullStartedAt: TimeStamp? /// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task. public let cluster: String? - /// The task ID or full Amazon Resource Name (ARN) of the task in the state change request. + /// The Unix timestamp for when the task execution stopped. + public let executionStoppedAt: TimeStamp? + /// The Unix time stamp for when the container image pull completed. + public let pullStoppedAt: TimeStamp? + /// The task ID or full ARN of the task in the state change request. public let task: String? + /// Any containers associated with the state change request. + public let containers: [ContainerStateChange]? - public init(status: String? = nil, reason: String? = nil, cluster: String? = nil, task: String? = nil) { + public init(attachments: [AttachmentStateChange]? = nil, status: String? = nil, reason: String? = nil, pullStartedAt: TimeStamp? = nil, cluster: String? = nil, executionStoppedAt: TimeStamp? = nil, pullStoppedAt: TimeStamp? = nil, task: String? = nil, containers: [ContainerStateChange]? = nil) { + self.attachments = attachments self.status = status self.reason = reason + self.pullStartedAt = pullStartedAt self.cluster = cluster + self.executionStoppedAt = executionStoppedAt + self.pullStoppedAt = pullStoppedAt self.task = task + self.containers = containers } private enum CodingKeys: String, CodingKey { + case attachments = "attachments" case status = "status" case reason = "reason" + case pullStartedAt = "pullStartedAt" case cluster = "cluster" + case executionStoppedAt = "executionStoppedAt" + case pullStoppedAt = "pullStoppedAt" case task = "task" + case containers = "containers" } } public struct RegisterTaskDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskDefinition", required: false, type: .structure) ] /// The full description of the registered task definition. @@ -1935,7 +2262,7 @@ extension Ecs { } public struct CreateServiceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "service", required: false, type: .structure) ] /// The full description of your service following the create call. @@ -1951,16 +2278,16 @@ extension Ecs { } public struct DeregisterContainerInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "force", required: false, type: .boolean), AWSShapeMember(label: "cluster", required: false, type: .string), AWSShapeMember(label: "containerInstance", required: true, type: .string) ] - /// Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the force option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible. Any containers in orphaned service tasks that are registered with a Classic load balancer or an Application load balancer target group are deregistered, and they will begin connection draining according to the settings on the load balancer or target group. + /// Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the force option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible. Any containers in orphaned service tasks that are registered with a Classic Load Balancer or an Application Load Balancer target group are deregistered. They begin connection draining according to the settings on the load balancer or target group. public let force: Bool? /// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to deregister. If you do not specify a cluster, the default cluster is assumed. public let cluster: String? - /// The container instance ID or full Amazon Resource Name (ARN) of the container instance to deregister. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID . + /// The container instance ID or full ARN of the container instance to deregister. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID . public let containerInstance: String public init(force: Bool? = nil, cluster: String? = nil, containerInstance: String) { @@ -1992,30 +2319,50 @@ extension Ecs { public var description: String { return self.rawValue } } - public struct DeregisterContainerInstanceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "containerInstance", required: false, type: .structure) + public struct ContainerStateChange: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .string), + AWSShapeMember(label: "networkBindings", required: false, type: .list), + AWSShapeMember(label: "exitCode", required: false, type: .integer), + AWSShapeMember(label: "reason", required: false, type: .string), + AWSShapeMember(label: "containerName", required: false, type: .string) ] - /// The container instance that was deregistered. - public let containerInstance: ContainerInstance? + /// The status of the container. + public let status: String? + /// Any network bindings associated with the container. + public let networkBindings: [NetworkBinding]? + /// The exit code for the container, if the state change is a result of the container exiting. + public let exitCode: Int32? + /// The reason for the state change. + public let reason: String? + /// The name of the container. + public let containerName: String? - public init(containerInstance: ContainerInstance? = nil) { - self.containerInstance = containerInstance + public init(status: String? = nil, networkBindings: [NetworkBinding]? = nil, exitCode: Int32? = nil, reason: String? = nil, containerName: String? = nil) { + self.status = status + self.networkBindings = networkBindings + self.exitCode = exitCode + self.reason = reason + self.containerName = containerName } private enum CodingKeys: String, CodingKey { - case containerInstance = "containerInstance" + case status = "status" + case networkBindings = "networkBindings" + case exitCode = "exitCode" + case reason = "reason" + case containerName = "containerName" } } public struct DescribeTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cluster", required: false, type: .string), AWSShapeMember(label: "tasks", required: true, type: .list) ] /// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to describe. If you do not specify a cluster, the default cluster is assumed. public let cluster: String? - /// A list of up to 100 task IDs or full Amazon Resource Name (ARN) entries. + /// A list of up to 100 task IDs or full ARN entries. public let tasks: [String] public init(cluster: String? = nil, tasks: [String]) { @@ -2030,7 +2377,7 @@ extension Ecs { } public struct DeleteClusterResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cluster", required: false, type: .structure) ] /// The full description of the deleted cluster. @@ -2045,24 +2392,30 @@ extension Ecs { } } - public struct DeregisterTaskDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "taskDefinition", required: false, type: .structure) + public enum LaunchType: String, CustomStringConvertible, Codable { + case ec2 = "EC2" + case fargate = "FARGATE" + public var description: String { return self.rawValue } + } + + public struct DeregisterContainerInstanceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "containerInstance", required: false, type: .structure) ] - /// The full description of the deregistered task. - public let taskDefinition: TaskDefinition? + /// The container instance that was deregistered. + public let containerInstance: ContainerInstance? - public init(taskDefinition: TaskDefinition? = nil) { - self.taskDefinition = taskDefinition + public init(containerInstance: ContainerInstance? = nil) { + self.containerInstance = containerInstance } private enum CodingKeys: String, CodingKey { - case taskDefinition = "taskDefinition" + case containerInstance = "containerInstance" } } public struct ListTaskDefinitionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "familyPrefix", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -2073,7 +2426,7 @@ extension Ecs { public let familyPrefix: String? /// The task definition status with which to filter the ListTaskDefinitions results. By default, only ACTIVE task definitions are listed. By setting this parameter to INACTIVE, you can view task definitions that are INACTIVE as long as an active task or service still references them. If you paginate the resulting output, be sure to keep the status value constant in each subsequent request. public let status: TaskDefinitionStatus? - /// The nextToken value returned from a previous paginated ListTaskDefinitions request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + /// The nextToken value returned from a previous paginated ListTaskDefinitions request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. public let nextToken: String? /// The maximum number of task definition results returned by ListTaskDefinitions in paginated output. When this parameter is used, ListTaskDefinitions only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListTaskDefinitions request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions returns up to 100 results and a nextToken value if applicable. public let maxResults: Int32? @@ -2097,8 +2450,24 @@ extension Ecs { } } + public struct DeregisterTaskDefinitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "taskDefinition", required: false, type: .structure) + ] + /// The full description of the deregistered task. + public let taskDefinition: TaskDefinition? + + public init(taskDefinition: TaskDefinition? = nil) { + self.taskDefinition = taskDefinition + } + + private enum CodingKeys: String, CodingKey { + case taskDefinition = "taskDefinition" + } + } + public struct RegisterContainerInstanceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "containerInstance", required: false, type: .structure) ] /// The container instance that was registered. @@ -2113,8 +2482,39 @@ extension Ecs { } } + public struct Attachment: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "details", required: false, type: .list), + AWSShapeMember(label: "status", required: false, type: .string), + AWSShapeMember(label: "id", required: false, type: .string), + AWSShapeMember(label: "type", required: false, type: .string) + ] + /// Details of the attachment. For Elastic Network Interfaces, this includes the network interface ID, the MAC address, the subnet ID, and the private IPv4 address. + public let details: [KeyValuePair]? + /// The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING, ATTACHED, DETACHING, DETACHED, and DELETED. + public let status: String? + /// The unique identifier for the attachment. + public let id: String? + /// The type of the attachment, such as an ElasticNetworkInterface. + public let `type`: String? + + public init(details: [KeyValuePair]? = nil, status: String? = nil, id: String? = nil, type: String? = nil) { + self.details = details + self.status = status + self.id = id + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case details = "details" + case status = "status" + case id = "id" + case `type` = "type" + } + } + public struct DescribeServicesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "services", required: true, type: .list), AWSShapeMember(label: "cluster", required: false, type: .string) ] @@ -2135,19 +2535,24 @@ extension Ecs { } public struct RunTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "platformVersion", required: false, type: .string), AWSShapeMember(label: "overrides", required: false, type: .structure), AWSShapeMember(label: "placementStrategy", required: false, type: .list), AWSShapeMember(label: "cluster", required: false, type: .string), AWSShapeMember(label: "count", required: false, type: .integer), AWSShapeMember(label: "placementConstraints", required: false, type: .list), + AWSShapeMember(label: "launchType", required: false, type: .enum), AWSShapeMember(label: "startedBy", required: false, type: .string), - AWSShapeMember(label: "taskDefinition", required: true, type: .string), - AWSShapeMember(label: "group", required: false, type: .string) + AWSShapeMember(label: "networkConfiguration", required: false, type: .structure), + AWSShapeMember(label: "group", required: false, type: .string), + AWSShapeMember(label: "taskDefinition", required: true, type: .string) ] + /// The platform version on which to run your task. If one is not specified, the latest version is used by default. + public let platformVersion: String? /// A list of container overrides in JSON format that specify the name of a container in the specified task definition and the overrides it should receive. You can override the default command for a container (that is specified in the task definition or Docker image) with a command override. You can also override existing environment variables (that are specified in the task definition or Docker image) on a container or add new environment variables to it with an environment override. A total of 8192 characters are allowed for overrides. This limit includes the JSON formatting characters of the override structure. public let overrides: TaskOverride? - /// The placement strategy objects to use for the task. You can specify a maximum of 5 strategy rules per task. + /// The placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task. public let placementStrategy: [PlacementStrategy]? /// The short name or full Amazon Resource Name (ARN) of the cluster on which to run your task. If you do not specify a cluster, the default cluster is assumed. public let cluster: String? @@ -2155,38 +2560,48 @@ extension Ecs { public let count: Int32? /// An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at run time). public let placementConstraints: [PlacementConstraint]? + /// The launch type on which to run your task. + public let launchType: LaunchType? /// An optional tag specified when a task is started. For example if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the startedBy parameter. You can then identify which tasks belong to that job by filtering the results of a ListTasks call with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. If a task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it. public let startedBy: String? - /// The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to run. If a revision is not specified, the latest ACTIVE revision is used. - public let taskDefinition: String + /// The network configuration for the task. This parameter is required for task definitions that use the awsvpc network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide. + public let networkConfiguration: NetworkConfiguration? /// The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name). public let group: String? + /// The family and revision (family:revision) or full ARN of the task definition to run. If a revision is not specified, the latest ACTIVE revision is used. + public let taskDefinition: String - public init(overrides: TaskOverride? = nil, placementStrategy: [PlacementStrategy]? = nil, cluster: String? = nil, count: Int32? = nil, placementConstraints: [PlacementConstraint]? = nil, startedBy: String? = nil, taskDefinition: String, group: String? = nil) { + public init(platformVersion: String? = nil, overrides: TaskOverride? = nil, placementStrategy: [PlacementStrategy]? = nil, cluster: String? = nil, count: Int32? = nil, placementConstraints: [PlacementConstraint]? = nil, launchType: LaunchType? = nil, startedBy: String? = nil, networkConfiguration: NetworkConfiguration? = nil, group: String? = nil, taskDefinition: String) { + self.platformVersion = platformVersion self.overrides = overrides self.placementStrategy = placementStrategy self.cluster = cluster self.count = count self.placementConstraints = placementConstraints + self.launchType = launchType self.startedBy = startedBy - self.taskDefinition = taskDefinition + self.networkConfiguration = networkConfiguration self.group = group + self.taskDefinition = taskDefinition } private enum CodingKeys: String, CodingKey { + case platformVersion = "platformVersion" case overrides = "overrides" case placementStrategy = "placementStrategy" case cluster = "cluster" case count = "count" case placementConstraints = "placementConstraints" + case launchType = "launchType" case startedBy = "startedBy" - case taskDefinition = "taskDefinition" + case networkConfiguration = "networkConfiguration" case group = "group" + case taskDefinition = "taskDefinition" } } public struct ListAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributeValue", required: false, type: .string), AWSShapeMember(label: "targetType", required: true, type: .enum), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -2198,7 +2613,7 @@ extension Ecs { public let attributeValue: String? /// The type of the target with which to list attributes. public let targetType: TargetType - /// The nextToken value returned from a previous paginated ListAttributes request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + /// The nextToken value returned from a previous paginated ListAttributes request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. public let nextToken: String? /// The maximum number of cluster results returned by ListAttributes in paginated output. When this parameter is used, ListAttributes only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListAttributes request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListAttributes returns up to 100 results and a nextToken value if applicable. public let maxResults: Int32? @@ -2227,13 +2642,13 @@ extension Ecs { } public struct PlacementConstraint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "expression", required: false, type: .string) ] - /// The type of constraint. Use distinctInstance to ensure that each task in a particular group is running on a different container instance. Use memberOf to restrict selection to a group of valid candidates. Note that distinctInstance is not supported in task definitions. + /// The type of constraint. Use distinctInstance to ensure that each task in a particular group is running on a different container instance. Use memberOf to restrict the selection to a group of valid candidates. The value distinctInstance is not supported in task definitions. public let `type`: PlacementConstraintType? - /// A cluster query language expression to apply to the constraint. Note you cannot specify an expression if the constraint type is distinctInstance. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide. + /// A cluster query language expression to apply to the constraint. Note you cannot specify an expression if the constraint type is distinctInstance. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide. public let expression: String? public init(type: PlacementConstraintType? = nil, expression: String? = nil) { @@ -2248,34 +2663,39 @@ extension Ecs { } public struct TaskOverride: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "containerOverrides", required: false, type: .list), - AWSShapeMember(label: "taskRoleArn", required: false, type: .string) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "executionRoleArn", required: false, type: .string), + AWSShapeMember(label: "taskRoleArn", required: false, type: .string), + AWSShapeMember(label: "containerOverrides", required: false, type: .list) ] - /// One or more container overrides sent to a task. - public let containerOverrides: [ContainerOverride]? + /// The Amazon Resource Name (ARN) of the task execution role that the Amazon ECS container agent and the Docker daemon can assume. + public let executionRoleArn: String? /// The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. public let taskRoleArn: String? + /// One or more container overrides sent to a task. + public let containerOverrides: [ContainerOverride]? - public init(containerOverrides: [ContainerOverride]? = nil, taskRoleArn: String? = nil) { - self.containerOverrides = containerOverrides + public init(executionRoleArn: String? = nil, taskRoleArn: String? = nil, containerOverrides: [ContainerOverride]? = nil) { + self.executionRoleArn = executionRoleArn self.taskRoleArn = taskRoleArn + self.containerOverrides = containerOverrides } private enum CodingKeys: String, CodingKey { - case containerOverrides = "containerOverrides" + case executionRoleArn = "executionRoleArn" case taskRoleArn = "taskRoleArn" + case containerOverrides = "containerOverrides" } } public struct ListTasksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "taskArns", required: false, type: .list) ] /// The nextToken value to include in a future ListTasks request. When the results of a ListTasks request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. public let nextToken: String? - /// The list of task Amazon Resource Name (ARN) entries for the ListTasks request. + /// The list of task ARN entries for the ListTasks request. public let taskArns: [String]? public init(nextToken: String? = nil, taskArns: [String]? = nil) { @@ -2290,7 +2710,7 @@ extension Ecs { } public struct ListAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributes", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -2311,33 +2731,38 @@ extension Ecs { } public struct ListServicesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), + AWSShapeMember(label: "launchType", required: false, type: .enum), AWSShapeMember(label: "cluster", required: false, type: .string) ] - /// The nextToken value returned from a previous paginated ListServices request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + /// The nextToken value returned from a previous paginated ListServices request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. public let nextToken: String? - /// The maximum number of container instance results returned by ListServices in paginated output. When this parameter is used, ListServices only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListServices request with the returned nextToken value. This value can be between 1 and 10. If this parameter is not used, then ListServices returns up to 10 results and a nextToken value if applicable. + /// The maximum number of service results returned by ListServices in paginated output. When this parameter is used, ListServices only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListServices request with the returned nextToken value. This value can be between 1 and 10. If this parameter is not used, then ListServices returns up to 10 results and a nextToken value if applicable. public let maxResults: Int32? + /// The launch type for services you want to list. + public let launchType: LaunchType? /// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the services to list. If you do not specify a cluster, the default cluster is assumed. public let cluster: String? - public init(nextToken: String? = nil, maxResults: Int32? = nil, cluster: String? = nil) { + public init(nextToken: String? = nil, maxResults: Int32? = nil, launchType: LaunchType? = nil, cluster: String? = nil) { self.nextToken = nextToken self.maxResults = maxResults + self.launchType = launchType self.cluster = cluster } private enum CodingKeys: String, CodingKey { case nextToken = "nextToken" case maxResults = "maxResults" + case launchType = "launchType" case cluster = "cluster" } } public struct PutAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributes", required: false, type: .list) ] /// The attributes applied to your resource. @@ -2352,8 +2777,34 @@ extension Ecs { } } + public struct Device: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "permissions", required: false, type: .list), + AWSShapeMember(label: "containerPath", required: false, type: .string), + AWSShapeMember(label: "hostPath", required: true, type: .string) + ] + /// The explicit permissions to provide to the container for the device. By default, the container has permissions for read, write, and mknod for the device. + public let permissions: [DeviceCgroupPermission]? + /// The path inside the container at which to expose the host device. + public let containerPath: String? + /// The path for the device on the host container instance. + public let hostPath: String + + public init(permissions: [DeviceCgroupPermission]? = nil, containerPath: String? = nil, hostPath: String) { + self.permissions = permissions + self.containerPath = containerPath + self.hostPath = hostPath + } + + private enum CodingKeys: String, CodingKey { + case permissions = "permissions" + case containerPath = "containerPath" + case hostPath = "hostPath" + } + } + public struct RegisterContainerInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "versionInfo", required: false, type: .structure), AWSShapeMember(label: "attributes", required: false, type: .list), AWSShapeMember(label: "containerInstanceArn", required: false, type: .string), @@ -2366,7 +2817,7 @@ extension Ecs { public let versionInfo: VersionInfo? /// The container instance attributes that this container instance supports. public let attributes: [Attribute]? - /// The Amazon Resource Name (ARN) of the container instance (if it was previously registered). + /// The ARN of the container instance (if it was previously registered). public let containerInstanceArn: String? /// The short name or full Amazon Resource Name (ARN) of the cluster with which to register your container instance. If you do not specify a cluster, the default cluster is assumed. public let cluster: String? @@ -2398,158 +2849,218 @@ extension Ecs { } } + public struct ListClustersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "clusterArns", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The list of full Amazon Resource Name (ARN) entries for each cluster associated with your account. + public let clusterArns: [String]? + /// The nextToken value to include in a future ListClusters request. When the results of a ListClusters request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + + public init(clusterArns: [String]? = nil, nextToken: String? = nil) { + self.clusterArns = clusterArns + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case clusterArns = "clusterArns" + case nextToken = "nextToken" + } + } + + public struct UpdateContainerAgentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "cluster", required: false, type: .string), + AWSShapeMember(label: "containerInstance", required: true, type: .string) + ] + /// The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is running on. If you do not specify a cluster, the default cluster is assumed. + public let cluster: String? + /// The container instance ID or full ARN entries for the container instance on which you would like to update the Amazon ECS container agent. + public let containerInstance: String + + public init(cluster: String? = nil, containerInstance: String) { + self.cluster = cluster + self.containerInstance = containerInstance + } + + private enum CodingKeys: String, CodingKey { + case cluster = "cluster" + case containerInstance = "containerInstance" + } + } + public struct Task: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "clusterArn", required: false, type: .string), - AWSShapeMember(label: "overrides", required: false, type: .structure), - AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "pullStartedAt", required: false, type: .timestamp), + AWSShapeMember(label: "cpu", required: false, type: .string), AWSShapeMember(label: "startedAt", required: false, type: .timestamp), AWSShapeMember(label: "desiredStatus", required: false, type: .string), - AWSShapeMember(label: "taskDefinitionArn", required: false, type: .string), + AWSShapeMember(label: "executionStoppedAt", required: false, type: .timestamp), + AWSShapeMember(label: "memory", required: false, type: .string), + AWSShapeMember(label: "attachments", required: false, type: .list), AWSShapeMember(label: "containers", required: false, type: .list), AWSShapeMember(label: "stoppedReason", required: false, type: .string), AWSShapeMember(label: "containerInstanceArn", required: false, type: .string), + AWSShapeMember(label: "launchType", required: false, type: .enum), + AWSShapeMember(label: "connectivity", required: false, type: .enum), + AWSShapeMember(label: "platformVersion", required: false, type: .string), + AWSShapeMember(label: "overrides", required: false, type: .structure), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "connectivityAt", required: false, type: .timestamp), + AWSShapeMember(label: "pullStoppedAt", required: false, type: .timestamp), + AWSShapeMember(label: "taskDefinitionArn", required: false, type: .string), + AWSShapeMember(label: "stoppingAt", required: false, type: .timestamp), AWSShapeMember(label: "stoppedAt", required: false, type: .timestamp), AWSShapeMember(label: "version", required: false, type: .long), - AWSShapeMember(label: "taskArn", required: false, type: .string), AWSShapeMember(label: "startedBy", required: false, type: .string), - AWSShapeMember(label: "group", required: false, type: .string), - AWSShapeMember(label: "lastStatus", required: false, type: .string) + AWSShapeMember(label: "taskArn", required: false, type: .string), + AWSShapeMember(label: "lastStatus", required: false, type: .string), + AWSShapeMember(label: "group", required: false, type: .string) ] - /// The Amazon Resource Name (ARN) of the cluster that hosts the task. + /// The ARN of the cluster that hosts the task. public let clusterArn: String? - /// One or more container overrides. - public let overrides: TaskOverride? - /// The Unix timestamp for when the task was created (the task entered the PENDING state). - public let createdAt: TimeStamp? - /// The Unix timestamp for when the task was started (the task transitioned from the PENDING state to the RUNNING state). + /// The Unix time stamp for when the container image pull began. + public let pullStartedAt: TimeStamp? + /// The number of cpu units used by the task. If using the EC2 launch type, this field is optional and any value can be used. If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter: 256 (.25 vCPU) - Available memory values: 512MB, 1GB, 2GB 512 (.5 vCPU) - Available memory values: 1GB, 2GB, 3GB, 4GB 1024 (1 vCPU) - Available memory values: 2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB 2048 (2 vCPU) - Available memory values: Between 4GB and 16GB in 1GB increments 4096 (4 vCPU) - Available memory values: Between 8GB and 30GB in 1GB increments + public let cpu: String? + /// The Unix time stamp for when the task started (the task transitioned from the PENDING state to the RUNNING state). public let startedAt: TimeStamp? /// The desired status of the task. public let desiredStatus: String? - /// The Amazon Resource Name (ARN) of the task definition that creates the task. - public let taskDefinitionArn: String? + /// The Unix timestamp for when the task execution stopped. + public let executionStoppedAt: TimeStamp? + /// The amount (in MiB) of memory used by the task. If using the EC2 launch type, this field is optional and any value can be used. If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter: 512MB, 1GB, 2GB - Available cpu values: 256 (.25 vCPU) 1GB, 2GB, 3GB, 4GB - Available cpu values: 512 (.5 vCPU) 2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB - Available cpu values: 1024 (1 vCPU) Between 4GB and 16GB in 1GB increments - Available cpu values: 2048 (2 vCPU) Between 8GB and 30GB in 1GB increments - Available cpu values: 4096 (4 vCPU) + public let memory: String? + /// The Elastic Network Adapter associated with the task if the task uses the awsvpc network mode. + public let attachments: [Attachment]? /// The containers associated with the task. public let containers: [Container]? /// The reason the task was stopped. public let stoppedReason: String? - /// The Amazon Resource Name (ARN) of the container instances that host the task. + /// The ARN of the container instances that host the task. public let containerInstanceArn: String? - /// The Unix timestamp for when the task was stopped (the task transitioned from the RUNNING state to the STOPPED state). + /// The launch type on which your task is running. + public let launchType: LaunchType? + /// The connectivity status of a task. + public let connectivity: Connectivity? + /// The platform version on which your task is running. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide. + public let platformVersion: String? + /// One or more container overrides. + public let overrides: TaskOverride? + /// The Unix time stamp for when the task was created (the task entered the PENDING state). + public let createdAt: TimeStamp? + /// The Unix time stamp for when the task last went into CONNECTED status. + public let connectivityAt: TimeStamp? + /// The Unix time stamp for when the container image pull completed. + public let pullStoppedAt: TimeStamp? + /// The ARN of the task definition that creates the task. + public let taskDefinitionArn: String? + /// The Unix time stamp for when the task will stop (the task transitioned from the RUNNING state to the STOPPED state). + public let stoppingAt: TimeStamp? + /// The Unix time stamp for when the task was stopped (the task transitioned from the RUNNING state to the STOPPED state). public let stoppedAt: TimeStamp? - /// The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch events, you can compare the version of a task reported by the Amazon ECS APIs with the version reported in CloudWatch events for the task (inside the detail object) to verify that the version in your event stream is current. + /// The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch Events, you can compare the version of a task reported by the Amazon ECS APIs with the version reported in CloudWatch Events for the task (inside the detail object) to verify that the version in your event stream is current. public let version: Int64? - /// The Amazon Resource Name (ARN) of the task. - public let taskArn: String? /// The tag specified when a task is started. If the task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it. public let startedBy: String? - /// The name of the task group associated with the task. - public let group: String? + /// The Amazon Resource Name (ARN) of the task. + public let taskArn: String? /// The last known status of the task. public let lastStatus: String? + /// The name of the task group associated with the task. + public let group: String? - public init(clusterArn: String? = nil, overrides: TaskOverride? = nil, createdAt: TimeStamp? = nil, startedAt: TimeStamp? = nil, desiredStatus: String? = nil, taskDefinitionArn: String? = nil, containers: [Container]? = nil, stoppedReason: String? = nil, containerInstanceArn: String? = nil, stoppedAt: TimeStamp? = nil, version: Int64? = nil, taskArn: String? = nil, startedBy: String? = nil, group: String? = nil, lastStatus: String? = nil) { + public init(clusterArn: String? = nil, pullStartedAt: TimeStamp? = nil, cpu: String? = nil, startedAt: TimeStamp? = nil, desiredStatus: String? = nil, executionStoppedAt: TimeStamp? = nil, memory: String? = nil, attachments: [Attachment]? = nil, containers: [Container]? = nil, stoppedReason: String? = nil, containerInstanceArn: String? = nil, launchType: LaunchType? = nil, connectivity: Connectivity? = nil, platformVersion: String? = nil, overrides: TaskOverride? = nil, createdAt: TimeStamp? = nil, connectivityAt: TimeStamp? = nil, pullStoppedAt: TimeStamp? = nil, taskDefinitionArn: String? = nil, stoppingAt: TimeStamp? = nil, stoppedAt: TimeStamp? = nil, version: Int64? = nil, startedBy: String? = nil, taskArn: String? = nil, lastStatus: String? = nil, group: String? = nil) { self.clusterArn = clusterArn - self.overrides = overrides - self.createdAt = createdAt + self.pullStartedAt = pullStartedAt + self.cpu = cpu self.startedAt = startedAt self.desiredStatus = desiredStatus - self.taskDefinitionArn = taskDefinitionArn + self.executionStoppedAt = executionStoppedAt + self.memory = memory + self.attachments = attachments self.containers = containers self.stoppedReason = stoppedReason self.containerInstanceArn = containerInstanceArn + self.launchType = launchType + self.connectivity = connectivity + self.platformVersion = platformVersion + self.overrides = overrides + self.createdAt = createdAt + self.connectivityAt = connectivityAt + self.pullStoppedAt = pullStoppedAt + self.taskDefinitionArn = taskDefinitionArn + self.stoppingAt = stoppingAt self.stoppedAt = stoppedAt self.version = version - self.taskArn = taskArn self.startedBy = startedBy - self.group = group + self.taskArn = taskArn self.lastStatus = lastStatus + self.group = group } private enum CodingKeys: String, CodingKey { case clusterArn = "clusterArn" - case overrides = "overrides" - case createdAt = "createdAt" + case pullStartedAt = "pullStartedAt" + case cpu = "cpu" case startedAt = "startedAt" case desiredStatus = "desiredStatus" - case taskDefinitionArn = "taskDefinitionArn" + case executionStoppedAt = "executionStoppedAt" + case memory = "memory" + case attachments = "attachments" case containers = "containers" case stoppedReason = "stoppedReason" case containerInstanceArn = "containerInstanceArn" + case launchType = "launchType" + case connectivity = "connectivity" + case platformVersion = "platformVersion" + case overrides = "overrides" + case createdAt = "createdAt" + case connectivityAt = "connectivityAt" + case pullStoppedAt = "pullStoppedAt" + case taskDefinitionArn = "taskDefinitionArn" + case stoppingAt = "stoppingAt" case stoppedAt = "stoppedAt" case version = "version" - case taskArn = "taskArn" case startedBy = "startedBy" - case group = "group" + case taskArn = "taskArn" case lastStatus = "lastStatus" - } - } - - public struct UpdateContainerAgentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "cluster", required: false, type: .string), - AWSShapeMember(label: "containerInstance", required: true, type: .string) - ] - /// The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is running on. If you do not specify a cluster, the default cluster is assumed. - public let cluster: String? - /// The container instance ID or full Amazon Resource Name (ARN) entries for the container instance on which you would like to update the Amazon ECS container agent. - public let containerInstance: String - - public init(cluster: String? = nil, containerInstance: String) { - self.cluster = cluster - self.containerInstance = containerInstance - } - - private enum CodingKeys: String, CodingKey { - case cluster = "cluster" - case containerInstance = "containerInstance" - } - } - - public struct ListClustersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "clusterArns", required: false, type: .list), - AWSShapeMember(label: "nextToken", required: false, type: .string) - ] - /// The list of full Amazon Resource Name (ARN) entries for each cluster associated with your account. - public let clusterArns: [String]? - /// The nextToken value to include in a future ListClusters request. When the results of a ListClusters request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. - public let nextToken: String? - - public init(clusterArns: [String]? = nil, nextToken: String? = nil) { - self.clusterArns = clusterArns - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case clusterArns = "clusterArns" - case nextToken = "nextToken" + case group = "group" } } public struct DescribeClustersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "include", required: false, type: .list), AWSShapeMember(label: "clusters", required: false, type: .list) ] + /// Additional information about your clusters to be separated by launch type, including: runningEC2TasksCount RunningFargateTasksCount pendingEC2TasksCount pendingFargateTasksCount activeEC2ServiceCount activeFargateServiceCount drainingEC2ServiceCount drainingFargateServiceCount + public let include: [ClusterField]? /// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed. public let clusters: [String]? - public init(clusters: [String]? = nil) { + public init(include: [ClusterField]? = nil, clusters: [String]? = nil) { + self.include = include self.clusters = clusters } private enum CodingKeys: String, CodingKey { + case include = "include" case clusters = "clusters" } } public struct RunTaskResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failures", required: false, type: .list), AWSShapeMember(label: "tasks", required: false, type: .list) ] /// Any failures associated with the call. public let failures: [Failure]? - /// A full description of the tasks that were run. Each task that was successfully placed on your cluster are described here. + /// A full description of the tasks that were run. The tasks that were successfully placed on your cluster are described here. public let tasks: [Task]? public init(failures: [Failure]? = nil, tasks: [Task]? = nil) { @@ -2564,11 +3075,11 @@ extension Ecs { } public struct ListServicesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "serviceArns", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] - /// The list of full Amazon Resource Name (ARN) entries for each service associated with the specified cluster. + /// The list of full ARN entries for each service associated with the specified cluster. public let serviceArns: [String]? /// The nextToken value to include in a future ListServices request. When the results of a ListServices request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. public let nextToken: String? @@ -2585,7 +3096,7 @@ extension Ecs { } public struct KeyValuePair: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "value", required: false, type: .string) ] @@ -2606,7 +3117,7 @@ extension Ecs { } public struct SubmitContainerStateChangeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .string), AWSShapeMember(label: "reason", required: false, type: .string), AWSShapeMember(label: "networkBindings", required: false, type: .list), @@ -2621,7 +3132,7 @@ extension Ecs { public let reason: String? /// The network bindings of the container. public let networkBindings: [NetworkBinding]? - /// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container. + /// The short name or full ARN of the cluster that hosts the container. public let cluster: String? /// The exit code returned for the state change request. public let exitCode: Int32? @@ -2652,7 +3163,7 @@ extension Ecs { } public struct ListTaskDefinitionFamiliesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "familyPrefix", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -2662,7 +3173,7 @@ extension Ecs { public let familyPrefix: String? /// The task definition family status with which to filter the ListTaskDefinitionFamilies results. By default, both ACTIVE and INACTIVE task definition families are listed. If this parameter is set to ACTIVE, only task definition families that have an ACTIVE task definition revision are returned. If this parameter is set to INACTIVE, only task definition families that do not have any ACTIVE task definition revisions are returned. If you paginate the resulting output, be sure to keep the status value constant in each subsequent request. public let status: TaskDefinitionFamilyStatus? - /// The nextToken value returned from a previous paginated ListTaskDefinitionFamilies request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + /// The nextToken value returned from a previous paginated ListTaskDefinitionFamilies request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. public let nextToken: String? /// The maximum number of task definition family results returned by ListTaskDefinitionFamilies in paginated output. When this parameter is used, ListTaskDefinitions only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListTaskDefinitionFamilies request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitionFamilies returns up to 100 results and a nextToken value if applicable. public let maxResults: Int32? @@ -2682,39 +3193,29 @@ extension Ecs { } } - public struct NetworkBinding: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "hostPort", required: false, type: .integer), - AWSShapeMember(label: "protocol", required: false, type: .enum), - AWSShapeMember(label: "containerPort", required: false, type: .integer), - AWSShapeMember(label: "bindIP", required: false, type: .string) + public struct DescribeContainerInstancesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "containerInstances", required: true, type: .list), + AWSShapeMember(label: "cluster", required: false, type: .string) ] - /// The port number on the host that is used with the network binding. - public let hostPort: Int32? - /// The protocol used for the network binding. - public let `protocol`: TransportProtocol? - /// The port number on the container that is be used with the network binding. - public let containerPort: Int32? - /// The IP address that the container is bound to on the container instance. - public let bindIP: String? + /// A list of container instance IDs or full ARN entries. + public let containerInstances: [String] + /// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to describe. If you do not specify a cluster, the default cluster is assumed. + public let cluster: String? - public init(hostPort: Int32? = nil, protocol: TransportProtocol? = nil, containerPort: Int32? = nil, bindIP: String? = nil) { - self.hostPort = hostPort - self.`protocol` = `protocol` - self.containerPort = containerPort - self.bindIP = bindIP + public init(containerInstances: [String], cluster: String? = nil) { + self.containerInstances = containerInstances + self.cluster = cluster } private enum CodingKeys: String, CodingKey { - case hostPort = "hostPort" - case `protocol` = "protocol" - case containerPort = "containerPort" - case bindIP = "bindIP" + case containerInstances = "containerInstances" + case cluster = "cluster" } } public struct Failure: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "reason", required: false, type: .string), AWSShapeMember(label: "arn", required: false, type: .string) ] @@ -2734,24 +3235,34 @@ extension Ecs { } } - public struct DescribeContainerInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "containerInstances", required: true, type: .list), - AWSShapeMember(label: "cluster", required: false, type: .string) + public struct NetworkBinding: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "hostPort", required: false, type: .integer), + AWSShapeMember(label: "protocol", required: false, type: .enum), + AWSShapeMember(label: "containerPort", required: false, type: .integer), + AWSShapeMember(label: "bindIP", required: false, type: .string) ] - /// A list of container instance IDs or full Amazon Resource Name (ARN) entries. - public let containerInstances: [String] - /// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to describe. If you do not specify a cluster, the default cluster is assumed. - public let cluster: String? + /// The port number on the host that is used with the network binding. + public let hostPort: Int32? + /// The protocol used for the network binding. + public let `protocol`: TransportProtocol? + /// The port number on the container that is used with the network binding. + public let containerPort: Int32? + /// The IP address that the container is bound to on the container instance. + public let bindIP: String? - public init(containerInstances: [String], cluster: String? = nil) { - self.containerInstances = containerInstances - self.cluster = cluster + public init(hostPort: Int32? = nil, protocol: TransportProtocol? = nil, containerPort: Int32? = nil, bindIP: String? = nil) { + self.hostPort = hostPort + self.`protocol` = `protocol` + self.containerPort = containerPort + self.bindIP = bindIP } private enum CodingKeys: String, CodingKey { - case containerInstances = "containerInstances" - case cluster = "cluster" + case hostPort = "hostPort" + case `protocol` = "protocol" + case containerPort = "containerPort" + case bindIP = "bindIP" } } diff --git a/Sources/AWSSDKSwift/Services/elasticache/Elasticache_API.swift b/Sources/AWSSDKSwift/Services/elasticache/Elasticache_API.swift index 3dfd4385326..7d624c829ab 100644 --- a/Sources/AWSSDKSwift/Services/elasticache/Elasticache_API.swift +++ b/Sources/AWSSDKSwift/Services/elasticache/Elasticache_API.swift @@ -29,12 +29,12 @@ public struct Elasticache { return try client.send(operation: "DescribeReservedCacheNodes", path: "/", httpMethod: "POST", input: input) } - /// Deletes a cache security group. You cannot delete a cache security group if it is associated with any cache clusters. + /// Deletes a cache security group. You cannot delete a cache security group if it is associated with any clusters. public func deleteCacheSecurityGroup(_ input: DeleteCacheSecurityGroupMessage) throws { _ = try client.send(operation: "DeleteCacheSecurityGroup", path: "/", httpMethod: "POST", input: input) } - /// Creates a new Amazon ElastiCache cache parameter group. An ElastiCache cache parameter group is a collection of parameters and their values that are applied to all of the nodes in any cache cluster or replication group using the CacheParameterGroup. A newly created CacheParameterGroup is an exact duplicate of the default parameter group for the CacheParameterGroupFamily. To customize the newly created CacheParameterGroup you can change the values of specific parameters. For more information, see: ModifyCacheParameterGroup in the ElastiCache API Reference. Parameters and Parameter Groups in the ElastiCache User Guide. + /// Creates a new Amazon ElastiCache cache parameter group. An ElastiCache cache parameter group is a collection of parameters and their values that are applied to all of the nodes in any cluster or replication group using the CacheParameterGroup. A newly created CacheParameterGroup is an exact duplicate of the default parameter group for the CacheParameterGroupFamily. To customize the newly created CacheParameterGroup you can change the values of specific parameters. For more information, see: ModifyCacheParameterGroup in the ElastiCache API Reference. Parameters and Parameter Groups in the ElastiCache User Guide. public func createCacheParameterGroup(_ input: CreateCacheParameterGroupMessage) throws -> CreateCacheParameterGroupResult { return try client.send(operation: "CreateCacheParameterGroup", path: "/", httpMethod: "POST", input: input) } @@ -49,7 +49,7 @@ public struct Elasticache { _ = try client.send(operation: "DeleteCacheParameterGroup", path: "/", httpMethod: "POST", input: input) } - /// Deletes a cache subnet group. You cannot delete a cache subnet group if it is associated with any cache clusters. + /// Deletes a cache subnet group. You cannot delete a cache subnet group if it is associated with any clusters. public func deleteCacheSubnetGroup(_ input: DeleteCacheSubnetGroupMessage) throws { _ = try client.send(operation: "DeleteCacheSubnetGroup", path: "/", httpMethod: "POST", input: input) } @@ -59,7 +59,7 @@ public struct Elasticache { return try client.send(operation: "DescribeCacheEngineVersions", path: "/", httpMethod: "POST", input: input) } - /// Returns information about all provisioned cache clusters if no cache cluster identifier is specified, or about a specific cache cluster if a cache cluster identifier is supplied. By default, abbreviated information about the cache clusters is returned. You can use the optional ShowCacheNodeInfo flag to retrieve detailed information about the cache nodes associated with the cache clusters. These details include the DNS address and port for the cache node endpoint. If the cluster is in the creating state, only cluster-level information is displayed until all of the nodes are successfully provisioned. If the cluster is in the deleting state, only cluster-level information is displayed. If cache nodes are currently being added to the cache cluster, node endpoint information and creation time for the additional nodes are not displayed until they are completely provisioned. When the cache cluster state is available, the cluster is ready for use. If cache nodes are currently being removed from the cache cluster, no endpoint information for the removed nodes is displayed. + /// Returns information about all provisioned clusters if no cluster identifier is specified, or about a specific cache cluster if a cluster identifier is supplied. By default, abbreviated information about the clusters is returned. You can use the optional ShowCacheNodeInfo flag to retrieve detailed information about the cache nodes associated with the clusters. These details include the DNS address and port for the cache node endpoint. If the cluster is in the creating state, only cluster-level information is displayed until all of the nodes are successfully provisioned. If the cluster is in the deleting state, only cluster-level information is displayed. If cache nodes are currently being added to the cluster, node endpoint information and creation time for the additional nodes are not displayed until they are completely provisioned. When the cluster state is available, the cluster is ready for use. If cache nodes are currently being removed from the cluster, no endpoint information for the removed nodes is displayed. public func describeCacheClusters(_ input: DescribeCacheClustersMessage) throws -> CacheClusterMessage { return try client.send(operation: "DescribeCacheClusters", path: "/", httpMethod: "POST", input: input) } @@ -69,7 +69,7 @@ public struct Elasticache { return try client.send(operation: "ResetCacheParameterGroup", path: "/", httpMethod: "POST", input: input) } - /// Deletes a previously provisioned cache cluster. DeleteCacheCluster deletes all associated cache nodes, node endpoints and the cache cluster itself. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the cache cluster; you cannot cancel or revert this operation. This operation cannot be used to delete a cache cluster that is the last read replica of a replication group or node group (shard) that has Multi-AZ mode enabled or a cache cluster from a Redis (cluster mode enabled) replication group. Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. + /// Deletes a previously provisioned cluster. DeleteCacheCluster deletes all associated cache nodes, node endpoints and the cluster itself. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the cluster; you cannot cancel or revert this operation. This operation cannot be used to delete a cluster that is the last read replica of a replication group or node group (shard) that has Multi-AZ mode enabled or a cluster from a Redis (cluster mode enabled) replication group. Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. public func deleteCacheCluster(_ input: DeleteCacheClusterMessage) throws -> DeleteCacheClusterResult { return try client.send(operation: "DeleteCacheCluster", path: "/", httpMethod: "POST", input: input) } @@ -84,7 +84,7 @@ public struct Elasticache { return try client.send(operation: "DescribeCacheSubnetGroups", path: "/", httpMethod: "POST", input: input) } - /// Creates a copy of an entire cache cluster or replication group at a specific moment in time. This operation is valid for Redis only. + /// Creates a copy of an entire cluster or replication group at a specific moment in time. This operation is valid for Redis only. public func createSnapshot(_ input: CreateSnapshotMessage) throws -> CreateSnapshotResult { return try client.send(operation: "CreateSnapshot", path: "/", httpMethod: "POST", input: input) } @@ -99,7 +99,7 @@ public struct Elasticache { return try client.send(operation: "AuthorizeCacheSecurityGroupIngress", path: "/", httpMethod: "POST", input: input) } - /// Reboots some, or all, of the cache nodes within a provisioned cache cluster. This operation applies any modified cache parameter groups to the cache cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cache cluster. During the reboot, the cache cluster status is set to REBOOTING. The reboot causes the contents of the cache (for each cache node being rebooted) to be lost. When the reboot is complete, a cache cluster event is created. + /// Reboots some, or all, of the cache nodes within a provisioned cluster. This operation applies any modified cache parameter groups to the cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cluster. During the reboot, the cluster status is set to REBOOTING. The reboot causes the contents of the cache (for each cache node being rebooted) to be lost. When the reboot is complete, a cluster event is created. Rebooting a cluster is currently supported on Memcached and Redis (cluster mode disabled) clusters. Rebooting is not supported on Redis (cluster mode enabled) clusters. If you make changes to parameters that require a Redis (cluster mode enabled) cluster reboot for the changes to be applied, see Rebooting a Cluster for an alternate process. public func rebootCacheCluster(_ input: RebootCacheClusterMessage) throws -> RebootCacheClusterResult { return try client.send(operation: "RebootCacheCluster", path: "/", httpMethod: "POST", input: input) } @@ -114,12 +114,12 @@ public struct Elasticache { return try client.send(operation: "CreateCacheSubnetGroup", path: "/", httpMethod: "POST", input: input) } - /// Returns events related to cache clusters, cache security groups, and cache parameter groups. You can obtain events specific to a particular cache cluster, cache security group, or cache parameter group by providing the name as a parameter. By default, only the events occurring within the last hour are returned; however, you can retrieve up to 14 days' worth of events if necessary. + /// Returns events related to clusters, cache security groups, and cache parameter groups. You can obtain events specific to a particular cluster, cache security group, or cache parameter group by providing the name as a parameter. By default, only the events occurring within the last hour are returned; however, you can retrieve up to 14 days' worth of events if necessary. public func describeEvents(_ input: DescribeEventsMessage) throws -> EventsMessage { return try client.send(operation: "DescribeEvents", path: "/", httpMethod: "POST", input: input) } - /// Creates a cache cluster. All nodes in the cache cluster run the same protocol-compliant cache engine software, either Memcached or Redis. Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. + /// Creates a cluster. All nodes in the cluster run the same protocol-compliant cache engine software, either Memcached or Redis. Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. public func createCacheCluster(_ input: CreateCacheClusterMessage) throws -> CreateCacheClusterResult { return try client.send(operation: "CreateCacheCluster", path: "/", httpMethod: "POST", input: input) } @@ -129,12 +129,12 @@ public struct Elasticache { return try client.send(operation: "ModifyReplicationGroup", path: "/", httpMethod: "POST", input: input) } - /// Modifies the settings for a cache cluster. You can use this operation to change one or more cluster configuration parameters by specifying the parameters and the new values. + /// Modifies the settings for a cluster. You can use this operation to change one or more cluster configuration parameters by specifying the parameters and the new values. public func modifyCacheCluster(_ input: ModifyCacheClusterMessage) throws -> ModifyCacheClusterResult { return try client.send(operation: "ModifyCacheCluster", path: "/", httpMethod: "POST", input: input) } - /// Creates a new cache security group. Use a cache security group to control access to one or more cache clusters. Cache security groups are only used when you are creating a cache cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). If you are creating a cache cluster inside of a VPC, use a cache subnet group instead. For more information, see CreateCacheSubnetGroup. + /// Creates a new cache security group. Use a cache security group to control access to one or more clusters. Cache security groups are only used when you are creating a cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). If you are creating a cluster inside of a VPC, use a cache subnet group instead. For more information, see CreateCacheSubnetGroup. public func createCacheSecurityGroup(_ input: CreateCacheSecurityGroupMessage) throws -> CreateCacheSecurityGroupResult { return try client.send(operation: "CreateCacheSecurityGroup", path: "/", httpMethod: "POST", input: input) } @@ -174,17 +174,22 @@ public struct Elasticache { return try client.send(operation: "DescribeReservedCacheNodesOfferings", path: "/", httpMethod: "POST", input: input) } - /// Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group. A Redis (cluster mode disabled) replication group is a collection of cache clusters, where one of the cache clusters is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas. A Redis (cluster mode enabled) replication group is a collection of 1 to 15 node groups (shards). Each node group (shard) has one read/write primary node and up to 5 read-only replica nodes. Writes to the primary are asynchronously propagated to the replicas. Redis (cluster mode enabled) replication groups partition the data across node groups (shards). When a Redis (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. You cannot alter a Redis (cluster mode enabled) replication group after it has been created. However, if you need to increase or decrease the number of node groups (console: shards), you can avail yourself of ElastiCache for Redis' enhanced backup and restore. For more information, see Restoring From a Backup with Cluster Resizing in the ElastiCache User Guide. This operation is valid for Redis only. + /// Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group. A Redis (cluster mode disabled) replication group is a collection of clusters, where one of the clusters is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas. A Redis (cluster mode enabled) replication group is a collection of 1 to 15 node groups (shards). Each node group (shard) has one read/write primary node and up to 5 read-only replica nodes. Writes to the primary are asynchronously propagated to the replicas. Redis (cluster mode enabled) replication groups partition the data across node groups (shards). When a Redis (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. You cannot alter a Redis (cluster mode enabled) replication group after it has been created. However, if you need to increase or decrease the number of node groups (console: shards), you can avail yourself of ElastiCache for Redis' enhanced backup and restore. For more information, see Restoring From a Backup with Cluster Resizing in the ElastiCache User Guide. This operation is valid for Redis only. public func createReplicationGroup(_ input: CreateReplicationGroupMessage) throws -> CreateReplicationGroupResult { return try client.send(operation: "CreateReplicationGroup", path: "/", httpMethod: "POST", input: input) } + /// Performs horizontal scaling on a Redis (cluster mode enabled) cluster with no downtime. Requires Redis engine version 3.2.10 or newer. For information on upgrading your engine to a newer version, see Upgrading Engine Versions in the Amazon ElastiCache User Guide. For more information on ElastiCache for Redis online horizontal scaling, see ElastiCache for Redis Horizontal Scaling + public func modifyReplicationGroupShardConfiguration(_ input: ModifyReplicationGroupShardConfigurationMessage) throws -> ModifyReplicationGroupShardConfigurationResult { + return try client.send(operation: "ModifyReplicationGroupShardConfiguration", path: "/", httpMethod: "POST", input: input) + } + /// Deletes an existing replication group. By default, this operation deletes the entire replication group, including the primary/primaries and all of the read replicas. If the replication group has only one primary, you can optionally delete only the read replicas, while retaining the primary by setting RetainPrimaryCluster=true. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources; you cannot cancel or revert this operation. This operation is valid for Redis only. public func deleteReplicationGroup(_ input: DeleteReplicationGroupMessage) throws -> DeleteReplicationGroupResult { return try client.send(operation: "DeleteReplicationGroup", path: "/", httpMethod: "POST", input: input) } - /// Returns information about cache cluster or replication group snapshots. By default, DescribeSnapshots lists all of your snapshots; it can optionally describe a single snapshot, or just the snapshots associated with a particular cache cluster. This operation is valid for Redis only. + /// Returns information about cluster or replication group snapshots. By default, DescribeSnapshots lists all of your snapshots; it can optionally describe a single snapshot, or just the snapshots associated with a particular cache cluster. This operation is valid for Redis only. public func describeSnapshots(_ input: DescribeSnapshotsMessage) throws -> DescribeSnapshotsListMessage { return try client.send(operation: "DescribeSnapshots", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/elasticache/Elasticache_Shapes.swift b/Sources/AWSSDKSwift/Services/elasticache/Elasticache_Shapes.swift index f31161e2e4d..95f3682d6be 100644 --- a/Sources/AWSSDKSwift/Services/elasticache/Elasticache_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/elasticache/Elasticache_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Elasticache { public struct DescribeEngineDefaultParametersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EngineDefaults", required: false, type: .structure) ] public let engineDefaults: EngineDefaults? @@ -21,7 +21,7 @@ extension Elasticache { } public struct EventsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Events", required: false, type: .structure) ] @@ -42,7 +42,7 @@ extension Elasticache { } public struct NodeGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeGroup", required: false, type: .list) ] public let nodeGroup: [NodeGroup]? @@ -57,8 +57,9 @@ extension Elasticache { } public struct ReplicationGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PendingModifiedValues", required: false, type: .structure), + AWSShapeMember(label: "NodeGroups", required: false, type: .structure), AWSShapeMember(label: "AutomaticFailover", required: false, type: .enum), AWSShapeMember(label: "MemberClusters", required: false, type: .structure), AWSShapeMember(label: "ClusterEnabled", required: false, type: .boolean), @@ -67,40 +68,49 @@ extension Elasticache { AWSShapeMember(label: "SnapshotWindow", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "SnapshottingClusterId", required: false, type: .string), + AWSShapeMember(label: "AuthTokenEnabled", required: false, type: .boolean), AWSShapeMember(label: "ReplicationGroupId", required: false, type: .string), AWSShapeMember(label: "CacheNodeType", required: false, type: .string), + AWSShapeMember(label: "AtRestEncryptionEnabled", required: false, type: .boolean), AWSShapeMember(label: "SnapshotRetentionLimit", required: false, type: .integer), - AWSShapeMember(label: "NodeGroups", required: false, type: .structure) + AWSShapeMember(label: "TransitEncryptionEnabled", required: false, type: .boolean) ] /// A group of settings to be applied to the replication group, either immediately or during the next maintenance window. public let pendingModifiedValues: ReplicationGroupPendingModifiedValues? - /// Indicates the status of Multi-AZ for this replication group. ElastiCache Multi-AZ replication groups are not supported on: Redis versions earlier than 2.8.6. Redis (cluster mode disabled):T1 and T2 cache node types. Redis (cluster mode enabled): T1 node types. + /// A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard). + public let nodeGroups: NodeGroupList? + /// Indicates the status of Multi-AZ with automatic failover for this Redis replication group. Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on: Redis versions earlier than 2.8.6. Redis (cluster mode disabled): T1 and T2 cache node types. Redis (cluster mode enabled): T1 node types. public let automaticFailover: AutomaticFailoverStatus? - /// The names of all the cache clusters that are part of this replication group. + /// The identifiers of all the nodes that are part of this replication group. public let memberClusters: ClusterIdList? /// A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: true | false public let clusterEnabled: Bool? - /// The description of the replication group. + /// The user supplied description of the replication group. public let description: String? - /// The configuration endpoint for this replicaiton group. Use the configuration endpoint to connect to this replication group. + /// The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group. public let configurationEndpoint: Endpoint? - /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: 05:00-09:00 If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. Note: This parameter is only valid if the Engine parameter is redis. + /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: 05:00-09:00 If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. This parameter is only valid if the Engine parameter is redis. public let snapshotWindow: String? /// The current state of this replication group - creating, available, modifying, deleting, create-failed, snapshotting. public let status: String? - /// The cache cluster ID that is used as the daily snapshot source for the replication group. + /// The cluster ID that is used as the daily snapshot source for the replication group. public let snapshottingClusterId: String? + /// A flag that enables using an AuthToken (password) when issuing Redis commands. Default: false + public let authTokenEnabled: Bool? /// The identifier for the replication group. public let replicationGroupId: String? /// The name of the compute and memory capacity node type for each node in the replication group. public let cacheNodeType: String? - /// The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. + /// A flag that enables encryption at-rest when set to true. You cannot modify the value of AtRestEncryptionEnabled after the cluster is created. To enable encryption at-rest on a cluster you must set AtRestEncryptionEnabled to true when you create a cluster. Default: false + public let atRestEncryptionEnabled: Bool? + /// The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. public let snapshotRetentionLimit: Int32? - /// A single element list with information about the nodes in the replication group. - public let nodeGroups: NodeGroupList? + /// A flag that enables in-transit encryption when set to true. You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster. Default: false + public let transitEncryptionEnabled: Bool? - public init(pendingModifiedValues: ReplicationGroupPendingModifiedValues? = nil, automaticFailover: AutomaticFailoverStatus? = nil, memberClusters: ClusterIdList? = nil, clusterEnabled: Bool? = nil, description: String? = nil, configurationEndpoint: Endpoint? = nil, snapshotWindow: String? = nil, status: String? = nil, snapshottingClusterId: String? = nil, replicationGroupId: String? = nil, cacheNodeType: String? = nil, snapshotRetentionLimit: Int32? = nil, nodeGroups: NodeGroupList? = nil) { + public init(pendingModifiedValues: ReplicationGroupPendingModifiedValues? = nil, nodeGroups: NodeGroupList? = nil, automaticFailover: AutomaticFailoverStatus? = nil, memberClusters: ClusterIdList? = nil, clusterEnabled: Bool? = nil, description: String? = nil, configurationEndpoint: Endpoint? = nil, snapshotWindow: String? = nil, status: String? = nil, snapshottingClusterId: String? = nil, authTokenEnabled: Bool? = nil, replicationGroupId: String? = nil, cacheNodeType: String? = nil, atRestEncryptionEnabled: Bool? = nil, snapshotRetentionLimit: Int32? = nil, transitEncryptionEnabled: Bool? = nil) { self.pendingModifiedValues = pendingModifiedValues + self.nodeGroups = nodeGroups self.automaticFailover = automaticFailover self.memberClusters = memberClusters self.clusterEnabled = clusterEnabled @@ -109,14 +119,17 @@ extension Elasticache { self.snapshotWindow = snapshotWindow self.status = status self.snapshottingClusterId = snapshottingClusterId + self.authTokenEnabled = authTokenEnabled self.replicationGroupId = replicationGroupId self.cacheNodeType = cacheNodeType + self.atRestEncryptionEnabled = atRestEncryptionEnabled self.snapshotRetentionLimit = snapshotRetentionLimit - self.nodeGroups = nodeGroups + self.transitEncryptionEnabled = transitEncryptionEnabled } private enum CodingKeys: String, CodingKey { case pendingModifiedValues = "PendingModifiedValues" + case nodeGroups = "NodeGroups" case automaticFailover = "AutomaticFailover" case memberClusters = "MemberClusters" case clusterEnabled = "ClusterEnabled" @@ -125,15 +138,17 @@ extension Elasticache { case snapshotWindow = "SnapshotWindow" case status = "Status" case snapshottingClusterId = "SnapshottingClusterId" + case authTokenEnabled = "AuthTokenEnabled" case replicationGroupId = "ReplicationGroupId" case cacheNodeType = "CacheNodeType" + case atRestEncryptionEnabled = "AtRestEncryptionEnabled" case snapshotRetentionLimit = "SnapshotRetentionLimit" - case nodeGroups = "NodeGroups" + case transitEncryptionEnabled = "TransitEncryptionEnabled" } } public struct ReplicationGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationGroup", required: false, type: .list) ] public let replicationGroup: [ReplicationGroup]? @@ -147,8 +162,23 @@ extension Elasticache { } } + public struct ReshardingConfigurationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReshardingConfiguration", required: false, type: .list) + ] + public let reshardingConfiguration: [ReshardingConfiguration]? + + public init(reshardingConfiguration: [ReshardingConfiguration]? = nil) { + self.reshardingConfiguration = reshardingConfiguration + } + + private enum CodingKeys: String, CodingKey { + case reshardingConfiguration = "ReshardingConfiguration" + } + } + public struct CacheSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "CacheSubnetGroups", required: false, type: .structure) ] @@ -169,7 +199,7 @@ extension Elasticache { } public struct CreateCacheClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheCluster", required: false, type: .structure) ] public let cacheCluster: CacheCluster? @@ -184,7 +214,7 @@ extension Elasticache { } public struct Endpoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Address", required: false, type: .string), AWSShapeMember(label: "Port", required: false, type: .integer) ] @@ -205,7 +235,7 @@ extension Elasticache { } public struct ReservedCacheNodesOfferingList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedCacheNodesOffering", required: false, type: .list) ] public let reservedCacheNodesOffering: [ReservedCacheNodesOffering]? @@ -226,7 +256,7 @@ extension Elasticache { } public struct ParameterNameValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterName", required: false, type: .string), AWSShapeMember(label: "ParameterValue", required: false, type: .string) ] @@ -247,7 +277,7 @@ extension Elasticache { } public struct DeleteCacheSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSubnetGroupName", required: true, type: .string) ] /// The name of the cache subnet group to delete. Constraints: Must contain no more than 255 alphanumeric characters or hyphens. @@ -263,13 +293,13 @@ extension Elasticache { } public struct CacheClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "CacheClusters", required: false, type: .structure) ] /// Provides an identifier to allow retrieval of paginated results. public let marker: String? - /// A list of cache clusters. Each item in the list contains detailed information about one cache cluster. + /// A list of clusters. Each item in the list contains detailed information about one cluster. public let cacheClusters: CacheClusterList? public init(marker: String? = nil, cacheClusters: CacheClusterList? = nil) { @@ -284,7 +314,7 @@ extension Elasticache { } public struct SecurityGroupIdsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroupId", required: false, type: .list) ] public let securityGroupId: [String]? @@ -299,7 +329,7 @@ extension Elasticache { } public struct ReservedCacheNodeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedCacheNode", required: false, type: .list) ] public let reservedCacheNode: [ReservedCacheNode]? @@ -314,7 +344,7 @@ extension Elasticache { } public struct DescribeCacheParametersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Source", required: false, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -345,7 +375,7 @@ extension Elasticache { } public struct ReservedCacheNode: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "CacheNodeCount", required: false, type: .integer), AWSShapeMember(label: "RecurringCharges", required: false, type: .structure), @@ -371,7 +401,7 @@ extension Elasticache { public let usagePrice: Double? /// The state of the reserved cache node. public let state: String? - /// The cache node type for the reserved cache nodes. Valid node types are as follows: General purpose: Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: cache.c1.xlarge Memory optimized: Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. + /// The cache node type for the reserved cache nodes. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. General purpose: Current generation: T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: (not recommended) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: Previous generation: (not recommended) C1 node types: cache.c1.xlarge Memory optimized: Current generation: R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: (not recommended) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances. Redis (cluster mode enabled): Backup/restore is not supported on T1 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. public let cacheNodeType: String? /// The unique identifier for the reservation. public let reservedCacheNodeId: String? @@ -416,7 +446,7 @@ extension Elasticache { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -443,7 +473,7 @@ extension Elasticache { } public struct ResetCacheParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheParameterGroupName", required: true, type: .string), AWSShapeMember(label: "ParameterNameValues", required: false, type: .structure), AWSShapeMember(label: "ResetAllParameters", required: false, type: .boolean) @@ -469,7 +499,7 @@ extension Elasticache { } public struct CopySnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Snapshot", required: false, type: .structure) ] public let snapshot: Snapshot? @@ -484,7 +514,7 @@ extension Elasticache { } public struct ListTagsForResourceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceName", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the resource for which you want the list of tags, for example arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster or arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. @@ -500,7 +530,7 @@ extension Elasticache { } public struct CacheEngineVersionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheEngineVersion", required: false, type: .list) ] public let cacheEngineVersion: [CacheEngineVersion]? @@ -515,7 +545,7 @@ extension Elasticache { } public struct PreferredAvailabilityZoneList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PreferredAvailabilityZone", required: false, type: .list) ] public let preferredAvailabilityZone: [String]? @@ -530,7 +560,7 @@ extension Elasticache { } public struct ReservedCacheNodesOffering: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OfferingType", required: false, type: .string), AWSShapeMember(label: "RecurringCharges", required: false, type: .structure), AWSShapeMember(label: "UsagePrice", required: false, type: .double), @@ -546,7 +576,7 @@ extension Elasticache { public let recurringCharges: RecurringChargeList? /// The hourly price charged for this offering. public let usagePrice: Double? - /// The cache node type for the reserved cache node. Valid node types are as follows: General purpose: Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: cache.c1.xlarge Memory optimized: Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. + /// The cache node type for the reserved cache node. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. General purpose: Current generation: T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: (not recommended) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: Previous generation: (not recommended) C1 node types: cache.c1.xlarge Memory optimized: Current generation: R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: (not recommended) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances. Redis (cluster mode enabled): Backup/restore is not supported on T1 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. public let cacheNodeType: String? /// The duration of the offering. in seconds. public let duration: Int32? @@ -581,7 +611,7 @@ extension Elasticache { } public struct CacheSecurityGroupMembershipList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSecurityGroup", required: false, type: .list) ] public let cacheSecurityGroup: [CacheSecurityGroupMembership]? @@ -596,7 +626,7 @@ extension Elasticache { } public struct RevokeCacheSecurityGroupIngressMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EC2SecurityGroupOwnerId", required: true, type: .string), AWSShapeMember(label: "CacheSecurityGroupName", required: true, type: .string), AWSShapeMember(label: "EC2SecurityGroupName", required: true, type: .string) @@ -622,7 +652,7 @@ extension Elasticache { } public struct TestFailoverMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeGroupId", required: true, type: .string), AWSShapeMember(label: "ReplicationGroupId", required: true, type: .string) ] @@ -643,7 +673,7 @@ extension Elasticache { } public struct RecurringCharge: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecurringChargeAmount", required: false, type: .double), AWSShapeMember(label: "RecurringChargeFrequency", required: false, type: .string) ] @@ -664,7 +694,7 @@ extension Elasticache { } public struct CacheNodeTypeSpecificValueList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheNodeTypeSpecificValue", required: false, type: .list) ] public let cacheNodeTypeSpecificValue: [CacheNodeTypeSpecificValue]? @@ -679,12 +709,12 @@ extension Elasticache { } public struct CreateSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheClusterId", required: false, type: .string), AWSShapeMember(label: "SnapshotName", required: true, type: .string), AWSShapeMember(label: "ReplicationGroupId", required: false, type: .string) ] - /// The identifier of an existing cache cluster. The snapshot is created from this cache cluster. + /// The identifier of an existing cluster. The snapshot is created from this cluster. public let cacheClusterId: String? /// A name for the snapshot being created. public let snapshotName: String @@ -705,7 +735,7 @@ extension Elasticache { } public struct CacheClusterList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheCluster", required: false, type: .list) ] public let cacheCluster: [CacheCluster]? @@ -720,7 +750,7 @@ extension Elasticache { } public struct DescribeEventsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -766,7 +796,7 @@ extension Elasticache { } public struct CacheNode: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceCacheNodeId", required: false, type: .string), AWSShapeMember(label: "CustomerAvailabilityZone", required: false, type: .string), AWSShapeMember(label: "CacheNodeId", required: false, type: .string), @@ -775,7 +805,7 @@ extension Elasticache { AWSShapeMember(label: "CacheNodeCreateTime", required: false, type: .timestamp), AWSShapeMember(label: "Endpoint", required: false, type: .structure) ] - /// The ID of the primary node to which this read replica node is synchronized. If this field is empty, this node is not associated with a primary cache cluster. + /// The ID of the primary node to which this read replica node is synchronized. If this field is empty, this node is not associated with a primary cluster. public let sourceCacheNodeId: String? /// The Availability Zone where this node was created and now resides. public let customerAvailabilityZone: String? @@ -812,7 +842,7 @@ extension Elasticache { } public struct CreateCacheClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthToken", required: false, type: .string), AWSShapeMember(label: "AZMode", required: false, type: .enum), AWSShapeMember(label: "SnapshotArns", required: false, type: .structure), @@ -837,51 +867,51 @@ extension Elasticache { AWSShapeMember(label: "Port", required: false, type: .integer), AWSShapeMember(label: "SnapshotRetentionLimit", required: false, type: .integer) ] - /// Reserved parameter. The password used to access a password protected server. Password constraints: Must be only printable ASCII characters. Must be at least 16 characters and no more than 128 characters in length. Cannot contain any of the following characters: '/', '"', or "@". For more information, see AUTH password at Redis. + /// Reserved parameter. The password used to access a password protected server. This parameter is valid only if: The parameter TransitEncryptionEnabled was set to true when the cluster was created. The line requirepass was added to the database configuration file. Password constraints: Must be only printable ASCII characters. Must be at least 16 characters and no more than 128 characters in length. Cannot contain any of the following characters: '/', '"', or '@'. For more information, see AUTH password at http://redis.io/commands/AUTH. public let authToken: String? - /// Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. This parameter is only supported for Memcached cache clusters. If the AZMode and PreferredAvailabilityZones are not specified, ElastiCache assumes single-az mode. + /// Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. This parameter is only supported for Memcached clusters. If the AZMode and PreferredAvailabilityZones are not specified, ElastiCache assumes single-az mode. public let aZMode: AZMode? /// A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot file is used to populate the node group (shard). The Amazon S3 object name in the ARN cannot contain any commas. This parameter is only valid if the Engine parameter is redis. Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb public let snapshotArns: SnapshotArnsList? - /// A list of security group names to associate with this cache cluster. Use this parameter only when you are creating a cache cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). + /// A list of security group names to associate with this cluster. Use this parameter only when you are creating a cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). public let cacheSecurityGroupNames: CacheSecurityGroupNameList? - /// The initial number of cache nodes that the cache cluster has. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. If you need more than 20 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at http://aws.amazon.com/contact-us/elasticache-node-limit-request/. + /// The initial number of cache nodes that the cluster has. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. If you need more than 20 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at http://aws.amazon.com/contact-us/elasticache-node-limit-request/. public let numCacheNodes: Int32? - /// A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value. + /// A list of cost allocation tags to be added to this resource. public let tags: TagList? - /// A list of the Availability Zones in which cache nodes are created. The order of the zones in the list is not important. This option is only supported on Memcached. If you are creating your cache cluster in an Amazon VPC (recommended) you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of NumCacheNodes. If you want all the nodes in the same Availability Zone, use PreferredAvailabilityZone instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. + /// A list of the Availability Zones in which cache nodes are created. The order of the zones in the list is not important. This option is only supported on Memcached. If you are creating your cluster in an Amazon VPC (recommended) you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of NumCacheNodes. If you want all the nodes in the same Availability Zone, use PreferredAvailabilityZone instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. public let preferredAvailabilityZones: PreferredAvailabilityZoneList? - /// One or more VPC security groups associated with the cache cluster. Use this parameter only when you are creating a cache cluster in an Amazon Virtual Private Cloud (Amazon VPC). + /// One or more VPC security groups associated with the cluster. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC). public let securityGroupIds: SecurityGroupIdsList? /// The name of a Redis snapshot from which to restore data into the new node group (shard). The snapshot status changes to restoring while the new node group (shard) is being created. This parameter is only valid if the Engine parameter is redis. public let snapshotName: String? /// This parameter is currently disabled. public let autoMinorVersionUpgrade: Bool? - /// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. The Amazon SNS topic owner must be the same as the cache cluster owner. + /// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. The Amazon SNS topic owner must be the same as the cluster owner. public let notificationTopicArn: String? - /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: 05:00-09:00 If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. Note: This parameter is only valid if the Engine parameter is redis. + /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: 05:00-09:00 If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. This parameter is only valid if the Engine parameter is redis. public let snapshotWindow: String? - /// The version number of the cache engine to be used for this cache cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster or replication group and create it anew with the earlier engine version. + /// The version number of the cache engine to be used for this cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. public let engineVersion: String? - /// Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. The ID of the replication group to which this cache cluster should belong. If this parameter is specified, the cache cluster is added to the specified replication group as a read replica; otherwise, the cache cluster is a standalone primary that is not part of any replication group. If the specified replication group is Multi-AZ enabled and the Availability Zone is not specified, the cache cluster is created in Availability Zones that provide the best spread of read replicas across Availability Zones. This parameter is only valid if the Engine parameter is redis. + /// Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups. The ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. If the specified replication group is Multi-AZ enabled and the Availability Zone is not specified, the cluster is created in Availability Zones that provide the best spread of read replicas across Availability Zones. This parameter is only valid if the Engine parameter is redis. public let replicationGroupId: String? - /// The EC2 Availability Zone in which the cache cluster is created. All nodes belonging to this Memcached cache cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use PreferredAvailabilityZones. Default: System chosen Availability Zone. + /// The EC2 Availability Zone in which the cluster is created. All nodes belonging to this Memcached cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use PreferredAvailabilityZones. Default: System chosen Availability Zone. public let preferredAvailabilityZone: String? - /// The name of the subnet group to be used for the cache cluster. Use this parameter only when you are creating a cache cluster in an Amazon Virtual Private Cloud (Amazon VPC). If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see Subnets and Subnet Groups. + /// The name of the subnet group to be used for the cluster. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC). If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see Subnets and Subnet Groups. public let cacheSubnetGroupName: String? - /// Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: sun mon tue wed thu fri sat Example: sun:23:00-mon:01:30 + /// Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: sun mon tue wed thu fri sat Example: sun:23:00-mon:01:30 public let preferredMaintenanceWindow: String? - /// The name of the cache engine to be used for this cache cluster. Valid values for this parameter are: memcached | redis + /// The name of the cache engine to be used for this cluster. Valid values for this parameter are: memcached | redis public let engine: String? - /// The compute and memory capacity of the nodes in the node group (shard). Valid node types are as follows: General purpose: Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: cache.c1.xlarge Memory optimized: Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. + /// The compute and memory capacity of the nodes in the node group (shard). The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. General purpose: Current generation: T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: (not recommended) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: Previous generation: (not recommended) C1 node types: cache.c1.xlarge Memory optimized: Current generation: R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: (not recommended) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances. Redis (cluster mode enabled): Backup/restore is not supported on T1 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. public let cacheNodeType: String? - /// The name of the parameter group to associate with this cache cluster. If this argument is omitted, the default parameter group for the specified engine is used. You cannot use any parameter group which has cluster-enabled='yes' when creating a cluster. + /// The name of the parameter group to associate with this cluster. If this argument is omitted, the default parameter group for the specified engine is used. You cannot use any parameter group which has cluster-enabled='yes' when creating a cluster. public let cacheParameterGroupName: String? /// The node group (shard) identifier. This parameter is stored as a lowercase string. Constraints: A name must contain from 1 to 20 alphanumeric characters or hyphens. The first character must be a letter. A name cannot end with a hyphen or contain two consecutive hyphens. public let cacheClusterId: String /// The port number on which each of the cache nodes accepts connections. public let port: Int32? - /// The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot taken today is retained for 5 days before being deleted. This parameter is only valid if the Engine parameter is redis. Default: 0 (i.e., automatic backups are disabled for this cache cluster). + /// The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot taken today is retained for 5 days before being deleted. This parameter is only valid if the Engine parameter is redis. Default: 0 (i.e., automatic backups are disabled for this cluster). public let snapshotRetentionLimit: Int32? public init(authToken: String? = nil, aZMode: AZMode? = nil, snapshotArns: SnapshotArnsList? = nil, cacheSecurityGroupNames: CacheSecurityGroupNameList? = nil, numCacheNodes: Int32? = nil, tags: TagList? = nil, preferredAvailabilityZones: PreferredAvailabilityZoneList? = nil, securityGroupIds: SecurityGroupIdsList? = nil, snapshotName: String? = nil, autoMinorVersionUpgrade: Bool? = nil, notificationTopicArn: String? = nil, snapshotWindow: String? = nil, engineVersion: String? = nil, replicationGroupId: String? = nil, preferredAvailabilityZone: String? = nil, cacheSubnetGroupName: String? = nil, preferredMaintenanceWindow: String? = nil, engine: String? = nil, cacheNodeType: String? = nil, cacheParameterGroupName: String? = nil, cacheClusterId: String, port: Int32? = nil, snapshotRetentionLimit: Int32? = nil) { @@ -938,7 +968,7 @@ extension Elasticache { } public struct RemoveTagsFromResourceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceName", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -959,7 +989,7 @@ extension Elasticache { } public struct DeleteReplicationGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationGroup", required: false, type: .structure) ] public let replicationGroup: ReplicationGroup? @@ -974,7 +1004,7 @@ extension Elasticache { } public struct CacheParameterGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "CacheParameterGroups", required: false, type: .structure) ] @@ -995,7 +1025,7 @@ extension Elasticache { } public struct EventList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Event", required: false, type: .list) ] public let event: [Event]? @@ -1010,7 +1040,7 @@ extension Elasticache { } public struct TestFailoverResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationGroup", required: false, type: .structure) ] public let replicationGroup: ReplicationGroup? @@ -1025,7 +1055,7 @@ extension Elasticache { } public struct CacheEngineVersion: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheEngineDescription", required: false, type: .string), AWSShapeMember(label: "CacheParameterGroupFamily", required: false, type: .string), AWSShapeMember(label: "Engine", required: false, type: .string), @@ -1061,7 +1091,7 @@ extension Elasticache { } public struct NodeGroupMemberList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeGroupMember", required: false, type: .list) ] public let nodeGroupMember: [NodeGroupMember]? @@ -1076,7 +1106,7 @@ extension Elasticache { } public struct CacheParameterGroupDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheNodeTypeSpecificParameters", required: false, type: .structure), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Parameters", required: false, type: .structure) @@ -1102,7 +1132,7 @@ extension Elasticache { } public struct DescribeSnapshotsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "ShowNodeGroupConfig", required: false, type: .boolean), AWSShapeMember(label: "ReplicationGroupId", required: false, type: .string), @@ -1121,7 +1151,7 @@ extension Elasticache { public let marker: String? /// If set to system, the output shows snapshots that were automatically created by ElastiCache. If set to user the output shows snapshots that were manually created. If omitted, the output shows both automatically and manually created snapshots. public let snapshotSource: String? - /// A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cache cluster are described. + /// A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cluster are described. public let cacheClusterId: String? /// A user-supplied name of the snapshot. If this parameter is specified, only this snapshot are described. public let snapshotName: String? @@ -1148,7 +1178,7 @@ extension Elasticache { } public struct RevokeCacheSecurityGroupIngressResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSecurityGroup", required: false, type: .structure) ] public let cacheSecurityGroup: CacheSecurityGroup? @@ -1163,7 +1193,7 @@ extension Elasticache { } public struct SubnetIdentifierList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIdentifier", required: false, type: .list) ] public let subnetIdentifier: [String]? @@ -1178,7 +1208,7 @@ extension Elasticache { } public struct EC2SecurityGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EC2SecurityGroupOwnerId", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "EC2SecurityGroupName", required: false, type: .string) @@ -1204,7 +1234,7 @@ extension Elasticache { } public struct Subnet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIdentifier", required: false, type: .string), AWSShapeMember(label: "SubnetAvailabilityZone", required: false, type: .structure) ] @@ -1225,7 +1255,7 @@ extension Elasticache { } public struct Parameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterValue", required: false, type: .string), AWSShapeMember(label: "AllowedValues", required: false, type: .string), AWSShapeMember(label: "DataType", required: false, type: .string), @@ -1281,7 +1311,7 @@ extension Elasticache { } public struct CacheParameterGroupStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheParameterGroupName", required: false, type: .string), AWSShapeMember(label: "CacheNodeIdsToReboot", required: false, type: .structure), AWSShapeMember(label: "ParameterApplyStatus", required: false, type: .string) @@ -1307,17 +1337,17 @@ extension Elasticache { } public struct Event: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceIdentifier", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "SourceType", required: false, type: .enum), AWSShapeMember(label: "Date", required: false, type: .timestamp) ] - /// The identifier for the source of the event. For example, if the event occurred at the cache cluster level, the identifier would be the name of the cache cluster. + /// The identifier for the source of the event. For example, if the event occurred at the cluster level, the identifier would be the name of the cluster. public let sourceIdentifier: String? /// The text of the event. public let message: String? - /// Specifies the origin of this event - a cache cluster, a parameter group, a security group, etc. + /// Specifies the origin of this event - a cluster, a parameter group, a security group, etc. public let sourceType: SourceType? /// The date and time when the event occurred. public let date: TimeStamp? @@ -1338,7 +1368,7 @@ extension Elasticache { } public struct SnapshotList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Snapshot", required: false, type: .list) ] public let snapshot: [Snapshot]? @@ -1353,7 +1383,7 @@ extension Elasticache { } public struct DeleteCacheClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheCluster", required: false, type: .structure) ] public let cacheCluster: CacheCluster? @@ -1368,7 +1398,7 @@ extension Elasticache { } public struct CacheNodeTypeSpecificValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "CacheNodeType", required: false, type: .string) ] @@ -1389,125 +1419,142 @@ extension Elasticache { } public struct CacheCluster: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PendingModifiedValues", required: false, type: .structure), - AWSShapeMember(label: "SnapshotRetentionLimit", required: false, type: .integer), - AWSShapeMember(label: "CacheSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "CacheClusterCreateTime", required: false, type: .timestamp), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NumCacheNodes", required: false, type: .integer), - AWSShapeMember(label: "CacheClusterStatus", required: false, type: .string), AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), - AWSShapeMember(label: "CacheNodes", required: false, type: .structure), + AWSShapeMember(label: "ConfigurationEndpoint", required: false, type: .structure), AWSShapeMember(label: "SnapshotWindow", required: false, type: .string), AWSShapeMember(label: "NotificationConfiguration", required: false, type: .structure), AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "AuthTokenEnabled", required: false, type: .boolean), AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), - AWSShapeMember(label: "ConfigurationEndpoint", required: false, type: .structure), AWSShapeMember(label: "PreferredAvailabilityZone", required: false, type: .string), - AWSShapeMember(label: "SecurityGroups", required: false, type: .list), AWSShapeMember(label: "ReplicationGroupId", required: false, type: .string), + AWSShapeMember(label: "SnapshotRetentionLimit", required: false, type: .integer), + AWSShapeMember(label: "CacheClusterStatus", required: false, type: .string), + AWSShapeMember(label: "PendingModifiedValues", required: false, type: .structure), + AWSShapeMember(label: "CacheClusterCreateTime", required: false, type: .timestamp), + AWSShapeMember(label: "CacheNodes", required: false, type: .structure), + AWSShapeMember(label: "SecurityGroups", required: false, type: .list), + AWSShapeMember(label: "CacheSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "Engine", required: false, type: .string), + AWSShapeMember(label: "CacheNodeType", required: false, type: .string), + AWSShapeMember(label: "ClientDownloadLandingPage", required: false, type: .string), AWSShapeMember(label: "CacheParameterGroup", required: false, type: .structure), AWSShapeMember(label: "CacheSecurityGroups", required: false, type: .structure), - AWSShapeMember(label: "ClientDownloadLandingPage", required: false, type: .string), AWSShapeMember(label: "CacheClusterId", required: false, type: .string), - AWSShapeMember(label: "CacheNodeType", required: false, type: .string), - AWSShapeMember(label: "Engine", required: false, type: .string) + AWSShapeMember(label: "AtRestEncryptionEnabled", required: false, type: .boolean), + AWSShapeMember(label: "TransitEncryptionEnabled", required: false, type: .boolean) ] - public let pendingModifiedValues: PendingModifiedValues? - /// The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. - public let snapshotRetentionLimit: Int32? - /// The name of the cache subnet group associated with the cache cluster. - public let cacheSubnetGroupName: String? - /// The date and time when the cache cluster was created. - public let cacheClusterCreateTime: TimeStamp? - /// The number of cache nodes in the cache cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. + /// The number of cache nodes in the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. public let numCacheNodes: Int32? - /// The current state of this cache cluster, one of the following values: available, creating, deleted, deleting, incompatible-network, modifying, rebooting cache cluster nodes, restore-failed, or snapshotting. - public let cacheClusterStatus: String? /// This parameter is currently disabled. public let autoMinorVersionUpgrade: Bool? - /// A list of cache nodes that are members of the cache cluster. - public let cacheNodes: CacheNodeList? - /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cache cluster. Example: 05:00-09:00 + /// Represents a Memcached cluster endpoint which, if Automatic Discovery is enabled on the cluster, can be used by an application to connect to any node in the cluster. The configuration endpoint will always have .cfg in it. Example: mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211 + public let configurationEndpoint: Endpoint? + /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. Example: 05:00-09:00 public let snapshotWindow: String? + /// Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS). public let notificationConfiguration: NotificationConfiguration? - /// The version of the cache engine that is used in this cache cluster. + /// The version of the cache engine that is used in this cluster. public let engineVersion: String? + /// A flag that enables using an AuthToken (password) when issuing Redis commands. Default: false + public let authTokenEnabled: Bool? /// Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: sun mon tue wed thu fri sat Example: sun:23:00-mon:01:30 public let preferredMaintenanceWindow: String? - /// Represents a Memcached cluster endpoint which, if Automatic Discovery is enabled on the cluster, can be used by an application to connect to any node in the cluster. The configuration endpoint will always have .cfg in it. Example: mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211 - public let configurationEndpoint: Endpoint? - /// The name of the Availability Zone in which the cache cluster is located or "Multiple" if the cache nodes are located in different Availability Zones. + /// The name of the Availability Zone in which the cluster is located or "Multiple" if the cache nodes are located in different Availability Zones. public let preferredAvailabilityZone: String? - /// A list of VPC Security Groups associated with the cache cluster. - public let securityGroups: [SecurityGroupMembership]? - /// The replication group to which this cache cluster belongs. If this field is empty, the cache cluster is not associated with any replication group. + /// The replication group to which this cluster belongs. If this field is empty, the cluster is not associated with any replication group. public let replicationGroupId: String? + /// The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. + public let snapshotRetentionLimit: Int32? + /// The current state of this cluster, one of the following values: available, creating, deleted, deleting, incompatible-network, modifying, rebooting cluster nodes, restore-failed, or snapshotting. + public let cacheClusterStatus: String? + public let pendingModifiedValues: PendingModifiedValues? + /// The date and time when the cluster was created. + public let cacheClusterCreateTime: TimeStamp? + /// A list of cache nodes that are members of the cluster. + public let cacheNodes: CacheNodeList? + /// A list of VPC Security Groups associated with the cluster. + public let securityGroups: [SecurityGroupMembership]? + /// The name of the cache subnet group associated with the cluster. + public let cacheSubnetGroupName: String? + /// The name of the cache engine (memcached or redis) to be used for this cluster. + public let engine: String? + /// The name of the compute and memory capacity node type for the cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. General purpose: Current generation: T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: (not recommended) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: Previous generation: (not recommended) C1 node types: cache.c1.xlarge Memory optimized: Current generation: R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: (not recommended) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances. Redis (cluster mode enabled): Backup/restore is not supported on T1 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. + public let cacheNodeType: String? + /// The URL of the web page where you can download the latest ElastiCache client library. + public let clientDownloadLandingPage: String? + /// Status of the cache parameter group. public let cacheParameterGroup: CacheParameterGroupStatus? /// A list of cache security group elements, composed of name and status sub-elements. public let cacheSecurityGroups: CacheSecurityGroupMembershipList? - /// The URL of the web page where you can download the latest ElastiCache client library. - public let clientDownloadLandingPage: String? - /// The user-supplied identifier of the cache cluster. This identifier is a unique key that identifies a cache cluster. + /// The user-supplied identifier of the cluster. This identifier is a unique key that identifies a cluster. public let cacheClusterId: String? - /// The name of the compute and memory capacity node type for the cache cluster. Valid node types are as follows: General purpose: Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: cache.c1.xlarge Memory optimized: Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. - public let cacheNodeType: String? - /// The name of the cache engine (memcached or redis) to be used for this cache cluster. - public let engine: String? + /// A flag that enables encryption at-rest when set to true. You cannot modify the value of AtRestEncryptionEnabled after the cluster is created. To enable at-rest encryption on a cluster you must set AtRestEncryptionEnabled to true when you create a cluster. Default: false + public let atRestEncryptionEnabled: Bool? + /// A flag that enables in-transit encryption when set to true. You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster. Default: false + public let transitEncryptionEnabled: Bool? - public init(pendingModifiedValues: PendingModifiedValues? = nil, snapshotRetentionLimit: Int32? = nil, cacheSubnetGroupName: String? = nil, cacheClusterCreateTime: TimeStamp? = nil, numCacheNodes: Int32? = nil, cacheClusterStatus: String? = nil, autoMinorVersionUpgrade: Bool? = nil, cacheNodes: CacheNodeList? = nil, snapshotWindow: String? = nil, notificationConfiguration: NotificationConfiguration? = nil, engineVersion: String? = nil, preferredMaintenanceWindow: String? = nil, configurationEndpoint: Endpoint? = nil, preferredAvailabilityZone: String? = nil, securityGroups: [SecurityGroupMembership]? = nil, replicationGroupId: String? = nil, cacheParameterGroup: CacheParameterGroupStatus? = nil, cacheSecurityGroups: CacheSecurityGroupMembershipList? = nil, clientDownloadLandingPage: String? = nil, cacheClusterId: String? = nil, cacheNodeType: String? = nil, engine: String? = nil) { - self.pendingModifiedValues = pendingModifiedValues - self.snapshotRetentionLimit = snapshotRetentionLimit - self.cacheSubnetGroupName = cacheSubnetGroupName - self.cacheClusterCreateTime = cacheClusterCreateTime + public init(numCacheNodes: Int32? = nil, autoMinorVersionUpgrade: Bool? = nil, configurationEndpoint: Endpoint? = nil, snapshotWindow: String? = nil, notificationConfiguration: NotificationConfiguration? = nil, engineVersion: String? = nil, authTokenEnabled: Bool? = nil, preferredMaintenanceWindow: String? = nil, preferredAvailabilityZone: String? = nil, replicationGroupId: String? = nil, snapshotRetentionLimit: Int32? = nil, cacheClusterStatus: String? = nil, pendingModifiedValues: PendingModifiedValues? = nil, cacheClusterCreateTime: TimeStamp? = nil, cacheNodes: CacheNodeList? = nil, securityGroups: [SecurityGroupMembership]? = nil, cacheSubnetGroupName: String? = nil, engine: String? = nil, cacheNodeType: String? = nil, clientDownloadLandingPage: String? = nil, cacheParameterGroup: CacheParameterGroupStatus? = nil, cacheSecurityGroups: CacheSecurityGroupMembershipList? = nil, cacheClusterId: String? = nil, atRestEncryptionEnabled: Bool? = nil, transitEncryptionEnabled: Bool? = nil) { self.numCacheNodes = numCacheNodes - self.cacheClusterStatus = cacheClusterStatus self.autoMinorVersionUpgrade = autoMinorVersionUpgrade - self.cacheNodes = cacheNodes + self.configurationEndpoint = configurationEndpoint self.snapshotWindow = snapshotWindow self.notificationConfiguration = notificationConfiguration self.engineVersion = engineVersion + self.authTokenEnabled = authTokenEnabled self.preferredMaintenanceWindow = preferredMaintenanceWindow - self.configurationEndpoint = configurationEndpoint self.preferredAvailabilityZone = preferredAvailabilityZone - self.securityGroups = securityGroups self.replicationGroupId = replicationGroupId + self.snapshotRetentionLimit = snapshotRetentionLimit + self.cacheClusterStatus = cacheClusterStatus + self.pendingModifiedValues = pendingModifiedValues + self.cacheClusterCreateTime = cacheClusterCreateTime + self.cacheNodes = cacheNodes + self.securityGroups = securityGroups + self.cacheSubnetGroupName = cacheSubnetGroupName + self.engine = engine + self.cacheNodeType = cacheNodeType + self.clientDownloadLandingPage = clientDownloadLandingPage self.cacheParameterGroup = cacheParameterGroup self.cacheSecurityGroups = cacheSecurityGroups - self.clientDownloadLandingPage = clientDownloadLandingPage self.cacheClusterId = cacheClusterId - self.cacheNodeType = cacheNodeType - self.engine = engine + self.atRestEncryptionEnabled = atRestEncryptionEnabled + self.transitEncryptionEnabled = transitEncryptionEnabled } private enum CodingKeys: String, CodingKey { - case pendingModifiedValues = "PendingModifiedValues" - case snapshotRetentionLimit = "SnapshotRetentionLimit" - case cacheSubnetGroupName = "CacheSubnetGroupName" - case cacheClusterCreateTime = "CacheClusterCreateTime" case numCacheNodes = "NumCacheNodes" - case cacheClusterStatus = "CacheClusterStatus" case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" - case cacheNodes = "CacheNodes" + case configurationEndpoint = "ConfigurationEndpoint" case snapshotWindow = "SnapshotWindow" case notificationConfiguration = "NotificationConfiguration" case engineVersion = "EngineVersion" + case authTokenEnabled = "AuthTokenEnabled" case preferredMaintenanceWindow = "PreferredMaintenanceWindow" - case configurationEndpoint = "ConfigurationEndpoint" case preferredAvailabilityZone = "PreferredAvailabilityZone" - case securityGroups = "SecurityGroups" case replicationGroupId = "ReplicationGroupId" + case snapshotRetentionLimit = "SnapshotRetentionLimit" + case cacheClusterStatus = "CacheClusterStatus" + case pendingModifiedValues = "PendingModifiedValues" + case cacheClusterCreateTime = "CacheClusterCreateTime" + case cacheNodes = "CacheNodes" + case securityGroups = "SecurityGroups" + case cacheSubnetGroupName = "CacheSubnetGroupName" + case engine = "Engine" + case cacheNodeType = "CacheNodeType" + case clientDownloadLandingPage = "ClientDownloadLandingPage" case cacheParameterGroup = "CacheParameterGroup" case cacheSecurityGroups = "CacheSecurityGroups" - case clientDownloadLandingPage = "ClientDownloadLandingPage" case cacheClusterId = "CacheClusterId" - case cacheNodeType = "CacheNodeType" - case engine = "Engine" + case atRestEncryptionEnabled = "AtRestEncryptionEnabled" + case transitEncryptionEnabled = "TransitEncryptionEnabled" } } public struct CacheSecurityGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "CacheSecurityGroups", required: false, type: .structure) ] @@ -1528,7 +1575,7 @@ extension Elasticache { } public struct NodeGroupMember: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReadEndpoint", required: false, type: .structure), AWSShapeMember(label: "CurrentRole", required: false, type: .string), AWSShapeMember(label: "PreferredAvailabilityZone", required: false, type: .string), @@ -1540,9 +1587,9 @@ extension Elasticache { public let currentRole: String? /// The name of the Availability Zone in which the node is located. public let preferredAvailabilityZone: String? - /// The ID of the node within its cache cluster. A node ID is a numeric identifier (0001, 0002, etc.). + /// The ID of the node within its cluster. A node ID is a numeric identifier (0001, 0002, etc.). public let cacheNodeId: String? - /// The ID of the cache cluster to which the node belongs. + /// The ID of the cluster to which the node belongs. public let cacheClusterId: String? public init(readEndpoint: Endpoint? = nil, currentRole: String? = nil, preferredAvailabilityZone: String? = nil, cacheNodeId: String? = nil, cacheClusterId: String? = nil) { @@ -1563,7 +1610,7 @@ extension Elasticache { } public struct PurchaseReservedCacheNodesOfferingMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedCacheNodeId", required: false, type: .string), AWSShapeMember(label: "CacheNodeCount", required: false, type: .integer), AWSShapeMember(label: "ReservedCacheNodesOfferingId", required: true, type: .string) @@ -1589,7 +1636,7 @@ extension Elasticache { } public struct DescribeSnapshotsListMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Snapshots", required: false, type: .structure) ] @@ -1609,12 +1656,28 @@ extension Elasticache { } } + public struct SlotMigration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProgressPercentage", required: false, type: .double) + ] + /// The percentage of the slot migration that is complete. + public let progressPercentage: Double? + + public init(progressPercentage: Double? = nil) { + self.progressPercentage = progressPercentage + } + + private enum CodingKeys: String, CodingKey { + case progressPercentage = "ProgressPercentage" + } + } + public struct CacheSecurityGroupMembership: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "CacheSecurityGroupName", required: false, type: .string) ] - /// The membership status in the cache security group. The status changes when a cache security group is modified, or when the cache security groups assigned to a cache cluster are modified. + /// The membership status in the cache security group. The status changes when a cache security group is modified, or when the cache security groups assigned to a cluster are modified. public let status: String? /// The name of the cache security group. public let cacheSecurityGroupName: String? @@ -1631,7 +1694,7 @@ extension Elasticache { } public struct ModifyCacheParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheParameterGroupName", required: true, type: .string), AWSShapeMember(label: "ParameterNameValues", required: true, type: .structure) ] @@ -1652,13 +1715,13 @@ extension Elasticache { } public struct AddTagsToResourceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .structure), AWSShapeMember(label: "ResourceName", required: true, type: .string) ] /// A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value. public let tags: TagList - /// The Amazon Resource Name (ARN) of the resource to which the tags are to be added, for example arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster or arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. + /// The Amazon Resource Name (ARN) of the resource to which the tags are to be added, for example arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster or arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot. ElastiCache resources are cluster and snapshot. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces. public let resourceName: String public init(tags: TagList, resourceName: String) { @@ -1673,7 +1736,7 @@ extension Elasticache { } public struct CacheSubnetGroups: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSubnetGroup", required: false, type: .list) ] public let cacheSubnetGroup: [CacheSubnetGroup]? @@ -1696,7 +1759,7 @@ extension Elasticache { } public struct CacheNodeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheNode", required: false, type: .list) ] public let cacheNode: [CacheNode]? @@ -1711,7 +1774,7 @@ extension Elasticache { } public struct RebootCacheClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheCluster", required: false, type: .structure) ] public let cacheCluster: CacheCluster? @@ -1726,7 +1789,7 @@ extension Elasticache { } public struct ModifyCacheSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSubnetGroupName", required: true, type: .string), AWSShapeMember(label: "SubnetIds", required: false, type: .structure), AWSShapeMember(label: "CacheSubnetGroupDescription", required: false, type: .string) @@ -1751,8 +1814,24 @@ extension Elasticache { } } + public struct ReshardingConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PreferredAvailabilityZones", required: false, type: .structure) + ] + /// A list of preferred availability zones for the nodes in this cluster. + public let preferredAvailabilityZones: AvailabilityZonesList? + + public init(preferredAvailabilityZones: AvailabilityZonesList? = nil) { + self.preferredAvailabilityZones = preferredAvailabilityZones + } + + private enum CodingKeys: String, CodingKey { + case preferredAvailabilityZones = "PreferredAvailabilityZones" + } + } + public struct ModifyCacheClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheCluster", required: false, type: .structure) ] public let cacheCluster: CacheCluster? @@ -1767,7 +1846,7 @@ extension Elasticache { } public struct ModifyCacheClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheNodeIdsToRemove", required: false, type: .structure), AWSShapeMember(label: "CacheSecurityGroupNames", required: false, type: .structure), AWSShapeMember(label: "NumCacheNodes", required: false, type: .integer), @@ -1786,39 +1865,39 @@ extension Elasticache { AWSShapeMember(label: "CacheClusterId", required: true, type: .string), AWSShapeMember(label: "AZMode", required: false, type: .enum) ] - /// A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, etc.). This parameter is only valid when NumCacheNodes is less than the existing number of cache nodes. The number of cache node IDs supplied in this parameter must match the difference between the existing number of cache nodes in the cluster or pending cache nodes, whichever is greater, and the value of NumCacheNodes in the request. For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number of cache nodes in this ModifyCacheCluser call is 5, you must list 2 (7 - 5) cache node IDs to remove. + /// A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, etc.). This parameter is only valid when NumCacheNodes is less than the existing number of cache nodes. The number of cache node IDs supplied in this parameter must match the difference between the existing number of cache nodes in the cluster or pending cache nodes, whichever is greater, and the value of NumCacheNodes in the request. For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number of cache nodes in this ModifyCacheCluster call is 5, you must list 2 (7 - 5) cache node IDs to remove. public let cacheNodeIdsToRemove: CacheNodeIdsList? - /// A list of cache security group names to authorize on this cache cluster. This change is asynchronously applied as soon as possible. You can use this parameter only with clusters that are created outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be "Default". + /// A list of cache security group names to authorize on this cluster. This change is asynchronously applied as soon as possible. You can use this parameter only with clusters that are created outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be "Default". public let cacheSecurityGroupNames: CacheSecurityGroupNameList? - /// The number of cache nodes that the cache cluster should have. If the value for NumCacheNodes is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), more nodes are added. If the value is less than the number of existing cache nodes, nodes are removed. If the value is equal to the number of current cache nodes, any pending add or remove requests are canceled. If you are removing cache nodes, you must use the CacheNodeIdsToRemove parameter to provide the IDs of the specific cache nodes to remove. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. Adding or removing Memcached cache nodes can be applied immediately or as a pending operation (see ApplyImmediately). A pending operation to modify the number of cache nodes in a cluster during its maintenance window, whether by adding or removing nodes in accordance with the scale out architecture, is not queued. The customer's latest request to add or remove nodes to the cluster overrides any previous pending operations to modify the number of cache nodes in the cluster. For example, a request to remove 2 nodes would override a previous pending operation to remove 3 nodes. Similarly, a request to add 2 nodes would override a previous pending operation to remove 3 nodes and vice versa. As Memcached cache nodes may now be provisioned in different Availability Zones with flexible cache node placement, a request to add nodes does not automatically override a previous pending operation to add nodes. The customer can modify the previous pending operation to add more nodes or explicitly cancel the pending request and retry the new request. To cancel pending operations to modify the number of cache nodes in a cluster, use the ModifyCacheCluster request and set NumCacheNodes equal to the number of cache nodes currently in the cache cluster. + /// The number of cache nodes that the cluster should have. If the value for NumCacheNodes is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), more nodes are added. If the value is less than the number of existing cache nodes, nodes are removed. If the value is equal to the number of current cache nodes, any pending add or remove requests are canceled. If you are removing cache nodes, you must use the CacheNodeIdsToRemove parameter to provide the IDs of the specific cache nodes to remove. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. Adding or removing Memcached cache nodes can be applied immediately or as a pending operation (see ApplyImmediately). A pending operation to modify the number of cache nodes in a cluster during its maintenance window, whether by adding or removing nodes in accordance with the scale out architecture, is not queued. The customer's latest request to add or remove nodes to the cluster overrides any previous pending operations to modify the number of cache nodes in the cluster. For example, a request to remove 2 nodes would override a previous pending operation to remove 3 nodes. Similarly, a request to add 2 nodes would override a previous pending operation to remove 3 nodes and vice versa. As Memcached cache nodes may now be provisioned in different Availability Zones with flexible cache node placement, a request to add nodes does not automatically override a previous pending operation to add nodes. The customer can modify the previous pending operation to add more nodes or explicitly cancel the pending request and retry the new request. To cancel pending operations to modify the number of cache nodes in a cluster, use the ModifyCacheCluster request and set NumCacheNodes equal to the number of cache nodes currently in the cluster. public let numCacheNodes: Int32? /// The status of the Amazon SNS notification topic. Notifications are sent only if the status is active. Valid values: active | inactive public let notificationTopicStatus: String? - /// Specifies the VPC Security Groups associated with the cache cluster. This parameter can be used only with clusters that are created in an Amazon Virtual Private Cloud (Amazon VPC). + /// Specifies the VPC Security Groups associated with the cluster. This parameter can be used only with clusters that are created in an Amazon Virtual Private Cloud (Amazon VPC). public let securityGroupIds: SecurityGroupIdsList? - /// If true, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the PreferredMaintenanceWindow setting for the cache cluster. If false, changes to the cache cluster are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first. If you perform a ModifyCacheCluster before a pending modification is applied, the pending modification is replaced by the newer modification. Valid values: true | false Default: false + /// If true, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the PreferredMaintenanceWindow setting for the cluster. If false, changes to the cluster are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first. If you perform a ModifyCacheCluster before a pending modification is applied, the pending modification is replaced by the newer modification. Valid values: true | false Default: false public let applyImmediately: Bool? /// This parameter is currently disabled. public let autoMinorVersionUpgrade: Bool? - /// The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are sent. The Amazon SNS topic owner must be same as the cache cluster owner. + /// The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are sent. The Amazon SNS topic owner must be same as the cluster owner. public let notificationTopicArn: String? - /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cache cluster. + /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. public let snapshotWindow: String? - /// The upgraded version of the cache engine to be run on the cache nodes. Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster and create it anew with the earlier engine version. + /// The upgraded version of the cache engine to be run on the cache nodes. Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster and create it anew with the earlier engine version. public let engineVersion: String? /// Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: sun mon tue wed thu fri sat Example: sun:23:00-mon:01:30 public let preferredMaintenanceWindow: String? - /// The name of the cache parameter group to apply to this cache cluster. This change is asynchronously applied as soon as possible for parameters when the ApplyImmediately parameter is specified as true for this request. + /// The name of the cache parameter group to apply to this cluster. This change is asynchronously applied as soon as possible for parameters when the ApplyImmediately parameter is specified as true for this request. public let cacheParameterGroupName: String? /// The list of Availability Zones where the new Memcached cache nodes are created. This parameter is only valid when NumCacheNodes in the request is greater than the sum of the number of active cache nodes and the number of cache nodes pending creation (which may be zero). The number of Availability Zones supplied in this list must match the cache nodes being added in this request. This option is only supported on Memcached clusters. Scenarios: Scenario 1: You have 3 active nodes and wish to add 2 nodes. Specify NumCacheNodes=5 (3 + 2) and optionally specify two Availability Zones for the two new nodes. Scenario 2: You have 3 active nodes and 2 nodes pending creation (from the scenario 1 call) and want to add 1 more node. Specify NumCacheNodes=6 ((3 + 2) + 1) and optionally specify an Availability Zone for the new node. Scenario 3: You want to cancel all pending operations. Specify NumCacheNodes=3 to cancel all pending operations. The Availability Zone placement of nodes pending creation cannot be modified. If you wish to cancel any nodes pending creation, add 0 nodes by setting NumCacheNodes to the number of current nodes. If cross-az is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes can be located in different Availability Zones. For guidance on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of Cache Node Considerations for Memcached. Impact of new add/remove requests upon pending requests Scenario-1 Pending Action: Delete New Request: Delete Result: The new delete, pending or immediate, replaces the pending delete. Scenario-2 Pending Action: Delete New Request: Create Result: The new create, pending or immediate, replaces the pending delete. Scenario-3 Pending Action: Create New Request: Delete Result: The new delete, pending or immediate, replaces the pending create. Scenario-4 Pending Action: Create New Request: Create Result: The new create is added to the pending create. Important: If the new create request is Apply Immediately - Yes, all creates are performed immediately. If the new create request is Apply Immediately - No, all creates are pending. public let newAvailabilityZones: PreferredAvailabilityZoneList? - /// A valid cache node type that you want to scale this cache cluster up to. + /// A valid cache node type that you want to scale this cluster up to. public let cacheNodeType: String? - /// The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. + /// The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. public let snapshotRetentionLimit: Int32? - /// The cache cluster identifier. This value is stored as a lowercase string. + /// The cluster identifier. This value is stored as a lowercase string. public let cacheClusterId: String - /// Specifies whether the new nodes in this Memcached cache cluster are all created in a single Availability Zone or created across multiple Availability Zones. Valid values: single-az | cross-az. This option is only supported for Memcached cache clusters. You cannot specify single-az if the Memcached cache cluster already has cache nodes in different Availability Zones. If cross-az is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes are located in different Availability Zones. For instructions on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of Cache Node Considerations for Memcached. + /// Specifies whether the new nodes in this Memcached cluster are all created in a single Availability Zone or created across multiple Availability Zones. Valid values: single-az | cross-az. This option is only supported for Memcached clusters. You cannot specify single-az if the Memcached cluster already has cache nodes in different Availability Zones. If cross-az is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes are located in different Availability Zones. For instructions on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of Cache Node Considerations for Memcached. public let aZMode: AZMode? public init(cacheNodeIdsToRemove: CacheNodeIdsList? = nil, cacheSecurityGroupNames: CacheSecurityGroupNameList? = nil, numCacheNodes: Int32? = nil, notificationTopicStatus: String? = nil, securityGroupIds: SecurityGroupIdsList? = nil, applyImmediately: Bool? = nil, autoMinorVersionUpgrade: Bool? = nil, notificationTopicArn: String? = nil, snapshotWindow: String? = nil, engineVersion: String? = nil, preferredMaintenanceWindow: String? = nil, cacheParameterGroupName: String? = nil, newAvailabilityZones: PreferredAvailabilityZoneList? = nil, cacheNodeType: String? = nil, snapshotRetentionLimit: Int32? = nil, cacheClusterId: String, aZMode: AZMode? = nil) { @@ -1863,7 +1942,7 @@ extension Elasticache { } public struct DescribeEngineDefaultParametersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "CacheParameterGroupFamily", required: true, type: .string), AWSShapeMember(label: "MaxRecords", required: false, type: .integer) @@ -1889,7 +1968,7 @@ extension Elasticache { } public struct CopySnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetSnapshotName", required: true, type: .string), AWSShapeMember(label: "TargetBucket", required: false, type: .string), AWSShapeMember(label: "SourceSnapshotName", required: true, type: .string) @@ -1915,11 +1994,11 @@ extension Elasticache { } public struct ListAllowedNodeTypeModificationsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheClusterId", required: false, type: .string), AWSShapeMember(label: "ReplicationGroupId", required: false, type: .string) ] - /// The name of the cache cluster you want to scale up to a larger node instanced type. ElastiCache uses the cluster id to identify the current node type of this cluster and from that to create a list of node types you can scale up to. You must provide a value for either the CacheClusterId or the ReplicationGroupId. + /// The name of the cluster you want to scale up to a larger node instanced type. ElastiCache uses the cluster id to identify the current node type of this cluster and from that to create a list of node types you can scale up to. You must provide a value for either the CacheClusterId or the ReplicationGroupId. public let cacheClusterId: String? /// The name of the replication group want to scale up to a larger node type. ElastiCache uses the replication group id to identify the current node type being used by this replication group, and from that to create a list of node types you can scale up to. You must provide a value for either the CacheClusterId or the ReplicationGroupId. public let replicationGroupId: String? @@ -1936,7 +2015,7 @@ extension Elasticache { } public struct RecurringChargeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecurringCharge", required: false, type: .list) ] public let recurringCharge: [RecurringCharge]? @@ -1951,7 +2030,7 @@ extension Elasticache { } public struct EngineDefaults: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheParameterGroupFamily", required: false, type: .string), AWSShapeMember(label: "Parameters", required: false, type: .structure), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -1982,7 +2061,7 @@ extension Elasticache { } public struct NotificationConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicStatus", required: false, type: .string), AWSShapeMember(label: "TopicArn", required: false, type: .string) ] @@ -2003,7 +2082,7 @@ extension Elasticache { } public struct DescribeReservedCacheNodesOfferingsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "CacheNodeType", required: false, type: .string), @@ -2016,7 +2095,7 @@ extension Elasticache { public let maxRecords: Int32? /// An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - /// The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type. Valid node types are as follows: General purpose: Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: cache.c1.xlarge Memory optimized: Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. + /// The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. General purpose: Current generation: T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: (not recommended) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: Previous generation: (not recommended) C1 node types: cache.c1.xlarge Memory optimized: Current generation: R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: (not recommended) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances. Redis (cluster mode enabled): Backup/restore is not supported on T1 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. public let cacheNodeType: String? /// Duration filter value, specified in years or seconds. Use this parameter to show only reservations for a given duration. Valid Values: 1 | 3 | 31536000 | 94608000 public let duration: String? @@ -2048,8 +2127,24 @@ extension Elasticache { } } + public struct ReshardingStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SlotMigration", required: false, type: .structure) + ] + /// Represents the progress of an online resharding operation. + public let slotMigration: SlotMigration? + + public init(slotMigration: SlotMigration? = nil) { + self.slotMigration = slotMigration + } + + private enum CodingKeys: String, CodingKey { + case slotMigration = "SlotMigration" + } + } + public struct CreateCacheParameterGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheParameterGroup", required: false, type: .structure) ] public let cacheParameterGroup: CacheParameterGroup? @@ -2064,7 +2159,7 @@ extension Elasticache { } public struct Snapshot: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Port", required: false, type: .integer), AWSShapeMember(label: "CacheClusterId", required: false, type: .string), AWSShapeMember(label: "CacheClusterCreateTime", required: false, type: .timestamp), @@ -2090,17 +2185,17 @@ extension Elasticache { AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), AWSShapeMember(label: "SnapshotRetentionLimit", required: false, type: .integer) ] - /// The port number used by each cache nodes in the source cache cluster. + /// The port number used by each cache nodes in the source cluster. public let port: Int32? - /// The user-supplied identifier of the source cache cluster. + /// The user-supplied identifier of the source cluster. public let cacheClusterId: String? - /// The date and time when the source cache cluster was created. + /// The date and time when the source cluster was created. public let cacheClusterCreateTime: TimeStamp? - /// The number of cache nodes in the source cache cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. + /// The number of cache nodes in the source cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. public let numCacheNodes: Int32? - /// Indicates the status of Multi-AZ for the source replication group. ElastiCache Multi-AZ replication groups are not supported on: Redis versions earlier than 2.8.6. Redis (cluster mode disabled):T1 and T2 cache node types. Redis (cluster mode enabled): T1 node types. + /// Indicates the status of Multi-AZ with automatic failover for the source Redis replication group. Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on: Redis versions earlier than 2.8.6. Redis (cluster mode disabled): T1 and T2 cache node types. Redis (cluster mode enabled): T1 node types. public let automaticFailover: AutomaticFailoverStatus? - /// The Amazon Resource Name (ARN) for the topic used by the source cache cluster for publishing notifications. + /// The Amazon Resource Name (ARN) for the topic used by the source cluster for publishing notifications. public let topicArn: String? /// The status of the snapshot. Valid values: creating | available | restoring | copying | deleting. public let snapshotStatus: String? @@ -2110,13 +2205,13 @@ extension Elasticache { public let snapshotName: String? /// This parameter is currently disabled. public let autoMinorVersionUpgrade: Bool? - /// The daily time range during which ElastiCache takes daily snapshots of the source cache cluster. + /// The daily time range during which ElastiCache takes daily snapshots of the source cluster. public let snapshotWindow: String? - /// The version of the cache engine version that is used by the source cache cluster. + /// The version of the cache engine version that is used by the source cluster. public let engineVersion: String? - /// The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cache cluster. + /// The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cluster. public let vpcId: String? - /// The cache parameter group that is associated with the source cache cluster. + /// The cache parameter group that is associated with the source cluster. public let cacheParameterGroupName: String? /// The unique identifier of the source replication group. public let replicationGroupId: String? @@ -2124,19 +2219,19 @@ extension Elasticache { public let numNodeGroups: Int32? /// A description of the source replication group. public let replicationGroupDescription: String? - /// The name of the Availability Zone in which the source cache cluster is located. + /// The name of the Availability Zone in which the source cluster is located. public let preferredAvailabilityZone: String? - /// The name of the compute and memory capacity node type for the source cache cluster. Valid node types are as follows: General purpose: Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: cache.c1.xlarge Memory optimized: Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. + /// The name of the compute and memory capacity node type for the source cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. General purpose: Current generation: T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: (not recommended) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: Previous generation: (not recommended) C1 node types: cache.c1.xlarge Memory optimized: Current generation: R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: (not recommended) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances. Redis (cluster mode enabled): Backup/restore is not supported on T1 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. public let cacheNodeType: String? - /// A list of the cache nodes in the source cache cluster. + /// A list of the cache nodes in the source cluster. public let nodeSnapshots: NodeSnapshotList? - /// The name of the cache engine (memcached or redis) used by the source cache cluster. + /// The name of the cache engine (memcached or redis) used by the source cluster. public let engine: String? - /// The name of the cache subnet group associated with the source cache cluster. + /// The name of the cache subnet group associated with the source cluster. public let cacheSubnetGroupName: String? /// Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: sun mon tue wed thu fri sat Example: sun:23:00-mon:01:30 public let preferredMaintenanceWindow: String? - /// For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it. For manual snapshots, this field reflects the SnapshotRetentionLimit for the source cache cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the DeleteSnapshot operation. Important If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. + /// For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it. For manual snapshots, this field reflects the SnapshotRetentionLimit for the source cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the DeleteSnapshot operation. Important If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. public let snapshotRetentionLimit: Int32? public init(port: Int32? = nil, cacheClusterId: String? = nil, cacheClusterCreateTime: TimeStamp? = nil, numCacheNodes: Int32? = nil, automaticFailover: AutomaticFailoverStatus? = nil, topicArn: String? = nil, snapshotStatus: String? = nil, snapshotSource: String? = nil, snapshotName: String? = nil, autoMinorVersionUpgrade: Bool? = nil, snapshotWindow: String? = nil, engineVersion: String? = nil, vpcId: String? = nil, cacheParameterGroupName: String? = nil, replicationGroupId: String? = nil, numNodeGroups: Int32? = nil, replicationGroupDescription: String? = nil, preferredAvailabilityZone: String? = nil, cacheNodeType: String? = nil, nodeSnapshots: NodeSnapshotList? = nil, engine: String? = nil, cacheSubnetGroupName: String? = nil, preferredMaintenanceWindow: String? = nil, snapshotRetentionLimit: Int32? = nil) { @@ -2195,13 +2290,13 @@ extension Elasticache { } public struct DeleteCacheClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheClusterId", required: true, type: .string), AWSShapeMember(label: "FinalSnapshotIdentifier", required: false, type: .string) ] - /// The cache cluster identifier for the cluster to be deleted. This parameter is not case sensitive. + /// The cluster identifier for the cluster to be deleted. This parameter is not case sensitive. public let cacheClusterId: String - /// The user-supplied name of a final cache cluster snapshot. This is the unique name that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the cache cluster immediately afterward. + /// The user-supplied name of a final cluster snapshot. This is the unique name that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the cluster immediately afterward. public let finalSnapshotIdentifier: String? public init(cacheClusterId: String, finalSnapshotIdentifier: String? = nil) { @@ -2216,10 +2311,10 @@ extension Elasticache { } public struct AllowedNodeTypeModificationsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScaleUpModifications", required: false, type: .list) ] - /// A string list, each element of which specifies a cache node type which you can use to scale your cache cluster or replication group. When scaling up a Redis cluster or replication group using ModifyCacheCluster or ModifyReplicationGroup, use a value from this list for the CacheNodeType parameter. + /// A string list, each element of which specifies a cache node type which you can use to scale your cluster or replication group. When scaling up a Redis cluster or replication group using ModifyCacheCluster or ModifyReplicationGroup, use a value from this list for the CacheNodeType parameter. public let scaleUpModifications: [String]? public init(scaleUpModifications: [String]? = nil) { @@ -2232,7 +2327,7 @@ extension Elasticache { } public struct DeleteSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Snapshot", required: false, type: .structure) ] public let snapshot: Snapshot? @@ -2247,7 +2342,7 @@ extension Elasticache { } public struct TagList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tag", required: false, type: .list) ] public let tag: [Tag]? @@ -2261,29 +2356,49 @@ extension Elasticache { } } + public struct ModifyReplicationGroupShardConfigurationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReplicationGroup", required: false, type: .structure) + ] + public let replicationGroup: ReplicationGroup? + + public init(replicationGroup: ReplicationGroup? = nil) { + self.replicationGroup = replicationGroup + } + + private enum CodingKeys: String, CodingKey { + case replicationGroup = "ReplicationGroup" + } + } + public struct ReplicationGroupPendingModifiedValues: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Resharding", required: false, type: .structure), AWSShapeMember(label: "PrimaryClusterId", required: false, type: .string), AWSShapeMember(label: "AutomaticFailoverStatus", required: false, type: .enum) ] + /// The status of an online resharding operation. + public let resharding: ReshardingStatus? /// The primary cluster ID that is applied immediately (if --apply-immediately was specified), or during the next maintenance window. public let primaryClusterId: String? - /// Indicates the status of Multi-AZ for this Redis replication group. ElastiCache Multi-AZ replication groups are not supported on: Redis versions earlier than 2.8.6. Redis (cluster mode disabled):T1 and T2 cache node types. Redis (cluster mode enabled): T1 node types. + /// Indicates the status of Multi-AZ with automatic failover for this Redis replication group. Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on: Redis versions earlier than 2.8.6. Redis (cluster mode disabled): T1 and T2 cache node types. Redis (cluster mode enabled): T1 node types. public let automaticFailoverStatus: PendingAutomaticFailoverStatus? - public init(primaryClusterId: String? = nil, automaticFailoverStatus: PendingAutomaticFailoverStatus? = nil) { + public init(resharding: ReshardingStatus? = nil, primaryClusterId: String? = nil, automaticFailoverStatus: PendingAutomaticFailoverStatus? = nil) { + self.resharding = resharding self.primaryClusterId = primaryClusterId self.automaticFailoverStatus = automaticFailoverStatus } private enum CodingKeys: String, CodingKey { + case resharding = "Resharding" case primaryClusterId = "PrimaryClusterId" case automaticFailoverStatus = "AutomaticFailoverStatus" } } public struct ClusterIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterId", required: false, type: .list) ] public let clusterId: [String]? @@ -2298,7 +2413,7 @@ extension Elasticache { } public struct ReplicationGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ReplicationGroups", required: false, type: .structure) ] @@ -2319,7 +2434,7 @@ extension Elasticache { } public struct DescribeCacheSubnetGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSubnetGroupName", required: false, type: .string), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string) @@ -2345,7 +2460,7 @@ extension Elasticache { } public struct ReservedCacheNodesOfferingMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ReservedCacheNodesOfferings", required: false, type: .structure) ] @@ -2366,7 +2481,7 @@ extension Elasticache { } public struct CacheNodeTypeSpecificParametersList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheNodeTypeSpecificParameter", required: false, type: .list) ] public let cacheNodeTypeSpecificParameter: [CacheNodeTypeSpecificParameter]? @@ -2381,7 +2496,7 @@ extension Elasticache { } public struct NodeGroupConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Slots", required: false, type: .string), AWSShapeMember(label: "ReplicaAvailabilityZones", required: false, type: .structure), AWSShapeMember(label: "PrimaryAvailabilityZone", required: false, type: .string), @@ -2412,7 +2527,7 @@ extension Elasticache { } public struct CacheParameterGroupNameMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheParameterGroupName", required: false, type: .string) ] /// The name of the cache parameter group. @@ -2427,8 +2542,23 @@ extension Elasticache { } } + public struct NodeGroupsToRemoveList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NodeGroupToRemove", required: false, type: .list) + ] + public let nodeGroupToRemove: [String]? + + public init(nodeGroupToRemove: [String]? = nil) { + self.nodeGroupToRemove = nodeGroupToRemove + } + + private enum CodingKeys: String, CodingKey { + case nodeGroupToRemove = "NodeGroupToRemove" + } + } + public struct CreateSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Snapshot", required: false, type: .structure) ] public let snapshot: Snapshot? @@ -2443,7 +2573,7 @@ extension Elasticache { } public struct CreateCacheSecurityGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSecurityGroupName", required: true, type: .string), AWSShapeMember(label: "Description", required: true, type: .string) ] @@ -2473,7 +2603,7 @@ extension Elasticache { } public struct DescribeReservedCacheNodesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "CacheNodeType", required: false, type: .string), @@ -2487,7 +2617,7 @@ extension Elasticache { public let maxRecords: Int32? /// An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - /// The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type. Valid node types are as follows: General purpose: Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: cache.c1.xlarge Memory optimized: Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. + /// The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. General purpose: Current generation: T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: (not recommended) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: Previous generation: (not recommended) C1 node types: cache.c1.xlarge Memory optimized: Current generation: R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: (not recommended) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances. Redis (cluster mode enabled): Backup/restore is not supported on T1 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. public let cacheNodeType: String? /// The reserved cache node identifier filter value. Use this parameter to show only the reservation that matches the specified reservation ID. public let reservedCacheNodeId: String? @@ -2530,7 +2660,7 @@ extension Elasticache { } public struct DescribeCacheEngineVersionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "CacheParameterGroupFamily", required: false, type: .string), AWSShapeMember(label: "Engine", required: false, type: .string), @@ -2571,7 +2701,7 @@ extension Elasticache { } public struct ModifyCacheSubnetGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSubnetGroup", required: false, type: .structure) ] public let cacheSubnetGroup: CacheSubnetGroup? @@ -2586,7 +2716,7 @@ extension Elasticache { } public struct NodeSnapshot: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeGroupConfiguration", required: false, type: .structure), AWSShapeMember(label: "CacheNodeId", required: false, type: .string), AWSShapeMember(label: "NodeGroupId", required: false, type: .string), @@ -2597,15 +2727,15 @@ extension Elasticache { ] /// The configuration for the source node group (shard). public let nodeGroupConfiguration: NodeGroupConfiguration? - /// The cache node identifier for the node in the source cache cluster. + /// The cache node identifier for the node in the source cluster. public let cacheNodeId: String? /// A unique identifier for the source node group (shard). public let nodeGroupId: String? /// The date and time when the source node's metadata and cache data set was obtained for the snapshot. public let snapshotCreateTime: TimeStamp? - /// The date and time when the cache node was created in the source cache cluster. + /// The date and time when the cache node was created in the source cluster. public let cacheNodeCreateTime: TimeStamp? - /// A unique identifier for the source cache cluster. + /// A unique identifier for the source cluster. public let cacheClusterId: String? /// The size of the cache on the source cache node. public let cacheSize: String? @@ -2632,7 +2762,8 @@ extension Elasticache { } public struct CreateReplicationGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AuthToken", required: false, type: .string), AWSShapeMember(label: "SnapshotArns", required: false, type: .structure), AWSShapeMember(label: "CacheSecurityGroupNames", required: false, type: .structure), AWSShapeMember(label: "ReplicasPerNodeGroup", required: false, type: .integer), @@ -2657,10 +2788,13 @@ extension Elasticache { AWSShapeMember(label: "ReplicationGroupDescription", required: true, type: .string), AWSShapeMember(label: "Engine", required: false, type: .string), AWSShapeMember(label: "CacheNodeType", required: false, type: .string), - AWSShapeMember(label: "AuthToken", required: false, type: .string), - AWSShapeMember(label: "Port", required: false, type: .integer) + AWSShapeMember(label: "AtRestEncryptionEnabled", required: false, type: .boolean), + AWSShapeMember(label: "Port", required: false, type: .integer), + AWSShapeMember(label: "TransitEncryptionEnabled", required: false, type: .boolean) ] - /// A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new replication group. The Amazon S3 object name in the ARN cannot contain any commas. The new replication group will have the number of node groups (console: shards) specified by the parameter NumNodeGroups or the number of node groups configured by NodeGroupConfiguration regardless of the number of ARNs specified here. This parameter is only valid if the Engine parameter is redis. Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb + /// Reserved parameter. The password used to access a password protected server. This parameter is valid only if: The parameter TransitEncryptionEnabled was set to true when the cluster was created. The line requirepass was added to the database configuration file. Password constraints: Must be only printable ASCII characters. Must be at least 16 characters and no more than 128 characters in length. Cannot contain any of the following characters: '/', '"', or '@'. For more information, see AUTH password at http://redis.io/commands/AUTH. + public let authToken: String? + /// A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new replication group. The Amazon S3 object name in the ARN cannot contain any commas. The new replication group will have the number of node groups (console: shards) specified by the parameter NumNodeGroups or the number of node groups configured by NodeGroupConfiguration regardless of the number of ARNs specified here. Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb public let snapshotArns: SnapshotArnsList? /// A list of cache security group names to associate with this replication group. public let cacheSecurityGroupNames: CacheSecurityGroupNameList? @@ -2670,31 +2804,31 @@ extension Elasticache { public let autoMinorVersionUpgrade: Bool? /// A list of node group (shard) configuration options. Each node group (shard) configuration has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount. If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group, you can use this parameter to individually configure each node group (shard), or you can omit this parameter. public let nodeGroupConfiguration: NodeGroupConfigurationList? - /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: 05:00-09:00 If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. This parameter is only valid if the Engine parameter is redis. + /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: 05:00-09:00 If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. public let snapshotWindow: String? - /// The version number of the cache engine to be used for the cache clusters in this replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version) in the ElastiCache User Guide, but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster or replication group and create it anew with the earlier engine version. + /// The version number of the cache engine to be used for the clusters in this replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation. Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version) in the ElastiCache User Guide, but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. public let engineVersion: String? /// The replication group identifier. This parameter is stored as a lowercase string. Constraints: A name must contain from 1 to 20 alphanumeric characters or hyphens. The first character must be a letter. A name cannot end with a hyphen or contain two consecutive hyphens. public let replicationGroupId: String - /// The identifier of the cache cluster that serves as the primary for this replication group. This cache cluster must already exist and have a status of available. This parameter is not required if NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup is specified. + /// The identifier of the cluster that serves as the primary for this replication group. This cluster must already exist and have a status of available. This parameter is not required if NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup is specified. public let primaryClusterId: String? - /// Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: sun mon tue wed thu fri sat Example: sun:23:00-mon:01:30 + /// Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: sun mon tue wed thu fri sat Example: sun:23:00-mon:01:30 public let preferredMaintenanceWindow: String? - /// Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails. If true, Multi-AZ is enabled for this replication group. If false, Multi-AZ is disabled for this replication group. AutomaticFailoverEnabled must be enabled for Redis (cluster mode enabled) replication groups. Default: false ElastiCache Multi-AZ replication groups is not supported on: Redis versions earlier than 2.8.6. Redis (cluster mode disabled): T1 and T2 node types. Redis (cluster mode enabled): T2 node types. + /// Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails. If true, Multi-AZ is enabled for this replication group. If false, Multi-AZ is disabled for this replication group. AutomaticFailoverEnabled must be enabled for Redis (cluster mode enabled) replication groups. Default: false Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on: Redis versions earlier than 2.8.6. Redis (cluster mode disabled): T1 and T2 cache node types. Redis (cluster mode enabled): T1 node types. public let automaticFailoverEnabled: Bool? - /// The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted. This parameter is only valid if the Engine parameter is redis. Default: 0 (i.e., automatic backups are disabled for this cache cluster). + /// The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted. Default: 0 (i.e., automatic backups are disabled for this cluster). public let snapshotRetentionLimit: Int32? - /// A list of EC2 Availability Zones in which the replication group's cache clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list. This parameter is not used if there is more than one node group (shard). You should use NodeGroupConfiguration instead. If you are creating your replication group in an Amazon VPC (recommended), you can only locate cache clusters in Availability Zones associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of NumCacheClusters. Default: system chosen Availability Zones. + /// A list of EC2 Availability Zones in which the replication group's clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list. This parameter is not used if there is more than one node group (shard). You should use NodeGroupConfiguration instead. If you are creating your replication group in an Amazon VPC (recommended), you can only locate clusters in Availability Zones associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of NumCacheClusters. Default: system chosen Availability Zones. public let preferredCacheClusterAZs: AvailabilityZonesList? - /// A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value. + /// A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key does not have to be accompanied by a tag value. public let tags: TagList? /// The number of clusters this replication group initially has. This parameter is not used if there is more than one node group (shard). You should use ReplicasPerNodeGroup instead. If AutomaticFailoverEnabled is true, the value of this parameter must be at least 2. If AutomaticFailoverEnabled is false you can omit this parameter (it will default to 1), or you can explicitly set it to a value between 2 and 6. The maximum permitted value for NumCacheClusters is 6 (primary plus 5 replicas). public let numCacheClusters: Int32? /// One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud (Amazon VPC). public let securityGroupIds: SecurityGroupIdsList? - /// The name of a snapshot from which to restore data into the new replication group. The snapshot status changes to restoring while the new replication group is being created. This parameter is only valid if the Engine parameter is redis. + /// The name of a snapshot from which to restore data into the new replication group. The snapshot status changes to restoring while the new replication group is being created. public let snapshotName: String? - /// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. The Amazon SNS topic owner must be the same as the cache cluster owner. + /// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. The Amazon SNS topic owner must be the same as the cluster owner. public let notificationTopicArn: String? /// The name of the cache subnet group to be used for the replication group. If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see Subnets and Subnet Groups. public let cacheSubnetGroupName: String? @@ -2704,16 +2838,19 @@ extension Elasticache { public let numNodeGroups: Int32? /// A user-created description for the replication group. public let replicationGroupDescription: String - /// The name of the cache engine to be used for the cache clusters in this replication group. + /// The name of the cache engine to be used for the clusters in this replication group. public let engine: String? - /// The compute and memory capacity of the nodes in the node group (shard). Valid node types are as follows: General purpose: Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge, cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: cache.c1.xlarge Memory optimized: Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. + /// The compute and memory capacity of the nodes in the node group (shard). The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. General purpose: Current generation: T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge Previous generation: (not recommended) T1 node types: cache.t1.micro M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge Compute optimized: Previous generation: (not recommended) C1 node types: cache.c1.xlarge Memory optimized: Current generation: R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge Previous generation: (not recommended) M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge Notes: All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC). Redis (cluster mode disabled): Redis backup/restore is not supported on T1 and T2 instances. Redis (cluster mode enabled): Backup/restore is not supported on T1 instances. Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances. For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis. public let cacheNodeType: String? - /// Reserved parameter. The password used to access a password protected server. Password constraints: Must be only printable ASCII characters. Must be at least 16 characters and no more than 128 characters in length. Cannot contain any of the following characters: '/', '"', or "@". For more information, see AUTH password at Redis. - public let authToken: String? + /// A flag that enables encryption at rest when set to true. You cannot modify the value of AtRestEncryptionEnabled after the replication group is created. To enable encryption at rest on a replication group you must set AtRestEncryptionEnabled to true when you create the replication group. This parameter is valid only if the Engine parameter is redis and the cluster is being created in an Amazon VPC. Default: false + public let atRestEncryptionEnabled: Bool? /// The port number on which each member of the replication group accepts connections. public let port: Int32? + /// A flag that enables in-transit encryption when set to true. You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster. This parameter is valid only if the Engine parameter is redis, the EngineVersion parameter is 3.2.4 or later, and the cluster is being created in an Amazon VPC. If you enable in-transit encryption, you must also specify a value for CacheSubnetGroup. Default: false + public let transitEncryptionEnabled: Bool? - public init(snapshotArns: SnapshotArnsList? = nil, cacheSecurityGroupNames: CacheSecurityGroupNameList? = nil, replicasPerNodeGroup: Int32? = nil, autoMinorVersionUpgrade: Bool? = nil, nodeGroupConfiguration: NodeGroupConfigurationList? = nil, snapshotWindow: String? = nil, engineVersion: String? = nil, replicationGroupId: String, primaryClusterId: String? = nil, preferredMaintenanceWindow: String? = nil, automaticFailoverEnabled: Bool? = nil, snapshotRetentionLimit: Int32? = nil, preferredCacheClusterAZs: AvailabilityZonesList? = nil, tags: TagList? = nil, numCacheClusters: Int32? = nil, securityGroupIds: SecurityGroupIdsList? = nil, snapshotName: String? = nil, notificationTopicArn: String? = nil, cacheSubnetGroupName: String? = nil, cacheParameterGroupName: String? = nil, numNodeGroups: Int32? = nil, replicationGroupDescription: String, engine: String? = nil, cacheNodeType: String? = nil, authToken: String? = nil, port: Int32? = nil) { + public init(authToken: String? = nil, snapshotArns: SnapshotArnsList? = nil, cacheSecurityGroupNames: CacheSecurityGroupNameList? = nil, replicasPerNodeGroup: Int32? = nil, autoMinorVersionUpgrade: Bool? = nil, nodeGroupConfiguration: NodeGroupConfigurationList? = nil, snapshotWindow: String? = nil, engineVersion: String? = nil, replicationGroupId: String, primaryClusterId: String? = nil, preferredMaintenanceWindow: String? = nil, automaticFailoverEnabled: Bool? = nil, snapshotRetentionLimit: Int32? = nil, preferredCacheClusterAZs: AvailabilityZonesList? = nil, tags: TagList? = nil, numCacheClusters: Int32? = nil, securityGroupIds: SecurityGroupIdsList? = nil, snapshotName: String? = nil, notificationTopicArn: String? = nil, cacheSubnetGroupName: String? = nil, cacheParameterGroupName: String? = nil, numNodeGroups: Int32? = nil, replicationGroupDescription: String, engine: String? = nil, cacheNodeType: String? = nil, atRestEncryptionEnabled: Bool? = nil, port: Int32? = nil, transitEncryptionEnabled: Bool? = nil) { + self.authToken = authToken self.snapshotArns = snapshotArns self.cacheSecurityGroupNames = cacheSecurityGroupNames self.replicasPerNodeGroup = replicasPerNodeGroup @@ -2738,11 +2875,13 @@ extension Elasticache { self.replicationGroupDescription = replicationGroupDescription self.engine = engine self.cacheNodeType = cacheNodeType - self.authToken = authToken + self.atRestEncryptionEnabled = atRestEncryptionEnabled self.port = port + self.transitEncryptionEnabled = transitEncryptionEnabled } private enum CodingKeys: String, CodingKey { + case authToken = "AuthToken" case snapshotArns = "SnapshotArns" case cacheSecurityGroupNames = "CacheSecurityGroupNames" case replicasPerNodeGroup = "ReplicasPerNodeGroup" @@ -2767,13 +2906,14 @@ extension Elasticache { case replicationGroupDescription = "ReplicationGroupDescription" case engine = "Engine" case cacheNodeType = "CacheNodeType" - case authToken = "AuthToken" + case atRestEncryptionEnabled = "AtRestEncryptionEnabled" case port = "Port" + case transitEncryptionEnabled = "TransitEncryptionEnabled" } } public struct CacheEngineVersionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "CacheEngineVersions", required: false, type: .structure) ] @@ -2794,7 +2934,7 @@ extension Elasticache { } public struct CacheSecurityGroups: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSecurityGroup", required: false, type: .list) ] public let cacheSecurityGroup: [CacheSecurityGroup]? @@ -2809,13 +2949,13 @@ extension Elasticache { } public struct SecurityGroupMembership: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroupId", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .string) ] /// The identifier of the cache security group. public let securityGroupId: String? - /// The status of the cache security group membership. The status changes whenever a cache security group is modified, or when the cache security groups assigned to a cache cluster are modified. + /// The status of the cache security group membership. The status changes whenever a cache security group is modified, or when the cache security groups assigned to a cluster are modified. public let status: String? public init(securityGroupId: String? = nil, status: String? = nil) { @@ -2830,7 +2970,7 @@ extension Elasticache { } public struct DescribeCacheClustersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "ShowCacheClustersNotInReplicationGroups", required: false, type: .boolean), AWSShapeMember(label: "ShowCacheNodeInfo", required: false, type: .boolean), @@ -2845,7 +2985,7 @@ extension Elasticache { public let showCacheNodeInfo: Bool? /// An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - /// The user-supplied cluster identifier. If this parameter is specified, only information about that specific cache cluster is returned. This parameter isn't case sensitive. + /// The user-supplied cluster identifier. If this parameter is specified, only information about that specific cluster is returned. This parameter isn't case sensitive. public let cacheClusterId: String? public init(maxRecords: Int32? = nil, showCacheClustersNotInReplicationGroups: Bool? = nil, showCacheNodeInfo: Bool? = nil, marker: String? = nil, cacheClusterId: String? = nil) { @@ -2866,7 +3006,7 @@ extension Elasticache { } public struct CacheSubnetGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subnets", required: false, type: .structure), AWSShapeMember(label: "CacheSubnetGroupDescription", required: false, type: .string), AWSShapeMember(label: "VpcId", required: false, type: .string), @@ -2897,13 +3037,13 @@ extension Elasticache { } public struct RebootCacheClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheClusterId", required: true, type: .string), AWSShapeMember(label: "CacheNodeIdsToReboot", required: true, type: .structure) ] - /// The cache cluster identifier. This parameter is stored as a lowercase string. + /// The cluster identifier. This parameter is stored as a lowercase string. public let cacheClusterId: String - /// A list of cache node IDs to reboot. A node ID is a numeric identifier (0001, 0002, etc.). To reboot an entire cache cluster, specify all of the cache node IDs. + /// A list of cache node IDs to reboot. A node ID is a numeric identifier (0001, 0002, etc.). To reboot an entire cluster, specify all of the cache node IDs. public let cacheNodeIdsToReboot: CacheNodeIdsList public init(cacheClusterId: String, cacheNodeIdsToReboot: CacheNodeIdsList) { @@ -2918,7 +3058,7 @@ extension Elasticache { } public struct AuthorizeCacheSecurityGroupIngressMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EC2SecurityGroupOwnerId", required: true, type: .string), AWSShapeMember(label: "CacheSecurityGroupName", required: true, type: .string), AWSShapeMember(label: "EC2SecurityGroupName", required: true, type: .string) @@ -2944,7 +3084,7 @@ extension Elasticache { } public struct CacheSecurityGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSecurityGroupName", required: false, type: .string), AWSShapeMember(label: "EC2SecurityGroups", required: false, type: .structure), AWSShapeMember(label: "OwnerId", required: false, type: .string), @@ -2975,7 +3115,7 @@ extension Elasticache { } public struct CacheParameterGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheParameterGroup", required: false, type: .list) ] public let cacheParameterGroup: [CacheParameterGroup]? @@ -2990,7 +3130,7 @@ extension Elasticache { } public struct AvailabilityZone: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string) ] /// The name of the Availability Zone. @@ -3006,10 +3146,10 @@ extension Elasticache { } public struct DeleteCacheParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheParameterGroupName", required: true, type: .string) ] - /// The name of the cache parameter group to delete. The specified cache security group must not be associated with any cache clusters. + /// The name of the cache parameter group to delete. The specified cache security group must not be associated with any clusters. public let cacheParameterGroupName: String public init(cacheParameterGroupName: String) { @@ -3022,7 +3162,7 @@ extension Elasticache { } public struct SnapshotArnsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotArn", required: false, type: .list) ] public let snapshotArn: [String]? @@ -3037,7 +3177,7 @@ extension Elasticache { } public struct CreateCacheSecurityGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSecurityGroup", required: false, type: .structure) ] public let cacheSecurityGroup: CacheSecurityGroup? @@ -3052,7 +3192,7 @@ extension Elasticache { } public struct CreateReplicationGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationGroup", required: false, type: .structure) ] public let replicationGroup: ReplicationGroup? @@ -3067,7 +3207,7 @@ extension Elasticache { } public struct AuthorizeCacheSecurityGroupIngressResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSecurityGroup", required: false, type: .structure) ] public let cacheSecurityGroup: CacheSecurityGroup? @@ -3082,7 +3222,7 @@ extension Elasticache { } public struct EC2SecurityGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EC2SecurityGroup", required: false, type: .list) ] public let eC2SecurityGroup: [EC2SecurityGroup]? @@ -3097,7 +3237,7 @@ extension Elasticache { } public struct ParameterNameValueList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterNameValue", required: false, type: .list) ] public let parameterNameValue: [ParameterNameValue]? @@ -3112,7 +3252,7 @@ extension Elasticache { } public struct NodeSnapshotList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeSnapshot", required: false, type: .list) ] public let nodeSnapshot: [NodeSnapshot]? @@ -3127,7 +3267,7 @@ extension Elasticache { } public struct CacheParameterGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheParameterGroupFamily", required: false, type: .string), AWSShapeMember(label: "CacheParameterGroupName", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) @@ -3153,7 +3293,7 @@ extension Elasticache { } public struct SubnetList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subnet", required: false, type: .list) ] public let subnet: [Subnet]? @@ -3168,7 +3308,7 @@ extension Elasticache { } public struct CreateCacheParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheParameterGroupFamily", required: true, type: .string), AWSShapeMember(label: "CacheParameterGroupName", required: true, type: .string), AWSShapeMember(label: "Description", required: true, type: .string) @@ -3194,7 +3334,7 @@ extension Elasticache { } public struct NodeGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeGroupMembers", required: false, type: .structure), AWSShapeMember(label: "Slots", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .string), @@ -3230,7 +3370,7 @@ extension Elasticache { } public struct DeleteSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotName", required: true, type: .string) ] /// The name of the snapshot to be deleted. @@ -3246,7 +3386,7 @@ extension Elasticache { } public struct CacheSecurityGroupNameList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSecurityGroupName", required: false, type: .list) ] public let cacheSecurityGroupName: [String]? @@ -3261,7 +3401,7 @@ extension Elasticache { } public struct TagListMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagList", required: false, type: .structure) ] /// A list of cost allocation tags as key-value pairs. @@ -3277,7 +3417,7 @@ extension Elasticache { } public struct DeleteReplicationGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RetainPrimaryCluster", required: false, type: .boolean), AWSShapeMember(label: "FinalSnapshotIdentifier", required: false, type: .string), AWSShapeMember(label: "ReplicationGroupId", required: true, type: .string) @@ -3303,7 +3443,7 @@ extension Elasticache { } public struct AvailabilityZonesList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZone", required: false, type: .list) ] public let availabilityZone: [String]? @@ -3317,8 +3457,44 @@ extension Elasticache { } } + public struct ModifyReplicationGroupShardConfigurationMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NodeGroupsToRemove", required: false, type: .structure), + AWSShapeMember(label: "ApplyImmediately", required: true, type: .boolean), + AWSShapeMember(label: "ReplicationGroupId", required: true, type: .string), + AWSShapeMember(label: "ReshardingConfiguration", required: false, type: .structure), + AWSShapeMember(label: "NodeGroupCount", required: true, type: .integer) + ] + /// If the value of NodeGroupCount is less than the current number of node groups (shards), NodeGroupsToRemove is a required list of node group ids to remove from the cluster. + public let nodeGroupsToRemove: NodeGroupsToRemoveList? + /// Indicates that the shard reconfiguration process begins immediately. At present, the only permitted value for this parameter is true. Value: true + public let applyImmediately: Bool + /// The name of the Redis (cluster mode enabled) cluster (replication group) on which the shards are to be configured. + public let replicationGroupId: String + /// Specifies the preferred availability zones for each node group in the cluster. If the value of NodeGroupCount is greater than the current number of node groups (shards), you can use this parameter to specify the preferred availability zones of the cluster's shards. If you omit this parameter ElastiCache selects availability zones for you. You can specify this parameter only if the value of NodeGroupCount is greater than the current number of node groups (shards). + public let reshardingConfiguration: ReshardingConfigurationList? + /// The number of node groups (shards) that results from the modification of the shard configuration. + public let nodeGroupCount: Int32 + + public init(nodeGroupsToRemove: NodeGroupsToRemoveList? = nil, applyImmediately: Bool, replicationGroupId: String, reshardingConfiguration: ReshardingConfigurationList? = nil, nodeGroupCount: Int32) { + self.nodeGroupsToRemove = nodeGroupsToRemove + self.applyImmediately = applyImmediately + self.replicationGroupId = replicationGroupId + self.reshardingConfiguration = reshardingConfiguration + self.nodeGroupCount = nodeGroupCount + } + + private enum CodingKeys: String, CodingKey { + case nodeGroupsToRemove = "NodeGroupsToRemove" + case applyImmediately = "ApplyImmediately" + case replicationGroupId = "ReplicationGroupId" + case reshardingConfiguration = "ReshardingConfiguration" + case nodeGroupCount = "NodeGroupCount" + } + } + public struct ModifyReplicationGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationGroup", required: false, type: .structure) ] public let replicationGroup: ReplicationGroup? @@ -3333,7 +3509,7 @@ extension Elasticache { } public struct ReservedCacheNodeMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ReservedCacheNodes", required: false, type: .structure) ] @@ -3354,7 +3530,7 @@ extension Elasticache { } public struct DescribeReplicationGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ReplicationGroupId", required: false, type: .string) @@ -3380,7 +3556,7 @@ extension Elasticache { } public struct DeleteCacheSecurityGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSecurityGroupName", required: true, type: .string) ] /// The name of the cache security group to delete. You cannot delete the default security group. @@ -3396,7 +3572,7 @@ extension Elasticache { } public struct CreateCacheSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSubnetGroupName", required: true, type: .string), AWSShapeMember(label: "SubnetIds", required: true, type: .structure), AWSShapeMember(label: "CacheSubnetGroupDescription", required: true, type: .string) @@ -3422,7 +3598,7 @@ extension Elasticache { } public struct NodeGroupConfigurationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeGroupConfiguration", required: false, type: .list) ] public let nodeGroupConfiguration: [NodeGroupConfiguration]? @@ -3437,19 +3613,19 @@ extension Elasticache { } public struct PendingModifiedValues: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheNodeType", required: false, type: .string), AWSShapeMember(label: "EngineVersion", required: false, type: .string), AWSShapeMember(label: "NumCacheNodes", required: false, type: .integer), AWSShapeMember(label: "CacheNodeIdsToRemove", required: false, type: .structure) ] - /// The cache node type that this cache cluster or replication group is scaled to. + /// The cache node type that this cluster or replication group is scaled to. public let cacheNodeType: String? - /// The new cache engine version that the cache cluster runs. + /// The new cache engine version that the cluster runs. public let engineVersion: String? - /// The new number of cache nodes for the cache cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. + /// The new number of cache nodes for the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20. public let numCacheNodes: Int32? - /// A list of cache node IDs that are being removed (or will be removed) from the cache cluster. A node ID is a numeric identifier (0001, 0002, etc.). + /// A list of cache node IDs that are being removed (or will be removed) from the cluster. A node ID is a numeric identifier (0001, 0002, etc.). public let cacheNodeIdsToRemove: CacheNodeIdsList? public init(cacheNodeType: String? = nil, engineVersion: String? = nil, numCacheNodes: Int32? = nil, cacheNodeIdsToRemove: CacheNodeIdsList? = nil) { @@ -3468,7 +3644,7 @@ extension Elasticache { } public struct CacheNodeIdsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheNodeId", required: false, type: .list) ] public let cacheNodeId: [String]? @@ -3483,7 +3659,7 @@ extension Elasticache { } public struct ModifyReplicationGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSecurityGroupNames", required: false, type: .structure), AWSShapeMember(label: "NotificationTopicStatus", required: false, type: .string), AWSShapeMember(label: "SecurityGroupIds", required: false, type: .structure), @@ -3503,11 +3679,11 @@ extension Elasticache { AWSShapeMember(label: "AutomaticFailoverEnabled", required: false, type: .boolean), AWSShapeMember(label: "SnapshotRetentionLimit", required: false, type: .integer) ] - /// A list of cache security group names to authorize for the clusters in this replication group. This change is asynchronously applied as soon as possible. This parameter can be used only with replication group containing cache clusters running outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be Default. + /// A list of cache security group names to authorize for the clusters in this replication group. This change is asynchronously applied as soon as possible. This parameter can be used only with replication group containing clusters running outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be Default. public let cacheSecurityGroupNames: CacheSecurityGroupNameList? /// The status of the Amazon SNS notification topic for the replication group. Notifications are sent only if the status is active. Valid values: active | inactive public let notificationTopicStatus: String? - /// Specifies the VPC Security Groups associated with the cache clusters in the replication group. This parameter can be used only with replication group containing cache clusters running in an Amazon Virtual Private Cloud (Amazon VPC). + /// Specifies the VPC Security Groups associated with the clusters in the replication group. This parameter can be used only with replication group containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC). public let securityGroupIds: SecurityGroupIdsList? /// If true, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the PreferredMaintenanceWindow setting for the replication group. If false, changes to the nodes in the replication group are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first. Valid values: true | false Default: false public let applyImmediately: Bool? @@ -3515,11 +3691,11 @@ extension Elasticache { public let autoMinorVersionUpgrade: Bool? /// The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are sent. The Amazon SNS topic owner must be same as the replication group owner. public let notificationTopicArn: String? - /// The cache cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups. + /// The cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups. public let snapshottingClusterId: String? /// The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of the node group (shard) specified by SnapshottingClusterId. Example: 05:00-09:00 If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. public let snapshotWindow: String? - /// The upgraded version of the cache engine to be run on the cache clusters in the replication group. Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version. + /// The upgraded version of the cache engine to be run on the clusters in the replication group. Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version. public let engineVersion: String? /// The identifier of the replication group to modify. public let replicationGroupId: String @@ -3535,7 +3711,7 @@ extension Elasticache { public let cacheNodeType: String? /// For replication groups with a single primary, if this parameter is specified, ElastiCache promotes the specified cluster in the specified replication group to the primary role. The nodes of all other clusters in the replication group are read replicas. public let primaryClusterId: String? - /// Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure. Valid values: true | false ElastiCache Multi-AZ replication groups are not supported on: Redis versions earlier than 2.8.6. Redis (cluster mode disabled):T1 and T2 cache node types. Redis (cluster mode enabled): T1 node types. + /// Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure. Valid values: true | false Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on: Redis versions earlier than 2.8.6. Redis (cluster mode disabled): T1 and T2 cache node types. Redis (cluster mode enabled): T1 node types. public let automaticFailoverEnabled: Bool? /// The number of days for which ElastiCache retains automatic node group (shard) snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted. Important If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. public let snapshotRetentionLimit: Int32? @@ -3584,7 +3760,7 @@ extension Elasticache { } public struct DescribeCacheSecurityGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "CacheSecurityGroupName", required: false, type: .string) @@ -3610,7 +3786,7 @@ extension Elasticache { } public struct CacheNodeTypeSpecificParameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheNodeTypeSpecificValues", required: false, type: .structure), AWSShapeMember(label: "AllowedValues", required: false, type: .string), AWSShapeMember(label: "DataType", required: false, type: .string), @@ -3666,7 +3842,7 @@ extension Elasticache { } public struct PurchaseReservedCacheNodesOfferingResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedCacheNode", required: false, type: .structure) ] public let reservedCacheNode: ReservedCacheNode? @@ -3681,7 +3857,7 @@ extension Elasticache { } public struct DescribeCacheParameterGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "CacheParameterGroupName", required: false, type: .string) @@ -3707,7 +3883,7 @@ extension Elasticache { } public struct ParametersList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameter", required: false, type: .list) ] public let parameter: [Parameter]? @@ -3722,7 +3898,7 @@ extension Elasticache { } public struct CreateCacheSubnetGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheSubnetGroup", required: false, type: .structure) ] public let cacheSubnetGroup: CacheSubnetGroup? diff --git a/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_API.swift b/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_API.swift index a0b2544769d..e599cba9b3b 100644 --- a/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_API.swift +++ b/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_API.swift @@ -74,6 +74,16 @@ public struct Elasticbeanstalk { _ = try client.send(operation: "DeleteApplication", path: "/", httpMethod: "POST", input: input) } + /// Returns the tags applied to an AWS Elastic Beanstalk resource. The response contains a list of tag key-value pairs. Currently, Elastic Beanstalk only supports tagging Elastic Beanstalk environments. + public func listTagsForResource(_ input: ListTagsForResourceMessage) throws -> ResourceTagsDescriptionMessage { + return try client.send(operation: "ListTagsForResource", path: "/", httpMethod: "POST", input: input) + } + + /// Update the list of tags applied to an AWS Elastic Beanstalk resource. Two lists can be passed: TagsToAdd for tags to add or update, and TagsToRemove. Currently, Elastic Beanstalk only supports tagging of Elastic Beanstalk environments. + public func updateTagsForResource(_ input: UpdateTagsForResourceMessage) throws { + _ = try client.send(operation: "UpdateTagsForResource", path: "/", httpMethod: "POST", input: input) + } + /// Returns a list of the available solution stack names, with the public version first and then in reverse chronological order. public func listAvailableSolutionStacks() throws -> ListAvailableSolutionStacksResultMessage { return try client.send(operation: "ListAvailableSolutionStacks", path: "/", httpMethod: "POST") diff --git a/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_Error.swift b/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_Error.swift index f1fafe79cb9..be89343da4f 100644 --- a/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_Error.swift +++ b/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_Error.swift @@ -15,6 +15,9 @@ public enum ElasticbeanstalkError: AWSErrorType { case codeBuildNotInServiceRegionException(message: String?) case invalidRequestException(message: String?) case operationInProgressException(message: String?) + case resourceNotFoundException(message: String?) + case resourceTypeNotSupportedException(message: String?) + case tooManyTagsException(message: String?) case managedActionInvalidStateException(message: String?) case tooManyConfigurationTemplatesException(message: String?) case tooManyPlatformsException(message: String?) @@ -51,6 +54,12 @@ extension ElasticbeanstalkError { self = .invalidRequestException(message: message) case "OperationInProgressException": self = .operationInProgressException(message: message) + case "ResourceNotFoundException": + self = .resourceNotFoundException(message: message) + case "ResourceTypeNotSupportedException": + self = .resourceTypeNotSupportedException(message: message) + case "TooManyTagsException": + self = .tooManyTagsException(message: message) case "ManagedActionInvalidStateException": self = .managedActionInvalidStateException(message: message) case "TooManyConfigurationTemplatesException": diff --git a/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_Shapes.swift b/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_Shapes.swift index 5e5b1ac0cd6..394bc5cdc49 100644 --- a/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/elasticbeanstalk/Elasticbeanstalk_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Elasticbeanstalk { public struct EventDescriptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Events", required: false, type: .list) ] @@ -27,7 +27,7 @@ extension Elasticbeanstalk { } public struct SolutionStackDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PermittedFileTypes", required: false, type: .list), AWSShapeMember(label: "SolutionStackName", required: false, type: .string) ] @@ -48,7 +48,7 @@ extension Elasticbeanstalk { } public struct RequestEnvironmentInfoMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "InfoType", required: true, type: .enum), AWSShapeMember(label: "EnvironmentId", required: false, type: .string) @@ -80,7 +80,7 @@ extension Elasticbeanstalk { } public struct PlatformProgrammingLanguage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .string) ] @@ -101,7 +101,7 @@ extension Elasticbeanstalk { } public struct ManagedAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActionType", required: false, type: .enum), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ActionDescription", required: false, type: .string), @@ -137,7 +137,7 @@ extension Elasticbeanstalk { } public struct RestartAppServerMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "EnvironmentId", required: false, type: .string) ] @@ -158,7 +158,7 @@ extension Elasticbeanstalk { } public struct CPUUtilization: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Nice", required: false, type: .double), AWSShapeMember(label: "IRQ", required: false, type: .double), AWSShapeMember(label: "SoftIRQ", required: false, type: .double), @@ -204,7 +204,7 @@ extension Elasticbeanstalk { } public struct DescribeEnvironmentManagedActionHistoryResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ManagedActionHistoryItems", required: false, type: .list) ] @@ -225,7 +225,7 @@ extension Elasticbeanstalk { } public struct TerminateEnvironmentMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "TerminateResources", required: false, type: .boolean), AWSShapeMember(label: "EnvironmentId", required: false, type: .string), @@ -256,7 +256,7 @@ extension Elasticbeanstalk { } public struct CreateStorageLocationResultMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3Bucket", required: false, type: .string) ] /// The name of the Amazon S3 bucket created. @@ -272,7 +272,7 @@ extension Elasticbeanstalk { } public struct StatusCodes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status5xx", required: false, type: .integer), AWSShapeMember(label: "Status3xx", required: false, type: .integer), AWSShapeMember(label: "Status2xx", required: false, type: .integer), @@ -303,7 +303,7 @@ extension Elasticbeanstalk { } public struct ApplyEnvironmentManagedActionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActionType", required: false, type: .enum), AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "ActionDescription", required: false, type: .string), @@ -334,7 +334,7 @@ extension Elasticbeanstalk { } public struct EventDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Severity", required: false, type: .enum), AWSShapeMember(label: "TemplateName", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string), @@ -351,7 +351,7 @@ extension Elasticbeanstalk { public let templateName: String? /// The event message. public let message: String? - /// The ARN of the custom platform. + /// The ARN of the platform. public let platformArn: String? /// The release label for the application version associated with this event. public let versionLabel: String? @@ -390,7 +390,7 @@ extension Elasticbeanstalk { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -411,7 +411,7 @@ extension Elasticbeanstalk { } public struct DescribeEnvironmentManagedActionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ManagedActions", required: false, type: .list) ] /// A list of upcoming and in-progress managed actions. @@ -427,7 +427,7 @@ extension Elasticbeanstalk { } public struct PlatformSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperatingSystemVersion", required: false, type: .string), AWSShapeMember(label: "PlatformStatus", required: false, type: .enum), AWSShapeMember(label: "PlatformArn", required: false, type: .string), @@ -488,7 +488,7 @@ extension Elasticbeanstalk { } public struct DescribeEnvironmentManagedActionHistoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer), AWSShapeMember(label: "EnvironmentId", required: false, type: .string), @@ -518,6 +518,22 @@ extension Elasticbeanstalk { } } + public struct ListTagsForResourceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceArn", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the resouce for which a tag list is requested. Must be the ARN of an Elastic Beanstalk environment. + public let resourceArn: String + + public init(resourceArn: String) { + self.resourceArn = resourceArn + } + + private enum CodingKeys: String, CodingKey { + case resourceArn = "ResourceArn" + } + } + public enum ComputeType: String, CustomStringConvertible, Codable { case buildGeneral1Small = "BUILD_GENERAL1_SMALL" case buildGeneral1Medium = "BUILD_GENERAL1_MEDIUM" @@ -526,7 +542,7 @@ extension Elasticbeanstalk { } public struct PlatformFramework: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .string) ] @@ -547,7 +563,7 @@ extension Elasticbeanstalk { } public struct DescribeEnvironmentHealthRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "EnvironmentId", required: false, type: .string), AWSShapeMember(label: "AttributeNames", required: false, type: .list) @@ -573,7 +589,7 @@ extension Elasticbeanstalk { } public struct Trigger: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string) ] /// The name of the trigger. @@ -589,7 +605,7 @@ extension Elasticbeanstalk { } public struct Instance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: false, type: .string) ] /// The ID of the Amazon EC2 instance. @@ -605,7 +621,7 @@ extension Elasticbeanstalk { } public struct DescribeEventsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "TemplateName", required: false, type: .string), @@ -683,7 +699,7 @@ extension Elasticbeanstalk { } public struct CreateApplicationVersionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionLabel", required: true, type: .string), AWSShapeMember(label: "AutoCreateApplication", required: false, type: .boolean), AWSShapeMember(label: "BuildConfiguration", required: false, type: .structure), @@ -734,7 +750,7 @@ extension Elasticbeanstalk { } public struct SwapEnvironmentCNAMEsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DestinationEnvironmentName", required: false, type: .string), AWSShapeMember(label: "SourceEnvironmentName", required: false, type: .string), AWSShapeMember(label: "SourceEnvironmentId", required: false, type: .string), @@ -771,7 +787,7 @@ extension Elasticbeanstalk { } public struct ComposeEnvironmentsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionLabels", required: false, type: .list), AWSShapeMember(label: "ApplicationName", required: false, type: .string), AWSShapeMember(label: "GroupName", required: false, type: .string) @@ -797,7 +813,7 @@ extension Elasticbeanstalk { } public struct EnvironmentResourcesDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancer", required: false, type: .structure) ] /// Describes the LoadBalancer. @@ -813,7 +829,7 @@ extension Elasticbeanstalk { } public struct CheckDNSAvailabilityMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CNAMEPrefix", required: true, type: .string) ] /// The prefix used when this CNAME is reserved. @@ -829,7 +845,7 @@ extension Elasticbeanstalk { } public struct BuildConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Image", required: true, type: .string), AWSShapeMember(label: "ComputeType", required: false, type: .enum), AWSShapeMember(label: "ArtifactName", required: false, type: .string), @@ -865,7 +881,7 @@ extension Elasticbeanstalk { } public struct Latency: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "P95", required: false, type: .double), AWSShapeMember(label: "P10", required: false, type: .double), AWSShapeMember(label: "P90", required: false, type: .double), @@ -916,7 +932,7 @@ extension Elasticbeanstalk { } public struct LoadBalancer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string) ] /// The name of the LoadBalancer. @@ -932,7 +948,7 @@ extension Elasticbeanstalk { } public struct RebuildEnvironmentMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "EnvironmentId", required: false, type: .string) ] @@ -953,7 +969,7 @@ extension Elasticbeanstalk { } public struct ManagedActionHistoryItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActionType", required: false, type: .enum), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "FinishedTime", required: false, type: .timestamp), @@ -1004,7 +1020,7 @@ extension Elasticbeanstalk { } public struct DescribePlatformVersionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformDescription", required: false, type: .structure) ] /// Detailed information about the version of the platform. @@ -1020,7 +1036,7 @@ extension Elasticbeanstalk { } public struct RetrieveEnvironmentInfoResultMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentInfo", required: false, type: .list) ] /// The EnvironmentInfoDescription of the environment. @@ -1036,7 +1052,7 @@ extension Elasticbeanstalk { } public struct InstanceHealthSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Pending", required: false, type: .integer), AWSShapeMember(label: "Degraded", required: false, type: .integer), AWSShapeMember(label: "Warning", required: false, type: .integer), @@ -1087,7 +1103,7 @@ extension Elasticbeanstalk { } public struct ApplicationDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationTemplates", required: false, type: .list), AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "DateUpdated", required: false, type: .timestamp), @@ -1133,7 +1149,7 @@ extension Elasticbeanstalk { } public struct Builder: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ARN", required: false, type: .string) ] /// The ARN of the builder. @@ -1155,7 +1171,7 @@ extension Elasticbeanstalk { } public struct DescribeInstancesHealthRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "EnvironmentId", required: false, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -1186,7 +1202,7 @@ extension Elasticbeanstalk { } public struct AutoScalingGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string) ] /// The name of the AutoScalingGroup . @@ -1202,7 +1218,7 @@ extension Elasticbeanstalk { } public struct CreatePlatformVersionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformSummary", required: false, type: .structure), AWSShapeMember(label: "Builder", required: false, type: .structure) ] @@ -1223,17 +1239,22 @@ extension Elasticbeanstalk { } public struct EnvironmentDescriptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Environments", required: false, type: .list) ] + /// In a paginated request, the token that you can pass in a subsequent request to get the next response page. + public let nextToken: String? /// Returns an EnvironmentDescription list. public let environments: [EnvironmentDescription]? - public init(environments: [EnvironmentDescription]? = nil) { + public init(nextToken: String? = nil, environments: [EnvironmentDescription]? = nil) { + self.nextToken = nextToken self.environments = environments } private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" case environments = "Environments" } } @@ -1254,7 +1275,7 @@ extension Elasticbeanstalk { } public struct SourceConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TemplateName", required: false, type: .string), AWSShapeMember(label: "ApplicationName", required: false, type: .string) ] @@ -1275,7 +1296,7 @@ extension Elasticbeanstalk { } public struct CreateConfigurationTemplateMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OptionSettings", required: false, type: .list), AWSShapeMember(label: "SourceConfiguration", required: false, type: .structure), AWSShapeMember(label: "TemplateName", required: true, type: .string), @@ -1326,7 +1347,7 @@ extension Elasticbeanstalk { } public struct ConfigurationSettingsDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OptionSettings", required: false, type: .list), AWSShapeMember(label: "DateUpdated", required: false, type: .timestamp), AWSShapeMember(label: "TemplateName", required: false, type: .string), @@ -1346,7 +1367,7 @@ extension Elasticbeanstalk { public let templateName: String? /// The name of the solution stack this configuration set uses. public let solutionStackName: String? - /// The ARN of the custom platform. + /// The ARN of the platform. public let platformArn: String? /// If not null, the name of the environment for this configuration set. public let environmentName: String? @@ -1387,7 +1408,7 @@ extension Elasticbeanstalk { } public struct UpdateConfigurationTemplateMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OptionSettings", required: false, type: .list), AWSShapeMember(label: "ApplicationName", required: true, type: .string), AWSShapeMember(label: "OptionsToRemove", required: false, type: .list), @@ -1423,12 +1444,13 @@ extension Elasticbeanstalk { } public struct EnvironmentDescription: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TemplateName", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DateUpdated", required: false, type: .timestamp), + AWSShapeMember(label: "TemplateName", required: false, type: .string), AWSShapeMember(label: "VersionLabel", required: false, type: .string), - AWSShapeMember(label: "EnvironmentName", required: false, type: .string), + AWSShapeMember(label: "EnvironmentArn", required: false, type: .string), AWSShapeMember(label: "CNAME", required: false, type: .string), + AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "HealthStatus", required: false, type: .enum), AWSShapeMember(label: "EndpointURL", required: false, type: .string), AWSShapeMember(label: "EnvironmentLinks", required: false, type: .list), @@ -1439,21 +1461,23 @@ extension Elasticbeanstalk { AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "SolutionStackName", required: false, type: .string), AWSShapeMember(label: "PlatformArn", required: false, type: .string), - AWSShapeMember(label: "EnvironmentId", required: false, type: .string), - AWSShapeMember(label: "Resources", required: false, type: .structure), AWSShapeMember(label: "ApplicationName", required: false, type: .string), + AWSShapeMember(label: "Resources", required: false, type: .structure), + AWSShapeMember(label: "EnvironmentId", required: false, type: .string), AWSShapeMember(label: "Tier", required: false, type: .structure) ] - /// The name of the configuration template used to originally launch this environment. - public let templateName: String? /// The last modified date for this environment. public let dateUpdated: TimeStamp? + /// The name of the configuration template used to originally launch this environment. + public let templateName: String? /// The application version deployed in this environment. public let versionLabel: String? - /// The name of this environment. - public let environmentName: String? + /// The environment's Amazon Resource Name (ARN), which can be used in other API reuqests that require an ARN. + public let environmentArn: String? /// The URL to the CNAME for this environment. public let cname: String? + /// The name of this environment. + public let environmentName: String? /// Returns the health status of the application running in your environment. For more information, see Health Colors and Statuses. public let healthStatus: EnvironmentHealthStatus? /// For load-balanced, autoscaling environments, the URL to the LoadBalancer. For single-instance environments, the IP address of the instance. @@ -1472,23 +1496,24 @@ extension Elasticbeanstalk { public let status: EnvironmentStatus? /// The name of the SolutionStack deployed with this environment. public let solutionStackName: String? - /// The ARN of the custom platform. + /// The ARN of the platform. public let platformArn: String? - /// The ID of this environment. - public let environmentId: String? - /// The description of the AWS resources used by this environment. - public let resources: EnvironmentResourcesDescription? /// The name of the application associated with this environment. public let applicationName: String? + /// The description of the AWS resources used by this environment. + public let resources: EnvironmentResourcesDescription? + /// The ID of this environment. + public let environmentId: String? /// Describes the current tier of this environment. public let tier: EnvironmentTier? - public init(templateName: String? = nil, dateUpdated: TimeStamp? = nil, versionLabel: String? = nil, environmentName: String? = nil, cname: String? = nil, healthStatus: EnvironmentHealthStatus? = nil, endpointURL: String? = nil, environmentLinks: [EnvironmentLink]? = nil, dateCreated: TimeStamp? = nil, abortableOperationInProgress: Bool? = nil, description: String? = nil, health: EnvironmentHealth? = nil, status: EnvironmentStatus? = nil, solutionStackName: String? = nil, platformArn: String? = nil, environmentId: String? = nil, resources: EnvironmentResourcesDescription? = nil, applicationName: String? = nil, tier: EnvironmentTier? = nil) { - self.templateName = templateName + public init(dateUpdated: TimeStamp? = nil, templateName: String? = nil, versionLabel: String? = nil, environmentArn: String? = nil, cname: String? = nil, environmentName: String? = nil, healthStatus: EnvironmentHealthStatus? = nil, endpointURL: String? = nil, environmentLinks: [EnvironmentLink]? = nil, dateCreated: TimeStamp? = nil, abortableOperationInProgress: Bool? = nil, description: String? = nil, health: EnvironmentHealth? = nil, status: EnvironmentStatus? = nil, solutionStackName: String? = nil, platformArn: String? = nil, applicationName: String? = nil, resources: EnvironmentResourcesDescription? = nil, environmentId: String? = nil, tier: EnvironmentTier? = nil) { self.dateUpdated = dateUpdated + self.templateName = templateName self.versionLabel = versionLabel - self.environmentName = environmentName + self.environmentArn = environmentArn self.cname = cname + self.environmentName = environmentName self.healthStatus = healthStatus self.endpointURL = endpointURL self.environmentLinks = environmentLinks @@ -1499,18 +1524,19 @@ extension Elasticbeanstalk { self.status = status self.solutionStackName = solutionStackName self.platformArn = platformArn - self.environmentId = environmentId - self.resources = resources self.applicationName = applicationName + self.resources = resources + self.environmentId = environmentId self.tier = tier } private enum CodingKeys: String, CodingKey { - case templateName = "TemplateName" case dateUpdated = "DateUpdated" + case templateName = "TemplateName" case versionLabel = "VersionLabel" - case environmentName = "EnvironmentName" + case environmentArn = "EnvironmentArn" case cname = "CNAME" + case environmentName = "EnvironmentName" case healthStatus = "HealthStatus" case endpointURL = "EndpointURL" case environmentLinks = "EnvironmentLinks" @@ -1521,9 +1547,9 @@ extension Elasticbeanstalk { case status = "Status" case solutionStackName = "SolutionStackName" case platformArn = "PlatformArn" - case environmentId = "EnvironmentId" - case resources = "Resources" case applicationName = "ApplicationName" + case resources = "Resources" + case environmentId = "EnvironmentId" case tier = "Tier" } } @@ -1536,7 +1562,7 @@ extension Elasticbeanstalk { } public struct ConfigurationOptionDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Regex", required: false, type: .structure), AWSShapeMember(label: "MaxValue", required: false, type: .integer), AWSShapeMember(label: "ChangeSeverity", required: false, type: .string), @@ -1602,7 +1628,7 @@ extension Elasticbeanstalk { } public struct ConfigurationSettingsValidationMessages: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Messages", required: false, type: .list) ] /// A list of ValidationMessage. @@ -1618,7 +1644,7 @@ extension Elasticbeanstalk { } public struct SourceBuildInformation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceLocation", required: true, type: .string), AWSShapeMember(label: "SourceType", required: true, type: .enum), AWSShapeMember(label: "SourceRepository", required: true, type: .enum) @@ -1644,7 +1670,7 @@ extension Elasticbeanstalk { } public struct ApplicationResourceLifecycleDescriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceLifecycleConfig", required: false, type: .structure), AWSShapeMember(label: "ApplicationName", required: false, type: .string) ] @@ -1665,7 +1691,7 @@ extension Elasticbeanstalk { } public struct ApplicationMetrics: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Latency", required: false, type: .structure), AWSShapeMember(label: "RequestCount", required: false, type: .integer), AWSShapeMember(label: "Duration", required: false, type: .integer), @@ -1696,7 +1722,7 @@ extension Elasticbeanstalk { } public struct ApplicationDescriptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Applications", required: false, type: .list) ] /// This parameter contains a list of ApplicationDescription. @@ -1712,7 +1738,7 @@ extension Elasticbeanstalk { } public struct DescribeConfigurationOptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "Options", required: false, type: .list), AWSShapeMember(label: "ApplicationName", required: false, type: .string), @@ -1753,7 +1779,7 @@ extension Elasticbeanstalk { } public struct UpdateApplicationMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationName", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] @@ -1774,7 +1800,7 @@ extension Elasticbeanstalk { } public struct OptionRestrictionRegex: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Pattern", required: false, type: .string), AWSShapeMember(label: "Label", required: false, type: .string) ] @@ -1795,13 +1821,13 @@ extension Elasticbeanstalk { } public struct Deployment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeploymentTime", required: false, type: .timestamp), AWSShapeMember(label: "DeploymentId", required: false, type: .long), AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "VersionLabel", required: false, type: .string) ] - /// For in-progress deployments, the time that the deloyment started. For completed deployments, the time that the deployment ended. + /// For in-progress deployments, the time that the deployment started. For completed deployments, the time that the deployment ended. public let deploymentTime: TimeStamp? /// The ID of the deployment. This number increases by one each time that you deploy source code or change instance configuration settings. public let deploymentId: Int64? @@ -1826,7 +1852,7 @@ extension Elasticbeanstalk { } public struct ApplicationResourceLifecycleConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionLifecycleConfig", required: false, type: .structure), AWSShapeMember(label: "ServiceRole", required: false, type: .string) ] @@ -1847,7 +1873,7 @@ extension Elasticbeanstalk { } public struct DescribeApplicationsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationNames", required: false, type: .list) ] /// If specified, AWS Elastic Beanstalk restricts the returned descriptions to only include those with the specified names. @@ -1863,7 +1889,7 @@ extension Elasticbeanstalk { } public struct EnvironmentResourceDescriptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentResources", required: false, type: .structure) ] /// A list of EnvironmentResourceDescription. @@ -1879,7 +1905,7 @@ extension Elasticbeanstalk { } public struct SystemStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadAverage", required: false, type: .list), AWSShapeMember(label: "CPUUtilization", required: false, type: .structure) ] @@ -1909,7 +1935,7 @@ extension Elasticbeanstalk { } public struct ApplyEnvironmentManagedActionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "ActionId", required: true, type: .string), AWSShapeMember(label: "EnvironmentId", required: false, type: .string) @@ -1935,7 +1961,7 @@ extension Elasticbeanstalk { } public struct DescribePlatformVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformArn", required: false, type: .string) ] /// The ARN of the version of the platform. @@ -1951,14 +1977,14 @@ extension Elasticbeanstalk { } public struct ConfigurationOptionsDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: false, type: .list), AWSShapeMember(label: "PlatformArn", required: false, type: .string), AWSShapeMember(label: "SolutionStackName", required: false, type: .string) ] /// A list of ConfigurationOptionDescription. public let options: [ConfigurationOptionDescription]? - /// The ARN of the custom platform. + /// The ARN of the platform. public let platformArn: String? /// The name of the solution stack these configuration options belong to. public let solutionStackName: String? @@ -1977,11 +2003,11 @@ extension Elasticbeanstalk { } public struct ApplicationVersionDescriptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ApplicationVersions", required: false, type: .list) ] - /// For a paginated request, the token that you can pass in a subsequent request to get the next page. + /// In a paginated request, the token that you can pass in a subsequent request to get the next response page. public let nextToken: String? /// List of ApplicationVersionDescription objects sorted in order of creation. public let applicationVersions: [ApplicationVersionDescription]? @@ -1998,7 +2024,7 @@ extension Elasticbeanstalk { } public struct ApplicationVersionDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "DateUpdated", required: false, type: .timestamp), @@ -2054,7 +2080,7 @@ extension Elasticbeanstalk { } public struct DescribeConfigurationSettingsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "TemplateName", required: false, type: .string), AWSShapeMember(label: "ApplicationName", required: true, type: .string) @@ -2080,7 +2106,7 @@ extension Elasticbeanstalk { } public struct OptionSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Namespace", required: false, type: .string), AWSShapeMember(label: "OptionName", required: false, type: .string), AWSShapeMember(label: "ResourceName", required: false, type: .string) @@ -2106,7 +2132,7 @@ extension Elasticbeanstalk { } public struct Listener: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Port", required: false, type: .integer), AWSShapeMember(label: "Protocol", required: false, type: .string) ] @@ -2127,7 +2153,7 @@ extension Elasticbeanstalk { } public struct ApplicationVersionLifecycleConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxCountRule", required: false, type: .structure), AWSShapeMember(label: "MaxAgeRule", required: false, type: .structure) ] @@ -2148,7 +2174,7 @@ extension Elasticbeanstalk { } public struct DescribeInstancesHealthResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceHealthList", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "RefreshedAt", required: false, type: .timestamp) @@ -2180,7 +2206,7 @@ extension Elasticbeanstalk { } public struct ApplicationDescriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Application", required: false, type: .structure) ] /// The ApplicationDescription of the application. @@ -2204,7 +2230,7 @@ extension Elasticbeanstalk { } public struct DescribeEnvironmentHealthResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "Color", required: false, type: .string), AWSShapeMember(label: "InstancesHealth", required: false, type: .structure), @@ -2255,7 +2281,7 @@ extension Elasticbeanstalk { } public struct RetrieveEnvironmentInfoMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "InfoType", required: true, type: .enum), AWSShapeMember(label: "EnvironmentId", required: false, type: .string) @@ -2281,7 +2307,7 @@ extension Elasticbeanstalk { } public struct ConfigurationSettingsDescriptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationSettings", required: false, type: .list) ] /// A list of ConfigurationSettingsDescription. @@ -2297,7 +2323,7 @@ extension Elasticbeanstalk { } public struct AbortEnvironmentUpdateMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "EnvironmentId", required: false, type: .string) ] @@ -2318,7 +2344,7 @@ extension Elasticbeanstalk { } public struct MaxCountRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Enabled", required: true, type: .boolean), AWSShapeMember(label: "MaxCount", required: false, type: .integer), AWSShapeMember(label: "DeleteSourceFromS3", required: false, type: .boolean) @@ -2353,7 +2379,7 @@ extension Elasticbeanstalk { } public struct DescribeEnvironmentResourcesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "EnvironmentId", required: false, type: .string) ] @@ -2380,7 +2406,7 @@ extension Elasticbeanstalk { } public struct ListAvailableSolutionStacksResultMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SolutionStackDetails", required: false, type: .list), AWSShapeMember(label: "SolutionStacks", required: false, type: .list) ] @@ -2401,7 +2427,7 @@ extension Elasticbeanstalk { } public struct S3Location: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3Bucket", required: false, type: .string), AWSShapeMember(label: "S3Key", required: false, type: .string) ] @@ -2422,7 +2448,7 @@ extension Elasticbeanstalk { } public struct ValidateConfigurationSettingsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "OptionSettings", required: true, type: .list), AWSShapeMember(label: "ApplicationName", required: true, type: .string), @@ -2461,7 +2487,7 @@ extension Elasticbeanstalk { } public struct CreatePlatformVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformVersion", required: true, type: .string), AWSShapeMember(label: "PlatformName", required: true, type: .string), AWSShapeMember(label: "EnvironmentName", required: false, type: .string), @@ -2508,7 +2534,7 @@ extension Elasticbeanstalk { } public struct CreateEnvironmentMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OptionSettings", required: false, type: .list), AWSShapeMember(label: "TemplateName", required: false, type: .string), AWSShapeMember(label: "GroupName", required: false, type: .string), @@ -2533,13 +2559,13 @@ extension Elasticbeanstalk { public let versionLabel: String? /// This specifies the tags applied to resources in the environment. public let tags: [Tag]? - /// A unique name for the deployment environment. Used in the application URL. Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It cannot start or end with a hyphen. This name must be unique in your account. If the specified name already exists, AWS Elastic Beanstalk returns an InvalidParameterValue error. Default: If the CNAME parameter is not specified, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application. + /// A unique name for the deployment environment. Used in the application URL. Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It cannot start or end with a hyphen. This name must be unique within a region in your account. If the specified name already exists in the region, AWS Elastic Beanstalk returns an InvalidParameterValue error. Default: If the CNAME parameter is not specified, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application. public let environmentName: String? /// Describes this environment. public let description: String? /// This is an alternative to specifying a template name. If specified, AWS Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack. public let solutionStackName: String? - /// The ARN of the custom platform. + /// The ARN of the platform. public let platformArn: String? /// If specified, the environment attempts to use this value as the prefix for the CNAME. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name. public let cNAMEPrefix: String? @@ -2584,7 +2610,7 @@ extension Elasticbeanstalk { } public struct DeletePlatformVersionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformSummary", required: false, type: .structure) ] /// Detailed information about the version of the custom platform. @@ -2600,7 +2626,7 @@ extension Elasticbeanstalk { } public struct CustomAmi: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VirtualizationType", required: false, type: .string), AWSShapeMember(label: "ImageId", required: false, type: .string) ] @@ -2640,7 +2666,7 @@ extension Elasticbeanstalk { } public struct CheckDNSAvailabilityResultMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FullyQualifiedCNAME", required: false, type: .string), AWSShapeMember(label: "Available", required: false, type: .boolean) ] @@ -2660,8 +2686,29 @@ extension Elasticbeanstalk { } } + public struct ResourceTagsDescriptionMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceTags", required: false, type: .list), + AWSShapeMember(label: "ResourceArn", required: false, type: .string) + ] + /// A list of tag key-value pairs. + public let resourceTags: [Tag]? + /// The Amazon Resource Name (ARN) of the resouce for which a tag list was requested. + public let resourceArn: String? + + public init(resourceTags: [Tag]? = nil, resourceArn: String? = nil) { + self.resourceTags = resourceTags + self.resourceArn = resourceArn + } + + private enum CodingKeys: String, CodingKey { + case resourceTags = "ResourceTags" + case resourceArn = "ResourceArn" + } + } + public struct DeleteConfigurationTemplateMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TemplateName", required: true, type: .string), AWSShapeMember(label: "ApplicationName", required: true, type: .string) ] @@ -2682,7 +2729,7 @@ extension Elasticbeanstalk { } public struct PlatformFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .string), AWSShapeMember(label: "Operator", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) @@ -2708,7 +2755,7 @@ extension Elasticbeanstalk { } public struct PlatformDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DateUpdated", required: false, type: .timestamp), AWSShapeMember(label: "PlatformStatus", required: false, type: .enum), AWSShapeMember(label: "SupportedAddonList", required: false, type: .list), @@ -2809,7 +2856,7 @@ extension Elasticbeanstalk { } public struct UpdateEnvironmentMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OptionSettings", required: false, type: .list), AWSShapeMember(label: "TemplateName", required: false, type: .string), AWSShapeMember(label: "GroupName", required: false, type: .string), @@ -2880,7 +2927,7 @@ extension Elasticbeanstalk { } public struct DeleteApplicationMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationName", required: true, type: .string), AWSShapeMember(label: "TerminateEnvByForce", required: false, type: .boolean) ] @@ -2901,7 +2948,7 @@ extension Elasticbeanstalk { } public struct EnvironmentTier: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .string) @@ -2927,7 +2974,7 @@ extension Elasticbeanstalk { } public struct ListPlatformVersionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "PlatformSummaryList", required: false, type: .list) ] @@ -2948,7 +2995,7 @@ extension Elasticbeanstalk { } public struct ApplicationVersionDescriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationVersion", required: false, type: .structure) ] /// The ApplicationVersionDescription of the application version. @@ -2963,8 +3010,24 @@ extension Elasticbeanstalk { } } + public struct LaunchConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string) + ] + /// The name of the launch configuration. + public let name: String? + + public init(name: String? = nil) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + public struct EnvironmentLink: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "LinkName", required: false, type: .string) ] @@ -2984,24 +3047,8 @@ extension Elasticbeanstalk { } } - public struct LaunchConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: false, type: .string) - ] - /// The name of the launch configuration. - public let name: String? - - public init(name: String? = nil) { - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case name = "Name" - } - } - public struct MaxAgeRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxAgeInDays", required: false, type: .integer), AWSShapeMember(label: "DeleteSourceFromS3", required: false, type: .boolean), AWSShapeMember(label: "Enabled", required: true, type: .boolean) @@ -3026,8 +3073,34 @@ extension Elasticbeanstalk { } } + public struct UpdateTagsForResourceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TagsToAdd", required: false, type: .list), + AWSShapeMember(label: "ResourceArn", required: true, type: .string), + AWSShapeMember(label: "TagsToRemove", required: false, type: .list) + ] + /// A list of tags to add or update. If a key of an existing tag is added, the tag's value is updated. + public let tagsToAdd: [Tag]? + /// The Amazon Resource Name (ARN) of the resouce to be updated. Must be the ARN of an Elastic Beanstalk environment. + public let resourceArn: String + /// A list of tag keys to remove. If a tag key doesn't exist, it is silently ignored. + public let tagsToRemove: [String]? + + public init(tagsToAdd: [Tag]? = nil, resourceArn: String, tagsToRemove: [String]? = nil) { + self.tagsToAdd = tagsToAdd + self.resourceArn = resourceArn + self.tagsToRemove = tagsToRemove + } + + private enum CodingKeys: String, CodingKey { + case tagsToAdd = "TagsToAdd" + case resourceArn = "ResourceArn" + case tagsToRemove = "TagsToRemove" + } + } + public struct ListPlatformVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Filters", required: false, type: .list) @@ -3053,7 +3126,7 @@ extension Elasticbeanstalk { } public struct UpdateApplicationVersionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionLabel", required: true, type: .string), AWSShapeMember(label: "ApplicationName", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) @@ -3079,7 +3152,7 @@ extension Elasticbeanstalk { } public struct DeleteEnvironmentConfigurationMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: true, type: .string), AWSShapeMember(label: "ApplicationName", required: true, type: .string) ] @@ -3100,7 +3173,7 @@ extension Elasticbeanstalk { } public struct EnvironmentInfoDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "InfoType", required: false, type: .enum), AWSShapeMember(label: "Ec2InstanceId", required: false, type: .string), @@ -3131,7 +3204,7 @@ extension Elasticbeanstalk { } public struct DeleteApplicationVersionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionLabel", required: true, type: .string), AWSShapeMember(label: "DeleteSourceBundle", required: false, type: .boolean), AWSShapeMember(label: "ApplicationName", required: true, type: .string) @@ -3157,7 +3230,7 @@ extension Elasticbeanstalk { } public struct ValidationMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Namespace", required: false, type: .string), AWSShapeMember(label: "Severity", required: false, type: .enum), AWSShapeMember(label: "Message", required: false, type: .string), @@ -3200,7 +3273,7 @@ extension Elasticbeanstalk { } public struct Queue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "URL", required: false, type: .string) ] @@ -3230,7 +3303,7 @@ extension Elasticbeanstalk { } public struct DescribeEnvironmentManagedActionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EnvironmentName", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "EnvironmentId", required: false, type: .string) @@ -3256,7 +3329,7 @@ extension Elasticbeanstalk { } public struct DeletePlatformVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformArn", required: false, type: .string) ] /// The ARN of the version of the custom platform. @@ -3272,7 +3345,7 @@ extension Elasticbeanstalk { } public struct ConfigurationOptionSetting: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Namespace", required: false, type: .string), AWSShapeMember(label: "OptionName", required: false, type: .string), AWSShapeMember(label: "Value", required: false, type: .string), @@ -3303,7 +3376,7 @@ extension Elasticbeanstalk { } public struct CreateApplicationMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceLifecycleConfig", required: false, type: .structure), AWSShapeMember(label: "ApplicationName", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) @@ -3329,7 +3402,7 @@ extension Elasticbeanstalk { } public struct LoadBalancerDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: false, type: .string), AWSShapeMember(label: "Domain", required: false, type: .string), AWSShapeMember(label: "Listeners", required: false, type: .list) @@ -3355,7 +3428,7 @@ extension Elasticbeanstalk { } public struct UpdateApplicationResourceLifecycleMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceLifecycleConfig", required: true, type: .structure), AWSShapeMember(label: "ApplicationName", required: true, type: .string) ] @@ -3376,7 +3449,7 @@ extension Elasticbeanstalk { } public struct SingleInstanceHealth: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Color", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "Deployment", required: false, type: .structure), @@ -3437,7 +3510,7 @@ extension Elasticbeanstalk { } public struct EnvironmentResourceDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoScalingGroups", required: false, type: .list), AWSShapeMember(label: "LaunchConfigurations", required: false, type: .list), AWSShapeMember(label: "Triggers", required: false, type: .list), @@ -3483,60 +3556,70 @@ extension Elasticbeanstalk { } public struct DescribeEnvironmentsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IncludedDeletedBackTo", required: false, type: .timestamp), - AWSShapeMember(label: "EnvironmentIds", required: false, type: .list), - AWSShapeMember(label: "ApplicationName", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IncludeDeleted", required: false, type: .boolean), + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "EnvironmentIds", required: false, type: .list), + AWSShapeMember(label: "IncludedDeletedBackTo", required: false, type: .timestamp), AWSShapeMember(label: "VersionLabel", required: false, type: .string), - AWSShapeMember(label: "EnvironmentNames", required: false, type: .list) + AWSShapeMember(label: "EnvironmentNames", required: false, type: .list), + AWSShapeMember(label: "ApplicationName", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// If specified when IncludeDeleted is set to true, then environments deleted after this date are displayed. - public let includedDeletedBackTo: TimeStamp? - /// If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that have the specified IDs. - public let environmentIds: [String]? - /// If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that are associated with this application. - public let applicationName: String? /// Indicates whether to include deleted environments: true: Environments that have been deleted after IncludedDeletedBackTo are displayed. false: Do not include deleted environments. public let includeDeleted: Bool? + /// For a paginated request. Specify a maximum number of environments to include in each response. If no MaxRecords is specified, all available environments are retrieved in a single response. + public let maxRecords: Int32? + /// If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that have the specified IDs. + public let environmentIds: [String]? + /// If specified when IncludeDeleted is set to true, then environments deleted after this date are displayed. + public let includedDeletedBackTo: TimeStamp? /// If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that are associated with this application version. public let versionLabel: String? /// If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that have the specified names. public let environmentNames: [String]? + /// If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that are associated with this application. + public let applicationName: String? + /// For a paginated request. Specify a token from a previous response page to retrieve the next response page. All other parameter values must be identical to the ones specified in the initial request. If no NextToken is specified, the first page is retrieved. + public let nextToken: String? - public init(includedDeletedBackTo: TimeStamp? = nil, environmentIds: [String]? = nil, applicationName: String? = nil, includeDeleted: Bool? = nil, versionLabel: String? = nil, environmentNames: [String]? = nil) { - self.includedDeletedBackTo = includedDeletedBackTo - self.environmentIds = environmentIds - self.applicationName = applicationName + public init(includeDeleted: Bool? = nil, maxRecords: Int32? = nil, environmentIds: [String]? = nil, includedDeletedBackTo: TimeStamp? = nil, versionLabel: String? = nil, environmentNames: [String]? = nil, applicationName: String? = nil, nextToken: String? = nil) { self.includeDeleted = includeDeleted + self.maxRecords = maxRecords + self.environmentIds = environmentIds + self.includedDeletedBackTo = includedDeletedBackTo self.versionLabel = versionLabel self.environmentNames = environmentNames + self.applicationName = applicationName + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case includedDeletedBackTo = "IncludedDeletedBackTo" - case environmentIds = "EnvironmentIds" - case applicationName = "ApplicationName" case includeDeleted = "IncludeDeleted" + case maxRecords = "MaxRecords" + case environmentIds = "EnvironmentIds" + case includedDeletedBackTo = "IncludedDeletedBackTo" case versionLabel = "VersionLabel" case environmentNames = "EnvironmentNames" + case applicationName = "ApplicationName" + case nextToken = "NextToken" } } public struct DescribeApplicationVersionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "ApplicationName", required: false, type: .string), AWSShapeMember(label: "VersionLabels", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// Specify a maximum number of application versions to paginate in the request. + /// For a paginated request. Specify a maximum number of application versions to include in each response. If no MaxRecords is specified, all available application versions are retrieved in a single response. public let maxRecords: Int32? /// Specify an application name to show only application versions for that application. public let applicationName: String? /// Specify a version label to show a specific application version. public let versionLabels: [String]? - /// Specify a next token to retrieve the next page in a paginated request. + /// For a paginated request. Specify a token from a previous response page to retrieve the next response page. All other parameter values must be identical to the ones specified in the initial request. If no NextToken is specified, the first page is retrieved. public let nextToken: String? public init(maxRecords: Int32? = nil, applicationName: String? = nil, versionLabels: [String]? = nil, nextToken: String? = nil) { diff --git a/Sources/AWSSDKSwift/Services/elasticfilesystem/Elasticfilesystem_Shapes.swift b/Sources/AWSSDKSwift/Services/elasticfilesystem/Elasticfilesystem_Shapes.swift index 6db81740ed0..64dde5ca4ab 100644 --- a/Sources/AWSSDKSwift/Services/elasticfilesystem/Elasticfilesystem_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/elasticfilesystem/Elasticfilesystem_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Elasticfilesystem { public struct DescribeFileSystemsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileSystems", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "NextMarker", required: false, type: .string) @@ -32,7 +32,7 @@ extension Elasticfilesystem { } public struct DescribeTagsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Tags", required: true, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) @@ -58,7 +58,7 @@ extension Elasticfilesystem { } public struct CreateTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileSystemId", location: .uri(locationName: "FileSystemId"), required: true, type: .string), AWSShapeMember(label: "Tags", required: true, type: .list) ] @@ -79,7 +79,7 @@ extension Elasticfilesystem { } public struct DescribeMountTargetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .integer), AWSShapeMember(label: "FileSystemId", location: .querystring(locationName: "FileSystemId"), required: false, type: .string), AWSShapeMember(label: "Marker", location: .querystring(locationName: "Marker"), required: false, type: .string), @@ -110,7 +110,7 @@ extension Elasticfilesystem { } public struct DescribeFileSystemsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .integer), AWSShapeMember(label: "FileSystemId", location: .querystring(locationName: "FileSystemId"), required: false, type: .string), AWSShapeMember(label: "Marker", location: .querystring(locationName: "Marker"), required: false, type: .string), @@ -141,7 +141,7 @@ extension Elasticfilesystem { } public struct DescribeMountTargetSecurityGroupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroups", required: true, type: .list) ] /// Array of security groups. @@ -165,7 +165,7 @@ extension Elasticfilesystem { } public struct DeleteTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileSystemId", location: .uri(locationName: "FileSystemId"), required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -186,7 +186,7 @@ extension Elasticfilesystem { } public struct DescribeTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", location: .querystring(locationName: "Marker"), required: false, type: .string), AWSShapeMember(label: "FileSystemId", location: .uri(locationName: "FileSystemId"), required: true, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .integer) @@ -212,7 +212,7 @@ extension Elasticfilesystem { } public struct ModifyMountTargetSecurityGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MountTargetId", location: .uri(locationName: "MountTargetId"), required: true, type: .string), AWSShapeMember(label: "SecurityGroups", required: false, type: .list) ] @@ -233,7 +233,7 @@ extension Elasticfilesystem { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -254,7 +254,7 @@ extension Elasticfilesystem { } public struct DescribeMountTargetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MountTargets", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) @@ -280,7 +280,7 @@ extension Elasticfilesystem { } public struct DeleteMountTargetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MountTargetId", location: .uri(locationName: "MountTargetId"), required: true, type: .string) ] /// ID of the mount target to delete (String). @@ -296,7 +296,7 @@ extension Elasticfilesystem { } public struct DeleteFileSystemRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileSystemId", location: .uri(locationName: "FileSystemId"), required: true, type: .string) ] /// ID of the file system you want to delete. @@ -312,28 +312,38 @@ extension Elasticfilesystem { } public struct CreateFileSystemRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KmsKeyId", required: false, type: .string), AWSShapeMember(label: "PerformanceMode", required: false, type: .enum), + AWSShapeMember(label: "Encrypted", required: false, type: .boolean), AWSShapeMember(label: "CreationToken", required: true, type: .string) ] + /// The id of the AWS KMS CMK that will be used to protect the encrypted file system. This parameter is only required if you want to use a non-default CMK. If this parameter is not specified, the default CMK for Amazon EFS is used. This id can be in one of the following formats: Key ID - A unique identifier of the key. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. ARN - An Amazon Resource Name for the key. For example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. Key alias - A previously created display name for a key. For example, alias/projectKey1. Key alias ARN - An Amazon Resource Name for a key alias. For example, arn:aws:kms:us-west-2:444455556666:alias/projectKey1. Note that if the KmsKeyId is specified, the CreateFileSystemRequest$Encrypted parameter must be set to true. + public let kmsKeyId: String? /// The PerformanceMode of the file system. We recommend generalPurpose performance mode for most file systems. File systems using the maxIO performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations. This can't be changed after the file system has been created. public let performanceMode: PerformanceMode? + /// A boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying a CreateFileSystemRequest$KmsKeyId for an existing AWS Key Management Service (AWS KMS) customer master key (CMK). If you don't specify a CMK, then the default CMK for Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file system. + public let encrypted: Bool? /// String of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent creation. public let creationToken: String - public init(performanceMode: PerformanceMode? = nil, creationToken: String) { + public init(kmsKeyId: String? = nil, performanceMode: PerformanceMode? = nil, encrypted: Bool? = nil, creationToken: String) { + self.kmsKeyId = kmsKeyId self.performanceMode = performanceMode + self.encrypted = encrypted self.creationToken = creationToken } private enum CodingKeys: String, CodingKey { + case kmsKeyId = "KmsKeyId" case performanceMode = "PerformanceMode" + case encrypted = "Encrypted" case creationToken = "CreationToken" } } public struct FileSystemSize: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .long), AWSShapeMember(label: "Timestamp", required: false, type: .timestamp) ] @@ -354,7 +364,7 @@ extension Elasticfilesystem { } public struct DescribeMountTargetSecurityGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MountTargetId", location: .uri(locationName: "MountTargetId"), required: true, type: .string) ] /// ID of the mount target whose security groups you want to retrieve. @@ -375,40 +385,10 @@ extension Elasticfilesystem { public var description: String { return self.rawValue } } - public struct CreateMountTargetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SecurityGroups", required: false, type: .list), - AWSShapeMember(label: "FileSystemId", required: true, type: .string), - AWSShapeMember(label: "SubnetId", required: true, type: .string), - AWSShapeMember(label: "IpAddress", required: false, type: .string) - ] - /// Up to five VPC security group IDs, of the form sg-xxxxxxxx. These must be for the same VPC as subnet specified. - public let securityGroups: [String]? - /// ID of the file system for which to create the mount target. - public let fileSystemId: String - /// ID of the subnet to add the mount target in. - public let subnetId: String - /// Valid IPv4 address within the address range of the specified subnet. - public let ipAddress: String? - - public init(securityGroups: [String]? = nil, fileSystemId: String, subnetId: String, ipAddress: String? = nil) { - self.securityGroups = securityGroups - self.fileSystemId = fileSystemId - self.subnetId = subnetId - self.ipAddress = ipAddress - } - - private enum CodingKeys: String, CodingKey { - case securityGroups = "SecurityGroups" - case fileSystemId = "FileSystemId" - case subnetId = "SubnetId" - case ipAddress = "IpAddress" - } - } - public struct FileSystemDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Encrypted", required: false, type: .boolean), AWSShapeMember(label: "CreationToken", required: true, type: .string), AWSShapeMember(label: "SizeInBytes", required: true, type: .structure), AWSShapeMember(label: "FileSystemId", required: true, type: .string), @@ -416,10 +396,13 @@ extension Elasticfilesystem { AWSShapeMember(label: "CreationTime", required: true, type: .timestamp), AWSShapeMember(label: "PerformanceMode", required: true, type: .enum), AWSShapeMember(label: "NumberOfMountTargets", required: true, type: .integer), - AWSShapeMember(label: "OwnerId", required: true, type: .string) + AWSShapeMember(label: "OwnerId", required: true, type: .string), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) ] /// You can add tags to a file system, including a Name tag. For more information, see CreateTags. If the file system has a Name tag, Amazon EFS returns the value in this field. public let name: String? + /// A boolean value that, if true, indicates that the file system is encrypted. + public let encrypted: Bool? /// Opaque string specified in the request. public let creationToken: String /// Latest known metered size (in bytes) of data stored in the file system, in bytes, in its Value field, and the time at which that size was determined in its Timestamp field. The Timestamp value is the integer number of seconds since 1970-01-01T00:00:00Z. Note that the value does not represent the size of a consistent snapshot of the file system, but it is eventually consistent when there are no writes to the file system. That is, the value will represent actual size only if the file system is not modified for a period longer than a couple of hours. Otherwise, the value is not the exact size the file system was at any instant in time. @@ -436,9 +419,12 @@ extension Elasticfilesystem { public let numberOfMountTargets: Int32 /// AWS account that created the file system. If the file system was created by an IAM user, the parent account to which the user belongs is the owner. public let ownerId: String + /// The id of an AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the encrypted file system. + public let kmsKeyId: String? - public init(name: String? = nil, creationToken: String, sizeInBytes: FileSystemSize, fileSystemId: String, lifeCycleState: LifeCycleState, creationTime: TimeStamp, performanceMode: PerformanceMode, numberOfMountTargets: Int32, ownerId: String) { + public init(name: String? = nil, encrypted: Bool? = nil, creationToken: String, sizeInBytes: FileSystemSize, fileSystemId: String, lifeCycleState: LifeCycleState, creationTime: TimeStamp, performanceMode: PerformanceMode, numberOfMountTargets: Int32, ownerId: String, kmsKeyId: String? = nil) { self.name = name + self.encrypted = encrypted self.creationToken = creationToken self.sizeInBytes = sizeInBytes self.fileSystemId = fileSystemId @@ -447,10 +433,12 @@ extension Elasticfilesystem { self.performanceMode = performanceMode self.numberOfMountTargets = numberOfMountTargets self.ownerId = ownerId + self.kmsKeyId = kmsKeyId } private enum CodingKeys: String, CodingKey { case name = "Name" + case encrypted = "Encrypted" case creationToken = "CreationToken" case sizeInBytes = "SizeInBytes" case fileSystemId = "FileSystemId" @@ -459,11 +447,43 @@ extension Elasticfilesystem { case performanceMode = "PerformanceMode" case numberOfMountTargets = "NumberOfMountTargets" case ownerId = "OwnerId" + case kmsKeyId = "KmsKeyId" + } + } + + public struct CreateMountTargetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SecurityGroups", required: false, type: .list), + AWSShapeMember(label: "FileSystemId", required: true, type: .string), + AWSShapeMember(label: "SubnetId", required: true, type: .string), + AWSShapeMember(label: "IpAddress", required: false, type: .string) + ] + /// Up to five VPC security group IDs, of the form sg-xxxxxxxx. These must be for the same VPC as subnet specified. + public let securityGroups: [String]? + /// ID of the file system for which to create the mount target. + public let fileSystemId: String + /// ID of the subnet to add the mount target in. + public let subnetId: String + /// Valid IPv4 address within the address range of the specified subnet. + public let ipAddress: String? + + public init(securityGroups: [String]? = nil, fileSystemId: String, subnetId: String, ipAddress: String? = nil) { + self.securityGroups = securityGroups + self.fileSystemId = fileSystemId + self.subnetId = subnetId + self.ipAddress = ipAddress + } + + private enum CodingKeys: String, CodingKey { + case securityGroups = "SecurityGroups" + case fileSystemId = "FileSystemId" + case subnetId = "SubnetId" + case ipAddress = "IpAddress" } } public struct MountTargetDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", required: true, type: .string), AWSShapeMember(label: "NetworkInterfaceId", required: false, type: .string), AWSShapeMember(label: "MountTargetId", required: true, type: .string), diff --git a/Sources/AWSSDKSwift/Services/elasticloadbalancing/Elasticloadbalancing_Shapes.swift b/Sources/AWSSDKSwift/Services/elasticloadbalancing/Elasticloadbalancing_Shapes.swift index 56faa86a4ab..2c0b6c197d1 100644 --- a/Sources/AWSSDKSwift/Services/elasticloadbalancing/Elasticloadbalancing_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/elasticloadbalancing/Elasticloadbalancing_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Elasticloadbalancing { public struct PolicyAttributeTypeDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: false, type: .string), AWSShapeMember(label: "AttributeType", required: false, type: .string), AWSShapeMember(label: "DefaultValue", required: false, type: .string), @@ -42,7 +42,7 @@ extension Elasticloadbalancing { } public struct AddAvailabilityZonesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list) ] /// The updated list of Availability Zones for the load balancer. @@ -58,7 +58,7 @@ extension Elasticloadbalancing { } public struct DeleteLoadBalancerPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "PolicyName", required: true, type: .string) ] @@ -79,7 +79,7 @@ extension Elasticloadbalancing { } public struct PolicyAttributeDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: false, type: .string), AWSShapeMember(label: "AttributeValue", required: false, type: .string) ] @@ -100,7 +100,7 @@ extension Elasticloadbalancing { } public struct DetachLoadBalancerFromSubnetsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subnets", required: true, type: .list), AWSShapeMember(label: "LoadBalancerName", required: true, type: .string) ] @@ -121,7 +121,7 @@ extension Elasticloadbalancing { } public struct DescribeAccessPointsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerDescriptions", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -142,7 +142,7 @@ extension Elasticloadbalancing { } public struct CreateLoadBalancerListenerInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "Listeners", required: true, type: .list) ] @@ -163,7 +163,7 @@ extension Elasticloadbalancing { } public struct RemoveAvailabilityZonesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: true, type: .list), AWSShapeMember(label: "LoadBalancerName", required: true, type: .string) ] @@ -184,7 +184,7 @@ extension Elasticloadbalancing { } public struct ModifyLoadBalancerAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "LoadBalancerAttributes", required: true, type: .structure) ] @@ -205,7 +205,7 @@ extension Elasticloadbalancing { } public struct AttachLoadBalancerToSubnetsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subnets", required: true, type: .list), AWSShapeMember(label: "LoadBalancerName", required: true, type: .string) ] @@ -226,7 +226,7 @@ extension Elasticloadbalancing { } public struct CreateAccessPointOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DNSName", required: false, type: .string) ] /// The DNS name of the load balancer. @@ -242,7 +242,7 @@ extension Elasticloadbalancing { } public struct ListenerDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyNames", required: false, type: .list), AWSShapeMember(label: "Listener", required: false, type: .structure) ] @@ -263,7 +263,7 @@ extension Elasticloadbalancing { } public struct DeregisterEndPointsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Instances", required: false, type: .list) ] /// The remaining instances registered with the load balancer. @@ -279,7 +279,7 @@ extension Elasticloadbalancing { } public struct TagKeyOnly: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .string) ] /// The name of the key. @@ -295,7 +295,7 @@ extension Elasticloadbalancing { } public struct LoadBalancerAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConnectionSettings", required: false, type: .structure), AWSShapeMember(label: "AdditionalAttributes", required: false, type: .list), AWSShapeMember(label: "AccessLog", required: false, type: .structure), @@ -331,7 +331,7 @@ extension Elasticloadbalancing { } public struct DescribeAccessPointsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "LoadBalancerNames", required: false, type: .list), AWSShapeMember(label: "PageSize", required: false, type: .integer) @@ -357,7 +357,7 @@ extension Elasticloadbalancing { } public struct AdditionalAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -378,7 +378,7 @@ extension Elasticloadbalancing { } public struct SetLoadBalancerPoliciesOfListenerInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "LoadBalancerPort", required: true, type: .integer), AWSShapeMember(label: "PolicyNames", required: true, type: .list) @@ -404,7 +404,7 @@ extension Elasticloadbalancing { } public struct AddAvailabilityZonesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: true, type: .list), AWSShapeMember(label: "LoadBalancerName", required: true, type: .string) ] @@ -425,7 +425,7 @@ extension Elasticloadbalancing { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -450,7 +450,7 @@ extension Elasticloadbalancing { } public struct TagDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list) ] @@ -475,7 +475,7 @@ extension Elasticloadbalancing { } public struct ApplySecurityGroupsToLoadBalancerInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "SecurityGroups", required: true, type: .list) ] @@ -496,7 +496,7 @@ extension Elasticloadbalancing { } public struct DescribeAccountLimitsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "PageSize", required: false, type: .integer) ] @@ -517,7 +517,7 @@ extension Elasticloadbalancing { } public struct ConnectionDraining: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Timeout", required: false, type: .integer), AWSShapeMember(label: "Enabled", required: true, type: .boolean) ] @@ -538,7 +538,7 @@ extension Elasticloadbalancing { } public struct AccessLog: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EmitInterval", required: false, type: .integer), AWSShapeMember(label: "S3BucketName", required: false, type: .string), AWSShapeMember(label: "S3BucketPrefix", required: false, type: .string), @@ -569,7 +569,7 @@ extension Elasticloadbalancing { } public struct Listener: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceProtocol", required: false, type: .string), AWSShapeMember(label: "InstancePort", required: true, type: .integer), AWSShapeMember(label: "LoadBalancerPort", required: true, type: .integer), @@ -605,7 +605,7 @@ extension Elasticloadbalancing { } public struct Instance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: false, type: .string) ] /// The instance ID. @@ -621,7 +621,7 @@ extension Elasticloadbalancing { } public struct CreateLBCookieStickinessPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "CookieExpirationPeriod", required: false, type: .long), AWSShapeMember(label: "PolicyName", required: true, type: .string) @@ -647,7 +647,7 @@ extension Elasticloadbalancing { } public struct RegisterEndPointsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Instances", required: false, type: .list) ] /// The updated list of instances for the load balancer. @@ -663,7 +663,7 @@ extension Elasticloadbalancing { } public struct Policies: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AppCookieStickinessPolicies", required: false, type: .list), AWSShapeMember(label: "OtherPolicies", required: false, type: .list), AWSShapeMember(label: "LBCookieStickinessPolicies", required: false, type: .list) @@ -689,7 +689,7 @@ extension Elasticloadbalancing { } public struct DescribeLoadBalancerAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string) ] /// The name of the load balancer. @@ -705,7 +705,7 @@ extension Elasticloadbalancing { } public struct DescribeTagsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagDescriptions", required: false, type: .list) ] /// Information about the tags. @@ -721,7 +721,7 @@ extension Elasticloadbalancing { } public struct PolicyAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: false, type: .string), AWSShapeMember(label: "AttributeValue", required: false, type: .string) ] @@ -742,7 +742,7 @@ extension Elasticloadbalancing { } public struct RegisterEndPointsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "Instances", required: true, type: .list) ] @@ -771,7 +771,7 @@ extension Elasticloadbalancing { } public struct HealthCheck: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Target", required: true, type: .string), AWSShapeMember(label: "UnhealthyThreshold", required: true, type: .integer), AWSShapeMember(label: "HealthyThreshold", required: true, type: .integer), @@ -807,7 +807,7 @@ extension Elasticloadbalancing { } public struct ModifyLoadBalancerAttributesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: false, type: .string), AWSShapeMember(label: "LoadBalancerAttributes", required: false, type: .structure) ] @@ -828,7 +828,7 @@ extension Elasticloadbalancing { } public struct PolicyDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyTypeName", required: false, type: .string), AWSShapeMember(label: "PolicyAttributeDescriptions", required: false, type: .list), AWSShapeMember(label: "PolicyName", required: false, type: .string) @@ -854,7 +854,7 @@ extension Elasticloadbalancing { } public struct CreateAppCookieStickinessPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CookieName", required: true, type: .string), AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "PolicyName", required: true, type: .string) @@ -880,7 +880,7 @@ extension Elasticloadbalancing { } public struct DescribeLoadBalancerPoliciesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyDescriptions", required: false, type: .list) ] /// Information about the policies. @@ -896,7 +896,7 @@ extension Elasticloadbalancing { } public struct DeleteAccessPointInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string) ] /// The name of the load balancer. @@ -912,7 +912,7 @@ extension Elasticloadbalancing { } public struct PolicyTypeDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyTypeName", required: false, type: .string), AWSShapeMember(label: "PolicyAttributeTypeDescriptions", required: false, type: .list), AWSShapeMember(label: "Description", required: false, type: .string) @@ -938,7 +938,7 @@ extension Elasticloadbalancing { } public struct DetachLoadBalancerFromSubnetsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subnets", required: false, type: .list) ] /// The IDs of the remaining subnets for the load balancer. @@ -954,7 +954,7 @@ extension Elasticloadbalancing { } public struct ConfigureHealthCheckOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheck", required: false, type: .structure) ] /// The updated health check. @@ -970,7 +970,7 @@ extension Elasticloadbalancing { } public struct DescribeLoadBalancerPolicyTypesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyTypeNames", required: false, type: .list) ] /// The names of the policy types. If no names are specified, describes all policy types defined by Elastic Load Balancing. @@ -986,7 +986,7 @@ extension Elasticloadbalancing { } public struct CreateAccessPointInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "SecurityGroups", required: false, type: .list), AWSShapeMember(label: "Listeners", required: true, type: .list), @@ -1044,7 +1044,7 @@ extension Elasticloadbalancing { } public struct DescribeLoadBalancerPoliciesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: false, type: .string), AWSShapeMember(label: "PolicyNames", required: false, type: .list) ] @@ -1065,7 +1065,7 @@ extension Elasticloadbalancing { } public struct DeleteLoadBalancerListenerInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerPorts", required: true, type: .list), AWSShapeMember(label: "LoadBalancerName", required: true, type: .string) ] @@ -1090,7 +1090,7 @@ extension Elasticloadbalancing { } public struct InstanceState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReasonCode", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "State", required: false, type: .string), @@ -1121,7 +1121,7 @@ extension Elasticloadbalancing { } public struct DeregisterEndPointsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "Instances", required: true, type: .list) ] @@ -1146,7 +1146,7 @@ extension Elasticloadbalancing { } public struct DescribeTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerNames", required: true, type: .list) ] /// The names of the load balancers. @@ -1162,7 +1162,7 @@ extension Elasticloadbalancing { } public struct ApplySecurityGroupsToLoadBalancerOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroups", required: false, type: .list) ] /// The IDs of the security groups associated with the load balancer. @@ -1178,7 +1178,7 @@ extension Elasticloadbalancing { } public struct CrossZoneLoadBalancing: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Enabled", required: true, type: .boolean) ] /// Specifies whether cross-zone load balancing is enabled for the load balancer. @@ -1194,7 +1194,7 @@ extension Elasticloadbalancing { } public struct Limit: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Max", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -1215,7 +1215,7 @@ extension Elasticloadbalancing { } public struct DescribeLoadBalancerAttributesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerAttributes", required: false, type: .structure) ] /// Information about the load balancer attributes. @@ -1231,7 +1231,7 @@ extension Elasticloadbalancing { } public struct LBCookieStickinessPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CookieExpirationPeriod", required: false, type: .long), AWSShapeMember(label: "PolicyName", required: false, type: .string) ] @@ -1252,7 +1252,7 @@ extension Elasticloadbalancing { } public struct ConnectionSettings: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdleTimeout", required: true, type: .integer) ] /// The time, in seconds, that the connection is allowed to be idle (no data has been sent over the connection) before it is closed by the load balancer. @@ -1268,7 +1268,7 @@ extension Elasticloadbalancing { } public struct SetLoadBalancerPoliciesForBackendServerInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyNames", required: true, type: .list), AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "InstancePort", required: true, type: .integer) @@ -1294,7 +1294,7 @@ extension Elasticloadbalancing { } public struct DescribeLoadBalancerPolicyTypesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyTypeDescriptions", required: false, type: .list) ] /// Information about the policy types. @@ -1310,7 +1310,7 @@ extension Elasticloadbalancing { } public struct DescribeEndPointStateOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceStates", required: false, type: .list) ] /// Information about the health of the instances. @@ -1330,7 +1330,7 @@ extension Elasticloadbalancing { } public struct SourceSecurityGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OwnerAlias", required: false, type: .string), AWSShapeMember(label: "GroupName", required: false, type: .string) ] @@ -1355,7 +1355,7 @@ extension Elasticloadbalancing { } public struct RemoveAvailabilityZonesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list) ] /// The remaining Availability Zones for the load balancer. @@ -1371,7 +1371,7 @@ extension Elasticloadbalancing { } public struct AppCookieStickinessPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CookieName", required: false, type: .string), AWSShapeMember(label: "PolicyName", required: false, type: .string) ] @@ -1392,7 +1392,7 @@ extension Elasticloadbalancing { } public struct AddTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerNames", required: true, type: .list), AWSShapeMember(label: "Tags", required: true, type: .list) ] @@ -1413,7 +1413,7 @@ extension Elasticloadbalancing { } public struct CreateLoadBalancerPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyAttributes", required: false, type: .list), AWSShapeMember(label: "PolicyTypeName", required: true, type: .string), AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), @@ -1448,7 +1448,7 @@ extension Elasticloadbalancing { } public struct AttachLoadBalancerToSubnetsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subnets", required: false, type: .list) ] /// The IDs of the subnets attached to the load balancer. @@ -1464,7 +1464,7 @@ extension Elasticloadbalancing { } public struct DescribeAccountLimitsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limits", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1485,7 +1485,7 @@ extension Elasticloadbalancing { } public struct ConfigureHealthCheckInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "HealthCheck", required: true, type: .structure) ] @@ -1506,7 +1506,7 @@ extension Elasticloadbalancing { } public struct LoadBalancerDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "VPCId", required: false, type: .string), AWSShapeMember(label: "BackendServerDescriptions", required: false, type: .list), @@ -1597,7 +1597,7 @@ extension Elasticloadbalancing { } public struct SetLoadBalancerListenerSSLCertificateInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "LoadBalancerPort", required: true, type: .integer), AWSShapeMember(label: "SSLCertificateId", required: true, type: .string) @@ -1623,7 +1623,7 @@ extension Elasticloadbalancing { } public struct BackendServerDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyNames", required: false, type: .list), AWSShapeMember(label: "InstancePort", required: false, type: .integer) ] @@ -1644,7 +1644,7 @@ extension Elasticloadbalancing { } public struct DescribeEndPointStateInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerName", required: true, type: .string), AWSShapeMember(label: "Instances", required: false, type: .list) ] @@ -1665,7 +1665,7 @@ extension Elasticloadbalancing { } public struct RemoveTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerNames", required: true, type: .list), AWSShapeMember(label: "Tags", required: true, type: .list) ] diff --git a/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_API.swift b/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_API.swift index 0fb56a45055..92579395afc 100644 --- a/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_API.swift +++ b/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Elastic Load Balancing A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets. Elastic Load Balancing supports two types of load balancers: Classic Load Balancers and Application Load Balancers. A Classic Load Balancer makes routing and load balancing decisions either at the transport layer (TCP/SSL) or the application layer (HTTP/HTTPS), and supports either EC2-Classic or a VPC. An Application Load Balancer makes routing and load balancing decisions at the application layer (HTTP/HTTPS), supports path-based routing, and can route requests to one or more ports on each EC2 instance or container instance in your virtual private cloud (VPC). For more information, see the Elastic Load Balancing User Guide. This reference covers the 2015-12-01 API, which supports Application Load Balancers. The 2012-06-01 API supports Classic Load Balancers. To get started, complete the following tasks: Create an Application Load Balancer using CreateLoadBalancer. Create a target group using CreateTargetGroup. Register targets for the target group using RegisterTargets. Create one or more listeners for your load balancer using CreateListener. (Optional) Create one or more rules for content routing based on URL using CreateRule. To delete an Application Load Balancer and its related resources, complete the following tasks: Delete the load balancer using DeleteLoadBalancer. Delete the target group using DeleteTargetGroup. All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds. +Elastic Load Balancing A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets. Elastic Load Balancing supports the following types of load balancers: Application Load Balancers, Network Load Balancers, and Classic Load Balancers. An Application Load Balancer makes routing and load balancing decisions at the application layer (HTTP/HTTPS). A Network Load Balancer makes routing and load balancing decisions at the transport layer (TCP). Both Application Load Balancers and Network Load Balancers can route requests to one or more ports on each EC2 instance or container instance in your virtual private cloud (VPC). A Classic Load Balancer makes routing and load balancing decisions either at the transport layer (TCP/SSL) or the application layer (HTTP/HTTPS), and supports either EC2-Classic or a VPC. For more information, see the Elastic Load Balancing User Guide. This reference covers the 2015-12-01 API, which supports Application Load Balancers and Network Load Balancers. The 2012-06-01 API supports Classic Load Balancers. To get started, complete the following tasks: Create a load balancer using CreateLoadBalancer. Create a target group using CreateTargetGroup. Register targets for the target group using RegisterTargets. Create one or more listeners for your load balancer using CreateListener. To delete a load balancer and its related resources, complete the following tasks: Delete the load balancer using DeleteLoadBalancer. Delete the target group using DeleteTargetGroup. All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds. */ public struct Elasticloadbalancingv2 { @@ -24,7 +24,7 @@ public struct Elasticloadbalancingv2 { ) } - /// Enables the Availability Zone for the specified subnets for the specified load balancer. The specified subnets replace the previously enabled subnets. + /// Enables the Availability Zone for the specified subnets for the specified Application Load Balancer. The specified subnets replace the previously enabled subnets. Note that you can't change the subnets for a Network Load Balancer. public func setSubnets(_ input: SetSubnetsInput) throws -> SetSubnetsOutput { return try client.send(operation: "SetSubnets", path: "/", httpMethod: "POST", input: input) } @@ -34,89 +34,109 @@ public struct Elasticloadbalancingv2 { return try client.send(operation: "DescribeTargetHealth", path: "/", httpMethod: "POST", input: input) } + /// Describes the specified policies or all policies used for SSL negotiation. For more information, see Security Policies in the Application Load Balancers Guide. + public func describeSSLPolicies(_ input: DescribeSSLPoliciesInput) throws -> DescribeSSLPoliciesOutput { + return try client.send(operation: "DescribeSSLPolicies", path: "/", httpMethod: "POST", input: input) + } + /// Deregisters the specified targets from the specified target group. After the targets are deregistered, they no longer receive traffic from the load balancer. public func deregisterTargets(_ input: DeregisterTargetsInput) throws -> DeregisterTargetsOutput { return try client.send(operation: "DeregisterTargets", path: "/", httpMethod: "POST", input: input) } - /// Describes the specified policies or all policies used for SSL negotiation. For more information, see Security Policies in the Application Load Balancers Guide. - public func describeSSLPolicies(_ input: DescribeSSLPoliciesInput) throws -> DescribeSSLPoliciesOutput { - return try client.send(operation: "DescribeSSLPolicies", path: "/", httpMethod: "POST", input: input) + /// Adds the specified certificate to the specified secure listener. If the certificate was already added, the call is successful but the certificate is not added again. To list the certificates for your listener, use DescribeListenerCertificates. To remove certificates from your listener, use RemoveListenerCertificates. + public func addListenerCertificates(_ input: AddListenerCertificatesInput) throws -> AddListenerCertificatesOutput { + return try client.send(operation: "AddListenerCertificates", path: "/", httpMethod: "POST", input: input) } - /// Describes the specified Application Load Balancers or all of your Application Load Balancers. To describe the listeners for a load balancer, use DescribeListeners. To describe the attributes for a load balancer, use DescribeLoadBalancerAttributes. + /// Removes the specified certificate from the specified secure listener. You can't remove the default certificate for a listener. To replace the default certificate, call ModifyListener. To list the certificates for your listener, use DescribeListenerCertificates. + public func removeListenerCertificates(_ input: RemoveListenerCertificatesInput) throws -> RemoveListenerCertificatesOutput { + return try client.send(operation: "RemoveListenerCertificates", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the specified load balancers or all of your load balancers. To describe the listeners for a load balancer, use DescribeListeners. To describe the attributes for a load balancer, use DescribeLoadBalancerAttributes. public func describeLoadBalancers(_ input: DescribeLoadBalancersInput) throws -> DescribeLoadBalancersOutput { return try client.send(operation: "DescribeLoadBalancers", path: "/", httpMethod: "POST", input: input) } + /// Modifies the specified attributes of the specified Application Load Balancer or Network Load Balancer. If any of the specified attributes can't be modified as requested, the call fails. Any existing attributes that you do not modify retain their current values. + public func modifyLoadBalancerAttributes(_ input: ModifyLoadBalancerAttributesInput) throws -> ModifyLoadBalancerAttributesOutput { + return try client.send(operation: "ModifyLoadBalancerAttributes", path: "/", httpMethod: "POST", input: input) + } + /// Deletes the specified target group. You can delete a target group if it is not referenced by any actions. Deleting a target group also deletes any associated health checks. public func deleteTargetGroup(_ input: DeleteTargetGroupInput) throws -> DeleteTargetGroupOutput { return try client.send(operation: "DeleteTargetGroup", path: "/", httpMethod: "POST", input: input) } - /// Modifies the specified attributes of the specified Application Load Balancer. If any of the specified attributes can't be modified as requested, the call fails. Any existing attributes that you do not modify retain their current values. - public func modifyLoadBalancerAttributes(_ input: ModifyLoadBalancerAttributesInput) throws -> ModifyLoadBalancerAttributesOutput { - return try client.send(operation: "ModifyLoadBalancerAttributes", path: "/", httpMethod: "POST", input: input) - } - /// Deletes the specified listener. Alternatively, your listener is deleted when you delete the load balancer it is attached to using DeleteLoadBalancer. public func deleteListener(_ input: DeleteListenerInput) throws -> DeleteListenerOutput { return try client.send(operation: "DeleteListener", path: "/", httpMethod: "POST", input: input) } - /// Describes the tags for the specified resources. You can describe the tags for one or more Application Load Balancers and target groups. + /// Describes the certificates for the specified secure listener. + public func describeListenerCertificates(_ input: DescribeListenerCertificatesInput) throws -> DescribeListenerCertificatesOutput { + return try client.send(operation: "DescribeListenerCertificates", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the tags for the specified resources. You can describe the tags for one or more Application Load Balancers, Network Load Balancers, and target groups. public func describeTags(_ input: DescribeTagsInput) throws -> DescribeTagsOutput { return try client.send(operation: "DescribeTags", path: "/", httpMethod: "POST", input: input) } - /// Describes the specified listeners or the listeners for the specified Application Load Balancer. You must specify either a load balancer or one or more listeners. - public func describeListeners(_ input: DescribeListenersInput) throws -> DescribeListenersOutput { - return try client.send(operation: "DescribeListeners", path: "/", httpMethod: "POST", input: input) + /// Modifies the specified rule. Any existing properties that you do not modify retain their current values. To modify the default action, use ModifyListener. + public func modifyRule(_ input: ModifyRuleInput) throws -> ModifyRuleOutput { + return try client.send(operation: "ModifyRule", path: "/", httpMethod: "POST", input: input) } - /// Creates an Application Load Balancer. When you create a load balancer, you can specify security groups, subnets, IP address type, and tags. Otherwise, you could do so later using SetSecurityGroups, SetSubnets, SetIpAddressType, and AddTags. To create listeners for your load balancer, use CreateListener. To describe your current load balancers, see DescribeLoadBalancers. When you are finished with a load balancer, you can delete it using DeleteLoadBalancer. You can create up to 20 load balancers per region per account. You can request an increase for the number of load balancers for your account. For more information, see Limits for Your Application Load Balancer in the Application Load Balancers Guide. For more information, see Application Load Balancers in the Application Load Balancers Guide. - public func createLoadBalancer(_ input: CreateLoadBalancerInput) throws -> CreateLoadBalancerOutput { - return try client.send(operation: "CreateLoadBalancer", path: "/", httpMethod: "POST", input: input) + /// Describes the attributes for the specified target group. + public func describeTargetGroupAttributes(_ input: DescribeTargetGroupAttributesInput) throws -> DescribeTargetGroupAttributesOutput { + return try client.send(operation: "DescribeTargetGroupAttributes", path: "/", httpMethod: "POST", input: input) } - /// Creates a rule for the specified listener. Each rule can have one action and one condition. Rules are evaluated in priority order, from the lowest value to the highest value. When the condition for a rule is met, the specified action is taken. If no conditions are met, the default action for the default rule is taken. For more information, see Listener Rules in the Application Load Balancers Guide. To view your current rules, use DescribeRules. To update a rule, use ModifyRule. To set the priorities of your rules, use SetRulePriorities. To delete a rule, use DeleteRule. + /// Creates a rule for the specified listener. The listener must be associated with an Application Load Balancer. Rules are evaluated in priority order, from the lowest value to the highest value. When the condition for a rule is met, the specified action is taken. If no conditions are met, the action for the default rule is taken. For more information, see Listener Rules in the Application Load Balancers Guide. To view your current rules, use DescribeRules. To update a rule, use ModifyRule. To set the priorities of your rules, use SetRulePriorities. To delete a rule, use DeleteRule. public func createRule(_ input: CreateRuleInput) throws -> CreateRuleOutput { return try client.send(operation: "CreateRule", path: "/", httpMethod: "POST", input: input) } - /// Describes the attributes for the specified target group. - public func describeTargetGroupAttributes(_ input: DescribeTargetGroupAttributesInput) throws -> DescribeTargetGroupAttributesOutput { - return try client.send(operation: "DescribeTargetGroupAttributes", path: "/", httpMethod: "POST", input: input) - } - - /// Removes the specified tags from the specified resource. To list the current tags for your resources, use DescribeTags. + /// Removes the specified tags from the specified Elastic Load Balancing resource. To list the current tags for your resources, use DescribeTags. public func removeTags(_ input: RemoveTagsInput) throws -> RemoveTagsOutput { return try client.send(operation: "RemoveTags", path: "/", httpMethod: "POST", input: input) } - /// Sets the type of IP addresses used by the subnets of the specified Application Load Balancer. + /// Sets the type of IP addresses used by the subnets of the specified Application Load Balancer or Network Load Balancer. Note that Network Load Balancers must use ipv4. public func setIpAddressType(_ input: SetIpAddressTypeInput) throws -> SetIpAddressTypeOutput { return try client.send(operation: "SetIpAddressType", path: "/", httpMethod: "POST", input: input) } - /// Modifies the specified rule. Any existing properties that you do not modify retain their current values. To modify the default action, use ModifyListener. - public func modifyRule(_ input: ModifyRuleInput) throws -> ModifyRuleOutput { - return try client.send(operation: "ModifyRule", path: "/", httpMethod: "POST", input: input) + /// Creates an Application Load Balancer or a Network Load Balancer. When you create a load balancer, you can specify security groups, subnets, IP address type, and tags. Otherwise, you could do so later using SetSecurityGroups, SetSubnets, SetIpAddressType, and AddTags. To create listeners for your load balancer, use CreateListener. To describe your current load balancers, see DescribeLoadBalancers. When you are finished with a load balancer, you can delete it using DeleteLoadBalancer. For limit information, see Limits for Your Application Load Balancer in the Application Load Balancers Guide and Limits for Your Network Load Balancer in the Network Load Balancers Guide. This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple load balancers with the same settings, each call succeeds. For more information, see Application Load Balancers in the Application Load Balancers Guide and Network Load Balancers in the Network Load Balancers Guide. + public func createLoadBalancer(_ input: CreateLoadBalancerInput) throws -> CreateLoadBalancerOutput { + return try client.send(operation: "CreateLoadBalancer", path: "/", httpMethod: "POST", input: input) } - /// Describes the current Elastic Load Balancing resource limits for your AWS account. For more information, see Limits for Your Application Load Balancer in the Application Load Balancer Guide. + /// Describes the specified listeners or the listeners for the specified Application Load Balancer or Network Load Balancer. You must specify either a load balancer or one or more listeners. + public func describeListeners(_ input: DescribeListenersInput) throws -> DescribeListenersOutput { + return try client.send(operation: "DescribeListeners", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the current Elastic Load Balancing resource limits for your AWS account. For more information, see Limits for Your Application Load Balancers in the Application Load Balancer Guide or Limits for Your Network Load Balancers in the Network Load Balancers Guide. public func describeAccountLimits(_ input: DescribeAccountLimitsInput) throws -> DescribeAccountLimitsOutput { return try client.send(operation: "DescribeAccountLimits", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified Application Load Balancer and its attached listeners. You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds. Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them. + /// Describes the attributes for the specified Application Load Balancer or Network Load Balancer. + public func describeLoadBalancerAttributes(_ input: DescribeLoadBalancerAttributesInput) throws -> DescribeLoadBalancerAttributesOutput { + return try client.send(operation: "DescribeLoadBalancerAttributes", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the specified Application Load Balancer or Network Load Balancer and its attached listeners. You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds. Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them. public func deleteLoadBalancer(_ input: DeleteLoadBalancerInput) throws -> DeleteLoadBalancerOutput { return try client.send(operation: "DeleteLoadBalancer", path: "/", httpMethod: "POST", input: input) } - /// Describes the attributes for the specified Application Load Balancer. - public func describeLoadBalancerAttributes(_ input: DescribeLoadBalancerAttributesInput) throws -> DescribeLoadBalancerAttributesOutput { - return try client.send(operation: "DescribeLoadBalancerAttributes", path: "/", httpMethod: "POST", input: input) + /// Modifies the health checks used when evaluating the health state of the targets in the specified target group. To monitor the health of the targets, use DescribeTargetHealth. + public func modifyTargetGroup(_ input: ModifyTargetGroupInput) throws -> ModifyTargetGroupOutput { + return try client.send(operation: "ModifyTargetGroup", path: "/", httpMethod: "POST", input: input) } /// Describes the specified rules or the rules for the specified listener. You must specify either a listener or one or more rules. @@ -124,9 +144,9 @@ public struct Elasticloadbalancingv2 { return try client.send(operation: "DescribeRules", path: "/", httpMethod: "POST", input: input) } - /// Modifies the health checks used when evaluating the health state of the targets in the specified target group. To monitor the health of the targets, use DescribeTargetHealth. - public func modifyTargetGroup(_ input: ModifyTargetGroupInput) throws -> ModifyTargetGroupOutput { - return try client.send(operation: "ModifyTargetGroup", path: "/", httpMethod: "POST", input: input) + /// Sets the priorities of the specified rules. You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that you do not specify retain their current priority. + public func setRulePriorities(_ input: SetRulePrioritiesInput) throws -> SetRulePrioritiesOutput { + return try client.send(operation: "SetRulePriorities", path: "/", httpMethod: "POST", input: input) } /// Modifies the specified attributes of the specified target group. @@ -134,32 +154,27 @@ public struct Elasticloadbalancingv2 { return try client.send(operation: "ModifyTargetGroupAttributes", path: "/", httpMethod: "POST", input: input) } - /// Associates the specified security groups with the specified load balancer. The specified security groups override the previously associated security groups. + /// Associates the specified security groups with the specified Application Load Balancer. The specified security groups override the previously associated security groups. Note that you can't specify a security group for a Network Load Balancer. public func setSecurityGroups(_ input: SetSecurityGroupsInput) throws -> SetSecurityGroupsOutput { return try client.send(operation: "SetSecurityGroups", path: "/", httpMethod: "POST", input: input) } - /// Sets the priorities of the specified rules. You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that you do not specify retain their current priority. - public func setRulePriorities(_ input: SetRulePrioritiesInput) throws -> SetRulePrioritiesOutput { - return try client.send(operation: "SetRulePriorities", path: "/", httpMethod: "POST", input: input) - } - /// Describes the specified target groups or all of your target groups. By default, all target groups are described. Alternatively, you can specify one of the following to filter the results: the ARN of the load balancer, the names of one or more target groups, or the ARNs of one or more target groups. To describe the targets for a target group, use DescribeTargetHealth. To describe the attributes of a target group, use DescribeTargetGroupAttributes. public func describeTargetGroups(_ input: DescribeTargetGroupsInput) throws -> DescribeTargetGroupsOutput { return try client.send(operation: "DescribeTargetGroups", path: "/", httpMethod: "POST", input: input) } - /// Adds the specified tags to the specified resource. You can tag your Application Load Balancers and your target groups. Each tag consists of a key and an optional value. If a resource already has a tag with the same key, AddTags updates its value. To list the current tags for your resources, use DescribeTags. To remove tags from your resources, use RemoveTags. + /// Adds the specified tags to the specified Elastic Load Balancing resource. You can tag your Application Load Balancers, Network Load Balancers, and your target groups. Each tag consists of a key and an optional value. If a resource already has a tag with the same key, AddTags updates its value. To list the current tags for your resources, use DescribeTags. To remove tags from your resources, use RemoveTags. public func addTags(_ input: AddTagsInput) throws -> AddTagsOutput { return try client.send(operation: "AddTags", path: "/", httpMethod: "POST", input: input) } - /// Creates a listener for the specified Application Load Balancer. You can create up to 10 listeners per load balancer. To update a listener, use ModifyListener. When you are finished with a listener, you can delete it using DeleteListener. If you are finished with both the listener and the load balancer, you can delete them both using DeleteLoadBalancer. For more information, see Listeners for Your Application Load Balancers in the Application Load Balancers Guide. + /// Creates a listener for the specified Application Load Balancer or Network Load Balancer. To update a listener, use ModifyListener. When you are finished with a listener, you can delete it using DeleteListener. If you are finished with both the listener and the load balancer, you can delete them both using DeleteLoadBalancer. This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple listeners with the same settings, each call succeeds. For more information, see Listeners for Your Application Load Balancers in the Application Load Balancers Guide and Listeners for Your Network Load Balancers in the Network Load Balancers Guide. public func createListener(_ input: CreateListenerInput) throws -> CreateListenerOutput { return try client.send(operation: "CreateListener", path: "/", httpMethod: "POST", input: input) } - /// Registers the specified targets with the specified target group. By default, the load balancer routes requests to registered targets using the protocol and port number for the target group. Alternatively, you can override the port for a target when you register it. The target must be in the virtual private cloud (VPC) that you specified for the target group. If the target is an EC2 instance, it must be in the running state when you register it. To remove a target from a target group, use DeregisterTargets. + /// Registers the specified targets with the specified target group. You can register targets by instance ID or by IP address. If the target is an EC2 instance, it must be in the running state when you register it. By default, the load balancer routes requests to registered targets using the protocol and port for the target group. Alternatively, you can override the port for a target when you register it. You can register each EC2 instance or IP address with the same target group multiple times using different ports. With a Network Load Balancer, you cannot register instances by instance ID if they have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of these types by IP address. To remove a target from a target group, use DeregisterTargets. public func registerTargets(_ input: RegisterTargetsInput) throws -> RegisterTargetsOutput { return try client.send(operation: "RegisterTargets", path: "/", httpMethod: "POST", input: input) } @@ -174,7 +189,7 @@ public struct Elasticloadbalancingv2 { return try client.send(operation: "DeleteRule", path: "/", httpMethod: "POST", input: input) } - /// Creates a target group. To register targets with the target group, use RegisterTargets. To update the health check settings for the target group, use ModifyTargetGroup. To monitor the health of targets in the target group, use DescribeTargetHealth. To route traffic to the targets in a target group, specify the target group in an action using CreateListener or CreateRule. To delete a target group, use DeleteTargetGroup. For more information, see Target Groups for Your Application Load Balancers in the Application Load Balancers Guide. + /// Creates a target group. To register targets with the target group, use RegisterTargets. To update the health check settings for the target group, use ModifyTargetGroup. To monitor the health of targets in the target group, use DescribeTargetHealth. To route traffic to the targets in a target group, specify the target group in an action using CreateListener or CreateRule. To delete a target group, use DeleteTargetGroup. This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple target groups with the same settings, each call succeeds. For more information, see Target Groups for Your Application Load Balancers in the Application Load Balancers Guide or Target Groups for Your Network Load Balancers in the Network Load Balancers Guide. public func createTargetGroup(_ input: CreateTargetGroupInput) throws -> CreateTargetGroupOutput { return try client.send(operation: "CreateTargetGroup", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_Error.swift b/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_Error.swift index dfe3783411e..fe4fe927095 100644 --- a/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_Error.swift +++ b/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_Error.swift @@ -8,31 +8,33 @@ public enum Elasticloadbalancingv2Error: AWSErrorType { case invalidConfigurationRequestException(message: String?) case subnetNotFoundException(message: String?) case invalidSubnetException(message: String?) + case allocationIdNotFoundException(message: String?) + case availabilityZoneNotSupportedException(message: String?) case invalidTargetException(message: String?) case targetGroupNotFoundException(message: String?) case healthUnavailableException(message: String?) case sSLPolicyNotFoundException(message: String?) - case resourceInUseException(message: String?) case listenerNotFoundException(message: String?) + case tooManyCertificatesException(message: String?) + case certificateNotFoundException(message: String?) + case operationNotPermittedException(message: String?) + case resourceInUseException(message: String?) case ruleNotFoundException(message: String?) + case targetGroupAssociationLimitException(message: String?) + case incompatibleProtocolsException(message: String?) + case tooManyRegistrationsForTargetIdException(message: String?) + case tooManyTargetsException(message: String?) + case priorityInUseException(message: String?) + case tooManyTargetGroupsException(message: String?) + case tooManyRulesException(message: String?) + case tooManyTagsException(message: String?) case duplicateLoadBalancerNameException(message: String?) case tooManyLoadBalancersException(message: String?) case invalidSecurityGroupException(message: String?) case invalidSchemeException(message: String?) - case tooManyTagsException(message: String?) case duplicateTagKeysException(message: String?) - case priorityInUseException(message: String?) - case tooManyTargetGroupsException(message: String?) - case tooManyRulesException(message: String?) - case targetGroupAssociationLimitException(message: String?) - case tooManyRegistrationsForTargetIdException(message: String?) - case operationNotPermittedException(message: String?) - case tooManyTargetsException(message: String?) case duplicateListenerException(message: String?) case tooManyListenersException(message: String?) - case tooManyCertificatesException(message: String?) - case incompatibleProtocolsException(message: String?) - case certificateNotFoundException(message: String?) case unsupportedProtocolException(message: String?) case duplicateTargetGroupNameException(message: String?) } @@ -52,6 +54,10 @@ extension Elasticloadbalancingv2Error { self = .subnetNotFoundException(message: message) case "InvalidSubnetException": self = .invalidSubnetException(message: message) + case "AllocationIdNotFoundException": + self = .allocationIdNotFoundException(message: message) + case "AvailabilityZoneNotSupportedException": + self = .availabilityZoneNotSupportedException(message: message) case "InvalidTargetException": self = .invalidTargetException(message: message) case "TargetGroupNotFoundException": @@ -60,12 +66,34 @@ extension Elasticloadbalancingv2Error { self = .healthUnavailableException(message: message) case "SSLPolicyNotFoundException": self = .sSLPolicyNotFoundException(message: message) - case "ResourceInUseException": - self = .resourceInUseException(message: message) case "ListenerNotFoundException": self = .listenerNotFoundException(message: message) + case "TooManyCertificatesException": + self = .tooManyCertificatesException(message: message) + case "CertificateNotFoundException": + self = .certificateNotFoundException(message: message) + case "OperationNotPermittedException": + self = .operationNotPermittedException(message: message) + case "ResourceInUseException": + self = .resourceInUseException(message: message) case "RuleNotFoundException": self = .ruleNotFoundException(message: message) + case "TargetGroupAssociationLimitException": + self = .targetGroupAssociationLimitException(message: message) + case "IncompatibleProtocolsException": + self = .incompatibleProtocolsException(message: message) + case "TooManyRegistrationsForTargetIdException": + self = .tooManyRegistrationsForTargetIdException(message: message) + case "TooManyTargetsException": + self = .tooManyTargetsException(message: message) + case "PriorityInUseException": + self = .priorityInUseException(message: message) + case "TooManyTargetGroupsException": + self = .tooManyTargetGroupsException(message: message) + case "TooManyRulesException": + self = .tooManyRulesException(message: message) + case "TooManyTagsException": + self = .tooManyTagsException(message: message) case "DuplicateLoadBalancerNameException": self = .duplicateLoadBalancerNameException(message: message) case "TooManyLoadBalancersException": @@ -74,34 +102,12 @@ extension Elasticloadbalancingv2Error { self = .invalidSecurityGroupException(message: message) case "InvalidSchemeException": self = .invalidSchemeException(message: message) - case "TooManyTagsException": - self = .tooManyTagsException(message: message) case "DuplicateTagKeysException": self = .duplicateTagKeysException(message: message) - case "PriorityInUseException": - self = .priorityInUseException(message: message) - case "TooManyTargetGroupsException": - self = .tooManyTargetGroupsException(message: message) - case "TooManyRulesException": - self = .tooManyRulesException(message: message) - case "TargetGroupAssociationLimitException": - self = .targetGroupAssociationLimitException(message: message) - case "TooManyRegistrationsForTargetIdException": - self = .tooManyRegistrationsForTargetIdException(message: message) - case "OperationNotPermittedException": - self = .operationNotPermittedException(message: message) - case "TooManyTargetsException": - self = .tooManyTargetsException(message: message) case "DuplicateListenerException": self = .duplicateListenerException(message: message) case "TooManyListenersException": self = .tooManyListenersException(message: message) - case "TooManyCertificatesException": - self = .tooManyCertificatesException(message: message) - case "IncompatibleProtocolsException": - self = .incompatibleProtocolsException(message: message) - case "CertificateNotFoundException": - self = .certificateNotFoundException(message: message) case "UnsupportedProtocolException": self = .unsupportedProtocolException(message: message) case "DuplicateTargetGroupNameException": diff --git a/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_Shapes.swift b/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_Shapes.swift index 871b6d09b41..fbbbe5c35de 100644 --- a/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/elasticloadbalancingv2/Elasticloadbalancingv2_Shapes.swift @@ -5,8 +5,24 @@ import AWSSDKSwiftCore extension Elasticloadbalancingv2 { + public struct AddListenerCertificatesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Certificates", required: false, type: .list) + ] + /// Information about the certificates. + public let certificates: [Certificate]? + + public init(certificates: [Certificate]? = nil) { + self.certificates = certificates + } + + private enum CodingKeys: String, CodingKey { + case certificates = "Certificates" + } + } + public struct ModifyTargetGroupAttributesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: false, type: .list) ] /// Information about the attributes. @@ -22,7 +38,7 @@ extension Elasticloadbalancingv2 { } public struct Rule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Priority", required: false, type: .string), AWSShapeMember(label: "IsDefault", required: false, type: .boolean), AWSShapeMember(label: "RuleArn", required: false, type: .string), @@ -58,7 +74,7 @@ extension Elasticloadbalancingv2 { } public struct Action: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "TargetGroupArn", required: true, type: .string) ] @@ -79,7 +95,7 @@ extension Elasticloadbalancingv2 { } public struct DeleteListenerInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ListenerArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the listener. @@ -94,8 +110,34 @@ extension Elasticloadbalancingv2 { } } + public struct DescribeListenerCertificatesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PageSize", required: false, type: .integer), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "ListenerArn", required: true, type: .string) + ] + /// The maximum number of results to return with this call. + public let pageSize: Int32? + /// The marker for the next set of results. (You received this marker from a previous call.) + public let marker: String? + /// The Amazon Resource Names (ARN) of the listener. + public let listenerArn: String + + public init(pageSize: Int32? = nil, marker: String? = nil, listenerArn: String) { + self.pageSize = pageSize + self.marker = marker + self.listenerArn = listenerArn + } + + private enum CodingKeys: String, CodingKey { + case pageSize = "PageSize" + case marker = "Marker" + case listenerArn = "ListenerArn" + } + } + public struct DescribeTargetGroupAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetGroupArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the target group. @@ -111,7 +153,7 @@ extension Elasticloadbalancingv2 { } public struct ModifyLoadBalancerAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerArn", required: true, type: .string), AWSShapeMember(label: "Attributes", required: true, type: .list) ] @@ -136,7 +178,7 @@ extension Elasticloadbalancingv2 { } public struct CreateListenerInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Protocol", required: true, type: .enum), AWSShapeMember(label: "SslPolicy", required: false, type: .string), AWSShapeMember(label: "Certificates", required: false, type: .list), @@ -144,13 +186,13 @@ extension Elasticloadbalancingv2 { AWSShapeMember(label: "LoadBalancerArn", required: true, type: .string), AWSShapeMember(label: "Port", required: true, type: .integer) ] - /// The protocol for connections from clients to the load balancer. + /// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocol is TCP. public let `protocol`: ProtocolEnum - /// The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy. + /// [HTTPS listeners] The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy. public let sslPolicy: String? - /// The SSL server certificate. You must provide exactly one certificate if the protocol is HTTPS. + /// [HTTPS listeners] The SSL server certificate. You must provide exactly one certificate. public let certificates: [Certificate]? - /// The default action for the listener. + /// The default action for the listener. For Application Load Balancers, the protocol of the specified target group must be HTTP or HTTPS. For Network Load Balancers, the protocol of the specified target group must be TCP. public let defaultActions: [Action] /// The Amazon Resource Name (ARN) of the load balancer. public let loadBalancerArn: String @@ -186,12 +228,13 @@ extension Elasticloadbalancingv2 { case targetNotinuse = "Target.NotInUse" case targetDeregistrationinprogress = "Target.DeregistrationInProgress" case targetInvalidstate = "Target.InvalidState" + case targetIpunusable = "Target.IpUnusable" case elbInternalerror = "Elb.InternalError" public var description: String { return self.rawValue } } public struct DescribeLoadBalancersOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextMarker", required: false, type: .string), AWSShapeMember(label: "LoadBalancers", required: false, type: .list) ] @@ -212,7 +255,7 @@ extension Elasticloadbalancingv2 { } public struct LoadBalancerState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Reason", required: false, type: .string), AWSShapeMember(label: "Code", required: false, type: .enum) ] @@ -233,7 +276,7 @@ extension Elasticloadbalancingv2 { } public struct TargetGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetGroupArn", required: false, type: .string), AWSShapeMember(label: "LoadBalancerArns", required: false, type: .list), AWSShapeMember(label: "Matcher", required: false, type: .structure), @@ -245,6 +288,7 @@ extension Elasticloadbalancingv2 { AWSShapeMember(label: "VpcId", required: false, type: .string), AWSShapeMember(label: "HealthyThresholdCount", required: false, type: .integer), AWSShapeMember(label: "Protocol", required: false, type: .enum), + AWSShapeMember(label: "TargetType", required: false, type: .enum), AWSShapeMember(label: "HealthCheckPath", required: false, type: .string), AWSShapeMember(label: "HealthCheckPort", required: false, type: .string), AWSShapeMember(label: "Port", required: false, type: .integer) @@ -271,6 +315,8 @@ extension Elasticloadbalancingv2 { public let healthyThresholdCount: Int32? /// The protocol to use for routing traffic to the targets. public let `protocol`: ProtocolEnum? + /// The type of target that you must specify when registering targets with this target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address). + public let targetType: TargetTypeEnum? /// The destination for the health check request. public let healthCheckPath: String? /// The port to use to connect with the target. @@ -278,7 +324,7 @@ extension Elasticloadbalancingv2 { /// The port on which the targets are listening. public let port: Int32? - public init(targetGroupArn: String? = nil, loadBalancerArns: [String]? = nil, matcher: Matcher? = nil, healthCheckIntervalSeconds: Int32? = nil, healthCheckTimeoutSeconds: Int32? = nil, unhealthyThresholdCount: Int32? = nil, targetGroupName: String? = nil, healthCheckProtocol: ProtocolEnum? = nil, vpcId: String? = nil, healthyThresholdCount: Int32? = nil, protocol: ProtocolEnum? = nil, healthCheckPath: String? = nil, healthCheckPort: String? = nil, port: Int32? = nil) { + public init(targetGroupArn: String? = nil, loadBalancerArns: [String]? = nil, matcher: Matcher? = nil, healthCheckIntervalSeconds: Int32? = nil, healthCheckTimeoutSeconds: Int32? = nil, unhealthyThresholdCount: Int32? = nil, targetGroupName: String? = nil, healthCheckProtocol: ProtocolEnum? = nil, vpcId: String? = nil, healthyThresholdCount: Int32? = nil, protocol: ProtocolEnum? = nil, targetType: TargetTypeEnum? = nil, healthCheckPath: String? = nil, healthCheckPort: String? = nil, port: Int32? = nil) { self.targetGroupArn = targetGroupArn self.loadBalancerArns = loadBalancerArns self.matcher = matcher @@ -290,6 +336,7 @@ extension Elasticloadbalancingv2 { self.vpcId = vpcId self.healthyThresholdCount = healthyThresholdCount self.`protocol` = `protocol` + self.targetType = targetType self.healthCheckPath = healthCheckPath self.healthCheckPort = healthCheckPort self.port = port @@ -307,6 +354,7 @@ extension Elasticloadbalancingv2 { case vpcId = "VpcId" case healthyThresholdCount = "HealthyThresholdCount" case `protocol` = "Protocol" + case targetType = "TargetType" case healthCheckPath = "HealthCheckPath" case healthCheckPort = "HealthCheckPort" case port = "Port" @@ -314,7 +362,7 @@ extension Elasticloadbalancingv2 { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -334,8 +382,29 @@ extension Elasticloadbalancingv2 { } } + public struct LoadBalancerAddress: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AllocationId", required: false, type: .string), + AWSShapeMember(label: "IpAddress", required: false, type: .string) + ] + /// [Network Load Balancers] The allocation ID of the Elastic IP address. + public let allocationId: String? + /// The static IP address. + public let ipAddress: String? + + public init(allocationId: String? = nil, ipAddress: String? = nil) { + self.allocationId = allocationId + self.ipAddress = ipAddress + } + + private enum CodingKeys: String, CodingKey { + case allocationId = "AllocationId" + case ipAddress = "IpAddress" + } + } + public struct TagDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list) ] @@ -356,7 +425,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeAccountLimitsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "PageSize", required: false, type: .integer) ] @@ -382,11 +451,12 @@ extension Elasticloadbalancingv2 { case unhealthy = "unhealthy" case unused = "unused" case draining = "draining" + case unavailable = "unavailable" public var description: String { return self.rawValue } } public struct CreateListenerOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Listeners", required: false, type: .list) ] /// Information about the listener. @@ -402,7 +472,7 @@ extension Elasticloadbalancingv2 { } public struct SetIpAddressTypeOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IpAddressType", required: false, type: .enum) ] /// The IP address type. @@ -418,7 +488,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeRulesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -439,7 +509,7 @@ extension Elasticloadbalancingv2 { } public struct CreateRuleOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: false, type: .list) ] /// Information about the rule. @@ -459,7 +529,7 @@ extension Elasticloadbalancingv2 { } public struct RulePriorityPair: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Priority", required: false, type: .integer), AWSShapeMember(label: "RuleArn", required: false, type: .string) ] @@ -480,7 +550,7 @@ extension Elasticloadbalancingv2 { } public struct ModifyRuleOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: false, type: .list) ] /// Information about the rule. @@ -496,7 +566,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeSSLPoliciesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SslPolicies", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -517,7 +587,7 @@ extension Elasticloadbalancingv2 { } public struct SslPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SslProtocols", required: false, type: .list), AWSShapeMember(label: "Ciphers", required: false, type: .list), AWSShapeMember(label: "Name", required: false, type: .string) @@ -543,7 +613,7 @@ extension Elasticloadbalancingv2 { } public struct ModifyLoadBalancerAttributesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: false, type: .list) ] /// Information about the load balancer attributes. @@ -559,7 +629,7 @@ extension Elasticloadbalancingv2 { } public struct LoadBalancer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "SecurityGroups", required: false, type: .list), AWSShapeMember(label: "LoadBalancerArn", required: false, type: .string), @@ -630,7 +700,7 @@ extension Elasticloadbalancingv2 { } public struct SetSecurityGroupsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroupIds", required: false, type: .list) ] /// The IDs of the security groups associated with the load balancer. @@ -646,7 +716,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeTargetGroupsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "TargetGroupArns", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -682,7 +752,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeTargetGroupsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetGroups", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -703,7 +773,7 @@ extension Elasticloadbalancingv2 { } public struct CreateRuleInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Priority", required: true, type: .integer), AWSShapeMember(label: "Actions", required: true, type: .list), AWSShapeMember(label: "Conditions", required: true, type: .list), @@ -713,7 +783,7 @@ extension Elasticloadbalancingv2 { public let priority: Int32 /// An action. Each action has the type forward and specifies a target group. public let actions: [Action] - /// A condition. Each condition specifies a field name and a single value. If the field name is host-header, you can specify a single host name (for example, my.example.com). A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters. Note that you can include up to three wildcard characters. A-Z, a-z, 0-9 - . * (matches 0 or more characters) ? (matches exactly 1 character) If the field name is path-pattern, you can specify a single path pattern. A path pattern is case sensitive, can be up to 128 characters in length, and can contain any of the following characters. Note that you can include up to three wildcard characters. A-Z, a-z, 0-9 _ - . $ / ~ " ' @ : + & (using &amp;) * (matches 0 or more characters) ? (matches exactly 1 character) + /// The conditions. Each condition specifies a field name and a single value. If the field name is host-header, you can specify a single host name (for example, my.example.com). A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters. Note that you can include up to three wildcard characters. A-Z, a-z, 0-9 - . * (matches 0 or more characters) ? (matches exactly 1 character) If the field name is path-pattern, you can specify a single path pattern. A path pattern is case sensitive, can be up to 128 characters in length, and can contain any of the following characters. Note that you can include up to three wildcard characters. A-Z, a-z, 0-9 _ - . $ / ~ " ' @ : + & (using &amp;) * (matches 0 or more characters) ? (matches exactly 1 character) public let conditions: [RuleCondition] /// The Amazon Resource Name (ARN) of the listener. public let listenerArn: String @@ -734,23 +804,28 @@ extension Elasticloadbalancingv2 { } public struct SetSubnetsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subnets", required: true, type: .list), - AWSShapeMember(label: "LoadBalancerArn", required: true, type: .string) + AWSShapeMember(label: "LoadBalancerArn", required: true, type: .string), + AWSShapeMember(label: "SubnetMappings", required: false, type: .list) ] - /// The IDs of the subnets. You must specify at least two subnets. You can add only one subnet per Availability Zone. + /// The IDs of the subnets. You must specify subnets from at least two Availability Zones. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. public let subnets: [String] /// The Amazon Resource Name (ARN) of the load balancer. public let loadBalancerArn: String + /// The IDs of the subnets. You must specify subnets from at least two Availability Zones. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. You cannot specify Elastic IP addresses for your subnets. + public let subnetMappings: [SubnetMapping]? - public init(subnets: [String], loadBalancerArn: String) { + public init(subnets: [String], loadBalancerArn: String, subnetMappings: [SubnetMapping]? = nil) { self.subnets = subnets self.loadBalancerArn = loadBalancerArn + self.subnetMappings = subnetMappings } private enum CodingKeys: String, CodingKey { case subnets = "Subnets" case loadBalancerArn = "LoadBalancerArn" + case subnetMappings = "SubnetMappings" } } @@ -759,7 +834,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeTargetHealthInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Targets", required: false, type: .list), AWSShapeMember(label: "TargetGroupArn", required: true, type: .string) ] @@ -780,13 +855,13 @@ extension Elasticloadbalancingv2 { } public struct TargetGroupAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] /// The value of the attribute. public let value: String? - /// The name of the attribute. deregistration_delay.timeout_seconds - The amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds. stickiness.enabled - Indicates whether sticky sessions are enabled. The value is true or false. stickiness.type - The type of sticky sessions. The possible value is lb_cookie. stickiness.lb_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds). + /// The name of the attribute. deregistration_delay.timeout_seconds - The amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds. proxy_protocol_v2.enabled - [Network Load Balancers] Indicates whether Proxy Protocol version 2 is enabled. stickiness.enabled - [Application Load Balancers] Indicates whether sticky sessions are enabled. The value is true or false. stickiness.type - [Application Load Balancers] The type of sticky sessions. The possible value is lb_cookie. stickiness.lb_cookie.duration_seconds - [Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds). public let key: String? public init(value: String? = nil, key: String? = nil) { @@ -801,7 +876,7 @@ extension Elasticloadbalancingv2 { } public struct DeleteRuleInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the rule. @@ -817,7 +892,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArns", required: true, type: .list) ] /// The Amazon Resource Names (ARN) of the resources. @@ -832,13 +907,35 @@ extension Elasticloadbalancingv2 { } } + public struct RemoveListenerCertificatesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ListenerArn", required: true, type: .string), + AWSShapeMember(label: "Certificates", required: true, type: .list) + ] + /// The Amazon Resource Name (ARN) of the listener. + public let listenerArn: String + /// The certificate to remove. You can specify one certificate per call. + public let certificates: [Certificate] + + public init(listenerArn: String, certificates: [Certificate]) { + self.listenerArn = listenerArn + self.certificates = certificates + } + + private enum CodingKeys: String, CodingKey { + case listenerArn = "ListenerArn" + case certificates = "Certificates" + } + } + public enum LoadBalancerTypeEnum: String, CustomStringConvertible, Codable { case application = "application" + case network = "network" public var description: String { return self.rawValue } } public struct DescribeTargetGroupAttributesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: false, type: .list) ] /// Information about the target group attributes @@ -853,17 +950,42 @@ extension Elasticloadbalancingv2 { } } + public struct RemoveListenerCertificatesOutput: AWSShape { + + } + + public struct SubnetMapping: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetId", required: false, type: .string), + AWSShapeMember(label: "AllocationId", required: false, type: .string) + ] + /// The ID of the subnet. + public let subnetId: String? + /// [Network Load Balancers] The allocation ID of the Elastic IP address. + public let allocationId: String? + + public init(subnetId: String? = nil, allocationId: String? = nil) { + self.subnetId = subnetId + self.allocationId = allocationId + } + + private enum CodingKeys: String, CodingKey { + case subnetId = "SubnetId" + case allocationId = "AllocationId" + } + } + public struct RemoveTagsOutput: AWSShape { } public struct ModifyRuleInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Actions", required: false, type: .list), AWSShapeMember(label: "Conditions", required: false, type: .list), AWSShapeMember(label: "RuleArn", required: true, type: .string) ] - /// The actions. + /// The actions. The target group must use the HTTP or HTTPS protocol. public let actions: [Action]? /// The conditions. public let conditions: [RuleCondition]? @@ -884,21 +1006,26 @@ extension Elasticloadbalancingv2 { } public struct TargetDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), AWSShapeMember(label: "Port", required: false, type: .integer), AWSShapeMember(label: "Id", required: true, type: .string) ] + /// An Availability Zone or all. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer. This parameter is not supported if the target type of the target group is instance. If the IP address is in a subnet of the VPC for the target group, the Availability Zone is automatically detected and this parameter is optional. If the IP address is outside the VPC, this parameter is required. With an Application Load Balancer, if the IP address is outside the VPC for the target group, the only supported value is all. + public let availabilityZone: String? /// The port on which the target is listening. public let port: Int32? - /// The ID of the target. + /// The ID of the target. If the target type of the target group is instance, specify an instance ID. If the target type is ip, specify an IP address. public let id: String - public init(port: Int32? = nil, id: String) { + public init(availabilityZone: String? = nil, port: Int32? = nil, id: String) { + self.availabilityZone = availabilityZone self.port = port self.id = id } private enum CodingKeys: String, CodingKey { + case availabilityZone = "AvailabilityZone" case port = "Port" case id = "Id" } @@ -910,7 +1037,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeListenersOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Listeners", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -931,7 +1058,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeRulesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "RuleArns", required: false, type: .list), @@ -962,7 +1089,7 @@ extension Elasticloadbalancingv2 { } public struct ModifyListenerOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Listeners", required: false, type: .list) ] /// Information about the modified listeners. @@ -978,7 +1105,7 @@ extension Elasticloadbalancingv2 { } public struct SetSubnetsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list) ] /// Information about the subnet and Availability Zone. @@ -994,7 +1121,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeAccountLimitsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limits", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1019,7 +1146,7 @@ extension Elasticloadbalancingv2 { } public struct ModifyTargetGroupOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetGroups", required: false, type: .list) ] /// Information about the target group. @@ -1035,7 +1162,7 @@ extension Elasticloadbalancingv2 { } public struct RemoveTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArns", required: true, type: .list), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -1062,7 +1189,7 @@ extension Elasticloadbalancingv2 { } public struct TargetHealthDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetHealth", required: false, type: .structure), AWSShapeMember(label: "Target", required: false, type: .structure), AWSShapeMember(label: "HealthCheckPort", required: false, type: .string) @@ -1091,8 +1218,29 @@ extension Elasticloadbalancingv2 { } + public struct AddListenerCertificatesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ListenerArn", required: true, type: .string), + AWSShapeMember(label: "Certificates", required: true, type: .list) + ] + /// The Amazon Resource Name (ARN) of the listener. + public let listenerArn: String + /// The certificate to add. You can specify one certificate per call. + public let certificates: [Certificate] + + public init(listenerArn: String, certificates: [Certificate]) { + self.listenerArn = listenerArn + self.certificates = certificates + } + + private enum CodingKeys: String, CodingKey { + case listenerArn = "ListenerArn" + case certificates = "Certificates" + } + } + public struct ModifyTargetGroupAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: true, type: .list), AWSShapeMember(label: "TargetGroupArn", required: true, type: .string) ] @@ -1113,7 +1261,7 @@ extension Elasticloadbalancingv2 { } public struct RuleCondition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Field", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -1134,7 +1282,7 @@ extension Elasticloadbalancingv2 { } public struct Listener: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificates", required: false, type: .list), AWSShapeMember(label: "ListenerArn", required: false, type: .string), AWSShapeMember(label: "Protocol", required: false, type: .enum), @@ -1180,7 +1328,7 @@ extension Elasticloadbalancingv2 { } public struct ModifyTargetGroupInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckProtocol", required: false, type: .enum), AWSShapeMember(label: "HealthyThresholdCount", required: false, type: .integer), AWSShapeMember(label: "TargetGroupArn", required: true, type: .string), @@ -1191,23 +1339,23 @@ extension Elasticloadbalancingv2 { AWSShapeMember(label: "HealthCheckPath", required: false, type: .string), AWSShapeMember(label: "UnhealthyThresholdCount", required: false, type: .integer) ] - /// The protocol to use to connect with the target. + /// The protocol the load balancer uses when performing health checks on targets. The TCP protocol is supported only if the protocol of the target group is TCP. public let healthCheckProtocol: ProtocolEnum? /// The number of consecutive health checks successes required before considering an unhealthy target healthy. public let healthyThresholdCount: Int32? /// The Amazon Resource Name (ARN) of the target group. public let targetGroupArn: String - /// The HTTP codes to use when checking for a successful response from a target. + /// [HTTP/HTTPS health checks] The HTTP codes to use when checking for a successful response from a target. public let matcher: Matcher? - /// The approximate amount of time, in seconds, between health checks of an individual target. + /// The approximate amount of time, in seconds, between health checks of an individual target. For Application Load Balancers, the range is 5 to 300 seconds. For Network Load Balancers, the supported values are 10 or 30 seconds. public let healthCheckIntervalSeconds: Int32? - /// The amount of time, in seconds, during which no response means a failed health check. + /// [HTTP/HTTPS health checks] The amount of time, in seconds, during which no response means a failed health check. public let healthCheckTimeoutSeconds: Int32? - /// The port to use to connect with the target. + /// The port the load balancer uses when performing health checks on targets. public let healthCheckPort: String? - /// The ping path that is the destination for the health check request. + /// [HTTP/HTTPS health checks] The ping path that is the destination for the health check request. public let healthCheckPath: String? - /// The number of consecutive health check failures required before considering the target unhealthy. + /// The number of consecutive health check failures required before considering the target unhealthy. For Network Load Balancers, this value must be the same as the healthy threshold count. public let unhealthyThresholdCount: Int32? public init(healthCheckProtocol: ProtocolEnum? = nil, healthyThresholdCount: Int32? = nil, targetGroupArn: String, matcher: Matcher? = nil, healthCheckIntervalSeconds: Int32? = nil, healthCheckTimeoutSeconds: Int32? = nil, healthCheckPort: String? = nil, healthCheckPath: String? = nil, unhealthyThresholdCount: Int32? = nil) { @@ -1236,48 +1384,58 @@ extension Elasticloadbalancingv2 { } public struct CreateLoadBalancerInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Subnets", required: true, type: .list), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroups", required: false, type: .list), - AWSShapeMember(label: "Scheme", required: false, type: .enum), - AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "IpAddressType", required: false, type: .enum) + AWSShapeMember(label: "IpAddressType", required: false, type: .enum), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "Subnets", required: false, type: .list), + AWSShapeMember(label: "SubnetMappings", required: false, type: .list), + AWSShapeMember(label: "Scheme", required: false, type: .enum), + AWSShapeMember(label: "Type", required: false, type: .enum) ] - /// The IDs of the subnets to attach to the load balancer. You can specify only one subnet per Availability Zone. You must specify subnets from at least two Availability Zones. - public let subnets: [String] - /// The IDs of the security groups to assign to the load balancer. + /// [Application Load Balancers] The IDs of the security groups to assign to the load balancer. public let securityGroups: [String]? - /// The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the Internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can only route requests from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer. - public let scheme: LoadBalancerSchemeEnum? - /// One or more tags to assign to the load balancer. - public let tags: [Tag]? /// The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. public let name: String - /// The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses). Internal load balancers must use ipv4. + /// [Application Load Balancers] The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses). Internal load balancers must use ipv4. public let ipAddressType: IpAddressType? + /// One or more tags to assign to the load balancer. + public let tags: [Tag]? + /// The IDs of the subnets to attach to the load balancer. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. [Application Load Balancers] You must specify subnets from at least two Availability Zones. [Network Load Balancers] You can specify subnets from one or more Availability Zones. + public let subnets: [String]? + /// The IDs of the subnets to attach to the load balancer. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet. + public let subnetMappings: [SubnetMapping]? + /// The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the Internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can only route requests from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer. + public let scheme: LoadBalancerSchemeEnum? + /// The type of load balancer to create. The default is application. + public let `type`: LoadBalancerTypeEnum? - public init(subnets: [String], securityGroups: [String]? = nil, scheme: LoadBalancerSchemeEnum? = nil, tags: [Tag]? = nil, name: String, ipAddressType: IpAddressType? = nil) { - self.subnets = subnets + public init(securityGroups: [String]? = nil, name: String, ipAddressType: IpAddressType? = nil, tags: [Tag]? = nil, subnets: [String]? = nil, subnetMappings: [SubnetMapping]? = nil, scheme: LoadBalancerSchemeEnum? = nil, type: LoadBalancerTypeEnum? = nil) { self.securityGroups = securityGroups - self.scheme = scheme - self.tags = tags self.name = name self.ipAddressType = ipAddressType + self.tags = tags + self.subnets = subnets + self.subnetMappings = subnetMappings + self.scheme = scheme + self.`type` = `type` } private enum CodingKeys: String, CodingKey { - case subnets = "Subnets" case securityGroups = "SecurityGroups" - case scheme = "Scheme" - case tags = "Tags" case name = "Name" case ipAddressType = "IpAddressType" + case tags = "Tags" + case subnets = "Subnets" + case subnetMappings = "SubnetMappings" + case scheme = "Scheme" + case `type` = "Type" } } public struct DeregisterTargetsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Targets", required: true, type: .list), AWSShapeMember(label: "TargetGroupArn", required: true, type: .string) ] @@ -1298,7 +1456,7 @@ extension Elasticloadbalancingv2 { } public struct SetSecurityGroupsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityGroups", required: true, type: .list), AWSShapeMember(label: "LoadBalancerArn", required: true, type: .string) ] @@ -1319,13 +1477,13 @@ extension Elasticloadbalancingv2 { } public struct LoadBalancerAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] /// The value of the attribute. public let value: String? - /// The name of the attribute. access_logs.s3.enabled - Indicates whether access logs stored in Amazon S3 are enabled. The value is true or false. access_logs.s3.bucket - The name of the S3 bucket for the access logs. This attribute is required if access logs in Amazon S3 are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permission to write to the bucket. access_logs.s3.prefix - The prefix for the location in the S3 bucket. If you don't specify a prefix, the access logs are stored in the root of the bucket. deletion_protection.enabled - Indicates whether deletion protection is enabled. The value is true or false. idle_timeout.timeout_seconds - The idle timeout value, in seconds. The valid range is 1-3600. The default is 60 seconds. + /// The name of the attribute. access_logs.s3.enabled - [Application Load Balancers] Indicates whether access logs stored in Amazon S3 are enabled. The value is true or false. access_logs.s3.bucket - [Application Load Balancers] The name of the S3 bucket for the access logs. This attribute is required if access logs in Amazon S3 are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permission to write to the bucket. access_logs.s3.prefix - [Application Load Balancers] The prefix for the location in the S3 bucket. If you don't specify a prefix, the access logs are stored in the root of the bucket. deletion_protection.enabled - Indicates whether deletion protection is enabled. The value is true or false. idle_timeout.timeout_seconds - [Application Load Balancers] The idle timeout value, in seconds. The valid range is 1-4000. The default is 60 seconds. public let key: String? public init(value: String? = nil, key: String? = nil) { @@ -1340,7 +1498,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeLoadBalancerAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the load balancer. @@ -1356,7 +1514,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeTagsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagDescriptions", required: false, type: .list) ] /// Information about the tags. @@ -1372,7 +1530,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeListenersInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "ListenerArns", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -1402,12 +1560,33 @@ extension Elasticloadbalancingv2 { } } + public struct DescribeListenerCertificatesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Certificates", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// Information about the certificates. + public let certificates: [Certificate]? + /// The marker to use when requesting the next set of results. If there are no additional results, the string is empty. + public let nextMarker: String? + + public init(certificates: [Certificate]? = nil, nextMarker: String? = nil) { + self.certificates = certificates + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case certificates = "Certificates" + case nextMarker = "NextMarker" + } + } + public struct DeleteListenerOutput: AWSShape { } public struct CreateTargetGroupOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetGroups", required: false, type: .list) ] /// Information about the target group. @@ -1423,48 +1602,58 @@ extension Elasticloadbalancingv2 { } public struct Certificate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IsDefault", required: false, type: .boolean), AWSShapeMember(label: "CertificateArn", required: false, type: .string) ] + /// Indicates whether the certificate is the default certificate. + public let isDefault: Bool? /// The Amazon Resource Name (ARN) of the certificate. public let certificateArn: String? - public init(certificateArn: String? = nil) { + public init(isDefault: Bool? = nil, certificateArn: String? = nil) { + self.isDefault = isDefault self.certificateArn = certificateArn } private enum CodingKeys: String, CodingKey { + case isDefault = "IsDefault" case certificateArn = "CertificateArn" } } public struct AvailabilityZone: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ZoneName", required: false, type: .string), + AWSShapeMember(label: "LoadBalancerAddresses", required: false, type: .list), AWSShapeMember(label: "SubnetId", required: false, type: .string) ] /// The name of the Availability Zone. public let zoneName: String? + /// [Network Load Balancers] The static IP address. + public let loadBalancerAddresses: [LoadBalancerAddress]? /// The ID of the subnet. public let subnetId: String? - public init(zoneName: String? = nil, subnetId: String? = nil) { + public init(zoneName: String? = nil, loadBalancerAddresses: [LoadBalancerAddress]? = nil, subnetId: String? = nil) { self.zoneName = zoneName + self.loadBalancerAddresses = loadBalancerAddresses self.subnetId = subnetId } private enum CodingKeys: String, CodingKey { case zoneName = "ZoneName" + case loadBalancerAddresses = "LoadBalancerAddresses" case subnetId = "SubnetId" } } public struct RegisterTargetsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Targets", required: true, type: .list), AWSShapeMember(label: "TargetGroupArn", required: true, type: .string) ] - /// The targets. The default port for a target is the port for the target group. You can specify a port override. If a target is already registered, you can register it again using a different port. + /// The targets. public let targets: [TargetDescription] /// The Amazon Resource Name (ARN) of the target group. public let targetGroupArn: String @@ -1481,7 +1670,7 @@ extension Elasticloadbalancingv2 { } public struct DeleteTargetGroupInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetGroupArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the target group. @@ -1497,12 +1686,12 @@ extension Elasticloadbalancingv2 { } public struct TargetHealth: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Reason", required: false, type: .enum), AWSShapeMember(label: "State", required: false, type: .enum), AWSShapeMember(label: "Description", required: false, type: .string) ] - /// The reason code. If the target state is healthy, a reason code is not provided. If the target state is initial, the reason code can be one of the following values: Elb.RegistrationInProgress - The target is in the process of being registered with the load balancer. Elb.InitialHealthChecking - The load balancer is still sending the target the minimum number of health checks required to determine its health status. If the target state is unhealthy, the reason code can be one of the following values: Target.ResponseCodeMismatch - The health checks did not return an expected HTTP code. Target.Timeout - The health check requests timed out. Target.FailedHealthChecks - The health checks failed because the connection to the target timed out, the target response was malformed, or the target failed the health check for an unknown reason. Elb.InternalError - The health checks failed due to an internal error. If the target state is unused, the reason code can be one of the following values: Target.NotRegistered - The target is not registered with the target group. Target.NotInUse - The target group is not used by any load balancer or the target is in an Availability Zone that is not enabled for its load balancer. Target.InvalidState - The target is in the stopped or terminated state. If the target state is draining, the reason code can be the following value: Target.DeregistrationInProgress - The target is in the process of being deregistered and the deregistration delay period has not expired. + /// The reason code. If the target state is healthy, a reason code is not provided. If the target state is initial, the reason code can be one of the following values: Elb.RegistrationInProgress - The target is in the process of being registered with the load balancer. Elb.InitialHealthChecking - The load balancer is still sending the target the minimum number of health checks required to determine its health status. If the target state is unhealthy, the reason code can be one of the following values: Target.ResponseCodeMismatch - The health checks did not return an expected HTTP code. Target.Timeout - The health check requests timed out. Target.FailedHealthChecks - The health checks failed because the connection to the target timed out, the target response was malformed, or the target failed the health check for an unknown reason. Elb.InternalError - The health checks failed due to an internal error. If the target state is unused, the reason code can be one of the following values: Target.NotRegistered - The target is not registered with the target group. Target.NotInUse - The target group is not used by any load balancer or the target is in an Availability Zone that is not enabled for its load balancer. Target.IpUnusable - The target IP address is reserved for use by a load balancer. Target.InvalidState - The target is in the stopped or terminated state. If the target state is draining, the reason code can be the following value: Target.DeregistrationInProgress - The target is in the process of being deregistered and the deregistration delay period has not expired. public let reason: TargetHealthReasonEnum? /// The state of the target. public let state: TargetHealthStateEnum? @@ -1529,7 +1718,7 @@ extension Elasticloadbalancingv2 { } public struct ModifyListenerInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Protocol", required: false, type: .enum), AWSShapeMember(label: "SslPolicy", required: false, type: .string), AWSShapeMember(label: "Certificates", required: false, type: .list), @@ -1537,13 +1726,13 @@ extension Elasticloadbalancingv2 { AWSShapeMember(label: "ListenerArn", required: true, type: .string), AWSShapeMember(label: "Port", required: false, type: .integer) ] - /// The protocol for connections from clients to the load balancer. + /// The protocol for connections from clients to the load balancer. Application Load Balancers support HTTP and HTTPS and Network Load Balancers support TCP. public let `protocol`: ProtocolEnum? /// The security policy that defines which protocols and ciphers are supported. For more information, see Security Policies in the Application Load Balancers Guide. public let sslPolicy: String? - /// The SSL server certificate. + /// The default SSL server certificate. public let certificates: [Certificate]? - /// The default actions. + /// The default action. For Application Load Balancers, the protocol of the specified target group must be HTTP or HTTPS. For Network Load Balancers, the protocol of the specified target group must be TCP. public let defaultActions: [Action]? /// The Amazon Resource Name (ARN) of the listener. public let listenerArn: String @@ -1570,7 +1759,7 @@ extension Elasticloadbalancingv2 { } public struct Cipher: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Priority", required: false, type: .integer), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -1591,7 +1780,7 @@ extension Elasticloadbalancingv2 { } public struct SetRulePrioritiesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RulePriorities", required: true, type: .list) ] /// The rule priorities. @@ -1606,11 +1795,17 @@ extension Elasticloadbalancingv2 { } } + public enum TargetTypeEnum: String, CustomStringConvertible, Codable { + case instance = "instance" + case ip = "ip" + public var description: String { return self.rawValue } + } + public struct Matcher: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HttpCode", required: true, type: .string) ] - /// The HTTP codes. You can specify values between 200 and 499. The default value is 200. You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299"). + /// The HTTP codes. For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299"). For Network Load Balancers, this is 200 to 399. public let httpCode: String public init(httpCode: String) { @@ -1623,7 +1818,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeSSLPoliciesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "Names", required: false, type: .list) @@ -1649,13 +1844,13 @@ extension Elasticloadbalancingv2 { } public struct Limit: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Max", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] /// The maximum value of the limit. public let max: String? - /// The name of the limit. The possible values are: application-load-balancers listeners-per-application-load-balancer rules-per-application-load-balancer target-groups targets-per-application-load-balancer + /// The name of the limit. The possible values are: application-load-balancers listeners-per-application-load-balancer listeners-per-network-load-balancer network-load-balancers rules-per-application-load-balancer target-groups targets-per-application-load-balancer targets-per-availability-zone-per-network-load-balancer targets-per-network-load-balancer public let name: String? public init(max: String? = nil, name: String? = nil) { @@ -1670,7 +1865,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeLoadBalancerAttributesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: false, type: .list) ] /// Information about the load balancer attributes. @@ -1688,11 +1883,12 @@ extension Elasticloadbalancingv2 { public enum ProtocolEnum: String, CustomStringConvertible, Codable { case http = "HTTP" case https = "HTTPS" + case tcp = "TCP" public var description: String { return self.rawValue } } public struct DescribeLoadBalancersInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "LoadBalancerArns", required: false, type: .list), AWSShapeMember(label: "Names", required: false, type: .list), @@ -1723,7 +1919,7 @@ extension Elasticloadbalancingv2 { } public struct SetRulePrioritiesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: false, type: .list) ] /// Information about the rules. @@ -1743,7 +1939,7 @@ extension Elasticloadbalancingv2 { } public struct AddTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArns", required: true, type: .list), AWSShapeMember(label: "Tags", required: true, type: .list) ] @@ -1764,7 +1960,7 @@ extension Elasticloadbalancingv2 { } public struct DescribeTargetHealthOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetHealthDescriptions", required: false, type: .list) ] /// Information about the health of the targets. @@ -1780,7 +1976,7 @@ extension Elasticloadbalancingv2 { } public struct SetIpAddressTypeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerArn", required: true, type: .string), AWSShapeMember(label: "IpAddressType", required: true, type: .enum) ] @@ -1801,72 +1997,77 @@ extension Elasticloadbalancingv2 { } public struct CreateTargetGroupInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Matcher", required: false, type: .structure), + AWSShapeMember(label: "HealthCheckIntervalSeconds", required: false, type: .integer), + AWSShapeMember(label: "HealthCheckTimeoutSeconds", required: false, type: .integer), AWSShapeMember(label: "UnhealthyThresholdCount", required: false, type: .integer), - AWSShapeMember(label: "HealthyThresholdCount", required: false, type: .integer), - AWSShapeMember(label: "VpcId", required: true, type: .string), AWSShapeMember(label: "HealthCheckProtocol", required: false, type: .enum), + AWSShapeMember(label: "HealthyThresholdCount", required: false, type: .integer), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Protocol", required: true, type: .enum), - AWSShapeMember(label: "Matcher", required: false, type: .structure), - AWSShapeMember(label: "HealthCheckIntervalSeconds", required: false, type: .integer), + AWSShapeMember(label: "VpcId", required: true, type: .string), + AWSShapeMember(label: "TargetType", required: false, type: .enum), AWSShapeMember(label: "HealthCheckPath", required: false, type: .string), AWSShapeMember(label: "HealthCheckPort", required: false, type: .string), - AWSShapeMember(label: "HealthCheckTimeoutSeconds", required: false, type: .integer), AWSShapeMember(label: "Port", required: true, type: .integer) ] - /// The number of consecutive health check failures required before considering a target unhealthy. The default is 2. + /// [HTTP/HTTPS health checks] The HTTP codes to use when checking for a successful response from a target. + public let matcher: Matcher? + /// The approximate amount of time, in seconds, between health checks of an individual target. For Application Load Balancers, the range is 5 to 300 seconds. For Network Load Balancers, the supported values are 10 or 30 seconds. The default is 30 seconds. + public let healthCheckIntervalSeconds: Int32? + /// The amount of time, in seconds, during which no response from a target means a failed health check. For Application Load Balancers, the range is 2 to 60 seconds and the default is 5 seconds. For Network Load Balancers, this is 10 seconds for TCP and HTTPS health checks and 6 seconds for HTTP health checks. + public let healthCheckTimeoutSeconds: Int32? + /// The number of consecutive health check failures required before considering a target unhealthy. For Application Load Balancers, the default is 2. For Network Load Balancers, this value must be the same as the healthy threshold count. public let unhealthyThresholdCount: Int32? - /// The number of consecutive health checks successes required before considering an unhealthy target healthy. The default is 5. - public let healthyThresholdCount: Int32? - /// The identifier of the virtual private cloud (VPC). - public let vpcId: String - /// The protocol the load balancer uses when performing health checks on targets. The default is the HTTP protocol. + /// The protocol the load balancer uses when performing health checks on targets. The TCP protocol is supported only if the protocol of the target group is TCP. For Application Load Balancers, the default is HTTP. For Network Load Balancers, the default is TCP. public let healthCheckProtocol: ProtocolEnum? + /// The number of consecutive health checks successes required before considering an unhealthy target healthy. For Application Load Balancers, the default is 5. For Network Load Balancers, the default is 3. + public let healthyThresholdCount: Int32? /// The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. public let name: String - /// The protocol to use for routing traffic to the targets. + /// The protocol to use for routing traffic to the targets. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocol is TCP. public let `protocol`: ProtocolEnum - /// The HTTP codes to use when checking for a successful response from a target. The default is 200. - public let matcher: Matcher? - /// The approximate amount of time, in seconds, between health checks of an individual target. The default is 30 seconds. - public let healthCheckIntervalSeconds: Int32? - /// The ping path that is the destination on the targets for health checks. The default is /. + /// The identifier of the virtual private cloud (VPC). + public let vpcId: String + /// The type of target that you must specify when registering targets with this target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address). The default is instance. Note that you can't specify targets for a target group using both instance IDs and IP addresses. If the target type is ip, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can't specify publicly routable IP addresses. + public let targetType: TargetTypeEnum? + /// [HTTP/HTTPS health checks] The ping path that is the destination on the targets for health checks. The default is /. public let healthCheckPath: String? - /// The port the load balancer uses when performing health checks on targets. The default is traffic-port, which indicates the port on which each target receives traffic from the load balancer. + /// The port the load balancer uses when performing health checks on targets. The default is traffic-port, which is the port on which each target receives traffic from the load balancer. public let healthCheckPort: String? - /// The amount of time, in seconds, during which no response from a target means a failed health check. The default is 5 seconds. - public let healthCheckTimeoutSeconds: Int32? /// The port on which the targets receive traffic. This port is used unless you specify a port override when registering the target. public let port: Int32 - public init(unhealthyThresholdCount: Int32? = nil, healthyThresholdCount: Int32? = nil, vpcId: String, healthCheckProtocol: ProtocolEnum? = nil, name: String, protocol: ProtocolEnum, matcher: Matcher? = nil, healthCheckIntervalSeconds: Int32? = nil, healthCheckPath: String? = nil, healthCheckPort: String? = nil, healthCheckTimeoutSeconds: Int32? = nil, port: Int32) { + public init(matcher: Matcher? = nil, healthCheckIntervalSeconds: Int32? = nil, healthCheckTimeoutSeconds: Int32? = nil, unhealthyThresholdCount: Int32? = nil, healthCheckProtocol: ProtocolEnum? = nil, healthyThresholdCount: Int32? = nil, name: String, protocol: ProtocolEnum, vpcId: String, targetType: TargetTypeEnum? = nil, healthCheckPath: String? = nil, healthCheckPort: String? = nil, port: Int32) { + self.matcher = matcher + self.healthCheckIntervalSeconds = healthCheckIntervalSeconds + self.healthCheckTimeoutSeconds = healthCheckTimeoutSeconds self.unhealthyThresholdCount = unhealthyThresholdCount - self.healthyThresholdCount = healthyThresholdCount - self.vpcId = vpcId self.healthCheckProtocol = healthCheckProtocol + self.healthyThresholdCount = healthyThresholdCount self.name = name self.`protocol` = `protocol` - self.matcher = matcher - self.healthCheckIntervalSeconds = healthCheckIntervalSeconds + self.vpcId = vpcId + self.targetType = targetType self.healthCheckPath = healthCheckPath self.healthCheckPort = healthCheckPort - self.healthCheckTimeoutSeconds = healthCheckTimeoutSeconds self.port = port } private enum CodingKeys: String, CodingKey { + case matcher = "Matcher" + case healthCheckIntervalSeconds = "HealthCheckIntervalSeconds" + case healthCheckTimeoutSeconds = "HealthCheckTimeoutSeconds" case unhealthyThresholdCount = "UnhealthyThresholdCount" - case healthyThresholdCount = "HealthyThresholdCount" - case vpcId = "VpcId" case healthCheckProtocol = "HealthCheckProtocol" + case healthyThresholdCount = "HealthyThresholdCount" case name = "Name" case `protocol` = "Protocol" - case matcher = "Matcher" - case healthCheckIntervalSeconds = "HealthCheckIntervalSeconds" + case vpcId = "VpcId" + case targetType = "TargetType" case healthCheckPath = "HealthCheckPath" case healthCheckPort = "HealthCheckPort" - case healthCheckTimeoutSeconds = "HealthCheckTimeoutSeconds" case port = "Port" } } @@ -1874,12 +2075,13 @@ extension Elasticloadbalancingv2 { public enum LoadBalancerStateEnum: String, CustomStringConvertible, Codable { case active = "active" case provisioning = "provisioning" + case activeImpaired = "active_impaired" case failed = "failed" public var description: String { return self.rawValue } } public struct DeleteLoadBalancerInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancerArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the load balancer. @@ -1895,7 +2097,7 @@ extension Elasticloadbalancingv2 { } public struct CreateLoadBalancerOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBalancers", required: false, type: .list) ] /// Information about the load balancer. diff --git a/Sources/AWSSDKSwift/Services/elasticmapreduce/Elasticmapreduce_API.swift b/Sources/AWSSDKSwift/Services/elasticmapreduce/Elasticmapreduce_API.swift index b3bfbf87021..f1038ede6d6 100644 --- a/Sources/AWSSDKSwift/Services/elasticmapreduce/Elasticmapreduce_API.swift +++ b/Sources/AWSSDKSwift/Services/elasticmapreduce/Elasticmapreduce_API.swift @@ -65,7 +65,7 @@ public struct Elasticmapreduce { return try client.send(operation: "ListSteps", path: "/", httpMethod: "POST", input: input) } - /// Removes tags from an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tagging Amazon EMR Resources. The following example removes the stack tag with value Prod from a cluster: + /// Removes tags from an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tag Clusters. The following example removes the stack tag with value Prod from a cluster: public func removeTags(_ input: RemoveTagsInput) throws -> RemoveTagsOutput { return try client.send(operation: "RemoveTags", path: "/", httpMethod: "POST", input: input) } @@ -100,7 +100,7 @@ public struct Elasticmapreduce { return try client.send(operation: "CreateSecurityConfiguration", path: "/", httpMethod: "POST", input: input) } - /// Provides information about the cluster instances that Amazon EMR provisions on behalf of a user when it creates the cluster. For example, this operation indicates when the EC2 instances reach the Ready state, when instances become available to Amazon EMR to use for jobs, and the IP addresses for cluster instances, etc. + /// Provides information for all active EC2 instances and EC2 instances terminated in the last 30 days, up to a maximum of 2,000. EC2 instances in any of the following states are considered active: AWAITING_FULFILLMENT, PROVISIONING, BOOTSTRAPPING, RUNNING. public func listInstances(_ input: ListInstancesInput) throws -> ListInstancesOutput { return try client.send(operation: "ListInstances", path: "/", httpMethod: "POST", input: input) } @@ -115,7 +115,7 @@ public struct Elasticmapreduce { return try client.send(operation: "ListBootstrapActions", path: "/", httpMethod: "POST", input: input) } - /// Adds tags to an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tagging Amazon EMR Resources. + /// Adds tags to an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tag Clusters. public func addTags(_ input: AddTagsInput) throws -> AddTagsOutput { return try client.send(operation: "AddTags", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/elasticmapreduce/Elasticmapreduce_Shapes.swift b/Sources/AWSSDKSwift/Services/elasticmapreduce/Elasticmapreduce_Shapes.swift index 881ccb3131c..3cf39dbd8d0 100644 --- a/Sources/AWSSDKSwift/Services/elasticmapreduce/Elasticmapreduce_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/elasticmapreduce/Elasticmapreduce_Shapes.swift @@ -6,12 +6,12 @@ import AWSSDKSwiftCore extension Elasticmapreduce { public struct InstanceFleetStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "State", required: false, type: .enum), AWSShapeMember(label: "Timeline", required: false, type: .structure), AWSShapeMember(label: "StateChangeReason", required: false, type: .structure) ] - /// A code representing the instance fleet status. + /// A code representing the instance fleet status. PROVISIONING—The instance fleet is provisioning EC2 resources and is not yet ready to run jobs. BOOTSTRAPPING—EC2 instances and other resources have been provisioned and the bootstrap actions specified for the instances are underway. RUNNING—EC2 instances and other resources are running. They are either executing jobs or waiting to execute jobs. RESIZING—A resize operation is underway. EC2 instances are either being added or removed. SUSPENDED—A resize operation could not complete. Existing EC2 instances are running, but instances can't be added or removed. TERMINATING—The instance fleet is terminating EC2 instances. TERMINATED—The instance fleet is no longer active, and all EC2 instances have been terminated. public let state: InstanceFleetState? /// Provides historical timestamps for the instance fleet, including the time of creation, the time it became ready to run jobs, and the time of termination. public let timeline: InstanceFleetTimeline? @@ -46,7 +46,7 @@ extension Elasticmapreduce { } public struct JobFlowInstancesDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MasterInstanceId", required: false, type: .string), AWSShapeMember(label: "HadoopVersion", required: false, type: .string), AWSShapeMember(label: "NormalizedInstanceHours", required: false, type: .integer), @@ -77,7 +77,7 @@ extension Elasticmapreduce { public let instanceGroups: [InstanceGroupDetail]? /// The Amazon EC2 master node instance type. public let masterInstanceType: String - /// The DNS name of the master node. + /// The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name. public let masterPublicDnsName: String? /// The Amazon EC2 Availability Zone for the cluster. public let placement: PlacementType? @@ -129,7 +129,7 @@ extension Elasticmapreduce { } public struct PutAutoScalingPolicyOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceGroupId", required: false, type: .string), AWSShapeMember(label: "ClusterId", required: false, type: .string), AWSShapeMember(label: "AutoScalingPolicy", required: false, type: .structure) @@ -161,7 +161,7 @@ extension Elasticmapreduce { } public struct ListStepsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "StepIds", required: false, type: .list), AWSShapeMember(label: "StepStates", required: false, type: .list), @@ -192,16 +192,16 @@ extension Elasticmapreduce { } public struct SimpleScalingPolicyConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScalingAdjustment", required: true, type: .integer), AWSShapeMember(label: "CoolDown", required: false, type: .integer), AWSShapeMember(label: "AdjustmentType", required: false, type: .enum) ] - /// The amount by which to scale in or scale out, based on the specified AdjustmentType. A positive value adds to the instance group's EC2 instance count while a negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY, the number should only be a positive integer. If AdjustmentType is set to PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as a decimal. For example, -0.20 indicates a decrease in 20% increments of cluster capacity. + /// The amount by which to scale in or scale out, based on the specified AdjustmentType. A positive value adds to the instance group's EC2 instance count while a negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY, the number should only be a positive integer. If AdjustmentType is set to PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as an integer. For example, -20 indicates a decrease in 20% increments of cluster capacity. public let scalingAdjustment: Int32 /// The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start. The default value is 0. public let coolDown: Int32? - /// The way in which EC2 instances are added (if ScalingAdjustment is a positive number) or terminated (if ScalingAdjustment is a negative number) each time the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY indicates that the EC2 instance count increments or decrements by ScalingAdjustment, which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates the instance count increments or decrements by the percentage specified by ScalingAdjustment, which should be expressed as a decimal. For example, 0.20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY indicates the scaling activity results in an instance group with the number of EC2 instances specified by ScalingAdjustment, which should be expressed as a positive integer. + /// The way in which EC2 instances are added (if ScalingAdjustment is a positive number) or terminated (if ScalingAdjustment is a negative number) each time the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY indicates that the EC2 instance count increments or decrements by ScalingAdjustment, which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates the instance count increments or decrements by the percentage specified by ScalingAdjustment, which should be expressed as an integer. For example, 20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY indicates the scaling activity results in an instance group with the number of EC2 instances specified by ScalingAdjustment, which should be expressed as a positive integer. public let adjustmentType: AdjustmentType? public init(scalingAdjustment: Int32, coolDown: Int32? = nil, adjustmentType: AdjustmentType? = nil) { @@ -218,7 +218,7 @@ extension Elasticmapreduce { } public struct InstanceFleet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetOnDemandCapacity", required: false, type: .integer), AWSShapeMember(label: "Status", required: false, type: .structure), AWSShapeMember(label: "InstanceTypeSpecifications", required: false, type: .list), @@ -279,7 +279,7 @@ extension Elasticmapreduce { } public struct InstanceGroupStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "State", required: false, type: .enum), AWSShapeMember(label: "Timeline", required: false, type: .structure), AWSShapeMember(label: "StateChangeReason", required: false, type: .structure) @@ -305,7 +305,7 @@ extension Elasticmapreduce { } public struct CreateSecurityConfigurationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "CreationDateTime", required: true, type: .timestamp) ] @@ -333,7 +333,7 @@ extension Elasticmapreduce { } public struct FailureDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Reason", required: false, type: .string), AWSShapeMember(label: "LogFile", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string) @@ -359,7 +359,7 @@ extension Elasticmapreduce { } public struct ListClustersInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterStates", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "CreatedBefore", required: false, type: .timestamp), @@ -390,7 +390,7 @@ extension Elasticmapreduce { } public struct ClusterStateChangeReason: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", required: false, type: .enum), AWSShapeMember(label: "Message", required: false, type: .string) ] @@ -411,7 +411,7 @@ extension Elasticmapreduce { } public struct VolumeSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Iops", required: false, type: .integer), AWSShapeMember(label: "VolumeType", required: true, type: .string), AWSShapeMember(label: "SizeInGB", required: true, type: .integer) @@ -437,7 +437,7 @@ extension Elasticmapreduce { } public struct Application: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Version", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Args", required: false, type: .list), @@ -468,7 +468,7 @@ extension Elasticmapreduce { } public struct DescribeJobFlowsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobFlows", required: false, type: .list) ] /// A list of job flows matching the parameters supplied. @@ -484,7 +484,7 @@ extension Elasticmapreduce { } public struct CloudWatchAlarmDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Threshold", required: true, type: .double), AWSShapeMember(label: "MetricName", required: true, type: .string), AWSShapeMember(label: "Period", required: true, type: .integer), @@ -540,13 +540,13 @@ extension Elasticmapreduce { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] - /// A user-defined value, which is optional in a tag. For more information, see Tagging Amazon EMR Resources. + /// A user-defined value, which is optional in a tag. For more information, see Tag Clusters. public let value: String? - /// A user-defined key, which is the minimum required information for a valid tag. For more information, see Tagging Amazon EMR Resources. + /// A user-defined key, which is the minimum required information for a valid tag. For more information, see Tag . public let key: String? public init(value: String? = nil, key: String? = nil) { @@ -561,7 +561,7 @@ extension Elasticmapreduce { } public struct DescribeSecurityConfigurationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityConfiguration", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "CreationDateTime", required: false, type: .timestamp) @@ -587,7 +587,7 @@ extension Elasticmapreduce { } public struct CancelStepsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CancelStepsInfoList", required: false, type: .list) ] /// A list of CancelStepsInfo, which shows the status of specified cancel requests for each StepID specified. @@ -603,7 +603,7 @@ extension Elasticmapreduce { } public struct InstanceFleetProvisioningSpecifications: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SpotSpecification", required: true, type: .structure) ] /// The launch specification for Spot instances in the fleet, which determines the defined duration and provisioning timeout behavior. @@ -619,7 +619,7 @@ extension Elasticmapreduce { } public struct PutAutoScalingPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceGroupId", required: true, type: .string), AWSShapeMember(label: "ClusterId", required: true, type: .string), AWSShapeMember(label: "AutoScalingPolicy", required: true, type: .structure) @@ -645,7 +645,7 @@ extension Elasticmapreduce { } public struct ClusterTimeline: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReadyDateTime", required: false, type: .timestamp), AWSShapeMember(label: "CreationDateTime", required: false, type: .timestamp), AWSShapeMember(label: "EndDateTime", required: false, type: .timestamp) @@ -671,7 +671,7 @@ extension Elasticmapreduce { } public struct AddJobFlowStepsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StepIds", required: false, type: .list) ] /// The identifiers of the list of steps added to the job flow. @@ -687,7 +687,7 @@ extension Elasticmapreduce { } public struct Instance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EbsVolumes", required: false, type: .list), AWSShapeMember(label: "InstanceFleetId", required: false, type: .string), AWSShapeMember(label: "InstanceGroupId", required: false, type: .string), @@ -758,7 +758,7 @@ extension Elasticmapreduce { } public struct ScalingAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Market", required: false, type: .enum), AWSShapeMember(label: "SimpleScalingPolicyConfiguration", required: true, type: .structure) ] @@ -779,7 +779,7 @@ extension Elasticmapreduce { } public struct Step: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActionOnFailure", required: false, type: .enum), AWSShapeMember(label: "Status", required: false, type: .structure), AWSShapeMember(label: "Name", required: false, type: .string), @@ -814,6 +814,12 @@ extension Elasticmapreduce { } } + public enum RepoUpgradeOnBoot: String, CustomStringConvertible, Codable { + case security = "SECURITY" + case none = "NONE" + public var description: String { return self.rawValue } + } + public enum Unit: String, CustomStringConvertible, Codable { case none = "NONE" case seconds = "SECONDS" @@ -852,11 +858,11 @@ extension Elasticmapreduce { } public struct CreateSecurityConfigurationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SecurityConfiguration", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] - /// The security configuration details in JSON format. + /// The security configuration details in JSON format. For JSON parameters and examples, see Use Security Configurations to Set Up Cluster Security in the Amazon EMR Management Guide. public let securityConfiguration: String /// The name of the security configuration. public let name: String @@ -873,7 +879,7 @@ extension Elasticmapreduce { } public struct ListInstanceGroupsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ClusterId", required: true, type: .string) ] @@ -894,7 +900,7 @@ extension Elasticmapreduce { } public struct InstanceGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BidPrice", required: false, type: .string), AWSShapeMember(label: "ShrinkPolicy", required: false, type: .structure), AWSShapeMember(label: "EbsOptimized", required: false, type: .boolean), @@ -985,7 +991,7 @@ extension Elasticmapreduce { } public struct InstanceFleetConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetOnDemandCapacity", required: false, type: .integer), AWSShapeMember(label: "InstanceTypeConfigs", required: false, type: .list), AWSShapeMember(label: "LaunchSpecifications", required: false, type: .structure), @@ -1026,7 +1032,7 @@ extension Elasticmapreduce { } public struct ListInstanceFleetsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ClusterId", required: true, type: .string) ] @@ -1058,7 +1064,7 @@ extension Elasticmapreduce { } public struct Command: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Args", required: false, type: .list), AWSShapeMember(label: "ScriptPath", required: false, type: .string) @@ -1084,7 +1090,7 @@ extension Elasticmapreduce { } public struct AutoScalingPolicyStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "State", required: false, type: .enum), AWSShapeMember(label: "StateChangeReason", required: false, type: .structure) ] @@ -1105,7 +1111,7 @@ extension Elasticmapreduce { } public struct ListInstanceFleetsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "InstanceFleets", required: false, type: .list) ] @@ -1126,7 +1132,7 @@ extension Elasticmapreduce { } public struct DescribeStepOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Step", required: false, type: .structure) ] /// The step details for the requested step identifier. @@ -1142,7 +1148,7 @@ extension Elasticmapreduce { } public struct PlacementType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "AvailabilityZone", required: false, type: .string) ] @@ -1163,7 +1169,7 @@ extension Elasticmapreduce { } public struct MetricDimension: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -1184,7 +1190,7 @@ extension Elasticmapreduce { } public struct DeleteSecurityConfigurationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// The name of the security configuration. @@ -1200,7 +1206,7 @@ extension Elasticmapreduce { } public struct StepConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HadoopJarStep", required: true, type: .structure), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "ActionOnFailure", required: false, type: .enum) @@ -1237,7 +1243,7 @@ extension Elasticmapreduce { } public struct DescribeClusterOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] /// This output contains the details for the requested cluster. @@ -1253,7 +1259,7 @@ extension Elasticmapreduce { } public struct ListInstancesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceGroupId", required: false, type: .string), AWSShapeMember(label: "InstanceFleetId", required: false, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -1299,7 +1305,7 @@ extension Elasticmapreduce { } public struct Ec2InstanceAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EmrManagedSlaveSecurityGroup", required: false, type: .string), AWSShapeMember(label: "IamInstanceProfile", required: false, type: .string), AWSShapeMember(label: "Ec2SubnetId", required: false, type: .string), @@ -1320,7 +1326,7 @@ extension Elasticmapreduce { public let ec2SubnetId: String? /// The identifier of the Amazon EC2 security group for the master node. public let emrManagedMasterSecurityGroup: String? - /// Applies to clusters configured with the The list of availability zones to choose from. The service will choose the availability zone with the best mix of available capacity and lowest cost to launch the cluster. If you do not specify this value, the cluster is launched in any availability zone that the customer account has access to. + /// Applies to clusters configured with the instance fleets option. Specifies one or more Availability Zones in which to launch EC2 cluster instances when the EC2-Classic network configuration is supported. Amazon EMR chooses the Availability Zone with the best fit from among the list of RequestedEc2AvailabilityZones, and then launches all cluster instances within that Availability Zone. If you do not specify this value, Amazon EMR chooses the Availability Zone for you. RequestedEc2SubnetIDs and RequestedEc2AvailabilityZones cannot be specified together. public let requestedEc2AvailabilityZones: [String]? /// A list of additional Amazon EC2 security group IDs for the master node. public let additionalMasterSecurityGroups: [String]? @@ -1328,7 +1334,7 @@ extension Elasticmapreduce { public let serviceAccessSecurityGroup: String? /// A list of additional Amazon EC2 security group IDs for the slave nodes. public let additionalSlaveSecurityGroups: [String]? - /// Applies to clusters configured with the instance fleets option. Specifies the unique identifier of one or more Amazon EC2 subnets in which to launch EC2 cluster instances. Amazon EMR chooses the EC2 subnet with the best performance and cost characteristics from among the list of RequestedEc2SubnetIds and launches all cluster instances within that subnet. If this value is not specified, and the account supports EC2-Classic networks, the cluster launches instances in the EC2-Classic network and uses Requested + /// Applies to clusters configured with the instance fleets option. Specifies the unique identifier of one or more Amazon EC2 subnets in which to launch EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR chooses the EC2 subnet with the best fit from among the list of RequestedEc2SubnetIds, and then launches all cluster instances within that Subnet. If this value is not specified, and the account and region support EC2-Classic networks, the cluster launches instances in the EC2-Classic network and uses RequestedEc2AvailabilityZones instead of this setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR chooses the subnet for you. RequestedEc2SubnetIDs and RequestedEc2AvailabilityZones cannot be specified together. public let requestedEc2SubnetIds: [String]? /// The Availability Zone in which the cluster will run. public let ec2AvailabilityZone: String? @@ -1365,7 +1371,7 @@ extension Elasticmapreduce { } public struct EbsVolume: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeId", required: false, type: .string), AWSShapeMember(label: "Device", required: false, type: .string) ] @@ -1386,7 +1392,7 @@ extension Elasticmapreduce { } public struct ListSecurityConfigurationsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "SecurityConfigurations", required: false, type: .list) ] @@ -1407,7 +1413,7 @@ extension Elasticmapreduce { } public struct StepTimeline: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartDateTime", required: false, type: .timestamp), AWSShapeMember(label: "CreationDateTime", required: false, type: .timestamp), AWSShapeMember(label: "EndDateTime", required: false, type: .timestamp) @@ -1432,8 +1438,44 @@ extension Elasticmapreduce { } } + public struct KerberosAttributes: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Realm", required: true, type: .string), + AWSShapeMember(label: "ADDomainJoinUser", required: false, type: .string), + AWSShapeMember(label: "KdcAdminPassword", required: true, type: .string), + AWSShapeMember(label: "CrossRealmTrustPrincipalPassword", required: false, type: .string), + AWSShapeMember(label: "ADDomainJoinPassword", required: false, type: .string) + ] + /// The name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL. + public let realm: String + /// Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. + public let aDDomainJoinUser: String? + /// The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. + public let kdcAdminPassword: String + /// Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. + public let crossRealmTrustPrincipalPassword: String? + /// The Active Directory password for ADDomainJoinUser. + public let aDDomainJoinPassword: String? + + public init(realm: String, aDDomainJoinUser: String? = nil, kdcAdminPassword: String, crossRealmTrustPrincipalPassword: String? = nil, aDDomainJoinPassword: String? = nil) { + self.realm = realm + self.aDDomainJoinUser = aDDomainJoinUser + self.kdcAdminPassword = kdcAdminPassword + self.crossRealmTrustPrincipalPassword = crossRealmTrustPrincipalPassword + self.aDDomainJoinPassword = aDDomainJoinPassword + } + + private enum CodingKeys: String, CodingKey { + case realm = "Realm" + case aDDomainJoinUser = "ADDomainJoinUser" + case kdcAdminPassword = "KdcAdminPassword" + case crossRealmTrustPrincipalPassword = "CrossRealmTrustPrincipalPassword" + case aDDomainJoinPassword = "ADDomainJoinPassword" + } + } + public struct InstanceStateChangeReason: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", required: false, type: .enum), AWSShapeMember(label: "Message", required: false, type: .string) ] @@ -1466,7 +1508,7 @@ extension Elasticmapreduce { } public struct AutoScalingPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: true, type: .list), AWSShapeMember(label: "Constraints", required: true, type: .structure) ] @@ -1486,8 +1528,8 @@ extension Elasticmapreduce { } } - public struct Configuration: AWSShape { - public static var members: [AWSShapeMember] = [ + public class Configuration: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Classification", required: false, type: .string), AWSShapeMember(label: "Configurations", required: false, type: .list), AWSShapeMember(label: "Properties", required: false, type: .map) @@ -1513,7 +1555,7 @@ extension Elasticmapreduce { } public struct CancelStepsInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Reason", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "StepId", required: false, type: .string) @@ -1549,7 +1591,7 @@ extension Elasticmapreduce { } public struct AutoScalingPolicyStateChangeReason: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", required: false, type: .enum), AWSShapeMember(label: "Message", required: false, type: .string) ] @@ -1570,7 +1612,7 @@ extension Elasticmapreduce { } public struct InstanceFleetStateChangeReason: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", required: false, type: .enum), AWSShapeMember(label: "Message", required: false, type: .string) ] @@ -1591,7 +1633,7 @@ extension Elasticmapreduce { } public struct ScalingRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: true, type: .structure), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Trigger", required: true, type: .structure), @@ -1641,7 +1683,7 @@ extension Elasticmapreduce { } public struct ListSecurityConfigurationsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string) ] /// The pagination token that indicates the set of results to retrieve. @@ -1663,7 +1705,7 @@ extension Elasticmapreduce { } public struct JobFlowDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Steps", required: false, type: .list), AWSShapeMember(label: "SupportedProducts", required: false, type: .list), AWSShapeMember(label: "AutoScalingRole", required: false, type: .string), @@ -1685,7 +1727,7 @@ extension Elasticmapreduce { public let supportedProducts: [String]? /// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides a way for the automatic scaling feature to get the required permissions it needs to launch and terminate EC2 instances in an instance group. public let autoScalingRole: String? - /// The version of the AMI used to initialize Amazon EC2 instances in the job flow. For a list of AMI versions currently supported by Amazon EMR, see AMI Versions Supported in EMR in the Amazon EMR Developer Guide. + /// Used only for version 2.x and 3.x of Amazon EMR. The version of the AMI used to initialize Amazon EC2 instances in the job flow. For a list of AMI versions supported by Amazon EMR, see AMI Versions Supported in EMR in the Amazon EMR Developer Guide. public let amiVersion: String? /// Specifies whether the cluster is visible to all IAM users of the AWS account associated with the cluster. If this value is set to true, all IAM users of that AWS account can view and (if they have the proper policy permissions set) manage the cluster. If it is set to false, only the IAM user that created the cluster can view and manage it. This value can be changed using the SetVisibleToAllUsers action. public let visibleToAllUsers: Bool? @@ -1744,7 +1786,7 @@ extension Elasticmapreduce { } public struct InstanceGroupTimeline: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReadyDateTime", required: false, type: .timestamp), AWSShapeMember(label: "CreationDateTime", required: false, type: .timestamp), AWSShapeMember(label: "EndDateTime", required: false, type: .timestamp) @@ -1770,7 +1812,7 @@ extension Elasticmapreduce { } public struct ScalingTrigger: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CloudWatchAlarmDefinition", required: true, type: .structure) ] /// The definition of a CloudWatch metric alarm. When the defined alarm conditions are met along with other trigger parameters, scaling activity begins. @@ -1789,6 +1831,7 @@ extension Elasticmapreduce { case internalError = "INTERNAL_ERROR" case validationError = "VALIDATION_ERROR" case instanceFailure = "INSTANCE_FAILURE" + case instanceFleetTimeout = "INSTANCE_FLEET_TIMEOUT" case bootstrapFailure = "BOOTSTRAP_FAILURE" case userRequest = "USER_REQUEST" case stepFailure = "STEP_FAILURE" @@ -1797,7 +1840,7 @@ extension Elasticmapreduce { } public struct BootstrapActionDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BootstrapActionConfig", required: false, type: .structure) ] /// A description of the bootstrap action. @@ -1821,7 +1864,7 @@ extension Elasticmapreduce { } public struct DescribeJobFlowsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobFlowStates", required: false, type: .list), AWSShapeMember(label: "JobFlowIds", required: false, type: .list), AWSShapeMember(label: "CreatedBefore", required: false, type: .timestamp), @@ -1859,7 +1902,7 @@ extension Elasticmapreduce { } public struct EbsBlockDeviceConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeSpecification", required: true, type: .structure), AWSShapeMember(label: "VolumesPerInstance", required: false, type: .integer) ] @@ -1880,7 +1923,7 @@ extension Elasticmapreduce { } public struct SetTerminationProtectionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobFlowIds", required: true, type: .list), AWSShapeMember(label: "TerminationProtected", required: true, type: .boolean) ] @@ -1901,7 +1944,7 @@ extension Elasticmapreduce { } public struct RemoveTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -1922,7 +1965,7 @@ extension Elasticmapreduce { } public struct InstanceStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "State", required: false, type: .enum), AWSShapeMember(label: "Timeline", required: false, type: .structure), AWSShapeMember(label: "StateChangeReason", required: false, type: .structure) @@ -1948,7 +1991,7 @@ extension Elasticmapreduce { } public struct StepSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActionOnFailure", required: false, type: .enum), AWSShapeMember(label: "Status", required: false, type: .structure), AWSShapeMember(label: "Name", required: false, type: .string), @@ -1984,7 +2027,7 @@ extension Elasticmapreduce { } public struct BootstrapActionConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "ScriptBootstrapAction", required: true, type: .structure) ] @@ -2005,7 +2048,7 @@ extension Elasticmapreduce { } public struct AddInstanceGroupsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobFlowId", required: false, type: .string), AWSShapeMember(label: "InstanceGroupIds", required: false, type: .list) ] @@ -2031,7 +2074,7 @@ extension Elasticmapreduce { } public struct ListInstancesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Instances", required: false, type: .list) ] @@ -2052,7 +2095,7 @@ extension Elasticmapreduce { } public struct InstanceFleetModifyConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetOnDemandCapacity", required: false, type: .integer), AWSShapeMember(label: "InstanceFleetId", required: true, type: .string), AWSShapeMember(label: "TargetSpotCapacity", required: false, type: .integer) @@ -2078,7 +2121,7 @@ extension Elasticmapreduce { } public struct ListInstanceGroupsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "InstanceGroups", required: false, type: .list) ] @@ -2099,7 +2142,7 @@ extension Elasticmapreduce { } public struct SecurityConfigurationSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "CreationDateTime", required: false, type: .timestamp) ] @@ -2120,7 +2163,7 @@ extension Elasticmapreduce { } public struct AddInstanceFleetOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterId", required: false, type: .string), AWSShapeMember(label: "InstanceFleetId", required: false, type: .string) ] @@ -2141,7 +2184,7 @@ extension Elasticmapreduce { } public struct ListBootstrapActionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "BootstrapActions", required: false, type: .list) ] @@ -2162,7 +2205,7 @@ extension Elasticmapreduce { } public struct CancelStepsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StepIds", required: false, type: .list), AWSShapeMember(label: "ClusterId", required: false, type: .string) ] @@ -2183,7 +2226,7 @@ extension Elasticmapreduce { } public struct ModifyInstanceFleetInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterId", required: true, type: .string), AWSShapeMember(label: "InstanceFleet", required: true, type: .structure) ] @@ -2204,7 +2247,7 @@ extension Elasticmapreduce { } public struct JobFlowInstancesConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceFleets", required: false, type: .list), AWSShapeMember(label: "HadoopVersion", required: false, type: .string), AWSShapeMember(label: "Ec2SubnetId", required: false, type: .string), @@ -2300,7 +2343,7 @@ extension Elasticmapreduce { } public struct InstanceTypeConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WeightedCapacity", required: false, type: .integer), AWSShapeMember(label: "BidPrice", required: false, type: .string), AWSShapeMember(label: "BidPriceAsPercentageOfOnDemandPrice", required: false, type: .double), @@ -2308,11 +2351,11 @@ extension Elasticmapreduce { AWSShapeMember(label: "EbsConfiguration", required: false, type: .structure), AWSShapeMember(label: "Configurations", required: false, type: .list) ] - /// The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in InstanceFleetConfig. This value is 1 for a master instance fleet, and must be greater than 0 for core and task instance fleets. + /// The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in InstanceFleetConfig. This value is 1 for a master instance fleet, and must be 1 or greater for core and task instance fleets. Defaults to 1 if not specified. public let weightedCapacity: Int32? /// The bid price for each EC2 Spot instance type as defined by InstanceType. Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%. public let bidPrice: String? - /// The bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by InstanceType. Expressed as a number between 0 and 1000 (for example, 20 specifies 20%). If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%. + /// The bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by InstanceType. Expressed as a number (for example, 20 specifies 20%). If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%. public let bidPriceAsPercentageOfOnDemandPrice: Double? /// An EC2 instance type, such as m3.xlarge. public let instanceType: String @@ -2355,7 +2398,7 @@ extension Elasticmapreduce { } public struct TerminateJobFlowsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobFlowIds", required: true, type: .list) ] /// A list of job flows to be shutdown. @@ -2371,7 +2414,7 @@ extension Elasticmapreduce { } public struct HadoopJarStepConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MainClass", required: false, type: .string), AWSShapeMember(label: "Jar", required: true, type: .string), AWSShapeMember(label: "Properties", required: false, type: .list), @@ -2402,7 +2445,7 @@ extension Elasticmapreduce { } public struct ShrinkPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceResizePolicy", required: false, type: .structure), AWSShapeMember(label: "DecommissionTimeout", required: false, type: .integer) ] @@ -2423,7 +2466,7 @@ extension Elasticmapreduce { } public struct ListBootstrapActionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ClusterId", required: true, type: .string) ] @@ -2453,7 +2496,7 @@ extension Elasticmapreduce { } public struct InstanceFleetTimeline: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReadyDateTime", required: false, type: .timestamp), AWSShapeMember(label: "CreationDateTime", required: false, type: .timestamp), AWSShapeMember(label: "EndDateTime", required: false, type: .timestamp) @@ -2479,7 +2522,7 @@ extension Elasticmapreduce { } public struct ScalingConstraints: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxCapacity", required: true, type: .integer), AWSShapeMember(label: "MinCapacity", required: true, type: .integer) ] @@ -2500,7 +2543,7 @@ extension Elasticmapreduce { } public struct AutoScalingPolicyDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .structure), AWSShapeMember(label: "Rules", required: false, type: .list), AWSShapeMember(label: "Constraints", required: false, type: .structure) @@ -2526,7 +2569,7 @@ extension Elasticmapreduce { } public struct SupportedProductConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Args", required: false, type: .list) ] @@ -2547,7 +2590,7 @@ extension Elasticmapreduce { } public struct InstanceTypeSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WeightedCapacity", required: false, type: .integer), AWSShapeMember(label: "BidPrice", required: false, type: .string), AWSShapeMember(label: "EbsBlockDevices", required: false, type: .list), @@ -2593,7 +2636,7 @@ extension Elasticmapreduce { } public struct StepExecutionStatusDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartDateTime", required: false, type: .timestamp), AWSShapeMember(label: "LastStateChangeReason", required: false, type: .string), AWSShapeMember(label: "CreationDateTime", required: true, type: .timestamp), @@ -2638,107 +2681,127 @@ extension Elasticmapreduce { } public struct RunJobFlowInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Steps", required: false, type: .list), - AWSShapeMember(label: "ReleaseLabel", required: false, type: .string), AWSShapeMember(label: "SupportedProducts", required: false, type: .list), - AWSShapeMember(label: "AutoScalingRole", required: false, type: .string), + AWSShapeMember(label: "ReleaseLabel", required: false, type: .string), AWSShapeMember(label: "SecurityConfiguration", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "AmiVersion", required: false, type: .string), + AWSShapeMember(label: "RepoUpgradeOnBoot", required: false, type: .enum), + AWSShapeMember(label: "AutoScalingRole", required: false, type: .string), AWSShapeMember(label: "VisibleToAllUsers", required: false, type: .boolean), AWSShapeMember(label: "Applications", required: false, type: .list), AWSShapeMember(label: "ServiceRole", required: false, type: .string), + AWSShapeMember(label: "CustomAmiId", required: false, type: .string), AWSShapeMember(label: "NewSupportedProducts", required: false, type: .list), AWSShapeMember(label: "JobFlowRole", required: false, type: .string), AWSShapeMember(label: "BootstrapActions", required: false, type: .list), - AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "EbsRootVolumeSize", required: false, type: .integer), AWSShapeMember(label: "ScaleDownBehavior", required: false, type: .enum), + AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "AdditionalInfo", required: false, type: .string), AWSShapeMember(label: "LogUri", required: false, type: .string), AWSShapeMember(label: "Instances", required: true, type: .structure), + AWSShapeMember(label: "KerberosAttributes", required: false, type: .structure), AWSShapeMember(label: "Configurations", required: false, type: .list) ] /// A list of steps to run. public let steps: [StepConfig]? - /// Amazon EMR releases 4.x or later. The release label for the Amazon EMR release. For Amazon EMR 3.x and 2.x AMIs, use amiVersion instead instead of ReleaseLabel. - public let releaseLabel: String? - /// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and greater, use Applications. A list of strings that indicates third-party software to use. For more information, see Use Third Party Applications with Amazon EMR. Currently supported values are: "mapr-m3" - launch the job flow using MapR M3 Edition. "mapr-m5" - launch the job flow using MapR M5 Edition. + /// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later, use Applications. A list of strings that indicates third-party software to use. For more information, see the Amazon EMR Developer Guide. Currently supported values are: "mapr-m3" - launch the job flow using MapR M3 Edition. "mapr-m5" - launch the job flow using MapR M5 Edition. public let supportedProducts: [String]? - /// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group. - public let autoScalingRole: String? + /// The release label for the Amazon EMR release. For Amazon EMR 3.x and 2.x AMIs, use AmiVersion instead. + public let releaseLabel: String? /// The name of a security configuration to apply to the cluster. public let securityConfiguration: String? /// A list of tags to associate with a cluster and propagate to Amazon EC2 instances. public let tags: [Tag]? - /// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and greater, use ReleaseLabel. The version of the Amazon Machine Image (AMI) to use when launching Amazon EC2 instances in the job flow. The following values are valid: The version number of the AMI to use, for example, "2.0." If the AMI supports multiple versions of Hadoop (for example, AMI 1.0 supports both Hadoop 0.18 and 0.20) you can use the JobFlowInstancesConfig HadoopVersion parameter to modify the version of Hadoop from the defaults shown above. For details about the AMI versions currently supported by Amazon Elastic MapReduce, see AMI Versions Supported in Elastic MapReduce in the Amazon Elastic MapReduce Developer Guide. Previously, the EMR AMI version API parameter options allowed you to use latest for the latest AMI version rather than specify a numerical value. Some regions no longer support this deprecated option as they only have a newer release label version of EMR, which requires you to specify an EMR release label release (EMR 4.x or later). + /// For Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases 4.0 and later, the Linux AMI is determined by the ReleaseLabel specified or by CustomAmiID. The version of the Amazon Machine Image (AMI) to use when launching Amazon EC2 instances in the job flow. For details about the AMI versions currently supported in EMR version 3.x and 2.x, see AMI Versions Supported in EMR in the Amazon EMR Developer Guide. If the AMI supports multiple versions of Hadoop (for example, AMI 1.0 supports both Hadoop 0.18 and 0.20), you can use the JobFlowInstancesConfig HadoopVersion parameter to modify the version of Hadoop from the defaults shown above. Previously, the EMR AMI version API parameter options allowed you to use latest for the latest AMI version rather than specify a numerical value. Some regions no longer support this deprecated option as they only have a newer release label version of EMR, which requires you to specify an EMR release label release (EMR 4.x or later). public let amiVersion: String? + /// Applies only when CustomAmiID is used. Specifies which updates from the Amazon Linux AMI package repositories to apply automatically when the instance boots using the AMI. If omitted, the default is SECURITY, which indicates that only security updates are applied. If NONE is specified, no updates are applied, and all updates must be applied manually. + public let repoUpgradeOnBoot: RepoUpgradeOnBoot? + /// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group. + public let autoScalingRole: String? /// Whether the cluster is visible to all IAM users of the AWS account associated with the cluster. If this value is set to true, all IAM users of that AWS account can view and (if they have the proper policy permissions set) manage the cluster. If it is set to false, only the IAM user that created the cluster can view and manage it. public let visibleToAllUsers: Bool? - /// Amazon EMR releases 4.x or later. A list of applications for the cluster. Valid values are: "Hadoop", "Hive", "Mahout", "Pig", and "Spark." They are case insensitive. + /// For Amazon EMR releases 4.0 and later. A list of applications for the cluster. Valid values are: "Hadoop", "Hive", "Mahout", "Pig", and "Spark." They are case insensitive. public let applications: [Application]? /// The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf. public let serviceRole: String? - /// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and greater, use Applications. A list of strings that indicates third-party software to use with the job flow that accepts a user argument list. EMR accepts and forwards the argument list to the corresponding installation script as bootstrap action arguments. For more information, see "Launch a Job Flow on the MapR Distribution for Hadoop" in the Amazon EMR Developer Guide. Supported values are: "mapr-m3" - launch the cluster using MapR M3 Edition. "mapr-m5" - launch the cluster using MapR M5 Edition. "mapr" with the user arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow using MapR M3 or M5 Edition respectively. "mapr-m7" - launch the cluster using MapR M7 Edition. "hunk" - launch the cluster with the Hunk Big Data Analtics Platform. "hue"- launch the cluster with Hue installed. "spark" - launch the cluster with Apache Spark installed. "ganglia" - launch the cluster with the Ganglia Monitoring System installed. + /// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it launches cluster EC2 instances. For more information about custom AMIs in Amazon EMR, see Using a Custom AMI in the Amazon EMR Management Guide. If omitted, the cluster uses the base Linux AMI for the ReleaseLabel specified. For Amazon EMR versions 2.x and 3.x, use AmiVersion instead. For information about creating a custom AMI, see Creating an Amazon EBS-Backed Linux AMI in the Amazon Elastic Compute Cloud User Guide for Linux Instances. For information about finding an AMI ID, see Finding a Linux AMI. + public let customAmiId: String? + /// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later, use Applications. A list of strings that indicates third-party software to use with the job flow that accepts a user argument list. EMR accepts and forwards the argument list to the corresponding installation script as bootstrap action arguments. For more information, see "Launch a Job Flow on the MapR Distribution for Hadoop" in the Amazon EMR Developer Guide. Supported values are: "mapr-m3" - launch the cluster using MapR M3 Edition. "mapr-m5" - launch the cluster using MapR M5 Edition. "mapr" with the user arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow using MapR M3 or M5 Edition respectively. "mapr-m7" - launch the cluster using MapR M7 Edition. "hunk" - launch the cluster with the Hunk Big Data Analtics Platform. "hue"- launch the cluster with Hue installed. "spark" - launch the cluster with Apache Spark installed. "ganglia" - launch the cluster with the Ganglia Monitoring System installed. public let newSupportedProducts: [SupportedProductConfig]? /// Also called instance profile and EC2 role. An IAM role for an EMR cluster. The EC2 instances of the cluster assume this role. The default role is EMR_EC2_DefaultRole. In order to use the default role, you must have already created it using the CLI or console. public let jobFlowRole: String? /// A list of bootstrap actions to run before Hadoop starts on the cluster nodes. public let bootstrapActions: [BootstrapActionConfig]? - /// The name of the job flow. - public let name: String + /// The size, in GiB, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later. + public let ebsRootVolumeSize: Int32? /// Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless of when the request to terminate the instance was submitted. This option is only available with Amazon EMR 5.1.0 and later and is the default for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates that Amazon EMR blacklists and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance-hour boundary. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION available only in Amazon EMR version 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0. public let scaleDownBehavior: ScaleDownBehavior? + /// The name of the job flow. + public let name: String /// A JSON string for selecting additional features. public let additionalInfo: String? /// The location in Amazon S3 to write the log files of the job flow. If a value is not provided, logs are not created. public let logUri: String? /// A specification of the number and type of Amazon EC2 instances. public let instances: JobFlowInstancesConfig - /// Amazon EMR releases 4.x or later. The list of configurations supplied for the EMR cluster you are creating. + /// Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see Use Kerberos Authentication in the EMR Management Guide. + public let kerberosAttributes: KerberosAttributes? + /// For Amazon EMR releases 4.0 and later. The list of configurations supplied for the EMR cluster you are creating. public let configurations: [Configuration]? - public init(steps: [StepConfig]? = nil, releaseLabel: String? = nil, supportedProducts: [String]? = nil, autoScalingRole: String? = nil, securityConfiguration: String? = nil, tags: [Tag]? = nil, amiVersion: String? = nil, visibleToAllUsers: Bool? = nil, applications: [Application]? = nil, serviceRole: String? = nil, newSupportedProducts: [SupportedProductConfig]? = nil, jobFlowRole: String? = nil, bootstrapActions: [BootstrapActionConfig]? = nil, name: String, scaleDownBehavior: ScaleDownBehavior? = nil, additionalInfo: String? = nil, logUri: String? = nil, instances: JobFlowInstancesConfig, configurations: [Configuration]? = nil) { + public init(steps: [StepConfig]? = nil, supportedProducts: [String]? = nil, releaseLabel: String? = nil, securityConfiguration: String? = nil, tags: [Tag]? = nil, amiVersion: String? = nil, repoUpgradeOnBoot: RepoUpgradeOnBoot? = nil, autoScalingRole: String? = nil, visibleToAllUsers: Bool? = nil, applications: [Application]? = nil, serviceRole: String? = nil, customAmiId: String? = nil, newSupportedProducts: [SupportedProductConfig]? = nil, jobFlowRole: String? = nil, bootstrapActions: [BootstrapActionConfig]? = nil, ebsRootVolumeSize: Int32? = nil, scaleDownBehavior: ScaleDownBehavior? = nil, name: String, additionalInfo: String? = nil, logUri: String? = nil, instances: JobFlowInstancesConfig, kerberosAttributes: KerberosAttributes? = nil, configurations: [Configuration]? = nil) { self.steps = steps - self.releaseLabel = releaseLabel self.supportedProducts = supportedProducts - self.autoScalingRole = autoScalingRole + self.releaseLabel = releaseLabel self.securityConfiguration = securityConfiguration self.tags = tags self.amiVersion = amiVersion + self.repoUpgradeOnBoot = repoUpgradeOnBoot + self.autoScalingRole = autoScalingRole self.visibleToAllUsers = visibleToAllUsers self.applications = applications self.serviceRole = serviceRole + self.customAmiId = customAmiId self.newSupportedProducts = newSupportedProducts self.jobFlowRole = jobFlowRole self.bootstrapActions = bootstrapActions - self.name = name + self.ebsRootVolumeSize = ebsRootVolumeSize self.scaleDownBehavior = scaleDownBehavior + self.name = name self.additionalInfo = additionalInfo self.logUri = logUri self.instances = instances + self.kerberosAttributes = kerberosAttributes self.configurations = configurations } private enum CodingKeys: String, CodingKey { case steps = "Steps" - case releaseLabel = "ReleaseLabel" case supportedProducts = "SupportedProducts" - case autoScalingRole = "AutoScalingRole" + case releaseLabel = "ReleaseLabel" case securityConfiguration = "SecurityConfiguration" case tags = "Tags" case amiVersion = "AmiVersion" + case repoUpgradeOnBoot = "RepoUpgradeOnBoot" + case autoScalingRole = "AutoScalingRole" case visibleToAllUsers = "VisibleToAllUsers" case applications = "Applications" case serviceRole = "ServiceRole" + case customAmiId = "CustomAmiId" case newSupportedProducts = "NewSupportedProducts" case jobFlowRole = "JobFlowRole" case bootstrapActions = "BootstrapActions" - case name = "Name" + case ebsRootVolumeSize = "EbsRootVolumeSize" case scaleDownBehavior = "ScaleDownBehavior" + case name = "Name" case additionalInfo = "AdditionalInfo" case logUri = "LogUri" case instances = "Instances" + case kerberosAttributes = "KerberosAttributes" case configurations = "Configurations" } } @@ -2756,7 +2819,7 @@ extension Elasticmapreduce { } public struct AddJobFlowStepsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Steps", required: true, type: .list), AWSShapeMember(label: "JobFlowId", required: true, type: .string) ] @@ -2787,49 +2850,43 @@ extension Elasticmapreduce { } public struct Cluster: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReleaseLabel", required: false, type: .string), - AWSShapeMember(label: "AutoScalingRole", required: false, type: .string), - AWSShapeMember(label: "SecurityConfiguration", required: false, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .list), - AWSShapeMember(label: "VisibleToAllUsers", required: false, type: .boolean), AWSShapeMember(label: "NormalizedInstanceHours", required: false, type: .integer), + AWSShapeMember(label: "AutoScalingRole", required: false, type: .string), AWSShapeMember(label: "Applications", required: false, type: .list), AWSShapeMember(label: "ServiceRole", required: false, type: .string), - AWSShapeMember(label: "Ec2InstanceAttributes", required: false, type: .structure), - AWSShapeMember(label: "InstanceCollectionType", required: false, type: .enum), AWSShapeMember(label: "Id", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .structure), AWSShapeMember(label: "ScaleDownBehavior", required: false, type: .enum), AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "RunningAmiVersion", required: false, type: .string), + AWSShapeMember(label: "MasterPublicDnsName", required: false, type: .string), AWSShapeMember(label: "RequestedAmiVersion", required: false, type: .string), AWSShapeMember(label: "LogUri", required: false, type: .string), - AWSShapeMember(label: "MasterPublicDnsName", required: false, type: .string), + AWSShapeMember(label: "AutoTerminate", required: false, type: .boolean), + AWSShapeMember(label: "SecurityConfiguration", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "VisibleToAllUsers", required: false, type: .boolean), + AWSShapeMember(label: "RepoUpgradeOnBoot", required: false, type: .enum), + AWSShapeMember(label: "Ec2InstanceAttributes", required: false, type: .structure), + AWSShapeMember(label: "InstanceCollectionType", required: false, type: .enum), + AWSShapeMember(label: "CustomAmiId", required: false, type: .string), + AWSShapeMember(label: "EbsRootVolumeSize", required: false, type: .integer), + AWSShapeMember(label: "RunningAmiVersion", required: false, type: .string), + AWSShapeMember(label: "KerberosAttributes", required: false, type: .structure), AWSShapeMember(label: "TerminationProtected", required: false, type: .boolean), - AWSShapeMember(label: "Configurations", required: false, type: .list), - AWSShapeMember(label: "AutoTerminate", required: false, type: .boolean) + AWSShapeMember(label: "Configurations", required: false, type: .list) ] - /// The release label for the Amazon EMR release. For Amazon EMR 3.x and 2.x AMIs, use amiVersion instead instead of ReleaseLabel. + /// The release label for the Amazon EMR release. public let releaseLabel: String? - /// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group. - public let autoScalingRole: String? - /// The name of the security configuration applied to the cluster. - public let securityConfiguration: String? - /// A list of tags associated with a cluster. - public let tags: [Tag]? - /// Indicates whether the cluster is visible to all IAM users of the AWS account associated with the cluster. If this value is set to true, all IAM users of that AWS account can view and manage the cluster if they have the proper policy permissions set. If this value is false, only the IAM user that created the cluster can view and manage it. This value can be changed using the SetVisibleToAllUsers action. - public let visibleToAllUsers: Bool? /// An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate. public let normalizedInstanceHours: Int32? + /// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group. + public let autoScalingRole: String? /// The applications installed on this cluster. public let applications: [Application]? /// The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf. public let serviceRole: String? - /// Provides information about the EC2 instances in a cluster grouped by category. For example, key name, subnet ID, IAM instance profile, and so on. - public let ec2InstanceAttributes: Ec2InstanceAttributes? - /// The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. The instance group configuration of the cluster. A value of INSTANCE_GROUP indicates a uniform instance group configuration. A value of INSTANCE_FLEET indicates an instance fleets configuration. - public let instanceCollectionType: InstanceCollectionType? /// The unique identifier for the cluster. public let id: String? /// The current status details about the cluster. @@ -2838,72 +2895,98 @@ extension Elasticmapreduce { public let scaleDownBehavior: ScaleDownBehavior? /// The name of the cluster. public let name: String? - /// The AMI version running on this cluster. - public let runningAmiVersion: String? + /// The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name. + public let masterPublicDnsName: String? /// The AMI version requested for this cluster. public let requestedAmiVersion: String? /// The path to the Amazon S3 location where logs for this cluster are stored. public let logUri: String? - /// The public DNS name of the master EC2 instance. - public let masterPublicDnsName: String? + /// Specifies whether the cluster should terminate after completing all steps. + public let autoTerminate: Bool? + /// The name of the security configuration applied to the cluster. + public let securityConfiguration: String? + /// A list of tags associated with a cluster. + public let tags: [Tag]? + /// Indicates whether the cluster is visible to all IAM users of the AWS account associated with the cluster. If this value is set to true, all IAM users of that AWS account can view and manage the cluster if they have the proper policy permissions set. If this value is false, only the IAM user that created the cluster can view and manage it. This value can be changed using the SetVisibleToAllUsers action. + public let visibleToAllUsers: Bool? + /// Applies only when CustomAmiID is used. Specifies the type of updates that are applied from the Amazon Linux AMI package repositories when an instance boots using the AMI. + public let repoUpgradeOnBoot: RepoUpgradeOnBoot? + /// Provides information about the EC2 instances in a cluster grouped by category. For example, key name, subnet ID, IAM instance profile, and so on. + public let ec2InstanceAttributes: Ec2InstanceAttributes? + /// The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. The instance group configuration of the cluster. A value of INSTANCE_GROUP indicates a uniform instance group configuration. A value of INSTANCE_FLEET indicates an instance fleets configuration. + public let instanceCollectionType: InstanceCollectionType? + /// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom Amazon EBS-backed Linux AMI if the cluster uses a custom AMI. + public let customAmiId: String? + /// The size, in GiB, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later. + public let ebsRootVolumeSize: Int32? + /// The AMI version running on this cluster. + public let runningAmiVersion: String? + /// Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see Use Kerberos Authentication in the EMR Management Guide. + public let kerberosAttributes: KerberosAttributes? /// Indicates whether Amazon EMR will lock the cluster to prevent the EC2 instances from being terminated by an API call or user intervention, or in the event of a cluster error. public let terminationProtected: Bool? - /// Amazon EMR releases 4.x or later. The list of Configurations supplied to the EMR cluster. + /// Applies only to Amazon EMR releases 4.x and later. The list of Configurations supplied to the EMR cluster. public let configurations: [Configuration]? - /// Specifies whether the cluster should terminate after completing all steps. - public let autoTerminate: Bool? - public init(releaseLabel: String? = nil, autoScalingRole: String? = nil, securityConfiguration: String? = nil, tags: [Tag]? = nil, visibleToAllUsers: Bool? = nil, normalizedInstanceHours: Int32? = nil, applications: [Application]? = nil, serviceRole: String? = nil, ec2InstanceAttributes: Ec2InstanceAttributes? = nil, instanceCollectionType: InstanceCollectionType? = nil, id: String? = nil, status: ClusterStatus? = nil, scaleDownBehavior: ScaleDownBehavior? = nil, name: String? = nil, runningAmiVersion: String? = nil, requestedAmiVersion: String? = nil, logUri: String? = nil, masterPublicDnsName: String? = nil, terminationProtected: Bool? = nil, configurations: [Configuration]? = nil, autoTerminate: Bool? = nil) { + public init(releaseLabel: String? = nil, normalizedInstanceHours: Int32? = nil, autoScalingRole: String? = nil, applications: [Application]? = nil, serviceRole: String? = nil, id: String? = nil, status: ClusterStatus? = nil, scaleDownBehavior: ScaleDownBehavior? = nil, name: String? = nil, masterPublicDnsName: String? = nil, requestedAmiVersion: String? = nil, logUri: String? = nil, autoTerminate: Bool? = nil, securityConfiguration: String? = nil, tags: [Tag]? = nil, visibleToAllUsers: Bool? = nil, repoUpgradeOnBoot: RepoUpgradeOnBoot? = nil, ec2InstanceAttributes: Ec2InstanceAttributes? = nil, instanceCollectionType: InstanceCollectionType? = nil, customAmiId: String? = nil, ebsRootVolumeSize: Int32? = nil, runningAmiVersion: String? = nil, kerberosAttributes: KerberosAttributes? = nil, terminationProtected: Bool? = nil, configurations: [Configuration]? = nil) { self.releaseLabel = releaseLabel - self.autoScalingRole = autoScalingRole - self.securityConfiguration = securityConfiguration - self.tags = tags - self.visibleToAllUsers = visibleToAllUsers self.normalizedInstanceHours = normalizedInstanceHours + self.autoScalingRole = autoScalingRole self.applications = applications self.serviceRole = serviceRole - self.ec2InstanceAttributes = ec2InstanceAttributes - self.instanceCollectionType = instanceCollectionType self.id = id self.status = status self.scaleDownBehavior = scaleDownBehavior self.name = name - self.runningAmiVersion = runningAmiVersion + self.masterPublicDnsName = masterPublicDnsName self.requestedAmiVersion = requestedAmiVersion self.logUri = logUri - self.masterPublicDnsName = masterPublicDnsName + self.autoTerminate = autoTerminate + self.securityConfiguration = securityConfiguration + self.tags = tags + self.visibleToAllUsers = visibleToAllUsers + self.repoUpgradeOnBoot = repoUpgradeOnBoot + self.ec2InstanceAttributes = ec2InstanceAttributes + self.instanceCollectionType = instanceCollectionType + self.customAmiId = customAmiId + self.ebsRootVolumeSize = ebsRootVolumeSize + self.runningAmiVersion = runningAmiVersion + self.kerberosAttributes = kerberosAttributes self.terminationProtected = terminationProtected self.configurations = configurations - self.autoTerminate = autoTerminate } private enum CodingKeys: String, CodingKey { case releaseLabel = "ReleaseLabel" - case autoScalingRole = "AutoScalingRole" - case securityConfiguration = "SecurityConfiguration" - case tags = "Tags" - case visibleToAllUsers = "VisibleToAllUsers" case normalizedInstanceHours = "NormalizedInstanceHours" + case autoScalingRole = "AutoScalingRole" case applications = "Applications" case serviceRole = "ServiceRole" - case ec2InstanceAttributes = "Ec2InstanceAttributes" - case instanceCollectionType = "InstanceCollectionType" case id = "Id" case status = "Status" case scaleDownBehavior = "ScaleDownBehavior" case name = "Name" - case runningAmiVersion = "RunningAmiVersion" + case masterPublicDnsName = "MasterPublicDnsName" case requestedAmiVersion = "RequestedAmiVersion" case logUri = "LogUri" - case masterPublicDnsName = "MasterPublicDnsName" + case autoTerminate = "AutoTerminate" + case securityConfiguration = "SecurityConfiguration" + case tags = "Tags" + case visibleToAllUsers = "VisibleToAllUsers" + case repoUpgradeOnBoot = "RepoUpgradeOnBoot" + case ec2InstanceAttributes = "Ec2InstanceAttributes" + case instanceCollectionType = "InstanceCollectionType" + case customAmiId = "CustomAmiId" + case ebsRootVolumeSize = "EbsRootVolumeSize" + case runningAmiVersion = "RunningAmiVersion" + case kerberosAttributes = "KerberosAttributes" case terminationProtected = "TerminationProtected" case configurations = "Configurations" - case autoTerminate = "AutoTerminate" } } public struct StepDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExecutionStatusDetail", required: true, type: .structure), AWSShapeMember(label: "StepConfig", required: true, type: .structure) ] @@ -2924,7 +3007,7 @@ extension Elasticmapreduce { } public struct KeyValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -2945,7 +3028,7 @@ extension Elasticmapreduce { } public struct DescribeClusterInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterId", required: true, type: .string) ] /// The identifier of the cluster to describe. @@ -2961,7 +3044,7 @@ extension Elasticmapreduce { } public struct DescribeStepInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterId", required: true, type: .string), AWSShapeMember(label: "StepId", required: true, type: .string) ] @@ -2993,7 +3076,7 @@ extension Elasticmapreduce { } public struct DescribeSecurityConfigurationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// The name of the security configuration. @@ -3009,7 +3092,7 @@ extension Elasticmapreduce { } public struct RunJobFlowOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobFlowId", required: false, type: .string) ] /// An unique identifier for the job flow. @@ -3034,7 +3117,7 @@ extension Elasticmapreduce { } public struct AddInstanceGroupsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobFlowId", required: true, type: .string), AWSShapeMember(label: "InstanceGroups", required: true, type: .list) ] @@ -3055,7 +3138,7 @@ extension Elasticmapreduce { } public struct ClusterSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .structure), AWSShapeMember(label: "NormalizedInstanceHours", required: false, type: .integer), AWSShapeMember(label: "Name", required: false, type: .string), @@ -3086,7 +3169,7 @@ extension Elasticmapreduce { } public struct SetVisibleToAllUsersInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobFlowIds", required: true, type: .list), AWSShapeMember(label: "VisibleToAllUsers", required: true, type: .boolean) ] @@ -3107,7 +3190,7 @@ extension Elasticmapreduce { } public struct InstanceGroupModifyConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceGroupId", required: true, type: .string), AWSShapeMember(label: "ShrinkPolicy", required: false, type: .structure), AWSShapeMember(label: "InstanceCount", required: false, type: .integer), @@ -3138,7 +3221,7 @@ extension Elasticmapreduce { } public struct InstanceGroupStateChangeReason: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", required: false, type: .enum), AWSShapeMember(label: "Message", required: false, type: .string) ] @@ -3159,7 +3242,7 @@ extension Elasticmapreduce { } public struct StepStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StateChangeReason", required: false, type: .structure), AWSShapeMember(label: "FailureDetails", required: false, type: .structure), AWSShapeMember(label: "State", required: false, type: .enum), @@ -3190,7 +3273,7 @@ extension Elasticmapreduce { } public struct EbsBlockDevice: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeSpecification", required: false, type: .structure), AWSShapeMember(label: "Device", required: false, type: .string) ] @@ -3211,7 +3294,7 @@ extension Elasticmapreduce { } public struct StepStateChangeReason: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", required: false, type: .enum), AWSShapeMember(label: "Message", required: false, type: .string) ] @@ -3232,7 +3315,7 @@ extension Elasticmapreduce { } public struct ClusterStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "State", required: false, type: .enum), AWSShapeMember(label: "Timeline", required: false, type: .structure), AWSShapeMember(label: "StateChangeReason", required: false, type: .structure) @@ -3258,7 +3341,7 @@ extension Elasticmapreduce { } public struct ModifyInstanceGroupsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterId", required: false, type: .string), AWSShapeMember(label: "InstanceGroups", required: false, type: .list) ] @@ -3283,7 +3366,7 @@ extension Elasticmapreduce { } public struct ListClustersOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Clusters", required: false, type: .list) ] @@ -3304,7 +3387,7 @@ extension Elasticmapreduce { } public struct InstanceGroupConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BidPrice", required: false, type: .string), AWSShapeMember(label: "Market", required: false, type: .enum), AWSShapeMember(label: "InstanceRole", required: true, type: .enum), @@ -3360,7 +3443,7 @@ extension Elasticmapreduce { } public struct InstanceGroupDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceGroupId", required: false, type: .string), AWSShapeMember(label: "BidPrice", required: false, type: .string), AWSShapeMember(label: "InstanceRunningCount", required: true, type: .integer), @@ -3441,7 +3524,7 @@ extension Elasticmapreduce { } public struct ListStepsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Steps", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string) ] @@ -3462,7 +3545,7 @@ extension Elasticmapreduce { } public struct HadoopStepConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MainClass", required: false, type: .string), AWSShapeMember(label: "Jar", required: false, type: .string), AWSShapeMember(label: "Properties", required: false, type: .map), @@ -3493,7 +3576,7 @@ extension Elasticmapreduce { } public struct EbsConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EbsOptimized", required: false, type: .boolean), AWSShapeMember(label: "EbsBlockDeviceConfigs", required: false, type: .list) ] @@ -3514,7 +3597,7 @@ extension Elasticmapreduce { } public struct InstanceTimeline: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReadyDateTime", required: false, type: .timestamp), AWSShapeMember(label: "CreationDateTime", required: false, type: .timestamp), AWSShapeMember(label: "EndDateTime", required: false, type: .timestamp) @@ -3540,7 +3623,7 @@ extension Elasticmapreduce { } public struct InstanceResizePolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstancesToTerminate", required: false, type: .list), AWSShapeMember(label: "InstanceTerminationTimeout", required: false, type: .integer), AWSShapeMember(label: "InstancesToProtect", required: false, type: .list) @@ -3566,7 +3649,7 @@ extension Elasticmapreduce { } public struct AddTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "Tags", required: true, type: .list) ] @@ -3595,7 +3678,7 @@ extension Elasticmapreduce { } public struct ScriptBootstrapActionConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Args", required: false, type: .list), AWSShapeMember(label: "Path", required: true, type: .string) ] @@ -3616,7 +3699,7 @@ extension Elasticmapreduce { } public struct AddInstanceFleetInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterId", required: true, type: .string), AWSShapeMember(label: "InstanceFleet", required: true, type: .structure) ] @@ -3637,14 +3720,14 @@ extension Elasticmapreduce { } public struct SpotProvisioningSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TimeoutDurationMinutes", required: true, type: .integer), AWSShapeMember(label: "TimeoutAction", required: true, type: .enum), AWSShapeMember(label: "BlockDurationMinutes", required: false, type: .integer) ] /// The spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created. public let timeoutDurationMinutes: Int32 - /// The action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired. Spot instances are not uprovisioned within the Spot provisioining timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND to fulfill the remaining capacity. + /// The action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired. Spot instances are not uprovisioned within the Spot provisioining timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity. public let timeoutAction: SpotProvisioningTimeoutAction /// The defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. public let blockDurationMinutes: Int32? @@ -3663,7 +3746,7 @@ extension Elasticmapreduce { } public struct JobFlowExecutionStatusDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReadyDateTime", required: false, type: .timestamp), AWSShapeMember(label: "StartDateTime", required: false, type: .timestamp), AWSShapeMember(label: "LastStateChangeReason", required: false, type: .string), @@ -3704,7 +3787,7 @@ extension Elasticmapreduce { } public struct RemoveAutoScalingPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceGroupId", required: true, type: .string), AWSShapeMember(label: "ClusterId", required: true, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/elastictranscoder/Elastictranscoder_Shapes.swift b/Sources/AWSSDKSwift/Services/elastictranscoder/Elastictranscoder_Shapes.swift index aca6aa7b74a..4d56626bc9b 100644 --- a/Sources/AWSSDKSwift/Services/elastictranscoder/Elastictranscoder_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/elastictranscoder/Elastictranscoder_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Elastictranscoder { public struct ListJobsByPipelineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ascending", location: .querystring(locationName: "Ascending"), required: false, type: .string), AWSShapeMember(label: "PipelineId", location: .uri(locationName: "PipelineId"), required: true, type: .string), AWSShapeMember(label: "PageToken", location: .querystring(locationName: "PageToken"), required: false, type: .string) @@ -32,7 +32,7 @@ extension Elastictranscoder { } public struct DeletePipelineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The identifier of the pipeline that you want to delete. @@ -48,7 +48,7 @@ extension Elastictranscoder { } public struct CaptionSource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Label", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "TimeOffset", required: false, type: .string), @@ -84,7 +84,7 @@ extension Elastictranscoder { } public struct ReadPresetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Preset", required: false, type: .structure) ] /// A section of the response body that provides information about the preset. @@ -100,7 +100,7 @@ extension Elastictranscoder { } public struct JobAlbumArt: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MergePolicy", required: false, type: .string), AWSShapeMember(label: "Artwork", required: false, type: .list) ] @@ -121,7 +121,7 @@ extension Elastictranscoder { } public struct Preset: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Thumbnails", required: false, type: .structure), AWSShapeMember(label: "Id", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), @@ -177,7 +177,7 @@ extension Elastictranscoder { } public struct JobInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TimeSpan", required: false, type: .structure), AWSShapeMember(label: "Interlaced", required: false, type: .string), AWSShapeMember(label: "DetectedProperties", required: false, type: .structure), @@ -238,7 +238,7 @@ extension Elastictranscoder { } public struct ListPipelinesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ascending", location: .querystring(locationName: "Ascending"), required: false, type: .string), AWSShapeMember(label: "PageToken", location: .querystring(locationName: "PageToken"), required: false, type: .string) ] @@ -259,7 +259,7 @@ extension Elastictranscoder { } public struct VideoParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DisplayAspectRatio", required: false, type: .string), AWSShapeMember(label: "PaddingPolicy", required: false, type: .string), AWSShapeMember(label: "FixedGOP", required: false, type: .string), @@ -349,7 +349,7 @@ extension Elastictranscoder { } public struct CreatePresetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Audio", required: false, type: .structure), AWSShapeMember(label: "Container", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string), @@ -390,7 +390,7 @@ extension Elastictranscoder { } public struct ListJobsByStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Jobs", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -415,7 +415,7 @@ extension Elastictranscoder { } public struct ListPresetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Presets", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -436,7 +436,7 @@ extension Elastictranscoder { } public struct Playlist: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "HlsContentProtection", required: false, type: .structure), AWSShapeMember(label: "OutputKeys", required: false, type: .list), @@ -482,7 +482,7 @@ extension Elastictranscoder { } public struct TimeSpan: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Duration", required: false, type: .string), AWSShapeMember(label: "StartTime", required: false, type: .string) ] @@ -507,7 +507,7 @@ extension Elastictranscoder { } public struct CreatePipelineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InputBucket", required: true, type: .string), AWSShapeMember(label: "AwsKmsKeyArn", required: false, type: .string), AWSShapeMember(label: "ThumbnailConfig", required: false, type: .structure), @@ -558,7 +558,7 @@ extension Elastictranscoder { } public struct UpdatePipelineStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: true, type: .string), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] @@ -579,7 +579,7 @@ extension Elastictranscoder { } public struct Thumbnails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PaddingPolicy", required: false, type: .string), AWSShapeMember(label: "Interval", required: false, type: .string), AWSShapeMember(label: "AspectRatio", required: false, type: .string), @@ -630,7 +630,7 @@ extension Elastictranscoder { } public struct Pipeline: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "InputBucket", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), @@ -696,7 +696,7 @@ extension Elastictranscoder { } public struct TestRoleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Role", required: true, type: .string), AWSShapeMember(label: "InputBucket", required: true, type: .string), AWSShapeMember(label: "Topics", required: true, type: .list), @@ -727,7 +727,7 @@ extension Elastictranscoder { } public struct ListJobsByPipelineResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Jobs", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -748,7 +748,7 @@ extension Elastictranscoder { } public struct UpdatePipelineNotificationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Notifications", required: true, type: .structure), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] @@ -769,7 +769,7 @@ extension Elastictranscoder { } public struct PlayReadyDrm: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Format", required: false, type: .string), AWSShapeMember(label: "InitializationVector", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string), @@ -810,7 +810,7 @@ extension Elastictranscoder { } public struct Captions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MergePolicy", required: false, type: .string), AWSShapeMember(label: "CaptionSources", required: false, type: .list), AWSShapeMember(label: "CaptionFormats", required: false, type: .list) @@ -836,7 +836,7 @@ extension Elastictranscoder { } public struct CreateJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OutputKeyPrefix", required: false, type: .string), AWSShapeMember(label: "Input", required: false, type: .structure), AWSShapeMember(label: "Playlists", required: false, type: .list), @@ -887,7 +887,7 @@ extension Elastictranscoder { } public struct Artwork: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PaddingPolicy", required: false, type: .string), AWSShapeMember(label: "InputKey", required: false, type: .string), AWSShapeMember(label: "Encryption", required: false, type: .structure), @@ -933,7 +933,7 @@ extension Elastictranscoder { } public struct CreateJobResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Job", required: false, type: .structure) ] /// A section of the response body that provides information about the job that is created. @@ -949,7 +949,7 @@ extension Elastictranscoder { } public struct CreatePipelineResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Pipeline", required: false, type: .structure), AWSShapeMember(label: "Warnings", required: false, type: .list) ] @@ -970,7 +970,7 @@ extension Elastictranscoder { } public struct DeletePresetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The identifier of the preset for which you want to get detailed information. @@ -986,7 +986,7 @@ extension Elastictranscoder { } public struct ListPipelinesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Pipelines", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -1007,7 +1007,7 @@ extension Elastictranscoder { } public struct ListPresetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ascending", location: .querystring(locationName: "Ascending"), required: false, type: .string), AWSShapeMember(label: "PageToken", location: .querystring(locationName: "PageToken"), required: false, type: .string) ] @@ -1028,7 +1028,7 @@ extension Elastictranscoder { } public struct ReadJobResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Job", required: false, type: .structure) ] /// A section of the response body that provides information about the job. @@ -1044,7 +1044,7 @@ extension Elastictranscoder { } public struct ListJobsByStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", location: .uri(locationName: "Status"), required: true, type: .string), AWSShapeMember(label: "Ascending", location: .querystring(locationName: "Ascending"), required: false, type: .string), AWSShapeMember(label: "PageToken", location: .querystring(locationName: "PageToken"), required: false, type: .string) @@ -1070,7 +1070,7 @@ extension Elastictranscoder { } public struct UpdatePipelineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InputBucket", required: false, type: .string), AWSShapeMember(label: "AwsKmsKeyArn", required: false, type: .string), AWSShapeMember(label: "ThumbnailConfig", required: false, type: .structure), @@ -1121,7 +1121,7 @@ extension Elastictranscoder { } public struct HlsContentProtection: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InitializationVector", required: false, type: .string), AWSShapeMember(label: "KeyMd5", required: false, type: .string), AWSShapeMember(label: "KeyStoragePolicy", required: false, type: .string), @@ -1162,7 +1162,7 @@ extension Elastictranscoder { } public struct JobOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PresetId", required: false, type: .string), AWSShapeMember(label: "Height", required: false, type: .integer), AWSShapeMember(label: "DurationMillis", required: false, type: .long), @@ -1278,7 +1278,7 @@ extension Elastictranscoder { } public struct InputCaptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MergePolicy", required: false, type: .string), AWSShapeMember(label: "CaptionSources", required: false, type: .list) ] @@ -1299,7 +1299,7 @@ extension Elastictranscoder { } public struct PipelineOutputConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Permissions", required: false, type: .list), AWSShapeMember(label: "Bucket", required: false, type: .string), AWSShapeMember(label: "StorageClass", required: false, type: .string) @@ -1325,7 +1325,7 @@ extension Elastictranscoder { } public struct UpdatePipelineResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Pipeline", required: false, type: .structure), AWSShapeMember(label: "Warnings", required: false, type: .list) ] @@ -1346,7 +1346,7 @@ extension Elastictranscoder { } public struct CaptionFormat: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Pattern", required: false, type: .string), AWSShapeMember(label: "Encryption", required: false, type: .structure), AWSShapeMember(label: "Format", required: false, type: .string) @@ -1372,7 +1372,7 @@ extension Elastictranscoder { } public struct ReadPresetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The identifier of the preset for which you want to get detailed information. @@ -1388,7 +1388,7 @@ extension Elastictranscoder { } public struct ReadJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The identifier of the job for which you want to get detailed information. @@ -1404,7 +1404,7 @@ extension Elastictranscoder { } public struct PresetWatermark: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VerticalOffset", required: false, type: .string), AWSShapeMember(label: "Target", required: false, type: .string), AWSShapeMember(label: "HorizontalOffset", required: false, type: .string), @@ -1465,7 +1465,7 @@ extension Elastictranscoder { } public struct JobWatermark: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PresetWatermarkId", required: false, type: .string), AWSShapeMember(label: "Encryption", required: false, type: .structure), AWSShapeMember(label: "InputKey", required: false, type: .string) @@ -1491,7 +1491,7 @@ extension Elastictranscoder { } public struct CreatePresetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Warning", required: false, type: .string), AWSShapeMember(label: "Preset", required: false, type: .structure) ] @@ -1512,7 +1512,7 @@ extension Elastictranscoder { } public struct TestRoleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Success", required: false, type: .string), AWSShapeMember(label: "Messages", required: false, type: .list) ] @@ -1533,7 +1533,7 @@ extension Elastictranscoder { } public struct CreateJobPlaylist: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Format", required: false, type: .string), AWSShapeMember(label: "HlsContentProtection", required: false, type: .structure), AWSShapeMember(label: "PlayReadyDrm", required: false, type: .structure), @@ -1569,7 +1569,7 @@ extension Elastictranscoder { } public struct CreateJobOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Captions", required: false, type: .structure), AWSShapeMember(label: "ThumbnailPattern", required: false, type: .string), AWSShapeMember(label: "PresetId", required: false, type: .string), @@ -1635,7 +1635,7 @@ extension Elastictranscoder { } public struct DetectedProperties: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Height", required: false, type: .integer), AWSShapeMember(label: "DurationMillis", required: false, type: .long), AWSShapeMember(label: "FileSize", required: false, type: .long), @@ -1671,7 +1671,7 @@ extension Elastictranscoder { } public struct ReadPipelineResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Pipeline", required: false, type: .structure), AWSShapeMember(label: "Warnings", required: false, type: .list) ] @@ -1692,7 +1692,7 @@ extension Elastictranscoder { } public struct Warning: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string) ] @@ -1713,7 +1713,7 @@ extension Elastictranscoder { } public struct UpdatePipelineNotificationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Pipeline", required: false, type: .structure) ] /// A section of the response body that provides information about the pipeline associated with this notification. @@ -1729,7 +1729,7 @@ extension Elastictranscoder { } public struct AudioParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CodecOptions", required: false, type: .structure), AWSShapeMember(label: "BitRate", required: false, type: .string), AWSShapeMember(label: "Codec", required: false, type: .string), @@ -1770,7 +1770,7 @@ extension Elastictranscoder { } public struct Notifications: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Completed", required: false, type: .string), AWSShapeMember(label: "Error", required: false, type: .string), AWSShapeMember(label: "Warning", required: false, type: .string), @@ -1801,7 +1801,7 @@ extension Elastictranscoder { } public struct AudioCodecOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Signed", required: false, type: .string), AWSShapeMember(label: "Profile", required: false, type: .string), AWSShapeMember(label: "BitDepth", required: false, type: .string), @@ -1832,7 +1832,7 @@ extension Elastictranscoder { } public struct UpdatePipelineStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Pipeline", required: false, type: .structure) ] /// A section of the response body that provides information about the pipeline. @@ -1848,7 +1848,7 @@ extension Elastictranscoder { } public struct CancelJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The identifier of the job that you want to cancel. To get a list of the jobs (including their jobId) that have a status of Submitted, use the ListJobsByStatus API action. @@ -1864,7 +1864,7 @@ extension Elastictranscoder { } public struct Job: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Timing", required: false, type: .structure), AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), @@ -1935,7 +1935,7 @@ extension Elastictranscoder { } public struct Permission: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GranteeType", required: false, type: .string), AWSShapeMember(label: "Access", required: false, type: .list), AWSShapeMember(label: "Grantee", required: false, type: .string) @@ -1961,7 +1961,7 @@ extension Elastictranscoder { } public struct Encryption: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Mode", required: false, type: .string), AWSShapeMember(label: "InitializationVector", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string), @@ -1992,7 +1992,7 @@ extension Elastictranscoder { } public struct ReadPipelineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The identifier of the pipeline to read. @@ -2008,7 +2008,7 @@ extension Elastictranscoder { } public struct Clip: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TimeSpan", required: false, type: .structure) ] /// Settings that determine when a clip begins and how long it lasts. @@ -2024,7 +2024,7 @@ extension Elastictranscoder { } public struct Timing: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTimeMillis", required: false, type: .long), AWSShapeMember(label: "SubmitTimeMillis", required: false, type: .long), AWSShapeMember(label: "FinishTimeMillis", required: false, type: .long) diff --git a/Sources/AWSSDKSwift/Services/email/Email_API.swift b/Sources/AWSSDKSwift/Services/email/Email_API.swift index 30d530b1709..6a09c09f85f 100644 --- a/Sources/AWSSDKSwift/Services/email/Email_API.swift +++ b/Sources/AWSSDKSwift/Services/email/Email_API.swift @@ -24,250 +24,325 @@ public struct Email { ) } - /// Generates and sends a bounce message to the sender of an email you received through Amazon SES. You can only use this API on an email up to 24 hours after you receive it. You cannot use this API to send generic bounces for mail that was not received by Amazon SES. For information about receiving email through Amazon SES, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Generates and sends a bounce message to the sender of an email you received through Amazon SES. You can only use this API on an email up to 24 hours after you receive it. You cannot use this API to send generic bounces for mail that was not received by Amazon SES. For information about receiving email through Amazon SES, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func sendBounce(_ input: SendBounceRequest) throws -> SendBounceResponse { return try client.send(operation: "SendBounce", path: "/", httpMethod: "POST", input: input) } - /// Reorders the receipt rules within a receipt rule set. All of the rules in the rule set must be represented in this request. That is, this API will return an error if the reorder request doesn't explicitly position all of the rules. For information about managing receipt rule sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Reorders the receipt rules within a receipt rule set. All of the rules in the rule set must be represented in this request. That is, this API will return an error if the reorder request doesn't explicitly position all of the rules. For information about managing receipt rule sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func reorderReceiptRuleSet(_ input: ReorderReceiptRuleSetRequest) throws -> ReorderReceiptRuleSetResponse { return try client.send(operation: "ReorderReceiptRuleSet", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of sending authorization policies that are attached to the given identity (an email address or a domain). This API returns only a list. If you want the actual policy content, you can use GetIdentityPolicies. This API is for the identity owner only. If you have not verified the identity, this API will return an error. Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Composes an email message to multiple destinations. The message body is created using an email template. In order to send email using the SendBulkTemplatedEmail operation, your call to the API must meet the following requirements: The call must refer to an existing email template. You can create email templates using the CreateTemplate operation. The message must be sent from a verified email address or domain. If your account is still in the Amazon SES sandbox, you may only send to verified addresses or domains, or to email addresses associated with the Amazon SES Mailbox Simulator. For more information, see Verifying Email Addresses and Domains in the Amazon SES Developer Guide. The total size of the message, including attachments, must be less than 10 MB. Each Destination parameter must include at least one recipient email address. The recipient address can be a To: address, a CC: address, or a BCC: address. If a recipient email address is invalid (that is, it is not in the format UserName@[SubDomain.]Domain.TopLevelDomain), the entire message will be rejected, even if the message contains other recipients that are valid. + public func sendBulkTemplatedEmail(_ input: SendBulkTemplatedEmailRequest) throws -> SendBulkTemplatedEmailResponse { + return try client.send(operation: "SendBulkTemplatedEmail", path: "/", httpMethod: "POST", input: input) + } + + /// Returns a list of sending authorization policies that are attached to the given identity (an email address or a domain). This API returns only a list. If you want the actual policy content, you can use GetIdentityPolicies. This API is for the identity owner only. If you have not verified the identity, this API will return an error. Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func listIdentityPolicies(_ input: ListIdentityPoliciesRequest) throws -> ListIdentityPoliciesResponse { return try client.send(operation: "ListIdentityPolicies", path: "/", httpMethod: "POST", input: input) } - /// Returns the details of the specified receipt rule. For information about setting up receipt rules, see the Amazon SES Developer Guide. This action is throttled at one request per second. - public func describeReceiptRule(_ input: DescribeReceiptRuleRequest) throws -> DescribeReceiptRuleResponse { - return try client.send(operation: "DescribeReceiptRule", path: "/", httpMethod: "POST", input: input) + /// Creates an association between a configuration set and a custom domain for open and click event tracking. By default, images and links used for tracking open and click events are hosted on domains operated by Amazon SES. You can configure a subdomain of your own to handle these events. For information about using configuration sets, see Configuring Custom Domains to Handle Open and Click Tracking in the Amazon SES Developer Guide. + public func createConfigurationSetTrackingOptions(_ input: CreateConfigurationSetTrackingOptionsRequest) throws -> CreateConfigurationSetTrackingOptionsResponse { + return try client.send(operation: "CreateConfigurationSetTrackingOptions", path: "/", httpMethod: "POST", input: input) + } + + /// Given a list of identities (email addresses and/or domains), returns the verification status and (for domain identities) the verification token for each identity. The verification status of an email address is "Pending" until the email address owner clicks the link within the verification email that Amazon SES sent to that address. If the email address owner clicks the link within 24 hours, the verification status of the email address changes to "Success". If the link is not clicked within 24 hours, the verification status changes to "Failed." In that case, if you still want to verify the email address, you must restart the verification process from the beginning. For domain identities, the domain's verification status is "Pending" as Amazon SES searches for the required TXT record in the DNS settings of the domain. When Amazon SES detects the record, the domain's verification status changes to "Success". If Amazon SES is unable to detect the record within 72 hours, the domain's verification status changes to "Failed." In that case, if you still want to verify the domain, you must restart the verification process from the beginning. This operation is throttled at one request per second and can only get verification attributes for up to 100 identities at a time. + public func getIdentityVerificationAttributes(_ input: GetIdentityVerificationAttributesRequest) throws -> GetIdentityVerificationAttributesResponse { + return try client.send(operation: "GetIdentityVerificationAttributes", path: "/", httpMethod: "POST", input: input) } - /// Returns the user's current sending limits. This action is throttled at one request per second. + /// Provides the sending limits for the Amazon SES account. You can execute this operation no more than once per second. public func getSendQuota() throws -> GetSendQuotaResponse { return try client.send(operation: "GetSendQuota", path: "/", httpMethod: "POST") } - /// Given a list of identities (email addresses and/or domains), returns the verification status and (for domain identities) the verification token for each identity. This action is throttled at one request per second and can only get verification attributes for up to 100 identities at a time. - public func getIdentityVerificationAttributes(_ input: GetIdentityVerificationAttributesRequest) throws -> GetIdentityVerificationAttributesResponse { - return try client.send(operation: "GetIdentityVerificationAttributes", path: "/", httpMethod: "POST", input: input) + /// Returns the details of the specified receipt rule. For information about setting up receipt rules, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. + public func describeReceiptRule(_ input: DescribeReceiptRuleRequest) throws -> DescribeReceiptRuleResponse { + return try client.send(operation: "DescribeReceiptRule", path: "/", httpMethod: "POST", input: input) } - /// Returns a list containing all of the identities (email addresses and domains) for your AWS account, regardless of verification status. This action is throttled at one request per second. + /// Composes an email message using an email template and immediately queues it for sending. In order to send email using the SendTemplatedEmail operation, your call to the API must meet the following requirements: The call must refer to an existing email template. You can create email templates using the CreateTemplate operation. The message must be sent from a verified email address or domain. If your account is still in the Amazon SES sandbox, you may only send to verified addresses or domains, or to email addresses associated with the Amazon SES Mailbox Simulator. For more information, see Verifying Email Addresses and Domains in the Amazon SES Developer Guide. The total size of the message, including attachments, must be less than 10 MB. Calls to the SendTemplatedEmail operation may only include one Destination parameter. A destination is a set of recipients who will receive the same version of the email. The Destination parameter can include up to 50 recipients, across the To:, CC: and BCC: fields. The Destination parameter must include at least one recipient email address. The recipient address can be a To: address, a CC: address, or a BCC: address. If a recipient email address is invalid (that is, it is not in the format UserName@[SubDomain.]Domain.TopLevelDomain), the entire message will be rejected, even if the message contains other recipients that are valid. + public func sendTemplatedEmail(_ input: SendTemplatedEmailRequest) throws -> SendTemplatedEmailResponse { + return try client.send(operation: "SendTemplatedEmail", path: "/", httpMethod: "POST", input: input) + } + + /// Returns a list containing all of the identities (email addresses and domains) for your AWS account, regardless of verification status. You can execute this operation no more than once per second. public func listIdentities(_ input: ListIdentitiesRequest) throws -> ListIdentitiesResponse { return try client.send(operation: "ListIdentities", path: "/", httpMethod: "POST", input: input) } - /// Returns the metadata and receipt rules for the receipt rule set that is currently active. For information about setting up receipt rule sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Returns the metadata and receipt rules for the receipt rule set that is currently active. For information about setting up receipt rule sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func describeActiveReceiptRuleSet(_ input: DescribeActiveReceiptRuleSetRequest) throws -> DescribeActiveReceiptRuleSetResponse { return try client.send(operation: "DescribeActiveReceiptRuleSet", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified email address from the list of verified addresses. The DeleteVerifiedEmailAddress action is deprecated as of the May 15, 2012 release of Domain Verification. The DeleteIdentity action is now preferred. This action is throttled at one request per second. + /// Deprecated. Use the DeleteIdentity operation to delete email addresses and domains. public func deleteVerifiedEmailAddress(_ input: DeleteVerifiedEmailAddressRequest) throws { _ = try client.send(operation: "DeleteVerifiedEmailAddress", path: "/", httpMethod: "POST", input: input) } - /// Returns the requested sending authorization policies for the given identity (an email address or a domain). The policies are returned as a map of policy names to policy contents. You can retrieve a maximum of 20 policies at a time. This API is for the identity owner only. If you have not verified the identity, this API will return an error. Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Returns the requested sending authorization policies for the given identity (an email address or a domain). The policies are returned as a map of policy names to policy contents. You can retrieve a maximum of 20 policies at a time. This API is for the identity owner only. If you have not verified the identity, this API will return an error. Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func getIdentityPolicies(_ input: GetIdentityPoliciesRequest) throws -> GetIdentityPoliciesResponse { return try client.send(operation: "GetIdentityPolicies", path: "/", httpMethod: "POST", input: input) } - /// Given an identity (an email address or a domain), sets whether Amazon SES includes the original email headers in the Amazon Simple Notification Service (Amazon SNS) notifications of a specified type. This action is throttled at one request per second. For more information about using notifications with Amazon SES, see the Amazon SES Developer Guide. + /// Given an identity (an email address or a domain), sets whether Amazon SES includes the original email headers in the Amazon Simple Notification Service (Amazon SNS) notifications of a specified type. You can execute this operation no more than once per second. For more information about using notifications with Amazon SES, see the Amazon SES Developer Guide. public func setIdentityHeadersInNotificationsEnabled(_ input: SetIdentityHeadersInNotificationsEnabledRequest) throws -> SetIdentityHeadersInNotificationsEnabledResponse { return try client.send(operation: "SetIdentityHeadersInNotificationsEnabled", path: "/", httpMethod: "POST", input: input) } - /// Verifies an email address. This action causes a confirmation email message to be sent to the specified address. The VerifyEmailAddress action is deprecated as of the May 15, 2012 release of Domain Verification. The VerifyEmailIdentity action is now preferred. This action is throttled at one request per second. + /// Lists the email templates present in your Amazon SES account. You can execute this operation no more than once per second. + public func listTemplates(_ input: ListTemplatesRequest) throws -> ListTemplatesResponse { + return try client.send(operation: "ListTemplates", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation. For more information, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. + public func createTemplate(_ input: CreateTemplateRequest) throws -> CreateTemplateResponse { + return try client.send(operation: "CreateTemplate", path: "/", httpMethod: "POST", input: input) + } + + /// Deprecated. Use the VerifyEmailIdentity operation to verify a new email address. public func verifyEmailAddress(_ input: VerifyEmailAddressRequest) throws { _ = try client.send(operation: "VerifyEmailAddress", path: "/", httpMethod: "POST", input: input) } - /// Returns a set of DKIM tokens for a domain. DKIM tokens are character strings that represent your domain's identity. Using these tokens, you will need to create DNS CNAME records that point to DKIM public keys hosted by Amazon SES. Amazon Web Services will eventually detect that you have updated your DNS records; this detection process may take up to 72 hours. Upon successful detection, Amazon SES will be able to DKIM-sign email originating from that domain. This action is throttled at one request per second. To enable or disable Easy DKIM signing for a domain, use the SetIdentityDkimEnabled action. For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide. + /// Returns a set of DKIM tokens for a domain. DKIM tokens are character strings that represent your domain's identity. Using these tokens, you will need to create DNS CNAME records that point to DKIM public keys hosted by Amazon SES. Amazon Web Services will eventually detect that you have updated your DNS records; this detection process may take up to 72 hours. Upon successful detection, Amazon SES will be able to DKIM-sign email originating from that domain. You can execute this operation no more than once per second. To enable or disable Easy DKIM signing for a domain, use the SetIdentityDkimEnabled operation. For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide. public func verifyDomainDkim(_ input: VerifyDomainDkimRequest) throws -> VerifyDomainDkimResponse { return try client.send(operation: "VerifyDomainDkim", path: "/", httpMethod: "POST", input: input) } - /// Returns the current status of Easy DKIM signing for an entity. For domain name identities, this action also returns the DKIM tokens that are required for Easy DKIM signing, and whether Amazon SES has successfully verified that these tokens have been published. This action takes a list of identities as input and returns the following information for each: Whether Easy DKIM signing is enabled or disabled. A set of DKIM tokens that represent the identity. If the identity is an email address, the tokens represent the domain of that address. Whether Amazon SES has successfully verified the DKIM tokens published in the domain's DNS. This information is only returned for domain name identities, not for email addresses. This action is throttled at one request per second and can only get DKIM attributes for up to 100 identities at a time. For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide. + /// Updates an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation. For more information, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. + public func updateTemplate(_ input: UpdateTemplateRequest) throws -> UpdateTemplateResponse { + return try client.send(operation: "UpdateTemplate", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the current status of Easy DKIM signing for an entity. For domain name identities, this operation also returns the DKIM tokens that are required for Easy DKIM signing, and whether Amazon SES has successfully verified that these tokens have been published. This operation takes a list of identities as input and returns the following information for each: Whether Easy DKIM signing is enabled or disabled. A set of DKIM tokens that represent the identity. If the identity is an email address, the tokens represent the domain of that address. Whether Amazon SES has successfully verified the DKIM tokens published in the domain's DNS. This information is only returned for domain name identities, not for email addresses. This operation is throttled at one request per second and can only get DKIM attributes for up to 100 identities at a time. For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide. public func getIdentityDkimAttributes(_ input: GetIdentityDkimAttributesRequest) throws -> GetIdentityDkimAttributesResponse { return try client.send(operation: "GetIdentityDkimAttributes", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified receipt rule. For information about managing receipt rules, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Displays the template object (which includes the Subject line, HTML part and text part) for the template you specify. You can execute this operation no more than once per second. + public func getTemplate(_ input: GetTemplateRequest) throws -> GetTemplateResponse { + return try client.send(operation: "GetTemplate", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the specified receipt rule. For information about managing receipt rules, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func deleteReceiptRule(_ input: DeleteReceiptRuleRequest) throws -> DeleteReceiptRuleResponse { return try client.send(operation: "DeleteReceiptRule", path: "/", httpMethod: "POST", input: input) } - /// Sets the specified receipt rule set as the active receipt rule set. To disable your email-receiving through Amazon SES completely, you can call this API with RuleSetName set to null. For information about managing receipt rule sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Sets the specified receipt rule set as the active receipt rule set. To disable your email-receiving through Amazon SES completely, you can call this API with RuleSetName set to null. For information about managing receipt rule sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func setActiveReceiptRuleSet(_ input: SetActiveReceiptRuleSetRequest) throws -> SetActiveReceiptRuleSetResponse { return try client.send(operation: "SetActiveReceiptRuleSet", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified identity (an email address or a domain) from the list of verified identities. This action is throttled at one request per second. + /// Deletes the specified identity (an email address or a domain) from the list of verified identities. You can execute this operation no more than once per second. public func deleteIdentity(_ input: DeleteIdentityRequest) throws -> DeleteIdentityResponse { return try client.send(operation: "DeleteIdentity", path: "/", httpMethod: "POST", input: input) } - /// Sends an email message, with header and content specified by the client. The SendRawEmail action is useful for sending multipart MIME emails. The raw text of the message must comply with Internet email standards; otherwise, the message cannot be sent. There are several important points to know about SendRawEmail: You can only send email from verified email addresses and domains; otherwise, you will get an "Email address not verified" error. If your account is still in the Amazon SES sandbox, you must also verify every recipient email address except for the recipients provided by the Amazon SES mailbox simulator. For more information, go to the Amazon SES Developer Guide. The total size of the message cannot exceed 10 MB. This includes any attachments that are part of the message. Amazon SES has a limit on the total number of recipients per message. The combined number of To:, CC: and BCC: email addresses cannot exceed 50. If you need to send an email message to a larger audience, you can divide your recipient list into groups of 50 or fewer, and then call Amazon SES repeatedly to send the message to each group. The To:, CC:, and BCC: headers in the raw message can contain a group list. Note that each recipient in a group list counts towards the 50-recipient limit. Amazon SES overrides any Message-ID and Date headers you provide. For every message that you send, the total number of recipients (To:, CC: and BCC:) is counted against your sending quota - the maximum number of emails you can send in a 24-hour period. For information about your sending quota, go to the Amazon SES Developer Guide. If you are using sending authorization to send on behalf of another user, SendRawEmail enables you to specify the cross-account identity for the email's "Source," "From," and "Return-Path" parameters in one of two ways: you can pass optional parameters SourceArn, FromArn, and/or ReturnPathArn to the API, or you can include the following X-headers in the header of your raw email: X-SES-SOURCE-ARN X-SES-FROM-ARN X-SES-RETURN-PATH-ARN Do not include these X-headers in the DKIM signature, because they are removed by Amazon SES before sending the email. For the most common sending authorization use case, we recommend that you specify the SourceIdentityArn and do not specify either the FromIdentityArn or ReturnPathIdentityArn. (The same note applies to the corresponding X-headers.) If you only specify the SourceIdentityArn, Amazon SES will simply set the "From" address and the "Return Path" address to the identity specified in SourceIdentityArn. For more information about sending authorization, see the Amazon SES Developer Guide. + /// Composes an email message and immediately queues it for sending. When calling this operation, you may specify the message headers as well as the content. The SendRawEmail operation is particularly useful for sending multipart MIME emails (such as those that contain both a plain-text and an HTML version). In order to send email using the SendRawEmail operation, your message must meet the following requirements: The message must be sent from a verified email address or domain. If you attempt to send email using a non-verified address or domain, the operation will result in an "Email address not verified" error. If your account is still in the Amazon SES sandbox, you may only send to verified addresses or domains, or to email addresses associated with the Amazon SES Mailbox Simulator. For more information, see Verifying Email Addresses and Domains in the Amazon SES Developer Guide. The total size of the message, including attachments, must be smaller than 10 MB. The message must include at least one recipient email address. The recipient address can be a To: address, a CC: address, or a BCC: address. If a recipient email address is invalid (that is, it is not in the format UserName@[SubDomain.]Domain.TopLevelDomain), the entire message will be rejected, even if the message contains other recipients that are valid. The message may not include more than 50 recipients, across the To:, CC: and BCC: fields. If you need to send an email message to a larger audience, you can divide your recipient list into groups of 50 or fewer, and then call the SendRawEmail operation several times to send the message to each group. For every message that you send, the total number of recipients (including each recipient in the To:, CC: and BCC: fields) is counted against the maximum number of emails you can send in a 24-hour period (your sending quota). For more information about sending quotas in Amazon SES, see Managing Your Amazon SES Sending Limits in the Amazon SES Developer Guide. Additionally, keep the following considerations in mind when using the SendRawEmail operation: Although you can customize the message headers when using the SendRawEmail operation, Amazon SES will automatically apply its own Message-ID and Date headers; if you passed these headers when creating the message, they will be overwritten by the values that Amazon SES provides. If you are using sending authorization to send on behalf of another user, SendRawEmail enables you to specify the cross-account identity for the email's Source, From, and Return-Path parameters in one of two ways: you can pass optional parameters SourceArn, FromArn, and/or ReturnPathArn to the API, or you can include the following X-headers in the header of your raw email: X-SES-SOURCE-ARN X-SES-FROM-ARN X-SES-RETURN-PATH-ARN Do not include these X-headers in the DKIM signature; Amazon SES will remove them before sending the email. For most common sending authorization scenarios, we recommend that you specify the SourceIdentityArn parameter and not the FromIdentityArn or ReturnPathIdentityArn parameters. If you only specify the SourceIdentityArn parameter, Amazon SES will set the From and Return Path addresses to the identity specified in SourceIdentityArn. For more information about sending authorization, see the Using Sending Authorization with Amazon SES in the Amazon SES Developer Guide. public func sendRawEmail(_ input: SendRawEmailRequest) throws -> SendRawEmailResponse { return try client.send(operation: "SendRawEmail", path: "/", httpMethod: "POST", input: input) } - /// Creates a receipt rule. For information about setting up receipt rules, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Creates a receipt rule. For information about setting up receipt rules, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func createReceiptRule(_ input: CreateReceiptRuleRequest) throws -> CreateReceiptRuleResponse { return try client.send(operation: "CreateReceiptRule", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified IP address filter. For information about managing IP address filters, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Deletes the specified IP address filter. For information about managing IP address filters, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func deleteReceiptFilter(_ input: DeleteReceiptFilterRequest) throws -> DeleteReceiptFilterResponse { return try client.send(operation: "DeleteReceiptFilter", path: "/", httpMethod: "POST", input: input) } - /// Returns a list containing all of the email addresses that have been verified. The ListVerifiedEmailAddresses action is deprecated as of the May 15, 2012 release of Domain Verification. The ListIdentities action is now preferred. This action is throttled at one request per second. + /// Deprecated. Use the ListIdentities operation to list the email addresses and domains associated with your account. public func listVerifiedEmailAddresses() throws -> ListVerifiedEmailAddressesResponse { return try client.send(operation: "ListVerifiedEmailAddresses", path: "/", httpMethod: "POST") } - /// Returns the user's sending statistics. The result is a list of data points, representing the last two weeks of sending activity. Each data point in the list contains statistics for a 15-minute interval. This action is throttled at one request per second. + /// Provides sending statistics for the Amazon SES account. The result is a list of data points, representing the last two weeks of sending activity. Each data point in the list contains statistics for a 15-minute period of time. You can execute this operation no more than once per second. public func getSendStatistics() throws -> GetSendStatisticsResponse { return try client.send(operation: "GetSendStatistics", path: "/", httpMethod: "POST") } - /// Composes an email message based on input data, and then immediately queues the message for sending. There are several important points to know about SendEmail: You can only send email from verified email addresses and domains; otherwise, you will get an "Email address not verified" error. If your account is still in the Amazon SES sandbox, you must also verify every recipient email address except for the recipients provided by the Amazon SES mailbox simulator. For more information, go to the Amazon SES Developer Guide. The total size of the message cannot exceed 10 MB. This includes any attachments that are part of the message. Amazon SES has a limit on the total number of recipients per message. The combined number of To:, CC: and BCC: email addresses cannot exceed 50. If you need to send an email message to a larger audience, you can divide your recipient list into groups of 50 or fewer, and then call Amazon SES repeatedly to send the message to each group. For every message that you send, the total number of recipients (To:, CC: and BCC:) is counted against your sending quota - the maximum number of emails you can send in a 24-hour period. For information about your sending quota, go to the Amazon SES Developer Guide. + /// Composes an email message and immediately queues it for sending. In order to send email using the SendEmail operation, your message must meet the following requirements: The message must be sent from a verified email address or domain. If you attempt to send email using a non-verified address or domain, the operation will result in an "Email address not verified" error. If your account is still in the Amazon SES sandbox, you may only send to verified addresses or domains, or to email addresses associated with the Amazon SES Mailbox Simulator. For more information, see Verifying Email Addresses and Domains in the Amazon SES Developer Guide. The total size of the message, including attachments, must be smaller than 10 MB. The message must include at least one recipient email address. The recipient address can be a To: address, a CC: address, or a BCC: address. If a recipient email address is invalid (that is, it is not in the format UserName@[SubDomain.]Domain.TopLevelDomain), the entire message will be rejected, even if the message contains other recipients that are valid. The message may not include more than 50 recipients, across the To:, CC: and BCC: fields. If you need to send an email message to a larger audience, you can divide your recipient list into groups of 50 or fewer, and then call the SendEmail operation several times to send the message to each group. For every message that you send, the total number of recipients (including each recipient in the To:, CC: and BCC: fields) is counted against the maximum number of emails you can send in a 24-hour period (your sending quota). For more information about sending quotas in Amazon SES, see Managing Your Amazon SES Sending Limits in the Amazon SES Developer Guide. public func sendEmail(_ input: SendEmailRequest) throws -> SendEmailResponse { return try client.send(operation: "SendEmail", path: "/", httpMethod: "POST", input: input) } - /// Verifies a domain. This action is throttled at one request per second. + /// Adds a domain to the list of identities for your Amazon SES account and attempts to verify it. For more information about verifying domains, see Verifying Email Addresses and Domains in the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func verifyDomainIdentity(_ input: VerifyDomainIdentityRequest) throws -> VerifyDomainIdentityResponse { return try client.send(operation: "VerifyDomainIdentity", path: "/", httpMethod: "POST", input: input) } - /// Enables or disables Easy DKIM signing of email sent from an identity: If Easy DKIM signing is enabled for a domain name identity (e.g., example.com), then Amazon SES will DKIM-sign all email sent by addresses under that domain name (e.g., user@example.com). If Easy DKIM signing is enabled for an email address, then Amazon SES will DKIM-sign all email sent by that email address. For email addresses (e.g., user@example.com), you can only enable Easy DKIM signing if the corresponding domain (e.g., example.com) has been set up for Easy DKIM using the AWS Console or the VerifyDomainDkim action. This action is throttled at one request per second. For more information about Easy DKIM signing, go to the Amazon SES Developer Guide. + /// Enables or disables Easy DKIM signing of email sent from an identity: If Easy DKIM signing is enabled for a domain name identity (such as example.com), then Amazon SES will DKIM-sign all email sent by addresses under that domain name (for example, user@example.com). If Easy DKIM signing is enabled for an email address, then Amazon SES will DKIM-sign all email sent by that email address. For email addresses (for example, user@example.com), you can only enable Easy DKIM signing if the corresponding domain (in this case, example.com) has been set up for Easy DKIM using the AWS Console or the VerifyDomainDkim operation. You can execute this operation no more than once per second. For more information about Easy DKIM signing, go to the Amazon SES Developer Guide. public func setIdentityDkimEnabled(_ input: SetIdentityDkimEnabledRequest) throws -> SetIdentityDkimEnabledResponse { return try client.send(operation: "SetIdentityDkimEnabled", path: "/", httpMethod: "POST", input: input) } - /// Creates a new IP address filter. For information about setting up IP address filters, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Creates a new IP address filter. For information about setting up IP address filters, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func createReceiptFilter(_ input: CreateReceiptFilterRequest) throws -> CreateReceiptFilterResponse { return try client.send(operation: "CreateReceiptFilter", path: "/", httpMethod: "POST", input: input) } - /// Enables or disables the custom MAIL FROM domain setup for a verified identity (an email address or a domain). To send emails using the specified MAIL FROM domain, you must add an MX record to your MAIL FROM domain's DNS settings. If you want your emails to pass Sender Policy Framework (SPF) checks, you must also add or update an SPF record. For more information, see the Amazon SES Developer Guide. This action is throttled at one request per second. - public func setIdentityMailFromDomain(_ input: SetIdentityMailFromDomainRequest) throws -> SetIdentityMailFromDomainResponse { - return try client.send(operation: "SetIdentityMailFromDomain", path: "/", httpMethod: "POST", input: input) - } - - /// Deletes a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Deletes a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func deleteConfigurationSet(_ input: DeleteConfigurationSetRequest) throws -> DeleteConfigurationSetResponse { return try client.send(operation: "DeleteConfigurationSet", path: "/", httpMethod: "POST", input: input) } - /// Given an identity (an email address or a domain), sets the Amazon Simple Notification Service (Amazon SNS) topic to which Amazon SES will publish bounce, complaint, and/or delivery notifications for emails sent with that identity as the Source. Unless feedback forwarding is enabled, you must specify Amazon SNS topics for bounce and complaint notifications. For more information, see SetIdentityFeedbackForwardingEnabled. This action is throttled at one request per second. For more information about feedback notification, see the Amazon SES Developer Guide. + /// Enables or disables the custom MAIL FROM domain setup for a verified identity (an email address or a domain). To send emails using the specified MAIL FROM domain, you must add an MX record to your MAIL FROM domain's DNS settings. If you want your emails to pass Sender Policy Framework (SPF) checks, you must also add or update an SPF record. For more information, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. + public func setIdentityMailFromDomain(_ input: SetIdentityMailFromDomainRequest) throws -> SetIdentityMailFromDomainResponse { + return try client.send(operation: "SetIdentityMailFromDomain", path: "/", httpMethod: "POST", input: input) + } + + /// Given an identity (an email address or a domain), sets the Amazon Simple Notification Service (Amazon SNS) topic to which Amazon SES will publish bounce, complaint, and/or delivery notifications for emails sent with that identity as the Source. Unless feedback forwarding is enabled, you must specify Amazon SNS topics for bounce and complaint notifications. For more information, see SetIdentityFeedbackForwardingEnabled. You can execute this operation no more than once per second. For more information about feedback notification, see the Amazon SES Developer Guide. public func setIdentityNotificationTopic(_ input: SetIdentityNotificationTopicRequest) throws -> SetIdentityNotificationTopicResponse { return try client.send(operation: "SetIdentityNotificationTopic", path: "/", httpMethod: "POST", input: input) } - /// Adds or updates a sending authorization policy for the specified identity (an email address or a domain). This API is for the identity owner only. If you have not verified the identity, this API will return an error. Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Adds or updates a sending authorization policy for the specified identity (an email address or a domain). This API is for the identity owner only. If you have not verified the identity, this API will return an error. Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func putIdentityPolicy(_ input: PutIdentityPolicyRequest) throws -> PutIdentityPolicyResponse { return try client.send(operation: "PutIdentityPolicy", path: "/", httpMethod: "POST", input: input) } - /// Creates a receipt rule set by cloning an existing one. All receipt rules and configurations are copied to the new receipt rule set and are completely independent of the source rule set. For information about setting up rule sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Enables or disables the publishing of reputation metrics for emails sent using a specific configuration set. Reputation metrics include bounce and complaint rates. These metrics are published to Amazon CloudWatch. By using Amazon CloudWatch, you can create alarms when bounce or complaint rates exceed a certain threshold. You can execute this operation no more than once per second. + public func updateConfigurationSetReputationMetricsEnabled(_ input: UpdateConfigurationSetReputationMetricsEnabledRequest) throws { + _ = try client.send(operation: "UpdateConfigurationSetReputationMetricsEnabled", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a receipt rule set by cloning an existing one. All receipt rules and configurations are copied to the new receipt rule set and are completely independent of the source rule set. For information about setting up rule sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func cloneReceiptRuleSet(_ input: CloneReceiptRuleSetRequest) throws -> CloneReceiptRuleSetResponse { return try client.send(operation: "CloneReceiptRuleSet", path: "/", httpMethod: "POST", input: input) } - /// Given a list of verified identities (email addresses and/or domains), returns a structure describing identity notification attributes. This action is throttled at one request per second and can only get notification attributes for up to 100 identities at a time. For more information about using notifications with Amazon SES, see the Amazon SES Developer Guide. + /// Given a list of verified identities (email addresses and/or domains), returns a structure describing identity notification attributes. This operation is throttled at one request per second and can only get notification attributes for up to 100 identities at a time. For more information about using notifications with Amazon SES, see the Amazon SES Developer Guide. public func getIdentityNotificationAttributes(_ input: GetIdentityNotificationAttributesRequest) throws -> GetIdentityNotificationAttributesResponse { return try client.send(operation: "GetIdentityNotificationAttributes", path: "/", httpMethod: "POST", input: input) } - /// Creates a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Creates a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func createConfigurationSet(_ input: CreateConfigurationSetRequest) throws -> CreateConfigurationSetResponse { return try client.send(operation: "CreateConfigurationSet", path: "/", httpMethod: "POST", input: input) } - /// Given an identity (an email address or a domain), enables or disables whether Amazon SES forwards bounce and complaint notifications as email. Feedback forwarding can only be disabled when Amazon Simple Notification Service (Amazon SNS) topics are specified for both bounces and complaints. Feedback forwarding does not apply to delivery notifications. Delivery notifications are only available through Amazon SNS. This action is throttled at one request per second. For more information about using notifications with Amazon SES, see the Amazon SES Developer Guide. + /// Given an identity (an email address or a domain), enables or disables whether Amazon SES forwards bounce and complaint notifications as email. Feedback forwarding can only be disabled when Amazon Simple Notification Service (Amazon SNS) topics are specified for both bounces and complaints. Feedback forwarding does not apply to delivery notifications. Delivery notifications are only available through Amazon SNS. You can execute this operation no more than once per second. For more information about using notifications with Amazon SES, see the Amazon SES Developer Guide. public func setIdentityFeedbackForwardingEnabled(_ input: SetIdentityFeedbackForwardingEnabledRequest) throws -> SetIdentityFeedbackForwardingEnabledResponse { return try client.send(operation: "SetIdentityFeedbackForwardingEnabled", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified receipt rule set and all of the receipt rules it contains. The currently active rule set cannot be deleted. For information about managing receipt rule sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Deletes the specified receipt rule set and all of the receipt rules it contains. The currently active rule set cannot be deleted. For information about managing receipt rule sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func deleteReceiptRuleSet(_ input: DeleteReceiptRuleSetRequest) throws -> DeleteReceiptRuleSetResponse { return try client.send(operation: "DeleteReceiptRuleSet", path: "/", httpMethod: "POST", input: input) } - /// Lists the receipt rule sets that exist under your AWS account. If there are additional receipt rule sets to be retrieved, you will receive a NextToken that you can provide to the next call to ListReceiptRuleSets to retrieve the additional entries. For information about managing receipt rule sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Lists the receipt rule sets that exist under your AWS account. If there are additional receipt rule sets to be retrieved, you will receive a NextToken that you can provide to the next call to ListReceiptRuleSets to retrieve the additional entries. For information about managing receipt rule sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func listReceiptRuleSets(_ input: ListReceiptRuleSetsRequest) throws -> ListReceiptRuleSetsResponse { return try client.send(operation: "ListReceiptRuleSets", path: "/", httpMethod: "POST", input: input) } - /// Sets the position of the specified receipt rule in the receipt rule set. For information about managing receipt rules, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Sets the position of the specified receipt rule in the receipt rule set. For information about managing receipt rules, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func setReceiptRulePosition(_ input: SetReceiptRulePositionRequest) throws -> SetReceiptRulePositionResponse { return try client.send(operation: "SetReceiptRulePosition", path: "/", httpMethod: "POST", input: input) } - /// Updates a receipt rule. For information about managing receipt rules, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Updates a receipt rule. For information about managing receipt rules, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func updateReceiptRule(_ input: UpdateReceiptRuleRequest) throws -> UpdateReceiptRuleResponse { return try client.send(operation: "UpdateReceiptRule", path: "/", httpMethod: "POST", input: input) } - /// Lists the IP address filters associated with your AWS account. For information about managing IP address filters, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Modifies an association between a configuration set and a custom domain for open and click event tracking. By default, images and links used for tracking open and click events are hosted on domains operated by Amazon SES. You can configure a subdomain of your own to handle these events. For information about using configuration sets, see Configuring Custom Domains to Handle Open and Click Tracking in the Amazon SES Developer Guide. + public func updateConfigurationSetTrackingOptions(_ input: UpdateConfigurationSetTrackingOptionsRequest) throws -> UpdateConfigurationSetTrackingOptionsResponse { + return try client.send(operation: "UpdateConfigurationSetTrackingOptions", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the IP address filters associated with your AWS account. For information about managing IP address filters, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func listReceiptFilters(_ input: ListReceiptFiltersRequest) throws -> ListReceiptFiltersResponse { return try client.send(operation: "ListReceiptFilters", path: "/", httpMethod: "POST", input: input) } - /// Verifies an email address. This action causes a confirmation email message to be sent to the specified address. This action is throttled at one request per second. + /// Adds an email address to the list of identities for your Amazon SES account and attempts to verify it. This operation causes a confirmation email message to be sent to the specified address. You can execute this operation no more than once per second. public func verifyEmailIdentity(_ input: VerifyEmailIdentityRequest) throws -> VerifyEmailIdentityResponse { return try client.send(operation: "VerifyEmailIdentity", path: "/", httpMethod: "POST", input: input) } - /// Lists the configuration sets associated with your AWS account. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide. This action is throttled at one request per second and can return up to 50 configuration sets at a time. - public func listConfigurationSets(_ input: ListConfigurationSetsRequest) throws -> ListConfigurationSetsResponse { - return try client.send(operation: "ListConfigurationSets", path: "/", httpMethod: "POST", input: input) + /// Enables or disables email sending for messages sent using a specific configuration set. You can use this operation in conjunction with Amazon CloudWatch alarms to temporarily pause email sending for a configuration set when the reputation metrics for that configuration set (such as your bounce on complaint rate) reach certain thresholds. You can execute this operation no more than once per second. + public func updateConfigurationSetSendingEnabled(_ input: UpdateConfigurationSetSendingEnabledRequest) throws { + _ = try client.send(operation: "UpdateConfigurationSetSendingEnabled", path: "/", httpMethod: "POST", input: input) } - /// Returns the details of the specified configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Returns the details of the specified configuration set. For information about using configuration sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func describeConfigurationSet(_ input: DescribeConfigurationSetRequest) throws -> DescribeConfigurationSetResponse { return try client.send(operation: "DescribeConfigurationSet", path: "/", httpMethod: "POST", input: input) } - /// Returns the details of the specified receipt rule set. For information about managing receipt rule sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Enables or disables email sending across your entire Amazon SES account. You can use this operation in conjunction with Amazon CloudWatch alarms to temporarily pause email sending across your Amazon SES account when reputation metrics (such as your bounce on complaint rate) reach certain thresholds. You can execute this operation no more than once per second. + public func updateAccountSendingEnabled(_ input: UpdateAccountSendingEnabledRequest) throws { + _ = try client.send(operation: "UpdateAccountSendingEnabled", path: "/", httpMethod: "POST", input: input) + } + + /// Provides a list of the configuration sets associated with your Amazon SES account. For information about using configuration sets, see Monitoring Your Amazon SES Sending Activity in the Amazon SES Developer Guide. You can execute this operation no more than once per second. This operation will return up to 1,000 configuration sets each time it is run. If your Amazon SES account has more than 1,000 configuration sets, this operation will also return a NextToken element. You can then execute the ListConfigurationSets operation again, passing the NextToken parameter and the value of the NextToken element to retrieve additional results. + public func listConfigurationSets(_ input: ListConfigurationSetsRequest) throws -> ListConfigurationSetsResponse { + return try client.send(operation: "ListConfigurationSets", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the details of the specified receipt rule set. For information about managing receipt rule sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func describeReceiptRuleSet(_ input: DescribeReceiptRuleSetRequest) throws -> DescribeReceiptRuleSetResponse { return try client.send(operation: "DescribeReceiptRuleSet", path: "/", httpMethod: "POST", input: input) } - /// Creates an empty receipt rule set. For information about setting up receipt rule sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Creates an empty receipt rule set. For information about setting up receipt rule sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func createReceiptRuleSet(_ input: CreateReceiptRuleSetRequest) throws -> CreateReceiptRuleSetResponse { return try client.send(operation: "CreateReceiptRuleSet", path: "/", httpMethod: "POST", input: input) } - /// Returns the custom MAIL FROM attributes for a list of identities (email addresses and/or domains). This action is throttled at one request per second and can only get custom MAIL FROM attributes for up to 100 identities at a time. + /// Returns the email sending status of the Amazon SES account. You can execute this operation no more than once per second. + public func getAccountSendingEnabled() throws -> GetAccountSendingEnabledResponse { + return try client.send(operation: "GetAccountSendingEnabled", path: "/", httpMethod: "POST") + } + + /// Returns the custom MAIL FROM attributes for a list of identities (email addresses : domains). This operation is throttled at one request per second and can only get custom MAIL FROM attributes for up to 100 identities at a time. public func getIdentityMailFromDomainAttributes(_ input: GetIdentityMailFromDomainAttributesRequest) throws -> GetIdentityMailFromDomainAttributesResponse { return try client.send(operation: "GetIdentityMailFromDomainAttributes", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified sending authorization policy for the given identity (an email address or a domain). This API returns successfully even if a policy with the specified name does not exist. This API is for the identity owner only. If you have not verified the identity, this API will return an error. Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Deletes an email template. You can execute this operation no more than once per second. + public func deleteTemplate(_ input: DeleteTemplateRequest) throws -> DeleteTemplateResponse { + return try client.send(operation: "DeleteTemplate", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the specified sending authorization policy for the given identity (an email address or a domain). This API returns successfully even if a policy with the specified name does not exist. This API is for the identity owner only. If you have not verified the identity, this API will return an error. Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func deleteIdentityPolicy(_ input: DeleteIdentityPolicyRequest) throws -> DeleteIdentityPolicyResponse { return try client.send(operation: "DeleteIdentityPolicy", path: "/", httpMethod: "POST", input: input) } - /// Deletes a configuration set event destination. Configuration set event destinations are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. - public func deleteConfigurationSetEventDestination(_ input: DeleteConfigurationSetEventDestinationRequest) throws -> DeleteConfigurationSetEventDestinationResponse { - return try client.send(operation: "DeleteConfigurationSetEventDestination", path: "/", httpMethod: "POST", input: input) + /// Creates a preview of the MIME content of an email when provided with a template and a set of replacement data. You can execute this operation no more than once per second. + public func testRenderTemplate(_ input: TestRenderTemplateRequest) throws -> TestRenderTemplateResponse { + return try client.send(operation: "TestRenderTemplate", path: "/", httpMethod: "POST", input: input) } - /// Updates the event destination of a configuration set. When you create or update an event destination, you must provide one, and only one, destination. The destination can be either Amazon CloudWatch or Amazon Kinesis Firehose. Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch or Amazon Kinesis Firehose. For information about using configuration sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. - public func updateConfigurationSetEventDestination(_ input: UpdateConfigurationSetEventDestinationRequest) throws -> UpdateConfigurationSetEventDestinationResponse { - return try client.send(operation: "UpdateConfigurationSetEventDestination", path: "/", httpMethod: "POST", input: input) + /// Deletes an association between a configuration set and a custom domain for open and click event tracking. By default, images and links used for tracking open and click events are hosted on domains operated by Amazon SES. You can configure a subdomain of your own to handle these events. For information about using configuration sets, see Configuring Custom Domains to Handle Open and Click Tracking in the Amazon SES Developer Guide. Deleting this kind of association will result in emails sent using the specified configuration set to capture open and click events using the standard, Amazon SES-operated domains. + public func deleteConfigurationSetTrackingOptions(_ input: DeleteConfigurationSetTrackingOptionsRequest) throws -> DeleteConfigurationSetTrackingOptionsResponse { + return try client.send(operation: "DeleteConfigurationSetTrackingOptions", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a configuration set event destination. Configuration set event destinations are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. + public func deleteConfigurationSetEventDestination(_ input: DeleteConfigurationSetEventDestinationRequest) throws -> DeleteConfigurationSetEventDestinationResponse { + return try client.send(operation: "DeleteConfigurationSetEventDestination", path: "/", httpMethod: "POST", input: input) } - /// Creates a configuration set event destination. When you create or update an event destination, you must provide one, and only one, destination. The destination can be either Amazon CloudWatch or Amazon Kinesis Firehose. An event destination is the AWS service to which Amazon SES publishes the email sending events associated with a configuration set. For information about using configuration sets, see the Amazon SES Developer Guide. This action is throttled at one request per second. + /// Creates a configuration set event destination. When you create or update an event destination, you must provide one, and only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). An event destination is the AWS service to which Amazon SES publishes the email sending events associated with a configuration set. For information about using configuration sets, see the Amazon SES Developer Guide. You can execute this operation no more than once per second. public func createConfigurationSetEventDestination(_ input: CreateConfigurationSetEventDestinationRequest) throws -> CreateConfigurationSetEventDestinationResponse { return try client.send(operation: "CreateConfigurationSetEventDestination", path: "/", httpMethod: "POST", input: input) } + /// Updates the event destination of a configuration set. Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). For information about using configuration sets, see Monitoring Your Amazon SES Sending Activity in the Amazon SES Developer Guide. When you create or update an event destination, you must provide one, and only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). You can execute this operation no more than once per second. + public func updateConfigurationSetEventDestination(_ input: UpdateConfigurationSetEventDestinationRequest) throws -> UpdateConfigurationSetEventDestinationResponse { + return try client.send(operation: "UpdateConfigurationSetEventDestination", path: "/", httpMethod: "POST", input: input) + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/email/Email_Error.swift b/Sources/AWSSDKSwift/Services/email/Email_Error.swift index eb774b1e9b4..84a9336ba93 100644 --- a/Sources/AWSSDKSwift/Services/email/Email_Error.swift +++ b/Sources/AWSSDKSwift/Services/email/Email_Error.swift @@ -9,19 +9,29 @@ public enum EmailError: AWSErrorType { case ruleDoesNotExistException(message: String?) case mailFromDomainNotVerifiedException(message: String?) case configurationSetDoesNotExistException(message: String?) + case templateDoesNotExistException(message: String?) + case configurationSetSendingPausedException(message: String?) + case accountSendingPausedException(message: String?) + case trackingOptionsAlreadyExistsException(message: String?) + case invalidTrackingOptionsException(message: String?) + case alreadyExistsException(message: String?) + case invalidTemplateException(message: String?) + case limitExceededException(message: String?) case invalidSnsTopicException(message: String?) case invalidS3ConfigurationException(message: String?) case invalidLambdaFunctionException(message: String?) - case alreadyExistsException(message: String?) - case limitExceededException(message: String?) case invalidPolicyException(message: String?) case configurationSetAlreadyExistsException(message: String?) case invalidConfigurationSetException(message: String?) case cannotDeleteException(message: String?) + case trackingOptionsDoesNotExistException(message: String?) + case invalidRenderingParameterException(message: String?) + case missingRenderingAttributeException(message: String?) case eventDestinationDoesNotExistException(message: String?) + case eventDestinationAlreadyExistsException(message: String?) case invalidCloudWatchDestinationException(message: String?) case invalidFirehoseDestinationException(message: String?) - case eventDestinationAlreadyExistsException(message: String?) + case invalidSNSDestinationException(message: String?) } extension EmailError { @@ -41,16 +51,28 @@ extension EmailError { self = .mailFromDomainNotVerifiedException(message: message) case "ConfigurationSetDoesNotExistException": self = .configurationSetDoesNotExistException(message: message) + case "TemplateDoesNotExistException": + self = .templateDoesNotExistException(message: message) + case "ConfigurationSetSendingPausedException": + self = .configurationSetSendingPausedException(message: message) + case "AccountSendingPausedException": + self = .accountSendingPausedException(message: message) + case "TrackingOptionsAlreadyExistsException": + self = .trackingOptionsAlreadyExistsException(message: message) + case "InvalidTrackingOptionsException": + self = .invalidTrackingOptionsException(message: message) + case "AlreadyExistsException": + self = .alreadyExistsException(message: message) + case "InvalidTemplateException": + self = .invalidTemplateException(message: message) + case "LimitExceededException": + self = .limitExceededException(message: message) case "InvalidSnsTopicException": self = .invalidSnsTopicException(message: message) case "InvalidS3ConfigurationException": self = .invalidS3ConfigurationException(message: message) case "InvalidLambdaFunctionException": self = .invalidLambdaFunctionException(message: message) - case "AlreadyExistsException": - self = .alreadyExistsException(message: message) - case "LimitExceededException": - self = .limitExceededException(message: message) case "InvalidPolicyException": self = .invalidPolicyException(message: message) case "ConfigurationSetAlreadyExistsException": @@ -59,14 +81,22 @@ extension EmailError { self = .invalidConfigurationSetException(message: message) case "CannotDeleteException": self = .cannotDeleteException(message: message) + case "TrackingOptionsDoesNotExistException": + self = .trackingOptionsDoesNotExistException(message: message) + case "InvalidRenderingParameterException": + self = .invalidRenderingParameterException(message: message) + case "MissingRenderingAttributeException": + self = .missingRenderingAttributeException(message: message) case "EventDestinationDoesNotExistException": self = .eventDestinationDoesNotExistException(message: message) + case "EventDestinationAlreadyExistsException": + self = .eventDestinationAlreadyExistsException(message: message) case "InvalidCloudWatchDestinationException": self = .invalidCloudWatchDestinationException(message: message) case "InvalidFirehoseDestinationException": self = .invalidFirehoseDestinationException(message: message) - case "EventDestinationAlreadyExistsException": - self = .eventDestinationAlreadyExistsException(message: message) + case "InvalidSNSDestinationException": + self = .invalidSNSDestinationException(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/email/Email_Shapes.swift b/Sources/AWSSDKSwift/Services/email/Email_Shapes.swift index 48a7233b331..a9c25fcb69b 100644 --- a/Sources/AWSSDKSwift/Services/email/Email_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/email/Email_Shapes.swift @@ -5,8 +5,12 @@ import AWSSDKSwiftCore extension Email { + public struct UpdateConfigurationSetTrackingOptionsResponse: AWSShape { + + } + public struct VerifyEmailAddressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EmailAddress", required: true, type: .string) ] /// The email address to be verified. @@ -22,7 +26,7 @@ extension Email { } public struct ListReceiptFiltersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filters", required: false, type: .list) ] /// A list of IP address filter data structures, which each consist of a name, an IP address range, and whether to allow or block mail from it. @@ -38,7 +42,7 @@ extension Email { } public struct DescribeReceiptRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rule", required: false, type: .structure) ] /// A data structure that contains the specified receipt rule's name, actions, recipients, domains, enabled status, scan status, and Transport Layer Security (TLS) policy. @@ -59,29 +63,24 @@ extension Email { public var description: String { return self.rawValue } } - public struct CloneReceiptRuleSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RuleSetName", required: true, type: .string), - AWSShapeMember(label: "OriginalRuleSetName", required: true, type: .string) + public struct DeleteTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TemplateName", required: true, type: .string) ] - /// The name of the rule set to create. The name must: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-). Start and end with a letter or number. Contain less than 64 characters. - public let ruleSetName: String - /// The name of the rule set to clone. - public let originalRuleSetName: String + /// The name of the template to be deleted. + public let templateName: String - public init(ruleSetName: String, originalRuleSetName: String) { - self.ruleSetName = ruleSetName - self.originalRuleSetName = originalRuleSetName + public init(templateName: String) { + self.templateName = templateName } private enum CodingKeys: String, CodingKey { - case ruleSetName = "RuleSetName" - case originalRuleSetName = "OriginalRuleSetName" + case templateName = "TemplateName" } } public struct GetIdentityNotificationAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NotificationAttributes", required: true, type: .map) ] /// A map of Identity to IdentityNotificationAttributes. @@ -96,12 +95,33 @@ extension Email { } } + public struct CloneReceiptRuleSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleSetName", required: true, type: .string), + AWSShapeMember(label: "OriginalRuleSetName", required: true, type: .string) + ] + /// The name of the rule set to create. The name must: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-). Start and end with a letter or number. Contain less than 64 characters. + public let ruleSetName: String + /// The name of the rule set to clone. + public let originalRuleSetName: String + + public init(ruleSetName: String, originalRuleSetName: String) { + self.ruleSetName = ruleSetName + self.originalRuleSetName = originalRuleSetName + } + + private enum CodingKeys: String, CodingKey { + case ruleSetName = "RuleSetName" + case originalRuleSetName = "OriginalRuleSetName" + } + } + public struct DeleteConfigurationSetResponse: AWSShape { } public struct VerifyDomainIdentityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Domain", required: true, type: .string) ] /// The domain to be verified. @@ -117,7 +137,7 @@ extension Email { } public struct SetIdentityNotificationTopicRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NotificationType", required: true, type: .enum), AWSShapeMember(label: "SnsTopic", required: false, type: .string), AWSShapeMember(label: "Identity", required: true, type: .string) @@ -151,8 +171,9 @@ extension Email { } public struct EventDestination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CloudWatchDestination", required: false, type: .structure), + AWSShapeMember(label: "SNSDestination", required: false, type: .structure), AWSShapeMember(label: "MatchingEventTypes", required: true, type: .list), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "KinesisFirehoseDestination", required: false, type: .structure), @@ -160,6 +181,8 @@ extension Email { ] /// An object that contains the names, default values, and sources of the dimensions associated with an Amazon CloudWatch event destination. public let cloudWatchDestination: CloudWatchDestination? + /// An object that contains the topic ARN associated with an Amazon Simple Notification Service (Amazon SNS) event destination. + public let sNSDestination: SNSDestination? /// The type of email sending events to publish to the event destination. public let matchingEventTypes: [EventType] /// The name of the event destination. The name must: Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). Contain less than 64 characters. @@ -169,8 +192,9 @@ extension Email { /// Sets whether Amazon SES publishes events to this destination when you send an email with the associated configuration set. Set to true to enable publishing to this destination; set to false to prevent publishing to this destination. The default value is false. public let enabled: Bool? - public init(cloudWatchDestination: CloudWatchDestination? = nil, matchingEventTypes: [EventType], name: String, kinesisFirehoseDestination: KinesisFirehoseDestination? = nil, enabled: Bool? = nil) { + public init(cloudWatchDestination: CloudWatchDestination? = nil, sNSDestination: SNSDestination? = nil, matchingEventTypes: [EventType], name: String, kinesisFirehoseDestination: KinesisFirehoseDestination? = nil, enabled: Bool? = nil) { self.cloudWatchDestination = cloudWatchDestination + self.sNSDestination = sNSDestination self.matchingEventTypes = matchingEventTypes self.name = name self.kinesisFirehoseDestination = kinesisFirehoseDestination @@ -179,6 +203,7 @@ extension Email { private enum CodingKeys: String, CodingKey { case cloudWatchDestination = "CloudWatchDestination" + case sNSDestination = "SNSDestination" case matchingEventTypes = "MatchingEventTypes" case name = "Name" case kinesisFirehoseDestination = "KinesisFirehoseDestination" @@ -187,7 +212,7 @@ extension Email { } public struct IdentityNotificationAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ComplaintTopic", required: true, type: .string), AWSShapeMember(label: "ForwardingEnabled", required: true, type: .boolean), AWSShapeMember(label: "DeliveryTopic", required: true, type: .string), @@ -232,8 +257,34 @@ extension Email { } } + public struct MessageDsn: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ArrivalDate", required: false, type: .timestamp), + AWSShapeMember(label: "ExtensionFields", required: false, type: .list), + AWSShapeMember(label: "ReportingMta", required: true, type: .string) + ] + /// When the message was received by the reporting mail transfer agent (MTA), in RFC 822 date-time format. + public let arrivalDate: TimeStamp? + /// Additional X-headers to include in the DSN. + public let extensionFields: [ExtensionField]? + /// The reporting MTA that attempted to deliver the message, formatted as specified in RFC 3464 (mta-name-type; mta-name). The default value is dns; inbound-smtp.[region].amazonaws.com. + public let reportingMta: String + + public init(arrivalDate: TimeStamp? = nil, extensionFields: [ExtensionField]? = nil, reportingMta: String) { + self.arrivalDate = arrivalDate + self.extensionFields = extensionFields + self.reportingMta = reportingMta + } + + private enum CodingKeys: String, CodingKey { + case arrivalDate = "ArrivalDate" + case extensionFields = "ExtensionFields" + case reportingMta = "ReportingMta" + } + } + public struct SendBounceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MessageDsn", required: false, type: .structure), AWSShapeMember(label: "BouncedRecipientInfoList", required: true, type: .list), AWSShapeMember(label: "OriginalMessageId", required: true, type: .string), @@ -273,34 +324,8 @@ extension Email { } } - public struct MessageDsn: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ArrivalDate", required: false, type: .timestamp), - AWSShapeMember(label: "ExtensionFields", required: false, type: .list), - AWSShapeMember(label: "ReportingMta", required: true, type: .string) - ] - /// When the message was received by the reporting mail transfer agent (MTA), in RFC 822 date-time format. - public let arrivalDate: TimeStamp? - /// Additional X-headers to include in the DSN. - public let extensionFields: [ExtensionField]? - /// The reporting MTA that attempted to deliver the message, formatted as specified in RFC 3464 (mta-name-type; mta-name). The default value is dns; inbound-smtp.[region].amazonaws.com. - public let reportingMta: String - - public init(arrivalDate: TimeStamp? = nil, extensionFields: [ExtensionField]? = nil, reportingMta: String) { - self.arrivalDate = arrivalDate - self.extensionFields = extensionFields - self.reportingMta = reportingMta - } - - private enum CodingKeys: String, CodingKey { - case arrivalDate = "ArrivalDate" - case extensionFields = "ExtensionFields" - case reportingMta = "ReportingMta" - } - } - public struct ExtensionField: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -321,10 +346,10 @@ extension Email { } public struct ConfigurationSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] - /// The name of the configuration set. The name must: Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). Contain less than 64 characters. + /// The name of the configuration set. The name must meet the following requirements: Contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). Contain 64 characters or fewer. public let name: String public init(name: String) { @@ -337,7 +362,7 @@ extension Email { } public struct ListIdentitiesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdentityType", required: false, type: .enum), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer) @@ -367,13 +392,13 @@ extension Email { } public struct KinesisFirehoseDestination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IAMRoleARN", required: true, type: .string), AWSShapeMember(label: "DeliveryStreamARN", required: true, type: .string) ] /// The ARN of the IAM role under which Amazon SES publishes email sending events to the Amazon Kinesis Firehose stream. public let iAMRoleARN: String - /// The ARN of the Amazon Kinesis Firehose stream to which to publish email sending events. + /// The ARN of the Amazon Kinesis Firehose stream that email sending events should be published to. public let deliveryStreamARN: String public init(iAMRoleARN: String, deliveryStreamARN: String) { @@ -388,7 +413,7 @@ extension Email { } public struct DescribeReceiptRuleSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleSetName", required: true, type: .string) ] /// The name of the receipt rule set to describe. @@ -404,28 +429,93 @@ extension Email { } public struct DescribeConfigurationSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventDestinations", required: false, type: .list), - AWSShapeMember(label: "ConfigurationSet", required: false, type: .structure) - ] - /// A list of event destinations associated with the configuration set. - public let eventDestinations: [EventDestination]? + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReputationOptions", required: false, type: .structure), + AWSShapeMember(label: "ConfigurationSet", required: false, type: .structure), + AWSShapeMember(label: "TrackingOptions", required: false, type: .structure), + AWSShapeMember(label: "EventDestinations", required: false, type: .list) + ] + /// An object that represents the reputation settings for the configuration set. + public let reputationOptions: ReputationOptions? /// The configuration set object associated with the specified configuration set. public let configurationSet: ConfigurationSet? + /// The name of the custom open and click tracking domain associated with the configuration set. + public let trackingOptions: TrackingOptions? + /// A list of event destinations associated with the configuration set. + public let eventDestinations: [EventDestination]? - public init(eventDestinations: [EventDestination]? = nil, configurationSet: ConfigurationSet? = nil) { - self.eventDestinations = eventDestinations + public init(reputationOptions: ReputationOptions? = nil, configurationSet: ConfigurationSet? = nil, trackingOptions: TrackingOptions? = nil, eventDestinations: [EventDestination]? = nil) { + self.reputationOptions = reputationOptions self.configurationSet = configurationSet + self.trackingOptions = trackingOptions + self.eventDestinations = eventDestinations } private enum CodingKeys: String, CodingKey { - case eventDestinations = "EventDestinations" + case reputationOptions = "ReputationOptions" case configurationSet = "ConfigurationSet" + case trackingOptions = "TrackingOptions" + case eventDestinations = "EventDestinations" + } + } + + public struct SendBulkTemplatedEmailResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: true, type: .list) + ] + /// The unique message identifier returned from the SendBulkTemplatedEmail action. + public let status: [BulkEmailDestinationStatus] + + public init(status: [BulkEmailDestinationStatus]) { + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case status = "Status" + } + } + + public struct CreateConfigurationSetTrackingOptionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TrackingOptions", required: true, type: .structure), + AWSShapeMember(label: "ConfigurationSetName", required: true, type: .string) + ] + public let trackingOptions: TrackingOptions + /// The name of the configuration set that the tracking options should be associated with. + public let configurationSetName: String + + public init(trackingOptions: TrackingOptions, configurationSetName: String) { + self.trackingOptions = trackingOptions + self.configurationSetName = configurationSetName + } + + private enum CodingKeys: String, CodingKey { + case trackingOptions = "TrackingOptions" + case configurationSetName = "ConfigurationSetName" + } + } + + public struct DeleteTemplateResponse: AWSShape { + + } + + public struct GetTemplateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Template", required: false, type: .structure) + ] + public let template: Template? + + public init(template: Template? = nil) { + self.template = template + } + + private enum CodingKeys: String, CodingKey { + case template = "Template" } } public struct SetActiveReceiptRuleSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleSetName", required: false, type: .string) ] /// The name of the receipt rule set to make active. Setting this value to null disables all email receiving. @@ -441,7 +531,7 @@ extension Email { } public struct IdentityVerificationAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VerificationStatus", required: true, type: .enum), AWSShapeMember(label: "VerificationToken", required: false, type: .string) ] @@ -470,7 +560,7 @@ extension Email { } public struct GetIdentityVerificationAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Identities", required: true, type: .list) ] /// A list of identities. @@ -486,10 +576,10 @@ extension Email { } public struct RawMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Data", required: true, type: .blob) ] - /// The raw data of the message. The client must ensure that the message format complies with Internet email standards regarding email header fields, MIME types, MIME encoding, and base64 encoding. The To:, CC:, and BCC: headers in the raw message can contain a group list. If you are using SendRawEmail with sending authorization, you can include X-headers in the raw message to specify the "Source," "From," and "Return-Path" addresses. For more information, see the documentation for SendRawEmail. Do not include these X-headers in the DKIM signature, because they are removed by Amazon SES before sending the email. For more information, go to the Amazon SES Developer Guide. + /// The raw data of the message. This data needs to base64-encoded if you are accessing Amazon SES directly through the HTTPS interface. If you are accessing Amazon SES using an AWS SDK, the SDK takes care of the base 64-encoding for you. In all cases, the client must ensure that the message format complies with Internet email standards regarding email header fields, MIME types, and MIME encoding. The To:, CC:, and BCC: headers in the raw message can contain a group list. If you are using SendRawEmail with sending authorization, you can include X-headers in the raw message to specify the "Source," "From," and "Return-Path" addresses. For more information, see the documentation for SendRawEmail. Do not include these X-headers in the DKIM signature, because they are removed by Amazon SES before sending the email. For more information, go to the Amazon SES Developer Guide. public let data: Data public init(data: Data) { @@ -501,8 +591,24 @@ extension Email { } } + public struct DeleteReceiptFilterRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FilterName", required: true, type: .string) + ] + /// The name of the IP address filter to delete. + public let filterName: String + + public init(filterName: String) { + self.filterName = filterName + } + + private enum CodingKeys: String, CodingKey { + case filterName = "FilterName" + } + } + public struct DeleteReceiptRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleName", required: true, type: .string), AWSShapeMember(label: "RuleSetName", required: true, type: .string) ] @@ -522,24 +628,49 @@ extension Email { } } - public struct DeleteReceiptFilterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FilterName", required: true, type: .string) + public struct BulkEmailDestination: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReplacementTags", required: false, type: .list), + AWSShapeMember(label: "Destination", required: true, type: .structure), + AWSShapeMember(label: "ReplacementTemplateData", required: false, type: .string) ] - /// The name of the IP address filter to delete. - public let filterName: String + /// A list of tags, in the form of name/value pairs, to apply to an email that you send using SendBulkTemplatedEmail. Tags correspond to characteristics of the email that you define, so that you can publish email sending events. + public let replacementTags: [MessageTag]? + public let destination: Destination + /// A list of replacement values to apply to the template. This parameter is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template. + public let replacementTemplateData: String? - public init(filterName: String) { - self.filterName = filterName + public init(replacementTags: [MessageTag]? = nil, destination: Destination, replacementTemplateData: String? = nil) { + self.replacementTags = replacementTags + self.destination = destination + self.replacementTemplateData = replacementTemplateData } private enum CodingKeys: String, CodingKey { - case filterName = "FilterName" + case replacementTags = "ReplacementTags" + case destination = "Destination" + case replacementTemplateData = "ReplacementTemplateData" + } + } + + public struct TrackingOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CustomRedirectDomain", required: false, type: .string) + ] + /// The custom subdomain that will be used to redirect email recipients to the Amazon SES event tracking domain. + public let customRedirectDomain: String? + + public init(customRedirectDomain: String? = nil) { + self.customRedirectDomain = customRedirectDomain + } + + private enum CodingKeys: String, CodingKey { + case customRedirectDomain = "CustomRedirectDomain" } } public struct ListIdentityPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Identity", required: true, type: .string) ] /// The identity that is associated with the policy for which the policies will be listed. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com. To successfully call this API, you must own the identity. @@ -555,7 +686,7 @@ extension Email { } public struct Destination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CcAddresses", required: false, type: .list), AWSShapeMember(label: "BccAddresses", required: false, type: .list), AWSShapeMember(label: "ToAddresses", required: false, type: .list) @@ -580,13 +711,34 @@ extension Email { } } + public struct UpdateConfigurationSetReputationMetricsEnabledRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConfigurationSetName", required: true, type: .string), + AWSShapeMember(label: "Enabled", required: true, type: .boolean) + ] + /// The name of the configuration set that you want to update. + public let configurationSetName: String + /// Describes whether or not Amazon SES will publish reputation metrics for the configuration set, such as bounce and complaint rates, to Amazon CloudWatch. + public let enabled: Bool + + public init(configurationSetName: String, enabled: Bool) { + self.configurationSetName = configurationSetName + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case configurationSetName = "ConfigurationSetName" + case enabled = "Enabled" + } + } + public enum StopScope: String, CustomStringConvertible, Codable { case ruleset = "RuleSet" public var description: String { return self.rawValue } } public struct ListConfigurationSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer) ] @@ -607,7 +759,7 @@ extension Email { } public struct DescribeReceiptRuleSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metadata", required: false, type: .structure), AWSShapeMember(label: "Rules", required: false, type: .list) ] @@ -631,8 +783,74 @@ extension Email { } + public struct SendBulkTemplatedEmailRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConfigurationSetName", required: false, type: .string), + AWSShapeMember(label: "Destinations", required: true, type: .list), + AWSShapeMember(label: "TemplateArn", required: false, type: .string), + AWSShapeMember(label: "ReplyToAddresses", required: false, type: .list), + AWSShapeMember(label: "SourceArn", required: false, type: .string), + AWSShapeMember(label: "ReturnPathArn", required: false, type: .string), + AWSShapeMember(label: "DefaultTags", required: false, type: .list), + AWSShapeMember(label: "Source", required: true, type: .string), + AWSShapeMember(label: "Template", required: true, type: .string), + AWSShapeMember(label: "ReturnPath", required: false, type: .string), + AWSShapeMember(label: "DefaultTemplateData", required: false, type: .string) + ] + /// The name of the configuration set to use when you send an email using SendBulkTemplatedEmail. + public let configurationSetName: String? + /// One or more Destination objects. All of the recipients in a Destination will receive the same version of the email. You can specify up to 50 Destination objects within a Destinations array. + public let destinations: [BulkEmailDestination] + /// The ARN of the template to use when sending this email. + public let templateArn: String? + /// The reply-to email address(es) for the message. If the recipient replies to the message, each reply-to address will receive the reply. + public let replyToAddresses: [String]? + /// This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to send for the email address specified in the Source parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to send from user@example.com, then you would specify the SourceArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the Source to be user@example.com. For more information about sending authorization, see the Amazon SES Developer Guide. + public let sourceArn: String? + /// This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the ReturnPath parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the ReturnPathArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the ReturnPath to be feedback@example.com. For more information about sending authorization, see the Amazon SES Developer Guide. + public let returnPathArn: String? + /// A list of tags, in the form of name/value pairs, to apply to an email that you send to a destination using SendBulkTemplatedEmail. + public let defaultTags: [MessageTag]? + /// The email address that is sending the email. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. For information about verifying identities, see the Amazon SES Developer Guide. If you are sending on behalf of another user and have been permitted to do so by a sending authorization policy, then you must also specify the SourceArn parameter. For more information about sending authorization, see the Amazon SES Developer Guide. In all cases, the email address must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047. + public let source: String + /// The template to use when sending this email. + public let template: String + /// The email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the ReturnPath parameter. The ReturnPath parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. + public let returnPath: String? + /// A list of replacement values to apply to the template when replacement data is not specified in a Destination object. These values act as a default or fallback option when no other data is available. The template data is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template. + public let defaultTemplateData: String? + + public init(configurationSetName: String? = nil, destinations: [BulkEmailDestination], templateArn: String? = nil, replyToAddresses: [String]? = nil, sourceArn: String? = nil, returnPathArn: String? = nil, defaultTags: [MessageTag]? = nil, source: String, template: String, returnPath: String? = nil, defaultTemplateData: String? = nil) { + self.configurationSetName = configurationSetName + self.destinations = destinations + self.templateArn = templateArn + self.replyToAddresses = replyToAddresses + self.sourceArn = sourceArn + self.returnPathArn = returnPathArn + self.defaultTags = defaultTags + self.source = source + self.template = template + self.returnPath = returnPath + self.defaultTemplateData = defaultTemplateData + } + + private enum CodingKeys: String, CodingKey { + case configurationSetName = "ConfigurationSetName" + case destinations = "Destinations" + case templateArn = "TemplateArn" + case replyToAddresses = "ReplyToAddresses" + case sourceArn = "SourceArn" + case returnPathArn = "ReturnPathArn" + case defaultTags = "DefaultTags" + case source = "Source" + case template = "Template" + case returnPath = "ReturnPath" + case defaultTemplateData = "DefaultTemplateData" + } + } + public struct Content: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Charset", required: false, type: .string), AWSShapeMember(label: "Data", required: true, type: .string) ] @@ -653,7 +871,7 @@ extension Email { } public struct GetIdentityMailFromDomainAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MailFromDomainAttributes", required: true, type: .map) ] /// A map of identities to custom MAIL FROM attributes. @@ -668,8 +886,24 @@ extension Email { } } + public struct SNSDestination: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TopicARN", required: true, type: .string) + ] + /// The ARN of the Amazon SNS topic that email sending events will be published to. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. For more information about Amazon SNS topics, see the Amazon SNS Developer Guide. + public let topicARN: String + + public init(topicARN: String) { + self.topicARN = topicARN + } + + private enum CodingKeys: String, CodingKey { + case topicARN = "TopicARN" + } + } + public struct CloudWatchDimensionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DimensionValueSource", required: true, type: .enum), AWSShapeMember(label: "DimensionName", required: true, type: .string), AWSShapeMember(label: "DefaultDimensionValue", required: true, type: .string) @@ -694,8 +928,23 @@ extension Email { } } + public struct UpdateTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Template", required: true, type: .structure) + ] + public let template: Template + + public init(template: Template) { + self.template = template + } + + private enum CodingKeys: String, CodingKey { + case template = "Template" + } + } + public struct ReceiptAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3Action", required: false, type: .structure), AWSShapeMember(label: "WorkmailAction", required: false, type: .structure), AWSShapeMember(label: "AddHeaderAction", required: false, type: .structure), @@ -740,19 +989,19 @@ extension Email { } } - public struct CreateReceiptRuleSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RuleSetName", required: true, type: .string) + public struct ListIdentityPoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyNames", required: true, type: .list) ] - /// The name of the rule set to create. The name must: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-). Start and end with a letter or number. Contain less than 64 characters. - public let ruleSetName: String + /// A list of names of policies that apply to the specified identity. + public let policyNames: [String] - public init(ruleSetName: String) { - self.ruleSetName = ruleSetName + public init(policyNames: [String]) { + self.policyNames = policyNames } private enum CodingKeys: String, CodingKey { - case ruleSetName = "RuleSetName" + case policyNames = "PolicyNames" } } @@ -760,28 +1009,50 @@ extension Email { } - public struct ListIdentityPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyNames", required: true, type: .list) + public struct CreateReceiptRuleSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleSetName", required: true, type: .string) ] - /// A list of names of policies that apply to the specified identity. - public let policyNames: [String] + /// The name of the rule set to create. The name must: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-). Start and end with a letter or number. Contain less than 64 characters. + public let ruleSetName: String - public init(policyNames: [String]) { - self.policyNames = policyNames + public init(ruleSetName: String) { + self.ruleSetName = ruleSetName } private enum CodingKeys: String, CodingKey { - case policyNames = "PolicyNames" + case ruleSetName = "RuleSetName" } } - public struct CreateConfigurationSetResponse: AWSShape { + public struct ReputationOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastFreshStart", required: false, type: .timestamp), + AWSShapeMember(label: "ReputationMetricsEnabled", required: false, type: .boolean), + AWSShapeMember(label: "SendingEnabled", required: false, type: .boolean) + ] + /// The date and time at which the reputation metrics for the configuration set were last reset. Resetting these metrics is known as a fresh start. When you disable email sending for a configuration set using UpdateConfigurationSetSendingEnabled and later re-enable it, the reputation metrics for the configuration set (but not for the entire Amazon SES account) are reset. If email sending for the configuration set has never been disabled and later re-enabled, the value of this attribute is null. + public let lastFreshStart: TimeStamp? + /// Describes whether or not Amazon SES publishes reputation metrics for the configuration set, such as bounce and complaint rates, to Amazon CloudWatch. If the value is true, reputation metrics are published. If the value is false, reputation metrics are not published. The default value is false. + public let reputationMetricsEnabled: Bool? + /// Describes whether email sending is enabled or disabled for the configuration set. If the value is true, then Amazon SES will send emails that use the configuration set. If the value is false, Amazon SES will not send emails that use the configuration set. The default value is true. You can change this setting using UpdateConfigurationSetSendingEnabled. + public let sendingEnabled: Bool? + public init(lastFreshStart: TimeStamp? = nil, reputationMetricsEnabled: Bool? = nil, sendingEnabled: Bool? = nil) { + self.lastFreshStart = lastFreshStart + self.reputationMetricsEnabled = reputationMetricsEnabled + self.sendingEnabled = sendingEnabled + } + + private enum CodingKeys: String, CodingKey { + case lastFreshStart = "LastFreshStart" + case reputationMetricsEnabled = "ReputationMetricsEnabled" + case sendingEnabled = "SendingEnabled" + } } public struct BouncedRecipientInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Recipient", required: true, type: .string), AWSShapeMember(label: "RecipientDsnFields", required: false, type: .structure), AWSShapeMember(label: "BounceType", required: false, type: .enum), @@ -812,7 +1083,7 @@ extension Email { } public struct SetReceiptRulePositionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleName", required: true, type: .string), AWSShapeMember(label: "RuleSetName", required: true, type: .string), AWSShapeMember(label: "After", required: false, type: .string) @@ -837,8 +1108,12 @@ extension Email { } } + public struct CreateConfigurationSetResponse: AWSShape { + + } + public struct SNSAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Encoding", required: false, type: .enum), AWSShapeMember(label: "TopicArn", required: true, type: .string) ] @@ -863,7 +1138,7 @@ extension Email { } public struct DeleteConfigurationSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationSetName", required: true, type: .string) ] /// The name of the configuration set to delete. @@ -878,6 +1153,10 @@ extension Email { } } + public struct DeleteConfigurationSetTrackingOptionsResponse: AWSShape { + + } + public enum CustomMailFromStatus: String, CustomStringConvertible, Codable { case pending = "Pending" case success = "Success" @@ -899,29 +1178,8 @@ extension Email { } - public struct DescribeReceiptRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RuleName", required: true, type: .string), - AWSShapeMember(label: "RuleSetName", required: true, type: .string) - ] - /// The name of the receipt rule. - public let ruleName: String - /// The name of the receipt rule set to which the receipt rule belongs. - public let ruleSetName: String - - public init(ruleName: String, ruleSetName: String) { - self.ruleName = ruleName - self.ruleSetName = ruleSetName - } - - private enum CodingKeys: String, CodingKey { - case ruleName = "RuleName" - case ruleSetName = "RuleSetName" - } - } - public struct DeleteVerifiedEmailAddressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EmailAddress", required: true, type: .string) ] /// An email address to be removed from the list of verified addresses. @@ -940,15 +1198,36 @@ extension Email { } + public struct DescribeReceiptRuleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleName", required: true, type: .string), + AWSShapeMember(label: "RuleSetName", required: true, type: .string) + ] + /// The name of the receipt rule. + public let ruleName: String + /// The name of the receipt rule set that the receipt rule belongs to. + public let ruleSetName: String + + public init(ruleName: String, ruleSetName: String) { + self.ruleName = ruleName + self.ruleSetName = ruleSetName + } + + private enum CodingKeys: String, CodingKey { + case ruleName = "RuleName" + case ruleSetName = "RuleSetName" + } + } + public struct CreateReceiptRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "After", required: false, type: .string), AWSShapeMember(label: "RuleSetName", required: true, type: .string), AWSShapeMember(label: "Rule", required: true, type: .structure) ] /// The name of an existing rule after which the new rule will be placed. If this parameter is null, the new rule will be inserted at the beginning of the rule list. public let after: String? - /// The name of the rule set to which to add the rule. + /// The name of the rule set that the receipt rule will be added to. public let ruleSetName: String /// A data structure that contains the specified rule's name, actions, recipients, domains, enabled status, scan status, and TLS policy. public let rule: ReceiptRule @@ -971,7 +1250,7 @@ extension Email { } public struct SendEmailResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MessageId", required: true, type: .string) ] /// The unique message identifier returned from the SendEmail action. @@ -987,7 +1266,7 @@ extension Email { } public struct LambdaAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionArn", required: true, type: .string), AWSShapeMember(label: "TopicArn", required: false, type: .string), AWSShapeMember(label: "InvocationType", required: false, type: .enum) @@ -1012,13 +1291,8 @@ extension Email { } } - public enum EventType: String, CustomStringConvertible, Codable { - case send = "send" - case reject = "reject" - case bounce = "bounce" - case complaint = "complaint" - case delivery = "delivery" - public var description: String { return self.rawValue } + public struct CreateConfigurationSetTrackingOptionsResponse: AWSShape { + } public enum BounceType: String, CustomStringConvertible, Codable { @@ -1031,40 +1305,31 @@ extension Email { public var description: String { return self.rawValue } } + public enum EventType: String, CustomStringConvertible, Codable { + case send = "send" + case reject = "reject" + case bounce = "bounce" + case complaint = "complaint" + case delivery = "delivery" + case open = "open" + case click = "click" + case renderingfailure = "renderingFailure" + public var description: String { return self.rawValue } + } + public enum DimensionValueSource: String, CustomStringConvertible, Codable { case messagetag = "messageTag" case emailheader = "emailHeader" + case linktag = "linkTag" public var description: String { return self.rawValue } } - public struct GetSendQuotaResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxSendRate", required: false, type: .double), - AWSShapeMember(label: "Max24HourSend", required: false, type: .double), - AWSShapeMember(label: "SentLast24Hours", required: false, type: .double) - ] - /// The maximum number of emails that Amazon SES can accept from the user's account per second. The rate at which Amazon SES accepts the user's messages might be less than the maximum send rate. - public let maxSendRate: Double? - /// The maximum number of emails the user is allowed to send in a 24-hour interval. A value of -1 signifies an unlimited quota. - public let max24HourSend: Double? - /// The number of emails sent during the previous 24 hours. - public let sentLast24Hours: Double? + public struct CreateTemplateResponse: AWSShape { - public init(maxSendRate: Double? = nil, max24HourSend: Double? = nil, sentLast24Hours: Double? = nil) { - self.maxSendRate = maxSendRate - self.max24HourSend = max24HourSend - self.sentLast24Hours = sentLast24Hours - } - - private enum CodingKeys: String, CodingKey { - case maxSendRate = "MaxSendRate" - case max24HourSend = "Max24HourSend" - case sentLast24Hours = "SentLast24Hours" - } } public struct BounceAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: false, type: .string), AWSShapeMember(label: "SmtpReplyCode", required: true, type: .string), AWSShapeMember(label: "Message", required: true, type: .string), @@ -1099,17 +1364,34 @@ extension Email { } } - public enum VerificationStatus: String, CustomStringConvertible, Codable { - case pending = "Pending" - case success = "Success" - case failed = "Failed" - case temporaryfailure = "TemporaryFailure" - case notstarted = "NotStarted" - public var description: String { return self.rawValue } + public struct GetSendQuotaResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxSendRate", required: false, type: .double), + AWSShapeMember(label: "Max24HourSend", required: false, type: .double), + AWSShapeMember(label: "SentLast24Hours", required: false, type: .double) + ] + /// The maximum number of emails that Amazon SES can accept from the user's account per second. The rate at which Amazon SES accepts the user's messages might be less than the maximum send rate. + public let maxSendRate: Double? + /// The maximum number of emails the user is allowed to send in a 24-hour interval. A value of -1 signifies an unlimited quota. + public let max24HourSend: Double? + /// The number of emails sent during the previous 24 hours. + public let sentLast24Hours: Double? + + public init(maxSendRate: Double? = nil, max24HourSend: Double? = nil, sentLast24Hours: Double? = nil) { + self.maxSendRate = maxSendRate + self.max24HourSend = max24HourSend + self.sentLast24Hours = sentLast24Hours + } + + private enum CodingKeys: String, CodingKey { + case maxSendRate = "MaxSendRate" + case max24HourSend = "Max24HourSend" + case sentLast24Hours = "SentLast24Hours" + } } public struct GetSendStatisticsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SendDataPoints", required: false, type: .list) ] /// A list of data points, each of which represents 15 minutes of activity. @@ -1128,8 +1410,38 @@ extension Email { } + public enum VerificationStatus: String, CustomStringConvertible, Codable { + case pending = "Pending" + case success = "Success" + case failed = "Failed" + case temporaryfailure = "TemporaryFailure" + case notstarted = "NotStarted" + public var description: String { return self.rawValue } + } + + public struct UpdateConfigurationSetSendingEnabledRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConfigurationSetName", required: true, type: .string), + AWSShapeMember(label: "Enabled", required: true, type: .boolean) + ] + /// The name of the configuration set that you want to update. + public let configurationSetName: String + /// Describes whether email sending is enabled or disabled for the configuration set. + public let enabled: Bool + + public init(configurationSetName: String, enabled: Bool) { + self.configurationSetName = configurationSetName + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case configurationSetName = "ConfigurationSetName" + case enabled = "Enabled" + } + } + public struct SetIdentityDkimEnabledRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DkimEnabled", required: true, type: .boolean), AWSShapeMember(label: "Identity", required: true, type: .string) ] @@ -1149,8 +1461,24 @@ extension Email { } } + public struct GetIdentityMailFromDomainAttributesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Identities", required: true, type: .list) + ] + /// A list of one or more identities. + public let identities: [String] + + public init(identities: [String]) { + self.identities = identities + } + + private enum CodingKeys: String, CodingKey { + case identities = "Identities" + } + } + public struct DescribeActiveReceiptRuleSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metadata", required: false, type: .structure), AWSShapeMember(label: "Rules", required: false, type: .list) ] @@ -1170,19 +1498,95 @@ extension Email { } } - public struct GetIdentityMailFromDomainAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Identities", required: true, type: .list) + public struct SendTemplatedEmailRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConfigurationSetName", required: false, type: .string), + AWSShapeMember(label: "Destination", required: true, type: .structure), + AWSShapeMember(label: "TemplateData", required: true, type: .string), + AWSShapeMember(label: "TemplateArn", required: false, type: .string), + AWSShapeMember(label: "SourceArn", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "ReturnPathArn", required: false, type: .string), + AWSShapeMember(label: "ReplyToAddresses", required: false, type: .list), + AWSShapeMember(label: "Source", required: true, type: .string), + AWSShapeMember(label: "Template", required: true, type: .string), + AWSShapeMember(label: "ReturnPath", required: false, type: .string) ] - /// A list of one or more identities. - public let identities: [String] + /// The name of the configuration set to use when you send an email using SendTemplatedEmail. + public let configurationSetName: String? + /// The destination for this email, composed of To:, CC:, and BCC: fields. A Destination can include up to 50 recipients across these three fields. + public let destination: Destination + /// A list of replacement values to apply to the template. This parameter is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template. + public let templateData: String + /// The ARN of the template to use when sending this email. + public let templateArn: String? + /// This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to send for the email address specified in the Source parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to send from user@example.com, then you would specify the SourceArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the Source to be user@example.com. For more information about sending authorization, see the Amazon SES Developer Guide. + public let sourceArn: String? + /// A list of tags, in the form of name/value pairs, to apply to an email that you send using SendTemplatedEmail. Tags correspond to characteristics of the email that you define, so that you can publish email sending events. + public let tags: [MessageTag]? + /// This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the ReturnPath parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the ReturnPathArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the ReturnPath to be feedback@example.com. For more information about sending authorization, see the Amazon SES Developer Guide. + public let returnPathArn: String? + /// The reply-to email address(es) for the message. If the recipient replies to the message, each reply-to address will receive the reply. + public let replyToAddresses: [String]? + /// The email address that is sending the email. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. For information about verifying identities, see the Amazon SES Developer Guide. If you are sending on behalf of another user and have been permitted to do so by a sending authorization policy, then you must also specify the SourceArn parameter. For more information about sending authorization, see the Amazon SES Developer Guide. In all cases, the email address must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047. + public let source: String + /// The template to use when sending this email. + public let template: String + /// The email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the ReturnPath parameter. The ReturnPath parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. + public let returnPath: String? - public init(identities: [String]) { - self.identities = identities + public init(configurationSetName: String? = nil, destination: Destination, templateData: String, templateArn: String? = nil, sourceArn: String? = nil, tags: [MessageTag]? = nil, returnPathArn: String? = nil, replyToAddresses: [String]? = nil, source: String, template: String, returnPath: String? = nil) { + self.configurationSetName = configurationSetName + self.destination = destination + self.templateData = templateData + self.templateArn = templateArn + self.sourceArn = sourceArn + self.tags = tags + self.returnPathArn = returnPathArn + self.replyToAddresses = replyToAddresses + self.source = source + self.template = template + self.returnPath = returnPath } private enum CodingKeys: String, CodingKey { - case identities = "Identities" + case configurationSetName = "ConfigurationSetName" + case destination = "Destination" + case templateData = "TemplateData" + case templateArn = "TemplateArn" + case sourceArn = "SourceArn" + case tags = "Tags" + case returnPathArn = "ReturnPathArn" + case replyToAddresses = "ReplyToAddresses" + case source = "Source" + case template = "Template" + case returnPath = "ReturnPath" + } + } + + public struct BulkEmailDestinationStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "Error", required: false, type: .string), + AWSShapeMember(label: "MessageId", required: false, type: .string) + ] + /// The status of a message sent using the SendBulkTemplatedEmail operation. Possible values for this parameter include: Success: Amazon SES accepted the message, and will attempt to deliver it to the recipients. MessageRejected: The message was rejected because it contained a virus. MailFromDomainNotVerified: The sender's email address or domain was not verified. ConfigurationSetDoesNotExist: The configuration set you specified does not exist. TemplateDoesNotExist: The template you specified does not exist. AccountSuspended: Your account has been shut down because of issues related to your email sending practices. AccountThrottled: The number of emails you can send has been reduced because your account has exceeded its allocated sending limit. AccountDailyQuotaExceeded: You have reached or exceeded the maximum number of emails you can send from your account in a 24-hour period. InvalidSendingPoolName: The configuration set you specified refers to an IP pool that does not exist. AccountSendingPaused: Email sending for the Amazon SES account was disabled using the UpdateAccountSendingEnabled operation. ConfigurationSetSendingPaused: Email sending for this configuration set was disabled using the UpdateConfigurationSetSendingEnabled operation. InvalidParameterValue: One or more of the parameters you specified when calling this operation was invalid. See the error message for additional information. TransientFailure: Amazon SES was unable to process your request because of a temporary issue. Failed: Amazon SES was unable to process your request. See the error message for additional information. + public let status: BulkEmailStatus? + /// A description of an error that prevented a message being sent using the SendBulkTemplatedEmail operation. + public let error: String? + /// The unique message identifier returned from the SendBulkTemplatedEmail operation. + public let messageId: String? + + public init(status: BulkEmailStatus? = nil, error: String? = nil, messageId: String? = nil) { + self.status = status + self.error = error + self.messageId = messageId + } + + private enum CodingKeys: String, CodingKey { + case status = "Status" + case error = "Error" + case messageId = "MessageId" } } @@ -1203,7 +1607,7 @@ extension Email { } public struct CreateConfigurationSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationSet", required: true, type: .structure) ] /// A data structure that contains the name of the configuration set. @@ -1223,7 +1627,7 @@ extension Email { } public struct PutIdentityPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: true, type: .string), AWSShapeMember(label: "PolicyName", required: true, type: .string), AWSShapeMember(label: "Identity", required: true, type: .string) @@ -1232,7 +1636,7 @@ extension Email { public let policy: String /// The name of the policy. The policy name cannot exceed 64 characters and can only include alphanumeric characters, dashes, and underscores. public let policyName: String - /// The identity to which the policy will apply. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com. To successfully call this API, you must own the identity. + /// The identity that the policy will apply to. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com. To successfully call this API, you must own the identity. public let identity: String public init(policy: String, policyName: String, identity: String) { @@ -1248,8 +1652,55 @@ extension Email { } } + public struct Template: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "HtmlPart", required: false, type: .string), + AWSShapeMember(label: "TextPart", required: false, type: .string), + AWSShapeMember(label: "TemplateName", required: true, type: .string), + AWSShapeMember(label: "SubjectPart", required: false, type: .string) + ] + /// The HTML body of the email. + public let htmlPart: String? + /// The email body that will be visible to recipients whose email clients do not display HTML. + public let textPart: String? + /// The name of the template. You will refer to this name when you send email using the SendTemplatedEmail or SendBulkTemplatedEmail operations. + public let templateName: String + /// The subject line of the email. + public let subjectPart: String? + + public init(htmlPart: String? = nil, textPart: String? = nil, templateName: String, subjectPart: String? = nil) { + self.htmlPart = htmlPart + self.textPart = textPart + self.templateName = templateName + self.subjectPart = subjectPart + } + + private enum CodingKeys: String, CodingKey { + case htmlPart = "HtmlPart" + case textPart = "TextPart" + case templateName = "TemplateName" + case subjectPart = "SubjectPart" + } + } + + public struct SendTemplatedEmailResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MessageId", required: true, type: .string) + ] + /// The unique message identifier returned from the SendTemplatedEmail action. + public let messageId: String + + public init(messageId: String) { + self.messageId = messageId + } + + private enum CodingKeys: String, CodingKey { + case messageId = "MessageId" + } + } + public struct Message: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Body", required: true, type: .structure), AWSShapeMember(label: "Subject", required: true, type: .structure) ] @@ -1275,11 +1726,13 @@ extension Email { public enum ConfigurationSetAttribute: String, CustomStringConvertible, Codable { case eventdestinations = "eventDestinations" + case trackingoptions = "trackingOptions" + case reputationoptions = "reputationOptions" public var description: String { return self.rawValue } } public struct GetIdentityVerificationAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VerificationAttributes", required: true, type: .map) ] /// A map of Identities to IdentityVerificationAttributes objects. @@ -1299,7 +1752,7 @@ extension Email { } public struct DescribeConfigurationSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationSetName", required: true, type: .string), AWSShapeMember(label: "ConfigurationSetAttributeNames", required: false, type: .list) ] @@ -1324,18 +1777,59 @@ extension Email { } public struct VerifyDomainIdentityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VerificationToken", required: true, type: .string) ] - /// A TXT record that must be placed in the DNS settings for the domain, in order to complete domain verification. - public let verificationToken: String + /// A TXT record that you must place in the DNS settings of the domain to complete domain verification with Amazon SES. As Amazon SES searches for the TXT record, the domain's verification status is "Pending". When Amazon SES detects the record, the domain's verification status changes to "Success". If Amazon SES is unable to detect the record within 72 hours, the domain's verification status changes to "Failed." In that case, if you still want to verify the domain, you must restart the verification process from the beginning. + public let verificationToken: String + + public init(verificationToken: String) { + self.verificationToken = verificationToken + } + + private enum CodingKeys: String, CodingKey { + case verificationToken = "VerificationToken" + } + } + + public struct TemplateMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "CreatedTimestamp", required: false, type: .timestamp) + ] + /// The name of the template. + public let name: String? + /// The time and date the template was created. + public let createdTimestamp: TimeStamp? + + public init(name: String? = nil, createdTimestamp: TimeStamp? = nil) { + self.name = name + self.createdTimestamp = createdTimestamp + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case createdTimestamp = "CreatedTimestamp" + } + } + + public struct UpdateConfigurationSetTrackingOptionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TrackingOptions", required: true, type: .structure), + AWSShapeMember(label: "ConfigurationSetName", required: true, type: .string) + ] + public let trackingOptions: TrackingOptions + /// The name of the configuration set for which you want to update the custom tracking domain. + public let configurationSetName: String - public init(verificationToken: String) { - self.verificationToken = verificationToken + public init(trackingOptions: TrackingOptions, configurationSetName: String) { + self.trackingOptions = trackingOptions + self.configurationSetName = configurationSetName } private enum CodingKeys: String, CodingKey { - case verificationToken = "VerificationToken" + case trackingOptions = "TrackingOptions" + case configurationSetName = "ConfigurationSetName" } } @@ -1344,7 +1838,7 @@ extension Email { } public struct DeleteIdentityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Identity", required: true, type: .string) ] /// The identity to be removed from the list of identities for the AWS Account. @@ -1359,6 +1853,43 @@ extension Email { } } + public struct ListTemplatesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TemplatesMetadata", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// An array the contains the name of creation time stamp for each template in your Amazon SES account. + public let templatesMetadata: [TemplateMetadata]? + /// The token to use for pagination. + public let nextToken: String? + + public init(templatesMetadata: [TemplateMetadata]? = nil, nextToken: String? = nil) { + self.templatesMetadata = templatesMetadata + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case templatesMetadata = "TemplatesMetadata" + case nextToken = "NextToken" + } + } + + public struct GetAccountSendingEnabledResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Enabled", required: false, type: .boolean) + ] + /// Describes whether email sending is enabled or disabled for your Amazon SES account. + public let enabled: Bool? + + public init(enabled: Bool? = nil) { + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case enabled = "Enabled" + } + } + public enum InvocationType: String, CustomStringConvertible, Codable { case event = "Event" case requestresponse = "RequestResponse" @@ -1366,7 +1897,7 @@ extension Email { } public struct AddHeaderAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HeaderName", required: true, type: .string), AWSShapeMember(label: "HeaderValue", required: true, type: .string) ] @@ -1387,7 +1918,7 @@ extension Email { } public struct CreateReceiptFilterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filter", required: true, type: .structure) ] /// A data structure that describes the IP address filter to create, which consists of a name, an IP address range, and whether to allow or block mail from it. @@ -1403,7 +1934,7 @@ extension Email { } public struct GetIdentityPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policies", required: true, type: .map) ] /// A map of policy names to policies. @@ -1419,11 +1950,11 @@ extension Email { } public struct UpdateConfigurationSetEventDestinationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationSetName", required: true, type: .string), AWSShapeMember(label: "EventDestination", required: true, type: .structure) ] - /// The name of the configuration set that you want to update. + /// The name of the configuration set that contains the event destination that you want to update. public let configurationSetName: String /// The event destination object that you want to apply to the specified configuration set. public let eventDestination: EventDestination @@ -1440,7 +1971,7 @@ extension Email { } public struct GetIdentityDkimAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Identities", required: true, type: .list) ] /// A list of one or more verified identities - email addresses, domains, or both. @@ -1455,8 +1986,26 @@ extension Email { } } + public enum BulkEmailStatus: String, CustomStringConvertible, Codable { + case success = "Success" + case messagerejected = "MessageRejected" + case mailfromdomainnotverified = "MailFromDomainNotVerified" + case configurationsetdoesnotexist = "ConfigurationSetDoesNotExist" + case templatedoesnotexist = "TemplateDoesNotExist" + case accountsuspended = "AccountSuspended" + case accountthrottled = "AccountThrottled" + case accountdailyquotaexceeded = "AccountDailyQuotaExceeded" + case invalidsendingpoolname = "InvalidSendingPoolName" + case accountsendingpaused = "AccountSendingPaused" + case configurationsetsendingpaused = "ConfigurationSetSendingPaused" + case invalidparametervalue = "InvalidParameterValue" + case transientfailure = "TransientFailure" + case failed = "Failed" + public var description: String { return self.rawValue } + } + public struct IdentityDkimAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DkimVerificationStatus", required: true, type: .enum), AWSShapeMember(label: "DkimTokens", required: false, type: .list), AWSShapeMember(label: "DkimEnabled", required: true, type: .boolean) @@ -1482,7 +2031,7 @@ extension Email { } public struct IdentityMailFromDomainAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BehaviorOnMXFailure", required: true, type: .enum), AWSShapeMember(label: "MailFromDomainStatus", required: true, type: .enum), AWSShapeMember(label: "MailFromDomain", required: true, type: .string) @@ -1512,7 +2061,7 @@ extension Email { } public struct S3Action: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: false, type: .string), AWSShapeMember(label: "BucketName", required: true, type: .string), AWSShapeMember(label: "ObjectKeyPrefix", required: false, type: .string), @@ -1520,7 +2069,7 @@ extension Email { ] /// The ARN of the Amazon SNS topic to notify when the message is saved to the Amazon S3 bucket. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. For more information about Amazon SNS topics, see the Amazon SNS Developer Guide. public let topicArn: String? - /// The name of the Amazon S3 bucket to which to save the received email. + /// The name of the Amazon S3 bucket that incoming email will be saved to. public let bucketName: String /// The key prefix of the Amazon S3 bucket. The key prefix is similar to a directory name that enables you to store similar data under the same directory in a bucket. public let objectKeyPrefix: String? @@ -1543,7 +2092,7 @@ extension Email { } public struct ReceiptFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "IpFilter", required: true, type: .structure) ] @@ -1564,13 +2113,13 @@ extension Email { } public struct UpdateReceiptRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rule", required: true, type: .structure), AWSShapeMember(label: "RuleSetName", required: true, type: .string) ] /// A data structure that contains the updated receipt rule information. public let rule: ReceiptRule - /// The name of the receipt rule set to which the receipt rule belongs. + /// The name of the receipt rule set that the receipt rule belongs to. public let ruleSetName: String public init(rule: ReceiptRule, ruleSetName: String) { @@ -1585,13 +2134,13 @@ extension Email { } public struct CreateConfigurationSetEventDestinationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationSetName", required: true, type: .string), AWSShapeMember(label: "EventDestination", required: true, type: .structure) ] - /// The name of the configuration set to which to apply the event destination. + /// The name of the configuration set that the event destination should be associated with. public let configurationSetName: String - /// An object that describes the AWS service to which Amazon SES will publish the email sending events associated with the specified configuration set. + /// An object that describes the AWS service that email sending event information will be published to. public let eventDestination: EventDestination public init(configurationSetName: String, eventDestination: EventDestination) { @@ -1606,7 +2155,7 @@ extension Email { } public struct Body: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Html", required: false, type: .structure), AWSShapeMember(label: "Text", required: false, type: .structure) ] @@ -1627,7 +2176,7 @@ extension Email { } public struct VerifyEmailIdentityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EmailAddress", required: true, type: .string) ] /// The email address to be verified. @@ -1643,7 +2192,7 @@ extension Email { } public struct ListIdentitiesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Identities", required: true, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1664,7 +2213,7 @@ extension Email { } public struct ListReceiptRuleSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string) ] /// A token returned from a previous call to ListReceiptRuleSets to indicate the position in the receipt rule set list. @@ -1680,7 +2229,7 @@ extension Email { } public struct MessageTag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1701,7 +2250,7 @@ extension Email { } public struct SendBounceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MessageId", required: false, type: .string) ] /// The message ID of the bounce message. @@ -1717,7 +2266,7 @@ extension Email { } public struct CloudWatchDestination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DimensionConfigurations", required: true, type: .list) ] /// A list of dimensions upon which to categorize your emails when you publish email sending events to Amazon CloudWatch. @@ -1733,7 +2282,7 @@ extension Email { } public struct ReceiptRuleSetMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "CreatedTimestamp", required: false, type: .timestamp) ] @@ -1753,16 +2302,32 @@ extension Email { } } + public enum IdentityType: String, CustomStringConvertible, Codable { + case emailaddress = "EmailAddress" + case domain = "Domain" + public var description: String { return self.rawValue } + } + public enum BehaviorOnMXFailure: String, CustomStringConvertible, Codable { case usedefaultvalue = "UseDefaultValue" case rejectmessage = "RejectMessage" public var description: String { return self.rawValue } } - public enum IdentityType: String, CustomStringConvertible, Codable { - case emailaddress = "EmailAddress" - case domain = "Domain" - public var description: String { return self.rawValue } + public struct TestRenderTemplateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RenderedTemplate", required: false, type: .string) + ] + /// The complete MIME message rendered by applying the data in the TemplateData parameter to the template specified in the TemplateName parameter. + public let renderedTemplate: String? + + public init(renderedTemplate: String? = nil) { + self.renderedTemplate = renderedTemplate + } + + private enum CodingKeys: String, CodingKey { + case renderedTemplate = "RenderedTemplate" + } } public enum NotificationType: String, CustomStringConvertible, Codable { @@ -1773,7 +2338,7 @@ extension Email { } public struct DeleteReceiptRuleSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleSetName", required: true, type: .string) ] /// The name of the receipt rule set to delete. @@ -1793,7 +2358,7 @@ extension Email { } public struct ListReceiptRuleSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "RuleSets", required: false, type: .list) ] @@ -1814,7 +2379,7 @@ extension Email { } public struct SetIdentityHeadersInNotificationsEnabledRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Enabled", required: true, type: .boolean), AWSShapeMember(label: "NotificationType", required: true, type: .enum), AWSShapeMember(label: "Identity", required: true, type: .string) @@ -1839,8 +2404,24 @@ extension Email { } } + public struct UpdateAccountSendingEnabledRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Enabled", required: false, type: .boolean) + ] + /// Describes whether email sending is enabled or disabled for your Amazon SES account. + public let enabled: Bool? + + public init(enabled: Bool? = nil) { + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case enabled = "Enabled" + } + } + public struct SetIdentityFeedbackForwardingEnabledRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ForwardingEnabled", required: true, type: .boolean), AWSShapeMember(label: "Identity", required: true, type: .string) ] @@ -1861,7 +2442,7 @@ extension Email { } public struct GetIdentityDkimAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DkimAttributes", required: true, type: .map) ] /// The DKIM attributes for an email address or a domain. @@ -1877,7 +2458,7 @@ extension Email { } public struct GetIdentityNotificationAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Identities", required: true, type: .list) ] /// A list of one or more identities. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com. @@ -1893,7 +2474,7 @@ extension Email { } public struct WorkmailAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: false, type: .string), AWSShapeMember(label: "OrganizationArn", required: true, type: .string) ] @@ -1913,14 +2494,30 @@ extension Email { } } + public struct VerifyDomainDkimRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Domain", required: true, type: .string) + ] + /// The name of the domain to be verified for Easy DKIM signing. + public let domain: String + + public init(domain: String) { + self.domain = domain + } + + private enum CodingKeys: String, CodingKey { + case domain = "Domain" + } + } + public struct StopAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: false, type: .string), AWSShapeMember(label: "Scope", required: true, type: .enum) ] /// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the stop action is taken. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. For more information about Amazon SNS topics, see the Amazon SNS Developer Guide. public let topicArn: String? - /// The scope to which the Stop action applies. That is, what is being stopped. + /// The name of the RuleSet that is being stopped. public let scope: StopScope public init(topicArn: String? = nil, scope: StopScope) { @@ -1934,24 +2531,29 @@ extension Email { } } - public struct VerifyDomainDkimRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Domain", required: true, type: .string) + public struct ListTemplatesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxItems", required: false, type: .integer) ] - /// The name of the domain to be verified for Easy DKIM signing. - public let domain: String + /// The token to use for pagination. + public let nextToken: String? + /// The maximum number of templates to return. This value must be at least 1 and less than or equal to 10. If you do not specify a value, or if you specify a value less than 1 or greater than 10, the operation will return up to 10 results. + public let maxItems: Int32? - public init(domain: String) { - self.domain = domain + public init(nextToken: String? = nil, maxItems: Int32? = nil) { + self.nextToken = nextToken + self.maxItems = maxItems } private enum CodingKeys: String, CodingKey { - case domain = "Domain" + case nextToken = "NextToken" + case maxItems = "MaxItems" } } public struct SendRawEmailRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationSetName", required: false, type: .string), AWSShapeMember(label: "RawMessage", required: true, type: .structure), AWSShapeMember(label: "Destinations", required: false, type: .list), @@ -1963,7 +2565,7 @@ extension Email { ] /// The name of the configuration set to use when you send an email using SendRawEmail. public let configurationSetName: String? - /// The raw text of the message. The client is responsible for ensuring the following: Message must contain a header and a body, separated by a blank line. All required header fields must be present. Each part of a multipart MIME message must be formatted properly. MIME content types must be among those supported by Amazon SES. For more information, go to the Amazon SES Developer Guide. Must be base64-encoded. + /// The raw text of the message. The client is responsible for ensuring the following: Message must contain a header and a body, separated by a blank line. All required header fields must be present. Each part of a multipart MIME message must be formatted properly. MIME content types must be among those supported by Amazon SES. For more information, go to the Amazon SES Developer Guide. Must be base64-encoded. Per RFC 5321, the maximum length of each line of text, including the <CRLF>, must not exceed 1,000 characters. public let rawMessage: RawMessage /// A list of destinations for the message, consisting of To:, CC:, and BCC: addresses. public let destinations: [String]? @@ -2005,8 +2607,29 @@ extension Email { } + public struct TestRenderTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TemplateName", required: true, type: .string), + AWSShapeMember(label: "TemplateData", required: true, type: .string) + ] + /// The name of the template that you want to render. + public let templateName: String + /// A list of replacement values to apply to the template. This parameter is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template. + public let templateData: String + + public init(templateName: String, templateData: String) { + self.templateName = templateName + self.templateData = templateData + } + + private enum CodingKeys: String, CodingKey { + case templateName = "TemplateName" + case templateData = "TemplateData" + } + } + public struct DeleteIdentityPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyName", required: true, type: .string), AWSShapeMember(label: "Identity", required: true, type: .string) ] @@ -2027,7 +2650,7 @@ extension Email { } public struct SendRawEmailResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MessageId", required: true, type: .string) ] /// The unique message identifier returned from the SendRawEmail action. @@ -2043,7 +2666,7 @@ extension Email { } public struct SetIdentityMailFromDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BehaviorOnMXFailure", required: false, type: .enum), AWSShapeMember(label: "MailFromDomain", required: false, type: .string), AWSShapeMember(label: "Identity", required: true, type: .string) @@ -2069,7 +2692,7 @@ extension Email { } public struct DeleteConfigurationSetEventDestinationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationSetName", required: true, type: .string), AWSShapeMember(label: "EventDestinationName", required: true, type: .string) ] @@ -2093,12 +2716,85 @@ extension Email { } + public struct GetTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TemplateName", required: true, type: .string) + ] + /// The name of the template you want to retrieve. + public let templateName: String + + public init(templateName: String) { + self.templateName = templateName + } + + private enum CodingKeys: String, CodingKey { + case templateName = "TemplateName" + } + } + public struct UpdateReceiptRuleResponse: AWSShape { } + public struct ListVerifiedEmailAddressesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VerifiedEmailAddresses", required: false, type: .list) + ] + /// A list of email addresses that have been verified. + public let verifiedEmailAddresses: [String]? + + public init(verifiedEmailAddresses: [String]? = nil) { + self.verifiedEmailAddresses = verifiedEmailAddresses + } + + private enum CodingKeys: String, CodingKey { + case verifiedEmailAddresses = "VerifiedEmailAddresses" + } + } + + public struct ReceiptRule: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TlsPolicy", required: false, type: .enum), + AWSShapeMember(label: "ScanEnabled", required: false, type: .boolean), + AWSShapeMember(label: "Actions", required: false, type: .list), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Recipients", required: false, type: .list) + ] + /// Specifies whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security (TLS). If this parameter is set to Require, Amazon SES will bounce emails that are not received over TLS. The default is Optional. + public let tlsPolicy: TlsPolicy? + /// If true, then messages that this receipt rule applies to are scanned for spam and viruses. The default value is false. + public let scanEnabled: Bool? + /// An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule. + public let actions: [ReceiptAction]? + /// If true, the receipt rule is active. The default value is false. + public let enabled: Bool? + /// The name of the receipt rule. The name must: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-). Start and end with a letter or number. Contain less than 64 characters. + public let name: String + /// The recipient domains and email addresses that the receipt rule applies to. If this field is not specified, this rule will match all recipients under all verified domains. + public let recipients: [String]? + + public init(tlsPolicy: TlsPolicy? = nil, scanEnabled: Bool? = nil, actions: [ReceiptAction]? = nil, enabled: Bool? = nil, name: String, recipients: [String]? = nil) { + self.tlsPolicy = tlsPolicy + self.scanEnabled = scanEnabled + self.actions = actions + self.enabled = enabled + self.name = name + self.recipients = recipients + } + + private enum CodingKeys: String, CodingKey { + case tlsPolicy = "TlsPolicy" + case scanEnabled = "ScanEnabled" + case actions = "Actions" + case enabled = "Enabled" + case name = "Name" + case recipients = "Recipients" + } + } + public struct SendEmailRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationSetName", required: false, type: .string), AWSShapeMember(label: "Destination", required: true, type: .structure), AWSShapeMember(label: "Message", required: true, type: .structure), @@ -2117,15 +2813,15 @@ extension Email { public let message: Message /// The reply-to email address(es) for the message. If the recipient replies to the message, each reply-to address will receive the reply. public let replyToAddresses: [String]? - /// This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to send for the email address specified in the Source parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to send from user@example.com, then you would specify the SourceArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the Source to be user@example.com. For more information about sending authorization, see the Amazon SES Developer Guide. + /// This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to send for the email address specified in the Source parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to send from user@example.com, then you would specify the SourceArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the Source to be user@example.com. For more information about sending authorization, see the Amazon SES Developer Guide. public let sourceArn: String? /// A list of tags, in the form of name/value pairs, to apply to an email that you send using SendEmail. Tags correspond to characteristics of the email that you define, so that you can publish email sending events. public let tags: [MessageTag]? - /// This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the ReturnPath parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the ReturnPathArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the ReturnPath to be feedback@example.com. For more information about sending authorization, see the Amazon SES Developer Guide. + /// This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the ReturnPath parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the ReturnPathArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the ReturnPath to be feedback@example.com. For more information about sending authorization, see the Amazon SES Developer Guide. public let returnPathArn: String? /// The email address that is sending the email. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. For information about verifying identities, see the Amazon SES Developer Guide. If you are sending on behalf of another user and have been permitted to do so by a sending authorization policy, then you must also specify the SourceArn parameter. For more information about sending authorization, see the Amazon SES Developer Guide. In all cases, the email address must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047. public let source: String - /// The email address to which bounces and complaints are to be forwarded when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the ReturnPath parameter. The ReturnPath parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. + /// The email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the ReturnPath parameter. The ReturnPath parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. public let returnPath: String? public init(configurationSetName: String? = nil, destination: Destination, message: Message, replyToAddresses: [String]? = nil, sourceArn: String? = nil, tags: [MessageTag]? = nil, returnPathArn: String? = nil, source: String, returnPath: String? = nil) { @@ -2153,65 +2849,24 @@ extension Email { } } - public struct ListVerifiedEmailAddressesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VerifiedEmailAddresses", required: false, type: .list) - ] - /// A list of email addresses that have been verified. - public let verifiedEmailAddresses: [String]? - - public init(verifiedEmailAddresses: [String]? = nil) { - self.verifiedEmailAddresses = verifiedEmailAddresses - } - - private enum CodingKeys: String, CodingKey { - case verifiedEmailAddresses = "VerifiedEmailAddresses" - } - } - - public struct ReceiptRule: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TlsPolicy", required: false, type: .enum), - AWSShapeMember(label: "ScanEnabled", required: false, type: .boolean), - AWSShapeMember(label: "Actions", required: false, type: .list), - AWSShapeMember(label: "Enabled", required: false, type: .boolean), - AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "Recipients", required: false, type: .list) + public struct CreateTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Template", required: true, type: .structure) ] - /// Specifies whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security (TLS). If this parameter is set to Require, Amazon SES will bounce emails that are not received over TLS. The default is Optional. - public let tlsPolicy: TlsPolicy? - /// If true, then messages to which this receipt rule applies are scanned for spam and viruses. The default value is false. - public let scanEnabled: Bool? - /// An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule. - public let actions: [ReceiptAction]? - /// If true, the receipt rule is active. The default value is false. - public let enabled: Bool? - /// The name of the receipt rule. The name must: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-). Start and end with a letter or number. Contain less than 64 characters. - public let name: String - /// The recipient domains and email addresses to which the receipt rule applies. If this field is not specified, this rule will match all recipients under all verified domains. - public let recipients: [String]? + /// The content of the email, composed of a subject line, an HTML part, and a text-only part. + public let template: Template - public init(tlsPolicy: TlsPolicy? = nil, scanEnabled: Bool? = nil, actions: [ReceiptAction]? = nil, enabled: Bool? = nil, name: String, recipients: [String]? = nil) { - self.tlsPolicy = tlsPolicy - self.scanEnabled = scanEnabled - self.actions = actions - self.enabled = enabled - self.name = name - self.recipients = recipients + public init(template: Template) { + self.template = template } private enum CodingKeys: String, CodingKey { - case tlsPolicy = "TlsPolicy" - case scanEnabled = "ScanEnabled" - case actions = "Actions" - case enabled = "Enabled" - case name = "Name" - case recipients = "Recipients" + case template = "Template" } } public struct ReorderReceiptRuleSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleSetName", required: true, type: .string), AWSShapeMember(label: "RuleNames", required: true, type: .list) ] @@ -2231,8 +2886,12 @@ extension Email { } } + public struct UpdateTemplateResponse: AWSShape { + + } + public struct GetIdentityPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyNames", required: true, type: .list), AWSShapeMember(label: "Identity", required: true, type: .string) ] @@ -2252,8 +2911,24 @@ extension Email { } } + public struct DeleteConfigurationSetTrackingOptionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConfigurationSetName", required: true, type: .string) + ] + /// The name of the configuration set from which you want to delete the tracking options. + public let configurationSetName: String + + public init(configurationSetName: String) { + self.configurationSetName = configurationSetName + } + + private enum CodingKeys: String, CodingKey { + case configurationSetName = "ConfigurationSetName" + } + } + public struct RecipientDsnFields: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: true, type: .string), AWSShapeMember(label: "ExtensionFields", required: false, type: .list), AWSShapeMember(label: "FinalRecipient", required: false, type: .string), @@ -2266,7 +2941,7 @@ extension Email { public let status: String /// Additional X-headers to include in the DSN. public let extensionFields: [ExtensionField]? - /// The email address to which the message was ultimately delivered. This corresponds to the Final-Recipient in the DSN. If not specified, FinalRecipient will be set to the Recipient specified in the BouncedRecipientInfo structure. Either FinalRecipient or the recipient in BouncedRecipientInfo must be a recipient of the original bounced message. Do not prepend the FinalRecipient email address with rfc 822;, as described in RFC 3798. + /// The email address that the message was ultimately delivered to. This corresponds to the Final-Recipient in the DSN. If not specified, FinalRecipient will be set to the Recipient specified in the BouncedRecipientInfo structure. Either FinalRecipient or the recipient in BouncedRecipientInfo must be a recipient of the original bounced message. Do not prepend the FinalRecipient email address with rfc 822;, as described in RFC 3798. public let finalRecipient: String? /// The action performed by the reporting mail transfer agent (MTA) as a result of its attempt to deliver the message to the recipient address. This is required by RFC 3464. public let action: DsnAction @@ -2299,7 +2974,7 @@ extension Email { } public struct ReceiptIpFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: true, type: .enum), AWSShapeMember(label: "Cidr", required: true, type: .string) ] @@ -2319,12 +2994,24 @@ extension Email { } } - public struct CreateReceiptRuleSetResponse: AWSShape { + public struct VerifyDomainDkimResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DkimTokens", required: true, type: .list) + ] + /// A set of character strings that represent the domain's identity. If the identity is an email address, the tokens represent the domain of that address. Using these tokens, you will need to create DNS CNAME records that point to DKIM public keys hosted by Amazon SES. Amazon Web Services will eventually detect that you have updated your DNS records; this detection process may take up to 72 hours. Upon successful detection, Amazon SES will be able to DKIM-sign emails originating from that domain. For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide. + public let dkimTokens: [String] + + public init(dkimTokens: [String]) { + self.dkimTokens = dkimTokens + } + private enum CodingKeys: String, CodingKey { + case dkimTokens = "DkimTokens" + } } public struct SendDataPoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryAttempts", required: false, type: .long), AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), AWSShapeMember(label: "Rejects", required: false, type: .long), @@ -2360,7 +3047,7 @@ extension Email { } public struct ListConfigurationSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationSets", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2380,20 +3067,8 @@ extension Email { } } - public struct VerifyDomainDkimResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DkimTokens", required: true, type: .list) - ] - /// A set of character strings that represent the domain's identity. If the identity is an email address, the tokens represent the domain of that address. Using these tokens, you will need to create DNS CNAME records that point to DKIM public keys hosted by Amazon SES. Amazon Web Services will eventually detect that you have updated your DNS records; this detection process may take up to 72 hours. Upon successful detection, Amazon SES will be able to DKIM-sign emails originating from that domain. For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide. - public let dkimTokens: [String] - - public init(dkimTokens: [String]) { - self.dkimTokens = dkimTokens - } + public struct CreateReceiptRuleSetResponse: AWSShape { - private enum CodingKeys: String, CodingKey { - case dkimTokens = "DkimTokens" - } } public struct DeleteIdentityResponse: AWSShape { diff --git a/Sources/AWSSDKSwift/Services/entitlement.marketplace/Entitlementmarketplace_Shapes.swift b/Sources/AWSSDKSwift/Services/entitlement.marketplace/Entitlementmarketplace_Shapes.swift index f686f8874c5..6f120dac91a 100644 --- a/Sources/AWSSDKSwift/Services/entitlement.marketplace/Entitlementmarketplace_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/entitlement.marketplace/Entitlementmarketplace_Shapes.swift @@ -12,7 +12,7 @@ extension Entitlementmarketplace { } public struct EntitlementValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IntegerValue", required: false, type: .integer), AWSShapeMember(label: "StringValue", required: false, type: .string), AWSShapeMember(label: "DoubleValue", required: false, type: .double), @@ -43,7 +43,7 @@ extension Entitlementmarketplace { } public struct GetEntitlementsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Entitlements", required: false, type: .list) ] @@ -64,7 +64,7 @@ extension Entitlementmarketplace { } public struct Entitlement: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomerIdentifier", required: false, type: .string), AWSShapeMember(label: "Dimension", required: false, type: .string), AWSShapeMember(label: "Value", required: false, type: .structure), @@ -100,7 +100,7 @@ extension Entitlementmarketplace { } public struct GetEntitlementsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filter", required: false, type: .map), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ProductCode", required: true, type: .string), diff --git a/Sources/AWSSDKSwift/Services/es/Es_API.swift b/Sources/AWSSDKSwift/Services/es/Es_API.swift index 9bd0f05e1d2..173233d289e 100644 --- a/Sources/AWSSDKSwift/Services/es/Es_API.swift +++ b/Sources/AWSSDKSwift/Services/es/Es_API.swift @@ -69,6 +69,11 @@ public struct Es { return try client.send(operation: "ListElasticsearchVersions", path: "/2015-01-01/es/versions", httpMethod: "GET", input: input) } + /// Deletes the service-linked role that Elasticsearch Service uses to manage and maintain VPC domains. Role deletion will fail if any existing VPC domains use the role. You must delete any such Elasticsearch domains before deleting the role. See Deleting Elasticsearch Service Role in VPC Endpoints for Amazon Elasticsearch Service Domains. + public func deleteElasticsearchServiceRole() throws { + _ = try client.send(operation: "DeleteElasticsearchServiceRole", path: "/2015-01-01/es/role", httpMethod: "DELETE") + } + /// Removes the specified set of tags from the specified Elasticsearch domain. public func removeTags(_ input: RemoveTagsRequest) throws { _ = try client.send(operation: "RemoveTags", path: "/2015-01-01/tags-removal", httpMethod: "POST", input: input) diff --git a/Sources/AWSSDKSwift/Services/es/Es_Shapes.swift b/Sources/AWSSDKSwift/Services/es/Es_Shapes.swift index 2267b302d49..2c8b3e861a7 100644 --- a/Sources/AWSSDKSwift/Services/es/Es_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/es/Es_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Es { public struct InstanceCountLimits: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MinimumInstanceCount", required: false, type: .integer), AWSShapeMember(label: "MaximumInstanceCount", required: false, type: .integer) ] @@ -24,8 +24,29 @@ extension Es { } } + public struct VPCOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIds", required: false, type: .list), + AWSShapeMember(label: "SecurityGroupIds", required: false, type: .list) + ] + /// Specifies the subnets for VPC endpoint. + public let subnetIds: [String]? + /// Specifies the security groups for VPC endpoint. + public let securityGroupIds: [String]? + + public init(subnetIds: [String]? = nil, securityGroupIds: [String]? = nil) { + self.subnetIds = subnetIds + self.securityGroupIds = securityGroupIds + } + + private enum CodingKeys: String, CodingKey { + case subnetIds = "SubnetIds" + case securityGroupIds = "SecurityGroupIds" + } + } + public struct DescribeElasticsearchDomainsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainNames", required: true, type: .list) ] /// The Elasticsearch domains for which you want information. @@ -41,7 +62,7 @@ extension Es { } public struct DescribeElasticsearchDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", location: .uri(locationName: "DomainName"), required: true, type: .string) ] /// The name of the Elasticsearch domain for which you want information. @@ -57,7 +78,7 @@ extension Es { } public struct AddTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ARN", required: true, type: .string), AWSShapeMember(label: "TagList", required: true, type: .list) ] @@ -77,117 +98,8 @@ extension Es { } } - public struct ListElasticsearchInstanceTypesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), - AWSShapeMember(label: "DomainName", location: .querystring(locationName: "domainName"), required: false, type: .string), - AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "ElasticsearchVersion", location: .uri(locationName: "ElasticsearchVersion"), required: true, type: .string) - ] - /// Set this value to limit the number of results returned. Value provided must be greater than 30 else it wont be honored. - public let maxResults: Int32? - /// DomainName represents the name of the Domain that we are trying to modify. This should be present only if we are querying for list of available Elasticsearch instance types when modifying existing domain. - public let domainName: String? - /// NextToken should be sent in case if earlier API call produced result containing NextToken. It is used for pagination. - public let nextToken: String? - /// Version of Elasticsearch for which list of supported elasticsearch instance types are needed. - public let elasticsearchVersion: String - - public init(maxResults: Int32? = nil, domainName: String? = nil, nextToken: String? = nil, elasticsearchVersion: String) { - self.maxResults = maxResults - self.domainName = domainName - self.nextToken = nextToken - self.elasticsearchVersion = elasticsearchVersion - } - - private enum CodingKeys: String, CodingKey { - case maxResults = "maxResults" - case domainName = "domainName" - case nextToken = "nextToken" - case elasticsearchVersion = "ElasticsearchVersion" - } - } - - public struct UpdateElasticsearchDomainConfigRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SnapshotOptions", required: false, type: .structure), - AWSShapeMember(label: "ElasticsearchClusterConfig", required: false, type: .structure), - AWSShapeMember(label: "AdvancedOptions", required: false, type: .map), - AWSShapeMember(label: "AccessPolicies", required: false, type: .string), - AWSShapeMember(label: "EBSOptions", required: false, type: .structure), - AWSShapeMember(label: "DomainName", location: .uri(locationName: "DomainName"), required: true, type: .string) - ] - /// Option to set the time, in UTC format, for the daily automated snapshot. Default value is 0 hours. - public let snapshotOptions: SnapshotOptions? - /// The type and number of instances to instantiate for the domain cluster. - public let elasticsearchClusterConfig: ElasticsearchClusterConfig? - /// Modifies the advanced option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Configuration Advanced Options for more information. - public let advancedOptions: [String: String]? - /// IAM access policy as a JSON-formatted string. - public let accessPolicies: String? - /// Specify the type and size of the EBS volume that you want to use. - public let eBSOptions: EBSOptions? - /// The name of the Elasticsearch domain that you are updating. - public let domainName: String - - public init(snapshotOptions: SnapshotOptions? = nil, elasticsearchClusterConfig: ElasticsearchClusterConfig? = nil, advancedOptions: [String: String]? = nil, accessPolicies: String? = nil, eBSOptions: EBSOptions? = nil, domainName: String) { - self.snapshotOptions = snapshotOptions - self.elasticsearchClusterConfig = elasticsearchClusterConfig - self.advancedOptions = advancedOptions - self.accessPolicies = accessPolicies - self.eBSOptions = eBSOptions - self.domainName = domainName - } - - private enum CodingKeys: String, CodingKey { - case snapshotOptions = "SnapshotOptions" - case elasticsearchClusterConfig = "ElasticsearchClusterConfig" - case advancedOptions = "AdvancedOptions" - case accessPolicies = "AccessPolicies" - case eBSOptions = "EBSOptions" - case domainName = "DomainName" - } - } - - public struct CreateElasticsearchDomainResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DomainStatus", required: false, type: .structure) - ] - /// The status of the newly created Elasticsearch domain. - public let domainStatus: ElasticsearchDomainStatus? - - public init(domainStatus: ElasticsearchDomainStatus? = nil) { - self.domainStatus = domainStatus - } - - private enum CodingKeys: String, CodingKey { - case domainStatus = "DomainStatus" - } - } - - public struct ElasticsearchClusterConfigStatus: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Options", required: true, type: .structure), - AWSShapeMember(label: "Status", required: true, type: .structure) - ] - /// Specifies the cluster configuration for the specified Elasticsearch domain. - public let options: ElasticsearchClusterConfig - /// Specifies the status of the configuration for the specified Elasticsearch domain. - public let status: OptionStatus - - public init(options: ElasticsearchClusterConfig, status: OptionStatus) { - self.options = options - self.status = status - } - - private enum CodingKeys: String, CodingKey { - case options = "Options" - case status = "Status" - } - } - public struct ListTagsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagList", required: false, type: .list) ] /// List of Tag for the requested Elasticsearch domain. @@ -202,34 +114,8 @@ extension Es { } } - public struct DescribeElasticsearchInstanceTypeLimitsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceType", location: .uri(locationName: "InstanceType"), required: true, type: .enum), - AWSShapeMember(label: "DomainName", location: .querystring(locationName: "domainName"), required: false, type: .string), - AWSShapeMember(label: "ElasticsearchVersion", location: .uri(locationName: "ElasticsearchVersion"), required: true, type: .string) - ] - /// The instance type for an Elasticsearch cluster for which Elasticsearch Limits are needed. - public let instanceType: ESPartitionInstanceType - /// DomainName represents the name of the Domain that we are trying to modify. This should be present only if we are querying for Elasticsearch Limits for existing domain. - public let domainName: String? - /// Version of Elasticsearch for which Limits are needed. - public let elasticsearchVersion: String - - public init(instanceType: ESPartitionInstanceType, domainName: String? = nil, elasticsearchVersion: String) { - self.instanceType = instanceType - self.domainName = domainName - self.elasticsearchVersion = elasticsearchVersion - } - - private enum CodingKeys: String, CodingKey { - case instanceType = "InstanceType" - case domainName = "domainName" - case elasticsearchVersion = "ElasticsearchVersion" - } - } - public struct RemoveTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ARN", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -250,7 +136,7 @@ extension Es { } public struct OptionStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UpdateVersion", required: false, type: .integer), AWSShapeMember(label: "PendingDeletion", required: false, type: .boolean), AWSShapeMember(label: "CreationDate", required: true, type: .timestamp), @@ -286,7 +172,7 @@ extension Es { } public struct DescribeElasticsearchInstanceTypeLimitsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LimitsByRole", required: false, type: .map) ] public let limitsByRole: [String: Limits]? @@ -300,62 +186,8 @@ extension Es { } } - public struct DescribeElasticsearchDomainResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DomainStatus", required: true, type: .structure) - ] - /// The current status of the Elasticsearch domain. - public let domainStatus: ElasticsearchDomainStatus - - public init(domainStatus: ElasticsearchDomainStatus) { - self.domainStatus = domainStatus - } - - private enum CodingKeys: String, CodingKey { - case domainStatus = "DomainStatus" - } - } - - public enum ESPartitionInstanceType: String, CustomStringConvertible, Codable { - case m3MediumElasticsearch = "m3.medium.elasticsearch" - case m3LargeElasticsearch = "m3.large.elasticsearch" - case m3XlargeElasticsearch = "m3.xlarge.elasticsearch" - case m32XlargeElasticsearch = "m3.2xlarge.elasticsearch" - case m4LargeElasticsearch = "m4.large.elasticsearch" - case m4XlargeElasticsearch = "m4.xlarge.elasticsearch" - case m42XlargeElasticsearch = "m4.2xlarge.elasticsearch" - case m44XlargeElasticsearch = "m4.4xlarge.elasticsearch" - case m410XlargeElasticsearch = "m4.10xlarge.elasticsearch" - case t2MicroElasticsearch = "t2.micro.elasticsearch" - case t2SmallElasticsearch = "t2.small.elasticsearch" - case t2MediumElasticsearch = "t2.medium.elasticsearch" - case r3LargeElasticsearch = "r3.large.elasticsearch" - case r3XlargeElasticsearch = "r3.xlarge.elasticsearch" - case r32XlargeElasticsearch = "r3.2xlarge.elasticsearch" - case r34XlargeElasticsearch = "r3.4xlarge.elasticsearch" - case r38XlargeElasticsearch = "r3.8xlarge.elasticsearch" - case i2XlargeElasticsearch = "i2.xlarge.elasticsearch" - case i22XlargeElasticsearch = "i2.2xlarge.elasticsearch" - case d2XlargeElasticsearch = "d2.xlarge.elasticsearch" - case d22XlargeElasticsearch = "d2.2xlarge.elasticsearch" - case d24XlargeElasticsearch = "d2.4xlarge.elasticsearch" - case d28XlargeElasticsearch = "d2.8xlarge.elasticsearch" - case c4LargeElasticsearch = "c4.large.elasticsearch" - case c4XlargeElasticsearch = "c4.xlarge.elasticsearch" - case c42XlargeElasticsearch = "c4.2xlarge.elasticsearch" - case c44XlargeElasticsearch = "c4.4xlarge.elasticsearch" - case c48XlargeElasticsearch = "c4.8xlarge.elasticsearch" - case r4LargeElasticsearch = "r4.large.elasticsearch" - case r4XlargeElasticsearch = "r4.xlarge.elasticsearch" - case r42XlargeElasticsearch = "r4.2xlarge.elasticsearch" - case r44XlargeElasticsearch = "r4.4xlarge.elasticsearch" - case r48XlargeElasticsearch = "r4.8xlarge.elasticsearch" - case r416XlargeElasticsearch = "r4.16xlarge.elasticsearch" - public var description: String { return self.rawValue } - } - public struct AdditionalLimit: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LimitName", required: false, type: .string), AWSShapeMember(label: "LimitValues", required: false, type: .list) ] @@ -376,7 +208,7 @@ extension Es { } public struct ListDomainNamesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainNames", required: false, type: .list) ] /// List of Elasticsearch domain names. @@ -391,61 +223,55 @@ extension Es { } } - public struct SnapshotOptions: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AutomatedSnapshotStartHour", required: false, type: .integer) + public struct LogPublishingOption: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CloudWatchLogsLogGroupArn", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean) ] - /// Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is 0 hours. - public let automatedSnapshotStartHour: Int32? + public let cloudWatchLogsLogGroupArn: String? + /// Specifies whether given log publishing option is enabled or not. + public let enabled: Bool? - public init(automatedSnapshotStartHour: Int32? = nil) { - self.automatedSnapshotStartHour = automatedSnapshotStartHour + public init(cloudWatchLogsLogGroupArn: String? = nil, enabled: Bool? = nil) { + self.cloudWatchLogsLogGroupArn = cloudWatchLogsLogGroupArn + self.enabled = enabled } private enum CodingKeys: String, CodingKey { - case automatedSnapshotStartHour = "AutomatedSnapshotStartHour" + case cloudWatchLogsLogGroupArn = "CloudWatchLogsLogGroupArn" + case enabled = "Enabled" } } - public struct EBSOptions: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VolumeSize", required: false, type: .integer), - AWSShapeMember(label: "VolumeType", required: false, type: .enum), - AWSShapeMember(label: "Iops", required: false, type: .integer), - AWSShapeMember(label: "EBSEnabled", required: false, type: .boolean) + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: true, type: .string), + AWSShapeMember(label: "Key", required: true, type: .string) ] - /// Integer to specify the size of an EBS volume. - public let volumeSize: Int32? - /// Specifies the volume type for EBS-based storage. - public let volumeType: VolumeType? - /// Specifies the IOPD for a Provisioned IOPS EBS volume (SSD). - public let iops: Int32? - /// Specifies whether EBS-based storage is enabled. - public let eBSEnabled: Bool? + /// Specifies the TagValue, the value assigned to the corresponding tag key. Tag values can be null and do not have to be unique in a tag set. For example, you can have a key value pair in a tag set of project : Trinity and cost-center : Trinity + public let value: String + /// Specifies the TagKey, the name of the tag. Tag keys must be unique for the Elasticsearch domain to which they are attached. + public let key: String - public init(volumeSize: Int32? = nil, volumeType: VolumeType? = nil, iops: Int32? = nil, eBSEnabled: Bool? = nil) { - self.volumeSize = volumeSize - self.volumeType = volumeType - self.iops = iops - self.eBSEnabled = eBSEnabled + public init(value: String, key: String) { + self.value = value + self.key = key } private enum CodingKeys: String, CodingKey { - case volumeSize = "VolumeSize" - case volumeType = "VolumeType" - case iops = "Iops" - case eBSEnabled = "EBSEnabled" + case value = "Value" + case key = "Key" } } - public struct DescribeElasticsearchDomainConfigRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DomainName", location: .uri(locationName: "DomainName"), required: true, type: .string) + public struct DomainInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainName", required: false, type: .string) ] - /// The Elasticsearch domain that you want to get information about. - public let domainName: String + /// Specifies the DomainName. + public let domainName: String? - public init(domainName: String) { + public init(domainName: String? = nil) { self.domainName = domainName } @@ -454,155 +280,14 @@ extension Es { } } - public struct DescribeElasticsearchDomainConfigResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DomainConfig", required: true, type: .structure) - ] - /// The configuration information of the domain requested in the DescribeElasticsearchDomainConfig request. - public let domainConfig: ElasticsearchDomainConfig - - public init(domainConfig: ElasticsearchDomainConfig) { - self.domainConfig = domainConfig - } - - private enum CodingKeys: String, CodingKey { - case domainConfig = "DomainConfig" - } - } - - public struct ListElasticsearchVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) - ] - public let nextToken: String? - /// Set this value to limit the number of results returned. Value provided must be greater than 10 else it wont be honored. - public let maxResults: Int32? - - public init(nextToken: String? = nil, maxResults: Int32? = nil) { - self.nextToken = nextToken - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "nextToken" - case maxResults = "maxResults" - } - } - - public struct ListElasticsearchInstanceTypesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ElasticsearchInstanceTypes", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - /// List of instance types supported by Amazon Elasticsearch service for given ElasticsearchVersion - public let elasticsearchInstanceTypes: [ESPartitionInstanceType]? - /// In case if there are more results available NextToken would be present, make further request to the same API with received NextToken to paginate remaining results. - public let nextToken: String? - - public init(elasticsearchInstanceTypes: [ESPartitionInstanceType]? = nil, nextToken: String? = nil) { - self.elasticsearchInstanceTypes = elasticsearchInstanceTypes - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case elasticsearchInstanceTypes = "ElasticsearchInstanceTypes" - case nextToken = "NextToken" - } - } - - public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: true, type: .string), - AWSShapeMember(label: "Key", required: true, type: .string) - ] - /// Specifies the TagValue, the value assigned to the corresponding tag key. Tag values can be null and do not have to be unique in a tag set. For example, you can have a key value pair in a tag set of project : Trinity and cost-center : Trinity - public let value: String - /// Specifies the TagKey, the name of the tag. Tag keys must be unique for the Elasticsearch domain to which they are attached. - public let key: String - - public init(value: String, key: String) { - self.value = value - self.key = key - } - - private enum CodingKeys: String, CodingKey { - case value = "Value" - case key = "Key" - } - } - - public struct SnapshotOptionsStatus: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Options", required: true, type: .structure), - AWSShapeMember(label: "Status", required: true, type: .structure) - ] - /// Specifies the daily snapshot options specified for the Elasticsearch domain. - public let options: SnapshotOptions - /// Specifies the status of a daily automated snapshot. - public let status: OptionStatus - - public init(options: SnapshotOptions, status: OptionStatus) { - self.options = options - self.status = status - } - - private enum CodingKeys: String, CodingKey { - case options = "Options" - case status = "Status" - } - } - - public struct DomainInfo: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DomainName", required: false, type: .string) - ] - /// Specifies the DomainName. - public let domainName: String? - - public init(domainName: String? = nil) { - self.domainName = domainName - } - - private enum CodingKeys: String, CodingKey { - case domainName = "DomainName" - } - } - - public struct DescribeElasticsearchDomainsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DomainStatusList", required: true, type: .list) - ] - /// The status of the domains requested in the DescribeElasticsearchDomains request. - public let domainStatusList: [ElasticsearchDomainStatus] - - public init(domainStatusList: [ElasticsearchDomainStatus]) { - self.domainStatusList = domainStatusList - } - - private enum CodingKeys: String, CodingKey { - case domainStatusList = "DomainStatusList" - } - } - - public struct UpdateElasticsearchDomainConfigResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DomainConfig", required: true, type: .structure) - ] - /// The status of the updated Elasticsearch domain. - public let domainConfig: ElasticsearchDomainConfig - - public init(domainConfig: ElasticsearchDomainConfig) { - self.domainConfig = domainConfig - } - - private enum CodingKeys: String, CodingKey { - case domainConfig = "DomainConfig" - } + public enum LogType: String, CustomStringConvertible, Codable { + case indexSlowLogs = "INDEX_SLOW_LOGS" + case searchSlowLogs = "SEARCH_SLOW_LOGS" + public var description: String { return self.rawValue } } public struct StorageTypeLimit: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LimitName", required: false, type: .string), AWSShapeMember(label: "LimitValues", required: false, type: .list) ] @@ -623,7 +308,7 @@ extension Es { } public struct ElasticsearchVersionStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .string), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -644,7 +329,7 @@ extension Es { } public struct ListElasticsearchVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticsearchVersions", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -663,7 +348,7 @@ extension Es { } public struct InstanceLimits: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceCountLimits", required: false, type: .structure) ] public let instanceCountLimits: InstanceCountLimits? @@ -677,24 +362,8 @@ extension Es { } } - public struct DeleteElasticsearchDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DomainName", location: .uri(locationName: "DomainName"), required: true, type: .string) - ] - /// The name of the Elasticsearch domain that you want to permanently delete. - public let domainName: String - - public init(domainName: String) { - self.domainName = domainName - } - - private enum CodingKeys: String, CodingKey { - case domainName = "DomainName" - } - } - public struct AdvancedOptionsStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .map), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -714,144 +383,90 @@ extension Es { } } - public struct Limits: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AdditionalLimits", required: false, type: .list), - AWSShapeMember(label: "StorageTypes", required: false, type: .list), - AWSShapeMember(label: "InstanceLimits", required: false, type: .structure) + public struct VPCDerivedInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIds", required: false, type: .list), + AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), + AWSShapeMember(label: "VPCId", required: false, type: .string), + AWSShapeMember(label: "SecurityGroupIds", required: false, type: .list) ] - /// List of additional limits that are specific to a given InstanceType and for each of it's InstanceRole . - public let additionalLimits: [AdditionalLimit]? - /// StorageType represents the list of storage related types and attributes that are available for given InstanceType. - public let storageTypes: [StorageType]? - public let instanceLimits: InstanceLimits? - - public init(additionalLimits: [AdditionalLimit]? = nil, storageTypes: [StorageType]? = nil, instanceLimits: InstanceLimits? = nil) { - self.additionalLimits = additionalLimits - self.storageTypes = storageTypes - self.instanceLimits = instanceLimits + /// Specifies the subnets for VPC endpoint. + public let subnetIds: [String]? + /// The availability zones for the Elasticsearch domain. Exists only if the domain was created with VPCOptions. + public let availabilityZones: [String]? + /// The VPC Id for the Elasticsearch domain. Exists only if the domain was created with VPCOptions. + public let vPCId: String? + /// Specifies the security groups for VPC endpoint. + public let securityGroupIds: [String]? + + public init(subnetIds: [String]? = nil, availabilityZones: [String]? = nil, vPCId: String? = nil, securityGroupIds: [String]? = nil) { + self.subnetIds = subnetIds + self.availabilityZones = availabilityZones + self.vPCId = vPCId + self.securityGroupIds = securityGroupIds } private enum CodingKeys: String, CodingKey { - case additionalLimits = "AdditionalLimits" - case storageTypes = "StorageTypes" - case instanceLimits = "InstanceLimits" + case subnetIds = "SubnetIds" + case availabilityZones = "AvailabilityZones" + case vPCId = "VPCId" + case securityGroupIds = "SecurityGroupIds" } } public struct ElasticsearchDomainConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotOptions", required: false, type: .structure), AWSShapeMember(label: "ElasticsearchClusterConfig", required: false, type: .structure), - AWSShapeMember(label: "AccessPolicies", required: false, type: .structure), - AWSShapeMember(label: "AdvancedOptions", required: false, type: .structure), AWSShapeMember(label: "EBSOptions", required: false, type: .structure), - AWSShapeMember(label: "ElasticsearchVersion", required: false, type: .structure) + AWSShapeMember(label: "VPCOptions", required: false, type: .structure), + AWSShapeMember(label: "LogPublishingOptions", required: false, type: .structure), + AWSShapeMember(label: "ElasticsearchVersion", required: false, type: .structure), + AWSShapeMember(label: "AccessPolicies", required: false, type: .structure), + AWSShapeMember(label: "AdvancedOptions", required: false, type: .structure) ] /// Specifies the SnapshotOptions for the Elasticsearch domain. public let snapshotOptions: SnapshotOptionsStatus? /// Specifies the ElasticsearchClusterConfig for the Elasticsearch domain. public let elasticsearchClusterConfig: ElasticsearchClusterConfigStatus? - /// IAM access policy as a JSON-formatted string. - public let accessPolicies: AccessPoliciesStatus? - /// Specifies the AdvancedOptions for the domain. See Configuring Advanced Options for more information. - public let advancedOptions: AdvancedOptionsStatus? /// Specifies the EBSOptions for the Elasticsearch domain. public let eBSOptions: EBSOptionsStatus? + /// The VPCOptions for the specified domain. For more information, see VPC Endpoints for Amazon Elasticsearch Service Domains. + public let vPCOptions: VPCDerivedInfoStatus? + /// Log publishing options for the given domain. + public let logPublishingOptions: LogPublishingOptionsStatus? /// String of format X.Y to specify version for the Elasticsearch domain. public let elasticsearchVersion: ElasticsearchVersionStatus? + /// IAM access policy as a JSON-formatted string. + public let accessPolicies: AccessPoliciesStatus? + /// Specifies the AdvancedOptions for the domain. See Configuring Advanced Options for more information. + public let advancedOptions: AdvancedOptionsStatus? - public init(snapshotOptions: SnapshotOptionsStatus? = nil, elasticsearchClusterConfig: ElasticsearchClusterConfigStatus? = nil, accessPolicies: AccessPoliciesStatus? = nil, advancedOptions: AdvancedOptionsStatus? = nil, eBSOptions: EBSOptionsStatus? = nil, elasticsearchVersion: ElasticsearchVersionStatus? = nil) { - self.snapshotOptions = snapshotOptions - self.elasticsearchClusterConfig = elasticsearchClusterConfig - self.accessPolicies = accessPolicies - self.advancedOptions = advancedOptions - self.eBSOptions = eBSOptions - self.elasticsearchVersion = elasticsearchVersion - } - - private enum CodingKeys: String, CodingKey { - case snapshotOptions = "SnapshotOptions" - case elasticsearchClusterConfig = "ElasticsearchClusterConfig" - case accessPolicies = "AccessPolicies" - case advancedOptions = "AdvancedOptions" - case eBSOptions = "EBSOptions" - case elasticsearchVersion = "ElasticsearchVersion" - } - } - - public struct CreateElasticsearchDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SnapshotOptions", required: false, type: .structure), - AWSShapeMember(label: "ElasticsearchClusterConfig", required: false, type: .structure), - AWSShapeMember(label: "EBSOptions", required: false, type: .structure), - AWSShapeMember(label: "ElasticsearchVersion", required: false, type: .string), - AWSShapeMember(label: "AccessPolicies", required: false, type: .string), - AWSShapeMember(label: "AdvancedOptions", required: false, type: .map), - AWSShapeMember(label: "DomainName", required: true, type: .string) - ] - /// Option to set time, in UTC format, of the daily automated snapshot. Default value is 0 hours. - public let snapshotOptions: SnapshotOptions? - /// Configuration options for an Elasticsearch domain. Specifies the instance type and number of instances in the domain cluster. - public let elasticsearchClusterConfig: ElasticsearchClusterConfig? - /// Options to enable, disable and specify the type and size of EBS storage volumes. - public let eBSOptions: EBSOptions? - /// String of format X.Y to specify version for the Elasticsearch domain eg. "1.5" or "2.3". For more information, see Creating Elasticsearch Domains in the Amazon Elasticsearch Service Developer Guide. - public let elasticsearchVersion: String? - /// IAM access policy as a JSON-formatted string. - public let accessPolicies: String? - /// Option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Configuration Advanced Options for more information. - public let advancedOptions: [String: String]? - /// The name of the Elasticsearch domain that you are creating. Domain names are unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). - public let domainName: String - - public init(snapshotOptions: SnapshotOptions? = nil, elasticsearchClusterConfig: ElasticsearchClusterConfig? = nil, eBSOptions: EBSOptions? = nil, elasticsearchVersion: String? = nil, accessPolicies: String? = nil, advancedOptions: [String: String]? = nil, domainName: String) { + public init(snapshotOptions: SnapshotOptionsStatus? = nil, elasticsearchClusterConfig: ElasticsearchClusterConfigStatus? = nil, eBSOptions: EBSOptionsStatus? = nil, vPCOptions: VPCDerivedInfoStatus? = nil, logPublishingOptions: LogPublishingOptionsStatus? = nil, elasticsearchVersion: ElasticsearchVersionStatus? = nil, accessPolicies: AccessPoliciesStatus? = nil, advancedOptions: AdvancedOptionsStatus? = nil) { self.snapshotOptions = snapshotOptions self.elasticsearchClusterConfig = elasticsearchClusterConfig self.eBSOptions = eBSOptions + self.vPCOptions = vPCOptions + self.logPublishingOptions = logPublishingOptions self.elasticsearchVersion = elasticsearchVersion self.accessPolicies = accessPolicies self.advancedOptions = advancedOptions - self.domainName = domainName } private enum CodingKeys: String, CodingKey { case snapshotOptions = "SnapshotOptions" case elasticsearchClusterConfig = "ElasticsearchClusterConfig" case eBSOptions = "EBSOptions" + case vPCOptions = "VPCOptions" + case logPublishingOptions = "LogPublishingOptions" case elasticsearchVersion = "ElasticsearchVersion" case accessPolicies = "AccessPolicies" case advancedOptions = "AdvancedOptions" - case domainName = "DomainName" - } - } - - public struct StorageType: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StorageTypeLimits", required: false, type: .list), - AWSShapeMember(label: "StorageSubTypeName", required: false, type: .string), - AWSShapeMember(label: "StorageTypeName", required: false, type: .string) - ] - /// List of limits that are applicable for given storage type. - public let storageTypeLimits: [StorageTypeLimit]? - public let storageSubTypeName: String? - public let storageTypeName: String? - - public init(storageTypeLimits: [StorageTypeLimit]? = nil, storageSubTypeName: String? = nil, storageTypeName: String? = nil) { - self.storageTypeLimits = storageTypeLimits - self.storageSubTypeName = storageSubTypeName - self.storageTypeName = storageTypeName - } - - private enum CodingKeys: String, CodingKey { - case storageTypeLimits = "StorageTypeLimits" - case storageSubTypeName = "StorageSubTypeName" - case storageTypeName = "StorageTypeName" } } public struct DeleteElasticsearchDomainResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainStatus", required: false, type: .structure) ] /// The status of the Elasticsearch domain being deleted. @@ -867,7 +482,7 @@ extension Es { } public struct EBSOptionsStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .structure), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -887,31 +502,8 @@ extension Es { } } - public enum VolumeType: String, CustomStringConvertible, Codable { - case standard = "standard" - case gp2 = "gp2" - case io1 = "io1" - public var description: String { return self.rawValue } - } - - public struct ListTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ARN", location: .querystring(locationName: "arn"), required: true, type: .string) - ] - /// Specify the ARN for the Elasticsearch domain to which the tags are attached that you want to view. - public let arn: String - - public init(arn: String) { - self.arn = arn - } - - private enum CodingKeys: String, CodingKey { - case arn = "arn" - } - } - public struct ElasticsearchClusterConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DedicatedMasterCount", required: false, type: .integer), AWSShapeMember(label: "InstanceCount", required: false, type: .integer), AWSShapeMember(label: "InstanceType", required: false, type: .enum), @@ -951,15 +543,15 @@ extension Es { } } - public enum OptionState: String, CustomStringConvertible, Codable { - case requiresindexdocuments = "RequiresIndexDocuments" - case processing = "Processing" - case active = "Active" + public enum VolumeType: String, CustomStringConvertible, Codable { + case standard = "standard" + case gp2 = "gp2" + case io1 = "io1" public var description: String { return self.rawValue } } public struct AccessPoliciesStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Options", required: true, type: .string), AWSShapeMember(label: "Status", required: true, type: .structure) ] @@ -980,24 +572,31 @@ extension Es { } public struct ElasticsearchDomainStatus: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Processing", required: false, type: .boolean), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainId", required: true, type: .string), + AWSShapeMember(label: "VPCOptions", required: false, type: .structure), AWSShapeMember(label: "ElasticsearchVersion", required: false, type: .string), + AWSShapeMember(label: "Processing", required: false, type: .boolean), AWSShapeMember(label: "Created", required: false, type: .boolean), AWSShapeMember(label: "ARN", required: true, type: .string), AWSShapeMember(label: "EBSOptions", required: false, type: .structure), AWSShapeMember(label: "ElasticsearchClusterConfig", required: true, type: .structure), AWSShapeMember(label: "SnapshotOptions", required: false, type: .structure), + AWSShapeMember(label: "LogPublishingOptions", required: false, type: .map), AWSShapeMember(label: "AccessPolicies", required: false, type: .string), AWSShapeMember(label: "AdvancedOptions", required: false, type: .map), AWSShapeMember(label: "DomainName", required: true, type: .string), AWSShapeMember(label: "Endpoint", required: false, type: .string), - AWSShapeMember(label: "DomainId", required: true, type: .string), - AWSShapeMember(label: "Deleted", required: false, type: .boolean) + AWSShapeMember(label: "Deleted", required: false, type: .boolean), + AWSShapeMember(label: "Endpoints", required: false, type: .map) ] + /// The unique identifier for the specified Elasticsearch domain. + public let domainId: String + /// The VPCOptions for the specified domain. For more information, see VPC Endpoints for Amazon Elasticsearch Service Domains. + public let vPCOptions: VPCDerivedInfo? + public let elasticsearchVersion: String? /// The status of the Elasticsearch domain configuration. True if Amazon Elasticsearch Service is processing configuration changes. False if the configuration is active. public let processing: Bool? - public let elasticsearchVersion: String? /// The domain creation status. True if the creation of an Elasticsearch domain is complete. False if domain creation is still in progress. public let created: Bool? /// The Amazon resource name (ARN) of an Elasticsearch domain. See Identifiers for IAM Entities in Using AWS Identity and Access Management for more information. @@ -1008,6 +607,8 @@ extension Es { public let elasticsearchClusterConfig: ElasticsearchClusterConfig /// Specifies the status of the SnapshotOptions public let snapshotOptions: SnapshotOptions? + /// Log publishing options for the given domain. + public let logPublishingOptions: [LogType: LogPublishingOption]? /// IAM access policy as a JSON-formatted string. public let accessPolicies: String? /// Specifies the status of the AdvancedOptions @@ -1016,42 +617,612 @@ extension Es { public let domainName: String /// The Elasticsearch domain endpoint that you use to submit index and search requests. public let endpoint: String? - /// The unique identifier for the specified Elasticsearch domain. - public let domainId: String /// The domain deletion status. True if a delete request has been received for the domain but resource cleanup is still in progress. False if the domain has not been deleted. Once domain deletion is complete, the status of the domain is no longer returned. public let deleted: Bool? + /// Map containing the Elasticsearch domain endpoints used to submit index and search requests. Example key, value: 'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'. + public let endpoints: [String: String]? - public init(processing: Bool? = nil, elasticsearchVersion: String? = nil, created: Bool? = nil, arn: String, eBSOptions: EBSOptions? = nil, elasticsearchClusterConfig: ElasticsearchClusterConfig, snapshotOptions: SnapshotOptions? = nil, accessPolicies: String? = nil, advancedOptions: [String: String]? = nil, domainName: String, endpoint: String? = nil, domainId: String, deleted: Bool? = nil) { - self.processing = processing + public init(domainId: String, vPCOptions: VPCDerivedInfo? = nil, elasticsearchVersion: String? = nil, processing: Bool? = nil, created: Bool? = nil, arn: String, eBSOptions: EBSOptions? = nil, elasticsearchClusterConfig: ElasticsearchClusterConfig, snapshotOptions: SnapshotOptions? = nil, logPublishingOptions: [LogType: LogPublishingOption]? = nil, accessPolicies: String? = nil, advancedOptions: [String: String]? = nil, domainName: String, endpoint: String? = nil, deleted: Bool? = nil, endpoints: [String: String]? = nil) { + self.domainId = domainId + self.vPCOptions = vPCOptions self.elasticsearchVersion = elasticsearchVersion + self.processing = processing self.created = created self.arn = arn self.eBSOptions = eBSOptions self.elasticsearchClusterConfig = elasticsearchClusterConfig self.snapshotOptions = snapshotOptions + self.logPublishingOptions = logPublishingOptions self.accessPolicies = accessPolicies self.advancedOptions = advancedOptions self.domainName = domainName self.endpoint = endpoint - self.domainId = domainId self.deleted = deleted + self.endpoints = endpoints } private enum CodingKeys: String, CodingKey { - case processing = "Processing" + case domainId = "DomainId" + case vPCOptions = "VPCOptions" case elasticsearchVersion = "ElasticsearchVersion" + case processing = "Processing" case created = "Created" case arn = "ARN" case eBSOptions = "EBSOptions" case elasticsearchClusterConfig = "ElasticsearchClusterConfig" case snapshotOptions = "SnapshotOptions" + case logPublishingOptions = "LogPublishingOptions" case accessPolicies = "AccessPolicies" case advancedOptions = "AdvancedOptions" case domainName = "DomainName" case endpoint = "Endpoint" - case domainId = "DomainId" case deleted = "Deleted" + case endpoints = "Endpoints" + } + } + + public struct ListElasticsearchInstanceTypesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "DomainName", location: .querystring(locationName: "domainName"), required: false, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "ElasticsearchVersion", location: .uri(locationName: "ElasticsearchVersion"), required: true, type: .string) + ] + /// Set this value to limit the number of results returned. Value provided must be greater than 30 else it wont be honored. + public let maxResults: Int32? + /// DomainName represents the name of the Domain that we are trying to modify. This should be present only if we are querying for list of available Elasticsearch instance types when modifying existing domain. + public let domainName: String? + /// NextToken should be sent in case if earlier API call produced result containing NextToken. It is used for pagination. + public let nextToken: String? + /// Version of Elasticsearch for which list of supported elasticsearch instance types are needed. + public let elasticsearchVersion: String + + public init(maxResults: Int32? = nil, domainName: String? = nil, nextToken: String? = nil, elasticsearchVersion: String) { + self.maxResults = maxResults + self.domainName = domainName + self.nextToken = nextToken + self.elasticsearchVersion = elasticsearchVersion + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "maxResults" + case domainName = "domainName" + case nextToken = "nextToken" + case elasticsearchVersion = "ElasticsearchVersion" + } + } + + public struct UpdateElasticsearchDomainConfigRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SnapshotOptions", required: false, type: .structure), + AWSShapeMember(label: "ElasticsearchClusterConfig", required: false, type: .structure), + AWSShapeMember(label: "EBSOptions", required: false, type: .structure), + AWSShapeMember(label: "VPCOptions", required: false, type: .structure), + AWSShapeMember(label: "LogPublishingOptions", required: false, type: .map), + AWSShapeMember(label: "AdvancedOptions", required: false, type: .map), + AWSShapeMember(label: "AccessPolicies", required: false, type: .string), + AWSShapeMember(label: "DomainName", location: .uri(locationName: "DomainName"), required: true, type: .string) + ] + /// Option to set the time, in UTC format, for the daily automated snapshot. Default value is 0 hours. + public let snapshotOptions: SnapshotOptions? + /// The type and number of instances to instantiate for the domain cluster. + public let elasticsearchClusterConfig: ElasticsearchClusterConfig? + /// Specify the type and size of the EBS volume that you want to use. + public let eBSOptions: EBSOptions? + /// Options to specify the subnets and security groups for VPC endpoint. For more information, see Creating a VPC in VPC Endpoints for Amazon Elasticsearch Service Domains + public let vPCOptions: VPCOptions? + /// Map of LogType and LogPublishingOption, each containing options to publish a given type of Elasticsearch log. + public let logPublishingOptions: [LogType: LogPublishingOption]? + /// Modifies the advanced option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Configuration Advanced Options for more information. + public let advancedOptions: [String: String]? + /// IAM access policy as a JSON-formatted string. + public let accessPolicies: String? + /// The name of the Elasticsearch domain that you are updating. + public let domainName: String + + public init(snapshotOptions: SnapshotOptions? = nil, elasticsearchClusterConfig: ElasticsearchClusterConfig? = nil, eBSOptions: EBSOptions? = nil, vPCOptions: VPCOptions? = nil, logPublishingOptions: [LogType: LogPublishingOption]? = nil, advancedOptions: [String: String]? = nil, accessPolicies: String? = nil, domainName: String) { + self.snapshotOptions = snapshotOptions + self.elasticsearchClusterConfig = elasticsearchClusterConfig + self.eBSOptions = eBSOptions + self.vPCOptions = vPCOptions + self.logPublishingOptions = logPublishingOptions + self.advancedOptions = advancedOptions + self.accessPolicies = accessPolicies + self.domainName = domainName + } + + private enum CodingKeys: String, CodingKey { + case snapshotOptions = "SnapshotOptions" + case elasticsearchClusterConfig = "ElasticsearchClusterConfig" + case eBSOptions = "EBSOptions" + case vPCOptions = "VPCOptions" + case logPublishingOptions = "LogPublishingOptions" + case advancedOptions = "AdvancedOptions" + case accessPolicies = "AccessPolicies" + case domainName = "DomainName" + } + } + + public struct CreateElasticsearchDomainResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainStatus", required: false, type: .structure) + ] + /// The status of the newly created Elasticsearch domain. + public let domainStatus: ElasticsearchDomainStatus? + + public init(domainStatus: ElasticsearchDomainStatus? = nil) { + self.domainStatus = domainStatus + } + + private enum CodingKeys: String, CodingKey { + case domainStatus = "DomainStatus" + } + } + + public struct ElasticsearchClusterConfigStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Options", required: true, type: .structure), + AWSShapeMember(label: "Status", required: true, type: .structure) + ] + /// Specifies the cluster configuration for the specified Elasticsearch domain. + public let options: ElasticsearchClusterConfig + /// Specifies the status of the configuration for the specified Elasticsearch domain. + public let status: OptionStatus + + public init(options: ElasticsearchClusterConfig, status: OptionStatus) { + self.options = options + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case options = "Options" + case status = "Status" } } + public struct DescribeElasticsearchInstanceTypeLimitsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceType", location: .uri(locationName: "InstanceType"), required: true, type: .enum), + AWSShapeMember(label: "DomainName", location: .querystring(locationName: "domainName"), required: false, type: .string), + AWSShapeMember(label: "ElasticsearchVersion", location: .uri(locationName: "ElasticsearchVersion"), required: true, type: .string) + ] + /// The instance type for an Elasticsearch cluster for which Elasticsearch Limits are needed. + public let instanceType: ESPartitionInstanceType + /// DomainName represents the name of the Domain that we are trying to modify. This should be present only if we are querying for Elasticsearch Limits for existing domain. + public let domainName: String? + /// Version of Elasticsearch for which Limits are needed. + public let elasticsearchVersion: String + + public init(instanceType: ESPartitionInstanceType, domainName: String? = nil, elasticsearchVersion: String) { + self.instanceType = instanceType + self.domainName = domainName + self.elasticsearchVersion = elasticsearchVersion + } + + private enum CodingKeys: String, CodingKey { + case instanceType = "InstanceType" + case domainName = "domainName" + case elasticsearchVersion = "ElasticsearchVersion" + } + } + + public struct DescribeElasticsearchDomainResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainStatus", required: true, type: .structure) + ] + /// The current status of the Elasticsearch domain. + public let domainStatus: ElasticsearchDomainStatus + + public init(domainStatus: ElasticsearchDomainStatus) { + self.domainStatus = domainStatus + } + + private enum CodingKeys: String, CodingKey { + case domainStatus = "DomainStatus" + } + } + + public enum ESPartitionInstanceType: String, CustomStringConvertible, Codable { + case m3MediumElasticsearch = "m3.medium.elasticsearch" + case m3LargeElasticsearch = "m3.large.elasticsearch" + case m3XlargeElasticsearch = "m3.xlarge.elasticsearch" + case m32XlargeElasticsearch = "m3.2xlarge.elasticsearch" + case m4LargeElasticsearch = "m4.large.elasticsearch" + case m4XlargeElasticsearch = "m4.xlarge.elasticsearch" + case m42XlargeElasticsearch = "m4.2xlarge.elasticsearch" + case m44XlargeElasticsearch = "m4.4xlarge.elasticsearch" + case m410XlargeElasticsearch = "m4.10xlarge.elasticsearch" + case t2MicroElasticsearch = "t2.micro.elasticsearch" + case t2SmallElasticsearch = "t2.small.elasticsearch" + case t2MediumElasticsearch = "t2.medium.elasticsearch" + case r3LargeElasticsearch = "r3.large.elasticsearch" + case r3XlargeElasticsearch = "r3.xlarge.elasticsearch" + case r32XlargeElasticsearch = "r3.2xlarge.elasticsearch" + case r34XlargeElasticsearch = "r3.4xlarge.elasticsearch" + case r38XlargeElasticsearch = "r3.8xlarge.elasticsearch" + case i2XlargeElasticsearch = "i2.xlarge.elasticsearch" + case i22XlargeElasticsearch = "i2.2xlarge.elasticsearch" + case d2XlargeElasticsearch = "d2.xlarge.elasticsearch" + case d22XlargeElasticsearch = "d2.2xlarge.elasticsearch" + case d24XlargeElasticsearch = "d2.4xlarge.elasticsearch" + case d28XlargeElasticsearch = "d2.8xlarge.elasticsearch" + case c4LargeElasticsearch = "c4.large.elasticsearch" + case c4XlargeElasticsearch = "c4.xlarge.elasticsearch" + case c42XlargeElasticsearch = "c4.2xlarge.elasticsearch" + case c44XlargeElasticsearch = "c4.4xlarge.elasticsearch" + case c48XlargeElasticsearch = "c4.8xlarge.elasticsearch" + case r4LargeElasticsearch = "r4.large.elasticsearch" + case r4XlargeElasticsearch = "r4.xlarge.elasticsearch" + case r42XlargeElasticsearch = "r4.2xlarge.elasticsearch" + case r44XlargeElasticsearch = "r4.4xlarge.elasticsearch" + case r48XlargeElasticsearch = "r4.8xlarge.elasticsearch" + case r416XlargeElasticsearch = "r4.16xlarge.elasticsearch" + case i3LargeElasticsearch = "i3.large.elasticsearch" + case i3XlargeElasticsearch = "i3.xlarge.elasticsearch" + case i32XlargeElasticsearch = "i3.2xlarge.elasticsearch" + case i34XlargeElasticsearch = "i3.4xlarge.elasticsearch" + case i38XlargeElasticsearch = "i3.8xlarge.elasticsearch" + case i316XlargeElasticsearch = "i3.16xlarge.elasticsearch" + public var description: String { return self.rawValue } + } + + public struct SnapshotOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AutomatedSnapshotStartHour", required: false, type: .integer) + ] + /// Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is 0 hours. + public let automatedSnapshotStartHour: Int32? + + public init(automatedSnapshotStartHour: Int32? = nil) { + self.automatedSnapshotStartHour = automatedSnapshotStartHour + } + + private enum CodingKeys: String, CodingKey { + case automatedSnapshotStartHour = "AutomatedSnapshotStartHour" + } + } + + public struct EBSOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VolumeSize", required: false, type: .integer), + AWSShapeMember(label: "VolumeType", required: false, type: .enum), + AWSShapeMember(label: "Iops", required: false, type: .integer), + AWSShapeMember(label: "EBSEnabled", required: false, type: .boolean) + ] + /// Integer to specify the size of an EBS volume. + public let volumeSize: Int32? + /// Specifies the volume type for EBS-based storage. + public let volumeType: VolumeType? + /// Specifies the IOPD for a Provisioned IOPS EBS volume (SSD). + public let iops: Int32? + /// Specifies whether EBS-based storage is enabled. + public let eBSEnabled: Bool? + + public init(volumeSize: Int32? = nil, volumeType: VolumeType? = nil, iops: Int32? = nil, eBSEnabled: Bool? = nil) { + self.volumeSize = volumeSize + self.volumeType = volumeType + self.iops = iops + self.eBSEnabled = eBSEnabled + } + + private enum CodingKeys: String, CodingKey { + case volumeSize = "VolumeSize" + case volumeType = "VolumeType" + case iops = "Iops" + case eBSEnabled = "EBSEnabled" + } + } + + public struct DescribeElasticsearchDomainConfigRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainName", location: .uri(locationName: "DomainName"), required: true, type: .string) + ] + /// The Elasticsearch domain that you want to get information about. + public let domainName: String + + public init(domainName: String) { + self.domainName = domainName + } + + private enum CodingKeys: String, CodingKey { + case domainName = "DomainName" + } + } + + public struct DescribeElasticsearchDomainConfigResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainConfig", required: true, type: .structure) + ] + /// The configuration information of the domain requested in the DescribeElasticsearchDomainConfig request. + public let domainConfig: ElasticsearchDomainConfig + + public init(domainConfig: ElasticsearchDomainConfig) { + self.domainConfig = domainConfig + } + + private enum CodingKeys: String, CodingKey { + case domainConfig = "DomainConfig" + } + } + + public struct ListElasticsearchVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + /// Set this value to limit the number of results returned. Value provided must be greater than 10 else it wont be honored. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct SnapshotOptionsStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Options", required: true, type: .structure), + AWSShapeMember(label: "Status", required: true, type: .structure) + ] + /// Specifies the daily snapshot options specified for the Elasticsearch domain. + public let options: SnapshotOptions + /// Specifies the status of a daily automated snapshot. + public let status: OptionStatus + + public init(options: SnapshotOptions, status: OptionStatus) { + self.options = options + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case options = "Options" + case status = "Status" + } + } + + public struct ListElasticsearchInstanceTypesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ElasticsearchInstanceTypes", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// List of instance types supported by Amazon Elasticsearch service for given ElasticsearchVersion + public let elasticsearchInstanceTypes: [ESPartitionInstanceType]? + /// In case if there are more results available NextToken would be present, make further request to the same API with received NextToken to paginate remaining results. + public let nextToken: String? + + public init(elasticsearchInstanceTypes: [ESPartitionInstanceType]? = nil, nextToken: String? = nil) { + self.elasticsearchInstanceTypes = elasticsearchInstanceTypes + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case elasticsearchInstanceTypes = "ElasticsearchInstanceTypes" + case nextToken = "NextToken" + } + } + + public struct DescribeElasticsearchDomainsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainStatusList", required: true, type: .list) + ] + /// The status of the domains requested in the DescribeElasticsearchDomains request. + public let domainStatusList: [ElasticsearchDomainStatus] + + public init(domainStatusList: [ElasticsearchDomainStatus]) { + self.domainStatusList = domainStatusList + } + + private enum CodingKeys: String, CodingKey { + case domainStatusList = "DomainStatusList" + } + } + + public struct UpdateElasticsearchDomainConfigResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainConfig", required: true, type: .structure) + ] + /// The status of the updated Elasticsearch domain. + public let domainConfig: ElasticsearchDomainConfig + + public init(domainConfig: ElasticsearchDomainConfig) { + self.domainConfig = domainConfig + } + + private enum CodingKeys: String, CodingKey { + case domainConfig = "DomainConfig" + } + } + + public struct DeleteElasticsearchDomainRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainName", location: .uri(locationName: "DomainName"), required: true, type: .string) + ] + /// The name of the Elasticsearch domain that you want to permanently delete. + public let domainName: String + + public init(domainName: String) { + self.domainName = domainName + } + + private enum CodingKeys: String, CodingKey { + case domainName = "DomainName" + } + } + + public struct VPCDerivedInfoStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Options", required: true, type: .structure), + AWSShapeMember(label: "Status", required: true, type: .structure) + ] + /// Specifies the VPC options for the specified Elasticsearch domain. + public let options: VPCDerivedInfo + /// Specifies the status of the VPC options for the specified Elasticsearch domain. + public let status: OptionStatus + + public init(options: VPCDerivedInfo, status: OptionStatus) { + self.options = options + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case options = "Options" + case status = "Status" + } + } + + public struct Limits: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AdditionalLimits", required: false, type: .list), + AWSShapeMember(label: "StorageTypes", required: false, type: .list), + AWSShapeMember(label: "InstanceLimits", required: false, type: .structure) + ] + /// List of additional limits that are specific to a given InstanceType and for each of it's InstanceRole . + public let additionalLimits: [AdditionalLimit]? + /// StorageType represents the list of storage related types and attributes that are available for given InstanceType. + public let storageTypes: [StorageType]? + public let instanceLimits: InstanceLimits? + + public init(additionalLimits: [AdditionalLimit]? = nil, storageTypes: [StorageType]? = nil, instanceLimits: InstanceLimits? = nil) { + self.additionalLimits = additionalLimits + self.storageTypes = storageTypes + self.instanceLimits = instanceLimits + } + + private enum CodingKeys: String, CodingKey { + case additionalLimits = "AdditionalLimits" + case storageTypes = "StorageTypes" + case instanceLimits = "InstanceLimits" + } + } + + public struct CreateElasticsearchDomainRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SnapshotOptions", required: false, type: .structure), + AWSShapeMember(label: "ElasticsearchClusterConfig", required: false, type: .structure), + AWSShapeMember(label: "EBSOptions", required: false, type: .structure), + AWSShapeMember(label: "VPCOptions", required: false, type: .structure), + AWSShapeMember(label: "LogPublishingOptions", required: false, type: .map), + AWSShapeMember(label: "ElasticsearchVersion", required: false, type: .string), + AWSShapeMember(label: "AccessPolicies", required: false, type: .string), + AWSShapeMember(label: "AdvancedOptions", required: false, type: .map), + AWSShapeMember(label: "DomainName", required: true, type: .string) + ] + /// Option to set time, in UTC format, of the daily automated snapshot. Default value is 0 hours. + public let snapshotOptions: SnapshotOptions? + /// Configuration options for an Elasticsearch domain. Specifies the instance type and number of instances in the domain cluster. + public let elasticsearchClusterConfig: ElasticsearchClusterConfig? + /// Options to enable, disable and specify the type and size of EBS storage volumes. + public let eBSOptions: EBSOptions? + /// Options to specify the subnets and security groups for VPC endpoint. For more information, see Creating a VPC in VPC Endpoints for Amazon Elasticsearch Service Domains + public let vPCOptions: VPCOptions? + /// Map of LogType and LogPublishingOption, each containing options to publish a given type of Elasticsearch log. + public let logPublishingOptions: [LogType: LogPublishingOption]? + /// String of format X.Y to specify version for the Elasticsearch domain eg. "1.5" or "2.3". For more information, see Creating Elasticsearch Domains in the Amazon Elasticsearch Service Developer Guide. + public let elasticsearchVersion: String? + /// IAM access policy as a JSON-formatted string. + public let accessPolicies: String? + /// Option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Configuration Advanced Options for more information. + public let advancedOptions: [String: String]? + /// The name of the Elasticsearch domain that you are creating. Domain names are unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). + public let domainName: String + + public init(snapshotOptions: SnapshotOptions? = nil, elasticsearchClusterConfig: ElasticsearchClusterConfig? = nil, eBSOptions: EBSOptions? = nil, vPCOptions: VPCOptions? = nil, logPublishingOptions: [LogType: LogPublishingOption]? = nil, elasticsearchVersion: String? = nil, accessPolicies: String? = nil, advancedOptions: [String: String]? = nil, domainName: String) { + self.snapshotOptions = snapshotOptions + self.elasticsearchClusterConfig = elasticsearchClusterConfig + self.eBSOptions = eBSOptions + self.vPCOptions = vPCOptions + self.logPublishingOptions = logPublishingOptions + self.elasticsearchVersion = elasticsearchVersion + self.accessPolicies = accessPolicies + self.advancedOptions = advancedOptions + self.domainName = domainName + } + + private enum CodingKeys: String, CodingKey { + case snapshotOptions = "SnapshotOptions" + case elasticsearchClusterConfig = "ElasticsearchClusterConfig" + case eBSOptions = "EBSOptions" + case vPCOptions = "VPCOptions" + case logPublishingOptions = "LogPublishingOptions" + case elasticsearchVersion = "ElasticsearchVersion" + case accessPolicies = "AccessPolicies" + case advancedOptions = "AdvancedOptions" + case domainName = "DomainName" + } + } + + public struct StorageType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StorageTypeLimits", required: false, type: .list), + AWSShapeMember(label: "StorageSubTypeName", required: false, type: .string), + AWSShapeMember(label: "StorageTypeName", required: false, type: .string) + ] + /// List of limits that are applicable for given storage type. + public let storageTypeLimits: [StorageTypeLimit]? + public let storageSubTypeName: String? + public let storageTypeName: String? + + public init(storageTypeLimits: [StorageTypeLimit]? = nil, storageSubTypeName: String? = nil, storageTypeName: String? = nil) { + self.storageTypeLimits = storageTypeLimits + self.storageSubTypeName = storageSubTypeName + self.storageTypeName = storageTypeName + } + + private enum CodingKeys: String, CodingKey { + case storageTypeLimits = "StorageTypeLimits" + case storageSubTypeName = "StorageSubTypeName" + case storageTypeName = "StorageTypeName" + } + } + + public struct LogPublishingOptionsStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Options", required: false, type: .map), + AWSShapeMember(label: "Status", required: false, type: .structure) + ] + /// The log publishing options configured for the Elasticsearch domain. + public let options: [LogType: LogPublishingOption]? + /// The status of the log publishing options for the Elasticsearch domain. See OptionStatus for the status information that's included. + public let status: OptionStatus? + + public init(options: [LogType: LogPublishingOption]? = nil, status: OptionStatus? = nil) { + self.options = options + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case options = "Options" + case status = "Status" + } + } + + public struct ListTagsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ARN", location: .querystring(locationName: "arn"), required: true, type: .string) + ] + /// Specify the ARN for the Elasticsearch domain to which the tags are attached that you want to view. + public let arn: String + + public init(arn: String) { + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + } + } + + public enum OptionState: String, CustomStringConvertible, Codable { + case requiresindexdocuments = "RequiresIndexDocuments" + case processing = "Processing" + case active = "Active" + public var description: String { return self.rawValue } + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/events/Events_API.swift b/Sources/AWSSDKSwift/Services/events/Events_API.swift index 970f0398b1e..743f85df9e2 100644 --- a/Sources/AWSSDKSwift/Services/events/Events_API.swift +++ b/Sources/AWSSDKSwift/Services/events/Events_API.swift @@ -35,7 +35,7 @@ public struct Events { _ = try client.send(operation: "DisableRule", path: "/", httpMethod: "POST", input: input) } - /// Running PutPermission permits the specified AWS account to put events to your account's default event bus. CloudWatch Events rules in your account are triggered by these events arriving to your default event bus. For another account to send events to your account, that external account must have a CloudWatch Events rule with your account's default event bus as a target. To enable multiple AWS accounts to put events to your default event bus, run PutPermission once for each of these accounts. + /// Running PutPermission permits the specified AWS account to put events to your account's default event bus. CloudWatch Events rules in your account are triggered by these events arriving to your default event bus. For another account to send events to your account, that external account must have a CloudWatch Events rule with your account's default event bus as a target. To enable multiple AWS accounts to put events to your default event bus, run PutPermission once for each of these accounts. The permission policy on the default event bus cannot exceed 10KB in size. public func putPermission(_ input: PutPermissionRequest) throws { _ = try client.send(operation: "PutPermission", path: "/", httpMethod: "POST", input: input) } @@ -75,7 +75,7 @@ public struct Events { return try client.send(operation: "ListRuleNamesByTarget", path: "/", httpMethod: "POST", input: input) } - /// Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule. Targets are the resources that are invoked when a rule is triggered. You can configure the following as targets for CloudWatch Events: EC2 instances AWS Lambda functions Streams in Amazon Kinesis Streams Delivery streams in Amazon Kinesis Firehose Amazon ECS tasks AWS Step Functions state machines Amazon SNS topics Amazon SQS queues Note that creating rules with built-in targets is supported only in the AWS Management Console. For some target types, PutTargets provides target-specific parameters. If the target is an Amazon Kinesis stream, you can optionally specify which shard the event goes to by using the KinesisParameters argument. To invoke a command on multiple EC2 instances with one rule, you can use the RunCommandParameters field. To be able to make API calls against the resources that you own, Amazon CloudWatch Events needs the appropriate permissions. For AWS Lambda and Amazon SNS resources, CloudWatch Events relies on resource-based policies. For EC2 instances, Amazon Kinesis streams, and AWS Step Functions state machines, CloudWatch Events relies on IAM roles that you specify in the RoleARN argument in PutTargets. For more information, see Authentication and Access Control in the Amazon CloudWatch Events User Guide. If another AWS account is in the same region and has granted you permission (using PutPermission), you can set that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the Arn when you run PutTargets. For more information about enabling cross-account events, see PutPermission. Input, InputPath and InputTransformer are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event: If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON form (unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target). If Input is specified in the form of valid JSON, then the matched event is overridden with this constant. If InputPath is specified in the form of JSONPath (for example, $.detail), then only the part of the event specified in the path is passed to the target (for example, only the detail part of the event is passed). If InputTransformer is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target. When you specify Input, InputPath, or InputTransformer, you must use JSON dot notation, not bracket notation. When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Please allow a short period of time for changes to take effect. This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code. + /// Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule. Targets are the resources that are invoked when a rule is triggered. You can configure the following as targets for CloudWatch Events: EC2 instances AWS Lambda functions Streams in Amazon Kinesis Streams Delivery streams in Amazon Kinesis Firehose Amazon ECS tasks AWS Step Functions state machines Pipelines in Amazon Code Pipeline Amazon Inspector assessment templates Amazon SNS topics Amazon SQS queues The default event bus of another AWS account Note that creating rules with built-in targets is supported only in the AWS Management Console. For some target types, PutTargets provides target-specific parameters. If the target is an Amazon Kinesis stream, you can optionally specify which shard the event goes to by using the KinesisParameters argument. To invoke a command on multiple EC2 instances with one rule, you can use the RunCommandParameters field. To be able to make API calls against the resources that you own, Amazon CloudWatch Events needs the appropriate permissions. For AWS Lambda and Amazon SNS resources, CloudWatch Events relies on resource-based policies. For EC2 instances, Amazon Kinesis streams, and AWS Step Functions state machines, CloudWatch Events relies on IAM roles that you specify in the RoleARN argument in PutTargets. For more information, see Authentication and Access Control in the Amazon CloudWatch Events User Guide. If another AWS account is in the same region and has granted you permission (using PutPermission), you can send events to that account by setting that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the Arn when you run PutTargets. If your account sends events to another account, your account is charged for each sent event. Each event sent to antoher account is charged as a custom event. The account receiving the event is not charged. For more information on pricing, see Amazon CloudWatch Pricing. For more information about enabling cross-account events, see PutPermission. Input, InputPath and InputTransformer are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event: If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON form (unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target). If Input is specified in the form of valid JSON, then the matched event is overridden with this constant. If InputPath is specified in the form of JSONPath (for example, $.detail), then only the part of the event specified in the path is passed to the target (for example, only the detail part of the event is passed). If InputTransformer is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target. When you specify Input, InputPath, or InputTransformer, you must use JSON dot notation, not bracket notation. When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Please allow a short period of time for changes to take effect. This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code. public func putTargets(_ input: PutTargetsRequest) throws -> PutTargetsResponse { return try client.send(operation: "PutTargets", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/events/Events_Shapes.swift b/Sources/AWSSDKSwift/Services/events/Events_Shapes.swift index f1f9f996e44..82493f29646 100644 --- a/Sources/AWSSDKSwift/Services/events/Events_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/events/Events_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Events { public struct PutPermissionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Principal", required: true, type: .string), AWSShapeMember(label: "Action", required: true, type: .string), AWSShapeMember(label: "StatementId", required: true, type: .string) @@ -32,7 +32,7 @@ extension Events { } public struct InputTransformer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InputTemplate", required: true, type: .string), AWSShapeMember(label: "InputPathsMap", required: false, type: .map) ] @@ -53,7 +53,7 @@ extension Events { } public struct PutTargetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedEntryCount", required: false, type: .integer), AWSShapeMember(label: "FailedEntries", required: false, type: .list) ] @@ -74,7 +74,7 @@ extension Events { } public struct DescribeEventBusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string) @@ -100,7 +100,7 @@ extension Events { } public struct Rule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "State", required: false, type: .enum), AWSShapeMember(label: "Name", required: false, type: .string), @@ -146,7 +146,7 @@ extension Events { } public struct Target: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RunCommandParameters", required: false, type: .structure), AWSShapeMember(label: "InputTransformer", required: false, type: .structure), AWSShapeMember(label: "Arn", required: true, type: .string), @@ -202,7 +202,7 @@ extension Events { } public struct DisableRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// The name of the rule. @@ -218,7 +218,7 @@ extension Events { } public struct TestEventPatternRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Event", required: true, type: .string), AWSShapeMember(label: "EventPattern", required: true, type: .string) ] @@ -239,7 +239,7 @@ extension Events { } public struct RunCommandTarget: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: true, type: .string), AWSShapeMember(label: "Values", required: true, type: .list) ] @@ -260,7 +260,7 @@ extension Events { } public struct ListRuleNamesByTargetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "TargetArn", required: true, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -286,7 +286,7 @@ extension Events { } public struct PutRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "ScheduleExpression", required: false, type: .string), AWSShapeMember(label: "RoleArn", required: false, type: .string), @@ -327,7 +327,7 @@ extension Events { } public struct RunCommandParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RunCommandTargets", required: true, type: .list) ] /// Currently, we support including only one RunCommandTarget block, which specifies either an array of InstanceIds or a tag. @@ -343,7 +343,7 @@ extension Events { } public struct ListTargetsByRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Targets", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -364,7 +364,7 @@ extension Events { } public struct DeleteRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// The name of the rule. @@ -380,7 +380,7 @@ extension Events { } public struct DescribeRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "State", required: false, type: .enum), AWSShapeMember(label: "Name", required: false, type: .string), @@ -430,7 +430,7 @@ extension Events { } public struct PutEventsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Entries", required: true, type: .list) ] /// The entry that defines an event in your system. You can specify several parameters for the entry such as the source and type of the event, resources associated with the event, and so on. @@ -446,7 +446,7 @@ extension Events { } public struct RemoveTargetsResultEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorMessage", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .string), AWSShapeMember(label: "TargetId", required: false, type: .string) @@ -472,7 +472,7 @@ extension Events { } public struct PutEventsRequestEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Detail", required: false, type: .string), AWSShapeMember(label: "DetailType", required: false, type: .string), AWSShapeMember(label: "Source", required: false, type: .string), @@ -508,7 +508,7 @@ extension Events { } public struct RemovePermissionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StatementId", required: true, type: .string) ] /// The statement ID corresponding to the account that is no longer allowed to put events to the default event bus. @@ -524,7 +524,7 @@ extension Events { } public struct TestEventPatternResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Result", required: false, type: .boolean) ] /// Indicates whether the event matches the event pattern. @@ -540,7 +540,7 @@ extension Events { } public struct PutTargetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Targets", required: true, type: .list), AWSShapeMember(label: "Rule", required: true, type: .string) ] @@ -567,7 +567,7 @@ extension Events { } public struct EnableRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// The name of the rule. @@ -583,7 +583,7 @@ extension Events { } public struct PutTargetsResultEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorMessage", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .string), AWSShapeMember(label: "TargetId", required: false, type: .string) @@ -609,7 +609,7 @@ extension Events { } public struct ListRulesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Rules", required: false, type: .list) ] @@ -630,7 +630,7 @@ extension Events { } public struct RemoveTargetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedEntryCount", required: false, type: .integer), AWSShapeMember(label: "FailedEntries", required: false, type: .list) ] @@ -651,7 +651,7 @@ extension Events { } public struct EcsParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TaskCount", required: false, type: .integer), AWSShapeMember(label: "TaskDefinitionArn", required: true, type: .string) ] @@ -672,7 +672,7 @@ extension Events { } public struct DescribeRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// The name of the rule. @@ -688,7 +688,7 @@ extension Events { } public struct RemoveTargetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ids", required: true, type: .list), AWSShapeMember(label: "Rule", required: true, type: .string) ] @@ -709,7 +709,7 @@ extension Events { } public struct PutRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleArn", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the rule. @@ -725,7 +725,7 @@ extension Events { } public struct ListRulesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NamePrefix", required: false, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -751,7 +751,7 @@ extension Events { } public struct ListRuleNamesByTargetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "RuleNames", required: false, type: .list) ] @@ -772,7 +772,7 @@ extension Events { } public struct ListTargetsByRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rule", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -798,7 +798,7 @@ extension Events { } public struct PutEventsResultEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorMessage", required: false, type: .string), AWSShapeMember(label: "EventId", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .string) @@ -824,7 +824,7 @@ extension Events { } public struct PutEventsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedEntryCount", required: false, type: .integer), AWSShapeMember(label: "Entries", required: false, type: .list) ] @@ -845,7 +845,7 @@ extension Events { } public struct KinesisParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PartitionKeyPath", required: true, type: .string) ] /// The JSON path to be extracted from the event and used as the partition key. For more information, see Amazon Kinesis Streams Key Concepts in the Amazon Kinesis Streams Developer Guide. diff --git a/Sources/AWSSDKSwift/Services/firehose/Firehose_API.swift b/Sources/AWSSDKSwift/Services/firehose/Firehose_API.swift index 9c450ab0165..93c25b35968 100644 --- a/Sources/AWSSDKSwift/Services/firehose/Firehose_API.swift +++ b/Sources/AWSSDKSwift/Services/firehose/Firehose_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon Kinesis Firehose API Reference Amazon Kinesis Firehose is a fully-managed service that delivers real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon Elasticsearch Service (Amazon ES), and Amazon Redshift. +Amazon Kinesis Firehose API Reference Amazon Kinesis Firehose is a fully managed service that delivers real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon Elasticsearch Service (Amazon ES), and Amazon Redshift. */ public struct Firehose { @@ -25,12 +25,12 @@ public struct Firehose { ) } - /// Creates a delivery stream. By default, you can create up to 20 delivery streams per region. This is an asynchronous operation that immediately returns. The initial status of the delivery stream is CREATING. After the delivery stream is created, its status is ACTIVE and it now accepts data. Attempts to send data to a delivery stream that is not in the ACTIVE state cause an exception. To check the state of a delivery stream, use DescribeDeliveryStream. A delivery stream is configured with a single destination: Amazon S3, Amazon Elasticsearch Service, or Amazon Redshift. You must specify only one of the following destination configuration parameters: ExtendedS3DestinationConfiguration, S3DestinationConfiguration, ElasticsearchDestinationConfiguration, or RedshiftDestinationConfiguration. When you specify S3DestinationConfiguration, you can also provide the following optional values: BufferingHints, EncryptionConfiguration, and CompressionFormat. By default, if no BufferingHints value is provided, Firehose buffers data up to 5 MB or for 5 minutes, whichever condition is satisfied first. Note that BufferingHints is a hint, so there are some cases where the service cannot adhere to these conditions strictly; for example, record boundaries are such that the size is a little over or under the configured buffering size. By default, no encryption is performed. We strongly recommend that you enable encryption to ensure secure data storage in Amazon S3. A few notes about Amazon Redshift as a destination: An Amazon Redshift destination requires an S3 bucket as intermediate location, as Firehose first delivers data to S3 and then uses COPY syntax to load data into an Amazon Redshift table. This is specified in the RedshiftDestinationConfiguration.S3Configuration parameter. The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration because the Amazon Redshift COPY operation that reads from the S3 bucket doesn't support these compression formats. We strongly recommend that you use the user name and password you provide exclusively with Firehose, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. Firehose assumes the IAM role that is configured as part of the destination. The role should allow the Firehose principal to assume the role, and the role should have permissions that allows the service to deliver the data. For more information, see Amazon S3 Bucket Access in the Amazon Kinesis Firehose Developer Guide. + /// Creates a delivery stream. By default, you can create up to 20 delivery streams per region. This is an asynchronous operation that immediately returns. The initial status of the delivery stream is CREATING. After the delivery stream is created, its status is ACTIVE and it now accepts data. Attempts to send data to a delivery stream that is not in the ACTIVE state cause an exception. To check the state of a delivery stream, use DescribeDeliveryStream. A Kinesis Firehose delivery stream can be configured to receive records directly from providers using PutRecord or PutRecordBatch, or it can be configured to use an existing Kinesis stream as its source. To specify a Kinesis stream as input, set the DeliveryStreamType parameter to KinesisStreamAsSource, and provide the Kinesis stream ARN and role ARN in the KinesisStreamSourceConfiguration parameter. A delivery stream is configured with a single destination: Amazon S3, Amazon ES, or Amazon Redshift. You must specify only one of the following destination configuration parameters: ExtendedS3DestinationConfiguration, S3DestinationConfiguration, ElasticsearchDestinationConfiguration, or RedshiftDestinationConfiguration. When you specify S3DestinationConfiguration, you can also provide the following optional values: BufferingHints, EncryptionConfiguration, and CompressionFormat. By default, if no BufferingHints value is provided, Kinesis Firehose buffers data up to 5 MB or for 5 minutes, whichever condition is satisfied first. Note that BufferingHints is a hint, so there are some cases where the service cannot adhere to these conditions strictly; for example, record boundaries are such that the size is a little over or under the configured buffering size. By default, no encryption is performed. We strongly recommend that you enable encryption to ensure secure data storage in Amazon S3. A few notes about Amazon Redshift as a destination: An Amazon Redshift destination requires an S3 bucket as intermediate location, as Kinesis Firehose first delivers data to S3 and then uses COPY syntax to load data into an Amazon Redshift table. This is specified in the RedshiftDestinationConfiguration.S3Configuration parameter. The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration because the Amazon Redshift COPY operation that reads from the S3 bucket doesn't support these compression formats. We strongly recommend that you use the user name and password you provide exclusively with Kinesis Firehose, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions. Kinesis Firehose assumes the IAM role that is configured as part of the destination. The role should allow the Kinesis Firehose principal to assume the role, and the role should have permissions that allow the service to deliver the data. For more information, see Amazon S3 Bucket Access in the Amazon Kinesis Firehose Developer Guide. public func createDeliveryStream(_ input: CreateDeliveryStreamInput) throws -> CreateDeliveryStreamOutput { return try client.send(operation: "CreateDeliveryStream", path: "/", httpMethod: "POST", input: input) } - /// Writes multiple data records into a delivery stream in a single call, which can achieve higher throughput per producer than when writing single records. To write single data records into a delivery stream, use PutRecord. Applications using these operations are referred to as producers. By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. Note that if you use PutRecord and PutRecordBatch, the limits are an aggregate across these two operations for each delivery stream. For more information about limits, see Amazon Kinesis Firehose Limits. Each PutRecordBatch request supports up to 500 records. Each record in the request can be as large as 1,000 KB (before 64-bit encoding), up to a limit of 4 MB for the entire request. These limits cannot be changed. You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data, for example, a segment from a log file, geographic location data, web site clickstream data, and so on. Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\n) or some other character unique within the data. This allows the consumer application(s) to parse individual data items when reading the data from the destination. The PutRecordBatch response includes a count of failed records, FailedPutCount, and an array of responses, RequestResponses. Each entry in the RequestResponses array provides additional information about the processed record, and directly correlates with a record in the request array using the same ordering, from the top to the bottom. The response array always includes the same number of records as the request array. RequestResponses includes both successfully and unsuccessfully processed records. Firehose attempts to process all records in each PutRecordBatch request. A single record failure does not stop the processing of subsequent records. A successfully processed record includes a RecordId value, which is unique for the record. An unsuccessfully processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error, and is one of the following values: ServiceUnavailable or InternalFailure. ErrorMessage provides more detailed information about the error. If there is an internal server error or a timeout, the write might have completed or it might have failed. If FailedPutCount is greater than 0, retry the request, resending only those records that might have failed processing. This minimizes the possible duplicate records and also reduces the total bytes sent (and corresponding charges). We recommend that you handle any duplicates at the destination. If PutRecordBatch throws ServiceUnavailableException, back off and retry. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream. Data records sent to Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available. + /// Writes multiple data records into a delivery stream in a single call, which can achieve higher throughput per producer than when writing single records. To write single data records into a delivery stream, use PutRecord. Applications using these operations are referred to as producers. By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. If you use PutRecord and PutRecordBatch, the limits are an aggregate across these two operations for each delivery stream. For more information about limits, see Amazon Kinesis Firehose Limits. Each PutRecordBatch request supports up to 500 records. Each record in the request can be as large as 1,000 KB (before 64-bit encoding), up to a limit of 4 MB for the entire request. These limits cannot be changed. You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data. For example, it could be a segment from a log file, geographic location data, web site clickstream data, and so on. Kinesis Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\n) or some other character unique within the data. This allows the consumer application to parse individual data items when reading the data from the destination. The PutRecordBatch response includes a count of failed records, FailedPutCount, and an array of responses, RequestResponses. Each entry in the RequestResponses array provides additional information about the processed record. It directly correlates with a record in the request array using the same ordering, from the top to the bottom. The response array always includes the same number of records as the request array. RequestResponses includes both successfully and unsuccessfully processed records. Kinesis Firehose attempts to process all records in each PutRecordBatch request. A single record failure does not stop the processing of subsequent records. A successfully processed record includes a RecordId value, which is unique for the record. An unsuccessfully processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error, and is one of the following values: ServiceUnavailable or InternalFailure. ErrorMessage provides more detailed information about the error. If there is an internal server error or a timeout, the write might have completed or it might have failed. If FailedPutCount is greater than 0, retry the request, resending only those records that might have failed processing. This minimizes the possible duplicate records and also reduces the total bytes sent (and corresponding charges). We recommend that you handle any duplicates at the destination. If PutRecordBatch throws ServiceUnavailableException, back off and retry. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream. Data records sent to Kinesis Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available. public func putRecordBatch(_ input: PutRecordBatchInput) throws -> PutRecordBatchOutput { return try client.send(operation: "PutRecordBatch", path: "/", httpMethod: "POST", input: input) } @@ -40,7 +40,7 @@ public struct Firehose { return try client.send(operation: "DescribeDeliveryStream", path: "/", httpMethod: "POST", input: input) } - /// Writes a single data record into an Amazon Kinesis Firehose delivery stream. To write multiple data records into a delivery stream, use PutRecordBatch. Applications using these operations are referred to as producers. By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. Note that if you use PutRecord and PutRecordBatch, the limits are an aggregate across these two operations for each delivery stream. For more information about limits and how to request an increase, see Amazon Kinesis Firehose Limits. You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data, for example, a segment from a log file, geographic location data, web site clickstream data, etc. Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\n) or some other character unique within the data. This allows the consumer application(s) to parse individual data items when reading the data from the destination. The PutRecord operation returns a RecordId, which is a unique string assigned to each record. Producer applications can use this ID for purposes such as auditability and investigation. If the PutRecord operation throws a ServiceUnavailableException, back off and retry. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream. Data records sent to Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available. + /// Writes a single data record into an Amazon Kinesis Firehose delivery stream. To write multiple data records into a delivery stream, use PutRecordBatch. Applications using these operations are referred to as producers. By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. Note that if you use PutRecord and PutRecordBatch, the limits are an aggregate across these two operations for each delivery stream. For more information about limits and how to request an increase, see Amazon Kinesis Firehose Limits. You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data, for example, a segment from a log file, geographic location data, website clickstream data, and so on. Kinesis Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\n) or some other character unique within the data. This allows the consumer application to parse individual data items when reading the data from the destination. The PutRecord operation returns a RecordId, which is a unique string assigned to each record. Producer applications can use this ID for purposes such as auditability and investigation. If the PutRecord operation throws a ServiceUnavailableException, back off and retry. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream. Data records sent to Kinesis Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available. public func putRecord(_ input: PutRecordInput) throws -> PutRecordOutput { return try client.send(operation: "PutRecord", path: "/", httpMethod: "POST", input: input) } @@ -50,7 +50,7 @@ public struct Firehose { return try client.send(operation: "DeleteDeliveryStream", path: "/", httpMethod: "POST", input: input) } - /// Updates the specified destination of the specified delivery stream. You can use this operation to change the destination type (for example, to replace the Amazon S3 destination with Amazon Redshift) or change the parameters associated with a destination (for example, to change the bucket name of the Amazon S3 destination). The update might not occur immediately. The target delivery stream remains active while the configurations are updated, so data writes to the delivery stream can continue during this process. The updated configurations are usually effective within a few minutes. Note that switching between Amazon ES and other services is not supported. For an Amazon ES destination, you can only update to another Amazon ES destination. If the destination type is the same, Firehose merges the configuration parameters specified with the destination configuration that already exists on the delivery stream. If any of the parameters are not specified in the call, the existing values are retained. For example, in the Amazon S3 destination, if EncryptionConfiguration is not specified then the existing EncryptionConfiguration is maintained on the destination. If the destination type is not the same, for example, changing the destination from Amazon S3 to Amazon Redshift, Firehose does not merge any parameters. In this case, all parameters must be specified. Firehose uses CurrentDeliveryStreamVersionId to avoid race conditions and conflicting merges. This is a required field, and the service updates the configuration only if the existing configuration has a version ID that matches. After the update is applied successfully, the version ID is updated, and can be retrieved using DescribeDeliveryStream. You should use the new version ID to set CurrentDeliveryStreamVersionId in the next call. + /// Updates the specified destination of the specified delivery stream. You can use this operation to change the destination type (for example, to replace the Amazon S3 destination with Amazon Redshift) or change the parameters associated with a destination (for example, to change the bucket name of the Amazon S3 destination). The update might not occur immediately. The target delivery stream remains active while the configurations are updated, so data writes to the delivery stream can continue during this process. The updated configurations are usually effective within a few minutes. Note that switching between Amazon ES and other services is not supported. For an Amazon ES destination, you can only update to another Amazon ES destination. If the destination type is the same, Kinesis Firehose merges the configuration parameters specified with the destination configuration that already exists on the delivery stream. If any of the parameters are not specified in the call, the existing values are retained. For example, in the Amazon S3 destination, if EncryptionConfiguration is not specified, then the existing EncryptionConfiguration is maintained on the destination. If the destination type is not the same, for example, changing the destination from Amazon S3 to Amazon Redshift, Kinesis Firehose does not merge any parameters. In this case, all parameters must be specified. Kinesis Firehose uses CurrentDeliveryStreamVersionId to avoid race conditions and conflicting merges. This is a required field, and the service updates the configuration only if the existing configuration has a version ID that matches. After the update is applied successfully, the version ID is updated, and can be retrieved using DescribeDeliveryStream. Use the new version ID to set CurrentDeliveryStreamVersionId in the next call. public func updateDestination(_ input: UpdateDestinationInput) throws -> UpdateDestinationOutput { return try client.send(operation: "UpdateDestination", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/firehose/Firehose_Shapes.swift b/Sources/AWSSDKSwift/Services/firehose/Firehose_Shapes.swift index d08a23e9102..79dffa740e3 100644 --- a/Sources/AWSSDKSwift/Services/firehose/Firehose_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/firehose/Firehose_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Firehose { public struct DescribeDeliveryStreamOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryStreamDescription", required: true, type: .structure) ] /// Information about the delivery stream. @@ -24,11 +24,14 @@ extension Firehose { public enum ProcessorParameterName: String, CustomStringConvertible, Codable { case lambdaarn = "LambdaArn" case numberofretries = "NumberOfRetries" + case rolearn = "RoleArn" + case buffersizeinmbs = "BufferSizeInMBs" + case bufferintervalinseconds = "BufferIntervalInSeconds" public var description: String { return self.rawValue } } public struct ProcessingConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Processors", required: false, type: .list), AWSShapeMember(label: "Enabled", required: false, type: .boolean) ] @@ -54,7 +57,7 @@ extension Firehose { } public struct RedshiftDestinationConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CopyCommand", required: true, type: .structure), AWSShapeMember(label: "S3Configuration", required: true, type: .structure), AWSShapeMember(label: "Username", required: true, type: .string), @@ -85,7 +88,7 @@ extension Firehose { public let password: String /// The CloudWatch logging options for your delivery stream. public let cloudWatchLoggingOptions: CloudWatchLoggingOptions? - /// The retry behavior in the event that Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes). + /// The retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes). public let retryOptions: RedshiftRetryOptions? /// The Amazon S3 backup mode. public let s3BackupMode: RedshiftS3BackupMode? @@ -120,7 +123,7 @@ extension Firehose { } public struct CopyCommand: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataTableName", required: true, type: .string), AWSShapeMember(label: "DataTableColumns", required: false, type: .string), AWSShapeMember(label: "CopyOptions", required: false, type: .string) @@ -129,7 +132,7 @@ extension Firehose { public let dataTableName: String /// A comma-separated list of column names. public let dataTableColumns: String? - /// Optional parameters to use with the Amazon Redshift COPY command. For more information, see the "Optional Parameters" section of Amazon Redshift COPY command. Some possible examples that would apply to Firehose are as follows: delimiter '\t' lzop; - fields are delimited with "\t" (TAB character) and compressed using lzop. delimiter '| - fields are delimited with "|" (this is the default delimiter). delimiter '|' escape - the delimiter should be escaped. fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6' - fields are fixed width in the source, with each width specified after every column in the table. JSON 's3://mybucket/jsonpaths.txt' - data is in JSON format, and the path specified is the format of the data. For more examples, see Amazon Redshift COPY command examples. + /// Optional parameters to use with the Amazon Redshift COPY command. For more information, see the "Optional Parameters" section of Amazon Redshift COPY command. Some possible examples that would apply to Kinesis Firehose are as follows: delimiter '\t' lzop; - fields are delimited with "\t" (TAB character) and compressed using lzop. delimiter '|' - fields are delimited with "|" (this is the default delimiter). delimiter '|' escape - the delimiter should be escaped. fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6' - fields are fixed width in the source, with each width specified after every column in the table. JSON 's3://mybucket/jsonpaths.txt' - data is in JSON format, and the path specified is the format of the data. For more examples, see Amazon Redshift COPY command examples. public let copyOptions: String? public init(dataTableName: String, dataTableColumns: String? = nil, copyOptions: String? = nil) { @@ -146,7 +149,7 @@ extension Firehose { } public struct ExtendedS3DestinationConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BucketARN", required: true, type: .string), AWSShapeMember(label: "EncryptionConfiguration", required: false, type: .structure), AWSShapeMember(label: "RoleARN", required: true, type: .string), @@ -168,7 +171,7 @@ extension Firehose { public let s3BackupConfiguration: S3DestinationConfiguration? /// The data processing configuration. public let processingConfiguration: ProcessingConfiguration? - /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. public let prefix: String? /// The Amazon S3 backup mode. public let s3BackupMode: S3BackupMode? @@ -206,17 +209,100 @@ extension Firehose { } } + public struct SplunkDestinationDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RetryOptions", required: false, type: .structure), + AWSShapeMember(label: "S3DestinationDescription", required: false, type: .structure), + AWSShapeMember(label: "HECAcknowledgmentTimeoutInSeconds", required: false, type: .integer), + AWSShapeMember(label: "HECToken", required: false, type: .string), + AWSShapeMember(label: "HECEndpoint", required: false, type: .string), + AWSShapeMember(label: "S3BackupMode", required: false, type: .enum), + AWSShapeMember(label: "ProcessingConfiguration", required: false, type: .structure), + AWSShapeMember(label: "CloudWatchLoggingOptions", required: false, type: .structure), + AWSShapeMember(label: "HECEndpointType", required: false, type: .enum) + ] + /// The retry behavior in case Kinesis Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk. + public let retryOptions: SplunkRetryOptions? + /// The Amazon S3 destination.> + public let s3DestinationDescription: S3DestinationDescription? + /// The amount of time that Kinesis Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period Kinesis Firehose either tries to send the data again or considers it an error, based on your retry settings. + public let hECAcknowledgmentTimeoutInSeconds: Int32? + /// This is a GUID you obtain from your Splunk cluster when you create a new HEC endpoint. + public let hECToken: String? + /// The HTTP Event Collector (HEC) endpoint to which Kinesis Firehose sends your data. + public let hECEndpoint: String? + /// Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Kinesis Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllDocuments, Kinesis Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. Default value is FailedDocumentsOnly. + public let s3BackupMode: SplunkS3BackupMode? + /// The data processing configuration. + public let processingConfiguration: ProcessingConfiguration? + /// The CloudWatch logging options for your delivery stream. + public let cloudWatchLoggingOptions: CloudWatchLoggingOptions? + /// This type can be either "Raw" or "Event". + public let hECEndpointType: HECEndpointType? + + public init(retryOptions: SplunkRetryOptions? = nil, s3DestinationDescription: S3DestinationDescription? = nil, hECAcknowledgmentTimeoutInSeconds: Int32? = nil, hECToken: String? = nil, hECEndpoint: String? = nil, s3BackupMode: SplunkS3BackupMode? = nil, processingConfiguration: ProcessingConfiguration? = nil, cloudWatchLoggingOptions: CloudWatchLoggingOptions? = nil, hECEndpointType: HECEndpointType? = nil) { + self.retryOptions = retryOptions + self.s3DestinationDescription = s3DestinationDescription + self.hECAcknowledgmentTimeoutInSeconds = hECAcknowledgmentTimeoutInSeconds + self.hECToken = hECToken + self.hECEndpoint = hECEndpoint + self.s3BackupMode = s3BackupMode + self.processingConfiguration = processingConfiguration + self.cloudWatchLoggingOptions = cloudWatchLoggingOptions + self.hECEndpointType = hECEndpointType + } + + private enum CodingKeys: String, CodingKey { + case retryOptions = "RetryOptions" + case s3DestinationDescription = "S3DestinationDescription" + case hECAcknowledgmentTimeoutInSeconds = "HECAcknowledgmentTimeoutInSeconds" + case hECToken = "HECToken" + case hECEndpoint = "HECEndpoint" + case s3BackupMode = "S3BackupMode" + case processingConfiguration = "ProcessingConfiguration" + case cloudWatchLoggingOptions = "CloudWatchLoggingOptions" + case hECEndpointType = "HECEndpointType" + } + } + public enum S3BackupMode: String, CustomStringConvertible, Codable { case disabled = "Disabled" case enabled = "Enabled" public var description: String { return self.rawValue } } + public enum DeliveryStreamType: String, CustomStringConvertible, Codable { + case directput = "DirectPut" + case kinesisstreamassource = "KinesisStreamAsSource" + public var description: String { return self.rawValue } + } + + public struct KinesisStreamSourceConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KinesisStreamARN", required: true, type: .string), + AWSShapeMember(label: "RoleARN", required: true, type: .string) + ] + /// The ARN of the source Kinesis stream. + public let kinesisStreamARN: String + /// The ARN of the role that provides access to the source Kinesis stream. + public let roleARN: String + + public init(kinesisStreamARN: String, roleARN: String) { + self.kinesisStreamARN = kinesisStreamARN + self.roleARN = roleARN + } + + private enum CodingKeys: String, CodingKey { + case kinesisStreamARN = "KinesisStreamARN" + case roleARN = "RoleARN" + } + } + public struct ElasticsearchRetryOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DurationInSeconds", required: false, type: .integer) ] - /// After an initial failure to deliver to Amazon ES, the total amount of time during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries. + /// After an initial failure to deliver to Amazon ES, the total amount of time during which Kinesis Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries. public let durationInSeconds: Int32? public init(durationInSeconds: Int32? = nil) { @@ -229,7 +315,7 @@ extension Firehose { } public struct PutRecordOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordId", required: true, type: .string) ] /// The ID of the record. @@ -251,43 +337,65 @@ extension Firehose { } public struct DestinationDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3DestinationDescription", required: false, type: .structure), - AWSShapeMember(label: "DestinationId", required: true, type: .string), + AWSShapeMember(label: "SplunkDestinationDescription", required: false, type: .structure), AWSShapeMember(label: "RedshiftDestinationDescription", required: false, type: .structure), AWSShapeMember(label: "ExtendedS3DestinationDescription", required: false, type: .structure), + AWSShapeMember(label: "DestinationId", required: true, type: .string), AWSShapeMember(label: "ElasticsearchDestinationDescription", required: false, type: .structure) ] /// [Deprecated] The destination in Amazon S3. public let s3DestinationDescription: S3DestinationDescription? - /// The ID of the destination. - public let destinationId: String + /// The destination in Splunk. + public let splunkDestinationDescription: SplunkDestinationDescription? /// The destination in Amazon Redshift. public let redshiftDestinationDescription: RedshiftDestinationDescription? /// The destination in Amazon S3. public let extendedS3DestinationDescription: ExtendedS3DestinationDescription? + /// The ID of the destination. + public let destinationId: String /// The destination in Amazon ES. public let elasticsearchDestinationDescription: ElasticsearchDestinationDescription? - public init(s3DestinationDescription: S3DestinationDescription? = nil, destinationId: String, redshiftDestinationDescription: RedshiftDestinationDescription? = nil, extendedS3DestinationDescription: ExtendedS3DestinationDescription? = nil, elasticsearchDestinationDescription: ElasticsearchDestinationDescription? = nil) { + public init(s3DestinationDescription: S3DestinationDescription? = nil, splunkDestinationDescription: SplunkDestinationDescription? = nil, redshiftDestinationDescription: RedshiftDestinationDescription? = nil, extendedS3DestinationDescription: ExtendedS3DestinationDescription? = nil, destinationId: String, elasticsearchDestinationDescription: ElasticsearchDestinationDescription? = nil) { self.s3DestinationDescription = s3DestinationDescription - self.destinationId = destinationId + self.splunkDestinationDescription = splunkDestinationDescription self.redshiftDestinationDescription = redshiftDestinationDescription self.extendedS3DestinationDescription = extendedS3DestinationDescription + self.destinationId = destinationId self.elasticsearchDestinationDescription = elasticsearchDestinationDescription } private enum CodingKeys: String, CodingKey { case s3DestinationDescription = "S3DestinationDescription" - case destinationId = "DestinationId" + case splunkDestinationDescription = "SplunkDestinationDescription" case redshiftDestinationDescription = "RedshiftDestinationDescription" case extendedS3DestinationDescription = "ExtendedS3DestinationDescription" + case destinationId = "DestinationId" case elasticsearchDestinationDescription = "ElasticsearchDestinationDescription" } } + public struct SourceDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KinesisStreamSourceDescription", required: false, type: .structure) + ] + /// The KinesisStreamSourceDescription value for the source Kinesis stream. + public let kinesisStreamSourceDescription: KinesisStreamSourceDescription? + + public init(kinesisStreamSourceDescription: KinesisStreamSourceDescription? = nil) { + self.kinesisStreamSourceDescription = kinesisStreamSourceDescription + } + + private enum CodingKeys: String, CodingKey { + case kinesisStreamSourceDescription = "KinesisStreamSourceDescription" + } + } + public struct UpdateDestinationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SplunkDestinationUpdate", required: false, type: .structure), AWSShapeMember(label: "ElasticsearchDestinationUpdate", required: false, type: .structure), AWSShapeMember(label: "DeliveryStreamName", required: true, type: .string), AWSShapeMember(label: "CurrentDeliveryStreamVersionId", required: true, type: .string), @@ -296,11 +404,13 @@ extension Firehose { AWSShapeMember(label: "RedshiftDestinationUpdate", required: false, type: .structure), AWSShapeMember(label: "S3DestinationUpdate", required: false, type: .structure) ] + /// Describes an update for a destination in Splunk. + public let splunkDestinationUpdate: SplunkDestinationUpdate? /// Describes an update for a destination in Amazon ES. public let elasticsearchDestinationUpdate: ElasticsearchDestinationUpdate? /// The name of the delivery stream. public let deliveryStreamName: String - /// Obtain this value from the VersionId result of DeliveryStreamDescription. This value is required, and helps the service to perform conditional operations. For example, if there is a interleaving update and this value is null, then the update destination fails. After the update is successful, the VersionId value is updated. The service then performs a merge of the old configuration with the new configuration. + /// Obtain this value from the VersionId result of DeliveryStreamDescription. This value is required, and helps the service to perform conditional operations. For example, if there is an interleaving update and this value is null, then the update destination fails. After the update is successful, the VersionId value is updated. The service then performs a merge of the old configuration with the new configuration. public let currentDeliveryStreamVersionId: String /// The ID of the destination. public let destinationId: String @@ -311,7 +421,8 @@ extension Firehose { /// [Deprecated] Describes an update for a destination in Amazon S3. public let s3DestinationUpdate: S3DestinationUpdate? - public init(elasticsearchDestinationUpdate: ElasticsearchDestinationUpdate? = nil, deliveryStreamName: String, currentDeliveryStreamVersionId: String, destinationId: String, extendedS3DestinationUpdate: ExtendedS3DestinationUpdate? = nil, redshiftDestinationUpdate: RedshiftDestinationUpdate? = nil, s3DestinationUpdate: S3DestinationUpdate? = nil) { + public init(splunkDestinationUpdate: SplunkDestinationUpdate? = nil, elasticsearchDestinationUpdate: ElasticsearchDestinationUpdate? = nil, deliveryStreamName: String, currentDeliveryStreamVersionId: String, destinationId: String, extendedS3DestinationUpdate: ExtendedS3DestinationUpdate? = nil, redshiftDestinationUpdate: RedshiftDestinationUpdate? = nil, s3DestinationUpdate: S3DestinationUpdate? = nil) { + self.splunkDestinationUpdate = splunkDestinationUpdate self.elasticsearchDestinationUpdate = elasticsearchDestinationUpdate self.deliveryStreamName = deliveryStreamName self.currentDeliveryStreamVersionId = currentDeliveryStreamVersionId @@ -322,6 +433,7 @@ extension Firehose { } private enum CodingKeys: String, CodingKey { + case splunkDestinationUpdate = "SplunkDestinationUpdate" case elasticsearchDestinationUpdate = "ElasticsearchDestinationUpdate" case deliveryStreamName = "DeliveryStreamName" case currentDeliveryStreamVersionId = "CurrentDeliveryStreamVersionId" @@ -333,7 +445,7 @@ extension Firehose { } public struct ListDeliveryStreamsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryStreamNames", required: true, type: .list), AWSShapeMember(label: "HasMoreDeliveryStreams", required: true, type: .boolean) ] @@ -354,7 +466,7 @@ extension Firehose { } public struct RedshiftDestinationDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3BackupDescription", required: false, type: .structure), AWSShapeMember(label: "CopyCommand", required: true, type: .structure), AWSShapeMember(label: "Username", required: true, type: .string), @@ -384,7 +496,7 @@ extension Firehose { public let s3BackupMode: RedshiftS3BackupMode? /// The CloudWatch logging options for your delivery stream. public let cloudWatchLoggingOptions: CloudWatchLoggingOptions? - /// The retry behavior in the event that Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes). + /// The retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes). public let retryOptions: RedshiftRetryOptions? public init(s3BackupDescription: S3DestinationDescription? = nil, copyCommand: CopyCommand, username: String, s3DestinationDescription: S3DestinationDescription, clusterJDBCURL: String, roleARN: String, processingConfiguration: ProcessingConfiguration? = nil, s3BackupMode: RedshiftS3BackupMode? = nil, cloudWatchLoggingOptions: CloudWatchLoggingOptions? = nil, retryOptions: RedshiftRetryOptions? = nil) { @@ -415,21 +527,26 @@ extension Firehose { } public struct ListDeliveryStreamsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeliveryStreamType", required: false, type: .enum), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "ExclusiveStartDeliveryStreamName", required: false, type: .string) ] - /// The maximum number of delivery streams to list. + /// The delivery stream type. This can be one of the following values: DirectPut: Provider applications access the delivery stream directly. KinesisStreamAsSource: The delivery stream uses a Kinesis stream as a source. This parameter is optional. If this parameter is omitted, delivery streams of all types are returned. + public let deliveryStreamType: DeliveryStreamType? + /// The maximum number of delivery streams to list. The default value is 10. public let limit: Int32? /// The name of the delivery stream to start the list with. public let exclusiveStartDeliveryStreamName: String? - public init(limit: Int32? = nil, exclusiveStartDeliveryStreamName: String? = nil) { + public init(deliveryStreamType: DeliveryStreamType? = nil, limit: Int32? = nil, exclusiveStartDeliveryStreamName: String? = nil) { + self.deliveryStreamType = deliveryStreamType self.limit = limit self.exclusiveStartDeliveryStreamName = exclusiveStartDeliveryStreamName } private enum CodingKeys: String, CodingKey { + case deliveryStreamType = "DeliveryStreamType" case limit = "Limit" case exclusiveStartDeliveryStreamName = "ExclusiveStartDeliveryStreamName" } @@ -442,13 +559,19 @@ extension Firehose { public var description: String { return self.rawValue } } + public enum HECEndpointType: String, CustomStringConvertible, Codable { + case raw = "Raw" + case event = "Event" + public var description: String { return self.rawValue } + } + public enum ProcessorType: String, CustomStringConvertible, Codable { case lambda = "Lambda" public var description: String { return self.rawValue } } public struct S3DestinationConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BucketARN", required: true, type: .string), AWSShapeMember(label: "EncryptionConfiguration", required: false, type: .structure), AWSShapeMember(label: "Prefix", required: false, type: .string), @@ -461,7 +584,7 @@ extension Firehose { public let bucketARN: String /// The encryption configuration. If no value is specified, the default is no encryption. public let encryptionConfiguration: EncryptionConfiguration? - /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. public let prefix: String? /// The ARN of the AWS credentials. public let roleARN: String @@ -494,7 +617,7 @@ extension Firehose { } public struct S3DestinationDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BucketARN", required: true, type: .string), AWSShapeMember(label: "EncryptionConfiguration", required: true, type: .structure), AWSShapeMember(label: "Prefix", required: false, type: .string), @@ -507,7 +630,7 @@ extension Firehose { public let bucketARN: String /// The encryption configuration. If no value is specified, the default is no encryption. public let encryptionConfiguration: EncryptionConfiguration - /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. public let prefix: String? /// The ARN of the AWS credentials. public let roleARN: String @@ -540,7 +663,7 @@ extension Firehose { } public struct DeleteDeliveryStreamInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryStreamName", required: true, type: .string) ] /// The name of the delivery stream. @@ -555,12 +678,55 @@ extension Firehose { } } + public enum SplunkS3BackupMode: String, CustomStringConvertible, Codable { + case failedeventsonly = "FailedEventsOnly" + case allevents = "AllEvents" + public var description: String { return self.rawValue } + } + public struct UpdateDestinationOutput: AWSShape { } + public struct BufferingHints: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IntervalInSeconds", required: false, type: .integer), + AWSShapeMember(label: "SizeInMBs", required: false, type: .integer) + ] + /// Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + public let intervalInSeconds: Int32? + /// Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher. + public let sizeInMBs: Int32? + + public init(intervalInSeconds: Int32? = nil, sizeInMBs: Int32? = nil) { + self.intervalInSeconds = intervalInSeconds + self.sizeInMBs = sizeInMBs + } + + private enum CodingKeys: String, CodingKey { + case intervalInSeconds = "IntervalInSeconds" + case sizeInMBs = "SizeInMBs" + } + } + + public struct RedshiftRetryOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DurationInSeconds", required: false, type: .integer) + ] + /// The length of time during which Kinesis Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Kinesis Firehose does not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer than the current value. + public let durationInSeconds: Int32? + + public init(durationInSeconds: Int32? = nil) { + self.durationInSeconds = durationInSeconds + } + + private enum CodingKeys: String, CodingKey { + case durationInSeconds = "DurationInSeconds" + } + } + public struct RedshiftDestinationUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProcessingConfiguration", required: false, type: .structure), AWSShapeMember(label: "CopyCommand", required: false, type: .structure), AWSShapeMember(label: "Username", required: false, type: .string), @@ -593,7 +759,7 @@ extension Firehose { public let password: String? /// The CloudWatch logging options for your delivery stream. public let cloudWatchLoggingOptions: CloudWatchLoggingOptions? - /// The retry behavior in the event that Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes). + /// The retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes). public let retryOptions: RedshiftRetryOptions? public init(processingConfiguration: ProcessingConfiguration? = nil, copyCommand: CopyCommand? = nil, username: String? = nil, s3BackupUpdate: S3DestinationUpdate? = nil, clusterJDBCURL: String? = nil, s3BackupMode: RedshiftS3BackupMode? = nil, roleARN: String? = nil, s3Update: S3DestinationUpdate? = nil, password: String? = nil, cloudWatchLoggingOptions: CloudWatchLoggingOptions? = nil, retryOptions: RedshiftRetryOptions? = nil) { @@ -625,45 +791,8 @@ extension Firehose { } } - public struct BufferingHints: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IntervalInSeconds", required: false, type: .integer), - AWSShapeMember(label: "SizeInMBs", required: false, type: .integer) - ] - /// Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. - public let intervalInSeconds: Int32? - /// Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher. - public let sizeInMBs: Int32? - - public init(intervalInSeconds: Int32? = nil, sizeInMBs: Int32? = nil) { - self.intervalInSeconds = intervalInSeconds - self.sizeInMBs = sizeInMBs - } - - private enum CodingKeys: String, CodingKey { - case intervalInSeconds = "IntervalInSeconds" - case sizeInMBs = "SizeInMBs" - } - } - - public struct RedshiftRetryOptions: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DurationInSeconds", required: false, type: .integer) - ] - /// The length of time during which Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Firehose does not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer than the current value. - public let durationInSeconds: Int32? - - public init(durationInSeconds: Int32? = nil) { - self.durationInSeconds = durationInSeconds - } - - private enum CodingKeys: String, CodingKey { - case durationInSeconds = "DurationInSeconds" - } - } - public struct S3DestinationUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BucketARN", required: false, type: .string), AWSShapeMember(label: "EncryptionConfiguration", required: false, type: .structure), AWSShapeMember(label: "Prefix", required: false, type: .string), @@ -676,7 +805,7 @@ extension Firehose { public let bucketARN: String? /// The encryption configuration. If no value is specified, the default is no encryption. public let encryptionConfiguration: EncryptionConfiguration? - /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. public let prefix: String? /// The ARN of the AWS credentials. public let roleARN: String? @@ -709,7 +838,7 @@ extension Firehose { } public struct PutRecordBatchOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RequestResponses", required: true, type: .list), AWSShapeMember(label: "FailedPutCount", required: true, type: .integer) ] @@ -736,7 +865,7 @@ extension Firehose { } public struct CreateDeliveryStreamOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeliveryStreamARN", required: false, type: .string) ] /// The ARN of the delivery stream. @@ -751,8 +880,64 @@ extension Firehose { } } + public struct SplunkDestinationUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RetryOptions", required: false, type: .structure), + AWSShapeMember(label: "HECAcknowledgmentTimeoutInSeconds", required: false, type: .integer), + AWSShapeMember(label: "S3Update", required: false, type: .structure), + AWSShapeMember(label: "HECToken", required: false, type: .string), + AWSShapeMember(label: "HECEndpoint", required: false, type: .string), + AWSShapeMember(label: "S3BackupMode", required: false, type: .enum), + AWSShapeMember(label: "ProcessingConfiguration", required: false, type: .structure), + AWSShapeMember(label: "CloudWatchLoggingOptions", required: false, type: .structure), + AWSShapeMember(label: "HECEndpointType", required: false, type: .enum) + ] + /// The retry behavior in case Kinesis Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk. + public let retryOptions: SplunkRetryOptions? + /// The amount of time that Kinesis Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period Kinesis Firehose either tries to send the data again or considers it an error, based on your retry settings. + public let hECAcknowledgmentTimeoutInSeconds: Int32? + /// Your update to the configuration of the backup Amazon S3 location. + public let s3Update: S3DestinationUpdate? + /// This is a GUID you obtain from your Splunk cluster when you create a new HEC endpoint. + public let hECToken: String? + /// The HTTP Event Collector (HEC) endpoint to which Kinesis Firehose sends your data. + public let hECEndpoint: String? + /// Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Kinesis Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllDocuments, Kinesis Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. Default value is FailedDocumentsOnly. + public let s3BackupMode: SplunkS3BackupMode? + /// The data processing configuration. + public let processingConfiguration: ProcessingConfiguration? + /// The CloudWatch logging options for your delivery stream. + public let cloudWatchLoggingOptions: CloudWatchLoggingOptions? + /// This type can be either "Raw" or "Event". + public let hECEndpointType: HECEndpointType? + + public init(retryOptions: SplunkRetryOptions? = nil, hECAcknowledgmentTimeoutInSeconds: Int32? = nil, s3Update: S3DestinationUpdate? = nil, hECToken: String? = nil, hECEndpoint: String? = nil, s3BackupMode: SplunkS3BackupMode? = nil, processingConfiguration: ProcessingConfiguration? = nil, cloudWatchLoggingOptions: CloudWatchLoggingOptions? = nil, hECEndpointType: HECEndpointType? = nil) { + self.retryOptions = retryOptions + self.hECAcknowledgmentTimeoutInSeconds = hECAcknowledgmentTimeoutInSeconds + self.s3Update = s3Update + self.hECToken = hECToken + self.hECEndpoint = hECEndpoint + self.s3BackupMode = s3BackupMode + self.processingConfiguration = processingConfiguration + self.cloudWatchLoggingOptions = cloudWatchLoggingOptions + self.hECEndpointType = hECEndpointType + } + + private enum CodingKeys: String, CodingKey { + case retryOptions = "RetryOptions" + case hECAcknowledgmentTimeoutInSeconds = "HECAcknowledgmentTimeoutInSeconds" + case s3Update = "S3Update" + case hECToken = "HECToken" + case hECEndpoint = "HECEndpoint" + case s3BackupMode = "S3BackupMode" + case processingConfiguration = "ProcessingConfiguration" + case cloudWatchLoggingOptions = "CloudWatchLoggingOptions" + case hECEndpointType = "HECEndpointType" + } + } + public struct ElasticsearchDestinationUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TypeName", required: false, type: .string), AWSShapeMember(label: "IndexName", required: false, type: .string), AWSShapeMember(label: "IndexRotationPeriod", required: false, type: .enum), @@ -768,11 +953,11 @@ extension Firehose { public let typeName: String? /// The Elasticsearch index name. public let indexName: String? - /// The Elasticsearch index rotation period. Index rotation appends a timestamp to IndexName to facilitate the expiration of old data. For more information, see Index Rotation for Amazon Elasticsearch Service Destination. Default value is OneDay. + /// The Elasticsearch index rotation period. Index rotation appends a time stamp to IndexName to facilitate the expiration of old data. For more information, see Index Rotation for Amazon Elasticsearch Service Destination. Default value is OneDay. public let indexRotationPeriod: ElasticsearchIndexRotationPeriod? /// The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeElasticsearchDomain, DescribeElasticsearchDomains, and DescribeElasticsearchDomainConfig after assuming the IAM role specified in RoleARN. public let domainARN: String? - /// The ARN of the IAM role to be assumed by Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Amazon S3 Bucket Access. + /// The ARN of the IAM role to be assumed by Kinesis Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Amazon S3 Bucket Access. public let roleARN: String? /// The Amazon S3 destination. public let s3Update: S3DestinationUpdate? @@ -780,7 +965,7 @@ extension Firehose { public let processingConfiguration: ProcessingConfiguration? /// The CloudWatch logging options for your delivery stream. public let cloudWatchLoggingOptions: CloudWatchLoggingOptions? - /// The retry behavior in the event that Firehose is unable to deliver documents to Amazon ES. Default value is 300 (5 minutes). + /// The retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes). public let retryOptions: ElasticsearchRetryOptions? /// The buffering options. If no value is specified, ElasticsearchBufferingHints object default values are used. public let bufferingHints: ElasticsearchBufferingHints? @@ -812,44 +997,75 @@ extension Firehose { } } + public struct SplunkRetryOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DurationInSeconds", required: false, type: .integer) + ] + /// The total amount of time that Kinesis Firehose spends on retries. This duration starts after the initial attempt to send data to Splunk fails and doesn't include the periods during which Kinesis Firehose waits for acknowledgment from Splunk after each attempt. + public let durationInSeconds: Int32? + + public init(durationInSeconds: Int32? = nil) { + self.durationInSeconds = durationInSeconds + } + + private enum CodingKeys: String, CodingKey { + case durationInSeconds = "DurationInSeconds" + } + } + public struct CreateDeliveryStreamInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticsearchDestinationConfiguration", required: false, type: .structure), - AWSShapeMember(label: "ExtendedS3DestinationConfiguration", required: false, type: .structure), + AWSShapeMember(label: "KinesisStreamSourceConfiguration", required: false, type: .structure), + AWSShapeMember(label: "DeliveryStreamType", required: false, type: .enum), AWSShapeMember(label: "S3DestinationConfiguration", required: false, type: .structure), + AWSShapeMember(label: "DeliveryStreamName", required: true, type: .string), + AWSShapeMember(label: "ExtendedS3DestinationConfiguration", required: false, type: .structure), AWSShapeMember(label: "RedshiftDestinationConfiguration", required: false, type: .structure), - AWSShapeMember(label: "DeliveryStreamName", required: true, type: .string) + AWSShapeMember(label: "SplunkDestinationConfiguration", required: false, type: .structure) ] /// The destination in Amazon ES. You can specify only one destination. public let elasticsearchDestinationConfiguration: ElasticsearchDestinationConfiguration? - /// The destination in Amazon S3. You can specify only one destination. - public let extendedS3DestinationConfiguration: ExtendedS3DestinationConfiguration? + /// When a Kinesis stream is used as the source for the delivery stream, a KinesisStreamSourceConfiguration containing the Kinesis stream ARN and the role ARN for the source stream. + public let kinesisStreamSourceConfiguration: KinesisStreamSourceConfiguration? + /// The delivery stream type. This parameter can be one of the following values: DirectPut: Provider applications access the delivery stream directly. KinesisStreamAsSource: The delivery stream uses a Kinesis stream as a source. + public let deliveryStreamType: DeliveryStreamType? /// [Deprecated] The destination in Amazon S3. You can specify only one destination. public let s3DestinationConfiguration: S3DestinationConfiguration? + /// The name of the delivery stream. This name must be unique per AWS account in the same region. If the delivery streams are in different accounts or different regions, you can have multiple delivery streams with the same name. + public let deliveryStreamName: String + /// The destination in Amazon S3. You can specify only one destination. + public let extendedS3DestinationConfiguration: ExtendedS3DestinationConfiguration? /// The destination in Amazon Redshift. You can specify only one destination. public let redshiftDestinationConfiguration: RedshiftDestinationConfiguration? - /// The name of the delivery stream. This name must be unique per AWS account in the same region. You can have multiple delivery streams with the same name if they are in different accounts or different regions. - public let deliveryStreamName: String + /// The destination in Splunk. You can specify only one destination. + public let splunkDestinationConfiguration: SplunkDestinationConfiguration? - public init(elasticsearchDestinationConfiguration: ElasticsearchDestinationConfiguration? = nil, extendedS3DestinationConfiguration: ExtendedS3DestinationConfiguration? = nil, s3DestinationConfiguration: S3DestinationConfiguration? = nil, redshiftDestinationConfiguration: RedshiftDestinationConfiguration? = nil, deliveryStreamName: String) { + public init(elasticsearchDestinationConfiguration: ElasticsearchDestinationConfiguration? = nil, kinesisStreamSourceConfiguration: KinesisStreamSourceConfiguration? = nil, deliveryStreamType: DeliveryStreamType? = nil, s3DestinationConfiguration: S3DestinationConfiguration? = nil, deliveryStreamName: String, extendedS3DestinationConfiguration: ExtendedS3DestinationConfiguration? = nil, redshiftDestinationConfiguration: RedshiftDestinationConfiguration? = nil, splunkDestinationConfiguration: SplunkDestinationConfiguration? = nil) { self.elasticsearchDestinationConfiguration = elasticsearchDestinationConfiguration - self.extendedS3DestinationConfiguration = extendedS3DestinationConfiguration + self.kinesisStreamSourceConfiguration = kinesisStreamSourceConfiguration + self.deliveryStreamType = deliveryStreamType self.s3DestinationConfiguration = s3DestinationConfiguration - self.redshiftDestinationConfiguration = redshiftDestinationConfiguration self.deliveryStreamName = deliveryStreamName + self.extendedS3DestinationConfiguration = extendedS3DestinationConfiguration + self.redshiftDestinationConfiguration = redshiftDestinationConfiguration + self.splunkDestinationConfiguration = splunkDestinationConfiguration } private enum CodingKeys: String, CodingKey { case elasticsearchDestinationConfiguration = "ElasticsearchDestinationConfiguration" - case extendedS3DestinationConfiguration = "ExtendedS3DestinationConfiguration" + case kinesisStreamSourceConfiguration = "KinesisStreamSourceConfiguration" + case deliveryStreamType = "DeliveryStreamType" case s3DestinationConfiguration = "S3DestinationConfiguration" - case redshiftDestinationConfiguration = "RedshiftDestinationConfiguration" case deliveryStreamName = "DeliveryStreamName" + case extendedS3DestinationConfiguration = "ExtendedS3DestinationConfiguration" + case redshiftDestinationConfiguration = "RedshiftDestinationConfiguration" + case splunkDestinationConfiguration = "SplunkDestinationConfiguration" } } public struct ElasticsearchDestinationConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TypeName", required: true, type: .string), AWSShapeMember(label: "IndexName", required: true, type: .string), AWSShapeMember(label: "S3Configuration", required: true, type: .structure), @@ -866,21 +1082,21 @@ extension Firehose { public let typeName: String /// The Elasticsearch index name. public let indexName: String - /// The configuration for the intermediate Amazon S3 location from which Amazon ES obtains data. + /// The configuration for the backup Amazon S3 location. public let s3Configuration: S3DestinationConfiguration - /// The Elasticsearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. For more information, see Index Rotation for Amazon Elasticsearch Service Destination. The default value is OneDay. + /// The Elasticsearch index rotation period. Index rotation appends a time stamp to the IndexName to facilitate the expiration of old data. For more information, see Index Rotation for Amazon Elasticsearch Service Destination. The default value is OneDay. public let indexRotationPeriod: ElasticsearchIndexRotationPeriod? /// The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeElasticsearchDomain, DescribeElasticsearchDomains, and DescribeElasticsearchDomainConfig after assuming the role specified in RoleARN. public let domainARN: String - /// The ARN of the IAM role to be assumed by Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Amazon S3 Bucket Access. + /// The ARN of the IAM role to be assumed by Kinesis Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Amazon S3 Bucket Access. public let roleARN: String /// The data processing configuration. public let processingConfiguration: ProcessingConfiguration? - /// Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with elasticsearch-failed/ appended to the key prefix. When set to AllDocuments, Firehose delivers all incoming records to Amazon S3, and also writes failed documents with elasticsearch-failed/ appended to the prefix. For more information, see Amazon S3 Backup for Amazon Elasticsearch Service Destination. Default value is FailedDocumentsOnly. + /// Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Kinesis Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with elasticsearch-failed/ appended to the key prefix. When set to AllDocuments, Kinesis Firehose delivers all incoming records to Amazon S3, and also writes failed documents with elasticsearch-failed/ appended to the prefix. For more information, see Amazon S3 Backup for Amazon Elasticsearch Service Destination. Default value is FailedDocumentsOnly. public let s3BackupMode: ElasticsearchS3BackupMode? /// The CloudWatch logging options for your delivery stream. public let cloudWatchLoggingOptions: CloudWatchLoggingOptions? - /// The retry behavior in the event that Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes). + /// The retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes). public let retryOptions: ElasticsearchRetryOptions? /// The buffering options. If no value is specified, the default values for ElasticsearchBufferingHints are used. public let bufferingHints: ElasticsearchBufferingHints? @@ -915,7 +1131,7 @@ extension Firehose { } public struct Record: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Data", required: true, type: .blob) ] /// The data blob, which is base64-encoded when the blob is serialized. The maximum size of the data blob, before base64-encoding, is 1,000 KB. @@ -931,7 +1147,7 @@ extension Firehose { } public struct PutRecordBatchInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Records", required: true, type: .list), AWSShapeMember(label: "DeliveryStreamName", required: true, type: .string) ] @@ -952,7 +1168,7 @@ extension Firehose { } public struct ProcessorParameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterName", required: true, type: .enum), AWSShapeMember(label: "ParameterValue", required: true, type: .string) ] @@ -973,7 +1189,7 @@ extension Firehose { } public struct KMSEncryptionConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AWSKMSKeyARN", required: true, type: .string) ] /// The ARN of the encryption key. Must belong to the same region as the destination Amazon S3 bucket. @@ -989,7 +1205,7 @@ extension Firehose { } public struct ExtendedS3DestinationDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3BackupDescription", required: false, type: .structure), AWSShapeMember(label: "BucketARN", required: true, type: .string), AWSShapeMember(label: "EncryptionConfiguration", required: true, type: .structure), @@ -1011,7 +1227,7 @@ extension Firehose { public let roleARN: String /// The data processing configuration. public let processingConfiguration: ProcessingConfiguration? - /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. public let prefix: String? /// The Amazon S3 backup mode. public let s3BackupMode: S3BackupMode? @@ -1058,7 +1274,7 @@ extension Firehose { } public struct PutRecordInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Record", required: true, type: .structure), AWSShapeMember(label: "DeliveryStreamName", required: true, type: .string) ] @@ -1082,6 +1298,62 @@ extension Firehose { } + public struct SplunkDestinationConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3Configuration", required: true, type: .structure), + AWSShapeMember(label: "HECAcknowledgmentTimeoutInSeconds", required: false, type: .integer), + AWSShapeMember(label: "ProcessingConfiguration", required: false, type: .structure), + AWSShapeMember(label: "HECToken", required: true, type: .string), + AWSShapeMember(label: "S3BackupMode", required: false, type: .enum), + AWSShapeMember(label: "HECEndpoint", required: true, type: .string), + AWSShapeMember(label: "CloudWatchLoggingOptions", required: false, type: .structure), + AWSShapeMember(label: "HECEndpointType", required: true, type: .enum), + AWSShapeMember(label: "RetryOptions", required: false, type: .structure) + ] + /// The configuration for the backup Amazon S3 location. + public let s3Configuration: S3DestinationConfiguration + /// The amount of time that Kinesis Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period Kinesis Firehose either tries to send the data again or considers it an error, based on your retry settings. + public let hECAcknowledgmentTimeoutInSeconds: Int32? + /// The data processing configuration. + public let processingConfiguration: ProcessingConfiguration? + /// This is a GUID you obtain from your Splunk cluster when you create a new HEC endpoint. + public let hECToken: String + /// Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Kinesis Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllDocuments, Kinesis Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. Default value is FailedDocumentsOnly. + public let s3BackupMode: SplunkS3BackupMode? + /// The HTTP Event Collector (HEC) endpoint to which Kinesis Firehose sends your data. + public let hECEndpoint: String + /// The CloudWatch logging options for your delivery stream. + public let cloudWatchLoggingOptions: CloudWatchLoggingOptions? + /// This type can be either "Raw" or "Event". + public let hECEndpointType: HECEndpointType + /// The retry behavior in case Kinesis Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk. + public let retryOptions: SplunkRetryOptions? + + public init(s3Configuration: S3DestinationConfiguration, hECAcknowledgmentTimeoutInSeconds: Int32? = nil, processingConfiguration: ProcessingConfiguration? = nil, hECToken: String, s3BackupMode: SplunkS3BackupMode? = nil, hECEndpoint: String, cloudWatchLoggingOptions: CloudWatchLoggingOptions? = nil, hECEndpointType: HECEndpointType, retryOptions: SplunkRetryOptions? = nil) { + self.s3Configuration = s3Configuration + self.hECAcknowledgmentTimeoutInSeconds = hECAcknowledgmentTimeoutInSeconds + self.processingConfiguration = processingConfiguration + self.hECToken = hECToken + self.s3BackupMode = s3BackupMode + self.hECEndpoint = hECEndpoint + self.cloudWatchLoggingOptions = cloudWatchLoggingOptions + self.hECEndpointType = hECEndpointType + self.retryOptions = retryOptions + } + + private enum CodingKeys: String, CodingKey { + case s3Configuration = "S3Configuration" + case hECAcknowledgmentTimeoutInSeconds = "HECAcknowledgmentTimeoutInSeconds" + case processingConfiguration = "ProcessingConfiguration" + case hECToken = "HECToken" + case s3BackupMode = "S3BackupMode" + case hECEndpoint = "HECEndpoint" + case cloudWatchLoggingOptions = "CloudWatchLoggingOptions" + case hECEndpointType = "HECEndpointType" + case retryOptions = "RetryOptions" + } + } + public enum ElasticsearchIndexRotationPeriod: String, CustomStringConvertible, Codable { case norotation = "NoRotation" case onehour = "OneHour" @@ -1092,7 +1364,7 @@ extension Firehose { } public struct Processor: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Parameters", required: false, type: .list) ] @@ -1112,8 +1384,34 @@ extension Firehose { } } + public struct DescribeDeliveryStreamInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ExclusiveStartDestinationId", required: false, type: .string), + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "DeliveryStreamName", required: true, type: .string) + ] + /// The ID of the destination to start returning the destination information. Currently, Kinesis Firehose supports one destination per delivery stream. + public let exclusiveStartDestinationId: String? + /// The limit on the number of destinations to return. Currently, you can have one destination per delivery stream. + public let limit: Int32? + /// The name of the delivery stream. + public let deliveryStreamName: String + + public init(exclusiveStartDestinationId: String? = nil, limit: Int32? = nil, deliveryStreamName: String) { + self.exclusiveStartDestinationId = exclusiveStartDestinationId + self.limit = limit + self.deliveryStreamName = deliveryStreamName + } + + private enum CodingKeys: String, CodingKey { + case exclusiveStartDestinationId = "ExclusiveStartDestinationId" + case limit = "Limit" + case deliveryStreamName = "DeliveryStreamName" + } + } + public struct ExtendedS3DestinationUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BucketARN", required: false, type: .string), AWSShapeMember(label: "EncryptionConfiguration", required: false, type: .structure), AWSShapeMember(label: "RoleARN", required: false, type: .string), @@ -1135,7 +1433,7 @@ extension Firehose { public let s3BackupUpdate: S3DestinationUpdate? /// The data processing configuration. public let processingConfiguration: ProcessingConfiguration? - /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide. public let prefix: String? /// Enables or disables Amazon S3 backup mode. public let s3BackupMode: S3BackupMode? @@ -1173,8 +1471,34 @@ extension Firehose { } } + public struct KinesisStreamSourceDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeliveryStartTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "KinesisStreamARN", required: false, type: .string), + AWSShapeMember(label: "RoleARN", required: false, type: .string) + ] + /// Kinesis Firehose starts retrieving records from the Kinesis stream starting with this time stamp. + public let deliveryStartTimestamp: TimeStamp? + /// The ARN of the source Kinesis stream. + public let kinesisStreamARN: String? + /// The ARN of the role used by the source Kinesis stream. + public let roleARN: String? + + public init(deliveryStartTimestamp: TimeStamp? = nil, kinesisStreamARN: String? = nil, roleARN: String? = nil) { + self.deliveryStartTimestamp = deliveryStartTimestamp + self.kinesisStreamARN = kinesisStreamARN + self.roleARN = roleARN + } + + private enum CodingKeys: String, CodingKey { + case deliveryStartTimestamp = "DeliveryStartTimestamp" + case kinesisStreamARN = "KinesisStreamARN" + case roleARN = "RoleARN" + } + } + public struct CloudWatchLoggingOptions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LogStreamName", required: false, type: .string), AWSShapeMember(label: "LogGroupName", required: false, type: .string), AWSShapeMember(label: "Enabled", required: false, type: .boolean) @@ -1199,40 +1523,14 @@ extension Firehose { } } - public struct DescribeDeliveryStreamInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ExclusiveStartDestinationId", required: false, type: .string), - AWSShapeMember(label: "Limit", required: false, type: .integer), - AWSShapeMember(label: "DeliveryStreamName", required: true, type: .string) - ] - /// The ID of the destination to start returning the destination information. Currently Firehose supports one destination per delivery stream. - public let exclusiveStartDestinationId: String? - /// The limit on the number of destinations to return. Currently, you can have one destination per delivery stream. - public let limit: Int32? - /// The name of the delivery stream. - public let deliveryStreamName: String - - public init(exclusiveStartDestinationId: String? = nil, limit: Int32? = nil, deliveryStreamName: String) { - self.exclusiveStartDestinationId = exclusiveStartDestinationId - self.limit = limit - self.deliveryStreamName = deliveryStreamName - } - - private enum CodingKeys: String, CodingKey { - case exclusiveStartDestinationId = "ExclusiveStartDestinationId" - case limit = "Limit" - case deliveryStreamName = "DeliveryStreamName" - } - } - public struct EncryptionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KMSEncryptionConfig", required: false, type: .structure), AWSShapeMember(label: "NoEncryptionConfig", required: false, type: .enum) ] /// The encryption key. public let kMSEncryptionConfig: KMSEncryptionConfig? - /// Specifically override existing encryption information to ensure no encryption is used. + /// Specifically override existing encryption information to ensure that no encryption is used. public let noEncryptionConfig: NoEncryptionConfig? public init(kMSEncryptionConfig: KMSEncryptionConfig? = nil, noEncryptionConfig: NoEncryptionConfig? = nil) { @@ -1247,18 +1545,22 @@ extension Firehose { } public struct DeliveryStreamDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Destinations", required: true, type: .list), + AWSShapeMember(label: "DeliveryStreamType", required: true, type: .enum), AWSShapeMember(label: "DeliveryStreamStatus", required: true, type: .enum), AWSShapeMember(label: "LastUpdateTimestamp", required: false, type: .timestamp), AWSShapeMember(label: "DeliveryStreamName", required: true, type: .string), AWSShapeMember(label: "VersionId", required: true, type: .string), AWSShapeMember(label: "CreateTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "Source", required: false, type: .structure), AWSShapeMember(label: "DeliveryStreamARN", required: true, type: .string), AWSShapeMember(label: "HasMoreDestinations", required: true, type: .boolean) ] /// The destinations. public let destinations: [DestinationDescription] + /// The delivery stream type. This can be one of the following values: DirectPut: Provider applications access the delivery stream directly. KinesisStreamAsSource: The delivery stream uses a Kinesis stream as a source. + public let deliveryStreamType: DeliveryStreamType /// The status of the delivery stream. public let deliveryStreamStatus: DeliveryStreamStatus /// The date and time that the delivery stream was last updated. @@ -1269,36 +1571,42 @@ extension Firehose { public let versionId: String /// The date and time that the delivery stream was created. public let createTimestamp: TimeStamp? + /// If the DeliveryStreamType parameter is KinesisStreamAsSource, a SourceDescription object describing the source Kinesis stream. + public let source: SourceDescription? /// The Amazon Resource Name (ARN) of the delivery stream. public let deliveryStreamARN: String /// Indicates whether there are more destinations available to list. public let hasMoreDestinations: Bool - public init(destinations: [DestinationDescription], deliveryStreamStatus: DeliveryStreamStatus, lastUpdateTimestamp: TimeStamp? = nil, deliveryStreamName: String, versionId: String, createTimestamp: TimeStamp? = nil, deliveryStreamARN: String, hasMoreDestinations: Bool) { + public init(destinations: [DestinationDescription], deliveryStreamType: DeliveryStreamType, deliveryStreamStatus: DeliveryStreamStatus, lastUpdateTimestamp: TimeStamp? = nil, deliveryStreamName: String, versionId: String, createTimestamp: TimeStamp? = nil, source: SourceDescription? = nil, deliveryStreamARN: String, hasMoreDestinations: Bool) { self.destinations = destinations + self.deliveryStreamType = deliveryStreamType self.deliveryStreamStatus = deliveryStreamStatus self.lastUpdateTimestamp = lastUpdateTimestamp self.deliveryStreamName = deliveryStreamName self.versionId = versionId self.createTimestamp = createTimestamp + self.source = source self.deliveryStreamARN = deliveryStreamARN self.hasMoreDestinations = hasMoreDestinations } private enum CodingKeys: String, CodingKey { case destinations = "Destinations" + case deliveryStreamType = "DeliveryStreamType" case deliveryStreamStatus = "DeliveryStreamStatus" case lastUpdateTimestamp = "LastUpdateTimestamp" case deliveryStreamName = "DeliveryStreamName" case versionId = "VersionId" case createTimestamp = "CreateTimestamp" + case source = "Source" case deliveryStreamARN = "DeliveryStreamARN" case hasMoreDestinations = "HasMoreDestinations" } } public struct ElasticsearchDestinationDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TypeName", required: false, type: .string), AWSShapeMember(label: "IndexName", required: false, type: .string), AWSShapeMember(label: "IndexRotationPeriod", required: false, type: .enum), @@ -1364,7 +1672,7 @@ extension Firehose { } public struct ElasticsearchBufferingHints: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SizeInMBs", required: false, type: .integer), AWSShapeMember(label: "IntervalInSeconds", required: false, type: .integer) ] @@ -1385,7 +1693,7 @@ extension Firehose { } public struct PutRecordBatchResponseEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordId", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .string), AWSShapeMember(label: "ErrorMessage", required: false, type: .string) diff --git a/Sources/AWSSDKSwift/Services/gamelift/Gamelift_API.swift b/Sources/AWSSDKSwift/Services/gamelift/Gamelift_API.swift index 6703abeac45..9b5e7cfbd61 100644 --- a/Sources/AWSSDKSwift/Services/gamelift/Gamelift_API.swift +++ b/Sources/AWSSDKSwift/Services/gamelift/Gamelift_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon GameLift Service Amazon GameLift is a managed service for developers who need a scalable, dedicated server solution for their multiplayer games. Amazon GameLift provides tools for the following tasks: (1) acquire computing resources and deploy game servers, (2) scale game server capacity to meet player demand, (3) host game sessions and manage player access, and (4) track in-depth metrics on player usage and server performance. The Amazon GameLift service API includes two important function sets: Manage game sessions and player access – Retrieve information on available game sessions; create new game sessions; send player requests to join a game session. Configure and manage game server resources – Manage builds, fleets, queues, and aliases; set autoscaling policies; retrieve logs and metrics. This reference guide describes the low-level service API for Amazon GameLift. You can use the API functionality with these tools: The Amazon Web Services software development kit (AWS SDK) is available in multiple languages including C++ and C#. Use the SDK to access the API programmatically from an application, such as a game client. The AWS command-line interface (CLI) tool is primarily useful for handling administrative actions, such as setting up and managing Amazon GameLift settings and resources. You can use the AWS CLI to manage all of your AWS services. The AWS Management Console for Amazon GameLift provides a web interface to manage your Amazon GameLift settings and resources. The console includes a dashboard for tracking key resources, includings builds and fleets, and displays usage and performance metrics for your games as customizable graphs. Amazon GameLift Local is a tool for testing your game's integration with Amazon GameLift before deploying it on the service. This tools supports a subset of key API actions, which can be called from either the AWS CLI or programmatically. See Testing an Integration. MORE RESOURCES Amazon GameLift Developer Guide – Learn more about Amazon GameLift features and how to use them. Lumberyard and Amazon GameLift Tutorials – Get started fast with walkthroughs and sample projects. GameDev Blog – Stay up to date with new features and techniques. GameDev Forums – Connect with the GameDev community. Amazon GameLift Document History – See changes to the Amazon GameLift service, SDKs, and documentation, as well as links to release notes. API SUMMARY This list offers a functional overview of the Amazon GameLift service API. Managing Games and Players These actions allow you to start new game sessions, find existing game sessions, track status and other game session information, and enable access for players to join game sessions. Discover existing game sessions SearchGameSessions – Get all available game sessions or search for game sessions that match a set of criteria. Start a new game session Game session placement – Use a queue to process requests for new game sessions and place them on the best available fleet. Placement requests are asynchronous; game sessions are started whenever acceptable resources become available. StartGameSessionPlacement – Request a new game session placement and add one or more players to it. DescribeGameSessionPlacement – Get details on a placement request, including status. StopGameSessionPlacement – Cancel a placement request. CreateGameSession – Request a new game session on a specific fleet. Available in Amazon GameLift Local. Manage game session data DescribeGameSessions – Retrieve metadata for one or more game sessions, including length of time active and current player count. Available in Amazon GameLift Local. DescribeGameSessionDetails – Retrieve metadata and the game session protection setting for one or more game sessions. UpdateGameSession – Change game session settings, such as maximum player count and join policy. GetGameSessionLogUrl – Get the location of saved logs for a game session. Manage player sessions CreatePlayerSession – Send a request for a player to join a game session. Available in Amazon GameLift Local. CreatePlayerSessions – Send a request for multiple players to join a game session. Available in Amazon GameLift Local. DescribePlayerSessions – Get details on player activity, including status, playing time, and player data. Available in Amazon GameLift Local. Setting Up and Managing Game Servers When setting up Amazon GameLift resources for your game, you first create a game build and upload it to Amazon GameLift. You can then use these actions to configure and manage a fleet of resources to run your game servers, scale capacity to meet player demand, access performance and utilization metrics, and more. Manage game builds CreateBuild – Create a new build using files stored in an Amazon S3 bucket. (Update uploading permissions with RequestUploadCredentials.) To create a build and upload files from a local path, use the AWS CLI command upload-build. ListBuilds – Get a list of all builds uploaded to a Amazon GameLift region. DescribeBuild – Retrieve information associated with a build. UpdateBuild – Change build metadata, including build name and version. DeleteBuild – Remove a build from Amazon GameLift. Manage fleets CreateFleet – Configure and activate a new fleet to run a build's game servers. ListFleets – Get a list of all fleet IDs in a Amazon GameLift region (all statuses). DeleteFleet – Terminate a fleet that is no longer running game servers or hosting players. View / update fleet configurations. DescribeFleetAttributes / UpdateFleetAttributes – View or change a fleet's metadata and settings for game session protection and resource creation limits. DescribeFleetPortSettings / UpdateFleetPortSettings – View or change the inbound permissions (IP address and port setting ranges) allowed for a fleet. DescribeRuntimeConfiguration / UpdateRuntimeConfiguration – View or change what server processes (and how many) to run on each instance in a fleet. Control fleet capacity DescribeEC2InstanceLimits – Retrieve maximum number of instances allowed for the current AWS account and the current usage level. DescribeFleetCapacity / UpdateFleetCapacity – Retrieve the capacity settings and the current number of instances in a fleet; adjust fleet capacity settings to scale up or down. Autoscale – Manage autoscaling rules and apply them to a fleet. PutScalingPolicy – Create a new autoscaling policy, or update an existing one. DescribeScalingPolicies – Retrieve an existing autoscaling policy. DeleteScalingPolicy – Delete an autoscaling policy and stop it from affecting a fleet's capacity. Access fleet activity statistics DescribeFleetUtilization – Get current data on the number of server processes, game sessions, and players currently active on a fleet. DescribeFleetEvents – Get a fleet's logged events for a specified time span. DescribeGameSessions – Retrieve metadata associated with one or more game sessions, including length of time active and current player count. Remotely access an instance DescribeInstances – Get information on each instance in a fleet, including instance ID, IP address, and status. GetInstanceAccess – Request access credentials needed to remotely connect to a specified instance in a fleet. Manage fleet aliases CreateAlias – Define a new alias and optionally assign it to a fleet. ListAliases – Get all fleet aliases defined in a Amazon GameLift region. DescribeAlias – Retrieve information on an existing alias. UpdateAlias – Change settings for a alias, such as redirecting it from one fleet to another. DeleteAlias – Remove an alias from the region. ResolveAlias – Get the fleet ID that a specified alias points to. Manage game session queues CreateGameSessionQueue – Create a queue for processing requests for new game sessions. DescribeGameSessionQueues – Get data on all game session queues defined in a Amazon GameLift region. UpdateGameSessionQueue – Change the configuration of a game session queue. DeleteGameSessionQueue – Remove a game session queue from the region. +Amazon GameLift Service Amazon GameLift is a managed service for developers who need a scalable, dedicated server solution for their multiplayer games. Amazon GameLift provides tools for the following tasks: (1) acquire computing resources and deploy game servers, (2) scale game server capacity to meet player demand, (3) host game sessions and manage player access, and (4) track in-depth metrics on player usage and server performance. The Amazon GameLift service API includes two important function sets: Manage game sessions and player access -- Retrieve information on available game sessions; create new game sessions; send player requests to join a game session. Configure and manage game server resources -- Manage builds, fleets, queues, and aliases; set autoscaling policies; retrieve logs and metrics. This reference guide describes the low-level service API for Amazon GameLift. You can use the API functionality with these tools: The Amazon Web Services software development kit (AWS SDK) is available in multiple languages including C++ and C#. Use the SDK to access the API programmatically from an application, such as a game client. The AWS command-line interface (CLI) tool is primarily useful for handling administrative actions, such as setting up and managing Amazon GameLift settings and resources. You can use the AWS CLI to manage all of your AWS services. The AWS Management Console for Amazon GameLift provides a web interface to manage your Amazon GameLift settings and resources. The console includes a dashboard for tracking key resources, including builds and fleets, and displays usage and performance metrics for your games as customizable graphs. Amazon GameLift Local is a tool for testing your game's integration with Amazon GameLift before deploying it on the service. This tools supports a subset of key API actions, which can be called from either the AWS CLI or programmatically. See Testing an Integration. MORE RESOURCES Amazon GameLift Developer Guide -- Learn more about Amazon GameLift features and how to use them. Lumberyard and Amazon GameLift Tutorials -- Get started fast with walkthroughs and sample projects. GameDev Blog -- Stay up to date with new features and techniques. GameDev Forums -- Connect with the GameDev community. Amazon GameLift Document History -- See changes to the Amazon GameLift service, SDKs, and documentation, as well as links to release notes. API SUMMARY This list offers a functional overview of the Amazon GameLift service API. Managing Games and Players Use these actions to start new game sessions, find existing game sessions, track game session status and other information, and enable player access to game sessions. Discover existing game sessions SearchGameSessions -- Retrieve all available game sessions or search for game sessions that match a set of criteria. Start new game sessions Start new games with Queues to find the best available hosting resources across multiple regions, minimize player latency, and balance game session activity for efficiency and cost effectiveness. StartGameSessionPlacement -- Request a new game session placement and add one or more players to it. DescribeGameSessionPlacement -- Get details on a placement request, including status. StopGameSessionPlacement -- Cancel a placement request. CreateGameSession -- Start a new game session on a specific fleet. Available in Amazon GameLift Local. Start new game sessions with FlexMatch matchmaking StartMatchmaking -- Request matchmaking for one players or a group who want to play together. DescribeMatchmaking -- Get details on a matchmaking request, including status. AcceptMatch -- Register that a player accepts a proposed match, for matches that require player acceptance. StopMatchmaking -- Cancel a matchmaking request. Manage game session data DescribeGameSessions -- Retrieve metadata for one or more game sessions, including length of time active and current player count. Available in Amazon GameLift Local. DescribeGameSessionDetails -- Retrieve metadata and the game session protection setting for one or more game sessions. UpdateGameSession -- Change game session settings, such as maximum player count and join policy. GetGameSessionLogUrl -- Get the location of saved logs for a game session. Manage player sessions CreatePlayerSession -- Send a request for a player to join a game session. Available in Amazon GameLift Local. CreatePlayerSessions -- Send a request for multiple players to join a game session. Available in Amazon GameLift Local. DescribePlayerSessions -- Get details on player activity, including status, playing time, and player data. Available in Amazon GameLift Local. Setting Up and Managing Game Servers When setting up Amazon GameLift resources for your game, you first create a game build and upload it to Amazon GameLift. You can then use these actions to configure and manage a fleet of resources to run your game servers, scale capacity to meet player demand, access performance and utilization metrics, and more. Manage game builds CreateBuild -- Create a new build using files stored in an Amazon S3 bucket. (Update uploading permissions with RequestUploadCredentials.) To create a build and upload files from a local path, use the AWS CLI command upload-build. ListBuilds -- Get a list of all builds uploaded to a Amazon GameLift region. DescribeBuild -- Retrieve information associated with a build. UpdateBuild -- Change build metadata, including build name and version. DeleteBuild -- Remove a build from Amazon GameLift. Manage fleets CreateFleet -- Configure and activate a new fleet to run a build's game servers. ListFleets -- Get a list of all fleet IDs in a Amazon GameLift region (all statuses). DeleteFleet -- Terminate a fleet that is no longer running game servers or hosting players. View / update fleet configurations. DescribeFleetAttributes / UpdateFleetAttributes -- View or change a fleet's metadata and settings for game session protection and resource creation limits. DescribeFleetPortSettings / UpdateFleetPortSettings -- View or change the inbound permissions (IP address and port setting ranges) allowed for a fleet. DescribeRuntimeConfiguration / UpdateRuntimeConfiguration -- View or change what server processes (and how many) to run on each instance in a fleet. Control fleet capacity DescribeEC2InstanceLimits -- Retrieve maximum number of instances allowed for the current AWS account and the current usage level. DescribeFleetCapacity / UpdateFleetCapacity -- Retrieve the capacity settings and the current number of instances in a fleet; adjust fleet capacity settings to scale up or down. Autoscale -- Manage autoscaling rules and apply them to a fleet. PutScalingPolicy -- Create a new autoscaling policy, or update an existing one. DescribeScalingPolicies -- Retrieve an existing autoscaling policy. DeleteScalingPolicy -- Delete an autoscaling policy and stop it from affecting a fleet's capacity. Manage VPC peering connections for fleets CreateVpcPeeringAuthorization -- Authorize a peering connection to one of your VPCs. DescribeVpcPeeringAuthorizations -- Retrieve valid peering connection authorizations. DeleteVpcPeeringAuthorization -- Delete a peering connection authorization. CreateVpcPeeringConnection -- Establish a peering connection between the VPC for a Amazon GameLift fleet and one of your VPCs. DescribeVpcPeeringConnections -- Retrieve information on active or pending VPC peering connections with a Amazon GameLift fleet. DeleteVpcPeeringConnection -- Delete a VPC peering connection with a Amazon GameLift fleet. Access fleet activity statistics DescribeFleetUtilization -- Get current data on the number of server processes, game sessions, and players currently active on a fleet. DescribeFleetEvents -- Get a fleet's logged events for a specified time span. DescribeGameSessions -- Retrieve metadata associated with one or more game sessions, including length of time active and current player count. Remotely access an instance DescribeInstances -- Get information on each instance in a fleet, including instance ID, IP address, and status. GetInstanceAccess -- Request access credentials needed to remotely connect to a specified instance in a fleet. Manage fleet aliases CreateAlias -- Define a new alias and optionally assign it to a fleet. ListAliases -- Get all fleet aliases defined in a Amazon GameLift region. DescribeAlias -- Retrieve information on an existing alias. UpdateAlias -- Change settings for a alias, such as redirecting it from one fleet to another. DeleteAlias -- Remove an alias from the region. ResolveAlias -- Get the fleet ID that a specified alias points to. Manage game session queues CreateGameSessionQueue -- Create a queue for processing requests for new game sessions. DescribeGameSessionQueues -- Retrieve game session queues defined in a Amazon GameLift region. UpdateGameSessionQueue -- Change the configuration of a game session queue. DeleteGameSessionQueue -- Remove a game session queue from the region. Manage FlexMatch resources CreateMatchmakingConfiguration -- Create a matchmaking configuration with instructions for building a player group and placing in a new game session. DescribeMatchmakingConfigurations -- Retrieve matchmaking configurations defined a Amazon GameLift region. UpdateMatchmakingConfiguration -- Change settings for matchmaking configuration. queue. DeleteMatchmakingConfiguration -- Remove a matchmaking configuration from the region. CreateMatchmakingRuleSet -- Create a set of rules to use when searching for player matches. DescribeMatchmakingRuleSets -- Retrieve matchmaking rule sets defined in a Amazon GameLift region. ValidateMatchmakingRuleSet -- Verify syntax for a set of matchmaking rules. */ public struct Gamelift { @@ -25,52 +25,22 @@ public struct Gamelift { ) } - /// Requests remote access to a fleet instance. Remote access is useful for debugging, gathering benchmarking data, or watching activity in real time. Access requires credentials that match the operating system of the instance. For a Windows instance, Amazon GameLift returns a user name and password as strings for use with a Windows Remote Desktop client. For a Linux instance, Amazon GameLift returns a user name and RSA private key, also as strings, for use with an SSH client. The private key must be saved in the proper format to a .pem file before using. If you're making this request using the AWS CLI, saving the secret can be handled as part of the GetInstanceAccess request. (See the example later in this topic). For more information on remote access, see Remotely Accessing an Instance. To request access to a specific instance, specify the IDs of the instance and the fleet it belongs to. If successful, an InstanceAccess object is returned containing the instance's IP address and a set of credentials. - public func getInstanceAccess(_ input: GetInstanceAccessInput) throws -> GetInstanceAccessOutput { - return try client.send(operation: "GetInstanceAccess", path: "/", httpMethod: "POST", input: input) - } - /// Retrieves utilization statistics for one or more fleets. You can request utilization data for all fleets, or specify a list of one or more fleet IDs. When requesting multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetUtilization object is returned for each requested fleet ID. When specifying a list of fleet IDs, utilization objects are returned only for fleets that currently exist. Some API actions may limit the number of fleet IDs allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet public func describeFleetUtilization(_ input: DescribeFleetUtilizationInput) throws -> DescribeFleetUtilizationOutput { return try client.send(operation: "DescribeFleetUtilization", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the fleet ID that a specified alias is currently pointing to. Alias-related operations include: CreateAlias ListAliases DescribeAlias UpdateAlias DeleteAlias ResolveAlias - public func resolveAlias(_ input: ResolveAliasInput) throws -> ResolveAliasOutput { - return try client.send(operation: "ResolveAlias", path: "/", httpMethod: "POST", input: input) - } - - /// Retrieves properties for an alias. This operation returns all alias metadata and settings. To get an alias's target fleet ID only, use ResolveAlias. To get alias properties, specify the alias ID. If successful, the requested alias record is returned. Alias-related operations include: CreateAlias ListAliases DescribeAlias UpdateAlias DeleteAlias ResolveAlias - public func describeAlias(_ input: DescribeAliasInput) throws -> DescribeAliasOutput { - return try client.send(operation: "DescribeAlias", path: "/", httpMethod: "POST", input: input) - } - /// Retrieves all scaling policies applied to a fleet. To get a fleet's scaling policies, specify the fleet ID. You can filter this request by policy status, such as to retrieve only active scaling policies. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, set of ScalingPolicy objects is returned for the fleet. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet public func describeScalingPolicies(_ input: DescribeScalingPoliciesInput) throws -> DescribeScalingPoliciesOutput { return try client.send(operation: "DescribeScalingPolicies", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the current run-time configuration for the specified fleet. The run-time configuration tells Amazon GameLift how to launch server processes on instances in the fleet. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet - public func describeRuntimeConfiguration(_ input: DescribeRuntimeConfigurationInput) throws -> DescribeRuntimeConfigurationOutput { - return try client.send(operation: "DescribeRuntimeConfiguration", path: "/", httpMethod: "POST", input: input) - } - /// Deletes everything related to a fleet. Before deleting a fleet, you must set the fleet's desired capacity to zero. See UpdateFleetCapacity. This action removes the fleet's resources and the fleet record. Once a fleet is deleted, you can no longer use that fleet. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet public func deleteFleet(_ input: DeleteFleetInput) throws { _ = try client.send(operation: "DeleteFleet", path: "/", httpMethod: "POST", input: input) } - /// Updates game session properties. This includes the session name, maximum player count, protection policy, which controls whether or not an active game session can be terminated during a scale-down event, and the player session creation policy, which controls whether or not new players can join the session. To update a game session, specify the game session ID and the values you want to change. If successful, an updated GameSession object is returned. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement - public func updateGameSession(_ input: UpdateGameSessionInput) throws -> UpdateGameSessionOutput { - return try client.send(operation: "UpdateGameSession", path: "/", httpMethod: "POST", input: input) - } - - /// Updates port settings for a fleet. To update settings, specify the fleet ID to be updated and list the permissions you want to update. List the permissions you want to add in InboundPermissionAuthorizations, and permissions you want to remove in InboundPermissionRevocations. Permissions to be removed must match existing fleet permissions. If successful, the fleet ID for the updated fleet is returned. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet - public func updateFleetPortSettings(_ input: UpdateFleetPortSettingsInput) throws -> UpdateFleetPortSettingsOutput { - return try client.send(operation: "UpdateFleetPortSettings", path: "/", httpMethod: "POST", input: input) - } - - /// Creates a new fleet to run your game servers. A fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances, each of which can run multiple server processes to host game sessions. You configure a fleet to create instances with certain hardware specifications (see Amazon EC2 Instance Types for more information), and deploy a specified game build to each instance. A newly created fleet passes through several statuses; once it reaches the ACTIVE status, it can begin hosting game sessions. To create a new fleet, you must specify the following: (1) fleet name, (2) build ID of an uploaded game build, (3) an EC2 instance type, and (4) a run-time configuration that describes which server processes to run on each instance in the fleet. (Although the run-time configuration is not a required parameter, the fleet cannot be successfully activated without it.) You can also configure the new fleet with the following settings: Fleet description Access permissions for inbound traffic Fleetwide game session protection Resource creation limit If you use Amazon CloudWatch for metrics, you can add the new fleet to a metric group. This allows you to view aggregated metrics for a set of fleets. Once you specify a metric group, the new fleet's metrics are included in the metric group's data. If the CreateFleet call is successful, Amazon GameLift performs the following tasks: Creates a fleet record and sets the status to NEW (followed by other statuses as the fleet is activated). Sets the fleet's target capacity to 1 (desired instances), which causes Amazon GameLift to start one new EC2 instance. Starts launching server processes on the instance. If the fleet is configured to run multiple server processes per instance, Amazon GameLift staggers each launch by a few seconds. Begins writing events to the fleet event log, which can be accessed in the Amazon GameLift console. Sets the fleet's status to ACTIVE as soon as one server process in the fleet is ready to host a game session. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet + /// Creates a new fleet to run your game servers. A fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances, each of which can run multiple server processes to host game sessions. You configure a fleet to create instances with certain hardware specifications (see Amazon EC2 Instance Types for more information), and deploy a specified game build to each instance. A newly created fleet passes through several statuses; once it reaches the ACTIVE status, it can begin hosting game sessions. To create a new fleet, you must specify the following: (1) fleet name, (2) build ID of an uploaded game build, (3) an EC2 instance type, and (4) a run-time configuration that describes which server processes to run on each instance in the fleet. (Although the run-time configuration is not a required parameter, the fleet cannot be successfully activated without it.) You can also configure the new fleet with the following settings: Fleet description Access permissions for inbound traffic Fleet-wide game session protection Resource creation limit If you use Amazon CloudWatch for metrics, you can add the new fleet to a metric group. This allows you to view aggregated metrics for a set of fleets. Once you specify a metric group, the new fleet's metrics are included in the metric group's data. You have the option of creating a VPC peering connection with the new fleet. For more information, see VPC Peering with Amazon GameLift Fleets. If the CreateFleet call is successful, Amazon GameLift performs the following tasks: Creates a fleet record and sets the status to NEW (followed by other statuses as the fleet is activated). Sets the fleet's target capacity to 1 (desired instances), which causes Amazon GameLift to start one new EC2 instance. Starts launching server processes on the instance. If the fleet is configured to run multiple server processes per instance, Amazon GameLift staggers each launch by a few seconds. Begins writing events to the fleet event log, which can be accessed in the Amazon GameLift console. Sets the fleet's status to ACTIVE as soon as one server process in the fleet is ready to host a game session. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet public func createFleet(_ input: CreateFleetInput) throws -> CreateFleetOutput { return try client.send(operation: "CreateFleet", path: "/", httpMethod: "POST", input: input) } @@ -80,49 +50,189 @@ public struct Gamelift { return try client.send(operation: "PutScalingPolicy", path: "/", httpMethod: "POST", input: input) } + /// Removes a VPC peering connection. To delete the connection, you must have a valid authorization for the VPC peering connection that you want to delete. You can check for an authorization by calling DescribeVpcPeeringAuthorizations or request a new one using CreateVpcPeeringAuthorization. Once a valid authorization exists, call this operation from the AWS account that is used to manage the Amazon GameLift fleets. Identify the connection to delete by the connection ID and fleet ID. If successful, the connection is removed. VPC peering connection operations include: CreateVpcPeeringAuthorization DescribeVpcPeeringAuthorizations DeleteVpcPeeringAuthorization CreateVpcPeeringConnection DescribeVpcPeeringConnections DeleteVpcPeeringConnection + public func deleteVpcPeeringConnection(_ input: DeleteVpcPeeringConnectionInput) throws -> DeleteVpcPeeringConnectionOutput { + return try client.send(operation: "DeleteVpcPeeringConnection", path: "/", httpMethod: "POST", input: input) + } + /// Deletes an alias. This action removes all record of the alias. Game clients attempting to access a server process using the deleted alias receive an error. To delete an alias, specify the alias ID to be deleted. Alias-related operations include: CreateAlias ListAliases DescribeAlias UpdateAlias DeleteAlias ResolveAlias public func deleteAlias(_ input: DeleteAliasInput) throws { _ = try client.send(operation: "DeleteAlias", path: "/", httpMethod: "POST", input: input) } + /// Updates fleet properties, including name and description, for a fleet. To update metadata, specify the fleet ID and the property values that you want to change. If successful, the fleet ID for the updated fleet is returned. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet + public func updateFleetAttributes(_ input: UpdateFleetAttributesInput) throws -> UpdateFleetAttributesOutput { + return try client.send(operation: "UpdateFleetAttributes", path: "/", httpMethod: "POST", input: input) + } + /// Retrieves properties, including the protection policy in force, for one or more game sessions. This action can be used in several ways: (1) provide a GameSessionId or GameSessionArn to request details for a specific game session; (2) provide either a FleetId or an AliasId to request properties for all game sessions running on a fleet. To get game session record(s), specify just one of the following: game session ID, fleet ID, or alias ID. You can filter this request by game session status. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a GameSessionDetail object is returned for each session matching the request. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement public func describeGameSessionDetails(_ input: DescribeGameSessionDetailsInput) throws -> DescribeGameSessionDetailsOutput { return try client.send(operation: "DescribeGameSessionDetails", path: "/", httpMethod: "POST", input: input) } + /// Retrieves the current status of fleet capacity for one or more fleets. This information includes the number of instances that have been requested for the fleet and the number currently active. You can request capacity for all fleets, or specify a list of one or more fleet IDs. When requesting multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetCapacity object is returned for each requested fleet ID. When specifying a list of fleet IDs, attribute objects are returned only for fleets that currently exist. Some API actions may limit the number of fleet IDs allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet + public func describeFleetCapacity(_ input: DescribeFleetCapacityInput) throws -> DescribeFleetCapacityOutput { + return try client.send(operation: "DescribeFleetCapacity", path: "/", httpMethod: "POST", input: input) + } + /// Retrieves fleet properties, including metadata, status, and configuration, for one or more fleets. You can request attributes for all fleets, or specify a list of one or more fleet IDs. When requesting multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetAttributes object is returned for each requested fleet ID. When specifying a list of fleet IDs, attribute objects are returned only for fleets that currently exist. Some API actions may limit the number of fleet IDs allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet public func describeFleetAttributes(_ input: DescribeFleetAttributesInput) throws -> DescribeFleetAttributesOutput { return try client.send(operation: "DescribeFleetAttributes", path: "/", httpMethod: "POST", input: input) } - /// Updates the current run-time configuration for the specified fleet, which tells Amazon GameLift how to launch server processes on instances in the fleet. You can update a fleet's run-time configuration at any time after the fleet is created; it does not need to be in an ACTIVE status. To update run-time configuration, specify the fleet ID and provide a RuntimeConfiguration object with the updated collection of server process configurations. Each instance in a Amazon GameLift fleet checks regularly for an updated run-time configuration and changes how it launches server processes to comply with the latest version. Existing server processes are not affected by the update; they continue to run until they end, while Amazon GameLift simply adds new server processes to fit the current run-time configuration. As a result, the run-time configuration changes are applied gradually as existing processes shut down and new processes are launched in Amazon GameLift's normal process recycling activity. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet - public func updateRuntimeConfiguration(_ input: UpdateRuntimeConfigurationInput) throws -> UpdateRuntimeConfigurationOutput { - return try client.send(operation: "UpdateRuntimeConfiguration", path: "/", httpMethod: "POST", input: input) - } - /// Retrieves the inbound connection permissions for a fleet. Connection permissions include a range of IP addresses and port settings that incoming traffic can use to access server processes in the fleet. To get a fleet's inbound connection permissions, specify a fleet ID. If successful, a collection of IpPermission objects is returned for the requested fleet ID. If the requested fleet has been deleted, the result set is empty. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet public func describeFleetPortSettings(_ input: DescribeFleetPortSettingsInput) throws -> DescribeFleetPortSettingsOutput { return try client.send(operation: "DescribeFleetPortSettings", path: "/", httpMethod: "POST", input: input) } + /// Requests authorization to create or delete a peer connection between the VPC for your Amazon GameLift fleet and a virtual private cloud (VPC) in your AWS account. VPC peering enables the game servers on your fleet to communicate directly with other AWS resources. Once you've received authorization, call CreateVpcPeeringConnection to establish the peering connection. For more information, see VPC Peering with Amazon GameLift Fleets. You can peer with VPCs that are owned by any AWS account you have access to, including the account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different regions. To request authorization to create a connection, call this operation from the AWS account with the VPC that you want to peer to your Amazon GameLift fleet. For example, to enable your game servers to retrieve data from a DynamoDB table, use the account that manages that DynamoDB resource. Identify the following values: (1) The ID of the VPC that you want to peer with, and (2) the ID of the AWS account that you use to manage Amazon GameLift. If successful, VPC peering is authorized for the specified VPC. To request authorization to delete a connection, call this operation from the AWS account with the VPC that is peered with your Amazon GameLift fleet. Identify the following values: (1) VPC ID that you want to delete the peering connection for, and (2) ID of the AWS account that you use to manage Amazon GameLift. The authorization remains valid for 24 hours unless it is canceled by a call to DeleteVpcPeeringAuthorization. You must create or delete the peering connection while the authorization is valid. VPC peering connection operations include: CreateVpcPeeringAuthorization DescribeVpcPeeringAuthorizations DeleteVpcPeeringAuthorization CreateVpcPeeringConnection DescribeVpcPeeringConnections DeleteVpcPeeringConnection + public func createVpcPeeringAuthorization(_ input: CreateVpcPeeringAuthorizationInput) throws -> CreateVpcPeeringAuthorizationOutput { + return try client.send(operation: "CreateVpcPeeringAuthorization", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a fleet scaling policy. This action means that the policy is no longer in force and removes all record of it. To delete a scaling policy, specify both the scaling policy name and the fleet ID it is associated with. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet + public func deleteScalingPolicy(_ input: DeleteScalingPolicyInput) throws { + _ = try client.send(operation: "DeleteScalingPolicy", path: "/", httpMethod: "POST", input: input) + } + + /// Updates settings for a game session queue, which determines how new game session requests in the queue are processed. To update settings, specify the queue name to be updated and provide the new settings. When updating destinations, provide a complete list of destinations. Queue-related operations include: CreateGameSessionQueue DescribeGameSessionQueues UpdateGameSessionQueue DeleteGameSessionQueue + public func updateGameSessionQueue(_ input: UpdateGameSessionQueueInput) throws -> UpdateGameSessionQueueOutput { + return try client.send(operation: "UpdateGameSessionQueue", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a game session queue. This action means that any StartGameSessionPlacement requests that reference this queue will fail. To delete a queue, specify the queue name. Queue-related operations include: CreateGameSessionQueue DescribeGameSessionQueues UpdateGameSessionQueue DeleteGameSessionQueue + public func deleteGameSessionQueue(_ input: DeleteGameSessionQueueInput) throws -> DeleteGameSessionQueueOutput { + return try client.send(operation: "DeleteGameSessionQueue", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves valid VPC peering authorizations that are pending for the AWS account. This operation returns all VPC peering authorizations and requests for peering. This includes those initiated and received by this account. VPC peering connection operations include: CreateVpcPeeringAuthorization DescribeVpcPeeringAuthorizations DeleteVpcPeeringAuthorization CreateVpcPeeringConnection DescribeVpcPeeringConnections DeleteVpcPeeringConnection + public func describeVpcPeeringAuthorizations(_ input: DescribeVpcPeeringAuthorizationsInput) throws -> DescribeVpcPeeringAuthorizationsOutput { + return try client.send(operation: "DescribeVpcPeeringAuthorizations", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves information on VPC peering connections. Use this operation to get peering information for all fleets or for one specific fleet ID. To retrieve connection information, call this operation from the AWS account that is used to manage the Amazon GameLift fleets. Specify a fleet ID or leave the parameter empty to retrieve all connection records. If successful, the retrieved information includes both active and pending connections. Active connections identify the IpV4 CIDR block that the VPC uses to connect. VPC peering connection operations include: CreateVpcPeeringAuthorization DescribeVpcPeeringAuthorizations DeleteVpcPeeringAuthorization CreateVpcPeeringConnection DescribeVpcPeeringConnections DeleteVpcPeeringConnection + public func describeVpcPeeringConnections(_ input: DescribeVpcPeeringConnectionsInput) throws -> DescribeVpcPeeringConnectionsOutput { + return try client.send(operation: "DescribeVpcPeeringConnections", path: "/", httpMethod: "POST", input: input) + } + + /// Places a request for a new game session in a queue (see CreateGameSessionQueue). When processing a placement request, Amazon GameLift searches for available resources on the queue's destinations, scanning each until it finds resources or the placement request times out. A game session placement request can also request player sessions. When a new game session is successfully created, Amazon GameLift creates a player session for each player included in the request. When placing a game session, by default Amazon GameLift tries each fleet in the order they are listed in the queue configuration. Ideally, a queue's destinations are listed in preference order. Alternatively, when requesting a game session with players, you can also provide latency data for each player in relevant regions. Latency data indicates the performance lag a player experiences when connected to a fleet in the region. Amazon GameLift uses latency data to reorder the list of destinations to place the game session in a region with minimal lag. If latency data is provided for multiple players, Amazon GameLift calculates each region's average lag for all players and reorders to get the best game play across all players. To place a new game session request, specify the following: The queue name and a set of game session properties and settings A unique ID (such as a UUID) for the placement. You use this ID to track the status of the placement request (Optional) A set of IDs and player data for each player you want to join to the new game session Latency data for all players (if you want to optimize game play for the players) If successful, a new game session placement is created. To track the status of a placement request, call DescribeGameSessionPlacement and check the request's status. If the status is FULFILLED, a new game session has been created and a game session ARN and region are referenced. If the placement request times out, you can resubmit the request or retry it with a different queue. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement + public func startGameSessionPlacement(_ input: StartGameSessionPlacementInput) throws -> StartGameSessionPlacementOutput { + return try client.send(operation: "StartGameSessionPlacement", path: "/", httpMethod: "POST", input: input) + } + + /// Cancels a matchmaking ticket that is currently being processed. To stop the matchmaking operation, specify the ticket ID. If successful, work on the ticket is stopped, and the ticket status is changed to CANCELLED. Matchmaking-related operations include: StartMatchmaking DescribeMatchmaking StopMatchmaking AcceptMatch + public func stopMatchmaking(_ input: StopMatchmakingInput) throws -> StopMatchmakingOutput { + return try client.send(operation: "StopMatchmaking", path: "/", httpMethod: "POST", input: input) + } + + /// Cancels a pending VPC peering authorization for the specified VPC. If the authorization has already been used to create a peering connection, call DeleteVpcPeeringConnection to remove the connection. VPC peering connection operations include: CreateVpcPeeringAuthorization DescribeVpcPeeringAuthorizations DeleteVpcPeeringAuthorization CreateVpcPeeringConnection DescribeVpcPeeringConnections DeleteVpcPeeringConnection + public func deleteVpcPeeringAuthorization(_ input: DeleteVpcPeeringAuthorizationInput) throws -> DeleteVpcPeeringAuthorizationOutput { + return try client.send(operation: "DeleteVpcPeeringAuthorization", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the following information for the specified EC2 instance type: maximum number of instances allowed per AWS account (service limit) current usage level for the AWS account Service limits vary depending on region. Available regions for Amazon GameLift can be found in the AWS Management Console for Amazon GameLift (see the drop-down list in the upper right corner). Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet + public func describeEC2InstanceLimits(_ input: DescribeEC2InstanceLimitsInput) throws -> DescribeEC2InstanceLimitsOutput { + return try client.send(operation: "DescribeEC2InstanceLimits", path: "/", httpMethod: "POST", input: input) + } + + /// Cancels a game session placement that is in PENDING status. To stop a placement, provide the placement ID values. If successful, the placement is moved to CANCELLED status. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement + public func stopGameSessionPlacement(_ input: StopGameSessionPlacementInput) throws -> StopGameSessionPlacementOutput { + return try client.send(operation: "StopGameSessionPlacement", path: "/", httpMethod: "POST", input: input) + } + + /// Establishes a VPC peering connection between a virtual private cloud (VPC) in an AWS account with the VPC for your Amazon GameLift fleet. VPC peering enables the game servers on your fleet to communicate directly with other AWS resources. You can peer with VPCs in any AWS account that you have access to, including the account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different regions. For more information, see VPC Peering with Amazon GameLift Fleets. Before calling this operation to establish the peering connection, you first need to call CreateVpcPeeringAuthorization and identify the VPC you want to peer with. Once the authorization for the specified VPC is issued, you have 24 hours to establish the connection. These two operations handle all tasks necessary to peer the two VPCs, including acceptance, updating routing tables, etc. To establish the connection, call this operation from the AWS account that is used to manage the Amazon GameLift fleets. Identify the following values: (1) The ID of the fleet you want to be enable a VPC peering connection for; (2) The AWS account with the VPC that you want to peer with; and (3) The ID of the VPC you want to peer with. This operation is asynchronous. If successful, a VpcPeeringConnection request is created. You can use continuous polling to track the request's status using DescribeVpcPeeringConnections, or by monitoring fleet events for success or failure using DescribeFleetEvents. VPC peering connection operations include: CreateVpcPeeringAuthorization DescribeVpcPeeringAuthorizations DeleteVpcPeeringAuthorization CreateVpcPeeringConnection DescribeVpcPeeringConnections DeleteVpcPeeringConnection + public func createVpcPeeringConnection(_ input: CreateVpcPeeringConnectionInput) throws -> CreateVpcPeeringConnectionOutput { + return try client.send(operation: "CreateVpcPeeringConnection", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves build records for all builds associated with the AWS account in use. You can limit results to builds that are in a specific status by using the Status parameter. Use the pagination parameters to retrieve results in a set of sequential pages. Build records are not listed in any particular order. Build-related operations include: CreateBuild ListBuilds DescribeBuild UpdateBuild DeleteBuild + public func listBuilds(_ input: ListBuildsInput) throws -> ListBuildsOutput { + return try client.send(operation: "ListBuilds", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a multiplayer game session for players. This action creates a game session record and assigns an available server process in the specified fleet to host the game session. A fleet must have an ACTIVE status before a game session can be created in it. To create a game session, specify either fleet ID or alias ID and indicate a maximum number of players to allow in the game session. You can also provide a name and game-specific properties for this game session. If successful, a GameSession object is returned containing the game session properties and other settings you specified. Idempotency tokens. You can add a token that uniquely identifies game session requests. This is useful for ensuring that game session requests are idempotent. Multiple requests with the same idempotency token are processed only once; subsequent requests return the original result. All response values are the same with the exception of game session status, which may change. Resource creation limits. If you are creating a game session on a fleet with a resource creation limit policy in force, then you must specify a creator ID. Without this ID, Amazon GameLift has no way to evaluate the policy for this new game session request. Player acceptance policy. By default, newly created game sessions are open to new players. You can restrict new player access by using UpdateGameSession to change the game session's player session creation policy. Game session logs. Logs are retained for all active game sessions for 14 days. To access the logs, call GetGameSessionLogUrl to download the log files. Available in Amazon GameLift Local. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement + public func createGameSession(_ input: CreateGameSessionInput) throws -> CreateGameSessionOutput { + return try client.send(operation: "CreateGameSession", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new rule set for FlexMatch matchmaking. A rule set describes the type of match to create, such as the number and size of teams, and sets the parameters for acceptable player matches, such as minimum skill level or character type. Rule sets are used in matchmaking configurations, which define how matchmaking requests are handled. Each MatchmakingConfiguration uses one rule set; you can set up multiple rule sets to handle the scenarios that suit your game (such as for different game modes), and create a separate matchmaking configuration for each rule set. See additional information on rule set content in the MatchmakingRuleSet structure. For help creating rule sets, including useful examples, see the topic Adding FlexMatch to Your Game. Once created, matchmaking rule sets cannot be changed or deleted, so we recommend checking the rule set syntax using ValidateMatchmakingRuleSetbefore creating the rule set. To create a matchmaking rule set, provide the set of rules and a unique name. Rule sets must be defined in the same region as the matchmaking configuration they will be used with. Rule sets cannot be edited or deleted. If you need to change a rule set, create a new one with the necessary edits and then update matchmaking configurations to use the new rule set. Operations related to match configurations and rule sets include: CreateMatchmakingConfiguration DescribeMatchmakingConfigurations UpdateMatchmakingConfiguration DeleteMatchmakingConfiguration CreateMatchmakingRuleSet DescribeMatchmakingRuleSets ValidateMatchmakingRuleSet + public func createMatchmakingRuleSet(_ input: CreateMatchmakingRuleSetInput) throws -> CreateMatchmakingRuleSetOutput { + return try client.send(operation: "CreateMatchmakingRuleSet", path: "/", httpMethod: "POST", input: input) + } + + /// This API call is not currently in use. Retrieves a fresh set of upload credentials and the assigned Amazon S3 storage location for a specific build. Valid credentials are required to upload your game build files to Amazon S3. + public func requestUploadCredentials(_ input: RequestUploadCredentialsInput) throws -> RequestUploadCredentialsOutput { + return try client.send(operation: "RequestUploadCredentials", path: "/", httpMethod: "POST", input: input) + } + + /// Permanently removes a FlexMatch matchmaking configuration. To delete, specify the configuration name. A matchmaking configuration cannot be deleted if it is being used in any active matchmaking tickets. Operations related to match configurations and rule sets include: CreateMatchmakingConfiguration DescribeMatchmakingConfigurations UpdateMatchmakingConfiguration DeleteMatchmakingConfiguration CreateMatchmakingRuleSet DescribeMatchmakingRuleSets ValidateMatchmakingRuleSet + public func deleteMatchmakingConfiguration(_ input: DeleteMatchmakingConfigurationInput) throws -> DeleteMatchmakingConfigurationOutput { + return try client.send(operation: "DeleteMatchmakingConfiguration", path: "/", httpMethod: "POST", input: input) + } + + /// Requests remote access to a fleet instance. Remote access is useful for debugging, gathering benchmarking data, or watching activity in real time. Access requires credentials that match the operating system of the instance. For a Windows instance, Amazon GameLift returns a user name and password as strings for use with a Windows Remote Desktop client. For a Linux instance, Amazon GameLift returns a user name and RSA private key, also as strings, for use with an SSH client. The private key must be saved in the proper format to a .pem file before using. If you're making this request using the AWS CLI, saving the secret can be handled as part of the GetInstanceAccess request. (See the example later in this topic). For more information on remote access, see Remotely Accessing an Instance. To request access to a specific instance, specify the IDs of the instance and the fleet it belongs to. If successful, an InstanceAccess object is returned containing the instance's IP address and a set of credentials. + public func getInstanceAccess(_ input: GetInstanceAccessInput) throws -> GetInstanceAccessOutput { + return try client.send(operation: "GetInstanceAccess", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the fleet ID that a specified alias is currently pointing to. Alias-related operations include: CreateAlias ListAliases DescribeAlias UpdateAlias DeleteAlias ResolveAlias + public func resolveAlias(_ input: ResolveAliasInput) throws -> ResolveAliasOutput { + return try client.send(operation: "ResolveAlias", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves properties for an alias. This operation returns all alias metadata and settings. To get an alias's target fleet ID only, use ResolveAlias. To get alias properties, specify the alias ID. If successful, the requested alias record is returned. Alias-related operations include: CreateAlias ListAliases DescribeAlias UpdateAlias DeleteAlias ResolveAlias + public func describeAlias(_ input: DescribeAliasInput) throws -> DescribeAliasOutput { + return try client.send(operation: "DescribeAlias", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the current run-time configuration for the specified fleet. The run-time configuration tells Amazon GameLift how to launch server processes on instances in the fleet. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet + public func describeRuntimeConfiguration(_ input: DescribeRuntimeConfigurationInput) throws -> DescribeRuntimeConfigurationOutput { + return try client.send(operation: "DescribeRuntimeConfiguration", path: "/", httpMethod: "POST", input: input) + } + + /// Updates game session properties. This includes the session name, maximum player count, protection policy, which controls whether or not an active game session can be terminated during a scale-down event, and the player session creation policy, which controls whether or not new players can join the session. To update a game session, specify the game session ID and the values you want to change. If successful, an updated GameSession object is returned. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement + public func updateGameSession(_ input: UpdateGameSessionInput) throws -> UpdateGameSessionOutput { + return try client.send(operation: "UpdateGameSession", path: "/", httpMethod: "POST", input: input) + } + + /// Uses FlexMatch to create a game match for a group of players based on custom matchmaking rules, and starts a new game for the matched players. Each matchmaking request specifies the type of match to build (team configuration, rules for an acceptable match, etc.). The request also specifies the players to find a match for and where to host the new game session for optimal performance. A matchmaking request might start with a single player or a group of players who want to play together. FlexMatch finds additional players as needed to fill the match. Match type, rules, and the queue used to place a new game session are defined in a MatchmakingConfiguration. For complete information on setting up and using FlexMatch, see the topic Adding FlexMatch to Your Game. To start matchmaking, provide a unique ticket ID, specify a matchmaking configuration, and include the players to be matched. You must also include a set of player attributes relevant for the matchmaking configuration. If successful, a matchmaking ticket is returned with status set to QUEUED. Track the status of the ticket to respond as needed and acquire game session connection information for successfully completed matches. Tracking ticket status -- A couple of options are available for tracking the status of matchmaking requests: Polling -- Call DescribeMatchmaking. This operation returns the full ticket object, including current status and (for completed tickets) game session connection info. We recommend polling no more than once every 10 seconds. Notifications -- Get event notifications for changes in ticket status using Amazon Simple Notification Service (SNS). Notifications are easy to set up (see CreateMatchmakingConfiguration) and typically deliver match status changes faster and more efficiently than polling. We recommend that you use polling to back up to notifications (since delivery is not guaranteed) and call DescribeMatchmaking only when notifications are not received within 30 seconds. Processing a matchmaking request -- FlexMatch handles a matchmaking request as follows: Your client code submits a StartMatchmaking request for one or more players and tracks the status of the request ticket. FlexMatch uses this ticket and others in process to build an acceptable match. When a potential match is identified, all tickets in the proposed match are advanced to the next status. If the match requires player acceptance (set in the matchmaking configuration), the tickets move into status REQUIRES_ACCEPTANCE. This status triggers your client code to solicit acceptance from all players in every ticket involved in the match, and then call AcceptMatch for each player. If any player rejects or fails to accept the match before a specified timeout, the proposed match is dropped (see AcceptMatch for more details). Once a match is proposed and accepted, the matchmaking tickets move into status PLACING. FlexMatch locates resources for a new game session using the game session queue (set in the matchmaking configuration) and creates the game session based on the match data. When the match is successfully placed, the matchmaking tickets move into COMPLETED status. Connection information (including game session endpoint and player session) is added to the matchmaking tickets. Matched players can use the connection information to join the game. Matchmaking-related operations include: StartMatchmaking DescribeMatchmaking StopMatchmaking AcceptMatch + public func startMatchmaking(_ input: StartMatchmakingInput) throws -> StartMatchmakingOutput { + return try client.send(operation: "StartMatchmaking", path: "/", httpMethod: "POST", input: input) + } + + /// Updates port settings for a fleet. To update settings, specify the fleet ID to be updated and list the permissions you want to update. List the permissions you want to add in InboundPermissionAuthorizations, and permissions you want to remove in InboundPermissionRevocations. Permissions to be removed must match existing fleet permissions. If successful, the fleet ID for the updated fleet is returned. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet + public func updateFleetPortSettings(_ input: UpdateFleetPortSettingsInput) throws -> UpdateFleetPortSettingsOutput { + return try client.send(operation: "UpdateFleetPortSettings", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves a set of one or more matchmaking tickets. Use this operation to retrieve ticket information, including status and--once a successful match is made--acquire connection information for the resulting new game session. You can use this operation to track the progress of matchmaking requests (through polling) as an alternative to using event notifications. See more details on tracking matchmaking requests through polling or notifications in StartMatchmaking. You can request data for a one or a list of ticket IDs. If the request is successful, a ticket object is returned for each requested ID. When specifying a list of ticket IDs, objects are returned only for tickets that currently exist. Matchmaking-related operations include: StartMatchmaking DescribeMatchmaking StopMatchmaking AcceptMatch + public func describeMatchmaking(_ input: DescribeMatchmakingInput) throws -> DescribeMatchmakingOutput { + return try client.send(operation: "DescribeMatchmaking", path: "/", httpMethod: "POST", input: input) + } + + /// Updates the current run-time configuration for the specified fleet, which tells Amazon GameLift how to launch server processes on instances in the fleet. You can update a fleet's run-time configuration at any time after the fleet is created; it does not need to be in an ACTIVE status. To update run-time configuration, specify the fleet ID and provide a RuntimeConfiguration object with the updated collection of server process configurations. Each instance in a Amazon GameLift fleet checks regularly for an updated run-time configuration and changes how it launches server processes to comply with the latest version. Existing server processes are not affected by the update; they continue to run until they end, while Amazon GameLift simply adds new server processes to fit the current run-time configuration. As a result, the run-time configuration changes are applied gradually as existing processes shut down and new processes are launched in Amazon GameLift's normal process recycling activity. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet + public func updateRuntimeConfiguration(_ input: UpdateRuntimeConfigurationInput) throws -> UpdateRuntimeConfigurationOutput { + return try client.send(operation: "UpdateRuntimeConfiguration", path: "/", httpMethod: "POST", input: input) + } + /// Adds a group of players to a game session. This action is useful with a team matching feature. Before players can be added, a game session must have an ACTIVE status, have a creation policy of ALLOW_ALL, and have an open player slot. To add a single player to a game session, use CreatePlayerSession. To create player sessions, specify a game session ID, a list of player IDs, and optionally a set of player data strings. If successful, the players are added to the game session and a set of new PlayerSession objects is returned. Player sessions cannot be updated. Available in Amazon GameLift Local. Player-session-related operations include: CreatePlayerSession CreatePlayerSessions DescribePlayerSessions Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement public func createPlayerSessions(_ input: CreatePlayerSessionsInput) throws -> CreatePlayerSessionsOutput { return try client.send(operation: "CreatePlayerSessions", path: "/", httpMethod: "POST", input: input) } + /// Updates settings for a FlexMatch matchmaking configuration. To update settings, specify the configuration name to be updated and provide the new settings. Operations related to match configurations and rule sets include: CreateMatchmakingConfiguration DescribeMatchmakingConfigurations UpdateMatchmakingConfiguration DeleteMatchmakingConfiguration CreateMatchmakingRuleSet DescribeMatchmakingRuleSets ValidateMatchmakingRuleSet + public func updateMatchmakingConfiguration(_ input: UpdateMatchmakingConfigurationInput) throws -> UpdateMatchmakingConfigurationOutput { + return try client.send(operation: "UpdateMatchmakingConfiguration", path: "/", httpMethod: "POST", input: input) + } + /// Retrieves properties for one or more player sessions. This action can be used in several ways: (1) provide a PlayerSessionId to request properties for a specific player session; (2) provide a GameSessionId to request properties for all player sessions in the specified game session; (3) provide a PlayerId to request properties for all player sessions of a specified player. To get game session record(s), specify only one of the following: a player session ID, a game session ID, or a player ID. You can filter this request by player session status. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a PlayerSession object is returned for each session matching the request. Available in Amazon GameLift Local. Player-session-related operations include: CreatePlayerSession CreatePlayerSessions DescribePlayerSessions Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement public func describePlayerSessions(_ input: DescribePlayerSessionsInput) throws -> DescribePlayerSessionsOutput { return try client.send(operation: "DescribePlayerSessions", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the current status of fleet capacity for one or more fleets. This information includes the number of instances that have been requested for the fleet and the number currently active. You can request capacity for all fleets, or specify a list of one or more fleet IDs. When requesting multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetCapacity object is returned for each requested fleet ID. When specifying a list of fleet IDs, attribute objects are returned only for fleets that currently exist. Some API actions may limit the number of fleet IDs allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet - public func describeFleetCapacity(_ input: DescribeFleetCapacityInput) throws -> DescribeFleetCapacityOutput { - return try client.send(operation: "DescribeFleetCapacity", path: "/", httpMethod: "POST", input: input) - } - - /// Updates fleet properties, including name and description, for a fleet. To update metadata, specify the fleet ID and the property values that you want to change. If successful, the fleet ID for the updated fleet is returned. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet - public func updateFleetAttributes(_ input: UpdateFleetAttributesInput) throws -> UpdateFleetAttributesOutput { - return try client.send(operation: "UpdateFleetAttributes", path: "/", httpMethod: "POST", input: input) + /// Validates the syntax of a matchmaking rule or rule set. This operation checks that the rule set uses syntactically correct JSON and that it conforms to allowed property expressions. To validate syntax, provide a rule set string. Operations related to match configurations and rule sets include: CreateMatchmakingConfiguration DescribeMatchmakingConfigurations UpdateMatchmakingConfiguration DeleteMatchmakingConfiguration CreateMatchmakingRuleSet DescribeMatchmakingRuleSets ValidateMatchmakingRuleSet + public func validateMatchmakingRuleSet(_ input: ValidateMatchmakingRuleSetInput) throws -> ValidateMatchmakingRuleSetOutput { + return try client.send(operation: "ValidateMatchmakingRuleSet", path: "/", httpMethod: "POST", input: input) } /// Creates a new Amazon GameLift build from a set of game server binary files stored in an Amazon Simple Storage Service (Amazon S3) location. To use this API call, create a .zip file containing all of the files for the build and store it in an Amazon S3 bucket under your AWS account. For help on packaging your build files and creating a build, see Uploading Your Game to Amazon GameLift. Use this API action ONLY if you are storing your game build files in an Amazon S3 bucket. To create a build using files stored locally, use the CLI command upload-build , which uploads the build files from a file location you specify. To create a new build using CreateBuild, identify the storage location and operating system of your game build. You also have the option of specifying a build name and version. If successful, this action creates a new build record with an unique build ID and in INITIALIZED status. Use the API call DescribeBuild to check the status of your build. A build must be in READY status before it can be used to create fleets to host your game. Build-related operations include: CreateBuild ListBuilds DescribeBuild UpdateBuild DeleteBuild @@ -145,29 +255,24 @@ public struct Gamelift { return try client.send(operation: "DescribeFleetEvents", path: "/", httpMethod: "POST", input: input) } + /// Registers a player's acceptance or rejection of a proposed FlexMatch match. A matchmaking configuration may require player acceptance; if so, then matches built with that configuration cannot be completed unless all players accept the proposed match within a specified time limit. When FlexMatch builds a match, all the matchmaking tickets involved in the proposed match are placed into status REQUIRES_ACCEPTANCE. This is a trigger for your game to get acceptance from all players in the ticket. Acceptances are only valid for tickets when they are in this status; all other acceptances result in an error. To register acceptance, specify the ticket ID, a response, and one or more players. Once all players have registered acceptance, the matchmaking tickets advance to status PLACING, where a new game session is created for the match. If any player rejects the match, or if acceptances are not received before a specified timeout, the proposed match is dropped. The matchmaking tickets are then handled in one of two ways: For tickets where all players accepted the match, the ticket status is returned to SEARCHING to find a new match. For tickets where one or more players failed to accept the match, the ticket status is set to FAILED, and processing is terminated. A new matchmaking request for these players can be submitted as needed. Matchmaking-related operations include: StartMatchmaking DescribeMatchmaking StopMatchmaking AcceptMatch + public func acceptMatch(_ input: AcceptMatchInput) throws -> AcceptMatchOutput { + return try client.send(operation: "AcceptMatch", path: "/", httpMethod: "POST", input: input) + } + /// Updates capacity settings for a fleet. Use this action to specify the number of EC2 instances (hosts) that you want this fleet to contain. Before calling this action, you may want to call DescribeEC2InstanceLimits to get the maximum capacity based on the fleet's EC2 instance type. If you're using autoscaling (see PutScalingPolicy), you may want to specify a minimum and/or maximum capacity. If you don't provide these, autoscaling can set capacity anywhere between zero and the service limits. To update fleet capacity, specify the fleet ID and the number of instances you want the fleet to host. If successful, Amazon GameLift starts or terminates instances so that the fleet's active instance count matches the desired instance count. You can view a fleet's current capacity information by calling DescribeFleetCapacity. If the desired instance count is higher than the instance type's limit, the "Limit Exceeded" exception occurs. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet public func updateFleetCapacity(_ input: UpdateFleetCapacityInput) throws -> UpdateFleetCapacityOutput { return try client.send(operation: "UpdateFleetCapacity", path: "/", httpMethod: "POST", input: input) } - /// Deletes a fleet scaling policy. This action means that the policy is no longer in force and removes all record of it. To delete a scaling policy, specify both the scaling policy name and the fleet ID it is associated with. Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet - public func deleteScalingPolicy(_ input: DeleteScalingPolicyInput) throws { - _ = try client.send(operation: "DeleteScalingPolicy", path: "/", httpMethod: "POST", input: input) - } - - /// Updates settings for a game session queue, which determines how new game session requests in the queue are processed. To update settings, specify the queue name to be updated and provide the new settings. When updating destinations, provide a complete list of destinations. Queue-related operations include: CreateGameSessionQueue DescribeGameSessionQueues UpdateGameSessionQueue DeleteGameSessionQueue - public func updateGameSessionQueue(_ input: UpdateGameSessionQueueInput) throws -> UpdateGameSessionQueueOutput { - return try client.send(operation: "UpdateGameSessionQueue", path: "/", httpMethod: "POST", input: input) - } - /// Retrieves a set of one or more game sessions. Request a specific game session or request all game sessions on a fleet. Alternatively, use SearchGameSessions to request a set of active game sessions that are filtered by certain criteria. To retrieve protection policy settings for game sessions, use DescribeGameSessionDetails. To get game sessions, specify one of the following: game session ID, fleet ID, or alias ID. You can filter this request by game session status. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a GameSession object is returned for each game session matching the request. Available in Amazon GameLift Local. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement public func describeGameSessions(_ input: DescribeGameSessionsInput) throws -> DescribeGameSessionsOutput { return try client.send(operation: "DescribeGameSessions", path: "/", httpMethod: "POST", input: input) } - /// Deletes a game session queue. This action means that any StartGameSessionPlacement requests that reference this queue will fail. To delete a queue, specify the queue name. Queue-related operations include: CreateGameSessionQueue DescribeGameSessionQueues UpdateGameSessionQueue DeleteGameSessionQueue - public func deleteGameSessionQueue(_ input: DeleteGameSessionQueueInput) throws -> DeleteGameSessionQueueOutput { - return try client.send(operation: "DeleteGameSessionQueue", path: "/", httpMethod: "POST", input: input) + /// Defines a new matchmaking configuration for use with FlexMatch. A matchmaking configuration sets out guidelines for matching players and getting the matches into games. You can set up multiple matchmaking configurations to handle the scenarios needed for your game. Each matchmaking request (StartMatchmaking) specifies a configuration for the match and provides player attributes to support the configuration being used. To create a matchmaking configuration, at a minimum you must specify the following: configuration name; a rule set that governs how to evaluate players and find acceptable matches; a game session queue to use when placing a new game session for the match; and the maximum time allowed for a matchmaking attempt. Player acceptance -- In each configuration, you have the option to require that all players accept participation in a proposed match. To enable this feature, set AcceptanceRequired to true and specify a time limit for player acceptance. Players have the option to accept or reject a proposed match, and a match does not move ahead to game session placement unless all matched players accept. Matchmaking status notification -- There are two ways to track the progress of matchmaking tickets: (1) polling ticket status with DescribeMatchmaking; or (2) receiving notifications with Amazon Simple Notification Service (SNS). To use notifications, you first need to set up an SNS topic to receive the notifications, and provide the topic ARN in the matchmaking configuration (see Setting up Notifications for Matchmaking). Since notifications promise only "best effort" delivery, we recommend calling DescribeMatchmaking if no notifications are received within 30 seconds. Operations related to match configurations and rule sets include: CreateMatchmakingConfiguration DescribeMatchmakingConfigurations UpdateMatchmakingConfiguration DeleteMatchmakingConfiguration CreateMatchmakingRuleSet DescribeMatchmakingRuleSets ValidateMatchmakingRuleSet + public func createMatchmakingConfiguration(_ input: CreateMatchmakingConfigurationInput) throws -> CreateMatchmakingConfigurationOutput { + return try client.send(operation: "CreateMatchmakingConfiguration", path: "/", httpMethod: "POST", input: input) } /// Creates an alias for a fleet. In most situations, you can use an alias ID in place of a fleet ID. By using a fleet alias instead of a specific fleet ID, you can switch gameplay and players to a new fleet without changing your game client or other game components. For example, for games in production, using an alias allows you to seamlessly redirect your player base to a new game server update. Amazon GameLift supports two types of routing strategies for aliases: simple and terminal. A simple alias points to an active fleet. A terminal alias is used to display messaging or link to a URL instead of routing players to an active fleet. For example, you might use a terminal alias when a game version is no longer supported and you want to direct players to an upgrade site. To create a fleet alias, specify an alias name, routing strategy, and optional description. Each simple alias can point to only one fleet, but a fleet can have multiple aliases. If successful, a new alias record is returned, including an alias ID, which you can reference when creating a game session. You can reassign an alias to another fleet by calling UpdateAlias. Alias-related operations include: CreateAlias ListAliases DescribeAlias UpdateAlias DeleteAlias ResolveAlias @@ -175,9 +280,14 @@ public struct Gamelift { return try client.send(operation: "CreateAlias", path: "/", httpMethod: "POST", input: input) } - /// Retrieves properties and current status of a game session placement request. To get game session placement details, specify the placement ID. If successful, a GameSessionPlacement object is returned. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement - public func describeGameSessionPlacement(_ input: DescribeGameSessionPlacementInput) throws -> DescribeGameSessionPlacementOutput { - return try client.send(operation: "DescribeGameSessionPlacement", path: "/", httpMethod: "POST", input: input) + /// Retrieves the details for FlexMatch matchmaking rule sets. You can request all existing rule sets for the region, or provide a list of one or more rule set names. When requesting multiple items, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a rule set is returned for each requested name. Operations related to match configurations and rule sets include: CreateMatchmakingConfiguration DescribeMatchmakingConfigurations UpdateMatchmakingConfiguration DeleteMatchmakingConfiguration CreateMatchmakingRuleSet DescribeMatchmakingRuleSets ValidateMatchmakingRuleSet + public func describeMatchmakingRuleSets(_ input: DescribeMatchmakingRuleSetsInput) throws -> DescribeMatchmakingRuleSetsOutput { + return try client.send(operation: "DescribeMatchmakingRuleSets", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves information about a fleet's instances, including instance IDs. Use this action to get details on all instances in the fleet or get details on one specific instance. To get a specific instance, specify fleet ID and instance ID. To get all instances in a fleet, specify a fleet ID only. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, an Instance object is returned for each result. + public func describeInstances(_ input: DescribeInstancesInput) throws -> DescribeInstancesOutput { + return try client.send(operation: "DescribeInstances", path: "/", httpMethod: "POST", input: input) } /// Retrieves all aliases for this AWS account. You can filter the result set by alias name and/or routing strategy type. Use the pagination parameters to retrieve results in sequential pages. Returned aliases are not listed in any particular order. Alias-related operations include: CreateAlias ListAliases DescribeAlias UpdateAlias DeleteAlias ResolveAlias @@ -185,9 +295,9 @@ public struct Gamelift { return try client.send(operation: "ListAliases", path: "/", httpMethod: "POST", input: input) } - /// Places a request for a new game session in a queue (see CreateGameSessionQueue). When processing a placement request, Amazon GameLift searches for available resources on the queue's destinations, scanning each until it finds resources or the placement request times out. A game session placement request can also request player sessions. When a new game session is successfully created, Amazon GameLift creates a player session for each player included in the request. When placing a game session, by default Amazon GameLift tries each fleet in the order they are listed in the queue configuration. Ideally, a queue's destinations are listed in preference order. Alternatively, when requesting a game session with players, you can also provide latency data for each player in relevant regions. Latency data indicates the performance lag a player experiences when connected to a fleet in the region. Amazon GameLift uses latency data to reorder the list of destinations to place the game session in a region with minimal lag. If latency data is provided for multiple players, Amazon GameLift calculates each region's average lag for all players and reorders to get the best game play across all players. To place a new game session request, specify the following: The queue name and a set of game session properties and settings A unique ID (such as a UUID) for the placement. You use this ID to track the status of the placement request (Optional) A set of IDs and player data for each player you want to join to the new game session Latency data for all players (if you want to optimize game play for the players) If successful, a new game session placement is created. To track the status of a placement request, call DescribeGameSessionPlacement and check the request's status. If the status is Fulfilled, a new game session has been created and a game session ARN and region are referenced. If the placement request times out, you can resubmit the request or retry it with a different queue. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement - public func startGameSessionPlacement(_ input: StartGameSessionPlacementInput) throws -> StartGameSessionPlacementOutput { - return try client.send(operation: "StartGameSessionPlacement", path: "/", httpMethod: "POST", input: input) + /// Retrieves properties and current status of a game session placement request. To get game session placement details, specify the placement ID. If successful, a GameSessionPlacement object is returned. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement + public func describeGameSessionPlacement(_ input: DescribeGameSessionPlacementInput) throws -> DescribeGameSessionPlacementOutput { + return try client.send(operation: "DescribeGameSessionPlacement", path: "/", httpMethod: "POST", input: input) } /// Adds a player to a game session and creates a player session record. Before a player can be added, a game session must have an ACTIVE status, have a creation policy of ALLOW_ALL, and have an open player slot. To add a group of players to a game session, use CreatePlayerSessions. To create a player session, specify a game session ID, player ID, and optionally a string of player data. If successful, the player is added to the game session and a new PlayerSession object is returned. Player sessions cannot be updated. Available in Amazon GameLift Local. Player-session-related operations include: CreatePlayerSession CreatePlayerSessions DescribePlayerSessions Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement @@ -195,49 +305,29 @@ public struct Gamelift { return try client.send(operation: "CreatePlayerSession", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the following information for the specified EC2 instance type: maximum number of instances allowed per AWS account (service limit) current usage level for the AWS account Service limits vary depending on region. Available regions for Amazon GameLift can be found in the AWS Management Console for Amazon GameLift (see the drop-down list in the upper right corner). Fleet-related operations include: CreateFleet ListFleets Describe fleets: DescribeFleetAttributes DescribeFleetPortSettings DescribeFleetUtilization DescribeRuntimeConfiguration DescribeFleetEvents Update fleets: UpdateFleetAttributes UpdateFleetCapacity UpdateFleetPortSettings UpdateRuntimeConfiguration Manage fleet capacity: DescribeFleetCapacity UpdateFleetCapacity PutScalingPolicy (automatic scaling) DescribeScalingPolicies (automatic scaling) DeleteScalingPolicy (automatic scaling) DescribeEC2InstanceLimits DeleteFleet - public func describeEC2InstanceLimits(_ input: DescribeEC2InstanceLimitsInput) throws -> DescribeEC2InstanceLimitsOutput { - return try client.send(operation: "DescribeEC2InstanceLimits", path: "/", httpMethod: "POST", input: input) - } - /// Establishes a new queue for processing requests to place new game sessions. A queue identifies where new game sessions can be hosted -- by specifying a list of destinations (fleets or aliases) -- and how long requests can wait in the queue before timing out. You can set up a queue to try to place game sessions on fleets in multiple regions. To add placement requests to a queue, call StartGameSessionPlacement and reference the queue name. Destination order. When processing a request for a game session, Amazon GameLift tries each destination in order until it finds one with available resources to host the new game session. A queue's default order is determined by how destinations are listed. The default order is overridden when a game session placement request provides player latency information. Player latency information enables Amazon GameLift to prioritize destinations where players report the lowest average latency, as a result placing the new game session where the majority of players will have the best possible gameplay experience. Player latency policies. For placement requests containing player latency information, use player latency policies to protect individual players from very high latencies. With a latency cap, even when a destination can deliver a low latency for most players, the game is not placed where any individual player is reporting latency higher than a policy's maximum. A queue can have multiple latency policies, which are enforced consecutively starting with the policy with the lowest latency cap. Use multiple policies to gradually relax latency controls; for example, you might set a policy with a low latency cap for the first 60 seconds, a second policy with a higher cap for the next 60 seconds, etc. To create a new queue, provide a name, timeout value, a list of destinations and, if desired, a set of latency policies. If successful, a new queue object is returned. Queue-related operations include: CreateGameSessionQueue DescribeGameSessionQueues UpdateGameSessionQueue DeleteGameSessionQueue public func createGameSessionQueue(_ input: CreateGameSessionQueueInput) throws -> CreateGameSessionQueueOutput { return try client.send(operation: "CreateGameSessionQueue", path: "/", httpMethod: "POST", input: input) } + /// Retrieves the location of stored game session logs for a specified game session. When a game session is terminated, Amazon GameLift automatically stores the logs in Amazon S3 and retains them for 14 days. Use this URL to download the logs. See the AWS Service Limits page for maximum log file sizes. Log files that exceed this limit are not saved. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement + public func getGameSessionLogUrl(_ input: GetGameSessionLogUrlInput) throws -> GetGameSessionLogUrlOutput { + return try client.send(operation: "GetGameSessionLogUrl", path: "/", httpMethod: "POST", input: input) + } + /// Deletes a build. This action permanently deletes the build record and any uploaded build files. To delete a build, specify its ID. Deleting a build does not affect the status of any active fleets using the build, but you can no longer create new fleets with the deleted build. Build-related operations include: CreateBuild ListBuilds DescribeBuild UpdateBuild DeleteBuild public func deleteBuild(_ input: DeleteBuildInput) throws { _ = try client.send(operation: "DeleteBuild", path: "/", httpMethod: "POST", input: input) } - /// Cancels a game session placement that is in Pending status. To stop a placement, provide the placement ID values. If successful, the placement is moved to Cancelled status. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement - public func stopGameSessionPlacement(_ input: StopGameSessionPlacementInput) throws -> StopGameSessionPlacementOutput { - return try client.send(operation: "StopGameSessionPlacement", path: "/", httpMethod: "POST", input: input) - } - - /// Retrieves information about a fleet's instances, including instance IDs. Use this action to get details on all instances in the fleet or get details on one specific instance. To get a specific instance, specify fleet ID and instance ID. To get all instances in a fleet, specify a fleet ID only. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, an Instance object is returned for each result. - public func describeInstances(_ input: DescribeInstancesInput) throws -> DescribeInstancesOutput { - return try client.send(operation: "DescribeInstances", path: "/", httpMethod: "POST", input: input) - } - - /// Creates a multiplayer game session for players. This action creates a game session record and assigns an available server process in the specified fleet to host the game session. A fleet must have an ACTIVE status before a game session can be created in it. To create a game session, specify either fleet ID or alias ID and indicate a maximum number of players to allow in the game session. You can also provide a name and game-specific properties for this game session. If successful, a GameSession object is returned containing game session properties, including a game session ID with the custom string you provided. Idempotency tokens. You can add a token that uniquely identifies game session requests. This is useful for ensuring that game session requests are idempotent. Multiple requests with the same idempotency token are processed only once; subsequent requests return the original result. All response values are the same with the exception of game session status, which may change. Resource creation limits. If you are creating a game session on a fleet with a resource creation limit policy in force, then you must specify a creator ID. Without this ID, Amazon GameLift has no way to evaluate the policy for this new game session request. By default, newly created game sessions allow new players to join. Use UpdateGameSession to change the game session's player session creation policy. Available in Amazon GameLift Local. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement - public func createGameSession(_ input: CreateGameSessionInput) throws -> CreateGameSessionOutput { - return try client.send(operation: "CreateGameSession", path: "/", httpMethod: "POST", input: input) - } - /// Updates properties for an alias. To update properties, specify the alias ID to be updated and provide the information to be changed. To reassign an alias to another fleet, provide an updated routing strategy. If successful, the updated alias record is returned. Alias-related operations include: CreateAlias ListAliases DescribeAlias UpdateAlias DeleteAlias ResolveAlias public func updateAlias(_ input: UpdateAliasInput) throws -> UpdateAliasOutput { return try client.send(operation: "UpdateAlias", path: "/", httpMethod: "POST", input: input) } - /// Retrieves build records for all builds associated with the AWS account in use. You can limit results to builds that are in a specific status by using the Status parameter. Use the pagination parameters to retrieve results in a set of sequential pages. Build records are not listed in any particular order. Build-related operations include: CreateBuild ListBuilds DescribeBuild UpdateBuild DeleteBuild - public func listBuilds(_ input: ListBuildsInput) throws -> ListBuildsOutput { - return try client.send(operation: "ListBuilds", path: "/", httpMethod: "POST", input: input) - } - - /// Retrieves the location of stored game session logs for a specified game session. When a game session is terminated, Amazon GameLift automatically stores the logs in Amazon S3. Use this URL to download the logs. See the AWS Service Limits page for maximum log file sizes. Log files that exceed this limit are not saved. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement - public func getGameSessionLogUrl(_ input: GetGameSessionLogUrlInput) throws -> GetGameSessionLogUrlOutput { - return try client.send(operation: "GetGameSessionLogUrl", path: "/", httpMethod: "POST", input: input) + /// Retrieves the details of FlexMatch matchmaking configurations. with this operation, you have the following options: (1) retrieve all existing configurations, (2) provide the names of one or more configurations to retrieve, or (3) retrieve all configurations that use a specified rule set name. When requesting multiple items, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a configuration is returned for each requested name. When specifying a list of names, only configurations that currently exist are returned. Operations related to match configurations and rule sets include: CreateMatchmakingConfiguration DescribeMatchmakingConfigurations UpdateMatchmakingConfiguration DeleteMatchmakingConfiguration CreateMatchmakingRuleSet DescribeMatchmakingRuleSets ValidateMatchmakingRuleSet + public func describeMatchmakingConfigurations(_ input: DescribeMatchmakingConfigurationsInput) throws -> DescribeMatchmakingConfigurationsOutput { + return try client.send(operation: "DescribeMatchmakingConfigurations", path: "/", httpMethod: "POST", input: input) } /// Updates metadata in a build record, including the build name and version. To update the metadata, specify the build ID to update and provide the new values. If successful, a build object containing the updated metadata is returned. Build-related operations include: CreateBuild ListBuilds DescribeBuild UpdateBuild DeleteBuild @@ -250,11 +340,6 @@ public struct Gamelift { return try client.send(operation: "DescribeGameSessionQueues", path: "/", httpMethod: "POST", input: input) } - /// This API call is not currently in use. Retrieves a fresh set of upload credentials and the assigned Amazon S3 storage location for a specific build. Valid credentials are required to upload your game build files to Amazon S3. - public func requestUploadCredentials(_ input: RequestUploadCredentialsInput) throws -> RequestUploadCredentialsOutput { - return try client.send(operation: "RequestUploadCredentials", path: "/", httpMethod: "POST", input: input) - } - /// Retrieves a set of game sessions that match a set of search criteria and sorts them in a specified order. A game session search is limited to a single fleet. Search results include only game sessions that are in ACTIVE status. If you need to retrieve game sessions with a status other than active, use DescribeGameSessions. If you need to retrieve the protection policy for each game session, use DescribeGameSessionDetails. You can search or sort by the following game session attributes: gameSessionId -- Unique identifier for the game session. You can use either a GameSessionId or GameSessionArn value. gameSessionName -- Name assigned to a game session. This value is set when requesting a new game session with CreateGameSession or updating with UpdateGameSession. Game session names do not need to be unique to a game session. creationTimeMillis -- Value indicating when a game session was created. It is expressed in Unix time as milliseconds. playerSessionCount -- Number of players currently connected to a game session. This value changes rapidly as players join the session or drop out. maximumSessions -- Maximum number of player sessions allowed for a game session. This value is set when requesting a new game session with CreateGameSession or updating with UpdateGameSession. hasAvailablePlayerSessions -- Boolean value indicating whether a game session has reached its maximum number of players. When searching with this attribute, the search value must be true or false. It is highly recommended that all search requests include this filter attribute to optimize search performance and return only sessions that players can join. To search or sort, specify either a fleet ID or an alias ID, and provide a search filter expression, a sort expression, or both. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a collection of GameSession objects matching the request is returned. Returned values for playerSessionCount and hasAvailablePlayerSessions change quickly as players join sessions and others drop out. Results should be considered a snapshot in time. Be sure to refresh search results often, and handle sessions that fill up before a player can join. Game-session-related operations include: CreateGameSession DescribeGameSessions DescribeGameSessionDetails SearchGameSessions UpdateGameSession GetGameSessionLogUrl Game session placements StartGameSessionPlacement DescribeGameSessionPlacement StopGameSessionPlacement public func searchGameSessions(_ input: SearchGameSessionsInput) throws -> SearchGameSessionsOutput { return try client.send(operation: "SearchGameSessions", path: "/", httpMethod: "POST", input: input) diff --git a/Sources/AWSSDKSwift/Services/gamelift/Gamelift_Error.swift b/Sources/AWSSDKSwift/Services/gamelift/Gamelift_Error.swift index 8666352ce2b..e346aa498e7 100644 --- a/Sources/AWSSDKSwift/Services/gamelift/Gamelift_Error.swift +++ b/Sources/AWSSDKSwift/Services/gamelift/Gamelift_Error.swift @@ -4,18 +4,19 @@ import AWSSDKSwiftCore /// Error enum for Gamelift public enum GameliftError: AWSErrorType { - case unauthorizedException(message: String?) - case invalidRequestException(message: String?) - case notFoundException(message: String?) case internalServiceException(message: String?) - case terminalRoutingStrategyException(message: String?) + case notFoundException(message: String?) + case invalidRequestException(message: String?) + case unauthorizedException(message: String?) case invalidFleetStatusException(message: String?) case conflictException(message: String?) - case invalidGameSessionStatusException(message: String?) case limitExceededException(message: String?) - case gameSessionFullException(message: String?) + case terminalRoutingStrategyException(message: String?) + case unsupportedRegionException(message: String?) case fleetCapacityExceededException(message: String?) case idempotentParameterMismatchException(message: String?) + case invalidGameSessionStatusException(message: String?) + case gameSessionFullException(message: String?) } extension GameliftError { @@ -25,30 +26,32 @@ extension GameliftError { errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) } switch errorCode { - case "UnauthorizedException": - self = .unauthorizedException(message: message) - case "InvalidRequestException": - self = .invalidRequestException(message: message) - case "NotFoundException": - self = .notFoundException(message: message) case "InternalServiceException": self = .internalServiceException(message: message) - case "TerminalRoutingStrategyException": - self = .terminalRoutingStrategyException(message: message) + case "NotFoundException": + self = .notFoundException(message: message) + case "InvalidRequestException": + self = .invalidRequestException(message: message) + case "UnauthorizedException": + self = .unauthorizedException(message: message) case "InvalidFleetStatusException": self = .invalidFleetStatusException(message: message) case "ConflictException": self = .conflictException(message: message) - case "InvalidGameSessionStatusException": - self = .invalidGameSessionStatusException(message: message) case "LimitExceededException": self = .limitExceededException(message: message) - case "GameSessionFullException": - self = .gameSessionFullException(message: message) + case "TerminalRoutingStrategyException": + self = .terminalRoutingStrategyException(message: message) + case "UnsupportedRegionException": + self = .unsupportedRegionException(message: message) case "FleetCapacityExceededException": self = .fleetCapacityExceededException(message: message) case "IdempotentParameterMismatchException": self = .idempotentParameterMismatchException(message: message) + case "InvalidGameSessionStatusException": + self = .invalidGameSessionStatusException(message: message) + case "GameSessionFullException": + self = .gameSessionFullException(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/gamelift/Gamelift_Shapes.swift b/Sources/AWSSDKSwift/Services/gamelift/Gamelift_Shapes.swift index d2a9bad7c53..af15e14638d 100644 --- a/Sources/AWSSDKSwift/Services/gamelift/Gamelift_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/gamelift/Gamelift_Shapes.swift @@ -5,24 +5,8 @@ import AWSSDKSwiftCore extension Gamelift { - public struct DeleteFleetInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FleetId", required: true, type: .string) - ] - /// Unique identifier for a fleet to be deleted. - public let fleetId: String - - public init(fleetId: String) { - self.fleetId = fleetId - } - - private enum CodingKeys: String, CodingKey { - case fleetId = "FleetId" - } - } - public struct UpdateFleetCapacityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MinSize", required: false, type: .integer), AWSShapeMember(label: "MaxSize", required: false, type: .integer), AWSShapeMember(label: "DesiredInstances", required: false, type: .integer), @@ -52,8 +36,65 @@ extension Gamelift { } } + public struct SearchGameSessionsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortExpression", required: false, type: .string), + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "FilterExpression", required: false, type: .string), + AWSShapeMember(label: "FleetId", required: false, type: .string), + AWSShapeMember(label: "AliasId", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Instructions on how to sort the search results. If no sort expression is included, the request returns results in random order. A sort expression consists of the following elements: Operand -- Name of a game session attribute. Valid values are gameSessionName, gameSessionId, creationTimeMillis, playerSessionCount, maximumSessions, hasAvailablePlayerSessions. Order -- Valid sort orders are ASC (ascending) and DESC (descending). For example, this sort expression returns the oldest active sessions first: "SortExpression": "creationTimeMillis ASC". Results with a null value for the sort operand are returned at the end of the list. + public let sortExpression: String? + /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. The maximum number of results returned is 20, even if this value is not set or is set higher than 20. + public let limit: Int32? + /// String containing the search criteria for the session search. If no filter expression is included, the request returns results for all game sessions in the fleet that are in ACTIVE status. A filter expression can contain one or multiple conditions. Each condition consists of the following: Operand -- Name of a game session attribute. Valid values are gameSessionName, gameSessionId, creationTimeMillis, playerSessionCount, maximumSessions, hasAvailablePlayerSessions. Comparator -- Valid comparators are: =, <>, <, >, <=, >=. Value -- Value to be searched for. Values can be numbers, boolean values (true/false) or strings. String values are case sensitive, enclosed in single quotes. Special characters must be escaped. Boolean and string values can only be used with the comparators = and <>. For example, the following filter expression searches on gameSessionName: "FilterExpression": "gameSessionName = 'Matt\\'s Awesome Game 1'". To chain multiple conditions in a single expression, use the logical keywords AND, OR, and NOT and parentheses as needed. For example: x AND y AND NOT z, NOT (x OR y). Session search evaluates conditions from left to right using the following precedence rules: =, <>, <, >, <=, >= Parentheses NOT AND OR For example, this filter expression retrieves game sessions hosting at least ten players that have an open player slot: "maximumSessions>=10 AND hasAvailablePlayerSessions=true". + public let filterExpression: String? + /// Unique identifier for a fleet to search for active game sessions. Each request must reference either a fleet ID or alias ID, but not both. + public let fleetId: String? + /// Unique identifier for an alias associated with the fleet to search for active game sessions. Each request must reference either a fleet ID or alias ID, but not both. + public let aliasId: String? + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. + public let nextToken: String? + + public init(sortExpression: String? = nil, limit: Int32? = nil, filterExpression: String? = nil, fleetId: String? = nil, aliasId: String? = nil, nextToken: String? = nil) { + self.sortExpression = sortExpression + self.limit = limit + self.filterExpression = filterExpression + self.fleetId = fleetId + self.aliasId = aliasId + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case sortExpression = "SortExpression" + case limit = "Limit" + case filterExpression = "FilterExpression" + case fleetId = "FleetId" + case aliasId = "AliasId" + case nextToken = "NextToken" + } + } + + public struct DeleteFleetInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FleetId", required: true, type: .string) + ] + /// Unique identifier for a fleet to be deleted. + public let fleetId: String + + public init(fleetId: String) { + self.fleetId = fleetId + } + + private enum CodingKeys: String, CodingKey { + case fleetId = "FleetId" + } + } + public struct DescribePlayerSessionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlayerId", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "GameSessionId", required: false, type: .string), @@ -67,9 +108,9 @@ extension Gamelift { public let limit: Int32? /// Unique identifier for the game session to retrieve player sessions for. public let gameSessionId: String? - /// Player session status to filter results on. Possible player session statuses include the following: RESERVED – The player session request has been received, but the player has not yet connected to the server process and/or been validated. ACTIVE – The player has been validated by the server process and is currently connected. COMPLETED – The player connection has been dropped. TIMEDOUT – A player session request was received, but the player did not connect and/or was not validated within the time-out limit (60 seconds). + /// Player session status to filter results on. Possible player session statuses include the following: RESERVED -- The player session request has been received, but the player has not yet connected to the server process and/or been validated. ACTIVE -- The player has been validated by the server process and is currently connected. COMPLETED -- The player connection has been dropped. TIMEDOUT -- A player session request was received, but the player did not connect and/or was not validated within the timeout limit (60 seconds). public let playerSessionStatusFilter: String? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. If a player session ID is specified, this parameter is ignored. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. If a player session ID is specified, this parameter is ignored. public let nextToken: String? /// Unique identifier for a player session to retrieve. public let playerSessionId: String? @@ -93,49 +134,65 @@ extension Gamelift { } } - public struct SearchGameSessionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SortExpression", required: false, type: .string), - AWSShapeMember(label: "Limit", required: false, type: .integer), - AWSShapeMember(label: "FilterExpression", required: false, type: .string), + public struct VpcPeeringConnection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GameLiftVpcId", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .structure), + AWSShapeMember(label: "VpcPeeringConnectionId", required: false, type: .string), AWSShapeMember(label: "FleetId", required: false, type: .string), - AWSShapeMember(label: "AliasId", required: false, type: .string), - AWSShapeMember(label: "NextToken", required: false, type: .string) + AWSShapeMember(label: "PeerVpcId", required: false, type: .string), + AWSShapeMember(label: "IpV4CidrBlock", required: false, type: .string) ] - /// Instructions on how to sort the search results. If no sort expression is included, the request returns results in random order. A sort expression consists of the following elements: Operand -- Name of a game session attribute. Valid values are gameSessionName, gameSessionId, creationTimeMillis, playerSessionCount, maximumSessions, hasAvailablePlayerSessions. Order -- Valid sort orders are ASC (ascending) and DESC (descending). For example, this sort expression returns the oldest active sessions first: "SortExpression": "creationTimeMillis ASC". Results with a null value for the sort operand are returned at the end of the list. - public let sortExpression: String? - /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. The maximum number of results returned is 20, even if this value is not set or is set higher than 20. - public let limit: Int32? - /// String containing the search criteria for the session search. If no filter expression is included, the request returns results for all game sessions in the fleet that are in ACTIVE status. A filter expression can contain one or multiple conditions. Each condition consists of the following: Operand -- Name of a game session attribute. Valid values are gameSessionName, gameSessionId, creationTimeMillis, playerSessionCount, maximumSessions, hasAvailablePlayerSessions. Comparator -- Valid comparators are: =, <>, <, >, <=, >=. Value -- Value to be searched for. Values can be numbers, boolean values (true/false) or strings. String values are case sensitive, enclosed in single quotes. Special characters must be escaped. Boolean and string values can only be used with the comparators = and <>. For example, the following filter expression searches on gameSessionName: "FilterExpression": "gameSessionName = 'Matt\\'s Awesome Game 1'". To chain multiple conditions in a single expression, use the logical keywords AND, OR, and NOT and parentheses as needed. For example: x AND y AND NOT z, NOT (x OR y). Session search evaluates conditions from left to right using the following precedence rules: =, <>, <, >, <=, >= Parentheses NOT AND OR For example, this filter expression retrieves game sessions hosting at least ten players that have an open player slot: "maximumSessions>=10 AND hasAvailablePlayerSessions=true". - public let filterExpression: String? - /// Unique identifier for a fleet to search for active game sessions. Each request must reference either a fleet ID or alias ID, but not both. + /// Unique identifier for the VPC that contains the Amazon GameLift fleet for this connection. This VPC is managed by Amazon GameLift and does not appear in your AWS account. + public let gameLiftVpcId: String? + /// Object that contains status information about the connection. Status indicates if a connection is pending, successful, or failed. + public let status: VpcPeeringConnectionStatus? + /// Unique identifier that is automatically assigned to the connection record. This ID is referenced in VPC peering connection events, and is used when deleting a connection with DeleteVpcPeeringConnection. + public let vpcPeeringConnectionId: String? + /// Unique identifier for a fleet. This ID determines the ID of the Amazon GameLift VPC for your fleet. public let fleetId: String? - /// Unique identifier for an alias associated with the fleet to search for active game sessions. Each request must reference either a fleet ID or alias ID, but not both. - public let aliasId: String? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. - public let nextToken: String? + /// Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console. + public let peerVpcId: String? + /// CIDR block of IPv4 addresses assigned to the VPC peering connection for the GameLift VPC. The peered VPC also has an IPv4 CIDR block associated with it; these blocks cannot overlap or the peering connection cannot be created. + public let ipV4CidrBlock: String? - public init(sortExpression: String? = nil, limit: Int32? = nil, filterExpression: String? = nil, fleetId: String? = nil, aliasId: String? = nil, nextToken: String? = nil) { - self.sortExpression = sortExpression - self.limit = limit - self.filterExpression = filterExpression + public init(gameLiftVpcId: String? = nil, status: VpcPeeringConnectionStatus? = nil, vpcPeeringConnectionId: String? = nil, fleetId: String? = nil, peerVpcId: String? = nil, ipV4CidrBlock: String? = nil) { + self.gameLiftVpcId = gameLiftVpcId + self.status = status + self.vpcPeeringConnectionId = vpcPeeringConnectionId self.fleetId = fleetId - self.aliasId = aliasId - self.nextToken = nextToken + self.peerVpcId = peerVpcId + self.ipV4CidrBlock = ipV4CidrBlock } private enum CodingKeys: String, CodingKey { - case sortExpression = "SortExpression" - case limit = "Limit" - case filterExpression = "FilterExpression" + case gameLiftVpcId = "GameLiftVpcId" + case status = "Status" + case vpcPeeringConnectionId = "VpcPeeringConnectionId" case fleetId = "FleetId" - case aliasId = "AliasId" - case nextToken = "NextToken" + case peerVpcId = "PeerVpcId" + case ipV4CidrBlock = "IpV4CidrBlock" + } + } + + public struct StopMatchmakingInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TicketId", required: true, type: .string) + ] + /// Unique identifier for a matchmaking ticket. + public let ticketId: String + + public init(ticketId: String) { + self.ticketId = ticketId + } + + private enum CodingKeys: String, CodingKey { + case ticketId = "TicketId" } } public struct PutScalingPolicyOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string) ] /// Descriptive label that is associated with a scaling policy. Policy names do not need to be unique. @@ -150,6 +207,22 @@ extension Gamelift { } } + public struct GetGameSessionLogUrlOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PreSignedUrl", required: false, type: .string) + ] + /// Location of the requested game session logs, available for download. + public let preSignedUrl: String? + + public init(preSignedUrl: String? = nil) { + self.preSignedUrl = preSignedUrl + } + + private enum CodingKeys: String, CodingKey { + case preSignedUrl = "PreSignedUrl" + } + } + public enum EventCode: String, CustomStringConvertible, Codable { case genericEvent = "GENERIC_EVENT" case fleetCreated = "FLEET_CREATED" @@ -180,11 +253,14 @@ extension Gamelift { case fleetCreationExtractingBuild = "FLEET_CREATION_EXTRACTING_BUILD" case fleetCreationRunningInstaller = "FLEET_CREATION_RUNNING_INSTALLER" case fleetCreationValidatingRuntimeConfig = "FLEET_CREATION_VALIDATING_RUNTIME_CONFIG" + case fleetVpcPeeringSucceeded = "FLEET_VPC_PEERING_SUCCEEDED" + case fleetVpcPeeringFailed = "FLEET_VPC_PEERING_FAILED" + case fleetVpcPeeringDeleted = "FLEET_VPC_PEERING_DELETED" public var description: String { return self.rawValue } } public struct ScalingPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Threshold", required: false, type: .double), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "MetricName", required: false, type: .enum), @@ -197,9 +273,9 @@ extension Gamelift { ] /// Metric value used to trigger a scaling event. public let threshold: Double? - /// Current status of the scaling policy. The scaling policy is only in force when in an ACTIVE status. ACTIVE – The scaling policy is currently in force. UPDATE_REQUESTED – A request to update the scaling policy has been received. UPDATING – A change is being made to the scaling policy. DELETE_REQUESTED – A request to delete the scaling policy has been received. DELETING – The scaling policy is being deleted. DELETED – The scaling policy has been deleted. ERROR – An error occurred in creating the policy. It should be removed and recreated. + /// Current status of the scaling policy. The scaling policy is only in force when in an ACTIVE status. ACTIVE -- The scaling policy is currently in force. UPDATE_REQUESTED -- A request to update the scaling policy has been received. UPDATING -- A change is being made to the scaling policy. DELETE_REQUESTED -- A request to delete the scaling policy has been received. DELETING -- The scaling policy is being deleted. DELETED -- The scaling policy has been deleted. ERROR -- An error occurred in creating the policy. It should be removed and recreated. public let status: ScalingStatusType? - /// Name of the Amazon GameLift-defined metric that is used to trigger an adjustment. ActivatingGameSessions – number of game sessions in the process of being created (game session status = ACTIVATING). ActiveGameSessions – number of game sessions currently running (game session status = ACTIVE). CurrentPlayerSessions – number of active or reserved player sessions (player session status = ACTIVE or RESERVED). AvailablePlayerSessions – number of player session slots currently available in active game sessions across the fleet, calculated by subtracting a game session's current player session count from its maximum player session count. This number does include game sessions that are not currently accepting players (game session PlayerSessionCreationPolicy = DENY_ALL). ActiveInstances – number of instances currently running a game session. IdleInstances – number of instances not currently running a game session. + /// Name of the Amazon GameLift-defined metric that is used to trigger an adjustment. ActivatingGameSessions -- number of game sessions in the process of being created (game session status = ACTIVATING). ActiveGameSessions -- number of game sessions currently running (game session status = ACTIVE). CurrentPlayerSessions -- number of active or reserved player sessions (player session status = ACTIVE or RESERVED). AvailablePlayerSessions -- number of player session slots currently available in active game sessions across the fleet, calculated by subtracting a game session's current player session count from its maximum player session count. This number does include game sessions that are not currently accepting players (game session PlayerSessionCreationPolicy = DENY_ALL). ActiveInstances -- number of instances currently running a game session. IdleInstances -- number of instances not currently running a game session. public let metricName: MetricName? /// Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered. public let evaluationPeriods: Int32? @@ -209,7 +285,7 @@ extension Gamelift { public let scalingAdjustment: Int32? /// Comparison operator to use when measuring a metric against the threshold value. public let comparisonOperator: ComparisonOperatorType? - /// Type of adjustment to make to a fleet's instance count (see FleetCapacity): ChangeInCapacity – add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down. ExactCapacity – set the instance count to the scaling adjustment value. PercentChangeInCapacity – increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down. + /// Type of adjustment to make to a fleet's instance count (see FleetCapacity): ChangeInCapacity -- add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down. ExactCapacity -- set the instance count to the scaling adjustment value. PercentChangeInCapacity -- increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down. public let scalingAdjustmentType: ScalingAdjustmentType? /// Unique identifier for a fleet that is associated with this scaling policy. public let fleetId: String? @@ -239,22 +315,6 @@ extension Gamelift { } } - public struct GetGameSessionLogUrlOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PreSignedUrl", required: false, type: .string) - ] - /// Location of the requested game session logs, available for download. - public let preSignedUrl: String? - - public init(preSignedUrl: String? = nil) { - self.preSignedUrl = preSignedUrl - } - - private enum CodingKeys: String, CodingKey { - case preSignedUrl = "PreSignedUrl" - } - } - public enum ScalingStatusType: String, CustomStringConvertible, Codable { case active = "ACTIVE" case updateRequested = "UPDATE_REQUESTED" @@ -267,7 +327,7 @@ extension Gamelift { } public struct Build: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .string), @@ -276,7 +336,7 @@ extension Gamelift { AWSShapeMember(label: "SizeOnDisk", required: false, type: .long), AWSShapeMember(label: "BuildId", required: false, type: .string) ] - /// Current status of the build. Possible build statuses include the following: INITIALIZED – A new build has been defined, but no files have been uploaded. You cannot create fleets for builds that are in this status. When a build is successfully created, the build status is set to this value. READY – The game build has been successfully uploaded. You can now create new fleets for this build. FAILED – The game build upload failed. You cannot create new fleets for this build. + /// Current status of the build. Possible build statuses include the following: INITIALIZED -- A new build has been defined, but no files have been uploaded. You cannot create fleets for builds that are in this status. When a build is successfully created, the build status is set to this value. READY -- The game build has been successfully uploaded. You can now create new fleets for this build. FAILED -- The game build upload failed. You cannot create new fleets for this build. public let status: BuildStatus? /// Descriptive label that is associated with a build. Build names do not need to be unique. It can be set using CreateBuild or UpdateBuild. public let name: String? @@ -312,8 +372,24 @@ extension Gamelift { } } + public struct DescribeVpcPeeringConnectionsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FleetId", required: false, type: .string) + ] + /// Unique identifier for a fleet. + public let fleetId: String? + + public init(fleetId: String? = nil) { + self.fleetId = fleetId + } + + private enum CodingKeys: String, CodingKey { + case fleetId = "FleetId" + } + } + public struct DescribeBuildInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BuildId", required: true, type: .string) ] /// Unique identifier for a build to retrieve properties for. @@ -329,7 +405,7 @@ extension Gamelift { } public struct DescribeFleetPortSettingsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetId", required: true, type: .string) ] /// Unique identifier for a fleet to retrieve port settings for. @@ -345,7 +421,7 @@ extension Gamelift { } public struct DescribeFleetUtilizationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "FleetUtilization", required: false, type: .list) ] @@ -366,7 +442,7 @@ extension Gamelift { } public struct UpdateGameSessionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSession", required: false, type: .structure) ] /// Object that contains the updated game session metadata. @@ -401,6 +477,12 @@ extension Gamelift { case r32Xlarge = "r3.2xlarge" case r34Xlarge = "r3.4xlarge" case r38Xlarge = "r3.8xlarge" + case r4Large = "r4.large" + case r4Xlarge = "r4.xlarge" + case r42Xlarge = "r4.2xlarge" + case r44Xlarge = "r4.4xlarge" + case r48Xlarge = "r4.8xlarge" + case r416Xlarge = "r4.16xlarge" case m3Medium = "m3.medium" case m3Large = "m3.large" case m3Xlarge = "m3.xlarge" @@ -414,7 +496,7 @@ extension Gamelift { } public struct ResolveAliasOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetId", required: false, type: .string) ] /// Fleet identifier that is associated with the requested alias. @@ -430,7 +512,7 @@ extension Gamelift { } public struct DescribeAliasInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AliasId", required: true, type: .string) ] /// Unique identifier for a fleet alias. Specify the alias you want to retrieve. @@ -446,7 +528,7 @@ extension Gamelift { } public struct UpdateGameSessionQueueInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Destinations", required: false, type: .list), AWSShapeMember(label: "TimeoutInSeconds", required: false, type: .integer), AWSShapeMember(label: "Name", required: true, type: .string), @@ -456,7 +538,7 @@ extension Gamelift { public let destinations: [GameSessionQueueDestination]? /// Maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status. public let timeoutInSeconds: Int32? - /// Descriptive label that is associated with queue. Queue names must be unique within each region. + /// Descriptive label that is associated with game session queue. Queue names must be unique within each region. public let name: String /// Collection of latency policies to apply when processing game sessions placement requests with player latency information. Multiple policies are evaluated in order of the maximum latency value, starting with the lowest latency values. With just one policy, it is enforced at the start of the game session placement for the duration period. With multiple policies, each policy is enforced consecutively for its duration period. For example, a queue might enforce a 60-second policy followed by a 120-second policy, and then no policy for the remainder of the placement. When updating policies, provide a complete collection of policies. public let playerLatencyPolicies: [PlayerLatencyPolicy]? @@ -491,8 +573,24 @@ extension Gamelift { public var description: String { return self.rawValue } } + public struct DescribeMatchmakingInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TicketIds", required: true, type: .list) + ] + /// Unique identifier for a matchmaking ticket. To request all existing tickets, leave this parameter empty. + public let ticketIds: [String] + + public init(ticketIds: [String]) { + self.ticketIds = ticketIds + } + + private enum CodingKeys: String, CodingKey { + case ticketIds = "TicketIds" + } + } + public struct DescribeGameSessionPlacementOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessionPlacement", required: false, type: .structure) ] /// Object that describes the requested game session placement. @@ -507,8 +605,30 @@ extension Gamelift { } } + public struct DeleteVpcPeeringConnectionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FleetId", required: true, type: .string), + AWSShapeMember(label: "VpcPeeringConnectionId", required: true, type: .string) + ] + /// Unique identifier for a fleet. This value must match the fleet ID referenced in the VPC peering connection record. + public let fleetId: String + /// Unique identifier for a VPC peering connection. This value is included in the VpcPeeringConnection object, which can be retrieved by calling DescribeVpcPeeringConnections. + public let vpcPeeringConnectionId: String + + public init(fleetId: String, vpcPeeringConnectionId: String) { + self.fleetId = fleetId + self.vpcPeeringConnectionId = vpcPeeringConnectionId + } + + private enum CodingKeys: String, CodingKey { + case fleetId = "FleetId" + case vpcPeeringConnectionId = "VpcPeeringConnectionId" + } + } + public struct GameSession: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GameSessionData", required: false, type: .string), AWSShapeMember(label: "TerminationTime", required: false, type: .timestamp), AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), AWSShapeMember(label: "GameSessionId", required: false, type: .string), @@ -519,15 +639,17 @@ extension Gamelift { AWSShapeMember(label: "CreatorId", required: false, type: .string), AWSShapeMember(label: "PlayerSessionCreationPolicy", required: false, type: .enum), AWSShapeMember(label: "GameProperties", required: false, type: .list), - AWSShapeMember(label: "FleetId", required: false, type: .string), AWSShapeMember(label: "CurrentPlayerSessionCount", required: false, type: .integer), + AWSShapeMember(label: "FleetId", required: false, type: .string), AWSShapeMember(label: "Port", required: false, type: .integer) ] + /// Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). + public let gameSessionData: String? /// Time stamp indicating when this data object was terminated. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). public let terminationTime: TimeStamp? /// Time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). public let creationTime: TimeStamp? - /// Unique identifier for the game session. A game session ID has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>. + /// Unique identifier for the game session. A game session ARN has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>. public let gameSessionId: String? /// Maximum number of players that can be connected simultaneously to the game session. public let maximumPlayerSessionCount: Int32? @@ -541,16 +663,17 @@ extension Gamelift { public let creatorId: String? /// Indicates whether or not the game session is accepting new players. public let playerSessionCreationPolicy: PlayerSessionCreationPolicy? - /// Set of developer-defined properties for a game session. These properties are passed to the server process hosting the game session. + /// Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). public let gameProperties: [GameProperty]? - /// Unique identifier for a fleet the game session is running on. - public let fleetId: String? /// Number of players currently in the game session. public let currentPlayerSessionCount: Int32? + /// Unique identifier for a fleet that the game session is running on. + public let fleetId: String? /// Port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. public let port: Int32? - public init(terminationTime: TimeStamp? = nil, creationTime: TimeStamp? = nil, gameSessionId: String? = nil, maximumPlayerSessionCount: Int32? = nil, status: GameSessionStatus? = nil, name: String? = nil, ipAddress: String? = nil, creatorId: String? = nil, playerSessionCreationPolicy: PlayerSessionCreationPolicy? = nil, gameProperties: [GameProperty]? = nil, fleetId: String? = nil, currentPlayerSessionCount: Int32? = nil, port: Int32? = nil) { + public init(gameSessionData: String? = nil, terminationTime: TimeStamp? = nil, creationTime: TimeStamp? = nil, gameSessionId: String? = nil, maximumPlayerSessionCount: Int32? = nil, status: GameSessionStatus? = nil, name: String? = nil, ipAddress: String? = nil, creatorId: String? = nil, playerSessionCreationPolicy: PlayerSessionCreationPolicy? = nil, gameProperties: [GameProperty]? = nil, currentPlayerSessionCount: Int32? = nil, fleetId: String? = nil, port: Int32? = nil) { + self.gameSessionData = gameSessionData self.terminationTime = terminationTime self.creationTime = creationTime self.gameSessionId = gameSessionId @@ -561,12 +684,13 @@ extension Gamelift { self.creatorId = creatorId self.playerSessionCreationPolicy = playerSessionCreationPolicy self.gameProperties = gameProperties - self.fleetId = fleetId self.currentPlayerSessionCount = currentPlayerSessionCount + self.fleetId = fleetId self.port = port } private enum CodingKeys: String, CodingKey { + case gameSessionData = "GameSessionData" case terminationTime = "TerminationTime" case creationTime = "CreationTime" case gameSessionId = "GameSessionId" @@ -577,14 +701,14 @@ extension Gamelift { case creatorId = "CreatorId" case playerSessionCreationPolicy = "PlayerSessionCreationPolicy" case gameProperties = "GameProperties" - case fleetId = "FleetId" case currentPlayerSessionCount = "CurrentPlayerSessionCount" + case fleetId = "FleetId" case port = "Port" } } public struct ListBuildsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Builds", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -613,7 +737,7 @@ extension Gamelift { } public struct DescribeScalingPoliciesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ScalingPolicies", required: false, type: .list) ] @@ -634,9 +758,10 @@ extension Gamelift { } public struct GameSessionPlacement: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlacedPlayerSessions", required: false, type: .list), AWSShapeMember(label: "GameSessionRegion", required: false, type: .string), + AWSShapeMember(label: "GameSessionData", required: false, type: .string), AWSShapeMember(label: "PlacementId", required: false, type: .string), AWSShapeMember(label: "PlayerLatencies", required: false, type: .list), AWSShapeMember(label: "GameSessionId", required: false, type: .string), @@ -651,15 +776,17 @@ extension Gamelift { AWSShapeMember(label: "GameProperties", required: false, type: .list), AWSShapeMember(label: "Port", required: false, type: .integer) ] - /// Collection of information on player sessions created in response to the game session placement request. These player sessions are created only once a new game session is successfully placed (placement status is Fulfilled). This information includes the player ID (as provided in the placement request) and the corresponding player session ID. Retrieve full player sessions by calling DescribePlayerSessions with the player session ID. + /// Collection of information on player sessions created in response to the game session placement request. These player sessions are created only once a new game session is successfully placed (placement status is FULFILLED). This information includes the player ID (as provided in the placement request) and the corresponding player session ID. Retrieve full player sessions by calling DescribePlayerSessions with the player session ID. public let placedPlayerSessions: [PlacedPlayerSession]? - /// Name of the region where the game session created by this placement request is running. This value is set once the new game session is placed (placement status is Fulfilled). + /// Name of the region where the game session created by this placement request is running. This value is set once the new game session is placed (placement status is FULFILLED). public let gameSessionRegion: String? + /// Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). + public let gameSessionData: String? /// Unique identifier for a game session placement. public let placementId: String? - /// Set of values, expressed in milliseconds, indicating the amount of latency that players are experiencing when connected to AWS regions. + /// Set of values, expressed in milliseconds, indicating the amount of latency that a player experiences when connected to AWS regions. public let playerLatencies: [PlayerLatency]? - /// Unique identifier for the game session. This value is set once the new game session is placed (placement status is Fulfilled). + /// Unique identifier for the game session. This value is set once the new game session is placed (placement status is FULFILLED). public let gameSessionId: String? /// Descriptive label that is associated with a game session. Session names do not need to be unique. public let gameSessionName: String? @@ -667,24 +794,25 @@ extension Gamelift { public let maximumPlayerSessionCount: Int32? /// Time stamp indicating when this request was placed in the queue. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). public let startTime: TimeStamp? - /// Current status of the game session placement request. PENDING – The placement request is currently in the queue waiting to be processed. FULFILLED – A new game session and player sessions (if requested) have been successfully created. Values for GameSessionArn and GameSessionRegion are available. CANCELLED – The placement request was canceled with a call to StopGameSessionPlacement. TIMED_OUT – A new game session was not successfully created before the time limit expired. You can resubmit the placement request as needed. + /// Current status of the game session placement request. PENDING -- The placement request is currently in the queue waiting to be processed. FULFILLED -- A new game session and player sessions (if requested) have been successfully created. Values for GameSessionArn and GameSessionRegion are available. CANCELLED -- The placement request was canceled with a call to StopGameSessionPlacement. TIMED_OUT -- A new game session was not successfully created before the time limit expired. You can resubmit the placement request as needed. public let status: GameSessionPlacementState? - /// Identifier for the game session created by this placement request. This value is set once the new game session is placed (placement status is Fulfilled). This identifier is unique across all regions. You can use this value as a GameSessionId value as needed. + /// Identifier for the game session created by this placement request. This value is set once the new game session is placed (placement status is FULFILLED). This identifier is unique across all regions. You can use this value as a GameSessionId value as needed. public let gameSessionArn: String? - /// IP address of the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is Fulfilled). + /// IP address of the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is FULFILLED). public let ipAddress: String? /// Time stamp indicating when this request was completed, canceled, or timed out. public let endTime: TimeStamp? - /// Descriptive label that is associated with queue. Queue names must be unique within each region. + /// Descriptive label that is associated with game session queue. Queue names must be unique within each region. public let gameSessionQueueName: String? - /// Set of developer-defined properties for a game session. These properties are passed to the server process hosting the game session. + /// Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). public let gameProperties: [GameProperty]? - /// Port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is Fulfilled). + /// Port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is FULFILLED). public let port: Int32? - public init(placedPlayerSessions: [PlacedPlayerSession]? = nil, gameSessionRegion: String? = nil, placementId: String? = nil, playerLatencies: [PlayerLatency]? = nil, gameSessionId: String? = nil, gameSessionName: String? = nil, maximumPlayerSessionCount: Int32? = nil, startTime: TimeStamp? = nil, status: GameSessionPlacementState? = nil, gameSessionArn: String? = nil, ipAddress: String? = nil, endTime: TimeStamp? = nil, gameSessionQueueName: String? = nil, gameProperties: [GameProperty]? = nil, port: Int32? = nil) { + public init(placedPlayerSessions: [PlacedPlayerSession]? = nil, gameSessionRegion: String? = nil, gameSessionData: String? = nil, placementId: String? = nil, playerLatencies: [PlayerLatency]? = nil, gameSessionId: String? = nil, gameSessionName: String? = nil, maximumPlayerSessionCount: Int32? = nil, startTime: TimeStamp? = nil, status: GameSessionPlacementState? = nil, gameSessionArn: String? = nil, ipAddress: String? = nil, endTime: TimeStamp? = nil, gameSessionQueueName: String? = nil, gameProperties: [GameProperty]? = nil, port: Int32? = nil) { self.placedPlayerSessions = placedPlayerSessions self.gameSessionRegion = gameSessionRegion + self.gameSessionData = gameSessionData self.placementId = placementId self.playerLatencies = playerLatencies self.gameSessionId = gameSessionId @@ -703,6 +831,7 @@ extension Gamelift { private enum CodingKeys: String, CodingKey { case placedPlayerSessions = "PlacedPlayerSessions" case gameSessionRegion = "GameSessionRegion" + case gameSessionData = "GameSessionData" case placementId = "PlacementId" case playerLatencies = "PlayerLatencies" case gameSessionId = "GameSessionId" @@ -720,14 +849,14 @@ extension Gamelift { } public struct ListBuildsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] - /// Build status to filter results by. To retrieve all builds, leave this parameter empty. Possible build statuses include the following: INITIALIZED – A new build has been defined, but no files have been uploaded. You cannot create fleets for builds that are in this status. When a build is successfully created, the build status is set to this value. READY – The game build has been successfully uploaded. You can now create new fleets for this build. FAILED – The game build upload failed. You cannot create new fleets for this build. + /// Build status to filter results by. To retrieve all builds, leave this parameter empty. Possible build statuses include the following: INITIALIZED -- A new build has been defined, but no files have been uploaded. You cannot create fleets for builds that are in this status. When a build is successfully created, the build status is set to this value. READY -- The game build has been successfully uploaded. You can now create new fleets for this build. FAILED -- The game build upload failed. You cannot create new fleets for this build. public let status: BuildStatus? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. public let nextToken: String? /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. public let limit: Int32? @@ -745,8 +874,66 @@ extension Gamelift { } } + public struct CreateMatchmakingRuleSetInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "RuleSetBody", required: true, type: .string) + ] + /// Unique identifier for a matchmaking rule set. This name is used to identify the rule set associated with a matchmaking configuration. + public let name: String + /// Collection of matchmaking rules, formatted as a JSON string. (Note that comments are not allowed in JSON, but most elements support a description field.) + public let ruleSetBody: String + + public init(name: String, ruleSetBody: String) { + self.name = name + self.ruleSetBody = ruleSetBody + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case ruleSetBody = "RuleSetBody" + } + } + + public struct CreateVpcPeeringAuthorizationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PeerVpcId", required: true, type: .string), + AWSShapeMember(label: "GameLiftAwsAccountId", required: true, type: .string) + ] + /// Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console. + public let peerVpcId: String + /// Unique identifier for the AWS account that you use to manage your Amazon GameLift fleet. You can find your Account ID in the AWS Management Console under account settings. + public let gameLiftAwsAccountId: String + + public init(peerVpcId: String, gameLiftAwsAccountId: String) { + self.peerVpcId = peerVpcId + self.gameLiftAwsAccountId = gameLiftAwsAccountId + } + + private enum CodingKeys: String, CodingKey { + case peerVpcId = "PeerVpcId" + case gameLiftAwsAccountId = "GameLiftAwsAccountId" + } + } + + public struct DescribeVpcPeeringConnectionsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcPeeringConnections", required: false, type: .list) + ] + /// Collection of VPC peering connection records that match the request. + public let vpcPeeringConnections: [VpcPeeringConnection]? + + public init(vpcPeeringConnections: [VpcPeeringConnection]? = nil) { + self.vpcPeeringConnections = vpcPeeringConnections + } + + private enum CodingKeys: String, CodingKey { + case vpcPeeringConnections = "VpcPeeringConnections" + } + } + public struct RuntimeConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessionActivationTimeoutSeconds", required: false, type: .integer), AWSShapeMember(label: "ServerProcesses", required: false, type: .list), AWSShapeMember(label: "MaxConcurrentGameSessionActivations", required: false, type: .integer) @@ -772,7 +959,7 @@ extension Gamelift { } public struct Instance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "IpAddress", required: false, type: .string), @@ -781,7 +968,7 @@ extension Gamelift { AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "FleetId", required: false, type: .string) ] - /// Current status of the instance. Possible statuses include the following: PENDING – The instance is in the process of being created and launching server processes as defined in the fleet's run-time configuration. ACTIVE – The instance has been successfully created and at least one server process has successfully launched and reported back to Amazon GameLift that it is ready to host a game session. The instance is now considered ready to host game sessions. TERMINATING – The instance is in the process of shutting down. This may happen to reduce capacity during a scaling down event or to recycle resources in the event of a problem. + /// Current status of the instance. Possible statuses include the following: PENDING -- The instance is in the process of being created and launching server processes as defined in the fleet's run-time configuration. ACTIVE -- The instance has been successfully created and at least one server process has successfully launched and reported back to Amazon GameLift that it is ready to host a game session. The instance is now considered ready to host game sessions. TERMINATING -- The instance is in the process of shutting down. This may happen to reduce capacity during a scaling down event or to recycle resources in the event of a problem. public let status: InstanceStatus? /// Unique identifier for an instance. public let instanceId: String? @@ -818,7 +1005,7 @@ extension Gamelift { } public struct EC2InstanceLimit: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentInstances", required: false, type: .integer), AWSShapeMember(label: "EC2InstanceType", required: false, type: .enum), AWSShapeMember(label: "InstanceLimit", required: false, type: .integer) @@ -847,8 +1034,12 @@ extension Gamelift { } + public struct CreateVpcPeeringConnectionOutput: AWSShape { + + } + public struct DescribeFleetAttributesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetAttributes", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -869,7 +1060,7 @@ extension Gamelift { } public struct GetInstanceAccessOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceAccess", required: false, type: .structure) ] /// Object that contains connection information for a fleet instance, including IP address and access credentials. @@ -885,7 +1076,7 @@ extension Gamelift { } public struct StartGameSessionPlacementOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessionPlacement", required: false, type: .structure) ] /// Object that describes the newly created game session placement. This object includes all the information provided in the request, as well as start/end time stamps and placement status. @@ -900,36 +1091,20 @@ extension Gamelift { } } - public struct CreateGameSessionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GameSession", required: false, type: .structure) - ] - /// Object that describes the newly created game session record. - public let gameSession: GameSession? - - public init(gameSession: GameSession? = nil) { - self.gameSession = gameSession - } - - private enum CodingKeys: String, CodingKey { - case gameSession = "GameSession" - } - } - public struct ListAliasesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoutingStrategyType", required: false, type: .enum), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// Type of routing to filter results on. Use this parameter to retrieve only aliases of a certain type. To retrieve all aliases, leave this parameter empty. Possible routing types include the following: SIMPLE – The alias resolves to one specific fleet. Use this type when routing to active fleets. TERMINAL – The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the RoutingStrategy message embedded. + /// Type of routing to filter results on. Use this parameter to retrieve only aliases of a certain type. To retrieve all aliases, leave this parameter empty. Possible routing types include the following: SIMPLE -- The alias resolves to one specific fleet. Use this type when routing to active fleets. TERMINAL -- The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the RoutingStrategy message embedded. public let routingStrategyType: RoutingStrategyType? /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. public let limit: Int32? /// Descriptive label that is associated with an alias. Alias names do not need to be unique. public let name: String? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. public let nextToken: String? public init(routingStrategyType: RoutingStrategyType? = nil, limit: Int32? = nil, name: String? = nil, nextToken: String? = nil) { @@ -947,24 +1122,54 @@ extension Gamelift { } } - public struct UpdateRuntimeConfigurationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RuntimeConfiguration", required: false, type: .structure) + public struct DeleteVpcPeeringConnectionOutput: AWSShape { + + } + + public struct CreateGameSessionOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GameSession", required: false, type: .structure) ] - /// The run-time configuration currently in force. If the update was successful, this object matches the one in the request. - public let runtimeConfiguration: RuntimeConfiguration? + /// Object that describes the newly created game session record. + public let gameSession: GameSession? - public init(runtimeConfiguration: RuntimeConfiguration? = nil) { - self.runtimeConfiguration = runtimeConfiguration + public init(gameSession: GameSession? = nil) { + self.gameSession = gameSession } private enum CodingKeys: String, CodingKey { - case runtimeConfiguration = "RuntimeConfiguration" + case gameSession = "GameSession" + } + } + + public struct MatchmakingRuleSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleSetName", required: false, type: .string), + AWSShapeMember(label: "RuleSetBody", required: true, type: .string), + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp) + ] + /// Unique identifier for a matchmaking rule set + public let ruleSetName: String? + /// Collection of matchmaking rules, formatted as a JSON string. (Note that comments14 are not allowed in JSON, but most elements support a description field.) + public let ruleSetBody: String + /// Time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). + public let creationTime: TimeStamp? + + public init(ruleSetName: String? = nil, ruleSetBody: String, creationTime: TimeStamp? = nil) { + self.ruleSetName = ruleSetName + self.ruleSetBody = ruleSetBody + self.creationTime = creationTime + } + + private enum CodingKeys: String, CodingKey { + case ruleSetName = "RuleSetName" + case ruleSetBody = "RuleSetBody" + case creationTime = "CreationTime" } } public struct RequestUploadCredentialsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BuildId", required: true, type: .string) ] /// Unique identifier for a build to get credentials for. @@ -979,16 +1184,32 @@ extension Gamelift { } } - public enum PlayerSessionStatus: String, CustomStringConvertible, Codable { - case reserved = "RESERVED" - case active = "ACTIVE" + public struct UpdateRuntimeConfigurationOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuntimeConfiguration", required: false, type: .structure) + ] + /// The run-time configuration currently in force. If the update was successful, this object matches the one in the request. + public let runtimeConfiguration: RuntimeConfiguration? + + public init(runtimeConfiguration: RuntimeConfiguration? = nil) { + self.runtimeConfiguration = runtimeConfiguration + } + + private enum CodingKeys: String, CodingKey { + case runtimeConfiguration = "RuntimeConfiguration" + } + } + + public enum PlayerSessionStatus: String, CustomStringConvertible, Codable { + case reserved = "RESERVED" + case active = "ACTIVE" case completed = "COMPLETED" case timedout = "TIMEDOUT" public var description: String { return self.rawValue } } public struct StopGameSessionPlacementInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlacementId", required: true, type: .string) ] /// Unique identifier for a game session placement to cancel. @@ -1004,78 +1225,114 @@ extension Gamelift { } public struct CreateFleetInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NewGameSessionProtectionPolicy", required: false, type: .enum), + AWSShapeMember(label: "EC2InboundPermissions", required: false, type: .list), + AWSShapeMember(label: "LogPaths", required: false, type: .list), + AWSShapeMember(label: "PeerVpcId", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "ResourceCreationLimitPolicy", required: false, type: .structure), AWSShapeMember(label: "EC2InstanceType", required: true, type: .enum), + AWSShapeMember(label: "ServerLaunchPath", required: false, type: .string), AWSShapeMember(label: "BuildId", required: true, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "ServerLaunchParameters", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "NewGameSessionProtectionPolicy", required: false, type: .enum), - AWSShapeMember(label: "EC2InboundPermissions", required: false, type: .list), - AWSShapeMember(label: "RuntimeConfiguration", required: false, type: .structure), - AWSShapeMember(label: "LogPaths", required: false, type: .list), - AWSShapeMember(label: "ServerLaunchPath", required: false, type: .string), - AWSShapeMember(label: "MetricGroups", required: false, type: .list) + AWSShapeMember(label: "PeerVpcAwsAccountId", required: false, type: .string), + AWSShapeMember(label: "MetricGroups", required: false, type: .list), + AWSShapeMember(label: "RuntimeConfiguration", required: false, type: .structure) ] + /// Game session protection policy to apply to all instances in this fleet. If this parameter is not set, instances in this fleet default to no protection. You can change a fleet's protection policy using UpdateFleetAttributes, but this change will only affect sessions created after the policy change. You can also set protection for individual instances using UpdateGameSession. NoProtection -- The game session can be terminated during a scale-down event. FullProtection -- If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event. + public let newGameSessionProtectionPolicy: ProtectionPolicy? + /// Range of IP addresses and port settings that permit inbound traffic to access server processes running on the fleet. If no inbound permissions are set, including both IP address range and port range, the server processes in the fleet cannot accept connections. You can specify one or more sets of permissions for a fleet. + public let eC2InboundPermissions: [IpPermission]? + /// This parameter is no longer used. Instead, to specify where Amazon GameLift should store log files once a server process shuts down, use the Amazon GameLift server API ProcessReady() and specify one or more directory paths in logParameters. See more information in the Server API Reference. + public let logPaths: [String]? + /// Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console. + public let peerVpcId: String? + /// Human-readable description of a fleet. + public let description: String? /// Policy that limits the number of game sessions an individual player can create over a span of time for this fleet. public let resourceCreationLimitPolicy: ResourceCreationLimitPolicy? /// Name of an EC2 instance type that is supported in Amazon GameLift. A fleet instance type determines the computing resources of each instance in the fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift supports the following EC2 instance types. See Amazon EC2 Instance Types for detailed descriptions. public let eC2InstanceType: EC2InstanceType + /// This parameter is no longer used. Instead, specify a server launch path using the RuntimeConfiguration parameter. (Requests that specify a server launch path and launch parameters instead of a run-time configuration will continue to work.) + public let serverLaunchPath: String? /// Unique identifier for a build to be deployed on the new fleet. The build must have been successfully uploaded to Amazon GameLift and be in a READY status. This fleet setting cannot be changed once the fleet is created. public let buildId: String - /// Human-readable description of a fleet. - public let description: String? /// This parameter is no longer used. Instead, specify server launch parameters in the RuntimeConfiguration parameter. (Requests that specify a server launch path and launch parameters instead of a run-time configuration will continue to work.) public let serverLaunchParameters: String? /// Descriptive label that is associated with a fleet. Fleet names do not need to be unique. public let name: String - /// Game session protection policy to apply to all instances in this fleet. If this parameter is not set, instances in this fleet default to no protection. You can change a fleet's protection policy using UpdateFleetAttributes, but this change will only affect sessions created after the policy change. You can also set protection for individual instances using UpdateGameSession. NoProtection – The game session can be terminated during a scale-down event. FullProtection – If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event. - public let newGameSessionProtectionPolicy: ProtectionPolicy? - /// Range of IP addresses and port settings that permit inbound traffic to access server processes running on the fleet. If no inbound permissions are set, including both IP address range and port range, the server processes in the fleet cannot accept connections. You can specify one or more sets of permissions for a fleet. - public let eC2InboundPermissions: [IpPermission]? - /// Instructions for launching server processes on each instance in the fleet. The run-time configuration for a fleet has a collection of server process configurations, one for each type of server process to run on an instance. A server process configuration specifies the location of the server executable, launch parameters, and the number of concurrent processes with that configuration to maintain on each instance. A CreateFleet request must include a run-time configuration with at least one server process configuration; otherwise the request fails with an invalid request exception. (This parameter replaces the parameters ServerLaunchPath and ServerLaunchParameters; requests that contain values for these parameters instead of a run-time configuration will continue to work.) - public let runtimeConfiguration: RuntimeConfiguration? - /// This parameter is no longer used. Instead, to specify where Amazon GameLift should store log files once a server process shuts down, use the Amazon GameLift server API ProcessReady() and specify one or more directory paths in logParameters. See more information in the Server API Reference. - public let logPaths: [String]? - /// This parameter is no longer used. Instead, specify a server launch path using the RuntimeConfiguration parameter. (Requests that specify a server launch path and launch parameters instead of a run-time configuration will continue to work.) - public let serverLaunchPath: String? + /// Unique identifier for the AWS account with the VPC that you want to peer your Amazon GameLift fleet with. You can find your Account ID in the AWS Management Console under account settings. + public let peerVpcAwsAccountId: String? /// Names of metric groups to add this fleet to. Use an existing metric group name to add this fleet to the group. Or use a new name to create a new metric group. A fleet can only be included in one metric group at a time. public let metricGroups: [String]? + /// Instructions for launching server processes on each instance in the fleet. The run-time configuration for a fleet has a collection of server process configurations, one for each type of server process to run on an instance. A server process configuration specifies the location of the server executable, launch parameters, and the number of concurrent processes with that configuration to maintain on each instance. A CreateFleet request must include a run-time configuration with at least one server process configuration; otherwise the request fails with an invalid request exception. (This parameter replaces the parameters ServerLaunchPath and ServerLaunchParameters; requests that contain values for these parameters instead of a run-time configuration will continue to work.) + public let runtimeConfiguration: RuntimeConfiguration? - public init(resourceCreationLimitPolicy: ResourceCreationLimitPolicy? = nil, eC2InstanceType: EC2InstanceType, buildId: String, description: String? = nil, serverLaunchParameters: String? = nil, name: String, newGameSessionProtectionPolicy: ProtectionPolicy? = nil, eC2InboundPermissions: [IpPermission]? = nil, runtimeConfiguration: RuntimeConfiguration? = nil, logPaths: [String]? = nil, serverLaunchPath: String? = nil, metricGroups: [String]? = nil) { + public init(newGameSessionProtectionPolicy: ProtectionPolicy? = nil, eC2InboundPermissions: [IpPermission]? = nil, logPaths: [String]? = nil, peerVpcId: String? = nil, description: String? = nil, resourceCreationLimitPolicy: ResourceCreationLimitPolicy? = nil, eC2InstanceType: EC2InstanceType, serverLaunchPath: String? = nil, buildId: String, serverLaunchParameters: String? = nil, name: String, peerVpcAwsAccountId: String? = nil, metricGroups: [String]? = nil, runtimeConfiguration: RuntimeConfiguration? = nil) { + self.newGameSessionProtectionPolicy = newGameSessionProtectionPolicy + self.eC2InboundPermissions = eC2InboundPermissions + self.logPaths = logPaths + self.peerVpcId = peerVpcId + self.description = description self.resourceCreationLimitPolicy = resourceCreationLimitPolicy self.eC2InstanceType = eC2InstanceType + self.serverLaunchPath = serverLaunchPath self.buildId = buildId - self.description = description self.serverLaunchParameters = serverLaunchParameters self.name = name - self.newGameSessionProtectionPolicy = newGameSessionProtectionPolicy - self.eC2InboundPermissions = eC2InboundPermissions - self.runtimeConfiguration = runtimeConfiguration - self.logPaths = logPaths - self.serverLaunchPath = serverLaunchPath + self.peerVpcAwsAccountId = peerVpcAwsAccountId self.metricGroups = metricGroups + self.runtimeConfiguration = runtimeConfiguration } private enum CodingKeys: String, CodingKey { + case newGameSessionProtectionPolicy = "NewGameSessionProtectionPolicy" + case eC2InboundPermissions = "EC2InboundPermissions" + case logPaths = "LogPaths" + case peerVpcId = "PeerVpcId" + case description = "Description" case resourceCreationLimitPolicy = "ResourceCreationLimitPolicy" case eC2InstanceType = "EC2InstanceType" + case serverLaunchPath = "ServerLaunchPath" case buildId = "BuildId" - case description = "Description" case serverLaunchParameters = "ServerLaunchParameters" case name = "Name" - case newGameSessionProtectionPolicy = "NewGameSessionProtectionPolicy" - case eC2InboundPermissions = "EC2InboundPermissions" - case runtimeConfiguration = "RuntimeConfiguration" - case logPaths = "LogPaths" - case serverLaunchPath = "ServerLaunchPath" + case peerVpcAwsAccountId = "PeerVpcAwsAccountId" case metricGroups = "MetricGroups" + case runtimeConfiguration = "RuntimeConfiguration" + } + } + + public struct StartMatchmakingInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TicketId", required: false, type: .string), + AWSShapeMember(label: "Players", required: true, type: .list), + AWSShapeMember(label: "ConfigurationName", required: true, type: .string) + ] + /// Unique identifier for a matchmaking ticket. Use this identifier to track the matchmaking ticket status and retrieve match results. + public let ticketId: String? + /// Information on each player to be matched. This information must include a player ID, and may contain player attributes and latency data to be used in the matchmaking process. After a successful match, Player objects contain the name of the team the player is assigned to. + public let players: [Player] + /// Name of the matchmaking configuration to use for this request. Matchmaking configurations must exist in the same region as this request. + public let configurationName: String + + public init(ticketId: String? = nil, players: [Player], configurationName: String) { + self.ticketId = ticketId + self.players = players + self.configurationName = configurationName + } + + private enum CodingKeys: String, CodingKey { + case ticketId = "TicketId" + case players = "Players" + case configurationName = "ConfigurationName" } } public struct UpdateBuildInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BuildId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .string) @@ -1100,24 +1357,8 @@ extension Gamelift { } } - public struct ResolveAliasInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AliasId", required: true, type: .string) - ] - /// Unique identifier for the alias you want to resolve. - public let aliasId: String - - public init(aliasId: String) { - self.aliasId = aliasId - } - - private enum CodingKeys: String, CodingKey { - case aliasId = "AliasId" - } - } - public struct PlayerLatency: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlayerId", required: false, type: .string), AWSShapeMember(label: "RegionIdentifier", required: false, type: .string), AWSShapeMember(label: "LatencyInMilliseconds", required: false, type: .float) @@ -1142,34 +1383,24 @@ extension Gamelift { } } - public struct CreatePlayerSessionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GameSessionId", required: true, type: .string), - AWSShapeMember(label: "PlayerIds", required: true, type: .list), - AWSShapeMember(label: "PlayerDataMap", required: false, type: .map) + public struct ResolveAliasInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AliasId", required: true, type: .string) ] - /// Unique identifier for the game session to add players to. - public let gameSessionId: String - /// List of unique identifiers for the players to be added. - public let playerIds: [String] - /// Map of string pairs, each specifying a player ID and a set of developer-defined information related to the player. Amazon GameLift does not use this data, so it can be formatted as needed for use in the game. Player data strings for player IDs not included in the PlayerIds parameter are ignored. - public let playerDataMap: [String: String]? + /// Unique identifier for the alias you want to resolve. + public let aliasId: String - public init(gameSessionId: String, playerIds: [String], playerDataMap: [String: String]? = nil) { - self.gameSessionId = gameSessionId - self.playerIds = playerIds - self.playerDataMap = playerDataMap + public init(aliasId: String) { + self.aliasId = aliasId } private enum CodingKeys: String, CodingKey { - case gameSessionId = "GameSessionId" - case playerIds = "PlayerIds" - case playerDataMap = "PlayerDataMap" + case aliasId = "AliasId" } } public struct DescribeFleetPortSettingsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InboundPermissions", required: false, type: .list) ] /// Object that contains port settings for the requested fleet ID. @@ -1184,50 +1415,8 @@ extension Gamelift { } } - public struct DeleteAliasInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AliasId", required: true, type: .string) - ] - /// Unique identifier for a fleet alias. Specify the alias you want to delete. - public let aliasId: String - - public init(aliasId: String) { - self.aliasId = aliasId - } - - private enum CodingKeys: String, CodingKey { - case aliasId = "AliasId" - } - } - - public struct DescribeGameSessionQueuesInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Names", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Limit", required: false, type: .integer) - ] - /// List of queue names to retrieve information for. To request settings for all queues, leave this parameter empty. - public let names: [String]? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. - public let nextToken: String? - /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. - public let limit: Int32? - - public init(names: [String]? = nil, nextToken: String? = nil, limit: Int32? = nil) { - self.names = names - self.nextToken = nextToken - self.limit = limit - } - - private enum CodingKeys: String, CodingKey { - case names = "Names" - case nextToken = "NextToken" - case limit = "Limit" - } - } - public struct Alias: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastUpdatedTime", required: false, type: .timestamp), AWSShapeMember(label: "RoutingStrategy", required: false, type: .structure), AWSShapeMember(label: "Name", required: false, type: .string), @@ -1272,8 +1461,92 @@ extension Gamelift { } } + public struct DeleteAliasInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AliasId", required: true, type: .string) + ] + /// Unique identifier for a fleet alias. Specify the alias you want to delete. + public let aliasId: String + + public init(aliasId: String) { + self.aliasId = aliasId + } + + private enum CodingKeys: String, CodingKey { + case aliasId = "AliasId" + } + } + + public struct CreatePlayerSessionsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GameSessionId", required: true, type: .string), + AWSShapeMember(label: "PlayerIds", required: true, type: .list), + AWSShapeMember(label: "PlayerDataMap", required: false, type: .map) + ] + /// Unique identifier for the game session to add players to. + public let gameSessionId: String + /// List of unique identifiers for the players to be added. + public let playerIds: [String] + /// Map of string pairs, each specifying a player ID and a set of developer-defined information related to the player. Amazon GameLift does not use this data, so it can be formatted as needed for use in the game. Player data strings for player IDs not included in the PlayerIds parameter are ignored. + public let playerDataMap: [String: String]? + + public init(gameSessionId: String, playerIds: [String], playerDataMap: [String: String]? = nil) { + self.gameSessionId = gameSessionId + self.playerIds = playerIds + self.playerDataMap = playerDataMap + } + + private enum CodingKeys: String, CodingKey { + case gameSessionId = "GameSessionId" + case playerIds = "PlayerIds" + case playerDataMap = "PlayerDataMap" + } + } + + public struct DeleteMatchmakingConfigurationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// Unique identifier for a matchmaking configuration + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct DescribeGameSessionQueuesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Names", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Limit", required: false, type: .integer) + ] + /// List of queue names to retrieve information for. To request settings for all queues, leave this parameter empty. + public let names: [String]? + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. + public let nextToken: String? + /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. + public let limit: Int32? + + public init(names: [String]? = nil, nextToken: String? = nil, limit: Int32? = nil) { + self.names = names + self.nextToken = nextToken + self.limit = limit + } + + private enum CodingKeys: String, CodingKey { + case names = "Names" + case nextToken = "NextToken" + case limit = "Limit" + } + } + public struct CreatePlayerSessionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessionId", required: true, type: .string), AWSShapeMember(label: "PlayerData", required: false, type: .string), AWSShapeMember(label: "PlayerId", required: true, type: .string) @@ -1299,7 +1572,7 @@ extension Gamelift { } public struct Event: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PreSignedLogUrl", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "ResourceId", required: false, type: .string), @@ -1307,13 +1580,13 @@ extension Gamelift { AWSShapeMember(label: "EventTime", required: false, type: .timestamp), AWSShapeMember(label: "EventId", required: false, type: .string) ] - /// Location of stored logs with additional detail related to the event, useful for debugging issues. The URL is valid for 15 minutes. Fleet creation logs can also be accessed through the Amazon GameLift console. + /// Location of stored logs with additional detail that is related to the event. This is useful for debugging issues. The URL is valid for 15 minutes. You can also access fleet creation logs through the Amazon GameLift console. public let preSignedLogUrl: String? /// Additional information related to the event. public let message: String? /// Unique identifier for an event resource, such as a fleet ID. public let resourceId: String? - /// Type of event being logged. The following events are currently in use: General events: GENERIC_EVENT – An unspecified event has occurred. Fleet creation events: FLEET_CREATED – A fleet record was successfully created with a status of NEW. Event messaging includes the fleet ID. FLEET_STATE_DOWNLOADING – Fleet status changed from NEW to DOWNLOADING. The compressed build has started downloading to a fleet instance for installation. FLEET_BINARY_DOWNLOAD_FAILED – The build failed to download to the fleet instance. FLEET_CREATION_EXTRACTING_BUILD – The game server build was successfully downloaded to an instance, and the build files are now being extracted from the uploaded build and saved to an instance. Failure at this stage prevents a fleet from moving to ACTIVE status. Logs for this stage display a list of the files that are extracted and saved on the instance. Access the logs by using the URL in PreSignedLogUrl). FLEET_CREATION_RUNNING_INSTALLER – The game server build files were successfully extracted, and the Amazon GameLift is now running the build's install script (if one is included). Failure in this stage prevents a fleet from moving to ACTIVE status. Logs for this stage list the installation steps and whether or not the install completed sucessfully. Access the logs by using the URL in PreSignedLogUrl). FLEET_CREATION_VALIDATING_RUNTIME_CONFIG – The build process was successful, and the Amazon GameLift is now verifying that the game server launch path(s), which are specified in the fleet's run-time configuration, exist. If any listed launch path exists, Amazon GameLift tries to launch a game server process and waits for the process to report ready. Failures in this stage prevent a fleet from moving to ACTIVE status. Logs for this stage list the launch paths in the run-time configuration and indicate whether each is found. Access the logs by using the URL in PreSignedLogUrl). Once the game server is launched, failures and crashes are logged; these logs can be downloaded from the Amazon GameLift console. FLEET_STATE_VALIDATING – Fleet status changed from DOWNLOADING to VALIDATING. FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND – Validation of the run-time validation failed because the executable specified in a launch path does not exist on the instance. FLEET_STATE_BUILDING – Fleet status changed from VALIDATING to BUILDING. FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE – Validation of the runtime validation failed because the executable specified in a launch path failed to run on the fleet instance. FLEET_STATE_ACTIVATING – Fleet status changed from BUILDING to ACTIVATING. FLEET_ACTIVATION_FAILED - The fleet failed to successfully complete one of the steps in the fleet activation process. This event code indicates that the game build was successfully downloaded to a fleet instance, built, and validated, but was not able to start a server process. A possible reason for failure is that the game server is not reporting "process ready" to the Amazon GameLift service. FLEET_STATE_ACTIVE – The fleet's status changed from ACTIVATING to ACTIVE. The fleet is now ready to host game sessions. Other fleet events: FLEET_SCALING_EVENT – A change was made to the fleet's capacity settings (desired instances, minimum/maximum scaling limits). Event messaging includes the new capacity settings. FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED – A change was made to the fleet's game session protection policy setting. Event messaging includes both the old and new policy setting. FLEET_DELETED – A request to delete a fleet was initiated. + /// Type of event being logged. The following events are currently in use: General events: GENERIC_EVENT -- An unspecified event has occurred. Fleet creation events: FLEET_CREATED -- A fleet record was successfully created with a status of NEW. Event messaging includes the fleet ID. FLEET_STATE_DOWNLOADING -- Fleet status changed from NEW to DOWNLOADING. The compressed build has started downloading to a fleet instance for installation. FLEET_BINARY_DOWNLOAD_FAILED -- The build failed to download to the fleet instance. FLEET_CREATION_EXTRACTING_BUILD – The game server build was successfully downloaded to an instance, and the build files are now being extracted from the uploaded build and saved to an instance. Failure at this stage prevents a fleet from moving to ACTIVE status. Logs for this stage display a list of the files that are extracted and saved on the instance. Access the logs by using the URL in PreSignedLogUrl. FLEET_CREATION_RUNNING_INSTALLER – The game server build files were successfully extracted, and the Amazon GameLift is now running the build's install script (if one is included). Failure in this stage prevents a fleet from moving to ACTIVE status. Logs for this stage list the installation steps and whether or not the install completed successfully. Access the logs by using the URL in PreSignedLogUrl. FLEET_CREATION_VALIDATING_RUNTIME_CONFIG -- The build process was successful, and the Amazon GameLift is now verifying that the game server launch paths, which are specified in the fleet's run-time configuration, exist. If any listed launch path exists, Amazon GameLift tries to launch a game server process and waits for the process to report ready. Failures in this stage prevent a fleet from moving to ACTIVE status. Logs for this stage list the launch paths in the run-time configuration and indicate whether each is found. Access the logs by using the URL in PreSignedLogUrl. FLEET_STATE_VALIDATING -- Fleet status changed from DOWNLOADING to VALIDATING. FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the run-time configuration failed because the executable specified in a launch path does not exist on the instance. FLEET_STATE_BUILDING -- Fleet status changed from VALIDATING to BUILDING. FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the run-time configuration failed because the executable specified in a launch path failed to run on the fleet instance. FLEET_STATE_ACTIVATING -- Fleet status changed from BUILDING to ACTIVATING. FLEET_ACTIVATION_FAILED - The fleet failed to successfully complete one of the steps in the fleet activation process. This event code indicates that the game build was successfully downloaded to a fleet instance, built, and validated, but was not able to start a server process. A possible reason for failure is that the game server is not reporting "process ready" to the Amazon GameLift service. FLEET_STATE_ACTIVE -- The fleet's status changed from ACTIVATING to ACTIVE. The fleet is now ready to host game sessions. VPC peering events: FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been established between the VPC for an Amazon GameLift fleet and a VPC in your AWS account. FLEET_VPC_PEERING_FAILED -- A requested VPC peering connection has failed. Event details and status information (see DescribeVpcPeeringConnections) provide additional detail. A common reason for peering failure is that the two VPCs have overlapping CIDR blocks of IPv4 addresses. To resolve this, change the CIDR block for the VPC in your AWS account. For more information on VPC peering failures, see http://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been successfully deleted. Other fleet events: FLEET_SCALING_EVENT -- A change was made to the fleet's capacity settings (desired instances, minimum/maximum scaling limits). Event messaging includes the new capacity settings. FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED -- A change was made to the fleet's game session protection policy setting. Event messaging includes both the old and new policy setting. FLEET_DELETED -- A request to delete a fleet was initiated. public let eventCode: EventCode? /// Time stamp indicating when this event occurred. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). public let eventTime: TimeStamp? @@ -1340,7 +1613,7 @@ extension Gamelift { } public struct UpdateGameSessionQueueOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessionQueue", required: false, type: .structure) ] /// Object that describes the newly updated game session queue. @@ -1361,8 +1634,79 @@ extension Gamelift { public var description: String { return self.rawValue } } + public struct CreateMatchmakingConfigurationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GameSessionData", required: false, type: .string), + AWSShapeMember(label: "NotificationTarget", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "CustomEventData", required: false, type: .string), + AWSShapeMember(label: "AcceptanceRequired", required: true, type: .boolean), + AWSShapeMember(label: "AdditionalPlayerCount", required: false, type: .integer), + AWSShapeMember(label: "GameSessionQueueArns", required: true, type: .list), + AWSShapeMember(label: "AcceptanceTimeoutSeconds", required: false, type: .integer), + AWSShapeMember(label: "RequestTimeoutSeconds", required: true, type: .integer), + AWSShapeMember(label: "GameProperties", required: false, type: .list), + AWSShapeMember(label: "RuleSetName", required: true, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. + public let gameSessionData: String? + /// SNS topic ARN that is set up to receive matchmaking notifications. + public let notificationTarget: String? + /// Unique identifier for a matchmaking configuration. This name is used to identify the configuration associated with a matchmaking request or ticket. + public let name: String + /// Information to attached to all events related to the matchmaking configuration. + public let customEventData: String? + /// Flag that determines whether or not a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. + public let acceptanceRequired: Bool + /// Number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. + public let additionalPlayerCount: Int32? + /// Amazon Resource Name (ARN) that is assigned to a game session queue and uniquely identifies it. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. These queues are used when placing game sessions for matches that are created with this matchmaking configuration. Queues can be located in any region. + public let gameSessionQueueArns: [String] + /// Length of time (in seconds) to wait for players to accept a proposed match. If any player rejects the match or fails to accept before the timeout, the ticket continues to look for an acceptable match. + public let acceptanceTimeoutSeconds: Int32? + /// Maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that time out can be resubmitted as needed. + public let requestTimeoutSeconds: Int32 + /// Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. + public let gameProperties: [GameProperty]? + /// Unique identifier for a matchmaking rule set to use with this configuration. A matchmaking configuration can only use rule sets that are defined in the same region. + public let ruleSetName: String + /// Meaningful description of the matchmaking configuration. + public let description: String? + + public init(gameSessionData: String? = nil, notificationTarget: String? = nil, name: String, customEventData: String? = nil, acceptanceRequired: Bool, additionalPlayerCount: Int32? = nil, gameSessionQueueArns: [String], acceptanceTimeoutSeconds: Int32? = nil, requestTimeoutSeconds: Int32, gameProperties: [GameProperty]? = nil, ruleSetName: String, description: String? = nil) { + self.gameSessionData = gameSessionData + self.notificationTarget = notificationTarget + self.name = name + self.customEventData = customEventData + self.acceptanceRequired = acceptanceRequired + self.additionalPlayerCount = additionalPlayerCount + self.gameSessionQueueArns = gameSessionQueueArns + self.acceptanceTimeoutSeconds = acceptanceTimeoutSeconds + self.requestTimeoutSeconds = requestTimeoutSeconds + self.gameProperties = gameProperties + self.ruleSetName = ruleSetName + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case gameSessionData = "GameSessionData" + case notificationTarget = "NotificationTarget" + case name = "Name" + case customEventData = "CustomEventData" + case acceptanceRequired = "AcceptanceRequired" + case additionalPlayerCount = "AdditionalPlayerCount" + case gameSessionQueueArns = "GameSessionQueueArns" + case acceptanceTimeoutSeconds = "AcceptanceTimeoutSeconds" + case requestTimeoutSeconds = "RequestTimeoutSeconds" + case gameProperties = "GameProperties" + case ruleSetName = "RuleSetName" + case description = "Description" + } + } + public struct GameSessionQueueDestination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DestinationArn", required: false, type: .string) ] /// Amazon Resource Name (ARN) assigned to fleet or fleet alias. ARNs, which include a fleet ID or alias ID and a region name, provide a unique identifier across all regions. @@ -1378,7 +1722,7 @@ extension Gamelift { } public struct DesiredPlayerSession: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlayerData", required: false, type: .string), AWSShapeMember(label: "PlayerId", required: false, type: .string) ] @@ -1399,14 +1743,14 @@ extension Gamelift { } public struct DescribeFleetUtilizationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetIds", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] /// Unique identifier for a fleet(s) to retrieve utilization data for. To request utilization data for all fleets, leave this parameter empty. public let fleetIds: [String]? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs. public let nextToken: String? /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. This parameter is ignored when the request specifies one or a list of fleet IDs. public let limit: Int32? @@ -1424,8 +1768,82 @@ extension Gamelift { } } + public struct DescribeMatchmakingRuleSetsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "RuleSets", required: true, type: .list) + ] + /// Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list. + public let nextToken: String? + /// Collection of requested matchmaking rule set objects. + public let ruleSets: [MatchmakingRuleSet] + + public init(nextToken: String? = nil, ruleSets: [MatchmakingRuleSet]) { + self.nextToken = nextToken + self.ruleSets = ruleSets + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case ruleSets = "RuleSets" + } + } + + public struct DescribeMatchmakingConfigurationsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Names", required: false, type: .list), + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "RuleSetName", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Unique identifier for a matchmaking configuration(s) to retrieve. To request all existing configurations, leave this parameter empty. + public let names: [String]? + /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. This parameter is limited to 10. + public let limit: Int32? + /// Unique identifier for a matchmaking rule set. Use this parameter to retrieve all matchmaking configurations that use this rule set. + public let ruleSetName: String? + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. + public let nextToken: String? + + public init(names: [String]? = nil, limit: Int32? = nil, ruleSetName: String? = nil, nextToken: String? = nil) { + self.names = names + self.limit = limit + self.ruleSetName = ruleSetName + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case names = "Names" + case limit = "Limit" + case ruleSetName = "RuleSetName" + case nextToken = "NextToken" + } + } + + public struct CreateVpcPeeringAuthorizationOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcPeeringAuthorization", required: false, type: .structure) + ] + /// Details on the requested VPC peering authorization, including expiration. + public let vpcPeeringAuthorization: VpcPeeringAuthorization? + + public init(vpcPeeringAuthorization: VpcPeeringAuthorization? = nil) { + self.vpcPeeringAuthorization = vpcPeeringAuthorization + } + + private enum CodingKeys: String, CodingKey { + case vpcPeeringAuthorization = "VpcPeeringAuthorization" + } + } + + public enum AcceptanceType: String, CustomStringConvertible, Codable { + case accept = "ACCEPT" + case reject = "REJECT" + public var description: String { return self.rawValue } + } + public struct CreateAliasInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoutingStrategy", required: true, type: .structure), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) @@ -1451,7 +1869,7 @@ extension Gamelift { } public struct ResourceCreationLimitPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NewGameSessionsPerCreator", required: false, type: .integer), AWSShapeMember(label: "PolicyPeriodInMinutes", required: false, type: .integer) ] @@ -1471,8 +1889,79 @@ extension Gamelift { } } + public struct UpdateMatchmakingConfigurationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GameSessionData", required: false, type: .string), + AWSShapeMember(label: "NotificationTarget", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "CustomEventData", required: false, type: .string), + AWSShapeMember(label: "AcceptanceRequired", required: false, type: .boolean), + AWSShapeMember(label: "AdditionalPlayerCount", required: false, type: .integer), + AWSShapeMember(label: "GameSessionQueueArns", required: false, type: .list), + AWSShapeMember(label: "AcceptanceTimeoutSeconds", required: false, type: .integer), + AWSShapeMember(label: "RequestTimeoutSeconds", required: false, type: .integer), + AWSShapeMember(label: "GameProperties", required: false, type: .list), + AWSShapeMember(label: "RuleSetName", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. + public let gameSessionData: String? + /// SNS topic ARN that is set up to receive matchmaking notifications. See Setting up Notifications for Matchmaking for more information. + public let notificationTarget: String? + /// Unique identifier for a matchmaking configuration to update. + public let name: String + /// Information to attached to all events related to the matchmaking configuration. + public let customEventData: String? + /// Flag that determines whether or not a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. + public let acceptanceRequired: Bool? + /// Number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. + public let additionalPlayerCount: Int32? + /// Amazon Resource Name (ARN) that is assigned to a game session queue and uniquely identifies it. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. These queues are used when placing game sessions for matches that are created with this matchmaking configuration. Queues can be located in any region. + public let gameSessionQueueArns: [String]? + /// Length of time (in seconds) to wait for players to accept a proposed match. If any player rejects the match or fails to accept before the timeout, the ticket continues to look for an acceptable match. + public let acceptanceTimeoutSeconds: Int32? + /// Maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that time out can be resubmitted as needed. + public let requestTimeoutSeconds: Int32? + /// Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. + public let gameProperties: [GameProperty]? + /// Unique identifier for a matchmaking rule set to use with this configuration. A matchmaking configuration can only use rule sets that are defined in the same region. + public let ruleSetName: String? + /// Descriptive label that is associated with matchmaking configuration. + public let description: String? + + public init(gameSessionData: String? = nil, notificationTarget: String? = nil, name: String, customEventData: String? = nil, acceptanceRequired: Bool? = nil, additionalPlayerCount: Int32? = nil, gameSessionQueueArns: [String]? = nil, acceptanceTimeoutSeconds: Int32? = nil, requestTimeoutSeconds: Int32? = nil, gameProperties: [GameProperty]? = nil, ruleSetName: String? = nil, description: String? = nil) { + self.gameSessionData = gameSessionData + self.notificationTarget = notificationTarget + self.name = name + self.customEventData = customEventData + self.acceptanceRequired = acceptanceRequired + self.additionalPlayerCount = additionalPlayerCount + self.gameSessionQueueArns = gameSessionQueueArns + self.acceptanceTimeoutSeconds = acceptanceTimeoutSeconds + self.requestTimeoutSeconds = requestTimeoutSeconds + self.gameProperties = gameProperties + self.ruleSetName = ruleSetName + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case gameSessionData = "GameSessionData" + case notificationTarget = "NotificationTarget" + case name = "Name" + case customEventData = "CustomEventData" + case acceptanceRequired = "AcceptanceRequired" + case additionalPlayerCount = "AdditionalPlayerCount" + case gameSessionQueueArns = "GameSessionQueueArns" + case acceptanceTimeoutSeconds = "AcceptanceTimeoutSeconds" + case requestTimeoutSeconds = "RequestTimeoutSeconds" + case gameProperties = "GameProperties" + case ruleSetName = "RuleSetName" + case description = "Description" + } + } + public struct PutScalingPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Threshold", required: true, type: .double), AWSShapeMember(label: "MetricName", required: true, type: .enum), AWSShapeMember(label: "EvaluationPeriods", required: true, type: .integer), @@ -1484,7 +1973,7 @@ extension Gamelift { ] /// Metric value used to trigger a scaling event. public let threshold: Double - /// Name of the Amazon GameLift-defined metric that is used to trigger an adjustment. ActivatingGameSessions – number of game sessions in the process of being created (game session status = ACTIVATING). ActiveGameSessions – number of game sessions currently running (game session status = ACTIVE). CurrentPlayerSessions – number of active or reserved player sessions (player session status = ACTIVE or RESERVED). AvailablePlayerSessions – number of player session slots currently available in active game sessions across the fleet, calculated by subtracting a game session's current player session count from its maximum player session count. This number includes game sessions that are not currently accepting players (game session PlayerSessionCreationPolicy = DENY_ALL). ActiveInstances – number of instances currently running a game session. IdleInstances – number of instances not currently running a game session. + /// Name of the Amazon GameLift-defined metric that is used to trigger an adjustment. ActivatingGameSessions -- number of game sessions in the process of being created (game session status = ACTIVATING). ActiveGameSessions -- number of game sessions currently running (game session status = ACTIVE). CurrentPlayerSessions -- number of active or reserved player sessions (player session status = ACTIVE or RESERVED). AvailablePlayerSessions -- number of player session slots currently available in active game sessions across the fleet, calculated by subtracting a game session's current player session count from its maximum player session count. This number includes game sessions that are not currently accepting players (game session PlayerSessionCreationPolicy = DENY_ALL). ActiveInstances -- number of instances currently running a game session. IdleInstances -- number of instances not currently running a game session. public let metricName: MetricName /// Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered. public let evaluationPeriods: Int32 @@ -1494,7 +1983,7 @@ extension Gamelift { public let scalingAdjustment: Int32 /// Comparison operator to use when measuring the metric against the threshold value. public let comparisonOperator: ComparisonOperatorType - /// Type of adjustment to make to a fleet's instance count (see FleetCapacity): ChangeInCapacity – add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down. ExactCapacity – set the instance count to the scaling adjustment value. PercentChangeInCapacity – increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down; for example, a value of "-10" scales the fleet down by 10%. + /// Type of adjustment to make to a fleet's instance count (see FleetCapacity): ChangeInCapacity -- add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down. ExactCapacity -- set the instance count to the scaling adjustment value. PercentChangeInCapacity -- increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down; for example, a value of "-10" scales the fleet down by 10%. public let scalingAdjustmentType: ScalingAdjustmentType /// Unique identifier for a fleet to apply this policy to. public let fleetId: String @@ -1523,7 +2012,7 @@ extension Gamelift { } public struct PlacedPlayerSession: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlayerSessionId", required: false, type: .string), AWSShapeMember(label: "PlayerId", required: false, type: .string) ] @@ -1544,7 +2033,7 @@ extension Gamelift { } public struct DeleteBuildInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BuildId", required: true, type: .string) ] /// Unique identifier for a build to delete. @@ -1559,14 +2048,8 @@ extension Gamelift { } } - public enum IpProtocol: String, CustomStringConvertible, Codable { - case tcp = "TCP" - case udp = "UDP" - public var description: String { return self.rawValue } - } - public struct UpdateFleetAttributesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetId", required: false, type: .string) ] /// Unique identifier for a fleet that was updated. @@ -1582,7 +2065,7 @@ extension Gamelift { } public struct DescribeGameSessionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StatusFilter", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "GameSessionId", required: false, type: .string), @@ -1600,7 +2083,7 @@ extension Gamelift { public let fleetId: String? /// Unique identifier for an alias associated with the fleet to retrieve all game sessions for. public let aliasId: String? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. public let nextToken: String? public init(statusFilter: String? = nil, limit: Int32? = nil, gameSessionId: String? = nil, fleetId: String? = nil, aliasId: String? = nil, nextToken: String? = nil) { @@ -1622,8 +2105,14 @@ extension Gamelift { } } + public enum IpProtocol: String, CustomStringConvertible, Codable { + case tcp = "TCP" + case udp = "UDP" + public var description: String { return self.rawValue } + } + public struct CreateFleetOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetAttributes", required: false, type: .structure) ] /// Properties for the newly created fleet. @@ -1639,7 +2128,7 @@ extension Gamelift { } public struct GameSessionQueue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Destinations", required: false, type: .list), AWSShapeMember(label: "TimeoutInSeconds", required: false, type: .integer), AWSShapeMember(label: "GameSessionQueueArn", required: false, type: .string), @@ -1652,7 +2141,7 @@ extension Gamelift { public let timeoutInSeconds: Int32? /// Amazon Resource Name (ARN) that is assigned to a game session queue and uniquely identifies it. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. public let gameSessionQueueArn: String? - /// Descriptive label that is associated with queue. Queue names must be unique within each region. + /// Descriptive label that is associated with game session queue. Queue names must be unique within each region. public let name: String? /// Collection of latency policies to apply when processing game sessions placement requests with player latency information. Multiple policies are evaluated in order of the maximum latency value, starting with the lowest latency values. With just one policy, it is enforced at the start of the game session placement for the duration period. With multiple policies, each policy is enforced consecutively for its duration period. For example, a queue might enforce a 60-second policy followed by a 120-second policy, and then no policy for the remainder of the placement. public let playerLatencyPolicies: [PlayerLatencyPolicy]? @@ -1674,8 +2163,39 @@ extension Gamelift { } } + public struct GameSessionConnectionInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GameSessionArn", required: false, type: .string), + AWSShapeMember(label: "MatchedPlayerSessions", required: false, type: .list), + AWSShapeMember(label: "Port", required: false, type: .integer), + AWSShapeMember(label: "IpAddress", required: false, type: .string) + ] + /// Amazon Resource Name (ARN) that is assigned to a game session and uniquely identifies it. + public let gameSessionArn: String? + /// Collection of player session IDs, one for each player ID that was included in the original matchmaking request. + public let matchedPlayerSessions: [MatchedPlayerSession]? + /// Port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. + public let port: Int32? + /// IP address of the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. + public let ipAddress: String? + + public init(gameSessionArn: String? = nil, matchedPlayerSessions: [MatchedPlayerSession]? = nil, port: Int32? = nil, ipAddress: String? = nil) { + self.gameSessionArn = gameSessionArn + self.matchedPlayerSessions = matchedPlayerSessions + self.port = port + self.ipAddress = ipAddress + } + + private enum CodingKeys: String, CodingKey { + case gameSessionArn = "GameSessionArn" + case matchedPlayerSessions = "MatchedPlayerSessions" + case port = "Port" + case ipAddress = "IpAddress" + } + } + public struct DescribeFleetCapacityOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "FleetCapacity", required: false, type: .list) ] @@ -1696,7 +2216,7 @@ extension Gamelift { } public struct DescribeGameSessionDetailsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StatusFilter", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "GameSessionId", required: false, type: .string), @@ -1714,7 +2234,7 @@ extension Gamelift { public let fleetId: String? /// Unique identifier for an alias associated with the fleet to retrieve all game sessions for. public let aliasId: String? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. public let nextToken: String? public init(statusFilter: String? = nil, limit: Int32? = nil, gameSessionId: String? = nil, fleetId: String? = nil, aliasId: String? = nil, nextToken: String? = nil) { @@ -1737,7 +2257,7 @@ extension Gamelift { } public struct UpdateFleetPortSettingsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InboundPermissionAuthorizations", required: false, type: .list), AWSShapeMember(label: "FleetId", required: true, type: .string), AWSShapeMember(label: "InboundPermissionRevocations", required: false, type: .list) @@ -1763,7 +2283,7 @@ extension Gamelift { } public struct InstanceCredentials: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserName", required: false, type: .string), AWSShapeMember(label: "Secret", required: false, type: .string) ] @@ -1784,14 +2304,14 @@ extension Gamelift { } public struct DescribeFleetCapacityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetIds", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] /// Unique identifier for a fleet(s) to retrieve capacity information for. To request capacity information for all fleets, leave this parameter empty. public let fleetIds: [String]? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs. public let nextToken: String? /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. This parameter is ignored when the request specifies one or a list of fleet IDs. public let limit: Int32? @@ -1810,7 +2330,7 @@ extension Gamelift { } public struct ServerProcess: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .string), AWSShapeMember(label: "LaunchPath", required: true, type: .string), AWSShapeMember(label: "ConcurrentExecutions", required: true, type: .integer) @@ -1836,7 +2356,7 @@ extension Gamelift { } public struct RequestUploadCredentialsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StorageLocation", required: false, type: .structure), AWSShapeMember(label: "UploadCredentials", required: false, type: .structure) ] @@ -1863,14 +2383,39 @@ extension Gamelift { public var description: String { return self.rawValue } } + public struct DeleteVpcPeeringAuthorizationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PeerVpcId", required: true, type: .string), + AWSShapeMember(label: "GameLiftAwsAccountId", required: true, type: .string) + ] + /// Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console. + public let peerVpcId: String + /// Unique identifier for the AWS account that you use to manage your Amazon GameLift fleet. You can find your Account ID in the AWS Management Console under account settings. + public let gameLiftAwsAccountId: String + + public init(peerVpcId: String, gameLiftAwsAccountId: String) { + self.peerVpcId = peerVpcId + self.gameLiftAwsAccountId = gameLiftAwsAccountId + } + + private enum CodingKeys: String, CodingKey { + case peerVpcId = "PeerVpcId" + case gameLiftAwsAccountId = "GameLiftAwsAccountId" + } + } + + public struct DeleteMatchmakingConfigurationOutput: AWSShape { + + } + public struct GameProperty: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] - /// TBD + /// Game property value. public let value: String - /// TBD + /// Game property identifier. public let key: String public init(value: String, key: String) { @@ -1892,7 +2437,7 @@ extension Gamelift { } public struct UpdateBuildOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Build", required: false, type: .structure) ] /// Object that contains the updated build record. @@ -1907,15 +2452,47 @@ extension Gamelift { } } + public struct DescribeEC2InstanceLimitsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EC2InstanceType", required: false, type: .enum) + ] + /// Name of an EC2 instance type that is supported in Amazon GameLift. A fleet instance type determines the computing resources of each instance in the fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift supports the following EC2 instance types. See Amazon EC2 Instance Types for detailed descriptions. Leave this parameter blank to retrieve limits for all types. + public let eC2InstanceType: EC2InstanceType? + + public init(eC2InstanceType: EC2InstanceType? = nil) { + self.eC2InstanceType = eC2InstanceType + } + + private enum CodingKeys: String, CodingKey { + case eC2InstanceType = "EC2InstanceType" + } + } + + public struct StartMatchmakingOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MatchmakingTicket", required: false, type: .structure) + ] + /// Ticket representing the matchmaking request. This object include the information included in the request, ticket status, and match results as generated during the matchmaking process. + public let matchmakingTicket: MatchmakingTicket? + + public init(matchmakingTicket: MatchmakingTicket? = nil) { + self.matchmakingTicket = matchmakingTicket + } + + private enum CodingKeys: String, CodingKey { + case matchmakingTicket = "MatchmakingTicket" + } + } + public struct DescribeFleetAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetIds", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] /// Unique identifier for a fleet(s) to retrieve attributes for. To request attributes for all fleets, leave this parameter empty. public let fleetIds: [String]? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs. public let nextToken: String? /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. This parameter is ignored when the request specifies one or a list of fleet IDs. public let limit: Int32? @@ -1933,24 +2510,40 @@ extension Gamelift { } } - public struct DescribeEC2InstanceLimitsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EC2InstanceType", required: false, type: .enum) + public struct ValidateMatchmakingRuleSetOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Valid", required: false, type: .boolean) ] - /// Name of an EC2 instance type that is supported in Amazon GameLift. A fleet instance type determines the computing resources of each instance in the fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift supports the following EC2 instance types. See Amazon EC2 Instance Types for detailed descriptions. Leave this parameter blank to retrieve limits for all types. - public let eC2InstanceType: EC2InstanceType? + /// Response indicating whether or not the rule set is valid. + public let valid: Bool? - public init(eC2InstanceType: EC2InstanceType? = nil) { - self.eC2InstanceType = eC2InstanceType + public init(valid: Bool? = nil) { + self.valid = valid } private enum CodingKeys: String, CodingKey { - case eC2InstanceType = "EC2InstanceType" + case valid = "Valid" + } + } + + public struct CreateMatchmakingRuleSetOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleSet", required: true, type: .structure) + ] + /// Object that describes the newly created matchmaking rule set. + public let ruleSet: MatchmakingRuleSet + + public init(ruleSet: MatchmakingRuleSet) { + self.ruleSet = ruleSet + } + + private enum CodingKeys: String, CodingKey { + case ruleSet = "RuleSet" } } public struct CreatePlayerSessionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlayerSessions", required: false, type: .list) ] /// Collection of player session objects created for the added players. @@ -1965,8 +2558,12 @@ extension Gamelift { } } + public struct StopMatchmakingOutput: AWSShape { + + } + public struct GetGameSessionLogUrlInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessionId", required: true, type: .string) ] /// Unique identifier for the game session to get logs for. @@ -1982,7 +2579,7 @@ extension Gamelift { } public struct DescribeEC2InstanceLimitsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EC2InstanceLimits", required: false, type: .list) ] /// Object that contains the maximum number of instances for the specified instance type. @@ -1997,8 +2594,24 @@ extension Gamelift { } } + public struct DescribeVpcPeeringAuthorizationsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcPeeringAuthorizations", required: false, type: .list) + ] + /// Collection of objects that describe all valid VPC peering operations for the current AWS account. + public let vpcPeeringAuthorizations: [VpcPeeringAuthorization]? + + public init(vpcPeeringAuthorizations: [VpcPeeringAuthorization]? = nil) { + self.vpcPeeringAuthorizations = vpcPeeringAuthorizations + } + + private enum CodingKeys: String, CodingKey { + case vpcPeeringAuthorizations = "VpcPeeringAuthorizations" + } + } + public struct EC2InstanceCounts: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TERMINATING", required: false, type: .integer), AWSShapeMember(label: "MINIMUM", required: false, type: .integer), AWSShapeMember(label: "PENDING", required: false, type: .integer), @@ -2043,8 +2656,24 @@ extension Gamelift { } } + public struct ValidateMatchmakingRuleSetInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleSetBody", required: true, type: .string) + ] + /// Collection of matchmaking rules to validate, formatted as a JSON string. + public let ruleSetBody: String + + public init(ruleSetBody: String) { + self.ruleSetBody = ruleSetBody + } + + private enum CodingKeys: String, CodingKey { + case ruleSetBody = "RuleSetBody" + } + } + public struct DescribePlayerSessionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "PlayerSessions", required: false, type: .list) ] @@ -2065,7 +2694,7 @@ extension Gamelift { } public struct FleetCapacity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceType", required: false, type: .enum), AWSShapeMember(label: "FleetId", required: false, type: .string), AWSShapeMember(label: "InstanceCounts", required: false, type: .structure) @@ -2090,12 +2719,38 @@ extension Gamelift { } } + public struct DescribeMatchmakingRuleSetsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Names", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Limit", required: false, type: .integer) + ] + /// Unique identifier for a matchmaking rule set. This name is used to identify the rule set associated with a matchmaking configuration. + public let names: [String]? + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. + public let nextToken: String? + /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. + public let limit: Int32? + + public init(names: [String]? = nil, nextToken: String? = nil, limit: Int32? = nil) { + self.names = names + self.nextToken = nextToken + self.limit = limit + } + + private enum CodingKeys: String, CodingKey { + case names = "Names" + case nextToken = "NextToken" + case limit = "Limit" + } + } + public struct GameSessionDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProtectionPolicy", required: false, type: .enum), AWSShapeMember(label: "GameSession", required: false, type: .structure) ] - /// Current status of protection for the game session. NoProtection – The game session can be terminated during a scale-down event. FullProtection – If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event. + /// Current status of protection for the game session. NoProtection -- The game session can be terminated during a scale-down event. FullProtection -- If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event. public let protectionPolicy: ProtectionPolicy? /// Object that describes a game session. public let gameSession: GameSession? @@ -2112,7 +2767,7 @@ extension Gamelift { } public struct CreateBuildInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperatingSystem", required: false, type: .enum), AWSShapeMember(label: "StorageLocation", required: false, type: .structure), AWSShapeMember(label: "Name", required: false, type: .string), @@ -2142,8 +2797,24 @@ extension Gamelift { } } + public struct DescribeMatchmakingOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TicketList", required: false, type: .list) + ] + /// Collection of existing matchmaking ticket objects matching the request. + public let ticketList: [MatchmakingTicket]? + + public init(ticketList: [MatchmakingTicket]? = nil) { + self.ticketList = ticketList + } + + private enum CodingKeys: String, CodingKey { + case ticketList = "TicketList" + } + } + public struct DescribeInstancesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Instances", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2163,8 +2834,12 @@ extension Gamelift { } } + public struct DescribeVpcPeeringAuthorizationsInput: AWSShape { + + } + public struct DescribeInstancesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "FleetId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -2174,7 +2849,7 @@ extension Gamelift { public let limit: Int32? /// Unique identifier for a fleet to retrieve instance information for. public let fleetId: String - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. public let nextToken: String? /// Unique identifier for an instance to retrieve. Specify an instance ID or leave blank to retrieve all instances in the fleet. public let instanceId: String? @@ -2195,16 +2870,16 @@ extension Gamelift { } public struct AwsCredentials: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccessKeyId", required: false, type: .string), AWSShapeMember(label: "SecretAccessKey", required: false, type: .string), AWSShapeMember(label: "SessionToken", required: false, type: .string) ] - /// Access key for an AWS account. + /// Temporary key allowing access to the Amazon GameLift S3 account. public let accessKeyId: String? - /// Secret key for an AWS account. + /// Temporary secret key allowing access to the Amazon GameLift S3 account. public let secretAccessKey: String? - /// Token specific to a build ID. + /// Token used to associate a specific build ID with the files uploaded using these credentials. public let sessionToken: String? public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, sessionToken: String? = nil) { @@ -2221,14 +2896,14 @@ extension Gamelift { } public struct ListFleetsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BuildId", required: false, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] /// Unique identifier for a build to return fleets for. Use this parameter to return only fleets using the specified build. To retrieve all fleets, leave this parameter empty. public let buildId: String? - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. public let nextToken: String? /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. public let limit: Int32? @@ -2247,7 +2922,7 @@ extension Gamelift { } public struct DeleteScalingPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -2276,8 +2951,29 @@ extension Gamelift { public var description: String { return self.rawValue } } + public struct DescribeMatchmakingConfigurationsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Configurations", required: false, type: .list) + ] + /// Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list. + public let nextToken: String? + /// Collection of requested matchmaking configuration objects. + public let configurations: [MatchmakingConfiguration]? + + public init(nextToken: String? = nil, configurations: [MatchmakingConfiguration]? = nil) { + self.nextToken = nextToken + self.configurations = configurations + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case configurations = "Configurations" + } + } + public struct PlayerSession: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "PlayerSessionId", required: false, type: .string), AWSShapeMember(label: "IpAddress", required: false, type: .string), @@ -2289,7 +2985,7 @@ extension Gamelift { AWSShapeMember(label: "FleetId", required: false, type: .string), AWSShapeMember(label: "Port", required: false, type: .integer) ] - /// Current status of the player session. Possible player session statuses include the following: RESERVED – The player session request has been received, but the player has not yet connected to the server process and/or been validated. ACTIVE – The player has been validated by the server process and is currently connected. COMPLETED – The player connection has been dropped. TIMEDOUT – A player session request was received, but the player did not connect and/or was not validated within the time-out limit (60 seconds). + /// Current status of the player session. Possible player session statuses include the following: RESERVED -- The player session request has been received, but the player has not yet connected to the server process and/or been validated. ACTIVE -- The player has been validated by the server process and is currently connected. COMPLETED -- The player connection has been dropped. TIMEDOUT -- A player session request was received, but the player did not connect and/or was not validated within the timeout limit (60 seconds). public let status: PlayerSessionStatus? /// Unique identifier for a player session. public let playerSessionId: String? @@ -2338,7 +3034,7 @@ extension Gamelift { } public struct FleetUtilization: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaximumPlayerSessionCount", required: false, type: .integer), AWSShapeMember(label: "ActiveServerProcessCount", required: false, type: .integer), AWSShapeMember(label: "ActiveGameSessionCount", required: false, type: .integer), @@ -2374,7 +3070,7 @@ extension Gamelift { } public struct DescribeGameSessionQueuesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessionQueues", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2395,7 +3091,7 @@ extension Gamelift { } public struct DescribeGameSessionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessions", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2415,6 +3111,37 @@ extension Gamelift { } } + public struct Player: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LatencyInMs", required: false, type: .map), + AWSShapeMember(label: "PlayerId", required: false, type: .string), + AWSShapeMember(label: "Team", required: false, type: .string), + AWSShapeMember(label: "PlayerAttributes", required: false, type: .map) + ] + /// Set of values, expressed in milliseconds, indicating the amount of latency that a player experiences when connected to AWS regions. If this property is present, FlexMatch considers placing the match only in regions for which latency is reported. If a matchmaker has a rule that evaluates player latency, players must report latency in order to be matched. If no latency is reported in this scenario, FlexMatch assumes that no regions are available to the player and the ticket is not matchable. + public let latencyInMs: [String: Int32]? + /// Unique identifier for a player + public let playerId: String? + /// Name of the team that the player is assigned to in a match. Team names are defined in a matchmaking rule set. + public let team: String? + /// Collection of name:value pairs containing player information for use in matchmaking. Player attribute names need to match playerAttributes names in the rule set being used. Example: "PlayerAttributes": {"skill": {"N": "23"}, "gameMode": {"S": "deathmatch"}}. + public let playerAttributes: [String: AttributeValue]? + + public init(latencyInMs: [String: Int32]? = nil, playerId: String? = nil, team: String? = nil, playerAttributes: [String: AttributeValue]? = nil) { + self.latencyInMs = latencyInMs + self.playerId = playerId + self.team = team + self.playerAttributes = playerAttributes + } + + private enum CodingKeys: String, CodingKey { + case latencyInMs = "LatencyInMs" + case playerId = "PlayerId" + case team = "Team" + case playerAttributes = "PlayerAttributes" + } + } + public enum OperatingSystem: String, CustomStringConvertible, Codable { case windows2012 = "WINDOWS_2012" case amazonLinux = "AMAZON_LINUX" @@ -2422,7 +3149,7 @@ extension Gamelift { } public struct DescribeFleetEventsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "EndTime", required: false, type: .timestamp), AWSShapeMember(label: "Limit", required: false, type: .integer), @@ -2437,7 +3164,7 @@ extension Gamelift { public let limit: Int32? /// Unique identifier for a fleet to get event logs for. public let fleetId: String - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. public let nextToken: String? public init(startTime: TimeStamp? = nil, endTime: TimeStamp? = nil, limit: Int32? = nil, fleetId: String, nextToken: String? = nil) { @@ -2470,6 +3197,26 @@ extension Gamelift { public var description: String { return self.rawValue } } + public struct DeleteVpcPeeringAuthorizationOutput: AWSShape { + + } + + public struct CreateMatchmakingConfigurationOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Configuration", required: false, type: .structure) + ] + /// Object that describes the newly created matchmaking configuration. + public let configuration: MatchmakingConfiguration? + + public init(configuration: MatchmakingConfiguration? = nil) { + self.configuration = configuration + } + + private enum CodingKeys: String, CodingKey { + case configuration = "Configuration" + } + } + public enum GameSessionPlacementState: String, CustomStringConvertible, Codable { case pending = "PENDING" case fulfilled = "FULFILLED" @@ -2479,7 +3226,7 @@ extension Gamelift { } public struct S3Location: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", required: false, type: .string), AWSShapeMember(label: "RoleArn", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) @@ -2505,58 +3252,63 @@ extension Gamelift { } public struct CreateGameSessionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetId", required: false, type: .string), + AWSShapeMember(label: "GameSessionData", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "IdempotencyToken", required: false, type: .string), AWSShapeMember(label: "CreatorId", required: false, type: .string), AWSShapeMember(label: "GameProperties", required: false, type: .list), - AWSShapeMember(label: "AliasId", required: false, type: .string), AWSShapeMember(label: "GameSessionId", required: false, type: .string), + AWSShapeMember(label: "AliasId", required: false, type: .string), AWSShapeMember(label: "MaximumPlayerSessionCount", required: true, type: .integer) ] /// Unique identifier for a fleet to create a game session in. Each request must reference either a fleet ID or alias ID, but not both. public let fleetId: String? + /// Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). + public let gameSessionData: String? /// Descriptive label that is associated with a game session. Session names do not need to be unique. public let name: String? - /// Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID. (A game session ID has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.) + /// Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID. (A game session ARN has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.) Idempotency tokens remain in use for 30 days after a game session has ended; game session objects are retained for this time period and then deleted. public let idempotencyToken: String? /// Unique identifier for a player or entity creating the game session. This ID is used to enforce a resource protection policy (if one exists) that limits the number of concurrent active game sessions one player can have. public let creatorId: String? - /// Set of developer-defined properties for a game session. These properties are passed to the server process hosting the game session. + /// Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). public let gameProperties: [GameProperty]? + /// This parameter is no longer preferred. Please use IdempotencyToken instead. Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID. (A game session ARN has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.) + public let gameSessionId: String? /// Unique identifier for an alias associated with the fleet to create a game session in. Each request must reference either a fleet ID or alias ID, but not both. public let aliasId: String? - /// This parameter is no longer preferred. Please use IdempotencyToken instead. Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID. (A game session ID has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.) - public let gameSessionId: String? /// Maximum number of players that can be connected simultaneously to the game session. public let maximumPlayerSessionCount: Int32 - public init(fleetId: String? = nil, name: String? = nil, idempotencyToken: String? = nil, creatorId: String? = nil, gameProperties: [GameProperty]? = nil, aliasId: String? = nil, gameSessionId: String? = nil, maximumPlayerSessionCount: Int32) { + public init(fleetId: String? = nil, gameSessionData: String? = nil, name: String? = nil, idempotencyToken: String? = nil, creatorId: String? = nil, gameProperties: [GameProperty]? = nil, gameSessionId: String? = nil, aliasId: String? = nil, maximumPlayerSessionCount: Int32) { self.fleetId = fleetId + self.gameSessionData = gameSessionData self.name = name self.idempotencyToken = idempotencyToken self.creatorId = creatorId self.gameProperties = gameProperties - self.aliasId = aliasId self.gameSessionId = gameSessionId + self.aliasId = aliasId self.maximumPlayerSessionCount = maximumPlayerSessionCount } private enum CodingKeys: String, CodingKey { case fleetId = "FleetId" + case gameSessionData = "GameSessionData" case name = "Name" case idempotencyToken = "IdempotencyToken" case creatorId = "CreatorId" case gameProperties = "GameProperties" - case aliasId = "AliasId" case gameSessionId = "GameSessionId" + case aliasId = "AliasId" case maximumPlayerSessionCount = "MaximumPlayerSessionCount" } } public struct UpdateGameSessionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlayerSessionCreationPolicy", required: false, type: .enum), AWSShapeMember(label: "ProtectionPolicy", required: false, type: .enum), AWSShapeMember(label: "GameSessionId", required: true, type: .string), @@ -2565,7 +3317,7 @@ extension Gamelift { ] /// Policy determining whether or not the game session accepts new players. public let playerSessionCreationPolicy: PlayerSessionCreationPolicy? - /// Game session protection policy to apply to this game session only. NoProtection – The game session can be terminated during a scale-down event. FullProtection – If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event. + /// Game session protection policy to apply to this game session only. NoProtection -- The game session can be terminated during a scale-down event. FullProtection -- If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event. public let protectionPolicy: ProtectionPolicy? /// Unique identifier for the game session to update. public let gameSessionId: String @@ -2592,7 +3344,7 @@ extension Gamelift { } public struct CreateBuildOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StorageLocation", required: false, type: .structure), AWSShapeMember(label: "UploadCredentials", required: false, type: .structure), AWSShapeMember(label: "Build", required: false, type: .structure) @@ -2617,8 +3369,34 @@ extension Gamelift { } } + public struct AcceptMatchInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TicketId", required: true, type: .string), + AWSShapeMember(label: "AcceptanceType", required: true, type: .enum), + AWSShapeMember(label: "PlayerIds", required: true, type: .list) + ] + /// Unique identifier for a matchmaking ticket. The ticket must be in status REQUIRES_ACCEPTANCE; otherwise this request will fail. + public let ticketId: String + /// Player response to the proposed match. + public let acceptanceType: AcceptanceType + /// Unique identifier for a player delivering the response. This parameter can include one or multiple player IDs. + public let playerIds: [String] + + public init(ticketId: String, acceptanceType: AcceptanceType, playerIds: [String]) { + self.ticketId = ticketId + self.acceptanceType = acceptanceType + self.playerIds = playerIds + } + + private enum CodingKeys: String, CodingKey { + case ticketId = "TicketId" + case acceptanceType = "AcceptanceType" + case playerIds = "PlayerIds" + } + } + public struct FleetAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TerminationTime", required: false, type: .timestamp), AWSShapeMember(label: "FleetArn", required: false, type: .string), AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), @@ -2641,7 +3419,7 @@ extension Gamelift { public let fleetArn: String? /// Time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). public let creationTime: TimeStamp? - /// Type of game session protection to set for all new instances started in the fleet. NoProtection – The game session can be terminated during a scale-down event. FullProtection – If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event. + /// Type of game session protection to set for all new instances started in the fleet. NoProtection -- The game session can be terminated during a scale-down event. FullProtection -- If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event. public let newGameSessionProtectionPolicy: ProtectionPolicy? /// Location of default log files. When a server process is shut down, Amazon GameLift captures and stores any log files in this location. These logs are in addition to game session logs; see more on game session logs in the Amazon GameLift Developer Guide. If no default log path for a fleet is specified, Amazon GameLift automatically uploads logs that are stored on each instance at C:\game\logs (for Windows) or /local/game/logs (for Linux). Use the Amazon GameLift console to access stored logs. public let logPaths: [String]? @@ -2653,7 +3431,7 @@ extension Gamelift { public let resourceCreationLimitPolicy: ResourceCreationLimitPolicy? /// Names of metric groups that this fleet is included in. In Amazon CloudWatch, you can view metrics for an individual fleet or aggregated metrics for fleets that are in a fleet metric group. A fleet can be included in only one metric group at a time. public let metricGroups: [String]? - /// Current status of the fleet. Possible fleet statuses include the following: NEW – A new fleet has been defined and desired instances is set to 1. DOWNLOADING/VALIDATING/BUILDING/ACTIVATING – Amazon GameLift is setting up the new fleet, creating new instances with the game build and starting server processes. ACTIVE – Hosts can now accept game sessions. ERROR – An error occurred when downloading, validating, building, or activating the fleet. DELETING – Hosts are responding to a delete fleet request. TERMINATED – The fleet no longer exists. + /// Current status of the fleet. Possible fleet statuses include the following: NEW -- A new fleet has been defined and desired instances is set to 1. DOWNLOADING/VALIDATING/BUILDING/ACTIVATING -- Amazon GameLift is setting up the new fleet, creating new instances with the game build and starting server processes. ACTIVE -- Hosts can now accept game sessions. ERROR -- An error occurred when downloading, validating, building, or activating the fleet. DELETING -- Hosts are responding to a delete fleet request. TERMINATED -- The fleet no longer exists. public let status: FleetStatus? /// Unique identifier for a build. public let buildId: String? @@ -2703,8 +3481,84 @@ extension Gamelift { } } + public struct MatchmakingConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GameSessionData", required: false, type: .string), + AWSShapeMember(label: "AdditionalPlayerCount", required: false, type: .integer), + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "AcceptanceTimeoutSeconds", required: false, type: .integer), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "CustomEventData", required: false, type: .string), + AWSShapeMember(label: "NotificationTarget", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "AcceptanceRequired", required: false, type: .boolean), + AWSShapeMember(label: "GameSessionQueueArns", required: false, type: .list), + AWSShapeMember(label: "RequestTimeoutSeconds", required: false, type: .integer), + AWSShapeMember(label: "GameProperties", required: false, type: .list), + AWSShapeMember(label: "RuleSetName", required: false, type: .string) + ] + /// Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. + public let gameSessionData: String? + /// Number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. + public let additionalPlayerCount: Int32? + /// Time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). + public let creationTime: TimeStamp? + /// Length of time (in seconds) to wait for players to accept a proposed match. If any player rejects the match or fails to accept before the timeout, the ticket continues to look for an acceptable match. + public let acceptanceTimeoutSeconds: Int32? + /// Descriptive label that is associated with matchmaking configuration. + public let description: String? + /// Information to attached to all events related to the matchmaking configuration. + public let customEventData: String? + /// SNS topic ARN that is set up to receive matchmaking notifications. + public let notificationTarget: String? + /// Unique identifier for a matchmaking configuration. This name is used to identify the configuration associated with a matchmaking request or ticket. + public let name: String? + /// Flag that determines whether or not a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. + public let acceptanceRequired: Bool? + /// Amazon Resource Name (ARN) that is assigned to a game session queue and uniquely identifies it. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. These queues are used when placing game sessions for matches that are created with this matchmaking configuration. Queues can be located in any region. + public let gameSessionQueueArns: [String]? + /// Maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that time out can be resubmitted as needed. + public let requestTimeoutSeconds: Int32? + /// Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. + public let gameProperties: [GameProperty]? + /// Unique identifier for a matchmaking rule set to use with this configuration. A matchmaking configuration can only use rule sets that are defined in the same region. + public let ruleSetName: String? + + public init(gameSessionData: String? = nil, additionalPlayerCount: Int32? = nil, creationTime: TimeStamp? = nil, acceptanceTimeoutSeconds: Int32? = nil, description: String? = nil, customEventData: String? = nil, notificationTarget: String? = nil, name: String? = nil, acceptanceRequired: Bool? = nil, gameSessionQueueArns: [String]? = nil, requestTimeoutSeconds: Int32? = nil, gameProperties: [GameProperty]? = nil, ruleSetName: String? = nil) { + self.gameSessionData = gameSessionData + self.additionalPlayerCount = additionalPlayerCount + self.creationTime = creationTime + self.acceptanceTimeoutSeconds = acceptanceTimeoutSeconds + self.description = description + self.customEventData = customEventData + self.notificationTarget = notificationTarget + self.name = name + self.acceptanceRequired = acceptanceRequired + self.gameSessionQueueArns = gameSessionQueueArns + self.requestTimeoutSeconds = requestTimeoutSeconds + self.gameProperties = gameProperties + self.ruleSetName = ruleSetName + } + + private enum CodingKeys: String, CodingKey { + case gameSessionData = "GameSessionData" + case additionalPlayerCount = "AdditionalPlayerCount" + case creationTime = "CreationTime" + case acceptanceTimeoutSeconds = "AcceptanceTimeoutSeconds" + case description = "Description" + case customEventData = "CustomEventData" + case notificationTarget = "NotificationTarget" + case name = "Name" + case acceptanceRequired = "AcceptanceRequired" + case gameSessionQueueArns = "GameSessionQueueArns" + case requestTimeoutSeconds = "RequestTimeoutSeconds" + case gameProperties = "GameProperties" + case ruleSetName = "RuleSetName" + } + } + public struct InstanceAccess: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperatingSystem", required: false, type: .enum), AWSShapeMember(label: "Credentials", required: false, type: .structure), AWSShapeMember(label: "FleetId", required: false, type: .string), @@ -2740,10 +3594,10 @@ extension Gamelift { } public struct StopGameSessionPlacementOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessionPlacement", required: false, type: .structure) ] - /// Object that describes the canceled game session placement, with Cancelled status and an end time stamp. + /// Object that describes the canceled game session placement, with CANCELLED status and an end time stamp. public let gameSessionPlacement: GameSessionPlacement? public init(gameSessionPlacement: GameSessionPlacement? = nil) { @@ -2762,7 +3616,7 @@ extension Gamelift { } public struct CreateGameSessionQueueOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessionQueue", required: false, type: .structure) ] /// Object that describes the newly created game session queue. @@ -2778,7 +3632,7 @@ extension Gamelift { } public struct CreatePlayerSessionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlayerSession", required: false, type: .structure) ] /// Object that describes the newly created player session record. @@ -2794,7 +3648,7 @@ extension Gamelift { } public struct DescribeGameSessionDetailsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "GameSessionDetails", required: false, type: .list) ] @@ -2815,8 +3669,9 @@ extension Gamelift { } public struct StartGameSessionPlacementInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DesiredPlayerSessions", required: false, type: .list), + AWSShapeMember(label: "GameSessionData", required: false, type: .string), AWSShapeMember(label: "PlacementId", required: true, type: .string), AWSShapeMember(label: "PlayerLatencies", required: false, type: .list), AWSShapeMember(label: "GameSessionQueueName", required: true, type: .string), @@ -2826,21 +3681,24 @@ extension Gamelift { ] /// Set of information on each player to create a player session for. public let desiredPlayerSessions: [DesiredPlayerSession]? + /// Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). + public let gameSessionData: String? /// Unique identifier to assign to the new game session placement. This value is developer-defined. The value must be unique across all regions and cannot be reused unless you are resubmitting a canceled or timed-out placement request. public let placementId: String - /// Set of values, expressed in milliseconds, indicating the amount of latency that players are experiencing when connected to AWS regions. This information is used to try to place the new game session where it can offer the best possible gameplay experience for the players. + /// Set of values, expressed in milliseconds, indicating the amount of latency that a player experiences when connected to AWS regions. This information is used to try to place the new game session where it can offer the best possible gameplay experience for the players. public let playerLatencies: [PlayerLatency]? /// Name of the queue to use to place the new game session. public let gameSessionQueueName: String - /// Set of developer-defined properties for a game session. These properties are passed to the server process hosting the game session. + /// Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). public let gameProperties: [GameProperty]? /// Descriptive label that is associated with a game session. Session names do not need to be unique. public let gameSessionName: String? /// Maximum number of players that can be connected simultaneously to the game session. public let maximumPlayerSessionCount: Int32 - public init(desiredPlayerSessions: [DesiredPlayerSession]? = nil, placementId: String, playerLatencies: [PlayerLatency]? = nil, gameSessionQueueName: String, gameProperties: [GameProperty]? = nil, gameSessionName: String? = nil, maximumPlayerSessionCount: Int32) { + public init(desiredPlayerSessions: [DesiredPlayerSession]? = nil, gameSessionData: String? = nil, placementId: String, playerLatencies: [PlayerLatency]? = nil, gameSessionQueueName: String, gameProperties: [GameProperty]? = nil, gameSessionName: String? = nil, maximumPlayerSessionCount: Int32) { self.desiredPlayerSessions = desiredPlayerSessions + self.gameSessionData = gameSessionData self.placementId = placementId self.playerLatencies = playerLatencies self.gameSessionQueueName = gameSessionQueueName @@ -2851,6 +3709,7 @@ extension Gamelift { private enum CodingKeys: String, CodingKey { case desiredPlayerSessions = "DesiredPlayerSessions" + case gameSessionData = "GameSessionData" case placementId = "PlacementId" case playerLatencies = "PlayerLatencies" case gameSessionQueueName = "GameSessionQueueName" @@ -2860,8 +3719,43 @@ extension Gamelift { } } + public struct VpcPeeringAuthorization: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "PeerVpcAwsAccountId", required: false, type: .string), + AWSShapeMember(label: "ExpirationTime", required: false, type: .timestamp), + AWSShapeMember(label: "PeerVpcId", required: false, type: .string), + AWSShapeMember(label: "GameLiftAwsAccountId", required: false, type: .string) + ] + /// Time stamp indicating when this authorization was issued. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). + public let creationTime: TimeStamp? + public let peerVpcAwsAccountId: String? + /// Time stamp indicating when this authorization expires (24 hours after issuance). Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). + public let expirationTime: TimeStamp? + /// Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console. + public let peerVpcId: String? + /// Unique identifier for the AWS account that you use to manage your Amazon GameLift fleet. You can find your Account ID in the AWS Management Console under account settings. + public let gameLiftAwsAccountId: String? + + public init(creationTime: TimeStamp? = nil, peerVpcAwsAccountId: String? = nil, expirationTime: TimeStamp? = nil, peerVpcId: String? = nil, gameLiftAwsAccountId: String? = nil) { + self.creationTime = creationTime + self.peerVpcAwsAccountId = peerVpcAwsAccountId + self.expirationTime = expirationTime + self.peerVpcId = peerVpcId + self.gameLiftAwsAccountId = gameLiftAwsAccountId + } + + private enum CodingKeys: String, CodingKey { + case creationTime = "CreationTime" + case peerVpcAwsAccountId = "PeerVpcAwsAccountId" + case expirationTime = "ExpirationTime" + case peerVpcId = "PeerVpcId" + case gameLiftAwsAccountId = "GameLiftAwsAccountId" + } + } + public struct CreateAliasOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Alias", required: false, type: .structure) ] /// Object that describes the newly created alias record. @@ -2877,19 +3771,19 @@ extension Gamelift { } public struct DescribeScalingPoliciesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StatusFilter", required: false, type: .enum), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "FleetId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// Scaling policy status to filter results on. A scaling policy is only in force when in an ACTIVE status. ACTIVE – The scaling policy is currently in force. UPDATEREQUESTED – A request to update the scaling policy has been received. UPDATING – A change is being made to the scaling policy. DELETEREQUESTED – A request to delete the scaling policy has been received. DELETING – The scaling policy is being deleted. DELETED – The scaling policy has been deleted. ERROR – An error occurred in creating the policy. It should be removed and recreated. + /// Scaling policy status to filter results on. A scaling policy is only in force when in an ACTIVE status. ACTIVE -- The scaling policy is currently in force. UPDATEREQUESTED -- A request to update the scaling policy has been received. UPDATING -- A change is being made to the scaling policy. DELETEREQUESTED -- A request to delete the scaling policy has been received. DELETING -- The scaling policy is being deleted. DELETED -- The scaling policy has been deleted. ERROR -- An error occurred in creating the policy. It should be removed and recreated. public let statusFilter: ScalingStatusType? /// Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. public let limit: Int32? /// Unique identifier for a fleet to retrieve scaling policies for. public let fleetId: String - /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. + /// Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. public let nextToken: String? public init(statusFilter: ScalingStatusType? = nil, limit: Int32? = nil, fleetId: String, nextToken: String? = nil) { @@ -2908,7 +3802,7 @@ extension Gamelift { } public struct DescribeBuildOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Build", required: false, type: .structure) ] /// Set of properties describing the requested build. @@ -2924,7 +3818,7 @@ extension Gamelift { } public struct UpdateFleetCapacityOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetId", required: false, type: .string) ] /// Unique identifier for a fleet that was updated. @@ -2939,8 +3833,24 @@ extension Gamelift { } } + public struct UpdateMatchmakingConfigurationOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Configuration", required: false, type: .structure) + ] + /// Object that describes the updated matchmaking configuration. + public let configuration: MatchmakingConfiguration? + + public init(configuration: MatchmakingConfiguration? = nil) { + self.configuration = configuration + } + + private enum CodingKeys: String, CodingKey { + case configuration = "Configuration" + } + } + public struct UpdateFleetAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceCreationLimitPolicy", required: false, type: .structure), AWSShapeMember(label: "NewGameSessionProtectionPolicy", required: false, type: .enum), AWSShapeMember(label: "Description", required: false, type: .string), @@ -2950,7 +3860,7 @@ extension Gamelift { ] /// Policy that limits the number of game sessions an individual player can create over a span of time. public let resourceCreationLimitPolicy: ResourceCreationLimitPolicy? - /// Game session protection policy to apply to all new instances created in this fleet. Instances that already exist are not affected. You can set protection for individual instances using UpdateGameSession. NoProtection – The game session can be terminated during a scale-down event. FullProtection – If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event. + /// Game session protection policy to apply to all new instances created in this fleet. Instances that already exist are not affected. You can set protection for individual instances using UpdateGameSession. NoProtection -- The game session can be terminated during a scale-down event. FullProtection -- If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event. public let newGameSessionProtectionPolicy: ProtectionPolicy? /// Human-readable description of a fleet. public let description: String? @@ -2980,11 +3890,32 @@ extension Gamelift { } } + public struct ListAliasesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Aliases", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Collection of alias records that match the list request. + public let aliases: [Alias]? + /// Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list. + public let nextToken: String? + + public init(aliases: [Alias]? = nil, nextToken: String? = nil) { + self.aliases = aliases + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case aliases = "Aliases" + case nextToken = "NextToken" + } + } + public struct DeleteGameSessionQueueInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] - /// Descriptive label that is associated with queue. Queue names must be unique within each region. + /// Descriptive label that is associated with game session queue. Queue names must be unique within each region. public let name: String public init(name: String) { @@ -2996,29 +3927,29 @@ extension Gamelift { } } - public struct ListAliasesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Aliases", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) + public struct MatchedPlayerSession: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PlayerSessionId", required: false, type: .string), + AWSShapeMember(label: "PlayerId", required: false, type: .string) ] - /// Collection of alias records that match the list request. - public let aliases: [Alias]? - /// Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list. - public let nextToken: String? + /// Unique identifier for a player session + public let playerSessionId: String? + /// Unique identifier for a player + public let playerId: String? - public init(aliases: [Alias]? = nil, nextToken: String? = nil) { - self.aliases = aliases - self.nextToken = nextToken + public init(playerSessionId: String? = nil, playerId: String? = nil) { + self.playerSessionId = playerSessionId + self.playerId = playerId } private enum CodingKeys: String, CodingKey { - case aliases = "Aliases" - case nextToken = "NextToken" + case playerSessionId = "PlayerSessionId" + case playerId = "PlayerId" } } public struct IpPermission: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FromPort", required: true, type: .integer), AWSShapeMember(label: "ToPort", required: true, type: .integer), AWSShapeMember(label: "Protocol", required: true, type: .enum), @@ -3049,7 +3980,7 @@ extension Gamelift { } public struct DescribeFleetEventsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Events", required: false, type: .list) ] @@ -3070,7 +4001,7 @@ extension Gamelift { } public struct DescribeAliasOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Alias", required: false, type: .structure) ] /// Object that contains the requested alias. @@ -3086,7 +4017,7 @@ extension Gamelift { } public struct GetInstanceAccessInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetId", required: true, type: .string), AWSShapeMember(label: "InstanceId", required: true, type: .string) ] @@ -3106,15 +4037,24 @@ extension Gamelift { } } - public enum ScalingAdjustmentType: String, CustomStringConvertible, Codable { - case changeincapacity = "ChangeInCapacity" - case exactcapacity = "ExactCapacity" - case percentchangeincapacity = "PercentChangeInCapacity" - public var description: String { return self.rawValue } + public struct DescribeGameSessionPlacementInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PlacementId", required: true, type: .string) + ] + /// Unique identifier for a game session placement to retrieve. + public let placementId: String + + public init(placementId: String) { + self.placementId = placementId + } + + private enum CodingKeys: String, CodingKey { + case placementId = "PlacementId" + } } public struct DescribeRuntimeConfigurationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetId", required: true, type: .string) ] /// Unique identifier for a fleet to get the run-time configuration for. @@ -3129,35 +4069,57 @@ extension Gamelift { } } + public enum ScalingAdjustmentType: String, CustomStringConvertible, Codable { + case changeincapacity = "ChangeInCapacity" + case exactcapacity = "ExactCapacity" + case percentchangeincapacity = "PercentChangeInCapacity" + public var description: String { return self.rawValue } + } + public enum PlayerSessionCreationPolicy: String, CustomStringConvertible, Codable { case acceptAll = "ACCEPT_ALL" case denyAll = "DENY_ALL" public var description: String { return self.rawValue } } - public struct DescribeGameSessionPlacementInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PlacementId", required: true, type: .string) + public struct AttributeValue: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SDM", required: false, type: .map), + AWSShapeMember(label: "N", required: false, type: .double), + AWSShapeMember(label: "SL", required: false, type: .list), + AWSShapeMember(label: "S", required: false, type: .string) ] - /// Unique identifier for a game session placement to retrieve. - public let placementId: String - - public init(placementId: String) { - self.placementId = placementId + /// For a map of up to 10 type:value pairs. Maximum length for each string value is 100 characters. + public let sdm: [String: Double]? + /// For number values, expressed as double. + public let n: Double? + /// For a list of up to 10 strings. Maximum length for each string is 100 characters. Duplicate values are not recognized; all occurrences of the repeated value after the first of a repeated value are ignored. + public let sl: [String]? + /// For single string values. Maximum string length is 100 characters. + public let s: String? + + public init(sdm: [String: Double]? = nil, n: Double? = nil, sl: [String]? = nil, s: String? = nil) { + self.sdm = sdm + self.n = n + self.sl = sl + self.s = s } private enum CodingKeys: String, CodingKey { - case placementId = "PlacementId" + case sdm = "SDM" + case n = "N" + case sl = "SL" + case s = "S" } } public struct RoutingStrategy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "FleetId", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string) ] - /// Type of routing strategy. Possible routing types include the following: SIMPLE – The alias resolves to one specific fleet. Use this type when routing to active fleets. TERMINAL – The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the RoutingStrategy message embedded. + /// Type of routing strategy. Possible routing types include the following: SIMPLE -- The alias resolves to one specific fleet. Use this type when routing to active fleets. TERMINAL -- The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the RoutingStrategy message embedded. public let `type`: RoutingStrategyType? /// Unique identifier for a fleet that the alias points to. public let fleetId: String? @@ -3177,39 +4139,8 @@ extension Gamelift { } } - public struct UpdateAliasInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Description", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "AliasId", required: true, type: .string), - AWSShapeMember(label: "RoutingStrategy", required: false, type: .structure) - ] - /// Human-readable description of an alias. - public let description: String? - /// Descriptive label that is associated with an alias. Alias names do not need to be unique. - public let name: String? - /// Unique identifier for a fleet alias. Specify the alias you want to update. - public let aliasId: String - /// Object that specifies the fleet and routing type to use for the alias. - public let routingStrategy: RoutingStrategy? - - public init(description: String? = nil, name: String? = nil, aliasId: String, routingStrategy: RoutingStrategy? = nil) { - self.description = description - self.name = name - self.aliasId = aliasId - self.routingStrategy = routingStrategy - } - - private enum CodingKeys: String, CodingKey { - case description = "Description" - case name = "Name" - case aliasId = "AliasId" - case routingStrategy = "RoutingStrategy" - } - } - public struct PlayerLatencyPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyDurationSeconds", required: false, type: .integer), AWSShapeMember(label: "MaximumIndividualPlayerLatencyMilliseconds", required: false, type: .integer) ] @@ -3230,7 +4161,7 @@ extension Gamelift { } public struct UpdateFleetPortSettingsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetId", required: false, type: .string) ] /// Unique identifier for a fleet that was updated. @@ -3246,7 +4177,7 @@ extension Gamelift { } public struct UpdateRuntimeConfigurationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FleetId", required: true, type: .string), AWSShapeMember(label: "RuntimeConfiguration", required: true, type: .structure) ] @@ -3266,8 +4197,39 @@ extension Gamelift { } } + public struct UpdateAliasInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "AliasId", required: true, type: .string), + AWSShapeMember(label: "RoutingStrategy", required: false, type: .structure) + ] + /// Human-readable description of an alias. + public let description: String? + /// Descriptive label that is associated with an alias. Alias names do not need to be unique. + public let name: String? + /// Unique identifier for a fleet alias. Specify the alias you want to update. + public let aliasId: String + /// Object that specifies the fleet and routing type to use for the alias. + public let routingStrategy: RoutingStrategy? + + public init(description: String? = nil, name: String? = nil, aliasId: String, routingStrategy: RoutingStrategy? = nil) { + self.description = description + self.name = name + self.aliasId = aliasId + self.routingStrategy = routingStrategy + } + + private enum CodingKeys: String, CodingKey { + case description = "Description" + case name = "Name" + case aliasId = "AliasId" + case routingStrategy = "RoutingStrategy" + } + } + public struct CreateGameSessionQueueInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Destinations", required: false, type: .list), AWSShapeMember(label: "TimeoutInSeconds", required: false, type: .integer), AWSShapeMember(label: "Name", required: true, type: .string), @@ -3277,7 +4239,7 @@ extension Gamelift { public let destinations: [GameSessionQueueDestination]? /// Maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status. public let timeoutInSeconds: Int32? - /// Descriptive label that is associated with queue. Queue names must be unique within each region. + /// Descriptive label that is associated with game session queue. Queue names must be unique within each region. public let name: String /// Collection of latency policies to apply when processing game sessions placement requests with player latency information. Multiple policies are evaluated in order of the maximum latency value, starting with the lowest latency values. With just one policy, it is enforced at the start of the game session placement for the duration period. With multiple policies, each policy is enforced consecutively for its duration period. For example, a queue might enforce a 60-second policy followed by a 120-second policy, and then no policy for the remainder of the placement. A player latency policy must set a value for MaximumIndividualPlayerLatencyMilliseconds; if none is set, this API requests will fail. public let playerLatencyPolicies: [PlayerLatencyPolicy]? @@ -3297,8 +4259,69 @@ extension Gamelift { } } + public struct MatchmakingTicket: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTime", required: false, type: .timestamp), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "StatusReason", required: false, type: .string), + AWSShapeMember(label: "Players", required: false, type: .list), + AWSShapeMember(label: "TicketId", required: false, type: .string), + AWSShapeMember(label: "EndTime", required: false, type: .timestamp), + AWSShapeMember(label: "ConfigurationName", required: false, type: .string), + AWSShapeMember(label: "GameSessionConnectionInfo", required: false, type: .structure), + AWSShapeMember(label: "StatusMessage", required: false, type: .string), + AWSShapeMember(label: "EstimatedWaitTime", required: false, type: .integer) + ] + /// Time stamp indicating when this matchmaking request was received. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). + public let startTime: TimeStamp? + /// Current status of the matchmaking request. QUEUED -- The matchmaking request has been received and is currently waiting to be processed. SEARCHING -- The matchmaking request is currently being processed. REQUIRES_ACCEPTANCE -- A match has been proposed and the players must accept the match (see AcceptMatch). This status is used only with requests that use a matchmaking configuration with a player acceptance requirement. PLACING -- The FlexMatch engine has matched players and is in the process of placing a new game session for the match. COMPLETED -- Players have been matched and a game session is ready to host the players. A ticket in this state contains the necessary connection information for players. FAILED -- The matchmaking request was not completed. Tickets with players who fail to accept a proposed match are placed in FAILED status; new matchmaking requests can be submitted for these players. CANCELLED -- The matchmaking request was canceled with a call to StopMatchmaking. TIMED_OUT -- The matchmaking request was not completed within the duration specified in the matchmaking configuration. Matchmaking requests that time out can be resubmitted. + public let status: MatchmakingConfigurationStatus? + /// Code to explain the current status. For example, a status reason may indicate when a ticket has returned to SEARCHING status after a proposed match fails to receive player acceptances. + public let statusReason: String? + /// A set of Player objects, each representing a player to find matches for. Players are identified by a unique player ID and may include latency data for use during matchmaking. If the ticket is in status COMPLETED, the Player objects include the team the players were assigned to in the resulting match. + public let players: [Player]? + /// Unique identifier for a matchmaking ticket. + public let ticketId: String? + /// Time stamp indicating when the matchmaking request stopped being processed due to successful completion, timeout, or cancellation. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). + public let endTime: TimeStamp? + /// Name of the MatchmakingConfiguration that is used with this ticket. Matchmaking configurations determine how players are grouped into a match and how a new game session is created for the match. + public let configurationName: String? + /// Identifier and connection information of the game session created for the match. This information is added to the ticket only after the matchmaking request has been successfully completed. + public let gameSessionConnectionInfo: GameSessionConnectionInfo? + /// Additional information about the current status. + public let statusMessage: String? + /// Average amount of time (in seconds) that players are currently waiting for a match. If there is not enough recent data, this property may be empty. + public let estimatedWaitTime: Int32? + + public init(startTime: TimeStamp? = nil, status: MatchmakingConfigurationStatus? = nil, statusReason: String? = nil, players: [Player]? = nil, ticketId: String? = nil, endTime: TimeStamp? = nil, configurationName: String? = nil, gameSessionConnectionInfo: GameSessionConnectionInfo? = nil, statusMessage: String? = nil, estimatedWaitTime: Int32? = nil) { + self.startTime = startTime + self.status = status + self.statusReason = statusReason + self.players = players + self.ticketId = ticketId + self.endTime = endTime + self.configurationName = configurationName + self.gameSessionConnectionInfo = gameSessionConnectionInfo + self.statusMessage = statusMessage + self.estimatedWaitTime = estimatedWaitTime + } + + private enum CodingKeys: String, CodingKey { + case startTime = "StartTime" + case status = "Status" + case statusReason = "StatusReason" + case players = "Players" + case ticketId = "TicketId" + case endTime = "EndTime" + case configurationName = "ConfigurationName" + case gameSessionConnectionInfo = "GameSessionConnectionInfo" + case statusMessage = "StatusMessage" + case estimatedWaitTime = "EstimatedWaitTime" + } + } + public struct SearchGameSessionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GameSessions", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -3319,7 +4342,7 @@ extension Gamelift { } public struct UpdateAliasOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Alias", required: false, type: .structure) ] /// Object that contains the updated alias configuration. @@ -3334,8 +4357,71 @@ extension Gamelift { } } + public enum MatchmakingConfigurationStatus: String, CustomStringConvertible, Codable { + case cancelled = "CANCELLED" + case completed = "COMPLETED" + case failed = "FAILED" + case placing = "PLACING" + case queued = "QUEUED" + case requiresAcceptance = "REQUIRES_ACCEPTANCE" + case searching = "SEARCHING" + case timedOut = "TIMED_OUT" + public var description: String { return self.rawValue } + } + + public struct CreateVpcPeeringConnectionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PeerVpcAwsAccountId", required: true, type: .string), + AWSShapeMember(label: "FleetId", required: true, type: .string), + AWSShapeMember(label: "PeerVpcId", required: true, type: .string) + ] + /// Unique identifier for the AWS account with the VPC that you want to peer your Amazon GameLift fleet with. You can find your Account ID in the AWS Management Console under account settings. + public let peerVpcAwsAccountId: String + /// Unique identifier for a fleet. This tells Amazon GameLift which GameLift VPC to peer with. + public let fleetId: String + /// Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console. + public let peerVpcId: String + + public init(peerVpcAwsAccountId: String, fleetId: String, peerVpcId: String) { + self.peerVpcAwsAccountId = peerVpcAwsAccountId + self.fleetId = fleetId + self.peerVpcId = peerVpcId + } + + private enum CodingKeys: String, CodingKey { + case peerVpcAwsAccountId = "PeerVpcAwsAccountId" + case fleetId = "FleetId" + case peerVpcId = "PeerVpcId" + } + } + + public struct AcceptMatchOutput: AWSShape { + + } + + public struct VpcPeeringConnectionStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Code", required: false, type: .string), + AWSShapeMember(label: "Message", required: false, type: .string) + ] + /// Code indicating the status of a VPC peering connection. + public let code: String? + /// Additional messaging associated with the connection status. + public let message: String? + + public init(code: String? = nil, message: String? = nil) { + self.code = code + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case code = "Code" + case message = "Message" + } + } + public struct DescribeRuntimeConfigurationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuntimeConfiguration", required: false, type: .structure) ] /// Instructions describing how server processes should be launched and maintained on each instance in the fleet. @@ -3351,7 +4437,7 @@ extension Gamelift { } public struct ListFleetsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "FleetIds", required: false, type: .list) ] diff --git a/Sources/AWSSDKSwift/Services/glacier/Glacier_API.swift b/Sources/AWSSDKSwift/Services/glacier/Glacier_API.swift index 23eb91c7c5e..2285acb8a6b 100644 --- a/Sources/AWSSDKSwift/Services/glacier/Glacier_API.swift +++ b/Sources/AWSSDKSwift/Services/glacier/Glacier_API.swift @@ -69,7 +69,7 @@ public struct Glacier { return try client.send(operation: "GetDataRetrievalPolicy", path: "/{accountId}/policies/data-retrieval", httpMethod: "GET", input: input) } - /// This operation purchases a provisioned capacity unit for an AWS account. + /// This operation purchases a provisioned capacity unit for an AWS account. public func purchaseProvisionedCapacity(_ input: PurchaseProvisionedCapacityInput) throws -> PurchaseProvisionedCapacityOutput { return try client.send(operation: "PurchaseProvisionedCapacity", path: "/{accountId}/provisioned-capacity", httpMethod: "POST", input: input) } @@ -79,17 +79,17 @@ public struct Glacier { _ = try client.send(operation: "SetVaultNotifications", path: "/{accountId}/vaults/{vaultName}/notification-configuration", httpMethod: "PUT", input: input) } - /// This operation initiates a job of the specified type. In this release, you can initiate a job to retrieve either an archive or a vault inventory (a list of archives in a vault). Retrieving data from Amazon Glacier is a two-step process: Initiate a retrieval job. A data retrieval policy can cause your initiate retrieval job request to fail with a PolicyEnforcedException exception. For more information about data retrieval policies, see Amazon Glacier Data Retrieval Policies. For more information about the PolicyEnforcedException exception, see Error Responses. After the job completes, download the bytes. The retrieval request is executed asynchronously. When you initiate a retrieval job, Amazon Glacier creates a job and returns a job ID in the response. When Amazon Glacier completes the job, you can get the job output (archive or inventory data). For information about getting job output, see GetJobOutput operation. The job must complete before you can get its output. To determine when a job is complete, you have the following options: Use Amazon SNS Notification You can specify an Amazon Simple Notification Service (Amazon SNS) topic to which Amazon Glacier can post a notification after the job is completed. You can specify an SNS topic per job request. The notification is sent only after Amazon Glacier completes the job. In addition to specifying an SNS topic per job request, you can configure vault notifications for a vault so that job notifications are always sent. For more information, see SetVaultNotifications. Get job details You can make a DescribeJob request to obtain job status information while a job is in progress. However, it is more efficient to use an Amazon SNS notification to determine when a job is complete. The information you get via notification is same that you get by calling DescribeJob. If for a specific event, you add both the notification configuration on the vault and also specify an SNS topic in your initiate job request, Amazon Glacier sends both notifications. For more information, see SetVaultNotifications. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM). About the Vault Inventory Amazon Glacier prepares an inventory for each vault periodically, every 24 hours. When you initiate a job for a vault inventory, Amazon Glacier returns the last inventory for the vault. The inventory data you get might be up to a day or two days old. Also, the initiate inventory job might take some time to complete before you can download the vault inventory. So you do not want to retrieve a vault inventory for each vault operation. However, in some scenarios, you might find the vault inventory useful. For example, when you upload an archive, you can provide an archive description but not an archive name. Amazon Glacier provides you a unique archive ID, an opaque string of characters. So, you might maintain your own database that maps archive names to their corresponding Amazon Glacier assigned archive IDs. You might find the vault inventory useful in the event you need to reconcile information in your database with the actual vault inventory. Range Inventory Retrieval You can limit the number of inventory items retrieved by filtering on the archive creation date or by setting a limit. Filtering by Archive Creation Date You can retrieve inventory items for archives created between StartDate and EndDate by specifying values for these parameters in the InitiateJob request. Archives created on or after the StartDate and before the EndDate will be returned. If you only provide the StartDate without the EndDate, you will retrieve the inventory for all archives created on or after the StartDate. If you only provide the EndDate without the StartDate, you will get back the inventory for all archives created before the EndDate. Limiting Inventory Items per Retrieval You can limit the number of inventory items returned by setting the Limit parameter in the InitiateJob request. The inventory job output will contain inventory items up to the specified Limit. If there are more inventory items available, the result is paginated. After a job is complete you can use the DescribeJob operation to get a marker that you use in a subsequent InitiateJob request. The marker will indicate the starting point to retrieve the next set of inventory items. You can page through your entire inventory by repeatedly making InitiateJob requests with the marker from the previous DescribeJob output, until you get a marker from DescribeJob that returns null, indicating that there are no more inventory items available. You can use the Limit parameter together with the date range parameters. About Ranged Archive Retrieval You can initiate an archive retrieval for the whole archive or a range of the archive. In the case of ranged archive retrieval, you specify a byte range to return or the whole archive. The range specified must be megabyte (MB) aligned, that is the range start value must be divisible by 1 MB and range end value plus 1 must be divisible by 1 MB or equal the end of the archive. If the ranged archive retrieval is not megabyte aligned, this operation returns a 400 response. Furthermore, to ensure you get checksum values for data you download using Get Job Output API, the range must be tree hash aligned. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM). For conceptual information and the underlying REST API, see Initiate a Job and Downloading a Vault Inventory Expedited and Bulk Archive Retrievals When retrieving an archive, you can specify one of the following options in the Tier field of the request body: Standard The default type of retrieval, which allows access to any of your archives within several hours. Standard retrievals typically complete within 3–5 hours. Bulk Amazon Glacier’s lowest-cost retrieval option, which enables you to retrieve large amounts of data inexpensively in a day. Bulk retrieval requests typically complete within 5–12 hours. Expedited Amazon Glacier’s option for the fastest retrievals. Archives requested using the expedited retrievals typically become accessible within 1–5 minutes. For more information about expedited and bulk retrievals, see Retrieving Amazon Glacier Archives. + /// This operation initiates a job of the specified type, which can be a select, an archival retrieval, or a vault retrieval. For more information about using this operation, see the documentation for the underlying REST API Initiate a Job. public func initiateJob(_ input: InitiateJobInput) throws -> InitiateJobOutput { return try client.send(operation: "InitiateJob", path: "/{accountId}/vaults/{vaultName}/jobs", httpMethod: "POST", input: input) } - /// This operation lists the provisioned capacity for the specified AWS account. + /// This operation lists the provisioned capacity units for the specified AWS account. public func listProvisionedCapacity(_ input: ListProvisionedCapacityInput) throws -> ListProvisionedCapacityOutput { return try client.send(operation: "ListProvisionedCapacity", path: "/{accountId}/provisioned-capacity", httpMethod: "GET", input: input) } - /// This operation lists jobs for a vault, including jobs that are in-progress and jobs that have recently finished. Amazon Glacier retains recently completed jobs for a period before deleting them; however, it eventually removes completed jobs. The output of completed jobs can be retrieved. Retaining completed jobs for a period of time after they have completed enables you to get a job output in the event you miss the job completion notification or your first attempt to download it fails. For example, suppose you start an archive retrieval job to download an archive. After the job completes, you start to download the archive but encounter a network error. In this scenario, you can retry and download the archive while the job exists. To retrieve an archive or retrieve a vault inventory from Amazon Glacier, you first initiate a job, and after the job completes, you download the data. For an archive retrieval, the output is the archive data. For an inventory retrieval, it is the inventory list. The List Job operation returns a list of these jobs sorted by job initiation time. The List Jobs operation supports pagination. You should always check the response Marker field. If there are no more jobs to list, the Marker field is set to null. If there are more jobs to list, the Marker field is set to a non-null value, which you can use to continue the pagination of the list. To return a list of jobs that begins at a specific job, set the marker request parameter to the Marker value for that job that you obtained from a previous List Jobs request. You can set a maximum limit for the number of jobs returned in the response by specifying the limit parameter in the request. The default limit is 1000. The number of jobs returned might be fewer than the limit, but the number of returned jobs never exceeds the limit. Additionally, you can filter the jobs list returned by specifying the optional statuscode parameter or completed parameter, or both. Using the statuscode parameter, you can specify to return only jobs that match either the InProgress, Succeeded, or Failed status. Using the completed parameter, you can specify to return only jobs that were completed (true) or jobs that were not completed (false). For the underlying REST API, see List Jobs. + /// This operation lists jobs for a vault, including jobs that are in-progress and jobs that have recently finished. The List Job operation returns a list of these jobs sorted by job initiation time. Amazon Glacier retains recently completed jobs for a period before deleting them; however, it eventually removes completed jobs. The output of completed jobs can be retrieved. Retaining completed jobs for a period of time after they have completed enables you to get a job output in the event you miss the job completion notification or your first attempt to download it fails. For example, suppose you start an archive retrieval job to download an archive. After the job completes, you start to download the archive but encounter a network error. In this scenario, you can retry and download the archive while the job exists. The List Jobs operation supports pagination. You should always check the response Marker field. If there are no more jobs to list, the Marker field is set to null. If there are more jobs to list, the Marker field is set to a non-null value, which you can use to continue the pagination of the list. To return a list of jobs that begins at a specific job, set the marker request parameter to the Marker value for that job that you obtained from a previous List Jobs request. You can set a maximum limit for the number of jobs returned in the response by specifying the limit parameter in the request. The default limit is 1000. The number of jobs returned might be fewer than the limit, but the number of returned jobs never exceeds the limit. Additionally, you can filter the jobs list returned by specifying the optional statuscode parameter or completed parameter, or both. Using the statuscode parameter, you can specify to return only jobs that match either the InProgress, Succeeded, or Failed status. Using the completed parameter, you can specify to return only jobs that were completed (true) or jobs that were not completed (false). For more information about using this operation, see the documentation for the underlying REST API List Jobs. public func listJobs(_ input: ListJobsInput) throws -> ListJobsOutput { return try client.send(operation: "ListJobs", path: "/{accountId}/vaults/{vaultName}/jobs", httpMethod: "GET", input: input) } @@ -184,7 +184,7 @@ public struct Glacier { return try client.send(operation: "GetJobOutput", path: "/{accountId}/vaults/{vaultName}/jobs/{jobId}/output", httpMethod: "GET", input: input) } - /// This operation returns information about a job you previously initiated, including the job initiation date, the user who initiated the job, the job status code/message and the Amazon SNS topic to notify after Amazon Glacier completes the job. For more information about initiating a job, see InitiateJob. This operation enables you to check the status of your job. However, it is strongly recommended that you set up an Amazon SNS topic and specify it in your initiate job request so that Amazon Glacier can notify the topic after it completes the job. A job ID will not expire for at least 24 hours after Amazon Glacier completes the job. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM). For information about the underlying REST API, see Working with Archives in Amazon Glacier in the Amazon Glacier Developer Guide. + /// This operation returns information about a job you previously initiated, including the job initiation date, the user who initiated the job, the job status code/message and the Amazon SNS topic to notify after Amazon Glacier completes the job. For more information about initiating a job, see InitiateJob. This operation enables you to check the status of your job. However, it is strongly recommended that you set up an Amazon SNS topic and specify it in your initiate job request so that Amazon Glacier can notify the topic after it completes the job. A job ID will not expire for at least 24 hours after Amazon Glacier completes the job. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM). For more information about using this operation, see the documentation for the underlying REST API Describe Job in the Amazon Glacier Developer Guide. public func describeJob(_ input: DescribeJobInput) throws -> GlacierJobDescription { return try client.send(operation: "DescribeJob", path: "/{accountId}/vaults/{vaultName}/jobs/{jobId}", httpMethod: "GET", input: input) } diff --git a/Sources/AWSSDKSwift/Services/glacier/Glacier_Shapes.swift b/Sources/AWSSDKSwift/Services/glacier/Glacier_Shapes.swift index b9c521b250d..d7bc3eb1aad 100644 --- a/Sources/AWSSDKSwift/Services/glacier/Glacier_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/glacier/Glacier_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Glacier { public struct PurchaseProvisionedCapacityOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "capacityId", location: .header(locationName: "x-amz-capacity-id"), required: false, type: .string) ] /// The ID that identifies the provisioned capacity unit. @@ -21,78 +21,10 @@ extension Glacier { } } - public struct SetDataRetrievalPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Policy", required: false, type: .structure), - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string) - ] - /// The data retrieval policy in JSON format. - public let policy: DataRetrievalPolicy? - /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - - public init(policy: DataRetrievalPolicy? = nil, accountId: String) { - self.policy = policy - self.accountId = accountId - } - - private enum CodingKeys: String, CodingKey { - case policy = "Policy" - case accountId = "accountId" - } - } - - public struct AbortMultipartUploadInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "uploadId", location: .uri(locationName: "uploadId"), required: true, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The upload ID of the multipart upload to delete. - public let uploadId: String - /// The name of the vault. - public let vaultName: String - - public init(accountId: String, uploadId: String, vaultName: String) { - self.accountId = accountId - self.uploadId = uploadId - self.vaultName = vaultName - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case uploadId = "uploadId" - case vaultName = "vaultName" - } - } - - public struct DeleteVaultNotificationsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The name of the vault. - public let vaultName: String - - public init(accountId: String, vaultName: String) { - self.accountId = accountId - self.vaultName = vaultName - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case vaultName = "vaultName" - } - } - public struct InitiateVaultLockInput: AWSShape { /// The key for the payload public static let payloadPath: String? = "policy" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "policy", required: false, type: .structure), AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) @@ -117,81 +49,8 @@ extension Glacier { } } - public struct InitiateMultipartUploadInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "archiveDescription", location: .header(locationName: "x-amz-archive-description"), required: false, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string), - AWSShapeMember(label: "partSize", location: .header(locationName: "x-amz-part-size"), required: false, type: .string) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The archive description that you are uploading in parts. The part size must be a megabyte (1024 KB) multiplied by a power of 2, for example 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB (4096 MB). - public let archiveDescription: String? - /// The name of the vault. - public let vaultName: String - /// The size of each part except the last, in bytes. The last part can be smaller than this part size. - public let partSize: String? - - public init(accountId: String, archiveDescription: String? = nil, vaultName: String, partSize: String? = nil) { - self.accountId = accountId - self.archiveDescription = archiveDescription - self.vaultName = vaultName - self.partSize = partSize - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case archiveDescription = "x-amz-archive-description" - case vaultName = "vaultName" - case partSize = "x-amz-part-size" - } - } - - public struct ListMultipartUploadsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "UploadsList", required: false, type: .list) - ] - /// An opaque string that represents where to continue pagination of the results. You use the marker in a new List Multipart Uploads request to obtain more uploads in the list. If there are no more uploads, this value is null. - public let marker: String? - /// A list of in-progress multipart uploads. - public let uploadsList: [UploadListElement]? - - public init(marker: String? = nil, uploadsList: [UploadListElement]? = nil) { - self.marker = marker - self.uploadsList = uploadsList - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case uploadsList = "UploadsList" - } - } - - public struct PartListElement: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SHA256TreeHash", required: false, type: .string), - AWSShapeMember(label: "RangeInBytes", required: false, type: .string) - ] - /// The SHA256 tree hash value that Amazon Glacier calculated for the part. This field is never null. - public let sHA256TreeHash: String? - /// The byte range of a part, inclusive of the upper value of the range. - public let rangeInBytes: String? - - public init(sHA256TreeHash: String? = nil, rangeInBytes: String? = nil) { - self.sHA256TreeHash = sHA256TreeHash - self.rangeInBytes = rangeInBytes - } - - private enum CodingKeys: String, CodingKey { - case sHA256TreeHash = "SHA256TreeHash" - case rangeInBytes = "RangeInBytes" - } - } - public struct ListMultipartUploadsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .string), @@ -221,92 +80,55 @@ extension Glacier { } } - public struct GetVaultLockInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The name of the vault. - public let vaultName: String - - public init(accountId: String, vaultName: String) { - self.accountId = accountId - self.vaultName = vaultName - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case vaultName = "vaultName" - } - } - - public struct GetDataRetrievalPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - - public init(accountId: String) { - self.accountId = accountId - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - } + public enum EncryptionType: String, CustomStringConvertible, Codable { + case awsKms = "aws:kms" + case aes256 = "AES256" + public var description: String { return self.rawValue } } - public struct GetJobOutputInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListJobsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "range", location: .header(locationName: "Range"), required: false, type: .string), + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .string), AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string), - AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string) + AWSShapeMember(label: "statuscode", location: .querystring(locationName: "statuscode"), required: false, type: .string), + AWSShapeMember(label: "completed", location: .querystring(locationName: "completed"), required: false, type: .string) ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. public let accountId: String - /// The range of bytes to retrieve from the output. For example, if you want to download the first 1,048,576 bytes, specify the range as bytes=0-1048575. By default, this operation downloads the entire output. If the job output is large, then you can use a range to retrieve a portion of the output. This allows you to download the entire output in smaller chunks of bytes. For example, suppose you have 1 GB of job output you want to download and you decide to download 128 MB chunks of data at a time, which is a total of eight Get Job Output requests. You use the following process to download the job output: Download a 128 MB chunk of output by specifying the appropriate byte range. Verify that all 128 MB of data was received. Along with the data, the response includes a SHA256 tree hash of the payload. You compute the checksum of the payload on the client and compare it with the checksum you received in the response to ensure you received all the expected data. Repeat steps 1 and 2 for all the eight 128 MB chunks of output data, each time specifying the appropriate byte range. After downloading all the parts of the job output, you have a list of eight checksum values. Compute the tree hash of these values to find the checksum of the entire output. Using the DescribeJob API, obtain job information of the job that provided you the output. The response includes the checksum of the entire archive stored in Amazon Glacier. You compare this value with the checksum you computed to ensure you have downloaded the entire archive content with no errors. - public let range: String? + /// An opaque string used for pagination. This value specifies the job at which the listing of jobs should begin. Get the marker value from a previous List Jobs response. You only need to include the marker if you are continuing the pagination of results started in a previous List Jobs request. + public let marker: String? + /// The maximum number of jobs to be returned. The default limit is 1000. The number of jobs returned might be fewer than the specified limit, but the number of returned jobs never exceeds the limit. + public let limit: String? /// The name of the vault. public let vaultName: String - /// The job ID whose data is downloaded. - public let jobId: String + /// The type of job status to return. You can specify the following values: InProgress, Succeeded, or Failed. + public let statuscode: String? + /// The state of the jobs to return. You can specify true or false. + public let completed: String? - public init(accountId: String, range: String? = nil, vaultName: String, jobId: String) { + public init(accountId: String, marker: String? = nil, limit: String? = nil, vaultName: String, statuscode: String? = nil, completed: String? = nil) { self.accountId = accountId - self.range = range + self.marker = marker + self.limit = limit self.vaultName = vaultName - self.jobId = jobId + self.statuscode = statuscode + self.completed = completed } private enum CodingKeys: String, CodingKey { case accountId = "accountId" - case range = "Range" + case marker = "marker" + case limit = "limit" case vaultName = "vaultName" - case jobId = "jobId" - } - } - - public struct PurchaseProvisionedCapacityInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string) - ] - /// The AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, don't include any hyphens ('-') in the ID. - public let accountId: String - - public init(accountId: String) { - self.accountId = accountId - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" + case statuscode = "statuscode" + case completed = "completed" } } public struct GetDataRetrievalPolicyOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: false, type: .structure) ] /// Contains the returned data retrieval policy in JSON format. @@ -324,7 +146,7 @@ extension Glacier { public struct UploadArchiveInput: AWSShape { /// The key for the payload public static let payloadPath: String? = "body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "archiveDescription", location: .header(locationName: "x-amz-archive-description"), required: false, type: .string), AWSShapeMember(label: "checksum", location: .header(locationName: "x-amz-sha256-tree-hash"), required: false, type: .string), @@ -362,7 +184,7 @@ extension Glacier { public struct UploadMultipartPartInput: AWSShape { /// The key for the payload public static let payloadPath: String? = "body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "uploadId", location: .uri(locationName: "uploadId"), required: true, type: .string), AWSShapeMember(label: "range", location: .header(locationName: "Content-Range"), required: false, type: .string), @@ -402,36 +224,34 @@ extension Glacier { } } - public struct SetVaultNotificationsInput: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "vaultNotificationConfig" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "vaultNotificationConfig", required: false, type: .structure), + public struct RemoveTagsFromVaultInput: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string), + AWSShapeMember(label: "TagKeys", required: false, type: .list) ] - /// Provides options for specifying notification configuration. - public let vaultNotificationConfig: VaultNotificationConfig? /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. public let accountId: String /// The name of the vault. public let vaultName: String + /// A list of tag keys. Each corresponding tag is removed from the vault. + public let tagKeys: [String]? - public init(vaultNotificationConfig: VaultNotificationConfig? = nil, accountId: String, vaultName: String) { - self.vaultNotificationConfig = vaultNotificationConfig + public init(accountId: String, vaultName: String, tagKeys: [String]? = nil) { self.accountId = accountId self.vaultName = vaultName + self.tagKeys = tagKeys } private enum CodingKeys: String, CodingKey { - case vaultNotificationConfig = "vaultNotificationConfig" case accountId = "accountId" case vaultName = "vaultName" + case tagKeys = "TagKeys" } } - public struct ListTagsForVaultInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DeleteVaultInput: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) ] @@ -451,102 +271,13 @@ extension Glacier { } } - public struct DataRetrievalRule: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "BytesPerHour", required: false, type: .long), - AWSShapeMember(label: "Strategy", required: false, type: .string) - ] - /// The maximum number of bytes that can be retrieved in an hour. This field is required only if the value of the Strategy field is BytesPerHour. Your PUT operation will be rejected if the Strategy field is not set to BytesPerHour and you set this field. - public let bytesPerHour: Int64? - /// The type of data retrieval policy to set. Valid values: BytesPerHour|FreeTier|None - public let strategy: String? - - public init(bytesPerHour: Int64? = nil, strategy: String? = nil) { - self.bytesPerHour = bytesPerHour - self.strategy = strategy - } - - private enum CodingKeys: String, CodingKey { - case bytesPerHour = "BytesPerHour" - case strategy = "Strategy" - } - } - - public struct RemoveTagsFromVaultInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string), - AWSShapeMember(label: "TagKeys", required: false, type: .list) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The name of the vault. - public let vaultName: String - /// A list of tag keys. Each corresponding tag is removed from the vault. - public let tagKeys: [String]? - - public init(accountId: String, vaultName: String, tagKeys: [String]? = nil) { - self.accountId = accountId - self.vaultName = vaultName - self.tagKeys = tagKeys - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case vaultName = "vaultName" - case tagKeys = "TagKeys" - } - } - - public struct ListProvisionedCapacityOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ProvisionedCapacityList", required: false, type: .list) - ] - /// The response body contains the following JSON fields. - public let provisionedCapacityList: [ProvisionedCapacityDescription]? - - public init(provisionedCapacityList: [ProvisionedCapacityDescription]? = nil) { - self.provisionedCapacityList = provisionedCapacityList - } - - private enum CodingKeys: String, CodingKey { - case provisionedCapacityList = "ProvisionedCapacityList" - } - } - - public struct AddTagsToVaultInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .map), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The tags to add to the vault. Each tag is composed of a key and a value. The value can be an empty string. - public let tags: [String: String]? - /// The name of the vault. - public let vaultName: String - - public init(accountId: String, tags: [String: String]? = nil, vaultName: String) { - self.accountId = accountId - self.tags = tags - self.vaultName = vaultName - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case tags = "Tags" - case vaultName = "vaultName" - } - } - - public struct UploadListElement: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VaultARN", required: false, type: .string), - AWSShapeMember(label: "CreationDate", required: false, type: .string), - AWSShapeMember(label: "ArchiveDescription", required: false, type: .string), - AWSShapeMember(label: "PartSizeInBytes", required: false, type: .long), - AWSShapeMember(label: "MultipartUploadId", required: false, type: .string) + public struct UploadListElement: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VaultARN", required: false, type: .string), + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "ArchiveDescription", required: false, type: .string), + AWSShapeMember(label: "PartSizeInBytes", required: false, type: .long), + AWSShapeMember(label: "MultipartUploadId", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the vault that contains the archive. public let vaultARN: String? @@ -576,8 +307,24 @@ extension Glacier { } } + public struct ListProvisionedCapacityOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProvisionedCapacityList", required: false, type: .list) + ] + /// The response body contains the following JSON fields. + public let provisionedCapacityList: [ProvisionedCapacityDescription]? + + public init(provisionedCapacityList: [ProvisionedCapacityDescription]? = nil) { + self.provisionedCapacityList = provisionedCapacityList + } + + private enum CodingKeys: String, CodingKey { + case provisionedCapacityList = "ProvisionedCapacityList" + } + } + public struct CompleteMultipartUploadInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "uploadId", location: .uri(locationName: "uploadId"), required: true, type: .string), AWSShapeMember(label: "archiveSize", location: .header(locationName: "x-amz-archive-size"), required: false, type: .string), @@ -612,70 +359,70 @@ extension Glacier { } } - public struct ListJobsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct AddTagsToVaultInput: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), - AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string), - AWSShapeMember(label: "statuscode", location: .querystring(locationName: "statuscode"), required: false, type: .string), - AWSShapeMember(label: "completed", location: .querystring(locationName: "completed"), required: false, type: .string) + AWSShapeMember(label: "Tags", required: false, type: .map), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. public let accountId: String - /// An opaque string used for pagination. This value specifies the job at which the listing of jobs should begin. Get the marker value from a previous List Jobs response. You only need to include the marker if you are continuing the pagination of results started in a previous List Jobs request. - public let marker: String? - /// The maximum number of jobs to be returned. The default limit is 1000. The number of jobs returned might be fewer than the specified limit, but the number of returned jobs never exceeds the limit. - public let limit: String? + /// The tags to add to the vault. Each tag is composed of a key and a value. The value can be an empty string. + public let tags: [String: String]? /// The name of the vault. public let vaultName: String - /// The type of job status to return. You can specify the following values: InProgress, Succeeded, or Failed. - public let statuscode: String? - /// The state of the jobs to return. You can specify true or false. - public let completed: String? - public init(accountId: String, marker: String? = nil, limit: String? = nil, vaultName: String, statuscode: String? = nil, completed: String? = nil) { + public init(accountId: String, tags: [String: String]? = nil, vaultName: String) { self.accountId = accountId - self.marker = marker - self.limit = limit + self.tags = tags self.vaultName = vaultName - self.statuscode = statuscode - self.completed = completed } private enum CodingKeys: String, CodingKey { case accountId = "accountId" - case marker = "marker" - case limit = "limit" + case tags = "Tags" case vaultName = "vaultName" - case statuscode = "statuscode" - case completed = "completed" } } - public struct DeleteVaultInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + public enum ExpressionType: String, CustomStringConvertible, Codable { + case sql = "SQL" + public var description: String { return self.rawValue } + } + + public struct SelectParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OutputSerialization", required: false, type: .structure), + AWSShapeMember(label: "ExpressionType", required: false, type: .enum), + AWSShapeMember(label: "Expression", required: false, type: .string), + AWSShapeMember(label: "InputSerialization", required: false, type: .structure) ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The name of the vault. - public let vaultName: String + /// Describes how the results of the select job are serialized. + public let outputSerialization: OutputSerialization? + /// The type of the provided expression, for example SQL. + public let expressionType: ExpressionType? + /// The expression that is used to select the object. + public let expression: String? + /// Describes the serialization format of the object. + public let inputSerialization: InputSerialization? - public init(accountId: String, vaultName: String) { - self.accountId = accountId - self.vaultName = vaultName + public init(outputSerialization: OutputSerialization? = nil, expressionType: ExpressionType? = nil, expression: String? = nil, inputSerialization: InputSerialization? = nil) { + self.outputSerialization = outputSerialization + self.expressionType = expressionType + self.expression = expression + self.inputSerialization = inputSerialization } private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case vaultName = "vaultName" + case outputSerialization = "OutputSerialization" + case expressionType = "ExpressionType" + case expression = "Expression" + case inputSerialization = "InputSerialization" } } public struct DeleteVaultAccessPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) ] @@ -695,62 +442,24 @@ extension Glacier { } } - public struct InitiateJobInput: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "jobParameters" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "jobParameters", required: false, type: .structure), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// Provides options for specifying job information. - public let jobParameters: JobParameters? - /// The name of the vault. - public let vaultName: String - - public init(accountId: String, jobParameters: JobParameters? = nil, vaultName: String) { - self.accountId = accountId - self.jobParameters = jobParameters - self.vaultName = vaultName - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case jobParameters = "jobParameters" - case vaultName = "vaultName" - } - } - - public struct ArchiveCreationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "archiveId", location: .header(locationName: "x-amz-archive-id"), required: false, type: .string), - AWSShapeMember(label: "location", location: .header(locationName: "Location"), required: false, type: .string), - AWSShapeMember(label: "checksum", location: .header(locationName: "x-amz-sha256-tree-hash"), required: false, type: .string) + public struct InputSerialization: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "csv", required: false, type: .structure) ] - /// The ID of the archive. This value is also included as part of the location. - public let archiveId: String? - /// The relative URI path of the newly added archive resource. - public let location: String? - /// The checksum of the archive computed by Amazon Glacier. - public let checksum: String? + /// Describes the serialization of a CSV-encoded object. + public let csv: CSVInput? - public init(archiveId: String? = nil, location: String? = nil, checksum: String? = nil) { - self.archiveId = archiveId - self.location = location - self.checksum = checksum + public init(csv: CSVInput? = nil) { + self.csv = csv } private enum CodingKeys: String, CodingKey { - case archiveId = "x-amz-archive-id" - case location = "Location" - case checksum = "x-amz-sha256-tree-hash" + case csv = "csv" } } public struct ListTagsForVaultOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: false, type: .map) ] /// The tags attached to the vault. Each tag is composed of a key and a value. @@ -773,7 +482,7 @@ extension Glacier { } public struct CreateVaultOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "location", location: .header(locationName: "Location"), required: false, type: .string) ] /// The URI of the vault that was created. @@ -788,29 +497,8 @@ extension Glacier { } } - public struct InitiateJobOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "jobId", location: .header(locationName: "x-amz-job-id"), required: false, type: .string), - AWSShapeMember(label: "location", location: .header(locationName: "Location"), required: false, type: .string) - ] - /// The ID of the job. - public let jobId: String? - /// The relative URI path of the job. - public let location: String? - - public init(jobId: String? = nil, location: String? = nil) { - self.jobId = jobId - self.location = location - } - - private enum CodingKeys: String, CodingKey { - case jobId = "x-amz-job-id" - case location = "Location" - } - } - public struct ListVaultsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "VaultList", required: false, type: .list) ] @@ -831,19 +519,22 @@ extension Glacier { } public struct GlacierJobDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VaultARN", required: false, type: .string), AWSShapeMember(label: "CompletionDate", required: false, type: .string), + AWSShapeMember(label: "SelectParameters", required: false, type: .structure), AWSShapeMember(label: "InventorySizeInBytes", required: false, type: .long), - AWSShapeMember(label: "CreationDate", required: false, type: .string), AWSShapeMember(label: "ArchiveId", required: false, type: .string), AWSShapeMember(label: "SNSTopic", required: false, type: .string), + AWSShapeMember(label: "CreationDate", required: false, type: .string), AWSShapeMember(label: "ArchiveSHA256TreeHash", required: false, type: .string), AWSShapeMember(label: "JobId", required: false, type: .string), AWSShapeMember(label: "SHA256TreeHash", required: false, type: .string), AWSShapeMember(label: "Action", required: false, type: .enum), AWSShapeMember(label: "RetrievalByteRange", required: false, type: .string), + AWSShapeMember(label: "JobOutputPath", required: false, type: .string), AWSShapeMember(label: "InventoryRetrievalParameters", required: false, type: .structure), + AWSShapeMember(label: "OutputLocation", required: false, type: .structure), AWSShapeMember(label: "StatusCode", required: false, type: .enum), AWSShapeMember(label: "ArchiveSizeInBytes", required: false, type: .long), AWSShapeMember(label: "Completed", required: false, type: .boolean), @@ -851,56 +542,65 @@ extension Glacier { AWSShapeMember(label: "StatusMessage", required: false, type: .string), AWSShapeMember(label: "Tier", required: false, type: .string) ] - /// The Amazon Resource Name (ARN) of the vault from which the archive retrieval was requested. + /// The Amazon Resource Name (ARN) of the vault from which an archive retrieval was requested. public let vaultARN: String? - /// The UTC time that the archive retrieval request completed. While the job is in progress, the value will be null. + /// The UTC time that the job request completed. While the job is in progress, the value is null. public let completionDate: String? - /// For an InventoryRetrieval job, this is the size in bytes of the inventory requested for download. For the ArchiveRetrieval job, the value is null. + /// Contains the parameters that define a select job. + public let selectParameters: SelectParameters? + /// For an inventory retrieval job, this value is the size in bytes of the inventory requested for download. For an archive retrieval or select job, this value is null. public let inventorySizeInBytes: Int64? - /// The UTC date when the job was created. A string representation of ISO 8601 date format, for example, "2012-03-20T17:03:43.221Z". - public let creationDate: String? - /// For an ArchiveRetrieval job, this is the archive ID requested for download. Otherwise, this field is null. + /// The archive ID requested for a select job or archive retrieval. Otherwise, this field is null. public let archiveId: String? - /// An Amazon Simple Notification Service (Amazon SNS) topic that receives notification. + /// An Amazon SNS topic that receives notification. public let sNSTopic: String? - /// The SHA256 tree hash of the entire archive for an archive retrieval. For inventory retrieval jobs, this field is null. + /// The UTC date when the job was created. This value is a string representation of ISO 8601 date format, for example "2012-03-20T17:03:43.221Z". + public let creationDate: String? + /// The SHA256 tree hash of the entire archive for an archive retrieval. For inventory retrieval or select jobs, this field is null. public let archiveSHA256TreeHash: String? /// An opaque string that identifies an Amazon Glacier job. public let jobId: String? - /// For an ArchiveRetrieval job, it is the checksum of the archive. Otherwise, the value is null. The SHA256 tree hash value for the requested range of an archive. If the Initiate a Job request for an archive specified a tree-hash aligned range, then this field returns a value. For the specific case when the whole archive is retrieved, this value is the same as the ArchiveSHA256TreeHash value. This field is null in the following situations: Archive retrieval jobs that specify a range that is not tree-hash aligned. Archival jobs that specify a range that is equal to the whole archive and the job status is InProgress. Inventory jobs. + /// For an archive retrieval job, this value is the checksum of the archive. Otherwise, this value is null. The SHA256 tree hash value for the requested range of an archive. If the InitiateJob request for an archive specified a tree-hash aligned range, then this field returns a value. If the whole archive is retrieved, this value is the same as the ArchiveSHA256TreeHash value. This field is null for the following: Archive retrieval jobs that specify a range that is not tree-hash aligned Archival jobs that specify a range that is equal to the whole archive, when the job status is InProgress Inventory jobs Select jobs public let sHA256TreeHash: String? - /// The job type. It is either ArchiveRetrieval or InventoryRetrieval. + /// The job type. This value is either ArchiveRetrieval, InventoryRetrieval, or Select. public let action: ActionCode? - /// The retrieved byte range for archive retrieval jobs in the form "StartByteValue-EndByteValue" If no range was specified in the archive retrieval, then the whole archive is retrieved and StartByteValue equals 0 and EndByteValue equals the size of the archive minus 1. For inventory retrieval jobs this field is null. + /// The retrieved byte range for archive retrieval jobs in the form StartByteValue-EndByteValue. If no range was specified in the archive retrieval, then the whole archive is retrieved. In this case, StartByteValue equals 0 and EndByteValue equals the size of the archive minus 1. For inventory retrieval or select jobs, this field is null. public let retrievalByteRange: String? + /// Contains the job output location. + public let jobOutputPath: String? /// Parameters used for range inventory retrieval. public let inventoryRetrievalParameters: InventoryRetrievalJobDescription? + /// Contains the location where the data from the select job is stored. + public let outputLocation: OutputLocation? /// The status code can be InProgress, Succeeded, or Failed, and indicates the status of the job. public let statusCode: StatusCode? - /// For an ArchiveRetrieval job, this is the size in bytes of the archive being requested for download. For the InventoryRetrieval job, the value is null. + /// For an archive retrieval job, this value is the size in bytes of the archive being requested for download. For an inventory retrieval or select job, this value is null. public let archiveSizeInBytes: Int64? - /// The job status. When a job is completed, you get the job's output. + /// The job status. When a job is completed, you get the job's output using Get Job Output (GET output). public let completed: Bool? - /// The job description you provided when you initiated the job. + /// The job description provided when initiating the job. public let jobDescription: String? /// A friendly message that describes the job status. public let statusMessage: String? /// The retrieval option to use for the archive retrieval. Valid values are Expedited, Standard, or Bulk. Standard is the default. public let tier: String? - public init(vaultARN: String? = nil, completionDate: String? = nil, inventorySizeInBytes: Int64? = nil, creationDate: String? = nil, archiveId: String? = nil, sNSTopic: String? = nil, archiveSHA256TreeHash: String? = nil, jobId: String? = nil, sHA256TreeHash: String? = nil, action: ActionCode? = nil, retrievalByteRange: String? = nil, inventoryRetrievalParameters: InventoryRetrievalJobDescription? = nil, statusCode: StatusCode? = nil, archiveSizeInBytes: Int64? = nil, completed: Bool? = nil, jobDescription: String? = nil, statusMessage: String? = nil, tier: String? = nil) { + public init(vaultARN: String? = nil, completionDate: String? = nil, selectParameters: SelectParameters? = nil, inventorySizeInBytes: Int64? = nil, archiveId: String? = nil, sNSTopic: String? = nil, creationDate: String? = nil, archiveSHA256TreeHash: String? = nil, jobId: String? = nil, sHA256TreeHash: String? = nil, action: ActionCode? = nil, retrievalByteRange: String? = nil, jobOutputPath: String? = nil, inventoryRetrievalParameters: InventoryRetrievalJobDescription? = nil, outputLocation: OutputLocation? = nil, statusCode: StatusCode? = nil, archiveSizeInBytes: Int64? = nil, completed: Bool? = nil, jobDescription: String? = nil, statusMessage: String? = nil, tier: String? = nil) { self.vaultARN = vaultARN self.completionDate = completionDate + self.selectParameters = selectParameters self.inventorySizeInBytes = inventorySizeInBytes - self.creationDate = creationDate self.archiveId = archiveId self.sNSTopic = sNSTopic + self.creationDate = creationDate self.archiveSHA256TreeHash = archiveSHA256TreeHash self.jobId = jobId self.sHA256TreeHash = sHA256TreeHash self.action = action self.retrievalByteRange = retrievalByteRange + self.jobOutputPath = jobOutputPath self.inventoryRetrievalParameters = inventoryRetrievalParameters + self.outputLocation = outputLocation self.statusCode = statusCode self.archiveSizeInBytes = archiveSizeInBytes self.completed = completed @@ -912,16 +612,19 @@ extension Glacier { private enum CodingKeys: String, CodingKey { case vaultARN = "VaultARN" case completionDate = "CompletionDate" + case selectParameters = "SelectParameters" case inventorySizeInBytes = "InventorySizeInBytes" - case creationDate = "CreationDate" case archiveId = "ArchiveId" case sNSTopic = "SNSTopic" + case creationDate = "CreationDate" case archiveSHA256TreeHash = "ArchiveSHA256TreeHash" case jobId = "JobId" case sHA256TreeHash = "SHA256TreeHash" case action = "Action" case retrievalByteRange = "RetrievalByteRange" + case jobOutputPath = "JobOutputPath" case inventoryRetrievalParameters = "InventoryRetrievalParameters" + case outputLocation = "OutputLocation" case statusCode = "StatusCode" case archiveSizeInBytes = "ArchiveSizeInBytes" case completed = "Completed" @@ -932,7 +635,7 @@ extension Glacier { } public struct ProvisionedCapacityDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartDate", required: false, type: .string), AWSShapeMember(label: "CapacityId", required: false, type: .string), AWSShapeMember(label: "ExpirationDate", required: false, type: .string) @@ -957,75 +660,776 @@ extension Glacier { } } - public struct GetVaultLockOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CreationDate", required: false, type: .string), - AWSShapeMember(label: "Policy", required: false, type: .string), - AWSShapeMember(label: "State", required: false, type: .string), - AWSShapeMember(label: "ExpirationDate", required: false, type: .string) + public enum CannedACL: String, CustomStringConvertible, Codable { + case `private` = "private" + case publicRead = "public-read" + case publicReadWrite = "public-read-write" + case awsExecRead = "aws-exec-read" + case authenticatedRead = "authenticated-read" + case bucketOwnerRead = "bucket-owner-read" + case bucketOwnerFullControl = "bucket-owner-full-control" + public var description: String { return self.rawValue } + } + + public struct CSVOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FieldDelimiter", required: false, type: .string), + AWSShapeMember(label: "QuoteFields", required: false, type: .enum), + AWSShapeMember(label: "RecordDelimiter", required: false, type: .string), + AWSShapeMember(label: "QuoteCharacter", required: false, type: .string), + AWSShapeMember(label: "QuoteEscapeCharacter", required: false, type: .string) ] - /// The UTC date and time at which the vault lock was put into the InProgress state. - public let creationDate: String? - /// The vault lock policy as a JSON string, which uses "\" as an escape character. - public let policy: String? - /// The state of the vault lock. InProgress or Locked. - public let state: String? - /// The UTC date and time at which the lock ID expires. This value can be null if the vault lock is in a Locked state. - public let expirationDate: String? + /// A value used to separate individual fields from each other within a record. + public let fieldDelimiter: String? + /// A value that indicates whether all output fields should be contained within quotation marks. + public let quoteFields: QuoteFields? + /// A value used to separate individual records from each other. + public let recordDelimiter: String? + /// A value used as an escape character where the field delimiter is part of the value. + public let quoteCharacter: String? + /// A single character used for escaping the quotation-mark character inside an already escaped value. + public let quoteEscapeCharacter: String? - public init(creationDate: String? = nil, policy: String? = nil, state: String? = nil, expirationDate: String? = nil) { - self.creationDate = creationDate - self.policy = policy - self.state = state - self.expirationDate = expirationDate + public init(fieldDelimiter: String? = nil, quoteFields: QuoteFields? = nil, recordDelimiter: String? = nil, quoteCharacter: String? = nil, quoteEscapeCharacter: String? = nil) { + self.fieldDelimiter = fieldDelimiter + self.quoteFields = quoteFields + self.recordDelimiter = recordDelimiter + self.quoteCharacter = quoteCharacter + self.quoteEscapeCharacter = quoteEscapeCharacter } private enum CodingKeys: String, CodingKey { - case creationDate = "CreationDate" - case policy = "Policy" - case state = "State" - case expirationDate = "ExpirationDate" + case fieldDelimiter = "FieldDelimiter" + case quoteFields = "QuoteFields" + case recordDelimiter = "RecordDelimiter" + case quoteCharacter = "QuoteCharacter" + case quoteEscapeCharacter = "QuoteEscapeCharacter" } } - public struct InventoryRetrievalJobDescription: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Format", required: false, type: .string), - AWSShapeMember(label: "StartDate", required: false, type: .string), - AWSShapeMember(label: "Limit", required: false, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "EndDate", required: false, type: .string) + public struct ListVaultsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .string) ] - /// The output format for the vault inventory list, which is set by the InitiateJob request when initiating a job to retrieve a vault inventory. Valid values are CSV and JSON. - public let format: String? - /// The start of the date range in Universal Coordinated Time (UTC) for vault inventory retrieval that includes archives created on or after this date. This value should be a string in the ISO 8601 date format, for example 2013-03-20T17:03:43Z. - public let startDate: String? - /// The maximum number of inventory items returned per vault inventory retrieval request. This limit is set when initiating the job with the a InitiateJob request. - public let limit: String? - /// An opaque string that represents where to continue pagination of the vault inventory retrieval results. You use the marker in a new InitiateJob request to obtain additional inventory items. If there are no more inventory items, this value is null. For more information, see Range Inventory Retrieval. + /// A string used for pagination. The marker specifies the vault ARN after which the listing of vaults should begin. + public let marker: String? + /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The maximum number of vaults to be returned. The default limit is 1000. The number of vaults returned might be fewer than the specified limit, but the number of returned vaults never exceeds the limit. + public let limit: String? + + public init(marker: String? = nil, accountId: String, limit: String? = nil) { + self.marker = marker + self.accountId = accountId + self.limit = limit + } + + private enum CodingKeys: String, CodingKey { + case marker = "marker" + case accountId = "accountId" + case limit = "limit" + } + } + + public struct GetVaultAccessPolicyOutput: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "policy" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policy", required: false, type: .structure) + ] + /// Contains the returned vault access policy as a JSON string. + public let policy: VaultAccessPolicy? + + public init(policy: VaultAccessPolicy? = nil) { + self.policy = policy + } + + private enum CodingKeys: String, CodingKey { + case policy = "policy" + } + } + + public struct OutputLocation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3", required: false, type: .structure) + ] + /// Describes an S3 location that will receive the results of the restore request. + public let s3: S3Location? + + public init(s3: S3Location? = nil) { + self.s3 = s3 + } + + private enum CodingKeys: String, CodingKey { + case s3 = "S3" + } + } + + public struct ListPartsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "uploadId", location: .uri(locationName: "uploadId"), required: true, type: .string), + AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .string), + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The upload ID of the multipart upload. + public let uploadId: String + /// The maximum number of parts to be returned. The default limit is 1000. The number of parts returned might be fewer than the specified limit, but the number of returned parts never exceeds the limit. + public let limit: String? + /// An opaque string used for pagination. This value specifies the part at which the listing of parts should begin. Get the marker value from the response of a previous List Parts response. You need only include the marker if you are continuing the pagination of results started in a previous List Parts request. + public let marker: String? + /// The name of the vault. + public let vaultName: String + + public init(accountId: String, uploadId: String, limit: String? = nil, marker: String? = nil, vaultName: String) { + self.accountId = accountId + self.uploadId = uploadId + self.limit = limit + self.marker = marker + self.vaultName = vaultName + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case uploadId = "uploadId" + case limit = "limit" + case marker = "marker" + case vaultName = "vaultName" + } + } + + public struct DescribeVaultInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The name of the vault. + public let vaultName: String + + public init(accountId: String, vaultName: String) { + self.accountId = accountId + self.vaultName = vaultName + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case vaultName = "vaultName" + } + } + + public struct VaultLockPolicy: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Policy", required: false, type: .string) + ] + /// The vault lock policy. + public let policy: String? + + public init(policy: String? = nil) { + self.policy = policy + } + + private enum CodingKeys: String, CodingKey { + case policy = "Policy" + } + } + + public struct SetVaultAccessPolicyInput: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "policy" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "policy", required: false, type: .structure), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The vault access policy as a JSON string. + public let policy: VaultAccessPolicy? + /// The name of the vault. + public let vaultName: String + + public init(accountId: String, policy: VaultAccessPolicy? = nil, vaultName: String) { + self.accountId = accountId + self.policy = policy + self.vaultName = vaultName + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case policy = "policy" + case vaultName = "vaultName" + } + } + + public enum ActionCode: String, CustomStringConvertible, Codable { + case archiveretrieval = "ArchiveRetrieval" + case inventoryretrieval = "InventoryRetrieval" + case select = "Select" + public var description: String { return self.rawValue } + } + + public struct ListProvisionedCapacityInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string) + ] + /// The AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, don't include any hyphens ('-') in the ID. + public let accountId: String + + public init(accountId: String) { + self.accountId = accountId + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + } + } + + public struct GetJobOutputOutput: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "body" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "contentRange", location: .header(locationName: "Content-Range"), required: false, type: .string), + AWSShapeMember(label: "status", required: false, type: .integer), + AWSShapeMember(label: "contentType", location: .header(locationName: "Content-Type"), required: false, type: .string), + AWSShapeMember(label: "acceptRanges", location: .header(locationName: "Accept-Ranges"), required: false, type: .string), + AWSShapeMember(label: "body", required: false, type: .blob), + AWSShapeMember(label: "archiveDescription", location: .header(locationName: "x-amz-archive-description"), required: false, type: .string), + AWSShapeMember(label: "checksum", location: .header(locationName: "x-amz-sha256-tree-hash"), required: false, type: .string) + ] + /// The range of bytes returned by Amazon Glacier. If only partial output is downloaded, the response provides the range of bytes Amazon Glacier returned. For example, bytes 0-1048575/8388608 returns the first 1 MB from 8 MB. + public let contentRange: String? + /// The HTTP response code for a job output request. The value depends on whether a range was specified in the request. + public let status: Int32? + /// The Content-Type depends on whether the job output is an archive or a vault inventory. For archive data, the Content-Type is application/octet-stream. For vault inventory, if you requested CSV format when you initiated the job, the Content-Type is text/csv. Otherwise, by default, vault inventory is returned as JSON, and the Content-Type is application/json. + public let contentType: String? + /// Indicates the range units accepted. For more information, see RFC2616. + public let acceptRanges: String? + /// The job data, either archive data or inventory data. + public let body: Data? + /// The description of an archive. + public let archiveDescription: String? + /// The checksum of the data in the response. This header is returned only when retrieving the output for an archive retrieval job. Furthermore, this header appears only under the following conditions: You get the entire range of the archive. You request a range to return of the archive that starts and ends on a multiple of 1 MB. For example, if you have an 3.1 MB archive and you specify a range to return that starts at 1 MB and ends at 2 MB, then the x-amz-sha256-tree-hash is returned as a response header. You request a range of the archive to return that starts on a multiple of 1 MB and goes to the end of the archive. For example, if you have a 3.1 MB archive and you specify a range that starts at 2 MB and ends at 3.1 MB (the end of the archive), then the x-amz-sha256-tree-hash is returned as a response header. + public let checksum: String? + + public init(contentRange: String? = nil, status: Int32? = nil, contentType: String? = nil, acceptRanges: String? = nil, body: Data? = nil, archiveDescription: String? = nil, checksum: String? = nil) { + self.contentRange = contentRange + self.status = status + self.contentType = contentType + self.acceptRanges = acceptRanges + self.body = body + self.archiveDescription = archiveDescription + self.checksum = checksum + } + + private enum CodingKeys: String, CodingKey { + case contentRange = "Content-Range" + case status = "status" + case contentType = "Content-Type" + case acceptRanges = "Accept-Ranges" + case body = "body" + case archiveDescription = "x-amz-archive-description" + case checksum = "x-amz-sha256-tree-hash" + } + } + + public struct Grant: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Permission", required: false, type: .enum), + AWSShapeMember(label: "Grantee", required: false, type: .structure) + ] + /// Specifies the permission given to the grantee. + public let permission: Permission? + /// The grantee. + public let grantee: Grantee? + + public init(permission: Permission? = nil, grantee: Grantee? = nil) { + self.permission = permission + self.grantee = grantee + } + + private enum CodingKeys: String, CodingKey { + case permission = "Permission" + case grantee = "Grantee" + } + } + + public struct UploadMultipartPartOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "checksum", location: .header(locationName: "x-amz-sha256-tree-hash"), required: false, type: .string) + ] + /// The SHA256 tree hash that Amazon Glacier computed for the uploaded part. + public let checksum: String? + + public init(checksum: String? = nil) { + self.checksum = checksum + } + + private enum CodingKeys: String, CodingKey { + case checksum = "x-amz-sha256-tree-hash" + } + } + + public struct CSVInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FieldDelimiter", required: false, type: .string), + AWSShapeMember(label: "FileHeaderInfo", required: false, type: .enum), + AWSShapeMember(label: "QuoteEscapeCharacter", required: false, type: .string), + AWSShapeMember(label: "Comments", required: false, type: .string), + AWSShapeMember(label: "RecordDelimiter", required: false, type: .string), + AWSShapeMember(label: "QuoteCharacter", required: false, type: .string) + ] + /// A value used to separate individual fields from each other within a record. + public let fieldDelimiter: String? + /// Describes the first line of input. Valid values are None, Ignore, and Use. + public let fileHeaderInfo: FileHeaderInfo? + /// A single character used for escaping the quotation-mark character inside an already escaped value. + public let quoteEscapeCharacter: String? + /// A single character used to indicate that a row should be ignored when the character is present at the start of that row. + public let comments: String? + /// A value used to separate individual records from each other. + public let recordDelimiter: String? + /// A value used as an escape character where the field delimiter is part of the value. + public let quoteCharacter: String? + + public init(fieldDelimiter: String? = nil, fileHeaderInfo: FileHeaderInfo? = nil, quoteEscapeCharacter: String? = nil, comments: String? = nil, recordDelimiter: String? = nil, quoteCharacter: String? = nil) { + self.fieldDelimiter = fieldDelimiter + self.fileHeaderInfo = fileHeaderInfo + self.quoteEscapeCharacter = quoteEscapeCharacter + self.comments = comments + self.recordDelimiter = recordDelimiter + self.quoteCharacter = quoteCharacter + } + + private enum CodingKeys: String, CodingKey { + case fieldDelimiter = "FieldDelimiter" + case fileHeaderInfo = "FileHeaderInfo" + case quoteEscapeCharacter = "QuoteEscapeCharacter" + case comments = "Comments" + case recordDelimiter = "RecordDelimiter" + case quoteCharacter = "QuoteCharacter" + } + } + + public struct ListJobsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "JobList", required: false, type: .list) + ] + /// An opaque string used for pagination that specifies the job at which the listing of jobs should begin. You get the marker value from a previous List Jobs response. You only need to include the marker if you are continuing the pagination of the results started in a previous List Jobs request. + public let marker: String? + /// A list of job objects. Each job object contains metadata describing the job. + public let jobList: [GlacierJobDescription]? + + public init(marker: String? = nil, jobList: [GlacierJobDescription]? = nil) { + self.marker = marker + self.jobList = jobList + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case jobList = "JobList" + } + } + + public struct OutputSerialization: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "csv", required: false, type: .structure) + ] + /// Describes the serialization of CSV-encoded query results. + public let csv: CSVOutput? + + public init(csv: CSVOutput? = nil) { + self.csv = csv + } + + private enum CodingKeys: String, CodingKey { + case csv = "csv" + } + } + + public struct GetVaultAccessPolicyInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The name of the vault. + public let vaultName: String + + public init(accountId: String, vaultName: String) { + self.accountId = accountId + self.vaultName = vaultName + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case vaultName = "vaultName" + } + } + + public struct DescribeJobInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The ID of the job to describe. + public let jobId: String + /// The name of the vault. + public let vaultName: String + + public init(accountId: String, jobId: String, vaultName: String) { + self.accountId = accountId + self.jobId = jobId + self.vaultName = vaultName + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case jobId = "jobId" + case vaultName = "vaultName" + } + } + + public enum StorageClass: String, CustomStringConvertible, Codable { + case standard = "STANDARD" + case reducedRedundancy = "REDUCED_REDUNDANCY" + case standardIa = "STANDARD_IA" + public var description: String { return self.rawValue } + } + + public struct CompleteVaultLockInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "lockId", location: .uri(locationName: "lockId"), required: true, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The lockId value is the lock ID obtained from a InitiateVaultLock request. + public let lockId: String + /// The name of the vault. + public let vaultName: String + + public init(accountId: String, lockId: String, vaultName: String) { + self.accountId = accountId + self.lockId = lockId + self.vaultName = vaultName + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case lockId = "lockId" + case vaultName = "vaultName" + } + } + + public struct InitiateVaultLockOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "lockId", location: .header(locationName: "x-amz-lock-id"), required: false, type: .string) + ] + /// The lock ID, which is used to complete the vault locking process. + public let lockId: String? + + public init(lockId: String? = nil) { + self.lockId = lockId + } + + private enum CodingKeys: String, CodingKey { + case lockId = "x-amz-lock-id" + } + } + + public struct SetDataRetrievalPolicyInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Policy", required: false, type: .structure), + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string) + ] + /// The data retrieval policy in JSON format. + public let policy: DataRetrievalPolicy? + /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + + public init(policy: DataRetrievalPolicy? = nil, accountId: String) { + self.policy = policy + self.accountId = accountId + } + + private enum CodingKeys: String, CodingKey { + case policy = "Policy" + case accountId = "accountId" + } + } + + public struct S3Location: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tagging", required: false, type: .map), + AWSShapeMember(label: "Encryption", required: false, type: .structure), + AWSShapeMember(label: "Prefix", required: false, type: .string), + AWSShapeMember(label: "AccessControlList", required: false, type: .list), + AWSShapeMember(label: "StorageClass", required: false, type: .enum), + AWSShapeMember(label: "BucketName", required: false, type: .string), + AWSShapeMember(label: "CannedACL", required: false, type: .enum), + AWSShapeMember(label: "UserMetadata", required: false, type: .map) + ] + /// The tag-set that is applied to the restore results. + public let tagging: [String: String]? + /// Contains information about the encryption used to store the job results in Amazon S3. + public let encryption: Encryption? + /// The prefix that is prepended to the restore results for this request. + public let prefix: String? + /// A list of grants that control access to the staged results. + public let accessControlList: [Grant]? + /// The storage class used to store the restore results. + public let storageClass: StorageClass? + /// The name of the bucket where the restore results are stored. + public let bucketName: String? + /// The canned ACL to apply to the restore results. + public let cannedACL: CannedACL? + /// A map of metadata to store with the restore results in Amazon S3. + public let userMetadata: [String: String]? + + public init(tagging: [String: String]? = nil, encryption: Encryption? = nil, prefix: String? = nil, accessControlList: [Grant]? = nil, storageClass: StorageClass? = nil, bucketName: String? = nil, cannedACL: CannedACL? = nil, userMetadata: [String: String]? = nil) { + self.tagging = tagging + self.encryption = encryption + self.prefix = prefix + self.accessControlList = accessControlList + self.storageClass = storageClass + self.bucketName = bucketName + self.cannedACL = cannedACL + self.userMetadata = userMetadata + } + + private enum CodingKeys: String, CodingKey { + case tagging = "Tagging" + case encryption = "Encryption" + case prefix = "Prefix" + case accessControlList = "AccessControlList" + case storageClass = "StorageClass" + case bucketName = "BucketName" + case cannedACL = "CannedACL" + case userMetadata = "UserMetadata" + } + } + + public struct DeleteVaultNotificationsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The name of the vault. + public let vaultName: String + + public init(accountId: String, vaultName: String) { + self.accountId = accountId + self.vaultName = vaultName + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case vaultName = "vaultName" + } + } + + public struct InitiateMultipartUploadInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "archiveDescription", location: .header(locationName: "x-amz-archive-description"), required: false, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string), + AWSShapeMember(label: "partSize", location: .header(locationName: "x-amz-part-size"), required: false, type: .string) + ] + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The archive description that you are uploading in parts. The part size must be a megabyte (1024 KB) multiplied by a power of 2, for example 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB (4096 MB). + public let archiveDescription: String? + /// The name of the vault. + public let vaultName: String + /// The size of each part except the last, in bytes. The last part can be smaller than this part size. + public let partSize: String? + + public init(accountId: String, archiveDescription: String? = nil, vaultName: String, partSize: String? = nil) { + self.accountId = accountId + self.archiveDescription = archiveDescription + self.vaultName = vaultName + self.partSize = partSize + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case archiveDescription = "x-amz-archive-description" + case vaultName = "vaultName" + case partSize = "x-amz-part-size" + } + } + + public struct ListMultipartUploadsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "UploadsList", required: false, type: .list) + ] + /// An opaque string that represents where to continue pagination of the results. You use the marker in a new List Multipart Uploads request to obtain more uploads in the list. If there are no more uploads, this value is null. public let marker: String? - /// The end of the date range in UTC for vault inventory retrieval that includes archives created before this date. This value should be a string in the ISO 8601 date format, for example 2013-03-20T17:03:43Z. - public let endDate: String? + /// A list of in-progress multipart uploads. + public let uploadsList: [UploadListElement]? + + public init(marker: String? = nil, uploadsList: [UploadListElement]? = nil) { + self.marker = marker + self.uploadsList = uploadsList + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case uploadsList = "UploadsList" + } + } + + public struct GetVaultLockInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The name of the vault. + public let vaultName: String + + public init(accountId: String, vaultName: String) { + self.accountId = accountId + self.vaultName = vaultName + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case vaultName = "vaultName" + } + } + + public struct PartListElement: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SHA256TreeHash", required: false, type: .string), + AWSShapeMember(label: "RangeInBytes", required: false, type: .string) + ] + /// The SHA256 tree hash value that Amazon Glacier calculated for the part. This field is never null. + public let sHA256TreeHash: String? + /// The byte range of a part, inclusive of the upper value of the range. + public let rangeInBytes: String? + + public init(sHA256TreeHash: String? = nil, rangeInBytes: String? = nil) { + self.sHA256TreeHash = sHA256TreeHash + self.rangeInBytes = rangeInBytes + } + + private enum CodingKeys: String, CodingKey { + case sHA256TreeHash = "SHA256TreeHash" + case rangeInBytes = "RangeInBytes" + } + } + + public struct GetDataRetrievalPolicyInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + + public init(accountId: String) { + self.accountId = accountId + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + } + } + + public struct GetJobOutputInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "range", location: .header(locationName: "Range"), required: false, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string), + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The range of bytes to retrieve from the output. For example, if you want to download the first 1,048,576 bytes, specify the range as bytes=0-1048575. By default, this operation downloads the entire output. If the job output is large, then you can use a range to retrieve a portion of the output. This allows you to download the entire output in smaller chunks of bytes. For example, suppose you have 1 GB of job output you want to download and you decide to download 128 MB chunks of data at a time, which is a total of eight Get Job Output requests. You use the following process to download the job output: Download a 128 MB chunk of output by specifying the appropriate byte range. Verify that all 128 MB of data was received. Along with the data, the response includes a SHA256 tree hash of the payload. You compute the checksum of the payload on the client and compare it with the checksum you received in the response to ensure you received all the expected data. Repeat steps 1 and 2 for all the eight 128 MB chunks of output data, each time specifying the appropriate byte range. After downloading all the parts of the job output, you have a list of eight checksum values. Compute the tree hash of these values to find the checksum of the entire output. Using the DescribeJob API, obtain job information of the job that provided you the output. The response includes the checksum of the entire archive stored in Amazon Glacier. You compare this value with the checksum you computed to ensure you have downloaded the entire archive content with no errors. + public let range: String? + /// The name of the vault. + public let vaultName: String + /// The job ID whose data is downloaded. + public let jobId: String + + public init(accountId: String, range: String? = nil, vaultName: String, jobId: String) { + self.accountId = accountId + self.range = range + self.vaultName = vaultName + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case range = "Range" + case vaultName = "vaultName" + case jobId = "jobId" + } + } + + public struct PurchaseProvisionedCapacityInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string) + ] + /// The AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, don't include any hyphens ('-') in the ID. + public let accountId: String + + public init(accountId: String) { + self.accountId = accountId + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + } + } + + public struct SetVaultNotificationsInput: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "vaultNotificationConfig" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "vaultNotificationConfig", required: false, type: .structure), + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + ] + /// Provides options for specifying notification configuration. + public let vaultNotificationConfig: VaultNotificationConfig? + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The name of the vault. + public let vaultName: String - public init(format: String? = nil, startDate: String? = nil, limit: String? = nil, marker: String? = nil, endDate: String? = nil) { - self.format = format - self.startDate = startDate - self.limit = limit - self.marker = marker - self.endDate = endDate + public init(vaultNotificationConfig: VaultNotificationConfig? = nil, accountId: String, vaultName: String) { + self.vaultNotificationConfig = vaultNotificationConfig + self.accountId = accountId + self.vaultName = vaultName } private enum CodingKeys: String, CodingKey { - case format = "Format" - case startDate = "StartDate" - case limit = "Limit" - case marker = "Marker" - case endDate = "EndDate" + case vaultNotificationConfig = "vaultNotificationConfig" + case accountId = "accountId" + case vaultName = "vaultName" } } - public struct GetVaultNotificationsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListTagsForVaultInput: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) ] @@ -1045,52 +1449,211 @@ extension Glacier { } } - public struct ListVaultsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + public struct DataRetrievalRule: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BytesPerHour", required: false, type: .long), + AWSShapeMember(label: "Strategy", required: false, type: .string) + ] + /// The maximum number of bytes that can be retrieved in an hour. This field is required only if the value of the Strategy field is BytesPerHour. Your PUT operation will be rejected if the Strategy field is not set to BytesPerHour and you set this field. + public let bytesPerHour: Int64? + /// The type of data retrieval policy to set. Valid values: BytesPerHour|FreeTier|None + public let strategy: String? + + public init(bytesPerHour: Int64? = nil, strategy: String? = nil) { + self.bytesPerHour = bytesPerHour + self.strategy = strategy + } + + private enum CodingKeys: String, CodingKey { + case bytesPerHour = "BytesPerHour" + case strategy = "Strategy" + } + } + + public struct InitiateJobInput: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "jobParameters" + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .string) + AWSShapeMember(label: "jobParameters", required: false, type: .structure), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) ] - /// A string used for pagination. The marker specifies the vault ARN after which the listing of vaults should begin. - public let marker: String? - /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. public let accountId: String - /// The maximum number of vaults to be returned. The default limit is 1000. The number of vaults returned might be fewer than the specified limit, but the number of returned vaults never exceeds the limit. - public let limit: String? + /// Provides options for specifying job information. + public let jobParameters: JobParameters? + /// The name of the vault. + public let vaultName: String - public init(marker: String? = nil, accountId: String, limit: String? = nil) { - self.marker = marker + public init(accountId: String, jobParameters: JobParameters? = nil, vaultName: String) { self.accountId = accountId - self.limit = limit + self.jobParameters = jobParameters + self.vaultName = vaultName } private enum CodingKeys: String, CodingKey { - case marker = "marker" case accountId = "accountId" - case limit = "limit" + case jobParameters = "jobParameters" + case vaultName = "vaultName" } } - public struct GetVaultAccessPolicyOutput: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "policy" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policy", required: false, type: .structure) + public struct ArchiveCreationOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "archiveId", location: .header(locationName: "x-amz-archive-id"), required: false, type: .string), + AWSShapeMember(label: "location", location: .header(locationName: "Location"), required: false, type: .string), + AWSShapeMember(label: "checksum", location: .header(locationName: "x-amz-sha256-tree-hash"), required: false, type: .string) ] - /// Contains the returned vault access policy as a JSON string. - public let policy: VaultAccessPolicy? + /// The ID of the archive. This value is also included as part of the location. + public let archiveId: String? + /// The relative URI path of the newly added archive resource. + public let location: String? + /// The checksum of the archive computed by Amazon Glacier. + public let checksum: String? - public init(policy: VaultAccessPolicy? = nil) { + public init(archiveId: String? = nil, location: String? = nil, checksum: String? = nil) { + self.archiveId = archiveId + self.location = location + self.checksum = checksum + } + + private enum CodingKeys: String, CodingKey { + case archiveId = "x-amz-archive-id" + case location = "Location" + case checksum = "x-amz-sha256-tree-hash" + } + } + + public struct InitiateJobOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "location", location: .header(locationName: "Location"), required: false, type: .string), + AWSShapeMember(label: "jobId", location: .header(locationName: "x-amz-job-id"), required: false, type: .string), + AWSShapeMember(label: "jobOutputPath", location: .header(locationName: "x-amz-job-output-path"), required: false, type: .string) + ] + /// The relative URI path of the job. + public let location: String? + /// The ID of the job. + public let jobId: String? + /// The path to the location of where the select results are stored. + public let jobOutputPath: String? + + public init(location: String? = nil, jobId: String? = nil, jobOutputPath: String? = nil) { + self.location = location + self.jobId = jobId + self.jobOutputPath = jobOutputPath + } + + private enum CodingKeys: String, CodingKey { + case location = "Location" + case jobId = "x-amz-job-id" + case jobOutputPath = "x-amz-job-output-path" + } + } + + public enum `Type`: String, CustomStringConvertible, Codable { + case amazoncustomerbyemail = "AmazonCustomerByEmail" + case canonicaluser = "CanonicalUser" + case group = "Group" + public var description: String { return self.rawValue } + } + + public enum FileHeaderInfo: String, CustomStringConvertible, Codable { + case use = "USE" + case ignore = "IGNORE" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct GetVaultLockOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "Policy", required: false, type: .string), + AWSShapeMember(label: "State", required: false, type: .string), + AWSShapeMember(label: "ExpirationDate", required: false, type: .string) + ] + /// The UTC date and time at which the vault lock was put into the InProgress state. + public let creationDate: String? + /// The vault lock policy as a JSON string, which uses "\" as an escape character. + public let policy: String? + /// The state of the vault lock. InProgress or Locked. + public let state: String? + /// The UTC date and time at which the lock ID expires. This value can be null if the vault lock is in a Locked state. + public let expirationDate: String? + + public init(creationDate: String? = nil, policy: String? = nil, state: String? = nil, expirationDate: String? = nil) { + self.creationDate = creationDate self.policy = policy + self.state = state + self.expirationDate = expirationDate } private enum CodingKeys: String, CodingKey { - case policy = "policy" + case creationDate = "CreationDate" + case policy = "Policy" + case state = "State" + case expirationDate = "ExpirationDate" + } + } + + public struct InventoryRetrievalJobDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Format", required: false, type: .string), + AWSShapeMember(label: "StartDate", required: false, type: .string), + AWSShapeMember(label: "Limit", required: false, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "EndDate", required: false, type: .string) + ] + /// The output format for the vault inventory list, which is set by the InitiateJob request when initiating a job to retrieve a vault inventory. Valid values are CSV and JSON. + public let format: String? + /// The start of the date range in Universal Coordinated Time (UTC) for vault inventory retrieval that includes archives created on or after this date. This value should be a string in the ISO 8601 date format, for example 2013-03-20T17:03:43Z. + public let startDate: String? + /// The maximum number of inventory items returned per vault inventory retrieval request. This limit is set when initiating the job with the a InitiateJob request. + public let limit: String? + /// An opaque string that represents where to continue pagination of the vault inventory retrieval results. You use the marker in a new InitiateJob request to obtain additional inventory items. If there are no more inventory items, this value is null. For more information, see Range Inventory Retrieval. + public let marker: String? + /// The end of the date range in UTC for vault inventory retrieval that includes archives created before this date. This value should be a string in the ISO 8601 date format, for example 2013-03-20T17:03:43Z. + public let endDate: String? + + public init(format: String? = nil, startDate: String? = nil, limit: String? = nil, marker: String? = nil, endDate: String? = nil) { + self.format = format + self.startDate = startDate + self.limit = limit + self.marker = marker + self.endDate = endDate + } + + private enum CodingKeys: String, CodingKey { + case format = "Format" + case startDate = "StartDate" + case limit = "Limit" + case marker = "Marker" + case endDate = "EndDate" + } + } + + public struct GetVaultNotificationsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) + ] + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + public let accountId: String + /// The name of the vault. + public let vaultName: String + + public init(accountId: String, vaultName: String) { + self.accountId = accountId + self.vaultName = vaultName + } + + private enum CodingKeys: String, CodingKey { + case accountId = "accountId" + case vaultName = "vaultName" } } public struct InitiateMultipartUploadOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uploadId", location: .header(locationName: "x-amz-multipart-upload-id"), required: false, type: .string), AWSShapeMember(label: "location", location: .header(locationName: "Location"), required: false, type: .string) ] @@ -1111,7 +1674,7 @@ extension Glacier { } public struct ListPartsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VaultARN", required: false, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ArchiveDescription", required: false, type: .string), @@ -1156,44 +1719,8 @@ extension Glacier { } } - public struct ListPartsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "uploadId", location: .uri(locationName: "uploadId"), required: true, type: .string), - AWSShapeMember(label: "limit", location: .querystring(locationName: "limit"), required: false, type: .string), - AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The upload ID of the multipart upload. - public let uploadId: String - /// The maximum number of parts to be returned. The default limit is 1000. The number of parts returned might be fewer than the specified limit, but the number of returned parts never exceeds the limit. - public let limit: String? - /// An opaque string used for pagination. This value specifies the part at which the listing of parts should begin. Get the marker value from the response of a previous List Parts response. You need only include the marker if you are continuing the pagination of results started in a previous List Parts request. - public let marker: String? - /// The name of the vault. - public let vaultName: String - - public init(accountId: String, uploadId: String, limit: String? = nil, marker: String? = nil, vaultName: String) { - self.accountId = accountId - self.uploadId = uploadId - self.limit = limit - self.marker = marker - self.vaultName = vaultName - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case uploadId = "uploadId" - case limit = "limit" - case marker = "marker" - case vaultName = "vaultName" - } - } - public struct VaultAccessPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: false, type: .string) ] /// The vault access policy. @@ -1201,40 +1728,55 @@ extension Glacier { public init(policy: String? = nil) { self.policy = policy - } - - private enum CodingKeys: String, CodingKey { - case policy = "Policy" - } - } - - public struct AbortVaultLockInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The name of the vault. - public let vaultName: String + } - public init(accountId: String, vaultName: String) { - self.accountId = accountId - self.vaultName = vaultName + private enum CodingKeys: String, CodingKey { + case policy = "Policy" + } + } + + public struct Grantee: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ID", required: false, type: .string), + AWSShapeMember(label: "EmailAddress", required: false, type: .string), + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "DisplayName", required: false, type: .string), + AWSShapeMember(label: "URI", required: false, type: .string) + ] + /// The canonical user ID of the grantee. + public let id: String? + /// Email address of the grantee. + public let emailAddress: String? + /// Type of grantee + public let `type`: `Type` + /// Screen name of the grantee. + public let displayName: String? + /// URI of the grantee group. + public let uri: String? + + public init(id: String? = nil, emailAddress: String? = nil, type: `Type`, displayName: String? = nil, uri: String? = nil) { + self.id = id + self.emailAddress = emailAddress + self.`type` = `type` + self.displayName = displayName + self.uri = uri } private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case vaultName = "vaultName" + case id = "ID" + case emailAddress = "EmailAddress" + case `type` = "Type" + case displayName = "DisplayName" + case uri = "URI" } } - public struct DescribeVaultInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct AbortVaultLockInput: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. public let accountId: String /// The name of the vault. public let vaultName: String @@ -1251,7 +1793,7 @@ extension Glacier { } public struct DeleteArchiveInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "archiveId", location: .uri(locationName: "archiveId"), required: true, type: .string), AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) @@ -1276,138 +1818,8 @@ extension Glacier { } } - public struct SetVaultAccessPolicyInput: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "policy" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "policy", required: false, type: .structure), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The vault access policy as a JSON string. - public let policy: VaultAccessPolicy? - /// The name of the vault. - public let vaultName: String - - public init(accountId: String, policy: VaultAccessPolicy? = nil, vaultName: String) { - self.accountId = accountId - self.policy = policy - self.vaultName = vaultName - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case policy = "policy" - case vaultName = "vaultName" - } - } - - public struct VaultLockPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Policy", required: false, type: .string) - ] - /// The vault lock policy. - public let policy: String? - - public init(policy: String? = nil) { - self.policy = policy - } - - private enum CodingKeys: String, CodingKey { - case policy = "Policy" - } - } - - public enum ActionCode: String, CustomStringConvertible, Codable { - case archiveretrieval = "ArchiveRetrieval" - case inventoryretrieval = "InventoryRetrieval" - public var description: String { return self.rawValue } - } - - public struct GetJobOutputOutput: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "body" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "contentRange", location: .header(locationName: "Content-Range"), required: false, type: .string), - AWSShapeMember(label: "status", required: false, type: .integer), - AWSShapeMember(label: "contentType", location: .header(locationName: "Content-Type"), required: false, type: .string), - AWSShapeMember(label: "acceptRanges", location: .header(locationName: "Accept-Ranges"), required: false, type: .string), - AWSShapeMember(label: "body", required: false, type: .blob), - AWSShapeMember(label: "archiveDescription", location: .header(locationName: "x-amz-archive-description"), required: false, type: .string), - AWSShapeMember(label: "checksum", location: .header(locationName: "x-amz-sha256-tree-hash"), required: false, type: .string) - ] - /// The range of bytes returned by Amazon Glacier. If only partial output is downloaded, the response provides the range of bytes Amazon Glacier returned. For example, bytes 0-1048575/8388608 returns the first 1 MB from 8 MB. - public let contentRange: String? - /// The HTTP response code for a job output request. The value depends on whether a range was specified in the request. - public let status: Int32? - /// The Content-Type depends on whether the job output is an archive or a vault inventory. For archive data, the Content-Type is application/octet-stream. For vault inventory, if you requested CSV format when you initiated the job, the Content-Type is text/csv. Otherwise, by default, vault inventory is returned as JSON, and the Content-Type is application/json. - public let contentType: String? - /// Indicates the range units accepted. For more information, see RFC2616. - public let acceptRanges: String? - /// The job data, either archive data or inventory data. - public let body: Data? - /// The description of an archive. - public let archiveDescription: String? - /// The checksum of the data in the response. This header is returned only when retrieving the output for an archive retrieval job. Furthermore, this header appears only under the following conditions: You get the entire range of the archive. You request a range to return of the archive that starts and ends on a multiple of 1 MB. For example, if you have an 3.1 MB archive and you specify a range to return that starts at 1 MB and ends at 2 MB, then the x-amz-sha256-tree-hash is returned as a response header. You request a range of the archive to return that starts on a multiple of 1 MB and goes to the end of the archive. For example, if you have a 3.1 MB archive and you specify a range that starts at 2 MB and ends at 3.1 MB (the end of the archive), then the x-amz-sha256-tree-hash is returned as a response header. - public let checksum: String? - - public init(contentRange: String? = nil, status: Int32? = nil, contentType: String? = nil, acceptRanges: String? = nil, body: Data? = nil, archiveDescription: String? = nil, checksum: String? = nil) { - self.contentRange = contentRange - self.status = status - self.contentType = contentType - self.acceptRanges = acceptRanges - self.body = body - self.archiveDescription = archiveDescription - self.checksum = checksum - } - - private enum CodingKeys: String, CodingKey { - case contentRange = "Content-Range" - case status = "status" - case contentType = "Content-Type" - case acceptRanges = "Accept-Ranges" - case body = "body" - case archiveDescription = "x-amz-archive-description" - case checksum = "x-amz-sha256-tree-hash" - } - } - - public struct ListProvisionedCapacityInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, don't include any hyphens ('-') in the ID. - public let accountId: String - - public init(accountId: String) { - self.accountId = accountId - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - } - } - - public struct UploadMultipartPartOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "checksum", location: .header(locationName: "x-amz-sha256-tree-hash"), required: false, type: .string) - ] - /// The SHA256 tree hash that Amazon Glacier computed for the uploaded part. - public let checksum: String? - - public init(checksum: String? = nil) { - self.checksum = checksum - } - - private enum CodingKeys: String, CodingKey { - case checksum = "x-amz-sha256-tree-hash" - } - } - public struct VaultNotificationConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Events", required: false, type: .list), AWSShapeMember(label: "SNSTopic", required: false, type: .string) ] @@ -1427,29 +1839,8 @@ extension Glacier { } } - public struct ListJobsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "JobList", required: false, type: .list) - ] - /// An opaque string used for pagination that specifies the job at which the listing of jobs should begin. You get the marker value from a previous List Jobs response. You only need to include the marker if you are continuing the pagination of the results started in a previous List Jobs request. - public let marker: String? - /// A list of job objects. Each job object contains metadata describing the job. - public let jobList: [GlacierJobDescription]? - - public init(marker: String? = nil, jobList: [GlacierJobDescription]? = nil) { - self.marker = marker - self.jobList = jobList - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case jobList = "JobList" - } - } - public struct DataRetrievalPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: false, type: .list) ] /// The policy rule. Although this is a list type, currently there must be only one rule, which contains a Strategy field and optionally a BytesPerHour field. @@ -1465,10 +1856,12 @@ extension Glacier { } public struct JobParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InventoryRetrievalParameters", required: false, type: .structure), + AWSShapeMember(label: "SelectParameters", required: false, type: .structure), AWSShapeMember(label: "RetrievalByteRange", required: false, type: .string), AWSShapeMember(label: "Format", required: false, type: .string), + AWSShapeMember(label: "OutputLocation", required: false, type: .structure), AWSShapeMember(label: "ArchiveId", required: false, type: .string), AWSShapeMember(label: "SNSTopic", required: false, type: .string), AWSShapeMember(label: "Type", required: false, type: .string), @@ -1477,25 +1870,31 @@ extension Glacier { ] /// Input parameters used for range inventory retrieval. public let inventoryRetrievalParameters: InventoryRetrievalJobInput? + /// Contains the parameters that define a job. + public let selectParameters: SelectParameters? /// The byte range to retrieve for an archive retrieval. in the form "StartByteValue-EndByteValue" If not specified, the whole archive is retrieved. If specified, the byte range must be megabyte (1024*1024) aligned which means that StartByteValue must be divisible by 1 MB and EndByteValue plus 1 must be divisible by 1 MB or be the end of the archive specified as the archive byte size value minus 1. If RetrievalByteRange is not megabyte aligned, this operation returns a 400 response. An error occurs if you specify this field for an inventory retrieval job request. public let retrievalByteRange: String? /// When initiating a job to retrieve a vault inventory, you can optionally add this parameter to your request to specify the output format. If you are initiating an inventory job and do not specify a Format field, JSON is the default format. Valid values are "CSV" and "JSON". public let format: String? - /// The ID of the archive that you want to retrieve. This field is required only if Type is set to archive-retrieval. An error occurs if you specify this request parameter for an inventory retrieval job request. + /// Contains information about the location where the select job results are stored. + public let outputLocation: OutputLocation? + /// The ID of the archive that you want to retrieve. This field is required only if Type is set to select or archive-retrievalcode>. An error occurs if you specify this request parameter for an inventory retrieval job request. public let archiveId: String? /// The Amazon SNS topic ARN to which Amazon Glacier sends a notification when the job is completed and the output is ready for you to download. The specified topic publishes the notification to its subscribers. The SNS topic must exist. public let sNSTopic: String? - /// The job type. You can initiate a job to retrieve an archive or get an inventory of a vault. Valid values are "archive-retrieval" and "inventory-retrieval". + /// The job type. You can initiate a job to perform a select query on an archive, retrieve an archive, or get an inventory of a vault. Valid values are "select", "archive-retrieval" and "inventory-retrieval". public let `type`: String? - /// The retrieval option to use for the archive retrieval. Valid values are Expedited, Standard, or Bulk. Standard is the default. + /// The retrieval option to use for a select or archive retrieval job. Valid values are Expedited, Standard, or Bulk. Standard is the default. public let tier: String? /// The optional description for the job. The description must be less than or equal to 1,024 bytes. The allowable characters are 7-bit ASCII without control codes-specifically, ASCII values 32-126 decimal or 0x20-0x7E hexadecimal. public let description: String? - public init(inventoryRetrievalParameters: InventoryRetrievalJobInput? = nil, retrievalByteRange: String? = nil, format: String? = nil, archiveId: String? = nil, sNSTopic: String? = nil, type: String? = nil, tier: String? = nil, description: String? = nil) { + public init(inventoryRetrievalParameters: InventoryRetrievalJobInput? = nil, selectParameters: SelectParameters? = nil, retrievalByteRange: String? = nil, format: String? = nil, outputLocation: OutputLocation? = nil, archiveId: String? = nil, sNSTopic: String? = nil, type: String? = nil, tier: String? = nil, description: String? = nil) { self.inventoryRetrievalParameters = inventoryRetrievalParameters + self.selectParameters = selectParameters self.retrievalByteRange = retrievalByteRange self.format = format + self.outputLocation = outputLocation self.archiveId = archiveId self.sNSTopic = sNSTopic self.`type` = `type` @@ -1505,8 +1904,10 @@ extension Glacier { private enum CodingKeys: String, CodingKey { case inventoryRetrievalParameters = "InventoryRetrievalParameters" + case selectParameters = "SelectParameters" case retrievalByteRange = "RetrievalByteRange" case format = "Format" + case outputLocation = "OutputLocation" case archiveId = "ArchiveId" case sNSTopic = "SNSTopic" case `type` = "Type" @@ -1515,33 +1916,47 @@ extension Glacier { } } - public struct CreateVaultInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public enum Permission: String, CustomStringConvertible, Codable { + case fullControl = "FULL_CONTROL" + case write = "WRITE" + case writeAcp = "WRITE_ACP" + case read = "READ" + case readAcp = "READ_ACP" + public var description: String { return self.rawValue } + } + + public struct AbortMultipartUploadInput: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), + AWSShapeMember(label: "uploadId", location: .uri(locationName: "uploadId"), required: true, type: .string), AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) ] - /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. + /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. public let accountId: String + /// The upload ID of the multipart upload to delete. + public let uploadId: String /// The name of the vault. public let vaultName: String - public init(accountId: String, vaultName: String) { + public init(accountId: String, uploadId: String, vaultName: String) { self.accountId = accountId + self.uploadId = uploadId self.vaultName = vaultName } private enum CodingKeys: String, CodingKey { case accountId = "accountId" + case uploadId = "uploadId" case vaultName = "vaultName" } } - public struct GetVaultAccessPolicyInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct CreateVaultInput: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. + /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. public let accountId: String /// The name of the vault. public let vaultName: String @@ -1557,10 +1972,36 @@ extension Glacier { } } + public struct Encryption: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KMSKeyId", required: false, type: .string), + AWSShapeMember(label: "KMSContext", required: false, type: .string), + AWSShapeMember(label: "EncryptionType", required: false, type: .enum) + ] + /// The AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS fail if not made by using Secure Sockets Layer (SSL) or Signature Version 4. + public let kMSKeyId: String? + /// Optional. If the encryption type is aws:kms, you can use this value to specify the encryption context for the restore results. + public let kMSContext: String? + /// The server-side encryption algorithm used when storing job results in Amazon S3, for example AES256 or aws:kms. + public let encryptionType: EncryptionType? + + public init(kMSKeyId: String? = nil, kMSContext: String? = nil, encryptionType: EncryptionType? = nil) { + self.kMSKeyId = kMSKeyId + self.kMSContext = kMSContext + self.encryptionType = encryptionType + } + + private enum CodingKeys: String, CodingKey { + case kMSKeyId = "KMSKeyId" + case kMSContext = "KMSContext" + case encryptionType = "EncryptionType" + } + } + public struct GetVaultNotificationsOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "vaultNotificationConfig" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "vaultNotificationConfig", required: false, type: .structure) ] /// Returns the notification configuration set on the vault. @@ -1575,60 +2016,8 @@ extension Glacier { } } - public struct DescribeJobInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The ID of the job to describe. - public let jobId: String - /// The name of the vault. - public let vaultName: String - - public init(accountId: String, jobId: String, vaultName: String) { - self.accountId = accountId - self.jobId = jobId - self.vaultName = vaultName - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case jobId = "jobId" - case vaultName = "vaultName" - } - } - - public struct CompleteVaultLockInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accountId", location: .uri(locationName: "accountId"), required: true, type: .string), - AWSShapeMember(label: "lockId", location: .uri(locationName: "lockId"), required: true, type: .string), - AWSShapeMember(label: "vaultName", location: .uri(locationName: "vaultName"), required: true, type: .string) - ] - /// The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. - public let accountId: String - /// The lockId value is the lock ID obtained from a InitiateVaultLock request. - public let lockId: String - /// The name of the vault. - public let vaultName: String - - public init(accountId: String, lockId: String, vaultName: String) { - self.accountId = accountId - self.lockId = lockId - self.vaultName = vaultName - } - - private enum CodingKeys: String, CodingKey { - case accountId = "accountId" - case lockId = "lockId" - case vaultName = "vaultName" - } - } - public struct InventoryRetrievalJobInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartDate", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -1658,24 +2047,8 @@ extension Glacier { } } - public struct InitiateVaultLockOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "lockId", location: .header(locationName: "x-amz-lock-id"), required: false, type: .string) - ] - /// The lock ID, which is used to complete the vault locking process. - public let lockId: String? - - public init(lockId: String? = nil) { - self.lockId = lockId - } - - private enum CodingKeys: String, CodingKey { - case lockId = "x-amz-lock-id" - } - } - public struct DescribeVaultOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SizeInBytes", required: false, type: .long), AWSShapeMember(label: "VaultARN", required: false, type: .string), AWSShapeMember(label: "NumberOfArchives", required: false, type: .long), @@ -1715,4 +2088,10 @@ extension Glacier { } } + public enum QuoteFields: String, CustomStringConvertible, Codable { + case always = "ALWAYS" + case asneeded = "ASNEEDED" + public var description: String { return self.rawValue } + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/glue/Glue_API.swift b/Sources/AWSSDKSwift/Services/glue/Glue_API.swift new file mode 100644 index 00000000000..0eca19f8fe0 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/glue/Glue_API.swift @@ -0,0 +1,404 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +AWS Glue Defines the public endpoint for the AWS Glue service. +*/ +public struct Glue { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "AWSGlue", + service: "glue", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-03-31", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [GlueError.self] + ) + } + + /// Retrieves metadata for all runs of a given job. + public func getJobRuns(_ input: GetJobRunsRequest) throws -> GetJobRunsResponse { + return try client.send(operation: "GetJobRuns", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves all Databases defined in a given Data Catalog. + public func getDatabases(_ input: GetDatabasesRequest) throws -> GetDatabasesResponse { + return try client.send(operation: "GetDatabases", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the metadata for a given job run. + public func getJobRun(_ input: GetJobRunRequest) throws -> GetJobRunResponse { + return try client.send(operation: "GetJobRun", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves a multiple function definitions from the Data Catalog. + public func getUserDefinedFunctions(_ input: GetUserDefinedFunctionsRequest) throws -> GetUserDefinedFunctionsResponse { + return try client.send(operation: "GetUserDefinedFunctions", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the status of a migration operation. + public func getCatalogImportStatus(_ input: GetCatalogImportStatusRequest) throws -> GetCatalogImportStatusResponse { + return try client.send(operation: "GetCatalogImportStatus", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves a list of connection definitions from the Data Catalog. + public func getConnections(_ input: GetConnectionsRequest) throws -> GetConnectionsResponse { + return try client.send(operation: "GetConnections", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new job. + public func createJob(_ input: CreateJobRequest) throws -> CreateJobResponse { + return try client.send(operation: "CreateJob", path: "/", httpMethod: "POST", input: input) + } + + /// Updates an existing database definition in a Data Catalog. + public func updateDatabase(_ input: UpdateDatabaseRequest) throws -> UpdateDatabaseResponse { + return try client.send(operation: "UpdateDatabase", path: "/", httpMethod: "POST", input: input) + } + + /// Updates the schedule of a crawler using a cron expression. + public func updateCrawlerSchedule(_ input: UpdateCrawlerScheduleRequest) throws -> UpdateCrawlerScheduleResponse { + return try client.send(operation: "UpdateCrawlerSchedule", path: "/", httpMethod: "POST", input: input) + } + + /// Imports an existing Athena Data Catalog to AWS Glue + public func importCatalogToGlue(_ input: ImportCatalogToGlueRequest) throws -> ImportCatalogToGlueResponse { + return try client.send(operation: "ImportCatalogToGlue", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves a connection definition from the Data Catalog. + public func getConnection(_ input: GetConnectionRequest) throws -> GetConnectionResponse { + return try client.send(operation: "GetConnection", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new DevEndpoint. + public func createDevEndpoint(_ input: CreateDevEndpointRequest) throws -> CreateDevEndpointResponse { + return try client.send(operation: "CreateDevEndpoint", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the Table definition in a Data Catalog for a specified table. + public func getTable(_ input: GetTableRequest) throws -> GetTableResponse { + return try client.send(operation: "GetTable", path: "/", httpMethod: "POST", input: input) + } + + /// Removes a specified crawler from the Data Catalog, unless the crawler state is RUNNING. + public func deleteCrawler(_ input: DeleteCrawlerRequest) throws -> DeleteCrawlerResponse { + return try client.send(operation: "DeleteCrawler", path: "/", httpMethod: "POST", input: input) + } + + /// Removes a classifier from the Data Catalog. + public func deleteClassifier(_ input: DeleteClassifierRequest) throws -> DeleteClassifierResponse { + return try client.send(operation: "DeleteClassifier", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves metadata for a specified crawler. + public func getCrawler(_ input: GetCrawlerRequest) throws -> GetCrawlerResponse { + return try client.send(operation: "GetCrawler", path: "/", httpMethod: "POST", input: input) + } + + /// Runs a job. + public func startJobRun(_ input: StartJobRunRequest) throws -> StartJobRunResponse { + return try client.send(operation: "StartJobRun", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a classifier in the user's account. This may be either a GrokClassifier or an XMLClassifier. + public func createClassifier(_ input: CreateClassifierRequest) throws -> CreateClassifierResponse { + return try client.send(operation: "CreateClassifier", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the definitions of some or all of the tables in a given Database. + public func getTables(_ input: GetTablesRequest) throws -> GetTablesResponse { + return try client.send(operation: "GetTables", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the definition of a trigger. + public func getTrigger(_ input: GetTriggerRequest) throws -> GetTriggerResponse { + return try client.send(operation: "GetTrigger", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves all current jobs. + public func getJobs(_ input: GetJobsRequest) throws -> GetJobsResponse { + return try client.send(operation: "GetJobs", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a specified job. + public func deleteJob(_ input: DeleteJobRequest) throws -> DeleteJobResponse { + return try client.send(operation: "DeleteJob", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves information about a specified partition. + public func getPartition(_ input: GetPartitionRequest) throws -> GetPartitionResponse { + return try client.send(operation: "GetPartition", path: "/", httpMethod: "POST", input: input) + } + + /// Lists all classifier objects in the Data Catalog. + public func getClassifiers(_ input: GetClassifiersRequest) throws -> GetClassifiersResponse { + return try client.send(operation: "GetClassifiers", path: "/", httpMethod: "POST", input: input) + } + + /// Gets all the triggers associated with a job. + public func getTriggers(_ input: GetTriggersRequest) throws -> GetTriggersResponse { + return try client.send(operation: "GetTriggers", path: "/", httpMethod: "POST", input: input) + } + + /// Creates one or more partitions in a batch operation. + public func batchCreatePartition(_ input: BatchCreatePartitionRequest) throws -> BatchCreatePartitionResponse { + return try client.send(operation: "BatchCreatePartition", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves information about the partitions in a table. + public func getPartitions(_ input: GetPartitionsRequest) throws -> GetPartitionsResponse { + return try client.send(operation: "GetPartitions", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new table definition in the Data Catalog. + public func createTable(_ input: CreateTableRequest) throws -> CreateTableResponse { + return try client.send(operation: "CreateTable", path: "/", httpMethod: "POST", input: input) + } + + /// Transforms a directed acyclic graph (DAG) into a Python script. + public func createScript(_ input: CreateScriptRequest) throws -> CreateScriptResponse { + return try client.send(operation: "CreateScript", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves metadata for all crawlers defined in the customer account. + public func getCrawlers(_ input: GetCrawlersRequest) throws -> GetCrawlersResponse { + return try client.send(operation: "GetCrawlers", path: "/", httpMethod: "POST", input: input) + } + + /// Gets a Python script to perform a specified mapping. + public func getPlan(_ input: GetPlanRequest) throws -> GetPlanResponse { + return try client.send(operation: "GetPlan", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the definition of a specified database. + public func getDatabase(_ input: GetDatabaseRequest) throws -> GetDatabaseResponse { + return try client.send(operation: "GetDatabase", path: "/", httpMethod: "POST", input: input) + } + + /// Changes the schedule state of the specified crawler to SCHEDULED, unless the crawler is already running or the schedule state is already SCHEDULED. + public func startCrawlerSchedule(_ input: StartCrawlerScheduleRequest) throws -> StartCrawlerScheduleResponse { + return try client.send(operation: "StartCrawlerSchedule", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new trigger. + public func createTrigger(_ input: CreateTriggerRequest) throws -> CreateTriggerResponse { + return try client.send(operation: "CreateTrigger", path: "/", httpMethod: "POST", input: input) + } + + /// Stops a batch of job runs for a given job. + public func batchStopJobRun(_ input: BatchStopJobRunRequest) throws -> BatchStopJobRunResponse { + return try client.send(operation: "BatchStopJobRun", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves metrics about specified crawlers. + public func getCrawlerMetrics(_ input: GetCrawlerMetricsRequest) throws -> GetCrawlerMetricsResponse { + return try client.send(operation: "GetCrawlerMetrics", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes multiple tables at once. + public func batchDeleteTable(_ input: BatchDeleteTableRequest) throws -> BatchDeleteTableResponse { + return try client.send(operation: "BatchDeleteTable", path: "/", httpMethod: "POST", input: input) + } + + /// Updates an existing job definition. + public func updateJob(_ input: UpdateJobRequest) throws -> UpdateJobResponse { + return try client.send(operation: "UpdateJob", path: "/", httpMethod: "POST", input: input) + } + + /// If the specified crawler is running, stops the crawl. + public func stopCrawler(_ input: StopCrawlerRequest) throws -> StopCrawlerResponse { + return try client.send(operation: "StopCrawler", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves an existing job definition. + public func getJob(_ input: GetJobRequest) throws -> GetJobResponse { + return try client.send(operation: "GetJob", path: "/", httpMethod: "POST", input: input) + } + + /// Transforms a Python script into a directed acyclic graph (DAG). + public func getDataflowGraph(_ input: GetDataflowGraphRequest) throws -> GetDataflowGraphResponse { + return try client.send(operation: "GetDataflowGraph", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a list of connection definitions from the Data Catalog. + public func batchDeleteConnection(_ input: BatchDeleteConnectionRequest) throws -> BatchDeleteConnectionResponse { + return try client.send(operation: "BatchDeleteConnection", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new crawler with specified targets, role, configuration, and optional schedule. At least one crawl target must be specified, in either the s3Targets or the jdbcTargets field. + public func createCrawler(_ input: CreateCrawlerRequest) throws -> CreateCrawlerResponse { + return try client.send(operation: "CreateCrawler", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a specified trigger. + public func deleteTrigger(_ input: DeleteTriggerRequest) throws -> DeleteTriggerResponse { + return try client.send(operation: "DeleteTrigger", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves a list of strings that identify available versions of a specified table. + public func getTableVersions(_ input: GetTableVersionsRequest) throws -> GetTableVersionsResponse { + return try client.send(operation: "GetTableVersions", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves all the DevEndpoints in this AWS account. + public func getDevEndpoints(_ input: GetDevEndpointsRequest) throws -> GetDevEndpointsResponse { + return try client.send(operation: "GetDevEndpoints", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves partitions in a batch request. + public func batchGetPartition(_ input: BatchGetPartitionRequest) throws -> BatchGetPartitionResponse { + return try client.send(operation: "BatchGetPartition", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new partition. + public func createPartition(_ input: CreatePartitionRequest) throws -> CreatePartitionResponse { + return try client.send(operation: "CreatePartition", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes an existing function definition from the Data Catalog. + public func deleteUserDefinedFunction(_ input: DeleteUserDefinedFunctionRequest) throws -> DeleteUserDefinedFunctionResponse { + return try client.send(operation: "DeleteUserDefinedFunction", path: "/", httpMethod: "POST", input: input) + } + + /// Modifies an existing classifier (either a GrokClassifier or an XMLClassifier). + public func updateClassifier(_ input: UpdateClassifierRequest) throws -> UpdateClassifierResponse { + return try client.send(operation: "UpdateClassifier", path: "/", httpMethod: "POST", input: input) + } + + /// Stops a specified trigger. + public func stopTrigger(_ input: StopTriggerRequest) throws -> StopTriggerResponse { + return try client.send(operation: "StopTrigger", path: "/", httpMethod: "POST", input: input) + } + + /// Removes a specified Database from a Data Catalog. + public func deleteDatabase(_ input: DeleteDatabaseRequest) throws -> DeleteDatabaseResponse { + return try client.send(operation: "DeleteDatabase", path: "/", httpMethod: "POST", input: input) + } + + /// Updates a trigger definition. + public func updateTrigger(_ input: UpdateTriggerRequest) throws -> UpdateTriggerResponse { + return try client.send(operation: "UpdateTrigger", path: "/", httpMethod: "POST", input: input) + } + + /// Sets the schedule state of the specified crawler to NOT_SCHEDULED, but does not stop the crawler if it is already running. + public func stopCrawlerSchedule(_ input: StopCrawlerScheduleRequest) throws -> StopCrawlerScheduleResponse { + return try client.send(operation: "StopCrawlerSchedule", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes one or more partitions in a batch operation. + public func batchDeletePartition(_ input: BatchDeletePartitionRequest) throws -> BatchDeletePartitionResponse { + return try client.send(operation: "BatchDeletePartition", path: "/", httpMethod: "POST", input: input) + } + + /// Starts an existing trigger. + public func startTrigger(_ input: StartTriggerRequest) throws -> StartTriggerResponse { + return try client.send(operation: "StartTrigger", path: "/", httpMethod: "POST", input: input) + } + + /// Resets a bookmark entry. + public func resetJobBookmark(_ input: ResetJobBookmarkRequest) throws -> ResetJobBookmarkResponse { + return try client.send(operation: "ResetJobBookmark", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a connection from the Data Catalog. + public func deleteConnection(_ input: DeleteConnectionRequest) throws -> DeleteConnectionResponse { + return try client.send(operation: "DeleteConnection", path: "/", httpMethod: "POST", input: input) + } + + /// Updates a metadata table in the Data Catalog. + public func updateTable(_ input: UpdateTableRequest) throws -> UpdateTableResponse { + return try client.send(operation: "UpdateTable", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a specified DevEndpoint. + public func deleteDevEndpoint(_ input: DeleteDevEndpointRequest) throws -> DeleteDevEndpointResponse { + return try client.send(operation: "DeleteDevEndpoint", path: "/", httpMethod: "POST", input: input) + } + + /// Updates a connection definition in the Data Catalog. + public func updateConnection(_ input: UpdateConnectionRequest) throws -> UpdateConnectionResponse { + return try client.send(operation: "UpdateConnection", path: "/", httpMethod: "POST", input: input) + } + + /// Updates an existing function definition in the Data Catalog. + public func updateUserDefinedFunction(_ input: UpdateUserDefinedFunctionRequest) throws -> UpdateUserDefinedFunctionResponse { + return try client.send(operation: "UpdateUserDefinedFunction", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new database in a Data Catalog. + public func createDatabase(_ input: CreateDatabaseRequest) throws -> CreateDatabaseResponse { + return try client.send(operation: "CreateDatabase", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves information about a specified DevEndpoint. + public func getDevEndpoint(_ input: GetDevEndpointRequest) throws -> GetDevEndpointResponse { + return try client.send(operation: "GetDevEndpoint", path: "/", httpMethod: "POST", input: input) + } + + /// Updates a specified DevEndpoint. + public func updateDevEndpoint(_ input: UpdateDevEndpointRequest) throws -> UpdateDevEndpointResponse { + return try client.send(operation: "UpdateDevEndpoint", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves a specified function definition from the Data Catalog. + public func getUserDefinedFunction(_ input: GetUserDefinedFunctionRequest) throws -> GetUserDefinedFunctionResponse { + return try client.send(operation: "GetUserDefinedFunction", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieve a classifier by name. + public func getClassifier(_ input: GetClassifierRequest) throws -> GetClassifierResponse { + return try client.send(operation: "GetClassifier", path: "/", httpMethod: "POST", input: input) + } + + /// Updates a partition. + public func updatePartition(_ input: UpdatePartitionRequest) throws -> UpdatePartitionResponse { + return try client.send(operation: "UpdatePartition", path: "/", httpMethod: "POST", input: input) + } + + /// Updates a crawler. If a crawler is running, you must stop it using StopCrawler before updating it. + public func updateCrawler(_ input: UpdateCrawlerRequest) throws -> UpdateCrawlerResponse { + return try client.send(operation: "UpdateCrawler", path: "/", httpMethod: "POST", input: input) + } + + /// Starts a crawl using the specified crawler, regardless of what is scheduled. If the crawler is already running, does nothing. + public func startCrawler(_ input: StartCrawlerRequest) throws -> StartCrawlerResponse { + return try client.send(operation: "StartCrawler", path: "/", httpMethod: "POST", input: input) + } + + /// Removes a table definition from the Data Catalog. + public func deleteTable(_ input: DeleteTableRequest) throws -> DeleteTableResponse { + return try client.send(operation: "DeleteTable", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a specified partition. + public func deletePartition(_ input: DeletePartitionRequest) throws -> DeletePartitionResponse { + return try client.send(operation: "DeletePartition", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a connection definition in the Data Catalog. + public func createConnection(_ input: CreateConnectionRequest) throws -> CreateConnectionResponse { + return try client.send(operation: "CreateConnection", path: "/", httpMethod: "POST", input: input) + } + + /// Creates mappings. + public func getMapping(_ input: GetMappingRequest) throws -> GetMappingResponse { + return try client.send(operation: "GetMapping", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a new function definition in the Data Catalog. + public func createUserDefinedFunction(_ input: CreateUserDefinedFunctionRequest) throws -> CreateUserDefinedFunctionResponse { + return try client.send(operation: "CreateUserDefinedFunction", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/glue/Glue_Error.swift b/Sources/AWSSDKSwift/Services/glue/Glue_Error.swift new file mode 100644 index 00000000000..46f852f0c39 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/glue/Glue_Error.swift @@ -0,0 +1,77 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Glue +public enum GlueError: AWSErrorType { + case invalidInputException(message: String?) + case entityNotFoundException(message: String?) + case internalServiceException(message: String?) + case operationTimeoutException(message: String?) + case idempotentParameterMismatchException(message: String?) + case alreadyExistsException(message: String?) + case resourceNumberLimitExceededException(message: String?) + case versionMismatchException(message: String?) + case schedulerTransitioningException(message: String?) + case accessDeniedException(message: String?) + case validationException(message: String?) + case crawlerRunningException(message: String?) + case concurrentRunsExceededException(message: String?) + case schedulerRunningException(message: String?) + case noScheduleException(message: String?) + case crawlerNotRunningException(message: String?) + case crawlerStoppingException(message: String?) + case schedulerNotRunningException(message: String?) + case concurrentModificationException(message: String?) +} + +extension GlueError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "InvalidInputException": + self = .invalidInputException(message: message) + case "EntityNotFoundException": + self = .entityNotFoundException(message: message) + case "InternalServiceException": + self = .internalServiceException(message: message) + case "OperationTimeoutException": + self = .operationTimeoutException(message: message) + case "IdempotentParameterMismatchException": + self = .idempotentParameterMismatchException(message: message) + case "AlreadyExistsException": + self = .alreadyExistsException(message: message) + case "ResourceNumberLimitExceededException": + self = .resourceNumberLimitExceededException(message: message) + case "VersionMismatchException": + self = .versionMismatchException(message: message) + case "SchedulerTransitioningException": + self = .schedulerTransitioningException(message: message) + case "AccessDeniedException": + self = .accessDeniedException(message: message) + case "ValidationException": + self = .validationException(message: message) + case "CrawlerRunningException": + self = .crawlerRunningException(message: message) + case "ConcurrentRunsExceededException": + self = .concurrentRunsExceededException(message: message) + case "SchedulerRunningException": + self = .schedulerRunningException(message: message) + case "NoScheduleException": + self = .noScheduleException(message: message) + case "CrawlerNotRunningException": + self = .crawlerNotRunningException(message: message) + case "CrawlerStoppingException": + self = .crawlerStoppingException(message: message) + case "SchedulerNotRunningException": + self = .schedulerNotRunningException(message: message) + case "ConcurrentModificationException": + self = .concurrentModificationException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/glue/Glue_Shapes.swift b/Sources/AWSSDKSwift/Services/glue/Glue_Shapes.swift new file mode 100644 index 00000000000..7909ae034f9 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/glue/Glue_Shapes.swift @@ -0,0 +1,5231 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Glue { + + public struct GetTableResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Table", required: false, type: .structure) + ] + /// The Table object that defines the specified table. + public let table: Table? + + public init(table: Table? = nil) { + self.table = table + } + + private enum CodingKeys: String, CodingKey { + case table = "Table" + } + } + + public struct DeleteTableResponse: AWSShape { + + } + + public struct CreateTableResponse: AWSShape { + + } + + public struct Partition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "DatabaseName", required: false, type: .string), + AWSShapeMember(label: "Values", required: false, type: .list), + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "StorageDescriptor", required: false, type: .structure), + AWSShapeMember(label: "TableName", required: false, type: .string), + AWSShapeMember(label: "LastAnalyzedTime", required: false, type: .timestamp), + AWSShapeMember(label: "LastAccessTime", required: false, type: .timestamp) + ] + /// Partition parameters, in the form of a list of key-value pairs. + public let parameters: [String: String]? + /// The name of the catalog database where the table in question is located. + public let databaseName: String? + /// The values of the partition. + public let values: [String]? + /// The time at which the partition was created. + public let creationTime: TimeStamp? + /// Provides information about the physical location where the partition is stored. + public let storageDescriptor: StorageDescriptor? + /// The name of the table in question. + public let tableName: String? + /// The last time at which column statistics were computed for this partition. + public let lastAnalyzedTime: TimeStamp? + /// The last time at which the partition was accessed. + public let lastAccessTime: TimeStamp? + + public init(parameters: [String: String]? = nil, databaseName: String? = nil, values: [String]? = nil, creationTime: TimeStamp? = nil, storageDescriptor: StorageDescriptor? = nil, tableName: String? = nil, lastAnalyzedTime: TimeStamp? = nil, lastAccessTime: TimeStamp? = nil) { + self.parameters = parameters + self.databaseName = databaseName + self.values = values + self.creationTime = creationTime + self.storageDescriptor = storageDescriptor + self.tableName = tableName + self.lastAnalyzedTime = lastAnalyzedTime + self.lastAccessTime = lastAccessTime + } + + private enum CodingKeys: String, CodingKey { + case parameters = "Parameters" + case databaseName = "DatabaseName" + case values = "Values" + case creationTime = "CreationTime" + case storageDescriptor = "StorageDescriptor" + case tableName = "TableName" + case lastAnalyzedTime = "LastAnalyzedTime" + case lastAccessTime = "LastAccessTime" + } + } + + public struct CreateUserDefinedFunctionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "FunctionInput", required: true, type: .structure), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The ID of the Data Catalog in which to create the function. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A FunctionInput object that defines the function to create in the Data Catalog. + public let functionInput: UserDefinedFunctionInput + /// The name of the catalog database in which to create the function. + public let databaseName: String + + public init(catalogId: String? = nil, functionInput: UserDefinedFunctionInput, databaseName: String) { + self.catalogId = catalogId + self.functionInput = functionInput + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case functionInput = "FunctionInput" + case databaseName = "DatabaseName" + } + } + + public struct GetJobRunsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobName", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The name of the job for which to retrieve all job runs. + public let jobName: String + /// A continuation token, if this is a continuation call. + public let nextToken: String? + /// The maximum size of the response. + public let maxResults: Int32? + + public init(jobName: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.jobName = jobName + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case jobName = "JobName" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct Crawler: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "State", required: false, type: .enum), + AWSShapeMember(label: "Targets", required: false, type: .structure), + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "Schedule", required: false, type: .structure), + AWSShapeMember(label: "Configuration", required: false, type: .string), + AWSShapeMember(label: "SchemaChangePolicy", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "TablePrefix", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Version", required: false, type: .long), + AWSShapeMember(label: "Role", required: false, type: .string), + AWSShapeMember(label: "DatabaseName", required: false, type: .string), + AWSShapeMember(label: "LastUpdated", required: false, type: .timestamp), + AWSShapeMember(label: "Classifiers", required: false, type: .list), + AWSShapeMember(label: "LastCrawl", required: false, type: .structure), + AWSShapeMember(label: "CrawlElapsedTime", required: false, type: .long) + ] + /// Indicates whether the crawler is running, or whether a run is pending. + public let state: CrawlerState? + /// A collection of targets to crawl. + public let targets: CrawlerTargets? + /// The time when the crawler was created. + public let creationTime: TimeStamp? + /// For scheduled crawlers, the schedule when the crawler runs. + public let schedule: Schedule? + /// Crawler configuration information. This versioned JSON string allows users to specify aspects of a Crawler's behavior. You can use this field to force partitions to inherit metadata such as classification, input format, output format, serde information, and schema from their parent table, rather than detect this information separately for each partition. Use the following JSON string to specify that behavior: + public let configuration: String? + /// Sets the behavior when the crawler finds a changed or deleted object. + public let schemaChangePolicy: SchemaChangePolicy? + /// A description of the crawler. + public let description: String? + /// The prefix added to the names of tables that are created. + public let tablePrefix: String? + /// The crawler name. + public let name: String? + /// The version of the crawler. + public let version: Int64? + /// The IAM role (or ARN of an IAM role) used to access customer resources, such as data in Amazon S3. + public let role: String? + /// The database where metadata is written by this crawler. + public let databaseName: String? + /// The time the crawler was last updated. + public let lastUpdated: TimeStamp? + /// A list of custom classifiers associated with the crawler. + public let classifiers: [String]? + /// The status of the last crawl, and potentially error information if an error occurred. + public let lastCrawl: LastCrawlInfo? + /// If the crawler is running, contains the total time elapsed since the last crawl began. + public let crawlElapsedTime: Int64? + + public init(state: CrawlerState? = nil, targets: CrawlerTargets? = nil, creationTime: TimeStamp? = nil, schedule: Schedule? = nil, configuration: String? = nil, schemaChangePolicy: SchemaChangePolicy? = nil, description: String? = nil, tablePrefix: String? = nil, name: String? = nil, version: Int64? = nil, role: String? = nil, databaseName: String? = nil, lastUpdated: TimeStamp? = nil, classifiers: [String]? = nil, lastCrawl: LastCrawlInfo? = nil, crawlElapsedTime: Int64? = nil) { + self.state = state + self.targets = targets + self.creationTime = creationTime + self.schedule = schedule + self.configuration = configuration + self.schemaChangePolicy = schemaChangePolicy + self.description = description + self.tablePrefix = tablePrefix + self.name = name + self.version = version + self.role = role + self.databaseName = databaseName + self.lastUpdated = lastUpdated + self.classifiers = classifiers + self.lastCrawl = lastCrawl + self.crawlElapsedTime = crawlElapsedTime + } + + private enum CodingKeys: String, CodingKey { + case state = "State" + case targets = "Targets" + case creationTime = "CreationTime" + case schedule = "Schedule" + case configuration = "Configuration" + case schemaChangePolicy = "SchemaChangePolicy" + case description = "Description" + case tablePrefix = "TablePrefix" + case name = "Name" + case version = "Version" + case role = "Role" + case databaseName = "DatabaseName" + case lastUpdated = "LastUpdated" + case classifiers = "Classifiers" + case lastCrawl = "LastCrawl" + case crawlElapsedTime = "CrawlElapsedTime" + } + } + + public struct GetMappingResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Mapping", required: true, type: .list) + ] + /// A list of mappings to the specified targets. + public let mapping: [MappingEntry] + + public init(mapping: [MappingEntry]) { + self.mapping = mapping + } + + private enum CodingKeys: String, CodingKey { + case mapping = "Mapping" + } + } + + public struct UserDefinedFunctionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClassName", required: false, type: .string), + AWSShapeMember(label: "OwnerName", required: false, type: .string), + AWSShapeMember(label: "FunctionName", required: false, type: .string), + AWSShapeMember(label: "OwnerType", required: false, type: .enum), + AWSShapeMember(label: "ResourceUris", required: false, type: .list) + ] + /// The Java class that contains the function code. + public let className: String? + /// The owner of the function. + public let ownerName: String? + /// The name of the function. + public let functionName: String? + /// The owner type. + public let ownerType: PrincipalType? + /// The resource URIs for the function. + public let resourceUris: [ResourceUri]? + + public init(className: String? = nil, ownerName: String? = nil, functionName: String? = nil, ownerType: PrincipalType? = nil, resourceUris: [ResourceUri]? = nil) { + self.className = className + self.ownerName = ownerName + self.functionName = functionName + self.ownerType = ownerType + self.resourceUris = resourceUris + } + + private enum CodingKeys: String, CodingKey { + case className = "ClassName" + case ownerName = "OwnerName" + case functionName = "FunctionName" + case ownerType = "OwnerType" + case resourceUris = "ResourceUris" + } + } + + public struct Action: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arguments", required: false, type: .map), + AWSShapeMember(label: "JobName", required: false, type: .string) + ] + /// Arguments to be passed to the job. + public let arguments: [String: String]? + /// The name of a job to be executed. + public let jobName: String? + + public init(arguments: [String: String]? = nil, jobName: String? = nil) { + self.arguments = arguments + self.jobName = jobName + } + + private enum CodingKeys: String, CodingKey { + case arguments = "Arguments" + case jobName = "JobName" + } + } + + public struct StartJobRunRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arguments", required: false, type: .map), + AWSShapeMember(label: "JobRunId", required: false, type: .string), + AWSShapeMember(label: "JobName", required: true, type: .string), + AWSShapeMember(label: "AllocatedCapacity", required: false, type: .integer) + ] + /// Specific arguments for this job run. + public let arguments: [String: String]? + /// The ID of the job run to start. + public let jobRunId: String? + /// The name of the job to start. + public let jobName: String + /// The infrastructure capacity to allocate to this job. + public let allocatedCapacity: Int32? + + public init(arguments: [String: String]? = nil, jobRunId: String? = nil, jobName: String, allocatedCapacity: Int32? = nil) { + self.arguments = arguments + self.jobRunId = jobRunId + self.jobName = jobName + self.allocatedCapacity = allocatedCapacity + } + + private enum CodingKeys: String, CodingKey { + case arguments = "Arguments" + case jobRunId = "JobRunId" + case jobName = "JobName" + case allocatedCapacity = "AllocatedCapacity" + } + } + + public enum PrincipalType: String, CustomStringConvertible, Codable { + case user = "USER" + case role = "ROLE" + case group = "GROUP" + public var description: String { return self.rawValue } + } + + public struct GetConnectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The ID of the Data Catalog in which the connection resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the connection definition to retrieve. + public let name: String + + public init(catalogId: String? = nil, name: String) { + self.catalogId = catalogId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case name = "Name" + } + } + + public struct StopTriggerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string) + ] + /// The name of the trigger that was stopped. + public let name: String? + + public init(name: String? = nil) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct GetConnectionsFilter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MatchCriteria", required: false, type: .list), + AWSShapeMember(label: "ConnectionType", required: false, type: .enum) + ] + /// A criteria string that must match the criteria recorded in the connection definition for that connection definition to be returned. + public let matchCriteria: [String]? + /// The type of connections to return. Currently, only JDBC is supported; SFTP is not supported. + public let connectionType: ConnectionType? + + public init(matchCriteria: [String]? = nil, connectionType: ConnectionType? = nil) { + self.matchCriteria = matchCriteria + self.connectionType = connectionType + } + + private enum CodingKeys: String, CodingKey { + case matchCriteria = "MatchCriteria" + case connectionType = "ConnectionType" + } + } + + public struct ConnectionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PhysicalConnectionRequirements", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "ConnectionProperties", required: false, type: .map), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "ConnectionType", required: false, type: .enum), + AWSShapeMember(label: "MatchCriteria", required: false, type: .list) + ] + /// A map of physical connection requirements, such as VPC and SecurityGroup, needed for making this connection successfully. + public let physicalConnectionRequirements: PhysicalConnectionRequirements? + /// Description of the connection. + public let description: String? + /// A list of key-value pairs used as parameters for this connection. + public let connectionProperties: [ConnectionPropertyKey: String]? + /// The name of the connection. + public let name: String? + /// The type of the connection. Currently, only JDBC is supported; SFTP is not supported. + public let connectionType: ConnectionType? + /// A list of criteria that can be used in selecting this connection. + public let matchCriteria: [String]? + + public init(physicalConnectionRequirements: PhysicalConnectionRequirements? = nil, description: String? = nil, connectionProperties: [ConnectionPropertyKey: String]? = nil, name: String? = nil, connectionType: ConnectionType? = nil, matchCriteria: [String]? = nil) { + self.physicalConnectionRequirements = physicalConnectionRequirements + self.description = description + self.connectionProperties = connectionProperties + self.name = name + self.connectionType = connectionType + self.matchCriteria = matchCriteria + } + + private enum CodingKeys: String, CodingKey { + case physicalConnectionRequirements = "PhysicalConnectionRequirements" + case description = "Description" + case connectionProperties = "ConnectionProperties" + case name = "Name" + case connectionType = "ConnectionType" + case matchCriteria = "MatchCriteria" + } + } + + public struct DeleteDevEndpointResponse: AWSShape { + + } + + public struct Order: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Column", required: true, type: .string), + AWSShapeMember(label: "SortOrder", required: true, type: .integer) + ] + /// The name of the column. + public let column: String + /// Indicates that the column is sorted in ascending order (== 1), or in descending order (==0). + public let sortOrder: Int32 + + public init(column: String, sortOrder: Int32) { + self.column = column + self.sortOrder = sortOrder + } + + private enum CodingKeys: String, CodingKey { + case column = "Column" + case sortOrder = "SortOrder" + } + } + + public struct CreatePartitionResponse: AWSShape { + + } + + public struct GetConnectionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filter", required: false, type: .structure), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// A filter that controls which connections will be returned. + public let filter: GetConnectionsFilter? + /// The ID of the Data Catalog in which the connections reside. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A continuation token, if this is a continuation call. + public let nextToken: String? + /// The maximum number of connections to return in one response. + public let maxResults: Int32? + + public init(filter: GetConnectionsFilter? = nil, catalogId: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.filter = filter + self.catalogId = catalogId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filter = "Filter" + case catalogId = "CatalogId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct GetClassifierResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Classifier", required: false, type: .structure) + ] + /// The requested classifier. + public let classifier: Classifier? + + public init(classifier: Classifier? = nil) { + self.classifier = classifier + } + + private enum CodingKeys: String, CodingKey { + case classifier = "Classifier" + } + } + + public struct BatchDeletePartitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PartitionsToDelete", required: true, type: .list), + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// A list of PartitionInput structures that define the partitions to be deleted. + public let partitionsToDelete: [PartitionValueList] + /// The name of the table where the partitions to be deleted is located. + public let tableName: String + /// The ID of the Data Catalog where the partition to be deleted resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the catalog database in which the table in question resides. + public let databaseName: String + + public init(partitionsToDelete: [PartitionValueList], tableName: String, catalogId: String? = nil, databaseName: String) { + self.partitionsToDelete = partitionsToDelete + self.tableName = tableName + self.catalogId = catalogId + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case partitionsToDelete = "PartitionsToDelete" + case tableName = "TableName" + case catalogId = "CatalogId" + case databaseName = "DatabaseName" + } + } + + public struct JobCommand: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "ScriptLocation", required: false, type: .string) + ] + /// The name of this job command. + public let name: String? + /// Specifies the location of a script that executes a job. + public let scriptLocation: String? + + public init(name: String? = nil, scriptLocation: String? = nil) { + self.name = name + self.scriptLocation = scriptLocation + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case scriptLocation = "ScriptLocation" + } + } + + public struct DeleteTriggerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The name of the trigger to delete. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct DeleteTableRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The ID of the Data Catalog where the table resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the table to be deleted. + public let name: String + /// The name of the catalog database in which the table resides. + public let databaseName: String + + public init(catalogId: String? = nil, name: String, databaseName: String) { + self.catalogId = catalogId + self.name = name + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case name = "Name" + case databaseName = "DatabaseName" + } + } + + public struct GetJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Job", required: false, type: .structure) + ] + /// The requested job definition. + public let job: Job? + + public init(job: Job? = nil) { + self.job = job + } + + private enum CodingKeys: String, CodingKey { + case job = "Job" + } + } + + public struct CreateDatabaseRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DatabaseInput", required: true, type: .structure), + AWSShapeMember(label: "CatalogId", required: false, type: .string) + ] + /// A DatabaseInput object defining the metadata database to create in the catalog. + public let databaseInput: DatabaseInput + /// The ID of the Data Catalog in which to create the database. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + + public init(databaseInput: DatabaseInput, catalogId: String? = nil) { + self.databaseInput = databaseInput + self.catalogId = catalogId + } + + private enum CodingKeys: String, CodingKey { + case databaseInput = "DatabaseInput" + case catalogId = "CatalogId" + } + } + + public struct CreateTriggerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string) + ] + /// The name assigned to the new trigger. + public let name: String? + + public init(name: String? = nil) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct BatchGetPartitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DatabaseName", required: true, type: .string), + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "PartitionsToGet", required: true, type: .list) + ] + /// The name of the catalog database where the partitions reside. + public let databaseName: String + /// The name of the partitions' table. + public let tableName: String + /// The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A list of partition values identifying the partitions to retrieve. + public let partitionsToGet: [PartitionValueList] + + public init(databaseName: String, tableName: String, catalogId: String? = nil, partitionsToGet: [PartitionValueList]) { + self.databaseName = databaseName + self.tableName = tableName + self.catalogId = catalogId + self.partitionsToGet = partitionsToGet + } + + private enum CodingKeys: String, CodingKey { + case databaseName = "DatabaseName" + case tableName = "TableName" + case catalogId = "CatalogId" + case partitionsToGet = "PartitionsToGet" + } + } + + public struct GetDatabasesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The ID of the Data Catalog from which to retrieve Databases. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A continuation token, if this is a continuation call. + public let nextToken: String? + /// The maximum number of databases to return in one response. + public let maxResults: Int32? + + public init(catalogId: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.catalogId = catalogId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct SchemaChangePolicy: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UpdateBehavior", required: false, type: .enum), + AWSShapeMember(label: "DeleteBehavior", required: false, type: .enum) + ] + /// The update behavior when the crawler finds a changed schema. + public let updateBehavior: UpdateBehavior? + /// The deletion behavior when the crawler finds a deleted object. + public let deleteBehavior: DeleteBehavior? + + public init(updateBehavior: UpdateBehavior? = nil, deleteBehavior: DeleteBehavior? = nil) { + self.updateBehavior = updateBehavior + self.deleteBehavior = deleteBehavior + } + + private enum CodingKeys: String, CodingKey { + case updateBehavior = "UpdateBehavior" + case deleteBehavior = "DeleteBehavior" + } + } + + public struct BatchCreatePartitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "PartitionInputList", required: true, type: .list), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The name of the metadata table in which the partition is to be created. + public let tableName: String + /// The ID of the catalog in which the partion is to be created. Currently, this should be the AWS account ID. + public let catalogId: String? + /// A list of PartitionInput structures that define the partitions to be created. + public let partitionInputList: [PartitionInput] + /// The name of the metadata database in which the partition is to be created. + public let databaseName: String + + public init(tableName: String, catalogId: String? = nil, partitionInputList: [PartitionInput], databaseName: String) { + self.tableName = tableName + self.catalogId = catalogId + self.partitionInputList = partitionInputList + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case tableName = "TableName" + case catalogId = "CatalogId" + case partitionInputList = "PartitionInputList" + case databaseName = "DatabaseName" + } + } + + public struct BatchDeleteConnectionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Errors", required: false, type: .map), + AWSShapeMember(label: "Succeeded", required: false, type: .list) + ] + /// A map of the names of connections that were not successfully deleted to error details. + public let errors: [String: ErrorDetail]? + /// A list of names of the connection definitions that were successfully deleted. + public let succeeded: [String]? + + public init(errors: [String: ErrorDetail]? = nil, succeeded: [String]? = nil) { + self.errors = errors + self.succeeded = succeeded + } + + private enum CodingKeys: String, CodingKey { + case errors = "Errors" + case succeeded = "Succeeded" + } + } + + public enum LastCrawlStatus: String, CustomStringConvertible, Codable { + case succeeded = "SUCCEEDED" + case cancelled = "CANCELLED" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + + public struct GetUserDefinedFunctionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Pattern", required: true, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// An optional function-name pattern string that filters the function definitions returned. + public let pattern: String + /// The name of the catalog database where the functions are located. + public let databaseName: String + /// The ID of the Data Catalog where the functions to be retrieved are located. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A continuation token, if this is a continuation call. + public let nextToken: String? + /// The maximum number of functions to return in one response. + public let maxResults: Int32? + + public init(pattern: String, databaseName: String, catalogId: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.pattern = pattern + self.databaseName = databaseName + self.catalogId = catalogId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case pattern = "Pattern" + case databaseName = "DatabaseName" + case catalogId = "CatalogId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct ErrorDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorMessage", required: false, type: .string), + AWSShapeMember(label: "ErrorCode", required: false, type: .string) + ] + /// A message describing the error. + public let errorMessage: String? + /// The code associated with this error. + public let errorCode: String? + + public init(errorMessage: String? = nil, errorCode: String? = nil) { + self.errorMessage = errorMessage + self.errorCode = errorCode + } + + private enum CodingKeys: String, CodingKey { + case errorMessage = "ErrorMessage" + case errorCode = "ErrorCode" + } + } + + public struct UpdateTriggerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Trigger", required: false, type: .structure) + ] + /// The resulting trigger definition. + public let trigger: Trigger? + + public init(trigger: Trigger? = nil) { + self.trigger = trigger + } + + private enum CodingKeys: String, CodingKey { + case trigger = "Trigger" + } + } + + public struct Trigger: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "Actions", required: false, type: .list), + AWSShapeMember(label: "State", required: false, type: .enum), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Schedule", required: false, type: .string), + AWSShapeMember(label: "Predicate", required: false, type: .structure), + AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The trigger ID. + public let id: String? + /// The actions initiated by this trigger. + public let actions: [Action]? + /// The current state of the trigger. + public let state: TriggerState? + /// Name of the trigger. + public let name: String? + /// A cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *). + public let schedule: String? + /// The predicate of this trigger. + public let predicate: Predicate? + /// The type of trigger that this is. + public let `type`: TriggerType? + /// A description of this trigger. + public let description: String? + + public init(id: String? = nil, actions: [Action]? = nil, state: TriggerState? = nil, name: String? = nil, schedule: String? = nil, predicate: Predicate? = nil, type: TriggerType? = nil, description: String? = nil) { + self.id = id + self.actions = actions + self.state = state + self.name = name + self.schedule = schedule + self.predicate = predicate + self.`type` = `type` + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case id = "Id" + case actions = "Actions" + case state = "State" + case name = "Name" + case schedule = "Schedule" + case predicate = "Predicate" + case `type` = "Type" + case description = "Description" + } + } + + public struct CreateTableRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "TableInput", required: true, type: .structure), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The ID of the Data Catalog in which to create the Table. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The TableInput object that defines the metadata table to create in the catalog. + public let tableInput: TableInput + /// The catalog database in which to create the new table. + public let databaseName: String + + public init(catalogId: String? = nil, tableInput: TableInput, databaseName: String) { + self.catalogId = catalogId + self.tableInput = tableInput + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case tableInput = "TableInput" + case databaseName = "DatabaseName" + } + } + + public struct JobUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Connections", required: false, type: .structure), + AWSShapeMember(label: "ExecutionProperty", required: false, type: .structure), + AWSShapeMember(label: "LogUri", required: false, type: .string), + AWSShapeMember(label: "Role", required: false, type: .string), + AWSShapeMember(label: "MaxRetries", required: false, type: .integer), + AWSShapeMember(label: "Command", required: false, type: .structure), + AWSShapeMember(label: "DefaultArguments", required: false, type: .map), + AWSShapeMember(label: "AllocatedCapacity", required: false, type: .integer), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The connections used for this job. + public let connections: ConnectionsList? + /// An ExecutionProperty specifying the maximum number of concurrent runs allowed for this job. + public let executionProperty: ExecutionProperty? + /// This field is reserved for future use. + public let logUri: String? + /// The role associated with this job. + public let role: String? + /// The maximum number of times to retry this job if it fails. + public let maxRetries: Int32? + /// The JobCommand that executes this job. + public let command: JobCommand? + /// The default parameters for this job. + public let defaultArguments: [String: String]? + /// The number of capacity units allocated to this job. + public let allocatedCapacity: Int32? + /// Description of the job. + public let description: String? + + public init(connections: ConnectionsList? = nil, executionProperty: ExecutionProperty? = nil, logUri: String? = nil, role: String? = nil, maxRetries: Int32? = nil, command: JobCommand? = nil, defaultArguments: [String: String]? = nil, allocatedCapacity: Int32? = nil, description: String? = nil) { + self.connections = connections + self.executionProperty = executionProperty + self.logUri = logUri + self.role = role + self.maxRetries = maxRetries + self.command = command + self.defaultArguments = defaultArguments + self.allocatedCapacity = allocatedCapacity + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case connections = "Connections" + case executionProperty = "ExecutionProperty" + case logUri = "LogUri" + case role = "Role" + case maxRetries = "MaxRetries" + case command = "Command" + case defaultArguments = "DefaultArguments" + case allocatedCapacity = "AllocatedCapacity" + case description = "Description" + } + } + + public struct UpdateDevEndpointResponse: AWSShape { + + } + + public enum CrawlerState: String, CustomStringConvertible, Codable { + case ready = "READY" + case running = "RUNNING" + case stopping = "STOPPING" + public var description: String { return self.rawValue } + } + + public struct StopCrawlerResponse: AWSShape { + + } + + public struct UpdateGrokClassifierRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GrokPattern", required: false, type: .string), + AWSShapeMember(label: "Classification", required: false, type: .string), + AWSShapeMember(label: "CustomPatterns", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The grok pattern used by this classifier. + public let grokPattern: String? + /// An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, Amazon CloudWatch Logs, and so on. + public let classification: String? + /// Optional custom grok patterns used by this classifier. + public let customPatterns: String? + /// The name of the GrokClassifier. + public let name: String + + public init(grokPattern: String? = nil, classification: String? = nil, customPatterns: String? = nil, name: String) { + self.grokPattern = grokPattern + self.classification = classification + self.customPatterns = customPatterns + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case grokPattern = "GrokPattern" + case classification = "Classification" + case customPatterns = "CustomPatterns" + case name = "Name" + } + } + + public struct CatalogEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The name of the table in question. + public let tableName: String + /// The database in which the table metadata resides. + public let databaseName: String + + public init(tableName: String, databaseName: String) { + self.tableName = tableName + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case tableName = "TableName" + case databaseName = "DatabaseName" + } + } + + public struct DeleteDevEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointName", required: true, type: .string) + ] + /// The name of the DevEndpoint. + public let endpointName: String + + public init(endpointName: String) { + self.endpointName = endpointName + } + + private enum CodingKeys: String, CodingKey { + case endpointName = "EndpointName" + } + } + + public struct DeleteConnectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "ConnectionName", required: true, type: .string) + ] + /// The ID of the Data Catalog in which the connection resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the connection to delete. + public let connectionName: String + + public init(catalogId: String? = nil, connectionName: String) { + self.catalogId = catalogId + self.connectionName = connectionName + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case connectionName = "ConnectionName" + } + } + + public struct GetDatabaseResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Database", required: false, type: .structure) + ] + /// The definition of the specified database in the catalog. + public let database: Database? + + public init(database: Database? = nil) { + self.database = database + } + + private enum CodingKeys: String, CodingKey { + case database = "Database" + } + } + + public struct BatchStopJobRunRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobName", required: true, type: .string), + AWSShapeMember(label: "JobRunIds", required: true, type: .list) + ] + /// The name of the job whose job runs are to be stopped. + public let jobName: String + /// A list of job run Ids of the given job to be stopped. + public let jobRunIds: [String] + + public init(jobName: String, jobRunIds: [String]) { + self.jobName = jobName + self.jobRunIds = jobRunIds + } + + private enum CodingKeys: String, CodingKey { + case jobName = "JobName" + case jobRunIds = "JobRunIds" + } + } + + public struct DeleteDatabaseResponse: AWSShape { + + } + + public struct CreateJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Connections", required: false, type: .structure), + AWSShapeMember(label: "ExecutionProperty", required: false, type: .structure), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "LogUri", required: false, type: .string), + AWSShapeMember(label: "Role", required: true, type: .string), + AWSShapeMember(label: "MaxRetries", required: false, type: .integer), + AWSShapeMember(label: "Command", required: true, type: .structure), + AWSShapeMember(label: "DefaultArguments", required: false, type: .map), + AWSShapeMember(label: "AllocatedCapacity", required: false, type: .integer), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The connections used for this job. + public let connections: ConnectionsList? + /// An ExecutionProperty specifying the maximum number of concurrent runs allowed for this job. + public let executionProperty: ExecutionProperty? + /// The name you assign to this job. + public let name: String + /// This field is reserved for future use. + public let logUri: String? + /// The role associated with this job. + public let role: String + /// The maximum number of times to retry this job if it fails. + public let maxRetries: Int32? + /// The JobCommand that executes this job. + public let command: JobCommand + /// The default parameters for this job. + public let defaultArguments: [String: String]? + /// The number of capacity units allocated to this job. + public let allocatedCapacity: Int32? + /// Description of the job. + public let description: String? + + public init(connections: ConnectionsList? = nil, executionProperty: ExecutionProperty? = nil, name: String, logUri: String? = nil, role: String, maxRetries: Int32? = nil, command: JobCommand, defaultArguments: [String: String]? = nil, allocatedCapacity: Int32? = nil, description: String? = nil) { + self.connections = connections + self.executionProperty = executionProperty + self.name = name + self.logUri = logUri + self.role = role + self.maxRetries = maxRetries + self.command = command + self.defaultArguments = defaultArguments + self.allocatedCapacity = allocatedCapacity + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case connections = "Connections" + case executionProperty = "ExecutionProperty" + case name = "Name" + case logUri = "LogUri" + case role = "Role" + case maxRetries = "MaxRetries" + case command = "Command" + case defaultArguments = "DefaultArguments" + case allocatedCapacity = "AllocatedCapacity" + case description = "Description" + } + } + + public struct DevEndpoint: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetId", required: false, type: .string), + AWSShapeMember(label: "PublicKey", required: false, type: .string), + AWSShapeMember(label: "LastUpdateStatus", required: false, type: .string), + AWSShapeMember(label: "ExtraPythonLibsS3Path", required: false, type: .string), + AWSShapeMember(label: "SecurityGroupIds", required: false, type: .list), + AWSShapeMember(label: "EndpointName", required: false, type: .string), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "CreatedTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "ZeppelinRemoteSparkInterpreterPort", required: false, type: .integer), + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "PublicAddress", required: false, type: .string), + AWSShapeMember(label: "VpcId", required: false, type: .string), + AWSShapeMember(label: "YarnEndpointAddress", required: false, type: .string), + AWSShapeMember(label: "NumberOfNodes", required: false, type: .integer), + AWSShapeMember(label: "ExtraJarsS3Path", required: false, type: .string), + AWSShapeMember(label: "FailureReason", required: false, type: .string), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "LastModifiedTimestamp", required: false, type: .timestamp) + ] + /// The subnet ID for this DevEndpoint. + public let subnetId: String? + /// The public key to be used by this DevEndpoint for authentication. + public let publicKey: String? + /// The status of the last update. + public let lastUpdateStatus: String? + /// Path(s) to one or more Python libraries in an S3 bucket that should be loaded in your DevEndpoint. Multiple values must be complete paths separated by a comma. Please note that only pure Python libraries can currently be used on a DevEndpoint. Libraries that rely on C extensions, such as the pandas Python data analysis library, are not yet supported. + public let extraPythonLibsS3Path: String? + /// A list of security group identifiers used in this DevEndpoint. + public let securityGroupIds: [String]? + /// The name of the DevEndpoint. + public let endpointName: String? + /// The AWS availability zone where this DevEndpoint is located. + public let availabilityZone: String? + /// The point in time at which this DevEndpoint was created. + public let createdTimestamp: TimeStamp? + /// The Apache Zeppelin port for the remote Apache Spark interpreter. + public let zeppelinRemoteSparkInterpreterPort: Int32? + /// The current status of this DevEndpoint. + public let status: String? + /// The public address used by this DevEndpoint. + public let publicAddress: String? + /// The ID of the virtual private cloud (VPC) used by this DevEndpoint. + public let vpcId: String? + /// The YARN endpoint address used by this DevEndpoint. + public let yarnEndpointAddress: String? + /// The number of AWS Glue Data Processing Units (DPUs) allocated to this DevEndpoint. + public let numberOfNodes: Int32? + /// Path to one or more Java Jars in an S3 bucket that should be loaded in your DevEndpoint. Please note that only pure Java/Scala libraries can currently be used on a DevEndpoint. + public let extraJarsS3Path: String? + /// The reason for a current failure in this DevEndpoint. + public let failureReason: String? + /// The AWS ARN of the IAM role used in this DevEndpoint. + public let roleArn: String? + /// The point in time at which this DevEndpoint was last modified. + public let lastModifiedTimestamp: TimeStamp? + + public init(subnetId: String? = nil, publicKey: String? = nil, lastUpdateStatus: String? = nil, extraPythonLibsS3Path: String? = nil, securityGroupIds: [String]? = nil, endpointName: String? = nil, availabilityZone: String? = nil, createdTimestamp: TimeStamp? = nil, zeppelinRemoteSparkInterpreterPort: Int32? = nil, status: String? = nil, publicAddress: String? = nil, vpcId: String? = nil, yarnEndpointAddress: String? = nil, numberOfNodes: Int32? = nil, extraJarsS3Path: String? = nil, failureReason: String? = nil, roleArn: String? = nil, lastModifiedTimestamp: TimeStamp? = nil) { + self.subnetId = subnetId + self.publicKey = publicKey + self.lastUpdateStatus = lastUpdateStatus + self.extraPythonLibsS3Path = extraPythonLibsS3Path + self.securityGroupIds = securityGroupIds + self.endpointName = endpointName + self.availabilityZone = availabilityZone + self.createdTimestamp = createdTimestamp + self.zeppelinRemoteSparkInterpreterPort = zeppelinRemoteSparkInterpreterPort + self.status = status + self.publicAddress = publicAddress + self.vpcId = vpcId + self.yarnEndpointAddress = yarnEndpointAddress + self.numberOfNodes = numberOfNodes + self.extraJarsS3Path = extraJarsS3Path + self.failureReason = failureReason + self.roleArn = roleArn + self.lastModifiedTimestamp = lastModifiedTimestamp + } + + private enum CodingKeys: String, CodingKey { + case subnetId = "SubnetId" + case publicKey = "PublicKey" + case lastUpdateStatus = "LastUpdateStatus" + case extraPythonLibsS3Path = "ExtraPythonLibsS3Path" + case securityGroupIds = "SecurityGroupIds" + case endpointName = "EndpointName" + case availabilityZone = "AvailabilityZone" + case createdTimestamp = "CreatedTimestamp" + case zeppelinRemoteSparkInterpreterPort = "ZeppelinRemoteSparkInterpreterPort" + case status = "Status" + case publicAddress = "PublicAddress" + case vpcId = "VpcId" + case yarnEndpointAddress = "YarnEndpointAddress" + case numberOfNodes = "NumberOfNodes" + case extraJarsS3Path = "ExtraJarsS3Path" + case failureReason = "FailureReason" + case roleArn = "RoleArn" + case lastModifiedTimestamp = "LastModifiedTimestamp" + } + } + + public struct GetCrawlerMetricsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CrawlerMetricsList", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of metrics for the specified crawler. + public let crawlerMetricsList: [CrawlerMetrics]? + /// A continuation token, if the returned list does not contain the last metric available. + public let nextToken: String? + + public init(crawlerMetricsList: [CrawlerMetrics]? = nil, nextToken: String? = nil) { + self.crawlerMetricsList = crawlerMetricsList + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case crawlerMetricsList = "CrawlerMetricsList" + case nextToken = "NextToken" + } + } + + public struct GetJobRunsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobRuns", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of job-run metatdata objects. + public let jobRuns: [JobRun]? + /// A continuation token, if not all reequested job runs have been returned. + public let nextToken: String? + + public init(jobRuns: [JobRun]? = nil, nextToken: String? = nil) { + self.jobRuns = jobRuns + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case jobRuns = "JobRuns" + case nextToken = "NextToken" + } + } + + public struct BatchDeleteConnectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "ConnectionNameList", required: true, type: .list) + ] + /// The ID of the Data Catalog in which the connections reside. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A list of names of the connections to delete. + public let connectionNameList: [String] + + public init(catalogId: String? = nil, connectionNameList: [String]) { + self.catalogId = catalogId + self.connectionNameList = connectionNameList + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case connectionNameList = "ConnectionNameList" + } + } + + public struct StartTriggerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string) + ] + /// The name of the trigger that was started. + public let name: String? + + public init(name: String? = nil) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct Column: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Comment", required: false, type: .string) + ] + /// The datatype of data in the Column. + public let `type`: String? + /// The name of the Column. + public let name: String + /// Free-form text comment. + public let comment: String? + + public init(type: String? = nil, name: String, comment: String? = nil) { + self.`type` = `type` + self.name = name + self.comment = comment + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case name = "Name" + case comment = "Comment" + } + } + + public enum DeleteBehavior: String, CustomStringConvertible, Codable { + case log = "LOG" + case deleteFromDatabase = "DELETE_FROM_DATABASE" + case deprecateInDatabase = "DEPRECATE_IN_DATABASE" + public var description: String { return self.rawValue } + } + + public struct ResetJobBookmarkResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobBookmarkEntry", required: false, type: .structure) + ] + /// The reset bookmark entry. + public let jobBookmarkEntry: JobBookmarkEntry? + + public init(jobBookmarkEntry: JobBookmarkEntry? = nil) { + self.jobBookmarkEntry = jobBookmarkEntry + } + + private enum CodingKeys: String, CodingKey { + case jobBookmarkEntry = "JobBookmarkEntry" + } + } + + public struct UpdateConnectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "ConnectionInput", required: true, type: .structure) + ] + /// The ID of the Data Catalog in which the connection resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the connection definition to update. + public let name: String + /// A ConnectionInput object that redefines the connection in question. + public let connectionInput: ConnectionInput + + public init(catalogId: String? = nil, name: String, connectionInput: ConnectionInput) { + self.catalogId = catalogId + self.name = name + self.connectionInput = connectionInput + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case name = "Name" + case connectionInput = "ConnectionInput" + } + } + + public struct GetClassifierRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// Name of the classifier to retrieve. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct SkewedInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SkewedColumnValueLocationMaps", required: false, type: .map), + AWSShapeMember(label: "SkewedColumnNames", required: false, type: .list), + AWSShapeMember(label: "SkewedColumnValues", required: false, type: .list) + ] + /// A mapping of skewed values to the columns that contain them. + public let skewedColumnValueLocationMaps: [String: String]? + /// A list of names of columns that contain skewed values. + public let skewedColumnNames: [String]? + /// A list of values that appear so frequently as to be considered skewed. + public let skewedColumnValues: [String]? + + public init(skewedColumnValueLocationMaps: [String: String]? = nil, skewedColumnNames: [String]? = nil, skewedColumnValues: [String]? = nil) { + self.skewedColumnValueLocationMaps = skewedColumnValueLocationMaps + self.skewedColumnNames = skewedColumnNames + self.skewedColumnValues = skewedColumnValues + } + + private enum CodingKeys: String, CodingKey { + case skewedColumnValueLocationMaps = "SkewedColumnValueLocationMaps" + case skewedColumnNames = "SkewedColumnNames" + case skewedColumnValues = "SkewedColumnValues" + } + } + + public struct GetConnectionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Connection", required: false, type: .structure) + ] + /// The requested connection definition. + public let connection: Connection? + + public init(connection: Connection? = nil) { + self.connection = connection + } + + private enum CodingKeys: String, CodingKey { + case connection = "Connection" + } + } + + public enum TriggerType: String, CustomStringConvertible, Codable { + case scheduled = "SCHEDULED" + case conditional = "CONDITIONAL" + case onDemand = "ON_DEMAND" + public var description: String { return self.rawValue } + } + + public struct JdbcTarget: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Exclusions", required: false, type: .list), + AWSShapeMember(label: "ConnectionName", required: false, type: .string), + AWSShapeMember(label: "Path", required: false, type: .string) + ] + /// A list of glob patterns used to exclude from the crawl. For more information, see Catalog Tables with a Crawler. + public let exclusions: [String]? + /// The name of the connection to use to connect to the JDBC target. + public let connectionName: String? + /// The path of the JDBC target. + public let path: String? + + public init(exclusions: [String]? = nil, connectionName: String? = nil, path: String? = nil) { + self.exclusions = exclusions + self.connectionName = connectionName + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case exclusions = "Exclusions" + case connectionName = "ConnectionName" + case path = "Path" + } + } + + public struct ResourceUri: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceType", required: false, type: .enum), + AWSShapeMember(label: "Uri", required: false, type: .string) + ] + /// The type of the resource. + public let resourceType: ResourceType? + /// The URI for accessing the resource. + public let uri: String? + + public init(resourceType: ResourceType? = nil, uri: String? = nil) { + self.resourceType = resourceType + self.uri = uri + } + + private enum CodingKeys: String, CodingKey { + case resourceType = "ResourceType" + case uri = "Uri" + } + } + + public struct Connection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastUpdatedTime", required: false, type: .timestamp), + AWSShapeMember(label: "LastUpdatedBy", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "ConnectionType", required: false, type: .enum), + AWSShapeMember(label: "MatchCriteria", required: false, type: .list), + AWSShapeMember(label: "PhysicalConnectionRequirements", required: false, type: .structure), + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "ConnectionProperties", required: false, type: .map), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The last time this connection definition was updated. + public let lastUpdatedTime: TimeStamp? + /// The user, group or role that last updated this connection definition. + public let lastUpdatedBy: String? + /// The name of the connection definition. + public let name: String? + /// The type of the connection. Currently, only JDBC is supported; SFTP is not supported. + public let connectionType: ConnectionType? + /// A list of criteria that can be used in selecting this connection. + public let matchCriteria: [String]? + /// A map of physical connection requirements, such as VPC and SecurityGroup, needed for making this connection successfully. + public let physicalConnectionRequirements: PhysicalConnectionRequirements? + /// The time this connection definition was created. + public let creationTime: TimeStamp? + /// A list of key-value pairs used as parameters for this connection. + public let connectionProperties: [ConnectionPropertyKey: String]? + /// Description of the connection. + public let description: String? + + public init(lastUpdatedTime: TimeStamp? = nil, lastUpdatedBy: String? = nil, name: String? = nil, connectionType: ConnectionType? = nil, matchCriteria: [String]? = nil, physicalConnectionRequirements: PhysicalConnectionRequirements? = nil, creationTime: TimeStamp? = nil, connectionProperties: [ConnectionPropertyKey: String]? = nil, description: String? = nil) { + self.lastUpdatedTime = lastUpdatedTime + self.lastUpdatedBy = lastUpdatedBy + self.name = name + self.connectionType = connectionType + self.matchCriteria = matchCriteria + self.physicalConnectionRequirements = physicalConnectionRequirements + self.creationTime = creationTime + self.connectionProperties = connectionProperties + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case lastUpdatedTime = "LastUpdatedTime" + case lastUpdatedBy = "LastUpdatedBy" + case name = "Name" + case connectionType = "ConnectionType" + case matchCriteria = "MatchCriteria" + case physicalConnectionRequirements = "PhysicalConnectionRequirements" + case creationTime = "CreationTime" + case connectionProperties = "ConnectionProperties" + case description = "Description" + } + } + + public struct UpdateConnectionResponse: AWSShape { + + } + + public struct CreatePartitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PartitionInput", required: true, type: .structure), + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// A PartitionInput structure defining the partition to be created. + public let partitionInput: PartitionInput + /// The name of the metadata table in which the partition is to be created. + public let tableName: String + /// The ID of the catalog in which the partion is to be created. Currently, this should be the AWS account ID. + public let catalogId: String? + /// The name of the metadata database in which the partition is to be created. + public let databaseName: String + + public init(partitionInput: PartitionInput, tableName: String, catalogId: String? = nil, databaseName: String) { + self.partitionInput = partitionInput + self.tableName = tableName + self.catalogId = catalogId + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case partitionInput = "PartitionInput" + case tableName = "TableName" + case catalogId = "CatalogId" + case databaseName = "DatabaseName" + } + } + + public struct BatchDeletePartitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Errors", required: false, type: .list) + ] + /// Errors encountered when trying to delete the requested partitions. + public let errors: [PartitionError]? + + public init(errors: [PartitionError]? = nil) { + self.errors = errors + } + + private enum CodingKeys: String, CodingKey { + case errors = "Errors" + } + } + + public struct DeletePartitionResponse: AWSShape { + + } + + public enum UpdateBehavior: String, CustomStringConvertible, Codable { + case log = "LOG" + case updateInDatabase = "UPDATE_IN_DATABASE" + public var description: String { return self.rawValue } + } + + public struct CreateScriptResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PythonScript", required: false, type: .string) + ] + /// The Python script generated from the DAG. + public let pythonScript: String? + + public init(pythonScript: String? = nil) { + self.pythonScript = pythonScript + } + + private enum CodingKeys: String, CodingKey { + case pythonScript = "PythonScript" + } + } + + public struct DeleteTriggerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string) + ] + /// The name of the trigger that was deleted. + public let name: String? + + public init(name: String? = nil) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct GetCrawlerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Crawler", required: false, type: .structure) + ] + /// The metadata for the specified crawler. + public let crawler: Crawler? + + public init(crawler: Crawler? = nil) { + self.crawler = crawler + } + + private enum CodingKeys: String, CodingKey { + case crawler = "Crawler" + } + } + + public struct GetDataflowGraphResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DagEdges", required: false, type: .list), + AWSShapeMember(label: "DagNodes", required: false, type: .list) + ] + /// A list of the edges in the resulting DAG. + public let dagEdges: [CodeGenEdge]? + /// A list of the nodes in the resulting DAG. + public let dagNodes: [CodeGenNode]? + + public init(dagEdges: [CodeGenEdge]? = nil, dagNodes: [CodeGenNode]? = nil) { + self.dagEdges = dagEdges + self.dagNodes = dagNodes + } + + private enum CodingKeys: String, CodingKey { + case dagEdges = "DagEdges" + case dagNodes = "DagNodes" + } + } + + public struct JobBookmarkEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Run", required: false, type: .integer), + AWSShapeMember(label: "Attempt", required: false, type: .integer), + AWSShapeMember(label: "JobName", required: false, type: .string), + AWSShapeMember(label: "JobBookmark", required: false, type: .string), + AWSShapeMember(label: "Version", required: false, type: .integer) + ] + /// The run ID number. + public let run: Int32? + /// The attempt ID number. + public let attempt: Int32? + /// Name of the job in question. + public let jobName: String? + /// The bookmark itself. + public let jobBookmark: String? + /// Version of the job. + public let version: Int32? + + public init(run: Int32? = nil, attempt: Int32? = nil, jobName: String? = nil, jobBookmark: String? = nil, version: Int32? = nil) { + self.run = run + self.attempt = attempt + self.jobName = jobName + self.jobBookmark = jobBookmark + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case run = "Run" + case attempt = "Attempt" + case jobName = "JobName" + case jobBookmark = "JobBookmark" + case version = "Version" + } + } + + public struct GetTableVersionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableVersions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of strings identifying available versions of the specified table. + public let tableVersions: [TableVersion]? + /// A continuation token, if the list of available versions does not include the last one. + public let nextToken: String? + + public init(tableVersions: [TableVersion]? = nil, nextToken: String? = nil) { + self.tableVersions = tableVersions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case tableVersions = "TableVersions" + case nextToken = "NextToken" + } + } + + public struct DeleteCrawlerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// Name of the crawler to remove. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct UpdateUserDefinedFunctionResponse: AWSShape { + + } + + public struct GetTriggerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The name of the trigger to retrieve. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct Condition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobName", required: false, type: .string), + AWSShapeMember(label: "State", required: false, type: .enum), + AWSShapeMember(label: "LogicalOperator", required: false, type: .enum) + ] + /// The name of the job in question. + public let jobName: String? + /// The condition state. + public let state: JobRunState? + /// A logical operator. + public let logicalOperator: LogicalOperator? + + public init(jobName: String? = nil, state: JobRunState? = nil, logicalOperator: LogicalOperator? = nil) { + self.jobName = jobName + self.state = state + self.logicalOperator = logicalOperator + } + + private enum CodingKeys: String, CodingKey { + case jobName = "JobName" + case state = "State" + case logicalOperator = "LogicalOperator" + } + } + + public struct UpdateUserDefinedFunctionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FunctionInput", required: true, type: .structure), + AWSShapeMember(label: "FunctionName", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// A FunctionInput object that re-defines the function in the Data Catalog. + public let functionInput: UserDefinedFunctionInput + /// The name of the function. + public let functionName: String + /// The ID of the Data Catalog where the function to be updated is located. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the catalog database where the function to be updated is located. + public let databaseName: String + + public init(functionInput: UserDefinedFunctionInput, functionName: String, catalogId: String? = nil, databaseName: String) { + self.functionInput = functionInput + self.functionName = functionName + self.catalogId = catalogId + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case functionInput = "FunctionInput" + case functionName = "FunctionName" + case catalogId = "CatalogId" + case databaseName = "DatabaseName" + } + } + + public struct UpdateClassifierRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GrokClassifier", required: false, type: .structure), + AWSShapeMember(label: "XMLClassifier", required: false, type: .structure) + ] + /// A GrokClassifier object with updated fields. + public let grokClassifier: UpdateGrokClassifierRequest? + /// An XMLClassifier object with updated fields. + public let xMLClassifier: UpdateXMLClassifierRequest? + + public init(grokClassifier: UpdateGrokClassifierRequest? = nil, xMLClassifier: UpdateXMLClassifierRequest? = nil) { + self.grokClassifier = grokClassifier + self.xMLClassifier = xMLClassifier + } + + private enum CodingKeys: String, CodingKey { + case grokClassifier = "GrokClassifier" + case xMLClassifier = "XMLClassifier" + } + } + + public struct TableError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorDetail", required: false, type: .structure), + AWSShapeMember(label: "TableName", required: false, type: .string) + ] + /// Detail about the error. + public let errorDetail: ErrorDetail? + /// Name of the table. + public let tableName: String? + + public init(errorDetail: ErrorDetail? = nil, tableName: String? = nil) { + self.errorDetail = errorDetail + self.tableName = tableName + } + + private enum CodingKeys: String, CodingKey { + case errorDetail = "ErrorDetail" + case tableName = "TableName" + } + } + + public struct StartCrawlerScheduleResponse: AWSShape { + + } + + public struct GetJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobName", required: true, type: .string) + ] + /// The name of the job to retrieve. + public let jobName: String + + public init(jobName: String) { + self.jobName = jobName + } + + private enum CodingKeys: String, CodingKey { + case jobName = "JobName" + } + } + + public struct CreateUserDefinedFunctionResponse: AWSShape { + + } + + public struct ResetJobBookmarkRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobName", required: true, type: .string) + ] + /// The name of the job in question. + public let jobName: String + + public init(jobName: String) { + self.jobName = jobName + } + + private enum CodingKeys: String, CodingKey { + case jobName = "JobName" + } + } + + public struct GetPartitionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Partitions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of requested partitions. + public let partitions: [Partition]? + /// A continuation token, if the returned list of partitions does not does not include the last one. + public let nextToken: String? + + public init(partitions: [Partition]? = nil, nextToken: String? = nil) { + self.partitions = partitions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case partitions = "Partitions" + case nextToken = "NextToken" + } + } + + public struct UpdateCrawlerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TablePrefix", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "DatabaseName", required: false, type: .string), + AWSShapeMember(label: "Targets", required: false, type: .structure), + AWSShapeMember(label: "Role", required: false, type: .string), + AWSShapeMember(label: "Configuration", required: false, type: .string), + AWSShapeMember(label: "Schedule", required: false, type: .string), + AWSShapeMember(label: "Classifiers", required: false, type: .list), + AWSShapeMember(label: "SchemaChangePolicy", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The table prefix used for catalog tables that are created. + public let tablePrefix: String? + /// Name of the new crawler. + public let name: String + /// The AWS Glue database where results are stored, such as: arn:aws:daylight:us-east-1::database/sometable/*. + public let databaseName: String? + /// A list of targets to crawl. + public let targets: CrawlerTargets? + /// The IAM role (or ARN of an IAM role) used by the new crawler to access customer resources. + public let role: String? + /// Crawler configuration information. This versioned JSON string allows users to specify aspects of a Crawler's behavior. You can use this field to force partitions to inherit metadata such as classification, input format, output format, serde information, and schema from their parent table, rather than detect this information separately for each partition. Use the following JSON string to specify that behavior: + public let configuration: String? + /// A cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *). + public let schedule: String? + /// A list of custom classifiers that the user has registered. By default, all classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification. + public let classifiers: [String]? + /// Policy for the crawler's update and deletion behavior. + public let schemaChangePolicy: SchemaChangePolicy? + /// A description of the new crawler. + public let description: String? + + public init(tablePrefix: String? = nil, name: String, databaseName: String? = nil, targets: CrawlerTargets? = nil, role: String? = nil, configuration: String? = nil, schedule: String? = nil, classifiers: [String]? = nil, schemaChangePolicy: SchemaChangePolicy? = nil, description: String? = nil) { + self.tablePrefix = tablePrefix + self.name = name + self.databaseName = databaseName + self.targets = targets + self.role = role + self.configuration = configuration + self.schedule = schedule + self.classifiers = classifiers + self.schemaChangePolicy = schemaChangePolicy + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case tablePrefix = "TablePrefix" + case name = "Name" + case databaseName = "DatabaseName" + case targets = "Targets" + case role = "Role" + case configuration = "Configuration" + case schedule = "Schedule" + case classifiers = "Classifiers" + case schemaChangePolicy = "SchemaChangePolicy" + case description = "Description" + } + } + + public struct PhysicalConnectionRequirements: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "SecurityGroupIdList", required: false, type: .list), + AWSShapeMember(label: "SubnetId", required: false, type: .string) + ] + /// The connection's availability zone. + public let availabilityZone: String? + /// The security group ID list used by the connection. + public let securityGroupIdList: [String]? + /// The subnet ID used by the connection. + public let subnetId: String? + + public init(availabilityZone: String? = nil, securityGroupIdList: [String]? = nil, subnetId: String? = nil) { + self.availabilityZone = availabilityZone + self.securityGroupIdList = securityGroupIdList + self.subnetId = subnetId + } + + private enum CodingKeys: String, CodingKey { + case availabilityZone = "AvailabilityZone" + case securityGroupIdList = "SecurityGroupIdList" + case subnetId = "SubnetId" + } + } + + public struct GetJobRunRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobName", required: true, type: .string), + AWSShapeMember(label: "RunId", required: true, type: .string), + AWSShapeMember(label: "PredecessorsIncluded", required: false, type: .boolean) + ] + /// Name of the job being run. + public let jobName: String + /// The ID of the job run. + public let runId: String + /// A list of the predecessor runs to return as well. + public let predecessorsIncluded: Bool? + + public init(jobName: String, runId: String, predecessorsIncluded: Bool? = nil) { + self.jobName = jobName + self.runId = runId + self.predecessorsIncluded = predecessorsIncluded + } + + private enum CodingKeys: String, CodingKey { + case jobName = "JobName" + case runId = "RunId" + case predecessorsIncluded = "PredecessorsIncluded" + } + } + + public struct DeleteJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobName", required: false, type: .string) + ] + /// The name of the job that was deleted. + public let jobName: String? + + public init(jobName: String? = nil) { + self.jobName = jobName + } + + private enum CodingKeys: String, CodingKey { + case jobName = "JobName" + } + } + + public struct StorageDescriptor: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputFormat", required: false, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "Location", required: false, type: .string), + AWSShapeMember(label: "BucketColumns", required: false, type: .list), + AWSShapeMember(label: "Columns", required: false, type: .list), + AWSShapeMember(label: "SkewedInfo", required: false, type: .structure), + AWSShapeMember(label: "OutputFormat", required: false, type: .string), + AWSShapeMember(label: "StoredAsSubDirectories", required: false, type: .boolean), + AWSShapeMember(label: "SortColumns", required: false, type: .list), + AWSShapeMember(label: "SerdeInfo", required: false, type: .structure), + AWSShapeMember(label: "NumberOfBuckets", required: false, type: .integer), + AWSShapeMember(label: "Compressed", required: false, type: .boolean) + ] + /// The input format: SequenceFileInputFormat (binary), or TextInputFormat, or a custom format. + public let inputFormat: String? + /// User-supplied properties in key-value form. + public let parameters: [String: String]? + /// The physical location of the table. By default this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name. + public let location: String? + /// A list of reducer grouping columns, clustering columns, and bucketing columns in the table. + public let bucketColumns: [String]? + /// A list of the Columns in the table. + public let columns: [Column]? + /// Information about values that appear very frequently in a column (skewed values). + public let skewedInfo: SkewedInfo? + /// The output format: SequenceFileOutputFormat (binary), or IgnoreKeyTextOutputFormat, or a custom format. + public let outputFormat: String? + /// True if the table data is stored in subdirectories, or False if not. + public let storedAsSubDirectories: Bool? + /// A list specifying the sort order of each bucket in the table. + public let sortColumns: [Order]? + /// Serialization/deserialization (SerDe) information. + public let serdeInfo: SerDeInfo? + /// Must be specified if the table contains any dimension columns. + public let numberOfBuckets: Int32? + /// True if the data in the table is compressed, or False if not. + public let compressed: Bool? + + public init(inputFormat: String? = nil, parameters: [String: String]? = nil, location: String? = nil, bucketColumns: [String]? = nil, columns: [Column]? = nil, skewedInfo: SkewedInfo? = nil, outputFormat: String? = nil, storedAsSubDirectories: Bool? = nil, sortColumns: [Order]? = nil, serdeInfo: SerDeInfo? = nil, numberOfBuckets: Int32? = nil, compressed: Bool? = nil) { + self.inputFormat = inputFormat + self.parameters = parameters + self.location = location + self.bucketColumns = bucketColumns + self.columns = columns + self.skewedInfo = skewedInfo + self.outputFormat = outputFormat + self.storedAsSubDirectories = storedAsSubDirectories + self.sortColumns = sortColumns + self.serdeInfo = serdeInfo + self.numberOfBuckets = numberOfBuckets + self.compressed = compressed + } + + private enum CodingKeys: String, CodingKey { + case inputFormat = "InputFormat" + case parameters = "Parameters" + case location = "Location" + case bucketColumns = "BucketColumns" + case columns = "Columns" + case skewedInfo = "SkewedInfo" + case outputFormat = "OutputFormat" + case storedAsSubDirectories = "StoredAsSubDirectories" + case sortColumns = "SortColumns" + case serdeInfo = "SerdeInfo" + case numberOfBuckets = "NumberOfBuckets" + case compressed = "Compressed" + } + } + + public struct BatchGetPartitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UnprocessedKeys", required: false, type: .list), + AWSShapeMember(label: "Partitions", required: false, type: .list) + ] + /// A list of the partition values in the request for which partions were not returned. + public let unprocessedKeys: [PartitionValueList]? + /// A list of the requested partitions. + public let partitions: [Partition]? + + public init(unprocessedKeys: [PartitionValueList]? = nil, partitions: [Partition]? = nil) { + self.unprocessedKeys = unprocessedKeys + self.partitions = partitions + } + + private enum CodingKeys: String, CodingKey { + case unprocessedKeys = "UnprocessedKeys" + case partitions = "Partitions" + } + } + + public struct GetUserDefinedFunctionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserDefinedFunction", required: false, type: .structure) + ] + /// The requested function definition. + public let userDefinedFunction: UserDefinedFunction? + + public init(userDefinedFunction: UserDefinedFunction? = nil) { + self.userDefinedFunction = userDefinedFunction + } + + private enum CodingKeys: String, CodingKey { + case userDefinedFunction = "UserDefinedFunction" + } + } + + public struct CodeGenEdge: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetParameter", required: false, type: .string), + AWSShapeMember(label: "Target", required: true, type: .string), + AWSShapeMember(label: "Source", required: true, type: .string) + ] + /// The target of the edge. + public let targetParameter: String? + /// The ID of the node at which the edge ends. + public let target: String + /// The ID of the node at which the edge starts. + public let source: String + + public init(targetParameter: String? = nil, target: String, source: String) { + self.targetParameter = targetParameter + self.target = target + self.source = source + } + + private enum CodingKeys: String, CodingKey { + case targetParameter = "TargetParameter" + case target = "Target" + case source = "Source" + } + } + + public struct JobRun: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PredecessorRuns", required: false, type: .list), + AWSShapeMember(label: "CompletedOn", required: false, type: .timestamp), + AWSShapeMember(label: "JobRunState", required: false, type: .enum), + AWSShapeMember(label: "ErrorMessage", required: false, type: .string), + AWSShapeMember(label: "AllocatedCapacity", required: false, type: .integer), + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "StartedOn", required: false, type: .timestamp), + AWSShapeMember(label: "Attempt", required: false, type: .integer), + AWSShapeMember(label: "TriggerName", required: false, type: .string), + AWSShapeMember(label: "LastModifiedOn", required: false, type: .timestamp), + AWSShapeMember(label: "PreviousRunId", required: false, type: .string), + AWSShapeMember(label: "Arguments", required: false, type: .map), + AWSShapeMember(label: "JobName", required: false, type: .string) + ] + /// A list of predecessors to this job run. + public let predecessorRuns: [Predecessor]? + /// The date and time this job run completed. + public let completedOn: TimeStamp? + /// The current state of the job run. + public let jobRunState: JobRunState? + /// An error message associated with this job run. + public let errorMessage: String? + /// The amount of infrastructure capacity allocated to this job run. + public let allocatedCapacity: Int32? + /// The ID of this job run. + public let id: String? + /// The date and time at which this job run was started. + public let startedOn: TimeStamp? + /// The number or the attempt to run this job. + public let attempt: Int32? + /// The name of the trigger for this job run. + public let triggerName: String? + /// The last time this job run was modified. + public let lastModifiedOn: TimeStamp? + /// The ID of the previous run of this job. + public let previousRunId: String? + /// The job arguments associated with this run. + public let arguments: [String: String]? + /// The name of the job being run. + public let jobName: String? + + public init(predecessorRuns: [Predecessor]? = nil, completedOn: TimeStamp? = nil, jobRunState: JobRunState? = nil, errorMessage: String? = nil, allocatedCapacity: Int32? = nil, id: String? = nil, startedOn: TimeStamp? = nil, attempt: Int32? = nil, triggerName: String? = nil, lastModifiedOn: TimeStamp? = nil, previousRunId: String? = nil, arguments: [String: String]? = nil, jobName: String? = nil) { + self.predecessorRuns = predecessorRuns + self.completedOn = completedOn + self.jobRunState = jobRunState + self.errorMessage = errorMessage + self.allocatedCapacity = allocatedCapacity + self.id = id + self.startedOn = startedOn + self.attempt = attempt + self.triggerName = triggerName + self.lastModifiedOn = lastModifiedOn + self.previousRunId = previousRunId + self.arguments = arguments + self.jobName = jobName + } + + private enum CodingKeys: String, CodingKey { + case predecessorRuns = "PredecessorRuns" + case completedOn = "CompletedOn" + case jobRunState = "JobRunState" + case errorMessage = "ErrorMessage" + case allocatedCapacity = "AllocatedCapacity" + case id = "Id" + case startedOn = "StartedOn" + case attempt = "Attempt" + case triggerName = "TriggerName" + case lastModifiedOn = "LastModifiedOn" + case previousRunId = "PreviousRunId" + case arguments = "Arguments" + case jobName = "JobName" + } + } + + public struct CreateConnectionResponse: AWSShape { + + } + + public struct CodeGenNodeArg: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Param", required: false, type: .boolean) + ] + /// The value of the argument or property. + public let value: String + /// The name of the argument or property. + public let name: String + /// True if the value is used as a parameter. + public let param: Bool? + + public init(value: String, name: String, param: Bool? = nil) { + self.value = value + self.name = name + self.param = param + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case name = "Name" + case param = "Param" + } + } + + public struct BatchStopJobRunError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorDetail", required: false, type: .structure), + AWSShapeMember(label: "JobName", required: false, type: .string), + AWSShapeMember(label: "JobRunId", required: false, type: .string) + ] + /// The details of the error that occurred. + public let errorDetail: ErrorDetail? + /// The name of the job. + public let jobName: String? + /// The job run Id. + public let jobRunId: String? + + public init(errorDetail: ErrorDetail? = nil, jobName: String? = nil, jobRunId: String? = nil) { + self.errorDetail = errorDetail + self.jobName = jobName + self.jobRunId = jobRunId + } + + private enum CodingKeys: String, CodingKey { + case errorDetail = "ErrorDetail" + case jobName = "JobName" + case jobRunId = "JobRunId" + } + } + + public struct CreateConnectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "ConnectionInput", required: true, type: .structure) + ] + /// The ID of the Data Catalog in which to create the connection. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A ConnectionInput object defining the connection to create. + public let connectionInput: ConnectionInput + + public init(catalogId: String? = nil, connectionInput: ConnectionInput) { + self.catalogId = catalogId + self.connectionInput = connectionInput + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case connectionInput = "ConnectionInput" + } + } + + public struct GetConnectionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ConnectionList", required: false, type: .list) + ] + /// A continuation token, if the list of connections returned does not include the last of the filtered connections. + public let nextToken: String? + /// A list of requested connection definitions. + public let connectionList: [Connection]? + + public init(nextToken: String? = nil, connectionList: [Connection]? = nil) { + self.nextToken = nextToken + self.connectionList = connectionList + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case connectionList = "ConnectionList" + } + } + + public struct UpdateCrawlerResponse: AWSShape { + + } + + public struct GetCrawlersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Crawlers", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of crawler metadata. + public let crawlers: [Crawler]? + /// A continuation token, if the returned list has not reached the end of those defined in this customer account. + public let nextToken: String? + + public init(crawlers: [Crawler]? = nil, nextToken: String? = nil) { + self.crawlers = crawlers + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case crawlers = "Crawlers" + case nextToken = "NextToken" + } + } + + public struct Predicate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Logical", required: false, type: .enum), + AWSShapeMember(label: "Conditions", required: false, type: .list) + ] + /// Currently "OR" is not supported. + public let logical: Logical? + /// A list of the conditions that determine when the trigger will fire. + public let conditions: [Condition]? + + public init(logical: Logical? = nil, conditions: [Condition]? = nil) { + self.logical = logical + self.conditions = conditions + } + + private enum CodingKeys: String, CodingKey { + case logical = "Logical" + case conditions = "Conditions" + } + } + + public struct CreateCrawlerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TablePrefix", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string), + AWSShapeMember(label: "Targets", required: true, type: .structure), + AWSShapeMember(label: "Role", required: true, type: .string), + AWSShapeMember(label: "Configuration", required: false, type: .string), + AWSShapeMember(label: "Schedule", required: false, type: .string), + AWSShapeMember(label: "Classifiers", required: false, type: .list), + AWSShapeMember(label: "SchemaChangePolicy", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The table prefix used for catalog tables that are created. + public let tablePrefix: String? + /// Name of the new crawler. + public let name: String + /// The AWS Glue database where results are written, such as: arn:aws:daylight:us-east-1::database/sometable/*. + public let databaseName: String + /// A list of collection of targets to crawl. + public let targets: CrawlerTargets + /// The IAM role (or ARN of an IAM role) used by the new crawler to access customer resources. + public let role: String + /// Crawler configuration information. This versioned JSON string allows users to specify aspects of a Crawler's behavior. You can use this field to force partitions to inherit metadata such as classification, input format, output format, serde information, and schema from their parent table, rather than detect this information separately for each partition. + public let configuration: String? + /// A cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *). + public let schedule: String? + /// A list of custom classifiers that the user has registered. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification. + public let classifiers: [String]? + /// Policy for the crawler's update and deletion behavior. + public let schemaChangePolicy: SchemaChangePolicy? + /// A description of the new crawler. + public let description: String? + + public init(tablePrefix: String? = nil, name: String, databaseName: String, targets: CrawlerTargets, role: String, configuration: String? = nil, schedule: String? = nil, classifiers: [String]? = nil, schemaChangePolicy: SchemaChangePolicy? = nil, description: String? = nil) { + self.tablePrefix = tablePrefix + self.name = name + self.databaseName = databaseName + self.targets = targets + self.role = role + self.configuration = configuration + self.schedule = schedule + self.classifiers = classifiers + self.schemaChangePolicy = schemaChangePolicy + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case tablePrefix = "TablePrefix" + case name = "Name" + case databaseName = "DatabaseName" + case targets = "Targets" + case role = "Role" + case configuration = "Configuration" + case schedule = "Schedule" + case classifiers = "Classifiers" + case schemaChangePolicy = "SchemaChangePolicy" + case description = "Description" + } + } + + public struct GetDataflowGraphRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PythonScript", required: false, type: .string) + ] + /// The Python script to transform. + public let pythonScript: String? + + public init(pythonScript: String? = nil) { + self.pythonScript = pythonScript + } + + private enum CodingKeys: String, CodingKey { + case pythonScript = "PythonScript" + } + } + + public struct ExecutionProperty: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxConcurrentRuns", required: false, type: .integer) + ] + /// The maximum number of concurrent runs allowed for a job. + public let maxConcurrentRuns: Int32? + + public init(maxConcurrentRuns: Int32? = nil) { + self.maxConcurrentRuns = maxConcurrentRuns + } + + private enum CodingKeys: String, CodingKey { + case maxConcurrentRuns = "MaxConcurrentRuns" + } + } + + public struct GetCatalogImportStatusResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ImportStatus", required: false, type: .structure) + ] + /// The status of the specified catalog migration. + public let importStatus: CatalogImportStatus? + + public init(importStatus: CatalogImportStatus? = nil) { + self.importStatus = importStatus + } + + private enum CodingKeys: String, CodingKey { + case importStatus = "ImportStatus" + } + } + + public struct BatchCreatePartitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Errors", required: false, type: .list) + ] + /// Errors encountered when trying to create the requested partitions. + public let errors: [PartitionError]? + + public init(errors: [PartitionError]? = nil) { + self.errors = errors + } + + private enum CodingKeys: String, CodingKey { + case errors = "Errors" + } + } + + public struct GetPartitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PartitionValues", required: true, type: .list), + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The values that define the partition. + public let partitionValues: [String] + /// The name of the partition's table. + public let tableName: String + /// The ID of the Data Catalog where the partition in question resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the catalog database where the partition resides. + public let databaseName: String + + public init(partitionValues: [String], tableName: String, catalogId: String? = nil, databaseName: String) { + self.partitionValues = partitionValues + self.tableName = tableName + self.catalogId = catalogId + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case partitionValues = "PartitionValues" + case tableName = "TableName" + case catalogId = "CatalogId" + case databaseName = "DatabaseName" + } + } + + public struct ImportCatalogToGlueRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string) + ] + /// The ID of the catalog to import. Currently, this should be the AWS account ID. + public let catalogId: String? + + public init(catalogId: String? = nil) { + self.catalogId = catalogId + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + } + } + + public struct UpdatePartitionResponse: AWSShape { + + } + + public struct CreateScriptRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DagEdges", required: false, type: .list), + AWSShapeMember(label: "DagNodes", required: false, type: .list) + ] + /// A list of the edges in the DAG. + public let dagEdges: [CodeGenEdge]? + /// A list of the nodes in the DAG. + public let dagNodes: [CodeGenNode]? + + public init(dagEdges: [CodeGenEdge]? = nil, dagNodes: [CodeGenNode]? = nil) { + self.dagEdges = dagEdges + self.dagNodes = dagNodes + } + + private enum CodingKeys: String, CodingKey { + case dagEdges = "DagEdges" + case dagNodes = "DagNodes" + } + } + + public struct UpdateJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobUpdate", required: true, type: .structure), + AWSShapeMember(label: "JobName", required: true, type: .string) + ] + /// Specifies the values with which to update the job. + public let jobUpdate: JobUpdate + /// Name of the job definition to update. + public let jobName: String + + public init(jobUpdate: JobUpdate, jobName: String) { + self.jobUpdate = jobUpdate + self.jobName = jobName + } + + private enum CodingKeys: String, CodingKey { + case jobUpdate = "JobUpdate" + case jobName = "JobName" + } + } + + public struct UpdateTableResponse: AWSShape { + + } + + public struct CreateClassifierResponse: AWSShape { + + } + + public struct UpdateTableRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "TableInput", required: true, type: .structure), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The ID of the Data Catalog where the table resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// An updated TableInput object to define the metadata table in the catalog. + public let tableInput: TableInput + /// The name of the catalog database in which the table resides. + public let databaseName: String + + public init(catalogId: String? = nil, tableInput: TableInput, databaseName: String) { + self.catalogId = catalogId + self.tableInput = tableInput + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case tableInput = "TableInput" + case databaseName = "DatabaseName" + } + } + + public struct GetPlanResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PythonScript", required: false, type: .string) + ] + /// A Python script to perform the mapping. + public let pythonScript: String? + + public init(pythonScript: String? = nil) { + self.pythonScript = pythonScript + } + + private enum CodingKeys: String, CodingKey { + case pythonScript = "PythonScript" + } + } + + public struct Predecessor: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RunId", required: false, type: .string), + AWSShapeMember(label: "JobName", required: false, type: .string) + ] + /// The job-run ID of the precessor job run. + public let runId: String? + /// The name of the predecessor job. + public let jobName: String? + + public init(runId: String? = nil, jobName: String? = nil) { + self.runId = runId + self.jobName = jobName + } + + private enum CodingKeys: String, CodingKey { + case runId = "RunId" + case jobName = "JobName" + } + } + + public struct GetTriggerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Trigger", required: false, type: .structure) + ] + /// The requested trigger definition. + public let trigger: Trigger? + + public init(trigger: Trigger? = nil) { + self.trigger = trigger + } + + private enum CodingKeys: String, CodingKey { + case trigger = "Trigger" + } + } + + public enum TriggerState: String, CustomStringConvertible, Codable { + case creating = "CREATING" + case created = "CREATED" + case activating = "ACTIVATING" + case activated = "ACTIVATED" + case deactivating = "DEACTIVATING" + case deactivated = "DEACTIVATED" + case deleting = "DELETING" + case updating = "UPDATING" + public var description: String { return self.rawValue } + } + + public struct Segment: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TotalSegments", required: true, type: .integer), + AWSShapeMember(label: "SegmentNumber", required: true, type: .integer) + ] + /// The total numer of segments. + public let totalSegments: Int32 + /// The zero-based index number of the this segment. For example, if the total number of segments is 4, SegmentNumber values will range from zero through three. + public let segmentNumber: Int32 + + public init(totalSegments: Int32, segmentNumber: Int32) { + self.totalSegments = totalSegments + self.segmentNumber = segmentNumber + } + + private enum CodingKeys: String, CodingKey { + case totalSegments = "TotalSegments" + case segmentNumber = "SegmentNumber" + } + } + + public struct ConnectionsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Connections", required: false, type: .list) + ] + /// A list of connections used by the job. + public let connections: [String]? + + public init(connections: [String]? = nil) { + self.connections = connections + } + + private enum CodingKeys: String, CodingKey { + case connections = "Connections" + } + } + + public struct GetCatalogImportStatusRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string) + ] + /// The ID of the catalog to migrate. Currently, this should be the AWS account ID. + public let catalogId: String? + + public init(catalogId: String? = nil) { + self.catalogId = catalogId + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + } + } + + public struct CreateClassifierRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GrokClassifier", required: false, type: .structure), + AWSShapeMember(label: "XMLClassifier", required: false, type: .structure) + ] + /// A GrokClassifier object specifying the classifier to create. + public let grokClassifier: CreateGrokClassifierRequest? + /// An XMLClassifier object specifying the classifier to create. + public let xMLClassifier: CreateXMLClassifierRequest? + + public init(grokClassifier: CreateGrokClassifierRequest? = nil, xMLClassifier: CreateXMLClassifierRequest? = nil) { + self.grokClassifier = grokClassifier + self.xMLClassifier = xMLClassifier + } + + private enum CodingKeys: String, CodingKey { + case grokClassifier = "GrokClassifier" + case xMLClassifier = "XMLClassifier" + } + } + + public struct DeletePartitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PartitionValues", required: true, type: .list), + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The values that define the partition. + public let partitionValues: [String] + /// The name of the table where the partition to be deleted is located. + public let tableName: String + /// The ID of the Data Catalog where the partition to be deleted resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the catalog database in which the table in question resides. + public let databaseName: String + + public init(partitionValues: [String], tableName: String, catalogId: String? = nil, databaseName: String) { + self.partitionValues = partitionValues + self.tableName = tableName + self.catalogId = catalogId + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case partitionValues = "PartitionValues" + case tableName = "TableName" + case catalogId = "CatalogId" + case databaseName = "DatabaseName" + } + } + + public struct UpdatePartitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PartitionInput", required: true, type: .structure), + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "PartitionValueList", required: true, type: .list), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The new partition object to which to update the partition. + public let partitionInput: PartitionInput + /// The name of the table where the partition to be updated is located. + public let tableName: String + /// The ID of the Data Catalog where the partition to be updated resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A list of the values defining the partition. + public let partitionValueList: [String] + /// The name of the catalog database in which the table in question resides. + public let databaseName: String + + public init(partitionInput: PartitionInput, tableName: String, catalogId: String? = nil, partitionValueList: [String], databaseName: String) { + self.partitionInput = partitionInput + self.tableName = tableName + self.catalogId = catalogId + self.partitionValueList = partitionValueList + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case partitionInput = "PartitionInput" + case tableName = "TableName" + case catalogId = "CatalogId" + case partitionValueList = "PartitionValueList" + case databaseName = "DatabaseName" + } + } + + public struct CreateXMLClassifierRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Classification", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "RowTag", required: false, type: .string) + ] + /// An identifier of the data format that the classifier matches. + public let classification: String + /// The name of the classifier. + public let name: String + /// The XML tag designating the element that contains each record in an XML document being parsed. Note that this cannot be an empty element. It must contain child elements representing fields in the record. + public let rowTag: String? + + public init(classification: String, name: String, rowTag: String? = nil) { + self.classification = classification + self.name = name + self.rowTag = rowTag + } + + private enum CodingKeys: String, CodingKey { + case classification = "Classification" + case name = "Name" + case rowTag = "RowTag" + } + } + + public struct UpdateCrawlerScheduleResponse: AWSShape { + + } + + public enum ConnectionPropertyKey: String, CustomStringConvertible, Codable { + case host = "HOST" + case port = "PORT" + case username = "USERNAME" + case password = "PASSWORD" + case jdbcDriverJarUri = "JDBC_DRIVER_JAR_URI" + case jdbcDriverClassName = "JDBC_DRIVER_CLASS_NAME" + case jdbcEngine = "JDBC_ENGINE" + case jdbcEngineVersion = "JDBC_ENGINE_VERSION" + case configFiles = "CONFIG_FILES" + case instanceId = "INSTANCE_ID" + case jdbcConnectionUrl = "JDBC_CONNECTION_URL" + public var description: String { return self.rawValue } + } + + public struct GetJobRunResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobRun", required: false, type: .structure) + ] + /// The requested job-run metadata. + public let jobRun: JobRun? + + public init(jobRun: JobRun? = nil) { + self.jobRun = jobRun + } + + private enum CodingKeys: String, CodingKey { + case jobRun = "JobRun" + } + } + + public struct CrawlerMetrics: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TablesDeleted", required: false, type: .integer), + AWSShapeMember(label: "TimeLeftSeconds", required: false, type: .double), + AWSShapeMember(label: "CrawlerName", required: false, type: .string), + AWSShapeMember(label: "LastRuntimeSeconds", required: false, type: .double), + AWSShapeMember(label: "TablesCreated", required: false, type: .integer), + AWSShapeMember(label: "MedianRuntimeSeconds", required: false, type: .double), + AWSShapeMember(label: "StillEstimating", required: false, type: .boolean), + AWSShapeMember(label: "TablesUpdated", required: false, type: .integer) + ] + /// The number of tables deleted by this crawler. + public let tablesDeleted: Int32? + /// The estimated time left to complete a running crawl. + public let timeLeftSeconds: Double? + /// The name of the crawler. + public let crawlerName: String? + /// The duration of the crawler's most recent run, in seconds. + public let lastRuntimeSeconds: Double? + /// The number of tables created by this crawler. + public let tablesCreated: Int32? + /// The median duration of this crawler's runs, in seconds. + public let medianRuntimeSeconds: Double? + /// True if the crawler is still estimating how long it will take to complete this run. + public let stillEstimating: Bool? + /// The number of tables updated by this crawler. + public let tablesUpdated: Int32? + + public init(tablesDeleted: Int32? = nil, timeLeftSeconds: Double? = nil, crawlerName: String? = nil, lastRuntimeSeconds: Double? = nil, tablesCreated: Int32? = nil, medianRuntimeSeconds: Double? = nil, stillEstimating: Bool? = nil, tablesUpdated: Int32? = nil) { + self.tablesDeleted = tablesDeleted + self.timeLeftSeconds = timeLeftSeconds + self.crawlerName = crawlerName + self.lastRuntimeSeconds = lastRuntimeSeconds + self.tablesCreated = tablesCreated + self.medianRuntimeSeconds = medianRuntimeSeconds + self.stillEstimating = stillEstimating + self.tablesUpdated = tablesUpdated + } + + private enum CodingKeys: String, CodingKey { + case tablesDeleted = "TablesDeleted" + case timeLeftSeconds = "TimeLeftSeconds" + case crawlerName = "CrawlerName" + case lastRuntimeSeconds = "LastRuntimeSeconds" + case tablesCreated = "TablesCreated" + case medianRuntimeSeconds = "MedianRuntimeSeconds" + case stillEstimating = "StillEstimating" + case tablesUpdated = "TablesUpdated" + } + } + + public struct GetPartitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Partition", required: false, type: .structure) + ] + /// The requested information, in the form of a Partition object. + public let partition: Partition? + + public init(partition: Partition? = nil) { + self.partition = partition + } + + private enum CodingKeys: String, CodingKey { + case partition = "Partition" + } + } + + public struct XMLClassifier: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Classification", required: true, type: .string), + AWSShapeMember(label: "LastUpdated", required: false, type: .timestamp), + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "RowTag", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Version", required: false, type: .long) + ] + /// An identifier of the data format that the classifier matches. + public let classification: String + /// The time this classifier was last updated. + public let lastUpdated: TimeStamp? + /// The time this classifier was registered. + public let creationTime: TimeStamp? + /// The XML tag designating the element that contains each record in an XML document being parsed. Note that this cannot be an empty element. It must contain child elements representing fields in the record. + public let rowTag: String? + /// The name of the classifier. + public let name: String + /// The version of this classifier. + public let version: Int64? + + public init(classification: String, lastUpdated: TimeStamp? = nil, creationTime: TimeStamp? = nil, rowTag: String? = nil, name: String, version: Int64? = nil) { + self.classification = classification + self.lastUpdated = lastUpdated + self.creationTime = creationTime + self.rowTag = rowTag + self.name = name + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case classification = "Classification" + case lastUpdated = "LastUpdated" + case creationTime = "CreationTime" + case rowTag = "RowTag" + case name = "Name" + case version = "Version" + } + } + + public struct StartCrawlerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// Name of the crawler to start. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct StartJobRunResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobRunId", required: false, type: .string) + ] + /// The ID assigned to this job run. + public let jobRunId: String? + + public init(jobRunId: String? = nil) { + self.jobRunId = jobRunId + } + + private enum CodingKeys: String, CodingKey { + case jobRunId = "JobRunId" + } + } + + public enum ConnectionType: String, CustomStringConvertible, Codable { + case jdbc = "JDBC" + case sftp = "SFTP" + public var description: String { return self.rawValue } + } + + public struct DeleteClassifierResponse: AWSShape { + + } + + public struct BatchDeleteTableResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Errors", required: false, type: .list) + ] + /// A list of errors encountered in attempting to delete the specified tables. + public let errors: [TableError]? + + public init(errors: [TableError]? = nil) { + self.errors = errors + } + + private enum CodingKeys: String, CodingKey { + case errors = "Errors" + } + } + + public struct GetTablesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "TableList", required: false, type: .list) + ] + /// A continuation token, present if the current list segment is not the last. + public let nextToken: String? + /// A list of the requested Table objects. + public let tableList: [Table]? + + public init(nextToken: String? = nil, tableList: [Table]? = nil) { + self.nextToken = nextToken + self.tableList = tableList + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case tableList = "TableList" + } + } + + public struct Classifier: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GrokClassifier", required: false, type: .structure), + AWSShapeMember(label: "XMLClassifier", required: false, type: .structure) + ] + /// A GrokClassifier object. + public let grokClassifier: GrokClassifier? + /// An XMLClassifier object. + public let xMLClassifier: XMLClassifier? + + public init(grokClassifier: GrokClassifier? = nil, xMLClassifier: XMLClassifier? = nil) { + self.grokClassifier = grokClassifier + self.xMLClassifier = xMLClassifier + } + + private enum CodingKeys: String, CodingKey { + case grokClassifier = "GrokClassifier" + case xMLClassifier = "XMLClassifier" + } + } + + public struct SerDeInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "SerializationLibrary", required: false, type: .string) + ] + /// A list of initialization parameters for the SerDe, in key-value form. + public let parameters: [String: String]? + /// Name of the SerDe. + public let name: String? + /// Usually the class that implements the SerDe. An example is: org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe. + public let serializationLibrary: String? + + public init(parameters: [String: String]? = nil, name: String? = nil, serializationLibrary: String? = nil) { + self.parameters = parameters + self.name = name + self.serializationLibrary = serializationLibrary + } + + private enum CodingKeys: String, CodingKey { + case parameters = "Parameters" + case name = "Name" + case serializationLibrary = "SerializationLibrary" + } + } + + public struct LastCrawlInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTime", required: false, type: .timestamp), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "LogGroup", required: false, type: .string), + AWSShapeMember(label: "MessagePrefix", required: false, type: .string), + AWSShapeMember(label: "ErrorMessage", required: false, type: .string), + AWSShapeMember(label: "LogStream", required: false, type: .string) + ] + /// The time at which the crawl started. + public let startTime: TimeStamp? + /// Status of the last crawl. + public let status: LastCrawlStatus? + /// The log group for the last crawl. + public let logGroup: String? + /// The prefix for a message about this crawl. + public let messagePrefix: String? + /// If an error occurred, the error information about the last crawl. + public let errorMessage: String? + /// The log stream for the last crawl. + public let logStream: String? + + public init(startTime: TimeStamp? = nil, status: LastCrawlStatus? = nil, logGroup: String? = nil, messagePrefix: String? = nil, errorMessage: String? = nil, logStream: String? = nil) { + self.startTime = startTime + self.status = status + self.logGroup = logGroup + self.messagePrefix = messagePrefix + self.errorMessage = errorMessage + self.logStream = logStream + } + + private enum CodingKeys: String, CodingKey { + case startTime = "StartTime" + case status = "Status" + case logGroup = "LogGroup" + case messagePrefix = "MessagePrefix" + case errorMessage = "ErrorMessage" + case logStream = "LogStream" + } + } + + public enum ScheduleState: String, CustomStringConvertible, Codable { + case scheduled = "SCHEDULED" + case notScheduled = "NOT_SCHEDULED" + case transitioning = "TRANSITIONING" + public var description: String { return self.rawValue } + } + + public struct TableInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableType", required: false, type: .string), + AWSShapeMember(label: "ViewOriginalText", required: false, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "PartitionKeys", required: false, type: .list), + AWSShapeMember(label: "Retention", required: false, type: .integer), + AWSShapeMember(label: "StorageDescriptor", required: false, type: .structure), + AWSShapeMember(label: "ViewExpandedText", required: false, type: .string), + AWSShapeMember(label: "LastAccessTime", required: false, type: .timestamp), + AWSShapeMember(label: "Owner", required: false, type: .string), + AWSShapeMember(label: "LastAnalyzedTime", required: false, type: .timestamp), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The type of this table (EXTERNAL_TABLE, VIRTUAL_VIEW, etc.). + public let tableType: String? + /// If the table is a view, the original text of the view; otherwise null. + public let viewOriginalText: String? + /// Properties associated with this table, as a list of key-value pairs. + public let parameters: [String: String]? + /// Name of the table. + public let name: String + /// A list of columns by which the table is partitioned. Only primitive types are supported as partition keys. + public let partitionKeys: [Column]? + /// Retention time for this table. + public let retention: Int32? + /// A storage descriptor containing information about the physical storage of this table. + public let storageDescriptor: StorageDescriptor? + /// If the table is a view, the expanded text of the view; otherwise null. + public let viewExpandedText: String? + /// Last time the table was accessed. + public let lastAccessTime: TimeStamp? + /// Owner of the table. + public let owner: String? + /// Last time column statistics were computed for this table. + public let lastAnalyzedTime: TimeStamp? + /// Description of the table. + public let description: String? + + public init(tableType: String? = nil, viewOriginalText: String? = nil, parameters: [String: String]? = nil, name: String, partitionKeys: [Column]? = nil, retention: Int32? = nil, storageDescriptor: StorageDescriptor? = nil, viewExpandedText: String? = nil, lastAccessTime: TimeStamp? = nil, owner: String? = nil, lastAnalyzedTime: TimeStamp? = nil, description: String? = nil) { + self.tableType = tableType + self.viewOriginalText = viewOriginalText + self.parameters = parameters + self.name = name + self.partitionKeys = partitionKeys + self.retention = retention + self.storageDescriptor = storageDescriptor + self.viewExpandedText = viewExpandedText + self.lastAccessTime = lastAccessTime + self.owner = owner + self.lastAnalyzedTime = lastAnalyzedTime + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case tableType = "TableType" + case viewOriginalText = "ViewOriginalText" + case parameters = "Parameters" + case name = "Name" + case partitionKeys = "PartitionKeys" + case retention = "Retention" + case storageDescriptor = "StorageDescriptor" + case viewExpandedText = "ViewExpandedText" + case lastAccessTime = "LastAccessTime" + case owner = "Owner" + case lastAnalyzedTime = "LastAnalyzedTime" + case description = "Description" + } + } + + public enum ResourceType: String, CustomStringConvertible, Codable { + case jar = "JAR" + case file = "FILE" + case archive = "ARCHIVE" + public var description: String { return self.rawValue } + } + + public struct DeleteCrawlerResponse: AWSShape { + + } + + public struct CreateDevEndpointResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetId", required: false, type: .string), + AWSShapeMember(label: "ExtraPythonLibsS3Path", required: false, type: .string), + AWSShapeMember(label: "SecurityGroupIds", required: false, type: .list), + AWSShapeMember(label: "EndpointName", required: false, type: .string), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "CreatedTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "ZeppelinRemoteSparkInterpreterPort", required: false, type: .integer), + AWSShapeMember(label: "VpcId", required: false, type: .string), + AWSShapeMember(label: "YarnEndpointAddress", required: false, type: .string), + AWSShapeMember(label: "NumberOfNodes", required: false, type: .integer), + AWSShapeMember(label: "ExtraJarsS3Path", required: false, type: .string), + AWSShapeMember(label: "FailureReason", required: false, type: .string), + AWSShapeMember(label: "RoleArn", required: false, type: .string) + ] + /// The subnet ID assigned to the new DevEndpoint. + public let subnetId: String? + /// Path(s) to one or more Python libraries in an S3 bucket that will be loaded in your DevEndpoint. + public let extraPythonLibsS3Path: String? + /// The security groups assigned to the new DevEndpoint. + public let securityGroupIds: [String]? + /// The name assigned to the new DevEndpoint. + public let endpointName: String? + /// The AWS availability zone where this DevEndpoint is located. + public let availabilityZone: String? + /// The point in time at which this DevEndpoint was created. + public let createdTimestamp: TimeStamp? + /// The current status of the new DevEndpoint. + public let status: String? + /// The Apache Zeppelin port for the remote Apache Spark interpreter. + public let zeppelinRemoteSparkInterpreterPort: Int32? + /// The ID of the VPC used by this DevEndpoint. + public let vpcId: String? + /// The address of the YARN endpoint used by this DevEndpoint. + public let yarnEndpointAddress: String? + /// The number of AWS Glue Data Processing Units (DPUs) allocated to this DevEndpoint. + public let numberOfNodes: Int32? + /// Path to one or more Java Jars in an S3 bucket that will be loaded in your DevEndpoint. + public let extraJarsS3Path: String? + /// The reason for a current failure in this DevEndpoint. + public let failureReason: String? + /// The AWS ARN of the role assigned to the new DevEndpoint. + public let roleArn: String? + + public init(subnetId: String? = nil, extraPythonLibsS3Path: String? = nil, securityGroupIds: [String]? = nil, endpointName: String? = nil, availabilityZone: String? = nil, createdTimestamp: TimeStamp? = nil, status: String? = nil, zeppelinRemoteSparkInterpreterPort: Int32? = nil, vpcId: String? = nil, yarnEndpointAddress: String? = nil, numberOfNodes: Int32? = nil, extraJarsS3Path: String? = nil, failureReason: String? = nil, roleArn: String? = nil) { + self.subnetId = subnetId + self.extraPythonLibsS3Path = extraPythonLibsS3Path + self.securityGroupIds = securityGroupIds + self.endpointName = endpointName + self.availabilityZone = availabilityZone + self.createdTimestamp = createdTimestamp + self.status = status + self.zeppelinRemoteSparkInterpreterPort = zeppelinRemoteSparkInterpreterPort + self.vpcId = vpcId + self.yarnEndpointAddress = yarnEndpointAddress + self.numberOfNodes = numberOfNodes + self.extraJarsS3Path = extraJarsS3Path + self.failureReason = failureReason + self.roleArn = roleArn + } + + private enum CodingKeys: String, CodingKey { + case subnetId = "SubnetId" + case extraPythonLibsS3Path = "ExtraPythonLibsS3Path" + case securityGroupIds = "SecurityGroupIds" + case endpointName = "EndpointName" + case availabilityZone = "AvailabilityZone" + case createdTimestamp = "CreatedTimestamp" + case status = "Status" + case zeppelinRemoteSparkInterpreterPort = "ZeppelinRemoteSparkInterpreterPort" + case vpcId = "VpcId" + case yarnEndpointAddress = "YarnEndpointAddress" + case numberOfNodes = "NumberOfNodes" + case extraJarsS3Path = "ExtraJarsS3Path" + case failureReason = "FailureReason" + case roleArn = "RoleArn" + } + } + + public struct GetTableRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The ID of the Data Catalog where the table resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the table for which to retrieve the definition. + public let name: String + /// The name of the database in the catalog in which the table resides. + public let databaseName: String + + public init(catalogId: String? = nil, name: String, databaseName: String) { + self.catalogId = catalogId + self.name = name + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case name = "Name" + case databaseName = "DatabaseName" + } + } + + public struct CreateDatabaseResponse: AWSShape { + + } + + public struct DeleteUserDefinedFunctionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "FunctionName", required: true, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The ID of the Data Catalog where the function to be deleted is located. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the function definition to be deleted. + public let functionName: String + /// The name of the catalog database where the function is located. + public let databaseName: String + + public init(catalogId: String? = nil, functionName: String, databaseName: String) { + self.catalogId = catalogId + self.functionName = functionName + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case functionName = "FunctionName" + case databaseName = "DatabaseName" + } + } + + public struct GetClassifiersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Classifiers", required: false, type: .list) + ] + /// A continuation token. + public let nextToken: String? + /// The requested list of classifier objects. + public let classifiers: [Classifier]? + + public init(nextToken: String? = nil, classifiers: [Classifier]? = nil) { + self.nextToken = nextToken + self.classifiers = classifiers + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case classifiers = "Classifiers" + } + } + + public struct GetTriggersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Triggers", required: false, type: .list) + ] + /// A continuation token, if not all the requested triggers have yet been returned. + public let nextToken: String? + /// A list of triggers for the specified job. + public let triggers: [Trigger]? + + public init(nextToken: String? = nil, triggers: [Trigger]? = nil) { + self.nextToken = nextToken + self.triggers = triggers + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case triggers = "Triggers" + } + } + + public struct Table: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TableType", required: false, type: .string), + AWSShapeMember(label: "ViewOriginalText", required: false, type: .string), + AWSShapeMember(label: "UpdateTime", required: false, type: .timestamp), + AWSShapeMember(label: "Retention", required: false, type: .integer), + AWSShapeMember(label: "ViewExpandedText", required: false, type: .string), + AWSShapeMember(label: "LastAccessTime", required: false, type: .timestamp), + AWSShapeMember(label: "Owner", required: false, type: .string), + AWSShapeMember(label: "LastAnalyzedTime", required: false, type: .timestamp), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "PartitionKeys", required: false, type: .list), + AWSShapeMember(label: "DatabaseName", required: false, type: .string), + AWSShapeMember(label: "StorageDescriptor", required: false, type: .structure), + AWSShapeMember(label: "CreateTime", required: false, type: .timestamp), + AWSShapeMember(label: "CreatedBy", required: false, type: .string) + ] + /// The type of this table (EXTERNAL_TABLE, VIRTUAL_VIEW, etc.). + public let tableType: String? + /// If the table is a view, the original text of the view; otherwise null. + public let viewOriginalText: String? + /// Last time the table was updated. + public let updateTime: TimeStamp? + /// Retention time for this table. + public let retention: Int32? + /// If the table is a view, the expanded text of the view; otherwise null. + public let viewExpandedText: String? + /// Last time the table was accessed. This is usually taken from HDFS, and may not be reliable. + public let lastAccessTime: TimeStamp? + /// Owner of the table. + public let owner: String? + /// Last time column statistics were computed for this table. + public let lastAnalyzedTime: TimeStamp? + /// Description of the table. + public let description: String? + /// Properties associated with this table, as a list of key-value pairs. + public let parameters: [String: String]? + /// Name of the table. + public let name: String + /// A list of columns by which the table is partitioned. Only primitive types are supported as partition keys. + public let partitionKeys: [Column]? + /// Name of the metadata database where the table metadata resides. + public let databaseName: String? + /// A storage descriptor containing information about the physical storage of this table. + public let storageDescriptor: StorageDescriptor? + /// Time when the table definition was created in the Data Catalog. + public let createTime: TimeStamp? + /// Person or entity who created the table. + public let createdBy: String? + + public init(tableType: String? = nil, viewOriginalText: String? = nil, updateTime: TimeStamp? = nil, retention: Int32? = nil, viewExpandedText: String? = nil, lastAccessTime: TimeStamp? = nil, owner: String? = nil, lastAnalyzedTime: TimeStamp? = nil, description: String? = nil, parameters: [String: String]? = nil, name: String, partitionKeys: [Column]? = nil, databaseName: String? = nil, storageDescriptor: StorageDescriptor? = nil, createTime: TimeStamp? = nil, createdBy: String? = nil) { + self.tableType = tableType + self.viewOriginalText = viewOriginalText + self.updateTime = updateTime + self.retention = retention + self.viewExpandedText = viewExpandedText + self.lastAccessTime = lastAccessTime + self.owner = owner + self.lastAnalyzedTime = lastAnalyzedTime + self.description = description + self.parameters = parameters + self.name = name + self.partitionKeys = partitionKeys + self.databaseName = databaseName + self.storageDescriptor = storageDescriptor + self.createTime = createTime + self.createdBy = createdBy + } + + private enum CodingKeys: String, CodingKey { + case tableType = "TableType" + case viewOriginalText = "ViewOriginalText" + case updateTime = "UpdateTime" + case retention = "Retention" + case viewExpandedText = "ViewExpandedText" + case lastAccessTime = "LastAccessTime" + case owner = "Owner" + case lastAnalyzedTime = "LastAnalyzedTime" + case description = "Description" + case parameters = "Parameters" + case name = "Name" + case partitionKeys = "PartitionKeys" + case databaseName = "DatabaseName" + case storageDescriptor = "StorageDescriptor" + case createTime = "CreateTime" + case createdBy = "CreatedBy" + } + } + + public struct PartitionError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorDetail", required: false, type: .structure), + AWSShapeMember(label: "PartitionValues", required: false, type: .list) + ] + /// Details about the partition error. + public let errorDetail: ErrorDetail? + /// The values that define the partition. + public let partitionValues: [String]? + + public init(errorDetail: ErrorDetail? = nil, partitionValues: [String]? = nil) { + self.errorDetail = errorDetail + self.partitionValues = partitionValues + } + + private enum CodingKeys: String, CodingKey { + case errorDetail = "ErrorDetail" + case partitionValues = "PartitionValues" + } + } + + public struct UpdateJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobName", required: false, type: .string) + ] + /// Returns the name of the updated job. + public let jobName: String? + + public init(jobName: String? = nil) { + self.jobName = jobName + } + + private enum CodingKeys: String, CodingKey { + case jobName = "JobName" + } + } + + public struct Database: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateTime", required: false, type: .timestamp), + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "LocationUri", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The time at which the metadata database was created in the catalog. + public let createTime: TimeStamp? + /// A list of key-value pairs that define parameters and properties of the database. + public let parameters: [String: String]? + /// Name of the database. + public let name: String + /// The location of the database (for example, an HDFS path). + public let locationUri: String? + /// Description of the database. + public let description: String? + + public init(createTime: TimeStamp? = nil, parameters: [String: String]? = nil, name: String, locationUri: String? = nil, description: String? = nil) { + self.createTime = createTime + self.parameters = parameters + self.name = name + self.locationUri = locationUri + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case createTime = "CreateTime" + case parameters = "Parameters" + case name = "Name" + case locationUri = "LocationUri" + case description = "Description" + } + } + + public struct CodeGenNode: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NodeType", required: true, type: .string), + AWSShapeMember(label: "Args", required: true, type: .list), + AWSShapeMember(label: "LineNumber", required: false, type: .integer), + AWSShapeMember(label: "Id", required: true, type: .string) + ] + /// The type of node this is. + public let nodeType: String + /// Properties of the node, in the form of name-value pairs. + public let args: [CodeGenNodeArg] + /// The line number of the node. + public let lineNumber: Int32? + /// A node identifier that is unique within the node's graph. + public let id: String + + public init(nodeType: String, args: [CodeGenNodeArg], lineNumber: Int32? = nil, id: String) { + self.nodeType = nodeType + self.args = args + self.lineNumber = lineNumber + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case nodeType = "NodeType" + case args = "Args" + case lineNumber = "LineNumber" + case id = "Id" + } + } + + public struct Schedule: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "State", required: false, type: .enum), + AWSShapeMember(label: "ScheduleExpression", required: false, type: .string) + ] + /// The state of the schedule. + public let state: ScheduleState? + /// A cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *). + public let scheduleExpression: String? + + public init(state: ScheduleState? = nil, scheduleExpression: String? = nil) { + self.state = state + self.scheduleExpression = scheduleExpression + } + + private enum CodingKeys: String, CodingKey { + case state = "State" + case scheduleExpression = "ScheduleExpression" + } + } + + public struct BatchStopJobRunResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SuccessfulSubmissions", required: false, type: .list), + AWSShapeMember(label: "Errors", required: false, type: .list) + ] + /// A list of job runs which are successfully submitted for stopping. + public let successfulSubmissions: [BatchStopJobRunSuccessfulSubmission]? + /// A list containing the job run Ids and details of the error that occurred for each job run while submitting to stop. + public let errors: [BatchStopJobRunError]? + + public init(successfulSubmissions: [BatchStopJobRunSuccessfulSubmission]? = nil, errors: [BatchStopJobRunError]? = nil) { + self.successfulSubmissions = successfulSubmissions + self.errors = errors + } + + private enum CodingKeys: String, CodingKey { + case successfulSubmissions = "SuccessfulSubmissions" + case errors = "Errors" + } + } + + public struct DeleteClassifierRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// Name of the classifier to remove. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct TriggerUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Actions", required: false, type: .list), + AWSShapeMember(label: "Schedule", required: false, type: .string), + AWSShapeMember(label: "Predicate", required: false, type: .structure), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The actions initiated by this trigger. + public let actions: [Action]? + /// An updated cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *). + public let schedule: String? + /// The predicate of this trigger, which defines when it will fire. + public let predicate: Predicate? + /// The name of the trigger. + public let name: String? + /// A description of this trigger. + public let description: String? + + public init(actions: [Action]? = nil, schedule: String? = nil, predicate: Predicate? = nil, name: String? = nil, description: String? = nil) { + self.actions = actions + self.schedule = schedule + self.predicate = predicate + self.name = name + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case actions = "Actions" + case schedule = "Schedule" + case predicate = "Predicate" + case name = "Name" + case description = "Description" + } + } + + public struct DeleteConnectionResponse: AWSShape { + + } + + public struct MappingEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceTable", required: false, type: .string), + AWSShapeMember(label: "TargetTable", required: false, type: .string), + AWSShapeMember(label: "TargetType", required: false, type: .string), + AWSShapeMember(label: "TargetPath", required: false, type: .string), + AWSShapeMember(label: "SourcePath", required: false, type: .string), + AWSShapeMember(label: "SourceType", required: false, type: .string) + ] + /// The name of the source table. + public let sourceTable: String? + /// The target table. + public let targetTable: String? + /// The target type. + public let targetType: String? + /// The target path. + public let targetPath: String? + /// The source path. + public let sourcePath: String? + /// The source type. + public let sourceType: String? + + public init(sourceTable: String? = nil, targetTable: String? = nil, targetType: String? = nil, targetPath: String? = nil, sourcePath: String? = nil, sourceType: String? = nil) { + self.sourceTable = sourceTable + self.targetTable = targetTable + self.targetType = targetType + self.targetPath = targetPath + self.sourcePath = sourcePath + self.sourceType = sourceType + } + + private enum CodingKeys: String, CodingKey { + case sourceTable = "SourceTable" + case targetTable = "TargetTable" + case targetType = "TargetType" + case targetPath = "TargetPath" + case sourcePath = "SourcePath" + case sourceType = "SourceType" + } + } + + public struct CreateDevEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetId", required: false, type: .string), + AWSShapeMember(label: "PublicKey", required: true, type: .string), + AWSShapeMember(label: "ExtraPythonLibsS3Path", required: false, type: .string), + AWSShapeMember(label: "SecurityGroupIds", required: false, type: .list), + AWSShapeMember(label: "EndpointName", required: true, type: .string), + AWSShapeMember(label: "NumberOfNodes", required: false, type: .integer), + AWSShapeMember(label: "ExtraJarsS3Path", required: false, type: .string), + AWSShapeMember(label: "RoleArn", required: true, type: .string) + ] + /// The subnet ID for the new DevEndpoint to use. + public let subnetId: String? + /// The public key to use for authentication. + public let publicKey: String + /// Path(s) to one or more Python libraries in an S3 bucket that should be loaded in your DevEndpoint. Multiple values must be complete paths separated by a comma. Please note that only pure Python libraries can currently be used on a DevEndpoint. Libraries that rely on C extensions, such as the pandas Python data analysis library, are not yet supported. + public let extraPythonLibsS3Path: String? + /// Security group IDs for the security groups to be used by the new DevEndpoint. + public let securityGroupIds: [String]? + /// The name to be assigned to the new DevEndpoint. + public let endpointName: String + /// The number of AWS Glue Data Processing Units (DPUs) to allocate to this DevEndpoint. + public let numberOfNodes: Int32? + /// Path to one or more Java Jars in an S3 bucket that should be loaded in your DevEndpoint. + public let extraJarsS3Path: String? + /// The IAM role for the DevEndpoint. + public let roleArn: String + + public init(subnetId: String? = nil, publicKey: String, extraPythonLibsS3Path: String? = nil, securityGroupIds: [String]? = nil, endpointName: String, numberOfNodes: Int32? = nil, extraJarsS3Path: String? = nil, roleArn: String) { + self.subnetId = subnetId + self.publicKey = publicKey + self.extraPythonLibsS3Path = extraPythonLibsS3Path + self.securityGroupIds = securityGroupIds + self.endpointName = endpointName + self.numberOfNodes = numberOfNodes + self.extraJarsS3Path = extraJarsS3Path + self.roleArn = roleArn + } + + private enum CodingKeys: String, CodingKey { + case subnetId = "SubnetId" + case publicKey = "PublicKey" + case extraPythonLibsS3Path = "ExtraPythonLibsS3Path" + case securityGroupIds = "SecurityGroupIds" + case endpointName = "EndpointName" + case numberOfNodes = "NumberOfNodes" + case extraJarsS3Path = "ExtraJarsS3Path" + case roleArn = "RoleArn" + } + } + + public struct GetDevEndpointsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// A continuation token, if this is a continuation call. + public let nextToken: String? + /// The maximum size of information to return. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct CreateJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string) + ] + /// The unique name of the new job that has been created. + public let name: String? + + public init(name: String? = nil) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct BatchDeleteTableRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "TablesToDelete", required: true, type: .list), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The ID of the Data Catalog where the table resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A list of the table to delete. + public let tablesToDelete: [String] + /// The name of the catalog database where the tables to delete reside. + public let databaseName: String + + public init(catalogId: String? = nil, tablesToDelete: [String], databaseName: String) { + self.catalogId = catalogId + self.tablesToDelete = tablesToDelete + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case tablesToDelete = "TablesToDelete" + case databaseName = "DatabaseName" + } + } + + public enum LogicalOperator: String, CustomStringConvertible, Codable { + case equals = "EQUALS" + public var description: String { return self.rawValue } + } + + public struct GetCrawlerMetricsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "CrawlerNameList", required: false, type: .list), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// A continuation token, if this is a continuation call. + public let nextToken: String? + /// A list of the names of crawlers about which to retrieve metrics. + public let crawlerNameList: [String]? + /// The maximum size of a list to return. + public let maxResults: Int32? + + public init(nextToken: String? = nil, crawlerNameList: [String]? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.crawlerNameList = crawlerNameList + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case crawlerNameList = "CrawlerNameList" + case maxResults = "MaxResults" + } + } + + public struct GetDatabaseRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The ID of the Data Catalog in which the database resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the database to retrieve. + public let name: String + + public init(catalogId: String? = nil, name: String) { + self.catalogId = catalogId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case name = "Name" + } + } + + public struct BatchStopJobRunSuccessfulSubmission: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobName", required: false, type: .string), + AWSShapeMember(label: "JobRunId", required: false, type: .string) + ] + /// The name of the job. + public let jobName: String? + /// The job run Id. + public let jobRunId: String? + + public init(jobName: String? = nil, jobRunId: String? = nil) { + self.jobName = jobName + self.jobRunId = jobRunId + } + + private enum CodingKeys: String, CodingKey { + case jobName = "JobName" + case jobRunId = "JobRunId" + } + } + + public struct UpdateXMLClassifierRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Classification", required: false, type: .string), + AWSShapeMember(label: "RowTag", required: false, type: .string) + ] + /// The name of the classifier. + public let name: String + /// An identifier of the data format that the classifier matches. + public let classification: String? + /// The XML tag designating the element that contains each record in an XML document being parsed. Note that this cannot be an empty element. It must contain child elements representing fields in the record. + public let rowTag: String? + + public init(name: String, classification: String? = nil, rowTag: String? = nil) { + self.name = name + self.classification = classification + self.rowTag = rowTag + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case classification = "Classification" + case rowTag = "RowTag" + } + } + + public struct UpdateDatabaseResponse: AWSShape { + + } + + public struct UpdateDatabaseRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DatabaseInput", required: true, type: .structure), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string) + ] + /// A DatabaseInput object specifying the new definition of the metadata database in the catalog. + public let databaseInput: DatabaseInput + /// The name of the metadata database to update in the catalog. + public let name: String + /// The ID of the Data Catalog in which the metadata database resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + + public init(databaseInput: DatabaseInput, name: String, catalogId: String? = nil) { + self.databaseInput = databaseInput + self.name = name + self.catalogId = catalogId + } + + private enum CodingKeys: String, CodingKey { + case databaseInput = "DatabaseInput" + case name = "Name" + case catalogId = "CatalogId" + } + } + + public struct DevEndpointCustomLibraries: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ExtraPythonLibsS3Path", required: false, type: .string), + AWSShapeMember(label: "ExtraJarsS3Path", required: false, type: .string) + ] + /// Path(s) to one or more Python libraries in an S3 bucket that should be loaded in your DevEndpoint. Multiple values must be complete paths separated by a comma. Please note that only pure Python libraries can currently be used on a DevEndpoint. Libraries that rely on C extensions, such as the pandas Python data analysis library, are not yet supported. + public let extraPythonLibsS3Path: String? + /// Path to one or more Java Jars in an S3 bucket that should be loaded in your DevEndpoint. Please note that only pure Java/Scala libraries can currently be used on a DevEndpoint. + public let extraJarsS3Path: String? + + public init(extraPythonLibsS3Path: String? = nil, extraJarsS3Path: String? = nil) { + self.extraPythonLibsS3Path = extraPythonLibsS3Path + self.extraJarsS3Path = extraJarsS3Path + } + + private enum CodingKeys: String, CodingKey { + case extraPythonLibsS3Path = "ExtraPythonLibsS3Path" + case extraJarsS3Path = "ExtraJarsS3Path" + } + } + + public struct GetDatabasesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "DatabaseList", required: true, type: .list) + ] + /// A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last. + public let nextToken: String? + /// A list of Database objects from the specified catalog. + public let databaseList: [Database] + + public init(nextToken: String? = nil, databaseList: [Database]) { + self.nextToken = nextToken + self.databaseList = databaseList + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case databaseList = "DatabaseList" + } + } + + public struct CreateTriggerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Schedule", required: false, type: .string), + AWSShapeMember(label: "Predicate", required: false, type: .structure), + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Actions", required: true, type: .list), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// A cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *). + public let schedule: String? + /// A predicate to specify when the new trigger should fire. + public let predicate: Predicate? + /// The type of the new trigger. + public let `type`: TriggerType + /// The name to assign to the new trigger. + public let name: String + /// The actions initiated by this trigger when it fires. + public let actions: [Action] + /// A description of the new trigger. + public let description: String? + + public init(schedule: String? = nil, predicate: Predicate? = nil, type: TriggerType, name: String, actions: [Action], description: String? = nil) { + self.schedule = schedule + self.predicate = predicate + self.`type` = `type` + self.name = name + self.actions = actions + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case schedule = "Schedule" + case predicate = "Predicate" + case `type` = "Type" + case name = "Name" + case actions = "Actions" + case description = "Description" + } + } + + public struct UpdateCrawlerScheduleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Schedule", required: false, type: .string), + AWSShapeMember(label: "CrawlerName", required: true, type: .string) + ] + /// The updated cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *). + public let schedule: String? + /// Name of the crawler whose schedule to update. + public let crawlerName: String + + public init(schedule: String? = nil, crawlerName: String) { + self.schedule = schedule + self.crawlerName = crawlerName + } + + private enum CodingKeys: String, CodingKey { + case schedule = "Schedule" + case crawlerName = "CrawlerName" + } + } + + public struct UpdateTriggerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "TriggerUpdate", required: true, type: .structure) + ] + /// The name of the trigger to update. + public let name: String + /// The new values with which to update the trigger. + public let triggerUpdate: TriggerUpdate + + public init(name: String, triggerUpdate: TriggerUpdate) { + self.name = name + self.triggerUpdate = triggerUpdate + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case triggerUpdate = "TriggerUpdate" + } + } + + public struct DeleteJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobName", required: true, type: .string) + ] + /// The name of the job to delete. + public let jobName: String + + public init(jobName: String) { + self.jobName = jobName + } + + private enum CodingKeys: String, CodingKey { + case jobName = "JobName" + } + } + + public struct StopTriggerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The name of the trigger to stop. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct GetJobsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Jobs", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of jobs. + public let jobs: [Job]? + /// A continuation token, if not all jobs have yet been returned. + public let nextToken: String? + + public init(jobs: [Job]? = nil, nextToken: String? = nil) { + self.jobs = jobs + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case jobs = "Jobs" + case nextToken = "NextToken" + } + } + + public struct GetClassifiersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// An optional continuation token. + public let nextToken: String? + /// Size of the list to return (optional). + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct GrokClassifier: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GrokPattern", required: true, type: .string), + AWSShapeMember(label: "Classification", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Version", required: false, type: .long), + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "LastUpdated", required: false, type: .timestamp), + AWSShapeMember(label: "CustomPatterns", required: false, type: .string) + ] + /// The grok pattern applied to a data store by this classifier. For more information, see built-in patterns in Writing Custom Classifers. + public let grokPattern: String + /// An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, and so on. + public let classification: String + /// The name of the classifier. + public let name: String + /// The version of this classifier. + public let version: Int64? + /// The time this classifier was registered. + public let creationTime: TimeStamp? + /// The time this classifier was last updated. + public let lastUpdated: TimeStamp? + /// Optional custom grok patterns defined by this classifier. For more information, see custom patterns in Writing Custom Classifers. + public let customPatterns: String? + + public init(grokPattern: String, classification: String, name: String, version: Int64? = nil, creationTime: TimeStamp? = nil, lastUpdated: TimeStamp? = nil, customPatterns: String? = nil) { + self.grokPattern = grokPattern + self.classification = classification + self.name = name + self.version = version + self.creationTime = creationTime + self.lastUpdated = lastUpdated + self.customPatterns = customPatterns + } + + private enum CodingKeys: String, CodingKey { + case grokPattern = "GrokPattern" + case classification = "Classification" + case name = "Name" + case version = "Version" + case creationTime = "CreationTime" + case lastUpdated = "LastUpdated" + case customPatterns = "CustomPatterns" + } + } + + public struct GetJobsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// A continuation token, if this is a continuation call. + public let nextToken: String? + /// The maximum size of the response. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct CreateCrawlerResponse: AWSShape { + + } + + public struct GetUserDefinedFunctionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserDefinedFunctions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of requested function definitions. + public let userDefinedFunctions: [UserDefinedFunction]? + /// A continuation token, if the list of functions returned does not include the last requested function. + public let nextToken: String? + + public init(userDefinedFunctions: [UserDefinedFunction]? = nil, nextToken: String? = nil) { + self.userDefinedFunctions = userDefinedFunctions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case userDefinedFunctions = "UserDefinedFunctions" + case nextToken = "NextToken" + } + } + + public struct StartTriggerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The name of the trigger to start. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct DeleteUserDefinedFunctionResponse: AWSShape { + + } + + public struct StopCrawlerScheduleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CrawlerName", required: true, type: .string) + ] + /// Name of the crawler whose schedule state to set. + public let crawlerName: String + + public init(crawlerName: String) { + self.crawlerName = crawlerName + } + + private enum CodingKeys: String, CodingKey { + case crawlerName = "CrawlerName" + } + } + + public struct CatalogImportStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ImportCompleted", required: false, type: .boolean), + AWSShapeMember(label: "ImportedBy", required: false, type: .string), + AWSShapeMember(label: "ImportTime", required: false, type: .timestamp) + ] + /// True if the migration has completed, or False otherwise. + public let importCompleted: Bool? + /// The name of the person who initiated the migration. + public let importedBy: String? + /// The time that the migration was started. + public let importTime: TimeStamp? + + public init(importCompleted: Bool? = nil, importedBy: String? = nil, importTime: TimeStamp? = nil) { + self.importCompleted = importCompleted + self.importedBy = importedBy + self.importTime = importTime + } + + private enum CodingKeys: String, CodingKey { + case importCompleted = "ImportCompleted" + case importedBy = "ImportedBy" + case importTime = "ImportTime" + } + } + + public struct UpdateDevEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointName", required: true, type: .string), + AWSShapeMember(label: "PublicKey", required: false, type: .string), + AWSShapeMember(label: "CustomLibraries", required: false, type: .structure), + AWSShapeMember(label: "UpdateEtlLibraries", required: false, type: .boolean) + ] + /// The name of the DevEndpoint to be updated. + public let endpointName: String + /// The public key for the DevEndpoint to use. + public let publicKey: String? + /// Custom Python or Java libraries to be loaded in the DevEndpoint. + public let customLibraries: DevEndpointCustomLibraries? + /// True if the list of custom libraries to be loaded in the development endpoint needs to be updated, or False otherwise. + public let updateEtlLibraries: Bool? + + public init(endpointName: String, publicKey: String? = nil, customLibraries: DevEndpointCustomLibraries? = nil, updateEtlLibraries: Bool? = nil) { + self.endpointName = endpointName + self.publicKey = publicKey + self.customLibraries = customLibraries + self.updateEtlLibraries = updateEtlLibraries + } + + private enum CodingKeys: String, CodingKey { + case endpointName = "EndpointName" + case publicKey = "PublicKey" + case customLibraries = "CustomLibraries" + case updateEtlLibraries = "UpdateEtlLibraries" + } + } + + public struct DatabaseInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "LocationUri", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// A list of key-value pairs that define parameters and properties of the database. + public let parameters: [String: String]? + /// Name of the database. + public let name: String + /// The location of the database (for example, an HDFS path). + public let locationUri: String? + /// Description of the database + public let description: String? + + public init(parameters: [String: String]? = nil, name: String, locationUri: String? = nil, description: String? = nil) { + self.parameters = parameters + self.name = name + self.locationUri = locationUri + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case parameters = "Parameters" + case name = "Name" + case locationUri = "LocationUri" + case description = "Description" + } + } + + public struct DeleteDatabaseRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The ID of the Data Catalog in which the database resides. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the Database to delete. + public let name: String + + public init(catalogId: String? = nil, name: String) { + self.catalogId = catalogId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case name = "Name" + } + } + + public struct ImportCatalogToGlueResponse: AWSShape { + + } + + public struct GetDevEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointName", required: true, type: .string) + ] + /// Name of the DevEndpoint for which to retrieve information. + public let endpointName: String + + public init(endpointName: String) { + self.endpointName = endpointName + } + + private enum CodingKeys: String, CodingKey { + case endpointName = "EndpointName" + } + } + + public struct GetCrawlerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// Name of the crawler to retrieve metadata for. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct GetPartitionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Segment", required: false, type: .structure), + AWSShapeMember(label: "Expression", required: false, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string), + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The segment of the table's partitions to scan in this request. + public let segment: Segment? + /// An expression filtering the partitions to be returned. + public let expression: String? + /// The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the catalog database where the partitions reside. + public let databaseName: String + /// The name of the partitions' table. + public let tableName: String + /// A continuation token, if this is not the first call to retrieve these partitions. + public let nextToken: String? + /// The maximum number of partitions to return in a single response. + public let maxResults: Int32? + + public init(segment: Segment? = nil, expression: String? = nil, catalogId: String? = nil, databaseName: String, tableName: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.segment = segment + self.expression = expression + self.catalogId = catalogId + self.databaseName = databaseName + self.tableName = tableName + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case segment = "Segment" + case expression = "Expression" + case catalogId = "CatalogId" + case databaseName = "DatabaseName" + case tableName = "TableName" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct StopCrawlerScheduleResponse: AWSShape { + + } + + public struct GetDevEndpointResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DevEndpoint", required: false, type: .structure) + ] + /// A DevEndpoint definition. + public let devEndpoint: DevEndpoint? + + public init(devEndpoint: DevEndpoint? = nil) { + self.devEndpoint = devEndpoint + } + + private enum CodingKeys: String, CodingKey { + case devEndpoint = "DevEndpoint" + } + } + + public struct StartCrawlerResponse: AWSShape { + + } + + public struct GetUserDefinedFunctionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "FunctionName", required: true, type: .string), + AWSShapeMember(label: "DatabaseName", required: true, type: .string) + ] + /// The ID of the Data Catalog where the function to be retrieved is located. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// The name of the function. + public let functionName: String + /// The name of the catalog database where the function is located. + public let databaseName: String + + public init(catalogId: String? = nil, functionName: String, databaseName: String) { + self.catalogId = catalogId + self.functionName = functionName + self.databaseName = databaseName + } + + private enum CodingKeys: String, CodingKey { + case catalogId = "CatalogId" + case functionName = "FunctionName" + case databaseName = "DatabaseName" + } + } + + public struct Location: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Jdbc", required: false, type: .list), + AWSShapeMember(label: "S3", required: false, type: .list) + ] + /// A JDBC location. + public let jdbc: [CodeGenNodeArg]? + /// An Amazon S3 location. + public let s3: [CodeGenNodeArg]? + + public init(jdbc: [CodeGenNodeArg]? = nil, s3: [CodeGenNodeArg]? = nil) { + self.jdbc = jdbc + self.s3 = s3 + } + + private enum CodingKeys: String, CodingKey { + case jdbc = "Jdbc" + case s3 = "S3" + } + } + + public struct GetTriggersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DependentJobName", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The name of the job for which to retrieve triggers. + public let dependentJobName: String? + /// A continuation token, if this is a continuation call. + public let nextToken: String? + /// The maximum size of the response. + public let maxResults: Int32? + + public init(dependentJobName: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.dependentJobName = dependentJobName + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case dependentJobName = "DependentJobName" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct PartitionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StorageDescriptor", required: false, type: .structure), + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "LastAnalyzedTime", required: false, type: .timestamp), + AWSShapeMember(label: "LastAccessTime", required: false, type: .timestamp), + AWSShapeMember(label: "Values", required: false, type: .list) + ] + /// Provides information about the physical location where the partition is stored. + public let storageDescriptor: StorageDescriptor? + /// Partition parameters, in the form of a list of key-value pairs. + public let parameters: [String: String]? + /// The last time at which column statistics were computed for this partition. + public let lastAnalyzedTime: TimeStamp? + /// The last time at which the partition was accessed. + public let lastAccessTime: TimeStamp? + /// The values of the partition. + public let values: [String]? + + public init(storageDescriptor: StorageDescriptor? = nil, parameters: [String: String]? = nil, lastAnalyzedTime: TimeStamp? = nil, lastAccessTime: TimeStamp? = nil, values: [String]? = nil) { + self.storageDescriptor = storageDescriptor + self.parameters = parameters + self.lastAnalyzedTime = lastAnalyzedTime + self.lastAccessTime = lastAccessTime + self.values = values + } + + private enum CodingKeys: String, CodingKey { + case storageDescriptor = "StorageDescriptor" + case parameters = "Parameters" + case lastAnalyzedTime = "LastAnalyzedTime" + case lastAccessTime = "LastAccessTime" + case values = "Values" + } + } + + public struct StartCrawlerScheduleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CrawlerName", required: true, type: .string) + ] + /// Name of the crawler to schedule. + public let crawlerName: String + + public init(crawlerName: String) { + self.crawlerName = crawlerName + } + + private enum CodingKeys: String, CodingKey { + case crawlerName = "CrawlerName" + } + } + + public struct UserDefinedFunction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClassName", required: false, type: .string), + AWSShapeMember(label: "OwnerName", required: false, type: .string), + AWSShapeMember(label: "CreateTime", required: false, type: .timestamp), + AWSShapeMember(label: "FunctionName", required: false, type: .string), + AWSShapeMember(label: "OwnerType", required: false, type: .enum), + AWSShapeMember(label: "ResourceUris", required: false, type: .list) + ] + /// The Java class that contains the function code. + public let className: String? + /// The owner of the function. + public let ownerName: String? + /// The time at which the function was created. + public let createTime: TimeStamp? + /// The name of the function. + public let functionName: String? + /// The owner type. + public let ownerType: PrincipalType? + /// The resource URIs for the function. + public let resourceUris: [ResourceUri]? + + public init(className: String? = nil, ownerName: String? = nil, createTime: TimeStamp? = nil, functionName: String? = nil, ownerType: PrincipalType? = nil, resourceUris: [ResourceUri]? = nil) { + self.className = className + self.ownerName = ownerName + self.createTime = createTime + self.functionName = functionName + self.ownerType = ownerType + self.resourceUris = resourceUris + } + + private enum CodingKeys: String, CodingKey { + case className = "ClassName" + case ownerName = "OwnerName" + case createTime = "CreateTime" + case functionName = "FunctionName" + case ownerType = "OwnerType" + case resourceUris = "ResourceUris" + } + } + + public struct GetTableVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DatabaseName", required: true, type: .string), + AWSShapeMember(label: "TableName", required: true, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The database in the catalog in which the table resides. + public let databaseName: String + /// The name of the table. + public let tableName: String + /// The ID of the Data Catalog where the tables reside. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A continuation token, if this is not the first call. + public let nextToken: String? + /// The maximum number of table versions to return in one response. + public let maxResults: Int32? + + public init(databaseName: String, tableName: String, catalogId: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.databaseName = databaseName + self.tableName = tableName + self.catalogId = catalogId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case databaseName = "DatabaseName" + case tableName = "TableName" + case catalogId = "CatalogId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct GetDevEndpointsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "DevEndpoints", required: false, type: .list) + ] + /// A continuation token, if not all DevEndpoint definitions have yet been returned. + public let nextToken: String? + /// A list of DevEndpoint definitions. + public let devEndpoints: [DevEndpoint]? + + public init(nextToken: String? = nil, devEndpoints: [DevEndpoint]? = nil) { + self.nextToken = nextToken + self.devEndpoints = devEndpoints + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case devEndpoints = "DevEndpoints" + } + } + + public struct TableVersion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VersionId", required: false, type: .string), + AWSShapeMember(label: "Table", required: false, type: .structure) + ] + /// The ID value that identifies this table version. + public let versionId: String? + /// The table in question + public let table: Table? + + public init(versionId: String? = nil, table: Table? = nil) { + self.versionId = versionId + self.table = table + } + + private enum CodingKeys: String, CodingKey { + case versionId = "VersionId" + case table = "Table" + } + } + + public struct GetCrawlersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// A continuation token, if this is a continuation request. + public let nextToken: String? + /// The number of crawlers to return on each call. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public enum JobRunState: String, CustomStringConvertible, Codable { + case starting = "STARTING" + case running = "RUNNING" + case stopping = "STOPPING" + case stopped = "STOPPED" + case succeeded = "SUCCEEDED" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + + public struct Job: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Connections", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "ExecutionProperty", required: false, type: .structure), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastModifiedOn", required: false, type: .timestamp), + AWSShapeMember(label: "Role", required: false, type: .string), + AWSShapeMember(label: "LogUri", required: false, type: .string), + AWSShapeMember(label: "MaxRetries", required: false, type: .integer), + AWSShapeMember(label: "Command", required: false, type: .structure), + AWSShapeMember(label: "DefaultArguments", required: false, type: .map), + AWSShapeMember(label: "AllocatedCapacity", required: false, type: .integer), + AWSShapeMember(label: "CreatedOn", required: false, type: .timestamp) + ] + /// The connections used for this job. + public let connections: ConnectionsList? + /// Description of this job. + public let description: String? + /// An ExecutionProperty specifying the maximum number of concurrent runs allowed for this job. + public let executionProperty: ExecutionProperty? + /// The name you assign to this job. + public let name: String? + /// The last point in time when this job specification was modified. + public let lastModifiedOn: TimeStamp? + /// The role associated with this job. + public let role: String? + /// This field is reserved for future use. + public let logUri: String? + /// The maximum number of times to retry this job if it fails. + public let maxRetries: Int32? + /// The JobCommand that executes this job. + public let command: JobCommand? + /// The default parameters for this job. + public let defaultArguments: [String: String]? + /// The number of capacity units allocated to this job. + public let allocatedCapacity: Int32? + /// The time and date that this job specification was created. + public let createdOn: TimeStamp? + + public init(connections: ConnectionsList? = nil, description: String? = nil, executionProperty: ExecutionProperty? = nil, name: String? = nil, lastModifiedOn: TimeStamp? = nil, role: String? = nil, logUri: String? = nil, maxRetries: Int32? = nil, command: JobCommand? = nil, defaultArguments: [String: String]? = nil, allocatedCapacity: Int32? = nil, createdOn: TimeStamp? = nil) { + self.connections = connections + self.description = description + self.executionProperty = executionProperty + self.name = name + self.lastModifiedOn = lastModifiedOn + self.role = role + self.logUri = logUri + self.maxRetries = maxRetries + self.command = command + self.defaultArguments = defaultArguments + self.allocatedCapacity = allocatedCapacity + self.createdOn = createdOn + } + + private enum CodingKeys: String, CodingKey { + case connections = "Connections" + case description = "Description" + case executionProperty = "ExecutionProperty" + case name = "Name" + case lastModifiedOn = "LastModifiedOn" + case role = "Role" + case logUri = "LogUri" + case maxRetries = "MaxRetries" + case command = "Command" + case defaultArguments = "DefaultArguments" + case allocatedCapacity = "AllocatedCapacity" + case createdOn = "CreatedOn" + } + } + + public struct GetPlanRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Sinks", required: false, type: .list), + AWSShapeMember(label: "Source", required: true, type: .structure), + AWSShapeMember(label: "Mapping", required: true, type: .list), + AWSShapeMember(label: "Location", required: false, type: .structure) + ] + /// The target tables. + public let sinks: [CatalogEntry]? + /// The source table. + public let source: CatalogEntry + /// The list of mappings from a source table to target tables. + public let mapping: [MappingEntry] + /// Parameters for the mapping. + public let location: Location? + + public init(sinks: [CatalogEntry]? = nil, source: CatalogEntry, mapping: [MappingEntry], location: Location? = nil) { + self.sinks = sinks + self.source = source + self.mapping = mapping + self.location = location + } + + private enum CodingKeys: String, CodingKey { + case sinks = "Sinks" + case source = "Source" + case mapping = "Mapping" + case location = "Location" + } + } + + public struct S3Target: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Exclusions", required: false, type: .list), + AWSShapeMember(label: "Path", required: false, type: .string) + ] + /// A list of glob patterns used to exclude from the crawl. For more information, see Catalog Tables with a Crawler. + public let exclusions: [String]? + /// The path to the Amazon S3 target. + public let path: String? + + public init(exclusions: [String]? = nil, path: String? = nil) { + self.exclusions = exclusions + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case exclusions = "Exclusions" + case path = "Path" + } + } + + public struct CreateGrokClassifierRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GrokPattern", required: true, type: .string), + AWSShapeMember(label: "Classification", required: true, type: .string), + AWSShapeMember(label: "CustomPatterns", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The grok pattern used by this classifier. + public let grokPattern: String + /// An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, Amazon CloudWatch Logs, and so on. + public let classification: String + /// Optional custom grok patterns used by this classifier. + public let customPatterns: String? + /// The name of the new classifier. + public let name: String + + public init(grokPattern: String, classification: String, customPatterns: String? = nil, name: String) { + self.grokPattern = grokPattern + self.classification = classification + self.customPatterns = customPatterns + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case grokPattern = "GrokPattern" + case classification = "Classification" + case customPatterns = "CustomPatterns" + case name = "Name" + } + } + + public struct PartitionValueList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Values", required: true, type: .list) + ] + /// The list of values. + public let values: [String] + + public init(values: [String]) { + self.values = values + } + + private enum CodingKeys: String, CodingKey { + case values = "Values" + } + } + + public struct CrawlerTargets: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3Targets", required: false, type: .list), + AWSShapeMember(label: "JdbcTargets", required: false, type: .list) + ] + /// Specifies Amazon S3 targets. + public let s3Targets: [S3Target]? + /// Specifies JDBC targets. + public let jdbcTargets: [JdbcTarget]? + + public init(s3Targets: [S3Target]? = nil, jdbcTargets: [JdbcTarget]? = nil) { + self.s3Targets = s3Targets + self.jdbcTargets = jdbcTargets + } + + private enum CodingKeys: String, CodingKey { + case s3Targets = "S3Targets" + case jdbcTargets = "JdbcTargets" + } + } + + public struct GetTablesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DatabaseName", required: true, type: .string), + AWSShapeMember(label: "Expression", required: false, type: .string), + AWSShapeMember(label: "CatalogId", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The database in the catalog whose tables to list. + public let databaseName: String + /// A regular expression pattern. If present, only those tables whose names match the pattern are returned. + public let expression: String? + /// The ID of the Data Catalog where the tables reside. If none is supplied, the AWS account ID is used by default. + public let catalogId: String? + /// A continuation token, included if this is a continuation call. + public let nextToken: String? + /// The maximum number of tables to return in a single response. + public let maxResults: Int32? + + public init(databaseName: String, expression: String? = nil, catalogId: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.databaseName = databaseName + self.expression = expression + self.catalogId = catalogId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case databaseName = "DatabaseName" + case expression = "Expression" + case catalogId = "CatalogId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct UpdateClassifierResponse: AWSShape { + + } + + public struct StopCrawlerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// Name of the crawler to stop. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct GetMappingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Sinks", required: false, type: .list), + AWSShapeMember(label: "Location", required: false, type: .structure), + AWSShapeMember(label: "Source", required: true, type: .structure) + ] + /// A list of target tables. + public let sinks: [CatalogEntry]? + /// Parameters for the mapping. + public let location: Location? + /// Specifies the source table. + public let source: CatalogEntry + + public init(sinks: [CatalogEntry]? = nil, location: Location? = nil, source: CatalogEntry) { + self.sinks = sinks + self.location = location + self.source = source + } + + private enum CodingKeys: String, CodingKey { + case sinks = "Sinks" + case location = "Location" + case source = "Source" + } + } + + public enum Logical: String, CustomStringConvertible, Codable { + case and = "AND" + public var description: String { return self.rawValue } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/greengrass/Greengrass_API.swift b/Sources/AWSSDKSwift/Services/greengrass/Greengrass_API.swift index da45af0080b..683004a1a23 100644 --- a/Sources/AWSSDKSwift/Services/greengrass/Greengrass_API.swift +++ b/Sources/AWSSDKSwift/Services/greengrass/Greengrass_API.swift @@ -34,11 +34,21 @@ public struct Greengrass { return try client.send(operation: "CreateCoreDefinitionVersion", path: "/greengrass/definition/cores/{CoreDefinitionId}/versions", httpMethod: "POST", input: input) } + /// Create a version of a resource definition that has already been defined. + public func createResourceDefinitionVersion(_ input: CreateResourceDefinitionVersionRequest) throws -> CreateResourceDefinitionVersionResponse { + return try client.send(operation: "CreateResourceDefinitionVersion", path: "/greengrass/definition/resources/{ResourceDefinitionId}/versions", httpMethod: "POST", input: input) + } + /// Associates a role which is used by AWS Greengrass. AWS Greengrass uses the role to access your Lambda functions and AWS IoT resources. This is necessary for deployments to succeed. It needs to have minimum permissions in policy ``AWSGreengrassResourceAccessRolePolicy`` public func associateServiceRoleToAccount(_ input: AssociateServiceRoleToAccountRequest) throws -> AssociateServiceRoleToAccountResponse { return try client.send(operation: "AssociateServiceRoleToAccount", path: "/greengrass/servicerole", httpMethod: "PUT", input: input) } + /// Creates a resource definition which contains a list of resources to be used in a group. You can create an initial version of the definition by providing a list of resources now, or use ``CreateResourceDefinitionVersion`` later. + public func createResourceDefinition(_ input: CreateResourceDefinitionRequest) throws -> CreateResourceDefinitionResponse { + return try client.send(operation: "CreateResourceDefinition", path: "/greengrass/definition/resources", httpMethod: "POST", input: input) + } + /// Retrieves a list of subscription definitions. public func listSubscriptionDefinitions(_ input: ListSubscriptionDefinitionsRequest) throws -> ListSubscriptionDefinitionsResponse { return try client.send(operation: "ListSubscriptionDefinitions", path: "/greengrass/definition/subscriptions", httpMethod: "GET", input: input) @@ -54,6 +64,11 @@ public struct Greengrass { return try client.send(operation: "DisassociateRoleFromGroup", path: "/greengrass/groups/{GroupId}/role", httpMethod: "DELETE", input: input) } + /// Updates a resource definition. + public func updateResourceDefinition(_ input: UpdateResourceDefinitionRequest) throws -> UpdateResourceDefinitionResponse { + return try client.send(operation: "UpdateResourceDefinition", path: "/greengrass/definition/resources/{ResourceDefinitionId}", httpMethod: "PUT", input: input) + } + /// Updates the Cert expiry time for a group. public func updateGroupCertificateConfiguration(_ input: UpdateGroupCertificateConfigurationRequest) throws -> UpdateGroupCertificateConfigurationResponse { return try client.send(operation: "UpdateGroupCertificateConfiguration", path: "/greengrass/groups/{GroupId}/certificateauthorities/configuration/expiry", httpMethod: "PUT", input: input) @@ -79,11 +94,21 @@ public struct Greengrass { return try client.send(operation: "DeleteFunctionDefinition", path: "/greengrass/definition/functions/{FunctionDefinitionId}", httpMethod: "DELETE", input: input) } + /// Creates an Iot Job that will trigger your Greengrass Cores to update the software they are running. + public func createSoftwareUpdateJob(_ input: CreateSoftwareUpdateJobRequest) throws -> CreateSoftwareUpdateJobResponse { + return try client.send(operation: "CreateSoftwareUpdateJob", path: "/greengrass/updates", httpMethod: "POST", input: input) + } + /// Creates a CA for the group. If a CA already exists, it will rotate the existing CA. public func createGroupCertificateAuthority(_ input: CreateGroupCertificateAuthorityRequest) throws -> CreateGroupCertificateAuthorityResponse { return try client.send(operation: "CreateGroupCertificateAuthority", path: "/greengrass/groups/{GroupId}/certificateauthorities", httpMethod: "POST", input: input) } + /// Retrieves information about a resource definition version, such as which resources are included in the version. + public func getResourceDefinitionVersion(_ input: GetResourceDefinitionVersionRequest) throws -> GetResourceDefinitionVersionResponse { + return try client.send(operation: "GetResourceDefinitionVersion", path: "/greengrass/definition/resources/{ResourceDefinitionId}/versions/{ResourceDefinitionVersionId}", httpMethod: "GET", input: input) + } + /// Retreives the CA associated with a group. Returns the public key of the CA. public func getGroupCertificateAuthority(_ input: GetGroupCertificateAuthorityRequest) throws -> GetGroupCertificateAuthorityResponse { return try client.send(operation: "GetGroupCertificateAuthority", path: "/greengrass/groups/{GroupId}/certificateauthorities/{CertificateAuthorityId}", httpMethod: "GET", input: input) @@ -109,16 +134,16 @@ public struct Greengrass { return try client.send(operation: "ListLoggerDefinitions", path: "/greengrass/definition/loggers", httpMethod: "GET", input: input) } + /// Retrieves information about a resource definition, such as its creation time and latest version. + public func getResourceDefinition(_ input: GetResourceDefinitionRequest) throws -> GetResourceDefinitionResponse { + return try client.send(operation: "GetResourceDefinition", path: "/greengrass/definition/resources/{ResourceDefinitionId}", httpMethod: "GET", input: input) + } + /// Updates a group. public func updateGroup(_ input: UpdateGroupRequest) throws -> UpdateGroupResponse { return try client.send(operation: "UpdateGroup", path: "/greengrass/groups/{GroupId}", httpMethod: "PUT", input: input) } - /// Retrieves a list of Lambda function definitions. - public func listFunctionDefinitions(_ input: ListFunctionDefinitionsRequest) throws -> ListFunctionDefinitionsResponse { - return try client.send(operation: "ListFunctionDefinitions", path: "/greengrass/definition/functions", httpMethod: "GET", input: input) - } - /// Creates a version of a group which has already been defined. public func createGroupVersion(_ input: CreateGroupVersionRequest) throws -> CreateGroupVersionResponse { return try client.send(operation: "CreateGroupVersion", path: "/greengrass/groups/{GroupId}/versions", httpMethod: "POST", input: input) @@ -159,14 +184,14 @@ public struct Greengrass { return try client.send(operation: "GetGroup", path: "/greengrass/groups/{GroupId}", httpMethod: "GET", input: input) } - /// Creates a group. You may optionally provide the initial version of the group or use ''CreateGroupVersion'' at a later time. - public func createGroup(_ input: CreateGroupRequest) throws -> CreateGroupResponse { - return try client.send(operation: "CreateGroup", path: "/greengrass/groups", httpMethod: "POST", input: input) + /// Retrieves a list of resource definitions. + public func listResourceDefinitions(_ input: ListResourceDefinitionsRequest) throws -> ListResourceDefinitionsResponse { + return try client.send(operation: "ListResourceDefinitions", path: "/greengrass/definition/resources", httpMethod: "GET", input: input) } - /// Creates a deployment. - public func createDeployment(_ input: CreateDeploymentRequest) throws -> CreateDeploymentResponse { - return try client.send(operation: "CreateDeployment", path: "/greengrass/groups/{GroupId}/deployments", httpMethod: "POST", input: input) + /// Retrieves a list of Lambda function definitions. + public func listFunctionDefinitions(_ input: ListFunctionDefinitionsRequest) throws -> ListFunctionDefinitionsResponse { + return try client.send(operation: "ListFunctionDefinitions", path: "/greengrass/definition/functions", httpMethod: "GET", input: input) } /// Retrieves the current configuration for the CA used by the group. @@ -179,6 +204,16 @@ public struct Greengrass { return try client.send(operation: "GetLoggerDefinition", path: "/greengrass/definition/loggers/{LoggerDefinitionId}", httpMethod: "GET", input: input) } + /// Creates a group. You may optionally provide the initial version of the group or use ''CreateGroupVersion'' at a later time. + public func createGroup(_ input: CreateGroupRequest) throws -> CreateGroupResponse { + return try client.send(operation: "CreateGroup", path: "/greengrass/groups", httpMethod: "POST", input: input) + } + + /// Creates a deployment. + public func createDeployment(_ input: CreateDeploymentRequest) throws -> CreateDeploymentResponse { + return try client.send(operation: "CreateDeployment", path: "/greengrass/groups/{GroupId}/deployments", httpMethod: "POST", input: input) + } + /// Retrieves the connectivity information for a core. public func getConnectivityInfo(_ input: GetConnectivityInfoRequest) throws -> GetConnectivityInfoResponse { return try client.send(operation: "GetConnectivityInfo", path: "/greengrass/things/{ThingName}/connectivityInfo", httpMethod: "GET", input: input) @@ -204,9 +239,9 @@ public struct Greengrass { return try client.send(operation: "DeleteSubscriptionDefinition", path: "/greengrass/definition/subscriptions/{SubscriptionDefinitionId}", httpMethod: "DELETE", input: input) } - /// Deletes a core definition. The core definition must not have been used in a deployment. - public func deleteCoreDefinition(_ input: DeleteCoreDefinitionRequest) throws -> DeleteCoreDefinitionResponse { - return try client.send(operation: "DeleteCoreDefinition", path: "/greengrass/definition/cores/{CoreDefinitionId}", httpMethod: "DELETE", input: input) + /// Creates a version of a subscription definition which has already been defined. + public func createSubscriptionDefinitionVersion(_ input: CreateSubscriptionDefinitionVersionRequest) throws -> CreateSubscriptionDefinitionVersionResponse { + return try client.send(operation: "CreateSubscriptionDefinitionVersion", path: "/greengrass/definition/subscriptions/{SubscriptionDefinitionId}/versions", httpMethod: "POST", input: input) } /// Updates a subscription definition. @@ -214,9 +249,9 @@ public struct Greengrass { return try client.send(operation: "UpdateSubscriptionDefinition", path: "/greengrass/definition/subscriptions/{SubscriptionDefinitionId}", httpMethod: "PUT", input: input) } - /// Creates a version of a subscription definition which has already been defined. - public func createSubscriptionDefinitionVersion(_ input: CreateSubscriptionDefinitionVersionRequest) throws -> CreateSubscriptionDefinitionVersionResponse { - return try client.send(operation: "CreateSubscriptionDefinitionVersion", path: "/greengrass/definition/subscriptions/{SubscriptionDefinitionId}/versions", httpMethod: "POST", input: input) + /// Deletes a core definition. The core definition must not have been used in a deployment. + public func deleteCoreDefinition(_ input: DeleteCoreDefinitionRequest) throws -> DeleteCoreDefinitionResponse { + return try client.send(operation: "DeleteCoreDefinition", path: "/greengrass/definition/cores/{CoreDefinitionId}", httpMethod: "DELETE", input: input) } /// Creates a logger definition. You may optionally provide the initial version of the logger definition or use ``CreateLoggerDefinitionVersion`` at a later time. @@ -244,9 +279,9 @@ public struct Greengrass { return try client.send(operation: "ListFunctionDefinitionVersions", path: "/greengrass/definition/functions/{FunctionDefinitionId}/versions", httpMethod: "GET", input: input) } - /// Retrieves the current CAs for a group. - public func listGroupCertificateAuthorities(_ input: ListGroupCertificateAuthoritiesRequest) throws -> ListGroupCertificateAuthoritiesResponse { - return try client.send(operation: "ListGroupCertificateAuthorities", path: "/greengrass/groups/{GroupId}/certificateauthorities", httpMethod: "GET", input: input) + /// Lists the versions of a resource definition. + public func listResourceDefinitionVersions(_ input: ListResourceDefinitionVersionsRequest) throws -> ListResourceDefinitionVersionsResponse { + return try client.send(operation: "ListResourceDefinitionVersions", path: "/greengrass/definition/resources/{ResourceDefinitionId}/versions", httpMethod: "GET", input: input) } /// Deletes a group. The group must not have been used in deployment. @@ -259,6 +294,11 @@ public struct Greengrass { return try client.send(operation: "ListDeployments", path: "/greengrass/groups/{GroupId}/deployments", httpMethod: "GET", input: input) } + /// Retrieves the current CAs for a group. + public func listGroupCertificateAuthorities(_ input: ListGroupCertificateAuthoritiesRequest) throws -> ListGroupCertificateAuthoritiesResponse { + return try client.send(operation: "ListGroupCertificateAuthorities", path: "/greengrass/groups/{GroupId}/certificateauthorities", httpMethod: "GET", input: input) + } + /// Retrieves the role associated with a particular group. public func getAssociatedRole(_ input: GetAssociatedRoleRequest) throws -> GetAssociatedRoleResponse { return try client.send(operation: "GetAssociatedRole", path: "/greengrass/groups/{GroupId}/role", httpMethod: "GET", input: input) @@ -274,6 +314,11 @@ public struct Greengrass { return try client.send(operation: "CreateSubscriptionDefinition", path: "/greengrass/definition/subscriptions", httpMethod: "POST", input: input) } + /// Resets a group's deployments. + public func resetDeployments(_ input: ResetDeploymentsRequest) throws -> ResetDeploymentsResponse { + return try client.send(operation: "ResetDeployments", path: "/greengrass/groups/{GroupId}/deployments/$reset", httpMethod: "POST", input: input) + } + /// Retrieves information about a logger definition version. public func getLoggerDefinitionVersion(_ input: GetLoggerDefinitionVersionRequest) throws -> GetLoggerDefinitionVersionResponse { return try client.send(operation: "GetLoggerDefinitionVersion", path: "/greengrass/definition/loggers/{LoggerDefinitionId}/versions/{LoggerDefinitionVersionId}", httpMethod: "GET", input: input) @@ -289,6 +334,11 @@ public struct Greengrass { return try client.send(operation: "ListLoggerDefinitionVersions", path: "/greengrass/definition/loggers/{LoggerDefinitionId}/versions", httpMethod: "GET", input: input) } + /// Deletes a resource definition. + public func deleteResourceDefinition(_ input: DeleteResourceDefinitionRequest) throws -> DeleteResourceDefinitionResponse { + return try client.send(operation: "DeleteResourceDefinition", path: "/greengrass/definition/resources/{ResourceDefinitionId}", httpMethod: "DELETE", input: input) + } + /// Lists versions of a core definition. public func listCoreDefinitionVersions(_ input: ListCoreDefinitionVersionsRequest) throws -> ListCoreDefinitionVersionsResponse { return try client.send(operation: "ListCoreDefinitionVersions", path: "/greengrass/definition/cores/{CoreDefinitionId}/versions", httpMethod: "GET", input: input) diff --git a/Sources/AWSSDKSwift/Services/greengrass/Greengrass_Shapes.swift b/Sources/AWSSDKSwift/Services/greengrass/Greengrass_Shapes.swift index c053551f54c..0201575f817 100644 --- a/Sources/AWSSDKSwift/Services/greengrass/Greengrass_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/greengrass/Greengrass_Shapes.swift @@ -5,8 +5,44 @@ import AWSSDKSwiftCore extension Greengrass { + public struct GetResourceDefinitionVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Version", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Definition", required: false, type: .structure), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// Version of the resource definition version. + public let version: String? + /// Arn of the resource definition version. + public let arn: String? + /// Timestamp of when the resource definition version was created. + public let creationTimestamp: String? + /// Information on definition. + public let definition: ResourceDefinitionVersion? + /// Id of the resource definition the version belongs to. + public let id: String? + + public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, definition: ResourceDefinitionVersion? = nil, id: String? = nil) { + self.version = version + self.arn = arn + self.creationTimestamp = creationTimestamp + self.definition = definition + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case version = "Version" + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case definition = "Definition" + case id = "Id" + } + } + public struct ListLoggerDefinitionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) ] @@ -24,12 +60,12 @@ extension Greengrass { } } - public struct UpdateDeviceDefinitionResponse: AWSShape { + public struct UpdateResourceDefinitionResponse: AWSShape { } public struct ListFunctionDefinitionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) ] @@ -47,39 +83,8 @@ extension Greengrass { } } - public struct Deployment: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeploymentId", required: false, type: .string), - AWSShapeMember(label: "CreatedAt", required: false, type: .string), - AWSShapeMember(label: "GroupArn", required: false, type: .string), - AWSShapeMember(label: "DeploymentArn", required: false, type: .string) - ] - /// Id of the deployment. - public let deploymentId: String? - /// Timestamp when the deployment was created. - public let createdAt: String? - /// Arn of the group for this deployment. - public let groupArn: String? - /// Arn of the deployment. - public let deploymentArn: String? - - public init(deploymentId: String? = nil, createdAt: String? = nil, groupArn: String? = nil, deploymentArn: String? = nil) { - self.deploymentId = deploymentId - self.createdAt = createdAt - self.groupArn = groupArn - self.deploymentArn = deploymentArn - } - - private enum CodingKeys: String, CodingKey { - case deploymentId = "DeploymentId" - case createdAt = "CreatedAt" - case groupArn = "GroupArn" - case deploymentArn = "DeploymentArn" - } - } - public struct GetGroupVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Version", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), @@ -115,7 +120,7 @@ extension Greengrass { } public struct GroupCertificateConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateExpiryInMilliseconds", required: false, type: .string), AWSShapeMember(label: "CertificateAuthorityExpiryInMilliseconds", required: false, type: .string), AWSShapeMember(label: "GroupId", required: false, type: .string) @@ -140,86 +145,12 @@ extension Greengrass { } } - public struct UpdateFunctionDefinitionResponse: AWSShape { - - } - public struct DeleteGroupResponse: AWSShape { } - public struct ListFunctionDefinitionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Definitions", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - public let definitions: [DefinitionInformation]? - public let nextToken: String? - - public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { - self.definitions = definitions - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case definitions = "Definitions" - case nextToken = "NextToken" - } - } - - public struct AssociateRoleToGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) - ] - /// Role arn you wish to associate with this group. - public let roleArn: String? - public let groupId: String - - public init(roleArn: String? = nil, groupId: String) { - self.roleArn = roleArn - self.groupId = groupId - } - - private enum CodingKeys: String, CodingKey { - case roleArn = "RoleArn" - case groupId = "GroupId" - } - } - - public struct DeleteLoggerDefinitionResponse: AWSShape { - - } - - public enum LoggerComponent: String, CustomStringConvertible, Codable { - case greengrasssystem = "GreengrassSystem" - case lambda = "Lambda" - public var description: String { return self.rawValue } - } - - public struct ListVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Versions", required: false, type: .list) - ] - /// The token for the next set of results, or ''null'' if there are no additional results. - public let nextToken: String? - /// Versions - public let versions: [VersionInformation]? - - public init(nextToken: String? = nil, versions: [VersionInformation]? = nil) { - self.nextToken = nextToken - self.versions = versions - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case versions = "Versions" - } - } - public struct GetFunctionDefinitionVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionDefinitionId", location: .uri(locationName: "FunctionDefinitionId"), required: true, type: .string), AWSShapeMember(label: "FunctionDefinitionVersionId", location: .uri(locationName: "FunctionDefinitionVersionId"), required: true, type: .string) ] @@ -238,7 +169,7 @@ extension Greengrass { } public struct CreateLoggerDefinitionVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Version", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), @@ -265,7 +196,7 @@ extension Greengrass { } public struct Subscription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subject", required: false, type: .string), AWSShapeMember(label: "Target", required: false, type: .string), AWSShapeMember(label: "Source", required: false, type: .string), @@ -296,7 +227,7 @@ extension Greengrass { } public struct CreateDeviceDefinitionVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Version", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), @@ -322,34 +253,27 @@ extension Greengrass { } } - public struct Function: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FunctionConfiguration", required: false, type: .structure), - AWSShapeMember(label: "FunctionArn", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) + public struct ListResourceDefinitionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) ] - /// Configuration of the function - public let functionConfiguration: FunctionConfiguration? - /// Arn of the Lambda function. - public let functionArn: String? - /// Id of the function in this version. - public let id: String? + public let nextToken: String? + public let maxResults: String? - public init(functionConfiguration: FunctionConfiguration? = nil, functionArn: String? = nil, id: String? = nil) { - self.functionConfiguration = functionConfiguration - self.functionArn = functionArn - self.id = id + public init(nextToken: String? = nil, maxResults: String? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case functionConfiguration = "FunctionConfiguration" - case functionArn = "FunctionArn" - case id = "Id" + case nextToken = "NextToken" + case maxResults = "MaxResults" } } public struct ListFunctionDefinitionVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Versions", required: false, type: .list) ] @@ -367,47 +291,8 @@ extension Greengrass { } } - public struct GetLoggerDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), - AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), - AWSShapeMember(label: "LatestVersion", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - public let arn: String? - public let creationTimestamp: String? - public let name: String? - public let lastUpdatedTimestamp: String? - public let latestVersionArn: String? - public let latestVersion: String? - public let id: String? - - public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { - self.arn = arn - self.creationTimestamp = creationTimestamp - self.name = name - self.lastUpdatedTimestamp = lastUpdatedTimestamp - self.latestVersionArn = latestVersionArn - self.latestVersion = latestVersion - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case name = "Name" - case lastUpdatedTimestamp = "LastUpdatedTimestamp" - case latestVersionArn = "LatestVersionArn" - case latestVersion = "LatestVersion" - case id = "Id" - } - } - public struct CreateCoreDefinitionVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Version", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), @@ -433,12 +318,27 @@ extension Greengrass { } } - public struct UpdateSubscriptionDefinitionResponse: AWSShape { + public struct UpdateGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) + ] + public let name: String? + public let groupId: String + + public init(name: String? = nil, groupId: String) { + self.name = name + self.groupId = groupId + } + private enum CodingKeys: String, CodingKey { + case name = "Name" + case groupId = "GroupId" + } } public struct CreateDeviceDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "InitialVersion", required: false, type: .structure) @@ -460,201 +360,75 @@ extension Greengrass { } } - public struct UpdateGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) + public struct ListResourceDefinitionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Definitions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) ] - public let name: String? - public let groupId: String + public let definitions: [DefinitionInformation]? + public let nextToken: String? - public init(name: String? = nil, groupId: String) { - self.name = name - self.groupId = groupId + public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { + self.definitions = definitions + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case name = "Name" - case groupId = "GroupId" + case definitions = "Definitions" + case nextToken = "NextToken" } } - public struct GetDeviceDefinitionVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeviceDefinitionVersionId", location: .uri(locationName: "DeviceDefinitionVersionId"), required: true, type: .string), - AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string) + public struct UpdateCoreDefinitionResponse: AWSShape { + + } + + public struct UpdateDeviceDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string) ] - public let deviceDefinitionVersionId: String public let deviceDefinitionId: String + public let name: String? - public init(deviceDefinitionVersionId: String, deviceDefinitionId: String) { - self.deviceDefinitionVersionId = deviceDefinitionVersionId + public init(deviceDefinitionId: String, name: String? = nil) { self.deviceDefinitionId = deviceDefinitionId + self.name = name } private enum CodingKeys: String, CodingKey { - case deviceDefinitionVersionId = "DeviceDefinitionVersionId" case deviceDefinitionId = "DeviceDefinitionId" + case name = "Name" } } - public struct UpdateCoreDefinitionResponse: AWSShape { + public struct DeleteFunctionDefinitionResponse: AWSShape { } - public struct CreateFunctionDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), - AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), - AWSShapeMember(label: "LatestVersion", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) + public struct ResourceDataContainer: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LocalVolumeResourceData", required: false, type: .structure), + AWSShapeMember(label: "LocalDeviceResourceData", required: false, type: .structure) ] - public let arn: String? - public let creationTimestamp: String? - public let name: String? - public let lastUpdatedTimestamp: String? - public let latestVersionArn: String? - public let latestVersion: String? - public let id: String? - - public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { - self.arn = arn - self.creationTimestamp = creationTimestamp - self.name = name - self.lastUpdatedTimestamp = lastUpdatedTimestamp - self.latestVersionArn = latestVersionArn - self.latestVersion = latestVersion - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case name = "Name" - case lastUpdatedTimestamp = "LastUpdatedTimestamp" - case latestVersionArn = "LatestVersionArn" - case latestVersion = "LatestVersion" - case id = "Id" - } - } - - public struct UpdateDeviceDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string) - ] - public let deviceDefinitionId: String - public let name: String? - - public init(deviceDefinitionId: String, name: String? = nil) { - self.deviceDefinitionId = deviceDefinitionId - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case deviceDefinitionId = "DeviceDefinitionId" - case name = "Name" - } - } - - public struct DeleteFunctionDefinitionResponse: AWSShape { - - } - - public struct ListCoreDefinitionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Definitions", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - public let definitions: [DefinitionInformation]? - public let nextToken: String? - - public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { - self.definitions = definitions - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case definitions = "Definitions" - case nextToken = "NextToken" - } - } - - public struct GetSubscriptionDefinitionVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Version", required: false, type: .string), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Definition", required: false, type: .structure), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - /// Version of the subscription definition version. - public let version: String? - /// Arn of the subscription definition version. - public let arn: String? - /// Timestamp of when the subscription definition version was created. - public let creationTimestamp: String? - /// Information on the definition - public let definition: SubscriptionDefinitionVersion? - /// Id of the subscription definition the version belongs to. - public let id: String? - - public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, definition: SubscriptionDefinitionVersion? = nil, id: String? = nil) { - self.version = version - self.arn = arn - self.creationTimestamp = creationTimestamp - self.definition = definition - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case version = "Version" - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case definition = "Definition" - case id = "Id" - } - } - - public struct ListLoggerDefinitionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Definitions", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - public let definitions: [DefinitionInformation]? - public let nextToken: String? + /// Attributes that define the Local Volume Resource. + public let localVolumeResourceData: LocalVolumeResourceData? + /// Attributes that define the Local Device Resource. + public let localDeviceResourceData: LocalDeviceResourceData? - public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { - self.definitions = definitions - self.nextToken = nextToken + public init(localVolumeResourceData: LocalVolumeResourceData? = nil, localDeviceResourceData: LocalDeviceResourceData? = nil) { + self.localVolumeResourceData = localVolumeResourceData + self.localDeviceResourceData = localDeviceResourceData } private enum CodingKeys: String, CodingKey { - case definitions = "Definitions" - case nextToken = "NextToken" + case localVolumeResourceData = "LocalVolumeResourceData" + case localDeviceResourceData = "LocalDeviceResourceData" } } public struct DisassociateRoleFromGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) - ] - public let groupId: String - - public init(groupId: String) { - self.groupId = groupId - } - - private enum CodingKeys: String, CodingKey { - case groupId = "GroupId" - } - } - - public struct GetAssociatedRoleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) ] public let groupId: String @@ -668,55 +442,12 @@ extension Greengrass { } } - public struct GetConnectivityInfoResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ConnectivityInfo", required: false, type: .list), - AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) - ] - /// Connectivity info array - public let connectivityInfo: [ConnectivityInfo]? - public let message: String? - - public init(connectivityInfo: [ConnectivityInfo]? = nil, message: String? = nil) { - self.connectivityInfo = connectivityInfo - self.message = message - } - - private enum CodingKeys: String, CodingKey { - case connectivityInfo = "ConnectivityInfo" - case message = "message" - } - } - - public struct CreateDeviceDefinitionVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), - AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string), - AWSShapeMember(label: "Devices", required: false, type: .list) - ] - public let amznClientToken: String? - public let deviceDefinitionId: String - public let devices: [Device]? - - public init(amznClientToken: String? = nil, deviceDefinitionId: String, devices: [Device]? = nil) { - self.amznClientToken = amznClientToken - self.deviceDefinitionId = deviceDefinitionId - self.devices = devices - } - - private enum CodingKeys: String, CodingKey { - case amznClientToken = "X-Amzn-Client-Token" - case deviceDefinitionId = "DeviceDefinitionId" - case devices = "Devices" - } - } - public struct ListDeploymentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Deployments", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// Information on deployments + /// List of deployments for the requested groups public let deployments: [Deployment]? /// The token for the next set of results, or ''null'' if there are no additional results. public let nextToken: String? @@ -732,27 +463,8 @@ extension Greengrass { } } - public struct GetGroupVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupVersionId", location: .uri(locationName: "GroupVersionId"), required: true, type: .string), - AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) - ] - public let groupVersionId: String - public let groupId: String - - public init(groupVersionId: String, groupId: String) { - self.groupVersionId = groupVersionId - self.groupId = groupId - } - - private enum CodingKeys: String, CodingKey { - case groupVersionId = "GroupVersionId" - case groupId = "GroupId" - } - } - public struct UpdateGroupCertificateConfigurationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateExpiryInMilliseconds", required: false, type: .string), AWSShapeMember(label: "CertificateAuthorityExpiryInMilliseconds", required: false, type: .string), AWSShapeMember(label: "GroupId", required: false, type: .string) @@ -774,46 +486,8 @@ extension Greengrass { } } - public struct ListGroupVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Versions", required: false, type: .list) - ] - public let nextToken: String? - public let versions: [VersionInformation]? - - public init(nextToken: String? = nil, versions: [VersionInformation]? = nil) { - self.nextToken = nextToken - self.versions = versions - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case versions = "Versions" - } - } - - public struct GetLoggerDefinitionVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LoggerDefinitionVersionId", location: .uri(locationName: "LoggerDefinitionVersionId"), required: true, type: .string), - AWSShapeMember(label: "LoggerDefinitionId", location: .uri(locationName: "LoggerDefinitionId"), required: true, type: .string) - ] - public let loggerDefinitionVersionId: String - public let loggerDefinitionId: String - - public init(loggerDefinitionVersionId: String, loggerDefinitionId: String) { - self.loggerDefinitionVersionId = loggerDefinitionVersionId - self.loggerDefinitionId = loggerDefinitionId - } - - private enum CodingKeys: String, CodingKey { - case loggerDefinitionVersionId = "LoggerDefinitionVersionId" - case loggerDefinitionId = "LoggerDefinitionId" - } - } - public struct GetFunctionDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionDefinitionId", location: .uri(locationName: "FunctionDefinitionId"), required: true, type: .string) ] public let functionDefinitionId: String @@ -828,7 +502,7 @@ extension Greengrass { } public struct UpdateGroupCertificateConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateExpiryInMilliseconds", required: false, type: .string), AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) ] @@ -847,27 +521,8 @@ extension Greengrass { } } - public struct GetSubscriptionDefinitionVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubscriptionDefinitionId", location: .uri(locationName: "SubscriptionDefinitionId"), required: true, type: .string), - AWSShapeMember(label: "SubscriptionDefinitionVersionId", location: .uri(locationName: "SubscriptionDefinitionVersionId"), required: true, type: .string) - ] - public let subscriptionDefinitionId: String - public let subscriptionDefinitionVersionId: String - - public init(subscriptionDefinitionId: String, subscriptionDefinitionVersionId: String) { - self.subscriptionDefinitionId = subscriptionDefinitionId - self.subscriptionDefinitionVersionId = subscriptionDefinitionVersionId - } - - private enum CodingKeys: String, CodingKey { - case subscriptionDefinitionId = "SubscriptionDefinitionId" - case subscriptionDefinitionVersionId = "SubscriptionDefinitionVersionId" - } - } - public struct ListSubscriptionDefinitionVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Versions", required: false, type: .list) ] @@ -886,7 +541,7 @@ extension Greengrass { } public struct UpdateSubscriptionDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubscriptionDefinitionId", location: .uri(locationName: "SubscriptionDefinitionId"), required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -905,7 +560,7 @@ extension Greengrass { } public struct CreateCoreDefinitionVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), AWSShapeMember(label: "Cores", required: false, type: .list), AWSShapeMember(label: "CoreDefinitionId", location: .uri(locationName: "CoreDefinitionId"), required: true, type: .string) @@ -927,63 +582,35 @@ extension Greengrass { } } - public struct ListSubscriptionDefinitionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), - AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) + public enum DeploymentType: String, CustomStringConvertible, Codable { + case newdeployment = "NewDeployment" + case redeployment = "Redeployment" + case resetdeployment = "ResetDeployment" + case forceresetdeployment = "ForceResetDeployment" + public var description: String { return self.rawValue } + } + + public struct GetResourceDefinitionVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceDefinitionId", location: .uri(locationName: "ResourceDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "ResourceDefinitionVersionId", location: .uri(locationName: "ResourceDefinitionVersionId"), required: true, type: .string) ] - public let nextToken: String? - public let maxResults: String? + public let resourceDefinitionId: String + public let resourceDefinitionVersionId: String - public init(nextToken: String? = nil, maxResults: String? = nil) { - self.nextToken = nextToken - self.maxResults = maxResults + public init(resourceDefinitionId: String, resourceDefinitionVersionId: String) { + self.resourceDefinitionId = resourceDefinitionId + self.resourceDefinitionVersionId = resourceDefinitionVersionId } private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case maxResults = "MaxResults" - } - } - - public struct GetCoreDefinitionVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Version", required: false, type: .string), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Definition", required: false, type: .structure), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - /// Version of the core definition version. - public let version: String? - /// Arn of the core definition version. - public let arn: String? - /// Timestamp of when the core definition version was created. - public let creationTimestamp: String? - /// Information on definition - public let definition: CoreDefinitionVersion? - /// Id of the core definition the version belongs to. - public let id: String? - - public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, definition: CoreDefinitionVersion? = nil, id: String? = nil) { - self.version = version - self.arn = arn - self.creationTimestamp = creationTimestamp - self.definition = definition - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case version = "Version" - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case definition = "Definition" - case id = "Id" + case resourceDefinitionId = "ResourceDefinitionId" + case resourceDefinitionVersionId = "ResourceDefinitionVersionId" } } public struct DeleteSubscriptionDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubscriptionDefinitionId", location: .uri(locationName: "SubscriptionDefinitionId"), required: true, type: .string) ] public let subscriptionDefinitionId: String @@ -998,7 +625,7 @@ extension Greengrass { } public struct ListGroupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Groups", required: false, type: .list) ] @@ -1019,7 +646,7 @@ extension Greengrass { } public struct CreateGroupCertificateAuthorityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupCertificateAuthorityArn", required: false, type: .string) ] /// Arn of the group certificate authority. @@ -1034,48 +661,8 @@ extension Greengrass { } } - public struct ListGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), - AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) - ] - public let nextToken: String? - public let maxResults: String? - - public init(nextToken: String? = nil, maxResults: String? = nil) { - self.nextToken = nextToken - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case maxResults = "MaxResults" - } - } - - public struct GetServiceRoleForAccountResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "AssociatedAt", required: false, type: .string) - ] - /// Role arn which is associated to the account. - public let roleArn: String? - /// Time when the service role was associated to the account. - public let associatedAt: String? - - public init(roleArn: String? = nil, associatedAt: String? = nil) { - self.roleArn = roleArn - self.associatedAt = associatedAt - } - - private enum CodingKeys: String, CodingKey { - case roleArn = "RoleArn" - case associatedAt = "AssociatedAt" - } - } - public struct DeleteFunctionDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionDefinitionId", location: .uri(locationName: "FunctionDefinitionId"), required: true, type: .string) ] public let functionDefinitionId: String @@ -1090,66 +677,64 @@ extension Greengrass { } public struct GroupVersion: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CoreDefinitionVersionArn", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubscriptionDefinitionVersionArn", required: false, type: .string), AWSShapeMember(label: "DeviceDefinitionVersionArn", required: false, type: .string), + AWSShapeMember(label: "CoreDefinitionVersionArn", required: false, type: .string), AWSShapeMember(label: "LoggerDefinitionVersionArn", required: false, type: .string), AWSShapeMember(label: "FunctionDefinitionVersionArn", required: false, type: .string), - AWSShapeMember(label: "SubscriptionDefinitionVersionArn", required: false, type: .string) + AWSShapeMember(label: "ResourceDefinitionVersionArn", required: false, type: .string) ] - /// Core definition version arn for this group. - public let coreDefinitionVersionArn: String? + /// Subscription definition version arn for this group. + public let subscriptionDefinitionVersionArn: String? /// Device definition version arn for this group. public let deviceDefinitionVersionArn: String? - /// Logger definitionv ersion arn for this group. + /// Core definition version arn for this group. + public let coreDefinitionVersionArn: String? + /// Logger definition version arn for this group. public let loggerDefinitionVersionArn: String? /// Function definition version arn for this group. public let functionDefinitionVersionArn: String? - /// Subscription definition version arn for this group. - public let subscriptionDefinitionVersionArn: String? + /// Resource definition version arn for this group. + public let resourceDefinitionVersionArn: String? - public init(coreDefinitionVersionArn: String? = nil, deviceDefinitionVersionArn: String? = nil, loggerDefinitionVersionArn: String? = nil, functionDefinitionVersionArn: String? = nil, subscriptionDefinitionVersionArn: String? = nil) { - self.coreDefinitionVersionArn = coreDefinitionVersionArn + public init(subscriptionDefinitionVersionArn: String? = nil, deviceDefinitionVersionArn: String? = nil, coreDefinitionVersionArn: String? = nil, loggerDefinitionVersionArn: String? = nil, functionDefinitionVersionArn: String? = nil, resourceDefinitionVersionArn: String? = nil) { + self.subscriptionDefinitionVersionArn = subscriptionDefinitionVersionArn self.deviceDefinitionVersionArn = deviceDefinitionVersionArn + self.coreDefinitionVersionArn = coreDefinitionVersionArn self.loggerDefinitionVersionArn = loggerDefinitionVersionArn self.functionDefinitionVersionArn = functionDefinitionVersionArn - self.subscriptionDefinitionVersionArn = subscriptionDefinitionVersionArn + self.resourceDefinitionVersionArn = resourceDefinitionVersionArn } private enum CodingKeys: String, CodingKey { - case coreDefinitionVersionArn = "CoreDefinitionVersionArn" + case subscriptionDefinitionVersionArn = "SubscriptionDefinitionVersionArn" case deviceDefinitionVersionArn = "DeviceDefinitionVersionArn" + case coreDefinitionVersionArn = "CoreDefinitionVersionArn" case loggerDefinitionVersionArn = "LoggerDefinitionVersionArn" case functionDefinitionVersionArn = "FunctionDefinitionVersionArn" - case subscriptionDefinitionVersionArn = "SubscriptionDefinitionVersionArn" + case resourceDefinitionVersionArn = "ResourceDefinitionVersionArn" } } - public struct ListSubscriptionDefinitionVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubscriptionDefinitionId", location: .uri(locationName: "SubscriptionDefinitionId"), required: true, type: .string), - AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), - AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) + public struct ListGroupCertificateAuthoritiesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupCertificateAuthorities", required: false, type: .list) ] - public let subscriptionDefinitionId: String - public let nextToken: String? - public let maxResults: String? + /// List of certificate authorities associated with the group. + public let groupCertificateAuthorities: [GroupCertificateAuthorityProperties]? - public init(subscriptionDefinitionId: String, nextToken: String? = nil, maxResults: String? = nil) { - self.subscriptionDefinitionId = subscriptionDefinitionId - self.nextToken = nextToken - self.maxResults = maxResults + public init(groupCertificateAuthorities: [GroupCertificateAuthorityProperties]? = nil) { + self.groupCertificateAuthorities = groupCertificateAuthorities } private enum CodingKeys: String, CodingKey { - case subscriptionDefinitionId = "SubscriptionDefinitionId" - case nextToken = "NextToken" - case maxResults = "MaxResults" + case groupCertificateAuthorities = "GroupCertificateAuthorities" } } public struct DeleteDeviceDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string) ] public let deviceDefinitionId: String @@ -1163,133 +748,57 @@ extension Greengrass { } } - public struct GetDeviceDefinitionVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Version", required: false, type: .string), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Definition", required: false, type: .structure), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - /// Version of the device definition version. - public let version: String? - /// Arn of the device definition version. - public let arn: String? - /// Timestamp of when the device definition version was created. - public let creationTimestamp: String? - /// Device definition version - public let definition: DeviceDefinitionVersion? - /// Id of the device definition the version belongs to. - public let id: String? - - public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, definition: DeviceDefinitionVersion? = nil, id: String? = nil) { - self.version = version - self.arn = arn - self.creationTimestamp = creationTimestamp - self.definition = definition - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case version = "Version" - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case definition = "Definition" - case id = "Id" - } - } - - public struct DefinitionInformation: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + public struct Resource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceDataContainer", required: false, type: .structure), AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), - AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), - AWSShapeMember(label: "LatestVersion", required: false, type: .string), AWSShapeMember(label: "Id", required: false, type: .string) ] - /// Arn of the definition. - public let arn: String? - /// Timestamp of when the definition was created. - public let creationTimestamp: String? - /// Name of the definition. + /// A container of data for all resource types. + public let resourceDataContainer: ResourceDataContainer? + /// A descriptive resource name. public let name: String? - /// Last updated timestamp of the definition. - public let lastUpdatedTimestamp: String? - /// Latest version arn of the definition. - public let latestVersionArn: String? - /// Last version of the definition. - public let latestVersion: String? - /// Id of the definition. + /// Resource Id. public let id: String? - public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { - self.arn = arn - self.creationTimestamp = creationTimestamp + public init(resourceDataContainer: ResourceDataContainer? = nil, name: String? = nil, id: String? = nil) { + self.resourceDataContainer = resourceDataContainer self.name = name - self.lastUpdatedTimestamp = lastUpdatedTimestamp - self.latestVersionArn = latestVersionArn - self.latestVersion = latestVersion self.id = id } private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" + case resourceDataContainer = "ResourceDataContainer" case name = "Name" - case lastUpdatedTimestamp = "LastUpdatedTimestamp" - case latestVersionArn = "LatestVersionArn" - case latestVersion = "LatestVersion" case id = "Id" } } - public struct AssociateServiceRoleToAccountRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleArn", required: false, type: .string) - ] - /// Role arn you wish to associate with this account. - public let roleArn: String? - - public init(roleArn: String? = nil) { - self.roleArn = roleArn - } - - private enum CodingKeys: String, CodingKey { - case roleArn = "RoleArn" - } - } - - public enum DeploymentType: String, CustomStringConvertible, Codable { - case newdeployment = "NewDeployment" - case redeployment = "Redeployment" - public var description: String { return self.rawValue } - } - - public struct GeneralError: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ErrorDetails", required: false, type: .list), - AWSShapeMember(label: "Message", required: false, type: .string) + public struct CreateResourceDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "InitialVersion", required: false, type: .structure) ] - /// Error Details - public let errorDetails: [ErrorDetail]? - /// Message - public let message: String? + public let amznClientToken: String? + public let name: String? + public let initialVersion: ResourceDefinitionVersion? - public init(errorDetails: [ErrorDetail]? = nil, message: String? = nil) { - self.errorDetails = errorDetails - self.message = message + public init(amznClientToken: String? = nil, name: String? = nil, initialVersion: ResourceDefinitionVersion? = nil) { + self.amznClientToken = amznClientToken + self.name = name + self.initialVersion = initialVersion } private enum CodingKeys: String, CodingKey { - case errorDetails = "ErrorDetails" - case message = "Message" + case amznClientToken = "X-Amzn-Client-Token" + case name = "Name" + case initialVersion = "InitialVersion" } } public struct ListLoggerDefinitionVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), AWSShapeMember(label: "LoggerDefinitionId", location: .uri(locationName: "LoggerDefinitionId"), required: true, type: .string), AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) @@ -1311,24 +820,8 @@ extension Greengrass { } } - public struct ListGroupCertificateAuthoritiesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupCertificateAuthorities", required: false, type: .list) - ] - /// List of certificate authorities associated with the group. - public let groupCertificateAuthorities: [GroupCertificateAuthorityProperties]? - - public init(groupCertificateAuthorities: [GroupCertificateAuthorityProperties]? = nil) { - self.groupCertificateAuthorities = groupCertificateAuthorities - } - - private enum CodingKeys: String, CodingKey { - case groupCertificateAuthorities = "GroupCertificateAuthorities" - } - } - public struct CreateGroupCertificateAuthorityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) ] @@ -1346,41 +839,15 @@ extension Greengrass { } } - public struct GetGroupCertificateAuthorityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PemEncodedCertificate", required: false, type: .string), - AWSShapeMember(label: "GroupCertificateAuthorityId", required: false, type: .string), - AWSShapeMember(label: "GroupCertificateAuthorityArn", required: false, type: .string) + public struct ErrorDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DetailedErrorMessage", required: false, type: .string), + AWSShapeMember(label: "DetailedErrorCode", required: false, type: .string) ] - /// PEM encoded certificate for the group. - public let pemEncodedCertificate: String? - /// Id of the certificate authority for the group. - public let groupCertificateAuthorityId: String? - /// Arn of the certificate authority for the group. - public let groupCertificateAuthorityArn: String? - - public init(pemEncodedCertificate: String? = nil, groupCertificateAuthorityId: String? = nil, groupCertificateAuthorityArn: String? = nil) { - self.pemEncodedCertificate = pemEncodedCertificate - self.groupCertificateAuthorityId = groupCertificateAuthorityId - self.groupCertificateAuthorityArn = groupCertificateAuthorityArn - } - - private enum CodingKeys: String, CodingKey { - case pemEncodedCertificate = "PemEncodedCertificate" - case groupCertificateAuthorityId = "GroupCertificateAuthorityId" - case groupCertificateAuthorityArn = "GroupCertificateAuthorityArn" - } - } - - public struct ErrorDetail: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DetailedErrorMessage", required: false, type: .string), - AWSShapeMember(label: "DetailedErrorCode", required: false, type: .string) - ] - /// Detailed Error Message - public let detailedErrorMessage: String? - /// Detailed Error Code - public let detailedErrorCode: String? + /// Detailed Error Message + public let detailedErrorMessage: String? + /// Detailed Error Code + public let detailedErrorCode: String? public init(detailedErrorMessage: String? = nil, detailedErrorCode: String? = nil) { self.detailedErrorMessage = detailedErrorMessage @@ -1393,63 +860,8 @@ extension Greengrass { } } - public struct GetAssociatedRoleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "AssociatedAt", required: false, type: .string) - ] - /// Arn of the role that is associated with the group. - public let roleArn: String? - /// Time when the role was associated for the group. - public let associatedAt: String? - - public init(roleArn: String? = nil, associatedAt: String? = nil) { - self.roleArn = roleArn - self.associatedAt = associatedAt - } - - private enum CodingKeys: String, CodingKey { - case roleArn = "RoleArn" - case associatedAt = "AssociatedAt" - } - } - - public struct GetLoggerDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LoggerDefinitionId", location: .uri(locationName: "LoggerDefinitionId"), required: true, type: .string) - ] - public let loggerDefinitionId: String - - public init(loggerDefinitionId: String) { - self.loggerDefinitionId = loggerDefinitionId - } - - private enum CodingKeys: String, CodingKey { - case loggerDefinitionId = "LoggerDefinitionId" - } - } - - public struct UpdateFunctionDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FunctionDefinitionId", location: .uri(locationName: "FunctionDefinitionId"), required: true, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string) - ] - public let functionDefinitionId: String - public let name: String? - - public init(functionDefinitionId: String, name: String? = nil) { - self.functionDefinitionId = functionDefinitionId - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case functionDefinitionId = "FunctionDefinitionId" - case name = "Name" - } - } - public struct ListSubscriptionDefinitionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Definitions", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1468,7 +880,7 @@ extension Greengrass { } public struct DisassociateRoleFromGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DisassociatedAt", required: false, type: .string) ] /// Time when the role was disassociated from the group. @@ -1483,24 +895,8 @@ extension Greengrass { } } - public struct CoreDefinitionVersion: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Cores", required: false, type: .list) - ] - /// Cores in the definition version. - public let cores: [Core]? - - public init(cores: [Core]? = nil) { - self.cores = cores - } - - private enum CodingKeys: String, CodingKey { - case cores = "Cores" - } - } - public struct GetFunctionDefinitionVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Version", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), @@ -1513,7 +909,7 @@ extension Greengrass { public let arn: String? /// Timestamp when the funtion definition version was created. public let creationTimestamp: String? - /// Information on the definition + /// Information on the definition. public let definition: FunctionDefinitionVersion? /// Id of the function definition the version belongs to. public let id: String? @@ -1535,70 +931,12 @@ extension Greengrass { } } - public struct ListDeviceDefinitionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Definitions", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - public let definitions: [DefinitionInformation]? - public let nextToken: String? - - public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { - self.definitions = definitions - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case definitions = "Definitions" - case nextToken = "NextToken" - } - } - - public struct GetGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), - AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), - AWSShapeMember(label: "LatestVersion", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - public let arn: String? - public let creationTimestamp: String? - public let name: String? - public let lastUpdatedTimestamp: String? - public let latestVersionArn: String? - public let latestVersion: String? - public let id: String? - - public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { - self.arn = arn - self.creationTimestamp = creationTimestamp - self.name = name - self.lastUpdatedTimestamp = lastUpdatedTimestamp - self.latestVersionArn = latestVersionArn - self.latestVersion = latestVersion - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case name = "Name" - case lastUpdatedTimestamp = "LastUpdatedTimestamp" - case latestVersionArn = "LatestVersionArn" - case latestVersion = "LatestVersion" - case id = "Id" - } - } - public struct UpdateConnectivityInfoRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConnectivityInfo", required: false, type: .list), AWSShapeMember(label: "ThingName", location: .uri(locationName: "ThingName"), required: true, type: .string) ] - /// Connectivity info array + /// Connectivity info list public let connectivityInfo: [ConnectivityInfo]? public let thingName: String @@ -1613,23 +951,24 @@ extension Greengrass { } } - public struct GetDeviceDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string) + public struct ResourceDefinitionVersion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Resources", required: false, type: .list) ] - public let deviceDefinitionId: String + /// List of resources. + public let resources: [Resource]? - public init(deviceDefinitionId: String) { - self.deviceDefinitionId = deviceDefinitionId + public init(resources: [Resource]? = nil) { + self.resources = resources } private enum CodingKeys: String, CodingKey { - case deviceDefinitionId = "DeviceDefinitionId" + case resources = "Resources" } } public struct GetDeviceDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -1667,48 +1006,23 @@ extension Greengrass { } } - public struct UpdateLoggerDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LoggerDefinitionId", location: .uri(locationName: "LoggerDefinitionId"), required: true, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string) - ] - public let loggerDefinitionId: String - public let name: String? - - public init(loggerDefinitionId: String, name: String? = nil) { - self.loggerDefinitionId = loggerDefinitionId - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case loggerDefinitionId = "LoggerDefinitionId" - case name = "Name" - } - } - - public struct ListDefinitionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Definitions", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) + public struct GetDeviceDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string) ] - /// Definitions - public let definitions: [DefinitionInformation]? - /// The token for the next set of results, or ''null'' if there are no additional results. - public let nextToken: String? + public let deviceDefinitionId: String - public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { - self.definitions = definitions - self.nextToken = nextToken + public init(deviceDefinitionId: String) { + self.deviceDefinitionId = deviceDefinitionId } private enum CodingKeys: String, CodingKey { - case definitions = "Definitions" - case nextToken = "NextToken" + case deviceDefinitionId = "DeviceDefinitionId" } } public struct ListLoggerDefinitionVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Versions", required: false, type: .list) ] @@ -1726,47 +1040,42 @@ extension Greengrass { } } - public struct CreateGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), - AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), - AWSShapeMember(label: "LatestVersion", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) + public struct UpdateLoggerDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LoggerDefinitionId", location: .uri(locationName: "LoggerDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string) ] - public let arn: String? - public let creationTimestamp: String? + public let loggerDefinitionId: String public let name: String? - public let lastUpdatedTimestamp: String? - public let latestVersionArn: String? - public let latestVersion: String? - public let id: String? - public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { - self.arn = arn - self.creationTimestamp = creationTimestamp + public init(loggerDefinitionId: String, name: String? = nil) { + self.loggerDefinitionId = loggerDefinitionId self.name = name - self.lastUpdatedTimestamp = lastUpdatedTimestamp - self.latestVersionArn = latestVersionArn - self.latestVersion = latestVersion - self.id = id } private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" + case loggerDefinitionId = "LoggerDefinitionId" case name = "Name" - case lastUpdatedTimestamp = "LastUpdatedTimestamp" - case latestVersionArn = "LatestVersionArn" - case latestVersion = "LatestVersion" - case id = "Id" + } + } + + public struct GetResourceDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceDefinitionId", location: .uri(locationName: "ResourceDefinitionId"), required: true, type: .string) + ] + public let resourceDefinitionId: String + + public init(resourceDefinitionId: String) { + self.resourceDefinitionId = resourceDefinitionId + } + + private enum CodingKeys: String, CodingKey { + case resourceDefinitionId = "ResourceDefinitionId" } } public struct Core: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SyncShadow", required: false, type: .boolean), AWSShapeMember(label: "CertificateArn", required: false, type: .string), AWSShapeMember(label: "ThingArn", required: false, type: .string), @@ -1796,12 +1105,31 @@ extension Greengrass { } } - public struct DeleteSubscriptionDefinitionResponse: AWSShape { + public struct ListDeviceDefinitionVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) + ] + public let deviceDefinitionId: String + public let nextToken: String? + public let maxResults: String? + + public init(deviceDefinitionId: String, nextToken: String? = nil, maxResults: String? = nil) { + self.deviceDefinitionId = deviceDefinitionId + self.nextToken = nextToken + self.maxResults = maxResults + } + private enum CodingKeys: String, CodingKey { + case deviceDefinitionId = "DeviceDefinitionId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } } public struct DeleteCoreDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CoreDefinitionId", location: .uri(locationName: "CoreDefinitionId"), required: true, type: .string) ] public let coreDefinitionId: String @@ -1816,7 +1144,7 @@ extension Greengrass { } public struct ListFunctionDefinitionVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionDefinitionId", location: .uri(locationName: "FunctionDefinitionId"), required: true, type: .string), AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) @@ -1838,60 +1166,14 @@ extension Greengrass { } } - public struct ListDeviceDefinitionVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string), - AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), - AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) - ] - public let deviceDefinitionId: String - public let nextToken: String? - public let maxResults: String? - - public init(deviceDefinitionId: String, nextToken: String? = nil, maxResults: String? = nil) { - self.deviceDefinitionId = deviceDefinitionId - self.nextToken = nextToken - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case deviceDefinitionId = "DeviceDefinitionId" - case nextToken = "NextToken" - case maxResults = "MaxResults" - } - } - public enum LoggerType: String, CustomStringConvertible, Codable { case filesystem = "FileSystem" case awscloudwatch = "AWSCloudWatch" public var description: String { return self.rawValue } } - public struct UpdateCoreDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "CoreDefinitionId", location: .uri(locationName: "CoreDefinitionId"), required: true, type: .string) - ] - public let name: String? - public let coreDefinitionId: String - - public init(name: String? = nil, coreDefinitionId: String) { - self.name = name - self.coreDefinitionId = coreDefinitionId - } - - private enum CodingKeys: String, CodingKey { - case name = "Name" - case coreDefinitionId = "CoreDefinitionId" - } - } - - public struct UpdateGroupResponse: AWSShape { - - } - public struct CreateLoggerDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -1930,7 +1212,7 @@ extension Greengrass { } public struct CreateLoggerDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "InitialVersion", required: false, type: .structure) @@ -1952,31 +1234,8 @@ extension Greengrass { } } - public struct ListGroupVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), - AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string), - AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) - ] - public let nextToken: String? - public let groupId: String - public let maxResults: String? - - public init(nextToken: String? = nil, groupId: String, maxResults: String? = nil) { - self.nextToken = nextToken - self.groupId = groupId - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case groupId = "GroupId" - case maxResults = "MaxResults" - } - } - public struct FunctionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Environment", required: false, type: .structure), AWSShapeMember(label: "Executable", required: false, type: .string), AWSShapeMember(label: "Timeout", required: false, type: .integer), @@ -2016,65 +1275,8 @@ extension Greengrass { } } - public struct GetLoggerDefinitionVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Version", required: false, type: .string), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Definition", required: false, type: .structure), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - /// Version of the logger definition version. - public let version: String? - /// Arn of the logger definition version. - public let arn: String? - /// Timestamp of when the logger definition version was created. - public let creationTimestamp: String? - /// Information on definition - public let definition: LoggerDefinitionVersion? - /// Id of the logger definition the version belongs to. - public let id: String? - - public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, definition: LoggerDefinitionVersion? = nil, id: String? = nil) { - self.version = version - self.arn = arn - self.creationTimestamp = creationTimestamp - self.definition = definition - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case version = "Version" - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case definition = "Definition" - case id = "Id" - } - } - - public struct GroupCertificateAuthorityProperties: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupCertificateAuthorityId", required: false, type: .string), - AWSShapeMember(label: "GroupCertificateAuthorityArn", required: false, type: .string) - ] - /// Id of the certificate authority for the group. - public let groupCertificateAuthorityId: String? - /// Arn of the certificate authority for the group. - public let groupCertificateAuthorityArn: String? - - public init(groupCertificateAuthorityId: String? = nil, groupCertificateAuthorityArn: String? = nil) { - self.groupCertificateAuthorityId = groupCertificateAuthorityId - self.groupCertificateAuthorityArn = groupCertificateAuthorityArn - } - - private enum CodingKeys: String, CodingKey { - case groupCertificateAuthorityId = "GroupCertificateAuthorityId" - case groupCertificateAuthorityArn = "GroupCertificateAuthorityArn" - } - } - public struct CreateFunctionDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "InitialVersion", required: false, type: .structure) @@ -2096,31 +1298,8 @@ extension Greengrass { } } - public struct CreateSubscriptionDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "InitialVersion", required: false, type: .structure) - ] - public let amznClientToken: String? - public let name: String? - public let initialVersion: SubscriptionDefinitionVersion? - - public init(amznClientToken: String? = nil, name: String? = nil, initialVersion: SubscriptionDefinitionVersion? = nil) { - self.amznClientToken = amznClientToken - self.name = name - self.initialVersion = initialVersion - } - - private enum CodingKeys: String, CodingKey { - case amznClientToken = "X-Amzn-Client-Token" - case name = "Name" - case initialVersion = "InitialVersion" - } - } - public struct ListDeviceDefinitionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) ] @@ -2138,12 +1317,27 @@ extension Greengrass { } } - public struct UpdateLoggerDefinitionResponse: AWSShape { + public struct ListResourceDefinitionVersionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Versions", required: false, type: .list) + ] + public let nextToken: String? + public let versions: [VersionInformation]? + + public init(nextToken: String? = nil, versions: [VersionInformation]? = nil) { + self.nextToken = nextToken + self.versions = versions + } + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case versions = "Versions" + } } public struct DeleteLoggerDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoggerDefinitionId", location: .uri(locationName: "LoggerDefinitionId"), required: true, type: .string) ] public let loggerDefinitionId: String @@ -2157,27 +1351,8 @@ extension Greengrass { } } - public struct GetDeploymentStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeploymentId", location: .uri(locationName: "DeploymentId"), required: true, type: .string), - AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) - ] - public let deploymentId: String - public let groupId: String - - public init(deploymentId: String, groupId: String) { - self.deploymentId = deploymentId - self.groupId = groupId - } - - private enum CodingKeys: String, CodingKey { - case deploymentId = "DeploymentId" - case groupId = "GroupId" - } - } - public struct AssociateServiceRoleToAccountResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociatedAt", required: false, type: .string) ] /// Time when the service role was associated to the account. @@ -2192,73 +1367,94 @@ extension Greengrass { } } - public struct DeleteCoreDefinitionResponse: AWSShape { - - } - - public struct FunctionConfigurationEnvironment: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Variables", required: false, type: .map) + public struct CreateGroupVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Version", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) ] - public let variables: [String: String]? + public let version: String? + public let arn: String? + public let creationTimestamp: String? + public let id: String? - public init(variables: [String: String]? = nil) { - self.variables = variables + public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, id: String? = nil) { + self.version = version + self.arn = arn + self.creationTimestamp = creationTimestamp + self.id = id } private enum CodingKeys: String, CodingKey { - case variables = "Variables" + case version = "Version" + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case id = "Id" } } - public struct CreateLoggerDefinitionVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct CreateFunctionDefinitionVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), - AWSShapeMember(label: "LoggerDefinitionId", location: .uri(locationName: "LoggerDefinitionId"), required: true, type: .string), - AWSShapeMember(label: "Loggers", required: false, type: .list) + AWSShapeMember(label: "Functions", required: false, type: .list), + AWSShapeMember(label: "FunctionDefinitionId", location: .uri(locationName: "FunctionDefinitionId"), required: true, type: .string) ] public let amznClientToken: String? - public let loggerDefinitionId: String - public let loggers: [Logger]? + public let functions: [Function]? + public let functionDefinitionId: String - public init(amznClientToken: String? = nil, loggerDefinitionId: String, loggers: [Logger]? = nil) { + public init(amznClientToken: String? = nil, functions: [Function]? = nil, functionDefinitionId: String) { self.amznClientToken = amznClientToken - self.loggerDefinitionId = loggerDefinitionId - self.loggers = loggers + self.functions = functions + self.functionDefinitionId = functionDefinitionId } private enum CodingKeys: String, CodingKey { case amznClientToken = "X-Amzn-Client-Token" - case loggerDefinitionId = "LoggerDefinitionId" - case loggers = "Loggers" + case functions = "Functions" + case functionDefinitionId = "FunctionDefinitionId" } } - public struct ListCoreDefinitionVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string), - AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), - AWSShapeMember(label: "CoreDefinitionId", location: .uri(locationName: "CoreDefinitionId"), required: true, type: .string) + public struct GroupOwnerSetting: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AutoAddGroupOwner", required: false, type: .boolean), + AWSShapeMember(label: "GroupOwner", required: false, type: .string) ] - public let maxResults: String? - public let nextToken: String? - public let coreDefinitionId: String + /// Eanble the auto added group owner. + public let autoAddGroupOwner: Bool? + /// Name of the group owner. + public let groupOwner: String? - public init(maxResults: String? = nil, nextToken: String? = nil, coreDefinitionId: String) { - self.maxResults = maxResults - self.nextToken = nextToken - self.coreDefinitionId = coreDefinitionId + public init(autoAddGroupOwner: Bool? = nil, groupOwner: String? = nil) { + self.autoAddGroupOwner = autoAddGroupOwner + self.groupOwner = groupOwner } private enum CodingKeys: String, CodingKey { - case maxResults = "MaxResults" - case nextToken = "NextToken" - case coreDefinitionId = "CoreDefinitionId" + case autoAddGroupOwner = "AutoAddGroupOwner" + case groupOwner = "GroupOwner" } } - public struct GroupInformation: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct GetConnectivityInfoRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ThingName", location: .uri(locationName: "ThingName"), required: true, type: .string) + ] + public let thingName: String + + public init(thingName: String) { + self.thingName = thingName + } + + private enum CodingKeys: String, CodingKey { + case thingName = "ThingName" + } + } + + public struct CreateDeviceDefinitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -2267,19 +1463,12 @@ extension Greengrass { AWSShapeMember(label: "LatestVersion", required: false, type: .string), AWSShapeMember(label: "Id", required: false, type: .string) ] - /// Arn of a group. public let arn: String? - /// Timestamp of when the group was created. public let creationTimestamp: String? - /// Name of a group. public let name: String? - /// Last updated timestamp of the group. public let lastUpdatedTimestamp: String? - /// Latest version arn of the group. public let latestVersionArn: String? - /// Last version of the group. public let latestVersion: String? - /// Id of a group. public let id: String? public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { @@ -2303,154 +1492,14 @@ extension Greengrass { } } - public struct CreateGroupVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Version", required: false, type: .string), + public struct GetFunctionDefinitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - public let version: String? - public let arn: String? - public let creationTimestamp: String? - public let id: String? - - public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, id: String? = nil) { - self.version = version - self.arn = arn - self.creationTimestamp = creationTimestamp - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case version = "Version" - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case id = "Id" - } - } - - public struct CreateFunctionDefinitionVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), - AWSShapeMember(label: "Functions", required: false, type: .list), - AWSShapeMember(label: "FunctionDefinitionId", location: .uri(locationName: "FunctionDefinitionId"), required: true, type: .string) - ] - public let amznClientToken: String? - public let functions: [Function]? - public let functionDefinitionId: String - - public init(amznClientToken: String? = nil, functions: [Function]? = nil, functionDefinitionId: String) { - self.amznClientToken = amznClientToken - self.functions = functions - self.functionDefinitionId = functionDefinitionId - } - - private enum CodingKeys: String, CodingKey { - case amznClientToken = "X-Amzn-Client-Token" - case functions = "Functions" - case functionDefinitionId = "FunctionDefinitionId" - } - } - - public struct GetConnectivityInfoRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ThingName", location: .uri(locationName: "ThingName"), required: true, type: .string) - ] - public let thingName: String - - public init(thingName: String) { - self.thingName = thingName - } - - private enum CodingKeys: String, CodingKey { - case thingName = "ThingName" - } - } - - public struct CreateSubscriptionDefinitionVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Version", required: false, type: .string), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - public let version: String? - public let arn: String? - public let creationTimestamp: String? - public let id: String? - - public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, id: String? = nil) { - self.version = version - self.arn = arn - self.creationTimestamp = creationTimestamp - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case version = "Version" - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case id = "Id" - } - } - - public enum LoggerLevel: String, CustomStringConvertible, Codable { - case debug = "DEBUG" - case info = "INFO" - case warn = "WARN" - case error = "ERROR" - case fatal = "FATAL" - public var description: String { return self.rawValue } - } - - public struct CreateDeviceDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), - AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), - AWSShapeMember(label: "LatestVersion", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - public let arn: String? - public let creationTimestamp: String? - public let name: String? - public let lastUpdatedTimestamp: String? - public let latestVersionArn: String? - public let latestVersion: String? - public let id: String? - - public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { - self.arn = arn - self.creationTimestamp = creationTimestamp - self.name = name - self.lastUpdatedTimestamp = lastUpdatedTimestamp - self.latestVersionArn = latestVersionArn - self.latestVersion = latestVersion - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case name = "Name" - case lastUpdatedTimestamp = "LastUpdatedTimestamp" - case latestVersionArn = "LatestVersionArn" - case latestVersion = "LatestVersion" - case id = "Id" - } - } - - public struct GetFunctionDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), - AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), - AWSShapeMember(label: "LatestVersion", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), + AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), + AWSShapeMember(label: "LatestVersion", required: false, type: .string), AWSShapeMember(label: "Id", required: false, type: .string) ] public let arn: String? @@ -2482,57 +1531,15 @@ extension Greengrass { } } - public struct CreateDeploymentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeploymentId", required: false, type: .string), - AWSShapeMember(label: "GroupVersionId", required: false, type: .string), - AWSShapeMember(label: "DeploymentType", required: false, type: .enum), - AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), - AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) - ] - /// Id of the deployment if you wish to redeploy a previous deployment. - public let deploymentId: String? - /// Group Version you wish to deploy. - public let groupVersionId: String? - /// Type of deployment - public let deploymentType: DeploymentType? - public let amznClientToken: String? - public let groupId: String - - public init(deploymentId: String? = nil, groupVersionId: String? = nil, deploymentType: DeploymentType? = nil, amznClientToken: String? = nil, groupId: String) { - self.deploymentId = deploymentId - self.groupVersionId = groupVersionId - self.deploymentType = deploymentType - self.amznClientToken = amznClientToken - self.groupId = groupId - } - - private enum CodingKeys: String, CodingKey { - case deploymentId = "DeploymentId" - case groupVersionId = "GroupVersionId" - case deploymentType = "DeploymentType" - case amznClientToken = "X-Amzn-Client-Token" - case groupId = "GroupId" - } - } - - public struct GetSubscriptionDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubscriptionDefinitionId", location: .uri(locationName: "SubscriptionDefinitionId"), required: true, type: .string) - ] - public let subscriptionDefinitionId: String - - public init(subscriptionDefinitionId: String) { - self.subscriptionDefinitionId = subscriptionDefinitionId - } - - private enum CodingKeys: String, CodingKey { - case subscriptionDefinitionId = "SubscriptionDefinitionId" - } + public enum UpdateTargetsOperatingSystem: String, CustomStringConvertible, Codable { + case ubuntu = "ubuntu" + case raspbian = "raspbian" + case amazonLinux = "amazon_linux" + public var description: String { return self.rawValue } } public struct CreateFunctionDefinitionVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Version", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), @@ -2559,10 +1566,11 @@ extension Greengrass { } public struct UpdateConnectivityInfoResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .string) ] + /// Response Text public let message: String? /// New Version public let version: String? @@ -2579,7 +1587,7 @@ extension Greengrass { } public struct GetSubscriptionDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -2617,24 +1625,8 @@ extension Greengrass { } } - public struct SubscriptionDefinitionVersion: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Subscriptions", required: false, type: .list) - ] - /// Subscriptions in the version. - public let subscriptions: [Subscription]? - - public init(subscriptions: [Subscription]? = nil) { - self.subscriptions = subscriptions - } - - private enum CodingKeys: String, CodingKey { - case subscriptions = "Subscriptions" - } - } - public struct ListDeviceDefinitionVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Versions", required: false, type: .list) ] @@ -2653,7 +1645,7 @@ extension Greengrass { } public struct GetGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) ] public let groupId: String @@ -2668,7 +1660,7 @@ extension Greengrass { } public struct GetGroupCertificateAuthorityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateAuthorityId", location: .uri(locationName: "CertificateAuthorityId"), required: true, type: .string), AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) ] @@ -2687,7 +1679,7 @@ extension Greengrass { } public struct CreateCoreDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -2726,7 +1718,7 @@ extension Greengrass { } public struct DisassociateServiceRoleFromAccountResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DisassociatedAt", required: false, type: .string) ] /// Time when the service role was disassociated from the account. @@ -2741,23 +1733,47 @@ extension Greengrass { } } - public struct GetGroupCertificateConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) + public struct CreateSoftwareUpdateJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SoftwareToUpdate", required: false, type: .enum), + AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), + AWSShapeMember(label: "UpdateTargets", required: false, type: .list), + AWSShapeMember(label: "UpdateTargetsOperatingSystem", required: false, type: .enum), + AWSShapeMember(label: "S3UrlSignerRole", required: false, type: .string), + AWSShapeMember(label: "UpdateAgentLogLevel", required: false, type: .enum), + AWSShapeMember(label: "UpdateTargetsArchitecture", required: false, type: .enum) ] - public let groupId: String - - public init(groupId: String) { - self.groupId = groupId + public let softwareToUpdate: SoftwareToUpdate? + public let amznClientToken: String? + public let updateTargets: [String]? + public let updateTargetsOperatingSystem: UpdateTargetsOperatingSystem? + public let s3UrlSignerRole: String? + public let updateAgentLogLevel: UpdateAgentLogLevel? + public let updateTargetsArchitecture: UpdateTargetsArchitecture? + + public init(softwareToUpdate: SoftwareToUpdate? = nil, amznClientToken: String? = nil, updateTargets: [String]? = nil, updateTargetsOperatingSystem: UpdateTargetsOperatingSystem? = nil, s3UrlSignerRole: String? = nil, updateAgentLogLevel: UpdateAgentLogLevel? = nil, updateTargetsArchitecture: UpdateTargetsArchitecture? = nil) { + self.softwareToUpdate = softwareToUpdate + self.amznClientToken = amznClientToken + self.updateTargets = updateTargets + self.updateTargetsOperatingSystem = updateTargetsOperatingSystem + self.s3UrlSignerRole = s3UrlSignerRole + self.updateAgentLogLevel = updateAgentLogLevel + self.updateTargetsArchitecture = updateTargetsArchitecture } private enum CodingKeys: String, CodingKey { - case groupId = "GroupId" + case softwareToUpdate = "SoftwareToUpdate" + case amznClientToken = "X-Amzn-Client-Token" + case updateTargets = "UpdateTargets" + case updateTargetsOperatingSystem = "UpdateTargetsOperatingSystem" + case s3UrlSignerRole = "S3UrlSignerRole" + case updateAgentLogLevel = "UpdateAgentLogLevel" + case updateTargetsArchitecture = "UpdateTargetsArchitecture" } } public struct Logger: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Level", required: false, type: .enum), AWSShapeMember(label: "Component", required: false, type: .enum), AWSShapeMember(label: "Space", required: false, type: .integer), @@ -2792,12 +1808,8 @@ extension Greengrass { } } - public struct Empty: AWSShape { - - } - public struct CreateSubscriptionDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -2825,18 +1837,1893 @@ extension Greengrass { } private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case creationTimestamp = "CreationTimestamp" - case name = "Name" - case lastUpdatedTimestamp = "LastUpdatedTimestamp" - case latestVersionArn = "LatestVersionArn" - case latestVersion = "LatestVersion" - case id = "Id" + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case name = "Name" + case lastUpdatedTimestamp = "LastUpdatedTimestamp" + case latestVersionArn = "LatestVersionArn" + case latestVersion = "LatestVersion" + case id = "Id" + } + } + + public struct CreateGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "InitialVersion", required: false, type: .structure) + ] + public let amznClientToken: String? + public let name: String? + public let initialVersion: GroupVersion? + + public init(amznClientToken: String? = nil, name: String? = nil, initialVersion: GroupVersion? = nil) { + self.amznClientToken = amznClientToken + self.name = name + self.initialVersion = initialVersion + } + + private enum CodingKeys: String, CodingKey { + case amznClientToken = "X-Amzn-Client-Token" + case name = "Name" + case initialVersion = "InitialVersion" + } + } + + public struct GetCoreDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CoreDefinitionId", location: .uri(locationName: "CoreDefinitionId"), required: true, type: .string) + ] + public let coreDefinitionId: String + + public init(coreDefinitionId: String) { + self.coreDefinitionId = coreDefinitionId + } + + private enum CodingKeys: String, CodingKey { + case coreDefinitionId = "CoreDefinitionId" + } + } + + public struct GetServiceRoleForAccountRequest: AWSShape { + + } + + public struct GetDeploymentStatusResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UpdatedAt", required: false, type: .string), + AWSShapeMember(label: "ErrorDetails", required: false, type: .list), + AWSShapeMember(label: "DeploymentType", required: false, type: .enum), + AWSShapeMember(label: "ErrorMessage", required: false, type: .string), + AWSShapeMember(label: "DeploymentStatus", required: false, type: .string) + ] + /// Last time the deployment status was updated. + public let updatedAt: String? + /// The error Details + public let errorDetails: [ErrorDetail]? + /// The type of the deployment. + public let deploymentType: DeploymentType? + /// Error Message + public let errorMessage: String? + /// Status of the deployment. + public let deploymentStatus: String? + + public init(updatedAt: String? = nil, errorDetails: [ErrorDetail]? = nil, deploymentType: DeploymentType? = nil, errorMessage: String? = nil, deploymentStatus: String? = nil) { + self.updatedAt = updatedAt + self.errorDetails = errorDetails + self.deploymentType = deploymentType + self.errorMessage = errorMessage + self.deploymentStatus = deploymentStatus + } + + private enum CodingKeys: String, CodingKey { + case updatedAt = "UpdatedAt" + case errorDetails = "ErrorDetails" + case deploymentType = "DeploymentType" + case errorMessage = "ErrorMessage" + case deploymentStatus = "DeploymentStatus" + } + } + + public struct CreateCoreDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "InitialVersion", required: false, type: .structure) + ] + public let amznClientToken: String? + public let name: String? + public let initialVersion: CoreDefinitionVersion? + + public init(amznClientToken: String? = nil, name: String? = nil, initialVersion: CoreDefinitionVersion? = nil) { + self.amznClientToken = amznClientToken + self.name = name + self.initialVersion = initialVersion + } + + private enum CodingKeys: String, CodingKey { + case amznClientToken = "X-Amzn-Client-Token" + case name = "Name" + case initialVersion = "InitialVersion" + } + } + + public struct ResourceAccessPolicy: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceId", required: false, type: .string), + AWSShapeMember(label: "Permission", required: false, type: .enum) + ] + /// Id of the resource. A reference to the resource definiton. + public let resourceId: String? + /// The function's access permission to the resource. + public let permission: Permission? + + public init(resourceId: String? = nil, permission: Permission? = nil) { + self.resourceId = resourceId + self.permission = permission + } + + private enum CodingKeys: String, CodingKey { + case resourceId = "ResourceId" + case permission = "Permission" + } + } + + public struct GetCoreDefinitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), + AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), + AWSShapeMember(label: "LatestVersion", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + public let arn: String? + public let creationTimestamp: String? + public let name: String? + public let lastUpdatedTimestamp: String? + public let latestVersionArn: String? + public let latestVersion: String? + public let id: String? + + public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { + self.arn = arn + self.creationTimestamp = creationTimestamp + self.name = name + self.lastUpdatedTimestamp = lastUpdatedTimestamp + self.latestVersionArn = latestVersionArn + self.latestVersion = latestVersion + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case name = "Name" + case lastUpdatedTimestamp = "LastUpdatedTimestamp" + case latestVersionArn = "LatestVersionArn" + case latestVersion = "LatestVersion" + case id = "Id" + } + } + + public struct CreateDeploymentResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeploymentId", required: false, type: .string), + AWSShapeMember(label: "DeploymentArn", required: false, type: .string) + ] + /// The id of the deployment. + public let deploymentId: String? + /// The arn of the deployment. + public let deploymentArn: String? + + public init(deploymentId: String? = nil, deploymentArn: String? = nil) { + self.deploymentId = deploymentId + self.deploymentArn = deploymentArn + } + + private enum CodingKeys: String, CodingKey { + case deploymentId = "DeploymentId" + case deploymentArn = "DeploymentArn" + } + } + + public struct ListDeploymentsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) + ] + public let nextToken: String? + public let groupId: String + public let maxResults: String? + + public init(nextToken: String? = nil, groupId: String, maxResults: String? = nil) { + self.nextToken = nextToken + self.groupId = groupId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case groupId = "GroupId" + case maxResults = "MaxResults" + } + } + + public struct DeviceDefinitionVersion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Devices", required: false, type: .list) + ] + /// Devices in the definition version. + public let devices: [Device]? + + public init(devices: [Device]? = nil) { + self.devices = devices + } + + private enum CodingKeys: String, CodingKey { + case devices = "Devices" + } + } + + public struct GetGroupCertificateConfigurationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CertificateExpiryInMilliseconds", required: false, type: .string), + AWSShapeMember(label: "CertificateAuthorityExpiryInMilliseconds", required: false, type: .string), + AWSShapeMember(label: "GroupId", required: false, type: .string) + ] + public let certificateExpiryInMilliseconds: String? + public let certificateAuthorityExpiryInMilliseconds: String? + public let groupId: String? + + public init(certificateExpiryInMilliseconds: String? = nil, certificateAuthorityExpiryInMilliseconds: String? = nil, groupId: String? = nil) { + self.certificateExpiryInMilliseconds = certificateExpiryInMilliseconds + self.certificateAuthorityExpiryInMilliseconds = certificateAuthorityExpiryInMilliseconds + self.groupId = groupId + } + + private enum CodingKeys: String, CodingKey { + case certificateExpiryInMilliseconds = "CertificateExpiryInMilliseconds" + case certificateAuthorityExpiryInMilliseconds = "CertificateAuthorityExpiryInMilliseconds" + case groupId = "GroupId" + } + } + + public struct GetCoreDefinitionVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CoreDefinitionVersionId", location: .uri(locationName: "CoreDefinitionVersionId"), required: true, type: .string), + AWSShapeMember(label: "CoreDefinitionId", location: .uri(locationName: "CoreDefinitionId"), required: true, type: .string) + ] + public let coreDefinitionVersionId: String + public let coreDefinitionId: String + + public init(coreDefinitionVersionId: String, coreDefinitionId: String) { + self.coreDefinitionVersionId = coreDefinitionVersionId + self.coreDefinitionId = coreDefinitionId + } + + private enum CodingKeys: String, CodingKey { + case coreDefinitionVersionId = "CoreDefinitionVersionId" + case coreDefinitionId = "CoreDefinitionId" + } + } + + public struct LocalDeviceResourceData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupOwnerSetting", required: false, type: .structure), + AWSShapeMember(label: "SourcePath", required: false, type: .string) + ] + /// Group owner related settings for local resources. + public let groupOwnerSetting: GroupOwnerSetting? + /// Local source path of the resource. + public let sourcePath: String? + + public init(groupOwnerSetting: GroupOwnerSetting? = nil, sourcePath: String? = nil) { + self.groupOwnerSetting = groupOwnerSetting + self.sourcePath = sourcePath + } + + private enum CodingKeys: String, CodingKey { + case groupOwnerSetting = "GroupOwnerSetting" + case sourcePath = "SourcePath" + } + } + + public struct AssociateRoleToGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssociatedAt", required: false, type: .string) + ] + /// Time the role arn was associated to your group. + public let associatedAt: String? + + public init(associatedAt: String? = nil) { + self.associatedAt = associatedAt + } + + private enum CodingKeys: String, CodingKey { + case associatedAt = "AssociatedAt" + } + } + + public struct ListCoreDefinitionVersionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Versions", required: false, type: .list) + ] + public let nextToken: String? + public let versions: [VersionInformation]? + + public init(nextToken: String? = nil, versions: [VersionInformation]? = nil) { + self.nextToken = nextToken + self.versions = versions + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case versions = "Versions" + } + } + + public struct ResetDeploymentsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string), + AWSShapeMember(label: "Force", required: false, type: .boolean) + ] + public let amznClientToken: String? + public let groupId: String + /// When set to true, perform a best-effort only core reset. + public let force: Bool? + + public init(amznClientToken: String? = nil, groupId: String, force: Bool? = nil) { + self.amznClientToken = amznClientToken + self.groupId = groupId + self.force = force + } + + private enum CodingKeys: String, CodingKey { + case amznClientToken = "X-Amzn-Client-Token" + case groupId = "GroupId" + case force = "Force" + } + } + + public struct DeleteDeviceDefinitionResponse: AWSShape { + + } + + public struct UpdateDeviceDefinitionResponse: AWSShape { + + } + + public struct Deployment: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeploymentId", required: false, type: .string), + AWSShapeMember(label: "CreatedAt", required: false, type: .string), + AWSShapeMember(label: "DeploymentType", required: false, type: .enum), + AWSShapeMember(label: "GroupArn", required: false, type: .string), + AWSShapeMember(label: "DeploymentArn", required: false, type: .string) + ] + /// Id of the deployment. + public let deploymentId: String? + /// Timestamp when the deployment was created. + public let createdAt: String? + /// The type of deployment. + public let deploymentType: DeploymentType? + /// Arn of the group for this deployment. + public let groupArn: String? + /// Arn of the deployment. + public let deploymentArn: String? + + public init(deploymentId: String? = nil, createdAt: String? = nil, deploymentType: DeploymentType? = nil, groupArn: String? = nil, deploymentArn: String? = nil) { + self.deploymentId = deploymentId + self.createdAt = createdAt + self.deploymentType = deploymentType + self.groupArn = groupArn + self.deploymentArn = deploymentArn + } + + private enum CodingKeys: String, CodingKey { + case deploymentId = "DeploymentId" + case createdAt = "CreatedAt" + case deploymentType = "DeploymentType" + case groupArn = "GroupArn" + case deploymentArn = "DeploymentArn" + } + } + + public struct UpdateFunctionDefinitionResponse: AWSShape { + + } + + public struct AssociateRoleToGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) + ] + /// Role arn you wish to associate with this group. + public let roleArn: String? + public let groupId: String + + public init(roleArn: String? = nil, groupId: String) { + self.roleArn = roleArn + self.groupId = groupId + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "RoleArn" + case groupId = "GroupId" + } + } + + public struct ListFunctionDefinitionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Definitions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + public let definitions: [DefinitionInformation]? + public let nextToken: String? + + public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { + self.definitions = definitions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case definitions = "Definitions" + case nextToken = "NextToken" + } + } + + public struct DeleteLoggerDefinitionResponse: AWSShape { + + } + + public enum LoggerComponent: String, CustomStringConvertible, Codable { + case greengrasssystem = "GreengrassSystem" + case lambda = "Lambda" + public var description: String { return self.rawValue } + } + + public struct ListVersionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Versions", required: false, type: .list) + ] + /// The token for the next set of results, or ''null'' if there are no additional results. + public let nextToken: String? + /// Versions + public let versions: [VersionInformation]? + + public init(nextToken: String? = nil, versions: [VersionInformation]? = nil) { + self.nextToken = nextToken + self.versions = versions + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case versions = "Versions" + } + } + + public struct LocalVolumeResourceData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupOwnerSetting", required: false, type: .structure), + AWSShapeMember(label: "SourcePath", required: false, type: .string), + AWSShapeMember(label: "DestinationPath", required: false, type: .string) + ] + /// Group owner related settings for local resources. + public let groupOwnerSetting: GroupOwnerSetting? + /// Local source path of the resource. + public let sourcePath: String? + /// Local destination path of the resource. + public let destinationPath: String? + + public init(groupOwnerSetting: GroupOwnerSetting? = nil, sourcePath: String? = nil, destinationPath: String? = nil) { + self.groupOwnerSetting = groupOwnerSetting + self.sourcePath = sourcePath + self.destinationPath = destinationPath + } + + private enum CodingKeys: String, CodingKey { + case groupOwnerSetting = "GroupOwnerSetting" + case sourcePath = "SourcePath" + case destinationPath = "DestinationPath" + } + } + + public struct Function: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FunctionConfiguration", required: false, type: .structure), + AWSShapeMember(label: "FunctionArn", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// Configuration of the function + public let functionConfiguration: FunctionConfiguration? + /// Arn of the Lambda function. + public let functionArn: String? + /// Id of the function in this version. + public let id: String? + + public init(functionConfiguration: FunctionConfiguration? = nil, functionArn: String? = nil, id: String? = nil) { + self.functionConfiguration = functionConfiguration + self.functionArn = functionArn + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case functionConfiguration = "FunctionConfiguration" + case functionArn = "FunctionArn" + case id = "Id" + } + } + + public struct GetLoggerDefinitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), + AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), + AWSShapeMember(label: "LatestVersion", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + public let arn: String? + public let creationTimestamp: String? + public let name: String? + public let lastUpdatedTimestamp: String? + public let latestVersionArn: String? + public let latestVersion: String? + public let id: String? + + public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { + self.arn = arn + self.creationTimestamp = creationTimestamp + self.name = name + self.lastUpdatedTimestamp = lastUpdatedTimestamp + self.latestVersionArn = latestVersionArn + self.latestVersion = latestVersion + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case name = "Name" + case lastUpdatedTimestamp = "LastUpdatedTimestamp" + case latestVersionArn = "LatestVersionArn" + case latestVersion = "LatestVersion" + case id = "Id" + } + } + + public struct UpdateSubscriptionDefinitionResponse: AWSShape { + + } + + public struct GetDeviceDefinitionVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeviceDefinitionVersionId", location: .uri(locationName: "DeviceDefinitionVersionId"), required: true, type: .string), + AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string) + ] + public let deviceDefinitionVersionId: String + public let deviceDefinitionId: String + + public init(deviceDefinitionVersionId: String, deviceDefinitionId: String) { + self.deviceDefinitionVersionId = deviceDefinitionVersionId + self.deviceDefinitionId = deviceDefinitionId + } + + private enum CodingKeys: String, CodingKey { + case deviceDefinitionVersionId = "DeviceDefinitionVersionId" + case deviceDefinitionId = "DeviceDefinitionId" + } + } + + public struct CreateFunctionDefinitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), + AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), + AWSShapeMember(label: "LatestVersion", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + public let arn: String? + public let creationTimestamp: String? + public let name: String? + public let lastUpdatedTimestamp: String? + public let latestVersionArn: String? + public let latestVersion: String? + public let id: String? + + public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { + self.arn = arn + self.creationTimestamp = creationTimestamp + self.name = name + self.lastUpdatedTimestamp = lastUpdatedTimestamp + self.latestVersionArn = latestVersionArn + self.latestVersion = latestVersion + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case name = "Name" + case lastUpdatedTimestamp = "LastUpdatedTimestamp" + case latestVersionArn = "LatestVersionArn" + case latestVersion = "LatestVersion" + case id = "Id" + } + } + + public struct GetSubscriptionDefinitionVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Version", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Definition", required: false, type: .structure), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// Version of the subscription definition version. + public let version: String? + /// Arn of the subscription definition version. + public let arn: String? + /// Timestamp of when the subscription definition version was created. + public let creationTimestamp: String? + /// Information on the definition + public let definition: SubscriptionDefinitionVersion? + /// Id of the subscription definition the version belongs to. + public let id: String? + + public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, definition: SubscriptionDefinitionVersion? = nil, id: String? = nil) { + self.version = version + self.arn = arn + self.creationTimestamp = creationTimestamp + self.definition = definition + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case version = "Version" + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case definition = "Definition" + case id = "Id" + } + } + + public struct ListCoreDefinitionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Definitions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + public let definitions: [DefinitionInformation]? + public let nextToken: String? + + public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { + self.definitions = definitions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case definitions = "Definitions" + case nextToken = "NextToken" + } + } + + public struct ListLoggerDefinitionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Definitions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + public let definitions: [DefinitionInformation]? + public let nextToken: String? + + public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { + self.definitions = definitions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case definitions = "Definitions" + case nextToken = "NextToken" + } + } + + public struct ResetDeploymentsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeploymentId", required: false, type: .string), + AWSShapeMember(label: "DeploymentArn", required: false, type: .string) + ] + /// The id of the reset deployment. + public let deploymentId: String? + /// The arn of the reset deployment. + public let deploymentArn: String? + + public init(deploymentId: String? = nil, deploymentArn: String? = nil) { + self.deploymentId = deploymentId + self.deploymentArn = deploymentArn + } + + private enum CodingKeys: String, CodingKey { + case deploymentId = "DeploymentId" + case deploymentArn = "DeploymentArn" + } + } + + public struct GetConnectivityInfoResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConnectivityInfo", required: false, type: .list), + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + /// Connectivity info list + public let connectivityInfo: [ConnectivityInfo]? + /// Response Text + public let message: String? + + public init(connectivityInfo: [ConnectivityInfo]? = nil, message: String? = nil) { + self.connectivityInfo = connectivityInfo + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case connectivityInfo = "ConnectivityInfo" + case message = "message" + } + } + + public struct GetAssociatedRoleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) + ] + public let groupId: String + + public init(groupId: String) { + self.groupId = groupId + } + + private enum CodingKeys: String, CodingKey { + case groupId = "GroupId" + } + } + + public struct CreateDeviceDefinitionVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), + AWSShapeMember(label: "DeviceDefinitionId", location: .uri(locationName: "DeviceDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "Devices", required: false, type: .list) + ] + public let amznClientToken: String? + public let deviceDefinitionId: String + public let devices: [Device]? + + public init(amznClientToken: String? = nil, deviceDefinitionId: String, devices: [Device]? = nil) { + self.amznClientToken = amznClientToken + self.deviceDefinitionId = deviceDefinitionId + self.devices = devices + } + + private enum CodingKeys: String, CodingKey { + case amznClientToken = "X-Amzn-Client-Token" + case deviceDefinitionId = "DeviceDefinitionId" + case devices = "Devices" + } + } + + public struct GetGroupVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupVersionId", location: .uri(locationName: "GroupVersionId"), required: true, type: .string), + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) + ] + public let groupVersionId: String + public let groupId: String + + public init(groupVersionId: String, groupId: String) { + self.groupVersionId = groupVersionId + self.groupId = groupId + } + + private enum CodingKeys: String, CodingKey { + case groupVersionId = "GroupVersionId" + case groupId = "GroupId" + } + } + + public struct DeleteResourceDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceDefinitionId", location: .uri(locationName: "ResourceDefinitionId"), required: true, type: .string) + ] + public let resourceDefinitionId: String + + public init(resourceDefinitionId: String) { + self.resourceDefinitionId = resourceDefinitionId + } + + private enum CodingKeys: String, CodingKey { + case resourceDefinitionId = "ResourceDefinitionId" + } + } + + public struct ListGroupVersionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Versions", required: false, type: .list) + ] + public let nextToken: String? + public let versions: [VersionInformation]? + + public init(nextToken: String? = nil, versions: [VersionInformation]? = nil) { + self.nextToken = nextToken + self.versions = versions + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case versions = "Versions" + } + } + + public struct GetLoggerDefinitionVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LoggerDefinitionVersionId", location: .uri(locationName: "LoggerDefinitionVersionId"), required: true, type: .string), + AWSShapeMember(label: "LoggerDefinitionId", location: .uri(locationName: "LoggerDefinitionId"), required: true, type: .string) + ] + public let loggerDefinitionVersionId: String + public let loggerDefinitionId: String + + public init(loggerDefinitionVersionId: String, loggerDefinitionId: String) { + self.loggerDefinitionVersionId = loggerDefinitionVersionId + self.loggerDefinitionId = loggerDefinitionId + } + + private enum CodingKeys: String, CodingKey { + case loggerDefinitionVersionId = "LoggerDefinitionVersionId" + case loggerDefinitionId = "LoggerDefinitionId" + } + } + + public struct ListSubscriptionDefinitionVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubscriptionDefinitionId", location: .uri(locationName: "SubscriptionDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) + ] + public let subscriptionDefinitionId: String + public let nextToken: String? + public let maxResults: String? + + public init(subscriptionDefinitionId: String, nextToken: String? = nil, maxResults: String? = nil) { + self.subscriptionDefinitionId = subscriptionDefinitionId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case subscriptionDefinitionId = "SubscriptionDefinitionId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct GetSubscriptionDefinitionVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubscriptionDefinitionId", location: .uri(locationName: "SubscriptionDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "SubscriptionDefinitionVersionId", location: .uri(locationName: "SubscriptionDefinitionVersionId"), required: true, type: .string) + ] + public let subscriptionDefinitionId: String + public let subscriptionDefinitionVersionId: String + + public init(subscriptionDefinitionId: String, subscriptionDefinitionVersionId: String) { + self.subscriptionDefinitionId = subscriptionDefinitionId + self.subscriptionDefinitionVersionId = subscriptionDefinitionVersionId + } + + private enum CodingKeys: String, CodingKey { + case subscriptionDefinitionId = "SubscriptionDefinitionId" + case subscriptionDefinitionVersionId = "SubscriptionDefinitionVersionId" + } + } + + public struct ListSubscriptionDefinitionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) + ] + public let nextToken: String? + public let maxResults: String? + + public init(nextToken: String? = nil, maxResults: String? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct GetCoreDefinitionVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Version", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Definition", required: false, type: .structure), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// Version of the core definition version. + public let version: String? + /// Arn of the core definition version. + public let arn: String? + /// Timestamp of when the core definition version was created. + public let creationTimestamp: String? + /// Information on definition + public let definition: CoreDefinitionVersion? + /// Id of the core definition the version belongs to. + public let id: String? + + public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, definition: CoreDefinitionVersion? = nil, id: String? = nil) { + self.version = version + self.arn = arn + self.creationTimestamp = creationTimestamp + self.definition = definition + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case version = "Version" + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case definition = "Definition" + case id = "Id" + } + } + + public struct DeleteResourceDefinitionResponse: AWSShape { + + } + + public struct ListGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) + ] + public let nextToken: String? + public let maxResults: String? + + public init(nextToken: String? = nil, maxResults: String? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct CreateSoftwareUpdateJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IotJobId", required: false, type: .string), + AWSShapeMember(label: "IotJobArn", required: false, type: .string) + ] + /// The Iot Job Id corresponding to this update. + public let iotJobId: String? + /// The Iot Job Arn corresponding to this update. + public let iotJobArn: String? + + public init(iotJobId: String? = nil, iotJobArn: String? = nil) { + self.iotJobId = iotJobId + self.iotJobArn = iotJobArn + } + + private enum CodingKeys: String, CodingKey { + case iotJobId = "IotJobId" + case iotJobArn = "IotJobArn" + } + } + + public struct ListResourceDefinitionVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceDefinitionId", location: .uri(locationName: "ResourceDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) + ] + public let resourceDefinitionId: String + public let nextToken: String? + public let maxResults: String? + + public init(resourceDefinitionId: String, nextToken: String? = nil, maxResults: String? = nil) { + self.resourceDefinitionId = resourceDefinitionId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case resourceDefinitionId = "ResourceDefinitionId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct GetServiceRoleForAccountResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "AssociatedAt", required: false, type: .string) + ] + /// Role arn which is associated to the account. + public let roleArn: String? + /// Time when the service role was associated to the account. + public let associatedAt: String? + + public init(roleArn: String? = nil, associatedAt: String? = nil) { + self.roleArn = roleArn + self.associatedAt = associatedAt + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "RoleArn" + case associatedAt = "AssociatedAt" + } + } + + public enum SoftwareToUpdate: String, CustomStringConvertible, Codable { + case core = "core" + case otaAgent = "ota_agent" + public var description: String { return self.rawValue } + } + + public struct GetDeviceDefinitionVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Version", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Definition", required: false, type: .structure), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// Version of the device definition version. + public let version: String? + /// Arn of the device definition version. + public let arn: String? + /// Timestamp of when the device definition version was created. + public let creationTimestamp: String? + /// Device definition version + public let definition: DeviceDefinitionVersion? + /// Id of the device definition the version belongs to. + public let id: String? + + public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, definition: DeviceDefinitionVersion? = nil, id: String? = nil) { + self.version = version + self.arn = arn + self.creationTimestamp = creationTimestamp + self.definition = definition + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case version = "Version" + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case definition = "Definition" + case id = "Id" + } + } + + public struct DefinitionInformation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), + AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), + AWSShapeMember(label: "LatestVersion", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// Arn of the definition. + public let arn: String? + /// Timestamp of when the definition was created. + public let creationTimestamp: String? + /// Name of the definition. + public let name: String? + /// Last updated timestamp of the definition. + public let lastUpdatedTimestamp: String? + /// Latest version arn of the definition. + public let latestVersionArn: String? + /// Last version of the definition. + public let latestVersion: String? + /// Id of the definition. + public let id: String? + + public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { + self.arn = arn + self.creationTimestamp = creationTimestamp + self.name = name + self.lastUpdatedTimestamp = lastUpdatedTimestamp + self.latestVersionArn = latestVersionArn + self.latestVersion = latestVersion + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case name = "Name" + case lastUpdatedTimestamp = "LastUpdatedTimestamp" + case latestVersionArn = "LatestVersionArn" + case latestVersion = "LatestVersion" + case id = "Id" + } + } + + public struct AssociateServiceRoleToAccountRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleArn", required: false, type: .string) + ] + /// Role arn you wish to associate with this account. + public let roleArn: String? + + public init(roleArn: String? = nil) { + self.roleArn = roleArn + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "RoleArn" + } + } + + public struct GeneralError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorDetails", required: false, type: .list), + AWSShapeMember(label: "Message", required: false, type: .string) + ] + /// Error Details + public let errorDetails: [ErrorDetail]? + /// Message containing information about the error + public let message: String? + + public init(errorDetails: [ErrorDetail]? = nil, message: String? = nil) { + self.errorDetails = errorDetails + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case errorDetails = "ErrorDetails" + case message = "Message" + } + } + + public enum UpdateTargetsArchitecture: String, CustomStringConvertible, Codable { + case armv7l = "armv7l" + case x8664 = "x86_64" + case aarch64 = "aarch64" + public var description: String { return self.rawValue } + } + + public struct GetGroupCertificateAuthorityResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PemEncodedCertificate", required: false, type: .string), + AWSShapeMember(label: "GroupCertificateAuthorityId", required: false, type: .string), + AWSShapeMember(label: "GroupCertificateAuthorityArn", required: false, type: .string) + ] + /// PEM encoded certificate for the group. + public let pemEncodedCertificate: String? + /// Id of the certificate authority for the group. + public let groupCertificateAuthorityId: String? + /// Arn of the certificate authority for the group. + public let groupCertificateAuthorityArn: String? + + public init(pemEncodedCertificate: String? = nil, groupCertificateAuthorityId: String? = nil, groupCertificateAuthorityArn: String? = nil) { + self.pemEncodedCertificate = pemEncodedCertificate + self.groupCertificateAuthorityId = groupCertificateAuthorityId + self.groupCertificateAuthorityArn = groupCertificateAuthorityArn + } + + private enum CodingKeys: String, CodingKey { + case pemEncodedCertificate = "PemEncodedCertificate" + case groupCertificateAuthorityId = "GroupCertificateAuthorityId" + case groupCertificateAuthorityArn = "GroupCertificateAuthorityArn" + } + } + + public struct GetAssociatedRoleResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "AssociatedAt", required: false, type: .string) + ] + /// Arn of the role that is associated with the group. + public let roleArn: String? + /// Time when the role was associated for the group. + public let associatedAt: String? + + public init(roleArn: String? = nil, associatedAt: String? = nil) { + self.roleArn = roleArn + self.associatedAt = associatedAt + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "RoleArn" + case associatedAt = "AssociatedAt" + } + } + + public struct GetLoggerDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LoggerDefinitionId", location: .uri(locationName: "LoggerDefinitionId"), required: true, type: .string) + ] + public let loggerDefinitionId: String + + public init(loggerDefinitionId: String) { + self.loggerDefinitionId = loggerDefinitionId + } + + private enum CodingKeys: String, CodingKey { + case loggerDefinitionId = "LoggerDefinitionId" + } + } + + public struct UpdateFunctionDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FunctionDefinitionId", location: .uri(locationName: "FunctionDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string) + ] + public let functionDefinitionId: String + public let name: String? + + public init(functionDefinitionId: String, name: String? = nil) { + self.functionDefinitionId = functionDefinitionId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case functionDefinitionId = "FunctionDefinitionId" + case name = "Name" + } + } + + public struct CoreDefinitionVersion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Cores", required: false, type: .list) + ] + /// Cores in the definition version. + public let cores: [Core]? + + public init(cores: [Core]? = nil) { + self.cores = cores + } + + private enum CodingKeys: String, CodingKey { + case cores = "Cores" + } + } + + public struct ListDeviceDefinitionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Definitions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + public let definitions: [DefinitionInformation]? + public let nextToken: String? + + public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { + self.definitions = definitions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case definitions = "Definitions" + case nextToken = "NextToken" + } + } + + public struct GetGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), + AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), + AWSShapeMember(label: "LatestVersion", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + public let arn: String? + public let creationTimestamp: String? + public let name: String? + public let lastUpdatedTimestamp: String? + public let latestVersionArn: String? + public let latestVersion: String? + public let id: String? + + public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { + self.arn = arn + self.creationTimestamp = creationTimestamp + self.name = name + self.lastUpdatedTimestamp = lastUpdatedTimestamp + self.latestVersionArn = latestVersionArn + self.latestVersion = latestVersion + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case name = "Name" + case lastUpdatedTimestamp = "LastUpdatedTimestamp" + case latestVersionArn = "LatestVersionArn" + case latestVersion = "LatestVersion" + case id = "Id" + } + } + + public struct ListDefinitionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Definitions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Definitions + public let definitions: [DefinitionInformation]? + /// The token for the next set of results, or ''null'' if there are no additional results. + public let nextToken: String? + + public init(definitions: [DefinitionInformation]? = nil, nextToken: String? = nil) { + self.definitions = definitions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case definitions = "Definitions" + case nextToken = "NextToken" + } + } + + public struct CreateGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), + AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), + AWSShapeMember(label: "LatestVersion", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + public let arn: String? + public let creationTimestamp: String? + public let name: String? + public let lastUpdatedTimestamp: String? + public let latestVersionArn: String? + public let latestVersion: String? + public let id: String? + + public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { + self.arn = arn + self.creationTimestamp = creationTimestamp + self.name = name + self.lastUpdatedTimestamp = lastUpdatedTimestamp + self.latestVersionArn = latestVersionArn + self.latestVersion = latestVersion + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case name = "Name" + case lastUpdatedTimestamp = "LastUpdatedTimestamp" + case latestVersionArn = "LatestVersionArn" + case latestVersion = "LatestVersion" + case id = "Id" + } + } + + public struct DeleteSubscriptionDefinitionResponse: AWSShape { + + } + + public struct UpdateCoreDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "CoreDefinitionId", location: .uri(locationName: "CoreDefinitionId"), required: true, type: .string) + ] + public let name: String? + public let coreDefinitionId: String + + public init(name: String? = nil, coreDefinitionId: String) { + self.name = name + self.coreDefinitionId = coreDefinitionId + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case coreDefinitionId = "CoreDefinitionId" + } + } + + public struct UpdateGroupResponse: AWSShape { + + } + + public struct GroupCertificateAuthorityProperties: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupCertificateAuthorityId", required: false, type: .string), + AWSShapeMember(label: "GroupCertificateAuthorityArn", required: false, type: .string) + ] + /// Id of the certificate authority for the group. + public let groupCertificateAuthorityId: String? + /// Arn of the certificate authority for the group. + public let groupCertificateAuthorityArn: String? + + public init(groupCertificateAuthorityId: String? = nil, groupCertificateAuthorityArn: String? = nil) { + self.groupCertificateAuthorityId = groupCertificateAuthorityId + self.groupCertificateAuthorityArn = groupCertificateAuthorityArn + } + + private enum CodingKeys: String, CodingKey { + case groupCertificateAuthorityId = "GroupCertificateAuthorityId" + case groupCertificateAuthorityArn = "GroupCertificateAuthorityArn" + } + } + + public struct ListGroupVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) + ] + public let nextToken: String? + public let groupId: String + public let maxResults: String? + + public init(nextToken: String? = nil, groupId: String, maxResults: String? = nil) { + self.nextToken = nextToken + self.groupId = groupId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case groupId = "GroupId" + case maxResults = "MaxResults" + } + } + + public struct UpdateResourceDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceDefinitionId", location: .uri(locationName: "ResourceDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string) + ] + public let resourceDefinitionId: String + public let name: String? + + public init(resourceDefinitionId: String, name: String? = nil) { + self.resourceDefinitionId = resourceDefinitionId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case resourceDefinitionId = "ResourceDefinitionId" + case name = "Name" + } + } + + public struct GetLoggerDefinitionVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Version", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Definition", required: false, type: .structure), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// Version of the logger definition version. + public let version: String? + /// Arn of the logger definition version. + public let arn: String? + /// Timestamp of when the logger definition version was created. + public let creationTimestamp: String? + /// Information on definition + public let definition: LoggerDefinitionVersion? + /// Id of the logger definition the version belongs to. + public let id: String? + + public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, definition: LoggerDefinitionVersion? = nil, id: String? = nil) { + self.version = version + self.arn = arn + self.creationTimestamp = creationTimestamp + self.definition = definition + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case version = "Version" + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case definition = "Definition" + case id = "Id" + } + } + + public struct CreateSubscriptionDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "InitialVersion", required: false, type: .structure) + ] + public let amznClientToken: String? + public let name: String? + public let initialVersion: SubscriptionDefinitionVersion? + + public init(amznClientToken: String? = nil, name: String? = nil, initialVersion: SubscriptionDefinitionVersion? = nil) { + self.amznClientToken = amznClientToken + self.name = name + self.initialVersion = initialVersion + } + + private enum CodingKeys: String, CodingKey { + case amznClientToken = "X-Amzn-Client-Token" + case name = "Name" + case initialVersion = "InitialVersion" + } + } + + public struct UpdateLoggerDefinitionResponse: AWSShape { + + } + + public struct GetDeploymentStatusRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeploymentId", location: .uri(locationName: "DeploymentId"), required: true, type: .string), + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) + ] + public let deploymentId: String + public let groupId: String + + public init(deploymentId: String, groupId: String) { + self.deploymentId = deploymentId + self.groupId = groupId + } + + private enum CodingKeys: String, CodingKey { + case deploymentId = "DeploymentId" + case groupId = "GroupId" + } + } + + public struct DeleteCoreDefinitionResponse: AWSShape { + + } + + public struct CreateLoggerDefinitionVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), + AWSShapeMember(label: "LoggerDefinitionId", location: .uri(locationName: "LoggerDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "Loggers", required: false, type: .list) + ] + public let amznClientToken: String? + public let loggerDefinitionId: String + public let loggers: [Logger]? + + public init(amznClientToken: String? = nil, loggerDefinitionId: String, loggers: [Logger]? = nil) { + self.amznClientToken = amznClientToken + self.loggerDefinitionId = loggerDefinitionId + self.loggers = loggers + } + + private enum CodingKeys: String, CodingKey { + case amznClientToken = "X-Amzn-Client-Token" + case loggerDefinitionId = "LoggerDefinitionId" + case loggers = "Loggers" + } + } + + public struct FunctionConfigurationEnvironment: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceAccessPolicies", required: false, type: .list), + AWSShapeMember(label: "Variables", required: false, type: .map), + AWSShapeMember(label: "AccessSysfs", required: false, type: .boolean) + ] + /// Policies for the function to access resources. + public let resourceAccessPolicies: [ResourceAccessPolicy]? + public let variables: [String: String]? + /// Flag to allow lambda access sys filesystem. + public let accessSysfs: Bool? + + public init(resourceAccessPolicies: [ResourceAccessPolicy]? = nil, variables: [String: String]? = nil, accessSysfs: Bool? = nil) { + self.resourceAccessPolicies = resourceAccessPolicies + self.variables = variables + self.accessSysfs = accessSysfs + } + + private enum CodingKeys: String, CodingKey { + case resourceAccessPolicies = "ResourceAccessPolicies" + case variables = "Variables" + case accessSysfs = "AccessSysfs" + } + } + + public struct ListCoreDefinitionVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), + AWSShapeMember(label: "CoreDefinitionId", location: .uri(locationName: "CoreDefinitionId"), required: true, type: .string) + ] + public let maxResults: String? + public let nextToken: String? + public let coreDefinitionId: String + + public init(maxResults: String? = nil, nextToken: String? = nil, coreDefinitionId: String) { + self.maxResults = maxResults + self.nextToken = nextToken + self.coreDefinitionId = coreDefinitionId + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "MaxResults" + case nextToken = "NextToken" + case coreDefinitionId = "CoreDefinitionId" + } + } + + public enum UpdateAgentLogLevel: String, CustomStringConvertible, Codable { + case none = "NONE" + case trace = "TRACE" + case debug = "DEBUG" + case verbose = "VERBOSE" + case info = "INFO" + case warn = "WARN" + case error = "ERROR" + case fatal = "FATAL" + public var description: String { return self.rawValue } + } + + public struct GroupInformation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), + AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), + AWSShapeMember(label: "LatestVersion", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// Arn of a group. + public let arn: String? + /// Timestamp of when the group was created. + public let creationTimestamp: String? + /// Name of a group. + public let name: String? + /// Last updated timestamp of the group. + public let lastUpdatedTimestamp: String? + /// Latest version arn of the group. + public let latestVersionArn: String? + /// Last version of the group. + public let latestVersion: String? + /// Id of a group. + public let id: String? + + public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { + self.arn = arn + self.creationTimestamp = creationTimestamp + self.name = name + self.lastUpdatedTimestamp = lastUpdatedTimestamp + self.latestVersionArn = latestVersionArn + self.latestVersion = latestVersion + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case name = "Name" + case lastUpdatedTimestamp = "LastUpdatedTimestamp" + case latestVersionArn = "LatestVersionArn" + case latestVersion = "LatestVersion" + case id = "Id" + } + } + + public struct GetResourceDefinitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), + AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), + AWSShapeMember(label: "LatestVersion", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + public let arn: String? + public let creationTimestamp: String? + public let name: String? + public let lastUpdatedTimestamp: String? + public let latestVersionArn: String? + public let latestVersion: String? + public let id: String? + + public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { + self.arn = arn + self.creationTimestamp = creationTimestamp + self.name = name + self.lastUpdatedTimestamp = lastUpdatedTimestamp + self.latestVersionArn = latestVersionArn + self.latestVersion = latestVersion + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case name = "Name" + case lastUpdatedTimestamp = "LastUpdatedTimestamp" + case latestVersionArn = "LatestVersionArn" + case latestVersion = "LatestVersion" + case id = "Id" + } + } + + public struct GetSubscriptionDefinitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubscriptionDefinitionId", location: .uri(locationName: "SubscriptionDefinitionId"), required: true, type: .string) + ] + public let subscriptionDefinitionId: String + + public init(subscriptionDefinitionId: String) { + self.subscriptionDefinitionId = subscriptionDefinitionId + } + + private enum CodingKeys: String, CodingKey { + case subscriptionDefinitionId = "SubscriptionDefinitionId" + } + } + + public struct CreateSubscriptionDefinitionVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Version", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + public let version: String? + public let arn: String? + public let creationTimestamp: String? + public let id: String? + + public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, id: String? = nil) { + self.version = version + self.arn = arn + self.creationTimestamp = creationTimestamp + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case version = "Version" + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case id = "Id" + } + } + + public enum LoggerLevel: String, CustomStringConvertible, Codable { + case debug = "DEBUG" + case info = "INFO" + case warn = "WARN" + case error = "ERROR" + case fatal = "FATAL" + public var description: String { return self.rawValue } + } + + public struct CreateDeploymentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeploymentId", required: false, type: .string), + AWSShapeMember(label: "GroupVersionId", required: false, type: .string), + AWSShapeMember(label: "DeploymentType", required: false, type: .enum), + AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) + ] + /// Id of the deployment if you wish to redeploy a previous deployment. + public let deploymentId: String? + /// Group Version you wish to deploy. + public let groupVersionId: String? + /// Type of deployment. When used in CreateDeployment, only NewDeployment and Redeployment are valid. + public let deploymentType: DeploymentType? + public let amznClientToken: String? + public let groupId: String + + public init(deploymentId: String? = nil, groupVersionId: String? = nil, deploymentType: DeploymentType? = nil, amznClientToken: String? = nil, groupId: String) { + self.deploymentId = deploymentId + self.groupVersionId = groupVersionId + self.deploymentType = deploymentType + self.amznClientToken = amznClientToken + self.groupId = groupId + } + + private enum CodingKeys: String, CodingKey { + case deploymentId = "DeploymentId" + case groupVersionId = "GroupVersionId" + case deploymentType = "DeploymentType" + case amznClientToken = "X-Amzn-Client-Token" + case groupId = "GroupId" + } + } + + public struct CreateResourceDefinitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), + AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), + AWSShapeMember(label: "LatestVersion", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + public let arn: String? + public let creationTimestamp: String? + public let name: String? + public let lastUpdatedTimestamp: String? + public let latestVersionArn: String? + public let latestVersion: String? + public let id: String? + + public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { + self.arn = arn + self.creationTimestamp = creationTimestamp + self.name = name + self.lastUpdatedTimestamp = lastUpdatedTimestamp + self.latestVersionArn = latestVersionArn + self.latestVersion = latestVersion + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case creationTimestamp = "CreationTimestamp" + case name = "Name" + case lastUpdatedTimestamp = "LastUpdatedTimestamp" + case latestVersionArn = "LatestVersionArn" + case latestVersion = "LatestVersion" + case id = "Id" + } + } + + public struct SubscriptionDefinitionVersion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Subscriptions", required: false, type: .list) + ] + /// Subscriptions in the version. + public let subscriptions: [Subscription]? + + public init(subscriptions: [Subscription]? = nil) { + self.subscriptions = subscriptions + } + + private enum CodingKeys: String, CodingKey { + case subscriptions = "Subscriptions" + } + } + + public struct GetGroupCertificateConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) + ] + public let groupId: String + + public init(groupId: String) { + self.groupId = groupId + } + + private enum CodingKeys: String, CodingKey { + case groupId = "GroupId" } } + public struct Empty: AWSShape { + + } + public struct CreateSubscriptionDefinitionVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), AWSShapeMember(label: "SubscriptionDefinitionId", location: .uri(locationName: "SubscriptionDefinitionId"), required: true, type: .string), AWSShapeMember(label: "Subscriptions", required: false, type: .list) @@ -2859,7 +3746,7 @@ extension Greengrass { } public struct VersionInformation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Version", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), @@ -2890,7 +3777,7 @@ extension Greengrass { } public struct ConnectivityInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metadata", required: false, type: .string), AWSShapeMember(label: "PortNumber", required: false, type: .integer), AWSShapeMember(label: "HostAddress", required: false, type: .string), @@ -2921,7 +3808,7 @@ extension Greengrass { } public struct LoggerDefinitionVersion: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Loggers", required: false, type: .list) ] /// List of loggers. @@ -2936,46 +3823,31 @@ extension Greengrass { } } - public struct CreateGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct CreateResourceDefinitionVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "InitialVersion", required: false, type: .structure) + AWSShapeMember(label: "ResourceDefinitionId", location: .uri(locationName: "ResourceDefinitionId"), required: true, type: .string), + AWSShapeMember(label: "Resources", required: false, type: .list) ] public let amznClientToken: String? - public let name: String? - public let initialVersion: GroupVersion? + public let resourceDefinitionId: String + public let resources: [Resource]? - public init(amznClientToken: String? = nil, name: String? = nil, initialVersion: GroupVersion? = nil) { + public init(amznClientToken: String? = nil, resourceDefinitionId: String, resources: [Resource]? = nil) { self.amznClientToken = amznClientToken - self.name = name - self.initialVersion = initialVersion + self.resourceDefinitionId = resourceDefinitionId + self.resources = resources } private enum CodingKeys: String, CodingKey { case amznClientToken = "X-Amzn-Client-Token" - case name = "Name" - case initialVersion = "InitialVersion" - } - } - - public struct GetCoreDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CoreDefinitionId", location: .uri(locationName: "CoreDefinitionId"), required: true, type: .string) - ] - public let coreDefinitionId: String - - public init(coreDefinitionId: String) { - self.coreDefinitionId = coreDefinitionId - } - - private enum CodingKeys: String, CodingKey { - case coreDefinitionId = "CoreDefinitionId" + case resourceDefinitionId = "ResourceDefinitionId" + case resources = "Resources" } } public struct FunctionDefinitionVersion: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Functions", required: false, type: .list) ] /// Lambda functions in this function definition version. @@ -2990,38 +3862,8 @@ extension Greengrass { } } - public struct GetServiceRoleForAccountRequest: AWSShape { - - } - - public struct GetDeploymentStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ErrorMessage", required: false, type: .string), - AWSShapeMember(label: "UpdatedAt", required: false, type: .string), - AWSShapeMember(label: "DeploymentStatus", required: false, type: .string) - ] - /// Error Message - public let errorMessage: String? - /// Last time the deployment status was updated. - public let updatedAt: String? - /// Status of the deployment. - public let deploymentStatus: String? - - public init(errorMessage: String? = nil, updatedAt: String? = nil, deploymentStatus: String? = nil) { - self.errorMessage = errorMessage - self.updatedAt = updatedAt - self.deploymentStatus = deploymentStatus - } - - private enum CodingKeys: String, CodingKey { - case errorMessage = "ErrorMessage" - case updatedAt = "UpdatedAt" - case deploymentStatus = "DeploymentStatus" - } - } - public struct Device: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SyncShadow", required: false, type: .boolean), AWSShapeMember(label: "CertificateArn", required: false, type: .string), AWSShapeMember(label: "ThingArn", required: false, type: .string), @@ -3051,91 +3893,35 @@ extension Greengrass { } } - public struct CreateCoreDefinitionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "InitialVersion", required: false, type: .structure) - ] - public let amznClientToken: String? - public let name: String? - public let initialVersion: CoreDefinitionVersion? - - public init(amznClientToken: String? = nil, name: String? = nil, initialVersion: CoreDefinitionVersion? = nil) { - self.amznClientToken = amznClientToken - self.name = name - self.initialVersion = initialVersion - } - - private enum CodingKeys: String, CodingKey { - case amznClientToken = "X-Amzn-Client-Token" - case name = "Name" - case initialVersion = "InitialVersion" - } - } - - public struct GetCoreDefinitionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct CreateResourceDefinitionVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Version", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "CreationTimestamp", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "LastUpdatedTimestamp", required: false, type: .string), - AWSShapeMember(label: "LatestVersionArn", required: false, type: .string), - AWSShapeMember(label: "LatestVersion", required: false, type: .string), AWSShapeMember(label: "Id", required: false, type: .string) ] + public let version: String? public let arn: String? public let creationTimestamp: String? - public let name: String? - public let lastUpdatedTimestamp: String? - public let latestVersionArn: String? - public let latestVersion: String? public let id: String? - public init(arn: String? = nil, creationTimestamp: String? = nil, name: String? = nil, lastUpdatedTimestamp: String? = nil, latestVersionArn: String? = nil, latestVersion: String? = nil, id: String? = nil) { + public init(version: String? = nil, arn: String? = nil, creationTimestamp: String? = nil, id: String? = nil) { + self.version = version self.arn = arn self.creationTimestamp = creationTimestamp - self.name = name - self.lastUpdatedTimestamp = lastUpdatedTimestamp - self.latestVersionArn = latestVersionArn - self.latestVersion = latestVersion self.id = id } private enum CodingKeys: String, CodingKey { + case version = "Version" case arn = "Arn" case creationTimestamp = "CreationTimestamp" - case name = "Name" - case lastUpdatedTimestamp = "LastUpdatedTimestamp" - case latestVersionArn = "LatestVersionArn" - case latestVersion = "LatestVersion" case id = "Id" } } - public struct CreateDeploymentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeploymentId", required: false, type: .string), - AWSShapeMember(label: "DeploymentArn", required: false, type: .string) - ] - /// Id of the deployment. - public let deploymentId: String? - /// Arn of the deployment. - public let deploymentArn: String? - - public init(deploymentId: String? = nil, deploymentArn: String? = nil) { - self.deploymentId = deploymentId - self.deploymentArn = deploymentArn - } - - private enum CodingKeys: String, CodingKey { - case deploymentId = "DeploymentId" - case deploymentArn = "DeploymentArn" - } - } - public struct ListGroupCertificateAuthoritiesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) ] public let groupId: String @@ -3149,167 +3935,61 @@ extension Greengrass { } } - public struct DeviceDefinitionVersion: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Devices", required: false, type: .list) - ] - /// Devices in the definition version. - public let devices: [Device]? - - public init(devices: [Device]? = nil) { - self.devices = devices - } - - private enum CodingKeys: String, CodingKey { - case devices = "Devices" - } - } - - public struct GetGroupCertificateConfigurationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CertificateExpiryInMilliseconds", required: false, type: .string), - AWSShapeMember(label: "CertificateAuthorityExpiryInMilliseconds", required: false, type: .string), - AWSShapeMember(label: "GroupId", required: false, type: .string) - ] - public let certificateExpiryInMilliseconds: String? - public let certificateAuthorityExpiryInMilliseconds: String? - public let groupId: String? - - public init(certificateExpiryInMilliseconds: String? = nil, certificateAuthorityExpiryInMilliseconds: String? = nil, groupId: String? = nil) { - self.certificateExpiryInMilliseconds = certificateExpiryInMilliseconds - self.certificateAuthorityExpiryInMilliseconds = certificateAuthorityExpiryInMilliseconds - self.groupId = groupId - } - - private enum CodingKeys: String, CodingKey { - case certificateExpiryInMilliseconds = "CertificateExpiryInMilliseconds" - case certificateAuthorityExpiryInMilliseconds = "CertificateAuthorityExpiryInMilliseconds" - case groupId = "GroupId" - } - } - - public struct GetCoreDefinitionVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CoreDefinitionVersionId", location: .uri(locationName: "CoreDefinitionVersionId"), required: true, type: .string), - AWSShapeMember(label: "CoreDefinitionId", location: .uri(locationName: "CoreDefinitionId"), required: true, type: .string) - ] - public let coreDefinitionVersionId: String - public let coreDefinitionId: String - - public init(coreDefinitionVersionId: String, coreDefinitionId: String) { - self.coreDefinitionVersionId = coreDefinitionVersionId - self.coreDefinitionId = coreDefinitionId - } - - private enum CodingKeys: String, CodingKey { - case coreDefinitionVersionId = "CoreDefinitionVersionId" - case coreDefinitionId = "CoreDefinitionId" - } - } - public struct DisassociateServiceRoleFromAccountRequest: AWSShape { } - public struct AssociateRoleToGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AssociatedAt", required: false, type: .string) - ] - /// Time the role arn was associated to your group. - public let associatedAt: String? - - public init(associatedAt: String? = nil) { - self.associatedAt = associatedAt - } - - private enum CodingKeys: String, CodingKey { - case associatedAt = "AssociatedAt" - } - } - - public struct ListDeploymentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), - AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string), - AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) - ] - public let nextToken: String? - public let groupId: String - public let maxResults: String? - - public init(nextToken: String? = nil, groupId: String, maxResults: String? = nil) { - self.nextToken = nextToken - self.groupId = groupId - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case groupId = "GroupId" - case maxResults = "MaxResults" - } - } - public struct CreateGroupVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AmznClientToken", location: .header(locationName: "X-Amzn-Client-Token"), required: false, type: .string), + AWSShapeMember(label: "ResourceDefinitionVersionArn", required: false, type: .string), AWSShapeMember(label: "SubscriptionDefinitionVersionArn", required: false, type: .string), AWSShapeMember(label: "DeviceDefinitionVersionArn", required: false, type: .string), AWSShapeMember(label: "CoreDefinitionVersionArn", required: false, type: .string), AWSShapeMember(label: "LoggerDefinitionVersionArn", required: false, type: .string), - AWSShapeMember(label: "FunctionDefinitionVersionArn", required: false, type: .string), - AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) + AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string), + AWSShapeMember(label: "FunctionDefinitionVersionArn", required: false, type: .string) ] public let amznClientToken: String? + public let resourceDefinitionVersionArn: String? public let subscriptionDefinitionVersionArn: String? public let deviceDefinitionVersionArn: String? public let coreDefinitionVersionArn: String? public let loggerDefinitionVersionArn: String? - public let functionDefinitionVersionArn: String? public let groupId: String + public let functionDefinitionVersionArn: String? - public init(amznClientToken: String? = nil, subscriptionDefinitionVersionArn: String? = nil, deviceDefinitionVersionArn: String? = nil, coreDefinitionVersionArn: String? = nil, loggerDefinitionVersionArn: String? = nil, functionDefinitionVersionArn: String? = nil, groupId: String) { + public init(amznClientToken: String? = nil, resourceDefinitionVersionArn: String? = nil, subscriptionDefinitionVersionArn: String? = nil, deviceDefinitionVersionArn: String? = nil, coreDefinitionVersionArn: String? = nil, loggerDefinitionVersionArn: String? = nil, groupId: String, functionDefinitionVersionArn: String? = nil) { self.amznClientToken = amznClientToken + self.resourceDefinitionVersionArn = resourceDefinitionVersionArn self.subscriptionDefinitionVersionArn = subscriptionDefinitionVersionArn self.deviceDefinitionVersionArn = deviceDefinitionVersionArn self.coreDefinitionVersionArn = coreDefinitionVersionArn self.loggerDefinitionVersionArn = loggerDefinitionVersionArn - self.functionDefinitionVersionArn = functionDefinitionVersionArn self.groupId = groupId + self.functionDefinitionVersionArn = functionDefinitionVersionArn } private enum CodingKeys: String, CodingKey { case amznClientToken = "X-Amzn-Client-Token" + case resourceDefinitionVersionArn = "ResourceDefinitionVersionArn" case subscriptionDefinitionVersionArn = "SubscriptionDefinitionVersionArn" case deviceDefinitionVersionArn = "DeviceDefinitionVersionArn" case coreDefinitionVersionArn = "CoreDefinitionVersionArn" case loggerDefinitionVersionArn = "LoggerDefinitionVersionArn" - case functionDefinitionVersionArn = "FunctionDefinitionVersionArn" case groupId = "GroupId" + case functionDefinitionVersionArn = "FunctionDefinitionVersionArn" } } - public struct ListCoreDefinitionVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Versions", required: false, type: .list) - ] - public let nextToken: String? - public let versions: [VersionInformation]? - - public init(nextToken: String? = nil, versions: [VersionInformation]? = nil) { - self.nextToken = nextToken - self.versions = versions - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case versions = "Versions" - } + public enum Permission: String, CustomStringConvertible, Codable { + case ro = "ro" + case rw = "rw" + public var description: String { return self.rawValue } } public struct ListCoreDefinitionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .string) ] @@ -3328,7 +4008,7 @@ extension Greengrass { } public struct DeleteGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupId", location: .uri(locationName: "GroupId"), required: true, type: .string) ] public let groupId: String @@ -3342,8 +4022,4 @@ extension Greengrass { } } - public struct DeleteDeviceDefinitionResponse: AWSShape { - - } - } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/health/Health_Shapes.swift b/Sources/AWSSDKSwift/Services/health/Health_Shapes.swift index 37dab4a8f46..8199f08341a 100644 --- a/Sources/AWSSDKSwift/Services/health/Health_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/health/Health_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Health { public struct DescribeEntityAggregatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "entityAggregates", required: false, type: .list) ] /// The number of entities that are affected by each of the specified events. @@ -22,7 +22,7 @@ extension Health { } public struct AffectedEntity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lastUpdatedTime", required: false, type: .timestamp), AWSShapeMember(label: "statusCode", required: false, type: .enum), AWSShapeMember(label: "entityArn", required: false, type: .string), @@ -68,7 +68,7 @@ extension Health { } public struct EventDetailsErrorItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventArn", required: false, type: .string), AWSShapeMember(label: "errorMessage", required: false, type: .string), AWSShapeMember(label: "errorName", required: false, type: .string) @@ -94,7 +94,7 @@ extension Health { } public struct EventTypeFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventTypeCategories", required: false, type: .list), AWSShapeMember(label: "services", required: false, type: .list), AWSShapeMember(label: "eventTypeCodes", required: false, type: .list) @@ -120,7 +120,7 @@ extension Health { } public struct DescribeAffectedEntitiesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "entities", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -148,7 +148,7 @@ extension Health { } public struct Event: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "service", required: false, type: .string), AWSShapeMember(label: "availabilityZone", required: false, type: .string), AWSShapeMember(label: "lastUpdatedTime", required: false, type: .timestamp), @@ -209,7 +209,7 @@ extension Health { } public struct DescribeEventDetailsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failedSet", required: false, type: .list), AWSShapeMember(label: "successfulSet", required: false, type: .list) ] @@ -230,7 +230,7 @@ extension Health { } public struct DescribeEventDetailsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventArns", required: true, type: .list), AWSShapeMember(label: "locale", required: false, type: .string) ] @@ -258,7 +258,7 @@ extension Health { } public struct EventDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "latestDescription", required: false, type: .string) ] /// The most recent description of the event. @@ -274,7 +274,7 @@ extension Health { } public struct DescribeEventAggregatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventAggregates", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -295,7 +295,7 @@ extension Health { } public struct DescribeEventAggregatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "filter", required: false, type: .structure), AWSShapeMember(label: "maxResults", required: false, type: .integer), @@ -326,7 +326,7 @@ extension Health { } public struct EventFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventTypeCategories", required: false, type: .list), AWSShapeMember(label: "eventArns", required: false, type: .list), AWSShapeMember(label: "eventStatusCodes", required: false, type: .list), @@ -402,7 +402,7 @@ extension Health { } public struct EventAggregate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "count", required: false, type: .integer), AWSShapeMember(label: "aggregateValue", required: false, type: .string) ] @@ -428,7 +428,7 @@ extension Health { } public struct EntityAggregate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventArn", required: false, type: .string), AWSShapeMember(label: "count", required: false, type: .integer) ] @@ -449,7 +449,7 @@ extension Health { } public struct EventType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "service", required: false, type: .string), AWSShapeMember(label: "category", required: false, type: .enum), AWSShapeMember(label: "code", required: false, type: .string) @@ -475,7 +475,7 @@ extension Health { } public struct DescribeEntityAggregatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventArns", required: false, type: .list) ] /// A list of event ARNs (unique identifiers). For example: "arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331", "arn:aws:health:us-west-1::event/AWS_EBS_LOST_VOLUME_xyz" @@ -491,7 +491,7 @@ extension Health { } public struct DescribeEventTypesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventTypes", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -512,7 +512,7 @@ extension Health { } public struct EventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventMetadata", required: false, type: .map), AWSShapeMember(label: "event", required: false, type: .structure), AWSShapeMember(label: "eventDescription", required: false, type: .structure) @@ -538,7 +538,7 @@ extension Health { } public struct DescribeAffectedEntitiesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "filter", required: true, type: .structure), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -569,7 +569,7 @@ extension Health { } public struct DescribeEventsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "filter", required: false, type: .structure), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -600,7 +600,7 @@ extension Health { } public struct DateTimeRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "to", required: false, type: .timestamp), AWSShapeMember(label: "from", required: false, type: .timestamp) ] @@ -621,7 +621,7 @@ extension Health { } public struct EntityFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventArns", required: true, type: .list), AWSShapeMember(label: "lastUpdatedTimes", required: false, type: .list), AWSShapeMember(label: "statusCodes", required: false, type: .list), @@ -669,7 +669,7 @@ extension Health { } public struct DescribeEventTypesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "filter", required: false, type: .structure), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -700,7 +700,7 @@ extension Health { } public struct DescribeEventsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "events", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/iam/Iam_API.swift b/Sources/AWSSDKSwift/Services/iam/Iam_API.swift index 113483d77c3..0a8d71429a2 100644 --- a/Sources/AWSSDKSwift/Services/iam/Iam_API.swift +++ b/Sources/AWSSDKSwift/Services/iam/Iam_API.swift @@ -201,9 +201,9 @@ public struct Iam { return try client.send(operation: "GetSSHPublicKey", path: "/", httpMethod: "POST", input: input) } - /// Lists the IAM users that have the specified path prefix. If no path prefix is specified, the action returns all users in the AWS account. If there are none, the action returns an empty list. You can paginate the results using the MaxItems and Marker parameters. - public func listUsers(_ input: ListUsersRequest) throws -> ListUsersResponse { - return try client.send(operation: "ListUsers", path: "/", httpMethod: "POST", input: input) + /// Retrieves the status of your service-linked role deletion. After you use the DeleteServiceLinkedRole API operation to submit a service-linked role for deletion, you can use the DeletionTaskId parameter in GetServiceLinkedRoleDeletionStatus to check the status of the deletion. If the deletion fails, this operation returns the reason that it failed. + public func getServiceLinkedRoleDeletionStatus(_ input: GetServiceLinkedRoleDeletionStatusRequest) throws -> GetServiceLinkedRoleDeletionStatusResponse { + return try client.send(operation: "GetServiceLinkedRoleDeletionStatus", path: "/", httpMethod: "POST", input: input) } /// Creates a new AWS secret access key and corresponding AWS access key ID for the specified user. The default status for new keys is Active. If you do not specify a user name, IAM determines the user name implicitly based on the AWS access key ID signing the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users. For information about limits on the number of keys you can create, see Limitations on IAM Entities in the IAM User Guide. To ensure the security of your AWS account, the secret access key is accessible only during key and user creation. You must save the key (for example, in a text file) if you want to be able to access it again. If a secret key is lost, you can delete the access keys for the associated user and then create new keys. @@ -211,6 +211,11 @@ public struct Iam { return try client.send(operation: "CreateAccessKey", path: "/", httpMethod: "POST", input: input) } + /// Lists the IAM users that have the specified path prefix. If no path prefix is specified, the action returns all users in the AWS account. If there are none, the action returns an empty list. You can paginate the results using the MaxItems and Marker parameters. + public func listUsers(_ input: ListUsersRequest) throws -> ListUsersResponse { + return try client.send(operation: "ListUsers", path: "/", httpMethod: "POST", input: input) + } + /// Deletes the password policy for the AWS account. There are no parameters. public func deleteAccountPasswordPolicy() throws { _ = try client.send(operation: "DeleteAccountPasswordPolicy", path: "/", httpMethod: "POST") @@ -331,6 +336,11 @@ public struct Iam { _ = try client.send(operation: "AttachGroupPolicy", path: "/", httpMethod: "POST", input: input) } + /// Submits a service-linked role deletion request and returns a DeletionTaskId, which you can use to check the status of the deletion. Before you call this operation, confirm that the role has no active sessions and that any resources used by the role in the linked service are deleted. If you call this operation more than once for the same service-linked role and an earlier deletion task is not complete, then the DeletionTaskId of the earlier request is returned. If you submit a deletion request for a service-linked role whose linked service is still accessing a resource, then the deletion task fails. If it fails, the GetServiceLinkedRoleDeletionStatus API operation returns the reason for the failure, including the resources that must be deleted. To delete the service-linked role, you must first remove those resources from the linked service and then submit the deletion request again. Resources are specific to the service that is linked to the role. For more information about removing resources from a service, see the AWS documentation for your service. For more information about service-linked roles, see Roles Terms and Concepts: AWS Service-Linked Role in the IAM User Guide. + public func deleteServiceLinkedRole(_ input: DeleteServiceLinkedRoleRequest) throws -> DeleteServiceLinkedRoleResponse { + return try client.send(operation: "DeleteServiceLinkedRole", path: "/", httpMethod: "POST", input: input) + } + /// Adds or updates an inline policy document that is embedded in the specified IAM role. When you embed an inline policy in a role, the inline policy is used as part of the role's access (permissions) policy. The role's trust policy is created at the same time as the role, using CreateRole. You can update a role's trust policy using UpdateAssumeRolePolicy. For more information about IAM roles, go to Using Roles to Delegate Permissions and Federate Identities. A role can also have a managed policy attached to it. To attach a managed policy to a role, use AttachRolePolicy. To create a new managed policy, use CreatePolicy. For information about policies, see Managed Policies and Inline Policies in the IAM User Guide. For information about limits on the number of inline policies that you can embed with a role, see Limitations on IAM Entities in the IAM User Guide. Because policy documents can be large, you should use POST rather than GET when calling PutRolePolicy. For general information about using the Query API with IAM, go to Making Query Requests in the IAM User Guide. public func putRolePolicy(_ input: PutRolePolicyRequest) throws { _ = try client.send(operation: "PutRolePolicy", path: "/", httpMethod: "POST", input: input) diff --git a/Sources/AWSSDKSwift/Services/iam/Iam_Error.swift b/Sources/AWSSDKSwift/Services/iam/Iam_Error.swift index b1cfcd7babb..57829dd334b 100644 --- a/Sources/AWSSDKSwift/Services/iam/Iam_Error.swift +++ b/Sources/AWSSDKSwift/Services/iam/Iam_Error.swift @@ -20,6 +20,7 @@ public enum IamError: AWSErrorType { case invalidPublicKeyException(message: String?) case duplicateSSHPublicKeyException(message: String?) case unrecognizedPublicKeyEncodingException(message: String?) + case policyNotAttachableException(message: String?) case policyEvaluationException(message: String?) case invalidCertificateException(message: String?) case duplicateCertificateException(message: String?) @@ -69,6 +70,8 @@ extension IamError { self = .duplicateSSHPublicKeyException(message: message) case "UnrecognizedPublicKeyEncodingException": self = .unrecognizedPublicKeyEncodingException(message: message) + case "PolicyNotAttachableException": + self = .policyNotAttachableException(message: message) case "PolicyEvaluationException": self = .policyEvaluationException(message: message) case "InvalidCertificateException": diff --git a/Sources/AWSSDKSwift/Services/iam/Iam_Shapes.swift b/Sources/AWSSDKSwift/Services/iam/Iam_Shapes.swift index cc41ba39993..d6846609b4d 100644 --- a/Sources/AWSSDKSwift/Services/iam/Iam_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/iam/Iam_Shapes.swift @@ -5,24 +5,8 @@ import AWSSDKSwiftCore extension Iam { - public struct CreatePolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Policy", required: false, type: .structure) - ] - /// A structure containing details about the new policy. - public let policy: Policy? - - public init(policy: Policy? = nil) { - self.policy = policy - } - - private enum CodingKeys: String, CodingKey { - case policy = "Policy" - } - } - public struct GetSAMLProviderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), AWSShapeMember(label: "SAMLMetadataDocument", required: false, type: .string), AWSShapeMember(label: "ValidUntil", required: false, type: .timestamp) @@ -48,7 +32,7 @@ extension Iam { } public struct Policy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultVersionId", required: false, type: .string), AWSShapeMember(label: "PolicyId", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), @@ -107,34 +91,8 @@ extension Iam { } } - public struct ListRolePoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "RoleName", required: true, type: .string) - ] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// The name of the role to list policies for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- - public let roleName: String - - public init(marker: String? = nil, maxItems: Int32? = nil, roleName: String) { - self.marker = marker - self.maxItems = maxItems - self.roleName = roleName - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case maxItems = "MaxItems" - case roleName = "RoleName" - } - } - public struct GetOpenIDConnectProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OpenIDConnectProviderArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the OIDC provider resource object in IAM to get information for. You can get a list of OIDC provider resource ARNs by using the ListOpenIDConnectProviders action. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. @@ -150,13 +108,13 @@ extension Iam { } public struct DeleteRolePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleName", required: true, type: .string), AWSShapeMember(label: "PolicyName", required: true, type: .string) ] /// The name (friendly name, not ARN) identifying the role that the policy is embedded in. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- public let roleName: String - /// The name of the inline policy to delete from the specified IAM role. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + /// The name of the inline policy to delete from the specified IAM role. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ public let policyName: String public init(roleName: String, policyName: String) { @@ -170,34 +128,8 @@ extension Iam { } } - public struct UpdateGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NewPath", required: false, type: .string), - AWSShapeMember(label: "NewGroupName", required: false, type: .string), - AWSShapeMember(label: "GroupName", required: true, type: .string) - ] - /// New path for the IAM group. Only include this if changing the group's path. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let newPath: String? - /// New name for the IAM group. Only include this if changing the group's name. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let newGroupName: String? - /// Name of the IAM group to update. If you're changing the name of the group, this is the original name. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let groupName: String - - public init(newPath: String? = nil, newGroupName: String? = nil, groupName: String) { - self.newPath = newPath - self.newGroupName = newGroupName - self.groupName = groupName - } - - private enum CodingKeys: String, CodingKey { - case newPath = "NewPath" - case newGroupName = "NewGroupName" - case groupName = "GroupName" - } - } - public struct DeleteRoleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleName", required: true, type: .string) ] /// The name of the role to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- @@ -212,61 +144,8 @@ extension Iam { } } - public struct DeleteVirtualMFADeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SerialNumber", required: true, type: .string) - ] - /// The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the same as the ARN. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/- - public let serialNumber: String - - public init(serialNumber: String) { - self.serialNumber = serialNumber - } - - private enum CodingKeys: String, CodingKey { - case serialNumber = "SerialNumber" - } - } - - public struct AttachUserPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyArn", required: true, type: .string), - AWSShapeMember(label: "UserName", required: true, type: .string) - ] - /// The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let policyArn: String - /// The name (friendly name, not ARN) of the IAM user to attach the policy to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - - public init(policyArn: String, userName: String) { - self.policyArn = policyArn - self.userName = userName - } - - private enum CodingKeys: String, CodingKey { - case policyArn = "PolicyArn" - case userName = "UserName" - } - } - - public struct CreateVirtualMFADeviceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VirtualMFADevice", required: true, type: .structure) - ] - /// A structure containing details about the new virtual MFA device. - public let virtualMFADevice: VirtualMFADevice - - public init(virtualMFADevice: VirtualMFADevice) { - self.virtualMFADevice = virtualMFADevice - } - - private enum CodingKeys: String, CodingKey { - case virtualMFADevice = "VirtualMFADevice" - } - } - public struct ListOpenIDConnectProvidersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OpenIDConnectProviderList", required: false, type: .list) ] /// The list of IAM OIDC provider resource objects defined in the AWS account. @@ -282,7 +161,7 @@ extension Iam { } public struct GetUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserName", required: false, type: .string) ] /// The name of the user to get information about. This parameter is optional. If it is not included, it defaults to the user making the request. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- @@ -297,65 +176,8 @@ extension Iam { } } - public struct InstanceProfile: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceProfileName", required: true, type: .string), - AWSShapeMember(label: "CreateDate", required: true, type: .timestamp), - AWSShapeMember(label: "Arn", required: true, type: .string), - AWSShapeMember(label: "Roles", required: true, type: .list), - AWSShapeMember(label: "InstanceProfileId", required: true, type: .string), - AWSShapeMember(label: "Path", required: true, type: .string) - ] - /// The name identifying the instance profile. - public let instanceProfileName: String - /// The date when the instance profile was created. - public let createDate: TimeStamp - /// The Amazon Resource Name (ARN) specifying the instance profile. For more information about ARNs and how to use them in policies, see IAM Identifiers in the Using IAM guide. - public let arn: String - /// The role associated with the instance profile. - public let roles: [Role] - /// The stable and unique string identifying the instance profile. For more information about IDs, see IAM Identifiers in the Using IAM guide. - public let instanceProfileId: String - /// The path to the instance profile. For more information about paths, see IAM Identifiers in the Using IAM guide. - public let path: String - - public init(instanceProfileName: String, createDate: TimeStamp, arn: String, roles: [Role], instanceProfileId: String, path: String) { - self.instanceProfileName = instanceProfileName - self.createDate = createDate - self.arn = arn - self.roles = roles - self.instanceProfileId = instanceProfileId - self.path = path - } - - private enum CodingKeys: String, CodingKey { - case instanceProfileName = "InstanceProfileName" - case createDate = "CreateDate" - case arn = "Arn" - case roles = "Roles" - case instanceProfileId = "InstanceProfileId" - case path = "Path" - } - } - - public struct CreateServiceSpecificCredentialResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ServiceSpecificCredential", required: false, type: .structure) - ] - /// A structure that contains information about the newly created service-specific credential. This is the only time that the password for this credential set is available. It cannot be recovered later. Instead, you will have to reset the password with ResetServiceSpecificCredential. - public let serviceSpecificCredential: ServiceSpecificCredential? - - public init(serviceSpecificCredential: ServiceSpecificCredential? = nil) { - self.serviceSpecificCredential = serviceSpecificCredential - } - - private enum CodingKeys: String, CodingKey { - case serviceSpecificCredential = "ServiceSpecificCredential" - } - } - public struct UpdateSAMLProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SAMLMetadataDocument", required: true, type: .string), AWSShapeMember(label: "SAMLProviderArn", required: true, type: .string) ] @@ -375,27 +197,6 @@ extension Iam { } } - public struct GetGroupPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupName", required: true, type: .string), - AWSShapeMember(label: "PolicyName", required: true, type: .string) - ] - /// The name of the group the policy is associated with. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let groupName: String - /// The name of the policy document to get. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let policyName: String - - public init(groupName: String, policyName: String) { - self.groupName = groupName - self.policyName = policyName - } - - private enum CodingKeys: String, CodingKey { - case groupName = "GroupName" - case policyName = "PolicyName" - } - } - public enum EncodingType: String, CustomStringConvertible, Codable { case ssh = "SSH" case pem = "PEM" @@ -403,7 +204,7 @@ extension Iam { } public struct UploadServerCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServerCertificateMetadata", required: false, type: .structure) ] /// The meta information of the uploaded server certificate without its certificate body, certificate chain, and private key. @@ -418,1968 +219,3224 @@ extension Iam { } } - public struct ContextEntry: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ContextKeyValues", required: false, type: .list), - AWSShapeMember(label: "ContextKeyName", required: false, type: .string), - AWSShapeMember(label: "ContextKeyType", required: false, type: .enum) + public enum StatusType: String, CustomStringConvertible, Codable { + case active = "Active" + case inactive = "Inactive" + public var description: String { return self.rawValue } + } + + public struct SSHPublicKeyMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "Status", required: true, type: .enum), + AWSShapeMember(label: "UploadDate", required: true, type: .timestamp), + AWSShapeMember(label: "SSHPublicKeyId", required: true, type: .string) ] - /// The value (or values, if the condition context key supports multiple values) to provide to the simulation for use when the key is referenced by a Condition element in an input policy. - public let contextKeyValues: [String]? - /// The full name of a condition context key, including the service prefix. For example, aws:SourceIp or s3:VersionId. - public let contextKeyName: String? - /// The data type of the value (or values) specified in the ContextKeyValues parameter. - public let contextKeyType: ContextKeyTypeEnum? + /// The name of the IAM user associated with the SSH public key. + public let userName: String + /// The status of the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. + public let status: StatusType + /// The date and time, in ISO 8601 date-time format, when the SSH public key was uploaded. + public let uploadDate: TimeStamp + /// The unique identifier for the SSH public key. + public let sSHPublicKeyId: String - public init(contextKeyValues: [String]? = nil, contextKeyName: String? = nil, contextKeyType: ContextKeyTypeEnum? = nil) { - self.contextKeyValues = contextKeyValues - self.contextKeyName = contextKeyName - self.contextKeyType = contextKeyType + public init(userName: String, status: StatusType, uploadDate: TimeStamp, sSHPublicKeyId: String) { + self.userName = userName + self.status = status + self.uploadDate = uploadDate + self.sSHPublicKeyId = sSHPublicKeyId } private enum CodingKeys: String, CodingKey { - case contextKeyValues = "ContextKeyValues" - case contextKeyName = "ContextKeyName" - case contextKeyType = "ContextKeyType" + case userName = "UserName" + case status = "Status" + case uploadDate = "UploadDate" + case sSHPublicKeyId = "SSHPublicKeyId" } } - public struct GetSSHPublicKeyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SSHPublicKey", required: false, type: .structure) + public struct ListGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "Groups", required: true, type: .list) ] - /// A structure containing details about the SSH public key. - public let sSHPublicKey: SSHPublicKey? + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list of groups. + public let groups: [Group] - public init(sSHPublicKey: SSHPublicKey? = nil) { - self.sSHPublicKey = sSHPublicKey + public init(marker: String? = nil, isTruncated: Bool? = nil, groups: [Group]) { + self.marker = marker + self.isTruncated = isTruncated + self.groups = groups } private enum CodingKeys: String, CodingKey { - case sSHPublicKey = "SSHPublicKey" - } - } - - public enum StatusType: String, CustomStringConvertible, Codable { - case active = "Active" - case inactive = "Inactive" - public var description: String { return self.rawValue } + case marker = "Marker" + case isTruncated = "IsTruncated" + case groups = "Groups" + } } - public struct AttachGroupPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyArn", required: true, type: .string), - AWSShapeMember(label: "GroupName", required: true, type: .string) + public struct ListGroupsForUserResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "Groups", required: true, type: .list) ] - /// The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let policyArn: String - /// The name (friendly name, not ARN) of the group to attach the policy to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let groupName: String + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list of groups. + public let groups: [Group] - public init(policyArn: String, groupName: String) { - self.policyArn = policyArn - self.groupName = groupName + public init(marker: String? = nil, isTruncated: Bool? = nil, groups: [Group]) { + self.marker = marker + self.isTruncated = isTruncated + self.groups = groups } private enum CodingKeys: String, CodingKey { - case policyArn = "PolicyArn" - case groupName = "GroupName" + case marker = "Marker" + case isTruncated = "IsTruncated" + case groups = "Groups" } } - public struct ListEntitiesForPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EntityFilter", required: false, type: .enum), - AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "PolicyArn", required: true, type: .string), + public struct ListInstanceProfilesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "MaxItems", required: false, type: .integer), AWSShapeMember(label: "PathPrefix", required: false, type: .string) ] - /// The entity type to use for filtering the results. For example, when EntityFilter is Role, only the roles that are attached to the specified policy are returned. This parameter is optional. If it is not included, all attached entities (users, groups, and roles) are returned. The argument for this parameter must be one of the valid values listed below. - public let entityFilter: EntityType? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// The Amazon Resource Name (ARN) of the IAM policy for which you want the versions. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let policyArn: String /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. public let marker: String? - /// The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all entities. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// The path prefix for filtering the results. For example, the prefix /application_abc/component_xyz/ gets all instance profiles whose path starts with /application_abc/component_xyz/. This parameter is optional. If it is not included, it defaults to a slash (/), listing all instance profiles. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. public let pathPrefix: String? - public init(entityFilter: EntityType? = nil, maxItems: Int32? = nil, policyArn: String, marker: String? = nil, pathPrefix: String? = nil) { - self.entityFilter = entityFilter - self.maxItems = maxItems - self.policyArn = policyArn + public init(marker: String? = nil, maxItems: Int32? = nil, pathPrefix: String? = nil) { self.marker = marker + self.maxItems = maxItems self.pathPrefix = pathPrefix } private enum CodingKeys: String, CodingKey { - case entityFilter = "EntityFilter" - case maxItems = "MaxItems" - case policyArn = "PolicyArn" case marker = "Marker" + case maxItems = "MaxItems" case pathPrefix = "PathPrefix" } } - public struct SSHPublicKeyMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string), + public struct UploadServerCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServerCertificateName", required: true, type: .string), + AWSShapeMember(label: "CertificateBody", required: true, type: .string), + AWSShapeMember(label: "PrivateKey", required: true, type: .string), + AWSShapeMember(label: "CertificateChain", required: false, type: .string), + AWSShapeMember(label: "Path", required: false, type: .string) + ] + /// The name for the server certificate. Do not include the path in this value. The name of the certificate cannot contain any spaces. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let serverCertificateName: String + /// The contents of the public key certificate in PEM-encoded format. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let certificateBody: String + /// The contents of the private key in PEM-encoded format. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let privateKey: String + /// The contents of the certificate chain. This is typically a concatenation of the PEM-encoded public key certificates of the chain. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let certificateChain: String? + /// The path for the server certificate. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the --path option. The path must begin with /cloudfront and must include a trailing slash (for example, /cloudfront/test/). + public let path: String? + + public init(serverCertificateName: String, certificateBody: String, privateKey: String, certificateChain: String? = nil, path: String? = nil) { + self.serverCertificateName = serverCertificateName + self.certificateBody = certificateBody + self.privateKey = privateKey + self.certificateChain = certificateChain + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case serverCertificateName = "ServerCertificateName" + case certificateBody = "CertificateBody" + case privateKey = "PrivateKey" + case certificateChain = "CertificateChain" + case path = "Path" + } + } + + public struct ListOpenIDConnectProvidersRequest: AWSShape { + + } + + public struct UpdateAccessKeyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: false, type: .string), AWSShapeMember(label: "Status", required: true, type: .enum), - AWSShapeMember(label: "UploadDate", required: true, type: .timestamp), - AWSShapeMember(label: "SSHPublicKeyId", required: true, type: .string) + AWSShapeMember(label: "AccessKeyId", required: true, type: .string) ] - /// The name of the IAM user associated with the SSH public key. - public let userName: String - /// The status of the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. + /// The name of the user whose key you want to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + /// The status you want to assign to the secret access key. Active means the key can be used for API calls to AWS, while Inactive means the key cannot be used. public let status: StatusType - /// The date and time, in ISO 8601 date-time format, when the SSH public key was uploaded. - public let uploadDate: TimeStamp - /// The unique identifier for the SSH public key. - public let sSHPublicKeyId: String + /// The access key ID of the secret access key you want to update. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. + public let accessKeyId: String - public init(userName: String, status: StatusType, uploadDate: TimeStamp, sSHPublicKeyId: String) { + public init(userName: String? = nil, status: StatusType, accessKeyId: String) { self.userName = userName self.status = status - self.uploadDate = uploadDate - self.sSHPublicKeyId = sSHPublicKeyId + self.accessKeyId = accessKeyId } private enum CodingKeys: String, CodingKey { case userName = "UserName" case status = "Status" - case uploadDate = "UploadDate" - case sSHPublicKeyId = "SSHPublicKeyId" + case accessKeyId = "AccessKeyId" } } - public struct ListAttachedRolePoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "AttachedPolicies", required: false, type: .list) + public struct ListVirtualMFADevicesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssignmentStatus", required: false, type: .enum), + AWSShapeMember(label: "MaxItems", required: false, type: .integer), + AWSShapeMember(label: "Marker", required: false, type: .string) ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + /// The status (Unassigned or Assigned) of the devices to list. If you do not specify an AssignmentStatus, the action defaults to Any which lists both assigned and unassigned virtual MFA devices. + public let assignmentStatus: AssignmentStatusType? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of the attached policies. - public let attachedPolicies: [AttachedPolicy]? - public init(marker: String? = nil, isTruncated: Bool? = nil, attachedPolicies: [AttachedPolicy]? = nil) { + public init(assignmentStatus: AssignmentStatusType? = nil, maxItems: Int32? = nil, marker: String? = nil) { + self.assignmentStatus = assignmentStatus + self.maxItems = maxItems self.marker = marker - self.isTruncated = isTruncated - self.attachedPolicies = attachedPolicies } private enum CodingKeys: String, CodingKey { + case assignmentStatus = "AssignmentStatus" + case maxItems = "MaxItems" case marker = "Marker" - case isTruncated = "IsTruncated" - case attachedPolicies = "AttachedPolicies" } } - public struct ListMFADevicesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "MFADevices", required: true, type: .list) + public struct PutUserPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "PolicyDocument", required: true, type: .string), + AWSShapeMember(label: "PolicyName", required: true, type: .string) ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of MFA devices. - public let mFADevices: [MFADevice] + /// The name of the user to associate the policy with. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// The policy document. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let policyDocument: String + /// The name of the policy document. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ + public let policyName: String - public init(marker: String? = nil, isTruncated: Bool? = nil, mFADevices: [MFADevice]) { - self.marker = marker - self.isTruncated = isTruncated - self.mFADevices = mFADevices + public init(userName: String, policyDocument: String, policyName: String) { + self.userName = userName + self.policyDocument = policyDocument + self.policyName = policyName } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case isTruncated = "IsTruncated" - case mFADevices = "MFADevices" + case userName = "UserName" + case policyDocument = "PolicyDocument" + case policyName = "PolicyName" } } - public struct ListInstanceProfilesForRoleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), + public struct AddUserToGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "GroupName", required: true, type: .string) + ] + /// The name of the user to add. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// The name of the group to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let groupName: String + + public init(userName: String, groupName: String) { + self.userName = userName + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case userName = "UserName" + case groupName = "GroupName" + } + } + + public struct ListAttachedRolePoliciesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "RoleName", required: true, type: .string) + AWSShapeMember(label: "RoleName", required: true, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "PathPrefix", required: false, type: .string) ] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. public let maxItems: Int32? - /// The name of the role to list instance profiles for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + /// The name (friendly name, not ARN) of the role to list attached policies for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- public let roleName: String + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let pathPrefix: String? - public init(marker: String? = nil, maxItems: Int32? = nil, roleName: String) { - self.marker = marker + public init(maxItems: Int32? = nil, roleName: String, marker: String? = nil, pathPrefix: String? = nil) { self.maxItems = maxItems self.roleName = roleName + self.marker = marker + self.pathPrefix = pathPrefix } private enum CodingKeys: String, CodingKey { - case marker = "Marker" case maxItems = "MaxItems" case roleName = "RoleName" + case marker = "Marker" + case pathPrefix = "PathPrefix" } } - public struct ListGroupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListUserPoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "Groups", required: true, type: .list) + AWSShapeMember(label: "PolicyNames", required: true, type: .list), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) ] /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. public let marker: String? + /// A list of policy names. + public let policyNames: [String] /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. public let isTruncated: Bool? - /// A list of groups. - public let groups: [Group] - public init(marker: String? = nil, isTruncated: Bool? = nil, groups: [Group]) { + public init(marker: String? = nil, policyNames: [String], isTruncated: Bool? = nil) { self.marker = marker + self.policyNames = policyNames self.isTruncated = isTruncated - self.groups = groups } private enum CodingKeys: String, CodingKey { case marker = "Marker" + case policyNames = "PolicyNames" case isTruncated = "IsTruncated" - case groups = "Groups" } } - public struct CreateUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "Path", required: false, type: .string) - ] - /// The name of the user to create. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-. User names are not distinguished by case. For example, you cannot create users named both "TESTUSER" and "testuser". - public let userName: String - /// The path for the user name. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let path: String? - - public init(userName: String, path: String? = nil) { - self.userName = userName - self.path = path - } - - private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case path = "Path" - } - } - - public struct AccessKey: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "Status", required: true, type: .enum), - AWSShapeMember(label: "SecretAccessKey", required: true, type: .string), - AWSShapeMember(label: "AccessKeyId", required: true, type: .string) + public struct ListAccessKeysResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "AccessKeyMetadata", required: true, type: .list) ] - /// The date when the access key was created. - public let createDate: TimeStamp? - /// The name of the IAM user that the access key is associated with. - public let userName: String - /// The status of the access key. Active means the key is valid for API calls, while Inactive means it is not. - public let status: StatusType - /// The secret key used to sign requests. - public let secretAccessKey: String - /// The ID for this access key. - public let accessKeyId: String + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list of objects containing metadata about the access keys. + public let accessKeyMetadata: [AccessKeyMetadata] - public init(createDate: TimeStamp? = nil, userName: String, status: StatusType, secretAccessKey: String, accessKeyId: String) { - self.createDate = createDate - self.userName = userName - self.status = status - self.secretAccessKey = secretAccessKey - self.accessKeyId = accessKeyId + public init(marker: String? = nil, isTruncated: Bool? = nil, accessKeyMetadata: [AccessKeyMetadata]) { + self.marker = marker + self.isTruncated = isTruncated + self.accessKeyMetadata = accessKeyMetadata } private enum CodingKeys: String, CodingKey { - case createDate = "CreateDate" - case userName = "UserName" - case status = "Status" - case secretAccessKey = "SecretAccessKey" - case accessKeyId = "AccessKeyId" + case marker = "Marker" + case isTruncated = "IsTruncated" + case accessKeyMetadata = "AccessKeyMetadata" } } - public struct AddRoleToInstanceProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceProfileName", required: true, type: .string), + public struct DetachRolePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyArn", required: true, type: .string), AWSShapeMember(label: "RoleName", required: true, type: .string) ] - /// The name of the instance profile to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let instanceProfileName: String - /// The name of the role to add. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + /// The Amazon Resource Name (ARN) of the IAM policy you want to detach. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let policyArn: String + /// The name (friendly name, not ARN) of the IAM role to detach the policy from. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- public let roleName: String - public init(instanceProfileName: String, roleName: String) { - self.instanceProfileName = instanceProfileName + public init(policyArn: String, roleName: String) { + self.policyArn = policyArn self.roleName = roleName } private enum CodingKeys: String, CodingKey { - case instanceProfileName = "InstanceProfileName" + case policyArn = "PolicyArn" case roleName = "RoleName" } } - public struct CreateInstanceProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceProfileName", required: true, type: .string), - AWSShapeMember(label: "Path", required: false, type: .string) + public struct UpdateServiceSpecificCredentialRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceSpecificCredentialId", required: true, type: .string), + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "Status", required: true, type: .enum) ] - /// The name of the instance profile to create. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let instanceProfileName: String - /// The path to the instance profile. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let path: String? + /// The unique identifier of the service-specific credential. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. + public let serviceSpecificCredentialId: String + /// The name of the IAM user associated with the service-specific credential. If you do not specify this value, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + /// The status to be assigned to the service-specific credential. + public let status: StatusType - public init(instanceProfileName: String, path: String? = nil) { - self.instanceProfileName = instanceProfileName - self.path = path + public init(serviceSpecificCredentialId: String, userName: String? = nil, status: StatusType) { + self.serviceSpecificCredentialId = serviceSpecificCredentialId + self.userName = userName + self.status = status } private enum CodingKeys: String, CodingKey { - case instanceProfileName = "InstanceProfileName" - case path = "Path" + case serviceSpecificCredentialId = "ServiceSpecificCredentialId" + case userName = "UserName" + case status = "Status" } } - public struct ListGroupsForUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "Groups", required: true, type: .list) + public struct CreateSAMLProviderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "SAMLMetadataDocument", required: true, type: .string) ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of groups. - public let groups: [Group] + /// The name of the provider to create. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let name: String + /// An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP. For more information, see About SAML 2.0-based Federation in the IAM User Guide + public let sAMLMetadataDocument: String - public init(marker: String? = nil, isTruncated: Bool? = nil, groups: [Group]) { - self.marker = marker - self.isTruncated = isTruncated - self.groups = groups + public init(name: String, sAMLMetadataDocument: String) { + self.name = name + self.sAMLMetadataDocument = sAMLMetadataDocument } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case isTruncated = "IsTruncated" - case groups = "Groups" + case name = "Name" + case sAMLMetadataDocument = "SAMLMetadataDocument" } } - public struct ListInstanceProfilesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "PathPrefix", required: false, type: .string) + public struct GetRoleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleName", required: true, type: .string) ] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// The path prefix for filtering the results. For example, the prefix /application_abc/component_xyz/ gets all instance profiles whose path starts with /application_abc/component_xyz/. This parameter is optional. If it is not included, it defaults to a slash (/), listing all instance profiles. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let pathPrefix: String? + /// The name of the IAM role to get information about. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + public let roleName: String - public init(marker: String? = nil, maxItems: Int32? = nil, pathPrefix: String? = nil) { - self.marker = marker - self.maxItems = maxItems - self.pathPrefix = pathPrefix + public init(roleName: String) { + self.roleName = roleName } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case maxItems = "MaxItems" - case pathPrefix = "PathPrefix" + case roleName = "RoleName" } } - public struct UploadSSHPublicKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SSHPublicKeyBody", required: true, type: .string), - AWSShapeMember(label: "UserName", required: true, type: .string) + public struct CreateServiceSpecificCredentialRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "ServiceName", required: true, type: .string) ] - /// The SSH public key. The public key must be encoded in ssh-rsa format or PEM format. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let sSHPublicKeyBody: String - /// The name of the IAM user to associate the SSH public key with. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + /// The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- public let userName: String + /// The name of the AWS service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials. + public let serviceName: String - public init(sSHPublicKeyBody: String, userName: String) { - self.sSHPublicKeyBody = sSHPublicKeyBody + public init(userName: String, serviceName: String) { self.userName = userName + self.serviceName = serviceName } private enum CodingKeys: String, CodingKey { - case sSHPublicKeyBody = "SSHPublicKeyBody" case userName = "UserName" + case serviceName = "ServiceName" } } - public struct DeleteUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string) + public struct OpenIDConnectProviderListEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string) ] - /// The name of the user to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String + public let arn: String? - public init(userName: String) { - self.userName = userName + public init(arn: String? = nil) { + self.arn = arn } private enum CodingKeys: String, CodingKey { - case userName = "UserName" + case arn = "Arn" } } - public struct ListSSHPublicKeysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer) + public struct UpdateServerCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NewPath", required: false, type: .string), + AWSShapeMember(label: "ServerCertificateName", required: true, type: .string), + AWSShapeMember(label: "NewServerCertificateName", required: false, type: .string) ] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// The name of the IAM user to list SSH public keys for. If none is specified, the UserName field is determined implicitly based on the AWS access key used to sign the request. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? + /// The new path for the server certificate. Include this only if you are updating the server certificate's path. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let newPath: String? + /// The name of the server certificate that you want to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let serverCertificateName: String + /// The new name for the server certificate. Include this only if you are updating the server certificate's name. The name of the certificate cannot contain any spaces. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let newServerCertificateName: String? - public init(marker: String? = nil, userName: String? = nil, maxItems: Int32? = nil) { - self.marker = marker - self.userName = userName - self.maxItems = maxItems + public init(newPath: String? = nil, serverCertificateName: String, newServerCertificateName: String? = nil) { + self.newPath = newPath + self.serverCertificateName = serverCertificateName + self.newServerCertificateName = newServerCertificateName } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case userName = "UserName" - case maxItems = "MaxItems" + case newPath = "NewPath" + case serverCertificateName = "ServerCertificateName" + case newServerCertificateName = "NewServerCertificateName" } } - public struct UpdateAccessKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "Status", required: true, type: .enum), - AWSShapeMember(label: "AccessKeyId", required: true, type: .string) + public struct GetServerCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServerCertificateName", required: true, type: .string) ] - /// The name of the user whose key you want to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - /// The status you want to assign to the secret access key. Active means the key can be used for API calls to AWS, while Inactive means the key cannot be used. - public let status: StatusType - /// The access key ID of the secret access key you want to update. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. - public let accessKeyId: String + /// The name of the server certificate you want to retrieve information about. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let serverCertificateName: String - public init(userName: String? = nil, status: StatusType, accessKeyId: String) { - self.userName = userName - self.status = status - self.accessKeyId = accessKeyId + public init(serverCertificateName: String) { + self.serverCertificateName = serverCertificateName } private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case status = "Status" - case accessKeyId = "AccessKeyId" + case serverCertificateName = "ServerCertificateName" } } - public struct UploadServerCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ServerCertificateName", required: true, type: .string), - AWSShapeMember(label: "CertificateBody", required: true, type: .string), - AWSShapeMember(label: "PrivateKey", required: true, type: .string), - AWSShapeMember(label: "CertificateChain", required: false, type: .string), - AWSShapeMember(label: "Path", required: false, type: .string) - ] - /// The name for the server certificate. Do not include the path in this value. The name of the certificate cannot contain any spaces. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let serverCertificateName: String - /// The contents of the public key certificate in PEM-encoded format. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let certificateBody: String - /// The contents of the private key in PEM-encoded format. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let privateKey: String - /// The contents of the certificate chain. This is typically a concatenation of the PEM-encoded public key certificates of the chain. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let certificateChain: String? - /// The path for the server certificate. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the --path option. The path must begin with /cloudfront and must include a trailing slash (for example, /cloudfront/test/). + public struct GetOpenIDConnectProviderResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), + AWSShapeMember(label: "Url", required: false, type: .string), + AWSShapeMember(label: "ThumbprintList", required: false, type: .list), + AWSShapeMember(label: "ClientIDList", required: false, type: .list) + ] + /// The date and time when the IAM OIDC provider resource object was created in the AWS account. + public let createDate: TimeStamp? + /// The URL that the IAM OIDC provider resource object is associated with. For more information, see CreateOpenIDConnectProvider. + public let url: String? + /// A list of certificate thumbprints that are associated with the specified IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider. + public let thumbprintList: [String]? + /// A list of client IDs (also known as audiences) that are associated with the specified IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider. + public let clientIDList: [String]? + + public init(createDate: TimeStamp? = nil, url: String? = nil, thumbprintList: [String]? = nil, clientIDList: [String]? = nil) { + self.createDate = createDate + self.url = url + self.thumbprintList = thumbprintList + self.clientIDList = clientIDList + } + + private enum CodingKeys: String, CodingKey { + case createDate = "CreateDate" + case url = "Url" + case thumbprintList = "ThumbprintList" + case clientIDList = "ClientIDList" + } + } + + public struct UserDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "UserId", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "GroupList", required: false, type: .list), + AWSShapeMember(label: "Path", required: false, type: .string), + AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), + AWSShapeMember(label: "UserPolicyList", required: false, type: .list), + AWSShapeMember(label: "AttachedManagedPolicies", required: false, type: .list) + ] + /// The friendly name identifying the user. + public let userName: String? + /// The stable and unique string identifying the user. For more information about IDs, see IAM Identifiers in the Using IAM guide. + public let userId: String? + public let arn: String? + /// A list of IAM groups that the user is in. + public let groupList: [String]? + /// The path to the user. For more information about paths, see IAM Identifiers in the Using IAM guide. public let path: String? + /// The date and time, in ISO 8601 date-time format, when the user was created. + public let createDate: TimeStamp? + /// A list of the inline policies embedded in the user. + public let userPolicyList: [PolicyDetail]? + /// A list of the managed policies attached to the user. + public let attachedManagedPolicies: [AttachedPolicy]? - public init(serverCertificateName: String, certificateBody: String, privateKey: String, certificateChain: String? = nil, path: String? = nil) { - self.serverCertificateName = serverCertificateName - self.certificateBody = certificateBody - self.privateKey = privateKey - self.certificateChain = certificateChain + public init(userName: String? = nil, userId: String? = nil, arn: String? = nil, groupList: [String]? = nil, path: String? = nil, createDate: TimeStamp? = nil, userPolicyList: [PolicyDetail]? = nil, attachedManagedPolicies: [AttachedPolicy]? = nil) { + self.userName = userName + self.userId = userId + self.arn = arn + self.groupList = groupList self.path = path + self.createDate = createDate + self.userPolicyList = userPolicyList + self.attachedManagedPolicies = attachedManagedPolicies } private enum CodingKeys: String, CodingKey { - case serverCertificateName = "ServerCertificateName" - case certificateBody = "CertificateBody" - case privateKey = "PrivateKey" - case certificateChain = "CertificateChain" + case userName = "UserName" + case userId = "UserId" + case arn = "Arn" + case groupList = "GroupList" case path = "Path" + case createDate = "CreateDate" + case userPolicyList = "UserPolicyList" + case attachedManagedPolicies = "AttachedManagedPolicies" } } - public struct SimulateCustomPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "ActionNames", required: true, type: .list), + public struct ListAttachedGroupPoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "PolicyInputList", required: true, type: .list), - AWSShapeMember(label: "ResourceHandlingOption", required: false, type: .string), - AWSShapeMember(label: "ResourceArns", required: false, type: .list), - AWSShapeMember(label: "CallerArn", required: false, type: .string), - AWSShapeMember(label: "ResourceOwner", required: false, type: .string), - AWSShapeMember(label: "ResourcePolicy", required: false, type: .string), - AWSShapeMember(label: "ContextEntries", required: false, type: .list) + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "AttachedPolicies", required: false, type: .list) ] - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// A list of names of API actions to evaluate in the simulation. Each action is evaluated against each resource. Each action must include the service identifier, such as iam:CreateUser. - public let actionNames: [String] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. public let marker: String? - /// A list of policy documents to include in the simulation. Each document is specified as a string containing the complete, valid JSON text of an IAM policy. Do not include any resource-based policies in this parameter. Any resource-based policy must be submitted with the ResourcePolicy parameter. The policies cannot be "scope-down" policies, such as you could include in a call to GetFederationToken or one of the AssumeRole APIs to restrict what a user can do while using the temporary credentials. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let policyInputList: [String] - /// Specifies the type of simulation to run. Different APIs that support resource-based policies require different combinations of resources. By specifying the type of simulation to run, you enable the policy simulator to enforce the presence of the required resources to ensure reliable simulation results. If your simulation does not match one of the following scenarios, then you can omit this parameter. The following list shows each of the supported scenario values and the resources that you must define to run the simulation. Each of the EC2 scenarios requires that you specify instance, image, and security-group resources. If your scenario includes an EBS volume, then you must specify that volume as a resource. If the EC2 scenario includes VPC, then you must supply the network-interface resource. If it includes an IP subnet, then you must specify the subnet resource. For more information on the EC2 scenario options, see Supported Platforms in the AWS EC2 User Guide. EC2-Classic-InstanceStore instance, image, security-group EC2-Classic-EBS instance, image, security-group, volume EC2-VPC-InstanceStore instance, image, security-group, network-interface EC2-VPC-InstanceStore-Subnet instance, image, security-group, network-interface, subnet EC2-VPC-EBS instance, image, security-group, network-interface, volume EC2-VPC-EBS-Subnet instance, image, security-group, network-interface, subnet, volume - public let resourceHandlingOption: String? - /// A list of ARNs of AWS resources to include in the simulation. If this parameter is not provided then the value defaults to * (all resources). Each API in the ActionNames parameter is evaluated for each resource in this list. The simulation determines the access result (allowed or denied) of each combination and reports it in the response. The simulation does not automatically retrieve policies for the specified resources. If you want to include a resource policy in the simulation, then you must include the policy as a string in the ResourcePolicy parameter. If you include a ResourcePolicy, then it must be applicable to all of the resources included in the simulation or you receive an invalid input error. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let resourceArns: [String]? - /// The ARN of the IAM user that you want to use as the simulated caller of the APIs. CallerArn is required if you include a ResourcePolicy so that the policy's Principal element has a value to use in evaluating the policy. You can specify only the ARN of an IAM user. You cannot specify the ARN of an assumed role, federated user, or a service principal. - public let callerArn: String? - /// An AWS account ID that specifies the owner of any simulated resource that does not identify its owner in the resource ARN, such as an S3 bucket or object. If ResourceOwner is specified, it is also used as the account owner of any ResourcePolicy included in the simulation. If the ResourceOwner parameter is not specified, then the owner of the resources and the resource policy defaults to the account of the identity provided in CallerArn. This parameter is required only if you specify a resource-based policy and account that owns the resource is different from the account that owns the simulated calling user CallerArn. - public let resourceOwner: String? - /// A resource-based policy to include in the simulation provided as a string. Each resource in the simulation is treated as if it had this policy attached. You can include only one resource-based policy in a simulation. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let resourcePolicy: String? - /// A list of context keys and corresponding values for the simulation to use. Whenever a context key is evaluated in one of the simulated IAM permission policies, the corresponding value is supplied. - public let contextEntries: [ContextEntry]? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list of the attached policies. + public let attachedPolicies: [AttachedPolicy]? - public init(maxItems: Int32? = nil, actionNames: [String], marker: String? = nil, policyInputList: [String], resourceHandlingOption: String? = nil, resourceArns: [String]? = nil, callerArn: String? = nil, resourceOwner: String? = nil, resourcePolicy: String? = nil, contextEntries: [ContextEntry]? = nil) { - self.maxItems = maxItems - self.actionNames = actionNames + public init(marker: String? = nil, isTruncated: Bool? = nil, attachedPolicies: [AttachedPolicy]? = nil) { self.marker = marker - self.policyInputList = policyInputList - self.resourceHandlingOption = resourceHandlingOption - self.resourceArns = resourceArns - self.callerArn = callerArn - self.resourceOwner = resourceOwner - self.resourcePolicy = resourcePolicy - self.contextEntries = contextEntries + self.isTruncated = isTruncated + self.attachedPolicies = attachedPolicies } private enum CodingKeys: String, CodingKey { - case maxItems = "MaxItems" - case actionNames = "ActionNames" case marker = "Marker" - case policyInputList = "PolicyInputList" - case resourceHandlingOption = "ResourceHandlingOption" - case resourceArns = "ResourceArns" - case callerArn = "CallerArn" - case resourceOwner = "ResourceOwner" - case resourcePolicy = "ResourcePolicy" - case contextEntries = "ContextEntries" + case isTruncated = "IsTruncated" + case attachedPolicies = "AttachedPolicies" } } - public struct GetGroupPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupName", required: true, type: .string), - AWSShapeMember(label: "PolicyDocument", required: true, type: .string), - AWSShapeMember(label: "PolicyName", required: true, type: .string) + public struct DeactivateMFADeviceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "SerialNumber", required: true, type: .string) ] - /// The group the policy is associated with. - public let groupName: String - /// The policy document. - public let policyDocument: String - /// The name of the policy. - public let policyName: String + /// The name of the user whose MFA device you want to deactivate. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/- + public let serialNumber: String - public init(groupName: String, policyDocument: String, policyName: String) { - self.groupName = groupName - self.policyDocument = policyDocument - self.policyName = policyName + public init(userName: String, serialNumber: String) { + self.userName = userName + self.serialNumber = serialNumber } private enum CodingKeys: String, CodingKey { - case groupName = "GroupName" - case policyDocument = "PolicyDocument" - case policyName = "PolicyName" + case userName = "UserName" + case serialNumber = "SerialNumber" } } - public struct GetAccountSummaryResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SummaryMap", required: false, type: .map) + public struct UploadSigningCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "CertificateBody", required: true, type: .string) ] - /// A set of key value pairs containing information about IAM entity usage and IAM quotas. - public let summaryMap: [SummaryKeyType: Int32]? + /// The name of the user the signing certificate is for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + /// The contents of the signing certificate. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let certificateBody: String - public init(summaryMap: [SummaryKeyType: Int32]? = nil) { - self.summaryMap = summaryMap + public init(userName: String? = nil, certificateBody: String) { + self.userName = userName + self.certificateBody = certificateBody } private enum CodingKeys: String, CodingKey { - case summaryMap = "SummaryMap" + case userName = "UserName" + case certificateBody = "CertificateBody" } } - public struct CreateLoginProfileResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LoginProfile", required: true, type: .structure) + public struct DeleteAccountAliasRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountAlias", required: true, type: .string) ] - /// A structure containing the user name and password create date. - public let loginProfile: LoginProfile + /// The name of the account alias to delete. This parameter allows (per its regex pattern) a string of characters consisting of lowercase letters, digits, and dashes. You cannot start or finish with a dash, nor can you have two dashes in a row. + public let accountAlias: String - public init(loginProfile: LoginProfile) { - self.loginProfile = loginProfile + public init(accountAlias: String) { + self.accountAlias = accountAlias } private enum CodingKeys: String, CodingKey { - case loginProfile = "LoginProfile" + case accountAlias = "AccountAlias" } } - public struct RoleDetail: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttachedManagedPolicies", required: false, type: .list), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "AssumeRolePolicyDocument", required: false, type: .string), - AWSShapeMember(label: "Path", required: false, type: .string), - AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), - AWSShapeMember(label: "RoleId", required: false, type: .string), - AWSShapeMember(label: "RoleName", required: false, type: .string), - AWSShapeMember(label: "RolePolicyList", required: false, type: .list), - AWSShapeMember(label: "InstanceProfileList", required: false, type: .list) + public struct ListGroupPoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "PolicyNames", required: true, type: .list), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) ] - /// A list of managed policies attached to the role. These policies are the role's access (permissions) policies. - public let attachedManagedPolicies: [AttachedPolicy]? - public let arn: String? - /// The trust policy that grants permission to assume the role. - public let assumeRolePolicyDocument: String? - /// The path to the role. For more information about paths, see IAM Identifiers in the Using IAM guide. - public let path: String? - /// The date and time, in ISO 8601 date-time format, when the role was created. - public let createDate: TimeStamp? - /// The stable and unique string identifying the role. For more information about IDs, see IAM Identifiers in the Using IAM guide. - public let roleId: String? - /// The friendly name that identifies the role. - public let roleName: String? - /// A list of inline policies embedded in the role. These policies are the role's access (permissions) policies. - public let rolePolicyList: [PolicyDetail]? - /// A list of instance profiles that contain this role. - public let instanceProfileList: [InstanceProfile]? - - public init(attachedManagedPolicies: [AttachedPolicy]? = nil, arn: String? = nil, assumeRolePolicyDocument: String? = nil, path: String? = nil, createDate: TimeStamp? = nil, roleId: String? = nil, roleName: String? = nil, rolePolicyList: [PolicyDetail]? = nil, instanceProfileList: [InstanceProfile]? = nil) { - self.attachedManagedPolicies = attachedManagedPolicies - self.arn = arn - self.assumeRolePolicyDocument = assumeRolePolicyDocument - self.path = path - self.createDate = createDate - self.roleId = roleId - self.roleName = roleName - self.rolePolicyList = rolePolicyList - self.instanceProfileList = instanceProfileList - } + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A list of policy names. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ + public let policyNames: [String] + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? - private enum CodingKeys: String, CodingKey { - case attachedManagedPolicies = "AttachedManagedPolicies" - case arn = "Arn" - case assumeRolePolicyDocument = "AssumeRolePolicyDocument" - case path = "Path" - case createDate = "CreateDate" - case roleId = "RoleId" - case roleName = "RoleName" - case rolePolicyList = "RolePolicyList" - case instanceProfileList = "InstanceProfileList" + public init(marker: String? = nil, policyNames: [String], isTruncated: Bool? = nil) { + self.marker = marker + self.policyNames = policyNames + self.isTruncated = isTruncated + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case policyNames = "PolicyNames" + case isTruncated = "IsTruncated" } } - public struct PutUserPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "PolicyDocument", required: true, type: .string), - AWSShapeMember(label: "PolicyName", required: true, type: .string) + public struct CreateUserResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "User", required: false, type: .structure) ] - /// The name of the user to associate the policy with. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - /// The policy document. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let policyDocument: String - /// The name of the policy document. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let policyName: String + /// A structure with details about the new IAM user. + public let user: User? - public init(userName: String, policyDocument: String, policyName: String) { - self.userName = userName - self.policyDocument = policyDocument - self.policyName = policyName + public init(user: User? = nil) { + self.user = user } private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case policyDocument = "PolicyDocument" - case policyName = "PolicyName" + case user = "User" } } - public struct PutRolePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleName", required: true, type: .string), - AWSShapeMember(label: "PolicyDocument", required: true, type: .string), - AWSShapeMember(label: "PolicyName", required: true, type: .string) + public struct ChangePasswordRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OldPassword", required: true, type: .string), + AWSShapeMember(label: "NewPassword", required: true, type: .string) ] - /// The name of the role to associate the policy with. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- - public let roleName: String - /// The policy document. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let policyDocument: String - /// The name of the policy document. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let policyName: String + /// The IAM user's current password. + public let oldPassword: String + /// The new password. The new password must conform to the AWS account's password policy, if one exists. The regex pattern used to validate this parameter is a string of characters consisting of almost any printable ASCII character from the space (\u0020) through the end of the ASCII character range (\u00FF). You can also include the tab (\u0009), line feed (\u000A), and carriage return (\u000D) characters. Although any of these characters are valid in a password, note that many tools, such as the AWS Management Console, might restrict the ability to enter certain characters because they have special meaning within that tool. + public let newPassword: String - public init(roleName: String, policyDocument: String, policyName: String) { - self.roleName = roleName - self.policyDocument = policyDocument - self.policyName = policyName + public init(oldPassword: String, newPassword: String) { + self.oldPassword = oldPassword + self.newPassword = newPassword } private enum CodingKeys: String, CodingKey { - case roleName = "RoleName" - case policyDocument = "PolicyDocument" - case policyName = "PolicyName" + case oldPassword = "OldPassword" + case newPassword = "NewPassword" } } - public struct ListAttachedRolePoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "RoleName", required: true, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "PathPrefix", required: false, type: .string) + public struct UpdateOpenIDConnectProviderThumbprintRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ThumbprintList", required: true, type: .list), + AWSShapeMember(label: "OpenIDConnectProviderArn", required: true, type: .string) ] - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// The name (friendly name, not ARN) of the role to list attached policies for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- - public let roleName: String - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let pathPrefix: String? + /// A list of certificate thumbprints that are associated with the specified IAM OpenID Connect provider. For more information, see CreateOpenIDConnectProvider. + public let thumbprintList: [String] + /// The Amazon Resource Name (ARN) of the IAM OIDC provider resource object for which you want to update the thumbprint. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders action. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let openIDConnectProviderArn: String - public init(maxItems: Int32? = nil, roleName: String, marker: String? = nil, pathPrefix: String? = nil) { - self.maxItems = maxItems - self.roleName = roleName - self.marker = marker - self.pathPrefix = pathPrefix + public init(thumbprintList: [String], openIDConnectProviderArn: String) { + self.thumbprintList = thumbprintList + self.openIDConnectProviderArn = openIDConnectProviderArn } private enum CodingKeys: String, CodingKey { - case maxItems = "MaxItems" - case roleName = "RoleName" - case marker = "Marker" - case pathPrefix = "PathPrefix" + case thumbprintList = "ThumbprintList" + case openIDConnectProviderArn = "OpenIDConnectProviderArn" } } - public struct Position: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Line", required: false, type: .integer), - AWSShapeMember(label: "Column", required: false, type: .integer) + public struct User: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateDate", required: true, type: .timestamp), + AWSShapeMember(label: "PasswordLastUsed", required: false, type: .timestamp), + AWSShapeMember(label: "UserId", required: true, type: .string), + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "Arn", required: true, type: .string), + AWSShapeMember(label: "Path", required: true, type: .string) ] - /// The line containing the specified position in the document. - public let line: Int32? - /// The column in the line containing the specified position in the document. - public let column: Int32? + /// The date and time, in ISO 8601 date-time format, when the user was created. + public let createDate: TimeStamp + /// The date and time, in ISO 8601 date-time format, when the user's password was last used to sign in to an AWS website. For a list of AWS websites that capture a user's last sign-in time, see the Credential Reports topic in the Using IAM guide. If a password is used more than once in a five-minute span, only the first use is returned in this field. If the field is null (no value) then it indicates that they never signed in with a password. This can be because: The user never had a password. A password exists but has not been used since IAM started tracking this information on October 20th, 2014. A null does not mean that the user never had a password. Also, if the user does not currently have a password, but had one in the past, then this field contains the date and time the most recent password was used. This value is returned only in the GetUser and ListUsers actions. + public let passwordLastUsed: TimeStamp? + /// The stable and unique string identifying the user. For more information about IDs, see IAM Identifiers in the Using IAM guide. + public let userId: String + /// The friendly name identifying the user. + public let userName: String + /// The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see IAM Identifiers in the Using IAM guide. + public let arn: String + /// The path to the user. For more information about paths, see IAM Identifiers in the Using IAM guide. + public let path: String - public init(line: Int32? = nil, column: Int32? = nil) { - self.line = line - self.column = column + public init(createDate: TimeStamp, passwordLastUsed: TimeStamp? = nil, userId: String, userName: String, arn: String, path: String) { + self.createDate = createDate + self.passwordLastUsed = passwordLastUsed + self.userId = userId + self.userName = userName + self.arn = arn + self.path = path } private enum CodingKeys: String, CodingKey { - case line = "Line" - case column = "Column" + case createDate = "CreateDate" + case passwordLastUsed = "PasswordLastUsed" + case userId = "UserId" + case userName = "UserName" + case arn = "Arn" + case path = "Path" } } - public struct ListAccessKeysResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "AccessKeyMetadata", required: true, type: .list) + public struct CreatePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Path", required: false, type: .string), + AWSShapeMember(label: "PolicyName", required: true, type: .string), + AWSShapeMember(label: "PolicyDocument", required: true, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of objects containing metadata about the access keys. - public let accessKeyMetadata: [AccessKeyMetadata] + /// The path for the policy. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let path: String? + /// The friendly name of the policy. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ + public let policyName: String + /// The JSON policy document that you want to use as the content for the new policy. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let policyDocument: String + /// A friendly description of the policy. Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." The policy description is immutable. After a value is assigned, it cannot be changed. + public let description: String? - public init(marker: String? = nil, isTruncated: Bool? = nil, accessKeyMetadata: [AccessKeyMetadata]) { - self.marker = marker - self.isTruncated = isTruncated - self.accessKeyMetadata = accessKeyMetadata + public init(path: String? = nil, policyName: String, policyDocument: String, description: String? = nil) { + self.path = path + self.policyName = policyName + self.policyDocument = policyDocument + self.description = description } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case isTruncated = "IsTruncated" - case accessKeyMetadata = "AccessKeyMetadata" + case path = "Path" + case policyName = "PolicyName" + case policyDocument = "PolicyDocument" + case description = "Description" } } - public struct UpdateServiceSpecificCredentialRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ServiceSpecificCredentialId", required: true, type: .string), - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "Status", required: true, type: .enum) + public enum SummaryKeyType: String, CustomStringConvertible, Codable { + case users = "Users" + case usersquota = "UsersQuota" + case groups = "Groups" + case groupsquota = "GroupsQuota" + case servercertificates = "ServerCertificates" + case servercertificatesquota = "ServerCertificatesQuota" + case userpolicysizequota = "UserPolicySizeQuota" + case grouppolicysizequota = "GroupPolicySizeQuota" + case groupsperuserquota = "GroupsPerUserQuota" + case signingcertificatesperuserquota = "SigningCertificatesPerUserQuota" + case accesskeysperuserquota = "AccessKeysPerUserQuota" + case mfadevices = "MFADevices" + case mfadevicesinuse = "MFADevicesInUse" + case accountmfaenabled = "AccountMFAEnabled" + case accountaccesskeyspresent = "AccountAccessKeysPresent" + case accountsigningcertificatespresent = "AccountSigningCertificatesPresent" + case attachedpoliciespergroupquota = "AttachedPoliciesPerGroupQuota" + case attachedpoliciesperrolequota = "AttachedPoliciesPerRoleQuota" + case attachedpoliciesperuserquota = "AttachedPoliciesPerUserQuota" + case policies = "Policies" + case policiesquota = "PoliciesQuota" + case policysizequota = "PolicySizeQuota" + case policyversionsinuse = "PolicyVersionsInUse" + case policyversionsinusequota = "PolicyVersionsInUseQuota" + case versionsperpolicyquota = "VersionsPerPolicyQuota" + public var description: String { return self.rawValue } + } + + public struct DeleteSSHPublicKeyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "SSHPublicKeyId", required: true, type: .string) ] - /// The unique identifier of the service-specific credential. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. - public let serviceSpecificCredentialId: String - /// The name of the IAM user associated with the service-specific credential. If you do not specify this value, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - /// The status to be assigned to the service-specific credential. - public let status: StatusType + /// The name of the IAM user associated with the SSH public key. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// The unique identifier for the SSH public key. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. + public let sSHPublicKeyId: String - public init(serviceSpecificCredentialId: String, userName: String? = nil, status: StatusType) { - self.serviceSpecificCredentialId = serviceSpecificCredentialId + public init(userName: String, sSHPublicKeyId: String) { self.userName = userName - self.status = status + self.sSHPublicKeyId = sSHPublicKeyId } private enum CodingKeys: String, CodingKey { - case serviceSpecificCredentialId = "ServiceSpecificCredentialId" case userName = "UserName" - case status = "Status" + case sSHPublicKeyId = "SSHPublicKeyId" } } - public struct DetachRolePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyArn", required: true, type: .string), - AWSShapeMember(label: "RoleName", required: true, type: .string) + public struct DeleteServerCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServerCertificateName", required: true, type: .string) ] - /// The Amazon Resource Name (ARN) of the IAM policy you want to detach. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let policyArn: String - /// The name (friendly name, not ARN) of the IAM role to detach the policy from. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- - public let roleName: String + /// The name of the server certificate you want to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let serverCertificateName: String - public init(policyArn: String, roleName: String) { - self.policyArn = policyArn - self.roleName = roleName + public init(serverCertificateName: String) { + self.serverCertificateName = serverCertificateName } private enum CodingKeys: String, CodingKey { - case policyArn = "PolicyArn" - case roleName = "RoleName" + case serverCertificateName = "ServerCertificateName" } } - public struct CreateSAMLProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "SAMLMetadataDocument", required: true, type: .string) + public struct SAMLProviderListEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "ValidUntil", required: false, type: .timestamp) ] - /// The name of the provider to create. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let name: String - /// An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP. For more information, see About SAML 2.0-based Federation in the IAM User Guide - public let sAMLMetadataDocument: String + /// The date and time when the SAML provider was created. + public let createDate: TimeStamp? + /// The Amazon Resource Name (ARN) of the SAML provider. + public let arn: String? + /// The expiration date and time for the SAML provider. + public let validUntil: TimeStamp? - public init(name: String, sAMLMetadataDocument: String) { - self.name = name - self.sAMLMetadataDocument = sAMLMetadataDocument + public init(createDate: TimeStamp? = nil, arn: String? = nil, validUntil: TimeStamp? = nil) { + self.createDate = createDate + self.arn = arn + self.validUntil = validUntil } private enum CodingKeys: String, CodingKey { - case name = "Name" - case sAMLMetadataDocument = "SAMLMetadataDocument" + case createDate = "CreateDate" + case arn = "Arn" + case validUntil = "ValidUntil" } } - public struct ListVirtualMFADevicesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AssignmentStatus", required: false, type: .enum), - AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "Marker", required: false, type: .string) + public struct ResourceSpecificResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MissingContextValues", required: false, type: .list), + AWSShapeMember(label: "EvalResourceDecision", required: true, type: .enum), + AWSShapeMember(label: "EvalDecisionDetails", required: false, type: .map), + AWSShapeMember(label: "MatchedStatements", required: false, type: .list), + AWSShapeMember(label: "EvalResourceName", required: true, type: .string) ] - /// The status (Unassigned or Assigned) of the devices to list. If you do not specify an AssignmentStatus, the action defaults to Any which lists both assigned and unassigned virtual MFA devices. - public let assignmentStatus: AssignmentStatusType? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? + /// A list of context keys that are required by the included input policies but that were not provided by one of the input parameters. This list is used when a list of ARNs is included in the ResourceArns parameter instead of "*". If you do not specify individual resources, by setting ResourceArns to "*" or by not including the ResourceArns parameter, then any missing context values are instead included under the EvaluationResults section. To discover the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy. + public let missingContextValues: [String]? + /// The result of the simulation of the simulated API action on the resource specified in EvalResourceName. + public let evalResourceDecision: PolicyEvaluationDecisionType + /// Additional details about the results of the evaluation decision. When there are both IAM policies and resource policies, this parameter explains how each set of policies contributes to the final evaluation decision. When simulating cross-account access to a resource, both the resource-based policy and the caller's IAM policy must grant access. + public let evalDecisionDetails: [String: PolicyEvaluationDecisionType]? + /// A list of the statements in the input policies that determine the result for this part of the simulation. Remember that even if multiple statements allow the action on the resource, if any statement denies that action, then the explicit deny overrides any allow, and the deny statement is the only entry included in the result. + public let matchedStatements: [Statement]? + /// The name of the simulated resource, in Amazon Resource Name (ARN) format. + public let evalResourceName: String - public init(assignmentStatus: AssignmentStatusType? = nil, maxItems: Int32? = nil, marker: String? = nil) { - self.assignmentStatus = assignmentStatus - self.maxItems = maxItems - self.marker = marker + public init(missingContextValues: [String]? = nil, evalResourceDecision: PolicyEvaluationDecisionType, evalDecisionDetails: [String: PolicyEvaluationDecisionType]? = nil, matchedStatements: [Statement]? = nil, evalResourceName: String) { + self.missingContextValues = missingContextValues + self.evalResourceDecision = evalResourceDecision + self.evalDecisionDetails = evalDecisionDetails + self.matchedStatements = matchedStatements + self.evalResourceName = evalResourceName } private enum CodingKeys: String, CodingKey { - case assignmentStatus = "AssignmentStatus" - case maxItems = "MaxItems" - case marker = "Marker" + case missingContextValues = "MissingContextValues" + case evalResourceDecision = "EvalResourceDecision" + case evalDecisionDetails = "EvalDecisionDetails" + case matchedStatements = "MatchedStatements" + case evalResourceName = "EvalResourceName" } } - public struct GetRoleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleName", required: true, type: .string) + public struct GetContextKeysForPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContextKeyNames", required: false, type: .list) ] - /// The name of the IAM role to get information about. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- - public let roleName: String + /// The list of context keys that are referenced in the input policies. + public let contextKeyNames: [String]? - public init(roleName: String) { - self.roleName = roleName + public init(contextKeyNames: [String]? = nil) { + self.contextKeyNames = contextKeyNames } private enum CodingKeys: String, CodingKey { - case roleName = "RoleName" + case contextKeyNames = "ContextKeyNames" } } - public struct AddUserToGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "GroupName", required: true, type: .string) + public struct CreateAccountAliasRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountAlias", required: true, type: .string) ] - /// The name of the user to add. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - /// The name of the group to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let groupName: String + /// The account alias to create. This parameter allows (per its regex pattern) a string of characters consisting of lowercase letters, digits, and dashes. You cannot start or finish with a dash, nor can you have two dashes in a row. + public let accountAlias: String - public init(userName: String, groupName: String) { - self.userName = userName - self.groupName = groupName + public init(accountAlias: String) { + self.accountAlias = accountAlias } private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case groupName = "GroupName" + case accountAlias = "AccountAlias" } } - public struct UpdateUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NewPath", required: false, type: .string), + public struct EvaluationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EvalDecision", required: true, type: .enum), + AWSShapeMember(label: "EvalDecisionDetails", required: false, type: .map), + AWSShapeMember(label: "EvalResourceName", required: false, type: .string), + AWSShapeMember(label: "MatchedStatements", required: false, type: .list), + AWSShapeMember(label: "EvalActionName", required: true, type: .string), + AWSShapeMember(label: "OrganizationsDecisionDetail", required: false, type: .structure), + AWSShapeMember(label: "MissingContextValues", required: false, type: .list), + AWSShapeMember(label: "ResourceSpecificResults", required: false, type: .list) + ] + /// The result of the simulation. + public let evalDecision: PolicyEvaluationDecisionType + /// Additional details about the results of the evaluation decision. When there are both IAM policies and resource policies, this parameter explains how each set of policies contributes to the final evaluation decision. When simulating cross-account access to a resource, both the resource-based policy and the caller's IAM policy must grant access. See How IAM Roles Differ from Resource-based Policies + public let evalDecisionDetails: [String: PolicyEvaluationDecisionType]? + /// The ARN of the resource that the indicated API action was tested on. + public let evalResourceName: String? + /// A list of the statements in the input policies that determine the result for this scenario. Remember that even if multiple statements allow the action on the resource, if only one statement denies that action, then the explicit deny overrides any allow, and the deny statement is the only entry included in the result. + public let matchedStatements: [Statement]? + /// The name of the API action tested on the indicated resource. + public let evalActionName: String + /// A structure that details how AWS Organizations and its service control policies affect the results of the simulation. Only applies if the simulated user's account is part of an organization. + public let organizationsDecisionDetail: OrganizationsDecisionDetail? + /// A list of context keys that are required by the included input policies but that were not provided by one of the input parameters. This list is used when the resource in a simulation is "*", either explicitly, or when the ResourceArns parameter blank. If you include a list of resources, then any missing context values are instead included under the ResourceSpecificResults section. To discover the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy. + public let missingContextValues: [String]? + /// The individual results of the simulation of the API action specified in EvalActionName on each resource. + public let resourceSpecificResults: [ResourceSpecificResult]? + + public init(evalDecision: PolicyEvaluationDecisionType, evalDecisionDetails: [String: PolicyEvaluationDecisionType]? = nil, evalResourceName: String? = nil, matchedStatements: [Statement]? = nil, evalActionName: String, organizationsDecisionDetail: OrganizationsDecisionDetail? = nil, missingContextValues: [String]? = nil, resourceSpecificResults: [ResourceSpecificResult]? = nil) { + self.evalDecision = evalDecision + self.evalDecisionDetails = evalDecisionDetails + self.evalResourceName = evalResourceName + self.matchedStatements = matchedStatements + self.evalActionName = evalActionName + self.organizationsDecisionDetail = organizationsDecisionDetail + self.missingContextValues = missingContextValues + self.resourceSpecificResults = resourceSpecificResults + } + + private enum CodingKeys: String, CodingKey { + case evalDecision = "EvalDecision" + case evalDecisionDetails = "EvalDecisionDetails" + case evalResourceName = "EvalResourceName" + case matchedStatements = "MatchedStatements" + case evalActionName = "EvalActionName" + case organizationsDecisionDetail = "OrganizationsDecisionDetail" + case missingContextValues = "MissingContextValues" + case resourceSpecificResults = "ResourceSpecificResults" + } + } + + public struct GetUserPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "NewUserName", required: false, type: .string) + AWSShapeMember(label: "PolicyName", required: true, type: .string) ] - /// New path for the IAM user. Include this parameter only if you're changing the user's path. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let newPath: String? - /// Name of the user to update. If you're changing the name of the user, this is the original user name. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + /// The name of the user who the policy is associated with. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- public let userName: String - /// New name for the user. Include this parameter only if you're changing the user's name. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let newUserName: String? + /// The name of the policy document to get. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ + public let policyName: String - public init(newPath: String? = nil, userName: String, newUserName: String? = nil) { - self.newPath = newPath + public init(userName: String, policyName: String) { self.userName = userName - self.newUserName = newUserName + self.policyName = policyName } private enum CodingKeys: String, CodingKey { - case newPath = "NewPath" case userName = "UserName" - case newUserName = "NewUserName" + case policyName = "PolicyName" } } - public struct OpenIDConnectProviderListEntry: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Arn", required: false, type: .string) + public struct CreateGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Path", required: false, type: .string), + AWSShapeMember(label: "GroupName", required: true, type: .string) ] - public let arn: String? + /// The path to the group. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let path: String? + /// The name of the group to create. Do not include the path in this value. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-. The group name must be unique within the account. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". + public let groupName: String - public init(arn: String? = nil) { - self.arn = arn + public init(path: String? = nil, groupName: String) { + self.path = path + self.groupName = groupName } private enum CodingKeys: String, CodingKey { - case arn = "Arn" + case path = "Path" + case groupName = "GroupName" } } - public enum PolicySourceType: String, CustomStringConvertible, Codable { - case user = "user" - case group = "group" - case role = "role" - case awsManaged = "aws-managed" - case userManaged = "user-managed" - case resource = "resource" - case none = "none" - public var description: String { return self.rawValue } - } - - public struct CreatePolicyVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyArn", required: true, type: .string), - AWSShapeMember(label: "PolicyDocument", required: true, type: .string), - AWSShapeMember(label: "SetAsDefault", required: false, type: .boolean) + public struct CreateLoginProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Password", required: true, type: .string), + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "PasswordResetRequired", required: false, type: .boolean) ] - /// The Amazon Resource Name (ARN) of the IAM policy to which you want to add a new version. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let policyArn: String - /// The JSON policy document that you want to use as the content for this new version of the policy. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let policyDocument: String - /// Specifies whether to set this version as the policy's default version. When this parameter is true, the new policy version becomes the operative version; that is, the version that is in effect for the IAM users, groups, and roles that the policy is attached to. For more information about managed policy versions, see Versioning for Managed Policies in the IAM User Guide. - public let setAsDefault: Bool? + /// The new password for the user. The regex pattern used to validate this parameter is a string of characters consisting of almost any printable ASCII character from the space (\u0020) through the end of the ASCII character range (\u00FF). You can also include the tab (\u0009), line feed (\u000A), and carriage return (\u000D) characters. Although any of these characters are valid in a password, note that many tools, such as the AWS Management Console, might restrict the ability to enter certain characters because they have special meaning within that tool. + public let password: String + /// The name of the IAM user to create a password for. The user must already exist. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// Specifies whether the user is required to set a new password on next sign-in. + public let passwordResetRequired: Bool? - public init(policyArn: String, policyDocument: String, setAsDefault: Bool? = nil) { - self.policyArn = policyArn - self.policyDocument = policyDocument - self.setAsDefault = setAsDefault + public init(password: String, userName: String, passwordResetRequired: Bool? = nil) { + self.password = password + self.userName = userName + self.passwordResetRequired = passwordResetRequired } private enum CodingKeys: String, CodingKey { - case policyArn = "PolicyArn" - case policyDocument = "PolicyDocument" - case setAsDefault = "SetAsDefault" + case password = "Password" + case userName = "UserName" + case passwordResetRequired = "PasswordResetRequired" } } - public struct CreateServiceSpecificCredentialRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "ServiceName", required: true, type: .string) + public struct DeleteLoginProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string) ] - /// The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + /// The name of the user whose password you want to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- public let userName: String - /// The name of the AWS service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials. - public let serviceName: String - public init(userName: String, serviceName: String) { + public init(userName: String) { self.userName = userName - self.serviceName = serviceName } private enum CodingKeys: String, CodingKey { case userName = "UserName" - case serviceName = "ServiceName" } } - public struct PasswordPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RequireNumbers", required: false, type: .boolean), - AWSShapeMember(label: "ExpirePasswords", required: false, type: .boolean), - AWSShapeMember(label: "MaxPasswordAge", required: false, type: .integer), - AWSShapeMember(label: "MinimumPasswordLength", required: false, type: .integer), - AWSShapeMember(label: "RequireLowercaseCharacters", required: false, type: .boolean), - AWSShapeMember(label: "PasswordReusePrevention", required: false, type: .integer), - AWSShapeMember(label: "RequireSymbols", required: false, type: .boolean), - AWSShapeMember(label: "RequireUppercaseCharacters", required: false, type: .boolean), - AWSShapeMember(label: "HardExpiry", required: false, type: .boolean), - AWSShapeMember(label: "AllowUsersToChangePassword", required: false, type: .boolean) - ] - /// Specifies whether to require numbers for IAM user passwords. - public let requireNumbers: Bool? - /// Indicates whether passwords in the account expire. Returns true if MaxPasswordAge is contains a value greater than 0. Returns false if MaxPasswordAge is 0 or not present. - public let expirePasswords: Bool? - /// The number of days that an IAM user password is valid. - public let maxPasswordAge: Int32? - /// Minimum length to require for IAM user passwords. - public let minimumPasswordLength: Int32? - /// Specifies whether to require lowercase characters for IAM user passwords. - public let requireLowercaseCharacters: Bool? - /// Specifies the number of previous passwords that IAM users are prevented from reusing. - public let passwordReusePrevention: Int32? - /// Specifies whether to require symbols for IAM user passwords. - public let requireSymbols: Bool? - /// Specifies whether to require uppercase characters for IAM user passwords. - public let requireUppercaseCharacters: Bool? - /// Specifies whether IAM users are prevented from setting a new password after their password has expired. - public let hardExpiry: Bool? - /// Specifies whether IAM users are allowed to change their own password. - public let allowUsersToChangePassword: Bool? - - public init(requireNumbers: Bool? = nil, expirePasswords: Bool? = nil, maxPasswordAge: Int32? = nil, minimumPasswordLength: Int32? = nil, requireLowercaseCharacters: Bool? = nil, passwordReusePrevention: Int32? = nil, requireSymbols: Bool? = nil, requireUppercaseCharacters: Bool? = nil, hardExpiry: Bool? = nil, allowUsersToChangePassword: Bool? = nil) { - self.requireNumbers = requireNumbers - self.expirePasswords = expirePasswords - self.maxPasswordAge = maxPasswordAge - self.minimumPasswordLength = minimumPasswordLength - self.requireLowercaseCharacters = requireLowercaseCharacters - self.passwordReusePrevention = passwordReusePrevention - self.requireSymbols = requireSymbols - self.requireUppercaseCharacters = requireUppercaseCharacters - self.hardExpiry = hardExpiry - self.allowUsersToChangePassword = allowUsersToChangePassword - } - - private enum CodingKeys: String, CodingKey { - case requireNumbers = "RequireNumbers" - case expirePasswords = "ExpirePasswords" - case maxPasswordAge = "MaxPasswordAge" - case minimumPasswordLength = "MinimumPasswordLength" - case requireLowercaseCharacters = "RequireLowercaseCharacters" - case passwordReusePrevention = "PasswordReusePrevention" - case requireSymbols = "RequireSymbols" - case requireUppercaseCharacters = "RequireUppercaseCharacters" - case hardExpiry = "HardExpiry" - case allowUsersToChangePassword = "AllowUsersToChangePassword" - } - } - - public struct CreateRoleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Role", required: true, type: .structure) - ] - /// A structure containing details about the new role. - public let role: Role - - public init(role: Role) { - self.role = role - } - - private enum CodingKeys: String, CodingKey { - case role = "Role" - } + public enum EntityType: String, CustomStringConvertible, Codable { + case user = "User" + case role = "Role" + case group = "Group" + case localmanagedpolicy = "LocalManagedPolicy" + case awsmanagedpolicy = "AWSManagedPolicy" + public var description: String { return self.rawValue } } - public struct ListServerCertificatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct GetAccountAuthorizationDetailsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "PathPrefix", required: false, type: .string) + AWSShapeMember(label: "Filter", required: false, type: .list) ] /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. public let marker: String? /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. public let maxItems: Int32? - /// The path prefix for filtering the results. For example: /company/servercerts would get all server certificates for which the path starts with /company/servercerts. This parameter is optional. If it is not included, it defaults to a slash (/), listing all server certificates. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let pathPrefix: String? + /// A list of entity types used to filter the results. Only the entities that match the types you specify are included in the output. Use the value LocalManagedPolicy to include customer managed policies. The format for this parameter is a comma-separated (if more than one) list of strings. Each string value in the list must be one of the valid values listed below. + public let filter: [EntityType]? - public init(marker: String? = nil, maxItems: Int32? = nil, pathPrefix: String? = nil) { + public init(marker: String? = nil, maxItems: Int32? = nil, filter: [EntityType]? = nil) { self.marker = marker self.maxItems = maxItems - self.pathPrefix = pathPrefix + self.filter = filter } private enum CodingKeys: String, CodingKey { case marker = "Marker" case maxItems = "MaxItems" - case pathPrefix = "PathPrefix" + case filter = "Filter" } } - public struct SetDefaultPolicyVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyArn", required: true, type: .string), - AWSShapeMember(label: "VersionId", required: true, type: .string) + public struct GetLoginProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string) ] - /// The Amazon Resource Name (ARN) of the IAM policy whose default version you want to set. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let policyArn: String - /// The version of the policy to set as the default (operative) version. For more information about managed policy versions, see Versioning for Managed Policies in the IAM User Guide. - public let versionId: String + /// The name of the user whose login profile you want to retrieve. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String - public init(policyArn: String, versionId: String) { - self.policyArn = policyArn - self.versionId = versionId + public init(userName: String) { + self.userName = userName } private enum CodingKeys: String, CodingKey { - case policyArn = "PolicyArn" - case versionId = "VersionId" + case userName = "UserName" } } - public struct ListOpenIDConnectProvidersRequest: AWSShape { - - } - - public struct UpdateServerCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NewPath", required: false, type: .string), - AWSShapeMember(label: "ServerCertificateName", required: true, type: .string), - AWSShapeMember(label: "NewServerCertificateName", required: false, type: .string) + public struct AccessKeyMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "AccessKeyId", required: false, type: .string) ] - /// The new path for the server certificate. Include this only if you are updating the server certificate's path. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let newPath: String? - /// The name of the server certificate that you want to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let serverCertificateName: String - /// The new name for the server certificate. Include this only if you are updating the server certificate's name. The name of the certificate cannot contain any spaces. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let newServerCertificateName: String? + /// The date when the access key was created. + public let createDate: TimeStamp? + /// The name of the IAM user that the key is associated with. + public let userName: String? + /// The status of the access key. Active means the key is valid for API calls; Inactive means it is not. + public let status: StatusType? + /// The ID for this access key. + public let accessKeyId: String? - public init(newPath: String? = nil, serverCertificateName: String, newServerCertificateName: String? = nil) { - self.newPath = newPath - self.serverCertificateName = serverCertificateName - self.newServerCertificateName = newServerCertificateName + public init(createDate: TimeStamp? = nil, userName: String? = nil, status: StatusType? = nil, accessKeyId: String? = nil) { + self.createDate = createDate + self.userName = userName + self.status = status + self.accessKeyId = accessKeyId } private enum CodingKeys: String, CodingKey { - case newPath = "NewPath" - case serverCertificateName = "ServerCertificateName" - case newServerCertificateName = "NewServerCertificateName" + case createDate = "CreateDate" + case userName = "UserName" + case status = "Status" + case accessKeyId = "AccessKeyId" } } - public struct ListPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListAttachedUserPoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Policies", required: false, type: .list), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "AttachedPolicies", required: false, type: .list) ] /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. public let marker: String? - /// A list of policies. - public let policies: [Policy]? /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. public let isTruncated: Bool? + /// A list of the attached policies. + public let attachedPolicies: [AttachedPolicy]? - public init(marker: String? = nil, policies: [Policy]? = nil, isTruncated: Bool? = nil) { + public init(marker: String? = nil, isTruncated: Bool? = nil, attachedPolicies: [AttachedPolicy]? = nil) { self.marker = marker - self.policies = policies self.isTruncated = isTruncated + self.attachedPolicies = attachedPolicies } private enum CodingKeys: String, CodingKey { case marker = "Marker" - case policies = "Policies" case isTruncated = "IsTruncated" + case attachedPolicies = "AttachedPolicies" } } - public struct GetServerCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ServerCertificateName", required: true, type: .string) + public struct RemoveRoleFromInstanceProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceProfileName", required: true, type: .string), + AWSShapeMember(label: "RoleName", required: true, type: .string) ] - /// The name of the server certificate you want to retrieve information about. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let serverCertificateName: String + /// The name of the instance profile to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let instanceProfileName: String + /// The name of the role to remove. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + public let roleName: String - public init(serverCertificateName: String) { - self.serverCertificateName = serverCertificateName + public init(instanceProfileName: String, roleName: String) { + self.instanceProfileName = instanceProfileName + self.roleName = roleName } private enum CodingKeys: String, CodingKey { - case serverCertificateName = "ServerCertificateName" + case instanceProfileName = "InstanceProfileName" + case roleName = "RoleName" } } - public struct ServiceSpecificCredential: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct UpdateRoleDescriptionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Role", required: false, type: .structure) + ] + /// A structure that contains details about the modified role. + public let role: Role? + + public init(role: Role? = nil) { + self.role = role + } + + private enum CodingKeys: String, CodingKey { + case role = "Role" + } + } + + public struct ResetServiceSpecificCredentialRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceSpecificCredentialId", required: true, type: .string), - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "Status", required: true, type: .enum), - AWSShapeMember(label: "ServiceUserName", required: true, type: .string), - AWSShapeMember(label: "ServiceName", required: true, type: .string), - AWSShapeMember(label: "CreateDate", required: true, type: .timestamp), - AWSShapeMember(label: "ServicePassword", required: true, type: .string) + AWSShapeMember(label: "UserName", required: false, type: .string) ] - /// The unique identifier for the service-specific credential. + /// The unique identifier of the service-specific credential. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. public let serviceSpecificCredentialId: String - /// The name of the IAM user associated with the service-specific credential. - public let userName: String - /// The status of the service-specific credential. Active means the key is valid for API calls, while Inactive means it is not. - public let status: StatusType - /// The generated user name for the service-specific credential. This value is generated by combining the IAM user's name combined with the ID number of the AWS account, as in jane-at-123456789012, for example. This value cannot be configured by the user. - public let serviceUserName: String - /// The name of the service associated with the service-specific credential. - public let serviceName: String - /// The date and time, in ISO 8601 date-time format, when the service-specific credential were created. - public let createDate: TimeStamp - /// The generated password for the service-specific credential. - public let servicePassword: String + /// The name of the IAM user associated with the service-specific credential. If this value is not specified, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? - public init(serviceSpecificCredentialId: String, userName: String, status: StatusType, serviceUserName: String, serviceName: String, createDate: TimeStamp, servicePassword: String) { + public init(serviceSpecificCredentialId: String, userName: String? = nil) { self.serviceSpecificCredentialId = serviceSpecificCredentialId self.userName = userName - self.status = status - self.serviceUserName = serviceUserName - self.serviceName = serviceName - self.createDate = createDate - self.servicePassword = servicePassword } private enum CodingKeys: String, CodingKey { case serviceSpecificCredentialId = "ServiceSpecificCredentialId" case userName = "UserName" - case status = "Status" - case serviceUserName = "ServiceUserName" - case serviceName = "ServiceName" - case createDate = "CreateDate" - case servicePassword = "ServicePassword" } } - public struct GetOpenIDConnectProviderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), - AWSShapeMember(label: "Url", required: false, type: .string), - AWSShapeMember(label: "ThumbprintList", required: false, type: .list), - AWSShapeMember(label: "ClientIDList", required: false, type: .list) + public struct EnableMFADeviceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "AuthenticationCode1", required: true, type: .string), + AWSShapeMember(label: "SerialNumber", required: true, type: .string), + AWSShapeMember(label: "AuthenticationCode2", required: true, type: .string) ] - /// The date and time when the IAM OIDC provider resource object was created in the AWS account. - public let createDate: TimeStamp? - /// The URL that the IAM OIDC provider resource object is associated with. For more information, see CreateOpenIDConnectProvider. - public let url: String? - /// A list of certificate thumbprints that are associated with the specified IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider. - public let thumbprintList: [String]? - /// A list of client IDs (also known as audiences) that are associated with the specified IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider. - public let clientIDList: [String]? + /// The name of the IAM user for whom you want to enable the MFA device. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// An authentication code emitted by the device. The format for this parameter is a string of 6 digits. Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can resync the device. + public let authenticationCode1: String + /// The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/- + public let serialNumber: String + /// A subsequent authentication code emitted by the device. The format for this parameter is a string of 6 digits. Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can resync the device. + public let authenticationCode2: String - public init(createDate: TimeStamp? = nil, url: String? = nil, thumbprintList: [String]? = nil, clientIDList: [String]? = nil) { - self.createDate = createDate - self.url = url - self.thumbprintList = thumbprintList - self.clientIDList = clientIDList + public init(userName: String, authenticationCode1: String, serialNumber: String, authenticationCode2: String) { + self.userName = userName + self.authenticationCode1 = authenticationCode1 + self.serialNumber = serialNumber + self.authenticationCode2 = authenticationCode2 } private enum CodingKeys: String, CodingKey { - case createDate = "CreateDate" - case url = "Url" - case thumbprintList = "ThumbprintList" - case clientIDList = "ClientIDList" + case userName = "UserName" + case authenticationCode1 = "AuthenticationCode1" + case serialNumber = "SerialNumber" + case authenticationCode2 = "AuthenticationCode2" } } - public struct UserDetail: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "UserId", required: false, type: .string), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "GroupList", required: false, type: .list), - AWSShapeMember(label: "Path", required: false, type: .string), - AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), - AWSShapeMember(label: "UserPolicyList", required: false, type: .list), - AWSShapeMember(label: "AttachedManagedPolicies", required: false, type: .list) + public struct UpdateAssumeRolePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyDocument", required: true, type: .string), + AWSShapeMember(label: "RoleName", required: true, type: .string) ] - /// The friendly name identifying the user. - public let userName: String? - /// The stable and unique string identifying the user. For more information about IDs, see IAM Identifiers in the Using IAM guide. - public let userId: String? - public let arn: String? - /// A list of IAM groups that the user is in. - public let groupList: [String]? - /// The path to the user. For more information about paths, see IAM Identifiers in the Using IAM guide. - public let path: String? - /// The date and time, in ISO 8601 date-time format, when the user was created. - public let createDate: TimeStamp? - /// A list of the inline policies embedded in the user. - public let userPolicyList: [PolicyDetail]? - /// A list of the managed policies attached to the user. - public let attachedManagedPolicies: [AttachedPolicy]? + /// The policy that grants an entity permission to assume the role. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let policyDocument: String + /// The name of the role to update with the new policy. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + public let roleName: String - public init(userName: String? = nil, userId: String? = nil, arn: String? = nil, groupList: [String]? = nil, path: String? = nil, createDate: TimeStamp? = nil, userPolicyList: [PolicyDetail]? = nil, attachedManagedPolicies: [AttachedPolicy]? = nil) { - self.userName = userName - self.userId = userId - self.arn = arn - self.groupList = groupList - self.path = path - self.createDate = createDate - self.userPolicyList = userPolicyList - self.attachedManagedPolicies = attachedManagedPolicies + public init(policyDocument: String, roleName: String) { + self.policyDocument = policyDocument + self.roleName = roleName } private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case userId = "UserId" - case arn = "Arn" - case groupList = "GroupList" - case path = "Path" - case createDate = "CreateDate" - case userPolicyList = "UserPolicyList" - case attachedManagedPolicies = "AttachedManagedPolicies" + case policyDocument = "PolicyDocument" + case roleName = "RoleName" } } - public struct ListSAMLProvidersRequest: AWSShape { + public struct SSHPublicKey: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SSHPublicKeyBody", required: true, type: .string), + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "Status", required: true, type: .enum), + AWSShapeMember(label: "Fingerprint", required: true, type: .string), + AWSShapeMember(label: "UploadDate", required: false, type: .timestamp), + AWSShapeMember(label: "SSHPublicKeyId", required: true, type: .string) + ] + /// The SSH public key. + public let sSHPublicKeyBody: String + /// The name of the IAM user associated with the SSH public key. + public let userName: String + /// The status of the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. + public let status: StatusType + /// The MD5 message digest of the SSH public key. + public let fingerprint: String + /// The date and time, in ISO 8601 date-time format, when the SSH public key was uploaded. + public let uploadDate: TimeStamp? + /// The unique identifier for the SSH public key. + public let sSHPublicKeyId: String + + public init(sSHPublicKeyBody: String, userName: String, status: StatusType, fingerprint: String, uploadDate: TimeStamp? = nil, sSHPublicKeyId: String) { + self.sSHPublicKeyBody = sSHPublicKeyBody + self.userName = userName + self.status = status + self.fingerprint = fingerprint + self.uploadDate = uploadDate + self.sSHPublicKeyId = sSHPublicKeyId + } + private enum CodingKeys: String, CodingKey { + case sSHPublicKeyBody = "SSHPublicKeyBody" + case userName = "UserName" + case status = "Status" + case fingerprint = "Fingerprint" + case uploadDate = "UploadDate" + case sSHPublicKeyId = "SSHPublicKeyId" + } } - public struct ListAttachedGroupPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListPolicyVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyArn", required: true, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "AttachedPolicies", required: false, type: .list) + AWSShapeMember(label: "MaxItems", required: false, type: .integer) ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + /// The Amazon Resource Name (ARN) of the IAM policy for which you want the versions. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let policyArn: String + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of the attached policies. - public let attachedPolicies: [AttachedPolicy]? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? - public init(marker: String? = nil, isTruncated: Bool? = nil, attachedPolicies: [AttachedPolicy]? = nil) { + public init(policyArn: String, marker: String? = nil, maxItems: Int32? = nil) { + self.policyArn = policyArn self.marker = marker - self.isTruncated = isTruncated - self.attachedPolicies = attachedPolicies + self.maxItems = maxItems } private enum CodingKeys: String, CodingKey { + case policyArn = "PolicyArn" case marker = "Marker" - case isTruncated = "IsTruncated" - case attachedPolicies = "AttachedPolicies" + case maxItems = "MaxItems" } } - public struct ListUserPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct PolicyVersion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), + AWSShapeMember(label: "VersionId", required: false, type: .string), + AWSShapeMember(label: "Document", required: false, type: .string), + AWSShapeMember(label: "IsDefaultVersion", required: false, type: .boolean) + ] + /// The date and time, in ISO 8601 date-time format, when the policy version was created. + public let createDate: TimeStamp? + /// The identifier for the policy version. Policy version identifiers always begin with v (always lowercase). When a policy is created, the first policy version is v1. + public let versionId: String? + /// The policy document. The policy document is returned in the response to the GetPolicyVersion and GetAccountAuthorizationDetails operations. It is not returned in the response to the CreatePolicyVersion or ListPolicyVersions operations. + public let document: String? + /// Specifies whether the policy version is set as the policy's default version. + public let isDefaultVersion: Bool? + + public init(createDate: TimeStamp? = nil, versionId: String? = nil, document: String? = nil, isDefaultVersion: Bool? = nil) { + self.createDate = createDate + self.versionId = versionId + self.document = document + self.isDefaultVersion = isDefaultVersion + } + + private enum CodingKeys: String, CodingKey { + case createDate = "CreateDate" + case versionId = "VersionId" + case document = "Document" + case isDefaultVersion = "IsDefaultVersion" + } + } + + public struct ListUsersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "PolicyNames", required: true, type: .list), + AWSShapeMember(label: "Users", required: true, type: .list), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) ] /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. public let marker: String? - /// A list of policy names. - public let policyNames: [String] + /// A list of users. + public let users: [User] /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. public let isTruncated: Bool? - public init(marker: String? = nil, policyNames: [String], isTruncated: Bool? = nil) { + public init(marker: String? = nil, users: [User], isTruncated: Bool? = nil) { self.marker = marker - self.policyNames = policyNames + self.users = users self.isTruncated = isTruncated } private enum CodingKeys: String, CodingKey { case marker = "Marker" - case policyNames = "PolicyNames" + case users = "Users" case isTruncated = "IsTruncated" } } - public struct ListAccountAliasesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer) + public struct DeleteInstanceProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceProfileName", required: true, type: .string) ] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? + /// The name of the instance profile to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let instanceProfileName: String - public init(marker: String? = nil, maxItems: Int32? = nil) { - self.marker = marker - self.maxItems = maxItems + public init(instanceProfileName: String) { + self.instanceProfileName = instanceProfileName } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case maxItems = "MaxItems" + case instanceProfileName = "InstanceProfileName" } } - public struct UploadSigningCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "CertificateBody", required: true, type: .string) + public struct RoleUsageType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Region", required: false, type: .string), + AWSShapeMember(label: "Resources", required: false, type: .list) ] - /// The name of the user the signing certificate is for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - /// The contents of the signing certificate. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let certificateBody: String + /// The name of the region where the service-linked role is being used. + public let region: String? + /// The name of the resource that is using the service-linked role. + public let resources: [String]? - public init(userName: String? = nil, certificateBody: String) { - self.userName = userName - self.certificateBody = certificateBody + public init(region: String? = nil, resources: [String]? = nil) { + self.region = region + self.resources = resources } private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case certificateBody = "CertificateBody" + case region = "Region" + case resources = "Resources" } } - public struct DeactivateMFADeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "SerialNumber", required: true, type: .string) + public struct ListAccessKeysRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "MaxItems", required: false, type: .integer) ] - /// The name of the user whose MFA device you want to deactivate. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - /// The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/- - public let serialNumber: String + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// The name of the user. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? - public init(userName: String, serialNumber: String) { + public init(marker: String? = nil, userName: String? = nil, maxItems: Int32? = nil) { + self.marker = marker self.userName = userName - self.serialNumber = serialNumber + self.maxItems = maxItems } private enum CodingKeys: String, CodingKey { + case marker = "Marker" case userName = "UserName" - case serialNumber = "SerialNumber" + case maxItems = "MaxItems" } } - public struct DeleteAccountAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountAlias", required: true, type: .string) + public struct DeleteServiceLinkedRoleResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeletionTaskId", required: true, type: .string) ] - /// The name of the account alias to delete. This parameter allows (per its regex pattern) a string of characters consisting of lowercase letters, digits, and dashes. You cannot start or finish with a dash, nor can you have two dashes in a row. - public let accountAlias: String + /// The deletion task identifier that you can use to check the status of the deletion. This identifier is returned in the format task/aws-service-role/<service-principal-name>/<role-name>/<task-uuid>. + public let deletionTaskId: String - public init(accountAlias: String) { - self.accountAlias = accountAlias + public init(deletionTaskId: String) { + self.deletionTaskId = deletionTaskId } private enum CodingKeys: String, CodingKey { - case accountAlias = "AccountAlias" + case deletionTaskId = "DeletionTaskId" } } - public struct GetSAMLProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SAMLProviderArn", required: true, type: .string) - ] - /// The Amazon Resource Name (ARN) of the SAML provider resource object in IAM to get information about. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let sAMLProviderArn: String - - public init(sAMLProviderArn: String) { - self.sAMLProviderArn = sAMLProviderArn - } - - private enum CodingKeys: String, CodingKey { - case sAMLProviderArn = "SAMLProviderArn" - } - } - - public struct GenerateCredentialReportResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "State", required: false, type: .enum), - AWSShapeMember(label: "Description", required: false, type: .string) + public struct GetAccountPasswordPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PasswordPolicy", required: true, type: .structure) ] - /// Information about the state of the credential report. - public let state: ReportStateType? - /// Information about the credential report. - public let description: String? + /// A structure that contains details about the account's password policy. + public let passwordPolicy: PasswordPolicy - public init(state: ReportStateType? = nil, description: String? = nil) { - self.state = state - self.description = description + public init(passwordPolicy: PasswordPolicy) { + self.passwordPolicy = passwordPolicy } private enum CodingKeys: String, CodingKey { - case state = "State" - case description = "Description" + case passwordPolicy = "PasswordPolicy" } } - public struct ListGroupPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "PolicyNames", required: true, type: .list), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) - ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A list of policy names. - public let policyNames: [String] - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - - public init(marker: String? = nil, policyNames: [String], isTruncated: Bool? = nil) { - self.marker = marker - self.policyNames = policyNames - self.isTruncated = isTruncated - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case policyNames = "PolicyNames" - case isTruncated = "IsTruncated" - } + public enum ReportStateType: String, CustomStringConvertible, Codable { + case started = "STARTED" + case inprogress = "INPROGRESS" + case complete = "COMPLETE" + public var description: String { return self.rawValue } } - public struct CreateUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "User", required: false, type: .structure) + public struct GetPolicyVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyVersion", required: false, type: .structure) ] - /// A structure with details about the new IAM user. - public let user: User? + /// A structure containing details about the policy version. + public let policyVersion: PolicyVersion? - public init(user: User? = nil) { - self.user = user + public init(policyVersion: PolicyVersion? = nil) { + self.policyVersion = policyVersion } private enum CodingKeys: String, CodingKey { - case user = "User" + case policyVersion = "PolicyVersion" } } - public struct SigningCertificate: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CertificateId", required: true, type: .string), - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "Status", required: true, type: .enum), - AWSShapeMember(label: "UploadDate", required: false, type: .timestamp), - AWSShapeMember(label: "CertificateBody", required: true, type: .string) + public struct PolicyUser: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "UserId", required: false, type: .string) ] - /// The ID for the signing certificate. - public let certificateId: String - /// The name of the user the signing certificate is associated with. - public let userName: String - /// The status of the signing certificate. Active means the key is valid for API calls, while Inactive means it is not. - public let status: StatusType - /// The date when the signing certificate was uploaded. - public let uploadDate: TimeStamp? - /// The contents of the signing certificate. - public let certificateBody: String + /// The name (friendly name, not ARN) identifying the user. + public let userName: String? + /// The stable and unique string identifying the user. For more information about IDs, see IAM Identifiers in the IAM User Guide. + public let userId: String? - public init(certificateId: String, userName: String, status: StatusType, uploadDate: TimeStamp? = nil, certificateBody: String) { - self.certificateId = certificateId + public init(userName: String? = nil, userId: String? = nil) { self.userName = userName - self.status = status - self.uploadDate = uploadDate - self.certificateBody = certificateBody + self.userId = userId } private enum CodingKeys: String, CodingKey { - case certificateId = "CertificateId" case userName = "UserName" - case status = "Status" - case uploadDate = "UploadDate" - case certificateBody = "CertificateBody" + case userId = "UserId" } } - public struct GetGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "GroupName", required: true, type: .string) + AWSShapeMember(label: "PathPrefix", required: false, type: .string) ] /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. public let marker: String? /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. public let maxItems: Int32? - /// The name of the group. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let groupName: String + /// The path prefix for filtering the results. For example, the prefix /division_abc/subdivision_xyz/ gets all groups whose path starts with /division_abc/subdivision_xyz/. This parameter is optional. If it is not included, it defaults to a slash (/), listing all groups. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let pathPrefix: String? - public init(marker: String? = nil, maxItems: Int32? = nil, groupName: String) { + public init(marker: String? = nil, maxItems: Int32? = nil, pathPrefix: String? = nil) { self.marker = marker self.maxItems = maxItems - self.groupName = groupName + self.pathPrefix = pathPrefix } private enum CodingKeys: String, CodingKey { case marker = "Marker" case maxItems = "MaxItems" - case groupName = "GroupName" + case pathPrefix = "PathPrefix" } } - public struct AttachRolePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyArn", required: true, type: .string), - AWSShapeMember(label: "RoleName", required: true, type: .string) + public struct ListServiceSpecificCredentialsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "ServiceName", required: false, type: .string) ] - /// The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let policyArn: String - /// The name (friendly name, not ARN) of the role to attach the policy to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- - public let roleName: String + /// The name of the user whose service-specific credentials you want information about. If this value is not specified then the operation assumes the user whose credentials are used to call the operation. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + /// Filters the returned results to only those for the specified AWS service. If not specified, then AWS returns service-specific credentials for all services. + public let serviceName: String? - public init(policyArn: String, roleName: String) { - self.policyArn = policyArn - self.roleName = roleName + public init(userName: String? = nil, serviceName: String? = nil) { + self.userName = userName + self.serviceName = serviceName } private enum CodingKeys: String, CodingKey { - case policyArn = "PolicyArn" - case roleName = "RoleName" + case userName = "UserName" + case serviceName = "ServiceName" } } - public struct ChangePasswordRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OldPassword", required: true, type: .string), - AWSShapeMember(label: "NewPassword", required: true, type: .string) + public struct CreateRoleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Path", required: false, type: .string), + AWSShapeMember(label: "RoleName", required: true, type: .string), + AWSShapeMember(label: "AssumeRolePolicyDocument", required: true, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) ] - /// The IAM user's current password. - public let oldPassword: String - /// The new password. The new password must conform to the AWS account's password policy, if one exists. The regex pattern used to validate this parameter is a string of characters consisting of almost any printable ASCII character from the space (\u0020) through the end of the ASCII character range (\u00FF). You can also include the tab (\u0009), line feed (\u000A), and carriage return (\u000D) characters. Although any of these characters are valid in a password, note that many tools, such as the AWS Management Console, might restrict the ability to enter certain characters because they have special meaning within that tool. - public let newPassword: String + /// The path to the role. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let path: String? + /// The name of the role to create. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- Role names are not distinguished by case. For example, you cannot create roles named both "PRODROLE" and "prodrole". + public let roleName: String + /// The trust relationship policy document that grants an entity permission to assume the role. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let assumeRolePolicyDocument: String + /// A customer-provided description of the role. + public let description: String? - public init(oldPassword: String, newPassword: String) { - self.oldPassword = oldPassword - self.newPassword = newPassword + public init(path: String? = nil, roleName: String, assumeRolePolicyDocument: String, description: String? = nil) { + self.path = path + self.roleName = roleName + self.assumeRolePolicyDocument = assumeRolePolicyDocument + self.description = description } private enum CodingKeys: String, CodingKey { - case oldPassword = "OldPassword" - case newPassword = "NewPassword" + case path = "Path" + case roleName = "RoleName" + case assumeRolePolicyDocument = "AssumeRolePolicyDocument" + case description = "Description" } } - public struct UpdateOpenIDConnectProviderThumbprintRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ThumbprintList", required: true, type: .list), + public struct DeleteOpenIDConnectProviderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OpenIDConnectProviderArn", required: true, type: .string) ] - /// A list of certificate thumbprints that are associated with the specified IAM OpenID Connect provider. For more information, see CreateOpenIDConnectProvider. - public let thumbprintList: [String] - /// The Amazon Resource Name (ARN) of the IAM OIDC provider resource object for which you want to update the thumbprint. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders action. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + /// The Amazon Resource Name (ARN) of the IAM OpenID Connect provider resource object to delete. You can get a list of OpenID Connect provider resource ARNs by using the ListOpenIDConnectProviders action. public let openIDConnectProviderArn: String - public init(thumbprintList: [String], openIDConnectProviderArn: String) { - self.thumbprintList = thumbprintList + public init(openIDConnectProviderArn: String) { self.openIDConnectProviderArn = openIDConnectProviderArn } private enum CodingKeys: String, CodingKey { - case thumbprintList = "ThumbprintList" case openIDConnectProviderArn = "OpenIDConnectProviderArn" } } - public struct User: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CreateDate", required: true, type: .timestamp), - AWSShapeMember(label: "PasswordLastUsed", required: false, type: .timestamp), - AWSShapeMember(label: "UserId", required: true, type: .string), - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "Arn", required: true, type: .string), - AWSShapeMember(label: "Path", required: true, type: .string) + public struct GetGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "Users", required: true, type: .list), + AWSShapeMember(label: "Group", required: true, type: .structure), + AWSShapeMember(label: "Marker", required: false, type: .string) ] - /// The date and time, in ISO 8601 date-time format, when the user was created. - public let createDate: TimeStamp - /// The date and time, in ISO 8601 date-time format, when the user's password was last used to sign in to an AWS website. For a list of AWS websites that capture a user's last sign-in time, see the Credential Reports topic in the Using IAM guide. If a password is used more than once in a five-minute span, only the first use is returned in this field. This field is null (not present) when: The user does not have a password The password exists but has never been used (at least not since IAM started tracking this information on October 20th, 2014 there is no sign-in data associated with the user This value is returned only in the GetUser and ListUsers actions. - public let passwordLastUsed: TimeStamp? - /// The stable and unique string identifying the user. For more information about IDs, see IAM Identifiers in the Using IAM guide. - public let userId: String - /// The friendly name identifying the user. - public let userName: String - /// The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see IAM Identifiers in the Using IAM guide. - public let arn: String - /// The path to the user. For more information about paths, see IAM Identifiers in the Using IAM guide. - public let path: String + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list of users in the group. + public let users: [User] + /// A structure that contains details about the group. + public let group: Group + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? - public init(createDate: TimeStamp, passwordLastUsed: TimeStamp? = nil, userId: String, userName: String, arn: String, path: String) { - self.createDate = createDate - self.passwordLastUsed = passwordLastUsed - self.userId = userId - self.userName = userName - self.arn = arn - self.path = path + public init(isTruncated: Bool? = nil, users: [User], group: Group, marker: String? = nil) { + self.isTruncated = isTruncated + self.users = users + self.group = group + self.marker = marker } private enum CodingKeys: String, CodingKey { - case createDate = "CreateDate" - case passwordLastUsed = "PasswordLastUsed" - case userId = "UserId" - case userName = "UserName" - case arn = "Arn" - case path = "Path" + case isTruncated = "IsTruncated" + case users = "Users" + case group = "Group" + case marker = "Marker" } } - public enum SummaryKeyType: String, CustomStringConvertible, Codable { - case users = "Users" - case usersquota = "UsersQuota" - case groups = "Groups" - case groupsquota = "GroupsQuota" - case servercertificates = "ServerCertificates" - case servercertificatesquota = "ServerCertificatesQuota" - case userpolicysizequota = "UserPolicySizeQuota" - case grouppolicysizequota = "GroupPolicySizeQuota" - case groupsperuserquota = "GroupsPerUserQuota" - case signingcertificatesperuserquota = "SigningCertificatesPerUserQuota" - case accesskeysperuserquota = "AccessKeysPerUserQuota" - case mfadevices = "MFADevices" - case mfadevicesinuse = "MFADevicesInUse" - case accountmfaenabled = "AccountMFAEnabled" - case accountaccesskeyspresent = "AccountAccessKeysPresent" - case accountsigningcertificatespresent = "AccountSigningCertificatesPresent" - case attachedpoliciespergroupquota = "AttachedPoliciesPerGroupQuota" - case attachedpoliciesperrolequota = "AttachedPoliciesPerRoleQuota" - case attachedpoliciesperuserquota = "AttachedPoliciesPerUserQuota" - case policies = "Policies" - case policiesquota = "PoliciesQuota" - case policysizequota = "PolicySizeQuota" - case policyversionsinuse = "PolicyVersionsInUse" - case policyversionsinusequota = "PolicyVersionsInUseQuota" - case versionsperpolicyquota = "VersionsPerPolicyQuota" - public var description: String { return self.rawValue } + public struct PolicyDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyDocument", required: false, type: .string), + AWSShapeMember(label: "PolicyName", required: false, type: .string) + ] + /// The policy document. + public let policyDocument: String? + /// The name of the policy. + public let policyName: String? + + public init(policyDocument: String? = nil, policyName: String? = nil) { + self.policyDocument = policyDocument + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case policyDocument = "PolicyDocument" + case policyName = "PolicyName" + } } - public struct DeleteSSHPublicKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "SSHPublicKeyId", required: true, type: .string) + public struct UpdateSigningCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CertificateId", required: true, type: .string), + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "Status", required: true, type: .enum) ] - /// The name of the IAM user associated with the SSH public key. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - /// The unique identifier for the SSH public key. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. - public let sSHPublicKeyId: String + /// The ID of the signing certificate you want to update. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. + public let certificateId: String + /// The name of the IAM user the signing certificate belongs to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + /// The status you want to assign to the certificate. Active means the certificate can be used for API calls to AWS, while Inactive means the certificate cannot be used. + public let status: StatusType - public init(userName: String, sSHPublicKeyId: String) { + public init(certificateId: String, userName: String? = nil, status: StatusType) { + self.certificateId = certificateId self.userName = userName - self.sSHPublicKeyId = sSHPublicKeyId + self.status = status } private enum CodingKeys: String, CodingKey { + case certificateId = "CertificateId" case userName = "UserName" - case sSHPublicKeyId = "SSHPublicKeyId" + case status = "Status" } } - public struct CreateOpenIDConnectProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Url", required: true, type: .string), - AWSShapeMember(label: "ThumbprintList", required: true, type: .list), - AWSShapeMember(label: "ClientIDList", required: false, type: .list) + public struct VirtualMFADevice: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EnableDate", required: false, type: .timestamp), + AWSShapeMember(label: "QRCodePNG", required: false, type: .blob), + AWSShapeMember(label: "Base32StringSeed", required: false, type: .blob), + AWSShapeMember(label: "User", required: false, type: .structure), + AWSShapeMember(label: "SerialNumber", required: true, type: .string) ] - /// The URL of the identity provider. The URL must begin with "https://" and should correspond to the iss claim in the provider's OpenID Connect ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a host name, like "https://server.example.org" or "https://example.com". You cannot register the same provider multiple times in a single AWS account. If you try to submit a URL that has already been used for an OpenID Connect provider in the AWS account, you will get an error. - public let url: String - /// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). Typically this list includes only one entry. However, IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates. The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string. You must provide at least one thumbprint when creating an IAM OIDC provider. For example, if the OIDC provider is server.example.com and the provider stores its keys at "https://keys.server.example.com/openid-connect", the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com. For more information about obtaining the OIDC provider's thumbprint, see Obtaining the Thumbprint for an OpenID Connect Provider in the IAM User Guide. - public let thumbprintList: [String] - /// A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the client_id parameter on OAuth requests.) You can register multiple client IDs with the same provider. For example, you might have multiple applications that use the same OIDC provider. You cannot register more than 100 client IDs with a single IAM OIDC provider. There is no defined format for a client ID. The CreateOpenIDConnectProviderRequest action accepts client IDs up to 255 characters long. - public let clientIDList: [String]? + /// The date and time on which the virtual MFA device was enabled. + public let enableDate: TimeStamp? + /// A QR code PNG image that encodes otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String where $virtualMFADeviceName is one of the create call arguments, AccountName is the user name if set (otherwise, the account ID otherwise), and Base32String is the seed in Base32 format. The Base32String value is Base64-encoded. + public let qRCodePNG: Data? + /// The Base32 seed defined as specified in RFC3548. The Base32StringSeed is Base64-encoded. + public let base32StringSeed: Data? + /// The IAM user associated with this virtual MFA device. + public let user: User? + /// The serial number associated with VirtualMFADevice. + public let serialNumber: String - public init(url: String, thumbprintList: [String], clientIDList: [String]? = nil) { - self.url = url - self.thumbprintList = thumbprintList - self.clientIDList = clientIDList + public init(enableDate: TimeStamp? = nil, qRCodePNG: Data? = nil, base32StringSeed: Data? = nil, user: User? = nil, serialNumber: String) { + self.enableDate = enableDate + self.qRCodePNG = qRCodePNG + self.base32StringSeed = base32StringSeed + self.user = user + self.serialNumber = serialNumber } private enum CodingKeys: String, CodingKey { - case url = "Url" - case thumbprintList = "ThumbprintList" - case clientIDList = "ClientIDList" + case enableDate = "EnableDate" + case qRCodePNG = "QRCodePNG" + case base32StringSeed = "Base32StringSeed" + case user = "User" + case serialNumber = "SerialNumber" } } - public struct CreateServiceLinkedRoleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AWSServiceName", required: true, type: .string), - AWSShapeMember(label: "CustomSuffix", required: false, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string) + public struct ListAttachedUserPoliciesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxItems", required: false, type: .integer), + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "PathPrefix", required: false, type: .string) ] - /// The AWS service to which this role is attached. You use a string similar to a URL but without the http:// in front. For example: elasticbeanstalk.amazonaws.com - public let aWSServiceName: String - /// A string that you provide, which is combined with the service name to form the complete role name. If you make multiple requests for the same service, then you must supply a different CustomSuffix for each request. Otherwise the request fails with a duplicate role name error. For example, you could add -1 or -debug to the suffix. - public let customSuffix: String? - /// The description of the role. - public let description: String? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// The name (friendly name, not ARN) of the user to list attached policies for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let pathPrefix: String? - public init(aWSServiceName: String, customSuffix: String? = nil, description: String? = nil) { - self.aWSServiceName = aWSServiceName - self.customSuffix = customSuffix - self.description = description + public init(maxItems: Int32? = nil, userName: String, marker: String? = nil, pathPrefix: String? = nil) { + self.maxItems = maxItems + self.userName = userName + self.marker = marker + self.pathPrefix = pathPrefix } private enum CodingKeys: String, CodingKey { - case aWSServiceName = "AWSServiceName" - case customSuffix = "CustomSuffix" - case description = "Description" + case maxItems = "MaxItems" + case userName = "UserName" + case marker = "Marker" + case pathPrefix = "PathPrefix" } } - public struct CreatePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Path", required: false, type: .string), - AWSShapeMember(label: "PolicyName", required: true, type: .string), - AWSShapeMember(label: "PolicyDocument", required: true, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string) + public struct GetRolePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleName", required: true, type: .string), + AWSShapeMember(label: "PolicyName", required: true, type: .string) ] - /// The path for the policy. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let path: String? - /// The friendly name of the policy. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + /// The name of the role associated with the policy. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + public let roleName: String + /// The name of the policy document to get. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ public let policyName: String - /// The JSON policy document that you want to use as the content for the new policy. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let policyDocument: String - /// A friendly description of the policy. Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." The policy description is immutable. After a value is assigned, it cannot be changed. - public let description: String? - public init(path: String? = nil, policyName: String, policyDocument: String, description: String? = nil) { - self.path = path + public init(roleName: String, policyName: String) { + self.roleName = roleName self.policyName = policyName - self.policyDocument = policyDocument - self.description = description } private enum CodingKeys: String, CodingKey { - case path = "Path" + case roleName = "RoleName" case policyName = "PolicyName" - case policyDocument = "PolicyDocument" - case description = "Description" } } - public struct DeleteServerCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ServerCertificateName", required: true, type: .string) + public struct DetachUserPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyArn", required: true, type: .string), + AWSShapeMember(label: "UserName", required: true, type: .string) ] - /// The name of the server certificate you want to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let serverCertificateName: String + /// The Amazon Resource Name (ARN) of the IAM policy you want to detach. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let policyArn: String + /// The name (friendly name, not ARN) of the IAM user to detach the policy from. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String - public init(serverCertificateName: String) { - self.serverCertificateName = serverCertificateName + public init(policyArn: String, userName: String) { + self.policyArn = policyArn + self.userName = userName + } + + private enum CodingKeys: String, CodingKey { + case policyArn = "PolicyArn" + case userName = "UserName" + } + } + + public struct ListSigningCertificatesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "Certificates", required: true, type: .list) + ] + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list of the user's signing certificate information. + public let certificates: [SigningCertificate] + + public init(marker: String? = nil, isTruncated: Bool? = nil, certificates: [SigningCertificate]) { + self.marker = marker + self.isTruncated = isTruncated + self.certificates = certificates + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case isTruncated = "IsTruncated" + case certificates = "Certificates" + } + } + + public struct GetCredentialReportResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Content", required: false, type: .blob), + AWSShapeMember(label: "ReportFormat", required: false, type: .enum), + AWSShapeMember(label: "GeneratedTime", required: false, type: .timestamp) + ] + /// Contains the credential report. The report is Base64-encoded. + public let content: Data? + /// The format (MIME type) of the credential report. + public let reportFormat: ReportFormatType? + /// The date and time when the credential report was created, in ISO 8601 date-time format. + public let generatedTime: TimeStamp? + + public init(content: Data? = nil, reportFormat: ReportFormatType? = nil, generatedTime: TimeStamp? = nil) { + self.content = content + self.reportFormat = reportFormat + self.generatedTime = generatedTime + } + + private enum CodingKeys: String, CodingKey { + case content = "Content" + case reportFormat = "ReportFormat" + case generatedTime = "GeneratedTime" + } + } + + public struct CreateInstanceProfileResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceProfile", required: true, type: .structure) + ] + /// A structure containing details about the new instance profile. + public let instanceProfile: InstanceProfile + + public init(instanceProfile: InstanceProfile) { + self.instanceProfile = instanceProfile + } + + private enum CodingKeys: String, CodingKey { + case instanceProfile = "InstanceProfile" + } + } + + public struct GetSSHPublicKeyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Encoding", required: true, type: .enum), + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "SSHPublicKeyId", required: true, type: .string) + ] + /// Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use SSH. To retrieve the public key in PEM format, use PEM. + public let encoding: EncodingType + /// The name of the IAM user associated with the SSH public key. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// The unique identifier for the SSH public key. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. + public let sSHPublicKeyId: String + + public init(encoding: EncodingType, userName: String, sSHPublicKeyId: String) { + self.encoding = encoding + self.userName = userName + self.sSHPublicKeyId = sSHPublicKeyId + } + + private enum CodingKeys: String, CodingKey { + case encoding = "Encoding" + case userName = "UserName" + case sSHPublicKeyId = "SSHPublicKeyId" + } + } + + public struct GetPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Policy", required: false, type: .structure) + ] + /// A structure containing details about the policy. + public let policy: Policy? + + public init(policy: Policy? = nil) { + self.policy = policy + } + + private enum CodingKeys: String, CodingKey { + case policy = "Policy" + } + } + + public struct ListSigningCertificatesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "MaxItems", required: false, type: .integer) + ] + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// The name of the IAM user whose signing certificates you want to examine. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + + public init(marker: String? = nil, userName: String? = nil, maxItems: Int32? = nil) { + self.marker = marker + self.userName = userName + self.maxItems = maxItems + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case userName = "UserName" + case maxItems = "MaxItems" + } + } + + public struct ListAttachedGroupPoliciesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxItems", required: false, type: .integer), + AWSShapeMember(label: "GroupName", required: true, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "PathPrefix", required: false, type: .string) + ] + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// The name (friendly name, not ARN) of the group to list attached policies for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let groupName: String + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let pathPrefix: String? + + public init(maxItems: Int32? = nil, groupName: String, marker: String? = nil, pathPrefix: String? = nil) { + self.maxItems = maxItems + self.groupName = groupName + self.marker = marker + self.pathPrefix = pathPrefix + } + + private enum CodingKeys: String, CodingKey { + case maxItems = "MaxItems" + case groupName = "GroupName" + case marker = "Marker" + case pathPrefix = "PathPrefix" + } + } + + public struct DeletePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyArn", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the IAM policy you want to delete. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let policyArn: String + + public init(policyArn: String) { + self.policyArn = policyArn + } + + private enum CodingKeys: String, CodingKey { + case policyArn = "PolicyArn" + } + } + + public struct ResyncMFADeviceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "AuthenticationCode1", required: true, type: .string), + AWSShapeMember(label: "SerialNumber", required: true, type: .string), + AWSShapeMember(label: "AuthenticationCode2", required: true, type: .string) + ] + /// The name of the user whose MFA device you want to resynchronize. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// An authentication code emitted by the device. The format for this parameter is a sequence of six digits. + public let authenticationCode1: String + /// Serial number that uniquely identifies the MFA device. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let serialNumber: String + /// A subsequent authentication code emitted by the device. The format for this parameter is a sequence of six digits. + public let authenticationCode2: String + + public init(userName: String, authenticationCode1: String, serialNumber: String, authenticationCode2: String) { + self.userName = userName + self.authenticationCode1 = authenticationCode1 + self.serialNumber = serialNumber + self.authenticationCode2 = authenticationCode2 + } + + private enum CodingKeys: String, CodingKey { + case userName = "UserName" + case authenticationCode1 = "AuthenticationCode1" + case serialNumber = "SerialNumber" + case authenticationCode2 = "AuthenticationCode2" + } + } + + public struct DeleteSAMLProviderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SAMLProviderArn", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the SAML provider to delete. + public let sAMLProviderArn: String + + public init(sAMLProviderArn: String) { + self.sAMLProviderArn = sAMLProviderArn + } + + private enum CodingKeys: String, CodingKey { + case sAMLProviderArn = "SAMLProviderArn" + } + } + + public struct PolicyRole: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleId", required: false, type: .string), + AWSShapeMember(label: "RoleName", required: false, type: .string) + ] + /// The stable and unique string identifying the role. For more information about IDs, see IAM Identifiers in the IAM User Guide. + public let roleId: String? + /// The name (friendly name, not ARN) identifying the role. + public let roleName: String? + + public init(roleId: String? = nil, roleName: String? = nil) { + self.roleId = roleId + self.roleName = roleName + } + + private enum CodingKeys: String, CodingKey { + case roleId = "RoleId" + case roleName = "RoleName" + } + } + + public struct OrganizationsDecisionDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AllowedByOrganizations", required: false, type: .boolean) + ] + /// Specifies whether the simulated action is allowed by the AWS Organizations service control policies that impact the simulated user's account. + public let allowedByOrganizations: Bool? + + public init(allowedByOrganizations: Bool? = nil) { + self.allowedByOrganizations = allowedByOrganizations + } + + private enum CodingKeys: String, CodingKey { + case allowedByOrganizations = "AllowedByOrganizations" + } + } + + public enum ReportFormatType: String, CustomStringConvertible, Codable { + case textCsv = "text/csv" + public var description: String { return self.rawValue } + } + + public struct ListVirtualMFADevicesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VirtualMFADevices", required: true, type: .list), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) + ] + /// The list of virtual MFA devices in the current account that match the AssignmentStatus value that was passed in the request. + public let virtualMFADevices: [VirtualMFADevice] + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + + public init(virtualMFADevices: [VirtualMFADevice], marker: String? = nil, isTruncated: Bool? = nil) { + self.virtualMFADevices = virtualMFADevices + self.marker = marker + self.isTruncated = isTruncated + } + + private enum CodingKeys: String, CodingKey { + case virtualMFADevices = "VirtualMFADevices" + case marker = "Marker" + case isTruncated = "IsTruncated" + } + } + + public enum ContextKeyTypeEnum: String, CustomStringConvertible, Codable { + case string = "string" + case stringlist = "stringList" + case numeric = "numeric" + case numericlist = "numericList" + case boolean = "boolean" + case booleanlist = "booleanList" + case ip = "ip" + case iplist = "ipList" + case binary = "binary" + case binarylist = "binaryList" + case date = "date" + case datelist = "dateList" + public var description: String { return self.rawValue } + } + + public struct UpdateLoginProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Password", required: false, type: .string), + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "PasswordResetRequired", required: false, type: .boolean) + ] + /// The new password for the specified IAM user. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). However, the format can be further restricted by the account administrator by setting a password policy on the AWS account. For more information, see UpdateAccountPasswordPolicy. + public let password: String? + /// The name of the user whose password you want to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// Allows this new password to be used only once by requiring the specified IAM user to set a new password on next sign-in. + public let passwordResetRequired: Bool? + + public init(password: String? = nil, userName: String, passwordResetRequired: Bool? = nil) { + self.password = password + self.userName = userName + self.passwordResetRequired = passwordResetRequired + } + + private enum CodingKeys: String, CodingKey { + case password = "Password" + case userName = "UserName" + case passwordResetRequired = "PasswordResetRequired" + } + } + + public struct ListAccountAliasesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "AccountAliases", required: true, type: .list) + ] + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list of aliases associated with the account. AWS supports only one alias per account. + public let accountAliases: [String] + + public init(marker: String? = nil, isTruncated: Bool? = nil, accountAliases: [String]) { + self.marker = marker + self.isTruncated = isTruncated + self.accountAliases = accountAliases + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case isTruncated = "IsTruncated" + case accountAliases = "AccountAliases" + } + } + + public struct ListMFADevicesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "MaxItems", required: false, type: .integer) + ] + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// The name of the user whose MFA devices you want to list. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + + public init(marker: String? = nil, userName: String? = nil, maxItems: Int32? = nil) { + self.marker = marker + self.userName = userName + self.maxItems = maxItems + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case userName = "UserName" + case maxItems = "MaxItems" + } + } + + public struct DeleteGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", required: true, type: .string) + ] + /// The name of the IAM group to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let groupName: String + + public init(groupName: String) { + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + } + } + + public struct CreatePolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Policy", required: false, type: .structure) + ] + /// A structure containing details about the new policy. + public let policy: Policy? + + public init(policy: Policy? = nil) { + self.policy = policy + } + + private enum CodingKeys: String, CodingKey { + case policy = "Policy" + } + } + + public struct ListRolePoliciesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "MaxItems", required: false, type: .integer), + AWSShapeMember(label: "RoleName", required: true, type: .string) + ] + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// The name of the role to list policies for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + public let roleName: String + + public init(marker: String? = nil, maxItems: Int32? = nil, roleName: String) { + self.marker = marker + self.maxItems = maxItems + self.roleName = roleName + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case maxItems = "MaxItems" + case roleName = "RoleName" + } + } + + public struct UpdateGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NewPath", required: false, type: .string), + AWSShapeMember(label: "NewGroupName", required: false, type: .string), + AWSShapeMember(label: "GroupName", required: true, type: .string) + ] + /// New path for the IAM group. Only include this if changing the group's path. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let newPath: String? + /// New name for the IAM group. Only include this if changing the group's name. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let newGroupName: String? + /// Name of the IAM group to update. If you're changing the name of the group, this is the original name. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let groupName: String + + public init(newPath: String? = nil, newGroupName: String? = nil, groupName: String) { + self.newPath = newPath + self.newGroupName = newGroupName + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case newPath = "NewPath" + case newGroupName = "NewGroupName" + case groupName = "GroupName" + } + } + + public struct DeleteVirtualMFADeviceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SerialNumber", required: true, type: .string) + ] + /// The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the same as the ARN. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/- + public let serialNumber: String + + public init(serialNumber: String) { + self.serialNumber = serialNumber + } + + private enum CodingKeys: String, CodingKey { + case serialNumber = "SerialNumber" + } + } + + public struct CreateVirtualMFADeviceResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VirtualMFADevice", required: true, type: .structure) + ] + /// A structure containing details about the new virtual MFA device. + public let virtualMFADevice: VirtualMFADevice + + public init(virtualMFADevice: VirtualMFADevice) { + self.virtualMFADevice = virtualMFADevice + } + + private enum CodingKeys: String, CodingKey { + case virtualMFADevice = "VirtualMFADevice" + } + } + + public struct AttachUserPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyArn", required: true, type: .string), + AWSShapeMember(label: "UserName", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let policyArn: String + /// The name (friendly name, not ARN) of the IAM user to attach the policy to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + + public init(policyArn: String, userName: String) { + self.policyArn = policyArn + self.userName = userName + } + + private enum CodingKeys: String, CodingKey { + case policyArn = "PolicyArn" + case userName = "UserName" + } + } + + public struct InstanceProfile: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceProfileName", required: true, type: .string), + AWSShapeMember(label: "CreateDate", required: true, type: .timestamp), + AWSShapeMember(label: "Arn", required: true, type: .string), + AWSShapeMember(label: "Roles", required: true, type: .list), + AWSShapeMember(label: "InstanceProfileId", required: true, type: .string), + AWSShapeMember(label: "Path", required: true, type: .string) + ] + /// The name identifying the instance profile. + public let instanceProfileName: String + /// The date when the instance profile was created. + public let createDate: TimeStamp + /// The Amazon Resource Name (ARN) specifying the instance profile. For more information about ARNs and how to use them in policies, see IAM Identifiers in the Using IAM guide. + public let arn: String + /// The role associated with the instance profile. + public let roles: [Role] + /// The stable and unique string identifying the instance profile. For more information about IDs, see IAM Identifiers in the Using IAM guide. + public let instanceProfileId: String + /// The path to the instance profile. For more information about paths, see IAM Identifiers in the Using IAM guide. + public let path: String + + public init(instanceProfileName: String, createDate: TimeStamp, arn: String, roles: [Role], instanceProfileId: String, path: String) { + self.instanceProfileName = instanceProfileName + self.createDate = createDate + self.arn = arn + self.roles = roles + self.instanceProfileId = instanceProfileId + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case instanceProfileName = "InstanceProfileName" + case createDate = "CreateDate" + case arn = "Arn" + case roles = "Roles" + case instanceProfileId = "InstanceProfileId" + case path = "Path" + } + } + + public struct CreateServiceSpecificCredentialResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceSpecificCredential", required: false, type: .structure) + ] + /// A structure that contains information about the newly created service-specific credential. This is the only time that the password for this credential set is available. It cannot be recovered later. Instead, you will have to reset the password with ResetServiceSpecificCredential. + public let serviceSpecificCredential: ServiceSpecificCredential? + + public init(serviceSpecificCredential: ServiceSpecificCredential? = nil) { + self.serviceSpecificCredential = serviceSpecificCredential + } + + private enum CodingKeys: String, CodingKey { + case serviceSpecificCredential = "ServiceSpecificCredential" + } + } + + public struct GetGroupPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", required: true, type: .string), + AWSShapeMember(label: "PolicyName", required: true, type: .string) + ] + /// The name of the group the policy is associated with. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let groupName: String + /// The name of the policy document to get. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ + public let policyName: String + + public init(groupName: String, policyName: String) { + self.groupName = groupName + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + case policyName = "PolicyName" + } + } + + public struct ContextEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContextKeyValues", required: false, type: .list), + AWSShapeMember(label: "ContextKeyName", required: false, type: .string), + AWSShapeMember(label: "ContextKeyType", required: false, type: .enum) + ] + /// The value (or values, if the condition context key supports multiple values) to provide to the simulation for use when the key is referenced by a Condition element in an input policy. + public let contextKeyValues: [String]? + /// The full name of a condition context key, including the service prefix. For example, aws:SourceIp or s3:VersionId. + public let contextKeyName: String? + /// The data type of the value (or values) specified in the ContextKeyValues parameter. + public let contextKeyType: ContextKeyTypeEnum? + + public init(contextKeyValues: [String]? = nil, contextKeyName: String? = nil, contextKeyType: ContextKeyTypeEnum? = nil) { + self.contextKeyValues = contextKeyValues + self.contextKeyName = contextKeyName + self.contextKeyType = contextKeyType + } + + private enum CodingKeys: String, CodingKey { + case contextKeyValues = "ContextKeyValues" + case contextKeyName = "ContextKeyName" + case contextKeyType = "ContextKeyType" + } + } + + public struct GetSSHPublicKeyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SSHPublicKey", required: false, type: .structure) + ] + /// A structure containing details about the SSH public key. + public let sSHPublicKey: SSHPublicKey? + + public init(sSHPublicKey: SSHPublicKey? = nil) { + self.sSHPublicKey = sSHPublicKey + } + + private enum CodingKeys: String, CodingKey { + case sSHPublicKey = "SSHPublicKey" + } + } + + public struct AttachGroupPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyArn", required: true, type: .string), + AWSShapeMember(label: "GroupName", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let policyArn: String + /// The name (friendly name, not ARN) of the group to attach the policy to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let groupName: String + + public init(policyArn: String, groupName: String) { + self.policyArn = policyArn + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case policyArn = "PolicyArn" + case groupName = "GroupName" + } + } + + public struct ListEntitiesForPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EntityFilter", required: false, type: .enum), + AWSShapeMember(label: "MaxItems", required: false, type: .integer), + AWSShapeMember(label: "PolicyArn", required: true, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "PathPrefix", required: false, type: .string) + ] + /// The entity type to use for filtering the results. For example, when EntityFilter is Role, only the roles that are attached to the specified policy are returned. This parameter is optional. If it is not included, all attached entities (users, groups, and roles) are returned. The argument for this parameter must be one of the valid values listed below. + public let entityFilter: EntityType? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// The Amazon Resource Name (ARN) of the IAM policy for which you want the versions. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let policyArn: String + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all entities. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let pathPrefix: String? + + public init(entityFilter: EntityType? = nil, maxItems: Int32? = nil, policyArn: String, marker: String? = nil, pathPrefix: String? = nil) { + self.entityFilter = entityFilter + self.maxItems = maxItems + self.policyArn = policyArn + self.marker = marker + self.pathPrefix = pathPrefix + } + + private enum CodingKeys: String, CodingKey { + case entityFilter = "EntityFilter" + case maxItems = "MaxItems" + case policyArn = "PolicyArn" + case marker = "Marker" + case pathPrefix = "PathPrefix" + } + } + + public struct ListInstanceProfilesForRoleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "MaxItems", required: false, type: .integer), + AWSShapeMember(label: "RoleName", required: true, type: .string) + ] + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// The name of the role to list instance profiles for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + public let roleName: String + + public init(marker: String? = nil, maxItems: Int32? = nil, roleName: String) { + self.marker = marker + self.maxItems = maxItems + self.roleName = roleName + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case maxItems = "MaxItems" + case roleName = "RoleName" + } + } + + public struct ListAttachedRolePoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "AttachedPolicies", required: false, type: .list) + ] + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list of the attached policies. + public let attachedPolicies: [AttachedPolicy]? + + public init(marker: String? = nil, isTruncated: Bool? = nil, attachedPolicies: [AttachedPolicy]? = nil) { + self.marker = marker + self.isTruncated = isTruncated + self.attachedPolicies = attachedPolicies + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case isTruncated = "IsTruncated" + case attachedPolicies = "AttachedPolicies" + } + } + + public struct ListMFADevicesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "MFADevices", required: true, type: .list) + ] + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list of MFA devices. + public let mFADevices: [MFADevice] + + public init(marker: String? = nil, isTruncated: Bool? = nil, mFADevices: [MFADevice]) { + self.marker = marker + self.isTruncated = isTruncated + self.mFADevices = mFADevices + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case isTruncated = "IsTruncated" + case mFADevices = "MFADevices" + } + } + + public struct AccessKey: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "Status", required: true, type: .enum), + AWSShapeMember(label: "SecretAccessKey", required: true, type: .string), + AWSShapeMember(label: "AccessKeyId", required: true, type: .string) + ] + /// The date when the access key was created. + public let createDate: TimeStamp? + /// The name of the IAM user that the access key is associated with. + public let userName: String + /// The status of the access key. Active means the key is valid for API calls, while Inactive means it is not. + public let status: StatusType + /// The secret key used to sign requests. + public let secretAccessKey: String + /// The ID for this access key. + public let accessKeyId: String + + public init(createDate: TimeStamp? = nil, userName: String, status: StatusType, secretAccessKey: String, accessKeyId: String) { + self.createDate = createDate + self.userName = userName + self.status = status + self.secretAccessKey = secretAccessKey + self.accessKeyId = accessKeyId + } + + private enum CodingKeys: String, CodingKey { + case createDate = "CreateDate" + case userName = "UserName" + case status = "Status" + case secretAccessKey = "SecretAccessKey" + case accessKeyId = "AccessKeyId" + } + } + + public struct CreateUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "Path", required: false, type: .string) + ] + /// The name of the user to create. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-. User names are not distinguished by case. For example, you cannot create users named both "TESTUSER" and "testuser". + public let userName: String + /// The path for the user name. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let path: String? + + public init(userName: String, path: String? = nil) { + self.userName = userName + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case userName = "UserName" + case path = "Path" + } + } + + public struct AddRoleToInstanceProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceProfileName", required: true, type: .string), + AWSShapeMember(label: "RoleName", required: true, type: .string) + ] + /// The name of the instance profile to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let instanceProfileName: String + /// The name of the role to add. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + public let roleName: String + + public init(instanceProfileName: String, roleName: String) { + self.instanceProfileName = instanceProfileName + self.roleName = roleName + } + + private enum CodingKeys: String, CodingKey { + case instanceProfileName = "InstanceProfileName" + case roleName = "RoleName" + } + } + + public struct CreateInstanceProfileRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceProfileName", required: true, type: .string), + AWSShapeMember(label: "Path", required: false, type: .string) + ] + /// The name of the instance profile to create. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let instanceProfileName: String + /// The path to the instance profile. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let path: String? + + public init(instanceProfileName: String, path: String? = nil) { + self.instanceProfileName = instanceProfileName + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case instanceProfileName = "InstanceProfileName" + case path = "Path" + } + } + + public struct UploadSSHPublicKeyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SSHPublicKeyBody", required: true, type: .string), + AWSShapeMember(label: "UserName", required: true, type: .string) + ] + /// The SSH public key. The public key must be encoded in ssh-rsa format or PEM format. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let sSHPublicKeyBody: String + /// The name of the IAM user to associate the SSH public key with. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + + public init(sSHPublicKeyBody: String, userName: String) { + self.sSHPublicKeyBody = sSHPublicKeyBody + self.userName = userName + } + + private enum CodingKeys: String, CodingKey { + case sSHPublicKeyBody = "SSHPublicKeyBody" + case userName = "UserName" + } + } + + public struct DeleteUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: true, type: .string) + ] + /// The name of the user to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + + public init(userName: String) { + self.userName = userName + } + + private enum CodingKeys: String, CodingKey { + case userName = "UserName" + } + } + + public struct ListSSHPublicKeysRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "MaxItems", required: false, type: .integer) + ] + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// The name of the IAM user to list SSH public keys for. If none is specified, the UserName field is determined implicitly based on the AWS access key used to sign the request. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + + public init(marker: String? = nil, userName: String? = nil, maxItems: Int32? = nil) { + self.marker = marker + self.userName = userName + self.maxItems = maxItems + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case userName = "UserName" + case maxItems = "MaxItems" + } + } + + public struct CreateLoginProfileResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LoginProfile", required: true, type: .structure) + ] + /// A structure containing the user name and password create date. + public let loginProfile: LoginProfile + + public init(loginProfile: LoginProfile) { + self.loginProfile = loginProfile + } + + private enum CodingKeys: String, CodingKey { + case loginProfile = "LoginProfile" + } + } + + public struct SimulateCustomPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxItems", required: false, type: .integer), + AWSShapeMember(label: "ActionNames", required: true, type: .list), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "PolicyInputList", required: true, type: .list), + AWSShapeMember(label: "ResourceHandlingOption", required: false, type: .string), + AWSShapeMember(label: "ResourceArns", required: false, type: .list), + AWSShapeMember(label: "CallerArn", required: false, type: .string), + AWSShapeMember(label: "ResourceOwner", required: false, type: .string), + AWSShapeMember(label: "ResourcePolicy", required: false, type: .string), + AWSShapeMember(label: "ContextEntries", required: false, type: .list) + ] + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// A list of names of API actions to evaluate in the simulation. Each action is evaluated against each resource. Each action must include the service identifier, such as iam:CreateUser. + public let actionNames: [String] + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// A list of policy documents to include in the simulation. Each document is specified as a string containing the complete, valid JSON text of an IAM policy. Do not include any resource-based policies in this parameter. Any resource-based policy must be submitted with the ResourcePolicy parameter. The policies cannot be "scope-down" policies, such as you could include in a call to GetFederationToken or one of the AssumeRole APIs to restrict what a user can do while using the temporary credentials. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let policyInputList: [String] + /// Specifies the type of simulation to run. Different APIs that support resource-based policies require different combinations of resources. By specifying the type of simulation to run, you enable the policy simulator to enforce the presence of the required resources to ensure reliable simulation results. If your simulation does not match one of the following scenarios, then you can omit this parameter. The following list shows each of the supported scenario values and the resources that you must define to run the simulation. Each of the EC2 scenarios requires that you specify instance, image, and security-group resources. If your scenario includes an EBS volume, then you must specify that volume as a resource. If the EC2 scenario includes VPC, then you must supply the network-interface resource. If it includes an IP subnet, then you must specify the subnet resource. For more information on the EC2 scenario options, see Supported Platforms in the AWS EC2 User Guide. EC2-Classic-InstanceStore instance, image, security-group EC2-Classic-EBS instance, image, security-group, volume EC2-VPC-InstanceStore instance, image, security-group, network-interface EC2-VPC-InstanceStore-Subnet instance, image, security-group, network-interface, subnet EC2-VPC-EBS instance, image, security-group, network-interface, volume EC2-VPC-EBS-Subnet instance, image, security-group, network-interface, subnet, volume + public let resourceHandlingOption: String? + /// A list of ARNs of AWS resources to include in the simulation. If this parameter is not provided then the value defaults to * (all resources). Each API in the ActionNames parameter is evaluated for each resource in this list. The simulation determines the access result (allowed or denied) of each combination and reports it in the response. The simulation does not automatically retrieve policies for the specified resources. If you want to include a resource policy in the simulation, then you must include the policy as a string in the ResourcePolicy parameter. If you include a ResourcePolicy, then it must be applicable to all of the resources included in the simulation or you receive an invalid input error. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let resourceArns: [String]? + /// The ARN of the IAM user that you want to use as the simulated caller of the APIs. CallerArn is required if you include a ResourcePolicy so that the policy's Principal element has a value to use in evaluating the policy. You can specify only the ARN of an IAM user. You cannot specify the ARN of an assumed role, federated user, or a service principal. + public let callerArn: String? + /// An AWS account ID that specifies the owner of any simulated resource that does not identify its owner in the resource ARN, such as an S3 bucket or object. If ResourceOwner is specified, it is also used as the account owner of any ResourcePolicy included in the simulation. If the ResourceOwner parameter is not specified, then the owner of the resources and the resource policy defaults to the account of the identity provided in CallerArn. This parameter is required only if you specify a resource-based policy and account that owns the resource is different from the account that owns the simulated calling user CallerArn. + public let resourceOwner: String? + /// A resource-based policy to include in the simulation provided as a string. Each resource in the simulation is treated as if it had this policy attached. You can include only one resource-based policy in a simulation. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let resourcePolicy: String? + /// A list of context keys and corresponding values for the simulation to use. Whenever a context key is evaluated in one of the simulated IAM permission policies, the corresponding value is supplied. + public let contextEntries: [ContextEntry]? + + public init(maxItems: Int32? = nil, actionNames: [String], marker: String? = nil, policyInputList: [String], resourceHandlingOption: String? = nil, resourceArns: [String]? = nil, callerArn: String? = nil, resourceOwner: String? = nil, resourcePolicy: String? = nil, contextEntries: [ContextEntry]? = nil) { + self.maxItems = maxItems + self.actionNames = actionNames + self.marker = marker + self.policyInputList = policyInputList + self.resourceHandlingOption = resourceHandlingOption + self.resourceArns = resourceArns + self.callerArn = callerArn + self.resourceOwner = resourceOwner + self.resourcePolicy = resourcePolicy + self.contextEntries = contextEntries + } + + private enum CodingKeys: String, CodingKey { + case maxItems = "MaxItems" + case actionNames = "ActionNames" + case marker = "Marker" + case policyInputList = "PolicyInputList" + case resourceHandlingOption = "ResourceHandlingOption" + case resourceArns = "ResourceArns" + case callerArn = "CallerArn" + case resourceOwner = "ResourceOwner" + case resourcePolicy = "ResourcePolicy" + case contextEntries = "ContextEntries" + } + } + + public struct RoleDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttachedManagedPolicies", required: false, type: .list), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "AssumeRolePolicyDocument", required: false, type: .string), + AWSShapeMember(label: "Path", required: false, type: .string), + AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), + AWSShapeMember(label: "RoleId", required: false, type: .string), + AWSShapeMember(label: "RoleName", required: false, type: .string), + AWSShapeMember(label: "RolePolicyList", required: false, type: .list), + AWSShapeMember(label: "InstanceProfileList", required: false, type: .list) + ] + /// A list of managed policies attached to the role. These policies are the role's access (permissions) policies. + public let attachedManagedPolicies: [AttachedPolicy]? + public let arn: String? + /// The trust policy that grants permission to assume the role. + public let assumeRolePolicyDocument: String? + /// The path to the role. For more information about paths, see IAM Identifiers in the Using IAM guide. + public let path: String? + /// The date and time, in ISO 8601 date-time format, when the role was created. + public let createDate: TimeStamp? + /// The stable and unique string identifying the role. For more information about IDs, see IAM Identifiers in the Using IAM guide. + public let roleId: String? + /// The friendly name that identifies the role. + public let roleName: String? + /// A list of inline policies embedded in the role. These policies are the role's access (permissions) policies. + public let rolePolicyList: [PolicyDetail]? + /// A list of instance profiles that contain this role. + public let instanceProfileList: [InstanceProfile]? + + public init(attachedManagedPolicies: [AttachedPolicy]? = nil, arn: String? = nil, assumeRolePolicyDocument: String? = nil, path: String? = nil, createDate: TimeStamp? = nil, roleId: String? = nil, roleName: String? = nil, rolePolicyList: [PolicyDetail]? = nil, instanceProfileList: [InstanceProfile]? = nil) { + self.attachedManagedPolicies = attachedManagedPolicies + self.arn = arn + self.assumeRolePolicyDocument = assumeRolePolicyDocument + self.path = path + self.createDate = createDate + self.roleId = roleId + self.roleName = roleName + self.rolePolicyList = rolePolicyList + self.instanceProfileList = instanceProfileList + } + + private enum CodingKeys: String, CodingKey { + case attachedManagedPolicies = "AttachedManagedPolicies" + case arn = "Arn" + case assumeRolePolicyDocument = "AssumeRolePolicyDocument" + case path = "Path" + case createDate = "CreateDate" + case roleId = "RoleId" + case roleName = "RoleName" + case rolePolicyList = "RolePolicyList" + case instanceProfileList = "InstanceProfileList" + } + } + + public struct GetAccountSummaryResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SummaryMap", required: false, type: .map) + ] + /// A set of key value pairs containing information about IAM entity usage and IAM quotas. + public let summaryMap: [SummaryKeyType: Int32]? + + public init(summaryMap: [SummaryKeyType: Int32]? = nil) { + self.summaryMap = summaryMap + } + + private enum CodingKeys: String, CodingKey { + case summaryMap = "SummaryMap" + } + } + + public struct GetGroupPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", required: true, type: .string), + AWSShapeMember(label: "PolicyDocument", required: true, type: .string), + AWSShapeMember(label: "PolicyName", required: true, type: .string) + ] + /// The group the policy is associated with. + public let groupName: String + /// The policy document. + public let policyDocument: String + /// The name of the policy. + public let policyName: String + + public init(groupName: String, policyDocument: String, policyName: String) { + self.groupName = groupName + self.policyDocument = policyDocument + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + case policyDocument = "PolicyDocument" + case policyName = "PolicyName" + } + } + + public struct PutRolePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleName", required: true, type: .string), + AWSShapeMember(label: "PolicyDocument", required: true, type: .string), + AWSShapeMember(label: "PolicyName", required: true, type: .string) + ] + /// The name of the role to associate the policy with. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + public let roleName: String + /// The policy document. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let policyDocument: String + /// The name of the policy document. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ + public let policyName: String + + public init(roleName: String, policyDocument: String, policyName: String) { + self.roleName = roleName + self.policyDocument = policyDocument + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case roleName = "RoleName" + case policyDocument = "PolicyDocument" + case policyName = "PolicyName" + } + } + + public struct CreatePolicyVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyArn", required: true, type: .string), + AWSShapeMember(label: "PolicyDocument", required: true, type: .string), + AWSShapeMember(label: "SetAsDefault", required: false, type: .boolean) + ] + /// The Amazon Resource Name (ARN) of the IAM policy to which you want to add a new version. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let policyArn: String + /// The JSON policy document that you want to use as the content for this new version of the policy. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). + public let policyDocument: String + /// Specifies whether to set this version as the policy's default version. When this parameter is true, the new policy version becomes the operative version; that is, the version that is in effect for the IAM users, groups, and roles that the policy is attached to. For more information about managed policy versions, see Versioning for Managed Policies in the IAM User Guide. + public let setAsDefault: Bool? + + public init(policyArn: String, policyDocument: String, setAsDefault: Bool? = nil) { + self.policyArn = policyArn + self.policyDocument = policyDocument + self.setAsDefault = setAsDefault + } + + private enum CodingKeys: String, CodingKey { + case policyArn = "PolicyArn" + case policyDocument = "PolicyDocument" + case setAsDefault = "SetAsDefault" + } + } + + public struct Position: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Line", required: false, type: .integer), + AWSShapeMember(label: "Column", required: false, type: .integer) + ] + /// The line containing the specified position in the document. + public let line: Int32? + /// The column in the line containing the specified position in the document. + public let column: Int32? + + public init(line: Int32? = nil, column: Int32? = nil) { + self.line = line + self.column = column + } + + private enum CodingKeys: String, CodingKey { + case line = "Line" + case column = "Column" + } + } + + public struct UpdateUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NewPath", required: false, type: .string), + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "NewUserName", required: false, type: .string) + ] + /// New path for the IAM user. Include this parameter only if you're changing the user's path. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let newPath: String? + /// Name of the user to update. If you're changing the name of the user, this is the original user name. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String + /// New name for the user. Include this parameter only if you're changing the user's name. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let newUserName: String? + + public init(newPath: String? = nil, userName: String, newUserName: String? = nil) { + self.newPath = newPath + self.userName = userName + self.newUserName = newUserName + } + + private enum CodingKeys: String, CodingKey { + case newPath = "NewPath" + case userName = "UserName" + case newUserName = "NewUserName" + } + } + + public enum PolicySourceType: String, CustomStringConvertible, Codable { + case user = "user" + case group = "group" + case role = "role" + case awsManaged = "aws-managed" + case userManaged = "user-managed" + case resource = "resource" + case none = "none" + public var description: String { return self.rawValue } + } + + public struct PasswordPolicy: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RequireNumbers", required: false, type: .boolean), + AWSShapeMember(label: "ExpirePasswords", required: false, type: .boolean), + AWSShapeMember(label: "MaxPasswordAge", required: false, type: .integer), + AWSShapeMember(label: "MinimumPasswordLength", required: false, type: .integer), + AWSShapeMember(label: "RequireLowercaseCharacters", required: false, type: .boolean), + AWSShapeMember(label: "PasswordReusePrevention", required: false, type: .integer), + AWSShapeMember(label: "RequireSymbols", required: false, type: .boolean), + AWSShapeMember(label: "RequireUppercaseCharacters", required: false, type: .boolean), + AWSShapeMember(label: "HardExpiry", required: false, type: .boolean), + AWSShapeMember(label: "AllowUsersToChangePassword", required: false, type: .boolean) + ] + /// Specifies whether to require numbers for IAM user passwords. + public let requireNumbers: Bool? + /// Indicates whether passwords in the account expire. Returns true if MaxPasswordAge is contains a value greater than 0. Returns false if MaxPasswordAge is 0 or not present. + public let expirePasswords: Bool? + /// The number of days that an IAM user password is valid. + public let maxPasswordAge: Int32? + /// Minimum length to require for IAM user passwords. + public let minimumPasswordLength: Int32? + /// Specifies whether to require lowercase characters for IAM user passwords. + public let requireLowercaseCharacters: Bool? + /// Specifies the number of previous passwords that IAM users are prevented from reusing. + public let passwordReusePrevention: Int32? + /// Specifies whether to require symbols for IAM user passwords. + public let requireSymbols: Bool? + /// Specifies whether to require uppercase characters for IAM user passwords. + public let requireUppercaseCharacters: Bool? + /// Specifies whether IAM users are prevented from setting a new password after their password has expired. + public let hardExpiry: Bool? + /// Specifies whether IAM users are allowed to change their own password. + public let allowUsersToChangePassword: Bool? + + public init(requireNumbers: Bool? = nil, expirePasswords: Bool? = nil, maxPasswordAge: Int32? = nil, minimumPasswordLength: Int32? = nil, requireLowercaseCharacters: Bool? = nil, passwordReusePrevention: Int32? = nil, requireSymbols: Bool? = nil, requireUppercaseCharacters: Bool? = nil, hardExpiry: Bool? = nil, allowUsersToChangePassword: Bool? = nil) { + self.requireNumbers = requireNumbers + self.expirePasswords = expirePasswords + self.maxPasswordAge = maxPasswordAge + self.minimumPasswordLength = minimumPasswordLength + self.requireLowercaseCharacters = requireLowercaseCharacters + self.passwordReusePrevention = passwordReusePrevention + self.requireSymbols = requireSymbols + self.requireUppercaseCharacters = requireUppercaseCharacters + self.hardExpiry = hardExpiry + self.allowUsersToChangePassword = allowUsersToChangePassword + } + + private enum CodingKeys: String, CodingKey { + case requireNumbers = "RequireNumbers" + case expirePasswords = "ExpirePasswords" + case maxPasswordAge = "MaxPasswordAge" + case minimumPasswordLength = "MinimumPasswordLength" + case requireLowercaseCharacters = "RequireLowercaseCharacters" + case passwordReusePrevention = "PasswordReusePrevention" + case requireSymbols = "RequireSymbols" + case requireUppercaseCharacters = "RequireUppercaseCharacters" + case hardExpiry = "HardExpiry" + case allowUsersToChangePassword = "AllowUsersToChangePassword" + } + } + + public struct CreateRoleResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Role", required: true, type: .structure) + ] + /// A structure containing details about the new role. + public let role: Role + + public init(role: Role) { + self.role = role } private enum CodingKeys: String, CodingKey { - case serverCertificateName = "ServerCertificateName" + case role = "Role" } } - public struct SimulatePolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListServerCertificatesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "EvaluationResults", required: false, type: .list) + AWSShapeMember(label: "MaxItems", required: false, type: .integer), + AWSShapeMember(label: "PathPrefix", required: false, type: .string) ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// The results of the simulation. - public let evaluationResults: [EvaluationResult]? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// The path prefix for filtering the results. For example: /company/servercerts would get all server certificates for which the path starts with /company/servercerts. This parameter is optional. If it is not included, it defaults to a slash (/), listing all server certificates. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let pathPrefix: String? - public init(marker: String? = nil, isTruncated: Bool? = nil, evaluationResults: [EvaluationResult]? = nil) { + public init(marker: String? = nil, maxItems: Int32? = nil, pathPrefix: String? = nil) { self.marker = marker - self.isTruncated = isTruncated - self.evaluationResults = evaluationResults + self.maxItems = maxItems + self.pathPrefix = pathPrefix } private enum CodingKeys: String, CodingKey { case marker = "Marker" - case isTruncated = "IsTruncated" - case evaluationResults = "EvaluationResults" - } - } - - public struct GetUserPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "PolicyDocument", required: true, type: .string), - AWSShapeMember(label: "PolicyName", required: true, type: .string) - ] - /// The user the policy is associated with. - public let userName: String - /// The policy document. - public let policyDocument: String - /// The name of the policy. - public let policyName: String - - public init(userName: String, policyDocument: String, policyName: String) { - self.userName = userName - self.policyDocument = policyDocument - self.policyName = policyName - } - - private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case policyDocument = "PolicyDocument" - case policyName = "PolicyName" + case maxItems = "MaxItems" + case pathPrefix = "PathPrefix" } } - public struct DeletePolicyVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct SetDefaultPolicyVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyArn", required: true, type: .string), AWSShapeMember(label: "VersionId", required: true, type: .string) ] - /// The Amazon Resource Name (ARN) of the IAM policy from which you want to delete a version. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + /// The Amazon Resource Name (ARN) of the IAM policy whose default version you want to set. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. public let policyArn: String - /// The policy version to delete. This parameter allows (per its regex pattern) a string of characters that consists of the lowercase letter 'v' followed by one or two digits, and optionally followed by a period '.' and a string of letters and digits. For more information about managed policy versions, see Versioning for Managed Policies in the IAM User Guide. + /// The version of the policy to set as the default (operative) version. For more information about managed policy versions, see Versioning for Managed Policies in the IAM User Guide. public let versionId: String public init(policyArn: String, versionId: String) { @@ -2393,268 +3450,225 @@ extension Iam { } } - public struct SAMLProviderListEntry: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "ValidUntil", required: false, type: .timestamp) - ] - /// The date and time when the SAML provider was created. - public let createDate: TimeStamp? - /// The Amazon Resource Name (ARN) of the SAML provider. - public let arn: String? - /// The expiration date and time for the SAML provider. - public let validUntil: TimeStamp? - - public init(createDate: TimeStamp? = nil, arn: String? = nil, validUntil: TimeStamp? = nil) { - self.createDate = createDate - self.arn = arn - self.validUntil = validUntil - } - - private enum CodingKeys: String, CodingKey { - case createDate = "CreateDate" - case arn = "Arn" - case validUntil = "ValidUntil" - } - } - - public struct UpdateSAMLProviderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SAMLProviderArn", required: false, type: .string) + public struct ListPoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "Policies", required: false, type: .list), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) ] - /// The Amazon Resource Name (ARN) of the SAML provider that was updated. - public let sAMLProviderArn: String? + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A list of policies. + public let policies: [Policy]? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? - public init(sAMLProviderArn: String? = nil) { - self.sAMLProviderArn = sAMLProviderArn + public init(marker: String? = nil, policies: [Policy]? = nil, isTruncated: Bool? = nil) { + self.marker = marker + self.policies = policies + self.isTruncated = isTruncated } private enum CodingKeys: String, CodingKey { - case sAMLProviderArn = "SAMLProviderArn" + case marker = "Marker" + case policies = "Policies" + case isTruncated = "IsTruncated" } } - public struct GetContextKeysForPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ContextKeyNames", required: false, type: .list) + public struct ServiceSpecificCredential: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceSpecificCredentialId", required: true, type: .string), + AWSShapeMember(label: "UserName", required: true, type: .string), + AWSShapeMember(label: "Status", required: true, type: .enum), + AWSShapeMember(label: "ServiceUserName", required: true, type: .string), + AWSShapeMember(label: "ServiceName", required: true, type: .string), + AWSShapeMember(label: "CreateDate", required: true, type: .timestamp), + AWSShapeMember(label: "ServicePassword", required: true, type: .string) ] - /// The list of context keys that are referenced in the input policies. - public let contextKeyNames: [String]? + /// The unique identifier for the service-specific credential. + public let serviceSpecificCredentialId: String + /// The name of the IAM user associated with the service-specific credential. + public let userName: String + /// The status of the service-specific credential. Active means the key is valid for API calls, while Inactive means it is not. + public let status: StatusType + /// The generated user name for the service-specific credential. This value is generated by combining the IAM user's name combined with the ID number of the AWS account, as in jane-at-123456789012, for example. This value cannot be configured by the user. + public let serviceUserName: String + /// The name of the service associated with the service-specific credential. + public let serviceName: String + /// The date and time, in ISO 8601 date-time format, when the service-specific credential were created. + public let createDate: TimeStamp + /// The generated password for the service-specific credential. + public let servicePassword: String - public init(contextKeyNames: [String]? = nil) { - self.contextKeyNames = contextKeyNames + public init(serviceSpecificCredentialId: String, userName: String, status: StatusType, serviceUserName: String, serviceName: String, createDate: TimeStamp, servicePassword: String) { + self.serviceSpecificCredentialId = serviceSpecificCredentialId + self.userName = userName + self.status = status + self.serviceUserName = serviceUserName + self.serviceName = serviceName + self.createDate = createDate + self.servicePassword = servicePassword } private enum CodingKeys: String, CodingKey { - case contextKeyNames = "ContextKeyNames" + case serviceSpecificCredentialId = "ServiceSpecificCredentialId" + case userName = "UserName" + case status = "Status" + case serviceUserName = "ServiceUserName" + case serviceName = "ServiceName" + case createDate = "CreateDate" + case servicePassword = "ServicePassword" } } - public struct CreateAccountAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountAlias", required: true, type: .string) - ] - /// The account alias to create. This parameter allows (per its regex pattern) a string of characters consisting of lowercase letters, digits, and dashes. You cannot start or finish with a dash, nor can you have two dashes in a row. - public let accountAlias: String - - public init(accountAlias: String) { - self.accountAlias = accountAlias - } + public struct ListSAMLProvidersRequest: AWSShape { - private enum CodingKeys: String, CodingKey { - case accountAlias = "AccountAlias" - } } - public struct EvaluationResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EvalDecision", required: true, type: .enum), - AWSShapeMember(label: "EvalDecisionDetails", required: false, type: .map), - AWSShapeMember(label: "EvalResourceName", required: false, type: .string), - AWSShapeMember(label: "MatchedStatements", required: false, type: .list), - AWSShapeMember(label: "EvalActionName", required: true, type: .string), - AWSShapeMember(label: "OrganizationsDecisionDetail", required: false, type: .structure), - AWSShapeMember(label: "MissingContextValues", required: false, type: .list), - AWSShapeMember(label: "ResourceSpecificResults", required: false, type: .list) + public struct ListAccountAliasesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "MaxItems", required: false, type: .integer) ] - /// The result of the simulation. - public let evalDecision: PolicyEvaluationDecisionType - /// Additional details about the results of the evaluation decision. When there are both IAM policies and resource policies, this parameter explains how each set of policies contributes to the final evaluation decision. When simulating cross-account access to a resource, both the resource-based policy and the caller's IAM policy must grant access. See How IAM Roles Differ from Resource-based Policies - public let evalDecisionDetails: [String: PolicyEvaluationDecisionType]? - /// The ARN of the resource that the indicated API action was tested on. - public let evalResourceName: String? - /// A list of the statements in the input policies that determine the result for this scenario. Remember that even if multiple statements allow the action on the resource, if only one statement denies that action, then the explicit deny overrides any allow, and the deny statement is the only entry included in the result. - public let matchedStatements: [Statement]? - /// The name of the API action tested on the indicated resource. - public let evalActionName: String - /// A structure that details how AWS Organizations and its service control policies affect the results of the simulation. Only applies if the simulated user's account is part of an organization. - public let organizationsDecisionDetail: OrganizationsDecisionDetail? - /// A list of context keys that are required by the included input policies but that were not provided by one of the input parameters. This list is used when the resource in a simulation is "*", either explicitly, or when the ResourceArns parameter blank. If you include a list of resources, then any missing context values are instead included under the ResourceSpecificResults section. To discover the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy. - public let missingContextValues: [String]? - /// The individual results of the simulation of the API action specified in EvalActionName on each resource. - public let resourceSpecificResults: [ResourceSpecificResult]? + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? - public init(evalDecision: PolicyEvaluationDecisionType, evalDecisionDetails: [String: PolicyEvaluationDecisionType]? = nil, evalResourceName: String? = nil, matchedStatements: [Statement]? = nil, evalActionName: String, organizationsDecisionDetail: OrganizationsDecisionDetail? = nil, missingContextValues: [String]? = nil, resourceSpecificResults: [ResourceSpecificResult]? = nil) { - self.evalDecision = evalDecision - self.evalDecisionDetails = evalDecisionDetails - self.evalResourceName = evalResourceName - self.matchedStatements = matchedStatements - self.evalActionName = evalActionName - self.organizationsDecisionDetail = organizationsDecisionDetail - self.missingContextValues = missingContextValues - self.resourceSpecificResults = resourceSpecificResults + public init(marker: String? = nil, maxItems: Int32? = nil) { + self.marker = marker + self.maxItems = maxItems } private enum CodingKeys: String, CodingKey { - case evalDecision = "EvalDecision" - case evalDecisionDetails = "EvalDecisionDetails" - case evalResourceName = "EvalResourceName" - case matchedStatements = "MatchedStatements" - case evalActionName = "EvalActionName" - case organizationsDecisionDetail = "OrganizationsDecisionDetail" - case missingContextValues = "MissingContextValues" - case resourceSpecificResults = "ResourceSpecificResults" + case marker = "Marker" + case maxItems = "MaxItems" } } - public struct ResourceSpecificResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MissingContextValues", required: false, type: .list), - AWSShapeMember(label: "EvalResourceDecision", required: true, type: .enum), - AWSShapeMember(label: "EvalDecisionDetails", required: false, type: .map), - AWSShapeMember(label: "MatchedStatements", required: false, type: .list), - AWSShapeMember(label: "EvalResourceName", required: true, type: .string) + public struct GetSAMLProviderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SAMLProviderArn", required: true, type: .string) ] - /// A list of context keys that are required by the included input policies but that were not provided by one of the input parameters. This list is used when a list of ARNs is included in the ResourceArns parameter instead of "*". If you do not specify individual resources, by setting ResourceArns to "*" or by not including the ResourceArns parameter, then any missing context values are instead included under the EvaluationResults section. To discover the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy. - public let missingContextValues: [String]? - /// The result of the simulation of the simulated API action on the resource specified in EvalResourceName. - public let evalResourceDecision: PolicyEvaluationDecisionType - /// Additional details about the results of the evaluation decision. When there are both IAM policies and resource policies, this parameter explains how each set of policies contributes to the final evaluation decision. When simulating cross-account access to a resource, both the resource-based policy and the caller's IAM policy must grant access. - public let evalDecisionDetails: [String: PolicyEvaluationDecisionType]? - /// A list of the statements in the input policies that determine the result for this part of the simulation. Remember that even if multiple statements allow the action on the resource, if any statement denies that action, then the explicit deny overrides any allow, and the deny statement is the only entry included in the result. - public let matchedStatements: [Statement]? - /// The name of the simulated resource, in Amazon Resource Name (ARN) format. - public let evalResourceName: String + /// The Amazon Resource Name (ARN) of the SAML provider resource object in IAM to get information about. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let sAMLProviderArn: String - public init(missingContextValues: [String]? = nil, evalResourceDecision: PolicyEvaluationDecisionType, evalDecisionDetails: [String: PolicyEvaluationDecisionType]? = nil, matchedStatements: [Statement]? = nil, evalResourceName: String) { - self.missingContextValues = missingContextValues - self.evalResourceDecision = evalResourceDecision - self.evalDecisionDetails = evalDecisionDetails - self.matchedStatements = matchedStatements - self.evalResourceName = evalResourceName + public init(sAMLProviderArn: String) { + self.sAMLProviderArn = sAMLProviderArn } - - private enum CodingKeys: String, CodingKey { - case missingContextValues = "MissingContextValues" - case evalResourceDecision = "EvalResourceDecision" - case evalDecisionDetails = "EvalDecisionDetails" - case matchedStatements = "MatchedStatements" - case evalResourceName = "EvalResourceName" + + private enum CodingKeys: String, CodingKey { + case sAMLProviderArn = "SAMLProviderArn" } } - public struct ListEntitiesForPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "PolicyUsers", required: false, type: .list), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "PolicyRoles", required: false, type: .list), - AWSShapeMember(label: "PolicyGroups", required: false, type: .list) + public struct GenerateCredentialReportResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "State", required: false, type: .enum), + AWSShapeMember(label: "Description", required: false, type: .string) ] - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of IAM users that the policy is attached to. - public let policyUsers: [PolicyUser]? - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A list of IAM roles that the policy is attached to. - public let policyRoles: [PolicyRole]? - /// A list of IAM groups that the policy is attached to. - public let policyGroups: [PolicyGroup]? + /// Information about the state of the credential report. + public let state: ReportStateType? + /// Information about the credential report. + public let description: String? - public init(isTruncated: Bool? = nil, policyUsers: [PolicyUser]? = nil, marker: String? = nil, policyRoles: [PolicyRole]? = nil, policyGroups: [PolicyGroup]? = nil) { - self.isTruncated = isTruncated - self.policyUsers = policyUsers - self.marker = marker - self.policyRoles = policyRoles - self.policyGroups = policyGroups + public init(state: ReportStateType? = nil, description: String? = nil) { + self.state = state + self.description = description } private enum CodingKeys: String, CodingKey { - case isTruncated = "IsTruncated" - case policyUsers = "PolicyUsers" - case marker = "Marker" - case policyRoles = "PolicyRoles" - case policyGroups = "PolicyGroups" + case state = "State" + case description = "Description" } } - public struct GetUserPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct SigningCertificate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CertificateId", required: true, type: .string), AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "PolicyName", required: true, type: .string) + AWSShapeMember(label: "Status", required: true, type: .enum), + AWSShapeMember(label: "UploadDate", required: false, type: .timestamp), + AWSShapeMember(label: "CertificateBody", required: true, type: .string) ] - /// The name of the user who the policy is associated with. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + /// The ID for the signing certificate. + public let certificateId: String + /// The name of the user the signing certificate is associated with. public let userName: String - /// The name of the policy document to get. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let policyName: String + /// The status of the signing certificate. Active means the key is valid for API calls, while Inactive means it is not. + public let status: StatusType + /// The date when the signing certificate was uploaded. + public let uploadDate: TimeStamp? + /// The contents of the signing certificate. + public let certificateBody: String - public init(userName: String, policyName: String) { + public init(certificateId: String, userName: String, status: StatusType, uploadDate: TimeStamp? = nil, certificateBody: String) { + self.certificateId = certificateId self.userName = userName - self.policyName = policyName + self.status = status + self.uploadDate = uploadDate + self.certificateBody = certificateBody } private enum CodingKeys: String, CodingKey { + case certificateId = "CertificateId" case userName = "UserName" - case policyName = "PolicyName" + case status = "Status" + case uploadDate = "UploadDate" + case certificateBody = "CertificateBody" } } - public struct CreateGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Path", required: false, type: .string), + public struct GetGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "MaxItems", required: false, type: .integer), AWSShapeMember(label: "GroupName", required: true, type: .string) ] - /// The path to the group. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let path: String? - /// The name of the group to create. Do not include the path in this value. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-. The group name must be unique within the account. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". + /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. + public let marker: String? + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// The name of the group. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- public let groupName: String - public init(path: String? = nil, groupName: String) { - self.path = path + public init(marker: String? = nil, maxItems: Int32? = nil, groupName: String) { + self.marker = marker + self.maxItems = maxItems self.groupName = groupName } private enum CodingKeys: String, CodingKey { - case path = "Path" + case marker = "Marker" + case maxItems = "MaxItems" case groupName = "GroupName" } } - public struct DeleteAccessKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "AccessKeyId", required: true, type: .string) + public struct AttachRolePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyArn", required: true, type: .string), + AWSShapeMember(label: "RoleName", required: true, type: .string) ] - /// The name of the user whose access key pair you want to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - /// The access key ID for the access key ID and secret access key you want to delete. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. - public let accessKeyId: String + /// The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let policyArn: String + /// The name (friendly name, not ARN) of the role to attach the policy to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + public let roleName: String - public init(userName: String? = nil, accessKeyId: String) { - self.userName = userName - self.accessKeyId = accessKeyId + public init(policyArn: String, roleName: String) { + self.policyArn = policyArn + self.roleName = roleName } private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case accessKeyId = "AccessKeyId" + case policyArn = "PolicyArn" + case roleName = "RoleName" } } public struct ListUserPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "UserName", required: true, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer) @@ -2679,148 +3693,259 @@ extension Iam { } } - public struct CreateLoginProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Password", required: true, type: .string), + public struct CreateServiceLinkedRoleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AWSServiceName", required: true, type: .string), + AWSShapeMember(label: "CustomSuffix", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The AWS service to which this role is attached. You use a string similar to a URL but without the http:// in front. For example: elasticbeanstalk.amazonaws.com + public let aWSServiceName: String + /// A string that you provide, which is combined with the service name to form the complete role name. If you make multiple requests for the same service, then you must supply a different CustomSuffix for each request. Otherwise the request fails with a duplicate role name error. For example, you could add -1 or -debug to the suffix. + public let customSuffix: String? + /// The description of the role. + public let description: String? + + public init(aWSServiceName: String, customSuffix: String? = nil, description: String? = nil) { + self.aWSServiceName = aWSServiceName + self.customSuffix = customSuffix + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case aWSServiceName = "AWSServiceName" + case customSuffix = "CustomSuffix" + case description = "Description" + } + } + + public struct CreateOpenIDConnectProviderRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Url", required: true, type: .string), + AWSShapeMember(label: "ThumbprintList", required: true, type: .list), + AWSShapeMember(label: "ClientIDList", required: false, type: .list) + ] + /// The URL of the identity provider. The URL must begin with "https://" and should correspond to the iss claim in the provider's OpenID Connect ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a host name, like "https://server.example.org" or "https://example.com". You cannot register the same provider multiple times in a single AWS account. If you try to submit a URL that has already been used for an OpenID Connect provider in the AWS account, you will get an error. + public let url: String + /// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). Typically this list includes only one entry. However, IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates. The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string. You must provide at least one thumbprint when creating an IAM OIDC provider. For example, if the OIDC provider is server.example.com and the provider stores its keys at "https://keys.server.example.com/openid-connect", the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com. For more information about obtaining the OIDC provider's thumbprint, see Obtaining the Thumbprint for an OpenID Connect Provider in the IAM User Guide. + public let thumbprintList: [String] + /// A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the client_id parameter on OAuth requests.) You can register multiple client IDs with the same provider. For example, you might have multiple applications that use the same OIDC provider. You cannot register more than 100 client IDs with a single IAM OIDC provider. There is no defined format for a client ID. The CreateOpenIDConnectProviderRequest action accepts client IDs up to 255 characters long. + public let clientIDList: [String]? + + public init(url: String, thumbprintList: [String], clientIDList: [String]? = nil) { + self.url = url + self.thumbprintList = thumbprintList + self.clientIDList = clientIDList + } + + private enum CodingKeys: String, CodingKey { + case url = "Url" + case thumbprintList = "ThumbprintList" + case clientIDList = "ClientIDList" + } + } + + public struct SimulatePolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "EvaluationResults", required: false, type: .list) + ] + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// The results of the simulation. + public let evaluationResults: [EvaluationResult]? + + public init(marker: String? = nil, isTruncated: Bool? = nil, evaluationResults: [EvaluationResult]? = nil) { + self.marker = marker + self.isTruncated = isTruncated + self.evaluationResults = evaluationResults + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case isTruncated = "IsTruncated" + case evaluationResults = "EvaluationResults" + } + } + + public struct GetUserPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "PasswordResetRequired", required: false, type: .boolean) + AWSShapeMember(label: "PolicyDocument", required: true, type: .string), + AWSShapeMember(label: "PolicyName", required: true, type: .string) ] - /// The new password for the user. The regex pattern used to validate this parameter is a string of characters consisting of almost any printable ASCII character from the space (\u0020) through the end of the ASCII character range (\u00FF). You can also include the tab (\u0009), line feed (\u000A), and carriage return (\u000D) characters. Although any of these characters are valid in a password, note that many tools, such as the AWS Management Console, might restrict the ability to enter certain characters because they have special meaning within that tool. - public let password: String - /// The name of the IAM user to create a password for. The user must already exist. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + /// The user the policy is associated with. public let userName: String - /// Specifies whether the user is required to set a new password on next sign-in. - public let passwordResetRequired: Bool? + /// The policy document. + public let policyDocument: String + /// The name of the policy. + public let policyName: String - public init(password: String, userName: String, passwordResetRequired: Bool? = nil) { - self.password = password + public init(userName: String, policyDocument: String, policyName: String) { self.userName = userName - self.passwordResetRequired = passwordResetRequired + self.policyDocument = policyDocument + self.policyName = policyName } private enum CodingKeys: String, CodingKey { - case password = "Password" case userName = "UserName" - case passwordResetRequired = "PasswordResetRequired" + case policyDocument = "PolicyDocument" + case policyName = "PolicyName" } } - public enum EntityType: String, CustomStringConvertible, Codable { - case user = "User" - case role = "Role" - case group = "Group" - case localmanagedpolicy = "LocalManagedPolicy" - case awsmanagedpolicy = "AWSManagedPolicy" - public var description: String { return self.rawValue } + public struct DeletePolicyVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyArn", required: true, type: .string), + AWSShapeMember(label: "VersionId", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the IAM policy from which you want to delete a version. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. + public let policyArn: String + /// The policy version to delete. This parameter allows (per its regex pattern) a string of characters that consists of the lowercase letter 'v' followed by one or two digits, and optionally followed by a period '.' and a string of letters and digits. For more information about managed policy versions, see Versioning for Managed Policies in the IAM User Guide. + public let versionId: String + + public init(policyArn: String, versionId: String) { + self.policyArn = policyArn + self.versionId = versionId + } + + private enum CodingKeys: String, CodingKey { + case policyArn = "PolicyArn" + case versionId = "VersionId" + } + } + + public struct DeleteServiceLinkedRoleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleName", required: true, type: .string) + ] + /// The name of the service-linked role to be deleted. + public let roleName: String + + public init(roleName: String) { + self.roleName = roleName + } + + private enum CodingKeys: String, CodingKey { + case roleName = "RoleName" + } } - public struct DeleteLoginProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string) + public struct DeleteAccessKeyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: false, type: .string), + AWSShapeMember(label: "AccessKeyId", required: true, type: .string) ] - /// The name of the user whose password you want to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String + /// The name of the user whose access key pair you want to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + /// The access key ID for the access key ID and secret access key you want to delete. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. + public let accessKeyId: String - public init(userName: String) { + public init(userName: String? = nil, accessKeyId: String) { self.userName = userName + self.accessKeyId = accessKeyId } private enum CodingKeys: String, CodingKey { case userName = "UserName" + case accessKeyId = "AccessKeyId" } } - public struct UploadSSHPublicKeyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SSHPublicKey", required: false, type: .structure) + public struct UpdateSAMLProviderResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SAMLProviderArn", required: false, type: .string) ] - /// Contains information about the SSH public key. - public let sSHPublicKey: SSHPublicKey? + /// The Amazon Resource Name (ARN) of the SAML provider that was updated. + public let sAMLProviderArn: String? - public init(sSHPublicKey: SSHPublicKey? = nil) { - self.sSHPublicKey = sSHPublicKey + public init(sAMLProviderArn: String? = nil) { + self.sAMLProviderArn = sAMLProviderArn } private enum CodingKeys: String, CodingKey { - case sSHPublicKey = "SSHPublicKey" + case sAMLProviderArn = "SAMLProviderArn" } } - public struct GetLoginProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string) + public struct ListEntitiesForPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "PolicyUsers", required: false, type: .list), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "PolicyRoles", required: false, type: .list), + AWSShapeMember(label: "PolicyGroups", required: false, type: .list) ] - /// The name of the user whose login profile you want to retrieve. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list of IAM users that the policy is attached to. + public let policyUsers: [PolicyUser]? + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A list of IAM roles that the policy is attached to. + public let policyRoles: [PolicyRole]? + /// A list of IAM groups that the policy is attached to. + public let policyGroups: [PolicyGroup]? - public init(userName: String) { - self.userName = userName + public init(isTruncated: Bool? = nil, policyUsers: [PolicyUser]? = nil, marker: String? = nil, policyRoles: [PolicyRole]? = nil, policyGroups: [PolicyGroup]? = nil) { + self.isTruncated = isTruncated + self.policyUsers = policyUsers + self.marker = marker + self.policyRoles = policyRoles + self.policyGroups = policyGroups } private enum CodingKeys: String, CodingKey { - case userName = "UserName" + case isTruncated = "IsTruncated" + case policyUsers = "PolicyUsers" + case marker = "Marker" + case policyRoles = "PolicyRoles" + case policyGroups = "PolicyGroups" } } - public struct GetAccountAuthorizationDetailsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "Filter", required: false, type: .list) + public struct UploadSSHPublicKeyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SSHPublicKey", required: false, type: .structure) ] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// A list of entity types used to filter the results. Only the entities that match the types you specify are included in the output. Use the value LocalManagedPolicy to include customer managed policies. The format for this parameter is a comma-separated (if more than one) list of strings. Each string value in the list must be one of the valid values listed below. - public let filter: [EntityType]? + /// Contains information about the SSH public key. + public let sSHPublicKey: SSHPublicKey? - public init(marker: String? = nil, maxItems: Int32? = nil, filter: [EntityType]? = nil) { - self.marker = marker - self.maxItems = maxItems - self.filter = filter + public init(sSHPublicKey: SSHPublicKey? = nil) { + self.sSHPublicKey = sSHPublicKey } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case maxItems = "MaxItems" - case filter = "Filter" + case sSHPublicKey = "SSHPublicKey" } } - public struct AccessKeyMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "Status", required: false, type: .enum), - AWSShapeMember(label: "AccessKeyId", required: false, type: .string) + public struct GetServiceLinkedRoleDeletionStatusResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Reason", required: false, type: .structure), + AWSShapeMember(label: "Status", required: true, type: .enum) ] - /// The date when the access key was created. - public let createDate: TimeStamp? - /// The name of the IAM user that the key is associated with. - public let userName: String? - /// The status of the access key. Active means the key is valid for API calls; Inactive means it is not. - public let status: StatusType? - /// The ID for this access key. - public let accessKeyId: String? + /// An object that contains details about the reason the deletion failed. + public let reason: DeletionTaskFailureReasonType? + /// The status of the deletion. + public let status: DeletionTaskStatusType - public init(createDate: TimeStamp? = nil, userName: String? = nil, status: StatusType? = nil, accessKeyId: String? = nil) { - self.createDate = createDate - self.userName = userName + public init(reason: DeletionTaskFailureReasonType? = nil, status: DeletionTaskStatusType) { + self.reason = reason self.status = status - self.accessKeyId = accessKeyId } private enum CodingKeys: String, CodingKey { - case createDate = "CreateDate" - case userName = "UserName" + case reason = "Reason" case status = "Status" - case accessKeyId = "AccessKeyId" } } public struct Statement: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourcePolicyType", required: false, type: .enum), AWSShapeMember(label: "StartPosition", required: false, type: .structure), AWSShapeMember(label: "SourcePolicyId", required: false, type: .string), @@ -2850,8 +3975,24 @@ extension Iam { } } + public struct GetUserResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "User", required: true, type: .structure) + ] + /// A structure containing details about the IAM user. + public let user: User + + public init(user: User) { + self.user = user + } + + private enum CodingKeys: String, CodingKey { + case user = "User" + } + } + public struct SimulatePrincipalPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", required: false, type: .integer), AWSShapeMember(label: "ActionNames", required: true, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -2916,24 +4057,8 @@ extension Iam { } } - public struct GetUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "User", required: true, type: .structure) - ] - /// A structure containing details about the IAM user. - public let user: User - - public init(user: User) { - self.user = user - } - - private enum CodingKeys: String, CodingKey { - case user = "User" - } - } - public struct RemoveClientIDFromOpenIDConnectProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientID", required: true, type: .string), AWSShapeMember(label: "OpenIDConnectProviderArn", required: true, type: .string) ] @@ -2954,7 +4079,7 @@ extension Iam { } public struct LoginProfile: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CreateDate", required: true, type: .timestamp), AWSShapeMember(label: "UserName", required: true, type: .string), AWSShapeMember(label: "PasswordResetRequired", required: false, type: .boolean) @@ -2986,71 +4111,29 @@ extension Iam { public var description: String { return self.rawValue } } - public struct ListAttachedUserPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "AttachedPolicies", required: false, type: .list) - ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of the attached policies. - public let attachedPolicies: [AttachedPolicy]? - - public init(marker: String? = nil, isTruncated: Bool? = nil, attachedPolicies: [AttachedPolicy]? = nil) { - self.marker = marker - self.isTruncated = isTruncated - self.attachedPolicies = attachedPolicies - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case isTruncated = "IsTruncated" - case attachedPolicies = "AttachedPolicies" - } - } - - public struct RemoveRoleFromInstanceProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceProfileName", required: true, type: .string), - AWSShapeMember(label: "RoleName", required: true, type: .string) - ] - /// The name of the instance profile to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let instanceProfileName: String - /// The name of the role to remove. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- - public let roleName: String - - public init(instanceProfileName: String, roleName: String) { - self.instanceProfileName = instanceProfileName - self.roleName = roleName - } - - private enum CodingKeys: String, CodingKey { - case instanceProfileName = "InstanceProfileName" - case roleName = "RoleName" - } - } - - public struct UpdateRoleDescriptionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Role", required: false, type: .structure) + public struct DeletionTaskFailureReasonType: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Reason", required: false, type: .string), + AWSShapeMember(label: "RoleUsageList", required: false, type: .list) ] - /// A structure that contains details about the modified role. - public let role: Role? + /// A short description of the reason that the service-linked role deletion failed. + public let reason: String? + /// A list of objects that contains details about the service-linked role deletion failure. If the service-linked role has active sessions or if any resources that were used by the role have not been deleted from the linked service, the role can't be deleted. This parameter includes a list of the resources that are associated with the role and the region in which the resources are being used. + public let roleUsageList: [RoleUsageType]? - public init(role: Role? = nil) { - self.role = role + public init(reason: String? = nil, roleUsageList: [RoleUsageType]? = nil) { + self.reason = reason + self.roleUsageList = roleUsageList } private enum CodingKeys: String, CodingKey { - case role = "Role" + case reason = "Reason" + case roleUsageList = "RoleUsageList" } } public struct CreateSAMLProviderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SAMLProviderArn", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the new SAML provider resource in IAM. @@ -3066,7 +4149,7 @@ extension Iam { } public struct CreateVirtualMFADeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VirtualMFADeviceName", required: true, type: .string), AWSShapeMember(label: "Path", required: false, type: .string) ] @@ -3081,81 +4164,13 @@ extension Iam { } private enum CodingKeys: String, CodingKey { - case virtualMFADeviceName = "VirtualMFADeviceName" - case path = "Path" - } - } - - public struct EnableMFADeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "AuthenticationCode1", required: true, type: .string), - AWSShapeMember(label: "SerialNumber", required: true, type: .string), - AWSShapeMember(label: "AuthenticationCode2", required: true, type: .string) - ] - /// The name of the IAM user for whom you want to enable the MFA device. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - /// An authentication code emitted by the device. The format for this parameter is a string of 6 digits. Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can resync the device. - public let authenticationCode1: String - /// The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/- - public let serialNumber: String - /// A subsequent authentication code emitted by the device. The format for this parameter is a string of 6 digits. Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can resync the device. - public let authenticationCode2: String - - public init(userName: String, authenticationCode1: String, serialNumber: String, authenticationCode2: String) { - self.userName = userName - self.authenticationCode1 = authenticationCode1 - self.serialNumber = serialNumber - self.authenticationCode2 = authenticationCode2 - } - - private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case authenticationCode1 = "AuthenticationCode1" - case serialNumber = "SerialNumber" - case authenticationCode2 = "AuthenticationCode2" - } - } - - public struct UpdateAssumeRolePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyDocument", required: true, type: .string), - AWSShapeMember(label: "RoleName", required: true, type: .string) - ] - /// The policy that grants an entity permission to assume the role. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let policyDocument: String - /// The name of the role to update with the new policy. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- - public let roleName: String - - public init(policyDocument: String, roleName: String) { - self.policyDocument = policyDocument - self.roleName = roleName - } - - private enum CodingKeys: String, CodingKey { - case policyDocument = "PolicyDocument" - case roleName = "RoleName" - } - } - - public struct ListSAMLProvidersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SAMLProviderList", required: false, type: .list) - ] - /// The list of SAML provider resource objects defined in IAM for this AWS account. - public let sAMLProviderList: [SAMLProviderListEntry]? - - public init(sAMLProviderList: [SAMLProviderListEntry]? = nil) { - self.sAMLProviderList = sAMLProviderList - } - - private enum CodingKeys: String, CodingKey { - case sAMLProviderList = "SAMLProviderList" + case virtualMFADeviceName = "VirtualMFADeviceName" + case path = "Path" } } public struct ServiceSpecificCredentialMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceSpecificCredentialId", required: true, type: .string), AWSShapeMember(label: "UserName", required: true, type: .string), AWSShapeMember(label: "Status", required: true, type: .enum), @@ -3195,138 +4210,8 @@ extension Iam { } } - public struct SSHPublicKey: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SSHPublicKeyBody", required: true, type: .string), - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "Status", required: true, type: .enum), - AWSShapeMember(label: "Fingerprint", required: true, type: .string), - AWSShapeMember(label: "UploadDate", required: false, type: .timestamp), - AWSShapeMember(label: "SSHPublicKeyId", required: true, type: .string) - ] - /// The SSH public key. - public let sSHPublicKeyBody: String - /// The name of the IAM user associated with the SSH public key. - public let userName: String - /// The status of the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. - public let status: StatusType - /// The MD5 message digest of the SSH public key. - public let fingerprint: String - /// The date and time, in ISO 8601 date-time format, when the SSH public key was uploaded. - public let uploadDate: TimeStamp? - /// The unique identifier for the SSH public key. - public let sSHPublicKeyId: String - - public init(sSHPublicKeyBody: String, userName: String, status: StatusType, fingerprint: String, uploadDate: TimeStamp? = nil, sSHPublicKeyId: String) { - self.sSHPublicKeyBody = sSHPublicKeyBody - self.userName = userName - self.status = status - self.fingerprint = fingerprint - self.uploadDate = uploadDate - self.sSHPublicKeyId = sSHPublicKeyId - } - - private enum CodingKeys: String, CodingKey { - case sSHPublicKeyBody = "SSHPublicKeyBody" - case userName = "UserName" - case status = "Status" - case fingerprint = "Fingerprint" - case uploadDate = "UploadDate" - case sSHPublicKeyId = "SSHPublicKeyId" - } - } - - public struct AccessKeyLastUsed: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LastUsedDate", required: true, type: .timestamp), - AWSShapeMember(label: "Region", required: true, type: .string), - AWSShapeMember(label: "ServiceName", required: true, type: .string) - ] - /// The date and time, in ISO 8601 date-time format, when the access key was most recently used. This field is null when: The user does not have an access key. An access key exists but has never been used, at least not since IAM started tracking this information on April 22nd, 2015. There is no sign-in data associated with the user - public let lastUsedDate: TimeStamp - /// The AWS region where this access key was most recently used. This field is displays "N/A" when: The user does not have an access key. An access key exists but has never been used, at least not since IAM started tracking this information on April 22nd, 2015. There is no sign-in data associated with the user For more information about AWS regions, see Regions and Endpoints in the Amazon Web Services General Reference. - public let region: String - /// The name of the AWS service with which this access key was most recently used. This field displays "N/A" when: The user does not have an access key. An access key exists but has never been used, at least not since IAM started tracking this information on April 22nd, 2015. There is no sign-in data associated with the user - public let serviceName: String - - public init(lastUsedDate: TimeStamp, region: String, serviceName: String) { - self.lastUsedDate = lastUsedDate - self.region = region - self.serviceName = serviceName - } - - private enum CodingKeys: String, CodingKey { - case lastUsedDate = "LastUsedDate" - case region = "Region" - case serviceName = "ServiceName" - } - } - - public struct ResetServiceSpecificCredentialRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ServiceSpecificCredentialId", required: true, type: .string), - AWSShapeMember(label: "UserName", required: false, type: .string) - ] - /// The unique identifier of the service-specific credential. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. - public let serviceSpecificCredentialId: String - /// The name of the IAM user associated with the service-specific credential. If this value is not specified, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - - public init(serviceSpecificCredentialId: String, userName: String? = nil) { - self.serviceSpecificCredentialId = serviceSpecificCredentialId - self.userName = userName - } - - private enum CodingKeys: String, CodingKey { - case serviceSpecificCredentialId = "ServiceSpecificCredentialId" - case userName = "UserName" - } - } - - public struct ListPolicyVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyArn", required: true, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer) - ] - /// The Amazon Resource Name (ARN) of the IAM policy for which you want the versions. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let policyArn: String - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - - public init(policyArn: String, marker: String? = nil, maxItems: Int32? = nil) { - self.policyArn = policyArn - self.marker = marker - self.maxItems = maxItems - } - - private enum CodingKeys: String, CodingKey { - case policyArn = "PolicyArn" - case marker = "Marker" - case maxItems = "MaxItems" - } - } - - public struct GetLoginProfileResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LoginProfile", required: true, type: .structure) - ] - /// A structure containing the user name and password create date for the user. - public let loginProfile: LoginProfile - - public init(loginProfile: LoginProfile) { - self.loginProfile = loginProfile - } - - private enum CodingKeys: String, CodingKey { - case loginProfile = "LoginProfile" - } - } - public struct ManagedPolicyDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "PolicyId", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), @@ -3390,122 +4275,107 @@ extension Iam { } } - public struct GetAccountAuthorizationDetailsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleDetailList", required: false, type: .list), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "Policies", required: false, type: .list), - AWSShapeMember(label: "UserDetailList", required: false, type: .list), - AWSShapeMember(label: "GroupDetailList", required: false, type: .list), - AWSShapeMember(label: "Marker", required: false, type: .string) + public struct AccessKeyLastUsed: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastUsedDate", required: true, type: .timestamp), + AWSShapeMember(label: "Region", required: true, type: .string), + AWSShapeMember(label: "ServiceName", required: true, type: .string) ] - /// A list containing information about IAM roles. - public let roleDetailList: [RoleDetail]? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list containing information about managed policies. - public let policies: [ManagedPolicyDetail]? - /// A list containing information about IAM users. - public let userDetailList: [UserDetail]? - /// A list containing information about IAM groups. - public let groupDetailList: [GroupDetail]? - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? + /// The date and time, in ISO 8601 date-time format, when the access key was most recently used. This field is null when: The user does not have an access key. An access key exists but has never been used, at least not since IAM started tracking this information on April 22nd, 2015. There is no sign-in data associated with the user + public let lastUsedDate: TimeStamp + /// The AWS region where this access key was most recently used. This field is displays "N/A" when: The user does not have an access key. An access key exists but has never been used, at least not since IAM started tracking this information on April 22nd, 2015. There is no sign-in data associated with the user For more information about AWS regions, see Regions and Endpoints in the Amazon Web Services General Reference. + public let region: String + /// The name of the AWS service with which this access key was most recently used. This field displays "N/A" when: The user does not have an access key. An access key exists but has never been used, at least not since IAM started tracking this information on April 22nd, 2015. There is no sign-in data associated with the user + public let serviceName: String - public init(roleDetailList: [RoleDetail]? = nil, isTruncated: Bool? = nil, policies: [ManagedPolicyDetail]? = nil, userDetailList: [UserDetail]? = nil, groupDetailList: [GroupDetail]? = nil, marker: String? = nil) { - self.roleDetailList = roleDetailList - self.isTruncated = isTruncated - self.policies = policies - self.userDetailList = userDetailList - self.groupDetailList = groupDetailList - self.marker = marker + public init(lastUsedDate: TimeStamp, region: String, serviceName: String) { + self.lastUsedDate = lastUsedDate + self.region = region + self.serviceName = serviceName } private enum CodingKeys: String, CodingKey { - case roleDetailList = "RoleDetailList" - case isTruncated = "IsTruncated" - case policies = "Policies" - case userDetailList = "UserDetailList" - case groupDetailList = "GroupDetailList" - case marker = "Marker" + case lastUsedDate = "LastUsedDate" + case region = "Region" + case serviceName = "ServiceName" } } - public struct ListUsersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Users", required: true, type: .list), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) + public struct ListSAMLProvidersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SAMLProviderList", required: false, type: .list) ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A list of users. - public let users: [User] - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? + /// The list of SAML provider resource objects defined in IAM for this AWS account. + public let sAMLProviderList: [SAMLProviderListEntry]? - public init(marker: String? = nil, users: [User], isTruncated: Bool? = nil) { - self.marker = marker - self.users = users - self.isTruncated = isTruncated + public init(sAMLProviderList: [SAMLProviderListEntry]? = nil) { + self.sAMLProviderList = sAMLProviderList } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case users = "Users" - case isTruncated = "IsTruncated" + case sAMLProviderList = "SAMLProviderList" } } - public struct PolicyVersion: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CreateDate", required: false, type: .timestamp), - AWSShapeMember(label: "VersionId", required: false, type: .string), - AWSShapeMember(label: "Document", required: false, type: .string), - AWSShapeMember(label: "IsDefaultVersion", required: false, type: .boolean) + public struct GetLoginProfileResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LoginProfile", required: true, type: .structure) ] - /// The date and time, in ISO 8601 date-time format, when the policy version was created. - public let createDate: TimeStamp? - /// The identifier for the policy version. Policy version identifiers always begin with v (always lowercase). When a policy is created, the first policy version is v1. - public let versionId: String? - /// The policy document. The policy document is returned in the response to the GetPolicyVersion and GetAccountAuthorizationDetails operations. It is not returned in the response to the CreatePolicyVersion or ListPolicyVersions operations. - public let document: String? - /// Specifies whether the policy version is set as the policy's default version. - public let isDefaultVersion: Bool? + /// A structure containing the user name and password create date for the user. + public let loginProfile: LoginProfile - public init(createDate: TimeStamp? = nil, versionId: String? = nil, document: String? = nil, isDefaultVersion: Bool? = nil) { - self.createDate = createDate - self.versionId = versionId - self.document = document - self.isDefaultVersion = isDefaultVersion + public init(loginProfile: LoginProfile) { + self.loginProfile = loginProfile } private enum CodingKeys: String, CodingKey { - case createDate = "CreateDate" - case versionId = "VersionId" - case document = "Document" - case isDefaultVersion = "IsDefaultVersion" + case loginProfile = "LoginProfile" } } - public struct DeleteInstanceProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceProfileName", required: true, type: .string) + public struct GetAccountAuthorizationDetailsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleDetailList", required: false, type: .list), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "Policies", required: false, type: .list), + AWSShapeMember(label: "UserDetailList", required: false, type: .list), + AWSShapeMember(label: "GroupDetailList", required: false, type: .list), + AWSShapeMember(label: "Marker", required: false, type: .string) ] - /// The name of the instance profile to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let instanceProfileName: String + /// A list containing information about IAM roles. + public let roleDetailList: [RoleDetail]? + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? + /// A list containing information about managed policies. + public let policies: [ManagedPolicyDetail]? + /// A list containing information about IAM users. + public let userDetailList: [UserDetail]? + /// A list containing information about IAM groups. + public let groupDetailList: [GroupDetail]? + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? - public init(instanceProfileName: String) { - self.instanceProfileName = instanceProfileName + public init(roleDetailList: [RoleDetail]? = nil, isTruncated: Bool? = nil, policies: [ManagedPolicyDetail]? = nil, userDetailList: [UserDetail]? = nil, groupDetailList: [GroupDetail]? = nil, marker: String? = nil) { + self.roleDetailList = roleDetailList + self.isTruncated = isTruncated + self.policies = policies + self.userDetailList = userDetailList + self.groupDetailList = groupDetailList + self.marker = marker } private enum CodingKeys: String, CodingKey { - case instanceProfileName = "InstanceProfileName" + case roleDetailList = "RoleDetailList" + case isTruncated = "IsTruncated" + case policies = "Policies" + case userDetailList = "UserDetailList" + case groupDetailList = "GroupDetailList" + case marker = "Marker" } } public struct MFADevice: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserName", required: true, type: .string), AWSShapeMember(label: "EnableDate", required: true, type: .timestamp), AWSShapeMember(label: "SerialNumber", required: true, type: .string) @@ -3531,7 +4401,7 @@ extension Iam { } public struct ServerCertificateMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServerCertificateName", required: true, type: .string), AWSShapeMember(label: "ServerCertificateId", required: true, type: .string), AWSShapeMember(label: "Arn", required: true, type: .string), @@ -3572,7 +4442,7 @@ extension Iam { } public struct GroupDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "GroupName", required: false, type: .string), AWSShapeMember(label: "GroupPolicyList", required: false, type: .list), @@ -3616,8 +4486,29 @@ extension Iam { } } + public struct DeleteSigningCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CertificateId", required: true, type: .string), + AWSShapeMember(label: "UserName", required: false, type: .string) + ] + /// The ID of the signing certificate to delete. The format of this parameter, as described by its regex pattern, is a string of characters that can be upper- or lower-cased letters or digits. + public let certificateId: String + /// The name of the user the signing certificate belongs to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? + + public init(certificateId: String, userName: String? = nil) { + self.certificateId = certificateId + self.userName = userName + } + + private enum CodingKeys: String, CodingKey { + case certificateId = "CertificateId" + case userName = "UserName" + } + } + public struct ListPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OnlyAttached", required: false, type: .boolean), AWSShapeMember(label: "MaxItems", required: false, type: .integer), AWSShapeMember(label: "Scope", required: false, type: .enum), @@ -3652,55 +4543,8 @@ extension Iam { } } - public struct DeleteSigningCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CertificateId", required: true, type: .string), - AWSShapeMember(label: "UserName", required: false, type: .string) - ] - /// The ID of the signing certificate to delete. The format of this parameter, as described by its regex pattern, is a string of characters that can be upper- or lower-cased letters or digits. - public let certificateId: String - /// The name of the user the signing certificate belongs to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - - public init(certificateId: String, userName: String? = nil) { - self.certificateId = certificateId - self.userName = userName - } - - private enum CodingKeys: String, CodingKey { - case certificateId = "CertificateId" - case userName = "UserName" - } - } - - public struct ListAccessKeysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer) - ] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// The name of the user. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - - public init(marker: String? = nil, userName: String? = nil, maxItems: Int32? = nil) { - self.marker = marker - self.userName = userName - self.maxItems = maxItems - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case userName = "UserName" - case maxItems = "MaxItems" - } - } - public struct ListGroupsForUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "UserName", required: true, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer) @@ -3726,7 +4570,7 @@ extension Iam { } public struct ListInstanceProfilesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "InstanceProfiles", required: true, type: .list), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) @@ -3752,7 +4596,7 @@ extension Iam { } public struct UpdateRoleDescriptionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleName", required: true, type: .string), AWSShapeMember(label: "Description", required: true, type: .string) ] @@ -3772,31 +4616,8 @@ extension Iam { } } - public struct GetAccountPasswordPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PasswordPolicy", required: true, type: .structure) - ] - /// A structure that contains details about the account's password policy. - public let passwordPolicy: PasswordPolicy - - public init(passwordPolicy: PasswordPolicy) { - self.passwordPolicy = passwordPolicy - } - - private enum CodingKeys: String, CodingKey { - case passwordPolicy = "PasswordPolicy" - } - } - - public enum ReportStateType: String, CustomStringConvertible, Codable { - case started = "STARTED" - case inprogress = "INPROGRESS" - case complete = "COMPLETE" - public var description: String { return self.rawValue } - } - public struct AddClientIDToOpenIDConnectProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientID", required: true, type: .string), AWSShapeMember(label: "OpenIDConnectProviderArn", required: true, type: .string) ] @@ -3817,7 +4638,7 @@ extension Iam { } public struct ListPolicyVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), AWSShapeMember(label: "Versions", required: false, type: .list) @@ -3842,71 +4663,8 @@ extension Iam { } } - public struct GetPolicyVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyVersion", required: false, type: .structure) - ] - /// A structure containing details about the policy version. - public let policyVersion: PolicyVersion? - - public init(policyVersion: PolicyVersion? = nil) { - self.policyVersion = policyVersion - } - - private enum CodingKeys: String, CodingKey { - case policyVersion = "PolicyVersion" - } - } - - public struct PolicyUser: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "UserId", required: false, type: .string) - ] - /// The name (friendly name, not ARN) identifying the user. - public let userName: String? - /// The stable and unique string identifying the user. For more information about IDs, see IAM Identifiers in the IAM User Guide. - public let userId: String? - - public init(userName: String? = nil, userId: String? = nil) { - self.userName = userName - self.userId = userId - } - - private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case userId = "UserId" - } - } - - public struct ListGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "PathPrefix", required: false, type: .string) - ] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// The path prefix for filtering the results. For example, the prefix /division_abc/subdivision_xyz/ gets all groups whose path starts with /division_abc/subdivision_xyz/. This parameter is optional. If it is not included, it defaults to a slash (/), listing all groups. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let pathPrefix: String? - - public init(marker: String? = nil, maxItems: Int32? = nil, pathPrefix: String? = nil) { - self.marker = marker - self.maxItems = maxItems - self.pathPrefix = pathPrefix - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case maxItems = "MaxItems" - case pathPrefix = "PathPrefix" - } - } - public struct GetAccessKeyLastUsedRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccessKeyId", required: true, type: .string) ] /// The identifier of an access key. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. @@ -3922,7 +4680,7 @@ extension Iam { } public struct GetRoleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Role", required: true, type: .structure) ] /// A structure containing details about the IAM role. @@ -3938,7 +4696,7 @@ extension Iam { } public struct GetPolicyVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyArn", required: true, type: .string), AWSShapeMember(label: "VersionId", required: true, type: .string) ] @@ -3959,7 +4717,7 @@ extension Iam { } public struct DeleteServiceSpecificCredentialRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceSpecificCredentialId", required: true, type: .string), AWSShapeMember(label: "UserName", required: false, type: .string) ] @@ -3979,29 +4737,8 @@ extension Iam { } } - public struct ListServiceSpecificCredentialsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "ServiceName", required: false, type: .string) - ] - /// The name of the user whose service-specific credentials you want information about. If this value is not specified then the operation assumes the user whose credentials are used to call the operation. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - /// Filters the returned results to only those for the specified AWS service. If not specified, then AWS returns service-specific credentials for all services. - public let serviceName: String? - - public init(userName: String? = nil, serviceName: String? = nil) { - self.userName = userName - self.serviceName = serviceName - } - - private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case serviceName = "ServiceName" - } - } - public struct GetInstanceProfileResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceProfile", required: true, type: .structure) ] /// A structure containing details about the instance profile. @@ -4017,7 +4754,7 @@ extension Iam { } public struct UpdateSSHPublicKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserName", required: true, type: .string), AWSShapeMember(label: "Status", required: true, type: .enum), AWSShapeMember(label: "SSHPublicKeyId", required: true, type: .string) @@ -4043,101 +4780,23 @@ extension Iam { } public struct GetServerCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServerCertificate", required: true, type: .structure) ] /// A structure containing details about the server certificate. public let serverCertificate: ServerCertificate public init(serverCertificate: ServerCertificate) { - self.serverCertificate = serverCertificate - } - - private enum CodingKeys: String, CodingKey { - case serverCertificate = "ServerCertificate" - } - } - - public struct CreateRoleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Path", required: false, type: .string), - AWSShapeMember(label: "RoleName", required: true, type: .string), - AWSShapeMember(label: "AssumeRolePolicyDocument", required: true, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string) - ] - /// The path to the role. For more information about paths, see IAM Identifiers in the IAM User Guide. This parameter is optional. If it is not included, it defaults to a slash (/). This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let path: String? - /// The name of the role to create. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- Role names are not distinguished by case. For example, you cannot create roles named both "PRODROLE" and "prodrole". - public let roleName: String - /// The trust relationship policy document that grants an entity permission to assume the role. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). - public let assumeRolePolicyDocument: String - /// A customer-provided description of the role. - public let description: String? - - public init(path: String? = nil, roleName: String, assumeRolePolicyDocument: String, description: String? = nil) { - self.path = path - self.roleName = roleName - self.assumeRolePolicyDocument = assumeRolePolicyDocument - self.description = description - } - - private enum CodingKeys: String, CodingKey { - case path = "Path" - case roleName = "RoleName" - case assumeRolePolicyDocument = "AssumeRolePolicyDocument" - case description = "Description" - } - } - - public struct GetGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "Users", required: true, type: .list), - AWSShapeMember(label: "Group", required: true, type: .structure), - AWSShapeMember(label: "Marker", required: false, type: .string) - ] - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of users in the group. - public let users: [User] - /// A structure that contains details about the group. - public let group: Group - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - - public init(isTruncated: Bool? = nil, users: [User], group: Group, marker: String? = nil) { - self.isTruncated = isTruncated - self.users = users - self.group = group - self.marker = marker - } - - private enum CodingKeys: String, CodingKey { - case isTruncated = "IsTruncated" - case users = "Users" - case group = "Group" - case marker = "Marker" - } - } - - public struct DeleteOpenIDConnectProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OpenIDConnectProviderArn", required: true, type: .string) - ] - /// The Amazon Resource Name (ARN) of the IAM OpenID Connect provider resource object to delete. You can get a list of OpenID Connect provider resource ARNs by using the ListOpenIDConnectProviders action. - public let openIDConnectProviderArn: String - - public init(openIDConnectProviderArn: String) { - self.openIDConnectProviderArn = openIDConnectProviderArn + self.serverCertificate = serverCertificate } private enum CodingKeys: String, CodingKey { - case openIDConnectProviderArn = "OpenIDConnectProviderArn" + case serverCertificate = "ServerCertificate" } } public struct CreatePolicyVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyVersion", required: false, type: .structure) ] /// A structure containing details about the new policy version. @@ -4153,7 +4812,7 @@ extension Iam { } public struct PutGroupPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupName", required: true, type: .string), AWSShapeMember(label: "PolicyDocument", required: true, type: .string), AWSShapeMember(label: "PolicyName", required: true, type: .string) @@ -4162,7 +4821,7 @@ extension Iam { public let groupName: String /// The policy document. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). public let policyDocument: String - /// The name of the policy document. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + /// The name of the policy document. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ public let policyName: String public init(groupName: String, policyDocument: String, policyName: String) { @@ -4178,70 +4837,8 @@ extension Iam { } } - public struct VirtualMFADevice: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EnableDate", required: false, type: .timestamp), - AWSShapeMember(label: "QRCodePNG", required: false, type: .blob), - AWSShapeMember(label: "Base32StringSeed", required: false, type: .blob), - AWSShapeMember(label: "User", required: false, type: .structure), - AWSShapeMember(label: "SerialNumber", required: true, type: .string) - ] - /// The date and time on which the virtual MFA device was enabled. - public let enableDate: TimeStamp? - /// A QR code PNG image that encodes otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String where $virtualMFADeviceName is one of the create call arguments, AccountName is the user name if set (otherwise, the account ID otherwise), and Base32String is the seed in Base32 format. The Base32String value is Base64-encoded. - public let qRCodePNG: Data? - /// The Base32 seed defined as specified in RFC3548. The Base32StringSeed is Base64-encoded. - public let base32StringSeed: Data? - /// The IAM user associated with this virtual MFA device. - public let user: User? - /// The serial number associated with VirtualMFADevice. - public let serialNumber: String - - public init(enableDate: TimeStamp? = nil, qRCodePNG: Data? = nil, base32StringSeed: Data? = nil, user: User? = nil, serialNumber: String) { - self.enableDate = enableDate - self.qRCodePNG = qRCodePNG - self.base32StringSeed = base32StringSeed - self.user = user - self.serialNumber = serialNumber - } - - private enum CodingKeys: String, CodingKey { - case enableDate = "EnableDate" - case qRCodePNG = "QRCodePNG" - case base32StringSeed = "Base32StringSeed" - case user = "User" - case serialNumber = "SerialNumber" - } - } - - public struct GetRolePolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleName", required: true, type: .string), - AWSShapeMember(label: "PolicyDocument", required: true, type: .string), - AWSShapeMember(label: "PolicyName", required: true, type: .string) - ] - /// The role the policy is associated with. - public let roleName: String - /// The policy document. - public let policyDocument: String - /// The name of the policy. - public let policyName: String - - public init(roleName: String, policyDocument: String, policyName: String) { - self.roleName = roleName - self.policyDocument = policyDocument - self.policyName = policyName - } - - private enum CodingKeys: String, CodingKey { - case roleName = "RoleName" - case policyDocument = "PolicyDocument" - case policyName = "PolicyName" - } - } - public struct CreateGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Group", required: true, type: .structure) ] /// A structure containing details about the new group. @@ -4256,55 +4853,8 @@ extension Iam { } } - public struct UpdateSigningCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CertificateId", required: true, type: .string), - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "Status", required: true, type: .enum) - ] - /// The ID of the signing certificate you want to update. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. - public let certificateId: String - /// The name of the IAM user the signing certificate belongs to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - /// The status you want to assign to the certificate. Active means the certificate can be used for API calls to AWS, while Inactive means the certificate cannot be used. - public let status: StatusType - - public init(certificateId: String, userName: String? = nil, status: StatusType) { - self.certificateId = certificateId - self.userName = userName - self.status = status - } - - private enum CodingKeys: String, CodingKey { - case certificateId = "CertificateId" - case userName = "UserName" - case status = "Status" - } - } - - public struct PolicyDetail: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyDocument", required: false, type: .string), - AWSShapeMember(label: "PolicyName", required: false, type: .string) - ] - /// The policy document. - public let policyDocument: String? - /// The name of the policy. - public let policyName: String? - - public init(policyDocument: String? = nil, policyName: String? = nil) { - self.policyDocument = policyDocument - self.policyName = policyName - } - - private enum CodingKeys: String, CodingKey { - case policyDocument = "PolicyDocument" - case policyName = "PolicyName" - } - } - public struct UpdateAccountPasswordPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RequireNumbers", required: false, type: .boolean), AWSShapeMember(label: "MaxPasswordAge", required: false, type: .integer), AWSShapeMember(label: "MinimumPasswordLength", required: false, type: .integer), @@ -4359,34 +4909,34 @@ extension Iam { } } - public struct GetCredentialReportResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Content", required: false, type: .blob), - AWSShapeMember(label: "ReportFormat", required: false, type: .enum), - AWSShapeMember(label: "GeneratedTime", required: false, type: .timestamp) + public struct GetRolePolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleName", required: true, type: .string), + AWSShapeMember(label: "PolicyDocument", required: true, type: .string), + AWSShapeMember(label: "PolicyName", required: true, type: .string) ] - /// Contains the credential report. The report is Base64-encoded. - public let content: Data? - /// The format (MIME type) of the credential report. - public let reportFormat: ReportFormatType? - /// The date and time when the credential report was created, in ISO 8601 date-time format. - public let generatedTime: TimeStamp? + /// The role the policy is associated with. + public let roleName: String + /// The policy document. + public let policyDocument: String + /// The name of the policy. + public let policyName: String - public init(content: Data? = nil, reportFormat: ReportFormatType? = nil, generatedTime: TimeStamp? = nil) { - self.content = content - self.reportFormat = reportFormat - self.generatedTime = generatedTime + public init(roleName: String, policyDocument: String, policyName: String) { + self.roleName = roleName + self.policyDocument = policyDocument + self.policyName = policyName } private enum CodingKeys: String, CodingKey { - case content = "Content" - case reportFormat = "ReportFormat" - case generatedTime = "GeneratedTime" + case roleName = "RoleName" + case policyDocument = "PolicyDocument" + case policyName = "PolicyName" } } public struct Group: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CreateDate", required: true, type: .timestamp), AWSShapeMember(label: "Arn", required: true, type: .string), AWSShapeMember(label: "GroupName", required: true, type: .string), @@ -4421,107 +4971,8 @@ extension Iam { } } - public struct ListSigningCertificatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "Certificates", required: true, type: .list) - ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of the user's signing certificate information. - public let certificates: [SigningCertificate] - - public init(marker: String? = nil, isTruncated: Bool? = nil, certificates: [SigningCertificate]) { - self.marker = marker - self.isTruncated = isTruncated - self.certificates = certificates - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case isTruncated = "IsTruncated" - case certificates = "Certificates" - } - } - - public struct DetachUserPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyArn", required: true, type: .string), - AWSShapeMember(label: "UserName", required: true, type: .string) - ] - /// The Amazon Resource Name (ARN) of the IAM policy you want to detach. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let policyArn: String - /// The name (friendly name, not ARN) of the IAM user to detach the policy from. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - - public init(policyArn: String, userName: String) { - self.policyArn = policyArn - self.userName = userName - } - - private enum CodingKeys: String, CodingKey { - case policyArn = "PolicyArn" - case userName = "UserName" - } - } - - public struct GetRolePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleName", required: true, type: .string), - AWSShapeMember(label: "PolicyName", required: true, type: .string) - ] - /// The name of the role associated with the policy. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- - public let roleName: String - /// The name of the policy document to get. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let policyName: String - - public init(roleName: String, policyName: String) { - self.roleName = roleName - self.policyName = policyName - } - - private enum CodingKeys: String, CodingKey { - case roleName = "RoleName" - case policyName = "PolicyName" - } - } - - public struct ListAttachedUserPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "PathPrefix", required: false, type: .string) - ] - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// The name (friendly name, not ARN) of the user to list attached policies for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let pathPrefix: String? - - public init(maxItems: Int32? = nil, userName: String, marker: String? = nil, pathPrefix: String? = nil) { - self.maxItems = maxItems - self.userName = userName - self.marker = marker - self.pathPrefix = pathPrefix - } - - private enum CodingKeys: String, CodingKey { - case maxItems = "MaxItems" - case userName = "UserName" - case marker = "Marker" - case pathPrefix = "PathPrefix" - } - } - public struct PolicyGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GroupId", required: false, type: .string), AWSShapeMember(label: "GroupName", required: false, type: .string) ] @@ -4542,7 +4993,7 @@ extension Iam { } public struct CreateAccessKeyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccessKey", required: true, type: .structure) ] /// A structure with details about the access key. @@ -4557,40 +5008,34 @@ extension Iam { } } - public struct CreateInstanceProfileResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceProfile", required: true, type: .structure) - ] - /// A structure containing details about the new instance profile. - public let instanceProfile: InstanceProfile - - public init(instanceProfile: InstanceProfile) { - self.instanceProfile = instanceProfile - } - - private enum CodingKeys: String, CodingKey { - case instanceProfile = "InstanceProfile" - } - } - - public struct CreateAccessKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: false, type: .string) + public struct ListRolePoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "PolicyNames", required: true, type: .list), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) ] - /// The name of the IAM user that the new key will belong to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A list of policy names. + public let policyNames: [String] + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? - public init(userName: String? = nil) { - self.userName = userName + public init(marker: String? = nil, policyNames: [String], isTruncated: Bool? = nil) { + self.marker = marker + self.policyNames = policyNames + self.isTruncated = isTruncated } private enum CodingKeys: String, CodingKey { - case userName = "UserName" + case marker = "Marker" + case policyNames = "PolicyNames" + case isTruncated = "IsTruncated" } } public struct GetAccessKeyLastUsedResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccessKeyLastUsed", required: false, type: .structure), AWSShapeMember(label: "UserName", required: false, type: .string) ] @@ -4611,7 +5056,7 @@ extension Iam { } public struct GetPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the managed policy that you want information about. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. @@ -4626,34 +5071,8 @@ extension Iam { } } - public struct GetSSHPublicKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Encoding", required: true, type: .enum), - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "SSHPublicKeyId", required: true, type: .string) - ] - /// Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use SSH. To retrieve the public key in PEM format, use PEM. - public let encoding: EncodingType - /// The name of the IAM user associated with the SSH public key. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - /// The unique identifier for the SSH public key. This parameter allows (per its regex pattern) a string of characters that can consist of any upper or lowercased letter or digit. - public let sSHPublicKeyId: String - - public init(encoding: EncodingType, userName: String, sSHPublicKeyId: String) { - self.encoding = encoding - self.userName = userName - self.sSHPublicKeyId = sSHPublicKeyId - } - - private enum CodingKeys: String, CodingKey { - case encoding = "Encoding" - case userName = "UserName" - case sSHPublicKeyId = "SSHPublicKeyId" - } - } - public struct CreateOpenIDConnectProviderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OpenIDConnectProviderArn", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the new IAM OpenID Connect provider that is created. For more information, see OpenIDConnectProviderListEntry. @@ -4668,34 +5087,24 @@ extension Iam { } } - public struct ListRolePoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "PolicyNames", required: true, type: .list), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) + public struct CreateAccessKeyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserName", required: false, type: .string) ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A list of policy names. - public let policyNames: [String] - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? + /// The name of the IAM user that the new key will belong to. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let userName: String? - public init(marker: String? = nil, policyNames: [String], isTruncated: Bool? = nil) { - self.marker = marker - self.policyNames = policyNames - self.isTruncated = isTruncated + public init(userName: String? = nil) { + self.userName = userName } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case policyNames = "PolicyNames" - case isTruncated = "IsTruncated" + case userName = "UserName" } } public struct UploadSigningCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificate", required: true, type: .structure) ] /// Information about the certificate. @@ -4710,24 +5119,8 @@ extension Iam { } } - public struct GetPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Policy", required: false, type: .structure) - ] - /// A structure containing details about the policy. - public let policy: Policy? - - public init(policy: Policy? = nil) { - self.policy = policy - } - - private enum CodingKeys: String, CodingKey { - case policy = "Policy" - } - } - public struct RemoveUserFromGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserName", required: true, type: .string), AWSShapeMember(label: "GroupName", required: true, type: .string) ] @@ -4748,7 +5141,7 @@ extension Iam { } public struct ServerCertificate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CertificateChain", required: false, type: .string), AWSShapeMember(label: "ServerCertificateMetadata", required: true, type: .structure), AWSShapeMember(label: "CertificateBody", required: true, type: .string) @@ -4773,34 +5166,8 @@ extension Iam { } } - public struct ListSigningCertificatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer) - ] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// The name of the IAM user whose signing certificates you want to examine. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - - public init(marker: String? = nil, userName: String? = nil, maxItems: Int32? = nil) { - self.marker = marker - self.userName = userName - self.maxItems = maxItems - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case userName = "UserName" - case maxItems = "MaxItems" - } - } - public struct AttachedPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyArn", required: false, type: .string), AWSShapeMember(label: "PolicyName", required: false, type: .string) ] @@ -4819,8 +5186,45 @@ extension Iam { } } + public struct DeleteGroupPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", required: true, type: .string), + AWSShapeMember(label: "PolicyName", required: true, type: .string) + ] + /// The name (friendly name, not ARN) identifying the group that the policy is embedded in. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + public let groupName: String + /// The name identifying the policy document to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ + public let policyName: String + + public init(groupName: String, policyName: String) { + self.groupName = groupName + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + case policyName = "PolicyName" + } + } + + public struct GetServiceLinkedRoleDeletionStatusRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeletionTaskId", required: true, type: .string) + ] + /// The deletion task identifier. This identifier is returned by the DeleteServiceLinkedRole operation in the format task/aws-service-role/<service-principal-name>/<role-name>/<task-uuid>. + public let deletionTaskId: String + + public init(deletionTaskId: String) { + self.deletionTaskId = deletionTaskId + } + + private enum CodingKeys: String, CodingKey { + case deletionTaskId = "DeletionTaskId" + } + } + public struct Role: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: true, type: .string), AWSShapeMember(label: "AssumeRolePolicyDocument", required: false, type: .string), AWSShapeMember(label: "Path", required: true, type: .string), @@ -4865,180 +5269,55 @@ extension Iam { } } - public struct ListAttachedGroupPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxItems", required: false, type: .integer), - AWSShapeMember(label: "GroupName", required: true, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "PathPrefix", required: false, type: .string) - ] - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// The name (friendly name, not ARN) of the group to list attached policies for. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let groupName: String - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let pathPrefix: String? - - public init(maxItems: Int32? = nil, groupName: String, marker: String? = nil, pathPrefix: String? = nil) { - self.maxItems = maxItems - self.groupName = groupName - self.marker = marker - self.pathPrefix = pathPrefix - } - - private enum CodingKeys: String, CodingKey { - case maxItems = "MaxItems" - case groupName = "GroupName" - case marker = "Marker" - case pathPrefix = "PathPrefix" - } - } - - public struct ListServerCertificatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "ServerCertificateMetadataList", required: true, type: .list) - ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of server certificates. - public let serverCertificateMetadataList: [ServerCertificateMetadata] - - public init(marker: String? = nil, isTruncated: Bool? = nil, serverCertificateMetadataList: [ServerCertificateMetadata]) { - self.marker = marker - self.isTruncated = isTruncated - self.serverCertificateMetadataList = serverCertificateMetadataList - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case isTruncated = "IsTruncated" - case serverCertificateMetadataList = "ServerCertificateMetadataList" - } - } - public struct ListRolesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer), AWSShapeMember(label: "PathPrefix", required: false, type: .string) ] /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. public let marker: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - /// The path prefix for filtering the results. For example, the prefix /application_abc/component_xyz/ gets all roles whose path starts with /application_abc/component_xyz/. This parameter is optional. If it is not included, it defaults to a slash (/), listing all roles. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. - public let pathPrefix: String? - - public init(marker: String? = nil, maxItems: Int32? = nil, pathPrefix: String? = nil) { - self.marker = marker - self.maxItems = maxItems - self.pathPrefix = pathPrefix - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case maxItems = "MaxItems" - case pathPrefix = "PathPrefix" - } - } - - public struct DeletePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyArn", required: true, type: .string) - ] - /// The Amazon Resource Name (ARN) of the IAM policy you want to delete. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference. - public let policyArn: String - - public init(policyArn: String) { - self.policyArn = policyArn - } - - private enum CodingKeys: String, CodingKey { - case policyArn = "PolicyArn" - } - } - - public struct DeleteGroupPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupName", required: true, type: .string), - AWSShapeMember(label: "PolicyName", required: true, type: .string) - ] - /// The name (friendly name, not ARN) identifying the group that the policy is embedded in. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let groupName: String - /// The name identifying the policy document to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let policyName: String - - public init(groupName: String, policyName: String) { - self.groupName = groupName - self.policyName = policyName - } - - private enum CodingKeys: String, CodingKey { - case groupName = "GroupName" - case policyName = "PolicyName" - } - } - - public struct ResyncMFADeviceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "AuthenticationCode1", required: true, type: .string), - AWSShapeMember(label: "SerialNumber", required: true, type: .string), - AWSShapeMember(label: "AuthenticationCode2", required: true, type: .string) - ] - /// The name of the user whose MFA device you want to resynchronize. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - /// An authentication code emitted by the device. The format for this parameter is a sequence of six digits. - public let authenticationCode1: String - /// Serial number that uniquely identifies the MFA device. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let serialNumber: String - /// A subsequent authentication code emitted by the device. The format for this parameter is a sequence of six digits. - public let authenticationCode2: String + /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. + public let maxItems: Int32? + /// The path prefix for filtering the results. For example, the prefix /application_abc/component_xyz/ gets all roles whose path starts with /application_abc/component_xyz/. This parameter is optional. If it is not included, it defaults to a slash (/), listing all roles. This paramater allows (per its regex pattern) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes, containing any ASCII character from the ! (\u0021) thru the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. + public let pathPrefix: String? - public init(userName: String, authenticationCode1: String, serialNumber: String, authenticationCode2: String) { - self.userName = userName - self.authenticationCode1 = authenticationCode1 - self.serialNumber = serialNumber - self.authenticationCode2 = authenticationCode2 + public init(marker: String? = nil, maxItems: Int32? = nil, pathPrefix: String? = nil) { + self.marker = marker + self.maxItems = maxItems + self.pathPrefix = pathPrefix } private enum CodingKeys: String, CodingKey { - case userName = "UserName" - case authenticationCode1 = "AuthenticationCode1" - case serialNumber = "SerialNumber" - case authenticationCode2 = "AuthenticationCode2" + case marker = "Marker" + case maxItems = "MaxItems" + case pathPrefix = "PathPrefix" } } - public struct ListInstanceProfilesForRoleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListServerCertificatesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "InstanceProfiles", required: true, type: .list), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), + AWSShapeMember(label: "ServerCertificateMetadataList", required: true, type: .list) ] /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. public let marker: String? - /// A list of instance profiles. - public let instanceProfiles: [InstanceProfile] /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. public let isTruncated: Bool? + /// A list of server certificates. + public let serverCertificateMetadataList: [ServerCertificateMetadata] - public init(marker: String? = nil, instanceProfiles: [InstanceProfile], isTruncated: Bool? = nil) { + public init(marker: String? = nil, isTruncated: Bool? = nil, serverCertificateMetadataList: [ServerCertificateMetadata]) { self.marker = marker - self.instanceProfiles = instanceProfiles self.isTruncated = isTruncated + self.serverCertificateMetadataList = serverCertificateMetadataList } private enum CodingKeys: String, CodingKey { case marker = "Marker" - case instanceProfiles = "InstanceProfiles" case isTruncated = "IsTruncated" + case serverCertificateMetadataList = "ServerCertificateMetadataList" } } @@ -5049,45 +5328,42 @@ extension Iam { public var description: String { return self.rawValue } } - public struct DeleteSAMLProviderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SAMLProviderArn", required: true, type: .string) + public struct ListInstanceProfilesForRoleResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "InstanceProfiles", required: true, type: .list), + AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) ] - /// The Amazon Resource Name (ARN) of the SAML provider to delete. - public let sAMLProviderArn: String + /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. + public let marker: String? + /// A list of instance profiles. + public let instanceProfiles: [InstanceProfile] + /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. + public let isTruncated: Bool? - public init(sAMLProviderArn: String) { - self.sAMLProviderArn = sAMLProviderArn + public init(marker: String? = nil, instanceProfiles: [InstanceProfile], isTruncated: Bool? = nil) { + self.marker = marker + self.instanceProfiles = instanceProfiles + self.isTruncated = isTruncated } private enum CodingKeys: String, CodingKey { - case sAMLProviderArn = "SAMLProviderArn" + case marker = "Marker" + case instanceProfiles = "InstanceProfiles" + case isTruncated = "IsTruncated" } } - public struct PolicyRole: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleId", required: false, type: .string), - AWSShapeMember(label: "RoleName", required: false, type: .string) - ] - /// The stable and unique string identifying the role. For more information about IDs, see IAM Identifiers in the IAM User Guide. - public let roleId: String? - /// The name (friendly name, not ARN) identifying the role. - public let roleName: String? - - public init(roleId: String? = nil, roleName: String? = nil) { - self.roleId = roleId - self.roleName = roleName - } - - private enum CodingKeys: String, CodingKey { - case roleId = "RoleId" - case roleName = "RoleName" - } + public enum DeletionTaskStatusType: String, CustomStringConvertible, Codable { + case succeeded = "SUCCEEDED" + case inProgress = "IN_PROGRESS" + case failed = "FAILED" + case notStarted = "NOT_STARTED" + public var description: String { return self.rawValue } } public struct GetContextKeysForCustomPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyInputList", required: true, type: .list) ] /// A list of policies for which you want the list of context keys referenced in those policies. Each document is specified as a string containing the complete, valid JSON text of an IAM policy. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). @@ -5103,7 +5379,7 @@ extension Iam { } public struct ListUsersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer), AWSShapeMember(label: "PathPrefix", required: false, type: .string) @@ -5128,24 +5404,8 @@ extension Iam { } } - public struct OrganizationsDecisionDetail: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AllowedByOrganizations", required: false, type: .boolean) - ] - /// Specifies whether the simulated action is allowed by the AWS Organizations service control policies that impact the simulated user's account. - public let allowedByOrganizations: Bool? - - public init(allowedByOrganizations: Bool? = nil) { - self.allowedByOrganizations = allowedByOrganizations - } - - private enum CodingKeys: String, CodingKey { - case allowedByOrganizations = "AllowedByOrganizations" - } - } - public struct GetContextKeysForPrincipalPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyInputList", required: false, type: .list), AWSShapeMember(label: "PolicySourceArn", required: true, type: .string) ] @@ -5166,7 +5426,7 @@ extension Iam { } public struct ListGroupPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer), AWSShapeMember(label: "GroupName", required: true, type: .string) @@ -5191,13 +5451,8 @@ extension Iam { } } - public enum ReportFormatType: String, CustomStringConvertible, Codable { - case textCsv = "text/csv" - public var description: String { return self.rawValue } - } - public struct DetachGroupPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyArn", required: true, type: .string), AWSShapeMember(label: "GroupName", required: true, type: .string) ] @@ -5217,34 +5472,8 @@ extension Iam { } } - public struct ListVirtualMFADevicesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VirtualMFADevices", required: true, type: .list), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) - ] - /// The list of virtual MFA devices in the current account that match the AssignmentStatus value that was passed in the request. - public let virtualMFADevices: [VirtualMFADevice] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - - public init(virtualMFADevices: [VirtualMFADevice], marker: String? = nil, isTruncated: Bool? = nil) { - self.virtualMFADevices = virtualMFADevices - self.marker = marker - self.isTruncated = isTruncated - } - - private enum CodingKeys: String, CodingKey { - case virtualMFADevices = "VirtualMFADevices" - case marker = "Marker" - case isTruncated = "IsTruncated" - } - } - public struct GetInstanceProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceProfileName", required: true, type: .string) ] /// The name of the instance profile to get information about. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- @@ -5259,24 +5488,8 @@ extension Iam { } } - public struct CreateServiceLinkedRoleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Role", required: false, type: .structure) - ] - /// A Role object that contains details about the newly created role. - public let role: Role? - - public init(role: Role? = nil) { - self.role = role - } - - private enum CodingKeys: String, CodingKey { - case role = "Role" - } - } - public struct ListRolesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), AWSShapeMember(label: "Roles", required: true, type: .list) @@ -5301,30 +5514,30 @@ extension Iam { } } - public enum ContextKeyTypeEnum: String, CustomStringConvertible, Codable { - case string = "string" - case stringlist = "stringList" - case numeric = "numeric" - case numericlist = "numericList" - case boolean = "boolean" - case booleanlist = "booleanList" - case ip = "ip" - case iplist = "ipList" - case binary = "binary" - case binarylist = "binaryList" - case date = "date" - case datelist = "dateList" - public var description: String { return self.rawValue } + public struct CreateServiceLinkedRoleResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Role", required: false, type: .structure) + ] + /// A Role object that contains details about the newly created role. + public let role: Role? + + public init(role: Role? = nil) { + self.role = role + } + + private enum CodingKeys: String, CodingKey { + case role = "Role" + } } public struct DeleteUserPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserName", required: true, type: .string), AWSShapeMember(label: "PolicyName", required: true, type: .string) ] /// The name (friendly name, not ARN) identifying the user that the policy is embedded in. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- public let userName: String - /// The name identifying the policy document to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- + /// The name identifying the policy document to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+ public let policyName: String public init(userName: String, policyName: String) { @@ -5339,7 +5552,7 @@ extension Iam { } public struct ResetServiceSpecificCredentialResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceSpecificCredential", required: false, type: .structure) ] /// A structure with details about the updated service-specific credential, including the new password. This is the only time that you can access the password. You cannot recover the password later, but you can reset it again. @@ -5354,60 +5567,8 @@ extension Iam { } } - public struct UpdateLoginProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Password", required: false, type: .string), - AWSShapeMember(label: "UserName", required: true, type: .string), - AWSShapeMember(label: "PasswordResetRequired", required: false, type: .boolean) - ] - /// The new password for the specified IAM user. The regex pattern used to validate this parameter is a string of characters consisting of any printable ASCII character ranging from the space character (\u0020) through end of the ASCII character range as well as the printable characters in the Basic Latin and Latin-1 Supplement character set (through \u00FF). It also includes the special characters tab (\u0009), line feed (\u000A), and carriage return (\u000D). However, the format can be further restricted by the account administrator by setting a password policy on the AWS account. For more information, see UpdateAccountPasswordPolicy. - public let password: String? - /// The name of the user whose password you want to update. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String - /// Allows this new password to be used only once by requiring the specified IAM user to set a new password on next sign-in. - public let passwordResetRequired: Bool? - - public init(password: String? = nil, userName: String, passwordResetRequired: Bool? = nil) { - self.password = password - self.userName = userName - self.passwordResetRequired = passwordResetRequired - } - - private enum CodingKeys: String, CodingKey { - case password = "Password" - case userName = "UserName" - case passwordResetRequired = "PasswordResetRequired" - } - } - - public struct ListAccountAliasesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), - AWSShapeMember(label: "AccountAliases", required: true, type: .list) - ] - /// When IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request. - public let marker: String? - /// A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items. Note that IAM might return fewer than the MaxItems number of results even when there are more results available. We recommend that you check IsTruncated after every call to ensure that you receive all of your results. - public let isTruncated: Bool? - /// A list of aliases associated with the account. AWS supports only one alias per account. - public let accountAliases: [String] - - public init(marker: String? = nil, isTruncated: Bool? = nil, accountAliases: [String]) { - self.marker = marker - self.isTruncated = isTruncated - self.accountAliases = accountAliases - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case isTruncated = "IsTruncated" - case accountAliases = "AccountAliases" - } - } - public struct ListSSHPublicKeysResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "SSHPublicKeys", required: false, type: .list), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) @@ -5433,7 +5594,7 @@ extension Iam { } public struct ListServiceSpecificCredentialsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceSpecificCredentials", required: false, type: .list) ] /// A list of structures that each contain details about a service-specific credential. @@ -5455,46 +5616,4 @@ extension Iam { public var description: String { return self.rawValue } } - public struct ListMFADevicesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "UserName", required: false, type: .string), - AWSShapeMember(label: "MaxItems", required: false, type: .integer) - ] - /// Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the Marker element in the response that you received to indicate where the next call should start. - public let marker: String? - /// The name of the user whose MFA devices you want to list. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let userName: String? - /// (Optional) Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the IsTruncated response element is true. If you do not include this parameter, it defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the IsTruncated response element returns true and Marker contains a value to include in the subsequent call that tells the service where to continue from. - public let maxItems: Int32? - - public init(marker: String? = nil, userName: String? = nil, maxItems: Int32? = nil) { - self.marker = marker - self.userName = userName - self.maxItems = maxItems - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case userName = "UserName" - case maxItems = "MaxItems" - } - } - - public struct DeleteGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GroupName", required: true, type: .string) - ] - /// The name of the IAM group to delete. This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@- - public let groupName: String - - public init(groupName: String) { - self.groupName = groupName - } - - private enum CodingKeys: String, CodingKey { - case groupName = "GroupName" - } - } - } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/importexport/Importexport_Shapes.swift b/Sources/AWSSDKSwift/Services/importexport/Importexport_Shapes.swift index 2fd822e5640..cbf5e767fe5 100644 --- a/Sources/AWSSDKSwift/Services/importexport/Importexport_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/importexport/Importexport_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Importexport { public struct ListJobsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxJobs", required: false, type: .integer), AWSShapeMember(label: "APIVersion", required: false, type: .string) @@ -29,7 +29,7 @@ extension Importexport { } public struct CreateJobInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobType", required: true, type: .enum), AWSShapeMember(label: "ManifestAddendum", required: false, type: .string), AWSShapeMember(label: "Manifest", required: true, type: .string), @@ -60,7 +60,7 @@ extension Importexport { } public struct GetShippingLabelInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "stateOrProvince", required: false, type: .string), AWSShapeMember(label: "city", required: false, type: .string), AWSShapeMember(label: "postalCode", required: false, type: .string), @@ -119,7 +119,7 @@ extension Importexport { } public struct GetStatusInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobId", required: true, type: .string), AWSShapeMember(label: "APIVersion", required: false, type: .string) ] @@ -138,7 +138,7 @@ extension Importexport { } public struct CreateJobOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobType", required: false, type: .enum), AWSShapeMember(label: "ArtifactList", required: false, type: .list), AWSShapeMember(label: "SignatureFileContents", required: false, type: .string), @@ -179,7 +179,7 @@ extension Importexport { } public struct GetShippingLabelOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Warning", required: false, type: .string), AWSShapeMember(label: "ShippingLabelURL", required: false, type: .string) ] @@ -198,7 +198,7 @@ extension Importexport { } public struct UpdateJobOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Success", required: false, type: .boolean), AWSShapeMember(label: "WarningMessage", required: false, type: .string), AWSShapeMember(label: "ArtifactList", required: false, type: .list) @@ -221,7 +221,7 @@ extension Importexport { } public struct UpdateJobInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobType", required: true, type: .enum), AWSShapeMember(label: "APIVersion", required: false, type: .string), AWSShapeMember(label: "Manifest", required: true, type: .string), @@ -252,7 +252,7 @@ extension Importexport { } public struct Job: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobType", required: false, type: .enum), AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), AWSShapeMember(label: "JobId", required: false, type: .string), @@ -279,7 +279,7 @@ extension Importexport { } public struct GetStatusOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Carrier", required: false, type: .string), AWSShapeMember(label: "ArtifactList", required: false, type: .list), AWSShapeMember(label: "Signature", required: false, type: .string), @@ -354,7 +354,7 @@ extension Importexport { } public struct ListJobsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Jobs", required: false, type: .list), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean) ] @@ -373,7 +373,7 @@ extension Importexport { } public struct Artifact: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "URL", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] @@ -392,7 +392,7 @@ extension Importexport { } public struct CancelJobInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobId", required: true, type: .string), AWSShapeMember(label: "APIVersion", required: false, type: .string) ] @@ -411,7 +411,7 @@ extension Importexport { } public struct CancelJobOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Success", required: false, type: .boolean) ] public let success: Bool? diff --git a/Sources/AWSSDKSwift/Services/inspector/Inspector_Shapes.swift b/Sources/AWSSDKSwift/Services/inspector/Inspector_Shapes.swift index cd948c2eb72..0ffe3668a80 100644 --- a/Sources/AWSSDKSwift/Services/inspector/Inspector_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/inspector/Inspector_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Inspector { public struct DescribeRulesPackagesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rulesPackageArns", required: true, type: .list), AWSShapeMember(label: "locale", required: false, type: .enum) ] @@ -36,7 +36,7 @@ extension Inspector { } public struct RemoveAttributesFromFindingsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failedItems", required: true, type: .map) ] /// Attributes details that cannot be described. An error code is provided for each failed item. @@ -64,7 +64,7 @@ extension Inspector { } public struct DescribeResourceGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceGroupArns", required: true, type: .list) ] /// The ARN that specifies the resource group that you want to describe. @@ -80,7 +80,7 @@ extension Inspector { } public struct ListFindingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "filter", required: false, type: .structure), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -111,7 +111,7 @@ extension Inspector { } public struct DescribeCrossAccountAccessRoleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "valid", required: true, type: .boolean), AWSShapeMember(label: "roleArn", required: true, type: .string), AWSShapeMember(label: "registeredAt", required: true, type: .timestamp) @@ -137,7 +137,7 @@ extension Inspector { } public struct PreviewAgentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "previewAgentsArn", required: true, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string) @@ -163,7 +163,7 @@ extension Inspector { } public struct DescribeRulesPackagesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rulesPackages", required: true, type: .list), AWSShapeMember(label: "failedItems", required: true, type: .map) ] @@ -184,7 +184,7 @@ extension Inspector { } public struct Subscription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceArn", required: true, type: .string), AWSShapeMember(label: "eventSubscriptions", required: true, type: .list), AWSShapeMember(label: "topicArn", required: true, type: .string) @@ -210,7 +210,7 @@ extension Inspector { } public struct AssessmentTarget: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceGroupArn", required: true, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "updatedAt", required: true, type: .timestamp), @@ -246,7 +246,7 @@ extension Inspector { } public struct DescribeAssessmentTemplatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTemplateArns", required: true, type: .list) ] public let assessmentTemplateArns: [String] @@ -261,7 +261,7 @@ extension Inspector { } public struct AddAttributesToFindingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributes", required: true, type: .list), AWSShapeMember(label: "findingArns", required: true, type: .list) ] @@ -282,7 +282,7 @@ extension Inspector { } public struct PreviewAgentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "agentPreviews", required: true, type: .list) ] @@ -303,7 +303,7 @@ extension Inspector { } public struct DescribeAssessmentRunsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failedItems", required: true, type: .map), AWSShapeMember(label: "assessmentRuns", required: true, type: .list) ] @@ -324,7 +324,7 @@ extension Inspector { } public struct EventSubscription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "event", required: true, type: .enum), AWSShapeMember(label: "subscribedAt", required: true, type: .timestamp) ] @@ -345,7 +345,7 @@ extension Inspector { } public struct CreateResourceGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceGroupArn", required: true, type: .string) ] /// The ARN that specifies the resource group that is created. @@ -361,7 +361,7 @@ extension Inspector { } public struct ResourceGroupTag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .string), AWSShapeMember(label: "value", required: false, type: .string) ] @@ -382,7 +382,7 @@ extension Inspector { } public struct RemoveAttributesFromFindingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributeKeys", required: true, type: .list), AWSShapeMember(label: "findingArns", required: true, type: .list) ] @@ -403,7 +403,7 @@ extension Inspector { } public struct DescribeAssessmentRunsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentRunArns", required: true, type: .list) ] /// The ARN that specifies the assessment run that you want to describe. @@ -419,7 +419,7 @@ extension Inspector { } public struct ListAssessmentTemplatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTemplateArns", required: true, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -440,7 +440,7 @@ extension Inspector { } public struct DescribeAssessmentTemplatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failedItems", required: true, type: .map), AWSShapeMember(label: "assessmentTemplates", required: true, type: .list) ] @@ -466,7 +466,7 @@ extension Inspector { } public struct StartAssessmentRunResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentRunArn", required: true, type: .string) ] /// The ARN of the assessment run that has been started. @@ -482,7 +482,7 @@ extension Inspector { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .string), AWSShapeMember(label: "value", required: false, type: .string) ] @@ -512,7 +512,7 @@ extension Inspector { } public struct ListAssessmentTargetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "assessmentTargetArns", required: true, type: .list) ] @@ -533,7 +533,7 @@ extension Inspector { } public struct ResourceGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: true, type: .list), AWSShapeMember(label: "createdAt", required: true, type: .timestamp), AWSShapeMember(label: "arn", required: true, type: .string) @@ -559,7 +559,7 @@ extension Inspector { } public struct UnsubscribeFromEventRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceArn", required: true, type: .string), AWSShapeMember(label: "event", required: true, type: .enum), AWSShapeMember(label: "topicArn", required: true, type: .string) @@ -585,7 +585,7 @@ extension Inspector { } public struct GetAssessmentReportRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "reportType", required: true, type: .enum), AWSShapeMember(label: "reportFileFormat", required: true, type: .enum), AWSShapeMember(label: "assessmentRunArn", required: true, type: .string) @@ -611,7 +611,7 @@ extension Inspector { } public struct Attribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .string), AWSShapeMember(label: "value", required: false, type: .string) ] @@ -632,7 +632,7 @@ extension Inspector { } public struct DeleteAssessmentTemplateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTemplateArn", required: true, type: .string) ] /// The ARN that specifies the assessment template that you want to delete. @@ -648,7 +648,7 @@ extension Inspector { } public struct DescribeAssessmentTargetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTargetArns", required: true, type: .list) ] /// The ARNs that specifies the assessment targets that you want to describe. @@ -664,7 +664,7 @@ extension Inspector { } public struct DeleteAssessmentRunRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentRunArn", required: true, type: .string) ] /// The ARN that specifies the assessment run that you want to delete. @@ -680,7 +680,7 @@ extension Inspector { } public struct FindingFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ruleNames", required: false, type: .list), AWSShapeMember(label: "severities", required: false, type: .list), AWSShapeMember(label: "attributes", required: false, type: .list), @@ -810,7 +810,7 @@ extension Inspector { } public struct RulesPackage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "version", required: true, type: .string), @@ -846,7 +846,7 @@ extension Inspector { } public struct AssessmentRunStateChange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: true, type: .enum), AWSShapeMember(label: "stateChangedAt", required: true, type: .timestamp) ] @@ -867,7 +867,7 @@ extension Inspector { } public struct ListFindingsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "findingArns", required: true, type: .list) ] @@ -888,7 +888,7 @@ extension Inspector { } public struct ListAssessmentRunsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "filter", required: false, type: .structure), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -919,7 +919,7 @@ extension Inspector { } public struct AgentPreview: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "autoScalingGroup", required: false, type: .string), AWSShapeMember(label: "agentId", required: true, type: .string) ] @@ -940,7 +940,7 @@ extension Inspector { } public struct ListRulesPackagesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer) ] @@ -961,7 +961,7 @@ extension Inspector { } public struct AssessmentRunFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "namePattern", required: false, type: .string), AWSShapeMember(label: "states", required: false, type: .list), AWSShapeMember(label: "startTimeRange", required: false, type: .structure), @@ -1007,7 +1007,7 @@ extension Inspector { } public struct GetTelemetryMetadataRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentRunArn", required: true, type: .string) ] /// The ARN that specifies the assessment run that has the telemetry data that you want to obtain. @@ -1023,7 +1023,7 @@ extension Inspector { } public struct AssessmentTargetFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTargetNamePattern", required: false, type: .string) ] /// For a record to match a filter, an explicit value or a string that contains a wildcard that is specified for this data type property must match the value of the assessmentTargetName property of the AssessmentTarget data type. @@ -1039,7 +1039,7 @@ extension Inspector { } public struct AssessmentRun: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: true, type: .enum), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "createdAt", required: true, type: .timestamp), @@ -1125,7 +1125,7 @@ extension Inspector { } public struct ListEventSubscriptionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "subscriptions", required: true, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1146,7 +1146,7 @@ extension Inspector { } public struct DeleteAssessmentTargetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTargetArn", required: true, type: .string) ] /// The ARN that specifies the assessment target that you want to delete. @@ -1168,7 +1168,7 @@ extension Inspector { } public struct CreateAssessmentTemplateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTemplateArn", required: true, type: .string) ] /// The ARN that specifies the assessment template that is created. @@ -1202,11 +1202,12 @@ extension Inspector { case error = "ERROR" case completed = "COMPLETED" case completedWithErrors = "COMPLETED_WITH_ERRORS" + case canceled = "CANCELED" public var description: String { return self.rawValue } } public struct Finding: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assetType", required: false, type: .enum), AWSShapeMember(label: "schemaVersion", required: false, type: .integer), AWSShapeMember(label: "userAttributes", required: true, type: .list), @@ -1307,7 +1308,7 @@ extension Inspector { } public struct ListAssessmentRunAgentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "filter", required: false, type: .structure), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -1338,7 +1339,7 @@ extension Inspector { } public struct ListTagsForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceArn", required: true, type: .string) ] /// The ARN that specifies the assessment template whose tags you want to list. @@ -1354,7 +1355,7 @@ extension Inspector { } public struct ListEventSubscriptionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceArn", required: false, type: .string), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer) @@ -1380,7 +1381,7 @@ extension Inspector { } public struct UpdateAssessmentTargetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceGroupArn", required: true, type: .string), AWSShapeMember(label: "assessmentTargetArn", required: true, type: .string), AWSShapeMember(label: "assessmentTargetName", required: true, type: .string) @@ -1406,7 +1407,7 @@ extension Inspector { } public struct AddAttributesToFindingsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failedItems", required: true, type: .map) ] /// Attribute details that cannot be described. An error code is provided for each failed item. @@ -1440,7 +1441,7 @@ extension Inspector { } public struct CreateAssessmentTargetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTargetArn", required: true, type: .string) ] /// The ARN that specifies the assessment target that is created. @@ -1456,7 +1457,7 @@ extension Inspector { } public struct ListAssessmentRunsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "assessmentRunArns", required: true, type: .list) ] @@ -1477,7 +1478,7 @@ extension Inspector { } public struct AssessmentRunAgent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "telemetryMetadata", required: true, type: .list), AWSShapeMember(label: "autoScalingGroup", required: false, type: .string), AWSShapeMember(label: "agentHealth", required: true, type: .enum), @@ -1523,7 +1524,7 @@ extension Inspector { } public struct DescribeResourceGroupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failedItems", required: true, type: .map), AWSShapeMember(label: "resourceGroups", required: true, type: .list) ] @@ -1543,8 +1544,14 @@ extension Inspector { } } + public enum StopAction: String, CustomStringConvertible, Codable { + case startEvaluation = "START_EVALUATION" + case skipEvaluation = "SKIP_EVALUATION" + public var description: String { return self.rawValue } + } + public struct AssessmentTemplateFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "namePattern", required: false, type: .string), AWSShapeMember(label: "rulesPackageArns", required: false, type: .list), AWSShapeMember(label: "durationRange", required: false, type: .structure) @@ -1569,29 +1576,8 @@ extension Inspector { } } - public struct GetAssessmentReportResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "status", required: true, type: .enum), - AWSShapeMember(label: "url", required: false, type: .string) - ] - /// Specifies the status of the request to generate an assessment report. - public let status: ReportStatus - /// Specifies the URL where you can find the generated assessment report. This parameter is only returned if the report is successfully generated. - public let url: String? - - public init(status: ReportStatus, url: String? = nil) { - self.status = status - self.url = url - } - - private enum CodingKeys: String, CodingKey { - case status = "status" - case url = "url" - } - } - public struct AgentAlreadyRunningAssessment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "agentId", required: true, type: .string), AWSShapeMember(label: "assessmentRunArn", required: true, type: .string) ] @@ -1611,8 +1597,29 @@ extension Inspector { } } + public struct GetAssessmentReportResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: true, type: .enum), + AWSShapeMember(label: "url", required: false, type: .string) + ] + /// Specifies the status of the request to generate an assessment report. + public let status: ReportStatus + /// Specifies the URL where you can find the generated assessment report. This parameter is only returned if the report is successfully generated. + public let url: String? + + public init(status: ReportStatus, url: String? = nil) { + self.status = status + self.url = url + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case url = "url" + } + } + public struct ListTagsForResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: true, type: .list) ] /// A collection of key and value pairs. @@ -1634,7 +1641,7 @@ extension Inspector { } public struct DurationRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxSeconds", required: false, type: .integer), AWSShapeMember(label: "minSeconds", required: false, type: .integer) ] @@ -1675,7 +1682,7 @@ extension Inspector { } public struct TimestampRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "beginDate", required: false, type: .timestamp), AWSShapeMember(label: "endDate", required: false, type: .timestamp) ] @@ -1696,7 +1703,7 @@ extension Inspector { } public struct TelemetryMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "dataSize", required: false, type: .long), AWSShapeMember(label: "count", required: true, type: .long), AWSShapeMember(label: "messageType", required: true, type: .string) @@ -1722,7 +1729,7 @@ extension Inspector { } public struct AssessmentTemplate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTargetArn", required: true, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "createdAt", required: true, type: .timestamp), @@ -1768,7 +1775,7 @@ extension Inspector { } public struct RegisterCrossAccountAccessRoleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "roleArn", required: true, type: .string) ] /// The ARN of the IAM role that Amazon Inspector uses to list your EC2 instances during the assessment run or when you call the PreviewAgents action. @@ -1784,7 +1791,7 @@ extension Inspector { } public struct AssetAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "autoScalingGroup", required: false, type: .string), AWSShapeMember(label: "hostname", required: false, type: .string), AWSShapeMember(label: "amiId", required: false, type: .string), @@ -1825,7 +1832,7 @@ extension Inspector { } public struct ListAssessmentRunAgentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "assessmentRunAgents", required: true, type: .list) ] @@ -1846,7 +1853,7 @@ extension Inspector { } public struct ListAssessmentTargetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "filter", required: false, type: .structure) @@ -1872,7 +1879,7 @@ extension Inspector { } public struct GetTelemetryMetadataResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "telemetryMetadata", required: true, type: .list) ] /// Telemetry details. @@ -1888,7 +1895,7 @@ extension Inspector { } public struct CreateAssessmentTemplateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTemplateName", required: true, type: .string), AWSShapeMember(label: "assessmentTargetArn", required: true, type: .string), AWSShapeMember(label: "durationInSeconds", required: true, type: .integer), @@ -1903,7 +1910,7 @@ extension Inspector { public let durationInSeconds: Int32 /// The ARNs that specify the rules packages that you want to attach to the assessment template. public let rulesPackageArns: [String] - /// The user-defined attributes that are assigned to every finding that is generated by the assessment run that uses this assessment template. + /// The user-defined attributes that are assigned to every finding that is generated by the assessment run that uses this assessment template. An attribute is a key and value pair (an Attribute object). Within an assessment template, each key must be unique. public let userAttributesForFindings: [Attribute]? public init(assessmentTemplateName: String, assessmentTargetArn: String, durationInSeconds: Int32, rulesPackageArns: [String], userAttributesForFindings: [Attribute]? = nil) { @@ -1924,7 +1931,7 @@ extension Inspector { } public struct StartAssessmentRunRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentRunName", required: false, type: .string), AWSShapeMember(label: "assessmentTemplateArn", required: true, type: .string) ] @@ -1945,7 +1952,7 @@ extension Inspector { } public struct AgentFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "agentHealthCodes", required: true, type: .list), AWSShapeMember(label: "agentHealths", required: true, type: .list) ] @@ -1966,7 +1973,7 @@ extension Inspector { } public struct SubscribeToEventRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceArn", required: true, type: .string), AWSShapeMember(label: "event", required: true, type: .enum), AWSShapeMember(label: "topicArn", required: true, type: .string) @@ -2000,7 +2007,7 @@ extension Inspector { } public struct CreateResourceGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceGroupTags", required: true, type: .list) ] /// A collection of keys and an array of possible values, '[{"key":"key1","values":["Value1","Value2"]},{"key":"Key2","values":["Value3"]}]'. For example,'[{"key":"Name","values":["TestEC2Instance"]}]'. @@ -2016,7 +2023,7 @@ extension Inspector { } public struct DescribeFindingsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "findings", required: true, type: .list), AWSShapeMember(label: "failedItems", required: true, type: .map) ] @@ -2037,7 +2044,7 @@ extension Inspector { } public struct SetTagsForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceArn", required: true, type: .string), AWSShapeMember(label: "tags", required: false, type: .list) ] @@ -2058,7 +2065,7 @@ extension Inspector { } public struct FailedItemDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "failureCode", required: true, type: .enum), AWSShapeMember(label: "retryable", required: true, type: .boolean) ] @@ -2079,7 +2086,7 @@ extension Inspector { } public struct AssessmentRunNotification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "snsTopicArn", required: false, type: .string), AWSShapeMember(label: "snsPublishStatusCode", required: false, type: .enum), AWSShapeMember(label: "event", required: true, type: .enum), @@ -2120,7 +2127,7 @@ extension Inspector { } public struct ListAssessmentTemplatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "filter", required: false, type: .structure), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -2151,23 +2158,28 @@ extension Inspector { } public struct StopAssessmentRunRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "stopAction", required: false, type: .enum), AWSShapeMember(label: "assessmentRunArn", required: true, type: .string) ] + /// An input option that can be set to either START_EVALUATION or SKIP_EVALUATION. START_EVALUATION (the default value), stops the AWS agent from collecting data and begins the results evaluation and the findings generation process. SKIP_EVALUATION cancels the assessment run immediately, after which no findings are generated. + public let stopAction: StopAction? /// The ARN of the assessment run that you want to stop. public let assessmentRunArn: String - public init(assessmentRunArn: String) { + public init(stopAction: StopAction? = nil, assessmentRunArn: String) { + self.stopAction = stopAction self.assessmentRunArn = assessmentRunArn } private enum CodingKeys: String, CodingKey { + case stopAction = "stopAction" case assessmentRunArn = "assessmentRunArn" } } public struct ListRulesPackagesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rulesPackageArns", required: true, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -2188,7 +2200,7 @@ extension Inspector { } public struct CreateAssessmentTargetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourceGroupArn", required: true, type: .string), AWSShapeMember(label: "assessmentTargetName", required: true, type: .string) ] @@ -2209,7 +2221,7 @@ extension Inspector { } public struct InspectorServiceAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "schemaVersion", required: true, type: .integer), AWSShapeMember(label: "rulesPackageArn", required: false, type: .string), AWSShapeMember(label: "assessmentRunArn", required: false, type: .string) @@ -2235,7 +2247,7 @@ extension Inspector { } public struct DescribeAssessmentTargetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "assessmentTargets", required: true, type: .list), AWSShapeMember(label: "failedItems", required: true, type: .map) ] @@ -2256,7 +2268,7 @@ extension Inspector { } public struct DescribeFindingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "locale", required: false, type: .enum), AWSShapeMember(label: "findingArns", required: true, type: .list) ] diff --git a/Sources/AWSSDKSwift/Services/iot-data/IotData_Shapes.swift b/Sources/AWSSDKSwift/Services/iot-data/IotData_Shapes.swift index 69146014564..3d233a64afd 100644 --- a/Sources/AWSSDKSwift/Services/iot-data/IotData_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/iot-data/IotData_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension IotData { public struct GetThingShadowRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) ] /// The name of the thing. @@ -22,7 +22,7 @@ extension IotData { } public struct DeleteThingShadowRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) ] /// The name of the thing. @@ -40,7 +40,7 @@ extension IotData { public struct DeleteThingShadowResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "payload" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "payload", required: true, type: .blob) ] /// The state information, in JSON format. @@ -58,7 +58,7 @@ extension IotData { public struct PublishRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "payload" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "qos", location: .querystring(locationName: "qos"), required: false, type: .integer), AWSShapeMember(label: "payload", required: false, type: .blob), AWSShapeMember(label: "topic", location: .uri(locationName: "topic"), required: true, type: .string) @@ -86,7 +86,7 @@ extension IotData { public struct GetThingShadowResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "payload" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "payload", required: false, type: .blob) ] /// The state information, in JSON format. @@ -104,7 +104,7 @@ extension IotData { public struct UpdateThingShadowResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "payload" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "payload", required: false, type: .blob) ] /// The state information, in JSON format. @@ -122,7 +122,7 @@ extension IotData { public struct UpdateThingShadowRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "payload" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "payload", required: true, type: .blob), AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/iot-jobs-data/IotJobsData_API.swift b/Sources/AWSSDKSwift/Services/iot-jobs-data/IotJobsData_API.swift new file mode 100644 index 00000000000..f7a70c1b74d --- /dev/null +++ b/Sources/AWSSDKSwift/Services/iot-jobs-data/IotJobsData_API.swift @@ -0,0 +1,48 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +AWS IoT Jobs is a service that allows you to define a set of jobs — remote operations that are sent to and executed on one or more devices connected to AWS IoT. For example, you can define a job that instructs a set of devices to download and install application or firmware updates, reboot, rotate certificates, or perform remote troubleshooting operations. To create a job, you make a job document which is a description of the remote operations to be performed, and you specify a list of targets that should perform the operations. The targets can be individual things, thing groups or both. AWS IoT Jobs sends a message to inform the targets that a job is available. The target starts the execution of the job by downloading the job document, performing the operations it specifies, and reporting its progress to AWS IoT. The Jobs service provides commands to track the progress of a job on a specific target and for all the targets of the job +*/ +public struct IotJobsData { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "data.jobs.iot", + serviceProtocol: ServiceProtocol(type: .restjson), + apiVersion: "2017-09-29", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [IotJobsDataError.self] + ) + } + + /// Updates the status of a job execution. + public func updateJobExecution(_ input: UpdateJobExecutionRequest) throws -> UpdateJobExecutionResponse { + return try client.send(operation: "UpdateJobExecution", path: "/things/{thingName}/jobs/{jobId}", httpMethod: "POST", input: input) + } + + /// Gets and starts the next pending (status IN_PROGRESS or QUEUED) job execution for a thing. + public func startNextPendingJobExecution(_ input: StartNextPendingJobExecutionRequest) throws -> StartNextPendingJobExecutionResponse { + return try client.send(operation: "StartNextPendingJobExecution", path: "/things/{thingName}/jobs/$next", httpMethod: "PUT", input: input) + } + + /// Gets details of a job execution. + public func describeJobExecution(_ input: DescribeJobExecutionRequest) throws -> DescribeJobExecutionResponse { + return try client.send(operation: "DescribeJobExecution", path: "/things/{thingName}/jobs/{jobId}", httpMethod: "GET", input: input) + } + + /// Gets the list of all jobs for a thing that are not in a terminal status. + public func getPendingJobExecutions(_ input: GetPendingJobExecutionsRequest) throws -> GetPendingJobExecutionsResponse { + return try client.send(operation: "GetPendingJobExecutions", path: "/things/{thingName}/jobs", httpMethod: "GET", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/iot-jobs-data/IotJobsData_Error.swift b/Sources/AWSSDKSwift/Services/iot-jobs-data/IotJobsData_Error.swift new file mode 100644 index 00000000000..f5ff9bf84de --- /dev/null +++ b/Sources/AWSSDKSwift/Services/iot-jobs-data/IotJobsData_Error.swift @@ -0,0 +1,41 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for IotJobsData +public enum IotJobsDataError: AWSErrorType { + case invalidRequestException(message: String?) + case resourceNotFoundException(message: String?) + case throttlingException(message: String?) + case serviceUnavailableException(message: String?) + case certificateValidationException(message: String?) + case invalidStateTransitionException(message: String?) + case terminalStateException(message: String?) +} + +extension IotJobsDataError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "InvalidRequestException": + self = .invalidRequestException(message: message) + case "ResourceNotFoundException": + self = .resourceNotFoundException(message: message) + case "ThrottlingException": + self = .throttlingException(message: message) + case "ServiceUnavailableException": + self = .serviceUnavailableException(message: message) + case "CertificateValidationException": + self = .certificateValidationException(message: message) + case "InvalidStateTransitionException": + self = .invalidStateTransitionException(message: message) + case "TerminalStateException": + self = .terminalStateException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/iot-jobs-data/IotJobsData_Shapes.swift b/Sources/AWSSDKSwift/Services/iot-jobs-data/IotJobsData_Shapes.swift new file mode 100644 index 00000000000..f52b1086b73 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/iot-jobs-data/IotJobsData_Shapes.swift @@ -0,0 +1,340 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension IotJobsData { + + public struct UpdateJobExecutionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "expectedVersion", required: false, type: .long), + AWSShapeMember(label: "status", required: true, type: .enum), + AWSShapeMember(label: "includeJobDocument", required: false, type: .boolean), + AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string), + AWSShapeMember(label: "statusDetails", required: false, type: .map), + AWSShapeMember(label: "includeJobExecutionState", required: false, type: .boolean), + AWSShapeMember(label: "executionNumber", required: false, type: .long), + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string) + ] + /// Optional. The expected current version of the job execution. Each time you update the job execution, its version is incremented. If the version of the job execution stored in Jobs does not match, the update is rejected with a VersionMismatch error, and an ErrorResponse that contains the current job execution status data is returned. (This makes it unnecessary to perform a separate DescribeJobExecution request in order to obtain the job execution status data.) + public let expectedVersion: Int64? + /// The new status for the job execution (IN_PROGRESS, FAILED, SUCCESS, or REJECTED). This must be specified on every update. + public let status: JobExecutionStatus + /// Optional. When set to true, the response contains the job document. The default is false. + public let includeJobDocument: Bool? + /// The name of the thing associated with the device. + public let thingName: String + /// Optional. A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged. + public let statusDetails: [String: String]? + /// Optional. When included and set to true, the response contains the JobExecutionState data. The default is false. + public let includeJobExecutionState: Bool? + /// Optional. A number that identifies a particular job execution on a particular device. + public let executionNumber: Int64? + /// The unique identifier assigned to this job when it was created. + public let jobId: String + + public init(expectedVersion: Int64? = nil, status: JobExecutionStatus, includeJobDocument: Bool? = nil, thingName: String, statusDetails: [String: String]? = nil, includeJobExecutionState: Bool? = nil, executionNumber: Int64? = nil, jobId: String) { + self.expectedVersion = expectedVersion + self.status = status + self.includeJobDocument = includeJobDocument + self.thingName = thingName + self.statusDetails = statusDetails + self.includeJobExecutionState = includeJobExecutionState + self.executionNumber = executionNumber + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case expectedVersion = "expectedVersion" + case status = "status" + case includeJobDocument = "includeJobDocument" + case thingName = "thingName" + case statusDetails = "statusDetails" + case includeJobExecutionState = "includeJobExecutionState" + case executionNumber = "executionNumber" + case jobId = "jobId" + } + } + + public struct UpdateJobExecutionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "executionState", required: false, type: .structure), + AWSShapeMember(label: "jobDocument", required: false, type: .string) + ] + /// A JobExecutionState object. + public let executionState: JobExecutionState? + /// The contents of the Job Documents. + public let jobDocument: String? + + public init(executionState: JobExecutionState? = nil, jobDocument: String? = nil) { + self.executionState = executionState + self.jobDocument = jobDocument + } + + private enum CodingKeys: String, CodingKey { + case executionState = "executionState" + case jobDocument = "jobDocument" + } + } + + public struct GetPendingJobExecutionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "queuedJobs", required: false, type: .list), + AWSShapeMember(label: "inProgressJobs", required: false, type: .list) + ] + /// A list of JobExecutionSummary objects with status QUEUED. + public let queuedJobs: [JobExecutionSummary]? + /// A list of JobExecutionSummary objects with status IN_PROGRESS. + public let inProgressJobs: [JobExecutionSummary]? + + public init(queuedJobs: [JobExecutionSummary]? = nil, inProgressJobs: [JobExecutionSummary]? = nil) { + self.queuedJobs = queuedJobs + self.inProgressJobs = inProgressJobs + } + + private enum CodingKeys: String, CodingKey { + case queuedJobs = "queuedJobs" + case inProgressJobs = "inProgressJobs" + } + } + + public enum JobExecutionStatus: String, CustomStringConvertible, Codable { + case queued = "QUEUED" + case inProgress = "IN_PROGRESS" + case succeeded = "SUCCEEDED" + case failed = "FAILED" + case rejected = "REJECTED" + case removed = "REMOVED" + case canceled = "CANCELED" + public var description: String { return self.rawValue } + } + + public struct JobExecution: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "thingName", required: false, type: .string), + AWSShapeMember(label: "statusDetails", required: false, type: .map), + AWSShapeMember(label: "jobDocument", required: false, type: .string), + AWSShapeMember(label: "startedAt", required: false, type: .long), + AWSShapeMember(label: "versionNumber", required: false, type: .long), + AWSShapeMember(label: "lastUpdatedAt", required: false, type: .long), + AWSShapeMember(label: "queuedAt", required: false, type: .long), + AWSShapeMember(label: "executionNumber", required: false, type: .long), + AWSShapeMember(label: "jobId", required: false, type: .string) + ] + /// The status of the job execution. Can be one of: "QUEUED", "IN_PROGRESS", "FAILED", "SUCCESS", "CANCELED", "REJECTED", or "REMOVED". + public let status: JobExecutionStatus? + /// The name of the thing that is executing the job. + public let thingName: String? + /// A collection of name/value pairs that describe the status of the job execution. + public let statusDetails: [String: String]? + /// The content of the job document. + public let jobDocument: String? + /// The time, in milliseconds since the epoch, when the job execution was started. + public let startedAt: Int64? + /// The version of the job execution. Job execution versions are incremented each time they are updated by a device. + public let versionNumber: Int64? + /// The time, in milliseconds since the epoch, when the job execution was last updated. + public let lastUpdatedAt: Int64? + /// The time, in milliseconds since the epoch, when the job execution was enqueued. + public let queuedAt: Int64? + /// A number that identifies a particular job execution on a particular device. It can be used later in commands that return or update job execution information. + public let executionNumber: Int64? + /// The unique identifier you assigned to this job when it was created. + public let jobId: String? + + public init(status: JobExecutionStatus? = nil, thingName: String? = nil, statusDetails: [String: String]? = nil, jobDocument: String? = nil, startedAt: Int64? = nil, versionNumber: Int64? = nil, lastUpdatedAt: Int64? = nil, queuedAt: Int64? = nil, executionNumber: Int64? = nil, jobId: String? = nil) { + self.status = status + self.thingName = thingName + self.statusDetails = statusDetails + self.jobDocument = jobDocument + self.startedAt = startedAt + self.versionNumber = versionNumber + self.lastUpdatedAt = lastUpdatedAt + self.queuedAt = queuedAt + self.executionNumber = executionNumber + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case thingName = "thingName" + case statusDetails = "statusDetails" + case jobDocument = "jobDocument" + case startedAt = "startedAt" + case versionNumber = "versionNumber" + case lastUpdatedAt = "lastUpdatedAt" + case queuedAt = "queuedAt" + case executionNumber = "executionNumber" + case jobId = "jobId" + } + } + + public struct StartNextPendingJobExecutionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "statusDetails", required: false, type: .map), + AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) + ] + /// A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged. + public let statusDetails: [String: String]? + /// The name of the thing associated with the device. + public let thingName: String + + public init(statusDetails: [String: String]? = nil, thingName: String) { + self.statusDetails = statusDetails + self.thingName = thingName + } + + private enum CodingKeys: String, CodingKey { + case statusDetails = "statusDetails" + case thingName = "thingName" + } + } + + public struct JobExecutionState: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "versionNumber", required: false, type: .long), + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "statusDetails", required: false, type: .map) + ] + /// The version of the job execution. Job execution versions are incremented each time they are updated by a device. + public let versionNumber: Int64? + /// The status of the job execution. Can be one of: "QUEUED", "IN_PROGRESS", "FAILED", "SUCCESS", "CANCELED", "REJECTED", or "REMOVED". + public let status: JobExecutionStatus? + /// A collection of name/value pairs that describe the status of the job execution. + public let statusDetails: [String: String]? + + public init(versionNumber: Int64? = nil, status: JobExecutionStatus? = nil, statusDetails: [String: String]? = nil) { + self.versionNumber = versionNumber + self.status = status + self.statusDetails = statusDetails + } + + private enum CodingKeys: String, CodingKey { + case versionNumber = "versionNumber" + case status = "status" + case statusDetails = "statusDetails" + } + } + + public struct GetPendingJobExecutionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) + ] + /// The name of the thing that is executing the job. + public let thingName: String + + public init(thingName: String) { + self.thingName = thingName + } + + private enum CodingKeys: String, CodingKey { + case thingName = "thingName" + } + } + + public struct DescribeJobExecutionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string), + AWSShapeMember(label: "includeJobDocument", location: .querystring(locationName: "includeJobDocument"), required: false, type: .boolean), + AWSShapeMember(label: "executionNumber", location: .querystring(locationName: "executionNumber"), required: false, type: .long), + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string) + ] + /// The thing name associated with the device the job execution is running on. + public let thingName: String + /// Optional. When set to true, the response contains the job document. The default is false. + public let includeJobDocument: Bool? + /// Optional. A number that identifies a particular job execution on a particular device. If not specified, the latest job execution is returned. + public let executionNumber: Int64? + /// The unique identifier assigned to this job when it was created. + public let jobId: String + + public init(thingName: String, includeJobDocument: Bool? = nil, executionNumber: Int64? = nil, jobId: String) { + self.thingName = thingName + self.includeJobDocument = includeJobDocument + self.executionNumber = executionNumber + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case thingName = "thingName" + case includeJobDocument = "includeJobDocument" + case executionNumber = "executionNumber" + case jobId = "jobId" + } + } + + public struct StartNextPendingJobExecutionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "execution", required: false, type: .structure) + ] + /// A JobExecution object. + public let execution: JobExecution? + + public init(execution: JobExecution? = nil) { + self.execution = execution + } + + private enum CodingKeys: String, CodingKey { + case execution = "execution" + } + } + + public struct DescribeJobExecutionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "execution", required: false, type: .structure) + ] + /// Contains data about a job execution. + public let execution: JobExecution? + + public init(execution: JobExecution? = nil) { + self.execution = execution + } + + private enum CodingKeys: String, CodingKey { + case execution = "execution" + } + } + + public struct JobExecutionSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "versionNumber", required: false, type: .long), + AWSShapeMember(label: "lastUpdatedAt", required: false, type: .long), + AWSShapeMember(label: "startedAt", required: false, type: .long), + AWSShapeMember(label: "queuedAt", required: false, type: .long), + AWSShapeMember(label: "executionNumber", required: false, type: .long), + AWSShapeMember(label: "jobId", required: false, type: .string) + ] + /// The version of the job execution. Job execution versions are incremented each time AWS IoT Jobs receives an update from a device. + public let versionNumber: Int64? + /// The time, in milliseconds since the epoch, when the job execution was last updated. + public let lastUpdatedAt: Int64? + /// The time, in milliseconds since the epoch, when the job execution started. + public let startedAt: Int64? + /// The time, in milliseconds since the epoch, when the job execution was enqueued. + public let queuedAt: Int64? + /// A number that identifies a particular job execution on a particular device. + public let executionNumber: Int64? + /// The unique identifier you assigned to this job when it was created. + public let jobId: String? + + public init(versionNumber: Int64? = nil, lastUpdatedAt: Int64? = nil, startedAt: Int64? = nil, queuedAt: Int64? = nil, executionNumber: Int64? = nil, jobId: String? = nil) { + self.versionNumber = versionNumber + self.lastUpdatedAt = lastUpdatedAt + self.startedAt = startedAt + self.queuedAt = queuedAt + self.executionNumber = executionNumber + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case versionNumber = "versionNumber" + case lastUpdatedAt = "lastUpdatedAt" + case startedAt = "startedAt" + case queuedAt = "queuedAt" + case executionNumber = "executionNumber" + case jobId = "jobId" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/iot/Iot_API.swift b/Sources/AWSSDKSwift/Services/iot/Iot_API.swift index f4a45c5f39c..3f0597c269d 100644 --- a/Sources/AWSSDKSwift/Services/iot/Iot_API.swift +++ b/Sources/AWSSDKSwift/Services/iot/Iot_API.swift @@ -24,34 +24,39 @@ public struct Iot { ) } + /// Cancels a bulk thing provisioning task. + public func stopThingRegistrationTask(_ input: StopThingRegistrationTaskRequest) throws -> StopThingRegistrationTaskResponse { + return try client.send(operation: "StopThingRegistrationTask", path: "/thing-registration-tasks/{taskId}/cancel", httpMethod: "PUT", input: input) + } + + /// Deletes a role alias + public func deleteRoleAlias(_ input: DeleteRoleAliasRequest) throws -> DeleteRoleAliasResponse { + return try client.send(operation: "DeleteRoleAlias", path: "/role-aliases/{roleAlias}", httpMethod: "DELETE", input: input) + } + /// Updates the status of the specified certificate. This operation is idempotent. Moving a certificate from the ACTIVE state (including REVOKED) will not disconnect currently connected devices, but these devices will be unable to reconnect. The ACTIVE state is required to authenticate devices connecting to AWS IoT using a certificate. public func updateCertificate(_ input: UpdateCertificateRequest) throws { _ = try client.send(operation: "UpdateCertificate", path: "/certificates/{certificateId}", httpMethod: "PUT", input: input) } - /// Sets the specified version of the specified policy as the policy's default (operative) version. This action affects all certificates to which the policy is attached. To list the principals the policy is attached to, use the ListPrincipalPolicy API. - public func setDefaultPolicyVersion(_ input: SetDefaultPolicyVersionRequest) throws { - _ = try client.send(operation: "SetDefaultPolicyVersion", path: "/policies/{policyName}/version/{policyVersionId}", httpMethod: "PATCH", input: input) - } - - /// Creates a 2048-bit RSA key pair and issues an X.509 certificate using the issued public key. Note This is the only time AWS IoT issues the private key for this certificate, so it is important to keep it in a secure location. - public func createKeysAndCertificate(_ input: CreateKeysAndCertificateRequest) throws -> CreateKeysAndCertificateResponse { - return try client.send(operation: "CreateKeysAndCertificate", path: "/keys-and-certificate", httpMethod: "POST", input: input) + /// Describes a bulk thing provisioning task. + public func describeThingRegistrationTask(_ input: DescribeThingRegistrationTaskRequest) throws -> DescribeThingRegistrationTaskResponse { + return try client.send(operation: "DescribeThingRegistrationTask", path: "/thing-registration-tasks/{taskId}", httpMethod: "GET", input: input) } - /// Gets a registration code used to register a CA certificate with AWS IoT. - public func getRegistrationCode(_ input: GetRegistrationCodeRequest) throws -> GetRegistrationCodeResponse { - return try client.send(operation: "GetRegistrationCode", path: "/registrationcode", httpMethod: "GET", input: input) + /// Creates a bulk thing provisioning task. + public func startThingRegistrationTask(_ input: StartThingRegistrationTaskRequest) throws -> StartThingRegistrationTaskResponse { + return try client.send(operation: "StartThingRegistrationTask", path: "/thing-registration-tasks", httpMethod: "POST", input: input) } - /// Deletes the specified policy. A policy cannot be deleted if it has non-default versions or it is attached to any certificate. To delete a policy, use the DeletePolicyVersion API to delete all non-default versions of the policy; use the DetachPrincipalPolicy API to detach the policy from any certificate; and then use the DeletePolicy API to delete the policy. When a policy is deleted using DeletePolicy, its default version is deleted with it. - public func deletePolicy(_ input: DeletePolicyRequest) throws { - _ = try client.send(operation: "DeletePolicy", path: "/policies/{policyName}", httpMethod: "DELETE", input: input) + /// Sets the specified version of the specified policy as the policy's default (operative) version. This action affects all certificates to which the policy is attached. To list the principals the policy is attached to, use the ListPrincipalPolicy API. + public func setDefaultPolicyVersion(_ input: SetDefaultPolicyVersionRequest) throws { + _ = try client.send(operation: "SetDefaultPolicyVersion", path: "/policies/{policyName}/version/{policyVersionId}", httpMethod: "PATCH", input: input) } - /// Removes the specified policy from the specified certificate. - public func detachPrincipalPolicy(_ input: DetachPrincipalPolicyRequest) throws { - _ = try client.send(operation: "DetachPrincipalPolicy", path: "/principal-policies/{policyName}", httpMethod: "DELETE", input: input) + /// Describes event configurations. + public func describeEventConfigurations(_ input: DescribeEventConfigurationsRequest) throws -> DescribeEventConfigurationsResponse { + return try client.send(operation: "DescribeEventConfigurations", path: "/event-configurations", httpMethod: "GET", input: input) } /// Lists the things associated with the specified principal. @@ -59,39 +64,49 @@ public struct Iot { return try client.send(operation: "ListPrincipalThings", path: "/principals/things", httpMethod: "GET", input: input) } + /// Lists the job executions for a job. + public func listJobExecutionsForJob(_ input: ListJobExecutionsForJobRequest) throws -> ListJobExecutionsForJobResponse { + return try client.send(operation: "ListJobExecutionsForJob", path: "/jobs/{jobId}/things", httpMethod: "GET", input: input) + } + /// Cancels a pending transfer for the specified certificate. Note Only the transfer source account can use this operation to cancel a transfer. (Transfer destinations can use RejectCertificateTransfer instead.) After transfer, AWS IoT returns the certificate to the source account in the INACTIVE state. After the destination account has accepted the transfer, the transfer cannot be cancelled. After a certificate transfer is cancelled, the status of the certificate changes from PENDING_TRANSFER to INACTIVE. public func cancelCertificateTransfer(_ input: CancelCertificateTransferRequest) throws { _ = try client.send(operation: "CancelCertificateTransfer", path: "/cancel-certificate-transfer/{certificateId}", httpMethod: "PATCH", input: input) } - /// Accepts a pending certificate transfer. The default state of the certificate is INACTIVE. To check for pending certificate transfers, call ListCertificates to enumerate your certificates. - public func acceptCertificateTransfer(_ input: AcceptCertificateTransferRequest) throws { - _ = try client.send(operation: "AcceptCertificateTransfer", path: "/accept-certificate-transfer/{certificateId}", httpMethod: "PATCH", input: input) + /// List the thing groups in your account. + public func listThingGroups(_ input: ListThingGroupsRequest) throws -> ListThingGroupsResponse { + return try client.send(operation: "ListThingGroups", path: "/thing-groups", httpMethod: "GET", input: input) } - /// Attaches the specified policy to the specified principal (certificate or other credential). - public func attachPrincipalPolicy(_ input: AttachPrincipalPolicyRequest) throws { - _ = try client.send(operation: "AttachPrincipalPolicy", path: "/principal-policies/{policyName}", httpMethod: "PUT", input: input) + /// Updates an authorizer. + public func updateAuthorizer(_ input: UpdateAuthorizerRequest) throws -> UpdateAuthorizerResponse { + return try client.send(operation: "UpdateAuthorizer", path: "/authorizer/{authorizerName}", httpMethod: "PUT", input: input) } - /// Replaces the specified rule. You must specify all parameters for the new rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule. - public func replaceTopicRule(_ input: ReplaceTopicRuleRequest) throws { - _ = try client.send(operation: "ReplaceTopicRule", path: "/rules/{ruleName}", httpMethod: "PATCH", input: input) + /// Lists logging levels. + public func listV2LoggingLevels(_ input: ListV2LoggingLevelsRequest) throws -> ListV2LoggingLevelsResponse { + return try client.send(operation: "ListV2LoggingLevels", path: "/v2LoggingLevel", httpMethod: "GET", input: input) } - /// Lists the policies attached to the specified principal. If you use an Cognito identity, the ID must be in AmazonCognito Identity format. - public func listPrincipalPolicies(_ input: ListPrincipalPoliciesRequest) throws -> ListPrincipalPoliciesResponse { - return try client.send(operation: "ListPrincipalPolicies", path: "/principal-policies", httpMethod: "GET", input: input) + /// Provisions a thing. + public func registerThing(_ input: RegisterThingRequest) throws -> RegisterThingResponse { + return try client.send(operation: "RegisterThing", path: "/things", httpMethod: "POST", input: input) } - /// Rejects a pending certificate transfer. After AWS IoT rejects a certificate transfer, the certificate status changes from PENDING_TRANSFER to INACTIVE. To check for pending certificate transfers, call ListCertificates to enumerate your certificates. This operation can only be called by the transfer destination. After it is called, the certificate will be returned to the source's account in the INACTIVE state. - public func rejectCertificateTransfer(_ input: RejectCertificateTransferRequest) throws { - _ = try client.send(operation: "RejectCertificateTransfer", path: "/reject-certificate-transfer/{certificateId}", httpMethod: "PATCH", input: input) + /// Describes a search index. + public func describeIndex(_ input: DescribeIndexRequest) throws -> DescribeIndexResponse { + return try client.send(operation: "DescribeIndex", path: "/indices/{indexName}", httpMethod: "GET", input: input) } - /// List the device certificates signed by the specified CA certificate. - public func listCertificatesByCA(_ input: ListCertificatesByCARequest) throws -> ListCertificatesByCAResponse { - return try client.send(operation: "ListCertificatesByCA", path: "/certificates-by-ca/{caCertificateId}", httpMethod: "GET", input: input) + /// Accepts a pending certificate transfer. The default state of the certificate is INACTIVE. To check for pending certificate transfers, call ListCertificates to enumerate your certificates. + public func acceptCertificateTransfer(_ input: AcceptCertificateTransferRequest) throws { + _ = try client.send(operation: "AcceptCertificateTransfer", path: "/accept-certificate-transfer/{certificateId}", httpMethod: "PATCH", input: input) + } + + /// Update a thing group. + public func updateThingGroup(_ input: UpdateThingGroupRequest) throws -> UpdateThingGroupResponse { + return try client.send(operation: "UpdateThingGroup", path: "/thing-groups/{thingGroupName}", httpMethod: "PATCH", input: input) } /// Updates a registered CA certificate. @@ -99,9 +114,9 @@ public struct Iot { _ = try client.send(operation: "UpdateCACertificate", path: "/cacertificate/{caCertificateId}", httpMethod: "PUT", input: input) } - /// Deletes the specified rule. - public func deleteTopicRule(_ input: DeleteTopicRuleRequest) throws { - _ = try client.send(operation: "DeleteTopicRule", path: "/rules/{ruleName}", httpMethod: "DELETE", input: input) + /// Lists the job executions for the specified thing. + public func listJobExecutionsForThing(_ input: ListJobExecutionsForThingRequest) throws -> ListJobExecutionsForThingResponse { + return try client.send(operation: "ListJobExecutionsForThing", path: "/things/{thingName}/jobs", httpMethod: "GET", input: input) } /// Lists the versions of the specified policy and identifies the default version. @@ -109,9 +124,14 @@ public struct Iot { return try client.send(operation: "ListPolicyVersions", path: "/policies/{policyName}/version", httpMethod: "GET", input: input) } - /// Attaches the specified principal to the specified thing. - public func attachThingPrincipal(_ input: AttachThingPrincipalRequest) throws -> AttachThingPrincipalResponse { - return try client.send(operation: "AttachThingPrincipal", path: "/things/{thingName}/principals", httpMethod: "PUT", input: input) + /// Remove the specified thing from the specified group. + public func removeThingFromThingGroup(_ input: RemoveThingFromThingGroupRequest) throws -> RemoveThingFromThingGroupResponse { + return try client.send(operation: "RemoveThingFromThingGroup", path: "/thing-groups/removeThingFromThingGroup", httpMethod: "PUT", input: input) + } + + /// Describes a job execution. + public func describeJobExecution(_ input: DescribeJobExecutionRequest) throws -> DescribeJobExecutionResponse { + return try client.send(operation: "DescribeJobExecution", path: "/things/{thingName}/jobs/{jobId}", httpMethod: "GET", input: input) } /// Registers a device certificate with AWS IoT. If you have more than one CA certificate that has the same subject field, you must specify the CA certificate that was used to sign the device certificate being registered. @@ -124,14 +144,24 @@ public struct Iot { return try client.send(operation: "ListTopicRules", path: "/rules", httpMethod: "GET", input: input) } - /// Lists your things. Use the attributeName and attributeValue parameters to filter your things. For example, calling ListThings with attributeName=Color and attributeValue=Red retrieves all things in the registry that contain an attribute Color with the value Red. - public func listThings(_ input: ListThingsRequest) throws -> ListThingsResponse { - return try client.send(operation: "ListThings", path: "/things", httpMethod: "GET", input: input) + /// Create a thing group. + public func createThingGroup(_ input: CreateThingGroupRequest) throws -> CreateThingGroupResponse { + return try client.send(operation: "CreateThingGroup", path: "/thing-groups/{thingGroupName}", httpMethod: "POST", input: input) } - /// Creates an AWS IoT policy. The created policy is the default version for the policy. This operation creates a policy version with a version identifier of 1 and sets 1 as the policy's default version. - public func createPolicy(_ input: CreatePolicyRequest) throws -> CreatePolicyResponse { - return try client.send(operation: "CreatePolicy", path: "/policies/{policyName}", httpMethod: "POST", input: input) + /// Describes a job. + public func describeJob(_ input: DescribeJobRequest) throws -> DescribeJobResponse { + return try client.send(operation: "DescribeJob", path: "/jobs/{jobId}", httpMethod: "GET", input: input) + } + + /// Test custom authorization. + public func testAuthorization(_ input: TestAuthorizationRequest) throws -> TestAuthorizationResponse { + return try client.send(operation: "TestAuthorization", path: "/test-authorization", httpMethod: "POST", input: input) + } + + /// Cancels a job. + public func cancelJob(_ input: CancelJobRequest) throws -> CancelJobResponse { + return try client.send(operation: "CancelJob", path: "/jobs/{jobId}/cancel", httpMethod: "PUT", input: input) } /// Detaches the specified principal from the specified thing. @@ -144,9 +174,14 @@ public struct Iot { return try client.send(operation: "TransferCertificate", path: "/transfer-certificate/{certificateId}", httpMethod: "PATCH", input: input) } - /// Gets the logging options. - public func getLoggingOptions(_ input: GetLoggingOptionsRequest) throws -> GetLoggingOptionsResponse { - return try client.send(operation: "GetLoggingOptions", path: "/loggingOptions", httpMethod: "GET", input: input) + /// Lists the search indices. + public func listIndices(_ input: ListIndicesRequest) throws -> ListIndicesResponse { + return try client.send(operation: "ListIndices", path: "/indices", httpMethod: "GET", input: input) + } + + /// Updates a role alias. + public func updateRoleAlias(_ input: UpdateRoleAliasRequest) throws -> UpdateRoleAliasResponse { + return try client.send(operation: "UpdateRoleAlias", path: "/role-aliases/{roleAlias}", httpMethod: "PUT", input: input) } /// Lists the existing thing types. @@ -159,19 +194,19 @@ public struct Iot { _ = try client.send(operation: "SetLoggingOptions", path: "/loggingOptions", httpMethod: "POST", input: input) } - /// Lists certificates that are being transfered but not yet accepted. - public func listOutgoingCertificates(_ input: ListOutgoingCertificatesRequest) throws -> ListOutgoingCertificatesResponse { - return try client.send(operation: "ListOutgoingCertificates", path: "/certificates-out-going", httpMethod: "GET", input: input) + /// Gets the search configuration. + public func getIndexingConfiguration(_ input: GetIndexingConfigurationRequest) throws -> GetIndexingConfigurationResponse { + return try client.send(operation: "GetIndexingConfiguration", path: "/indexing/config", httpMethod: "GET", input: input) } - /// Describes a registered CA certificate. - public func describeCACertificate(_ input: DescribeCACertificateRequest) throws -> DescribeCACertificateResponse { - return try client.send(operation: "DescribeCACertificate", path: "/cacertificate/{caCertificateId}", httpMethod: "GET", input: input) + /// Gets the fine grained logging options. + public func getV2LoggingOptions(_ input: GetV2LoggingOptionsRequest) throws -> GetV2LoggingOptionsResponse { + return try client.send(operation: "GetV2LoggingOptions", path: "/v2LoggingOptions", httpMethod: "GET", input: input) } - /// Deprecates a thing type. You can not associate new things with deprecated thing type. - public func deprecateThingType(_ input: DeprecateThingTypeRequest) throws -> DeprecateThingTypeResponse { - return try client.send(operation: "DeprecateThingType", path: "/thing-types/{thingTypeName}/deprecate", httpMethod: "POST", input: input) + /// Updates the search configuration. + public func updateIndexingConfiguration(_ input: UpdateIndexingConfigurationRequest) throws -> UpdateIndexingConfigurationResponse { + return try client.send(operation: "UpdateIndexingConfiguration", path: "/indexing/config", httpMethod: "POST", input: input) } /// Creates an X.509 certificate using the specified certificate signing request. Note: The CSR must include a public key that is either an RSA key with a length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384 curves. Note: Reusing the same certificate signing request (CSR) results in a distinct certificate. You can create multiple certificates in a batch by creating a directory, copying multiple .csr files into that directory, and then specifying that directory on the command line. The following commands show how to create a batch of certificates given a batch of CSRs. Assuming a set of CSRs are located inside of the directory my-csr-directory: On Linux and OS X, the command is: $ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{} This command lists all of the CSRs in my-csr-directory and pipes each CSR file name to the aws iot create-certificate-from-csr AWS CLI command to create a certificate for the corresponding CSR. The aws iot create-certificate-from-csr part of the command can also be run in parallel to speed up the certificate creation process: $ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{} On Windows PowerShell, the command to create certificates for all CSRs in my-csr-directory is: > ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/$_} On a Windows command prompt, the command to create certificates for all CSRs in my-csr-directory is: > forfiles /p my-csr-directory /c "cmd /c aws iot create-certificate-from-csr --certificate-signing-request file://@path" @@ -179,19 +214,19 @@ public struct Iot { return try client.send(operation: "CreateCertificateFromCsr", path: "/certificates", httpMethod: "POST", input: input) } - /// Lists the principals associated with the specified thing. - public func listThingPrincipals(_ input: ListThingPrincipalsRequest) throws -> ListThingPrincipalsResponse { - return try client.send(operation: "ListThingPrincipals", path: "/things/{thingName}/principals", httpMethod: "GET", input: input) + /// Lists the policies attached to the specified thing group. + public func listAttachedPolicies(_ input: ListAttachedPoliciesRequest) throws -> ListAttachedPoliciesResponse { + return try client.send(operation: "ListAttachedPolicies", path: "/attached-policies/{target}", httpMethod: "POST", input: input) } - /// Lists the principals associated with the specified policy. + /// Lists the principals associated with the specified policy. Note: This API is deprecated. Please use ListTargetsForPolicy instead. public func listPolicyPrincipals(_ input: ListPolicyPrincipalsRequest) throws -> ListPolicyPrincipalsResponse { return try client.send(operation: "ListPolicyPrincipals", path: "/policy-principals", httpMethod: "GET", input: input) } - /// Gets information about the specified rule. - public func getTopicRule(_ input: GetTopicRuleRequest) throws -> GetTopicRuleResponse { - return try client.send(operation: "GetTopicRule", path: "/rules/{ruleName}", httpMethod: "GET", input: input) + /// Gets information about the specified thing type. + public func describeThingType(_ input: DescribeThingTypeRequest) throws -> DescribeThingTypeResponse { + return try client.send(operation: "DescribeThingType", path: "/thing-types/{thingTypeName}", httpMethod: "GET", input: input) } /// Creates a rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule. @@ -199,39 +234,39 @@ public struct Iot { _ = try client.send(operation: "CreateTopicRule", path: "/rules/{ruleName}", httpMethod: "POST", input: input) } - /// Gets information about the specified thing type. - public func describeThingType(_ input: DescribeThingTypeRequest) throws -> DescribeThingTypeResponse { - return try client.send(operation: "DescribeThingType", path: "/thing-types/{thingTypeName}", httpMethod: "GET", input: input) + /// Lists jobs. + public func listJobs(_ input: ListJobsRequest) throws -> ListJobsResponse { + return try client.send(operation: "ListJobs", path: "/jobs", httpMethod: "GET", input: input) } - /// Updates the data for a thing. - public func updateThing(_ input: UpdateThingRequest) throws -> UpdateThingResponse { - return try client.send(operation: "UpdateThing", path: "/things/{thingName}", httpMethod: "PATCH", input: input) + /// Deletes the specified certificate. A certificate cannot be deleted if it has a policy attached to it or if its status is set to ACTIVE. To delete a certificate, first use the DetachPrincipalPolicy API to detach all policies. Next, use the UpdateCertificate API to set the certificate to the INACTIVE status. + public func deleteCertificate(_ input: DeleteCertificateRequest) throws { + _ = try client.send(operation: "DeleteCertificate", path: "/certificates/{certificateId}", httpMethod: "DELETE", input: input) } - /// Creates a thing record in the thing registry. - public func createThing(_ input: CreateThingRequest) throws -> CreateThingResponse { - return try client.send(operation: "CreateThing", path: "/things/{thingName}", httpMethod: "POST", input: input) + /// Creates a role alias. + public func createRoleAlias(_ input: CreateRoleAliasRequest) throws -> CreateRoleAliasResponse { + return try client.send(operation: "CreateRoleAlias", path: "/role-aliases/{roleAlias}", httpMethod: "POST", input: input) } - /// Creates a new version of the specified AWS IoT policy. To update a policy, create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must use DeletePolicyVersion to delete an existing version before you create a new one. Optionally, you can set the new version as the policy's default version. The default version is the operative version (that is, the version that is in effect for the certificates to which the policy is attached). - public func createPolicyVersion(_ input: CreatePolicyVersionRequest) throws -> CreatePolicyVersionResponse { - return try client.send(operation: "CreatePolicyVersion", path: "/policies/{policyName}/version", httpMethod: "POST", input: input) + /// Deletes a CA certificate registration code. + public func deleteRegistrationCode(_ input: DeleteRegistrationCodeRequest) throws -> DeleteRegistrationCodeResponse { + return try client.send(operation: "DeleteRegistrationCode", path: "/registrationcode", httpMethod: "DELETE", input: input) } - /// Lists your policies. - public func listPolicies(_ input: ListPoliciesRequest) throws -> ListPoliciesResponse { - return try client.send(operation: "ListPolicies", path: "/policies", httpMethod: "GET", input: input) + /// Deletes a registered CA certificate. + public func deleteCACertificate(_ input: DeleteCACertificateRequest) throws -> DeleteCACertificateResponse { + return try client.send(operation: "DeleteCACertificate", path: "/cacertificate/{caCertificateId}", httpMethod: "DELETE", input: input) } - /// Lists the certificates registered in your AWS account. The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results. - public func listCertificates(_ input: ListCertificatesRequest) throws -> ListCertificatesResponse { - return try client.send(operation: "ListCertificates", path: "/certificates", httpMethod: "GET", input: input) + /// Sets the logging level. + public func setV2LoggingLevel(_ input: SetV2LoggingLevelRequest) throws { + _ = try client.send(operation: "SetV2LoggingLevel", path: "/v2LoggingLevel", httpMethod: "POST", input: input) } - /// Deletes the specified certificate. A certificate cannot be deleted if it has a policy attached to it or if its status is set to ACTIVE. To delete a certificate, first use the DetachPrincipalPolicy API to detach all policies. Next, use the UpdateCertificate API to set the certificate to the INACTIVE status. - public func deleteCertificate(_ input: DeleteCertificateRequest) throws { - _ = try client.send(operation: "DeleteCertificate", path: "/certificates/{certificateId}", httpMethod: "DELETE", input: input) + /// Describes a role alias. + public func describeRoleAlias(_ input: DescribeRoleAliasRequest) throws -> DescribeRoleAliasResponse { + return try client.send(operation: "DescribeRoleAlias", path: "/role-aliases/{roleAlias}", httpMethod: "GET", input: input) } /// Deletes the specified thing type . You cannot delete a thing type if it has things associated with it. To delete a thing type, first mark it as deprecated by calling DeprecateThingType, then remove any associated things by calling UpdateThing to change the thing type on any associated thing, and finally use DeleteThingType to delete the thing type. @@ -239,19 +274,9 @@ public struct Iot { return try client.send(operation: "DeleteThingType", path: "/thing-types/{thingTypeName}", httpMethod: "DELETE", input: input) } - /// Deletes a CA certificate registration code. - public func deleteRegistrationCode(_ input: DeleteRegistrationCodeRequest) throws -> DeleteRegistrationCodeResponse { - return try client.send(operation: "DeleteRegistrationCode", path: "/registrationcode", httpMethod: "DELETE", input: input) - } - - /// Gets information about the specified policy version. - public func getPolicyVersion(_ input: GetPolicyVersionRequest) throws -> GetPolicyVersionResponse { - return try client.send(operation: "GetPolicyVersion", path: "/policies/{policyName}/version/{policyVersionId}", httpMethod: "GET", input: input) - } - - /// Deletes a registered CA certificate. - public func deleteCACertificate(_ input: DeleteCACertificateRequest) throws -> DeleteCACertificateResponse { - return try client.send(operation: "DeleteCACertificate", path: "/cacertificate/{caCertificateId}", httpMethod: "DELETE", input: input) + /// Adds a thing to a thing group. + public func addThingToThingGroup(_ input: AddThingToThingGroupRequest) throws -> AddThingToThingGroupResponse { + return try client.send(operation: "AddThingToThingGroup", path: "/thing-groups/addThingToThingGroup", httpMethod: "PUT", input: input) } /// Gets information about the specified policy with the policy document of the default version. @@ -259,9 +284,9 @@ public struct Iot { return try client.send(operation: "GetPolicy", path: "/policies/{policyName}", httpMethod: "GET", input: input) } - /// Creates a new thing type. - public func createThingType(_ input: CreateThingTypeRequest) throws -> CreateThingTypeResponse { - return try client.send(operation: "CreateThingType", path: "/thing-types/{thingTypeName}", httpMethod: "POST", input: input) + /// Gets information about the specified thing. + public func describeThing(_ input: DescribeThingRequest) throws -> DescribeThingResponse { + return try client.send(operation: "DescribeThing", path: "/things/{thingName}", httpMethod: "GET", input: input) } /// Returns a unique endpoint specific to the AWS account making the call. @@ -269,26 +294,281 @@ public struct Iot { return try client.send(operation: "DescribeEndpoint", path: "/endpoint", httpMethod: "GET", input: input) } - /// Gets information about the specified thing. - public func describeThing(_ input: DescribeThingRequest) throws -> DescribeThingResponse { - return try client.send(operation: "DescribeThing", path: "/things/{thingName}", httpMethod: "GET", input: input) + /// Lists the authorizers registered in your account. + public func listAuthorizers(_ input: ListAuthorizersRequest) throws -> ListAuthorizersResponse { + return try client.send(operation: "ListAuthorizers", path: "/authorizers/", httpMethod: "GET", input: input) } - /// Enables the specified rule. - public func enableTopicRule(_ input: EnableTopicRuleRequest) throws { - _ = try client.send(operation: "EnableTopicRule", path: "/rules/{ruleName}/enable", httpMethod: "POST", input: input) + /// Sets the default authorizer. This will be used if a websocket connection is made without specifying an authorizer. + public func setDefaultAuthorizer(_ input: SetDefaultAuthorizerRequest) throws -> SetDefaultAuthorizerResponse { + return try client.send(operation: "SetDefaultAuthorizer", path: "/default-authorizer", httpMethod: "POST", input: input) } - /// Disables the specified rule. + /// Creates a new thing type. + public func createThingType(_ input: CreateThingTypeRequest) throws -> CreateThingTypeResponse { + return try client.send(operation: "CreateThingType", path: "/thing-types/{thingTypeName}", httpMethod: "POST", input: input) + } + + /// Disables the rule. public func disableTopicRule(_ input: DisableTopicRuleRequest) throws { _ = try client.send(operation: "DisableTopicRule", path: "/rules/{ruleName}/disable", httpMethod: "POST", input: input) } + /// Invoke the specified custom authorizer for testing purposes. + public func testInvokeAuthorizer(_ input: TestInvokeAuthorizerRequest) throws -> TestInvokeAuthorizerResponse { + return try client.send(operation: "TestInvokeAuthorizer", path: "/authorizer/{authorizerName}/test", httpMethod: "POST", input: input) + } + /// Registers a CA certificate with AWS IoT. This CA certificate can then be used to sign device certificates, which can be then registered with AWS IoT. You can register up to 10 CA certificates per AWS account that have the same subject field. This enables you to have up to 10 certificate authorities sign your device certificates. If you have more than one CA certificate registered, make sure you pass the CA certificate when you register your device certificates with the RegisterCertificate API. public func registerCACertificate(_ input: RegisterCACertificateRequest) throws -> RegisterCACertificateResponse { return try client.send(operation: "RegisterCACertificate", path: "/cacertificate", httpMethod: "POST", input: input) } + /// Detaches a policy from the specified target. + public func detachPolicy(_ input: DetachPolicyRequest) throws { + _ = try client.send(operation: "DetachPolicy", path: "/target-policies/{policyName}", httpMethod: "POST", input: input) + } + + /// Attaches a policy to the specified target. + public func attachPolicy(_ input: AttachPolicyRequest) throws { + _ = try client.send(operation: "AttachPolicy", path: "/target-policies/{policyName}", httpMethod: "PUT", input: input) + } + + /// Deletes a thing group. + public func deleteThingGroup(_ input: DeleteThingGroupRequest) throws -> DeleteThingGroupResponse { + return try client.send(operation: "DeleteThingGroup", path: "/thing-groups/{thingGroupName}", httpMethod: "DELETE", input: input) + } + + /// Deletes a logging level. + public func deleteV2LoggingLevel(_ input: DeleteV2LoggingLevelRequest) throws { + _ = try client.send(operation: "DeleteV2LoggingLevel", path: "/v2LoggingLevel", httpMethod: "DELETE", input: input) + } + + /// Gets a job document. + public func getJobDocument(_ input: GetJobDocumentRequest) throws -> GetJobDocumentResponse { + return try client.send(operation: "GetJobDocument", path: "/jobs/{jobId}/job-document", httpMethod: "GET", input: input) + } + + /// Describes the default authorizer. + public func describeDefaultAuthorizer(_ input: DescribeDefaultAuthorizerRequest) throws -> DescribeDefaultAuthorizerResponse { + return try client.send(operation: "DescribeDefaultAuthorizer", path: "/default-authorizer", httpMethod: "GET", input: input) + } + + /// Creates a job. + public func createJob(_ input: CreateJobRequest) throws -> CreateJobResponse { + return try client.send(operation: "CreateJob", path: "/jobs/{jobId}", httpMethod: "PUT", input: input) + } + + /// Creates a 2048-bit RSA key pair and issues an X.509 certificate using the issued public key. Note This is the only time AWS IoT issues the private key for this certificate, so it is important to keep it in a secure location. + public func createKeysAndCertificate(_ input: CreateKeysAndCertificateRequest) throws -> CreateKeysAndCertificateResponse { + return try client.send(operation: "CreateKeysAndCertificate", path: "/keys-and-certificate", httpMethod: "POST", input: input) + } + + /// Deletes an authorizer. + public func deleteAuthorizer(_ input: DeleteAuthorizerRequest) throws -> DeleteAuthorizerResponse { + return try client.send(operation: "DeleteAuthorizer", path: "/authorizer/{authorizerName}", httpMethod: "DELETE", input: input) + } + + /// Associates a group with a continuous job. The following criteria must be met: The job must have been created with the targetSelection field set to "CONTINUOUS". The job status must currently be "IN_PROGRESS". The total number of targets associated with a job must not exceed 100. + public func associateTargetsWithJob(_ input: AssociateTargetsWithJobRequest) throws -> AssociateTargetsWithJobResponse { + return try client.send(operation: "AssociateTargetsWithJob", path: "/jobs/{jobId}/targets", httpMethod: "POST", input: input) + } + + /// Creates an authorizer. + public func createAuthorizer(_ input: CreateAuthorizerRequest) throws -> CreateAuthorizerResponse { + return try client.send(operation: "CreateAuthorizer", path: "/authorizer/{authorizerName}", httpMethod: "POST", input: input) + } + + /// Deletes the specified policy. A policy cannot be deleted if it has non-default versions or it is attached to any certificate. To delete a policy, use the DeletePolicyVersion API to delete all non-default versions of the policy; use the DetachPrincipalPolicy API to detach the policy from any certificate; and then use the DeletePolicy API to delete the policy. When a policy is deleted using DeletePolicy, its default version is deleted with it. + public func deletePolicy(_ input: DeletePolicyRequest) throws { + _ = try client.send(operation: "DeletePolicy", path: "/policies/{policyName}", httpMethod: "DELETE", input: input) + } + + /// Removes the specified policy from the specified certificate. Note: This API is deprecated. Please use DetachPolicy instead. + public func detachPrincipalPolicy(_ input: DetachPrincipalPolicyRequest) throws { + _ = try client.send(operation: "DetachPrincipalPolicy", path: "/principal-policies/{policyName}", httpMethod: "DELETE", input: input) + } + + /// The query search index. + public func searchIndex(_ input: SearchIndexRequest) throws -> SearchIndexResponse { + return try client.send(operation: "SearchIndex", path: "/indices/search", httpMethod: "POST", input: input) + } + + /// Gets a registration code used to register a CA certificate with AWS IoT. + public func getRegistrationCode(_ input: GetRegistrationCodeRequest) throws -> GetRegistrationCodeResponse { + return try client.send(operation: "GetRegistrationCode", path: "/registrationcode", httpMethod: "GET", input: input) + } + + /// Gets effective policies. + public func getEffectivePolicies(_ input: GetEffectivePoliciesRequest) throws -> GetEffectivePoliciesResponse { + return try client.send(operation: "GetEffectivePolicies", path: "/effective-policies", httpMethod: "POST", input: input) + } + + /// Describes an authorizer. + public func describeAuthorizer(_ input: DescribeAuthorizerRequest) throws -> DescribeAuthorizerResponse { + return try client.send(operation: "DescribeAuthorizer", path: "/authorizer/{authorizerName}", httpMethod: "GET", input: input) + } + + /// Attaches the specified policy to the specified principal (certificate or other credential). Note: This API is deprecated. Please use AttachPolicy instead. + public func attachPrincipalPolicy(_ input: AttachPrincipalPolicyRequest) throws { + _ = try client.send(operation: "AttachPrincipalPolicy", path: "/principal-policies/{policyName}", httpMethod: "PUT", input: input) + } + + /// Replaces the rule. You must specify all parameters for the new rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule. + public func replaceTopicRule(_ input: ReplaceTopicRuleRequest) throws { + _ = try client.send(operation: "ReplaceTopicRule", path: "/rules/{ruleName}", httpMethod: "PATCH", input: input) + } + + /// Lists the things in the specified group. + public func listThingsInThingGroup(_ input: ListThingsInThingGroupRequest) throws -> ListThingsInThingGroupResponse { + return try client.send(operation: "ListThingsInThingGroup", path: "/thing-groups/{thingGroupName}/things", httpMethod: "GET", input: input) + } + + /// Lists the policies attached to the specified principal. If you use an Cognito identity, the ID must be in AmazonCognito Identity format. Note: This API is deprecated. Please use ListAttachedPolicies instead. + public func listPrincipalPolicies(_ input: ListPrincipalPoliciesRequest) throws -> ListPrincipalPoliciesResponse { + return try client.send(operation: "ListPrincipalPolicies", path: "/principal-policies", httpMethod: "GET", input: input) + } + + /// Rejects a pending certificate transfer. After AWS IoT rejects a certificate transfer, the certificate status changes from PENDING_TRANSFER to INACTIVE. To check for pending certificate transfers, call ListCertificates to enumerate your certificates. This operation can only be called by the transfer destination. After it is called, the certificate will be returned to the source's account in the INACTIVE state. + public func rejectCertificateTransfer(_ input: RejectCertificateTransferRequest) throws { + _ = try client.send(operation: "RejectCertificateTransfer", path: "/reject-certificate-transfer/{certificateId}", httpMethod: "PATCH", input: input) + } + + /// Information about the thing registration tasks. + public func listThingRegistrationTaskReports(_ input: ListThingRegistrationTaskReportsRequest) throws -> ListThingRegistrationTaskReportsResponse { + return try client.send(operation: "ListThingRegistrationTaskReports", path: "/thing-registration-tasks/{taskId}/reports", httpMethod: "GET", input: input) + } + + /// Updates the groups to which the thing belongs. + public func updateThingGroupsForThing(_ input: UpdateThingGroupsForThingRequest) throws -> UpdateThingGroupsForThingResponse { + return try client.send(operation: "UpdateThingGroupsForThing", path: "/thing-groups/updateThingGroupsForThing", httpMethod: "PUT", input: input) + } + + /// List the device certificates signed by the specified CA certificate. + public func listCertificatesByCA(_ input: ListCertificatesByCARequest) throws -> ListCertificatesByCAResponse { + return try client.send(operation: "ListCertificatesByCA", path: "/certificates-by-ca/{caCertificateId}", httpMethod: "GET", input: input) + } + + /// Deletes the rule. + public func deleteTopicRule(_ input: DeleteTopicRuleRequest) throws { + _ = try client.send(operation: "DeleteTopicRule", path: "/rules/{ruleName}", httpMethod: "DELETE", input: input) + } + + /// Lists the role aliases registered in your account. + public func listRoleAliases(_ input: ListRoleAliasesRequest) throws -> ListRoleAliasesResponse { + return try client.send(operation: "ListRoleAliases", path: "/role-aliases", httpMethod: "GET", input: input) + } + + /// Attaches the specified principal to the specified thing. + public func attachThingPrincipal(_ input: AttachThingPrincipalRequest) throws -> AttachThingPrincipalResponse { + return try client.send(operation: "AttachThingPrincipal", path: "/things/{thingName}/principals", httpMethod: "PUT", input: input) + } + + /// Lists your things. Use the attributeName and attributeValue parameters to filter your things. For example, calling ListThings with attributeName=Color and attributeValue=Red retrieves all things in the registry that contain an attribute Color with the value Red. + public func listThings(_ input: ListThingsRequest) throws -> ListThingsResponse { + return try client.send(operation: "ListThings", path: "/things", httpMethod: "GET", input: input) + } + + /// Creates an AWS IoT policy. The created policy is the default version for the policy. This operation creates a policy version with a version identifier of 1 and sets 1 as the policy's default version. + public func createPolicy(_ input: CreatePolicyRequest) throws -> CreatePolicyResponse { + return try client.send(operation: "CreatePolicy", path: "/policies/{policyName}", httpMethod: "POST", input: input) + } + + /// Gets the logging options. + public func getLoggingOptions(_ input: GetLoggingOptionsRequest) throws -> GetLoggingOptionsResponse { + return try client.send(operation: "GetLoggingOptions", path: "/loggingOptions", httpMethod: "GET", input: input) + } + + /// List the thing groups to which the specified thing belongs. + public func listThingGroupsForThing(_ input: ListThingGroupsForThingRequest) throws -> ListThingGroupsForThingResponse { + return try client.send(operation: "ListThingGroupsForThing", path: "/things/{thingName}/thing-groups", httpMethod: "GET", input: input) + } + + /// Lists certificates that are being transferred but not yet accepted. + public func listOutgoingCertificates(_ input: ListOutgoingCertificatesRequest) throws -> ListOutgoingCertificatesResponse { + return try client.send(operation: "ListOutgoingCertificates", path: "/certificates-out-going", httpMethod: "GET", input: input) + } + + /// Sets the logging options for the V2 logging service. + public func setV2LoggingOptions(_ input: SetV2LoggingOptionsRequest) throws { + _ = try client.send(operation: "SetV2LoggingOptions", path: "/v2LoggingOptions", httpMethod: "POST", input: input) + } + + /// Describes a registered CA certificate. + public func describeCACertificate(_ input: DescribeCACertificateRequest) throws -> DescribeCACertificateResponse { + return try client.send(operation: "DescribeCACertificate", path: "/cacertificate/{caCertificateId}", httpMethod: "GET", input: input) + } + + /// Deprecates a thing type. You can not associate new things with deprecated thing type. + public func deprecateThingType(_ input: DeprecateThingTypeRequest) throws -> DeprecateThingTypeResponse { + return try client.send(operation: "DeprecateThingType", path: "/thing-types/{thingTypeName}/deprecate", httpMethod: "POST", input: input) + } + + /// Lists the principals associated with the specified thing. + public func listThingPrincipals(_ input: ListThingPrincipalsRequest) throws -> ListThingPrincipalsResponse { + return try client.send(operation: "ListThingPrincipals", path: "/things/{thingName}/principals", httpMethod: "GET", input: input) + } + + /// List targets for the specified policy. + public func listTargetsForPolicy(_ input: ListTargetsForPolicyRequest) throws -> ListTargetsForPolicyResponse { + return try client.send(operation: "ListTargetsForPolicy", path: "/policy-targets/{policyName}", httpMethod: "POST", input: input) + } + + /// Gets information about the rule. + public func getTopicRule(_ input: GetTopicRuleRequest) throws -> GetTopicRuleResponse { + return try client.send(operation: "GetTopicRule", path: "/rules/{ruleName}", httpMethod: "GET", input: input) + } + + /// Lists the certificates registered in your AWS account. The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results. + public func listCertificates(_ input: ListCertificatesRequest) throws -> ListCertificatesResponse { + return try client.send(operation: "ListCertificates", path: "/certificates", httpMethod: "GET", input: input) + } + + /// Updates the data for a thing. + public func updateThing(_ input: UpdateThingRequest) throws -> UpdateThingResponse { + return try client.send(operation: "UpdateThing", path: "/things/{thingName}", httpMethod: "PATCH", input: input) + } + + /// Creates a thing record in the thing registry. + public func createThing(_ input: CreateThingRequest) throws -> CreateThingResponse { + return try client.send(operation: "CreateThing", path: "/things/{thingName}", httpMethod: "POST", input: input) + } + + /// Creates a new version of the specified AWS IoT policy. To update a policy, create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must use DeletePolicyVersion to delete an existing version before you create a new one. Optionally, you can set the new version as the policy's default version. The default version is the operative version (that is, the version that is in effect for the certificates to which the policy is attached). + public func createPolicyVersion(_ input: CreatePolicyVersionRequest) throws -> CreatePolicyVersionResponse { + return try client.send(operation: "CreatePolicyVersion", path: "/policies/{policyName}/version", httpMethod: "POST", input: input) + } + + /// Lists your policies. + public func listPolicies(_ input: ListPoliciesRequest) throws -> ListPoliciesResponse { + return try client.send(operation: "ListPolicies", path: "/policies", httpMethod: "GET", input: input) + } + + /// Gets information about the specified policy version. + public func getPolicyVersion(_ input: GetPolicyVersionRequest) throws -> GetPolicyVersionResponse { + return try client.send(operation: "GetPolicyVersion", path: "/policies/{policyName}/version/{policyVersionId}", httpMethod: "GET", input: input) + } + + /// Updates the event configurations. + public func updateEventConfigurations(_ input: UpdateEventConfigurationsRequest) throws -> UpdateEventConfigurationsResponse { + return try client.send(operation: "UpdateEventConfigurations", path: "/event-configurations", httpMethod: "PATCH", input: input) + } + + /// Clears the default authorizer. + public func clearDefaultAuthorizer(_ input: ClearDefaultAuthorizerRequest) throws -> ClearDefaultAuthorizerResponse { + return try client.send(operation: "ClearDefaultAuthorizer", path: "/default-authorizer", httpMethod: "DELETE", input: input) + } + + /// Enables the rule. + public func enableTopicRule(_ input: EnableTopicRuleRequest) throws { + _ = try client.send(operation: "EnableTopicRule", path: "/rules/{ruleName}/enable", httpMethod: "POST", input: input) + } + + /// List bulk thing provisioning tasks. + public func listThingRegistrationTasks(_ input: ListThingRegistrationTasksRequest) throws -> ListThingRegistrationTasksResponse { + return try client.send(operation: "ListThingRegistrationTasks", path: "/thing-registration-tasks", httpMethod: "GET", input: input) + } + /// Lists the CA certificates registered for your AWS account. The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results. public func listCACertificates(_ input: ListCACertificatesRequest) throws -> ListCACertificatesResponse { return try client.send(operation: "ListCACertificates", path: "/cacertificates", httpMethod: "GET", input: input) @@ -304,7 +584,12 @@ public struct Iot { _ = try client.send(operation: "DeletePolicyVersion", path: "/policies/{policyName}/version/{policyVersionId}", httpMethod: "DELETE", input: input) } - /// Gets information about the specified certificate. + /// Describe a thing group. + public func describeThingGroup(_ input: DescribeThingGroupRequest) throws -> DescribeThingGroupResponse { + return try client.send(operation: "DescribeThingGroup", path: "/thing-groups/{thingGroupName}", httpMethod: "GET", input: input) + } + + /// Gets information about the specified certificate. You may specify the certificate using either its ID or PEM. public func describeCertificate(_ input: DescribeCertificateRequest) throws -> DescribeCertificateResponse { return try client.send(operation: "DescribeCertificate", path: "/certificates/{certificateId}", httpMethod: "GET", input: input) } diff --git a/Sources/AWSSDKSwift/Services/iot/Iot_Error.swift b/Sources/AWSSDKSwift/Services/iot/Iot_Error.swift index 6fcfcaee5ae..28629f1fa46 100644 --- a/Sources/AWSSDKSwift/Services/iot/Iot_Error.swift +++ b/Sources/AWSSDKSwift/Services/iot/Iot_Error.swift @@ -4,26 +4,32 @@ import AWSSDKSwiftCore /// Error enum for Iot public enum IotError: AWSErrorType { - case resourceNotFoundException(message: String?) - case certificateStateException(message: String?) case invalidRequestException(message: String?) case throttlingException(message: String?) case unauthorizedException(message: String?) - case serviceUnavailableException(message: String?) case internalFailureException(message: String?) + case resourceNotFoundException(message: String?) case deleteConflictException(message: String?) + case serviceUnavailableException(message: String?) + case certificateStateException(message: String?) case transferAlreadyCompletedException(message: String?) case limitExceededException(message: String?) - case sqlParseException(message: String?) case internalException(message: String?) + case notConfiguredException(message: String?) + case conflictingResourceUpdateException(message: String?) + case resourceRegistrationFailureException(message: String?) + case versionConflictException(message: String?) case resourceAlreadyExistsException(message: String?) case certificateValidationException(message: String?) case certificateConflictException(message: String?) - case malformedPolicyException(message: String?) case transferConflictException(message: String?) - case versionConflictException(message: String?) - case versionsLimitExceededException(message: String?) + case sqlParseException(message: String?) + case invalidResponseException(message: String?) case registrationCodeValidationException(message: String?) + case invalidQueryException(message: String?) + case indexNotReadyException(message: String?) + case malformedPolicyException(message: String?) + case versionsLimitExceededException(message: String?) } extension IotError { @@ -33,46 +39,58 @@ extension IotError { errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) } switch errorCode { - case "ResourceNotFoundException": - self = .resourceNotFoundException(message: message) - case "CertificateStateException": - self = .certificateStateException(message: message) case "InvalidRequestException": self = .invalidRequestException(message: message) case "ThrottlingException": self = .throttlingException(message: message) case "UnauthorizedException": self = .unauthorizedException(message: message) - case "ServiceUnavailableException": - self = .serviceUnavailableException(message: message) case "InternalFailureException": self = .internalFailureException(message: message) + case "ResourceNotFoundException": + self = .resourceNotFoundException(message: message) case "DeleteConflictException": self = .deleteConflictException(message: message) + case "ServiceUnavailableException": + self = .serviceUnavailableException(message: message) + case "CertificateStateException": + self = .certificateStateException(message: message) case "TransferAlreadyCompletedException": self = .transferAlreadyCompletedException(message: message) case "LimitExceededException": self = .limitExceededException(message: message) - case "SqlParseException": - self = .sqlParseException(message: message) case "InternalException": self = .internalException(message: message) + case "NotConfiguredException": + self = .notConfiguredException(message: message) + case "ConflictingResourceUpdateException": + self = .conflictingResourceUpdateException(message: message) + case "ResourceRegistrationFailureException": + self = .resourceRegistrationFailureException(message: message) + case "VersionConflictException": + self = .versionConflictException(message: message) case "ResourceAlreadyExistsException": self = .resourceAlreadyExistsException(message: message) case "CertificateValidationException": self = .certificateValidationException(message: message) case "CertificateConflictException": self = .certificateConflictException(message: message) - case "MalformedPolicyException": - self = .malformedPolicyException(message: message) case "TransferConflictException": self = .transferConflictException(message: message) - case "VersionConflictException": - self = .versionConflictException(message: message) - case "VersionsLimitExceededException": - self = .versionsLimitExceededException(message: message) + case "SqlParseException": + self = .sqlParseException(message: message) + case "InvalidResponseException": + self = .invalidResponseException(message: message) case "RegistrationCodeValidationException": self = .registrationCodeValidationException(message: message) + case "InvalidQueryException": + self = .invalidQueryException(message: message) + case "IndexNotReadyException": + self = .indexNotReadyException(message: message) + case "MalformedPolicyException": + self = .malformedPolicyException(message: message) + case "VersionsLimitExceededException": + self = .versionsLimitExceededException(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/iot/Iot_Shapes.swift b/Sources/AWSSDKSwift/Services/iot/Iot_Shapes.swift index 29cf67e9fba..69a034a3589 100644 --- a/Sources/AWSSDKSwift/Services/iot/Iot_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/iot/Iot_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Iot { public struct DynamoDBv2Action: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "roleArn", required: false, type: .string), AWSShapeMember(label: "putItem", required: false, type: .structure) ] @@ -26,39 +26,29 @@ extension Iot { } } - public struct CreatePolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policyVersionId", required: false, type: .string), - AWSShapeMember(label: "policyName", required: false, type: .string), - AWSShapeMember(label: "policyArn", required: false, type: .string), - AWSShapeMember(label: "policyDocument", required: false, type: .string) + public struct UpdateRoleAliasResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleAlias", required: false, type: .string), + AWSShapeMember(label: "roleAliasArn", required: false, type: .string) ] - /// The policy version ID. - public let policyVersionId: String? - /// The policy name. - public let policyName: String? - /// The policy ARN. - public let policyArn: String? - /// The JSON document that describes the policy. - public let policyDocument: String? + /// The role alias. + public let roleAlias: String? + /// The role alias ARN. + public let roleAliasArn: String? - public init(policyVersionId: String? = nil, policyName: String? = nil, policyArn: String? = nil, policyDocument: String? = nil) { - self.policyVersionId = policyVersionId - self.policyName = policyName - self.policyArn = policyArn - self.policyDocument = policyDocument + public init(roleAlias: String? = nil, roleAliasArn: String? = nil) { + self.roleAlias = roleAlias + self.roleAliasArn = roleAliasArn } private enum CodingKeys: String, CodingKey { - case policyVersionId = "policyVersionId" - case policyName = "policyName" - case policyArn = "policyArn" - case policyDocument = "policyDocument" + case roleAlias = "roleAlias" + case roleAliasArn = "roleAliasArn" } } public struct TransferCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "certificateId", location: .uri(locationName: "certificateId"), required: true, type: .string), AWSShapeMember(label: "transferMessage", required: false, type: .string), AWSShapeMember(label: "targetAwsAccount", location: .querystring(locationName: "targetAwsAccount"), required: true, type: .string) @@ -83,43 +73,29 @@ extension Iot { } } - public struct GetRegistrationCodeRequest: AWSShape { - - } - - public struct ListCertificatesByCARequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "caCertificateId", location: .uri(locationName: "caCertificateId"), required: true, type: .string), - AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), - AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), - AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) + public struct UpdateAuthorizerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorizerArn", required: false, type: .string), + AWSShapeMember(label: "authorizerName", required: false, type: .string) ] - /// The ID of the CA certificate. This operation will list all registered device certificate that were signed by this CA certificate. - public let caCertificateId: String - /// The result page size. - public let pageSize: Int32? - /// The marker for the next set of results. - public let marker: String? - /// Specifies the order for results. If True, the results are returned in ascending order, based on the creation date. - public let ascendingOrder: Bool? + /// The authorizer ARN. + public let authorizerArn: String? + /// The authorizer name. + public let authorizerName: String? - public init(caCertificateId: String, pageSize: Int32? = nil, marker: String? = nil, ascendingOrder: Bool? = nil) { - self.caCertificateId = caCertificateId - self.pageSize = pageSize - self.marker = marker - self.ascendingOrder = ascendingOrder + public init(authorizerArn: String? = nil, authorizerName: String? = nil) { + self.authorizerArn = authorizerArn + self.authorizerName = authorizerName } private enum CodingKeys: String, CodingKey { - case caCertificateId = "caCertificateId" - case pageSize = "pageSize" - case marker = "marker" - case ascendingOrder = "isAscendingOrder" + case authorizerArn = "authorizerArn" + case authorizerName = "authorizerName" } } public struct Policy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "policyArn", required: false, type: .string), AWSShapeMember(label: "policyName", required: false, type: .string) ] @@ -139,47 +115,80 @@ extension Iot { } } - public struct SetLoggingOptionsRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "loggingOptionsPayload" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "loggingOptionsPayload", required: true, type: .structure) + public struct JobSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "thingGroupId", required: false, type: .string), + AWSShapeMember(label: "jobArn", required: false, type: .string), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "completedAt", required: false, type: .timestamp), + AWSShapeMember(label: "lastUpdatedAt", required: false, type: .timestamp), + AWSShapeMember(label: "targetSelection", required: false, type: .enum), + AWSShapeMember(label: "jobId", required: false, type: .string) ] - /// The logging options payload. - public let loggingOptionsPayload: LoggingOptionsPayload - - public init(loggingOptionsPayload: LoggingOptionsPayload) { - self.loggingOptionsPayload = loggingOptionsPayload + /// The job summary status. + public let status: JobStatus? + /// The ID of the thing group. + public let thingGroupId: String? + /// The job ARN. + public let jobArn: String? + /// The time, in milliseconds since the epoch, when the job was created. + public let createdAt: TimeStamp? + /// The time, in milliseconds since the epoch, when the job completed. + public let completedAt: TimeStamp? + /// The time, in milliseconds since the epoch, when the job was last updated. + public let lastUpdatedAt: TimeStamp? + /// Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a thing when the thing is added to a target group, even after the job was completed by all things originally in the group. + public let targetSelection: TargetSelection? + /// The unique identifier you assigned to this job when it was created. + public let jobId: String? + + public init(status: JobStatus? = nil, thingGroupId: String? = nil, jobArn: String? = nil, createdAt: TimeStamp? = nil, completedAt: TimeStamp? = nil, lastUpdatedAt: TimeStamp? = nil, targetSelection: TargetSelection? = nil, jobId: String? = nil) { + self.status = status + self.thingGroupId = thingGroupId + self.jobArn = jobArn + self.createdAt = createdAt + self.completedAt = completedAt + self.lastUpdatedAt = lastUpdatedAt + self.targetSelection = targetSelection + self.jobId = jobId } private enum CodingKeys: String, CodingKey { - case loggingOptionsPayload = "loggingOptionsPayload" + case status = "status" + case thingGroupId = "thingGroupId" + case jobArn = "jobArn" + case createdAt = "createdAt" + case completedAt = "completedAt" + case lastUpdatedAt = "lastUpdatedAt" + case targetSelection = "targetSelection" + case jobId = "jobId" } } - public struct ListThingTypesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "thingTypes", required: false, type: .list), - AWSShapeMember(label: "nextToken", required: false, type: .string) + public struct ListAttachedPoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policies", required: false, type: .list), + AWSShapeMember(label: "nextMarker", required: false, type: .string) ] - /// The thing types. - public let thingTypes: [ThingTypeDefinition]? - /// The token for the next set of results, or null if there are no additional results. - public let nextToken: String? + /// The policies. + public let policies: [Policy]? + /// The token to retrieve the next set of results, or ``null`` if there are no more results. + public let nextMarker: String? - public init(thingTypes: [ThingTypeDefinition]? = nil, nextToken: String? = nil) { - self.thingTypes = thingTypes - self.nextToken = nextToken + public init(policies: [Policy]? = nil, nextMarker: String? = nil) { + self.policies = policies + self.nextMarker = nextMarker } private enum CodingKeys: String, CodingKey { - case thingTypes = "thingTypes" - case nextToken = "nextToken" + case policies = "policies" + case nextMarker = "nextMarker" } } public struct Action: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "elasticsearch", required: false, type: .structure), AWSShapeMember(label: "s3", required: false, type: .structure), AWSShapeMember(label: "lambda", required: false, type: .structure), @@ -254,45 +263,50 @@ extension Iot { } } - public struct DescribeCACertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateDescription", required: false, type: .structure) + public struct DescribeRoleAliasRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleAlias", location: .uri(locationName: "roleAlias"), required: true, type: .string) ] - /// The CA certificate description. - public let certificateDescription: CACertificateDescription? + /// The role alias to describe. + public let roleAlias: String - public init(certificateDescription: CACertificateDescription? = nil) { - self.certificateDescription = certificateDescription + public init(roleAlias: String) { + self.roleAlias = roleAlias } private enum CodingKeys: String, CodingKey { - case certificateDescription = "certificateDescription" + case roleAlias = "roleAlias" } } - public struct RepublishAction: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "roleArn", required: true, type: .string), - AWSShapeMember(label: "topic", required: true, type: .string) + public struct EffectivePolicy: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyName", required: false, type: .string), + AWSShapeMember(label: "policyArn", required: false, type: .string), + AWSShapeMember(label: "policyDocument", required: false, type: .string) ] - /// The ARN of the IAM role that grants access. - public let roleArn: String - /// The name of the MQTT topic. - public let topic: String + /// The policy name. + public let policyName: String? + /// The policy ARN. + public let policyArn: String? + /// The IAM policy document. + public let policyDocument: String? - public init(roleArn: String, topic: String) { - self.roleArn = roleArn - self.topic = topic + public init(policyName: String? = nil, policyArn: String? = nil, policyDocument: String? = nil) { + self.policyName = policyName + self.policyArn = policyArn + self.policyDocument = policyDocument } private enum CodingKeys: String, CodingKey { - case roleArn = "roleArn" - case topic = "topic" + case policyName = "policyName" + case policyArn = "policyArn" + case policyDocument = "policyDocument" } } public struct GetTopicRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ruleName", location: .uri(locationName: "ruleName"), required: true, type: .string) ] /// The name of the rule. @@ -307,55 +321,79 @@ extension Iot { } } - public struct ListPolicyPrincipalsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "principals", required: false, type: .list), + public struct ListCertificatesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificates", required: false, type: .list), AWSShapeMember(label: "nextMarker", required: false, type: .string) ] - /// The descriptions of the principals. - public let principals: [String]? + /// The descriptions of the certificates. + public let certificates: [Certificate]? /// The marker for the next set of results, or null if there are no additional results. public let nextMarker: String? - public init(principals: [String]? = nil, nextMarker: String? = nil) { - self.principals = principals + public init(certificates: [Certificate]? = nil, nextMarker: String? = nil) { + self.certificates = certificates self.nextMarker = nextMarker } private enum CodingKeys: String, CodingKey { - case principals = "principals" + case certificates = "certificates" case nextMarker = "nextMarker" } } - public struct ListCertificatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificates", required: false, type: .list), + public struct ListThingsInThingGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "things", required: false, type: .list) + ] + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The things in the specified thing group. + public let things: [String]? + + public init(nextToken: String? = nil, things: [String]? = nil) { + self.nextToken = nextToken + self.things = things + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case things = "things" + } + } + + public struct ListTargetsForPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "targets", required: false, type: .list), AWSShapeMember(label: "nextMarker", required: false, type: .string) ] - /// The descriptions of the certificates. - public let certificates: [Certificate]? - /// The marker for the next set of results, or null if there are no additional results. + /// The policy targets. + public let targets: [String]? + /// A marker used to get the next set of results. public let nextMarker: String? - public init(certificates: [Certificate]? = nil, nextMarker: String? = nil) { - self.certificates = certificates + public init(targets: [String]? = nil, nextMarker: String? = nil) { + self.targets = targets self.nextMarker = nextMarker } private enum CodingKeys: String, CodingKey { - case certificates = "certificates" + case targets = "targets" case nextMarker = "nextMarker" } } public struct RegisterCACertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registrationConfig", required: false, type: .structure), AWSShapeMember(label: "allowAutoRegistration", location: .querystring(locationName: "allowAutoRegistration"), required: false, type: .boolean), AWSShapeMember(label: "verificationCertificate", required: true, type: .string), AWSShapeMember(label: "caCertificate", required: true, type: .string), AWSShapeMember(label: "setAsActive", location: .querystring(locationName: "setAsActive"), required: false, type: .boolean) ] + /// Information about the registration configuration. + public let registrationConfig: RegistrationConfig? /// Allows this CA certificate to be used for auto registration of device certificates. public let allowAutoRegistration: Bool? /// The private key verification certificate. @@ -365,7 +403,8 @@ extension Iot { /// A boolean value that specifies if the CA certificate is set to active. public let setAsActive: Bool? - public init(allowAutoRegistration: Bool? = nil, verificationCertificate: String, caCertificate: String, setAsActive: Bool? = nil) { + public init(registrationConfig: RegistrationConfig? = nil, allowAutoRegistration: Bool? = nil, verificationCertificate: String, caCertificate: String, setAsActive: Bool? = nil) { + self.registrationConfig = registrationConfig self.allowAutoRegistration = allowAutoRegistration self.verificationCertificate = verificationCertificate self.caCertificate = caCertificate @@ -373,6 +412,7 @@ extension Iot { } private enum CodingKeys: String, CodingKey { + case registrationConfig = "registrationConfig" case allowAutoRegistration = "allowAutoRegistration" case verificationCertificate = "verificationCertificate" case caCertificate = "caCertificate" @@ -381,7 +421,7 @@ extension Iot { } public struct DetachThingPrincipalRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string), AWSShapeMember(label: "principal", location: .header(locationName: "x-amzn-principal"), required: true, type: .string) ] @@ -401,77 +441,159 @@ extension Iot { } } + public struct DeleteRoleAliasRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleAlias", location: .uri(locationName: "roleAlias"), required: true, type: .string) + ] + /// The role alias to delete. + public let roleAlias: String + + public init(roleAlias: String) { + self.roleAlias = roleAlias + } + + private enum CodingKeys: String, CodingKey { + case roleAlias = "roleAlias" + } + } + + public struct DescribeJobExecutionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "executionNumber", location: .querystring(locationName: "executionNumber"), required: false, type: .long), + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string), + AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) + ] + /// A string (consisting of the digits "0" through "9" which is used to specify a particular job execution on a particular device. + public let executionNumber: Int64? + /// The unique identifier you assigned to this job when it was created. + public let jobId: String + /// The name of the thing on which the job execution is running. + public let thingName: String + + public init(executionNumber: Int64? = nil, jobId: String, thingName: String) { + self.executionNumber = executionNumber + self.jobId = jobId + self.thingName = thingName + } + + private enum CodingKeys: String, CodingKey { + case executionNumber = "executionNumber" + case jobId = "jobId" + case thingName = "thingName" + } + } + public struct CreateThingResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingId", required: false, type: .string), AWSShapeMember(label: "thingName", required: false, type: .string), AWSShapeMember(label: "thingArn", required: false, type: .string) ] + /// The thing ID. + public let thingId: String? /// The name of the new thing. public let thingName: String? /// The ARN of the new thing. public let thingArn: String? - public init(thingName: String? = nil, thingArn: String? = nil) { + public init(thingId: String? = nil, thingName: String? = nil, thingArn: String? = nil) { + self.thingId = thingId self.thingName = thingName self.thingArn = thingArn } private enum CodingKeys: String, CodingKey { + case thingId = "thingId" case thingName = "thingName" case thingArn = "thingArn" } } - public enum CACertificateStatus: String, CustomStringConvertible, Codable { - case active = "ACTIVE" - case inactive = "INACTIVE" - public var description: String { return self.rawValue } + public struct CancelJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "jobArn", required: false, type: .string), + AWSShapeMember(label: "jobId", required: false, type: .string) + ] + /// A short text description of the job. + public let description: String? + /// The job ARN. + public let jobArn: String? + /// The unique identifier you assigned to this job when it was created. + public let jobId: String? + + public init(description: String? = nil, jobArn: String? = nil, jobId: String? = nil) { + self.description = description + self.jobArn = jobArn + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case jobArn = "jobArn" + case jobId = "jobId" + } } - public struct ListPrincipalThingsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextToken", required: false, type: .string), - AWSShapeMember(label: "things", required: false, type: .list) + public struct ListThingGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "parentGroup", location: .querystring(locationName: "parentGroup"), required: false, type: .string), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "recursive", location: .querystring(locationName: "recursive"), required: false, type: .boolean), + AWSShapeMember(label: "namePrefixFilter", location: .querystring(locationName: "namePrefixFilter"), required: false, type: .string) ] - /// The token for the next set of results, or null if there are no additional results. + /// The token used to get the next set of results, or null if there are no additional results. public let nextToken: String? - /// The things. - public let things: [String]? + /// A filter that limits the results to those with the specified parent group. + public let parentGroup: String? + /// The maximum number of results to return at one time. + public let maxResults: Int32? + /// If true, return child groups as well. + public let recursive: Bool? + /// A filter that limits the results to those with the specified name prefix. + public let namePrefixFilter: String? - public init(nextToken: String? = nil, things: [String]? = nil) { + public init(nextToken: String? = nil, parentGroup: String? = nil, maxResults: Int32? = nil, recursive: Bool? = nil, namePrefixFilter: String? = nil) { self.nextToken = nextToken - self.things = things + self.parentGroup = parentGroup + self.maxResults = maxResults + self.recursive = recursive + self.namePrefixFilter = namePrefixFilter } private enum CodingKeys: String, CodingKey { case nextToken = "nextToken" - case things = "things" + case parentGroup = "parentGroup" + case maxResults = "maxResults" + case recursive = "recursive" + case namePrefixFilter = "namePrefixFilter" } } - public struct LoggingOptionsPayload: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "roleArn", required: true, type: .string), - AWSShapeMember(label: "logLevel", required: false, type: .enum) + public struct ListPrincipalThingsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "things", required: false, type: .list) ] - /// The ARN of the IAM role that grants access. - public let roleArn: String - /// The logging level. - public let logLevel: LogLevel? + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The things. + public let things: [String]? - public init(roleArn: String, logLevel: LogLevel? = nil) { - self.roleArn = roleArn - self.logLevel = logLevel + public init(nextToken: String? = nil, things: [String]? = nil) { + self.nextToken = nextToken + self.things = things } private enum CodingKeys: String, CodingKey { - case roleArn = "roleArn" - case logLevel = "logLevel" + case nextToken = "nextToken" + case things = "things" } } public struct ListThingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributeValue", location: .querystring(locationName: "attributeValue"), required: false, type: .string), AWSShapeMember(label: "thingTypeName", location: .querystring(locationName: "thingTypeName"), required: false, type: .string), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), @@ -482,7 +604,7 @@ extension Iot { public let attributeValue: String? /// The name of the thing type used to search for things. public let thingTypeName: String? - /// The token for the next set of results, or null if there are no additional results. + /// The token used to get the next set of results, or null if there are no additional results. public let nextToken: String? /// The maximum number of results to return in this operation. public let maxResults: Int32? @@ -506,176 +628,71 @@ extension Iot { } } + public struct DescribeJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string) + ] + /// The unique identifier you assigned to this job when it was created. + public let jobId: String + + public init(jobId: String) { + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case jobId = "jobId" + } + } + public struct ThingTypeDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "thingTypeMetadata", required: false, type: .structure), AWSShapeMember(label: "thingTypeName", required: false, type: .string), + AWSShapeMember(label: "thingTypeArn", required: false, type: .string), AWSShapeMember(label: "thingTypeProperties", required: false, type: .structure) ] /// The ThingTypeMetadata contains additional information about the thing type including: creation date and time, a value indicating whether the thing type is deprecated, and a date and time when it was deprecated. public let thingTypeMetadata: ThingTypeMetadata? /// The name of the thing type. public let thingTypeName: String? + /// The thing type ARN. + public let thingTypeArn: String? /// The ThingTypeProperties for the thing type. public let thingTypeProperties: ThingTypeProperties? - public init(thingTypeMetadata: ThingTypeMetadata? = nil, thingTypeName: String? = nil, thingTypeProperties: ThingTypeProperties? = nil) { + public init(thingTypeMetadata: ThingTypeMetadata? = nil, thingTypeName: String? = nil, thingTypeArn: String? = nil, thingTypeProperties: ThingTypeProperties? = nil) { self.thingTypeMetadata = thingTypeMetadata self.thingTypeName = thingTypeName + self.thingTypeArn = thingTypeArn self.thingTypeProperties = thingTypeProperties } private enum CodingKeys: String, CodingKey { case thingTypeMetadata = "thingTypeMetadata" case thingTypeName = "thingTypeName" + case thingTypeArn = "thingTypeArn" case thingTypeProperties = "thingTypeProperties" } } - public struct CreateKeysAndCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "keyPair", required: false, type: .structure), - AWSShapeMember(label: "certificatePem", required: false, type: .string), - AWSShapeMember(label: "certificateId", required: false, type: .string), - AWSShapeMember(label: "certificateArn", required: false, type: .string) + public struct DescribeDefaultAuthorizerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorizerDescription", required: false, type: .structure) ] - /// The generated key pair. - public let keyPair: KeyPair? - /// The certificate data, in PEM format. - public let certificatePem: String? - /// The ID of the certificate. AWS IoT issues a default subject name for the certificate (for example, AWS IoT Certificate). - public let certificateId: String? - /// The ARN of the certificate. - public let certificateArn: String? + /// The default authorizer's description. + public let authorizerDescription: AuthorizerDescription? - public init(keyPair: KeyPair? = nil, certificatePem: String? = nil, certificateId: String? = nil, certificateArn: String? = nil) { - self.keyPair = keyPair - self.certificatePem = certificatePem - self.certificateId = certificateId - self.certificateArn = certificateArn - } - - private enum CodingKeys: String, CodingKey { - case keyPair = "keyPair" - case certificatePem = "certificatePem" - case certificateId = "certificateId" - case certificateArn = "certificateArn" - } - } - - public struct GetTopicRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ruleArn", required: false, type: .string), - AWSShapeMember(label: "rule", required: false, type: .structure) - ] - /// The rule ARN. - public let ruleArn: String? - /// The rule. - public let rule: TopicRule? - - public init(ruleArn: String? = nil, rule: TopicRule? = nil) { - self.ruleArn = ruleArn - self.rule = rule - } - - private enum CodingKeys: String, CodingKey { - case ruleArn = "ruleArn" - case rule = "rule" - } - } - - public struct CreateThingTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "thingTypeName", location: .uri(locationName: "thingTypeName"), required: true, type: .string), - AWSShapeMember(label: "thingTypeProperties", required: false, type: .structure) - ] - /// The name of the thing type. - public let thingTypeName: String - /// The ThingTypeProperties for the thing type to create. It contains information about the new thing type including a description, and a list of searchable thing attribute names. - public let thingTypeProperties: ThingTypeProperties? - - public init(thingTypeName: String, thingTypeProperties: ThingTypeProperties? = nil) { - self.thingTypeName = thingTypeName - self.thingTypeProperties = thingTypeProperties - } - - private enum CodingKeys: String, CodingKey { - case thingTypeName = "thingTypeName" - case thingTypeProperties = "thingTypeProperties" - } - } - - public struct DescribeCACertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateId", location: .uri(locationName: "caCertificateId"), required: true, type: .string) - ] - /// The CA certificate identifier. - public let certificateId: String - - public init(certificateId: String) { - self.certificateId = certificateId - } - - private enum CodingKeys: String, CodingKey { - case certificateId = "caCertificateId" - } - } - - public struct DescribeCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateId", location: .uri(locationName: "certificateId"), required: true, type: .string) - ] - /// The ID of the certificate. - public let certificateId: String - - public init(certificateId: String) { - self.certificateId = certificateId - } - - private enum CodingKeys: String, CodingKey { - case certificateId = "certificateId" - } - } - - public struct CreateCertificateFromCsrRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateSigningRequest", required: true, type: .string), - AWSShapeMember(label: "setAsActive", location: .querystring(locationName: "setAsActive"), required: false, type: .boolean) - ] - /// The certificate signing request (CSR). - public let certificateSigningRequest: String - /// Specifies whether the certificate is active. - public let setAsActive: Bool? - - public init(certificateSigningRequest: String, setAsActive: Bool? = nil) { - self.certificateSigningRequest = certificateSigningRequest - self.setAsActive = setAsActive - } - - private enum CodingKeys: String, CodingKey { - case certificateSigningRequest = "certificateSigningRequest" - case setAsActive = "setAsActive" - } - } - - public struct DescribeCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateDescription", required: false, type: .structure) - ] - /// The description of the certificate. - public let certificateDescription: CertificateDescription? - - public init(certificateDescription: CertificateDescription? = nil) { - self.certificateDescription = certificateDescription + public init(authorizerDescription: AuthorizerDescription? = nil) { + self.authorizerDescription = authorizerDescription } private enum CodingKeys: String, CodingKey { - case certificateDescription = "certificateDescription" + case authorizerDescription = "authorizerDescription" } } public struct CreateKeysAndCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "setAsActive", location: .querystring(locationName: "setAsActive"), required: false, type: .boolean) ] /// Specifies whether the certificate is active. @@ -691,7 +708,7 @@ extension Iot { } public struct ListPrincipalPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "policies", required: false, type: .list), AWSShapeMember(label: "nextMarker", required: false, type: .string) ] @@ -711,123 +728,168 @@ extension Iot { } } - public struct DetachPrincipalPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string), - AWSShapeMember(label: "principal", location: .header(locationName: "x-amzn-iot-principal"), required: true, type: .string) + public struct Denied: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "implicitDeny", required: false, type: .structure), + AWSShapeMember(label: "explicitDeny", required: false, type: .structure) ] - /// The name of the policy to detach. - public let policyName: String - /// The principal. If the principal is a certificate, specify the certificate ARN. If the principal is an Amazon Cognito identity, specify the identity ID. - public let principal: String + /// Information that implicitly denies the authorization. When a policy doesn't explicitly deny or allow an action on a resource it is considered an implicit deny. + public let implicitDeny: ImplicitDeny? + /// Information that explicitly denies the authorization. + public let explicitDeny: ExplicitDeny? - public init(policyName: String, principal: String) { - self.policyName = policyName - self.principal = principal + public init(implicitDeny: ImplicitDeny? = nil, explicitDeny: ExplicitDeny? = nil) { + self.implicitDeny = implicitDeny + self.explicitDeny = explicitDeny } private enum CodingKeys: String, CodingKey { - case policyName = "policyName" - case principal = "x-amzn-iot-principal" + case implicitDeny = "implicitDeny" + case explicitDeny = "explicitDeny" } } - public struct ThingTypeMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "deprecated", required: false, type: .boolean), - AWSShapeMember(label: "deprecationDate", required: false, type: .timestamp), - AWSShapeMember(label: "creationDate", required: false, type: .timestamp) + public struct GroupNameAndArn: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "groupArn", required: false, type: .string), + AWSShapeMember(label: "groupName", required: false, type: .string) ] - /// Whether the thing type is deprecated. If true, no new things could be associated with this type. - public let deprecated: Bool? - /// The date and time when the thing type was deprecated. - public let deprecationDate: TimeStamp? - /// The date and time when the thing type was created. - public let creationDate: TimeStamp? + /// The group ARN. + public let groupArn: String? + /// The group name. + public let groupName: String? - public init(deprecated: Bool? = nil, deprecationDate: TimeStamp? = nil, creationDate: TimeStamp? = nil) { - self.deprecated = deprecated - self.deprecationDate = deprecationDate - self.creationDate = creationDate + public init(groupArn: String? = nil, groupName: String? = nil) { + self.groupArn = groupArn + self.groupName = groupName } private enum CodingKeys: String, CodingKey { - case deprecated = "deprecated" - case deprecationDate = "deprecationDate" - case creationDate = "creationDate" + case groupArn = "groupArn" + case groupName = "groupName" } } - public struct EnableTopicRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ruleName", location: .uri(locationName: "ruleName"), required: true, type: .string) + public struct GetJobDocumentResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "document", required: false, type: .string) ] - /// The name of the topic rule to enable. - public let ruleName: String + /// The job document content. + public let document: String? - public init(ruleName: String) { - self.ruleName = ruleName + public init(document: String? = nil) { + self.document = document } private enum CodingKeys: String, CodingKey { - case ruleName = "ruleName" + case document = "document" } } - public struct CreatePolicyVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string), - AWSShapeMember(label: "setAsDefault", location: .querystring(locationName: "setAsDefault"), required: false, type: .boolean), - AWSShapeMember(label: "policyDocument", required: true, type: .string) - ] - /// The policy name. - public let policyName: String - /// Specifies whether the policy version is set as the default. When this parameter is true, the new policy version becomes the operative version (that is, the version that is in effect for the certificates to which the policy is attached). - public let setAsDefault: Bool? - /// The JSON document that describes the policy. Minimum length of 1. Maximum length of 2048, excluding whitespaces - public let policyDocument: String - - public init(policyName: String, setAsDefault: Bool? = nil, policyDocument: String) { - self.policyName = policyName - self.setAsDefault = setAsDefault - self.policyDocument = policyDocument - } + public struct AddThingToThingGroupResponse: AWSShape { - private enum CodingKeys: String, CodingKey { - case policyName = "policyName" - case setAsDefault = "setAsDefault" - case policyDocument = "policyDocument" - } } - public struct KinesisAction: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "roleArn", required: true, type: .string), - AWSShapeMember(label: "streamName", required: true, type: .string), - AWSShapeMember(label: "partitionKey", required: false, type: .string) + public struct CreateJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobExecutionsRolloutConfig", required: false, type: .structure), + AWSShapeMember(label: "presignedUrlConfig", required: false, type: .structure), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "documentParameters", required: false, type: .map), + AWSShapeMember(label: "targets", required: true, type: .list), + AWSShapeMember(label: "targetSelection", required: false, type: .enum), + AWSShapeMember(label: "document", required: false, type: .string), + AWSShapeMember(label: "documentSource", required: false, type: .string), + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string) ] - /// The ARN of the IAM role that grants access to the Amazon Kinesis stream. - public let roleArn: String - /// The name of the Amazon Kinesis stream. - public let streamName: String - /// The partition key. - public let partitionKey: String? + /// Allows you to create a staged rollout of the job. + public let jobExecutionsRolloutConfig: JobExecutionsRolloutConfig? + /// Configuration information for pre-signed S3 URLs. + public let presignedUrlConfig: PresignedUrlConfig? + /// A short text description of the job. + public let description: String? + /// Parameters for the job document. + public let documentParameters: [String: String]? + /// A list of things and thing groups to which the job should be sent. + public let targets: [String] + /// Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a thing when the thing is added to a target group, even after the job was completed by all things originally in the group. + public let targetSelection: TargetSelection? + /// The job document. + public let document: String? + /// An S3 link to the job document. + public let documentSource: String? + /// A job identifier which must be unique for your AWS account. We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for use here. + public let jobId: String + + public init(jobExecutionsRolloutConfig: JobExecutionsRolloutConfig? = nil, presignedUrlConfig: PresignedUrlConfig? = nil, description: String? = nil, documentParameters: [String: String]? = nil, targets: [String], targetSelection: TargetSelection? = nil, document: String? = nil, documentSource: String? = nil, jobId: String) { + self.jobExecutionsRolloutConfig = jobExecutionsRolloutConfig + self.presignedUrlConfig = presignedUrlConfig + self.description = description + self.documentParameters = documentParameters + self.targets = targets + self.targetSelection = targetSelection + self.document = document + self.documentSource = documentSource + self.jobId = jobId + } - public init(roleArn: String, streamName: String, partitionKey: String? = nil) { - self.roleArn = roleArn - self.streamName = streamName - self.partitionKey = partitionKey + private enum CodingKeys: String, CodingKey { + case jobExecutionsRolloutConfig = "jobExecutionsRolloutConfig" + case presignedUrlConfig = "presignedUrlConfig" + case description = "description" + case documentParameters = "documentParameters" + case targets = "targets" + case targetSelection = "targetSelection" + case document = "document" + case documentSource = "documentSource" + case jobId = "jobId" + } + } + + public struct AuthResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "allowed", required: false, type: .structure), + AWSShapeMember(label: "denied", required: false, type: .structure), + AWSShapeMember(label: "missingContextValues", required: false, type: .list), + AWSShapeMember(label: "authInfo", required: false, type: .structure), + AWSShapeMember(label: "authDecision", required: false, type: .enum) + ] + /// The policies and statements that allowed the specified action. + public let allowed: Allowed? + /// The policies and statements that denied the specified action. + public let denied: Denied? + /// Contains any missing context values found while evaluating policy. + public let missingContextValues: [String]? + /// Authorization information. + public let authInfo: AuthInfo? + /// The final authorization decision of this scenario. Multiple statements are taken into account when determining the authorization decision. An explicit deny statement can override multiple allow statements. + public let authDecision: AuthDecision? + + public init(allowed: Allowed? = nil, denied: Denied? = nil, missingContextValues: [String]? = nil, authInfo: AuthInfo? = nil, authDecision: AuthDecision? = nil) { + self.allowed = allowed + self.denied = denied + self.missingContextValues = missingContextValues + self.authInfo = authInfo + self.authDecision = authDecision } private enum CodingKeys: String, CodingKey { - case roleArn = "roleArn" - case streamName = "streamName" - case partitionKey = "partitionKey" + case allowed = "allowed" + case denied = "denied" + case missingContextValues = "missingContextValues" + case authInfo = "authInfo" + case authDecision = "authDecision" } } + public enum ReportType: String, CustomStringConvertible, Codable { + case errors = "ERRORS" + case results = "RESULTS" + public var description: String { return self.rawValue } + } + public struct SqsAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "useBase64", required: false, type: .boolean), AWSShapeMember(label: "roleArn", required: true, type: .string), AWSShapeMember(label: "queueUrl", required: true, type: .string) @@ -852,12 +914,8 @@ extension Iot { } } - public struct UpdateThingResponse: AWSShape { - - } - public struct ListThingPrincipalsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) ] /// The name of the thing. @@ -872,76 +930,67 @@ extension Iot { } } - public struct SetDefaultPolicyVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policyVersionId", location: .uri(locationName: "policyVersionId"), required: true, type: .string), - AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) - ] - /// The policy version ID. - public let policyVersionId: String - /// The policy name. - public let policyName: String - - public init(policyVersionId: String, policyName: String) { - self.policyVersionId = policyVersionId - self.policyName = policyName - } - - private enum CodingKeys: String, CodingKey { - case policyVersionId = "policyVersionId" - case policyName = "policyName" - } + public enum JobStatus: String, CustomStringConvertible, Codable { + case inProgress = "IN_PROGRESS" + case canceled = "CANCELED" + case completed = "COMPLETED" + public var description: String { return self.rawValue } } - public struct UpdateCACertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateId", location: .uri(locationName: "caCertificateId"), required: true, type: .string), - AWSShapeMember(label: "newStatus", location: .querystring(locationName: "newStatus"), required: false, type: .enum), - AWSShapeMember(label: "newAutoRegistrationStatus", location: .querystring(locationName: "newAutoRegistrationStatus"), required: false, type: .enum) + public struct RemoveThingFromThingGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingName", required: false, type: .string), + AWSShapeMember(label: "thingArn", required: false, type: .string), + AWSShapeMember(label: "thingGroupName", required: false, type: .string), + AWSShapeMember(label: "thingGroupArn", required: false, type: .string) ] - /// The CA certificate identifier. - public let certificateId: String - /// The updated status of the CA certificate. Note: The status value REGISTER_INACTIVE is deprecated and should not be used. - public let newStatus: CACertificateStatus? - /// The new value for the auto registration status. Valid values are: "ENABLE" or "DISABLE". - public let newAutoRegistrationStatus: AutoRegistrationStatus? + /// The name of the thing to remove from the group. + public let thingName: String? + /// The ARN of the thing to remove from the group. + public let thingArn: String? + /// The group name. + public let thingGroupName: String? + /// The group ARN. + public let thingGroupArn: String? - public init(certificateId: String, newStatus: CACertificateStatus? = nil, newAutoRegistrationStatus: AutoRegistrationStatus? = nil) { - self.certificateId = certificateId - self.newStatus = newStatus - self.newAutoRegistrationStatus = newAutoRegistrationStatus + public init(thingName: String? = nil, thingArn: String? = nil, thingGroupName: String? = nil, thingGroupArn: String? = nil) { + self.thingName = thingName + self.thingArn = thingArn + self.thingGroupName = thingGroupName + self.thingGroupArn = thingGroupArn } private enum CodingKeys: String, CodingKey { - case certificateId = "caCertificateId" - case newStatus = "newStatus" - case newAutoRegistrationStatus = "newAutoRegistrationStatus" + case thingName = "thingName" + case thingArn = "thingArn" + case thingGroupName = "thingGroupName" + case thingGroupArn = "thingGroupArn" } } - public struct ListPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policies", required: false, type: .list), - AWSShapeMember(label: "nextMarker", required: false, type: .string) + public struct JobExecutionSummaryForThing: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobExecutionSummary", required: false, type: .structure), + AWSShapeMember(label: "jobId", required: false, type: .string) ] - /// The descriptions of the policies. - public let policies: [Policy]? - /// The marker for the next set of results, or null if there are no additional results. - public let nextMarker: String? + /// Contains a subset of information about a job execution. + public let jobExecutionSummary: JobExecutionSummary? + /// The unique identifier you assigned to this job when it was created. + public let jobId: String? - public init(policies: [Policy]? = nil, nextMarker: String? = nil) { - self.policies = policies - self.nextMarker = nextMarker + public init(jobExecutionSummary: JobExecutionSummary? = nil, jobId: String? = nil) { + self.jobExecutionSummary = jobExecutionSummary + self.jobId = jobId } private enum CodingKeys: String, CodingKey { - case policies = "policies" - case nextMarker = "nextMarker" + case jobExecutionSummary = "jobExecutionSummary" + case jobId = "jobId" } } public struct ElasticsearchAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "roleArn", required: true, type: .string), AWSShapeMember(label: "endpoint", required: true, type: .string), AWSShapeMember(label: "id", required: true, type: .string), @@ -976,29 +1025,29 @@ extension Iot { } } - public struct ListOutgoingCertificatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextMarker", required: false, type: .string), - AWSShapeMember(label: "outgoingCertificates", required: false, type: .list) + public struct DetachPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "target", required: true, type: .string), + AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) ] - /// The marker for the next set of results. - public let nextMarker: String? - /// The certificates that are being transfered but not yet accepted. - public let outgoingCertificates: [OutgoingCertificate]? + /// The target from which the policy will be detached. + public let target: String + /// The policy to detach. + public let policyName: String - public init(nextMarker: String? = nil, outgoingCertificates: [OutgoingCertificate]? = nil) { - self.nextMarker = nextMarker - self.outgoingCertificates = outgoingCertificates + public init(target: String, policyName: String) { + self.target = target + self.policyName = policyName } private enum CodingKeys: String, CodingKey { - case nextMarker = "nextMarker" - case outgoingCertificates = "outgoingCertificates" + case target = "target" + case policyName = "policyName" } } public struct UpdateCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "certificateId", location: .uri(locationName: "certificateId"), required: true, type: .string), AWSShapeMember(label: "newStatus", location: .querystring(locationName: "newStatus"), required: true, type: .enum) ] @@ -1024,8 +1073,59 @@ extension Iot { public var description: String { return self.rawValue } } + public struct JobExecution: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "statusDetails", required: false, type: .structure), + AWSShapeMember(label: "startedAt", required: false, type: .timestamp), + AWSShapeMember(label: "lastUpdatedAt", required: false, type: .timestamp), + AWSShapeMember(label: "thingArn", required: false, type: .string), + AWSShapeMember(label: "queuedAt", required: false, type: .timestamp), + AWSShapeMember(label: "executionNumber", required: false, type: .long), + AWSShapeMember(label: "jobId", required: false, type: .string) + ] + /// The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCESS, CANCELED, or REJECTED). + public let status: JobExecutionStatus? + /// A collection of name/value pairs that describe the status of the job execution. + public let statusDetails: JobExecutionStatusDetails? + /// The time, in milliseconds since the epoch, when the job execution started. + public let startedAt: TimeStamp? + /// The time, in milliseconds since the epoch, when the job execution was last updated. + public let lastUpdatedAt: TimeStamp? + /// The ARN of the thing on which the job execution is running. + public let thingArn: String? + /// The time, in milliseconds since the epoch, when the job execution was queued. + public let queuedAt: TimeStamp? + /// A string (consisting of the digits "0" through "9") which identifies this particular job execution on this particular device. It can be used in commands which return or update job execution information. + public let executionNumber: Int64? + /// The unique identifier you assigned to the job when it was created. + public let jobId: String? + + public init(status: JobExecutionStatus? = nil, statusDetails: JobExecutionStatusDetails? = nil, startedAt: TimeStamp? = nil, lastUpdatedAt: TimeStamp? = nil, thingArn: String? = nil, queuedAt: TimeStamp? = nil, executionNumber: Int64? = nil, jobId: String? = nil) { + self.status = status + self.statusDetails = statusDetails + self.startedAt = startedAt + self.lastUpdatedAt = lastUpdatedAt + self.thingArn = thingArn + self.queuedAt = queuedAt + self.executionNumber = executionNumber + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case statusDetails = "statusDetails" + case startedAt = "startedAt" + case lastUpdatedAt = "lastUpdatedAt" + case thingArn = "thingArn" + case queuedAt = "queuedAt" + case executionNumber = "executionNumber" + case jobId = "jobId" + } + } + public struct TopicRuleListItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ruleDisabled", required: false, type: .boolean), AWSShapeMember(label: "topicPattern", required: false, type: .string), AWSShapeMember(label: "ruleName", required: false, type: .string), @@ -1060,45 +1160,97 @@ extension Iot { } } - public struct DeleteThingTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "thingTypeName", location: .uri(locationName: "thingTypeName"), required: true, type: .string) + public struct UpdateAuthorizerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "authorizerName", location: .uri(locationName: "authorizerName"), required: true, type: .string), + AWSShapeMember(label: "tokenKeyName", required: false, type: .string), + AWSShapeMember(label: "authorizerFunctionArn", required: false, type: .string), + AWSShapeMember(label: "tokenSigningPublicKeys", required: false, type: .map) ] - /// The name of the thing type. - public let thingTypeName: String + /// The status of the update authorizer request. + public let status: AuthorizerStatus? + /// The authorizer name. + public let authorizerName: String + /// The key used to extract the token from the HTTP headers. + public let tokenKeyName: String? + /// The ARN of the authorizer's Lambda function. + public let authorizerFunctionArn: String? + /// The public keys used to verify the token signature. + public let tokenSigningPublicKeys: [String: String]? + + public init(status: AuthorizerStatus? = nil, authorizerName: String, tokenKeyName: String? = nil, authorizerFunctionArn: String? = nil, tokenSigningPublicKeys: [String: String]? = nil) { + self.status = status + self.authorizerName = authorizerName + self.tokenKeyName = tokenKeyName + self.authorizerFunctionArn = authorizerFunctionArn + self.tokenSigningPublicKeys = tokenSigningPublicKeys + } - public init(thingTypeName: String) { - self.thingTypeName = thingTypeName + private enum CodingKeys: String, CodingKey { + case status = "status" + case authorizerName = "authorizerName" + case tokenKeyName = "tokenKeyName" + case authorizerFunctionArn = "authorizerFunctionArn" + case tokenSigningPublicKeys = "tokenSigningPublicKeys" + } + } + + public struct RegistrationConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: false, type: .string), + AWSShapeMember(label: "templateBody", required: false, type: .string) + ] + /// The ARN of the role. + public let roleArn: String? + /// The template body. + public let templateBody: String? + + public init(roleArn: String? = nil, templateBody: String? = nil) { + self.roleArn = roleArn + self.templateBody = templateBody } private enum CodingKeys: String, CodingKey { - case thingTypeName = "thingTypeName" + case roleArn = "roleArn" + case templateBody = "templateBody" } } - public struct RegisterCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateId", required: false, type: .string), - AWSShapeMember(label: "certificateArn", required: false, type: .string) + public struct DescribeJobExecutionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "execution", required: false, type: .structure) ] - /// The certificate identifier. - public let certificateId: String? - /// The certificate ARN. - public let certificateArn: String? + /// Information about the job execution. + public let execution: JobExecution? - public init(certificateId: String? = nil, certificateArn: String? = nil) { - self.certificateId = certificateId - self.certificateArn = certificateArn + public init(execution: JobExecution? = nil) { + self.execution = execution } private enum CodingKeys: String, CodingKey { - case certificateId = "certificateId" - case certificateArn = "certificateArn" + case execution = "execution" + } + } + + public struct GetJobDocumentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string) + ] + /// The unique identifier you assigned to this job when it was created. + public let jobId: String + + public init(jobId: String) { + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case jobId = "jobId" } } public struct PutItemInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tableName", required: true, type: .string) ] /// The table where the message data will be written @@ -1113,29 +1265,29 @@ extension Iot { } } - public struct AttributePayload: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "merge", required: false, type: .boolean), - AWSShapeMember(label: "attributes", required: false, type: .map) + public struct LogTargetConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "logTarget", required: false, type: .structure), + AWSShapeMember(label: "logLevel", required: false, type: .enum) ] - /// Specifies whether the list of attributes provided in the AttributePayload is merged with the attributes stored in the registry, instead of overwriting them. To remove an attribute, call UpdateThing with an empty attribute value. The merge attribute is only valid when calling UpdateThing. - public let merge: Bool? - /// A JSON string containing up to three key-value pair in JSON format. For example: {\"attributes\":{\"string1\":\"string2\"}} - public let attributes: [String: String]? + /// A log target + public let logTarget: LogTarget? + /// The logging level. + public let logLevel: LogLevel? - public init(merge: Bool? = nil, attributes: [String: String]? = nil) { - self.merge = merge - self.attributes = attributes + public init(logTarget: LogTarget? = nil, logLevel: LogLevel? = nil) { + self.logTarget = logTarget + self.logLevel = logLevel } private enum CodingKeys: String, CodingKey { - case merge = "merge" - case attributes = "attributes" + case logTarget = "logTarget" + case logLevel = "logLevel" } } public struct CreatePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "policyDocument", required: true, type: .string), AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) ] @@ -1155,24 +1307,24 @@ extension Iot { } } - public struct DeletePolicyVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policyVersionId", location: .uri(locationName: "policyVersionId"), required: true, type: .string), - AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) + public struct RegisterThingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "templateBody", required: true, type: .string), + AWSShapeMember(label: "parameters", required: false, type: .map) ] - /// The policy version ID. - public let policyVersionId: String - /// The name of the policy. - public let policyName: String + /// The provisioning template. + public let templateBody: String + /// The parameters for provisioning a thing. + public let parameters: [String: String]? - public init(policyVersionId: String, policyName: String) { - self.policyVersionId = policyVersionId - self.policyName = policyName + public init(templateBody: String, parameters: [String: String]? = nil) { + self.templateBody = templateBody + self.parameters = parameters } private enum CodingKeys: String, CodingKey { - case policyVersionId = "policyVersionId" - case policyName = "policyName" + case templateBody = "templateBody" + case parameters = "parameters" } } @@ -1180,6 +1332,27 @@ extension Iot { } + public struct ListJobsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "jobs", required: false, type: .list) + ] + /// The token for the next set of results, or null if there are no additional results. + public let nextToken: String? + /// A list of jobs. + public let jobs: [JobSummary]? + + public init(nextToken: String? = nil, jobs: [JobSummary]? = nil) { + self.nextToken = nextToken + self.jobs = jobs + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case jobs = "jobs" + } + } + public struct DeleteRegistrationCodeRequest: AWSShape { } @@ -1188,8 +1361,39 @@ extension Iot { } + public struct AddThingToThingGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingName", required: false, type: .string), + AWSShapeMember(label: "thingArn", required: false, type: .string), + AWSShapeMember(label: "thingGroupName", required: false, type: .string), + AWSShapeMember(label: "thingGroupArn", required: false, type: .string) + ] + /// The name of the thing to add to a group. + public let thingName: String? + /// The ARN of the thing to add to a group. + public let thingArn: String? + /// The name of the group to which you are adding a thing. + public let thingGroupName: String? + /// The ARN of the group to which you are adding a thing. + public let thingGroupArn: String? + + public init(thingName: String? = nil, thingArn: String? = nil, thingGroupName: String? = nil, thingGroupArn: String? = nil) { + self.thingName = thingName + self.thingArn = thingArn + self.thingGroupName = thingGroupName + self.thingGroupArn = thingGroupArn + } + + private enum CodingKeys: String, CodingKey { + case thingName = "thingName" + case thingArn = "thingArn" + case thingGroupName = "thingGroupName" + case thingGroupArn = "thingGroupArn" + } + } + public struct LambdaAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "functionArn", required: true, type: .string) ] /// The ARN of the Lambda function. @@ -1204,216 +1408,143 @@ extension Iot { } } - public struct TopicRule: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ruleDisabled", required: false, type: .boolean), - AWSShapeMember(label: "ruleName", required: false, type: .string), - AWSShapeMember(label: "createdAt", required: false, type: .timestamp), - AWSShapeMember(label: "awsIotSqlVersion", required: false, type: .string), - AWSShapeMember(label: "description", required: false, type: .string), - AWSShapeMember(label: "actions", required: false, type: .list), - AWSShapeMember(label: "sql", required: false, type: .string) + public enum EventType: String, CustomStringConvertible, Codable { + case thing = "THING" + case thingGroup = "THING_GROUP" + case thingType = "THING_TYPE" + case thingGroupMembership = "THING_GROUP_MEMBERSHIP" + case thingGroupHierarchy = "THING_GROUP_HIERARCHY" + case thingTypeAssociation = "THING_TYPE_ASSOCIATION" + case job = "JOB" + case jobExecution = "JOB_EXECUTION" + public var description: String { return self.rawValue } + } + + public struct UpdateThingGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "version", required: false, type: .long) ] - /// Specifies whether the rule is disabled. - public let ruleDisabled: Bool? - /// The name of the rule. - public let ruleName: String? - /// The date and time the rule was created. - public let createdAt: TimeStamp? - /// The version of the SQL rules engine to use when evaluating the rule. - public let awsIotSqlVersion: String? - /// The description of the rule. - public let description: String? - /// The actions associated with the rule. - public let actions: [Action]? - /// The SQL statement used to query the topic. When using a SQL query with multiple lines, be sure to escape the newline characters. - public let sql: String? + /// The version of the updated thing group. + public let version: Int64? - public init(ruleDisabled: Bool? = nil, ruleName: String? = nil, createdAt: TimeStamp? = nil, awsIotSqlVersion: String? = nil, description: String? = nil, actions: [Action]? = nil, sql: String? = nil) { - self.ruleDisabled = ruleDisabled - self.ruleName = ruleName - self.createdAt = createdAt - self.awsIotSqlVersion = awsIotSqlVersion - self.description = description - self.actions = actions - self.sql = sql + public init(version: Int64? = nil) { + self.version = version } private enum CodingKeys: String, CodingKey { - case ruleDisabled = "ruleDisabled" - case ruleName = "ruleName" - case createdAt = "createdAt" - case awsIotSqlVersion = "awsIotSqlVersion" - case description = "description" - case actions = "actions" - case sql = "sql" + case version = "version" } } - public struct CreateThingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "thingTypeName", required: false, type: .string), - AWSShapeMember(label: "attributePayload", required: false, type: .structure), - AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) + public struct SetDefaultAuthorizerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorizerArn", required: false, type: .string), + AWSShapeMember(label: "authorizerName", required: false, type: .string) ] - /// The name of the thing type associated with the new thing. - public let thingTypeName: String? - /// The attribute payload, which consists of up to three name/value pairs in a JSON document. For example: {\"attributes\":{\"string1\":\"string2\"}} - public let attributePayload: AttributePayload? - /// The name of the thing to create. - public let thingName: String + /// The authorizer ARN. + public let authorizerArn: String? + /// The authorizer name. + public let authorizerName: String? - public init(thingTypeName: String? = nil, attributePayload: AttributePayload? = nil, thingName: String) { - self.thingTypeName = thingTypeName - self.attributePayload = attributePayload - self.thingName = thingName + public init(authorizerArn: String? = nil, authorizerName: String? = nil) { + self.authorizerArn = authorizerArn + self.authorizerName = authorizerName } private enum CodingKeys: String, CodingKey { - case thingTypeName = "thingTypeName" - case attributePayload = "attributePayload" - case thingName = "thingName" + case authorizerArn = "authorizerArn" + case authorizerName = "authorizerName" } } - public struct CertificateDescription: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "caCertificateId", required: false, type: .string), - AWSShapeMember(label: "status", required: false, type: .enum), - AWSShapeMember(label: "creationDate", required: false, type: .timestamp), - AWSShapeMember(label: "certificateId", required: false, type: .string), - AWSShapeMember(label: "certificatePem", required: false, type: .string), - AWSShapeMember(label: "previousOwnedBy", required: false, type: .string), - AWSShapeMember(label: "transferData", required: false, type: .structure), - AWSShapeMember(label: "ownedBy", required: false, type: .string), - AWSShapeMember(label: "certificateArn", required: false, type: .string), - AWSShapeMember(label: "lastModifiedDate", required: false, type: .timestamp) + public struct ListAuthorizersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorizers", required: false, type: .list), + AWSShapeMember(label: "nextMarker", required: false, type: .string) ] - /// The certificate ID of the CA certificate used to sign this certificate. - public let caCertificateId: String? - /// The status of the certificate. - public let status: CertificateStatus? - /// The date and time the certificate was created. - public let creationDate: TimeStamp? - /// The ID of the certificate. - public let certificateId: String? - /// The certificate data, in PEM format. - public let certificatePem: String? - /// The ID of the AWS account of the previous owner of the certificate. - public let previousOwnedBy: String? - /// The transfer data. - public let transferData: TransferData? - /// The ID of the AWS account that owns the certificate. - public let ownedBy: String? - /// The ARN of the certificate. - public let certificateArn: String? - /// The date and time the certificate was last modified. - public let lastModifiedDate: TimeStamp? + /// The authorizers. + public let authorizers: [AuthorizerSummary]? + /// A marker used to get the next set of results. + public let nextMarker: String? - public init(caCertificateId: String? = nil, status: CertificateStatus? = nil, creationDate: TimeStamp? = nil, certificateId: String? = nil, certificatePem: String? = nil, previousOwnedBy: String? = nil, transferData: TransferData? = nil, ownedBy: String? = nil, certificateArn: String? = nil, lastModifiedDate: TimeStamp? = nil) { - self.caCertificateId = caCertificateId - self.status = status - self.creationDate = creationDate - self.certificateId = certificateId - self.certificatePem = certificatePem - self.previousOwnedBy = previousOwnedBy - self.transferData = transferData - self.ownedBy = ownedBy - self.certificateArn = certificateArn - self.lastModifiedDate = lastModifiedDate + public init(authorizers: [AuthorizerSummary]? = nil, nextMarker: String? = nil) { + self.authorizers = authorizers + self.nextMarker = nextMarker } private enum CodingKeys: String, CodingKey { - case caCertificateId = "caCertificateId" - case status = "status" - case creationDate = "creationDate" - case certificateId = "certificateId" - case certificatePem = "certificatePem" - case previousOwnedBy = "previousOwnedBy" - case transferData = "transferData" - case ownedBy = "ownedBy" - case certificateArn = "certificateArn" - case lastModifiedDate = "lastModifiedDate" + case authorizers = "authorizers" + case nextMarker = "nextMarker" } } - public struct CloudwatchAlarmAction: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "roleArn", required: true, type: .string), - AWSShapeMember(label: "stateReason", required: true, type: .string), - AWSShapeMember(label: "alarmName", required: true, type: .string), - AWSShapeMember(label: "stateValue", required: true, type: .string) + public struct CreateAuthorizerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorizerArn", required: false, type: .string), + AWSShapeMember(label: "authorizerName", required: false, type: .string) ] - /// The IAM role that allows access to the CloudWatch alarm. - public let roleArn: String - /// The reason for the alarm change. - public let stateReason: String - /// The CloudWatch alarm name. - public let alarmName: String - /// The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA. - public let stateValue: String + /// The authorizer ARN. + public let authorizerArn: String? + /// The authorizer's name. + public let authorizerName: String? - public init(roleArn: String, stateReason: String, alarmName: String, stateValue: String) { - self.roleArn = roleArn - self.stateReason = stateReason - self.alarmName = alarmName - self.stateValue = stateValue + public init(authorizerArn: String? = nil, authorizerName: String? = nil) { + self.authorizerArn = authorizerArn + self.authorizerName = authorizerName } private enum CodingKeys: String, CodingKey { - case roleArn = "roleArn" - case stateReason = "stateReason" - case alarmName = "alarmName" - case stateValue = "stateValue" + case authorizerArn = "authorizerArn" + case authorizerName = "authorizerName" } } - public struct DisableTopicRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ruleName", location: .uri(locationName: "ruleName"), required: true, type: .string) + public struct DescribeEventConfigurationsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "eventConfigurations", required: false, type: .map), + AWSShapeMember(label: "lastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp) ] - /// The name of the rule to disable. - public let ruleName: String + /// The event configurations. + public let eventConfigurations: [EventType: Configuration]? + /// The date the event configurations were last modified. + public let lastModifiedDate: TimeStamp? + /// The creation date of the event configuration. + public let creationDate: TimeStamp? - public init(ruleName: String) { - self.ruleName = ruleName + public init(eventConfigurations: [EventType: Configuration]? = nil, lastModifiedDate: TimeStamp? = nil, creationDate: TimeStamp? = nil) { + self.eventConfigurations = eventConfigurations + self.lastModifiedDate = lastModifiedDate + self.creationDate = creationDate } private enum CodingKeys: String, CodingKey { - case ruleName = "ruleName" + case eventConfigurations = "eventConfigurations" + case lastModifiedDate = "lastModifiedDate" + case creationDate = "creationDate" } } - public struct ListPrincipalThingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), - AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "principal", location: .header(locationName: "x-amzn-principal"), required: true, type: .string) + public struct DisableTopicRuleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ruleName", location: .uri(locationName: "ruleName"), required: true, type: .string) ] - /// The maximum number of results to return in this operation. - public let maxResults: Int32? - /// The token for the next set of results, or null if there are no additional results. - public let nextToken: String? - /// The principal. - public let principal: String + /// The name of the rule to disable. + public let ruleName: String - public init(maxResults: Int32? = nil, nextToken: String? = nil, principal: String) { - self.maxResults = maxResults - self.nextToken = nextToken - self.principal = principal + public init(ruleName: String) { + self.ruleName = ruleName } private enum CodingKeys: String, CodingKey { - case maxResults = "maxResults" - case nextToken = "nextToken" - case principal = "x-amzn-principal" + case ruleName = "ruleName" } } public struct CreateTopicRuleRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "topicRulePayload" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ruleName", location: .uri(locationName: "ruleName"), required: true, type: .string), AWSShapeMember(label: "topicRulePayload", required: true, type: .structure) ] @@ -1433,55 +1564,66 @@ extension Iot { } } - public struct DeleteCACertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateId", location: .uri(locationName: "caCertificateId"), required: true, type: .string) + public struct DescribeThingGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingGroupName", location: .uri(locationName: "thingGroupName"), required: true, type: .string) ] - /// The ID of the certificate to delete. - public let certificateId: String + /// The name of the thing group. + public let thingGroupName: String - public init(certificateId: String) { - self.certificateId = certificateId + public init(thingGroupName: String) { + self.thingGroupName = thingGroupName } private enum CodingKeys: String, CodingKey { - case certificateId = "caCertificateId" + case thingGroupName = "thingGroupName" } } - public struct CACertificate: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "status", required: false, type: .enum), - AWSShapeMember(label: "creationDate", required: false, type: .timestamp), - AWSShapeMember(label: "certificateId", required: false, type: .string), - AWSShapeMember(label: "certificateArn", required: false, type: .string) + public struct SetV2LoggingOptionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: false, type: .string), + AWSShapeMember(label: "defaultLogLevel", required: false, type: .enum), + AWSShapeMember(label: "disableAllLogs", required: false, type: .boolean) ] - /// The status of the CA certificate. The status value REGISTER_INACTIVE is deprecated and should not be used. - public let status: CACertificateStatus? - /// The date the CA certificate was created. - public let creationDate: TimeStamp? - /// The ID of the CA certificate. - public let certificateId: String? - /// The ARN of the CA certificate. - public let certificateArn: String? + /// The role ARN that allows IoT to write to Cloudwatch logs. + public let roleArn: String? + /// The default logging level. + public let defaultLogLevel: LogLevel? + /// Set to true to disable all logs, otherwise set to false. + public let disableAllLogs: Bool? - public init(status: CACertificateStatus? = nil, creationDate: TimeStamp? = nil, certificateId: String? = nil, certificateArn: String? = nil) { - self.status = status - self.creationDate = creationDate + public init(roleArn: String? = nil, defaultLogLevel: LogLevel? = nil, disableAllLogs: Bool? = nil) { + self.roleArn = roleArn + self.defaultLogLevel = defaultLogLevel + self.disableAllLogs = disableAllLogs + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "roleArn" + case defaultLogLevel = "defaultLogLevel" + case disableAllLogs = "disableAllLogs" + } + } + + public struct DeleteCACertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificateId", location: .uri(locationName: "caCertificateId"), required: true, type: .string) + ] + /// The ID of the certificate to delete. + public let certificateId: String + + public init(certificateId: String) { self.certificateId = certificateId - self.certificateArn = certificateArn } private enum CodingKeys: String, CodingKey { - case status = "status" - case creationDate = "creationDate" - case certificateId = "certificateId" - case certificateArn = "certificateArn" + case certificateId = "caCertificateId" } } public struct ListPolicyVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) ] /// The policy name. @@ -1496,39 +1638,59 @@ extension Iot { } } - public struct ListPolicyPrincipalsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), - AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), - AWSShapeMember(label: "policyName", location: .header(locationName: "x-amzn-iot-policy"), required: true, type: .string), - AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) + public struct JobProcessDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "numberOfRejectedThings", required: false, type: .integer), + AWSShapeMember(label: "processingTargets", required: false, type: .list), + AWSShapeMember(label: "numberOfCanceledThings", required: false, type: .integer), + AWSShapeMember(label: "numberOfFailedThings", required: false, type: .integer), + AWSShapeMember(label: "numberOfRemovedThings", required: false, type: .integer), + AWSShapeMember(label: "numberOfSucceededThings", required: false, type: .integer), + AWSShapeMember(label: "numberOfInProgressThings", required: false, type: .integer), + AWSShapeMember(label: "numberOfQueuedThings", required: false, type: .integer) ] - /// The marker for the next set of results. - public let marker: String? - /// The result page size. - public let pageSize: Int32? - /// The policy name. - public let policyName: String - /// Specifies the order for results. If true, the results are returned in ascending creation order. - public let ascendingOrder: Bool? - - public init(marker: String? = nil, pageSize: Int32? = nil, policyName: String, ascendingOrder: Bool? = nil) { - self.marker = marker - self.pageSize = pageSize - self.policyName = policyName - self.ascendingOrder = ascendingOrder + /// The number of things that rejected the job. + public let numberOfRejectedThings: Int32? + /// The devices on which the job is executing. + public let processingTargets: [String]? + /// The number of things that cancelled the job. + public let numberOfCanceledThings: Int32? + /// The number of things that failed executing the job. + public let numberOfFailedThings: Int32? + /// The number of things that are no longer scheduled to execute the job because they have been deleted or have been removed from the group that was a target of the job. + public let numberOfRemovedThings: Int32? + /// The number of things which successfully completed the job. + public let numberOfSucceededThings: Int32? + /// The number of things currently executing the job. + public let numberOfInProgressThings: Int32? + /// The number of things that are awaiting execution of the job. + public let numberOfQueuedThings: Int32? + + public init(numberOfRejectedThings: Int32? = nil, processingTargets: [String]? = nil, numberOfCanceledThings: Int32? = nil, numberOfFailedThings: Int32? = nil, numberOfRemovedThings: Int32? = nil, numberOfSucceededThings: Int32? = nil, numberOfInProgressThings: Int32? = nil, numberOfQueuedThings: Int32? = nil) { + self.numberOfRejectedThings = numberOfRejectedThings + self.processingTargets = processingTargets + self.numberOfCanceledThings = numberOfCanceledThings + self.numberOfFailedThings = numberOfFailedThings + self.numberOfRemovedThings = numberOfRemovedThings + self.numberOfSucceededThings = numberOfSucceededThings + self.numberOfInProgressThings = numberOfInProgressThings + self.numberOfQueuedThings = numberOfQueuedThings } private enum CodingKeys: String, CodingKey { - case marker = "marker" - case pageSize = "pageSize" - case policyName = "x-amzn-iot-policy" - case ascendingOrder = "isAscendingOrder" + case numberOfRejectedThings = "numberOfRejectedThings" + case processingTargets = "processingTargets" + case numberOfCanceledThings = "numberOfCanceledThings" + case numberOfFailedThings = "numberOfFailedThings" + case numberOfRemovedThings = "numberOfRemovedThings" + case numberOfSucceededThings = "numberOfSucceededThings" + case numberOfInProgressThings = "numberOfInProgressThings" + case numberOfQueuedThings = "numberOfQueuedThings" } } public struct PolicyVersion: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "createDate", required: false, type: .timestamp), AWSShapeMember(label: "versionId", required: false, type: .string), AWSShapeMember(label: "isDefaultVersion", required: false, type: .boolean) @@ -1554,7 +1716,7 @@ extension Iot { } public struct AttachThingPrincipalRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string), AWSShapeMember(label: "principal", location: .header(locationName: "x-amzn-principal"), required: true, type: .string) ] @@ -1574,84 +1736,68 @@ extension Iot { } } - public struct DeleteCACertificateResponse: AWSShape { - - } - - public struct GetRegistrationCodeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "registrationCode", required: false, type: .string) + public struct AuthorizerSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorizerArn", required: false, type: .string), + AWSShapeMember(label: "authorizerName", required: false, type: .string) ] - /// The CA certificate registration code. - public let registrationCode: String? + /// The authorizer ARN. + public let authorizerArn: String? + /// The authorizer name. + public let authorizerName: String? - public init(registrationCode: String? = nil) { - self.registrationCode = registrationCode + public init(authorizerArn: String? = nil, authorizerName: String? = nil) { + self.authorizerArn = authorizerArn + self.authorizerName = authorizerName } private enum CodingKeys: String, CodingKey { - case registrationCode = "registrationCode" + case authorizerArn = "authorizerArn" + case authorizerName = "authorizerName" } } - public struct ListCertificatesByCAResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificates", required: false, type: .list), - AWSShapeMember(label: "nextMarker", required: false, type: .string) + public struct CreateRoleAliasRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "credentialDurationSeconds", required: false, type: .integer), + AWSShapeMember(label: "roleAlias", location: .uri(locationName: "roleAlias"), required: true, type: .string), + AWSShapeMember(label: "roleArn", required: true, type: .string) ] - /// The device certificates signed by the specified CA certificate. - public let certificates: [Certificate]? - /// The marker for the next set of results, or null if there are no additional results. - public let nextMarker: String? + /// How long (in seconds) the credentials will be valid. + public let credentialDurationSeconds: Int32? + /// The role alias that points to a role ARN. This allows you to change the role without having to update the device. + public let roleAlias: String + /// The role ARN. + public let roleArn: String - public init(certificates: [Certificate]? = nil, nextMarker: String? = nil) { - self.certificates = certificates - self.nextMarker = nextMarker + public init(credentialDurationSeconds: Int32? = nil, roleAlias: String, roleArn: String) { + self.credentialDurationSeconds = credentialDurationSeconds + self.roleAlias = roleAlias + self.roleArn = roleArn } private enum CodingKeys: String, CodingKey { - case certificates = "certificates" - case nextMarker = "nextMarker" + case credentialDurationSeconds = "credentialDurationSeconds" + case roleAlias = "roleAlias" + case roleArn = "roleArn" } } - public struct ListPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), - AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), - AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) - ] - /// The marker for the next set of results. - public let marker: String? - /// The result page size. - public let pageSize: Int32? - /// Specifies the order for results. If true, the results are returned in ascending creation order. - public let ascendingOrder: Bool? - - public init(marker: String? = nil, pageSize: Int32? = nil, ascendingOrder: Bool? = nil) { - self.marker = marker - self.pageSize = pageSize - self.ascendingOrder = ascendingOrder - } + public struct DeleteCACertificateResponse: AWSShape { - private enum CodingKeys: String, CodingKey { - case marker = "marker" - case pageSize = "pageSize" - case ascendingOrder = "isAscendingOrder" - } } - public struct ListCACertificatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListRoleAliasesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) ] - /// The marker for the next set of results. + /// A marker used to get the next set of results. public let marker: String? - /// The result page size. + /// The maximum number of results to return at one time. public let pageSize: Int32? - /// Determines the order of the results. + /// Return the list of role aliases in ascending alphabetical order. public let ascendingOrder: Bool? public init(marker: String? = nil, pageSize: Int32? = nil, ascendingOrder: Bool? = nil) { @@ -1667,65 +1813,8 @@ extension Iot { } } - public struct DeprecateThingTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "thingTypeName", location: .uri(locationName: "thingTypeName"), required: true, type: .string), - AWSShapeMember(label: "undoDeprecate", required: false, type: .boolean) - ] - /// The name of the thing type to deprecate. - public let thingTypeName: String - /// Whether to undeprecate a deprecated thing type. If true, the thing type will not be deprecated anymore and you can associate it with things. - public let undoDeprecate: Bool? - - public init(thingTypeName: String, undoDeprecate: Bool? = nil) { - self.thingTypeName = thingTypeName - self.undoDeprecate = undoDeprecate - } - - private enum CodingKeys: String, CodingKey { - case thingTypeName = "thingTypeName" - case undoDeprecate = "undoDeprecate" - } - } - - public struct TopicRulePayload: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "awsIotSqlVersion", required: false, type: .string), - AWSShapeMember(label: "ruleDisabled", required: false, type: .boolean), - AWSShapeMember(label: "description", required: false, type: .string), - AWSShapeMember(label: "actions", required: true, type: .list), - AWSShapeMember(label: "sql", required: true, type: .string) - ] - /// The version of the SQL rules engine to use when evaluating the rule. - public let awsIotSqlVersion: String? - /// Specifies whether the rule is disabled. - public let ruleDisabled: Bool? - /// The description of the rule. - public let description: String? - /// The actions associated with the rule. - public let actions: [Action] - /// The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference in the AWS IoT Developer Guide. - public let sql: String - - public init(awsIotSqlVersion: String? = nil, ruleDisabled: Bool? = nil, description: String? = nil, actions: [Action], sql: String) { - self.awsIotSqlVersion = awsIotSqlVersion - self.ruleDisabled = ruleDisabled - self.description = description - self.actions = actions - self.sql = sql - } - - private enum CodingKeys: String, CodingKey { - case awsIotSqlVersion = "awsIotSqlVersion" - case ruleDisabled = "ruleDisabled" - case description = "description" - case actions = "actions" - case sql = "sql" - } - } - public struct SnsAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "messageFormat", required: false, type: .enum), AWSShapeMember(label: "roleArn", required: true, type: .string), AWSShapeMember(label: "targetArn", required: true, type: .string) @@ -1750,49 +1839,138 @@ extension Iot { } } - public struct KeyPair: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PublicKey", required: false, type: .string), - AWSShapeMember(label: "PrivateKey", required: false, type: .string) + public struct ListJobExecutionsForThingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string), + AWSShapeMember(label: "status", location: .querystring(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string) ] - /// The public key. - public let publicKey: String? - /// The private key. - public let privateKey: String? + /// The thing name. + public let thingName: String + /// An optional filter that lets you search for jobs that have the specified status. + public let status: JobExecutionStatus? + /// The maximum number of results to be returned per request. + public let maxResults: Int32? + /// The token to retrieve the next set of results. + public let nextToken: String? - public init(publicKey: String? = nil, privateKey: String? = nil) { - self.publicKey = publicKey - self.privateKey = privateKey + public init(thingName: String, status: JobExecutionStatus? = nil, maxResults: Int32? = nil, nextToken: String? = nil) { + self.thingName = thingName + self.status = status + self.maxResults = maxResults + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case publicKey = "PublicKey" - case privateKey = "PrivateKey" + case thingName = "thingName" + case status = "status" + case maxResults = "maxResults" + case nextToken = "nextToken" } } - public struct DeleteRegistrationCodeResponse: AWSShape { - - } - - public struct ListPolicyVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policyVersions", required: false, type: .list) + public struct ListAuthorizersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "status", location: .querystring(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), + AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) ] - /// The policy versions. - public let policyVersions: [PolicyVersion]? + /// A marker used to get the next set of results. + public let marker: String? + /// The status of the list authorizers request. + public let status: AuthorizerStatus? + /// The maximum number of results to return at one time. + public let pageSize: Int32? + /// Return the list of authorizers in ascending alphabetical order. + public let ascendingOrder: Bool? - public init(policyVersions: [PolicyVersion]? = nil) { - self.policyVersions = policyVersions + public init(marker: String? = nil, status: AuthorizerStatus? = nil, pageSize: Int32? = nil, ascendingOrder: Bool? = nil) { + self.marker = marker + self.status = status + self.pageSize = pageSize + self.ascendingOrder = ascendingOrder } private enum CodingKeys: String, CodingKey { - case policyVersions = "policyVersions" + case marker = "marker" + case status = "status" + case pageSize = "pageSize" + case ascendingOrder = "isAscendingOrder" + } + } + + public struct SearchIndexResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "things", required: false, type: .list) + ] + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The things that match the search query. + public let things: [ThingDocument]? + + public init(nextToken: String? = nil, things: [ThingDocument]? = nil) { + self.nextToken = nextToken + self.things = things + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case things = "things" + } + } + + public struct UpdateRoleAliasRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "credentialDurationSeconds", required: false, type: .integer), + AWSShapeMember(label: "roleAlias", location: .uri(locationName: "roleAlias"), required: true, type: .string), + AWSShapeMember(label: "roleArn", required: false, type: .string) + ] + /// The number of seconds the credential will be valid. + public let credentialDurationSeconds: Int32? + /// The role alias to update. + public let roleAlias: String + /// The role ARN. + public let roleArn: String? + + public init(credentialDurationSeconds: Int32? = nil, roleAlias: String, roleArn: String? = nil) { + self.credentialDurationSeconds = credentialDurationSeconds + self.roleAlias = roleAlias + self.roleArn = roleArn + } + + private enum CodingKeys: String, CodingKey { + case credentialDurationSeconds = "credentialDurationSeconds" + case roleAlias = "roleAlias" + case roleArn = "roleArn" + } + } + + public struct AttachPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "target", required: true, type: .string), + AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) + ] + /// The identity to which the policy is attached. + public let target: String + /// The name of the policy to attach. + public let policyName: String + + public init(target: String, policyName: String) { + self.target = target + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case target = "target" + case policyName = "policyName" } } public struct GetPolicyVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "policyDocument", required: false, type: .string), AWSShapeMember(label: "policyVersionId", required: false, type: .string), AWSShapeMember(label: "policyName", required: false, type: .string), @@ -1827,8 +2005,24 @@ extension Iot { } } + public struct StopThingRegistrationTaskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "taskId", location: .uri(locationName: "taskId"), required: true, type: .string) + ] + /// The bulk thing provisioning task ID. + public let taskId: String + + public init(taskId: String) { + self.taskId = taskId + } + + private enum CodingKeys: String, CodingKey { + case taskId = "taskId" + } + } + public struct ListThingTypesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "thingTypeName", location: .querystring(locationName: "thingTypeName"), required: false, type: .string), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) @@ -1854,65 +2048,81 @@ extension Iot { } public struct CreateThingTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingTypeId", required: false, type: .string), AWSShapeMember(label: "thingTypeName", required: false, type: .string), AWSShapeMember(label: "thingTypeArn", required: false, type: .string) ] + /// The thing type ID. + public let thingTypeId: String? /// The name of the thing type. public let thingTypeName: String? /// The Amazon Resource Name (ARN) of the thing type. public let thingTypeArn: String? - public init(thingTypeName: String? = nil, thingTypeArn: String? = nil) { + public init(thingTypeId: String? = nil, thingTypeName: String? = nil, thingTypeArn: String? = nil) { + self.thingTypeId = thingTypeId self.thingTypeName = thingTypeName self.thingTypeArn = thingTypeArn } private enum CodingKeys: String, CodingKey { + case thingTypeId = "thingTypeId" case thingTypeName = "thingTypeName" case thingTypeArn = "thingTypeArn" } } - public struct DeleteTopicRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ruleName", location: .uri(locationName: "ruleName"), required: true, type: .string) + public struct TestAuthorizationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authResults", required: false, type: .list) ] - /// The name of the rule. - public let ruleName: String + /// The authentication results. + public let authResults: [AuthResult]? - public init(ruleName: String) { - self.ruleName = ruleName + public init(authResults: [AuthResult]? = nil) { + self.authResults = authResults } private enum CodingKeys: String, CodingKey { - case ruleName = "ruleName" + case authResults = "authResults" } } - public struct GetPolicyVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policyVersionId", location: .uri(locationName: "policyVersionId"), required: true, type: .string), - AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) + public enum IndexStatus: String, CustomStringConvertible, Codable { + case active = "ACTIVE" + case building = "BUILDING" + case rebuilding = "REBUILDING" + public var description: String { return self.rawValue } + } + + public struct DeleteAuthorizerResponse: AWSShape { + + } + + public struct ListJobExecutionsForThingResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "executionSummaries", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) ] - /// The policy version ID. - public let policyVersionId: String - /// The name of the policy. - public let policyName: String + /// A list of job execution summaries. + public let executionSummaries: [JobExecutionSummaryForThing]? + /// The token for the next set of results, or null if there are no additional results. + public let nextToken: String? - public init(policyVersionId: String, policyName: String) { - self.policyVersionId = policyVersionId - self.policyName = policyName + public init(executionSummaries: [JobExecutionSummaryForThing]? = nil, nextToken: String? = nil) { + self.executionSummaries = executionSummaries + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case policyVersionId = "policyVersionId" - case policyName = "policyName" + case executionSummaries = "executionSummaries" + case nextToken = "nextToken" } } public struct ListTopicRulesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rules", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1932,179 +2142,168 @@ extension Iot { } } - public struct S3Action: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "bucketName", required: true, type: .string), - AWSShapeMember(label: "roleArn", required: true, type: .string), - AWSShapeMember(label: "cannedAcl", required: false, type: .enum), - AWSShapeMember(label: "key", required: true, type: .string) + public struct ListJobsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", location: .querystring(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "thingGroupId", location: .querystring(locationName: "thingGroupId"), required: false, type: .string), + AWSShapeMember(label: "targetSelection", location: .querystring(locationName: "targetSelection"), required: false, type: .enum), + AWSShapeMember(label: "thingGroupName", location: .querystring(locationName: "thingGroupName"), required: false, type: .string) ] - /// The Amazon S3 bucket. - public let bucketName: String - /// The ARN of the IAM role that grants access. - public let roleArn: String - /// The Amazon S3 canned ACL that controls access to the object identified by the object key. For more information, see S3 canned ACLs. - public let cannedAcl: CannedAccessControlList? - /// The object key. - public let key: String - - public init(bucketName: String, roleArn: String, cannedAcl: CannedAccessControlList? = nil, key: String) { - self.bucketName = bucketName - self.roleArn = roleArn - self.cannedAcl = cannedAcl - self.key = key + /// An optional filter that lets you search for jobs that have the specified status. + public let status: JobStatus? + /// The maximum number of results to return per request. + public let maxResults: Int32? + /// The token to retrieve the next set of results. + public let nextToken: String? + /// A filter that limits the returned jobs to those for the specified group. + public let thingGroupId: String? + /// Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a thing when the thing is added to a target group, even after the job was completed by all things originally in the group. + public let targetSelection: TargetSelection? + /// A filter that limits the returned jobs to those for the specified group. + public let thingGroupName: String? + + public init(status: JobStatus? = nil, maxResults: Int32? = nil, nextToken: String? = nil, thingGroupId: String? = nil, targetSelection: TargetSelection? = nil, thingGroupName: String? = nil) { + self.status = status + self.maxResults = maxResults + self.nextToken = nextToken + self.thingGroupId = thingGroupId + self.targetSelection = targetSelection + self.thingGroupName = thingGroupName } private enum CodingKeys: String, CodingKey { - case bucketName = "bucketName" - case roleArn = "roleArn" - case cannedAcl = "cannedAcl" - case key = "key" + case status = "status" + case maxResults = "maxResults" + case nextToken = "nextToken" + case thingGroupId = "thingGroupId" + case targetSelection = "targetSelection" + case thingGroupName = "thingGroupName" } } - public struct OutgoingCertificate: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "transferMessage", required: false, type: .string), - AWSShapeMember(label: "creationDate", required: false, type: .timestamp), - AWSShapeMember(label: "certificateId", required: false, type: .string), - AWSShapeMember(label: "certificateArn", required: false, type: .string), - AWSShapeMember(label: "transferredTo", required: false, type: .string), - AWSShapeMember(label: "transferDate", required: false, type: .timestamp) + public struct CreateRoleAliasResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleAlias", required: false, type: .string), + AWSShapeMember(label: "roleAliasArn", required: false, type: .string) ] - /// The transfer message. - public let transferMessage: String? - /// The certificate creation date. - public let creationDate: TimeStamp? - /// The certificate ID. - public let certificateId: String? - /// The certificate ARN. - public let certificateArn: String? - /// The AWS account to which the transfer was made. - public let transferredTo: String? - /// The date the transfer was initiated. - public let transferDate: TimeStamp? + /// The role alias. + public let roleAlias: String? + /// The role alias ARN. + public let roleAliasArn: String? - public init(transferMessage: String? = nil, creationDate: TimeStamp? = nil, certificateId: String? = nil, certificateArn: String? = nil, transferredTo: String? = nil, transferDate: TimeStamp? = nil) { - self.transferMessage = transferMessage - self.creationDate = creationDate - self.certificateId = certificateId - self.certificateArn = certificateArn - self.transferredTo = transferredTo - self.transferDate = transferDate + public init(roleAlias: String? = nil, roleAliasArn: String? = nil) { + self.roleAlias = roleAlias + self.roleAliasArn = roleAliasArn } private enum CodingKeys: String, CodingKey { - case transferMessage = "transferMessage" - case creationDate = "creationDate" - case certificateId = "certificateId" - case certificateArn = "certificateArn" - case transferredTo = "transferredTo" - case transferDate = "transferDate" + case roleAlias = "roleAlias" + case roleAliasArn = "roleAliasArn" } } - public struct CreateCertificateFromCsrResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateId", required: false, type: .string), - AWSShapeMember(label: "certificateArn", required: false, type: .string), - AWSShapeMember(label: "certificatePem", required: false, type: .string) + public struct ExplicitDeny: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policies", required: false, type: .list) ] - /// The ID of the certificate. Certificate management operations only take a certificateId. - public let certificateId: String? - /// The Amazon Resource Name (ARN) of the certificate. You can use the ARN as a principal for policy operations. - public let certificateArn: String? - /// The certificate data, in PEM format. - public let certificatePem: String? + /// The policies that denied the authorization. + public let policies: [Policy]? - public init(certificateId: String? = nil, certificateArn: String? = nil, certificatePem: String? = nil) { - self.certificateId = certificateId - self.certificateArn = certificateArn - self.certificatePem = certificatePem + public init(policies: [Policy]? = nil) { + self.policies = policies } private enum CodingKeys: String, CodingKey { - case certificateId = "certificateId" - case certificateArn = "certificateArn" - case certificatePem = "certificatePem" + case policies = "policies" } } - public struct TransferCertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "transferredCertificateArn", required: false, type: .string) + public struct GetIndexingConfigurationRequest: AWSShape { + + } + + public struct PresignedUrlConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "expiresInSec", required: false, type: .long), + AWSShapeMember(label: "roleArn", required: false, type: .string) ] - /// The ARN of the certificate. - public let transferredCertificateArn: String? + /// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 3600 seconds. Pre-signed URLs are generated when Jobs receives an MQTT request for the job document. + public let expiresInSec: Int64? + /// The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files. + public let roleArn: String? - public init(transferredCertificateArn: String? = nil) { - self.transferredCertificateArn = transferredCertificateArn + public init(expiresInSec: Int64? = nil, roleArn: String? = nil) { + self.expiresInSec = expiresInSec + self.roleArn = roleArn } private enum CodingKeys: String, CodingKey { - case transferredCertificateArn = "transferredCertificateArn" + case expiresInSec = "expiresInSec" + case roleArn = "roleArn" } } - public struct FirehoseAction: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "roleArn", required: true, type: .string), - AWSShapeMember(label: "deliveryStreamName", required: true, type: .string), - AWSShapeMember(label: "separator", required: false, type: .string) + public struct CreateAuthorizerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "authorizerName", location: .uri(locationName: "authorizerName"), required: true, type: .string), + AWSShapeMember(label: "tokenKeyName", required: true, type: .string), + AWSShapeMember(label: "authorizerFunctionArn", required: true, type: .string), + AWSShapeMember(label: "tokenSigningPublicKeys", required: true, type: .map) ] - /// The IAM role that grants access to the Amazon Kinesis Firehost stream. - public let roleArn: String - /// The delivery stream name. - public let deliveryStreamName: String - /// A character separator that will be used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma). - public let separator: String? - - public init(roleArn: String, deliveryStreamName: String, separator: String? = nil) { - self.roleArn = roleArn - self.deliveryStreamName = deliveryStreamName - self.separator = separator + /// The status of the create authorizer request. + public let status: AuthorizerStatus? + /// The authorizer name. + public let authorizerName: String + /// The name of the token key used to extract the token from the HTTP headers. + public let tokenKeyName: String + /// The ARN of the authorizer's Lambda function. + public let authorizerFunctionArn: String + /// The public keys used to verify the digital signature returned by your custom authentication service. + public let tokenSigningPublicKeys: [String: String] + + public init(status: AuthorizerStatus? = nil, authorizerName: String, tokenKeyName: String, authorizerFunctionArn: String, tokenSigningPublicKeys: [String: String]) { + self.status = status + self.authorizerName = authorizerName + self.tokenKeyName = tokenKeyName + self.authorizerFunctionArn = authorizerFunctionArn + self.tokenSigningPublicKeys = tokenSigningPublicKeys } private enum CodingKeys: String, CodingKey { - case roleArn = "roleArn" - case deliveryStreamName = "deliveryStreamName" - case separator = "separator" + case status = "status" + case authorizerName = "authorizerName" + case tokenKeyName = "tokenKeyName" + case authorizerFunctionArn = "authorizerFunctionArn" + case tokenSigningPublicKeys = "tokenSigningPublicKeys" } } - public struct CreatePolicyVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policyArn", required: false, type: .string), - AWSShapeMember(label: "policyVersionId", required: false, type: .string), - AWSShapeMember(label: "isDefaultVersion", required: false, type: .boolean), - AWSShapeMember(label: "policyDocument", required: false, type: .string) + public struct AuthInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "resources", required: false, type: .list), + AWSShapeMember(label: "actionType", required: false, type: .enum) ] - /// The policy ARN. - public let policyArn: String? - /// The policy version ID. - public let policyVersionId: String? - /// Specifies whether the policy version is the default. - public let isDefaultVersion: Bool? - /// The JSON document that describes the policy. - public let policyDocument: String? + /// The resources for which the principal is being authorized to perform the specified action. + public let resources: [String]? + /// The type of action for which the principal is being authorized. + public let actionType: ActionType? - public init(policyArn: String? = nil, policyVersionId: String? = nil, isDefaultVersion: Bool? = nil, policyDocument: String? = nil) { - self.policyArn = policyArn - self.policyVersionId = policyVersionId - self.isDefaultVersion = isDefaultVersion - self.policyDocument = policyDocument + public init(resources: [String]? = nil, actionType: ActionType? = nil) { + self.resources = resources + self.actionType = actionType } private enum CodingKeys: String, CodingKey { - case policyArn = "policyArn" - case policyVersionId = "policyVersionId" - case isDefaultVersion = "isDefaultVersion" - case policyDocument = "policyDocument" + case resources = "resources" + case actionType = "actionType" } } public struct AcceptCertificateTransferRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "certificateId", location: .uri(locationName: "certificateId"), required: true, type: .string), AWSShapeMember(label: "setAsActive", location: .querystring(locationName: "setAsActive"), required: false, type: .boolean) ] @@ -2124,24 +2323,60 @@ extension Iot { } } - public struct CancelCertificateTransferRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateId", location: .uri(locationName: "certificateId"), required: true, type: .string) + public struct SearchIndexRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "maxResults", required: false, type: .integer), + AWSShapeMember(label: "queryVersion", required: false, type: .string), + AWSShapeMember(label: "queryString", required: true, type: .string), + AWSShapeMember(label: "indexName", required: false, type: .string) ] - /// The ID of the certificate. - public let certificateId: String + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The maximum number of results to return at one time. + public let maxResults: Int32? + /// The query version. + public let queryVersion: String? + /// The search query string. + public let queryString: String + /// The search index name. + public let indexName: String? + + public init(nextToken: String? = nil, maxResults: Int32? = nil, queryVersion: String? = nil, queryString: String, indexName: String? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + self.queryVersion = queryVersion + self.queryString = queryString + self.indexName = indexName + } - public init(certificateId: String) { - self.certificateId = certificateId + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + case queryVersion = "queryVersion" + case queryString = "queryString" + case indexName = "indexName" + } + } + + public struct SetDefaultAuthorizerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorizerName", required: true, type: .string) + ] + /// The authorizer name. + public let authorizerName: String + + public init(authorizerName: String) { + self.authorizerName = authorizerName } private enum CodingKeys: String, CodingKey { - case certificateId = "certificateId" + case authorizerName = "authorizerName" } } public struct SalesforceAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "token", required: true, type: .string), AWSShapeMember(label: "url", required: true, type: .string) ] @@ -2161,28 +2396,34 @@ extension Iot { } } - public struct DeleteCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "certificateId", location: .uri(locationName: "certificateId"), required: true, type: .string) + public struct ListThingRegistrationTasksRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", location: .querystring(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) ] - /// The ID of the certificate. - public let certificateId: String + /// The status of the bulk thing provisioning task. + public let status: Status? + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The maximum number of results to return at one time. + public let maxResults: Int32? - public init(certificateId: String) { - self.certificateId = certificateId + public init(status: Status? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.status = status + self.nextToken = nextToken + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case certificateId = "certificateId" + case status = "status" + case nextToken = "nextToken" + case maxResults = "maxResults" } } - public struct DetachThingPrincipalResponse: AWSShape { - - } - public struct DescribeEndpointResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "endpointAddress", required: false, type: .string) ] /// The endpoint. The format of the endpoint is as follows: identifier.iot.region.amazonaws.com. @@ -2197,8 +2438,44 @@ extension Iot { } } + public struct TestInvokeAuthorizerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "principalId", required: false, type: .string), + AWSShapeMember(label: "disconnectAfterInSeconds", required: false, type: .integer), + AWSShapeMember(label: "isAuthenticated", required: false, type: .boolean), + AWSShapeMember(label: "refreshAfterInSeconds", required: false, type: .integer), + AWSShapeMember(label: "policyDocuments", required: false, type: .list) + ] + /// The principal ID. + public let principalId: String? + /// The number of seconds after which the connection is terminated. + public let disconnectAfterInSeconds: Int32? + /// True if the token is authenticated, otherwise false. + public let isAuthenticated: Bool? + /// The number of seconds after which the temporary credentials are refreshed. + public let refreshAfterInSeconds: Int32? + /// IAM policy documents. + public let policyDocuments: [String]? + + public init(principalId: String? = nil, disconnectAfterInSeconds: Int32? = nil, isAuthenticated: Bool? = nil, refreshAfterInSeconds: Int32? = nil, policyDocuments: [String]? = nil) { + self.principalId = principalId + self.disconnectAfterInSeconds = disconnectAfterInSeconds + self.isAuthenticated = isAuthenticated + self.refreshAfterInSeconds = refreshAfterInSeconds + self.policyDocuments = policyDocuments + } + + private enum CodingKeys: String, CodingKey { + case principalId = "principalId" + case disconnectAfterInSeconds = "disconnectAfterInSeconds" + case isAuthenticated = "isAuthenticated" + case refreshAfterInSeconds = "refreshAfterInSeconds" + case policyDocuments = "policyDocuments" + } + } + public struct RejectCertificateTransferRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "certificateId", location: .uri(locationName: "certificateId"), required: true, type: .string), AWSShapeMember(label: "rejectReason", required: false, type: .string) ] @@ -2219,7 +2496,7 @@ extension Iot { } public struct TransferData: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rejectDate", required: false, type: .timestamp), AWSShapeMember(label: "acceptDate", required: false, type: .timestamp), AWSShapeMember(label: "transferMessage", required: false, type: .string), @@ -2254,30 +2531,12 @@ extension Iot { } } - public struct GetPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) - ] - /// The name of the policy. - public let policyName: String - - public init(policyName: String) { - self.policyName = policyName - } - - private enum CodingKeys: String, CodingKey { - case policyName = "policyName" - } - } + public struct StopThingRegistrationTaskResponse: AWSShape { - public enum AutoRegistrationStatus: String, CustomStringConvertible, Codable { - case enable = "ENABLE" - case disable = "DISABLE" - public var description: String { return self.rawValue } } public struct Certificate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "creationDate", required: false, type: .timestamp), AWSShapeMember(label: "certificateId", required: false, type: .string), @@ -2308,7 +2567,7 @@ extension Iot { } public struct RegisterCertificateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "caCertificatePem", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "certificatePem", required: true, type: .string), @@ -2339,7 +2598,7 @@ extension Iot { } public struct ListThingPrincipalsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "principals", required: false, type: .list) ] /// The principals associated with the thing. @@ -2355,7 +2614,7 @@ extension Iot { } public struct GetLoggingOptionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "roleArn", required: false, type: .string), AWSShapeMember(label: "logLevel", required: false, type: .enum) ] @@ -2375,34 +2634,60 @@ extension Iot { } } - public struct ListOutgoingCertificatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), - AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), - AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) + public struct DeleteV2LoggingLevelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "targetName", location: .querystring(locationName: "targetName"), required: true, type: .string), + AWSShapeMember(label: "targetType", location: .querystring(locationName: "targetType"), required: true, type: .enum) ] - /// The marker for the next set of results. - public let marker: String? - /// The result page size. - public let pageSize: Int32? - /// Specifies the order for results. If True, the results are returned in ascending order, based on the creation date. - public let ascendingOrder: Bool? + /// The name of the resource for which you are configuring logging. + public let targetName: String + /// The type of resource for which you are configuring logging. Must be THING_Group. + public let targetType: LogTargetType - public init(marker: String? = nil, pageSize: Int32? = nil, ascendingOrder: Bool? = nil) { - self.marker = marker - self.pageSize = pageSize - self.ascendingOrder = ascendingOrder + public init(targetName: String, targetType: LogTargetType) { + self.targetName = targetName + self.targetType = targetType } private enum CodingKeys: String, CodingKey { - case marker = "marker" - case pageSize = "pageSize" - case ascendingOrder = "isAscendingOrder" + case targetName = "targetName" + case targetType = "targetType" + } + } + + public struct GetPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyName", required: false, type: .string), + AWSShapeMember(label: "defaultVersionId", required: false, type: .string), + AWSShapeMember(label: "policyArn", required: false, type: .string), + AWSShapeMember(label: "policyDocument", required: false, type: .string) + ] + /// The policy name. + public let policyName: String? + /// The default policy version ID. + public let defaultVersionId: String? + /// The policy ARN. + public let policyArn: String? + /// The JSON document that describes the policy. + public let policyDocument: String? + + public init(policyName: String? = nil, defaultVersionId: String? = nil, policyArn: String? = nil, policyDocument: String? = nil) { + self.policyName = policyName + self.defaultVersionId = defaultVersionId + self.policyArn = policyArn + self.policyDocument = policyDocument + } + + private enum CodingKeys: String, CodingKey { + case policyName = "policyName" + case defaultVersionId = "defaultVersionId" + case policyArn = "policyArn" + case policyDocument = "policyDocument" } } public struct ListCACertificatesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "certificates", required: false, type: .list), AWSShapeMember(label: "nextMarker", required: false, type: .string) ] @@ -2423,7 +2708,7 @@ extension Iot { } public struct ThingTypeProperties: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "thingTypeDescription", required: false, type: .string), AWSShapeMember(label: "searchableAttributes", required: false, type: .list) ] @@ -2443,60 +2728,92 @@ extension Iot { } } - public struct GetPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "policyName", required: false, type: .string), - AWSShapeMember(label: "defaultVersionId", required: false, type: .string), - AWSShapeMember(label: "policyArn", required: false, type: .string), - AWSShapeMember(label: "policyDocument", required: false, type: .string) + public enum AutoRegistrationStatus: String, CustomStringConvertible, Codable { + case enable = "ENABLE" + case disable = "DISABLE" + public var description: String { return self.rawValue } + } + + public struct ListThingsInThingGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "thingGroupName", location: .uri(locationName: "thingGroupName"), required: true, type: .string), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "recursive", location: .querystring(locationName: "recursive"), required: false, type: .boolean) ] - /// The policy name. - public let policyName: String? - /// The default policy version ID. - public let defaultVersionId: String? - /// The policy ARN. - public let policyArn: String? - /// The JSON document that describes the policy. - public let policyDocument: String? + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The thing group name. + public let thingGroupName: String + /// The maximum number of results to return at one time. + public let maxResults: Int32? + /// When true, list things in this thing group and in all child groups as well. + public let recursive: Bool? - public init(policyName: String? = nil, defaultVersionId: String? = nil, policyArn: String? = nil, policyDocument: String? = nil) { - self.policyName = policyName - self.defaultVersionId = defaultVersionId - self.policyArn = policyArn - self.policyDocument = policyDocument + public init(nextToken: String? = nil, thingGroupName: String, maxResults: Int32? = nil, recursive: Bool? = nil) { + self.nextToken = nextToken + self.thingGroupName = thingGroupName + self.maxResults = maxResults + self.recursive = recursive } private enum CodingKeys: String, CodingKey { - case policyName = "policyName" - case defaultVersionId = "defaultVersionId" - case policyArn = "policyArn" - case policyDocument = "policyDocument" + case nextToken = "nextToken" + case thingGroupName = "thingGroupName" + case maxResults = "maxResults" + case recursive = "recursive" } } - public struct ListThingsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextToken", required: false, type: .string), - AWSShapeMember(label: "things", required: false, type: .list) + public struct LogTarget: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "targetName", required: false, type: .string), + AWSShapeMember(label: "targetType", required: true, type: .enum) ] - /// The token for the next set of results, or null if there are no additional results. - public let nextToken: String? - /// The things. - public let things: [ThingAttribute]? + /// The target name. + public let targetName: String? + /// The target type. + public let targetType: LogTargetType - public init(nextToken: String? = nil, things: [ThingAttribute]? = nil) { - self.nextToken = nextToken - self.things = things + public init(targetName: String? = nil, targetType: LogTargetType) { + self.targetName = targetName + self.targetType = targetType } private enum CodingKeys: String, CodingKey { - case nextToken = "nextToken" - case things = "things" + case targetName = "targetName" + case targetType = "targetType" + } + } + + public struct CreateThingGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingGroupProperties", required: false, type: .structure), + AWSShapeMember(label: "parentGroupName", required: false, type: .string), + AWSShapeMember(label: "thingGroupName", location: .uri(locationName: "thingGroupName"), required: true, type: .string) + ] + /// The thing group properties. + public let thingGroupProperties: ThingGroupProperties? + /// The name of the parent thing group. + public let parentGroupName: String? + /// The thing group name to create. + public let thingGroupName: String + + public init(thingGroupProperties: ThingGroupProperties? = nil, parentGroupName: String? = nil, thingGroupName: String) { + self.thingGroupProperties = thingGroupProperties + self.parentGroupName = parentGroupName + self.thingGroupName = thingGroupName + } + + private enum CodingKeys: String, CodingKey { + case thingGroupProperties = "thingGroupProperties" + case parentGroupName = "parentGroupName" + case thingGroupName = "thingGroupName" } } public struct ListPrincipalPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean), @@ -2526,19 +2843,11 @@ extension Iot { } } - public enum LogLevel: String, CustomStringConvertible, Codable { - case debug = "DEBUG" - case info = "INFO" - case error = "ERROR" - case warn = "WARN" - case disabled = "DISABLED" - public var description: String { return self.rawValue } - } - public struct ThingAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "thingName", required: false, type: .string), AWSShapeMember(label: "thingTypeName", required: false, type: .string), + AWSShapeMember(label: "thingArn", required: false, type: .string), AWSShapeMember(label: "attributes", required: false, type: .map), AWSShapeMember(label: "version", required: false, type: .long) ] @@ -2546,14 +2855,17 @@ extension Iot { public let thingName: String? /// The name of the thing type, if the thing has been associated with a type. public let thingTypeName: String? + /// The thing ARN. + public let thingArn: String? /// A list of thing attributes which are name-value pairs. public let attributes: [String: String]? /// The version of the thing record in the registry. public let version: Int64? - public init(thingName: String? = nil, thingTypeName: String? = nil, attributes: [String: String]? = nil, version: Int64? = nil) { + public init(thingName: String? = nil, thingTypeName: String? = nil, thingArn: String? = nil, attributes: [String: String]? = nil, version: Int64? = nil) { self.thingName = thingName self.thingTypeName = thingTypeName + self.thingArn = thingArn self.attributes = attributes self.version = version } @@ -2561,13 +2873,14 @@ extension Iot { private enum CodingKeys: String, CodingKey { case thingName = "thingName" case thingTypeName = "thingTypeName" + case thingArn = "thingArn" case attributes = "attributes" case version = "version" } } public struct DeletePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) ] /// The name of the policy to delete. @@ -2582,8 +2895,55 @@ extension Iot { } } + public struct ListAttachedPoliciesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), + AWSShapeMember(label: "target", location: .uri(locationName: "target"), required: true, type: .string), + AWSShapeMember(label: "recursive", location: .querystring(locationName: "recursive"), required: false, type: .boolean) + ] + /// The token to retrieve the next set of results. + public let marker: String? + /// The maximum number of results to be returned per request. + public let pageSize: Int32? + /// The group for which the policies will be listed. + public let target: String + /// When true, recursively list attached policies. + public let recursive: Bool? + + public init(marker: String? = nil, pageSize: Int32? = nil, target: String, recursive: Bool? = nil) { + self.marker = marker + self.pageSize = pageSize + self.target = target + self.recursive = recursive + } + + private enum CodingKeys: String, CodingKey { + case marker = "marker" + case pageSize = "pageSize" + case target = "target" + case recursive = "recursive" + } + } + + public struct UpdateEventConfigurationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "eventConfigurations", required: false, type: .map) + ] + /// The new event configuration values. + public let eventConfigurations: [EventType: Configuration]? + + public init(eventConfigurations: [EventType: Configuration]? = nil) { + self.eventConfigurations = eventConfigurations + } + + private enum CodingKeys: String, CodingKey { + case eventConfigurations = "eventConfigurations" + } + } + public struct DescribeThingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) ] /// The name of the thing. @@ -2599,7 +2959,7 @@ extension Iot { } public struct CACertificateDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "autoRegistrationStatus", required: false, type: .enum), AWSShapeMember(label: "creationDate", required: false, type: .timestamp), @@ -2644,101 +3004,111 @@ extension Iot { } } - public struct ListTopicRulesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ruleDisabled", location: .querystring(locationName: "ruleDisabled"), required: false, type: .boolean), - AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), - AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), - AWSShapeMember(label: "topic", location: .querystring(locationName: "topic"), required: false, type: .string) + public struct GetEffectivePoliciesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "cognitoIdentityPoolId", required: false, type: .string), + AWSShapeMember(label: "thingName", location: .querystring(locationName: "thingName"), required: false, type: .string), + AWSShapeMember(label: "principal", required: false, type: .string) ] - /// Specifies whether the rule is disabled. - public let ruleDisabled: Bool? - /// The maximum number of results to return. - public let maxResults: Int32? - /// A token used to retrieve the next value. - public let nextToken: String? - /// The topic. - public let topic: String? + /// The Cognito identity pool ID. + public let cognitoIdentityPoolId: String? + /// The thing name. + public let thingName: String? + /// The principal. + public let principal: String? - public init(ruleDisabled: Bool? = nil, maxResults: Int32? = nil, nextToken: String? = nil, topic: String? = nil) { - self.ruleDisabled = ruleDisabled - self.maxResults = maxResults - self.nextToken = nextToken - self.topic = topic + public init(cognitoIdentityPoolId: String? = nil, thingName: String? = nil, principal: String? = nil) { + self.cognitoIdentityPoolId = cognitoIdentityPoolId + self.thingName = thingName + self.principal = principal } private enum CodingKeys: String, CodingKey { - case ruleDisabled = "ruleDisabled" - case maxResults = "maxResults" - case nextToken = "nextToken" - case topic = "topic" + case cognitoIdentityPoolId = "cognitoIdentityPoolId" + case thingName = "thingName" + case principal = "principal" } } - public enum CertificateStatus: String, CustomStringConvertible, Codable { - case active = "ACTIVE" - case inactive = "INACTIVE" - case revoked = "REVOKED" - case pendingTransfer = "PENDING_TRANSFER" - case registerInactive = "REGISTER_INACTIVE" - case pendingActivation = "PENDING_ACTIVATION" - public var description: String { return self.rawValue } - } - public struct DescribeThingResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "defaultClientId", required: false, type: .string), - AWSShapeMember(label: "thingName", required: false, type: .string), AWSShapeMember(label: "thingTypeName", required: false, type: .string), + AWSShapeMember(label: "thingName", required: false, type: .string), AWSShapeMember(label: "attributes", required: false, type: .map), - AWSShapeMember(label: "version", required: false, type: .long) + AWSShapeMember(label: "thingId", required: false, type: .string), + AWSShapeMember(label: "version", required: false, type: .long), + AWSShapeMember(label: "thingArn", required: false, type: .string) ] /// The default client ID. public let defaultClientId: String? - /// The name of the thing. - public let thingName: String? /// The thing type name. public let thingTypeName: String? + /// The name of the thing. + public let thingName: String? /// The thing attributes. public let attributes: [String: String]? + /// The ID of the thing to describe. + public let thingId: String? /// The current version of the thing record in the registry. To avoid unintentional changes to the information in the registry, you can pass the version information in the expectedVersion parameter of the UpdateThing and DeleteThing calls. public let version: Int64? + /// The ARN of the thing to describe. + public let thingArn: String? - public init(defaultClientId: String? = nil, thingName: String? = nil, thingTypeName: String? = nil, attributes: [String: String]? = nil, version: Int64? = nil) { + public init(defaultClientId: String? = nil, thingTypeName: String? = nil, thingName: String? = nil, attributes: [String: String]? = nil, thingId: String? = nil, version: Int64? = nil, thingArn: String? = nil) { self.defaultClientId = defaultClientId - self.thingName = thingName self.thingTypeName = thingTypeName + self.thingName = thingName self.attributes = attributes + self.thingId = thingId self.version = version + self.thingArn = thingArn } private enum CodingKeys: String, CodingKey { case defaultClientId = "defaultClientId" - case thingName = "thingName" case thingTypeName = "thingTypeName" + case thingName = "thingName" case attributes = "attributes" + case thingId = "thingId" case version = "version" + case thingArn = "thingArn" } } - public struct DescribeThingTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "thingTypeName", location: .uri(locationName: "thingTypeName"), required: true, type: .string) + public struct ListTopicRulesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ruleDisabled", location: .querystring(locationName: "ruleDisabled"), required: false, type: .boolean), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "topic", location: .querystring(locationName: "topic"), required: false, type: .string) ] - /// The name of the thing type. - public let thingTypeName: String - - public init(thingTypeName: String) { - self.thingTypeName = thingTypeName - } + /// Specifies whether the rule is disabled. + public let ruleDisabled: Bool? + /// The maximum number of results to return. + public let maxResults: Int32? + /// A token used to retrieve the next value. + public let nextToken: String? + /// The topic. + public let topic: String? + + public init(ruleDisabled: Bool? = nil, maxResults: Int32? = nil, nextToken: String? = nil, topic: String? = nil) { + self.ruleDisabled = ruleDisabled + self.maxResults = maxResults + self.nextToken = nextToken + self.topic = topic + } private enum CodingKeys: String, CodingKey { - case thingTypeName = "thingTypeName" + case ruleDisabled = "ruleDisabled" + case maxResults = "maxResults" + case nextToken = "nextToken" + case topic = "topic" } } public struct AttachPrincipalPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string), AWSShapeMember(label: "principal", location: .header(locationName: "x-amzn-iot-principal"), required: true, type: .string) ] @@ -2759,14 +3129,14 @@ extension Iot { } public struct UpdateThingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "removeThingType", required: false, type: .boolean), AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string), AWSShapeMember(label: "thingTypeName", required: false, type: .string), AWSShapeMember(label: "expectedVersion", required: false, type: .long), AWSShapeMember(label: "attributePayload", required: false, type: .structure) ] - /// Remove a thing type association. If true, the assocation is removed. + /// Remove a thing type association. If true, the association is removed. public let removeThingType: Bool? /// The name of the thing to update. public let thingName: String @@ -2798,6 +3168,47 @@ extension Iot { } + public struct DescribeJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "job", required: false, type: .structure), + AWSShapeMember(label: "documentSource", required: false, type: .string) + ] + /// Information about the job. + public let job: Job? + /// An S3 link to the job document. + public let documentSource: String? + + public init(job: Job? = nil, documentSource: String? = nil) { + self.job = job + self.documentSource = documentSource + } + + private enum CodingKeys: String, CodingKey { + case job = "job" + case documentSource = "documentSource" + } + } + + public struct JobExecutionsRolloutConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "maximumPerMinute", required: false, type: .integer) + ] + /// The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout. + public let maximumPerMinute: Int32? + + public init(maximumPerMinute: Int32? = nil) { + self.maximumPerMinute = maximumPerMinute + } + + private enum CodingKeys: String, CodingKey { + case maximumPerMinute = "maximumPerMinute" + } + } + + public struct ClearDefaultAuthorizerRequest: AWSShape { + + } + public enum DynamoKeyType: String, CustomStringConvertible, Codable { case string = "STRING" case number = "NUMBER" @@ -2805,7 +3216,7 @@ extension Iot { } public struct ListCertificatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) @@ -2842,31 +3253,95 @@ extension Iot { public var description: String { return self.rawValue } } - public struct ReplaceTopicRuleRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "topicRulePayload" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ruleName", location: .uri(locationName: "ruleName"), required: true, type: .string), - AWSShapeMember(label: "topicRulePayload", required: true, type: .structure) + public struct DynamoDBAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: true, type: .string), + AWSShapeMember(label: "rangeKeyType", required: false, type: .enum), + AWSShapeMember(label: "rangeKeyValue", required: false, type: .string), + AWSShapeMember(label: "hashKeyValue", required: true, type: .string), + AWSShapeMember(label: "operation", required: false, type: .string), + AWSShapeMember(label: "payloadField", required: false, type: .string), + AWSShapeMember(label: "rangeKeyField", required: false, type: .string), + AWSShapeMember(label: "tableName", required: true, type: .string), + AWSShapeMember(label: "hashKeyField", required: true, type: .string), + AWSShapeMember(label: "hashKeyType", required: false, type: .enum) ] - /// The name of the rule. - public let ruleName: String - /// The rule payload. - public let topicRulePayload: TopicRulePayload + /// The ARN of the IAM role that grants access to the DynamoDB table. + public let roleArn: String + /// The range key type. Valid values are "STRING" or "NUMBER" + public let rangeKeyType: DynamoKeyType? + /// The range key value. + public let rangeKeyValue: String? + /// The hash key value. + public let hashKeyValue: String + /// The type of operation to be performed. This follows the substitution template, so it can be ${operation}, but the substitution must result in one of the following: INSERT, UPDATE, or DELETE. + public let operation: String? + /// The action payload. This name can be customized. + public let payloadField: String? + /// The range key name. + public let rangeKeyField: String? + /// The name of the DynamoDB table. + public let tableName: String + /// The hash key name. + public let hashKeyField: String + /// The hash key type. Valid values are "STRING" or "NUMBER" + public let hashKeyType: DynamoKeyType? - public init(ruleName: String, topicRulePayload: TopicRulePayload) { - self.ruleName = ruleName - self.topicRulePayload = topicRulePayload + public init(roleArn: String, rangeKeyType: DynamoKeyType? = nil, rangeKeyValue: String? = nil, hashKeyValue: String, operation: String? = nil, payloadField: String? = nil, rangeKeyField: String? = nil, tableName: String, hashKeyField: String, hashKeyType: DynamoKeyType? = nil) { + self.roleArn = roleArn + self.rangeKeyType = rangeKeyType + self.rangeKeyValue = rangeKeyValue + self.hashKeyValue = hashKeyValue + self.operation = operation + self.payloadField = payloadField + self.rangeKeyField = rangeKeyField + self.tableName = tableName + self.hashKeyField = hashKeyField + self.hashKeyType = hashKeyType } private enum CodingKeys: String, CodingKey { - case ruleName = "ruleName" - case topicRulePayload = "topicRulePayload" + case roleArn = "roleArn" + case rangeKeyType = "rangeKeyType" + case rangeKeyValue = "rangeKeyValue" + case hashKeyValue = "hashKeyValue" + case operation = "operation" + case payloadField = "payloadField" + case rangeKeyField = "rangeKeyField" + case tableName = "tableName" + case hashKeyField = "hashKeyField" + case hashKeyType = "hashKeyType" + } + } + + public struct UpdateThingGroupsForThingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingName", required: false, type: .string), + AWSShapeMember(label: "thingGroupsToAdd", required: false, type: .list), + AWSShapeMember(label: "thingGroupsToRemove", required: false, type: .list) + ] + /// The thing whose group memberships will be updated. + public let thingName: String? + /// The groups to which the thing will be added. + public let thingGroupsToAdd: [String]? + /// The groups from which the thing will be removed. + public let thingGroupsToRemove: [String]? + + public init(thingName: String? = nil, thingGroupsToAdd: [String]? = nil, thingGroupsToRemove: [String]? = nil) { + self.thingName = thingName + self.thingGroupsToAdd = thingGroupsToAdd + self.thingGroupsToRemove = thingGroupsToRemove + } + + private enum CodingKeys: String, CodingKey { + case thingName = "thingName" + case thingGroupsToAdd = "thingGroupsToAdd" + case thingGroupsToRemove = "thingGroupsToRemove" } } public struct CloudwatchMetricAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "metricValue", required: true, type: .string), AWSShapeMember(label: "roleArn", required: true, type: .string), AWSShapeMember(label: "metricTimestamp", required: false, type: .string), @@ -2907,7 +3382,7 @@ extension Iot { } public struct RegisterCACertificateResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "certificateId", required: false, type: .string), AWSShapeMember(label: "certificateArn", required: false, type: .string) ] @@ -2928,94 +3403,99 @@ extension Iot { } public struct DescribeThingTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "thingTypeMetadata", required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingTypeProperties", required: false, type: .structure), AWSShapeMember(label: "thingTypeName", required: false, type: .string), - AWSShapeMember(label: "thingTypeProperties", required: false, type: .structure) + AWSShapeMember(label: "thingTypeArn", required: false, type: .string), + AWSShapeMember(label: "thingTypeId", required: false, type: .string), + AWSShapeMember(label: "thingTypeMetadata", required: false, type: .structure) ] - /// The ThingTypeMetadata contains additional information about the thing type including: creation date and time, a value indicating whether the thing type is deprecated, and a date and time when it was deprecated. - public let thingTypeMetadata: ThingTypeMetadata? - /// The name of the thing type. - public let thingTypeName: String? /// The ThingTypeProperties contains information about the thing type including description, and a list of searchable thing attribute names. public let thingTypeProperties: ThingTypeProperties? + /// The name of the thing type. + public let thingTypeName: String? + /// The thing type ARN. + public let thingTypeArn: String? + /// The thing type ID. + public let thingTypeId: String? + /// The ThingTypeMetadata contains additional information about the thing type including: creation date and time, a value indicating whether the thing type is deprecated, and a date and time when it was deprecated. + public let thingTypeMetadata: ThingTypeMetadata? - public init(thingTypeMetadata: ThingTypeMetadata? = nil, thingTypeName: String? = nil, thingTypeProperties: ThingTypeProperties? = nil) { - self.thingTypeMetadata = thingTypeMetadata - self.thingTypeName = thingTypeName + public init(thingTypeProperties: ThingTypeProperties? = nil, thingTypeName: String? = nil, thingTypeArn: String? = nil, thingTypeId: String? = nil, thingTypeMetadata: ThingTypeMetadata? = nil) { self.thingTypeProperties = thingTypeProperties + self.thingTypeName = thingTypeName + self.thingTypeArn = thingTypeArn + self.thingTypeId = thingTypeId + self.thingTypeMetadata = thingTypeMetadata } private enum CodingKeys: String, CodingKey { - case thingTypeMetadata = "thingTypeMetadata" - case thingTypeName = "thingTypeName" case thingTypeProperties = "thingTypeProperties" + case thingTypeName = "thingTypeName" + case thingTypeArn = "thingTypeArn" + case thingTypeId = "thingTypeId" + case thingTypeMetadata = "thingTypeMetadata" } } - public struct DynamoDBAction: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "roleArn", required: true, type: .string), - AWSShapeMember(label: "rangeKeyType", required: false, type: .enum), - AWSShapeMember(label: "rangeKeyValue", required: false, type: .string), - AWSShapeMember(label: "hashKeyValue", required: true, type: .string), - AWSShapeMember(label: "operation", required: false, type: .string), - AWSShapeMember(label: "payloadField", required: false, type: .string), - AWSShapeMember(label: "rangeKeyField", required: false, type: .string), - AWSShapeMember(label: "tableName", required: true, type: .string), - AWSShapeMember(label: "hashKeyField", required: true, type: .string), - AWSShapeMember(label: "hashKeyType", required: false, type: .enum) + public struct ReplaceTopicRuleRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "topicRulePayload" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ruleName", location: .uri(locationName: "ruleName"), required: true, type: .string), + AWSShapeMember(label: "topicRulePayload", required: true, type: .structure) ] - /// The ARN of the IAM role that grants access to the DynamoDB table. - public let roleArn: String - /// The range key type. Valid values are "STRING" or "NUMBER" - public let rangeKeyType: DynamoKeyType? - /// The range key value. - public let rangeKeyValue: String? - /// The hash key value. - public let hashKeyValue: String - /// The type of operation to be performed. This follows the substitution template, so it can be ${operation}, but the substitution must result in one of the following: INSERT, UPDATE, or DELETE. - public let operation: String? - /// The action payload. This name can be customized. - public let payloadField: String? - /// The range key name. - public let rangeKeyField: String? - /// The name of the DynamoDB table. - public let tableName: String - /// The hash key name. - public let hashKeyField: String - /// The hash key type. Valid values are "STRING" or "NUMBER" - public let hashKeyType: DynamoKeyType? + /// The name of the rule. + public let ruleName: String + /// The rule payload. + public let topicRulePayload: TopicRulePayload - public init(roleArn: String, rangeKeyType: DynamoKeyType? = nil, rangeKeyValue: String? = nil, hashKeyValue: String, operation: String? = nil, payloadField: String? = nil, rangeKeyField: String? = nil, tableName: String, hashKeyField: String, hashKeyType: DynamoKeyType? = nil) { - self.roleArn = roleArn - self.rangeKeyType = rangeKeyType - self.rangeKeyValue = rangeKeyValue - self.hashKeyValue = hashKeyValue - self.operation = operation - self.payloadField = payloadField - self.rangeKeyField = rangeKeyField - self.tableName = tableName - self.hashKeyField = hashKeyField - self.hashKeyType = hashKeyType + public init(ruleName: String, topicRulePayload: TopicRulePayload) { + self.ruleName = ruleName + self.topicRulePayload = topicRulePayload } private enum CodingKeys: String, CodingKey { - case roleArn = "roleArn" - case rangeKeyType = "rangeKeyType" - case rangeKeyValue = "rangeKeyValue" - case hashKeyValue = "hashKeyValue" - case operation = "operation" - case payloadField = "payloadField" - case rangeKeyField = "rangeKeyField" - case tableName = "tableName" - case hashKeyField = "hashKeyField" - case hashKeyType = "hashKeyType" + case ruleName = "ruleName" + case topicRulePayload = "topicRulePayload" } } - public struct AttachThingPrincipalResponse: AWSShape { + public struct Allowed: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policies", required: false, type: .list) + ] + /// A list of policies that allowed the authentication. + public let policies: [Policy]? + + public init(policies: [Policy]? = nil) { + self.policies = policies + } + + private enum CodingKeys: String, CodingKey { + case policies = "policies" + } + } + + public struct SetV2LoggingLevelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "logTarget", required: true, type: .structure), + AWSShapeMember(label: "logLevel", required: true, type: .enum) + ] + /// The log target. + public let logTarget: LogTarget + /// The log level. + public let logLevel: LogLevel + + public init(logTarget: LogTarget, logLevel: LogLevel) { + self.logTarget = logTarget + self.logLevel = logLevel + } + private enum CodingKeys: String, CodingKey { + case logTarget = "logTarget" + case logLevel = "logLevel" + } } public struct DeleteThingResponse: AWSShape { @@ -3023,27 +3503,2893 @@ extension Iot { } public struct DescribeEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "endpointType", location: .querystring(locationName: "endpointType"), required: false, type: .string) + ] + /// The endpoint type. + public let endpointType: String? + public init(endpointType: String? = nil) { + self.endpointType = endpointType + } + + private enum CodingKeys: String, CodingKey { + case endpointType = "endpointType" + } } - public struct DeleteThingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "expectedVersion", location: .querystring(locationName: "expectedVersion"), required: false, type: .long), - AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) + public enum AuthDecision: String, CustomStringConvertible, Codable { + case allowed = "ALLOWED" + case explicitDeny = "EXPLICIT_DENY" + case implicitDeny = "IMPLICIT_DENY" + public var description: String { return self.rawValue } + } + + public struct GetV2LoggingOptionsRequest: AWSShape { + + } + + public struct CreatePolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyVersionId", required: false, type: .string), + AWSShapeMember(label: "policyName", required: false, type: .string), + AWSShapeMember(label: "policyArn", required: false, type: .string), + AWSShapeMember(label: "policyDocument", required: false, type: .string) ] - /// The expected version of the thing record in the registry. If the version of the record in the registry does not match the expected version specified in the request, the DeleteThing request is rejected with a VersionConflictException. - public let expectedVersion: Int64? - /// The name of the thing to delete. - public let thingName: String + /// The policy version ID. + public let policyVersionId: String? + /// The policy name. + public let policyName: String? + /// The policy ARN. + public let policyArn: String? + /// The JSON document that describes the policy. + public let policyDocument: String? - public init(expectedVersion: Int64? = nil, thingName: String) { - self.expectedVersion = expectedVersion - self.thingName = thingName + public init(policyVersionId: String? = nil, policyName: String? = nil, policyArn: String? = nil, policyDocument: String? = nil) { + self.policyVersionId = policyVersionId + self.policyName = policyName + self.policyArn = policyArn + self.policyDocument = policyDocument } private enum CodingKeys: String, CodingKey { - case expectedVersion = "expectedVersion" - case thingName = "thingName" + case policyVersionId = "policyVersionId" + case policyName = "policyName" + case policyArn = "policyArn" + case policyDocument = "policyDocument" + } + } + + public struct AssociateTargetsWithJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "jobArn", required: false, type: .string), + AWSShapeMember(label: "jobId", required: false, type: .string) + ] + /// A short text description of the job. + public let description: String? + /// An ARN identifying the job. + public let jobArn: String? + /// The unique identifier you assigned to this job when it was created. + public let jobId: String? + + public init(description: String? = nil, jobArn: String? = nil, jobId: String? = nil) { + self.description = description + self.jobArn = jobArn + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case jobArn = "jobArn" + case jobId = "jobId" + } + } + + public struct GetRegistrationCodeRequest: AWSShape { + + } + + public struct ListCertificatesByCARequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "caCertificateId", location: .uri(locationName: "caCertificateId"), required: true, type: .string), + AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) + ] + /// The ID of the CA certificate. This operation will list all registered device certificate that were signed by this CA certificate. + public let caCertificateId: String + /// The result page size. + public let pageSize: Int32? + /// The marker for the next set of results. + public let marker: String? + /// Specifies the order for results. If True, the results are returned in ascending order, based on the creation date. + public let ascendingOrder: Bool? + + public init(caCertificateId: String, pageSize: Int32? = nil, marker: String? = nil, ascendingOrder: Bool? = nil) { + self.caCertificateId = caCertificateId + self.pageSize = pageSize + self.marker = marker + self.ascendingOrder = ascendingOrder + } + + private enum CodingKeys: String, CodingKey { + case caCertificateId = "caCertificateId" + case pageSize = "pageSize" + case marker = "marker" + case ascendingOrder = "isAscendingOrder" + } + } + + public struct ThingIndexingConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingIndexingMode", required: false, type: .enum) + ] + /// Thing indexing mode. Valid values are: REGISTRY – Your thing index will contain only registry data. REGISTRY_AND_SHADOW - Your thing index will contain registry and shadow data. OFF - Thing indexing is disabled. + public let thingIndexingMode: ThingIndexingMode? + + public init(thingIndexingMode: ThingIndexingMode? = nil) { + self.thingIndexingMode = thingIndexingMode + } + + private enum CodingKeys: String, CodingKey { + case thingIndexingMode = "thingIndexingMode" + } + } + + public struct SetLoggingOptionsRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "loggingOptionsPayload" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "loggingOptionsPayload", required: true, type: .structure) + ] + /// The logging options payload. + public let loggingOptionsPayload: LoggingOptionsPayload + + public init(loggingOptionsPayload: LoggingOptionsPayload) { + self.loggingOptionsPayload = loggingOptionsPayload + } + + private enum CodingKeys: String, CodingKey { + case loggingOptionsPayload = "loggingOptionsPayload" + } + } + + public struct ListThingTypesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingTypes", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The thing types. + public let thingTypes: [ThingTypeDefinition]? + /// The token for the next set of results, or null if there are no additional results. + public let nextToken: String? + + public init(thingTypes: [ThingTypeDefinition]? = nil, nextToken: String? = nil) { + self.thingTypes = thingTypes + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case thingTypes = "thingTypes" + case nextToken = "nextToken" + } + } + + public struct RemoveThingFromThingGroupResponse: AWSShape { + + } + + public struct DescribeCACertificateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registrationConfig", required: false, type: .structure), + AWSShapeMember(label: "certificateDescription", required: false, type: .structure) + ] + /// Information about the registration configuration. + public let registrationConfig: RegistrationConfig? + /// The CA certificate description. + public let certificateDescription: CACertificateDescription? + + public init(registrationConfig: RegistrationConfig? = nil, certificateDescription: CACertificateDescription? = nil) { + self.registrationConfig = registrationConfig + self.certificateDescription = certificateDescription + } + + private enum CodingKeys: String, CodingKey { + case registrationConfig = "registrationConfig" + case certificateDescription = "certificateDescription" + } + } + + public struct RepublishAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: true, type: .string), + AWSShapeMember(label: "topic", required: true, type: .string) + ] + /// The ARN of the IAM role that grants access. + public let roleArn: String + /// The name of the MQTT topic. + public let topic: String + + public init(roleArn: String, topic: String) { + self.roleArn = roleArn + self.topic = topic + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "roleArn" + case topic = "topic" + } + } + + public struct ThingGroupMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "rootToParentThingGroups", required: false, type: .list), + AWSShapeMember(label: "parentGroupName", required: false, type: .string), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp) + ] + /// The root parent thing group. + public let rootToParentThingGroups: [GroupNameAndArn]? + /// The parent thing group name. + public let parentGroupName: String? + /// The UNIX timestamp of when the thing group was created. + public let creationDate: TimeStamp? + + public init(rootToParentThingGroups: [GroupNameAndArn]? = nil, parentGroupName: String? = nil, creationDate: TimeStamp? = nil) { + self.rootToParentThingGroups = rootToParentThingGroups + self.parentGroupName = parentGroupName + self.creationDate = creationDate + } + + private enum CodingKeys: String, CodingKey { + case rootToParentThingGroups = "rootToParentThingGroups" + case parentGroupName = "parentGroupName" + case creationDate = "creationDate" + } + } + + public struct CreateThingGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingGroupArn", required: false, type: .string), + AWSShapeMember(label: "thingGroupId", required: false, type: .string), + AWSShapeMember(label: "thingGroupName", required: false, type: .string) + ] + /// The thing group ARN. + public let thingGroupArn: String? + /// The thing group ID. + public let thingGroupId: String? + /// The thing group name. + public let thingGroupName: String? + + public init(thingGroupArn: String? = nil, thingGroupId: String? = nil, thingGroupName: String? = nil) { + self.thingGroupArn = thingGroupArn + self.thingGroupId = thingGroupId + self.thingGroupName = thingGroupName + } + + private enum CodingKeys: String, CodingKey { + case thingGroupArn = "thingGroupArn" + case thingGroupId = "thingGroupId" + case thingGroupName = "thingGroupName" + } + } + + public struct ListPolicyPrincipalsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "principals", required: false, type: .list), + AWSShapeMember(label: "nextMarker", required: false, type: .string) + ] + /// The descriptions of the principals. + public let principals: [String]? + /// The marker for the next set of results, or null if there are no additional results. + public let nextMarker: String? + + public init(principals: [String]? = nil, nextMarker: String? = nil) { + self.principals = principals + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case principals = "principals" + case nextMarker = "nextMarker" + } + } + + public struct UpdateEventConfigurationsResponse: AWSShape { + + } + + public struct UpdateThingGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "expectedVersion", required: false, type: .long), + AWSShapeMember(label: "thingGroupProperties", required: true, type: .structure), + AWSShapeMember(label: "thingGroupName", location: .uri(locationName: "thingGroupName"), required: true, type: .string) + ] + /// The expected version of the thing group. If this does not match the version of the thing group being updated, the update will fail. + public let expectedVersion: Int64? + /// The thing group properties. + public let thingGroupProperties: ThingGroupProperties + /// The thing group to update. + public let thingGroupName: String + + public init(expectedVersion: Int64? = nil, thingGroupProperties: ThingGroupProperties, thingGroupName: String) { + self.expectedVersion = expectedVersion + self.thingGroupProperties = thingGroupProperties + self.thingGroupName = thingGroupName + } + + private enum CodingKeys: String, CodingKey { + case expectedVersion = "expectedVersion" + case thingGroupProperties = "thingGroupProperties" + case thingGroupName = "thingGroupName" + } + } + + public enum CACertificateStatus: String, CustomStringConvertible, Codable { + case active = "ACTIVE" + case inactive = "INACTIVE" + public var description: String { return self.rawValue } + } + + public struct ThingDocument: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingId", required: false, type: .string), + AWSShapeMember(label: "thingName", required: false, type: .string), + AWSShapeMember(label: "thingTypeName", required: false, type: .string), + AWSShapeMember(label: "shadow", required: false, type: .string), + AWSShapeMember(label: "thingGroupNames", required: false, type: .list), + AWSShapeMember(label: "attributes", required: false, type: .map) + ] + /// The thing ID. + public let thingId: String? + /// The thing name. + public let thingName: String? + /// The thing type name. + public let thingTypeName: String? + /// The thing shadow. + public let shadow: String? + /// Thing group names. + public let thingGroupNames: [String]? + /// The attributes. + public let attributes: [String: String]? + + public init(thingId: String? = nil, thingName: String? = nil, thingTypeName: String? = nil, shadow: String? = nil, thingGroupNames: [String]? = nil, attributes: [String: String]? = nil) { + self.thingId = thingId + self.thingName = thingName + self.thingTypeName = thingTypeName + self.shadow = shadow + self.thingGroupNames = thingGroupNames + self.attributes = attributes + } + + private enum CodingKeys: String, CodingKey { + case thingId = "thingId" + case thingName = "thingName" + case thingTypeName = "thingTypeName" + case shadow = "shadow" + case thingGroupNames = "thingGroupNames" + case attributes = "attributes" + } + } + + public struct LoggingOptionsPayload: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: true, type: .string), + AWSShapeMember(label: "logLevel", required: false, type: .enum) + ] + /// The ARN of the IAM role that grants access. + public let roleArn: String + /// The log level. + public let logLevel: LogLevel? + + public init(roleArn: String, logLevel: LogLevel? = nil) { + self.roleArn = roleArn + self.logLevel = logLevel + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "roleArn" + case logLevel = "logLevel" + } + } + + public struct DescribeEventConfigurationsRequest: AWSShape { + + } + + public struct CreateKeysAndCertificateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "keyPair", required: false, type: .structure), + AWSShapeMember(label: "certificatePem", required: false, type: .string), + AWSShapeMember(label: "certificateId", required: false, type: .string), + AWSShapeMember(label: "certificateArn", required: false, type: .string) + ] + /// The generated key pair. + public let keyPair: KeyPair? + /// The certificate data, in PEM format. + public let certificatePem: String? + /// The ID of the certificate. AWS IoT issues a default subject name for the certificate (for example, AWS IoT Certificate). + public let certificateId: String? + /// The ARN of the certificate. + public let certificateArn: String? + + public init(keyPair: KeyPair? = nil, certificatePem: String? = nil, certificateId: String? = nil, certificateArn: String? = nil) { + self.keyPair = keyPair + self.certificatePem = certificatePem + self.certificateId = certificateId + self.certificateArn = certificateArn + } + + private enum CodingKeys: String, CodingKey { + case keyPair = "keyPair" + case certificatePem = "certificatePem" + case certificateId = "certificateId" + case certificateArn = "certificateArn" + } + } + + public struct GetTopicRuleResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ruleArn", required: false, type: .string), + AWSShapeMember(label: "rule", required: false, type: .structure) + ] + /// The rule ARN. + public let ruleArn: String? + /// The rule. + public let rule: TopicRule? + + public init(ruleArn: String? = nil, rule: TopicRule? = nil) { + self.ruleArn = ruleArn + self.rule = rule + } + + private enum CodingKeys: String, CodingKey { + case ruleArn = "ruleArn" + case rule = "rule" + } + } + + public enum ThingIndexingMode: String, CustomStringConvertible, Codable { + case off = "OFF" + case registry = "REGISTRY" + case registryAndShadow = "REGISTRY_AND_SHADOW" + public var description: String { return self.rawValue } + } + + public struct CreateThingTypeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingTypeName", location: .uri(locationName: "thingTypeName"), required: true, type: .string), + AWSShapeMember(label: "thingTypeProperties", required: false, type: .structure) + ] + /// The name of the thing type. + public let thingTypeName: String + /// The ThingTypeProperties for the thing type to create. It contains information about the new thing type including a description, and a list of searchable thing attribute names. + public let thingTypeProperties: ThingTypeProperties? + + public init(thingTypeName: String, thingTypeProperties: ThingTypeProperties? = nil) { + self.thingTypeName = thingTypeName + self.thingTypeProperties = thingTypeProperties + } + + private enum CodingKeys: String, CodingKey { + case thingTypeName = "thingTypeName" + case thingTypeProperties = "thingTypeProperties" + } + } + + public struct DescribeCACertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificateId", location: .uri(locationName: "caCertificateId"), required: true, type: .string) + ] + /// The CA certificate identifier. + public let certificateId: String + + public init(certificateId: String) { + self.certificateId = certificateId + } + + private enum CodingKeys: String, CodingKey { + case certificateId = "caCertificateId" + } + } + + public struct DescribeCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificateId", location: .uri(locationName: "certificateId"), required: true, type: .string) + ] + /// The ID of the certificate. + public let certificateId: String + + public init(certificateId: String) { + self.certificateId = certificateId + } + + private enum CodingKeys: String, CodingKey { + case certificateId = "certificateId" + } + } + + public struct CreateCertificateFromCsrRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificateSigningRequest", required: true, type: .string), + AWSShapeMember(label: "setAsActive", location: .querystring(locationName: "setAsActive"), required: false, type: .boolean) + ] + /// The certificate signing request (CSR). + public let certificateSigningRequest: String + /// Specifies whether the certificate is active. + public let setAsActive: Bool? + + public init(certificateSigningRequest: String, setAsActive: Bool? = nil) { + self.certificateSigningRequest = certificateSigningRequest + self.setAsActive = setAsActive + } + + private enum CodingKeys: String, CodingKey { + case certificateSigningRequest = "certificateSigningRequest" + case setAsActive = "setAsActive" + } + } + + public enum TargetSelection: String, CustomStringConvertible, Codable { + case continuous = "CONTINUOUS" + case snapshot = "SNAPSHOT" + public var description: String { return self.rawValue } + } + + public struct DescribeCertificateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificateDescription", required: false, type: .structure) + ] + /// The description of the certificate. + public let certificateDescription: CertificateDescription? + + public init(certificateDescription: CertificateDescription? = nil) { + self.certificateDescription = certificateDescription + } + + private enum CodingKeys: String, CodingKey { + case certificateDescription = "certificateDescription" + } + } + + public struct GetV2LoggingOptionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: false, type: .string), + AWSShapeMember(label: "defaultLogLevel", required: false, type: .enum), + AWSShapeMember(label: "disableAllLogs", required: false, type: .boolean) + ] + /// The IAM role ARN AWS IoT uses to write to your CloudWatch logs. + public let roleArn: String? + /// The default log level. + public let defaultLogLevel: LogLevel? + /// Disables all logs. + public let disableAllLogs: Bool? + + public init(roleArn: String? = nil, defaultLogLevel: LogLevel? = nil, disableAllLogs: Bool? = nil) { + self.roleArn = roleArn + self.defaultLogLevel = defaultLogLevel + self.disableAllLogs = disableAllLogs + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "roleArn" + case defaultLogLevel = "defaultLogLevel" + case disableAllLogs = "disableAllLogs" + } + } + + public struct ListThingRegistrationTaskReportsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "taskId", location: .uri(locationName: "taskId"), required: true, type: .string), + AWSShapeMember(label: "reportType", location: .querystring(locationName: "reportType"), required: true, type: .enum) + ] + /// The maximum number of results to return per request. + public let maxResults: Int32? + /// The token to retrieve the next set of results. + public let nextToken: String? + /// The id of the task. + public let taskId: String + /// The type of task report. + public let reportType: ReportType + + public init(maxResults: Int32? = nil, nextToken: String? = nil, taskId: String, reportType: ReportType) { + self.maxResults = maxResults + self.nextToken = nextToken + self.taskId = taskId + self.reportType = reportType + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "maxResults" + case nextToken = "nextToken" + case taskId = "taskId" + case reportType = "reportType" + } + } + + public struct DetachPrincipalPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string), + AWSShapeMember(label: "principal", location: .header(locationName: "x-amzn-iot-principal"), required: true, type: .string) + ] + /// The name of the policy to detach. + public let policyName: String + /// The principal. If the principal is a certificate, specify the certificate ARN. If the principal is an Amazon Cognito identity, specify the identity ID. + public let principal: String + + public init(policyName: String, principal: String) { + self.policyName = policyName + self.principal = principal + } + + private enum CodingKeys: String, CodingKey { + case policyName = "policyName" + case principal = "x-amzn-iot-principal" + } + } + + public struct ListThingRegistrationTaskReportsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "reportType", required: false, type: .enum), + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "resourceLinks", required: false, type: .list) + ] + /// The type of task report. + public let reportType: ReportType? + /// The token to retrieve the next set of results. + public let nextToken: String? + /// Links to the task resources. + public let resourceLinks: [String]? + + public init(reportType: ReportType? = nil, nextToken: String? = nil, resourceLinks: [String]? = nil) { + self.reportType = reportType + self.nextToken = nextToken + self.resourceLinks = resourceLinks + } + + private enum CodingKeys: String, CodingKey { + case reportType = "reportType" + case nextToken = "nextToken" + case resourceLinks = "resourceLinks" + } + } + + public struct ThingTypeMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "deprecated", required: false, type: .boolean), + AWSShapeMember(label: "deprecationDate", required: false, type: .timestamp), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp) + ] + /// Whether the thing type is deprecated. If true, no new things could be associated with this type. + public let deprecated: Bool? + /// The date and time when the thing type was deprecated. + public let deprecationDate: TimeStamp? + /// The date and time when the thing type was created. + public let creationDate: TimeStamp? + + public init(deprecated: Bool? = nil, deprecationDate: TimeStamp? = nil, creationDate: TimeStamp? = nil) { + self.deprecated = deprecated + self.deprecationDate = deprecationDate + self.creationDate = creationDate + } + + private enum CodingKeys: String, CodingKey { + case deprecated = "deprecated" + case deprecationDate = "deprecationDate" + case creationDate = "creationDate" + } + } + + public struct EnableTopicRuleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ruleName", location: .uri(locationName: "ruleName"), required: true, type: .string) + ] + /// The name of the topic rule to enable. + public let ruleName: String + + public init(ruleName: String) { + self.ruleName = ruleName + } + + private enum CodingKeys: String, CodingKey { + case ruleName = "ruleName" + } + } + + public struct DescribeRoleAliasResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleAliasDescription", required: false, type: .structure) + ] + /// The role alias description. + public let roleAliasDescription: RoleAliasDescription? + + public init(roleAliasDescription: RoleAliasDescription? = nil) { + self.roleAliasDescription = roleAliasDescription + } + + private enum CodingKeys: String, CodingKey { + case roleAliasDescription = "roleAliasDescription" + } + } + + public struct CreatePolicyVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string), + AWSShapeMember(label: "setAsDefault", location: .querystring(locationName: "setAsDefault"), required: false, type: .boolean), + AWSShapeMember(label: "policyDocument", required: true, type: .string) + ] + /// The policy name. + public let policyName: String + /// Specifies whether the policy version is set as the default. When this parameter is true, the new policy version becomes the operative version (that is, the version that is in effect for the certificates to which the policy is attached). + public let setAsDefault: Bool? + /// The JSON document that describes the policy. Minimum length of 1. Maximum length of 2048, excluding whitespace. + public let policyDocument: String + + public init(policyName: String, setAsDefault: Bool? = nil, policyDocument: String) { + self.policyName = policyName + self.setAsDefault = setAsDefault + self.policyDocument = policyDocument + } + + private enum CodingKeys: String, CodingKey { + case policyName = "policyName" + case setAsDefault = "setAsDefault" + case policyDocument = "policyDocument" + } + } + + public struct GetEffectivePoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "effectivePolicies", required: false, type: .list) + ] + /// The effective policies. + public let effectivePolicies: [EffectivePolicy]? + + public init(effectivePolicies: [EffectivePolicy]? = nil) { + self.effectivePolicies = effectivePolicies + } + + private enum CodingKeys: String, CodingKey { + case effectivePolicies = "effectivePolicies" + } + } + + public struct TestAuthorizationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyNamesToAdd", required: false, type: .list), + AWSShapeMember(label: "authInfos", required: true, type: .list), + AWSShapeMember(label: "cognitoIdentityPoolId", required: false, type: .string), + AWSShapeMember(label: "policyNamesToSkip", required: false, type: .list), + AWSShapeMember(label: "clientId", location: .querystring(locationName: "clientId"), required: false, type: .string), + AWSShapeMember(label: "principal", required: false, type: .string) + ] + /// When testing custom authorization, the policies specified here are treated as if they are attached to the principal being authorized. + public let policyNamesToAdd: [String]? + /// A list of authorization info objects. Simulating authorization will create a response for each authInfo object in the list. + public let authInfos: [AuthInfo] + /// The Cognito identity pool ID. + public let cognitoIdentityPoolId: String? + /// When testing custom authorization, the policies specified here are treated as if they are not attached to the principal being authorized. + public let policyNamesToSkip: [String]? + /// The MQTT client ID. + public let clientId: String? + /// The principal. + public let principal: String? + + public init(policyNamesToAdd: [String]? = nil, authInfos: [AuthInfo], cognitoIdentityPoolId: String? = nil, policyNamesToSkip: [String]? = nil, clientId: String? = nil, principal: String? = nil) { + self.policyNamesToAdd = policyNamesToAdd + self.authInfos = authInfos + self.cognitoIdentityPoolId = cognitoIdentityPoolId + self.policyNamesToSkip = policyNamesToSkip + self.clientId = clientId + self.principal = principal + } + + private enum CodingKeys: String, CodingKey { + case policyNamesToAdd = "policyNamesToAdd" + case authInfos = "authInfos" + case cognitoIdentityPoolId = "cognitoIdentityPoolId" + case policyNamesToSkip = "policyNamesToSkip" + case clientId = "clientId" + case principal = "principal" + } + } + + public struct KinesisAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: true, type: .string), + AWSShapeMember(label: "streamName", required: true, type: .string), + AWSShapeMember(label: "partitionKey", required: false, type: .string) + ] + /// The ARN of the IAM role that grants access to the Amazon Kinesis stream. + public let roleArn: String + /// The name of the Amazon Kinesis stream. + public let streamName: String + /// The partition key. + public let partitionKey: String? + + public init(roleArn: String, streamName: String, partitionKey: String? = nil) { + self.roleArn = roleArn + self.streamName = streamName + self.partitionKey = partitionKey + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "roleArn" + case streamName = "streamName" + case partitionKey = "partitionKey" + } + } + + public struct TestInvokeAuthorizerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "tokenSignature", required: true, type: .string), + AWSShapeMember(label: "token", required: true, type: .string), + AWSShapeMember(label: "authorizerName", location: .uri(locationName: "authorizerName"), required: true, type: .string) + ] + /// The signature made with the token and your custom authentication service's private key. + public let tokenSignature: String + /// The token returned by your custom authentication service. + public let token: String + /// The custom authorizer name. + public let authorizerName: String + + public init(tokenSignature: String, token: String, authorizerName: String) { + self.tokenSignature = tokenSignature + self.token = token + self.authorizerName = authorizerName + } + + private enum CodingKeys: String, CodingKey { + case tokenSignature = "tokenSignature" + case token = "token" + case authorizerName = "authorizerName" + } + } + + public struct ListThingGroupsForThingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + /// The thing name. + public let thingName: String + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The maximum number of results to return at one time. + public let maxResults: Int32? + + public init(thingName: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.thingName = thingName + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case thingName = "thingName" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct UpdateThingResponse: AWSShape { + + } + + public struct SetDefaultPolicyVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyVersionId", location: .uri(locationName: "policyVersionId"), required: true, type: .string), + AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) + ] + /// The policy version ID. + public let policyVersionId: String + /// The policy name. + public let policyName: String + + public init(policyVersionId: String, policyName: String) { + self.policyVersionId = policyVersionId + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case policyVersionId = "policyVersionId" + case policyName = "policyName" + } + } + + public struct ImplicitDeny: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policies", required: false, type: .list) + ] + /// Policies that don't contain a matching allow or deny statement for the specified action on the specified resource. + public let policies: [Policy]? + + public init(policies: [Policy]? = nil) { + self.policies = policies + } + + private enum CodingKeys: String, CodingKey { + case policies = "policies" + } + } + + public struct UpdateCACertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registrationConfig", required: false, type: .structure), + AWSShapeMember(label: "certificateId", location: .uri(locationName: "caCertificateId"), required: true, type: .string), + AWSShapeMember(label: "newStatus", location: .querystring(locationName: "newStatus"), required: false, type: .enum), + AWSShapeMember(label: "removeAutoRegistration", required: false, type: .boolean), + AWSShapeMember(label: "newAutoRegistrationStatus", location: .querystring(locationName: "newAutoRegistrationStatus"), required: false, type: .enum) + ] + /// Information about the registration configuration. + public let registrationConfig: RegistrationConfig? + /// The CA certificate identifier. + public let certificateId: String + /// The updated status of the CA certificate. Note: The status value REGISTER_INACTIVE is deprecated and should not be used. + public let newStatus: CACertificateStatus? + /// If true, remove auto registration. + public let removeAutoRegistration: Bool? + /// The new value for the auto registration status. Valid values are: "ENABLE" or "DISABLE". + public let newAutoRegistrationStatus: AutoRegistrationStatus? + + public init(registrationConfig: RegistrationConfig? = nil, certificateId: String, newStatus: CACertificateStatus? = nil, removeAutoRegistration: Bool? = nil, newAutoRegistrationStatus: AutoRegistrationStatus? = nil) { + self.registrationConfig = registrationConfig + self.certificateId = certificateId + self.newStatus = newStatus + self.removeAutoRegistration = removeAutoRegistration + self.newAutoRegistrationStatus = newAutoRegistrationStatus + } + + private enum CodingKeys: String, CodingKey { + case registrationConfig = "registrationConfig" + case certificateId = "caCertificateId" + case newStatus = "newStatus" + case removeAutoRegistration = "removeAutoRegistration" + case newAutoRegistrationStatus = "newAutoRegistrationStatus" + } + } + + public struct ListPoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policies", required: false, type: .list), + AWSShapeMember(label: "nextMarker", required: false, type: .string) + ] + /// The descriptions of the policies. + public let policies: [Policy]? + /// The marker for the next set of results, or null if there are no additional results. + public let nextMarker: String? + + public init(policies: [Policy]? = nil, nextMarker: String? = nil) { + self.policies = policies + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case policies = "policies" + case nextMarker = "nextMarker" + } + } + + public struct DescribeDefaultAuthorizerRequest: AWSShape { + + } + + public struct ListOutgoingCertificatesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextMarker", required: false, type: .string), + AWSShapeMember(label: "outgoingCertificates", required: false, type: .list) + ] + /// The marker for the next set of results. + public let nextMarker: String? + /// The certificates that are being transferred but not yet accepted. + public let outgoingCertificates: [OutgoingCertificate]? + + public init(nextMarker: String? = nil, outgoingCertificates: [OutgoingCertificate]? = nil) { + self.nextMarker = nextMarker + self.outgoingCertificates = outgoingCertificates + } + + private enum CodingKeys: String, CodingKey { + case nextMarker = "nextMarker" + case outgoingCertificates = "outgoingCertificates" + } + } + + public struct DescribeThingGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingGroupProperties", required: false, type: .structure), + AWSShapeMember(label: "version", required: false, type: .long), + AWSShapeMember(label: "thingGroupMetadata", required: false, type: .structure), + AWSShapeMember(label: "thingGroupId", required: false, type: .string), + AWSShapeMember(label: "thingGroupArn", required: false, type: .string), + AWSShapeMember(label: "thingGroupName", required: false, type: .string) + ] + /// The thing group properties. + public let thingGroupProperties: ThingGroupProperties? + /// The version of the thing group. + public let version: Int64? + /// Thing group metadata. + public let thingGroupMetadata: ThingGroupMetadata? + /// The thing group ID. + public let thingGroupId: String? + /// The thing group ARN. + public let thingGroupArn: String? + /// The name of the thing group. + public let thingGroupName: String? + + public init(thingGroupProperties: ThingGroupProperties? = nil, version: Int64? = nil, thingGroupMetadata: ThingGroupMetadata? = nil, thingGroupId: String? = nil, thingGroupArn: String? = nil, thingGroupName: String? = nil) { + self.thingGroupProperties = thingGroupProperties + self.version = version + self.thingGroupMetadata = thingGroupMetadata + self.thingGroupId = thingGroupId + self.thingGroupArn = thingGroupArn + self.thingGroupName = thingGroupName + } + + private enum CodingKeys: String, CodingKey { + case thingGroupProperties = "thingGroupProperties" + case version = "version" + case thingGroupMetadata = "thingGroupMetadata" + case thingGroupId = "thingGroupId" + case thingGroupArn = "thingGroupArn" + case thingGroupName = "thingGroupName" + } + } + + public struct DeleteThingTypeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingTypeName", location: .uri(locationName: "thingTypeName"), required: true, type: .string) + ] + /// The name of the thing type. + public let thingTypeName: String + + public init(thingTypeName: String) { + self.thingTypeName = thingTypeName + } + + private enum CodingKeys: String, CodingKey { + case thingTypeName = "thingTypeName" + } + } + + public struct RegisterCertificateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificateId", required: false, type: .string), + AWSShapeMember(label: "certificateArn", required: false, type: .string) + ] + /// The certificate identifier. + public let certificateId: String? + /// The certificate ARN. + public let certificateArn: String? + + public init(certificateId: String? = nil, certificateArn: String? = nil) { + self.certificateId = certificateId + self.certificateArn = certificateArn + } + + private enum CodingKeys: String, CodingKey { + case certificateId = "certificateId" + case certificateArn = "certificateArn" + } + } + + public struct ListV2LoggingLevelsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "logTargetConfigurations", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The logging configuration for a target. + public let logTargetConfigurations: [LogTargetConfiguration]? + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + + public init(logTargetConfigurations: [LogTargetConfiguration]? = nil, nextToken: String? = nil) { + self.logTargetConfigurations = logTargetConfigurations + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case logTargetConfigurations = "logTargetConfigurations" + case nextToken = "nextToken" + } + } + + public struct AttributePayload: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "merge", required: false, type: .boolean), + AWSShapeMember(label: "attributes", required: false, type: .map) + ] + /// Specifies whether the list of attributes provided in the AttributePayload is merged with the attributes stored in the registry, instead of overwriting them. To remove an attribute, call UpdateThing with an empty attribute value. The merge attribute is only valid when calling UpdateThing. + public let merge: Bool? + /// A JSON string containing up to three key-value pair in JSON format. For example: {\"attributes\":{\"string1\":\"string2\"}} + public let attributes: [String: String]? + + public init(merge: Bool? = nil, attributes: [String: String]? = nil) { + self.merge = merge + self.attributes = attributes + } + + private enum CodingKeys: String, CodingKey { + case merge = "merge" + case attributes = "attributes" + } + } + + public struct ListJobExecutionsForJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", location: .querystring(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string) + ] + /// The status of the job. + public let status: JobExecutionStatus? + /// The maximum number of results to be returned per request. + public let maxResults: Int32? + /// The token to retrieve the next set of results. + public let nextToken: String? + /// The unique identifier you assigned to this job when it was created. + public let jobId: String + + public init(status: JobExecutionStatus? = nil, maxResults: Int32? = nil, nextToken: String? = nil, jobId: String) { + self.status = status + self.maxResults = maxResults + self.nextToken = nextToken + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case maxResults = "maxResults" + case nextToken = "nextToken" + case jobId = "jobId" + } + } + + public struct JobExecutionSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "startedAt", required: false, type: .timestamp), + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "lastUpdatedAt", required: false, type: .timestamp), + AWSShapeMember(label: "queuedAt", required: false, type: .timestamp), + AWSShapeMember(label: "executionNumber", required: false, type: .long) + ] + /// The time, in milliseconds since the epoch, when the job execution started. + public let startedAt: TimeStamp? + /// The status of the job execution. + public let status: JobExecutionStatus? + /// The time, in milliseconds since the epoch, when the job execution was last updated. + public let lastUpdatedAt: TimeStamp? + /// The time, in milliseconds since the epoch, when the job execution was queued. + public let queuedAt: TimeStamp? + /// A string (consisting of the digits "0" through "9") which identifies this particular job execution on this particular device. It can be used later in commands which return or update job execution information. + public let executionNumber: Int64? + + public init(startedAt: TimeStamp? = nil, status: JobExecutionStatus? = nil, lastUpdatedAt: TimeStamp? = nil, queuedAt: TimeStamp? = nil, executionNumber: Int64? = nil) { + self.startedAt = startedAt + self.status = status + self.lastUpdatedAt = lastUpdatedAt + self.queuedAt = queuedAt + self.executionNumber = executionNumber + } + + private enum CodingKeys: String, CodingKey { + case startedAt = "startedAt" + case status = "status" + case lastUpdatedAt = "lastUpdatedAt" + case queuedAt = "queuedAt" + case executionNumber = "executionNumber" + } + } + + public struct ThingGroupProperties: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingGroupDescription", required: false, type: .string), + AWSShapeMember(label: "attributePayload", required: false, type: .structure) + ] + /// The thing group description. + public let thingGroupDescription: String? + /// The thing group attributes in JSON format. + public let attributePayload: AttributePayload? + + public init(thingGroupDescription: String? = nil, attributePayload: AttributePayload? = nil) { + self.thingGroupDescription = thingGroupDescription + self.attributePayload = attributePayload + } + + private enum CodingKeys: String, CodingKey { + case thingGroupDescription = "thingGroupDescription" + case attributePayload = "attributePayload" + } + } + + public struct ListIndicesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "indexNames", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The index names. + public let indexNames: [String]? + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + + public init(indexNames: [String]? = nil, nextToken: String? = nil) { + self.indexNames = indexNames + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case indexNames = "indexNames" + case nextToken = "nextToken" + } + } + + public struct UpdateIndexingConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingIndexingConfiguration", required: false, type: .structure) + ] + /// Thing indexing configuration. + public let thingIndexingConfiguration: ThingIndexingConfiguration? + + public init(thingIndexingConfiguration: ThingIndexingConfiguration? = nil) { + self.thingIndexingConfiguration = thingIndexingConfiguration + } + + private enum CodingKeys: String, CodingKey { + case thingIndexingConfiguration = "thingIndexingConfiguration" + } + } + + public struct Configuration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Enabled", required: false, type: .boolean) + ] + /// True to enable the configuration. + public let enabled: Bool? + + public init(enabled: Bool? = nil) { + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case enabled = "Enabled" + } + } + + public struct DeletePolicyVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyVersionId", location: .uri(locationName: "policyVersionId"), required: true, type: .string), + AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) + ] + /// The policy version ID. + public let policyVersionId: String + /// The name of the policy. + public let policyName: String + + public init(policyVersionId: String, policyName: String) { + self.policyVersionId = policyVersionId + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case policyVersionId = "policyVersionId" + case policyName = "policyName" + } + } + + public struct DeleteThingGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "expectedVersion", location: .querystring(locationName: "expectedVersion"), required: false, type: .long), + AWSShapeMember(label: "thingGroupName", location: .uri(locationName: "thingGroupName"), required: true, type: .string) + ] + /// The expected version of the thing group to delete. + public let expectedVersion: Int64? + /// The name of the thing group to delete. + public let thingGroupName: String + + public init(expectedVersion: Int64? = nil, thingGroupName: String) { + self.expectedVersion = expectedVersion + self.thingGroupName = thingGroupName + } + + private enum CodingKeys: String, CodingKey { + case expectedVersion = "expectedVersion" + case thingGroupName = "thingGroupName" + } + } + + public struct UpdateThingGroupsForThingResponse: AWSShape { + + } + + public struct JobExecutionStatusDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "detailsMap", required: false, type: .map) + ] + /// The job execution status. + public let detailsMap: [String: String]? + + public init(detailsMap: [String: String]? = nil) { + self.detailsMap = detailsMap + } + + private enum CodingKeys: String, CodingKey { + case detailsMap = "detailsMap" + } + } + + public struct CreateThingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingTypeName", required: false, type: .string), + AWSShapeMember(label: "attributePayload", required: false, type: .structure), + AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) + ] + /// The name of the thing type associated with the new thing. + public let thingTypeName: String? + /// The attribute payload, which consists of up to three name/value pairs in a JSON document. For example: {\"attributes\":{\"string1\":\"string2\"}} + public let attributePayload: AttributePayload? + /// The name of the thing to create. + public let thingName: String + + public init(thingTypeName: String? = nil, attributePayload: AttributePayload? = nil, thingName: String) { + self.thingTypeName = thingTypeName + self.attributePayload = attributePayload + self.thingName = thingName + } + + private enum CodingKeys: String, CodingKey { + case thingTypeName = "thingTypeName" + case attributePayload = "attributePayload" + case thingName = "thingName" + } + } + + public struct TopicRule: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ruleDisabled", required: false, type: .boolean), + AWSShapeMember(label: "ruleName", required: false, type: .string), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "awsIotSqlVersion", required: false, type: .string), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "actions", required: false, type: .list), + AWSShapeMember(label: "sql", required: false, type: .string) + ] + /// Specifies whether the rule is disabled. + public let ruleDisabled: Bool? + /// The name of the rule. + public let ruleName: String? + /// The date and time the rule was created. + public let createdAt: TimeStamp? + /// The version of the SQL rules engine to use when evaluating the rule. + public let awsIotSqlVersion: String? + /// The description of the rule. + public let description: String? + /// The actions associated with the rule. + public let actions: [Action]? + /// The SQL statement used to query the topic. When using a SQL query with multiple lines, be sure to escape the newline characters. + public let sql: String? + + public init(ruleDisabled: Bool? = nil, ruleName: String? = nil, createdAt: TimeStamp? = nil, awsIotSqlVersion: String? = nil, description: String? = nil, actions: [Action]? = nil, sql: String? = nil) { + self.ruleDisabled = ruleDisabled + self.ruleName = ruleName + self.createdAt = createdAt + self.awsIotSqlVersion = awsIotSqlVersion + self.description = description + self.actions = actions + self.sql = sql + } + + private enum CodingKeys: String, CodingKey { + case ruleDisabled = "ruleDisabled" + case ruleName = "ruleName" + case createdAt = "createdAt" + case awsIotSqlVersion = "awsIotSqlVersion" + case description = "description" + case actions = "actions" + case sql = "sql" + } + } + + public struct CancelJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "comment", required: false, type: .string), + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string) + ] + /// An optional comment string describing why the job was canceled. + public let comment: String? + /// The unique identifier you assigned to this job when it was created. + public let jobId: String + + public init(comment: String? = nil, jobId: String) { + self.comment = comment + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case comment = "comment" + case jobId = "jobId" + } + } + + public struct CertificateDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "caCertificateId", required: false, type: .string), + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp), + AWSShapeMember(label: "certificateId", required: false, type: .string), + AWSShapeMember(label: "certificatePem", required: false, type: .string), + AWSShapeMember(label: "previousOwnedBy", required: false, type: .string), + AWSShapeMember(label: "transferData", required: false, type: .structure), + AWSShapeMember(label: "ownedBy", required: false, type: .string), + AWSShapeMember(label: "certificateArn", required: false, type: .string), + AWSShapeMember(label: "lastModifiedDate", required: false, type: .timestamp) + ] + /// The certificate ID of the CA certificate used to sign this certificate. + public let caCertificateId: String? + /// The status of the certificate. + public let status: CertificateStatus? + /// The date and time the certificate was created. + public let creationDate: TimeStamp? + /// The ID of the certificate. + public let certificateId: String? + /// The certificate data, in PEM format. + public let certificatePem: String? + /// The ID of the AWS account of the previous owner of the certificate. + public let previousOwnedBy: String? + /// The transfer data. + public let transferData: TransferData? + /// The ID of the AWS account that owns the certificate. + public let ownedBy: String? + /// The ARN of the certificate. + public let certificateArn: String? + /// The date and time the certificate was last modified. + public let lastModifiedDate: TimeStamp? + + public init(caCertificateId: String? = nil, status: CertificateStatus? = nil, creationDate: TimeStamp? = nil, certificateId: String? = nil, certificatePem: String? = nil, previousOwnedBy: String? = nil, transferData: TransferData? = nil, ownedBy: String? = nil, certificateArn: String? = nil, lastModifiedDate: TimeStamp? = nil) { + self.caCertificateId = caCertificateId + self.status = status + self.creationDate = creationDate + self.certificateId = certificateId + self.certificatePem = certificatePem + self.previousOwnedBy = previousOwnedBy + self.transferData = transferData + self.ownedBy = ownedBy + self.certificateArn = certificateArn + self.lastModifiedDate = lastModifiedDate + } + + private enum CodingKeys: String, CodingKey { + case caCertificateId = "caCertificateId" + case status = "status" + case creationDate = "creationDate" + case certificateId = "certificateId" + case certificatePem = "certificatePem" + case previousOwnedBy = "previousOwnedBy" + case transferData = "transferData" + case ownedBy = "ownedBy" + case certificateArn = "certificateArn" + case lastModifiedDate = "lastModifiedDate" + } + } + + public struct CloudwatchAlarmAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: true, type: .string), + AWSShapeMember(label: "stateReason", required: true, type: .string), + AWSShapeMember(label: "alarmName", required: true, type: .string), + AWSShapeMember(label: "stateValue", required: true, type: .string) + ] + /// The IAM role that allows access to the CloudWatch alarm. + public let roleArn: String + /// The reason for the alarm change. + public let stateReason: String + /// The CloudWatch alarm name. + public let alarmName: String + /// The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA. + public let stateValue: String + + public init(roleArn: String, stateReason: String, alarmName: String, stateValue: String) { + self.roleArn = roleArn + self.stateReason = stateReason + self.alarmName = alarmName + self.stateValue = stateValue + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "roleArn" + case stateReason = "stateReason" + case alarmName = "alarmName" + case stateValue = "stateValue" + } + } + + public struct ListPrincipalThingsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "principal", location: .header(locationName: "x-amzn-principal"), required: true, type: .string) + ] + /// The maximum number of results to return in this operation. + public let maxResults: Int32? + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The principal. + public let principal: String + + public init(maxResults: Int32? = nil, nextToken: String? = nil, principal: String) { + self.maxResults = maxResults + self.nextToken = nextToken + self.principal = principal + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "maxResults" + case nextToken = "nextToken" + case principal = "x-amzn-principal" + } + } + + public struct ClearDefaultAuthorizerResponse: AWSShape { + + } + + public struct CACertificate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp), + AWSShapeMember(label: "certificateId", required: false, type: .string), + AWSShapeMember(label: "certificateArn", required: false, type: .string) + ] + /// The status of the CA certificate. The status value REGISTER_INACTIVE is deprecated and should not be used. + public let status: CACertificateStatus? + /// The date the CA certificate was created. + public let creationDate: TimeStamp? + /// The ID of the CA certificate. + public let certificateId: String? + /// The ARN of the CA certificate. + public let certificateArn: String? + + public init(status: CACertificateStatus? = nil, creationDate: TimeStamp? = nil, certificateId: String? = nil, certificateArn: String? = nil) { + self.status = status + self.creationDate = creationDate + self.certificateId = certificateId + self.certificateArn = certificateArn + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case creationDate = "creationDate" + case certificateId = "certificateId" + case certificateArn = "certificateArn" + } + } + + public struct ListRoleAliasesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleAliases", required: false, type: .list), + AWSShapeMember(label: "nextMarker", required: false, type: .string) + ] + /// The role aliases. + public let roleAliases: [String]? + /// A marker used to get the next set of results. + public let nextMarker: String? + + public init(roleAliases: [String]? = nil, nextMarker: String? = nil) { + self.roleAliases = roleAliases + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case roleAliases = "roleAliases" + case nextMarker = "nextMarker" + } + } + + public struct ListPolicyPrincipalsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), + AWSShapeMember(label: "policyName", location: .header(locationName: "x-amzn-iot-policy"), required: true, type: .string), + AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) + ] + /// The marker for the next set of results. + public let marker: String? + /// The result page size. + public let pageSize: Int32? + /// The policy name. + public let policyName: String + /// Specifies the order for results. If true, the results are returned in ascending creation order. + public let ascendingOrder: Bool? + + public init(marker: String? = nil, pageSize: Int32? = nil, policyName: String, ascendingOrder: Bool? = nil) { + self.marker = marker + self.pageSize = pageSize + self.policyName = policyName + self.ascendingOrder = ascendingOrder + } + + private enum CodingKeys: String, CodingKey { + case marker = "marker" + case pageSize = "pageSize" + case policyName = "x-amzn-iot-policy" + case ascendingOrder = "isAscendingOrder" + } + } + + public struct DescribeIndexResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "indexStatus", required: false, type: .enum), + AWSShapeMember(label: "schema", required: false, type: .string), + AWSShapeMember(label: "indexName", required: false, type: .string) + ] + /// The index status. + public let indexStatus: IndexStatus? + /// Contains a value that specifies the type of indexing performed. Valid values are: REGISTRY – Your thing index will contain only registry data. REGISTRY_AND_SHADOW - Your thing index will contain registry and shadow data. + public let schema: String? + /// The index name. + public let indexName: String? + + public init(indexStatus: IndexStatus? = nil, schema: String? = nil, indexName: String? = nil) { + self.indexStatus = indexStatus + self.schema = schema + self.indexName = indexName + } + + private enum CodingKeys: String, CodingKey { + case indexStatus = "indexStatus" + case schema = "schema" + case indexName = "indexName" + } + } + + public struct DescribeIndexRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "indexName", location: .uri(locationName: "indexName"), required: true, type: .string) + ] + /// The index name. + public let indexName: String + + public init(indexName: String) { + self.indexName = indexName + } + + private enum CodingKeys: String, CodingKey { + case indexName = "indexName" + } + } + + public struct DescribeThingRegistrationTaskResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: false, type: .string), + AWSShapeMember(label: "percentageProgress", required: false, type: .integer), + AWSShapeMember(label: "templateBody", required: false, type: .string), + AWSShapeMember(label: "inputFileBucket", required: false, type: .string), + AWSShapeMember(label: "taskId", required: false, type: .string), + AWSShapeMember(label: "successCount", required: false, type: .integer), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp), + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "message", required: false, type: .string), + AWSShapeMember(label: "failureCount", required: false, type: .integer), + AWSShapeMember(label: "lastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "inputFileKey", required: false, type: .string) + ] + /// The role ARN that grants access to the input file bucket. + public let roleArn: String? + /// The progress of the bulk provisioning task expressed as a percentage. + public let percentageProgress: Int32? + /// The task's template. + public let templateBody: String? + /// The S3 bucket that contains the input file. + public let inputFileBucket: String? + /// The task ID. + public let taskId: String? + /// The number of things successfully provisioned. + public let successCount: Int32? + /// The task creation date. + public let creationDate: TimeStamp? + /// The status of the bulk thing provisioning task. + public let status: Status? + /// The message. + public let message: String? + /// The number of things that failed to be provisioned. + public let failureCount: Int32? + /// The date when the task was last modified. + public let lastModifiedDate: TimeStamp? + /// The input file key. + public let inputFileKey: String? + + public init(roleArn: String? = nil, percentageProgress: Int32? = nil, templateBody: String? = nil, inputFileBucket: String? = nil, taskId: String? = nil, successCount: Int32? = nil, creationDate: TimeStamp? = nil, status: Status? = nil, message: String? = nil, failureCount: Int32? = nil, lastModifiedDate: TimeStamp? = nil, inputFileKey: String? = nil) { + self.roleArn = roleArn + self.percentageProgress = percentageProgress + self.templateBody = templateBody + self.inputFileBucket = inputFileBucket + self.taskId = taskId + self.successCount = successCount + self.creationDate = creationDate + self.status = status + self.message = message + self.failureCount = failureCount + self.lastModifiedDate = lastModifiedDate + self.inputFileKey = inputFileKey + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "roleArn" + case percentageProgress = "percentageProgress" + case templateBody = "templateBody" + case inputFileBucket = "inputFileBucket" + case taskId = "taskId" + case successCount = "successCount" + case creationDate = "creationDate" + case status = "status" + case message = "message" + case failureCount = "failureCount" + case lastModifiedDate = "lastModifiedDate" + case inputFileKey = "inputFileKey" + } + } + + public struct GetIndexingConfigurationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingIndexingConfiguration", required: false, type: .structure) + ] + /// Thing indexing configuration. + public let thingIndexingConfiguration: ThingIndexingConfiguration? + + public init(thingIndexingConfiguration: ThingIndexingConfiguration? = nil) { + self.thingIndexingConfiguration = thingIndexingConfiguration + } + + private enum CodingKeys: String, CodingKey { + case thingIndexingConfiguration = "thingIndexingConfiguration" + } + } + + public struct GetRegistrationCodeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "registrationCode", required: false, type: .string) + ] + /// The CA certificate registration code. + public let registrationCode: String? + + public init(registrationCode: String? = nil) { + self.registrationCode = registrationCode + } + + private enum CodingKeys: String, CodingKey { + case registrationCode = "registrationCode" + } + } + + public struct ListPoliciesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), + AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) + ] + /// The marker for the next set of results. + public let marker: String? + /// The result page size. + public let pageSize: Int32? + /// Specifies the order for results. If true, the results are returned in ascending creation order. + public let ascendingOrder: Bool? + + public init(marker: String? = nil, pageSize: Int32? = nil, ascendingOrder: Bool? = nil) { + self.marker = marker + self.pageSize = pageSize + self.ascendingOrder = ascendingOrder + } + + private enum CodingKeys: String, CodingKey { + case marker = "marker" + case pageSize = "pageSize" + case ascendingOrder = "isAscendingOrder" + } + } + + public struct ListTargetsForPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), + AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) + ] + /// A marker used to get the next set of results. + public let marker: String? + /// The maximum number of results to return at one time. + public let pageSize: Int32? + /// The policy name. + public let policyName: String + + public init(marker: String? = nil, pageSize: Int32? = nil, policyName: String) { + self.marker = marker + self.pageSize = pageSize + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case marker = "marker" + case pageSize = "pageSize" + case policyName = "policyName" + } + } + + public struct ListCertificatesByCAResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificates", required: false, type: .list), + AWSShapeMember(label: "nextMarker", required: false, type: .string) + ] + /// The device certificates signed by the specified CA certificate. + public let certificates: [Certificate]? + /// The marker for the next set of results, or null if there are no additional results. + public let nextMarker: String? + + public init(certificates: [Certificate]? = nil, nextMarker: String? = nil) { + self.certificates = certificates + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case certificates = "certificates" + case nextMarker = "nextMarker" + } + } + + public struct ListCACertificatesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), + AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) + ] + /// The marker for the next set of results. + public let marker: String? + /// The result page size. + public let pageSize: Int32? + /// Determines the order of the results. + public let ascendingOrder: Bool? + + public init(marker: String? = nil, pageSize: Int32? = nil, ascendingOrder: Bool? = nil) { + self.marker = marker + self.pageSize = pageSize + self.ascendingOrder = ascendingOrder + } + + private enum CodingKeys: String, CodingKey { + case marker = "marker" + case pageSize = "pageSize" + case ascendingOrder = "isAscendingOrder" + } + } + + public struct DeprecateThingTypeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingTypeName", location: .uri(locationName: "thingTypeName"), required: true, type: .string), + AWSShapeMember(label: "undoDeprecate", required: false, type: .boolean) + ] + /// The name of the thing type to deprecate. + public let thingTypeName: String + /// Whether to undeprecate a deprecated thing type. If true, the thing type will not be deprecated anymore and you can associate it with things. + public let undoDeprecate: Bool? + + public init(thingTypeName: String, undoDeprecate: Bool? = nil) { + self.thingTypeName = thingTypeName + self.undoDeprecate = undoDeprecate + } + + private enum CodingKeys: String, CodingKey { + case thingTypeName = "thingTypeName" + case undoDeprecate = "undoDeprecate" + } + } + + public struct TopicRulePayload: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "awsIotSqlVersion", required: false, type: .string), + AWSShapeMember(label: "ruleDisabled", required: false, type: .boolean), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "actions", required: true, type: .list), + AWSShapeMember(label: "sql", required: true, type: .string) + ] + /// The version of the SQL rules engine to use when evaluating the rule. + public let awsIotSqlVersion: String? + /// Specifies whether the rule is disabled. + public let ruleDisabled: Bool? + /// The description of the rule. + public let description: String? + /// The actions associated with the rule. + public let actions: [Action] + /// The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference in the AWS IoT Developer Guide. + public let sql: String + + public init(awsIotSqlVersion: String? = nil, ruleDisabled: Bool? = nil, description: String? = nil, actions: [Action], sql: String) { + self.awsIotSqlVersion = awsIotSqlVersion + self.ruleDisabled = ruleDisabled + self.description = description + self.actions = actions + self.sql = sql + } + + private enum CodingKeys: String, CodingKey { + case awsIotSqlVersion = "awsIotSqlVersion" + case ruleDisabled = "ruleDisabled" + case description = "description" + case actions = "actions" + case sql = "sql" + } + } + + public struct DescribeAuthorizerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorizerDescription", required: false, type: .structure) + ] + /// The authorizer description. + public let authorizerDescription: AuthorizerDescription? + + public init(authorizerDescription: AuthorizerDescription? = nil) { + self.authorizerDescription = authorizerDescription + } + + private enum CodingKeys: String, CodingKey { + case authorizerDescription = "authorizerDescription" + } + } + + public struct KeyPair: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PublicKey", required: false, type: .string), + AWSShapeMember(label: "PrivateKey", required: false, type: .string) + ] + /// The public key. + public let publicKey: String? + /// The private key. + public let privateKey: String? + + public init(publicKey: String? = nil, privateKey: String? = nil) { + self.publicKey = publicKey + self.privateKey = privateKey + } + + private enum CodingKeys: String, CodingKey { + case publicKey = "PublicKey" + case privateKey = "PrivateKey" + } + } + + public struct DeleteRegistrationCodeResponse: AWSShape { + + } + + public struct ListPolicyVersionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyVersions", required: false, type: .list) + ] + /// The policy versions. + public let policyVersions: [PolicyVersion]? + + public init(policyVersions: [PolicyVersion]? = nil) { + self.policyVersions = policyVersions + } + + private enum CodingKeys: String, CodingKey { + case policyVersions = "policyVersions" + } + } + + public struct UpdateIndexingConfigurationResponse: AWSShape { + + } + + public struct DeleteTopicRuleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ruleName", location: .uri(locationName: "ruleName"), required: true, type: .string) + ] + /// The name of the rule. + public let ruleName: String + + public init(ruleName: String) { + self.ruleName = ruleName + } + + private enum CodingKeys: String, CodingKey { + case ruleName = "ruleName" + } + } + + public struct ListIndicesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The maximum number of results to return at one time. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct GetPolicyVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyVersionId", location: .uri(locationName: "policyVersionId"), required: true, type: .string), + AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) + ] + /// The policy version ID. + public let policyVersionId: String + /// The name of the policy. + public let policyName: String + + public init(policyVersionId: String, policyName: String) { + self.policyVersionId = policyVersionId + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case policyVersionId = "policyVersionId" + case policyName = "policyName" + } + } + + public struct S3Action: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "bucketName", required: true, type: .string), + AWSShapeMember(label: "roleArn", required: true, type: .string), + AWSShapeMember(label: "cannedAcl", required: false, type: .enum), + AWSShapeMember(label: "key", required: true, type: .string) + ] + /// The Amazon S3 bucket. + public let bucketName: String + /// The ARN of the IAM role that grants access. + public let roleArn: String + /// The Amazon S3 canned ACL that controls access to the object identified by the object key. For more information, see S3 canned ACLs. + public let cannedAcl: CannedAccessControlList? + /// The object key. + public let key: String + + public init(bucketName: String, roleArn: String, cannedAcl: CannedAccessControlList? = nil, key: String) { + self.bucketName = bucketName + self.roleArn = roleArn + self.cannedAcl = cannedAcl + self.key = key + } + + private enum CodingKeys: String, CodingKey { + case bucketName = "bucketName" + case roleArn = "roleArn" + case cannedAcl = "cannedAcl" + case key = "key" + } + } + + public struct OutgoingCertificate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "transferMessage", required: false, type: .string), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp), + AWSShapeMember(label: "certificateId", required: false, type: .string), + AWSShapeMember(label: "certificateArn", required: false, type: .string), + AWSShapeMember(label: "transferredTo", required: false, type: .string), + AWSShapeMember(label: "transferDate", required: false, type: .timestamp) + ] + /// The transfer message. + public let transferMessage: String? + /// The certificate creation date. + public let creationDate: TimeStamp? + /// The certificate ID. + public let certificateId: String? + /// The certificate ARN. + public let certificateArn: String? + /// The AWS account to which the transfer was made. + public let transferredTo: String? + /// The date the transfer was initiated. + public let transferDate: TimeStamp? + + public init(transferMessage: String? = nil, creationDate: TimeStamp? = nil, certificateId: String? = nil, certificateArn: String? = nil, transferredTo: String? = nil, transferDate: TimeStamp? = nil) { + self.transferMessage = transferMessage + self.creationDate = creationDate + self.certificateId = certificateId + self.certificateArn = certificateArn + self.transferredTo = transferredTo + self.transferDate = transferDate + } + + private enum CodingKeys: String, CodingKey { + case transferMessage = "transferMessage" + case creationDate = "creationDate" + case certificateId = "certificateId" + case certificateArn = "certificateArn" + case transferredTo = "transferredTo" + case transferDate = "transferDate" + } + } + + public struct ListThingGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "thingGroups", required: false, type: .list) + ] + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The thing groups. + public let thingGroups: [GroupNameAndArn]? + + public init(nextToken: String? = nil, thingGroups: [GroupNameAndArn]? = nil) { + self.nextToken = nextToken + self.thingGroups = thingGroups + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case thingGroups = "thingGroups" + } + } + + public struct CreateCertificateFromCsrResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificateId", required: false, type: .string), + AWSShapeMember(label: "certificateArn", required: false, type: .string), + AWSShapeMember(label: "certificatePem", required: false, type: .string) + ] + /// The ID of the certificate. Certificate management operations only take a certificateId. + public let certificateId: String? + /// The Amazon Resource Name (ARN) of the certificate. You can use the ARN as a principal for policy operations. + public let certificateArn: String? + /// The certificate data, in PEM format. + public let certificatePem: String? + + public init(certificateId: String? = nil, certificateArn: String? = nil, certificatePem: String? = nil) { + self.certificateId = certificateId + self.certificateArn = certificateArn + self.certificatePem = certificatePem + } + + private enum CodingKeys: String, CodingKey { + case certificateId = "certificateId" + case certificateArn = "certificateArn" + case certificatePem = "certificatePem" + } + } + + public struct TransferCertificateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "transferredCertificateArn", required: false, type: .string) + ] + /// The ARN of the certificate. + public let transferredCertificateArn: String? + + public init(transferredCertificateArn: String? = nil) { + self.transferredCertificateArn = transferredCertificateArn + } + + private enum CodingKeys: String, CodingKey { + case transferredCertificateArn = "transferredCertificateArn" + } + } + + public enum AuthorizerStatus: String, CustomStringConvertible, Codable { + case active = "ACTIVE" + case inactive = "INACTIVE" + public var description: String { return self.rawValue } + } + + public struct FirehoseAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: true, type: .string), + AWSShapeMember(label: "deliveryStreamName", required: true, type: .string), + AWSShapeMember(label: "separator", required: false, type: .string) + ] + /// The IAM role that grants access to the Amazon Kinesis Firehose stream. + public let roleArn: String + /// The delivery stream name. + public let deliveryStreamName: String + /// A character separator that will be used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma). + public let separator: String? + + public init(roleArn: String, deliveryStreamName: String, separator: String? = nil) { + self.roleArn = roleArn + self.deliveryStreamName = deliveryStreamName + self.separator = separator + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "roleArn" + case deliveryStreamName = "deliveryStreamName" + case separator = "separator" + } + } + + public struct CreatePolicyVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyArn", required: false, type: .string), + AWSShapeMember(label: "policyVersionId", required: false, type: .string), + AWSShapeMember(label: "isDefaultVersion", required: false, type: .boolean), + AWSShapeMember(label: "policyDocument", required: false, type: .string) + ] + /// The policy ARN. + public let policyArn: String? + /// The policy version ID. + public let policyVersionId: String? + /// Specifies whether the policy version is the default. + public let isDefaultVersion: Bool? + /// The JSON document that describes the policy. + public let policyDocument: String? + + public init(policyArn: String? = nil, policyVersionId: String? = nil, isDefaultVersion: Bool? = nil, policyDocument: String? = nil) { + self.policyArn = policyArn + self.policyVersionId = policyVersionId + self.isDefaultVersion = isDefaultVersion + self.policyDocument = policyDocument + } + + private enum CodingKeys: String, CodingKey { + case policyArn = "policyArn" + case policyVersionId = "policyVersionId" + case isDefaultVersion = "isDefaultVersion" + case policyDocument = "policyDocument" + } + } + + public struct DescribeAuthorizerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorizerName", location: .uri(locationName: "authorizerName"), required: true, type: .string) + ] + /// The name of the authorizer to describe. + public let authorizerName: String + + public init(authorizerName: String) { + self.authorizerName = authorizerName + } + + private enum CodingKeys: String, CodingKey { + case authorizerName = "authorizerName" + } + } + + public struct CancelCertificateTransferRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificateId", location: .uri(locationName: "certificateId"), required: true, type: .string) + ] + /// The ID of the certificate. + public let certificateId: String + + public init(certificateId: String) { + self.certificateId = certificateId + } + + private enum CodingKeys: String, CodingKey { + case certificateId = "certificateId" + } + } + + public struct DeleteCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "forceDelete", location: .querystring(locationName: "forceDelete"), required: false, type: .boolean), + AWSShapeMember(label: "certificateId", location: .uri(locationName: "certificateId"), required: true, type: .string) + ] + /// Forces a certificate request to be deleted. + public let forceDelete: Bool? + /// The ID of the certificate. + public let certificateId: String + + public init(forceDelete: Bool? = nil, certificateId: String) { + self.forceDelete = forceDelete + self.certificateId = certificateId + } + + private enum CodingKeys: String, CodingKey { + case forceDelete = "forceDelete" + case certificateId = "certificateId" + } + } + + public struct DetachThingPrincipalResponse: AWSShape { + + } + + public struct DescribeThingRegistrationTaskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "taskId", location: .uri(locationName: "taskId"), required: true, type: .string) + ] + /// The task ID. + public let taskId: String + + public init(taskId: String) { + self.taskId = taskId + } + + private enum CodingKeys: String, CodingKey { + case taskId = "taskId" + } + } + + public struct StartThingRegistrationTaskResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "taskId", required: false, type: .string) + ] + /// The bulk thing provisioning task ID. + public let taskId: String? + + public init(taskId: String? = nil) { + self.taskId = taskId + } + + private enum CodingKeys: String, CodingKey { + case taskId = "taskId" + } + } + + public struct CreateJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "jobArn", required: false, type: .string), + AWSShapeMember(label: "jobId", required: false, type: .string) + ] + /// The job description. + public let description: String? + /// The job ARN. + public let jobArn: String? + /// The unique identifier you assigned to this job. + public let jobId: String? + + public init(description: String? = nil, jobArn: String? = nil, jobId: String? = nil) { + self.description = description + self.jobArn = jobArn + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case jobArn = "jobArn" + case jobId = "jobId" + } + } + + public struct ListOutgoingCertificatesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "pageSize", location: .querystring(locationName: "pageSize"), required: false, type: .integer), + AWSShapeMember(label: "ascendingOrder", location: .querystring(locationName: "isAscendingOrder"), required: false, type: .boolean) + ] + /// The marker for the next set of results. + public let marker: String? + /// The result page size. + public let pageSize: Int32? + /// Specifies the order for results. If True, the results are returned in ascending order, based on the creation date. + public let ascendingOrder: Bool? + + public init(marker: String? = nil, pageSize: Int32? = nil, ascendingOrder: Bool? = nil) { + self.marker = marker + self.pageSize = pageSize + self.ascendingOrder = ascendingOrder + } + + private enum CodingKeys: String, CodingKey { + case marker = "marker" + case pageSize = "pageSize" + case ascendingOrder = "isAscendingOrder" + } + } + + public struct GetPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyName", location: .uri(locationName: "policyName"), required: true, type: .string) + ] + /// The name of the policy. + public let policyName: String + + public init(policyName: String) { + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case policyName = "policyName" + } + } + + public struct AuthorizerDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp), + AWSShapeMember(label: "authorizerName", required: false, type: .string), + AWSShapeMember(label: "authorizerFunctionArn", required: false, type: .string), + AWSShapeMember(label: "tokenKeyName", required: false, type: .string), + AWSShapeMember(label: "authorizerArn", required: false, type: .string), + AWSShapeMember(label: "lastModifiedDate", required: false, type: .timestamp), + AWSShapeMember(label: "tokenSigningPublicKeys", required: false, type: .map) + ] + /// The status of the authorizer. + public let status: AuthorizerStatus? + /// The UNIX timestamp of when the authorizer was created. + public let creationDate: TimeStamp? + /// The authorizer name. + public let authorizerName: String? + /// The authorizer's Lambda function ARN. + public let authorizerFunctionArn: String? + /// The key used to extract the token from the HTTP headers. + public let tokenKeyName: String? + /// The authorizer ARN. + public let authorizerArn: String? + /// The UNIX timestamp of when the authorizer was last updated. + public let lastModifiedDate: TimeStamp? + /// The public keys used to validate the token signature returned by your custom authentication service. + public let tokenSigningPublicKeys: [String: String]? + + public init(status: AuthorizerStatus? = nil, creationDate: TimeStamp? = nil, authorizerName: String? = nil, authorizerFunctionArn: String? = nil, tokenKeyName: String? = nil, authorizerArn: String? = nil, lastModifiedDate: TimeStamp? = nil, tokenSigningPublicKeys: [String: String]? = nil) { + self.status = status + self.creationDate = creationDate + self.authorizerName = authorizerName + self.authorizerFunctionArn = authorizerFunctionArn + self.tokenKeyName = tokenKeyName + self.authorizerArn = authorizerArn + self.lastModifiedDate = lastModifiedDate + self.tokenSigningPublicKeys = tokenSigningPublicKeys + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case creationDate = "creationDate" + case authorizerName = "authorizerName" + case authorizerFunctionArn = "authorizerFunctionArn" + case tokenKeyName = "tokenKeyName" + case authorizerArn = "authorizerArn" + case lastModifiedDate = "lastModifiedDate" + case tokenSigningPublicKeys = "tokenSigningPublicKeys" + } + } + + public struct AssociateTargetsWithJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "comment", required: false, type: .string), + AWSShapeMember(label: "targets", required: true, type: .list), + AWSShapeMember(label: "jobId", location: .uri(locationName: "jobId"), required: true, type: .string) + ] + /// An optional comment string describing why the job was associated with the targets. + public let comment: String? + /// A list of thing group ARNs that define the targets of the job. + public let targets: [String] + /// The unique identifier you assigned to this job when it was created. + public let jobId: String + + public init(comment: String? = nil, targets: [String], jobId: String) { + self.comment = comment + self.targets = targets + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case comment = "comment" + case targets = "targets" + case jobId = "jobId" + } + } + + public struct ListThingsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "things", required: false, type: .list) + ] + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The things. + public let things: [ThingAttribute]? + + public init(nextToken: String? = nil, things: [ThingAttribute]? = nil) { + self.nextToken = nextToken + self.things = things + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case things = "things" + } + } + + public enum Status: String, CustomStringConvertible, Codable { + case inprogress = "InProgress" + case completed = "Completed" + case failed = "Failed" + case cancelled = "Cancelled" + case cancelling = "Cancelling" + public var description: String { return self.rawValue } + } + + public enum LogLevel: String, CustomStringConvertible, Codable { + case debug = "DEBUG" + case info = "INFO" + case error = "ERROR" + case warn = "WARN" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public enum ActionType: String, CustomStringConvertible, Codable { + case publish = "PUBLISH" + case subscribe = "SUBSCRIBE" + case receive = "RECEIVE" + case connect = "CONNECT" + public var description: String { return self.rawValue } + } + + public enum JobExecutionStatus: String, CustomStringConvertible, Codable { + case queued = "QUEUED" + case inProgress = "IN_PROGRESS" + case succeeded = "SUCCEEDED" + case failed = "FAILED" + case rejected = "REJECTED" + case removed = "REMOVED" + case canceled = "CANCELED" + public var description: String { return self.rawValue } + } + + public struct ListThingRegistrationTasksResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "taskIds", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// A list of bulk thing provisioning task IDs. + public let taskIds: [String]? + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + + public init(taskIds: [String]? = nil, nextToken: String? = nil) { + self.taskIds = taskIds + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case taskIds = "taskIds" + case nextToken = "nextToken" + } + } + + public struct ListJobExecutionsForJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "executionSummaries", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// A list of job execution summaries. + public let executionSummaries: [JobExecutionSummaryForJob]? + /// The token for the next set of results, or null if there are no additional results. + public let nextToken: String? + + public init(executionSummaries: [JobExecutionSummaryForJob]? = nil, nextToken: String? = nil) { + self.executionSummaries = executionSummaries + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case executionSummaries = "executionSummaries" + case nextToken = "nextToken" + } + } + + public struct ListThingGroupsForThingResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "thingGroups", required: false, type: .list) + ] + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The thing groups. + public let thingGroups: [GroupNameAndArn]? + + public init(nextToken: String? = nil, thingGroups: [GroupNameAndArn]? = nil) { + self.nextToken = nextToken + self.thingGroups = thingGroups + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case thingGroups = "thingGroups" + } + } + + public enum CertificateStatus: String, CustomStringConvertible, Codable { + case active = "ACTIVE" + case inactive = "INACTIVE" + case revoked = "REVOKED" + case pendingTransfer = "PENDING_TRANSFER" + case registerInactive = "REGISTER_INACTIVE" + case pendingActivation = "PENDING_ACTIVATION" + public var description: String { return self.rawValue } + } + + public struct DeleteRoleAliasResponse: AWSShape { + + } + + public struct DescribeThingTypeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "thingTypeName", location: .uri(locationName: "thingTypeName"), required: true, type: .string) + ] + /// The name of the thing type. + public let thingTypeName: String + + public init(thingTypeName: String) { + self.thingTypeName = thingTypeName + } + + private enum CodingKeys: String, CodingKey { + case thingTypeName = "thingTypeName" + } + } + + public struct JobExecutionSummaryForJob: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobExecutionSummary", required: false, type: .structure), + AWSShapeMember(label: "thingArn", required: false, type: .string) + ] + /// Contains a subset of information about a job execution. + public let jobExecutionSummary: JobExecutionSummary? + /// The ARN of the thing on which the job execution is running. + public let thingArn: String? + + public init(jobExecutionSummary: JobExecutionSummary? = nil, thingArn: String? = nil) { + self.jobExecutionSummary = jobExecutionSummary + self.thingArn = thingArn + } + + private enum CodingKeys: String, CodingKey { + case jobExecutionSummary = "jobExecutionSummary" + case thingArn = "thingArn" + } + } + + public struct RegisterThingResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "resourceArns", required: false, type: .map), + AWSShapeMember(label: "certificatePem", required: false, type: .string) + ] + /// ARNs for the generated resources. + public let resourceArns: [String: String]? + public let certificatePem: String? + + public init(resourceArns: [String: String]? = nil, certificatePem: String? = nil) { + self.resourceArns = resourceArns + self.certificatePem = certificatePem + } + + private enum CodingKeys: String, CodingKey { + case resourceArns = "resourceArns" + case certificatePem = "certificatePem" + } + } + + public struct DeleteThingGroupResponse: AWSShape { + + } + + public struct ListV2LoggingLevelsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "targetType", location: .querystring(locationName: "targetType"), required: false, type: .enum) + ] + /// The maximum number of results to return at one time. + public let maxResults: Int32? + /// The token used to get the next set of results, or null if there are no additional results. + public let nextToken: String? + /// The type of resource for which you are configuring logging. Must be THING_Group. + public let targetType: LogTargetType? + + public init(maxResults: Int32? = nil, nextToken: String? = nil, targetType: LogTargetType? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + self.targetType = targetType + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "maxResults" + case nextToken = "nextToken" + case targetType = "targetType" + } + } + + public struct StartThingRegistrationTaskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "roleArn", required: true, type: .string), + AWSShapeMember(label: "templateBody", required: true, type: .string), + AWSShapeMember(label: "inputFileBucket", required: true, type: .string), + AWSShapeMember(label: "inputFileKey", required: true, type: .string) + ] + /// The IAM role ARN that grants permission the input file. + public let roleArn: String + /// The provisioning template. + public let templateBody: String + /// The S3 bucket that contains the input file. + public let inputFileBucket: String + /// The name of input file within the S3 bucket. This file contains a newline delimited JSON file. Each line contains the parameter values to provision one device (thing). + public let inputFileKey: String + + public init(roleArn: String, templateBody: String, inputFileBucket: String, inputFileKey: String) { + self.roleArn = roleArn + self.templateBody = templateBody + self.inputFileBucket = inputFileBucket + self.inputFileKey = inputFileKey + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "roleArn" + case templateBody = "templateBody" + case inputFileBucket = "inputFileBucket" + case inputFileKey = "inputFileKey" + } + } + + public enum LogTargetType: String, CustomStringConvertible, Codable { + case `default` = "DEFAULT" + case thingGroup = "THING_GROUP" + public var description: String { return self.rawValue } + } + + public struct AttachThingPrincipalResponse: AWSShape { + + } + + public struct Job: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "jobExecutionsRolloutConfig", required: false, type: .structure), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "lastUpdatedAt", required: false, type: .timestamp), + AWSShapeMember(label: "targetSelection", required: false, type: .enum), + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "jobArn", required: false, type: .string), + AWSShapeMember(label: "jobProcessDetails", required: false, type: .structure), + AWSShapeMember(label: "presignedUrlConfig", required: false, type: .structure), + AWSShapeMember(label: "documentParameters", required: false, type: .map), + AWSShapeMember(label: "comment", required: false, type: .string), + AWSShapeMember(label: "targets", required: false, type: .list), + AWSShapeMember(label: "completedAt", required: false, type: .timestamp), + AWSShapeMember(label: "jobId", required: false, type: .string) + ] + /// Allows you to create a staged rollout of a job. + public let jobExecutionsRolloutConfig: JobExecutionsRolloutConfig? + /// The time, in milliseconds since the epoch, when the job was created. + public let createdAt: TimeStamp? + /// A short text description of the job. + public let description: String? + /// The time, in milliseconds since the epoch, when the job was last updated. + public let lastUpdatedAt: TimeStamp? + /// Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a device when the thing representing the device is added to a target group, even after the job was completed by all things originally in the group. + public let targetSelection: TargetSelection? + /// The status of the job, one of IN_PROGRESS, CANCELED, or COMPLETED. + public let status: JobStatus? + /// An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId". + public let jobArn: String? + /// Details about the job process. + public let jobProcessDetails: JobProcessDetails? + /// Configuration for pre-signed S3 URLs. + public let presignedUrlConfig: PresignedUrlConfig? + /// The parameters specified for the job document. + public let documentParameters: [String: String]? + /// If the job was updated, describes the reason for the update. + public let comment: String? + /// A list of IoT things and thing groups to which the job should be sent. + public let targets: [String]? + /// The time, in milliseconds since the epoch, when the job was completed. + public let completedAt: TimeStamp? + /// The unique identifier you assigned to this job when it was created. + public let jobId: String? + + public init(jobExecutionsRolloutConfig: JobExecutionsRolloutConfig? = nil, createdAt: TimeStamp? = nil, description: String? = nil, lastUpdatedAt: TimeStamp? = nil, targetSelection: TargetSelection? = nil, status: JobStatus? = nil, jobArn: String? = nil, jobProcessDetails: JobProcessDetails? = nil, presignedUrlConfig: PresignedUrlConfig? = nil, documentParameters: [String: String]? = nil, comment: String? = nil, targets: [String]? = nil, completedAt: TimeStamp? = nil, jobId: String? = nil) { + self.jobExecutionsRolloutConfig = jobExecutionsRolloutConfig + self.createdAt = createdAt + self.description = description + self.lastUpdatedAt = lastUpdatedAt + self.targetSelection = targetSelection + self.status = status + self.jobArn = jobArn + self.jobProcessDetails = jobProcessDetails + self.presignedUrlConfig = presignedUrlConfig + self.documentParameters = documentParameters + self.comment = comment + self.targets = targets + self.completedAt = completedAt + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case jobExecutionsRolloutConfig = "jobExecutionsRolloutConfig" + case createdAt = "createdAt" + case description = "description" + case lastUpdatedAt = "lastUpdatedAt" + case targetSelection = "targetSelection" + case status = "status" + case jobArn = "jobArn" + case jobProcessDetails = "jobProcessDetails" + case presignedUrlConfig = "presignedUrlConfig" + case documentParameters = "documentParameters" + case comment = "comment" + case targets = "targets" + case completedAt = "completedAt" + case jobId = "jobId" + } + } + + public struct DeleteAuthorizerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "authorizerName", location: .uri(locationName: "authorizerName"), required: true, type: .string) + ] + /// The name of the authorizer to delete. + public let authorizerName: String + + public init(authorizerName: String) { + self.authorizerName = authorizerName + } + + private enum CodingKeys: String, CodingKey { + case authorizerName = "authorizerName" + } + } + + public struct DeleteThingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "expectedVersion", location: .querystring(locationName: "expectedVersion"), required: false, type: .long), + AWSShapeMember(label: "thingName", location: .uri(locationName: "thingName"), required: true, type: .string) + ] + /// The expected version of the thing record in the registry. If the version of the record in the registry does not match the expected version specified in the request, the DeleteThing request is rejected with a VersionConflictException. + public let expectedVersion: Int64? + /// The name of the thing to delete. + public let thingName: String + + public init(expectedVersion: Int64? = nil, thingName: String) { + self.expectedVersion = expectedVersion + self.thingName = thingName + } + + private enum CodingKeys: String, CodingKey { + case expectedVersion = "expectedVersion" + case thingName = "thingName" + } + } + + public struct RoleAliasDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "owner", required: false, type: .string), + AWSShapeMember(label: "roleAlias", required: false, type: .string), + AWSShapeMember(label: "creationDate", required: false, type: .timestamp), + AWSShapeMember(label: "credentialDurationSeconds", required: false, type: .integer), + AWSShapeMember(label: "roleArn", required: false, type: .string), + AWSShapeMember(label: "lastModifiedDate", required: false, type: .timestamp) + ] + /// The role alias owner. + public let owner: String? + /// The role alias. + public let roleAlias: String? + /// The UNIX timestamp of when the role alias was created. + public let creationDate: TimeStamp? + /// The number of seconds for which the credential is valid. + public let credentialDurationSeconds: Int32? + /// The role ARN. + public let roleArn: String? + /// The UNIX timestamp of when the role alias was last modified. + public let lastModifiedDate: TimeStamp? + + public init(owner: String? = nil, roleAlias: String? = nil, creationDate: TimeStamp? = nil, credentialDurationSeconds: Int32? = nil, roleArn: String? = nil, lastModifiedDate: TimeStamp? = nil) { + self.owner = owner + self.roleAlias = roleAlias + self.creationDate = creationDate + self.credentialDurationSeconds = credentialDurationSeconds + self.roleArn = roleArn + self.lastModifiedDate = lastModifiedDate + } + + private enum CodingKeys: String, CodingKey { + case owner = "owner" + case roleAlias = "roleAlias" + case creationDate = "creationDate" + case credentialDurationSeconds = "credentialDurationSeconds" + case roleArn = "roleArn" + case lastModifiedDate = "lastModifiedDate" } } diff --git a/Sources/AWSSDKSwift/Services/kinesis-video-archived-media/KinesisVideoArchivedMedia_API.swift b/Sources/AWSSDKSwift/Services/kinesis-video-archived-media/KinesisVideoArchivedMedia_API.swift new file mode 100644 index 00000000000..e84f6b3326f --- /dev/null +++ b/Sources/AWSSDKSwift/Services/kinesis-video-archived-media/KinesisVideoArchivedMedia_API.swift @@ -0,0 +1,38 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** + +*/ +public struct KinesisVideoArchivedMedia { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "kinesisvideo", + serviceProtocol: ServiceProtocol(type: .restjson), + apiVersion: "2017-09-30", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [KinesisVideoArchivedMediaError.self] + ) + } + + /// Gets media for a list of fragments (specified by fragment number) from the archived data in a Kinesis video stream. This operation is only available for the AWS SDK for Java. It is not supported in AWS SDKs for other languages. The following limits apply when using the GetMediaForFragmentList API: A client can call GetMediaForFragmentList up to five times per second per stream. Kinesis Video Streams sends media data at a rate of up to 25 megabytes per second (or 200 megabits per second) during a GetMediaForFragmentList session. + public func getMediaForFragmentList(_ input: GetMediaForFragmentListInput) throws -> GetMediaForFragmentListOutput { + return try client.send(operation: "GetMediaForFragmentList", path: "/getMediaForFragmentList", httpMethod: "POST", input: input) + } + + /// Returns a list of Fragment objects from the specified stream and start location within the archived data. + public func listFragments(_ input: ListFragmentsInput) throws -> ListFragmentsOutput { + return try client.send(operation: "ListFragments", path: "/listFragments", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/kinesis-video-archived-media/KinesisVideoArchivedMedia_Error.swift b/Sources/AWSSDKSwift/Services/kinesis-video-archived-media/KinesisVideoArchivedMedia_Error.swift new file mode 100644 index 00000000000..2f407ee2c25 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/kinesis-video-archived-media/KinesisVideoArchivedMedia_Error.swift @@ -0,0 +1,32 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for KinesisVideoArchivedMedia +public enum KinesisVideoArchivedMediaError: AWSErrorType { + case resourceNotFoundException(message: String?) + case invalidArgumentException(message: String?) + case clientLimitExceededException(message: String?) + case notAuthorizedException(message: String?) +} + +extension KinesisVideoArchivedMediaError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "ResourceNotFoundException": + self = .resourceNotFoundException(message: message) + case "InvalidArgumentException": + self = .invalidArgumentException(message: message) + case "ClientLimitExceededException": + self = .clientLimitExceededException(message: message) + case "NotAuthorizedException": + self = .notAuthorizedException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/kinesis-video-archived-media/KinesisVideoArchivedMedia_Shapes.swift b/Sources/AWSSDKSwift/Services/kinesis-video-archived-media/KinesisVideoArchivedMedia_Shapes.swift new file mode 100644 index 00000000000..f30293b1e17 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/kinesis-video-archived-media/KinesisVideoArchivedMedia_Shapes.swift @@ -0,0 +1,188 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension KinesisVideoArchivedMedia { + + public enum FragmentSelectorType: String, CustomStringConvertible, Codable { + case producerTimestamp = "PRODUCER_TIMESTAMP" + case serverTimestamp = "SERVER_TIMESTAMP" + public var description: String { return self.rawValue } + } + + public struct GetMediaForFragmentListInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Fragments", required: true, type: .list), + AWSShapeMember(label: "StreamName", required: true, type: .string) + ] + /// A list of the numbers of fragments for which to retrieve media. You retrieve these values with ListFragments. + public let fragments: [String] + /// The name of the stream from which to retrieve fragment media. + public let streamName: String + + public init(fragments: [String], streamName: String) { + self.fragments = fragments + self.streamName = streamName + } + + private enum CodingKeys: String, CodingKey { + case fragments = "Fragments" + case streamName = "StreamName" + } + } + + public struct TimestampRange: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTimestamp", required: true, type: .timestamp), + AWSShapeMember(label: "EndTimestamp", required: true, type: .timestamp) + ] + /// The starting time stamp in the range of time stamps for which to return fragments. + public let startTimestamp: TimeStamp + /// The ending time stamp in the range of time stamps for which to return fragments. + public let endTimestamp: TimeStamp + + public init(startTimestamp: TimeStamp, endTimestamp: TimeStamp) { + self.startTimestamp = startTimestamp + self.endTimestamp = endTimestamp + } + + private enum CodingKeys: String, CodingKey { + case startTimestamp = "StartTimestamp" + case endTimestamp = "EndTimestamp" + } + } + + public struct ListFragmentsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamName", required: true, type: .string), + AWSShapeMember(label: "FragmentSelector", required: false, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .long) + ] + /// The name of the stream from which to retrieve a fragment list. + public let streamName: String + /// Describes the time stamp range and time stamp origin for the range of fragments to return. + public let fragmentSelector: FragmentSelector? + /// A token to specify where to start paginating. This is the ListFragmentsOutput$NextToken from a previously truncated response. + public let nextToken: String? + /// The total number of fragments to return. If the total number of fragments available is more than the value specified in max-results, then a ListFragmentsOutput$NextToken is provided in the output that you can use to resume pagination. + public let maxResults: Int64? + + public init(streamName: String, fragmentSelector: FragmentSelector? = nil, nextToken: String? = nil, maxResults: Int64? = nil) { + self.streamName = streamName + self.fragmentSelector = fragmentSelector + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case streamName = "StreamName" + case fragmentSelector = "FragmentSelector" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct FragmentSelector: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FragmentSelectorType", required: true, type: .enum), + AWSShapeMember(label: "TimestampRange", required: true, type: .structure) + ] + /// The origin of the time stamps to use (Server or Producer). + public let fragmentSelectorType: FragmentSelectorType + /// The range of time stamps to return. + public let timestampRange: TimestampRange + + public init(fragmentSelectorType: FragmentSelectorType, timestampRange: TimestampRange) { + self.fragmentSelectorType = fragmentSelectorType + self.timestampRange = timestampRange + } + + private enum CodingKeys: String, CodingKey { + case fragmentSelectorType = "FragmentSelectorType" + case timestampRange = "TimestampRange" + } + } + + public struct ListFragmentsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Fragments", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of fragment numbers that correspond to the time stamp range provided. + public let fragments: [Fragment]? + /// If the returned list is truncated, the operation returns this token to use to retrieve the next page of results. This value is null when there are no more results to return. + public let nextToken: String? + + public init(fragments: [Fragment]? = nil, nextToken: String? = nil) { + self.fragments = fragments + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case fragments = "Fragments" + case nextToken = "NextToken" + } + } + + public struct Fragment: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProducerTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "FragmentSizeInBytes", required: false, type: .long), + AWSShapeMember(label: "ServerTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "FragmentLengthInMilliseconds", required: false, type: .long), + AWSShapeMember(label: "FragmentNumber", required: false, type: .string) + ] + /// The time stamp from the producer corresponding to the fragment. + public let producerTimestamp: TimeStamp? + /// The total fragment size, including information about the fragment and contained media data. + public let fragmentSizeInBytes: Int64? + /// The time stamp from the AWS server corresponding to the fragment. + public let serverTimestamp: TimeStamp? + /// The playback duration or other time value associated with the fragment. + public let fragmentLengthInMilliseconds: Int64? + /// The index value of the fragment. + public let fragmentNumber: String? + + public init(producerTimestamp: TimeStamp? = nil, fragmentSizeInBytes: Int64? = nil, serverTimestamp: TimeStamp? = nil, fragmentLengthInMilliseconds: Int64? = nil, fragmentNumber: String? = nil) { + self.producerTimestamp = producerTimestamp + self.fragmentSizeInBytes = fragmentSizeInBytes + self.serverTimestamp = serverTimestamp + self.fragmentLengthInMilliseconds = fragmentLengthInMilliseconds + self.fragmentNumber = fragmentNumber + } + + private enum CodingKeys: String, CodingKey { + case producerTimestamp = "ProducerTimestamp" + case fragmentSizeInBytes = "FragmentSizeInBytes" + case serverTimestamp = "ServerTimestamp" + case fragmentLengthInMilliseconds = "FragmentLengthInMilliseconds" + case fragmentNumber = "FragmentNumber" + } + } + + public struct GetMediaForFragmentListOutput: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "Payload" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContentType", location: .header(locationName: "Content-Type"), required: false, type: .string), + AWSShapeMember(label: "Payload", required: false, type: .blob) + ] + /// The content type of the requested media. + public let contentType: String? + /// The payload that Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information about the chunks, see PutMedia. The chunks that Kinesis Video Streams returns in the GetMediaForFragmentList call also include the following additional Matroska (MKV) tags: AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk. AWS_KINESISVIDEO_SERVER_SIDE_TIMESTAMP - Server-side time stamp of the fragment. AWS_KINESISVIDEO_PRODUCER_SIDE_TIMESTAMP - Producer-side time stamp of the fragment. The following tags will be included if an exception occurs: AWS_KINESISVIDEO_FRAGMENT_NUMBER - The number of the fragment that threw the exception AWS_KINESISVIDEO_EXCEPTION_ERROR_CODE - The integer code of the exception AWS_KINESISVIDEO_EXCEPTION_MESSAGE - A text description of the exception + public let payload: Data? + + public init(contentType: String? = nil, payload: Data? = nil) { + self.contentType = contentType + self.payload = payload + } + + private enum CodingKeys: String, CodingKey { + case contentType = "Content-Type" + case payload = "Payload" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/kinesis-video-media/KinesisVideoMedia_API.swift b/Sources/AWSSDKSwift/Services/kinesis-video-media/KinesisVideoMedia_API.swift new file mode 100644 index 00000000000..31061cdbd93 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/kinesis-video-media/KinesisVideoMedia_API.swift @@ -0,0 +1,33 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** + +*/ +public struct KinesisVideoMedia { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "kinesisvideo", + serviceProtocol: ServiceProtocol(type: .restjson), + apiVersion: "2017-09-30", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [KinesisVideoMediaError.self] + ) + } + + /// Use this API to retrieve media content from a Kinesis video stream. In the request, you identify stream name or stream Amazon Resource Name (ARN), and the starting chunk. Kinesis Video Streams then returns a stream of chunks in order by fragment number. You must first call the GetDataEndpoint API to get an endpoint to which you can then send the GetMedia requests. When you put media data (fragments) on a stream, Kinesis Video Streams stores each incoming fragment and related metadata in what is called a "chunk." For more information, see . The GetMedia API returns a stream of these chunks starting from the chunk that you specify in the request. The following limits apply when using the GetMedia API: A client can call GetMedia up to five times per second per stream. Kinesis Video Streams sends media data at a rate of up to 25 megabytes per second (or 200 megabits per second) during a GetMedia session. + public func getMedia(_ input: GetMediaInput) throws -> GetMediaOutput { + return try client.send(operation: "GetMedia", path: "/getMedia", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/kinesis-video-media/KinesisVideoMedia_Error.swift b/Sources/AWSSDKSwift/Services/kinesis-video-media/KinesisVideoMedia_Error.swift new file mode 100644 index 00000000000..a8e88cf2861 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/kinesis-video-media/KinesisVideoMedia_Error.swift @@ -0,0 +1,38 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for KinesisVideoMedia +public enum KinesisVideoMediaError: AWSErrorType { + case resourceNotFoundException(message: String?) + case notAuthorizedException(message: String?) + case invalidEndpointException(message: String?) + case clientLimitExceededException(message: String?) + case connectionLimitExceededException(message: String?) + case invalidArgumentException(message: String?) +} + +extension KinesisVideoMediaError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "ResourceNotFoundException": + self = .resourceNotFoundException(message: message) + case "NotAuthorizedException": + self = .notAuthorizedException(message: message) + case "InvalidEndpointException": + self = .invalidEndpointException(message: message) + case "ClientLimitExceededException": + self = .clientLimitExceededException(message: message) + case "ConnectionLimitExceededException": + self = .connectionLimitExceededException(message: message) + case "InvalidArgumentException": + self = .invalidArgumentException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/kinesis-video-media/KinesisVideoMedia_Shapes.swift b/Sources/AWSSDKSwift/Services/kinesis-video-media/KinesisVideoMedia_Shapes.swift new file mode 100644 index 00000000000..2aa4801a43f --- /dev/null +++ b/Sources/AWSSDKSwift/Services/kinesis-video-media/KinesisVideoMedia_Shapes.swift @@ -0,0 +1,98 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension KinesisVideoMedia { + + public enum StartSelectorType: String, CustomStringConvertible, Codable { + case fragmentNumber = "FRAGMENT_NUMBER" + case serverTimestamp = "SERVER_TIMESTAMP" + case producerTimestamp = "PRODUCER_TIMESTAMP" + case now = "NOW" + case earliest = "EARLIEST" + case continuationToken = "CONTINUATION_TOKEN" + public var description: String { return self.rawValue } + } + + public struct GetMediaOutput: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "Payload" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContentType", location: .header(locationName: "Content-Type"), required: false, type: .string), + AWSShapeMember(label: "Payload", required: false, type: .blob) + ] + /// The content type of the requested media. + public let contentType: String? + /// The payload Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information about the chunks, see . The chunks that Kinesis Video Streams returns in the GetMedia call also include the following additional Matroska (MKV) tags: AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event your GetMedia call terminates, you can use this continuation token in your next request to get the next chunk where the last request terminated. AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 string) - Client applications can use this tag value to determine how far behind the chunk returned in the response is from the latest chunk on the stream. AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk. AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server time stamp of the fragment. AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer time stamp of the fragment. The following tags will be present if an error occurs: AWS_KINESISVIDEO_ERROR_CODE - String description of an error that caused GetMedia to stop. AWS_KINESISVIDEO_ERROR_ID: Integer code of the error. The error codes are as follows: 3002 - Error writing to the stream 4000 - Requested fragment is not found 4500 - Access denied for the stream's KMS key 4501 - Stream's KMS key is disabled 4502 - Validation error on the Stream's KMS key 4503 - KMS key specified in the stream is unavailable 4504 - Invalid usage of the KMS key specified in the stream 4505 - Invalid state of the KMS key specified in the stream 4506 - Unable to find the KMS key specified in the stream 5000 - Internal error + public let payload: Data? + + public init(contentType: String? = nil, payload: Data? = nil) { + self.contentType = contentType + self.payload = payload + } + + private enum CodingKeys: String, CodingKey { + case contentType = "Content-Type" + case payload = "Payload" + } + } + + public struct GetMediaInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamARN", required: false, type: .string), + AWSShapeMember(label: "StartSelector", required: true, type: .structure), + AWSShapeMember(label: "StreamName", required: false, type: .string) + ] + /// The ARN of the stream from where you want to get the media content. If you don't specify the streamARN, you must specify the streamName. + public let streamARN: String? + /// Identifies the starting chunk to get from the specified stream. + public let startSelector: StartSelector + /// The Kinesis video stream name from where you want to get the media content. If you don't specify the streamName, you must specify the streamARN. + public let streamName: String? + + public init(streamARN: String? = nil, startSelector: StartSelector, streamName: String? = nil) { + self.streamARN = streamARN + self.startSelector = startSelector + self.streamName = streamName + } + + private enum CodingKeys: String, CodingKey { + case streamARN = "StreamARN" + case startSelector = "StartSelector" + case streamName = "StreamName" + } + } + + public struct StartSelector: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContinuationToken", required: false, type: .string), + AWSShapeMember(label: "AfterFragmentNumber", required: false, type: .string), + AWSShapeMember(label: "StartTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "StartSelectorType", required: true, type: .enum) + ] + /// Continuation token that Kinesis Video Streams returned in the previous GetMedia response. The GetMedia API then starts with the chunk identified by the continuation token. + public let continuationToken: String? + /// Specifies the fragment number from where you want the GetMedia API to start returning the fragments. + public let afterFragmentNumber: String? + /// A time stamp value. This value is required if you choose the PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the startSelectorType. The GetMedia API then starts with the chunk containing the fragment that has the specified time stamp. + public let startTimestamp: TimeStamp? + /// Identifies the fragment on the Kinesis video stream where you want to start getting the data from. NOW - Start with the latest chunk on the stream. EARLIEST - Start with earliest available chunk on the stream. FRAGMENT_NUMBER - Start with the chunk containing the specific fragment. You must also specify the StartFragmentNumber. PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk containing a fragment with the specified producer or server time stamp. You specify the time stamp by adding StartTimestamp. CONTINUATION_TOKEN - Read using the specified continuation token. If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the startSelectorType, you don't provide any additional information in the startSelector. + public let startSelectorType: StartSelectorType + + public init(continuationToken: String? = nil, afterFragmentNumber: String? = nil, startTimestamp: TimeStamp? = nil, startSelectorType: StartSelectorType) { + self.continuationToken = continuationToken + self.afterFragmentNumber = afterFragmentNumber + self.startTimestamp = startTimestamp + self.startSelectorType = startSelectorType + } + + private enum CodingKeys: String, CodingKey { + case continuationToken = "ContinuationToken" + case afterFragmentNumber = "AfterFragmentNumber" + case startTimestamp = "StartTimestamp" + case startSelectorType = "StartSelectorType" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/kinesis/Kinesis_API.swift b/Sources/AWSSDKSwift/Services/kinesis/Kinesis_API.swift index 2ad9a82d764..faa3fec5c96 100644 --- a/Sources/AWSSDKSwift/Services/kinesis/Kinesis_API.swift +++ b/Sources/AWSSDKSwift/Services/kinesis/Kinesis_API.swift @@ -25,100 +25,115 @@ public struct Kinesis { ) } - /// Gets an Amazon Kinesis shard iterator. A shard iterator expires five minutes after it is returned to the requester. A shard iterator specifies the shard position from which to start reading data records sequentially. The position is specified using the sequence number of a data record in a shard. A sequence number is the identifier associated with every record ingested in the stream, and is assigned when a record is put into the stream. Each stream has one or more shards. You must specify the shard iterator type. For example, you can set the ShardIteratorType parameter to read exactly from the position denoted by a specific sequence number by using the AT_SEQUENCE_NUMBER shard iterator type, or right after the sequence number by using the AFTER_SEQUENCE_NUMBER shard iterator type, using sequence numbers returned by earlier calls to PutRecord, PutRecords, GetRecords, or DescribeStream. In the request, you can specify the shard iterator type AT_TIMESTAMP to read records from an arbitrary point in time, TRIM_HORIZON to cause ShardIterator to point to the last untrimmed record in the shard in the system (the oldest data record in the shard), or LATEST so that you always read the most recent data in the shard. When you read repeatedly from a stream, use a GetShardIterator request to get the first shard iterator for use in your first GetRecords request and for subsequent reads use the shard iterator returned by the GetRecords request in NextShardIterator. A new shard iterator is returned by every GetRecords request in NextShardIterator, which you use in the ShardIterator parameter of the next GetRecords request. If a GetShardIterator request is made too often, you receive a ProvisionedThroughputExceededException. For more information about throughput limits, see GetRecords, and Streams Limits in the Amazon Kinesis Streams Developer Guide. If the shard is closed, GetShardIterator returns a valid iterator for the last sequence number of the shard. Note that a shard can be closed as a result of using SplitShard or MergeShards. GetShardIterator has a limit of 5 transactions per second per account per open shard. + /// Gets an Amazon Kinesis shard iterator. A shard iterator expires five minutes after it is returned to the requester. A shard iterator specifies the shard position from which to start reading data records sequentially. The position is specified using the sequence number of a data record in a shard. A sequence number is the identifier associated with every record ingested in the stream, and is assigned when a record is put into the stream. Each stream has one or more shards. You must specify the shard iterator type. For example, you can set the ShardIteratorType parameter to read exactly from the position denoted by a specific sequence number by using the AT_SEQUENCE_NUMBER shard iterator type. Alternatively, the parameter can read right after the sequence number by using the AFTER_SEQUENCE_NUMBER shard iterator type, using sequence numbers returned by earlier calls to PutRecord, PutRecords, GetRecords, or DescribeStream. In the request, you can specify the shard iterator type AT_TIMESTAMP to read records from an arbitrary point in time, TRIM_HORIZON to cause ShardIterator to point to the last untrimmed record in the shard in the system (the oldest data record in the shard), or LATEST so that you always read the most recent data in the shard. When you read repeatedly from a stream, use a GetShardIterator request to get the first shard iterator for use in your first GetRecords request and for subsequent reads use the shard iterator returned by the GetRecords request in NextShardIterator. A new shard iterator is returned by every GetRecords request in NextShardIterator, which you use in the ShardIterator parameter of the next GetRecords request. If a GetShardIterator request is made too often, you receive a ProvisionedThroughputExceededException. For more information about throughput limits, see GetRecords, and Streams Limits in the Amazon Kinesis Streams Developer Guide. If the shard is closed, GetShardIterator returns a valid iterator for the last sequence number of the shard. A shard can be closed as a result of using SplitShard or MergeShards. GetShardIterator has a limit of 5 transactions per second per account per open shard. public func getShardIterator(_ input: GetShardIteratorInput) throws -> GetShardIteratorOutput { return try client.send(operation: "GetShardIterator", path: "/", httpMethod: "POST", input: input) } - /// Describes the specified Amazon Kinesis stream. The information returned includes the stream name, Amazon Resource Name (ARN), creation time, enhanced metric configuration, and shard map. The shard map is an array of shard objects. For each shard object, there is the hash key and sequence number ranges that the shard spans, and the IDs of any earlier shards that played in a role in creating the shard. Every record ingested in the stream is identified by a sequence number, which is assigned when the record is put into the stream. You can limit the number of shards returned by each call. For more information, see Retrieving Shards from a Stream in the Amazon Kinesis Streams Developer Guide. There are no guarantees about the chronological order shards returned. To process shards in chronological order, use the ID of the parent shard to track the lineage to the oldest shard. This operation has a limit of 10 transactions per second per account. + /// Describes the specified Kinesis stream. The information returned includes the stream name, Amazon Resource Name (ARN), creation time, enhanced metric configuration, and shard map. The shard map is an array of shard objects. For each shard object, there is the hash key and sequence number ranges that the shard spans, and the IDs of any earlier shards that played in a role in creating the shard. Every record ingested in the stream is identified by a sequence number, which is assigned when the record is put into the stream. You can limit the number of shards returned by each call. For more information, see Retrieving Shards from a Stream in the Amazon Kinesis Streams Developer Guide. There are no guarantees about the chronological order shards returned. To process shards in chronological order, use the ID of the parent shard to track the lineage to the oldest shard. This operation has a limit of 10 transactions per second per account. public func describeStream(_ input: DescribeStreamInput) throws -> DescribeStreamOutput { return try client.send(operation: "DescribeStream", path: "/", httpMethod: "POST", input: input) } - /// Decreases the Amazon Kinesis stream's retention period, which is the length of time data records are accessible after they are added to the stream. The minimum value of a stream's retention period is 24 hours. This operation may result in lost data. For example, if the stream's retention period is 48 hours and is decreased to 24 hours, any data already in the stream that is older than 24 hours is inaccessible. + /// Decreases the Kinesis stream's retention period, which is the length of time data records are accessible after they are added to the stream. The minimum value of a stream's retention period is 24 hours. This operation may result in lost data. For example, if the stream's retention period is 48 hours and is decreased to 24 hours, any data already in the stream that is older than 24 hours is inaccessible. public func decreaseStreamRetentionPeriod(_ input: DecreaseStreamRetentionPeriodInput) throws { _ = try client.send(operation: "DecreaseStreamRetentionPeriod", path: "/", httpMethod: "POST", input: input) } - /// Increases the Amazon Kinesis stream's retention period, which is the length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 168 hours (7 days). Upon choosing a longer stream retention period, this operation will increase the time period records are accessible that have not yet expired. However, it will not make previous data that has expired (older than the stream's previous retention period) accessible after the operation has been called. For example, if a stream's retention period is set to 24 hours and is increased to 168 hours, any data that is older than 24 hours will remain inaccessible to consumer applications. + /// Increases the Amazon Kinesis stream's retention period, which is the length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 168 hours (7 days). If you choose a longer stream retention period, this operation increases the time period during which records that have not yet expired are accessible. However, it does not make previous, expired data (older than the stream's previous retention period) accessible after the operation has been called. For example, if a stream's retention period is set to 24 hours and is increased to 168 hours, any data that is older than 24 hours remains inaccessible to consumer applications. public func increaseStreamRetentionPeriod(_ input: IncreaseStreamRetentionPeriodInput) throws { _ = try client.send(operation: "IncreaseStreamRetentionPeriod", path: "/", httpMethod: "POST", input: input) } - /// Merges two adjacent shards in an Amazon Kinesis stream and combines them into a single shard to reduce the stream's capacity to ingest and transport data. Two shards are considered adjacent if the union of the hash key ranges for the two shards form a contiguous set with no gaps. For example, if you have two shards, one with a hash key range of 276...381 and the other with a hash key range of 382...454, then you could merge these two shards into a single shard that would have a hash key range of 276...454. After the merge, the single child shard receives data for all hash key values covered by the two parent shards. MergeShards is called when there is a need to reduce the overall capacity of a stream because of excess capacity that is not being used. You must specify the shard to be merged and the adjacent shard for a stream. For more information about merging shards, see Merge Two Shards in the Amazon Kinesis Streams Developer Guide. If the stream is in the ACTIVE state, you can call MergeShards. If a stream is in the CREATING, UPDATING, or DELETING state, MergeShards returns a ResourceInUseException. If the specified stream does not exist, MergeShards returns a ResourceNotFoundException. You can use DescribeStream to check the state of the stream, which is returned in StreamStatus. MergeShards is an asynchronous operation. Upon receiving a MergeShards request, Amazon Kinesis immediately returns a response and sets the StreamStatus to UPDATING. After the operation is completed, Amazon Kinesis sets the StreamStatus to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state. You use DescribeStream to determine the shard IDs that are specified in the MergeShards request. If you try to operate on too many streams in parallel using CreateStream, DeleteStream, MergeShards or SplitShard, you will receive a LimitExceededException. MergeShards has limit of 5 transactions per second per account. - public func mergeShards(_ input: MergeShardsInput) throws { - _ = try client.send(operation: "MergeShards", path: "/", httpMethod: "POST", input: input) + /// Provides a summarized description of the specified Kinesis stream without the shard list. The information returned includes the stream name, Amazon Resource Name (ARN), status, record retention period, approximate creation time, monitoring, encryption details, and open shard count. + public func describeStreamSummary(_ input: DescribeStreamSummaryInput) throws -> DescribeStreamSummaryOutput { + return try client.send(operation: "DescribeStreamSummary", path: "/", httpMethod: "POST", input: input) } - /// Writes a single data record into an Amazon Kinesis stream. Call PutRecord to send data into the stream for real-time ingestion and subsequent processing, one record at a time. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second. You must specify the name of the stream that captures, stores, and transports the data; a partition key; and the data blob itself. The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on. The partition key is used by Amazon Kinesis to distribute data across shards. Amazon Kinesis segregates the data records that belong to a stream into multiple shards, using the partition key associated with each data record to determine which shard a given data record belongs to. Partition keys are Unicode strings, with a maximum length limit of 256 characters for each key. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards using the hash key ranges of the shards. You can override hashing the partition key to determine the shard by explicitly specifying a hash value using the ExplicitHashKey parameter. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide. PutRecord returns the shard ID of where the data record was placed and the sequence number that was assigned to the data record. Sequence numbers increase over time and are specific to a shard within a stream, not across all shards within a stream. To guarantee strictly increasing ordering, write serially to a shard and use the SequenceNumberForOrdering parameter. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide. If a PutRecord request cannot be processed because of insufficient provisioned throughput on the shard involved in the request, PutRecord throws ProvisionedThroughputExceededException. Data records are accessible for only 24 hours from the time that they are added to a stream. + /// Writes a single data record into an Amazon Kinesis stream. Call PutRecord to send data into the stream for real-time ingestion and subsequent processing, one record at a time. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second. You must specify the name of the stream that captures, stores, and transports the data; a partition key; and the data blob itself. The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on. The partition key is used by Kinesis Streams to distribute data across shards. Kinesis Streams segregates the data records that belong to a stream into multiple shards, using the partition key associated with each data record to determine the shard to which a given data record belongs. Partition keys are Unicode strings, with a maximum length limit of 256 characters for each key. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards using the hash key ranges of the shards. You can override hashing the partition key to determine the shard by explicitly specifying a hash value using the ExplicitHashKey parameter. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide. PutRecord returns the shard ID of where the data record was placed and the sequence number that was assigned to the data record. Sequence numbers increase over time and are specific to a shard within a stream, not across all shards within a stream. To guarantee strictly increasing ordering, write serially to a shard and use the SequenceNumberForOrdering parameter. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide. If a PutRecord request cannot be processed because of insufficient provisioned throughput on the shard involved in the request, PutRecord throws ProvisionedThroughputExceededException. By default, data records are accessible for 24 hours from the time that they are added to a stream. You can use IncreaseStreamRetentionPeriod or DecreaseStreamRetentionPeriod to modify this retention period. public func putRecord(_ input: PutRecordInput) throws -> PutRecordOutput { return try client.send(operation: "PutRecord", path: "/", httpMethod: "POST", input: input) } - /// Lists your Amazon Kinesis streams. The number of streams may be too large to return from a single call to ListStreams. You can limit the number of returned streams using the Limit parameter. If you do not specify a value for the Limit parameter, Amazon Kinesis uses the default limit, which is currently 10. You can detect if there are more streams available to list by using the HasMoreStreams flag from the returned output. If there are more streams available, you can request more streams by using the name of the last stream returned by the ListStreams request in the ExclusiveStartStreamName parameter in a subsequent request to ListStreams. The group of stream names returned by the subsequent request is then added to the list. You can continue this process until all the stream names have been collected in the list. ListStreams has a limit of 5 transactions per second per account. + /// Merges two adjacent shards in a Kinesis stream and combines them into a single shard to reduce the stream's capacity to ingest and transport data. Two shards are considered adjacent if the union of the hash key ranges for the two shards form a contiguous set with no gaps. For example, if you have two shards, one with a hash key range of 276...381 and the other with a hash key range of 382...454, then you could merge these two shards into a single shard that would have a hash key range of 276...454. After the merge, the single child shard receives data for all hash key values covered by the two parent shards. MergeShards is called when there is a need to reduce the overall capacity of a stream because of excess capacity that is not being used. You must specify the shard to be merged and the adjacent shard for a stream. For more information about merging shards, see Merge Two Shards in the Amazon Kinesis Streams Developer Guide. If the stream is in the ACTIVE state, you can call MergeShards. If a stream is in the CREATING, UPDATING, or DELETING state, MergeShards returns a ResourceInUseException. If the specified stream does not exist, MergeShards returns a ResourceNotFoundException. You can use DescribeStream to check the state of the stream, which is returned in StreamStatus. MergeShards is an asynchronous operation. Upon receiving a MergeShards request, Amazon Kinesis immediately returns a response and sets the StreamStatus to UPDATING. After the operation is completed, Amazon Kinesis sets the StreamStatus to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state. You use DescribeStream to determine the shard IDs that are specified in the MergeShards request. If you try to operate on too many streams in parallel using CreateStream, DeleteStream, MergeShards or SplitShard, you will receive a LimitExceededException. MergeShards has a limit of 5 transactions per second per account. + public func mergeShards(_ input: MergeShardsInput) throws { + _ = try client.send(operation: "MergeShards", path: "/", httpMethod: "POST", input: input) + } + + /// Lists your Kinesis streams. The number of streams may be too large to return from a single call to ListStreams. You can limit the number of returned streams using the Limit parameter. If you do not specify a value for the Limit parameter, Kinesis Streams uses the default limit, which is currently 10. You can detect if there are more streams available to list by using the HasMoreStreams flag from the returned output. If there are more streams available, you can request more streams by using the name of the last stream returned by the ListStreams request in the ExclusiveStartStreamName parameter in a subsequent request to ListStreams. The group of stream names returned by the subsequent request is then added to the list. You can continue this process until all the stream names have been collected in the list. ListStreams has a limit of 5 transactions per second per account. public func listStreams(_ input: ListStreamsInput) throws -> ListStreamsOutput { return try client.send(operation: "ListStreams", path: "/", httpMethod: "POST", input: input) } - /// Creates an Amazon Kinesis stream. A stream captures and transports data records that are continuously emitted from different data sources or producers. Scale-out within a stream is explicitly supported by means of shards, which are uniquely identified groups of data records in a stream. You specify and control the number of shards that a stream is composed of. Each shard can support reads up to 5 transactions per second, up to a maximum data read total of 2 MB per second. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second. You can add shards to a stream if the amount of data input increases and you can remove shards if the amount of data input decreases. The stream name identifies the stream. The name is scoped to the AWS account used by the application. It is also scoped by region. That is, two streams in two different accounts can have the same name, and two streams in the same account, but in two different regions, can have the same name. CreateStream is an asynchronous operation. Upon receiving a CreateStream request, Amazon Kinesis immediately returns and sets the stream status to CREATING. After the stream is created, Amazon Kinesis sets the stream status to ACTIVE. You should perform read and write operations only on an ACTIVE stream. You receive a LimitExceededException when making a CreateStream request if you try to do one of the following: Have more than five streams in the CREATING state at any point in time. Create more shards than are authorized for your account. For the default shard limit for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. If you need to increase this limit, contact AWS Support. You can use DescribeStream to check the stream status, which is returned in StreamStatus. CreateStream has a limit of 5 transactions per second per account. - public func createStream(_ input: CreateStreamInput) throws { - _ = try client.send(operation: "CreateStream", path: "/", httpMethod: "POST", input: input) + /// Enables or updates server-side encryption using an AWS KMS key for a specified stream. Starting encryption is an asynchronous operation. Upon receiving the request, Kinesis Streams returns immediately and sets the status of the stream to UPDATING. After the update is complete, Kinesis Streams sets the status of the stream back to ACTIVE. Updating or applying encryption normally takes a few seconds to complete, but it can take minutes. You can continue to read and write data to your stream while its status is UPDATING. Once the status of the stream is ACTIVE, encryption begins for records written to the stream. API Limits: You can successfully apply a new AWS KMS key for server-side encryption 25 times in a rolling 24-hour period. Note: It can take up to five seconds after the stream is in an ACTIVE status before all records written to the stream are encrypted. After you enable encryption, you can verify that encryption is applied by inspecting the API response from PutRecord or PutRecords. + public func startStreamEncryption(_ input: StartStreamEncryptionInput) throws { + _ = try client.send(operation: "StartStreamEncryption", path: "/", httpMethod: "POST", input: input) } - /// Removes tags from the specified Amazon Kinesis stream. Removed tags are deleted and cannot be recovered after this operation successfully completes. If you specify a tag that does not exist, it is ignored. + /// Removes tags from the specified Kinesis stream. Removed tags are deleted and cannot be recovered after this operation successfully completes. If you specify a tag that does not exist, it is ignored. public func removeTagsFromStream(_ input: RemoveTagsFromStreamInput) throws { _ = try client.send(operation: "RemoveTagsFromStream", path: "/", httpMethod: "POST", input: input) } - /// Gets data records from an Amazon Kinesis stream's shard. Specify a shard iterator using the ShardIterator parameter. The shard iterator specifies the position in the shard from which you want to start reading data records sequentially. If there are no records available in the portion of the shard that the iterator points to, GetRecords returns an empty list. Note that it might take multiple calls to get to a portion of the shard that contains records. You can scale by provisioning multiple shards per stream while considering service limits (for more information, see Streams Limits in the Amazon Kinesis Streams Developer Guide). Your application should have one thread per shard, each reading continuously from its stream. To read from a stream continually, call GetRecords in a loop. Use GetShardIterator to get the shard iterator to specify in the first GetRecords call. GetRecords returns a new shard iterator in NextShardIterator. Specify the shard iterator returned in NextShardIterator in subsequent calls to GetRecords. Note that if the shard has been closed, the shard iterator can't return more data and GetRecords returns null in NextShardIterator. You can terminate the loop when the shard is closed, or when the shard iterator reaches the record with the sequence number or other attribute that marks it as the last record to process. Each data record can be up to 1 MB in size, and each shard can read up to 2 MB per second. You can ensure that your calls don't exceed the maximum supported size or throughput by using the Limit parameter to specify the maximum number of records that GetRecords can return. Consider your average record size when determining this limit. The size of the data returned by GetRecords varies depending on the utilization of the shard. The maximum size of data that GetRecords can return is 10 MB. If a call returns this amount of data, subsequent calls made within the next 5 seconds throw ProvisionedThroughputExceededException. If there is insufficient provisioned throughput on the shard, subsequent calls made within the next 1 second throw ProvisionedThroughputExceededException. Note that GetRecords won't return any data when it throws an exception. For this reason, we recommend that you wait one second between calls to GetRecords; however, it's possible that the application will get exceptions for longer than 1 second. To detect whether the application is falling behind in processing, you can use the MillisBehindLatest response attribute. You can also monitor the stream using CloudWatch metrics and other mechanisms (see Monitoring in the Amazon Kinesis Streams Developer Guide). Each Amazon Kinesis record includes a value, ApproximateArrivalTimestamp, that is set when a stream successfully receives and stores a record. This is commonly referred to as a server-side timestamp, whereas a client-side timestamp is set when a data producer creates or sends the record to a stream (a data producer is any data source putting data records into a stream, for example with PutRecords). The timestamp has millisecond precision. There are no guarantees about the timestamp accuracy, or that the timestamp is always increasing. For example, records in a shard or across a stream might have timestamps that are out of order. + /// Disables server-side encryption for a specified stream. Stopping encryption is an asynchronous operation. Upon receiving the request, Kinesis Streams returns immediately and sets the status of the stream to UPDATING. After the update is complete, Kinesis Streams sets the status of the stream back to ACTIVE. Stopping encryption normally takes a few seconds to complete, but it can take minutes. You can continue to read and write data to your stream while its status is UPDATING. Once the status of the stream is ACTIVE, records written to the stream are no longer encrypted by Kinesis Streams. API Limits: You can successfully disable server-side encryption 25 times in a rolling 24-hour period. Note: It can take up to five seconds after the stream is in an ACTIVE status before all records written to the stream are no longer subject to encryption. After you disabled encryption, you can verify that encryption is not applied by inspecting the API response from PutRecord or PutRecords. + public func stopStreamEncryption(_ input: StopStreamEncryptionInput) throws { + _ = try client.send(operation: "StopStreamEncryption", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a Kinesis stream. A stream captures and transports data records that are continuously emitted from different data sources or producers. Scale-out within a stream is explicitly supported by means of shards, which are uniquely identified groups of data records in a stream. You specify and control the number of shards that a stream is composed of. Each shard can support reads up to 5 transactions per second, up to a maximum data read total of 2 MB per second. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second. I the amount of data input increases or decreases, you can add or remove shards. The stream name identifies the stream. The name is scoped to the AWS account used by the application. It is also scoped by region. That is, two streams in two different accounts can have the same name, and two streams in the same account, but in two different regions, can have the same name. CreateStream is an asynchronous operation. Upon receiving a CreateStream request, Kinesis Streams immediately returns and sets the stream status to CREATING. After the stream is created, Kinesis Streams sets the stream status to ACTIVE. You should perform read and write operations only on an ACTIVE stream. You receive a LimitExceededException when making a CreateStream request when you try to do one of the following: Have more than five streams in the CREATING state at any point in time. Create more shards than are authorized for your account. For the default shard limit for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. To increase this limit, contact AWS Support. You can use DescribeStream to check the stream status, which is returned in StreamStatus. CreateStream has a limit of 5 transactions per second per account. + public func createStream(_ input: CreateStreamInput) throws { + _ = try client.send(operation: "CreateStream", path: "/", httpMethod: "POST", input: input) + } + + /// Gets data records from a Kinesis stream's shard. Specify a shard iterator using the ShardIterator parameter. The shard iterator specifies the position in the shard from which you want to start reading data records sequentially. If there are no records available in the portion of the shard that the iterator points to, GetRecords returns an empty list. It might take multiple calls to get to a portion of the shard that contains records. You can scale by provisioning multiple shards per stream while considering service limits (for more information, see Streams Limits in the Amazon Kinesis Streams Developer Guide). Your application should have one thread per shard, each reading continuously from its stream. To read from a stream continually, call GetRecords in a loop. Use GetShardIterator to get the shard iterator to specify in the first GetRecords call. GetRecords returns a new shard iterator in NextShardIterator. Specify the shard iterator returned in NextShardIterator in subsequent calls to GetRecords. If the shard has been closed, the shard iterator can't return more data and GetRecords returns null in NextShardIterator. You can terminate the loop when the shard is closed, or when the shard iterator reaches the record with the sequence number or other attribute that marks it as the last record to process. Each data record can be up to 1 MB in size, and each shard can read up to 2 MB per second. You can ensure that your calls don't exceed the maximum supported size or throughput by using the Limit parameter to specify the maximum number of records that GetRecords can return. Consider your average record size when determining this limit. The size of the data returned by GetRecords varies depending on the utilization of the shard. The maximum size of data that GetRecords can return is 10 MB. If a call returns this amount of data, subsequent calls made within the next 5 seconds throw ProvisionedThroughputExceededException. If there is insufficient provisioned throughput on the shard, subsequent calls made within the next 1 second throw ProvisionedThroughputExceededException. GetRecords won't return any data when it throws an exception. For this reason, we recommend that you wait one second between calls to GetRecords; however, it's possible that the application will get exceptions for longer than 1 second. To detect whether the application is falling behind in processing, you can use the MillisBehindLatest response attribute. You can also monitor the stream using CloudWatch metrics and other mechanisms (see Monitoring in the Amazon Kinesis Streams Developer Guide). Each Amazon Kinesis record includes a value, ApproximateArrivalTimestamp, that is set when a stream successfully receives and stores a record. This is commonly referred to as a server-side time stamp, whereas a client-side time stamp is set when a data producer creates or sends the record to a stream (a data producer is any data source putting data records into a stream, for example with PutRecords). The time stamp has millisecond precision. There are no guarantees about the time stamp accuracy, or that the time stamp is always increasing. For example, records in a shard or across a stream might have time stamps that are out of order. public func getRecords(_ input: GetRecordsInput) throws -> GetRecordsOutput { return try client.send(operation: "GetRecords", path: "/", httpMethod: "POST", input: input) } - /// Splits a shard into two new shards in the Amazon Kinesis stream to increase the stream's capacity to ingest and transport data. SplitShard is called when there is a need to increase the overall capacity of a stream because of an expected increase in the volume of data records being ingested. You can also use SplitShard when a shard appears to be approaching its maximum utilization; for example, the producers sending data into the specific shard are suddenly sending more than previously anticipated. You can also call SplitShard to increase stream capacity, so that more Amazon Kinesis applications can simultaneously read data from the stream for real-time processing. You must specify the shard to be split and the new hash key, which is the position in the shard where the shard gets split in two. In many cases, the new hash key might simply be the average of the beginning and ending hash key, but it can be any hash key value in the range being mapped into the shard. For more information about splitting shards, see Split a Shard in the Amazon Kinesis Streams Developer Guide. You can use DescribeStream to determine the shard ID and hash key values for the ShardToSplit and NewStartingHashKey parameters that are specified in the SplitShard request. SplitShard is an asynchronous operation. Upon receiving a SplitShard request, Amazon Kinesis immediately returns a response and sets the stream status to UPDATING. After the operation is completed, Amazon Kinesis sets the stream status to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state. You can use DescribeStream to check the status of the stream, which is returned in StreamStatus. If the stream is in the ACTIVE state, you can call SplitShard. If a stream is in CREATING or UPDATING or DELETING states, DescribeStream returns a ResourceInUseException. If the specified stream does not exist, DescribeStream returns a ResourceNotFoundException. If you try to create more shards than are authorized for your account, you receive a LimitExceededException. For the default shard limit for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. If you need to increase this limit, contact AWS Support. If you try to operate on too many streams simultaneously using CreateStream, DeleteStream, MergeShards, and/or SplitShard, you receive a LimitExceededException. SplitShard has limit of 5 transactions per second per account. + /// Splits a shard into two new shards in the Kinesis stream, to increase the stream's capacity to ingest and transport data. SplitShard is called when there is a need to increase the overall capacity of a stream because of an expected increase in the volume of data records being ingested. You can also use SplitShard when a shard appears to be approaching its maximum utilization; for example, the producers sending data into the specific shard are suddenly sending more than previously anticipated. You can also call SplitShard to increase stream capacity, so that more Kinesis Streams applications can simultaneously read data from the stream for real-time processing. You must specify the shard to be split and the new hash key, which is the position in the shard where the shard gets split in two. In many cases, the new hash key might be the average of the beginning and ending hash key, but it can be any hash key value in the range being mapped into the shard. For more information, see Split a Shard in the Amazon Kinesis Streams Developer Guide. You can use DescribeStream to determine the shard ID and hash key values for the ShardToSplit and NewStartingHashKey parameters that are specified in the SplitShard request. SplitShard is an asynchronous operation. Upon receiving a SplitShard request, Kinesis Streams immediately returns a response and sets the stream status to UPDATING. After the operation is completed, Kinesis Streams sets the stream status to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state. You can use DescribeStream to check the status of the stream, which is returned in StreamStatus. If the stream is in the ACTIVE state, you can call SplitShard. If a stream is in CREATING or UPDATING or DELETING states, DescribeStream returns a ResourceInUseException. If the specified stream does not exist, DescribeStream returns a ResourceNotFoundException. If you try to create more shards than are authorized for your account, you receive a LimitExceededException. For the default shard limit for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. To increase this limit, contact AWS Support. If you try to operate on too many streams simultaneously using CreateStream, DeleteStream, MergeShards, and/or SplitShard, you receive a LimitExceededException. SplitShard has a limit of 5 transactions per second per account. public func splitShard(_ input: SplitShardInput) throws { _ = try client.send(operation: "SplitShard", path: "/", httpMethod: "POST", input: input) } - /// Lists the tags for the specified Amazon Kinesis stream. + /// Lists the tags for the specified Kinesis stream. public func listTagsForStream(_ input: ListTagsForStreamInput) throws -> ListTagsForStreamOutput { return try client.send(operation: "ListTagsForStream", path: "/", httpMethod: "POST", input: input) } - /// Enables enhanced Amazon Kinesis stream monitoring for shard-level metrics. + /// Enables enhanced Kinesis stream monitoring for shard-level metrics. public func enableEnhancedMonitoring(_ input: EnableEnhancedMonitoringInput) throws -> EnhancedMonitoringOutput { return try client.send(operation: "EnableEnhancedMonitoring", path: "/", httpMethod: "POST", input: input) } - /// Adds or updates tags for the specified Amazon Kinesis stream. Each stream can have up to 10 tags. If tags have already been assigned to the stream, AddTagsToStream overwrites any existing tags that correspond to the specified tag keys. - public func addTagsToStream(_ input: AddTagsToStreamInput) throws { - _ = try client.send(operation: "AddTagsToStream", path: "/", httpMethod: "POST", input: input) - } - /// Describes the shard limits and usage for the account. If you update your account limits, the old limits might be returned for a few minutes. This operation has a limit of 1 transaction per second per account. public func describeLimits(_ input: DescribeLimitsInput) throws -> DescribeLimitsOutput { return try client.send(operation: "DescribeLimits", path: "/", httpMethod: "POST", input: input) } - /// Writes multiple data records into an Amazon Kinesis stream in a single call (also referred to as a PutRecords request). Use this operation to send data into the stream for data ingestion and processing. Each PutRecords request can support up to 500 records. Each record in the request can be as large as 1 MB, up to a limit of 5 MB for the entire request, including partition keys. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second. You must specify the name of the stream that captures, stores, and transports the data; and an array of request Records, with each record in the array requiring a partition key and data blob. The record size limit applies to the total size of the partition key and data blob. The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on. The partition key is used by Amazon Kinesis as input to a hash function that maps the partition key and associated data to a specific shard. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide. Each record in the Records array may include an optional parameter, ExplicitHashKey, which overrides the partition key to shard mapping. This parameter allows a data producer to determine explicitly the shard where the record is stored. For more information, see Adding Multiple Records with PutRecords in the Amazon Kinesis Streams Developer Guide. The PutRecords response includes an array of response Records. Each record in the response array directly correlates with a record in the request array using natural ordering, from the top to the bottom of the request and response. The response Records array always includes the same number of records as the request array. The response Records array includes both successfully and unsuccessfully processed records. Amazon Kinesis attempts to process all records in each PutRecords request. A single record failure does not stop the processing of subsequent records. A successfully-processed record includes ShardId and SequenceNumber values. The ShardId parameter identifies the shard in the stream where the record is stored. The SequenceNumber parameter is an identifier assigned to the put record, unique to all records in the stream. An unsuccessfully-processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error and can be one of the following values: ProvisionedThroughputExceededException or InternalFailure. ErrorMessage provides more detailed information about the ProvisionedThroughputExceededException exception including the account ID, stream name, and shard ID of the record that was throttled. For more information about partially successful responses, see Adding Multiple Records with PutRecords in the Amazon Kinesis Streams Developer Guide. By default, data records are accessible for only 24 hours from the time that they are added to an Amazon Kinesis stream. This retention period can be modified using the DecreaseStreamRetentionPeriod and IncreaseStreamRetentionPeriod operations. + /// Writes multiple data records into a Kinesis stream in a single call (also referred to as a PutRecords request). Use this operation to send data into the stream for data ingestion and processing. Each PutRecords request can support up to 500 records. Each record in the request can be as large as 1 MB, up to a limit of 5 MB for the entire request, including partition keys. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second. You must specify the name of the stream that captures, stores, and transports the data; and an array of request Records, with each record in the array requiring a partition key and data blob. The record size limit applies to the total size of the partition key and data blob. The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on. The partition key is used by Kinesis Streams as input to a hash function that maps the partition key and associated data to a specific shard. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide. Each record in the Records array may include an optional parameter, ExplicitHashKey, which overrides the partition key to shard mapping. This parameter allows a data producer to determine explicitly the shard where the record is stored. For more information, see Adding Multiple Records with PutRecords in the Amazon Kinesis Streams Developer Guide. The PutRecords response includes an array of response Records. Each record in the response array directly correlates with a record in the request array using natural ordering, from the top to the bottom of the request and response. The response Records array always includes the same number of records as the request array. The response Records array includes both successfully and unsuccessfully processed records. Amazon Kinesis attempts to process all records in each PutRecords request. A single record failure does not stop the processing of subsequent records. A successfully processed record includes ShardId and SequenceNumber values. The ShardId parameter identifies the shard in the stream where the record is stored. The SequenceNumber parameter is an identifier assigned to the put record, unique to all records in the stream. An unsuccessfully processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error and can be one of the following values: ProvisionedThroughputExceededException or InternalFailure. ErrorMessage provides more detailed information about the ProvisionedThroughputExceededException exception including the account ID, stream name, and shard ID of the record that was throttled. For more information about partially successful responses, see Adding Multiple Records with PutRecords in the Amazon Kinesis Streams Developer Guide. By default, data records are accessible for 24 hours from the time that they are added to a stream. You can use IncreaseStreamRetentionPeriod or DecreaseStreamRetentionPeriod to modify this retention period. public func putRecords(_ input: PutRecordsInput) throws -> PutRecordsOutput { return try client.send(operation: "PutRecords", path: "/", httpMethod: "POST", input: input) } - /// Disables enhanced monitoring. - public func disableEnhancedMonitoring(_ input: DisableEnhancedMonitoringInput) throws -> EnhancedMonitoringOutput { - return try client.send(operation: "DisableEnhancedMonitoring", path: "/", httpMethod: "POST", input: input) + /// Adds or updates tags for the specified Kinesis stream. Each stream can have up to 10 tags. If tags have already been assigned to the stream, AddTagsToStream overwrites any existing tags that correspond to the specified tag keys. + public func addTagsToStream(_ input: AddTagsToStreamInput) throws { + _ = try client.send(operation: "AddTagsToStream", path: "/", httpMethod: "POST", input: input) } - /// Updates the shard count of the specified stream to the specified number of shards. Updating the shard count is an asynchronous operation. Upon receiving the request, Amazon Kinesis returns immediately and sets the status of the stream to UPDATING. After the update is complete, Amazon Kinesis sets the status of the stream back to ACTIVE. Depending on the size of the stream, the scaling action could take a few minutes to complete. You can continue to read and write data to your stream while its status is UPDATING. To update the shard count, Amazon Kinesis performs splits and merges and individual shards. This can cause short-lived shards to be created, in addition to the final shards. We recommend that you double or halve the shard count, as this results in the fewest number of splits or merges. This operation has a rate limit of twice per rolling 24 hour period. You cannot scale above double your current shard count, scale below half your current shard count, or exceed the shard limits for your account. For the default limits for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. If you need to increase a limit, contact AWS Support. + /// Updates the shard count of the specified stream to the specified number of shards. Updating the shard count is an asynchronous operation. Upon receiving the request, Kinesis Streams returns immediately and sets the status of the stream to UPDATING. After the update is complete, Kinesis Streams sets the status of the stream back to ACTIVE. Depending on the size of the stream, the scaling action could take a few minutes to complete. You can continue to read and write data to your stream while its status is UPDATING. To update the shard count, Kinesis Streams performs splits or merges on individual shards. This can cause short-lived shards to be created, in addition to the final shards. We recommend that you double or halve the shard count, as this results in the fewest number of splits or merges. This operation has the following limits, which are per region per account unless otherwise noted. You cannot: Scale more than twice per rolling 24 hour period Scale up to double your current shard count Scale down below half your current shard count Scale up to more 500 shards in a stream Scale a stream with more than 500 shards down unless the result is less than 500 shards Scale up more the shard limits for your account For the default limits for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. To increase a limit, contact AWS Support. public func updateShardCount(_ input: UpdateShardCountInput) throws -> UpdateShardCountOutput { return try client.send(operation: "UpdateShardCount", path: "/", httpMethod: "POST", input: input) } - /// Deletes an Amazon Kinesis stream and all its shards and data. You must shut down any applications that are operating on the stream before you delete the stream. If an application attempts to operate on a deleted stream, it will receive the exception ResourceNotFoundException. If the stream is in the ACTIVE state, you can delete it. After a DeleteStream request, the specified stream is in the DELETING state until Amazon Kinesis completes the deletion. Note: Amazon Kinesis might continue to accept data read and write operations, such as PutRecord, PutRecords, and GetRecords, on a stream in the DELETING state until the stream deletion is complete. When you delete a stream, any shards in that stream are also deleted, and any tags are dissociated from the stream. You can use the DescribeStream operation to check the state of the stream, which is returned in StreamStatus. DeleteStream has a limit of 5 transactions per second per account. + /// Deletes a Kinesis stream and all its shards and data. You must shut down any applications that are operating on the stream before you delete the stream. If an application attempts to operate on a deleted stream, it receives the exception ResourceNotFoundException. If the stream is in the ACTIVE state, you can delete it. After a DeleteStream request, the specified stream is in the DELETING state until Kinesis Streams completes the deletion. Note: Kinesis Streams might continue to accept data read and write operations, such as PutRecord, PutRecords, and GetRecords, on a stream in the DELETING state until the stream deletion is complete. When you delete a stream, any shards in that stream are also deleted, and any tags are dissociated from the stream. You can use the DescribeStream operation to check the state of the stream, which is returned in StreamStatus. DeleteStream has a limit of 5 transactions per second per account. public func deleteStream(_ input: DeleteStreamInput) throws { _ = try client.send(operation: "DeleteStream", path: "/", httpMethod: "POST", input: input) } + /// Disables enhanced monitoring. + public func disableEnhancedMonitoring(_ input: DisableEnhancedMonitoringInput) throws -> EnhancedMonitoringOutput { + return try client.send(operation: "DisableEnhancedMonitoring", path: "/", httpMethod: "POST", input: input) + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/kinesis/Kinesis_Error.swift b/Sources/AWSSDKSwift/Services/kinesis/Kinesis_Error.swift index 424870f0094..e13bd1cacfe 100644 --- a/Sources/AWSSDKSwift/Services/kinesis/Kinesis_Error.swift +++ b/Sources/AWSSDKSwift/Services/kinesis/Kinesis_Error.swift @@ -9,6 +9,12 @@ public enum KinesisError: AWSErrorType { case provisionedThroughputExceededException(message: String?) case limitExceededException(message: String?) case resourceInUseException(message: String?) + case kMSDisabledException(message: String?) + case kMSInvalidStateException(message: String?) + case kMSAccessDeniedException(message: String?) + case kMSNotFoundException(message: String?) + case kMSOptInRequired(message: String?) + case kMSThrottlingException(message: String?) case expiredIteratorException(message: String?) } @@ -29,6 +35,18 @@ extension KinesisError { self = .limitExceededException(message: message) case "ResourceInUseException": self = .resourceInUseException(message: message) + case "KMSDisabledException": + self = .kMSDisabledException(message: message) + case "KMSInvalidStateException": + self = .kMSInvalidStateException(message: message) + case "KMSAccessDeniedException": + self = .kMSAccessDeniedException(message: message) + case "KMSNotFoundException": + self = .kMSNotFoundException(message: message) + case "KMSOptInRequired": + self = .kMSOptInRequired(message: message) + case "KMSThrottlingException": + self = .kMSThrottlingException(message: message) case "ExpiredIteratorException": self = .expiredIteratorException(message: message) default: diff --git a/Sources/AWSSDKSwift/Services/kinesis/Kinesis_Shapes.swift b/Sources/AWSSDKSwift/Services/kinesis/Kinesis_Shapes.swift index dbbc72dbe30..33bb9479217 100644 --- a/Sources/AWSSDKSwift/Services/kinesis/Kinesis_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/kinesis/Kinesis_Shapes.swift @@ -5,12 +5,94 @@ import AWSSDKSwiftCore extension Kinesis { + public struct StartStreamEncryptionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EncryptionType", required: true, type: .enum), + AWSShapeMember(label: "StreamName", required: true, type: .string), + AWSShapeMember(label: "KeyId", required: true, type: .string) + ] + /// The encryption type to use. The only valid value is KMS. + public let encryptionType: EncryptionType + /// The name of the stream for which to start encrypting records. + public let streamName: String + /// The GUID for the customer-managed KMS key to use for encryption. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by "alias/".You can also use a master key owned by Kinesis Streams by specifying the alias aws/kinesis. Key ARN example: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN example: arn:aws:kms:us-east-1:123456789012:alias/MyAliasName Globally unique key ID example: 12345678-1234-1234-1234-123456789012 Alias name example: alias/MyAliasName Master key owned by Kinesis Streams: alias/aws/kinesis + public let keyId: String + + public init(encryptionType: EncryptionType, streamName: String, keyId: String) { + self.encryptionType = encryptionType + self.streamName = streamName + self.keyId = keyId + } + + private enum CodingKeys: String, CodingKey { + case encryptionType = "EncryptionType" + case streamName = "StreamName" + case keyId = "KeyId" + } + } + + public struct StreamDescriptionSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EncryptionType", required: false, type: .enum), + AWSShapeMember(label: "StreamARN", required: true, type: .string), + AWSShapeMember(label: "KeyId", required: false, type: .string), + AWSShapeMember(label: "RetentionPeriodHours", required: true, type: .integer), + AWSShapeMember(label: "EnhancedMonitoring", required: true, type: .list), + AWSShapeMember(label: "OpenShardCount", required: true, type: .integer), + AWSShapeMember(label: "StreamCreationTimestamp", required: true, type: .timestamp), + AWSShapeMember(label: "StreamStatus", required: true, type: .enum), + AWSShapeMember(label: "StreamName", required: true, type: .string) + ] + /// The encryption type used. This value is one of the following: KMS NONE + public let encryptionType: EncryptionType? + /// The Amazon Resource Name (ARN) for the stream being described. + public let streamARN: String + /// The GUID for the customer-managed KMS key to use for encryption. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by "alias/".You can also use a master key owned by Kinesis Streams by specifying the alias aws/kinesis. Key ARN example: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN example: arn:aws:kms:us-east-1:123456789012:alias/MyAliasName Globally unique key ID example: 12345678-1234-1234-1234-123456789012 Alias name example: alias/MyAliasName Master key owned by Kinesis: alias/aws/kinesis + public let keyId: String? + /// The current retention period, in hours. + public let retentionPeriodHours: Int32 + /// Represents the current enhanced monitoring settings of the stream. + public let enhancedMonitoring: [EnhancedMetrics] + /// The number of open shards in the stream. + public let openShardCount: Int32 + /// The approximate time that the stream was created. + public let streamCreationTimestamp: TimeStamp + /// The current status of the stream being described. The stream status is one of the following states: CREATING - The stream is being created. Kinesis Streams immediately returns and sets StreamStatus to CREATING. DELETING - The stream is being deleted. The specified stream is in the DELETING state until Kinesis Streams completes the deletion. ACTIVE - The stream exists and is ready for read and write operations or deletion. You should perform read and write operations only on an ACTIVE stream. UPDATING - Shards in the stream are being merged or split. Read and write operations continue to work while the stream is in the UPDATING state. + public let streamStatus: StreamStatus + /// The name of the stream being described. + public let streamName: String + + public init(encryptionType: EncryptionType? = nil, streamARN: String, keyId: String? = nil, retentionPeriodHours: Int32, enhancedMonitoring: [EnhancedMetrics], openShardCount: Int32, streamCreationTimestamp: TimeStamp, streamStatus: StreamStatus, streamName: String) { + self.encryptionType = encryptionType + self.streamARN = streamARN + self.keyId = keyId + self.retentionPeriodHours = retentionPeriodHours + self.enhancedMonitoring = enhancedMonitoring + self.openShardCount = openShardCount + self.streamCreationTimestamp = streamCreationTimestamp + self.streamStatus = streamStatus + self.streamName = streamName + } + + private enum CodingKeys: String, CodingKey { + case encryptionType = "EncryptionType" + case streamARN = "StreamARN" + case keyId = "KeyId" + case retentionPeriodHours = "RetentionPeriodHours" + case enhancedMonitoring = "EnhancedMonitoring" + case openShardCount = "OpenShardCount" + case streamCreationTimestamp = "StreamCreationTimestamp" + case streamStatus = "StreamStatus" + case streamName = "StreamName" + } + } + public struct CreateStreamInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamName", required: true, type: .string), AWSShapeMember(label: "ShardCount", required: true, type: .integer) ] - /// A name to identify the stream. The stream name is scoped to the AWS account used by the application that creates the stream. It is also scoped by region. That is, two streams in two different AWS accounts can have the same name, and two streams in the same AWS account but in two different regions can have the same name. + /// A name to identify the stream. The stream name is scoped to the AWS account used by the application that creates the stream. It is also scoped by region. That is, two streams in two different AWS accounts can have the same name. Two streams in the same AWS account but in two different regions can also have the same name. public let streamName: String /// The number of shards that the stream will use. The throughput of the stream is a function of the number of shards; more shards are required for greater provisioned throughput. DefaultShardLimit; public let shardCount: Int32 @@ -27,7 +109,7 @@ extension Kinesis { } public struct AddTagsToStreamInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .map), AWSShapeMember(label: "StreamName", required: true, type: .string) ] @@ -51,6 +133,12 @@ extension Kinesis { } + public enum EncryptionType: String, CustomStringConvertible, Codable { + case none = "NONE" + case kms = "KMS" + public var description: String { return self.rawValue } + } + public enum ShardIteratorType: String, CustomStringConvertible, Codable { case atSequenceNumber = "AT_SEQUENCE_NUMBER" case afterSequenceNumber = "AFTER_SEQUENCE_NUMBER" @@ -61,7 +149,7 @@ extension Kinesis { } public struct DescribeStreamInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamName", required: true, type: .string), AWSShapeMember(label: "ExclusiveStartShardId", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -87,7 +175,7 @@ extension Kinesis { } public struct UpdateShardCountOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetShardCount", required: false, type: .integer), AWSShapeMember(label: "CurrentShardCount", required: false, type: .integer), AWSShapeMember(label: "StreamName", required: false, type: .string) @@ -113,7 +201,7 @@ extension Kinesis { } public struct DecreaseStreamRetentionPeriodInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RetentionPeriodHours", required: true, type: .integer), AWSShapeMember(label: "StreamName", required: true, type: .string) ] @@ -134,7 +222,7 @@ extension Kinesis { } public struct IncreaseStreamRetentionPeriodInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RetentionPeriodHours", required: true, type: .integer), AWSShapeMember(label: "StreamName", required: true, type: .string) ] @@ -155,7 +243,7 @@ extension Kinesis { } public struct Shard: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShardId", required: true, type: .string), AWSShapeMember(label: "SequenceNumberRange", required: true, type: .structure), AWSShapeMember(label: "AdjacentParentShardId", required: false, type: .string), @@ -191,28 +279,33 @@ extension Kinesis { } public struct PutRecordsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EncryptionType", required: false, type: .enum), AWSShapeMember(label: "FailedRecordCount", required: false, type: .integer), AWSShapeMember(label: "Records", required: true, type: .list) ] + /// The encryption type used on the records. This parameter can be one of the following values: NONE: Do not encrypt the records. KMS: Use server-side encryption on the records using a customer-managed KMS key. + public let encryptionType: EncryptionType? /// The number of unsuccessfully processed records in a PutRecords request. public let failedRecordCount: Int32? /// An array of successfully and unsuccessfully processed record results, correlated with the request by natural ordering. A record that is successfully added to a stream includes SequenceNumber and ShardId in the result. A record that fails to be added to a stream includes ErrorCode and ErrorMessage in the result. public let records: [PutRecordsResultEntry] - public init(failedRecordCount: Int32? = nil, records: [PutRecordsResultEntry]) { + public init(encryptionType: EncryptionType? = nil, failedRecordCount: Int32? = nil, records: [PutRecordsResultEntry]) { + self.encryptionType = encryptionType self.failedRecordCount = failedRecordCount self.records = records } private enum CodingKeys: String, CodingKey { + case encryptionType = "EncryptionType" case failedRecordCount = "FailedRecordCount" case records = "Records" } } public struct DescribeStreamOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamDescription", required: true, type: .structure) ] /// The current status of the stream, the stream ARN, an array of shard objects that comprise the stream, and whether there are more shards available. @@ -228,14 +321,14 @@ extension Kinesis { } public struct EnhancedMonitoringOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DesiredShardLevelMetrics", required: false, type: .list), AWSShapeMember(label: "StreamName", required: false, type: .string), AWSShapeMember(label: "CurrentShardLevelMetrics", required: false, type: .list) ] /// Represents the list of all the metrics that would be in the enhanced state after the operation. public let desiredShardLevelMetrics: [MetricsName]? - /// The name of the Amazon Kinesis stream. + /// The name of the Kinesis stream. public let streamName: String? /// Represents the current state of the metrics that are in the enhanced state before the operation. public let currentShardLevelMetrics: [MetricsName]? @@ -254,43 +347,52 @@ extension Kinesis { } public struct PutRecordOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EncryptionType", required: false, type: .enum), AWSShapeMember(label: "SequenceNumber", required: true, type: .string), AWSShapeMember(label: "ShardId", required: true, type: .string) ] + /// The encryption type to use on the record. This parameter can be one of the following values: NONE: Do not encrypt the records in the stream. KMS: Use server-side encryption on the records in the stream using a customer-managed KMS key. + public let encryptionType: EncryptionType? /// The sequence number identifier that was assigned to the put data record. The sequence number for the record is unique across all records in the stream. A sequence number is the identifier associated with every record put into the stream. public let sequenceNumber: String /// The shard ID of the shard where the data record was placed. public let shardId: String - public init(sequenceNumber: String, shardId: String) { + public init(encryptionType: EncryptionType? = nil, sequenceNumber: String, shardId: String) { + self.encryptionType = encryptionType self.sequenceNumber = sequenceNumber self.shardId = shardId } private enum CodingKeys: String, CodingKey { + case encryptionType = "EncryptionType" case sequenceNumber = "SequenceNumber" case shardId = "ShardId" } } public struct Record: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EncryptionType", required: false, type: .enum), AWSShapeMember(label: "ApproximateArrivalTimestamp", required: false, type: .timestamp), AWSShapeMember(label: "SequenceNumber", required: true, type: .string), AWSShapeMember(label: "PartitionKey", required: true, type: .string), AWSShapeMember(label: "Data", required: true, type: .blob) ] + /// The encryption type used on the record. This parameter can be one of the following values: NONE: Do not encrypt the records in the stream. KMS: Use server-side encryption on the records in the stream using a customer-managed KMS key. + public let encryptionType: EncryptionType? /// The approximate time that the record was inserted into the stream. public let approximateArrivalTimestamp: TimeStamp? - /// The unique identifier of the record in the stream. + /// The unique identifier of the record within its shard. public let sequenceNumber: String /// Identifies which shard in the stream the data record is assigned to. public let partitionKey: String - /// The data blob. The data in the blob is both opaque and immutable to the Amazon Kinesis service, which does not inspect, interpret, or change the data in the blob in any way. When the data blob (the payload before base64-encoding) is added to the partition key size, the total size must not exceed the maximum record size (1 MB). + /// The data blob. The data in the blob is both opaque and immutable to Kinesis Streams, which does not inspect, interpret, or change the data in the blob in any way. When the data blob (the payload before base64-encoding) is added to the partition key size, the total size must not exceed the maximum record size (1 MB). public let data: Data - public init(approximateArrivalTimestamp: TimeStamp? = nil, sequenceNumber: String, partitionKey: String, data: Data) { + public init(encryptionType: EncryptionType? = nil, approximateArrivalTimestamp: TimeStamp? = nil, sequenceNumber: String, partitionKey: String, data: Data) { + self.encryptionType = encryptionType self.approximateArrivalTimestamp = approximateArrivalTimestamp self.sequenceNumber = sequenceNumber self.partitionKey = partitionKey @@ -298,6 +400,7 @@ extension Kinesis { } private enum CodingKeys: String, CodingKey { + case encryptionType = "EncryptionType" case approximateArrivalTimestamp = "ApproximateArrivalTimestamp" case sequenceNumber = "SequenceNumber" case partitionKey = "PartitionKey" @@ -318,13 +421,13 @@ extension Kinesis { } public struct DisableEnhancedMonitoringInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShardLevelMetrics", required: true, type: .list), AWSShapeMember(label: "StreamName", required: true, type: .string) ] /// List of shard-level metrics to disable. The following are the valid shard-level metrics. The value "ALL" disables every metric. IncomingBytes IncomingRecords OutgoingBytes OutgoingRecords WriteProvisionedThroughputExceeded ReadProvisionedThroughputExceeded IteratorAgeMilliseconds ALL For more information, see Monitoring the Amazon Kinesis Streams Service with Amazon CloudWatch in the Amazon Kinesis Streams Developer Guide. public let shardLevelMetrics: [MetricsName] - /// The name of the Amazon Kinesis stream for which to disable enhanced monitoring. + /// The name of the Kinesis stream for which to disable enhanced monitoring. public let streamName: String public init(shardLevelMetrics: [MetricsName], streamName: String) { @@ -338,50 +441,8 @@ extension Kinesis { } } - public struct HashKeyRange: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StartingHashKey", required: true, type: .string), - AWSShapeMember(label: "EndingHashKey", required: true, type: .string) - ] - /// The starting hash key of the hash key range. - public let startingHashKey: String - /// The ending hash key of the hash key range. - public let endingHashKey: String - - public init(startingHashKey: String, endingHashKey: String) { - self.startingHashKey = startingHashKey - self.endingHashKey = endingHashKey - } - - private enum CodingKeys: String, CodingKey { - case startingHashKey = "StartingHashKey" - case endingHashKey = "EndingHashKey" - } - } - - public struct SequenceNumberRange: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EndingSequenceNumber", required: false, type: .string), - AWSShapeMember(label: "StartingSequenceNumber", required: true, type: .string) - ] - /// The ending sequence number for the range. Shards that are in the OPEN state have an ending sequence number of null. - public let endingSequenceNumber: String? - /// The starting sequence number for the range. - public let startingSequenceNumber: String - - public init(endingSequenceNumber: String? = nil, startingSequenceNumber: String) { - self.endingSequenceNumber = endingSequenceNumber - self.startingSequenceNumber = startingSequenceNumber - } - - private enum CodingKeys: String, CodingKey { - case endingSequenceNumber = "EndingSequenceNumber" - case startingSequenceNumber = "StartingSequenceNumber" - } - } - public struct DescribeLimitsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShardLimit", required: true, type: .integer), AWSShapeMember(label: "OpenShardCount", required: true, type: .integer) ] @@ -401,29 +462,29 @@ extension Kinesis { } } - public struct PutRecordsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Records", required: true, type: .list), - AWSShapeMember(label: "StreamName", required: true, type: .string) + public struct HashKeyRange: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartingHashKey", required: true, type: .string), + AWSShapeMember(label: "EndingHashKey", required: true, type: .string) ] - /// The records associated with the request. - public let records: [PutRecordsRequestEntry] - /// The stream name associated with the request. - public let streamName: String + /// The starting hash key of the hash key range. + public let startingHashKey: String + /// The ending hash key of the hash key range. + public let endingHashKey: String - public init(records: [PutRecordsRequestEntry], streamName: String) { - self.records = records - self.streamName = streamName + public init(startingHashKey: String, endingHashKey: String) { + self.startingHashKey = startingHashKey + self.endingHashKey = endingHashKey } private enum CodingKeys: String, CodingKey { - case records = "Records" - case streamName = "StreamName" + case startingHashKey = "StartingHashKey" + case endingHashKey = "EndingHashKey" } } public struct GetShardIteratorInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartingSequenceNumber", required: false, type: .string), AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), AWSShapeMember(label: "ShardIteratorType", required: true, type: .enum), @@ -432,13 +493,13 @@ extension Kinesis { ] /// The sequence number of the data record in the shard from which to start reading. Used with shard iterator type AT_SEQUENCE_NUMBER and AFTER_SEQUENCE_NUMBER. public let startingSequenceNumber: String? - /// The timestamp of the data record from which to start reading. Used with shard iterator type AT_TIMESTAMP. A timestamp is the Unix epoch date with precision in milliseconds. For example, 2016-04-04T19:58:46.480-00:00 or 1459799926.480. If a record with this exact timestamp does not exist, the iterator returned is for the next (later) record. If the timestamp is older than the current trim horizon, the iterator returned is for the oldest untrimmed data record (TRIM_HORIZON). + /// The time stamp of the data record from which to start reading. Used with shard iterator type AT_TIMESTAMP. A time stamp is the Unix epoch date with precision in milliseconds. For example, 2016-04-04T19:58:46.480-00:00 or 1459799926.480. If a record with this exact time stamp does not exist, the iterator returned is for the next (later) record. If the time stamp is older than the current trim horizon, the iterator returned is for the oldest untrimmed data record (TRIM_HORIZON). public let timestamp: TimeStamp? - /// Determines how the shard iterator is used to start reading data records from the shard. The following are the valid Amazon Kinesis shard iterator types: AT_SEQUENCE_NUMBER - Start reading from the position denoted by a specific sequence number, provided in the value StartingSequenceNumber. AFTER_SEQUENCE_NUMBER - Start reading right after the position denoted by a specific sequence number, provided in the value StartingSequenceNumber. AT_TIMESTAMP - Start reading from the position denoted by a specific timestamp, provided in the value Timestamp. TRIM_HORIZON - Start reading at the last untrimmed record in the shard in the system, which is the oldest data record in the shard. LATEST - Start reading just after the most recent record in the shard, so that you always read the most recent data in the shard. + /// Determines how the shard iterator is used to start reading data records from the shard. The following are the valid Amazon Kinesis shard iterator types: AT_SEQUENCE_NUMBER - Start reading from the position denoted by a specific sequence number, provided in the value StartingSequenceNumber. AFTER_SEQUENCE_NUMBER - Start reading right after the position denoted by a specific sequence number, provided in the value StartingSequenceNumber. AT_TIMESTAMP - Start reading from the position denoted by a specific time stamp, provided in the value Timestamp. TRIM_HORIZON - Start reading at the last untrimmed record in the shard in the system, which is the oldest data record in the shard. LATEST - Start reading just after the most recent record in the shard, so that you always read the most recent data in the shard. public let shardIteratorType: ShardIteratorType /// The name of the Amazon Kinesis stream. public let streamName: String - /// The shard ID of the Amazon Kinesis shard to get the iterator for. + /// The shard ID of the Kinesis Streams shard to get the iterator for. public let shardId: String public init(startingSequenceNumber: String? = nil, timestamp: TimeStamp? = nil, shardIteratorType: ShardIteratorType, streamName: String, shardId: String) { @@ -459,7 +520,7 @@ extension Kinesis { } public struct ListTagsForStreamOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HasMoreTags", required: true, type: .boolean), AWSShapeMember(label: "Tags", required: true, type: .list) ] @@ -479,34 +540,55 @@ extension Kinesis { } } - public struct PutRecordsRequestEntry: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Data", required: true, type: .blob), - AWSShapeMember(label: "ExplicitHashKey", required: false, type: .string), - AWSShapeMember(label: "PartitionKey", required: true, type: .string) + public struct UpdateShardCountInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetShardCount", required: true, type: .integer), + AWSShapeMember(label: "StreamName", required: true, type: .string), + AWSShapeMember(label: "ScalingType", required: true, type: .enum) ] - /// The data blob to put into the record, which is base64-encoded when the blob is serialized. When the data blob (the payload before base64-encoding) is added to the partition key size, the total size must not exceed the maximum record size (1 MB). - public let data: Data - /// The hash value used to determine explicitly the shard that the data record is assigned to by overriding the partition key hash. - public let explicitHashKey: String? - /// Determines which shard in the stream the data record is assigned to. Partition keys are Unicode strings with a maximum length limit of 256 characters for each key. Amazon Kinesis uses the partition key as input to a hash function that maps the partition key and associated data to a specific shard. Specifically, an MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream. - public let partitionKey: String + /// The new number of shards. + public let targetShardCount: Int32 + /// The name of the stream. + public let streamName: String + /// The scaling type. Uniform scaling creates shards of equal size. + public let scalingType: ScalingType - public init(data: Data, explicitHashKey: String? = nil, partitionKey: String) { - self.data = data - self.explicitHashKey = explicitHashKey - self.partitionKey = partitionKey + public init(targetShardCount: Int32, streamName: String, scalingType: ScalingType) { + self.targetShardCount = targetShardCount + self.streamName = streamName + self.scalingType = scalingType } private enum CodingKeys: String, CodingKey { - case data = "Data" - case explicitHashKey = "ExplicitHashKey" - case partitionKey = "PartitionKey" + case targetShardCount = "TargetShardCount" + case streamName = "StreamName" + case scalingType = "ScalingType" + } + } + + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: false, type: .string), + AWSShapeMember(label: "Key", required: true, type: .string) + ] + /// An optional string, typically used to describe or define the tag. Maximum length: 256 characters. Valid characters: Unicode letters, digits, white space, _ . / = + - % @ + public let value: String? + /// A unique identifier for the tag. Maximum length: 128 characters. Valid characters: Unicode letters, digits, white space, _ . / = + - % @ + public let key: String + + public init(value: String? = nil, key: String) { + self.value = value + self.key = key + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case key = "Key" } } public struct GetRecordsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "ShardIterator", required: true, type: .string) ] @@ -526,55 +608,76 @@ extension Kinesis { } } - public struct UpdateShardCountInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TargetShardCount", required: true, type: .integer), - AWSShapeMember(label: "StreamName", required: true, type: .string), - AWSShapeMember(label: "ScalingType", required: true, type: .enum) + public struct PutRecordsRequestEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Data", required: true, type: .blob), + AWSShapeMember(label: "ExplicitHashKey", required: false, type: .string), + AWSShapeMember(label: "PartitionKey", required: true, type: .string) ] - /// The new number of shards. - public let targetShardCount: Int32 - /// The name of the stream. + /// The data blob to put into the record, which is base64-encoded when the blob is serialized. When the data blob (the payload before base64-encoding) is added to the partition key size, the total size must not exceed the maximum record size (1 MB). + public let data: Data + /// The hash value used to determine explicitly the shard that the data record is assigned to by overriding the partition key hash. + public let explicitHashKey: String? + /// Determines which shard in the stream the data record is assigned to. Partition keys are Unicode strings with a maximum length limit of 256 characters for each key. Amazon Kinesis uses the partition key as input to a hash function that maps the partition key and associated data to a specific shard. Specifically, an MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream. + public let partitionKey: String + + public init(data: Data, explicitHashKey: String? = nil, partitionKey: String) { + self.data = data + self.explicitHashKey = explicitHashKey + self.partitionKey = partitionKey + } + + private enum CodingKeys: String, CodingKey { + case data = "Data" + case explicitHashKey = "ExplicitHashKey" + case partitionKey = "PartitionKey" + } + } + + public struct PutRecordsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Records", required: true, type: .list), + AWSShapeMember(label: "StreamName", required: true, type: .string) + ] + /// The records associated with the request. + public let records: [PutRecordsRequestEntry] + /// The stream name associated with the request. public let streamName: String - /// The scaling type. Uniform scaling creates shards of equal size. - public let scalingType: ScalingType - public init(targetShardCount: Int32, streamName: String, scalingType: ScalingType) { - self.targetShardCount = targetShardCount + public init(records: [PutRecordsRequestEntry], streamName: String) { + self.records = records self.streamName = streamName - self.scalingType = scalingType } private enum CodingKeys: String, CodingKey { - case targetShardCount = "TargetShardCount" + case records = "Records" case streamName = "StreamName" - case scalingType = "ScalingType" } } - public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: false, type: .string), - AWSShapeMember(label: "Key", required: true, type: .string) + public struct SequenceNumberRange: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndingSequenceNumber", required: false, type: .string), + AWSShapeMember(label: "StartingSequenceNumber", required: true, type: .string) ] - /// An optional string, typically used to describe or define the tag. Maximum length: 256 characters. Valid characters: Unicode letters, digits, white space, _ . / = + - % @ - public let value: String? - /// A unique identifier for the tag. Maximum length: 128 characters. Valid characters: Unicode letters, digits, white space, _ . / = + - % @ - public let key: String + /// The ending sequence number for the range. Shards that are in the OPEN state have an ending sequence number of null. + public let endingSequenceNumber: String? + /// The starting sequence number for the range. + public let startingSequenceNumber: String - public init(value: String? = nil, key: String) { - self.value = value - self.key = key + public init(endingSequenceNumber: String? = nil, startingSequenceNumber: String) { + self.endingSequenceNumber = endingSequenceNumber + self.startingSequenceNumber = startingSequenceNumber } private enum CodingKeys: String, CodingKey { - case value = "Value" - case key = "Key" + case endingSequenceNumber = "EndingSequenceNumber" + case startingSequenceNumber = "StartingSequenceNumber" } } public struct DeleteStreamInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamName", required: true, type: .string) ] /// The name of the stream to delete. @@ -590,7 +693,7 @@ extension Kinesis { } public struct GetShardIteratorOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShardIterator", required: false, type: .string) ] /// The position in the shard from which to start reading data records sequentially. A shard iterator specifies this position using the sequence number of a data record in a shard. @@ -605,8 +708,39 @@ extension Kinesis { } } + public struct PutRecordsResultEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SequenceNumber", required: false, type: .string), + AWSShapeMember(label: "ErrorMessage", required: false, type: .string), + AWSShapeMember(label: "ErrorCode", required: false, type: .string), + AWSShapeMember(label: "ShardId", required: false, type: .string) + ] + /// The sequence number for an individual record result. + public let sequenceNumber: String? + /// The error message for an individual record result. An ErrorCode value of ProvisionedThroughputExceededException has an error message that includes the account ID, stream name, and shard ID. An ErrorCode value of InternalFailure has the error message "Internal Service Failure". + public let errorMessage: String? + /// The error code for an individual record result. ErrorCodes can be either ProvisionedThroughputExceededException or InternalFailure. + public let errorCode: String? + /// The shard ID for an individual record result. + public let shardId: String? + + public init(sequenceNumber: String? = nil, errorMessage: String? = nil, errorCode: String? = nil, shardId: String? = nil) { + self.sequenceNumber = sequenceNumber + self.errorMessage = errorMessage + self.errorCode = errorCode + self.shardId = shardId + } + + private enum CodingKeys: String, CodingKey { + case sequenceNumber = "SequenceNumber" + case errorMessage = "ErrorMessage" + case errorCode = "ErrorCode" + case shardId = "ShardId" + } + } + public struct PutRecordInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PartitionKey", required: true, type: .string), AWSShapeMember(label: "ExplicitHashKey", required: false, type: .string), AWSShapeMember(label: "StreamName", required: true, type: .string), @@ -619,7 +753,7 @@ extension Kinesis { public let explicitHashKey: String? /// The name of the stream to put the data record into. public let streamName: String - /// Guarantees strictly increasing sequence numbers, for puts from the same client and to the same partition key. Usage: set the SequenceNumberForOrdering of record n to the sequence number of record n-1 (as returned in the result when putting record n-1). If this parameter is not set, records will be coarsely ordered based on arrival time. + /// Guarantees strictly increasing sequence numbers, for puts from the same client and to the same partition key. Usage: set the SequenceNumberForOrdering of record n to the sequence number of record n-1 (as returned in the result when putting record n-1). If this parameter is not set, records are coarsely ordered based on arrival time. public let sequenceNumberForOrdering: String? /// The data blob to put into the record, which is base64-encoded when the blob is serialized. When the data blob (the payload before base64-encoding) is added to the partition key size, the total size must not exceed the maximum record size (1 MB). public let data: Data @@ -641,39 +775,24 @@ extension Kinesis { } } - public struct PutRecordsResultEntry: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SequenceNumber", required: false, type: .string), - AWSShapeMember(label: "ErrorMessage", required: false, type: .string), - AWSShapeMember(label: "ErrorCode", required: false, type: .string), - AWSShapeMember(label: "ShardId", required: false, type: .string) + public struct DescribeStreamSummaryInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamName", required: true, type: .string) ] - /// The sequence number for an individual record result. - public let sequenceNumber: String? - /// The error message for an individual record result. An ErrorCode value of ProvisionedThroughputExceededException has an error message that includes the account ID, stream name, and shard ID. An ErrorCode value of InternalFailure has the error message "Internal Service Failure". - public let errorMessage: String? - /// The error code for an individual record result. ErrorCodes can be either ProvisionedThroughputExceededException or InternalFailure. - public let errorCode: String? - /// The shard ID for an individual record result. - public let shardId: String? + /// The name of the stream to describe. + public let streamName: String - public init(sequenceNumber: String? = nil, errorMessage: String? = nil, errorCode: String? = nil, shardId: String? = nil) { - self.sequenceNumber = sequenceNumber - self.errorMessage = errorMessage - self.errorCode = errorCode - self.shardId = shardId + public init(streamName: String) { + self.streamName = streamName } private enum CodingKeys: String, CodingKey { - case sequenceNumber = "SequenceNumber" - case errorMessage = "ErrorMessage" - case errorCode = "ErrorCode" - case shardId = "ShardId" + case streamName = "StreamName" } } public struct ListTagsForStreamInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExclusiveStartTagKey", required: false, type: .string), AWSShapeMember(label: "StreamName", required: true, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -698,8 +817,50 @@ extension Kinesis { } } + public struct DescribeStreamSummaryOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamDescriptionSummary", required: true, type: .structure) + ] + /// A StreamDescriptionSummary containing information about the stream. + public let streamDescriptionSummary: StreamDescriptionSummary + + public init(streamDescriptionSummary: StreamDescriptionSummary) { + self.streamDescriptionSummary = streamDescriptionSummary + } + + private enum CodingKeys: String, CodingKey { + case streamDescriptionSummary = "StreamDescriptionSummary" + } + } + + public struct StopStreamEncryptionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EncryptionType", required: true, type: .enum), + AWSShapeMember(label: "StreamName", required: true, type: .string), + AWSShapeMember(label: "KeyId", required: true, type: .string) + ] + /// The encryption type. The only valid value is KMS. + public let encryptionType: EncryptionType + /// The name of the stream on which to stop encrypting records. + public let streamName: String + /// The GUID for the customer-managed KMS key to use for encryption. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by "alias/".You can also use a master key owned by Kinesis Streams by specifying the alias aws/kinesis. Key ARN example: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN example: arn:aws:kms:us-east-1:123456789012:alias/MyAliasName Globally unique key ID example: 12345678-1234-1234-1234-123456789012 Alias name example: alias/MyAliasName Master key owned by Kinesis Streams: alias/aws/kinesis + public let keyId: String + + public init(encryptionType: EncryptionType, streamName: String, keyId: String) { + self.encryptionType = encryptionType + self.streamName = streamName + self.keyId = keyId + } + + private enum CodingKeys: String, CodingKey { + case encryptionType = "EncryptionType" + case streamName = "StreamName" + case keyId = "KeyId" + } + } + public struct ListStreamsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamNames", required: true, type: .list), AWSShapeMember(label: "HasMoreStreams", required: true, type: .boolean) ] @@ -720,7 +881,7 @@ extension Kinesis { } public struct EnableEnhancedMonitoringInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShardLevelMetrics", required: true, type: .list), AWSShapeMember(label: "StreamName", required: true, type: .string) ] @@ -746,7 +907,7 @@ extension Kinesis { } public struct MergeShardsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AdjacentShardToMerge", required: true, type: .string), AWSShapeMember(label: "ShardToMerge", required: true, type: .string), AWSShapeMember(label: "StreamName", required: true, type: .string) @@ -772,7 +933,7 @@ extension Kinesis { } public struct RemoveTagsFromStreamInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamName", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -792,8 +953,34 @@ extension Kinesis { } } + public struct GetRecordsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextShardIterator", required: false, type: .string), + AWSShapeMember(label: "MillisBehindLatest", required: false, type: .long), + AWSShapeMember(label: "Records", required: true, type: .list) + ] + /// The next position in the shard from which to start sequentially reading data records. If set to null, the shard has been closed and the requested iterator does not return any more data. + public let nextShardIterator: String? + /// The number of milliseconds the GetRecords response is from the tip of the stream, indicating how far behind current time the consumer is. A value of zero indicates that record processing is caught up, and there are no new records to process at this moment. + public let millisBehindLatest: Int64? + /// The data records retrieved from the shard. + public let records: [Record] + + public init(nextShardIterator: String? = nil, millisBehindLatest: Int64? = nil, records: [Record]) { + self.nextShardIterator = nextShardIterator + self.millisBehindLatest = millisBehindLatest + self.records = records + } + + private enum CodingKeys: String, CodingKey { + case nextShardIterator = "NextShardIterator" + case millisBehindLatest = "MillisBehindLatest" + case records = "Records" + } + } + public struct ListStreamsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExclusiveStartStreamName", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] @@ -813,34 +1000,24 @@ extension Kinesis { } } - public struct GetRecordsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextShardIterator", required: false, type: .string), - AWSShapeMember(label: "MillisBehindLatest", required: false, type: .long), - AWSShapeMember(label: "Records", required: true, type: .list) + public struct EnhancedMetrics: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ShardLevelMetrics", required: false, type: .list) ] - /// The next position in the shard from which to start sequentially reading data records. If set to null, the shard has been closed and the requested iterator will not return any more data. - public let nextShardIterator: String? - /// The number of milliseconds the GetRecords response is from the tip of the stream, indicating how far behind current time the consumer is. A value of zero indicates record processing is caught up, and there are no new records to process at this moment. - public let millisBehindLatest: Int64? - /// The data records retrieved from the shard. - public let records: [Record] + /// List of shard-level metrics. The following are the valid shard-level metrics. The value "ALL" enhances every metric. IncomingBytes IncomingRecords OutgoingBytes OutgoingRecords WriteProvisionedThroughputExceeded ReadProvisionedThroughputExceeded IteratorAgeMilliseconds ALL For more information, see Monitoring the Amazon Kinesis Streams Service with Amazon CloudWatch in the Amazon Kinesis Streams Developer Guide. + public let shardLevelMetrics: [MetricsName]? - public init(nextShardIterator: String? = nil, millisBehindLatest: Int64? = nil, records: [Record]) { - self.nextShardIterator = nextShardIterator - self.millisBehindLatest = millisBehindLatest - self.records = records + public init(shardLevelMetrics: [MetricsName]? = nil) { + self.shardLevelMetrics = shardLevelMetrics } private enum CodingKeys: String, CodingKey { - case nextShardIterator = "NextShardIterator" - case millisBehindLatest = "MillisBehindLatest" - case records = "Records" + case shardLevelMetrics = "ShardLevelMetrics" } } public struct SplitShardInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamName", required: true, type: .string), AWSShapeMember(label: "ShardToSplit", required: true, type: .string), AWSShapeMember(label: "NewStartingHashKey", required: true, type: .string) @@ -865,25 +1042,11 @@ extension Kinesis { } } - public struct EnhancedMetrics: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ShardLevelMetrics", required: false, type: .list) - ] - /// List of shard-level metrics. The following are the valid shard-level metrics. The value "ALL" enhances every metric. IncomingBytes IncomingRecords OutgoingBytes OutgoingRecords WriteProvisionedThroughputExceeded ReadProvisionedThroughputExceeded IteratorAgeMilliseconds ALL For more information, see Monitoring the Amazon Kinesis Streams Service with Amazon CloudWatch in the Amazon Kinesis Streams Developer Guide. - public let shardLevelMetrics: [MetricsName]? - - public init(shardLevelMetrics: [MetricsName]? = nil) { - self.shardLevelMetrics = shardLevelMetrics - } - - private enum CodingKeys: String, CodingKey { - case shardLevelMetrics = "ShardLevelMetrics" - } - } - public struct StreamDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EncryptionType", required: false, type: .enum), AWSShapeMember(label: "StreamARN", required: true, type: .string), + AWSShapeMember(label: "KeyId", required: false, type: .string), AWSShapeMember(label: "RetentionPeriodHours", required: true, type: .integer), AWSShapeMember(label: "EnhancedMonitoring", required: true, type: .list), AWSShapeMember(label: "HasMoreShards", required: true, type: .boolean), @@ -892,8 +1055,12 @@ extension Kinesis { AWSShapeMember(label: "StreamName", required: true, type: .string), AWSShapeMember(label: "StreamStatus", required: true, type: .enum) ] + /// The server-side encryption type used on the stream. This parameter can be one of the following values: NONE: Do not encrypt the records in the stream. KMS: Use server-side encryption on the records in the stream using a customer-managed KMS key. + public let encryptionType: EncryptionType? /// The Amazon Resource Name (ARN) for the stream being described. public let streamARN: String + /// The GUID for the customer-managed KMS key to use for encryption. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by "alias/".You can also use a master key owned by Kinesis Streams by specifying the alias aws/kinesis. Key ARN example: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN example: arn:aws:kms:us-east-1:123456789012:alias/MyAliasName Globally unique key ID example: 12345678-1234-1234-1234-123456789012 Alias name example: alias/MyAliasName Master key owned by Kinesis Streams: alias/aws/kinesis + public let keyId: String? /// The current retention period, in hours. public let retentionPeriodHours: Int32 /// Represents the current enhanced monitoring settings of the stream. @@ -906,11 +1073,13 @@ extension Kinesis { public let streamCreationTimestamp: TimeStamp /// The name of the stream being described. public let streamName: String - /// The current status of the stream being described. The stream status is one of the following states: CREATING - The stream is being created. Amazon Kinesis immediately returns and sets StreamStatus to CREATING. DELETING - The stream is being deleted. The specified stream is in the DELETING state until Amazon Kinesis completes the deletion. ACTIVE - The stream exists and is ready for read and write operations or deletion. You should perform read and write operations only on an ACTIVE stream. UPDATING - Shards in the stream are being merged or split. Read and write operations continue to work while the stream is in the UPDATING state. + /// The current status of the stream being described. The stream status is one of the following states: CREATING - The stream is being created. Kinesis Streams immediately returns and sets StreamStatus to CREATING. DELETING - The stream is being deleted. The specified stream is in the DELETING state until Kinesis Streams completes the deletion. ACTIVE - The stream exists and is ready for read and write operations or deletion. You should perform read and write operations only on an ACTIVE stream. UPDATING - Shards in the stream are being merged or split. Read and write operations continue to work while the stream is in the UPDATING state. public let streamStatus: StreamStatus - public init(streamARN: String, retentionPeriodHours: Int32, enhancedMonitoring: [EnhancedMetrics], hasMoreShards: Bool, shards: [Shard], streamCreationTimestamp: TimeStamp, streamName: String, streamStatus: StreamStatus) { + public init(encryptionType: EncryptionType? = nil, streamARN: String, keyId: String? = nil, retentionPeriodHours: Int32, enhancedMonitoring: [EnhancedMetrics], hasMoreShards: Bool, shards: [Shard], streamCreationTimestamp: TimeStamp, streamName: String, streamStatus: StreamStatus) { + self.encryptionType = encryptionType self.streamARN = streamARN + self.keyId = keyId self.retentionPeriodHours = retentionPeriodHours self.enhancedMonitoring = enhancedMonitoring self.hasMoreShards = hasMoreShards @@ -921,7 +1090,9 @@ extension Kinesis { } private enum CodingKeys: String, CodingKey { + case encryptionType = "EncryptionType" case streamARN = "StreamARN" + case keyId = "KeyId" case retentionPeriodHours = "RetentionPeriodHours" case enhancedMonitoring = "EnhancedMonitoring" case hasMoreShards = "HasMoreShards" diff --git a/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_API.swift b/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_API.swift index 5e3e257846c..1eb6e302f7e 100644 --- a/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_API.swift +++ b/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_API.swift @@ -65,7 +65,12 @@ public struct Kinesisanalytics { return try client.send(operation: "DescribeApplication", path: "/", httpMethod: "POST", input: input) } - /// Deletes a CloudWatch log stream from an application. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Monitoring Configuration Errors. + /// Deletes an InputProcessingConfiguration from an input. + public func deleteApplicationInputProcessingConfiguration(_ input: DeleteApplicationInputProcessingConfigurationRequest) throws -> DeleteApplicationInputProcessingConfigurationResponse { + return try client.send(operation: "DeleteApplicationInputProcessingConfiguration", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a CloudWatch log stream from an application. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Working with Amazon CloudWatch Logs. public func deleteApplicationCloudWatchLoggingOption(_ input: DeleteApplicationCloudWatchLoggingOptionRequest) throws -> DeleteApplicationCloudWatchLoggingOptionResponse { return try client.send(operation: "DeleteApplicationCloudWatchLoggingOption", path: "/", httpMethod: "POST", input: input) } @@ -75,12 +80,17 @@ public struct Kinesisanalytics { return try client.send(operation: "AddApplicationInput", path: "/", httpMethod: "POST", input: input) } + /// Adds an InputProcessingConfiguration to an application. An input processor preprocesses records on the input stream before the application's SQL code executes. Currently, the only input processor available is AWS Lambda. + public func addApplicationInputProcessingConfiguration(_ input: AddApplicationInputProcessingConfigurationRequest) throws -> AddApplicationInputProcessingConfigurationResponse { + return try client.send(operation: "AddApplicationInputProcessingConfiguration", path: "/", httpMethod: "POST", input: input) + } + /// Deletes a reference data source configuration from the specified application configuration. If the application is running, Amazon Kinesis Analytics immediately removes the in-application table that you created using the AddApplicationReferenceDataSource operation. This operation requires permissions to perform the kinesisanalytics.DeleteApplicationReferenceDataSource action. public func deleteApplicationReferenceDataSource(_ input: DeleteApplicationReferenceDataSourceRequest) throws -> DeleteApplicationReferenceDataSourceResponse { return try client.send(operation: "DeleteApplicationReferenceDataSource", path: "/", httpMethod: "POST", input: input) } - /// Adds a CloudWatch log stream to monitor application configuration errors. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Monitoring Configuration Errors. + /// Adds a CloudWatch log stream to monitor application configuration errors. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Working with Amazon CloudWatch Logs. public func addApplicationCloudWatchLoggingOption(_ input: AddApplicationCloudWatchLoggingOptionRequest) throws -> AddApplicationCloudWatchLoggingOptionResponse { return try client.send(operation: "AddApplicationCloudWatchLoggingOption", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_Error.swift b/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_Error.swift index 7ea1c8da3ba..d4b4c8d67ec 100644 --- a/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_Error.swift +++ b/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_Error.swift @@ -10,6 +10,7 @@ public enum KinesisanalyticsError: AWSErrorType { case concurrentModificationException(message: String?) case unableToDetectSchemaException(message: String?) case resourceProvisionedThroughputExceededException(message: String?) + case serviceUnavailableException(message: String?) case invalidApplicationConfigurationException(message: String?) case codeValidationException(message: String?) case limitExceededException(message: String?) @@ -34,6 +35,8 @@ extension KinesisanalyticsError { self = .unableToDetectSchemaException(message: message) case "ResourceProvisionedThroughputExceededException": self = .resourceProvisionedThroughputExceededException(message: message) + case "ServiceUnavailableException": + self = .serviceUnavailableException(message: message) case "InvalidApplicationConfigurationException": self = .invalidApplicationConfigurationException(message: message) case "CodeValidationException": diff --git a/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_Shapes.swift b/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_Shapes.swift index 70ceea00ebd..80038f345e7 100644 --- a/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/kinesisanalytics/Kinesisanalytics_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Kinesisanalytics { public struct ListApplicationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HasMoreApplications", required: true, type: .boolean), AWSShapeMember(label: "ApplicationSummaries", required: true, type: .list) ] @@ -31,13 +31,13 @@ extension Kinesisanalytics { } public struct CloudWatchLoggingOption: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LogStreamARN", required: true, type: .string), AWSShapeMember(label: "RoleARN", required: true, type: .string) ] /// ARN of the CloudWatch log to receive application messages. public let logStreamARN: String - /// IAM ARN of the role to use to send application messages. Note: To write application messages to CloudWatch, the IAM role used must have the PutLogEvents policy action enabled. + /// IAM ARN of the role to use to send application messages. Note: To write application messages to CloudWatch, the IAM role that is used must have the PutLogEvents policy action enabled. public let roleARN: String public init(logStreamARN: String, roleARN: String) { @@ -52,7 +52,7 @@ extension Kinesisanalytics { } public struct InputParallelismUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CountUpdate", required: false, type: .integer) ] /// Number of in-application streams to create for the specified streaming source. @@ -71,8 +71,31 @@ extension Kinesisanalytics { } + public struct S3Configuration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleARN", required: true, type: .string), + AWSShapeMember(label: "BucketARN", required: true, type: .string), + AWSShapeMember(label: "FileKey", required: true, type: .string) + ] + public let roleARN: String + public let bucketARN: String + public let fileKey: String + + public init(roleARN: String, bucketARN: String, fileKey: String) { + self.roleARN = roleARN + self.bucketARN = bucketARN + self.fileKey = fileKey + } + + private enum CodingKeys: String, CodingKey { + case roleARN = "RoleARN" + case bucketARN = "BucketARN" + case fileKey = "FileKey" + } + } + public struct KinesisStreamsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: true, type: .string), AWSShapeMember(label: "RoleARN", required: true, type: .string) ] @@ -93,48 +116,53 @@ extension Kinesisanalytics { } public struct InputUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KinesisFirehoseInputUpdate", required: false, type: .structure), + AWSShapeMember(label: "KinesisStreamsInputUpdate", required: false, type: .structure), + AWSShapeMember(label: "InputProcessingConfigurationUpdate", required: false, type: .structure), AWSShapeMember(label: "NamePrefixUpdate", required: false, type: .string), - AWSShapeMember(label: "InputParallelismUpdate", required: false, type: .structure), + AWSShapeMember(label: "InputSchemaUpdate", required: false, type: .structure), AWSShapeMember(label: "InputId", required: true, type: .string), - AWSShapeMember(label: "KinesisStreamsInputUpdate", required: false, type: .structure), - AWSShapeMember(label: "KinesisFirehoseInputUpdate", required: false, type: .structure), - AWSShapeMember(label: "InputSchemaUpdate", required: false, type: .structure) + AWSShapeMember(label: "InputParallelismUpdate", required: false, type: .structure) ] - /// Name prefix for in-application streams that Amazon Kinesis Analytics creates for the specific streaming source. - public let namePrefixUpdate: String? - /// Describes the parallelism updates (the number in-application streams Amazon Kinesis Analytics creates for the specific streaming source). - public let inputParallelismUpdate: InputParallelismUpdate? - /// Input ID of the application input to be updated. - public let inputId: String - /// If a Amazon Kinesis stream is the streaming source to be updated, provides an updated stream ARN and IAM role ARN. - public let kinesisStreamsInputUpdate: KinesisStreamsInputUpdate? /// If an Amazon Kinesis Firehose delivery stream is the streaming source to be updated, provides an updated stream Amazon Resource Name (ARN) and IAM role ARN. public let kinesisFirehoseInputUpdate: KinesisFirehoseInputUpdate? + /// If a Amazon Kinesis stream is the streaming source to be updated, provides an updated stream ARN and IAM role ARN. + public let kinesisStreamsInputUpdate: KinesisStreamsInputUpdate? + /// Describes updates for an input processing configuration. + public let inputProcessingConfigurationUpdate: InputProcessingConfigurationUpdate? + /// Name prefix for in-application streams that Amazon Kinesis Analytics creates for the specific streaming source. + public let namePrefixUpdate: String? /// Describes the data format on the streaming source, and how record elements on the streaming source map to columns of the in-application stream that is created. public let inputSchemaUpdate: InputSchemaUpdate? + /// Input ID of the application input to be updated. + public let inputId: String + /// Describes the parallelism updates (the number in-application streams Amazon Kinesis Analytics creates for the specific streaming source). + public let inputParallelismUpdate: InputParallelismUpdate? - public init(namePrefixUpdate: String? = nil, inputParallelismUpdate: InputParallelismUpdate? = nil, inputId: String, kinesisStreamsInputUpdate: KinesisStreamsInputUpdate? = nil, kinesisFirehoseInputUpdate: KinesisFirehoseInputUpdate? = nil, inputSchemaUpdate: InputSchemaUpdate? = nil) { - self.namePrefixUpdate = namePrefixUpdate - self.inputParallelismUpdate = inputParallelismUpdate - self.inputId = inputId - self.kinesisStreamsInputUpdate = kinesisStreamsInputUpdate + public init(kinesisFirehoseInputUpdate: KinesisFirehoseInputUpdate? = nil, kinesisStreamsInputUpdate: KinesisStreamsInputUpdate? = nil, inputProcessingConfigurationUpdate: InputProcessingConfigurationUpdate? = nil, namePrefixUpdate: String? = nil, inputSchemaUpdate: InputSchemaUpdate? = nil, inputId: String, inputParallelismUpdate: InputParallelismUpdate? = nil) { self.kinesisFirehoseInputUpdate = kinesisFirehoseInputUpdate + self.kinesisStreamsInputUpdate = kinesisStreamsInputUpdate + self.inputProcessingConfigurationUpdate = inputProcessingConfigurationUpdate + self.namePrefixUpdate = namePrefixUpdate self.inputSchemaUpdate = inputSchemaUpdate + self.inputId = inputId + self.inputParallelismUpdate = inputParallelismUpdate } private enum CodingKeys: String, CodingKey { - case namePrefixUpdate = "NamePrefixUpdate" - case inputParallelismUpdate = "InputParallelismUpdate" - case inputId = "InputId" - case kinesisStreamsInputUpdate = "KinesisStreamsInputUpdate" case kinesisFirehoseInputUpdate = "KinesisFirehoseInputUpdate" + case kinesisStreamsInputUpdate = "KinesisStreamsInputUpdate" + case inputProcessingConfigurationUpdate = "InputProcessingConfigurationUpdate" + case namePrefixUpdate = "NamePrefixUpdate" case inputSchemaUpdate = "InputSchemaUpdate" + case inputId = "InputId" + case inputParallelismUpdate = "InputParallelismUpdate" } } public struct KinesisFirehoseInputDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: false, type: .string), AWSShapeMember(label: "RoleARN", required: false, type: .string) ] @@ -155,7 +183,7 @@ extension Kinesisanalytics { } public struct KinesisStreamsOutputUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleARNUpdate", required: false, type: .string), AWSShapeMember(label: "ResourceARNUpdate", required: false, type: .string) ] @@ -175,8 +203,39 @@ extension Kinesisanalytics { } } + public struct AddApplicationInputProcessingConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputProcessingConfiguration", required: true, type: .structure), + AWSShapeMember(label: "ApplicationName", required: true, type: .string), + AWSShapeMember(label: "InputId", required: true, type: .string), + AWSShapeMember(label: "CurrentApplicationVersionId", required: true, type: .long) + ] + /// The InputProcessingConfiguration to add to the application. + public let inputProcessingConfiguration: InputProcessingConfiguration + /// Name of the application to which you want to add the input processing configuration. + public let applicationName: String + /// The ID of the input configuration to which to add the input configuration. You can get a list of the input IDs for an application using the DescribeApplication operation. + public let inputId: String + /// Version of the application to which you want to add the input processing configuration. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned. + public let currentApplicationVersionId: Int64 + + public init(inputProcessingConfiguration: InputProcessingConfiguration, applicationName: String, inputId: String, currentApplicationVersionId: Int64) { + self.inputProcessingConfiguration = inputProcessingConfiguration + self.applicationName = applicationName + self.inputId = inputId + self.currentApplicationVersionId = currentApplicationVersionId + } + + private enum CodingKeys: String, CodingKey { + case inputProcessingConfiguration = "InputProcessingConfiguration" + case applicationName = "ApplicationName" + case inputId = "InputId" + case currentApplicationVersionId = "CurrentApplicationVersionId" + } + } + public struct AddApplicationReferenceDataSourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentApplicationVersionId", required: true, type: .long), AWSShapeMember(label: "ReferenceDataSource", required: true, type: .structure), AWSShapeMember(label: "ApplicationName", required: true, type: .string) @@ -202,7 +261,7 @@ extension Kinesisanalytics { } public struct KinesisFirehoseInputUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleARNUpdate", required: false, type: .string), AWSShapeMember(label: "ResourceARNUpdate", required: false, type: .string) ] @@ -222,12 +281,29 @@ extension Kinesisanalytics { } } - public struct AddApplicationOutputResponse: AWSShape { + public struct InputLambdaProcessor: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceARN", required: true, type: .string), + AWSShapeMember(label: "RoleARN", required: true, type: .string) + ] + /// The ARN of the AWS Lambda function that operates on records in the stream. + public let resourceARN: String + /// The ARN of the IAM role used to access the AWS Lambda function. + public let roleARN: String + public init(resourceARN: String, roleARN: String) { + self.resourceARN = resourceARN + self.roleARN = roleARN + } + + private enum CodingKeys: String, CodingKey { + case resourceARN = "ResourceARN" + case roleARN = "RoleARN" + } } public struct CreateApplicationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationSummary", required: true, type: .structure) ] /// In response to your CreateApplication request, Amazon Kinesis Analytics returns a response with a summary of the application it created, including the application Amazon Resource Name (ARN), name, and status. @@ -242,6 +318,26 @@ extension Kinesisanalytics { } } + public struct InputProcessingConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputLambdaProcessor", required: true, type: .structure) + ] + /// The InputLambdaProcessor that is used to preprocess the records in the stream prior to being processed by your application code. + public let inputLambdaProcessor: InputLambdaProcessor + + public init(inputLambdaProcessor: InputLambdaProcessor) { + self.inputLambdaProcessor = inputLambdaProcessor + } + + private enum CodingKeys: String, CodingKey { + case inputLambdaProcessor = "InputLambdaProcessor" + } + } + + public struct AddApplicationOutputResponse: AWSShape { + + } + public enum ApplicationStatus: String, CustomStringConvertible, Codable { case deleting = "DELETING" case starting = "STARTING" @@ -252,8 +348,40 @@ extension Kinesisanalytics { public var description: String { return self.rawValue } } + public struct InputProcessingConfigurationDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputLambdaProcessorDescription", required: false, type: .structure) + ] + /// Provides configuration information about the associated InputLambdaProcessorDescription. + public let inputLambdaProcessorDescription: InputLambdaProcessorDescription? + + public init(inputLambdaProcessorDescription: InputLambdaProcessorDescription? = nil) { + self.inputLambdaProcessorDescription = inputLambdaProcessorDescription + } + + private enum CodingKeys: String, CodingKey { + case inputLambdaProcessorDescription = "InputLambdaProcessorDescription" + } + } + + public struct InputProcessingConfigurationUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputLambdaProcessorUpdate", required: true, type: .structure) + ] + /// Provides update information for an InputLambdaProcessor. + public let inputLambdaProcessorUpdate: InputLambdaProcessorUpdate + + public init(inputLambdaProcessorUpdate: InputLambdaProcessorUpdate) { + self.inputLambdaProcessorUpdate = inputLambdaProcessorUpdate + } + + private enum CodingKeys: String, CodingKey { + case inputLambdaProcessorUpdate = "InputLambdaProcessorUpdate" + } + } + public struct StartApplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InputConfigurations", required: true, type: .list), AWSShapeMember(label: "ApplicationName", required: true, type: .string) ] @@ -274,7 +402,7 @@ extension Kinesisanalytics { } public struct StopApplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationName", required: true, type: .string) ] /// Name of the running application to stop. @@ -290,7 +418,7 @@ extension Kinesisanalytics { } public struct S3ReferenceDataSource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReferenceRoleARN", required: true, type: .string), AWSShapeMember(label: "BucketARN", required: true, type: .string), AWSShapeMember(label: "FileKey", required: true, type: .string) @@ -316,7 +444,7 @@ extension Kinesisanalytics { } public struct KinesisFirehoseOutputUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleARNUpdate", required: false, type: .string), AWSShapeMember(label: "ResourceARNUpdate", required: false, type: .string) ] @@ -337,7 +465,7 @@ extension Kinesisanalytics { } public struct InputStartingPositionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InputStartingPosition", required: false, type: .enum) ] /// The starting position on the stream. NOW - Start reading just after the most recent record in the stream, start at the request timestamp that the customer issued. TRIM_HORIZON - Start reading at the last untrimmed record in the stream, which is the oldest record available in the stream. This option is not available for an Amazon Kinesis Firehose delivery stream. LAST_STOPPED_POINT - Resume reading from where the application last stopped reading. @@ -353,7 +481,7 @@ extension Kinesisanalytics { } public struct S3ReferenceDataSourceUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BucketARNUpdate", required: false, type: .string), AWSShapeMember(label: "ReferenceRoleARNUpdate", required: false, type: .string), AWSShapeMember(label: "FileKeyUpdate", required: false, type: .string) @@ -383,7 +511,7 @@ extension Kinesisanalytics { } public struct RecordFormat: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordFormatType", required: true, type: .enum), AWSShapeMember(label: "MappingParameters", required: false, type: .structure) ] @@ -403,7 +531,7 @@ extension Kinesisanalytics { } public struct CreateApplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Inputs", required: false, type: .list), AWSShapeMember(label: "ApplicationName", required: true, type: .string), AWSShapeMember(label: "Outputs", required: false, type: .list), @@ -419,7 +547,7 @@ extension Kinesisanalytics { public let outputs: [Output]? /// One or more SQL statements that read input data, transform it, and generate output. For example, you can write a SQL statement that reads data from one in-application stream, generates a running average of the number of advertisement clicks by vendor, and insert resulting rows in another in-application stream using pumps. For more inforamtion about the typical pattern, see Application Code. You can provide such series of SQL statements, where output of one statement can be used as the input for the next statement. You store intermediate results by creating in-application streams and pumps. Note that the application code must create the streams with names specified in the Outputs. For example, if your Outputs defines output streams named ExampleOutputStream1 and ExampleOutputStream2, then your application code must create these streams. public let applicationCode: String? - /// Use this parameter to configure a CloudWatch log stream to monitor application configuration errors. For more information, see Monitoring Configuration Errors. + /// Use this parameter to configure a CloudWatch log stream to monitor application configuration errors. For more information, see Working with Amazon CloudWatch Logs. public let cloudWatchLoggingOptions: [CloudWatchLoggingOption]? /// Summary description of the application. public let applicationDescription: String? @@ -444,7 +572,7 @@ extension Kinesisanalytics { } public struct DestinationSchema: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordFormatType", required: false, type: .enum) ] /// Specifies the format of the records on the output stream. @@ -460,7 +588,7 @@ extension Kinesisanalytics { } public struct DeleteApplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CreateTimestamp", required: true, type: .timestamp), AWSShapeMember(label: "ApplicationName", required: true, type: .string) ] @@ -481,27 +609,36 @@ extension Kinesisanalytics { } public struct DiscoverInputSchemaRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourceARN", required: true, type: .string), - AWSShapeMember(label: "RoleARN", required: true, type: .string), - AWSShapeMember(label: "InputStartingPositionConfiguration", required: true, type: .structure) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputProcessingConfiguration", required: false, type: .structure), + AWSShapeMember(label: "RoleARN", required: false, type: .string), + AWSShapeMember(label: "S3Configuration", required: false, type: .structure), + AWSShapeMember(label: "ResourceARN", required: false, type: .string), + AWSShapeMember(label: "InputStartingPositionConfiguration", required: false, type: .structure) ] - /// Amazon Resource Name (ARN) of the streaming source. - public let resourceARN: String + /// The InputProcessingConfiguration to use to preprocess the records before discovering the schema of the records. + public let inputProcessingConfiguration: InputProcessingConfiguration? /// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. - public let roleARN: String + public let roleARN: String? + public let s3Configuration: S3Configuration? + /// Amazon Resource Name (ARN) of the streaming source. + public let resourceARN: String? /// Point at which you want Amazon Kinesis Analytics to start reading records from the specified streaming source discovery purposes. - public let inputStartingPositionConfiguration: InputStartingPositionConfiguration + public let inputStartingPositionConfiguration: InputStartingPositionConfiguration? - public init(resourceARN: String, roleARN: String, inputStartingPositionConfiguration: InputStartingPositionConfiguration) { - self.resourceARN = resourceARN + public init(inputProcessingConfiguration: InputProcessingConfiguration? = nil, roleARN: String? = nil, s3Configuration: S3Configuration? = nil, resourceARN: String? = nil, inputStartingPositionConfiguration: InputStartingPositionConfiguration? = nil) { + self.inputProcessingConfiguration = inputProcessingConfiguration self.roleARN = roleARN + self.s3Configuration = s3Configuration + self.resourceARN = resourceARN self.inputStartingPositionConfiguration = inputStartingPositionConfiguration } private enum CodingKeys: String, CodingKey { - case resourceARN = "ResourceARN" + case inputProcessingConfiguration = "InputProcessingConfiguration" case roleARN = "RoleARN" + case s3Configuration = "S3Configuration" + case resourceARN = "ResourceARN" case inputStartingPositionConfiguration = "InputStartingPositionConfiguration" } } @@ -511,7 +648,7 @@ extension Kinesisanalytics { } public struct DeleteApplicationOutputRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentApplicationVersionId", required: true, type: .long), AWSShapeMember(label: "OutputId", required: true, type: .string), AWSShapeMember(label: "ApplicationName", required: true, type: .string) @@ -537,20 +674,21 @@ extension Kinesisanalytics { } public struct InputDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KinesisFirehoseInputDescription", required: false, type: .structure), - AWSShapeMember(label: "KinesisStreamsInputDescription", required: false, type: .structure), + AWSShapeMember(label: "InputProcessingConfigurationDescription", required: false, type: .structure), AWSShapeMember(label: "InputParallelism", required: false, type: .structure), AWSShapeMember(label: "NamePrefix", required: false, type: .string), AWSShapeMember(label: "InAppStreamNames", required: false, type: .list), AWSShapeMember(label: "InputStartingPositionConfiguration", required: false, type: .structure), + AWSShapeMember(label: "KinesisStreamsInputDescription", required: false, type: .structure), AWSShapeMember(label: "InputSchema", required: false, type: .structure), AWSShapeMember(label: "InputId", required: false, type: .string) ] /// If an Amazon Kinesis Firehose delivery stream is configured as a streaming source, provides the Firehose delivery stream's Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. public let kinesisFirehoseInputDescription: KinesisFirehoseInputDescription? - /// If an Amazon Kinesis stream is configured as streaming source, provides Amazon Kinesis stream's ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. - public let kinesisStreamsInputDescription: KinesisStreamsInputDescription? + /// The description of the preprocessor that executes on records in this input before the application's code is run. + public let inputProcessingConfigurationDescription: InputProcessingConfigurationDescription? /// Describes the configured parallelism (number of in-application streams mapped to the streaming source). public let inputParallelism: InputParallelism? /// In-application name prefix. @@ -559,35 +697,40 @@ extension Kinesisanalytics { public let inAppStreamNames: [String]? /// Point at which the application is configured to read from the input stream. public let inputStartingPositionConfiguration: InputStartingPositionConfiguration? + /// If an Amazon Kinesis stream is configured as streaming source, provides Amazon Kinesis stream's ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. + public let kinesisStreamsInputDescription: KinesisStreamsInputDescription? + /// Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created. public let inputSchema: SourceSchema? /// Input ID associated with the application input. This is the ID that Amazon Kinesis Analytics assigns to each input configuration you add to your application. public let inputId: String? - public init(kinesisFirehoseInputDescription: KinesisFirehoseInputDescription? = nil, kinesisStreamsInputDescription: KinesisStreamsInputDescription? = nil, inputParallelism: InputParallelism? = nil, namePrefix: String? = nil, inAppStreamNames: [String]? = nil, inputStartingPositionConfiguration: InputStartingPositionConfiguration? = nil, inputSchema: SourceSchema? = nil, inputId: String? = nil) { + public init(kinesisFirehoseInputDescription: KinesisFirehoseInputDescription? = nil, inputProcessingConfigurationDescription: InputProcessingConfigurationDescription? = nil, inputParallelism: InputParallelism? = nil, namePrefix: String? = nil, inAppStreamNames: [String]? = nil, inputStartingPositionConfiguration: InputStartingPositionConfiguration? = nil, kinesisStreamsInputDescription: KinesisStreamsInputDescription? = nil, inputSchema: SourceSchema? = nil, inputId: String? = nil) { self.kinesisFirehoseInputDescription = kinesisFirehoseInputDescription - self.kinesisStreamsInputDescription = kinesisStreamsInputDescription + self.inputProcessingConfigurationDescription = inputProcessingConfigurationDescription self.inputParallelism = inputParallelism self.namePrefix = namePrefix self.inAppStreamNames = inAppStreamNames self.inputStartingPositionConfiguration = inputStartingPositionConfiguration + self.kinesisStreamsInputDescription = kinesisStreamsInputDescription self.inputSchema = inputSchema self.inputId = inputId } private enum CodingKeys: String, CodingKey { case kinesisFirehoseInputDescription = "KinesisFirehoseInputDescription" - case kinesisStreamsInputDescription = "KinesisStreamsInputDescription" + case inputProcessingConfigurationDescription = "InputProcessingConfigurationDescription" case inputParallelism = "InputParallelism" case namePrefix = "NamePrefix" case inAppStreamNames = "InAppStreamNames" case inputStartingPositionConfiguration = "InputStartingPositionConfiguration" + case kinesisStreamsInputDescription = "KinesisStreamsInputDescription" case inputSchema = "InputSchema" case inputId = "InputId" } } public struct ApplicationSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationARN", required: true, type: .string), AWSShapeMember(label: "ApplicationName", required: true, type: .string), AWSShapeMember(label: "ApplicationStatus", required: true, type: .enum) @@ -613,10 +756,10 @@ extension Kinesisanalytics { } public struct JSONMappingParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordRowPath", required: true, type: .string) ] - /// Path to the top-level parent that contains the records. For example, consider the following JSON record: In the RecordRowPath, "$" refers to the root and path "$.vehicle.Model" refers to the specific "Model" key in the JSON. + /// Path to the top-level parent that contains the records. public let recordRowPath: String public init(recordRowPath: String) { @@ -628,8 +771,34 @@ extension Kinesisanalytics { } } + public struct DeleteApplicationInputProcessingConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CurrentApplicationVersionId", required: true, type: .long), + AWSShapeMember(label: "InputId", required: true, type: .string), + AWSShapeMember(label: "ApplicationName", required: true, type: .string) + ] + /// The version ID of the Kinesis Analytics application. + public let currentApplicationVersionId: Int64 + /// The ID of the input configuration from which to delete the input configuration. You can get a list of the input IDs for an application using the DescribeApplication operation. + public let inputId: String + /// The Kinesis Analytics application name. + public let applicationName: String + + public init(currentApplicationVersionId: Int64, inputId: String, applicationName: String) { + self.currentApplicationVersionId = currentApplicationVersionId + self.inputId = inputId + self.applicationName = applicationName + } + + private enum CodingKeys: String, CodingKey { + case currentApplicationVersionId = "CurrentApplicationVersionId" + case inputId = "InputId" + case applicationName = "ApplicationName" + } + } + public struct CSVMappingParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordRowDelimiter", required: true, type: .string), AWSShapeMember(label: "RecordColumnDelimiter", required: true, type: .string) ] @@ -650,7 +819,7 @@ extension Kinesisanalytics { } public struct AddApplicationOutputRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentApplicationVersionId", required: true, type: .long), AWSShapeMember(label: "ApplicationName", required: true, type: .string), AWSShapeMember(label: "Output", required: true, type: .structure) @@ -676,7 +845,7 @@ extension Kinesisanalytics { } public struct KinesisStreamsInputDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: false, type: .string), AWSShapeMember(label: "RoleARN", required: false, type: .string) ] @@ -697,25 +866,29 @@ extension Kinesisanalytics { } public struct Input: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputProcessingConfiguration", required: false, type: .structure), AWSShapeMember(label: "KinesisFirehoseInput", required: false, type: .structure), AWSShapeMember(label: "InputSchema", required: true, type: .structure), AWSShapeMember(label: "NamePrefix", required: true, type: .string), AWSShapeMember(label: "KinesisStreamsInput", required: false, type: .structure), AWSShapeMember(label: "InputParallelism", required: false, type: .structure) ] - /// If the streaming source is an Amazon Kinesis Firehose delivery stream, identifies the Firehose delivery stream's ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. + /// The InputProcessingConfiguration for the Input. An input processor transforms records as they are received from the stream, before the application's SQL code executes. Currently, the only input processing configuration available is InputLambdaProcessor. + public let inputProcessingConfiguration: InputProcessingConfiguration? + /// If the streaming source is an Amazon Kinesis Firehose delivery stream, identifies the Firehose delivery stream's ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. Note: Either KinesisStreamsInput or KinesisFirehoseInput is required. public let kinesisFirehoseInput: KinesisFirehoseInput? /// Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created. Also used to describe the format of the reference data source. public let inputSchema: SourceSchema /// Name prefix to use when creating in-application stream. Suppose you specify a prefix "MyInApplicationStream". Amazon Kinesis Analytics will then create one or more (as per the InputParallelism count you specified) in-application streams with names "MyInApplicationStream_001", "MyInApplicationStream_002" and so on. public let namePrefix: String - /// If the streaming source is an Amazon Kinesis stream, identifies the stream's Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. + /// If the streaming source is an Amazon Kinesis stream, identifies the stream's Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. Note: Either KinesisStreamsInput or KinesisFirehoseInput is required. public let kinesisStreamsInput: KinesisStreamsInput? /// Describes the number of in-application streams to create. Data from your source will be routed to these in-application input streams. (see Configuring Application Input. public let inputParallelism: InputParallelism? - public init(kinesisFirehoseInput: KinesisFirehoseInput? = nil, inputSchema: SourceSchema, namePrefix: String, kinesisStreamsInput: KinesisStreamsInput? = nil, inputParallelism: InputParallelism? = nil) { + public init(inputProcessingConfiguration: InputProcessingConfiguration? = nil, kinesisFirehoseInput: KinesisFirehoseInput? = nil, inputSchema: SourceSchema, namePrefix: String, kinesisStreamsInput: KinesisStreamsInput? = nil, inputParallelism: InputParallelism? = nil) { + self.inputProcessingConfiguration = inputProcessingConfiguration self.kinesisFirehoseInput = kinesisFirehoseInput self.inputSchema = inputSchema self.namePrefix = namePrefix @@ -724,6 +897,7 @@ extension Kinesisanalytics { } private enum CodingKeys: String, CodingKey { + case inputProcessingConfiguration = "InputProcessingConfiguration" case kinesisFirehoseInput = "KinesisFirehoseInput" case inputSchema = "InputSchema" case namePrefix = "NamePrefix" @@ -733,7 +907,7 @@ extension Kinesisanalytics { } public struct KinesisFirehoseOutputDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: false, type: .string), AWSShapeMember(label: "RoleARN", required: false, type: .string) ] @@ -758,7 +932,7 @@ extension Kinesisanalytics { } public struct SourceSchema: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordFormat", required: true, type: .structure), AWSShapeMember(label: "RecordEncoding", required: false, type: .string), AWSShapeMember(label: "RecordColumns", required: true, type: .list) @@ -784,7 +958,7 @@ extension Kinesisanalytics { } public struct KinesisFirehoseInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: true, type: .string), AWSShapeMember(label: "RoleARN", required: true, type: .string) ] @@ -805,7 +979,7 @@ extension Kinesisanalytics { } public struct InputConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string), AWSShapeMember(label: "InputStartingPositionConfiguration", required: true, type: .structure) ] @@ -826,7 +1000,7 @@ extension Kinesisanalytics { } public struct OutputDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KinesisStreamsOutputDescription", required: false, type: .structure), AWSShapeMember(label: "DestinationSchema", required: false, type: .structure), AWSShapeMember(label: "Name", required: false, type: .string), @@ -862,7 +1036,7 @@ extension Kinesisanalytics { } public struct KinesisFirehoseOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: true, type: .string), AWSShapeMember(label: "RoleARN", required: true, type: .string) ] @@ -882,8 +1056,29 @@ extension Kinesisanalytics { } } + public struct InputLambdaProcessorDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceARN", required: false, type: .string), + AWSShapeMember(label: "RoleARN", required: false, type: .string) + ] + /// The ARN of the AWS Lambda function that is used to preprocess the records in the stream. + public let resourceARN: String? + /// The ARN of the IAM role used to access the AWS Lambda function. + public let roleARN: String? + + public init(resourceARN: String? = nil, roleARN: String? = nil) { + self.resourceARN = resourceARN + self.roleARN = roleARN + } + + private enum CodingKeys: String, CodingKey { + case resourceARN = "ResourceARN" + case roleARN = "RoleARN" + } + } + public struct CloudWatchLoggingOptionDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LogStreamARN", required: true, type: .string), AWSShapeMember(label: "CloudWatchLoggingOptionId", required: false, type: .string), AWSShapeMember(label: "RoleARN", required: true, type: .string) @@ -909,7 +1104,7 @@ extension Kinesisanalytics { } public struct DescribeApplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationName", required: true, type: .string) ] /// Name of the application. @@ -925,7 +1120,7 @@ extension Kinesisanalytics { } public struct KinesisStreamsInputUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleARNUpdate", required: false, type: .string), AWSShapeMember(label: "ResourceARNUpdate", required: false, type: .string) ] @@ -946,33 +1141,38 @@ extension Kinesisanalytics { } public struct DiscoverInputSchemaResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InputSchema", required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParsedInputRecords", required: false, type: .list), + AWSShapeMember(label: "ProcessedInputRecords", required: false, type: .list), + AWSShapeMember(label: "InputSchema", required: false, type: .structure), AWSShapeMember(label: "RawInputRecords", required: false, type: .list) ] - /// Schema inferred from the streaming source. It identifies the format of the data in the streaming source and how each data element maps to corresponding columns in the in-application stream that you can create. - public let inputSchema: SourceSchema? /// An array of elements, where each element corresponds to a row in a stream record (a stream record can have more than one row). public let parsedInputRecords: [[String]]? + /// Stream data that was modified by the processor specified in the InputProcessingConfiguration parameter. + public let processedInputRecords: [String]? + /// Schema inferred from the streaming source. It identifies the format of the data in the streaming source and how each data element maps to corresponding columns in the in-application stream that you can create. + public let inputSchema: SourceSchema? /// Raw stream data that was sampled to infer the schema. public let rawInputRecords: [String]? - public init(inputSchema: SourceSchema? = nil, parsedInputRecords: [[String]]? = nil, rawInputRecords: [String]? = nil) { - self.inputSchema = inputSchema + public init(parsedInputRecords: [[String]]? = nil, processedInputRecords: [String]? = nil, inputSchema: SourceSchema? = nil, rawInputRecords: [String]? = nil) { self.parsedInputRecords = parsedInputRecords + self.processedInputRecords = processedInputRecords + self.inputSchema = inputSchema self.rawInputRecords = rawInputRecords } private enum CodingKeys: String, CodingKey { - case inputSchema = "InputSchema" case parsedInputRecords = "ParsedInputRecords" + case processedInputRecords = "ProcessedInputRecords" + case inputSchema = "InputSchema" case rawInputRecords = "RawInputRecords" } } public struct ApplicationDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationDescription", required: false, type: .string), AWSShapeMember(label: "ApplicationStatus", required: true, type: .enum), AWSShapeMember(label: "LastUpdateTimestamp", required: false, type: .timestamp), @@ -1006,7 +1206,7 @@ extension Kinesisanalytics { public let applicationARN: String /// Provides the current application version. public let applicationVersionId: Int64 - /// Describes the CloudWatch log streams configured to receive application messages. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Monitoring Configuration Errors. + /// Describes the CloudWatch log streams that are configured to receive application messages. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Working with Amazon CloudWatch Logs. public let cloudWatchLoggingOptionDescriptions: [CloudWatchLoggingOptionDescription]? /// Describes reference data sources configured for the application. For more information, see Configuring Application Input. public let referenceDataSourceDescriptions: [ReferenceDataSourceDescription]? @@ -1043,7 +1243,7 @@ extension Kinesisanalytics { } public struct InputSchemaUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordColumnUpdates", required: false, type: .list), AWSShapeMember(label: "RecordEncodingUpdate", required: false, type: .string), AWSShapeMember(label: "RecordFormatUpdate", required: false, type: .structure) @@ -1076,7 +1276,7 @@ extension Kinesisanalytics { } public struct KinesisStreamsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: true, type: .string), AWSShapeMember(label: "RoleARN", required: true, type: .string) ] @@ -1097,7 +1297,7 @@ extension Kinesisanalytics { } public struct InputParallelism: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Count", required: false, type: .integer) ] /// Number of in-application streams to create. For more information, see Limits. @@ -1112,12 +1312,16 @@ extension Kinesisanalytics { } } + public struct DeleteApplicationInputProcessingConfigurationResponse: AWSShape { + + } + public struct DeleteApplicationResponse: AWSShape { } public struct ReferenceDataSourceDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3ReferenceDataSourceDescription", required: true, type: .structure), AWSShapeMember(label: "ReferenceId", required: true, type: .string), AWSShapeMember(label: "TableName", required: true, type: .string), @@ -1146,8 +1350,29 @@ extension Kinesisanalytics { } } + public struct InputLambdaProcessorUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleARNUpdate", required: false, type: .string), + AWSShapeMember(label: "ResourceARNUpdate", required: false, type: .string) + ] + /// The ARN of the new IAM role used to access the AWS Lambda function. + public let roleARNUpdate: String? + /// The ARN of the new AWS Lambda function that is used to preprocess the records in the stream. + public let resourceARNUpdate: String? + + public init(roleARNUpdate: String? = nil, resourceARNUpdate: String? = nil) { + self.roleARNUpdate = roleARNUpdate + self.resourceARNUpdate = resourceARNUpdate + } + + private enum CodingKeys: String, CodingKey { + case roleARNUpdate = "RoleARNUpdate" + case resourceARNUpdate = "ResourceARNUpdate" + } + } + public struct CloudWatchLoggingOptionUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleARNUpdate", required: false, type: .string), AWSShapeMember(label: "LogStreamARNUpdate", required: false, type: .string), AWSShapeMember(label: "CloudWatchLoggingOptionId", required: true, type: .string) @@ -1173,7 +1398,7 @@ extension Kinesisanalytics { } public struct DeleteApplicationReferenceDataSourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentApplicationVersionId", required: true, type: .long), AWSShapeMember(label: "ReferenceId", required: true, type: .string), AWSShapeMember(label: "ApplicationName", required: true, type: .string) @@ -1205,7 +1430,7 @@ extension Kinesisanalytics { } public struct ReferenceDataSourceUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3ReferenceDataSourceUpdate", required: false, type: .structure), AWSShapeMember(label: "TableNameUpdate", required: false, type: .string), AWSShapeMember(label: "ReferenceSchemaUpdate", required: false, type: .structure), @@ -1235,7 +1460,7 @@ extension Kinesisanalytics { } public struct Output: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KinesisFirehoseOutput", required: false, type: .structure), AWSShapeMember(label: "DestinationSchema", required: true, type: .structure), AWSShapeMember(label: "Name", required: true, type: .string), @@ -1265,16 +1490,16 @@ extension Kinesisanalytics { } public struct AddApplicationCloudWatchLoggingOptionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentApplicationVersionId", required: true, type: .long), AWSShapeMember(label: "ApplicationName", required: true, type: .string), AWSShapeMember(label: "CloudWatchLoggingOption", required: true, type: .structure) ] - /// The version ID of the Amazon Kinesis Analytics application. + /// The version ID of the Kinesis Analytics application. public let currentApplicationVersionId: Int64 - /// The Amazon Kinesis Analytics application name. + /// The Kinesis Analytics application name. public let applicationName: String - /// Provide the CloudWatch log stream ARN and the IAM role ARN. Note: To write application messages to CloudWatch, the IAM role used must have the PutLogEvents policy action enabled. + /// Provides the CloudWatch log stream Amazon Resource Name (ARN) and the IAM role ARN. Note: To write application messages to CloudWatch, the IAM role that is used must have the PutLogEvents policy action enabled. public let cloudWatchLoggingOption: CloudWatchLoggingOption public init(currentApplicationVersionId: Int64, applicationName: String, cloudWatchLoggingOption: CloudWatchLoggingOption) { @@ -1295,7 +1520,7 @@ extension Kinesisanalytics { } public struct S3ReferenceDataSourceDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReferenceRoleARN", required: true, type: .string), AWSShapeMember(label: "BucketARN", required: true, type: .string), AWSShapeMember(label: "FileKey", required: true, type: .string) @@ -1325,7 +1550,7 @@ extension Kinesisanalytics { } public struct ApplicationUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OutputUpdates", required: false, type: .list), AWSShapeMember(label: "CloudWatchLoggingOptionUpdates", required: false, type: .list), AWSShapeMember(label: "ReferenceDataSourceUpdates", required: false, type: .list), @@ -1361,7 +1586,7 @@ extension Kinesisanalytics { } public struct MappingParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CSVMappingParameters", required: false, type: .structure), AWSShapeMember(label: "JSONMappingParameters", required: false, type: .structure) ] @@ -1382,7 +1607,7 @@ extension Kinesisanalytics { } public struct OutputUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NameUpdate", required: false, type: .string), AWSShapeMember(label: "KinesisStreamsOutputUpdate", required: false, type: .structure), AWSShapeMember(label: "KinesisFirehoseOutputUpdate", required: false, type: .structure), @@ -1417,7 +1642,7 @@ extension Kinesisanalytics { } public struct KinesisStreamsOutputDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: false, type: .string), AWSShapeMember(label: "RoleARN", required: false, type: .string) ] @@ -1438,7 +1663,7 @@ extension Kinesisanalytics { } public struct ListApplicationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "ExclusiveStartApplicationName", required: false, type: .string) ] @@ -1463,16 +1688,16 @@ extension Kinesisanalytics { } public struct DeleteApplicationCloudWatchLoggingOptionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentApplicationVersionId", required: true, type: .long), AWSShapeMember(label: "CloudWatchLoggingOptionId", required: true, type: .string), AWSShapeMember(label: "ApplicationName", required: true, type: .string) ] - /// The version ID of the Amazon Kinesis Analytics application. + /// The version ID of the Kinesis Analytics application. public let currentApplicationVersionId: Int64 /// The CloudWatchLoggingOptionId of the CloudWatch logging option to delete. You can use the DescribeApplication operation to get the CloudWatchLoggingOptionId. public let cloudWatchLoggingOptionId: String - /// The Amazon Kinesis Analytics application name. + /// The Kinesis Analytics application name. public let applicationName: String public init(currentApplicationVersionId: Int64, cloudWatchLoggingOptionId: String, applicationName: String) { @@ -1489,7 +1714,7 @@ extension Kinesisanalytics { } public struct RecordColumn: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Mapping", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "SqlType", required: true, type: .string) @@ -1515,7 +1740,7 @@ extension Kinesisanalytics { } public struct DescribeApplicationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationDetail", required: true, type: .structure) ] /// Provides a description of the application, such as the application Amazon Resource Name (ARN), status, latest version, and input and output configuration details. @@ -1531,7 +1756,7 @@ extension Kinesisanalytics { } public struct ReferenceDataSource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3ReferenceDataSource", required: false, type: .structure), AWSShapeMember(label: "ReferenceSchema", required: true, type: .structure), AWSShapeMember(label: "TableName", required: true, type: .string) @@ -1554,8 +1779,12 @@ extension Kinesisanalytics { } } + public struct AddApplicationInputProcessingConfigurationResponse: AWSShape { + + } + public struct UpdateApplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentApplicationVersionId", required: true, type: .long), AWSShapeMember(label: "ApplicationUpdate", required: true, type: .structure), AWSShapeMember(label: "ApplicationName", required: true, type: .string) @@ -1585,13 +1814,14 @@ extension Kinesisanalytics { } public struct AddApplicationInputRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentApplicationVersionId", required: true, type: .long), AWSShapeMember(label: "Input", required: true, type: .structure), AWSShapeMember(label: "ApplicationName", required: true, type: .string) ] /// Current version of your Amazon Kinesis Analytics application. You can use the DescribeApplication operation to find the current application version. public let currentApplicationVersionId: Int64 + /// The Input to add. public let input: Input /// Name of your existing Amazon Kinesis Analytics application to which you want to add the streaming source. public let applicationName: String diff --git a/Sources/AWSSDKSwift/Services/kinesisvideo/Kinesisvideo_API.swift b/Sources/AWSSDKSwift/Services/kinesisvideo/Kinesisvideo_API.swift new file mode 100644 index 00000000000..72286caef3d --- /dev/null +++ b/Sources/AWSSDKSwift/Services/kinesisvideo/Kinesisvideo_API.swift @@ -0,0 +1,78 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** + +*/ +public struct Kinesisvideo { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "kinesisvideo", + serviceProtocol: ServiceProtocol(type: .restjson), + apiVersion: "2017-09-30", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [KinesisvideoError.self] + ) + } + + /// Gets an endpoint for a specified stream for either reading or writing. Use this endpoint in your application to read from the specified stream (using the GetMedia or GetMediaForFragmentList operations) or write to it (using the PutMedia operation). The returned endpoint does not have the API name appended. The client needs to add the API name to the returned endpoint. In the request, specify the stream either by StreamName or StreamARN. + public func getDataEndpoint(_ input: GetDataEndpointInput) throws -> GetDataEndpointOutput { + return try client.send(operation: "GetDataEndpoint", path: "/getDataEndpoint", httpMethod: "POST", input: input) + } + + /// Returns the most current information about the specified stream. You must specify either the StreamName or the StreamARN. + public func describeStream(_ input: DescribeStreamInput) throws -> DescribeStreamOutput { + return try client.send(operation: "DescribeStream", path: "/describeStream", httpMethod: "POST", input: input) + } + + /// Returns a list of tags associated with the specified stream. In the request, you must specify either the StreamName or the StreamARN. + public func listTagsForStream(_ input: ListTagsForStreamInput) throws -> ListTagsForStreamOutput { + return try client.send(operation: "ListTagsForStream", path: "/listTagsForStream", httpMethod: "POST", input: input) + } + + /// Adds one or more tags to a stream. A tag is a key-value pair (the value is optional) that you can define and assign to AWS resources. If you specify a tag that already exists, the tag value is replaced with the value that you specify in the request. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide. You must provide either the StreamName or the StreamARN. This operation requires permission for the KinesisVideo:TagStream action. Kinesis video streams support up to 50 tags. + public func tagStream(_ input: TagStreamInput) throws -> TagStreamOutput { + return try client.send(operation: "TagStream", path: "/tagStream", httpMethod: "POST", input: input) + } + + /// Updates stream metadata, such as the device name and media type. You must provide the stream name or the Amazon Resource Name (ARN) of the stream. To make sure that you have the latest version of the stream before updating it, you can specify the stream version. Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams assigns a new version number. To get the latest stream version, use the DescribeStream API. UpdateStream is an asynchronous operation, and takes time to complete. + public func updateStream(_ input: UpdateStreamInput) throws -> UpdateStreamOutput { + return try client.send(operation: "UpdateStream", path: "/updateStream", httpMethod: "POST", input: input) + } + + /// Returns an array of StreamInfo objects. Each object describes a stream. To retrieve only streams that satisfy a specific condition, you can specify a StreamNameCondition. + public func listStreams(_ input: ListStreamsInput) throws -> ListStreamsOutput { + return try client.send(operation: "ListStreams", path: "/listStreams", httpMethod: "POST", input: input) + } + + /// Deletes a Kinesis video stream and the data contained in the stream. This method marks the stream for deletion, and makes the data in the stream inaccessible immediately. To ensure that you have the latest version of the stream before deleting it, you can specify the stream version. Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams assigns a new version number. To get the latest stream version, use the DescribeStream API. This operation requires permission for the KinesisVideo:DeleteStream action. + public func deleteStream(_ input: DeleteStreamInput) throws -> DeleteStreamOutput { + return try client.send(operation: "DeleteStream", path: "/deleteStream", httpMethod: "POST", input: input) + } + + /// Removes one or more tags from a stream. In the request, specify only a tag key or keys; don't specify the value. If you specify a tag key that does not exist, it's ignored. In the request, you must provide the StreamName or StreamARN. + public func untagStream(_ input: UntagStreamInput) throws -> UntagStreamOutput { + return try client.send(operation: "UntagStream", path: "/untagStream", httpMethod: "POST", input: input) + } + + /// Increases or decreases the stream's data retention period by the value that you specify. To indicate whether you want to increase or decrease the data retention period, specify the Operation parameter in the request body. In the request, you must specify either the StreamName or the StreamARN. The retention period that you specify replaces the current value. This operation requires permission for the KinesisVideo:UpdateDataRetention action. Changing the data retention period affects the data in the stream as follows: If the data retention period is increased, existing data is retained for the new retention period. For example, if the data retention period is increased from one hour to seven hours, all existing data is retained for seven hours. If the data retention period is decreased, existing data is retained for the new retention period. For example, if the data retention period is decreased from seven hours to one hour, all existing data is retained for one hour, and any data older than one hour is deleted immediately. + public func updateDataRetention(_ input: UpdateDataRetentionInput) throws -> UpdateDataRetentionOutput { + return try client.send(operation: "UpdateDataRetention", path: "/updateDataRetention", httpMethod: "POST", input: input) + } + + /// Creates a new Kinesis video stream. When you create a new stream, Kinesis Video Streams assigns it a version number. When you change the stream's metadata, Kinesis Video Streams updates the version. CreateStream is an asynchronous operation. For information about how the service works, see How it Works. You must have permissions for the KinesisVideo:CreateStream action. + public func createStream(_ input: CreateStreamInput) throws -> CreateStreamOutput { + return try client.send(operation: "CreateStream", path: "/createStream", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/kinesisvideo/Kinesisvideo_Error.swift b/Sources/AWSSDKSwift/Services/kinesisvideo/Kinesisvideo_Error.swift new file mode 100644 index 00000000000..b3c7033a248 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/kinesisvideo/Kinesisvideo_Error.swift @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Kinesisvideo +public enum KinesisvideoError: AWSErrorType { + case invalidArgumentException(message: String?) + case resourceNotFoundException(message: String?) + case clientLimitExceededException(message: String?) + case notAuthorizedException(message: String?) + case invalidResourceFormatException(message: String?) + case tagsPerResourceExceededLimitException(message: String?) + case resourceInUseException(message: String?) + case versionMismatchException(message: String?) + case accountStreamLimitExceededException(message: String?) + case deviceStreamLimitExceededException(message: String?) + case invalidDeviceException(message: String?) +} + +extension KinesisvideoError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "InvalidArgumentException": + self = .invalidArgumentException(message: message) + case "ResourceNotFoundException": + self = .resourceNotFoundException(message: message) + case "ClientLimitExceededException": + self = .clientLimitExceededException(message: message) + case "NotAuthorizedException": + self = .notAuthorizedException(message: message) + case "InvalidResourceFormatException": + self = .invalidResourceFormatException(message: message) + case "TagsPerResourceExceededLimitException": + self = .tagsPerResourceExceededLimitException(message: message) + case "ResourceInUseException": + self = .resourceInUseException(message: message) + case "VersionMismatchException": + self = .versionMismatchException(message: message) + case "AccountStreamLimitExceededException": + self = .accountStreamLimitExceededException(message: message) + case "DeviceStreamLimitExceededException": + self = .deviceStreamLimitExceededException(message: message) + case "InvalidDeviceException": + self = .invalidDeviceException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/kinesisvideo/Kinesisvideo_Shapes.swift b/Sources/AWSSDKSwift/Services/kinesisvideo/Kinesisvideo_Shapes.swift new file mode 100644 index 00000000000..d5df99e66ef --- /dev/null +++ b/Sources/AWSSDKSwift/Services/kinesisvideo/Kinesisvideo_Shapes.swift @@ -0,0 +1,502 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Kinesisvideo { + + public struct CreateStreamInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DataRetentionInHours", required: false, type: .integer), + AWSShapeMember(label: "MediaType", required: false, type: .string), + AWSShapeMember(label: "StreamName", required: true, type: .string), + AWSShapeMember(label: "DeviceName", required: false, type: .string), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) + ] + /// The number of hours that you want to retain the data in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream. The default value is 0, indicating that the stream does not persist data. + public let dataRetentionInHours: Int32? + /// The media type of the stream. Consumers of the stream can use this information when processing the stream. For more information about media types, see Media Types. If you choose to specify the MediaType, see Naming Requirements for guidelines. To play video on the console, the media must be H.264 encoded, and you need to specify this video type in this parameter as video/h264. This parameter is optional; the default value is null (or empty in JSON). + public let mediaType: String? + /// A name for the stream that you are creating. The stream name is an identifier for the stream, and must be unique for each account and region. + public let streamName: String + /// The name of the device that is writing to the stream. In the current implementation, Kinesis Video Streams does not use this name. + public let deviceName: String? + /// The ID of the AWS Key Management Service (AWS KMS) key that you want Kinesis Video Streams to use to encrypt stream data. If no key ID is specified, the default, Kinesis Video-managed key (aws/kinesisvideo) is used. For more information, see DescribeKey. + public let kmsKeyId: String? + + public init(dataRetentionInHours: Int32? = nil, mediaType: String? = nil, streamName: String, deviceName: String? = nil, kmsKeyId: String? = nil) { + self.dataRetentionInHours = dataRetentionInHours + self.mediaType = mediaType + self.streamName = streamName + self.deviceName = deviceName + self.kmsKeyId = kmsKeyId + } + + private enum CodingKeys: String, CodingKey { + case dataRetentionInHours = "DataRetentionInHours" + case mediaType = "MediaType" + case streamName = "StreamName" + case deviceName = "DeviceName" + case kmsKeyId = "KmsKeyId" + } + } + + public struct StreamNameCondition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ComparisonOperator", required: false, type: .enum), + AWSShapeMember(label: "ComparisonValue", required: false, type: .string) + ] + /// A comparison operator. Currently, you can specify only the BEGINS_WITH operator, which finds streams whose names start with a given prefix. + public let comparisonOperator: ComparisonOperator? + /// A value to compare. + public let comparisonValue: String? + + public init(comparisonOperator: ComparisonOperator? = nil, comparisonValue: String? = nil) { + self.comparisonOperator = comparisonOperator + self.comparisonValue = comparisonValue + } + + private enum CodingKeys: String, CodingKey { + case comparisonOperator = "ComparisonOperator" + case comparisonValue = "ComparisonValue" + } + } + + public struct GetDataEndpointInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APIName", required: true, type: .enum), + AWSShapeMember(label: "StreamARN", required: false, type: .string), + AWSShapeMember(label: "StreamName", required: false, type: .string) + ] + /// The name of the API action for which to get an endpoint. + public let aPIName: APIName + /// The Amazon Resource Name (ARN) of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamName in the request. + public let streamARN: String? + /// The name of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamARN in the request. + public let streamName: String? + + public init(aPIName: APIName, streamARN: String? = nil, streamName: String? = nil) { + self.aPIName = aPIName + self.streamARN = streamARN + self.streamName = streamName + } + + private enum CodingKeys: String, CodingKey { + case aPIName = "APIName" + case streamARN = "StreamARN" + case streamName = "StreamName" + } + } + + public struct GetDataEndpointOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DataEndpoint", required: false, type: .string) + ] + /// The endpoint value. To read data from the stream or to write data to it, specify this endpoint in your application. + public let dataEndpoint: String? + + public init(dataEndpoint: String? = nil) { + self.dataEndpoint = dataEndpoint + } + + private enum CodingKeys: String, CodingKey { + case dataEndpoint = "DataEndpoint" + } + } + + public struct UpdateDataRetentionOutput: AWSShape { + + } + + public enum Status: String, CustomStringConvertible, Codable { + case creating = "CREATING" + case active = "ACTIVE" + case updating = "UPDATING" + case deleting = "DELETING" + public var description: String { return self.rawValue } + } + + public struct TagStreamInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: true, type: .map), + AWSShapeMember(label: "StreamARN", required: false, type: .string), + AWSShapeMember(label: "StreamName", required: false, type: .string) + ] + /// A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional). + public let tags: [String: String] + /// The Amazon Resource Name (ARN) of the resource that you want to add the tag or tags to. + public let streamARN: String? + /// The name of the stream that you want to add the tag or tags to. + public let streamName: String? + + public init(tags: [String: String], streamARN: String? = nil, streamName: String? = nil) { + self.tags = tags + self.streamARN = streamARN + self.streamName = streamName + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + case streamARN = "StreamARN" + case streamName = "StreamName" + } + } + + public struct UntagStreamInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TagKeyList", required: true, type: .list), + AWSShapeMember(label: "StreamARN", required: false, type: .string), + AWSShapeMember(label: "StreamName", required: false, type: .string) + ] + /// A list of the keys of the tags that you want to remove. + public let tagKeyList: [String] + /// The Amazon Resource Name (ARN) of the stream that you want to remove tags from. + public let streamARN: String? + /// The name of the stream that you want to remove tags from. + public let streamName: String? + + public init(tagKeyList: [String], streamARN: String? = nil, streamName: String? = nil) { + self.tagKeyList = tagKeyList + self.streamARN = streamARN + self.streamName = streamName + } + + private enum CodingKeys: String, CodingKey { + case tagKeyList = "TagKeyList" + case streamARN = "StreamARN" + case streamName = "StreamName" + } + } + + public struct DescribeStreamInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamARN", required: false, type: .string), + AWSShapeMember(label: "StreamName", required: false, type: .string) + ] + /// The Amazon Resource Name (ARN) of the stream. + public let streamARN: String? + /// The name of the stream. + public let streamName: String? + + public init(streamARN: String? = nil, streamName: String? = nil) { + self.streamARN = streamARN + self.streamName = streamName + } + + private enum CodingKeys: String, CodingKey { + case streamARN = "StreamARN" + case streamName = "StreamName" + } + } + + public struct DeleteStreamOutput: AWSShape { + + } + + public struct UpdateStreamInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamARN", required: false, type: .string), + AWSShapeMember(label: "MediaType", required: false, type: .string), + AWSShapeMember(label: "StreamName", required: false, type: .string), + AWSShapeMember(label: "DeviceName", required: false, type: .string), + AWSShapeMember(label: "CurrentVersion", required: true, type: .string) + ] + /// The ARN of the stream whose metadata you want to update. + public let streamARN: String? + /// The stream's media type. Use MediaType to specify the type of content that the stream contains to the consumers of the stream. For more information about media types, see Media Types. If you choose to specify the MediaType, see Naming Requirements. To play video on the console, you must specify the correct video type. For example, if the video in the stream is H.264, specify video/h264 as the MediaType. + public let mediaType: String? + /// The name of the stream whose metadata you want to update. The stream name is an identifier for the stream, and must be unique for each account and region. + public let streamName: String? + /// The name of the device that is writing to the stream. In the current implementation, Kinesis Video Streams does not use this name. + public let deviceName: String? + /// The version of the stream whose metadata you want to update. + public let currentVersion: String + + public init(streamARN: String? = nil, mediaType: String? = nil, streamName: String? = nil, deviceName: String? = nil, currentVersion: String) { + self.streamARN = streamARN + self.mediaType = mediaType + self.streamName = streamName + self.deviceName = deviceName + self.currentVersion = currentVersion + } + + private enum CodingKeys: String, CodingKey { + case streamARN = "StreamARN" + case mediaType = "MediaType" + case streamName = "StreamName" + case deviceName = "DeviceName" + case currentVersion = "CurrentVersion" + } + } + + public struct UntagStreamOutput: AWSShape { + + } + + public struct DescribeStreamOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamInfo", required: false, type: .structure) + ] + /// An object that describes the stream. + public let streamInfo: StreamInfo? + + public init(streamInfo: StreamInfo? = nil) { + self.streamInfo = streamInfo + } + + private enum CodingKeys: String, CodingKey { + case streamInfo = "StreamInfo" + } + } + + public enum UpdateDataRetentionOperation: String, CustomStringConvertible, Codable { + case increaseDataRetention = "INCREASE_DATA_RETENTION" + case decreaseDataRetention = "DECREASE_DATA_RETENTION" + public var description: String { return self.rawValue } + } + + public struct UpdateStreamOutput: AWSShape { + + } + + public struct ListTagsForStreamOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .map) + ] + /// If you specify this parameter and the result of a ListTags call is truncated, the response includes a token that you can use in the next request to fetch the next set of tags. + public let nextToken: String? + /// A map of tag keys and values associated with the specified stream. + public let tags: [String: String]? + + public init(nextToken: String? = nil, tags: [String: String]? = nil) { + self.nextToken = nextToken + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case tags = "Tags" + } + } + + public enum APIName: String, CustomStringConvertible, Codable { + case putMedia = "PUT_MEDIA" + case getMedia = "GET_MEDIA" + case listFragments = "LIST_FRAGMENTS" + case getMediaForFragmentList = "GET_MEDIA_FOR_FRAGMENT_LIST" + public var description: String { return self.rawValue } + } + + public struct DeleteStreamInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamARN", required: true, type: .string), + AWSShapeMember(label: "CurrentVersion", required: false, type: .string) + ] + /// The Amazon Resource Name (ARN) of the stream that you want to delete. + public let streamARN: String + /// Optional: The version of the stream that you want to delete. Specify the version as a safeguard to ensure that your are deleting the correct stream. To get the stream version, use the DescribeStream API. If not specified, only the CreationTime is checked before deleting the stream. + public let currentVersion: String? + + public init(streamARN: String, currentVersion: String? = nil) { + self.streamARN = streamARN + self.currentVersion = currentVersion + } + + private enum CodingKeys: String, CodingKey { + case streamARN = "StreamARN" + case currentVersion = "CurrentVersion" + } + } + + public struct StreamInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DataRetentionInHours", required: false, type: .integer), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "StreamARN", required: false, type: .string), + AWSShapeMember(label: "Version", required: false, type: .string), + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "StreamName", required: false, type: .string), + AWSShapeMember(label: "MediaType", required: false, type: .string), + AWSShapeMember(label: "DeviceName", required: false, type: .string), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) + ] + /// How long the stream retains data, in hours. + public let dataRetentionInHours: Int32? + /// The status of the stream. + public let status: Status? + /// The Amazon Resource Name (ARN) of the stream. + public let streamARN: String? + /// The version of the stream. + public let version: String? + /// A time stamp that indicates when the stream was created. + public let creationTime: TimeStamp? + /// The name of the stream. + public let streamName: String? + /// The MediaType of the stream. + public let mediaType: String? + /// The name of the device that is associated with the stream. + public let deviceName: String? + /// The ID of the AWS Key Management Service (AWS KMS) key that Kinesis Video Streams uses to encrypt data on the stream. + public let kmsKeyId: String? + + public init(dataRetentionInHours: Int32? = nil, status: Status? = nil, streamARN: String? = nil, version: String? = nil, creationTime: TimeStamp? = nil, streamName: String? = nil, mediaType: String? = nil, deviceName: String? = nil, kmsKeyId: String? = nil) { + self.dataRetentionInHours = dataRetentionInHours + self.status = status + self.streamARN = streamARN + self.version = version + self.creationTime = creationTime + self.streamName = streamName + self.mediaType = mediaType + self.deviceName = deviceName + self.kmsKeyId = kmsKeyId + } + + private enum CodingKeys: String, CodingKey { + case dataRetentionInHours = "DataRetentionInHours" + case status = "Status" + case streamARN = "StreamARN" + case version = "Version" + case creationTime = "CreationTime" + case streamName = "StreamName" + case mediaType = "MediaType" + case deviceName = "DeviceName" + case kmsKeyId = "KmsKeyId" + } + } + + public struct UpdateDataRetentionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DataRetentionChangeInHours", required: true, type: .integer), + AWSShapeMember(label: "StreamARN", required: false, type: .string), + AWSShapeMember(label: "StreamName", required: false, type: .string), + AWSShapeMember(label: "Operation", required: true, type: .enum), + AWSShapeMember(label: "CurrentVersion", required: true, type: .string) + ] + /// The retention period, in hours. The value you specify replaces the current value. + public let dataRetentionChangeInHours: Int32 + /// The Amazon Resource Name (ARN) of the stream whose retention period you want to change. + public let streamARN: String? + /// The name of the stream whose retention period you want to change. + public let streamName: String? + /// Indicates whether you want to increase or decrease the retention period. + public let operation: UpdateDataRetentionOperation + /// The version of the stream whose retention period you want to change. To get the version, call either the DescribeStream or the ListStreams API. + public let currentVersion: String + + public init(dataRetentionChangeInHours: Int32, streamARN: String? = nil, streamName: String? = nil, operation: UpdateDataRetentionOperation, currentVersion: String) { + self.dataRetentionChangeInHours = dataRetentionChangeInHours + self.streamARN = streamARN + self.streamName = streamName + self.operation = operation + self.currentVersion = currentVersion + } + + private enum CodingKeys: String, CodingKey { + case dataRetentionChangeInHours = "DataRetentionChangeInHours" + case streamARN = "StreamARN" + case streamName = "StreamName" + case operation = "Operation" + case currentVersion = "CurrentVersion" + } + } + + public struct ListTagsForStreamInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StreamARN", required: false, type: .string), + AWSShapeMember(label: "StreamName", required: false, type: .string) + ] + /// If you specify this parameter and the result of a ListTagsForStream call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags. + public let nextToken: String? + /// The Amazon Resource Name (ARN) of the stream that you want to list tags for. + public let streamARN: String? + /// The name of the stream that you want to list tags for. + public let streamName: String? + + public init(nextToken: String? = nil, streamARN: String? = nil, streamName: String? = nil) { + self.nextToken = nextToken + self.streamARN = streamARN + self.streamName = streamName + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case streamARN = "StreamARN" + case streamName = "StreamName" + } + } + + public struct ListStreamsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StreamInfoList", required: false, type: .list) + ] + /// If the response is truncated, the call returns this element with a token. To get the next batch of streams, use this token in your next request. + public let nextToken: String? + /// An array of StreamInfo objects. + public let streamInfoList: [StreamInfo]? + + public init(nextToken: String? = nil, streamInfoList: [StreamInfo]? = nil) { + self.nextToken = nextToken + self.streamInfoList = streamInfoList + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case streamInfoList = "StreamInfoList" + } + } + + public struct ListStreamsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamNameCondition", required: false, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Optional: Returns only streams that satisfy a specific condition. Currently, you can specify only the prefix of a stream name as a condition. + public let streamNameCondition: StreamNameCondition? + /// If you specify this parameter, when the result of a ListStreams operation is truncated, the call returns the NextToken in the response. To get another batch of streams, provide this token in your next request. + public let nextToken: String? + /// The maximum number of streams to return in the response. The default is 10,000. + public let maxResults: Int32? + + public init(streamNameCondition: StreamNameCondition? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.streamNameCondition = streamNameCondition + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case streamNameCondition = "StreamNameCondition" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public enum ComparisonOperator: String, CustomStringConvertible, Codable { + case beginsWith = "BEGINS_WITH" + public var description: String { return self.rawValue } + } + + public struct CreateStreamOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamARN", required: false, type: .string) + ] + /// The Amazon Resource Name (ARN) of the stream. + public let streamARN: String? + + public init(streamARN: String? = nil) { + self.streamARN = streamARN + } + + private enum CodingKeys: String, CodingKey { + case streamARN = "StreamARN" + } + } + + public struct TagStreamOutput: AWSShape { + + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/kms/Kms_API.swift b/Sources/AWSSDKSwift/Services/kms/Kms_API.swift index 53b061953b4..68833fcad3e 100644 --- a/Sources/AWSSDKSwift/Services/kms/Kms_API.swift +++ b/Sources/AWSSDKSwift/Services/kms/Kms_API.swift @@ -25,7 +25,7 @@ public struct Kms { ) } - /// Creates a customer master key (CMK). You can use a CMK to encrypt small amounts of data (4 KiB or less) directly, but CMKs are more commonly used to encrypt data encryption keys (DEKs), which are used to encrypt raw data. For more information about DEKs and the difference between CMKs and DEKs, see the following: The GenerateDataKey operation AWS Key Management Service Concepts in the AWS Key Management Service Developer Guide + /// Creates a customer master key (CMK) in the caller's AWS account. You can use a CMK to encrypt small amounts of data (4 KiB or less) directly, but CMKs are more commonly used to encrypt data encryption keys (DEKs), which are used to encrypt raw data. For more information about DEKs and the difference between CMKs and DEKs, see the following: The GenerateDataKey operation AWS Key Management Service Concepts in the AWS Key Management Service Developer Guide You cannot use this operation to create a CMK in a different AWS account. public func createKey(_ input: CreateKeyRequest) throws -> CreateKeyResponse { return try client.send(operation: "CreateKey", path: "/", httpMethod: "POST", input: input) } @@ -35,102 +35,102 @@ public struct Kms { _ = try client.send(operation: "RetireGrant", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of all tags for the specified customer master key (CMK). + /// Returns a list of all tags for the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account. public func listResourceTags(_ input: ListResourceTagsRequest) throws -> ListResourceTagsResponse { return try client.send(operation: "ListResourceTags", path: "/", httpMethod: "POST", input: input) } - /// Returns a data encryption key that you can use in your application to encrypt data locally. You must specify the customer master key (CMK) under which to generate the data key. You must also specify the length of the data key using either the KeySpec or NumberOfBytes field. You must specify one field or the other, but not both. For common key lengths (128-bit and 256-bit symmetric keys), we recommend that you use KeySpec. This operation returns a plaintext copy of the data key in the Plaintext field of the response, and an encrypted copy of the data key in the CiphertextBlob field. The data key is encrypted under the CMK specified in the KeyId field of the request. We recommend that you use the following pattern to encrypt data locally in your application: Use this operation (GenerateDataKey) to retrieve a data encryption key. Use the plaintext data encryption key (returned in the Plaintext field of the response) to encrypt data locally, then erase the plaintext data key from memory. Store the encrypted data key (returned in the CiphertextBlob field of the response) alongside the locally encrypted data. To decrypt data locally: Use the Decrypt operation to decrypt the encrypted data key into a plaintext copy of the data key. Use the plaintext data key to decrypt data locally, then erase the plaintext data key from memory. To return only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To return a random byte string that is cryptographically secure, use GenerateRandom. If you use the optional EncryptionContext field, you must store at least enough information to be able to reconstruct the full encryption context when you later send the ciphertext to the Decrypt operation. It is a good practice to choose an encryption context that you can reconstruct on the fly to better secure the ciphertext. For more information, see Encryption Context in the AWS Key Management Service Developer Guide. + /// Returns a data encryption key that you can use in your application to encrypt data locally. You must specify the customer master key (CMK) under which to generate the data key. You must also specify the length of the data key using either the KeySpec or NumberOfBytes field. You must specify one field or the other, but not both. For common key lengths (128-bit and 256-bit symmetric keys), we recommend that you use KeySpec. To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter. This operation returns a plaintext copy of the data key in the Plaintext field of the response, and an encrypted copy of the data key in the CiphertextBlob field. The data key is encrypted under the CMK specified in the KeyId field of the request. We recommend that you use the following pattern to encrypt data locally in your application: Use this operation (GenerateDataKey) to get a data encryption key. Use the plaintext data encryption key (returned in the Plaintext field of the response) to encrypt data locally, then erase the plaintext data key from memory. Store the encrypted data key (returned in the CiphertextBlob field of the response) alongside the locally encrypted data. To decrypt data locally: Use the Decrypt operation to decrypt the encrypted data key into a plaintext copy of the data key. Use the plaintext data key to decrypt data locally, then erase the plaintext data key from memory. To return only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To return a random byte string that is cryptographically secure, use GenerateRandom. If you use the optional EncryptionContext field, you must store at least enough information to be able to reconstruct the full encryption context when you later send the ciphertext to the Decrypt operation. It is a good practice to choose an encryption context that you can reconstruct on the fly to better secure the ciphertext. For more information, see Encryption Context in the AWS Key Management Service Developer Guide. public func generateDataKey(_ input: GenerateDataKeyRequest) throws -> GenerateDataKeyResponse { return try client.send(operation: "GenerateDataKey", path: "/", httpMethod: "POST", input: input) } - /// Lists the customer master keys. + /// Gets a list of all customer master keys (CMKs) in the caller's AWS account and region. public func listKeys(_ input: ListKeysRequest) throws -> ListKeysResponse { return try client.send(operation: "ListKeys", path: "/", httpMethod: "POST", input: input) } - /// Sets the state of a customer master key (CMK) to disabled, thereby preventing its use for cryptographic operations. For more information about how key state affects the use of a CMK, see How Key State Affects the Use of a Customer Master Key in the AWS Key Management Service Developer Guide. + /// Sets the state of a customer master key (CMK) to disabled, thereby preventing its use for cryptographic operations. You cannot perform this operation on a CMK in a different AWS account. For more information about how key state affects the use of a CMK, see How Key State Affects the Use of a Customer Master Key in the AWS Key Management Service Developer Guide. public func disableKey(_ input: DisableKeyRequest) throws { _ = try client.send(operation: "DisableKey", path: "/", httpMethod: "POST", input: input) } - /// Adds a grant to a key to specify who can use the key and under what conditions. Grants are alternate permission mechanisms to key policies. For more information about grants, see Grants in the AWS Key Management Service Developer Guide. + /// Adds a grant to a customer master key (CMK). The grant specifies who can use the CMK and under what conditions. When setting permissions, grants are an alternative to key policies. To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter. For more information about grants, see Grants in the AWS Key Management Service Developer Guide. public func createGrant(_ input: CreateGrantRequest) throws -> CreateGrantResponse { return try client.send(operation: "CreateGrant", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified alias. To map an alias to a different key, call UpdateAlias. + /// Deletes the specified alias. You cannot perform this operation on an alias in a different AWS account. Because an alias is not a property of a CMK, you can delete and change the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs, use the ListAliases operation. Each CMK can have multiple aliases. To change the alias of a CMK, use DeleteAlias to delete the current alias and CreateAlias to create a new alias. To associate an existing alias with a different customer master key (CMK), call UpdateAlias. public func deleteAlias(_ input: DeleteAliasRequest) throws { _ = try client.send(operation: "DeleteAlias", path: "/", httpMethod: "POST", input: input) } - /// Provides detailed information about the specified customer master key. + /// Provides detailed information about the specified customer master key (CMK). To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter. public func describeKey(_ input: DescribeKeyRequest) throws -> DescribeKeyResponse { return try client.send(operation: "DescribeKey", path: "/", httpMethod: "POST", input: input) } - /// Returns the items you need in order to import key material into AWS KMS from your existing key management infrastructure. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide. You must specify the key ID of the customer master key (CMK) into which you will import key material. This CMK's Origin must be EXTERNAL. You must also specify the wrapping algorithm and type of wrapping key (public key) that you will use to encrypt the key material. This operation returns a public key and an import token. Use the public key to encrypt the key material. Store the import token to send with a subsequent ImportKeyMaterial request. The public key and import token from the same response must be used together. These items are valid for 24 hours, after which they cannot be used for a subsequent ImportKeyMaterial request. To retrieve new ones, send another GetParametersForImport request. + /// Returns the items you need in order to import key material into AWS KMS from your existing key management infrastructure. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide. You must specify the key ID of the customer master key (CMK) into which you will import key material. This CMK's Origin must be EXTERNAL. You must also specify the wrapping algorithm and type of wrapping key (public key) that you will use to encrypt the key material. You cannot perform this operation on a CMK in a different AWS account. This operation returns a public key and an import token. Use the public key to encrypt the key material. Store the import token to send with a subsequent ImportKeyMaterial request. The public key and import token from the same response must be used together. These items are valid for 24 hours. When they expire, they cannot be used for a subsequent ImportKeyMaterial request. To get new ones, send another GetParametersForImport request. public func getParametersForImport(_ input: GetParametersForImportRequest) throws -> GetParametersForImportResponse { return try client.send(operation: "GetParametersForImport", path: "/", httpMethod: "POST", input: input) } - /// Decrypts ciphertext. Ciphertext is plaintext that has been previously encrypted by using any of the following functions: GenerateDataKey GenerateDataKeyWithoutPlaintext Encrypt Note that if a caller has been granted access permissions to all keys (through, for example, IAM user policies that grant Decrypt permission on all resources), then ciphertext encrypted by using keys in other accounts where the key grants access to the caller can be decrypted. To remedy this, we recommend that you do not grant Decrypt access in an IAM user policy. Instead grant Decrypt access only in key policies. If you must grant Decrypt access in an IAM user policy, you should scope the resource to specific keys or to specific trusted accounts. + /// Decrypts ciphertext. Ciphertext is plaintext that has been previously encrypted by using any of the following operations: GenerateDataKey GenerateDataKeyWithoutPlaintext Encrypt Note that if a caller has been granted access permissions to all keys (through, for example, IAM user policies that grant Decrypt permission on all resources), then ciphertext encrypted by using keys in other accounts where the key grants access to the caller can be decrypted. To remedy this, we recommend that you do not grant Decrypt access in an IAM user policy. Instead grant Decrypt access only in key policies. If you must grant Decrypt access in an IAM user policy, you should scope the resource to specific keys or to specific trusted accounts. public func decrypt(_ input: DecryptRequest) throws -> DecryptResponse { return try client.send(operation: "Decrypt", path: "/", httpMethod: "POST", input: input) } - /// Marks a key as enabled, thereby permitting its use. + /// Sets the state of a customer master key (CMK) to enabled, thereby permitting its use for cryptographic operations. You cannot perform this operation on a CMK in a different AWS account. public func enableKey(_ input: EnableKeyRequest) throws { _ = try client.send(operation: "EnableKey", path: "/", httpMethod: "POST", input: input) } - /// Enables rotation of the specified customer master key. + /// Enables automatic rotation of the key material for the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account. public func enableKeyRotation(_ input: EnableKeyRotationRequest) throws { _ = try client.send(operation: "EnableKeyRotation", path: "/", httpMethod: "POST", input: input) } - /// Deletes key material that you previously imported and makes the specified customer master key (CMK) unusable. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide. When the specified CMK is in the PendingDeletion state, this operation does not change the CMK's state. Otherwise, it changes the CMK's state to PendingImport. After you delete key material, you can use ImportKeyMaterial to reimport the same key material into the CMK. + /// Deletes key material that you previously imported. This operation makes the specified customer master key (CMK) unusable. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide. You cannot perform this operation on a CMK in a different AWS account. When the specified CMK is in the PendingDeletion state, this operation does not change the CMK's state. Otherwise, it changes the CMK's state to PendingImport. After you delete key material, you can use ImportKeyMaterial to reimport the same key material into the CMK. public func deleteImportedKeyMaterial(_ input: DeleteImportedKeyMaterialRequest) throws { _ = try client.send(operation: "DeleteImportedKeyMaterial", path: "/", httpMethod: "POST", input: input) } - /// Revokes a grant. You can revoke a grant to actively deny operations that depend on it. + /// Revokes the specified grant for the specified customer master key (CMK). You can revoke a grant to actively deny operations that depend on it. To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter. public func revokeGrant(_ input: RevokeGrantRequest) throws { _ = try client.send(operation: "RevokeGrant", path: "/", httpMethod: "POST", input: input) } - /// Updates the description of a customer master key (CMK). + /// Updates the description of a customer master key (CMK). To see the decription of a CMK, use DescribeKey. You cannot perform this operation on a CMK in a different AWS account. public func updateKeyDescription(_ input: UpdateKeyDescriptionRequest) throws { _ = try client.send(operation: "UpdateKeyDescription", path: "/", httpMethod: "POST", input: input) } - /// Schedules the deletion of a customer master key (CMK). You may provide a waiting period, specified in days, before deletion occurs. If you do not provide a waiting period, the default period of 30 days is used. When this operation is successful, the state of the CMK changes to PendingDeletion. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the CMK. After the waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with it, including all aliases that refer to it. Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is deleted, all data that was encrypted under the CMK is rendered unrecoverable. To restrict the use of a CMK without deleting it, use DisableKey. For more information about scheduling a CMK for deletion, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide. + /// Schedules the deletion of a customer master key (CMK). You may provide a waiting period, specified in days, before deletion occurs. If you do not provide a waiting period, the default period of 30 days is used. When this operation is successful, the state of the CMK changes to PendingDeletion. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the CMK. After the waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with it, including all aliases that refer to it. You cannot perform this operation on a CMK in a different AWS account. Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is deleted, all data that was encrypted under the CMK is rendered unrecoverable. To restrict the use of a CMK without deleting it, use DisableKey. For more information about scheduling a CMK for deletion, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide. public func scheduleKeyDeletion(_ input: ScheduleKeyDeletionRequest) throws -> ScheduleKeyDeletionResponse { return try client.send(operation: "ScheduleKeyDeletion", path: "/", httpMethod: "POST", input: input) } - /// Disables rotation of the specified key. + /// Disables automatic rotation of the key material for the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account. public func disableKeyRotation(_ input: DisableKeyRotationRequest) throws { _ = try client.send(operation: "DisableKeyRotation", path: "/", httpMethod: "POST", input: input) } - /// Attaches a key policy to the specified customer master key (CMK). For more information about key policies, see Key Policies in the AWS Key Management Service Developer Guide. + /// Attaches a key policy to the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account. For more information about key policies, see Key Policies in the AWS Key Management Service Developer Guide. public func putKeyPolicy(_ input: PutKeyPolicyRequest) throws { _ = try client.send(operation: "PutKeyPolicy", path: "/", httpMethod: "POST", input: input) } - /// Creates a display name for a customer master key. An alias can be used to identify a key and should be unique. The console enforces a one-to-one mapping between the alias and a key. An alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). An alias must start with the word "alias" followed by a forward slash (alias/). An alias that begins with "aws" after the forward slash (alias/aws...) is reserved by Amazon Web Services (AWS). The alias and the key it is mapped to must be in the same AWS account and the same region. To map an alias to a different key, call UpdateAlias. + /// Creates a display name for a customer master key (CMK). You can use an alias to identify a CMK in selected operations, such as Encrypt and GenerateDataKey. Each CMK can have multiple aliases, but each alias points to only one CMK. The alias name must be unique in the AWS account and region. To simplify code that runs in multiple regions, use the same alias name, but point it to a different CMK in each region. Because an alias is not a property of a CMK, you can delete and change the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs, use the ListAliases operation. An alias must start with the word alias followed by a forward slash (alias/). The alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). Alias names cannot begin with aws; that alias name prefix is reserved by Amazon Web Services (AWS). The alias and the CMK it is mapped to must be in the same AWS account and the same region. You cannot perform this operation on an alias in a different AWS account. To map an existing alias to a different CMK, call UpdateAlias. public func createAlias(_ input: CreateAliasRequest) throws { _ = try client.send(operation: "CreateAlias", path: "/", httpMethod: "POST", input: input) } - /// Imports key material into an AWS KMS customer master key (CMK) from your existing key management infrastructure. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide. You must specify the key ID of the CMK to import the key material into. This CMK's Origin must be EXTERNAL. You must also send an import token and the encrypted key material. Send the import token that you received in the same GetParametersForImport response that contained the public key that you used to encrypt the key material. You must also specify whether the key material expires and if so, when. When the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. To use the CMK again, you can reimport the same key material. If you set an expiration date, you can change it only by reimporting the same key material and specifying a new expiration date. When this operation is successful, the specified CMK's key state changes to Enabled, and you can use the CMK. After you successfully import key material into a CMK, you can reimport the same key material into that CMK, but you cannot import different key material. + /// Imports key material into an existing AWS KMS customer master key (CMK) that was created without key material. You cannot perform this operation on a CMK in a different AWS account. For more information about creating CMKs with no key material and then importing key material, see Importing Key Material in the AWS Key Management Service Developer Guide. Before using this operation, call GetParametersForImport. Its response includes a public key and an import token. Use the public key to encrypt the key material. Then, submit the import token from the same GetParametersForImport response. When calling this operation, you must specify the following values: The key ID or key ARN of a CMK with no key material. Its Origin must be EXTERNAL. To create a CMK with no key material, call CreateKey and set the value of its Origin parameter to EXTERNAL. To get the Origin of a CMK, call DescribeKey.) The encrypted key material. To get the public key to encrypt the key material, call GetParametersForImport. The import token that GetParametersForImport returned. This token and the public key used to encrypt the key material must have come from the same response. Whether the key material expires and if so, when. If you set an expiration date, you can change it only by reimporting the same key material and specifying a new expiration date. If the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. To use the CMK again, you must reimport the same key material. When this operation is successful, the CMK's key state changes from PendingImport to Enabled, and you can use the CMK. After you successfully import key material into a CMK, you can reimport the same key material into that CMK, but you cannot import different key material. public func importKeyMaterial(_ input: ImportKeyMaterialRequest) throws -> ImportKeyMaterialResponse { return try client.send(operation: "ImportKeyMaterial", path: "/", httpMethod: "POST", input: input) } - /// Lists all of the key aliases in the account. + /// Gets a list of all aliases in the caller's AWS account and region. You cannot list aliases in other accounts. For more information about aliases, see CreateAlias. The response might include several aliases that do not have a TargetKeyId field because they are not associated with a CMK. These are predefined aliases that are reserved for CMKs managed by AWS services. If an alias is not associated with a CMK, the alias does not count against the alias limit for your account. public func listAliases(_ input: ListAliasesRequest) throws -> ListAliasesResponse { return try client.send(operation: "ListAliases", path: "/", httpMethod: "POST", input: input) } @@ -145,57 +145,57 @@ public struct Kms { return try client.send(operation: "ListRetirableGrants", path: "/", httpMethod: "POST", input: input) } - /// Retrieves a policy attached to the specified key. + /// Gets a key policy attached to the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account. public func getKeyPolicy(_ input: GetKeyPolicyRequest) throws -> GetKeyPolicyResponse { return try client.send(operation: "GetKeyPolicy", path: "/", httpMethod: "POST", input: input) } - /// Removes the specified tag or tags from the specified customer master key (CMK). To remove a tag, you specify the tag key for each tag to remove. You do not specify the tag value. To overwrite the tag value for an existing tag, use TagResource. + /// Removes the specified tag or tags from the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account. To remove a tag, you specify the tag key for each tag to remove. You do not specify the tag value. To overwrite the tag value for an existing tag, use TagResource. public func untagResource(_ input: UntagResourceRequest) throws { _ = try client.send(operation: "UntagResource", path: "/", httpMethod: "POST", input: input) } - /// Encrypts plaintext into ciphertext by using a customer master key. The Encrypt function has two primary use cases: You can encrypt up to 4 KB of arbitrary data such as an RSA key, a database password, or other sensitive customer information. If you are moving encrypted data from one region to another, you can use this API to encrypt in the new region the plaintext data key that was used to encrypt the data in the original region. This provides you with an encrypted copy of the data key that can be decrypted in the new region and used there to decrypt the encrypted data. Unless you are moving encrypted data from one region to another, you don't use this function to encrypt a generated data key within a region. You retrieve data keys already encrypted by calling the GenerateDataKey or GenerateDataKeyWithoutPlaintext function. Data keys don't need to be encrypted again by calling Encrypt. If you want to encrypt data locally in your application, you can use the GenerateDataKey function to return a plaintext data encryption key and a copy of the key encrypted under the customer master key (CMK) of your choosing. + /// Encrypts plaintext into ciphertext by using a customer master key (CMK). The Encrypt operation has two primary use cases: You can encrypt up to 4 kilobytes (4096 bytes) of arbitrary data such as an RSA key, a database password, or other sensitive information. To move encrypted data from one AWS region to another, you can use this operation to encrypt in the new region the plaintext data key that was used to encrypt the data in the original region. This provides you with an encrypted copy of the data key that can be decrypted in the new region and used there to decrypt the encrypted data. To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter. Unless you are moving encrypted data from one region to another, you don't use this operation to encrypt a generated data key within a region. To get data keys that are already encrypted, call the GenerateDataKey or GenerateDataKeyWithoutPlaintext operation. Data keys don't need to be encrypted again by calling Encrypt. To encrypt data locally in your application, use the GenerateDataKey operation to return a plaintext data encryption key and a copy of the key encrypted under the CMK of your choosing. public func encrypt(_ input: EncryptRequest) throws -> EncryptResponse { return try client.send(operation: "Encrypt", path: "/", httpMethod: "POST", input: input) } - /// List the grants for a specified key. + /// Gets a list of all grants for the specified customer master key (CMK). To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter. public func listGrants(_ input: ListGrantsRequest) throws -> ListGrantsResponse { return try client.send(operation: "ListGrants", path: "/", httpMethod: "POST", input: input) } - /// Updates an alias to map it to a different key. An alias is not a property of a key. Therefore, an alias can be mapped to and unmapped from an existing key without changing the properties of the key. An alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). An alias must start with the word "alias" followed by a forward slash (alias/). An alias that begins with "aws" after the forward slash (alias/aws...) is reserved by Amazon Web Services (AWS). The alias and the key it is mapped to must be in the same AWS account and the same region. + /// Associates an existing alias with a different customer master key (CMK). Each CMK can have multiple aliases, but the aliases must be unique within the account and region. You cannot perform this operation on an alias in a different AWS account. This operation works only on existing aliases. To change the alias of a CMK to a new value, use CreateAlias to create a new alias and DeleteAlias to delete the old alias. Because an alias is not a property of a CMK, you can create, update, and delete the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs in the account, use the ListAliases operation. An alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). An alias must start with the word alias followed by a forward slash (alias/). The alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). Alias names cannot begin with aws; that alias name prefix is reserved by Amazon Web Services (AWS). public func updateAlias(_ input: UpdateAliasRequest) throws { _ = try client.send(operation: "UpdateAlias", path: "/", httpMethod: "POST", input: input) } - /// Adds or overwrites one or more tags for the specified customer master key (CMK). Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings. You cannot use the same tag key more than once per CMK. For example, consider a CMK with one tag whose tag key is Purpose and tag value is Test. If you send a TagResource request for this CMK with a tag key of Purpose and a tag value of Prod, it does not create a second tag. Instead, the original tag is overwritten with the new tag value. + /// Adds or overwrites one or more tags for the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account. Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings. You cannot use the same tag key more than once per CMK. For example, consider a CMK with one tag whose tag key is Purpose and tag value is Test. If you send a TagResource request for this CMK with a tag key of Purpose and a tag value of Prod, it does not create a second tag. Instead, the original tag is overwritten with the new tag value. For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the AWS Billing and Cost Management User Guide. public func tagResource(_ input: TagResourceRequest) throws { _ = try client.send(operation: "TagResource", path: "/", httpMethod: "POST", input: input) } - /// Retrieves a list of policies attached to a key. + /// Gets the names of the key policies that are attached to a customer master key (CMK). This operation is designed to get policy names that you can use in a GetKeyPolicy operation. However, the only valid policy name is default. You cannot perform this operation on a CMK in a different AWS account. public func listKeyPolicies(_ input: ListKeyPoliciesRequest) throws -> ListKeyPoliciesResponse { return try client.send(operation: "ListKeyPolicies", path: "/", httpMethod: "POST", input: input) } - /// Returns a data encryption key encrypted under a customer master key (CMK). This operation is identical to GenerateDataKey but returns only the encrypted copy of the data key. This operation is useful in a system that has multiple components with different degrees of trust. For example, consider a system that stores encrypted data in containers. Each container stores the encrypted data and an encrypted copy of the data key. One component of the system, called the control plane, creates new containers. When it creates a new container, it uses this operation (GenerateDataKeyWithoutPlaintext) to get an encrypted data key and then stores it in the container. Later, a different component of the system, called the data plane, puts encrypted data into the containers. To do this, it passes the encrypted data key to the Decrypt operation, then uses the returned plaintext data key to encrypt data, and finally stores the encrypted data in the container. In this system, the control plane never sees the plaintext data key. + /// Returns a data encryption key encrypted under a customer master key (CMK). This operation is identical to GenerateDataKey but returns only the encrypted copy of the data key. To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter. This operation is useful in a system that has multiple components with different degrees of trust. For example, consider a system that stores encrypted data in containers. Each container stores the encrypted data and an encrypted copy of the data key. One component of the system, called the control plane, creates new containers. When it creates a new container, it uses this operation (GenerateDataKeyWithoutPlaintext) to get an encrypted data key and then stores it in the container. Later, a different component of the system, called the data plane, puts encrypted data into the containers. To do this, it passes the encrypted data key to the Decrypt operation, then uses the returned plaintext data key to encrypt data, and finally stores the encrypted data in the container. In this system, the control plane never sees the plaintext data key. public func generateDataKeyWithoutPlaintext(_ input: GenerateDataKeyWithoutPlaintextRequest) throws -> GenerateDataKeyWithoutPlaintextResponse { return try client.send(operation: "GenerateDataKeyWithoutPlaintext", path: "/", httpMethod: "POST", input: input) } - /// Retrieves a Boolean value that indicates whether key rotation is enabled for the specified key. + /// Gets a Boolean value that indicates whether automatic rotation of the key material is enabled for the specified customer master key (CMK). To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter. public func getKeyRotationStatus(_ input: GetKeyRotationStatusRequest) throws -> GetKeyRotationStatusResponse { return try client.send(operation: "GetKeyRotationStatus", path: "/", httpMethod: "POST", input: input) } - /// Cancels the deletion of a customer master key (CMK). When this operation is successful, the CMK is set to the Disabled state. To enable a CMK, use EnableKey. For more information about scheduling and canceling deletion of a CMK, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide. + /// Cancels the deletion of a customer master key (CMK). When this operation is successful, the CMK is set to the Disabled state. To enable a CMK, use EnableKey. You cannot perform this operation on a CMK in a different AWS account. For more information about scheduling and canceling deletion of a CMK, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide. public func cancelKeyDeletion(_ input: CancelKeyDeletionRequest) throws -> CancelKeyDeletionResponse { return try client.send(operation: "CancelKeyDeletion", path: "/", httpMethod: "POST", input: input) } - /// Encrypts data on the server side with a new customer master key (CMK) without exposing the plaintext of the data on the client side. The data is first decrypted and then reencrypted. You can also use this operation to change the encryption context of a ciphertext. Unlike other operations, ReEncrypt is authorized twice, once as ReEncryptFrom on the source CMK and once as ReEncryptTo on the destination CMK. We recommend that you include the "kms:ReEncrypt*" permission in your key policies to permit reencryption from or to the CMK. This permission is automatically included in the key policy when you create a CMK through the console, but you must include it manually when you create a CMK programmatically or when you set a key policy with the PutKeyPolicy operation. + /// Encrypts data on the server side with a new customer master key (CMK) without exposing the plaintext of the data on the client side. The data is first decrypted and then reencrypted. You can also use this operation to change the encryption context of a ciphertext. You can reencrypt data using CMKs in different AWS accounts. Unlike other operations, ReEncrypt is authorized twice, once as ReEncryptFrom on the source CMK and once as ReEncryptTo on the destination CMK. We recommend that you include the "kms:ReEncrypt*" permission in your key policies to permit reencryption from or to the CMK. This permission is automatically included in the key policy when you create a CMK through the console, but you must include it manually when you create a CMK programmatically or when you set a key policy with the PutKeyPolicy operation. public func reEncrypt(_ input: ReEncryptRequest) throws -> ReEncryptResponse { return try client.send(operation: "ReEncrypt", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/kms/Kms_Shapes.swift b/Sources/AWSSDKSwift/Services/kms/Kms_Shapes.swift index 71cfae9eeb1..907f31ff413 100644 --- a/Sources/AWSSDKSwift/Services/kms/Kms_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/kms/Kms_Shapes.swift @@ -6,12 +6,12 @@ import AWSSDKSwiftCore extension Kms { public struct ListKeyPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Truncated", required: false, type: .boolean), AWSShapeMember(label: "PolicyNames", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To retrieve more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. + /// A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. public let truncated: Bool? /// A list of policy names. Currently, there is only one policy and it is named "Default". public let policyNames: [String]? @@ -37,12 +37,12 @@ extension Kms { } public struct GetParametersForImportRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string), AWSShapeMember(label: "WrappingAlgorithm", required: true, type: .enum), AWSShapeMember(label: "WrappingKeySpec", required: true, type: .enum) ] - /// The identifier of the CMK into which you will import key material. The CMK's Origin must be EXTERNAL. A valid identifier is the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + /// The identifier of the CMK into which you will import key material. The CMK's Origin must be EXTERNAL. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String /// The algorithm you will use to encrypt the key material before importing it with ImportKeyMaterial. For more information, see Encrypt the Key Material in the AWS Key Management Service Developer Guide. public let wrappingAlgorithm: AlgorithmSpec @@ -63,13 +63,13 @@ extension Kms { } public struct TagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .list), AWSShapeMember(label: "KeyId", required: true, type: .string) ] /// One or more tags. Each tag consists of a tag key and a tag value. public let tags: [Tag] - /// A unique identifier for the CMK you are tagging. You can use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + /// A unique identifier for the CMK you are tagging. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(tags: [Tag], keyId: String) { @@ -84,7 +84,7 @@ extension Kms { } public struct GenerateRandomRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NumberOfBytes", required: false, type: .integer) ] /// The length of the byte string. @@ -100,13 +100,13 @@ extension Kms { } public struct UpdateAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AliasName", required: true, type: .string), AWSShapeMember(label: "TargetKeyId", required: true, type: .string) ] /// String that contains the name of the alias to be modified. The name must start with the word "alias" followed by a forward slash (alias/). Aliases that begin with "alias/aws" are reserved. public let aliasName: String - /// Unique identifier of the customer master key to be mapped to the alias. This value can be a globally unique identifier or the fully specified ARN of a key. Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 You can call ListAliases to verify that the alias is mapped to the correct TargetKeyId. + /// Unique identifier of the customer master key to be mapped to the alias. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To verify that the alias is mapped to the correct CMK, use ListAliases. public let targetKeyId: String public init(aliasName: String, targetKeyId: String) { @@ -121,7 +121,7 @@ extension Kms { } public struct ReEncryptRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DestinationEncryptionContext", required: false, type: .map), AWSShapeMember(label: "GrantTokens", required: false, type: .list), AWSShapeMember(label: "CiphertextBlob", required: true, type: .blob), @@ -136,7 +136,7 @@ extension Kms { public let ciphertextBlob: Data /// Encryption context used to encrypt and decrypt the data specified in the CiphertextBlob parameter. public let sourceEncryptionContext: [String: String]? - /// A unique identifier for the CMK to use to reencrypt the data. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by "alias/". Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 Alias Name Example - alias/MyAliasName + /// A unique identifier for the CMK that is used to reencrypt the data. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with "alias/". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab Alias name: alias/ExampleAlias Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases. public let destinationKeyId: String public init(destinationEncryptionContext: [String: String]? = nil, grantTokens: [String]? = nil, ciphertextBlob: Data, sourceEncryptionContext: [String: String]? = nil, destinationKeyId: String) { @@ -163,12 +163,12 @@ extension Kms { } public struct ReEncryptResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CiphertextBlob", required: false, type: .blob), AWSShapeMember(label: "SourceKeyId", required: false, type: .string), AWSShapeMember(label: "KeyId", required: false, type: .string) ] - /// The reencrypted data. + /// The reencrypted data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded. public let ciphertextBlob: Data? /// Unique identifier of the CMK used to originally encrypt the data. public let sourceKeyId: String? @@ -189,7 +189,7 @@ extension Kms { } public struct KeyListEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyArn", required: false, type: .string), AWSShapeMember(label: "KeyId", required: false, type: .string) ] @@ -210,13 +210,13 @@ extension Kms { } public struct DescribeKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GrantTokens", required: false, type: .list), AWSShapeMember(label: "KeyId", required: true, type: .string) ] /// A list of grant tokens. For more information, see Grant Tokens in the AWS Key Management Service Developer Guide. public let grantTokens: [String]? - /// A unique identifier for the customer master key. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by "alias/". Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 Alias Name Example - alias/MyAliasName + /// A unique identifier for the customer master key (CMK). To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with "alias/". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab Alias name: alias/ExampleAlias Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases. public let keyId: String public init(grantTokens: [String]? = nil, keyId: String) { @@ -238,7 +238,7 @@ extension Kms { } public struct GetKeyPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: false, type: .string) ] /// A policy document in JSON format. @@ -254,7 +254,7 @@ extension Kms { } public struct DecryptRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CiphertextBlob", required: true, type: .blob), AWSShapeMember(label: "EncryptionContext", required: false, type: .map), AWSShapeMember(label: "GrantTokens", required: false, type: .list) @@ -280,14 +280,14 @@ extension Kms { } public struct ListAliasesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Aliases", required: false, type: .list), AWSShapeMember(label: "Truncated", required: false, type: .boolean), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// A list of key aliases in the user's account. + /// A list of aliases. public let aliases: [AliasListEntry]? - /// A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To retrieve more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. + /// A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. public let truncated: Bool? /// When Truncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent request. public let nextMarker: String? @@ -306,7 +306,7 @@ extension Kms { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagValue", required: true, type: .string), AWSShapeMember(label: "TagKey", required: true, type: .string) ] @@ -327,7 +327,7 @@ extension Kms { } public struct GetKeyRotationStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyRotationEnabled", required: false, type: .boolean) ] /// A Boolean value that specifies whether key rotation is enabled. @@ -343,7 +343,7 @@ extension Kms { } public struct PutKeyPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BypassPolicyLockoutSafetyCheck", required: false, type: .boolean), AWSShapeMember(label: "KeyId", required: true, type: .string), AWSShapeMember(label: "Policy", required: true, type: .string), @@ -351,11 +351,11 @@ extension Kms { ] /// A flag to indicate whether to bypass the key policy lockout safety check. Setting this value to true increases the likelihood that the CMK becomes unmanageable. Do not set this value to true indiscriminately. For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the CMK. The default value is false. public let bypassPolicyLockoutSafetyCheck: Bool? - /// A unique identifier for the CMK. Use the CMK's unique identifier or its Amazon Resource Name (ARN). For example: Unique ID: 1234abcd-12ab-34cd-56ef-1234567890ab ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String - /// The key policy to attach to the CMK. If you do not set BypassPolicyLockoutSafetyCheck to true, the policy must meet the following criteria: It must allow the principal that is making the PutKeyPolicy request to make a subsequent PutKeyPolicy request on the CMK. This reduces the likelihood that the CMK becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. The principals that are specified in the key policy must exist and be visible to AWS KMS. When you create a new AWS principal (for example, an IAM user or role), you might need to enforce a delay before specifying the new principal in a key policy because the new principal might not immediately be visible to AWS KMS. For more information, see Changes that I make are not always immediately visible in the IAM User Guide. The policy size limit is 32 KiB (32768 bytes). + /// The key policy to attach to the CMK. If you do not set BypassPolicyLockoutSafetyCheck to true, the policy must meet the following criteria: It must allow the principal that is making the PutKeyPolicy request to make a subsequent PutKeyPolicy request on the CMK. This reduces the likelihood that the CMK becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. The principals that are specified in the key policy must exist and be visible to AWS KMS. When you create a new AWS principal (for example, an IAM user or role), you might need to enforce a delay before specifying the new principal in a key policy because the new principal might not immediately be visible to AWS KMS. For more information, see Changes that I make are not always immediately visible in the IAM User Guide. The policy size limit is 32 kilobytes (32768 bytes). public let policy: String - /// The name of the key policy. This value must be default. + /// The name of the key policy. The only valid value is default. public let policyName: String public init(bypassPolicyLockoutSafetyCheck: Bool? = nil, keyId: String, policy: String, policyName: String) { @@ -374,19 +374,20 @@ extension Kms { } public struct KeyMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "KeyId", required: true, type: .string), AWSShapeMember(label: "Origin", required: false, type: .enum), - AWSShapeMember(label: "ExpirationModel", required: false, type: .enum), - AWSShapeMember(label: "AWSAccountId", required: false, type: .string), - AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "KeyState", required: false, type: .enum), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), AWSShapeMember(label: "KeyUsage", required: false, type: .enum), AWSShapeMember(label: "ValidTo", required: false, type: .timestamp), AWSShapeMember(label: "DeletionDate", required: false, type: .timestamp), - AWSShapeMember(label: "Description", required: false, type: .string) + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "KeyManager", required: false, type: .enum), + AWSShapeMember(label: "ExpirationModel", required: false, type: .enum), + AWSShapeMember(label: "AWSAccountId", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the CMK. For examples, see AWS Key Management Service (AWS KMS) in the Example ARNs section of the AWS General Reference. public let arn: String? @@ -394,14 +395,10 @@ extension Kms { public let keyId: String /// The source of the CMK's key material. When this value is AWS_KMS, AWS KMS created the key material. When this value is EXTERNAL, the key material was imported from your existing key management infrastructure or the CMK lacks key material. public let origin: OriginType? - /// Specifies whether the CMK's key material expires. This value is present only when Origin is EXTERNAL, otherwise this value is omitted. - public let expirationModel: ExpirationModelType? - /// The twelve-digit account ID of the AWS account that owns the CMK. - public let aWSAccountId: String? - /// Specifies whether the CMK is enabled. When KeyState is Enabled this value is true, otherwise it is false. - public let enabled: Bool? /// The state of the CMK. For more information about how key state affects the use of a CMK, see How Key State Affects the Use of a Customer Master Key in the AWS Key Management Service Developer Guide. public let keyState: KeyState? + /// Specifies whether the CMK is enabled. When KeyState is Enabled this value is true, otherwise it is false. + public let enabled: Bool? /// The date and time when the CMK was created. public let creationDate: TimeStamp? /// The cryptographic operations for which you can use the CMK. Currently the only allowed value is ENCRYPT_DECRYPT, which means you can use the CMK for the Encrypt and Decrypt operations. @@ -412,43 +409,51 @@ extension Kms { public let deletionDate: TimeStamp? /// The description of the CMK. public let description: String? + /// The CMK's manager. CMKs are either customer-managed or AWS-managed. For more information about the difference, see Customer Master Keys in the AWS Key Management Service Developer Guide. + public let keyManager: KeyManagerType? + /// Specifies whether the CMK's key material expires. This value is present only when Origin is EXTERNAL, otherwise this value is omitted. + public let expirationModel: ExpirationModelType? + /// The twelve-digit account ID of the AWS account that owns the CMK. + public let aWSAccountId: String? - public init(arn: String? = nil, keyId: String, origin: OriginType? = nil, expirationModel: ExpirationModelType? = nil, aWSAccountId: String? = nil, enabled: Bool? = nil, keyState: KeyState? = nil, creationDate: TimeStamp? = nil, keyUsage: KeyUsageType? = nil, validTo: TimeStamp? = nil, deletionDate: TimeStamp? = nil, description: String? = nil) { + public init(arn: String? = nil, keyId: String, origin: OriginType? = nil, keyState: KeyState? = nil, enabled: Bool? = nil, creationDate: TimeStamp? = nil, keyUsage: KeyUsageType? = nil, validTo: TimeStamp? = nil, deletionDate: TimeStamp? = nil, description: String? = nil, keyManager: KeyManagerType? = nil, expirationModel: ExpirationModelType? = nil, aWSAccountId: String? = nil) { self.arn = arn self.keyId = keyId self.origin = origin - self.expirationModel = expirationModel - self.aWSAccountId = aWSAccountId - self.enabled = enabled self.keyState = keyState + self.enabled = enabled self.creationDate = creationDate self.keyUsage = keyUsage self.validTo = validTo self.deletionDate = deletionDate self.description = description + self.keyManager = keyManager + self.expirationModel = expirationModel + self.aWSAccountId = aWSAccountId } private enum CodingKeys: String, CodingKey { case arn = "Arn" case keyId = "KeyId" case origin = "Origin" - case expirationModel = "ExpirationModel" - case aWSAccountId = "AWSAccountId" - case enabled = "Enabled" case keyState = "KeyState" + case enabled = "Enabled" case creationDate = "CreationDate" case keyUsage = "KeyUsage" case validTo = "ValidTo" case deletionDate = "DeletionDate" case description = "Description" + case keyManager = "KeyManager" + case expirationModel = "ExpirationModel" + case aWSAccountId = "AWSAccountId" } } public struct CancelKeyDeletionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string) ] - /// The unique identifier for the customer master key (CMK) for which to cancel deletion. To specify this value, use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To obtain the unique key ID and key ARN for a given CMK, use ListKeys or DescribeKey. + /// The unique identifier for the customer master key (CMK) for which to cancel deletion. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(keyId: String) { @@ -461,14 +466,14 @@ extension Kms { } public struct ListKeyPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "KeyId", required: true, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] /// Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of NextMarker from the truncated response you just received. public let marker: String? - /// A unique identifier for the customer master key (CMK). You can use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String /// Use this parameter to specify the maximum number of items to return. When this value is present, AWS KMS does not return more than the specified number of items, but it might return fewer. This value is optional. If you include a value, it must be between 1 and 1000, inclusive. If you do not include a value, it defaults to 100. Currently only 1 policy can be attached to a key. public let limit: Int32? @@ -487,13 +492,13 @@ extension Kms { } public struct CreateAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AliasName", required: true, type: .string), AWSShapeMember(label: "TargetKeyId", required: true, type: .string) ] /// String that contains the display name. The name must start with the word "alias" followed by a forward slash (alias/). Aliases that begin with "alias/AWS" are reserved. public let aliasName: String - /// An identifier of the key for which you are creating the alias. This value cannot be another alias but can be a globally unique identifier or a fully specified ARN to a key. Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 + /// Identifies the CMK for which you are creating the alias. This value cannot be an alias. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let targetKeyId: String public init(aliasName: String, targetKeyId: String) { @@ -513,13 +518,13 @@ extension Kms { } public struct ScheduleKeyDeletionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PendingWindowInDays", required: false, type: .integer), AWSShapeMember(label: "KeyId", required: true, type: .string) ] /// The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the customer master key (CMK). This value is optional. If you include a value, it must be between 7 and 30, inclusive. If you do not include a value, it defaults to 30. public let pendingWindowInDays: Int32? - /// The unique identifier for the customer master key (CMK) to delete. To specify this value, use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To obtain the unique key ID and key ARN for a given CMK, use ListKeys or DescribeKey. + /// The unique identifier of the customer master key (CMK) to delete. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(pendingWindowInDays: Int32? = nil, keyId: String) { @@ -534,7 +539,7 @@ extension Kms { } public struct CreateGrantResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GrantToken", required: false, type: .string), AWSShapeMember(label: "GrantId", required: false, type: .string) ] @@ -555,7 +560,7 @@ extension Kms { } public struct ListRetirableGrantsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "RetiringPrincipal", required: true, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -581,7 +586,7 @@ extension Kms { } public struct ListKeysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] @@ -602,7 +607,7 @@ extension Kms { } public struct GetParametersForImportResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImportToken", required: false, type: .blob), AWSShapeMember(label: "PublicKey", required: false, type: .blob), AWSShapeMember(label: "KeyId", required: false, type: .string), @@ -614,7 +619,7 @@ extension Kms { public let publicKey: Data? /// The identifier of the CMK to use in a subsequent ImportKeyMaterial request. This is the same CMK specified in the GetParametersForImport request. public let keyId: String? - /// The time at which the import token and public key are no longer valid. After this time, you cannot use them to make an ImportKeyMaterial request and you must send another GetParametersForImport request to retrieve new ones. + /// The time at which the import token and public key are no longer valid. After this time, you cannot use them to make an ImportKeyMaterial request and you must send another GetParametersForImport request to get new ones. public let parametersValidTo: TimeStamp? public init(importToken: Data? = nil, publicKey: Data? = nil, keyId: String? = nil, parametersValidTo: TimeStamp? = nil) { @@ -633,10 +638,10 @@ extension Kms { } public struct DisableKeyRotationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string) ] - /// A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key. Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(keyId: String) { @@ -649,14 +654,14 @@ extension Kms { } public struct ListResourceTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "KeyId", required: true, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] /// Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of NextMarker from the truncated response you just received. Do not attempt to construct this value. Use only the value of NextMarker from the truncated response you just received. public let marker: String? - /// A unique identifier for the CMK whose tags you are listing. You can use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String /// Use this parameter to specify the maximum number of items to return. When this value is present, AWS KMS does not return more than the specified number of items, but it might return fewer. This value is optional. If you include a value, it must be between 1 and 50, inclusive. If you do not include a value, it defaults to 50. public let limit: Int32? @@ -675,10 +680,10 @@ extension Kms { } public struct EnableKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string) ] - /// A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key. Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(keyId: String) { @@ -695,7 +700,7 @@ extension Kms { } public struct EncryptRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EncryptionContext", required: false, type: .map), AWSShapeMember(label: "Plaintext", required: true, type: .blob), AWSShapeMember(label: "KeyId", required: true, type: .string), @@ -705,7 +710,7 @@ extension Kms { public let encryptionContext: [String: String]? /// Data to be encrypted. public let plaintext: Data - /// A unique identifier for the customer master key. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by "alias/". Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 Alias Name Example - alias/MyAliasName + /// A unique identifier for the customer master key (CMK). To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with "alias/". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab Alias name: alias/ExampleAlias Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases. public let keyId: String /// A list of grant tokens. For more information, see Grant Tokens in the AWS Key Management Service Developer Guide. public let grantTokens: [String]? @@ -732,10 +737,10 @@ extension Kms { } public struct EnableKeyRotationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string) ] - /// A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key. Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(keyId: String) { @@ -748,13 +753,13 @@ extension Kms { } public struct RevokeGrantRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GrantId", required: true, type: .string), AWSShapeMember(label: "KeyId", required: true, type: .string) ] /// Identifier of the grant to be revoked. public let grantId: String - /// A unique identifier for the customer master key associated with the grant. This value can be a globally unique identifier or the fully specified ARN to a key. Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 + /// A unique identifier for the customer master key associated with the grant. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(grantId: String, keyId: String) { @@ -769,7 +774,7 @@ extension Kms { } public struct RetireGrantRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GrantToken", required: false, type: .string), AWSShapeMember(label: "GrantId", required: false, type: .string), AWSShapeMember(label: "KeyId", required: false, type: .string) @@ -778,7 +783,7 @@ extension Kms { public let grantToken: String? /// Unique identifier of the grant to retire. The grant ID is returned in the response to a CreateGrant operation. Grant ID Example - 0123456789012345678901234567890123456789012345678901234567890123 public let grantId: String? - /// The Amazon Resource Name of the CMK associated with the grant. Example: arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab + /// The Amazon Resource Name (ARN) of the CMK associated with the grant. For example: arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab public let keyId: String? public init(grantToken: String? = nil, grantId: String? = nil, keyId: String? = nil) { @@ -795,7 +800,7 @@ extension Kms { } public struct CancelKeyDeletionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: false, type: .string) ] /// The unique identifier of the master key for which deletion is canceled. @@ -811,10 +816,10 @@ extension Kms { } public struct GenerateRandomResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Plaintext", required: false, type: .blob) ] - /// The random byte string. + /// The random byte string. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded. public let plaintext: Data? public init(plaintext: Data? = nil) { @@ -827,23 +832,23 @@ extension Kms { } public struct CreateGrantRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string), AWSShapeMember(label: "RetiringPrincipal", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "Operations", required: false, type: .list), + AWSShapeMember(label: "Operations", required: true, type: .list), AWSShapeMember(label: "GranteePrincipal", required: true, type: .string), AWSShapeMember(label: "GrantTokens", required: false, type: .list), AWSShapeMember(label: "Constraints", required: false, type: .structure) ] - /// The unique identifier for the customer master key (CMK) that the grant applies to. To specify this value, use the globally unique key ID or the Amazon Resource Name (ARN) of the key. Examples: Globally unique key ID: 12345678-1234-1234-1234-123456789012 Key ARN: arn:aws:kms:us-west-2:123456789012:key/12345678-1234-1234-1234-123456789012 + /// The unique identifier for the customer master key (CMK) that the grant applies to. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String /// The principal that is given permission to retire the grant by using RetireGrant operation. To specify the principal, use the Amazon Resource Name (ARN) of an AWS principal. Valid AWS principals include AWS accounts (root), IAM users, federated users, and assumed role users. For examples of the ARN syntax to use for specifying a principal, see AWS Identity and Access Management (IAM) in the Example ARNs section of the AWS General Reference. public let retiringPrincipal: String? /// A friendly name for identifying the grant. Use this value to prevent unintended creation of duplicate grants when retrying this request. When this value is absent, all CreateGrant requests result in a new grant with a unique GrantId even if all the supplied parameters are identical. This can result in unintended duplicates when you retry the CreateGrant request. When this value is present, you can retry a CreateGrant request with identical parameters; if the grant already exists, the original GrantId is returned without creating a new grant. Note that the returned grant token is unique with every CreateGrant request, even when a duplicate GrantId is returned. All grant tokens obtained in this way can be used interchangeably. public let name: String? /// A list of operations that the grant permits. - public let operations: [GrantOperation]? + public let operations: [GrantOperation] /// The principal that is given permission to perform the operations that the grant permits. To specify the principal, use the Amazon Resource Name (ARN) of an AWS principal. Valid AWS principals include AWS accounts (root), IAM users, IAM roles, federated users, and assumed role users. For examples of the ARN syntax to use for specifying a principal, see AWS Identity and Access Management (IAM) in the Example ARNs section of the AWS General Reference. public let granteePrincipal: String /// A list of grant tokens. For more information, see Grant Tokens in the AWS Key Management Service Developer Guide. @@ -851,7 +856,7 @@ extension Kms { /// A structure that you can use to allow certain operations in the grant only when the desired encryption context is present. For more information about encryption context, see Encryption Context in the AWS Key Management Service Developer Guide. public let constraints: GrantConstraints? - public init(keyId: String, retiringPrincipal: String? = nil, name: String? = nil, operations: [GrantOperation]? = nil, granteePrincipal: String, grantTokens: [String]? = nil, constraints: GrantConstraints? = nil) { + public init(keyId: String, retiringPrincipal: String? = nil, name: String? = nil, operations: [GrantOperation], granteePrincipal: String, grantTokens: [String]? = nil, constraints: GrantConstraints? = nil) { self.keyId = keyId self.retiringPrincipal = retiringPrincipal self.name = name @@ -873,7 +878,7 @@ extension Kms { } public struct DescribeKeyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyMetadata", required: false, type: .structure) ] /// Metadata associated with the key. @@ -889,11 +894,11 @@ extension Kms { } public struct UpdateKeyDescriptionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string), AWSShapeMember(label: "Description", required: true, type: .string) ] - /// A unique identifier for the CMK. This value can be a globally unique identifier or the fully specified ARN to a key. Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String /// New description for the CMK. public let description: String @@ -909,14 +914,20 @@ extension Kms { } } + public enum KeyManagerType: String, CustomStringConvertible, Codable { + case aws = "AWS" + case customer = "CUSTOMER" + public var description: String { return self.rawValue } + } + public struct GetKeyPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string), AWSShapeMember(label: "PolicyName", required: true, type: .string) ] - /// A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key. Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String - /// String that contains the name of the policy. Currently, this must be "default". Policy names can be discovered by calling ListKeyPolicies. + /// Specifies the name of the policy. The only valid name is default. To get the names of key policies, use ListKeyPolicies. public let policyName: String public init(keyId: String, policyName: String) { @@ -931,7 +942,7 @@ extension Kms { } public struct GenerateDataKeyWithoutPlaintextRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EncryptionContext", required: false, type: .map), AWSShapeMember(label: "NumberOfBytes", required: false, type: .integer), AWSShapeMember(label: "KeyId", required: true, type: .string), @@ -942,7 +953,7 @@ extension Kms { public let encryptionContext: [String: String]? /// The length of the data encryption key in bytes. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). For common key lengths (128-bit and 256-bit symmetric keys), we recommend that you use the KeySpec field instead of this one. public let numberOfBytes: Int32? - /// The identifier of the CMK under which to generate and encrypt the data encryption key. A valid identifier is the unique key ID or the Amazon Resource Name (ARN) of the CMK, or the alias name or ARN of an alias that refers to the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab CMK ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab Alias name: alias/ExampleAlias Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + /// The identifier of the customer master key (CMK) under which to generate and encrypt the data encryption key. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with "alias/". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab Alias name: alias/ExampleAlias Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases. public let keyId: String /// A list of grant tokens. For more information, see Grant Tokens in the AWS Key Management Service Developer Guide. public let grantTokens: [String]? @@ -975,14 +986,14 @@ extension Kms { } public struct ListKeysResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Truncated", required: false, type: .boolean), AWSShapeMember(label: "Keys", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To retrieve more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. + /// A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. public let truncated: Bool? - /// A list of keys. + /// A list of customer master keys (CMKs). public let keys: [KeyListEntry]? /// When Truncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent request. public let nextMarker: String? @@ -1001,12 +1012,12 @@ extension Kms { } public struct ListGrantsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Truncated", required: false, type: .boolean), AWSShapeMember(label: "Grants", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To retrieve more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. + /// A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. public let truncated: Bool? /// A list of grants. public let grants: [GrantListEntry]? @@ -1027,10 +1038,10 @@ extension Kms { } public struct DeleteAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AliasName", required: true, type: .string) ] - /// The alias to be deleted. The name must start with the word "alias" followed by a forward slash (alias/). Aliases that begin with "alias/AWS" are reserved. + /// The alias to be deleted. The name must start with the word "alias" followed by a forward slash (alias/). Aliases that begin with "alias/aws" are reserved. public let aliasName: String public init(aliasName: String) { @@ -1043,7 +1054,7 @@ extension Kms { } public struct ListAliasesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] @@ -1064,11 +1075,11 @@ extension Kms { } public struct DecryptResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Plaintext", required: false, type: .blob), AWSShapeMember(label: "KeyId", required: false, type: .string) ] - /// Decrypted plaintext data. This value may not be returned if the customer master key is not available or if you didn't have permission to use it. + /// Decrypted plaintext data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded. public let plaintext: Data? /// ARN of the key used to perform the decryption. This value is returned if no errors are encountered during the operation. public let keyId: String? @@ -1085,14 +1096,14 @@ extension Kms { } public struct GenerateDataKeyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CiphertextBlob", required: false, type: .blob), AWSShapeMember(label: "Plaintext", required: false, type: .blob), AWSShapeMember(label: "KeyId", required: false, type: .string) ] - /// The encrypted data encryption key. + /// The encrypted data encryption key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded. public let ciphertextBlob: Data? - /// The data encryption key. Use this data key for local encryption and decryption, then remove it from memory as soon as possible. + /// The data encryption key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded. Use this data key for local encryption and decryption, then remove it from memory as soon as possible. public let plaintext: Data? /// The identifier of the CMK under which the data encryption key was generated and encrypted. public let keyId: String? @@ -1124,7 +1135,7 @@ extension Kms { } public struct ScheduleKeyDeletionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeletionDate", required: false, type: .timestamp), AWSShapeMember(label: "KeyId", required: false, type: .string) ] @@ -1145,10 +1156,10 @@ extension Kms { } public struct DeleteImportedKeyMaterialRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string) ] - /// The identifier of the CMK whose key material to delete. The CMK's Origin must be EXTERNAL. A valid identifier is the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + /// The identifier of the CMK whose key material to delete. The CMK's Origin must be EXTERNAL. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(keyId: String) { @@ -1161,7 +1172,7 @@ extension Kms { } public struct GenerateDataKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EncryptionContext", required: false, type: .map), AWSShapeMember(label: "NumberOfBytes", required: false, type: .integer), AWSShapeMember(label: "KeyId", required: true, type: .string), @@ -1172,7 +1183,7 @@ extension Kms { public let encryptionContext: [String: String]? /// The length of the data encryption key in bytes. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). For common key lengths (128-bit and 256-bit symmetric keys), we recommend that you use the KeySpec field instead of this one. public let numberOfBytes: Int32? - /// The identifier of the CMK under which to generate and encrypt the data encryption key. A valid identifier is the unique key ID or the Amazon Resource Name (ARN) of the CMK, or the alias name or ARN of an alias that refers to the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab CMK ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab Alias name: alias/ExampleAlias Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + /// The identifier of the CMK under which to generate and encrypt the data encryption key. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with "alias/". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab Alias name: alias/ExampleAlias Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases. public let keyId: String /// A list of grant tokens. For more information, see Grant Tokens in the AWS Key Management Service Developer Guide. public let grantTokens: [String]? @@ -1197,7 +1208,7 @@ extension Kms { } public struct CreateKeyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyMetadata", required: false, type: .structure) ] /// Metadata associated with the CMK. @@ -1213,7 +1224,7 @@ extension Kms { } public struct GrantListEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: false, type: .string), AWSShapeMember(label: "RetiringPrincipal", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -1269,7 +1280,7 @@ extension Kms { } public struct ListGrantsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "KeyId", required: true, type: .string) @@ -1278,7 +1289,7 @@ extension Kms { public let marker: String? /// Use this parameter to specify the maximum number of items to return. When this value is present, AWS KMS does not return more than the specified number of items, but it might return fewer. This value is optional. If you include a value, it must be between 1 and 100, inclusive. If you do not include a value, it defaults to 50. public let limit: Int32? - /// A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key. Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(marker: String? = nil, limit: Int32? = nil, keyId: String) { @@ -1295,7 +1306,7 @@ extension Kms { } public struct GrantConstraints: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EncryptionContextSubset", required: false, type: .map), AWSShapeMember(label: "EncryptionContextEquals", required: false, type: .map) ] @@ -1316,10 +1327,10 @@ extension Kms { } public struct GetKeyRotationStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string) ] - /// A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key. Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(keyId: String) { @@ -1332,10 +1343,10 @@ extension Kms { } public struct DisableKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string) ] - /// A unique identifier for the CMK. Use the CMK's unique identifier or its Amazon Resource Name (ARN). For example: Unique ID: 1234abcd-12ab-34cd-56ef-1234567890ab ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + /// A unique identifier for the customer master key (CMK). Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String public init(keyId: String) { @@ -1354,7 +1365,7 @@ extension Kms { } public struct AliasListEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AliasName", required: false, type: .string), AWSShapeMember(label: "AliasArn", required: false, type: .string), AWSShapeMember(label: "TargetKeyId", required: false, type: .string) @@ -1380,7 +1391,7 @@ extension Kms { } public struct ImportKeyMaterialRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImportToken", required: true, type: .blob), AWSShapeMember(label: "EncryptedKeyMaterial", required: true, type: .blob), AWSShapeMember(label: "ExpirationModel", required: false, type: .enum), @@ -1393,7 +1404,7 @@ extension Kms { public let encryptedKeyMaterial: Data /// Specifies whether the key material expires. The default is KEY_MATERIAL_EXPIRES, in which case you must include the ValidTo parameter. When this parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE, you must omit the ValidTo parameter. public let expirationModel: ExpirationModelType? - /// The identifier of the CMK to import the key material into. The CMK's Origin must be EXTERNAL. A valid identifier is the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + /// The identifier of the CMK to import the key material into. The CMK's Origin must be EXTERNAL. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String /// The time at which the imported key material expires. When the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. You must omit this parameter when the ExpirationModel parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE. Otherwise it is required. public let validTo: TimeStamp? @@ -1416,11 +1427,11 @@ extension Kms { } public struct EncryptResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CiphertextBlob", required: false, type: .blob), AWSShapeMember(label: "KeyId", required: false, type: .string) ] - /// The encrypted plaintext. If you are using the CLI, the value is Base64 encoded. Otherwise, it is not encoded. + /// The encrypted plaintext. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded. public let ciphertextBlob: Data? /// The ID of the key used during encryption. public let keyId: String? @@ -1437,7 +1448,7 @@ extension Kms { } public struct CreateKeyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BypassPolicyLockoutSafetyCheck", required: false, type: .boolean), AWSShapeMember(label: "KeyUsage", required: false, type: .enum), AWSShapeMember(label: "Origin", required: false, type: .enum), @@ -1453,7 +1464,7 @@ extension Kms { public let origin: OriginType? /// One or more tags. Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings. Use this parameter to tag the CMK when it is created. Alternately, you can omit this parameter and instead tag the CMK after it is created using TagResource. public let tags: [Tag]? - /// The key policy to attach to the CMK. If you specify a policy and do not set BypassPolicyLockoutSafetyCheck to true, the policy must meet the following criteria: It must allow the principal that is making the CreateKey request to make a subsequent PutKeyPolicy request on the CMK. This reduces the likelihood that the CMK becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. The principals that are specified in the key policy must exist and be visible to AWS KMS. When you create a new AWS principal (for example, an IAM user or role), you might need to enforce a delay before specifying the new principal in a key policy because the new principal might not immediately be visible to AWS KMS. For more information, see Changes that I make are not always immediately visible in the IAM User Guide. If you do not specify a policy, AWS KMS attaches a default key policy to the CMK. For more information, see Default Key Policy in the AWS Key Management Service Developer Guide. The policy size limit is 32 KiB (32768 bytes). + /// The key policy to attach to the CMK. If you specify a policy and do not set BypassPolicyLockoutSafetyCheck to true, the policy must meet the following criteria: It must allow the principal that is making the CreateKey request to make a subsequent PutKeyPolicy request on the CMK. This reduces the likelihood that the CMK becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. The principals that are specified in the key policy must exist and be visible to AWS KMS. When you create a new AWS principal (for example, an IAM user or role), you might need to enforce a delay before specifying the new principal in a key policy because the new principal might not immediately be visible to AWS KMS. For more information, see Changes that I make are not always immediately visible in the IAM User Guide. If you do not specify a policy, AWS KMS attaches a default key policy to the CMK. For more information, see Default Key Policy in the AWS Key Management Service Developer Guide. The policy size limit is 32 kilobytes (32768 bytes). public let policy: String? /// A description of the CMK. Use a description that helps you decide whether the CMK is appropriate for a task. public let description: String? @@ -1478,11 +1489,11 @@ extension Kms { } public struct UntagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] - /// A unique identifier for the CMK from which you are removing tags. You can use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + /// A unique identifier for the CMK from which you are removing tags. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. For example: Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. public let keyId: String /// One or more tag keys. Specify only the tag keys, not the tag values. public let tagKeys: [String] @@ -1499,12 +1510,12 @@ extension Kms { } public struct ListResourceTagsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Truncated", required: false, type: .boolean), AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To retrieve more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. + /// A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request. public let truncated: Bool? /// A list of tags. Each tag consists of a tag key and a tag value. public let tags: [Tag]? @@ -1525,11 +1536,11 @@ extension Kms { } public struct GenerateDataKeyWithoutPlaintextResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CiphertextBlob", required: false, type: .blob), AWSShapeMember(label: "KeyId", required: false, type: .string) ] - /// The encrypted data encryption key. + /// The encrypted data encryption key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded. public let ciphertextBlob: Data? /// The identifier of the CMK under which the data encryption key was generated and encrypted. public let keyId: String? diff --git a/Sources/AWSSDKSwift/Services/lambda/Lambda_API.swift b/Sources/AWSSDKSwift/Services/lambda/Lambda_API.swift index 4640f45ee36..d229cc7aab4 100644 --- a/Sources/AWSSDKSwift/Services/lambda/Lambda_API.swift +++ b/Sources/AWSSDKSwift/Services/lambda/Lambda_API.swift @@ -34,16 +34,16 @@ public struct Lambda { return try client.send(operation: "GetEventSourceMapping", path: "/2015-03-31/event-source-mappings/{UUID}", httpMethod: "GET", input: input) } - /// Updates the configuration parameters for the specified Lambda function by using the values provided in the request. You provide only the parameters you want to change. This operation must only be used on an existing Lambda function and cannot be used to update the function's code. If you are using the versioning feature, note this API will always update the $LATEST version of your Lambda function. For information about the versioning feature, see AWS Lambda Function Versioning and Aliases. This operation requires permission for the lambda:UpdateFunctionConfiguration action. - public func updateFunctionConfiguration(_ input: UpdateFunctionConfigurationRequest) throws -> FunctionConfiguration { - return try client.send(operation: "UpdateFunctionConfiguration", path: "/2015-03-31/functions/{FunctionName}/configuration", httpMethod: "PUT", input: input) - } - /// Deletes the specified Lambda function code and configuration. If you are using the versioning feature and you don't specify a function version in your DeleteFunction request, AWS Lambda will delete the function, including all its versions, and any aliases pointing to the function versions. To delete a specific function version, you must provide the function version via the Qualifier parameter. For information about function versioning, see AWS Lambda Function Versioning and Aliases. When you delete a function the associated resource policy is also deleted. You will need to delete the event source mappings explicitly. This operation requires permission for the lambda:DeleteFunction action. public func deleteFunction(_ input: DeleteFunctionRequest) throws { _ = try client.send(operation: "DeleteFunction", path: "/2015-03-31/functions/{FunctionName}", httpMethod: "DELETE", input: input) } + /// Removes concurrent execution limits from this function. + public func deleteFunctionConcurrency(_ input: DeleteFunctionConcurrencyRequest) throws { + _ = try client.send(operation: "DeleteFunctionConcurrency", path: "/2017-10-31/functions/{FunctionName}/concurrency", httpMethod: "DELETE", input: input) + } + /// Removes an event source mapping. This means AWS Lambda will no longer invoke the function for events in the associated source. This operation requires permission for the lambda:DeleteEventSourceMapping action. public func deleteEventSourceMapping(_ input: DeleteEventSourceMappingRequest) throws -> EventSourceMappingConfiguration { return try client.send(operation: "DeleteEventSourceMapping", path: "/2015-03-31/event-source-mappings/{UUID}", httpMethod: "DELETE", input: input) @@ -54,6 +54,11 @@ public struct Lambda { return try client.send(operation: "ListTags", path: "/2017-03-31/tags/{ARN}", httpMethod: "GET", input: input) } + /// Updates the configuration parameters for the specified Lambda function by using the values provided in the request. You provide only the parameters you want to change. This operation must only be used on an existing Lambda function and cannot be used to update the function's code. If you are using the versioning feature, note this API will always update the $LATEST version of your Lambda function. For information about the versioning feature, see AWS Lambda Function Versioning and Aliases. This operation requires permission for the lambda:UpdateFunctionConfiguration action. + public func updateFunctionConfiguration(_ input: UpdateFunctionConfigurationRequest) throws -> FunctionConfiguration { + return try client.send(operation: "UpdateFunctionConfiguration", path: "/2015-03-31/functions/{FunctionName}/configuration", httpMethod: "PUT", input: input) + } + /// Returns the configuration information of the Lambda function and a presigned URL link to the .zip file you uploaded with CreateFunction so you can download the .zip file. Note that the URL is valid for up to 10 minutes. The configuration information is the same information you provided as parameters when uploading the function. Using the optional Qualifier parameter, you can specify a specific function version for which you want this information. If you don't specify this parameter, the API uses unqualified function ARN which return information about the $LATEST version of the Lambda function. For more information, see AWS Lambda Function Versioning and Aliases. This operation requires permission for the lambda:GetFunction action. public func getFunction(_ input: GetFunctionRequest) throws -> GetFunctionResponse { return try client.send(operation: "GetFunction", path: "/2015-03-31/functions/{FunctionName}", httpMethod: "GET", input: input) @@ -79,7 +84,12 @@ public struct Lambda { return try client.send(operation: "ListVersionsByFunction", path: "/2015-03-31/functions/{FunctionName}/versions", httpMethod: "GET", input: input) } - /// Returns a list of your Lambda functions. For each function, the response includes the function configuration information. You must use GetFunction to retrieve the code for your function. This operation requires permission for the lambda:ListFunctions action. If you are using versioning feature, the response returns list of $LATEST versions of your functions. For information about the versioning feature, see AWS Lambda Function Versioning and Aliases. + /// Sets a limit on the number of concurrent executions available to this function. It is a subset of your account's total concurrent execution limit per region. Note that Lambda automatically reserves a buffer of 100 concurrent executions for functions without any reserved concurrency limit. This means if your account limit is 1000, you have a total of 900 available to allocate to individual functions. + public func putFunctionConcurrency(_ input: PutFunctionConcurrencyRequest) throws -> Concurrency { + return try client.send(operation: "PutFunctionConcurrency", path: "/2017-10-31/functions/{FunctionName}/concurrency", httpMethod: "PUT", input: input) + } + + /// Returns a list of your Lambda functions. For each function, the response includes the function configuration information. You must use GetFunction to retrieve the code for your function. This operation requires permission for the lambda:ListFunctions action. If you are using the versioning feature, you can list all of your functions or only $LATEST versions. For information about the versioning feature, see AWS Lambda Function Versioning and Aliases. public func listFunctions(_ input: ListFunctionsRequest) throws -> ListFunctionsResponse { return try client.send(operation: "ListFunctions", path: "/2015-03-31/functions/", httpMethod: "GET", input: input) } diff --git a/Sources/AWSSDKSwift/Services/lambda/Lambda_Shapes.swift b/Sources/AWSSDKSwift/Services/lambda/Lambda_Shapes.swift index c6566fe3bec..2b23cad6ccc 100644 --- a/Sources/AWSSDKSwift/Services/lambda/Lambda_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/lambda/Lambda_Shapes.swift @@ -6,28 +6,38 @@ import AWSSDKSwiftCore extension Lambda { public struct ListFunctionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .integer), + AWSShapeMember(label: "FunctionVersion", location: .querystring(locationName: "FunctionVersion"), required: false, type: .enum), AWSShapeMember(label: "Marker", location: .querystring(locationName: "Marker"), required: false, type: .string), - AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .integer) + AWSShapeMember(label: "MasterRegion", location: .querystring(locationName: "MasterRegion"), required: false, type: .string) ] - /// Optional string. An opaque pagination token returned from a previous ListFunctions operation. If present, indicates where to continue the listing. - public let marker: String? /// Optional integer. Specifies the maximum number of AWS Lambda functions to return in response. This parameter value must be greater than 0. public let maxItems: Int32? + /// Optional string. If not specified, only the unqualified functions ARNs (Amazon Resource Names) will be returned. Valid value: ALL: Will return all versions, including $LATEST which will have fully qualified ARNs (Amazon Resource Names). + public let functionVersion: FunctionVersion? + /// Optional string. An opaque pagination token returned from a previous ListFunctions operation. If present, indicates where to continue the listing. + public let marker: String? + /// Optional string. If not specified, will return only regular function versions (i.e., non-replicated versions). Valid values are: The region from which the functions are replicated. For example, if you specify us-east-1, only functions replicated from that region will be returned. ALL: Will return all functions from any region. If specified, you also must specify a valid FunctionVersion parameter. + public let masterRegion: String? - public init(marker: String? = nil, maxItems: Int32? = nil) { - self.marker = marker + public init(maxItems: Int32? = nil, functionVersion: FunctionVersion? = nil, marker: String? = nil, masterRegion: String? = nil) { self.maxItems = maxItems + self.functionVersion = functionVersion + self.marker = marker + self.masterRegion = masterRegion } private enum CodingKeys: String, CodingKey { - case marker = "Marker" case maxItems = "MaxItems" + case functionVersion = "FunctionVersion" + case marker = "Marker" + case masterRegion = "MasterRegion" } } public struct TagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Resource", location: .uri(locationName: "ARN"), required: true, type: .string), AWSShapeMember(label: "Tags", required: true, type: .map) ] @@ -48,7 +58,7 @@ extension Lambda { } public struct EventSourceMappingConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastModified", required: false, type: .timestamp), AWSShapeMember(label: "UUID", required: false, type: .string), AWSShapeMember(label: "BatchSize", required: false, type: .integer), @@ -110,8 +120,24 @@ extension Lambda { public var description: String { return self.rawValue } } + public struct DeleteFunctionConcurrencyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string) + ] + /// The name of the function you are removing concurrent execution limits from. + public let functionName: String + + public init(functionName: String) { + self.functionName = functionName + } + + private enum CodingKeys: String, CodingKey { + case functionName = "FunctionName" + } + } + public struct DeleteFunctionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "Qualifier", location: .querystring(locationName: "Qualifier"), required: false, type: .string) ] @@ -132,12 +158,15 @@ extension Lambda { } public struct UpdateAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoutingConfig", required: false, type: .structure), AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "FunctionVersion", required: false, type: .string), AWSShapeMember(label: "Name", location: .uri(locationName: "Name"), required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] + /// Specifies an additional version your alias can point to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see lambda-traffic-shifting-using-aliases. + public let routingConfig: AliasRoutingConfiguration? /// The function name for which the alias is created. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length. public let functionName: String /// Using this parameter you can change the Lambda function version to which the alias points. @@ -147,7 +176,8 @@ extension Lambda { /// You can change the description of the alias using this parameter. public let description: String? - public init(functionName: String, functionVersion: String? = nil, name: String, description: String? = nil) { + public init(routingConfig: AliasRoutingConfiguration? = nil, functionName: String, functionVersion: String? = nil, name: String, description: String? = nil) { + self.routingConfig = routingConfig self.functionName = functionName self.functionVersion = functionVersion self.name = name @@ -155,6 +185,7 @@ extension Lambda { } private enum CodingKeys: String, CodingKey { + case routingConfig = "RoutingConfig" case functionName = "FunctionName" case functionVersion = "FunctionVersion" case name = "Name" @@ -165,7 +196,7 @@ extension Lambda { public struct InvocationRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "Payload" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "InvocationType", location: .header(locationName: "X-Amz-Invocation-Type"), required: false, type: .enum), AWSShapeMember(label: "Payload", required: false, type: .blob), @@ -179,7 +210,7 @@ extension Lambda { public let invocationType: InvocationType? /// JSON that you want to provide to your Lambda function as input. public let payload: Data? - /// Using the ClientContext you can pass client-specific information to the Lambda function you are invoking. You can then process the client information in your Lambda function as you choose through the context variable. For an example of a ClientContext JSON, see PutEvents in the Amazon Mobile Analytics API Reference and User Guide. The ClientContext JSON must be base64-encoded. + /// Using the ClientContext you can pass client-specific information to the Lambda function you are invoking. You can then process the client information in your Lambda function as you choose through the context variable. For an example of a ClientContext JSON, see PutEvents in the Amazon Mobile Analytics API Reference and User Guide. The ClientContext JSON must be base64-encoded and has a maximum size of 3583 bytes. public let clientContext: String? /// You can set this optional parameter to Tail in the request only if you specify the InvocationType parameter with value RequestResponse. In this case, AWS Lambda returns the base64-encoded last 4 KB of log data produced by your Lambda function in the x-amz-log-result header. public let logType: LogType? @@ -206,7 +237,7 @@ extension Lambda { } public struct ListTagsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: false, type: .map) ] /// The list of tags assigned to the function. @@ -221,75 +252,40 @@ extension Lambda { } } - public struct DeadLetterConfig: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TargetArn", required: false, type: .string) + public struct AliasRoutingConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AdditionalVersionWeights", required: false, type: .map) ] - /// The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic you specify as your Dead Letter Queue (DLQ). - public let targetArn: String? + /// Set this property value to dictate what percentage of traffic will invoke the updated function version. If set to an empty string, 100 percent of traffic will invoke function-version. + public let additionalVersionWeights: [String: Double]? - public init(targetArn: String? = nil) { - self.targetArn = targetArn + public init(additionalVersionWeights: [String: Double]? = nil) { + self.additionalVersionWeights = additionalVersionWeights } private enum CodingKeys: String, CodingKey { - case targetArn = "TargetArn" + case additionalVersionWeights = "AdditionalVersionWeights" } } - public struct AddPermissionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StatementId", required: true, type: .string), - AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), - AWSShapeMember(label: "Action", required: true, type: .string), - AWSShapeMember(label: "SourceArn", required: false, type: .string), - AWSShapeMember(label: "SourceAccount", required: false, type: .string), - AWSShapeMember(label: "Principal", required: true, type: .string), - AWSShapeMember(label: "EventSourceToken", required: false, type: .string), - AWSShapeMember(label: "Qualifier", location: .querystring(locationName: "Qualifier"), required: false, type: .string) + public struct DeadLetterConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetArn", required: false, type: .string) ] - /// A unique statement identifier. - public let statementId: String - /// Name of the Lambda function whose resource policy you are updating by adding a new permission. You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length. - public let functionName: String - /// The AWS Lambda action you want to allow in this statement. Each Lambda action is a string starting with lambda: followed by the API name . For example, lambda:CreateFunction. You can use wildcard (lambda:*) to grant permission for all AWS Lambda actions. - public let action: String - /// This is optional; however, when granting permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified source can invoke the function. If you add a permission without providing the source ARN, any AWS account that creates a mapping to your function ARN can send events to invoke your Lambda function. - public let sourceArn: String? - /// This parameter is used for S3 and SES. The AWS account ID (without a hyphen) of the source owner. For example, if the SourceArn identifies a bucket, then this is the bucket owner's account ID. You can use this additional condition to ensure the bucket you specify is owned by a specific account (it is possible the bucket owner deleted the bucket and some other AWS account created the bucket). You can also use this condition to specify all sources (that is, you don't specify the SourceArn) owned by a specific account. - public let sourceAccount: String? - /// The principal who is getting this permission. It can be Amazon S3 service Principal (s3.amazonaws.com) if you want Amazon S3 to invoke the function, an AWS account ID if you are granting cross-account permission, or any valid AWS service principal such as sns.amazonaws.com. For example, you might want to allow a custom application in another AWS account to push events to AWS Lambda by invoking your function. - public let principal: String - /// A unique token that must be supplied by the principal invoking the function. This is currently only used for Alexa Smart Home functions. - public let eventSourceToken: String? - /// You can use this optional query parameter to describe a qualified ARN using a function version or an alias name. The permission will then apply to the specific qualified ARN. For example, if you specify function version 2 as the qualifier, then permission applies only when request is made using qualified function ARN: arn:aws:lambda:aws-region:acct-id:function:function-name:2 If you specify an alias name, for example PROD, then the permission is valid only for requests made using the alias ARN: arn:aws:lambda:aws-region:acct-id:function:function-name:PROD If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN. arn:aws:lambda:aws-region:acct-id:function:function-name - public let qualifier: String? + /// The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic you specify as your Dead Letter Queue (DLQ). + public let targetArn: String? - public init(statementId: String, functionName: String, action: String, sourceArn: String? = nil, sourceAccount: String? = nil, principal: String, eventSourceToken: String? = nil, qualifier: String? = nil) { - self.statementId = statementId - self.functionName = functionName - self.action = action - self.sourceArn = sourceArn - self.sourceAccount = sourceAccount - self.principal = principal - self.eventSourceToken = eventSourceToken - self.qualifier = qualifier + public init(targetArn: String? = nil) { + self.targetArn = targetArn } private enum CodingKeys: String, CodingKey { - case statementId = "StatementId" - case functionName = "FunctionName" - case action = "Action" - case sourceArn = "SourceArn" - case sourceAccount = "SourceAccount" - case principal = "Principal" - case eventSourceToken = "EventSourceToken" - case qualifier = "Qualifier" + case targetArn = "TargetArn" } } public struct CreateEventSourceMappingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionName", required: true, type: .string), AWSShapeMember(label: "BatchSize", required: false, type: .integer), AWSShapeMember(label: "StartingPositionTimestamp", required: false, type: .timestamp), @@ -330,7 +326,7 @@ extension Lambda { } public struct EnvironmentError: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorCode", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string) ] @@ -351,7 +347,7 @@ extension Lambda { } public struct Environment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Variables", required: false, type: .map) ] /// The key-value pairs that represent your environment's configuration settings. @@ -366,10 +362,61 @@ extension Lambda { } } + public struct AddPermissionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StatementId", required: true, type: .string), + AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), + AWSShapeMember(label: "Action", required: true, type: .string), + AWSShapeMember(label: "SourceArn", required: false, type: .string), + AWSShapeMember(label: "SourceAccount", required: false, type: .string), + AWSShapeMember(label: "Principal", required: true, type: .string), + AWSShapeMember(label: "EventSourceToken", required: false, type: .string), + AWSShapeMember(label: "Qualifier", location: .querystring(locationName: "Qualifier"), required: false, type: .string) + ] + /// A unique statement identifier. + public let statementId: String + /// Name of the Lambda function whose resource policy you are updating by adding a new permission. You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length. + public let functionName: String + /// The AWS Lambda action you want to allow in this statement. Each Lambda action is a string starting with lambda: followed by the API name . For example, lambda:CreateFunction. You can use wildcard (lambda:*) to grant permission for all AWS Lambda actions. + public let action: String + /// This is optional; however, when granting permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified source can invoke the function. If you add a permission without providing the source ARN, any AWS account that creates a mapping to your function ARN can send events to invoke your Lambda function. + public let sourceArn: String? + /// This parameter is used for S3 and SES. The AWS account ID (without a hyphen) of the source owner. For example, if the SourceArn identifies a bucket, then this is the bucket owner's account ID. You can use this additional condition to ensure the bucket you specify is owned by a specific account (it is possible the bucket owner deleted the bucket and some other AWS account created the bucket). You can also use this condition to specify all sources (that is, you don't specify the SourceArn) owned by a specific account. + public let sourceAccount: String? + /// The principal who is getting this permission. It can be Amazon S3 service Principal (s3.amazonaws.com) if you want Amazon S3 to invoke the function, an AWS account ID if you are granting cross-account permission, or any valid AWS service principal such as sns.amazonaws.com. For example, you might want to allow a custom application in another AWS account to push events to AWS Lambda by invoking your function. + public let principal: String + /// A unique token that must be supplied by the principal invoking the function. This is currently only used for Alexa Smart Home functions. + public let eventSourceToken: String? + /// You can use this optional query parameter to describe a qualified ARN using a function version or an alias name. The permission will then apply to the specific qualified ARN. For example, if you specify function version 2 as the qualifier, then permission applies only when request is made using qualified function ARN: arn:aws:lambda:aws-region:acct-id:function:function-name:2 If you specify an alias name, for example PROD, then the permission is valid only for requests made using the alias ARN: arn:aws:lambda:aws-region:acct-id:function:function-name:PROD If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN. arn:aws:lambda:aws-region:acct-id:function:function-name + public let qualifier: String? + + public init(statementId: String, functionName: String, action: String, sourceArn: String? = nil, sourceAccount: String? = nil, principal: String, eventSourceToken: String? = nil, qualifier: String? = nil) { + self.statementId = statementId + self.functionName = functionName + self.action = action + self.sourceArn = sourceArn + self.sourceAccount = sourceAccount + self.principal = principal + self.eventSourceToken = eventSourceToken + self.qualifier = qualifier + } + + private enum CodingKeys: String, CodingKey { + case statementId = "StatementId" + case functionName = "FunctionName" + case action = "Action" + case sourceArn = "SourceArn" + case sourceAccount = "SourceAccount" + case principal = "Principal" + case eventSourceToken = "EventSourceToken" + case qualifier = "Qualifier" + } + } + public struct InvokeAsyncRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "InvokeArgs" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "InvokeArgs", required: true, type: .blob) ] @@ -390,7 +437,7 @@ extension Lambda { } public struct ListVersionsByFunctionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", location: .querystring(locationName: "Marker"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .integer), AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string) @@ -416,7 +463,7 @@ extension Lambda { } public struct FunctionCode: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3ObjectVersion", required: false, type: .string), AWSShapeMember(label: "S3Key", required: false, type: .string), AWSShapeMember(label: "S3Bucket", required: false, type: .string), @@ -447,7 +494,7 @@ extension Lambda { } public struct FunctionCodeLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Location", required: false, type: .string), AWSShapeMember(label: "RepositoryType", required: false, type: .string) ] @@ -468,7 +515,7 @@ extension Lambda { } public struct ListAliasesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Aliases", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -496,7 +543,7 @@ extension Lambda { } public struct UpdateFunctionCodeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "ZipFile", required: false, type: .blob), AWSShapeMember(label: "S3Key", required: false, type: .string), @@ -511,7 +558,7 @@ extension Lambda { public let zipFile: Data? /// The Amazon S3 object (the deployment package) key name you want to upload. public let s3Key: String? - /// This boolean parameter can be used to test your request to AWS Lambda to update the Lambda function and publish a version as an atomic operation. It will do all necessary computation and validation of your code but will not upload it or a publish a version. Each time this operation is invoked, the CodeSha256 hash value the provided code will also be computed and returned in the response. + /// This boolean parameter can be used to test your request to AWS Lambda to update the Lambda function and publish a version as an atomic operation. It will do all necessary computation and validation of your code but will not upload it or a publish a version. Each time this operation is invoked, the CodeSha256 hash value of the provided code will also be computed and returned in the response. public let dryRun: Bool? /// Amazon S3 bucket name where the .zip file containing your deployment package is stored. This bucket must reside in the same AWS Region where you are creating the Lambda function. public let s3Bucket: String? @@ -542,7 +589,7 @@ extension Lambda { } public struct RemovePermissionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Qualifier", location: .querystring(locationName: "Qualifier"), required: false, type: .string), AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "StatementId", location: .uri(locationName: "StatementId"), required: true, type: .string) @@ -570,6 +617,8 @@ extension Lambda { public enum ThrottleReason: String, CustomStringConvertible, Codable { case concurrentinvocationlimitexceeded = "ConcurrentInvocationLimitExceeded" case functioninvocationratelimitexceeded = "FunctionInvocationRateLimitExceeded" + case reservedfunctionconcurrentinvocationlimitexceeded = "ReservedFunctionConcurrentInvocationLimitExceeded" + case reservedfunctioninvocationratelimitexceeded = "ReservedFunctionInvocationRateLimitExceeded" case callerratelimitexceeded = "CallerRateLimitExceeded" public var description: String { return self.rawValue } } @@ -581,7 +630,7 @@ extension Lambda { } public struct ListEventSourceMappingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .integer), AWSShapeMember(label: "FunctionName", location: .querystring(locationName: "FunctionName"), required: false, type: .string), AWSShapeMember(label: "EventSourceArn", location: .querystring(locationName: "EventSourceArn"), required: false, type: .string), @@ -612,12 +661,15 @@ extension Lambda { } public struct CreateAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoutingConfig", required: false, type: .structure), AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "FunctionVersion", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] + /// Specifies an additional version your alias can point to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see lambda-traffic-shifting-using-aliases. + public let routingConfig: AliasRoutingConfiguration? /// Name of the Lambda function for which you want to create an alias. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length. public let functionName: String /// Lambda function version for which you are creating the alias. @@ -627,7 +679,8 @@ extension Lambda { /// Description of the alias. public let description: String? - public init(functionName: String, functionVersion: String, name: String, description: String? = nil) { + public init(routingConfig: AliasRoutingConfiguration? = nil, functionName: String, functionVersion: String, name: String, description: String? = nil) { + self.routingConfig = routingConfig self.functionName = functionName self.functionVersion = functionVersion self.name = name @@ -635,6 +688,7 @@ extension Lambda { } private enum CodingKeys: String, CodingKey { + case routingConfig = "RoutingConfig" case functionName = "FunctionName" case functionVersion = "FunctionVersion" case name = "Name" @@ -643,7 +697,7 @@ extension Lambda { } public struct UpdateEventSourceMappingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UUID", location: .uri(locationName: "UUID"), required: true, type: .string), AWSShapeMember(label: "FunctionName", required: false, type: .string), AWSShapeMember(label: "BatchSize", required: false, type: .integer), @@ -674,7 +728,7 @@ extension Lambda { } public struct GetFunctionConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "Qualifier", location: .querystring(locationName: "Qualifier"), required: false, type: .string) ] @@ -695,7 +749,7 @@ extension Lambda { } public struct InvokeAsyncResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .integer) ] /// It will be 202 upon success. @@ -715,7 +769,7 @@ extension Lambda { } public struct GetAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", location: .uri(locationName: "Name"), required: true, type: .string), AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string) ] @@ -738,10 +792,11 @@ extension Lambda { public struct InvocationResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "Payload" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StatusCode", required: false, type: .integer), AWSShapeMember(label: "LogResult", location: .header(locationName: "X-Amz-Log-Result"), required: false, type: .string), AWSShapeMember(label: "Payload", required: false, type: .blob), + AWSShapeMember(label: "ExecutedVersion", location: .header(locationName: "X-Amz-Executed-Version"), required: false, type: .string), AWSShapeMember(label: "FunctionError", location: .header(locationName: "X-Amz-Function-Error"), required: false, type: .string) ] /// The HTTP status code will be in the 200 range for successful request. For the RequestResponse invocation type this status code will be 200. For the Event invocation type this status code will be 202. For the DryRun invocation type the status code will be 204. @@ -750,13 +805,16 @@ extension Lambda { public let logResult: String? /// It is the JSON representation of the object returned by the Lambda function. This is present only if the invocation type is RequestResponse. In the event of a function error this field contains a message describing the error. For the Handled errors the Lambda function will report this message. For Unhandled errors AWS Lambda reports the message. public let payload: Data? + /// The function version that has been executed. This value is returned only if the invocation type is RequestResponse. + public let executedVersion: String? /// Indicates whether an error occurred while executing the Lambda function. If an error occurred this field will have one of two values; Handled or Unhandled. Handled errors are errors that are reported by the function while the Unhandled errors are those detected and reported by AWS Lambda. Unhandled errors include out of memory errors and function timeouts. For information about how to report an Handled error, see Programming Model. public let functionError: String? - public init(statusCode: Int32? = nil, logResult: String? = nil, payload: Data? = nil, functionError: String? = nil) { + public init(statusCode: Int32? = nil, logResult: String? = nil, payload: Data? = nil, executedVersion: String? = nil, functionError: String? = nil) { self.statusCode = statusCode self.logResult = logResult self.payload = payload + self.executedVersion = executedVersion self.functionError = functionError } @@ -764,12 +822,13 @@ extension Lambda { case statusCode = "StatusCode" case logResult = "X-Amz-Log-Result" case payload = "Payload" + case executedVersion = "X-Amz-Executed-Version" case functionError = "X-Amz-Function-Error" } } public struct AddPermissionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Statement", required: false, type: .string) ] /// The permission statement you specified in the request. The response returns the same as a string using a backslash ("\") as an escape character in the JSON. @@ -785,7 +844,7 @@ extension Lambda { } public struct UpdateFunctionConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KMSKeyArn", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), @@ -818,7 +877,7 @@ extension Lambda { public let deadLetterConfig: DeadLetterConfig? /// The function execution time at which AWS Lambda should terminate the function. Because the execution time has cost implications, we recommend you set this value based on your expected execution time. The default is 3 seconds. public let timeout: Int32? - /// The runtime environment for the Lambda function. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3". To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". Node v0.10.42 is currently marked as deprecated. You must migrate existing functions to the newer Node.js runtime versions available on AWS Lambda (nodejs4.3 or nodejs6.10) as soon as possible. You can request a one-time extension until June 30, 2017 by going to the Lambda console and following the instructions provided. Failure to do so will result in an invalid parameter value error being returned. Note that you will have to follow this procedure for each region that contains functions written in the Node v0.10.42 runtime. + /// The runtime environment for the Lambda function. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3". To use the Python runtime v3.6, set the value to "python3.6". Node v0.10.42 is currently marked as deprecated. You must migrate existing functions to the newer Node.js runtime versions available on AWS Lambda (nodejs4.3 or nodejs6.10) as soon as possible. Failure to do so will result in an invalid parameter error being returned. Note that you will have to follow this procedure for each region that contains functions written in the Node v0.10.42 runtime. public let runtime: Runtime? /// The function that Lambda calls to begin executing your function. For Node.js, it is the module-name.export value in your function. public let handler: String? @@ -855,7 +914,7 @@ extension Lambda { } public struct ListFunctionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Functions", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -883,7 +942,7 @@ extension Lambda { } public struct CreateFunctionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcConfig", required: false, type: .structure), AWSShapeMember(label: "Tags", required: false, type: .map), AWSShapeMember(label: "DeadLetterConfig", required: false, type: .structure), @@ -910,7 +969,7 @@ extension Lambda { public let timeout: Int32? /// This boolean parameter can be used to request AWS Lambda to create the Lambda function and publish a version as an atomic operation. public let publish: Bool? - /// The runtime environment for the Lambda function you are uploading. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3". Node v0.10.42 is currently marked as deprecated. You must migrate existing functions to the newer Node.js runtime versions available on AWS Lambda (nodejs4.3 or nodejs6.10) as soon as possible. You can request a one-time extension until June 30, 2017 by going to the Lambda console and following the instructions provided. Failure to do so will result in an invalid parmaeter error being returned. Note that you will have to follow this procedure for each region that contains functions written in the Node v0.10.42 runtime. + /// The runtime environment for the Lambda function you are uploading. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3". Node v0.10.42 is currently marked as deprecated. You must migrate existing functions to the newer Node.js runtime versions available on AWS Lambda (nodejs4.3 or nodejs6.10) as soon as possible. Failure to do so will result in an invalid parmaeter error being returned. Note that you will have to follow this procedure for each region that contains functions written in the Node v0.10.42 runtime. public let runtime: Runtime /// A short, user-defined function description. Lambda does not use this value. Assign a meaningful description as you see fit. public let description: String? @@ -968,7 +1027,7 @@ extension Lambda { } public struct TracingConfigResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Mode", required: false, type: .enum) ] /// The tracing mode associated with your Lambda function. @@ -984,7 +1043,7 @@ extension Lambda { } public struct VpcConfigResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcId", required: false, type: .string), AWSShapeMember(label: "SubnetIds", required: false, type: .list), AWSShapeMember(label: "SecurityGroupIds", required: false, type: .list) @@ -1010,7 +1069,7 @@ extension Lambda { } public struct GetPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "Qualifier", location: .querystring(locationName: "Qualifier"), required: false, type: .string) ] @@ -1031,8 +1090,9 @@ extension Lambda { } public struct FunctionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcConfig", required: false, type: .structure), + AWSShapeMember(label: "MasterArn", required: false, type: .string), AWSShapeMember(label: "DeadLetterConfig", required: false, type: .structure), AWSShapeMember(label: "Timeout", required: false, type: .integer), AWSShapeMember(label: "Runtime", required: false, type: .enum), @@ -1052,6 +1112,8 @@ extension Lambda { ] /// VPC configuration associated with your Lambda function. public let vpcConfig: VpcConfigResponse? + /// Returns the ARN (Amazon Resource Name) of the master function. + public let masterArn: String? /// The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic. public let deadLetterConfig: DeadLetterConfig? /// The function execution time at which Lambda should terminate the function. Because the execution time has cost implications, we recommend you set this value based on your expected execution time. The default is 3 seconds. @@ -1085,8 +1147,9 @@ extension Lambda { /// The function Lambda calls to begin executing your function. public let handler: String? - public init(vpcConfig: VpcConfigResponse? = nil, deadLetterConfig: DeadLetterConfig? = nil, timeout: Int32? = nil, runtime: Runtime? = nil, codeSha256: String? = nil, description: String? = nil, lastModified: String? = nil, kMSKeyArn: String? = nil, functionName: String? = nil, tracingConfig: TracingConfigResponse? = nil, memorySize: Int32? = nil, functionArn: String? = nil, version: String? = nil, role: String? = nil, codeSize: Int64? = nil, environment: EnvironmentResponse? = nil, handler: String? = nil) { + public init(vpcConfig: VpcConfigResponse? = nil, masterArn: String? = nil, deadLetterConfig: DeadLetterConfig? = nil, timeout: Int32? = nil, runtime: Runtime? = nil, codeSha256: String? = nil, description: String? = nil, lastModified: String? = nil, kMSKeyArn: String? = nil, functionName: String? = nil, tracingConfig: TracingConfigResponse? = nil, memorySize: Int32? = nil, functionArn: String? = nil, version: String? = nil, role: String? = nil, codeSize: Int64? = nil, environment: EnvironmentResponse? = nil, handler: String? = nil) { self.vpcConfig = vpcConfig + self.masterArn = masterArn self.deadLetterConfig = deadLetterConfig self.timeout = timeout self.runtime = runtime @@ -1107,6 +1170,7 @@ extension Lambda { private enum CodingKeys: String, CodingKey { case vpcConfig = "VpcConfig" + case masterArn = "MasterArn" case deadLetterConfig = "DeadLetterConfig" case timeout = "Timeout" case runtime = "Runtime" @@ -1127,7 +1191,7 @@ extension Lambda { } public struct GetPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: false, type: .string) ] /// The resource policy associated with the specified function. The response returns the same as a string using a backslash ("\") as an escape character in the JSON. @@ -1142,8 +1206,24 @@ extension Lambda { } } + public struct Concurrency: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedConcurrentExecutions", required: false, type: .integer) + ] + /// The number of concurrent executions reserved for this function. + public let reservedConcurrentExecutions: Int32? + + public init(reservedConcurrentExecutions: Int32? = nil) { + self.reservedConcurrentExecutions = reservedConcurrentExecutions + } + + private enum CodingKeys: String, CodingKey { + case reservedConcurrentExecutions = "ReservedConcurrentExecutions" + } + } + public struct ListVersionsByFunctionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Versions", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1163,44 +1243,73 @@ extension Lambda { } } + public struct PutFunctionConcurrencyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedConcurrentExecutions", required: true, type: .integer), + AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string) + ] + /// The concurrent execution limit reserved for this function. + public let reservedConcurrentExecutions: Int32 + /// The name of the function you are setting concurrent execution limits on. + public let functionName: String + + public init(reservedConcurrentExecutions: Int32, functionName: String) { + self.reservedConcurrentExecutions = reservedConcurrentExecutions + self.functionName = functionName + } + + private enum CodingKeys: String, CodingKey { + case reservedConcurrentExecutions = "ReservedConcurrentExecutions" + case functionName = "FunctionName" + } + } + public struct AccountLimit: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CodeSizeZipped", required: false, type: .long), - AWSShapeMember(label: "CodeSizeUnzipped", required: false, type: .long), + AWSShapeMember(label: "UnreservedConcurrentExecutions", required: false, type: .integer), AWSShapeMember(label: "ConcurrentExecutions", required: false, type: .integer), + AWSShapeMember(label: "CodeSizeUnzipped", required: false, type: .long), AWSShapeMember(label: "TotalCodeSize", required: false, type: .long) ] /// Size, in bytes, of a single zipped code/dependencies package you can upload for your Lambda function(.zip/.jar file). Try using Amazon S3 for uploading larger files. Default limit is 50 MB. public let codeSizeZipped: Int64? + /// The number of concurrent executions available to functions that do not have concurrency limits set. + public let unreservedConcurrentExecutions: Int32? + /// Number of simultaneous executions of your function per region. For more information or to request a limit increase for concurrent executions, see Lambda Function Concurrent Executions. The default limit is 1000. + public let concurrentExecutions: Int32? /// Size, in bytes, of code/dependencies that you can zip into a deployment package (uncompressed zip/jar size) for uploading. The default limit is 250 MB. public let codeSizeUnzipped: Int64? - /// Number of simultaneous executions of your function per region. For more information or to request a limit increase for concurrent executions, see Lambda Function Concurrent Executions. The default limit is 100. - public let concurrentExecutions: Int32? /// Maximum size, in bytes, of a code package you can upload per region. The default size is 75 GB. public let totalCodeSize: Int64? - public init(codeSizeZipped: Int64? = nil, codeSizeUnzipped: Int64? = nil, concurrentExecutions: Int32? = nil, totalCodeSize: Int64? = nil) { + public init(codeSizeZipped: Int64? = nil, unreservedConcurrentExecutions: Int32? = nil, concurrentExecutions: Int32? = nil, codeSizeUnzipped: Int64? = nil, totalCodeSize: Int64? = nil) { self.codeSizeZipped = codeSizeZipped - self.codeSizeUnzipped = codeSizeUnzipped + self.unreservedConcurrentExecutions = unreservedConcurrentExecutions self.concurrentExecutions = concurrentExecutions + self.codeSizeUnzipped = codeSizeUnzipped self.totalCodeSize = totalCodeSize } private enum CodingKeys: String, CodingKey { case codeSizeZipped = "CodeSizeZipped" - case codeSizeUnzipped = "CodeSizeUnzipped" + case unreservedConcurrentExecutions = "UnreservedConcurrentExecutions" case concurrentExecutions = "ConcurrentExecutions" + case codeSizeUnzipped = "CodeSizeUnzipped" case totalCodeSize = "TotalCodeSize" } } public struct AliasConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoutingConfig", required: false, type: .structure), AWSShapeMember(label: "FunctionVersion", required: false, type: .string), AWSShapeMember(label: "AliasArn", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] + /// Specifies an additional function versions the alias points to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see lambda-traffic-shifting-using-aliases. + public let routingConfig: AliasRoutingConfiguration? /// Function version to which the alias points. public let functionVersion: String? /// Lambda function ARN that is qualified using the alias name as the suffix. For example, if you create an alias called BETA that points to a helloworld function version, the ARN is arn:aws:lambda:aws-regions:acct-id:function:helloworld:BETA. @@ -1210,7 +1319,8 @@ extension Lambda { /// Alias description. public let description: String? - public init(functionVersion: String? = nil, aliasArn: String? = nil, name: String? = nil, description: String? = nil) { + public init(routingConfig: AliasRoutingConfiguration? = nil, functionVersion: String? = nil, aliasArn: String? = nil, name: String? = nil, description: String? = nil) { + self.routingConfig = routingConfig self.functionVersion = functionVersion self.aliasArn = aliasArn self.name = name @@ -1218,6 +1328,7 @@ extension Lambda { } private enum CodingKeys: String, CodingKey { + case routingConfig = "RoutingConfig" case functionVersion = "FunctionVersion" case aliasArn = "AliasArn" case name = "Name" @@ -1226,7 +1337,7 @@ extension Lambda { } public struct DeleteAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", location: .uri(locationName: "Name"), required: true, type: .string), AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string) ] @@ -1247,7 +1358,7 @@ extension Lambda { } public struct TracingConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Mode", required: false, type: .enum) ] /// Can be either PassThrough or Active. If PassThrough, Lambda will only trace the request from an upstream service if it contains a tracing header with "sampled=1". If Active, Lambda will respect any tracing header it receives from an upstream service. If no tracing header is received, Lambda will call X-Ray for a tracing decision. @@ -1263,7 +1374,7 @@ extension Lambda { } public struct EnvironmentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Error", required: false, type: .structure), AWSShapeMember(label: "Variables", required: false, type: .map) ] @@ -1283,7 +1394,7 @@ extension Lambda { } public struct ListAliasesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "MaxItems"), required: false, type: .integer), AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "FunctionVersion", location: .querystring(locationName: "FunctionVersion"), required: false, type: .string), @@ -1314,7 +1425,7 @@ extension Lambda { } public struct AccountUsage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionCount", required: false, type: .long), AWSShapeMember(label: "TotalCodeSize", required: false, type: .long) ] @@ -1335,7 +1446,7 @@ extension Lambda { } public struct VpcConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: false, type: .list), AWSShapeMember(label: "SecurityGroupIds", required: false, type: .list) ] @@ -1355,8 +1466,13 @@ extension Lambda { } } + public enum FunctionVersion: String, CustomStringConvertible, Codable { + case all = "ALL" + public var description: String { return self.rawValue } + } + public struct DeleteEventSourceMappingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UUID", location: .uri(locationName: "UUID"), required: true, type: .string) ] /// The event source mapping ID. @@ -1372,7 +1488,7 @@ extension Lambda { } public struct GetEventSourceMappingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UUID", location: .uri(locationName: "UUID"), required: true, type: .string) ] /// The AWS Lambda assigned ID of the event source mapping. @@ -1388,14 +1504,14 @@ extension Lambda { } public struct PublishVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "CodeSha256", required: false, type: .string), AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string) ] /// The description for the version you are publishing. If not provided, AWS Lambda copies the description from the $LATEST version. public let description: String? - /// The SHA256 hash of the deployment package you want to publish. This provides validation on the code you are publishing. If you provide this parameter value must match the SHA256 of the $LATEST version for the publication to succeed. + /// The SHA256 hash of the deployment package you want to publish. This provides validation on the code you are publishing. If you provide this parameter, the value must match the SHA256 of the $LATEST version for the publication to succeed. You can use the DryRun parameter of UpdateFunctionCode to verify the hash value that will be returned before publishing your new version. public let codeSha256: String? /// The Lambda function name. You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length. public let functionName: String @@ -1414,37 +1530,42 @@ extension Lambda { } public struct GetFunctionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Configuration", required: false, type: .structure), - AWSShapeMember(label: "Tags", required: false, type: .map), - AWSShapeMember(label: "Code", required: false, type: .structure) + AWSShapeMember(label: "Concurrency", required: false, type: .structure), + AWSShapeMember(label: "Code", required: false, type: .structure), + AWSShapeMember(label: "Tags", required: false, type: .map) ] public let configuration: FunctionConfiguration? + /// The concurrent execution limit set for this function. + public let concurrency: Concurrency? + public let code: FunctionCodeLocation? /// Returns the list of tags associated with the function. public let tags: [String: String]? - public let code: FunctionCodeLocation? - public init(configuration: FunctionConfiguration? = nil, tags: [String: String]? = nil, code: FunctionCodeLocation? = nil) { + public init(configuration: FunctionConfiguration? = nil, concurrency: Concurrency? = nil, code: FunctionCodeLocation? = nil, tags: [String: String]? = nil) { self.configuration = configuration - self.tags = tags + self.concurrency = concurrency self.code = code + self.tags = tags } private enum CodingKeys: String, CodingKey { case configuration = "Configuration" - case tags = "Tags" + case concurrency = "Concurrency" case code = "Code" + case tags = "Tags" } } public struct GetFunctionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FunctionName", location: .uri(locationName: "FunctionName"), required: true, type: .string), AWSShapeMember(label: "Qualifier", location: .querystring(locationName: "Qualifier"), required: false, type: .string) ] /// The Lambda function name. You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length. public let functionName: String - /// Using this optional parameter to specify a function version or an alias name. If you specify function version, the API uses qualified function ARN for the request and returns information about the specific Lambda function version. If you specify an alias name, the API uses the alias ARN and returns information about the function version to which the alias points. If you don't provide this parameter, the API uses unqualified function ARN and returns information about the $LATEST version of the Lambda function. + /// Use this optional parameter to specify a function version or an alias name. If you specify function version, the API uses qualified function ARN for the request and returns information about the specific Lambda function version. If you specify an alias name, the API uses the alias ARN and returns information about the function version to which the alias points. If you don't provide this parameter, the API uses unqualified function ARN and returns information about the $LATEST version of the Lambda function. public let qualifier: String? public init(functionName: String, qualifier: String? = nil) { @@ -1459,7 +1580,7 @@ extension Lambda { } public struct ListEventSourceMappingsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSourceMappings", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1486,7 +1607,7 @@ extension Lambda { } public struct GetAccountSettingsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountUsage", required: false, type: .structure), AWSShapeMember(label: "AccountLimit", required: false, type: .structure) ] @@ -1505,7 +1626,7 @@ extension Lambda { } public struct ListTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Resource", location: .uri(locationName: "ARN"), required: true, type: .string) ] /// The ARN (Amazon Resource Name) of the function. @@ -1521,7 +1642,7 @@ extension Lambda { } public struct UntagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Resource", location: .uri(locationName: "ARN"), required: true, type: .string), AWSShapeMember(label: "TagKeys", location: .querystring(locationName: "tagKeys"), required: true, type: .list) ] diff --git a/Sources/AWSSDKSwift/Services/lex-models/LexModels_API.swift b/Sources/AWSSDKSwift/Services/lex-models/LexModels_API.swift index a8b37fe924a..24d0dce2f27 100644 --- a/Sources/AWSSDKSwift/Services/lex-models/LexModels_API.swift +++ b/Sources/AWSSDKSwift/Services/lex-models/LexModels_API.swift @@ -34,7 +34,7 @@ public struct LexModels { return try client.send(operation: "GetBuiltinSlotTypes", path: "/builtins/slottypes/", httpMethod: "GET", input: input) } - /// Deletes all versions of the slot type, including the $LATEST version. To delete a specific version of the slot type, use the operation. You can delete a version of a slot type only if it is not referenced. To delete a slot type that is referred to in one or more intents, you must remove those references first. If you get the ResourceInUseException exception, the exception provides an example reference that shows the intent where the slot type is referenced. To remove the reference to the slot type, either update the intent or delete it. If you get the same exception when you attempt to delete the slot type again, repeat until the slot type has no references and the DeleteSlotType call is successful. This operation requires permission for the lex:DeleteSlotType action. + /// Deletes all versions of the slot type, including the $LATEST version. To delete a specific version of the slot type, use the DeleteSlotTypeVersion operation. You can delete a version of a slot type only if it is not referenced. To delete a slot type that is referred to in one or more intents, you must remove those references first. If you get the ResourceInUseException exception, the exception provides an example reference that shows the intent where the slot type is referenced. To remove the reference to the slot type, either update the intent or delete it. If you get the same exception when you attempt to delete the slot type again, repeat until the slot type has no references and the DeleteSlotType call is successful. This operation requires permission for the lex:DeleteSlotType action. public func deleteSlotType(_ input: DeleteSlotTypeRequest) throws { _ = try client.send(operation: "DeleteSlotType", path: "/slottypes/{name}", httpMethod: "DELETE", input: input) } @@ -59,27 +59,27 @@ public struct LexModels { return try client.send(operation: "GetSlotTypes", path: "/slottypes/", httpMethod: "GET", input: input) } - /// Deletes a specific version of a bot. To delete all versions of a bot, use the operation. This operation requires permissions for the lex:DeleteBotVersion action. + /// Deletes a specific version of a bot. To delete all versions of a bot, use the DeleteBot operation. This operation requires permissions for the lex:DeleteBotVersion action. public func deleteBotVersion(_ input: DeleteBotVersionRequest) throws { _ = try client.send(operation: "DeleteBotVersion", path: "/bots/{name}/versions/{version}", httpMethod: "DELETE", input: input) } - /// Deletes a specific version of a slot type. To delete all versions of a slot type, use the operation. This operation requires permissions for the lex:DeleteSlotTypeVersion action. + /// Deletes a specific version of a slot type. To delete all versions of a slot type, use the DeleteSlotType operation. This operation requires permissions for the lex:DeleteSlotTypeVersion action. public func deleteSlotTypeVersion(_ input: DeleteSlotTypeVersionRequest) throws { _ = try client.send(operation: "DeleteSlotTypeVersion", path: "/slottypes/{name}/version/{version}", httpMethod: "DELETE", input: input) } - /// Creates an Amazon Lex conversational bot or replaces an existing bot. When you create or update a bot you only required to specify a name. You can use this to add intents later, or to remove intents from an existing bot. When you create a bot with a name only, the bot is created or updated but Amazon Lex returns the response FAILED. You can build the bot after you add one or more intents. For more information about Amazon Lex bots, see how-it-works. If you specify the name of an existing bot, the fields in the request replace the existing values in the $LATEST version of the bot. Amazon Lex removes any fields that you don't provide values for in the request, except for the idleTTLInSeconds and privacySettings fields, which are set to their default values. If you don't specify values for required fields, Amazon Lex throws an exception. This operation requires permissions for the lex:PutBot action. For more information, see auth-and-access-control. + /// Creates an Amazon Lex conversational bot or replaces an existing bot. When you create or update a bot you are only required to specify a name. You can use this to add intents later, or to remove intents from an existing bot. When you create a bot with a name only, the bot is created or updated but Amazon Lex returns the response FAILED. You can build the bot after you add one or more intents. For more information about Amazon Lex bots, see how-it-works. If you specify the name of an existing bot, the fields in the request replace the existing values in the $LATEST version of the bot. Amazon Lex removes any fields that you don't provide values for in the request, except for the idleTTLInSeconds and privacySettings fields, which are set to their default values. If you don't specify values for required fields, Amazon Lex throws an exception. This operation requires permissions for the lex:PutBot action. For more information, see auth-and-access-control. public func putBot(_ input: PutBotRequest) throws -> PutBotResponse { return try client.send(operation: "PutBot", path: "/bots/{name}/versions/$LATEST", httpMethod: "PUT", input: input) } - /// Deletes all versions of the bot, including the $LATEST version. To delete a specific version of the bot, use the operation. If a bot has an alias, you can't delete it. Instead, the DeleteBot operation returns a ResourceInUseException exception that includes a reference to the alias that refers to the bot. To remove the reference to the bot, delete the alias. If you get the same exception again, delete the referring alias until the DeleteBot operation is successful. This operation requires permissions for the lex:DeleteBot action. + /// Deletes all versions of the bot, including the $LATEST version. To delete a specific version of the bot, use the DeleteBotVersion operation. If a bot has an alias, you can't delete it. Instead, the DeleteBot operation returns a ResourceInUseException exception that includes a reference to the alias that refers to the bot. To remove the reference to the bot, delete the alias. If you get the same exception again, delete the referring alias until the DeleteBot operation is successful. This operation requires permissions for the lex:DeleteBot action. public func deleteBot(_ input: DeleteBotRequest) throws { _ = try client.send(operation: "DeleteBot", path: "/bots/{name}", httpMethod: "DELETE", input: input) } - /// Deletes stored utterances. Amazon Lex stores the utterances that users send to your bot unless the childDirected field in the bot is set to true. Utterances are stored for 15 days for use with the operation, and then stored indefinately for use in improving the ability of your bot to respond to user input. Use the DeleteStoredUtterances operation to manually delete stored utterances for a specific user. This operation requires permissions for the lex:DeleteUtterances action. + /// Deletes stored utterances. Amazon Lex stores the utterances that users send to your bot unless the childDirected field in the bot is set to true. Utterances are stored for 15 days for use with the GetUtterancesView operation, and then stored indefinately for use in improving the ability of your bot to respond to user input. Use the DeleteStoredUtterances operation to manually delete stored utterances for a specific user. This operation requires permissions for the lex:DeleteUtterances action. public func deleteUtterances(_ input: DeleteUtterancesRequest) throws { _ = try client.send(operation: "DeleteUtterances", path: "/bots/{botName}/utterances/{userId}", httpMethod: "DELETE", input: input) } @@ -99,9 +99,9 @@ public struct LexModels { return try client.send(operation: "CreateSlotTypeVersion", path: "/slottypes/{name}/versions", httpMethod: "POST", input: input) } - /// Creates a new version of an intent based on the $LATEST version of the intent. If the $LATEST version of this intent hasn't changed since you last updated it, Amazon Lex doesn't create a new version. It returns the last version you created. You can update only the $LATEST version of the intent. You can't update the numbered versions that you create with the CreateIntentVersion operation. When you create a version of an intent, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see versioning-intro. This operation requires permissions to perform the lex:CreateIntentVersion action. - public func createIntentVersion(_ input: CreateIntentVersionRequest) throws -> CreateIntentVersionResponse { - return try client.send(operation: "CreateIntentVersion", path: "/intents/{name}/versions", httpMethod: "POST", input: input) + /// Exports the contents of a Amazon Lex resource in a specified format. + public func getExport(_ input: GetExportRequest) throws -> GetExportResponse { + return try client.send(operation: "GetExport", path: "/exports/", httpMethod: "GET", input: input) } /// Creates an intent or replaces an existing intent. To define the interaction between the user and your bot, you use one or more intents. For a pizza ordering bot, for example, you would create an OrderPizza intent. To create an intent or replace an existing intent, you must provide the following: Intent name. For example, OrderPizza. Sample utterances. For example, "Can I order a pizza, please." and "I want to order a pizza." Information to be gathered. You specify slot types for the information that your bot will request from the user. You can specify standard slot types, such as a date or a time, or custom slot types such as the size and crust of a pizza. How the intent will be fulfilled. You can provide a Lambda function or configure the intent to return the intent information to the client application. If you use a Lambda function, when all of the intent information is available, Amazon Lex invokes your Lambda function. If you configure your intent to return the intent information to the client application. You can specify other optional information in the request, such as: A confirmation prompt to ask the user to confirm an intent. For example, "Shall I order your pizza?" A conclusion statement to send to the user after the intent has been fulfilled. For example, "I placed your pizza order." A follow-up prompt that asks the user for additional activity. For example, asking "Do you want to order a drink with your pizza?" If you specify an existing intent name to update the intent, Amazon Lex replaces the values in the $LATEST version of the slot type with the values in the request. Amazon Lex removes fields that you don't provide in the request. If you don't specify the required fields, Amazon Lex throws an exception. For more information, see how-it-works. This operation requires permissions for the lex:PutIntent action. @@ -109,6 +109,11 @@ public struct LexModels { return try client.send(operation: "PutIntent", path: "/intents/{name}/versions/$LATEST", httpMethod: "PUT", input: input) } + /// Creates a new version of an intent based on the $LATEST version of the intent. If the $LATEST version of this intent hasn't changed since you last updated it, Amazon Lex doesn't create a new version. It returns the last version you created. You can update only the $LATEST version of the intent. You can't update the numbered versions that you create with the CreateIntentVersion operation. When you create a version of an intent, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see versioning-intro. This operation requires permissions to perform the lex:CreateIntentVersion action. + public func createIntentVersion(_ input: CreateIntentVersionRequest) throws -> CreateIntentVersionResponse { + return try client.send(operation: "CreateIntentVersion", path: "/intents/{name}/versions", httpMethod: "POST", input: input) + } + /// Returns a list of aliases for a specified Amazon Lex bot. This operation requires permissions for the lex:GetBotAliases action. public func getBotAliases(_ input: GetBotAliasesRequest) throws -> GetBotAliasesResponse { return try client.send(operation: "GetBotAliases", path: "/bots/{botName}/aliases/", httpMethod: "GET", input: input) @@ -134,7 +139,7 @@ public struct LexModels { return try client.send(operation: "CreateBotVersion", path: "/bots/{name}/versions", httpMethod: "POST", input: input) } - /// Deletes all versions of the intent, including the $LATEST version. To delete a specific version of the intent, use the operation. You can delete a version of an intent only if it is not referenced. To delete an intent that is referred to in one or more bots (see how-it-works), you must remove those references first. If you get the ResourceInUseException exception, it provides an example reference that shows where the intent is referenced. To remove the reference to the intent, either update the bot or delete it. If you get the same exception when you attempt to delete the intent again, repeat until the intent has no references and the call to DeleteIntent is successful. This operation requires permission for the lex:DeleteIntent action. + /// Deletes all versions of the intent, including the $LATEST version. To delete a specific version of the intent, use the DeleteIntentVersion operation. You can delete a version of an intent only if it is not referenced. To delete an intent that is referred to in one or more bots (see how-it-works), you must remove those references first. If you get the ResourceInUseException exception, it provides an example reference that shows where the intent is referenced. To remove the reference to the intent, either update the bot or delete it. If you get the same exception when you attempt to delete the intent again, repeat until the intent has no references and the call to DeleteIntent is successful. This operation requires permission for the lex:DeleteIntent action. public func deleteIntent(_ input: DeleteIntentRequest) throws { _ = try client.send(operation: "DeleteIntent", path: "/intents/{name}", httpMethod: "DELETE", input: input) } @@ -154,7 +159,7 @@ public struct LexModels { _ = try client.send(operation: "DeleteBotAlias", path: "/bots/{botName}/aliases/{name}", httpMethod: "DELETE", input: input) } - /// Deletes a specific version of an intent. To delete all versions of a intent, use the operation. This operation requires permissions for the lex:DeleteIntentVersion action. + /// Deletes a specific version of an intent. To delete all versions of a intent, use the DeleteIntent operation. This operation requires permissions for the lex:DeleteIntentVersion action. public func deleteIntentVersion(_ input: DeleteIntentVersionRequest) throws { _ = try client.send(operation: "DeleteIntentVersion", path: "/intents/{name}/versions/{version}", httpMethod: "DELETE", input: input) } @@ -164,7 +169,7 @@ public struct LexModels { return try client.send(operation: "GetIntent", path: "/intents/{name}/versions/{version}", httpMethod: "GET", input: input) } - /// Returns metadata information for a specific bot. You must provide the bot name and the bot version or alias. The GetBot operation requires permissions for the lex:GetBot action. + /// Returns metadata information for a specific bot. You must provide the bot name and the bot version or alias. This operation requires permissions for the lex:GetBot action. public func getBot(_ input: GetBotRequest) throws -> GetBotResponse { return try client.send(operation: "GetBot", path: "/bots/{name}/versions/{versionoralias}", httpMethod: "GET", input: input) } @@ -174,7 +179,7 @@ public struct LexModels { return try client.send(operation: "GetSlotTypeVersions", path: "/slottypes/{name}/versions/", httpMethod: "GET", input: input) } - /// Use the GetUtterancesView operation to get information about the utterances that your users have made to your bot. You can use this list to tune the utterances that your bot responds to. For example, say that you have created a bot to order flowers. After your users have used your bot for a while, use the GetUtterancesView operation to see the requests that they have made and whether they have been successful. You might find that the utterance "I want flowers" is not being recognized. You could add this utterance to the OrderFlowers intent so that your bot recognizes that utterance. After you publish a new version of a bot, you can get information about the old version and the new so that you can compare the performance across the two versions. Data is available for the last 15 days. You can request information for up to 5 versions in each request. The response contains information about a maximum of 100 utterances for each version. If the bot's childDirected field is set to true, utterances for the bot are not stored and cannot be retrieved with the GetUtterancesView operation. For more information, see . This operation requires permissions for the lex:GetUtterancesView action. + /// Use the GetUtterancesView operation to get information about the utterances that your users have made to your bot. You can use this list to tune the utterances that your bot responds to. For example, say that you have created a bot to order flowers. After your users have used your bot for a while, use the GetUtterancesView operation to see the requests that they have made and whether they have been successful. You might find that the utterance "I want flowers" is not being recognized. You could add this utterance to the OrderFlowers intent so that your bot recognizes that utterance. After you publish a new version of a bot, you can get information about the old version and the new so that you can compare the performance across the two versions. Data is available for the last 15 days. You can request information for up to 5 versions in each request. The response contains information about a maximum of 100 utterances for each version. If the bot's childDirected field is set to true, utterances for the bot are not stored and cannot be retrieved with the GetUtterancesView operation. For more information, see PutBot. This operation requires permissions for the lex:GetUtterancesView action. public func getUtterancesView(_ input: GetUtterancesViewRequest) throws -> GetUtterancesViewResponse { return try client.send(operation: "GetUtterancesView", path: "/bots/{botname}/utterances?view=aggregation", httpMethod: "GET", input: input) } diff --git a/Sources/AWSSDKSwift/Services/lex-models/LexModels_Shapes.swift b/Sources/AWSSDKSwift/Services/lex-models/LexModels_Shapes.swift index 91cd95fde8e..4078f09bfaf 100644 --- a/Sources/AWSSDKSwift/Services/lex-models/LexModels_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/lex-models/LexModels_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension LexModels { public struct GetBotVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "bots", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -27,7 +27,7 @@ extension LexModels { } public struct CreateBotVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), AWSShapeMember(label: "clarificationPrompt", required: false, type: .structure), @@ -48,17 +48,17 @@ extension LexModels { public let name: String? /// The date when the bot version was created. public let createdDate: TimeStamp? - /// The message that Amazon Lex uses when it doesn't understand the user's request. For more information, see . + /// The message that Amazon Lex uses when it doesn't understand the user's request. For more information, see PutBot. public let clarificationPrompt: Prompt? /// A description of the bot. public let description: String? - /// The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. For more information, see . + /// The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. For more information, see PutBot. public let idleSessionTTLInSeconds: Int32? /// Checksum identifying the version of the bot that was created. public let checksum: String? /// The date when the $LATEST version of this bot was updated. public let lastUpdatedDate: TimeStamp? - /// The message that Amazon Lex uses to abort a conversation. For more information, see . + /// The message that Amazon Lex uses to abort a conversation. For more information, see PutBot. public let abortStatement: Statement? /// Specifies the target locale for the bot. public let locale: Locale? @@ -70,7 +70,7 @@ extension LexModels { public let voiceId: String? /// The version of the bot. public let version: String? - /// An array of Intent objects. For more information, see . + /// An array of Intent objects. For more information, see PutBot. public let intents: [Intent]? /// If status is FAILED, Amazon Lex provides the reason that it failed to build the bot. public let failureReason: String? @@ -113,12 +113,13 @@ extension LexModels { } public struct GetSlotTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), AWSShapeMember(label: "enumerationValues", required: false, type: .list), - AWSShapeMember(label: "version", required: false, type: .string), + AWSShapeMember(label: "valueSelectionStrategy", required: false, type: .enum), AWSShapeMember(label: "checksum", required: false, type: .string), + AWSShapeMember(label: "version", required: false, type: .string), AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "lastUpdatedDate", required: false, type: .timestamp) ] @@ -128,21 +129,24 @@ extension LexModels { public let createdDate: TimeStamp? /// A list of EnumerationValue objects that defines the values that the slot type can take. public let enumerationValues: [EnumerationValue]? - /// The version of the slot type. - public let version: String? + /// The strategy that Amazon Lex uses to determine the value of the slot. For more information, see PutSlotType. + public let valueSelectionStrategy: SlotValueSelectionStrategy? /// Checksum of the $LATEST version of the slot type. public let checksum: String? + /// The version of the slot type. + public let version: String? /// A description of the slot type. public let description: String? /// The date that the slot type was updated. When you create a resource, the creation date and last update date are the same. public let lastUpdatedDate: TimeStamp? - public init(name: String? = nil, createdDate: TimeStamp? = nil, enumerationValues: [EnumerationValue]? = nil, version: String? = nil, checksum: String? = nil, description: String? = nil, lastUpdatedDate: TimeStamp? = nil) { + public init(name: String? = nil, createdDate: TimeStamp? = nil, enumerationValues: [EnumerationValue]? = nil, valueSelectionStrategy: SlotValueSelectionStrategy? = nil, checksum: String? = nil, version: String? = nil, description: String? = nil, lastUpdatedDate: TimeStamp? = nil) { self.name = name self.createdDate = createdDate self.enumerationValues = enumerationValues - self.version = version + self.valueSelectionStrategy = valueSelectionStrategy self.checksum = checksum + self.version = version self.description = description self.lastUpdatedDate = lastUpdatedDate } @@ -151,15 +155,16 @@ extension LexModels { case name = "name" case createdDate = "createdDate" case enumerationValues = "enumerationValues" - case version = "version" + case valueSelectionStrategy = "valueSelectionStrategy" case checksum = "checksum" + case version = "version" case description = "description" case lastUpdatedDate = "lastUpdatedDate" } } public struct FulfillmentActivity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "type", required: true, type: .enum), AWSShapeMember(label: "codeHook", required: false, type: .structure) ] @@ -180,7 +185,7 @@ extension LexModels { } public struct GetSlotTypesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), AWSShapeMember(label: "nameContains", location: .querystring(locationName: "nameContains"), required: false, type: .string), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string) @@ -206,13 +211,13 @@ extension LexModels { } public struct DeleteIntentVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "version", location: .uri(locationName: "version"), required: true, type: .string) ] /// The name of the intent. public let name: String - /// The version of the intent to delete. You cannot delete the $LATEST version of the intent. To delete the $LATEST version, use the operation. + /// The version of the intent to delete. You cannot delete the $LATEST version of the intent. To delete the $LATEST version, use the DeleteIntent operation. public let version: String public init(name: String, version: String) { @@ -226,8 +231,14 @@ extension LexModels { } } + public enum SlotValueSelectionStrategy: String, CustomStringConvertible, Codable { + case originalValue = "ORIGINAL_VALUE" + case topResolution = "TOP_RESOLUTION" + public var description: String { return self.rawValue } + } + public struct GetIntentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "fulfillmentActivity", required: false, type: .structure), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), @@ -246,21 +257,21 @@ extension LexModels { ] /// The name of the intent. public let name: String? - /// Describes how the intent is fulfilled. For more information, see . + /// Describes how the intent is fulfilled. For more information, see PutIntent. public let fulfillmentActivity: FulfillmentActivity? /// The date that the intent was created. public let createdDate: TimeStamp? - /// If defined in the bot, Amazon Lex uses this prompt to solicit additional user activity after the intent is fulfilled. For more information, see . + /// If defined in the bot, Amazon Lex uses this prompt to solicit additional user activity after the intent is fulfilled. For more information, see PutIntent. public let followUpPrompt: FollowUpPrompt? /// A description of the intent. public let description: String? - /// If defined in the bot, Amazon Amazon Lex invokes this Lambda function for each user input. For more information, see . + /// If defined in the bot, Amazon Amazon Lex invokes this Lambda function for each user input. For more information, see PutIntent. public let dialogCodeHook: CodeHook? /// Checksum of the intent. public let checksum: String? /// The date that the intent was updated. When you create a resource, the creation date and the last updated date are the same. public let lastUpdatedDate: TimeStamp? - /// If defined in the bot, Amazon Lex uses prompt to confirm the intent before fulfilling the user's request. For more information, see . + /// If defined in the bot, Amazon Lex uses prompt to confirm the intent before fulfilling the user's request. For more information, see PutIntent. public let confirmationPrompt: Prompt? /// An array of sample utterances configured for the intent. public let sampleUtterances: [String]? @@ -313,7 +324,7 @@ extension LexModels { } public struct DeleteSlotTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string) ] /// The name of the slot type. The name is case sensitive. @@ -329,7 +340,7 @@ extension LexModels { } public struct BotMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "version", required: false, type: .string), @@ -370,7 +381,7 @@ extension LexModels { } public struct GetBuiltinIntentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "signature", location: .uri(locationName: "signature"), required: true, type: .string) ] /// The unique identifier for a built-in intent. To find the signature for an intent, see Standard Built-in Intents in the Alexa Skills Kit. @@ -386,7 +397,7 @@ extension LexModels { } public struct Slot: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "slotTypeVersion", required: false, type: .string), @@ -442,11 +453,11 @@ extension LexModels { } public struct GetUtterancesViewResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "utterances", required: false, type: .list), AWSShapeMember(label: "botName", required: false, type: .string) ] - /// An array of objects, each containing a list of objects describing the utterances that were processed by your bot. The response contains a maximum of 100 UtteranceData objects for each version. + /// An array of UtteranceList objects, each containing a list of UtteranceData objects describing the utterances that were processed by your bot. The response contains a maximum of 100 UtteranceData objects for each version. public let utterances: [UtteranceList]? /// The name of the bot for which utterance information was returned. public let botName: String? @@ -463,11 +474,11 @@ extension LexModels { } public struct GetIntentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "intents", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] - /// An array of Intent objects. For more information, see . + /// An array of Intent objects. For more information, see PutBot. public let intents: [IntentMetadata]? /// If the response is truncated, the response includes a pagination token that you can specify in your next request to fetch the next page of intents. public let nextToken: String? @@ -484,7 +495,7 @@ extension LexModels { } public struct Message: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "content", required: true, type: .string), AWSShapeMember(label: "contentType", required: true, type: .enum) ] @@ -505,7 +516,7 @@ extension LexModels { } public struct GetIntentVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) @@ -531,7 +542,7 @@ extension LexModels { } public struct GetSlotTypeVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) @@ -557,7 +568,7 @@ extension LexModels { } public struct CodeHook: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "uri", required: true, type: .string), AWSShapeMember(label: "messageVersion", required: true, type: .string) ] @@ -578,7 +589,7 @@ extension LexModels { } public struct BuiltinSlotTypeMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "supportedLocales", required: false, type: .list), AWSShapeMember(label: "signature", required: false, type: .string) ] @@ -599,7 +610,7 @@ extension LexModels { } public struct GetBotVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) @@ -625,23 +636,28 @@ extension LexModels { } public struct EnumerationValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "synonyms", required: false, type: .list), AWSShapeMember(label: "value", required: true, type: .string) ] + /// Additional values related to the slot type value. + public let synonyms: [String]? /// The value of the slot type. public let value: String - public init(value: String) { + public init(synonyms: [String]? = nil, value: String) { + self.synonyms = synonyms self.value = value } private enum CodingKeys: String, CodingKey { + case synonyms = "synonyms" case value = "value" } } public struct GetBuiltinIntentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "signatureContains", location: .querystring(locationName: "signatureContains"), required: false, type: .string), AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), @@ -672,7 +688,7 @@ extension LexModels { } public struct GetUtterancesViewRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "botVersions", location: .querystring(locationName: "bot_versions"), required: true, type: .list), AWSShapeMember(label: "botName", location: .uri(locationName: "botname"), required: true, type: .string), AWSShapeMember(label: "statusType", location: .querystring(locationName: "status_type"), required: true, type: .enum) @@ -697,8 +713,13 @@ extension LexModels { } } + public enum ResourceType: String, CustomStringConvertible, Codable { + case bot = "BOT" + public var description: String { return self.rawValue } + } + public struct GetBuiltinIntentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "supportedLocales", required: false, type: .list), AWSShapeMember(label: "slots", required: false, type: .list), AWSShapeMember(label: "signature", required: false, type: .string) @@ -724,7 +745,7 @@ extension LexModels { } public struct GetBotAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "botName", location: .uri(locationName: "botName"), required: true, type: .string) ] @@ -751,7 +772,7 @@ extension LexModels { } public struct BuiltinIntentMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "supportedLocales", required: false, type: .list), AWSShapeMember(label: "signature", required: false, type: .string) ] @@ -772,7 +793,7 @@ extension LexModels { } public struct BotAliasMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "botVersion", required: false, type: .string), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), @@ -818,7 +839,7 @@ extension LexModels { } public struct GetSlotTypesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "slotTypes", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -839,7 +860,7 @@ extension LexModels { } public struct PutIntentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "fulfillmentActivity", required: false, type: .structure), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), @@ -925,7 +946,7 @@ extension LexModels { } public struct GetBotChannelAssociationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "botAlias", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "botConfiguration", required: false, type: .map), @@ -971,7 +992,7 @@ extension LexModels { } public struct GetBotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "versionOrAlias", location: .uri(locationName: "versionoralias"), required: true, type: .string) ] @@ -992,7 +1013,7 @@ extension LexModels { } public struct CreateSlotTypeVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "checksum", required: false, type: .string) ] @@ -1020,13 +1041,13 @@ extension LexModels { } public struct DeleteSlotTypeVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "version", location: .uri(locationName: "version"), required: true, type: .string) ] /// The name of the slot type. public let name: String - /// The version of the slot type to delete. You cannot delete the $LATEST version of the slot type. To delete the $LATEST version, use the operation. + /// The version of the slot type to delete. You cannot delete the $LATEST version of the slot type. To delete the $LATEST version, use the DeleteSlotType operation. public let version: String public init(name: String, version: String) { @@ -1041,7 +1062,7 @@ extension LexModels { } public struct GetBotChannelAssociationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "botChannelAssociations", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1062,7 +1083,7 @@ extension LexModels { } public struct GetBotAliasesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), AWSShapeMember(label: "nameContains", location: .querystring(locationName: "nameContains"), required: false, type: .string), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), @@ -1093,7 +1114,7 @@ extension LexModels { } public struct GetIntentVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "intents", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1114,7 +1135,7 @@ extension LexModels { } public struct IntentMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "version", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), @@ -1156,7 +1177,7 @@ extension LexModels { } public struct GetBotResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), AWSShapeMember(label: "clarificationPrompt", required: false, type: .structure), @@ -1177,17 +1198,17 @@ extension LexModels { public let name: String? /// The date that the bot was created. public let createdDate: TimeStamp? - /// The message Amazon Lex uses when it doesn't understand the user's request. For more information, see . + /// The message Amazon Lex uses when it doesn't understand the user's request. For more information, see PutBot. public let clarificationPrompt: Prompt? /// A description of the bot. public let description: String? - /// The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. For more information, see . + /// The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. For more information, see PutBot. public let idleSessionTTLInSeconds: Int32? /// Checksum of the bot used to identify a specific revision of the bot's $LATEST version. public let checksum: String? /// The date that the bot was updated. When you create a resource, the creation date and last updated date are the same. public let lastUpdatedDate: TimeStamp? - /// The message that Amazon Lex returns when the user elects to end the conversation without completing it. For more information, see . + /// The message that Amazon Lex returns when the user elects to end the conversation without completing it. For more information, see PutBot. public let abortStatement: Statement? /// The target locale for the bot. public let locale: Locale? @@ -1195,11 +1216,11 @@ extension LexModels { public let childDirected: Bool? /// The status of the bot. If the bot is ready to run, the status is READY. If there was a problem with building the bot, the status is FAILED and the failureReason explains why the bot did not build. If the bot was saved but not built, the status is NOT BUILT. public let status: Status? - /// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see . + /// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see PutBot. public let voiceId: String? /// The version of the bot. For a new bot, the version is always $LATEST. public let version: String? - /// An array of intent objects. For more information, see . + /// An array of intent objects. For more information, see PutBot. public let intents: [Intent]? /// If status is FAILED, Amazon Lex explains why it failed to build the bot. public let failureReason: String? @@ -1242,11 +1263,11 @@ extension LexModels { } public struct DeleteUtterancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "userId", location: .uri(locationName: "userId"), required: true, type: .string), AWSShapeMember(label: "botName", location: .uri(locationName: "botName"), required: true, type: .string) ] - /// The unique identifier for the user that made the utterances. This is the user ID that was sent in the or operation request that contained the utterance. + /// The unique identifier for the user that made the utterances. This is the user ID that was sent in the PostContent or PostText operation request that contained the utterance. public let userId: String /// The name of the bot that stored the utterances. public let botName: String @@ -1263,7 +1284,7 @@ extension LexModels { } public struct GetBotAliasResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "botVersion", required: false, type: .string), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), @@ -1309,12 +1330,13 @@ extension LexModels { } public struct CreateSlotTypeVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), AWSShapeMember(label: "enumerationValues", required: false, type: .list), - AWSShapeMember(label: "version", required: false, type: .string), + AWSShapeMember(label: "valueSelectionStrategy", required: false, type: .enum), AWSShapeMember(label: "checksum", required: false, type: .string), + AWSShapeMember(label: "version", required: false, type: .string), AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "lastUpdatedDate", required: false, type: .timestamp) ] @@ -1324,21 +1346,24 @@ extension LexModels { public let createdDate: TimeStamp? /// A list of EnumerationValue objects that defines the values that the slot type can take. public let enumerationValues: [EnumerationValue]? - /// The version assigned to the new slot type version. - public let version: String? + /// The strategy that Amazon Lex uses to determine the value of the slot. For more information, see PutSlotType. + public let valueSelectionStrategy: SlotValueSelectionStrategy? /// Checksum of the $LATEST version of the slot type. public let checksum: String? + /// The version assigned to the new slot type version. + public let version: String? /// A description of the slot type. public let description: String? /// The date that the slot type was updated. When you create a resource, the creation date and last update date are the same. public let lastUpdatedDate: TimeStamp? - public init(name: String? = nil, createdDate: TimeStamp? = nil, enumerationValues: [EnumerationValue]? = nil, version: String? = nil, checksum: String? = nil, description: String? = nil, lastUpdatedDate: TimeStamp? = nil) { + public init(name: String? = nil, createdDate: TimeStamp? = nil, enumerationValues: [EnumerationValue]? = nil, valueSelectionStrategy: SlotValueSelectionStrategy? = nil, checksum: String? = nil, version: String? = nil, description: String? = nil, lastUpdatedDate: TimeStamp? = nil) { self.name = name self.createdDate = createdDate self.enumerationValues = enumerationValues - self.version = version + self.valueSelectionStrategy = valueSelectionStrategy self.checksum = checksum + self.version = version self.description = description self.lastUpdatedDate = lastUpdatedDate } @@ -1347,8 +1372,9 @@ extension LexModels { case name = "name" case createdDate = "createdDate" case enumerationValues = "enumerationValues" - case version = "version" + case valueSelectionStrategy = "valueSelectionStrategy" case checksum = "checksum" + case version = "version" case description = "description" case lastUpdatedDate = "lastUpdatedDate" } @@ -1361,13 +1387,13 @@ extension LexModels { } public struct DeleteBotVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "version", location: .uri(locationName: "version"), required: true, type: .string) ] /// The name of the bot. public let name: String - /// The version of the bot to delete. You cannot delete the $LATEST version of the bot. To delete the $LATEST version, use the operation. + /// The version of the bot to delete. You cannot delete the $LATEST version of the bot. To delete the $LATEST version, use the DeleteBot operation. public let version: String public init(name: String, version: String) { @@ -1390,7 +1416,7 @@ extension LexModels { } public struct DeleteBotAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "botName", location: .uri(locationName: "botName"), required: true, type: .string) ] @@ -1411,7 +1437,7 @@ extension LexModels { } public struct GetBotsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "bots", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1432,7 +1458,7 @@ extension LexModels { } public struct DeleteIntentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string) ] /// The name of the intent. The name is case sensitive. @@ -1448,7 +1474,7 @@ extension LexModels { } public struct GetIntentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "version", location: .uri(locationName: "version"), required: true, type: .string) ] @@ -1475,7 +1501,7 @@ extension LexModels { } public struct DeleteBotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string) ] /// The name of the bot. The name is case sensitive. @@ -1490,8 +1516,15 @@ extension LexModels { } } + public enum ExportStatus: String, CustomStringConvertible, Codable { + case inProgress = "IN_PROGRESS" + case ready = "READY" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + public struct CreateIntentVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "checksum", required: false, type: .string) ] @@ -1525,7 +1558,7 @@ extension LexModels { } public struct PutBotAliasRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "checksum", required: false, type: .string), @@ -1561,7 +1594,7 @@ extension LexModels { } public struct PutIntentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rejectionStatement", required: false, type: .structure), AWSShapeMember(label: "fulfillmentActivity", required: false, type: .structure), AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), @@ -1577,7 +1610,7 @@ extension LexModels { ] /// When the user answers "no" to the question defined in confirmationPrompt, Amazon Lex responds with this statement to acknowledge that the intent was canceled. You must provide both the rejectionStatement and the confirmationPrompt, or neither. public let rejectionStatement: Statement? - /// Describes how the intent is fulfilled. For example, after a user provides all of the information for a pizza order, fulfillmentActivity defines how the bot places an order with a local pizza store. You might configure Amazon Lex to return all of the intent information to the client application, or direct it to invoke a Lambda function that can process the intent (for example, place an order with a pizzeria). + /// Required. Describes how the intent is fulfilled. For example, after a user provides all of the information for a pizza order, fulfillmentActivity defines how the bot places an order with a local pizza store. You might configure Amazon Lex to return all of the intent information to the client application, or direct it to invoke a Lambda function that can process the intent (for example, place an order with a pizzeria). public let fulfillmentActivity: FulfillmentActivity? /// The name of the intent. The name is not case sensitive. The name can't match a built-in intent name, or a built-in intent name with "AMAZON." removed. For example, because there is a built-in intent called AMAZON.HelpIntent, you can't create a custom intent called HelpIntent. For a list of built-in intents, see Standard Built-in Intents in the Alexa Skills Kit. public let name: String @@ -1589,13 +1622,13 @@ extension LexModels { public let description: String? /// A unique identifier for the built-in intent to base this intent on. To find the signature for an intent, see Standard Built-in Intents in the Alexa Skills Kit. public let parentIntentSignature: String? - /// A user prompt for additional activity after an intent is fulfilled. For example, after the OrderPizza intent is fulfilled (your Lambda function placed an order with a pizzeria), you might prompt the user to find if they want to order a drink (assuming that you have defined an OrderDrink intent in your bot). The followUpPrompt and conclusionStatement are mutually exclusive. You can specify only one. For example, your bot may not solicit both the following: Follow up prompt - "$session.FirstName, your pizza order has been placed. Would you like to order a drink or a dessert?" Conclusion statement - "$session.FirstName, your pizza order has been placed." + /// Amazon Lex uses this prompt to solicit additional activity after fulfilling an intent. For example, after the OrderPizza intent is fulfilled, you might prompt the user to order a drink. The action that Amazon Lex takes depends on the user's response, as follows: If the user says "Yes" it responds with the clarification prompt that is configured for the bot. if the user says "Yes" and continues with an utterance that triggers an intent it starts a conversation for the intent. If the user says "No" it responds with the rejection statement configured for the the follow-up prompt. If it doesn't recognize the utterance it repeats the follow-up prompt again. The followUpPrompt field and the conclusionStatement field are mutually exclusive. You can specify only one. public let followUpPrompt: FollowUpPrompt? /// Identifies a specific revision of the $LATEST version. When you create a new intent, leave the checksum field blank. If you specify a checksum you get a BadRequestException exception. When you want to update a intent, set the checksum field to the checksum of the most recent revision of the $LATEST version. If you don't specify the checksum field, or if the checksum does not match the $LATEST version, you get a PreconditionFailedException exception. public let checksum: String? /// Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the OrderPizza intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. You you must provide both the rejectionStatement and the confirmationPrompt, or neither. public let confirmationPrompt: Prompt? - /// An array of intent slots. At runtime, Amazon Lex elicits required slot values from the user using prompts defined in the slots. For more information, see <xref linkend="how-it-works"/>. + /// An array of intent slots. At runtime, Amazon Lex elicits required slot values from the user using prompts defined in the slots. For more information, see how-it-works. public let slots: [Slot]? /// An array of utterances (strings) that a user might say to signal the intent. For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas". In each utterance, a slot name is enclosed in curly braces. public let sampleUtterances: [String]? @@ -1632,7 +1665,7 @@ extension LexModels { } public struct GetBuiltinSlotTypesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "slotTypes", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1653,7 +1686,7 @@ extension LexModels { } public struct Intent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "intentName", required: true, type: .string), AWSShapeMember(label: "intentVersion", required: true, type: .string) ] @@ -1674,7 +1707,7 @@ extension LexModels { } public struct DeleteBotChannelAssociationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "botAlias", location: .uri(locationName: "aliasName"), required: true, type: .string), AWSShapeMember(label: "botName", location: .uri(locationName: "botName"), required: true, type: .string) @@ -1700,7 +1733,7 @@ extension LexModels { } public struct CreateBotVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "checksum", required: false, type: .string) ] @@ -1721,7 +1754,7 @@ extension LexModels { } public struct PutBotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "childDirected", required: true, type: .boolean), AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "processBehavior", required: false, type: .enum), @@ -1742,9 +1775,9 @@ extension LexModels { public let processBehavior: ProcessBehavior? /// The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. A user interaction session remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Lex deletes any data provided before the timeout. For example, suppose that a user chooses the OrderPizza intent, but gets sidetracked halfway through placing an order. If the user doesn't complete the order within the specified time, Amazon Lex discards the slot information that it gathered, and the user must start over. If you don't include the idleSessionTTLInSeconds element in a PutBot operation request, Amazon Lex uses the default value. This is also true if the request replaces an existing bot. The default is 300 seconds (5 minutes). public let idleSessionTTLInSeconds: Int32? - /// When Amazon Lex doesn't understand the user's intent, it uses one of these messages to get clarification. For example, "Sorry, I didn't understand. Please repeat." Amazon Lex repeats the clarification prompt the number of times specified in maxAttempts. If Amazon Lex still can't understand, it sends the message specified in abortStatement. + /// When Amazon Lex doesn't understand the user's intent, it uses this message to get clarification. To specify how many times Amazon Lex should repeate the clarification prompt, use the maxAttempts field. If Amazon Lex still doesn't understand, it sends the message in the abortStatement field. When you create a clarification prompt, make sure that it suggests the correct response from the user. for example, for a bot that orders pizza and drinks, you might create this clarification prompt: "What would you like to do? You can say 'Order a pizza' or 'Order a drink.'" public let clarificationPrompt: Prompt? - /// The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions with the user. The locale configured for the voice must match the locale of the bot. For more information, see Voice in the Amazon Polly Developer Guide. + /// The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions with the user. The locale configured for the voice must match the locale of the bot. For more information, see Available Voices in the Amazon Polly Developer Guide. public let voiceId: String? /// A description of the bot. public let description: String? @@ -1787,38 +1820,43 @@ extension LexModels { } public struct PutSlotTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "description", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "valueSelectionStrategy", required: false, type: .enum), AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "checksum", required: false, type: .string), + AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "enumerationValues", required: false, type: .list) ] - /// A description of the slot type. - public let description: String? + /// Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values: ORIGINAL_VALUE - Returns the value entered by the user, if the user value is similar to the slot value. TOP_RESOLUTION - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned. If you don't specify the valueSelectionStrategy, the default is ORIGINAL_VALUE. + public let valueSelectionStrategy: SlotValueSelectionStrategy? /// The name of the slot type. The name is not case sensitive. The name can't match a built-in slot type name, or a built-in slot type name with "AMAZON." removed. For example, because there is a built-in slot type called AMAZON.DATE, you can't create a custom slot type called DATE. For a list of built-in slot types, see Slot Type Reference in the Alexa Skills Kit. public let name: String /// Identifies a specific revision of the $LATEST version. When you create a new slot type, leave the checksum field blank. If you specify a checksum you get a BadRequestException exception. When you want to update a slot type, set the checksum field to the checksum of the most recent revision of the $LATEST version. If you don't specify the checksum field, or if the checksum does not match the $LATEST version, you get a PreconditionFailedException exception. public let checksum: String? - /// A list of EnumerationValue objects that defines the values that the slot type can take. + /// A description of the slot type. + public let description: String? + /// A list of EnumerationValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, which are additional values that help train the machine learning model about the values that it resolves for a slot. When Amazon Lex resolves a slot value, it generates a resolution list that contains up to five possible values for the slot. If you are using a Lambda function, this resolution list is passed to the function. If you are not using a Lambda function you can choose to return the value that the user entered or the first value in the resolution list as the slot value. The valueSelectionStrategy field indicates the option to use. public let enumerationValues: [EnumerationValue]? - public init(description: String? = nil, name: String, checksum: String? = nil, enumerationValues: [EnumerationValue]? = nil) { - self.description = description + public init(valueSelectionStrategy: SlotValueSelectionStrategy? = nil, name: String, checksum: String? = nil, description: String? = nil, enumerationValues: [EnumerationValue]? = nil) { + self.valueSelectionStrategy = valueSelectionStrategy self.name = name self.checksum = checksum + self.description = description self.enumerationValues = enumerationValues } private enum CodingKeys: String, CodingKey { - case description = "description" + case valueSelectionStrategy = "valueSelectionStrategy" case name = "name" case checksum = "checksum" + case description = "description" case enumerationValues = "enumerationValues" } } public struct CreateIntentVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "fulfillmentActivity", required: false, type: .structure), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), @@ -1904,13 +1942,13 @@ extension LexModels { } public struct FollowUpPrompt: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rejectionStatement", required: true, type: .structure), AWSShapeMember(label: "prompt", required: true, type: .structure) ] - /// If the user answers "no" to the question defined in confirmationPrompt, Amazon Lex responds with this statement to acknowledge that the intent was canceled. + /// If the user answers "no" to the question defined in the prompt field, Amazon Lex responds with this statement to acknowledge that the intent was canceled. public let rejectionStatement: Statement - /// Obtains information from the user. + /// Prompts for information from the user. public let prompt: Prompt public init(rejectionStatement: Statement, prompt: Prompt) { @@ -1925,7 +1963,7 @@ extension LexModels { } public struct GetBotAliasesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "BotAliases", required: false, type: .list) ] @@ -1946,11 +1984,11 @@ extension LexModels { } public struct UtteranceList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "utterances", required: false, type: .list), AWSShapeMember(label: "botVersion", required: false, type: .string) ] - /// One or more objects that contain information about the utterances that have been made to a bot. The maximum number of object is 100. + /// One or more UtteranceData objects that contain information about the utterances that have been made to a bot. The maximum number of object is 100. public let utterances: [UtteranceData]? /// The version of the bot that processed the list. public let botVersion: String? @@ -1967,7 +2005,7 @@ extension LexModels { } public struct UtteranceData: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "firstUtteredDate", required: false, type: .timestamp), AWSShapeMember(label: "lastUtteredDate", required: false, type: .timestamp), AWSShapeMember(label: "utteranceString", required: false, type: .string), @@ -2009,7 +2047,7 @@ extension LexModels { } public struct GetBotsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), AWSShapeMember(label: "nameContains", location: .querystring(locationName: "nameContains"), required: false, type: .string), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string) @@ -2035,7 +2073,7 @@ extension LexModels { } public struct SlotTypeMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "version", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), @@ -2071,7 +2109,7 @@ extension LexModels { } public struct GetIntentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), AWSShapeMember(label: "nameContains", location: .querystring(locationName: "nameContains"), required: false, type: .string), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string) @@ -2097,7 +2135,7 @@ extension LexModels { } public struct Prompt: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxAttempts", required: true, type: .integer), AWSShapeMember(label: "responseCard", required: false, type: .string), AWSShapeMember(label: "messages", required: true, type: .list) @@ -2123,12 +2161,13 @@ extension LexModels { } public struct PutSlotTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), AWSShapeMember(label: "enumerationValues", required: false, type: .list), - AWSShapeMember(label: "version", required: false, type: .string), + AWSShapeMember(label: "valueSelectionStrategy", required: false, type: .enum), AWSShapeMember(label: "checksum", required: false, type: .string), + AWSShapeMember(label: "version", required: false, type: .string), AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "lastUpdatedDate", required: false, type: .timestamp) ] @@ -2138,21 +2177,24 @@ extension LexModels { public let createdDate: TimeStamp? /// A list of EnumerationValue objects that defines the values that the slot type can take. public let enumerationValues: [EnumerationValue]? - /// The version of the slot type. For a new slot type, the version is always $LATEST. - public let version: String? + /// The slot resolution strategy that Amazon Lex uses to determine the value of the slot. For more information, see PutSlotType. + public let valueSelectionStrategy: SlotValueSelectionStrategy? /// Checksum of the $LATEST version of the slot type. public let checksum: String? + /// The version of the slot type. For a new slot type, the version is always $LATEST. + public let version: String? /// A description of the slot type. public let description: String? /// The date that the slot type was updated. When you create a slot type, the creation date and last update date are the same. public let lastUpdatedDate: TimeStamp? - public init(name: String? = nil, createdDate: TimeStamp? = nil, enumerationValues: [EnumerationValue]? = nil, version: String? = nil, checksum: String? = nil, description: String? = nil, lastUpdatedDate: TimeStamp? = nil) { + public init(name: String? = nil, createdDate: TimeStamp? = nil, enumerationValues: [EnumerationValue]? = nil, valueSelectionStrategy: SlotValueSelectionStrategy? = nil, checksum: String? = nil, version: String? = nil, description: String? = nil, lastUpdatedDate: TimeStamp? = nil) { self.name = name self.createdDate = createdDate self.enumerationValues = enumerationValues - self.version = version + self.valueSelectionStrategy = valueSelectionStrategy self.checksum = checksum + self.version = version self.description = description self.lastUpdatedDate = lastUpdatedDate } @@ -2161,15 +2203,16 @@ extension LexModels { case name = "name" case createdDate = "createdDate" case enumerationValues = "enumerationValues" - case version = "version" + case valueSelectionStrategy = "valueSelectionStrategy" case checksum = "checksum" + case version = "version" case description = "description" case lastUpdatedDate = "lastUpdatedDate" } } public struct ResourceReference: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "version", required: false, type: .string) ] @@ -2190,7 +2233,7 @@ extension LexModels { } public struct PutBotAliasResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "botVersion", required: false, type: .string), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), @@ -2236,7 +2279,7 @@ extension LexModels { } public struct GetBuiltinIntentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "intents", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -2257,7 +2300,7 @@ extension LexModels { } public struct GetBotChannelAssociationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "botAlias", location: .uri(locationName: "aliasName"), required: true, type: .string), AWSShapeMember(label: "botName", location: .uri(locationName: "botName"), required: true, type: .string) @@ -2282,8 +2325,39 @@ extension LexModels { } } + public struct GetExportRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", location: .querystring(locationName: "name"), required: true, type: .string), + AWSShapeMember(label: "version", location: .querystring(locationName: "version"), required: true, type: .string), + AWSShapeMember(label: "resourceType", location: .querystring(locationName: "resourceType"), required: true, type: .enum), + AWSShapeMember(label: "exportType", location: .querystring(locationName: "exportType"), required: true, type: .enum) + ] + /// The name of the bot to export. + public let name: String + /// The version of the bot to export. + public let version: String + /// The type of resource to export. + public let resourceType: ResourceType + /// The format of the exported data. + public let exportType: ExportType + + public init(name: String, version: String, resourceType: ResourceType, exportType: ExportType) { + self.name = name + self.version = version + self.resourceType = resourceType + self.exportType = exportType + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case version = "version" + case resourceType = "resourceType" + case exportType = "exportType" + } + } + public struct GetSlotTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", location: .uri(locationName: "name"), required: true, type: .string), AWSShapeMember(label: "version", location: .uri(locationName: "version"), required: true, type: .string) ] @@ -2304,7 +2378,7 @@ extension LexModels { } public struct BotChannelAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "botAlias", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "botConfiguration", required: false, type: .map), @@ -2350,7 +2424,7 @@ extension LexModels { } public struct GetBuiltinSlotTypesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "signatureContains", location: .querystring(locationName: "signatureContains"), required: false, type: .string), AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), @@ -2381,11 +2455,11 @@ extension LexModels { } public struct Statement: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "responseCard", required: false, type: .string), AWSShapeMember(label: "messages", required: true, type: .list) ] - /// At runtime, if the client is using the API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. + /// At runtime, if the client is using the PostText API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. public let responseCard: String? /// A collection of message objects. public let messages: [Message] @@ -2402,7 +2476,7 @@ extension LexModels { } public struct GetBotChannelAssociationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "botAlias", location: .uri(locationName: "aliasName"), required: true, type: .string), AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), @@ -2437,8 +2511,54 @@ extension LexModels { } } + public struct GetExportResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "resourceType", required: false, type: .enum), + AWSShapeMember(label: "exportType", required: false, type: .enum), + AWSShapeMember(label: "version", required: false, type: .string), + AWSShapeMember(label: "exportStatus", required: false, type: .enum), + AWSShapeMember(label: "url", required: false, type: .string), + AWSShapeMember(label: "failureReason", required: false, type: .string) + ] + /// The name of the bot being exported. + public let name: String? + /// The type of the exported resource. + public let resourceType: ResourceType? + /// The format of the exported data. + public let exportType: ExportType? + /// The version of the bot being exported. + public let version: String? + /// The status of the export. IN_PROGRESS - The export is in progress. READY - The export is complete. FAILED - The export could not be completed. + public let exportStatus: ExportStatus? + /// An S3 pre-signed URL that provides the location of the exported resource. The exported resource is a ZIP archive that contains the exported resource in JSON format. The structure of the archive may change. Your code should not rely on the archive structure. + public let url: String? + /// If status is FAILED, Amazon Lex provides the reason that it failed to export the resource. + public let failureReason: String? + + public init(name: String? = nil, resourceType: ResourceType? = nil, exportType: ExportType? = nil, version: String? = nil, exportStatus: ExportStatus? = nil, url: String? = nil, failureReason: String? = nil) { + self.name = name + self.resourceType = resourceType + self.exportType = exportType + self.version = version + self.exportStatus = exportStatus + self.url = url + self.failureReason = failureReason + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case resourceType = "resourceType" + case exportType = "exportType" + case version = "version" + case exportStatus = "exportStatus" + case url = "url" + case failureReason = "failureReason" + } + } + public struct BuiltinIntentSlot: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string) ] /// A list of the slots defined for the intent. @@ -2454,7 +2574,7 @@ extension LexModels { } public struct GetSlotTypeVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "slotTypes", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -2474,8 +2594,13 @@ extension LexModels { } } + public enum ExportType: String, CustomStringConvertible, Codable { + case alexaSkillsKit = "ALEXA_SKILLS_KIT" + public var description: String { return self.rawValue } + } + public struct PutBotResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "createdDate", required: false, type: .timestamp), AWSShapeMember(label: "clarificationPrompt", required: false, type: .structure), @@ -2496,17 +2621,17 @@ extension LexModels { public let name: String? /// The date that the bot was created. public let createdDate: TimeStamp? - /// The prompts that Amazon Lex uses when it doesn't understand the user's intent. For more information, see . + /// The prompts that Amazon Lex uses when it doesn't understand the user's intent. For more information, see PutBot. public let clarificationPrompt: Prompt? /// A description of the bot. public let description: String? - /// The maximum length of time that Amazon Lex retains the data gathered in a conversation. For more information, see . + /// The maximum length of time that Amazon Lex retains the data gathered in a conversation. For more information, see PutBot. public let idleSessionTTLInSeconds: Int32? /// Checksum of the bot that you created. public let checksum: String? /// The date that the bot was updated. When you create a resource, the creation date and last updated date are the same. public let lastUpdatedDate: TimeStamp? - /// The message that Amazon Lex uses to abort a conversation. For more information, see . + /// The message that Amazon Lex uses to abort a conversation. For more information, see PutBot. public let abortStatement: Statement? /// The target locale for the bot. public let locale: Locale? @@ -2514,11 +2639,11 @@ extension LexModels { public let childDirected: Bool? /// When you send a request to create a bot with processBehavior set to BUILD, Amazon Lex sets the status response element to BUILDING. After Amazon Lex builds the bot, it sets status to READY. If Amazon Lex can't build the bot, Amazon Lex sets status to FAILED. Amazon Lex returns the reason for the failure in the failureReason response element. When you set processBehaviorto SAVE, Amazon Lex sets the status code to NOT BUILT. public let status: Status? - /// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see . + /// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see PutBot. public let voiceId: String? /// The version of the bot. For a new bot, the version is always $LATEST. public let version: String? - /// An array of Intent objects. For more information, see . + /// An array of Intent objects. For more information, see PutBot. public let intents: [Intent]? /// If status is FAILED, Amazon Lex provides the reason that it failed to build the bot. public let failureReason: String? diff --git a/Sources/AWSSDKSwift/Services/lightsail/Lightsail_API.swift b/Sources/AWSSDKSwift/Services/lightsail/Lightsail_API.swift index 4fa5faf8ed2..03ed663d7e5 100644 --- a/Sources/AWSSDKSwift/Services/lightsail/Lightsail_API.swift +++ b/Sources/AWSSDKSwift/Services/lightsail/Lightsail_API.swift @@ -25,11 +25,26 @@ public struct Lightsail { ) } + /// Creates a block storage disk from a disk snapshot that can be attached to a Lightsail instance in the same Availability Zone (e.g., us-east-2a). The disk is created in the regional endpoint that you send the HTTP request to. For more information, see Regions and Availability Zones in Lightsail. + public func createDiskFromSnapshot(_ input: CreateDiskFromSnapshotRequest) throws -> CreateDiskFromSnapshotResult { + return try client.send(operation: "CreateDiskFromSnapshot", path: "/", httpMethod: "POST", input: input) + } + + /// Detaches the specified instances from a Lightsail load balancer. + public func detachInstancesFromLoadBalancer(_ input: DetachInstancesFromLoadBalancerRequest) throws -> DetachInstancesFromLoadBalancerResult { + return try client.send(operation: "DetachInstancesFromLoadBalancer", path: "/", httpMethod: "POST", input: input) + } + /// Returns information about a specific domain recordset. public func getDomain(_ input: GetDomainRequest) throws -> GetDomainResult { return try client.send(operation: "GetDomain", path: "/", httpMethod: "POST", input: input) } + /// Returns information about a specific static IP. + public func getStaticIp(_ input: GetStaticIpRequest) throws -> GetStaticIpResult { + return try client.send(operation: "GetStaticIp", path: "/", httpMethod: "POST", input: input) + } + /// Returns information about all operations. Results are returned from oldest to newest, up to a maximum of 200. Results can be paged by making each subsequent call to GetOperations use the maximum (last) statusChangedAt value from the previous request. public func getOperations(_ input: GetOperationsRequest) throws -> GetOperationsResult { return try client.send(operation: "GetOperations", path: "/", httpMethod: "POST", input: input) @@ -40,9 +55,9 @@ public struct Lightsail { return try client.send(operation: "RebootInstance", path: "/", httpMethod: "POST", input: input) } - /// Deletes a specific static IP from your account. - public func releaseStaticIp(_ input: ReleaseStaticIpRequest) throws -> ReleaseStaticIpResult { - return try client.send(operation: "ReleaseStaticIp", path: "/", httpMethod: "POST", input: input) + /// Returns information about the TLS certificates that are associated with the specified Lightsail load balancer. TLS is just an updated, more secure version of Secure Socket Layer (SSL). + public func getLoadBalancerTlsCertificates(_ input: GetLoadBalancerTlsCertificatesRequest) throws -> GetLoadBalancerTlsCertificatesResult { + return try client.send(operation: "GetLoadBalancerTlsCertificates", path: "/", httpMethod: "POST", input: input) } /// Deletes a specific domain entry. @@ -50,16 +65,16 @@ public struct Lightsail { return try client.send(operation: "DeleteDomainEntry", path: "/", httpMethod: "POST", input: input) } - /// Attempts to unpeer the Lightsail VPC from the user's default VPC. - public func unpeerVpc(_ input: UnpeerVpcRequest) throws -> UnpeerVpcResult { - return try client.send(operation: "UnpeerVpc", path: "/", httpMethod: "POST", input: input) - } - /// Returns the state of a specific instance. Works on one instance at a time. public func getInstanceState(_ input: GetInstanceStateRequest) throws -> GetInstanceStateResult { return try client.send(operation: "GetInstanceState", path: "/", httpMethod: "POST", input: input) } + /// Attempts to unpeer the Lightsail VPC from the user's default VPC. + public func unpeerVpc(_ input: UnpeerVpcRequest) throws -> UnpeerVpcResult { + return try client.send(operation: "UnpeerVpc", path: "/", httpMethod: "POST", input: input) + } + /// Returns information about a specific Amazon Lightsail instance, which is a virtual private server. public func getInstance(_ input: GetInstanceRequest) throws -> GetInstanceResult { return try client.send(operation: "GetInstance", path: "/", httpMethod: "POST", input: input) @@ -70,6 +85,121 @@ public struct Lightsail { return try client.send(operation: "GetActiveNames", path: "/", httpMethod: "POST", input: input) } + /// Returns a list of all valid regions for Amazon Lightsail. Use the include availability zones parameter to also return the availability zones in a region. + public func getRegions(_ input: GetRegionsRequest) throws -> GetRegionsResult { + return try client.send(operation: "GetRegions", path: "/", httpMethod: "POST", input: input) + } + + /// Returns a Boolean value indicating whether your Lightsail VPC is peered. + public func isVpcPeered(_ input: IsVpcPeeredRequest) throws -> IsVpcPeeredResult { + return try client.send(operation: "IsVpcPeered", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about a specific key pair. + public func getKeyPair(_ input: GetKeyPairRequest) throws -> GetKeyPairResult { + return try client.send(operation: "GetKeyPair", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a Lightsail load balancer. + public func deleteLoadBalancer(_ input: DeleteLoadBalancerRequest) throws -> DeleteLoadBalancerResult { + return try client.send(operation: "DeleteLoadBalancer", path: "/", httpMethod: "POST", input: input) + } + + /// Creates one of the following entry records associated with the domain: A record, CNAME record, TXT record, or MX record. + public func createDomainEntry(_ input: CreateDomainEntryRequest) throws -> CreateDomainEntryResult { + return try client.send(operation: "CreateDomainEntry", path: "/", httpMethod: "POST", input: input) + } + + /// Imports a public SSH key from a specific key pair. + public func importKeyPair(_ input: ImportKeyPairRequest) throws -> ImportKeyPairResult { + return try client.send(operation: "ImportKeyPair", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the data points for the specified Amazon Lightsail instance metric, given an instance name. + public func getInstanceMetricData(_ input: GetInstanceMetricDataRequest) throws -> GetInstanceMetricDataResult { + return try client.send(operation: "GetInstanceMetricData", path: "/", httpMethod: "POST", input: input) + } + + /// Creates sn SSH key pair. + public func createKeyPair(_ input: CreateKeyPairRequest) throws -> CreateKeyPairResult { + return try client.send(operation: "CreateKeyPair", path: "/", httpMethod: "POST", input: input) + } + + /// Starts a specific Amazon Lightsail instance from a stopped state. To restart an instance, use the reboot instance operation. + public func startInstance(_ input: StartInstanceRequest) throws -> StartInstanceResult { + return try client.send(operation: "StartInstance", path: "/", httpMethod: "POST", input: input) + } + + /// Detaches a static IP from the Amazon Lightsail instance to which it is attached. + public func detachStaticIp(_ input: DetachStaticIpRequest) throws -> DetachStaticIpResult { + return try client.send(operation: "DetachStaticIp", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about all static IPs in the user's account. + public func getStaticIps(_ input: GetStaticIpsRequest) throws -> GetStaticIpsResult { + return try client.send(operation: "GetStaticIps", path: "/", httpMethod: "POST", input: input) + } + + /// Detaches a stopped block storage disk from a Lightsail instance. Make sure to unmount any file systems on the device within your operating system before stopping the instance and detaching the disk. + public func detachDisk(_ input: DetachDiskRequest) throws -> DetachDiskResult { + return try client.send(operation: "DetachDisk", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about all Amazon Lightsail virtual private servers, or instances. + public func getInstances(_ input: GetInstancesRequest) throws -> GetInstancesResult { + return try client.send(operation: "GetInstances", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about a specific operation. Operations include events such as when you create an instance, allocate a static IP, attach a static IP, and so on. + public func getOperation(_ input: GetOperationRequest) throws -> GetOperationResult { + return try client.send(operation: "GetOperation", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about all block storage disks in your AWS account and region. If you are describing a long list of disks, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list. + public func getDisks(_ input: GetDisksRequest) throws -> GetDisksResult { + return try client.send(operation: "GetDisks", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the port states for a specific virtual private server, or instance. + public func getInstancePortStates(_ input: GetInstancePortStatesRequest) throws -> GetInstancePortStatesResult { + return try client.send(operation: "GetInstancePortStates", path: "/", httpMethod: "POST", input: input) + } + + /// Tries to peer the Lightsail VPC with the user's default VPC. + public func peerVpc(_ input: PeerVpcRequest) throws -> PeerVpcResult { + return try client.send(operation: "PeerVpc", path: "/", httpMethod: "POST", input: input) + } + + /// Gets operations for a specific resource (e.g., an instance or a static IP). + public func getOperationsForResource(_ input: GetOperationsForResourceRequest) throws -> GetOperationsForResourceResult { + return try client.send(operation: "GetOperationsForResource", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about a specific instance snapshot. + public func getInstanceSnapshot(_ input: GetInstanceSnapshotRequest) throws -> GetInstanceSnapshotResult { + return try client.send(operation: "GetInstanceSnapshot", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about all load balancers in an account. If you are describing a long list of load balancers, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list. + public func getLoadBalancers(_ input: GetLoadBalancersRequest) throws -> GetLoadBalancersResult { + return try client.send(operation: "GetLoadBalancers", path: "/", httpMethod: "POST", input: input) + } + + /// Attaches a Transport Layer Security (TLS) certificate to your load balancer. TLS is just an updated, more secure version of Secure Socket Layer (SSL). + public func attachLoadBalancerTlsCertificate(_ input: AttachLoadBalancerTlsCertificateRequest) throws -> AttachLoadBalancerTlsCertificateResult { + return try client.send(operation: "AttachLoadBalancerTlsCertificate", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a specific static IP from your account. + public func releaseStaticIp(_ input: ReleaseStaticIpRequest) throws -> ReleaseStaticIpResult { + return try client.send(operation: "ReleaseStaticIp", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about health metrics for your Lightsail load balancer. + public func getLoadBalancerMetricData(_ input: GetLoadBalancerMetricDataRequest) throws -> GetLoadBalancerMetricDataResult { + return try client.send(operation: "GetLoadBalancerMetricData", path: "/", httpMethod: "POST", input: input) + } + /// Returns information about all key pairs in the user's account. public func getKeyPairs(_ input: GetKeyPairsRequest) throws -> GetKeyPairsResult { return try client.send(operation: "GetKeyPairs", path: "/", httpMethod: "POST", input: input) @@ -80,19 +210,19 @@ public struct Lightsail { return try client.send(operation: "CreateInstanceSnapshot", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of all valid regions for Amazon Lightsail. Use the include availability zones parameter to also return the availability zones in a region. - public func getRegions(_ input: GetRegionsRequest) throws -> GetRegionsResult { - return try client.send(operation: "GetRegions", path: "/", httpMethod: "POST", input: input) + /// Creates a Lightsail load balancer. When you create a load balancer, you can specify certificates and port settings. You can create up to 5 load balancers per AWS Region in your account. + public func createLoadBalancer(_ input: CreateLoadBalancerRequest) throws -> CreateLoadBalancerResult { + return try client.send(operation: "CreateLoadBalancer", path: "/", httpMethod: "POST", input: input) } - /// Returns a Boolean value indicating whether your Lightsail VPC is peered. - public func isVpcPeered(_ input: IsVpcPeeredRequest) throws -> IsVpcPeeredResult { - return try client.send(operation: "IsVpcPeered", path: "/", httpMethod: "POST", input: input) + /// Deletes the specified block storage disk. The disk must be in the available state (not attached to a Lightsail instance). The disk may remain in the deleting state for several minutes. + public func deleteDisk(_ input: DeleteDiskRequest) throws -> DeleteDiskResult { + return try client.send(operation: "DeleteDisk", path: "/", httpMethod: "POST", input: input) } - /// Returns information about a specific key pair. - public func getKeyPair(_ input: GetKeyPairRequest) throws -> GetKeyPairResult { - return try client.send(operation: "GetKeyPair", path: "/", httpMethod: "POST", input: input) + /// Creates a snapshot of a block storage disk. You can use snapshots for backups, to make copies of disks, and to save data before shutting down a Lightsail instance. You can take a snapshot of an attached disk that is in use; however, snapshots only capture data that has been written to your disk at the time the snapshot command is issued. This may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the disk long enough to take a snapshot, your snapshot should be complete. Nevertheless, if you cannot pause all file writes to the disk, you should unmount the disk from within the Lightsail instance, issue the create disk snapshot command, and then remount the disk to ensure a consistent and complete snapshot. You may remount and use your disk while the snapshot status is pending. + public func createDiskSnapshot(_ input: CreateDiskSnapshotRequest) throws -> CreateDiskSnapshotResult { + return try client.send(operation: "CreateDiskSnapshot", path: "/", httpMethod: "POST", input: input) } /// Updates a domain recordset after it is created. @@ -120,9 +250,14 @@ public struct Lightsail { return try client.send(operation: "GetInstanceAccessDetails", path: "/", httpMethod: "POST", input: input) } - /// Creates one of the following entry records associated with the domain: A record, CNAME record, TXT record, or MX record. - public func createDomainEntry(_ input: CreateDomainEntryRequest) throws -> CreateDomainEntryResult { - return try client.send(operation: "CreateDomainEntry", path: "/", httpMethod: "POST", input: input) + /// Creates a block storage disk that can be attached to a Lightsail instance in the same Availability Zone (e.g., us-east-2a). The disk is created in the regional endpoint that you send the HTTP request to. For more information, see Regions and Availability Zones in Lightsail. + public func createDisk(_ input: CreateDiskRequest) throws -> CreateDiskResult { + return try client.send(operation: "CreateDisk", path: "/", httpMethod: "POST", input: input) + } + + /// Attaches one or more Lightsail instances to a load balancer. + public func attachInstancesToLoadBalancer(_ input: AttachInstancesToLoadBalancerRequest) throws -> AttachInstancesToLoadBalancerResult { + return try client.send(operation: "AttachInstancesToLoadBalancer", path: "/", httpMethod: "POST", input: input) } /// Deletes the specified domain recordset and all of its domain records. @@ -130,34 +265,34 @@ public struct Lightsail { return try client.send(operation: "DeleteDomain", path: "/", httpMethod: "POST", input: input) } - /// Imports a public SSH key from a specific key pair. - public func importKeyPair(_ input: ImportKeyPairRequest) throws -> ImportKeyPairResult { - return try client.send(operation: "ImportKeyPair", path: "/", httpMethod: "POST", input: input) + /// Updates the specified attribute for a load balancer. + public func updateLoadBalancerAttribute(_ input: UpdateLoadBalancerAttributeRequest) throws -> UpdateLoadBalancerAttributeResult { + return try client.send(operation: "UpdateLoadBalancerAttribute", path: "/", httpMethod: "POST", input: input) } - /// Returns the data points for the specified Amazon Lightsail instance metric, given an instance name. - public func getInstanceMetricData(_ input: GetInstanceMetricDataRequest) throws -> GetInstanceMetricDataResult { - return try client.send(operation: "GetInstanceMetricData", path: "/", httpMethod: "POST", input: input) + /// Deletes the specified disk snapshot. When you make periodic snapshots of a disk, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the disk. + public func deleteDiskSnapshot(_ input: DeleteDiskSnapshotRequest) throws -> DeleteDiskSnapshotResult { + return try client.send(operation: "DeleteDiskSnapshot", path: "/", httpMethod: "POST", input: input) } - /// Creates sn SSH key pair. - public func createKeyPair(_ input: CreateKeyPairRequest) throws -> CreateKeyPairResult { - return try client.send(operation: "CreateKeyPair", path: "/", httpMethod: "POST", input: input) + /// Returns a list of all domains in the user's account. + public func getDomains(_ input: GetDomainsRequest) throws -> GetDomainsResult { + return try client.send(operation: "GetDomains", path: "/", httpMethod: "POST", input: input) } - /// Starts a specific Amazon Lightsail instance from a stopped state. To restart an instance, use the reboot instance operation. - public func startInstance(_ input: StartInstanceRequest) throws -> StartInstanceResult { - return try client.send(operation: "StartInstance", path: "/", httpMethod: "POST", input: input) + /// Creates a domain resource for the specified domain (e.g., example.com). + public func createDomain(_ input: CreateDomainRequest) throws -> CreateDomainResult { + return try client.send(operation: "CreateDomain", path: "/", httpMethod: "POST", input: input) } - /// Detaches a static IP from the Amazon Lightsail instance to which it is attached. - public func detachStaticIp(_ input: DetachStaticIpRequest) throws -> DetachStaticIpResult { - return try client.send(operation: "DetachStaticIp", path: "/", httpMethod: "POST", input: input) + /// Closes the public ports on a specific Amazon Lightsail instance. + public func closeInstancePublicPorts(_ input: CloseInstancePublicPortsRequest) throws -> CloseInstancePublicPortsResult { + return try client.send(operation: "CloseInstancePublicPorts", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of all domains in the user's account. - public func getDomains(_ input: GetDomainsRequest) throws -> GetDomainsResult { - return try client.send(operation: "GetDomains", path: "/", httpMethod: "POST", input: input) + /// Deletes a specific snapshot of a virtual private server (or instance). + public func deleteInstanceSnapshot(_ input: DeleteInstanceSnapshotRequest) throws -> DeleteInstanceSnapshotResult { + return try client.send(operation: "DeleteInstanceSnapshot", path: "/", httpMethod: "POST", input: input) } /// Allocates a static IP address. @@ -165,14 +300,9 @@ public struct Lightsail { return try client.send(operation: "AllocateStaticIp", path: "/", httpMethod: "POST", input: input) } - /// Creates a domain resource for the specified domain (e.g., example.com). - public func createDomain(_ input: CreateDomainRequest) throws -> CreateDomainResult { - return try client.send(operation: "CreateDomain", path: "/", httpMethod: "POST", input: input) - } - - /// Returns information about all static IPs in the user's account. - public func getStaticIps(_ input: GetStaticIpsRequest) throws -> GetStaticIpsResult { - return try client.send(operation: "GetStaticIps", path: "/", httpMethod: "POST", input: input) + /// Attaches a block storage disk to a running or stopped Lightsail instance and exposes it to the instance with the specified disk name. + public func attachDisk(_ input: AttachDiskRequest) throws -> AttachDiskResult { + return try client.send(operation: "AttachDisk", path: "/", httpMethod: "POST", input: input) } /// Stops a specific Amazon Lightsail instance that is currently running. @@ -180,39 +310,24 @@ public struct Lightsail { return try client.send(operation: "StopInstance", path: "/", httpMethod: "POST", input: input) } - /// Closes the public ports on a specific Amazon Lightsail instance. - public func closeInstancePublicPorts(_ input: CloseInstancePublicPortsRequest) throws -> CloseInstancePublicPortsResult { - return try client.send(operation: "CloseInstancePublicPorts", path: "/", httpMethod: "POST", input: input) - } - /// Downloads the default SSH key pair from the user's account. public func downloadDefaultKeyPair(_ input: DownloadDefaultKeyPairRequest) throws -> DownloadDefaultKeyPairResult { return try client.send(operation: "DownloadDefaultKeyPair", path: "/", httpMethod: "POST", input: input) } - /// Uses a specific snapshot as a blueprint for creating one or more new instances that are based on that identical configuration. - public func createInstancesFromSnapshot(_ input: CreateInstancesFromSnapshotRequest) throws -> CreateInstancesFromSnapshotResult { - return try client.send(operation: "CreateInstancesFromSnapshot", path: "/", httpMethod: "POST", input: input) - } - /// Creates one or more Amazon Lightsail virtual private servers, or instances. public func createInstances(_ input: CreateInstancesRequest) throws -> CreateInstancesResult { return try client.send(operation: "CreateInstances", path: "/", httpMethod: "POST", input: input) } - /// Returns information about all Amazon Lightsail virtual private servers, or instances. - public func getInstances(_ input: GetInstancesRequest) throws -> GetInstancesResult { - return try client.send(operation: "GetInstances", path: "/", httpMethod: "POST", input: input) - } - - /// Returns information about a specific operation. Operations include events such as when you create an instance, allocate a static IP, attach a static IP, and so on. - public func getOperation(_ input: GetOperationRequest) throws -> GetOperationResult { - return try client.send(operation: "GetOperation", path: "/", httpMethod: "POST", input: input) + /// Uses a specific snapshot as a blueprint for creating one or more new instances that are based on that identical configuration. + public func createInstancesFromSnapshot(_ input: CreateInstancesFromSnapshotRequest) throws -> CreateInstancesFromSnapshotResult { + return try client.send(operation: "CreateInstancesFromSnapshot", path: "/", httpMethod: "POST", input: input) } - /// Deletes a specific snapshot of a virtual private server (or instance). - public func deleteInstanceSnapshot(_ input: DeleteInstanceSnapshotRequest) throws -> DeleteInstanceSnapshotResult { - return try client.send(operation: "DeleteInstanceSnapshot", path: "/", httpMethod: "POST", input: input) + /// Returns information about the specified Lightsail load balancer. + public func getLoadBalancer(_ input: GetLoadBalancerRequest) throws -> GetLoadBalancerResult { + return try client.send(operation: "GetLoadBalancer", path: "/", httpMethod: "POST", input: input) } /// Returns the list of bundles that are available for purchase. A bundle describes the specs for your virtual private server (or instance). @@ -220,14 +335,9 @@ public struct Lightsail { return try client.send(operation: "GetBundles", path: "/", httpMethod: "POST", input: input) } - /// Returns the port states for a specific virtual private server, or instance. - public func getInstancePortStates(_ input: GetInstancePortStatesRequest) throws -> GetInstancePortStatesResult { - return try client.send(operation: "GetInstancePortStates", path: "/", httpMethod: "POST", input: input) - } - - /// Tries to peer the Lightsail VPC with the user's default VPC. - public func peerVpc(_ input: PeerVpcRequest) throws -> PeerVpcResult { - return try client.send(operation: "PeerVpc", path: "/", httpMethod: "POST", input: input) + /// Returns information about a specific block storage disk snapshot. + public func getDiskSnapshot(_ input: GetDiskSnapshotRequest) throws -> GetDiskSnapshotResult { + return try client.send(operation: "GetDiskSnapshot", path: "/", httpMethod: "POST", input: input) } /// Adds public ports to an Amazon Lightsail instance. @@ -240,19 +350,14 @@ public struct Lightsail { return try client.send(operation: "PutInstancePublicPorts", path: "/", httpMethod: "POST", input: input) } - /// Gets operations for a specific resource (e.g., an instance or a static IP). - public func getOperationsForResource(_ input: GetOperationsForResourceRequest) throws -> GetOperationsForResourceResult { - return try client.send(operation: "GetOperationsForResource", path: "/", httpMethod: "POST", input: input) - } - /// Deletes a specific SSH key pair. public func deleteKeyPair(_ input: DeleteKeyPairRequest) throws -> DeleteKeyPairResult { return try client.send(operation: "DeleteKeyPair", path: "/", httpMethod: "POST", input: input) } - /// Returns information about a specific instance snapshot. - public func getInstanceSnapshot(_ input: GetInstanceSnapshotRequest) throws -> GetInstanceSnapshotResult { - return try client.send(operation: "GetInstanceSnapshot", path: "/", httpMethod: "POST", input: input) + /// Deletes a TLS/SSL certificate associated with a Lightsail load balancer. + public func deleteLoadBalancerTlsCertificate(_ input: DeleteLoadBalancerTlsCertificateRequest) throws -> DeleteLoadBalancerTlsCertificateResult { + return try client.send(operation: "DeleteLoadBalancerTlsCertificate", path: "/", httpMethod: "POST", input: input) } /// Deletes a specific Amazon Lightsail virtual private server, or instance. @@ -260,9 +365,19 @@ public struct Lightsail { return try client.send(operation: "DeleteInstance", path: "/", httpMethod: "POST", input: input) } - /// Returns information about a specific static IP. - public func getStaticIp(_ input: GetStaticIpRequest) throws -> GetStaticIpResult { - return try client.send(operation: "GetStaticIp", path: "/", httpMethod: "POST", input: input) + /// Creates a Lightsail load balancer TLS certificate. TLS is just an updated, more secure version of Secure Socket Layer (SSL). + public func createLoadBalancerTlsCertificate(_ input: CreateLoadBalancerTlsCertificateRequest) throws -> CreateLoadBalancerTlsCertificateResult { + return try client.send(operation: "CreateLoadBalancerTlsCertificate", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about a specific block storage disk. + public func getDisk(_ input: GetDiskRequest) throws -> GetDiskResult { + return try client.send(operation: "GetDisk", path: "/", httpMethod: "POST", input: input) + } + + /// Returns information about all block storage disk snapshots in your AWS account and region. If you are describing a long list of disk snapshots, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list. + public func getDiskSnapshots(_ input: GetDiskSnapshotsRequest) throws -> GetDiskSnapshotsResult { + return try client.send(operation: "GetDiskSnapshots", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/lightsail/Lightsail_Shapes.swift b/Sources/AWSSDKSwift/Services/lightsail/Lightsail_Shapes.swift index 7c5205742a8..5bdea32dd87 100644 --- a/Sources/AWSSDKSwift/Services/lightsail/Lightsail_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/lightsail/Lightsail_Shapes.swift @@ -5,67 +5,61 @@ import AWSSDKSwiftCore extension Lightsail { - public struct GetOperationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "pageToken", required: false, type: .string) + public struct CreateLoadBalancerResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) ] - /// A token used for advancing to the next page of results from your get operations request. - public let pageToken: String? + /// An object containing information about the API operations. + public let operations: [Operation]? - public init(pageToken: String? = nil) { - self.pageToken = pageToken + public init(operations: [Operation]? = nil) { + self.operations = operations } private enum CodingKeys: String, CodingKey { - case pageToken = "pageToken" + case operations = "operations" } } - public struct GetInstanceStateResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "state", required: false, type: .structure) + public struct CreateDomainRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "domainName", required: true, type: .string) ] - /// The state of the instance. - public let state: InstanceState? + /// The domain name to manage (e.g., example.com). You cannot register a new domain name using Lightsail. You must register a domain name using Amazon Route 53 or another domain name registrar. If you have already registered your domain, you can enter its name in this parameter to manage the DNS records for that domain. + public let domainName: String - public init(state: InstanceState? = nil) { - self.state = state + public init(domainName: String) { + self.domainName = domainName } private enum CodingKeys: String, CodingKey { - case state = "state" + case domainName = "domainName" } } - public struct GetDomainsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "domains", required: false, type: .list), - AWSShapeMember(label: "nextPageToken", required: false, type: .string) - ] - /// An array of key-value pairs containing information about each of the domain entries in the user's account. - public let domains: [Domain]? - /// A token used for advancing to the next page of results from your get active names request. - public let nextPageToken: String? - - public init(domains: [Domain]? = nil, nextPageToken: String? = nil) { - self.domains = domains - self.nextPageToken = nextPageToken - } - - private enum CodingKeys: String, CodingKey { - case domains = "domains" - case nextPageToken = "nextPageToken" - } + public enum InstanceHealthReason: String, CustomStringConvertible, Codable { + case lbRegistrationinprogress = "Lb.RegistrationInProgress" + case lbInitialhealthchecking = "Lb.InitialHealthChecking" + case lbInternalerror = "Lb.InternalError" + case instanceResponsecodemismatch = "Instance.ResponseCodeMismatch" + case instanceTimeout = "Instance.Timeout" + case instanceFailedhealthchecks = "Instance.FailedHealthChecks" + case instanceNotregistered = "Instance.NotRegistered" + case instanceNotinuse = "Instance.NotInUse" + case instanceDeregistrationinprogress = "Instance.DeregistrationInProgress" + case instanceInvalidstate = "Instance.InvalidState" + case instanceIpunusable = "Instance.IpUnusable" + public var description: String { return self.rawValue } } public struct GetInstanceMetricDataResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "metricData", required: false, type: .list), AWSShapeMember(label: "metricName", required: false, type: .enum) ] /// An array of key-value pairs containing information about the results of your get instance metric data request. public let metricData: [MetricDatapoint]? - /// The metric name to return data for. + /// The metric name to return data for. public let metricName: InstanceMetricName? public init(metricData: [MetricDatapoint]? = nil, metricName: InstanceMetricName? = nil) { @@ -79,83 +73,28 @@ extension Lightsail { } } - public struct CreateDomainResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operation", required: false, type: .structure) + public struct GetDiskResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "disk", required: false, type: .structure) ] - /// An array of key-value pairs containing information about the domain resource you created. - public let operation: Operation? + /// An object containing information about the disk. + public let disk: Disk? - public init(operation: Operation? = nil) { - self.operation = operation + public init(disk: Disk? = nil) { + self.disk = disk } private enum CodingKeys: String, CodingKey { - case operation = "operation" + case disk = "disk" } } - public enum OperationStatus: String, CustomStringConvertible, Codable { - case notstarted = "NotStarted" - case started = "Started" - case failed = "Failed" - case completed = "Completed" - public var description: String { return self.rawValue } - } - public struct UnpeerVpcRequest: AWSShape { } - public struct DeleteDomainResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operation", required: false, type: .structure) - ] - /// An array of key-value pairs containing information about the results of your delete domain request. - public let operation: Operation? - - public init(operation: Operation? = nil) { - self.operation = operation - } - - private enum CodingKeys: String, CodingKey { - case operation = "operation" - } - } - - public struct CreateKeyPairResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "keyPair", required: false, type: .structure), - AWSShapeMember(label: "publicKeyBase64", required: false, type: .string), - AWSShapeMember(label: "privateKeyBase64", required: false, type: .string), - AWSShapeMember(label: "operation", required: false, type: .structure) - ] - /// An array of key-value pairs containing information about the new key pair you just created. - public let keyPair: KeyPair? - /// A base64-encoded public key of the ssh-rsa type. - public let publicKeyBase64: String? - /// A base64-encoded RSA private key. - public let privateKeyBase64: String? - /// An array of key-value pairs containing information about the results of your create key pair request. - public let operation: Operation? - - public init(keyPair: KeyPair? = nil, publicKeyBase64: String? = nil, privateKeyBase64: String? = nil, operation: Operation? = nil) { - self.keyPair = keyPair - self.publicKeyBase64 = publicKeyBase64 - self.privateKeyBase64 = privateKeyBase64 - self.operation = operation - } - - private enum CodingKeys: String, CodingKey { - case keyPair = "keyPair" - case publicKeyBase64 = "publicKeyBase64" - case privateKeyBase64 = "privateKeyBase64" - case operation = "operation" - } - } - public struct GetOperationsForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pageToken", required: false, type: .string), AWSShapeMember(label: "resourceName", required: true, type: .string) ] @@ -175,105 +114,50 @@ extension Lightsail { } } - public struct AttachStaticIpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "staticIpName", required: true, type: .string), - AWSShapeMember(label: "instanceName", required: true, type: .string) + public struct AttachInstancesToLoadBalancerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "loadBalancerName", required: true, type: .string), + AWSShapeMember(label: "instanceNames", required: true, type: .list) ] - /// The name of the static IP. - public let staticIpName: String - /// The instance name to which you want to attach the static IP address. - public let instanceName: String + /// The name of the load balancer. + public let loadBalancerName: String + /// An array of strings representing the instance name(s) you want to attach to your load balancer. + public let instanceNames: [String] - public init(staticIpName: String, instanceName: String) { - self.staticIpName = staticIpName - self.instanceName = instanceName + public init(loadBalancerName: String, instanceNames: [String]) { + self.loadBalancerName = loadBalancerName + self.instanceNames = instanceNames } private enum CodingKeys: String, CodingKey { - case staticIpName = "staticIpName" - case instanceName = "instanceName" + case loadBalancerName = "loadBalancerName" + case instanceNames = "instanceNames" } } - public struct InstanceSnapshot: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "state", required: false, type: .enum), - AWSShapeMember(label: "name", required: false, type: .string), - AWSShapeMember(label: "resourceType", required: false, type: .enum), - AWSShapeMember(label: "createdAt", required: false, type: .timestamp), - AWSShapeMember(label: "fromBundleId", required: false, type: .string), - AWSShapeMember(label: "supportCode", required: false, type: .string), - AWSShapeMember(label: "fromInstanceArn", required: false, type: .string), - AWSShapeMember(label: "arn", required: false, type: .string), - AWSShapeMember(label: "fromBlueprintId", required: false, type: .string), - AWSShapeMember(label: "sizeInGb", required: false, type: .integer), - AWSShapeMember(label: "location", required: false, type: .structure), - AWSShapeMember(label: "fromInstanceName", required: false, type: .string), - AWSShapeMember(label: "progress", required: false, type: .string) + public struct DiskMap: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "newDiskName", required: false, type: .string), + AWSShapeMember(label: "originalDiskPath", required: false, type: .string) ] - /// The state the snapshot is in. - public let state: InstanceSnapshotState? - /// The name of the snapshot. - public let name: String? - /// The type of resource (usually InstanceSnapshot). - public let resourceType: ResourceType? - /// The timestamp when the snapshot was created (e.g., 1479907467.024). - public let createdAt: TimeStamp? - /// The bundle ID from which you created the snapshot (e.g., micro_1_0). - public let fromBundleId: String? - /// The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily. - public let supportCode: String? - /// The Amazon Resource Name (ARN) of the instance from which the snapshot was created (e.g., arn:aws:lightsail:us-east-1:123456789101:Instance/64b8404c-ccb1-430b-8daf-12345EXAMPLE). - public let fromInstanceArn: String? - /// The Amazon Resource Name (ARN) of the snapshot (e.g., arn:aws:lightsail:us-east-1:123456789101:InstanceSnapshot/d23b5706-3322-4d83-81e5-12345EXAMPLE). - public let arn: String? - /// The blueprint ID from which you created the snapshot (e.g., os_debian_8_3). A blueprint is a virtual private server (or instance) image used to create instances quickly. - public let fromBlueprintId: String? - /// The size in GB of the SSD. - public let sizeInGb: Int32? - /// The region name and availability zone where you created the snapshot. - public let location: ResourceLocation? - /// The instance from which the snapshot was created. - public let fromInstanceName: String? - /// The progress of the snapshot. - public let progress: String? + /// The new disk name (e.g., my-new-disk). + public let newDiskName: String? + /// The original disk path exposed to the instance (for example, /dev/sdh). + public let originalDiskPath: String? - public init(state: InstanceSnapshotState? = nil, name: String? = nil, resourceType: ResourceType? = nil, createdAt: TimeStamp? = nil, fromBundleId: String? = nil, supportCode: String? = nil, fromInstanceArn: String? = nil, arn: String? = nil, fromBlueprintId: String? = nil, sizeInGb: Int32? = nil, location: ResourceLocation? = nil, fromInstanceName: String? = nil, progress: String? = nil) { - self.state = state - self.name = name - self.resourceType = resourceType - self.createdAt = createdAt - self.fromBundleId = fromBundleId - self.supportCode = supportCode - self.fromInstanceArn = fromInstanceArn - self.arn = arn - self.fromBlueprintId = fromBlueprintId - self.sizeInGb = sizeInGb - self.location = location - self.fromInstanceName = fromInstanceName - self.progress = progress + public init(newDiskName: String? = nil, originalDiskPath: String? = nil) { + self.newDiskName = newDiskName + self.originalDiskPath = originalDiskPath } private enum CodingKeys: String, CodingKey { - case state = "state" - case name = "name" - case resourceType = "resourceType" - case createdAt = "createdAt" - case fromBundleId = "fromBundleId" - case supportCode = "supportCode" - case fromInstanceArn = "fromInstanceArn" - case arn = "arn" - case fromBlueprintId = "fromBlueprintId" - case sizeInGb = "sizeInGb" - case location = "location" - case fromInstanceName = "fromInstanceName" - case progress = "progress" + case newDiskName = "newDiskName" + case originalDiskPath = "originalDiskPath" } } public struct InstanceAccessDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "privateKey", required: false, type: .string), AWSShapeMember(label: "ipAddress", required: false, type: .string), AWSShapeMember(label: "instanceName", required: false, type: .string), @@ -281,6 +165,7 @@ extension Lightsail { AWSShapeMember(label: "password", required: false, type: .string), AWSShapeMember(label: "certKey", required: false, type: .string), AWSShapeMember(label: "expiresAt", required: false, type: .timestamp), + AWSShapeMember(label: "passwordData", required: false, type: .structure), AWSShapeMember(label: "username", required: false, type: .string) ] /// For SSH access, the temporary private key. For OpenSSH clients (e.g., command line SSH), you should save this value to tempkey). @@ -291,16 +176,18 @@ extension Lightsail { public let instanceName: String? /// The protocol for these Amazon Lightsail instance access details. public let `protocol`: InstanceAccessProtocol? - /// For RDP access, the temporary password of the Amazon EC2 instance. + /// For RDP access, the password for your Amazon Lightsail instance. Password will be an empty string if the password for your new instance is not ready yet. When you create an instance, it can take up to 15 minutes for the instance to be ready. If you create an instance using any key pair other than the default (LightsailDefaultKeyPair), password will always be an empty string. If you change the Administrator password on the instance, Lightsail will continue to return the original password value. When accessing the instance using RDP, you need to manually enter the Administrator password after changing it from the default. public let password: String? /// For SSH access, the public key to use when accessing your instance For OpenSSH clients (e.g., command line SSH), you should save this value to tempkey-cert.pub. public let certKey: String? /// For SSH access, the date on which the temporary keys expire. public let expiresAt: TimeStamp? + /// For a Windows Server-based instance, an object with the data you can use to retrieve your password. This is only needed if password is empty and the instance is not new (and therefore the password is not ready yet). When you create an instance, it can take up to 15 minutes for the instance to be ready. + public let passwordData: PasswordData? /// The user name to use when logging in to the Amazon Lightsail instance. public let username: String? - public init(privateKey: String? = nil, ipAddress: String? = nil, instanceName: String? = nil, protocol: InstanceAccessProtocol? = nil, password: String? = nil, certKey: String? = nil, expiresAt: TimeStamp? = nil, username: String? = nil) { + public init(privateKey: String? = nil, ipAddress: String? = nil, instanceName: String? = nil, protocol: InstanceAccessProtocol? = nil, password: String? = nil, certKey: String? = nil, expiresAt: TimeStamp? = nil, passwordData: PasswordData? = nil, username: String? = nil) { self.privateKey = privateKey self.ipAddress = ipAddress self.instanceName = instanceName @@ -308,6 +195,7 @@ extension Lightsail { self.password = password self.certKey = certKey self.expiresAt = expiresAt + self.passwordData = passwordData self.username = username } @@ -319,33 +207,61 @@ extension Lightsail { case password = "password" case certKey = "certKey" case expiresAt = "expiresAt" + case passwordData = "passwordData" case username = "username" } } - public struct GetBundlesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "pageToken", required: false, type: .string), - AWSShapeMember(label: "includeInactive", required: false, type: .boolean) + public struct DetachInstancesFromLoadBalancerResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) ] - /// A token used for advancing to the next page of results from your get bundles request. - public let pageToken: String? - /// A Boolean value that indicates whether to include inactive bundle results in your request. - public let includeInactive: Bool? + /// An object describing the API operations. + public let operations: [Operation]? - public init(pageToken: String? = nil, includeInactive: Bool? = nil) { - self.pageToken = pageToken - self.includeInactive = includeInactive + public init(operations: [Operation]? = nil) { + self.operations = operations } private enum CodingKeys: String, CodingKey { - case pageToken = "pageToken" - case includeInactive = "includeInactive" + case operations = "operations" + } + } + + public struct CreateLoadBalancerTlsCertificateResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An object containing information about the API operations. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public struct DeleteLoadBalancerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "loadBalancerName", required: true, type: .string) + ] + /// The name of the load balancer you want to delete. + public let loadBalancerName: String + + public init(loadBalancerName: String) { + self.loadBalancerName = loadBalancerName + } + + private enum CodingKeys: String, CodingKey { + case loadBalancerName = "loadBalancerName" } } public struct DeleteDomainEntryResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operation", required: false, type: .structure) ] /// An array of key-value pairs containing information about the results of your delete domain entry request. @@ -361,7 +277,7 @@ extension Lightsail { } public struct GetRegionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "regions", required: false, type: .list) ] /// An array of key-value pairs containing information about your get regions request. @@ -382,97 +298,86 @@ extension Lightsail { public var description: String { return self.rawValue } } - public struct GetInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instance", required: false, type: .structure) + public struct AttachLoadBalancerTlsCertificateResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) ] - /// An array of key-value pairs containing information about the specified instance. - public let instance: Instance? + /// An object representing the API operations. + public let operations: [Operation]? - public init(instance: Instance? = nil) { - self.instance = instance + public init(operations: [Operation]? = nil) { + self.operations = operations } private enum CodingKeys: String, CodingKey { - case instance = "instance" + case operations = "operations" } } - public struct DeleteInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operations", required: false, type: .list) + public struct CreateLoadBalancerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instancePort", required: true, type: .integer), + AWSShapeMember(label: "certificateName", required: false, type: .string), + AWSShapeMember(label: "certificateAlternativeNames", required: false, type: .list), + AWSShapeMember(label: "certificateDomainName", required: false, type: .string), + AWSShapeMember(label: "loadBalancerName", required: true, type: .string), + AWSShapeMember(label: "healthCheckPath", required: false, type: .string) ] - /// An array of key-value pairs containing information about the results of your delete instance request. - public let operations: [Operation]? + /// The instance port where you're creating your load balancer. + public let instancePort: Int32 + /// The name of the TLS/SSL certificate. If you specify certificateName, then certificateDomainName is required (and vice-versa). + public let certificateName: String? + /// The alternative domain names to use with your TLS/SSL certificate (e.g., www.example.com, www.ejemplo.com, ejemplo.com). + public let certificateAlternativeNames: [String]? + /// The domain name with which your certificate is associated (e.g., example.com). If you specify certificateDomainName, then certificateName is required (and vice-versa). + public let certificateDomainName: String? + /// The name of your load balancer. + public let loadBalancerName: String + /// The path you provided to perform the load balancer health check. If you didn't specify a health check path, Lightsail uses the root path of your website (e.g., "/"). + public let healthCheckPath: String? + + public init(instancePort: Int32, certificateName: String? = nil, certificateAlternativeNames: [String]? = nil, certificateDomainName: String? = nil, loadBalancerName: String, healthCheckPath: String? = nil) { + self.instancePort = instancePort + self.certificateName = certificateName + self.certificateAlternativeNames = certificateAlternativeNames + self.certificateDomainName = certificateDomainName + self.loadBalancerName = loadBalancerName + self.healthCheckPath = healthCheckPath + } - public init(operations: [Operation]? = nil) { - self.operations = operations + private enum CodingKeys: String, CodingKey { + case instancePort = "instancePort" + case certificateName = "certificateName" + case certificateAlternativeNames = "certificateAlternativeNames" + case certificateDomainName = "certificateDomainName" + case loadBalancerName = "loadBalancerName" + case healthCheckPath = "healthCheckPath" + } + } + + public struct GetDiskSnapshotsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextPageToken", required: false, type: .string), + AWSShapeMember(label: "diskSnapshots", required: false, type: .list) + ] + /// A token used for advancing to the next page of results from your GetDiskSnapshots request. + public let nextPageToken: String? + /// An array of objects containing information about all block storage disk snapshots. + public let diskSnapshots: [DiskSnapshot]? + + public init(nextPageToken: String? = nil, diskSnapshots: [DiskSnapshot]? = nil) { + self.nextPageToken = nextPageToken + self.diskSnapshots = diskSnapshots } private enum CodingKeys: String, CodingKey { - case operations = "operations" - } - } - - public enum RegionName: String, CustomStringConvertible, Codable { - case usEast1 = "us-east-1" - case usEast2 = "us-east-2" - case usWest1 = "us-west-1" - case usWest2 = "us-west-2" - case euWest1 = "eu-west-1" - case euCentral1 = "eu-central-1" - case apSouth1 = "ap-south-1" - case apSoutheast1 = "ap-southeast-1" - case apSoutheast2 = "ap-southeast-2" - case apNortheast1 = "ap-northeast-1" - case apNortheast2 = "ap-northeast-2" - public var description: String { return self.rawValue } - } - - public struct GetInstanceAccessDetailsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "protocol", required: false, type: .enum), - AWSShapeMember(label: "instanceName", required: true, type: .string) - ] - /// The protocol to use to connect to your instance. Defaults to ssh. - public let `protocol`: InstanceAccessProtocol? - /// The name of the instance to access. - public let instanceName: String - - public init(protocol: InstanceAccessProtocol? = nil, instanceName: String) { - self.`protocol` = `protocol` - self.instanceName = instanceName - } - - private enum CodingKeys: String, CodingKey { - case `protocol` = "protocol" - case instanceName = "instanceName" - } - } - - public struct GetInstanceSnapshotsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextPageToken", required: false, type: .string), - AWSShapeMember(label: "instanceSnapshots", required: false, type: .list) - ] - /// A token used for advancing to the next page of results from your get instance snapshots request. - public let nextPageToken: String? - /// An array of key-value pairs containing information about the results of your get instance snapshots request. - public let instanceSnapshots: [InstanceSnapshot]? - - public init(nextPageToken: String? = nil, instanceSnapshots: [InstanceSnapshot]? = nil) { - self.nextPageToken = nextPageToken - self.instanceSnapshots = instanceSnapshots - } - - private enum CodingKeys: String, CodingKey { - case nextPageToken = "nextPageToken" - case instanceSnapshots = "instanceSnapshots" + case nextPageToken = "nextPageToken" + case diskSnapshots = "diskSnapshots" } } public struct StaticIp: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attachedTo", required: false, type: .string), AWSShapeMember(label: "isAttached", required: false, type: .boolean), AWSShapeMember(label: "location", required: false, type: .structure), @@ -483,7 +388,7 @@ extension Lightsail { AWSShapeMember(label: "supportCode", required: false, type: .string), AWSShapeMember(label: "arn", required: false, type: .string) ] - /// The instance where the static IP is attached (e.g., Amazon_Linux-1GB-Virginia-1). + /// The instance where the static IP is attached (e.g., Amazon_Linux-1GB-Ohio-1). public let attachedTo: String? /// A Boolean value indicating whether the static IP is attached. public let isAttached: Bool? @@ -493,13 +398,13 @@ extension Lightsail { public let resourceType: ResourceType? /// The static IP address. public let ipAddress: String? - /// The name of the static IP (e.g., StaticIP-Virginia-EXAMPLE). + /// The name of the static IP (e.g., StaticIP-Ohio-EXAMPLE). public let name: String? /// The timestamp when the static IP was created (e.g., 1479735304.222). public let createdAt: TimeStamp? /// The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily. public let supportCode: String? - /// The Amazon Resource Name (ARN) of the static IP (e.g., arn:aws:lightsail:us-east-1:123456789101:StaticIp/9cbb4a9e-f8e3-4dfe-b57e-12345EXAMPLE). + /// The Amazon Resource Name (ARN) of the static IP (e.g., arn:aws:lightsail:us-east-2:123456789101:StaticIp/9cbb4a9e-f8e3-4dfe-b57e-12345EXAMPLE). public let arn: String? public init(attachedTo: String? = nil, isAttached: Bool? = nil, location: ResourceLocation? = nil, resourceType: ResourceType? = nil, ipAddress: String? = nil, name: String? = nil, createdAt: TimeStamp? = nil, supportCode: String? = nil, arn: String? = nil) { @@ -527,8 +432,17 @@ extension Lightsail { } } + public enum LoadBalancerState: String, CustomStringConvertible, Codable { + case active = "active" + case provisioning = "provisioning" + case activeImpaired = "active_impaired" + case failed = "failed" + case unknown = "unknown" + public var description: String { return self.rawValue } + } + public struct GetInstancePortStatesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "portStates", required: false, type: .list) ] /// Information about the port states resulting from your request. @@ -544,7 +458,7 @@ extension Lightsail { } public struct InstancePortState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: false, type: .enum), AWSShapeMember(label: "fromPort", required: false, type: .integer), AWSShapeMember(label: "protocol", required: false, type: .enum), @@ -574,70 +488,40 @@ extension Lightsail { } } - public struct KeyPair: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "name", required: false, type: .string), - AWSShapeMember(label: "location", required: false, type: .structure), - AWSShapeMember(label: "resourceType", required: false, type: .enum), - AWSShapeMember(label: "createdAt", required: false, type: .timestamp), - AWSShapeMember(label: "fingerprint", required: false, type: .string), - AWSShapeMember(label: "supportCode", required: false, type: .string), - AWSShapeMember(label: "arn", required: false, type: .string) + public struct CreateDiskFromSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) ] - /// The friendly name of the SSH key pair. - public let name: String? - /// The region name and Availability Zone where the key pair was created. - public let location: ResourceLocation? - /// The resource type (usually KeyPair). - public let resourceType: ResourceType? - /// The timestamp when the key pair was created (e.g., 1479816991.349). - public let createdAt: TimeStamp? - /// The RSA fingerprint of the key pair. - public let fingerprint: String? - /// The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily. - public let supportCode: String? - /// The Amazon Resource Name (ARN) of the key pair (e.g., arn:aws:lightsail:us-east-1:123456789101:KeyPair/05859e3d-331d-48ba-9034-12345EXAMPLE). - public let arn: String? + /// An object describing the API operations. + public let operations: [Operation]? - public init(name: String? = nil, location: ResourceLocation? = nil, resourceType: ResourceType? = nil, createdAt: TimeStamp? = nil, fingerprint: String? = nil, supportCode: String? = nil, arn: String? = nil) { - self.name = name - self.location = location - self.resourceType = resourceType - self.createdAt = createdAt - self.fingerprint = fingerprint - self.supportCode = supportCode - self.arn = arn + public init(operations: [Operation]? = nil) { + self.operations = operations } private enum CodingKeys: String, CodingKey { - case name = "name" - case location = "location" - case resourceType = "resourceType" - case createdAt = "createdAt" - case fingerprint = "fingerprint" - case supportCode = "supportCode" - case arn = "arn" + case operations = "operations" } } - public struct GetStaticIpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "staticIpName", required: true, type: .string) + public struct DeleteDiskSnapshotRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "diskSnapshotName", required: true, type: .string) ] - /// The name of the static IP in Lightsail. - public let staticIpName: String + /// The name of the disk snapshot you want to delete (e.g., my-disk-snapshot). + public let diskSnapshotName: String - public init(staticIpName: String) { - self.staticIpName = staticIpName + public init(diskSnapshotName: String) { + self.diskSnapshotName = diskSnapshotName } private enum CodingKeys: String, CodingKey { - case staticIpName = "staticIpName" + case diskSnapshotName = "diskSnapshotName" } } public struct GetKeyPairsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextPageToken", required: false, type: .string), AWSShapeMember(label: "keyPairs", required: false, type: .list) ] @@ -657,146 +541,58 @@ extension Lightsail { } } - public struct Bundle: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "name", required: false, type: .string), - AWSShapeMember(label: "instanceType", required: false, type: .string), - AWSShapeMember(label: "isActive", required: false, type: .boolean), - AWSShapeMember(label: "power", required: false, type: .integer), - AWSShapeMember(label: "cpuCount", required: false, type: .integer), - AWSShapeMember(label: "ramSizeInGb", required: false, type: .float), - AWSShapeMember(label: "bundleId", required: false, type: .string), - AWSShapeMember(label: "transferPerMonthInGb", required: false, type: .integer), - AWSShapeMember(label: "diskSizeInGb", required: false, type: .integer), - AWSShapeMember(label: "price", required: false, type: .float) - ] - /// A friendly name for the bundle (e.g., Micro). - public let name: String? - /// The Amazon EC2 instance type (e.g., t2.micro). - public let instanceType: String? - /// A Boolean value indicating whether the bundle is active. - public let isActive: Bool? - /// The power of the bundle (e.g., 500). - public let power: Int32? - /// The number of vCPUs included in the bundle (e.g., 2). - public let cpuCount: Int32? - /// The amount of RAM in GB (e.g., 2.0). - public let ramSizeInGb: Float? - /// The bundle ID (e.g., micro_1_0). - public let bundleId: String? - /// The data transfer rate per month in GB (e.g., 2000). - public let transferPerMonthInGb: Int32? - /// The size of the SSD (e.g., 30). - public let diskSizeInGb: Int32? - /// The price in US dollars (e.g., 5.0). - public let price: Float? - - public init(name: String? = nil, instanceType: String? = nil, isActive: Bool? = nil, power: Int32? = nil, cpuCount: Int32? = nil, ramSizeInGb: Float? = nil, bundleId: String? = nil, transferPerMonthInGb: Int32? = nil, diskSizeInGb: Int32? = nil, price: Float? = nil) { - self.name = name - self.instanceType = instanceType - self.isActive = isActive - self.power = power - self.cpuCount = cpuCount - self.ramSizeInGb = ramSizeInGb - self.bundleId = bundleId - self.transferPerMonthInGb = transferPerMonthInGb - self.diskSizeInGb = diskSizeInGb - self.price = price - } - - private enum CodingKeys: String, CodingKey { - case name = "name" - case instanceType = "instanceType" - case isActive = "isActive" - case power = "power" - case cpuCount = "cpuCount" - case ramSizeInGb = "ramSizeInGb" - case bundleId = "bundleId" - case transferPerMonthInGb = "transferPerMonthInGb" - case diskSizeInGb = "diskSizeInGb" - case price = "price" - } - } - public struct PeerVpcRequest: AWSShape { } - public struct RebootInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operations", required: false, type: .list) - ] - /// An array of key-value pairs containing information about the request operation. - public let operations: [Operation]? - - public init(operations: [Operation]? = nil) { - self.operations = operations - } - - private enum CodingKeys: String, CodingKey { - case operations = "operations" - } - } - public struct CreateInstancesFromSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "availabilityZone", required: true, type: .string), + AWSShapeMember(label: "attachedDiskMapping", required: false, type: .map), + AWSShapeMember(label: "keyPairName", required: false, type: .string), AWSShapeMember(label: "instanceNames", required: true, type: .list), AWSShapeMember(label: "bundleId", required: true, type: .string), AWSShapeMember(label: "instanceSnapshotName", required: true, type: .string), - AWSShapeMember(label: "userData", required: false, type: .string), - AWSShapeMember(label: "keyPairName", required: false, type: .string) + AWSShapeMember(label: "userData", required: false, type: .string) ] - /// The Availability Zone where you want to create your instances. Use the following formatting: us-east-1a (case sensitive). You can get a list of availability zones by using the get regions operation. Be sure to add the include availability zones parameter to your request. + /// The Availability Zone where you want to create your instances. Use the following formatting: us-east-2a (case sensitive). You can get a list of availability zones by using the get regions operation. Be sure to add the include availability zones parameter to your request. public let availabilityZone: String + /// An object containing information about one or more disk mappings. + public let attachedDiskMapping: [String: [DiskMap]]? + /// The name for your key pair. + public let keyPairName: String? /// The names for your new instances. public let instanceNames: [String] /// The bundle of specification information for your virtual private server (or instance), including the pricing plan (e.g., micro_1_0). public let bundleId: String /// The name of the instance snapshot on which you are basing your new instances. Use the get instance snapshots operation to return information about your existing snapshots. public let instanceSnapshotName: String - /// You can create a launch script that configures a server with additional user data. For example, apt-get –y update. Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use yum, Debian and Ubuntu use apt-get, and FreeBSD uses pkg. For a complete list, see the Dev Guide. + /// You can create a launch script that configures a server with additional user data. For example, apt-get -y update. Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use yum, Debian and Ubuntu use apt-get, and FreeBSD uses pkg. For a complete list, see the Dev Guide. public let userData: String? - /// The name for your key pair. - public let keyPairName: String? - public init(availabilityZone: String, instanceNames: [String], bundleId: String, instanceSnapshotName: String, userData: String? = nil, keyPairName: String? = nil) { + public init(availabilityZone: String, attachedDiskMapping: [String: [DiskMap]]? = nil, keyPairName: String? = nil, instanceNames: [String], bundleId: String, instanceSnapshotName: String, userData: String? = nil) { self.availabilityZone = availabilityZone + self.attachedDiskMapping = attachedDiskMapping + self.keyPairName = keyPairName self.instanceNames = instanceNames self.bundleId = bundleId self.instanceSnapshotName = instanceSnapshotName self.userData = userData - self.keyPairName = keyPairName } private enum CodingKeys: String, CodingKey { case availabilityZone = "availabilityZone" + case attachedDiskMapping = "attachedDiskMapping" + case keyPairName = "keyPairName" case instanceNames = "instanceNames" case bundleId = "bundleId" case instanceSnapshotName = "instanceSnapshotName" case userData = "userData" - case keyPairName = "keyPairName" - } - } - - public struct GetOperationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operationId", required: true, type: .string) - ] - /// A GUID used to identify the operation. - public let operationId: String - - public init(operationId: String) { - self.operationId = operationId - } - - private enum CodingKeys: String, CodingKey { - case operationId = "operationId" } } public struct ImportKeyPairResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operation", required: false, type: .structure) ] /// An array of key-value pairs containing information about the request operation. @@ -811,18 +607,8 @@ extension Lightsail { } } - public enum ResourceType: String, CustomStringConvertible, Codable { - case instance = "Instance" - case staticip = "StaticIp" - case keypair = "KeyPair" - case instancesnapshot = "InstanceSnapshot" - case domain = "Domain" - case peeredvpc = "PeeredVpc" - public var description: String { return self.rawValue } - } - public struct DeleteDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainName", required: true, type: .string) ] /// The specific domain name to delete. @@ -837,56 +623,56 @@ extension Lightsail { } } - public struct GetKeyPairRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "keyPairName", required: true, type: .string) + public struct IsVpcPeeredResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "isPeered", required: false, type: .boolean) ] - /// The name of the key pair for which you are requesting information. - public let keyPairName: String + /// Returns true if the Lightsail VPC is peered; otherwise, false. + public let isPeered: Bool? - public init(keyPairName: String) { - self.keyPairName = keyPairName + public init(isPeered: Bool? = nil) { + self.isPeered = isPeered } private enum CodingKeys: String, CodingKey { - case keyPairName = "keyPairName" + case isPeered = "isPeered" } } - public struct ReleaseStaticIpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "staticIpName", required: true, type: .string) + public struct GetLoadBalancerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "loadBalancerName", required: true, type: .string) ] - /// The name of the static IP to delete. - public let staticIpName: String + /// The name of the load balancer. + public let loadBalancerName: String - public init(staticIpName: String) { - self.staticIpName = staticIpName + public init(loadBalancerName: String) { + self.loadBalancerName = loadBalancerName } private enum CodingKeys: String, CodingKey { - case staticIpName = "staticIpName" + case loadBalancerName = "loadBalancerName" } } - public struct IsVpcPeeredResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "isPeered", required: false, type: .boolean) + public struct GetDiskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "diskName", required: true, type: .string) ] - /// Returns true if the Lightsail VPC is peered; otherwise, false. - public let isPeered: Bool? + /// The name of the disk (e.g., my-disk). + public let diskName: String - public init(isPeered: Bool? = nil) { - self.isPeered = isPeered + public init(diskName: String) { + self.diskName = diskName } private enum CodingKeys: String, CodingKey { - case isPeered = "isPeered" + case diskName = "diskName" } } public struct OpenInstancePublicPortsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceName", required: true, type: .string), AWSShapeMember(label: "portInfo", required: true, type: .structure) ] @@ -907,7 +693,7 @@ extension Lightsail { } public struct CreateInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operations", required: false, type: .list) ] /// An array of key-value pairs containing information about the results of your create instances request. @@ -922,45 +708,8 @@ extension Lightsail { } } - public struct GetInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instanceName", required: true, type: .string) - ] - /// The name of the instance. - public let instanceName: String - - public init(instanceName: String) { - self.instanceName = instanceName - } - - private enum CodingKeys: String, CodingKey { - case instanceName = "instanceName" - } - } - - public struct CloseInstancePublicPortsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instanceName", required: true, type: .string), - AWSShapeMember(label: "portInfo", required: true, type: .structure) - ] - /// The name of the instance on which you're attempting to close the public ports. - public let instanceName: String - /// Information about the public port you are trying to close. - public let portInfo: PortInfo - - public init(instanceName: String, portInfo: PortInfo) { - self.instanceName = instanceName - self.portInfo = portInfo - } - - private enum CodingKeys: String, CodingKey { - case instanceName = "instanceName" - case portInfo = "portInfo" - } - } - public struct Instance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: false, type: .structure), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "resourceType", required: false, type: .enum), @@ -982,7 +731,7 @@ extension Lightsail { ] /// The status code and the state (e.g., running) for the instance. public let state: InstanceState? - /// The name the user gave the instance (e.g., Amazon_Linux-1GB-Virginia-1). + /// The name the user gave the instance (e.g., Amazon_Linux-1GB-Ohio-1). public let name: String? /// The type of resource (usually Instance). public let resourceType: ResourceType? @@ -1012,7 +761,7 @@ extension Lightsail { public let blueprintId: String? /// The region name and availability zone where the instance is located. public let location: ResourceLocation? - /// The Amazon Resource Name (ARN) of the instance (e.g., arn:aws:lightsail:us-east-1:123456789101:Instance/244ad76f-8aad-4741-809f-12345EXAMPLE). + /// The Amazon Resource Name (ARN) of the instance (e.g., arn:aws:lightsail:us-east-2:123456789101:Instance/244ad76f-8aad-4741-809f-12345EXAMPLE). public let arn: String? /// Information about the public ports and monthly data transfer rates for the instance. public let networking: InstanceNetworking? @@ -1060,86 +809,8 @@ extension Lightsail { } } - public struct Domain: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "name", required: false, type: .string), - AWSShapeMember(label: "location", required: false, type: .structure), - AWSShapeMember(label: "resourceType", required: false, type: .enum), - AWSShapeMember(label: "domainEntries", required: false, type: .list), - AWSShapeMember(label: "createdAt", required: false, type: .timestamp), - AWSShapeMember(label: "supportCode", required: false, type: .string), - AWSShapeMember(label: "arn", required: false, type: .string) - ] - /// The name of the domain. - public let name: String? - /// The AWS Region and Availability Zones where the domain recordset was created. - public let location: ResourceLocation? - /// The resource type. - public let resourceType: ResourceType? - /// An array of key-value pairs containing information about the domain entries. - public let domainEntries: [DomainEntry]? - /// The date when the domain recordset was created. - public let createdAt: TimeStamp? - /// The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily. - public let supportCode: String? - /// The Amazon Resource Name (ARN) of the domain recordset (e.g., arn:aws:lightsail:global:123456789101:Domain/824cede0-abc7-4f84-8dbc-12345EXAMPLE). - public let arn: String? - - public init(name: String? = nil, location: ResourceLocation? = nil, resourceType: ResourceType? = nil, domainEntries: [DomainEntry]? = nil, createdAt: TimeStamp? = nil, supportCode: String? = nil, arn: String? = nil) { - self.name = name - self.location = location - self.resourceType = resourceType - self.domainEntries = domainEntries - self.createdAt = createdAt - self.supportCode = supportCode - self.arn = arn - } - - private enum CodingKeys: String, CodingKey { - case name = "name" - case location = "location" - case resourceType = "resourceType" - case domainEntries = "domainEntries" - case createdAt = "createdAt" - case supportCode = "supportCode" - case arn = "arn" - } - } - - public struct GetStaticIpResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "staticIp", required: false, type: .structure) - ] - /// An array of key-value pairs containing information about the requested static IP. - public let staticIp: StaticIp? - - public init(staticIp: StaticIp? = nil) { - self.staticIp = staticIp - } - - private enum CodingKeys: String, CodingKey { - case staticIp = "staticIp" - } - } - - public struct DetachStaticIpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "staticIpName", required: true, type: .string) - ] - /// The name of the static IP to detach from the instance. - public let staticIpName: String - - public init(staticIpName: String) { - self.staticIpName = staticIpName - } - - private enum CodingKeys: String, CodingKey { - case staticIpName = "staticIpName" - } - } - public struct GetActiveNamesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextPageToken", required: false, type: .string), AWSShapeMember(label: "activeNames", required: false, type: .list) ] @@ -1160,7 +831,7 @@ extension Lightsail { } public struct DeleteInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceName", required: true, type: .string) ] /// The name of the instance to delete. @@ -1176,7 +847,7 @@ extension Lightsail { } public struct GetOperationsForResourceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextPageCount", required: false, type: .string), AWSShapeMember(label: "operations", required: false, type: .list), AWSShapeMember(label: "nextPageToken", required: false, type: .string) @@ -1201,6 +872,28 @@ extension Lightsail { } } + public struct DetachDiskResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An object describing the API operations. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public enum PortAccessType: String, CustomStringConvertible, Codable { + case `public` = "Public" + case `private` = "Private" + public var description: String { return self.rawValue } + } + public enum InstanceMetricName: String, CustomStringConvertible, Codable { case cpuutilization = "CPUUtilization" case networkin = "NetworkIn" @@ -1211,14 +904,9 @@ extension Lightsail { public var description: String { return self.rawValue } } - public enum PortAccessType: String, CustomStringConvertible, Codable { - case `public` = "Public" - case `private` = "Private" - public var description: String { return self.rawValue } - } - public struct Disk: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "state", required: false, type: .enum), AWSShapeMember(label: "isAttached", required: false, type: .boolean), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "resourceType", required: false, type: .enum), @@ -1234,11 +922,13 @@ extension Lightsail { AWSShapeMember(label: "gbInUse", required: false, type: .integer), AWSShapeMember(label: "iops", required: false, type: .integer) ] + /// Describes the status of the disk. + public let state: DiskState? /// A Boolean value indicating whether the disk is attached. public let isAttached: Bool? - /// The name of the disk. + /// The unique name of the disk. public let name: String? - /// The resource type of the disk. + /// The Lightsail resource type (e.g., Disk). public let resourceType: ResourceType? /// The date when the disk was created. public let createdAt: TimeStamp? @@ -1246,7 +936,7 @@ extension Lightsail { public let supportCode: String? /// A Boolean value indicating whether this disk is a system disk (has an operating system loaded on it). public let isSystemDisk: Bool? - /// The attachment state of the disk. + /// (Deprecated) The attachment state of the disk. In releases prior to November 14, 2017, this parameter returned attached for system disks in the API response. It is now deprecated, but still included in the response. Use isAttached instead. public let attachmentState: String? /// The Amazon Resource Name (ARN) of the disk. public let arn: String? @@ -1254,16 +944,17 @@ extension Lightsail { public let attachedTo: String? /// The size of the disk in GB. public let sizeInGb: Int32? - /// The region and Availability Zone where the disk is located. + /// The AWS Region and Availability Zone where the disk is located. public let location: ResourceLocation? /// The disk path. public let path: String? - /// The number of GB in use by the disk. + /// (Deprecated) The number of GB in use by the disk. In releases prior to November 14, 2017, this parameter was not included in the API response. It is now deprecated. public let gbInUse: Int32? /// The input/output operations per second (IOPS) of the disk. public let iops: Int32? - public init(isAttached: Bool? = nil, name: String? = nil, resourceType: ResourceType? = nil, createdAt: TimeStamp? = nil, supportCode: String? = nil, isSystemDisk: Bool? = nil, attachmentState: String? = nil, arn: String? = nil, attachedTo: String? = nil, sizeInGb: Int32? = nil, location: ResourceLocation? = nil, path: String? = nil, gbInUse: Int32? = nil, iops: Int32? = nil) { + public init(state: DiskState? = nil, isAttached: Bool? = nil, name: String? = nil, resourceType: ResourceType? = nil, createdAt: TimeStamp? = nil, supportCode: String? = nil, isSystemDisk: Bool? = nil, attachmentState: String? = nil, arn: String? = nil, attachedTo: String? = nil, sizeInGb: Int32? = nil, location: ResourceLocation? = nil, path: String? = nil, gbInUse: Int32? = nil, iops: Int32? = nil) { + self.state = state self.isAttached = isAttached self.name = name self.resourceType = resourceType @@ -1281,6 +972,7 @@ extension Lightsail { } private enum CodingKeys: String, CodingKey { + case state = "state" case isAttached = "isAttached" case name = "name" case resourceType = "resourceType" @@ -1298,8 +990,34 @@ extension Lightsail { } } + public struct DeleteLoadBalancerTlsCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "force", required: false, type: .boolean), + AWSShapeMember(label: "certificateName", required: true, type: .string), + AWSShapeMember(label: "loadBalancerName", required: true, type: .string) + ] + /// When true, forces the deletion of a TLS/SSL certificate. + public let force: Bool? + /// The TLS/SSL certificate name. + public let certificateName: String + /// The load balancer name. + public let loadBalancerName: String + + public init(force: Bool? = nil, certificateName: String, loadBalancerName: String) { + self.force = force + self.certificateName = certificateName + self.loadBalancerName = loadBalancerName + } + + private enum CodingKeys: String, CodingKey { + case force = "force" + case certificateName = "certificateName" + case loadBalancerName = "loadBalancerName" + } + } + public struct GetDomainsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pageToken", required: false, type: .string) ] /// A token used for advancing to the next page of results from your get domains request. @@ -1314,11 +1032,11 @@ extension Lightsail { } } - public struct UpdateDomainEntryResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DeleteLoadBalancerResult: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operations", required: false, type: .list) ] - /// An array of key-value pairs containing information about the request operation. + /// An object describing the API operations. public let operations: [Operation]? public init(operations: [Operation]? = nil) { @@ -1330,31 +1048,53 @@ extension Lightsail { } } - public struct GetKeyPairsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "pageToken", required: false, type: .string) + public struct LoadBalancerTlsCertificateSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "isAttached", required: false, type: .boolean) ] - /// A token used for advancing to the next page of results from your get key pairs request. - public let pageToken: String? + /// The name of the TLS/SSL certificate. + public let name: String? + /// When true, the TLS/SSL certificate is attached to the Lightsail load balancer. + public let isAttached: Bool? - public init(pageToken: String? = nil) { - self.pageToken = pageToken + public init(name: String? = nil, isAttached: Bool? = nil) { + self.name = name + self.isAttached = isAttached } private enum CodingKeys: String, CodingKey { - case pageToken = "pageToken" + case name = "name" + case isAttached = "isAttached" + } + } + + public struct UpdateDomainEntryResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An array of key-value pairs containing information about the request operation. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" } } public struct DomainEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "options", required: false, type: .map), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "target", required: false, type: .string), AWSShapeMember(label: "id", required: false, type: .string), + AWSShapeMember(label: "isAlias", required: false, type: .boolean), AWSShapeMember(label: "type", required: false, type: .string) ] - /// The options for the domain entry. + /// (Deprecated) The options for the domain entry. In releases prior to November 29, 2017, this parameter was not included in the API response. It is now deprecated. public let options: [String: String]? /// The name of the domain. public let name: String? @@ -1362,14 +1102,17 @@ extension Lightsail { public let target: String? /// The ID of the domain recordset entry. public let id: String? + /// When true, specifies whether the domain entry is an alias used by the Lightsail load balancer. + public let isAlias: Bool? /// The type of domain entry (e.g., SOA or NS). public let `type`: String? - public init(options: [String: String]? = nil, name: String? = nil, target: String? = nil, id: String? = nil, type: String? = nil) { + public init(options: [String: String]? = nil, name: String? = nil, target: String? = nil, id: String? = nil, isAlias: Bool? = nil, type: String? = nil) { self.options = options self.name = name self.target = target self.id = id + self.isAlias = isAlias self.`type` = `type` } @@ -1378,12 +1121,99 @@ extension Lightsail { case name = "name" case target = "target" case id = "id" + case isAlias = "isAlias" case `type` = "type" } } + public struct LoadBalancer: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "state", required: false, type: .enum), + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "resourceType", required: false, type: .enum), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "instancePort", required: false, type: .integer), + AWSShapeMember(label: "supportCode", required: false, type: .string), + AWSShapeMember(label: "dnsName", required: false, type: .string), + AWSShapeMember(label: "arn", required: false, type: .string), + AWSShapeMember(label: "configurationOptions", required: false, type: .map), + AWSShapeMember(label: "healthCheckPath", required: false, type: .string), + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "protocol", required: false, type: .enum), + AWSShapeMember(label: "instanceHealthSummary", required: false, type: .list), + AWSShapeMember(label: "publicPorts", required: false, type: .list), + AWSShapeMember(label: "tlsCertificateSummaries", required: false, type: .list) + ] + /// The status of your load balancer. Valid values are below. + public let state: LoadBalancerState? + /// The name of the load balancer (e.g., my-load-balancer). + public let name: String? + /// The resource type (e.g., LoadBalancer. + public let resourceType: ResourceType? + /// The date when your load balancer was created. + public let createdAt: TimeStamp? + /// The instance port where the load balancer is listening. + public let instancePort: Int32? + /// The support code. Include this code in your email to support when you have questions about your Lightsail load balancer. This code enables our support team to look up your Lightsail information more easily. + public let supportCode: String? + /// The DNS name of your Lightsail load balancer. + public let dnsName: String? + /// The Amazon Resource Name (ARN) of the load balancer. + public let arn: String? + /// A string to string map of the configuration options for your load balancer. Valid values are listed below. + public let configurationOptions: [LoadBalancerAttributeName: String]? + /// The path you specified to perform your health checks. If no path is specified, the load balancer tries to make a request to the default (root) page. + public let healthCheckPath: String? + /// The AWS Region and Availability Zone where your load balancer was created (e.g., us-east-2a). + public let location: ResourceLocation? + /// The protocol you have enabled for your load balancer. Valid values are below. + public let `protocol`: LoadBalancerProtocol? + /// An array of InstanceHealthSummary objects describing the health of the load balancer. + public let instanceHealthSummary: [InstanceHealthSummary]? + /// An array of public port settings for your load balancer. + public let publicPorts: [Int32]? + /// An array of LoadBalancerTlsCertificateSummary objects that provide additional information about the TLS/SSL certificates. + public let tlsCertificateSummaries: [LoadBalancerTlsCertificateSummary]? + + public init(state: LoadBalancerState? = nil, name: String? = nil, resourceType: ResourceType? = nil, createdAt: TimeStamp? = nil, instancePort: Int32? = nil, supportCode: String? = nil, dnsName: String? = nil, arn: String? = nil, configurationOptions: [LoadBalancerAttributeName: String]? = nil, healthCheckPath: String? = nil, location: ResourceLocation? = nil, protocol: LoadBalancerProtocol? = nil, instanceHealthSummary: [InstanceHealthSummary]? = nil, publicPorts: [Int32]? = nil, tlsCertificateSummaries: [LoadBalancerTlsCertificateSummary]? = nil) { + self.state = state + self.name = name + self.resourceType = resourceType + self.createdAt = createdAt + self.instancePort = instancePort + self.supportCode = supportCode + self.dnsName = dnsName + self.arn = arn + self.configurationOptions = configurationOptions + self.healthCheckPath = healthCheckPath + self.location = location + self.`protocol` = `protocol` + self.instanceHealthSummary = instanceHealthSummary + self.publicPorts = publicPorts + self.tlsCertificateSummaries = tlsCertificateSummaries + } + + private enum CodingKeys: String, CodingKey { + case state = "state" + case name = "name" + case resourceType = "resourceType" + case createdAt = "createdAt" + case instancePort = "instancePort" + case supportCode = "supportCode" + case dnsName = "dnsName" + case arn = "arn" + case configurationOptions = "configurationOptions" + case healthCheckPath = "healthCheckPath" + case location = "location" + case `protocol` = "protocol" + case instanceHealthSummary = "instanceHealthSummary" + case publicPorts = "publicPorts" + case tlsCertificateSummaries = "tlsCertificateSummaries" + } + } + public struct DownloadDefaultKeyPairResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "privateKeyBase64", required: false, type: .string), AWSShapeMember(label: "publicKeyBase64", required: false, type: .string) ] @@ -1403,47 +1233,27 @@ extension Lightsail { } } - public struct CreateInstancesFromSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operations", required: false, type: .list) - ] - /// An array of key-value pairs containing information about the results of your create instances from snapshot request. - public let operations: [Operation]? - - public init(operations: [Operation]? = nil) { - self.operations = operations - } - - private enum CodingKeys: String, CodingKey { - case operations = "operations" - } - } - - public struct AvailabilityZone: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "state", required: false, type: .string), - AWSShapeMember(label: "zoneName", required: false, type: .string) + public struct CreateDomainEntryRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "domainEntry", required: true, type: .structure), + AWSShapeMember(label: "domainName", required: true, type: .string) ] - /// The state of the Availability Zone. - public let state: String? - /// The name of the Availability Zone. The format is us-east-1a (case-sensitive). - public let zoneName: String? + /// An array of key-value pairs containing information about the domain entry request. + public let domainEntry: DomainEntry + /// The domain name (e.g., example.com) for which you want to create the domain entry. + public let domainName: String - public init(state: String? = nil, zoneName: String? = nil) { - self.state = state - self.zoneName = zoneName + public init(domainEntry: DomainEntry, domainName: String) { + self.domainEntry = domainEntry + self.domainName = domainName } private enum CodingKeys: String, CodingKey { - case state = "state" - case zoneName = "zoneName" + case domainEntry = "domainEntry" + case domainName = "domainName" } } - public struct IsVpcPeeredRequest: AWSShape { - - } - public enum MetricUnit: String, CustomStringConvertible, Codable { case seconds = "Seconds" case microseconds = "Microseconds" @@ -1475,36 +1285,15 @@ extension Lightsail { public var description: String { return self.rawValue } } - public struct CreateDomainEntryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "domainEntry", required: true, type: .structure), - AWSShapeMember(label: "domainName", required: true, type: .string) + public struct CreateInstanceSnapshotRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instanceSnapshotName", required: true, type: .string), + AWSShapeMember(label: "instanceName", required: true, type: .string) ] - /// An array of key-value pairs containing information about the domain entry request. - public let domainEntry: DomainEntry - /// The domain name (e.g., example.com) for which you want to create the domain entry. - public let domainName: String - - public init(domainEntry: DomainEntry, domainName: String) { - self.domainEntry = domainEntry - self.domainName = domainName - } - - private enum CodingKeys: String, CodingKey { - case domainEntry = "domainEntry" - case domainName = "domainName" - } - } - - public struct CreateInstanceSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instanceSnapshotName", required: true, type: .string), - AWSShapeMember(label: "instanceName", required: true, type: .string) - ] - /// The name for your new snapshot. - public let instanceSnapshotName: String - /// The Lightsail instance on which to base your snapshot. - public let instanceName: String + /// The name for your new snapshot. + public let instanceSnapshotName: String + /// The Lightsail instance on which to base your snapshot. + public let instanceName: String public init(instanceSnapshotName: String, instanceName: String) { self.instanceSnapshotName = instanceSnapshotName @@ -1517,11 +1306,11 @@ extension Lightsail { } } - public struct StopInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct AttachInstancesToLoadBalancerResult: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operations", required: false, type: .list) ] - /// An array of key-value pairs containing information about the request operation. + /// An object representing the API operations. public let operations: [Operation]? public init(operations: [Operation]? = nil) { @@ -1533,59 +1322,24 @@ extension Lightsail { } } - public struct GetInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextPageToken", required: false, type: .string), - AWSShapeMember(label: "instances", required: false, type: .list) - ] - /// A token used for advancing to the next page of results from your get instances request. - public let nextPageToken: String? - /// An array of key-value pairs containing information about your instances. - public let instances: [Instance]? - - public init(nextPageToken: String? = nil, instances: [Instance]? = nil) { - self.nextPageToken = nextPageToken - self.instances = instances - } - - private enum CodingKeys: String, CodingKey { - case nextPageToken = "nextPageToken" - case instances = "instances" - } - } - - public enum MetricStatistic: String, CustomStringConvertible, Codable { - case minimum = "Minimum" - case maximum = "Maximum" - case sum = "Sum" - case average = "Average" - case samplecount = "SampleCount" - public var description: String { return self.rawValue } - } - - public struct InstanceState: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "name", required: false, type: .string), - AWSShapeMember(label: "code", required: false, type: .integer) + public struct GetDiskSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "diskSnapshot", required: false, type: .structure) ] - /// The state of the instance (e.g., running or pending). - public let name: String? - /// The status code for the instance. - public let code: Int32? + /// An object containing information about the disk snapshot. + public let diskSnapshot: DiskSnapshot? - public init(name: String? = nil, code: Int32? = nil) { - self.name = name - self.code = code + public init(diskSnapshot: DiskSnapshot? = nil) { + self.diskSnapshot = diskSnapshot } private enum CodingKeys: String, CodingKey { - case name = "name" - case code = "code" + case diskSnapshot = "diskSnapshot" } } public struct PeerVpcResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operation", required: false, type: .structure) ] /// An array of key-value pairs containing information about the request operation. @@ -1601,7 +1355,7 @@ extension Lightsail { } public struct GetInstanceSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceSnapshotName", required: true, type: .string) ] /// The name of the snapshot for which you are requesting information. @@ -1616,72 +1370,29 @@ extension Lightsail { } } - public struct AllocateStaticIpResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operations", required: false, type: .list) - ] - /// An array of key-value pairs containing information about the static IP address you allocated. - public let operations: [Operation]? - - public init(operations: [Operation]? = nil) { - self.operations = operations - } - - private enum CodingKeys: String, CodingKey { - case operations = "operations" - } - } - - public struct DeleteKeyPairResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operation", required: false, type: .structure) - ] - /// An array of key-value pairs containing information about the results of your delete key pair request. - public let operation: Operation? - - public init(operation: Operation? = nil) { - self.operation = operation - } - - private enum CodingKeys: String, CodingKey { - case operation = "operation" - } - } - - public struct GetKeyPairResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "keyPair", required: false, type: .structure) - ] - /// An array of key-value pairs containing information about the key pair. - public let keyPair: KeyPair? - - public init(keyPair: KeyPair? = nil) { - self.keyPair = keyPair - } - - private enum CodingKeys: String, CodingKey { - case keyPair = "keyPair" - } - } - - public struct GetRegionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "includeAvailabilityZones", required: false, type: .boolean) + public struct ResourceLocation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "regionName", required: false, type: .enum), + AWSShapeMember(label: "availabilityZone", required: false, type: .string) ] - /// A Boolean value indicating whether to also include Availability Zones in your get regions request. Availability Zones are indicated with a letter: e.g., us-east-1a. - public let includeAvailabilityZones: Bool? + /// The AWS Region name. + public let regionName: RegionName? + /// The Availability Zone. Follows the format us-east-2a (case-sensitive). + public let availabilityZone: String? - public init(includeAvailabilityZones: Bool? = nil) { - self.includeAvailabilityZones = includeAvailabilityZones + public init(regionName: RegionName? = nil, availabilityZone: String? = nil) { + self.regionName = regionName + self.availabilityZone = availabilityZone } private enum CodingKeys: String, CodingKey { - case includeAvailabilityZones = "includeAvailabilityZones" + case regionName = "regionName" + case availabilityZone = "availabilityZone" } } public struct PutInstancePublicPortsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "portInfos", required: true, type: .list), AWSShapeMember(label: "instanceName", required: true, type: .string) ] @@ -1701,27 +1412,11 @@ extension Lightsail { } } - public struct GetInstanceAccessDetailsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "accessDetails", required: false, type: .structure) - ] - /// An array of key-value pairs containing information about a get instance access request. - public let accessDetails: InstanceAccessDetails? - - public init(accessDetails: InstanceAccessDetails? = nil) { - self.accessDetails = accessDetails - } - - private enum CodingKeys: String, CodingKey { - case accessDetails = "accessDetails" - } - } - - public struct AttachStaticIpResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct UpdateLoadBalancerAttributeResult: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operations", required: false, type: .list) ] - /// An array of key-value pairs containing information about your API operations. + /// An object describing the API operations. public let operations: [Operation]? public init(operations: [Operation]? = nil) { @@ -1733,66 +1428,50 @@ extension Lightsail { } } - public struct PortInfo: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "protocol", required: false, type: .enum), - AWSShapeMember(label: "fromPort", required: false, type: .integer), - AWSShapeMember(label: "toPort", required: false, type: .integer) - ] - /// The protocol. - public let `protocol`: NetworkProtocol? - /// The first port in the range. - public let fromPort: Int32? - /// The last port in the range. - public let toPort: Int32? - - public init(protocol: NetworkProtocol? = nil, fromPort: Int32? = nil, toPort: Int32? = nil) { - self.`protocol` = `protocol` - self.fromPort = fromPort - self.toPort = toPort - } - - private enum CodingKeys: String, CodingKey { - case `protocol` = "protocol" - case fromPort = "fromPort" - case toPort = "toPort" - } - } - - public struct GetActiveNamesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "pageToken", required: false, type: .string) + public struct InstanceHealthSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instanceHealthReason", required: false, type: .enum), + AWSShapeMember(label: "instanceHealth", required: false, type: .enum), + AWSShapeMember(label: "instanceName", required: false, type: .string) ] - /// A token used for paginating results from your get active names request. - public let pageToken: String? + /// More information about the instance health. Valid values are below. + public let instanceHealthReason: InstanceHealthReason? + /// Describes the overall instance health. Valid values are below. + public let instanceHealth: InstanceHealthState? + /// The name of the Lightsail instance for which you are requesting health check data. + public let instanceName: String? - public init(pageToken: String? = nil) { - self.pageToken = pageToken + public init(instanceHealthReason: InstanceHealthReason? = nil, instanceHealth: InstanceHealthState? = nil, instanceName: String? = nil) { + self.instanceHealthReason = instanceHealthReason + self.instanceHealth = instanceHealth + self.instanceName = instanceName } private enum CodingKeys: String, CodingKey { - case pageToken = "pageToken" + case instanceHealthReason = "instanceHealthReason" + case instanceHealth = "instanceHealth" + case instanceName = "instanceName" } } - public struct RebootInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instanceName", required: true, type: .string) + public struct AttachStaticIpResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) ] - /// The name of the instance to reboot. - public let instanceName: String + /// An array of key-value pairs containing information about your API operations. + public let operations: [Operation]? - public init(instanceName: String) { - self.instanceName = instanceName + public init(operations: [Operation]? = nil) { + self.operations = operations } private enum CodingKeys: String, CodingKey { - case instanceName = "instanceName" + case operations = "operations" } } public struct MetricDatapoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "sampleCount", required: false, type: .double), AWSShapeMember(label: "unit", required: false, type: .enum), AWSShapeMember(label: "average", required: false, type: .double), @@ -1837,75 +1516,85 @@ extension Lightsail { } } - public struct GetInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "pageToken", required: false, type: .string) + public struct CreateDiskSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) ] - /// A token used for advancing to the next page of results from your get instances request. - public let pageToken: String? + /// An object describing the API operations. + public let operations: [Operation]? - public init(pageToken: String? = nil) { - self.pageToken = pageToken + public init(operations: [Operation]? = nil) { + self.operations = operations } private enum CodingKeys: String, CodingKey { - case pageToken = "pageToken" + case operations = "operations" } } - public struct InstanceNetworking: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ports", required: false, type: .list), - AWSShapeMember(label: "monthlyTransfer", required: false, type: .structure) + public struct GetLoadBalancerTlsCertificatesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "tlsCertificates", required: false, type: .list) ] - /// An array of key-value pairs containing information about the ports on the instance. - public let ports: [InstancePortInfo]? - /// The amount of data in GB allocated for monthly data transfers. - public let monthlyTransfer: MonthlyTransfer? + /// An array of LoadBalancerTlsCertificate objects describing your TLS/SSL certificates. + public let tlsCertificates: [LoadBalancerTlsCertificate]? - public init(ports: [InstancePortInfo]? = nil, monthlyTransfer: MonthlyTransfer? = nil) { - self.ports = ports - self.monthlyTransfer = monthlyTransfer + public init(tlsCertificates: [LoadBalancerTlsCertificate]? = nil) { + self.tlsCertificates = tlsCertificates } private enum CodingKeys: String, CodingKey { - case ports = "ports" - case monthlyTransfer = "monthlyTransfer" + case tlsCertificates = "tlsCertificates" } } - public enum InstanceSnapshotState: String, CustomStringConvertible, Codable { - case pending = "pending" - case error = "error" - case available = "available" - public var description: String { return self.rawValue } - } + public struct DeleteDomainEntryRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "domainEntry", required: true, type: .structure), + AWSShapeMember(label: "domainName", required: true, type: .string) + ] + /// An array of key-value pairs containing information about your domain entries. + public let domainEntry: DomainEntry + /// The name of the domain entry to delete. + public let domainName: String - public struct DownloadDefaultKeyPairRequest: AWSShape { + public init(domainEntry: DomainEntry, domainName: String) { + self.domainEntry = domainEntry + self.domainName = domainName + } + private enum CodingKeys: String, CodingKey { + case domainEntry = "domainEntry" + case domainName = "domainName" + } } - public struct PutInstancePublicPortsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operation", required: false, type: .structure) + public struct GetOperationsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextPageToken", required: false, type: .string), + AWSShapeMember(label: "operations", required: false, type: .list) ] - /// Describes metadata about the operation you just executed. - public let operation: Operation? + /// A token used for advancing to the next page of results from your get operations request. + public let nextPageToken: String? + /// An array of key-value pairs containing information about the results of your get operations request. + public let operations: [Operation]? - public init(operation: Operation? = nil) { - self.operation = operation + public init(nextPageToken: String? = nil, operations: [Operation]? = nil) { + self.nextPageToken = nextPageToken + self.operations = operations } private enum CodingKeys: String, CodingKey { - case operation = "operation" + case nextPageToken = "nextPageToken" + case operations = "operations" } } - public struct GetInstanceSnapshotsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct GetLoadBalancersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pageToken", required: false, type: .string) ] - /// A token used for advancing to the next page of results from your get instance snapshots request. + /// A token used for paginating the results from your GetLoadBalancers request. public let pageToken: String? public init(pageToken: String? = nil) { @@ -1917,51 +1606,1971 @@ extension Lightsail { } } - public struct GetInstanceSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instanceSnapshot", required: false, type: .structure) + public enum OperationType: String, CustomStringConvertible, Codable { + case deleteinstance = "DeleteInstance" + case createinstance = "CreateInstance" + case stopinstance = "StopInstance" + case startinstance = "StartInstance" + case rebootinstance = "RebootInstance" + case openinstancepublicports = "OpenInstancePublicPorts" + case putinstancepublicports = "PutInstancePublicPorts" + case closeinstancepublicports = "CloseInstancePublicPorts" + case allocatestaticip = "AllocateStaticIp" + case releasestaticip = "ReleaseStaticIp" + case attachstaticip = "AttachStaticIp" + case detachstaticip = "DetachStaticIp" + case updatedomainentry = "UpdateDomainEntry" + case deletedomainentry = "DeleteDomainEntry" + case createdomain = "CreateDomain" + case deletedomain = "DeleteDomain" + case createinstancesnapshot = "CreateInstanceSnapshot" + case deleteinstancesnapshot = "DeleteInstanceSnapshot" + case createinstancesfromsnapshot = "CreateInstancesFromSnapshot" + case createloadbalancer = "CreateLoadBalancer" + case deleteloadbalancer = "DeleteLoadBalancer" + case attachinstancestoloadbalancer = "AttachInstancesToLoadBalancer" + case detachinstancesfromloadbalancer = "DetachInstancesFromLoadBalancer" + case updateloadbalancerattribute = "UpdateLoadBalancerAttribute" + case createloadbalancertlscertificate = "CreateLoadBalancerTlsCertificate" + case deleteloadbalancertlscertificate = "DeleteLoadBalancerTlsCertificate" + case attachloadbalancertlscertificate = "AttachLoadBalancerTlsCertificate" + case createdisk = "CreateDisk" + case deletedisk = "DeleteDisk" + case attachdisk = "AttachDisk" + case detachdisk = "DetachDisk" + case createdisksnapshot = "CreateDiskSnapshot" + case deletedisksnapshot = "DeleteDiskSnapshot" + case creatediskfromsnapshot = "CreateDiskFromSnapshot" + public var description: String { return self.rawValue } + } + + public struct ReleaseStaticIpResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An array of key-value pairs containing information about the request operation. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public struct AttachDiskResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An object describing the API operations. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public struct GetBlueprintsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pageToken", required: false, type: .string), + AWSShapeMember(label: "includeInactive", required: false, type: .boolean) + ] + /// A token used for advancing to the next page of results from your get blueprints request. + public let pageToken: String? + /// A Boolean value indicating whether to include inactive results in your request. + public let includeInactive: Bool? + + public init(pageToken: String? = nil, includeInactive: Bool? = nil) { + self.pageToken = pageToken + self.includeInactive = includeInactive + } + + private enum CodingKeys: String, CodingKey { + case pageToken = "pageToken" + case includeInactive = "includeInactive" + } + } + + public struct UpdateLoadBalancerAttributeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "attributeValue", required: true, type: .string), + AWSShapeMember(label: "loadBalancerName", required: true, type: .string), + AWSShapeMember(label: "attributeName", required: true, type: .enum) + ] + /// The value that you want to specify for the attribute name. + public let attributeValue: String + /// The name of the load balancer that you want to modify. + public let loadBalancerName: String + /// The name of the attribute you want to update. Valid values are below. + public let attributeName: LoadBalancerAttributeName + + public init(attributeValue: String, loadBalancerName: String, attributeName: LoadBalancerAttributeName) { + self.attributeValue = attributeValue + self.loadBalancerName = loadBalancerName + self.attributeName = attributeName + } + + private enum CodingKeys: String, CodingKey { + case attributeValue = "attributeValue" + case loadBalancerName = "loadBalancerName" + case attributeName = "attributeName" + } + } + + public struct LoadBalancerTlsCertificateDomainValidationRecord: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "validationStatus", required: false, type: .enum), + AWSShapeMember(label: "value", required: false, type: .string), + AWSShapeMember(label: "domainName", required: false, type: .string), + AWSShapeMember(label: "type", required: false, type: .string) + ] + /// A fully qualified domain name in the certificate. For example, example.com. + public let name: String? + /// The validation status. Valid values are listed below. + public let validationStatus: LoadBalancerTlsCertificateDomainStatus? + /// The value for that type. + public let value: String? + /// The domain name against which your TLS/SSL certificate was validated. + public let domainName: String? + /// The type of validation record. For example, CNAME for domain validation. + public let `type`: String? + + public init(name: String? = nil, validationStatus: LoadBalancerTlsCertificateDomainStatus? = nil, value: String? = nil, domainName: String? = nil, type: String? = nil) { + self.name = name + self.validationStatus = validationStatus + self.value = value + self.domainName = domainName + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case validationStatus = "validationStatus" + case value = "value" + case domainName = "domainName" + case `type` = "type" + } + } + + public struct GetInstancePortStatesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instanceName", required: true, type: .string) + ] + /// The name of the instance. + public let instanceName: String + + public init(instanceName: String) { + self.instanceName = instanceName + } + + private enum CodingKeys: String, CodingKey { + case instanceName = "instanceName" + } + } + + public struct LoadBalancerTlsCertificateRenewalSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "renewalStatus", required: false, type: .enum), + AWSShapeMember(label: "domainValidationOptions", required: false, type: .list) + ] + /// The status of Lightsail's managed renewal of the certificate. Valid values are listed below. + public let renewalStatus: LoadBalancerTlsCertificateRenewalStatus? + /// Contains information about the validation of each domain name in the certificate, as it pertains to Lightsail's managed renewal. This is different from the initial validation that occurs as a result of the RequestCertificate request. + public let domainValidationOptions: [LoadBalancerTlsCertificateDomainValidationOption]? + + public init(renewalStatus: LoadBalancerTlsCertificateRenewalStatus? = nil, domainValidationOptions: [LoadBalancerTlsCertificateDomainValidationOption]? = nil) { + self.renewalStatus = renewalStatus + self.domainValidationOptions = domainValidationOptions + } + + private enum CodingKeys: String, CodingKey { + case renewalStatus = "renewalStatus" + case domainValidationOptions = "domainValidationOptions" + } + } + + public struct GetInstanceStateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instanceName", required: true, type: .string) + ] + /// The name of the instance to get state information about. + public let instanceName: String + + public init(instanceName: String) { + self.instanceName = instanceName + } + + private enum CodingKeys: String, CodingKey { + case instanceName = "instanceName" + } + } + + public struct PasswordData: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ciphertext", required: false, type: .string), + AWSShapeMember(label: "keyPairName", required: false, type: .string) + ] + /// The encrypted password. Ciphertext will be an empty string if access to your new instance is not ready yet. When you create an instance, it can take up to 15 minutes for the instance to be ready. If you use the default key pair (LightsailDefaultKeyPair), the decrypted password will be available in the password field. If you are using a custom key pair, you need to use your own means of decryption. If you change the Administrator password on the instance, Lightsail will continue to return the original ciphertext value. When accessing the instance using RDP, you need to manually enter the Administrator password after changing it from the default. + public let ciphertext: String? + /// The name of the key pair that you used when creating your instance. If no key pair name was specified when creating the instance, Lightsail uses the default key pair (LightsailDefaultKeyPair). If you are using a custom key pair, you need to use your own means of decrypting your password using the ciphertext. Lightsail creates the ciphertext by encrypting your password with the public key part of this key pair. + public let keyPairName: String? + + public init(ciphertext: String? = nil, keyPairName: String? = nil) { + self.ciphertext = ciphertext + self.keyPairName = keyPairName + } + + private enum CodingKeys: String, CodingKey { + case ciphertext = "ciphertext" + case keyPairName = "keyPairName" + } + } + + public struct DeleteInstanceSnapshotRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instanceSnapshotName", required: true, type: .string) + ] + /// The name of the snapshot to delete. + public let instanceSnapshotName: String + + public init(instanceSnapshotName: String) { + self.instanceSnapshotName = instanceSnapshotName + } + + private enum CodingKeys: String, CodingKey { + case instanceSnapshotName = "instanceSnapshotName" + } + } + + public struct Region: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "displayName", required: false, type: .string), + AWSShapeMember(label: "name", required: false, type: .enum), + AWSShapeMember(label: "continentCode", required: false, type: .string), + AWSShapeMember(label: "availabilityZones", required: false, type: .list) + ] + /// The description of the AWS Region (e.g., This region is recommended to serve users in the eastern United States and eastern Canada). + public let description: String? + /// The display name (e.g., Ohio). + public let displayName: String? + /// The region name (e.g., us-east-2). + public let name: RegionName? + /// The continent code (e.g., NA, meaning North America). + public let continentCode: String? + /// The Availability Zones. Follows the format us-east-2a (case-sensitive). + public let availabilityZones: [AvailabilityZone]? + + public init(description: String? = nil, displayName: String? = nil, name: RegionName? = nil, continentCode: String? = nil, availabilityZones: [AvailabilityZone]? = nil) { + self.description = description + self.displayName = displayName + self.name = name + self.continentCode = continentCode + self.availabilityZones = availabilityZones + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case displayName = "displayName" + case name = "name" + case continentCode = "continentCode" + case availabilityZones = "availabilityZones" + } + } + + public struct GetDomainResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "domain", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about your get domain request. + public let domain: Domain? + + public init(domain: Domain? = nil) { + self.domain = domain + } + + private enum CodingKeys: String, CodingKey { + case domain = "domain" + } + } + + public struct DeleteLoadBalancerTlsCertificateResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An object describing the API operations. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public struct CloseInstancePublicPortsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operation", required: false, type: .structure) + ] + /// An array of key-value pairs that contains information about the operation. + public let operation: Operation? + + public init(operation: Operation? = nil) { + self.operation = operation + } + + private enum CodingKeys: String, CodingKey { + case operation = "operation" + } + } + + public struct GetOperationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operation", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the results of your get operation request. + public let operation: Operation? + + public init(operation: Operation? = nil) { + self.operation = operation + } + + private enum CodingKeys: String, CodingKey { + case operation = "operation" + } + } + + public struct AllocateStaticIpRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "staticIpName", required: true, type: .string) + ] + /// The name of the static IP address. + public let staticIpName: String + + public init(staticIpName: String) { + self.staticIpName = staticIpName + } + + private enum CodingKeys: String, CodingKey { + case staticIpName = "staticIpName" + } + } + + public struct MonthlyTransfer: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "gbPerMonthAllocated", required: false, type: .integer) + ] + /// The amount allocated per month (in GB). + public let gbPerMonthAllocated: Int32? + + public init(gbPerMonthAllocated: Int32? = nil) { + self.gbPerMonthAllocated = gbPerMonthAllocated + } + + private enum CodingKeys: String, CodingKey { + case gbPerMonthAllocated = "gbPerMonthAllocated" + } + } + + public enum PortState: String, CustomStringConvertible, Codable { + case open = "open" + case closed = "closed" + public var description: String { return self.rawValue } + } + + public struct OpenInstancePublicPortsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operation", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the request operation. + public let operation: Operation? + + public init(operation: Operation? = nil) { + self.operation = operation + } + + private enum CodingKeys: String, CodingKey { + case operation = "operation" + } + } + + public struct GetStaticIpsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextPageToken", required: false, type: .string), + AWSShapeMember(label: "staticIps", required: false, type: .list) + ] + /// A token used for advancing to the next page of results from your get static IPs request. + public let nextPageToken: String? + /// An array of key-value pairs containing information about your get static IPs request. + public let staticIps: [StaticIp]? + + public init(nextPageToken: String? = nil, staticIps: [StaticIp]? = nil) { + self.nextPageToken = nextPageToken + self.staticIps = staticIps + } + + private enum CodingKeys: String, CodingKey { + case nextPageToken = "nextPageToken" + case staticIps = "staticIps" + } + } + + public struct GetInstanceMetricDataRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instanceName", required: true, type: .string), + AWSShapeMember(label: "unit", required: true, type: .enum), + AWSShapeMember(label: "statistics", required: true, type: .list), + AWSShapeMember(label: "endTime", required: true, type: .timestamp), + AWSShapeMember(label: "period", required: true, type: .integer), + AWSShapeMember(label: "startTime", required: true, type: .timestamp), + AWSShapeMember(label: "metricName", required: true, type: .enum) + ] + /// The name of the instance for which you want to get metrics data. + public let instanceName: String + /// The unit. The list of valid values is below. + public let unit: MetricUnit + /// The instance statistics. + public let statistics: [MetricStatistic] + /// The end time of the time period. + public let endTime: TimeStamp + /// The time period for which you are requesting data. + public let period: Int32 + /// The start time of the time period. + public let startTime: TimeStamp + /// The metric name to get data about. + public let metricName: InstanceMetricName + + public init(instanceName: String, unit: MetricUnit, statistics: [MetricStatistic], endTime: TimeStamp, period: Int32, startTime: TimeStamp, metricName: InstanceMetricName) { + self.instanceName = instanceName + self.unit = unit + self.statistics = statistics + self.endTime = endTime + self.period = period + self.startTime = startTime + self.metricName = metricName + } + + private enum CodingKeys: String, CodingKey { + case instanceName = "instanceName" + case unit = "unit" + case statistics = "statistics" + case endTime = "endTime" + case period = "period" + case startTime = "startTime" + case metricName = "metricName" + } + } + + public struct StopInstanceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "force", required: false, type: .boolean), + AWSShapeMember(label: "instanceName", required: true, type: .string) + ] + /// When set to True, forces a Lightsail instance that is stuck in a stopping state to stop. Only use the force parameter if your instance is stuck in the stopping state. In any other state, your instance should stop normally without adding this parameter to your API request. + public let force: Bool? + /// The name of the instance (a virtual private server) to stop. + public let instanceName: String + + public init(force: Bool? = nil, instanceName: String) { + self.force = force + self.instanceName = instanceName + } + + private enum CodingKeys: String, CodingKey { + case force = "force" + case instanceName = "instanceName" + } + } + + public struct GetLoadBalancersResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextPageToken", required: false, type: .string), + AWSShapeMember(label: "loadBalancers", required: false, type: .list) + ] + /// A token used for advancing to the next page of results from your GetLoadBalancers request. + public let nextPageToken: String? + /// An array of LoadBalancer objects describing your load balancers. + public let loadBalancers: [LoadBalancer]? + + public init(nextPageToken: String? = nil, loadBalancers: [LoadBalancer]? = nil) { + self.nextPageToken = nextPageToken + self.loadBalancers = loadBalancers + } + + private enum CodingKeys: String, CodingKey { + case nextPageToken = "nextPageToken" + case loadBalancers = "loadBalancers" + } + } + + public struct GetDiskSnapshotRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "diskSnapshotName", required: true, type: .string) + ] + /// The name of the disk snapshot (e.g., my-disk-snapshot). + public let diskSnapshotName: String + + public init(diskSnapshotName: String) { + self.diskSnapshotName = diskSnapshotName + } + + private enum CodingKeys: String, CodingKey { + case diskSnapshotName = "diskSnapshotName" + } + } + + public struct GetOperationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pageToken", required: false, type: .string) + ] + /// A token used for advancing to the next page of results from your get operations request. + public let pageToken: String? + + public init(pageToken: String? = nil) { + self.pageToken = pageToken + } + + private enum CodingKeys: String, CodingKey { + case pageToken = "pageToken" + } + } + + public struct GetInstanceStateResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "state", required: false, type: .structure) + ] + /// The state of the instance. + public let state: InstanceState? + + public init(state: InstanceState? = nil) { + self.state = state + } + + private enum CodingKeys: String, CodingKey { + case state = "state" + } + } + + public struct CreateDiskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "availabilityZone", required: true, type: .string), + AWSShapeMember(label: "sizeInGb", required: true, type: .integer), + AWSShapeMember(label: "diskName", required: true, type: .string) + ] + /// The Availability Zone where you want to create the disk (e.g., us-east-2a). Choose the same Availability Zone as the Lightsail instance where you want to create the disk. Use the GetRegions operation to list the Availability Zones where Lightsail is currently available. + public let availabilityZone: String + /// The size of the disk in GB (e.g., 32). + public let sizeInGb: Int32 + /// The unique Lightsail disk name (e.g., my-disk). + public let diskName: String + + public init(availabilityZone: String, sizeInGb: Int32, diskName: String) { + self.availabilityZone = availabilityZone + self.sizeInGb = sizeInGb + self.diskName = diskName + } + + private enum CodingKeys: String, CodingKey { + case availabilityZone = "availabilityZone" + case sizeInGb = "sizeInGb" + case diskName = "diskName" + } + } + + public enum LoadBalancerTlsCertificateRenewalStatus: String, CustomStringConvertible, Codable { + case pendingAutoRenewal = "PENDING_AUTO_RENEWAL" + case pendingValidation = "PENDING_VALIDATION" + case success = "SUCCESS" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + + public struct GetDomainsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "domains", required: false, type: .list), + AWSShapeMember(label: "nextPageToken", required: false, type: .string) + ] + /// An array of key-value pairs containing information about each of the domain entries in the user's account. + public let domains: [Domain]? + /// A token used for advancing to the next page of results from your get active names request. + public let nextPageToken: String? + + public init(domains: [Domain]? = nil, nextPageToken: String? = nil) { + self.domains = domains + self.nextPageToken = nextPageToken + } + + private enum CodingKeys: String, CodingKey { + case domains = "domains" + case nextPageToken = "nextPageToken" + } + } + + public struct CreateDomainResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operation", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the domain resource you created. + public let operation: Operation? + + public init(operation: Operation? = nil) { + self.operation = operation + } + + private enum CodingKeys: String, CodingKey { + case operation = "operation" + } + } + + public enum OperationStatus: String, CustomStringConvertible, Codable { + case notstarted = "NotStarted" + case started = "Started" + case failed = "Failed" + case completed = "Completed" + public var description: String { return self.rawValue } + } + + public struct CreateDiskFromSnapshotRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "availabilityZone", required: true, type: .string), + AWSShapeMember(label: "sizeInGb", required: true, type: .integer), + AWSShapeMember(label: "diskName", required: true, type: .string), + AWSShapeMember(label: "diskSnapshotName", required: true, type: .string) + ] + /// The Availability Zone where you want to create the disk (e.g., us-east-2a). Choose the same Availability Zone as the Lightsail instance where you want to create the disk. Use the GetRegions operation to list the Availability Zones where Lightsail is currently available. + public let availabilityZone: String + /// The size of the disk in GB (e.g., 32). + public let sizeInGb: Int32 + /// The unique Lightsail disk name (e.g., my-disk). + public let diskName: String + /// The name of the disk snapshot (e.g., my-snapshot) from which to create the new storage disk. + public let diskSnapshotName: String + + public init(availabilityZone: String, sizeInGb: Int32, diskName: String, diskSnapshotName: String) { + self.availabilityZone = availabilityZone + self.sizeInGb = sizeInGb + self.diskName = diskName + self.diskSnapshotName = diskSnapshotName + } + + private enum CodingKeys: String, CodingKey { + case availabilityZone = "availabilityZone" + case sizeInGb = "sizeInGb" + case diskName = "diskName" + case diskSnapshotName = "diskSnapshotName" + } + } + + public struct CreateKeyPairResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "keyPair", required: false, type: .structure), + AWSShapeMember(label: "publicKeyBase64", required: false, type: .string), + AWSShapeMember(label: "privateKeyBase64", required: false, type: .string), + AWSShapeMember(label: "operation", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the new key pair you just created. + public let keyPair: KeyPair? + /// A base64-encoded public key of the ssh-rsa type. + public let publicKeyBase64: String? + /// A base64-encoded RSA private key. + public let privateKeyBase64: String? + /// An array of key-value pairs containing information about the results of your create key pair request. + public let operation: Operation? + + public init(keyPair: KeyPair? = nil, publicKeyBase64: String? = nil, privateKeyBase64: String? = nil, operation: Operation? = nil) { + self.keyPair = keyPair + self.publicKeyBase64 = publicKeyBase64 + self.privateKeyBase64 = privateKeyBase64 + self.operation = operation + } + + private enum CodingKeys: String, CodingKey { + case keyPair = "keyPair" + case publicKeyBase64 = "publicKeyBase64" + case privateKeyBase64 = "privateKeyBase64" + case operation = "operation" + } + } + + public struct DeleteDomainResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operation", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the results of your delete domain request. + public let operation: Operation? + + public init(operation: Operation? = nil) { + self.operation = operation + } + + private enum CodingKeys: String, CodingKey { + case operation = "operation" + } + } + + public struct AttachStaticIpRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "staticIpName", required: true, type: .string), + AWSShapeMember(label: "instanceName", required: true, type: .string) + ] + /// The name of the static IP. + public let staticIpName: String + /// The instance name to which you want to attach the static IP address. + public let instanceName: String + + public init(staticIpName: String, instanceName: String) { + self.staticIpName = staticIpName + self.instanceName = instanceName + } + + private enum CodingKeys: String, CodingKey { + case staticIpName = "staticIpName" + case instanceName = "instanceName" + } + } + + public struct InstanceSnapshot: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "state", required: false, type: .enum), + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "resourceType", required: false, type: .enum), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "fromBundleId", required: false, type: .string), + AWSShapeMember(label: "fromAttachedDisks", required: false, type: .list), + AWSShapeMember(label: "supportCode", required: false, type: .string), + AWSShapeMember(label: "fromInstanceArn", required: false, type: .string), + AWSShapeMember(label: "arn", required: false, type: .string), + AWSShapeMember(label: "fromBlueprintId", required: false, type: .string), + AWSShapeMember(label: "sizeInGb", required: false, type: .integer), + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "fromInstanceName", required: false, type: .string), + AWSShapeMember(label: "progress", required: false, type: .string) + ] + /// The state the snapshot is in. + public let state: InstanceSnapshotState? + /// The name of the snapshot. + public let name: String? + /// The type of resource (usually InstanceSnapshot). + public let resourceType: ResourceType? + /// The timestamp when the snapshot was created (e.g., 1479907467.024). + public let createdAt: TimeStamp? + /// The bundle ID from which you created the snapshot (e.g., micro_1_0). + public let fromBundleId: String? + /// An array of disk objects containing information about all block storage disks. + public let fromAttachedDisks: [Disk]? + /// The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily. + public let supportCode: String? + /// The Amazon Resource Name (ARN) of the instance from which the snapshot was created (e.g., arn:aws:lightsail:us-east-2:123456789101:Instance/64b8404c-ccb1-430b-8daf-12345EXAMPLE). + public let fromInstanceArn: String? + /// The Amazon Resource Name (ARN) of the snapshot (e.g., arn:aws:lightsail:us-east-2:123456789101:InstanceSnapshot/d23b5706-3322-4d83-81e5-12345EXAMPLE). + public let arn: String? + /// The blueprint ID from which you created the snapshot (e.g., os_debian_8_3). A blueprint is a virtual private server (or instance) image used to create instances quickly. + public let fromBlueprintId: String? + /// The size in GB of the SSD. + public let sizeInGb: Int32? + /// The region name and availability zone where you created the snapshot. + public let location: ResourceLocation? + /// The instance from which the snapshot was created. + public let fromInstanceName: String? + /// The progress of the snapshot. + public let progress: String? + + public init(state: InstanceSnapshotState? = nil, name: String? = nil, resourceType: ResourceType? = nil, createdAt: TimeStamp? = nil, fromBundleId: String? = nil, fromAttachedDisks: [Disk]? = nil, supportCode: String? = nil, fromInstanceArn: String? = nil, arn: String? = nil, fromBlueprintId: String? = nil, sizeInGb: Int32? = nil, location: ResourceLocation? = nil, fromInstanceName: String? = nil, progress: String? = nil) { + self.state = state + self.name = name + self.resourceType = resourceType + self.createdAt = createdAt + self.fromBundleId = fromBundleId + self.fromAttachedDisks = fromAttachedDisks + self.supportCode = supportCode + self.fromInstanceArn = fromInstanceArn + self.arn = arn + self.fromBlueprintId = fromBlueprintId + self.sizeInGb = sizeInGb + self.location = location + self.fromInstanceName = fromInstanceName + self.progress = progress + } + + private enum CodingKeys: String, CodingKey { + case state = "state" + case name = "name" + case resourceType = "resourceType" + case createdAt = "createdAt" + case fromBundleId = "fromBundleId" + case fromAttachedDisks = "fromAttachedDisks" + case supportCode = "supportCode" + case fromInstanceArn = "fromInstanceArn" + case arn = "arn" + case fromBlueprintId = "fromBlueprintId" + case sizeInGb = "sizeInGb" + case location = "location" + case fromInstanceName = "fromInstanceName" + case progress = "progress" + } + } + + public struct GetLoadBalancerTlsCertificatesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "loadBalancerName", required: true, type: .string) + ] + /// The name of the load balancer where you stored your TLS/SSL certificate. + public let loadBalancerName: String + + public init(loadBalancerName: String) { + self.loadBalancerName = loadBalancerName + } + + private enum CodingKeys: String, CodingKey { + case loadBalancerName = "loadBalancerName" + } + } + + public struct GetBundlesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pageToken", required: false, type: .string), + AWSShapeMember(label: "includeInactive", required: false, type: .boolean) + ] + /// A token used for advancing to the next page of results from your get bundles request. + public let pageToken: String? + /// A Boolean value that indicates whether to include inactive bundle results in your request. + public let includeInactive: Bool? + + public init(pageToken: String? = nil, includeInactive: Bool? = nil) { + self.pageToken = pageToken + self.includeInactive = includeInactive + } + + private enum CodingKeys: String, CodingKey { + case pageToken = "pageToken" + case includeInactive = "includeInactive" + } + } + + public enum LoadBalancerTlsCertificateStatus: String, CustomStringConvertible, Codable { + case pendingValidation = "PENDING_VALIDATION" + case issued = "ISSUED" + case inactive = "INACTIVE" + case expired = "EXPIRED" + case validationTimedOut = "VALIDATION_TIMED_OUT" + case revoked = "REVOKED" + case failed = "FAILED" + case unknown = "UNKNOWN" + public var description: String { return self.rawValue } + } + + public struct GetInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instance", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the specified instance. + public let instance: Instance? + + public init(instance: Instance? = nil) { + self.instance = instance + } + + private enum CodingKeys: String, CodingKey { + case instance = "instance" + } + } + + public struct GetDisksResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextPageToken", required: false, type: .string), + AWSShapeMember(label: "disks", required: false, type: .list) + ] + /// A token used for advancing to the next page of results from your GetDisks request. + public let nextPageToken: String? + /// An array of objects containing information about all block storage disks. + public let disks: [Disk]? + + public init(nextPageToken: String? = nil, disks: [Disk]? = nil) { + self.nextPageToken = nextPageToken + self.disks = disks + } + + private enum CodingKeys: String, CodingKey { + case nextPageToken = "nextPageToken" + case disks = "disks" + } + } + + public struct GetLoadBalancerMetricDataRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "unit", required: true, type: .enum), + AWSShapeMember(label: "statistics", required: true, type: .list), + AWSShapeMember(label: "endTime", required: true, type: .timestamp), + AWSShapeMember(label: "loadBalancerName", required: true, type: .string), + AWSShapeMember(label: "startTime", required: true, type: .timestamp), + AWSShapeMember(label: "period", required: true, type: .integer), + AWSShapeMember(label: "metricName", required: true, type: .enum) + ] + /// The unit for the time period request. Valid values are listed below. + public let unit: MetricUnit + /// An array of statistics that you want to request metrics for. Valid values are listed below. + public let statistics: [MetricStatistic] + /// The end time of the period. + public let endTime: TimeStamp + /// The name of the load balancer. + public let loadBalancerName: String + /// The start time of the period. + public let startTime: TimeStamp + /// The time period duration for your health data request. + public let period: Int32 + /// The metric about which you want to return information. Valid values are listed below, along with the most useful statistics to include in your request. ClientTLSNegotiationErrorCount - The number of TLS connections initiated by the client that did not establish a session with the load balancer. Possible causes include a mismatch of ciphers or protocols. Statistics: The most useful statistic is Sum. HealthyHostCount - The number of target instances that are considered healthy. Statistics: The most useful statistic are Average, Minimum, and Maximum. UnhealthyHostCount - The number of target instances that are considered unhealthy. Statistics: The most useful statistic are Average, Minimum, and Maximum. HTTPCode_LB_4XX_Count - The number of HTTP 4XX client error codes that originate from the load balancer. Client errors are generated when requests are malformed or incomplete. These requests have not been received by the target instance. This count does not include any response codes generated by the target instances. Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1. HTTPCode_LB_5XX_Count - The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes generated by the target instances. Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1. Note that Minimum, Maximum, and Average all return 1. HTTPCode_Instance_2XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer. Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1. HTTPCode_Instance_3XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer. Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1. HTTPCode_Instance_4XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer. Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1. HTTPCode_Instance_5XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer. Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1. InstanceResponseTime - The time elapsed, in seconds, after the request leaves the load balancer until a response from the target instance is received. Statistics: The most useful statistic is Average. RejectedConnectionCount - The number of connections that were rejected because the load balancer had reached its maximum number of connections. Statistics: The most useful statistic is Sum. RequestCount - The number of requests processed over IPv4. This count includes only the requests with a response generated by a target instance of the load balancer. Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1. + public let metricName: LoadBalancerMetricName + + public init(unit: MetricUnit, statistics: [MetricStatistic], endTime: TimeStamp, loadBalancerName: String, startTime: TimeStamp, period: Int32, metricName: LoadBalancerMetricName) { + self.unit = unit + self.statistics = statistics + self.endTime = endTime + self.loadBalancerName = loadBalancerName + self.startTime = startTime + self.period = period + self.metricName = metricName + } + + private enum CodingKeys: String, CodingKey { + case unit = "unit" + case statistics = "statistics" + case endTime = "endTime" + case loadBalancerName = "loadBalancerName" + case startTime = "startTime" + case period = "period" + case metricName = "metricName" + } + } + + public struct DeleteInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An array of key-value pairs containing information about the results of your delete instance request. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public enum RegionName: String, CustomStringConvertible, Codable { + case usEast1 = "us-east-1" + case usEast2 = "us-east-2" + case usWest1 = "us-west-1" + case usWest2 = "us-west-2" + case euWest1 = "eu-west-1" + case euCentral1 = "eu-central-1" + case apSouth1 = "ap-south-1" + case apSoutheast1 = "ap-southeast-1" + case apSoutheast2 = "ap-southeast-2" + case apNortheast1 = "ap-northeast-1" + case apNortheast2 = "ap-northeast-2" + public var description: String { return self.rawValue } + } + + public struct GetInstanceAccessDetailsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "protocol", required: false, type: .enum), + AWSShapeMember(label: "instanceName", required: true, type: .string) + ] + /// The protocol to use to connect to your instance. Defaults to ssh. + public let `protocol`: InstanceAccessProtocol? + /// The name of the instance to access. + public let instanceName: String + + public init(protocol: InstanceAccessProtocol? = nil, instanceName: String) { + self.`protocol` = `protocol` + self.instanceName = instanceName + } + + private enum CodingKeys: String, CodingKey { + case `protocol` = "protocol" + case instanceName = "instanceName" + } + } + + public enum LoadBalancerMetricName: String, CustomStringConvertible, Codable { + case clienttlsnegotiationerrorcount = "ClientTLSNegotiationErrorCount" + case healthyhostcount = "HealthyHostCount" + case unhealthyhostcount = "UnhealthyHostCount" + case httpcodeLb4XxCount = "HTTPCode_LB_4XX_Count" + case httpcodeLb5XxCount = "HTTPCode_LB_5XX_Count" + case httpcodeInstance2XxCount = "HTTPCode_Instance_2XX_Count" + case httpcodeInstance3XxCount = "HTTPCode_Instance_3XX_Count" + case httpcodeInstance4XxCount = "HTTPCode_Instance_4XX_Count" + case httpcodeInstance5XxCount = "HTTPCode_Instance_5XX_Count" + case instanceresponsetime = "InstanceResponseTime" + case rejectedconnectioncount = "RejectedConnectionCount" + case requestcount = "RequestCount" + public var description: String { return self.rawValue } + } + + public struct GetInstanceSnapshotsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextPageToken", required: false, type: .string), + AWSShapeMember(label: "instanceSnapshots", required: false, type: .list) + ] + /// A token used for advancing to the next page of results from your get instance snapshots request. + public let nextPageToken: String? + /// An array of key-value pairs containing information about the results of your get instance snapshots request. + public let instanceSnapshots: [InstanceSnapshot]? + + public init(nextPageToken: String? = nil, instanceSnapshots: [InstanceSnapshot]? = nil) { + self.nextPageToken = nextPageToken + self.instanceSnapshots = instanceSnapshots + } + + private enum CodingKeys: String, CodingKey { + case nextPageToken = "nextPageToken" + case instanceSnapshots = "instanceSnapshots" + } + } + + public struct LoadBalancerTlsCertificateDomainValidationOption: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "domainName", required: false, type: .string), + AWSShapeMember(label: "validationStatus", required: false, type: .enum) + ] + /// A fully qualified domain name in the certificate request. + public let domainName: String? + /// The status of the domain validation. Valid values are listed below. + public let validationStatus: LoadBalancerTlsCertificateDomainStatus? + + public init(domainName: String? = nil, validationStatus: LoadBalancerTlsCertificateDomainStatus? = nil) { + self.domainName = domainName + self.validationStatus = validationStatus + } + + private enum CodingKeys: String, CodingKey { + case domainName = "domainName" + case validationStatus = "validationStatus" + } + } + + public struct KeyPair: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "resourceType", required: false, type: .enum), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "fingerprint", required: false, type: .string), + AWSShapeMember(label: "supportCode", required: false, type: .string), + AWSShapeMember(label: "arn", required: false, type: .string) + ] + /// The friendly name of the SSH key pair. + public let name: String? + /// The region name and Availability Zone where the key pair was created. + public let location: ResourceLocation? + /// The resource type (usually KeyPair). + public let resourceType: ResourceType? + /// The timestamp when the key pair was created (e.g., 1479816991.349). + public let createdAt: TimeStamp? + /// The RSA fingerprint of the key pair. + public let fingerprint: String? + /// The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily. + public let supportCode: String? + /// The Amazon Resource Name (ARN) of the key pair (e.g., arn:aws:lightsail:us-east-2:123456789101:KeyPair/05859e3d-331d-48ba-9034-12345EXAMPLE). + public let arn: String? + + public init(name: String? = nil, location: ResourceLocation? = nil, resourceType: ResourceType? = nil, createdAt: TimeStamp? = nil, fingerprint: String? = nil, supportCode: String? = nil, arn: String? = nil) { + self.name = name + self.location = location + self.resourceType = resourceType + self.createdAt = createdAt + self.fingerprint = fingerprint + self.supportCode = supportCode + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case location = "location" + case resourceType = "resourceType" + case createdAt = "createdAt" + case fingerprint = "fingerprint" + case supportCode = "supportCode" + case arn = "arn" + } + } + + public struct CreateDiskResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An object describing the API operations. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public struct GetStaticIpRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "staticIpName", required: true, type: .string) + ] + /// The name of the static IP in Lightsail. + public let staticIpName: String + + public init(staticIpName: String) { + self.staticIpName = staticIpName + } + + private enum CodingKeys: String, CodingKey { + case staticIpName = "staticIpName" + } + } + + public struct Bundle: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "instanceType", required: false, type: .string), + AWSShapeMember(label: "isActive", required: false, type: .boolean), + AWSShapeMember(label: "power", required: false, type: .integer), + AWSShapeMember(label: "cpuCount", required: false, type: .integer), + AWSShapeMember(label: "ramSizeInGb", required: false, type: .float), + AWSShapeMember(label: "bundleId", required: false, type: .string), + AWSShapeMember(label: "transferPerMonthInGb", required: false, type: .integer), + AWSShapeMember(label: "diskSizeInGb", required: false, type: .integer), + AWSShapeMember(label: "price", required: false, type: .float), + AWSShapeMember(label: "supportedPlatforms", required: false, type: .list) + ] + /// A friendly name for the bundle (e.g., Micro). + public let name: String? + /// The Amazon EC2 instance type (e.g., t2.micro). + public let instanceType: String? + /// A Boolean value indicating whether the bundle is active. + public let isActive: Bool? + /// A numeric value that represents the power of the bundle (e.g., 500). You can use the bundle's power value in conjunction with a blueprint's minimum power value to determine whether the blueprint will run on the bundle. For example, you need a bundle with a power value of 500 or more to create an instance that uses a blueprint with a minimum power value of 500. + public let power: Int32? + /// The number of vCPUs included in the bundle (e.g., 2). + public let cpuCount: Int32? + /// The amount of RAM in GB (e.g., 2.0). + public let ramSizeInGb: Float? + /// The bundle ID (e.g., micro_1_0). + public let bundleId: String? + /// The data transfer rate per month in GB (e.g., 2000). + public let transferPerMonthInGb: Int32? + /// The size of the SSD (e.g., 30). + public let diskSizeInGb: Int32? + /// The price in US dollars (e.g., 5.0). + public let price: Float? + /// The operating system platform (Linux/Unix-based or Windows Server-based) that the bundle supports. You can only launch a WINDOWS bundle on a blueprint that supports the WINDOWS platform. LINUX_UNIX blueprints require a LINUX_UNIX bundle. + public let supportedPlatforms: [InstancePlatform]? + + public init(name: String? = nil, instanceType: String? = nil, isActive: Bool? = nil, power: Int32? = nil, cpuCount: Int32? = nil, ramSizeInGb: Float? = nil, bundleId: String? = nil, transferPerMonthInGb: Int32? = nil, diskSizeInGb: Int32? = nil, price: Float? = nil, supportedPlatforms: [InstancePlatform]? = nil) { + self.name = name + self.instanceType = instanceType + self.isActive = isActive + self.power = power + self.cpuCount = cpuCount + self.ramSizeInGb = ramSizeInGb + self.bundleId = bundleId + self.transferPerMonthInGb = transferPerMonthInGb + self.diskSizeInGb = diskSizeInGb + self.price = price + self.supportedPlatforms = supportedPlatforms + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case instanceType = "instanceType" + case isActive = "isActive" + case power = "power" + case cpuCount = "cpuCount" + case ramSizeInGb = "ramSizeInGb" + case bundleId = "bundleId" + case transferPerMonthInGb = "transferPerMonthInGb" + case diskSizeInGb = "diskSizeInGb" + case price = "price" + case supportedPlatforms = "supportedPlatforms" + } + } + + public struct RebootInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An array of key-value pairs containing information about the request operation. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public enum ResourceType: String, CustomStringConvertible, Codable { + case instance = "Instance" + case staticip = "StaticIp" + case keypair = "KeyPair" + case instancesnapshot = "InstanceSnapshot" + case domain = "Domain" + case peeredvpc = "PeeredVpc" + case loadbalancer = "LoadBalancer" + case loadbalancertlscertificate = "LoadBalancerTlsCertificate" + case disk = "Disk" + case disksnapshot = "DiskSnapshot" + public var description: String { return self.rawValue } + } + + public struct GetLoadBalancerResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "loadBalancer", required: false, type: .structure) + ] + /// An object containing information about your load balancer. + public let loadBalancer: LoadBalancer? + + public init(loadBalancer: LoadBalancer? = nil) { + self.loadBalancer = loadBalancer + } + + private enum CodingKeys: String, CodingKey { + case loadBalancer = "loadBalancer" + } + } + + public struct GetOperationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operationId", required: true, type: .string) + ] + /// A GUID used to identify the operation. + public let operationId: String + + public init(operationId: String) { + self.operationId = operationId + } + + private enum CodingKeys: String, CodingKey { + case operationId = "operationId" + } + } + + public struct GetKeyPairRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "keyPairName", required: true, type: .string) + ] + /// The name of the key pair for which you are requesting information. + public let keyPairName: String + + public init(keyPairName: String) { + self.keyPairName = keyPairName + } + + private enum CodingKeys: String, CodingKey { + case keyPairName = "keyPairName" + } + } + + public struct ReleaseStaticIpRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "staticIpName", required: true, type: .string) + ] + /// The name of the static IP to delete. + public let staticIpName: String + + public init(staticIpName: String) { + self.staticIpName = staticIpName + } + + private enum CodingKeys: String, CodingKey { + case staticIpName = "staticIpName" + } + } + + public struct GetLoadBalancerMetricDataResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "metricData", required: false, type: .list), + AWSShapeMember(label: "metricName", required: false, type: .enum) + ] + /// An array of metric datapoint objects. + public let metricData: [MetricDatapoint]? + /// The metric about which you are receiving information. Valid values are listed below. + public let metricName: LoadBalancerMetricName? + + public init(metricData: [MetricDatapoint]? = nil, metricName: LoadBalancerMetricName? = nil) { + self.metricData = metricData + self.metricName = metricName + } + + private enum CodingKeys: String, CodingKey { + case metricData = "metricData" + case metricName = "metricName" + } + } + + public struct DetachDiskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "diskName", required: true, type: .string) + ] + /// The unique name of the disk you want to detach from your instance (e.g., my-disk). + public let diskName: String + + public init(diskName: String) { + self.diskName = diskName + } + + private enum CodingKeys: String, CodingKey { + case diskName = "diskName" + } + } + + public enum DiskState: String, CustomStringConvertible, Codable { + case pending = "pending" + case error = "error" + case available = "available" + case inUse = "in-use" + case unknown = "unknown" + public var description: String { return self.rawValue } + } + + public struct GetInstanceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instanceName", required: true, type: .string) + ] + /// The name of the instance. + public let instanceName: String + + public init(instanceName: String) { + self.instanceName = instanceName + } + + private enum CodingKeys: String, CodingKey { + case instanceName = "instanceName" + } + } + + public struct CloseInstancePublicPortsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instanceName", required: true, type: .string), + AWSShapeMember(label: "portInfo", required: true, type: .structure) + ] + /// The name of the instance on which you're attempting to close the public ports. + public let instanceName: String + /// Information about the public port you are trying to close. + public let portInfo: PortInfo + + public init(instanceName: String, portInfo: PortInfo) { + self.instanceName = instanceName + self.portInfo = portInfo + } + + private enum CodingKeys: String, CodingKey { + case instanceName = "instanceName" + case portInfo = "portInfo" + } + } + + public struct Domain: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "resourceType", required: false, type: .enum), + AWSShapeMember(label: "domainEntries", required: false, type: .list), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "supportCode", required: false, type: .string), + AWSShapeMember(label: "arn", required: false, type: .string) + ] + /// The name of the domain. + public let name: String? + /// The AWS Region and Availability Zones where the domain recordset was created. + public let location: ResourceLocation? + /// The resource type. + public let resourceType: ResourceType? + /// An array of key-value pairs containing information about the domain entries. + public let domainEntries: [DomainEntry]? + /// The date when the domain recordset was created. + public let createdAt: TimeStamp? + /// The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily. + public let supportCode: String? + /// The Amazon Resource Name (ARN) of the domain recordset (e.g., arn:aws:lightsail:global:123456789101:Domain/824cede0-abc7-4f84-8dbc-12345EXAMPLE). + public let arn: String? + + public init(name: String? = nil, location: ResourceLocation? = nil, resourceType: ResourceType? = nil, domainEntries: [DomainEntry]? = nil, createdAt: TimeStamp? = nil, supportCode: String? = nil, arn: String? = nil) { + self.name = name + self.location = location + self.resourceType = resourceType + self.domainEntries = domainEntries + self.createdAt = createdAt + self.supportCode = supportCode + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case location = "location" + case resourceType = "resourceType" + case domainEntries = "domainEntries" + case createdAt = "createdAt" + case supportCode = "supportCode" + case arn = "arn" + } + } + + public struct GetStaticIpResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "staticIp", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the requested static IP. + public let staticIp: StaticIp? + + public init(staticIp: StaticIp? = nil) { + self.staticIp = staticIp + } + + private enum CodingKeys: String, CodingKey { + case staticIp = "staticIp" + } + } + + public struct AttachDiskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "diskPath", required: true, type: .string), + AWSShapeMember(label: "instanceName", required: true, type: .string), + AWSShapeMember(label: "diskName", required: true, type: .string) + ] + /// The disk path to expose to the instance (e.g., /dev/xvdf). + public let diskPath: String + /// The name of the Lightsail instance where you want to utilize the storage disk. + public let instanceName: String + /// The unique Lightsail disk name (e.g., my-disk). + public let diskName: String + + public init(diskPath: String, instanceName: String, diskName: String) { + self.diskPath = diskPath + self.instanceName = instanceName + self.diskName = diskName + } + + private enum CodingKeys: String, CodingKey { + case diskPath = "diskPath" + case instanceName = "instanceName" + case diskName = "diskName" + } + } + + public struct DetachStaticIpRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "staticIpName", required: true, type: .string) + ] + /// The name of the static IP to detach from the instance. + public let staticIpName: String + + public init(staticIpName: String) { + self.staticIpName = staticIpName + } + + private enum CodingKeys: String, CodingKey { + case staticIpName = "staticIpName" + } + } + + public struct CreateDiskSnapshotRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "diskName", required: true, type: .string), + AWSShapeMember(label: "diskSnapshotName", required: true, type: .string) + ] + /// The unique name of the source disk (e.g., my-source-disk). + public let diskName: String + /// The name of the destination disk snapshot (e.g., my-disk-snapshot) based on the source disk. + public let diskSnapshotName: String + + public init(diskName: String, diskSnapshotName: String) { + self.diskName = diskName + self.diskSnapshotName = diskSnapshotName + } + + private enum CodingKeys: String, CodingKey { + case diskName = "diskName" + case diskSnapshotName = "diskSnapshotName" + } + } + + public enum LoadBalancerTlsCertificateFailureReason: String, CustomStringConvertible, Codable { + case noAvailableContacts = "NO_AVAILABLE_CONTACTS" + case additionalVerificationRequired = "ADDITIONAL_VERIFICATION_REQUIRED" + case domainNotAllowed = "DOMAIN_NOT_ALLOWED" + case invalidPublicDomain = "INVALID_PUBLIC_DOMAIN" + case other = "OTHER" + public var description: String { return self.rawValue } + } + + public enum DiskSnapshotState: String, CustomStringConvertible, Codable { + case pending = "pending" + case completed = "completed" + case error = "error" + case unknown = "unknown" + public var description: String { return self.rawValue } + } + + public struct DeleteDiskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "diskName", required: true, type: .string) + ] + /// The unique name of the disk you want to delete (e.g., my-disk). + public let diskName: String + + public init(diskName: String) { + self.diskName = diskName + } + + private enum CodingKeys: String, CodingKey { + case diskName = "diskName" + } + } + + public enum LoadBalancerProtocol: String, CustomStringConvertible, Codable { + case httpHttps = "HTTP_HTTPS" + case http = "HTTP" + public var description: String { return self.rawValue } + } + + public struct GetKeyPairsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pageToken", required: false, type: .string) + ] + /// A token used for advancing to the next page of results from your get key pairs request. + public let pageToken: String? + + public init(pageToken: String? = nil) { + self.pageToken = pageToken + } + + private enum CodingKeys: String, CodingKey { + case pageToken = "pageToken" + } + } + + public struct GetDisksRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pageToken", required: false, type: .string) + ] + /// A token used for advancing to the next page of results from your GetDisks request. + public let pageToken: String? + + public init(pageToken: String? = nil) { + self.pageToken = pageToken + } + + private enum CodingKeys: String, CodingKey { + case pageToken = "pageToken" + } + } + + public struct CreateInstancesFromSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An array of key-value pairs containing information about the results of your create instances from snapshot request. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public struct AvailabilityZone: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "state", required: false, type: .string), + AWSShapeMember(label: "zoneName", required: false, type: .string) + ] + /// The state of the Availability Zone. + public let state: String? + /// The name of the Availability Zone. The format is us-east-2a (case-sensitive). + public let zoneName: String? + + public init(state: String? = nil, zoneName: String? = nil) { + self.state = state + self.zoneName = zoneName + } + + private enum CodingKeys: String, CodingKey { + case state = "state" + case zoneName = "zoneName" + } + } + + public struct AttachLoadBalancerTlsCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "loadBalancerName", required: true, type: .string), + AWSShapeMember(label: "certificateName", required: true, type: .string) + ] + /// The name of the load balancer to which you want to associate the TLS/SSL certificate. + public let loadBalancerName: String + /// The name of your TLS/SSL certificate. + public let certificateName: String + + public init(loadBalancerName: String, certificateName: String) { + self.loadBalancerName = loadBalancerName + self.certificateName = certificateName + } + + private enum CodingKeys: String, CodingKey { + case loadBalancerName = "loadBalancerName" + case certificateName = "certificateName" + } + } + + public struct IsVpcPeeredRequest: AWSShape { + + } + + public struct StopInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An array of key-value pairs containing information about the request operation. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public struct DetachInstancesFromLoadBalancerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "loadBalancerName", required: true, type: .string), + AWSShapeMember(label: "instanceNames", required: true, type: .list) + ] + /// The name of the Lightsail load balancer. + public let loadBalancerName: String + /// An array of strings containing the names of the instances you want to detach from the load balancer. + public let instanceNames: [String] + + public init(loadBalancerName: String, instanceNames: [String]) { + self.loadBalancerName = loadBalancerName + self.instanceNames = instanceNames + } + + private enum CodingKeys: String, CodingKey { + case loadBalancerName = "loadBalancerName" + case instanceNames = "instanceNames" + } + } + + public struct GetInstancesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextPageToken", required: false, type: .string), + AWSShapeMember(label: "instances", required: false, type: .list) + ] + /// A token used for advancing to the next page of results from your get instances request. + public let nextPageToken: String? + /// An array of key-value pairs containing information about your instances. + public let instances: [Instance]? + + public init(nextPageToken: String? = nil, instances: [Instance]? = nil) { + self.nextPageToken = nextPageToken + self.instances = instances + } + + private enum CodingKeys: String, CodingKey { + case nextPageToken = "nextPageToken" + case instances = "instances" + } + } + + public enum MetricStatistic: String, CustomStringConvertible, Codable { + case minimum = "Minimum" + case maximum = "Maximum" + case sum = "Sum" + case average = "Average" + case samplecount = "SampleCount" + public var description: String { return self.rawValue } + } + + public struct InstanceState: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "code", required: false, type: .integer) + ] + /// The state of the instance (e.g., running or pending). + public let name: String? + /// The status code for the instance. + public let code: Int32? + + public init(name: String? = nil, code: Int32? = nil) { + self.name = name + self.code = code + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case code = "code" + } + } + + public struct GetRegionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "includeAvailabilityZones", required: false, type: .boolean) + ] + /// A Boolean value indicating whether to also include Availability Zones in your get regions request. Availability Zones are indicated with a letter: e.g., us-east-2a. + public let includeAvailabilityZones: Bool? + + public init(includeAvailabilityZones: Bool? = nil) { + self.includeAvailabilityZones = includeAvailabilityZones + } + + private enum CodingKeys: String, CodingKey { + case includeAvailabilityZones = "includeAvailabilityZones" + } + } + + public struct AllocateStaticIpResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An array of key-value pairs containing information about the static IP address you allocated. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public struct DeleteKeyPairResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operation", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the results of your delete key pair request. + public let operation: Operation? + + public init(operation: Operation? = nil) { + self.operation = operation + } + + private enum CodingKeys: String, CodingKey { + case operation = "operation" + } + } + + public struct GetKeyPairResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "keyPair", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the key pair. + public let keyPair: KeyPair? + + public init(keyPair: KeyPair? = nil) { + self.keyPair = keyPair + } + + private enum CodingKeys: String, CodingKey { + case keyPair = "keyPair" + } + } + + public struct GetInstanceAccessDetailsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "accessDetails", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about a get instance access request. + public let accessDetails: InstanceAccessDetails? + + public init(accessDetails: InstanceAccessDetails? = nil) { + self.accessDetails = accessDetails + } + + private enum CodingKeys: String, CodingKey { + case accessDetails = "accessDetails" + } + } + + public struct PortInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "protocol", required: false, type: .enum), + AWSShapeMember(label: "fromPort", required: false, type: .integer), + AWSShapeMember(label: "toPort", required: false, type: .integer) ] - /// An array of key-value pairs containing information about the results of your get instance snapshot request. - public let instanceSnapshot: InstanceSnapshot? + /// The protocol. + public let `protocol`: NetworkProtocol? + /// The first port in the range. + public let fromPort: Int32? + /// The last port in the range. + public let toPort: Int32? - public init(instanceSnapshot: InstanceSnapshot? = nil) { - self.instanceSnapshot = instanceSnapshot + public init(protocol: NetworkProtocol? = nil, fromPort: Int32? = nil, toPort: Int32? = nil) { + self.`protocol` = `protocol` + self.fromPort = fromPort + self.toPort = toPort } private enum CodingKeys: String, CodingKey { - case instanceSnapshot = "instanceSnapshot" + case `protocol` = "protocol" + case fromPort = "fromPort" + case toPort = "toPort" } } - public enum InstanceAccessProtocol: String, CustomStringConvertible, Codable { - case ssh = "ssh" - case rdp = "rdp" + public struct GetActiveNamesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pageToken", required: false, type: .string) + ] + /// A token used for paginating results from your get active names request. + public let pageToken: String? + + public init(pageToken: String? = nil) { + self.pageToken = pageToken + } + + private enum CodingKeys: String, CodingKey { + case pageToken = "pageToken" + } + } + + public struct RebootInstanceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instanceName", required: true, type: .string) + ] + /// The name of the instance to reboot. + public let instanceName: String + + public init(instanceName: String) { + self.instanceName = instanceName + } + + private enum CodingKeys: String, CodingKey { + case instanceName = "instanceName" + } + } + + public struct InstanceNetworking: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ports", required: false, type: .list), + AWSShapeMember(label: "monthlyTransfer", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the ports on the instance. + public let ports: [InstancePortInfo]? + /// The amount of data in GB allocated for monthly data transfers. + public let monthlyTransfer: MonthlyTransfer? + + public init(ports: [InstancePortInfo]? = nil, monthlyTransfer: MonthlyTransfer? = nil) { + self.ports = ports + self.monthlyTransfer = monthlyTransfer + } + + private enum CodingKeys: String, CodingKey { + case ports = "ports" + case monthlyTransfer = "monthlyTransfer" + } + } + + public struct GetInstancesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pageToken", required: false, type: .string) + ] + /// A token used for advancing to the next page of results from your get instances request. + public let pageToken: String? + + public init(pageToken: String? = nil) { + self.pageToken = pageToken + } + + private enum CodingKeys: String, CodingKey { + case pageToken = "pageToken" + } + } + + public struct PutInstancePublicPortsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operation", required: false, type: .structure) + ] + /// Describes metadata about the operation you just executed. + public let operation: Operation? + + public init(operation: Operation? = nil) { + self.operation = operation + } + + private enum CodingKeys: String, CodingKey { + case operation = "operation" + } + } + + public enum InstanceSnapshotState: String, CustomStringConvertible, Codable { + case pending = "pending" + case error = "error" + case available = "available" public var description: String { return self.rawValue } } - public struct DeleteDomainEntryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "domainEntry", required: true, type: .structure), - AWSShapeMember(label: "domainName", required: true, type: .string) + public struct DownloadDefaultKeyPairRequest: AWSShape { + + } + + public enum LoadBalancerTlsCertificateDomainStatus: String, CustomStringConvertible, Codable { + case pendingValidation = "PENDING_VALIDATION" + case failed = "FAILED" + case success = "SUCCESS" + public var description: String { return self.rawValue } + } + + public struct GetInstanceSnapshotsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pageToken", required: false, type: .string) ] - /// An array of key-value pairs containing information about your domain entries. - public let domainEntry: DomainEntry - /// The name of the domain entry to delete. - public let domainName: String + /// A token used for advancing to the next page of results from your get instance snapshots request. + public let pageToken: String? - public init(domainEntry: DomainEntry, domainName: String) { - self.domainEntry = domainEntry - self.domainName = domainName + public init(pageToken: String? = nil) { + self.pageToken = pageToken } private enum CodingKeys: String, CodingKey { - case domainEntry = "domainEntry" - case domainName = "domainName" + case pageToken = "pageToken" + } + } + + public struct GetInstanceSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "instanceSnapshot", required: false, type: .structure) + ] + /// An array of key-value pairs containing information about the results of your get instance snapshot request. + public let instanceSnapshot: InstanceSnapshot? + + public init(instanceSnapshot: InstanceSnapshot? = nil) { + self.instanceSnapshot = instanceSnapshot + } + + private enum CodingKeys: String, CodingKey { + case instanceSnapshot = "instanceSnapshot" } } public struct Operation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operationType", required: false, type: .enum), AWSShapeMember(label: "isTerminal", required: false, type: .boolean), AWSShapeMember(label: "location", required: false, type: .structure), @@ -1997,7 +3606,7 @@ extension Lightsail { public let status: OperationStatus? /// The timestamp when the status was changed (e.g., 1479816991.349). public let statusChangedAt: TimeStamp? - /// Details about the operation (e.g., Debian-1GB-Virginia-1). + /// Details about the operation (e.g., Debian-1GB-Ohio-1). public let operationDetails: String? public init(operationType: OperationType? = nil, isTerminal: Bool? = nil, location: ResourceLocation? = nil, resourceType: ResourceType? = nil, id: String? = nil, errorCode: String? = nil, resourceName: String? = nil, errorDetails: String? = nil, createdAt: TimeStamp? = nil, status: OperationStatus? = nil, statusChangedAt: TimeStamp? = nil, operationDetails: String? = nil) { @@ -2031,50 +3640,30 @@ extension Lightsail { } } - public struct ResourceLocation: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "regionName", required: false, type: .enum), - AWSShapeMember(label: "availabilityZone", required: false, type: .string) - ] - /// The AWS Region name. - public let regionName: RegionName? - /// The Availability Zone. Follows the format us-east-1a (case-sensitive). - public let availabilityZone: String? - - public init(regionName: RegionName? = nil, availabilityZone: String? = nil) { - self.regionName = regionName - self.availabilityZone = availabilityZone - } - - private enum CodingKeys: String, CodingKey { - case regionName = "regionName" - case availabilityZone = "availabilityZone" - } + public enum InstanceAccessProtocol: String, CustomStringConvertible, Codable { + case ssh = "ssh" + case rdp = "rdp" + public var description: String { return self.rawValue } } - public struct GetOperationsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextPageToken", required: false, type: .string), - AWSShapeMember(label: "operations", required: false, type: .list) + public struct CreateKeyPairRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "keyPairName", required: true, type: .string) ] - /// A token used for advancing to the next page of results from your get operations request. - public let nextPageToken: String? - /// An array of key-value pairs containing information about the results of your get operations request. - public let operations: [Operation]? + /// The name for your new key pair. + public let keyPairName: String - public init(nextPageToken: String? = nil, operations: [Operation]? = nil) { - self.nextPageToken = nextPageToken - self.operations = operations + public init(keyPairName: String) { + self.keyPairName = keyPairName } private enum CodingKeys: String, CodingKey { - case nextPageToken = "nextPageToken" - case operations = "operations" + case keyPairName = "keyPairName" } } public struct GetBlueprintsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextPageToken", required: false, type: .string), AWSShapeMember(label: "blueprints", required: false, type: .list) ] @@ -2094,79 +3683,55 @@ extension Lightsail { } } - public struct CreateKeyPairRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "keyPairName", required: true, type: .string) - ] - /// The name for your new key pair. - public let keyPairName: String - - public init(keyPairName: String) { - self.keyPairName = keyPairName - } - - private enum CodingKeys: String, CodingKey { - case keyPairName = "keyPairName" - } - } - - public struct ReleaseStaticIpResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operations", required: false, type: .list) + public struct CreateLoadBalancerTlsCertificateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "certificateName", required: true, type: .string), + AWSShapeMember(label: "certificateAlternativeNames", required: false, type: .list), + AWSShapeMember(label: "certificateDomainName", required: true, type: .string), + AWSShapeMember(label: "loadBalancerName", required: true, type: .string) ] - /// An array of key-value pairs containing information about the request operation. - public let operations: [Operation]? - - public init(operations: [Operation]? = nil) { - self.operations = operations + /// The TLS/SSL certificate name. + public let certificateName: String + /// An array of strings listing alternative domain names for your TLS/SSL certificate. + public let certificateAlternativeNames: [String]? + /// The domain name (e.g., example.com) for your TLS/SSL certificate. + public let certificateDomainName: String + /// The load balancer name where you want to create the TLS/SSL certificate. + public let loadBalancerName: String + + public init(certificateName: String, certificateAlternativeNames: [String]? = nil, certificateDomainName: String, loadBalancerName: String) { + self.certificateName = certificateName + self.certificateAlternativeNames = certificateAlternativeNames + self.certificateDomainName = certificateDomainName + self.loadBalancerName = loadBalancerName } private enum CodingKeys: String, CodingKey { - case operations = "operations" + case certificateName = "certificateName" + case certificateAlternativeNames = "certificateAlternativeNames" + case certificateDomainName = "certificateDomainName" + case loadBalancerName = "loadBalancerName" } } public struct DetachStaticIpResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operations", required: false, type: .list) ] /// An array of key-value pairs containing information about the results of your detach static IP request. public let operations: [Operation]? - - public init(operations: [Operation]? = nil) { - self.operations = operations - } - - private enum CodingKeys: String, CodingKey { - case operations = "operations" - } - } - - public enum OperationType: String, CustomStringConvertible, Codable { - case deleteinstance = "DeleteInstance" - case createinstance = "CreateInstance" - case stopinstance = "StopInstance" - case startinstance = "StartInstance" - case rebootinstance = "RebootInstance" - case openinstancepublicports = "OpenInstancePublicPorts" - case putinstancepublicports = "PutInstancePublicPorts" - case closeinstancepublicports = "CloseInstancePublicPorts" - case allocatestaticip = "AllocateStaticIp" - case releasestaticip = "ReleaseStaticIp" - case attachstaticip = "AttachStaticIp" - case detachstaticip = "DetachStaticIp" - case updatedomainentry = "UpdateDomainEntry" - case deletedomainentry = "DeleteDomainEntry" - case createdomain = "CreateDomain" - case deletedomain = "DeleteDomain" - case createinstancesnapshot = "CreateInstanceSnapshot" - case deleteinstancesnapshot = "DeleteInstanceSnapshot" - case createinstancesfromsnapshot = "CreateInstancesFromSnapshot" - public var description: String { return self.rawValue } + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } } public struct ImportKeyPairRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "keyPairName", required: true, type: .string), AWSShapeMember(label: "publicKeyBase64", required: true, type: .string) ] @@ -2186,29 +3751,8 @@ extension Lightsail { } } - public struct GetBlueprintsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "pageToken", required: false, type: .string), - AWSShapeMember(label: "includeInactive", required: false, type: .boolean) - ] - /// A token used for advancing to the next page of results from your get blueprints request. - public let pageToken: String? - /// A Boolean value indicating whether to include inactive results in your request. - public let includeInactive: Bool? - - public init(pageToken: String? = nil, includeInactive: Bool? = nil) { - self.pageToken = pageToken - self.includeInactive = includeInactive - } - - private enum CodingKeys: String, CodingKey { - case pageToken = "pageToken" - case includeInactive = "includeInactive" - } - } - public struct DeleteKeyPairRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "keyPairName", required: true, type: .string) ] /// The name of the key pair to delete. @@ -2224,7 +3768,7 @@ extension Lightsail { } public struct InstancePortInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accessFrom", required: false, type: .string), AWSShapeMember(label: "fromPort", required: false, type: .integer), AWSShapeMember(label: "commonName", required: false, type: .string), @@ -2270,7 +3814,7 @@ extension Lightsail { } public struct GetDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainName", required: true, type: .string) ] /// The domain name for which your want to return information about. @@ -2285,56 +3829,18 @@ extension Lightsail { } } - public struct GetInstancePortStatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instanceName", required: true, type: .string) - ] - /// The name of the instance. - public let instanceName: String - - public init(instanceName: String) { - self.instanceName = instanceName - } - - private enum CodingKeys: String, CodingKey { - case instanceName = "instanceName" - } - } - - public struct GetInstanceStateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instanceName", required: true, type: .string) - ] - /// The name of the instance to get state information about. - public let instanceName: String - - public init(instanceName: String) { - self.instanceName = instanceName - } - - private enum CodingKeys: String, CodingKey { - case instanceName = "instanceName" - } - } - - public struct DeleteInstanceSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operations", required: false, type: .list) - ] - /// An array of key-value pairs containing information about the results of your delete instance snapshot request. - public let operations: [Operation]? - - public init(operations: [Operation]? = nil) { - self.operations = operations - } - - private enum CodingKeys: String, CodingKey { - case operations = "operations" - } + public enum InstanceHealthState: String, CustomStringConvertible, Codable { + case initial = "initial" + case healthy = "healthy" + case unhealthy = "unhealthy" + case unused = "unused" + case draining = "draining" + case unavailable = "unavailable" + public var description: String { return self.rawValue } } public struct CreateInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "availabilityZone", required: true, type: .string), AWSShapeMember(label: "keyPairName", required: false, type: .string), AWSShapeMember(label: "customImageName", required: false, type: .string), @@ -2343,7 +3849,7 @@ extension Lightsail { AWSShapeMember(label: "userData", required: false, type: .string), AWSShapeMember(label: "blueprintId", required: true, type: .string) ] - /// The Availability Zone in which to create your instance. Use the following format: us-east-1a (case sensitive). You can get a list of availability zones by using the get regions operation. Be sure to add the include availability zones parameter to your request. + /// The Availability Zone in which to create your instance. Use the following format: us-east-2a (case sensitive). You can get a list of availability zones by using the get regions operation. Be sure to add the include availability zones parameter to your request. public let availabilityZone: String /// The name of your key pair. public let keyPairName: String? @@ -2353,7 +3859,7 @@ extension Lightsail { public let instanceNames: [String] /// The bundle of specification information for your virtual private server (or instance), including the pricing plan (e.g., micro_1_0). public let bundleId: String - /// A launch script you can create that configures a server with additional user data. For example, you might want to run apt-get –y update. Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use yum, Debian and Ubuntu use apt-get, and FreeBSD uses pkg. For a complete list, see the Dev Guide. + /// A launch script you can create that configures a server with additional user data. For example, you might want to run apt-get -y update. Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use yum, Debian and Ubuntu use apt-get, and FreeBSD uses pkg. For a complete list, see the Dev Guide. public let userData: String? /// The ID for a virtual private server image (e.g., app_wordpress_4_4 or app_lamp_7_0). Use the get blueprints operation to return a list of available images (or blueprints). public let blueprintId: String @@ -2379,28 +3885,63 @@ extension Lightsail { } } + public struct DeleteInstanceSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) + ] + /// An array of key-value pairs containing information about the results of your delete instance snapshot request. + public let operations: [Operation]? + + public init(operations: [Operation]? = nil) { + self.operations = operations + } + + private enum CodingKeys: String, CodingKey { + case operations = "operations" + } + } + + public struct GetDiskSnapshotsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "pageToken", required: false, type: .string) + ] + /// A token used for advancing to the next page of results from your GetDiskSnapshots request. + public let pageToken: String? + + public init(pageToken: String? = nil) { + self.pageToken = pageToken + } + + private enum CodingKeys: String, CodingKey { + case pageToken = "pageToken" + } + } + public struct Blueprint: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "type", required: false, type: .enum), - AWSShapeMember(label: "isActive", required: false, type: .boolean), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "blueprintId", required: false, type: .string), AWSShapeMember(label: "productUrl", required: false, type: .string), AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "isActive", required: false, type: .boolean), + AWSShapeMember(label: "platform", required: false, type: .enum), AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "version", required: false, type: .string), AWSShapeMember(label: "licenseUrl", required: false, type: .string), AWSShapeMember(label: "versionCode", required: false, type: .string), + AWSShapeMember(label: "type", required: false, type: .enum), AWSShapeMember(label: "group", required: false, type: .string), - AWSShapeMember(label: "minPower", required: false, type: .integer), - AWSShapeMember(label: "blueprintId", required: false, type: .string) + AWSShapeMember(label: "minPower", required: false, type: .integer) ] - /// The type of the blueprint (e.g., os or app). - public let `type`: BlueprintType? - /// A Boolean value indicating whether the blueprint is active. When you update your blueprints, you will inactivate old blueprints and keep the most recent versions active. - public let isActive: Bool? + /// The ID for the virtual private server image (e.g., app_wordpress_4_4 or app_lamp_7_0). + public let blueprintId: String? /// The product URL to learn more about the image or blueprint. public let productUrl: String? /// The friendly name of the blueprint (e.g., Amazon Linux). public let name: String? + /// A Boolean value indicating whether the blueprint is active. When you update your blueprints, you will inactivate old blueprints and keep the most recent versions active. + public let isActive: Bool? + /// The operating system platform (either Linux/Unix-based or Windows Server-based) of the blueprint. + public let platform: InstancePlatform? /// The description of the blueprint. public let description: String? /// The version number of the operating system, application, or stack (e.g., 2016.03.0). @@ -2409,128 +3950,41 @@ extension Lightsail { public let licenseUrl: String? /// The version code. public let versionCode: String? + /// The type of the blueprint (e.g., os or app). + public let `type`: BlueprintType? /// The group name of the blueprint (e.g., amazon-linux). public let group: String? - /// The minimum machine size required to run this blueprint. 0 indicates that the blueprint runs on all instances. + /// The minimum bundle power required to run this blueprint. For example, you need a bundle with a power value of 500 or more to create an instance that uses a blueprint with a minimum power value of 500. 0 indicates that the blueprint runs on all instance sizes. public let minPower: Int32? - /// The ID for the virtual private server image (e.g., app_wordpress_4_4 or app_lamp_7_0). - public let blueprintId: String? - public init(type: BlueprintType? = nil, isActive: Bool? = nil, productUrl: String? = nil, name: String? = nil, description: String? = nil, version: String? = nil, licenseUrl: String? = nil, versionCode: String? = nil, group: String? = nil, minPower: Int32? = nil, blueprintId: String? = nil) { - self.`type` = `type` - self.isActive = isActive + public init(blueprintId: String? = nil, productUrl: String? = nil, name: String? = nil, isActive: Bool? = nil, platform: InstancePlatform? = nil, description: String? = nil, version: String? = nil, licenseUrl: String? = nil, versionCode: String? = nil, type: BlueprintType? = nil, group: String? = nil, minPower: Int32? = nil) { + self.blueprintId = blueprintId self.productUrl = productUrl self.name = name + self.isActive = isActive + self.platform = platform self.description = description self.version = version self.licenseUrl = licenseUrl self.versionCode = versionCode + self.`type` = `type` self.group = group self.minPower = minPower - self.blueprintId = blueprintId } private enum CodingKeys: String, CodingKey { - case `type` = "type" - case isActive = "isActive" + case blueprintId = "blueprintId" case productUrl = "productUrl" case name = "name" + case isActive = "isActive" + case platform = "platform" case description = "description" case version = "version" case licenseUrl = "licenseUrl" case versionCode = "versionCode" + case `type` = "type" case group = "group" case minPower = "minPower" - case blueprintId = "blueprintId" - } - } - - public struct DeleteInstanceSnapshotRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instanceSnapshotName", required: true, type: .string) - ] - /// The name of the snapshot to delete. - public let instanceSnapshotName: String - - public init(instanceSnapshotName: String) { - self.instanceSnapshotName = instanceSnapshotName - } - - private enum CodingKeys: String, CodingKey { - case instanceSnapshotName = "instanceSnapshotName" - } - } - - public struct GetBundlesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextPageToken", required: false, type: .string), - AWSShapeMember(label: "bundles", required: false, type: .list) - ] - /// A token used for advancing to the next page of results from your get active names request. - public let nextPageToken: String? - /// An array of key-value pairs that contains information about the available bundles. - public let bundles: [Bundle]? - - public init(nextPageToken: String? = nil, bundles: [Bundle]? = nil) { - self.nextPageToken = nextPageToken - self.bundles = bundles - } - - private enum CodingKeys: String, CodingKey { - case nextPageToken = "nextPageToken" - case bundles = "bundles" - } - } - - public struct Region: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "description", required: false, type: .string), - AWSShapeMember(label: "displayName", required: false, type: .string), - AWSShapeMember(label: "name", required: false, type: .enum), - AWSShapeMember(label: "continentCode", required: false, type: .string), - AWSShapeMember(label: "availabilityZones", required: false, type: .list) - ] - /// The description of the AWS Region (e.g., This region is recommended to serve users in the eastern United States and eastern Canada). - public let description: String? - /// The display name (e.g., Virginia). - public let displayName: String? - /// The region name (e.g., us-east-1). - public let name: RegionName? - /// The continent code (e.g., NA, meaning North America). - public let continentCode: String? - /// The Availability Zones. Follows the format us-east-1a (case-sensitive). - public let availabilityZones: [AvailabilityZone]? - - public init(description: String? = nil, displayName: String? = nil, name: RegionName? = nil, continentCode: String? = nil, availabilityZones: [AvailabilityZone]? = nil) { - self.description = description - self.displayName = displayName - self.name = name - self.continentCode = continentCode - self.availabilityZones = availabilityZones - } - - private enum CodingKeys: String, CodingKey { - case description = "description" - case displayName = "displayName" - case name = "name" - case continentCode = "continentCode" - case availabilityZones = "availabilityZones" - } - } - - public struct CreateDomainEntryResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operation", required: false, type: .structure) - ] - /// An array of key-value pairs containing information about the operation. - public let operation: Operation? - - public init(operation: Operation? = nil) { - self.operation = operation - } - - private enum CodingKeys: String, CodingKey { - case operation = "operation" } } @@ -2541,8 +3995,28 @@ extension Lightsail { public var description: String { return self.rawValue } } + public enum LoadBalancerTlsCertificateRevocationReason: String, CustomStringConvertible, Codable { + case unspecified = "UNSPECIFIED" + case keyCompromise = "KEY_COMPROMISE" + case caCompromise = "CA_COMPROMISE" + case affiliationChanged = "AFFILIATION_CHANGED" + case superceded = "SUPERCEDED" + case cessationOfOperation = "CESSATION_OF_OPERATION" + case certificateHold = "CERTIFICATE_HOLD" + case removeFromCrl = "REMOVE_FROM_CRL" + case privilegeWithdrawn = "PRIVILEGE_WITHDRAWN" + case aACompromise = "A_A_COMPROMISE" + public var description: String { return self.rawValue } + } + + public enum InstancePlatform: String, CustomStringConvertible, Codable { + case linuxUnix = "LINUX_UNIX" + case windows = "WINDOWS" + public var description: String { return self.rawValue } + } + public struct UpdateDomainEntryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainEntry", required: true, type: .structure), AWSShapeMember(label: "domainName", required: true, type: .string) ] @@ -2562,43 +4036,11 @@ extension Lightsail { } } - public struct GetDomainResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "domain", required: false, type: .structure) - ] - /// An array of key-value pairs containing information about your get domain request. - public let domain: Domain? - - public init(domain: Domain? = nil) { - self.domain = domain - } - - private enum CodingKeys: String, CodingKey { - case domain = "domain" - } - } - - public struct CloseInstancePublicPortsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operation", required: false, type: .structure) - ] - /// An array of key-value pairs that contains information about the operation. - public let operation: Operation? - - public init(operation: Operation? = nil) { - self.operation = operation - } - - private enum CodingKeys: String, CodingKey { - case operation = "operation" - } - } - - public struct GetOperationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct CreateDomainEntryResult: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operation", required: false, type: .structure) ] - /// An array of key-value pairs containing information about the results of your get operation request. + /// An array of key-value pairs containing information about the operation. public let operation: Operation? public init(operation: Operation? = nil) { @@ -2610,40 +4052,52 @@ extension Lightsail { } } - public struct AllocateStaticIpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "staticIpName", required: true, type: .string) + public struct DeleteDiskSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) ] - /// The name of the static IP address. - public let staticIpName: String + /// An object describing the API operations. + public let operations: [Operation]? - public init(staticIpName: String) { - self.staticIpName = staticIpName + public init(operations: [Operation]? = nil) { + self.operations = operations } private enum CodingKeys: String, CodingKey { - case staticIpName = "staticIpName" + case operations = "operations" } } - public struct MonthlyTransfer: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "gbPerMonthAllocated", required: false, type: .integer) + public enum LoadBalancerAttributeName: String, CustomStringConvertible, Codable { + case healthcheckpath = "HealthCheckPath" + case sessionstickinessenabled = "SessionStickinessEnabled" + case sessionstickinessLbCookiedurationseconds = "SessionStickiness_LB_CookieDurationSeconds" + public var description: String { return self.rawValue } + } + + public struct GetBundlesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextPageToken", required: false, type: .string), + AWSShapeMember(label: "bundles", required: false, type: .list) ] - /// The amount allocated per month (in GB). - public let gbPerMonthAllocated: Int32? + /// A token used for advancing to the next page of results from your get active names request. + public let nextPageToken: String? + /// An array of key-value pairs that contains information about the available bundles. + public let bundles: [Bundle]? - public init(gbPerMonthAllocated: Int32? = nil) { - self.gbPerMonthAllocated = gbPerMonthAllocated + public init(nextPageToken: String? = nil, bundles: [Bundle]? = nil) { + self.nextPageToken = nextPageToken + self.bundles = bundles } private enum CodingKeys: String, CodingKey { - case gbPerMonthAllocated = "gbPerMonthAllocated" + case nextPageToken = "nextPageToken" + case bundles = "bundles" } } public struct UnpeerVpcResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operation", required: false, type: .structure) ] /// An array of key-value pairs containing information about the request operation. @@ -2658,14 +4112,34 @@ extension Lightsail { } } - public enum PortState: String, CustomStringConvertible, Codable { - case open = "open" - case closed = "closed" - public var description: String { return self.rawValue } + public struct InstanceHardware: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "cpuCount", required: false, type: .integer), + AWSShapeMember(label: "disks", required: false, type: .list), + AWSShapeMember(label: "ramSizeInGb", required: false, type: .float) + ] + /// The number of vCPUs the instance has. + public let cpuCount: Int32? + /// The disks attached to the instance. + public let disks: [Disk]? + /// The amount of RAM in GB on the instance (e.g., 1.0). + public let ramSizeInGb: Float? + + public init(cpuCount: Int32? = nil, disks: [Disk]? = nil, ramSizeInGb: Float? = nil) { + self.cpuCount = cpuCount + self.disks = disks + self.ramSizeInGb = ramSizeInGb + } + + private enum CodingKeys: String, CodingKey { + case cpuCount = "cpuCount" + case disks = "disks" + case ramSizeInGb = "ramSizeInGb" + } } public struct StartInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "instanceName", required: true, type: .string) ] /// The name of the instance (a virtual private server) to start. @@ -2680,40 +4154,90 @@ extension Lightsail { } } - public struct OpenInstancePublicPortsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operation", required: false, type: .structure) + public struct DeleteDiskResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) ] - /// An array of key-value pairs containing information about the request operation. - public let operation: Operation? + /// An object describing the API operations. + public let operations: [Operation]? - public init(operation: Operation? = nil) { - self.operation = operation + public init(operations: [Operation]? = nil) { + self.operations = operations } private enum CodingKeys: String, CodingKey { - case operation = "operation" + case operations = "operations" } } - public struct CreateInstanceSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "operations", required: false, type: .list) + public struct DiskSnapshot: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "state", required: false, type: .enum), + AWSShapeMember(label: "sizeInGb", required: false, type: .integer), + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "resourceType", required: false, type: .enum), + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "progress", required: false, type: .string), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "fromDiskArn", required: false, type: .string), + AWSShapeMember(label: "fromDiskName", required: false, type: .string), + AWSShapeMember(label: "supportCode", required: false, type: .string), + AWSShapeMember(label: "arn", required: false, type: .string) ] - /// An array of key-value pairs containing information about the results of your create instances snapshot request. - public let operations: [Operation]? + /// The status of the disk snapshot operation. + public let state: DiskSnapshotState? + /// The size of the disk in GB. + public let sizeInGb: Int32? + /// The AWS Region and Availability Zone where the disk snapshot was created. + public let location: ResourceLocation? + /// The Lightsail resource type (e.g., DiskSnapshot). + public let resourceType: ResourceType? + /// The name of the disk snapshot (e.g., my-disk-snapshot). + public let name: String? + /// The progress of the disk snapshot operation. + public let progress: String? + /// The date when the disk snapshot was created. + public let createdAt: TimeStamp? + /// The Amazon Resource Name (ARN) of the source disk from which you are creating the disk snapshot. + public let fromDiskArn: String? + /// The unique name of the source disk from which you are creating the disk snapshot. + public let fromDiskName: String? + /// The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily. + public let supportCode: String? + /// The Amazon Resource Name (ARN) of the disk snapshot. + public let arn: String? - public init(operations: [Operation]? = nil) { - self.operations = operations + public init(state: DiskSnapshotState? = nil, sizeInGb: Int32? = nil, location: ResourceLocation? = nil, resourceType: ResourceType? = nil, name: String? = nil, progress: String? = nil, createdAt: TimeStamp? = nil, fromDiskArn: String? = nil, fromDiskName: String? = nil, supportCode: String? = nil, arn: String? = nil) { + self.state = state + self.sizeInGb = sizeInGb + self.location = location + self.resourceType = resourceType + self.name = name + self.progress = progress + self.createdAt = createdAt + self.fromDiskArn = fromDiskArn + self.fromDiskName = fromDiskName + self.supportCode = supportCode + self.arn = arn } private enum CodingKeys: String, CodingKey { - case operations = "operations" + case state = "state" + case sizeInGb = "sizeInGb" + case location = "location" + case resourceType = "resourceType" + case name = "name" + case progress = "progress" + case createdAt = "createdAt" + case fromDiskArn = "fromDiskArn" + case fromDiskName = "fromDiskName" + case supportCode = "supportCode" + case arn = "arn" } } public struct StartInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "operations", required: false, type: .list) ] /// An array of key-value pairs containing information about the request operation. @@ -2728,24 +4252,19 @@ extension Lightsail { } } - public struct GetStaticIpsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextPageToken", required: false, type: .string), - AWSShapeMember(label: "staticIps", required: false, type: .list) + public struct CreateInstanceSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "operations", required: false, type: .list) ] - /// A token used for advancing to the next page of results from your get static IPs request. - public let nextPageToken: String? - /// An array of key-value pairs containing information about your get static IPs request. - public let staticIps: [StaticIp]? + /// An array of key-value pairs containing information about the results of your create instances snapshot request. + public let operations: [Operation]? - public init(nextPageToken: String? = nil, staticIps: [StaticIp]? = nil) { - self.nextPageToken = nextPageToken - self.staticIps = staticIps + public init(operations: [Operation]? = nil) { + self.operations = operations } private enum CodingKeys: String, CodingKey { - case nextPageToken = "nextPageToken" - case staticIps = "staticIps" + case operations = "operations" } } @@ -2755,96 +4274,139 @@ extension Lightsail { public var description: String { return self.rawValue } } - public struct GetInstanceMetricDataRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instanceName", required: true, type: .string), - AWSShapeMember(label: "unit", required: true, type: .enum), - AWSShapeMember(label: "statistics", required: true, type: .list), - AWSShapeMember(label: "endTime", required: true, type: .timestamp), - AWSShapeMember(label: "period", required: true, type: .integer), - AWSShapeMember(label: "startTime", required: true, type: .timestamp), - AWSShapeMember(label: "metricName", required: true, type: .enum) - ] - /// The name of the instance for which you want to get metrics data. - public let instanceName: String - /// The unit. The list of valid values is below. - public let unit: MetricUnit - /// The instance statistics. - public let statistics: [MetricStatistic] - /// The end time of the time period. - public let endTime: TimeStamp - /// The time period for which you are requesting data. - public let period: Int32 - /// The start time of the time period. - public let startTime: TimeStamp - /// The metric name to get data about. - public let metricName: InstanceMetricName - - public init(instanceName: String, unit: MetricUnit, statistics: [MetricStatistic], endTime: TimeStamp, period: Int32, startTime: TimeStamp, metricName: InstanceMetricName) { - self.instanceName = instanceName - self.unit = unit - self.statistics = statistics - self.endTime = endTime - self.period = period - self.startTime = startTime - self.metricName = metricName - } - - private enum CodingKeys: String, CodingKey { - case instanceName = "instanceName" - case unit = "unit" - case statistics = "statistics" - case endTime = "endTime" - case period = "period" - case startTime = "startTime" - case metricName = "metricName" - } - } - - public struct StopInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "instanceName", required: true, type: .string) - ] - /// The name of the instance (a virtual private server) to stop. - public let instanceName: String - - public init(instanceName: String) { - self.instanceName = instanceName - } - - private enum CodingKeys: String, CodingKey { - case instanceName = "instanceName" - } - } - - public struct InstanceHardware: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "cpuCount", required: false, type: .integer), - AWSShapeMember(label: "disks", required: false, type: .list), - AWSShapeMember(label: "ramSizeInGb", required: false, type: .float) + public struct LoadBalancerTlsCertificate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "issuer", required: false, type: .string), + AWSShapeMember(label: "resourceType", required: false, type: .enum), + AWSShapeMember(label: "isAttached", required: false, type: .boolean), + AWSShapeMember(label: "revokedAt", required: false, type: .timestamp), + AWSShapeMember(label: "createdAt", required: false, type: .timestamp), + AWSShapeMember(label: "signatureAlgorithm", required: false, type: .string), + AWSShapeMember(label: "issuedAt", required: false, type: .timestamp), + AWSShapeMember(label: "supportCode", required: false, type: .string), + AWSShapeMember(label: "renewalSummary", required: false, type: .structure), + AWSShapeMember(label: "subjectAlternativeNames", required: false, type: .list), + AWSShapeMember(label: "notBefore", required: false, type: .timestamp), + AWSShapeMember(label: "subject", required: false, type: .string), + AWSShapeMember(label: "arn", required: false, type: .string), + AWSShapeMember(label: "status", required: false, type: .enum), + AWSShapeMember(label: "location", required: false, type: .structure), + AWSShapeMember(label: "serial", required: false, type: .string), + AWSShapeMember(label: "notAfter", required: false, type: .timestamp), + AWSShapeMember(label: "revocationReason", required: false, type: .enum), + AWSShapeMember(label: "domainName", required: false, type: .string), + AWSShapeMember(label: "domainValidationRecords", required: false, type: .list), + AWSShapeMember(label: "keyAlgorithm", required: false, type: .string), + AWSShapeMember(label: "loadBalancerName", required: false, type: .string), + AWSShapeMember(label: "failureReason", required: false, type: .enum) ] - /// The number of vCPUs the instance has. - public let cpuCount: Int32? - /// The disks attached to the instance. - public let disks: [Disk]? - /// The amount of RAM in GB on the instance (e.g., 1.0). - public let ramSizeInGb: Float? - - public init(cpuCount: Int32? = nil, disks: [Disk]? = nil, ramSizeInGb: Float? = nil) { - self.cpuCount = cpuCount - self.disks = disks - self.ramSizeInGb = ramSizeInGb + /// The name of the TLS/SSL certificate (e.g., my-certificate). + public let name: String? + /// The issuer of the certificate. + public let issuer: String? + /// The resource type (e.g., LoadBalancerTlsCertificate. + public let resourceType: ResourceType? + /// When true, the TLS/SSL certificate is attached to the Lightsail load balancer. + public let isAttached: Bool? + /// The timestamp when the TLS/SSL certificate was revoked. + public let revokedAt: TimeStamp? + /// The time when you created your TLS/SSL certificate. + public let createdAt: TimeStamp? + /// The algorithm that was used to sign the certificate. + public let signatureAlgorithm: String? + /// The time when the TLS/SSL certificate was issued. + public let issuedAt: TimeStamp? + /// The support code. Include this code in your email to support when you have questions about your Lightsail load balancer or TLS/SSL certificate. This code enables our support team to look up your Lightsail information more easily. + public let supportCode: String? + /// An object containing information about the status of Lightsail's managed renewal for the certificate. + public let renewalSummary: LoadBalancerTlsCertificateRenewalSummary? + /// One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website. + public let subjectAlternativeNames: [String]? + /// The timestamp when the TLS/SSL certificate is first valid. + public let notBefore: TimeStamp? + /// The name of the entity that is associated with the public key contained in the certificate. + public let subject: String? + /// The Amazon Resource Name (ARN) of the TLS/SSL certificate. + public let arn: String? + /// The status of the TLS/SSL certificate. Valid values are below. + public let status: LoadBalancerTlsCertificateStatus? + /// The AWS Region and Availability Zone where you created your certificate. + public let location: ResourceLocation? + /// The serial number of the certificate. + public let serial: String? + /// The timestamp when the TLS/SSL certificate expires. + public let notAfter: TimeStamp? + /// The reason the certificate was revoked. Valid values are below. + public let revocationReason: LoadBalancerTlsCertificateRevocationReason? + /// The domain name for your TLS/SSL certificate. + public let domainName: String? + /// An array of LoadBalancerTlsCertificateDomainValidationRecord objects describing the records. + public let domainValidationRecords: [LoadBalancerTlsCertificateDomainValidationRecord]? + /// The algorithm that was used to generate the key pair (the public and private key). + public let keyAlgorithm: String? + /// The load balancer name where your TLS/SSL certificate is attached. + public let loadBalancerName: String? + /// The reason for the TLS/SSL certificate validation failure. + public let failureReason: LoadBalancerTlsCertificateFailureReason? + + public init(name: String? = nil, issuer: String? = nil, resourceType: ResourceType? = nil, isAttached: Bool? = nil, revokedAt: TimeStamp? = nil, createdAt: TimeStamp? = nil, signatureAlgorithm: String? = nil, issuedAt: TimeStamp? = nil, supportCode: String? = nil, renewalSummary: LoadBalancerTlsCertificateRenewalSummary? = nil, subjectAlternativeNames: [String]? = nil, notBefore: TimeStamp? = nil, subject: String? = nil, arn: String? = nil, status: LoadBalancerTlsCertificateStatus? = nil, location: ResourceLocation? = nil, serial: String? = nil, notAfter: TimeStamp? = nil, revocationReason: LoadBalancerTlsCertificateRevocationReason? = nil, domainName: String? = nil, domainValidationRecords: [LoadBalancerTlsCertificateDomainValidationRecord]? = nil, keyAlgorithm: String? = nil, loadBalancerName: String? = nil, failureReason: LoadBalancerTlsCertificateFailureReason? = nil) { + self.name = name + self.issuer = issuer + self.resourceType = resourceType + self.isAttached = isAttached + self.revokedAt = revokedAt + self.createdAt = createdAt + self.signatureAlgorithm = signatureAlgorithm + self.issuedAt = issuedAt + self.supportCode = supportCode + self.renewalSummary = renewalSummary + self.subjectAlternativeNames = subjectAlternativeNames + self.notBefore = notBefore + self.subject = subject + self.arn = arn + self.status = status + self.location = location + self.serial = serial + self.notAfter = notAfter + self.revocationReason = revocationReason + self.domainName = domainName + self.domainValidationRecords = domainValidationRecords + self.keyAlgorithm = keyAlgorithm + self.loadBalancerName = loadBalancerName + self.failureReason = failureReason } private enum CodingKeys: String, CodingKey { - case cpuCount = "cpuCount" - case disks = "disks" - case ramSizeInGb = "ramSizeInGb" + case name = "name" + case issuer = "issuer" + case resourceType = "resourceType" + case isAttached = "isAttached" + case revokedAt = "revokedAt" + case createdAt = "createdAt" + case signatureAlgorithm = "signatureAlgorithm" + case issuedAt = "issuedAt" + case supportCode = "supportCode" + case renewalSummary = "renewalSummary" + case subjectAlternativeNames = "subjectAlternativeNames" + case notBefore = "notBefore" + case subject = "subject" + case arn = "arn" + case status = "status" + case location = "location" + case serial = "serial" + case notAfter = "notAfter" + case revocationReason = "revocationReason" + case domainName = "domainName" + case domainValidationRecords = "domainValidationRecords" + case keyAlgorithm = "keyAlgorithm" + case loadBalancerName = "loadBalancerName" + case failureReason = "failureReason" } } public struct GetStaticIpsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "pageToken", required: false, type: .string) ] /// A token used for advancing to the next page of results from your get static IPs request. @@ -2859,20 +4421,4 @@ extension Lightsail { } } - public struct CreateDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "domainName", required: true, type: .string) - ] - /// The domain name to manage (e.g., example.com). You cannot register a new domain name using Lightsail. You must register a domain name using Amazon Route 53 or another domain name registrar. If you have already registered your domain, you can enter its name in this parameter to manage the DNS records for that domain. - public let domainName: String - - public init(domainName: String) { - self.domainName = domainName - } - - private enum CodingKeys: String, CodingKey { - case domainName = "domainName" - } - } - } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/logs/.dat.nosync3915.bPvKXP b/Sources/AWSSDKSwift/Services/logs/.dat.nosync3915.bPvKXP new file mode 100644 index 00000000000..d88759078d2 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/logs/.dat.nosync3915.bPvKXP @@ -0,0 +1,47 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Logs +public enum LogsError: AWSErrorType { + case invalidParameterException(message: String?) + case resourceAlreadyExistsException(message: String?) + case resourceNotFoundException(message: String?) + case serviceUnavailableException(message: String?) + case operationAbortedException(message: String?) + case invalidSequenceTokenException(message: String?) + case dataAlreadyAcceptedException(message: String?) + case limitExceededException(message: String?) + case invalidOperationException(message: String?) +} + +extension LogsError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "InvalidParameterException": + self = .invalidParameterException(message: message) + case "ResourceAlreadyExistsException": + self = .resourceAlreadyExistsException(message: message) + case "ResourceNotFoundException": + self = .resourceNotFoundException(message: message) + case "ServiceUnavailableException": + self = .serviceUnavailableException(message: message) + case "OperationAbortedException": + self = .operationAbortedException(message: message) + case "InvalidSequenceTokenException": + self = .invalidSequenceTokenException(message: message) + case "DataAlreadyAcceptedException": + self = .dataAlreadyAcceptedException(message: message) + case "LimitExceededException": + self = .limitExceededException(message: message) + case "InvalidOperationException": + self = .invalidOperationException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/logs/Logs_API.swift b/Sources/AWSSDKSwift/Services/logs/Logs_API.swift index 22f66e6467a..c07354b86f5 100644 --- a/Sources/AWSSDKSwift/Services/logs/Logs_API.swift +++ b/Sources/AWSSDKSwift/Services/logs/Logs_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -You can use Amazon CloudWatch Logs to monitor, store, and access your log files from EC2 instances, Amazon CloudTrail, or other sources. You can then retrieve the associated log data from CloudWatch Logs using the Amazon CloudWatch console, the CloudWatch Logs commands in the AWS CLI, the CloudWatch Logs API, or the CloudWatch Logs SDK. You can use CloudWatch Logs to: Monitor Logs from Amazon EC2 Instances in Real-time: You can use CloudWatch Logs to monitor applications and systems using log data. For example, CloudWatch Logs can track the number of errors that occur in your application logs and send you a notification whenever the rate of errors exceeds a threshold you specify. CloudWatch Logs uses your log data for monitoring; so, no code changes are required. For example, you can monitor application logs for specific literal terms (such as "NullReferenceException") or count the number of occurrences of a literal term at a particular position in log data (such as "404" status codes in an Apache access log). When the term you are searching for is found, CloudWatch Logs reports the data to a Amazon CloudWatch metric that you specify. Monitor Amazon CloudTrail Logged Events: You can create alarms in Amazon CloudWatch and receive notifications of particular API activity as captured by CloudTrail and use the notification to perform troubleshooting. Archive Log Data: You can use CloudWatch Logs to store your log data in highly durable storage. You can change the log retention setting so that any log events older than this setting are automatically deleted. The CloudWatch Logs agent makes it easy to quickly send both rotated and non-rotated log data off of a host and into the log service. You can then access the raw log data when you need it. +You can use Amazon CloudWatch Logs to monitor, store, and access your log files from Amazon EC2 instances, AWS CloudTrail, or other sources. You can then retrieve the associated log data from CloudWatch Logs using the CloudWatch console, CloudWatch Logs commands in the AWS CLI, CloudWatch Logs API, or CloudWatch Logs SDK. You can use CloudWatch Logs to: Monitor logs from EC2 instances in real-time: You can use CloudWatch Logs to monitor applications and systems using log data. For example, CloudWatch Logs can track the number of errors that occur in your application logs and send you a notification whenever the rate of errors exceeds a threshold that you specify. CloudWatch Logs uses your log data for monitoring; so, no code changes are required. For example, you can monitor application logs for specific literal terms (such as "NullReferenceException") or count the number of occurrences of a literal term at a particular position in log data (such as "404" status codes in an Apache access log). When the term you are searching for is found, CloudWatch Logs reports the data to a CloudWatch metric that you specify. Monitor AWS CloudTrail logged events: You can create alarms in CloudWatch and receive notifications of particular API activity as captured by CloudTrail and use the notification to perform troubleshooting. Archive log data: You can use CloudWatch Logs to store your log data in highly durable storage. You can change the log retention setting so that any log events older than this setting are automatically deleted. The CloudWatch Logs agent makes it easy to quickly send both rotated and non-rotated log data off of a host and into the log service. You can then access the raw log data when you need it. */ public struct Logs { @@ -50,34 +50,34 @@ public struct Logs { return try client.send(operation: "DescribeSubscriptionFilters", path: "/", httpMethod: "POST", input: input) } + /// Creates or updates a destination. A destination encapsulates a physical resource (such as an Amazon Kinesis stream) and enables you to subscribe to a real-time stream of log events for a different account, ingested using PutLogEvents. Currently, the only supported physical resource is a Kinesis stream belonging to the same account as the destination. Through an access policy, a destination controls what is written to its Kinesis stream. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination. + public func putDestination(_ input: PutDestinationRequest) throws -> PutDestinationResponse { + return try client.send(operation: "PutDestination", path: "/", httpMethod: "POST", input: input) + } + /// Deletes the specified retention policy. Log events do not expire if they belong to log groups without a retention policy. public func deleteRetentionPolicy(_ input: DeleteRetentionPolicyRequest) throws { _ = try client.send(operation: "DeleteRetentionPolicy", path: "/", httpMethod: "POST", input: input) } - /// Lists log events from the specified log stream. You can list all the log events or filter using a time range. By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). If the results include tokens, there are more log events available. You can get additional log events by specifying one of the tokens in a subsequent call. + /// Lists log events from the specified log stream. You can list all the log events or filter using a time range. By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. public func getLogEvents(_ input: GetLogEventsRequest) throws -> GetLogEventsResponse { return try client.send(operation: "GetLogEvents", path: "/", httpMethod: "POST", input: input) } - /// Creates or updates a destination. A destination encapsulates a physical resource (such as a Kinesis stream) and enables you to subscribe to a real-time stream of log events of a different account, ingested using PutLogEvents. Currently, the only supported physical resource is a Amazon Kinesis stream belonging to the same account as the destination. A destination controls what is written to its Amazon Kinesis stream through an access policy. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination. - public func putDestination(_ input: PutDestinationRequest) throws -> PutDestinationResponse { - return try client.send(operation: "PutDestination", path: "/", httpMethod: "POST", input: input) - } - - /// Uploads a batch of log events to the specified log stream. You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token using DescribeLogStreams. The batch of events must satisfy the following constraints: The maximum batch size is 1,048,576 bytes, and this size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event. None of the log events in the batch can be more than 2 hours in the future. None of the log events in the batch can be older than 14 days or the retention period of the log group. The log events in the batch must be in chronological ordered by their timestamp (the time the event occurred, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC). The maximum number of log events in a batch is 10,000. A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails. + /// Uploads a batch of log events to the specified log stream. You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token using DescribeLogStreams. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls may be successful, or one may be rejected. The batch of events must satisfy the following constraints: The maximum batch size is 1,048,576 bytes, and this size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event. None of the log events in the batch can be more than 2 hours in the future. None of the log events in the batch can be older than 14 days or the retention period of the log group. The log events in the batch must be in chronological ordered by their time stamp (the time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC). The maximum number of log events in a batch is 10,000. A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails. public func putLogEvents(_ input: PutLogEventsRequest) throws -> PutLogEventsResponse { return try client.send(operation: "PutLogEvents", path: "/", httpMethod: "POST", input: input) } - /// Lists the tags for the specified log group. To add tags, use TagLogGroup. To remove tags, use UntagLogGroup. + /// Lists the tags for the specified log group. public func listTagsLogGroup(_ input: ListTagsLogGroupRequest) throws -> ListTagsLogGroupResponse { return try client.send(operation: "ListTagsLogGroup", path: "/", httpMethod: "POST", input: input) } - /// Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream. By default, this operation returns as many log events as can fit in 1MB (up to 10,000 log events), or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call. - public func filterLogEvents(_ input: FilterLogEventsRequest) throws -> FilterLogEventsResponse { - return try client.send(operation: "FilterLogEvents", path: "/", httpMethod: "POST", input: input) + /// Creates a log group with the specified name. You can create up to 5000 log groups per account. You must use the following guidelines when naming a log group: Log group names must be unique within a region for an AWS account. Log group names can be between 1 and 512 characters long. Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). If you associate a AWS Key Management Service (AWS KMS) customer master key (CMK) with the log group, ingested data is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested. If you attempt to associate a CMK with the log group but the CMK does not exist or the CMK is disabled, you will receive an InvalidParameterException error. + public func createLogGroup(_ input: CreateLogGroupRequest) throws { + _ = try client.send(operation: "CreateLogGroup", path: "/", httpMethod: "POST", input: input) } /// Adds or updates the specified tags for the specified log group. To list the tags for a log group, use ListTagsLogGroup. To remove tags, use UntagLogGroup. For more information about tags, see Tag Log Groups in Amazon CloudWatch Logs in the Amazon CloudWatch Logs User Guide. @@ -85,9 +85,9 @@ public struct Logs { _ = try client.send(operation: "TagLogGroup", path: "/", httpMethod: "POST", input: input) } - /// Creates a log group with the specified name. You can create up to 5000 log groups per account. You must use the following guidelines when naming a log group: Log group names must be unique within a region for an AWS account. Log group names can be between 1 and 512 characters long. Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). - public func createLogGroup(_ input: CreateLogGroupRequest) throws { - _ = try client.send(operation: "CreateLogGroup", path: "/", httpMethod: "POST", input: input) + /// Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream. By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events), or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call. + public func filterLogEvents(_ input: FilterLogEventsRequest) throws -> FilterLogEventsResponse { + return try client.send(operation: "FilterLogEvents", path: "/", httpMethod: "POST", input: input) } /// Cancels the specified export task. The task must be in the PENDING or RUNNING state. @@ -95,29 +95,34 @@ public struct Logs { _ = try client.send(operation: "CancelExportTask", path: "/", httpMethod: "POST", input: input) } - /// Lists the specified export tasks. You can list all your export tasks or filter the results based on task ID or task status. - public func describeExportTasks(_ input: DescribeExportTasksRequest) throws -> DescribeExportTasksResponse { - return try client.send(operation: "DescribeExportTasks", path: "/", httpMethod: "POST", input: input) + /// Deletes a resource policy from this account. This revokes the access of the identities in that policy to put log events to this account. + public func deleteResourcePolicy(_ input: DeleteResourcePolicyRequest) throws { + _ = try client.send(operation: "DeleteResourcePolicy", path: "/", httpMethod: "POST", input: input) } - /// Sets the retention of the specified log group. A retention policy allows you to configure the number of days you want to retain log events in the specified log group. + /// Sets the retention of the specified log group. A retention policy allows you to configure the number of days for which to retain log events in the specified log group. public func putRetentionPolicy(_ input: PutRetentionPolicyRequest) throws { _ = try client.send(operation: "PutRetentionPolicy", path: "/", httpMethod: "POST", input: input) } - /// Creates or updates a metric filter and associates it with the specified log group. Metric filters allow you to configure rules to extract metric data from log events ingested through PutLogEvents. The maximum number of metric filters that can be associated with a log group is 100. - public func putMetricFilter(_ input: PutMetricFilterRequest) throws { - _ = try client.send(operation: "PutMetricFilter", path: "/", httpMethod: "POST", input: input) + /// Lists the specified export tasks. You can list all your export tasks or filter the results based on task ID or task status. + public func describeExportTasks(_ input: DescribeExportTasksRequest) throws -> DescribeExportTasksResponse { + return try client.send(operation: "DescribeExportTasks", path: "/", httpMethod: "POST", input: input) } - /// Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket. This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask. You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix that will be used as the Amazon S3 key prefix for all exported objects. + /// Lists the resource policies in this account. + public func describeResourcePolicies(_ input: DescribeResourcePoliciesRequest) throws -> DescribeResourcePoliciesResponse { + return try client.send(operation: "DescribeResourcePolicies", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket. This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask. You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix to be used as the Amazon S3 key prefix for all exported objects. public func createExportTask(_ input: CreateExportTaskRequest) throws -> CreateExportTaskResponse { return try client.send(operation: "CreateExportTask", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified destination, and eventually disables all the subscription filters that publish to it. This operation does not delete the physical resource encapsulated by the destination. - public func deleteDestination(_ input: DeleteDestinationRequest) throws { - _ = try client.send(operation: "DeleteDestination", path: "/", httpMethod: "POST", input: input) + /// Creates or updates a metric filter and associates it with the specified log group. Metric filters allow you to configure rules to extract metric data from log events ingested through PutLogEvents. The maximum number of metric filters that can be associated with a log group is 100. + public func putMetricFilter(_ input: PutMetricFilterRequest) throws { + _ = try client.send(operation: "PutMetricFilter", path: "/", httpMethod: "POST", input: input) } /// Tests the filter pattern of a metric filter against a sample of log event messages. You can use this operation to validate the correctness of a metric filter pattern. @@ -125,11 +130,21 @@ public struct Logs { return try client.send(operation: "TestMetricFilter", path: "/", httpMethod: "POST", input: input) } - /// Lists the specified metric filters. You can list all the metric filters or filter the results by log name, prefix, metric name, and metric namespace. The results are ASCII-sorted by filter name. + /// Deletes the specified destination, and eventually disables all the subscription filters that publish to it. This operation does not delete the physical resource encapsulated by the destination. + public func deleteDestination(_ input: DeleteDestinationRequest) throws { + _ = try client.send(operation: "DeleteDestination", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the specified metric filters. You can list all the metric filters or filter the results by log name, prefix, metric name, or metric namespace. The results are ASCII-sorted by filter name. public func describeMetricFilters(_ input: DescribeMetricFiltersRequest) throws -> DescribeMetricFiltersResponse { return try client.send(operation: "DescribeMetricFilters", path: "/", httpMethod: "POST", input: input) } + /// Disassociates the associated AWS Key Management Service (AWS KMS) customer master key (CMK) from the specified log group. After the AWS KMS CMK is disassociated from the log group, AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires permissions for the CMK whenever the encrypted data is requested. Note that it can take up to 5 minutes for this operation to take effect. + public func disassociateKmsKey(_ input: DisassociateKmsKeyRequest) throws { + _ = try client.send(operation: "DisassociateKmsKey", path: "/", httpMethod: "POST", input: input) + } + /// Removes the specified tags from the specified log group. To list the tags for a log group, use ListTagsLogGroup. To add tags, use UntagLogGroup. public func untagLogGroup(_ input: UntagLogGroupRequest) throws { _ = try client.send(operation: "UntagLogGroup", path: "/", httpMethod: "POST", input: input) @@ -145,7 +160,7 @@ public struct Logs { _ = try client.send(operation: "DeleteMetricFilter", path: "/", httpMethod: "POST", input: input) } - /// Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. Currently, the supported destinations are: An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. A logical destination that belongs to a different account, for cross-account delivery. An Amazon Kinesis Firehose stream that belongs to the same account as the subscription filter, for same-account delivery. An AWS Lambda function that belongs to the same account as the subscription filter, for same-account delivery. There can only be one subscription filter associated with a log group. If you are updating an existing filter, you must specify the correct name in filterName. Otherwise, the call will fail because you cannot associate a second filter with a log group. + /// Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. Currently, the supported destinations are: An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. A logical destination that belongs to a different account, for cross-account delivery. An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. An AWS Lambda function that belongs to the same account as the subscription filter, for same-account delivery. There can only be one subscription filter associated with a log group. If you are updating an existing filter, you must specify the correct name in filterName. Otherwise, the call fails because you cannot associate a second filter with a log group. public func putSubscriptionFilter(_ input: PutSubscriptionFilterRequest) throws { _ = try client.send(operation: "PutSubscriptionFilter", path: "/", httpMethod: "POST", input: input) } @@ -155,6 +170,11 @@ public struct Logs { return try client.send(operation: "DescribeDestinations", path: "/", httpMethod: "POST", input: input) } + /// Associates the specified AWS Key Management Service (AWS KMS) customer master key (CMK) with the specified log group. Associating an AWS KMS CMK with a log group overrides any existing associations between the log group and a CMK. After a CMK is associated with a log group, all newly ingested data for the log group is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested. Note that it can take up to 5 minutes for this operation to take effect. If you attempt to associate a CMK with a log group but the CMK does not exist or the CMK is disabled, you will receive an InvalidParameterException error. + public func associateKmsKey(_ input: AssociateKmsKeyRequest) throws { + _ = try client.send(operation: "AssociateKmsKey", path: "/", httpMethod: "POST", input: input) + } + /// Deletes the specified log group and permanently deletes all the archived log events associated with the log group. public func deleteLogGroup(_ input: DeleteLogGroupRequest) throws { _ = try client.send(operation: "DeleteLogGroup", path: "/", httpMethod: "POST", input: input) @@ -165,5 +185,10 @@ public struct Logs { _ = try client.send(operation: "DeleteLogStream", path: "/", httpMethod: "POST", input: input) } + /// Creates or updates a resource policy allowing other AWS services to put log events to this account, such as Amazon Route 53. An account can have up to 50 resource policies per region. + public func putResourcePolicy(_ input: PutResourcePolicyRequest) throws -> PutResourcePolicyResponse { + return try client.send(operation: "PutResourcePolicy", path: "/", httpMethod: "POST", input: input) + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/logs/Logs_Shapes.swift b/Sources/AWSSDKSwift/Services/logs/Logs_Shapes.swift index 3ebfb972ff3..beab96e9591 100644 --- a/Sources/AWSSDKSwift/Services/logs/Logs_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/logs/Logs_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Logs { public struct CreateLogStreamRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "logGroupName", required: true, type: .string), AWSShapeMember(label: "logStreamName", required: true, type: .string) ] @@ -27,7 +27,7 @@ extension Logs { } public struct DescribeDestinationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "destinations", required: false, type: .list) ] @@ -46,19 +46,85 @@ extension Logs { } } - public struct TestMetricFilterResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "matches", required: false, type: .list) + public struct ResourcePolicy: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyName", required: false, type: .string), + AWSShapeMember(label: "policyDocument", required: false, type: .string), + AWSShapeMember(label: "lastUpdatedTime", required: false, type: .long) ] - /// The matched events. - public let matches: [MetricFilterMatchRecord]? + /// The name of the resource policy. + public let policyName: String? + /// The details of the policy. + public let policyDocument: String? + /// Time stamp showing when this policy was last updated, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + public let lastUpdatedTime: Int64? - public init(matches: [MetricFilterMatchRecord]? = nil) { - self.matches = matches + public init(policyName: String? = nil, policyDocument: String? = nil, lastUpdatedTime: Int64? = nil) { + self.policyName = policyName + self.policyDocument = policyDocument + self.lastUpdatedTime = lastUpdatedTime } private enum CodingKeys: String, CodingKey { - case matches = "matches" + case policyName = "policyName" + case policyDocument = "policyDocument" + case lastUpdatedTime = "lastUpdatedTime" + } + } + + public struct ExportTask: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "status", required: false, type: .structure), + AWSShapeMember(label: "destination", required: false, type: .string), + AWSShapeMember(label: "taskId", required: false, type: .string), + AWSShapeMember(label: "destinationPrefix", required: false, type: .string), + AWSShapeMember(label: "from", required: false, type: .long), + AWSShapeMember(label: "taskName", required: false, type: .string), + AWSShapeMember(label: "executionInfo", required: false, type: .structure), + AWSShapeMember(label: "logGroupName", required: false, type: .string), + AWSShapeMember(label: "to", required: false, type: .long) + ] + /// The status of the export task. + public let status: ExportTaskStatus? + /// The name of Amazon S3 bucket to which the log data was exported. + public let destination: String? + /// The ID of the export task. + public let taskId: String? + /// The prefix that was used as the start of Amazon S3 key for every object exported. + public let destinationPrefix: String? + /// The start time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp before this time are not exported. + public let from: Int64? + /// The name of the export task. + public let taskName: String? + /// Execution info about the export task. + public let executionInfo: ExportTaskExecutionInfo? + /// The name of the log group from which logs data was exported. + public let logGroupName: String? + /// The end time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp later than this time are not exported. + public let to: Int64? + + public init(status: ExportTaskStatus? = nil, destination: String? = nil, taskId: String? = nil, destinationPrefix: String? = nil, from: Int64? = nil, taskName: String? = nil, executionInfo: ExportTaskExecutionInfo? = nil, logGroupName: String? = nil, to: Int64? = nil) { + self.status = status + self.destination = destination + self.taskId = taskId + self.destinationPrefix = destinationPrefix + self.from = from + self.taskName = taskName + self.executionInfo = executionInfo + self.logGroupName = logGroupName + self.to = to + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case destination = "destination" + case taskId = "taskId" + case destinationPrefix = "destinationPrefix" + case from = "from" + case taskName = "taskName" + case executionInfo = "executionInfo" + case logGroupName = "logGroupName" + case to = "to" } } @@ -69,7 +135,7 @@ extension Logs { } public struct LogStream: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "storedBytes", required: false, type: .long), AWSShapeMember(label: "lastEventTimestamp", required: false, type: .long), AWSShapeMember(label: "logStreamName", required: false, type: .string), @@ -81,15 +147,15 @@ extension Logs { ] /// The number of bytes stored. public let storedBytes: Int64? - /// the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. lastEventTime updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but may take longer in some rare situations. + /// the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. lastEventTime updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but may take longer in some rare situations. public let lastEventTimestamp: Int64? /// The name of the log stream. public let logStreamName: String? - /// The creation time of the stream, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The creation time of the stream, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let creationTime: Int64? - /// The ingestion time, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The ingestion time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let lastIngestionTime: Int64? - /// The time of the first event, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The time of the first event, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let firstEventTimestamp: Int64? /// The sequence token. public let uploadSequenceToken: String? @@ -120,11 +186,11 @@ extension Logs { } public struct InputLogEvent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "timestamp", required: true, type: .long), AWSShapeMember(label: "message", required: true, type: .string) ] - /// The time the event occurred, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The time the event occurred, expressed as the number of milliseconds fter Jan 1, 1970 00:00:00 UTC. public let timestamp: Int64 /// The raw event message. public let message: String @@ -140,8 +206,55 @@ extension Logs { } } + public struct PutLogEventsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "logEvents", required: true, type: .list), + AWSShapeMember(label: "sequenceToken", required: false, type: .string), + AWSShapeMember(label: "logStreamName", required: true, type: .string), + AWSShapeMember(label: "logGroupName", required: true, type: .string) + ] + /// The log events. + public let logEvents: [InputLogEvent] + /// The sequence token obtained from the response of the previous PutLogEvents call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token using DescribeLogStreams. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls may be successful, or one may be rejected. + public let sequenceToken: String? + /// The name of the log stream. + public let logStreamName: String + /// The name of the log group. + public let logGroupName: String + + public init(logEvents: [InputLogEvent], sequenceToken: String? = nil, logStreamName: String, logGroupName: String) { + self.logEvents = logEvents + self.sequenceToken = sequenceToken + self.logStreamName = logStreamName + self.logGroupName = logGroupName + } + + private enum CodingKeys: String, CodingKey { + case logEvents = "logEvents" + case sequenceToken = "sequenceToken" + case logStreamName = "logStreamName" + case logGroupName = "logGroupName" + } + } + + public struct DisassociateKmsKeyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "logGroupName", required: true, type: .string) + ] + /// The name of the log group. + public let logGroupName: String + + public init(logGroupName: String) { + self.logGroupName = logGroupName + } + + private enum CodingKeys: String, CodingKey { + case logGroupName = "logGroupName" + } + } + public struct FilteredLogEvent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventId", required: false, type: .string), AWSShapeMember(label: "message", required: false, type: .string), AWSShapeMember(label: "timestamp", required: false, type: .long), @@ -152,11 +265,11 @@ extension Logs { public let eventId: String? /// The data contained in the log event. public let message: String? - /// The time the event occurred, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let timestamp: Int64? /// The name of the log stream this event belongs to. public let logStreamName: String? - /// The time the event was ingested, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let ingestionTime: Int64? public init(eventId: String? = nil, message: String? = nil, timestamp: Int64? = nil, logStreamName: String? = nil, ingestionTime: Int64? = nil) { @@ -176,45 +289,14 @@ extension Logs { } } - public struct PutLogEventsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "logEvents", required: true, type: .list), - AWSShapeMember(label: "sequenceToken", required: false, type: .string), - AWSShapeMember(label: "logStreamName", required: true, type: .string), - AWSShapeMember(label: "logGroupName", required: true, type: .string) - ] - /// The log events. - public let logEvents: [InputLogEvent] - /// The sequence token. - public let sequenceToken: String? - /// The name of the log stream. - public let logStreamName: String - /// The name of the log group. - public let logGroupName: String - - public init(logEvents: [InputLogEvent], sequenceToken: String? = nil, logStreamName: String, logGroupName: String) { - self.logEvents = logEvents - self.sequenceToken = sequenceToken - self.logStreamName = logStreamName - self.logGroupName = logGroupName - } - - private enum CodingKeys: String, CodingKey { - case logEvents = "logEvents" - case sequenceToken = "sequenceToken" - case logStreamName = "logStreamName" - case logGroupName = "logGroupName" - } - } - public struct ExportTaskExecutionInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "creationTime", required: false, type: .long), AWSShapeMember(label: "completionTime", required: false, type: .long) ] - /// The creation time of the export task, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The creation time of the export task, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let creationTime: Int64? - /// The completion time of the export task, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The completion time of the export task, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let completionTime: Int64? public init(creationTime: Int64? = nil, completionTime: Int64? = nil) { @@ -229,7 +311,7 @@ extension Logs { } public struct DescribeLogStreamsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "limit", required: false, type: .integer), AWSShapeMember(label: "descending", required: false, type: .boolean), @@ -243,9 +325,9 @@ extension Logs { public let limit: Int32? /// If the value is true, results are returned in descending order. If the value is to false, results are returned in ascending order. The default value is false. public let descending: Bool? - /// The prefix to match. You cannot specify this parameter if orderBy is LastEventTime. + /// The prefix to match. iIf orderBy is LastEventTime,you cannot specify this parameter. public let logStreamNamePrefix: String? - /// If the value is LogStreamName, the results are ordered by log stream name. If the value is LastEventTime, the results are ordered by the event time. The default value is LogStreamName. If you order the results by event time, you cannot specify the logStreamNamePrefix parameter. lastEventTimestamp represents the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. lastEventTimeStamp updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but may take longer in some rare situations. + /// If the value is LogStreamName, the results are ordered by log stream name. If the value is LastEventTime, the results are ordered by the event time. The default value is LogStreamName. If you order the results by event time, you cannot specify the logStreamNamePrefix parameter. lastEventTimestamp represents the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. lastEventTimeStamp updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but may take longer in some rare situations. public let orderBy: OrderBy? /// The name of the log group. public let logGroupName: String @@ -270,7 +352,7 @@ extension Logs { } public struct DescribeLogStreamsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "logStreams", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -290,7 +372,7 @@ extension Logs { } public struct DeleteRetentionPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "logGroupName", required: true, type: .string) ] /// The name of the log group. @@ -306,7 +388,7 @@ extension Logs { } public struct MetricTransformation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "metricValue", required: true, type: .string), AWSShapeMember(label: "defaultValue", required: false, type: .double), AWSShapeMember(label: "metricName", required: true, type: .string), @@ -337,7 +419,7 @@ extension Logs { } public struct PutSubscriptionFilterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "filterName", required: true, type: .string), AWSShapeMember(label: "destinationArn", required: true, type: .string), AWSShapeMember(label: "roleArn", required: false, type: .string), @@ -345,13 +427,13 @@ extension Logs { AWSShapeMember(label: "logGroupName", required: true, type: .string), AWSShapeMember(label: "filterPattern", required: true, type: .string) ] - /// A name for the subscription filter. If you are updating an existing filter, you must specify the correct name in filterName. Otherwise, the call will fail because you cannot associate a second filter with a log group. To find the name of the filter currently associated with a log group, use DescribeSubscriptionFilters. + /// A name for the subscription filter. If you are updating an existing filter, you must specify the correct name in filterName. Otherwise, the call fails because you cannot associate a second filter with a log group. To find the name of the filter currently associated with a log group, use DescribeSubscriptionFilters. public let filterName: String - /// The ARN of the destination to deliver matching log events to. Currently, the supported destinations are: An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery. An Amazon Kinesis Firehose stream belonging to the same account as the subscription filter, for same-account delivery. An AWS Lambda function belonging to the same account as the subscription filter, for same-account delivery. + /// The ARN of the destination to deliver matching log events to. Currently, the supported destinations are: An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery. An Amazon Kinesis Firehose delivery stream belonging to the same account as the subscription filter, for same-account delivery. An AWS Lambda function belonging to the same account as the subscription filter, for same-account delivery. public let destinationArn: String /// The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. public let roleArn: String? - /// The method used to distribute log data to the destination, when the destination is an Amazon Kinesis stream. By default, log data is grouped by log stream. For a more even distribution, you can group log data randomly. + /// The method used to distribute log data to the destination. By default log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. public let distribution: Distribution? /// The name of the log group. public let logGroupName: String @@ -388,7 +470,7 @@ extension Logs { } public struct RejectedLogEventsInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "expiredLogEventEndIndex", required: false, type: .integer), AWSShapeMember(label: "tooOldLogEventEndIndex", required: false, type: .integer), AWSShapeMember(label: "tooNewLogEventStartIndex", required: false, type: .integer) @@ -414,7 +496,7 @@ extension Logs { } public struct DeleteDestinationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "destinationName", required: true, type: .string) ] /// The name of the destination. @@ -429,8 +511,28 @@ extension Logs { } } + public struct DescribeLogGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "logGroups", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The log groups. + public let logGroups: [LogGroup]? + public let nextToken: String? + + public init(logGroups: [LogGroup]? = nil, nextToken: String? = nil) { + self.logGroups = logGroups + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case logGroups = "logGroups" + case nextToken = "nextToken" + } + } + public struct PutMetricFilterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "filterName", required: true, type: .string), AWSShapeMember(label: "metricTransformations", required: true, type: .list), AWSShapeMember(label: "logGroupName", required: true, type: .string), @@ -438,7 +540,7 @@ extension Logs { ] /// A name for the metric filter. public let filterName: String - /// A collection of information needed to define how metric data gets emitted. + /// A collection of information that defines how metric data gets emitted. public let metricTransformations: [MetricTransformation] /// The name of the log group. public let logGroupName: String @@ -460,37 +562,17 @@ extension Logs { } } - public struct DescribeLogGroupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "logGroups", required: false, type: .list), - AWSShapeMember(label: "nextToken", required: false, type: .string) - ] - /// The log groups. - public let logGroups: [LogGroup]? - public let nextToken: String? - - public init(logGroups: [LogGroup]? = nil, nextToken: String? = nil) { - self.logGroups = logGroups - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case logGroups = "logGroups" - case nextToken = "nextToken" - } - } - public struct PutDestinationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "destinationName", required: true, type: .string), AWSShapeMember(label: "roleArn", required: true, type: .string), AWSShapeMember(label: "targetArn", required: true, type: .string) ] /// A name for the destination. public let destinationName: String - /// The ARN of an IAM role that grants CloudWatch Logs permissions to call Amazon Kinesis PutRecord on the destination stream. + /// The ARN of an IAM role that grants CloudWatch Logs permissions to call the Amazon Kinesis PutRecord operation on the destination stream. public let roleArn: String - /// The ARN of an Amazon Kinesis stream to deliver matching log events to. + /// The ARN of an Amazon Kinesis stream to which to deliver matching log events. public let targetArn: String public init(destinationName: String, roleArn: String, targetArn: String) { @@ -506,17 +588,37 @@ extension Logs { } } + public struct DescribeResourcePoliciesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "resourcePolicies", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// The resource policies that exist in this account. + public let resourcePolicies: [ResourcePolicy]? + public let nextToken: String? + + public init(resourcePolicies: [ResourcePolicy]? = nil, nextToken: String? = nil) { + self.resourcePolicies = resourcePolicies + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case resourcePolicies = "resourcePolicies" + case nextToken = "nextToken" + } + } + public struct OutputLogEvent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "timestamp", required: false, type: .long), AWSShapeMember(label: "message", required: false, type: .string), AWSShapeMember(label: "ingestionTime", required: false, type: .long) ] - /// The time the event occurred, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let timestamp: Int64? /// The data contained in the log event. public let message: String? - /// The time the event was ingested, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let ingestionTime: Int64? public init(timestamp: Int64? = nil, message: String? = nil, ingestionTime: Int64? = nil) { @@ -533,7 +635,7 @@ extension Logs { } public struct DeleteLogStreamRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "logGroupName", required: true, type: .string), AWSShapeMember(label: "logStreamName", required: true, type: .string) ] @@ -554,7 +656,7 @@ extension Logs { } public struct DescribeSubscriptionFiltersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "filterNamePrefix", required: false, type: .string), AWSShapeMember(label: "limit", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -585,7 +687,7 @@ extension Logs { } public struct DescribeLogGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "limit", required: false, type: .integer), AWSShapeMember(label: "logGroupNamePrefix", required: false, type: .string), AWSShapeMember(label: "nextToken", required: false, type: .string) @@ -611,7 +713,7 @@ extension Logs { } public struct DescribeMetricFiltersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "limit", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "filterNamePrefix", required: false, type: .string), @@ -627,7 +729,6 @@ extension Logs { public let filterNamePrefix: String? /// The name of the log group. public let logGroupName: String? - /// The name of the CloudWatch metric. public let metricName: String? /// The namespace of the CloudWatch metric. public let metricNamespace: String? @@ -652,7 +753,7 @@ extension Logs { } public struct DeleteSubscriptionFilterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "filterName", required: true, type: .string), AWSShapeMember(label: "logGroupName", required: true, type: .string) ] @@ -673,7 +774,7 @@ extension Logs { } public struct DescribeExportTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "statusCode", required: false, type: .enum), AWSShapeMember(label: "taskId", required: false, type: .string), @@ -703,8 +804,24 @@ extension Logs { } } + public struct PutResourcePolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "resourcePolicy", required: false, type: .structure) + ] + /// The new policy. + public let resourcePolicy: ResourcePolicy? + + public init(resourcePolicy: ResourcePolicy? = nil) { + self.resourcePolicy = resourcePolicy + } + + private enum CodingKeys: String, CodingKey { + case resourcePolicy = "resourcePolicy" + } + } + public struct CreateExportTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "destinationPrefix", required: false, type: .string), AWSShapeMember(label: "destination", required: true, type: .string), AWSShapeMember(label: "from", required: true, type: .long), @@ -717,13 +834,13 @@ extension Logs { public let destinationPrefix: String? /// The name of S3 bucket for the exported log data. The bucket must be in the same AWS region. public let destination: String - /// The start time of the range for the request, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp earlier than this time are not exported. + /// The start time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp earlier than this time are not exported. public let from: Int64 /// The name of the export task. public let taskName: String? /// The name of the log group. public let logGroupName: String - /// The end time of the range for the request, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported. + /// The end time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp later than this time are not exported. public let to: Int64 /// Export only log streams that match the provided prefix. If you don't specify a value, no prefix filter is applied. public let logStreamNamePrefix: String? @@ -750,7 +867,7 @@ extension Logs { } public struct MetricFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "metricTransformations", required: false, type: .list), AWSShapeMember(label: "filterName", required: false, type: .string), AWSShapeMember(label: "logGroupName", required: false, type: .string), @@ -763,7 +880,7 @@ extension Logs { public let filterName: String? /// The name of the log group. public let logGroupName: String? - /// The creation time of the metric filter, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The creation time of the metric filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let creationTime: Int64? public let filterPattern: String? @@ -785,7 +902,7 @@ extension Logs { } public struct TestMetricFilterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "filterPattern", required: true, type: .string), AWSShapeMember(label: "logEventMessages", required: true, type: .list) ] @@ -805,7 +922,7 @@ extension Logs { } public struct DeleteLogGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "logGroupName", required: true, type: .string) ] /// The name of the log group. @@ -821,7 +938,7 @@ extension Logs { } public struct GetLogEventsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextForwardToken", required: false, type: .string), AWSShapeMember(label: "nextBackwardToken", required: false, type: .string), AWSShapeMember(label: "events", required: false, type: .list) @@ -847,7 +964,7 @@ extension Logs { } public struct ExportTaskStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "code", required: false, type: .enum), AWSShapeMember(label: "message", required: false, type: .string) ] @@ -868,7 +985,7 @@ extension Logs { } public struct Destination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accessPolicy", required: false, type: .string), AWSShapeMember(label: "destinationName", required: false, type: .string), AWSShapeMember(label: "roleArn", required: false, type: .string), @@ -882,9 +999,9 @@ extension Logs { public let destinationName: String? /// A role for impersonation, used when delivering log events to the target. public let roleArn: String? - /// The creation time of the destination, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The creation time of the destination, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let creationTime: Int64? - /// The Amazon Resource Name (ARN) of the physical target where the log events will be delivered (for example, a Kinesis stream). + /// The Amazon Resource Name (ARN) of the physical target to where the log events are delivered (for example, a Kinesis stream). public let targetArn: String? /// The ARN of this destination. public let arn: String? @@ -909,28 +1026,54 @@ extension Logs { } public struct CreateLogGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: false, type: .map), - AWSShapeMember(label: "logGroupName", required: true, type: .string) + AWSShapeMember(label: "logGroupName", required: true, type: .string), + AWSShapeMember(label: "kmsKeyId", required: false, type: .string) ] /// The key-value pairs to use for the tags. public let tags: [String: String]? /// The name of the log group. public let logGroupName: String + /// The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. For more information, see Amazon Resource Names - AWS Key Management Service (AWS KMS). + public let kmsKeyId: String? - public init(tags: [String: String]? = nil, logGroupName: String) { + public init(tags: [String: String]? = nil, logGroupName: String, kmsKeyId: String? = nil) { self.tags = tags self.logGroupName = logGroupName + self.kmsKeyId = kmsKeyId } private enum CodingKeys: String, CodingKey { case tags = "tags" case logGroupName = "logGroupName" + case kmsKeyId = "kmsKeyId" + } + } + + public struct AssociateKmsKeyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "logGroupName", required: true, type: .string), + AWSShapeMember(label: "kmsKeyId", required: true, type: .string) + ] + /// The name of the log group. + public let logGroupName: String + /// The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. For more information, see Amazon Resource Names - AWS Key Management Service (AWS KMS). + public let kmsKeyId: String + + public init(logGroupName: String, kmsKeyId: String) { + self.logGroupName = logGroupName + self.kmsKeyId = kmsKeyId + } + + private enum CodingKeys: String, CodingKey { + case logGroupName = "logGroupName" + case kmsKeyId = "kmsKeyId" } } public struct DescribeExportTasksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "exportTasks", required: false, type: .list) ] @@ -950,7 +1093,7 @@ extension Logs { } public struct CancelExportTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskId", required: true, type: .string) ] /// The ID of the export task. @@ -965,8 +1108,28 @@ extension Logs { } } + public struct DescribeResourcePoliciesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "limit", required: false, type: .integer) + ] + public let nextToken: String? + /// The maximum number of resource policies to be displayed with one call of this API. + public let limit: Int32? + + public init(nextToken: String? = nil, limit: Int32? = nil) { + self.nextToken = nextToken + self.limit = limit + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case limit = "limit" + } + } + public struct UntagLogGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: true, type: .list), AWSShapeMember(label: "logGroupName", required: true, type: .string) ] @@ -987,10 +1150,10 @@ extension Logs { } public struct ListTagsLogGroupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: false, type: .map) ] - /// The tags. + /// The tags for the log group. public let tags: [String: String]? public init(tags: [String: String]? = nil) { @@ -1003,7 +1166,7 @@ extension Logs { } public struct DeleteMetricFilterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "filterName", required: true, type: .string), AWSShapeMember(label: "logGroupName", required: true, type: .string) ] @@ -1024,47 +1187,52 @@ extension Logs { } public struct LogGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "storedBytes", required: false, type: .long), - AWSShapeMember(label: "arn", required: false, type: .string), - AWSShapeMember(label: "logGroupName", required: false, type: .string), AWSShapeMember(label: "creationTime", required: false, type: .long), + AWSShapeMember(label: "metricFilterCount", required: false, type: .integer), + AWSShapeMember(label: "kmsKeyId", required: false, type: .string), + AWSShapeMember(label: "logGroupName", required: false, type: .string), AWSShapeMember(label: "retentionInDays", required: false, type: .integer), - AWSShapeMember(label: "metricFilterCount", required: false, type: .integer) + AWSShapeMember(label: "arn", required: false, type: .string) ] /// The number of bytes stored. public let storedBytes: Int64? - /// The Amazon Resource Name (ARN) of the log group. - public let arn: String? - /// The name of the log group. - public let logGroupName: String? - /// The creation time of the log group, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The creation time of the log group, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let creationTime: Int64? - public let retentionInDays: Int32? /// The number of metric filters. public let metricFilterCount: Int32? + /// The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + public let kmsKeyId: String? + /// The name of the log group. + public let logGroupName: String? + public let retentionInDays: Int32? + /// The Amazon Resource Name (ARN) of the log group. + public let arn: String? - public init(storedBytes: Int64? = nil, arn: String? = nil, logGroupName: String? = nil, creationTime: Int64? = nil, retentionInDays: Int32? = nil, metricFilterCount: Int32? = nil) { + public init(storedBytes: Int64? = nil, creationTime: Int64? = nil, metricFilterCount: Int32? = nil, kmsKeyId: String? = nil, logGroupName: String? = nil, retentionInDays: Int32? = nil, arn: String? = nil) { self.storedBytes = storedBytes - self.arn = arn - self.logGroupName = logGroupName self.creationTime = creationTime - self.retentionInDays = retentionInDays self.metricFilterCount = metricFilterCount + self.kmsKeyId = kmsKeyId + self.logGroupName = logGroupName + self.retentionInDays = retentionInDays + self.arn = arn } private enum CodingKeys: String, CodingKey { case storedBytes = "storedBytes" - case arn = "arn" - case logGroupName = "logGroupName" case creationTime = "creationTime" - case retentionInDays = "retentionInDays" case metricFilterCount = "metricFilterCount" + case kmsKeyId = "kmsKeyId" + case logGroupName = "logGroupName" + case retentionInDays = "retentionInDays" + case arn = "arn" } } public struct TagLogGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tags", required: true, type: .map), AWSShapeMember(label: "logGroupName", required: true, type: .string) ] @@ -1085,7 +1253,7 @@ extension Logs { } public struct DescribeSubscriptionFiltersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "subscriptionFilters", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -1111,7 +1279,7 @@ extension Logs { } public struct GetLogEventsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "limit", required: false, type: .integer), AWSShapeMember(label: "logStreamName", required: true, type: .string), @@ -1122,17 +1290,17 @@ extension Logs { ] /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? - /// The maximum number of log events returned. If you don't specify a value, the maximum is as many log events as can fit in a response size of 1MB, up to 10,000 log events. + /// The maximum number of log events returned. If you don't specify a value, the maximum is as many log events as can fit in a response size of 1 MB, up to 10,000 log events. public let limit: Int32? /// The name of the log stream. public let logStreamName: String /// If the value is true, the earliest log events are returned first. If the value is false, the latest log events are returned first. The default value is false. public let startFromHead: Bool? - /// The end of the time range, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not included. + /// The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp later than this time are not included. public let endTime: Int64? /// The name of the log group. public let logGroupName: String - /// The start of the time range, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp earlier than this time are not included. + /// The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp earlier than this time are not included. public let startTime: Int64? public init(nextToken: String? = nil, limit: Int32? = nil, logStreamName: String, startFromHead: Bool? = nil, endTime: Int64? = nil, logGroupName: String, startTime: Int64? = nil) { @@ -1157,7 +1325,7 @@ extension Logs { } public struct FilterLogEventsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "searchedLogStreams", required: false, type: .list), AWSShapeMember(label: "events", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) @@ -1183,7 +1351,7 @@ extension Logs { } public struct PutDestinationPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "accessPolicy", required: true, type: .string), AWSShapeMember(label: "destinationName", required: true, type: .string) ] @@ -1204,7 +1372,7 @@ extension Logs { } public struct ListTagsLogGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "logGroupName", required: true, type: .string) ] /// The name of the log group. @@ -1220,7 +1388,7 @@ extension Logs { } public struct SearchedLogStream: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "logStreamName", required: false, type: .string), AWSShapeMember(label: "searchedCompletely", required: false, type: .boolean) ] @@ -1241,7 +1409,7 @@ extension Logs { } public struct PutRetentionPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "logGroupName", required: true, type: .string), AWSShapeMember(label: "retentionInDays", required: true, type: .integer) ] @@ -1261,7 +1429,7 @@ extension Logs { } public struct FilterLogEventsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "limit", required: false, type: .integer), AWSShapeMember(label: "filterPattern", required: false, type: .string), @@ -1277,15 +1445,15 @@ extension Logs { public let limit: Int32? /// The filter pattern to use. If not provided, all the events are matched. public let filterPattern: String? - /// The end of the time range, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not returned. + /// The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp later than this time are not returned. public let endTime: Int64? /// The name of the log group. public let logGroupName: String /// Optional list of log stream names. public let logStreamNames: [String]? - /// The start of the time range, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp prior to this time are not returned. + /// The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp before this time are not returned. public let startTime: Int64? - /// If the value is true, the operation makes a best effort to provide responses that contain events from multiple log streams within the log group interleaved in a single response. If the value is false all the matched log events in the first log stream are searched first, then those in the next log stream, and so on. The default is false. + /// If the value is true, the operation makes a best effort to provide responses that contain events from multiple log streams within the log group, interleaved in a single response. If the value is false, all the matched log events in the first log stream are searched first, then those in the next log stream, and so on. The default is false. public let interleaved: Bool? public init(nextToken: String? = nil, limit: Int32? = nil, filterPattern: String? = nil, endTime: Int64? = nil, logGroupName: String, logStreamNames: [String]? = nil, startTime: Int64? = nil, interleaved: Bool? = nil) { @@ -1312,7 +1480,7 @@ extension Logs { } public struct CreateExportTaskResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskId", required: false, type: .string) ] /// The ID of the export task. @@ -1328,7 +1496,7 @@ extension Logs { } public struct MetricFilterMatchRecord: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "extractedValues", required: false, type: .map), AWSShapeMember(label: "eventNumber", required: false, type: .long), AWSShapeMember(label: "eventMessage", required: false, type: .string) @@ -1353,8 +1521,24 @@ extension Logs { } } + public struct DeleteResourcePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyName", required: false, type: .string) + ] + /// The name of the policy to be revoked. This parameter is required. + public let policyName: String? + + public init(policyName: String? = nil) { + self.policyName = policyName + } + + private enum CodingKeys: String, CodingKey { + case policyName = "policyName" + } + } + public struct PutDestinationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "destination", required: false, type: .structure) ] /// The destination. @@ -1370,7 +1554,7 @@ extension Logs { } public struct SubscriptionFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "distribution", required: false, type: .enum), AWSShapeMember(label: "roleArn", required: false, type: .string), AWSShapeMember(label: "destinationArn", required: false, type: .string), @@ -1379,12 +1563,11 @@ extension Logs { AWSShapeMember(label: "filterName", required: false, type: .string), AWSShapeMember(label: "logGroupName", required: false, type: .string) ] - /// The method used to distribute log data to the destination, when the destination is an Amazon Kinesis stream. public let distribution: Distribution? public let roleArn: String? /// The Amazon Resource Name (ARN) of the destination. public let destinationArn: String? - /// The creation time of the subscription filter, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + /// The creation time of the subscription filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. public let creationTime: Int64? public let filterPattern: String? /// The name of the subscription filter. @@ -1413,84 +1596,29 @@ extension Logs { } } - public struct DescribeMetricFiltersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "nextToken", required: false, type: .string), - AWSShapeMember(label: "metricFilters", required: false, type: .list) + public struct PutResourcePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "policyDocument", required: false, type: .string), + AWSShapeMember(label: "policyName", required: false, type: .string) ] - public let nextToken: String? - /// The metric filters. - public let metricFilters: [MetricFilter]? + /// Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. The following example creates a resource policy enabling the Route 53 service to put DNS query logs in to the specified log group. Replace "logArn" with the ARN of your CloudWatch Logs resource, such as a log group or log stream. { "Version": "2012-10-17" "Statement": [ { "Sid": "Route53LogsToCloudWatchLogs", "Effect": "Allow", "Principal": { "Service": [ "route53.amazonaws.com" ] }, "Action":"logs:PutLogEvents", "Resource": logArn } ] } + public let policyDocument: String? + /// Name of the new policy. This parameter is required. + public let policyName: String? - public init(nextToken: String? = nil, metricFilters: [MetricFilter]? = nil) { - self.nextToken = nextToken - self.metricFilters = metricFilters + public init(policyDocument: String? = nil, policyName: String? = nil) { + self.policyDocument = policyDocument + self.policyName = policyName } private enum CodingKeys: String, CodingKey { - case nextToken = "nextToken" - case metricFilters = "metricFilters" - } - } - - public struct ExportTask: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "status", required: false, type: .structure), - AWSShapeMember(label: "destination", required: false, type: .string), - AWSShapeMember(label: "taskId", required: false, type: .string), - AWSShapeMember(label: "destinationPrefix", required: false, type: .string), - AWSShapeMember(label: "from", required: false, type: .long), - AWSShapeMember(label: "taskName", required: false, type: .string), - AWSShapeMember(label: "executionInfo", required: false, type: .structure), - AWSShapeMember(label: "logGroupName", required: false, type: .string), - AWSShapeMember(label: "to", required: false, type: .long) - ] - /// The status of the export task. - public let status: ExportTaskStatus? - /// The name of Amazon S3 bucket to which the log data was exported. - public let destination: String? - /// The ID of the export task. - public let taskId: String? - /// The prefix that was used as the start of Amazon S3 key for every object exported. - public let destinationPrefix: String? - /// The start time, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp prior to this time are not exported. - public let from: Int64? - /// The name of the export task. - public let taskName: String? - /// Execution info about the export task. - public let executionInfo: ExportTaskExecutionInfo? - /// The name of the log group from which logs data was exported. - public let logGroupName: String? - /// The end time, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported. - public let to: Int64? - - public init(status: ExportTaskStatus? = nil, destination: String? = nil, taskId: String? = nil, destinationPrefix: String? = nil, from: Int64? = nil, taskName: String? = nil, executionInfo: ExportTaskExecutionInfo? = nil, logGroupName: String? = nil, to: Int64? = nil) { - self.status = status - self.destination = destination - self.taskId = taskId - self.destinationPrefix = destinationPrefix - self.from = from - self.taskName = taskName - self.executionInfo = executionInfo - self.logGroupName = logGroupName - self.to = to - } - - private enum CodingKeys: String, CodingKey { - case status = "status" - case destination = "destination" - case taskId = "taskId" - case destinationPrefix = "destinationPrefix" - case from = "from" - case taskName = "taskName" - case executionInfo = "executionInfo" - case logGroupName = "logGroupName" - case to = "to" + case policyDocument = "policyDocument" + case policyName = "policyName" } } public struct PutLogEventsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "rejectedLogEventsInfo", required: false, type: .structure), AWSShapeMember(label: "nextSequenceToken", required: false, type: .string) ] @@ -1510,8 +1638,28 @@ extension Logs { } } + public struct DescribeMetricFiltersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "metricFilters", required: false, type: .list) + ] + public let nextToken: String? + /// The metric filters. + public let metricFilters: [MetricFilter]? + + public init(nextToken: String? = nil, metricFilters: [MetricFilter]? = nil) { + self.nextToken = nextToken + self.metricFilters = metricFilters + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case metricFilters = "metricFilters" + } + } + public struct DescribeDestinationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "limit", required: false, type: .integer), AWSShapeMember(label: "DestinationNamePrefix", required: false, type: .string), AWSShapeMember(label: "nextToken", required: false, type: .string) @@ -1536,4 +1684,20 @@ extension Logs { } } + public struct TestMetricFilterResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "matches", required: false, type: .list) + ] + /// The matched events. + public let matches: [MetricFilterMatchRecord]? + + public init(matches: [MetricFilterMatchRecord]? = nil) { + self.matches = matches + } + + private enum CodingKeys: String, CodingKey { + case matches = "matches" + } + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/machinelearning/Machinelearning_Shapes.swift b/Sources/AWSSDKSwift/Services/machinelearning/Machinelearning_Shapes.swift index ca4225c4616..16ef2679c88 100644 --- a/Sources/AWSSDKSwift/Services/machinelearning/Machinelearning_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/machinelearning/Machinelearning_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Machinelearning { public struct CreateBatchPredictionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BatchPredictionName", required: false, type: .string), AWSShapeMember(label: "BatchPredictionId", required: true, type: .string), AWSShapeMember(label: "OutputUri", required: true, type: .string), @@ -42,7 +42,7 @@ extension Machinelearning { } public struct CreateDataSourceFromRedshiftInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: true, type: .string), AWSShapeMember(label: "DataSourceName", required: false, type: .string), AWSShapeMember(label: "ComputeStatistics", required: false, type: .boolean), @@ -78,7 +78,7 @@ extension Machinelearning { } public struct CreateDataSourceFromS3Output: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: false, type: .string) ] /// A user-supplied ID that uniquely identifies the DataSource. This value should be identical to the value of the DataSourceID in the request. @@ -94,7 +94,7 @@ extension Machinelearning { } public struct S3DataSpec: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataLocationS3", required: true, type: .string), AWSShapeMember(label: "DataSchema", required: false, type: .string), AWSShapeMember(label: "DataSchemaLocationS3", required: false, type: .string), @@ -125,7 +125,7 @@ extension Machinelearning { } public struct DescribeDataSourcesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Results", required: false, type: .list) ] @@ -146,7 +146,7 @@ extension Machinelearning { } public struct DeleteBatchPredictionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BatchPredictionId", required: false, type: .string) ] /// A user-supplied ID that uniquely identifies the BatchPrediction. This value should be identical to the value of the BatchPredictionID in the request. @@ -162,7 +162,7 @@ extension Machinelearning { } public struct GetMLModelInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: true, type: .string), AWSShapeMember(label: "Verbose", required: false, type: .boolean) ] @@ -183,7 +183,7 @@ extension Machinelearning { } public struct RedshiftMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SelectSqlQuery", required: false, type: .string), AWSShapeMember(label: "DatabaseUserName", required: false, type: .string), AWSShapeMember(label: "RedshiftDatabase", required: false, type: .structure) @@ -207,7 +207,7 @@ extension Machinelearning { } public struct RDSDatabase: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceIdentifier", required: true, type: .string), AWSShapeMember(label: "DatabaseName", required: true, type: .string) ] @@ -241,7 +241,7 @@ extension Machinelearning { } public struct DeleteBatchPredictionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BatchPredictionId", required: true, type: .string) ] /// A user-supplied ID that uniquely identifies the BatchPrediction. @@ -266,7 +266,7 @@ extension Machinelearning { } public struct UpdateMLModelInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: true, type: .string), AWSShapeMember(label: "ScoreThreshold", required: false, type: .float), AWSShapeMember(label: "MLModelName", required: false, type: .string) @@ -304,7 +304,7 @@ extension Machinelearning { } public struct DescribeMLModelsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Results", required: false, type: .list) ] @@ -325,7 +325,7 @@ extension Machinelearning { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -352,7 +352,7 @@ extension Machinelearning { } public struct CreateEvaluationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EvaluationName", required: false, type: .string), AWSShapeMember(label: "EvaluationId", required: true, type: .string), AWSShapeMember(label: "MLModelId", required: true, type: .string), @@ -383,7 +383,7 @@ extension Machinelearning { } public struct RealtimeEndpointInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PeakRequestsPerSecond", required: false, type: .integer), AWSShapeMember(label: "EndpointUrl", required: false, type: .string), AWSShapeMember(label: "CreatedAt", required: false, type: .timestamp), @@ -414,7 +414,7 @@ extension Machinelearning { } public struct DescribeBatchPredictionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Results", required: false, type: .list) ] @@ -441,7 +441,7 @@ extension Machinelearning { } public struct GetDataSourceOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSizeInBytes", required: false, type: .long), AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "NumberOfFiles", required: false, type: .long), @@ -549,7 +549,7 @@ extension Machinelearning { } public struct PredictInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: true, type: .string), AWSShapeMember(label: "PredictEndpoint", required: true, type: .string), AWSShapeMember(label: "Record", required: true, type: .map) @@ -573,7 +573,7 @@ extension Machinelearning { } public struct DeleteRealtimeEndpointOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: false, type: .string), AWSShapeMember(label: "RealtimeEndpointInfo", required: false, type: .structure) ] @@ -594,7 +594,7 @@ extension Machinelearning { } public struct DescribeEvaluationsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Results", required: false, type: .list) ] @@ -615,7 +615,7 @@ extension Machinelearning { } public struct RDSDataSpec: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSchemaUri", required: false, type: .string), AWSShapeMember(label: "DatabaseCredentials", required: true, type: .structure), AWSShapeMember(label: "S3StagingLocation", required: true, type: .string), @@ -681,7 +681,7 @@ extension Machinelearning { } public struct Prediction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .map), AWSShapeMember(label: "predictedScores", required: false, type: .map), AWSShapeMember(label: "predictedLabel", required: false, type: .string), @@ -710,7 +710,7 @@ extension Machinelearning { } public struct DeleteMLModelInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: true, type: .string) ] /// A user-supplied ID that uniquely identifies the MLModel. @@ -731,7 +731,7 @@ extension Machinelearning { } public struct GetBatchPredictionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BatchPredictionId", required: true, type: .string) ] /// An ID assigned to the BatchPrediction at creation. @@ -747,7 +747,7 @@ extension Machinelearning { } public struct CreateDataSourceFromRDSInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: true, type: .string), AWSShapeMember(label: "RDSData", required: true, type: .structure), AWSShapeMember(label: "DataSourceName", required: false, type: .string), @@ -783,7 +783,7 @@ extension Machinelearning { } public struct RedshiftDataSpec: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSchemaUri", required: false, type: .string), AWSShapeMember(label: "DatabaseCredentials", required: true, type: .structure), AWSShapeMember(label: "S3StagingLocation", required: true, type: .string), @@ -829,7 +829,7 @@ extension Machinelearning { } public struct Evaluation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PerformanceMetrics", required: false, type: .structure), AWSShapeMember(label: "EvaluationId", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string), @@ -907,7 +907,7 @@ extension Machinelearning { } public struct CreateDataSourceFromRedshiftOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: false, type: .string) ] /// A user-supplied ID that uniquely identifies the datasource. This value should be identical to the value of the DataSourceID in the request. @@ -923,7 +923,7 @@ extension Machinelearning { } public struct RDSMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DatabaseUserName", required: false, type: .string), AWSShapeMember(label: "DataPipelineId", required: false, type: .string), AWSShapeMember(label: "ResourceRole", required: false, type: .string), @@ -963,7 +963,7 @@ extension Machinelearning { } public struct DescribeTagsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "ResourceType", required: false, type: .enum) @@ -989,7 +989,7 @@ extension Machinelearning { } public struct CreateEvaluationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EvaluationId", required: false, type: .string) ] /// The user-supplied ID that uniquely identifies the Evaluation. This value should be identical to the value of the EvaluationId in the request. @@ -1005,7 +1005,7 @@ extension Machinelearning { } public struct AddTagsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: false, type: .string), AWSShapeMember(label: "ResourceType", required: false, type: .enum) ] @@ -1026,7 +1026,7 @@ extension Machinelearning { } public struct DeleteDataSourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: true, type: .string) ] /// A user-supplied ID that uniquely identifies the DataSource. @@ -1042,7 +1042,7 @@ extension Machinelearning { } public struct UpdateDataSourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: true, type: .string), AWSShapeMember(label: "DataSourceName", required: true, type: .string) ] @@ -1063,7 +1063,7 @@ extension Machinelearning { } public struct GetBatchPredictionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "MLModelId", required: false, type: .string), AWSShapeMember(label: "CreatedByIamUser", required: false, type: .string), @@ -1159,7 +1159,7 @@ extension Machinelearning { } public struct UpdateBatchPredictionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BatchPredictionName", required: true, type: .string), AWSShapeMember(label: "BatchPredictionId", required: true, type: .string) ] @@ -1180,7 +1180,7 @@ extension Machinelearning { } public struct RedshiftDatabaseCredentials: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Password", required: true, type: .string), AWSShapeMember(label: "Username", required: true, type: .string) ] @@ -1211,7 +1211,7 @@ extension Machinelearning { } public struct UpdateEvaluationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EvaluationId", required: false, type: .string) ] /// The ID assigned to the Evaluation during creation. This value should be identical to the value of the Evaluation in the request. @@ -1227,7 +1227,7 @@ extension Machinelearning { } public struct UpdateEvaluationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EvaluationName", required: true, type: .string), AWSShapeMember(label: "EvaluationId", required: true, type: .string) ] @@ -1248,7 +1248,7 @@ extension Machinelearning { } public struct CreateBatchPredictionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BatchPredictionId", required: false, type: .string) ] /// A user-supplied ID that uniquely identifies the BatchPrediction. This value is identical to the value of the BatchPredictionId in the request. @@ -1264,7 +1264,7 @@ extension Machinelearning { } public struct DescribeEvaluationsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NE", required: false, type: .string), AWSShapeMember(label: "EQ", required: false, type: .string), AWSShapeMember(label: "GT", required: false, type: .string), @@ -1330,7 +1330,7 @@ extension Machinelearning { } public struct CreateMLModelOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: false, type: .string) ] /// A user-supplied ID that uniquely identifies the MLModel. This value should be identical to the value of the MLModelId in the request. @@ -1346,7 +1346,7 @@ extension Machinelearning { } public struct RedshiftDatabase: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string), AWSShapeMember(label: "DatabaseName", required: true, type: .string) ] @@ -1365,7 +1365,7 @@ extension Machinelearning { } public struct UpdateMLModelOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: false, type: .string) ] /// The ID assigned to the MLModel during creation. This value should be identical to the value of the MLModelID in the request. @@ -1381,7 +1381,7 @@ extension Machinelearning { } public struct BatchPrediction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "MLModelId", required: false, type: .string), AWSShapeMember(label: "CreatedByIamUser", required: false, type: .string), @@ -1467,7 +1467,7 @@ extension Machinelearning { } public struct CreateDataSourceFromS3Input: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: true, type: .string), AWSShapeMember(label: "DataSourceName", required: false, type: .string), AWSShapeMember(label: "DataSpec", required: true, type: .structure), @@ -1498,7 +1498,7 @@ extension Machinelearning { } public struct GetEvaluationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EvaluationId", required: true, type: .string) ] /// The ID of the Evaluation to retrieve. The evaluation of each MLModel is recorded and cataloged. The ID provides the means to access the information. @@ -1514,7 +1514,7 @@ extension Machinelearning { } public struct RDSDatabaseCredentials: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Password", required: true, type: .string), AWSShapeMember(label: "Username", required: true, type: .string) ] @@ -1533,7 +1533,7 @@ extension Machinelearning { } public struct DeleteRealtimeEndpointInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: true, type: .string) ] /// The ID assigned to the MLModel during creation. @@ -1549,7 +1549,7 @@ extension Machinelearning { } public struct CreateRealtimeEndpointInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: true, type: .string) ] /// The ID assigned to the MLModel during creation. @@ -1565,7 +1565,7 @@ extension Machinelearning { } public struct DeleteDataSourceOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: false, type: .string) ] /// A user-supplied ID that uniquely identifies the DataSource. This value should be identical to the value of the DataSourceID in the request. @@ -1581,7 +1581,7 @@ extension Machinelearning { } public struct GetMLModelOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ScoreThresholdLastUpdatedAt", required: false, type: .timestamp), AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "TrainingDataSourceId", required: false, type: .string), @@ -1696,7 +1696,7 @@ extension Machinelearning { } public struct UpdateDataSourceOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: false, type: .string) ] /// The ID assigned to the DataSource during creation. This value should be identical to the value of the DataSourceID in the request. @@ -1712,7 +1712,7 @@ extension Machinelearning { } public struct DescribeTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "ResourceType", required: true, type: .enum) ] @@ -1733,7 +1733,7 @@ extension Machinelearning { } public struct DeleteEvaluationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EvaluationId", required: true, type: .string) ] /// A user-supplied ID that uniquely identifies the Evaluation to delete. @@ -1749,7 +1749,7 @@ extension Machinelearning { } public struct MLModel: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Algorithm", required: false, type: .enum), AWSShapeMember(label: "ScoreThresholdLastUpdatedAt", required: false, type: .timestamp), AWSShapeMember(label: "Message", required: false, type: .string), @@ -1858,7 +1858,7 @@ extension Machinelearning { } public struct DataSource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSizeInBytes", required: false, type: .long), AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "NumberOfFiles", required: false, type: .long), @@ -1953,7 +1953,7 @@ extension Machinelearning { } public struct PredictOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Prediction", required: false, type: .structure) ] public let prediction: Prediction? @@ -1968,7 +1968,7 @@ extension Machinelearning { } public struct PerformanceMetrics: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Properties", required: false, type: .map) ] public let properties: [String: String]? @@ -1983,7 +1983,7 @@ extension Machinelearning { } public struct DescribeMLModelsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NE", required: false, type: .string), AWSShapeMember(label: "EQ", required: false, type: .string), AWSShapeMember(label: "GT", required: false, type: .string), @@ -2049,7 +2049,7 @@ extension Machinelearning { } public struct DeleteTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "ResourceType", required: true, type: .enum), AWSShapeMember(label: "TagKeys", required: true, type: .list) @@ -2082,7 +2082,7 @@ extension Machinelearning { } public struct GetEvaluationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PerformanceMetrics", required: false, type: .structure), AWSShapeMember(label: "EvaluationId", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string), @@ -2168,7 +2168,7 @@ extension Machinelearning { } public struct AddTagsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "Tags", required: true, type: .list), AWSShapeMember(label: "ResourceType", required: true, type: .enum) @@ -2194,7 +2194,7 @@ extension Machinelearning { } public struct DeleteMLModelOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: false, type: .string) ] /// A user-supplied ID that uniquely identifies the MLModel. This value should be identical to the value of the MLModelID in the request. @@ -2210,7 +2210,7 @@ extension Machinelearning { } public struct CreateDataSourceFromRDSOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: false, type: .string) ] /// A user-supplied ID that uniquely identifies the datasource. This value should be identical to the value of the DataSourceID in the request. @@ -2226,7 +2226,7 @@ extension Machinelearning { } public struct UpdateBatchPredictionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BatchPredictionId", required: false, type: .string) ] /// The ID assigned to the BatchPrediction during creation. This value should be identical to the value of the BatchPredictionId in the request. @@ -2242,7 +2242,7 @@ extension Machinelearning { } public struct CreateRealtimeEndpointOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MLModelId", required: false, type: .string), AWSShapeMember(label: "RealtimeEndpointInfo", required: false, type: .structure) ] @@ -2263,7 +2263,7 @@ extension Machinelearning { } public struct CreateMLModelInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecipeUri", required: false, type: .string), AWSShapeMember(label: "TrainingDataSourceId", required: true, type: .string), AWSShapeMember(label: "MLModelId", required: true, type: .string), @@ -2309,7 +2309,7 @@ extension Machinelearning { } public struct DescribeBatchPredictionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NE", required: false, type: .string), AWSShapeMember(label: "EQ", required: false, type: .string), AWSShapeMember(label: "GT", required: false, type: .string), @@ -2375,7 +2375,7 @@ extension Machinelearning { } public struct DescribeDataSourcesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NE", required: false, type: .string), AWSShapeMember(label: "EQ", required: false, type: .string), AWSShapeMember(label: "GT", required: false, type: .string), @@ -2441,7 +2441,7 @@ extension Machinelearning { } public struct DeleteTagsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: false, type: .string), AWSShapeMember(label: "ResourceType", required: false, type: .enum) ] @@ -2462,7 +2462,7 @@ extension Machinelearning { } public struct GetDataSourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataSourceId", required: true, type: .string), AWSShapeMember(label: "Verbose", required: false, type: .boolean) ] @@ -2501,7 +2501,7 @@ extension Machinelearning { } public struct DeleteEvaluationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EvaluationId", required: false, type: .string) ] /// A user-supplied ID that uniquely identifies the Evaluation. This value should be identical to the value of the EvaluationId in the request. diff --git a/Sources/AWSSDKSwift/Services/marketplacecommerceanalytics/Marketplacecommerceanalytics_Shapes.swift b/Sources/AWSSDKSwift/Services/marketplacecommerceanalytics/Marketplacecommerceanalytics_Shapes.swift index ac72122ab04..1e8e3bad0c2 100644 --- a/Sources/AWSSDKSwift/Services/marketplacecommerceanalytics/Marketplacecommerceanalytics_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/marketplacecommerceanalytics/Marketplacecommerceanalytics_Shapes.swift @@ -37,7 +37,7 @@ extension Marketplacecommerceanalytics { } public struct GenerateDataSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "snsTopicArn", required: true, type: .string), AWSShapeMember(label: "dataSetType", required: true, type: .enum), AWSShapeMember(label: "destinationS3Prefix", required: false, type: .string), @@ -48,7 +48,7 @@ extension Marketplacecommerceanalytics { ] /// Amazon Resource Name (ARN) for the SNS Topic that will be notified when the data set has been published or if an error has occurred. public let snsTopicArn: String - /// The desired data set type. customer_subscriber_hourly_monthly_subscriptions - Available daily by 5:00 PM Pacific Time since 2014-07-21. customer_subscriber_annual_subscriptions - Available daily by 5:00 PM Pacific Time since 2014-07-21. daily_business_usage_by_instance_type - Available daily by 5:00 PM Pacific Time since 2015-01-26. daily_business_fees - Available daily by 5:00 PM Pacific Time since 2015-01-26. daily_business_free_trial_conversions - Available daily by 5:00 PM Pacific Time since 2015-01-26. daily_business_new_instances - Available daily by 5:00 PM Pacific Time since 2015-01-26. daily_business_new_product_subscribers - Available daily by 5:00 PM Pacific Time since 2015-01-26. daily_business_canceled_product_subscribers - Available daily by 5:00 PM Pacific Time since 2015-01-26. monthly_revenue_billing_and_revenue_data - Available monthly on the 4th day of the month by 5:00 PM Pacific Time since 2015-02. monthly_revenue_annual_subscriptions - Available monthly on the 4th day of the month by 5:00 PM Pacific Time since 2015-02. disbursed_amount_by_product - Available every 30 days by 5:00 PM Pacific Time since 2015-01-26. disbursed_amount_by_product_with_uncollected_funds -This data set is only available from 2012-04-19 until 2015-01-25. After 2015-01-25, this data set was split into three data sets: disbursed_amount_by_product, disbursed_amount_by_age_of_uncollected_funds, and disbursed_amount_by_age_of_disbursed_funds. disbursed_amount_by_instance_hours - Available every 30 days by 5:00 PM Pacific Time since 2012-09-04. disbursed_amount_by_customer_geo - Available every 30 days by 5:00 PM Pacific Time since 2012-04-19. disbursed_amount_by_age_of_uncollected_funds - Available every 30 days by 5:00 PM Pacific Time since 2015-01-26. disbursed_amount_by_age_of_disbursed_funds - Available every 30 days by 5:00 PM Pacific Time since 2015-01-26. customer_profile_by_industry - Available daily by 5:00 PM Pacific Time from 2015-10-01 to 2017-06-29. After 2017-06-29 this data set will no longer be published. customer_profile_by_revenue - Available daily by 5:00 PM Pacific Time from 2015-10-01 to 2017-06-29. After 2017-06-29 this data set will no longer be published. customer_profile_by_geography - Available daily by 5:00 PM Pacific Time from 2015-10-01 to 2017-06-29. After 2017-06-29 this data set will no longer be published. sales_compensation_billed_revenue - Available monthly on the 4th day of the month by 5:00 PM Pacific Time since 2016-12. us_sales_and_use_tax_records - Available monthly on the 15th day of the month by 5:00 PM Pacific Time since 2017-02-15. + /// The desired data set type. customer_subscriber_hourly_monthly_subscriptions From 2014-07-21 to present: Available daily by 5:00 PM Pacific Time. customer_subscriber_annual_subscriptions From 2014-07-21 to present: Available daily by 5:00 PM Pacific Time. daily_business_usage_by_instance_type From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time. daily_business_fees From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time. daily_business_free_trial_conversions From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time. daily_business_new_instances From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time. daily_business_new_product_subscribers From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time. daily_business_canceled_product_subscribers From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time. monthly_revenue_billing_and_revenue_data From 2015-02 to 2017-06: Available monthly on the 4th day of the month by 5:00pm Pacific Time. Data includes metered transactions (e.g. hourly) from two months prior. From 2017-07 to present: Available monthly on the 15th day of the month by 5:00pm Pacific Time. Data includes metered transactions (e.g. hourly) from one month prior. monthly_revenue_annual_subscriptions From 2015-02 to 2017-06: Available monthly on the 4th day of the month by 5:00pm Pacific Time. Data includes up-front software charges (e.g. annual) from one month prior. From 2017-07 to present: Available monthly on the 15th day of the month by 5:00pm Pacific Time. Data includes up-front software charges (e.g. annual) from one month prior. disbursed_amount_by_product From 2015-01-26 to present: Available every 30 days by 5:00 PM Pacific Time. disbursed_amount_by_product_with_uncollected_funds From 2012-04-19 to 2015-01-25: Available every 30 days by 5:00 PM Pacific Time. From 2015-01-26 to present: This data set was split into three data sets: disbursed_amount_by_product, disbursed_amount_by_age_of_uncollected_funds, and disbursed_amount_by_age_of_disbursed_funds. disbursed_amount_by_instance_hours From 2012-09-04 to present: Available every 30 days by 5:00 PM Pacific Time. disbursed_amount_by_customer_geo From 2012-04-19 to present: Available every 30 days by 5:00 PM Pacific Time. disbursed_amount_by_age_of_uncollected_funds From 2015-01-26 to present: Available every 30 days by 5:00 PM Pacific Time. disbursed_amount_by_age_of_disbursed_funds From 2015-01-26 to present: Available every 30 days by 5:00 PM Pacific Time. customer_profile_by_industry From 2015-10-01 to 2017-06-29: Available daily by 5:00 PM Pacific Time. From 2017-06-30 to present: This data set is no longer available. customer_profile_by_revenue From 2015-10-01 to 2017-06-29: Available daily by 5:00 PM Pacific Time. From 2017-06-30 to present: This data set is no longer available. customer_profile_by_geography From 2015-10-01 to 2017-06-29: Available daily by 5:00 PM Pacific Time. From 2017-06-30 to present: This data set is no longer available. sales_compensation_billed_revenue From 2016-12 to 2017-06: Available monthly on the 4th day of the month by 5:00pm Pacific Time. Data includes metered transactions (e.g. hourly) from two months prior, and up-front software charges (e.g. annual) from one month prior. From 2017-06 to present: Available monthly on the 15th day of the month by 5:00pm Pacific Time. Data includes metered transactions (e.g. hourly) from one month prior, and up-front software charges (e.g. annual) from one month prior. us_sales_and_use_tax_records From 2017-02-15 to present: Available monthly on the 15th day of the month by 5:00 PM Pacific Time. public let dataSetType: DataSetType /// (Optional) The desired S3 prefix for the published data set, similar to a directory path in standard file systems. For example, if given the bucket name "mybucket" and the prefix "myprefix/mydatasets", the output file "outputfile" would be published to "s3://mybucket/myprefix/mydatasets/outputfile". If the prefix directory structure does not exist, it will be created. If no prefix is provided, the data set will be published to the S3 bucket root. public let destinationS3Prefix: String? @@ -83,7 +83,7 @@ extension Marketplacecommerceanalytics { } public struct StartSupportDataExportResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "dataSetRequestId", required: false, type: .string) ] /// A unique identifier representing a specific request to the StartSupportDataExport operation. This identifier can be used to correlate a request with notifications from the SNS topic. @@ -99,7 +99,7 @@ extension Marketplacecommerceanalytics { } public struct StartSupportDataExportRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "snsTopicArn", required: true, type: .string), AWSShapeMember(label: "dataSetType", required: true, type: .enum), AWSShapeMember(label: "destinationS3Prefix", required: false, type: .string), @@ -145,7 +145,7 @@ extension Marketplacecommerceanalytics { } public struct GenerateDataSetResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "dataSetRequestId", required: false, type: .string) ] /// A unique identifier representing a specific request to the GenerateDataSet operation. This identifier can be used to correlate a request with notifications from the SNS topic. diff --git a/Sources/AWSSDKSwift/Services/mediaconvert/Mediaconvert_API.swift b/Sources/AWSSDKSwift/Services/mediaconvert/Mediaconvert_API.swift new file mode 100644 index 00000000000..ba06733beb3 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediaconvert/Mediaconvert_API.swift @@ -0,0 +1,128 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +AWS Elemental MediaConvert +*/ +public struct Mediaconvert { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "mediaconvert", + serviceProtocol: ServiceProtocol(type: .restjson, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-08-29", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [MediaconvertError.self] + ) + } + + /// Retrieve a JSON array of up to twenty of your presets. This will return the presets themselves, not just a list of them. To retrieve the next twenty presets, use the nextToken string returned with the array. + public func listPresets(_ input: ListPresetsRequest) throws -> ListPresetsResponse { + return try client.send(operation: "ListPresets", path: "/2017-08-29/presets", httpMethod: "GET", input: input) + } + + /// Create a new job template. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html + public func createJobTemplate(_ input: CreateJobTemplateRequest) throws -> CreateJobTemplateResponse { + return try client.send(operation: "CreateJobTemplate", path: "/2017-08-29/jobTemplates", httpMethod: "POST", input: input) + } + + /// Permanently delete a preset you have created. + public func deletePreset(_ input: DeletePresetRequest) throws -> DeletePresetResponse { + return try client.send(operation: "DeletePreset", path: "/2017-08-29/presets/{name}", httpMethod: "DELETE", input: input) + } + + /// Retrieve a JSON array of up to twenty of your job templates. This will return the templates themselves, not just a list of them. To retrieve the next twenty templates, use the nextToken string returned with the array + public func listJobTemplates(_ input: ListJobTemplatesRequest) throws -> ListJobTemplatesResponse { + return try client.send(operation: "ListJobTemplates", path: "/2017-08-29/jobTemplates", httpMethod: "GET", input: input) + } + + /// Modify one of your existing presets. + public func updatePreset(_ input: UpdatePresetRequest) throws -> UpdatePresetResponse { + return try client.send(operation: "UpdatePreset", path: "/2017-08-29/presets/{name}", httpMethod: "PUT", input: input) + } + + /// Create a new transcoding job. For information about jobs and job settings, see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html + public func createJob(_ input: CreateJobRequest) throws -> CreateJobResponse { + return try client.send(operation: "CreateJob", path: "/2017-08-29/jobs", httpMethod: "POST", input: input) + } + + /// Retrieve the JSON for a specific preset. + public func getPreset(_ input: GetPresetRequest) throws -> GetPresetResponse { + return try client.send(operation: "GetPreset", path: "/2017-08-29/presets/{name}", httpMethod: "GET", input: input) + } + + /// Modify one of your existing job templates. + public func updateJobTemplate(_ input: UpdateJobTemplateRequest) throws -> UpdateJobTemplateResponse { + return try client.send(operation: "UpdateJobTemplate", path: "/2017-08-29/jobTemplates/{name}", httpMethod: "PUT", input: input) + } + + /// Retrieve the JSON for a specific job template. + public func getJobTemplate(_ input: GetJobTemplateRequest) throws -> GetJobTemplateResponse { + return try client.send(operation: "GetJobTemplate", path: "/2017-08-29/jobTemplates/{name}", httpMethod: "GET", input: input) + } + + /// Retrieve the JSON for a specific queue. + public func getQueue(_ input: GetQueueRequest) throws -> GetQueueResponse { + return try client.send(operation: "GetQueue", path: "/2017-08-29/queues/{name}", httpMethod: "GET", input: input) + } + + /// Retrieve the JSON for a specific completed transcoding job. + public func getJob(_ input: GetJobRequest) throws -> GetJobResponse { + return try client.send(operation: "GetJob", path: "/2017-08-29/jobs/{id}", httpMethod: "GET", input: input) + } + + /// Permanently delete a job template you have created. + public func deleteJobTemplate(_ input: DeleteJobTemplateRequest) throws -> DeleteJobTemplateResponse { + return try client.send(operation: "DeleteJobTemplate", path: "/2017-08-29/jobTemplates/{name}", httpMethod: "DELETE", input: input) + } + + /// Permanently delete a queue you have created. + public func deleteQueue(_ input: DeleteQueueRequest) throws -> DeleteQueueResponse { + return try client.send(operation: "DeleteQueue", path: "/2017-08-29/queues/{name}", httpMethod: "DELETE", input: input) + } + + /// Retrieve a JSON array of up to twenty of your most recently created jobs. This array includes in-process, completed, and errored jobs. This will return the jobs themselves, not just a list of the jobs. To retrieve the twenty next most recent jobs, use the nextToken string returned with the array. + public func listJobs(_ input: ListJobsRequest) throws -> ListJobsResponse { + return try client.send(operation: "ListJobs", path: "/2017-08-29/jobs", httpMethod: "GET", input: input) + } + + /// Send an request with an empty body to the regional API endpoint to get your account API endpoint. + public func describeEndpoints(_ input: DescribeEndpointsRequest) throws -> DescribeEndpointsResponse { + return try client.send(operation: "DescribeEndpoints", path: "/2017-08-29/endpoints", httpMethod: "POST", input: input) + } + + /// Create a new transcoding queue. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html + public func createQueue(_ input: CreateQueueRequest) throws -> CreateQueueResponse { + return try client.send(operation: "CreateQueue", path: "/2017-08-29/queues", httpMethod: "POST", input: input) + } + + /// Retrieve a JSON array of up to twenty of your queues. This will return the queues themselves, not just a list of them. To retrieve the next twenty queues, use the nextToken string returned with the array. + public func listQueues(_ input: ListQueuesRequest) throws -> ListQueuesResponse { + return try client.send(operation: "ListQueues", path: "/2017-08-29/queues", httpMethod: "GET", input: input) + } + + /// Create a new preset. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html + public func createPreset(_ input: CreatePresetRequest) throws -> CreatePresetResponse { + return try client.send(operation: "CreatePreset", path: "/2017-08-29/presets", httpMethod: "POST", input: input) + } + + /// Modify one of your existing queues. + public func updateQueue(_ input: UpdateQueueRequest) throws -> UpdateQueueResponse { + return try client.send(operation: "UpdateQueue", path: "/2017-08-29/queues/{name}", httpMethod: "PUT", input: input) + } + + /// Permanently remove a job from a queue. Once you have canceled a job, you can't start it again. You can't delete a running job. + public func cancelJob(_ input: CancelJobRequest) throws -> CancelJobResponse { + return try client.send(operation: "CancelJob", path: "/2017-08-29/jobs/{id}", httpMethod: "DELETE", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediaconvert/Mediaconvert_Error.swift b/Sources/AWSSDKSwift/Services/mediaconvert/Mediaconvert_Error.swift new file mode 100644 index 00000000000..ba4ce57f2e0 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediaconvert/Mediaconvert_Error.swift @@ -0,0 +1,38 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Mediaconvert +public enum MediaconvertError: AWSErrorType { + case badRequestException(message: String?) + case internalServerErrorException(message: String?) + case forbiddenException(message: String?) + case notFoundException(message: String?) + case tooManyRequestsException(message: String?) + case conflictException(message: String?) +} + +extension MediaconvertError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "BadRequestException": + self = .badRequestException(message: message) + case "InternalServerErrorException": + self = .internalServerErrorException(message: message) + case "ForbiddenException": + self = .forbiddenException(message: message) + case "NotFoundException": + self = .notFoundException(message: message) + case "TooManyRequestsException": + self = .tooManyRequestsException(message: message) + case "ConflictException": + self = .conflictException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediaconvert/Mediaconvert_Shapes.swift b/Sources/AWSSDKSwift/Services/mediaconvert/Mediaconvert_Shapes.swift new file mode 100644 index 00000000000..8cc097a31ae --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediaconvert/Mediaconvert_Shapes.swift @@ -0,0 +1,6106 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Mediaconvert { + + public enum H264GopSizeUnits: String, CustomStringConvertible, Codable { + case frames = "FRAMES" + case seconds = "SECONDS" + public var description: String { return self.rawValue } + } + + public enum NoiseReducerFilter: String, CustomStringConvertible, Codable { + case bilateral = "BILATERAL" + case mean = "MEAN" + case gaussian = "GAUSSIAN" + case lanczos = "LANCZOS" + case sharpen = "SHARPEN" + case conserve = "CONSERVE" + case spatial = "SPATIAL" + public var description: String { return self.rawValue } + } + + public enum AacAudioDescriptionBroadcasterMix: String, CustomStringConvertible, Codable { + case broadcasterMixedAd = "BROADCASTER_MIXED_AD" + case normal = "NORMAL" + public var description: String { return self.rawValue } + } + + public enum AudioNormalizationAlgorithm: String, CustomStringConvertible, Codable { + case ituBs17701 = "ITU_BS_1770_1" + case ituBs17702 = "ITU_BS_1770_2" + public var description: String { return self.rawValue } + } + + public enum Ac3BitstreamMode: String, CustomStringConvertible, Codable { + case completeMain = "COMPLETE_MAIN" + case commentary = "COMMENTARY" + case dialogue = "DIALOGUE" + case emergency = "EMERGENCY" + case hearingImpaired = "HEARING_IMPAIRED" + case musicAndEffects = "MUSIC_AND_EFFECTS" + case visuallyImpaired = "VISUALLY_IMPAIRED" + case voiceOver = "VOICE_OVER" + public var description: String { return self.rawValue } + } + + public struct UpdateJobTemplateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobTemplate", location: .body(locationName: "jobTemplate"), required: false, type: .structure) + ] + public let jobTemplate: JobTemplate? + + public init(jobTemplate: JobTemplate? = nil) { + self.jobTemplate = jobTemplate + } + + private enum CodingKeys: String, CodingKey { + case jobTemplate = "jobTemplate" + } + } + + public enum TtmlStylePassthrough: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public enum DeinterlaceAlgorithm: String, CustomStringConvertible, Codable { + case interpolate = "INTERPOLATE" + case interpolateTicker = "INTERPOLATE_TICKER" + case blend = "BLEND" + case blendTicker = "BLEND_TICKER" + public var description: String { return self.rawValue } + } + + public struct RemixSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChannelsOut", location: .body(locationName: "channelsOut"), required: false, type: .integer), + AWSShapeMember(label: "ChannelMapping", location: .body(locationName: "channelMapping"), required: false, type: .structure), + AWSShapeMember(label: "ChannelsIn", location: .body(locationName: "channelsIn"), required: false, type: .integer) + ] + /// Specify the number of channels in this output after remixing. Valid values: 1, 2, 4, 6, 8 + public let channelsOut: Int32? + public let channelMapping: ChannelMapping? + /// Specify the number of audio channels from your input that you want to use in your output. With remixing, you might combine or split the data in these channels, so the number of channels in your final output might be different. + public let channelsIn: Int32? + + public init(channelsOut: Int32? = nil, channelMapping: ChannelMapping? = nil, channelsIn: Int32? = nil) { + self.channelsOut = channelsOut + self.channelMapping = channelMapping + self.channelsIn = channelsIn + } + + private enum CodingKeys: String, CodingKey { + case channelsOut = "channelsOut" + case channelMapping = "channelMapping" + case channelsIn = "channelsIn" + } + } + + public enum Mpeg2FramerateControl: String, CustomStringConvertible, Codable { + case initializeFromSource = "INITIALIZE_FROM_SOURCE" + case specified = "SPECIFIED" + public var description: String { return self.rawValue } + } + + public enum ColorMetadata: String, CustomStringConvertible, Codable { + case ignore = "IGNORE" + case insert = "INSERT" + public var description: String { return self.rawValue } + } + + public enum ColorSpaceUsage: String, CustomStringConvertible, Codable { + case force = "FORCE" + case fallback = "FALLBACK" + public var description: String { return self.rawValue } + } + + public enum Ac3DynamicRangeCompressionProfile: String, CustomStringConvertible, Codable { + case filmStandard = "FILM_STANDARD" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public enum MovPaddingControl: String, CustomStringConvertible, Codable { + case omneon = "OMNEON" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct TtmlDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StylePassthrough", location: .body(locationName: "stylePassthrough"), required: false, type: .enum) + ] + public let stylePassthrough: TtmlStylePassthrough? + + public init(stylePassthrough: TtmlStylePassthrough? = nil) { + self.stylePassthrough = stylePassthrough + } + + private enum CodingKeys: String, CodingKey { + case stylePassthrough = "stylePassthrough" + } + } + + public enum ProresFramerateConversionAlgorithm: String, CustomStringConvertible, Codable { + case duplicateDrop = "DUPLICATE_DROP" + case interpolate = "INTERPOLATE" + public var description: String { return self.rawValue } + } + + public enum H264SceneChangeDetect: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct Endpoint: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string) + ] + /// URL of endpoint + public let url: String? + + public init(url: String? = nil) { + self.url = url + } + + private enum CodingKeys: String, CodingKey { + case url = "url" + } + } + + public struct OutputGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CustomName", location: .body(locationName: "customName"), required: false, type: .string), + AWSShapeMember(label: "OutputGroupSettings", location: .body(locationName: "outputGroupSettings"), required: false, type: .structure), + AWSShapeMember(label: "Outputs", location: .body(locationName: "outputs"), required: false, type: .list), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string) + ] + /// Use Custom Group Name (CustomName) to specify a name for the output group. This value is displayed on the console and can make your job settings JSON more human-readable. It does not affect your outputs. Use up to twelve characters that are either letters, numbers, spaces, or underscores. + public let customName: String? + public let outputGroupSettings: OutputGroupSettings? + /// This object holds groups of encoding settings, one group of settings per output. + public let outputs: [Output]? + /// Name of the output group + public let name: String? + + public init(customName: String? = nil, outputGroupSettings: OutputGroupSettings? = nil, outputs: [Output]? = nil, name: String? = nil) { + self.customName = customName + self.outputGroupSettings = outputGroupSettings + self.outputs = outputs + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case customName = "customName" + case outputGroupSettings = "outputGroupSettings" + case outputs = "outputs" + case name = "name" + } + } + + public struct Eac3Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DynamicRangeCompressionRf", location: .body(locationName: "dynamicRangeCompressionRf"), required: false, type: .enum), + AWSShapeMember(label: "LtRtCenterMixLevel", location: .body(locationName: "ltRtCenterMixLevel"), required: false, type: .double), + AWSShapeMember(label: "StereoDownmix", location: .body(locationName: "stereoDownmix"), required: false, type: .enum), + AWSShapeMember(label: "Dialnorm", location: .body(locationName: "dialnorm"), required: false, type: .integer), + AWSShapeMember(label: "DcFilter", location: .body(locationName: "dcFilter"), required: false, type: .enum), + AWSShapeMember(label: "LtRtSurroundMixLevel", location: .body(locationName: "ltRtSurroundMixLevel"), required: false, type: .double), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .integer), + AWSShapeMember(label: "SurroundExMode", location: .body(locationName: "surroundExMode"), required: false, type: .enum), + AWSShapeMember(label: "MetadataControl", location: .body(locationName: "metadataControl"), required: false, type: .enum), + AWSShapeMember(label: "SurroundMode", location: .body(locationName: "surroundMode"), required: false, type: .enum), + AWSShapeMember(label: "CodingMode", location: .body(locationName: "codingMode"), required: false, type: .enum), + AWSShapeMember(label: "LfeFilter", location: .body(locationName: "lfeFilter"), required: false, type: .enum), + AWSShapeMember(label: "BitstreamMode", location: .body(locationName: "bitstreamMode"), required: false, type: .enum), + AWSShapeMember(label: "SampleRate", location: .body(locationName: "sampleRate"), required: false, type: .integer), + AWSShapeMember(label: "PassthroughControl", location: .body(locationName: "passthroughControl"), required: false, type: .enum), + AWSShapeMember(label: "LoRoSurroundMixLevel", location: .body(locationName: "loRoSurroundMixLevel"), required: false, type: .double), + AWSShapeMember(label: "LoRoCenterMixLevel", location: .body(locationName: "loRoCenterMixLevel"), required: false, type: .double), + AWSShapeMember(label: "PhaseControl", location: .body(locationName: "phaseControl"), required: false, type: .enum), + AWSShapeMember(label: "AttenuationControl", location: .body(locationName: "attenuationControl"), required: false, type: .enum), + AWSShapeMember(label: "DynamicRangeCompressionLine", location: .body(locationName: "dynamicRangeCompressionLine"), required: false, type: .enum), + AWSShapeMember(label: "LfeControl", location: .body(locationName: "lfeControl"), required: false, type: .enum) + ] + public let dynamicRangeCompressionRf: Eac3DynamicRangeCompressionRf? + /// Left total/Right total center mix level. Only used for 3/2 coding mode. + /// Valid values: 3.0, 1.5, 0.0, -1.5 -3.0 -4.5 -6.0 -60 + public let ltRtCenterMixLevel: Double? + public let stereoDownmix: Eac3StereoDownmix? + /// Sets the dialnorm for the output. If blank and input audio is Dolby Digital Plus, dialnorm will be passed through. + public let dialnorm: Int32? + public let dcFilter: Eac3DcFilter? + /// Left total/Right total surround mix level. Only used for 3/2 coding mode. + /// Valid values: -1.5 -3.0 -4.5 -6.0 -60 + public let ltRtSurroundMixLevel: Double? + /// Average bitrate in bits/second. Valid bitrates depend on the coding mode. + public let bitrate: Int32? + public let surroundExMode: Eac3SurroundExMode? + public let metadataControl: Eac3MetadataControl? + public let surroundMode: Eac3SurroundMode? + public let codingMode: Eac3CodingMode? + public let lfeFilter: Eac3LfeFilter? + public let bitstreamMode: Eac3BitstreamMode? + /// Sample rate in hz. Sample rate is always 48000. + public let sampleRate: Int32? + public let passthroughControl: Eac3PassthroughControl? + /// Left only/Right only surround mix level. Only used for 3/2 coding mode. + /// Valid values: -1.5 -3.0 -4.5 -6.0 -60 + public let loRoSurroundMixLevel: Double? + /// Left only/Right only center mix level. Only used for 3/2 coding mode. + /// Valid values: 3.0, 1.5, 0.0, -1.5 -3.0 -4.5 -6.0 -60 + public let loRoCenterMixLevel: Double? + public let phaseControl: Eac3PhaseControl? + public let attenuationControl: Eac3AttenuationControl? + public let dynamicRangeCompressionLine: Eac3DynamicRangeCompressionLine? + public let lfeControl: Eac3LfeControl? + + public init(dynamicRangeCompressionRf: Eac3DynamicRangeCompressionRf? = nil, ltRtCenterMixLevel: Double? = nil, stereoDownmix: Eac3StereoDownmix? = nil, dialnorm: Int32? = nil, dcFilter: Eac3DcFilter? = nil, ltRtSurroundMixLevel: Double? = nil, bitrate: Int32? = nil, surroundExMode: Eac3SurroundExMode? = nil, metadataControl: Eac3MetadataControl? = nil, surroundMode: Eac3SurroundMode? = nil, codingMode: Eac3CodingMode? = nil, lfeFilter: Eac3LfeFilter? = nil, bitstreamMode: Eac3BitstreamMode? = nil, sampleRate: Int32? = nil, passthroughControl: Eac3PassthroughControl? = nil, loRoSurroundMixLevel: Double? = nil, loRoCenterMixLevel: Double? = nil, phaseControl: Eac3PhaseControl? = nil, attenuationControl: Eac3AttenuationControl? = nil, dynamicRangeCompressionLine: Eac3DynamicRangeCompressionLine? = nil, lfeControl: Eac3LfeControl? = nil) { + self.dynamicRangeCompressionRf = dynamicRangeCompressionRf + self.ltRtCenterMixLevel = ltRtCenterMixLevel + self.stereoDownmix = stereoDownmix + self.dialnorm = dialnorm + self.dcFilter = dcFilter + self.ltRtSurroundMixLevel = ltRtSurroundMixLevel + self.bitrate = bitrate + self.surroundExMode = surroundExMode + self.metadataControl = metadataControl + self.surroundMode = surroundMode + self.codingMode = codingMode + self.lfeFilter = lfeFilter + self.bitstreamMode = bitstreamMode + self.sampleRate = sampleRate + self.passthroughControl = passthroughControl + self.loRoSurroundMixLevel = loRoSurroundMixLevel + self.loRoCenterMixLevel = loRoCenterMixLevel + self.phaseControl = phaseControl + self.attenuationControl = attenuationControl + self.dynamicRangeCompressionLine = dynamicRangeCompressionLine + self.lfeControl = lfeControl + } + + private enum CodingKeys: String, CodingKey { + case dynamicRangeCompressionRf = "dynamicRangeCompressionRf" + case ltRtCenterMixLevel = "ltRtCenterMixLevel" + case stereoDownmix = "stereoDownmix" + case dialnorm = "dialnorm" + case dcFilter = "dcFilter" + case ltRtSurroundMixLevel = "ltRtSurroundMixLevel" + case bitrate = "bitrate" + case surroundExMode = "surroundExMode" + case metadataControl = "metadataControl" + case surroundMode = "surroundMode" + case codingMode = "codingMode" + case lfeFilter = "lfeFilter" + case bitstreamMode = "bitstreamMode" + case sampleRate = "sampleRate" + case passthroughControl = "passthroughControl" + case loRoSurroundMixLevel = "loRoSurroundMixLevel" + case loRoCenterMixLevel = "loRoCenterMixLevel" + case phaseControl = "phaseControl" + case attenuationControl = "attenuationControl" + case dynamicRangeCompressionLine = "dynamicRangeCompressionLine" + case lfeControl = "lfeControl" + } + } + + public enum InputFilterEnable: String, CustomStringConvertible, Codable { + case auto = "AUTO" + case disable = "DISABLE" + case force = "FORCE" + public var description: String { return self.rawValue } + } + + public enum LanguageCode: String, CustomStringConvertible, Codable { + case eng = "ENG" + case spa = "SPA" + case fra = "FRA" + case deu = "DEU" + case ger = "GER" + case zho = "ZHO" + case ara = "ARA" + case hin = "HIN" + case jpn = "JPN" + case rus = "RUS" + case por = "POR" + case ita = "ITA" + case urd = "URD" + case vie = "VIE" + case kor = "KOR" + case pan = "PAN" + case abk = "ABK" + case aar = "AAR" + case afr = "AFR" + case aka = "AKA" + case sqi = "SQI" + case amh = "AMH" + case arg = "ARG" + case hye = "HYE" + case asm = "ASM" + case ava = "AVA" + case ave = "AVE" + case aym = "AYM" + case aze = "AZE" + case bam = "BAM" + case bak = "BAK" + case eus = "EUS" + case bel = "BEL" + case ben = "BEN" + case bih = "BIH" + case bis = "BIS" + case bos = "BOS" + case bre = "BRE" + case bul = "BUL" + case mya = "MYA" + case cat = "CAT" + case khm = "KHM" + case cha = "CHA" + case che = "CHE" + case nya = "NYA" + case chu = "CHU" + case chv = "CHV" + case cor = "COR" + case cos = "COS" + case cre = "CRE" + case hrv = "HRV" + case ces = "CES" + case dan = "DAN" + case div = "DIV" + case nld = "NLD" + case dzo = "DZO" + case enm = "ENM" + case epo = "EPO" + case est = "EST" + case ewe = "EWE" + case fao = "FAO" + case fij = "FIJ" + case fin = "FIN" + case frm = "FRM" + case ful = "FUL" + case gla = "GLA" + case glg = "GLG" + case lug = "LUG" + case kat = "KAT" + case ell = "ELL" + case grn = "GRN" + case guj = "GUJ" + case hat = "HAT" + case hau = "HAU" + case heb = "HEB" + case her = "HER" + case hmo = "HMO" + case hun = "HUN" + case isl = "ISL" + case ido = "IDO" + case ibo = "IBO" + case ind = "IND" + case ina = "INA" + case ile = "ILE" + case iku = "IKU" + case ipk = "IPK" + case gle = "GLE" + case jav = "JAV" + case kal = "KAL" + case kan = "KAN" + case kau = "KAU" + case kas = "KAS" + case kaz = "KAZ" + case kik = "KIK" + case kin = "KIN" + case kir = "KIR" + case kom = "KOM" + case kon = "KON" + case kua = "KUA" + case kur = "KUR" + case lao = "LAO" + case lat = "LAT" + case lav = "LAV" + case lim = "LIM" + case lin = "LIN" + case lit = "LIT" + case lub = "LUB" + case ltz = "LTZ" + case mkd = "MKD" + case mlg = "MLG" + case msa = "MSA" + case mal = "MAL" + case mlt = "MLT" + case glv = "GLV" + case mri = "MRI" + case mar = "MAR" + case mah = "MAH" + case mon = "MON" + case nau = "NAU" + case nav = "NAV" + case nde = "NDE" + case nbl = "NBL" + case ndo = "NDO" + case nep = "NEP" + case sme = "SME" + case nor = "NOR" + case nob = "NOB" + case nno = "NNO" + case oci = "OCI" + case oji = "OJI" + case ori = "ORI" + case orm = "ORM" + case oss = "OSS" + case pli = "PLI" + case fas = "FAS" + case pol = "POL" + case pus = "PUS" + case que = "QUE" + case qaa = "QAA" + case ron = "RON" + case roh = "ROH" + case run = "RUN" + case smo = "SMO" + case sag = "SAG" + case san = "SAN" + case srd = "SRD" + case srb = "SRB" + case sna = "SNA" + case iii = "III" + case snd = "SND" + case sin = "SIN" + case slk = "SLK" + case slv = "SLV" + case som = "SOM" + case sot = "SOT" + case sun = "SUN" + case swa = "SWA" + case ssw = "SSW" + case swe = "SWE" + case tgl = "TGL" + case tah = "TAH" + case tgk = "TGK" + case tam = "TAM" + case tat = "TAT" + case tel = "TEL" + case tha = "THA" + case bod = "BOD" + case tir = "TIR" + case ton = "TON" + case tso = "TSO" + case tsn = "TSN" + case tur = "TUR" + case tuk = "TUK" + case twi = "TWI" + case uig = "UIG" + case ukr = "UKR" + case uzb = "UZB" + case ven = "VEN" + case vol = "VOL" + case wln = "WLN" + case cym = "CYM" + case fry = "FRY" + case wol = "WOL" + case xho = "XHO" + case yid = "YID" + case yor = "YOR" + case zha = "ZHA" + case zul = "ZUL" + case orj = "ORJ" + case qpc = "QPC" + case tng = "TNG" + public var description: String { return self.rawValue } + } + + public enum DvbSubtitleShadowColor: String, CustomStringConvertible, Codable { + case none = "NONE" + case black = "BLACK" + case white = "WHITE" + public var description: String { return self.rawValue } + } + + public enum Ac3LfeFilter: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public struct DeleteQueueResponse: AWSShape { + + } + + public enum Ac3CodingMode: String, CustomStringConvertible, Codable { + case codingMode10 = "CODING_MODE_1_0" + case codingMode11 = "CODING_MODE_1_1" + case codingMode20 = "CODING_MODE_2_0" + case codingMode32Lfe = "CODING_MODE_3_2_LFE" + public var description: String { return self.rawValue } + } + + public enum MsSmoothManifestEncoding: String, CustomStringConvertible, Codable { + case utf8 = "UTF8" + case utf16 = "UTF16" + public var description: String { return self.rawValue } + } + + public enum Order: String, CustomStringConvertible, Codable { + case ascending = "ASCENDING" + case descending = "DESCENDING" + public var description: String { return self.rawValue } + } + + public struct GetPresetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Preset", location: .body(locationName: "preset"), required: false, type: .structure) + ] + public let preset: Preset? + + public init(preset: Preset? = nil) { + self.preset = preset + } + + private enum CodingKeys: String, CodingKey { + case preset = "preset" + } + } + + public enum F4vMoovPlacement: String, CustomStringConvertible, Codable { + case progressiveDownload = "PROGRESSIVE_DOWNLOAD" + case normal = "NORMAL" + public var description: String { return self.rawValue } + } + + public struct HlsEncryptionSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InitializationVectorInManifest", location: .body(locationName: "initializationVectorInManifest"), required: false, type: .enum), + AWSShapeMember(label: "StaticKeyProvider", location: .body(locationName: "staticKeyProvider"), required: false, type: .structure), + AWSShapeMember(label: "ConstantInitializationVector", location: .body(locationName: "constantInitializationVector"), required: false, type: .string), + AWSShapeMember(label: "EncryptionMethod", location: .body(locationName: "encryptionMethod"), required: false, type: .enum), + AWSShapeMember(label: "SpekeKeyProvider", location: .body(locationName: "spekeKeyProvider"), required: false, type: .structure), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum) + ] + public let initializationVectorInManifest: HlsInitializationVectorInManifest? + public let staticKeyProvider: StaticKeyProvider? + /// This is a 128-bit, 16-byte hex value represented by a 32-character text string. If this parameter is not set then the Initialization Vector will follow the segment number by default. + public let constantInitializationVector: String? + public let encryptionMethod: HlsEncryptionType? + public let spekeKeyProvider: SpekeKeyProvider? + public let `type`: HlsKeyProviderType? + + public init(initializationVectorInManifest: HlsInitializationVectorInManifest? = nil, staticKeyProvider: StaticKeyProvider? = nil, constantInitializationVector: String? = nil, encryptionMethod: HlsEncryptionType? = nil, spekeKeyProvider: SpekeKeyProvider? = nil, type: HlsKeyProviderType? = nil) { + self.initializationVectorInManifest = initializationVectorInManifest + self.staticKeyProvider = staticKeyProvider + self.constantInitializationVector = constantInitializationVector + self.encryptionMethod = encryptionMethod + self.spekeKeyProvider = spekeKeyProvider + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case initializationVectorInManifest = "initializationVectorInManifest" + case staticKeyProvider = "staticKeyProvider" + case constantInitializationVector = "constantInitializationVector" + case encryptionMethod = "encryptionMethod" + case spekeKeyProvider = "spekeKeyProvider" + case `type` = "type" + } + } + + public enum H265SlowPal: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct GetJobTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .uri(locationName: "name"), required: true, type: .string) + ] + /// The name of the job template. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + } + } + + public enum Eac3SurroundMode: String, CustomStringConvertible, Codable { + case notIndicated = "NOT_INDICATED" + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public enum DeinterlacerControl: String, CustomStringConvertible, Codable { + case forceAllFrames = "FORCE_ALL_FRAMES" + case normal = "NORMAL" + public var description: String { return self.rawValue } + } + + public enum ColorSpaceConversion: String, CustomStringConvertible, Codable { + case none = "NONE" + case force601 = "FORCE_601" + case force709 = "FORCE_709" + case forceHdr10 = "FORCE_HDR10" + case forceHlg2020 = "FORCE_HLG_2020" + public var description: String { return self.rawValue } + } + + public enum M2tsScte35Source: String, CustomStringConvertible, Codable { + case passthrough = "PASSTHROUGH" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct CancelJobResponse: AWSShape { + + } + + public enum H265SampleAdaptiveOffsetFilterMode: String, CustomStringConvertible, Codable { + case `default` = "DEFAULT" + case adaptive = "ADAPTIVE" + case off = "OFF" + public var description: String { return self.rawValue } + } + + public struct AncillarySourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceAncillaryChannelNumber", location: .body(locationName: "sourceAncillaryChannelNumber"), required: false, type: .integer) + ] + /// Specifies the 608 channel number in the ancillary data track from which to extract captions. Unused for passthrough. + public let sourceAncillaryChannelNumber: Int32? + + public init(sourceAncillaryChannelNumber: Int32? = nil) { + self.sourceAncillaryChannelNumber = sourceAncillaryChannelNumber + } + + private enum CodingKeys: String, CodingKey { + case sourceAncillaryChannelNumber = "sourceAncillaryChannelNumber" + } + } + + public enum Eac3SurroundExMode: String, CustomStringConvertible, Codable { + case notIndicated = "NOT_INDICATED" + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public struct VideoSelector: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ColorSpace", location: .body(locationName: "colorSpace"), required: false, type: .enum), + AWSShapeMember(label: "ColorSpaceUsage", location: .body(locationName: "colorSpaceUsage"), required: false, type: .enum), + AWSShapeMember(label: "Pid", location: .body(locationName: "pid"), required: false, type: .integer), + AWSShapeMember(label: "Hdr10Metadata", location: .body(locationName: "hdr10Metadata"), required: false, type: .structure), + AWSShapeMember(label: "ProgramNumber", location: .body(locationName: "programNumber"), required: false, type: .integer) + ] + public let colorSpace: ColorSpace? + public let colorSpaceUsage: ColorSpaceUsage? + /// Use PID (Pid) to select specific video data from an input file. Specify this value as an integer; the system automatically converts it to the hexidecimal value. For example, 257 selects PID 0x101. A PID, or packet identifier, is an identifier for a set of data in an MPEG-2 transport stream container. + public let pid: Int32? + public let hdr10Metadata: Hdr10Metadata? + /// Selects a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported. + public let programNumber: Int32? + + public init(colorSpace: ColorSpace? = nil, colorSpaceUsage: ColorSpaceUsage? = nil, pid: Int32? = nil, hdr10Metadata: Hdr10Metadata? = nil, programNumber: Int32? = nil) { + self.colorSpace = colorSpace + self.colorSpaceUsage = colorSpaceUsage + self.pid = pid + self.hdr10Metadata = hdr10Metadata + self.programNumber = programNumber + } + + private enum CodingKeys: String, CodingKey { + case colorSpace = "colorSpace" + case colorSpaceUsage = "colorSpaceUsage" + case pid = "pid" + case hdr10Metadata = "hdr10Metadata" + case programNumber = "programNumber" + } + } + + public enum H265TemporalAdaptiveQuantization: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum H265FlickerAdaptiveQuantization: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct DvbSubSourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Pid", location: .body(locationName: "pid"), required: false, type: .integer) + ] + /// When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through, regardless of selectors. + public let pid: Int32? + + public init(pid: Int32? = nil) { + self.pid = pid + } + + private enum CodingKeys: String, CodingKey { + case pid = "pid" + } + } + + public enum H264Telecine: String, CustomStringConvertible, Codable { + case none = "NONE" + case soft = "SOFT" + case hard = "HARD" + public var description: String { return self.rawValue } + } + + public struct GetJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Job", location: .body(locationName: "job"), required: false, type: .structure) + ] + public let job: Job? + + public init(job: Job? = nil) { + self.job = job + } + + private enum CodingKeys: String, CodingKey { + case job = "job" + } + } + + public struct ListQueuesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ListBy", location: .querystring(locationName: "listBy"), required: false, type: .enum), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Order", location: .querystring(locationName: "order"), required: false, type: .enum), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let listBy: QueueListBy? + /// Use this string, provided with the response to a previous request, to request the next batch of queues. + public let nextToken: String? + public let order: Order? + /// Optional. Number of queues, up to twenty, that will be returned at one time. + public let maxResults: Int32? + + public init(listBy: QueueListBy? = nil, nextToken: String? = nil, order: Order? = nil, maxResults: Int32? = nil) { + self.listBy = listBy + self.nextToken = nextToken + self.order = order + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case listBy = "listBy" + case nextToken = "nextToken" + case order = "order" + case maxResults = "maxResults" + } + } + + public enum ProresFramerateControl: String, CustomStringConvertible, Codable { + case initializeFromSource = "INITIALIZE_FROM_SOURCE" + case specified = "SPECIFIED" + public var description: String { return self.rawValue } + } + + public struct InputTemplate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FilterStrength", location: .body(locationName: "filterStrength"), required: false, type: .integer), + AWSShapeMember(label: "DenoiseFilter", location: .body(locationName: "denoiseFilter"), required: false, type: .enum), + AWSShapeMember(label: "DeblockFilter", location: .body(locationName: "deblockFilter"), required: false, type: .enum), + AWSShapeMember(label: "InputClippings", location: .body(locationName: "inputClippings"), required: false, type: .list), + AWSShapeMember(label: "ProgramNumber", location: .body(locationName: "programNumber"), required: false, type: .integer), + AWSShapeMember(label: "FilterEnable", location: .body(locationName: "filterEnable"), required: false, type: .enum), + AWSShapeMember(label: "VideoSelector", location: .body(locationName: "videoSelector"), required: false, type: .structure), + AWSShapeMember(label: "AudioSelectors", location: .body(locationName: "audioSelectors"), required: false, type: .map), + AWSShapeMember(label: "AudioSelectorGroups", location: .body(locationName: "audioSelectorGroups"), required: false, type: .map), + AWSShapeMember(label: "CaptionSelectors", location: .body(locationName: "captionSelectors"), required: false, type: .map), + AWSShapeMember(label: "TimecodeSource", location: .body(locationName: "timecodeSource"), required: false, type: .enum), + AWSShapeMember(label: "PsiControl", location: .body(locationName: "psiControl"), required: false, type: .enum) + ] + /// Use Filter strength (FilterStrength) to adjust the magnitude the input filter settings (Deblock and Denoise). The range is -5 to 5. Default is 0. + public let filterStrength: Int32? + public let denoiseFilter: InputDenoiseFilter? + public let deblockFilter: InputDeblockFilter? + /// (InputClippings) contains sets of start and end times that together specify a portion of the input to be used in the outputs. If you provide only a start time, the clip will be the entire input from that point to the end. If you provide only an end time, it will be the entire input up to that point. When you specify more than one input clip, the transcoding service creates the job outputs by stringing the clips together in the order you specify them. + public let inputClippings: [InputClipping]? + /// Use Program (programNumber) to select a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported. Default is the first program within the transport stream. If the program you specify doesn't exist, the transcoding service will use this default. + public let programNumber: Int32? + public let filterEnable: InputFilterEnable? + public let videoSelector: VideoSelector? + /// Use Audio selectors (AudioSelectors) to specify a track or set of tracks from the input that you will use in your outputs. You can use mutiple Audio selectors per input. + public let audioSelectors: [String: AudioSelector]? + /// Specifies set of audio selectors within an input to combine. An input may have multiple audio selector groups. See "Audio Selector Group":#inputs-audio_selector_group for more information. + public let audioSelectorGroups: [String: AudioSelectorGroup]? + /// Use Captions selectors (CaptionSelectors) to specify the captions data from the input that you will use in your outputs. You can use mutiple captions selectors per input. + public let captionSelectors: [String: CaptionSelector]? + public let timecodeSource: InputTimecodeSource? + public let psiControl: InputPsiControl? + + public init(filterStrength: Int32? = nil, denoiseFilter: InputDenoiseFilter? = nil, deblockFilter: InputDeblockFilter? = nil, inputClippings: [InputClipping]? = nil, programNumber: Int32? = nil, filterEnable: InputFilterEnable? = nil, videoSelector: VideoSelector? = nil, audioSelectors: [String: AudioSelector]? = nil, audioSelectorGroups: [String: AudioSelectorGroup]? = nil, captionSelectors: [String: CaptionSelector]? = nil, timecodeSource: InputTimecodeSource? = nil, psiControl: InputPsiControl? = nil) { + self.filterStrength = filterStrength + self.denoiseFilter = denoiseFilter + self.deblockFilter = deblockFilter + self.inputClippings = inputClippings + self.programNumber = programNumber + self.filterEnable = filterEnable + self.videoSelector = videoSelector + self.audioSelectors = audioSelectors + self.audioSelectorGroups = audioSelectorGroups + self.captionSelectors = captionSelectors + self.timecodeSource = timecodeSource + self.psiControl = psiControl + } + + private enum CodingKeys: String, CodingKey { + case filterStrength = "filterStrength" + case denoiseFilter = "denoiseFilter" + case deblockFilter = "deblockFilter" + case inputClippings = "inputClippings" + case programNumber = "programNumber" + case filterEnable = "filterEnable" + case videoSelector = "videoSelector" + case audioSelectors = "audioSelectors" + case audioSelectorGroups = "audioSelectorGroups" + case captionSelectors = "captionSelectors" + case timecodeSource = "timecodeSource" + case psiControl = "psiControl" + } + } + + public struct CreateQueueRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// The name of the queue you are creating. + public let name: String? + /// Optional. A description of the queue you are creating. + public let description: String? + + public init(name: String? = nil, description: String? = nil) { + self.name = name + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case description = "description" + } + } + + public enum DashIsoSegmentControl: String, CustomStringConvertible, Codable { + case singleFile = "SINGLE_FILE" + case segmentedFiles = "SEGMENTED_FILES" + public var description: String { return self.rawValue } + } + + public struct DvbSubDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackgroundColor", location: .body(locationName: "backgroundColor"), required: false, type: .enum), + AWSShapeMember(label: "BackgroundOpacity", location: .body(locationName: "backgroundOpacity"), required: false, type: .integer), + AWSShapeMember(label: "YPosition", location: .body(locationName: "yPosition"), required: false, type: .integer), + AWSShapeMember(label: "FontOpacity", location: .body(locationName: "fontOpacity"), required: false, type: .integer), + AWSShapeMember(label: "ShadowXOffset", location: .body(locationName: "shadowXOffset"), required: false, type: .integer), + AWSShapeMember(label: "FontSize", location: .body(locationName: "fontSize"), required: false, type: .integer), + AWSShapeMember(label: "Alignment", location: .body(locationName: "alignment"), required: false, type: .enum), + AWSShapeMember(label: "XPosition", location: .body(locationName: "xPosition"), required: false, type: .integer), + AWSShapeMember(label: "ShadowOpacity", location: .body(locationName: "shadowOpacity"), required: false, type: .integer), + AWSShapeMember(label: "FontColor", location: .body(locationName: "fontColor"), required: false, type: .enum), + AWSShapeMember(label: "OutlineColor", location: .body(locationName: "outlineColor"), required: false, type: .enum), + AWSShapeMember(label: "ShadowColor", location: .body(locationName: "shadowColor"), required: false, type: .enum), + AWSShapeMember(label: "TeletextSpacing", location: .body(locationName: "teletextSpacing"), required: false, type: .enum), + AWSShapeMember(label: "FontResolution", location: .body(locationName: "fontResolution"), required: false, type: .integer), + AWSShapeMember(label: "ShadowYOffset", location: .body(locationName: "shadowYOffset"), required: false, type: .integer), + AWSShapeMember(label: "OutlineSize", location: .body(locationName: "outlineSize"), required: false, type: .integer) + ] + public let backgroundColor: DvbSubtitleBackgroundColor? + /// Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match. + public let backgroundOpacity: Int32? + /// Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit y_position is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let yPosition: Int32? + /// Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. + /// All burn-in and DVB-Sub font settings must match. + public let fontOpacity: Int32? + /// Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match. + public let shadowXOffset: Int32? + /// A positive integer indicates the exact font size in points. Set to 0 for automatic font size selection. All burn-in and DVB-Sub font settings must match. + public let fontSize: Int32? + public let alignment: DvbSubtitleAlignment? + /// Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit x_position is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let xPosition: Int32? + /// Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match. + public let shadowOpacity: Int32? + public let fontColor: DvbSubtitleFontColor? + public let outlineColor: DvbSubtitleOutlineColor? + public let shadowColor: DvbSubtitleShadowColor? + public let teletextSpacing: DvbSubtitleTeletextSpacing? + /// Font resolution in DPI (dots per inch); default is 96 dpi. + /// All burn-in and DVB-Sub font settings must match. + public let fontResolution: Int32? + /// Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match. + public let shadowYOffset: Int32? + /// Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let outlineSize: Int32? + + public init(backgroundColor: DvbSubtitleBackgroundColor? = nil, backgroundOpacity: Int32? = nil, yPosition: Int32? = nil, fontOpacity: Int32? = nil, shadowXOffset: Int32? = nil, fontSize: Int32? = nil, alignment: DvbSubtitleAlignment? = nil, xPosition: Int32? = nil, shadowOpacity: Int32? = nil, fontColor: DvbSubtitleFontColor? = nil, outlineColor: DvbSubtitleOutlineColor? = nil, shadowColor: DvbSubtitleShadowColor? = nil, teletextSpacing: DvbSubtitleTeletextSpacing? = nil, fontResolution: Int32? = nil, shadowYOffset: Int32? = nil, outlineSize: Int32? = nil) { + self.backgroundColor = backgroundColor + self.backgroundOpacity = backgroundOpacity + self.yPosition = yPosition + self.fontOpacity = fontOpacity + self.shadowXOffset = shadowXOffset + self.fontSize = fontSize + self.alignment = alignment + self.xPosition = xPosition + self.shadowOpacity = shadowOpacity + self.fontColor = fontColor + self.outlineColor = outlineColor + self.shadowColor = shadowColor + self.teletextSpacing = teletextSpacing + self.fontResolution = fontResolution + self.shadowYOffset = shadowYOffset + self.outlineSize = outlineSize + } + + private enum CodingKeys: String, CodingKey { + case backgroundColor = "backgroundColor" + case backgroundOpacity = "backgroundOpacity" + case yPosition = "yPosition" + case fontOpacity = "fontOpacity" + case shadowXOffset = "shadowXOffset" + case fontSize = "fontSize" + case alignment = "alignment" + case xPosition = "xPosition" + case shadowOpacity = "shadowOpacity" + case fontColor = "fontColor" + case outlineColor = "outlineColor" + case shadowColor = "shadowColor" + case teletextSpacing = "teletextSpacing" + case fontResolution = "fontResolution" + case shadowYOffset = "shadowYOffset" + case outlineSize = "outlineSize" + } + } + + public enum H264QualityTuningLevel: String, CustomStringConvertible, Codable { + case singlePass = "SINGLE_PASS" + case singlePassHq = "SINGLE_PASS_HQ" + case multiPassHq = "MULTI_PASS_HQ" + public var description: String { return self.rawValue } + } + + public struct DashIsoGroupSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destination", location: .body(locationName: "destination"), required: false, type: .string), + AWSShapeMember(label: "FragmentLength", location: .body(locationName: "fragmentLength"), required: false, type: .integer), + AWSShapeMember(label: "MinBufferTime", location: .body(locationName: "minBufferTime"), required: false, type: .integer), + AWSShapeMember(label: "HbbtvCompliance", location: .body(locationName: "hbbtvCompliance"), required: false, type: .enum), + AWSShapeMember(label: "Encryption", location: .body(locationName: "encryption"), required: false, type: .structure), + AWSShapeMember(label: "BaseUrl", location: .body(locationName: "baseUrl"), required: false, type: .string), + AWSShapeMember(label: "SegmentLength", location: .body(locationName: "segmentLength"), required: false, type: .integer), + AWSShapeMember(label: "SegmentControl", location: .body(locationName: "segmentControl"), required: false, type: .enum) + ] + /// Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file. + public let destination: String? + /// Length of fragments to generate (in seconds). Fragment length must be compatible with GOP size and Framerate. Note that fragments will end on the next keyframe after this number of seconds, so actual fragment length may be longer. When Emit Single File is checked, the fragmentation is internal to a single output file and it does not cause the creation of many output files as in other output types. + public let fragmentLength: Int32? + /// Minimum time of initially buffered media that is needed to ensure smooth playout. + public let minBufferTime: Int32? + public let hbbtvCompliance: DashIsoHbbtvCompliance? + /// DRM settings. + public let encryption: DashIsoEncryptionSettings? + /// A partial URI prefix that will be put in the manifest (.mpd) file at the top level BaseURL element. Can be used if streams are delivered from a different URL than the manifest file. + public let baseUrl: String? + /// Length of mpd segments to create (in seconds). Note that segments will end on the next keyframe after this number of seconds, so actual segment length may be longer. When Emit Single File is checked, the segmentation is internal to a single output file and it does not cause the creation of many output files as in other output types. + public let segmentLength: Int32? + public let segmentControl: DashIsoSegmentControl? + + public init(destination: String? = nil, fragmentLength: Int32? = nil, minBufferTime: Int32? = nil, hbbtvCompliance: DashIsoHbbtvCompliance? = nil, encryption: DashIsoEncryptionSettings? = nil, baseUrl: String? = nil, segmentLength: Int32? = nil, segmentControl: DashIsoSegmentControl? = nil) { + self.destination = destination + self.fragmentLength = fragmentLength + self.minBufferTime = minBufferTime + self.hbbtvCompliance = hbbtvCompliance + self.encryption = encryption + self.baseUrl = baseUrl + self.segmentLength = segmentLength + self.segmentControl = segmentControl + } + + private enum CodingKeys: String, CodingKey { + case destination = "destination" + case fragmentLength = "fragmentLength" + case minBufferTime = "minBufferTime" + case hbbtvCompliance = "hbbtvCompliance" + case encryption = "encryption" + case baseUrl = "baseUrl" + case segmentLength = "segmentLength" + case segmentControl = "segmentControl" + } + } + + public enum BurninSubtitleTeletextSpacing: String, CustomStringConvertible, Codable { + case fixedGrid = "FIXED_GRID" + case proportional = "PROPORTIONAL" + public var description: String { return self.rawValue } + } + + public enum AudioNormalizationLoudnessLogging: String, CustomStringConvertible, Codable { + case log = "LOG" + case dontLog = "DONT_LOG" + public var description: String { return self.rawValue } + } + + public enum Eac3LfeFilter: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public enum DvbSubtitleAlignment: String, CustomStringConvertible, Codable { + case centered = "CENTERED" + case left = "LEFT" + public var description: String { return self.rawValue } + } + + public enum AudioTypeControl: String, CustomStringConvertible, Codable { + case followInput = "FOLLOW_INPUT" + case useConfigured = "USE_CONFIGURED" + public var description: String { return self.rawValue } + } + + public struct InsertableImage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Height", location: .body(locationName: "height"), required: false, type: .integer), + AWSShapeMember(label: "StartTime", location: .body(locationName: "startTime"), required: false, type: .string), + AWSShapeMember(label: "ImageX", location: .body(locationName: "imageX"), required: false, type: .integer), + AWSShapeMember(label: "ImageY", location: .body(locationName: "imageY"), required: false, type: .integer), + AWSShapeMember(label: "Opacity", location: .body(locationName: "opacity"), required: false, type: .integer), + AWSShapeMember(label: "FadeIn", location: .body(locationName: "fadeIn"), required: false, type: .integer), + AWSShapeMember(label: "FadeOut", location: .body(locationName: "fadeOut"), required: false, type: .integer), + AWSShapeMember(label: "ImageInserterInput", location: .body(locationName: "imageInserterInput"), required: false, type: .string), + AWSShapeMember(label: "Duration", location: .body(locationName: "duration"), required: false, type: .integer), + AWSShapeMember(label: "Layer", location: .body(locationName: "layer"), required: false, type: .integer), + AWSShapeMember(label: "Width", location: .body(locationName: "width"), required: false, type: .integer) + ] + /// Specify the Height (Height) of the inserted image. Use a value that is less than or equal to the video resolution height. Leave this setting blank to use the native height of the image. + public let height: Int32? + /// Use Start time (StartTime) to specify the video timecode when the image is inserted in the output. This must be in timecode format (HH:MM:SS:FF) + public let startTime: String? + /// Use Left (ImageX) to set the distance, in pixels, between the inserted image and the left edge of the frame. Required for BMP, PNG and TGA input. + public let imageX: Int32? + /// Use Top (ImageY) to set the distance, in pixels, between the inserted image and the top edge of the video frame. Required for BMP, PNG and TGA input. + public let imageY: Int32? + /// Use Opacity (Opacity) to specify how much of the underlying video shows through the inserted image. 0 is transparent and 100 is fully opaque. Default is 50. + public let opacity: Int32? + /// Use Fade in (FadeIut) to set the length, in milliseconds, of the inserted image fade in. If you don't specify a value for Fade in, the image will appear abruptly at the Start time. + public let fadeIn: Int32? + /// Use Fade out (FadeOut) to set the length, in milliseconds, of the inserted image fade out. If you don't specify a value for Fade out, the image will disappear abruptly at the end of the inserted image duration. + public let fadeOut: Int32? + /// Use Image location (imageInserterInput) to specify the Amazon S3 location of the image to be inserted into the output. Use a 32 bit BMP, PNG, or TGA file that fits inside the video frame. + public let imageInserterInput: String? + /// Use Duration (Duration) to set the time, in milliseconds, for the image to remain on the output video. + public let duration: Int32? + /// Use Layer (Layer) to specify how overlapping inserted images appear. Images with higher values of layer appear on top of images with lower values of layer. + public let layer: Int32? + /// Specify the Width (Width) of the inserted image. Use a value that is less than or equal to the video resolution width. Leave this setting blank to use the native width of the image. + public let width: Int32? + + public init(height: Int32? = nil, startTime: String? = nil, imageX: Int32? = nil, imageY: Int32? = nil, opacity: Int32? = nil, fadeIn: Int32? = nil, fadeOut: Int32? = nil, imageInserterInput: String? = nil, duration: Int32? = nil, layer: Int32? = nil, width: Int32? = nil) { + self.height = height + self.startTime = startTime + self.imageX = imageX + self.imageY = imageY + self.opacity = opacity + self.fadeIn = fadeIn + self.fadeOut = fadeOut + self.imageInserterInput = imageInserterInput + self.duration = duration + self.layer = layer + self.width = width + } + + private enum CodingKeys: String, CodingKey { + case height = "height" + case startTime = "startTime" + case imageX = "imageX" + case imageY = "imageY" + case opacity = "opacity" + case fadeIn = "fadeIn" + case fadeOut = "fadeOut" + case imageInserterInput = "imageInserterInput" + case duration = "duration" + case layer = "layer" + case width = "width" + } + } + + public enum M2tsEbpPlacement: String, CustomStringConvertible, Codable { + case videoAndAudioPids = "VIDEO_AND_AUDIO_PIDS" + case videoPid = "VIDEO_PID" + public var description: String { return self.rawValue } + } + + public enum AacCodingMode: String, CustomStringConvertible, Codable { + case adReceiverMix = "AD_RECEIVER_MIX" + case codingMode10 = "CODING_MODE_1_0" + case codingMode11 = "CODING_MODE_1_1" + case codingMode20 = "CODING_MODE_2_0" + case codingMode51 = "CODING_MODE_5_1" + public var description: String { return self.rawValue } + } + + public enum AudioCodec: String, CustomStringConvertible, Codable { + case aac = "AAC" + case mp2 = "MP2" + case wav = "WAV" + case aiff = "AIFF" + case ac3 = "AC3" + case eac3 = "EAC3" + case passthrough = "PASSTHROUGH" + public var description: String { return self.rawValue } + } + + public enum BurninSubtitleShadowColor: String, CustomStringConvertible, Codable { + case none = "NONE" + case black = "BLACK" + case white = "WHITE" + public var description: String { return self.rawValue } + } + + public enum Mpeg2SpatialAdaptiveQuantization: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum MsSmoothAudioDeduplication: String, CustomStringConvertible, Codable { + case combineDuplicateStreams = "COMBINE_DUPLICATE_STREAMS" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public enum H264FramerateConversionAlgorithm: String, CustomStringConvertible, Codable { + case duplicateDrop = "DUPLICATE_DROP" + case interpolate = "INTERPOLATE" + public var description: String { return self.rawValue } + } + + public enum CaptionSourceType: String, CustomStringConvertible, Codable { + case ancillary = "ANCILLARY" + case dvbSub = "DVB_SUB" + case embedded = "EMBEDDED" + case scc = "SCC" + case ttml = "TTML" + case stl = "STL" + case srt = "SRT" + case teletext = "TELETEXT" + case nullSource = "NULL_SOURCE" + public var description: String { return self.rawValue } + } + + public enum OutputSdt: String, CustomStringConvertible, Codable { + case sdtFollow = "SDT_FOLLOW" + case sdtFollowIfPresent = "SDT_FOLLOW_IF_PRESENT" + case sdtManual = "SDT_MANUAL" + case sdtNone = "SDT_NONE" + public var description: String { return self.rawValue } + } + + public enum BurninSubtitleBackgroundColor: String, CustomStringConvertible, Codable { + case none = "NONE" + case black = "BLACK" + case white = "WHITE" + public var description: String { return self.rawValue } + } + + public enum TimecodeBurninPosition: String, CustomStringConvertible, Codable { + case topCenter = "TOP_CENTER" + case topLeft = "TOP_LEFT" + case topRight = "TOP_RIGHT" + case middleLeft = "MIDDLE_LEFT" + case middleCenter = "MIDDLE_CENTER" + case middleRight = "MIDDLE_RIGHT" + case bottomLeft = "BOTTOM_LEFT" + case bottomCenter = "BOTTOM_CENTER" + case bottomRight = "BOTTOM_RIGHT" + public var description: String { return self.rawValue } + } + + public enum H265GopSizeUnits: String, CustomStringConvertible, Codable { + case frames = "FRAMES" + case seconds = "SECONDS" + public var description: String { return self.rawValue } + } + + public struct OutputSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "HlsSettings", location: .body(locationName: "hlsSettings"), required: false, type: .structure) + ] + public let hlsSettings: HlsSettings? + + public init(hlsSettings: HlsSettings? = nil) { + self.hlsSettings = hlsSettings + } + + private enum CodingKeys: String, CodingKey { + case hlsSettings = "hlsSettings" + } + } + + public enum Mpeg2TemporalAdaptiveQuantization: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct CreateJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Role", location: .body(locationName: "role"), required: false, type: .string), + AWSShapeMember(label: "Settings", location: .body(locationName: "settings"), required: false, type: .structure), + AWSShapeMember(label: "ClientRequestToken", location: .body(locationName: "clientRequestToken"), required: false, type: .string), + AWSShapeMember(label: "JobTemplate", location: .body(locationName: "jobTemplate"), required: false, type: .string), + AWSShapeMember(label: "Queue", location: .body(locationName: "queue"), required: false, type: .string), + AWSShapeMember(label: "UserMetadata", location: .body(locationName: "userMetadata"), required: false, type: .map) + ] + /// Required. The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html. + public let role: String? + public let settings: JobSettings? + /// Idempotency token for CreateJob operation. + public let clientRequestToken: String? + /// When you create a job, you can either specify a job template or specify the transcoding settings individually + public let jobTemplate: String? + /// Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html. + public let queue: String? + /// User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs. + public let userMetadata: [String: String]? + + public init(role: String? = nil, settings: JobSettings? = nil, clientRequestToken: String? = nil, jobTemplate: String? = nil, queue: String? = nil, userMetadata: [String: String]? = nil) { + self.role = role + self.settings = settings + self.clientRequestToken = clientRequestToken + self.jobTemplate = jobTemplate + self.queue = queue + self.userMetadata = userMetadata + } + + private enum CodingKeys: String, CodingKey { + case role = "role" + case settings = "settings" + case clientRequestToken = "clientRequestToken" + case jobTemplate = "jobTemplate" + case queue = "queue" + case userMetadata = "userMetadata" + } + } + + public enum Mpeg2IntraDcPrecision: String, CustomStringConvertible, Codable { + case auto = "AUTO" + case intraDcPrecision8 = "INTRA_DC_PRECISION_8" + case intraDcPrecision9 = "INTRA_DC_PRECISION_9" + case intraDcPrecision10 = "INTRA_DC_PRECISION_10" + case intraDcPrecision11 = "INTRA_DC_PRECISION_11" + public var description: String { return self.rawValue } + } + + public enum ProresCodecProfile: String, CustomStringConvertible, Codable { + case appleProres422 = "APPLE_PRORES_422" + case appleProres422Hq = "APPLE_PRORES_422_HQ" + case appleProres422Lt = "APPLE_PRORES_422_LT" + case appleProres422Proxy = "APPLE_PRORES_422_PROXY" + public var description: String { return self.rawValue } + } + + public enum H265CodecProfile: String, CustomStringConvertible, Codable { + case mainMain = "MAIN_MAIN" + case mainHigh = "MAIN_HIGH" + case main10Main = "MAIN10_MAIN" + case main10High = "MAIN10_HIGH" + case main4228BitMain = "MAIN_422_8BIT_MAIN" + case main4228BitHigh = "MAIN_422_8BIT_HIGH" + case main42210BitMain = "MAIN_422_10BIT_MAIN" + case main42210BitHigh = "MAIN_422_10BIT_HIGH" + public var description: String { return self.rawValue } + } + + public enum Mpeg2AdaptiveQuantization: String, CustomStringConvertible, Codable { + case off = "OFF" + case low = "LOW" + case medium = "MEDIUM" + case high = "HIGH" + public var description: String { return self.rawValue } + } + + public enum InputPsiControl: String, CustomStringConvertible, Codable { + case ignorePsi = "IGNORE_PSI" + case usePsi = "USE_PSI" + public var description: String { return self.rawValue } + } + + public enum Eac3AttenuationControl: String, CustomStringConvertible, Codable { + case attenuate3Db = "ATTENUATE_3_DB" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public enum HlsInitializationVectorInManifest: String, CustomStringConvertible, Codable { + case include = "INCLUDE" + case exclude = "EXCLUDE" + public var description: String { return self.rawValue } + } + + public struct ListJobTemplatesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Category", location: .querystring(locationName: "category"), required: false, type: .string), + AWSShapeMember(label: "ListBy", location: .querystring(locationName: "listBy"), required: false, type: .enum), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Order", location: .querystring(locationName: "order"), required: false, type: .enum), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + /// Optionally, specify a job template category to limit responses to only job templates from that category. + public let category: String? + public let listBy: JobTemplateListBy? + /// Use this string, provided with the response to a previous request, to request the next batch of job templates. + public let nextToken: String? + public let order: Order? + /// Optional. Number of job templates, up to twenty, that will be returned at one time. + public let maxResults: Int32? + + public init(category: String? = nil, listBy: JobTemplateListBy? = nil, nextToken: String? = nil, order: Order? = nil, maxResults: Int32? = nil) { + self.category = category + self.listBy = listBy + self.nextToken = nextToken + self.order = order + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case category = "category" + case listBy = "listBy" + case nextToken = "nextToken" + case order = "order" + case maxResults = "maxResults" + } + } + + public enum HlsCodecSpecification: String, CustomStringConvertible, Codable { + case rfc6381 = "RFC_6381" + case rfc4281 = "RFC_4281" + public var description: String { return self.rawValue } + } + + public enum Eac3DynamicRangeCompressionLine: String, CustomStringConvertible, Codable { + case none = "NONE" + case filmStandard = "FILM_STANDARD" + case filmLight = "FILM_LIGHT" + case musicStandard = "MUSIC_STANDARD" + case musicLight = "MUSIC_LIGHT" + case speech = "SPEECH" + public var description: String { return self.rawValue } + } + + public enum AacVbrQuality: String, CustomStringConvertible, Codable { + case low = "LOW" + case mediumLow = "MEDIUM_LOW" + case mediumHigh = "MEDIUM_HIGH" + case high = "HIGH" + public var description: String { return self.rawValue } + } + + public struct ImageInserter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InsertableImages", location: .body(locationName: "insertableImages"), required: false, type: .list) + ] + /// Image to insert. Must be 32 bit windows BMP, PNG, or TGA file. Must not be larger than the output frames. + public let insertableImages: [InsertableImage]? + + public init(insertableImages: [InsertableImage]? = nil) { + self.insertableImages = insertableImages + } + + private enum CodingKeys: String, CodingKey { + case insertableImages = "insertableImages" + } + } + + public enum JobStatus: String, CustomStringConvertible, Codable { + case submitted = "SUBMITTED" + case progressing = "PROGRESSING" + case complete = "COMPLETE" + case canceled = "CANCELED" + case error = "ERROR" + public var description: String { return self.rawValue } + } + + public struct DeleteJobTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .uri(locationName: "name"), required: true, type: .string) + ] + /// The name of the job template to be deleted. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + } + } + + public enum M2tsEsRateInPes: String, CustomStringConvertible, Codable { + case include = "INCLUDE" + case exclude = "EXCLUDE" + public var description: String { return self.rawValue } + } + + public struct UpdatePresetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Category", location: .body(locationName: "category"), required: false, type: .string), + AWSShapeMember(label: "Settings", location: .body(locationName: "settings"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .uri(locationName: "name"), required: true, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// The new category for the preset, if you are changing it. + public let category: String? + public let settings: PresetSettings? + /// The name of the preset you are modifying. + public let name: String + /// The new description for the preset, if you are changing it. + public let description: String? + + public init(category: String? = nil, settings: PresetSettings? = nil, name: String, description: String? = nil) { + self.category = category + self.settings = settings + self.name = name + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case category = "category" + case settings = "settings" + case name = "name" + case description = "description" + } + } + + public struct M2tsSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PcrControl", location: .body(locationName: "pcrControl"), required: false, type: .enum), + AWSShapeMember(label: "PatInterval", location: .body(locationName: "patInterval"), required: false, type: .integer), + AWSShapeMember(label: "PmtPid", location: .body(locationName: "pmtPid"), required: false, type: .integer), + AWSShapeMember(label: "VideoPid", location: .body(locationName: "videoPid"), required: false, type: .integer), + AWSShapeMember(label: "PcrPid", location: .body(locationName: "pcrPid"), required: false, type: .integer), + AWSShapeMember(label: "Scte35Source", location: .body(locationName: "scte35Source"), required: false, type: .enum), + AWSShapeMember(label: "DvbTdtSettings", location: .body(locationName: "dvbTdtSettings"), required: false, type: .structure), + AWSShapeMember(label: "RateMode", location: .body(locationName: "rateMode"), required: false, type: .enum), + AWSShapeMember(label: "DvbSdtSettings", location: .body(locationName: "dvbSdtSettings"), required: false, type: .structure), + AWSShapeMember(label: "ProgramNumber", location: .body(locationName: "programNumber"), required: false, type: .integer), + AWSShapeMember(label: "AudioFramesPerPes", location: .body(locationName: "audioFramesPerPes"), required: false, type: .integer), + AWSShapeMember(label: "BufferModel", location: .body(locationName: "bufferModel"), required: false, type: .enum), + AWSShapeMember(label: "PrivateMetadataPid", location: .body(locationName: "privateMetadataPid"), required: false, type: .integer), + AWSShapeMember(label: "AudioBufferModel", location: .body(locationName: "audioBufferModel"), required: false, type: .enum), + AWSShapeMember(label: "MaxPcrInterval", location: .body(locationName: "maxPcrInterval"), required: false, type: .integer), + AWSShapeMember(label: "SegmentationTime", location: .body(locationName: "segmentationTime"), required: false, type: .double), + AWSShapeMember(label: "SegmentationStyle", location: .body(locationName: "segmentationStyle"), required: false, type: .enum), + AWSShapeMember(label: "MinEbpInterval", location: .body(locationName: "minEbpInterval"), required: false, type: .integer), + AWSShapeMember(label: "DvbNitSettings", location: .body(locationName: "dvbNitSettings"), required: false, type: .structure), + AWSShapeMember(label: "EbpAudioInterval", location: .body(locationName: "ebpAudioInterval"), required: false, type: .enum), + AWSShapeMember(label: "PmtInterval", location: .body(locationName: "pmtInterval"), required: false, type: .integer), + AWSShapeMember(label: "FragmentTime", location: .body(locationName: "fragmentTime"), required: false, type: .double), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .integer), + AWSShapeMember(label: "Scte35Pid", location: .body(locationName: "scte35Pid"), required: false, type: .integer), + AWSShapeMember(label: "EbpPlacement", location: .body(locationName: "ebpPlacement"), required: false, type: .enum), + AWSShapeMember(label: "DvbTeletextPid", location: .body(locationName: "dvbTeletextPid"), required: false, type: .integer), + AWSShapeMember(label: "SegmentationMarkers", location: .body(locationName: "segmentationMarkers"), required: false, type: .enum), + AWSShapeMember(label: "AudioPids", location: .body(locationName: "audioPids"), required: false, type: .list), + AWSShapeMember(label: "DvbSubPids", location: .body(locationName: "dvbSubPids"), required: false, type: .list), + AWSShapeMember(label: "TransportStreamId", location: .body(locationName: "transportStreamId"), required: false, type: .integer), + AWSShapeMember(label: "NullPacketBitrate", location: .body(locationName: "nullPacketBitrate"), required: false, type: .double), + AWSShapeMember(label: "EsRateInPes", location: .body(locationName: "esRateInPes"), required: false, type: .enum) + ] + public let pcrControl: M2tsPcrControl? + /// The number of milliseconds between instances of this table in the output transport stream. + public let patInterval: Int32? + /// Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value. + public let pmtPid: Int32? + /// Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or hexadecimal value. + public let videoPid: Int32? + /// Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value. + public let pcrPid: Int32? + public let scte35Source: M2tsScte35Source? + public let dvbTdtSettings: DvbTdtSettings? + public let rateMode: M2tsRateMode? + public let dvbSdtSettings: DvbSdtSettings? + /// The value of the program number field in the Program Map Table. + public let programNumber: Int32? + /// The number of audio frames to insert for each PES packet. + public let audioFramesPerPes: Int32? + public let bufferModel: M2tsBufferModel? + /// Packet Identifier (PID) of the private metadata stream in the transport stream. Can be entered as a decimal or hexadecimal value. + public let privateMetadataPid: Int32? + public let audioBufferModel: M2tsAudioBufferModel? + /// Maximum time in milliseconds between Program Clock References (PCRs) inserted into the transport stream. + public let maxPcrInterval: Int32? + /// The length in seconds of each segment. Required unless markers is set to _none_. + public let segmentationTime: Double? + public let segmentationStyle: M2tsSegmentationStyle? + /// When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by looking ahead at input video. If another EBP is going to come in within the specified time interval, the current EBP is not emitted, and the segment is "stretched" to the next marker. The lookahead value does not add latency to the system. The Live Event must be configured elsewhere to create sufficient latency to make the lookahead accurate. + public let minEbpInterval: Int32? + public let dvbNitSettings: DvbNitSettings? + public let ebpAudioInterval: M2tsEbpAudioInterval? + /// The number of milliseconds between instances of this table in the output transport stream. + public let pmtInterval: Int32? + /// The length in seconds of each fragment. Only used with EBP markers. + public let fragmentTime: Double? + /// The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically determine the appropriate bitrate. Other common values are 3750000, 7500000, and 15000000. + public let bitrate: Int32? + /// Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal value. + public let scte35Pid: Int32? + public let ebpPlacement: M2tsEbpPlacement? + /// Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or hexadecimal value. + public let dvbTeletextPid: Int32? + public let segmentationMarkers: M2tsSegmentationMarkers? + /// Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. + public let audioPids: [Int32]? + /// Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. + public let dvbSubPids: [Int32]? + /// The value of the transport stream ID field in the Program Map Table. + public let transportStreamId: Int32? + /// Value in bits per second of extra null packets to insert into the transport stream. This can be used if a downstream encryption system requires periodic null packets. + public let nullPacketBitrate: Double? + public let esRateInPes: M2tsEsRateInPes? + + public init(pcrControl: M2tsPcrControl? = nil, patInterval: Int32? = nil, pmtPid: Int32? = nil, videoPid: Int32? = nil, pcrPid: Int32? = nil, scte35Source: M2tsScte35Source? = nil, dvbTdtSettings: DvbTdtSettings? = nil, rateMode: M2tsRateMode? = nil, dvbSdtSettings: DvbSdtSettings? = nil, programNumber: Int32? = nil, audioFramesPerPes: Int32? = nil, bufferModel: M2tsBufferModel? = nil, privateMetadataPid: Int32? = nil, audioBufferModel: M2tsAudioBufferModel? = nil, maxPcrInterval: Int32? = nil, segmentationTime: Double? = nil, segmentationStyle: M2tsSegmentationStyle? = nil, minEbpInterval: Int32? = nil, dvbNitSettings: DvbNitSettings? = nil, ebpAudioInterval: M2tsEbpAudioInterval? = nil, pmtInterval: Int32? = nil, fragmentTime: Double? = nil, bitrate: Int32? = nil, scte35Pid: Int32? = nil, ebpPlacement: M2tsEbpPlacement? = nil, dvbTeletextPid: Int32? = nil, segmentationMarkers: M2tsSegmentationMarkers? = nil, audioPids: [Int32]? = nil, dvbSubPids: [Int32]? = nil, transportStreamId: Int32? = nil, nullPacketBitrate: Double? = nil, esRateInPes: M2tsEsRateInPes? = nil) { + self.pcrControl = pcrControl + self.patInterval = patInterval + self.pmtPid = pmtPid + self.videoPid = videoPid + self.pcrPid = pcrPid + self.scte35Source = scte35Source + self.dvbTdtSettings = dvbTdtSettings + self.rateMode = rateMode + self.dvbSdtSettings = dvbSdtSettings + self.programNumber = programNumber + self.audioFramesPerPes = audioFramesPerPes + self.bufferModel = bufferModel + self.privateMetadataPid = privateMetadataPid + self.audioBufferModel = audioBufferModel + self.maxPcrInterval = maxPcrInterval + self.segmentationTime = segmentationTime + self.segmentationStyle = segmentationStyle + self.minEbpInterval = minEbpInterval + self.dvbNitSettings = dvbNitSettings + self.ebpAudioInterval = ebpAudioInterval + self.pmtInterval = pmtInterval + self.fragmentTime = fragmentTime + self.bitrate = bitrate + self.scte35Pid = scte35Pid + self.ebpPlacement = ebpPlacement + self.dvbTeletextPid = dvbTeletextPid + self.segmentationMarkers = segmentationMarkers + self.audioPids = audioPids + self.dvbSubPids = dvbSubPids + self.transportStreamId = transportStreamId + self.nullPacketBitrate = nullPacketBitrate + self.esRateInPes = esRateInPes + } + + private enum CodingKeys: String, CodingKey { + case pcrControl = "pcrControl" + case patInterval = "patInterval" + case pmtPid = "pmtPid" + case videoPid = "videoPid" + case pcrPid = "pcrPid" + case scte35Source = "scte35Source" + case dvbTdtSettings = "dvbTdtSettings" + case rateMode = "rateMode" + case dvbSdtSettings = "dvbSdtSettings" + case programNumber = "programNumber" + case audioFramesPerPes = "audioFramesPerPes" + case bufferModel = "bufferModel" + case privateMetadataPid = "privateMetadataPid" + case audioBufferModel = "audioBufferModel" + case maxPcrInterval = "maxPcrInterval" + case segmentationTime = "segmentationTime" + case segmentationStyle = "segmentationStyle" + case minEbpInterval = "minEbpInterval" + case dvbNitSettings = "dvbNitSettings" + case ebpAudioInterval = "ebpAudioInterval" + case pmtInterval = "pmtInterval" + case fragmentTime = "fragmentTime" + case bitrate = "bitrate" + case scte35Pid = "scte35Pid" + case ebpPlacement = "ebpPlacement" + case dvbTeletextPid = "dvbTeletextPid" + case segmentationMarkers = "segmentationMarkers" + case audioPids = "audioPids" + case dvbSubPids = "dvbSubPids" + case transportStreamId = "transportStreamId" + case nullPacketBitrate = "nullPacketBitrate" + case esRateInPes = "esRateInPes" + } + } + + public enum FileSourceConvert608To708: String, CustomStringConvertible, Codable { + case upconvert = "UPCONVERT" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public enum Eac3PassthroughControl: String, CustomStringConvertible, Codable { + case whenPossible = "WHEN_POSSIBLE" + case noPassthrough = "NO_PASSTHROUGH" + public var description: String { return self.rawValue } + } + + public struct ListPresetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Category", location: .querystring(locationName: "category"), required: false, type: .string), + AWSShapeMember(label: "ListBy", location: .querystring(locationName: "listBy"), required: false, type: .enum), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Order", location: .querystring(locationName: "order"), required: false, type: .enum), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + /// Optionally, specify a preset category to limit responses to only presets from that category. + public let category: String? + public let listBy: PresetListBy? + /// Use this string, provided with the response to a previous request, to request the next batch of presets. + public let nextToken: String? + public let order: Order? + /// Optional. Number of presets, up to twenty, that will be returned at one time + public let maxResults: Int32? + + public init(category: String? = nil, listBy: PresetListBy? = nil, nextToken: String? = nil, order: Order? = nil, maxResults: Int32? = nil) { + self.category = category + self.listBy = listBy + self.nextToken = nextToken + self.order = order + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case category = "category" + case listBy = "listBy" + case nextToken = "nextToken" + case order = "order" + case maxResults = "maxResults" + } + } + + public enum HlsAudioTrackType: String, CustomStringConvertible, Codable { + case alternateAudioAutoSelectDefault = "ALTERNATE_AUDIO_AUTO_SELECT_DEFAULT" + case alternateAudioAutoSelect = "ALTERNATE_AUDIO_AUTO_SELECT" + case alternateAudioNotAutoSelect = "ALTERNATE_AUDIO_NOT_AUTO_SELECT" + case audioOnlyVariantStream = "AUDIO_ONLY_VARIANT_STREAM" + public var description: String { return self.rawValue } + } + + public enum H265QualityTuningLevel: String, CustomStringConvertible, Codable { + case singlePass = "SINGLE_PASS" + case singlePassHq = "SINGLE_PASS_HQ" + case multiPassHq = "MULTI_PASS_HQ" + public var description: String { return self.rawValue } + } + + public struct VideoCodecSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "H264Settings", location: .body(locationName: "h264Settings"), required: false, type: .structure), + AWSShapeMember(label: "ProresSettings", location: .body(locationName: "proresSettings"), required: false, type: .structure), + AWSShapeMember(label: "H265Settings", location: .body(locationName: "h265Settings"), required: false, type: .structure), + AWSShapeMember(label: "Codec", location: .body(locationName: "codec"), required: false, type: .enum), + AWSShapeMember(label: "FrameCaptureSettings", location: .body(locationName: "frameCaptureSettings"), required: false, type: .structure), + AWSShapeMember(label: "Mpeg2Settings", location: .body(locationName: "mpeg2Settings"), required: false, type: .structure) + ] + public let h264Settings: H264Settings? + public let proresSettings: ProresSettings? + public let h265Settings: H265Settings? + public let codec: VideoCodec? + public let frameCaptureSettings: FrameCaptureSettings? + public let mpeg2Settings: Mpeg2Settings? + + public init(h264Settings: H264Settings? = nil, proresSettings: ProresSettings? = nil, h265Settings: H265Settings? = nil, codec: VideoCodec? = nil, frameCaptureSettings: FrameCaptureSettings? = nil, mpeg2Settings: Mpeg2Settings? = nil) { + self.h264Settings = h264Settings + self.proresSettings = proresSettings + self.h265Settings = h265Settings + self.codec = codec + self.frameCaptureSettings = frameCaptureSettings + self.mpeg2Settings = mpeg2Settings + } + + private enum CodingKeys: String, CodingKey { + case h264Settings = "h264Settings" + case proresSettings = "proresSettings" + case h265Settings = "h265Settings" + case codec = "codec" + case frameCaptureSettings = "frameCaptureSettings" + case mpeg2Settings = "mpeg2Settings" + } + } + + public struct Rectangle: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "X", location: .body(locationName: "x"), required: false, type: .integer), + AWSShapeMember(label: "Height", location: .body(locationName: "height"), required: false, type: .integer), + AWSShapeMember(label: "Width", location: .body(locationName: "width"), required: false, type: .integer), + AWSShapeMember(label: "Y", location: .body(locationName: "y"), required: false, type: .integer) + ] + /// The distance, in pixels, between the rectangle and the left edge of the video frame. + public let x: Int32? + /// Height of rectangle in pixels. + public let height: Int32? + /// Width of rectangle in pixels. + public let width: Int32? + /// The distance, in pixels, between the rectangle and the top edge of the video frame. + public let y: Int32? + + public init(x: Int32? = nil, height: Int32? = nil, width: Int32? = nil, y: Int32? = nil) { + self.x = x + self.height = height + self.width = width + self.y = y + } + + private enum CodingKeys: String, CodingKey { + case x = "x" + case height = "height" + case width = "width" + case y = "y" + } + } + + public struct BurninDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackgroundColor", location: .body(locationName: "backgroundColor"), required: false, type: .enum), + AWSShapeMember(label: "BackgroundOpacity", location: .body(locationName: "backgroundOpacity"), required: false, type: .integer), + AWSShapeMember(label: "YPosition", location: .body(locationName: "yPosition"), required: false, type: .integer), + AWSShapeMember(label: "FontOpacity", location: .body(locationName: "fontOpacity"), required: false, type: .integer), + AWSShapeMember(label: "ShadowXOffset", location: .body(locationName: "shadowXOffset"), required: false, type: .integer), + AWSShapeMember(label: "FontSize", location: .body(locationName: "fontSize"), required: false, type: .integer), + AWSShapeMember(label: "Alignment", location: .body(locationName: "alignment"), required: false, type: .enum), + AWSShapeMember(label: "XPosition", location: .body(locationName: "xPosition"), required: false, type: .integer), + AWSShapeMember(label: "ShadowOpacity", location: .body(locationName: "shadowOpacity"), required: false, type: .integer), + AWSShapeMember(label: "FontColor", location: .body(locationName: "fontColor"), required: false, type: .enum), + AWSShapeMember(label: "OutlineColor", location: .body(locationName: "outlineColor"), required: false, type: .enum), + AWSShapeMember(label: "ShadowColor", location: .body(locationName: "shadowColor"), required: false, type: .enum), + AWSShapeMember(label: "TeletextSpacing", location: .body(locationName: "teletextSpacing"), required: false, type: .enum), + AWSShapeMember(label: "FontResolution", location: .body(locationName: "fontResolution"), required: false, type: .integer), + AWSShapeMember(label: "ShadowYOffset", location: .body(locationName: "shadowYOffset"), required: false, type: .integer), + AWSShapeMember(label: "OutlineSize", location: .body(locationName: "outlineSize"), required: false, type: .integer) + ] + public let backgroundColor: BurninSubtitleBackgroundColor? + /// Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match. + public let backgroundOpacity: Int32? + /// Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit y_position is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let yPosition: Int32? + /// Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. + /// All burn-in and DVB-Sub font settings must match. + public let fontOpacity: Int32? + /// Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match. + public let shadowXOffset: Int32? + /// A positive integer indicates the exact font size in points. Set to 0 for automatic font size selection. All burn-in and DVB-Sub font settings must match. + public let fontSize: Int32? + public let alignment: BurninSubtitleAlignment? + /// Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit x_position is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let xPosition: Int32? + /// Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match. + public let shadowOpacity: Int32? + public let fontColor: BurninSubtitleFontColor? + public let outlineColor: BurninSubtitleOutlineColor? + public let shadowColor: BurninSubtitleShadowColor? + public let teletextSpacing: BurninSubtitleTeletextSpacing? + /// Font resolution in DPI (dots per inch); default is 96 dpi. + /// All burn-in and DVB-Sub font settings must match. + public let fontResolution: Int32? + /// Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match. + public let shadowYOffset: Int32? + /// Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let outlineSize: Int32? + + public init(backgroundColor: BurninSubtitleBackgroundColor? = nil, backgroundOpacity: Int32? = nil, yPosition: Int32? = nil, fontOpacity: Int32? = nil, shadowXOffset: Int32? = nil, fontSize: Int32? = nil, alignment: BurninSubtitleAlignment? = nil, xPosition: Int32? = nil, shadowOpacity: Int32? = nil, fontColor: BurninSubtitleFontColor? = nil, outlineColor: BurninSubtitleOutlineColor? = nil, shadowColor: BurninSubtitleShadowColor? = nil, teletextSpacing: BurninSubtitleTeletextSpacing? = nil, fontResolution: Int32? = nil, shadowYOffset: Int32? = nil, outlineSize: Int32? = nil) { + self.backgroundColor = backgroundColor + self.backgroundOpacity = backgroundOpacity + self.yPosition = yPosition + self.fontOpacity = fontOpacity + self.shadowXOffset = shadowXOffset + self.fontSize = fontSize + self.alignment = alignment + self.xPosition = xPosition + self.shadowOpacity = shadowOpacity + self.fontColor = fontColor + self.outlineColor = outlineColor + self.shadowColor = shadowColor + self.teletextSpacing = teletextSpacing + self.fontResolution = fontResolution + self.shadowYOffset = shadowYOffset + self.outlineSize = outlineSize + } + + private enum CodingKeys: String, CodingKey { + case backgroundColor = "backgroundColor" + case backgroundOpacity = "backgroundOpacity" + case yPosition = "yPosition" + case fontOpacity = "fontOpacity" + case shadowXOffset = "shadowXOffset" + case fontSize = "fontSize" + case alignment = "alignment" + case xPosition = "xPosition" + case shadowOpacity = "shadowOpacity" + case fontColor = "fontColor" + case outlineColor = "outlineColor" + case shadowColor = "shadowColor" + case teletextSpacing = "teletextSpacing" + case fontResolution = "fontResolution" + case shadowYOffset = "shadowYOffset" + case outlineSize = "outlineSize" + } + } + + public struct H264Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NumberBFramesBetweenReferenceFrames", location: .body(locationName: "numberBFramesBetweenReferenceFrames"), required: false, type: .integer), + AWSShapeMember(label: "ParControl", location: .body(locationName: "parControl"), required: false, type: .enum), + AWSShapeMember(label: "FlickerAdaptiveQuantization", location: .body(locationName: "flickerAdaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "GopBReference", location: .body(locationName: "gopBReference"), required: false, type: .enum), + AWSShapeMember(label: "FramerateNumerator", location: .body(locationName: "framerateNumerator"), required: false, type: .integer), + AWSShapeMember(label: "Slices", location: .body(locationName: "slices"), required: false, type: .integer), + AWSShapeMember(label: "HrdBufferSize", location: .body(locationName: "hrdBufferSize"), required: false, type: .integer), + AWSShapeMember(label: "EntropyEncoding", location: .body(locationName: "entropyEncoding"), required: false, type: .enum), + AWSShapeMember(label: "SpatialAdaptiveQuantization", location: .body(locationName: "spatialAdaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "ParNumerator", location: .body(locationName: "parNumerator"), required: false, type: .integer), + AWSShapeMember(label: "CodecProfile", location: .body(locationName: "codecProfile"), required: false, type: .enum), + AWSShapeMember(label: "QualityTuningLevel", location: .body(locationName: "qualityTuningLevel"), required: false, type: .enum), + AWSShapeMember(label: "CodecLevel", location: .body(locationName: "codecLevel"), required: false, type: .enum), + AWSShapeMember(label: "MaxBitrate", location: .body(locationName: "maxBitrate"), required: false, type: .integer), + AWSShapeMember(label: "AdaptiveQuantization", location: .body(locationName: "adaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "GopSizeUnits", location: .body(locationName: "gopSizeUnits"), required: false, type: .enum), + AWSShapeMember(label: "SceneChangeDetect", location: .body(locationName: "sceneChangeDetect"), required: false, type: .enum), + AWSShapeMember(label: "SlowPal", location: .body(locationName: "slowPal"), required: false, type: .enum), + AWSShapeMember(label: "TemporalAdaptiveQuantization", location: .body(locationName: "temporalAdaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "NumberReferenceFrames", location: .body(locationName: "numberReferenceFrames"), required: false, type: .integer), + AWSShapeMember(label: "RateControlMode", location: .body(locationName: "rateControlMode"), required: false, type: .enum), + AWSShapeMember(label: "FramerateDenominator", location: .body(locationName: "framerateDenominator"), required: false, type: .integer), + AWSShapeMember(label: "FramerateConversionAlgorithm", location: .body(locationName: "framerateConversionAlgorithm"), required: false, type: .enum), + AWSShapeMember(label: "FieldEncoding", location: .body(locationName: "fieldEncoding"), required: false, type: .enum), + AWSShapeMember(label: "ParDenominator", location: .body(locationName: "parDenominator"), required: false, type: .integer), + AWSShapeMember(label: "GopClosedCadence", location: .body(locationName: "gopClosedCadence"), required: false, type: .integer), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .integer), + AWSShapeMember(label: "InterlaceMode", location: .body(locationName: "interlaceMode"), required: false, type: .enum), + AWSShapeMember(label: "MinIInterval", location: .body(locationName: "minIInterval"), required: false, type: .integer), + AWSShapeMember(label: "Syntax", location: .body(locationName: "syntax"), required: false, type: .enum), + AWSShapeMember(label: "RepeatPps", location: .body(locationName: "repeatPps"), required: false, type: .enum), + AWSShapeMember(label: "HrdBufferInitialFillPercentage", location: .body(locationName: "hrdBufferInitialFillPercentage"), required: false, type: .integer), + AWSShapeMember(label: "UnregisteredSeiTimecode", location: .body(locationName: "unregisteredSeiTimecode"), required: false, type: .enum), + AWSShapeMember(label: "Softness", location: .body(locationName: "softness"), required: false, type: .integer), + AWSShapeMember(label: "GopSize", location: .body(locationName: "gopSize"), required: false, type: .double), + AWSShapeMember(label: "FramerateControl", location: .body(locationName: "framerateControl"), required: false, type: .enum), + AWSShapeMember(label: "Telecine", location: .body(locationName: "telecine"), required: false, type: .enum) + ] + /// Number of B-frames between reference frames. + public let numberBFramesBetweenReferenceFrames: Int32? + public let parControl: H264ParControl? + public let flickerAdaptiveQuantization: H264FlickerAdaptiveQuantization? + public let gopBReference: H264GopBReference? + /// Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps. + public let framerateNumerator: Int32? + /// Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures. + public let slices: Int32? + /// Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. + public let hrdBufferSize: Int32? + public let entropyEncoding: H264EntropyEncoding? + public let spatialAdaptiveQuantization: H264SpatialAdaptiveQuantization? + /// Pixel Aspect Ratio numerator. + public let parNumerator: Int32? + public let codecProfile: H264CodecProfile? + public let qualityTuningLevel: H264QualityTuningLevel? + public let codecLevel: H264CodecLevel? + /// Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. + public let maxBitrate: Int32? + public let adaptiveQuantization: H264AdaptiveQuantization? + public let gopSizeUnits: H264GopSizeUnits? + public let sceneChangeDetect: H264SceneChangeDetect? + public let slowPal: H264SlowPal? + public let temporalAdaptiveQuantization: H264TemporalAdaptiveQuantization? + /// Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding. + public let numberReferenceFrames: Int32? + public let rateControlMode: H264RateControlMode? + /// When you use the API for transcode jobs that use framerate conversion, specify the framerate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of this fraction. In this example, use 1001 for the value of FramerateDenominator. When you use the console for transcode jobs that use framerate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976. + public let framerateDenominator: Int32? + public let framerateConversionAlgorithm: H264FramerateConversionAlgorithm? + public let fieldEncoding: H264FieldEncoding? + /// Pixel Aspect Ratio denominator. + public let parDenominator: Int32? + /// Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting. + public let gopClosedCadence: Int32? + /// Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000. + public let bitrate: Int32? + public let interlaceMode: H264InterlaceMode? + /// Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1 + public let minIInterval: Int32? + public let syntax: H264Syntax? + public let repeatPps: H264RepeatPps? + /// Percentage of the buffer that should initially be filled (HRD buffer model). + public let hrdBufferInitialFillPercentage: Int32? + public let unregisteredSeiTimecode: H264UnregisteredSeiTimecode? + /// Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image. + public let softness: Int32? + /// GOP Length (keyframe interval) in frames or seconds. Must be greater than zero. + public let gopSize: Double? + public let framerateControl: H264FramerateControl? + public let telecine: H264Telecine? + + public init(numberBFramesBetweenReferenceFrames: Int32? = nil, parControl: H264ParControl? = nil, flickerAdaptiveQuantization: H264FlickerAdaptiveQuantization? = nil, gopBReference: H264GopBReference? = nil, framerateNumerator: Int32? = nil, slices: Int32? = nil, hrdBufferSize: Int32? = nil, entropyEncoding: H264EntropyEncoding? = nil, spatialAdaptiveQuantization: H264SpatialAdaptiveQuantization? = nil, parNumerator: Int32? = nil, codecProfile: H264CodecProfile? = nil, qualityTuningLevel: H264QualityTuningLevel? = nil, codecLevel: H264CodecLevel? = nil, maxBitrate: Int32? = nil, adaptiveQuantization: H264AdaptiveQuantization? = nil, gopSizeUnits: H264GopSizeUnits? = nil, sceneChangeDetect: H264SceneChangeDetect? = nil, slowPal: H264SlowPal? = nil, temporalAdaptiveQuantization: H264TemporalAdaptiveQuantization? = nil, numberReferenceFrames: Int32? = nil, rateControlMode: H264RateControlMode? = nil, framerateDenominator: Int32? = nil, framerateConversionAlgorithm: H264FramerateConversionAlgorithm? = nil, fieldEncoding: H264FieldEncoding? = nil, parDenominator: Int32? = nil, gopClosedCadence: Int32? = nil, bitrate: Int32? = nil, interlaceMode: H264InterlaceMode? = nil, minIInterval: Int32? = nil, syntax: H264Syntax? = nil, repeatPps: H264RepeatPps? = nil, hrdBufferInitialFillPercentage: Int32? = nil, unregisteredSeiTimecode: H264UnregisteredSeiTimecode? = nil, softness: Int32? = nil, gopSize: Double? = nil, framerateControl: H264FramerateControl? = nil, telecine: H264Telecine? = nil) { + self.numberBFramesBetweenReferenceFrames = numberBFramesBetweenReferenceFrames + self.parControl = parControl + self.flickerAdaptiveQuantization = flickerAdaptiveQuantization + self.gopBReference = gopBReference + self.framerateNumerator = framerateNumerator + self.slices = slices + self.hrdBufferSize = hrdBufferSize + self.entropyEncoding = entropyEncoding + self.spatialAdaptiveQuantization = spatialAdaptiveQuantization + self.parNumerator = parNumerator + self.codecProfile = codecProfile + self.qualityTuningLevel = qualityTuningLevel + self.codecLevel = codecLevel + self.maxBitrate = maxBitrate + self.adaptiveQuantization = adaptiveQuantization + self.gopSizeUnits = gopSizeUnits + self.sceneChangeDetect = sceneChangeDetect + self.slowPal = slowPal + self.temporalAdaptiveQuantization = temporalAdaptiveQuantization + self.numberReferenceFrames = numberReferenceFrames + self.rateControlMode = rateControlMode + self.framerateDenominator = framerateDenominator + self.framerateConversionAlgorithm = framerateConversionAlgorithm + self.fieldEncoding = fieldEncoding + self.parDenominator = parDenominator + self.gopClosedCadence = gopClosedCadence + self.bitrate = bitrate + self.interlaceMode = interlaceMode + self.minIInterval = minIInterval + self.syntax = syntax + self.repeatPps = repeatPps + self.hrdBufferInitialFillPercentage = hrdBufferInitialFillPercentage + self.unregisteredSeiTimecode = unregisteredSeiTimecode + self.softness = softness + self.gopSize = gopSize + self.framerateControl = framerateControl + self.telecine = telecine + } + + private enum CodingKeys: String, CodingKey { + case numberBFramesBetweenReferenceFrames = "numberBFramesBetweenReferenceFrames" + case parControl = "parControl" + case flickerAdaptiveQuantization = "flickerAdaptiveQuantization" + case gopBReference = "gopBReference" + case framerateNumerator = "framerateNumerator" + case slices = "slices" + case hrdBufferSize = "hrdBufferSize" + case entropyEncoding = "entropyEncoding" + case spatialAdaptiveQuantization = "spatialAdaptiveQuantization" + case parNumerator = "parNumerator" + case codecProfile = "codecProfile" + case qualityTuningLevel = "qualityTuningLevel" + case codecLevel = "codecLevel" + case maxBitrate = "maxBitrate" + case adaptiveQuantization = "adaptiveQuantization" + case gopSizeUnits = "gopSizeUnits" + case sceneChangeDetect = "sceneChangeDetect" + case slowPal = "slowPal" + case temporalAdaptiveQuantization = "temporalAdaptiveQuantization" + case numberReferenceFrames = "numberReferenceFrames" + case rateControlMode = "rateControlMode" + case framerateDenominator = "framerateDenominator" + case framerateConversionAlgorithm = "framerateConversionAlgorithm" + case fieldEncoding = "fieldEncoding" + case parDenominator = "parDenominator" + case gopClosedCadence = "gopClosedCadence" + case bitrate = "bitrate" + case interlaceMode = "interlaceMode" + case minIInterval = "minIInterval" + case syntax = "syntax" + case repeatPps = "repeatPps" + case hrdBufferInitialFillPercentage = "hrdBufferInitialFillPercentage" + case unregisteredSeiTimecode = "unregisteredSeiTimecode" + case softness = "softness" + case gopSize = "gopSize" + case framerateControl = "framerateControl" + case telecine = "telecine" + } + } + + public struct MovSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Reference", location: .body(locationName: "reference"), required: false, type: .enum), + AWSShapeMember(label: "ClapAtom", location: .body(locationName: "clapAtom"), required: false, type: .enum), + AWSShapeMember(label: "Mpeg2FourCCControl", location: .body(locationName: "mpeg2FourCCControl"), required: false, type: .enum), + AWSShapeMember(label: "PaddingControl", location: .body(locationName: "paddingControl"), required: false, type: .enum), + AWSShapeMember(label: "CslgAtom", location: .body(locationName: "cslgAtom"), required: false, type: .enum) + ] + public let reference: MovReference? + public let clapAtom: MovClapAtom? + public let mpeg2FourCCControl: MovMpeg2FourCCControl? + public let paddingControl: MovPaddingControl? + public let cslgAtom: MovCslgAtom? + + public init(reference: MovReference? = nil, clapAtom: MovClapAtom? = nil, mpeg2FourCCControl: MovMpeg2FourCCControl? = nil, paddingControl: MovPaddingControl? = nil, cslgAtom: MovCslgAtom? = nil) { + self.reference = reference + self.clapAtom = clapAtom + self.mpeg2FourCCControl = mpeg2FourCCControl + self.paddingControl = paddingControl + self.cslgAtom = cslgAtom + } + + private enum CodingKeys: String, CodingKey { + case reference = "reference" + case clapAtom = "clapAtom" + case mpeg2FourCCControl = "mpeg2FourCCControl" + case paddingControl = "paddingControl" + case cslgAtom = "cslgAtom" + } + } + + public enum H264CodecProfile: String, CustomStringConvertible, Codable { + case baseline = "BASELINE" + case high = "HIGH" + case high10Bit = "HIGH_10BIT" + case high422 = "HIGH_422" + case high42210Bit = "HIGH_422_10BIT" + case main = "MAIN" + public var description: String { return self.rawValue } + } + + public enum MovReference: String, CustomStringConvertible, Codable { + case selfContained = "SELF_CONTAINED" + case external = "EXTERNAL" + public var description: String { return self.rawValue } + } + + public enum H265RateControlMode: String, CustomStringConvertible, Codable { + case vbr = "VBR" + case cbr = "CBR" + public var description: String { return self.rawValue } + } + + public enum H265ParControl: String, CustomStringConvertible, Codable { + case initializeFromSource = "INITIALIZE_FROM_SOURCE" + case specified = "SPECIFIED" + public var description: String { return self.rawValue } + } + + public enum DvbSubtitleBackgroundColor: String, CustomStringConvertible, Codable { + case none = "NONE" + case black = "BLACK" + case white = "WHITE" + public var description: String { return self.rawValue } + } + + public enum Mpeg2RateControlMode: String, CustomStringConvertible, Codable { + case vbr = "VBR" + case cbr = "CBR" + public var description: String { return self.rawValue } + } + + public enum M3u8PcrControl: String, CustomStringConvertible, Codable { + case pcrEveryPesPacket = "PCR_EVERY_PES_PACKET" + case configuredPcrPeriod = "CONFIGURED_PCR_PERIOD" + public var description: String { return self.rawValue } + } + + public struct CaptionSelector: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .enum), + AWSShapeMember(label: "SourceSettings", location: .body(locationName: "sourceSettings"), required: false, type: .structure) + ] + /// The specific language to extract from source. If input is SCTE-27, complete this field and/or PID to select the caption language to extract. If input is DVB-Sub and output is Burn-in or SMPTE-TT, complete this field and/or PID to select the caption language to extract. If input is DVB-Sub that is being passed through, omit this field (and PID field); there is no way to extract a specific language with pass-through captions. + public let languageCode: LanguageCode? + public let sourceSettings: CaptionSourceSettings? + + public init(languageCode: LanguageCode? = nil, sourceSettings: CaptionSourceSettings? = nil) { + self.languageCode = languageCode + self.sourceSettings = sourceSettings + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "languageCode" + case sourceSettings = "sourceSettings" + } + } + + public enum AudioSelectorType: String, CustomStringConvertible, Codable { + case pid = "PID" + case track = "TRACK" + case languageCode = "LANGUAGE_CODE" + public var description: String { return self.rawValue } + } + + public enum JobTemplateListBy: String, CustomStringConvertible, Codable { + case name = "NAME" + case creationDate = "CREATION_DATE" + case system = "SYSTEM" + public var description: String { return self.rawValue } + } + + public enum HlsAdMarkers: String, CustomStringConvertible, Codable { + case elemental = "ELEMENTAL" + case elementalScte35 = "ELEMENTAL_SCTE35" + public var description: String { return self.rawValue } + } + + public enum H264FieldEncoding: String, CustomStringConvertible, Codable { + case paff = "PAFF" + case forceField = "FORCE_FIELD" + public var description: String { return self.rawValue } + } + + public struct NoiseReducerSpatialFilterSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PostFilterSharpenStrength", location: .body(locationName: "postFilterSharpenStrength"), required: false, type: .integer), + AWSShapeMember(label: "Speed", location: .body(locationName: "speed"), required: false, type: .integer), + AWSShapeMember(label: "Strength", location: .body(locationName: "strength"), required: false, type: .integer) + ] + /// Specify strength of post noise reduction sharpening filter, with 0 disabling the filter and 3 enabling it at maximum strength. + public let postFilterSharpenStrength: Int32? + /// The speed of the filter, from -2 (lower speed) to 3 (higher speed), with 0 being the nominal value. + public let speed: Int32? + /// Relative strength of noise reducing filter. Higher values produce stronger filtering. + public let strength: Int32? + + public init(postFilterSharpenStrength: Int32? = nil, speed: Int32? = nil, strength: Int32? = nil) { + self.postFilterSharpenStrength = postFilterSharpenStrength + self.speed = speed + self.strength = strength + } + + private enum CodingKeys: String, CodingKey { + case postFilterSharpenStrength = "postFilterSharpenStrength" + case speed = "speed" + case strength = "strength" + } + } + + public struct CaptionSourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FileSourceSettings", location: .body(locationName: "fileSourceSettings"), required: false, type: .structure), + AWSShapeMember(label: "DvbSubSourceSettings", location: .body(locationName: "dvbSubSourceSettings"), required: false, type: .structure), + AWSShapeMember(label: "AncillarySourceSettings", location: .body(locationName: "ancillarySourceSettings"), required: false, type: .structure), + AWSShapeMember(label: "TeletextSourceSettings", location: .body(locationName: "teletextSourceSettings"), required: false, type: .structure), + AWSShapeMember(label: "SourceType", location: .body(locationName: "sourceType"), required: false, type: .enum), + AWSShapeMember(label: "EmbeddedSourceSettings", location: .body(locationName: "embeddedSourceSettings"), required: false, type: .structure) + ] + public let fileSourceSettings: FileSourceSettings? + public let dvbSubSourceSettings: DvbSubSourceSettings? + public let ancillarySourceSettings: AncillarySourceSettings? + public let teletextSourceSettings: TeletextSourceSettings? + public let sourceType: CaptionSourceType? + public let embeddedSourceSettings: EmbeddedSourceSettings? + + public init(fileSourceSettings: FileSourceSettings? = nil, dvbSubSourceSettings: DvbSubSourceSettings? = nil, ancillarySourceSettings: AncillarySourceSettings? = nil, teletextSourceSettings: TeletextSourceSettings? = nil, sourceType: CaptionSourceType? = nil, embeddedSourceSettings: EmbeddedSourceSettings? = nil) { + self.fileSourceSettings = fileSourceSettings + self.dvbSubSourceSettings = dvbSubSourceSettings + self.ancillarySourceSettings = ancillarySourceSettings + self.teletextSourceSettings = teletextSourceSettings + self.sourceType = sourceType + self.embeddedSourceSettings = embeddedSourceSettings + } + + private enum CodingKeys: String, CodingKey { + case fileSourceSettings = "fileSourceSettings" + case dvbSubSourceSettings = "dvbSubSourceSettings" + case ancillarySourceSettings = "ancillarySourceSettings" + case teletextSourceSettings = "teletextSourceSettings" + case sourceType = "sourceType" + case embeddedSourceSettings = "embeddedSourceSettings" + } + } + + public enum VideoTimecodeInsertion: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case picTimingSei = "PIC_TIMING_SEI" + public var description: String { return self.rawValue } + } + + public enum H265UnregisteredSeiTimecode: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum VideoCodec: String, CustomStringConvertible, Codable { + case frameCapture = "FRAME_CAPTURE" + case h264 = "H_264" + case h265 = "H_265" + case mpeg2 = "MPEG2" + case prores = "PRORES" + public var description: String { return self.rawValue } + } + + public struct Mpeg2Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NumberBFramesBetweenReferenceFrames", location: .body(locationName: "numberBFramesBetweenReferenceFrames"), required: false, type: .integer), + AWSShapeMember(label: "ParControl", location: .body(locationName: "parControl"), required: false, type: .enum), + AWSShapeMember(label: "FramerateNumerator", location: .body(locationName: "framerateNumerator"), required: false, type: .integer), + AWSShapeMember(label: "HrdBufferSize", location: .body(locationName: "hrdBufferSize"), required: false, type: .integer), + AWSShapeMember(label: "SpatialAdaptiveQuantization", location: .body(locationName: "spatialAdaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "ParNumerator", location: .body(locationName: "parNumerator"), required: false, type: .integer), + AWSShapeMember(label: "CodecProfile", location: .body(locationName: "codecProfile"), required: false, type: .enum), + AWSShapeMember(label: "QualityTuningLevel", location: .body(locationName: "qualityTuningLevel"), required: false, type: .enum), + AWSShapeMember(label: "CodecLevel", location: .body(locationName: "codecLevel"), required: false, type: .enum), + AWSShapeMember(label: "AdaptiveQuantization", location: .body(locationName: "adaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "MaxBitrate", location: .body(locationName: "maxBitrate"), required: false, type: .integer), + AWSShapeMember(label: "GopSizeUnits", location: .body(locationName: "gopSizeUnits"), required: false, type: .enum), + AWSShapeMember(label: "SceneChangeDetect", location: .body(locationName: "sceneChangeDetect"), required: false, type: .enum), + AWSShapeMember(label: "SlowPal", location: .body(locationName: "slowPal"), required: false, type: .enum), + AWSShapeMember(label: "TemporalAdaptiveQuantization", location: .body(locationName: "temporalAdaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "IntraDcPrecision", location: .body(locationName: "intraDcPrecision"), required: false, type: .enum), + AWSShapeMember(label: "RateControlMode", location: .body(locationName: "rateControlMode"), required: false, type: .enum), + AWSShapeMember(label: "FramerateDenominator", location: .body(locationName: "framerateDenominator"), required: false, type: .integer), + AWSShapeMember(label: "FramerateConversionAlgorithm", location: .body(locationName: "framerateConversionAlgorithm"), required: false, type: .enum), + AWSShapeMember(label: "ParDenominator", location: .body(locationName: "parDenominator"), required: false, type: .integer), + AWSShapeMember(label: "GopClosedCadence", location: .body(locationName: "gopClosedCadence"), required: false, type: .integer), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .integer), + AWSShapeMember(label: "MinIInterval", location: .body(locationName: "minIInterval"), required: false, type: .integer), + AWSShapeMember(label: "InterlaceMode", location: .body(locationName: "interlaceMode"), required: false, type: .enum), + AWSShapeMember(label: "Syntax", location: .body(locationName: "syntax"), required: false, type: .enum), + AWSShapeMember(label: "HrdBufferInitialFillPercentage", location: .body(locationName: "hrdBufferInitialFillPercentage"), required: false, type: .integer), + AWSShapeMember(label: "Softness", location: .body(locationName: "softness"), required: false, type: .integer), + AWSShapeMember(label: "GopSize", location: .body(locationName: "gopSize"), required: false, type: .double), + AWSShapeMember(label: "FramerateControl", location: .body(locationName: "framerateControl"), required: false, type: .enum), + AWSShapeMember(label: "Telecine", location: .body(locationName: "telecine"), required: false, type: .enum) + ] + /// Number of B-frames between reference frames. + public let numberBFramesBetweenReferenceFrames: Int32? + public let parControl: Mpeg2ParControl? + /// Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps. + public let framerateNumerator: Int32? + /// Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. + public let hrdBufferSize: Int32? + public let spatialAdaptiveQuantization: Mpeg2SpatialAdaptiveQuantization? + /// Pixel Aspect Ratio numerator. + public let parNumerator: Int32? + public let codecProfile: Mpeg2CodecProfile? + public let qualityTuningLevel: Mpeg2QualityTuningLevel? + public let codecLevel: Mpeg2CodecLevel? + public let adaptiveQuantization: Mpeg2AdaptiveQuantization? + /// Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. + public let maxBitrate: Int32? + public let gopSizeUnits: Mpeg2GopSizeUnits? + public let sceneChangeDetect: Mpeg2SceneChangeDetect? + public let slowPal: Mpeg2SlowPal? + public let temporalAdaptiveQuantization: Mpeg2TemporalAdaptiveQuantization? + public let intraDcPrecision: Mpeg2IntraDcPrecision? + public let rateControlMode: Mpeg2RateControlMode? + /// Framerate denominator. + public let framerateDenominator: Int32? + public let framerateConversionAlgorithm: Mpeg2FramerateConversionAlgorithm? + /// Pixel Aspect Ratio denominator. + public let parDenominator: Int32? + /// Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting. + public let gopClosedCadence: Int32? + /// Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000. + public let bitrate: Int32? + /// Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1 + public let minIInterval: Int32? + public let interlaceMode: Mpeg2InterlaceMode? + public let syntax: Mpeg2Syntax? + /// Percentage of the buffer that should initially be filled (HRD buffer model). + public let hrdBufferInitialFillPercentage: Int32? + /// Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image. + public let softness: Int32? + /// GOP Length (keyframe interval) in frames or seconds. Must be greater than zero. + public let gopSize: Double? + public let framerateControl: Mpeg2FramerateControl? + public let telecine: Mpeg2Telecine? + + public init(numberBFramesBetweenReferenceFrames: Int32? = nil, parControl: Mpeg2ParControl? = nil, framerateNumerator: Int32? = nil, hrdBufferSize: Int32? = nil, spatialAdaptiveQuantization: Mpeg2SpatialAdaptiveQuantization? = nil, parNumerator: Int32? = nil, codecProfile: Mpeg2CodecProfile? = nil, qualityTuningLevel: Mpeg2QualityTuningLevel? = nil, codecLevel: Mpeg2CodecLevel? = nil, adaptiveQuantization: Mpeg2AdaptiveQuantization? = nil, maxBitrate: Int32? = nil, gopSizeUnits: Mpeg2GopSizeUnits? = nil, sceneChangeDetect: Mpeg2SceneChangeDetect? = nil, slowPal: Mpeg2SlowPal? = nil, temporalAdaptiveQuantization: Mpeg2TemporalAdaptiveQuantization? = nil, intraDcPrecision: Mpeg2IntraDcPrecision? = nil, rateControlMode: Mpeg2RateControlMode? = nil, framerateDenominator: Int32? = nil, framerateConversionAlgorithm: Mpeg2FramerateConversionAlgorithm? = nil, parDenominator: Int32? = nil, gopClosedCadence: Int32? = nil, bitrate: Int32? = nil, minIInterval: Int32? = nil, interlaceMode: Mpeg2InterlaceMode? = nil, syntax: Mpeg2Syntax? = nil, hrdBufferInitialFillPercentage: Int32? = nil, softness: Int32? = nil, gopSize: Double? = nil, framerateControl: Mpeg2FramerateControl? = nil, telecine: Mpeg2Telecine? = nil) { + self.numberBFramesBetweenReferenceFrames = numberBFramesBetweenReferenceFrames + self.parControl = parControl + self.framerateNumerator = framerateNumerator + self.hrdBufferSize = hrdBufferSize + self.spatialAdaptiveQuantization = spatialAdaptiveQuantization + self.parNumerator = parNumerator + self.codecProfile = codecProfile + self.qualityTuningLevel = qualityTuningLevel + self.codecLevel = codecLevel + self.adaptiveQuantization = adaptiveQuantization + self.maxBitrate = maxBitrate + self.gopSizeUnits = gopSizeUnits + self.sceneChangeDetect = sceneChangeDetect + self.slowPal = slowPal + self.temporalAdaptiveQuantization = temporalAdaptiveQuantization + self.intraDcPrecision = intraDcPrecision + self.rateControlMode = rateControlMode + self.framerateDenominator = framerateDenominator + self.framerateConversionAlgorithm = framerateConversionAlgorithm + self.parDenominator = parDenominator + self.gopClosedCadence = gopClosedCadence + self.bitrate = bitrate + self.minIInterval = minIInterval + self.interlaceMode = interlaceMode + self.syntax = syntax + self.hrdBufferInitialFillPercentage = hrdBufferInitialFillPercentage + self.softness = softness + self.gopSize = gopSize + self.framerateControl = framerateControl + self.telecine = telecine + } + + private enum CodingKeys: String, CodingKey { + case numberBFramesBetweenReferenceFrames = "numberBFramesBetweenReferenceFrames" + case parControl = "parControl" + case framerateNumerator = "framerateNumerator" + case hrdBufferSize = "hrdBufferSize" + case spatialAdaptiveQuantization = "spatialAdaptiveQuantization" + case parNumerator = "parNumerator" + case codecProfile = "codecProfile" + case qualityTuningLevel = "qualityTuningLevel" + case codecLevel = "codecLevel" + case adaptiveQuantization = "adaptiveQuantization" + case maxBitrate = "maxBitrate" + case gopSizeUnits = "gopSizeUnits" + case sceneChangeDetect = "sceneChangeDetect" + case slowPal = "slowPal" + case temporalAdaptiveQuantization = "temporalAdaptiveQuantization" + case intraDcPrecision = "intraDcPrecision" + case rateControlMode = "rateControlMode" + case framerateDenominator = "framerateDenominator" + case framerateConversionAlgorithm = "framerateConversionAlgorithm" + case parDenominator = "parDenominator" + case gopClosedCadence = "gopClosedCadence" + case bitrate = "bitrate" + case minIInterval = "minIInterval" + case interlaceMode = "interlaceMode" + case syntax = "syntax" + case hrdBufferInitialFillPercentage = "hrdBufferInitialFillPercentage" + case softness = "softness" + case gopSize = "gopSize" + case framerateControl = "framerateControl" + case telecine = "telecine" + } + } + + public struct MsSmoothGroupSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destination", location: .body(locationName: "destination"), required: false, type: .string), + AWSShapeMember(label: "FragmentLength", location: .body(locationName: "fragmentLength"), required: false, type: .integer), + AWSShapeMember(label: "Encryption", location: .body(locationName: "encryption"), required: false, type: .structure), + AWSShapeMember(label: "ManifestEncoding", location: .body(locationName: "manifestEncoding"), required: false, type: .enum), + AWSShapeMember(label: "AudioDeduplication", location: .body(locationName: "audioDeduplication"), required: false, type: .enum) + ] + /// Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file. + public let destination: String? + /// Use Fragment length (FragmentLength) to specify the mp4 fragment sizes in seconds. Fragment length must be compatible with GOP size and framerate. + public let fragmentLength: Int32? + public let encryption: MsSmoothEncryptionSettings? + public let manifestEncoding: MsSmoothManifestEncoding? + public let audioDeduplication: MsSmoothAudioDeduplication? + + public init(destination: String? = nil, fragmentLength: Int32? = nil, encryption: MsSmoothEncryptionSettings? = nil, manifestEncoding: MsSmoothManifestEncoding? = nil, audioDeduplication: MsSmoothAudioDeduplication? = nil) { + self.destination = destination + self.fragmentLength = fragmentLength + self.encryption = encryption + self.manifestEncoding = manifestEncoding + self.audioDeduplication = audioDeduplication + } + + private enum CodingKeys: String, CodingKey { + case destination = "destination" + case fragmentLength = "fragmentLength" + case encryption = "encryption" + case manifestEncoding = "manifestEncoding" + case audioDeduplication = "audioDeduplication" + } + } + + public struct NoiseReducer: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FilterSettings", location: .body(locationName: "filterSettings"), required: false, type: .structure), + AWSShapeMember(label: "SpatialFilterSettings", location: .body(locationName: "spatialFilterSettings"), required: false, type: .structure), + AWSShapeMember(label: "Filter", location: .body(locationName: "filter"), required: false, type: .enum) + ] + public let filterSettings: NoiseReducerFilterSettings? + public let spatialFilterSettings: NoiseReducerSpatialFilterSettings? + public let filter: NoiseReducerFilter? + + public init(filterSettings: NoiseReducerFilterSettings? = nil, spatialFilterSettings: NoiseReducerSpatialFilterSettings? = nil, filter: NoiseReducerFilter? = nil) { + self.filterSettings = filterSettings + self.spatialFilterSettings = spatialFilterSettings + self.filter = filter + } + + private enum CodingKeys: String, CodingKey { + case filterSettings = "filterSettings" + case spatialFilterSettings = "spatialFilterSettings" + case filter = "filter" + } + } + + public enum RespondToAfd: String, CustomStringConvertible, Codable { + case none = "NONE" + case respond = "RESPOND" + case passthrough = "PASSTHROUGH" + public var description: String { return self.rawValue } + } + + public enum `Type`: String, CustomStringConvertible, Codable { + case system = "SYSTEM" + case custom = "CUSTOM" + public var description: String { return self.rawValue } + } + + public enum SccDestinationFramerate: String, CustomStringConvertible, Codable { + case framerate2397 = "FRAMERATE_23_97" + case framerate24 = "FRAMERATE_24" + case framerate2997Dropframe = "FRAMERATE_29_97_DROPFRAME" + case framerate2997NonDropframe = "FRAMERATE_29_97_NON_DROPFRAME" + public var description: String { return self.rawValue } + } + + public struct TeletextSourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PageNumber", location: .body(locationName: "pageNumber"), required: false, type: .string) + ] + /// Use Page Number (PageNumber) to specify the three-digit hexadecimal page number that will be used for Teletext captions. Do not use this setting if you are passing through teletext from the input source to output. + public let pageNumber: String? + + public init(pageNumber: String? = nil) { + self.pageNumber = pageNumber + } + + private enum CodingKeys: String, CodingKey { + case pageNumber = "pageNumber" + } + } + + public enum H264InterlaceMode: String, CustomStringConvertible, Codable { + case progressive = "PROGRESSIVE" + case topField = "TOP_FIELD" + case bottomField = "BOTTOM_FIELD" + case followTopField = "FOLLOW_TOP_FIELD" + case followBottomField = "FOLLOW_BOTTOM_FIELD" + public var description: String { return self.rawValue } + } + + public struct WavSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BitDepth", location: .body(locationName: "bitDepth"), required: false, type: .integer), + AWSShapeMember(label: "Channels", location: .body(locationName: "channels"), required: false, type: .integer), + AWSShapeMember(label: "SampleRate", location: .body(locationName: "sampleRate"), required: false, type: .integer) + ] + /// Specify Bit depth (BitDepth), in bits per sample, to choose the encoding quality for this audio track. + public let bitDepth: Int32? + /// Set Channels to specify the number of channels in this output audio track. With WAV, valid values 1, 2, 4, and 8. In the console, these values are Mono, Stereo, 4-Channel, and 8-Channel, respectively. + public let channels: Int32? + /// Sample rate in Hz. + public let sampleRate: Int32? + + public init(bitDepth: Int32? = nil, channels: Int32? = nil, sampleRate: Int32? = nil) { + self.bitDepth = bitDepth + self.channels = channels + self.sampleRate = sampleRate + } + + private enum CodingKeys: String, CodingKey { + case bitDepth = "bitDepth" + case channels = "channels" + case sampleRate = "sampleRate" + } + } + + public struct CreatePresetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Preset", location: .body(locationName: "preset"), required: false, type: .structure) + ] + public let preset: Preset? + + public init(preset: Preset? = nil) { + self.preset = preset + } + + private enum CodingKeys: String, CodingKey { + case preset = "preset" + } + } + + public enum M2tsAudioBufferModel: String, CustomStringConvertible, Codable { + case dvb = "DVB" + case atsc = "ATSC" + public var description: String { return self.rawValue } + } + + public enum Mpeg2CodecLevel: String, CustomStringConvertible, Codable { + case auto = "AUTO" + case low = "LOW" + case main = "MAIN" + case high1440 = "HIGH1440" + case high = "HIGH" + public var description: String { return self.rawValue } + } + + public struct VideoDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WidthInPx", location: .body(locationName: "widthInPx"), required: false, type: .integer), + AWSShapeMember(label: "HeightInPx", location: .body(locationName: "heightInPx"), required: false, type: .integer) + ] + /// Width in pixels for the output + public let widthInPx: Int32? + /// Height in pixels for the output + public let heightInPx: Int32? + + public init(widthInPx: Int32? = nil, heightInPx: Int32? = nil) { + self.widthInPx = widthInPx + self.heightInPx = heightInPx + } + + private enum CodingKeys: String, CodingKey { + case widthInPx = "widthInPx" + case heightInPx = "heightInPx" + } + } + + public struct GetJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "id"), required: true, type: .string) + ] + /// the job ID of the job. + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + } + } + + public struct CaptionDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BurninDestinationSettings", location: .body(locationName: "burninDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "TeletextDestinationSettings", location: .body(locationName: "teletextDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "DestinationType", location: .body(locationName: "destinationType"), required: false, type: .enum), + AWSShapeMember(label: "DvbSubDestinationSettings", location: .body(locationName: "dvbSubDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "SccDestinationSettings", location: .body(locationName: "sccDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "TtmlDestinationSettings", location: .body(locationName: "ttmlDestinationSettings"), required: false, type: .structure) + ] + public let burninDestinationSettings: BurninDestinationSettings? + public let teletextDestinationSettings: TeletextDestinationSettings? + /// Type of Caption output, including Burn-In, Embedded, SCC, SRT, TTML, WebVTT, DVB-Sub, Teletext. + public let destinationType: CaptionDestinationType? + public let dvbSubDestinationSettings: DvbSubDestinationSettings? + public let sccDestinationSettings: SccDestinationSettings? + /// Settings specific to TTML caption outputs, including Pass style information (TtmlStylePassthrough). + public let ttmlDestinationSettings: TtmlDestinationSettings? + + public init(burninDestinationSettings: BurninDestinationSettings? = nil, teletextDestinationSettings: TeletextDestinationSettings? = nil, destinationType: CaptionDestinationType? = nil, dvbSubDestinationSettings: DvbSubDestinationSettings? = nil, sccDestinationSettings: SccDestinationSettings? = nil, ttmlDestinationSettings: TtmlDestinationSettings? = nil) { + self.burninDestinationSettings = burninDestinationSettings + self.teletextDestinationSettings = teletextDestinationSettings + self.destinationType = destinationType + self.dvbSubDestinationSettings = dvbSubDestinationSettings + self.sccDestinationSettings = sccDestinationSettings + self.ttmlDestinationSettings = ttmlDestinationSettings + } + + private enum CodingKeys: String, CodingKey { + case burninDestinationSettings = "burninDestinationSettings" + case teletextDestinationSettings = "teletextDestinationSettings" + case destinationType = "destinationType" + case dvbSubDestinationSettings = "dvbSubDestinationSettings" + case sccDestinationSettings = "sccDestinationSettings" + case ttmlDestinationSettings = "ttmlDestinationSettings" + } + } + + public enum H264RateControlMode: String, CustomStringConvertible, Codable { + case vbr = "VBR" + case cbr = "CBR" + public var description: String { return self.rawValue } + } + + public struct VideoDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Height", location: .body(locationName: "height"), required: false, type: .integer), + AWSShapeMember(label: "TimecodeInsertion", location: .body(locationName: "timecodeInsertion"), required: false, type: .enum), + AWSShapeMember(label: "FixedAfd", location: .body(locationName: "fixedAfd"), required: false, type: .integer), + AWSShapeMember(label: "ColorMetadata", location: .body(locationName: "colorMetadata"), required: false, type: .enum), + AWSShapeMember(label: "VideoPreprocessors", location: .body(locationName: "videoPreprocessors"), required: false, type: .structure), + AWSShapeMember(label: "Width", location: .body(locationName: "width"), required: false, type: .integer), + AWSShapeMember(label: "CodecSettings", location: .body(locationName: "codecSettings"), required: false, type: .structure), + AWSShapeMember(label: "DropFrameTimecode", location: .body(locationName: "dropFrameTimecode"), required: false, type: .enum), + AWSShapeMember(label: "Sharpness", location: .body(locationName: "sharpness"), required: false, type: .integer), + AWSShapeMember(label: "Position", location: .body(locationName: "position"), required: false, type: .structure), + AWSShapeMember(label: "AfdSignaling", location: .body(locationName: "afdSignaling"), required: false, type: .enum), + AWSShapeMember(label: "Crop", location: .body(locationName: "crop"), required: false, type: .structure), + AWSShapeMember(label: "AntiAlias", location: .body(locationName: "antiAlias"), required: false, type: .enum), + AWSShapeMember(label: "ScalingBehavior", location: .body(locationName: "scalingBehavior"), required: false, type: .enum), + AWSShapeMember(label: "RespondToAfd", location: .body(locationName: "respondToAfd"), required: false, type: .enum) + ] + /// Use the Height (Height) setting to define the video resolution height for this output. Specify in pixels. If you don't provide a value here, the service will use the input height. + public let height: Int32? + public let timecodeInsertion: VideoTimecodeInsertion? + /// Applies only if you set AFD Signaling(AfdSignaling) to Fixed (FIXED). Use Fixed (FixedAfd) to specify a four-bit AFD value which the service will write on all frames of this video output. + public let fixedAfd: Int32? + public let colorMetadata: ColorMetadata? + /// Find additional transcoding features under Preprocessors (VideoPreprocessors). Enable the features at each output individually. These features are disabled by default. + public let videoPreprocessors: VideoPreprocessor? + /// Use Width (Width) to define the video resolution width, in pixels, for this output. If you don't provide a value here, the service will use the input width. + public let width: Int32? + public let codecSettings: VideoCodecSettings? + public let dropFrameTimecode: DropFrameTimecode? + /// Use Sharpness (Sharpness)setting to specify the strength of anti-aliasing. This setting changes the width of the anti-alias filter kernel used for scaling. Sharpness only applies if your output resolution is different from your input resolution, and if you set Anti-alias (AntiAlias) to ENABLED. 0 is the softest setting, 100 the sharpest, and 50 recommended for most content. + public let sharpness: Int32? + /// Use Position (Position) to point to a rectangle object to define your position. This setting overrides any other aspect ratio. + public let position: Rectangle? + public let afdSignaling: AfdSignaling? + /// Applies only if your input aspect ratio is different from your output aspect ratio. Use Input cropping rectangle (Crop) to specify the video area the service will include in the output. This will crop the input source, causing video pixels to be removed on encode. Do not use this setting if you have enabled Stretch to output (stretchToOutput) in your output settings. + public let crop: Rectangle? + public let antiAlias: AntiAlias? + public let scalingBehavior: ScalingBehavior? + public let respondToAfd: RespondToAfd? + + public init(height: Int32? = nil, timecodeInsertion: VideoTimecodeInsertion? = nil, fixedAfd: Int32? = nil, colorMetadata: ColorMetadata? = nil, videoPreprocessors: VideoPreprocessor? = nil, width: Int32? = nil, codecSettings: VideoCodecSettings? = nil, dropFrameTimecode: DropFrameTimecode? = nil, sharpness: Int32? = nil, position: Rectangle? = nil, afdSignaling: AfdSignaling? = nil, crop: Rectangle? = nil, antiAlias: AntiAlias? = nil, scalingBehavior: ScalingBehavior? = nil, respondToAfd: RespondToAfd? = nil) { + self.height = height + self.timecodeInsertion = timecodeInsertion + self.fixedAfd = fixedAfd + self.colorMetadata = colorMetadata + self.videoPreprocessors = videoPreprocessors + self.width = width + self.codecSettings = codecSettings + self.dropFrameTimecode = dropFrameTimecode + self.sharpness = sharpness + self.position = position + self.afdSignaling = afdSignaling + self.crop = crop + self.antiAlias = antiAlias + self.scalingBehavior = scalingBehavior + self.respondToAfd = respondToAfd + } + + private enum CodingKeys: String, CodingKey { + case height = "height" + case timecodeInsertion = "timecodeInsertion" + case fixedAfd = "fixedAfd" + case colorMetadata = "colorMetadata" + case videoPreprocessors = "videoPreprocessors" + case width = "width" + case codecSettings = "codecSettings" + case dropFrameTimecode = "dropFrameTimecode" + case sharpness = "sharpness" + case position = "position" + case afdSignaling = "afdSignaling" + case crop = "crop" + case antiAlias = "antiAlias" + case scalingBehavior = "scalingBehavior" + case respondToAfd = "respondToAfd" + } + } + + public struct GetQueueResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Queue", location: .body(locationName: "queue"), required: false, type: .structure) + ] + public let queue: Queue? + + public init(queue: Queue? = nil) { + self.queue = queue + } + + private enum CodingKeys: String, CodingKey { + case queue = "queue" + } + } + + public enum H264FlickerAdaptiveQuantization: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum QueueStatus: String, CustomStringConvertible, Codable { + case active = "ACTIVE" + case paused = "PAUSED" + public var description: String { return self.rawValue } + } + + public struct ListJobsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Jobs", location: .body(locationName: "jobs"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + /// List of jobs + public let jobs: [Job]? + /// Use this string to request the next batch of jobs. + public let nextToken: String? + + public init(jobs: [Job]? = nil, nextToken: String? = nil) { + self.jobs = jobs + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case jobs = "jobs" + case nextToken = "nextToken" + } + } + + public enum InputTimecodeSource: String, CustomStringConvertible, Codable { + case embedded = "EMBEDDED" + case zerobased = "ZEROBASED" + case specifiedstart = "SPECIFIEDSTART" + public var description: String { return self.rawValue } + } + + public struct UpdateQueueResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Queue", location: .body(locationName: "queue"), required: false, type: .structure) + ] + public let queue: Queue? + + public init(queue: Queue? = nil) { + self.queue = queue + } + + private enum CodingKeys: String, CodingKey { + case queue = "queue" + } + } + + public enum HlsOutputSelection: String, CustomStringConvertible, Codable { + case manifestsAndSegments = "MANIFESTS_AND_SEGMENTS" + case segmentsOnly = "SEGMENTS_ONLY" + public var description: String { return self.rawValue } + } + + public struct F4vSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MoovPlacement", location: .body(locationName: "moovPlacement"), required: false, type: .enum) + ] + public let moovPlacement: F4vMoovPlacement? + + public init(moovPlacement: F4vMoovPlacement? = nil) { + self.moovPlacement = moovPlacement + } + + private enum CodingKeys: String, CodingKey { + case moovPlacement = "moovPlacement" + } + } + + public struct Output: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContainerSettings", location: .body(locationName: "containerSettings"), required: false, type: .structure), + AWSShapeMember(label: "OutputSettings", location: .body(locationName: "outputSettings"), required: false, type: .structure), + AWSShapeMember(label: "Preset", location: .body(locationName: "preset"), required: false, type: .string), + AWSShapeMember(label: "AudioDescriptions", location: .body(locationName: "audioDescriptions"), required: false, type: .list), + AWSShapeMember(label: "NameModifier", location: .body(locationName: "nameModifier"), required: false, type: .string), + AWSShapeMember(label: "CaptionDescriptions", location: .body(locationName: "captionDescriptions"), required: false, type: .list), + AWSShapeMember(label: "VideoDescription", location: .body(locationName: "videoDescription"), required: false, type: .structure), + AWSShapeMember(label: "Extension", location: .body(locationName: "extension"), required: false, type: .string) + ] + public let containerSettings: ContainerSettings? + public let outputSettings: OutputSettings? + /// Use Preset (Preset) to specifiy a preset for your transcoding settings. Provide the system or custom preset name. You can specify either Preset (Preset) or Container settings (ContainerSettings), but not both. + public let preset: String? + /// (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings. + public let audioDescriptions: [AudioDescription]? + /// Use Name modifier (NameModifier) to have the service add a string to the end of each output filename. You specify the base filename as part of your destination URI. When you create multiple outputs in the same output group, Name modifier is required. Name modifier also accepts format identifiers. For DASH ISO outputs, if you use the format identifiers $Number$ or $Time$ in one output, you must use them in the same way in all outputs of the output group. + public let nameModifier: String? + /// (CaptionDescriptions) contains groups of captions settings. For each output that has captions, include one instance of (CaptionDescriptions). (CaptionDescriptions) can contain multiple groups of captions settings. + public let captionDescriptions: [CaptionDescription]? + /// (VideoDescription) contains a group of video encoding settings. The specific video settings depend on the video codec you choose when you specify a value for Video codec (codec). Include one instance of (VideoDescription) per output. + public let videoDescription: VideoDescription? + /// Use Extension (Extension) to specify the file extension for outputs in File output groups. If you do not specify a value, the service will use default extensions by container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF container, mxf * MPEG-4 container, mp4 * No Container, the service will use codec extensions (e.g. AAC, H265, H265, AC3) + public let `extension`: String? + + public init(containerSettings: ContainerSettings? = nil, outputSettings: OutputSettings? = nil, preset: String? = nil, audioDescriptions: [AudioDescription]? = nil, nameModifier: String? = nil, captionDescriptions: [CaptionDescription]? = nil, videoDescription: VideoDescription? = nil, extension: String? = nil) { + self.containerSettings = containerSettings + self.outputSettings = outputSettings + self.preset = preset + self.audioDescriptions = audioDescriptions + self.nameModifier = nameModifier + self.captionDescriptions = captionDescriptions + self.videoDescription = videoDescription + self.`extension` = `extension` + } + + private enum CodingKeys: String, CodingKey { + case containerSettings = "containerSettings" + case outputSettings = "outputSettings" + case preset = "preset" + case audioDescriptions = "audioDescriptions" + case nameModifier = "nameModifier" + case captionDescriptions = "captionDescriptions" + case videoDescription = "videoDescription" + case `extension` = "extension" + } + } + + public enum Eac3CodingMode: String, CustomStringConvertible, Codable { + case codingMode10 = "CODING_MODE_1_0" + case codingMode20 = "CODING_MODE_2_0" + case codingMode32 = "CODING_MODE_3_2" + public var description: String { return self.rawValue } + } + + public enum Eac3MetadataControl: String, CustomStringConvertible, Codable { + case followInput = "FOLLOW_INPUT" + case useConfigured = "USE_CONFIGURED" + public var description: String { return self.rawValue } + } + + public enum DvbSubtitleTeletextSpacing: String, CustomStringConvertible, Codable { + case fixedGrid = "FIXED_GRID" + case proportional = "PROPORTIONAL" + public var description: String { return self.rawValue } + } + + public struct HlsCaptionLanguageMapping: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .enum), + AWSShapeMember(label: "LanguageDescription", location: .body(locationName: "languageDescription"), required: false, type: .string), + AWSShapeMember(label: "CaptionChannel", location: .body(locationName: "captionChannel"), required: false, type: .integer) + ] + public let languageCode: LanguageCode? + /// Caption language description. + public let languageDescription: String? + /// Caption channel. + public let captionChannel: Int32? + + public init(languageCode: LanguageCode? = nil, languageDescription: String? = nil, captionChannel: Int32? = nil) { + self.languageCode = languageCode + self.languageDescription = languageDescription + self.captionChannel = captionChannel + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "languageCode" + case languageDescription = "languageDescription" + case captionChannel = "captionChannel" + } + } + + public enum Mpeg2ParControl: String, CustomStringConvertible, Codable { + case initializeFromSource = "INITIALIZE_FROM_SOURCE" + case specified = "SPECIFIED" + public var description: String { return self.rawValue } + } + + public struct AiffSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BitDepth", location: .body(locationName: "bitDepth"), required: false, type: .integer), + AWSShapeMember(label: "Channels", location: .body(locationName: "channels"), required: false, type: .integer), + AWSShapeMember(label: "SampleRate", location: .body(locationName: "sampleRate"), required: false, type: .integer) + ] + /// Specify Bit depth (BitDepth), in bits per sample, to choose the encoding quality for this audio track. + public let bitDepth: Int32? + /// Set Channels to specify the number of channels in this output audio track. Choosing Mono in the console will give you 1 output channel; choosing Stereo will give you 2. In the API, valid values are 1 and 2. + public let channels: Int32? + /// Sample rate in hz. + public let sampleRate: Int32? + + public init(bitDepth: Int32? = nil, channels: Int32? = nil, sampleRate: Int32? = nil) { + self.bitDepth = bitDepth + self.channels = channels + self.sampleRate = sampleRate + } + + private enum CodingKeys: String, CodingKey { + case bitDepth = "bitDepth" + case channels = "channels" + case sampleRate = "sampleRate" + } + } + + public struct TimedMetadataInsertion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id3Insertions", location: .body(locationName: "id3Insertions"), required: false, type: .list) + ] + /// Id3Insertions contains the array of Id3Insertion instances. + public let id3Insertions: [Id3Insertion]? + + public init(id3Insertions: [Id3Insertion]? = nil) { + self.id3Insertions = id3Insertions + } + + private enum CodingKeys: String, CodingKey { + case id3Insertions = "id3Insertions" + } + } + + public struct HlsSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SegmentModifier", location: .body(locationName: "segmentModifier"), required: false, type: .string), + AWSShapeMember(label: "AudioGroupId", location: .body(locationName: "audioGroupId"), required: false, type: .string), + AWSShapeMember(label: "AudioTrackType", location: .body(locationName: "audioTrackType"), required: false, type: .enum), + AWSShapeMember(label: "IFrameOnlyManifest", location: .body(locationName: "iFrameOnlyManifest"), required: false, type: .enum), + AWSShapeMember(label: "AudioRenditionSets", location: .body(locationName: "audioRenditionSets"), required: false, type: .string) + ] + /// String concatenated to end of segment filenames. Accepts "Format Identifiers":#format_identifier_parameters. + public let segmentModifier: String? + /// Specifies the group to which the audio Rendition belongs. + public let audioGroupId: String? + public let audioTrackType: HlsAudioTrackType? + public let iFrameOnlyManifest: HlsIFrameOnlyManifest? + /// List all the audio groups that are used with the video output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','. + public let audioRenditionSets: String? + + public init(segmentModifier: String? = nil, audioGroupId: String? = nil, audioTrackType: HlsAudioTrackType? = nil, iFrameOnlyManifest: HlsIFrameOnlyManifest? = nil, audioRenditionSets: String? = nil) { + self.segmentModifier = segmentModifier + self.audioGroupId = audioGroupId + self.audioTrackType = audioTrackType + self.iFrameOnlyManifest = iFrameOnlyManifest + self.audioRenditionSets = audioRenditionSets + } + + private enum CodingKeys: String, CodingKey { + case segmentModifier = "segmentModifier" + case audioGroupId = "audioGroupId" + case audioTrackType = "audioTrackType" + case iFrameOnlyManifest = "iFrameOnlyManifest" + case audioRenditionSets = "audioRenditionSets" + } + } + + public enum Mpeg2QualityTuningLevel: String, CustomStringConvertible, Codable { + case singlePass = "SINGLE_PASS" + case multiPass = "MULTI_PASS" + public var description: String { return self.rawValue } + } + + public enum Mpeg2Syntax: String, CustomStringConvertible, Codable { + case `default` = "DEFAULT" + case d10 = "D_10" + public var description: String { return self.rawValue } + } + + public struct AudioSelector: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SelectorType", location: .body(locationName: "selectorType"), required: false, type: .enum), + AWSShapeMember(label: "Tracks", location: .body(locationName: "tracks"), required: false, type: .list), + AWSShapeMember(label: "ExternalAudioFileInput", location: .body(locationName: "externalAudioFileInput"), required: false, type: .string), + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .enum), + AWSShapeMember(label: "ProgramSelection", location: .body(locationName: "programSelection"), required: false, type: .integer), + AWSShapeMember(label: "Offset", location: .body(locationName: "offset"), required: false, type: .integer), + AWSShapeMember(label: "Pids", location: .body(locationName: "pids"), required: false, type: .list), + AWSShapeMember(label: "RemixSettings", location: .body(locationName: "remixSettings"), required: false, type: .structure), + AWSShapeMember(label: "DefaultSelection", location: .body(locationName: "defaultSelection"), required: false, type: .enum) + ] + public let selectorType: AudioSelectorType? + /// Identify the channel to include in this selector by entering the 1-based track index. To combine several tracks, enter a comma-separated list, e.g. "1,2,3" for tracks 1-3. + public let tracks: [Int32]? + /// Specifies audio data from an external file source. Auto populated when Infer External Filename is checked + public let externalAudioFileInput: String? + /// Selects a specific language code from within an audio source. + public let languageCode: LanguageCode? + /// Applies only when input streams contain Dolby E. Enter the program ID (according to the metadata in the audio) of the Dolby E program to extract from the specified track. One program extracted per audio selector. To select multiple programs, create multiple selectors with the same Track and different Program numbers. "All channels" means to ignore the program IDs and include all the channels in this selector; useful if metadata is known to be incorrect. + public let programSelection: Int32? + /// Specifies a time delta in milliseconds to offset the audio from the input video. + public let offset: Int32? + /// Selects a specific PID from within an audio source (e.g. 257 selects PID 0x101). + public let pids: [Int32]? + /// Advanced audio remixing settings. + public let remixSettings: RemixSettings? + public let defaultSelection: AudioDefaultSelection? + + public init(selectorType: AudioSelectorType? = nil, tracks: [Int32]? = nil, externalAudioFileInput: String? = nil, languageCode: LanguageCode? = nil, programSelection: Int32? = nil, offset: Int32? = nil, pids: [Int32]? = nil, remixSettings: RemixSettings? = nil, defaultSelection: AudioDefaultSelection? = nil) { + self.selectorType = selectorType + self.tracks = tracks + self.externalAudioFileInput = externalAudioFileInput + self.languageCode = languageCode + self.programSelection = programSelection + self.offset = offset + self.pids = pids + self.remixSettings = remixSettings + self.defaultSelection = defaultSelection + } + + private enum CodingKeys: String, CodingKey { + case selectorType = "selectorType" + case tracks = "tracks" + case externalAudioFileInput = "externalAudioFileInput" + case languageCode = "languageCode" + case programSelection = "programSelection" + case offset = "offset" + case pids = "pids" + case remixSettings = "remixSettings" + case defaultSelection = "defaultSelection" + } + } + + public struct DvbNitSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NitInterval", location: .body(locationName: "nitInterval"), required: false, type: .integer), + AWSShapeMember(label: "NetworkId", location: .body(locationName: "networkId"), required: false, type: .integer), + AWSShapeMember(label: "NetworkName", location: .body(locationName: "networkName"), required: false, type: .string) + ] + /// The number of milliseconds between instances of this table in the output transport stream. + public let nitInterval: Int32? + /// The numeric value placed in the Network Information Table (NIT). + public let networkId: Int32? + /// The network name text placed in the network_name_descriptor inside the Network Information Table. Maximum length is 256 characters. + public let networkName: String? + + public init(nitInterval: Int32? = nil, networkId: Int32? = nil, networkName: String? = nil) { + self.nitInterval = nitInterval + self.networkId = networkId + self.networkName = networkName + } + + private enum CodingKeys: String, CodingKey { + case nitInterval = "nitInterval" + case networkId = "networkId" + case networkName = "networkName" + } + } + + public enum HlsDirectoryStructure: String, CustomStringConvertible, Codable { + case singleDirectory = "SINGLE_DIRECTORY" + case subdirectoryPerStream = "SUBDIRECTORY_PER_STREAM" + public var description: String { return self.rawValue } + } + + public enum M2tsRateMode: String, CustomStringConvertible, Codable { + case vbr = "VBR" + case cbr = "CBR" + public var description: String { return self.rawValue } + } + + public enum H264EntropyEncoding: String, CustomStringConvertible, Codable { + case cabac = "CABAC" + case cavlc = "CAVLC" + public var description: String { return self.rawValue } + } + + public enum Eac3DynamicRangeCompressionRf: String, CustomStringConvertible, Codable { + case none = "NONE" + case filmStandard = "FILM_STANDARD" + case filmLight = "FILM_LIGHT" + case musicStandard = "MUSIC_STANDARD" + case musicLight = "MUSIC_LIGHT" + case speech = "SPEECH" + public var description: String { return self.rawValue } + } + + public enum H264FramerateControl: String, CustomStringConvertible, Codable { + case initializeFromSource = "INITIALIZE_FROM_SOURCE" + case specified = "SPECIFIED" + public var description: String { return self.rawValue } + } + + public struct AacSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CodingMode", location: .body(locationName: "codingMode"), required: false, type: .enum), + AWSShapeMember(label: "CodecProfile", location: .body(locationName: "codecProfile"), required: false, type: .enum), + AWSShapeMember(label: "SampleRate", location: .body(locationName: "sampleRate"), required: false, type: .integer), + AWSShapeMember(label: "AudioDescriptionBroadcasterMix", location: .body(locationName: "audioDescriptionBroadcasterMix"), required: false, type: .enum), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .integer), + AWSShapeMember(label: "VbrQuality", location: .body(locationName: "vbrQuality"), required: false, type: .enum), + AWSShapeMember(label: "Specification", location: .body(locationName: "specification"), required: false, type: .enum), + AWSShapeMember(label: "RawFormat", location: .body(locationName: "rawFormat"), required: false, type: .enum), + AWSShapeMember(label: "RateControlMode", location: .body(locationName: "rateControlMode"), required: false, type: .enum) + ] + public let codingMode: AacCodingMode? + public let codecProfile: AacCodecProfile? + /// Sample rate in Hz. Valid values depend on rate control mode and profile. + public let sampleRate: Int32? + public let audioDescriptionBroadcasterMix: AacAudioDescriptionBroadcasterMix? + /// Average bitrate in bits/second. Valid values depend on rate control mode and profile. + public let bitrate: Int32? + public let vbrQuality: AacVbrQuality? + public let specification: AacSpecification? + public let rawFormat: AacRawFormat? + public let rateControlMode: AacRateControlMode? + + public init(codingMode: AacCodingMode? = nil, codecProfile: AacCodecProfile? = nil, sampleRate: Int32? = nil, audioDescriptionBroadcasterMix: AacAudioDescriptionBroadcasterMix? = nil, bitrate: Int32? = nil, vbrQuality: AacVbrQuality? = nil, specification: AacSpecification? = nil, rawFormat: AacRawFormat? = nil, rateControlMode: AacRateControlMode? = nil) { + self.codingMode = codingMode + self.codecProfile = codecProfile + self.sampleRate = sampleRate + self.audioDescriptionBroadcasterMix = audioDescriptionBroadcasterMix + self.bitrate = bitrate + self.vbrQuality = vbrQuality + self.specification = specification + self.rawFormat = rawFormat + self.rateControlMode = rateControlMode + } + + private enum CodingKeys: String, CodingKey { + case codingMode = "codingMode" + case codecProfile = "codecProfile" + case sampleRate = "sampleRate" + case audioDescriptionBroadcasterMix = "audioDescriptionBroadcasterMix" + case bitrate = "bitrate" + case vbrQuality = "vbrQuality" + case specification = "specification" + case rawFormat = "rawFormat" + case rateControlMode = "rateControlMode" + } + } + + public struct Deinterlacer: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Algorithm", location: .body(locationName: "algorithm"), required: false, type: .enum), + AWSShapeMember(label: "Control", location: .body(locationName: "control"), required: false, type: .enum), + AWSShapeMember(label: "Mode", location: .body(locationName: "mode"), required: false, type: .enum) + ] + public let algorithm: DeinterlaceAlgorithm? + public let control: DeinterlacerControl? + public let mode: DeinterlacerMode? + + public init(algorithm: DeinterlaceAlgorithm? = nil, control: DeinterlacerControl? = nil, mode: DeinterlacerMode? = nil) { + self.algorithm = algorithm + self.control = control + self.mode = mode + } + + private enum CodingKeys: String, CodingKey { + case algorithm = "algorithm" + case control = "control" + case mode = "mode" + } + } + + public struct CancelJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "id"), required: true, type: .string) + ] + /// The Job ID of the job to be cancelled. + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + } + } + + public enum H265CodecLevel: String, CustomStringConvertible, Codable { + case auto = "AUTO" + case level1 = "LEVEL_1" + case level2 = "LEVEL_2" + case level21 = "LEVEL_2_1" + case level3 = "LEVEL_3" + case level31 = "LEVEL_3_1" + case level4 = "LEVEL_4" + case level41 = "LEVEL_4_1" + case level5 = "LEVEL_5" + case level51 = "LEVEL_5_1" + case level52 = "LEVEL_5_2" + case level6 = "LEVEL_6" + case level61 = "LEVEL_6_1" + case level62 = "LEVEL_6_2" + public var description: String { return self.rawValue } + } + + public struct DescribeEndpointsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Endpoints", location: .body(locationName: "endpoints"), required: false, type: .list) + ] + /// Use this string to request the next batch of endpoints. + public let nextToken: String? + /// List of endpoints + public let endpoints: [Endpoint]? + + public init(nextToken: String? = nil, endpoints: [Endpoint]? = nil) { + self.nextToken = nextToken + self.endpoints = endpoints + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case endpoints = "endpoints" + } + } + + public enum PresetListBy: String, CustomStringConvertible, Codable { + case name = "NAME" + case creationDate = "CREATION_DATE" + case system = "SYSTEM" + public var description: String { return self.rawValue } + } + + public enum HlsManifestDurationFormat: String, CustomStringConvertible, Codable { + case floatingPoint = "FLOATING_POINT" + case integer = "INTEGER" + public var description: String { return self.rawValue } + } + + public enum Mp4CslgAtom: String, CustomStringConvertible, Codable { + case include = "INCLUDE" + case exclude = "EXCLUDE" + public var description: String { return self.rawValue } + } + + public struct MsSmoothEncryptionSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SpekeKeyProvider", location: .body(locationName: "spekeKeyProvider"), required: false, type: .structure) + ] + public let spekeKeyProvider: SpekeKeyProvider? + + public init(spekeKeyProvider: SpekeKeyProvider? = nil) { + self.spekeKeyProvider = spekeKeyProvider + } + + private enum CodingKeys: String, CodingKey { + case spekeKeyProvider = "spekeKeyProvider" + } + } + + public enum H265FramerateConversionAlgorithm: String, CustomStringConvertible, Codable { + case duplicateDrop = "DUPLICATE_DROP" + case interpolate = "INTERPOLATE" + public var description: String { return self.rawValue } + } + + public struct TimecodeBurnin: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Position", location: .body(locationName: "position"), required: false, type: .enum), + AWSShapeMember(label: "FontSize", location: .body(locationName: "fontSize"), required: false, type: .integer), + AWSShapeMember(label: "Prefix", location: .body(locationName: "prefix"), required: false, type: .string) + ] + public let position: TimecodeBurninPosition? + /// Use Font Size (FontSize) to set the font size of any burned-in timecode. Valid values are 10, 16, 32, 48. + public let fontSize: Int32? + /// Use Prefix (Prefix) to place ASCII characters before any burned-in timecode. For example, a prefix of "EZ-" will result in the timecode "EZ-00:00:00:00". Provide either the characters themselves or the ASCII code equivalents. The supported range of characters is 0x20 through 0x7e. This includes letters, numbers, and all special characters represented on a standard English keyboard. + public let prefix: String? + + public init(position: TimecodeBurninPosition? = nil, fontSize: Int32? = nil, prefix: String? = nil) { + self.position = position + self.fontSize = fontSize + self.prefix = prefix + } + + private enum CodingKeys: String, CodingKey { + case position = "position" + case fontSize = "fontSize" + case prefix = "prefix" + } + } + + public struct JobTemplateSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimedMetadataInsertion", location: .body(locationName: "timedMetadataInsertion"), required: false, type: .structure), + AWSShapeMember(label: "OutputGroups", location: .body(locationName: "outputGroups"), required: false, type: .list), + AWSShapeMember(label: "NielsenConfiguration", location: .body(locationName: "nielsenConfiguration"), required: false, type: .structure), + AWSShapeMember(label: "Inputs", location: .body(locationName: "inputs"), required: false, type: .list), + AWSShapeMember(label: "AdAvailOffset", location: .body(locationName: "adAvailOffset"), required: false, type: .integer), + AWSShapeMember(label: "AvailBlanking", location: .body(locationName: "availBlanking"), required: false, type: .structure), + AWSShapeMember(label: "TimecodeConfig", location: .body(locationName: "timecodeConfig"), required: false, type: .structure) + ] + public let timedMetadataInsertion: TimedMetadataInsertion? + /// **!!**(OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings + public let outputGroups: [OutputGroup]? + public let nielsenConfiguration: NielsenConfiguration? + /// Use Inputs (inputs) to define the source file used in the transcode job. There can only be one input in a job template. Using the API, you can include multiple inputs when referencing a job template. + public let inputs: [InputTemplate]? + /// When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time. + public let adAvailOffset: Int32? + /// Settings for ad avail blanking. Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails. + public let availBlanking: AvailBlanking? + /// Contains settings used to acquire and adjust timecode information from inputs. + public let timecodeConfig: TimecodeConfig? + + public init(timedMetadataInsertion: TimedMetadataInsertion? = nil, outputGroups: [OutputGroup]? = nil, nielsenConfiguration: NielsenConfiguration? = nil, inputs: [InputTemplate]? = nil, adAvailOffset: Int32? = nil, availBlanking: AvailBlanking? = nil, timecodeConfig: TimecodeConfig? = nil) { + self.timedMetadataInsertion = timedMetadataInsertion + self.outputGroups = outputGroups + self.nielsenConfiguration = nielsenConfiguration + self.inputs = inputs + self.adAvailOffset = adAvailOffset + self.availBlanking = availBlanking + self.timecodeConfig = timecodeConfig + } + + private enum CodingKeys: String, CodingKey { + case timedMetadataInsertion = "timedMetadataInsertion" + case outputGroups = "outputGroups" + case nielsenConfiguration = "nielsenConfiguration" + case inputs = "inputs" + case adAvailOffset = "adAvailOffset" + case availBlanking = "availBlanking" + case timecodeConfig = "timecodeConfig" + } + } + + public enum H265Telecine: String, CustomStringConvertible, Codable { + case none = "NONE" + case soft = "SOFT" + case hard = "HARD" + public var description: String { return self.rawValue } + } + + public enum H264CodecLevel: String, CustomStringConvertible, Codable { + case auto = "AUTO" + case level1 = "LEVEL_1" + case level11 = "LEVEL_1_1" + case level12 = "LEVEL_1_2" + case level13 = "LEVEL_1_3" + case level2 = "LEVEL_2" + case level21 = "LEVEL_2_1" + case level22 = "LEVEL_2_2" + case level3 = "LEVEL_3" + case level31 = "LEVEL_3_1" + case level32 = "LEVEL_3_2" + case level4 = "LEVEL_4" + case level41 = "LEVEL_4_1" + case level42 = "LEVEL_4_2" + case level5 = "LEVEL_5" + case level51 = "LEVEL_5_1" + case level52 = "LEVEL_5_2" + public var description: String { return self.rawValue } + } + + public struct ContainerSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "M2tsSettings", location: .body(locationName: "m2tsSettings"), required: false, type: .structure), + AWSShapeMember(label: "MovSettings", location: .body(locationName: "movSettings"), required: false, type: .structure), + AWSShapeMember(label: "Mp4Settings", location: .body(locationName: "mp4Settings"), required: false, type: .structure), + AWSShapeMember(label: "F4vSettings", location: .body(locationName: "f4vSettings"), required: false, type: .structure), + AWSShapeMember(label: "Container", location: .body(locationName: "container"), required: false, type: .enum), + AWSShapeMember(label: "M3u8Settings", location: .body(locationName: "m3u8Settings"), required: false, type: .structure) + ] + public let m2tsSettings: M2tsSettings? + public let movSettings: MovSettings? + public let mp4Settings: Mp4Settings? + public let f4vSettings: F4vSettings? + public let container: ContainerType? + public let m3u8Settings: M3u8Settings? + + public init(m2tsSettings: M2tsSettings? = nil, movSettings: MovSettings? = nil, mp4Settings: Mp4Settings? = nil, f4vSettings: F4vSettings? = nil, container: ContainerType? = nil, m3u8Settings: M3u8Settings? = nil) { + self.m2tsSettings = m2tsSettings + self.movSettings = movSettings + self.mp4Settings = mp4Settings + self.f4vSettings = f4vSettings + self.container = container + self.m3u8Settings = m3u8Settings + } + + private enum CodingKeys: String, CodingKey { + case m2tsSettings = "m2tsSettings" + case movSettings = "movSettings" + case mp4Settings = "mp4Settings" + case f4vSettings = "f4vSettings" + case container = "container" + case m3u8Settings = "m3u8Settings" + } + } + + public enum Mpeg2GopSizeUnits: String, CustomStringConvertible, Codable { + case frames = "FRAMES" + case seconds = "SECONDS" + public var description: String { return self.rawValue } + } + + public enum ProresTelecine: String, CustomStringConvertible, Codable { + case none = "NONE" + case hard = "HARD" + public var description: String { return self.rawValue } + } + + public struct SpekeKeyProvider: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceId", location: .body(locationName: "resourceId"), required: false, type: .string), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), + AWSShapeMember(label: "SystemIds", location: .body(locationName: "systemIds"), required: false, type: .list) + ] + /// The SPEKE-compliant server uses Resource ID (ResourceId) to identify content. + public let resourceId: String? + /// Use URL (Url) to specify the SPEKE-compliant server that will provide keys for content. + public let url: String? + /// Relates to SPEKE implementation. DRM system identifiers. DASH output groups support a max of two system ids. Other group types support one system id. + public let systemIds: [String]? + + public init(resourceId: String? = nil, url: String? = nil, systemIds: [String]? = nil) { + self.resourceId = resourceId + self.url = url + self.systemIds = systemIds + } + + private enum CodingKeys: String, CodingKey { + case resourceId = "resourceId" + case url = "url" + case systemIds = "systemIds" + } + } + + public struct PresetSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContainerSettings", location: .body(locationName: "containerSettings"), required: false, type: .structure), + AWSShapeMember(label: "CaptionDescriptions", location: .body(locationName: "captionDescriptions"), required: false, type: .list), + AWSShapeMember(label: "VideoDescription", location: .body(locationName: "videoDescription"), required: false, type: .structure), + AWSShapeMember(label: "AudioDescriptions", location: .body(locationName: "audioDescriptions"), required: false, type: .list) + ] + public let containerSettings: ContainerSettings? + /// Caption settings for this preset. There can be multiple caption settings in a single output. + public let captionDescriptions: [CaptionDescriptionPreset]? + /// (VideoDescription) contains a group of video encoding settings. The specific video settings depend on the video codec you choose when you specify a value for Video codec (codec). Include one instance of (VideoDescription) per output. + public let videoDescription: VideoDescription? + /// (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings. + public let audioDescriptions: [AudioDescription]? + + public init(containerSettings: ContainerSettings? = nil, captionDescriptions: [CaptionDescriptionPreset]? = nil, videoDescription: VideoDescription? = nil, audioDescriptions: [AudioDescription]? = nil) { + self.containerSettings = containerSettings + self.captionDescriptions = captionDescriptions + self.videoDescription = videoDescription + self.audioDescriptions = audioDescriptions + } + + private enum CodingKeys: String, CodingKey { + case containerSettings = "containerSettings" + case captionDescriptions = "captionDescriptions" + case videoDescription = "videoDescription" + case audioDescriptions = "audioDescriptions" + } + } + + public enum Eac3DcFilter: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public struct VideoPreprocessor: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Deinterlacer", location: .body(locationName: "deinterlacer"), required: false, type: .structure), + AWSShapeMember(label: "NoiseReducer", location: .body(locationName: "noiseReducer"), required: false, type: .structure), + AWSShapeMember(label: "ImageInserter", location: .body(locationName: "imageInserter"), required: false, type: .structure), + AWSShapeMember(label: "TimecodeBurnin", location: .body(locationName: "timecodeBurnin"), required: false, type: .structure), + AWSShapeMember(label: "ColorCorrector", location: .body(locationName: "colorCorrector"), required: false, type: .structure) + ] + /// Use Deinterlacer (Deinterlacer) to produce smoother motion and a clearer picture. + public let deinterlacer: Deinterlacer? + /// Enable the Noise reducer (NoiseReducer) feature to remove noise from your video output if necessary. Enable or disable this feature for each output individually. This setting is disabled by default. + public let noiseReducer: NoiseReducer? + /// Enable the Image inserter (ImageInserter) feature to include a graphic overlay on your video. Enable or disable this feature for each output individually. This setting is disabled by default. + public let imageInserter: ImageInserter? + /// Timecode burn-in (TimecodeBurnIn)--Burns the output timecode and specified prefix into the output. + public let timecodeBurnin: TimecodeBurnin? + /// Enable the Color corrector (ColorCorrector) feature if necessary. Enable or disable this feature for each output individually. This setting is disabled by default. + public let colorCorrector: ColorCorrector? + + public init(deinterlacer: Deinterlacer? = nil, noiseReducer: NoiseReducer? = nil, imageInserter: ImageInserter? = nil, timecodeBurnin: TimecodeBurnin? = nil, colorCorrector: ColorCorrector? = nil) { + self.deinterlacer = deinterlacer + self.noiseReducer = noiseReducer + self.imageInserter = imageInserter + self.timecodeBurnin = timecodeBurnin + self.colorCorrector = colorCorrector + } + + private enum CodingKeys: String, CodingKey { + case deinterlacer = "deinterlacer" + case noiseReducer = "noiseReducer" + case imageInserter = "imageInserter" + case timecodeBurnin = "timecodeBurnin" + case colorCorrector = "colorCorrector" + } + } + + public enum DropFrameTimecode: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum HlsKeyProviderType: String, CustomStringConvertible, Codable { + case speke = "SPEKE" + case staticKey = "STATIC_KEY" + public var description: String { return self.rawValue } + } + + public enum H265SceneChangeDetect: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct Preset: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreatedAt", location: .body(locationName: "createdAt"), required: false, type: .timestamp), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Category", location: .body(locationName: "category"), required: false, type: .string), + AWSShapeMember(label: "LastUpdated", location: .body(locationName: "lastUpdated"), required: false, type: .timestamp), + AWSShapeMember(label: "Settings", location: .body(locationName: "settings"), required: false, type: .structure), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// The timestamp in epoch seconds for preset creation. + public let createdAt: TimeStamp? + /// An identifier for this resource that is unique within all of AWS. + public let arn: String? + /// A name you create for each preset. Each name must be unique within your account. + public let name: String? + /// An optional category you create to organize your presets. + public let category: String? + /// The timestamp in epoch seconds when the preset was last updated. + public let lastUpdated: TimeStamp? + public let settings: PresetSettings? + /// A preset can be of two types: system or custom. System or built-in preset can’t be modified or deleted by the user. + public let `type`: `Type`? + /// An optional description you create for each preset. + public let description: String? + + public init(createdAt: TimeStamp? = nil, arn: String? = nil, name: String? = nil, category: String? = nil, lastUpdated: TimeStamp? = nil, settings: PresetSettings? = nil, type: `Type`? = nil, description: String? = nil) { + self.createdAt = createdAt + self.arn = arn + self.name = name + self.category = category + self.lastUpdated = lastUpdated + self.settings = settings + self.`type` = `type` + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case createdAt = "createdAt" + case arn = "arn" + case name = "name" + case category = "category" + case lastUpdated = "lastUpdated" + case settings = "settings" + case `type` = "type" + case description = "description" + } + } + + public struct UpdateJobTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Category", location: .body(locationName: "category"), required: false, type: .string), + AWSShapeMember(label: "Settings", location: .body(locationName: "settings"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .uri(locationName: "name"), required: true, type: .string), + AWSShapeMember(label: "Queue", location: .body(locationName: "queue"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// The new category for the job template, if you are changing it. + public let category: String? + public let settings: JobTemplateSettings? + /// The name of the job template you are modifying + public let name: String + /// The new queue for the job template, if you are changing it. + public let queue: String? + /// The new description for the job template, if you are changing it. + public let description: String? + + public init(category: String? = nil, settings: JobTemplateSettings? = nil, name: String, queue: String? = nil, description: String? = nil) { + self.category = category + self.settings = settings + self.name = name + self.queue = queue + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case category = "category" + case settings = "settings" + case name = "name" + case queue = "queue" + case description = "description" + } + } + + public enum H264Syntax: String, CustomStringConvertible, Codable { + case `default` = "DEFAULT" + case rp2027 = "RP2027" + public var description: String { return self.rawValue } + } + + public enum HlsCaptionLanguageSetting: String, CustomStringConvertible, Codable { + case insert = "INSERT" + case omit = "OMIT" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct CaptionDescriptionPreset: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .enum), + AWSShapeMember(label: "LanguageDescription", location: .body(locationName: "languageDescription"), required: false, type: .string), + AWSShapeMember(label: "DestinationSettings", location: .body(locationName: "destinationSettings"), required: false, type: .structure) + ] + /// Indicates the language of the caption output track. + public let languageCode: LanguageCode? + /// Human readable information to indicate captions available for players (eg. English, or Spanish). Alphanumeric characters, spaces, and underscore are legal. + public let languageDescription: String? + public let destinationSettings: CaptionDestinationSettings? + + public init(languageCode: LanguageCode? = nil, languageDescription: String? = nil, destinationSettings: CaptionDestinationSettings? = nil) { + self.languageCode = languageCode + self.languageDescription = languageDescription + self.destinationSettings = destinationSettings + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "languageCode" + case languageDescription = "languageDescription" + case destinationSettings = "destinationSettings" + } + } + + public struct OutputChannelMapping: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputChannels", location: .body(locationName: "inputChannels"), required: false, type: .list) + ] + /// List of input channels + public let inputChannels: [Int32]? + + public init(inputChannels: [Int32]? = nil) { + self.inputChannels = inputChannels + } + + private enum CodingKeys: String, CodingKey { + case inputChannels = "inputChannels" + } + } + + public struct ChannelMapping: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OutputChannels", location: .body(locationName: "outputChannels"), required: false, type: .list) + ] + /// List of output channels + public let outputChannels: [OutputChannelMapping]? + + public init(outputChannels: [OutputChannelMapping]? = nil) { + self.outputChannels = outputChannels + } + + private enum CodingKeys: String, CodingKey { + case outputChannels = "outputChannels" + } + } + + public struct AvailBlanking: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailBlankingImage", location: .body(locationName: "availBlankingImage"), required: false, type: .string) + ] + /// Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported. + public let availBlankingImage: String? + + public init(availBlankingImage: String? = nil) { + self.availBlankingImage = availBlankingImage + } + + private enum CodingKeys: String, CodingKey { + case availBlankingImage = "availBlankingImage" + } + } + + public struct TimecodeConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Source", location: .body(locationName: "source"), required: false, type: .enum), + AWSShapeMember(label: "Start", location: .body(locationName: "start"), required: false, type: .string), + AWSShapeMember(label: "Anchor", location: .body(locationName: "anchor"), required: false, type: .string), + AWSShapeMember(label: "TimestampOffset", location: .body(locationName: "timestampOffset"), required: false, type: .string) + ] + public let source: TimecodeSource? + /// Only use when you set Timecode Source (TimecodeSource) to Specified Start (SPECIFIEDSTART). Use Start timecode (Start) to specify the timecode for the initial frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF). + public let start: String? + /// If you use an editing platform that relies on an anchor timecode, use Anchor Timecode (Anchor) to specify a timecode that will match the input video frame to the output video frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF). This setting ignores framerate conversion. System behavior for Anchor Timecode varies depending on your setting for Timecode source (TimecodeSource). * If Timecode source (TimecodeSource) is set to Specified Start (specifiedstart), the first input frame is the specified value in Start Timecode (Start). Anchor Timecode (Anchor) and Start Timecode (Start) are used calculate output timecode. * If Timecode source (TimecodeSource) is set to Start at 0 (zerobased) the first frame is 00:00:00:00. * If Timecode source (TimecodeSource) is set to Embedded (embedded), the first frame is the timecode value on the first input frame of the input. + public let anchor: String? + /// Only applies to outputs that support program-date-time stamp. Use Time stamp offset (TimestampOffset) to overwrite the timecode date without affecting the time and frame number. Provide the new date as a string in the format "yyyy-mm-dd". To use Time stamp offset, you must also enable Insert program-date-time (InsertProgramDateTime) in the output settings. + public let timestampOffset: String? + + public init(source: TimecodeSource? = nil, start: String? = nil, anchor: String? = nil, timestampOffset: String? = nil) { + self.source = source + self.start = start + self.anchor = anchor + self.timestampOffset = timestampOffset + } + + private enum CodingKeys: String, CodingKey { + case source = "source" + case start = "start" + case anchor = "anchor" + case timestampOffset = "timestampOffset" + } + } + + public enum BurninSubtitleFontColor: String, CustomStringConvertible, Codable { + case white = "WHITE" + case black = "BLACK" + case yellow = "YELLOW" + case red = "RED" + case green = "GREEN" + case blue = "BLUE" + public var description: String { return self.rawValue } + } + + public struct ColorCorrector: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Brightness", location: .body(locationName: "brightness"), required: false, type: .integer), + AWSShapeMember(label: "Hue", location: .body(locationName: "hue"), required: false, type: .integer), + AWSShapeMember(label: "Saturation", location: .body(locationName: "saturation"), required: false, type: .integer), + AWSShapeMember(label: "Hdr10Metadata", location: .body(locationName: "hdr10Metadata"), required: false, type: .structure), + AWSShapeMember(label: "ColorSpaceConversion", location: .body(locationName: "colorSpaceConversion"), required: false, type: .enum), + AWSShapeMember(label: "Contrast", location: .body(locationName: "contrast"), required: false, type: .integer) + ] + /// Brightness level. + public let brightness: Int32? + /// Hue in degrees. + public let hue: Int32? + /// Saturation level. + public let saturation: Int32? + public let hdr10Metadata: Hdr10Metadata? + public let colorSpaceConversion: ColorSpaceConversion? + /// Contrast level. + public let contrast: Int32? + + public init(brightness: Int32? = nil, hue: Int32? = nil, saturation: Int32? = nil, hdr10Metadata: Hdr10Metadata? = nil, colorSpaceConversion: ColorSpaceConversion? = nil, contrast: Int32? = nil) { + self.brightness = brightness + self.hue = hue + self.saturation = saturation + self.hdr10Metadata = hdr10Metadata + self.colorSpaceConversion = colorSpaceConversion + self.contrast = contrast + } + + private enum CodingKeys: String, CodingKey { + case brightness = "brightness" + case hue = "hue" + case saturation = "saturation" + case hdr10Metadata = "hdr10Metadata" + case colorSpaceConversion = "colorSpaceConversion" + case contrast = "contrast" + } + } + + public struct DashIsoEncryptionSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SpekeKeyProvider", location: .body(locationName: "spekeKeyProvider"), required: false, type: .structure) + ] + public let spekeKeyProvider: SpekeKeyProvider? + + public init(spekeKeyProvider: SpekeKeyProvider? = nil) { + self.spekeKeyProvider = spekeKeyProvider + } + + private enum CodingKeys: String, CodingKey { + case spekeKeyProvider = "spekeKeyProvider" + } + } + + public struct DeletePresetResponse: AWSShape { + + } + + public enum AudioDefaultSelection: String, CustomStringConvertible, Codable { + case `default` = "DEFAULT" + case notDefault = "NOT_DEFAULT" + public var description: String { return self.rawValue } + } + + public enum ProresSlowPal: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum Eac3BitstreamMode: String, CustomStringConvertible, Codable { + case completeMain = "COMPLETE_MAIN" + case commentary = "COMMENTARY" + case emergency = "EMERGENCY" + case hearingImpaired = "HEARING_IMPAIRED" + case visuallyImpaired = "VISUALLY_IMPAIRED" + public var description: String { return self.rawValue } + } + + public enum AudioNormalizationPeakCalculation: String, CustomStringConvertible, Codable { + case truePeak = "TRUE_PEAK" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct CreatePresetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Category", location: .body(locationName: "category"), required: false, type: .string), + AWSShapeMember(label: "Settings", location: .body(locationName: "settings"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// Optional. A category for the preset you are creating. + public let category: String? + public let settings: PresetSettings? + /// The name of the preset you are creating. + public let name: String? + /// Optional. A description of the preset you are creating. + public let description: String? + + public init(category: String? = nil, settings: PresetSettings? = nil, name: String? = nil, description: String? = nil) { + self.category = category + self.settings = settings + self.name = name + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case category = "category" + case settings = "settings" + case name = "name" + case description = "description" + } + } + + public enum CaptionDestinationType: String, CustomStringConvertible, Codable { + case burnIn = "BURN_IN" + case dvbSub = "DVB_SUB" + case embedded = "EMBEDDED" + case scc = "SCC" + case srt = "SRT" + case teletext = "TELETEXT" + case ttml = "TTML" + case webvtt = "WEBVTT" + public var description: String { return self.rawValue } + } + + public enum H265GopBReference: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct UpdatePresetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Preset", location: .body(locationName: "preset"), required: false, type: .structure) + ] + public let preset: Preset? + + public init(preset: Preset? = nil) { + self.preset = preset + } + + private enum CodingKeys: String, CodingKey { + case preset = "preset" + } + } + + public struct InputClipping: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTimecode", location: .body(locationName: "startTimecode"), required: false, type: .string), + AWSShapeMember(label: "EndTimecode", location: .body(locationName: "endTimecode"), required: false, type: .string) + ] + /// Set Start timecode (StartTimecode) to the beginning of the portion of the input you are clipping. The frame corresponding to the Start timecode value is included in the clip. Start timecode or End timecode may be left blank, but not both. When choosing this value, take into account your setting for Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your clip to begin five minutes into the video, use 01:00:05:00. + public let startTimecode: String? + /// Set End timecode (EndTimecode) to the end of the portion of the input you are clipping. The frame corresponding to the End timecode value is included in the clip. Start timecode or End timecode may be left blank, but not both. When choosing this value, take into account your setting for Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your clip to begin five minutes into the video, use 01:00:05:00. + public let endTimecode: String? + + public init(startTimecode: String? = nil, endTimecode: String? = nil) { + self.startTimecode = startTimecode + self.endTimecode = endTimecode + } + + private enum CodingKeys: String, CodingKey { + case startTimecode = "startTimecode" + case endTimecode = "endTimecode" + } + } + + public enum M2tsBufferModel: String, CustomStringConvertible, Codable { + case multiplex = "MULTIPLEX" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public enum AfdSignaling: String, CustomStringConvertible, Codable { + case none = "NONE" + case auto = "AUTO" + case fixed = "FIXED" + public var description: String { return self.rawValue } + } + + public struct M3u8Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimedMetadataPid", location: .body(locationName: "timedMetadataPid"), required: false, type: .integer), + AWSShapeMember(label: "PcrControl", location: .body(locationName: "pcrControl"), required: false, type: .enum), + AWSShapeMember(label: "PatInterval", location: .body(locationName: "patInterval"), required: false, type: .integer), + AWSShapeMember(label: "TimedMetadata", location: .body(locationName: "timedMetadata"), required: false, type: .enum), + AWSShapeMember(label: "PmtPid", location: .body(locationName: "pmtPid"), required: false, type: .integer), + AWSShapeMember(label: "VideoPid", location: .body(locationName: "videoPid"), required: false, type: .integer), + AWSShapeMember(label: "PcrPid", location: .body(locationName: "pcrPid"), required: false, type: .integer), + AWSShapeMember(label: "PmtInterval", location: .body(locationName: "pmtInterval"), required: false, type: .integer), + AWSShapeMember(label: "Scte35Pid", location: .body(locationName: "scte35Pid"), required: false, type: .integer), + AWSShapeMember(label: "Scte35Source", location: .body(locationName: "scte35Source"), required: false, type: .enum), + AWSShapeMember(label: "ProgramNumber", location: .body(locationName: "programNumber"), required: false, type: .integer), + AWSShapeMember(label: "AudioPids", location: .body(locationName: "audioPids"), required: false, type: .list), + AWSShapeMember(label: "AudioFramesPerPes", location: .body(locationName: "audioFramesPerPes"), required: false, type: .integer), + AWSShapeMember(label: "TransportStreamId", location: .body(locationName: "transportStreamId"), required: false, type: .integer), + AWSShapeMember(label: "PrivateMetadataPid", location: .body(locationName: "privateMetadataPid"), required: false, type: .integer) + ] + /// Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal or hexadecimal value. + public let timedMetadataPid: Int32? + public let pcrControl: M3u8PcrControl? + /// The number of milliseconds between instances of this table in the output transport stream. + public let patInterval: Int32? + public let timedMetadata: TimedMetadata? + /// Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value. + public let pmtPid: Int32? + /// Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or hexadecimal value. + public let videoPid: Int32? + /// Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value. + public let pcrPid: Int32? + /// The number of milliseconds between instances of this table in the output transport stream. + public let pmtInterval: Int32? + /// Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal value. + public let scte35Pid: Int32? + public let scte35Source: M3u8Scte35Source? + /// The value of the program number field in the Program Map Table. + public let programNumber: Int32? + /// Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. + public let audioPids: [Int32]? + /// The number of audio frames to insert for each PES packet. + public let audioFramesPerPes: Int32? + /// The value of the transport stream ID field in the Program Map Table. + public let transportStreamId: Int32? + /// Packet Identifier (PID) of the private metadata stream in the transport stream. Can be entered as a decimal or hexadecimal value. + public let privateMetadataPid: Int32? + + public init(timedMetadataPid: Int32? = nil, pcrControl: M3u8PcrControl? = nil, patInterval: Int32? = nil, timedMetadata: TimedMetadata? = nil, pmtPid: Int32? = nil, videoPid: Int32? = nil, pcrPid: Int32? = nil, pmtInterval: Int32? = nil, scte35Pid: Int32? = nil, scte35Source: M3u8Scte35Source? = nil, programNumber: Int32? = nil, audioPids: [Int32]? = nil, audioFramesPerPes: Int32? = nil, transportStreamId: Int32? = nil, privateMetadataPid: Int32? = nil) { + self.timedMetadataPid = timedMetadataPid + self.pcrControl = pcrControl + self.patInterval = patInterval + self.timedMetadata = timedMetadata + self.pmtPid = pmtPid + self.videoPid = videoPid + self.pcrPid = pcrPid + self.pmtInterval = pmtInterval + self.scte35Pid = scte35Pid + self.scte35Source = scte35Source + self.programNumber = programNumber + self.audioPids = audioPids + self.audioFramesPerPes = audioFramesPerPes + self.transportStreamId = transportStreamId + self.privateMetadataPid = privateMetadataPid + } + + private enum CodingKeys: String, CodingKey { + case timedMetadataPid = "timedMetadataPid" + case pcrControl = "pcrControl" + case patInterval = "patInterval" + case timedMetadata = "timedMetadata" + case pmtPid = "pmtPid" + case videoPid = "videoPid" + case pcrPid = "pcrPid" + case pmtInterval = "pmtInterval" + case scte35Pid = "scte35Pid" + case scte35Source = "scte35Source" + case programNumber = "programNumber" + case audioPids = "audioPids" + case audioFramesPerPes = "audioFramesPerPes" + case transportStreamId = "transportStreamId" + case privateMetadataPid = "privateMetadataPid" + } + } + + public struct OutputDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VideoDetails", location: .body(locationName: "videoDetails"), required: false, type: .structure), + AWSShapeMember(label: "DurationInMs", location: .body(locationName: "durationInMs"), required: false, type: .integer) + ] + public let videoDetails: VideoDetail? + /// Duration in milliseconds + public let durationInMs: Int32? + + public init(videoDetails: VideoDetail? = nil, durationInMs: Int32? = nil) { + self.videoDetails = videoDetails + self.durationInMs = durationInMs + } + + private enum CodingKeys: String, CodingKey { + case videoDetails = "videoDetails" + case durationInMs = "durationInMs" + } + } + + public struct ListPresetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Presets", location: .body(locationName: "presets"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + /// List of presets + public let presets: [Preset]? + /// Use this string to request the next batch of presets. + public let nextToken: String? + + public init(presets: [Preset]? = nil, nextToken: String? = nil) { + self.presets = presets + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case presets = "presets" + case nextToken = "nextToken" + } + } + + public enum AacSpecification: String, CustomStringConvertible, Codable { + case mpeg2 = "MPEG2" + case mpeg4 = "MPEG4" + public var description: String { return self.rawValue } + } + + public enum DashIsoHbbtvCompliance: String, CustomStringConvertible, Codable { + case hbbtv15 = "HBBTV_1_5" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct GetPresetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .uri(locationName: "name"), required: true, type: .string) + ] + /// The name of the preset. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + } + } + + public enum HlsEncryptionType: String, CustomStringConvertible, Codable { + case aes128 = "AES128" + case sampleAes = "SAMPLE_AES" + public var description: String { return self.rawValue } + } + + public enum H264SpatialAdaptiveQuantization: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum Eac3LfeControl: String, CustomStringConvertible, Codable { + case lfe = "LFE" + case noLfe = "NO_LFE" + public var description: String { return self.rawValue } + } + + public struct JobSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimedMetadataInsertion", location: .body(locationName: "timedMetadataInsertion"), required: false, type: .structure), + AWSShapeMember(label: "OutputGroups", location: .body(locationName: "outputGroups"), required: false, type: .list), + AWSShapeMember(label: "NielsenConfiguration", location: .body(locationName: "nielsenConfiguration"), required: false, type: .structure), + AWSShapeMember(label: "Inputs", location: .body(locationName: "inputs"), required: false, type: .list), + AWSShapeMember(label: "AdAvailOffset", location: .body(locationName: "adAvailOffset"), required: false, type: .integer), + AWSShapeMember(label: "AvailBlanking", location: .body(locationName: "availBlanking"), required: false, type: .structure), + AWSShapeMember(label: "TimecodeConfig", location: .body(locationName: "timecodeConfig"), required: false, type: .structure) + ] + public let timedMetadataInsertion: TimedMetadataInsertion? + /// **!!**(OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings + public let outputGroups: [OutputGroup]? + public let nielsenConfiguration: NielsenConfiguration? + /// Use Inputs (inputs) to define source file used in the transcode job. There can be multiple inputs add in a job. These inputs will be concantenated together to create the output. + public let inputs: [Input]? + /// When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time. + public let adAvailOffset: Int32? + /// Settings for ad avail blanking. Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails. + public let availBlanking: AvailBlanking? + /// Contains settings used to acquire and adjust timecode information from inputs. + public let timecodeConfig: TimecodeConfig? + + public init(timedMetadataInsertion: TimedMetadataInsertion? = nil, outputGroups: [OutputGroup]? = nil, nielsenConfiguration: NielsenConfiguration? = nil, inputs: [Input]? = nil, adAvailOffset: Int32? = nil, availBlanking: AvailBlanking? = nil, timecodeConfig: TimecodeConfig? = nil) { + self.timedMetadataInsertion = timedMetadataInsertion + self.outputGroups = outputGroups + self.nielsenConfiguration = nielsenConfiguration + self.inputs = inputs + self.adAvailOffset = adAvailOffset + self.availBlanking = availBlanking + self.timecodeConfig = timecodeConfig + } + + private enum CodingKeys: String, CodingKey { + case timedMetadataInsertion = "timedMetadataInsertion" + case outputGroups = "outputGroups" + case nielsenConfiguration = "nielsenConfiguration" + case inputs = "inputs" + case adAvailOffset = "adAvailOffset" + case availBlanking = "availBlanking" + case timecodeConfig = "timecodeConfig" + } + } + + public enum Mpeg2SceneChangeDetect: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum BurninSubtitleOutlineColor: String, CustomStringConvertible, Codable { + case black = "BLACK" + case white = "WHITE" + case yellow = "YELLOW" + case red = "RED" + case green = "GREEN" + case blue = "BLUE" + public var description: String { return self.rawValue } + } + + public struct Mp4Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FreeSpaceBox", location: .body(locationName: "freeSpaceBox"), required: false, type: .enum), + AWSShapeMember(label: "MoovPlacement", location: .body(locationName: "moovPlacement"), required: false, type: .enum), + AWSShapeMember(label: "Mp4MajorBrand", location: .body(locationName: "mp4MajorBrand"), required: false, type: .string), + AWSShapeMember(label: "CslgAtom", location: .body(locationName: "cslgAtom"), required: false, type: .enum) + ] + public let freeSpaceBox: Mp4FreeSpaceBox? + public let moovPlacement: Mp4MoovPlacement? + /// Overrides the "Major Brand" field in the output file. Usually not necessary to specify. + public let mp4MajorBrand: String? + public let cslgAtom: Mp4CslgAtom? + + public init(freeSpaceBox: Mp4FreeSpaceBox? = nil, moovPlacement: Mp4MoovPlacement? = nil, mp4MajorBrand: String? = nil, cslgAtom: Mp4CslgAtom? = nil) { + self.freeSpaceBox = freeSpaceBox + self.moovPlacement = moovPlacement + self.mp4MajorBrand = mp4MajorBrand + self.cslgAtom = cslgAtom + } + + private enum CodingKeys: String, CodingKey { + case freeSpaceBox = "freeSpaceBox" + case moovPlacement = "moovPlacement" + case mp4MajorBrand = "mp4MajorBrand" + case cslgAtom = "cslgAtom" + } + } + + public enum H264AdaptiveQuantization: String, CustomStringConvertible, Codable { + case off = "OFF" + case low = "LOW" + case medium = "MEDIUM" + case high = "HIGH" + case higher = "HIGHER" + case max = "MAX" + public var description: String { return self.rawValue } + } + + public enum MovMpeg2FourCCControl: String, CustomStringConvertible, Codable { + case xdcam = "XDCAM" + case mpeg = "MPEG" + public var description: String { return self.rawValue } + } + + public struct FrameCaptureSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FramerateDenominator", location: .body(locationName: "framerateDenominator"), required: false, type: .integer), + AWSShapeMember(label: "MaxCaptures", location: .body(locationName: "maxCaptures"), required: false, type: .integer), + AWSShapeMember(label: "FramerateNumerator", location: .body(locationName: "framerateNumerator"), required: false, type: .integer), + AWSShapeMember(label: "Quality", location: .body(locationName: "quality"), required: false, type: .integer) + ] + /// Frame capture will encode the first frame of the output stream, then one frame every framerateDenominator/framerateNumerator seconds. For example, settings of framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per second) will capture the first frame, then 1 frame every 3s. Files will be named as filename.n.jpg where n is the 0-based sequence number of each Capture. + public let framerateDenominator: Int32? + /// Maximum number of captures (encoded jpg output files). + public let maxCaptures: Int32? + /// Frame capture will encode the first frame of the output stream, then one frame every framerateDenominator/framerateNumerator seconds. For example, settings of framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per second) will capture the first frame, then 1 frame every 3s. Files will be named as filename.NNNNNNN.jpg where N is the 0-based frame sequence number zero padded to 7 decimal places. + public let framerateNumerator: Int32? + /// JPEG Quality - a higher value equals higher quality. + public let quality: Int32? + + public init(framerateDenominator: Int32? = nil, maxCaptures: Int32? = nil, framerateNumerator: Int32? = nil, quality: Int32? = nil) { + self.framerateDenominator = framerateDenominator + self.maxCaptures = maxCaptures + self.framerateNumerator = framerateNumerator + self.quality = quality + } + + private enum CodingKeys: String, CodingKey { + case framerateDenominator = "framerateDenominator" + case maxCaptures = "maxCaptures" + case framerateNumerator = "framerateNumerator" + case quality = "quality" + } + } + + public struct UpdateQueueRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "Name", location: .uri(locationName: "name"), required: true, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let status: QueueStatus? + /// The name of the queue you are modifying. + public let name: String + /// The new description for the queue, if you are changing it. + public let description: String? + + public init(status: QueueStatus? = nil, name: String, description: String? = nil) { + self.status = status + self.name = name + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case name = "name" + case description = "description" + } + } + + public enum QueueListBy: String, CustomStringConvertible, Codable { + case name = "NAME" + case creationDate = "CREATION_DATE" + public var description: String { return self.rawValue } + } + + public enum AacCodecProfile: String, CustomStringConvertible, Codable { + case lc = "LC" + case hev1 = "HEV1" + case hev2 = "HEV2" + public var description: String { return self.rawValue } + } + + public enum HlsClientCache: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum AudioLanguageCodeControl: String, CustomStringConvertible, Codable { + case followInput = "FOLLOW_INPUT" + case useConfigured = "USE_CONFIGURED" + public var description: String { return self.rawValue } + } + + public enum H265SpatialAdaptiveQuantization: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct Ac3Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CodingMode", location: .body(locationName: "codingMode"), required: false, type: .enum), + AWSShapeMember(label: "LfeFilter", location: .body(locationName: "lfeFilter"), required: false, type: .enum), + AWSShapeMember(label: "BitstreamMode", location: .body(locationName: "bitstreamMode"), required: false, type: .enum), + AWSShapeMember(label: "SampleRate", location: .body(locationName: "sampleRate"), required: false, type: .integer), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .integer), + AWSShapeMember(label: "MetadataControl", location: .body(locationName: "metadataControl"), required: false, type: .enum), + AWSShapeMember(label: "DynamicRangeCompressionProfile", location: .body(locationName: "dynamicRangeCompressionProfile"), required: false, type: .enum), + AWSShapeMember(label: "Dialnorm", location: .body(locationName: "dialnorm"), required: false, type: .integer) + ] + public let codingMode: Ac3CodingMode? + public let lfeFilter: Ac3LfeFilter? + public let bitstreamMode: Ac3BitstreamMode? + /// Sample rate in hz. Sample rate is always 48000. + public let sampleRate: Int32? + /// Average bitrate in bits/second. Valid bitrates depend on the coding mode. + public let bitrate: Int32? + public let metadataControl: Ac3MetadataControl? + public let dynamicRangeCompressionProfile: Ac3DynamicRangeCompressionProfile? + /// Sets the dialnorm for the output. If blank and input audio is Dolby Digital, dialnorm will be passed through. + public let dialnorm: Int32? + + public init(codingMode: Ac3CodingMode? = nil, lfeFilter: Ac3LfeFilter? = nil, bitstreamMode: Ac3BitstreamMode? = nil, sampleRate: Int32? = nil, bitrate: Int32? = nil, metadataControl: Ac3MetadataControl? = nil, dynamicRangeCompressionProfile: Ac3DynamicRangeCompressionProfile? = nil, dialnorm: Int32? = nil) { + self.codingMode = codingMode + self.lfeFilter = lfeFilter + self.bitstreamMode = bitstreamMode + self.sampleRate = sampleRate + self.bitrate = bitrate + self.metadataControl = metadataControl + self.dynamicRangeCompressionProfile = dynamicRangeCompressionProfile + self.dialnorm = dialnorm + } + + private enum CodingKeys: String, CodingKey { + case codingMode = "codingMode" + case lfeFilter = "lfeFilter" + case bitstreamMode = "bitstreamMode" + case sampleRate = "sampleRate" + case bitrate = "bitrate" + case metadataControl = "metadataControl" + case dynamicRangeCompressionProfile = "dynamicRangeCompressionProfile" + case dialnorm = "dialnorm" + } + } + + public struct ProresSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Telecine", location: .body(locationName: "telecine"), required: false, type: .enum), + AWSShapeMember(label: "FramerateDenominator", location: .body(locationName: "framerateDenominator"), required: false, type: .integer), + AWSShapeMember(label: "ParControl", location: .body(locationName: "parControl"), required: false, type: .enum), + AWSShapeMember(label: "FramerateConversionAlgorithm", location: .body(locationName: "framerateConversionAlgorithm"), required: false, type: .enum), + AWSShapeMember(label: "FramerateNumerator", location: .body(locationName: "framerateNumerator"), required: false, type: .integer), + AWSShapeMember(label: "ParDenominator", location: .body(locationName: "parDenominator"), required: false, type: .integer), + AWSShapeMember(label: "CodecProfile", location: .body(locationName: "codecProfile"), required: false, type: .enum), + AWSShapeMember(label: "InterlaceMode", location: .body(locationName: "interlaceMode"), required: false, type: .enum), + AWSShapeMember(label: "SlowPal", location: .body(locationName: "slowPal"), required: false, type: .enum), + AWSShapeMember(label: "FramerateControl", location: .body(locationName: "framerateControl"), required: false, type: .enum), + AWSShapeMember(label: "ParNumerator", location: .body(locationName: "parNumerator"), required: false, type: .integer) + ] + public let telecine: ProresTelecine? + /// Framerate denominator. + public let framerateDenominator: Int32? + public let parControl: ProresParControl? + public let framerateConversionAlgorithm: ProresFramerateConversionAlgorithm? + /// When you use the API for transcode jobs that use framerate conversion, specify the framerate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateNumerator to specify the numerator of this fraction. In this example, use 24000 for the value of FramerateNumerator. + public let framerateNumerator: Int32? + /// Pixel Aspect Ratio denominator. + public let parDenominator: Int32? + public let codecProfile: ProresCodecProfile? + public let interlaceMode: ProresInterlaceMode? + public let slowPal: ProresSlowPal? + public let framerateControl: ProresFramerateControl? + /// Pixel Aspect Ratio numerator. + public let parNumerator: Int32? + + public init(telecine: ProresTelecine? = nil, framerateDenominator: Int32? = nil, parControl: ProresParControl? = nil, framerateConversionAlgorithm: ProresFramerateConversionAlgorithm? = nil, framerateNumerator: Int32? = nil, parDenominator: Int32? = nil, codecProfile: ProresCodecProfile? = nil, interlaceMode: ProresInterlaceMode? = nil, slowPal: ProresSlowPal? = nil, framerateControl: ProresFramerateControl? = nil, parNumerator: Int32? = nil) { + self.telecine = telecine + self.framerateDenominator = framerateDenominator + self.parControl = parControl + self.framerateConversionAlgorithm = framerateConversionAlgorithm + self.framerateNumerator = framerateNumerator + self.parDenominator = parDenominator + self.codecProfile = codecProfile + self.interlaceMode = interlaceMode + self.slowPal = slowPal + self.framerateControl = framerateControl + self.parNumerator = parNumerator + } + + private enum CodingKeys: String, CodingKey { + case telecine = "telecine" + case framerateDenominator = "framerateDenominator" + case parControl = "parControl" + case framerateConversionAlgorithm = "framerateConversionAlgorithm" + case framerateNumerator = "framerateNumerator" + case parDenominator = "parDenominator" + case codecProfile = "codecProfile" + case interlaceMode = "interlaceMode" + case slowPal = "slowPal" + case framerateControl = "framerateControl" + case parNumerator = "parNumerator" + } + } + + public struct ListJobsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", location: .querystring(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "Order", location: .querystring(locationName: "order"), required: false, type: .enum), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Queue", location: .querystring(locationName: "queue"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let status: JobStatus? + public let order: Order? + /// Use this string, provided with the response to a previous request, to request the next batch of jobs. + public let nextToken: String? + /// Provide a queue name to get back only jobs from that queue. + public let queue: String? + /// Optional. Number of jobs, up to twenty, that will be returned at one time. + public let maxResults: Int32? + + public init(status: JobStatus? = nil, order: Order? = nil, nextToken: String? = nil, queue: String? = nil, maxResults: Int32? = nil) { + self.status = status + self.order = order + self.nextToken = nextToken + self.queue = queue + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case order = "order" + case nextToken = "nextToken" + case queue = "queue" + case maxResults = "maxResults" + } + } + + public enum HlsProgramDateTime: String, CustomStringConvertible, Codable { + case include = "INCLUDE" + case exclude = "EXCLUDE" + public var description: String { return self.rawValue } + } + + public enum Mp4MoovPlacement: String, CustomStringConvertible, Codable { + case progressiveDownload = "PROGRESSIVE_DOWNLOAD" + case normal = "NORMAL" + public var description: String { return self.rawValue } + } + + public enum Mpeg2SlowPal: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum DvbSubtitleFontColor: String, CustomStringConvertible, Codable { + case white = "WHITE" + case black = "BLACK" + case yellow = "YELLOW" + case red = "RED" + case green = "GREEN" + case blue = "BLUE" + public var description: String { return self.rawValue } + } + + public enum InputDenoiseFilter: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public struct CaptionDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CaptionSelectorName", location: .body(locationName: "captionSelectorName"), required: false, type: .string), + AWSShapeMember(label: "LanguageDescription", location: .body(locationName: "languageDescription"), required: false, type: .string), + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .enum), + AWSShapeMember(label: "DestinationSettings", location: .body(locationName: "destinationSettings"), required: false, type: .structure) + ] + /// Specifies which "Caption Selector":#inputs-caption_selector to use from each input when generating captions. The name should be of the format "Caption Selector ", which denotes that the Nth Caption Selector will be used from each input. + public let captionSelectorName: String? + /// Human readable information to indicate captions available for players (eg. English, or Spanish). Alphanumeric characters, spaces, and underscore are legal. + public let languageDescription: String? + /// Indicates the language of the caption output track. + public let languageCode: LanguageCode? + public let destinationSettings: CaptionDestinationSettings? + + public init(captionSelectorName: String? = nil, languageDescription: String? = nil, languageCode: LanguageCode? = nil, destinationSettings: CaptionDestinationSettings? = nil) { + self.captionSelectorName = captionSelectorName + self.languageDescription = languageDescription + self.languageCode = languageCode + self.destinationSettings = destinationSettings + } + + private enum CodingKeys: String, CodingKey { + case captionSelectorName = "captionSelectorName" + case languageDescription = "languageDescription" + case languageCode = "languageCode" + case destinationSettings = "destinationSettings" + } + } + + public struct Hdr10Metadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BluePrimaryX", location: .body(locationName: "bluePrimaryX"), required: false, type: .integer), + AWSShapeMember(label: "WhitePointX", location: .body(locationName: "whitePointX"), required: false, type: .integer), + AWSShapeMember(label: "WhitePointY", location: .body(locationName: "whitePointY"), required: false, type: .integer), + AWSShapeMember(label: "RedPrimaryY", location: .body(locationName: "redPrimaryY"), required: false, type: .integer), + AWSShapeMember(label: "GreenPrimaryY", location: .body(locationName: "greenPrimaryY"), required: false, type: .integer), + AWSShapeMember(label: "MaxLuminance", location: .body(locationName: "maxLuminance"), required: false, type: .integer), + AWSShapeMember(label: "MaxFrameAverageLightLevel", location: .body(locationName: "maxFrameAverageLightLevel"), required: false, type: .integer), + AWSShapeMember(label: "RedPrimaryX", location: .body(locationName: "redPrimaryX"), required: false, type: .integer), + AWSShapeMember(label: "MinLuminance", location: .body(locationName: "minLuminance"), required: false, type: .integer), + AWSShapeMember(label: "MaxContentLightLevel", location: .body(locationName: "maxContentLightLevel"), required: false, type: .integer), + AWSShapeMember(label: "BluePrimaryY", location: .body(locationName: "bluePrimaryY"), required: false, type: .integer), + AWSShapeMember(label: "GreenPrimaryX", location: .body(locationName: "greenPrimaryX"), required: false, type: .integer) + ] + /// HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate. + public let bluePrimaryX: Int32? + /// HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate. + public let whitePointX: Int32? + /// HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate. + public let whitePointY: Int32? + /// HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate. + public let redPrimaryY: Int32? + /// HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate. + public let greenPrimaryY: Int32? + /// Nominal maximum mastering display luminance in units of of 0.0001 candelas per square meter. + public let maxLuminance: Int32? + /// Maximum average light level of any frame in the coded video sequence, in units of candelas per square meter. + public let maxFrameAverageLightLevel: Int32? + /// HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate. + public let redPrimaryX: Int32? + /// Nominal minimum mastering display luminance in units of of 0.0001 candelas per square meter + public let minLuminance: Int32? + /// Maximum light level among all samples in the coded video sequence, in units of candelas per square meter. + public let maxContentLightLevel: Int32? + /// HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate. + public let bluePrimaryY: Int32? + /// HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate. + public let greenPrimaryX: Int32? + + public init(bluePrimaryX: Int32? = nil, whitePointX: Int32? = nil, whitePointY: Int32? = nil, redPrimaryY: Int32? = nil, greenPrimaryY: Int32? = nil, maxLuminance: Int32? = nil, maxFrameAverageLightLevel: Int32? = nil, redPrimaryX: Int32? = nil, minLuminance: Int32? = nil, maxContentLightLevel: Int32? = nil, bluePrimaryY: Int32? = nil, greenPrimaryX: Int32? = nil) { + self.bluePrimaryX = bluePrimaryX + self.whitePointX = whitePointX + self.whitePointY = whitePointY + self.redPrimaryY = redPrimaryY + self.greenPrimaryY = greenPrimaryY + self.maxLuminance = maxLuminance + self.maxFrameAverageLightLevel = maxFrameAverageLightLevel + self.redPrimaryX = redPrimaryX + self.minLuminance = minLuminance + self.maxContentLightLevel = maxContentLightLevel + self.bluePrimaryY = bluePrimaryY + self.greenPrimaryX = greenPrimaryX + } + + private enum CodingKeys: String, CodingKey { + case bluePrimaryX = "bluePrimaryX" + case whitePointX = "whitePointX" + case whitePointY = "whitePointY" + case redPrimaryY = "redPrimaryY" + case greenPrimaryY = "greenPrimaryY" + case maxLuminance = "maxLuminance" + case maxFrameAverageLightLevel = "maxFrameAverageLightLevel" + case redPrimaryX = "redPrimaryX" + case minLuminance = "minLuminance" + case maxContentLightLevel = "maxContentLightLevel" + case bluePrimaryY = "bluePrimaryY" + case greenPrimaryX = "greenPrimaryX" + } + } + + public struct GetJobTemplateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobTemplate", location: .body(locationName: "jobTemplate"), required: false, type: .structure) + ] + public let jobTemplate: JobTemplate? + + public init(jobTemplate: JobTemplate? = nil) { + self.jobTemplate = jobTemplate + } + + private enum CodingKeys: String, CodingKey { + case jobTemplate = "jobTemplate" + } + } + + public struct CreateJobTemplateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Category", location: .body(locationName: "category"), required: false, type: .string), + AWSShapeMember(label: "Settings", location: .body(locationName: "settings"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Queue", location: .body(locationName: "queue"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// Optional. A category for the job template you are creating + public let category: String? + public let settings: JobTemplateSettings? + /// The name of the job template you are creating. + public let name: String? + /// Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue. + public let queue: String? + /// Optional. A description of the job template you are creating. + public let description: String? + + public init(category: String? = nil, settings: JobTemplateSettings? = nil, name: String? = nil, queue: String? = nil, description: String? = nil) { + self.category = category + self.settings = settings + self.name = name + self.queue = queue + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case category = "category" + case settings = "settings" + case name = "name" + case queue = "queue" + case description = "description" + } + } + + public enum Eac3PhaseControl: String, CustomStringConvertible, Codable { + case shift90Degrees = "SHIFT_90_DEGREES" + case noShift = "NO_SHIFT" + public var description: String { return self.rawValue } + } + + public enum ProresParControl: String, CustomStringConvertible, Codable { + case initializeFromSource = "INITIALIZE_FROM_SOURCE" + case specified = "SPECIFIED" + public var description: String { return self.rawValue } + } + + public enum H265InterlaceMode: String, CustomStringConvertible, Codable { + case progressive = "PROGRESSIVE" + case topField = "TOP_FIELD" + case bottomField = "BOTTOM_FIELD" + case followTopField = "FOLLOW_TOP_FIELD" + case followBottomField = "FOLLOW_BOTTOM_FIELD" + public var description: String { return self.rawValue } + } + + public struct SccDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Framerate", location: .body(locationName: "framerate"), required: false, type: .enum) + ] + public let framerate: SccDestinationFramerate? + + public init(framerate: SccDestinationFramerate? = nil) { + self.framerate = framerate + } + + private enum CodingKeys: String, CodingKey { + case framerate = "framerate" + } + } + + public enum H264GopBReference: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum HlsStreamInfResolution: String, CustomStringConvertible, Codable { + case include = "INCLUDE" + case exclude = "EXCLUDE" + public var description: String { return self.rawValue } + } + + public struct DeleteQueueRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .uri(locationName: "name"), required: true, type: .string) + ] + /// The name of the queue to be deleted. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + } + } + + public enum M3u8Scte35Source: String, CustomStringConvertible, Codable { + case passthrough = "PASSTHROUGH" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct OutputGroupDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OutputDetails", location: .body(locationName: "outputDetails"), required: false, type: .list) + ] + /// Details about the output + public let outputDetails: [OutputDetail]? + + public init(outputDetails: [OutputDetail]? = nil) { + self.outputDetails = outputDetails + } + + private enum CodingKeys: String, CodingKey { + case outputDetails = "outputDetails" + } + } + + public enum H264UnregisteredSeiTimecode: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum Mpeg2Telecine: String, CustomStringConvertible, Codable { + case none = "NONE" + case soft = "SOFT" + case hard = "HARD" + public var description: String { return self.rawValue } + } + + public enum H265Tiles: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct AudioSelectorGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AudioSelectorNames", location: .body(locationName: "audioSelectorNames"), required: false, type: .list) + ] + /// Name of an "Audio Selector":#inputs-audio_selector within the same input to include in the group. Audio selector names are standardized, based on their order within the input (e.g. "Audio Selector 1"). The audio_selector_name parameter can be repeated to add any number of audio selectors to the group. + public let audioSelectorNames: [String]? + + public init(audioSelectorNames: [String]? = nil) { + self.audioSelectorNames = audioSelectorNames + } + + private enum CodingKeys: String, CodingKey { + case audioSelectorNames = "audioSelectorNames" + } + } + + public struct CreateJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Job", location: .body(locationName: "job"), required: false, type: .structure) + ] + public let job: Job? + + public init(job: Job? = nil) { + self.job = job + } + + private enum CodingKeys: String, CodingKey { + case job = "job" + } + } + + public struct Input: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeblockFilter", location: .body(locationName: "deblockFilter"), required: false, type: .enum), + AWSShapeMember(label: "FilterEnable", location: .body(locationName: "filterEnable"), required: false, type: .enum), + AWSShapeMember(label: "AudioSelectors", location: .body(locationName: "audioSelectors"), required: false, type: .map), + AWSShapeMember(label: "PsiControl", location: .body(locationName: "psiControl"), required: false, type: .enum), + AWSShapeMember(label: "FilterStrength", location: .body(locationName: "filterStrength"), required: false, type: .integer), + AWSShapeMember(label: "DenoiseFilter", location: .body(locationName: "denoiseFilter"), required: false, type: .enum), + AWSShapeMember(label: "InputClippings", location: .body(locationName: "inputClippings"), required: false, type: .list), + AWSShapeMember(label: "ProgramNumber", location: .body(locationName: "programNumber"), required: false, type: .integer), + AWSShapeMember(label: "VideoSelector", location: .body(locationName: "videoSelector"), required: false, type: .structure), + AWSShapeMember(label: "FileInput", location: .body(locationName: "fileInput"), required: false, type: .string), + AWSShapeMember(label: "AudioSelectorGroups", location: .body(locationName: "audioSelectorGroups"), required: false, type: .map), + AWSShapeMember(label: "CaptionSelectors", location: .body(locationName: "captionSelectors"), required: false, type: .map), + AWSShapeMember(label: "TimecodeSource", location: .body(locationName: "timecodeSource"), required: false, type: .enum) + ] + public let deblockFilter: InputDeblockFilter? + public let filterEnable: InputFilterEnable? + /// Use Audio selectors (AudioSelectors) to specify a track or set of tracks from the input that you will use in your outputs. You can use mutiple Audio selectors per input. + public let audioSelectors: [String: AudioSelector]? + public let psiControl: InputPsiControl? + /// Use Filter strength (FilterStrength) to adjust the magnitude the input filter settings (Deblock and Denoise). The range is -5 to 5. Default is 0. + public let filterStrength: Int32? + public let denoiseFilter: InputDenoiseFilter? + /// (InputClippings) contains sets of start and end times that together specify a portion of the input to be used in the outputs. If you provide only a start time, the clip will be the entire input from that point to the end. If you provide only an end time, it will be the entire input up to that point. When you specify more than one input clip, the transcoding service creates the job outputs by stringing the clips together in the order you specify them. + public let inputClippings: [InputClipping]? + /// Use Program (programNumber) to select a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported. Default is the first program within the transport stream. If the program you specify doesn't exist, the transcoding service will use this default. + public let programNumber: Int32? + public let videoSelector: VideoSelector? + /// Use Input (fileInput) to define the source file used in the transcode job. There can be multiple inputs in a job. These inputs are concantenated, in the order they are specified in the job, to create the output. + public let fileInput: String? + /// Specifies set of audio selectors within an input to combine. An input may have multiple audio selector groups. See "Audio Selector Group":#inputs-audio_selector_group for more information. + public let audioSelectorGroups: [String: AudioSelectorGroup]? + /// Use Captions selectors (CaptionSelectors) to specify the captions data from the input that you will use in your outputs. You can use mutiple captions selectors per input. + public let captionSelectors: [String: CaptionSelector]? + public let timecodeSource: InputTimecodeSource? + + public init(deblockFilter: InputDeblockFilter? = nil, filterEnable: InputFilterEnable? = nil, audioSelectors: [String: AudioSelector]? = nil, psiControl: InputPsiControl? = nil, filterStrength: Int32? = nil, denoiseFilter: InputDenoiseFilter? = nil, inputClippings: [InputClipping]? = nil, programNumber: Int32? = nil, videoSelector: VideoSelector? = nil, fileInput: String? = nil, audioSelectorGroups: [String: AudioSelectorGroup]? = nil, captionSelectors: [String: CaptionSelector]? = nil, timecodeSource: InputTimecodeSource? = nil) { + self.deblockFilter = deblockFilter + self.filterEnable = filterEnable + self.audioSelectors = audioSelectors + self.psiControl = psiControl + self.filterStrength = filterStrength + self.denoiseFilter = denoiseFilter + self.inputClippings = inputClippings + self.programNumber = programNumber + self.videoSelector = videoSelector + self.fileInput = fileInput + self.audioSelectorGroups = audioSelectorGroups + self.captionSelectors = captionSelectors + self.timecodeSource = timecodeSource + } + + private enum CodingKeys: String, CodingKey { + case deblockFilter = "deblockFilter" + case filterEnable = "filterEnable" + case audioSelectors = "audioSelectors" + case psiControl = "psiControl" + case filterStrength = "filterStrength" + case denoiseFilter = "denoiseFilter" + case inputClippings = "inputClippings" + case programNumber = "programNumber" + case videoSelector = "videoSelector" + case fileInput = "fileInput" + case audioSelectorGroups = "audioSelectorGroups" + case captionSelectors = "captionSelectors" + case timecodeSource = "timecodeSource" + } + } + + public enum H264SlowPal: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum H264ParControl: String, CustomStringConvertible, Codable { + case initializeFromSource = "INITIALIZE_FROM_SOURCE" + case specified = "SPECIFIED" + public var description: String { return self.rawValue } + } + + public struct DeletePresetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .uri(locationName: "name"), required: true, type: .string) + ] + /// The name of the preset to be deleted. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + } + } + + public enum EmbeddedConvert608To708: String, CustomStringConvertible, Codable { + case upconvert = "UPCONVERT" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public enum Mp4FreeSpaceBox: String, CustomStringConvertible, Codable { + case include = "INCLUDE" + case exclude = "EXCLUDE" + public var description: String { return self.rawValue } + } + + public struct OutputGroupSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MsSmoothGroupSettings", location: .body(locationName: "msSmoothGroupSettings"), required: false, type: .structure), + AWSShapeMember(label: "FileGroupSettings", location: .body(locationName: "fileGroupSettings"), required: false, type: .structure), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "HlsGroupSettings", location: .body(locationName: "hlsGroupSettings"), required: false, type: .structure), + AWSShapeMember(label: "DashIsoGroupSettings", location: .body(locationName: "dashIsoGroupSettings"), required: false, type: .structure) + ] + public let msSmoothGroupSettings: MsSmoothGroupSettings? + public let fileGroupSettings: FileGroupSettings? + /// Type of output group (File group, Apple HLS, DASH ISO, Microsoft Smooth Streaming) + public let `type`: OutputGroupType? + public let hlsGroupSettings: HlsGroupSettings? + public let dashIsoGroupSettings: DashIsoGroupSettings? + + public init(msSmoothGroupSettings: MsSmoothGroupSettings? = nil, fileGroupSettings: FileGroupSettings? = nil, type: OutputGroupType? = nil, hlsGroupSettings: HlsGroupSettings? = nil, dashIsoGroupSettings: DashIsoGroupSettings? = nil) { + self.msSmoothGroupSettings = msSmoothGroupSettings + self.fileGroupSettings = fileGroupSettings + self.`type` = `type` + self.hlsGroupSettings = hlsGroupSettings + self.dashIsoGroupSettings = dashIsoGroupSettings + } + + private enum CodingKeys: String, CodingKey { + case msSmoothGroupSettings = "msSmoothGroupSettings" + case fileGroupSettings = "fileGroupSettings" + case `type` = "type" + case hlsGroupSettings = "hlsGroupSettings" + case dashIsoGroupSettings = "dashIsoGroupSettings" + } + } + + public struct JobTemplate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreatedAt", location: .body(locationName: "createdAt"), required: false, type: .timestamp), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Category", location: .body(locationName: "category"), required: false, type: .string), + AWSShapeMember(label: "LastUpdated", location: .body(locationName: "lastUpdated"), required: false, type: .timestamp), + AWSShapeMember(label: "Settings", location: .body(locationName: "settings"), required: false, type: .structure), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "Queue", location: .body(locationName: "queue"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// The timestamp in epoch seconds for Job template creation. + public let createdAt: TimeStamp? + /// An identifier for this resource that is unique within all of AWS. + public let arn: String? + /// A name you create for each job template. Each name must be unique within your account. + public let name: String? + /// An optional category you create to organize your job templates. + public let category: String? + /// The timestamp in epoch seconds when the Job template was last updated. + public let lastUpdated: TimeStamp? + public let settings: JobTemplateSettings? + /// A job template can be of two types: system or custom. System or built-in job templates can’t be modified or deleted by the user. + public let `type`: `Type`? + /// Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue. + public let queue: String? + /// An optional description you create for each job template. + public let description: String? + + public init(createdAt: TimeStamp? = nil, arn: String? = nil, name: String? = nil, category: String? = nil, lastUpdated: TimeStamp? = nil, settings: JobTemplateSettings? = nil, type: `Type`? = nil, queue: String? = nil, description: String? = nil) { + self.createdAt = createdAt + self.arn = arn + self.name = name + self.category = category + self.lastUpdated = lastUpdated + self.settings = settings + self.`type` = `type` + self.queue = queue + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case createdAt = "createdAt" + case arn = "arn" + case name = "name" + case category = "category" + case lastUpdated = "lastUpdated" + case settings = "settings" + case `type` = "type" + case queue = "queue" + case description = "description" + } + } + + public struct StaticKeyProvider: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StaticKeyValue", location: .body(locationName: "staticKeyValue"), required: false, type: .string), + AWSShapeMember(label: "KeyFormat", location: .body(locationName: "keyFormat"), required: false, type: .string), + AWSShapeMember(label: "KeyFormatVersions", location: .body(locationName: "keyFormatVersions"), required: false, type: .string), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string) + ] + /// Relates to DRM implementation. Use a 32-character hexidecimal string to specify Key Value (StaticKeyValue). + public let staticKeyValue: String? + /// Relates to DRM implementation. Sets the value of the KEYFORMAT attribute. Must be 'identity' or a reverse DNS string. May be omitted to indicate an implicit value of 'identity'. + public let keyFormat: String? + /// Relates to DRM implementation. Either a single positive integer version value or a slash delimited list of version values (1/2/3). + public let keyFormatVersions: String? + /// Relates to DRM implementation. The location of the license server used for protecting content. + public let url: String? + + public init(staticKeyValue: String? = nil, keyFormat: String? = nil, keyFormatVersions: String? = nil, url: String? = nil) { + self.staticKeyValue = staticKeyValue + self.keyFormat = keyFormat + self.keyFormatVersions = keyFormatVersions + self.url = url + } + + private enum CodingKeys: String, CodingKey { + case staticKeyValue = "staticKeyValue" + case keyFormat = "keyFormat" + case keyFormatVersions = "keyFormatVersions" + case url = "url" + } + } + + public struct DvbTdtSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TdtInterval", location: .body(locationName: "tdtInterval"), required: false, type: .integer) + ] + /// The number of milliseconds between instances of this table in the output transport stream. + public let tdtInterval: Int32? + + public init(tdtInterval: Int32? = nil) { + self.tdtInterval = tdtInterval + } + + private enum CodingKeys: String, CodingKey { + case tdtInterval = "tdtInterval" + } + } + + public struct AudioNormalizationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Algorithm", location: .body(locationName: "algorithm"), required: false, type: .enum), + AWSShapeMember(label: "CorrectionGateLevel", location: .body(locationName: "correctionGateLevel"), required: false, type: .integer), + AWSShapeMember(label: "PeakCalculation", location: .body(locationName: "peakCalculation"), required: false, type: .enum), + AWSShapeMember(label: "LoudnessLogging", location: .body(locationName: "loudnessLogging"), required: false, type: .enum), + AWSShapeMember(label: "AlgorithmControl", location: .body(locationName: "algorithmControl"), required: false, type: .enum), + AWSShapeMember(label: "TargetLkfs", location: .body(locationName: "targetLkfs"), required: false, type: .double) + ] + public let algorithm: AudioNormalizationAlgorithm? + /// Content measuring above this level will be corrected to the target level. Content measuring below this level will not be corrected. Gating only applies when not using real_time_correction. + public let correctionGateLevel: Int32? + public let peakCalculation: AudioNormalizationPeakCalculation? + public let loudnessLogging: AudioNormalizationLoudnessLogging? + public let algorithmControl: AudioNormalizationAlgorithmControl? + /// Target LKFS(loudness) to adjust volume to. If no value is entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS. + public let targetLkfs: Double? + + public init(algorithm: AudioNormalizationAlgorithm? = nil, correctionGateLevel: Int32? = nil, peakCalculation: AudioNormalizationPeakCalculation? = nil, loudnessLogging: AudioNormalizationLoudnessLogging? = nil, algorithmControl: AudioNormalizationAlgorithmControl? = nil, targetLkfs: Double? = nil) { + self.algorithm = algorithm + self.correctionGateLevel = correctionGateLevel + self.peakCalculation = peakCalculation + self.loudnessLogging = loudnessLogging + self.algorithmControl = algorithmControl + self.targetLkfs = targetLkfs + } + + private enum CodingKeys: String, CodingKey { + case algorithm = "algorithm" + case correctionGateLevel = "correctionGateLevel" + case peakCalculation = "peakCalculation" + case loudnessLogging = "loudnessLogging" + case algorithmControl = "algorithmControl" + case targetLkfs = "targetLkfs" + } + } + + public struct DvbSdtSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OutputSdt", location: .body(locationName: "outputSdt"), required: false, type: .enum), + AWSShapeMember(label: "ServiceName", location: .body(locationName: "serviceName"), required: false, type: .string), + AWSShapeMember(label: "SdtInterval", location: .body(locationName: "sdtInterval"), required: false, type: .integer), + AWSShapeMember(label: "ServiceProviderName", location: .body(locationName: "serviceProviderName"), required: false, type: .string) + ] + public let outputSdt: OutputSdt? + /// The service name placed in the service_descriptor in the Service Description Table. Maximum length is 256 characters. + public let serviceName: String? + /// The number of milliseconds between instances of this table in the output transport stream. + public let sdtInterval: Int32? + /// The service provider name placed in the service_descriptor in the Service Description Table. Maximum length is 256 characters. + public let serviceProviderName: String? + + public init(outputSdt: OutputSdt? = nil, serviceName: String? = nil, sdtInterval: Int32? = nil, serviceProviderName: String? = nil) { + self.outputSdt = outputSdt + self.serviceName = serviceName + self.sdtInterval = sdtInterval + self.serviceProviderName = serviceProviderName + } + + private enum CodingKeys: String, CodingKey { + case outputSdt = "outputSdt" + case serviceName = "serviceName" + case sdtInterval = "sdtInterval" + case serviceProviderName = "serviceProviderName" + } + } + + public enum AntiAlias: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum Eac3StereoDownmix: String, CustomStringConvertible, Codable { + case notIndicated = "NOT_INDICATED" + case loRo = "LO_RO" + case ltRt = "LT_RT" + case dpl2 = "DPL2" + public var description: String { return self.rawValue } + } + + public enum M2tsSegmentationStyle: String, CustomStringConvertible, Codable { + case maintainCadence = "MAINTAIN_CADENCE" + case resetCadence = "RESET_CADENCE" + public var description: String { return self.rawValue } + } + + public enum M2tsSegmentationMarkers: String, CustomStringConvertible, Codable { + case none = "NONE" + case raiSegstart = "RAI_SEGSTART" + case raiAdapt = "RAI_ADAPT" + case psiSegstart = "PSI_SEGSTART" + case ebp = "EBP" + case ebpLegacy = "EBP_LEGACY" + public var description: String { return self.rawValue } + } + + public struct FileSourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceFile", location: .body(locationName: "sourceFile"), required: false, type: .string), + AWSShapeMember(label: "TimeDelta", location: .body(locationName: "timeDelta"), required: false, type: .integer), + AWSShapeMember(label: "Convert608To708", location: .body(locationName: "convert608To708"), required: false, type: .enum) + ] + /// External caption file used for loading captions. Accepted file extensions are 'scc', 'ttml', 'dfxp', 'stl', 'srt', and 'smi'. Auto-populated when Infer External Filename is checked. + public let sourceFile: String? + /// Specifies a time delta in seconds to offset the captions from the source file. + public let timeDelta: Int32? + public let convert608To708: FileSourceConvert608To708? + + public init(sourceFile: String? = nil, timeDelta: Int32? = nil, convert608To708: FileSourceConvert608To708? = nil) { + self.sourceFile = sourceFile + self.timeDelta = timeDelta + self.convert608To708 = convert608To708 + } + + private enum CodingKeys: String, CodingKey { + case sourceFile = "sourceFile" + case timeDelta = "timeDelta" + case convert608To708 = "convert608To708" + } + } + + public enum Mpeg2InterlaceMode: String, CustomStringConvertible, Codable { + case progressive = "PROGRESSIVE" + case topField = "TOP_FIELD" + case bottomField = "BOTTOM_FIELD" + case followTopField = "FOLLOW_TOP_FIELD" + case followBottomField = "FOLLOW_BOTTOM_FIELD" + public var description: String { return self.rawValue } + } + + public struct DescribeEndpointsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + /// Use this string, provided with the response to a previous request, to request the next batch of endpoints. + public let nextToken: String? + /// Optional. Max number of endpoints, up to twenty, that will be returned at one time. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public enum Mpeg2FramerateConversionAlgorithm: String, CustomStringConvertible, Codable { + case duplicateDrop = "DUPLICATE_DROP" + case interpolate = "INTERPOLATE" + public var description: String { return self.rawValue } + } + + public enum HlsSegmentControl: String, CustomStringConvertible, Codable { + case singleFile = "SINGLE_FILE" + case segmentedFiles = "SEGMENTED_FILES" + public var description: String { return self.rawValue } + } + + public enum TimedMetadata: String, CustomStringConvertible, Codable { + case passthrough = "PASSTHROUGH" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public enum H264TemporalAdaptiveQuantization: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum ColorSpace: String, CustomStringConvertible, Codable { + case follow = "FOLLOW" + case rec601 = "REC_601" + case rec709 = "REC_709" + case hdr10 = "HDR10" + case hlg2020 = "HLG_2020" + public var description: String { return self.rawValue } + } + + public struct Mp2Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .integer), + AWSShapeMember(label: "Channels", location: .body(locationName: "channels"), required: false, type: .integer), + AWSShapeMember(label: "SampleRate", location: .body(locationName: "sampleRate"), required: false, type: .integer) + ] + /// Average bitrate in bits/second. + public let bitrate: Int32? + /// Set Channels to specify the number of channels in this output audio track. Choosing Mono in the console will give you 1 output channel; choosing Stereo will give you 2. In the API, valid values are 1 and 2. + public let channels: Int32? + /// Sample rate in hz. + public let sampleRate: Int32? + + public init(bitrate: Int32? = nil, channels: Int32? = nil, sampleRate: Int32? = nil) { + self.bitrate = bitrate + self.channels = channels + self.sampleRate = sampleRate + } + + private enum CodingKeys: String, CodingKey { + case bitrate = "bitrate" + case channels = "channels" + case sampleRate = "sampleRate" + } + } + + public struct AudioCodecSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Eac3Settings", location: .body(locationName: "eac3Settings"), required: false, type: .structure), + AWSShapeMember(label: "AiffSettings", location: .body(locationName: "aiffSettings"), required: false, type: .structure), + AWSShapeMember(label: "Codec", location: .body(locationName: "codec"), required: false, type: .enum), + AWSShapeMember(label: "Ac3Settings", location: .body(locationName: "ac3Settings"), required: false, type: .structure), + AWSShapeMember(label: "WavSettings", location: .body(locationName: "wavSettings"), required: false, type: .structure), + AWSShapeMember(label: "Mp2Settings", location: .body(locationName: "mp2Settings"), required: false, type: .structure), + AWSShapeMember(label: "AacSettings", location: .body(locationName: "aacSettings"), required: false, type: .structure) + ] + public let eac3Settings: Eac3Settings? + public let aiffSettings: AiffSettings? + public let codec: AudioCodec? + public let ac3Settings: Ac3Settings? + public let wavSettings: WavSettings? + public let mp2Settings: Mp2Settings? + public let aacSettings: AacSettings? + + public init(eac3Settings: Eac3Settings? = nil, aiffSettings: AiffSettings? = nil, codec: AudioCodec? = nil, ac3Settings: Ac3Settings? = nil, wavSettings: WavSettings? = nil, mp2Settings: Mp2Settings? = nil, aacSettings: AacSettings? = nil) { + self.eac3Settings = eac3Settings + self.aiffSettings = aiffSettings + self.codec = codec + self.ac3Settings = ac3Settings + self.wavSettings = wavSettings + self.mp2Settings = mp2Settings + self.aacSettings = aacSettings + } + + private enum CodingKeys: String, CodingKey { + case eac3Settings = "eac3Settings" + case aiffSettings = "aiffSettings" + case codec = "codec" + case ac3Settings = "ac3Settings" + case wavSettings = "wavSettings" + case mp2Settings = "mp2Settings" + case aacSettings = "aacSettings" + } + } + + public enum HlsManifestCompression: String, CustomStringConvertible, Codable { + case gzip = "GZIP" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct GetQueueRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .uri(locationName: "name"), required: true, type: .string) + ] + /// The name of the queue. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + } + } + + public struct NoiseReducerFilterSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Strength", location: .body(locationName: "strength"), required: false, type: .integer) + ] + /// Relative strength of noise reducing filter. Higher values produce stronger filtering. + public let strength: Int32? + + public init(strength: Int32? = nil) { + self.strength = strength + } + + private enum CodingKeys: String, CodingKey { + case strength = "strength" + } + } + + public enum H265TemporalIds: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum AacRawFormat: String, CustomStringConvertible, Codable { + case latmLoas = "LATM_LOAS" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public enum H264RepeatPps: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct ListJobTemplatesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "JobTemplates", location: .body(locationName: "jobTemplates"), required: false, type: .list) + ] + /// Use this string to request the next batch of job templates. + public let nextToken: String? + /// List of Job templates. + public let jobTemplates: [JobTemplate]? + + public init(nextToken: String? = nil, jobTemplates: [JobTemplate]? = nil) { + self.nextToken = nextToken + self.jobTemplates = jobTemplates + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case jobTemplates = "jobTemplates" + } + } + + public struct EmbeddedSourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Source608ChannelNumber", location: .body(locationName: "source608ChannelNumber"), required: false, type: .integer), + AWSShapeMember(label: "Convert608To708", location: .body(locationName: "convert608To708"), required: false, type: .enum), + AWSShapeMember(label: "Source608TrackNumber", location: .body(locationName: "source608TrackNumber"), required: false, type: .integer) + ] + /// Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough. + public let source608ChannelNumber: Int32? + public let convert608To708: EmbeddedConvert608To708? + /// Specifies the video track index used for extracting captions. The system only supports one input video track, so this should always be set to '1'. + public let source608TrackNumber: Int32? + + public init(source608ChannelNumber: Int32? = nil, convert608To708: EmbeddedConvert608To708? = nil, source608TrackNumber: Int32? = nil) { + self.source608ChannelNumber = source608ChannelNumber + self.convert608To708 = convert608To708 + self.source608TrackNumber = source608TrackNumber + } + + private enum CodingKeys: String, CodingKey { + case source608ChannelNumber = "source608ChannelNumber" + case convert608To708 = "convert608To708" + case source608TrackNumber = "source608TrackNumber" + } + } + + public enum ScalingBehavior: String, CustomStringConvertible, Codable { + case `default` = "DEFAULT" + case stretchToOutput = "STRETCH_TO_OUTPUT" + public var description: String { return self.rawValue } + } + + public struct ExceptionBody: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + public let message: String? + + public init(message: String? = nil) { + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + } + } + + public enum DvbSubtitleOutlineColor: String, CustomStringConvertible, Codable { + case black = "BLACK" + case white = "WHITE" + case yellow = "YELLOW" + case red = "RED" + case green = "GREEN" + case blue = "BLUE" + public var description: String { return self.rawValue } + } + + public enum ContainerType: String, CustomStringConvertible, Codable { + case f4v = "F4V" + case ismv = "ISMV" + case m2ts = "M2TS" + case m3u8 = "M3U8" + case mov = "MOV" + case mp4 = "MP4" + case mpd = "MPD" + case mxf = "MXF" + case raw = "RAW" + public var description: String { return self.rawValue } + } + + public enum OutputGroupType: String, CustomStringConvertible, Codable { + case hlsGroupSettings = "HLS_GROUP_SETTINGS" + case dashIsoGroupSettings = "DASH_ISO_GROUP_SETTINGS" + case fileGroupSettings = "FILE_GROUP_SETTINGS" + case msSmoothGroupSettings = "MS_SMOOTH_GROUP_SETTINGS" + public var description: String { return self.rawValue } + } + + public enum InputDeblockFilter: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case disabled = "DISABLED" + public var description: String { return self.rawValue } + } + + public struct NielsenConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DistributorId", location: .body(locationName: "distributorId"), required: false, type: .string), + AWSShapeMember(label: "BreakoutCode", location: .body(locationName: "breakoutCode"), required: false, type: .integer) + ] + /// Use Distributor ID (DistributorID) to specify the distributor ID that is assigned to your organization by Neilsen. + public let distributorId: String? + /// Use Nielsen Configuration (NielsenConfiguration) to set the Nielsen measurement system breakout code. Supported values are 0, 3, 7, and 9. + public let breakoutCode: Int32? + + public init(distributorId: String? = nil, breakoutCode: Int32? = nil) { + self.distributorId = distributorId + self.breakoutCode = breakoutCode + } + + private enum CodingKeys: String, CodingKey { + case distributorId = "distributorId" + case breakoutCode = "breakoutCode" + } + } + + public struct H265Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NumberBFramesBetweenReferenceFrames", location: .body(locationName: "numberBFramesBetweenReferenceFrames"), required: false, type: .integer), + AWSShapeMember(label: "ParControl", location: .body(locationName: "parControl"), required: false, type: .enum), + AWSShapeMember(label: "FlickerAdaptiveQuantization", location: .body(locationName: "flickerAdaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "GopBReference", location: .body(locationName: "gopBReference"), required: false, type: .enum), + AWSShapeMember(label: "FramerateNumerator", location: .body(locationName: "framerateNumerator"), required: false, type: .integer), + AWSShapeMember(label: "Slices", location: .body(locationName: "slices"), required: false, type: .integer), + AWSShapeMember(label: "HrdBufferSize", location: .body(locationName: "hrdBufferSize"), required: false, type: .integer), + AWSShapeMember(label: "SpatialAdaptiveQuantization", location: .body(locationName: "spatialAdaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "ParNumerator", location: .body(locationName: "parNumerator"), required: false, type: .integer), + AWSShapeMember(label: "CodecProfile", location: .body(locationName: "codecProfile"), required: false, type: .enum), + AWSShapeMember(label: "QualityTuningLevel", location: .body(locationName: "qualityTuningLevel"), required: false, type: .enum), + AWSShapeMember(label: "CodecLevel", location: .body(locationName: "codecLevel"), required: false, type: .enum), + AWSShapeMember(label: "MaxBitrate", location: .body(locationName: "maxBitrate"), required: false, type: .integer), + AWSShapeMember(label: "AdaptiveQuantization", location: .body(locationName: "adaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "GopSizeUnits", location: .body(locationName: "gopSizeUnits"), required: false, type: .enum), + AWSShapeMember(label: "SceneChangeDetect", location: .body(locationName: "sceneChangeDetect"), required: false, type: .enum), + AWSShapeMember(label: "SlowPal", location: .body(locationName: "slowPal"), required: false, type: .enum), + AWSShapeMember(label: "TemporalAdaptiveQuantization", location: .body(locationName: "temporalAdaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "NumberReferenceFrames", location: .body(locationName: "numberReferenceFrames"), required: false, type: .integer), + AWSShapeMember(label: "RateControlMode", location: .body(locationName: "rateControlMode"), required: false, type: .enum), + AWSShapeMember(label: "FramerateDenominator", location: .body(locationName: "framerateDenominator"), required: false, type: .integer), + AWSShapeMember(label: "FramerateConversionAlgorithm", location: .body(locationName: "framerateConversionAlgorithm"), required: false, type: .enum), + AWSShapeMember(label: "ParDenominator", location: .body(locationName: "parDenominator"), required: false, type: .integer), + AWSShapeMember(label: "GopClosedCadence", location: .body(locationName: "gopClosedCadence"), required: false, type: .integer), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .integer), + AWSShapeMember(label: "InterlaceMode", location: .body(locationName: "interlaceMode"), required: false, type: .enum), + AWSShapeMember(label: "MinIInterval", location: .body(locationName: "minIInterval"), required: false, type: .integer), + AWSShapeMember(label: "TemporalIds", location: .body(locationName: "temporalIds"), required: false, type: .enum), + AWSShapeMember(label: "SampleAdaptiveOffsetFilterMode", location: .body(locationName: "sampleAdaptiveOffsetFilterMode"), required: false, type: .enum), + AWSShapeMember(label: "HrdBufferInitialFillPercentage", location: .body(locationName: "hrdBufferInitialFillPercentage"), required: false, type: .integer), + AWSShapeMember(label: "AlternateTransferFunctionSei", location: .body(locationName: "alternateTransferFunctionSei"), required: false, type: .enum), + AWSShapeMember(label: "Tiles", location: .body(locationName: "tiles"), required: false, type: .enum), + AWSShapeMember(label: "UnregisteredSeiTimecode", location: .body(locationName: "unregisteredSeiTimecode"), required: false, type: .enum), + AWSShapeMember(label: "GopSize", location: .body(locationName: "gopSize"), required: false, type: .double), + AWSShapeMember(label: "FramerateControl", location: .body(locationName: "framerateControl"), required: false, type: .enum), + AWSShapeMember(label: "Telecine", location: .body(locationName: "telecine"), required: false, type: .enum) + ] + /// Number of B-frames between reference frames. + public let numberBFramesBetweenReferenceFrames: Int32? + public let parControl: H265ParControl? + public let flickerAdaptiveQuantization: H265FlickerAdaptiveQuantization? + public let gopBReference: H265GopBReference? + /// Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps. + public let framerateNumerator: Int32? + /// Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures. + public let slices: Int32? + /// Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. + public let hrdBufferSize: Int32? + public let spatialAdaptiveQuantization: H265SpatialAdaptiveQuantization? + /// Pixel Aspect Ratio numerator. + public let parNumerator: Int32? + public let codecProfile: H265CodecProfile? + public let qualityTuningLevel: H265QualityTuningLevel? + public let codecLevel: H265CodecLevel? + /// Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. + public let maxBitrate: Int32? + public let adaptiveQuantization: H265AdaptiveQuantization? + public let gopSizeUnits: H265GopSizeUnits? + public let sceneChangeDetect: H265SceneChangeDetect? + public let slowPal: H265SlowPal? + public let temporalAdaptiveQuantization: H265TemporalAdaptiveQuantization? + /// Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding. + public let numberReferenceFrames: Int32? + public let rateControlMode: H265RateControlMode? + /// Framerate denominator. + public let framerateDenominator: Int32? + public let framerateConversionAlgorithm: H265FramerateConversionAlgorithm? + /// Pixel Aspect Ratio denominator. + public let parDenominator: Int32? + /// Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting. + public let gopClosedCadence: Int32? + /// Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000. + public let bitrate: Int32? + public let interlaceMode: H265InterlaceMode? + /// Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1 + public let minIInterval: Int32? + public let temporalIds: H265TemporalIds? + public let sampleAdaptiveOffsetFilterMode: H265SampleAdaptiveOffsetFilterMode? + /// Percentage of the buffer that should initially be filled (HRD buffer model). + public let hrdBufferInitialFillPercentage: Int32? + public let alternateTransferFunctionSei: H265AlternateTransferFunctionSei? + public let tiles: H265Tiles? + public let unregisteredSeiTimecode: H265UnregisteredSeiTimecode? + /// GOP Length (keyframe interval) in frames or seconds. Must be greater than zero. + public let gopSize: Double? + public let framerateControl: H265FramerateControl? + public let telecine: H265Telecine? + + public init(numberBFramesBetweenReferenceFrames: Int32? = nil, parControl: H265ParControl? = nil, flickerAdaptiveQuantization: H265FlickerAdaptiveQuantization? = nil, gopBReference: H265GopBReference? = nil, framerateNumerator: Int32? = nil, slices: Int32? = nil, hrdBufferSize: Int32? = nil, spatialAdaptiveQuantization: H265SpatialAdaptiveQuantization? = nil, parNumerator: Int32? = nil, codecProfile: H265CodecProfile? = nil, qualityTuningLevel: H265QualityTuningLevel? = nil, codecLevel: H265CodecLevel? = nil, maxBitrate: Int32? = nil, adaptiveQuantization: H265AdaptiveQuantization? = nil, gopSizeUnits: H265GopSizeUnits? = nil, sceneChangeDetect: H265SceneChangeDetect? = nil, slowPal: H265SlowPal? = nil, temporalAdaptiveQuantization: H265TemporalAdaptiveQuantization? = nil, numberReferenceFrames: Int32? = nil, rateControlMode: H265RateControlMode? = nil, framerateDenominator: Int32? = nil, framerateConversionAlgorithm: H265FramerateConversionAlgorithm? = nil, parDenominator: Int32? = nil, gopClosedCadence: Int32? = nil, bitrate: Int32? = nil, interlaceMode: H265InterlaceMode? = nil, minIInterval: Int32? = nil, temporalIds: H265TemporalIds? = nil, sampleAdaptiveOffsetFilterMode: H265SampleAdaptiveOffsetFilterMode? = nil, hrdBufferInitialFillPercentage: Int32? = nil, alternateTransferFunctionSei: H265AlternateTransferFunctionSei? = nil, tiles: H265Tiles? = nil, unregisteredSeiTimecode: H265UnregisteredSeiTimecode? = nil, gopSize: Double? = nil, framerateControl: H265FramerateControl? = nil, telecine: H265Telecine? = nil) { + self.numberBFramesBetweenReferenceFrames = numberBFramesBetweenReferenceFrames + self.parControl = parControl + self.flickerAdaptiveQuantization = flickerAdaptiveQuantization + self.gopBReference = gopBReference + self.framerateNumerator = framerateNumerator + self.slices = slices + self.hrdBufferSize = hrdBufferSize + self.spatialAdaptiveQuantization = spatialAdaptiveQuantization + self.parNumerator = parNumerator + self.codecProfile = codecProfile + self.qualityTuningLevel = qualityTuningLevel + self.codecLevel = codecLevel + self.maxBitrate = maxBitrate + self.adaptiveQuantization = adaptiveQuantization + self.gopSizeUnits = gopSizeUnits + self.sceneChangeDetect = sceneChangeDetect + self.slowPal = slowPal + self.temporalAdaptiveQuantization = temporalAdaptiveQuantization + self.numberReferenceFrames = numberReferenceFrames + self.rateControlMode = rateControlMode + self.framerateDenominator = framerateDenominator + self.framerateConversionAlgorithm = framerateConversionAlgorithm + self.parDenominator = parDenominator + self.gopClosedCadence = gopClosedCadence + self.bitrate = bitrate + self.interlaceMode = interlaceMode + self.minIInterval = minIInterval + self.temporalIds = temporalIds + self.sampleAdaptiveOffsetFilterMode = sampleAdaptiveOffsetFilterMode + self.hrdBufferInitialFillPercentage = hrdBufferInitialFillPercentage + self.alternateTransferFunctionSei = alternateTransferFunctionSei + self.tiles = tiles + self.unregisteredSeiTimecode = unregisteredSeiTimecode + self.gopSize = gopSize + self.framerateControl = framerateControl + self.telecine = telecine + } + + private enum CodingKeys: String, CodingKey { + case numberBFramesBetweenReferenceFrames = "numberBFramesBetweenReferenceFrames" + case parControl = "parControl" + case flickerAdaptiveQuantization = "flickerAdaptiveQuantization" + case gopBReference = "gopBReference" + case framerateNumerator = "framerateNumerator" + case slices = "slices" + case hrdBufferSize = "hrdBufferSize" + case spatialAdaptiveQuantization = "spatialAdaptiveQuantization" + case parNumerator = "parNumerator" + case codecProfile = "codecProfile" + case qualityTuningLevel = "qualityTuningLevel" + case codecLevel = "codecLevel" + case maxBitrate = "maxBitrate" + case adaptiveQuantization = "adaptiveQuantization" + case gopSizeUnits = "gopSizeUnits" + case sceneChangeDetect = "sceneChangeDetect" + case slowPal = "slowPal" + case temporalAdaptiveQuantization = "temporalAdaptiveQuantization" + case numberReferenceFrames = "numberReferenceFrames" + case rateControlMode = "rateControlMode" + case framerateDenominator = "framerateDenominator" + case framerateConversionAlgorithm = "framerateConversionAlgorithm" + case parDenominator = "parDenominator" + case gopClosedCadence = "gopClosedCadence" + case bitrate = "bitrate" + case interlaceMode = "interlaceMode" + case minIInterval = "minIInterval" + case temporalIds = "temporalIds" + case sampleAdaptiveOffsetFilterMode = "sampleAdaptiveOffsetFilterMode" + case hrdBufferInitialFillPercentage = "hrdBufferInitialFillPercentage" + case alternateTransferFunctionSei = "alternateTransferFunctionSei" + case tiles = "tiles" + case unregisteredSeiTimecode = "unregisteredSeiTimecode" + case gopSize = "gopSize" + case framerateControl = "framerateControl" + case telecine = "telecine" + } + } + + public enum H265AdaptiveQuantization: String, CustomStringConvertible, Codable { + case off = "OFF" + case low = "LOW" + case medium = "MEDIUM" + case high = "HIGH" + case higher = "HIGHER" + case max = "MAX" + public var description: String { return self.rawValue } + } + + public enum BurninSubtitleAlignment: String, CustomStringConvertible, Codable { + case centered = "CENTERED" + case left = "LEFT" + public var description: String { return self.rawValue } + } + + public struct CreateJobTemplateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobTemplate", location: .body(locationName: "jobTemplate"), required: false, type: .structure) + ] + public let jobTemplate: JobTemplate? + + public init(jobTemplate: JobTemplate? = nil) { + self.jobTemplate = jobTemplate + } + + private enum CodingKeys: String, CodingKey { + case jobTemplate = "jobTemplate" + } + } + + public enum HlsTimedMetadataId3Frame: String, CustomStringConvertible, Codable { + case none = "NONE" + case priv = "PRIV" + case tdrl = "TDRL" + public var description: String { return self.rawValue } + } + + public struct CreateQueueResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Queue", location: .body(locationName: "queue"), required: false, type: .structure) + ] + public let queue: Queue? + + public init(queue: Queue? = nil) { + self.queue = queue + } + + private enum CodingKeys: String, CodingKey { + case queue = "queue" + } + } + + public enum AacRateControlMode: String, CustomStringConvertible, Codable { + case cbr = "CBR" + case vbr = "VBR" + public var description: String { return self.rawValue } + } + + public enum M2tsPcrControl: String, CustomStringConvertible, Codable { + case pcrEveryPesPacket = "PCR_EVERY_PES_PACKET" + case configuredPcrPeriod = "CONFIGURED_PCR_PERIOD" + public var description: String { return self.rawValue } + } + + public enum Ac3MetadataControl: String, CustomStringConvertible, Codable { + case followInput = "FOLLOW_INPUT" + case useConfigured = "USE_CONFIGURED" + public var description: String { return self.rawValue } + } + + public enum H265FramerateControl: String, CustomStringConvertible, Codable { + case initializeFromSource = "INITIALIZE_FROM_SOURCE" + case specified = "SPECIFIED" + public var description: String { return self.rawValue } + } + + public enum H265AlternateTransferFunctionSei: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum DeinterlacerMode: String, CustomStringConvertible, Codable { + case deinterlace = "DEINTERLACE" + case inverseTelecine = "INVERSE_TELECINE" + case adaptive = "ADAPTIVE" + public var description: String { return self.rawValue } + } + + public struct DeleteJobTemplateResponse: AWSShape { + + } + + public enum MovClapAtom: String, CustomStringConvertible, Codable { + case include = "INCLUDE" + case exclude = "EXCLUDE" + public var description: String { return self.rawValue } + } + + public struct Queue: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "CreatedAt", location: .body(locationName: "createdAt"), required: false, type: .timestamp), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "LastUpdated", location: .body(locationName: "lastUpdated"), required: false, type: .timestamp), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let status: QueueStatus? + /// The timestamp in epoch seconds for queue creation. + public let createdAt: TimeStamp? + /// An identifier for this resource that is unique within all of AWS. + public let arn: String? + /// A name you create for each queue. Each name must be unique within your account. + public let name: String? + /// The timestamp in epoch seconds when the queue was last updated. + public let lastUpdated: TimeStamp? + /// A queue can be of two types: system or custom. System or built-in queues can’t be modified or deleted by the user. + public let `type`: `Type`? + /// An optional description you create for each queue. + public let description: String? + + public init(status: QueueStatus? = nil, createdAt: TimeStamp? = nil, arn: String? = nil, name: String? = nil, lastUpdated: TimeStamp? = nil, type: `Type`? = nil, description: String? = nil) { + self.status = status + self.createdAt = createdAt + self.arn = arn + self.name = name + self.lastUpdated = lastUpdated + self.`type` = `type` + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case status = "status" + case createdAt = "createdAt" + case arn = "arn" + case name = "name" + case lastUpdated = "lastUpdated" + case `type` = "type" + case description = "description" + } + } + + public enum ProresInterlaceMode: String, CustomStringConvertible, Codable { + case progressive = "PROGRESSIVE" + case topField = "TOP_FIELD" + case bottomField = "BOTTOM_FIELD" + case followTopField = "FOLLOW_TOP_FIELD" + case followBottomField = "FOLLOW_BOTTOM_FIELD" + public var description: String { return self.rawValue } + } + + public struct TeletextDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PageNumber", location: .body(locationName: "pageNumber"), required: false, type: .string) + ] + /// Set pageNumber to the Teletext page number for the destination captions for this output. This value must be a three-digit hexadecimal string; strings ending in -FF are invalid. If you are passing through the entire set of Teletext data, do not use this field. + public let pageNumber: String? + + public init(pageNumber: String? = nil) { + self.pageNumber = pageNumber + } + + private enum CodingKeys: String, CodingKey { + case pageNumber = "pageNumber" + } + } + + public enum HlsIFrameOnlyManifest: String, CustomStringConvertible, Codable { + case include = "INCLUDE" + case exclude = "EXCLUDE" + public var description: String { return self.rawValue } + } + + public struct FileGroupSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destination", location: .body(locationName: "destination"), required: false, type: .string) + ] + /// Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file. + public let destination: String? + + public init(destination: String? = nil) { + self.destination = destination + } + + private enum CodingKeys: String, CodingKey { + case destination = "destination" + } + } + + public struct ListQueuesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Queues", location: .body(locationName: "queues"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + /// List of queues + public let queues: [Queue]? + /// Use this string to request the next batch of queues. + public let nextToken: String? + + public init(queues: [Queue]? = nil, nextToken: String? = nil) { + self.queues = queues + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case queues = "queues" + case nextToken = "nextToken" + } + } + + public struct Id3Insertion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id3", location: .body(locationName: "id3"), required: false, type: .string), + AWSShapeMember(label: "Timecode", location: .body(locationName: "timecode"), required: false, type: .string) + ] + /// Use ID3 tag (Id3) to provide a tag value in base64-encode format. + public let id3: String? + /// Provide a Timecode (TimeCode) in HH:MM:SS:FF or HH:MM:SS;FF format. + public let timecode: String? + + public init(id3: String? = nil, timecode: String? = nil) { + self.id3 = id3 + self.timecode = timecode + } + + private enum CodingKeys: String, CodingKey { + case id3 = "id3" + case timecode = "timecode" + } + } + + public enum MovCslgAtom: String, CustomStringConvertible, Codable { + case include = "INCLUDE" + case exclude = "EXCLUDE" + public var description: String { return self.rawValue } + } + + public enum M2tsEbpAudioInterval: String, CustomStringConvertible, Codable { + case videoAndFixedIntervals = "VIDEO_AND_FIXED_INTERVALS" + case videoInterval = "VIDEO_INTERVAL" + public var description: String { return self.rawValue } + } + + public struct Job: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Timing", location: .body(locationName: "timing"), required: false, type: .structure), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "OutputGroupDetails", location: .body(locationName: "outputGroupDetails"), required: false, type: .list), + AWSShapeMember(label: "Settings", location: .body(locationName: "settings"), required: false, type: .structure), + AWSShapeMember(label: "ErrorMessage", location: .body(locationName: "errorMessage"), required: false, type: .string), + AWSShapeMember(label: "JobTemplate", location: .body(locationName: "jobTemplate"), required: false, type: .string), + AWSShapeMember(label: "ErrorCode", location: .body(locationName: "errorCode"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string), + AWSShapeMember(label: "Status", location: .body(locationName: "status"), required: false, type: .enum), + AWSShapeMember(label: "CreatedAt", location: .body(locationName: "createdAt"), required: false, type: .timestamp), + AWSShapeMember(label: "Role", location: .body(locationName: "role"), required: false, type: .string), + AWSShapeMember(label: "Queue", location: .body(locationName: "queue"), required: false, type: .string), + AWSShapeMember(label: "UserMetadata", location: .body(locationName: "userMetadata"), required: false, type: .map) + ] + public let timing: Timing? + /// An identifier for this resource that is unique within all of AWS. + public let arn: String? + /// List of output group details + public let outputGroupDetails: [OutputGroupDetail]? + public let settings: JobSettings? + /// Error message of Job + public let errorMessage: String? + /// The job template that the job is created from, if it is created from a job template. + public let jobTemplate: String? + /// Error code for the job + public let errorCode: Int32? + /// A portion of the job's ARN, unique within your AWS Elemental MediaConvert resources + public let id: String? + public let status: JobStatus? + /// The time, in Unix epoch format in seconds, when the job got created. + public let createdAt: TimeStamp? + /// The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html + public let role: String? + /// Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html + public let queue: String? + /// User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs. + public let userMetadata: [String: String]? + + public init(timing: Timing? = nil, arn: String? = nil, outputGroupDetails: [OutputGroupDetail]? = nil, settings: JobSettings? = nil, errorMessage: String? = nil, jobTemplate: String? = nil, errorCode: Int32? = nil, id: String? = nil, status: JobStatus? = nil, createdAt: TimeStamp? = nil, role: String? = nil, queue: String? = nil, userMetadata: [String: String]? = nil) { + self.timing = timing + self.arn = arn + self.outputGroupDetails = outputGroupDetails + self.settings = settings + self.errorMessage = errorMessage + self.jobTemplate = jobTemplate + self.errorCode = errorCode + self.id = id + self.status = status + self.createdAt = createdAt + self.role = role + self.queue = queue + self.userMetadata = userMetadata + } + + private enum CodingKeys: String, CodingKey { + case timing = "timing" + case arn = "arn" + case outputGroupDetails = "outputGroupDetails" + case settings = "settings" + case errorMessage = "errorMessage" + case jobTemplate = "jobTemplate" + case errorCode = "errorCode" + case id = "id" + case status = "status" + case createdAt = "createdAt" + case role = "role" + case queue = "queue" + case userMetadata = "userMetadata" + } + } + + public enum Mpeg2CodecProfile: String, CustomStringConvertible, Codable { + case main = "MAIN" + case profile422 = "PROFILE_422" + public var description: String { return self.rawValue } + } + + public struct HlsGroupSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OutputSelection", location: .body(locationName: "outputSelection"), required: false, type: .enum), + AWSShapeMember(label: "Destination", location: .body(locationName: "destination"), required: false, type: .string), + AWSShapeMember(label: "StreamInfResolution", location: .body(locationName: "streamInfResolution"), required: false, type: .enum), + AWSShapeMember(label: "ManifestCompression", location: .body(locationName: "manifestCompression"), required: false, type: .enum), + AWSShapeMember(label: "DirectoryStructure", location: .body(locationName: "directoryStructure"), required: false, type: .enum), + AWSShapeMember(label: "AdMarkers", location: .body(locationName: "adMarkers"), required: false, type: .list), + AWSShapeMember(label: "BaseUrl", location: .body(locationName: "baseUrl"), required: false, type: .string), + AWSShapeMember(label: "ClientCache", location: .body(locationName: "clientCache"), required: false, type: .enum), + AWSShapeMember(label: "SegmentControl", location: .body(locationName: "segmentControl"), required: false, type: .enum), + AWSShapeMember(label: "ProgramDateTimePeriod", location: .body(locationName: "programDateTimePeriod"), required: false, type: .integer), + AWSShapeMember(label: "TimestampDeltaMilliseconds", location: .body(locationName: "timestampDeltaMilliseconds"), required: false, type: .integer), + AWSShapeMember(label: "CaptionLanguageSetting", location: .body(locationName: "captionLanguageSetting"), required: false, type: .enum), + AWSShapeMember(label: "Encryption", location: .body(locationName: "encryption"), required: false, type: .structure), + AWSShapeMember(label: "ManifestDurationFormat", location: .body(locationName: "manifestDurationFormat"), required: false, type: .enum), + AWSShapeMember(label: "CaptionLanguageMappings", location: .body(locationName: "captionLanguageMappings"), required: false, type: .list), + AWSShapeMember(label: "TimedMetadataId3Period", location: .body(locationName: "timedMetadataId3Period"), required: false, type: .integer), + AWSShapeMember(label: "ProgramDateTime", location: .body(locationName: "programDateTime"), required: false, type: .enum), + AWSShapeMember(label: "CodecSpecification", location: .body(locationName: "codecSpecification"), required: false, type: .enum), + AWSShapeMember(label: "SegmentsPerSubdirectory", location: .body(locationName: "segmentsPerSubdirectory"), required: false, type: .integer), + AWSShapeMember(label: "TimedMetadataId3Frame", location: .body(locationName: "timedMetadataId3Frame"), required: false, type: .enum), + AWSShapeMember(label: "MinSegmentLength", location: .body(locationName: "minSegmentLength"), required: false, type: .integer), + AWSShapeMember(label: "SegmentLength", location: .body(locationName: "segmentLength"), required: false, type: .integer) + ] + public let outputSelection: HlsOutputSelection? + /// Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file. + public let destination: String? + public let streamInfResolution: HlsStreamInfResolution? + public let manifestCompression: HlsManifestCompression? + public let directoryStructure: HlsDirectoryStructure? + /// Choose one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs. + public let adMarkers: [HlsAdMarkers]? + /// A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the main .m3u8 file. + public let baseUrl: String? + public let clientCache: HlsClientCache? + public let segmentControl: HlsSegmentControl? + /// Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds. + public let programDateTimePeriod: Int32? + /// Provides an extra millisecond delta offset to fine tune the timestamps. + public let timestampDeltaMilliseconds: Int32? + public let captionLanguageSetting: HlsCaptionLanguageSetting? + /// DRM settings. + public let encryption: HlsEncryptionSettings? + public let manifestDurationFormat: HlsManifestDurationFormat? + /// Language to be used on Caption outputs + public let captionLanguageMappings: [HlsCaptionLanguageMapping]? + /// Timed Metadata interval in seconds. + public let timedMetadataId3Period: Int32? + public let programDateTime: HlsProgramDateTime? + public let codecSpecification: HlsCodecSpecification? + /// Number of segments to write to a subdirectory before starting a new one. directoryStructure must be SINGLE_DIRECTORY for this setting to have an effect. + public let segmentsPerSubdirectory: Int32? + public let timedMetadataId3Frame: HlsTimedMetadataId3Frame? + /// When set, Minimum Segment Size is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed. + public let minSegmentLength: Int32? + /// Length of MPEG-2 Transport Stream segments to create (in seconds). Note that segments will end on the next keyframe after this number of seconds, so actual segment length may be longer. + public let segmentLength: Int32? + + public init(outputSelection: HlsOutputSelection? = nil, destination: String? = nil, streamInfResolution: HlsStreamInfResolution? = nil, manifestCompression: HlsManifestCompression? = nil, directoryStructure: HlsDirectoryStructure? = nil, adMarkers: [HlsAdMarkers]? = nil, baseUrl: String? = nil, clientCache: HlsClientCache? = nil, segmentControl: HlsSegmentControl? = nil, programDateTimePeriod: Int32? = nil, timestampDeltaMilliseconds: Int32? = nil, captionLanguageSetting: HlsCaptionLanguageSetting? = nil, encryption: HlsEncryptionSettings? = nil, manifestDurationFormat: HlsManifestDurationFormat? = nil, captionLanguageMappings: [HlsCaptionLanguageMapping]? = nil, timedMetadataId3Period: Int32? = nil, programDateTime: HlsProgramDateTime? = nil, codecSpecification: HlsCodecSpecification? = nil, segmentsPerSubdirectory: Int32? = nil, timedMetadataId3Frame: HlsTimedMetadataId3Frame? = nil, minSegmentLength: Int32? = nil, segmentLength: Int32? = nil) { + self.outputSelection = outputSelection + self.destination = destination + self.streamInfResolution = streamInfResolution + self.manifestCompression = manifestCompression + self.directoryStructure = directoryStructure + self.adMarkers = adMarkers + self.baseUrl = baseUrl + self.clientCache = clientCache + self.segmentControl = segmentControl + self.programDateTimePeriod = programDateTimePeriod + self.timestampDeltaMilliseconds = timestampDeltaMilliseconds + self.captionLanguageSetting = captionLanguageSetting + self.encryption = encryption + self.manifestDurationFormat = manifestDurationFormat + self.captionLanguageMappings = captionLanguageMappings + self.timedMetadataId3Period = timedMetadataId3Period + self.programDateTime = programDateTime + self.codecSpecification = codecSpecification + self.segmentsPerSubdirectory = segmentsPerSubdirectory + self.timedMetadataId3Frame = timedMetadataId3Frame + self.minSegmentLength = minSegmentLength + self.segmentLength = segmentLength + } + + private enum CodingKeys: String, CodingKey { + case outputSelection = "outputSelection" + case destination = "destination" + case streamInfResolution = "streamInfResolution" + case manifestCompression = "manifestCompression" + case directoryStructure = "directoryStructure" + case adMarkers = "adMarkers" + case baseUrl = "baseUrl" + case clientCache = "clientCache" + case segmentControl = "segmentControl" + case programDateTimePeriod = "programDateTimePeriod" + case timestampDeltaMilliseconds = "timestampDeltaMilliseconds" + case captionLanguageSetting = "captionLanguageSetting" + case encryption = "encryption" + case manifestDurationFormat = "manifestDurationFormat" + case captionLanguageMappings = "captionLanguageMappings" + case timedMetadataId3Period = "timedMetadataId3Period" + case programDateTime = "programDateTime" + case codecSpecification = "codecSpecification" + case segmentsPerSubdirectory = "segmentsPerSubdirectory" + case timedMetadataId3Frame = "timedMetadataId3Frame" + case minSegmentLength = "minSegmentLength" + case segmentLength = "segmentLength" + } + } + + public enum AudioNormalizationAlgorithmControl: String, CustomStringConvertible, Codable { + case correctAudio = "CORRECT_AUDIO" + case measureOnly = "MEASURE_ONLY" + public var description: String { return self.rawValue } + } + + public struct AudioDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AudioNormalizationSettings", location: .body(locationName: "audioNormalizationSettings"), required: false, type: .structure), + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .enum), + AWSShapeMember(label: "LanguageCodeControl", location: .body(locationName: "languageCodeControl"), required: false, type: .enum), + AWSShapeMember(label: "AudioTypeControl", location: .body(locationName: "audioTypeControl"), required: false, type: .enum), + AWSShapeMember(label: "AudioType", location: .body(locationName: "audioType"), required: false, type: .integer), + AWSShapeMember(label: "StreamName", location: .body(locationName: "streamName"), required: false, type: .string), + AWSShapeMember(label: "RemixSettings", location: .body(locationName: "remixSettings"), required: false, type: .structure), + AWSShapeMember(label: "AudioSourceName", location: .body(locationName: "audioSourceName"), required: false, type: .string), + AWSShapeMember(label: "CodecSettings", location: .body(locationName: "codecSettings"), required: false, type: .structure) + ] + /// Settings for Audio Normalization + public let audioNormalizationSettings: AudioNormalizationSettings? + /// Indicates the language of the audio output track. The ISO 639 language specified in the 'Language Code' drop down will be used when 'Follow Input Language Code' is not selected or when 'Follow Input Language Code' is selected but there is no ISO 639 language code specified by the input. + public let languageCode: LanguageCode? + public let languageCodeControl: AudioLanguageCodeControl? + public let audioTypeControl: AudioTypeControl? + /// Applies only if Follow Input Audio Type is unchecked (false). A number between 0 and 255. The following are defined in ISO-IEC 13818-1: 0 = Undefined, 1 = Clean Effects, 2 = Hearing Impaired, 3 = Visually Impaired Commentary, 4-255 = Reserved. + public let audioType: Int32? + /// Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or Director Commentary). Alphanumeric characters, spaces, and underscore are legal. + public let streamName: String? + /// Advanced audio remixing settings. + public let remixSettings: RemixSettings? + /// Specifies which audio data to use from each input. In the simplest case, specify an "Audio Selector":#inputs-audio_selector by name based on its order within each input. For example if you specify "Audio Selector 3", then the third audio selector will be used from each input. If an input does not have an "Audio Selector 3", then the audio selector marked as "default" in that input will be used. If there is no audio selector marked as "default", silence will be inserted for the duration of that input. Alternatively, an "Audio Selector Group":#inputs-audio_selector_group name may be specified, with similar default/silence behavior. If no audio_source_name is specified, then "Audio Selector 1" will be chosen automatically. + public let audioSourceName: String? + public let codecSettings: AudioCodecSettings? + + public init(audioNormalizationSettings: AudioNormalizationSettings? = nil, languageCode: LanguageCode? = nil, languageCodeControl: AudioLanguageCodeControl? = nil, audioTypeControl: AudioTypeControl? = nil, audioType: Int32? = nil, streamName: String? = nil, remixSettings: RemixSettings? = nil, audioSourceName: String? = nil, codecSettings: AudioCodecSettings? = nil) { + self.audioNormalizationSettings = audioNormalizationSettings + self.languageCode = languageCode + self.languageCodeControl = languageCodeControl + self.audioTypeControl = audioTypeControl + self.audioType = audioType + self.streamName = streamName + self.remixSettings = remixSettings + self.audioSourceName = audioSourceName + self.codecSettings = codecSettings + } + + private enum CodingKeys: String, CodingKey { + case audioNormalizationSettings = "audioNormalizationSettings" + case languageCode = "languageCode" + case languageCodeControl = "languageCodeControl" + case audioTypeControl = "audioTypeControl" + case audioType = "audioType" + case streamName = "streamName" + case remixSettings = "remixSettings" + case audioSourceName = "audioSourceName" + case codecSettings = "codecSettings" + } + } + + public enum TimecodeSource: String, CustomStringConvertible, Codable { + case embedded = "EMBEDDED" + case zerobased = "ZEROBASED" + case specifiedstart = "SPECIFIEDSTART" + public var description: String { return self.rawValue } + } + + public struct Timing: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTime", location: .body(locationName: "startTime"), required: false, type: .timestamp), + AWSShapeMember(label: "FinishTime", location: .body(locationName: "finishTime"), required: false, type: .timestamp), + AWSShapeMember(label: "SubmitTime", location: .body(locationName: "submitTime"), required: false, type: .timestamp) + ] + /// The time, in Unix epoch format, that transcoding for the job began. + public let startTime: TimeStamp? + /// The time, in Unix epoch format, that the transcoding job finished + public let finishTime: TimeStamp? + /// The time, in Unix epoch format, that you submitted the job. + public let submitTime: TimeStamp? + + public init(startTime: TimeStamp? = nil, finishTime: TimeStamp? = nil, submitTime: TimeStamp? = nil) { + self.startTime = startTime + self.finishTime = finishTime + self.submitTime = submitTime + } + + private enum CodingKeys: String, CodingKey { + case startTime = "startTime" + case finishTime = "finishTime" + case submitTime = "submitTime" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/medialive/Medialive_API.swift b/Sources/AWSSDKSwift/Services/medialive/Medialive_API.swift new file mode 100644 index 00000000000..6a5b994de8d --- /dev/null +++ b/Sources/AWSSDKSwift/Services/medialive/Medialive_API.swift @@ -0,0 +1,98 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +API for AWS Elemental MediaLive +*/ +public struct Medialive { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "medialive", + serviceProtocol: ServiceProtocol(type: .restjson, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-10-14", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [MedialiveError.self] + ) + } + + /// Produces details about an input + public func describeInput(_ input: DescribeInputRequest) throws -> DescribeInputResponse { + return try client.send(operation: "DescribeInput", path: "/prod/inputs/{inputId}", httpMethod: "GET", input: input) + } + + /// Starts deletion of channel. The associated outputs are also deleted. + public func deleteChannel(_ input: DeleteChannelRequest) throws -> DeleteChannelResponse { + return try client.send(operation: "DeleteChannel", path: "/prod/channels/{channelId}", httpMethod: "DELETE", input: input) + } + + /// Creates a Input Security Group + public func createInputSecurityGroup(_ input: CreateInputSecurityGroupRequest) throws -> CreateInputSecurityGroupResponse { + return try client.send(operation: "CreateInputSecurityGroup", path: "/prod/inputSecurityGroups", httpMethod: "POST", input: input) + } + + /// Produces list of channels that have been created + public func listChannels(_ input: ListChannelsRequest) throws -> ListChannelsResponse { + return try client.send(operation: "ListChannels", path: "/prod/channels", httpMethod: "GET", input: input) + } + + /// Produces a list of Input Security Groups for an account + public func listInputSecurityGroups(_ input: ListInputSecurityGroupsRequest) throws -> ListInputSecurityGroupsResponse { + return try client.send(operation: "ListInputSecurityGroups", path: "/prod/inputSecurityGroups", httpMethod: "GET", input: input) + } + + /// Deletes the input end point + public func deleteInput(_ input: DeleteInputRequest) throws -> DeleteInputResponse { + return try client.send(operation: "DeleteInput", path: "/prod/inputs/{inputId}", httpMethod: "DELETE", input: input) + } + + /// Deletes an Input Security Group + public func deleteInputSecurityGroup(_ input: DeleteInputSecurityGroupRequest) throws -> DeleteInputSecurityGroupResponse { + return try client.send(operation: "DeleteInputSecurityGroup", path: "/prod/inputSecurityGroups/{inputSecurityGroupId}", httpMethod: "DELETE", input: input) + } + + /// Create an input + public func createInput(_ input: CreateInputRequest) throws -> CreateInputResponse { + return try client.send(operation: "CreateInput", path: "/prod/inputs", httpMethod: "POST", input: input) + } + + /// Gets details about a channel + public func describeChannel(_ input: DescribeChannelRequest) throws -> DescribeChannelResponse { + return try client.send(operation: "DescribeChannel", path: "/prod/channels/{channelId}", httpMethod: "GET", input: input) + } + + /// Starts an existing channel + public func startChannel(_ input: StartChannelRequest) throws -> StartChannelResponse { + return try client.send(operation: "StartChannel", path: "/prod/channels/{channelId}/start", httpMethod: "POST", input: input) + } + + /// Stops a running channel + public func stopChannel(_ input: StopChannelRequest) throws -> StopChannelResponse { + return try client.send(operation: "StopChannel", path: "/prod/channels/{channelId}/stop", httpMethod: "POST", input: input) + } + + /// Creates a new channel + public func createChannel(_ input: CreateChannelRequest) throws -> CreateChannelResponse { + return try client.send(operation: "CreateChannel", path: "/prod/channels", httpMethod: "POST", input: input) + } + + /// Produces a summary of an Input Security Group + public func describeInputSecurityGroup(_ input: DescribeInputSecurityGroupRequest) throws -> DescribeInputSecurityGroupResponse { + return try client.send(operation: "DescribeInputSecurityGroup", path: "/prod/inputSecurityGroups/{inputSecurityGroupId}", httpMethod: "GET", input: input) + } + + /// Produces list of inputs that have been created + public func listInputs(_ input: ListInputsRequest) throws -> ListInputsResponse { + return try client.send(operation: "ListInputs", path: "/prod/inputs", httpMethod: "GET", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/medialive/Medialive_Error.swift b/Sources/AWSSDKSwift/Services/medialive/Medialive_Error.swift new file mode 100644 index 00000000000..65a25d82e15 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/medialive/Medialive_Error.swift @@ -0,0 +1,47 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Medialive +public enum MedialiveError: AWSErrorType { + case badRequestException(message: String?) + case internalServerErrorException(message: String?) + case forbiddenException(message: String?) + case badGatewayException(message: String?) + case notFoundException(message: String?) + case gatewayTimeoutException(message: String?) + case tooManyRequestsException(message: String?) + case conflictException(message: String?) + case unprocessableEntityException(message: String?) +} + +extension MedialiveError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "BadRequestException": + self = .badRequestException(message: message) + case "InternalServerErrorException": + self = .internalServerErrorException(message: message) + case "ForbiddenException": + self = .forbiddenException(message: message) + case "BadGatewayException": + self = .badGatewayException(message: message) + case "NotFoundException": + self = .notFoundException(message: message) + case "GatewayTimeoutException": + self = .gatewayTimeoutException(message: message) + case "TooManyRequestsException": + self = .tooManyRequestsException(message: message) + case "ConflictException": + self = .conflictException(message: message) + case "UnprocessableEntityException": + self = .unprocessableEntityException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/medialive/Medialive_Shapes.swift b/Sources/AWSSDKSwift/Services/medialive/Medialive_Shapes.swift new file mode 100644 index 00000000000..ff14572922b --- /dev/null +++ b/Sources/AWSSDKSwift/Services/medialive/Medialive_Shapes.swift @@ -0,0 +1,5537 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Medialive { + + public struct HlsInputSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Bandwidth", location: .body(locationName: "bandwidth"), required: false, type: .integer), + AWSShapeMember(label: "RetryInterval", location: .body(locationName: "retryInterval"), required: false, type: .integer), + AWSShapeMember(label: "Retries", location: .body(locationName: "retries"), required: false, type: .integer), + AWSShapeMember(label: "BufferSegments", location: .body(locationName: "bufferSegments"), required: false, type: .integer) + ] + /// When specified the HLS stream with the m3u8 BANDWIDTH that most closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest. + public let bandwidth: Int32? + /// The number of seconds between retries when an attempt to read a manifest or segment fails. + public let retryInterval: Int32? + /// The number of consecutive times that attempts to read a manifest or segment must fail before the input is considered unavailable. + public let retries: Int32? + /// When specified, reading of the HLS input will begin this many buffer segments from the end (most recently written segment). When not specified, the HLS input will begin with the first segment specified in the m3u8. + public let bufferSegments: Int32? + + public init(bandwidth: Int32? = nil, retryInterval: Int32? = nil, retries: Int32? = nil, bufferSegments: Int32? = nil) { + self.bandwidth = bandwidth + self.retryInterval = retryInterval + self.retries = retries + self.bufferSegments = bufferSegments + } + + private enum CodingKeys: String, CodingKey { + case bandwidth = "bandwidth" + case retryInterval = "retryInterval" + case retries = "retries" + case bufferSegments = "bufferSegments" + } + } + + public enum HlsWebdavHttpTransferMode: String, CustomStringConvertible, Codable { + case chunked = "CHUNKED" + case nonChunked = "NON_CHUNKED" + public var description: String { return self.rawValue } + } + + public struct InternalServiceError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + public let message: String? + + public init(message: String? = nil) { + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + } + } + + public enum H264GopSizeUnits: String, CustomStringConvertible, Codable { + case frames = "FRAMES" + case seconds = "SECONDS" + public var description: String { return self.rawValue } + } + + public struct InputLocation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Uri", location: .body(locationName: "uri"), required: false, type: .string), + AWSShapeMember(label: "PasswordParam", location: .body(locationName: "passwordParam"), required: false, type: .string), + AWSShapeMember(label: "Username", location: .body(locationName: "username"), required: false, type: .string) + ] + /// Uniform Resource Identifier - This should be a path to a file accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a rtmpEndpoint should have a uri simliar to: "rtmp://fmsserver/live". + public let uri: String? + /// key used to extract the password from EC2 Parameter store + public let passwordParam: String? + /// Username if credentials are required to access a file or publishing point. This can be either a plaintext username, or a reference to an AWS parameter store name from which the username can be retrieved. AWS Parameter store format: "ssm://" + public let username: String? + + public init(uri: String? = nil, passwordParam: String? = nil, username: String? = nil) { + self.uri = uri + self.passwordParam = passwordParam + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case uri = "uri" + case passwordParam = "passwordParam" + case username = "username" + } + } + + public struct InputSource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PasswordParam", location: .body(locationName: "passwordParam"), required: false, type: .string), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), + AWSShapeMember(label: "Username", location: .body(locationName: "username"), required: false, type: .string) + ] + /// key used to extract the password from EC2 Parameter store + public let passwordParam: String? + /// This represents the customer's source URL where stream is + /// pulled from. + public let url: String? + /// username for input source + public let username: String? + + public init(passwordParam: String? = nil, url: String? = nil, username: String? = nil) { + self.passwordParam = passwordParam + self.url = url + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case passwordParam = "passwordParam" + case url = "url" + case username = "username" + } + } + + public enum AudioNormalizationAlgorithm: String, CustomStringConvertible, Codable { + case itu17701 = "ITU_1770_1" + case itu17702 = "ITU_1770_2" + public var description: String { return self.rawValue } + } + + public enum Ac3BitstreamMode: String, CustomStringConvertible, Codable { + case commentary = "COMMENTARY" + case completeMain = "COMPLETE_MAIN" + case dialogue = "DIALOGUE" + case emergency = "EMERGENCY" + case hearingImpaired = "HEARING_IMPAIRED" + case musicAndEffects = "MUSIC_AND_EFFECTS" + case visuallyImpaired = "VISUALLY_IMPAIRED" + case voiceOver = "VOICE_OVER" + public var description: String { return self.rawValue } + } + + public struct RemixSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChannelsOut", location: .body(locationName: "channelsOut"), required: false, type: .integer), + AWSShapeMember(label: "ChannelMappings", location: .body(locationName: "channelMappings"), required: false, type: .list), + AWSShapeMember(label: "ChannelsIn", location: .body(locationName: "channelsIn"), required: false, type: .integer) + ] + /// Number of output channels to be produced. + /// Valid values: 1, 2, 4, 6, 8 + public let channelsOut: Int32? + /// Mapping of input channels to output channels, with appropriate gain adjustments. + public let channelMappings: [AudioChannelMapping]? + /// Number of input channels to be used. + public let channelsIn: Int32? + + public init(channelsOut: Int32? = nil, channelMappings: [AudioChannelMapping]? = nil, channelsIn: Int32? = nil) { + self.channelsOut = channelsOut + self.channelMappings = channelMappings + self.channelsIn = channelsIn + } + + private enum CodingKeys: String, CodingKey { + case channelsOut = "channelsOut" + case channelMappings = "channelMappings" + case channelsIn = "channelsIn" + } + } + + public struct HlsAkamaiSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConnectionRetryInterval", location: .body(locationName: "connectionRetryInterval"), required: false, type: .integer), + AWSShapeMember(label: "Token", location: .body(locationName: "token"), required: false, type: .string), + AWSShapeMember(label: "HttpTransferMode", location: .body(locationName: "httpTransferMode"), required: false, type: .enum), + AWSShapeMember(label: "RestartDelay", location: .body(locationName: "restartDelay"), required: false, type: .integer), + AWSShapeMember(label: "FilecacheDuration", location: .body(locationName: "filecacheDuration"), required: false, type: .integer), + AWSShapeMember(label: "Salt", location: .body(locationName: "salt"), required: false, type: .string), + AWSShapeMember(label: "NumRetries", location: .body(locationName: "numRetries"), required: false, type: .integer) + ] + /// Number of seconds to wait before retrying connection to the CDN if the connection is lost. + public let connectionRetryInterval: Int32? + /// Token parameter for authenticated akamai. If not specified, _gda_ is used. + public let token: String? + /// Specify whether or not to use chunked transfer encoding to Akamai. User should contact Akamai to enable this feature. + public let httpTransferMode: HlsAkamaiHttpTransferMode? + /// If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart. + public let restartDelay: Int32? + /// Size in seconds of file cache for streaming outputs. + public let filecacheDuration: Int32? + /// Salt for authenticated Akamai. + public let salt: String? + /// Number of retry attempts that will be made before the Live Event is put into an error state. + public let numRetries: Int32? + + public init(connectionRetryInterval: Int32? = nil, token: String? = nil, httpTransferMode: HlsAkamaiHttpTransferMode? = nil, restartDelay: Int32? = nil, filecacheDuration: Int32? = nil, salt: String? = nil, numRetries: Int32? = nil) { + self.connectionRetryInterval = connectionRetryInterval + self.token = token + self.httpTransferMode = httpTransferMode + self.restartDelay = restartDelay + self.filecacheDuration = filecacheDuration + self.salt = salt + self.numRetries = numRetries + } + + private enum CodingKeys: String, CodingKey { + case connectionRetryInterval = "connectionRetryInterval" + case token = "token" + case httpTransferMode = "httpTransferMode" + case restartDelay = "restartDelay" + case filecacheDuration = "filecacheDuration" + case salt = "salt" + case numRetries = "numRetries" + } + } + + public struct CreateInputResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Input", location: .body(locationName: "input"), required: false, type: .structure) + ] + public let input: Input? + + public init(input: Input? = nil) { + self.input = input + } + + private enum CodingKeys: String, CodingKey { + case input = "input" + } + } + + public enum M2tsAudioStreamType: String, CustomStringConvertible, Codable { + case atsc = "ATSC" + case dvb = "DVB" + public var description: String { return self.rawValue } + } + + public enum Scte20Convert608To708: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case upconvert = "UPCONVERT" + public var description: String { return self.rawValue } + } + + public struct CreateInputRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "InputSecurityGroups", location: .body(locationName: "inputSecurityGroups"), required: false, type: .list), + AWSShapeMember(label: "Sources", location: .body(locationName: "sources"), required: false, type: .list), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "RequestId", location: .body(locationName: "requestId"), required: false, type: .string) + ] + public let destinations: [InputDestinationRequest]? + public let inputSecurityGroups: [String]? + public let sources: [InputSourceRequest]? + public let name: String? + public let `type`: InputType? + public let requestId: String? + + public init(destinations: [InputDestinationRequest]? = nil, inputSecurityGroups: [String]? = nil, sources: [InputSourceRequest]? = nil, name: String? = nil, type: InputType? = nil, requestId: String? = nil) { + self.destinations = destinations + self.inputSecurityGroups = inputSecurityGroups + self.sources = sources + self.name = name + self.`type` = `type` + self.requestId = requestId + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case inputSecurityGroups = "inputSecurityGroups" + case sources = "sources" + case name = "name" + case `type` = "type" + case requestId = "requestId" + } + } + + public struct ListChannelsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Channels", location: .body(locationName: "channels"), required: false, type: .list) + ] + public let nextToken: String? + public let channels: [ChannelSummary]? + + public init(nextToken: String? = nil, channels: [ChannelSummary]? = nil) { + self.nextToken = nextToken + self.channels = channels + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case channels = "channels" + } + } + + public struct TtmlDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StyleControl", location: .body(locationName: "styleControl"), required: false, type: .enum) + ] + /// When set to passthrough, passes through style and position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML output. + public let styleControl: TtmlDestinationStyleControl? + + public init(styleControl: TtmlDestinationStyleControl? = nil) { + self.styleControl = styleControl + } + + private enum CodingKeys: String, CodingKey { + case styleControl = "styleControl" + } + } + + public struct DeleteInputResponse: AWSShape { + + } + + public enum H264SceneChangeDetect: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum Scte35AposNoRegionalBlackoutBehavior: String, CustomStringConvertible, Codable { + case follow = "FOLLOW" + case ignore = "IGNORE" + public var description: String { return self.rawValue } + } + + public enum Scte35SpliceInsertWebDeliveryAllowedBehavior: String, CustomStringConvertible, Codable { + case follow = "FOLLOW" + case ignore = "IGNORE" + public var description: String { return self.rawValue } + } + + public struct ResourceNotFound: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + public let message: String? + + public init(message: String? = nil) { + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + } + } + + public struct Eac3Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LtRtCenterMixLevel", location: .body(locationName: "ltRtCenterMixLevel"), required: false, type: .double), + AWSShapeMember(label: "LfeControl", location: .body(locationName: "lfeControl"), required: false, type: .enum), + AWSShapeMember(label: "Dialnorm", location: .body(locationName: "dialnorm"), required: false, type: .integer), + AWSShapeMember(label: "DcFilter", location: .body(locationName: "dcFilter"), required: false, type: .enum), + AWSShapeMember(label: "LtRtSurroundMixLevel", location: .body(locationName: "ltRtSurroundMixLevel"), required: false, type: .double), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .double), + AWSShapeMember(label: "SurroundExMode", location: .body(locationName: "surroundExMode"), required: false, type: .enum), + AWSShapeMember(label: "MetadataControl", location: .body(locationName: "metadataControl"), required: false, type: .enum), + AWSShapeMember(label: "DrcRf", location: .body(locationName: "drcRf"), required: false, type: .enum), + AWSShapeMember(label: "SurroundMode", location: .body(locationName: "surroundMode"), required: false, type: .enum), + AWSShapeMember(label: "CodingMode", location: .body(locationName: "codingMode"), required: false, type: .enum), + AWSShapeMember(label: "LfeFilter", location: .body(locationName: "lfeFilter"), required: false, type: .enum), + AWSShapeMember(label: "DrcLine", location: .body(locationName: "drcLine"), required: false, type: .enum), + AWSShapeMember(label: "BitstreamMode", location: .body(locationName: "bitstreamMode"), required: false, type: .enum), + AWSShapeMember(label: "PassthroughControl", location: .body(locationName: "passthroughControl"), required: false, type: .enum), + AWSShapeMember(label: "LoRoSurroundMixLevel", location: .body(locationName: "loRoSurroundMixLevel"), required: false, type: .double), + AWSShapeMember(label: "LoRoCenterMixLevel", location: .body(locationName: "loRoCenterMixLevel"), required: false, type: .double), + AWSShapeMember(label: "PhaseControl", location: .body(locationName: "phaseControl"), required: false, type: .enum), + AWSShapeMember(label: "AttenuationControl", location: .body(locationName: "attenuationControl"), required: false, type: .enum), + AWSShapeMember(label: "StereoDownmix", location: .body(locationName: "stereoDownmix"), required: false, type: .enum) + ] + /// Left total/Right total center mix level. Only used for 3/2 coding mode. + public let ltRtCenterMixLevel: Double? + /// When encoding 3/2 audio, setting to lfe enables the LFE channel + public let lfeControl: Eac3LfeControl? + /// Sets the dialnorm for the output. If blank and input audio is Dolby Digital Plus, dialnorm will be passed through. + public let dialnorm: Int32? + /// When set to enabled, activates a DC highpass filter for all input channels. + public let dcFilter: Eac3DcFilter? + /// Left total/Right total surround mix level. Only used for 3/2 coding mode. + public let ltRtSurroundMixLevel: Double? + /// Average bitrate in bits/second. Valid bitrates depend on the coding mode. + public let bitrate: Double? + /// When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels. + public let surroundExMode: Eac3SurroundExMode? + /// When set to followInput, encoder metadata will be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied from one of these streams, then the static metadata settings will be used. + public let metadataControl: Eac3MetadataControl? + /// Sets the profile for heavy Dolby dynamic range compression, ensures that the instantaneous signal peaks do not exceed specified levels. + public let drcRf: Eac3DrcRf? + /// When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the two channels. + public let surroundMode: Eac3SurroundMode? + /// Dolby Digital Plus coding mode. Determines number of channels. + public let codingMode: Eac3CodingMode? + /// When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with codingMode32 coding mode. + public let lfeFilter: Eac3LfeFilter? + /// Sets the Dolby dynamic range compression profile. + public let drcLine: Eac3DrcLine? + /// Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values. + public let bitstreamMode: Eac3BitstreamMode? + /// When set to whenPossible, input DD+ audio will be passed through if it is present on the input. This detection is dynamic over the life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the system alternates between passthrough and encoding. + public let passthroughControl: Eac3PassthroughControl? + /// Left only/Right only surround mix level. Only used for 3/2 coding mode. + public let loRoSurroundMixLevel: Double? + /// Left only/Right only center mix level. Only used for 3/2 coding mode. + public let loRoCenterMixLevel: Double? + /// When set to shift90Degrees, applies a 90-degree phase shift to the surround channels. Only used for 3/2 coding mode. + public let phaseControl: Eac3PhaseControl? + /// When set to attenuate3Db, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode. + public let attenuationControl: Eac3AttenuationControl? + /// Stereo downmix preference. Only used for 3/2 coding mode. + public let stereoDownmix: Eac3StereoDownmix? + + public init(ltRtCenterMixLevel: Double? = nil, lfeControl: Eac3LfeControl? = nil, dialnorm: Int32? = nil, dcFilter: Eac3DcFilter? = nil, ltRtSurroundMixLevel: Double? = nil, bitrate: Double? = nil, surroundExMode: Eac3SurroundExMode? = nil, metadataControl: Eac3MetadataControl? = nil, drcRf: Eac3DrcRf? = nil, surroundMode: Eac3SurroundMode? = nil, codingMode: Eac3CodingMode? = nil, lfeFilter: Eac3LfeFilter? = nil, drcLine: Eac3DrcLine? = nil, bitstreamMode: Eac3BitstreamMode? = nil, passthroughControl: Eac3PassthroughControl? = nil, loRoSurroundMixLevel: Double? = nil, loRoCenterMixLevel: Double? = nil, phaseControl: Eac3PhaseControl? = nil, attenuationControl: Eac3AttenuationControl? = nil, stereoDownmix: Eac3StereoDownmix? = nil) { + self.ltRtCenterMixLevel = ltRtCenterMixLevel + self.lfeControl = lfeControl + self.dialnorm = dialnorm + self.dcFilter = dcFilter + self.ltRtSurroundMixLevel = ltRtSurroundMixLevel + self.bitrate = bitrate + self.surroundExMode = surroundExMode + self.metadataControl = metadataControl + self.drcRf = drcRf + self.surroundMode = surroundMode + self.codingMode = codingMode + self.lfeFilter = lfeFilter + self.drcLine = drcLine + self.bitstreamMode = bitstreamMode + self.passthroughControl = passthroughControl + self.loRoSurroundMixLevel = loRoSurroundMixLevel + self.loRoCenterMixLevel = loRoCenterMixLevel + self.phaseControl = phaseControl + self.attenuationControl = attenuationControl + self.stereoDownmix = stereoDownmix + } + + private enum CodingKeys: String, CodingKey { + case ltRtCenterMixLevel = "ltRtCenterMixLevel" + case lfeControl = "lfeControl" + case dialnorm = "dialnorm" + case dcFilter = "dcFilter" + case ltRtSurroundMixLevel = "ltRtSurroundMixLevel" + case bitrate = "bitrate" + case surroundExMode = "surroundExMode" + case metadataControl = "metadataControl" + case drcRf = "drcRf" + case surroundMode = "surroundMode" + case codingMode = "codingMode" + case lfeFilter = "lfeFilter" + case drcLine = "drcLine" + case bitstreamMode = "bitstreamMode" + case passthroughControl = "passthroughControl" + case loRoSurroundMixLevel = "loRoSurroundMixLevel" + case loRoCenterMixLevel = "loRoCenterMixLevel" + case phaseControl = "phaseControl" + case attenuationControl = "attenuationControl" + case stereoDownmix = "stereoDownmix" + } + } + + public struct OutputGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Outputs", location: .body(locationName: "outputs"), required: false, type: .list), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "OutputGroupSettings", location: .body(locationName: "outputGroupSettings"), required: false, type: .structure) + ] + public let outputs: [Output]? + /// Custom output group name optionally defined by the user. Only letters, numbers, and the underscore character allowed; only 32 characters allowed. + public let name: String? + /// Settings associated with the output group. + public let outputGroupSettings: OutputGroupSettings? + + public init(outputs: [Output]? = nil, name: String? = nil, outputGroupSettings: OutputGroupSettings? = nil) { + self.outputs = outputs + self.name = name + self.outputGroupSettings = outputGroupSettings + } + + private enum CodingKeys: String, CodingKey { + case outputs = "outputs" + case name = "name" + case outputGroupSettings = "outputGroupSettings" + } + } + + public struct CreateInputSecurityGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SecurityGroup", location: .body(locationName: "securityGroup"), required: false, type: .structure) + ] + public let securityGroup: InputSecurityGroup? + + public init(securityGroup: InputSecurityGroup? = nil) { + self.securityGroup = securityGroup + } + + private enum CodingKeys: String, CodingKey { + case securityGroup = "securityGroup" + } + } + + public enum AudioDescriptionAudioTypeControl: String, CustomStringConvertible, Codable { + case followInput = "FOLLOW_INPUT" + case useConfigured = "USE_CONFIGURED" + public var description: String { return self.rawValue } + } + + public enum Ac3LfeFilter: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum BurnInAlignment: String, CustomStringConvertible, Codable { + case centered = "CENTERED" + case left = "LEFT" + case smart = "SMART" + public var description: String { return self.rawValue } + } + + public struct GlobalConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputEndAction", location: .body(locationName: "inputEndAction"), required: false, type: .enum), + AWSShapeMember(label: "InputLossBehavior", location: .body(locationName: "inputLossBehavior"), required: false, type: .structure), + AWSShapeMember(label: "SupportLowFramerateInputs", location: .body(locationName: "supportLowFramerateInputs"), required: false, type: .enum), + AWSShapeMember(label: "OutputTimingSource", location: .body(locationName: "outputTimingSource"), required: false, type: .enum), + AWSShapeMember(label: "InitialAudioGain", location: .body(locationName: "initialAudioGain"), required: false, type: .integer) + ] + /// Indicates the action to take when an input completes (e.g. end-of-file.) Options include immediately switching to the next sequential input (via "switchInput"), switching to the next input and looping back to the first input when last input ends (via "switchAndLoopInputs") or not switching inputs and instead transcoding black / color / slate images per the "Input Loss Behavior" configuration until an activateInput REST command is received (via "none"). + public let inputEndAction: GlobalConfigurationInputEndAction? + /// Settings for system actions when input is lost. + public let inputLossBehavior: InputLossBehavior? + /// Adjusts video input buffer for streams with very low video framerates. This is commonly set to enabled for music channels with less than one video frame per second. + public let supportLowFramerateInputs: GlobalConfigurationLowFramerateInputs? + /// Indicates whether the rate of frames emitted by the Live encoder should be paced by its system clock (which optionally may be locked to another source via NTP) or should be locked to the clock of the source that is providing the input stream. + public let outputTimingSource: GlobalConfigurationOutputTimingSource? + /// Value to set the initial audio gain for the Live Event. + public let initialAudioGain: Int32? + + public init(inputEndAction: GlobalConfigurationInputEndAction? = nil, inputLossBehavior: InputLossBehavior? = nil, supportLowFramerateInputs: GlobalConfigurationLowFramerateInputs? = nil, outputTimingSource: GlobalConfigurationOutputTimingSource? = nil, initialAudioGain: Int32? = nil) { + self.inputEndAction = inputEndAction + self.inputLossBehavior = inputLossBehavior + self.supportLowFramerateInputs = supportLowFramerateInputs + self.outputTimingSource = outputTimingSource + self.initialAudioGain = initialAudioGain + } + + private enum CodingKeys: String, CodingKey { + case inputEndAction = "inputEndAction" + case inputLossBehavior = "inputLossBehavior" + case supportLowFramerateInputs = "supportLowFramerateInputs" + case outputTimingSource = "outputTimingSource" + case initialAudioGain = "initialAudioGain" + } + } + + public struct AribSourceSettings: AWSShape { + + } + + public enum Ac3CodingMode: String, CustomStringConvertible, Codable { + case codingMode10 = "CODING_MODE_1_0" + case codingMode11 = "CODING_MODE_1_1" + case codingMode20 = "CODING_MODE_2_0" + case codingMode32Lfe = "CODING_MODE_3_2_LFE" + public var description: String { return self.rawValue } + } + + public enum EmbeddedScte20Detection: String, CustomStringConvertible, Codable { + case auto = "AUTO" + case off = "OFF" + public var description: String { return self.rawValue } + } + + public enum Eac3SurroundExMode: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + case notIndicated = "NOT_INDICATED" + public var description: String { return self.rawValue } + } + + public struct Scte27DestinationSettings: AWSShape { + + } + + public struct AudioPidSelection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Pid", location: .body(locationName: "pid"), required: false, type: .integer) + ] + /// Selects a specific PID from within a source. + public let pid: Int32? + + public init(pid: Int32? = nil) { + self.pid = pid + } + + private enum CodingKeys: String, CodingKey { + case pid = "pid" + } + } + + public enum InputFilter: String, CustomStringConvertible, Codable { + case auto = "AUTO" + case disabled = "DISABLED" + case forced = "FORCED" + public var description: String { return self.rawValue } + } + + public enum InputLossActionForUdpOut: String, CustomStringConvertible, Codable { + case dropProgram = "DROP_PROGRAM" + case dropTs = "DROP_TS" + case emitProgram = "EMIT_PROGRAM" + public var description: String { return self.rawValue } + } + + public enum Eac3SurroundMode: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + case notIndicated = "NOT_INDICATED" + public var description: String { return self.rawValue } + } + + public enum M2tsKlv: String, CustomStringConvertible, Codable { + case none = "NONE" + case passthrough = "PASSTHROUGH" + public var description: String { return self.rawValue } + } + + public enum SmoothGroupSparseTrackType: String, CustomStringConvertible, Codable { + case none = "NONE" + case scte35 = "SCTE_35" + public var description: String { return self.rawValue } + } + + public struct Scte20SourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Source608ChannelNumber", location: .body(locationName: "source608ChannelNumber"), required: false, type: .integer), + AWSShapeMember(label: "Convert608To708", location: .body(locationName: "convert608To708"), required: false, type: .enum) + ] + /// Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough. + public let source608ChannelNumber: Int32? + /// If upconvert, 608 data is both passed through via the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present in the source content will be discarded. + public let convert608To708: Scte20Convert608To708? + + public init(source608ChannelNumber: Int32? = nil, convert608To708: Scte20Convert608To708? = nil) { + self.source608ChannelNumber = source608ChannelNumber + self.convert608To708 = convert608To708 + } + + private enum CodingKeys: String, CodingKey { + case source608ChannelNumber = "source608ChannelNumber" + case convert608To708 = "convert608To708" + } + } + + public struct InputChannelLevel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputChannel", location: .body(locationName: "inputChannel"), required: false, type: .integer), + AWSShapeMember(label: "Gain", location: .body(locationName: "gain"), required: false, type: .integer) + ] + /// The index of the input channel used as a source. + public let inputChannel: Int32? + /// Remixing value. Units are in dB and acceptable values are within the range from -60 (mute) and 6 dB. + public let gain: Int32? + + public init(inputChannel: Int32? = nil, gain: Int32? = nil) { + self.inputChannel = inputChannel + self.gain = gain + } + + private enum CodingKeys: String, CodingKey { + case inputChannel = "inputChannel" + case gain = "gain" + } + } + + public struct VideoSelector: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ColorSpace", location: .body(locationName: "colorSpace"), required: false, type: .enum), + AWSShapeMember(label: "ColorSpaceUsage", location: .body(locationName: "colorSpaceUsage"), required: false, type: .enum), + AWSShapeMember(label: "SelectorSettings", location: .body(locationName: "selectorSettings"), required: false, type: .structure) + ] + /// Specifies the colorspace of an input. This setting works in tandem with colorSpaceConversion to determine if any conversion will be performed. + public let colorSpace: VideoSelectorColorSpace? + /// Applies only if colorSpace is a value other than follow. This field controls how the value in the colorSpace field will be used. fallback means that when the input does include color space data, that data will be used, but when the input has no color space data, the value in colorSpace will be used. Choose fallback if your input is sometimes missing color space data, but when it does have color space data, that data is correct. force means to always use the value in colorSpace. Choose force if your input usually has no color space data or might have unreliable color space data. + public let colorSpaceUsage: VideoSelectorColorSpaceUsage? + /// The video selector settings. + public let selectorSettings: VideoSelectorSettings? + + public init(colorSpace: VideoSelectorColorSpace? = nil, colorSpaceUsage: VideoSelectorColorSpaceUsage? = nil, selectorSettings: VideoSelectorSettings? = nil) { + self.colorSpace = colorSpace + self.colorSpaceUsage = colorSpaceUsage + self.selectorSettings = selectorSettings + } + + private enum CodingKeys: String, CodingKey { + case colorSpace = "colorSpace" + case colorSpaceUsage = "colorSpaceUsage" + case selectorSettings = "selectorSettings" + } + } + + public enum ChannelState: String, CustomStringConvertible, Codable { + case creating = "CREATING" + case createFailed = "CREATE_FAILED" + case idle = "IDLE" + case starting = "STARTING" + case running = "RUNNING" + case recovering = "RECOVERING" + case stopping = "STOPPING" + case deleting = "DELETING" + case deleted = "DELETED" + public var description: String { return self.rawValue } + } + + public struct DvbSubSourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Pid", location: .body(locationName: "pid"), required: false, type: .integer) + ] + /// When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through, regardless of selectors. + public let pid: Int32? + + public init(pid: Int32? = nil) { + self.pid = pid + } + + private enum CodingKeys: String, CodingKey { + case pid = "pid" + } + } + + public enum Eac3DrcRf: String, CustomStringConvertible, Codable { + case filmLight = "FILM_LIGHT" + case filmStandard = "FILM_STANDARD" + case musicLight = "MUSIC_LIGHT" + case musicStandard = "MUSIC_STANDARD" + case none = "NONE" + case speech = "SPEECH" + public var description: String { return self.rawValue } + } + + public struct HlsBasicPutSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConnectionRetryInterval", location: .body(locationName: "connectionRetryInterval"), required: false, type: .integer), + AWSShapeMember(label: "FilecacheDuration", location: .body(locationName: "filecacheDuration"), required: false, type: .integer), + AWSShapeMember(label: "NumRetries", location: .body(locationName: "numRetries"), required: false, type: .integer), + AWSShapeMember(label: "RestartDelay", location: .body(locationName: "restartDelay"), required: false, type: .integer) + ] + /// Number of seconds to wait before retrying connection to the CDN if the connection is lost. + public let connectionRetryInterval: Int32? + /// Size in seconds of file cache for streaming outputs. + public let filecacheDuration: Int32? + /// Number of retry attempts that will be made before the Live Event is put into an error state. + public let numRetries: Int32? + /// If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart. + public let restartDelay: Int32? + + public init(connectionRetryInterval: Int32? = nil, filecacheDuration: Int32? = nil, numRetries: Int32? = nil, restartDelay: Int32? = nil) { + self.connectionRetryInterval = connectionRetryInterval + self.filecacheDuration = filecacheDuration + self.numRetries = numRetries + self.restartDelay = restartDelay + } + + private enum CodingKeys: String, CodingKey { + case connectionRetryInterval = "connectionRetryInterval" + case filecacheDuration = "filecacheDuration" + case numRetries = "numRetries" + case restartDelay = "restartDelay" + } + } + + public enum UdpTimedMetadataId3Frame: String, CustomStringConvertible, Codable { + case none = "NONE" + case priv = "PRIV" + case tdrl = "TDRL" + public var description: String { return self.rawValue } + } + + public struct DvbSubDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackgroundColor", location: .body(locationName: "backgroundColor"), required: false, type: .enum), + AWSShapeMember(label: "BackgroundOpacity", location: .body(locationName: "backgroundOpacity"), required: false, type: .integer), + AWSShapeMember(label: "YPosition", location: .body(locationName: "yPosition"), required: false, type: .integer), + AWSShapeMember(label: "FontOpacity", location: .body(locationName: "fontOpacity"), required: false, type: .integer), + AWSShapeMember(label: "ShadowXOffset", location: .body(locationName: "shadowXOffset"), required: false, type: .integer), + AWSShapeMember(label: "FontSize", location: .body(locationName: "fontSize"), required: false, type: .string), + AWSShapeMember(label: "Alignment", location: .body(locationName: "alignment"), required: false, type: .enum), + AWSShapeMember(label: "XPosition", location: .body(locationName: "xPosition"), required: false, type: .integer), + AWSShapeMember(label: "ShadowOpacity", location: .body(locationName: "shadowOpacity"), required: false, type: .integer), + AWSShapeMember(label: "FontColor", location: .body(locationName: "fontColor"), required: false, type: .enum), + AWSShapeMember(label: "OutlineColor", location: .body(locationName: "outlineColor"), required: false, type: .enum), + AWSShapeMember(label: "ShadowColor", location: .body(locationName: "shadowColor"), required: false, type: .enum), + AWSShapeMember(label: "ShadowYOffset", location: .body(locationName: "shadowYOffset"), required: false, type: .integer), + AWSShapeMember(label: "FontResolution", location: .body(locationName: "fontResolution"), required: false, type: .integer), + AWSShapeMember(label: "Font", location: .body(locationName: "font"), required: false, type: .structure), + AWSShapeMember(label: "OutlineSize", location: .body(locationName: "outlineSize"), required: false, type: .integer), + AWSShapeMember(label: "TeletextGridControl", location: .body(locationName: "teletextGridControl"), required: false, type: .enum) + ] + /// Specifies the color of the rectangle behind the captions. All burn-in and DVB-Sub font settings must match. + public let backgroundColor: DvbSubDestinationBackgroundColor? + /// Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match. + public let backgroundOpacity: Int32? + /// Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit yPosition is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let yPosition: Int32? + /// Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match. + public let fontOpacity: Int32? + /// Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match. + public let shadowXOffset: Int32? + /// When set to auto fontSize will scale depending on the size of the output. Giving a positive integer will specify the exact font size in points. All burn-in and DVB-Sub font settings must match. + public let fontSize: String? + /// If no explicit xPosition or yPosition is provided, setting alignment to centered will place the captions at the bottom center of the output. Similarly, setting a left alignment will align captions to the bottom left of the output. If x and y positions are given in conjunction with the alignment parameter, the font will be justified (either left or centered) relative to those coordinates. Selecting "smart" justification will left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid for source captions that are STL or 608/embedded. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let alignment: DvbSubDestinationAlignment? + /// Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let xPosition: Int32? + /// Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match. + public let shadowOpacity: Int32? + /// Specifies the color of the burned-in captions. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let fontColor: DvbSubDestinationFontColor? + /// Specifies font outline color. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let outlineColor: DvbSubDestinationOutlineColor? + /// Specifies the color of the shadow cast by the captions. All burn-in and DVB-Sub font settings must match. + public let shadowColor: DvbSubDestinationShadowColor? + /// Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match. + public let shadowYOffset: Int32? + /// Font resolution in DPI (dots per inch); default is 96 dpi. All burn-in and DVB-Sub font settings must match. + public let fontResolution: Int32? + /// External font file used for caption burn-in. File extension must be 'ttf' or 'tte'. Although the user can select output fonts for many different types of input captions, embedded, STL and teletext sources use a strict grid system. Using external fonts with these caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub font settings must match. + public let font: InputLocation? + /// Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let outlineSize: Int32? + /// Controls whether a fixed grid size will be used to generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in outputs. + public let teletextGridControl: DvbSubDestinationTeletextGridControl? + + public init(backgroundColor: DvbSubDestinationBackgroundColor? = nil, backgroundOpacity: Int32? = nil, yPosition: Int32? = nil, fontOpacity: Int32? = nil, shadowXOffset: Int32? = nil, fontSize: String? = nil, alignment: DvbSubDestinationAlignment? = nil, xPosition: Int32? = nil, shadowOpacity: Int32? = nil, fontColor: DvbSubDestinationFontColor? = nil, outlineColor: DvbSubDestinationOutlineColor? = nil, shadowColor: DvbSubDestinationShadowColor? = nil, shadowYOffset: Int32? = nil, fontResolution: Int32? = nil, font: InputLocation? = nil, outlineSize: Int32? = nil, teletextGridControl: DvbSubDestinationTeletextGridControl? = nil) { + self.backgroundColor = backgroundColor + self.backgroundOpacity = backgroundOpacity + self.yPosition = yPosition + self.fontOpacity = fontOpacity + self.shadowXOffset = shadowXOffset + self.fontSize = fontSize + self.alignment = alignment + self.xPosition = xPosition + self.shadowOpacity = shadowOpacity + self.fontColor = fontColor + self.outlineColor = outlineColor + self.shadowColor = shadowColor + self.shadowYOffset = shadowYOffset + self.fontResolution = fontResolution + self.font = font + self.outlineSize = outlineSize + self.teletextGridControl = teletextGridControl + } + + private enum CodingKeys: String, CodingKey { + case backgroundColor = "backgroundColor" + case backgroundOpacity = "backgroundOpacity" + case yPosition = "yPosition" + case fontOpacity = "fontOpacity" + case shadowXOffset = "shadowXOffset" + case fontSize = "fontSize" + case alignment = "alignment" + case xPosition = "xPosition" + case shadowOpacity = "shadowOpacity" + case fontColor = "fontColor" + case outlineColor = "outlineColor" + case shadowColor = "shadowColor" + case shadowYOffset = "shadowYOffset" + case fontResolution = "fontResolution" + case font = "font" + case outlineSize = "outlineSize" + case teletextGridControl = "teletextGridControl" + } + } + + public struct ListInputsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct FecOutputSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IncludeFec", location: .body(locationName: "includeFec"), required: false, type: .enum), + AWSShapeMember(label: "ColumnDepth", location: .body(locationName: "columnDepth"), required: false, type: .integer), + AWSShapeMember(label: "RowLength", location: .body(locationName: "rowLength"), required: false, type: .integer) + ] + /// Enables column only or column and row based FEC + public let includeFec: FecOutputIncludeFec? + /// Parameter D from SMPTE 2022-1. The height of the FEC protection matrix. The number of transport stream packets per column error correction packet. Must be between 4 and 20, inclusive. + public let columnDepth: Int32? + /// Parameter L from SMPTE 2022-1. The width of the FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values increase robustness. If Row FEC is used, then this is the number of transport stream packets per row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive. + public let rowLength: Int32? + + public init(includeFec: FecOutputIncludeFec? = nil, columnDepth: Int32? = nil, rowLength: Int32? = nil) { + self.includeFec = includeFec + self.columnDepth = columnDepth + self.rowLength = rowLength + } + + private enum CodingKeys: String, CodingKey { + case includeFec = "includeFec" + case columnDepth = "columnDepth" + case rowLength = "rowLength" + } + } + + public enum Eac3LfeFilter: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct AudioOnlyHlsSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AudioTrackType", location: .body(locationName: "audioTrackType"), required: false, type: .enum), + AWSShapeMember(label: "AudioGroupId", location: .body(locationName: "audioGroupId"), required: false, type: .string), + AWSShapeMember(label: "AudioOnlyImage", location: .body(locationName: "audioOnlyImage"), required: false, type: .structure) + ] + /// Four types of audio-only tracks are supported: + /// Audio-Only Variant Stream + /// The client can play back this audio-only stream instead of video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. + /// Alternate Audio, Auto Select, Default + /// Alternate rendition that the client should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES + /// Alternate Audio, Auto Select, Not Default + /// Alternate rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES + /// Alternate Audio, not Auto Select + /// Alternate rendition that the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO + public let audioTrackType: AudioOnlyHlsTrackType? + /// Specifies the group to which the audio Rendition belongs. + public let audioGroupId: String? + /// For use with an audio only Stream. Must be a .jpg or .png file. If given, this image will be used as the cover-art for the audio only output. Ideally, it should be formatted for an iPhone screen for two reasons. The iPhone does not resize the image, it crops a centered image on the top/bottom and left/right. Additionally, this image file gets saved bit-for-bit into every 10-second segment file, so will increase bandwidth by {image file size} * {segment count} * {user count.}. + public let audioOnlyImage: InputLocation? + + public init(audioTrackType: AudioOnlyHlsTrackType? = nil, audioGroupId: String? = nil, audioOnlyImage: InputLocation? = nil) { + self.audioTrackType = audioTrackType + self.audioGroupId = audioGroupId + self.audioOnlyImage = audioOnlyImage + } + + private enum CodingKeys: String, CodingKey { + case audioTrackType = "audioTrackType" + case audioGroupId = "audioGroupId" + case audioOnlyImage = "audioOnlyImage" + } + } + + public struct InputSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FilterStrength", location: .body(locationName: "filterStrength"), required: false, type: .integer), + AWSShapeMember(label: "DenoiseFilter", location: .body(locationName: "denoiseFilter"), required: false, type: .enum), + AWSShapeMember(label: "DeblockFilter", location: .body(locationName: "deblockFilter"), required: false, type: .enum), + AWSShapeMember(label: "InputFilter", location: .body(locationName: "inputFilter"), required: false, type: .enum), + AWSShapeMember(label: "VideoSelector", location: .body(locationName: "videoSelector"), required: false, type: .structure), + AWSShapeMember(label: "AudioSelectors", location: .body(locationName: "audioSelectors"), required: false, type: .list), + AWSShapeMember(label: "SourceEndBehavior", location: .body(locationName: "sourceEndBehavior"), required: false, type: .enum), + AWSShapeMember(label: "CaptionSelectors", location: .body(locationName: "captionSelectors"), required: false, type: .list), + AWSShapeMember(label: "NetworkInputSettings", location: .body(locationName: "networkInputSettings"), required: false, type: .structure) + ] + /// Adjusts the magnitude of filtering from 1 (minimal) to 5 (strongest). + public let filterStrength: Int32? + /// Enable or disable the denoise filter when filtering. + public let denoiseFilter: InputDenoiseFilter? + /// Enable or disable the deblock filter when filtering. + public let deblockFilter: InputDeblockFilter? + /// Turns on the filter for this input. MPEG-2 inputs have the deblocking filter enabled by default. + /// 1) auto - filtering will be applied depending on input type/quality + /// 2) disabled - no filtering will be applied to the input + /// 3) forced - filtering will be applied regardless of input type + public let inputFilter: InputFilter? + /// Informs which video elementary stream to decode for input types that have multiple available. + public let videoSelector: VideoSelector? + /// Used to select the audio stream to decode for inputs that have multiple available. + public let audioSelectors: [AudioSelector]? + /// Loop input if it is a file. This allows a file input to be streamed indefinitely. + public let sourceEndBehavior: InputSourceEndBehavior? + /// Used to select the caption input to use for inputs that have multiple available. + public let captionSelectors: [CaptionSelector]? + /// Input settings. + public let networkInputSettings: NetworkInputSettings? + + public init(filterStrength: Int32? = nil, denoiseFilter: InputDenoiseFilter? = nil, deblockFilter: InputDeblockFilter? = nil, inputFilter: InputFilter? = nil, videoSelector: VideoSelector? = nil, audioSelectors: [AudioSelector]? = nil, sourceEndBehavior: InputSourceEndBehavior? = nil, captionSelectors: [CaptionSelector]? = nil, networkInputSettings: NetworkInputSettings? = nil) { + self.filterStrength = filterStrength + self.denoiseFilter = denoiseFilter + self.deblockFilter = deblockFilter + self.inputFilter = inputFilter + self.videoSelector = videoSelector + self.audioSelectors = audioSelectors + self.sourceEndBehavior = sourceEndBehavior + self.captionSelectors = captionSelectors + self.networkInputSettings = networkInputSettings + } + + private enum CodingKeys: String, CodingKey { + case filterStrength = "filterStrength" + case denoiseFilter = "denoiseFilter" + case deblockFilter = "deblockFilter" + case inputFilter = "inputFilter" + case videoSelector = "videoSelector" + case audioSelectors = "audioSelectors" + case sourceEndBehavior = "sourceEndBehavior" + case captionSelectors = "captionSelectors" + case networkInputSettings = "networkInputSettings" + } + } + + public enum M2tsEbpPlacement: String, CustomStringConvertible, Codable { + case videoAndAudioPids = "VIDEO_AND_AUDIO_PIDS" + case videoPid = "VIDEO_PID" + public var description: String { return self.rawValue } + } + + public struct ChannelEgressEndpoint: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceIp", location: .body(locationName: "sourceIp"), required: false, type: .string) + ] + /// Public IP of where a channel's output comes from + public let sourceIp: String? + + public init(sourceIp: String? = nil) { + self.sourceIp = sourceIp + } + + private enum CodingKeys: String, CodingKey { + case sourceIp = "sourceIp" + } + } + + public enum SmoothGroupTimestampOffsetMode: String, CustomStringConvertible, Codable { + case useConfiguredOffset = "USE_CONFIGURED_OFFSET" + case useEventStartDate = "USE_EVENT_START_DATE" + public var description: String { return self.rawValue } + } + + public enum AacCodingMode: String, CustomStringConvertible, Codable { + case adReceiverMix = "AD_RECEIVER_MIX" + case codingMode10 = "CODING_MODE_1_0" + case codingMode11 = "CODING_MODE_1_1" + case codingMode20 = "CODING_MODE_2_0" + case codingMode51 = "CODING_MODE_5_1" + public var description: String { return self.rawValue } + } + + public enum SmoothGroupAudioOnlyTimecodeControl: String, CustomStringConvertible, Codable { + case passthrough = "PASSTHROUGH" + case useConfiguredClock = "USE_CONFIGURED_CLOCK" + public var description: String { return self.rawValue } + } + + public struct CreateChannelResultModel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Channel", location: .body(locationName: "channel"), required: false, type: .structure) + ] + public let channel: Channel? + + public init(channel: Channel? = nil) { + self.channel = channel + } + + private enum CodingKeys: String, CodingKey { + case channel = "channel" + } + } + + public struct UdpOutputSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FecOutputSettings", location: .body(locationName: "fecOutputSettings"), required: false, type: .structure), + AWSShapeMember(label: "ContainerSettings", location: .body(locationName: "containerSettings"), required: false, type: .structure), + AWSShapeMember(label: "Destination", location: .body(locationName: "destination"), required: false, type: .structure), + AWSShapeMember(label: "BufferMsec", location: .body(locationName: "bufferMsec"), required: false, type: .integer) + ] + /// Settings for enabling and adjusting Forward Error Correction on UDP outputs. + public let fecOutputSettings: FecOutputSettings? + public let containerSettings: UdpContainerSettings? + /// Destination address and port number for RTP or UDP packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002). + public let destination: OutputLocationRef? + /// UDP output buffering in milliseconds. Larger values increase latency through the transcoder but simultaneously assist the transcoder in maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input disruptions, picture reordering, etc. + public let bufferMsec: Int32? + + public init(fecOutputSettings: FecOutputSettings? = nil, containerSettings: UdpContainerSettings? = nil, destination: OutputLocationRef? = nil, bufferMsec: Int32? = nil) { + self.fecOutputSettings = fecOutputSettings + self.containerSettings = containerSettings + self.destination = destination + self.bufferMsec = bufferMsec + } + + private enum CodingKeys: String, CodingKey { + case fecOutputSettings = "fecOutputSettings" + case containerSettings = "containerSettings" + case destination = "destination" + case bufferMsec = "bufferMsec" + } + } + + public struct ArchiveGroupSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RolloverInterval", location: .body(locationName: "rolloverInterval"), required: false, type: .integer), + AWSShapeMember(label: "Destination", location: .body(locationName: "destination"), required: false, type: .structure) + ] + /// Number of seconds to write to archive file before closing and starting a new one. + public let rolloverInterval: Int32? + /// A directory and base filename where archive files should be written. If the base filename portion of the URI is left blank, the base filename of the first input will be automatically inserted. + public let destination: OutputLocationRef? + + public init(rolloverInterval: Int32? = nil, destination: OutputLocationRef? = nil) { + self.rolloverInterval = rolloverInterval + self.destination = destination + } + + private enum CodingKeys: String, CodingKey { + case rolloverInterval = "rolloverInterval" + case destination = "destination" + } + } + + public enum H264Level: String, CustomStringConvertible, Codable { + case h264Level1 = "H264_LEVEL_1" + case h264Level11 = "H264_LEVEL_1_1" + case h264Level12 = "H264_LEVEL_1_2" + case h264Level13 = "H264_LEVEL_1_3" + case h264Level2 = "H264_LEVEL_2" + case h264Level21 = "H264_LEVEL_2_1" + case h264Level22 = "H264_LEVEL_2_2" + case h264Level3 = "H264_LEVEL_3" + case h264Level31 = "H264_LEVEL_3_1" + case h264Level32 = "H264_LEVEL_3_2" + case h264Level4 = "H264_LEVEL_4" + case h264Level41 = "H264_LEVEL_4_1" + case h264Level42 = "H264_LEVEL_4_2" + case h264Level5 = "H264_LEVEL_5" + case h264Level51 = "H264_LEVEL_5_1" + case h264Level52 = "H264_LEVEL_5_2" + case h264LevelAuto = "H264_LEVEL_AUTO" + public var description: String { return self.rawValue } + } + + public struct StartChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChannelId", location: .uri(locationName: "channelId"), required: true, type: .string) + ] + public let channelId: String + + public init(channelId: String) { + self.channelId = channelId + } + + private enum CodingKeys: String, CodingKey { + case channelId = "channelId" + } + } + + public enum H264TemporalAq: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum InputSourceEndBehavior: String, CustomStringConvertible, Codable { + case `continue` = "CONTINUE" + case loop = "LOOP" + public var description: String { return self.rawValue } + } + + public enum FixedAfd: String, CustomStringConvertible, Codable { + case afd0000 = "AFD_0000" + case afd0010 = "AFD_0010" + case afd0011 = "AFD_0011" + case afd0100 = "AFD_0100" + case afd1000 = "AFD_1000" + case afd1001 = "AFD_1001" + case afd1010 = "AFD_1010" + case afd1011 = "AFD_1011" + case afd1101 = "AFD_1101" + case afd1110 = "AFD_1110" + case afd1111 = "AFD_1111" + public var description: String { return self.rawValue } + } + + public struct DescribeInputResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "securityGroups"), required: false, type: .list), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "AttachedChannels", location: .body(locationName: "attachedChannels"), required: false, type: .list), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Sources", location: .body(locationName: "sources"), required: false, type: .list), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let destinations: [InputDestination]? + public let securityGroups: [String]? + public let arn: String? + public let attachedChannels: [String]? + public let state: InputState? + public let name: String? + public let sources: [InputSource]? + public let `type`: InputType? + public let id: String? + + public init(destinations: [InputDestination]? = nil, securityGroups: [String]? = nil, arn: String? = nil, attachedChannels: [String]? = nil, state: InputState? = nil, name: String? = nil, sources: [InputSource]? = nil, type: InputType? = nil, id: String? = nil) { + self.destinations = destinations + self.securityGroups = securityGroups + self.arn = arn + self.attachedChannels = attachedChannels + self.state = state + self.name = name + self.sources = sources + self.`type` = `type` + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case securityGroups = "securityGroups" + case arn = "arn" + case attachedChannels = "attachedChannels" + case state = "state" + case name = "name" + case sources = "sources" + case `type` = "type" + case id = "id" + } + } + + public struct HlsOutputSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SegmentModifier", location: .body(locationName: "segmentModifier"), required: false, type: .string), + AWSShapeMember(label: "HlsSettings", location: .body(locationName: "hlsSettings"), required: false, type: .structure), + AWSShapeMember(label: "NameModifier", location: .body(locationName: "nameModifier"), required: false, type: .string) + ] + /// String concatenated to end of segment filenames. + public let segmentModifier: String? + /// Settings regarding the underlying stream. These settings are different for audio-only outputs. + public let hlsSettings: HlsSettings? + /// String concatenated to the end of the destination filename. Accepts \"Format Identifiers\":#formatIdentifierParameters. + public let nameModifier: String? + + public init(segmentModifier: String? = nil, hlsSettings: HlsSettings? = nil, nameModifier: String? = nil) { + self.segmentModifier = segmentModifier + self.hlsSettings = hlsSettings + self.nameModifier = nameModifier + } + + private enum CodingKeys: String, CodingKey { + case segmentModifier = "segmentModifier" + case hlsSettings = "hlsSettings" + case nameModifier = "nameModifier" + } + } + + public struct AccessDenied: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + public let message: String? + + public init(message: String? = nil) { + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + } + } + + public struct OutputSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MsSmoothOutputSettings", location: .body(locationName: "msSmoothOutputSettings"), required: false, type: .structure), + AWSShapeMember(label: "UdpOutputSettings", location: .body(locationName: "udpOutputSettings"), required: false, type: .structure), + AWSShapeMember(label: "ArchiveOutputSettings", location: .body(locationName: "archiveOutputSettings"), required: false, type: .structure), + AWSShapeMember(label: "HlsOutputSettings", location: .body(locationName: "hlsOutputSettings"), required: false, type: .structure) + ] + public let msSmoothOutputSettings: MsSmoothOutputSettings? + public let udpOutputSettings: UdpOutputSettings? + public let archiveOutputSettings: ArchiveOutputSettings? + public let hlsOutputSettings: HlsOutputSettings? + + public init(msSmoothOutputSettings: MsSmoothOutputSettings? = nil, udpOutputSettings: UdpOutputSettings? = nil, archiveOutputSettings: ArchiveOutputSettings? = nil, hlsOutputSettings: HlsOutputSettings? = nil) { + self.msSmoothOutputSettings = msSmoothOutputSettings + self.udpOutputSettings = udpOutputSettings + self.archiveOutputSettings = archiveOutputSettings + self.hlsOutputSettings = hlsOutputSettings + } + + private enum CodingKeys: String, CodingKey { + case msSmoothOutputSettings = "msSmoothOutputSettings" + case udpOutputSettings = "udpOutputSettings" + case archiveOutputSettings = "archiveOutputSettings" + case hlsOutputSettings = "hlsOutputSettings" + } + } + + public enum BurnInFontColor: String, CustomStringConvertible, Codable { + case black = "BLACK" + case blue = "BLUE" + case green = "GREEN" + case red = "RED" + case white = "WHITE" + case yellow = "YELLOW" + public var description: String { return self.rawValue } + } + + public enum SmoothGroupCertificateMode: String, CustomStringConvertible, Codable { + case selfSigned = "SELF_SIGNED" + case verifyAuthenticity = "VERIFY_AUTHENTICITY" + public var description: String { return self.rawValue } + } + + public enum BlackoutSlateState: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum Eac3AttenuationControl: String, CustomStringConvertible, Codable { + case attenuate3Db = "ATTENUATE_3_DB" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public enum HlsCodecSpecification: String, CustomStringConvertible, Codable { + case rfc4281 = "RFC_4281" + case rfc6381 = "RFC_6381" + public var description: String { return self.rawValue } + } + + public struct ListChannelsResultModel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Channels", location: .body(locationName: "channels"), required: false, type: .list) + ] + public let nextToken: String? + public let channels: [ChannelSummary]? + + public init(nextToken: String? = nil, channels: [ChannelSummary]? = nil) { + self.nextToken = nextToken + self.channels = channels + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case channels = "channels" + } + } + + public struct HlsWebdavSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConnectionRetryInterval", location: .body(locationName: "connectionRetryInterval"), required: false, type: .integer), + AWSShapeMember(label: "FilecacheDuration", location: .body(locationName: "filecacheDuration"), required: false, type: .integer), + AWSShapeMember(label: "HttpTransferMode", location: .body(locationName: "httpTransferMode"), required: false, type: .enum), + AWSShapeMember(label: "NumRetries", location: .body(locationName: "numRetries"), required: false, type: .integer), + AWSShapeMember(label: "RestartDelay", location: .body(locationName: "restartDelay"), required: false, type: .integer) + ] + /// Number of seconds to wait before retrying connection to the CDN if the connection is lost. + public let connectionRetryInterval: Int32? + /// Size in seconds of file cache for streaming outputs. + public let filecacheDuration: Int32? + /// Specify whether or not to use chunked transfer encoding to WebDAV. + public let httpTransferMode: HlsWebdavHttpTransferMode? + /// Number of retry attempts that will be made before the Live Event is put into an error state. + public let numRetries: Int32? + /// If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart. + public let restartDelay: Int32? + + public init(connectionRetryInterval: Int32? = nil, filecacheDuration: Int32? = nil, httpTransferMode: HlsWebdavHttpTransferMode? = nil, numRetries: Int32? = nil, restartDelay: Int32? = nil) { + self.connectionRetryInterval = connectionRetryInterval + self.filecacheDuration = filecacheDuration + self.httpTransferMode = httpTransferMode + self.numRetries = numRetries + self.restartDelay = restartDelay + } + + private enum CodingKeys: String, CodingKey { + case connectionRetryInterval = "connectionRetryInterval" + case filecacheDuration = "filecacheDuration" + case httpTransferMode = "httpTransferMode" + case numRetries = "numRetries" + case restartDelay = "restartDelay" + } + } + + public enum AacVbrQuality: String, CustomStringConvertible, Codable { + case high = "HIGH" + case low = "LOW" + case mediumHigh = "MEDIUM_HIGH" + case mediumLow = "MEDIUM_LOW" + public var description: String { return self.rawValue } + } + + public struct MsSmoothOutputSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NameModifier", location: .body(locationName: "nameModifier"), required: false, type: .string) + ] + /// String concatenated to the end of the destination filename. Required for multiple outputs of the same type. + public let nameModifier: String? + + public init(nameModifier: String? = nil) { + self.nameModifier = nameModifier + } + + private enum CodingKeys: String, CodingKey { + case nameModifier = "nameModifier" + } + } + + public enum M3u8Scte35Behavior: String, CustomStringConvertible, Codable { + case noPassthrough = "NO_PASSTHROUGH" + case passthrough = "PASSTHROUGH" + public var description: String { return self.rawValue } + } + + public enum M2tsEsRateInPes: String, CustomStringConvertible, Codable { + case exclude = "EXCLUDE" + case include = "INCLUDE" + public var description: String { return self.rawValue } + } + + public struct M2tsSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PcrControl", location: .body(locationName: "pcrControl"), required: false, type: .enum), + AWSShapeMember(label: "TimedMetadataPid", location: .body(locationName: "timedMetadataPid"), required: false, type: .string), + AWSShapeMember(label: "KlvDataPids", location: .body(locationName: "klvDataPids"), required: false, type: .string), + AWSShapeMember(label: "PatInterval", location: .body(locationName: "patInterval"), required: false, type: .integer), + AWSShapeMember(label: "EsRateInPes", location: .body(locationName: "esRateInPes"), required: false, type: .enum), + AWSShapeMember(label: "AbsentInputAudioBehavior", location: .body(locationName: "absentInputAudioBehavior"), required: false, type: .enum), + AWSShapeMember(label: "PmtPid", location: .body(locationName: "pmtPid"), required: false, type: .string), + AWSShapeMember(label: "VideoPid", location: .body(locationName: "videoPid"), required: false, type: .string), + AWSShapeMember(label: "EtvSignalPid", location: .body(locationName: "etvSignalPid"), required: false, type: .string), + AWSShapeMember(label: "PcrPid", location: .body(locationName: "pcrPid"), required: false, type: .string), + AWSShapeMember(label: "AribCaptionsPidControl", location: .body(locationName: "aribCaptionsPidControl"), required: false, type: .enum), + AWSShapeMember(label: "Klv", location: .body(locationName: "klv"), required: false, type: .enum), + AWSShapeMember(label: "TimedMetadataBehavior", location: .body(locationName: "timedMetadataBehavior"), required: false, type: .enum), + AWSShapeMember(label: "Scte35Control", location: .body(locationName: "scte35Control"), required: false, type: .enum), + AWSShapeMember(label: "DvbTdtSettings", location: .body(locationName: "dvbTdtSettings"), required: false, type: .structure), + AWSShapeMember(label: "RateMode", location: .body(locationName: "rateMode"), required: false, type: .enum), + AWSShapeMember(label: "DvbSdtSettings", location: .body(locationName: "dvbSdtSettings"), required: false, type: .structure), + AWSShapeMember(label: "Scte27Pids", location: .body(locationName: "scte27Pids"), required: false, type: .string), + AWSShapeMember(label: "AudioFramesPerPes", location: .body(locationName: "audioFramesPerPes"), required: false, type: .integer), + AWSShapeMember(label: "BufferModel", location: .body(locationName: "bufferModel"), required: false, type: .enum), + AWSShapeMember(label: "EbpLookaheadMs", location: .body(locationName: "ebpLookaheadMs"), required: false, type: .integer), + AWSShapeMember(label: "AudioStreamType", location: .body(locationName: "audioStreamType"), required: false, type: .enum), + AWSShapeMember(label: "Ebif", location: .body(locationName: "ebif"), required: false, type: .enum), + AWSShapeMember(label: "SegmentationTime", location: .body(locationName: "segmentationTime"), required: false, type: .double), + AWSShapeMember(label: "AudioBufferModel", location: .body(locationName: "audioBufferModel"), required: false, type: .enum), + AWSShapeMember(label: "SegmentationStyle", location: .body(locationName: "segmentationStyle"), required: false, type: .enum), + AWSShapeMember(label: "CcDescriptor", location: .body(locationName: "ccDescriptor"), required: false, type: .enum), + AWSShapeMember(label: "EbpAudioInterval", location: .body(locationName: "ebpAudioInterval"), required: false, type: .enum), + AWSShapeMember(label: "DvbNitSettings", location: .body(locationName: "dvbNitSettings"), required: false, type: .structure), + AWSShapeMember(label: "FragmentTime", location: .body(locationName: "fragmentTime"), required: false, type: .double), + AWSShapeMember(label: "ProgramNum", location: .body(locationName: "programNum"), required: false, type: .integer), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .integer), + AWSShapeMember(label: "PmtInterval", location: .body(locationName: "pmtInterval"), required: false, type: .integer), + AWSShapeMember(label: "Scte35Pid", location: .body(locationName: "scte35Pid"), required: false, type: .string), + AWSShapeMember(label: "DvbTeletextPid", location: .body(locationName: "dvbTeletextPid"), required: false, type: .string), + AWSShapeMember(label: "EbpPlacement", location: .body(locationName: "ebpPlacement"), required: false, type: .enum), + AWSShapeMember(label: "AribCaptionsPid", location: .body(locationName: "aribCaptionsPid"), required: false, type: .string), + AWSShapeMember(label: "SegmentationMarkers", location: .body(locationName: "segmentationMarkers"), required: false, type: .enum), + AWSShapeMember(label: "AudioPids", location: .body(locationName: "audioPids"), required: false, type: .string), + AWSShapeMember(label: "PcrPeriod", location: .body(locationName: "pcrPeriod"), required: false, type: .integer), + AWSShapeMember(label: "EcmPid", location: .body(locationName: "ecmPid"), required: false, type: .string), + AWSShapeMember(label: "Arib", location: .body(locationName: "arib"), required: false, type: .enum), + AWSShapeMember(label: "DvbSubPids", location: .body(locationName: "dvbSubPids"), required: false, type: .string), + AWSShapeMember(label: "TransportStreamId", location: .body(locationName: "transportStreamId"), required: false, type: .integer), + AWSShapeMember(label: "EtvPlatformPid", location: .body(locationName: "etvPlatformPid"), required: false, type: .string), + AWSShapeMember(label: "NullPacketBitrate", location: .body(locationName: "nullPacketBitrate"), required: false, type: .double) + ] + /// When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream. + public let pcrControl: M2tsPcrControl? + /// Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). + public let timedMetadataPid: String? + /// Packet Identifier (PID) for input source KLV data to this output. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). + public let klvDataPids: String? + /// The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, 10..1000. + public let patInterval: Int32? + /// Include or exclude the ES Rate field in the PES header. + public let esRateInPes: M2tsEsRateInPes? + /// When set to drop, output audio streams will be removed from the program if the selected input audio stream is removed from the input. This allows the output audio configuration to dynamically change based on input configuration. If this is set to encodeSilence, all output audio streams will output encoded silence when not connected to an active input stream. + public let absentInputAudioBehavior: M2tsAbsentInputAudioBehavior? + /// Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). + public let pmtPid: String? + /// Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). + public let videoPid: String? + /// Packet Identifier (PID) for input source ETV Signal data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). + public let etvSignalPid: String? + /// Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). + public let pcrPid: String? + /// If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the configured pid number. + public let aribCaptionsPidControl: M2tsAribCaptionsPidControl? + /// If set to passthrough, passes any KLV data from the input source to this output. + public let klv: M2tsKlv? + /// When set to passthrough, timed metadata will be passed through from input to output. + public let timedMetadataBehavior: M2tsTimedMetadataBehavior? + /// Optionally pass SCTE-35 signals from the input source to this output. + public let scte35Control: M2tsScte35Control? + /// Inserts DVB Time and Date Table (TDT) at the specified table repetition interval. + public let dvbTdtSettings: DvbTdtSettings? + /// When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set. + public let rateMode: M2tsRateMode? + /// Inserts DVB Service Description Table (SDT) at the specified table repetition interval. + public let dvbSdtSettings: DvbSdtSettings? + /// Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). + public let scte27Pids: String? + /// The number of audio frames to insert for each PES packet. + public let audioFramesPerPes: Int32? + /// If set to multiplex, use multiplex buffer model for accurate interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices may not be able to play back the stream without interruptions. + public let bufferModel: M2tsBufferModel? + /// When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by looking ahead at input video. If another EBP is going to come in within the specified time interval, the current EBP is not emitted, and the segment is "stretched" to the next marker. The lookahead value does not add latency to the system. The Live Event must be configured elsewhere to create sufficient latency to make the lookahead accurate. + public let ebpLookaheadMs: Int32? + /// When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06. + public let audioStreamType: M2tsAudioStreamType? + /// If set to passthrough, passes any EBIF data from the input source to this output. + public let ebif: M2tsEbifControl? + /// The length in seconds of each segment. Required unless markers is set to None_. + public let segmentationTime: Double? + /// When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used. + public let audioBufferModel: M2tsAudioBufferModel? + /// The segmentation style parameter controls how segmentation markers are inserted into the transport stream. With avails, it is possible that segments may be truncated, which can influence where future segmentation markers are inserted. + /// When a segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we will reset the segmentation cadence. This means the subsequent segment will have a duration of $segmentationTime seconds. + /// When a segmentation style of "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset the segmentation cadence. This means the subsequent segment will likely be truncated as well. However, all segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule. + public let segmentationStyle: M2tsSegmentationStyle? + /// When set to enabled, generates captionServiceDescriptor in PMT. + public let ccDescriptor: M2tsCcDescriptor? + /// When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The interval between these additional markers will be fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video interval. + public let ebpAudioInterval: M2tsAudioInterval? + /// Inserts DVB Network Information Table (NIT) at the specified table repetition interval. + public let dvbNitSettings: DvbNitSettings? + /// The length in seconds of each fragment. Only used with EBP markers. + public let fragmentTime: Double? + /// The value of the program number field in the Program Map Table. + public let programNum: Int32? + /// The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically determine the appropriate bitrate. + public let bitrate: Int32? + /// The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, 10..1000. + public let pmtInterval: Int32? + /// Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). + public let scte35Pid: String? + /// Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). + public let dvbTeletextPid: String? + /// Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID. + public let ebpPlacement: M2tsEbpPlacement? + /// Packet Identifier (PID) for ARIB Captions in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). + public let aribCaptionsPid: String? + /// Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation field using a legacy proprietary format. + public let segmentationMarkers: M2tsSegmentationMarkers? + /// Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). + public let audioPids: String? + /// Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream. + public let pcrPeriod: Int32? + /// Packet Identifier (PID) for ECM in the transport stream. Only enabled when Simulcrypt is enabled. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). + public let ecmPid: String? + /// When set to enabled, uses ARIB-compliant field muxing and removes video descriptor. + public let arib: M2tsArib? + /// Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). + public let dvbSubPids: String? + /// The value of the transport stream ID field in the Program Map Table. + public let transportStreamId: Int32? + /// Packet Identifier (PID) for input source ETV Platform data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). + public let etvPlatformPid: String? + /// Value in bits per second of extra null packets to insert into the transport stream. This can be used if a downstream encryption system requires periodic null packets. + public let nullPacketBitrate: Double? + + public init(pcrControl: M2tsPcrControl? = nil, timedMetadataPid: String? = nil, klvDataPids: String? = nil, patInterval: Int32? = nil, esRateInPes: M2tsEsRateInPes? = nil, absentInputAudioBehavior: M2tsAbsentInputAudioBehavior? = nil, pmtPid: String? = nil, videoPid: String? = nil, etvSignalPid: String? = nil, pcrPid: String? = nil, aribCaptionsPidControl: M2tsAribCaptionsPidControl? = nil, klv: M2tsKlv? = nil, timedMetadataBehavior: M2tsTimedMetadataBehavior? = nil, scte35Control: M2tsScte35Control? = nil, dvbTdtSettings: DvbTdtSettings? = nil, rateMode: M2tsRateMode? = nil, dvbSdtSettings: DvbSdtSettings? = nil, scte27Pids: String? = nil, audioFramesPerPes: Int32? = nil, bufferModel: M2tsBufferModel? = nil, ebpLookaheadMs: Int32? = nil, audioStreamType: M2tsAudioStreamType? = nil, ebif: M2tsEbifControl? = nil, segmentationTime: Double? = nil, audioBufferModel: M2tsAudioBufferModel? = nil, segmentationStyle: M2tsSegmentationStyle? = nil, ccDescriptor: M2tsCcDescriptor? = nil, ebpAudioInterval: M2tsAudioInterval? = nil, dvbNitSettings: DvbNitSettings? = nil, fragmentTime: Double? = nil, programNum: Int32? = nil, bitrate: Int32? = nil, pmtInterval: Int32? = nil, scte35Pid: String? = nil, dvbTeletextPid: String? = nil, ebpPlacement: M2tsEbpPlacement? = nil, aribCaptionsPid: String? = nil, segmentationMarkers: M2tsSegmentationMarkers? = nil, audioPids: String? = nil, pcrPeriod: Int32? = nil, ecmPid: String? = nil, arib: M2tsArib? = nil, dvbSubPids: String? = nil, transportStreamId: Int32? = nil, etvPlatformPid: String? = nil, nullPacketBitrate: Double? = nil) { + self.pcrControl = pcrControl + self.timedMetadataPid = timedMetadataPid + self.klvDataPids = klvDataPids + self.patInterval = patInterval + self.esRateInPes = esRateInPes + self.absentInputAudioBehavior = absentInputAudioBehavior + self.pmtPid = pmtPid + self.videoPid = videoPid + self.etvSignalPid = etvSignalPid + self.pcrPid = pcrPid + self.aribCaptionsPidControl = aribCaptionsPidControl + self.klv = klv + self.timedMetadataBehavior = timedMetadataBehavior + self.scte35Control = scte35Control + self.dvbTdtSettings = dvbTdtSettings + self.rateMode = rateMode + self.dvbSdtSettings = dvbSdtSettings + self.scte27Pids = scte27Pids + self.audioFramesPerPes = audioFramesPerPes + self.bufferModel = bufferModel + self.ebpLookaheadMs = ebpLookaheadMs + self.audioStreamType = audioStreamType + self.ebif = ebif + self.segmentationTime = segmentationTime + self.audioBufferModel = audioBufferModel + self.segmentationStyle = segmentationStyle + self.ccDescriptor = ccDescriptor + self.ebpAudioInterval = ebpAudioInterval + self.dvbNitSettings = dvbNitSettings + self.fragmentTime = fragmentTime + self.programNum = programNum + self.bitrate = bitrate + self.pmtInterval = pmtInterval + self.scte35Pid = scte35Pid + self.dvbTeletextPid = dvbTeletextPid + self.ebpPlacement = ebpPlacement + self.aribCaptionsPid = aribCaptionsPid + self.segmentationMarkers = segmentationMarkers + self.audioPids = audioPids + self.pcrPeriod = pcrPeriod + self.ecmPid = ecmPid + self.arib = arib + self.dvbSubPids = dvbSubPids + self.transportStreamId = transportStreamId + self.etvPlatformPid = etvPlatformPid + self.nullPacketBitrate = nullPacketBitrate + } + + private enum CodingKeys: String, CodingKey { + case pcrControl = "pcrControl" + case timedMetadataPid = "timedMetadataPid" + case klvDataPids = "klvDataPids" + case patInterval = "patInterval" + case esRateInPes = "esRateInPes" + case absentInputAudioBehavior = "absentInputAudioBehavior" + case pmtPid = "pmtPid" + case videoPid = "videoPid" + case etvSignalPid = "etvSignalPid" + case pcrPid = "pcrPid" + case aribCaptionsPidControl = "aribCaptionsPidControl" + case klv = "klv" + case timedMetadataBehavior = "timedMetadataBehavior" + case scte35Control = "scte35Control" + case dvbTdtSettings = "dvbTdtSettings" + case rateMode = "rateMode" + case dvbSdtSettings = "dvbSdtSettings" + case scte27Pids = "scte27Pids" + case audioFramesPerPes = "audioFramesPerPes" + case bufferModel = "bufferModel" + case ebpLookaheadMs = "ebpLookaheadMs" + case audioStreamType = "audioStreamType" + case ebif = "ebif" + case segmentationTime = "segmentationTime" + case audioBufferModel = "audioBufferModel" + case segmentationStyle = "segmentationStyle" + case ccDescriptor = "ccDescriptor" + case ebpAudioInterval = "ebpAudioInterval" + case dvbNitSettings = "dvbNitSettings" + case fragmentTime = "fragmentTime" + case programNum = "programNum" + case bitrate = "bitrate" + case pmtInterval = "pmtInterval" + case scte35Pid = "scte35Pid" + case dvbTeletextPid = "dvbTeletextPid" + case ebpPlacement = "ebpPlacement" + case aribCaptionsPid = "aribCaptionsPid" + case segmentationMarkers = "segmentationMarkers" + case audioPids = "audioPids" + case pcrPeriod = "pcrPeriod" + case ecmPid = "ecmPid" + case arib = "arib" + case dvbSubPids = "dvbSubPids" + case transportStreamId = "transportStreamId" + case etvPlatformPid = "etvPlatformPid" + case nullPacketBitrate = "nullPacketBitrate" + } + } + + public enum Eac3PassthroughControl: String, CustomStringConvertible, Codable { + case noPassthrough = "NO_PASSTHROUGH" + case whenPossible = "WHEN_POSSIBLE" + public var description: String { return self.rawValue } + } + + public enum VideoSelectorColorSpace: String, CustomStringConvertible, Codable { + case follow = "FOLLOW" + case rec601 = "REC_601" + case rec709 = "REC_709" + public var description: String { return self.rawValue } + } + + public struct VideoCodecSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "H264Settings", location: .body(locationName: "h264Settings"), required: false, type: .structure) + ] + public let h264Settings: H264Settings? + + public init(h264Settings: H264Settings? = nil) { + self.h264Settings = h264Settings + } + + private enum CodingKeys: String, CodingKey { + case h264Settings = "h264Settings" + } + } + + public struct EmbeddedDestinationSettings: AWSShape { + + } + + public struct H264Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BufFillPct", location: .body(locationName: "bufFillPct"), required: false, type: .integer), + AWSShapeMember(label: "BufSize", location: .body(locationName: "bufSize"), required: false, type: .integer), + AWSShapeMember(label: "ScanType", location: .body(locationName: "scanType"), required: false, type: .enum), + AWSShapeMember(label: "ParControl", location: .body(locationName: "parControl"), required: false, type: .enum), + AWSShapeMember(label: "NumRefFrames", location: .body(locationName: "numRefFrames"), required: false, type: .integer), + AWSShapeMember(label: "GopBReference", location: .body(locationName: "gopBReference"), required: false, type: .enum), + AWSShapeMember(label: "FramerateNumerator", location: .body(locationName: "framerateNumerator"), required: false, type: .integer), + AWSShapeMember(label: "Slices", location: .body(locationName: "slices"), required: false, type: .integer), + AWSShapeMember(label: "EntropyEncoding", location: .body(locationName: "entropyEncoding"), required: false, type: .enum), + AWSShapeMember(label: "ColorMetadata", location: .body(locationName: "colorMetadata"), required: false, type: .enum), + AWSShapeMember(label: "LookAheadRateControl", location: .body(locationName: "lookAheadRateControl"), required: false, type: .enum), + AWSShapeMember(label: "ParNumerator", location: .body(locationName: "parNumerator"), required: false, type: .integer), + AWSShapeMember(label: "MaxBitrate", location: .body(locationName: "maxBitrate"), required: false, type: .integer), + AWSShapeMember(label: "AdaptiveQuantization", location: .body(locationName: "adaptiveQuantization"), required: false, type: .enum), + AWSShapeMember(label: "GopSizeUnits", location: .body(locationName: "gopSizeUnits"), required: false, type: .enum), + AWSShapeMember(label: "SceneChangeDetect", location: .body(locationName: "sceneChangeDetect"), required: false, type: .enum), + AWSShapeMember(label: "RateControlMode", location: .body(locationName: "rateControlMode"), required: false, type: .enum), + AWSShapeMember(label: "Level", location: .body(locationName: "level"), required: false, type: .enum), + AWSShapeMember(label: "FramerateDenominator", location: .body(locationName: "framerateDenominator"), required: false, type: .integer), + AWSShapeMember(label: "ParDenominator", location: .body(locationName: "parDenominator"), required: false, type: .integer), + AWSShapeMember(label: "TimecodeInsertion", location: .body(locationName: "timecodeInsertion"), required: false, type: .enum), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .integer), + AWSShapeMember(label: "GopClosedCadence", location: .body(locationName: "gopClosedCadence"), required: false, type: .integer), + AWSShapeMember(label: "FixedAfd", location: .body(locationName: "fixedAfd"), required: false, type: .enum), + AWSShapeMember(label: "MinIInterval", location: .body(locationName: "minIInterval"), required: false, type: .integer), + AWSShapeMember(label: "FlickerAq", location: .body(locationName: "flickerAq"), required: false, type: .enum), + AWSShapeMember(label: "Syntax", location: .body(locationName: "syntax"), required: false, type: .enum), + AWSShapeMember(label: "GopNumBFrames", location: .body(locationName: "gopNumBFrames"), required: false, type: .integer), + AWSShapeMember(label: "AfdSignaling", location: .body(locationName: "afdSignaling"), required: false, type: .enum), + AWSShapeMember(label: "Profile", location: .body(locationName: "profile"), required: false, type: .enum), + AWSShapeMember(label: "SpatialAq", location: .body(locationName: "spatialAq"), required: false, type: .enum), + AWSShapeMember(label: "Softness", location: .body(locationName: "softness"), required: false, type: .integer), + AWSShapeMember(label: "GopSize", location: .body(locationName: "gopSize"), required: false, type: .double), + AWSShapeMember(label: "FramerateControl", location: .body(locationName: "framerateControl"), required: false, type: .enum), + AWSShapeMember(label: "TemporalAq", location: .body(locationName: "temporalAq"), required: false, type: .enum) + ] + /// Percentage of the buffer that should initially be filled (HRD buffer model). + public let bufFillPct: Int32? + /// Size of buffer (HRD buffer model) in bits/second. + public let bufSize: Int32? + /// Sets the scan type of the output to progressive or top-field-first interlaced. + public let scanType: H264ScanType? + /// This field indicates how the output pixel aspect ratio is specified. If "specified" is selected then the output video pixel aspect ratio is determined by parNumerator and parDenominator, else if "initializeFromSource" is selected then the output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input. + public let parControl: H264ParControl? + /// Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding. + public let numRefFrames: Int32? + /// If enabled, use reference B frames for GOP structures that have B frames > 1. + public let gopBReference: H264GopBReference? + /// Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps. + public let framerateNumerator: Int32? + /// Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures. + /// This field is optional; when no value is specified the encoder will choose the number of slices based on encode resolution. + public let slices: Int32? + /// Entropy encoding mode. Use cabac (must be in Main or High profile) or cavlc. + public let entropyEncoding: H264EntropyEncoding? + /// Includes colorspace metadata in the output. + public let colorMetadata: H264ColorMetadata? + /// Amount of lookahead. A value of low can decrease latency and memory usage, while high can produce better quality for certain content. + public let lookAheadRateControl: H264LookAheadRateControl? + /// Pixel Aspect Ratio numerator. + public let parNumerator: Int32? + /// Maximum bitrate in bits/second (for VBR mode only). + public let maxBitrate: Int32? + /// Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality. + public let adaptiveQuantization: H264AdaptiveQuantization? + /// Indicates if the gopSize is specified in frames or seconds. If seconds the system will convert the gopSize into a frame count at run time. + public let gopSizeUnits: H264GopSizeUnits? + /// Scene change detection. Inserts I-frames on scene changes when enabled. + public let sceneChangeDetect: H264SceneChangeDetect? + /// Rate control mode. + public let rateControlMode: H264RateControlMode? + /// H.264 Level. + public let level: H264Level? + /// Framerate denominator. + public let framerateDenominator: Int32? + /// Pixel Aspect Ratio denominator. + public let parDenominator: Int32? + /// Determines how timecodes should be inserted into the video elementary stream. + /// - 'disabled': Do not include timecodes + /// - 'picTimingSei': Pass through picture timing SEI messages from the source specified in Timecode Config + public let timecodeInsertion: H264TimecodeInsertionBehavior? + /// Average bitrate in bits/second. Required for VBR, CBR, and ABR. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000. + public let bitrate: Int32? + /// Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting. + public let gopClosedCadence: Int32? + /// Four bit AFD value to write on all frames of video in the output stream. Only valid when afdSignaling is set to 'Fixed'. + public let fixedAfd: FixedAfd? + /// Only meaningful if sceneChangeDetect is set to enabled. Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1 + public let minIInterval: Int32? + /// If set to enabled, adjust quantization within each frame to reduce flicker or 'pop' on I-frames. + public let flickerAq: H264FlickerAq? + /// Produces a bitstream compliant with SMPTE RP-2027. + public let syntax: H264Syntax? + /// Number of B-frames between reference frames. + public let gopNumBFrames: Int32? + /// Indicates that AFD values will be written into the output stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value configured in the fixedAfd parameter. + public let afdSignaling: AfdSignaling? + /// H.264 Profile. + public let profile: H264Profile? + /// If set to enabled, adjust quantization within each frame based on spatial variation of content complexity. + public let spatialAq: H264SpatialAq? + /// Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image. + public let softness: Int32? + /// GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits. Must be greater than zero. + public let gopSize: Double? + /// This field indicates how the output video frame rate is specified. If "specified" is selected then the output video frame rate is determined by framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then the output video frame rate will be set equal to the input video frame rate of the first input. + public let framerateControl: H264FramerateControl? + /// If set to enabled, adjust quantization within each frame based on temporal variation of content complexity. + public let temporalAq: H264TemporalAq? + + public init(bufFillPct: Int32? = nil, bufSize: Int32? = nil, scanType: H264ScanType? = nil, parControl: H264ParControl? = nil, numRefFrames: Int32? = nil, gopBReference: H264GopBReference? = nil, framerateNumerator: Int32? = nil, slices: Int32? = nil, entropyEncoding: H264EntropyEncoding? = nil, colorMetadata: H264ColorMetadata? = nil, lookAheadRateControl: H264LookAheadRateControl? = nil, parNumerator: Int32? = nil, maxBitrate: Int32? = nil, adaptiveQuantization: H264AdaptiveQuantization? = nil, gopSizeUnits: H264GopSizeUnits? = nil, sceneChangeDetect: H264SceneChangeDetect? = nil, rateControlMode: H264RateControlMode? = nil, level: H264Level? = nil, framerateDenominator: Int32? = nil, parDenominator: Int32? = nil, timecodeInsertion: H264TimecodeInsertionBehavior? = nil, bitrate: Int32? = nil, gopClosedCadence: Int32? = nil, fixedAfd: FixedAfd? = nil, minIInterval: Int32? = nil, flickerAq: H264FlickerAq? = nil, syntax: H264Syntax? = nil, gopNumBFrames: Int32? = nil, afdSignaling: AfdSignaling? = nil, profile: H264Profile? = nil, spatialAq: H264SpatialAq? = nil, softness: Int32? = nil, gopSize: Double? = nil, framerateControl: H264FramerateControl? = nil, temporalAq: H264TemporalAq? = nil) { + self.bufFillPct = bufFillPct + self.bufSize = bufSize + self.scanType = scanType + self.parControl = parControl + self.numRefFrames = numRefFrames + self.gopBReference = gopBReference + self.framerateNumerator = framerateNumerator + self.slices = slices + self.entropyEncoding = entropyEncoding + self.colorMetadata = colorMetadata + self.lookAheadRateControl = lookAheadRateControl + self.parNumerator = parNumerator + self.maxBitrate = maxBitrate + self.adaptiveQuantization = adaptiveQuantization + self.gopSizeUnits = gopSizeUnits + self.sceneChangeDetect = sceneChangeDetect + self.rateControlMode = rateControlMode + self.level = level + self.framerateDenominator = framerateDenominator + self.parDenominator = parDenominator + self.timecodeInsertion = timecodeInsertion + self.bitrate = bitrate + self.gopClosedCadence = gopClosedCadence + self.fixedAfd = fixedAfd + self.minIInterval = minIInterval + self.flickerAq = flickerAq + self.syntax = syntax + self.gopNumBFrames = gopNumBFrames + self.afdSignaling = afdSignaling + self.profile = profile + self.spatialAq = spatialAq + self.softness = softness + self.gopSize = gopSize + self.framerateControl = framerateControl + self.temporalAq = temporalAq + } + + private enum CodingKeys: String, CodingKey { + case bufFillPct = "bufFillPct" + case bufSize = "bufSize" + case scanType = "scanType" + case parControl = "parControl" + case numRefFrames = "numRefFrames" + case gopBReference = "gopBReference" + case framerateNumerator = "framerateNumerator" + case slices = "slices" + case entropyEncoding = "entropyEncoding" + case colorMetadata = "colorMetadata" + case lookAheadRateControl = "lookAheadRateControl" + case parNumerator = "parNumerator" + case maxBitrate = "maxBitrate" + case adaptiveQuantization = "adaptiveQuantization" + case gopSizeUnits = "gopSizeUnits" + case sceneChangeDetect = "sceneChangeDetect" + case rateControlMode = "rateControlMode" + case level = "level" + case framerateDenominator = "framerateDenominator" + case parDenominator = "parDenominator" + case timecodeInsertion = "timecodeInsertion" + case bitrate = "bitrate" + case gopClosedCadence = "gopClosedCadence" + case fixedAfd = "fixedAfd" + case minIInterval = "minIInterval" + case flickerAq = "flickerAq" + case syntax = "syntax" + case gopNumBFrames = "gopNumBFrames" + case afdSignaling = "afdSignaling" + case profile = "profile" + case spatialAq = "spatialAq" + case softness = "softness" + case gopSize = "gopSize" + case framerateControl = "framerateControl" + case temporalAq = "temporalAq" + } + } + + public enum AudioOnlyHlsTrackType: String, CustomStringConvertible, Codable { + case alternateAudioAutoSelect = "ALTERNATE_AUDIO_AUTO_SELECT" + case alternateAudioAutoSelectDefault = "ALTERNATE_AUDIO_AUTO_SELECT_DEFAULT" + case alternateAudioNotAutoSelect = "ALTERNATE_AUDIO_NOT_AUTO_SELECT" + case audioOnlyVariantStream = "AUDIO_ONLY_VARIANT_STREAM" + public var description: String { return self.rawValue } + } + + public enum M2tsAribCaptionsPidControl: String, CustomStringConvertible, Codable { + case auto = "AUTO" + case useConfigured = "USE_CONFIGURED" + public var description: String { return self.rawValue } + } + + public struct InputDestination: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Ip", location: .body(locationName: "ip"), required: false, type: .string), + AWSShapeMember(label: "Port", location: .body(locationName: "port"), required: false, type: .string), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string) + ] + /// system-generated static IP address of endpoint. + /// Remains fixed for the lifetime of the input + public let ip: String? + /// port for input + public let port: String? + /// This represents the endpoint that the customer stream will be + /// pushed to. + public let url: String? + + public init(ip: String? = nil, port: String? = nil, url: String? = nil) { + self.ip = ip + self.port = port + self.url = url + } + + private enum CodingKeys: String, CodingKey { + case ip = "ip" + case port = "port" + case url = "url" + } + } + + public struct KeyProviderSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StaticKeySettings", location: .body(locationName: "staticKeySettings"), required: false, type: .structure) + ] + public let staticKeySettings: StaticKeySettings? + + public init(staticKeySettings: StaticKeySettings? = nil) { + self.staticKeySettings = staticKeySettings + } + + private enum CodingKeys: String, CodingKey { + case staticKeySettings = "staticKeySettings" + } + } + + public enum M3u8PcrControl: String, CustomStringConvertible, Codable { + case configuredPcrPeriod = "CONFIGURED_PCR_PERIOD" + case pcrEveryPesPacket = "PCR_EVERY_PES_PACKET" + public var description: String { return self.rawValue } + } + + public struct CaptionSelector: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "SelectorSettings", location: .body(locationName: "selectorSettings"), required: false, type: .structure) + ] + /// When specified this field indicates the three letter language code of the caption track to extract from the source. + public let languageCode: String? + /// Name identifier for a caption selector. This name is used to associate this caption selector with one or more caption descriptions. Names must be unique within an event. + public let name: String? + /// Caption selector settings. + public let selectorSettings: CaptionSelectorSettings? + + public init(languageCode: String? = nil, name: String? = nil, selectorSettings: CaptionSelectorSettings? = nil) { + self.languageCode = languageCode + self.name = name + self.selectorSettings = selectorSettings + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "languageCode" + case name = "name" + case selectorSettings = "selectorSettings" + } + } + + public enum HlsAdMarkers: String, CustomStringConvertible, Codable { + case adobe = "ADOBE" + case elemental = "ELEMENTAL" + case elementalScte35 = "ELEMENTAL_SCTE35" + public var description: String { return self.rawValue } + } + + public enum DvbSubDestinationAlignment: String, CustomStringConvertible, Codable { + case centered = "CENTERED" + case left = "LEFT" + case smart = "SMART" + public var description: String { return self.rawValue } + } + + public struct UdpGroupSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimedMetadataId3Frame", location: .body(locationName: "timedMetadataId3Frame"), required: false, type: .enum), + AWSShapeMember(label: "TimedMetadataId3Period", location: .body(locationName: "timedMetadataId3Period"), required: false, type: .integer), + AWSShapeMember(label: "InputLossAction", location: .body(locationName: "inputLossAction"), required: false, type: .enum) + ] + /// Indicates ID3 frame that has the timecode. + public let timedMetadataId3Frame: UdpTimedMetadataId3Frame? + /// Timed Metadata interval in seconds. + public let timedMetadataId3Period: Int32? + /// Specifies behavior of last resort when input video is lost, and no more backup inputs are available. When dropTs is selected the entire transport stream will stop being emitted. When dropProgram is selected the program can be dropped from the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when emitProgram is chosen the transport stream will continue to be produced normally with repeat frames, black frames, or slate frames substituted for the absent input video. + public let inputLossAction: InputLossActionForUdpOut? + + public init(timedMetadataId3Frame: UdpTimedMetadataId3Frame? = nil, timedMetadataId3Period: Int32? = nil, inputLossAction: InputLossActionForUdpOut? = nil) { + self.timedMetadataId3Frame = timedMetadataId3Frame + self.timedMetadataId3Period = timedMetadataId3Period + self.inputLossAction = inputLossAction + } + + private enum CodingKeys: String, CodingKey { + case timedMetadataId3Frame = "timedMetadataId3Frame" + case timedMetadataId3Period = "timedMetadataId3Period" + case inputLossAction = "inputLossAction" + } + } + + public enum H264TimecodeInsertionBehavior: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case picTimingSei = "PIC_TIMING_SEI" + public var description: String { return self.rawValue } + } + + public enum SmoothGroupEventStopBehavior: String, CustomStringConvertible, Codable { + case none = "NONE" + case sendEos = "SEND_EOS" + public var description: String { return self.rawValue } + } + + public struct CaptionSelectorSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DvbSubSourceSettings", location: .body(locationName: "dvbSubSourceSettings"), required: false, type: .structure), + AWSShapeMember(label: "AribSourceSettings", location: .body(locationName: "aribSourceSettings"), required: false, type: .structure), + AWSShapeMember(label: "EmbeddedSourceSettings", location: .body(locationName: "embeddedSourceSettings"), required: false, type: .structure), + AWSShapeMember(label: "Scte27SourceSettings", location: .body(locationName: "scte27SourceSettings"), required: false, type: .structure), + AWSShapeMember(label: "TeletextSourceSettings", location: .body(locationName: "teletextSourceSettings"), required: false, type: .structure), + AWSShapeMember(label: "Scte20SourceSettings", location: .body(locationName: "scte20SourceSettings"), required: false, type: .structure) + ] + public let dvbSubSourceSettings: DvbSubSourceSettings? + public let aribSourceSettings: AribSourceSettings? + public let embeddedSourceSettings: EmbeddedSourceSettings? + public let scte27SourceSettings: Scte27SourceSettings? + public let teletextSourceSettings: TeletextSourceSettings? + public let scte20SourceSettings: Scte20SourceSettings? + + public init(dvbSubSourceSettings: DvbSubSourceSettings? = nil, aribSourceSettings: AribSourceSettings? = nil, embeddedSourceSettings: EmbeddedSourceSettings? = nil, scte27SourceSettings: Scte27SourceSettings? = nil, teletextSourceSettings: TeletextSourceSettings? = nil, scte20SourceSettings: Scte20SourceSettings? = nil) { + self.dvbSubSourceSettings = dvbSubSourceSettings + self.aribSourceSettings = aribSourceSettings + self.embeddedSourceSettings = embeddedSourceSettings + self.scte27SourceSettings = scte27SourceSettings + self.teletextSourceSettings = teletextSourceSettings + self.scte20SourceSettings = scte20SourceSettings + } + + private enum CodingKeys: String, CodingKey { + case dvbSubSourceSettings = "dvbSubSourceSettings" + case aribSourceSettings = "aribSourceSettings" + case embeddedSourceSettings = "embeddedSourceSettings" + case scte27SourceSettings = "scte27SourceSettings" + case teletextSourceSettings = "teletextSourceSettings" + case scte20SourceSettings = "scte20SourceSettings" + } + } + + public enum AvailBlankingState: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum DvbSubDestinationShadowColor: String, CustomStringConvertible, Codable { + case black = "BLACK" + case none = "NONE" + case white = "WHITE" + public var description: String { return self.rawValue } + } + + public struct MsSmoothGroupSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AcquisitionPointId", location: .body(locationName: "acquisitionPointId"), required: false, type: .string), + AWSShapeMember(label: "Destination", location: .body(locationName: "destination"), required: false, type: .structure), + AWSShapeMember(label: "EventIdMode", location: .body(locationName: "eventIdMode"), required: false, type: .enum), + AWSShapeMember(label: "RestartDelay", location: .body(locationName: "restartDelay"), required: false, type: .integer), + AWSShapeMember(label: "TimestampOffsetMode", location: .body(locationName: "timestampOffsetMode"), required: false, type: .enum), + AWSShapeMember(label: "CertificateMode", location: .body(locationName: "certificateMode"), required: false, type: .enum), + AWSShapeMember(label: "EventStopBehavior", location: .body(locationName: "eventStopBehavior"), required: false, type: .enum), + AWSShapeMember(label: "ConnectionRetryInterval", location: .body(locationName: "connectionRetryInterval"), required: false, type: .integer), + AWSShapeMember(label: "FragmentLength", location: .body(locationName: "fragmentLength"), required: false, type: .integer), + AWSShapeMember(label: "SegmentationMode", location: .body(locationName: "segmentationMode"), required: false, type: .enum), + AWSShapeMember(label: "InputLossAction", location: .body(locationName: "inputLossAction"), required: false, type: .enum), + AWSShapeMember(label: "EventId", location: .body(locationName: "eventId"), required: false, type: .string), + AWSShapeMember(label: "FilecacheDuration", location: .body(locationName: "filecacheDuration"), required: false, type: .integer), + AWSShapeMember(label: "AudioOnlyTimecodeControl", location: .body(locationName: "audioOnlyTimecodeControl"), required: false, type: .enum), + AWSShapeMember(label: "SparseTrackType", location: .body(locationName: "sparseTrackType"), required: false, type: .enum), + AWSShapeMember(label: "SendDelayMs", location: .body(locationName: "sendDelayMs"), required: false, type: .integer), + AWSShapeMember(label: "StreamManifestBehavior", location: .body(locationName: "streamManifestBehavior"), required: false, type: .enum), + AWSShapeMember(label: "TimestampOffset", location: .body(locationName: "timestampOffset"), required: false, type: .string), + AWSShapeMember(label: "NumRetries", location: .body(locationName: "numRetries"), required: false, type: .integer) + ] + /// The value of the "Acquisition Point Identity" element used in each message placed in the sparse track. Only enabled if sparseTrackType is not "none". + public let acquisitionPointId: String? + /// Smooth Streaming publish point on an IIS server. Elemental Live acts as a "Push" encoder to IIS. + public let destination: OutputLocationRef? + /// Specifies whether or not to send an event ID to the IIS server. If no event ID is sent and the same Live Event is used without changing the publishing point, clients might see cached video from the previous run. + /// Options: + /// - "useConfigured" - use the value provided in eventId + /// - "useTimestamp" - generate and send an event ID based on the current timestamp + /// - "noEventId" - do not send an event ID to the IIS server. + public let eventIdMode: SmoothGroupEventIdMode? + /// Number of seconds before initiating a restart due to output failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration. + public let restartDelay: Int32? + /// Type of timestamp date offset to use. + /// - useEventStartDate: Use the date the event was started as the offset + /// - useConfiguredOffset: Use an explicitly configured date as the offset + public let timestampOffsetMode: SmoothGroupTimestampOffsetMode? + /// If set to verifyAuthenticity, verify the https certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed certificates to fail unless those certificates are manually added to the OS trusted keystore. + public let certificateMode: SmoothGroupCertificateMode? + /// When set to sendEos, send EOS signal to IIS server when stopping the event + public let eventStopBehavior: SmoothGroupEventStopBehavior? + /// Number of seconds to wait before retrying connection to the IIS server if the connection is lost. Content will be cached during this time and the cache will be be delivered to the IIS server once the connection is re-established. + public let connectionRetryInterval: Int32? + /// Length of mp4 fragments to generate (in seconds). Fragment length must be compatible with GOP size and framerate. + public let fragmentLength: Int32? + /// When set to useInputSegmentation, the output segment or fragment points are set by the RAI markers from the input streams. + public let segmentationMode: SmoothGroupSegmentationMode? + /// Parameter that control output group behavior on input loss. + public let inputLossAction: InputLossActionForMsSmoothOut? + /// MS Smooth event ID to be sent to the IIS server. + /// Should only be specified if eventIdMode is set to useConfigured. + public let eventId: String? + /// Size in seconds of file cache for streaming outputs. + public let filecacheDuration: Int32? + /// If set to passthrough for an audio-only MS Smooth output, the fragment absolute time will be set to the current timecode. This option does not write timecodes to the audio elementary stream. + public let audioOnlyTimecodeControl: SmoothGroupAudioOnlyTimecodeControl? + /// If set to scte35, use incoming SCTE-35 messages to generate a sparse track in this group of MS-Smooth outputs. + public let sparseTrackType: SmoothGroupSparseTrackType? + /// Outputs that are "output locked" can use this delay. Assign a delay to the output that is "secondary". Do not assign a delay to the "primary" output. The delay means that the primary output will always reach the downstream system before the secondary, which helps ensure that the downstream system always uses the primary output. (If there were no delay, the downstream system might flip-flop between whichever output happens to arrive first.) If the primary fails, the downstream system will switch to the secondary output. When the primary is restarted, the downstream system will switch back to the primary (because once again it is always arriving first) + public let sendDelayMs: Int32? + /// When set to send, send stream manifest so publishing point doesn't start until all streams start. + public let streamManifestBehavior: SmoothGroupStreamManifestBehavior? + /// Timestamp offset for the event. Only used if timestampOffsetMode is set to useConfiguredOffset. + public let timestampOffset: String? + /// Number of retry attempts. + public let numRetries: Int32? + + public init(acquisitionPointId: String? = nil, destination: OutputLocationRef? = nil, eventIdMode: SmoothGroupEventIdMode? = nil, restartDelay: Int32? = nil, timestampOffsetMode: SmoothGroupTimestampOffsetMode? = nil, certificateMode: SmoothGroupCertificateMode? = nil, eventStopBehavior: SmoothGroupEventStopBehavior? = nil, connectionRetryInterval: Int32? = nil, fragmentLength: Int32? = nil, segmentationMode: SmoothGroupSegmentationMode? = nil, inputLossAction: InputLossActionForMsSmoothOut? = nil, eventId: String? = nil, filecacheDuration: Int32? = nil, audioOnlyTimecodeControl: SmoothGroupAudioOnlyTimecodeControl? = nil, sparseTrackType: SmoothGroupSparseTrackType? = nil, sendDelayMs: Int32? = nil, streamManifestBehavior: SmoothGroupStreamManifestBehavior? = nil, timestampOffset: String? = nil, numRetries: Int32? = nil) { + self.acquisitionPointId = acquisitionPointId + self.destination = destination + self.eventIdMode = eventIdMode + self.restartDelay = restartDelay + self.timestampOffsetMode = timestampOffsetMode + self.certificateMode = certificateMode + self.eventStopBehavior = eventStopBehavior + self.connectionRetryInterval = connectionRetryInterval + self.fragmentLength = fragmentLength + self.segmentationMode = segmentationMode + self.inputLossAction = inputLossAction + self.eventId = eventId + self.filecacheDuration = filecacheDuration + self.audioOnlyTimecodeControl = audioOnlyTimecodeControl + self.sparseTrackType = sparseTrackType + self.sendDelayMs = sendDelayMs + self.streamManifestBehavior = streamManifestBehavior + self.timestampOffset = timestampOffset + self.numRetries = numRetries + } + + private enum CodingKeys: String, CodingKey { + case acquisitionPointId = "acquisitionPointId" + case destination = "destination" + case eventIdMode = "eventIdMode" + case restartDelay = "restartDelay" + case timestampOffsetMode = "timestampOffsetMode" + case certificateMode = "certificateMode" + case eventStopBehavior = "eventStopBehavior" + case connectionRetryInterval = "connectionRetryInterval" + case fragmentLength = "fragmentLength" + case segmentationMode = "segmentationMode" + case inputLossAction = "inputLossAction" + case eventId = "eventId" + case filecacheDuration = "filecacheDuration" + case audioOnlyTimecodeControl = "audioOnlyTimecodeControl" + case sparseTrackType = "sparseTrackType" + case sendDelayMs = "sendDelayMs" + case streamManifestBehavior = "streamManifestBehavior" + case timestampOffset = "timestampOffset" + case numRetries = "numRetries" + } + } + + public enum DvbSubDestinationOutlineColor: String, CustomStringConvertible, Codable { + case black = "BLACK" + case blue = "BLUE" + case green = "GREEN" + case red = "RED" + case white = "WHITE" + case yellow = "YELLOW" + public var description: String { return self.rawValue } + } + + public struct HlsCdnSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "HlsBasicPutSettings", location: .body(locationName: "hlsBasicPutSettings"), required: false, type: .structure), + AWSShapeMember(label: "HlsMediaStoreSettings", location: .body(locationName: "hlsMediaStoreSettings"), required: false, type: .structure), + AWSShapeMember(label: "HlsWebdavSettings", location: .body(locationName: "hlsWebdavSettings"), required: false, type: .structure), + AWSShapeMember(label: "HlsAkamaiSettings", location: .body(locationName: "hlsAkamaiSettings"), required: false, type: .structure) + ] + public let hlsBasicPutSettings: HlsBasicPutSettings? + public let hlsMediaStoreSettings: HlsMediaStoreSettings? + public let hlsWebdavSettings: HlsWebdavSettings? + public let hlsAkamaiSettings: HlsAkamaiSettings? + + public init(hlsBasicPutSettings: HlsBasicPutSettings? = nil, hlsMediaStoreSettings: HlsMediaStoreSettings? = nil, hlsWebdavSettings: HlsWebdavSettings? = nil, hlsAkamaiSettings: HlsAkamaiSettings? = nil) { + self.hlsBasicPutSettings = hlsBasicPutSettings + self.hlsMediaStoreSettings = hlsMediaStoreSettings + self.hlsWebdavSettings = hlsWebdavSettings + self.hlsAkamaiSettings = hlsAkamaiSettings + } + + private enum CodingKeys: String, CodingKey { + case hlsBasicPutSettings = "hlsBasicPutSettings" + case hlsMediaStoreSettings = "hlsMediaStoreSettings" + case hlsWebdavSettings = "hlsWebdavSettings" + case hlsAkamaiSettings = "hlsAkamaiSettings" + } + } + + public enum Mp2CodingMode: String, CustomStringConvertible, Codable { + case codingMode10 = "CODING_MODE_1_0" + case codingMode20 = "CODING_MODE_2_0" + public var description: String { return self.rawValue } + } + + public struct TeletextSourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PageNumber", location: .body(locationName: "pageNumber"), required: false, type: .string) + ] + /// Specifies the teletext page number within the data stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should be specified as a hexadecimal string with no "0x" prefix. + public let pageNumber: String? + + public init(pageNumber: String? = nil) { + self.pageNumber = pageNumber + } + + private enum CodingKeys: String, CodingKey { + case pageNumber = "pageNumber" + } + } + + public enum VideoDescriptionRespondToAfd: String, CustomStringConvertible, Codable { + case none = "NONE" + case passthrough = "PASSTHROUGH" + case respond = "RESPOND" + public var description: String { return self.rawValue } + } + + public enum M2tsAudioBufferModel: String, CustomStringConvertible, Codable { + case atsc = "ATSC" + case dvb = "DVB" + public var description: String { return self.rawValue } + } + + public enum InputLossActionForMsSmoothOut: String, CustomStringConvertible, Codable { + case emitOutput = "EMIT_OUTPUT" + case pauseOutput = "PAUSE_OUTPUT" + public var description: String { return self.rawValue } + } + + public struct WebvttDestinationSettings: AWSShape { + + } + + public struct CaptionDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EmbeddedPlusScte20DestinationSettings", location: .body(locationName: "embeddedPlusScte20DestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "Scte20PlusEmbeddedDestinationSettings", location: .body(locationName: "scte20PlusEmbeddedDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "AribDestinationSettings", location: .body(locationName: "aribDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "TtmlDestinationSettings", location: .body(locationName: "ttmlDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "TeletextDestinationSettings", location: .body(locationName: "teletextDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "WebvttDestinationSettings", location: .body(locationName: "webvttDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "EmbeddedDestinationSettings", location: .body(locationName: "embeddedDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "DvbSubDestinationSettings", location: .body(locationName: "dvbSubDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "SmpteTtDestinationSettings", location: .body(locationName: "smpteTtDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "BurnInDestinationSettings", location: .body(locationName: "burnInDestinationSettings"), required: false, type: .structure), + AWSShapeMember(label: "Scte27DestinationSettings", location: .body(locationName: "scte27DestinationSettings"), required: false, type: .structure) + ] + public let embeddedPlusScte20DestinationSettings: EmbeddedPlusScte20DestinationSettings? + public let scte20PlusEmbeddedDestinationSettings: Scte20PlusEmbeddedDestinationSettings? + public let aribDestinationSettings: AribDestinationSettings? + public let ttmlDestinationSettings: TtmlDestinationSettings? + public let teletextDestinationSettings: TeletextDestinationSettings? + public let webvttDestinationSettings: WebvttDestinationSettings? + public let embeddedDestinationSettings: EmbeddedDestinationSettings? + public let dvbSubDestinationSettings: DvbSubDestinationSettings? + public let smpteTtDestinationSettings: SmpteTtDestinationSettings? + public let burnInDestinationSettings: BurnInDestinationSettings? + public let scte27DestinationSettings: Scte27DestinationSettings? + + public init(embeddedPlusScte20DestinationSettings: EmbeddedPlusScte20DestinationSettings? = nil, scte20PlusEmbeddedDestinationSettings: Scte20PlusEmbeddedDestinationSettings? = nil, aribDestinationSettings: AribDestinationSettings? = nil, ttmlDestinationSettings: TtmlDestinationSettings? = nil, teletextDestinationSettings: TeletextDestinationSettings? = nil, webvttDestinationSettings: WebvttDestinationSettings? = nil, embeddedDestinationSettings: EmbeddedDestinationSettings? = nil, dvbSubDestinationSettings: DvbSubDestinationSettings? = nil, smpteTtDestinationSettings: SmpteTtDestinationSettings? = nil, burnInDestinationSettings: BurnInDestinationSettings? = nil, scte27DestinationSettings: Scte27DestinationSettings? = nil) { + self.embeddedPlusScte20DestinationSettings = embeddedPlusScte20DestinationSettings + self.scte20PlusEmbeddedDestinationSettings = scte20PlusEmbeddedDestinationSettings + self.aribDestinationSettings = aribDestinationSettings + self.ttmlDestinationSettings = ttmlDestinationSettings + self.teletextDestinationSettings = teletextDestinationSettings + self.webvttDestinationSettings = webvttDestinationSettings + self.embeddedDestinationSettings = embeddedDestinationSettings + self.dvbSubDestinationSettings = dvbSubDestinationSettings + self.smpteTtDestinationSettings = smpteTtDestinationSettings + self.burnInDestinationSettings = burnInDestinationSettings + self.scte27DestinationSettings = scte27DestinationSettings + } + + private enum CodingKeys: String, CodingKey { + case embeddedPlusScte20DestinationSettings = "embeddedPlusScte20DestinationSettings" + case scte20PlusEmbeddedDestinationSettings = "scte20PlusEmbeddedDestinationSettings" + case aribDestinationSettings = "aribDestinationSettings" + case ttmlDestinationSettings = "ttmlDestinationSettings" + case teletextDestinationSettings = "teletextDestinationSettings" + case webvttDestinationSettings = "webvttDestinationSettings" + case embeddedDestinationSettings = "embeddedDestinationSettings" + case dvbSubDestinationSettings = "dvbSubDestinationSettings" + case smpteTtDestinationSettings = "smpteTtDestinationSettings" + case burnInDestinationSettings = "burnInDestinationSettings" + case scte27DestinationSettings = "scte27DestinationSettings" + } + } + + public enum H264RateControlMode: String, CustomStringConvertible, Codable { + case cbr = "CBR" + case vbr = "VBR" + public var description: String { return self.rawValue } + } + + public struct VideoDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Height", location: .body(locationName: "height"), required: false, type: .integer), + AWSShapeMember(label: "Sharpness", location: .body(locationName: "sharpness"), required: false, type: .integer), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "ScalingBehavior", location: .body(locationName: "scalingBehavior"), required: false, type: .enum), + AWSShapeMember(label: "RespondToAfd", location: .body(locationName: "respondToAfd"), required: false, type: .enum), + AWSShapeMember(label: "Width", location: .body(locationName: "width"), required: false, type: .integer), + AWSShapeMember(label: "CodecSettings", location: .body(locationName: "codecSettings"), required: false, type: .structure) + ] + /// Output video height (in pixels). Leave blank to use source video height. If left blank, width must also be unspecified. + public let height: Int32? + /// Changes the width of the anti-alias filter kernel used for scaling. Only applies if scaling is being performed and antiAlias is set to true. 0 is the softest setting, 100 the sharpest, and 50 recommended for most content. + public let sharpness: Int32? + /// The name of this VideoDescription. Outputs will use this name to uniquely identify this Description. Description names should be unique within this Live Event. + public let name: String? + /// When set to "stretchToOutput", automatically configures the output position to stretch the video to the specified output resolution. This option will override any position value. + public let scalingBehavior: VideoDescriptionScalingBehavior? + /// Indicates how to respond to the AFD values in the input stream. Setting to "respond" causes input video to be clipped, depending on AFD value, input display aspect ratio and output display aspect ratio. + public let respondToAfd: VideoDescriptionRespondToAfd? + /// Output video width (in pixels). Leave out to use source video width. If left out, height must also be left out. Display aspect ratio is always preserved by letterboxing or pillarboxing when necessary. + public let width: Int32? + /// Video codec settings. + public let codecSettings: VideoCodecSettings? + + public init(height: Int32? = nil, sharpness: Int32? = nil, name: String? = nil, scalingBehavior: VideoDescriptionScalingBehavior? = nil, respondToAfd: VideoDescriptionRespondToAfd? = nil, width: Int32? = nil, codecSettings: VideoCodecSettings? = nil) { + self.height = height + self.sharpness = sharpness + self.name = name + self.scalingBehavior = scalingBehavior + self.respondToAfd = respondToAfd + self.width = width + self.codecSettings = codecSettings + } + + private enum CodingKeys: String, CodingKey { + case height = "height" + case sharpness = "sharpness" + case name = "name" + case scalingBehavior = "scalingBehavior" + case respondToAfd = "respondToAfd" + case width = "width" + case codecSettings = "codecSettings" + } + } + + public enum AacInputType: String, CustomStringConvertible, Codable { + case broadcasterMixedAd = "BROADCASTER_MIXED_AD" + case normal = "NORMAL" + public var description: String { return self.rawValue } + } + + public enum SmoothGroupEventIdMode: String, CustomStringConvertible, Codable { + case noEventId = "NO_EVENT_ID" + case useConfigured = "USE_CONFIGURED" + case useTimestamp = "USE_TIMESTAMP" + public var description: String { return self.rawValue } + } + + public enum HlsOutputSelection: String, CustomStringConvertible, Codable { + case manifestsAndSegments = "MANIFESTS_AND_SEGMENTS" + case segmentsOnly = "SEGMENTS_ONLY" + public var description: String { return self.rawValue } + } + + public struct ResourceConflict: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + public let message: String? + + public init(message: String? = nil) { + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + } + } + + public enum HlsAkamaiHttpTransferMode: String, CustomStringConvertible, Codable { + case chunked = "CHUNKED" + case nonChunked = "NON_CHUNKED" + public var description: String { return self.rawValue } + } + + public struct DescribeInputSecurityGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "WhitelistRules", location: .body(locationName: "whitelistRules"), required: false, type: .list) + ] + public let id: String? + public let arn: String? + public let whitelistRules: [InputWhitelistRule]? + + public init(id: String? = nil, arn: String? = nil, whitelistRules: [InputWhitelistRule]? = nil) { + self.id = id + self.arn = arn + self.whitelistRules = whitelistRules + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case arn = "arn" + case whitelistRules = "whitelistRules" + } + } + + public struct DeleteInputRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputId", location: .uri(locationName: "inputId"), required: true, type: .string) + ] + public let inputId: String + + public init(inputId: String) { + self.inputId = inputId + } + + private enum CodingKeys: String, CodingKey { + case inputId = "inputId" + } + } + + public struct ListInputSecurityGroupsResultModel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "InputSecurityGroups", location: .body(locationName: "inputSecurityGroups"), required: false, type: .list) + ] + public let nextToken: String? + /// List of input security groups + public let inputSecurityGroups: [InputSecurityGroup]? + + public init(nextToken: String? = nil, inputSecurityGroups: [InputSecurityGroup]? = nil) { + self.nextToken = nextToken + self.inputSecurityGroups = inputSecurityGroups + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case inputSecurityGroups = "inputSecurityGroups" + } + } + + public struct Output: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CaptionDescriptionNames", location: .body(locationName: "captionDescriptionNames"), required: false, type: .list), + AWSShapeMember(label: "OutputSettings", location: .body(locationName: "outputSettings"), required: false, type: .structure), + AWSShapeMember(label: "VideoDescriptionName", location: .body(locationName: "videoDescriptionName"), required: false, type: .string), + AWSShapeMember(label: "OutputName", location: .body(locationName: "outputName"), required: false, type: .string), + AWSShapeMember(label: "AudioDescriptionNames", location: .body(locationName: "audioDescriptionNames"), required: false, type: .list) + ] + /// The names of the CaptionDescriptions used as caption sources for this output. + public let captionDescriptionNames: [String]? + /// Output type-specific settings. + public let outputSettings: OutputSettings? + /// The name of the VideoDescription used as the source for this output. + public let videoDescriptionName: String? + /// The name used to identify an output. + public let outputName: String? + /// The names of the AudioDescriptions used as audio sources for this output. + public let audioDescriptionNames: [String]? + + public init(captionDescriptionNames: [String]? = nil, outputSettings: OutputSettings? = nil, videoDescriptionName: String? = nil, outputName: String? = nil, audioDescriptionNames: [String]? = nil) { + self.captionDescriptionNames = captionDescriptionNames + self.outputSettings = outputSettings + self.videoDescriptionName = videoDescriptionName + self.outputName = outputName + self.audioDescriptionNames = audioDescriptionNames + } + + private enum CodingKeys: String, CodingKey { + case captionDescriptionNames = "captionDescriptionNames" + case outputSettings = "outputSettings" + case videoDescriptionName = "videoDescriptionName" + case outputName = "outputName" + case audioDescriptionNames = "audioDescriptionNames" + } + } + + public enum Eac3CodingMode: String, CustomStringConvertible, Codable { + case codingMode10 = "CODING_MODE_1_0" + case codingMode20 = "CODING_MODE_2_0" + case codingMode32 = "CODING_MODE_3_2" + public var description: String { return self.rawValue } + } + + public struct InputLossBehavior: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BlackFrameMsec", location: .body(locationName: "blackFrameMsec"), required: false, type: .integer), + AWSShapeMember(label: "InputLossImageSlate", location: .body(locationName: "inputLossImageSlate"), required: false, type: .structure), + AWSShapeMember(label: "InputLossImageColor", location: .body(locationName: "inputLossImageColor"), required: false, type: .string), + AWSShapeMember(label: "InputLossImageType", location: .body(locationName: "inputLossImageType"), required: false, type: .enum), + AWSShapeMember(label: "RepeatFrameMsec", location: .body(locationName: "repeatFrameMsec"), required: false, type: .integer) + ] + /// On input loss, the number of milliseconds to substitute black into the output before switching to the frame specified by inputLossImageType. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000 will be interpreted as infinite. + public let blackFrameMsec: Int32? + /// When input loss image type is "slate" these fields specify the parameters for accessing the slate. + public let inputLossImageSlate: InputLocation? + /// When input loss image type is "color" this field specifies the color to use. Value: 6 hex characters representing the values of RGB. + public let inputLossImageColor: String? + /// Indicates whether to substitute a solid color or a slate into the output after input loss exceeds blackFrameMsec. + public let inputLossImageType: InputLossImageType? + /// On input loss, the number of milliseconds to repeat the previous picture before substituting black into the output. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000 will be interpreted as infinite. + public let repeatFrameMsec: Int32? + + public init(blackFrameMsec: Int32? = nil, inputLossImageSlate: InputLocation? = nil, inputLossImageColor: String? = nil, inputLossImageType: InputLossImageType? = nil, repeatFrameMsec: Int32? = nil) { + self.blackFrameMsec = blackFrameMsec + self.inputLossImageSlate = inputLossImageSlate + self.inputLossImageColor = inputLossImageColor + self.inputLossImageType = inputLossImageType + self.repeatFrameMsec = repeatFrameMsec + } + + private enum CodingKeys: String, CodingKey { + case blackFrameMsec = "blackFrameMsec" + case inputLossImageSlate = "inputLossImageSlate" + case inputLossImageColor = "inputLossImageColor" + case inputLossImageType = "inputLossImageType" + case repeatFrameMsec = "repeatFrameMsec" + } + } + + public enum HlsSegmentationMode: String, CustomStringConvertible, Codable { + case useInputSegmentation = "USE_INPUT_SEGMENTATION" + case useSegmentDuration = "USE_SEGMENT_DURATION" + public var description: String { return self.rawValue } + } + + public enum Eac3MetadataControl: String, CustomStringConvertible, Codable { + case followInput = "FOLLOW_INPUT" + case useConfigured = "USE_CONFIGURED" + public var description: String { return self.rawValue } + } + + public struct BurnInDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackgroundColor", location: .body(locationName: "backgroundColor"), required: false, type: .enum), + AWSShapeMember(label: "BackgroundOpacity", location: .body(locationName: "backgroundOpacity"), required: false, type: .integer), + AWSShapeMember(label: "YPosition", location: .body(locationName: "yPosition"), required: false, type: .integer), + AWSShapeMember(label: "FontOpacity", location: .body(locationName: "fontOpacity"), required: false, type: .integer), + AWSShapeMember(label: "ShadowXOffset", location: .body(locationName: "shadowXOffset"), required: false, type: .integer), + AWSShapeMember(label: "FontSize", location: .body(locationName: "fontSize"), required: false, type: .string), + AWSShapeMember(label: "Alignment", location: .body(locationName: "alignment"), required: false, type: .enum), + AWSShapeMember(label: "XPosition", location: .body(locationName: "xPosition"), required: false, type: .integer), + AWSShapeMember(label: "ShadowOpacity", location: .body(locationName: "shadowOpacity"), required: false, type: .integer), + AWSShapeMember(label: "FontColor", location: .body(locationName: "fontColor"), required: false, type: .enum), + AWSShapeMember(label: "OutlineColor", location: .body(locationName: "outlineColor"), required: false, type: .enum), + AWSShapeMember(label: "ShadowColor", location: .body(locationName: "shadowColor"), required: false, type: .enum), + AWSShapeMember(label: "ShadowYOffset", location: .body(locationName: "shadowYOffset"), required: false, type: .integer), + AWSShapeMember(label: "FontResolution", location: .body(locationName: "fontResolution"), required: false, type: .integer), + AWSShapeMember(label: "Font", location: .body(locationName: "font"), required: false, type: .structure), + AWSShapeMember(label: "OutlineSize", location: .body(locationName: "outlineSize"), required: false, type: .integer), + AWSShapeMember(label: "TeletextGridControl", location: .body(locationName: "teletextGridControl"), required: false, type: .enum) + ] + /// Specifies the color of the rectangle behind the captions. All burn-in and DVB-Sub font settings must match. + public let backgroundColor: BurnInBackgroundColor? + /// Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match. + public let backgroundOpacity: Int32? + /// Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit yPosition is provided, the caption will be positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match. + public let yPosition: Int32? + /// Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match. + public let fontOpacity: Int32? + /// Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match. + public let shadowXOffset: Int32? + /// When set to 'auto' fontSize will scale depending on the size of the output. Giving a positive integer will specify the exact font size in points. All burn-in and DVB-Sub font settings must match. + public let fontSize: String? + /// If no explicit xPosition or yPosition is provided, setting alignment to centered will place the captions at the bottom center of the output. Similarly, setting a left alignment will align captions to the bottom left of the output. If x and y positions are given in conjunction with the alignment parameter, the font will be justified (either left or centered) relative to those coordinates. Selecting "smart" justification will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must match. + public let alignment: BurnInAlignment? + /// Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings must match. + public let xPosition: Int32? + /// Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match. + public let shadowOpacity: Int32? + /// Specifies the color of the burned-in captions. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let fontColor: BurnInFontColor? + /// Specifies font outline color. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let outlineColor: BurnInOutlineColor? + /// Specifies the color of the shadow cast by the captions. All burn-in and DVB-Sub font settings must match. + public let shadowColor: BurnInShadowColor? + /// Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match. + public let shadowYOffset: Int32? + /// Font resolution in DPI (dots per inch); default is 96 dpi. All burn-in and DVB-Sub font settings must match. + public let fontResolution: Int32? + /// External font file used for caption burn-in. File extension must be 'ttf' or 'tte'. Although the user can select output fonts for many different types of input captions, embedded, STL and teletext sources use a strict grid system. Using external fonts with these caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub font settings must match. + public let font: InputLocation? + /// Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match. + public let outlineSize: Int32? + /// Controls whether a fixed grid size will be used to generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in outputs. + public let teletextGridControl: BurnInTeletextGridControl? + + public init(backgroundColor: BurnInBackgroundColor? = nil, backgroundOpacity: Int32? = nil, yPosition: Int32? = nil, fontOpacity: Int32? = nil, shadowXOffset: Int32? = nil, fontSize: String? = nil, alignment: BurnInAlignment? = nil, xPosition: Int32? = nil, shadowOpacity: Int32? = nil, fontColor: BurnInFontColor? = nil, outlineColor: BurnInOutlineColor? = nil, shadowColor: BurnInShadowColor? = nil, shadowYOffset: Int32? = nil, fontResolution: Int32? = nil, font: InputLocation? = nil, outlineSize: Int32? = nil, teletextGridControl: BurnInTeletextGridControl? = nil) { + self.backgroundColor = backgroundColor + self.backgroundOpacity = backgroundOpacity + self.yPosition = yPosition + self.fontOpacity = fontOpacity + self.shadowXOffset = shadowXOffset + self.fontSize = fontSize + self.alignment = alignment + self.xPosition = xPosition + self.shadowOpacity = shadowOpacity + self.fontColor = fontColor + self.outlineColor = outlineColor + self.shadowColor = shadowColor + self.shadowYOffset = shadowYOffset + self.fontResolution = fontResolution + self.font = font + self.outlineSize = outlineSize + self.teletextGridControl = teletextGridControl + } + + private enum CodingKeys: String, CodingKey { + case backgroundColor = "backgroundColor" + case backgroundOpacity = "backgroundOpacity" + case yPosition = "yPosition" + case fontOpacity = "fontOpacity" + case shadowXOffset = "shadowXOffset" + case fontSize = "fontSize" + case alignment = "alignment" + case xPosition = "xPosition" + case shadowOpacity = "shadowOpacity" + case fontColor = "fontColor" + case outlineColor = "outlineColor" + case shadowColor = "shadowColor" + case shadowYOffset = "shadowYOffset" + case fontResolution = "fontResolution" + case font = "font" + case outlineSize = "outlineSize" + case teletextGridControl = "teletextGridControl" + } + } + + public enum InputLossActionForHlsOut: String, CustomStringConvertible, Codable { + case emitOutput = "EMIT_OUTPUT" + case pauseOutput = "PAUSE_OUTPUT" + public var description: String { return self.rawValue } + } + + public enum M2tsAudioInterval: String, CustomStringConvertible, Codable { + case videoAndFixedIntervals = "VIDEO_AND_FIXED_INTERVALS" + case videoInterval = "VIDEO_INTERVAL" + public var description: String { return self.rawValue } + } + + public struct HlsSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AudioOnlyHlsSettings", location: .body(locationName: "audioOnlyHlsSettings"), required: false, type: .structure), + AWSShapeMember(label: "StandardHlsSettings", location: .body(locationName: "standardHlsSettings"), required: false, type: .structure) + ] + public let audioOnlyHlsSettings: AudioOnlyHlsSettings? + public let standardHlsSettings: StandardHlsSettings? + + public init(audioOnlyHlsSettings: AudioOnlyHlsSettings? = nil, standardHlsSettings: StandardHlsSettings? = nil) { + self.audioOnlyHlsSettings = audioOnlyHlsSettings + self.standardHlsSettings = standardHlsSettings + } + + private enum CodingKeys: String, CodingKey { + case audioOnlyHlsSettings = "audioOnlyHlsSettings" + case standardHlsSettings = "standardHlsSettings" + } + } + + public enum Scte35SpliceInsertNoRegionalBlackoutBehavior: String, CustomStringConvertible, Codable { + case follow = "FOLLOW" + case ignore = "IGNORE" + public var description: String { return self.rawValue } + } + + public enum TimecodeConfigSource: String, CustomStringConvertible, Codable { + case embedded = "EMBEDDED" + case systemclock = "SYSTEMCLOCK" + case zerobased = "ZEROBASED" + public var description: String { return self.rawValue } + } + + public enum H264ScanType: String, CustomStringConvertible, Codable { + case interlaced = "INTERLACED" + case progressive = "PROGRESSIVE" + public var description: String { return self.rawValue } + } + + public struct ListInputsResultModel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Inputs", location: .body(locationName: "inputs"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + public let inputs: [Input]? + public let nextToken: String? + + public init(inputs: [Input]? = nil, nextToken: String? = nil) { + self.inputs = inputs + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case inputs = "inputs" + case nextToken = "nextToken" + } + } + + public struct AudioSelector: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "SelectorSettings", location: .body(locationName: "selectorSettings"), required: false, type: .structure) + ] + /// The name of this AudioSelector. AudioDescriptions will use this name to uniquely identify this Selector. Selector names should be unique per input. + public let name: String? + /// The audio selector settings. + public let selectorSettings: AudioSelectorSettings? + + public init(name: String? = nil, selectorSettings: AudioSelectorSettings? = nil) { + self.name = name + self.selectorSettings = selectorSettings + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case selectorSettings = "selectorSettings" + } + } + + public struct DvbNitSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RepInterval", location: .body(locationName: "repInterval"), required: false, type: .integer), + AWSShapeMember(label: "NetworkId", location: .body(locationName: "networkId"), required: false, type: .integer), + AWSShapeMember(label: "NetworkName", location: .body(locationName: "networkName"), required: false, type: .string) + ] + /// The number of milliseconds between instances of this table in the output transport stream. + public let repInterval: Int32? + /// The numeric value placed in the Network Information Table (NIT). + public let networkId: Int32? + /// The network name text placed in the networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters. + public let networkName: String? + + public init(repInterval: Int32? = nil, networkId: Int32? = nil, networkName: String? = nil) { + self.repInterval = repInterval + self.networkId = networkId + self.networkName = networkName + } + + private enum CodingKeys: String, CodingKey { + case repInterval = "repInterval" + case networkId = "networkId" + case networkName = "networkName" + } + } + + public struct InputSourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PasswordParam", location: .body(locationName: "passwordParam"), required: false, type: .string), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), + AWSShapeMember(label: "Username", location: .body(locationName: "username"), required: false, type: .string) + ] + /// key used to extract the password from EC2 Parameter store + public let passwordParam: String? + /// This represents the customer's source URL where stream is + /// pulled from. + public let url: String? + /// username for input source + public let username: String? + + public init(passwordParam: String? = nil, url: String? = nil, username: String? = nil) { + self.passwordParam = passwordParam + self.url = url + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case passwordParam = "passwordParam" + case url = "url" + case username = "username" + } + } + + public enum M2tsAbsentInputAudioBehavior: String, CustomStringConvertible, Codable { + case drop = "DROP" + case encodeSilence = "ENCODE_SILENCE" + public var description: String { return self.rawValue } + } + + public enum HlsMode: String, CustomStringConvertible, Codable { + case live = "LIVE" + case vod = "VOD" + public var description: String { return self.rawValue } + } + + public enum H264EntropyEncoding: String, CustomStringConvertible, Codable { + case cabac = "CABAC" + case cavlc = "CAVLC" + public var description: String { return self.rawValue } + } + + public enum H264FramerateControl: String, CustomStringConvertible, Codable { + case initializeFromSource = "INITIALIZE_FROM_SOURCE" + case specified = "SPECIFIED" + public var description: String { return self.rawValue } + } + + public enum M2tsRateMode: String, CustomStringConvertible, Codable { + case cbr = "CBR" + case vbr = "VBR" + public var description: String { return self.rawValue } + } + + public struct AacSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CodingMode", location: .body(locationName: "codingMode"), required: false, type: .enum), + AWSShapeMember(label: "SampleRate", location: .body(locationName: "sampleRate"), required: false, type: .double), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .double), + AWSShapeMember(label: "Profile", location: .body(locationName: "profile"), required: false, type: .enum), + AWSShapeMember(label: "RawFormat", location: .body(locationName: "rawFormat"), required: false, type: .enum), + AWSShapeMember(label: "Spec", location: .body(locationName: "spec"), required: false, type: .enum), + AWSShapeMember(label: "VbrQuality", location: .body(locationName: "vbrQuality"), required: false, type: .enum), + AWSShapeMember(label: "InputType", location: .body(locationName: "inputType"), required: false, type: .enum), + AWSShapeMember(label: "RateControlMode", location: .body(locationName: "rateControlMode"), required: false, type: .enum) + ] + /// Mono, Stereo, or 5.1 channel layout. Valid values depend on rate control mode and profile. The adReceiverMix setting receives a stereo description plus control track and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E. + public let codingMode: AacCodingMode? + /// Sample rate in Hz. Valid values depend on rate control mode and profile. + public let sampleRate: Double? + /// Average bitrate in bits/second. Valid values depend on rate control mode and profile. + public let bitrate: Double? + /// AAC Profile. + public let profile: AacProfile? + /// Sets LATM / LOAS AAC output for raw containers. + public let rawFormat: AacRawFormat? + /// Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2 Transport Stream containers. + public let spec: AacSpec? + /// VBR Quality Level - Only used if rateControlMode is VBR. + public let vbrQuality: AacVbrQuality? + /// Set to "broadcasterMixedAd" when input contains pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3, which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set to broadcasterMixedAd. + /// Leave set to "normal" when input does not contain pre-mixed audio + AD. + public let inputType: AacInputType? + /// Rate Control Mode. + public let rateControlMode: AacRateControlMode? + + public init(codingMode: AacCodingMode? = nil, sampleRate: Double? = nil, bitrate: Double? = nil, profile: AacProfile? = nil, rawFormat: AacRawFormat? = nil, spec: AacSpec? = nil, vbrQuality: AacVbrQuality? = nil, inputType: AacInputType? = nil, rateControlMode: AacRateControlMode? = nil) { + self.codingMode = codingMode + self.sampleRate = sampleRate + self.bitrate = bitrate + self.profile = profile + self.rawFormat = rawFormat + self.spec = spec + self.vbrQuality = vbrQuality + self.inputType = inputType + self.rateControlMode = rateControlMode + } + + private enum CodingKeys: String, CodingKey { + case codingMode = "codingMode" + case sampleRate = "sampleRate" + case bitrate = "bitrate" + case profile = "profile" + case rawFormat = "rawFormat" + case spec = "spec" + case vbrQuality = "vbrQuality" + case inputType = "inputType" + case rateControlMode = "rateControlMode" + } + } + + public struct VideoSelectorPid: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Pid", location: .body(locationName: "pid"), required: false, type: .integer) + ] + /// Selects a specific PID from within a video source. + public let pid: Int32? + + public init(pid: Int32? = nil) { + self.pid = pid + } + + private enum CodingKeys: String, CodingKey { + case pid = "pid" + } + } + + public enum BurnInShadowColor: String, CustomStringConvertible, Codable { + case black = "BLACK" + case none = "NONE" + case white = "WHITE" + public var description: String { return self.rawValue } + } + + public struct Scte35SpliceInsert: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NoRegionalBlackoutFlag", location: .body(locationName: "noRegionalBlackoutFlag"), required: false, type: .enum), + AWSShapeMember(label: "AdAvailOffset", location: .body(locationName: "adAvailOffset"), required: false, type: .integer), + AWSShapeMember(label: "WebDeliveryAllowedFlag", location: .body(locationName: "webDeliveryAllowedFlag"), required: false, type: .enum) + ] + /// When set to ignore, Segment Descriptors with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates + public let noRegionalBlackoutFlag: Scte35SpliceInsertNoRegionalBlackoutBehavior? + /// When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply to OOB messages. + public let adAvailOffset: Int32? + /// When set to ignore, Segment Descriptors with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates + public let webDeliveryAllowedFlag: Scte35SpliceInsertWebDeliveryAllowedBehavior? + + public init(noRegionalBlackoutFlag: Scte35SpliceInsertNoRegionalBlackoutBehavior? = nil, adAvailOffset: Int32? = nil, webDeliveryAllowedFlag: Scte35SpliceInsertWebDeliveryAllowedBehavior? = nil) { + self.noRegionalBlackoutFlag = noRegionalBlackoutFlag + self.adAvailOffset = adAvailOffset + self.webDeliveryAllowedFlag = webDeliveryAllowedFlag + } + + private enum CodingKeys: String, CodingKey { + case noRegionalBlackoutFlag = "noRegionalBlackoutFlag" + case adAvailOffset = "adAvailOffset" + case webDeliveryAllowedFlag = "webDeliveryAllowedFlag" + } + } + + public enum HlsDirectoryStructure: String, CustomStringConvertible, Codable { + case singleDirectory = "SINGLE_DIRECTORY" + case subdirectoryPerStream = "SUBDIRECTORY_PER_STREAM" + public var description: String { return self.rawValue } + } + + public enum HlsManifestDurationFormat: String, CustomStringConvertible, Codable { + case floatingPoint = "FLOATING_POINT" + case integer = "INTEGER" + public var description: String { return self.rawValue } + } + + public enum FecOutputIncludeFec: String, CustomStringConvertible, Codable { + case column = "COLUMN" + case columnAndRow = "COLUMN_AND_ROW" + public var description: String { return self.rawValue } + } + + public struct InputWhitelistRule: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Cidr", location: .body(locationName: "cidr"), required: false, type: .string) + ] + /// The IPv4 CIDR that's whitelisted. + public let cidr: String? + + public init(cidr: String? = nil) { + self.cidr = cidr + } + + private enum CodingKeys: String, CodingKey { + case cidr = "cidr" + } + } + + public enum SmoothGroupStreamManifestBehavior: String, CustomStringConvertible, Codable { + case doNotSend = "DO_NOT_SEND" + case send = "SEND" + public var description: String { return self.rawValue } + } + + public struct Scte27SourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Pid", location: .body(locationName: "pid"), required: false, type: .integer) + ] + /// The pid field is used in conjunction with the caption selector languageCode field as follows: + /// - Specify PID and Language: Extracts captions from that PID; the language is "informational". + /// - Specify PID and omit Language: Extracts the specified PID. + /// - Omit PID and specify Language: Extracts the specified language, whichever PID that happens to be. + /// - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all languages will be passed through. + public let pid: Int32? + + public init(pid: Int32? = nil) { + self.pid = pid + } + + private enum CodingKeys: String, CodingKey { + case pid = "pid" + } + } + + public struct DescribeChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChannelId", location: .uri(locationName: "channelId"), required: true, type: .string) + ] + public let channelId: String + + public init(channelId: String) { + self.channelId = channelId + } + + private enum CodingKeys: String, CodingKey { + case channelId = "channelId" + } + } + + public struct ListInputSecurityGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct EncoderSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VideoDescriptions", location: .body(locationName: "videoDescriptions"), required: false, type: .list), + AWSShapeMember(label: "BlackoutSlate", location: .body(locationName: "blackoutSlate"), required: false, type: .structure), + AWSShapeMember(label: "OutputGroups", location: .body(locationName: "outputGroups"), required: false, type: .list), + AWSShapeMember(label: "AudioDescriptions", location: .body(locationName: "audioDescriptions"), required: false, type: .list), + AWSShapeMember(label: "GlobalConfiguration", location: .body(locationName: "globalConfiguration"), required: false, type: .structure), + AWSShapeMember(label: "AvailConfiguration", location: .body(locationName: "availConfiguration"), required: false, type: .structure), + AWSShapeMember(label: "CaptionDescriptions", location: .body(locationName: "captionDescriptions"), required: false, type: .list), + AWSShapeMember(label: "AvailBlanking", location: .body(locationName: "availBlanking"), required: false, type: .structure), + AWSShapeMember(label: "TimecodeConfig", location: .body(locationName: "timecodeConfig"), required: false, type: .structure) + ] + public let videoDescriptions: [VideoDescription]? + /// Settings for blackout slate. + public let blackoutSlate: BlackoutSlate? + public let outputGroups: [OutputGroup]? + public let audioDescriptions: [AudioDescription]? + /// Configuration settings that apply to the event as a whole. + public let globalConfiguration: GlobalConfiguration? + /// Event-wide configuration settings for ad avail insertion. + public let availConfiguration: AvailConfiguration? + /// Settings for caption decriptions + public let captionDescriptions: [CaptionDescription]? + /// Settings for ad avail blanking. + public let availBlanking: AvailBlanking? + /// Contains settings used to acquire and adjust timecode information from inputs. + public let timecodeConfig: TimecodeConfig? + + public init(videoDescriptions: [VideoDescription]? = nil, blackoutSlate: BlackoutSlate? = nil, outputGroups: [OutputGroup]? = nil, audioDescriptions: [AudioDescription]? = nil, globalConfiguration: GlobalConfiguration? = nil, availConfiguration: AvailConfiguration? = nil, captionDescriptions: [CaptionDescription]? = nil, availBlanking: AvailBlanking? = nil, timecodeConfig: TimecodeConfig? = nil) { + self.videoDescriptions = videoDescriptions + self.blackoutSlate = blackoutSlate + self.outputGroups = outputGroups + self.audioDescriptions = audioDescriptions + self.globalConfiguration = globalConfiguration + self.availConfiguration = availConfiguration + self.captionDescriptions = captionDescriptions + self.availBlanking = availBlanking + self.timecodeConfig = timecodeConfig + } + + private enum CodingKeys: String, CodingKey { + case videoDescriptions = "videoDescriptions" + case blackoutSlate = "blackoutSlate" + case outputGroups = "outputGroups" + case audioDescriptions = "audioDescriptions" + case globalConfiguration = "globalConfiguration" + case availConfiguration = "availConfiguration" + case captionDescriptions = "captionDescriptions" + case availBlanking = "availBlanking" + case timecodeConfig = "timecodeConfig" + } + } + + public enum BlackoutSlateNetworkEndBlackout: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum Eac3DcFilter: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum DvbSubDestinationBackgroundColor: String, CustomStringConvertible, Codable { + case black = "BLACK" + case none = "NONE" + case white = "WHITE" + public var description: String { return self.rawValue } + } + + public struct BlackoutSlate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NetworkEndBlackout", location: .body(locationName: "networkEndBlackout"), required: false, type: .enum), + AWSShapeMember(label: "NetworkEndBlackoutImage", location: .body(locationName: "networkEndBlackoutImage"), required: false, type: .structure), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "NetworkId", location: .body(locationName: "networkId"), required: false, type: .string), + AWSShapeMember(label: "BlackoutSlateImage", location: .body(locationName: "blackoutSlateImage"), required: false, type: .structure) + ] + /// Setting to enabled causes the encoder to blackout the video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35 Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must contain a network ID that matches the value entered in "Network ID". + public let networkEndBlackout: BlackoutSlateNetworkEndBlackout? + /// Path to local file to use as Network End Blackout image. Image will be scaled to fill the entire output raster. + public let networkEndBlackoutImage: InputLocation? + /// When set to enabled, causes video, audio and captions to be blanked when indicated by program metadata. + public let state: BlackoutSlateState? + /// Provides Network ID that matches EIDR ID format (e.g., "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C"). + public let networkId: String? + /// Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported. + public let blackoutSlateImage: InputLocation? + + public init(networkEndBlackout: BlackoutSlateNetworkEndBlackout? = nil, networkEndBlackoutImage: InputLocation? = nil, state: BlackoutSlateState? = nil, networkId: String? = nil, blackoutSlateImage: InputLocation? = nil) { + self.networkEndBlackout = networkEndBlackout + self.networkEndBlackoutImage = networkEndBlackoutImage + self.state = state + self.networkId = networkId + self.blackoutSlateImage = blackoutSlateImage + } + + private enum CodingKeys: String, CodingKey { + case networkEndBlackout = "networkEndBlackout" + case networkEndBlackoutImage = "networkEndBlackoutImage" + case state = "state" + case networkId = "networkId" + case blackoutSlateImage = "blackoutSlateImage" + } + } + + public enum H264Syntax: String, CustomStringConvertible, Codable { + case `default` = "DEFAULT" + case rp2027 = "RP2027" + public var description: String { return self.rawValue } + } + + public enum HlsCaptionLanguageSetting: String, CustomStringConvertible, Codable { + case insert = "INSERT" + case none = "NONE" + case omit = "OMIT" + public var description: String { return self.rawValue } + } + + public struct NetworkInputSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServerValidation", location: .body(locationName: "serverValidation"), required: false, type: .enum), + AWSShapeMember(label: "HlsInputSettings", location: .body(locationName: "hlsInputSettings"), required: false, type: .structure) + ] + /// Check HTTPS server certificates. When set to checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly match the corresponding certificate's wildcard pattern and would otherwise cause the event to error. This setting is ignored for protocols that do not use https. + public let serverValidation: NetworkInputServerValidation? + /// Specifies HLS input settings when the uri is for a HLS manifest. + public let hlsInputSettings: HlsInputSettings? + + public init(serverValidation: NetworkInputServerValidation? = nil, hlsInputSettings: HlsInputSettings? = nil) { + self.serverValidation = serverValidation + self.hlsInputSettings = hlsInputSettings + } + + private enum CodingKeys: String, CodingKey { + case serverValidation = "serverValidation" + case hlsInputSettings = "hlsInputSettings" + } + } + + public struct AvailBlanking: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "AvailBlankingImage", location: .body(locationName: "availBlankingImage"), required: false, type: .structure) + ] + /// When set to enabled, causes video, audio and captions to be blanked when insertion metadata is added. + public let state: AvailBlankingState? + /// Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported. + public let availBlankingImage: InputLocation? + + public init(state: AvailBlankingState? = nil, availBlankingImage: InputLocation? = nil) { + self.state = state + self.availBlankingImage = availBlankingImage + } + + private enum CodingKeys: String, CodingKey { + case state = "state" + case availBlankingImage = "availBlankingImage" + } + } + + public enum InputLossImageType: String, CustomStringConvertible, Codable { + case color = "COLOR" + case slate = "SLATE" + public var description: String { return self.rawValue } + } + + public struct TimecodeConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SyncThreshold", location: .body(locationName: "syncThreshold"), required: false, type: .integer), + AWSShapeMember(label: "Source", location: .body(locationName: "source"), required: false, type: .enum) + ] + /// Threshold in frames beyond which output timecode is resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not specified. + public let syncThreshold: Int32? + /// Identifies the source for the timecode that will be associated with the events outputs. + /// -Embedded (embedded): Initialize the output timecode with timecode from the the source. If no embedded timecode is detected in the source, the system falls back to using "Start at 0" (zerobased). + /// -System Clock (systemclock): Use the UTC time. + /// -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00. + public let source: TimecodeConfigSource? + + public init(syncThreshold: Int32? = nil, source: TimecodeConfigSource? = nil) { + self.syncThreshold = syncThreshold + self.source = source + } + + private enum CodingKeys: String, CodingKey { + case syncThreshold = "syncThreshold" + case source = "source" + } + } + + public enum AudioType: String, CustomStringConvertible, Codable { + case cleanEffects = "CLEAN_EFFECTS" + case hearingImpaired = "HEARING_IMPAIRED" + case undefined = "UNDEFINED" + case visualImpairedCommentary = "VISUAL_IMPAIRED_COMMENTARY" + public var description: String { return self.rawValue } + } + + public enum H264LookAheadRateControl: String, CustomStringConvertible, Codable { + case high = "HIGH" + case low = "LOW" + case medium = "MEDIUM" + public var description: String { return self.rawValue } + } + + public struct InputWhitelistRuleCidr: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Cidr", location: .body(locationName: "cidr"), required: false, type: .string) + ] + /// The IPv4 CIDR to whitelist + public let cidr: String? + + public init(cidr: String? = nil) { + self.cidr = cidr + } + + private enum CodingKeys: String, CodingKey { + case cidr = "cidr" + } + } + + public struct InputSecurityGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "WhitelistRules", location: .body(locationName: "whitelistRules"), required: false, type: .list) + ] + /// The Id of the Input Security Group + public let id: String? + /// Unique ARN of Input Security Group + public let arn: String? + /// Whitelist rules and their sync status + public let whitelistRules: [InputWhitelistRule]? + + public init(id: String? = nil, arn: String? = nil, whitelistRules: [InputWhitelistRule]? = nil) { + self.id = id + self.arn = arn + self.whitelistRules = whitelistRules + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case arn = "arn" + case whitelistRules = "whitelistRules" + } + } + + public struct PassThroughSettings: AWSShape { + + } + + public enum AacProfile: String, CustomStringConvertible, Codable { + case hev1 = "HEV1" + case hev2 = "HEV2" + case lc = "LC" + public var description: String { return self.rawValue } + } + + public enum SmoothGroupSegmentationMode: String, CustomStringConvertible, Codable { + case useInputSegmentation = "USE_INPUT_SEGMENTATION" + case useSegmentDuration = "USE_SEGMENT_DURATION" + public var description: String { return self.rawValue } + } + + public enum H264Profile: String, CustomStringConvertible, Codable { + case baseline = "BASELINE" + case high = "HIGH" + case high10Bit = "HIGH_10BIT" + case high422 = "HIGH_422" + case high42210Bit = "HIGH_422_10BIT" + case main = "MAIN" + public var description: String { return self.rawValue } + } + + public enum Eac3BitstreamMode: String, CustomStringConvertible, Codable { + case commentary = "COMMENTARY" + case completeMain = "COMPLETE_MAIN" + case emergency = "EMERGENCY" + case hearingImpaired = "HEARING_IMPAIRED" + case visuallyImpaired = "VISUALLY_IMPAIRED" + public var description: String { return self.rawValue } + } + + public enum InputState: String, CustomStringConvertible, Codable { + case creating = "CREATING" + case detached = "DETACHED" + case attached = "ATTACHED" + case deleting = "DELETING" + case deleted = "DELETED" + public var description: String { return self.rawValue } + } + + public enum M2tsCcDescriptor: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum M2tsBufferModel: String, CustomStringConvertible, Codable { + case multiplex = "MULTIPLEX" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public enum AfdSignaling: String, CustomStringConvertible, Codable { + case auto = "AUTO" + case fixed = "FIXED" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct ListChannelsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct CreateChannel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "InputAttachments", location: .body(locationName: "inputAttachments"), required: false, type: .list), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Reserved", location: .body(locationName: "reserved"), required: false, type: .string), + AWSShapeMember(label: "EncoderSettings", location: .body(locationName: "encoderSettings"), required: false, type: .structure), + AWSShapeMember(label: "RoleArn", location: .body(locationName: "roleArn"), required: false, type: .string), + AWSShapeMember(label: "RequestId", location: .body(locationName: "requestId"), required: false, type: .string) + ] + public let destinations: [OutputDestination]? + /// List of input attachments for channel. + public let inputAttachments: [InputAttachment]? + /// Name of channel. + public let name: String? + /// Reserved for future use. + public let reserved: String? + public let encoderSettings: EncoderSettings? + /// An optional Amazon Resource Name (ARN) of the role to assume when running the Channel. + public let roleArn: String? + /// Unique request ID to be specified. This is needed to prevent retries from + /// creating multiple resources. + public let requestId: String? + + public init(destinations: [OutputDestination]? = nil, inputAttachments: [InputAttachment]? = nil, name: String? = nil, reserved: String? = nil, encoderSettings: EncoderSettings? = nil, roleArn: String? = nil, requestId: String? = nil) { + self.destinations = destinations + self.inputAttachments = inputAttachments + self.name = name + self.reserved = reserved + self.encoderSettings = encoderSettings + self.roleArn = roleArn + self.requestId = requestId + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case inputAttachments = "inputAttachments" + case name = "name" + case reserved = "reserved" + case encoderSettings = "encoderSettings" + case roleArn = "roleArn" + case requestId = "requestId" + } + } + + public struct M3u8Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PcrControl", location: .body(locationName: "pcrControl"), required: false, type: .enum), + AWSShapeMember(label: "Scte35Behavior", location: .body(locationName: "scte35Behavior"), required: false, type: .enum), + AWSShapeMember(label: "PatInterval", location: .body(locationName: "patInterval"), required: false, type: .integer), + AWSShapeMember(label: "PmtPid", location: .body(locationName: "pmtPid"), required: false, type: .string), + AWSShapeMember(label: "VideoPid", location: .body(locationName: "videoPid"), required: false, type: .string), + AWSShapeMember(label: "TimedMetadataBehavior", location: .body(locationName: "timedMetadataBehavior"), required: false, type: .enum), + AWSShapeMember(label: "ProgramNum", location: .body(locationName: "programNum"), required: false, type: .integer), + AWSShapeMember(label: "PcrPid", location: .body(locationName: "pcrPid"), required: false, type: .string), + AWSShapeMember(label: "Scte35Pid", location: .body(locationName: "scte35Pid"), required: false, type: .string), + AWSShapeMember(label: "PmtInterval", location: .body(locationName: "pmtInterval"), required: false, type: .integer), + AWSShapeMember(label: "AudioPids", location: .body(locationName: "audioPids"), required: false, type: .string), + AWSShapeMember(label: "PcrPeriod", location: .body(locationName: "pcrPeriod"), required: false, type: .integer), + AWSShapeMember(label: "EcmPid", location: .body(locationName: "ecmPid"), required: false, type: .string), + AWSShapeMember(label: "AudioFramesPerPes", location: .body(locationName: "audioFramesPerPes"), required: false, type: .integer), + AWSShapeMember(label: "TransportStreamId", location: .body(locationName: "transportStreamId"), required: false, type: .integer) + ] + /// When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream. + public let pcrControl: M3u8PcrControl? + /// If set to passthrough, passes any SCTE-35 signals from the input source to this output. + public let scte35Behavior: M3u8Scte35Behavior? + /// The number of milliseconds between instances of this table in the output transport stream. A value of \"0\" writes out the PMT once per segment file. + public let patInterval: Int32? + /// Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value. + public let pmtPid: String? + /// Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or hexadecimal value. + public let videoPid: String? + /// When set to passthrough, timed metadata is passed through from input to output. + public let timedMetadataBehavior: M3u8TimedMetadataBehavior? + /// The value of the program number field in the Program Map Table. + public let programNum: Int32? + /// Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value. + public let pcrPid: String? + /// Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal value. + public let scte35Pid: String? + /// The number of milliseconds between instances of this table in the output transport stream. A value of \"0\" writes out the PMT once per segment file. + public let pmtInterval: Int32? + /// Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. + public let audioPids: String? + /// Maximum time in milliseconds between Program Clock References (PCRs) inserted into the transport stream. + public let pcrPeriod: Int32? + /// ThePlatform-protected transport streams using 'microsoft' as Target Client include an ECM stream. This ECM stream contains the size, IV, and PTS of every sample in the transport stream. This stream PID is specified here. This PID has no effect on non ThePlatform-protected streams. + public let ecmPid: String? + /// The number of audio frames to insert for each PES packet. + public let audioFramesPerPes: Int32? + /// The value of the transport stream ID field in the Program Map Table. + public let transportStreamId: Int32? + + public init(pcrControl: M3u8PcrControl? = nil, scte35Behavior: M3u8Scte35Behavior? = nil, patInterval: Int32? = nil, pmtPid: String? = nil, videoPid: String? = nil, timedMetadataBehavior: M3u8TimedMetadataBehavior? = nil, programNum: Int32? = nil, pcrPid: String? = nil, scte35Pid: String? = nil, pmtInterval: Int32? = nil, audioPids: String? = nil, pcrPeriod: Int32? = nil, ecmPid: String? = nil, audioFramesPerPes: Int32? = nil, transportStreamId: Int32? = nil) { + self.pcrControl = pcrControl + self.scte35Behavior = scte35Behavior + self.patInterval = patInterval + self.pmtPid = pmtPid + self.videoPid = videoPid + self.timedMetadataBehavior = timedMetadataBehavior + self.programNum = programNum + self.pcrPid = pcrPid + self.scte35Pid = scte35Pid + self.pmtInterval = pmtInterval + self.audioPids = audioPids + self.pcrPeriod = pcrPeriod + self.ecmPid = ecmPid + self.audioFramesPerPes = audioFramesPerPes + self.transportStreamId = transportStreamId + } + + private enum CodingKeys: String, CodingKey { + case pcrControl = "pcrControl" + case scte35Behavior = "scte35Behavior" + case patInterval = "patInterval" + case pmtPid = "pmtPid" + case videoPid = "videoPid" + case timedMetadataBehavior = "timedMetadataBehavior" + case programNum = "programNum" + case pcrPid = "pcrPid" + case scte35Pid = "scte35Pid" + case pmtInterval = "pmtInterval" + case audioPids = "audioPids" + case pcrPeriod = "pcrPeriod" + case ecmPid = "ecmPid" + case audioFramesPerPes = "audioFramesPerPes" + case transportStreamId = "transportStreamId" + } + } + + public enum HlsIvInManifest: String, CustomStringConvertible, Codable { + case exclude = "EXCLUDE" + case include = "INCLUDE" + public var description: String { return self.rawValue } + } + + public struct ChannelConfigurationValidationError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ValidationErrors", location: .body(locationName: "validationErrors"), required: false, type: .list), + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + /// A collection of validation error responses from attempting to create a channel with a bouquet of settings. + public let validationErrors: [ValidationError]? + public let message: String? + + public init(validationErrors: [ValidationError]? = nil, message: String? = nil) { + self.validationErrors = validationErrors + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case validationErrors = "validationErrors" + case message = "message" + } + } + + public struct InvalidRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + public let message: String? + + public init(message: String? = nil) { + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + } + } + + public struct AudioChannelMapping: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputChannelLevels", location: .body(locationName: "inputChannelLevels"), required: false, type: .list), + AWSShapeMember(label: "OutputChannel", location: .body(locationName: "outputChannel"), required: false, type: .integer) + ] + /// Indices and gain values for each input channel that should be remixed into this output channel. + public let inputChannelLevels: [InputChannelLevel]? + /// The index of the output channel being produced. + public let outputChannel: Int32? + + public init(inputChannelLevels: [InputChannelLevel]? = nil, outputChannel: Int32? = nil) { + self.inputChannelLevels = inputChannelLevels + self.outputChannel = outputChannel + } + + private enum CodingKeys: String, CodingKey { + case inputChannelLevels = "inputChannelLevels" + case outputChannel = "outputChannel" + } + } + + public enum BurnInBackgroundColor: String, CustomStringConvertible, Codable { + case black = "BLACK" + case none = "NONE" + case white = "WHITE" + public var description: String { return self.rawValue } + } + + public enum Scte35AposWebDeliveryAllowedBehavior: String, CustomStringConvertible, Codable { + case follow = "FOLLOW" + case ignore = "IGNORE" + public var description: String { return self.rawValue } + } + + public enum DvbSdtOutputSdt: String, CustomStringConvertible, Codable { + case sdtFollow = "SDT_FOLLOW" + case sdtFollowIfPresent = "SDT_FOLLOW_IF_PRESENT" + case sdtManual = "SDT_MANUAL" + case sdtNone = "SDT_NONE" + public var description: String { return self.rawValue } + } + + public enum HlsEncryptionType: String, CustomStringConvertible, Codable { + case aes128 = "AES128" + case sampleAes = "SAMPLE_AES" + public var description: String { return self.rawValue } + } + + public enum Eac3DrcLine: String, CustomStringConvertible, Codable { + case filmLight = "FILM_LIGHT" + case filmStandard = "FILM_STANDARD" + case musicLight = "MUSIC_LIGHT" + case musicStandard = "MUSIC_STANDARD" + case none = "NONE" + case speech = "SPEECH" + public var description: String { return self.rawValue } + } + + public struct DeleteInputSecurityGroupResponse: AWSShape { + + } + + public enum BurnInOutlineColor: String, CustomStringConvertible, Codable { + case black = "BLACK" + case blue = "BLUE" + case green = "GREEN" + case red = "RED" + case white = "WHITE" + case yellow = "YELLOW" + public var description: String { return self.rawValue } + } + + public enum Eac3LfeControl: String, CustomStringConvertible, Codable { + case lfe = "LFE" + case noLfe = "NO_LFE" + public var description: String { return self.rawValue } + } + + public enum H264AdaptiveQuantization: String, CustomStringConvertible, Codable { + case high = "HIGH" + case higher = "HIGHER" + case low = "LOW" + case max = "MAX" + case medium = "MEDIUM" + case off = "OFF" + public var description: String { return self.rawValue } + } + + public enum HlsClientCache: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct CreateChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Channel", location: .body(locationName: "channel"), required: false, type: .structure) + ] + public let channel: Channel? + + public init(channel: Channel? = nil) { + self.channel = channel + } + + private enum CodingKeys: String, CodingKey { + case channel = "channel" + } + } + + public struct Channel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "InputAttachments", location: .body(locationName: "inputAttachments"), required: false, type: .list), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "EncoderSettings", location: .body(locationName: "encoderSettings"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "EgressEndpoints", location: .body(locationName: "egressEndpoints"), required: false, type: .list), + AWSShapeMember(label: "RoleArn", location: .body(locationName: "roleArn"), required: false, type: .string), + AWSShapeMember(label: "PipelinesRunningCount", location: .body(locationName: "pipelinesRunningCount"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + /// A list of destinations of the channel. For UDP outputs, there is one + /// destination per output. For other types (HLS, for example), there is + /// one destination per packager. + public let destinations: [OutputDestination]? + /// The unique arn of the channel. + public let arn: String? + /// List of input attachments for channel. + public let inputAttachments: [InputAttachment]? + public let state: ChannelState? + public let encoderSettings: EncoderSettings? + /// The name of the channel. (user-mutable) + public let name: String? + /// The endpoints where outgoing connections initiate from + public let egressEndpoints: [ChannelEgressEndpoint]? + /// The Amazon Resource Name (ARN) of the role assumed when running the Channel. + public let roleArn: String? + /// The number of currently healthy pipelines. + public let pipelinesRunningCount: Int32? + /// The unique id of the channel. + public let id: String? + + public init(destinations: [OutputDestination]? = nil, arn: String? = nil, inputAttachments: [InputAttachment]? = nil, state: ChannelState? = nil, encoderSettings: EncoderSettings? = nil, name: String? = nil, egressEndpoints: [ChannelEgressEndpoint]? = nil, roleArn: String? = nil, pipelinesRunningCount: Int32? = nil, id: String? = nil) { + self.destinations = destinations + self.arn = arn + self.inputAttachments = inputAttachments + self.state = state + self.encoderSettings = encoderSettings + self.name = name + self.egressEndpoints = egressEndpoints + self.roleArn = roleArn + self.pipelinesRunningCount = pipelinesRunningCount + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case arn = "arn" + case inputAttachments = "inputAttachments" + case state = "state" + case encoderSettings = "encoderSettings" + case name = "name" + case egressEndpoints = "egressEndpoints" + case roleArn = "roleArn" + case pipelinesRunningCount = "pipelinesRunningCount" + case id = "id" + } + } + + public enum InputType: String, CustomStringConvertible, Codable { + case udpPush = "UDP_PUSH" + case rtpPush = "RTP_PUSH" + case rtmpPush = "RTMP_PUSH" + case rtmpPull = "RTMP_PULL" + case urlPull = "URL_PULL" + public var description: String { return self.rawValue } + } + + public struct StopChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChannelId", location: .uri(locationName: "channelId"), required: true, type: .string) + ] + public let channelId: String + + public init(channelId: String) { + self.channelId = channelId + } + + private enum CodingKeys: String, CodingKey { + case channelId = "channelId" + } + } + + public struct Ac3Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CodingMode", location: .body(locationName: "codingMode"), required: false, type: .enum), + AWSShapeMember(label: "DrcProfile", location: .body(locationName: "drcProfile"), required: false, type: .enum), + AWSShapeMember(label: "LfeFilter", location: .body(locationName: "lfeFilter"), required: false, type: .enum), + AWSShapeMember(label: "BitstreamMode", location: .body(locationName: "bitstreamMode"), required: false, type: .enum), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .double), + AWSShapeMember(label: "MetadataControl", location: .body(locationName: "metadataControl"), required: false, type: .enum), + AWSShapeMember(label: "Dialnorm", location: .body(locationName: "dialnorm"), required: false, type: .integer) + ] + /// Dolby Digital coding mode. Determines number of channels. + public let codingMode: Ac3CodingMode? + /// If set to filmStandard, adds dynamic range compression signaling to the output bitstream as defined in the Dolby Digital specification. + public let drcProfile: Ac3DrcProfile? + /// When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid in codingMode32Lfe mode. + public let lfeFilter: Ac3LfeFilter? + /// Specifies the bitstream mode (bsmod) for the emitted AC-3 stream. See ATSC A/52-2012 for background on these values. + public let bitstreamMode: Ac3BitstreamMode? + /// Average bitrate in bits/second. Valid bitrates depend on the coding mode. + public let bitrate: Double? + /// When set to "followInput", encoder metadata will be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied from one of these streams, then the static metadata settings will be used. + public let metadataControl: Ac3MetadataControl? + /// Sets the dialnorm for the output. If excluded and input audio is Dolby Digital, dialnorm will be passed through. + public let dialnorm: Int32? + + public init(codingMode: Ac3CodingMode? = nil, drcProfile: Ac3DrcProfile? = nil, lfeFilter: Ac3LfeFilter? = nil, bitstreamMode: Ac3BitstreamMode? = nil, bitrate: Double? = nil, metadataControl: Ac3MetadataControl? = nil, dialnorm: Int32? = nil) { + self.codingMode = codingMode + self.drcProfile = drcProfile + self.lfeFilter = lfeFilter + self.bitstreamMode = bitstreamMode + self.bitrate = bitrate + self.metadataControl = metadataControl + self.dialnorm = dialnorm + } + + private enum CodingKeys: String, CodingKey { + case codingMode = "codingMode" + case drcProfile = "drcProfile" + case lfeFilter = "lfeFilter" + case bitstreamMode = "bitstreamMode" + case bitrate = "bitrate" + case metadataControl = "metadataControl" + case dialnorm = "dialnorm" + } + } + + public enum H264SpatialAq: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum VideoDescriptionScalingBehavior: String, CustomStringConvertible, Codable { + case `default` = "DEFAULT" + case stretchToOutput = "STRETCH_TO_OUTPUT" + public var description: String { return self.rawValue } + } + + public enum M2tsTimedMetadataBehavior: String, CustomStringConvertible, Codable { + case noPassthrough = "NO_PASSTHROUGH" + case passthrough = "PASSTHROUGH" + public var description: String { return self.rawValue } + } + + public enum DvbSubDestinationFontColor: String, CustomStringConvertible, Codable { + case black = "BLACK" + case blue = "BLUE" + case green = "GREEN" + case red = "RED" + case white = "WHITE" + case yellow = "YELLOW" + public var description: String { return self.rawValue } + } + + public struct ArchiveContainerSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "M2tsSettings", location: .body(locationName: "m2tsSettings"), required: false, type: .structure) + ] + public let m2tsSettings: M2tsSettings? + + public init(m2tsSettings: M2tsSettings? = nil) { + self.m2tsSettings = m2tsSettings + } + + private enum CodingKeys: String, CodingKey { + case m2tsSettings = "m2tsSettings" + } + } + + public enum HlsProgramDateTime: String, CustomStringConvertible, Codable { + case exclude = "EXCLUDE" + case include = "INCLUDE" + public var description: String { return self.rawValue } + } + + public enum InputDenoiseFilter: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum M2tsArib: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct CaptionDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CaptionSelectorName", location: .body(locationName: "captionSelectorName"), required: false, type: .string), + AWSShapeMember(label: "LanguageDescription", location: .body(locationName: "languageDescription"), required: false, type: .string), + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "DestinationSettings", location: .body(locationName: "destinationSettings"), required: false, type: .structure) + ] + /// Specifies which input caption selector to use as a caption source when generating output captions. This field should match a captionSelector name. + public let captionSelectorName: String? + /// Human readable information to indicate captions available for players (eg. English, or Spanish). + public let languageDescription: String? + /// ISO 639-2 three-digit code: http://www.loc.gov/standards/iso639-2/ + public let languageCode: String? + /// Name of the caption description. Used to associate a caption description with an output. Names must be unique within an event. + public let name: String? + /// Additional settings for captions destination that depend on the destination type. + public let destinationSettings: CaptionDestinationSettings? + + public init(captionSelectorName: String? = nil, languageDescription: String? = nil, languageCode: String? = nil, name: String? = nil, destinationSettings: CaptionDestinationSettings? = nil) { + self.captionSelectorName = captionSelectorName + self.languageDescription = languageDescription + self.languageCode = languageCode + self.name = name + self.destinationSettings = destinationSettings + } + + private enum CodingKeys: String, CodingKey { + case captionSelectorName = "captionSelectorName" + case languageDescription = "languageDescription" + case languageCode = "languageCode" + case name = "name" + case destinationSettings = "destinationSettings" + } + } + + public struct OutputLocationRef: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DestinationRefId", location: .body(locationName: "destinationRefId"), required: false, type: .string) + ] + public let destinationRefId: String? + + public init(destinationRefId: String? = nil) { + self.destinationRefId = destinationRefId + } + + private enum CodingKeys: String, CodingKey { + case destinationRefId = "destinationRefId" + } + } + + public struct Scte20PlusEmbeddedDestinationSettings: AWSShape { + + } + + public struct ListInputSecurityGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "InputSecurityGroups", location: .body(locationName: "inputSecurityGroups"), required: false, type: .list) + ] + public let nextToken: String? + public let inputSecurityGroups: [InputSecurityGroup]? + + public init(nextToken: String? = nil, inputSecurityGroups: [InputSecurityGroup]? = nil) { + self.nextToken = nextToken + self.inputSecurityGroups = inputSecurityGroups + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case inputSecurityGroups = "inputSecurityGroups" + } + } + + public struct AudioLanguageSelection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .string), + AWSShapeMember(label: "LanguageSelectionPolicy", location: .body(locationName: "languageSelectionPolicy"), required: false, type: .enum) + ] + /// Selects a specific three-letter language code from within an audio source. + public let languageCode: String? + /// When set to "strict", the transport stream demux strictly identifies audio streams by their language descriptor. If a PMT update occurs such that an audio stream matching the initially selected language is no longer present then mute will be encoded until the language returns. If "loose", then on a PMT update the demux will choose another audio stream in the program with the same stream type if it can't find one with the same language. + public let languageSelectionPolicy: AudioLanguageSelectionPolicy? + + public init(languageCode: String? = nil, languageSelectionPolicy: AudioLanguageSelectionPolicy? = nil) { + self.languageCode = languageCode + self.languageSelectionPolicy = languageSelectionPolicy + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "languageCode" + case languageSelectionPolicy = "languageSelectionPolicy" + } + } + + public enum Eac3PhaseControl: String, CustomStringConvertible, Codable { + case noShift = "NO_SHIFT" + case shift90Degrees = "SHIFT_90_DEGREES" + public var description: String { return self.rawValue } + } + + public struct CreateChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "InputAttachments", location: .body(locationName: "inputAttachments"), required: false, type: .list), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Reserved", location: .body(locationName: "reserved"), required: false, type: .string), + AWSShapeMember(label: "EncoderSettings", location: .body(locationName: "encoderSettings"), required: false, type: .structure), + AWSShapeMember(label: "RoleArn", location: .body(locationName: "roleArn"), required: false, type: .string), + AWSShapeMember(label: "RequestId", location: .body(locationName: "requestId"), required: false, type: .string) + ] + public let destinations: [OutputDestination]? + public let inputAttachments: [InputAttachment]? + public let name: String? + public let reserved: String? + public let encoderSettings: EncoderSettings? + public let roleArn: String? + public let requestId: String? + + public init(destinations: [OutputDestination]? = nil, inputAttachments: [InputAttachment]? = nil, name: String? = nil, reserved: String? = nil, encoderSettings: EncoderSettings? = nil, roleArn: String? = nil, requestId: String? = nil) { + self.destinations = destinations + self.inputAttachments = inputAttachments + self.name = name + self.reserved = reserved + self.encoderSettings = encoderSettings + self.roleArn = roleArn + self.requestId = requestId + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case inputAttachments = "inputAttachments" + case name = "name" + case reserved = "reserved" + case encoderSettings = "encoderSettings" + case roleArn = "roleArn" + case requestId = "requestId" + } + } + + public struct OutputDestination: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Settings", location: .body(locationName: "settings"), required: false, type: .list), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + /// Destination settings for output; one for each redundant encoder. + public let settings: [OutputDestinationSettings]? + /// User-specified id. This is used in an output group or an output. + public let id: String? + + public init(settings: [OutputDestinationSettings]? = nil, id: String? = nil) { + self.settings = settings + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case settings = "settings" + case id = "id" + } + } + + public struct DeleteChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChannelId", location: .uri(locationName: "channelId"), required: true, type: .string) + ] + public let channelId: String + + public init(channelId: String) { + self.channelId = channelId + } + + private enum CodingKeys: String, CodingKey { + case channelId = "channelId" + } + } + + public struct OutputDestinationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PasswordParam", location: .body(locationName: "passwordParam"), required: false, type: .string), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), + AWSShapeMember(label: "Username", location: .body(locationName: "username"), required: false, type: .string) + ] + /// key used to extract the password from EC2 Parameter store + public let passwordParam: String? + /// A URL specifying a destination + public let url: String? + /// username for destination + public let username: String? + + public init(passwordParam: String? = nil, url: String? = nil, username: String? = nil) { + self.passwordParam = passwordParam + self.url = url + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case passwordParam = "passwordParam" + case url = "url" + case username = "username" + } + } + + public enum H264GopBReference: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct DeleteInputSecurityGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputSecurityGroupId", location: .uri(locationName: "inputSecurityGroupId"), required: true, type: .string) + ] + public let inputSecurityGroupId: String + + public init(inputSecurityGroupId: String) { + self.inputSecurityGroupId = inputSecurityGroupId + } + + private enum CodingKeys: String, CodingKey { + case inputSecurityGroupId = "inputSecurityGroupId" + } + } + + public struct HlsMediaStoreSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConnectionRetryInterval", location: .body(locationName: "connectionRetryInterval"), required: false, type: .integer), + AWSShapeMember(label: "MediaStoreStorageClass", location: .body(locationName: "mediaStoreStorageClass"), required: false, type: .enum), + AWSShapeMember(label: "FilecacheDuration", location: .body(locationName: "filecacheDuration"), required: false, type: .integer), + AWSShapeMember(label: "NumRetries", location: .body(locationName: "numRetries"), required: false, type: .integer), + AWSShapeMember(label: "RestartDelay", location: .body(locationName: "restartDelay"), required: false, type: .integer) + ] + /// Number of seconds to wait before retrying connection to the CDN if the connection is lost. + public let connectionRetryInterval: Int32? + /// When set to temporal, output files are stored in non-persistent memory for faster reading and writing. + public let mediaStoreStorageClass: HlsMediaStoreStorageClass? + /// Size in seconds of file cache for streaming outputs. + public let filecacheDuration: Int32? + /// Number of retry attempts that will be made before the Live Event is put into an error state. + public let numRetries: Int32? + /// If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart. + public let restartDelay: Int32? + + public init(connectionRetryInterval: Int32? = nil, mediaStoreStorageClass: HlsMediaStoreStorageClass? = nil, filecacheDuration: Int32? = nil, numRetries: Int32? = nil, restartDelay: Int32? = nil) { + self.connectionRetryInterval = connectionRetryInterval + self.mediaStoreStorageClass = mediaStoreStorageClass + self.filecacheDuration = filecacheDuration + self.numRetries = numRetries + self.restartDelay = restartDelay + } + + private enum CodingKeys: String, CodingKey { + case connectionRetryInterval = "connectionRetryInterval" + case mediaStoreStorageClass = "mediaStoreStorageClass" + case filecacheDuration = "filecacheDuration" + case numRetries = "numRetries" + case restartDelay = "restartDelay" + } + } + + public enum HlsStreamInfResolution: String, CustomStringConvertible, Codable { + case exclude = "EXCLUDE" + case include = "INCLUDE" + public var description: String { return self.rawValue } + } + + public struct VideoSelectorProgramId: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProgramId", location: .body(locationName: "programId"), required: false, type: .integer) + ] + /// Selects a specific program from within a multi-program transport stream. If the program doesn't exist, the first program within the transport stream will be selected by default. + public let programId: Int32? + + public init(programId: Int32? = nil) { + self.programId = programId + } + + private enum CodingKeys: String, CodingKey { + case programId = "programId" + } + } + + public struct StandardHlsSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AudioRenditionSets", location: .body(locationName: "audioRenditionSets"), required: false, type: .string), + AWSShapeMember(label: "M3u8Settings", location: .body(locationName: "m3u8Settings"), required: false, type: .structure) + ] + /// List all the audio groups that are used with the video output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','. + public let audioRenditionSets: String? + public let m3u8Settings: M3u8Settings? + + public init(audioRenditionSets: String? = nil, m3u8Settings: M3u8Settings? = nil) { + self.audioRenditionSets = audioRenditionSets + self.m3u8Settings = m3u8Settings + } + + private enum CodingKeys: String, CodingKey { + case audioRenditionSets = "audioRenditionSets" + case m3u8Settings = "m3u8Settings" + } + } + + public struct ChannelSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "InputAttachments", location: .body(locationName: "inputAttachments"), required: false, type: .list), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "EgressEndpoints", location: .body(locationName: "egressEndpoints"), required: false, type: .list), + AWSShapeMember(label: "RoleArn", location: .body(locationName: "roleArn"), required: false, type: .string), + AWSShapeMember(label: "PipelinesRunningCount", location: .body(locationName: "pipelinesRunningCount"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + /// A list of destinations of the channel. For UDP outputs, there is one + /// destination per output. For other types (HLS, for example), there is + /// one destination per packager. + public let destinations: [OutputDestination]? + /// The unique arn of the channel. + public let arn: String? + /// List of input attachments for channel. + public let inputAttachments: [InputAttachment]? + public let state: ChannelState? + /// The name of the channel. (user-mutable) + public let name: String? + /// The endpoints where outgoing connections initiate from + public let egressEndpoints: [ChannelEgressEndpoint]? + /// The Amazon Resource Name (ARN) of the role assumed when running the Channel. + public let roleArn: String? + /// The number of currently healthy pipelines. + public let pipelinesRunningCount: Int32? + /// The unique id of the channel. + public let id: String? + + public init(destinations: [OutputDestination]? = nil, arn: String? = nil, inputAttachments: [InputAttachment]? = nil, state: ChannelState? = nil, name: String? = nil, egressEndpoints: [ChannelEgressEndpoint]? = nil, roleArn: String? = nil, pipelinesRunningCount: Int32? = nil, id: String? = nil) { + self.destinations = destinations + self.arn = arn + self.inputAttachments = inputAttachments + self.state = state + self.name = name + self.egressEndpoints = egressEndpoints + self.roleArn = roleArn + self.pipelinesRunningCount = pipelinesRunningCount + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case arn = "arn" + case inputAttachments = "inputAttachments" + case state = "state" + case name = "name" + case egressEndpoints = "egressEndpoints" + case roleArn = "roleArn" + case pipelinesRunningCount = "pipelinesRunningCount" + case id = "id" + } + } + + public enum HlsMediaStoreStorageClass: String, CustomStringConvertible, Codable { + case temporal = "TEMPORAL" + public var description: String { return self.rawValue } + } + + public enum VideoSelectorColorSpaceUsage: String, CustomStringConvertible, Codable { + case fallback = "FALLBACK" + case force = "FORCE" + public var description: String { return self.rawValue } + } + + public struct SmpteTtDestinationSettings: AWSShape { + + } + + public enum M2tsEbifControl: String, CustomStringConvertible, Codable { + case none = "NONE" + case passthrough = "PASSTHROUGH" + public var description: String { return self.rawValue } + } + + public struct UdpContainerSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "M2tsSettings", location: .body(locationName: "m2tsSettings"), required: false, type: .structure) + ] + public let m2tsSettings: M2tsSettings? + + public init(m2tsSettings: M2tsSettings? = nil) { + self.m2tsSettings = m2tsSettings + } + + private enum CodingKeys: String, CodingKey { + case m2tsSettings = "m2tsSettings" + } + } + + public enum M2tsScte35Control: String, CustomStringConvertible, Codable { + case none = "NONE" + case passthrough = "PASSTHROUGH" + public var description: String { return self.rawValue } + } + + public struct Input: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "securityGroups"), required: false, type: .list), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "AttachedChannels", location: .body(locationName: "attachedChannels"), required: false, type: .list), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Sources", location: .body(locationName: "sources"), required: false, type: .list), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + /// List of destinations of input (PULL-type) + public let destinations: [InputDestination]? + /// List of IDs for all the security groups attached to the input. + public let securityGroups: [String]? + /// Unique ARN of input (generated, immutable) + public let arn: String? + /// List of channel IDs that that input is attached to (currently an input can only be attached to one channel) + public let attachedChannels: [String]? + public let state: InputState? + /// user-assigned name (mutable) + public let name: String? + /// List of sources of input (PULL-type) + public let sources: [InputSource]? + public let `type`: InputType? + /// generated ID of input (unique for user account, immutable) + public let id: String? + + public init(destinations: [InputDestination]? = nil, securityGroups: [String]? = nil, arn: String? = nil, attachedChannels: [String]? = nil, state: InputState? = nil, name: String? = nil, sources: [InputSource]? = nil, type: InputType? = nil, id: String? = nil) { + self.destinations = destinations + self.securityGroups = securityGroups + self.arn = arn + self.attachedChannels = attachedChannels + self.state = state + self.name = name + self.sources = sources + self.`type` = `type` + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case securityGroups = "securityGroups" + case arn = "arn" + case attachedChannels = "attachedChannels" + case state = "state" + case name = "name" + case sources = "sources" + case `type` = "type" + case id = "id" + } + } + + public enum GlobalConfigurationInputEndAction: String, CustomStringConvertible, Codable { + case none = "NONE" + case switchAndLoopInputs = "SWITCH_AND_LOOP_INPUTS" + public var description: String { return self.rawValue } + } + + public enum GlobalConfigurationLowFramerateInputs: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public enum H264ParControl: String, CustomStringConvertible, Codable { + case initializeFromSource = "INITIALIZE_FROM_SOURCE" + case specified = "SPECIFIED" + public var description: String { return self.rawValue } + } + + public enum EmbeddedConvert608To708: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case upconvert = "UPCONVERT" + public var description: String { return self.rawValue } + } + + public struct CreateInputSecurityGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WhitelistRules", location: .body(locationName: "whitelistRules"), required: false, type: .list) + ] + public let whitelistRules: [InputWhitelistRuleCidr]? + + public init(whitelistRules: [InputWhitelistRuleCidr]? = nil) { + self.whitelistRules = whitelistRules + } + + private enum CodingKeys: String, CodingKey { + case whitelistRules = "whitelistRules" + } + } + + public struct OutputGroupSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MsSmoothGroupSettings", location: .body(locationName: "msSmoothGroupSettings"), required: false, type: .structure), + AWSShapeMember(label: "ArchiveGroupSettings", location: .body(locationName: "archiveGroupSettings"), required: false, type: .structure), + AWSShapeMember(label: "UdpGroupSettings", location: .body(locationName: "udpGroupSettings"), required: false, type: .structure), + AWSShapeMember(label: "HlsGroupSettings", location: .body(locationName: "hlsGroupSettings"), required: false, type: .structure) + ] + public let msSmoothGroupSettings: MsSmoothGroupSettings? + public let archiveGroupSettings: ArchiveGroupSettings? + public let udpGroupSettings: UdpGroupSettings? + public let hlsGroupSettings: HlsGroupSettings? + + public init(msSmoothGroupSettings: MsSmoothGroupSettings? = nil, archiveGroupSettings: ArchiveGroupSettings? = nil, udpGroupSettings: UdpGroupSettings? = nil, hlsGroupSettings: HlsGroupSettings? = nil) { + self.msSmoothGroupSettings = msSmoothGroupSettings + self.archiveGroupSettings = archiveGroupSettings + self.udpGroupSettings = udpGroupSettings + self.hlsGroupSettings = hlsGroupSettings + } + + private enum CodingKeys: String, CodingKey { + case msSmoothGroupSettings = "msSmoothGroupSettings" + case archiveGroupSettings = "archiveGroupSettings" + case udpGroupSettings = "udpGroupSettings" + case hlsGroupSettings = "hlsGroupSettings" + } + } + + public enum H264FlickerAq: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct DvbTdtSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RepInterval", location: .body(locationName: "repInterval"), required: false, type: .integer) + ] + /// The number of milliseconds between instances of this table in the output transport stream. + public let repInterval: Int32? + + public init(repInterval: Int32? = nil) { + self.repInterval = repInterval + } + + private enum CodingKeys: String, CodingKey { + case repInterval = "repInterval" + } + } + + public struct AudioNormalizationSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Algorithm", location: .body(locationName: "algorithm"), required: false, type: .enum), + AWSShapeMember(label: "AlgorithmControl", location: .body(locationName: "algorithmControl"), required: false, type: .enum), + AWSShapeMember(label: "TargetLkfs", location: .body(locationName: "targetLkfs"), required: false, type: .double) + ] + /// Audio normalization algorithm to use. itu17701 conforms to the CALM Act specification, itu17702 conforms to the EBU R-128 specification. + public let algorithm: AudioNormalizationAlgorithm? + /// When set to correctAudio the output audio is corrected using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted. + public let algorithmControl: AudioNormalizationAlgorithmControl? + /// Target LKFS(loudness) to adjust volume to. If no value is entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS. + public let targetLkfs: Double? + + public init(algorithm: AudioNormalizationAlgorithm? = nil, algorithmControl: AudioNormalizationAlgorithmControl? = nil, targetLkfs: Double? = nil) { + self.algorithm = algorithm + self.algorithmControl = algorithmControl + self.targetLkfs = targetLkfs + } + + private enum CodingKeys: String, CodingKey { + case algorithm = "algorithm" + case algorithmControl = "algorithmControl" + case targetLkfs = "targetLkfs" + } + } + + public struct DvbSdtSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RepInterval", location: .body(locationName: "repInterval"), required: false, type: .integer), + AWSShapeMember(label: "ServiceName", location: .body(locationName: "serviceName"), required: false, type: .string), + AWSShapeMember(label: "ServiceProviderName", location: .body(locationName: "serviceProviderName"), required: false, type: .string), + AWSShapeMember(label: "OutputSdt", location: .body(locationName: "outputSdt"), required: false, type: .enum) + ] + /// The number of milliseconds between instances of this table in the output transport stream. + public let repInterval: Int32? + /// The service name placed in the serviceDescriptor in the Service Description Table. Maximum length is 256 characters. + public let serviceName: String? + /// The service provider name placed in the serviceDescriptor in the Service Description Table. Maximum length is 256 characters. + public let serviceProviderName: String? + /// Selects method of inserting SDT information into output stream. The sdtFollow setting copies SDT information from input stream to output stream. The sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT information is present in the input, otherwise it will fall back on the user-defined values. The sdtManual setting means user will enter the SDT information. The sdtNone setting means output stream will not contain SDT information. + public let outputSdt: DvbSdtOutputSdt? + + public init(repInterval: Int32? = nil, serviceName: String? = nil, serviceProviderName: String? = nil, outputSdt: DvbSdtOutputSdt? = nil) { + self.repInterval = repInterval + self.serviceName = serviceName + self.serviceProviderName = serviceProviderName + self.outputSdt = outputSdt + } + + private enum CodingKeys: String, CodingKey { + case repInterval = "repInterval" + case serviceName = "serviceName" + case serviceProviderName = "serviceProviderName" + case outputSdt = "outputSdt" + } + } + + public struct AribDestinationSettings: AWSShape { + + } + + public struct StaticKeySettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KeyProviderServer", location: .body(locationName: "keyProviderServer"), required: false, type: .structure), + AWSShapeMember(label: "StaticKeyValue", location: .body(locationName: "staticKeyValue"), required: false, type: .string) + ] + /// The URL of the license server used for protecting content. + public let keyProviderServer: InputLocation? + /// Static key value as a 32 character hexadecimal string. + public let staticKeyValue: String? + + public init(keyProviderServer: InputLocation? = nil, staticKeyValue: String? = nil) { + self.keyProviderServer = keyProviderServer + self.staticKeyValue = staticKeyValue + } + + private enum CodingKeys: String, CodingKey { + case keyProviderServer = "keyProviderServer" + case staticKeyValue = "staticKeyValue" + } + } + + public enum H264ColorMetadata: String, CustomStringConvertible, Codable { + case ignore = "IGNORE" + case insert = "INSERT" + public var description: String { return self.rawValue } + } + + public struct CreateInputSecurityGroupResultModel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SecurityGroup", location: .body(locationName: "securityGroup"), required: false, type: .structure) + ] + public let securityGroup: InputSecurityGroup? + + public init(securityGroup: InputSecurityGroup? = nil) { + self.securityGroup = securityGroup + } + + private enum CodingKeys: String, CodingKey { + case securityGroup = "securityGroup" + } + } + + public enum Eac3StereoDownmix: String, CustomStringConvertible, Codable { + case dpl2 = "DPL2" + case loRo = "LO_RO" + case ltRt = "LT_RT" + case notIndicated = "NOT_INDICATED" + public var description: String { return self.rawValue } + } + + public struct DescribeInputSecurityGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputSecurityGroupId", location: .uri(locationName: "inputSecurityGroupId"), required: true, type: .string) + ] + public let inputSecurityGroupId: String + + public init(inputSecurityGroupId: String) { + self.inputSecurityGroupId = inputSecurityGroupId + } + + private enum CodingKeys: String, CodingKey { + case inputSecurityGroupId = "inputSecurityGroupId" + } + } + + public enum M2tsSegmentationStyle: String, CustomStringConvertible, Codable { + case maintainCadence = "MAINTAIN_CADENCE" + case resetCadence = "RESET_CADENCE" + public var description: String { return self.rawValue } + } + + public enum M2tsSegmentationMarkers: String, CustomStringConvertible, Codable { + case ebp = "EBP" + case ebpLegacy = "EBP_LEGACY" + case none = "NONE" + case psiSegstart = "PSI_SEGSTART" + case raiAdapt = "RAI_ADAPT" + case raiSegstart = "RAI_SEGSTART" + public var description: String { return self.rawValue } + } + + public enum AacSpec: String, CustomStringConvertible, Codable { + case mpeg2 = "MPEG2" + case mpeg4 = "MPEG4" + public var description: String { return self.rawValue } + } + + public struct Mp2Settings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CodingMode", location: .body(locationName: "codingMode"), required: false, type: .enum), + AWSShapeMember(label: "Bitrate", location: .body(locationName: "bitrate"), required: false, type: .double), + AWSShapeMember(label: "SampleRate", location: .body(locationName: "sampleRate"), required: false, type: .double) + ] + /// The MPEG2 Audio coding mode. Valid values are codingMode10 (for mono) or codingMode20 (for stereo). + public let codingMode: Mp2CodingMode? + /// Average bitrate in bits/second. + public let bitrate: Double? + /// Sample rate in Hz. + public let sampleRate: Double? + + public init(codingMode: Mp2CodingMode? = nil, bitrate: Double? = nil, sampleRate: Double? = nil) { + self.codingMode = codingMode + self.bitrate = bitrate + self.sampleRate = sampleRate + } + + private enum CodingKeys: String, CodingKey { + case codingMode = "codingMode" + case bitrate = "bitrate" + case sampleRate = "sampleRate" + } + } + + public struct Scte35TimeSignalApos: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NoRegionalBlackoutFlag", location: .body(locationName: "noRegionalBlackoutFlag"), required: false, type: .enum), + AWSShapeMember(label: "AdAvailOffset", location: .body(locationName: "adAvailOffset"), required: false, type: .integer), + AWSShapeMember(label: "WebDeliveryAllowedFlag", location: .body(locationName: "webDeliveryAllowedFlag"), required: false, type: .enum) + ] + /// When set to ignore, Segment Descriptors with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates + public let noRegionalBlackoutFlag: Scte35AposNoRegionalBlackoutBehavior? + /// When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply to OOB messages. + public let adAvailOffset: Int32? + /// When set to ignore, Segment Descriptors with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates + public let webDeliveryAllowedFlag: Scte35AposWebDeliveryAllowedBehavior? + + public init(noRegionalBlackoutFlag: Scte35AposNoRegionalBlackoutBehavior? = nil, adAvailOffset: Int32? = nil, webDeliveryAllowedFlag: Scte35AposWebDeliveryAllowedBehavior? = nil) { + self.noRegionalBlackoutFlag = noRegionalBlackoutFlag + self.adAvailOffset = adAvailOffset + self.webDeliveryAllowedFlag = webDeliveryAllowedFlag + } + + private enum CodingKeys: String, CodingKey { + case noRegionalBlackoutFlag = "noRegionalBlackoutFlag" + case adAvailOffset = "adAvailOffset" + case webDeliveryAllowedFlag = "webDeliveryAllowedFlag" + } + } + + public struct AudioCodecSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Mp2Settings", location: .body(locationName: "mp2Settings"), required: false, type: .structure), + AWSShapeMember(label: "AacSettings", location: .body(locationName: "aacSettings"), required: false, type: .structure), + AWSShapeMember(label: "Ac3Settings", location: .body(locationName: "ac3Settings"), required: false, type: .structure), + AWSShapeMember(label: "PassThroughSettings", location: .body(locationName: "passThroughSettings"), required: false, type: .structure), + AWSShapeMember(label: "Eac3Settings", location: .body(locationName: "eac3Settings"), required: false, type: .structure) + ] + public let mp2Settings: Mp2Settings? + public let aacSettings: AacSettings? + public let ac3Settings: Ac3Settings? + public let passThroughSettings: PassThroughSettings? + public let eac3Settings: Eac3Settings? + + public init(mp2Settings: Mp2Settings? = nil, aacSettings: AacSettings? = nil, ac3Settings: Ac3Settings? = nil, passThroughSettings: PassThroughSettings? = nil, eac3Settings: Eac3Settings? = nil) { + self.mp2Settings = mp2Settings + self.aacSettings = aacSettings + self.ac3Settings = ac3Settings + self.passThroughSettings = passThroughSettings + self.eac3Settings = eac3Settings + } + + private enum CodingKeys: String, CodingKey { + case mp2Settings = "mp2Settings" + case aacSettings = "aacSettings" + case ac3Settings = "ac3Settings" + case passThroughSettings = "passThroughSettings" + case eac3Settings = "eac3Settings" + } + } + + public enum HlsIvSource: String, CustomStringConvertible, Codable { + case explicit = "EXPLICIT" + case followsSegmentNumber = "FOLLOWS_SEGMENT_NUMBER" + public var description: String { return self.rawValue } + } + + public struct AvailConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailSettings", location: .body(locationName: "availSettings"), required: false, type: .structure) + ] + /// Ad avail settings. + public let availSettings: AvailSettings? + + public init(availSettings: AvailSettings? = nil) { + self.availSettings = availSettings + } + + private enum CodingKeys: String, CodingKey { + case availSettings = "availSettings" + } + } + + public struct StopChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "InputAttachments", location: .body(locationName: "inputAttachments"), required: false, type: .list), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "EncoderSettings", location: .body(locationName: "encoderSettings"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "EgressEndpoints", location: .body(locationName: "egressEndpoints"), required: false, type: .list), + AWSShapeMember(label: "RoleArn", location: .body(locationName: "roleArn"), required: false, type: .string), + AWSShapeMember(label: "PipelinesRunningCount", location: .body(locationName: "pipelinesRunningCount"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let destinations: [OutputDestination]? + public let arn: String? + public let inputAttachments: [InputAttachment]? + public let state: ChannelState? + public let encoderSettings: EncoderSettings? + public let name: String? + public let egressEndpoints: [ChannelEgressEndpoint]? + public let roleArn: String? + public let pipelinesRunningCount: Int32? + public let id: String? + + public init(destinations: [OutputDestination]? = nil, arn: String? = nil, inputAttachments: [InputAttachment]? = nil, state: ChannelState? = nil, encoderSettings: EncoderSettings? = nil, name: String? = nil, egressEndpoints: [ChannelEgressEndpoint]? = nil, roleArn: String? = nil, pipelinesRunningCount: Int32? = nil, id: String? = nil) { + self.destinations = destinations + self.arn = arn + self.inputAttachments = inputAttachments + self.state = state + self.encoderSettings = encoderSettings + self.name = name + self.egressEndpoints = egressEndpoints + self.roleArn = roleArn + self.pipelinesRunningCount = pipelinesRunningCount + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case arn = "arn" + case inputAttachments = "inputAttachments" + case state = "state" + case encoderSettings = "encoderSettings" + case name = "name" + case egressEndpoints = "egressEndpoints" + case roleArn = "roleArn" + case pipelinesRunningCount = "pipelinesRunningCount" + case id = "id" + } + } + + public struct AvailSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Scte35TimeSignalApos", location: .body(locationName: "scte35TimeSignalApos"), required: false, type: .structure), + AWSShapeMember(label: "Scte35SpliceInsert", location: .body(locationName: "scte35SpliceInsert"), required: false, type: .structure) + ] + public let scte35TimeSignalApos: Scte35TimeSignalApos? + public let scte35SpliceInsert: Scte35SpliceInsert? + + public init(scte35TimeSignalApos: Scte35TimeSignalApos? = nil, scte35SpliceInsert: Scte35SpliceInsert? = nil) { + self.scte35TimeSignalApos = scte35TimeSignalApos + self.scte35SpliceInsert = scte35SpliceInsert + } + + private enum CodingKeys: String, CodingKey { + case scte35TimeSignalApos = "scte35TimeSignalApos" + case scte35SpliceInsert = "scte35SpliceInsert" + } + } + + public struct EmbeddedPlusScte20DestinationSettings: AWSShape { + + } + + public enum HlsManifestCompression: String, CustomStringConvertible, Codable { + case gzip = "GZIP" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public enum AacRawFormat: String, CustomStringConvertible, Codable { + case latmLoas = "LATM_LOAS" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct DescribeChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "InputAttachments", location: .body(locationName: "inputAttachments"), required: false, type: .list), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "EncoderSettings", location: .body(locationName: "encoderSettings"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "EgressEndpoints", location: .body(locationName: "egressEndpoints"), required: false, type: .list), + AWSShapeMember(label: "RoleArn", location: .body(locationName: "roleArn"), required: false, type: .string), + AWSShapeMember(label: "PipelinesRunningCount", location: .body(locationName: "pipelinesRunningCount"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let destinations: [OutputDestination]? + public let arn: String? + public let inputAttachments: [InputAttachment]? + public let state: ChannelState? + public let encoderSettings: EncoderSettings? + public let name: String? + public let egressEndpoints: [ChannelEgressEndpoint]? + public let roleArn: String? + public let pipelinesRunningCount: Int32? + public let id: String? + + public init(destinations: [OutputDestination]? = nil, arn: String? = nil, inputAttachments: [InputAttachment]? = nil, state: ChannelState? = nil, encoderSettings: EncoderSettings? = nil, name: String? = nil, egressEndpoints: [ChannelEgressEndpoint]? = nil, roleArn: String? = nil, pipelinesRunningCount: Int32? = nil, id: String? = nil) { + self.destinations = destinations + self.arn = arn + self.inputAttachments = inputAttachments + self.state = state + self.encoderSettings = encoderSettings + self.name = name + self.egressEndpoints = egressEndpoints + self.roleArn = roleArn + self.pipelinesRunningCount = pipelinesRunningCount + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case arn = "arn" + case inputAttachments = "inputAttachments" + case state = "state" + case encoderSettings = "encoderSettings" + case name = "name" + case egressEndpoints = "egressEndpoints" + case roleArn = "roleArn" + case pipelinesRunningCount = "pipelinesRunningCount" + case id = "id" + } + } + + public enum AudioDescriptionLanguageCodeControl: String, CustomStringConvertible, Codable { + case followInput = "FOLLOW_INPUT" + case useConfigured = "USE_CONFIGURED" + public var description: String { return self.rawValue } + } + + public struct InputDestinationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamName", location: .body(locationName: "streamName"), required: false, type: .string) + ] + /// A unique name for the location the RTMP stream is being pushed + /// to. + public let streamName: String? + + public init(streamName: String? = nil) { + self.streamName = streamName + } + + private enum CodingKeys: String, CodingKey { + case streamName = "streamName" + } + } + + public struct EmbeddedSourceSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Source608ChannelNumber", location: .body(locationName: "source608ChannelNumber"), required: false, type: .integer), + AWSShapeMember(label: "Convert608To708", location: .body(locationName: "convert608To708"), required: false, type: .enum), + AWSShapeMember(label: "Source608TrackNumber", location: .body(locationName: "source608TrackNumber"), required: false, type: .integer), + AWSShapeMember(label: "Scte20Detection", location: .body(locationName: "scte20Detection"), required: false, type: .enum) + ] + /// Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough. + public let source608ChannelNumber: Int32? + /// If upconvert, 608 data is both passed through via the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present in the source content will be discarded. + public let convert608To708: EmbeddedConvert608To708? + /// This field is unused and deprecated. + public let source608TrackNumber: Int32? + /// Set to "auto" to handle streams with intermittent and/or non-aligned SCTE-20 and Embedded captions. + public let scte20Detection: EmbeddedScte20Detection? + + public init(source608ChannelNumber: Int32? = nil, convert608To708: EmbeddedConvert608To708? = nil, source608TrackNumber: Int32? = nil, scte20Detection: EmbeddedScte20Detection? = nil) { + self.source608ChannelNumber = source608ChannelNumber + self.convert608To708 = convert608To708 + self.source608TrackNumber = source608TrackNumber + self.scte20Detection = scte20Detection + } + + private enum CodingKeys: String, CodingKey { + case source608ChannelNumber = "source608ChannelNumber" + case convert608To708 = "convert608To708" + case source608TrackNumber = "source608TrackNumber" + case scte20Detection = "scte20Detection" + } + } + + public struct VideoSelectorSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VideoSelectorPid", location: .body(locationName: "videoSelectorPid"), required: false, type: .structure), + AWSShapeMember(label: "VideoSelectorProgramId", location: .body(locationName: "videoSelectorProgramId"), required: false, type: .structure) + ] + public let videoSelectorPid: VideoSelectorPid? + public let videoSelectorProgramId: VideoSelectorProgramId? + + public init(videoSelectorPid: VideoSelectorPid? = nil, videoSelectorProgramId: VideoSelectorProgramId? = nil) { + self.videoSelectorPid = videoSelectorPid + self.videoSelectorProgramId = videoSelectorProgramId + } + + private enum CodingKeys: String, CodingKey { + case videoSelectorPid = "videoSelectorPid" + case videoSelectorProgramId = "videoSelectorProgramId" + } + } + + public enum AudioLanguageSelectionPolicy: String, CustomStringConvertible, Codable { + case loose = "LOOSE" + case strict = "STRICT" + public var description: String { return self.rawValue } + } + + public enum HlsTsFileMode: String, CustomStringConvertible, Codable { + case segmentedFiles = "SEGMENTED_FILES" + case singleFile = "SINGLE_FILE" + public var description: String { return self.rawValue } + } + + public enum NetworkInputServerValidation: String, CustomStringConvertible, Codable { + case checkCryptographyAndValidateName = "CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME" + case checkCryptographyOnly = "CHECK_CRYPTOGRAPHY_ONLY" + public var description: String { return self.rawValue } + } + + public enum InputDeblockFilter: String, CustomStringConvertible, Codable { + case disabled = "DISABLED" + case enabled = "ENABLED" + public var description: String { return self.rawValue } + } + + public struct InputSecurityGroupWhitelistRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WhitelistRules", location: .body(locationName: "whitelistRules"), required: false, type: .list) + ] + /// List of IPv4 CIDR addresses to whitelist + public let whitelistRules: [InputWhitelistRuleCidr]? + + public init(whitelistRules: [InputWhitelistRuleCidr]? = nil) { + self.whitelistRules = whitelistRules + } + + private enum CodingKeys: String, CodingKey { + case whitelistRules = "whitelistRules" + } + } + + public struct Empty: AWSShape { + + } + + public struct LimitExceeded: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string) + ] + public let message: String? + + public init(message: String? = nil) { + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + } + } + + public struct DescribeInputRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputId", location: .uri(locationName: "inputId"), required: true, type: .string) + ] + public let inputId: String + + public init(inputId: String) { + self.inputId = inputId + } + + private enum CodingKeys: String, CodingKey { + case inputId = "inputId" + } + } + + public enum HlsTimedMetadataId3Frame: String, CustomStringConvertible, Codable { + case none = "NONE" + case priv = "PRIV" + case tdrl = "TDRL" + public var description: String { return self.rawValue } + } + + public enum AacRateControlMode: String, CustomStringConvertible, Codable { + case cbr = "CBR" + case vbr = "VBR" + public var description: String { return self.rawValue } + } + + public enum BurnInTeletextGridControl: String, CustomStringConvertible, Codable { + case fixed = "FIXED" + case scaled = "SCALED" + public var description: String { return self.rawValue } + } + + public struct ListInputsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Inputs", location: .body(locationName: "inputs"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + public let inputs: [Input]? + public let nextToken: String? + + public init(inputs: [Input]? = nil, nextToken: String? = nil) { + self.inputs = inputs + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case inputs = "inputs" + case nextToken = "nextToken" + } + } + + public enum M2tsPcrControl: String, CustomStringConvertible, Codable { + case configuredPcrPeriod = "CONFIGURED_PCR_PERIOD" + case pcrEveryPesPacket = "PCR_EVERY_PES_PACKET" + public var description: String { return self.rawValue } + } + + public enum Ac3MetadataControl: String, CustomStringConvertible, Codable { + case followInput = "FOLLOW_INPUT" + case useConfigured = "USE_CONFIGURED" + public var description: String { return self.rawValue } + } + + public struct InputAttachment: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InputSettings", location: .body(locationName: "inputSettings"), required: false, type: .structure), + AWSShapeMember(label: "InputId", location: .body(locationName: "inputId"), required: false, type: .string) + ] + /// Settings of an input (caption selector, etc.) + public let inputSettings: InputSettings? + /// The ID of the input + public let inputId: String? + + public init(inputSettings: InputSettings? = nil, inputId: String? = nil) { + self.inputSettings = inputSettings + self.inputId = inputId + } + + private enum CodingKeys: String, CodingKey { + case inputSettings = "inputSettings" + case inputId = "inputId" + } + } + + public struct ArchiveOutputSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NameModifier", location: .body(locationName: "nameModifier"), required: false, type: .string), + AWSShapeMember(label: "ContainerSettings", location: .body(locationName: "containerSettings"), required: false, type: .structure), + AWSShapeMember(label: "Extension", location: .body(locationName: "extension"), required: false, type: .string) + ] + /// String concatenated to the end of the destination filename. Required for multiple outputs of the same type. + public let nameModifier: String? + /// Settings specific to the container type of the file. + public let containerSettings: ArchiveContainerSettings? + /// Output file extension. If excluded, this will be auto-selected from the container type. + public let `extension`: String? + + public init(nameModifier: String? = nil, containerSettings: ArchiveContainerSettings? = nil, extension: String? = nil) { + self.nameModifier = nameModifier + self.containerSettings = containerSettings + self.`extension` = `extension` + } + + private enum CodingKeys: String, CodingKey { + case nameModifier = "nameModifier" + case containerSettings = "containerSettings" + case `extension` = "extension" + } + } + + public struct CreateInputResultModel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Input", location: .body(locationName: "input"), required: false, type: .structure) + ] + public let input: Input? + + public init(input: Input? = nil) { + self.input = input + } + + private enum CodingKeys: String, CodingKey { + case input = "input" + } + } + + public struct StartChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "InputAttachments", location: .body(locationName: "inputAttachments"), required: false, type: .list), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "EncoderSettings", location: .body(locationName: "encoderSettings"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "EgressEndpoints", location: .body(locationName: "egressEndpoints"), required: false, type: .list), + AWSShapeMember(label: "RoleArn", location: .body(locationName: "roleArn"), required: false, type: .string), + AWSShapeMember(label: "PipelinesRunningCount", location: .body(locationName: "pipelinesRunningCount"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let destinations: [OutputDestination]? + public let arn: String? + public let inputAttachments: [InputAttachment]? + public let state: ChannelState? + public let encoderSettings: EncoderSettings? + public let name: String? + public let egressEndpoints: [ChannelEgressEndpoint]? + public let roleArn: String? + public let pipelinesRunningCount: Int32? + public let id: String? + + public init(destinations: [OutputDestination]? = nil, arn: String? = nil, inputAttachments: [InputAttachment]? = nil, state: ChannelState? = nil, encoderSettings: EncoderSettings? = nil, name: String? = nil, egressEndpoints: [ChannelEgressEndpoint]? = nil, roleArn: String? = nil, pipelinesRunningCount: Int32? = nil, id: String? = nil) { + self.destinations = destinations + self.arn = arn + self.inputAttachments = inputAttachments + self.state = state + self.encoderSettings = encoderSettings + self.name = name + self.egressEndpoints = egressEndpoints + self.roleArn = roleArn + self.pipelinesRunningCount = pipelinesRunningCount + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case arn = "arn" + case inputAttachments = "inputAttachments" + case state = "state" + case encoderSettings = "encoderSettings" + case name = "name" + case egressEndpoints = "egressEndpoints" + case roleArn = "roleArn" + case pipelinesRunningCount = "pipelinesRunningCount" + case id = "id" + } + } + + public enum M3u8TimedMetadataBehavior: String, CustomStringConvertible, Codable { + case noPassthrough = "NO_PASSTHROUGH" + case passthrough = "PASSTHROUGH" + public var description: String { return self.rawValue } + } + + public struct TeletextDestinationSettings: AWSShape { + + } + + public enum GlobalConfigurationOutputTimingSource: String, CustomStringConvertible, Codable { + case inputClock = "INPUT_CLOCK" + case systemClock = "SYSTEM_CLOCK" + public var description: String { return self.rawValue } + } + + public struct ValidationError: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ErrorMessage", location: .body(locationName: "errorMessage"), required: false, type: .string), + AWSShapeMember(label: "ElementPath", location: .body(locationName: "elementPath"), required: false, type: .string) + ] + public let errorMessage: String? + public let elementPath: String? + + public init(errorMessage: String? = nil, elementPath: String? = nil) { + self.errorMessage = errorMessage + self.elementPath = elementPath + } + + private enum CodingKeys: String, CodingKey { + case errorMessage = "errorMessage" + case elementPath = "elementPath" + } + } + + public enum Ac3DrcProfile: String, CustomStringConvertible, Codable { + case filmStandard = "FILM_STANDARD" + case none = "NONE" + public var description: String { return self.rawValue } + } + + public struct HlsGroupSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OutputSelection", location: .body(locationName: "outputSelection"), required: false, type: .enum), + AWSShapeMember(label: "Destination", location: .body(locationName: "destination"), required: false, type: .structure), + AWSShapeMember(label: "KeyFormat", location: .body(locationName: "keyFormat"), required: false, type: .string), + AWSShapeMember(label: "AdMarkers", location: .body(locationName: "adMarkers"), required: false, type: .list), + AWSShapeMember(label: "TsFileMode", location: .body(locationName: "tsFileMode"), required: false, type: .enum), + AWSShapeMember(label: "ProgramDateTimePeriod", location: .body(locationName: "programDateTimePeriod"), required: false, type: .integer), + AWSShapeMember(label: "EncryptionType", location: .body(locationName: "encryptionType"), required: false, type: .enum), + AWSShapeMember(label: "CaptionLanguageSetting", location: .body(locationName: "captionLanguageSetting"), required: false, type: .enum), + AWSShapeMember(label: "SegmentationMode", location: .body(locationName: "segmentationMode"), required: false, type: .enum), + AWSShapeMember(label: "IvInManifest", location: .body(locationName: "ivInManifest"), required: false, type: .enum), + AWSShapeMember(label: "IndexNSegments", location: .body(locationName: "indexNSegments"), required: false, type: .integer), + AWSShapeMember(label: "CaptionLanguageMappings", location: .body(locationName: "captionLanguageMappings"), required: false, type: .list), + AWSShapeMember(label: "IvSource", location: .body(locationName: "ivSource"), required: false, type: .enum), + AWSShapeMember(label: "TimedMetadataId3Period", location: .body(locationName: "timedMetadataId3Period"), required: false, type: .integer), + AWSShapeMember(label: "KeyFormatVersions", location: .body(locationName: "keyFormatVersions"), required: false, type: .string), + AWSShapeMember(label: "SegmentsPerSubdirectory", location: .body(locationName: "segmentsPerSubdirectory"), required: false, type: .integer), + AWSShapeMember(label: "ManifestDurationFormat", location: .body(locationName: "manifestDurationFormat"), required: false, type: .enum), + AWSShapeMember(label: "BaseUrlContent", location: .body(locationName: "baseUrlContent"), required: false, type: .string), + AWSShapeMember(label: "SegmentLength", location: .body(locationName: "segmentLength"), required: false, type: .integer), + AWSShapeMember(label: "MinSegmentLength", location: .body(locationName: "minSegmentLength"), required: false, type: .integer), + AWSShapeMember(label: "ManifestCompression", location: .body(locationName: "manifestCompression"), required: false, type: .enum), + AWSShapeMember(label: "StreamInfResolution", location: .body(locationName: "streamInfResolution"), required: false, type: .enum), + AWSShapeMember(label: "DirectoryStructure", location: .body(locationName: "directoryStructure"), required: false, type: .enum), + AWSShapeMember(label: "ConstantIv", location: .body(locationName: "constantIv"), required: false, type: .string), + AWSShapeMember(label: "KeyProviderSettings", location: .body(locationName: "keyProviderSettings"), required: false, type: .structure), + AWSShapeMember(label: "Mode", location: .body(locationName: "mode"), required: false, type: .enum), + AWSShapeMember(label: "ClientCache", location: .body(locationName: "clientCache"), required: false, type: .enum), + AWSShapeMember(label: "TimestampDeltaMilliseconds", location: .body(locationName: "timestampDeltaMilliseconds"), required: false, type: .integer), + AWSShapeMember(label: "InputLossAction", location: .body(locationName: "inputLossAction"), required: false, type: .enum), + AWSShapeMember(label: "ProgramDateTime", location: .body(locationName: "programDateTime"), required: false, type: .enum), + AWSShapeMember(label: "CodecSpecification", location: .body(locationName: "codecSpecification"), required: false, type: .enum), + AWSShapeMember(label: "BaseUrlManifest", location: .body(locationName: "baseUrlManifest"), required: false, type: .string), + AWSShapeMember(label: "TimedMetadataId3Frame", location: .body(locationName: "timedMetadataId3Frame"), required: false, type: .enum), + AWSShapeMember(label: "KeepSegments", location: .body(locationName: "keepSegments"), required: false, type: .integer), + AWSShapeMember(label: "HlsCdnSettings", location: .body(locationName: "hlsCdnSettings"), required: false, type: .structure) + ] + /// Generates the .m3u8 playlist file for this HLS output group. The segmentsOnly option will output segments without the .m3u8 file. + public let outputSelection: HlsOutputSelection? + /// A directory or HTTP destination for the HLS segments, manifest files, and encryption keys (if enabled). + public let destination: OutputLocationRef? + /// The value specifies how the key is represented in the resource identified by the URI. If parameter is absent, an implicit value of "identity" is used. A reverse DNS string can also be given. + public let keyFormat: String? + /// Choose one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs. + public let adMarkers: [HlsAdMarkers]? + /// When set to "singleFile", emits the program as a single media resource (.ts) file, and uses #EXT-X-BYTERANGE tags to index segment for playback. Playback of VOD mode content during event is not guaranteed due to HTTP server caching. + public let tsFileMode: HlsTsFileMode? + /// Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds. + public let programDateTimePeriod: Int32? + /// Encrypts the segments with the given encryption scheme. Exclude this parameter if no encryption is desired. + public let encryptionType: HlsEncryptionType? + /// Applies only to 608 Embedded output captions. + /// insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to specify the languages in the order in which they appear in the original source (if the source is embedded format) or the order of the caption selectors (if the source is other than embedded). Otherwise, languages in the manifest will not match up properly with the output captions. + /// none: Include CLOSED-CAPTIONS=NONE line in the manifest. + /// omit: Omit any CLOSED-CAPTIONS line from the manifest. + public let captionLanguageSetting: HlsCaptionLanguageSetting? + /// When set to useInputSegmentation, the output segment or fragment points are set by the RAI markers from the input streams. + public let segmentationMode: HlsSegmentationMode? + /// For use with encryptionType. The IV (Initialization Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If set to "include", IV is listed in the manifest, otherwise the IV is not in the manifest. + public let ivInManifest: HlsIvInManifest? + /// Number of segments to keep in the playlist (.m3u8) file. mode must be "vod" for this setting to have an effect, and this number should be less than or equal to keepSegments. + public let indexNSegments: Int32? + /// Mapping of up to 4 caption channels to caption languages. Is only meaningful if captionLanguageSetting is set to "insert". + public let captionLanguageMappings: [CaptionLanguageMapping]? + /// For use with encryptionType. The IV (Initialization Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is "followsSegmentNumber", it will cause the IV to change every segment (to match the segment number). If this is set to "explicit", you must enter a constantIv value. + public let ivSource: HlsIvSource? + /// Timed Metadata interval in seconds. + public let timedMetadataId3Period: Int32? + /// Either a single positive integer version value or a slash delimited list of version values (1/2/3). + public let keyFormatVersions: String? + /// Number of segments to write to a subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to have an effect. + public let segmentsPerSubdirectory: Int32? + /// Indicates whether the output manifest should use floating point or integer values for segment duration. + public let manifestDurationFormat: HlsManifestDurationFormat? + /// A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the main .m3u8 file. + public let baseUrlContent: String? + /// Length of MPEG-2 Transport Stream segments to create (in seconds). Note that segments will end on the next keyframe after this number of seconds, so actual segment length may be longer. + public let segmentLength: Int32? + /// When set, minimumSegmentLength is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed. + public let minSegmentLength: Int32? + /// When set to gzip, compresses HLS playlist. + public let manifestCompression: HlsManifestCompression? + /// Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest. + public let streamInfResolution: HlsStreamInfResolution? + /// Place segments in subdirectories. + public let directoryStructure: HlsDirectoryStructure? + /// For use with encryptionType. This is a 128-bit, 16-byte hex value represented by a 32-character text string. If ivSource is set to "explicit" then this parameter is required and is used as the IV for encryption. + public let constantIv: String? + /// The key provider settings. + public let keyProviderSettings: KeyProviderSettings? + /// If set to "vod", keeps and indexes all segments starting with the first segment. If set to "live" segments will age out and only the last keepSegments number of segments will be retained. + public let mode: HlsMode? + /// When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in the manifest, which prevents clients from saving media segments for later replay. + public let clientCache: HlsClientCache? + /// Provides an extra millisecond delta offset to fine tune the timestamps. + public let timestampDeltaMilliseconds: Int32? + /// Parameter that control output group behavior on input loss. + public let inputLossAction: InputLossActionForHlsOut? + /// Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated as follows: either the program date and time are initialized using the input timecode source, or the time is initialized using the input timecode source and the date is initialized using the timestampOffset. + public let programDateTime: HlsProgramDateTime? + /// Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation. + public let codecSpecification: HlsCodecSpecification? + /// A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the main .m3u8 file. + public let baseUrlManifest: String? + /// Indicates ID3 frame that has the timecode. + public let timedMetadataId3Frame: HlsTimedMetadataId3Frame? + /// Number of segments to retain in the destination directory. mode must be "live" for this setting to have an effect. + public let keepSegments: Int32? + /// Parameters that control interactions with the CDN. + public let hlsCdnSettings: HlsCdnSettings? + + public init(outputSelection: HlsOutputSelection? = nil, destination: OutputLocationRef? = nil, keyFormat: String? = nil, adMarkers: [HlsAdMarkers]? = nil, tsFileMode: HlsTsFileMode? = nil, programDateTimePeriod: Int32? = nil, encryptionType: HlsEncryptionType? = nil, captionLanguageSetting: HlsCaptionLanguageSetting? = nil, segmentationMode: HlsSegmentationMode? = nil, ivInManifest: HlsIvInManifest? = nil, indexNSegments: Int32? = nil, captionLanguageMappings: [CaptionLanguageMapping]? = nil, ivSource: HlsIvSource? = nil, timedMetadataId3Period: Int32? = nil, keyFormatVersions: String? = nil, segmentsPerSubdirectory: Int32? = nil, manifestDurationFormat: HlsManifestDurationFormat? = nil, baseUrlContent: String? = nil, segmentLength: Int32? = nil, minSegmentLength: Int32? = nil, manifestCompression: HlsManifestCompression? = nil, streamInfResolution: HlsStreamInfResolution? = nil, directoryStructure: HlsDirectoryStructure? = nil, constantIv: String? = nil, keyProviderSettings: KeyProviderSettings? = nil, mode: HlsMode? = nil, clientCache: HlsClientCache? = nil, timestampDeltaMilliseconds: Int32? = nil, inputLossAction: InputLossActionForHlsOut? = nil, programDateTime: HlsProgramDateTime? = nil, codecSpecification: HlsCodecSpecification? = nil, baseUrlManifest: String? = nil, timedMetadataId3Frame: HlsTimedMetadataId3Frame? = nil, keepSegments: Int32? = nil, hlsCdnSettings: HlsCdnSettings? = nil) { + self.outputSelection = outputSelection + self.destination = destination + self.keyFormat = keyFormat + self.adMarkers = adMarkers + self.tsFileMode = tsFileMode + self.programDateTimePeriod = programDateTimePeriod + self.encryptionType = encryptionType + self.captionLanguageSetting = captionLanguageSetting + self.segmentationMode = segmentationMode + self.ivInManifest = ivInManifest + self.indexNSegments = indexNSegments + self.captionLanguageMappings = captionLanguageMappings + self.ivSource = ivSource + self.timedMetadataId3Period = timedMetadataId3Period + self.keyFormatVersions = keyFormatVersions + self.segmentsPerSubdirectory = segmentsPerSubdirectory + self.manifestDurationFormat = manifestDurationFormat + self.baseUrlContent = baseUrlContent + self.segmentLength = segmentLength + self.minSegmentLength = minSegmentLength + self.manifestCompression = manifestCompression + self.streamInfResolution = streamInfResolution + self.directoryStructure = directoryStructure + self.constantIv = constantIv + self.keyProviderSettings = keyProviderSettings + self.mode = mode + self.clientCache = clientCache + self.timestampDeltaMilliseconds = timestampDeltaMilliseconds + self.inputLossAction = inputLossAction + self.programDateTime = programDateTime + self.codecSpecification = codecSpecification + self.baseUrlManifest = baseUrlManifest + self.timedMetadataId3Frame = timedMetadataId3Frame + self.keepSegments = keepSegments + self.hlsCdnSettings = hlsCdnSettings + } + + private enum CodingKeys: String, CodingKey { + case outputSelection = "outputSelection" + case destination = "destination" + case keyFormat = "keyFormat" + case adMarkers = "adMarkers" + case tsFileMode = "tsFileMode" + case programDateTimePeriod = "programDateTimePeriod" + case encryptionType = "encryptionType" + case captionLanguageSetting = "captionLanguageSetting" + case segmentationMode = "segmentationMode" + case ivInManifest = "ivInManifest" + case indexNSegments = "indexNSegments" + case captionLanguageMappings = "captionLanguageMappings" + case ivSource = "ivSource" + case timedMetadataId3Period = "timedMetadataId3Period" + case keyFormatVersions = "keyFormatVersions" + case segmentsPerSubdirectory = "segmentsPerSubdirectory" + case manifestDurationFormat = "manifestDurationFormat" + case baseUrlContent = "baseUrlContent" + case segmentLength = "segmentLength" + case minSegmentLength = "minSegmentLength" + case manifestCompression = "manifestCompression" + case streamInfResolution = "streamInfResolution" + case directoryStructure = "directoryStructure" + case constantIv = "constantIv" + case keyProviderSettings = "keyProviderSettings" + case mode = "mode" + case clientCache = "clientCache" + case timestampDeltaMilliseconds = "timestampDeltaMilliseconds" + case inputLossAction = "inputLossAction" + case programDateTime = "programDateTime" + case codecSpecification = "codecSpecification" + case baseUrlManifest = "baseUrlManifest" + case timedMetadataId3Frame = "timedMetadataId3Frame" + case keepSegments = "keepSegments" + case hlsCdnSettings = "hlsCdnSettings" + } + } + + public struct CreateInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "InputSecurityGroups", location: .body(locationName: "inputSecurityGroups"), required: false, type: .list), + AWSShapeMember(label: "Sources", location: .body(locationName: "sources"), required: false, type: .list), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .enum), + AWSShapeMember(label: "RequestId", location: .body(locationName: "requestId"), required: false, type: .string) + ] + /// settings required for PUSH-type inputs; one per redundancy group. + /// Only one of sources and destinations can be specified. + /// Note: there are currently no settings required for PUSH-type inputs + public let destinations: [InputDestinationRequest]? + /// A list of security groups referenced by IDs to attach to the input. + public let inputSecurityGroups: [String]? + /// settings required for PULL-type inputs; one per redundancy group + /// Only one of sources and destinations can be specified + public let sources: [InputSourceRequest]? + /// Name of the input. + public let name: String? + public let `type`: InputType? + /// Unique identifier of the request to ensure the request is handled + /// exactly once in case of retries + public let requestId: String? + + public init(destinations: [InputDestinationRequest]? = nil, inputSecurityGroups: [String]? = nil, sources: [InputSourceRequest]? = nil, name: String? = nil, type: InputType? = nil, requestId: String? = nil) { + self.destinations = destinations + self.inputSecurityGroups = inputSecurityGroups + self.sources = sources + self.name = name + self.`type` = `type` + self.requestId = requestId + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case inputSecurityGroups = "inputSecurityGroups" + case sources = "sources" + case name = "name" + case `type` = "type" + case requestId = "requestId" + } + } + + public enum AudioNormalizationAlgorithmControl: String, CustomStringConvertible, Codable { + case correctAudio = "CORRECT_AUDIO" + public var description: String { return self.rawValue } + } + + public struct AudioDescription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AudioNormalizationSettings", location: .body(locationName: "audioNormalizationSettings"), required: false, type: .structure), + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "LanguageCodeControl", location: .body(locationName: "languageCodeControl"), required: false, type: .enum), + AWSShapeMember(label: "AudioTypeControl", location: .body(locationName: "audioTypeControl"), required: false, type: .enum), + AWSShapeMember(label: "AudioType", location: .body(locationName: "audioType"), required: false, type: .enum), + AWSShapeMember(label: "StreamName", location: .body(locationName: "streamName"), required: false, type: .string), + AWSShapeMember(label: "RemixSettings", location: .body(locationName: "remixSettings"), required: false, type: .structure), + AWSShapeMember(label: "AudioSelectorName", location: .body(locationName: "audioSelectorName"), required: false, type: .string), + AWSShapeMember(label: "CodecSettings", location: .body(locationName: "codecSettings"), required: false, type: .structure) + ] + /// Advanced audio normalization settings. + public let audioNormalizationSettings: AudioNormalizationSettings? + /// Indicates the language of the audio output track. Only used if languageControlMode is useConfigured, or there is no ISO 639 language code specified in the input. + public let languageCode: String? + /// The name of this AudioDescription. Outputs will use this name to uniquely identify this AudioDescription. Description names should be unique within this Live Event. + public let name: String? + /// Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language code of the input. The languageCode will be used when useConfigured is set, or when followInput is selected but there is no ISO 639 language code specified by the input. + public let languageCodeControl: AudioDescriptionLanguageCodeControl? + /// Determines how audio type is determined. + /// followInput: If the input contains an ISO 639 audioType, then that value is passed through to the output. If the input contains no ISO 639 audioType, the value in Audio Type is included in the output. + /// useConfigured: The value in Audio Type is included in the output. + /// Note that this field and audioType are both ignored if inputType is broadcasterMixedAd. + public let audioTypeControl: AudioDescriptionAudioTypeControl? + /// Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC 13818-1. + public let audioType: AudioType? + /// Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or Director Commentary). + public let streamName: String? + /// Settings that control how input audio channels are remixed into the output audio channels. + public let remixSettings: RemixSettings? + /// The name of the AudioSelector used as the source for this AudioDescription. + public let audioSelectorName: String? + /// Audio codec settings. + public let codecSettings: AudioCodecSettings? + + public init(audioNormalizationSettings: AudioNormalizationSettings? = nil, languageCode: String? = nil, name: String? = nil, languageCodeControl: AudioDescriptionLanguageCodeControl? = nil, audioTypeControl: AudioDescriptionAudioTypeControl? = nil, audioType: AudioType? = nil, streamName: String? = nil, remixSettings: RemixSettings? = nil, audioSelectorName: String? = nil, codecSettings: AudioCodecSettings? = nil) { + self.audioNormalizationSettings = audioNormalizationSettings + self.languageCode = languageCode + self.name = name + self.languageCodeControl = languageCodeControl + self.audioTypeControl = audioTypeControl + self.audioType = audioType + self.streamName = streamName + self.remixSettings = remixSettings + self.audioSelectorName = audioSelectorName + self.codecSettings = codecSettings + } + + private enum CodingKeys: String, CodingKey { + case audioNormalizationSettings = "audioNormalizationSettings" + case languageCode = "languageCode" + case name = "name" + case languageCodeControl = "languageCodeControl" + case audioTypeControl = "audioTypeControl" + case audioType = "audioType" + case streamName = "streamName" + case remixSettings = "remixSettings" + case audioSelectorName = "audioSelectorName" + case codecSettings = "codecSettings" + } + } + + public struct AudioSelectorSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AudioLanguageSelection", location: .body(locationName: "audioLanguageSelection"), required: false, type: .structure), + AWSShapeMember(label: "AudioPidSelection", location: .body(locationName: "audioPidSelection"), required: false, type: .structure) + ] + public let audioLanguageSelection: AudioLanguageSelection? + public let audioPidSelection: AudioPidSelection? + + public init(audioLanguageSelection: AudioLanguageSelection? = nil, audioPidSelection: AudioPidSelection? = nil) { + self.audioLanguageSelection = audioLanguageSelection + self.audioPidSelection = audioPidSelection + } + + private enum CodingKeys: String, CodingKey { + case audioLanguageSelection = "audioLanguageSelection" + case audioPidSelection = "audioPidSelection" + } + } + + public enum DvbSubDestinationTeletextGridControl: String, CustomStringConvertible, Codable { + case fixed = "FIXED" + case scaled = "SCALED" + public var description: String { return self.rawValue } + } + + public struct DeleteChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Destinations", location: .body(locationName: "destinations"), required: false, type: .list), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "InputAttachments", location: .body(locationName: "inputAttachments"), required: false, type: .list), + AWSShapeMember(label: "State", location: .body(locationName: "state"), required: false, type: .enum), + AWSShapeMember(label: "EncoderSettings", location: .body(locationName: "encoderSettings"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "EgressEndpoints", location: .body(locationName: "egressEndpoints"), required: false, type: .list), + AWSShapeMember(label: "RoleArn", location: .body(locationName: "roleArn"), required: false, type: .string), + AWSShapeMember(label: "PipelinesRunningCount", location: .body(locationName: "pipelinesRunningCount"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let destinations: [OutputDestination]? + public let arn: String? + public let inputAttachments: [InputAttachment]? + public let state: ChannelState? + public let encoderSettings: EncoderSettings? + public let name: String? + public let egressEndpoints: [ChannelEgressEndpoint]? + public let roleArn: String? + public let pipelinesRunningCount: Int32? + public let id: String? + + public init(destinations: [OutputDestination]? = nil, arn: String? = nil, inputAttachments: [InputAttachment]? = nil, state: ChannelState? = nil, encoderSettings: EncoderSettings? = nil, name: String? = nil, egressEndpoints: [ChannelEgressEndpoint]? = nil, roleArn: String? = nil, pipelinesRunningCount: Int32? = nil, id: String? = nil) { + self.destinations = destinations + self.arn = arn + self.inputAttachments = inputAttachments + self.state = state + self.encoderSettings = encoderSettings + self.name = name + self.egressEndpoints = egressEndpoints + self.roleArn = roleArn + self.pipelinesRunningCount = pipelinesRunningCount + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case destinations = "destinations" + case arn = "arn" + case inputAttachments = "inputAttachments" + case state = "state" + case encoderSettings = "encoderSettings" + case name = "name" + case egressEndpoints = "egressEndpoints" + case roleArn = "roleArn" + case pipelinesRunningCount = "pipelinesRunningCount" + case id = "id" + } + } + + public struct CaptionLanguageMapping: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LanguageCode", location: .body(locationName: "languageCode"), required: false, type: .string), + AWSShapeMember(label: "LanguageDescription", location: .body(locationName: "languageDescription"), required: false, type: .string), + AWSShapeMember(label: "CaptionChannel", location: .body(locationName: "captionChannel"), required: false, type: .integer) + ] + /// Three character ISO 639-2 language code (see http://www.loc.gov/standards/iso639-2) + public let languageCode: String? + /// Textual description of language + public let languageDescription: String? + /// Channel to insert closed captions. Each channel mapping must have a unique channel number (maximum of 4) + public let captionChannel: Int32? + + public init(languageCode: String? = nil, languageDescription: String? = nil, captionChannel: Int32? = nil) { + self.languageCode = languageCode + self.languageDescription = languageDescription + self.captionChannel = captionChannel + } + + private enum CodingKeys: String, CodingKey { + case languageCode = "languageCode" + case languageDescription = "languageDescription" + case captionChannel = "captionChannel" + } + } + + public enum TtmlDestinationStyleControl: String, CustomStringConvertible, Codable { + case passthrough = "PASSTHROUGH" + case useConfigured = "USE_CONFIGURED" + public var description: String { return self.rawValue } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediapackage/Mediapackage_API.swift b/Sources/AWSSDKSwift/Services/mediapackage/Mediapackage_API.swift new file mode 100644 index 00000000000..b4307621c45 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediapackage/Mediapackage_API.swift @@ -0,0 +1,83 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +AWS Elemental MediaPackage +*/ +public struct Mediapackage { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "mediapackage", + serviceProtocol: ServiceProtocol(type: .restjson, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-10-12", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [MediapackageError.self] + ) + } + + /// Changes the Channel ingest username and password. + public func rotateChannelCredentials(_ input: RotateChannelCredentialsRequest) throws -> RotateChannelCredentialsResponse { + return try client.send(operation: "RotateChannelCredentials", path: "/channels/{id}/credentials", httpMethod: "PUT", input: input) + } + + /// Returns a collection of OriginEndpoint records. + public func listOriginEndpoints(_ input: ListOriginEndpointsRequest) throws -> ListOriginEndpointsResponse { + return try client.send(operation: "ListOriginEndpoints", path: "/origin_endpoints", httpMethod: "GET", input: input) + } + + /// Deletes an existing Channel. + public func deleteChannel(_ input: DeleteChannelRequest) throws -> DeleteChannelResponse { + return try client.send(operation: "DeleteChannel", path: "/channels/{id}", httpMethod: "DELETE", input: input) + } + + /// Updates an existing Channel. + public func updateChannel(_ input: UpdateChannelRequest) throws -> UpdateChannelResponse { + return try client.send(operation: "UpdateChannel", path: "/channels/{id}", httpMethod: "PUT", input: input) + } + + /// Gets details about a Channel. + public func describeChannel(_ input: DescribeChannelRequest) throws -> DescribeChannelResponse { + return try client.send(operation: "DescribeChannel", path: "/channels/{id}", httpMethod: "GET", input: input) + } + + /// Creates a new Channel. + public func createChannel(_ input: CreateChannelRequest) throws -> CreateChannelResponse { + return try client.send(operation: "CreateChannel", path: "/channels", httpMethod: "POST", input: input) + } + + /// Returns a collection of Channels. + public func listChannels(_ input: ListChannelsRequest) throws -> ListChannelsResponse { + return try client.send(operation: "ListChannels", path: "/channels", httpMethod: "GET", input: input) + } + + /// Deletes an existing OriginEndpoint. + public func deleteOriginEndpoint(_ input: DeleteOriginEndpointRequest) throws -> DeleteOriginEndpointResponse { + return try client.send(operation: "DeleteOriginEndpoint", path: "/origin_endpoints/{id}", httpMethod: "DELETE", input: input) + } + + /// Gets details about an existing OriginEndpoint. + public func describeOriginEndpoint(_ input: DescribeOriginEndpointRequest) throws -> DescribeOriginEndpointResponse { + return try client.send(operation: "DescribeOriginEndpoint", path: "/origin_endpoints/{id}", httpMethod: "GET", input: input) + } + + /// Creates a new OriginEndpoint record. + public func createOriginEndpoint(_ input: CreateOriginEndpointRequest) throws -> CreateOriginEndpointResponse { + return try client.send(operation: "CreateOriginEndpoint", path: "/origin_endpoints", httpMethod: "POST", input: input) + } + + /// Updates an existing OriginEndpoint. + public func updateOriginEndpoint(_ input: UpdateOriginEndpointRequest) throws -> UpdateOriginEndpointResponse { + return try client.send(operation: "UpdateOriginEndpoint", path: "/origin_endpoints/{id}", httpMethod: "PUT", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediapackage/Mediapackage_Error.swift b/Sources/AWSSDKSwift/Services/mediapackage/Mediapackage_Error.swift new file mode 100644 index 00000000000..6d36b0cb8b5 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediapackage/Mediapackage_Error.swift @@ -0,0 +1,38 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Mediapackage +public enum MediapackageError: AWSErrorType { + case unprocessableEntityException(message: String?) + case internalServerErrorException(message: String?) + case forbiddenException(message: String?) + case notFoundException(message: String?) + case serviceUnavailableException(message: String?) + case tooManyRequestsException(message: String?) +} + +extension MediapackageError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "UnprocessableEntityException": + self = .unprocessableEntityException(message: message) + case "InternalServerErrorException": + self = .internalServerErrorException(message: message) + case "ForbiddenException": + self = .forbiddenException(message: message) + case "NotFoundException": + self = .notFoundException(message: message) + case "ServiceUnavailableException": + self = .serviceUnavailableException(message: message) + case "TooManyRequestsException": + self = .tooManyRequestsException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediapackage/Mediapackage_Shapes.swift b/Sources/AWSSDKSwift/Services/mediapackage/Mediapackage_Shapes.swift new file mode 100644 index 00000000000..1ab978a7708 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediapackage/Mediapackage_Shapes.swift @@ -0,0 +1,1237 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Mediapackage { + + public struct CreateOriginEndpointResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "DashPackage", location: .body(locationName: "dashPackage"), required: false, type: .structure), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "HlsPackage", location: .body(locationName: "hlsPackage"), required: false, type: .structure), + AWSShapeMember(label: "Whitelist", location: .body(locationName: "whitelist"), required: false, type: .list), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), + AWSShapeMember(label: "ChannelId", location: .body(locationName: "channelId"), required: false, type: .string), + AWSShapeMember(label: "ManifestName", location: .body(locationName: "manifestName"), required: false, type: .string), + AWSShapeMember(label: "MssPackage", location: .body(locationName: "mssPackage"), required: false, type: .structure), + AWSShapeMember(label: "TimeDelaySeconds", location: .body(locationName: "timeDelaySeconds"), required: false, type: .integer), + AWSShapeMember(label: "StartoverWindowSeconds", location: .body(locationName: "startoverWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let description: String? + public let dashPackage: DashPackage? + public let arn: String? + public let hlsPackage: HlsPackage? + public let whitelist: [String]? + public let url: String? + public let channelId: String? + public let manifestName: String? + public let mssPackage: MssPackage? + public let timeDelaySeconds: Int32? + public let startoverWindowSeconds: Int32? + public let id: String? + + public init(description: String? = nil, dashPackage: DashPackage? = nil, arn: String? = nil, hlsPackage: HlsPackage? = nil, whitelist: [String]? = nil, url: String? = nil, channelId: String? = nil, manifestName: String? = nil, mssPackage: MssPackage? = nil, timeDelaySeconds: Int32? = nil, startoverWindowSeconds: Int32? = nil, id: String? = nil) { + self.description = description + self.dashPackage = dashPackage + self.arn = arn + self.hlsPackage = hlsPackage + self.whitelist = whitelist + self.url = url + self.channelId = channelId + self.manifestName = manifestName + self.mssPackage = mssPackage + self.timeDelaySeconds = timeDelaySeconds + self.startoverWindowSeconds = startoverWindowSeconds + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case dashPackage = "dashPackage" + case arn = "arn" + case hlsPackage = "hlsPackage" + case whitelist = "whitelist" + case url = "url" + case channelId = "channelId" + case manifestName = "manifestName" + case mssPackage = "mssPackage" + case timeDelaySeconds = "timeDelaySeconds" + case startoverWindowSeconds = "startoverWindowSeconds" + case id = "id" + } + } + + public struct RotateChannelCredentialsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "HlsIngest", location: .body(locationName: "hlsIngest"), required: false, type: .structure), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let description: String? + public let arn: String? + public let hlsIngest: HlsIngest? + public let id: String? + + public init(description: String? = nil, arn: String? = nil, hlsIngest: HlsIngest? = nil, id: String? = nil) { + self.description = description + self.arn = arn + self.hlsIngest = hlsIngest + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case arn = "arn" + case hlsIngest = "hlsIngest" + case id = "id" + } + } + + public struct DescribeChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "id"), required: true, type: .string) + ] + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + } + } + + public struct OriginEndpointUpdateParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DashPackage", location: .body(locationName: "dashPackage"), required: false, type: .structure), + AWSShapeMember(label: "Whitelist", location: .body(locationName: "whitelist"), required: false, type: .list), + AWSShapeMember(label: "HlsPackage", location: .body(locationName: "hlsPackage"), required: false, type: .structure), + AWSShapeMember(label: "ManifestName", location: .body(locationName: "manifestName"), required: false, type: .string), + AWSShapeMember(label: "MssPackage", location: .body(locationName: "mssPackage"), required: false, type: .structure), + AWSShapeMember(label: "TimeDelaySeconds", location: .body(locationName: "timeDelaySeconds"), required: false, type: .integer), + AWSShapeMember(label: "StartoverWindowSeconds", location: .body(locationName: "startoverWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let dashPackage: DashPackage? + /// A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint. + public let whitelist: [String]? + public let hlsPackage: HlsPackage? + /// A short string that will be appended to the end of the Endpoint URL. + public let manifestName: String? + public let mssPackage: MssPackage? + /// Amount of delay (in seconds) to enforce on the playback of live content. + /// If not specified, there will be no time delay in effect for the OriginEndpoint. + public let timeDelaySeconds: Int32? + /// Maximum duration (in seconds) of content to retain for startover playback. + /// If not specified, startover playback will be disabled for the OriginEndpoint. + public let startoverWindowSeconds: Int32? + /// A short text description of the OriginEndpoint. + public let description: String? + + public init(dashPackage: DashPackage? = nil, whitelist: [String]? = nil, hlsPackage: HlsPackage? = nil, manifestName: String? = nil, mssPackage: MssPackage? = nil, timeDelaySeconds: Int32? = nil, startoverWindowSeconds: Int32? = nil, description: String? = nil) { + self.dashPackage = dashPackage + self.whitelist = whitelist + self.hlsPackage = hlsPackage + self.manifestName = manifestName + self.mssPackage = mssPackage + self.timeDelaySeconds = timeDelaySeconds + self.startoverWindowSeconds = startoverWindowSeconds + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case dashPackage = "dashPackage" + case whitelist = "whitelist" + case hlsPackage = "hlsPackage" + case manifestName = "manifestName" + case mssPackage = "mssPackage" + case timeDelaySeconds = "timeDelaySeconds" + case startoverWindowSeconds = "startoverWindowSeconds" + case description = "description" + } + } + + public struct DeleteOriginEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "id"), required: true, type: .string) + ] + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + } + } + + public enum AdMarkers: String, CustomStringConvertible, Codable { + case none = "NONE" + case scte35Enhanced = "SCTE35_ENHANCED" + case passthrough = "PASSTHROUGH" + public var description: String { return self.rawValue } + } + + public struct SpekeKeyProvider: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleArn", location: .body(locationName: "roleArn"), required: true, type: .string), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: true, type: .string), + AWSShapeMember(label: "SystemIds", location: .body(locationName: "systemIds"), required: true, type: .list), + AWSShapeMember(label: "ResourceId", location: .body(locationName: "resourceId"), required: true, type: .string) + ] + /// An Amazon Resource Name (ARN) of an IAM role that AWS Elemental + /// MediaPackage will assume when accessing the key provider service. + public let roleArn: String + /// The URL of the external key provider service. + public let url: String + /// The system IDs to include in key requests. + public let systemIds: [String] + /// The resource ID to include in key requests. + public let resourceId: String + + public init(roleArn: String, url: String, systemIds: [String], resourceId: String) { + self.roleArn = roleArn + self.url = url + self.systemIds = systemIds + self.resourceId = resourceId + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "roleArn" + case url = "url" + case systemIds = "systemIds" + case resourceId = "resourceId" + } + } + + public struct ChannelList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Channels", location: .body(locationName: "channels"), required: false, type: .list) + ] + /// A token that can be used to resume pagination from the end of the collection. + public let nextToken: String? + /// A list of Channel records. + public let channels: [Channel]? + + public init(nextToken: String? = nil, channels: [Channel]? = nil) { + self.nextToken = nextToken + self.channels = channels + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case channels = "channels" + } + } + + public struct DashEncryption: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SpekeKeyProvider", location: .body(locationName: "spekeKeyProvider"), required: true, type: .structure), + AWSShapeMember(label: "KeyRotationIntervalSeconds", location: .body(locationName: "keyRotationIntervalSeconds"), required: false, type: .integer) + ] + public let spekeKeyProvider: SpekeKeyProvider + /// Time (in seconds) between each encryption key rotation. + public let keyRotationIntervalSeconds: Int32? + + public init(spekeKeyProvider: SpekeKeyProvider, keyRotationIntervalSeconds: Int32? = nil) { + self.spekeKeyProvider = spekeKeyProvider + self.keyRotationIntervalSeconds = keyRotationIntervalSeconds + } + + private enum CodingKeys: String, CodingKey { + case spekeKeyProvider = "spekeKeyProvider" + case keyRotationIntervalSeconds = "keyRotationIntervalSeconds" + } + } + + public struct HlsEncryption: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KeyRotationIntervalSeconds", location: .body(locationName: "keyRotationIntervalSeconds"), required: false, type: .integer), + AWSShapeMember(label: "ConstantInitializationVector", location: .body(locationName: "constantInitializationVector"), required: false, type: .string), + AWSShapeMember(label: "EncryptionMethod", location: .body(locationName: "encryptionMethod"), required: false, type: .enum), + AWSShapeMember(label: "SpekeKeyProvider", location: .body(locationName: "spekeKeyProvider"), required: true, type: .structure), + AWSShapeMember(label: "RepeatExtXKey", location: .body(locationName: "repeatExtXKey"), required: false, type: .boolean) + ] + /// Interval (in seconds) between each encryption key rotation. + public let keyRotationIntervalSeconds: Int32? + /// A constant initialization vector for encryption (optional). + /// When not specified the initialization vector will be periodically rotated. + public let constantInitializationVector: String? + /// The encryption method to use. + public let encryptionMethod: EncryptionMethod? + public let spekeKeyProvider: SpekeKeyProvider + /// When enabled, the EXT-X-KEY tag will be repeated in output manifests. + public let repeatExtXKey: Bool? + + public init(keyRotationIntervalSeconds: Int32? = nil, constantInitializationVector: String? = nil, encryptionMethod: EncryptionMethod? = nil, spekeKeyProvider: SpekeKeyProvider, repeatExtXKey: Bool? = nil) { + self.keyRotationIntervalSeconds = keyRotationIntervalSeconds + self.constantInitializationVector = constantInitializationVector + self.encryptionMethod = encryptionMethod + self.spekeKeyProvider = spekeKeyProvider + self.repeatExtXKey = repeatExtXKey + } + + private enum CodingKeys: String, CodingKey { + case keyRotationIntervalSeconds = "keyRotationIntervalSeconds" + case constantInitializationVector = "constantInitializationVector" + case encryptionMethod = "encryptionMethod" + case spekeKeyProvider = "spekeKeyProvider" + case repeatExtXKey = "repeatExtXKey" + } + } + + public struct DeleteOriginEndpointResponse: AWSShape { + + } + + public struct ListChannelsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Channels", location: .body(locationName: "channels"), required: false, type: .list) + ] + public let nextToken: String? + public let channels: [Channel]? + + public init(nextToken: String? = nil, channels: [Channel]? = nil) { + self.nextToken = nextToken + self.channels = channels + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case channels = "channels" + } + } + + public enum StreamOrder: String, CustomStringConvertible, Codable { + case original = "ORIGINAL" + case videoBitrateAscending = "VIDEO_BITRATE_ASCENDING" + case videoBitrateDescending = "VIDEO_BITRATE_DESCENDING" + public var description: String { return self.rawValue } + } + + public struct ChannelUpdateParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// A short text description of the Channel. + public let description: String? + + public init(description: String? = nil) { + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + } + } + + public struct ListOriginEndpointsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OriginEndpoints", location: .body(locationName: "originEndpoints"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + public let originEndpoints: [OriginEndpoint]? + public let nextToken: String? + + public init(originEndpoints: [OriginEndpoint]? = nil, nextToken: String? = nil) { + self.originEndpoints = originEndpoints + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case originEndpoints = "originEndpoints" + case nextToken = "nextToken" + } + } + + public struct DescribeOriginEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "id"), required: true, type: .string) + ] + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + } + } + + public enum EncryptionMethod: String, CustomStringConvertible, Codable { + case aes128 = "AES_128" + case sampleAes = "SAMPLE_AES" + public var description: String { return self.rawValue } + } + + public struct OriginEndpoint: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "DashPackage", location: .body(locationName: "dashPackage"), required: false, type: .structure), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "HlsPackage", location: .body(locationName: "hlsPackage"), required: false, type: .structure), + AWSShapeMember(label: "Whitelist", location: .body(locationName: "whitelist"), required: false, type: .list), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), + AWSShapeMember(label: "ChannelId", location: .body(locationName: "channelId"), required: false, type: .string), + AWSShapeMember(label: "ManifestName", location: .body(locationName: "manifestName"), required: false, type: .string), + AWSShapeMember(label: "MssPackage", location: .body(locationName: "mssPackage"), required: false, type: .structure), + AWSShapeMember(label: "TimeDelaySeconds", location: .body(locationName: "timeDelaySeconds"), required: false, type: .integer), + AWSShapeMember(label: "StartoverWindowSeconds", location: .body(locationName: "startoverWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + /// A short text description of the OriginEndpoint. + public let description: String? + public let dashPackage: DashPackage? + /// The Amazon Resource Name (ARN) assigned to the OriginEndpoint. + public let arn: String? + public let hlsPackage: HlsPackage? + /// A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint. + public let whitelist: [String]? + /// The URL of the packaged OriginEndpoint for consumption. + public let url: String? + /// The ID of the Channel the OriginEndpoint is associated with. + public let channelId: String? + /// A short string appended to the end of the OriginEndpoint URL. + public let manifestName: String? + public let mssPackage: MssPackage? + /// Amount of delay (seconds) to enforce on the playback of live content. + /// If not specified, there will be no time delay in effect for the OriginEndpoint. + public let timeDelaySeconds: Int32? + /// Maximum duration (seconds) of content to retain for startover playback. + /// If not specified, startover playback will be disabled for the OriginEndpoint. + public let startoverWindowSeconds: Int32? + /// The ID of the OriginEndpoint. + public let id: String? + + public init(description: String? = nil, dashPackage: DashPackage? = nil, arn: String? = nil, hlsPackage: HlsPackage? = nil, whitelist: [String]? = nil, url: String? = nil, channelId: String? = nil, manifestName: String? = nil, mssPackage: MssPackage? = nil, timeDelaySeconds: Int32? = nil, startoverWindowSeconds: Int32? = nil, id: String? = nil) { + self.description = description + self.dashPackage = dashPackage + self.arn = arn + self.hlsPackage = hlsPackage + self.whitelist = whitelist + self.url = url + self.channelId = channelId + self.manifestName = manifestName + self.mssPackage = mssPackage + self.timeDelaySeconds = timeDelaySeconds + self.startoverWindowSeconds = startoverWindowSeconds + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case dashPackage = "dashPackage" + case arn = "arn" + case hlsPackage = "hlsPackage" + case whitelist = "whitelist" + case url = "url" + case channelId = "channelId" + case manifestName = "manifestName" + case mssPackage = "mssPackage" + case timeDelaySeconds = "timeDelaySeconds" + case startoverWindowSeconds = "startoverWindowSeconds" + case id = "id" + } + } + + public struct DescribeChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "HlsIngest", location: .body(locationName: "hlsIngest"), required: false, type: .structure), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let description: String? + public let arn: String? + public let hlsIngest: HlsIngest? + public let id: String? + + public init(description: String? = nil, arn: String? = nil, hlsIngest: HlsIngest? = nil, id: String? = nil) { + self.description = description + self.arn = arn + self.hlsIngest = hlsIngest + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case arn = "arn" + case hlsIngest = "hlsIngest" + case id = "id" + } + } + + public struct ListChannelsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct CreateOriginEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: true, type: .string), + AWSShapeMember(label: "DashPackage", location: .body(locationName: "dashPackage"), required: false, type: .structure), + AWSShapeMember(label: "HlsPackage", location: .body(locationName: "hlsPackage"), required: false, type: .structure), + AWSShapeMember(label: "Whitelist", location: .body(locationName: "whitelist"), required: false, type: .list), + AWSShapeMember(label: "ChannelId", location: .body(locationName: "channelId"), required: true, type: .string), + AWSShapeMember(label: "ManifestName", location: .body(locationName: "manifestName"), required: false, type: .string), + AWSShapeMember(label: "MssPackage", location: .body(locationName: "mssPackage"), required: false, type: .structure), + AWSShapeMember(label: "TimeDelaySeconds", location: .body(locationName: "timeDelaySeconds"), required: false, type: .integer), + AWSShapeMember(label: "StartoverWindowSeconds", location: .body(locationName: "startoverWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let id: String + public let dashPackage: DashPackage? + public let hlsPackage: HlsPackage? + public let whitelist: [String]? + public let channelId: String + public let manifestName: String? + public let mssPackage: MssPackage? + public let timeDelaySeconds: Int32? + public let startoverWindowSeconds: Int32? + public let description: String? + + public init(id: String, dashPackage: DashPackage? = nil, hlsPackage: HlsPackage? = nil, whitelist: [String]? = nil, channelId: String, manifestName: String? = nil, mssPackage: MssPackage? = nil, timeDelaySeconds: Int32? = nil, startoverWindowSeconds: Int32? = nil, description: String? = nil) { + self.id = id + self.dashPackage = dashPackage + self.hlsPackage = hlsPackage + self.whitelist = whitelist + self.channelId = channelId + self.manifestName = manifestName + self.mssPackage = mssPackage + self.timeDelaySeconds = timeDelaySeconds + self.startoverWindowSeconds = startoverWindowSeconds + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case dashPackage = "dashPackage" + case hlsPackage = "hlsPackage" + case whitelist = "whitelist" + case channelId = "channelId" + case manifestName = "manifestName" + case mssPackage = "mssPackage" + case timeDelaySeconds = "timeDelaySeconds" + case startoverWindowSeconds = "startoverWindowSeconds" + case description = "description" + } + } + + public struct HlsIngest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IngestEndpoints", location: .body(locationName: "ingestEndpoints"), required: false, type: .list) + ] + /// A list of endpoints to which the source stream should be sent. + public let ingestEndpoints: [IngestEndpoint]? + + public init(ingestEndpoints: [IngestEndpoint]? = nil) { + self.ingestEndpoints = ingestEndpoints + } + + private enum CodingKeys: String, CodingKey { + case ingestEndpoints = "ingestEndpoints" + } + } + + public struct OriginEndpointCreateParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string), + AWSShapeMember(label: "DashPackage", location: .body(locationName: "dashPackage"), required: false, type: .structure), + AWSShapeMember(label: "HlsPackage", location: .body(locationName: "hlsPackage"), required: false, type: .structure), + AWSShapeMember(label: "Whitelist", location: .body(locationName: "whitelist"), required: false, type: .list), + AWSShapeMember(label: "ChannelId", location: .body(locationName: "channelId"), required: false, type: .string), + AWSShapeMember(label: "ManifestName", location: .body(locationName: "manifestName"), required: false, type: .string), + AWSShapeMember(label: "MssPackage", location: .body(locationName: "mssPackage"), required: false, type: .structure), + AWSShapeMember(label: "TimeDelaySeconds", location: .body(locationName: "timeDelaySeconds"), required: false, type: .integer), + AWSShapeMember(label: "StartoverWindowSeconds", location: .body(locationName: "startoverWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// The ID of the OriginEndpoint. The ID must be unique within the region + /// and it cannot be changed after the OriginEndpoint is created. + public let id: String? + public let dashPackage: DashPackage? + public let hlsPackage: HlsPackage? + /// A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint. + public let whitelist: [String]? + /// The ID of the Channel that the OriginEndpoint will be associated with. + /// This cannot be changed after the OriginEndpoint is created. + public let channelId: String? + /// A short string that will be used as the filename of the OriginEndpoint URL (defaults to "index"). + public let manifestName: String? + public let mssPackage: MssPackage? + /// Amount of delay (seconds) to enforce on the playback of live content. + /// If not specified, there will be no time delay in effect for the OriginEndpoint. + public let timeDelaySeconds: Int32? + /// Maximum duration (seconds) of content to retain for startover playback. + /// If not specified, startover playback will be disabled for the OriginEndpoint. + public let startoverWindowSeconds: Int32? + /// A short text description of the OriginEndpoint. + public let description: String? + + public init(id: String? = nil, dashPackage: DashPackage? = nil, hlsPackage: HlsPackage? = nil, whitelist: [String]? = nil, channelId: String? = nil, manifestName: String? = nil, mssPackage: MssPackage? = nil, timeDelaySeconds: Int32? = nil, startoverWindowSeconds: Int32? = nil, description: String? = nil) { + self.id = id + self.dashPackage = dashPackage + self.hlsPackage = hlsPackage + self.whitelist = whitelist + self.channelId = channelId + self.manifestName = manifestName + self.mssPackage = mssPackage + self.timeDelaySeconds = timeDelaySeconds + self.startoverWindowSeconds = startoverWindowSeconds + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case dashPackage = "dashPackage" + case hlsPackage = "hlsPackage" + case whitelist = "whitelist" + case channelId = "channelId" + case manifestName = "manifestName" + case mssPackage = "mssPackage" + case timeDelaySeconds = "timeDelaySeconds" + case startoverWindowSeconds = "startoverWindowSeconds" + case description = "description" + } + } + + public struct IngestEndpoint: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Password", location: .body(locationName: "password"), required: false, type: .string), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), + AWSShapeMember(label: "Username", location: .body(locationName: "username"), required: false, type: .string) + ] + /// The system generated password for ingest authentication. + public let password: String? + /// The ingest URL to which the source stream should be sent. + public let url: String? + /// The system generated username for ingest authentication. + public let username: String? + + public init(password: String? = nil, url: String? = nil, username: String? = nil) { + self.password = password + self.url = url + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case password = "password" + case url = "url" + case username = "username" + } + } + + public struct CreateChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "HlsIngest", location: .body(locationName: "hlsIngest"), required: false, type: .structure), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let description: String? + public let arn: String? + public let hlsIngest: HlsIngest? + public let id: String? + + public init(description: String? = nil, arn: String? = nil, hlsIngest: HlsIngest? = nil, id: String? = nil) { + self.description = description + self.arn = arn + self.hlsIngest = hlsIngest + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case arn = "arn" + case hlsIngest = "hlsIngest" + case id = "id" + } + } + + public struct Channel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "HlsIngest", location: .body(locationName: "hlsIngest"), required: false, type: .structure), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + /// A short text description of the Channel. + public let description: String? + /// The Amazon Resource Name (ARN) assigned to the Channel. + public let arn: String? + public let hlsIngest: HlsIngest? + /// The ID of the Channel. + public let id: String? + + public init(description: String? = nil, arn: String? = nil, hlsIngest: HlsIngest? = nil, id: String? = nil) { + self.description = description + self.arn = arn + self.hlsIngest = hlsIngest + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case arn = "arn" + case hlsIngest = "hlsIngest" + case id = "id" + } + } + + public struct UpdateOriginEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "id"), required: true, type: .string), + AWSShapeMember(label: "DashPackage", location: .body(locationName: "dashPackage"), required: false, type: .structure), + AWSShapeMember(label: "HlsPackage", location: .body(locationName: "hlsPackage"), required: false, type: .structure), + AWSShapeMember(label: "Whitelist", location: .body(locationName: "whitelist"), required: false, type: .list), + AWSShapeMember(label: "ManifestName", location: .body(locationName: "manifestName"), required: false, type: .string), + AWSShapeMember(label: "MssPackage", location: .body(locationName: "mssPackage"), required: false, type: .structure), + AWSShapeMember(label: "TimeDelaySeconds", location: .body(locationName: "timeDelaySeconds"), required: false, type: .integer), + AWSShapeMember(label: "StartoverWindowSeconds", location: .body(locationName: "startoverWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let id: String + public let dashPackage: DashPackage? + public let hlsPackage: HlsPackage? + public let whitelist: [String]? + public let manifestName: String? + public let mssPackage: MssPackage? + public let timeDelaySeconds: Int32? + public let startoverWindowSeconds: Int32? + public let description: String? + + public init(id: String, dashPackage: DashPackage? = nil, hlsPackage: HlsPackage? = nil, whitelist: [String]? = nil, manifestName: String? = nil, mssPackage: MssPackage? = nil, timeDelaySeconds: Int32? = nil, startoverWindowSeconds: Int32? = nil, description: String? = nil) { + self.id = id + self.dashPackage = dashPackage + self.hlsPackage = hlsPackage + self.whitelist = whitelist + self.manifestName = manifestName + self.mssPackage = mssPackage + self.timeDelaySeconds = timeDelaySeconds + self.startoverWindowSeconds = startoverWindowSeconds + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case dashPackage = "dashPackage" + case hlsPackage = "hlsPackage" + case whitelist = "whitelist" + case manifestName = "manifestName" + case mssPackage = "mssPackage" + case timeDelaySeconds = "timeDelaySeconds" + case startoverWindowSeconds = "startoverWindowSeconds" + case description = "description" + } + } + + public struct ChannelCreateParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// The ID of the Channel. The ID must be unique within the region and it + /// cannot be changed after a Channel is created. + public let id: String? + /// A short text description of the Channel. + public let description: String? + + public init(id: String? = nil, description: String? = nil) { + self.id = id + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case description = "description" + } + } + + public struct ListOriginEndpointsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChannelId", location: .querystring(locationName: "channelId"), required: false, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let channelId: String? + public let nextToken: String? + public let maxResults: Int32? + + public init(channelId: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.channelId = channelId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case channelId = "channelId" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct UpdateChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "id"), required: true, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let id: String + public let description: String? + + public init(id: String, description: String? = nil) { + self.id = id + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case description = "description" + } + } + + public struct DashPackage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Encryption", location: .body(locationName: "encryption"), required: false, type: .structure), + AWSShapeMember(label: "SuggestedPresentationDelaySeconds", location: .body(locationName: "suggestedPresentationDelaySeconds"), required: false, type: .integer), + AWSShapeMember(label: "SegmentDurationSeconds", location: .body(locationName: "segmentDurationSeconds"), required: false, type: .integer), + AWSShapeMember(label: "Profile", location: .body(locationName: "profile"), required: false, type: .enum), + AWSShapeMember(label: "MinBufferTimeSeconds", location: .body(locationName: "minBufferTimeSeconds"), required: false, type: .integer), + AWSShapeMember(label: "MinUpdatePeriodSeconds", location: .body(locationName: "minUpdatePeriodSeconds"), required: false, type: .integer), + AWSShapeMember(label: "ManifestWindowSeconds", location: .body(locationName: "manifestWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "StreamSelection", location: .body(locationName: "streamSelection"), required: false, type: .structure) + ] + public let encryption: DashEncryption? + /// Duration (in seconds) to delay live content before presentation. + public let suggestedPresentationDelaySeconds: Int32? + /// Duration (in seconds) of each segment. Actual segments will be + /// rounded to the nearest multiple of the source segment duration. + public let segmentDurationSeconds: Int32? + /// The Dynamic Adaptive Streaming over HTTP (DASH) profile type. When set to "HBBTV_1_5", HbbTV 1.5 compliant output is enabled. + public let profile: Profile? + /// Minimum duration (in seconds) that a player will buffer media before starting the presentation. + public let minBufferTimeSeconds: Int32? + /// Minimum duration (in seconds) between potential changes to the Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD). + public let minUpdatePeriodSeconds: Int32? + /// Time window (in seconds) contained in each manifest. + public let manifestWindowSeconds: Int32? + public let streamSelection: StreamSelection? + + public init(encryption: DashEncryption? = nil, suggestedPresentationDelaySeconds: Int32? = nil, segmentDurationSeconds: Int32? = nil, profile: Profile? = nil, minBufferTimeSeconds: Int32? = nil, minUpdatePeriodSeconds: Int32? = nil, manifestWindowSeconds: Int32? = nil, streamSelection: StreamSelection? = nil) { + self.encryption = encryption + self.suggestedPresentationDelaySeconds = suggestedPresentationDelaySeconds + self.segmentDurationSeconds = segmentDurationSeconds + self.profile = profile + self.minBufferTimeSeconds = minBufferTimeSeconds + self.minUpdatePeriodSeconds = minUpdatePeriodSeconds + self.manifestWindowSeconds = manifestWindowSeconds + self.streamSelection = streamSelection + } + + private enum CodingKeys: String, CodingKey { + case encryption = "encryption" + case suggestedPresentationDelaySeconds = "suggestedPresentationDelaySeconds" + case segmentDurationSeconds = "segmentDurationSeconds" + case profile = "profile" + case minBufferTimeSeconds = "minBufferTimeSeconds" + case minUpdatePeriodSeconds = "minUpdatePeriodSeconds" + case manifestWindowSeconds = "manifestWindowSeconds" + case streamSelection = "streamSelection" + } + } + + public struct UpdateChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "HlsIngest", location: .body(locationName: "hlsIngest"), required: false, type: .structure), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let description: String? + public let arn: String? + public let hlsIngest: HlsIngest? + public let id: String? + + public init(description: String? = nil, arn: String? = nil, hlsIngest: HlsIngest? = nil, id: String? = nil) { + self.description = description + self.arn = arn + self.hlsIngest = hlsIngest + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case arn = "arn" + case hlsIngest = "hlsIngest" + case id = "id" + } + } + + public struct OriginEndpointList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OriginEndpoints", location: .body(locationName: "originEndpoints"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + /// A list of OriginEndpoint records. + public let originEndpoints: [OriginEndpoint]? + /// A token that can be used to resume pagination from the end of the collection. + public let nextToken: String? + + public init(originEndpoints: [OriginEndpoint]? = nil, nextToken: String? = nil) { + self.originEndpoints = originEndpoints + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case originEndpoints = "originEndpoints" + case nextToken = "nextToken" + } + } + + public struct UpdateOriginEndpointResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "DashPackage", location: .body(locationName: "dashPackage"), required: false, type: .structure), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "HlsPackage", location: .body(locationName: "hlsPackage"), required: false, type: .structure), + AWSShapeMember(label: "Whitelist", location: .body(locationName: "whitelist"), required: false, type: .list), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), + AWSShapeMember(label: "ChannelId", location: .body(locationName: "channelId"), required: false, type: .string), + AWSShapeMember(label: "ManifestName", location: .body(locationName: "manifestName"), required: false, type: .string), + AWSShapeMember(label: "MssPackage", location: .body(locationName: "mssPackage"), required: false, type: .structure), + AWSShapeMember(label: "TimeDelaySeconds", location: .body(locationName: "timeDelaySeconds"), required: false, type: .integer), + AWSShapeMember(label: "StartoverWindowSeconds", location: .body(locationName: "startoverWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let description: String? + public let dashPackage: DashPackage? + public let arn: String? + public let hlsPackage: HlsPackage? + public let whitelist: [String]? + public let url: String? + public let channelId: String? + public let manifestName: String? + public let mssPackage: MssPackage? + public let timeDelaySeconds: Int32? + public let startoverWindowSeconds: Int32? + public let id: String? + + public init(description: String? = nil, dashPackage: DashPackage? = nil, arn: String? = nil, hlsPackage: HlsPackage? = nil, whitelist: [String]? = nil, url: String? = nil, channelId: String? = nil, manifestName: String? = nil, mssPackage: MssPackage? = nil, timeDelaySeconds: Int32? = nil, startoverWindowSeconds: Int32? = nil, id: String? = nil) { + self.description = description + self.dashPackage = dashPackage + self.arn = arn + self.hlsPackage = hlsPackage + self.whitelist = whitelist + self.url = url + self.channelId = channelId + self.manifestName = manifestName + self.mssPackage = mssPackage + self.timeDelaySeconds = timeDelaySeconds + self.startoverWindowSeconds = startoverWindowSeconds + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case dashPackage = "dashPackage" + case arn = "arn" + case hlsPackage = "hlsPackage" + case whitelist = "whitelist" + case url = "url" + case channelId = "channelId" + case manifestName = "manifestName" + case mssPackage = "mssPackage" + case timeDelaySeconds = "timeDelaySeconds" + case startoverWindowSeconds = "startoverWindowSeconds" + case id = "id" + } + } + + public struct CreateChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: true, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let id: String + public let description: String? + + public init(id: String, description: String? = nil) { + self.id = id + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case description = "description" + } + } + + public enum PlaylistType: String, CustomStringConvertible, Codable { + case none = "NONE" + case event = "EVENT" + case vod = "VOD" + public var description: String { return self.rawValue } + } + + public struct DeleteChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "id"), required: true, type: .string) + ] + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + } + } + + public struct DescribeOriginEndpointResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "DashPackage", location: .body(locationName: "dashPackage"), required: false, type: .structure), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "HlsPackage", location: .body(locationName: "hlsPackage"), required: false, type: .structure), + AWSShapeMember(label: "Whitelist", location: .body(locationName: "whitelist"), required: false, type: .list), + AWSShapeMember(label: "Url", location: .body(locationName: "url"), required: false, type: .string), + AWSShapeMember(label: "ChannelId", location: .body(locationName: "channelId"), required: false, type: .string), + AWSShapeMember(label: "ManifestName", location: .body(locationName: "manifestName"), required: false, type: .string), + AWSShapeMember(label: "MssPackage", location: .body(locationName: "mssPackage"), required: false, type: .structure), + AWSShapeMember(label: "TimeDelaySeconds", location: .body(locationName: "timeDelaySeconds"), required: false, type: .integer), + AWSShapeMember(label: "StartoverWindowSeconds", location: .body(locationName: "startoverWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let description: String? + public let dashPackage: DashPackage? + public let arn: String? + public let hlsPackage: HlsPackage? + public let whitelist: [String]? + public let url: String? + public let channelId: String? + public let manifestName: String? + public let mssPackage: MssPackage? + public let timeDelaySeconds: Int32? + public let startoverWindowSeconds: Int32? + public let id: String? + + public init(description: String? = nil, dashPackage: DashPackage? = nil, arn: String? = nil, hlsPackage: HlsPackage? = nil, whitelist: [String]? = nil, url: String? = nil, channelId: String? = nil, manifestName: String? = nil, mssPackage: MssPackage? = nil, timeDelaySeconds: Int32? = nil, startoverWindowSeconds: Int32? = nil, id: String? = nil) { + self.description = description + self.dashPackage = dashPackage + self.arn = arn + self.hlsPackage = hlsPackage + self.whitelist = whitelist + self.url = url + self.channelId = channelId + self.manifestName = manifestName + self.mssPackage = mssPackage + self.timeDelaySeconds = timeDelaySeconds + self.startoverWindowSeconds = startoverWindowSeconds + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case dashPackage = "dashPackage" + case arn = "arn" + case hlsPackage = "hlsPackage" + case whitelist = "whitelist" + case url = "url" + case channelId = "channelId" + case manifestName = "manifestName" + case mssPackage = "mssPackage" + case timeDelaySeconds = "timeDelaySeconds" + case startoverWindowSeconds = "startoverWindowSeconds" + case id = "id" + } + } + + public struct MssEncryption: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SpekeKeyProvider", location: .body(locationName: "spekeKeyProvider"), required: true, type: .structure) + ] + public let spekeKeyProvider: SpekeKeyProvider + + public init(spekeKeyProvider: SpekeKeyProvider) { + self.spekeKeyProvider = spekeKeyProvider + } + + private enum CodingKeys: String, CodingKey { + case spekeKeyProvider = "spekeKeyProvider" + } + } + + public struct RotateChannelCredentialsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "id"), required: true, type: .string) + ] + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + } + } + + public struct HlsPackage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Encryption", location: .body(locationName: "encryption"), required: false, type: .structure), + AWSShapeMember(label: "PlaylistWindowSeconds", location: .body(locationName: "playlistWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "SegmentDurationSeconds", location: .body(locationName: "segmentDurationSeconds"), required: false, type: .integer), + AWSShapeMember(label: "AdMarkers", location: .body(locationName: "adMarkers"), required: false, type: .enum), + AWSShapeMember(label: "UseAudioRenditionGroup", location: .body(locationName: "useAudioRenditionGroup"), required: false, type: .boolean), + AWSShapeMember(label: "ProgramDateTimeIntervalSeconds", location: .body(locationName: "programDateTimeIntervalSeconds"), required: false, type: .integer), + AWSShapeMember(label: "PlaylistType", location: .body(locationName: "playlistType"), required: false, type: .enum), + AWSShapeMember(label: "IncludeIframeOnlyStream", location: .body(locationName: "includeIframeOnlyStream"), required: false, type: .boolean), + AWSShapeMember(label: "StreamSelection", location: .body(locationName: "streamSelection"), required: false, type: .structure) + ] + public let encryption: HlsEncryption? + /// Time window (in seconds) contained in each parent manifest. + public let playlistWindowSeconds: Int32? + /// Duration (in seconds) of each fragment. Actual fragments will be + /// rounded to the nearest multiple of the source fragment duration. + public let segmentDurationSeconds: Int32? + /// This setting controls how ad markers are included in the packaged OriginEndpoint. + /// "NONE" will omit all SCTE-35 ad markers from the output. + /// "PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 ad + /// markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest. + /// "SCTE35_ENHANCED" generates ad markers and blackout tags based on SCTE-35 + /// messages in the input source. + public let adMarkers: AdMarkers? + /// When enabled, audio streams will be placed in rendition groups in the output. + public let useAudioRenditionGroup: Bool? + /// The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag + /// inserted into manifests. Additionally, when an interval is specified + /// ID3Timed Metadata messages will be generated every 5 seconds using the + /// ingest time of the content. + /// If the interval is not specified, or set to 0, then + /// no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no + /// ID3Timed Metadata messages will be generated. Note that irrespective + /// of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, + /// it will be passed through to HLS output. + public let programDateTimeIntervalSeconds: Int32? + /// The HTTP Live Streaming (HLS) playlist type. + /// When either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPE + /// entry will be included in the media playlist. + public let playlistType: PlaylistType? + /// When enabled, an I-Frame only stream will be included in the output. + public let includeIframeOnlyStream: Bool? + public let streamSelection: StreamSelection? + + public init(encryption: HlsEncryption? = nil, playlistWindowSeconds: Int32? = nil, segmentDurationSeconds: Int32? = nil, adMarkers: AdMarkers? = nil, useAudioRenditionGroup: Bool? = nil, programDateTimeIntervalSeconds: Int32? = nil, playlistType: PlaylistType? = nil, includeIframeOnlyStream: Bool? = nil, streamSelection: StreamSelection? = nil) { + self.encryption = encryption + self.playlistWindowSeconds = playlistWindowSeconds + self.segmentDurationSeconds = segmentDurationSeconds + self.adMarkers = adMarkers + self.useAudioRenditionGroup = useAudioRenditionGroup + self.programDateTimeIntervalSeconds = programDateTimeIntervalSeconds + self.playlistType = playlistType + self.includeIframeOnlyStream = includeIframeOnlyStream + self.streamSelection = streamSelection + } + + private enum CodingKeys: String, CodingKey { + case encryption = "encryption" + case playlistWindowSeconds = "playlistWindowSeconds" + case segmentDurationSeconds = "segmentDurationSeconds" + case adMarkers = "adMarkers" + case useAudioRenditionGroup = "useAudioRenditionGroup" + case programDateTimeIntervalSeconds = "programDateTimeIntervalSeconds" + case playlistType = "playlistType" + case includeIframeOnlyStream = "includeIframeOnlyStream" + case streamSelection = "streamSelection" + } + } + + public struct DeleteChannelResponse: AWSShape { + + } + + public enum Profile: String, CustomStringConvertible, Codable { + case none = "NONE" + case hbbtv15 = "HBBTV_1_5" + public var description: String { return self.rawValue } + } + + public struct MssPackage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SegmentDurationSeconds", location: .body(locationName: "segmentDurationSeconds"), required: false, type: .integer), + AWSShapeMember(label: "ManifestWindowSeconds", location: .body(locationName: "manifestWindowSeconds"), required: false, type: .integer), + AWSShapeMember(label: "StreamSelection", location: .body(locationName: "streamSelection"), required: false, type: .structure), + AWSShapeMember(label: "Encryption", location: .body(locationName: "encryption"), required: false, type: .structure) + ] + /// The duration (in seconds) of each segment. + public let segmentDurationSeconds: Int32? + /// The time window (in seconds) contained in each manifest. + public let manifestWindowSeconds: Int32? + public let streamSelection: StreamSelection? + public let encryption: MssEncryption? + + public init(segmentDurationSeconds: Int32? = nil, manifestWindowSeconds: Int32? = nil, streamSelection: StreamSelection? = nil, encryption: MssEncryption? = nil) { + self.segmentDurationSeconds = segmentDurationSeconds + self.manifestWindowSeconds = manifestWindowSeconds + self.streamSelection = streamSelection + self.encryption = encryption + } + + private enum CodingKeys: String, CodingKey { + case segmentDurationSeconds = "segmentDurationSeconds" + case manifestWindowSeconds = "manifestWindowSeconds" + case streamSelection = "streamSelection" + case encryption = "encryption" + } + } + + public struct StreamSelection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MinVideoBitsPerSecond", location: .body(locationName: "minVideoBitsPerSecond"), required: false, type: .integer), + AWSShapeMember(label: "StreamOrder", location: .body(locationName: "streamOrder"), required: false, type: .enum), + AWSShapeMember(label: "MaxVideoBitsPerSecond", location: .body(locationName: "maxVideoBitsPerSecond"), required: false, type: .integer) + ] + /// The minimum video bitrate (bps) to include in output. + public let minVideoBitsPerSecond: Int32? + /// A directive that determines the order of streams in the output. + public let streamOrder: StreamOrder? + /// The maximum video bitrate (bps) to include in output. + public let maxVideoBitsPerSecond: Int32? + + public init(minVideoBitsPerSecond: Int32? = nil, streamOrder: StreamOrder? = nil, maxVideoBitsPerSecond: Int32? = nil) { + self.minVideoBitsPerSecond = minVideoBitsPerSecond + self.streamOrder = streamOrder + self.maxVideoBitsPerSecond = maxVideoBitsPerSecond + } + + private enum CodingKeys: String, CodingKey { + case minVideoBitsPerSecond = "minVideoBitsPerSecond" + case streamOrder = "streamOrder" + case maxVideoBitsPerSecond = "maxVideoBitsPerSecond" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediastore-data/MediastoreData_API.swift b/Sources/AWSSDKSwift/Services/mediastore-data/MediastoreData_API.swift new file mode 100644 index 00000000000..ca14594d4e5 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediastore-data/MediastoreData_API.swift @@ -0,0 +1,53 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +An AWS Elemental MediaStore asset is an object, similar to an object in the Amazon S3 service. Objects are the fundamental entities that are stored in AWS Elemental MediaStore. +*/ +public struct MediastoreData { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "data.mediastore", + serviceProtocol: ServiceProtocol(type: .restjson), + apiVersion: "2017-09-01", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [MediastoreDataError.self] + ) + } + + /// Gets the header for an object at the specified path. + public func describeObject(_ input: DescribeObjectRequest) throws -> DescribeObjectResponse { + return try client.send(operation: "DescribeObject", path: "/{Path+}", httpMethod: "HEAD", input: input) + } + + /// Deletes an object at the specified path. + public func deleteObject(_ input: DeleteObjectRequest) throws -> DeleteObjectResponse { + return try client.send(operation: "DeleteObject", path: "/{Path+}", httpMethod: "DELETE", input: input) + } + + /// Downloads the object at the specified path. + public func getObject(_ input: GetObjectRequest) throws -> GetObjectResponse { + return try client.send(operation: "GetObject", path: "/{Path+}", httpMethod: "GET", input: input) + } + + /// Provides a list of metadata entries about folders and objects in the specified folder. + public func listItems(_ input: ListItemsRequest) throws -> ListItemsResponse { + return try client.send(operation: "ListItems", path: "/", httpMethod: "GET", input: input) + } + + /// Uploads an object to the specified path. Object sizes are limited to 10 MB. + public func putObject(_ input: PutObjectRequest) throws -> PutObjectResponse { + return try client.send(operation: "PutObject", path: "/{Path+}", httpMethod: "PUT", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediastore-data/MediastoreData_Error.swift b/Sources/AWSSDKSwift/Services/mediastore-data/MediastoreData_Error.swift new file mode 100644 index 00000000000..1c458faeeae --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediastore-data/MediastoreData_Error.swift @@ -0,0 +1,32 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for MediastoreData +public enum MediastoreDataError: AWSErrorType { + case containerNotFoundException(message: String?) + case objectNotFoundException(message: String?) + case internalServerError(message: String?) + case requestedRangeNotSatisfiableException(message: String?) +} + +extension MediastoreDataError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "ContainerNotFoundException": + self = .containerNotFoundException(message: message) + case "ObjectNotFoundException": + self = .objectNotFoundException(message: message) + case "InternalServerError": + self = .internalServerError(message: message) + case "RequestedRangeNotSatisfiableException": + self = .requestedRangeNotSatisfiableException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediastore-data/MediastoreData_Shapes.swift b/Sources/AWSSDKSwift/Services/mediastore-data/MediastoreData_Shapes.swift new file mode 100644 index 00000000000..077706cfa06 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediastore-data/MediastoreData_Shapes.swift @@ -0,0 +1,317 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension MediastoreData { + + public struct PutObjectRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "Body" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContentType", location: .header(locationName: "Content-Type"), required: false, type: .string), + AWSShapeMember(label: "StorageClass", location: .header(locationName: "x-amz-storage-class"), required: false, type: .enum), + AWSShapeMember(label: "CacheControl", location: .header(locationName: "Cache-Control"), required: false, type: .string), + AWSShapeMember(label: "Body", required: true, type: .blob), + AWSShapeMember(label: "Path", location: .uri(locationName: "Path"), required: true, type: .string) + ] + /// The content type of the object. + public let contentType: String? + /// Indicates the storage class of a Put request. Defaults to high-performance temporal storage class, and objects are persisted into durable storage shortly after being received. + public let storageClass: StorageClass? + /// An optional CacheControl header that allows the caller to control the object's cache behavior. Headers can be passed in as specified in the HTTP at https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9. Headers with a custom user-defined value are also accepted. + public let cacheControl: String? + /// The path to the file outside of the container. The file name can include or omit an extension. Example 1: If the file is stored on a remote server that has been mounted to the workstation on which the REST API command is being run, the path could be the absolute path \mount\assets\mlaw.avi or the relative path ..\..\mount\assets\movies\premium\mlaw.avi. Example 2: If the file is stored on a remote server that is not mounted, the path could be https:\\192.0.2.15\movies\premium\mlaw.avi. + public let body: Data + /// The path (including the file name) where the object is stored in the container. Format: <folder name>/<folder name>/<file name> For example, to upload the file mlaw.avi to the folder path premium\canada in the container movies, enter the path premium/canada/mlaw.avi. Do not include the container name in this path. If the path includes any folders that don't exist yet, the service creates them. For example, suppose you have an existing premium/usa subfolder. If you specify premium/canada, the service creates a canada subfolder in the premium folder. You then have two subfolders, usa and canada, in the premium folder. There is no correlation between the path to the source and the path (folders) in the container in AWS Elemental MediaStore. For more information about folders and how they exist in a container, see the AWS Elemental MediaStore User Guide. The file name is the name that is assigned to the file that you upload. The file can have the same name inside and outside of AWS Elemental MediaStore, or it can have the same name. The file name can include or omit an extension. + public let path: String + + public init(contentType: String? = nil, storageClass: StorageClass? = nil, cacheControl: String? = nil, body: Data, path: String) { + self.contentType = contentType + self.storageClass = storageClass + self.cacheControl = cacheControl + self.body = body + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case contentType = "Content-Type" + case storageClass = "x-amz-storage-class" + case cacheControl = "Cache-Control" + case body = "Body" + case path = "Path" + } + } + + public struct Item: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastModified", required: false, type: .timestamp), + AWSShapeMember(label: "ContentLength", required: false, type: .long), + AWSShapeMember(label: "ETag", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "ContentType", required: false, type: .string) + ] + /// The date and time that the item was last modified. + public let lastModified: TimeStamp? + /// The length of the item in bytes. + public let contentLength: Int64? + /// The ETag that represents a unique instance of the item. + public let eTag: String? + /// The name of the item. + public let name: String? + /// The item type (folder or object). + public let `type`: ItemType? + /// The content type of the item. + public let contentType: String? + + public init(lastModified: TimeStamp? = nil, contentLength: Int64? = nil, eTag: String? = nil, name: String? = nil, type: ItemType? = nil, contentType: String? = nil) { + self.lastModified = lastModified + self.contentLength = contentLength + self.eTag = eTag + self.name = name + self.`type` = `type` + self.contentType = contentType + } + + private enum CodingKeys: String, CodingKey { + case lastModified = "LastModified" + case contentLength = "ContentLength" + case eTag = "ETag" + case name = "Name" + case `type` = "Type" + case contentType = "ContentType" + } + } + + public struct GetObjectRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Range", location: .header(locationName: "Range"), required: false, type: .string), + AWSShapeMember(label: "Path", location: .uri(locationName: "Path"), required: true, type: .string) + ] + /// The range bytes of an object to retrieve. For more information about the Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35. + public let range: String? + /// The path (including the file name) where the object is stored in the container. Format: <folder name>/<folder name>/<file name> For example, to upload the file mlaw.avi to the folder path premium\canada in the container movies, enter the path premium/canada/mlaw.avi. Do not include the container name in this path. If the path includes any folders that don't exist yet, the service creates them. For example, suppose you have an existing premium/usa subfolder. If you specify premium/canada, the service creates a canada subfolder in the premium folder. You then have two subfolders, usa and canada, in the premium folder. There is no correlation between the path to the source and the path (folders) in the container in AWS Elemental MediaStore. For more information about folders and how they exist in a container, see the AWS Elemental MediaStore User Guide. The file name is the name that is assigned to the file that you upload. The file can have the same name inside and outside of AWS Elemental MediaStore, or it can have the same name. The file name can include or omit an extension. + public let path: String + + public init(range: String? = nil, path: String) { + self.range = range + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case range = "Range" + case path = "Path" + } + } + + public struct PutObjectResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ETag", required: false, type: .string), + AWSShapeMember(label: "StorageClass", required: false, type: .enum), + AWSShapeMember(label: "ContentSHA256", required: false, type: .string) + ] + /// Unique identifier of the object in the container. + public let eTag: String? + /// The storage class where the object was persisted. Should be “Temporal”. + public let storageClass: StorageClass? + /// The SHA256 digest of the object that is persisted. + public let contentSHA256: String? + + public init(eTag: String? = nil, storageClass: StorageClass? = nil, contentSHA256: String? = nil) { + self.eTag = eTag + self.storageClass = storageClass + self.contentSHA256 = contentSHA256 + } + + private enum CodingKeys: String, CodingKey { + case eTag = "ETag" + case storageClass = "StorageClass" + case contentSHA256 = "ContentSHA256" + } + } + + public struct DescribeObjectResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastModified", location: .header(locationName: "Last-Modified"), required: false, type: .timestamp), + AWSShapeMember(label: "CacheControl", location: .header(locationName: "Cache-Control"), required: false, type: .string), + AWSShapeMember(label: "ContentLength", location: .header(locationName: "Content-Length"), required: false, type: .long), + AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), + AWSShapeMember(label: "ContentType", location: .header(locationName: "Content-Type"), required: false, type: .string) + ] + /// The date and time that the object was last modified. + public let lastModified: TimeStamp? + /// An optional CacheControl header that allows the caller to control the object's cache behavior. Headers can be passed in as specified in the HTTP at https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9. Headers with a custom user-defined value are also accepted. + public let cacheControl: String? + /// The length of the object in bytes. + public let contentLength: Int64? + /// The ETag that represents a unique instance of the object. + public let eTag: String? + /// The content type of the object. + public let contentType: String? + + public init(lastModified: TimeStamp? = nil, cacheControl: String? = nil, contentLength: Int64? = nil, eTag: String? = nil, contentType: String? = nil) { + self.lastModified = lastModified + self.cacheControl = cacheControl + self.contentLength = contentLength + self.eTag = eTag + self.contentType = contentType + } + + private enum CodingKeys: String, CodingKey { + case lastModified = "Last-Modified" + case cacheControl = "Cache-Control" + case contentLength = "Content-Length" + case eTag = "ETag" + case contentType = "Content-Type" + } + } + + public struct DescribeObjectRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Path", location: .uri(locationName: "Path"), required: true, type: .string) + ] + /// The path (including the file name) where the object is stored in the container. Format: <folder name>/<folder name>/<file name> + public let path: String + + public init(path: String) { + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case path = "Path" + } + } + + public struct DeleteObjectRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Path", location: .uri(locationName: "Path"), required: true, type: .string) + ] + /// The path (including the file name) where the object is stored in the container. Format: <folder name>/<folder name>/<file name> + public let path: String + + public init(path: String) { + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case path = "Path" + } + } + + public struct GetObjectResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "Body" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastModified", location: .header(locationName: "Last-Modified"), required: false, type: .timestamp), + AWSShapeMember(label: "CacheControl", location: .header(locationName: "Cache-Control"), required: false, type: .string), + AWSShapeMember(label: "ContentLength", location: .header(locationName: "Content-Length"), required: false, type: .long), + AWSShapeMember(label: "ContentRange", location: .header(locationName: "Content-Range"), required: false, type: .string), + AWSShapeMember(label: "ContentType", location: .header(locationName: "Content-Type"), required: false, type: .string), + AWSShapeMember(label: "StatusCode", required: true, type: .integer), + AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), + AWSShapeMember(label: "Body", required: false, type: .blob) + ] + /// The date and time that the object was last modified. + public let lastModified: TimeStamp? + /// An optional CacheControl header that allows the caller to control the object's cache behavior. Headers can be passed in as specified in the HTTP spec at https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9. Headers with a custom user-defined value are also accepted. + public let cacheControl: String? + /// The length of the object in bytes. + public let contentLength: Int64? + /// The range of bytes to retrieve. + public let contentRange: String? + /// The content type of the object. + public let contentType: String? + /// The HTML status code of the request. Status codes ranging from 200 to 299 indicate success. All other status codes indicate the type of error that occurred. + public let statusCode: Int32 + /// The ETag that represents a unique instance of the object. + public let eTag: String? + /// The path to the file outside of the container. The file name can include or omit an extension. Example 1: If the file is stored on a remote server that has been mounted to the workstation on which the REST API command is being run, the path could be the absolute path \mount\assets\mlaw.avi or the relative path ..\..\mount\assets\movies\premium\mlaw.avi. Example 2: If the file is stored on a remote server that is not mounted, the path could be https:\\192.0.2.15\movies\premium\mlaw.avi. + public let body: Data? + + public init(lastModified: TimeStamp? = nil, cacheControl: String? = nil, contentLength: Int64? = nil, contentRange: String? = nil, contentType: String? = nil, statusCode: Int32, eTag: String? = nil, body: Data? = nil) { + self.lastModified = lastModified + self.cacheControl = cacheControl + self.contentLength = contentLength + self.contentRange = contentRange + self.contentType = contentType + self.statusCode = statusCode + self.eTag = eTag + self.body = body + } + + private enum CodingKeys: String, CodingKey { + case lastModified = "Last-Modified" + case cacheControl = "Cache-Control" + case contentLength = "Content-Length" + case contentRange = "Content-Range" + case contentType = "Content-Type" + case statusCode = "StatusCode" + case eTag = "ETag" + case body = "Body" + } + } + + public struct ListItemsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Path", location: .querystring(locationName: "Path"), required: false, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "MaxResults"), required: false, type: .integer) + ] + /// The path in the container from which to retrieve items. Format: <folder name>/<folder name>/<file name> + public let path: String? + /// The NextToken received in the ListItemsResponse for the same container and path. Tokens expire after 15 minutes. + public let nextToken: String? + /// The maximum results to return. The service might return fewer results. + public let maxResults: Int32? + + public init(path: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.path = path + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case path = "Path" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct DeleteObjectResponse: AWSShape { + + } + + public struct ListItemsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Items", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Metadata entries for the folders and objects at the requested path. + public let items: [Item]? + /// The NextToken used to request the next page of results using ListItems. + public let nextToken: String? + + public init(items: [Item]? = nil, nextToken: String? = nil) { + self.items = items + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case items = "Items" + case nextToken = "NextToken" + } + } + + public enum ItemType: String, CustomStringConvertible, Codable { + case object = "OBJECT" + case folder = "FOLDER" + public var description: String { return self.rawValue } + } + + public enum StorageClass: String, CustomStringConvertible, Codable { + case temporal = "TEMPORAL" + public var description: String { return self.rawValue } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediastore/Mediastore_API.swift b/Sources/AWSSDKSwift/Services/mediastore/Mediastore_API.swift new file mode 100644 index 00000000000..6ea01c065b2 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediastore/Mediastore_API.swift @@ -0,0 +1,64 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +An AWS Elemental MediaStore container is a namespace that holds folders and objects. You use a container endpoint to create, read, and delete objects. +*/ +public struct Mediastore { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "MediaStore_20170901", + service: "mediastore", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-09-01", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [MediastoreError.self] + ) + } + + /// Creates a storage container to hold objects. A container is similar to a bucket in the Amazon S3 service. + public func createContainer(_ input: CreateContainerInput) throws -> CreateContainerOutput { + return try client.send(operation: "CreateContainer", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an access policy for the specified container to restrict the users and clients that can access it. For information about the data that is included in an access policy, see the AWS Identity and Access Management User Guide. For this release of the REST API, you can create only one policy for a container. If you enter PutContainerPolicy twice, the second command modifies the existing policy. + public func putContainerPolicy(_ input: PutContainerPolicyInput) throws -> PutContainerPolicyOutput { + return try client.send(operation: "PutContainerPolicy", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the specified container. Before you make a DeleteContainer request, delete any objects in the container or in any folders in the container. You can delete only empty containers. + public func deleteContainer(_ input: DeleteContainerInput) throws -> DeleteContainerOutput { + return try client.send(operation: "DeleteContainer", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the properties of the requested container. This returns a single Container object based on ContainerName. To return all Container objects that are associated with a specified AWS account, use ListContainers. + public func describeContainer(_ input: DescribeContainerInput) throws -> DescribeContainerOutput { + return try client.send(operation: "DescribeContainer", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the access policy for the specified container. For information about the data that is included in an access policy, see the AWS Identity and Access Management User Guide. + public func getContainerPolicy(_ input: GetContainerPolicyInput) throws -> GetContainerPolicyOutput { + return try client.send(operation: "GetContainerPolicy", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the access policy that is associated with the specified container. + public func deleteContainerPolicy(_ input: DeleteContainerPolicyInput) throws -> DeleteContainerPolicyOutput { + return try client.send(operation: "DeleteContainerPolicy", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the properties of all containers in AWS Elemental MediaStore. You can query to receive all the containers in one response. Or you can include the MaxResults parameter to receive a limited number of containers in each response. In this case, the response includes a token. To get the next set of containers, send the command again, this time with the NextToken parameter (with the returned token as its value). The next set of responses appears, with a token if there are still more containers to receive. See also DescribeContainer, which gets the properties of one container. + public func listContainers(_ input: ListContainersInput) throws -> ListContainersOutput { + return try client.send(operation: "ListContainers", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediastore/Mediastore_Error.swift b/Sources/AWSSDKSwift/Services/mediastore/Mediastore_Error.swift new file mode 100644 index 00000000000..b52ad3dc276 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediastore/Mediastore_Error.swift @@ -0,0 +1,35 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Mediastore +public enum MediastoreError: AWSErrorType { + case containerInUseException(message: String?) + case limitExceededException(message: String?) + case internalServerError(message: String?) + case containerNotFoundException(message: String?) + case policyNotFoundException(message: String?) +} + +extension MediastoreError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "ContainerInUseException": + self = .containerInUseException(message: message) + case "LimitExceededException": + self = .limitExceededException(message: message) + case "InternalServerError": + self = .internalServerError(message: message) + case "ContainerNotFoundException": + self = .containerNotFoundException(message: message) + case "PolicyNotFoundException": + self = .policyNotFoundException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mediastore/Mediastore_Shapes.swift b/Sources/AWSSDKSwift/Services/mediastore/Mediastore_Shapes.swift new file mode 100644 index 00000000000..65849cb5db2 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mediastore/Mediastore_Shapes.swift @@ -0,0 +1,254 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Mediastore { + + public struct CreateContainerOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Container", required: true, type: .structure) + ] + /// ContainerARN: The Amazon Resource Name (ARN) of the newly created container. The ARN has the following format: arn:aws:<region>:<account that owns this container>:container/<name of container>. For example: arn:aws:mediastore:us-west-2:111122223333:container/movies ContainerName: The container name as specified in the request. CreationTime: Unix timestamp. Status: The status of container creation or deletion. The status is one of the following: CREATING, ACTIVE, or DELETING. While the service is creating the container, the status is CREATING. When an endpoint is available, the status changes to ACTIVE. The return value does not include the container's endpoint. To make downstream requests, you must obtain this value by using DescribeContainer or ListContainers. + public let container: Container + + public init(container: Container) { + self.container = container + } + + private enum CodingKeys: String, CodingKey { + case container = "Container" + } + } + + public struct GetContainerPolicyOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Policy", required: true, type: .string) + ] + /// The contents of the access policy. + public let policy: String + + public init(policy: String) { + self.policy = policy + } + + private enum CodingKeys: String, CodingKey { + case policy = "Policy" + } + } + + public struct ListContainersOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Containers", required: true, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The names of the containers. + public let containers: [Container] + /// NextToken is the token to use in the next call to ListContainers. This token is returned only if you included the MaxResults tag in the original command, and only if there are still containers to return. + public let nextToken: String? + + public init(containers: [Container], nextToken: String? = nil) { + self.containers = containers + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case containers = "Containers" + case nextToken = "NextToken" + } + } + + public struct ListContainersInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Only if you used MaxResults in the first command, enter the token (which was included in the previous response) to obtain the next set of containers. This token is included in a response only if there actually are more containers to list. + public let nextToken: String? + /// Enter the maximum number of containers in the response. Use from 1 to 255 characters. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct DeleteContainerPolicyInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContainerName", required: true, type: .string) + ] + /// The name of the container that holds the policy. + public let containerName: String + + public init(containerName: String) { + self.containerName = containerName + } + + private enum CodingKeys: String, CodingKey { + case containerName = "ContainerName" + } + } + + public struct DeleteContainerPolicyOutput: AWSShape { + + } + + public struct PutContainerPolicyOutput: AWSShape { + + } + + public struct GetContainerPolicyInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContainerName", required: true, type: .string) + ] + /// The name of the container. + public let containerName: String + + public init(containerName: String) { + self.containerName = containerName + } + + private enum CodingKeys: String, CodingKey { + case containerName = "ContainerName" + } + } + + public struct DescribeContainerOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Container", required: false, type: .structure) + ] + /// The name of the queried container. + public let container: Container? + + public init(container: Container? = nil) { + self.container = container + } + + private enum CodingKeys: String, CodingKey { + case container = "Container" + } + } + + public struct DeleteContainerInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContainerName", required: true, type: .string) + ] + /// The name of the container to delete. + public let containerName: String + + public init(containerName: String) { + self.containerName = containerName + } + + private enum CodingKeys: String, CodingKey { + case containerName = "ContainerName" + } + } + + public struct PutContainerPolicyInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Policy", required: true, type: .string), + AWSShapeMember(label: "ContainerName", required: true, type: .string) + ] + /// The contents of the policy, which includes the following: One Version tag One Statement tag that contains the standard tags for the policy. + public let policy: String + /// The name of the container. + public let containerName: String + + public init(policy: String, containerName: String) { + self.policy = policy + self.containerName = containerName + } + + private enum CodingKeys: String, CodingKey { + case policy = "Policy" + case containerName = "ContainerName" + } + } + + public struct DeleteContainerOutput: AWSShape { + + } + + public struct CreateContainerInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContainerName", required: true, type: .string) + ] + /// The name for the container. The name must be from 1 to 255 characters. Container names must be unique to your AWS account within a specific region. As an example, you could create a container named movies in every region, as long as you don’t have an existing container with that name. + public let containerName: String + + public init(containerName: String) { + self.containerName = containerName + } + + private enum CodingKeys: String, CodingKey { + case containerName = "ContainerName" + } + } + + public struct DescribeContainerInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContainerName", required: false, type: .string) + ] + /// The name of the container to query. + public let containerName: String? + + public init(containerName: String? = nil) { + self.containerName = containerName + } + + private enum CodingKeys: String, CodingKey { + case containerName = "ContainerName" + } + } + + public enum ContainerStatus: String, CustomStringConvertible, Codable { + case active = "ACTIVE" + case creating = "CREATING" + case deleting = "DELETING" + public var description: String { return self.rawValue } + } + + public struct Container: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreationTime", required: false, type: .timestamp), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "ARN", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Endpoint", required: false, type: .string) + ] + /// Unix timestamp. + public let creationTime: TimeStamp? + /// The status of container creation or deletion. The status is one of the following: CREATING, ACTIVE, or DELETING. While the service is creating the container, the status is CREATING. When the endpoint is available, the status changes to ACTIVE. + public let status: ContainerStatus? + /// The Amazon Resource Name (ARN) of the container. The ARN has the following format: arn:aws:<region>:<account that owns this container>:container/<name of container> For example: arn:aws:mediastore:us-west-2:111122223333:container/movies + public let arn: String? + /// The name of the container. + public let name: String? + /// The DNS endpoint of the container. Use from 1 to 255 characters. Use this endpoint to identify this container when sending requests to the data plane. + public let endpoint: String? + + public init(creationTime: TimeStamp? = nil, status: ContainerStatus? = nil, arn: String? = nil, name: String? = nil, endpoint: String? = nil) { + self.creationTime = creationTime + self.status = status + self.arn = arn + self.name = name + self.endpoint = endpoint + } + + private enum CodingKeys: String, CodingKey { + case creationTime = "CreationTime" + case status = "Status" + case arn = "ARN" + case name = "Name" + case endpoint = "Endpoint" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/meteringmarketplace/Meteringmarketplace_Shapes.swift b/Sources/AWSSDKSwift/Services/meteringmarketplace/Meteringmarketplace_Shapes.swift index 0ac738588a7..4777926d594 100644 --- a/Sources/AWSSDKSwift/Services/meteringmarketplace/Meteringmarketplace_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/meteringmarketplace/Meteringmarketplace_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Meteringmarketplace { public struct UsageRecord: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomerIdentifier", required: true, type: .string), AWSShapeMember(label: "Timestamp", required: true, type: .timestamp), AWSShapeMember(label: "Dimension", required: true, type: .string), @@ -37,7 +37,7 @@ extension Meteringmarketplace { } public struct ResolveCustomerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RegistrationToken", required: true, type: .string) ] /// When a buyer visits your website during the registration process, the buyer submits a registration token through the browser. The registration token is resolved to obtain a CustomerIdentifier and product code. @@ -53,7 +53,7 @@ extension Meteringmarketplace { } public struct MeterUsageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Timestamp", required: true, type: .timestamp), AWSShapeMember(label: "DryRun", required: true, type: .boolean), AWSShapeMember(label: "UsageDimension", required: true, type: .string), @@ -96,7 +96,7 @@ extension Meteringmarketplace { } public struct BatchMeterUsageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UnprocessedRecords", required: false, type: .list), AWSShapeMember(label: "Results", required: false, type: .list) ] @@ -117,7 +117,7 @@ extension Meteringmarketplace { } public struct ResolveCustomerResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomerIdentifier", required: false, type: .string), AWSShapeMember(label: "ProductCode", required: false, type: .string) ] @@ -138,7 +138,7 @@ extension Meteringmarketplace { } public struct MeterUsageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MeteringRecordId", required: false, type: .string) ] public let meteringRecordId: String? @@ -153,7 +153,7 @@ extension Meteringmarketplace { } public struct BatchMeterUsageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProductCode", required: true, type: .string), AWSShapeMember(label: "UsageRecords", required: true, type: .list) ] @@ -174,7 +174,7 @@ extension Meteringmarketplace { } public struct UsageRecordResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MeteringRecordId", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "UsageRecord", required: false, type: .structure) diff --git a/Sources/AWSSDKSwift/Services/mobile/Mobile_API.swift b/Sources/AWSSDKSwift/Services/mobile/Mobile_API.swift new file mode 100644 index 00000000000..fa13701db50 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mobile/Mobile_API.swift @@ -0,0 +1,73 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** + AWS Mobile Service provides mobile app and website developers with capabilities required to configure AWS resources and bootstrap their developer desktop projects with the necessary SDKs, constants, tools and samples to make use of those resources. +*/ +public struct Mobile { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "mobile", + serviceProtocol: ServiceProtocol(type: .restjson, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-07-01", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [MobileError.self] + ) + } + + /// Exports project configuration to a snapshot which can be downloaded and shared. Note that mobile app push credentials are encrypted in exported projects, so they can only be shared successfully within the same AWS account. + public func exportProject(_ input: ExportProjectRequest) throws -> ExportProjectResult { + return try client.send(operation: "ExportProject", path: "/exports/{projectId}", httpMethod: "POST", input: input) + } + + /// Generates customized software development kit (SDK) and or tool packages used to integrate mobile web or mobile app clients with backend AWS resources. + public func exportBundle(_ input: ExportBundleRequest) throws -> ExportBundleResult { + return try client.send(operation: "ExportBundle", path: "/bundles/{bundleId}", httpMethod: "POST", input: input) + } + + /// List all available bundles. + public func listBundles(_ input: ListBundlesRequest) throws -> ListBundlesResult { + return try client.send(operation: "ListBundles", path: "/bundles", httpMethod: "GET", input: input) + } + + /// Get the bundle details for the requested bundle id. + public func describeBundle(_ input: DescribeBundleRequest) throws -> DescribeBundleResult { + return try client.send(operation: "DescribeBundle", path: "/bundles/{bundleId}", httpMethod: "GET", input: input) + } + + /// Lists projects in AWS Mobile Hub. + public func listProjects(_ input: ListProjectsRequest) throws -> ListProjectsResult { + return try client.send(operation: "ListProjects", path: "/projects", httpMethod: "GET", input: input) + } + + /// Creates an AWS Mobile Hub project. + public func createProject(_ input: CreateProjectRequest) throws -> CreateProjectResult { + return try client.send(operation: "CreateProject", path: "/projects", httpMethod: "POST", input: input) + } + + /// Update an existing project. + public func updateProject(_ input: UpdateProjectRequest) throws -> UpdateProjectResult { + return try client.send(operation: "UpdateProject", path: "/update", httpMethod: "POST", input: input) + } + + /// Delets a project in AWS Mobile Hub. + public func deleteProject(_ input: DeleteProjectRequest) throws -> DeleteProjectResult { + return try client.send(operation: "DeleteProject", path: "/projects/{projectId}", httpMethod: "DELETE", input: input) + } + + /// Gets details about a project in AWS Mobile Hub. + public func describeProject(_ input: DescribeProjectRequest) throws -> DescribeProjectResult { + return try client.send(operation: "DescribeProject", path: "/project", httpMethod: "GET", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mobile/Mobile_Error.swift b/Sources/AWSSDKSwift/Services/mobile/Mobile_Error.swift new file mode 100644 index 00000000000..5e321d1d185 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mobile/Mobile_Error.swift @@ -0,0 +1,44 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Mobile +public enum MobileError: AWSErrorType { + case internalFailureException(message: String?) + case serviceUnavailableException(message: String?) + case unauthorizedException(message: String?) + case tooManyRequestsException(message: String?) + case badRequestException(message: String?) + case notFoundException(message: String?) + case limitExceededException(message: String?) + case accountActionRequiredException(message: String?) +} + +extension MobileError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "InternalFailureException": + self = .internalFailureException(message: message) + case "ServiceUnavailableException": + self = .serviceUnavailableException(message: message) + case "UnauthorizedException": + self = .unauthorizedException(message: message) + case "TooManyRequestsException": + self = .tooManyRequestsException(message: message) + case "BadRequestException": + self = .badRequestException(message: message) + case "NotFoundException": + self = .notFoundException(message: message) + case "LimitExceededException": + self = .limitExceededException(message: message) + case "AccountActionRequiredException": + self = .accountActionRequiredException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mobile/Mobile_Shapes.swift b/Sources/AWSSDKSwift/Services/mobile/Mobile_Shapes.swift new file mode 100644 index 00000000000..0dc52813e01 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mobile/Mobile_Shapes.swift @@ -0,0 +1,518 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Mobile { + + public struct ExportProjectRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "projectId", location: .uri(locationName: "projectId"), required: true, type: .string) + ] + /// Unique project identifier. + public let projectId: String + + public init(projectId: String) { + self.projectId = projectId + } + + private enum CodingKeys: String, CodingKey { + case projectId = "projectId" + } + } + + public struct ExportBundleResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "downloadUrl", required: false, type: .string) + ] + /// URL which contains the custom-generated SDK and tool packages used to integrate the client mobile app or web app with the AWS resources created by the AWS Mobile Hub project. + public let downloadUrl: String? + + public init(downloadUrl: String? = nil) { + self.downloadUrl = downloadUrl + } + + private enum CodingKeys: String, CodingKey { + case downloadUrl = "downloadUrl" + } + } + + public struct CreateProjectRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "contents" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "snapshotId", location: .querystring(locationName: "snapshotId"), required: false, type: .string), + AWSShapeMember(label: "name", location: .querystring(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "region", location: .querystring(locationName: "region"), required: false, type: .string), + AWSShapeMember(label: "contents", required: false, type: .blob) + ] + /// Unique identifier for an exported snapshot of project configuration. This snapshot identifier is included in the share URL when a project is exported. + public let snapshotId: String? + /// Name of the project. + public let name: String? + /// Default region where project resources should be created. + public let region: String? + /// ZIP or YAML file which contains configuration settings to be used when creating the project. This may be the contents of the file downloaded from the URL provided in an export project operation. + public let contents: Data? + + public init(snapshotId: String? = nil, name: String? = nil, region: String? = nil, contents: Data? = nil) { + self.snapshotId = snapshotId + self.name = name + self.region = region + self.contents = contents + } + + private enum CodingKeys: String, CodingKey { + case snapshotId = "snapshotId" + case name = "name" + case region = "region" + case contents = "contents" + } + } + + public struct UpdateProjectResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "details", required: false, type: .structure) + ] + /// Detailed information about the updated AWS Mobile Hub project. + public let details: ProjectDetails? + + public init(details: ProjectDetails? = nil) { + self.details = details + } + + private enum CodingKeys: String, CodingKey { + case details = "details" + } + } + + public struct ExportBundleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "projectId", location: .querystring(locationName: "projectId"), required: false, type: .string), + AWSShapeMember(label: "platform", location: .querystring(locationName: "platform"), required: false, type: .enum), + AWSShapeMember(label: "bundleId", location: .uri(locationName: "bundleId"), required: true, type: .string) + ] + /// Unique project identifier. + public let projectId: String? + /// Developer desktop or target application platform. + public let platform: Platform? + /// Unique bundle identifier. + public let bundleId: String + + public init(projectId: String? = nil, platform: Platform? = nil, bundleId: String) { + self.projectId = projectId + self.platform = platform + self.bundleId = bundleId + } + + private enum CodingKeys: String, CodingKey { + case projectId = "projectId" + case platform = "platform" + case bundleId = "bundleId" + } + } + + public struct DeleteProjectRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "projectId", location: .uri(locationName: "projectId"), required: true, type: .string) + ] + /// Unique project identifier. + public let projectId: String + + public init(projectId: String) { + self.projectId = projectId + } + + private enum CodingKeys: String, CodingKey { + case projectId = "projectId" + } + } + + public struct ListBundlesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "bundleList", required: false, type: .list), + AWSShapeMember(label: "nextToken", required: false, type: .string) + ] + /// A list of bundles. + public let bundleList: [BundleDetails]? + /// Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries. + public let nextToken: String? + + public init(bundleList: [BundleDetails]? = nil, nextToken: String? = nil) { + self.bundleList = bundleList + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case bundleList = "bundleList" + case nextToken = "nextToken" + } + } + + public struct DescribeBundleRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "bundleId", location: .uri(locationName: "bundleId"), required: true, type: .string) + ] + /// Unique bundle identifier. + public let bundleId: String + + public init(bundleId: String) { + self.bundleId = bundleId + } + + private enum CodingKeys: String, CodingKey { + case bundleId = "bundleId" + } + } + + public enum ProjectState: String, CustomStringConvertible, Codable { + case normal = "NORMAL" + case syncing = "SYNCING" + case importing = "IMPORTING" + public var description: String { return self.rawValue } + } + + public struct DescribeBundleResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "details", required: false, type: .structure) + ] + /// The details of the bundle. + public let details: BundleDetails? + + public init(details: BundleDetails? = nil) { + self.details = details + } + + private enum CodingKeys: String, CodingKey { + case details = "details" + } + } + + public enum Platform: String, CustomStringConvertible, Codable { + case osx = "OSX" + case windows = "WINDOWS" + case linux = "LINUX" + case objc = "OBJC" + case swift = "SWIFT" + case android = "ANDROID" + case javascript = "JAVASCRIPT" + public var description: String { return self.rawValue } + } + + public struct ProjectDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "state", required: false, type: .enum), + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "projectId", required: false, type: .string), + AWSShapeMember(label: "consoleUrl", required: false, type: .string), + AWSShapeMember(label: "region", required: false, type: .string), + AWSShapeMember(label: "createdDate", required: false, type: .timestamp), + AWSShapeMember(label: "lastUpdatedDate", required: false, type: .timestamp), + AWSShapeMember(label: "resources", required: false, type: .list) + ] + public let state: ProjectState? + public let name: String? + public let projectId: String? + /// Website URL for this project in the AWS Mobile Hub console. + public let consoleUrl: String? + public let region: String? + /// Date the project was created. + public let createdDate: TimeStamp? + /// Date of the last modification of the project. + public let lastUpdatedDate: TimeStamp? + public let resources: [Resource]? + + public init(state: ProjectState? = nil, name: String? = nil, projectId: String? = nil, consoleUrl: String? = nil, region: String? = nil, createdDate: TimeStamp? = nil, lastUpdatedDate: TimeStamp? = nil, resources: [Resource]? = nil) { + self.state = state + self.name = name + self.projectId = projectId + self.consoleUrl = consoleUrl + self.region = region + self.createdDate = createdDate + self.lastUpdatedDate = lastUpdatedDate + self.resources = resources + } + + private enum CodingKeys: String, CodingKey { + case state = "state" + case name = "name" + case projectId = "projectId" + case consoleUrl = "consoleUrl" + case region = "region" + case createdDate = "createdDate" + case lastUpdatedDate = "lastUpdatedDate" + case resources = "resources" + } + } + + public struct ListBundlesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string) + ] + /// Maximum number of records to list in a single response. + public let maxResults: Int32? + /// Pagination token. Set to null to start listing bundles from start. If non-null pagination token is returned in a result, then pass its value in here in another request to list more bundles. + public let nextToken: String? + + public init(maxResults: Int32? = nil, nextToken: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "maxResults" + case nextToken = "nextToken" + } + } + + public struct CreateProjectResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "details", required: false, type: .structure) + ] + /// Detailed information about the created AWS Mobile Hub project. + public let details: ProjectDetails? + + public init(details: ProjectDetails? = nil) { + self.details = details + } + + private enum CodingKeys: String, CodingKey { + case details = "details" + } + } + + public struct BundleDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "iconUrl", required: false, type: .string), + AWSShapeMember(label: "description", required: false, type: .string), + AWSShapeMember(label: "title", required: false, type: .string), + AWSShapeMember(label: "availablePlatforms", required: false, type: .list), + AWSShapeMember(label: "bundleId", required: false, type: .string), + AWSShapeMember(label: "version", required: false, type: .string) + ] + public let iconUrl: String? + public let description: String? + public let title: String? + public let availablePlatforms: [Platform]? + public let bundleId: String? + public let version: String? + + public init(iconUrl: String? = nil, description: String? = nil, title: String? = nil, availablePlatforms: [Platform]? = nil, bundleId: String? = nil, version: String? = nil) { + self.iconUrl = iconUrl + self.description = description + self.title = title + self.availablePlatforms = availablePlatforms + self.bundleId = bundleId + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case iconUrl = "iconUrl" + case description = "description" + case title = "title" + case availablePlatforms = "availablePlatforms" + case bundleId = "bundleId" + case version = "version" + } + } + + public struct DescribeProjectRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "projectId", location: .querystring(locationName: "projectId"), required: true, type: .string), + AWSShapeMember(label: "syncFromResources", location: .querystring(locationName: "syncFromResources"), required: false, type: .boolean) + ] + /// Unique project identifier. + public let projectId: String + /// If set to true, causes AWS Mobile Hub to synchronize information from other services, e.g., update state of AWS CloudFormation stacks in the AWS Mobile Hub project. + public let syncFromResources: Bool? + + public init(projectId: String, syncFromResources: Bool? = nil) { + self.projectId = projectId + self.syncFromResources = syncFromResources + } + + private enum CodingKeys: String, CodingKey { + case projectId = "projectId" + case syncFromResources = "syncFromResources" + } + } + + public struct ExportProjectResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "snapshotId", required: false, type: .string), + AWSShapeMember(label: "shareUrl", required: false, type: .string), + AWSShapeMember(label: "downloadUrl", required: false, type: .string) + ] + /// Unique identifier for the exported snapshot of the project configuration. This snapshot identifier is included in the share URL. + public let snapshotId: String? + /// URL which can be shared to allow other AWS users to create their own project in AWS Mobile Hub with the same configuration as the specified project. This URL pertains to a snapshot in time of the project configuration that is created when this API is called. If you want to share additional changes to your project configuration, then you will need to create and share a new snapshot by calling this method again. + public let shareUrl: String? + /// URL which can be used to download the exported project configuation file(s). + public let downloadUrl: String? + + public init(snapshotId: String? = nil, shareUrl: String? = nil, downloadUrl: String? = nil) { + self.snapshotId = snapshotId + self.shareUrl = shareUrl + self.downloadUrl = downloadUrl + } + + private enum CodingKeys: String, CodingKey { + case snapshotId = "snapshotId" + case shareUrl = "shareUrl" + case downloadUrl = "downloadUrl" + } + } + + public struct ListProjectsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "nextToken", required: false, type: .string), + AWSShapeMember(label: "projects", required: false, type: .list) + ] + public let nextToken: String? + public let projects: [ProjectSummary]? + + public init(nextToken: String? = nil, projects: [ProjectSummary]? = nil) { + self.nextToken = nextToken + self.projects = projects + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case projects = "projects" + } + } + + public struct Resource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: false, type: .string), + AWSShapeMember(label: "attributes", required: false, type: .map), + AWSShapeMember(label: "feature", required: false, type: .string), + AWSShapeMember(label: "type", required: false, type: .string), + AWSShapeMember(label: "arn", required: false, type: .string) + ] + public let name: String? + public let attributes: [String: String]? + public let feature: String? + public let `type`: String? + public let arn: String? + + public init(name: String? = nil, attributes: [String: String]? = nil, feature: String? = nil, type: String? = nil, arn: String? = nil) { + self.name = name + self.attributes = attributes + self.feature = feature + self.`type` = `type` + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case attributes = "attributes" + case feature = "feature" + case `type` = "type" + case arn = "arn" + } + } + + public struct ProjectSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "projectId", required: false, type: .string), + AWSShapeMember(label: "name", required: false, type: .string) + ] + /// Unique project identifier. + public let projectId: String? + /// Name of the project. + public let name: String? + + public init(projectId: String? = nil, name: String? = nil) { + self.projectId = projectId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case projectId = "projectId" + case name = "name" + } + } + + public struct DeleteProjectResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "orphanedResources", required: false, type: .list), + AWSShapeMember(label: "deletedResources", required: false, type: .list) + ] + /// Resources which were not deleted, due to a risk of losing potentially important data or files. + public let orphanedResources: [Resource]? + /// Resources which were deleted. + public let deletedResources: [Resource]? + + public init(orphanedResources: [Resource]? = nil, deletedResources: [Resource]? = nil) { + self.orphanedResources = orphanedResources + self.deletedResources = deletedResources + } + + private enum CodingKeys: String, CodingKey { + case orphanedResources = "orphanedResources" + case deletedResources = "deletedResources" + } + } + + public struct UpdateProjectRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "contents" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "projectId", location: .querystring(locationName: "projectId"), required: true, type: .string), + AWSShapeMember(label: "contents", required: false, type: .blob) + ] + /// Unique project identifier. + public let projectId: String + /// ZIP or YAML file which contains project configuration to be updated. This should be the contents of the file downloaded from the URL provided in an export project operation. + public let contents: Data? + + public init(projectId: String, contents: Data? = nil) { + self.projectId = projectId + self.contents = contents + } + + private enum CodingKeys: String, CodingKey { + case projectId = "projectId" + case contents = "contents" + } + } + + public struct ListProjectsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "maxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer), + AWSShapeMember(label: "nextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string) + ] + /// Maximum number of records to list in a single response. + public let maxResults: Int32? + /// Pagination token. Set to null to start listing projects from start. If non-null pagination token is returned in a result, then pass its value in here in another request to list more projects. + public let nextToken: String? + + public init(maxResults: Int32? = nil, nextToken: String? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "maxResults" + case nextToken = "nextToken" + } + } + + public struct DescribeProjectResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "details", required: false, type: .structure) + ] + public let details: ProjectDetails? + + public init(details: ProjectDetails? = nil) { + self.details = details + } + + private enum CodingKeys: String, CodingKey { + case details = "details" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mobileanalytics/Mobileanalytics_Shapes.swift b/Sources/AWSSDKSwift/Services/mobileanalytics/Mobileanalytics_Shapes.swift index ddc5be9e39f..557b8a981f5 100644 --- a/Sources/AWSSDKSwift/Services/mobileanalytics/Mobileanalytics_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/mobileanalytics/Mobileanalytics_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Mobileanalytics { public struct Event: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "metrics", required: false, type: .map), AWSShapeMember(label: "session", required: false, type: .structure), AWSShapeMember(label: "attributes", required: false, type: .map), @@ -47,7 +47,7 @@ extension Mobileanalytics { } public struct Session: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "startTimestamp", required: false, type: .string), AWSShapeMember(label: "id", required: false, type: .string), AWSShapeMember(label: "stopTimestamp", required: false, type: .string), @@ -78,7 +78,7 @@ extension Mobileanalytics { } public struct PutEventsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "clientContext", location: .header(locationName: "x-amz-Client-Context"), required: true, type: .string), AWSShapeMember(label: "clientContextEncoding", location: .header(locationName: "x-amz-Client-Context-Encoding"), required: false, type: .string), AWSShapeMember(label: "events", required: true, type: .list) diff --git a/Sources/AWSSDKSwift/Services/monitoring/Monitoring_API.swift b/Sources/AWSSDKSwift/Services/monitoring/Monitoring_API.swift index dcf709cb9a5..8c09f9bd4a5 100644 --- a/Sources/AWSSDKSwift/Services/monitoring/Monitoring_API.swift +++ b/Sources/AWSSDKSwift/Services/monitoring/Monitoring_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and the applications you run on AWS in real-time. You can use CloudWatch to collect and track metrics, which are the variables you want to measure for your resources and applications. CloudWatch alarms send notifications or automatically make changes to the resources you are monitoring based on rules that you define. For example, you can monitor the CPU usage and disk reads and writes of your Amazon Elastic Compute Cloud (Amazon EC2) instances and then use this data to determine whether you should launch additional instances to handle increased load. You can also use this data to stop under-used instances to save money. In addition to monitoring the built-in metrics that come with AWS, you can monitor your own custom metrics. With CloudWatch, you gain system-wide visibility into resource utilization, application performance, and operational health. +Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and the applications you run on AWS in real time. You can use CloudWatch to collect and track metrics, which are the variables you want to measure for your resources and applications. CloudWatch alarms send notifications or automatically change the resources you are monitoring based on rules that you define. For example, you can monitor the CPU usage and disk reads and writes of your Amazon EC2 instances. Then, use this data to determine whether you should launch additional instances to handle increased load. You can also use this data to stop under-used instances to save money. In addition to monitoring the built-in metrics that come with AWS, you can monitor your own custom metrics. With CloudWatch, you gain system-wide visibility into resource utilization, application performance, and operational health. */ public struct Monitoring { @@ -29,19 +29,14 @@ public struct Monitoring { return try client.send(operation: "DescribeAlarms", path: "/", httpMethod: "POST", input: input) } - /// Creates or updates an alarm and associates it with the specified metric. Optionally, this operation can associate one or more Amazon SNS resources with the alarm. When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is evaluated and its state is set appropriately. Any actions associated with the state are then executed. When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. If you are an AWS Identity and Access Management (IAM) user, you must have Amazon EC2 permissions for some operations: ec2:DescribeInstanceStatus and ec2:DescribeInstances for all alarms on EC2 instance status metrics ec2:StopInstances for alarms with stop actions ec2:TerminateInstances for alarms with terminate actions ec2:DescribeInstanceRecoveryAttribute and ec2:RecoverInstances for alarms with recover actions If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm, but the stop or terminate actions won't be performed. However, if you are later granted the required permissions, the alarm actions that you created earlier will be performed. If you are using an IAM role (for example, an Amazon EC2 instance profile), you cannot stop or terminate the instance using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS notifications or Auto Scaling policies. If you are using temporary security credentials granted using the AWS Security Token Service (AWS STS), you cannot stop or terminate an Amazon EC2 instance using alarm actions. Note that you must create at least one stop, terminate, or reboot alarm using the Amazon EC2 or CloudWatch console to create the EC2ActionsAccess IAM role. After this IAM role is created, you can create stop, terminate, or reboot alarms using a command-line interface or an API. + /// Creates or updates an alarm and associates it with the specified metric. Optionally, this operation can associate one or more Amazon SNS resources with the alarm. When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is evaluated and its state is set appropriately. Any actions associated with the state are then executed. When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. If you are an IAM user, you must have Amazon EC2 permissions for some operations: ec2:DescribeInstanceStatus and ec2:DescribeInstances for all alarms on EC2 instance status metrics ec2:StopInstances for alarms with stop actions ec2:TerminateInstances for alarms with terminate actions ec2:DescribeInstanceRecoveryAttribute and ec2:RecoverInstances for alarms with recover actions If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm, but the stop or terminate actions are not performed. However, if you are later granted the required permissions, the alarm actions that you created earlier are performed. If you are using an IAM role (for example, an EC2 instance profile), you cannot stop or terminate the instance using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS notifications or Auto Scaling policies. If you are using temporary security credentials granted using AWS STS, you cannot stop or terminate an EC2 instance using alarm actions. You must create at least one stop, terminate, or reboot alarm using either the Amazon EC2 or CloudWatch consoles to create the EC2ActionsAccess IAM role. After this IAM role is created, you can create stop, terminate, or reboot alarms using a command-line interface or API. public func putMetricAlarm(_ input: PutMetricAlarmInput) throws { _ = try client.send(operation: "PutMetricAlarm", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the alarms for the specified metric. Specify a statistic, period, or unit to filter the results. - public func describeAlarmsForMetric(_ input: DescribeAlarmsForMetricInput) throws -> DescribeAlarmsForMetricOutput { - return try client.send(operation: "DescribeAlarmsForMetric", path: "/", httpMethod: "POST", input: input) - } - - /// List the specified metrics. You can use the returned metrics with GetMetricStatistics to obtain statistical data. Up to 500 results are returned for any one call. To retrieve additional results, use the returned token with subsequent calls. After you create a metric, allow up to fifteen minutes before the metric appears. Statistics about the metric, however, are available sooner using GetMetricStatistics. - public func listMetrics(_ input: ListMetricsInput) throws -> ListMetricsOutput { - return try client.send(operation: "ListMetrics", path: "/", httpMethod: "POST", input: input) + /// Displays the details of the dashboard that you specify. To copy an existing dashboard, use GetDashboard, and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard to create the copy. + public func getDashboard(_ input: GetDashboardInput) throws -> GetDashboardOutput { + return try client.send(operation: "GetDashboard", path: "/", httpMethod: "POST", input: input) } /// Deletes the specified alarms. In the event of an error, no alarms are deleted. @@ -49,9 +44,14 @@ public struct Monitoring { _ = try client.send(operation: "DeleteAlarms", path: "/", httpMethod: "POST", input: input) } - /// Publishes metric data points to Amazon CloudWatch. Amazon CloudWatch associates the data points with the specified metric. If the specified metric does not exist, Amazon CloudWatch creates the metric. When Amazon CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics. Each PutMetricData request is limited to 40 KB in size for HTTP POST requests. Although the Value parameter accepts numbers of type Double, Amazon CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (e.g., NaN, +Infinity, -Infinity) are not supported. You can use up to 10 dimensions per metric to further clarify what data the metric collects. For more information on specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide. Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricStatistics from the time they are submitted. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you cannot retrieve percentile statistics for this data unless one of the following conditions is true: The SampleCount of the statistic set is 1 The Min and the Max of the statistic set are equal - public func putMetricData(_ input: PutMetricDataInput) throws { - _ = try client.send(operation: "PutMetricData", path: "/", httpMethod: "POST", input: input) + /// Returns a list of the dashboards for your account. If you include DashboardNamePrefix, only those dashboards with names starting with the prefix are listed. Otherwise, all dashboards in your account are listed. + public func listDashboards(_ input: ListDashboardsInput) throws -> ListDashboardsOutput { + return try client.send(operation: "ListDashboards", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes all dashboards that you specify. You may specify up to 100 dashboards to delete. If there is an error during this call, no dashboards are deleted. + public func deleteDashboards(_ input: DeleteDashboardsInput) throws -> DeleteDashboardsOutput { + return try client.send(operation: "DeleteDashboards", path: "/", httpMethod: "POST", input: input) } /// Enables the actions for the specified alarms. @@ -59,9 +59,14 @@ public struct Monitoring { _ = try client.send(operation: "EnableAlarmActions", path: "/", httpMethod: "POST", input: input) } - /// Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to ALARM sends an Amazon SNS message. The alarm returns to its actual state (often within seconds). Because the alarm state change happens very quickly, it is typically only visible in the alarm's History tab in the Amazon CloudWatch console or through DescribeAlarmHistory. - public func setAlarmState(_ input: SetAlarmStateInput) throws { - _ = try client.send(operation: "SetAlarmState", path: "/", httpMethod: "POST", input: input) + /// Creates a dashboard if it does not already exist, or updates an existing dashboard. If you update a dashboard, the entire contents are replaced with what you specify here. You can have up to 500 dashboards per account. All dashboards in your account are global, not region-specific. A simple way to create a dashboard using PutDashboard is to copy an existing dashboard. To copy an existing dashboard using the console, you can load the dashboard and then use the View/edit source command in the Actions menu to display the JSON block for that dashboard. Another way to copy a dashboard is to use GetDashboard, and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard. When you create a dashboard with PutDashboard, a good practice is to add a text widget at the top of the dashboard with a message that the dashboard was created by script and should not be changed in the console. This message could also point console users to the location of the DashboardBody script or the CloudFormation template used to create the dashboard. + public func putDashboard(_ input: PutDashboardInput) throws -> PutDashboardOutput { + return try client.send(operation: "PutDashboard", path: "/", httpMethod: "POST", input: input) + } + + /// Gets statistics for the specified metric. The maximum number of data points returned from a single call is 1,440. If you request more than 1,440 data points, CloudWatch returns an error. To reduce the number of data points, you can narrow the specified time range and make multiple requests across adjacent time ranges, or you can increase the specified period. Data points are not returned in chronological order. CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-hour period, CloudWatch aggregates all data points with time stamps that fall within each one-hour period. Therefore, the number of values aggregated by CloudWatch is larger than the number of data points returned. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true: The SampleCount value of the statistic set is 1. The Min and the Max values of the statistic set are equal. Amazon CloudWatch retains metric data as follows: Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1. Data points with a period of 60 seconds (1-minute) are available for 15 days. Data points with a period of 300 seconds (5-minute) are available for 63 days. Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months). Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour. CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016. For information about metrics and dimensions supported by AWS services, see the Amazon CloudWatch Metrics and Dimensions Reference in the Amazon CloudWatch User Guide. + public func getMetricStatistics(_ input: GetMetricStatisticsInput) throws -> GetMetricStatisticsOutput { + return try client.send(operation: "GetMetricStatistics", path: "/", httpMethod: "POST", input: input) } /// Disables the actions for the specified alarms. When an alarm's actions are disabled, the alarm actions do not execute when the alarm state changes. @@ -69,14 +74,29 @@ public struct Monitoring { _ = try client.send(operation: "DisableAlarmActions", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for all alarms are returned. Note that Amazon CloudWatch retains the history of an alarm even if you delete the alarm. - public func describeAlarmHistory(_ input: DescribeAlarmHistoryInput) throws -> DescribeAlarmHistoryOutput { - return try client.send(operation: "DescribeAlarmHistory", path: "/", httpMethod: "POST", input: input) + /// Retrieves the alarms for the specified metric. To filter the results, specify a statistic, period, or unit. + public func describeAlarmsForMetric(_ input: DescribeAlarmsForMetricInput) throws -> DescribeAlarmsForMetricOutput { + return try client.send(operation: "DescribeAlarmsForMetric", path: "/", httpMethod: "POST", input: input) } - /// Gets statistics for the specified metric. Amazon CloudWatch retains metric data as follows: Data points with a period of 60 seconds (1 minute) are available for 15 days Data points with a period of 300 seconds (5 minute) are available for 63 days Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months) Note that CloudWatch started retaining 5-minute and 1-hour metric data as of 9 July 2016. The maximum number of data points returned from a single call is 1,440. If you request more than 1,440 data points, Amazon CloudWatch returns an error. To reduce the number of data points, you can narrow the specified time range and make multiple requests across adjacent time ranges, or you can increase the specified period. A period can be as short as one minute (60 seconds). Note that data points are not returned in chronological order. Amazon CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-hour period, Amazon CloudWatch aggregates all data points with time stamps that fall within each one-hour period. Therefore, the number of values aggregated by CloudWatch is larger than the number of data points returned. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you cannot retrieve percentile statistics for this data unless one of the following conditions is true: The SampleCount of the statistic set is 1 The Min and the Max of the statistic set are equal For a list of metrics and dimensions supported by AWS services, see the Amazon CloudWatch Metrics and Dimensions Reference in the Amazon CloudWatch User Guide. - public func getMetricStatistics(_ input: GetMetricStatisticsInput) throws -> GetMetricStatisticsOutput { - return try client.send(operation: "GetMetricStatistics", path: "/", httpMethod: "POST", input: input) + /// List the specified metrics. You can use the returned metrics with GetMetricStatistics to obtain statistical data. Up to 500 results are returned for any one call. To retrieve additional results, use the returned token with subsequent calls. After you create a metric, allow up to fifteen minutes before the metric appears. Statistics about the metric, however, are available sooner using GetMetricStatistics. + public func listMetrics(_ input: ListMetricsInput) throws -> ListMetricsOutput { + return try client.send(operation: "ListMetrics", path: "/", httpMethod: "POST", input: input) + } + + /// Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics. Each PutMetricData request is limited to 40 KB in size for HTTP POST requests. Although the Value parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. You can use up to 10 dimensions per metric to further clarify what data the metric collects. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide. Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricStatistics from the time they are submitted. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true: The SampleCount value of the statistic set is 1 The Min and the Max values of the statistic set are equal + public func putMetricData(_ input: PutMetricDataInput) throws { + _ = try client.send(operation: "PutMetricData", path: "/", httpMethod: "POST", input: input) + } + + /// Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to ALARM sends an SNS message. The alarm returns to its actual state (often within seconds). Because the alarm state change happens quickly, it is typically only visible in the alarm's History tab in the Amazon CloudWatch console or through DescribeAlarmHistory. + public func setAlarmState(_ input: SetAlarmStateInput) throws { + _ = try client.send(operation: "SetAlarmState", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for all alarms are returned. CloudWatch retains the history of an alarm even if you delete the alarm. + public func describeAlarmHistory(_ input: DescribeAlarmHistoryInput) throws -> DescribeAlarmHistoryOutput { + return try client.send(operation: "DescribeAlarmHistory", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/monitoring/Monitoring_Error.swift b/Sources/AWSSDKSwift/Services/monitoring/Monitoring_Error.swift index b669f5c7a4a..d3c19ed3521 100644 --- a/Sources/AWSSDKSwift/Services/monitoring/Monitoring_Error.swift +++ b/Sources/AWSSDKSwift/Services/monitoring/Monitoring_Error.swift @@ -6,9 +6,11 @@ import AWSSDKSwiftCore public enum MonitoringError: AWSErrorType { case invalidNextToken(message: String?) case limitExceededFault(message: String?) - case internalServiceFault(message: String?) case invalidParameterValueException(message: String?) + case dashboardNotFoundError(message: String?) + case internalServiceFault(message: String?) case resourceNotFound(message: String?) + case dashboardInvalidInputError(message: String?) case missingRequiredParameterException(message: String?) case invalidParameterCombinationException(message: String?) case invalidFormatFault(message: String?) @@ -25,12 +27,16 @@ extension MonitoringError { self = .invalidNextToken(message: message) case "LimitExceededFault": self = .limitExceededFault(message: message) - case "InternalServiceFault": - self = .internalServiceFault(message: message) case "InvalidParameterValueException": self = .invalidParameterValueException(message: message) + case "DashboardNotFoundError": + self = .dashboardNotFoundError(message: message) + case "InternalServiceFault": + self = .internalServiceFault(message: message) case "ResourceNotFound": self = .resourceNotFound(message: message) + case "DashboardInvalidInputError": + self = .dashboardInvalidInputError(message: message) case "MissingRequiredParameterException": self = .missingRequiredParameterException(message: message) case "InvalidParameterCombinationException": diff --git a/Sources/AWSSDKSwift/Services/monitoring/Monitoring_Shapes.swift b/Sources/AWSSDKSwift/Services/monitoring/Monitoring_Shapes.swift index d0ad28e9f78..5e168d4d723 100644 --- a/Sources/AWSSDKSwift/Services/monitoring/Monitoring_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/monitoring/Monitoring_Shapes.swift @@ -5,8 +5,29 @@ import AWSSDKSwiftCore extension Monitoring { + public struct PutDashboardInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DashboardBody", required: false, type: .string), + AWSShapeMember(label: "DashboardName", required: false, type: .string) + ] + /// The detailed information about the dashboard in JSON format, including the widgets to include and their location on the dashboard. For more information about the syntax, see CloudWatch-Dashboard-Body-Structure. + public let dashboardBody: String? + /// The name of the dashboard. If a dashboard with this name already exists, this call modifies that dashboard, replacing its current contents. Otherwise, a new dashboard is created. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, "-", and "_". + public let dashboardName: String? + + public init(dashboardBody: String? = nil, dashboardName: String? = nil) { + self.dashboardBody = dashboardBody + self.dashboardName = dashboardName + } + + private enum CodingKeys: String, CodingKey { + case dashboardBody = "DashboardBody" + case dashboardName = "DashboardName" + } + } + public struct AlarmHistoryItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AlarmName", required: false, type: .string), AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), AWSShapeMember(label: "HistoryData", required: false, type: .string), @@ -33,73 +54,524 @@ extension Monitoring { } private enum CodingKeys: String, CodingKey { - case alarmName = "AlarmName" - case timestamp = "Timestamp" - case historyData = "HistoryData" - case historySummary = "HistorySummary" - case historyItemType = "HistoryItemType" + case alarmName = "AlarmName" + case timestamp = "Timestamp" + case historyData = "HistoryData" + case historySummary = "HistorySummary" + case historyItemType = "HistoryItemType" + } + } + + public struct EnableAlarmActionsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AlarmNames", required: true, type: .list) + ] + /// The names of the alarms. + public let alarmNames: [String] + + public init(alarmNames: [String]) { + self.alarmNames = alarmNames + } + + private enum CodingKeys: String, CodingKey { + case alarmNames = "AlarmNames" + } + } + + public struct DashboardValidationMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DataPath", required: false, type: .string), + AWSShapeMember(label: "Message", required: false, type: .string) + ] + /// The data path related to the message. + public let dataPath: String? + /// A message describing the error or warning. + public let message: String? + + public init(dataPath: String? = nil, message: String? = nil) { + self.dataPath = dataPath + self.message = message + } + + private enum CodingKeys: String, CodingKey { + case dataPath = "DataPath" + case message = "Message" + } + } + + public struct DeleteDashboardsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DashboardNames", required: false, type: .list) + ] + /// The dashboards to be deleted. + public let dashboardNames: [String]? + + public init(dashboardNames: [String]? = nil) { + self.dashboardNames = dashboardNames + } + + private enum CodingKeys: String, CodingKey { + case dashboardNames = "DashboardNames" + } + } + + public struct DeleteDashboardsOutput: AWSShape { + + } + + public struct GetDashboardInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DashboardName", required: false, type: .string) + ] + /// The name of the dashboard to be described. + public let dashboardName: String? + + public init(dashboardName: String? = nil) { + self.dashboardName = dashboardName + } + + private enum CodingKeys: String, CodingKey { + case dashboardName = "DashboardName" + } + } + + public struct DashboardEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastModified", required: false, type: .timestamp), + AWSShapeMember(label: "DashboardArn", required: false, type: .string), + AWSShapeMember(label: "Size", required: false, type: .long), + AWSShapeMember(label: "DashboardName", required: false, type: .string) + ] + /// The time stamp of when the dashboard was last modified, either by an API call or through the console. This number is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + public let lastModified: TimeStamp? + /// The Amazon Resource Name (ARN) of the dashboard. + public let dashboardArn: String? + /// The size of the dashboard, in bytes. + public let size: Int64? + /// The name of the dashboard. + public let dashboardName: String? + + public init(lastModified: TimeStamp? = nil, dashboardArn: String? = nil, size: Int64? = nil, dashboardName: String? = nil) { + self.lastModified = lastModified + self.dashboardArn = dashboardArn + self.size = size + self.dashboardName = dashboardName + } + + private enum CodingKeys: String, CodingKey { + case lastModified = "LastModified" + case dashboardArn = "DashboardArn" + case size = "Size" + case dashboardName = "DashboardName" + } + } + + public struct DescribeAlarmHistoryInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AlarmName", required: false, type: .string), + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "StartDate", required: false, type: .timestamp), + AWSShapeMember(label: "HistoryItemType", required: false, type: .enum), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "EndDate", required: false, type: .timestamp) + ] + /// The name of the alarm. + public let alarmName: String? + /// The maximum number of alarm history records to retrieve. + public let maxRecords: Int32? + /// The starting date to retrieve alarm history. + public let startDate: TimeStamp? + /// The type of alarm histories to retrieve. + public let historyItemType: HistoryItemType? + /// The token returned by a previous call to indicate that there is more data available. + public let nextToken: String? + /// The ending date to retrieve alarm history. + public let endDate: TimeStamp? + + public init(alarmName: String? = nil, maxRecords: Int32? = nil, startDate: TimeStamp? = nil, historyItemType: HistoryItemType? = nil, nextToken: String? = nil, endDate: TimeStamp? = nil) { + self.alarmName = alarmName + self.maxRecords = maxRecords + self.startDate = startDate + self.historyItemType = historyItemType + self.nextToken = nextToken + self.endDate = endDate + } + + private enum CodingKeys: String, CodingKey { + case alarmName = "AlarmName" + case maxRecords = "MaxRecords" + case startDate = "StartDate" + case historyItemType = "HistoryItemType" + case nextToken = "NextToken" + case endDate = "EndDate" + } + } + + public struct DescribeAlarmsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "AlarmNamePrefix", required: false, type: .string), + AWSShapeMember(label: "ActionPrefix", required: false, type: .string), + AWSShapeMember(label: "AlarmNames", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StateValue", required: false, type: .enum) + ] + /// The maximum number of alarm descriptions to retrieve. + public let maxRecords: Int32? + /// The alarm name prefix. If this parameter is specified, you cannot specify AlarmNames. + public let alarmNamePrefix: String? + /// The action name prefix. + public let actionPrefix: String? + /// The names of the alarms. + public let alarmNames: [String]? + /// The token returned by a previous call to indicate that there is more data available. + public let nextToken: String? + /// The state value to be used in matching alarms. + public let stateValue: StateValue? + + public init(maxRecords: Int32? = nil, alarmNamePrefix: String? = nil, actionPrefix: String? = nil, alarmNames: [String]? = nil, nextToken: String? = nil, stateValue: StateValue? = nil) { + self.maxRecords = maxRecords + self.alarmNamePrefix = alarmNamePrefix + self.actionPrefix = actionPrefix + self.alarmNames = alarmNames + self.nextToken = nextToken + self.stateValue = stateValue + } + + private enum CodingKeys: String, CodingKey { + case maxRecords = "MaxRecords" + case alarmNamePrefix = "AlarmNamePrefix" + case actionPrefix = "ActionPrefix" + case alarmNames = "AlarmNames" + case nextToken = "NextToken" + case stateValue = "StateValue" + } + } + + public enum StandardUnit: String, CustomStringConvertible, Codable { + case seconds = "Seconds" + case microseconds = "Microseconds" + case milliseconds = "Milliseconds" + case bytes = "Bytes" + case kilobytes = "Kilobytes" + case megabytes = "Megabytes" + case gigabytes = "Gigabytes" + case terabytes = "Terabytes" + case bits = "Bits" + case kilobits = "Kilobits" + case megabits = "Megabits" + case gigabits = "Gigabits" + case terabits = "Terabits" + case percent = "Percent" + case count = "Count" + case bytesSecond = "Bytes/Second" + case kilobytesSecond = "Kilobytes/Second" + case megabytesSecond = "Megabytes/Second" + case gigabytesSecond = "Gigabytes/Second" + case terabytesSecond = "Terabytes/Second" + case bitsSecond = "Bits/Second" + case kilobitsSecond = "Kilobits/Second" + case megabitsSecond = "Megabits/Second" + case gigabitsSecond = "Gigabits/Second" + case terabitsSecond = "Terabits/Second" + case countSecond = "Count/Second" + case none = "None" + public var description: String { return self.rawValue } + } + + public struct Metric: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetricName", required: false, type: .string), + AWSShapeMember(label: "Dimensions", required: false, type: .list), + AWSShapeMember(label: "Namespace", required: false, type: .string) + ] + /// The name of the metric. + public let metricName: String? + /// The dimensions for the metric. + public let dimensions: [Dimension]? + /// The namespace of the metric. + public let namespace: String? + + public init(metricName: String? = nil, dimensions: [Dimension]? = nil, namespace: String? = nil) { + self.metricName = metricName + self.dimensions = dimensions + self.namespace = namespace + } + + private enum CodingKeys: String, CodingKey { + case metricName = "MetricName" + case dimensions = "Dimensions" + case namespace = "Namespace" + } + } + + public struct ListMetricsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Namespace", required: false, type: .string), + AWSShapeMember(label: "MetricName", required: false, type: .string), + AWSShapeMember(label: "Dimensions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The namespace to filter against. + public let namespace: String? + /// The name of the metric to filter against. + public let metricName: String? + /// The dimensions to filter against. + public let dimensions: [DimensionFilter]? + /// The token returned by a previous call to indicate that there is more data available. + public let nextToken: String? + + public init(namespace: String? = nil, metricName: String? = nil, dimensions: [DimensionFilter]? = nil, nextToken: String? = nil) { + self.namespace = namespace + self.metricName = metricName + self.dimensions = dimensions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case namespace = "Namespace" + case metricName = "MetricName" + case dimensions = "Dimensions" + case nextToken = "NextToken" + } + } + + public struct GetMetricStatisticsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTime", required: true, type: .timestamp), + AWSShapeMember(label: "MetricName", required: true, type: .string), + AWSShapeMember(label: "Period", required: true, type: .integer), + AWSShapeMember(label: "EndTime", required: true, type: .timestamp), + AWSShapeMember(label: "ExtendedStatistics", required: false, type: .list), + AWSShapeMember(label: "Dimensions", required: false, type: .list), + AWSShapeMember(label: "Unit", required: false, type: .enum), + AWSShapeMember(label: "Statistics", required: false, type: .list), + AWSShapeMember(label: "Namespace", required: true, type: .string) + ] + /// The time stamp that determines the first data point to return. Start times are evaluated relative to the time that CloudWatch receives the request. The value specified is inclusive; results include data points with the specified time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z). CloudWatch rounds the specified time stamp as follows: Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00. Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00. Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00. If you set Period to 5, 10, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15. + public let startTime: TimeStamp + /// The name of the metric, with or without spaces. + public let metricName: String + /// The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData call that includes a StorageResolution of 1 second. If the StartTime parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). + public let period: Int32 + /// The time stamp that determines the last data point to return. The value specified is exclusive; results include data points up to the specified time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z). + public let endTime: TimeStamp + /// The percentile statistics. Specify values between p0.0 and p100. When calling GetMetricStatistics, you must specify either Statistics or ExtendedStatistics, but not both. + public let extendedStatistics: [String]? + /// The dimensions. If the metric contains multiple dimensions, you must include a value for each dimension. CloudWatch treats each unique combination of dimensions as a separate metric. If a specific combination of dimensions was not published, you can't retrieve statistics for it. You must specify the same dimensions that were used when the metrics were created. For an example, see Dimension Combinations in the Amazon CloudWatch User Guide. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide. + public let dimensions: [Dimension]? + /// The unit for a given metric. Metrics may be reported in multiple units. Not supplying a unit results in all units being returned. If the metric only ever reports one unit, specifying a unit has no effect. + public let unit: StandardUnit? + /// The metric statistics, other than percentile. For percentile statistics, use ExtendedStatistics. When calling GetMetricStatistics, you must specify either Statistics or ExtendedStatistics, but not both. + public let statistics: [Statistic]? + /// The namespace of the metric, with or without spaces. + public let namespace: String + + public init(startTime: TimeStamp, metricName: String, period: Int32, endTime: TimeStamp, extendedStatistics: [String]? = nil, dimensions: [Dimension]? = nil, unit: StandardUnit? = nil, statistics: [Statistic]? = nil, namespace: String) { + self.startTime = startTime + self.metricName = metricName + self.period = period + self.endTime = endTime + self.extendedStatistics = extendedStatistics + self.dimensions = dimensions + self.unit = unit + self.statistics = statistics + self.namespace = namespace + } + + private enum CodingKeys: String, CodingKey { + case startTime = "StartTime" + case metricName = "MetricName" + case period = "Period" + case endTime = "EndTime" + case extendedStatistics = "ExtendedStatistics" + case dimensions = "Dimensions" + case unit = "Unit" + case statistics = "Statistics" + case namespace = "Namespace" + } + } + + public struct PutMetricDataInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Namespace", required: true, type: .string), + AWSShapeMember(label: "MetricData", required: true, type: .list) + ] + /// The namespace for the metric data. You cannot specify a namespace that begins with "AWS/". Namespaces that begin with "AWS/" are reserved for use by Amazon Web Services products. + public let namespace: String + /// The data for the metric. + public let metricData: [MetricDatum] + + public init(namespace: String, metricData: [MetricDatum]) { + self.namespace = namespace + self.metricData = metricData + } + + private enum CodingKeys: String, CodingKey { + case namespace = "Namespace" + case metricData = "MetricData" + } + } + + public struct GetMetricStatisticsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Label", required: false, type: .string), + AWSShapeMember(label: "Datapoints", required: false, type: .list) + ] + /// A label for the specified metric. + public let label: String? + /// The data points for the specified metric. + public let datapoints: [Datapoint]? + + public init(label: String? = nil, datapoints: [Datapoint]? = nil) { + self.label = label + self.datapoints = datapoints + } + + private enum CodingKeys: String, CodingKey { + case label = "Label" + case datapoints = "Datapoints" + } + } + + public enum Statistic: String, CustomStringConvertible, Codable { + case samplecount = "SampleCount" + case average = "Average" + case sum = "Sum" + case minimum = "Minimum" + case maximum = "Maximum" + public var description: String { return self.rawValue } + } + + public enum HistoryItemType: String, CustomStringConvertible, Codable { + case configurationupdate = "ConfigurationUpdate" + case stateupdate = "StateUpdate" + case action = "Action" + public var description: String { return self.rawValue } + } + + public struct DimensionFilter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The value of the dimension to be matched. + public let value: String? + /// The dimension name to be matched. + public let name: String + + public init(value: String? = nil, name: String) { + self.value = value + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case name = "Name" + } + } + + public struct DescribeAlarmsForMetricOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetricAlarms", required: false, type: .list) + ] + /// The information for each alarm with the specified metric. + public let metricAlarms: [MetricAlarm]? + + public init(metricAlarms: [MetricAlarm]? = nil) { + self.metricAlarms = metricAlarms + } + + private enum CodingKeys: String, CodingKey { + case metricAlarms = "MetricAlarms" } } - public struct EnableAlarmActionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AlarmNames", required: true, type: .list) + public struct ListDashboardsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "DashboardNamePrefix", required: false, type: .string) ] - /// The names of the alarms. - public let alarmNames: [String] + /// The token returned by a previous call to indicate that there is more data available. + public let nextToken: String? + /// If you specify this parameter, only the dashboards with names starting with the specified string are listed. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, ".", "-", and "_". + public let dashboardNamePrefix: String? - public init(alarmNames: [String]) { - self.alarmNames = alarmNames + public init(nextToken: String? = nil, dashboardNamePrefix: String? = nil) { + self.nextToken = nextToken + self.dashboardNamePrefix = dashboardNamePrefix } private enum CodingKeys: String, CodingKey { - case alarmNames = "AlarmNames" + case nextToken = "NextToken" + case dashboardNamePrefix = "DashboardNamePrefix" } } public struct MetricDatum: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: true, type: .string), + AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), + AWSShapeMember(label: "StorageResolution", required: false, type: .integer), + AWSShapeMember(label: "StatisticValues", required: false, type: .structure), AWSShapeMember(label: "Unit", required: false, type: .enum), AWSShapeMember(label: "Dimensions", required: false, type: .list), - AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), - AWSShapeMember(label: "Value", required: false, type: .double), - AWSShapeMember(label: "StatisticValues", required: false, type: .structure) + AWSShapeMember(label: "Value", required: false, type: .double) ] /// The name of the metric. public let metricName: String + /// The time the metric data was received, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + public let timestamp: TimeStamp? + /// Valid values are 1 and 60. Setting this to 1 specifies this metric as a high-resolution metric, so that CloudWatch stores the metric with sub-minute resolution down to one second. Setting this to 60 specifies this metric as a regular-resolution metric, which CloudWatch stores at 1-minute resolution. Currently, high resolution is available only for custom metrics. For more information about high-resolution metrics, see High-Resolution Metrics in the Amazon CloudWatch User Guide. This field is optional, if you do not specify it the default of 60 is used. + public let storageResolution: Int32? + /// The statistical values for the metric. + public let statisticValues: StatisticSet? /// The unit of the metric. public let unit: StandardUnit? /// The dimensions associated with the metric. public let dimensions: [Dimension]? - /// The time the metric data was received, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. - public let timestamp: TimeStamp? - /// The value for the metric. Although the parameter accepts numbers of type Double, Amazon CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. + /// The value for the metric. Although the parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. public let value: Double? - /// The statistical values for the metric. - public let statisticValues: StatisticSet? - public init(metricName: String, unit: StandardUnit? = nil, dimensions: [Dimension]? = nil, timestamp: TimeStamp? = nil, value: Double? = nil, statisticValues: StatisticSet? = nil) { + public init(metricName: String, timestamp: TimeStamp? = nil, storageResolution: Int32? = nil, statisticValues: StatisticSet? = nil, unit: StandardUnit? = nil, dimensions: [Dimension]? = nil, value: Double? = nil) { self.metricName = metricName + self.timestamp = timestamp + self.storageResolution = storageResolution + self.statisticValues = statisticValues self.unit = unit self.dimensions = dimensions - self.timestamp = timestamp self.value = value - self.statisticValues = statisticValues } private enum CodingKeys: String, CodingKey { case metricName = "MetricName" + case timestamp = "Timestamp" + case storageResolution = "StorageResolution" + case statisticValues = "StatisticValues" case unit = "Unit" case dimensions = "Dimensions" - case timestamp = "Timestamp" case value = "Value" - case statisticValues = "StatisticValues" + } + } + + public struct PutDashboardOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DashboardValidationMessages", required: false, type: .list) + ] + /// If the input for PutDashboard was correct and the dashboard was successfully created or modified, this result is empty. If this result includes only warning messages, then the input was valid enough for the dashboard to be created or modified, but some elements of the dashboard may not render. If this result includes error messages, the input was not valid and the operation failed. + public let dashboardValidationMessages: [DashboardValidationMessage]? + + public init(dashboardValidationMessages: [DashboardValidationMessage]? = nil) { + self.dashboardValidationMessages = dashboardValidationMessages + } + + private enum CodingKeys: String, CodingKey { + case dashboardValidationMessages = "DashboardValidationMessages" } } public struct DescribeAlarmsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricAlarms", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -127,7 +599,7 @@ extension Monitoring { } public struct StatisticSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SampleCount", required: true, type: .double), AWSShapeMember(label: "Minimum", required: true, type: .double), AWSShapeMember(label: "Sum", required: true, type: .double), @@ -157,8 +629,29 @@ extension Monitoring { } } + public struct ListDashboardsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "DashboardEntries", required: false, type: .list) + ] + /// The token that marks the start of the next batch of returned results. + public let nextToken: String? + /// The list of matching dashboards. + public let dashboardEntries: [DashboardEntry]? + + public init(nextToken: String? = nil, dashboardEntries: [DashboardEntry]? = nil) { + self.nextToken = nextToken + self.dashboardEntries = dashboardEntries + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case dashboardEntries = "DashboardEntries" + } + } + public struct DisableAlarmActionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AlarmNames", required: true, type: .list) ] /// The names of the alarms. @@ -174,7 +667,7 @@ extension Monitoring { } public struct Datapoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SampleCount", required: false, type: .double), AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), AWSShapeMember(label: "Sum", required: false, type: .double), @@ -224,8 +717,54 @@ extension Monitoring { } } + public struct DescribeAlarmsForMetricInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetricName", required: true, type: .string), + AWSShapeMember(label: "Period", required: false, type: .integer), + AWSShapeMember(label: "ExtendedStatistic", required: false, type: .string), + AWSShapeMember(label: "Statistic", required: false, type: .enum), + AWSShapeMember(label: "Unit", required: false, type: .enum), + AWSShapeMember(label: "Dimensions", required: false, type: .list), + AWSShapeMember(label: "Namespace", required: true, type: .string) + ] + /// The name of the metric. + public let metricName: String + /// The period, in seconds, over which the statistic is applied. + public let period: Int32? + /// The percentile statistic for the metric. Specify a value between p0.0 and p100. + public let extendedStatistic: String? + /// The statistic for the metric, other than percentiles. For percentile statistics, use ExtendedStatistics. + public let statistic: Statistic? + /// The unit for the metric. + public let unit: StandardUnit? + /// The dimensions associated with the metric. If the metric has any associated dimensions, you must specify them in order for the call to succeed. + public let dimensions: [Dimension]? + /// The namespace of the metric. + public let namespace: String + + public init(metricName: String, period: Int32? = nil, extendedStatistic: String? = nil, statistic: Statistic? = nil, unit: StandardUnit? = nil, dimensions: [Dimension]? = nil, namespace: String) { + self.metricName = metricName + self.period = period + self.extendedStatistic = extendedStatistic + self.statistic = statistic + self.unit = unit + self.dimensions = dimensions + self.namespace = namespace + } + + private enum CodingKeys: String, CodingKey { + case metricName = "MetricName" + case period = "Period" + case extendedStatistic = "ExtendedStatistic" + case statistic = "Statistic" + case unit = "Unit" + case dimensions = "Dimensions" + case namespace = "Namespace" + } + } + public struct PutMetricAlarmInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: true, type: .string), AWSShapeMember(label: "Threshold", required: true, type: .double), AWSShapeMember(label: "Period", required: true, type: .integer), @@ -249,15 +788,15 @@ extension Monitoring { public let metricName: String /// The value against which the specified statistic is compared. public let threshold: Double - /// The period, in seconds, over which the specified statistic is applied. + /// The period, in seconds, over which the specified statistic is applied. Valid values are 10, 30, and any multiple of 60. Be sure to specify 10 or 30 only for metrics that are stored by a PutMetricData call with a StorageResolution of 1. If you specify a Period of 10 or 30 for a metric that does not have sub-minute resolution, the alarm still attempts to gather data at the period rate that you specify. In this case, it does not receive data for the attempts that do not correspond to a one-minute data resolution, and the alarm may often lapse into INSUFFICENT_DATA status. Specifying 10 or 30 also sets this alarm as a high-resolution alarm, which has a higher charge than other alarms. For more information about pricing, see Amazon CloudWatch Pricing. An alarm's total current evaluation period can be no longer than one day, so Period multiplied by EvaluationPeriods cannot be more than 86,400 seconds. public let period: Int32 /// The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. public let extendedStatistic: String? - /// Used only for alarms based on percentiles. If you specify ignore, the alarm state will not change during periods with too few data points to be statistically significant. If you specify evaluate or omit this parameter, the alarm will always be evaluated and possibly change state no matter how many data points are available. For more information, see Percentile-Based CloudWatch Alarms and Low Data Samples. Valid Values: evaluate | ignore + /// Used only for alarms based on percentiles. If you specify ignore, the alarm state does not change during periods with too few data points to be statistically significant. If you specify evaluate or omit this parameter, the alarm is always evaluated and possibly changes state no matter how many data points are available. For more information, see Percentile-Based CloudWatch Alarms and Low Data Samples. Valid Values: evaluate | ignore public let evaluateLowSampleCountPercentile: String? /// The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ExtendedStatistic. public let statistic: Statistic? - /// The unit of measure for the statistic. For example, the units for the Amazon EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that an instance receives on all network interfaces. You can also specify a unit when you create a custom metric. Units help provide conceptual meaning to your data. Metric data points that specify a unit of measure, such as Percent, are aggregated separately. If you specify a unit, you must use a unit that is appropriate for the metric. Otherwise, the Amazon CloudWatch alarm can get stuck in the INSUFFICIENT DATA state. + /// The unit of measure for the statistic. For example, the units for the Amazon EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that an instance receives on all network interfaces. You can also specify a unit when you create a custom metric. Units help provide conceptual meaning to your data. Metric data points that specify a unit of measure, such as Percent, are aggregated separately. If you specify a unit, you must use a unit that is appropriate for the metric. Otherwise, the CloudWatch alarm can get stuck in the INSUFFICIENT DATA state. public let unit: StandardUnit? /// Indicates whether actions should be executed during any changes to the alarm state. public let actionsEnabled: Bool? @@ -269,7 +808,7 @@ extension Monitoring { public let namespace: String /// The name for the alarm. This name must be unique within the AWS account. public let alarmName: String - /// The number of periods over which data is compared to the specified threshold. + /// The number of periods over which data is compared to the specified threshold. An alarm's total current evaluation period can be no longer than one day, so this number multiplied by Period cannot be more than 86,400 seconds. public let evaluationPeriods: Int32 /// The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. public let comparisonOperator: ComparisonOperator @@ -288,173 +827,45 @@ extension Monitoring { self.period = period self.extendedStatistic = extendedStatistic self.evaluateLowSampleCountPercentile = evaluateLowSampleCountPercentile - self.statistic = statistic - self.unit = unit - self.actionsEnabled = actionsEnabled - self.alarmActions = alarmActions - self.insufficientDataActions = insufficientDataActions - self.namespace = namespace - self.alarmName = alarmName - self.evaluationPeriods = evaluationPeriods - self.comparisonOperator = comparisonOperator - self.dimensions = dimensions - self.treatMissingData = treatMissingData - self.alarmDescription = alarmDescription - self.oKActions = oKActions - } - - private enum CodingKeys: String, CodingKey { - case metricName = "MetricName" - case threshold = "Threshold" - case period = "Period" - case extendedStatistic = "ExtendedStatistic" - case evaluateLowSampleCountPercentile = "EvaluateLowSampleCountPercentile" - case statistic = "Statistic" - case unit = "Unit" - case actionsEnabled = "ActionsEnabled" - case alarmActions = "AlarmActions" - case insufficientDataActions = "InsufficientDataActions" - case namespace = "Namespace" - case alarmName = "AlarmName" - case evaluationPeriods = "EvaluationPeriods" - case comparisonOperator = "ComparisonOperator" - case dimensions = "Dimensions" - case treatMissingData = "TreatMissingData" - case alarmDescription = "AlarmDescription" - case oKActions = "OKActions" - } - } - - public struct DescribeAlarmHistoryInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AlarmName", required: false, type: .string), - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "StartDate", required: false, type: .timestamp), - AWSShapeMember(label: "HistoryItemType", required: false, type: .enum), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "EndDate", required: false, type: .timestamp) - ] - /// The name of the alarm. - public let alarmName: String? - /// The maximum number of alarm history records to retrieve. - public let maxRecords: Int32? - /// The starting date to retrieve alarm history. - public let startDate: TimeStamp? - /// The type of alarm histories to retrieve. - public let historyItemType: HistoryItemType? - /// The token returned by a previous call to indicate that there is more data available. - public let nextToken: String? - /// The ending date to retrieve alarm history. - public let endDate: TimeStamp? - - public init(alarmName: String? = nil, maxRecords: Int32? = nil, startDate: TimeStamp? = nil, historyItemType: HistoryItemType? = nil, nextToken: String? = nil, endDate: TimeStamp? = nil) { - self.alarmName = alarmName - self.maxRecords = maxRecords - self.startDate = startDate - self.historyItemType = historyItemType - self.nextToken = nextToken - self.endDate = endDate - } - - private enum CodingKeys: String, CodingKey { - case alarmName = "AlarmName" - case maxRecords = "MaxRecords" - case startDate = "StartDate" - case historyItemType = "HistoryItemType" - case nextToken = "NextToken" - case endDate = "EndDate" - } - } - - public struct DescribeAlarmsForMetricInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MetricName", required: true, type: .string), - AWSShapeMember(label: "Period", required: false, type: .integer), - AWSShapeMember(label: "ExtendedStatistic", required: false, type: .string), - AWSShapeMember(label: "Statistic", required: false, type: .enum), - AWSShapeMember(label: "Unit", required: false, type: .enum), - AWSShapeMember(label: "Dimensions", required: false, type: .list), - AWSShapeMember(label: "Namespace", required: true, type: .string) - ] - /// The name of the metric. - public let metricName: String - /// The period, in seconds, over which the statistic is applied. - public let period: Int32? - /// The percentile statistic for the metric. Specify a value between p0.0 and p100. - public let extendedStatistic: String? - /// The statistic for the metric, other than percentiles. For percentile statistics, use ExtendedStatistics. - public let statistic: Statistic? - /// The unit for the metric. - public let unit: StandardUnit? - /// The dimensions associated with the metric. If the metric has any associated dimensions, you must specify them in order for the call to succeed. - public let dimensions: [Dimension]? - /// The namespace of the metric. - public let namespace: String - - public init(metricName: String, period: Int32? = nil, extendedStatistic: String? = nil, statistic: Statistic? = nil, unit: StandardUnit? = nil, dimensions: [Dimension]? = nil, namespace: String) { - self.metricName = metricName - self.period = period - self.extendedStatistic = extendedStatistic - self.statistic = statistic - self.unit = unit - self.dimensions = dimensions - self.namespace = namespace - } - - private enum CodingKeys: String, CodingKey { - case metricName = "MetricName" - case period = "Period" - case extendedStatistic = "ExtendedStatistic" - case statistic = "Statistic" - case unit = "Unit" - case dimensions = "Dimensions" - case namespace = "Namespace" - } - } - - public struct DescribeAlarmsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "AlarmNamePrefix", required: false, type: .string), - AWSShapeMember(label: "ActionPrefix", required: false, type: .string), - AWSShapeMember(label: "AlarmNames", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "StateValue", required: false, type: .enum) - ] - /// The maximum number of alarm descriptions to retrieve. - public let maxRecords: Int32? - /// The alarm name prefix. You cannot specify AlarmNames if this parameter is specified. - public let alarmNamePrefix: String? - /// The action name prefix. - public let actionPrefix: String? - /// The names of the alarms. - public let alarmNames: [String]? - /// The token returned by a previous call to indicate that there is more data available. - public let nextToken: String? - /// The state value to be used in matching alarms. - public let stateValue: StateValue? - - public init(maxRecords: Int32? = nil, alarmNamePrefix: String? = nil, actionPrefix: String? = nil, alarmNames: [String]? = nil, nextToken: String? = nil, stateValue: StateValue? = nil) { - self.maxRecords = maxRecords - self.alarmNamePrefix = alarmNamePrefix - self.actionPrefix = actionPrefix - self.alarmNames = alarmNames - self.nextToken = nextToken - self.stateValue = stateValue + self.statistic = statistic + self.unit = unit + self.actionsEnabled = actionsEnabled + self.alarmActions = alarmActions + self.insufficientDataActions = insufficientDataActions + self.namespace = namespace + self.alarmName = alarmName + self.evaluationPeriods = evaluationPeriods + self.comparisonOperator = comparisonOperator + self.dimensions = dimensions + self.treatMissingData = treatMissingData + self.alarmDescription = alarmDescription + self.oKActions = oKActions } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case alarmNamePrefix = "AlarmNamePrefix" - case actionPrefix = "ActionPrefix" - case alarmNames = "AlarmNames" - case nextToken = "NextToken" - case stateValue = "StateValue" + case metricName = "MetricName" + case threshold = "Threshold" + case period = "Period" + case extendedStatistic = "ExtendedStatistic" + case evaluateLowSampleCountPercentile = "EvaluateLowSampleCountPercentile" + case statistic = "Statistic" + case unit = "Unit" + case actionsEnabled = "ActionsEnabled" + case alarmActions = "AlarmActions" + case insufficientDataActions = "InsufficientDataActions" + case namespace = "Namespace" + case alarmName = "AlarmName" + case evaluationPeriods = "EvaluationPeriods" + case comparisonOperator = "ComparisonOperator" + case dimensions = "Dimensions" + case treatMissingData = "TreatMissingData" + case alarmDescription = "AlarmDescription" + case oKActions = "OKActions" } } public struct ListMetricsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Metrics", required: false, type: .list) ] @@ -475,7 +886,7 @@ extension Monitoring { } public struct MetricAlarm: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: false, type: .string), AWSShapeMember(label: "Threshold", required: false, type: .double), AWSShapeMember(label: "Period", required: false, type: .integer), @@ -531,6 +942,7 @@ extension Monitoring { public let stateValue: StateValue? /// The name of the alarm. public let alarmName: String? + /// Used only for alarms based on percentiles. If ignore, the alarm state does not change during periods with too few data points to be statistically significant. If evaluate or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. public let evaluateLowSampleCountPercentile: String? /// The time stamp of the last update to the alarm configuration. public let alarmConfigurationUpdatedTimestamp: TimeStamp? @@ -542,6 +954,7 @@ extension Monitoring { public let comparisonOperator: ComparisonOperator? /// The dimensions for the metric associated with the alarm. public let dimensions: [Dimension]? + /// Sets how this alarm is to handle missing data points. If this parameter is omitted, the default behavior of missing is used. public let treatMissingData: String? /// The description of the alarm. public let alarmDescription: String? @@ -603,96 +1016,34 @@ extension Monitoring { } } - public enum StandardUnit: String, CustomStringConvertible, Codable { - case seconds = "Seconds" - case microseconds = "Microseconds" - case milliseconds = "Milliseconds" - case bytes = "Bytes" - case kilobytes = "Kilobytes" - case megabytes = "Megabytes" - case gigabytes = "Gigabytes" - case terabytes = "Terabytes" - case bits = "Bits" - case kilobits = "Kilobits" - case megabits = "Megabits" - case gigabits = "Gigabits" - case terabits = "Terabits" - case percent = "Percent" - case count = "Count" - case bytesSecond = "Bytes/Second" - case kilobytesSecond = "Kilobytes/Second" - case megabytesSecond = "Megabytes/Second" - case gigabytesSecond = "Gigabytes/Second" - case terabytesSecond = "Terabytes/Second" - case bitsSecond = "Bits/Second" - case kilobitsSecond = "Kilobits/Second" - case megabitsSecond = "Megabits/Second" - case gigabitsSecond = "Gigabits/Second" - case terabitsSecond = "Terabits/Second" - case countSecond = "Count/Second" - case none = "None" - public var description: String { return self.rawValue } - } - - public struct Metric: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MetricName", required: false, type: .string), - AWSShapeMember(label: "Dimensions", required: false, type: .list), - AWSShapeMember(label: "Namespace", required: false, type: .string) - ] - /// The name of the metric. - public let metricName: String? - /// The dimensions for the metric. - public let dimensions: [Dimension]? - /// The namespace of the metric. - public let namespace: String? - - public init(metricName: String? = nil, dimensions: [Dimension]? = nil, namespace: String? = nil) { - self.metricName = metricName - self.dimensions = dimensions - self.namespace = namespace - } - - private enum CodingKeys: String, CodingKey { - case metricName = "MetricName" - case dimensions = "Dimensions" - case namespace = "Namespace" - } - } - - public struct ListMetricsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Namespace", required: false, type: .string), - AWSShapeMember(label: "MetricName", required: false, type: .string), - AWSShapeMember(label: "Dimensions", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) + public struct GetDashboardOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DashboardArn", required: false, type: .string), + AWSShapeMember(label: "DashboardBody", required: false, type: .string), + AWSShapeMember(label: "DashboardName", required: false, type: .string) ] - /// The namespace to filter against. - public let namespace: String? - /// The name of the metric to filter against. - public let metricName: String? - /// The dimensions to filter against. - public let dimensions: [DimensionFilter]? - /// The token returned by a previous call to indicate that there is more data available. - public let nextToken: String? - - public init(namespace: String? = nil, metricName: String? = nil, dimensions: [DimensionFilter]? = nil, nextToken: String? = nil) { - self.namespace = namespace - self.metricName = metricName - self.dimensions = dimensions - self.nextToken = nextToken + /// The Amazon Resource Name (ARN) of the dashboard. + public let dashboardArn: String? + /// The detailed information about the dashboard, including what widgets are included and their location on the dashboard. For more information about the DashboardBody syntax, see CloudWatch-Dashboard-Body-Structure. + public let dashboardBody: String? + /// The name of the dashboard. + public let dashboardName: String? + + public init(dashboardArn: String? = nil, dashboardBody: String? = nil, dashboardName: String? = nil) { + self.dashboardArn = dashboardArn + self.dashboardBody = dashboardBody + self.dashboardName = dashboardName } private enum CodingKeys: String, CodingKey { - case namespace = "Namespace" - case metricName = "MetricName" - case dimensions = "Dimensions" - case nextToken = "NextToken" + case dashboardArn = "DashboardArn" + case dashboardBody = "DashboardBody" + case dashboardName = "DashboardName" } } public struct DeleteAlarmsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AlarmNames", required: true, type: .list) ] /// The alarms to be deleted. @@ -707,85 +1058,8 @@ extension Monitoring { } } - public struct PutMetricDataInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Namespace", required: true, type: .string), - AWSShapeMember(label: "MetricData", required: true, type: .list) - ] - /// The namespace for the metric data. You cannot specify a namespace that begins with "AWS/". Namespaces that begin with "AWS/" are reserved for use by Amazon Web Services products. - public let namespace: String - /// The data for the metric. - public let metricData: [MetricDatum] - - public init(namespace: String, metricData: [MetricDatum]) { - self.namespace = namespace - self.metricData = metricData - } - - private enum CodingKeys: String, CodingKey { - case namespace = "Namespace" - case metricData = "MetricData" - } - } - - public struct GetMetricStatisticsInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StartTime", required: true, type: .timestamp), - AWSShapeMember(label: "MetricName", required: true, type: .string), - AWSShapeMember(label: "Period", required: true, type: .integer), - AWSShapeMember(label: "EndTime", required: true, type: .timestamp), - AWSShapeMember(label: "ExtendedStatistics", required: false, type: .list), - AWSShapeMember(label: "Dimensions", required: false, type: .list), - AWSShapeMember(label: "Unit", required: false, type: .enum), - AWSShapeMember(label: "Statistics", required: false, type: .list), - AWSShapeMember(label: "Namespace", required: true, type: .string) - ] - /// The time stamp that determines the first data point to return. Note that start times are evaluated relative to the time that CloudWatch receives the request. The value specified is inclusive; results include data points with the specified time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z). CloudWatch rounds the specified time stamp as follows: Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00. Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00. Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00. - public let startTime: TimeStamp - /// The name of the metric, with or without spaces. - public let metricName: String - /// The granularity, in seconds, of the returned data points. A period can be as short as one minute (60 seconds) and must be a multiple of 60. The default value is 60. If the StartTime parameter specifies a time stamp that is greater than 15 days ago, you must specify the period as follows or no data points in that time range is returned: Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). - public let period: Int32 - /// The time stamp that determines the last data point to return. The value specified is exclusive; results will include data points up to the specified time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z). - public let endTime: TimeStamp - /// The percentile statistics. Specify values between p0.0 and p100. - public let extendedStatistics: [String]? - /// The dimensions. If the metric contains multiple dimensions, you must include a value for each dimension. CloudWatch treats each unique combination of dimensions as a separate metric. You can't retrieve statistics using combinations of dimensions that were not specially published. You must specify the same dimensions that were used when the metrics were created. For an example, see Dimension Combinations in the Amazon CloudWatch User Guide. For more information on specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide. - public let dimensions: [Dimension]? - /// The unit for a given metric. Metrics may be reported in multiple units. Not supplying a unit results in all units being returned. If the metric only ever reports one unit, specifying a unit has no effect. - public let unit: StandardUnit? - /// The metric statistics, other than percentile. For percentile statistics, use ExtendedStatistic. - public let statistics: [Statistic]? - /// The namespace of the metric, with or without spaces. - public let namespace: String - - public init(startTime: TimeStamp, metricName: String, period: Int32, endTime: TimeStamp, extendedStatistics: [String]? = nil, dimensions: [Dimension]? = nil, unit: StandardUnit? = nil, statistics: [Statistic]? = nil, namespace: String) { - self.startTime = startTime - self.metricName = metricName - self.period = period - self.endTime = endTime - self.extendedStatistics = extendedStatistics - self.dimensions = dimensions - self.unit = unit - self.statistics = statistics - self.namespace = namespace - } - - private enum CodingKeys: String, CodingKey { - case startTime = "StartTime" - case metricName = "MetricName" - case period = "Period" - case endTime = "EndTime" - case extendedStatistics = "ExtendedStatistics" - case dimensions = "Dimensions" - case unit = "Unit" - case statistics = "Statistics" - case namespace = "Namespace" - } - } - public struct Dimension: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -805,38 +1079,8 @@ extension Monitoring { } } - public struct GetMetricStatisticsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Label", required: false, type: .string), - AWSShapeMember(label: "Datapoints", required: false, type: .list) - ] - /// A label for the specified metric. - public let label: String? - /// The data points for the specified metric. - public let datapoints: [Datapoint]? - - public init(label: String? = nil, datapoints: [Datapoint]? = nil) { - self.label = label - self.datapoints = datapoints - } - - private enum CodingKeys: String, CodingKey { - case label = "Label" - case datapoints = "Datapoints" - } - } - - public enum Statistic: String, CustomStringConvertible, Codable { - case samplecount = "SampleCount" - case average = "Average" - case sum = "Sum" - case minimum = "Minimum" - case maximum = "Maximum" - public var description: String { return self.rawValue } - } - public struct DescribeAlarmHistoryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "AlarmHistoryItems", required: false, type: .list) ] @@ -857,7 +1101,7 @@ extension Monitoring { } public struct SetAlarmStateInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AlarmName", required: true, type: .string), AWSShapeMember(label: "StateReasonData", required: false, type: .string), AWSShapeMember(label: "StateReason", required: true, type: .string), @@ -895,48 +1139,4 @@ extension Monitoring { public var description: String { return self.rawValue } } - public enum HistoryItemType: String, CustomStringConvertible, Codable { - case configurationupdate = "ConfigurationUpdate" - case stateupdate = "StateUpdate" - case action = "Action" - public var description: String { return self.rawValue } - } - - public struct DescribeAlarmsForMetricOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MetricAlarms", required: false, type: .list) - ] - /// The information for each alarm with the specified metric. - public let metricAlarms: [MetricAlarm]? - - public init(metricAlarms: [MetricAlarm]? = nil) { - self.metricAlarms = metricAlarms - } - - private enum CodingKeys: String, CodingKey { - case metricAlarms = "MetricAlarms" - } - } - - public struct DimensionFilter: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: false, type: .string), - AWSShapeMember(label: "Name", required: true, type: .string) - ] - /// The value of the dimension to be matched. - public let value: String? - /// The dimension name to be matched. - public let name: String - - public init(value: String? = nil, name: String) { - self.value = value - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case value = "Value" - case name = "Name" - } - } - } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mq/Mq_API.swift b/Sources/AWSSDKSwift/Services/mq/Mq_API.swift new file mode 100644 index 00000000000..60bc5471abc --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mq/Mq_API.swift @@ -0,0 +1,113 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +Amazon MQ is a managed message broker service for Apache ActiveMQ that makes it easy to set up and operate message brokers in the cloud. A message broker allows software applications and components to communicate using various programming languages, operating systems, and formal messaging protocols. +*/ +public struct Mq { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "mq", + serviceProtocol: ServiceProtocol(type: .restjson, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-11-27", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [MqError.self] + ) + } + + /// Reboots a broker. Note: This API is asynchronous. + public func rebootBroker(_ input: RebootBrokerRequest) throws -> RebootBrokerResponse { + return try client.send(operation: "RebootBroker", path: "/v1/brokers/{broker-id}/reboot", httpMethod: "POST", input: input) + } + + /// Deletes a broker. Note: This API is asynchronous. + public func deleteBroker(_ input: DeleteBrokerRequest) throws -> DeleteBrokerResponse { + return try client.send(operation: "DeleteBroker", path: "/v1/brokers/{broker-id}", httpMethod: "DELETE", input: input) + } + + /// Updates the information for an ActiveMQ user. + public func updateUser(_ input: UpdateUserRequest) throws -> UpdateUserResponse { + return try client.send(operation: "UpdateUser", path: "/v1/brokers/{broker-id}/users/{username}", httpMethod: "PUT", input: input) + } + + /// Returns information about the specified configuration. + public func describeConfiguration(_ input: DescribeConfigurationRequest) throws -> DescribeConfigurationResponse { + return try client.send(operation: "DescribeConfiguration", path: "/v1/configurations/{configuration-id}", httpMethod: "GET", input: input) + } + + /// Returns a list of all configurations. + public func listConfigurations(_ input: ListConfigurationsRequest) throws -> ListConfigurationsResponse { + return try client.send(operation: "ListConfigurations", path: "/v1/configurations", httpMethod: "GET", input: input) + } + + /// Returns a list of all brokers. + public func listBrokers(_ input: ListBrokersRequest) throws -> ListBrokersResponse { + return try client.send(operation: "ListBrokers", path: "/v1/brokers", httpMethod: "GET", input: input) + } + + /// Returns a list of all revisions for the specified configuration. + public func listConfigurationRevisions(_ input: ListConfigurationRevisionsRequest) throws -> ListConfigurationRevisionsResponse { + return try client.send(operation: "ListConfigurationRevisions", path: "/v1/configurations/{configuration-id}/revisions", httpMethod: "GET", input: input) + } + + /// Adds a pending configuration change to a broker. + public func updateBroker(_ input: UpdateBrokerRequest) throws -> UpdateBrokerResponse { + return try client.send(operation: "UpdateBroker", path: "/v1/brokers/{broker-id}", httpMethod: "PUT", input: input) + } + + /// Returns information about the specified broker. + public func describeBroker(_ input: DescribeBrokerRequest) throws -> DescribeBrokerResponse { + return try client.send(operation: "DescribeBroker", path: "/v1/brokers/{broker-id}", httpMethod: "GET", input: input) + } + + /// Creates an ActiveMQ user. + public func createUser(_ input: CreateUserRequest) throws -> CreateUserResponse { + return try client.send(operation: "CreateUser", path: "/v1/brokers/{broker-id}/users/{username}", httpMethod: "POST", input: input) + } + + /// Updates the specified configuration. + public func updateConfiguration(_ input: UpdateConfigurationRequest) throws -> UpdateConfigurationResponse { + return try client.send(operation: "UpdateConfiguration", path: "/v1/configurations/{configuration-id}", httpMethod: "PUT", input: input) + } + + /// Returns the specified configuration revision for the specified configuration. + public func describeConfigurationRevision(_ input: DescribeConfigurationRevisionRequest) throws -> DescribeConfigurationRevisionResponse { + return try client.send(operation: "DescribeConfigurationRevision", path: "/v1/configurations/{configuration-id}/revisions/{configuration-revision}", httpMethod: "GET", input: input) + } + + /// Creates a new configuration for the specified configuration name. Amazon MQ uses the default configuration (the engine type and version). Note: If the configuration name already exists, Amazon MQ doesn't create a configuration. + public func createConfiguration(_ input: CreateConfigurationRequest) throws -> CreateConfigurationResponse { + return try client.send(operation: "CreateConfiguration", path: "/v1/configurations", httpMethod: "POST", input: input) + } + + /// Returns a list of all ActiveMQ users. + public func listUsers(_ input: ListUsersRequest) throws -> ListUsersResponse { + return try client.send(operation: "ListUsers", path: "/v1/brokers/{broker-id}/users", httpMethod: "GET", input: input) + } + + /// Returns information about an ActiveMQ user. + public func describeUser(_ input: DescribeUserRequest) throws -> DescribeUserResponse { + return try client.send(operation: "DescribeUser", path: "/v1/brokers/{broker-id}/users/{username}", httpMethod: "GET", input: input) + } + + /// Deletes an ActiveMQ user. + public func deleteUser(_ input: DeleteUserRequest) throws -> DeleteUserResponse { + return try client.send(operation: "DeleteUser", path: "/v1/brokers/{broker-id}/users/{username}", httpMethod: "DELETE", input: input) + } + + /// Creates a broker. Note: This API is asynchronous. + public func createBroker(_ input: CreateBrokerRequest) throws -> CreateBrokerResponse { + return try client.send(operation: "CreateBroker", path: "/v1/brokers", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mq/Mq_Error.swift b/Sources/AWSSDKSwift/Services/mq/Mq_Error.swift new file mode 100644 index 00000000000..fab36c622fe --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mq/Mq_Error.swift @@ -0,0 +1,38 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Mq +public enum MqError: AWSErrorType { + case notFoundException(message: String?) + case badRequestException(message: String?) + case internalServerErrorException(message: String?) + case forbiddenException(message: String?) + case conflictException(message: String?) + case unauthorizedException(message: String?) +} + +extension MqError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "NotFoundException": + self = .notFoundException(message: message) + case "BadRequestException": + self = .badRequestException(message: message) + case "InternalServerErrorException": + self = .internalServerErrorException(message: message) + case "ForbiddenException": + self = .forbiddenException(message: message) + case "ConflictException": + self = .conflictException(message: message) + case "UnauthorizedException": + self = .unauthorizedException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mq/Mq_Shapes.swift b/Sources/AWSSDKSwift/Services/mq/Mq_Shapes.swift new file mode 100644 index 00000000000..2ac0f9a3b2d --- /dev/null +++ b/Sources/AWSSDKSwift/Services/mq/Mq_Shapes.swift @@ -0,0 +1,1740 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Mq { + + public struct ListConfigurationsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Configurations", location: .body(locationName: "configurations"), required: false, type: .list), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + /// The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty. + public let nextToken: String? + /// The list of all revisions for the specified configuration. + public let configurations: [Configuration]? + /// The maximum number of configurations that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100. + public let maxResults: Int32? + + public init(nextToken: String? = nil, configurations: [Configuration]? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.configurations = configurations + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case configurations = "configurations" + case maxResults = "maxResults" + } + } + + public struct CreateConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EngineType", location: .body(locationName: "engineType"), required: false, type: .enum), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "EngineVersion", location: .body(locationName: "engineVersion"), required: false, type: .string) + ] + public let engineType: EngineType? + public let name: String? + public let engineVersion: String? + + public init(engineType: EngineType? = nil, name: String? = nil, engineVersion: String? = nil) { + self.engineType = engineType + self.name = name + self.engineVersion = engineVersion + } + + private enum CodingKeys: String, CodingKey { + case engineType = "engineType" + case name = "name" + case engineVersion = "engineVersion" + } + } + + public struct UpdateConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "ConfigurationId", location: .uri(locationName: "configuration-id"), required: true, type: .string), + AWSShapeMember(label: "Data", location: .body(locationName: "data"), required: false, type: .string) + ] + public let description: String? + public let configurationId: String + public let data: String? + + public init(description: String? = nil, configurationId: String, data: String? = nil) { + self.description = description + self.configurationId = configurationId + self.data = data + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case configurationId = "configuration-id" + case data = "data" + } + } + + public struct DescribeBrokerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string), + AWSShapeMember(label: "EngineType", location: .body(locationName: "engineType"), required: false, type: .enum), + AWSShapeMember(label: "BrokerName", location: .body(locationName: "brokerName"), required: false, type: .string), + AWSShapeMember(label: "BrokerState", location: .body(locationName: "brokerState"), required: false, type: .enum), + AWSShapeMember(label: "AutoMinorVersionUpgrade", location: .body(locationName: "autoMinorVersionUpgrade"), required: false, type: .boolean), + AWSShapeMember(label: "BrokerInstances", location: .body(locationName: "brokerInstances"), required: false, type: .list), + AWSShapeMember(label: "SubnetIds", location: .body(locationName: "subnetIds"), required: false, type: .list), + AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "securityGroups"), required: false, type: .list), + AWSShapeMember(label: "BrokerArn", location: .body(locationName: "brokerArn"), required: false, type: .string), + AWSShapeMember(label: "EngineVersion", location: .body(locationName: "engineVersion"), required: false, type: .string), + AWSShapeMember(label: "HostInstanceType", location: .body(locationName: "hostInstanceType"), required: false, type: .string), + AWSShapeMember(label: "PubliclyAccessible", location: .body(locationName: "publiclyAccessible"), required: false, type: .boolean), + AWSShapeMember(label: "Users", location: .body(locationName: "users"), required: false, type: .list), + AWSShapeMember(label: "DeploymentMode", location: .body(locationName: "deploymentMode"), required: false, type: .enum), + AWSShapeMember(label: "MaintenanceWindowStartTime", location: .body(locationName: "maintenanceWindowStartTime"), required: false, type: .structure), + AWSShapeMember(label: "Configurations", location: .body(locationName: "configurations"), required: false, type: .structure) + ] + public let brokerId: String? + public let engineType: EngineType? + public let brokerName: String? + public let brokerState: BrokerState? + public let autoMinorVersionUpgrade: Bool? + public let brokerInstances: [BrokerInstance]? + public let subnetIds: [String]? + public let securityGroups: [String]? + public let brokerArn: String? + public let engineVersion: String? + public let hostInstanceType: String? + public let publiclyAccessible: Bool? + public let users: [UserSummary]? + public let deploymentMode: DeploymentMode? + public let maintenanceWindowStartTime: WeeklyStartTime? + public let configurations: Configurations? + + public init(brokerId: String? = nil, engineType: EngineType? = nil, brokerName: String? = nil, brokerState: BrokerState? = nil, autoMinorVersionUpgrade: Bool? = nil, brokerInstances: [BrokerInstance]? = nil, subnetIds: [String]? = nil, securityGroups: [String]? = nil, brokerArn: String? = nil, engineVersion: String? = nil, hostInstanceType: String? = nil, publiclyAccessible: Bool? = nil, users: [UserSummary]? = nil, deploymentMode: DeploymentMode? = nil, maintenanceWindowStartTime: WeeklyStartTime? = nil, configurations: Configurations? = nil) { + self.brokerId = brokerId + self.engineType = engineType + self.brokerName = brokerName + self.brokerState = brokerState + self.autoMinorVersionUpgrade = autoMinorVersionUpgrade + self.brokerInstances = brokerInstances + self.subnetIds = subnetIds + self.securityGroups = securityGroups + self.brokerArn = brokerArn + self.engineVersion = engineVersion + self.hostInstanceType = hostInstanceType + self.publiclyAccessible = publiclyAccessible + self.users = users + self.deploymentMode = deploymentMode + self.maintenanceWindowStartTime = maintenanceWindowStartTime + self.configurations = configurations + } + + private enum CodingKeys: String, CodingKey { + case brokerId = "brokerId" + case engineType = "engineType" + case brokerName = "brokerName" + case brokerState = "brokerState" + case autoMinorVersionUpgrade = "autoMinorVersionUpgrade" + case brokerInstances = "brokerInstances" + case subnetIds = "subnetIds" + case securityGroups = "securityGroups" + case brokerArn = "brokerArn" + case engineVersion = "engineVersion" + case hostInstanceType = "hostInstanceType" + case publiclyAccessible = "publiclyAccessible" + case users = "users" + case deploymentMode = "deploymentMode" + case maintenanceWindowStartTime = "maintenanceWindowStartTime" + case configurations = "configurations" + } + } + + public struct WeeklyStartTime: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimeOfDay", location: .body(locationName: "timeOfDay"), required: false, type: .string), + AWSShapeMember(label: "TimeZone", location: .body(locationName: "timeZone"), required: false, type: .string), + AWSShapeMember(label: "DayOfWeek", location: .body(locationName: "dayOfWeek"), required: false, type: .enum) + ] + /// Required. The time, in 24-hour format. + public let timeOfDay: String? + /// The time zone, UTC by default, in either the Country/City format, or the UTC offset format. + public let timeZone: String? + /// Required. The day of the week. Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY + public let dayOfWeek: DayOfWeek? + + public init(timeOfDay: String? = nil, timeZone: String? = nil, dayOfWeek: DayOfWeek? = nil) { + self.timeOfDay = timeOfDay + self.timeZone = timeZone + self.dayOfWeek = dayOfWeek + } + + private enum CodingKeys: String, CodingKey { + case timeOfDay = "timeOfDay" + case timeZone = "timeZone" + case dayOfWeek = "dayOfWeek" + } + } + + public struct UpdateUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConsoleAccess", location: .body(locationName: "consoleAccess"), required: false, type: .boolean), + AWSShapeMember(label: "Password", location: .body(locationName: "password"), required: false, type: .string), + AWSShapeMember(label: "BrokerId", location: .uri(locationName: "broker-id"), required: true, type: .string), + AWSShapeMember(label: "Groups", location: .body(locationName: "groups"), required: false, type: .list), + AWSShapeMember(label: "Username", location: .uri(locationName: "username"), required: true, type: .string) + ] + public let consoleAccess: Bool? + public let password: String? + public let brokerId: String + public let groups: [String]? + public let username: String + + public init(consoleAccess: Bool? = nil, password: String? = nil, brokerId: String, groups: [String]? = nil, username: String) { + self.consoleAccess = consoleAccess + self.password = password + self.brokerId = brokerId + self.groups = groups + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case consoleAccess = "consoleAccess" + case password = "password" + case brokerId = "broker-id" + case groups = "groups" + case username = "username" + } + } + + public struct DeleteUserResponse: AWSShape { + + } + + public struct ListConfigurationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct ListBrokersOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerSummaries", location: .body(locationName: "brokerSummaries"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + /// A list of information about all brokers. + public let brokerSummaries: [BrokerSummary]? + /// The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty. + public let nextToken: String? + + public init(brokerSummaries: [BrokerSummary]? = nil, nextToken: String? = nil) { + self.brokerSummaries = brokerSummaries + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case brokerSummaries = "brokerSummaries" + case nextToken = "nextToken" + } + } + + public struct DescribeUserOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Pending", location: .body(locationName: "pending"), required: false, type: .structure), + AWSShapeMember(label: "ConsoleAccess", location: .body(locationName: "consoleAccess"), required: false, type: .boolean), + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string), + AWSShapeMember(label: "Groups", location: .body(locationName: "groups"), required: false, type: .list), + AWSShapeMember(label: "Username", location: .body(locationName: "username"), required: false, type: .string) + ] + /// The status of the changes pending for the ActiveMQ user. + public let pending: UserPendingChanges? + /// Enables access to the the ActiveMQ Web Console for the ActiveMQ user. + public let consoleAccess: Bool? + /// Required. The unique ID that Amazon MQ generates for the broker. + public let brokerId: String? + /// The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long. + public let groups: [String]? + /// Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long. + public let username: String? + + public init(pending: UserPendingChanges? = nil, consoleAccess: Bool? = nil, brokerId: String? = nil, groups: [String]? = nil, username: String? = nil) { + self.pending = pending + self.consoleAccess = consoleAccess + self.brokerId = brokerId + self.groups = groups + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case pending = "pending" + case consoleAccess = "consoleAccess" + case brokerId = "brokerId" + case groups = "groups" + case username = "username" + } + } + + public struct DeleteBrokerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string) + ] + public let brokerId: String? + + public init(brokerId: String? = nil) { + self.brokerId = brokerId + } + + private enum CodingKeys: String, CodingKey { + case brokerId = "brokerId" + } + } + + public struct ListConfigurationRevisionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConfigurationId", location: .body(locationName: "configurationId"), required: false, type: .string), + AWSShapeMember(label: "Revisions", location: .body(locationName: "revisions"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + public let configurationId: String? + public let revisions: [ConfigurationRevision]? + public let nextToken: String? + public let maxResults: Int32? + + public init(configurationId: String? = nil, revisions: [ConfigurationRevision]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.configurationId = configurationId + self.revisions = revisions + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case configurationId = "configurationId" + case revisions = "revisions" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct DeleteBrokerOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string) + ] + /// The unique ID that Amazon MQ generates for the broker. + public let brokerId: String? + + public init(brokerId: String? = nil) { + self.brokerId = brokerId + } + + private enum CodingKeys: String, CodingKey { + case brokerId = "brokerId" + } + } + + public struct UpdateUserResponse: AWSShape { + + } + + public struct ListConfigurationsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Configurations", location: .body(locationName: "configurations"), required: false, type: .list), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + public let configurations: [Configuration]? + public let maxResults: Int32? + + public init(nextToken: String? = nil, configurations: [Configuration]? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.configurations = configurations + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case configurations = "configurations" + case maxResults = "maxResults" + } + } + + public enum ChangeType: String, CustomStringConvertible, Codable { + case create = "CREATE" + case update = "UPDATE" + case delete = "DELETE" + public var description: String { return self.rawValue } + } + + public struct ListUsersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Users", location: .body(locationName: "users"), required: false, type: .list), + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + public let users: [UserSummary]? + public let brokerId: String? + public let nextToken: String? + public let maxResults: Int32? + + public init(users: [UserSummary]? = nil, brokerId: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.users = users + self.brokerId = brokerId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case users = "users" + case brokerId = "brokerId" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct DescribeConfigurationRevisionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "ConfigurationId", location: .body(locationName: "configurationId"), required: false, type: .string), + AWSShapeMember(label: "Data", location: .body(locationName: "data"), required: false, type: .string) + ] + public let description: String? + public let configurationId: String? + public let data: String? + + public init(description: String? = nil, configurationId: String? = nil, data: String? = nil) { + self.description = description + self.configurationId = configurationId + self.data = data + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case configurationId = "configurationId" + case data = "data" + } + } + + public struct DescribeConfigurationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConfigurationId", location: .uri(locationName: "configuration-id"), required: true, type: .string) + ] + public let configurationId: String + + public init(configurationId: String) { + self.configurationId = configurationId + } + + private enum CodingKeys: String, CodingKey { + case configurationId = "configuration-id" + } + } + + public enum BrokerState: String, CustomStringConvertible, Codable { + case creationInProgress = "CREATION_IN_PROGRESS" + case creationFailed = "CREATION_FAILED" + case deletionInProgress = "DELETION_IN_PROGRESS" + case running = "RUNNING" + case rebootInProgress = "REBOOT_IN_PROGRESS" + public var description: String { return self.rawValue } + } + + public enum SanitizationWarningReason: String, CustomStringConvertible, Codable { + case disallowedElementRemoved = "DISALLOWED_ELEMENT_REMOVED" + case disallowedAttributeRemoved = "DISALLOWED_ATTRIBUTE_REMOVED" + case invalidAttributeValueRemoved = "INVALID_ATTRIBUTE_VALUE_REMOVED" + public var description: String { return self.rawValue } + } + + public struct CreateUserResponse: AWSShape { + + } + + public struct UpdateBrokerOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Configuration", location: .body(locationName: "configuration"), required: false, type: .structure), + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string) + ] + /// The ID of the updated configuration. + public let configuration: ConfigurationId? + /// Required. The unique ID that Amazon MQ generates for the broker. + public let brokerId: String? + + public init(configuration: ConfigurationId? = nil, brokerId: String? = nil) { + self.configuration = configuration + self.brokerId = brokerId + } + + private enum CodingKeys: String, CodingKey { + case configuration = "configuration" + case brokerId = "brokerId" + } + } + + public struct UserSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PendingChange", location: .body(locationName: "pendingChange"), required: false, type: .enum), + AWSShapeMember(label: "Username", location: .body(locationName: "username"), required: false, type: .string) + ] + /// The type of change pending for the ActiveMQ user. Possible values: CREATE, UPDATE, DELETE + public let pendingChange: ChangeType? + /// Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long. + public let username: String? + + public init(pendingChange: ChangeType? = nil, username: String? = nil) { + self.pendingChange = pendingChange + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case pendingChange = "pendingChange" + case username = "username" + } + } + + public struct UpdateBrokerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Configuration", location: .body(locationName: "configuration"), required: false, type: .structure), + AWSShapeMember(label: "BrokerId", location: .uri(locationName: "broker-id"), required: true, type: .string) + ] + public let configuration: ConfigurationId? + public let brokerId: String + + public init(configuration: ConfigurationId? = nil, brokerId: String) { + self.configuration = configuration + self.brokerId = brokerId + } + + private enum CodingKeys: String, CodingKey { + case configuration = "configuration" + case brokerId = "broker-id" + } + } + + public struct CreateConfigurationOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "LatestRevision", location: .body(locationName: "latestRevision"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + /// Required. The Amazon Resource Name (ARN) of the configuration. + public let arn: String? + /// The latest revision of the configuration. + public let latestRevision: ConfigurationRevision? + /// Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long. + public let name: String? + /// Required. The unique ID that Amazon MQ generates for the configuration. + public let id: String? + + public init(arn: String? = nil, latestRevision: ConfigurationRevision? = nil, name: String? = nil, id: String? = nil) { + self.arn = arn + self.latestRevision = latestRevision + self.name = name + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case latestRevision = "latestRevision" + case name = "name" + case id = "id" + } + } + + public enum DeploymentMode: String, CustomStringConvertible, Codable { + case singleInstance = "SINGLE_INSTANCE" + case activeStandbyMultiAz = "ACTIVE_STANDBY_MULTI_AZ" + public var description: String { return self.rawValue } + } + + public struct DescribeBrokerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerId", location: .uri(locationName: "broker-id"), required: true, type: .string) + ] + public let brokerId: String + + public init(brokerId: String) { + self.brokerId = brokerId + } + + private enum CodingKeys: String, CodingKey { + case brokerId = "broker-id" + } + } + + public struct User: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConsoleAccess", location: .body(locationName: "consoleAccess"), required: false, type: .boolean), + AWSShapeMember(label: "Password", location: .body(locationName: "password"), required: false, type: .string), + AWSShapeMember(label: "Groups", location: .body(locationName: "groups"), required: false, type: .list), + AWSShapeMember(label: "Username", location: .body(locationName: "username"), required: false, type: .string) + ] + /// Enables access to the the ActiveMQ Web Console for the ActiveMQ user. + public let consoleAccess: Bool? + /// Required. The password of the ActiveMQ user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas. + public let password: String? + /// The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long. + public let groups: [String]? + /// Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long. + public let username: String? + + public init(consoleAccess: Bool? = nil, password: String? = nil, groups: [String]? = nil, username: String? = nil) { + self.consoleAccess = consoleAccess + self.password = password + self.groups = groups + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case consoleAccess = "consoleAccess" + case password = "password" + case groups = "groups" + case username = "username" + } + } + + public struct Configurations: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Pending", location: .body(locationName: "pending"), required: false, type: .structure), + AWSShapeMember(label: "History", location: .body(locationName: "history"), required: false, type: .list), + AWSShapeMember(label: "Current", location: .body(locationName: "current"), required: false, type: .structure) + ] + /// The pending configuration of the broker. + public let pending: ConfigurationId? + /// The history of configurations applied to the broker. + public let history: [ConfigurationId]? + /// The current configuration of the broker. + public let current: ConfigurationId? + + public init(pending: ConfigurationId? = nil, history: [ConfigurationId]? = nil, current: ConfigurationId? = nil) { + self.pending = pending + self.history = history + self.current = current + } + + private enum CodingKeys: String, CodingKey { + case pending = "pending" + case history = "history" + case current = "current" + } + } + + public struct ListBrokersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct CreateBrokerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerArn", location: .body(locationName: "brokerArn"), required: false, type: .string), + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string) + ] + public let brokerArn: String? + public let brokerId: String? + + public init(brokerArn: String? = nil, brokerId: String? = nil) { + self.brokerArn = brokerArn + self.brokerId = brokerId + } + + private enum CodingKeys: String, CodingKey { + case brokerArn = "brokerArn" + case brokerId = "brokerId" + } + } + + public struct DeleteBrokerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerId", location: .uri(locationName: "broker-id"), required: true, type: .string) + ] + public let brokerId: String + + public init(brokerId: String) { + self.brokerId = brokerId + } + + private enum CodingKeys: String, CodingKey { + case brokerId = "broker-id" + } + } + + public struct CreateUserInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Password", location: .body(locationName: "password"), required: false, type: .string), + AWSShapeMember(label: "Groups", location: .body(locationName: "groups"), required: false, type: .list), + AWSShapeMember(label: "ConsoleAccess", location: .body(locationName: "consoleAccess"), required: false, type: .boolean) + ] + /// Required. The password of the user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas. + public let password: String? + /// The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long. + public let groups: [String]? + /// Enables access to the the ActiveMQ Web Console for the ActiveMQ user. + public let consoleAccess: Bool? + + public init(password: String? = nil, groups: [String]? = nil, consoleAccess: Bool? = nil) { + self.password = password + self.groups = groups + self.consoleAccess = consoleAccess + } + + private enum CodingKeys: String, CodingKey { + case password = "password" + case groups = "groups" + case consoleAccess = "consoleAccess" + } + } + + public struct UpdateBrokerInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Configuration", location: .body(locationName: "configuration"), required: false, type: .structure) + ] + /// A list of information about the configuration. + public let configuration: ConfigurationId? + + public init(configuration: ConfigurationId? = nil) { + self.configuration = configuration + } + + private enum CodingKeys: String, CodingKey { + case configuration = "configuration" + } + } + + public struct RebootBrokerResponse: AWSShape { + + } + + public struct UserPendingChanges: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PendingChange", location: .body(locationName: "pendingChange"), required: false, type: .enum), + AWSShapeMember(label: "Groups", location: .body(locationName: "groups"), required: false, type: .list), + AWSShapeMember(label: "ConsoleAccess", location: .body(locationName: "consoleAccess"), required: false, type: .boolean) + ] + /// Required. The type of change pending for the ActiveMQ user. Possible values: CREATE, UPDATE, DELETE + public let pendingChange: ChangeType? + /// The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long. + public let groups: [String]? + /// Enables access to the the ActiveMQ Web Console for the ActiveMQ user. + public let consoleAccess: Bool? + + public init(pendingChange: ChangeType? = nil, groups: [String]? = nil, consoleAccess: Bool? = nil) { + self.pendingChange = pendingChange + self.groups = groups + self.consoleAccess = consoleAccess + } + + private enum CodingKeys: String, CodingKey { + case pendingChange = "pendingChange" + case groups = "groups" + case consoleAccess = "consoleAccess" + } + } + + public struct Configuration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "EngineVersion", location: .body(locationName: "engineVersion"), required: false, type: .string), + AWSShapeMember(label: "EngineType", location: .body(locationName: "engineType"), required: false, type: .enum), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "LatestRevision", location: .body(locationName: "latestRevision"), required: false, type: .structure), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + /// Required. The description of the configuration. + public let description: String? + /// Required. The ARN of the configuration. + public let arn: String? + /// Required. The version of the broker engine. + public let engineVersion: String? + /// Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ. + public let engineType: EngineType? + /// Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long. + public let name: String? + /// Required. The latest revision of the configuration. + public let latestRevision: ConfigurationRevision? + /// Required. The unique ID that Amazon MQ generates for the configuration. + public let id: String? + + public init(description: String? = nil, arn: String? = nil, engineVersion: String? = nil, engineType: EngineType? = nil, name: String? = nil, latestRevision: ConfigurationRevision? = nil, id: String? = nil) { + self.description = description + self.arn = arn + self.engineVersion = engineVersion + self.engineType = engineType + self.name = name + self.latestRevision = latestRevision + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case arn = "arn" + case engineVersion = "engineVersion" + case engineType = "engineType" + case name = "name" + case latestRevision = "latestRevision" + case id = "id" + } + } + + public struct UpdateUserInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Password", location: .body(locationName: "password"), required: false, type: .string), + AWSShapeMember(label: "Groups", location: .body(locationName: "groups"), required: false, type: .list), + AWSShapeMember(label: "ConsoleAccess", location: .body(locationName: "consoleAccess"), required: false, type: .boolean) + ] + /// The password of the user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas. + public let password: String? + /// The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long. + public let groups: [String]? + /// Enables access to the the ActiveMQ Web Console for the ActiveMQ user. + public let consoleAccess: Bool? + + public init(password: String? = nil, groups: [String]? = nil, consoleAccess: Bool? = nil) { + self.password = password + self.groups = groups + self.consoleAccess = consoleAccess + } + + private enum CodingKeys: String, CodingKey { + case password = "password" + case groups = "groups" + case consoleAccess = "consoleAccess" + } + } + + public struct CreateUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConsoleAccess", location: .body(locationName: "consoleAccess"), required: false, type: .boolean), + AWSShapeMember(label: "Password", location: .body(locationName: "password"), required: false, type: .string), + AWSShapeMember(label: "BrokerId", location: .uri(locationName: "broker-id"), required: true, type: .string), + AWSShapeMember(label: "Groups", location: .body(locationName: "groups"), required: false, type: .list), + AWSShapeMember(label: "Username", location: .uri(locationName: "username"), required: true, type: .string) + ] + public let consoleAccess: Bool? + public let password: String? + public let brokerId: String + public let groups: [String]? + public let username: String + + public init(consoleAccess: Bool? = nil, password: String? = nil, brokerId: String, groups: [String]? = nil, username: String) { + self.consoleAccess = consoleAccess + self.password = password + self.brokerId = brokerId + self.groups = groups + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case consoleAccess = "consoleAccess" + case password = "password" + case brokerId = "broker-id" + case groups = "groups" + case username = "username" + } + } + + public struct DescribeConfigurationRevisionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConfigurationId", location: .uri(locationName: "configuration-id"), required: true, type: .string), + AWSShapeMember(label: "ConfigurationRevision", location: .uri(locationName: "configuration-revision"), required: true, type: .string) + ] + public let configurationId: String + public let configurationRevision: String + + public init(configurationId: String, configurationRevision: String) { + self.configurationId = configurationId + self.configurationRevision = configurationRevision + } + + private enum CodingKeys: String, CodingKey { + case configurationId = "configuration-id" + case configurationRevision = "configuration-revision" + } + } + + public enum EngineType: String, CustomStringConvertible, Codable { + case activemq = "ACTIVEMQ" + public var description: String { return self.rawValue } + } + + public struct ListUsersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerId", location: .uri(locationName: "broker-id"), required: true, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let brokerId: String + public let nextToken: String? + public let maxResults: Int32? + + public init(brokerId: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.brokerId = brokerId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case brokerId = "broker-id" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct BrokerInstance: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConsoleURL", location: .body(locationName: "consoleURL"), required: false, type: .string), + AWSShapeMember(label: "Endpoints", location: .body(locationName: "endpoints"), required: false, type: .list) + ] + /// The URL of the broker's ActiveMQ Web Console. + public let consoleURL: String? + /// The broker's wire-level protocol endpoints. + public let endpoints: [String]? + + public init(consoleURL: String? = nil, endpoints: [String]? = nil) { + self.consoleURL = consoleURL + self.endpoints = endpoints + } + + private enum CodingKeys: String, CodingKey { + case consoleURL = "consoleURL" + case endpoints = "endpoints" + } + } + + public struct CreateBrokerOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerArn", location: .body(locationName: "brokerArn"), required: false, type: .string), + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string) + ] + /// The Amazon Resource Name (ARN) of the broker. + public let brokerArn: String? + /// The unique ID that Amazon MQ generates for the broker. + public let brokerId: String? + + public init(brokerArn: String? = nil, brokerId: String? = nil) { + self.brokerArn = brokerArn + self.brokerId = brokerId + } + + private enum CodingKeys: String, CodingKey { + case brokerArn = "brokerArn" + case brokerId = "brokerId" + } + } + + public struct ListBrokersResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerSummaries", location: .body(locationName: "brokerSummaries"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string) + ] + public let brokerSummaries: [BrokerSummary]? + public let nextToken: String? + + public init(brokerSummaries: [BrokerSummary]? = nil, nextToken: String? = nil) { + self.brokerSummaries = brokerSummaries + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case brokerSummaries = "brokerSummaries" + case nextToken = "nextToken" + } + } + + public struct CreateBrokerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EngineType", location: .body(locationName: "engineType"), required: false, type: .enum), + AWSShapeMember(label: "Configuration", location: .body(locationName: "configuration"), required: false, type: .structure), + AWSShapeMember(label: "BrokerName", location: .body(locationName: "brokerName"), required: false, type: .string), + AWSShapeMember(label: "AutoMinorVersionUpgrade", location: .body(locationName: "autoMinorVersionUpgrade"), required: false, type: .boolean), + AWSShapeMember(label: "HostInstanceType", location: .body(locationName: "hostInstanceType"), required: false, type: .string), + AWSShapeMember(label: "SubnetIds", location: .body(locationName: "subnetIds"), required: false, type: .list), + AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "securityGroups"), required: false, type: .list), + AWSShapeMember(label: "PubliclyAccessible", location: .body(locationName: "publiclyAccessible"), required: false, type: .boolean), + AWSShapeMember(label: "EngineVersion", location: .body(locationName: "engineVersion"), required: false, type: .string), + AWSShapeMember(label: "Users", location: .body(locationName: "users"), required: false, type: .list), + AWSShapeMember(label: "MaintenanceWindowStartTime", location: .body(locationName: "maintenanceWindowStartTime"), required: false, type: .structure), + AWSShapeMember(label: "DeploymentMode", location: .body(locationName: "deploymentMode"), required: false, type: .enum), + AWSShapeMember(label: "CreatorRequestId", location: .body(locationName: "creatorRequestId"), required: false, type: .string) + ] + public let engineType: EngineType? + public let configuration: ConfigurationId? + public let brokerName: String? + public let autoMinorVersionUpgrade: Bool? + public let hostInstanceType: String? + public let subnetIds: [String]? + public let securityGroups: [String]? + public let publiclyAccessible: Bool? + public let engineVersion: String? + public let users: [User]? + public let maintenanceWindowStartTime: WeeklyStartTime? + public let deploymentMode: DeploymentMode? + public let creatorRequestId: String? + + public init(engineType: EngineType? = nil, configuration: ConfigurationId? = nil, brokerName: String? = nil, autoMinorVersionUpgrade: Bool? = nil, hostInstanceType: String? = nil, subnetIds: [String]? = nil, securityGroups: [String]? = nil, publiclyAccessible: Bool? = nil, engineVersion: String? = nil, users: [User]? = nil, maintenanceWindowStartTime: WeeklyStartTime? = nil, deploymentMode: DeploymentMode? = nil, creatorRequestId: String? = nil) { + self.engineType = engineType + self.configuration = configuration + self.brokerName = brokerName + self.autoMinorVersionUpgrade = autoMinorVersionUpgrade + self.hostInstanceType = hostInstanceType + self.subnetIds = subnetIds + self.securityGroups = securityGroups + self.publiclyAccessible = publiclyAccessible + self.engineVersion = engineVersion + self.users = users + self.maintenanceWindowStartTime = maintenanceWindowStartTime + self.deploymentMode = deploymentMode + self.creatorRequestId = creatorRequestId + } + + private enum CodingKeys: String, CodingKey { + case engineType = "engineType" + case configuration = "configuration" + case brokerName = "brokerName" + case autoMinorVersionUpgrade = "autoMinorVersionUpgrade" + case hostInstanceType = "hostInstanceType" + case subnetIds = "subnetIds" + case securityGroups = "securityGroups" + case publiclyAccessible = "publiclyAccessible" + case engineVersion = "engineVersion" + case users = "users" + case maintenanceWindowStartTime = "maintenanceWindowStartTime" + case deploymentMode = "deploymentMode" + case creatorRequestId = "creatorRequestId" + } + } + + public struct ListUsersOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Users", location: .body(locationName: "users"), required: false, type: .list), + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + /// Required. The list of all ActiveMQ usernames for the specified broker. + public let users: [UserSummary]? + /// Required. The unique ID that Amazon MQ generates for the broker. + public let brokerId: String? + /// The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty. + public let nextToken: String? + /// Required. The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100. + public let maxResults: Int32? + + public init(users: [UserSummary]? = nil, brokerId: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.users = users + self.brokerId = brokerId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case users = "users" + case brokerId = "brokerId" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct ConfigurationId: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string), + AWSShapeMember(label: "Revision", location: .body(locationName: "revision"), required: false, type: .integer) + ] + /// Required. The unique ID that Amazon MQ generates for the configuration. + public let id: String? + /// The Universally Unique Identifier (UUID) of the request. + public let revision: Int32? + + public init(id: String? = nil, revision: Int32? = nil) { + self.id = id + self.revision = revision + } + + private enum CodingKeys: String, CodingKey { + case id = "id" + case revision = "revision" + } + } + + public struct DescribeConfigurationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "EngineVersion", location: .body(locationName: "engineVersion"), required: false, type: .string), + AWSShapeMember(label: "EngineType", location: .body(locationName: "engineType"), required: false, type: .enum), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "LatestRevision", location: .body(locationName: "latestRevision"), required: false, type: .structure), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let description: String? + public let arn: String? + public let engineVersion: String? + public let engineType: EngineType? + public let name: String? + public let latestRevision: ConfigurationRevision? + public let id: String? + + public init(description: String? = nil, arn: String? = nil, engineVersion: String? = nil, engineType: EngineType? = nil, name: String? = nil, latestRevision: ConfigurationRevision? = nil, id: String? = nil) { + self.description = description + self.arn = arn + self.engineVersion = engineVersion + self.engineType = engineType + self.name = name + self.latestRevision = latestRevision + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case arn = "arn" + case engineVersion = "engineVersion" + case engineType = "engineType" + case name = "name" + case latestRevision = "latestRevision" + case id = "id" + } + } + + public struct CreateBrokerInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EngineType", location: .body(locationName: "engineType"), required: false, type: .enum), + AWSShapeMember(label: "Configuration", location: .body(locationName: "configuration"), required: false, type: .structure), + AWSShapeMember(label: "BrokerName", location: .body(locationName: "brokerName"), required: false, type: .string), + AWSShapeMember(label: "AutoMinorVersionUpgrade", location: .body(locationName: "autoMinorVersionUpgrade"), required: false, type: .boolean), + AWSShapeMember(label: "HostInstanceType", location: .body(locationName: "hostInstanceType"), required: false, type: .string), + AWSShapeMember(label: "SubnetIds", location: .body(locationName: "subnetIds"), required: false, type: .list), + AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "securityGroups"), required: false, type: .list), + AWSShapeMember(label: "PubliclyAccessible", location: .body(locationName: "publiclyAccessible"), required: false, type: .boolean), + AWSShapeMember(label: "EngineVersion", location: .body(locationName: "engineVersion"), required: false, type: .string), + AWSShapeMember(label: "Users", location: .body(locationName: "users"), required: false, type: .list), + AWSShapeMember(label: "MaintenanceWindowStartTime", location: .body(locationName: "maintenanceWindowStartTime"), required: false, type: .structure), + AWSShapeMember(label: "DeploymentMode", location: .body(locationName: "deploymentMode"), required: false, type: .enum), + AWSShapeMember(label: "CreatorRequestId", location: .body(locationName: "creatorRequestId"), required: false, type: .string) + ] + /// Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ. + public let engineType: EngineType? + /// A list of information about the configuration. + public let configuration: ConfigurationId? + /// Required. The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters. + public let brokerName: String? + /// Required. Enables automatic upgrades to new minor versions for brokers, as Apache releases the versions. The automatic upgrades occur during the maintenance window of the broker or after a manual broker reboot. + public let autoMinorVersionUpgrade: Bool? + /// Required. The broker's instance type. Possible values: mq.t2.micro, mq.m4.large + public let hostInstanceType: String? + /// Required. The list of groups (2 maximum) that define which subnets and IP ranges the broker can use from different Availability Zones. A SINGLE_INSTANCE deployment requires one subnet (for example, the default subnet). An ACTIVE_STANDBY_MULTI_AZ deployment requires two subnets. + public let subnetIds: [String]? + /// Required. The list of rules (1 minimum, 125 maximum) that authorize connections to brokers. + public let securityGroups: [String]? + /// Required. Enables connections from applications outside of the VPC that hosts the broker's subnets. + public let publiclyAccessible: Bool? + /// Required. The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0. + public let engineVersion: String? + /// Required. The list of ActiveMQ users (persons or applications) who can access queues and topics. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long. + public let users: [User]? + /// The parameters that determine the WeeklyStartTime. + public let maintenanceWindowStartTime: WeeklyStartTime? + /// Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability. + public let deploymentMode: DeploymentMode? + /// The unique ID that the requester receives for the created broker. Amazon MQ passes your ID with the API action. Note: We recommend using a Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the creatorRequestId if your application doesn't require idempotency. + public let creatorRequestId: String? + + public init(engineType: EngineType? = nil, configuration: ConfigurationId? = nil, brokerName: String? = nil, autoMinorVersionUpgrade: Bool? = nil, hostInstanceType: String? = nil, subnetIds: [String]? = nil, securityGroups: [String]? = nil, publiclyAccessible: Bool? = nil, engineVersion: String? = nil, users: [User]? = nil, maintenanceWindowStartTime: WeeklyStartTime? = nil, deploymentMode: DeploymentMode? = nil, creatorRequestId: String? = nil) { + self.engineType = engineType + self.configuration = configuration + self.brokerName = brokerName + self.autoMinorVersionUpgrade = autoMinorVersionUpgrade + self.hostInstanceType = hostInstanceType + self.subnetIds = subnetIds + self.securityGroups = securityGroups + self.publiclyAccessible = publiclyAccessible + self.engineVersion = engineVersion + self.users = users + self.maintenanceWindowStartTime = maintenanceWindowStartTime + self.deploymentMode = deploymentMode + self.creatorRequestId = creatorRequestId + } + + private enum CodingKeys: String, CodingKey { + case engineType = "engineType" + case configuration = "configuration" + case brokerName = "brokerName" + case autoMinorVersionUpgrade = "autoMinorVersionUpgrade" + case hostInstanceType = "hostInstanceType" + case subnetIds = "subnetIds" + case securityGroups = "securityGroups" + case publiclyAccessible = "publiclyAccessible" + case engineVersion = "engineVersion" + case users = "users" + case maintenanceWindowStartTime = "maintenanceWindowStartTime" + case deploymentMode = "deploymentMode" + case creatorRequestId = "creatorRequestId" + } + } + + public struct CreateConfigurationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EngineType", location: .body(locationName: "engineType"), required: false, type: .enum), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "EngineVersion", location: .body(locationName: "engineVersion"), required: false, type: .string) + ] + /// Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ. + public let engineType: EngineType? + /// Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long. + public let name: String? + /// Required. The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0. + public let engineVersion: String? + + public init(engineType: EngineType? = nil, name: String? = nil, engineVersion: String? = nil) { + self.engineType = engineType + self.name = name + self.engineVersion = engineVersion + } + + private enum CodingKeys: String, CodingKey { + case engineType = "engineType" + case name = "name" + case engineVersion = "engineVersion" + } + } + + public struct CreateConfigurationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "LatestRevision", location: .body(locationName: "latestRevision"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let arn: String? + public let latestRevision: ConfigurationRevision? + public let name: String? + public let id: String? + + public init(arn: String? = nil, latestRevision: ConfigurationRevision? = nil, name: String? = nil, id: String? = nil) { + self.arn = arn + self.latestRevision = latestRevision + self.name = name + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case latestRevision = "latestRevision" + case name = "name" + case id = "id" + } + } + + public struct ConfigurationRevision: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Revision", location: .body(locationName: "revision"), required: false, type: .integer), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// Required. The revision of the configuration. + public let revision: Int32? + /// The description of the configuration revision. + public let description: String? + + public init(revision: Int32? = nil, description: String? = nil) { + self.revision = revision + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case revision = "revision" + case description = "description" + } + } + + public struct DescribeBrokerOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string), + AWSShapeMember(label: "EngineType", location: .body(locationName: "engineType"), required: false, type: .enum), + AWSShapeMember(label: "BrokerName", location: .body(locationName: "brokerName"), required: false, type: .string), + AWSShapeMember(label: "BrokerState", location: .body(locationName: "brokerState"), required: false, type: .enum), + AWSShapeMember(label: "AutoMinorVersionUpgrade", location: .body(locationName: "autoMinorVersionUpgrade"), required: false, type: .boolean), + AWSShapeMember(label: "BrokerInstances", location: .body(locationName: "brokerInstances"), required: false, type: .list), + AWSShapeMember(label: "SubnetIds", location: .body(locationName: "subnetIds"), required: false, type: .list), + AWSShapeMember(label: "SecurityGroups", location: .body(locationName: "securityGroups"), required: false, type: .list), + AWSShapeMember(label: "BrokerArn", location: .body(locationName: "brokerArn"), required: false, type: .string), + AWSShapeMember(label: "EngineVersion", location: .body(locationName: "engineVersion"), required: false, type: .string), + AWSShapeMember(label: "HostInstanceType", location: .body(locationName: "hostInstanceType"), required: false, type: .string), + AWSShapeMember(label: "PubliclyAccessible", location: .body(locationName: "publiclyAccessible"), required: false, type: .boolean), + AWSShapeMember(label: "Users", location: .body(locationName: "users"), required: false, type: .list), + AWSShapeMember(label: "DeploymentMode", location: .body(locationName: "deploymentMode"), required: false, type: .enum), + AWSShapeMember(label: "MaintenanceWindowStartTime", location: .body(locationName: "maintenanceWindowStartTime"), required: false, type: .structure), + AWSShapeMember(label: "Configurations", location: .body(locationName: "configurations"), required: false, type: .structure) + ] + /// The unique ID that Amazon MQ generates for the broker. + public let brokerId: String? + /// Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ. + public let engineType: EngineType? + /// The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters. + public let brokerName: String? + /// The status of the broker. Possible values: CREATION_IN_PROGRESS, CREATION_FAILED, DELETION_IN_PROGRESS, RUNNING, REBOOT_IN_PROGRESS + public let brokerState: BrokerState? + /// Required. Enables automatic upgrades to new minor versions for brokers, as Apache releases the versions. The automatic upgrades occur during the maintenance window of the broker or after a manual broker reboot. + public let autoMinorVersionUpgrade: Bool? + /// A list of information about allocated brokers. + public let brokerInstances: [BrokerInstance]? + /// The list of groups (2 maximum) that define which subnets and IP ranges the broker can use from different Availability Zones. A SINGLE_INSTANCE deployment requires one subnet (for example, the default subnet). An ACTIVE_STANDBY_MULTI_AZ deployment requires two subnets. + public let subnetIds: [String]? + /// Required. The list of rules (1 minimum, 125 maximum) that authorize connections to brokers. + public let securityGroups: [String]? + /// The Amazon Resource Name (ARN) of the broker. + public let brokerArn: String? + /// The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0. + public let engineVersion: String? + /// The broker's instance type. Possible values: mq.t2.micro, mq.m4.large + public let hostInstanceType: String? + /// Required. Enables connections from applications outside of the VPC that hosts the broker's subnets. + public let publiclyAccessible: Bool? + /// The list of all ActiveMQ usernames for the specified broker. + public let users: [UserSummary]? + /// Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability. + public let deploymentMode: DeploymentMode? + /// The parameters that determine the WeeklyStartTime. + public let maintenanceWindowStartTime: WeeklyStartTime? + /// The list of all revisions for the specified configuration. + public let configurations: Configurations? + + public init(brokerId: String? = nil, engineType: EngineType? = nil, brokerName: String? = nil, brokerState: BrokerState? = nil, autoMinorVersionUpgrade: Bool? = nil, brokerInstances: [BrokerInstance]? = nil, subnetIds: [String]? = nil, securityGroups: [String]? = nil, brokerArn: String? = nil, engineVersion: String? = nil, hostInstanceType: String? = nil, publiclyAccessible: Bool? = nil, users: [UserSummary]? = nil, deploymentMode: DeploymentMode? = nil, maintenanceWindowStartTime: WeeklyStartTime? = nil, configurations: Configurations? = nil) { + self.brokerId = brokerId + self.engineType = engineType + self.brokerName = brokerName + self.brokerState = brokerState + self.autoMinorVersionUpgrade = autoMinorVersionUpgrade + self.brokerInstances = brokerInstances + self.subnetIds = subnetIds + self.securityGroups = securityGroups + self.brokerArn = brokerArn + self.engineVersion = engineVersion + self.hostInstanceType = hostInstanceType + self.publiclyAccessible = publiclyAccessible + self.users = users + self.deploymentMode = deploymentMode + self.maintenanceWindowStartTime = maintenanceWindowStartTime + self.configurations = configurations + } + + private enum CodingKeys: String, CodingKey { + case brokerId = "brokerId" + case engineType = "engineType" + case brokerName = "brokerName" + case brokerState = "brokerState" + case autoMinorVersionUpgrade = "autoMinorVersionUpgrade" + case brokerInstances = "brokerInstances" + case subnetIds = "subnetIds" + case securityGroups = "securityGroups" + case brokerArn = "brokerArn" + case engineVersion = "engineVersion" + case hostInstanceType = "hostInstanceType" + case publiclyAccessible = "publiclyAccessible" + case users = "users" + case deploymentMode = "deploymentMode" + case maintenanceWindowStartTime = "maintenanceWindowStartTime" + case configurations = "configurations" + } + } + + public struct DeleteUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerId", location: .uri(locationName: "broker-id"), required: true, type: .string), + AWSShapeMember(label: "Username", location: .uri(locationName: "username"), required: true, type: .string) + ] + public let brokerId: String + public let username: String + + public init(brokerId: String, username: String) { + self.brokerId = brokerId + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case brokerId = "broker-id" + case username = "username" + } + } + + public enum DayOfWeek: String, CustomStringConvertible, Codable { + case monday = "MONDAY" + case tuesday = "TUESDAY" + case wednesday = "WEDNESDAY" + case thursday = "THURSDAY" + case friday = "FRIDAY" + case saturday = "SATURDAY" + case sunday = "SUNDAY" + public var description: String { return self.rawValue } + } + + public struct DescribeConfigurationRevisionOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "ConfigurationId", location: .body(locationName: "configurationId"), required: false, type: .string), + AWSShapeMember(label: "Data", location: .body(locationName: "data"), required: false, type: .string) + ] + /// The description of the configuration. + public let description: String? + /// Required. The unique ID that Amazon MQ generates for the configuration. + public let configurationId: String? + /// Required. The base64-encoded XML configuration. + public let data: String? + + public init(description: String? = nil, configurationId: String? = nil, data: String? = nil) { + self.description = description + self.configurationId = configurationId + self.data = data + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case configurationId = "configurationId" + case data = "data" + } + } + + public struct BrokerSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerName", location: .body(locationName: "brokerName"), required: false, type: .string), + AWSShapeMember(label: "BrokerArn", location: .body(locationName: "brokerArn"), required: false, type: .string), + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string), + AWSShapeMember(label: "BrokerState", location: .body(locationName: "brokerState"), required: false, type: .enum), + AWSShapeMember(label: "HostInstanceType", location: .body(locationName: "hostInstanceType"), required: false, type: .string), + AWSShapeMember(label: "DeploymentMode", location: .body(locationName: "deploymentMode"), required: false, type: .enum) + ] + /// The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters. + public let brokerName: String? + /// The Amazon Resource Name (ARN) of the broker. + public let brokerArn: String? + /// The unique ID that Amazon MQ generates for the broker. + public let brokerId: String? + /// The status of the broker. Possible values: CREATION_IN_PROGRESS, CREATION_FAILED, DELETION_IN_PROGRESS, RUNNING, REBOOT_IN_PROGRESS + public let brokerState: BrokerState? + /// The broker's instance type. Possible values: mq.t2.micro, mq.m4.large + public let hostInstanceType: String? + /// Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability. + public let deploymentMode: DeploymentMode? + + public init(brokerName: String? = nil, brokerArn: String? = nil, brokerId: String? = nil, brokerState: BrokerState? = nil, hostInstanceType: String? = nil, deploymentMode: DeploymentMode? = nil) { + self.brokerName = brokerName + self.brokerArn = brokerArn + self.brokerId = brokerId + self.brokerState = brokerState + self.hostInstanceType = hostInstanceType + self.deploymentMode = deploymentMode + } + + private enum CodingKeys: String, CodingKey { + case brokerName = "brokerName" + case brokerArn = "brokerArn" + case brokerId = "brokerId" + case brokerState = "brokerState" + case hostInstanceType = "hostInstanceType" + case deploymentMode = "deploymentMode" + } + } + + public struct DescribeUserResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Pending", location: .body(locationName: "pending"), required: false, type: .structure), + AWSShapeMember(label: "ConsoleAccess", location: .body(locationName: "consoleAccess"), required: false, type: .boolean), + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string), + AWSShapeMember(label: "Groups", location: .body(locationName: "groups"), required: false, type: .list), + AWSShapeMember(label: "Username", location: .body(locationName: "username"), required: false, type: .string) + ] + public let pending: UserPendingChanges? + public let consoleAccess: Bool? + public let brokerId: String? + public let groups: [String]? + public let username: String? + + public init(pending: UserPendingChanges? = nil, consoleAccess: Bool? = nil, brokerId: String? = nil, groups: [String]? = nil, username: String? = nil) { + self.pending = pending + self.consoleAccess = consoleAccess + self.brokerId = brokerId + self.groups = groups + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case pending = "pending" + case consoleAccess = "consoleAccess" + case brokerId = "brokerId" + case groups = "groups" + case username = "username" + } + } + + public struct ListConfigurationRevisionsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ConfigurationId", location: .body(locationName: "configurationId"), required: false, type: .string), + AWSShapeMember(label: "Revisions", location: .body(locationName: "revisions"), required: false, type: .list), + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .body(locationName: "maxResults"), required: false, type: .integer) + ] + /// The unique ID that Amazon MQ generates for the configuration. + public let configurationId: String? + /// The list of all revisions for the specified configuration. + public let revisions: [ConfigurationRevision]? + /// The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty. + public let nextToken: String? + /// The maximum number of configuration revisions that can be returned per page (20 by default). This value must be an integer from 5 to 100. + public let maxResults: Int32? + + public init(configurationId: String? = nil, revisions: [ConfigurationRevision]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.configurationId = configurationId + self.revisions = revisions + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case configurationId = "configurationId" + case revisions = "revisions" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct UpdateConfigurationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "LatestRevision", location: .body(locationName: "latestRevision"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Warnings", location: .body(locationName: "warnings"), required: false, type: .list), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + public let arn: String? + public let latestRevision: ConfigurationRevision? + public let name: String? + public let warnings: [SanitizationWarning]? + public let id: String? + + public init(arn: String? = nil, latestRevision: ConfigurationRevision? = nil, name: String? = nil, warnings: [SanitizationWarning]? = nil, id: String? = nil) { + self.arn = arn + self.latestRevision = latestRevision + self.name = name + self.warnings = warnings + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case latestRevision = "latestRevision" + case name = "name" + case warnings = "warnings" + case id = "id" + } + } + + public struct SanitizationWarning: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Reason", location: .body(locationName: "reason"), required: false, type: .enum), + AWSShapeMember(label: "AttributeName", location: .body(locationName: "attributeName"), required: false, type: .string), + AWSShapeMember(label: "ElementName", location: .body(locationName: "elementName"), required: false, type: .string) + ] + /// Required. The reason for which the XML elements or attributes were sanitized. Possible values: DISALLOWED_ELEMENT_REMOVED, DISALLOWED_ATTRIBUTE_REMOVED, INVALID_ATTRIBUTE_VALUE_REMOVED DISALLOWED_ELEMENT_REMOVED shows that the provided element isn't allowed and has been removed. DISALLOWED_ATTRIBUTE_REMOVED shows that the provided attribute isn't allowed and has been removed. INVALID_ATTRIBUTE_VALUE_REMOVED shows that the provided value for the attribute isn't allowed and has been removed. + public let reason: SanitizationWarningReason? + /// The name of the XML attribute that has been sanitized. + public let attributeName: String? + /// The name of the XML element that has been sanitized. + public let elementName: String? + + public init(reason: SanitizationWarningReason? = nil, attributeName: String? = nil, elementName: String? = nil) { + self.reason = reason + self.attributeName = attributeName + self.elementName = elementName + } + + private enum CodingKeys: String, CodingKey { + case reason = "reason" + case attributeName = "attributeName" + case elementName = "elementName" + } + } + + public struct UpdateConfigurationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "Data", location: .body(locationName: "data"), required: false, type: .string) + ] + /// The description of the configuration. + public let description: String? + /// Required. The base64-encoded XML configuration. + public let data: String? + + public init(description: String? = nil, data: String? = nil) { + self.description = description + self.data = data + } + + private enum CodingKeys: String, CodingKey { + case description = "description" + case data = "data" + } + } + + public struct DescribeUserRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerId", location: .uri(locationName: "broker-id"), required: true, type: .string), + AWSShapeMember(label: "Username", location: .uri(locationName: "username"), required: true, type: .string) + ] + public let brokerId: String + public let username: String + + public init(brokerId: String, username: String) { + self.brokerId = brokerId + self.username = username + } + + private enum CodingKeys: String, CodingKey { + case brokerId = "broker-id" + case username = "username" + } + } + + public struct UpdateConfigurationOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", location: .body(locationName: "arn"), required: false, type: .string), + AWSShapeMember(label: "LatestRevision", location: .body(locationName: "latestRevision"), required: false, type: .structure), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "Warnings", location: .body(locationName: "warnings"), required: false, type: .list), + AWSShapeMember(label: "Id", location: .body(locationName: "id"), required: false, type: .string) + ] + /// Required. The Amazon Resource Name (ARN) of the configuration. + public let arn: String? + /// The latest revision of the configuration. + public let latestRevision: ConfigurationRevision? + /// Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long. + public let name: String? + /// The list of the first 20 warnings about the configuration XML elements or attributes that were sanitized. + public let warnings: [SanitizationWarning]? + /// Required. The unique ID that Amazon MQ generates for the configuration. + public let id: String? + + public init(arn: String? = nil, latestRevision: ConfigurationRevision? = nil, name: String? = nil, warnings: [SanitizationWarning]? = nil, id: String? = nil) { + self.arn = arn + self.latestRevision = latestRevision + self.name = name + self.warnings = warnings + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "arn" + case latestRevision = "latestRevision" + case name = "name" + case warnings = "warnings" + case id = "id" + } + } + + public struct RebootBrokerRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BrokerId", location: .uri(locationName: "broker-id"), required: true, type: .string) + ] + public let brokerId: String + + public init(brokerId: String) { + self.brokerId = brokerId + } + + private enum CodingKeys: String, CodingKey { + case brokerId = "broker-id" + } + } + + public struct Error: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", location: .body(locationName: "message"), required: false, type: .string), + AWSShapeMember(label: "ErrorAttribute", location: .body(locationName: "errorAttribute"), required: false, type: .string) + ] + /// The error message. + public let message: String? + /// The error attribute. + public let errorAttribute: String? + + public init(message: String? = nil, errorAttribute: String? = nil) { + self.message = message + self.errorAttribute = errorAttribute + } + + private enum CodingKeys: String, CodingKey { + case message = "message" + case errorAttribute = "errorAttribute" + } + } + + public struct ListConfigurationRevisionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "ConfigurationId", location: .uri(locationName: "configuration-id"), required: true, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + public let nextToken: String? + public let configurationId: String + public let maxResults: Int32? + + public init(nextToken: String? = nil, configurationId: String, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.configurationId = configurationId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case configurationId = "configuration-id" + case maxResults = "maxResults" + } + } + + public struct UpdateBrokerResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Configuration", location: .body(locationName: "configuration"), required: false, type: .structure), + AWSShapeMember(label: "BrokerId", location: .body(locationName: "brokerId"), required: false, type: .string) + ] + public let configuration: ConfigurationId? + public let brokerId: String? + + public init(configuration: ConfigurationId? = nil, brokerId: String? = nil) { + self.configuration = configuration + self.brokerId = brokerId + } + + private enum CodingKeys: String, CodingKey { + case configuration = "configuration" + case brokerId = "brokerId" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/mturk-requester/MturkRequester_Shapes.swift b/Sources/AWSSDKSwift/Services/mturk-requester/MturkRequester_Shapes.swift index 1c1f9e8503e..80c1e59a916 100644 --- a/Sources/AWSSDKSwift/Services/mturk-requester/MturkRequester_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/mturk-requester/MturkRequester_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension MturkRequester { public struct HIT: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoApprovalDelayInSeconds", required: false, type: .long), AWSShapeMember(label: "HITLayoutId", required: false, type: .string), AWSShapeMember(label: "NumberOfAssignmentsCompleted", required: false, type: .integer), @@ -121,7 +121,7 @@ extension MturkRequester { } public struct DeleteQualificationTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QualificationTypeId", required: true, type: .string) ] /// The ID of the QualificationType to dispose. @@ -137,7 +137,7 @@ extension MturkRequester { } public struct ListAssignmentsForHITRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "AssignmentStatuses", required: false, type: .list), @@ -177,11 +177,12 @@ extension MturkRequester { public enum NotificationTransport: String, CustomStringConvertible, Codable { case email = "Email" case sqs = "SQS" + case sns = "SNS" public var description: String { return self.rawValue } } public struct NotifyWorkersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subject", required: true, type: .string), AWSShapeMember(label: "MessageText", required: true, type: .string), AWSShapeMember(label: "WorkerIds", required: true, type: .list) @@ -207,7 +208,7 @@ extension MturkRequester { } public struct CreateHITTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITTypeId", required: false, type: .string) ] /// The ID of the newly registered HIT type. @@ -223,7 +224,7 @@ extension MturkRequester { } public struct ListAssignmentsForHITResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Assignments", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "NumResults", required: false, type: .integer) @@ -248,7 +249,7 @@ extension MturkRequester { } public struct ListQualificationTypesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MustBeOwnedByCaller", required: false, type: .boolean), AWSShapeMember(label: "MustBeRequestable", required: true, type: .boolean), AWSShapeMember(label: "Query", required: false, type: .string), @@ -283,7 +284,7 @@ extension MturkRequester { } public struct ListQualificationRequestsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "QualificationTypeId", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -314,7 +315,7 @@ extension MturkRequester { } public struct ListReviewableHITsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITs", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "NumResults", required: false, type: .integer) @@ -339,7 +340,7 @@ extension MturkRequester { } public struct GetFileUploadURLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileUploadURL", required: false, type: .string) ] /// A temporary URL for the file that the Worker uploaded for the answer. @@ -355,16 +356,16 @@ extension MturkRequester { } public struct HITLayoutParameter: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) ] /// The value substituted for the parameter referenced in the HITLayout. - public let value: String? + public let value: String /// The name of the parameter in the HITLayout. - public let name: String? + public let name: String - public init(value: String? = nil, name: String? = nil) { + public init(value: String, name: String) { self.value = value self.name = name } @@ -384,7 +385,7 @@ extension MturkRequester { } public struct QualificationType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TestDurationInSeconds", required: false, type: .long), AWSShapeMember(label: "RetryDelayInSeconds", required: false, type: .long), AWSShapeMember(label: "QualificationTypeStatus", required: false, type: .enum), @@ -460,16 +461,16 @@ extension MturkRequester { } public struct UpdateExpirationForHITRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ExpireAt", required: false, type: .timestamp), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ExpireAt", required: true, type: .timestamp), AWSShapeMember(label: "HITId", required: true, type: .string) ] /// The date and time at which you want the HIT to expire - public let expireAt: TimeStamp? + public let expireAt: TimeStamp /// The HIT to update. public let hITId: String - public init(expireAt: TimeStamp? = nil, hITId: String) { + public init(expireAt: TimeStamp, hITId: String) { self.expireAt = expireAt self.hITId = hITId } @@ -497,7 +498,7 @@ extension MturkRequester { } public struct ListQualificationTypesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "QualificationTypes", required: false, type: .list), AWSShapeMember(label: "NumResults", required: false, type: .integer) @@ -526,16 +527,16 @@ extension MturkRequester { } public struct ReviewPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .list), - AWSShapeMember(label: "PolicyName", required: false, type: .string) + AWSShapeMember(label: "PolicyName", required: true, type: .string) ] /// Name of the parameter from the Review policy. public let parameters: [PolicyParameter]? /// Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01 - public let policyName: String? + public let policyName: String - public init(parameters: [PolicyParameter]? = nil, policyName: String? = nil) { + public init(parameters: [PolicyParameter]? = nil, policyName: String) { self.parameters = parameters self.policyName = policyName } @@ -553,7 +554,7 @@ extension MturkRequester { } public struct GetHITResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HIT", required: false, type: .structure) ] /// Contains the requested HIT data. @@ -569,7 +570,7 @@ extension MturkRequester { } public struct NotifyWorkersFailureStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NotifyWorkersFailureMessage", required: false, type: .string), AWSShapeMember(label: "WorkerId", required: false, type: .string), AWSShapeMember(label: "NotifyWorkersFailureCode", required: false, type: .enum) @@ -599,7 +600,7 @@ extension MturkRequester { } public struct ListHITsForQualificationTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITs", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "NumResults", required: false, type: .integer) @@ -628,7 +629,7 @@ extension MturkRequester { } public struct CreateHITRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoApprovalDelayInSeconds", required: false, type: .long), AWSShapeMember(label: "HITLayoutParameters", required: false, type: .list), AWSShapeMember(label: "HITLayoutId", required: false, type: .string), @@ -718,8 +719,24 @@ extension MturkRequester { } } + public struct GetQualificationScoreResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Qualification", required: false, type: .structure) + ] + /// The Qualification data structure of the Qualification assigned to a user, including the Qualification type and the value (score). + public let qualification: Qualification? + + public init(qualification: Qualification? = nil) { + self.qualification = qualification + } + + private enum CodingKeys: String, CodingKey { + case qualification = "Qualification" + } + } + public struct ListWorkerBlocksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -750,28 +767,12 @@ extension MturkRequester { } - public struct GetQualificationScoreResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Qualification", required: false, type: .structure) - ] - /// The Qualification data structure of the Qualification assigned to a user, including the Qualification type and the value (score). - public let qualification: Qualification? - - public init(qualification: Qualification? = nil) { - self.qualification = qualification - } - - private enum CodingKeys: String, CodingKey { - case qualification = "Qualification" - } - } - public struct UpdateNotificationSettingsResponse: AWSShape { } public struct UpdateHITReviewStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITId", required: true, type: .string), AWSShapeMember(label: "Revert", required: false, type: .boolean) ] @@ -792,7 +793,7 @@ extension MturkRequester { } public struct AssociateQualificationWithWorkerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IntegerValue", required: false, type: .integer), AWSShapeMember(label: "SendNotification", required: false, type: .boolean), AWSShapeMember(label: "WorkerId", required: true, type: .string), @@ -823,7 +824,7 @@ extension MturkRequester { } public struct DeleteHITRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITId", required: true, type: .string) ] /// The ID of the HIT to be deleted. @@ -845,7 +846,7 @@ extension MturkRequester { } public struct UpdateQualificationTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TestDurationInSeconds", required: false, type: .long), AWSShapeMember(label: "AutoGranted", required: false, type: .boolean), AWSShapeMember(label: "Test", required: false, type: .string), @@ -915,7 +916,7 @@ extension MturkRequester { } public struct Qualification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IntegerValue", required: false, type: .integer), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "LocaleValue", required: false, type: .structure), @@ -963,7 +964,7 @@ extension MturkRequester { } public struct CreateWorkerBlockRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Reason", required: true, type: .string), AWSShapeMember(label: "WorkerId", required: true, type: .string) ] @@ -984,7 +985,7 @@ extension MturkRequester { } public struct ListHITsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITs", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "NumResults", required: false, type: .integer) @@ -1009,19 +1010,19 @@ extension MturkRequester { } public struct CreateAdditionalAssignmentsForHITRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITId", required: true, type: .string), - AWSShapeMember(label: "NumberOfAdditionalAssignments", required: false, type: .integer), + AWSShapeMember(label: "NumberOfAdditionalAssignments", required: true, type: .integer), AWSShapeMember(label: "UniqueRequestToken", required: false, type: .string) ] /// The ID of the HIT to extend. public let hITId: String /// The number of additional assignments to request for this HIT. - public let numberOfAdditionalAssignments: Int32? + public let numberOfAdditionalAssignments: Int32 /// A unique identifier for this request, which allows you to retry the call on error without extending the HIT multiple times. This is useful in cases such as network timeouts where it is unclear whether or not the call succeeded on the server. If the extend HIT already exists in the system from a previous call using the same UniqueRequestToken, subsequent calls will return an error with a message containing the request ID. public let uniqueRequestToken: String? - public init(hITId: String, numberOfAdditionalAssignments: Int32? = nil, uniqueRequestToken: String? = nil) { + public init(hITId: String, numberOfAdditionalAssignments: Int32, uniqueRequestToken: String? = nil) { self.hITId = hITId self.numberOfAdditionalAssignments = numberOfAdditionalAssignments self.uniqueRequestToken = uniqueRequestToken @@ -1035,7 +1036,7 @@ extension MturkRequester { } public struct GetFileUploadURLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssignmentId", required: true, type: .string), AWSShapeMember(label: "QuestionIdentifier", required: true, type: .string) ] @@ -1056,7 +1057,7 @@ extension MturkRequester { } public struct ListQualificationRequestsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "QualificationRequests", required: false, type: .list), AWSShapeMember(label: "NumResults", required: false, type: .integer) @@ -1081,7 +1082,7 @@ extension MturkRequester { } public struct ReviewReport: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReviewResults", required: false, type: .list), AWSShapeMember(label: "ReviewActions", required: false, type: .list) ] @@ -1106,7 +1107,7 @@ extension MturkRequester { } public struct GetAssignmentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HIT", required: false, type: .structure), AWSShapeMember(label: "Assignment", required: false, type: .structure) ] @@ -1127,7 +1128,7 @@ extension MturkRequester { } public struct QualificationRequirement: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QualificationTypeId", required: true, type: .string), AWSShapeMember(label: "IntegerValues", required: false, type: .list), AWSShapeMember(label: "RequiredToPreview", required: false, type: .boolean), @@ -1167,7 +1168,7 @@ extension MturkRequester { } public struct Locale: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Country", required: true, type: .string), AWSShapeMember(label: "Subdivision", required: false, type: .string) ] @@ -1188,7 +1189,7 @@ extension MturkRequester { } public struct WorkerBlock: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Reason", required: false, type: .string), AWSShapeMember(label: "WorkerId", required: false, type: .string) ] @@ -1209,7 +1210,7 @@ extension MturkRequester { } public struct ListWorkersWithQualificationTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Qualifications", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "NumResults", required: false, type: .integer) @@ -1243,7 +1244,7 @@ extension MturkRequester { } public struct ParameterMapEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -1264,7 +1265,7 @@ extension MturkRequester { } public struct CreateHITWithHITTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HIT", required: false, type: .structure) ] /// Contains the newly created HIT data. For a description of the HIT data structure as it appears in responses, see the HIT Data Structure documentation. @@ -1280,7 +1281,7 @@ extension MturkRequester { } public struct GetHITRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITId", required: true, type: .string) ] /// The ID of the HIT to be retrieved. @@ -1296,7 +1297,7 @@ extension MturkRequester { } public struct ListWorkersWithQualificationTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "QualificationTypeId", required: true, type: .string), @@ -1327,7 +1328,7 @@ extension MturkRequester { } public struct CreateQualificationTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TestDurationInSeconds", required: false, type: .long), AWSShapeMember(label: "AutoGranted", required: false, type: .boolean), AWSShapeMember(label: "Test", required: false, type: .string), @@ -1392,7 +1393,7 @@ extension MturkRequester { } public struct ListHITsForQualificationTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "QualificationTypeId", required: true, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -1418,7 +1419,7 @@ extension MturkRequester { } public struct RejectQualificationRequestRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Reason", required: false, type: .string), AWSShapeMember(label: "QualificationRequestId", required: true, type: .string) ] @@ -1445,7 +1446,7 @@ extension MturkRequester { } public struct CreateHITTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoApprovalDelayInSeconds", required: false, type: .long), AWSShapeMember(label: "QualificationRequirements", required: false, type: .list), AWSShapeMember(label: "AssignmentDurationInSeconds", required: true, type: .long), @@ -1491,7 +1492,7 @@ extension MturkRequester { } public struct Assignment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutoApprovalTime", required: false, type: .timestamp), AWSShapeMember(label: "SubmitTime", required: false, type: .timestamp), AWSShapeMember(label: "HITId", required: false, type: .string), @@ -1562,10 +1563,10 @@ extension MturkRequester { } public struct SendBonusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssignmentId", required: true, type: .string), AWSShapeMember(label: "UniqueRequestToken", required: false, type: .string), - AWSShapeMember(label: "Reason", required: false, type: .string), + AWSShapeMember(label: "Reason", required: true, type: .string), AWSShapeMember(label: "WorkerId", required: true, type: .string), AWSShapeMember(label: "BonusAmount", required: true, type: .string) ] @@ -1574,13 +1575,13 @@ extension MturkRequester { /// A unique identifier for this request, which allows you to retry the call on error without granting multiple bonuses. This is useful in cases such as network timeouts where it is unclear whether or not the call succeeded on the server. If the bonus already exists in the system from a previous call using the same UniqueRequestToken, subsequent calls will return an error with a message containing the request ID. public let uniqueRequestToken: String? /// A message that explains the reason for the bonus payment. The Worker receiving the bonus can see this message. - public let reason: String? + public let reason: String /// The ID of the Worker being paid the bonus. public let workerId: String /// The Bonus amount is a US Dollar amount specified using a string (for example, "5" represents $5.00 USD and "101.42" represents $101.42 USD). Do not include currency symbols or currency codes. public let bonusAmount: String - public init(assignmentId: String, uniqueRequestToken: String? = nil, reason: String? = nil, workerId: String, bonusAmount: String) { + public init(assignmentId: String, uniqueRequestToken: String? = nil, reason: String, workerId: String, bonusAmount: String) { self.assignmentId = assignmentId self.uniqueRequestToken = uniqueRequestToken self.reason = reason @@ -1602,7 +1603,7 @@ extension MturkRequester { } public struct CreateQualificationTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QualificationType", required: false, type: .structure) ] /// The created Qualification type, returned as a QualificationType data structure. @@ -1618,7 +1619,7 @@ extension MturkRequester { } public struct ListReviewPolicyResultsForHITResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITReviewPolicy", required: false, type: .structure), AWSShapeMember(label: "HITReviewReport", required: false, type: .structure), AWSShapeMember(label: "HITId", required: false, type: .string), @@ -1658,7 +1659,7 @@ extension MturkRequester { } public struct ListBonusPaymentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "BonusPayments", required: false, type: .list), AWSShapeMember(label: "NumResults", required: false, type: .integer) @@ -1683,7 +1684,7 @@ extension MturkRequester { } public struct ListBonusPaymentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssignmentId", required: false, type: .string), AWSShapeMember(label: "HITId", required: false, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -1713,7 +1714,7 @@ extension MturkRequester { } public struct BonusPayment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssignmentId", required: false, type: .string), AWSShapeMember(label: "Reason", required: false, type: .string), AWSShapeMember(label: "GrantTime", required: false, type: .timestamp), @@ -1748,7 +1749,7 @@ extension MturkRequester { } public struct CreateHITResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HIT", required: false, type: .structure) ] /// Contains the newly created HIT data. For a description of the HIT data structure as it appears in responses, see the HIT Data Structure documentation. @@ -1764,7 +1765,7 @@ extension MturkRequester { } public struct CreateHITWithHITTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxAssignments", required: false, type: .integer), AWSShapeMember(label: "HITLayoutId", required: false, type: .string), AWSShapeMember(label: "HITLayoutParameters", required: false, type: .list), @@ -1825,7 +1826,7 @@ extension MturkRequester { } public struct ReviewActionDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ActionName", required: false, type: .string), AWSShapeMember(label: "ActionId", required: false, type: .string), @@ -1876,7 +1877,7 @@ extension MturkRequester { } public struct UpdateHITTypeOfHITRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HITTypeId", required: true, type: .string), AWSShapeMember(label: "HITId", required: true, type: .string) ] @@ -1901,7 +1902,7 @@ extension MturkRequester { } public struct QualificationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubmitTime", required: false, type: .timestamp), AWSShapeMember(label: "WorkerId", required: false, type: .string), AWSShapeMember(label: "Answer", required: false, type: .string), @@ -1942,7 +1943,7 @@ extension MturkRequester { } public struct DisassociateQualificationFromWorkerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Reason", required: false, type: .string), AWSShapeMember(label: "WorkerId", required: true, type: .string), AWSShapeMember(label: "QualificationTypeId", required: true, type: .string) @@ -1968,7 +1969,7 @@ extension MturkRequester { } public struct UpdateQualificationTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QualificationType", required: false, type: .structure) ] /// Contains a QualificationType data structure. @@ -1984,7 +1985,7 @@ extension MturkRequester { } public struct ReviewResultDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "SubjectType", required: false, type: .string), AWSShapeMember(label: "SubjectId", required: false, type: .string), @@ -2025,7 +2026,7 @@ extension MturkRequester { } public struct GetAssignmentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssignmentId", required: true, type: .string) ] /// The ID of the Assignment to be retrieved. @@ -2041,7 +2042,7 @@ extension MturkRequester { } public struct ListHITsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -2061,7 +2062,7 @@ extension MturkRequester { } public struct NotifyWorkersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NotifyWorkersFailureStatuses", required: false, type: .list) ] /// When MTurk sends notifications to the list of Workers, it returns back any failures it encounters in this list of NotifyWorkersFailureStatus objects. @@ -2093,7 +2094,7 @@ extension MturkRequester { } public struct GetQualificationTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QualificationType", required: false, type: .structure) ] /// The returned Qualification Type @@ -2109,7 +2110,7 @@ extension MturkRequester { } public struct PolicyParameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MapEntries", required: false, type: .list), AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) @@ -2135,7 +2136,7 @@ extension MturkRequester { } public struct DeleteWorkerBlockRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Reason", required: false, type: .string), AWSShapeMember(label: "WorkerId", required: true, type: .string) ] @@ -2163,16 +2164,16 @@ extension MturkRequester { } public struct RejectAssignmentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RequesterFeedback", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RequesterFeedback", required: true, type: .string), AWSShapeMember(label: "AssignmentId", required: true, type: .string) ] /// A message for the Worker, which the Worker can see in the Status section of the web site. - public let requesterFeedback: String? + public let requesterFeedback: String /// The ID of the assignment. The assignment must correspond to a HIT created by the Requester. public let assignmentId: String - public init(requesterFeedback: String? = nil, assignmentId: String) { + public init(requesterFeedback: String, assignmentId: String) { self.requesterFeedback = requesterFeedback self.assignmentId = assignmentId } @@ -2184,7 +2185,7 @@ extension MturkRequester { } public struct AcceptQualificationRequestRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IntegerValue", required: false, type: .integer), AWSShapeMember(label: "QualificationRequestId", required: true, type: .string) ] @@ -2205,7 +2206,7 @@ extension MturkRequester { } public struct ListReviewableHITsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "HITTypeId", required: false, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -2236,7 +2237,7 @@ extension MturkRequester { } public struct SendTestEventNotificationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Notification", required: true, type: .structure), AWSShapeMember(label: "TestEventType", required: true, type: .enum) ] @@ -2257,7 +2258,7 @@ extension MturkRequester { } public struct ApproveAssignmentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RequesterFeedback", required: false, type: .string), AWSShapeMember(label: "AssignmentId", required: true, type: .string), AWSShapeMember(label: "OverrideRejection", required: false, type: .boolean) @@ -2283,7 +2284,7 @@ extension MturkRequester { } public struct GetAccountBalanceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OnHoldBalance", required: false, type: .string), AWSShapeMember(label: "AvailableBalance", required: false, type: .string) ] @@ -2302,7 +2303,7 @@ extension MturkRequester { } public struct GetQualificationScoreRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QualificationTypeId", required: true, type: .string), AWSShapeMember(label: "WorkerId", required: true, type: .string) ] @@ -2323,7 +2324,7 @@ extension MturkRequester { } public struct ListWorkerBlocksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "NumResults", required: false, type: .integer), AWSShapeMember(label: "WorkerBlocks", required: false, type: .list) @@ -2348,7 +2349,7 @@ extension MturkRequester { } public struct UpdateNotificationSettingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Notification", required: false, type: .structure), AWSShapeMember(label: "HITTypeId", required: true, type: .string), AWSShapeMember(label: "Active", required: false, type: .boolean) @@ -2374,7 +2375,7 @@ extension MturkRequester { } public struct GetQualificationTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QualificationTypeId", required: true, type: .string) ] /// The ID of the QualificationType. @@ -2390,22 +2391,22 @@ extension MturkRequester { } public struct NotificationSpecification: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventTypes", required: false, type: .list), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventTypes", required: true, type: .list), AWSShapeMember(label: "Destination", required: true, type: .string), AWSShapeMember(label: "Transport", required: true, type: .enum), - AWSShapeMember(label: "Version", required: false, type: .string) + AWSShapeMember(label: "Version", required: true, type: .string) ] /// The list of events that should cause notifications to be sent. Valid Values: AssignmentAccepted | AssignmentAbandoned | AssignmentReturned | AssignmentSubmitted | AssignmentRejected | AssignmentApproved | HITCreated | HITExtended | HITDisposed | HITReviewable | HITExpired | Ping. The Ping event is only valid for the SendTestEventNotification operation. - public let eventTypes: [EventType]? - /// The destination for notification messages. or email notifications (if Transport is Email), this is an email address. For Amazon Simple Queue Service (Amazon SQS) notifications (if Transport is SQS), this is the URL for your Amazon SQS queue. + public let eventTypes: [EventType] + /// The target for notification messages. The Destination’s format is determined by the specified Transport: When Transport is Email, the Destination is your email address. When Transport is SQS, the Destination is your queue URL. When Transport is SNS, the Destination is the ARN of your topic. public let destination: String - /// The method Amazon Mechanical Turk uses to send the notification. Valid Values: Email | SQS. + /// The method Amazon Mechanical Turk uses to send the notification. Valid Values: Email | SQS | SNS. public let transport: NotificationTransport /// The version of the Notification API to use. Valid value is 2006-05-05. - public let version: String? + public let version: String - public init(eventTypes: [EventType]? = nil, destination: String, transport: NotificationTransport, version: String? = nil) { + public init(eventTypes: [EventType], destination: String, transport: NotificationTransport, version: String) { self.eventTypes = eventTypes self.destination = destination self.transport = transport @@ -2421,7 +2422,7 @@ extension MturkRequester { } public struct ListReviewPolicyResultsForHITRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "PolicyLevels", required: false, type: .list), AWSShapeMember(label: "HITId", required: true, type: .string), diff --git a/Sources/AWSSDKSwift/Services/opsworks/Opsworks_Shapes.swift b/Sources/AWSSDKSwift/Services/opsworks/Opsworks_Shapes.swift index f7b227ffaba..8fc08ff56cc 100644 --- a/Sources/AWSSDKSwift/Services/opsworks/Opsworks_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/opsworks/Opsworks_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Opsworks { public struct DeregisterVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeId", required: true, type: .string) ] /// The AWS OpsWorks Stacks volume ID, which is the GUID that AWS OpsWorks Stacks assigned to the instance when you registered the volume with the stack, not the Amazon EC2 volume ID. @@ -22,7 +22,7 @@ extension Opsworks { } public struct TagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string), AWSShapeMember(label: "Tags", required: true, type: .map) ] @@ -43,7 +43,7 @@ extension Opsworks { } public struct CreateUserProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamUserArn", required: true, type: .string), AWSShapeMember(label: "SshPublicKey", required: false, type: .string), AWSShapeMember(label: "SshUsername", required: false, type: .string), @@ -74,7 +74,7 @@ extension Opsworks { } public struct DescribeRdsDbInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: true, type: .string), AWSShapeMember(label: "RdsDbInstanceArns", required: false, type: .list) ] @@ -95,7 +95,7 @@ extension Opsworks { } public struct Layer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Shortname", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "Packages", required: false, type: .list), @@ -219,7 +219,7 @@ extension Opsworks { } public struct SetTimeBasedAutoScalingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "AutoScalingSchedule", required: false, type: .structure) ] @@ -240,7 +240,7 @@ extension Opsworks { } public struct DescribeRaidArraysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "RaidArrayIds", required: false, type: .list), AWSShapeMember(label: "InstanceId", required: false, type: .string) @@ -272,7 +272,7 @@ extension Opsworks { } public struct StackSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstancesCount", required: false, type: .structure), AWSShapeMember(label: "LayersCount", required: false, type: .integer), AWSShapeMember(label: "Arn", required: false, type: .string), @@ -313,7 +313,7 @@ extension Opsworks { } public struct DescribeCommandsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Commands", required: false, type: .list) ] /// An array of Command objects that describe each of the specified commands. @@ -329,7 +329,7 @@ extension Opsworks { } public struct DeregisterEcsClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EcsClusterArn", required: true, type: .string) ] /// The cluster's ARN. @@ -345,7 +345,7 @@ extension Opsworks { } public struct DescribeEcsClustersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EcsClusters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -366,7 +366,7 @@ extension Opsworks { } public struct UpdateUserProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamUserArn", required: true, type: .string), AWSShapeMember(label: "SshPublicKey", required: false, type: .string), AWSShapeMember(label: "SshUsername", required: false, type: .string), @@ -397,7 +397,7 @@ extension Opsworks { } public struct DescribeStacksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackIds", required: false, type: .list) ] /// An array of stack IDs that specify the stacks to be described. If you omit this parameter, DescribeStacks returns a description of every stack. @@ -413,7 +413,7 @@ extension Opsworks { } public struct SslConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Certificate", required: true, type: .string), AWSShapeMember(label: "Chain", required: false, type: .string), AWSShapeMember(label: "PrivateKey", required: true, type: .string) @@ -439,7 +439,7 @@ extension Opsworks { } public struct DescribeElasticIpsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "Ips", required: false, type: .list), AWSShapeMember(label: "InstanceId", required: false, type: .string) @@ -465,7 +465,7 @@ extension Opsworks { } public struct StackConfigurationManager: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .string) ] @@ -486,7 +486,7 @@ extension Opsworks { } public struct UpdateAppRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AppId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "DataSources", required: false, type: .list), @@ -552,7 +552,7 @@ extension Opsworks { } public struct Instance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EcsContainerInstanceArn", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "Hostname", required: false, type: .string), @@ -863,7 +863,7 @@ extension Opsworks { } public struct DescribeUserProfilesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamUserArns", required: false, type: .list) ] /// An array of IAM or federated user ARNs that identify the users to be described. @@ -879,7 +879,7 @@ extension Opsworks { } public struct DeleteInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeleteVolumes", required: false, type: .boolean), AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "DeleteElasticIp", required: false, type: .boolean) @@ -905,7 +905,7 @@ extension Opsworks { } public struct InstancesCount: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Pending", required: false, type: .integer), AWSShapeMember(label: "Stopping", required: false, type: .integer), AWSShapeMember(label: "Booting", required: false, type: .integer), @@ -1011,7 +1011,7 @@ extension Opsworks { } public struct CreateLayerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Shortname", required: true, type: .string), AWSShapeMember(label: "Packages", required: false, type: .list), AWSShapeMember(label: "LifecycleEventConfiguration", required: false, type: .structure), @@ -1112,7 +1112,7 @@ extension Opsworks { } public struct UpdateInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LayerIds", required: false, type: .list), AWSShapeMember(label: "Hostname", required: false, type: .string), AWSShapeMember(label: "AgentVersion", required: false, type: .string), @@ -1183,7 +1183,7 @@ extension Opsworks { } public struct RaidArray: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Device", required: false, type: .string), AWSShapeMember(label: "Iops", required: false, type: .integer), AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), @@ -1259,7 +1259,7 @@ extension Opsworks { } public struct CloneStackResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string) ] /// The cloned stack ID. @@ -1275,7 +1275,7 @@ extension Opsworks { } public struct CreateStackResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string) ] /// The stack ID, which is an opaque string that you use to identify the stack when performing actions such as DescribeStacks. @@ -1297,7 +1297,7 @@ extension Opsworks { } public struct LoadBasedAutoScalingConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DownScaling", required: false, type: .structure), AWSShapeMember(label: "Enable", required: false, type: .boolean), AWSShapeMember(label: "UpScaling", required: false, type: .structure), @@ -1328,7 +1328,7 @@ extension Opsworks { } public struct App: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Shortname", required: false, type: .string), AWSShapeMember(label: "SslConfiguration", required: false, type: .structure), AWSShapeMember(label: "AppSource", required: false, type: .structure), @@ -1415,7 +1415,7 @@ extension Opsworks { } public struct Command: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LogUrl", required: false, type: .string), AWSShapeMember(label: "AcknowledgedAt", required: false, type: .string), AWSShapeMember(label: "CreatedAt", required: false, type: .string), @@ -1492,7 +1492,7 @@ extension Opsworks { } public struct UserProfile: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamUserArn", required: false, type: .string), AWSShapeMember(label: "SshPublicKey", required: false, type: .string), AWSShapeMember(label: "SshUsername", required: false, type: .string), @@ -1528,7 +1528,7 @@ extension Opsworks { } public struct WeeklyAutoScalingSchedule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Saturday", required: false, type: .map), AWSShapeMember(label: "Tuesday", required: false, type: .map), AWSShapeMember(label: "Sunday", required: false, type: .map), @@ -1574,7 +1574,7 @@ extension Opsworks { } public struct RegisterEcsClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EcsClusterArn", required: false, type: .string) ] /// The cluster's ARN. @@ -1590,7 +1590,7 @@ extension Opsworks { } public struct RegisterElasticIpResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticIp", required: false, type: .string) ] /// The Elastic IP address. @@ -1606,7 +1606,7 @@ extension Opsworks { } public struct GetHostnameSuggestionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LayerId", required: true, type: .string) ] /// The layer ID. @@ -1622,7 +1622,7 @@ extension Opsworks { } public struct DeregisterInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string) ] /// The instance ID. @@ -1638,7 +1638,7 @@ extension Opsworks { } public struct CreateInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BlockDeviceMappings", required: false, type: .list), AWSShapeMember(label: "SubnetId", required: false, type: .string), AWSShapeMember(label: "LayerIds", required: true, type: .list), @@ -1739,7 +1739,7 @@ extension Opsworks { } public struct CreateAppRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Shortname", required: false, type: .string), AWSShapeMember(label: "StackId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), @@ -1810,7 +1810,7 @@ extension Opsworks { } public struct ShutdownEventConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExecutionTimeout", required: false, type: .integer), AWSShapeMember(label: "DelayUntilElbConnectionsDrained", required: false, type: .boolean) ] @@ -1831,7 +1831,7 @@ extension Opsworks { } public struct CreateUserProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamUserArn", required: false, type: .string) ] /// The user's IAM ARN. @@ -1847,7 +1847,7 @@ extension Opsworks { } public struct CloneStackRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultOs", required: false, type: .string), AWSShapeMember(label: "ClonePermissions", required: false, type: .boolean), AWSShapeMember(label: "ServiceRoleArn", required: true, type: .string), @@ -1967,7 +1967,7 @@ extension Opsworks { } public struct DescribeLayersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "LayerIds", required: false, type: .list) ] @@ -1988,7 +1988,7 @@ extension Opsworks { } public struct DescribeAgentVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "ConfigurationManager", required: false, type: .structure) ] @@ -2009,7 +2009,7 @@ extension Opsworks { } public struct DescribeDeploymentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "DeploymentIds", required: false, type: .list), AWSShapeMember(label: "AppId", required: false, type: .string) @@ -2035,7 +2035,7 @@ extension Opsworks { } public struct DescribeAppsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Apps", required: false, type: .list) ] /// An array of App objects that describe the specified apps. @@ -2051,7 +2051,7 @@ extension Opsworks { } public struct DescribeVolumesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Volumes", required: false, type: .list) ] /// An array of volume IDs. @@ -2067,7 +2067,7 @@ extension Opsworks { } public struct GrantAccessRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ValidForInMinutes", required: false, type: .integer), AWSShapeMember(label: "InstanceId", required: true, type: .string) ] @@ -2088,7 +2088,7 @@ extension Opsworks { } public struct DescribeLayersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Layers", required: false, type: .list) ] /// An array of Layer objects that describe the layers. @@ -2104,7 +2104,7 @@ extension Opsworks { } public struct DetachElasticLoadBalancerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LayerId", required: true, type: .string), AWSShapeMember(label: "ElasticLoadBalancerName", required: true, type: .string) ] @@ -2125,7 +2125,7 @@ extension Opsworks { } public struct RegisterInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: false, type: .string) ] /// The registered instance's AWS OpsWorks Stacks ID. @@ -2141,7 +2141,7 @@ extension Opsworks { } public struct ElasticIp: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Domain", required: false, type: .string), AWSShapeMember(label: "Ip", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string), @@ -2177,7 +2177,7 @@ extension Opsworks { } public struct GrantAccessResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TemporaryCredential", required: false, type: .structure) ] /// A TemporaryCredential object that contains the data needed to log in to the instance by RDP clients, such as the Microsoft Remote Desktop Connection. @@ -2199,7 +2199,7 @@ extension Opsworks { } public struct AssignInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LayerIds", required: true, type: .list), AWSShapeMember(label: "InstanceId", required: true, type: .string) ] @@ -2220,7 +2220,7 @@ extension Opsworks { } public struct AssociateElasticIpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticIp", required: true, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string) ] @@ -2241,7 +2241,7 @@ extension Opsworks { } public struct UnassignVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeId", required: true, type: .string) ] /// The volume ID. @@ -2257,7 +2257,7 @@ extension Opsworks { } public struct VolumeConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NumberOfDisks", required: true, type: .integer), AWSShapeMember(label: "VolumeType", required: false, type: .string), AWSShapeMember(label: "Iops", required: false, type: .integer), @@ -2298,7 +2298,7 @@ extension Opsworks { } public struct CreateAppResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AppId", required: false, type: .string) ] /// The app ID. @@ -2314,7 +2314,7 @@ extension Opsworks { } public struct DescribeUserProfilesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserProfiles", required: false, type: .list) ] /// A Users object that describes the specified users. @@ -2330,7 +2330,7 @@ extension Opsworks { } public struct SetLoadBasedAutoScalingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DownScaling", required: false, type: .structure), AWSShapeMember(label: "Enable", required: false, type: .boolean), AWSShapeMember(label: "UpScaling", required: false, type: .structure), @@ -2361,7 +2361,7 @@ extension Opsworks { } public struct DeleteStackRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: true, type: .string) ] /// The stack ID. @@ -2383,7 +2383,7 @@ extension Opsworks { } public struct CloudWatchLogsLogStream: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "File", required: false, type: .string), AWSShapeMember(label: "TimeZone", required: false, type: .enum), AWSShapeMember(label: "InitialPosition", required: false, type: .enum), @@ -2449,7 +2449,7 @@ extension Opsworks { } public struct UpdateMyUserProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SshPublicKey", required: false, type: .string) ] /// The user's SSH public key. @@ -2470,7 +2470,7 @@ extension Opsworks { } public struct StopInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string) ] /// The instance ID. @@ -2486,7 +2486,7 @@ extension Opsworks { } public struct UntagResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -2507,7 +2507,7 @@ extension Opsworks { } public struct DeploymentCommand: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .enum), AWSShapeMember(label: "Args", required: false, type: .map) ] @@ -2528,7 +2528,7 @@ extension Opsworks { } public struct DescribeInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "InstanceIds", required: false, type: .list), AWSShapeMember(label: "LayerId", required: false, type: .string) @@ -2554,7 +2554,7 @@ extension Opsworks { } public struct DescribeLoadBasedAutoScalingResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoadBasedAutoScalingConfigurations", required: false, type: .list) ] /// An array of LoadBasedAutoScalingConfiguration objects that describe each layer's configuration. @@ -2570,7 +2570,7 @@ extension Opsworks { } public struct RegisterRdsDbInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: true, type: .string), AWSShapeMember(label: "RdsDbInstanceArn", required: true, type: .string), AWSShapeMember(label: "DbPassword", required: true, type: .string), @@ -2601,7 +2601,7 @@ extension Opsworks { } public struct CreateInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: false, type: .string) ] /// The instance ID. @@ -2617,7 +2617,7 @@ extension Opsworks { } public struct Deployment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CompletedAt", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "CreatedAt", required: false, type: .string), @@ -2687,7 +2687,7 @@ extension Opsworks { } public struct RegisterInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceIdentity", required: false, type: .structure), AWSShapeMember(label: "Hostname", required: false, type: .string), AWSShapeMember(label: "StackId", required: true, type: .string), @@ -2733,7 +2733,7 @@ extension Opsworks { } public struct DescribeAppsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "AppIds", required: false, type: .list) ] @@ -2754,7 +2754,7 @@ extension Opsworks { } public struct Source: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SshKey", required: false, type: .string), AWSShapeMember(label: "Username", required: false, type: .string), AWSShapeMember(label: "Password", required: false, type: .string), @@ -2795,7 +2795,7 @@ extension Opsworks { } public struct DescribeRaidArraysResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RaidArrays", required: false, type: .list) ] /// A RaidArrays object that describes the specified RAID arrays. @@ -2811,7 +2811,7 @@ extension Opsworks { } public struct DescribeStacksResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Stacks", required: false, type: .list) ] /// An array of Stack objects that describe the stacks. @@ -2827,7 +2827,7 @@ extension Opsworks { } public struct DescribeServiceErrorsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "ServiceErrorIds", required: false, type: .list) @@ -2853,7 +2853,7 @@ extension Opsworks { } public struct DescribeVolumesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RaidArrayId", required: false, type: .string), AWSShapeMember(label: "VolumeIds", required: false, type: .list), AWSShapeMember(label: "StackId", required: false, type: .string), @@ -2884,7 +2884,7 @@ extension Opsworks { } public struct AutoScalingThresholds: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MemoryThreshold", required: false, type: .double), AWSShapeMember(label: "CpuThreshold", required: false, type: .double), AWSShapeMember(label: "IgnoreMetricsTime", required: false, type: .integer), @@ -2959,7 +2959,7 @@ extension Opsworks { } public struct DescribeEcsClustersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EcsClusterArns", required: false, type: .list), AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -2990,7 +2990,7 @@ extension Opsworks { } public struct UpdateLayerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Shortname", required: false, type: .string), AWSShapeMember(label: "Packages", required: false, type: .list), AWSShapeMember(label: "LifecycleEventConfiguration", required: false, type: .structure), @@ -3085,7 +3085,7 @@ extension Opsworks { } public struct DescribeStackProvisioningParametersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .map), AWSShapeMember(label: "AgentInstallerUrl", required: false, type: .string) ] @@ -3106,7 +3106,7 @@ extension Opsworks { } public struct UnassignInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string) ] /// The instance ID. @@ -3133,7 +3133,7 @@ extension Opsworks { } public struct Stack: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultOs", required: false, type: .string), AWSShapeMember(label: "UseOpsworksSecurityGroups", required: false, type: .boolean), AWSShapeMember(label: "Arn", required: false, type: .string), @@ -3253,7 +3253,7 @@ extension Opsworks { } public struct StartStackRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: true, type: .string) ] /// The stack ID. @@ -3269,7 +3269,7 @@ extension Opsworks { } public struct ReportedOs: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Family", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .string) @@ -3295,7 +3295,7 @@ extension Opsworks { } public struct Recipes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Undeploy", required: false, type: .list), AWSShapeMember(label: "Configure", required: false, type: .list), AWSShapeMember(label: "Setup", required: false, type: .list), @@ -3337,7 +3337,7 @@ extension Opsworks { } public struct SetPermissionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Level", required: false, type: .string), AWSShapeMember(label: "IamUserArn", required: true, type: .string), AWSShapeMember(label: "AllowSsh", required: false, type: .boolean), @@ -3373,7 +3373,7 @@ extension Opsworks { } public struct DescribeTimeBasedAutoScalingResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TimeBasedAutoScalingConfigurations", required: false, type: .list) ] /// An array of TimeBasedAutoScalingConfiguration objects that describe the configuration for the specified instances. @@ -3389,7 +3389,7 @@ extension Opsworks { } public struct DescribeElasticLoadBalancersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "LayerIds", required: false, type: .list) ] @@ -3410,7 +3410,7 @@ extension Opsworks { } public struct UpdateVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MountPoint", required: false, type: .string), AWSShapeMember(label: "VolumeId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) @@ -3436,7 +3436,7 @@ extension Opsworks { } public struct RegisterVolumeResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeId", required: false, type: .string) ] /// The volume ID. @@ -3452,7 +3452,7 @@ extension Opsworks { } public struct DescribeMyUserProfileResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserProfile", required: false, type: .structure) ] /// A UserProfile object that describes the user's SSH information. @@ -3468,7 +3468,7 @@ extension Opsworks { } public struct RegisterElasticIpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticIp", required: true, type: .string), AWSShapeMember(label: "StackId", required: true, type: .string) ] @@ -3489,7 +3489,7 @@ extension Opsworks { } public struct DescribeCommandsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CommandIds", required: false, type: .list), AWSShapeMember(label: "DeploymentId", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string) @@ -3515,7 +3515,7 @@ extension Opsworks { } public struct DescribeAgentVersionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AgentVersions", required: false, type: .list) ] /// The agent versions for the specified stack or configuration manager. Note that this value is the complete version number, not the abbreviated number used by the console. @@ -3539,7 +3539,7 @@ extension Opsworks { } public struct CreateStackRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultOs", required: false, type: .string), AWSShapeMember(label: "ChefConfiguration", required: false, type: .structure), AWSShapeMember(label: "ServiceRoleArn", required: true, type: .string), @@ -3644,7 +3644,7 @@ extension Opsworks { } public struct DeleteLayerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LayerId", required: true, type: .string) ] /// The layer ID. @@ -3660,7 +3660,7 @@ extension Opsworks { } public struct RegisterEcsClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: true, type: .string), AWSShapeMember(label: "EcsClusterArn", required: true, type: .string) ] @@ -3681,7 +3681,7 @@ extension Opsworks { } public struct UpdateRdsDbInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DbPassword", required: false, type: .string), AWSShapeMember(label: "DbUser", required: false, type: .string), AWSShapeMember(label: "RdsDbInstanceArn", required: true, type: .string) @@ -3707,7 +3707,7 @@ extension Opsworks { } public struct ChefConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ManageBerkshelf", required: false, type: .boolean), AWSShapeMember(label: "BerkshelfVersion", required: false, type: .string) ] @@ -3728,7 +3728,7 @@ extension Opsworks { } public struct DisassociateElasticIpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticIp", required: true, type: .string) ] /// The Elastic IP address. @@ -3744,7 +3744,7 @@ extension Opsworks { } public struct ListTagsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .map) ] @@ -3765,7 +3765,7 @@ extension Opsworks { } public struct AttachElasticLoadBalancerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LayerId", required: true, type: .string), AWSShapeMember(label: "ElasticLoadBalancerName", required: true, type: .string) ] @@ -3786,7 +3786,7 @@ extension Opsworks { } public struct EnvironmentVariable: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Key", required: true, type: .string), AWSShapeMember(label: "Secure", required: false, type: .boolean) @@ -3812,7 +3812,7 @@ extension Opsworks { } public struct DescribeLoadBasedAutoScalingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LayerIds", required: true, type: .list) ] /// An array of layer IDs. @@ -3835,7 +3835,7 @@ extension Opsworks { } public struct RdsDbInstance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "Address", required: false, type: .string), AWSShapeMember(label: "DbUser", required: false, type: .string), @@ -3891,7 +3891,7 @@ extension Opsworks { } public struct DescribeStackSummaryResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackSummary", required: false, type: .structure) ] /// A StackSummary object that contains the results. @@ -3907,7 +3907,7 @@ extension Opsworks { } public struct Volume: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Device", required: false, type: .string), AWSShapeMember(label: "VolumeId", required: false, type: .string), AWSShapeMember(label: "Region", required: false, type: .string), @@ -3983,7 +3983,7 @@ extension Opsworks { } public struct SelfUserProfile: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamUserArn", required: false, type: .string), AWSShapeMember(label: "SshPublicKey", required: false, type: .string), AWSShapeMember(label: "SshUsername", required: false, type: .string), @@ -4014,7 +4014,7 @@ extension Opsworks { } public struct EcsCluster: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EcsClusterName", required: false, type: .string), AWSShapeMember(label: "RegisteredAt", required: false, type: .string), AWSShapeMember(label: "StackId", required: false, type: .string), @@ -4045,7 +4045,7 @@ extension Opsworks { } public struct DescribeStackSummaryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: true, type: .string) ] /// The stack ID. @@ -4061,7 +4061,7 @@ extension Opsworks { } public struct CreateLayerResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LayerId", required: false, type: .string) ] /// The layer ID. @@ -4077,7 +4077,7 @@ extension Opsworks { } public struct TemporaryCredential: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ValidForInMinutes", required: false, type: .integer), AWSShapeMember(label: "Password", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string), @@ -4108,7 +4108,7 @@ extension Opsworks { } public struct DeregisterElasticIpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticIp", required: true, type: .string) ] /// The Elastic IP address. @@ -4124,7 +4124,7 @@ extension Opsworks { } public struct CreateDeploymentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LayerIds", required: false, type: .list), AWSShapeMember(label: "StackId", required: true, type: .string), AWSShapeMember(label: "Comment", required: false, type: .string), @@ -4170,7 +4170,7 @@ extension Opsworks { } public struct DescribeTimeBasedAutoScalingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceIds", required: true, type: .list) ] /// An array of instance IDs. @@ -4186,7 +4186,7 @@ extension Opsworks { } public struct StopStackRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: true, type: .string) ] /// The stack ID. @@ -4202,7 +4202,7 @@ extension Opsworks { } public struct DescribeRdsDbInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RdsDbInstances", required: false, type: .list) ] /// An a array of RdsDbInstance objects that describe the instances. @@ -4218,7 +4218,7 @@ extension Opsworks { } public struct ServiceError: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CreatedAt", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "StackId", required: false, type: .string), @@ -4259,7 +4259,7 @@ extension Opsworks { } public struct RebootInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string) ] /// The instance ID. @@ -4275,7 +4275,7 @@ extension Opsworks { } public struct CreateDeploymentResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeploymentId", required: false, type: .string) ] /// The deployment ID, which can be used with other requests to identify the deployment. @@ -4291,7 +4291,7 @@ extension Opsworks { } public struct DescribeServiceErrorsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceErrors", required: false, type: .list) ] /// An array of ServiceError objects that describe the specified service errors. @@ -4307,7 +4307,7 @@ extension Opsworks { } public struct DescribePermissionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: false, type: .string), AWSShapeMember(label: "IamUserArn", required: false, type: .string) ] @@ -4328,7 +4328,7 @@ extension Opsworks { } public struct AgentVersion: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConfigurationManager", required: false, type: .structure), AWSShapeMember(label: "Version", required: false, type: .string) ] @@ -4349,7 +4349,7 @@ extension Opsworks { } public struct DataSource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "DatabaseName", required: false, type: .string) @@ -4375,7 +4375,7 @@ extension Opsworks { } public struct TimeBasedAutoScalingConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "AutoScalingSchedule", required: false, type: .structure) ] @@ -4396,7 +4396,7 @@ extension Opsworks { } public struct DescribeElasticLoadBalancersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticLoadBalancers", required: false, type: .list) ] /// A list of ElasticLoadBalancer objects that describe the specified Elastic Load Balancing instances. @@ -4420,7 +4420,7 @@ extension Opsworks { } public struct GetHostnameSuggestionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Hostname", required: false, type: .string), AWSShapeMember(label: "LayerId", required: false, type: .string) ] @@ -4457,7 +4457,7 @@ extension Opsworks { } public struct EbsBlockDevice: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .string), AWSShapeMember(label: "VolumeSize", required: false, type: .integer), AWSShapeMember(label: "DeleteOnTermination", required: false, type: .boolean), @@ -4493,7 +4493,7 @@ extension Opsworks { } public struct BlockDeviceMapping: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NoDevice", required: false, type: .string), AWSShapeMember(label: "VirtualName", required: false, type: .string), AWSShapeMember(label: "DeviceName", required: false, type: .string), @@ -4524,7 +4524,7 @@ extension Opsworks { } public struct DeregisterRdsDbInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RdsDbInstanceArn", required: true, type: .string) ] /// The Amazon RDS instance's ARN. @@ -4540,7 +4540,7 @@ extension Opsworks { } public struct UpdateStackRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultOs", required: false, type: .string), AWSShapeMember(label: "ChefConfiguration", required: false, type: .structure), AWSShapeMember(label: "ServiceRoleArn", required: false, type: .string), @@ -4640,7 +4640,7 @@ extension Opsworks { } public struct UpdateElasticIpRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticIp", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -4661,7 +4661,7 @@ extension Opsworks { } public struct InstanceIdentity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Document", required: false, type: .string), AWSShapeMember(label: "Signature", required: false, type: .string) ] @@ -4682,7 +4682,7 @@ extension Opsworks { } public struct DescribeInstancesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Instances", required: false, type: .list) ] /// An array of Instance objects that describe the instances. @@ -4698,7 +4698,7 @@ extension Opsworks { } public struct LifecycleEventConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Shutdown", required: false, type: .structure) ] /// A ShutdownEventConfiguration object that specifies the Shutdown event configuration. @@ -4714,7 +4714,7 @@ extension Opsworks { } public struct DescribeStackProvisioningParametersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: true, type: .string) ] /// The stack ID @@ -4730,7 +4730,7 @@ extension Opsworks { } public struct DeleteAppRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AppId", required: true, type: .string) ] /// The app ID. @@ -4746,7 +4746,7 @@ extension Opsworks { } public struct DescribeDeploymentsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Deployments", required: false, type: .list) ] /// An array of Deployment objects that describe the deployments. @@ -4762,7 +4762,7 @@ extension Opsworks { } public struct DescribePermissionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Permissions", required: false, type: .list) ] /// An array of Permission objects that describe the stack permissions. If the request object contains only a stack ID, the array contains a Permission object with permissions for each of the stack IAM ARNs. If the request object contains only an IAM ARN, the array contains a Permission object with permissions for each of the user's stack IDs. If the request contains a stack ID and an IAM ARN, the array contains a single Permission object with permissions for the specified stack and IAM ARN. @@ -4778,7 +4778,7 @@ extension Opsworks { } public struct RegisterVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StackId", required: true, type: .string), AWSShapeMember(label: "Ec2VolumeId", required: false, type: .string) ] @@ -4799,7 +4799,7 @@ extension Opsworks { } public struct CloudWatchLogsConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LogStreams", required: false, type: .list), AWSShapeMember(label: "Enabled", required: false, type: .boolean) ] @@ -4820,7 +4820,7 @@ extension Opsworks { } public struct StartInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string) ] /// The instance ID. @@ -4836,7 +4836,7 @@ extension Opsworks { } public struct ListTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ResourceArn", required: true, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -4862,7 +4862,7 @@ extension Opsworks { } public struct Permission: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Level", required: false, type: .string), AWSShapeMember(label: "IamUserArn", required: false, type: .string), AWSShapeMember(label: "AllowSsh", required: false, type: .boolean), @@ -4898,7 +4898,7 @@ extension Opsworks { } public struct AssignVolumeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "VolumeId", required: true, type: .string) ] @@ -4919,7 +4919,7 @@ extension Opsworks { } public struct DeleteUserProfileRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamUserArn", required: true, type: .string) ] /// The user's IAM ARN. This can also be a federated user's ARN. @@ -4935,7 +4935,7 @@ extension Opsworks { } public struct ElasticLoadBalancer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: false, type: .list), AWSShapeMember(label: "AvailabilityZones", required: false, type: .list), AWSShapeMember(label: "StackId", required: false, type: .string), @@ -4991,7 +4991,7 @@ extension Opsworks { } public struct DescribeElasticIpsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticIps", required: false, type: .list) ] /// An ElasticIps object that describes the specified Elastic IP addresses. diff --git a/Sources/AWSSDKSwift/Services/opsworkscm/Opsworkscm_API.swift b/Sources/AWSSDKSwift/Services/opsworkscm/Opsworkscm_API.swift index 1bc70ce59ab..7f2fa4b65e3 100644 --- a/Sources/AWSSDKSwift/Services/opsworkscm/Opsworkscm_API.swift +++ b/Sources/AWSSDKSwift/Services/opsworkscm/Opsworkscm_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -AWS OpsWorks for Chef Automate AWS OpsWorks for Chef Automate is a service that runs and manages configuration management servers. Glossary of terms Server: A configuration management server that can be highly-available. The configuration manager runs on your instances by using various AWS services, such as Amazon Elastic Compute Cloud (EC2), and potentially Amazon Relational Database Service (RDS). A server is a generic abstraction over the configuration manager that you want to use, much like Amazon RDS. In AWS OpsWorks for Chef Automate, you do not start or stop servers. After you create servers, they continue to run until they are deleted. Engine: The specific configuration manager that you want to use (such as Chef) is the engine. Backup: This is an application-level backup of the data that the configuration manager stores. A backup creates a .tar.gz file that is stored in an Amazon Simple Storage Service (S3) bucket in your account. AWS OpsWorks for Chef Automate creates the S3 bucket when you launch the first instance. A backup maintains a snapshot of all of a server's important attributes at the time of the backup. Events: Events are always related to a server. Events are written during server creation, when health checks run, when backups are created, etc. When you delete a server, the server's events are also deleted. AccountAttributes: Every account has attributes that are assigned in the AWS OpsWorks for Chef Automate database. These attributes store information about configuration limits (servers, backups, etc.) and your customer account. Endpoints AWS OpsWorks for Chef Automate supports the following endpoints, all HTTPS. You must connect to one of the following endpoints. Chef servers can only be accessed or managed within the endpoint in which they are created. opsworks-cm.us-east-1.amazonaws.com opsworks-cm.us-west-2.amazonaws.com opsworks-cm.eu-west-1.amazonaws.com Throttling limits All API operations allow for five requests per second with a burst of 10 requests per second. +AWS OpsWorks CM AWS OpsWorks for configuration management (CM) is a service that runs and manages configuration management servers. Glossary of terms Server: A configuration management server that can be highly-available. The configuration management server runs on an Amazon Elastic Compute Cloud (EC2) instance, and may use various other AWS services, such as Amazon Relational Database Service (RDS) and Elastic Load Balancing. A server is a generic abstraction over the configuration manager that you want to use, much like Amazon RDS. In AWS OpsWorks CM, you do not start or stop servers. After you create servers, they continue to run until they are deleted. Engine: The engine is the specific configuration manager that you want to use. Valid values in this release include Chef and Puppet. Backup: This is an application-level backup of the data that the configuration manager stores. AWS OpsWorks CM creates an S3 bucket for backups when you launch the first server. A backup maintains a snapshot of a server's configuration-related attributes at the time the backup starts. Events: Events are always related to a server. Events are written during server creation, when health checks run, when backups are created, when system maintenance is performed, etc. When you delete a server, the server's events are also deleted. Account attributes: Every account has attributes that are assigned in the AWS OpsWorks CM database. These attributes store information about configuration limits (servers, backups, etc.) and your customer account. Endpoints AWS OpsWorks CM supports the following endpoints, all HTTPS. You must connect to one of the following endpoints. Your servers can only be accessed or managed within the endpoint in which they are created. opsworks-cm.us-east-1.amazonaws.com opsworks-cm.us-west-2.amazonaws.com opsworks-cm.eu-west-1.amazonaws.com Throttling limits All API operations allow for five requests per second with a burst of 10 requests per second. */ public struct Opsworkscm { @@ -45,7 +45,7 @@ public struct Opsworkscm { return try client.send(operation: "RestoreServer", path: "/", httpMethod: "POST", input: input) } - /// Creates and immedately starts a new server. The server is ready to use when it is in the HEALTHY state. By default, you can create a maximum of 10 servers. This operation is asynchronous. A LimitExceededException is thrown when you have created the maximum number of servers (10). A ResourceAlreadyExistsException is thrown when a server with the same name already exists in the account. A ResourceNotFoundException is thrown when you specify a backup ID that is not valid or is for a backup that does not exist. A ValidationException is thrown when parameters of the request are not valid. If you do not specify a security group by adding the SecurityGroupIds parameter, AWS OpsWorks creates a new security group. The default security group opens the Chef server to the world on TCP port 443. If a KeyName is present, AWS OpsWorks enables SSH access. SSH is also open to the world on TCP port 22. By default, the Chef Server is accessible from any IP address. We recommend that you update your security group rules to allow access from known IP addresses and address ranges only. To edit security group rules, open Security Groups in the navigation pane of the EC2 management console. + /// Creates and immedately starts a new server. The server is ready to use when it is in the HEALTHY state. By default, you can create a maximum of 10 servers. This operation is asynchronous. A LimitExceededException is thrown when you have created the maximum number of servers (10). A ResourceAlreadyExistsException is thrown when a server with the same name already exists in the account. A ResourceNotFoundException is thrown when you specify a backup ID that is not valid or is for a backup that does not exist. A ValidationException is thrown when parameters of the request are not valid. If you do not specify a security group by adding the SecurityGroupIds parameter, AWS OpsWorks creates a new security group. Chef Automate: The default security group opens the Chef server to the world on TCP port 443. If a KeyName is present, AWS OpsWorks enables SSH access. SSH is also open to the world on TCP port 22. Puppet Enterprise: The default security group opens TCP ports 22, 443, 4433, 8140, 8142, 8143, and 8170. If a KeyName is present, AWS OpsWorks enables SSH access. SSH is also open to the world on TCP port 22. By default, your server is accessible from any IP address. We recommend that you update your security group rules to allow access from known IP addresses and address ranges only. To edit security group rules, open Security Groups in the navigation pane of the EC2 management console. public func createServer(_ input: CreateServerRequest) throws -> CreateServerResponse { return try client.send(operation: "CreateServer", path: "/", httpMethod: "POST", input: input) } @@ -55,7 +55,7 @@ public struct Opsworkscm { return try client.send(operation: "StartMaintenance", path: "/", httpMethod: "POST", input: input) } - /// Disassociates a node from a Chef server, and removes the node from the Chef server's managed nodes. After a node is disassociated, the node key pair is no longer valid for accessing the Chef API. For more information about how to associate a node, see AssociateNode. A node can can only be disassociated from a server that is in a HEALTHY state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. + /// Disassociates a node from an AWS OpsWorks CM server, and removes the node from the server's managed nodes. After a node is disassociated, the node key pair is no longer valid for accessing the configuration manager's API. For more information about how to associate a node, see AssociateNode. A node can can only be disassociated from a server that is in a HEALTHY state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. public func disassociateNode(_ input: DisassociateNodeRequest) throws -> DisassociateNodeResponse { return try client.send(operation: "DisassociateNode", path: "/", httpMethod: "POST", input: input) } @@ -70,12 +70,12 @@ public struct Opsworkscm { return try client.send(operation: "DescribeAccountAttributes", path: "/", httpMethod: "POST", input: input) } - /// Updates engine-specific attributes on a specified server. The server enters the MODIFYING state when this operation is in progress. Only one update can occur at a time. You can use this command to reset the Chef server's private key (CHEF_PIVOTAL_KEY). This operation is asynchronous. This operation can only be called for servers in HEALTHY or UNHEALTHY states. Otherwise, an InvalidStateException is raised. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. + /// Updates engine-specific attributes on a specified server. The server enters the MODIFYING state when this operation is in progress. Only one update can occur at a time. You can use this command to reset a Chef server's private key (CHEF_PIVOTAL_KEY), a Chef server's admin password (CHEF_DELIVERY_ADMIN_PASSWORD), or a Puppet server's admin password (PUPPET_ADMIN_PASSWORD). This operation is asynchronous. This operation can only be called for servers in HEALTHY or UNHEALTHY states. Otherwise, an InvalidStateException is raised. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. public func updateServerEngineAttributes(_ input: UpdateServerEngineAttributesRequest) throws -> UpdateServerEngineAttributesResponse { return try client.send(operation: "UpdateServerEngineAttributes", path: "/", httpMethod: "POST", input: input) } - /// Lists all configuration management servers that are identified with your account. Only the stored results from Amazon DynamoDB are returned. AWS OpsWorks for Chef Automate does not query other services. This operation is synchronous. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. + /// Lists all configuration management servers that are identified with your account. Only the stored results from Amazon DynamoDB are returned. AWS OpsWorks CM does not query other services. This operation is synchronous. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. public func describeServers(_ input: DescribeServersRequest) throws -> DescribeServersResponse { return try client.send(operation: "DescribeServers", path: "/", httpMethod: "POST", input: input) } @@ -90,12 +90,12 @@ public struct Opsworkscm { return try client.send(operation: "DescribeEvents", path: "/", httpMethod: "POST", input: input) } - /// Associates a new node with the Chef server. This command is an alternative to knife bootstrap. For more information about how to disassociate a node, see DisassociateNode. A node can can only be associated with servers that are in a HEALTHY state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. The AssociateNode API call can be integrated into Auto Scaling configurations, AWS Cloudformation templates, or the user data of a server's instance. Example: aws opsworks-cm associate-node --server-name MyServer --node-name MyManagedNode --engine-attributes "Name=MyOrganization,Value=default" "Name=Chef_node_public_key,Value=Public_key_contents" + /// Associates a new node with the server. For more information about how to disassociate a node, see DisassociateNode. On a Chef server: This command is an alternative to knife bootstrap. Example (Chef): aws opsworks-cm associate-node --server-name MyServer --node-name MyManagedNode --engine-attributes "Name=CHEF_ORGANIZATION,Value=default" "Name=CHEF_NODE_PUBLIC_KEY,Value=public-key-pem" On a Puppet server, this command is an alternative to the puppet cert sign command that signs a Puppet node CSR. Example (Chef): aws opsworks-cm associate-node --server-name MyServer --node-name MyManagedNode --engine-attributes "Name=PUPPET_NODE_CSR,Value=csr-pem" A node can can only be associated with servers that are in a HEALTHY state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. The AssociateNode API call can be integrated into Auto Scaling configurations, AWS Cloudformation templates, or the user data of a server's instance. public func associateNode(_ input: AssociateNodeRequest) throws -> AssociateNodeResponse { return try client.send(operation: "AssociateNode", path: "/", httpMethod: "POST", input: input) } - /// Deletes the server and the underlying AWS CloudFormation stack (including the server's EC2 instance). When you run this command, the server state is updated to DELETING. After the server is deleted, it is no longer returned by DescribeServer requests. If the AWS CloudFormation stack cannot be deleted, the server cannot be deleted. This operation is asynchronous. An InvalidStateException is thrown when a server deletion is already in progress. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. + /// Deletes the server and the underlying AWS CloudFormation stacks (including the server's EC2 instance). When you run this command, the server state is updated to DELETING. After the server is deleted, it is no longer returned by DescribeServer requests. If the AWS CloudFormation stack cannot be deleted, the server cannot be deleted. This operation is asynchronous. An InvalidStateException is thrown when a server deletion is already in progress. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. public func deleteServer(_ input: DeleteServerRequest) throws -> DeleteServerResponse { return try client.send(operation: "DeleteServer", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/opsworkscm/Opsworkscm_Shapes.swift b/Sources/AWSSDKSwift/Services/opsworkscm/Opsworkscm_Shapes.swift index a9c8682cd36..be902726be9 100644 --- a/Sources/AWSSDKSwift/Services/opsworkscm/Opsworkscm_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/opsworkscm/Opsworkscm_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Opsworkscm { public struct DescribeAccountAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: false, type: .list) ] /// The attributes that are currently set for the account. @@ -22,7 +22,7 @@ extension Opsworkscm { } public struct DescribeEventsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServerEvents", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -43,7 +43,7 @@ extension Opsworkscm { } public struct AssociateNodeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeAssociationStatusToken", required: false, type: .string) ] /// Contains a token which can be passed to the DescribeNodeAssociationStatus API call to get the status of the association request. @@ -59,7 +59,7 @@ extension Opsworkscm { } public struct CreateServerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EngineModel", required: false, type: .string), AWSShapeMember(label: "EngineAttributes", required: false, type: .list), AWSShapeMember(label: "BackupId", required: false, type: .string), @@ -78,33 +78,33 @@ extension Opsworkscm { AWSShapeMember(label: "KeyPair", required: false, type: .string), AWSShapeMember(label: "AssociatePublicIpAddress", required: false, type: .boolean) ] - /// The engine model, or option. Valid values include Single. + /// The engine model of the server. Valid values in this release include Monolithic for Puppet and Single for Chef. public let engineModel: String? - /// Optional engine attributes on a specified server. Attributes accepted in a createServer request: CHEF_PIVOTAL_KEY: A base64-encoded RSA private key that is not stored by AWS OpsWorks for Chef. This private key is required to access the Chef API. When no CHEF_PIVOTAL_KEY is set, one is generated and returned in the response. CHEF_DELIVERY_ADMIN_PASSWORD: The password for the administrative user in the Chef Automate GUI. The password length is a minimum of eight characters, and a maximum of 32. The password can contain letters, numbers, and special characters (!/@#$%^&+=_). The password must contain at least one lower case letter, one upper case letter, one number, and one special character. When no CHEF_DELIVERY_ADMIN_PASSWORD is set, one is generated and returned in the response. + /// Optional engine attributes on a specified server. Attributes accepted in a Chef createServer request: CHEF_PIVOTAL_KEY: A base64-encoded RSA private key that is not stored by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API. When no CHEF_PIVOTAL_KEY is set, one is generated and returned in the response. CHEF_DELIVERY_ADMIN_PASSWORD: The password for the administrative user in the Chef Automate GUI. The password length is a minimum of eight characters, and a maximum of 32. The password can contain letters, numbers, and special characters (!/@#$%^&+=_). The password must contain at least one lower case letter, one upper case letter, one number, and one special character. When no CHEF_DELIVERY_ADMIN_PASSWORD is set, one is generated and returned in the response. Attributes accepted in a Puppet createServer request: PUPPET_ADMIN_PASSWORD: To work with the Puppet Enterprise console, a password must use ASCII characters. public let engineAttributes: [EngineAttribute]? - /// If you specify this field, AWS OpsWorks for Chef Automate creates the server by using the backup represented by BackupId. + /// If you specify this field, AWS OpsWorks CM creates the server by using the backup represented by BackupId. public let backupId: String? - /// The service role that the AWS OpsWorks for Chef Automate service backend uses to work with your account. Although the AWS OpsWorks management console typically creates the service role for you, if you are using the AWS CLI or API commands, run the service-role-creation.yaml AWS CloudFormation template, located at https://s3.amazonaws.com/opsworks-stuff/latest/service-role-creation.yaml. This template creates a CloudFormation stack that includes the service role that you need. + /// The service role that the AWS OpsWorks CM service backend uses to work with your account. Although the AWS OpsWorks management console typically creates the service role for you, if you are using the AWS CLI or API commands, run the service-role-creation.yaml AWS CloudFormation template, located at https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml. This template creates a CloudFormation stack that includes the service role and instance profile that you need. public let serviceRoleArn: String - /// A list of security group IDs to attach to the Amazon EC2 instance. If you add this parameter, the specified security groups must be within the VPC that is specified by SubnetIds. If you do not specify this parameter, AWS OpsWorks for Chef Automate creates one new security group that uses TCP ports 22 and 443, open to 0.0.0.0/0 (everyone). + /// A list of security group IDs to attach to the Amazon EC2 instance. If you add this parameter, the specified security groups must be within the VPC that is specified by SubnetIds. If you do not specify this parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22 and 443, open to 0.0.0.0/0 (everyone). public let securityGroupIds: [String]? - /// The Amazon EC2 instance type to use. Valid values must be specified in the following format: ^([cm][34]|t2).* For example, m4.large. Valid values are t2.medium, m4.large, or m4.2xlarge. + /// The Amazon EC2 instance type to use. For example, m4.large. Recommended instance types include t2.medium and greater, m4.*, or c4.xlarge and greater. public let instanceType: String - /// The number of automated backups that you want to keep. Whenever a new backup is created, AWS OpsWorks for Chef Automate deletes the oldest backups if this number is exceeded. The default value is 1. + /// The number of automated backups that you want to keep. Whenever a new backup is created, AWS OpsWorks CM deletes the oldest backups if this number is exceeded. The default value is 1. public let backupRetentionCount: Int32? /// The IDs of subnets in which to launch the server EC2 instance. Amazon EC2-Classic customers: This field is required. All servers must run within a VPC. The VPC must have "Auto Assign Public IP" enabled. EC2-VPC customers: This field is optional. If you do not specify subnet IDs, your EC2 instances are created in a default subnet that is selected by Amazon EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP" enabled. For more information about supported Amazon EC2 platforms, see Supported Platforms. public let subnetIds: [String]? - /// The start time for a one-hour period during which AWS OpsWorks for Chef Automate backs up application-level data on your server if automated backups are enabled. Valid values must be specified in one of the following formats: HH:MM for daily backups DDD:HH:MM for weekly backups The specified time is in coordinated universal time (UTC). The default value is a random, daily start time. Example: 08:00, which represents a daily start time of 08:00 UTC. Example: Mon:08:00, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.) + /// The start time for a one-hour period during which AWS OpsWorks CM backs up application-level data on your server if automated backups are enabled. Valid values must be specified in one of the following formats: HH:MM for daily backups DDD:HH:MM for weekly backups The specified time is in coordinated universal time (UTC). The default value is a random, daily start time. Example: 08:00, which represents a daily start time of 08:00 UTC. Example: Mon:08:00, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.) public let preferredBackupWindow: String? - /// The major release version of the engine that you want to use. Values depend on the engine that you choose. + /// The major release version of the engine that you want to use. For a Chef server, the valid value for EngineVersion is currently 12. For a Puppet server, the valid value is 2017. public let engineVersion: String? /// The ARN of the instance profile that your Amazon EC2 instances use. Although the AWS OpsWorks console typically creates the instance profile for you, if you are using API commands instead, run the service-role-creation.yaml AWS CloudFormation template, located at https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml. This template creates a CloudFormation stack that includes the instance profile you need. public let instanceProfileArn: String - /// The start time for a one-hour period each week during which AWS OpsWorks for Chef Automate performs maintenance on the instance. Valid values must be specified in the following format: DDD:HH:MM. The specified time is in coordinated universal time (UTC). The default value is a random one-hour period on Tuesday, Wednesday, or Friday. See TimeWindowDefinition for more information. Example: Mon:08:00, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.) + /// The start time for a one-hour period each week during which AWS OpsWorks CM performs maintenance on the instance. Valid values must be specified in the following format: DDD:HH:MM. The specified time is in coordinated universal time (UTC). The default value is a random one-hour period on Tuesday, Wednesday, or Friday. See TimeWindowDefinition for more information. Example: Mon:08:00, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.) public let preferredMaintenanceWindow: String? /// The name of the server. The server name must be unique within your AWS account, within each region. Server names must start with a letter; then letters, numbers, or hyphens (-) are allowed, up to a maximum of 40 characters. public let serverName: String - /// The configuration management engine to use. Valid values include Chef. + /// The configuration management engine to use. Valid values include Chef and Puppet. public let engine: String? /// Enable or disable scheduled backups. Valid values are true or false. The default value is true. public let disableAutomatedBackup: Bool? @@ -155,7 +155,7 @@ extension Opsworkscm { } public struct CreateBackupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServerName", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] @@ -193,7 +193,7 @@ extension Opsworkscm { } public struct UpdateServerEngineAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: true, type: .string), AWSShapeMember(label: "AttributeValue", required: false, type: .string), AWSShapeMember(label: "ServerName", required: true, type: .string) @@ -219,14 +219,14 @@ extension Opsworkscm { } public struct AssociateNodeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeName", required: true, type: .string), AWSShapeMember(label: "EngineAttributes", required: true, type: .list), AWSShapeMember(label: "ServerName", required: true, type: .string) ] - /// The name of the Chef client node. + /// The name of the node. public let nodeName: String - /// Engine attributes used for associating the node. Attributes accepted in a AssociateNode request: CHEF_ORGANIZATION: The Chef organization with which the node is associated. By default only one organization named default can exist. CHEF_NODE_PUBLIC_KEY: A PEM-formatted public key. This key is required for the chef-client agent to access the Chef API. + /// Engine attributes used for associating the node. Attributes accepted in a AssociateNode request for Chef CHEF_ORGANIZATION: The Chef organization with which the node is associated. By default only one organization named default can exist. CHEF_NODE_PUBLIC_KEY: A PEM-formatted public key. This key is required for the chef-client agent to access the Chef API. Attributes accepted in a AssociateNode request for Puppet PUPPET_NODE_CSR: A PEM-formatted certificate-signing request (CSR) that is created by the node. public let engineAttributes: [EngineAttribute] /// The name of the server with which to associate the node. public let serverName: String @@ -252,7 +252,7 @@ extension Opsworkscm { } public struct AccountAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Maximum", required: false, type: .integer), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Used", required: false, type: .integer) @@ -278,7 +278,7 @@ extension Opsworkscm { } public struct StartMaintenanceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Server", required: false, type: .structure) ] /// Contains the response to a StartMaintenance request. @@ -294,7 +294,7 @@ extension Opsworkscm { } public struct CreateBackupResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Backup", required: false, type: .structure) ] /// Backup created by request. @@ -318,10 +318,11 @@ extension Opsworkscm { } public struct DescribeNodeAssociationStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeAssociationStatusToken", required: true, type: .string), AWSShapeMember(label: "ServerName", required: true, type: .string) ] + /// The token returned in either the AssociateNodeResponse or the DisassociateNodeResponse. public let nodeAssociationStatusToken: String /// The name of the server from which to disassociate the node. public let serverName: String @@ -338,17 +339,22 @@ extension Opsworkscm { } public struct StartMaintenanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EngineAttributes", required: false, type: .list), AWSShapeMember(label: "ServerName", required: true, type: .string) ] + /// Engine attributes that are specific to the server on which you want to run maintenance. + public let engineAttributes: [EngineAttribute]? /// The name of the server on which to run maintenance. public let serverName: String - public init(serverName: String) { + public init(engineAttributes: [EngineAttribute]? = nil, serverName: String) { + self.engineAttributes = engineAttributes self.serverName = serverName } private enum CodingKeys: String, CodingKey { + case engineAttributes = "EngineAttributes" case serverName = "ServerName" } } @@ -360,7 +366,7 @@ extension Opsworkscm { } public struct UpdateServerResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Server", required: false, type: .structure) ] /// Contains the response to a UpdateServer request. @@ -376,7 +382,7 @@ extension Opsworkscm { } public struct DisassociateNodeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeAssociationStatusToken", required: false, type: .string) ] /// Contains a token which can be passed to the DescribeNodeAssociationStatus API call to get the status of the disassociation request. @@ -392,7 +398,7 @@ extension Opsworkscm { } public struct DescribeServersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ServerName", required: false, type: .string) @@ -418,7 +424,7 @@ extension Opsworkscm { } public struct ServerEvent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LogUrl", required: false, type: .string), AWSShapeMember(label: "CreatedAt", required: false, type: .timestamp), AWSShapeMember(label: "Message", required: false, type: .string), @@ -449,7 +455,7 @@ extension Opsworkscm { } public struct DescribeBackupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServerName", required: false, type: .string), AWSShapeMember(label: "BackupId", required: false, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -490,7 +496,7 @@ extension Opsworkscm { } public struct Backup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EngineModel", required: false, type: .string), AWSShapeMember(label: "ServiceRoleArn", required: false, type: .string), AWSShapeMember(label: "S3DataSize", required: false, type: .integer), @@ -526,7 +532,7 @@ extension Opsworkscm { public let backupId: String? /// The security group IDs that are obtained from the server when the backup is created. public let securityGroupIds: [String]? - /// The version of AWS OpsWorks for Chef Automate-specific tools that is obtained from the server when the backup is created. + /// The version of AWS OpsWorks CM-specific tools that is obtained from the server when the backup is created. public let toolsVersion: String? /// The instance type that is obtained from the server when the backup is created. public let instanceType: String? @@ -621,7 +627,7 @@ extension Opsworkscm { } public struct DeleteServerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServerName", required: true, type: .string) ] /// The ID of the server to delete. @@ -637,14 +643,14 @@ extension Opsworkscm { } public struct DisassociateNodeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeName", required: true, type: .string), AWSShapeMember(label: "EngineAttributes", required: false, type: .list), AWSShapeMember(label: "ServerName", required: true, type: .string) ] - /// The name of the Chef client node. + /// The name of the client node. public let nodeName: String - /// Engine attributes used for disassociating the node. Attributes accepted in a DisassociateNode request: CHEF_ORGANIZATION: The Chef organization with which the node was associated. By default only one organization named default can exist. + /// Engine attributes that are used for disassociating the node. No attributes are required for Puppet. Attributes required in a DisassociateNode request for Chef CHEF_ORGANIZATION: The Chef organization with which the node was associated. By default only one organization named default can exist. public let engineAttributes: [EngineAttribute]? /// The name of the server from which to disassociate the node. public let serverName: String @@ -663,7 +669,7 @@ extension Opsworkscm { } public struct Server: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServerArn", required: false, type: .string), AWSShapeMember(label: "EngineModel", required: false, type: .string), AWSShapeMember(label: "EngineAttributes", required: false, type: .list), @@ -690,9 +696,9 @@ extension Opsworkscm { ] /// The ARN of the server. public let serverArn: String? - /// The engine model of the server. The valid value in this release is Single. + /// The engine model of the server. Valid values in this release include Monolithic for Puppet and Single for Chef. public let engineModel: String? - /// The response of a createServer() request returns the master credential to access the server in EngineAttributes. These credentials are not stored by AWS OpsWorks for Chef Automate; they are returned only as part of the result of createServer(). Attributes returned in a createServer response: CHEF_PIVOTAL_KEY: A base64-encoded RSA private key that is generated by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API. CHEF_STARTER_KIT: A base64-encoded ZIP file. The ZIP file contains a Chef starter kit, which includes a README, a configuration file, and the required RSA private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. From this directory, you can run Knife commands. + /// The response of a createServer() request returns the master credential to access the server in EngineAttributes. These credentials are not stored by AWS OpsWorks CM; they are returned only as part of the result of createServer(). Attributes returned in a createServer response for Chef CHEF_PIVOTAL_KEY: A base64-encoded RSA private key that is generated by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API. CHEF_STARTER_KIT: A base64-encoded ZIP file. The ZIP file contains a Chef starter kit, which includes a README, a configuration file, and the required RSA private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. From this directory, you can run Knife commands. Attributes returned in a createServer response for Puppet PUPPET_STARTER_KIT: A base64-encoded ZIP file. The ZIP file contains a Puppet starter kit, including a README and a required private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. PUPPET_ADMIN_PASSWORD: An administrator password that you can use to sign in to the Puppet Enterprise console after the server is online. public let engineAttributes: [EngineAttribute]? /// The service role ARN used to create the server. public let serviceRoleArn: String? @@ -708,7 +714,7 @@ extension Opsworkscm { public let preferredBackupWindow: String? /// Time stamp of server creation. Example 2016-07-29T13:38:47.520Z public let createdAt: TimeStamp? - /// The engine version of the server. Because Chef is the engine available in this release, the valid value for EngineVersion is 12. + /// The engine version of the server. For a Chef server, the valid value for EngineVersion is currently 12. For a Puppet server, the valid value is 2017. public let engineVersion: String? /// The instance profile ARN of the server. public let instanceProfileArn: String? @@ -718,7 +724,7 @@ extension Opsworkscm { public let preferredMaintenanceWindow: String? /// The name of the server. public let serverName: String? - /// The engine type of the server. The valid value in this release is Chef. + /// The engine type of the server. Valid values in this release include Chef and Puppet. public let engine: String? /// The status of the most recent server maintenance run. Shows SUCCESS or FAILED. public let maintenanceStatus: MaintenanceStatus? @@ -789,7 +795,7 @@ extension Opsworkscm { } public struct DescribeEventsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ServerName", required: true, type: .string) @@ -815,11 +821,11 @@ extension Opsworkscm { } public struct DescribeServersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Servers", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// Contains the response to a DescribeServers request. + /// Contains the response to a DescribeServers request. For Puppet Server: DescribeServersResponse$Servers$EngineAttributes contains PUPPET_API_CA_CERT. This is the PEM-encoded CA certificate that is used by the Puppet API over TCP port number 8140. The CA certificate is also used to sign node certificates. public let servers: [Server]? /// NextToken is a string that is returned in some command responses. It indicates that not all entries have been returned, and that you must run at least one more request to get remaining items. To get remaining results, call DescribeServers again, and assign the token from the previous results as the value of the nextToken parameter. If there are no more results, the response object's nextToken parameter value is null. Setting a nextToken value that was not returned in your previous results causes an InvalidNextTokenException to occur. public let nextToken: String? @@ -836,7 +842,7 @@ extension Opsworkscm { } public struct RestoreServerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServerName", required: true, type: .string), AWSShapeMember(label: "InstanceType", required: false, type: .string), AWSShapeMember(label: "BackupId", required: true, type: .string), @@ -867,7 +873,7 @@ extension Opsworkscm { } public struct DescribeBackupsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Backups", required: false, type: .list) ] @@ -892,23 +898,28 @@ extension Opsworkscm { } public struct DescribeNodeAssociationStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NodeAssociationStatus", required: false, type: .enum) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NodeAssociationStatus", required: false, type: .enum), + AWSShapeMember(label: "EngineAttributes", required: false, type: .list) ] /// The status of the association or disassociation request. Possible values: SUCCESS: The association or disassociation succeeded. FAILED: The association or disassociation failed. IN_PROGRESS: The association or disassociation is still in progress. public let nodeAssociationStatus: NodeAssociationStatus? + /// Attributes specific to the node association. In Puppet, the attibute PUPPET_NODE_CERT contains the signed certificate (the result of the CSR). + public let engineAttributes: [EngineAttribute]? - public init(nodeAssociationStatus: NodeAssociationStatus? = nil) { + public init(nodeAssociationStatus: NodeAssociationStatus? = nil, engineAttributes: [EngineAttribute]? = nil) { self.nodeAssociationStatus = nodeAssociationStatus + self.engineAttributes = engineAttributes } private enum CodingKeys: String, CodingKey { case nodeAssociationStatus = "NodeAssociationStatus" + case engineAttributes = "EngineAttributes" } } public struct DeleteBackupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BackupId", required: true, type: .string) ] /// The ID of the backup to delete. Run the DescribeBackups command to get a list of backup IDs. Backup IDs are in the format ServerName-yyyyMMddHHmmssSSS. @@ -924,7 +935,7 @@ extension Opsworkscm { } public struct EngineAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -945,7 +956,7 @@ extension Opsworkscm { } public struct UpdateServerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), AWSShapeMember(label: "ServerName", required: true, type: .string), AWSShapeMember(label: "DisableAutomatedBackup", required: false, type: .boolean), @@ -987,7 +998,7 @@ extension Opsworkscm { } public struct CreateServerResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Server", required: false, type: .structure) ] /// The server that is created by the request. @@ -1003,7 +1014,7 @@ extension Opsworkscm { } public struct UpdateServerEngineAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Server", required: false, type: .structure) ] /// Contains the response to an UpdateServerEngineAttributes request. diff --git a/Sources/AWSSDKSwift/Services/organizations/Organizations_API.swift b/Sources/AWSSDKSwift/Services/organizations/Organizations_API.swift index 29a434f8a75..bc8fe2f6796 100644 --- a/Sources/AWSSDKSwift/Services/organizations/Organizations_API.swift +++ b/Sources/AWSSDKSwift/Services/organizations/Organizations_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -AWS Organizations API Reference AWS Organizations is a web service that enables you to consolidate your multiple AWS accounts into an organization and centrally manage your accounts and their resources. This guide provides descriptions of the Organizations API. For more information about using this service, see the AWS Organizations User Guide. API Version This version of the Organizations API Reference documents the Organizations API version 2016-11-28. As an alternative to using the API directly, you can use one of the AWS SDKs, which consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .NET, iOS, Android, and more). The SDKs provide a convenient way to create programmatic access to AWS Organizations. For example, the SDKs take care of cryptographically signing requests, managing errors, and retrying requests automatically. For more information about the AWS SDKs, including how to download and install them, see Tools for Amazon Web Services. We recommend that you use the AWS SDKs to make programmatic API calls to Organizations. However, you also can use the Organizations Query API to make direct calls to the Organizations web service. To learn more about the Organizations Query API, see Making Query Requests in the AWS Organizations User Guide. Organizations supports GET and POST requests for all actions. That is, the API does not require you to use GET for some actions and POST for others. However, GET requests are subject to the limitation size of a URL. Therefore, for operations that require larger sizes, use a POST request. Signing Requests When you send HTTP requests to AWS, you must sign the requests so that AWS can identify who sent them. You sign requests with your AWS access key, which consists of an access key ID and a secret access key. We strongly recommend that you do not create an access key for your root account. Anyone who has the access key for your root account has unrestricted access to all the resources in your account. Instead, create an access key for an IAM user account that has administrative privileges. As another option, use AWS Security Token Service to generate temporary security credentials, and use those credentials to sign requests. To sign requests, we recommend that you use Signature Version 4. If you have an existing application that uses Signature Version 2, you do not have to update it to use Signature Version 4. However, some operations now require Signature Version 4. The documentation for operations that require version 4 indicate this requirement. When you use the AWS Command Line Interface (AWS CLI) or one of the AWS SDKs to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. In this release, each organization can have only one root. In a future release, a single organization will support multiple roots. Support and Feedback for AWS Organizations We welcome your feedback. Send your comments to feedback-awsorganizations@amazon.com or post your feedback and questions in our private AWS Organizations support forum. If you don't have access to the forum, send a request for access to the email address, along with your forum user ID. For more information about the AWS support forums, see Forums Help. Endpoint to Call When Using the CLI or the AWS API For the current release of Organizations, you must specify the us-east-1 region for all AWS API and CLI calls. You can do this in the CLI by using these parameters and commands: Use the following parameter with each command to specify both the endpoint and its region: --endpoint-url https://organizations.us-east-1.amazonaws.com Use the default endpoint, but configure your default region with this command: aws configure set default.region us-east-1 Use the following parameter with each command to specify the endpoint: --region us-east-1 For the various SDKs used to call the APIs, see the documentation for the SDK of interest to learn how to direct the requests to a specific endpoint. For more information, see Regions and Endpoints in the AWS General Reference. How examples are presented The JSON returned by the AWS Organizations service as response to your requests is returned as a single long string without line breaks or formatting whitespace. Both line breaks and whitespace are included in the examples in this guide to improve readability. When example input parameters also would result in long strings that would extend beyond the screen, we insert line breaks to enhance readability. You should always submit the input as a single JSON text string. Recording API Requests AWS Organizations supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by AWS CloudTrail, you can determine which requests were successfully made to Organizations, who made the request, when it was made, and so on. For more about AWS Organizations and its support for AWS CloudTrail, see Logging AWS Organizations Events with AWS CloudTrail in the AWS Organizations User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide. +AWS Organizations API Reference AWS Organizations is a web service that enables you to consolidate your multiple AWS accounts into an organization and centrally manage your accounts and their resources. This guide provides descriptions of the Organizations API. For more information about using this service, see the AWS Organizations User Guide. API Version This version of the Organizations API Reference documents the Organizations API version 2016-11-28. As an alternative to using the API directly, you can use one of the AWS SDKs, which consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .NET, iOS, Android, and more). The SDKs provide a convenient way to create programmatic access to AWS Organizations. For example, the SDKs take care of cryptographically signing requests, managing errors, and retrying requests automatically. For more information about the AWS SDKs, including how to download and install them, see Tools for Amazon Web Services. We recommend that you use the AWS SDKs to make programmatic API calls to Organizations. However, you also can use the Organizations Query API to make direct calls to the Organizations web service. To learn more about the Organizations Query API, see Making Query Requests in the AWS Organizations User Guide. Organizations supports GET and POST requests for all actions. That is, the API does not require you to use GET for some actions and POST for others. However, GET requests are subject to the limitation size of a URL. Therefore, for operations that require larger sizes, use a POST request. Signing Requests When you send HTTP requests to AWS, you must sign the requests so that AWS can identify who sent them. You sign requests with your AWS access key, which consists of an access key ID and a secret access key. We strongly recommend that you do not create an access key for your root account. Anyone who has the access key for your root account has unrestricted access to all the resources in your account. Instead, create an access key for an IAM user account that has administrative privileges. As another option, use AWS Security Token Service to generate temporary security credentials, and use those credentials to sign requests. To sign requests, we recommend that you use Signature Version 4. If you have an existing application that uses Signature Version 2, you do not have to update it to use Signature Version 4. However, some operations now require Signature Version 4. The documentation for operations that require version 4 indicate this requirement. When you use the AWS Command Line Interface (AWS CLI) or one of the AWS SDKs to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. In this release, each organization can have only one root. In a future release, a single organization will support multiple roots. Support and Feedback for AWS Organizations We welcome your feedback. Send your comments to feedback-awsorganizations@amazon.com or post your feedback and questions in the AWS Organizations support forum. For more information about the AWS support forums, see Forums Help. Endpoint to Call When Using the CLI or the AWS API For the current release of Organizations, you must specify the us-east-1 region for all AWS API and CLI calls. You can do this in the CLI by using these parameters and commands: Use the following parameter with each command to specify both the endpoint and its region: --endpoint-url https://organizations.us-east-1.amazonaws.com Use the default endpoint, but configure your default region with this command: aws configure set default.region us-east-1 Use the following parameter with each command to specify the endpoint: --region us-east-1 For the various SDKs used to call the APIs, see the documentation for the SDK of interest to learn how to direct the requests to a specific endpoint. For more information, see Regions and Endpoints in the AWS General Reference. How examples are presented The JSON returned by the AWS Organizations service as response to your requests is returned as a single long string without line breaks or formatting whitespace. Both line breaks and whitespace are included in the examples in this guide to improve readability. When example input parameters also would result in long strings that would extend beyond the screen, we insert line breaks to enhance readability. You should always submit the input as a single JSON text string. Recording API Requests AWS Organizations supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by AWS CloudTrail, you can determine which requests were successfully made to Organizations, who made the request, when it was made, and so on. For more about AWS Organizations and its support for AWS CloudTrail, see Logging AWS Organizations Events with AWS CloudTrail in the AWS Organizations User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide. */ public struct Organizations { @@ -27,29 +27,39 @@ public struct Organizations { ) } + /// Returns a list of the AWS services that you enabled to integrate with your organization. After a service on this list creates the resources that it requires for the integration, it can perform operations on your organization and its accounts. For more information about integrating other services with AWS Organizations, including the list of services that currently work with Organizations, see Integrating AWS Organizations with Other AWS Services in the AWS Organizations User Guide. This operation can be called only from the organization's master account. + public func listAWSServiceAccessForOrganization(_ input: ListAWSServiceAccessForOrganizationRequest) throws -> ListAWSServiceAccessForOrganizationResponse { + return try client.send(operation: "ListAWSServiceAccessForOrganization", path: "/", httpMethod: "POST", input: input) + } + /// Lists the roots that are defined in the current organization. This operation can be called only from the organization's master account. public func listRoots(_ input: ListRootsRequest) throws -> ListRootsResponse { return try client.send(operation: "ListRoots", path: "/", httpMethod: "POST", input: input) } - /// Lists the accounts in an organization that are contained by the specified target root or organizational unit (OU). If you specify the root, you get a list of all the accounts that are not in any OU. If you specify an OU, you get a list of all the accounts in only that OU, and not in any child OUs. To get a list of all accounts in the organization, use the ListAccounts operation. + /// Lists the accounts in an organization that are contained by the specified target root or organizational unit (OU). If you specify the root, you get a list of all the accounts that are not in any OU. If you specify an OU, you get a list of all the accounts in only that OU, and not in any child OUs. To get a list of all accounts in the organization, use the ListAccounts operation. This operation can be called only from the organization's master account. public func listAccountsForParent(_ input: ListAccountsForParentRequest) throws -> ListAccountsForParentResponse { return try client.send(operation: "ListAccountsForParent", path: "/", httpMethod: "POST", input: input) } - /// Lists all of the OUs or accounts that are contained in the specified parent OU or root. This operation, along with ListParents enables you to traverse the tree structure that makes up this root. + /// Lists all of the OUs or accounts that are contained in the specified parent OU or root. This operation, along with ListParents enables you to traverse the tree structure that makes up this root. This operation can be called only from the organization's master account. public func listChildren(_ input: ListChildrenRequest) throws -> ListChildrenResponse { return try client.send(operation: "ListChildren", path: "/", httpMethod: "POST", input: input) } - /// Creates an AWS account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that AWS performs in the background. If you want to check the status of the request later, you need the OperationId response element from this operation to provide as a parameter to the DescribeCreateAccountStatus operation. AWS Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole by default) that grants administrator permissions to the new account. Principals in the master account can assume the role. AWS Organizations clones the company name and address information for the new account from the organization's master account. For more information about creating accounts, see Creating an AWS Account in Your Organization in the AWS Organizations User Guide. You cannot remove accounts that are created with this operation from an organization. That also means that you cannot delete an organization that contains an account that is created with this operation. When you create a member account with this operation, you can choose whether to create the account with the IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable this, then only the account root user can access billing information. For information about how to disable this for an account, see Granting Access to Your Billing Information and Tools. This operation can be called only from the organization's master account. + /// Enables the integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations. When you enable integration, you allow the specified service to create a service-linked role in all the accounts in your organization. This allows the service to perform operations on your behalf in your organization and its accounts. We recommend that you enable integration between AWS Organizations and the specified AWS service by using the console or commands that are provided by the specified service. Doing so ensures that the service is aware that it can create the resources that are required for the integration. How the service creates those resources in the organization's accounts depends on that service. For more information, see the documentation for the other AWS service. For more information about enabling services to integrate with AWS Organizations, see Integrating AWS Organizations with Other AWS Services in the AWS Organizations User Guide. This operation can be called only from the organization's master account and only if the organization has enabled all features. + public func enableAWSServiceAccess(_ input: EnableAWSServiceAccessRequest) throws { + _ = try client.send(operation: "EnableAWSServiceAccess", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an AWS account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that AWS performs in the background. If you want to check the status of the request later, you need the OperationId response element from this operation to provide as a parameter to the DescribeCreateAccountStatus operation. The user who calls the API for an invitation to join must have the organizations:CreateAccount permission. If you enabled all features in the organization, then the user must also have the iam:CreateServiceLinkedRole permission so that Organizations can create the required service-linked role named OrgsServiceLinkedRoleName. For more information, see AWS Organizations and Service-Linked Roles in the AWS Organizations User Guide. The user in the master account who calls this API must also have the iam:CreateRole permission because AWS Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole by default) that grants users in the master account administrator permissions in the new member account. Principals in the master account can assume the role. AWS Organizations clones the company name and address information for the new account from the organization's master account. This operation can be called only from the organization's master account. For more information about creating accounts, see Creating an AWS Account in Your Organization in the AWS Organizations User Guide. When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required for the account to operate as a standalone account, such as a payment method and signing the End User Licence Agreement (EULA) is not automatically collected. If you must remove an account from your organization later, you can do so only after you provide the missing information. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide. When you create a member account with this operation, you can choose whether to create the account with the IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable this, then only the account root user can access billing information. For information about how to disable this for an account, see Granting Access to Your Billing Information and Tools. This operation can be called only from the organization's master account. If you get an exception that indicates that you exceeded your account limits for the organization or that you can"t add an account because your organization is still initializing, please contact AWS Customer Support. public func createAccount(_ input: CreateAccountRequest) throws -> CreateAccountResponse { return try client.send(operation: "CreateAccount", path: "/", httpMethod: "POST", input: input) } - /// Retrieves information about a previously requested handshake. The handshake ID comes from the response to the original InviteAccountToOrganization operation that generated the handshake. You can access handshakes that are ACCEPTED, DECLINED, or CANCELED for only 30 days after they change to that state. They are then deleted and no longer accessible. This operation can be called from any account in the organization. - public func describeHandshake(_ input: DescribeHandshakeRequest) throws -> DescribeHandshakeResponse { - return try client.send(operation: "DescribeHandshake", path: "/", httpMethod: "POST", input: input) + /// Moves an account from its current source parent root or OU to the specified destination parent root or OU. This operation can be called only from the organization's master account. + public func moveAccount(_ input: MoveAccountRequest) throws { + _ = try client.send(operation: "MoveAccount", path: "/", httpMethod: "POST", input: input) } /// Lists the account creation requests that match the specified status that is currently being tracked for the organization. This operation can be called only from the organization's master account. @@ -57,9 +67,9 @@ public struct Organizations { return try client.send(operation: "ListCreateAccountStatus", path: "/", httpMethod: "POST", input: input) } - /// Moves an account from its current source parent root or OU to the specified destination parent root or OU. This operation can be called only from the organization's master account. - public func moveAccount(_ input: MoveAccountRequest) throws { - _ = try client.send(operation: "MoveAccount", path: "/", httpMethod: "POST", input: input) + /// Retrieves information about a previously requested handshake. The handshake ID comes from the response to the original InviteAccountToOrganization operation that generated the handshake. You can access handshakes that are ACCEPTED, DECLINED, or CANCELED for only 30 days after they change to that state. They are then deleted and no longer accessible. This operation can be called from any account in the organization. + public func describeHandshake(_ input: DescribeHandshakeRequest) throws -> DescribeHandshakeResponse { + return try client.send(operation: "DescribeHandshake", path: "/", httpMethod: "POST", input: input) } /// Lists the handshakes that are associated with the organization that the requesting user is part of. The ListHandshakesForOrganization operation returns a list of handshake structures. Each structure contains details and status about a handshake. Handshakes that are ACCEPTED, DECLINED, or CANCELED appear in the results of this API for only 30 days after changing to that state. After that they are deleted and no longer accessible. This operation can be called only from the organization's master account. @@ -82,7 +92,7 @@ public struct Organizations { _ = try client.send(operation: "DeletePolicy", path: "/", httpMethod: "POST", input: input) } - /// Sends a response to the originator of a handshake agreeing to the action proposed by the handshake request. This operation can be called only by the following principals when they also have the relevant IAM permissions: Invitation to join or Approve all features request handshakes: only a principal from the member account. Enable all features final confirmation handshake: only a principal from the master account. For more information about invitations, see Inviting an AWS Account to Join Your Organization in the AWS Organizations User Guide. For more information about requests to enable all features in the organization, see Enabling All Features in Your Organization in the AWS Organizations User Guide. After you accept a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that it is deleted. + /// Sends a response to the originator of a handshake agreeing to the action proposed by the handshake request. This operation can be called only by the following principals when they also have the relevant IAM permissions: Invitation to join or Approve all features request handshakes: only a principal from the member account. The user who calls the API for an invitation to join must have the organizations:AcceptHandshake permission. If you enabled all features in the organization, then the user must also have the iam:CreateServiceLinkedRole permission so that Organizations can create the required service-linked role named OrgsServiceLinkedRoleName. For more information, see AWS Organizations and Service-Linked Roles in the AWS Organizations User Guide. Enable all features final confirmation handshake: only a principal from the master account. For more information about invitations, see Inviting an AWS Account to Join Your Organization in the AWS Organizations User Guide. For more information about requests to enable all features in the organization, see Enabling All Features in Your Organization in the AWS Organizations User Guide. After you accept a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that it is deleted. public func acceptHandshake(_ input: AcceptHandshakeRequest) throws -> AcceptHandshakeResponse { return try client.send(operation: "AcceptHandshake", path: "/", httpMethod: "POST", input: input) } @@ -102,49 +112,49 @@ public struct Organizations { return try client.send(operation: "ListHandshakesForAccount", path: "/", httpMethod: "POST", input: input) } - /// Deletes the organization. You can delete an organization only by using credentials from the master account. The organization must be empty of member accounts, OUs, and policies. If you create any accounts using Organizations operations or the Organizations console, you can't remove those accounts from the organization, which means that you can't delete the organization. + /// Deletes the organization. You can delete an organization only by using credentials from the master account. The organization must be empty of member accounts, OUs, and policies. public func deleteOrganization() throws { _ = try client.send(operation: "DeleteOrganization", path: "/", httpMethod: "POST") } - /// Sends an invitation to another account to join your organization as a member account. Organizations sends email on your behalf to the email address that is associated with the other account's owner. The invitation is implemented as a Handshake whose details are in the response. You can invite AWS accounts only from the same reseller as the master account. For example, if your organization's master account was created by Amazon Internet Services Pvt. Ltd (AISPL), an AWS reseller in India, then you can only invite other AISPL accounts to your organization. You can't combine accounts from AISPL and AWS. For more information, see Consolidated Billing in India. This operation can be called only from the organization's master account. - public func inviteAccountToOrganization(_ input: InviteAccountToOrganizationRequest) throws -> InviteAccountToOrganizationResponse { - return try client.send(operation: "InviteAccountToOrganization", path: "/", httpMethod: "POST", input: input) - } - /// Updates an existing policy with a new name, description, or content. If any parameter is not supplied, that value remains unchanged. Note that you cannot change a policy's type. This operation can be called only from the organization's master account. public func updatePolicy(_ input: UpdatePolicyRequest) throws -> UpdatePolicyResponse { return try client.send(operation: "UpdatePolicy", path: "/", httpMethod: "POST", input: input) } - /// Disables an organizational control policy type in a root. A poicy of a certain type can be attached to entities in a root only if that type is enabled in the root. After you perform this operation, you no longer can attach policies of the specified type to that root or to any OU or account in that root. You can undo this by using the EnablePolicyType operation. This operation can be called only from the organization's master account. + /// Renames the specified organizational unit (OU). The ID and ARN do not change. The child OUs and accounts remain in place, and any attached policies of the OU remain attached. This operation can be called only from the organization's master account. + public func updateOrganizationalUnit(_ input: UpdateOrganizationalUnitRequest) throws -> UpdateOrganizationalUnitResponse { + return try client.send(operation: "UpdateOrganizationalUnit", path: "/", httpMethod: "POST", input: input) + } + + /// Disables an organizational control policy type in a root. A policy of a certain type can be attached to entities in a root only if that type is enabled in the root. After you perform this operation, you no longer can attach policies of the specified type to that root or to any OU or account in that root. You can undo this by using the EnablePolicyType operation. This operation can be called only from the organization's master account. public func disablePolicyType(_ input: DisablePolicyTypeRequest) throws -> DisablePolicyTypeResponse { return try client.send(operation: "DisablePolicyType", path: "/", httpMethod: "POST", input: input) } - /// Retrieves information about an organizational unit (OU). This operation can be called only from the organization's master account. - public func describeOrganizationalUnit(_ input: DescribeOrganizationalUnitRequest) throws -> DescribeOrganizationalUnitResponse { - return try client.send(operation: "DescribeOrganizationalUnit", path: "/", httpMethod: "POST", input: input) + /// Removes a member account from its parent organization. This version of the operation is performed by the account that wants to leave. To remove a member account as a user in the master account, use RemoveAccountFromOrganization instead. This operation can be called only from a member account in the organization. The master account in an organization with all features enabled can set service control policies (SCPs) that can restrict what administrators of member accounts can do, including preventing them from successfully calling LeaveOrganization and leaving the organization. You can leave an organization as a member account only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required of standalone accounts is not automatically collected. For each account that you want to make standalone, you must accept the End User License Agreement (EULA), choose a support plan, provide and verify the required contact information, and provide a current payment method. AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account is not attached to an organization. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide. You can leave an organization only after you enable IAM user access to billing in your account. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide. + public func leaveOrganization() throws { + _ = try client.send(operation: "LeaveOrganization", path: "/", httpMethod: "POST") } - /// Removes the specified account from the organization. The removed account becomes a stand-alone account that is not a member of any organization. It is no longer subject to any policies and is responsible for its own bill payments. The organization's master account is no longer charged for any expenses accrued by the member account after it is removed from the organization. This operation can be called only from the organization's master account. Member accounts can remove themselves with LeaveOrganization instead. You can remove only accounts that were created outside your organization and invited to join. If you created the account using the AWS Organizations console, the Organizations API, or the Organizations CLI commands, then you cannot remove the account. You can remove a member account only after you enable IAM user access to billing in the member account. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide. + /// Removes the specified account from the organization. The removed account becomes a stand-alone account that is not a member of any organization. It is no longer subject to any policies and is responsible for its own bill payments. The organization's master account is no longer charged for any expenses accrued by the member account after it is removed from the organization. This operation can be called only from the organization's master account. Member accounts can remove themselves with LeaveOrganization instead. You can remove an account from your organization only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required of standalone accounts is not automatically collected. For an account that you want to make standalone, you must accept the End User License Agreement (EULA), choose a support plan, provide and verify the required contact information, and provide a current payment method. AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account is not attached to an organization. To remove an account that does not yet have this information, you must sign in as the member account and follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide. You can remove a member account only after you enable IAM user access to billing in the member account. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide. public func removeAccountFromOrganization(_ input: RemoveAccountFromOrganizationRequest) throws { _ = try client.send(operation: "RemoveAccountFromOrganization", path: "/", httpMethod: "POST", input: input) } - /// Renames the specified organizational unit (OU). The ID and ARN do not change. The child OUs and accounts remain in place, and any attached policies of the OU remain attached. This operation can be called only from the organization's master account. - public func updateOrganizationalUnit(_ input: UpdateOrganizationalUnitRequest) throws -> UpdateOrganizationalUnitResponse { - return try client.send(operation: "UpdateOrganizationalUnit", path: "/", httpMethod: "POST", input: input) + /// Retrieves the list of all policies in an organization of a specified type. This operation can be called only from the organization's master account. + public func listPolicies(_ input: ListPoliciesRequest) throws -> ListPoliciesResponse { + return try client.send(operation: "ListPolicies", path: "/", httpMethod: "POST", input: input) } - /// Removes a member account from its parent organization. This version of the operation is performed by the account that wants to leave. To remove a member account as a user in the master account, use RemoveAccountFromOrganization instead. This operation can be called only from a member account in the organization. The master account in an organization with all features enabled can set service control policies (SCPs) that can restrict what administrators of member accounts can do, including preventing them from successfully calling LeaveOrganization and leaving the organization. If you created the account using the AWS Organizations console, the Organizations API, or the Organizations CLI commands, then you cannot remove the account. You can leave an organization only after you enable IAM user access to billing in your account. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide. - public func leaveOrganization() throws { - _ = try client.send(operation: "LeaveOrganization", path: "/", httpMethod: "POST") + /// Sends an invitation to another account to join your organization as a member account. Organizations sends email on your behalf to the email address that is associated with the other account's owner. The invitation is implemented as a Handshake whose details are in the response. You can invite AWS accounts only from the same seller as the master account. For example, if your organization's master account was created by Amazon Internet Services Pvt. Ltd (AISPL), an AWS seller in India, then you can only invite other AISPL accounts to your organization. You can't combine accounts from AISPL and AWS, or any other AWS seller. For more information, see Consolidated Billing in India. This operation can be called only from the organization's master account. If you get an exception that indicates that you exceeded your account limits for the organization or that you can"t add an account because your organization is still initializing, please contact AWS Customer Support. + public func inviteAccountToOrganization(_ input: InviteAccountToOrganizationRequest) throws -> InviteAccountToOrganizationResponse { + return try client.send(operation: "InviteAccountToOrganization", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the list of all policies in an organization of a specified type. This operation can be called only from the organization's master account. - public func listPolicies(_ input: ListPoliciesRequest) throws -> ListPoliciesResponse { - return try client.send(operation: "ListPolicies", path: "/", httpMethod: "POST", input: input) + /// Retrieves information about an organizational unit (OU). This operation can be called only from the organization's master account. + public func describeOrganizationalUnit(_ input: DescribeOrganizationalUnitRequest) throws -> DescribeOrganizationalUnitResponse { + return try client.send(operation: "DescribeOrganizationalUnit", path: "/", httpMethod: "POST", input: input) } /// Creates an AWS organization. The account whose user is calling the CreateOrganization operation automatically becomes the master account of the new organization. This operation must be called using credentials from the account that is to become the new organization's master account. The principal must also have the relevant IAM permissions. By default (or if you set the FeatureSet parameter to ALL), the new organization is created with all features enabled and service control policies automatically enabled in the root. If you instead choose to create the organization supporting only the consolidated billing features by setting the FeatureSet parameter to CONSOLIDATED_BILLING", then no policy types are enabled by default and you cannot use organization policies. @@ -217,6 +227,11 @@ public struct Organizations { return try client.send(operation: "CreatePolicy", path: "/", httpMethod: "POST", input: input) } + /// Disables the integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations. When you disable integration, the specified service no longer can create a service-linked role in new accounts in your organization. This means the service can't perform operations on your behalf on any new accounts in your organization. The service can still perform operations in older accounts until the service completes its clean-up from AWS Organizations. We recommend that you disable integration between AWS Organizations and the specified AWS service by using the console or commands that are provided by the specified service. Doing so ensures that the other service is aware that it can clean up any resources that are required only for the integration. How the service cleans up its resources in the organization's accounts depends on that service. For more information, see the documentation for the other AWS service. After you perform the DisableAWSServiceAccess operation, the specified service can no longer perform operations in your organization's accounts unless the operations are explicitly permitted by the IAM policies that are attached to your roles. For more information about integrating other services with AWS Organizations, including the list of services that work with Organizations, see Integrating AWS Organizations with Other AWS Services in the AWS Organizations User Guide. This operation can be called only from the organization's master account. + public func disableAWSServiceAccess(_ input: DisableAWSServiceAccessRequest) throws { + _ = try client.send(operation: "DisableAWSServiceAccess", path: "/", httpMethod: "POST", input: input) + } + /// Retrieves the current status of an asynchronous request to create an account. This operation can be called only from the organization's master account. public func describeCreateAccountStatus(_ input: DescribeCreateAccountStatusRequest) throws -> DescribeCreateAccountStatusResponse { return try client.send(operation: "DescribeCreateAccountStatus", path: "/", httpMethod: "POST", input: input) diff --git a/Sources/AWSSDKSwift/Services/organizations/Organizations_Error.swift b/Sources/AWSSDKSwift/Services/organizations/Organizations_Error.swift index 117cbe35fcd..b05b0b7a00c 100644 --- a/Sources/AWSSDKSwift/Services/organizations/Organizations_Error.swift +++ b/Sources/AWSSDKSwift/Services/organizations/Organizations_Error.swift @@ -6,34 +6,35 @@ import AWSSDKSwiftCore public enum OrganizationsError: AWSErrorType { case accessDeniedException(message: String?) case aWSOrganizationsNotInUseException(message: String?) + case constraintViolationException(message: String?) case invalidInputException(message: String?) case serviceException(message: String?) case tooManyRequestsException(message: String?) case parentNotFoundException(message: String?) case concurrentModificationException(message: String?) - case constraintViolationException(message: String?) case finalizingOrganizationException(message: String?) - case handshakeNotFoundException(message: String?) case sourceParentNotFoundException(message: String?) case destinationParentNotFoundException(message: String?) case duplicateAccountException(message: String?) case accountNotFoundException(message: String?) + case handshakeNotFoundException(message: String?) case childNotFoundException(message: String?) case policyNotFoundException(message: String?) case policyInUseException(message: String?) case handshakeConstraintViolationException(message: String?) case invalidHandshakeTransitionException(message: String?) case handshakeAlreadyInStateException(message: String?) + case accessDeniedForDependencyException(message: String?) case organizationalUnitNotEmptyException(message: String?) case organizationalUnitNotFoundException(message: String?) case organizationNotEmptyException(message: String?) - case duplicateHandshakeException(message: String?) case duplicatePolicyException(message: String?) case malformedPolicyDocumentException(message: String?) + case duplicateOrganizationalUnitException(message: String?) case policyTypeNotEnabledException(message: String?) case rootNotFoundException(message: String?) case masterCannotLeaveOrganizationException(message: String?) - case duplicateOrganizationalUnitException(message: String?) + case duplicateHandshakeException(message: String?) case alreadyInOrganizationException(message: String?) case targetNotFoundException(message: String?) case policyTypeAlreadyEnabledException(message: String?) @@ -54,6 +55,8 @@ extension OrganizationsError { self = .accessDeniedException(message: message) case "AWSOrganizationsNotInUseException": self = .aWSOrganizationsNotInUseException(message: message) + case "ConstraintViolationException": + self = .constraintViolationException(message: message) case "InvalidInputException": self = .invalidInputException(message: message) case "ServiceException": @@ -64,12 +67,8 @@ extension OrganizationsError { self = .parentNotFoundException(message: message) case "ConcurrentModificationException": self = .concurrentModificationException(message: message) - case "ConstraintViolationException": - self = .constraintViolationException(message: message) case "FinalizingOrganizationException": self = .finalizingOrganizationException(message: message) - case "HandshakeNotFoundException": - self = .handshakeNotFoundException(message: message) case "SourceParentNotFoundException": self = .sourceParentNotFoundException(message: message) case "DestinationParentNotFoundException": @@ -78,6 +77,8 @@ extension OrganizationsError { self = .duplicateAccountException(message: message) case "AccountNotFoundException": self = .accountNotFoundException(message: message) + case "HandshakeNotFoundException": + self = .handshakeNotFoundException(message: message) case "ChildNotFoundException": self = .childNotFoundException(message: message) case "PolicyNotFoundException": @@ -90,26 +91,28 @@ extension OrganizationsError { self = .invalidHandshakeTransitionException(message: message) case "HandshakeAlreadyInStateException": self = .handshakeAlreadyInStateException(message: message) + case "AccessDeniedForDependencyException": + self = .accessDeniedForDependencyException(message: message) case "OrganizationalUnitNotEmptyException": self = .organizationalUnitNotEmptyException(message: message) case "OrganizationalUnitNotFoundException": self = .organizationalUnitNotFoundException(message: message) case "OrganizationNotEmptyException": self = .organizationNotEmptyException(message: message) - case "DuplicateHandshakeException": - self = .duplicateHandshakeException(message: message) case "DuplicatePolicyException": self = .duplicatePolicyException(message: message) case "MalformedPolicyDocumentException": self = .malformedPolicyDocumentException(message: message) + case "DuplicateOrganizationalUnitException": + self = .duplicateOrganizationalUnitException(message: message) case "PolicyTypeNotEnabledException": self = .policyTypeNotEnabledException(message: message) case "RootNotFoundException": self = .rootNotFoundException(message: message) case "MasterCannotLeaveOrganizationException": self = .masterCannotLeaveOrganizationException(message: message) - case "DuplicateOrganizationalUnitException": - self = .duplicateOrganizationalUnitException(message: message) + case "DuplicateHandshakeException": + self = .duplicateHandshakeException(message: message) case "AlreadyInOrganizationException": self = .alreadyInOrganizationException(message: message) case "TargetNotFoundException": diff --git a/Sources/AWSSDKSwift/Services/organizations/Organizations_Shapes.swift b/Sources/AWSSDKSwift/Services/organizations/Organizations_Shapes.swift index 8b8aa332530..b6c485be23a 100644 --- a/Sources/AWSSDKSwift/Services/organizations/Organizations_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/organizations/Organizations_Shapes.swift @@ -5,29 +5,8 @@ import AWSSDKSwiftCore extension Organizations { - public struct HandshakeFilter: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ActionType", required: false, type: .enum), - AWSShapeMember(label: "ParentHandshakeId", required: false, type: .string) - ] - /// Specifies the type of handshake action. If you specify ActionType, you cannot also specify ParentHandshakeId. - public let actionType: ActionType? - /// Specifies the parent handshake. Only used for handshake types that are a child of another type. If you specify ParentHandshakeId, you cannot also specify ActionType. The regex pattern for handshake ID string requires "h-" followed by from 8 to 32 lower-case letters or digits. - public let parentHandshakeId: String? - - public init(actionType: ActionType? = nil, parentHandshakeId: String? = nil) { - self.actionType = actionType - self.parentHandshakeId = parentHandshakeId - } - - private enum CodingKeys: String, CodingKey { - case actionType = "ActionType" - case parentHandshakeId = "ParentHandshakeId" - } - } - public struct CreatePolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: false, type: .structure) ] /// A structure that contains details about the newly created policy. @@ -43,7 +22,7 @@ extension Organizations { } public struct ListAccountsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Accounts", required: false, type: .list) ] @@ -63,18 +42,6 @@ extension Organizations { } } - public enum HandshakeConstraintViolationExceptionReason: String, CustomStringConvertible, Codable { - case accountNumberLimitExceeded = "ACCOUNT_NUMBER_LIMIT_EXCEEDED" - case handshakeRateLimitExceeded = "HANDSHAKE_RATE_LIMIT_EXCEEDED" - case alreadyInAnOrganization = "ALREADY_IN_AN_ORGANIZATION" - case organizationAlreadyHasAllFeatures = "ORGANIZATION_ALREADY_HAS_ALL_FEATURES" - case inviteDisabledDuringEnableAllFeatures = "INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES" - case paymentInstrumentRequired = "PAYMENT_INSTRUMENT_REQUIRED" - case organizationFromDifferentSellerOfRecord = "ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD" - case organizationMembershipChangeRateLimitExceeded = "ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED" - public var description: String { return self.rawValue } - } - public enum HandshakePartyType: String, CustomStringConvertible, Codable { case account = "ACCOUNT" case organization = "ORGANIZATION" @@ -83,7 +50,7 @@ extension Organizations { } public struct Policy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Content", required: false, type: .string), AWSShapeMember(label: "PolicySummary", required: false, type: .structure) ] @@ -104,13 +71,13 @@ extension Organizations { } public struct InviteAccountToOrganizationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Notes", required: false, type: .string), AWSShapeMember(label: "Target", required: true, type: .structure) ] /// Additional information that you want to include in the generated email to the recipient account owner. public let notes: String? - /// The identifier (ID) of the AWS account that you want to invite to join your organization. This is a JSON object that contains the following elements: { "Type": "ACCOUNT", "Id": "< account id number >" } If you use the AWS CLI, you can submit this as a single string, similar to the following example: --target id=123456789012,type=ACCOUNT If you specify "Type": "ACCOUNT", then you must provide the AWS account ID number as the Id. If you specify "Type": "EMAIL", then you must specify the email address that is associated with the account. --target id=bill@example.com,type=EMAIL + /// The identifier (ID) of the AWS account that you want to invite to join your organization. This is a JSON object that contains the following elements: { "Type": "ACCOUNT", "Id": "< account id number >" } If you use the AWS CLI, you can submit this as a single string, similar to the following example: --target Id=123456789012,Type=ACCOUNT If you specify "Type": "ACCOUNT", then you must provide the AWS account ID number as the Id. If you specify "Type": "EMAIL", then you must specify the email address that is associated with the account. --target Id=bill@example.com,Type=EMAIL public let target: HandshakeParty public init(notes: String? = nil, target: HandshakeParty) { @@ -124,28 +91,6 @@ extension Organizations { } } - public struct CancelHandshakeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Handshake", required: false, type: .structure) - ] - /// A structure that contains details about the handshake that you canceled. - public let handshake: Handshake? - - public init(handshake: Handshake? = nil) { - self.handshake = handshake - } - - private enum CodingKeys: String, CodingKey { - case handshake = "Handshake" - } - } - - public enum OrganizationFeatureSet: String, CustomStringConvertible, Codable { - case all = "ALL" - case consolidatedBilling = "CONSOLIDATED_BILLING" - public var description: String { return self.rawValue } - } - public enum CreateAccountState: String, CustomStringConvertible, Codable { case inProgress = "IN_PROGRESS" case succeeded = "SUCCEEDED" @@ -153,86 +98,14 @@ extension Organizations { public var description: String { return self.rawValue } } - public struct CreateAccountStatus: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountId", required: false, type: .string), - AWSShapeMember(label: "RequestedTimestamp", required: false, type: .timestamp), - AWSShapeMember(label: "State", required: false, type: .enum), - AWSShapeMember(label: "AccountName", required: false, type: .string), - AWSShapeMember(label: "CompletedTimestamp", required: false, type: .timestamp), - AWSShapeMember(label: "FailureReason", required: false, type: .enum), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - /// If the account was created successfully, the unique identifier (ID) of the new account. The regex pattern for an account ID string requires exactly 12 digits. - public let accountId: String? - /// The date and time that the request was made for the account creation. - public let requestedTimestamp: TimeStamp? - /// The status of the request. - public let state: CreateAccountState? - /// The account name given to the account when it was created. - public let accountName: String? - /// The date and time that the account was created and the request completed. - public let completedTimestamp: TimeStamp? - /// If the request failed, a description of the reason for the failure. ACCOUNT_LIMIT_EXCEEDED: The account could not be created because you have reached the limit on the number of accounts in your organization. EMAIL_ALREADY_EXISTS: The account could not be created because another AWS account with that email address already exists. INVALID_ADDRESS: The account could not be created because the address you provided is not valid. INVALID_EMAIL: The account could not be created because the email address you provided is not valid. INTERNAL_FAILURE: The account could not be created because of an internal failure. Try again later. If the problem persists, contact Customer Support. - public let failureReason: CreateAccountFailureReason? - /// The unique identifier (ID) that references this request. You get this value from the response of the initial CreateAccount request to create the account. The regex pattern for an create account request ID string requires "car-" followed by from 8 to 32 lower-case letters or digits. - public let id: String? - - public init(accountId: String? = nil, requestedTimestamp: TimeStamp? = nil, state: CreateAccountState? = nil, accountName: String? = nil, completedTimestamp: TimeStamp? = nil, failureReason: CreateAccountFailureReason? = nil, id: String? = nil) { - self.accountId = accountId - self.requestedTimestamp = requestedTimestamp - self.state = state - self.accountName = accountName - self.completedTimestamp = completedTimestamp - self.failureReason = failureReason - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case accountId = "AccountId" - case requestedTimestamp = "RequestedTimestamp" - case state = "State" - case accountName = "AccountName" - case completedTimestamp = "CompletedTimestamp" - case failureReason = "FailureReason" - case id = "Id" - } - } - public enum AccountJoinedMethod: String, CustomStringConvertible, Codable { case invited = "INVITED" case created = "CREATED" public var description: String { return self.rawValue } } - public enum HandshakeState: String, CustomStringConvertible, Codable { - case requested = "REQUESTED" - case open = "OPEN" - case canceled = "CANCELED" - case accepted = "ACCEPTED" - case declined = "DECLINED" - case expired = "EXPIRED" - public var description: String { return self.rawValue } - } - - public struct DeclineHandshakeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Handshake", required: false, type: .structure) - ] - /// A structure that contains details about the declined handshake. The state is updated to show the value DECLINED. - public let handshake: Handshake? - - public init(handshake: Handshake? = nil) { - self.handshake = handshake - } - - private enum CodingKeys: String, CodingKey { - case handshake = "Handshake" - } - } - public struct ListTargetsForPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Targets", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -252,91 +125,24 @@ extension Organizations { } } - public struct ListPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxResults", required: false, type: .integer), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Filter", required: true, type: .enum) - ] - /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. - public let maxResults: Int32? - /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. - public let nextToken: String? - /// Specifies the type of policy that you want to include in the response. - public let filter: PolicyType - - public init(maxResults: Int32? = nil, nextToken: String? = nil, filter: PolicyType) { - self.maxResults = maxResults - self.nextToken = nextToken - self.filter = filter - } - - private enum CodingKeys: String, CodingKey { - case maxResults = "MaxResults" - case nextToken = "NextToken" - case filter = "Filter" - } - } - - public struct ListPoliciesForTargetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Filter", required: true, type: .enum), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "TargetId", required: true, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) - ] - /// The type of policy that you want to include in the returned list. - public let filter: PolicyType - /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. - public let nextToken: String? - /// The unique identifier (ID) of the root, organizational unit, or account whose policies you want to list. The regex pattern for a target ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Account: a string that consists of exactly 12 digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let targetId: String - /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. - public let maxResults: Int32? - - public init(filter: PolicyType, nextToken: String? = nil, targetId: String, maxResults: Int32? = nil) { - self.filter = filter - self.nextToken = nextToken - self.targetId = targetId - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case filter = "Filter" - case nextToken = "NextToken" - case targetId = "TargetId" - case maxResults = "MaxResults" - } - } - - public struct ListTargetsForPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyId", required: true, type: .string), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) + public struct DescribeOrganizationalUnitResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OrganizationalUnit", required: false, type: .structure) ] - /// The unique identifier (ID) of the policy for which you want to know its attachments. The regex pattern for a policy ID string requires "p-" followed by from 8 to 128 lower-case letters or digits. - public let policyId: String - /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. - public let nextToken: String? - /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. - public let maxResults: Int32? + /// A structure that contains details about the specified OU. + public let organizationalUnit: OrganizationalUnit? - public init(policyId: String, nextToken: String? = nil, maxResults: Int32? = nil) { - self.policyId = policyId - self.nextToken = nextToken - self.maxResults = maxResults + public init(organizationalUnit: OrganizationalUnit? = nil) { + self.organizationalUnit = organizationalUnit } private enum CodingKeys: String, CodingKey { - case policyId = "PolicyId" - case nextToken = "NextToken" - case maxResults = "MaxResults" + case organizationalUnit = "OrganizationalUnit" } } public struct ListOrganizationalUnitsForParentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "OrganizationalUnits", required: false, type: .list) ] @@ -356,53 +162,27 @@ extension Organizations { } } - public struct HandshakeResource: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Type", required: false, type: .enum), - AWSShapeMember(label: "Value", required: false, type: .string), - AWSShapeMember(label: "Resources", required: false, type: .list) - ] - /// The type of information being passed, specifying how the value is to be interpreted by the other party: ACCOUNT - Specifies an AWS account ID number. ORGANIZATION - Specifies an organization ID number. EMAIL - Specifies the email address that is associated with the account that receives the handshake. OWNER_EMAIL - Specifies the email address associated with the master account. Included as information about an organization. OWNER_NAME - Specifies the name associated with the master account. Included as information about an organization. NOTES - Additional text provided by the handshake initiator and intended for the recipient to read. - public let `type`: HandshakeResourceType? - /// The information that is passed to the other party in the handshake. The format of the value string must match the requirements of the specified type. - public let value: String? - /// When needed, contains an additional array of HandshakeResource objects. - public let resources: [HandshakeResource]? - - public init(type: HandshakeResourceType? = nil, value: String? = nil, resources: [HandshakeResource]? = nil) { - self.`type` = `type` - self.value = value - self.resources = resources - } - - private enum CodingKeys: String, CodingKey { - case `type` = "Type" - case value = "Value" - case resources = "Resources" - } - } - - public struct EnableAllFeaturesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Handshake", required: false, type: .structure) + public struct DescribeOrganizationalUnitRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OrganizationalUnitId", required: true, type: .string) ] - /// A structure that contains details about the handshake created to support this request to enable all features in the organization. - public let handshake: Handshake? + /// The unique identifier (ID) of the organizational unit that you want details about. You can get the ID from the ListOrganizationalUnitsForParent operation. The regex pattern for an organizational unit ID string requires "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let organizationalUnitId: String - public init(handshake: Handshake? = nil) { - self.handshake = handshake + public init(organizationalUnitId: String) { + self.organizationalUnitId = organizationalUnitId } private enum CodingKeys: String, CodingKey { - case handshake = "Handshake" + case organizationalUnitId = "OrganizationalUnitId" } } - public struct DescribeOrganizationalUnitResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct UpdateOrganizationalUnitResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrganizationalUnit", required: false, type: .structure) ] - /// A structure that contains details about the specified OU. + /// A structure that contains the details about the specified OU, including its new name. public let organizationalUnit: OrganizationalUnit? public init(organizationalUnit: OrganizationalUnit? = nil) { @@ -414,79 +194,15 @@ extension Organizations { } } - public struct InviteAccountToOrganizationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Handshake", required: false, type: .structure) + public struct EnablePolicyTypeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyType", required: true, type: .enum), + AWSShapeMember(label: "RootId", required: true, type: .string) ] - /// A structure that contains details about the handshake that is created to support this invitation request. - public let handshake: Handshake? - - public init(handshake: Handshake? = nil) { - self.handshake = handshake - } - - private enum CodingKeys: String, CodingKey { - case handshake = "Handshake" - } - } - - public struct DescribeOrganizationalUnitRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OrganizationalUnitId", required: true, type: .string) - ] - /// The unique identifier (ID) of the organizational unit that you want details about. You can get the ID from the ListOrganizationalUnitsForParent operation. The regex pattern for an organizational unit ID string requires "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let organizationalUnitId: String - - public init(organizationalUnitId: String) { - self.organizationalUnitId = organizationalUnitId - } - - private enum CodingKeys: String, CodingKey { - case organizationalUnitId = "OrganizationalUnitId" - } - } - - public struct UpdateOrganizationalUnitResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OrganizationalUnit", required: false, type: .structure) - ] - /// A structure that contains the details about the specified OU, including its new name. - public let organizationalUnit: OrganizationalUnit? - - public init(organizationalUnit: OrganizationalUnit? = nil) { - self.organizationalUnit = organizationalUnit - } - - private enum CodingKeys: String, CodingKey { - case organizationalUnit = "OrganizationalUnit" - } - } - - public struct CreateAccountResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CreateAccountStatus", required: false, type: .structure) - ] - /// A structure that contains details about the request to create an account. This response structure might not be fully populated when you first receive it because account creation is an asynchronous process. You can pass the returned CreateAccountStatus ID as a parameter to DescribeCreateAccountStatus to get status about the progress of the request at later times. - public let createAccountStatus: CreateAccountStatus? - - public init(createAccountStatus: CreateAccountStatus? = nil) { - self.createAccountStatus = createAccountStatus - } - - private enum CodingKeys: String, CodingKey { - case createAccountStatus = "CreateAccountStatus" - } - } - - public struct EnablePolicyTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyType", required: true, type: .enum), - AWSShapeMember(label: "RootId", required: true, type: .string) - ] - /// The policy type that you want to enable. - public let policyType: PolicyType - /// The unique identifier (ID) of the root in which you want to enable a policy type. You can get the ID from the ListRoots operation. The regex pattern for a root ID string requires "r-" followed by from 4 to 32 lower-case letters or digits. - public let rootId: String + /// The policy type that you want to enable. + public let policyType: PolicyType + /// The unique identifier (ID) of the root in which you want to enable a policy type. You can get the ID from the ListRoots operation. The regex pattern for a root ID string requires "r-" followed by from 4 to 32 lower-case letters or digits. + public let rootId: String public init(policyType: PolicyType, rootId: String) { self.policyType = policyType @@ -499,66 +215,8 @@ extension Organizations { } } - public struct CreateOrganizationalUnitRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "ParentId", required: true, type: .string) - ] - /// The friendly name to assign to the new OU. - public let name: String - /// The unique identifier (ID) of the parent root or OU in which you want to create the new OU. The regex pattern for a parent ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let parentId: String - - public init(name: String, parentId: String) { - self.name = name - self.parentId = parentId - } - - private enum CodingKeys: String, CodingKey { - case name = "Name" - case parentId = "ParentId" - } - } - - public struct DescribeCreateAccountStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CreateAccountStatus", required: false, type: .structure) - ] - /// A structure that contains the current status of an account creation request. - public let createAccountStatus: CreateAccountStatus? - - public init(createAccountStatus: CreateAccountStatus? = nil) { - self.createAccountStatus = createAccountStatus - } - - private enum CodingKeys: String, CodingKey { - case createAccountStatus = "CreateAccountStatus" - } - } - - public struct ListRootsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Roots", required: false, type: .list) - ] - /// If present, this value indicates that there is more output available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. - public let nextToken: String? - /// A list of roots that are defined in an organization. - public let roots: [Root]? - - public init(nextToken: String? = nil, roots: [Root]? = nil) { - self.nextToken = nextToken - self.roots = roots - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case roots = "Roots" - } - } - public struct ListCreateAccountStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "States", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -583,46 +241,9 @@ extension Organizations { } } - public struct CreateOrganizationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Organization", required: false, type: .structure) - ] - /// A structure that contains details about the newly created organization. - public let organization: Organization? - - public init(organization: Organization? = nil) { - self.organization = organization - } - - private enum CodingKeys: String, CodingKey { - case organization = "Organization" - } - } - - public struct MoveAccountRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountId", required: true, type: .string), - AWSShapeMember(label: "SourceParentId", required: true, type: .string), - AWSShapeMember(label: "DestinationParentId", required: true, type: .string) - ] - /// The unique identifier (ID) of the account that you want to move. The regex pattern for an account ID string requires exactly 12 digits. - public let accountId: String - /// The unique identifier (ID) of the root or organizational unit that you want to move the account from. The regex pattern for a parent ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let sourceParentId: String - /// The unique identifier (ID) of the root or organizational unit that you want to move the account to. The regex pattern for a parent ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let destinationParentId: String - - public init(accountId: String, sourceParentId: String, destinationParentId: String) { - self.accountId = accountId - self.sourceParentId = sourceParentId - self.destinationParentId = destinationParentId - } - - private enum CodingKeys: String, CodingKey { - case accountId = "AccountId" - case sourceParentId = "SourceParentId" - case destinationParentId = "DestinationParentId" - } + public enum AccessDeniedForDependencyExceptionReason: String, CustomStringConvertible, Codable { + case accessDeniedDuringCreateServiceLinkedRole = "ACCESS_DENIED_DURING_CREATE_SERVICE_LINKED_ROLE" + public var description: String { return self.rawValue } } public enum InvalidInputExceptionReason: String, CustomStringConvertible, Codable { @@ -643,32 +264,38 @@ extension Organizations { case maxLimitExceededFilter = "MAX_LIMIT_EXCEEDED_FILTER" case movingAccountBetweenDifferentRoots = "MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS" case invalidFullNameTarget = "INVALID_FULL_NAME_TARGET" + case unrecognizedServicePrincipal = "UNRECOGNIZED_SERVICE_PRINCIPAL" public var description: String { return self.rawValue } } - public struct AttachPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyId", required: true, type: .string), - AWSShapeMember(label: "TargetId", required: true, type: .string) + public struct MoveAccountRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountId", required: true, type: .string), + AWSShapeMember(label: "SourceParentId", required: true, type: .string), + AWSShapeMember(label: "DestinationParentId", required: true, type: .string) ] - /// The unique identifier (ID) of the policy that you want to attach to the target. You can get the ID for the policy by calling the ListPolicies operation. The regex pattern for a policy ID string requires "p-" followed by from 8 to 128 lower-case letters or digits. - public let policyId: String - /// The unique identifier (ID) of the root, OU, or account that you want to attach the policy to. You can get the ID by calling the ListRoots, ListOrganizationalUnitsForParent, or ListAccounts operations. The regex pattern for a target ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Account: a string that consists of exactly 12 digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let targetId: String + /// The unique identifier (ID) of the account that you want to move. The regex pattern for an account ID string requires exactly 12 digits. + public let accountId: String + /// The unique identifier (ID) of the root or organizational unit that you want to move the account from. The regex pattern for a parent ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let sourceParentId: String + /// The unique identifier (ID) of the root or organizational unit that you want to move the account to. The regex pattern for a parent ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let destinationParentId: String - public init(policyId: String, targetId: String) { - self.policyId = policyId - self.targetId = targetId + public init(accountId: String, sourceParentId: String, destinationParentId: String) { + self.accountId = accountId + self.sourceParentId = sourceParentId + self.destinationParentId = destinationParentId } private enum CodingKeys: String, CodingKey { - case policyId = "PolicyId" - case targetId = "TargetId" + case accountId = "AccountId" + case sourceParentId = "SourceParentId" + case destinationParentId = "DestinationParentId" } } public struct ListParentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Parents", required: false, type: .list) ] @@ -689,7 +316,7 @@ extension Organizations { } public struct UpdatePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Content", required: false, type: .string), AWSShapeMember(label: "PolicyId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -719,54 +346,8 @@ extension Organizations { } } - public struct Organization: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MasterAccountEmail", required: false, type: .string), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "AvailablePolicyTypes", required: false, type: .list), - AWSShapeMember(label: "MasterAccountArn", required: false, type: .string), - AWSShapeMember(label: "FeatureSet", required: false, type: .enum), - AWSShapeMember(label: "MasterAccountId", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - /// The email address that is associated with the AWS account that is designated as the master account for the organization. - public let masterAccountEmail: String? - /// The Amazon Resource Name (ARN) of an organization. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. - public let arn: String? - /// A list of policy types that are enabled for this organization. For example, if your organization has all features enabled, then service control policies (SCPs) are included in the list. - public let availablePolicyTypes: [PolicyTypeSummary]? - /// The Amazon Resource Name (ARN) of the account that is designated as the master account for the organization. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. - public let masterAccountArn: String? - /// Specifies the functionality that currently is available to the organization. If set to "ALL", then all features are enabled and policies can be applied to accounts in the organization. If set to "CONSOLIDATED_BILLING", then only consolidated billing functionality is available. For more information, see Enabling All Features in Your Organization in the AWS Organizations User Guide. - public let featureSet: OrganizationFeatureSet? - /// The unique identifier (ID) of the master account of an organization. The regex pattern for an account ID string requires exactly 12 digits. - public let masterAccountId: String? - /// The unique identifier (ID) of an organization. The regex pattern for an organization ID string requires "o-" followed by from 10 to 32 lower-case letters or digits. - public let id: String? - - public init(masterAccountEmail: String? = nil, arn: String? = nil, availablePolicyTypes: [PolicyTypeSummary]? = nil, masterAccountArn: String? = nil, featureSet: OrganizationFeatureSet? = nil, masterAccountId: String? = nil, id: String? = nil) { - self.masterAccountEmail = masterAccountEmail - self.arn = arn - self.availablePolicyTypes = availablePolicyTypes - self.masterAccountArn = masterAccountArn - self.featureSet = featureSet - self.masterAccountId = masterAccountId - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case masterAccountEmail = "MasterAccountEmail" - case arn = "Arn" - case availablePolicyTypes = "AvailablePolicyTypes" - case masterAccountArn = "MasterAccountArn" - case featureSet = "FeatureSet" - case masterAccountId = "MasterAccountId" - case id = "Id" - } - } - public struct Child: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Id", required: false, type: .string) ] @@ -792,67 +373,12 @@ extension Organizations { public var description: String { return self.rawValue } } - public enum ConstraintViolationExceptionReason: String, CustomStringConvertible, Codable { - case accountNumberLimitExceeded = "ACCOUNT_NUMBER_LIMIT_EXCEEDED" - case handshakeRateLimitExceeded = "HANDSHAKE_RATE_LIMIT_EXCEEDED" - case ouNumberLimitExceeded = "OU_NUMBER_LIMIT_EXCEEDED" - case ouDepthLimitExceeded = "OU_DEPTH_LIMIT_EXCEEDED" - case policyNumberLimitExceeded = "POLICY_NUMBER_LIMIT_EXCEEDED" - case maxPolicyTypeAttachmentLimitExceeded = "MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED" - case minPolicyTypeAttachmentLimitExceeded = "MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED" - case accountCannotLeaveOrganization = "ACCOUNT_CANNOT_LEAVE_ORGANIZATION" - case accountCannotLeaveWithoutEula = "ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA" - case accountCannotLeaveWithoutPhoneVerification = "ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION" - case masterAccountPaymentInstrumentRequired = "MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED" - case memberAccountPaymentInstrumentRequired = "MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED" - case accountCreationRateLimitExceeded = "ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED" - case masterAccountAddressDoesNotMatchMarketplace = "MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE" - public var description: String { return self.rawValue } - } - - public enum IAMUserAccessToBilling: String, CustomStringConvertible, Codable { - case allow = "ALLOW" - case deny = "DENY" - public var description: String { return self.rawValue } - } - public enum AccountStatus: String, CustomStringConvertible, Codable { case active = "ACTIVE" case suspended = "SUSPENDED" public var description: String { return self.rawValue } } - public struct ListChildrenRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChildType", required: true, type: .enum), - AWSShapeMember(label: "ParentId", required: true, type: .string), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) - ] - /// Filters the output to include only the specified child type. - public let childType: ChildType - /// The unique identifier (ID) for the parent root or OU whose children you want to list. The regex pattern for a parent ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let parentId: String - /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. - public let nextToken: String? - /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. - public let maxResults: Int32? - - public init(childType: ChildType, parentId: String, nextToken: String? = nil, maxResults: Int32? = nil) { - self.childType = childType - self.parentId = parentId - self.nextToken = nextToken - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case childType = "ChildType" - case parentId = "ParentId" - case nextToken = "NextToken" - case maxResults = "MaxResults" - } - } - public enum TargetType: String, CustomStringConvertible, Codable { case account = "ACCOUNT" case organizationalUnit = "ORGANIZATIONAL_UNIT" @@ -861,7 +387,7 @@ extension Organizations { } public struct PolicyTypeSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Status", required: false, type: .enum) ] @@ -882,7 +408,7 @@ extension Organizations { } public struct DeclineHandshakeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HandshakeId", required: true, type: .string) ] /// The unique identifier (ID) of the handshake that you want to decline. You can get the ID from the ListHandshakesForAccount operation. The regex pattern for handshake ID string requires "h-" followed by from 8 to 32 lower-case letters or digits. @@ -898,7 +424,7 @@ extension Organizations { } public struct AcceptHandshakeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HandshakeId", required: true, type: .string) ] /// The unique identifier (ID) of the handshake that you want to accept. The regex pattern for handshake ID string requires "h-" followed by from 8 to 32 lower-case letters or digits. @@ -913,84 +439,17 @@ extension Organizations { } } - public struct Account: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Status", required: false, type: .enum), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "Email", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "JoinedTimestamp", required: false, type: .timestamp), - AWSShapeMember(label: "JoinedMethod", required: false, type: .enum), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - /// The status of the account in the organization. - public let status: AccountStatus? - /// The Amazon Resource Name (ARN) of the account. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. - public let arn: String? - /// The email address associated with the AWS account. The regex pattern for this parameter is a string of characters that represents a standard Internet email address. - public let email: String? - /// The friendly name of the account. The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range. - public let name: String? - /// The date the account became a part of the organization. - public let joinedTimestamp: TimeStamp? - /// The method by which the account joined the organization. - public let joinedMethod: AccountJoinedMethod? - /// The unique identifier (ID) of the account. The regex pattern for an account ID string requires exactly 12 digits. - public let id: String? - - public init(status: AccountStatus? = nil, arn: String? = nil, email: String? = nil, name: String? = nil, joinedTimestamp: TimeStamp? = nil, joinedMethod: AccountJoinedMethod? = nil, id: String? = nil) { - self.status = status - self.arn = arn - self.email = email - self.name = name - self.joinedTimestamp = joinedTimestamp - self.joinedMethod = joinedMethod - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case status = "Status" - case arn = "Arn" - case email = "Email" - case name = "Name" - case joinedTimestamp = "JoinedTimestamp" - case joinedMethod = "JoinedMethod" - case id = "Id" - } - } - - public struct ListAccountsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) - ] - /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. - public let nextToken: String? - /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. - public let maxResults: Int32? - - public init(nextToken: String? = nil, maxResults: Int32? = nil) { - self.nextToken = nextToken - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case maxResults = "MaxResults" - } - } - public struct HandshakeParty: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Type", required: false, type: .enum), - AWSShapeMember(label: "Id", required: false, type: .string) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "Id", required: true, type: .string) ] /// The type of party. - public let `type`: HandshakePartyType? + public let `type`: HandshakePartyType /// The unique identifier (ID) for the party. The regex pattern for handshake ID string requires "h-" followed by from 8 to 32 lower-case letters or digits. - public let id: String? + public let id: String - public init(type: HandshakePartyType? = nil, id: String? = nil) { + public init(type: HandshakePartyType, id: String) { self.`type` = `type` self.id = id } @@ -1001,55 +460,8 @@ extension Organizations { } } - public struct ListHandshakesForAccountRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxResults", required: false, type: .integer), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Filter", required: false, type: .structure) - ] - /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. - public let maxResults: Int32? - /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. - public let nextToken: String? - /// Filters the handshakes that you want included in the response. The default is all types. Use the ActionType element to limit the output to only a specified type, such as INVITE, ENABLE-FULL-CONTROL, or APPROVE-FULL-CONTROL. Alternatively, for the ENABLE-FULL-CONTROL handshake that generates a separate child handshake for each member account, you can specify ParentHandshakeId to see only the handshakes that were generated by that parent request. - public let filter: HandshakeFilter? - - public init(maxResults: Int32? = nil, nextToken: String? = nil, filter: HandshakeFilter? = nil) { - self.maxResults = maxResults - self.nextToken = nextToken - self.filter = filter - } - - private enum CodingKeys: String, CodingKey { - case maxResults = "MaxResults" - case nextToken = "NextToken" - case filter = "Filter" - } - } - - public struct ListCreateAccountStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CreateAccountStatuses", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - /// A list of objects with details about the requests. Certain elements, such as the accountId number, are present in the output only after the account has been successfully created. - public let createAccountStatuses: [CreateAccountStatus]? - /// If present, this value indicates that there is more output available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. - public let nextToken: String? - - public init(createAccountStatuses: [CreateAccountStatus]? = nil, nextToken: String? = nil) { - self.createAccountStatuses = createAccountStatuses - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case createAccountStatuses = "CreateAccountStatuses" - case nextToken = "NextToken" - } - } - public struct Parent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Id", required: false, type: .string) ] @@ -1069,15 +481,8 @@ extension Organizations { } } - public enum PolicyTypeStatus: String, CustomStringConvertible, Codable { - case enabled = "ENABLED" - case pendingEnable = "PENDING_ENABLE" - case pendingDisable = "PENDING_DISABLE" - public var description: String { return self.rawValue } - } - public struct DescribePolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: false, type: .structure) ] /// A structure that contains details about the specified policy. @@ -1092,29 +497,8 @@ extension Organizations { } } - public struct UpdateOrganizationalUnitRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OrganizationalUnitId", required: true, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string) - ] - /// The unique identifier (ID) of the OU that you want to rename. You can get the ID from the ListOrganizationalUnitsForParent operation. The regex pattern for an organizational unit ID string requires "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let organizationalUnitId: String - /// The new name that you want to assign to the OU. The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range. - public let name: String? - - public init(organizationalUnitId: String, name: String? = nil) { - self.organizationalUnitId = organizationalUnitId - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case organizationalUnitId = "OrganizationalUnitId" - case name = "Name" - } - } - public struct ListPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policies", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1135,7 +519,7 @@ extension Organizations { } public struct ListChildrenResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Children", required: false, type: .list) ] @@ -1156,13 +540,13 @@ extension Organizations { } public struct DisablePolicyTypeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyType", required: true, type: .enum), AWSShapeMember(label: "RootId", required: true, type: .string) ] /// The policy type that you want to disable in this root. public let policyType: PolicyType - /// The unique identifier (ID) of the root in which you want to disable a policy type. You can get the ID from the ListPolicies operation. The regex pattern for a root ID string requires "r-" followed by from 4 to 32 lower-case letters or digits. + /// The unique identifier (ID) of the root in which you want to disable a policy type. You can get the ID from the ListRoots operation. The regex pattern for a root ID string requires "r-" followed by from 4 to 32 lower-case letters or digits. public let rootId: String public init(policyType: PolicyType, rootId: String) { @@ -1177,7 +561,7 @@ extension Organizations { } public struct DetachPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PolicyId", required: true, type: .string), AWSShapeMember(label: "TargetId", required: true, type: .string) ] @@ -1197,39 +581,8 @@ extension Organizations { } } - public struct CreateAccountRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountName", required: true, type: .string), - AWSShapeMember(label: "Email", required: true, type: .string), - AWSShapeMember(label: "RoleName", required: false, type: .string), - AWSShapeMember(label: "IamUserAccessToBilling", required: false, type: .enum) - ] - /// The friendly name of the member account. - public let accountName: String - /// The email address of the owner to assign to the new member account. This email address must not already be associated with another AWS account. - public let email: String - /// (Optional) The name of an IAM role that Organizations automatically preconfigures in the new member account. This role trusts the master account, allowing users in the master account to assume the role, as permitted by the master account administrator. The role has administrator permissions in the new member account. If you do not specify this parameter, the role name defaults to OrganizationAccountAccessRole. For more information about how to use this role to access the member account, see Accessing and Administering the Member Accounts in Your Organization in the AWS Organizations User Guide, and steps 2 and 3 in Tutorial: Delegate Access Across AWS Accounts Using IAM Roles in the IAM User Guide. The regex pattern that is used to validate this parameter is a string of characters that can consist of uppercase letters, lowercase letters, digits with no spaces, and any of the following characters: =,.@- - public let roleName: String? - /// If set to ALLOW, the new account enables IAM users to access account billing information if they have the required permissions. If set to DENY, then only the root user of the new account can access account billing information. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide. If you do not specify this parameter, the value defaults to ALLOW, and IAM users and roles with the required permissions can access billing information for the new account. - public let iamUserAccessToBilling: IAMUserAccessToBilling? - - public init(accountName: String, email: String, roleName: String? = nil, iamUserAccessToBilling: IAMUserAccessToBilling? = nil) { - self.accountName = accountName - self.email = email - self.roleName = roleName - self.iamUserAccessToBilling = iamUserAccessToBilling - } - - private enum CodingKeys: String, CodingKey { - case accountName = "AccountName" - case email = "Email" - case roleName = "RoleName" - case iamUserAccessToBilling = "IamUserAccessToBilling" - } - } - public struct ListParentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChildId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -1255,7 +608,7 @@ extension Organizations { } public struct DescribeCreateAccountStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CreateAccountRequestId", required: true, type: .string) ] /// Specifies the operationId that uniquely identifies the request. You can get the ID from the response to an earlier CreateAccount request, or from the ListCreateAccountStatus operation. The regex pattern for an create account request ID string requires "car-" followed by from 8 to 32 lower-case letters or digits. @@ -1270,31 +623,8 @@ extension Organizations { } } - public enum ActionType: String, CustomStringConvertible, Codable { - case invite = "INVITE" - case enableAllFeatures = "ENABLE_ALL_FEATURES" - case approveAllFeatures = "APPROVE_ALL_FEATURES" - public var description: String { return self.rawValue } - } - - public struct DeletePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyId", required: true, type: .string) - ] - /// The unique identifier (ID) of the policy that you want to delete. You can get the ID from the ListPolicies or ListPoliciesForTarget operations. The regex pattern for a policy ID string requires "p-" followed by from 8 to 128 lower-case letters or digits. - public let policyId: String - - public init(policyId: String) { - self.policyId = policyId - } - - private enum CodingKeys: String, CodingKey { - case policyId = "PolicyId" - } - } - public struct EnablePolicyTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Root", required: false, type: .structure) ] /// A structure that shows the root with the updated list of enabled policy types. @@ -1310,7 +640,7 @@ extension Organizations { } public struct CreateOrganizationalUnitResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrganizationalUnit", required: false, type: .structure) ] /// A structure that contains details about the newly created OU. @@ -1326,7 +656,7 @@ extension Organizations { } public struct DescribeHandshakeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HandshakeId", required: true, type: .string) ] /// The unique identifier (ID) of the handshake that you want information about. You can get the ID from the original call to InviteAccountToOrganization, or from a call to ListHandshakesForAccount or ListHandshakesForOrganization. The regex pattern for handshake ID string requires "h-" followed by from 8 to 32 lower-case letters or digits. @@ -1341,28 +671,33 @@ extension Organizations { } } - public struct EnableAllFeaturesRequest: AWSShape { - - } - - public struct UpdatePolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Policy", required: false, type: .structure) + public struct ListAWSServiceAccessForOrganizationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EnabledServicePrincipals", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// A structure that contains details about the updated policy, showing the requested changes. - public let policy: Policy? + /// A list of the service principals for the services that are enabled to integrate with your organization. Each principal is a structure that includes the name and the date that it was enabled for integration with AWS Organizations. + public let enabledServicePrincipals: [EnabledServicePrincipal]? + /// If present, this value indicates that there is more output available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. + public let nextToken: String? - public init(policy: Policy? = nil) { - self.policy = policy + public init(enabledServicePrincipals: [EnabledServicePrincipal]? = nil, nextToken: String? = nil) { + self.enabledServicePrincipals = enabledServicePrincipals + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case policy = "Policy" + case enabledServicePrincipals = "EnabledServicePrincipals" + case nextToken = "NextToken" } } + public struct EnableAllFeaturesRequest: AWSShape { + + } + public struct ListPoliciesForTargetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policies", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1382,62 +717,15 @@ extension Organizations { } } - public struct ListAccountsForParentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Accounts", required: false, type: .list) + public struct RemoveAccountFromOrganizationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountId", required: true, type: .string) ] - /// If present, this value indicates that there is more output available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. - public let nextToken: String? - /// A list of the accounts in the specified root or OU. - public let accounts: [Account]? + /// The unique identifier (ID) of the member account that you want to remove from the organization. The regex pattern for an account ID string requires exactly 12 digits. + public let accountId: String - public init(nextToken: String? = nil, accounts: [Account]? = nil) { - self.nextToken = nextToken - self.accounts = accounts - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case accounts = "Accounts" - } - } - - public struct ListHandshakesForOrganizationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxResults", required: false, type: .integer), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Filter", required: false, type: .structure) - ] - /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. - public let maxResults: Int32? - /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. - public let nextToken: String? - /// A filter of the handshakes that you want included in the response. The default is all types. Use the ActionType element to limit the output to only a specified type, such as INVITE, ENABLE-ALL-FEATURES, or APPROVE-ALL-FEATURES. Alternatively, for the ENABLE-ALL-FEATURES handshake that generates a separate child handshake for each member account, you can specify the ParentHandshakeId to see only the handshakes that were generated by that parent request. - public let filter: HandshakeFilter? - - public init(maxResults: Int32? = nil, nextToken: String? = nil, filter: HandshakeFilter? = nil) { - self.maxResults = maxResults - self.nextToken = nextToken - self.filter = filter - } - - private enum CodingKeys: String, CodingKey { - case maxResults = "MaxResults" - case nextToken = "NextToken" - case filter = "Filter" - } - } - - public struct RemoveAccountFromOrganizationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountId", required: true, type: .string) - ] - /// The unique identifier (ID) of the member account that you want to remove from the organization. The regex pattern for an account ID string requires exactly 12 digits. - public let accountId: String - - public init(accountId: String) { - self.accountId = accountId + public init(accountId: String) { + self.accountId = accountId } private enum CodingKeys: String, CodingKey { @@ -1446,7 +734,7 @@ extension Organizations { } public struct CreatePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Content", required: true, type: .string), AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Name", required: true, type: .string), @@ -1477,7 +765,7 @@ extension Organizations { } public struct PolicySummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "AwsManaged", required: false, type: .boolean), @@ -1498,27 +786,1075 @@ extension Organizations { /// The unique identifier (ID) of the policy. The regex pattern for a policy ID string requires "p-" followed by from 8 to 128 lower-case letters or digits. public let id: String? - public init(description: String? = nil, arn: String? = nil, awsManaged: Bool? = nil, type: PolicyType? = nil, name: String? = nil, id: String? = nil) { - self.description = description - self.arn = arn - self.awsManaged = awsManaged - self.`type` = `type` - self.name = name - self.id = id + public init(description: String? = nil, arn: String? = nil, awsManaged: Bool? = nil, type: PolicyType? = nil, name: String? = nil, id: String? = nil) { + self.description = description + self.arn = arn + self.awsManaged = awsManaged + self.`type` = `type` + self.name = name + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case description = "Description" + case arn = "Arn" + case awsManaged = "AwsManaged" + case `type` = "Type" + case name = "Name" + case id = "Id" + } + } + + public struct EnableAWSServiceAccessRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServicePrincipal", required: true, type: .string) + ] + /// The service principal name of the AWS service for which you want to enable integration with your organization. This is typically in the form of a URL, such as service-abbreviation.amazonaws.com. + public let servicePrincipal: String + + public init(servicePrincipal: String) { + self.servicePrincipal = servicePrincipal + } + + private enum CodingKeys: String, CodingKey { + case servicePrincipal = "ServicePrincipal" + } + } + + public struct DescribeHandshakeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Handshake", required: false, type: .structure) + ] + /// A structure that contains information about the specified handshake. + public let handshake: Handshake? + + public init(handshake: Handshake? = nil) { + self.handshake = handshake + } + + private enum CodingKeys: String, CodingKey { + case handshake = "Handshake" + } + } + + public enum HandshakeResourceType: String, CustomStringConvertible, Codable { + case account = "ACCOUNT" + case organization = "ORGANIZATION" + case organizationFeatureSet = "ORGANIZATION_FEATURE_SET" + case email = "EMAIL" + case masterEmail = "MASTER_EMAIL" + case masterName = "MASTER_NAME" + case notes = "NOTES" + case parentHandshake = "PARENT_HANDSHAKE" + public var description: String { return self.rawValue } + } + + public struct CancelHandshakeRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "HandshakeId", required: true, type: .string) + ] + /// The unique identifier (ID) of the handshake that you want to cancel. You can get the ID from the ListHandshakesForOrganization operation. The regex pattern for handshake ID string requires "h-" followed by from 8 to 32 lower-case letters or digits. + public let handshakeId: String + + public init(handshakeId: String) { + self.handshakeId = handshakeId + } + + private enum CodingKeys: String, CodingKey { + case handshakeId = "HandshakeId" + } + } + + public enum CreateAccountFailureReason: String, CustomStringConvertible, Codable { + case accountLimitExceeded = "ACCOUNT_LIMIT_EXCEEDED" + case emailAlreadyExists = "EMAIL_ALREADY_EXISTS" + case invalidAddress = "INVALID_ADDRESS" + case invalidEmail = "INVALID_EMAIL" + case concurrentAccountModification = "CONCURRENT_ACCOUNT_MODIFICATION" + case internalFailure = "INTERNAL_FAILURE" + public var description: String { return self.rawValue } + } + + public struct CreateOrganizationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FeatureSet", required: false, type: .enum) + ] + /// Specifies the feature set supported by the new organization. Each feature set supports different levels of functionality. CONSOLIDATED_BILLING: All member accounts have their bills consolidated to and paid by the master account. For more information, see Consolidated Billing in the AWS Organizations User Guide. ALL: In addition to all the features supported by the consolidated billing feature set, the master account can also apply any type of policy to any member account in the organization. For more information, see All features in the AWS Organizations User Guide. + public let featureSet: OrganizationFeatureSet? + + public init(featureSet: OrganizationFeatureSet? = nil) { + self.featureSet = featureSet + } + + private enum CodingKeys: String, CodingKey { + case featureSet = "FeatureSet" + } + } + + public struct DisableAWSServiceAccessRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServicePrincipal", required: true, type: .string) + ] + /// The service principal name of the AWS service for which you want to disable integration with your organization. This is typically in the form of a URL, such as service-abbreviation.amazonaws.com. + public let servicePrincipal: String + + public init(servicePrincipal: String) { + self.servicePrincipal = servicePrincipal + } + + private enum CodingKeys: String, CodingKey { + case servicePrincipal = "ServicePrincipal" + } + } + + public struct PolicyTargetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "TargetId", required: false, type: .string) + ] + /// The Amazon Resource Name (ARN) of the policy target. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. + public let arn: String? + /// The type of the policy target. + public let `type`: TargetType? + /// The friendly name of the policy target. The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range. + public let name: String? + /// The unique identifier (ID) of the policy target. The regex pattern for a target ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Account: a string that consists of exactly 12 digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let targetId: String? + + public init(arn: String? = nil, type: TargetType? = nil, name: String? = nil, targetId: String? = nil) { + self.arn = arn + self.`type` = `type` + self.name = name + self.targetId = targetId + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case `type` = "Type" + case name = "Name" + case targetId = "TargetId" + } + } + + public struct OrganizationalUnit: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// The friendly name of this OU. The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range. + public let name: String? + /// The Amazon Resource Name (ARN) of this OU. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. + public let arn: String? + /// The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let id: String? + + public init(name: String? = nil, arn: String? = nil, id: String? = nil) { + self.name = name + self.arn = arn + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case arn = "Arn" + case id = "Id" + } + } + + public struct DescribeAccountResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Account", required: false, type: .structure) + ] + /// A structure that contains information about the requested account. + public let account: Account? + + public init(account: Account? = nil) { + self.account = account + } + + private enum CodingKeys: String, CodingKey { + case account = "Account" + } + } + + public struct Root: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "PolicyTypes", required: false, type: .list), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// The Amazon Resource Name (ARN) of the root. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. + public let arn: String? + /// The types of policies that are currently enabled for the root and therefore can be attached to the root or to its OUs or accounts. + public let policyTypes: [PolicyTypeSummary]? + /// The friendly name of the root. The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range. + public let name: String? + /// The unique identifier (ID) for the root. The regex pattern for a root ID string requires "r-" followed by from 4 to 32 lower-case letters or digits. + public let id: String? + + public init(arn: String? = nil, policyTypes: [PolicyTypeSummary]? = nil, name: String? = nil, id: String? = nil) { + self.arn = arn + self.policyTypes = policyTypes + self.name = name + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case policyTypes = "PolicyTypes" + case name = "Name" + case id = "Id" + } + } + + public struct DeleteOrganizationalUnitRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OrganizationalUnitId", required: true, type: .string) + ] + /// The unique identifier (ID) of the organizational unit that you want to delete. You can get the ID from the ListOrganizationalUnitsForParent operation. The regex pattern for an organizational unit ID string requires "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let organizationalUnitId: String + + public init(organizationalUnitId: String) { + self.organizationalUnitId = organizationalUnitId + } + + private enum CodingKeys: String, CodingKey { + case organizationalUnitId = "OrganizationalUnitId" + } + } + + public struct DescribePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyId", required: true, type: .string) + ] + /// The unique identifier (ID) of the policy that you want details about. You can get the ID from the ListPolicies or ListPoliciesForTarget operations. The regex pattern for a policy ID string requires "p-" followed by from 8 to 128 lower-case letters or digits. + public let policyId: String + + public init(policyId: String) { + self.policyId = policyId + } + + private enum CodingKeys: String, CodingKey { + case policyId = "PolicyId" + } + } + + public struct ListAccountsForParentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ParentId", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. + public let nextToken: String? + /// The unique identifier (ID) for the parent root or organization unit (OU) whose accounts you want to list. + public let parentId: String + /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. + public let maxResults: Int32? + + public init(nextToken: String? = nil, parentId: String, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.parentId = parentId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case parentId = "ParentId" + case maxResults = "MaxResults" + } + } + + public struct HandshakeFilter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ActionType", required: false, type: .enum), + AWSShapeMember(label: "ParentHandshakeId", required: false, type: .string) + ] + /// Specifies the type of handshake action. If you specify ActionType, you cannot also specify ParentHandshakeId. + public let actionType: ActionType? + /// Specifies the parent handshake. Only used for handshake types that are a child of another type. If you specify ParentHandshakeId, you cannot also specify ActionType. The regex pattern for handshake ID string requires "h-" followed by from 8 to 32 lower-case letters or digits. + public let parentHandshakeId: String? + + public init(actionType: ActionType? = nil, parentHandshakeId: String? = nil) { + self.actionType = actionType + self.parentHandshakeId = parentHandshakeId + } + + private enum CodingKeys: String, CodingKey { + case actionType = "ActionType" + case parentHandshakeId = "ParentHandshakeId" + } + } + + public enum HandshakeConstraintViolationExceptionReason: String, CustomStringConvertible, Codable { + case accountNumberLimitExceeded = "ACCOUNT_NUMBER_LIMIT_EXCEEDED" + case handshakeRateLimitExceeded = "HANDSHAKE_RATE_LIMIT_EXCEEDED" + case alreadyInAnOrganization = "ALREADY_IN_AN_ORGANIZATION" + case organizationAlreadyHasAllFeatures = "ORGANIZATION_ALREADY_HAS_ALL_FEATURES" + case inviteDisabledDuringEnableAllFeatures = "INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES" + case paymentInstrumentRequired = "PAYMENT_INSTRUMENT_REQUIRED" + case organizationFromDifferentSellerOfRecord = "ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD" + case organizationMembershipChangeRateLimitExceeded = "ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED" + public var description: String { return self.rawValue } + } + + public struct CancelHandshakeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Handshake", required: false, type: .structure) + ] + /// A structure that contains details about the handshake that you canceled. + public let handshake: Handshake? + + public init(handshake: Handshake? = nil) { + self.handshake = handshake + } + + private enum CodingKeys: String, CodingKey { + case handshake = "Handshake" + } + } + + public enum OrganizationFeatureSet: String, CustomStringConvertible, Codable { + case all = "ALL" + case consolidatedBilling = "CONSOLIDATED_BILLING" + public var description: String { return self.rawValue } + } + + public struct CreateAccountStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountId", required: false, type: .string), + AWSShapeMember(label: "RequestedTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "State", required: false, type: .enum), + AWSShapeMember(label: "AccountName", required: false, type: .string), + AWSShapeMember(label: "CompletedTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "FailureReason", required: false, type: .enum), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// If the account was created successfully, the unique identifier (ID) of the new account. The regex pattern for an account ID string requires exactly 12 digits. + public let accountId: String? + /// The date and time that the request was made for the account creation. + public let requestedTimestamp: TimeStamp? + /// The status of the request. + public let state: CreateAccountState? + /// The account name given to the account when it was created. + public let accountName: String? + /// The date and time that the account was created and the request completed. + public let completedTimestamp: TimeStamp? + /// If the request failed, a description of the reason for the failure. ACCOUNT_LIMIT_EXCEEDED: The account could not be created because you have reached the limit on the number of accounts in your organization. EMAIL_ALREADY_EXISTS: The account could not be created because another AWS account with that email address already exists. INVALID_ADDRESS: The account could not be created because the address you provided is not valid. INVALID_EMAIL: The account could not be created because the email address you provided is not valid. INTERNAL_FAILURE: The account could not be created because of an internal failure. Try again later. If the problem persists, contact Customer Support. + public let failureReason: CreateAccountFailureReason? + /// The unique identifier (ID) that references this request. You get this value from the response of the initial CreateAccount request to create the account. The regex pattern for an create account request ID string requires "car-" followed by from 8 to 32 lower-case letters or digits. + public let id: String? + + public init(accountId: String? = nil, requestedTimestamp: TimeStamp? = nil, state: CreateAccountState? = nil, accountName: String? = nil, completedTimestamp: TimeStamp? = nil, failureReason: CreateAccountFailureReason? = nil, id: String? = nil) { + self.accountId = accountId + self.requestedTimestamp = requestedTimestamp + self.state = state + self.accountName = accountName + self.completedTimestamp = completedTimestamp + self.failureReason = failureReason + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case accountId = "AccountId" + case requestedTimestamp = "RequestedTimestamp" + case state = "State" + case accountName = "AccountName" + case completedTimestamp = "CompletedTimestamp" + case failureReason = "FailureReason" + case id = "Id" + } + } + + public enum HandshakeState: String, CustomStringConvertible, Codable { + case requested = "REQUESTED" + case open = "OPEN" + case canceled = "CANCELED" + case accepted = "ACCEPTED" + case declined = "DECLINED" + case expired = "EXPIRED" + public var description: String { return self.rawValue } + } + + public struct DeclineHandshakeResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Handshake", required: false, type: .structure) + ] + /// A structure that contains details about the declined handshake. The state is updated to show the value DECLINED. + public let handshake: Handshake? + + public init(handshake: Handshake? = nil) { + self.handshake = handshake + } + + private enum CodingKeys: String, CodingKey { + case handshake = "Handshake" + } + } + + public struct ListPoliciesForTargetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filter", required: true, type: .enum), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "TargetId", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The type of policy that you want to include in the returned list. + public let filter: PolicyType + /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. + public let nextToken: String? + /// The unique identifier (ID) of the root, organizational unit, or account whose policies you want to list. The regex pattern for a target ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Account: a string that consists of exactly 12 digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let targetId: String + /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. + public let maxResults: Int32? + + public init(filter: PolicyType, nextToken: String? = nil, targetId: String, maxResults: Int32? = nil) { + self.filter = filter + self.nextToken = nextToken + self.targetId = targetId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filter = "Filter" + case nextToken = "NextToken" + case targetId = "TargetId" + case maxResults = "MaxResults" + } + } + + public struct ListPoliciesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxResults", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filter", required: true, type: .enum) + ] + /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. + public let maxResults: Int32? + /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. + public let nextToken: String? + /// Specifies the type of policy that you want to include in the response. + public let filter: PolicyType + + public init(maxResults: Int32? = nil, nextToken: String? = nil, filter: PolicyType) { + self.maxResults = maxResults + self.nextToken = nextToken + self.filter = filter + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "MaxResults" + case nextToken = "NextToken" + case filter = "Filter" + } + } + + public struct ListTargetsForPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyId", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The unique identifier (ID) of the policy for which you want to know its attachments. The regex pattern for a policy ID string requires "p-" followed by from 8 to 128 lower-case letters or digits. + public let policyId: String + /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. + public let nextToken: String? + /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. + public let maxResults: Int32? + + public init(policyId: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.policyId = policyId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case policyId = "PolicyId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public class HandshakeResource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "Value", required: false, type: .string), + AWSShapeMember(label: "Resources", required: false, type: .list) + ] + /// The type of information being passed, specifying how the value is to be interpreted by the other party: ACCOUNT - Specifies an AWS account ID number. ORGANIZATION - Specifies an organization ID number. EMAIL - Specifies the email address that is associated with the account that receives the handshake. OWNER_EMAIL - Specifies the email address associated with the master account. Included as information about an organization. OWNER_NAME - Specifies the name associated with the master account. Included as information about an organization. NOTES - Additional text provided by the handshake initiator and intended for the recipient to read. + public let `type`: HandshakeResourceType? + /// The information that is passed to the other party in the handshake. The format of the value string must match the requirements of the specified type. + public let value: String? + /// When needed, contains an additional array of HandshakeResource objects. + public let resources: [HandshakeResource]? + + public init(type: HandshakeResourceType? = nil, value: String? = nil, resources: [HandshakeResource]? = nil) { + self.`type` = `type` + self.value = value + self.resources = resources + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case value = "Value" + case resources = "Resources" + } + } + + public struct EnableAllFeaturesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Handshake", required: false, type: .structure) + ] + /// A structure that contains details about the handshake created to support this request to enable all features in the organization. + public let handshake: Handshake? + + public init(handshake: Handshake? = nil) { + self.handshake = handshake + } + + private enum CodingKeys: String, CodingKey { + case handshake = "Handshake" + } + } + + public struct CreateAccountResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateAccountStatus", required: false, type: .structure) + ] + /// A structure that contains details about the request to create an account. This response structure might not be fully populated when you first receive it because account creation is an asynchronous process. You can pass the returned CreateAccountStatus ID as a parameter to DescribeCreateAccountStatus to get status about the progress of the request at later times. + public let createAccountStatus: CreateAccountStatus? + + public init(createAccountStatus: CreateAccountStatus? = nil) { + self.createAccountStatus = createAccountStatus + } + + private enum CodingKeys: String, CodingKey { + case createAccountStatus = "CreateAccountStatus" + } + } + + public struct InviteAccountToOrganizationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Handshake", required: false, type: .structure) + ] + /// A structure that contains details about the handshake that is created to support this invitation request. + public let handshake: Handshake? + + public init(handshake: Handshake? = nil) { + self.handshake = handshake + } + + private enum CodingKeys: String, CodingKey { + case handshake = "Handshake" + } + } + + public struct CreateOrganizationalUnitRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "ParentId", required: true, type: .string) + ] + /// The friendly name to assign to the new OU. + public let name: String + /// The unique identifier (ID) of the parent root or OU in which you want to create the new OU. The regex pattern for a parent ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let parentId: String + + public init(name: String, parentId: String) { + self.name = name + self.parentId = parentId + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case parentId = "ParentId" + } + } + + public struct CreateOrganizationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Organization", required: false, type: .structure) + ] + /// A structure that contains details about the newly created organization. + public let organization: Organization? + + public init(organization: Organization? = nil) { + self.organization = organization + } + + private enum CodingKeys: String, CodingKey { + case organization = "Organization" + } + } + + public struct DescribeCreateAccountStatusResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateAccountStatus", required: false, type: .structure) + ] + /// A structure that contains the current status of an account creation request. + public let createAccountStatus: CreateAccountStatus? + + public init(createAccountStatus: CreateAccountStatus? = nil) { + self.createAccountStatus = createAccountStatus + } + + private enum CodingKeys: String, CodingKey { + case createAccountStatus = "CreateAccountStatus" + } + } + + public struct ListRootsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Roots", required: false, type: .list) + ] + /// If present, this value indicates that there is more output available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. + public let nextToken: String? + /// A list of roots that are defined in an organization. + public let roots: [Root]? + + public init(nextToken: String? = nil, roots: [Root]? = nil) { + self.nextToken = nextToken + self.roots = roots + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case roots = "Roots" + } + } + + public struct AttachPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyId", required: true, type: .string), + AWSShapeMember(label: "TargetId", required: true, type: .string) + ] + /// The unique identifier (ID) of the policy that you want to attach to the target. You can get the ID for the policy by calling the ListPolicies operation. The regex pattern for a policy ID string requires "p-" followed by from 8 to 128 lower-case letters or digits. + public let policyId: String + /// The unique identifier (ID) of the root, OU, or account that you want to attach the policy to. You can get the ID by calling the ListRoots, ListOrganizationalUnitsForParent, or ListAccounts operations. The regex pattern for a target ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Account: a string that consists of exactly 12 digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let targetId: String + + public init(policyId: String, targetId: String) { + self.policyId = policyId + self.targetId = targetId + } + + private enum CodingKeys: String, CodingKey { + case policyId = "PolicyId" + case targetId = "TargetId" + } + } + + public struct Organization: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MasterAccountEmail", required: false, type: .string), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "AvailablePolicyTypes", required: false, type: .list), + AWSShapeMember(label: "MasterAccountArn", required: false, type: .string), + AWSShapeMember(label: "FeatureSet", required: false, type: .enum), + AWSShapeMember(label: "MasterAccountId", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// The email address that is associated with the AWS account that is designated as the master account for the organization. + public let masterAccountEmail: String? + /// The Amazon Resource Name (ARN) of an organization. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. + public let arn: String? + /// A list of policy types that are enabled for this organization. For example, if your organization has all features enabled, then service control policies (SCPs) are included in the list. + public let availablePolicyTypes: [PolicyTypeSummary]? + /// The Amazon Resource Name (ARN) of the account that is designated as the master account for the organization. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. + public let masterAccountArn: String? + /// Specifies the functionality that currently is available to the organization. If set to "ALL", then all features are enabled and policies can be applied to accounts in the organization. If set to "CONSOLIDATED_BILLING", then only consolidated billing functionality is available. For more information, see Enabling All Features in Your Organization in the AWS Organizations User Guide. + public let featureSet: OrganizationFeatureSet? + /// The unique identifier (ID) of the master account of an organization. The regex pattern for an account ID string requires exactly 12 digits. + public let masterAccountId: String? + /// The unique identifier (ID) of an organization. The regex pattern for an organization ID string requires "o-" followed by from 10 to 32 lower-case letters or digits. + public let id: String? + + public init(masterAccountEmail: String? = nil, arn: String? = nil, availablePolicyTypes: [PolicyTypeSummary]? = nil, masterAccountArn: String? = nil, featureSet: OrganizationFeatureSet? = nil, masterAccountId: String? = nil, id: String? = nil) { + self.masterAccountEmail = masterAccountEmail + self.arn = arn + self.availablePolicyTypes = availablePolicyTypes + self.masterAccountArn = masterAccountArn + self.featureSet = featureSet + self.masterAccountId = masterAccountId + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case masterAccountEmail = "MasterAccountEmail" + case arn = "Arn" + case availablePolicyTypes = "AvailablePolicyTypes" + case masterAccountArn = "MasterAccountArn" + case featureSet = "FeatureSet" + case masterAccountId = "MasterAccountId" + case id = "Id" + } + } + + public enum ConstraintViolationExceptionReason: String, CustomStringConvertible, Codable { + case accountNumberLimitExceeded = "ACCOUNT_NUMBER_LIMIT_EXCEEDED" + case handshakeRateLimitExceeded = "HANDSHAKE_RATE_LIMIT_EXCEEDED" + case ouNumberLimitExceeded = "OU_NUMBER_LIMIT_EXCEEDED" + case ouDepthLimitExceeded = "OU_DEPTH_LIMIT_EXCEEDED" + case policyNumberLimitExceeded = "POLICY_NUMBER_LIMIT_EXCEEDED" + case maxPolicyTypeAttachmentLimitExceeded = "MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED" + case minPolicyTypeAttachmentLimitExceeded = "MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED" + case accountCannotLeaveOrganization = "ACCOUNT_CANNOT_LEAVE_ORGANIZATION" + case accountCannotLeaveWithoutEula = "ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA" + case accountCannotLeaveWithoutPhoneVerification = "ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION" + case masterAccountPaymentInstrumentRequired = "MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED" + case memberAccountPaymentInstrumentRequired = "MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED" + case accountCreationRateLimitExceeded = "ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED" + case masterAccountAddressDoesNotMatchMarketplace = "MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE" + case masterAccountMissingContactInfo = "MASTER_ACCOUNT_MISSING_CONTACT_INFO" + case organizationNotInAllFeaturesMode = "ORGANIZATION_NOT_IN_ALL_FEATURES_MODE" + public var description: String { return self.rawValue } + } + + public enum IAMUserAccessToBilling: String, CustomStringConvertible, Codable { + case allow = "ALLOW" + case deny = "DENY" + public var description: String { return self.rawValue } + } + + public struct ListChildrenRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChildType", required: true, type: .enum), + AWSShapeMember(label: "ParentId", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Filters the output to include only the specified child type. + public let childType: ChildType + /// The unique identifier (ID) for the parent root or OU whose children you want to list. The regex pattern for a parent ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let parentId: String + /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. + public let nextToken: String? + /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. + public let maxResults: Int32? + + public init(childType: ChildType, parentId: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.childType = childType + self.parentId = parentId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case childType = "ChildType" + case parentId = "ParentId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct Account: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "Email", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "JoinedTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "JoinedMethod", required: false, type: .enum), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// The status of the account in the organization. + public let status: AccountStatus? + /// The Amazon Resource Name (ARN) of the account. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. + public let arn: String? + /// The email address associated with the AWS account. The regex pattern for this parameter is a string of characters that represents a standard Internet email address. + public let email: String? + /// The friendly name of the account. The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range. + public let name: String? + /// The date the account became a part of the organization. + public let joinedTimestamp: TimeStamp? + /// The method by which the account joined the organization. + public let joinedMethod: AccountJoinedMethod? + /// The unique identifier (ID) of the account. The regex pattern for an account ID string requires exactly 12 digits. + public let id: String? + + public init(status: AccountStatus? = nil, arn: String? = nil, email: String? = nil, name: String? = nil, joinedTimestamp: TimeStamp? = nil, joinedMethod: AccountJoinedMethod? = nil, id: String? = nil) { + self.status = status + self.arn = arn + self.email = email + self.name = name + self.joinedTimestamp = joinedTimestamp + self.joinedMethod = joinedMethod + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case status = "Status" + case arn = "Arn" + case email = "Email" + case name = "Name" + case joinedTimestamp = "JoinedTimestamp" + case joinedMethod = "JoinedMethod" + case id = "Id" + } + } + + public struct ListAccountsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. + public let nextToken: String? + /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct ListAWSServiceAccessForOrganizationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. + public let nextToken: String? + /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct ListHandshakesForAccountRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxResults", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filter", required: false, type: .structure) + ] + /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. + public let maxResults: Int32? + /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. + public let nextToken: String? + /// Filters the handshakes that you want included in the response. The default is all types. Use the ActionType element to limit the output to only a specified type, such as INVITE, ENABLE-FULL-CONTROL, or APPROVE-FULL-CONTROL. Alternatively, for the ENABLE-FULL-CONTROL handshake that generates a separate child handshake for each member account, you can specify ParentHandshakeId to see only the handshakes that were generated by that parent request. + public let filter: HandshakeFilter? + + public init(maxResults: Int32? = nil, nextToken: String? = nil, filter: HandshakeFilter? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + self.filter = filter + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "MaxResults" + case nextToken = "NextToken" + case filter = "Filter" + } + } + + public struct ListCreateAccountStatusResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateAccountStatuses", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// A list of objects with details about the requests. Certain elements, such as the accountId number, are present in the output only after the account has been successfully created. + public let createAccountStatuses: [CreateAccountStatus]? + /// If present, this value indicates that there is more output available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. + public let nextToken: String? + + public init(createAccountStatuses: [CreateAccountStatus]? = nil, nextToken: String? = nil) { + self.createAccountStatuses = createAccountStatuses + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case createAccountStatuses = "CreateAccountStatuses" + case nextToken = "NextToken" + } + } + + public enum PolicyTypeStatus: String, CustomStringConvertible, Codable { + case enabled = "ENABLED" + case pendingEnable = "PENDING_ENABLE" + case pendingDisable = "PENDING_DISABLE" + public var description: String { return self.rawValue } + } + + public struct UpdateOrganizationalUnitRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OrganizationalUnitId", required: true, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string) + ] + /// The unique identifier (ID) of the OU that you want to rename. You can get the ID from the ListOrganizationalUnitsForParent operation. The regex pattern for an organizational unit ID string requires "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. + public let organizationalUnitId: String + /// The new name that you want to assign to the OU. The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range. + public let name: String? + + public init(organizationalUnitId: String, name: String? = nil) { + self.organizationalUnitId = organizationalUnitId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case organizationalUnitId = "OrganizationalUnitId" + case name = "Name" + } + } + + public struct EnabledServicePrincipal: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServicePrincipal", required: false, type: .string), + AWSShapeMember(label: "DateEnabled", required: false, type: .timestamp) + ] + /// The name of the service principal. This is typically in the form of a URL, such as: servicename.amazonaws.com. + public let servicePrincipal: String? + /// The date that the service principal was enabled for integration with AWS Organizations. + public let dateEnabled: TimeStamp? + + public init(servicePrincipal: String? = nil, dateEnabled: TimeStamp? = nil) { + self.servicePrincipal = servicePrincipal + self.dateEnabled = dateEnabled + } + + private enum CodingKeys: String, CodingKey { + case servicePrincipal = "ServicePrincipal" + case dateEnabled = "DateEnabled" + } + } + + public struct CreateAccountRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountName", required: true, type: .string), + AWSShapeMember(label: "Email", required: true, type: .string), + AWSShapeMember(label: "RoleName", required: false, type: .string), + AWSShapeMember(label: "IamUserAccessToBilling", required: false, type: .enum) + ] + /// The friendly name of the member account. + public let accountName: String + /// The email address of the owner to assign to the new member account. This email address must not already be associated with another AWS account. You must use a valid email address to complete account creation. You cannot access the root user of the account or remove an account that was created with an invalid email address. + public let email: String + /// (Optional) The name of an IAM role that Organizations automatically preconfigures in the new member account. This role trusts the master account, allowing users in the master account to assume the role, as permitted by the master account administrator. The role has administrator permissions in the new member account. If you do not specify this parameter, the role name defaults to OrganizationAccountAccessRole. For more information about how to use this role to access the member account, see Accessing and Administering the Member Accounts in Your Organization in the AWS Organizations User Guide, and steps 2 and 3 in Tutorial: Delegate Access Across AWS Accounts Using IAM Roles in the IAM User Guide. The regex pattern that is used to validate this parameter is a string of characters that can consist of uppercase letters, lowercase letters, digits with no spaces, and any of the following characters: =,.@- + public let roleName: String? + /// If set to ALLOW, the new account enables IAM users to access account billing information if they have the required permissions. If set to DENY, then only the root user of the new account can access account billing information. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide. If you do not specify this parameter, the value defaults to ALLOW, and IAM users and roles with the required permissions can access billing information for the new account. + public let iamUserAccessToBilling: IAMUserAccessToBilling? + + public init(accountName: String, email: String, roleName: String? = nil, iamUserAccessToBilling: IAMUserAccessToBilling? = nil) { + self.accountName = accountName + self.email = email + self.roleName = roleName + self.iamUserAccessToBilling = iamUserAccessToBilling + } + + private enum CodingKeys: String, CodingKey { + case accountName = "AccountName" + case email = "Email" + case roleName = "RoleName" + case iamUserAccessToBilling = "IamUserAccessToBilling" + } + } + + public enum ActionType: String, CustomStringConvertible, Codable { + case invite = "INVITE" + case enableAllFeatures = "ENABLE_ALL_FEATURES" + case approveAllFeatures = "APPROVE_ALL_FEATURES" + case addOrganizationsServiceLinkedRole = "ADD_ORGANIZATIONS_SERVICE_LINKED_ROLE" + public var description: String { return self.rawValue } + } + + public struct DeletePolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PolicyId", required: true, type: .string) + ] + /// The unique identifier (ID) of the policy that you want to delete. You can get the ID from the ListPolicies or ListPoliciesForTarget operations. The regex pattern for a policy ID string requires "p-" followed by from 8 to 128 lower-case letters or digits. + public let policyId: String + + public init(policyId: String) { + self.policyId = policyId + } + + private enum CodingKeys: String, CodingKey { + case policyId = "PolicyId" + } + } + + public struct UpdatePolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Policy", required: false, type: .structure) + ] + /// A structure that contains details about the updated policy, showing the requested changes. + public let policy: Policy? + + public init(policy: Policy? = nil) { + self.policy = policy + } + + private enum CodingKeys: String, CodingKey { + case policy = "Policy" + } + } + + public struct ListAccountsForParentResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Accounts", required: false, type: .list) + ] + /// If present, this value indicates that there is more output available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. + public let nextToken: String? + /// A list of the accounts in the specified root or OU. + public let accounts: [Account]? + + public init(nextToken: String? = nil, accounts: [Account]? = nil) { + self.nextToken = nextToken + self.accounts = accounts + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case accounts = "Accounts" + } + } + + public struct ListHandshakesForOrganizationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxResults", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filter", required: false, type: .structure) + ] + /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. + public let maxResults: Int32? + /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. + public let nextToken: String? + /// A filter of the handshakes that you want included in the response. The default is all types. Use the ActionType element to limit the output to only a specified type, such as INVITE, ENABLE-ALL-FEATURES, or APPROVE-ALL-FEATURES. Alternatively, for the ENABLE-ALL-FEATURES handshake that generates a separate child handshake for each member account, you can specify the ParentHandshakeId to see only the handshakes that were generated by that parent request. + public let filter: HandshakeFilter? + + public init(maxResults: Int32? = nil, nextToken: String? = nil, filter: HandshakeFilter? = nil) { + self.maxResults = maxResults + self.nextToken = nextToken + self.filter = filter } private enum CodingKeys: String, CodingKey { - case description = "Description" - case arn = "Arn" - case awsManaged = "AwsManaged" - case `type` = "Type" - case name = "Name" - case id = "Id" + case maxResults = "MaxResults" + case nextToken = "NextToken" + case filter = "Filter" } } public struct DisablePolicyTypeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Root", required: false, type: .structure) ] /// A structure that shows the root with the updated list of enabled policy types. @@ -1534,7 +1870,7 @@ extension Organizations { } public struct ListHandshakesForOrganizationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Handshakes", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1555,7 +1891,7 @@ extension Organizations { } public struct Handshake: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RequestedTimestamp", required: false, type: .timestamp), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "Action", required: false, type: .enum), @@ -1569,7 +1905,7 @@ extension Organizations { public let requestedTimestamp: TimeStamp? /// The Amazon Resource Name (ARN) of a handshake. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. public let arn: String? - /// The type of handshake, indicating what action occurs when the recipient accepts the handshake. + /// The type of handshake, indicating what action occurs when the recipient accepts the handshake. The following handshake types are supported: INVITE: This type of handshake represents a request to join an organization. It is always sent from the master account to only non-member accounts. ENABLE_ALL_FEATURES: This type of handshake represents a request to enable all features in an organization. It is always sent from the master account to only invited member accounts. Created accounts do not receive this because those accounts were created by the organization's master account and approval is inferred. APPROVE_ALL_FEATURES: This type of handshake is sent from the Organizations service when all member accounts have approved the ENABLE_ALL_FEATURES invitation. It is sent only to the master account and signals the master that it can finalize the process to enable all features. public let action: ActionType? /// The current state of the handshake. Use the state to trace the flow of the handshake through the process from its creation to its acceptance. The meaning of each of the valid values is as follows: REQUESTED: This handshake was sent to multiple recipients (applicable to only some handshake types) and not all recipients have responded yet. The request stays in this state until all recipients respond. OPEN: This handshake was sent to multiple recipients (applicable to only some policy types) and all recipients have responded, allowing the originator to complete the handshake action. CANCELED: This handshake is no longer active because it was canceled by the originating account. ACCEPTED: This handshake is complete because it has been accepted by the recipient. DECLINED: This handshake is no longer active because it was declined by the recipient account. EXPIRED: This handshake is no longer active because the originator did not receive a response of any kind from the recipient before the expiration time (15 days). public let state: HandshakeState? @@ -1605,68 +1941,8 @@ extension Organizations { } } - public struct DescribeHandshakeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Handshake", required: false, type: .structure) - ] - /// A structure that contains information about the specified handshake. - public let handshake: Handshake? - - public init(handshake: Handshake? = nil) { - self.handshake = handshake - } - - private enum CodingKeys: String, CodingKey { - case handshake = "Handshake" - } - } - - public enum HandshakeResourceType: String, CustomStringConvertible, Codable { - case account = "ACCOUNT" - case organization = "ORGANIZATION" - case organizationFeatureSet = "ORGANIZATION_FEATURE_SET" - case email = "EMAIL" - case masterEmail = "MASTER_EMAIL" - case masterName = "MASTER_NAME" - case notes = "NOTES" - case parentHandshake = "PARENT_HANDSHAKE" - public var description: String { return self.rawValue } - } - - public struct CancelHandshakeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "HandshakeId", required: true, type: .string) - ] - /// The unique identifier (ID) of the handshake that you want to cancel. You can get the ID from the ListHandshakesForOrganization operation. The regex pattern for handshake ID string requires "h-" followed by from 8 to 32 lower-case letters or digits. - public let handshakeId: String - - public init(handshakeId: String) { - self.handshakeId = handshakeId - } - - private enum CodingKeys: String, CodingKey { - case handshakeId = "HandshakeId" - } - } - - public struct CreateOrganizationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FeatureSet", required: false, type: .enum) - ] - /// Specifies the feature set supported by the new organization. Each feature set supports different levels of functionality. CONSOLIDATED_BILLING: All member accounts have their bills consolidated to and paid by the master account. For more information, see Consolidated Billing in the AWS Organizations User Guide. ALL: In addition to all the features supported by the consolidated billing feature set, the master account can also apply any type of policy to any member account in the organization. For more information, see All features in the AWS Organizations User Guide. - public let featureSet: OrganizationFeatureSet? - - public init(featureSet: OrganizationFeatureSet? = nil) { - self.featureSet = featureSet - } - - private enum CodingKeys: String, CodingKey { - case featureSet = "FeatureSet" - } - } - public struct ListOrganizationalUnitsForParentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ParentId", required: true, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -1691,48 +1967,8 @@ extension Organizations { } } - public enum CreateAccountFailureReason: String, CustomStringConvertible, Codable { - case accountLimitExceeded = "ACCOUNT_LIMIT_EXCEEDED" - case emailAlreadyExists = "EMAIL_ALREADY_EXISTS" - case invalidAddress = "INVALID_ADDRESS" - case invalidEmail = "INVALID_EMAIL" - case internalFailure = "INTERNAL_FAILURE" - public var description: String { return self.rawValue } - } - - public struct PolicyTargetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "Type", required: false, type: .enum), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "TargetId", required: false, type: .string) - ] - /// The Amazon Resource Name (ARN) of the policy target. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. - public let arn: String? - /// The type of the policy target. - public let `type`: TargetType? - /// The friendly name of the policy target. The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range. - public let name: String? - /// The unique identifier (ID) of the policy target. The regex pattern for a target ID string requires one of the following: Root: a string that begins with "r-" followed by from 4 to 32 lower-case letters or digits. Account: a string that consists of exactly 12 digits. Organizational unit (OU): a string that begins with "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that the OU is in) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let targetId: String? - - public init(arn: String? = nil, type: TargetType? = nil, name: String? = nil, targetId: String? = nil) { - self.arn = arn - self.`type` = `type` - self.name = name - self.targetId = targetId - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case `type` = "Type" - case name = "Name" - case targetId = "TargetId" - } - } - public struct AcceptHandshakeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Handshake", required: false, type: .structure) ] /// A structure that contains details about the accepted handshake. @@ -1753,7 +1989,7 @@ extension Organizations { } public struct ListHandshakesForAccountResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Handshakes", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1773,34 +2009,14 @@ extension Organizations { } } - public struct OrganizationalUnit: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - /// The friendly name of this OU. The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range. - public let name: String? - /// The Amazon Resource Name (ARN) of this OU. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. - public let arn: String? - /// The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let id: String? - - public init(name: String? = nil, arn: String? = nil, id: String? = nil) { - self.name = name - self.arn = arn - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case name = "Name" - case arn = "Arn" - case id = "Id" - } + public enum ParentType: String, CustomStringConvertible, Codable { + case root = "ROOT" + case organizationalUnit = "ORGANIZATIONAL_UNIT" + public var description: String { return self.rawValue } } public struct DescribeAccountRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string) ] /// The unique identifier (ID) of the AWS account that you want information about. You can get the ID from the ListAccounts or ListAccountsForParent operations. The regex pattern for an account ID string requires exactly 12 digits. @@ -1815,119 +2031,8 @@ extension Organizations { } } - public struct Root: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Arn", required: false, type: .string), - AWSShapeMember(label: "PolicyTypes", required: false, type: .list), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - /// The Amazon Resource Name (ARN) of the root. For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the AWS Organizations User Guide. - public let arn: String? - /// The types of policies that are currently enabled for the root and therefore can be attached to the root or to its OUs or accounts. - public let policyTypes: [PolicyTypeSummary]? - /// The friendly name of the root. The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range. - public let name: String? - /// The unique identifier (ID) for the root. The regex pattern for a root ID string requires "r-" followed by from 4 to 32 lower-case letters or digits. - public let id: String? - - public init(arn: String? = nil, policyTypes: [PolicyTypeSummary]? = nil, name: String? = nil, id: String? = nil) { - self.arn = arn - self.policyTypes = policyTypes - self.name = name - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case arn = "Arn" - case policyTypes = "PolicyTypes" - case name = "Name" - case id = "Id" - } - } - - public enum ParentType: String, CustomStringConvertible, Codable { - case root = "ROOT" - case organizationalUnit = "ORGANIZATIONAL_UNIT" - public var description: String { return self.rawValue } - } - - public struct DescribeAccountResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Account", required: false, type: .structure) - ] - /// A structure that contains information about the requested account. - public let account: Account? - - public init(account: Account? = nil) { - self.account = account - } - - private enum CodingKeys: String, CodingKey { - case account = "Account" - } - } - - public struct DescribePolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PolicyId", required: true, type: .string) - ] - /// The unique identifier (ID) of the policy that you want details about. You can get the ID from the ListPolicies or ListPoliciesForTarget operations. The regex pattern for a policy ID string requires "p-" followed by from 8 to 128 lower-case letters or digits. - public let policyId: String - - public init(policyId: String) { - self.policyId = policyId - } - - private enum CodingKeys: String, CodingKey { - case policyId = "PolicyId" - } - } - - public struct DeleteOrganizationalUnitRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OrganizationalUnitId", required: true, type: .string) - ] - /// The unique identifier (ID) of the organizational unit that you want to delete. You can get the ID from the ListOrganizationalUnitsForParent operation. The regex pattern for an organizational unit ID string requires "ou-" followed by from 4 to 32 lower-case letters or digits (the ID of the root that contains the OU) followed by a second "-" dash and from 8 to 32 additional lower-case letters or digits. - public let organizationalUnitId: String - - public init(organizationalUnitId: String) { - self.organizationalUnitId = organizationalUnitId - } - - private enum CodingKeys: String, CodingKey { - case organizationalUnitId = "OrganizationalUnitId" - } - } - - public struct ListAccountsForParentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "ParentId", required: true, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) - ] - /// Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from. - public let nextToken: String? - /// The unique identifier (ID) for the parent root or organization unit (OU) whose accounts you want to list. - public let parentId: String - /// (Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. - public let maxResults: Int32? - - public init(nextToken: String? = nil, parentId: String, maxResults: Int32? = nil) { - self.nextToken = nextToken - self.parentId = parentId - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case parentId = "ParentId" - case maxResults = "MaxResults" - } - } - public struct ListRootsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -1948,7 +2053,7 @@ extension Organizations { } public struct DescribeOrganizationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Organization", required: false, type: .structure) ] /// A structure that contains information about the organization. diff --git a/Sources/AWSSDKSwift/Services/pinpoint/Pinpoint_API.swift b/Sources/AWSSDKSwift/Services/pinpoint/Pinpoint_API.swift index c2e91bd82fe..c9a10b428b6 100644 --- a/Sources/AWSSDKSwift/Services/pinpoint/Pinpoint_API.swift +++ b/Sources/AWSSDKSwift/Services/pinpoint/Pinpoint_API.swift @@ -24,9 +24,9 @@ public struct Pinpoint { ) } - /// Update an SMS channel - public func updateSmsChannel(_ input: UpdateSmsChannelRequest) throws -> UpdateSmsChannelResponse { - return try client.send(operation: "UpdateSmsChannel", path: "/v1/apps/{application-id}/channels/sms", httpMethod: "PUT", input: input) + /// Get a BAIDU GCM channel + public func getBaiduChannel(_ input: GetBaiduChannelRequest) throws -> GetBaiduChannelResponse { + return try client.send(operation: "GetBaiduChannel", path: "/v1/apps/{application-id}/channels/baidu", httpMethod: "GET", input: input) } /// Returns information about a segment version. @@ -34,11 +34,131 @@ public struct Pinpoint { return try client.send(operation: "GetSegmentVersion", path: "/v1/apps/{application-id}/segments/{segment-id}/versions/{version}", httpMethod: "GET", input: input) } + /// Update an APNS VOIP channel + public func updateApnsVoipChannel(_ input: UpdateApnsVoipChannelRequest) throws -> UpdateApnsVoipChannelResponse { + return try client.send(operation: "UpdateApnsVoipChannel", path: "/v1/apps/{application-id}/channels/apns_voip", httpMethod: "PUT", input: input) + } + /// Returns information about a specific version of a campaign. public func getCampaignVersion(_ input: GetCampaignVersionRequest) throws -> GetCampaignVersionResponse { return try client.send(operation: "GetCampaignVersion", path: "/v1/apps/{application-id}/campaigns/{campaign-id}/versions/{version}", httpMethod: "GET", input: input) } + /// Returns information about the GCM channel for an app. + public func getGcmChannel(_ input: GetGcmChannelRequest) throws -> GetGcmChannelResponse { + return try client.send(operation: "GetGcmChannel", path: "/v1/apps/{application-id}/channels/gcm", httpMethod: "GET", input: input) + } + + /// Returns the event stream for an app. + public func getEventStream(_ input: GetEventStreamRequest) throws -> GetEventStreamResponse { + return try client.send(operation: "GetEventStream", path: "/v1/apps/{application-id}/eventstream", httpMethod: "GET", input: input) + } + + /// Returns information about your import jobs. + public func getImportJobs(_ input: GetImportJobsRequest) throws -> GetImportJobsResponse { + return try client.send(operation: "GetImportJobs", path: "/v1/apps/{application-id}/jobs/import", httpMethod: "GET", input: input) + } + + /// Deletes an app. + public func deleteApp(_ input: DeleteAppRequest) throws -> DeleteAppResponse { + return try client.send(operation: "DeleteApp", path: "/v1/apps/{application-id}", httpMethod: "DELETE", input: input) + } + + /// Update an APNS VOIP sandbox channel + public func updateApnsVoipSandboxChannel(_ input: UpdateApnsVoipSandboxChannelRequest) throws -> UpdateApnsVoipSandboxChannelResponse { + return try client.send(operation: "UpdateApnsVoipSandboxChannel", path: "/v1/apps/{application-id}/channels/apns_voip_sandbox", httpMethod: "PUT", input: input) + } + + /// Deletes a campaign. + public func deleteCampaign(_ input: DeleteCampaignRequest) throws -> DeleteCampaignResponse { + return try client.send(operation: "DeleteCampaign", path: "/v1/apps/{application-id}/campaigns/{campaign-id}", httpMethod: "DELETE", input: input) + } + + /// Returns information about a segment. + public func getSegment(_ input: GetSegmentRequest) throws -> GetSegmentResponse { + return try client.send(operation: "GetSegment", path: "/v1/apps/{application-id}/segments/{segment-id}", httpMethod: "GET", input: input) + } + + /// Used to create or update a segment. + public func createSegment(_ input: CreateSegmentRequest) throws -> CreateSegmentResponse { + return try client.send(operation: "CreateSegment", path: "/v1/apps/{application-id}/segments", httpMethod: "POST", input: input) + } + + /// Delete an ADM channel + public func deleteAdmChannel(_ input: DeleteAdmChannelRequest) throws -> DeleteAdmChannelResponse { + return try client.send(operation: "DeleteAdmChannel", path: "/v1/apps/{application-id}/channels/adm", httpMethod: "DELETE", input: input) + } + + /// Delete a BAIDU GCM channel + public func deleteBaiduChannel(_ input: DeleteBaiduChannelRequest) throws -> DeleteBaiduChannelResponse { + return try client.send(operation: "DeleteBaiduChannel", path: "/v1/apps/{application-id}/channels/baidu", httpMethod: "DELETE", input: input) + } + + /// Returns information about your campaigns. + public func getCampaigns(_ input: GetCampaignsRequest) throws -> GetCampaignsResponse { + return try client.send(operation: "GetCampaigns", path: "/v1/apps/{application-id}/campaigns", httpMethod: "GET", input: input) + } + + /// Returns information about a campaign. + public func getCampaign(_ input: GetCampaignRequest) throws -> GetCampaignResponse { + return try client.send(operation: "GetCampaign", path: "/v1/apps/{application-id}/campaigns/{campaign-id}", httpMethod: "GET", input: input) + } + + /// Get an APNS VoipSandbox channel + public func getApnsVoipSandboxChannel(_ input: GetApnsVoipSandboxChannelRequest) throws -> GetApnsVoipSandboxChannelResponse { + return try client.send(operation: "GetApnsVoipSandboxChannel", path: "/v1/apps/{application-id}/channels/apns_voip_sandbox", httpMethod: "GET", input: input) + } + + /// Deletes a segment. + public func deleteSegment(_ input: DeleteSegmentRequest) throws -> DeleteSegmentResponse { + return try client.send(operation: "DeleteSegment", path: "/v1/apps/{application-id}/segments/{segment-id}", httpMethod: "DELETE", input: input) + } + + /// Use to update a campaign. + public func updateCampaign(_ input: UpdateCampaignRequest) throws -> UpdateCampaignResponse { + return try client.send(operation: "UpdateCampaign", path: "/v1/apps/{application-id}/campaigns/{campaign-id}", httpMethod: "PUT", input: input) + } + + /// Update an email channel + public func updateEmailChannel(_ input: UpdateEmailChannelRequest) throws -> UpdateEmailChannelResponse { + return try client.send(operation: "UpdateEmailChannel", path: "/v1/apps/{application-id}/channels/email", httpMethod: "PUT", input: input) + } + + /// Returns information about an endpoint. + public func getEndpoint(_ input: GetEndpointRequest) throws -> GetEndpointResponse { + return try client.send(operation: "GetEndpoint", path: "/v1/apps/{application-id}/endpoints/{endpoint-id}", httpMethod: "GET", input: input) + } + + /// Returns information about your segment versions. + public func getSegmentVersions(_ input: GetSegmentVersionsRequest) throws -> GetSegmentVersionsResponse { + return try client.send(operation: "GetSegmentVersions", path: "/v1/apps/{application-id}/segments/{segment-id}/versions", httpMethod: "GET", input: input) + } + + /// Deletes the APNs channel for an app. + public func deleteApnsChannel(_ input: DeleteApnsChannelRequest) throws -> DeleteApnsChannelResponse { + return try client.send(operation: "DeleteApnsChannel", path: "/v1/apps/{application-id}/channels/apns", httpMethod: "DELETE", input: input) + } + + /// Creates or updates an app. + public func createApp(_ input: CreateAppRequest) throws -> CreateAppResponse { + return try client.send(operation: "CreateApp", path: "/v1/apps", httpMethod: "POST", input: input) + } + + /// Update a BAIDU GCM channel + public func updateBaiduChannel(_ input: UpdateBaiduChannelRequest) throws -> UpdateBaiduChannelResponse { + return try client.send(operation: "UpdateBaiduChannel", path: "/v1/apps/{application-id}/channels/baidu", httpMethod: "PUT", input: input) + } + + /// Used to request the settings for an app. + public func getApplicationSettings(_ input: GetApplicationSettingsRequest) throws -> GetApplicationSettingsResponse { + return try client.send(operation: "GetApplicationSettings", path: "/v1/apps/{application-id}/settings", httpMethod: "GET", input: input) + } + + /// Used to get information about your segments. + public func getSegments(_ input: GetSegmentsRequest) throws -> GetSegmentsResponse { + return try client.send(operation: "GetSegments", path: "/v1/apps/{application-id}/segments", httpMethod: "GET", input: input) + } + /// Returns a list of import jobs for a specific segment. public func getSegmentImportJobs(_ input: GetSegmentImportJobsRequest) throws -> GetSegmentImportJobsResponse { return try client.send(operation: "GetSegmentImportJobs", path: "/v1/apps/{application-id}/segments/{segment-id}/jobs/import", httpMethod: "GET", input: input) @@ -59,9 +179,9 @@ public struct Pinpoint { return try client.send(operation: "GetCampaignVersions", path: "/v1/apps/{application-id}/campaigns/{campaign-id}/versions", httpMethod: "GET", input: input) } - /// Returns information about the GCM channel for an app. - public func getGcmChannel(_ input: GetGcmChannelRequest) throws -> GetGcmChannelResponse { - return try client.send(operation: "GetGcmChannel", path: "/v1/apps/{application-id}/channels/gcm", httpMethod: "GET", input: input) + /// Get an APNS Voip channel + public func getApnsVoipChannel(_ input: GetApnsVoipChannelRequest) throws -> GetApnsVoipChannelResponse { + return try client.send(operation: "GetApnsVoipChannel", path: "/v1/apps/{application-id}/channels/apns_voip", httpMethod: "GET", input: input) } /// Delete an email channel @@ -69,14 +189,14 @@ public struct Pinpoint { return try client.send(operation: "DeleteEmailChannel", path: "/v1/apps/{application-id}/channels/email", httpMethod: "DELETE", input: input) } - /// Returns information about your import jobs. - public func getImportJobs(_ input: GetImportJobsRequest) throws -> GetImportJobsResponse { - return try client.send(operation: "GetImportJobs", path: "/v1/apps/{application-id}/jobs/import", httpMethod: "GET", input: input) + /// Returns information about your apps. + public func getApps(_ input: GetAppsRequest) throws -> GetAppsResponse { + return try client.send(operation: "GetApps", path: "/v1/apps", httpMethod: "GET", input: input) } - /// Returns the event stream for an app. - public func getEventStream(_ input: GetEventStreamRequest) throws -> GetEventStreamResponse { - return try client.send(operation: "GetEventStream", path: "/v1/apps/{application-id}/eventstream", httpMethod: "GET", input: input) + /// Delete an APNS VOIP sandbox channel + public func deleteApnsVoipSandboxChannel(_ input: DeleteApnsVoipSandboxChannelRequest) throws -> DeleteApnsVoipSandboxChannelResponse { + return try client.send(operation: "DeleteApnsVoipSandboxChannel", path: "/v1/apps/{application-id}/channels/apns_voip_sandbox", httpMethod: "DELETE", input: input) } /// Used to update the settings for an app. @@ -84,39 +204,34 @@ public struct Pinpoint { return try client.send(operation: "UpdateApplicationSettings", path: "/v1/apps/{application-id}/settings", httpMethod: "PUT", input: input) } - /// Deletes a campaign. - public func deleteCampaign(_ input: DeleteCampaignRequest) throws -> DeleteCampaignResponse { - return try client.send(operation: "DeleteCampaign", path: "/v1/apps/{application-id}/campaigns/{campaign-id}", httpMethod: "DELETE", input: input) - } - /// Use to update a batch of endpoints. public func updateEndpointsBatch(_ input: UpdateEndpointsBatchRequest) throws -> UpdateEndpointsBatchResponse { return try client.send(operation: "UpdateEndpointsBatch", path: "/v1/apps/{application-id}/endpoints", httpMethod: "PUT", input: input) } + /// Get an SMS channel + public func getSmsChannel(_ input: GetSmsChannelRequest) throws -> GetSmsChannelResponse { + return try client.send(operation: "GetSmsChannel", path: "/v1/apps/{application-id}/channels/sms", httpMethod: "GET", input: input) + } + /// Use to update a segment. public func updateSegment(_ input: UpdateSegmentRequest) throws -> UpdateSegmentResponse { return try client.send(operation: "UpdateSegment", path: "/v1/apps/{application-id}/segments/{segment-id}", httpMethod: "PUT", input: input) } - /// Returns information about a segment. - public func getSegment(_ input: GetSegmentRequest) throws -> GetSegmentResponse { - return try client.send(operation: "GetSegment", path: "/v1/apps/{application-id}/segments/{segment-id}", httpMethod: "GET", input: input) - } - /// Creates or updates an import job. public func createImportJob(_ input: CreateImportJobRequest) throws -> CreateImportJobResponse { return try client.send(operation: "CreateImportJob", path: "/v1/apps/{application-id}/jobs/import", httpMethod: "POST", input: input) } - /// Get an SMS channel - public func getSmsChannel(_ input: GetSmsChannelRequest) throws -> GetSmsChannelResponse { - return try client.send(operation: "GetSmsChannel", path: "/v1/apps/{application-id}/channels/sms", httpMethod: "GET", input: input) + /// Update an APNS sandbox channel + public func updateApnsSandboxChannel(_ input: UpdateApnsSandboxChannelRequest) throws -> UpdateApnsSandboxChannelResponse { + return try client.send(operation: "UpdateApnsSandboxChannel", path: "/v1/apps/{application-id}/channels/apns_sandbox", httpMethod: "PUT", input: input) } - /// Used to create or update a segment. - public func createSegment(_ input: CreateSegmentRequest) throws -> CreateSegmentResponse { - return try client.send(operation: "CreateSegment", path: "/v1/apps/{application-id}/segments", httpMethod: "POST", input: input) + /// Send a batch of messages to users + public func sendUsersMessages(_ input: SendUsersMessagesRequest) throws -> SendUsersMessagesResponse { + return try client.send(operation: "SendUsersMessages", path: "/v1/apps/{application-id}/users-messages", httpMethod: "POST", input: input) } /// Deletes the GCM channel for an app. @@ -124,44 +239,14 @@ public struct Pinpoint { return try client.send(operation: "DeleteGcmChannel", path: "/v1/apps/{application-id}/channels/gcm", httpMethod: "DELETE", input: input) } - /// Update an APNS sandbox channel - public func updateApnsSandboxChannel(_ input: UpdateApnsSandboxChannelRequest) throws -> UpdateApnsSandboxChannelResponse { - return try client.send(operation: "UpdateApnsSandboxChannel", path: "/v1/apps/{application-id}/channels/apns_sandbox", httpMethod: "PUT", input: input) - } - - /// Use to update an endpoint. - public func updateEndpoint(_ input: UpdateEndpointRequest) throws -> UpdateEndpointResponse { - return try client.send(operation: "UpdateEndpoint", path: "/v1/apps/{application-id}/endpoints/{endpoint-id}", httpMethod: "PUT", input: input) - } - /// Returns information about the APNs channel for an app. public func getApnsChannel(_ input: GetApnsChannelRequest) throws -> GetApnsChannelResponse { return try client.send(operation: "GetApnsChannel", path: "/v1/apps/{application-id}/channels/apns", httpMethod: "GET", input: input) } - /// Returns information about a campaign. - public func getCampaign(_ input: GetCampaignRequest) throws -> GetCampaignResponse { - return try client.send(operation: "GetCampaign", path: "/v1/apps/{application-id}/campaigns/{campaign-id}", httpMethod: "GET", input: input) - } - - /// Deletes a segment. - public func deleteSegment(_ input: DeleteSegmentRequest) throws -> DeleteSegmentResponse { - return try client.send(operation: "DeleteSegment", path: "/v1/apps/{application-id}/segments/{segment-id}", httpMethod: "DELETE", input: input) - } - - /// Use to update a campaign. - public func updateCampaign(_ input: UpdateCampaignRequest) throws -> UpdateCampaignResponse { - return try client.send(operation: "UpdateCampaign", path: "/v1/apps/{application-id}/campaigns/{campaign-id}", httpMethod: "PUT", input: input) - } - - /// Update an email channel - public func updateEmailChannel(_ input: UpdateEmailChannelRequest) throws -> UpdateEmailChannelResponse { - return try client.send(operation: "UpdateEmailChannel", path: "/v1/apps/{application-id}/channels/email", httpMethod: "PUT", input: input) - } - - /// Returns information about an endpoint. - public func getEndpoint(_ input: GetEndpointRequest) throws -> GetEndpointResponse { - return try client.send(operation: "GetEndpoint", path: "/v1/apps/{application-id}/endpoints/{endpoint-id}", httpMethod: "GET", input: input) + /// Use to update an endpoint. + public func updateEndpoint(_ input: UpdateEndpointRequest) throws -> UpdateEndpointResponse { + return try client.send(operation: "UpdateEndpoint", path: "/v1/apps/{application-id}/endpoints/{endpoint-id}", httpMethod: "PUT", input: input) } /// Get an APNS sandbox channel @@ -169,9 +254,9 @@ public struct Pinpoint { return try client.send(operation: "GetApnsSandboxChannel", path: "/v1/apps/{application-id}/channels/apns_sandbox", httpMethod: "GET", input: input) } - /// Returns information about your campaigns. - public func getCampaigns(_ input: GetCampaignsRequest) throws -> GetCampaignsResponse { - return try client.send(operation: "GetCampaigns", path: "/v1/apps/{application-id}/campaigns", httpMethod: "GET", input: input) + /// Update an ADM channel + public func updateAdmChannel(_ input: UpdateAdmChannelRequest) throws -> UpdateAdmChannelResponse { + return try client.send(operation: "UpdateAdmChannel", path: "/v1/apps/{application-id}/channels/adm", httpMethod: "PUT", input: input) } /// Get an email channel @@ -179,24 +264,24 @@ public struct Pinpoint { return try client.send(operation: "GetEmailChannel", path: "/v1/apps/{application-id}/channels/email", httpMethod: "GET", input: input) } + /// Get an ADM channel + public func getAdmChannel(_ input: GetAdmChannelRequest) throws -> GetAdmChannelResponse { + return try client.send(operation: "GetAdmChannel", path: "/v1/apps/{application-id}/channels/adm", httpMethod: "GET", input: input) + } + /// Returns information about an import job. public func getImportJob(_ input: GetImportJobRequest) throws -> GetImportJobResponse { return try client.send(operation: "GetImportJob", path: "/v1/apps/{application-id}/jobs/import/{job-id}", httpMethod: "GET", input: input) } - /// Returns information about your segment versions. - public func getSegmentVersions(_ input: GetSegmentVersionsRequest) throws -> GetSegmentVersionsResponse { - return try client.send(operation: "GetSegmentVersions", path: "/v1/apps/{application-id}/segments/{segment-id}/versions", httpMethod: "GET", input: input) - } - /// Use to update the APNs channel for an app. public func updateApnsChannel(_ input: UpdateApnsChannelRequest) throws -> UpdateApnsChannelResponse { return try client.send(operation: "UpdateApnsChannel", path: "/v1/apps/{application-id}/channels/apns", httpMethod: "PUT", input: input) } - /// Deletes the APNs channel for an app. - public func deleteApnsChannel(_ input: DeleteApnsChannelRequest) throws -> DeleteApnsChannelResponse { - return try client.send(operation: "DeleteApnsChannel", path: "/v1/apps/{application-id}/channels/apns", httpMethod: "DELETE", input: input) + /// Send a batch of messages + public func sendMessages(_ input: SendMessagesRequest) throws -> SendMessagesResponse { + return try client.send(operation: "SendMessages", path: "/v1/apps/{application-id}/messages", httpMethod: "POST", input: input) } /// Returns information about the activity performed by a campaign. @@ -204,11 +289,6 @@ public struct Pinpoint { return try client.send(operation: "GetCampaignActivities", path: "/v1/apps/{application-id}/campaigns/{campaign-id}/activities", httpMethod: "GET", input: input) } - /// Send a batch of messages - public func sendMessages(_ input: SendMessagesRequest) throws -> SendMessagesResponse { - return try client.send(operation: "SendMessages", path: "/v1/apps/{application-id}/messages", httpMethod: "POST", input: input) - } - /// Creates or updates a campaign. public func createCampaign(_ input: CreateCampaignRequest) throws -> CreateCampaignResponse { return try client.send(operation: "CreateCampaign", path: "/v1/apps/{application-id}/campaigns", httpMethod: "POST", input: input) @@ -219,24 +299,29 @@ public struct Pinpoint { return try client.send(operation: "DeleteEventStream", path: "/v1/apps/{application-id}/eventstream", httpMethod: "DELETE", input: input) } + /// Returns information about an app. + public func getApp(_ input: GetAppRequest) throws -> GetAppResponse { + return try client.send(operation: "GetApp", path: "/v1/apps/{application-id}", httpMethod: "GET", input: input) + } + /// Use to update the GCM channel for an app. public func updateGcmChannel(_ input: UpdateGcmChannelRequest) throws -> UpdateGcmChannelResponse { return try client.send(operation: "UpdateGcmChannel", path: "/v1/apps/{application-id}/channels/gcm", httpMethod: "PUT", input: input) } + /// Delete an APNS VOIP channel + public func deleteApnsVoipChannel(_ input: DeleteApnsVoipChannelRequest) throws -> DeleteApnsVoipChannelResponse { + return try client.send(operation: "DeleteApnsVoipChannel", path: "/v1/apps/{application-id}/channels/apns_voip", httpMethod: "DELETE", input: input) + } + /// Use to create or update the event stream for an app. public func putEventStream(_ input: PutEventStreamRequest) throws -> PutEventStreamResponse { return try client.send(operation: "PutEventStream", path: "/v1/apps/{application-id}/eventstream", httpMethod: "POST", input: input) } - /// Used to request the settings for an app. - public func getApplicationSettings(_ input: GetApplicationSettingsRequest) throws -> GetApplicationSettingsResponse { - return try client.send(operation: "GetApplicationSettings", path: "/v1/apps/{application-id}/settings", httpMethod: "GET", input: input) - } - - /// Used to get information about your segments. - public func getSegments(_ input: GetSegmentsRequest) throws -> GetSegmentsResponse { - return try client.send(operation: "GetSegments", path: "/v1/apps/{application-id}/segments", httpMethod: "GET", input: input) + /// Update an SMS channel + public func updateSmsChannel(_ input: UpdateSmsChannelRequest) throws -> UpdateSmsChannelResponse { + return try client.send(operation: "UpdateSmsChannel", path: "/v1/apps/{application-id}/channels/sms", httpMethod: "PUT", input: input) } diff --git a/Sources/AWSSDKSwift/Services/pinpoint/Pinpoint_Shapes.swift b/Sources/AWSSDKSwift/Services/pinpoint/Pinpoint_Shapes.swift index 0ed71cac71d..c45211af2c0 100644 --- a/Sources/AWSSDKSwift/Services/pinpoint/Pinpoint_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/pinpoint/Pinpoint_Shapes.swift @@ -5,8 +5,25 @@ import AWSSDKSwiftCore extension Pinpoint { + public struct UpdateApplicationSettingsResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ApplicationSettingsResource" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationSettingsResource", required: true, type: .structure) + ] + public let applicationSettingsResource: ApplicationSettingsResource + + public init(applicationSettingsResource: ApplicationSettingsResource) { + self.applicationSettingsResource = applicationSettingsResource + } + + private enum CodingKeys: String, CodingKey { + case applicationSettingsResource = "ApplicationSettingsResource" + } + } + public struct GetCampaignActivitiesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), AWSShapeMember(label: "CampaignId", location: .uri(locationName: "campaign-id"), required: true, type: .string), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), @@ -32,42 +49,24 @@ extension Pinpoint { } } - public struct SendMessagesResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "MessageResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MessageResponse", required: true, type: .structure) - ] - public let messageResponse: MessageResponse - - public init(messageResponse: MessageResponse) { - self.messageResponse = messageResponse - } - - private enum CodingKeys: String, CodingKey { - case messageResponse = "MessageResponse" - } - } - - public struct UpdateEndpointsBatchResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "MessageBody" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MessageBody", required: true, type: .structure) + public struct EndpointBatchRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Item", required: false, type: .list) ] - public let messageBody: MessageBody + /// List of items to update. Maximum 100 items + public let item: [EndpointBatchItem]? - public init(messageBody: MessageBody) { - self.messageBody = messageBody + public init(item: [EndpointBatchItem]? = nil) { + self.item = item } private enum CodingKeys: String, CodingKey { - case messageBody = "MessageBody" + case item = "Item" } } public struct EndpointRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndpointStatus", required: false, type: .string), AWSShapeMember(label: "OptOut", required: false, type: .string), AWSShapeMember(label: "Metrics", required: false, type: .map), @@ -83,8 +82,8 @@ extension Pinpoint { /// The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated. public let endpointStatus: String? /// Indicates whether a user has opted out of receiving messages with one of the following values: - /// ALL – User receives all messages. - /// NONE – User receives no messages. + /// ALL - User has opted out of all messages. + /// NONE - Users has not opted out and receives all messages. public let optOut: String? public let metrics: [String: Double]? /// The last time the endpoint was updated. Provided in ISO 8601 format. @@ -101,7 +100,7 @@ extension Pinpoint { /// Custom user-specific attributes that your app reports to Amazon Pinpoint. public let user: EndpointUser? /// The channel type. - /// Valid values: APNS, GCM + /// Valid values: GCM | APNS | SMS | EMAIL public let channelType: ChannelType? public init(endpointStatus: String? = nil, optOut: String? = nil, metrics: [String: Double]? = nil, effectiveDate: String? = nil, address: String? = nil, location: EndpointLocation? = nil, demographic: EndpointDemographic? = nil, attributes: [String: [String]]? = nil, requestId: String? = nil, user: EndpointUser? = nil, channelType: ChannelType? = nil) { @@ -133,77 +132,48 @@ extension Pinpoint { } } - public struct UpdateApplicationSettingsResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "ApplicationSettingsResource" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationSettingsResource", required: true, type: .structure) - ] - public let applicationSettingsResource: ApplicationSettingsResource - - public init(applicationSettingsResource: ApplicationSettingsResource) { - self.applicationSettingsResource = applicationSettingsResource - } - - private enum CodingKeys: String, CodingKey { - case applicationSettingsResource = "ApplicationSettingsResource" - } - } - - public struct EndpointBatchRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Item", required: false, type: .list) - ] - /// List of items to update. Maximum 100 items - public let item: [EndpointBatchItem]? - - public init(item: [EndpointBatchItem]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "Item" - } + public enum Format: String, CustomStringConvertible, Codable { + case csv = "CSV" + case json = "JSON" + public var description: String { return self.rawValue } } - public struct GCMChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApiKey", required: false, type: .string), - AWSShapeMember(label: "Enabled", required: false, type: .boolean) + public struct QuietTime: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "End", required: false, type: .string), + AWSShapeMember(label: "Start", required: false, type: .string) ] - /// Platform credential API key from Google. - public let apiKey: String? - /// If the channel is enabled for sending messages. - public let enabled: Bool? + /// The default end time for quiet time in ISO 8601 format. + public let end: String? + /// The default start time for quiet time in ISO 8601 format. + public let start: String? - public init(apiKey: String? = nil, enabled: Bool? = nil) { - self.apiKey = apiKey - self.enabled = enabled + public init(end: String? = nil, start: String? = nil) { + self.end = end + self.start = start } private enum CodingKeys: String, CodingKey { - case apiKey = "ApiKey" - case enabled = "Enabled" + case end = "End" + case start = "Start" } } - public enum Format: String, CustomStringConvertible, Codable { - case csv = "CSV" - case json = "JSON" - public var description: String { return self.rawValue } - } - - public struct GetGcmChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct GetSegmentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] + public let segmentId: String public let applicationId: String - public init(applicationId: String) { + public init(segmentId: String, applicationId: String) { + self.segmentId = segmentId self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { + case segmentId = "segment-id" case applicationId = "application-id" } } @@ -211,7 +181,7 @@ extension Pinpoint { public struct CreateCampaignRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "WriteCampaignRequest" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), AWSShapeMember(label: "WriteCampaignRequest", required: true, type: .structure) ] @@ -229,77 +199,90 @@ extension Pinpoint { } } - public struct GetSegmentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + public struct UpdateAdmChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ADMChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ADMChannelResponse", required: true, type: .structure) ] - public let segmentId: String - public let applicationId: String + public let aDMChannelResponse: ADMChannelResponse - public init(segmentId: String, applicationId: String) { - self.segmentId = segmentId - self.applicationId = applicationId + public init(aDMChannelResponse: ADMChannelResponse) { + self.aDMChannelResponse = aDMChannelResponse } private enum CodingKeys: String, CodingKey { - case segmentId = "segment-id" - case applicationId = "application-id" + case aDMChannelResponse = "ADMChannelResponse" } } - public struct QuietTime: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "End", required: false, type: .string), - AWSShapeMember(label: "Start", required: false, type: .string) + public struct GetBaiduChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "BaiduChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BaiduChannelResponse", required: true, type: .structure) ] - /// The default end time for quiet time in ISO 8601 format. - public let end: String? - /// The default start time for quiet time in ISO 8601 format. - public let start: String? + public let baiduChannelResponse: BaiduChannelResponse - public init(end: String? = nil, start: String? = nil) { - self.end = end - self.start = start + public init(baiduChannelResponse: BaiduChannelResponse) { + self.baiduChannelResponse = baiduChannelResponse } private enum CodingKeys: String, CodingKey { - case end = "End" - case start = "Start" + case baiduChannelResponse = "BaiduChannelResponse" } } - public struct DeleteApnsChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DeleteCampaignRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CampaignId", location: .uri(locationName: "campaign-id"), required: true, type: .string), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] + public let campaignId: String public let applicationId: String - public init(applicationId: String) { + public init(campaignId: String, applicationId: String) { + self.campaignId = campaignId self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { + case campaignId = "campaign-id" case applicationId = "application-id" } } - public struct DeleteCampaignRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CampaignId", location: .uri(locationName: "campaign-id"), required: true, type: .string), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + public struct EndpointSendConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TitleOverride", required: false, type: .string), + AWSShapeMember(label: "Context", required: false, type: .map), + AWSShapeMember(label: "BodyOverride", required: false, type: .string), + AWSShapeMember(label: "RawContent", required: false, type: .string), + AWSShapeMember(label: "Substitutions", required: false, type: .map) ] - public let campaignId: String - public let applicationId: String + /// Title override. If specified will override default title if applicable. + public let titleOverride: String? + public let context: [String: String]? + /// Body override. If specified will override default body. + public let bodyOverride: String? + /// The Raw JSON formatted string to be used as the payload. This value overrides the message. + public let rawContent: String? + public let substitutions: [String: [String]]? - public init(campaignId: String, applicationId: String) { - self.campaignId = campaignId - self.applicationId = applicationId + public init(titleOverride: String? = nil, context: [String: String]? = nil, bodyOverride: String? = nil, rawContent: String? = nil, substitutions: [String: [String]]? = nil) { + self.titleOverride = titleOverride + self.context = context + self.bodyOverride = bodyOverride + self.rawContent = rawContent + self.substitutions = substitutions } private enum CodingKeys: String, CodingKey { - case campaignId = "campaign-id" - case applicationId = "application-id" + case titleOverride = "TitleOverride" + case context = "Context" + case bodyOverride = "BodyOverride" + case rawContent = "RawContent" + case substitutions = "Substitutions" } } @@ -311,7 +294,7 @@ extension Pinpoint { } public struct EmailChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FromAddress", required: false, type: .string), AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "RoleArn", required: false, type: .string), @@ -341,44 +324,44 @@ extension Pinpoint { } } - public struct DeleteGcmChannelResponse: AWSShape { + public struct UpdateSmsChannelResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "GCMChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GCMChannelResponse", required: true, type: .structure) + public static let payloadPath: String? = "SMSChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SMSChannelResponse", required: true, type: .structure) ] - public let gCMChannelResponse: GCMChannelResponse + public let sMSChannelResponse: SMSChannelResponse - public init(gCMChannelResponse: GCMChannelResponse) { - self.gCMChannelResponse = gCMChannelResponse + public init(sMSChannelResponse: SMSChannelResponse) { + self.sMSChannelResponse = sMSChannelResponse } private enum CodingKeys: String, CodingKey { - case gCMChannelResponse = "GCMChannelResponse" + case sMSChannelResponse = "SMSChannelResponse" } } - public struct UpdateSmsChannelResponse: AWSShape { + public struct DeleteGcmChannelResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "SMSChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SMSChannelResponse", required: true, type: .structure) + public static let payloadPath: String? = "GCMChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GCMChannelResponse", required: true, type: .structure) ] - public let sMSChannelResponse: SMSChannelResponse + public let gCMChannelResponse: GCMChannelResponse - public init(sMSChannelResponse: SMSChannelResponse) { - self.sMSChannelResponse = sMSChannelResponse + public init(gCMChannelResponse: GCMChannelResponse) { + self.gCMChannelResponse = gCMChannelResponse } private enum CodingKeys: String, CodingKey { - case sMSChannelResponse = "SMSChannelResponse" + case gCMChannelResponse = "GCMChannelResponse" } } public struct GetImportJobResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "ImportJobResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImportJobResponse", required: true, type: .structure) ] public let importJobResponse: ImportJobResponse @@ -393,7 +376,7 @@ extension Pinpoint { } public struct GetSegmentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), AWSShapeMember(label: "Token", location: .querystring(locationName: "token"), required: false, type: .string) @@ -415,58 +398,25 @@ extension Pinpoint { } } - public struct CreateSegmentRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "WriteSegmentRequest" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), - AWSShapeMember(label: "WriteSegmentRequest", required: true, type: .structure) - ] - public let applicationId: String - public let writeSegmentRequest: WriteSegmentRequest - - public init(applicationId: String, writeSegmentRequest: WriteSegmentRequest) { - self.applicationId = applicationId - self.writeSegmentRequest = writeSegmentRequest - } - - private enum CodingKeys: String, CodingKey { - case applicationId = "application-id" - case writeSegmentRequest = "WriteSegmentRequest" - } - } - - public struct GetSegmentVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), - AWSShapeMember(label: "Token", location: .querystring(locationName: "token"), required: false, type: .string), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), - AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string) + public struct GetApnsVoipSandboxChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - public let pageSize: String? - public let token: String? public let applicationId: String - public let segmentId: String - public init(pageSize: String? = nil, token: String? = nil, applicationId: String, segmentId: String) { - self.pageSize = pageSize - self.token = token + public init(applicationId: String) { self.applicationId = applicationId - self.segmentId = segmentId } private enum CodingKeys: String, CodingKey { - case pageSize = "page-size" - case token = "token" case applicationId = "application-id" - case segmentId = "segment-id" } } public struct UpdateApnsSandboxChannelRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "APNSSandboxChannelRequest" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "APNSSandboxChannelRequest", required: true, type: .structure), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] @@ -484,171 +434,84 @@ extension Pinpoint { } } - public struct AddressConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TitleOverride", required: false, type: .string), - AWSShapeMember(label: "Context", required: false, type: .map), - AWSShapeMember(label: "BodyOverride", required: false, type: .string), - AWSShapeMember(label: "RawContent", required: false, type: .string), - AWSShapeMember(label: "ChannelType", required: false, type: .enum), - AWSShapeMember(label: "Substitutions", required: false, type: .map) + public struct DeleteApnsVoipSandboxChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSVoipSandboxChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSVoipSandboxChannelResponse", required: true, type: .structure) ] - /// Title override. If specified will override default title if applicable. - public let titleOverride: String? - public let context: [String: String]? - /// Body override. If specified will override default body. - public let bodyOverride: String? - /// The Raw JSON formatted string to be used as the payload. This value overrides the message. - public let rawContent: String? - /// Type of channel of this address - public let channelType: ChannelType? - public let substitutions: [String: [String]]? - - public init(titleOverride: String? = nil, context: [String: String]? = nil, bodyOverride: String? = nil, rawContent: String? = nil, channelType: ChannelType? = nil, substitutions: [String: [String]]? = nil) { - self.titleOverride = titleOverride - self.context = context - self.bodyOverride = bodyOverride - self.rawContent = rawContent - self.channelType = channelType - self.substitutions = substitutions - } - - private enum CodingKeys: String, CodingKey { - case titleOverride = "TitleOverride" - case context = "Context" - case bodyOverride = "BodyOverride" - case rawContent = "RawContent" - case channelType = "ChannelType" - case substitutions = "Substitutions" - } - } - - public struct Message: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ImageSmallIconUrl", required: false, type: .string), - AWSShapeMember(label: "Action", required: false, type: .enum), - AWSShapeMember(label: "Url", required: false, type: .string), - AWSShapeMember(label: "MediaUrl", required: false, type: .string), - AWSShapeMember(label: "Title", required: false, type: .string), - AWSShapeMember(label: "ImageUrl", required: false, type: .string), - AWSShapeMember(label: "SilentPush", required: false, type: .boolean), - AWSShapeMember(label: "JsonBody", required: false, type: .string), - AWSShapeMember(label: "Body", required: false, type: .string), - AWSShapeMember(label: "ImageIconUrl", required: false, type: .string) - ] - /// The URL that points to the small icon image for the push notification icon, for example, the app icon. - public let imageSmallIconUrl: String? - /// The action that occurs if the user taps a push notification delivered by the campaign: - /// OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. - /// DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. - /// URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. - public let action: Action? - /// The URL to open in the user's mobile browser. Used if the value for Action is URL. - public let url: String? - /// The URL that points to the media resource, for example a .mp4 or .gif file. - public let mediaUrl: String? - /// The message title that displays above the message on the user's device. - public let title: String? - /// The URL that points to an image used in the push notification. - public let imageUrl: String? - /// Indicates if the message should display on the users device. - /// Silent pushes can be used for Remote Configuration and Phone Home use cases. - public let silentPush: Bool? - /// The JSON payload used for a silent push. - public let jsonBody: String? - /// The message body. Can include up to 140 characters. - public let body: String? - /// The URL that points to the icon image for the push notification icon, for example, the app icon. - public let imageIconUrl: String? + public let aPNSVoipSandboxChannelResponse: APNSVoipSandboxChannelResponse - public init(imageSmallIconUrl: String? = nil, action: Action? = nil, url: String? = nil, mediaUrl: String? = nil, title: String? = nil, imageUrl: String? = nil, silentPush: Bool? = nil, jsonBody: String? = nil, body: String? = nil, imageIconUrl: String? = nil) { - self.imageSmallIconUrl = imageSmallIconUrl - self.action = action - self.url = url - self.mediaUrl = mediaUrl - self.title = title - self.imageUrl = imageUrl - self.silentPush = silentPush - self.jsonBody = jsonBody - self.body = body - self.imageIconUrl = imageIconUrl + public init(aPNSVoipSandboxChannelResponse: APNSVoipSandboxChannelResponse) { + self.aPNSVoipSandboxChannelResponse = aPNSVoipSandboxChannelResponse } private enum CodingKeys: String, CodingKey { - case imageSmallIconUrl = "ImageSmallIconUrl" - case action = "Action" - case url = "Url" - case mediaUrl = "MediaUrl" - case title = "Title" - case imageUrl = "ImageUrl" - case silentPush = "SilentPush" - case jsonBody = "JsonBody" - case body = "Body" - case imageIconUrl = "ImageIconUrl" + case aPNSVoipSandboxChannelResponse = "APNSVoipSandboxChannelResponse" } } - public struct SMSChannelResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ShortCode", required: false, type: .string), - AWSShapeMember(label: "Platform", required: false, type: .string), + public struct BaiduChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "Platform", required: false, type: .string), + AWSShapeMember(label: "HasCredential", required: false, type: .boolean), AWSShapeMember(label: "Version", required: false, type: .integer), AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), - AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "Credential", required: false, type: .string), AWSShapeMember(label: "ApplicationId", required: false, type: .string), - AWSShapeMember(label: "SenderId", required: false, type: .string), + AWSShapeMember(label: "CreationDate", required: false, type: .string), AWSShapeMember(label: "IsArchived", required: false, type: .boolean), AWSShapeMember(label: "LastModifiedBy", required: false, type: .string) ] - /// The short code registered with the phone provider. - public let shortCode: String? - /// Platform type. Will be "SMS" - public let platform: String? /// Channel ID. Not used, only for backwards compatibility. public let id: String? + /// The platform type. Will be BAIDU + public let platform: String? + /// If the channel is registered with a credential for authentication. + public let hasCredential: Bool? /// Version of channel public let version: Int32? /// If the channel is enabled for sending messages. public let enabled: Bool? /// Last date this was updated public let lastModifiedDate: String? - /// The date that the settings were last updated in ISO 8601 format. - public let creationDate: String? + /// The Baidu API key from Baidu. + public let credential: String? /// Application id public let applicationId: String? - /// Sender identifier of your messages. - public let senderId: String? + /// When was this segment created + public let creationDate: String? /// Is this channel archived public let isArchived: Bool? - /// Who last updated this entry + /// Who made the last change public let lastModifiedBy: String? - public init(shortCode: String? = nil, platform: String? = nil, id: String? = nil, version: Int32? = nil, enabled: Bool? = nil, lastModifiedDate: String? = nil, creationDate: String? = nil, applicationId: String? = nil, senderId: String? = nil, isArchived: Bool? = nil, lastModifiedBy: String? = nil) { - self.shortCode = shortCode - self.platform = platform + public init(id: String? = nil, platform: String? = nil, hasCredential: Bool? = nil, version: Int32? = nil, enabled: Bool? = nil, lastModifiedDate: String? = nil, credential: String? = nil, applicationId: String? = nil, creationDate: String? = nil, isArchived: Bool? = nil, lastModifiedBy: String? = nil) { self.id = id + self.platform = platform + self.hasCredential = hasCredential self.version = version self.enabled = enabled self.lastModifiedDate = lastModifiedDate - self.creationDate = creationDate + self.credential = credential self.applicationId = applicationId - self.senderId = senderId + self.creationDate = creationDate self.isArchived = isArchived self.lastModifiedBy = lastModifiedBy } private enum CodingKeys: String, CodingKey { - case shortCode = "ShortCode" - case platform = "Platform" case id = "Id" + case platform = "Platform" + case hasCredential = "HasCredential" case version = "Version" case enabled = "Enabled" case lastModifiedDate = "LastModifiedDate" - case creationDate = "CreationDate" + case credential = "Credential" case applicationId = "ApplicationId" - case senderId = "SenderId" + case creationDate = "CreationDate" case isArchived = "IsArchived" case lastModifiedBy = "LastModifiedBy" } @@ -657,7 +520,7 @@ extension Pinpoint { public struct UpdateEmailChannelRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "EmailChannelRequest" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EmailChannelRequest", required: true, type: .structure), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] @@ -675,83 +538,87 @@ extension Pinpoint { } } - public struct GetApplicationSettingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct SendUsersMessagesRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "SendUsersMessageRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SendUsersMessageRequest", required: true, type: .structure), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] + public let sendUsersMessageRequest: SendUsersMessageRequest public let applicationId: String - public init(applicationId: String) { + public init(sendUsersMessageRequest: SendUsersMessageRequest, applicationId: String) { + self.sendUsersMessageRequest = sendUsersMessageRequest self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { + case sendUsersMessageRequest = "SendUsersMessageRequest" case applicationId = "application-id" } } - public struct GetSegmentVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), - AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string), - AWSShapeMember(label: "Version", location: .uri(locationName: "version"), required: true, type: .string) + public struct UpdateApnsVoipChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSVoipChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSVoipChannelResponse", required: true, type: .structure) ] - public let applicationId: String - public let segmentId: String - public let version: String + public let aPNSVoipChannelResponse: APNSVoipChannelResponse - public init(applicationId: String, segmentId: String, version: String) { - self.applicationId = applicationId - self.segmentId = segmentId - self.version = version + public init(aPNSVoipChannelResponse: APNSVoipChannelResponse) { + self.aPNSVoipChannelResponse = aPNSVoipChannelResponse } private enum CodingKeys: String, CodingKey { - case applicationId = "application-id" - case segmentId = "segment-id" - case version = "version" + case aPNSVoipChannelResponse = "APNSVoipChannelResponse" } } - public struct SegmentLocation: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Country", required: false, type: .structure) + public struct DeleteApnsVoipChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - /// The country filter according to ISO 3166-1 Alpha-2 codes. - public let country: SetDimension? + public let applicationId: String - public init(country: SetDimension? = nil) { - self.country = country + public init(applicationId: String) { + self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case country = "Country" + case applicationId = "application-id" } } public struct SMSChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "SenderId", required: false, type: .string), - AWSShapeMember(label: "Enabled", required: false, type: .boolean) + AWSShapeMember(label: "ShortCode", required: false, type: .string) ] - /// Sender identifier of your messages. - public let senderId: String? /// If the channel is enabled for sending messages. public let enabled: Bool? + /// Sender identifier of your messages. + public let senderId: String? + /// ShortCode registered with phone provider. + public let shortCode: String? - public init(senderId: String? = nil, enabled: Bool? = nil) { - self.senderId = senderId + public init(enabled: Bool? = nil, senderId: String? = nil, shortCode: String? = nil) { self.enabled = enabled + self.senderId = senderId + self.shortCode = shortCode } private enum CodingKeys: String, CodingKey { - case senderId = "SenderId" case enabled = "Enabled" + case senderId = "SenderId" + case shortCode = "ShortCode" } } public struct WriteCampaignRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TreatmentName", required: false, type: .string), AWSShapeMember(label: "SegmentVersion", required: false, type: .integer), AWSShapeMember(label: "AdditionalTreatments", required: false, type: .list), @@ -821,29 +688,23 @@ extension Pinpoint { } } - public struct UpdateApplicationSettingsRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "WriteApplicationSettingsRequest" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "WriteApplicationSettingsRequest", required: true, type: .structure), + public struct GetAdmChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - public let writeApplicationSettingsRequest: WriteApplicationSettingsRequest public let applicationId: String - public init(writeApplicationSettingsRequest: WriteApplicationSettingsRequest, applicationId: String) { - self.writeApplicationSettingsRequest = writeApplicationSettingsRequest + public init(applicationId: String) { self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case writeApplicationSettingsRequest = "WriteApplicationSettingsRequest" case applicationId = "application-id" } } public struct WriteTreatmentResource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Schedule", required: false, type: .structure), AWSShapeMember(label: "TreatmentDescription", required: false, type: .string), AWSShapeMember(label: "MessageConfiguration", required: false, type: .structure), @@ -878,188 +739,100 @@ extension Pinpoint { } } - public struct TreatmentResource: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TreatmentName", required: false, type: .string), - AWSShapeMember(label: "TreatmentDescription", required: false, type: .string), - AWSShapeMember(label: "SizePercent", required: false, type: .integer), - AWSShapeMember(label: "State", required: false, type: .structure), - AWSShapeMember(label: "Schedule", required: false, type: .structure), - AWSShapeMember(label: "MessageConfiguration", required: false, type: .structure), - AWSShapeMember(label: "Id", required: false, type: .string) + public struct SMSMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SenderId", required: false, type: .string), + AWSShapeMember(label: "MessageType", required: false, type: .enum), + AWSShapeMember(label: "Body", required: false, type: .string), + AWSShapeMember(label: "Substitutions", required: false, type: .map) ] - /// The custom name of a variation of the campaign used for A/B testing. - public let treatmentName: String? - /// A custom description for the treatment. - public let treatmentDescription: String? - /// The allocated percentage of users for this treatment. - public let sizePercent: Int32? - /// The treatment status. - public let state: CampaignState? - /// The campaign schedule. - public let schedule: Schedule? - /// The message configuration settings. - public let messageConfiguration: MessageConfiguration? - /// The unique treatment ID. - public let id: String? + /// Sender ID of sent message. + public let senderId: String? + /// Is this a transaction priority message or lower priority. + public let messageType: MessageType? + /// The message body of the notification, the email body or the text message. + public let body: String? + public let substitutions: [String: [String]]? - public init(treatmentName: String? = nil, treatmentDescription: String? = nil, sizePercent: Int32? = nil, state: CampaignState? = nil, schedule: Schedule? = nil, messageConfiguration: MessageConfiguration? = nil, id: String? = nil) { - self.treatmentName = treatmentName - self.treatmentDescription = treatmentDescription - self.sizePercent = sizePercent - self.state = state - self.schedule = schedule - self.messageConfiguration = messageConfiguration - self.id = id + public init(senderId: String? = nil, messageType: MessageType? = nil, body: String? = nil, substitutions: [String: [String]]? = nil) { + self.senderId = senderId + self.messageType = messageType + self.body = body + self.substitutions = substitutions } private enum CodingKeys: String, CodingKey { - case treatmentName = "TreatmentName" - case treatmentDescription = "TreatmentDescription" - case sizePercent = "SizePercent" - case state = "State" - case schedule = "Schedule" - case messageConfiguration = "MessageConfiguration" - case id = "Id" + case senderId = "SenderId" + case messageType = "MessageType" + case body = "Body" + case substitutions = "Substitutions" } } - public struct EventStream: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ExternalId", required: false, type: .string), - AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), - AWSShapeMember(label: "DestinationStreamArn", required: false, type: .string), - AWSShapeMember(label: "ApplicationId", required: false, type: .string), - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "LastUpdatedBy", required: false, type: .string) + public struct DeleteSmsChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - /// The external ID assigned the IAM role that authorizes Amazon Pinpoint to publish to the stream. - public let externalId: String? - /// The date the event stream was last updated in ISO 8601 format. - public let lastModifiedDate: String? - /// The Amazon Resource Name (ARN) of the Amazon Kinesis stream or Firehose delivery stream to which you want to publish events. - /// Firehose ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream/STREAM_NAME - /// Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME - public let destinationStreamArn: String? - /// The ID of the application from which events should be published. - public let applicationId: String? - /// The IAM role that authorizes Amazon Pinpoint to publish events to the stream in your account. - public let roleArn: String? - /// The IAM user who last modified the event stream. - public let lastUpdatedBy: String? + public let applicationId: String - public init(externalId: String? = nil, lastModifiedDate: String? = nil, destinationStreamArn: String? = nil, applicationId: String? = nil, roleArn: String? = nil, lastUpdatedBy: String? = nil) { - self.externalId = externalId - self.lastModifiedDate = lastModifiedDate - self.destinationStreamArn = destinationStreamArn + public init(applicationId: String) { self.applicationId = applicationId - self.roleArn = roleArn - self.lastUpdatedBy = lastUpdatedBy } private enum CodingKeys: String, CodingKey { - case externalId = "ExternalId" - case lastModifiedDate = "LastModifiedDate" - case destinationStreamArn = "DestinationStreamArn" - case applicationId = "ApplicationId" - case roleArn = "RoleArn" - case lastUpdatedBy = "LastUpdatedBy" + case applicationId = "application-id" } } - public struct EndpointResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "User", required: false, type: .structure), - AWSShapeMember(label: "ShardId", required: false, type: .string), - AWSShapeMember(label: "OptOut", required: false, type: .string), - AWSShapeMember(label: "Metrics", required: false, type: .map), - AWSShapeMember(label: "CreationDate", required: false, type: .string), - AWSShapeMember(label: "CohortId", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string), - AWSShapeMember(label: "EffectiveDate", required: false, type: .string), - AWSShapeMember(label: "Location", required: false, type: .structure), - AWSShapeMember(label: "Address", required: false, type: .string), - AWSShapeMember(label: "Demographic", required: false, type: .structure), - AWSShapeMember(label: "Attributes", required: false, type: .map), - AWSShapeMember(label: "ApplicationId", required: false, type: .string), - AWSShapeMember(label: "RequestId", required: false, type: .string), - AWSShapeMember(label: "ChannelType", required: false, type: .enum), - AWSShapeMember(label: "EndpointStatus", required: false, type: .string) + public struct DeleteSmsChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "SMSChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SMSChannelResponse", required: true, type: .structure) ] - /// Custom user-specific attributes that your app reports to Amazon Pinpoint. - public let user: EndpointUser? - public let shardId: String? - /// Indicates whether a user has opted out of receiving messages with one of the following values: - /// ALL – User receives all messages. - /// NONE – User receives no messages. - public let optOut: String? - public let metrics: [String: Double]? - /// The last time the endpoint was created. Provided in ISO 8601 format. - public let creationDate: String? - /// A number from 0 - 99 that represents the cohort the endpoint is assigned to. Endpoints are grouped into cohorts randomly, and each cohort contains approximately 1 percent of the endpoints for an app. Amazon Pinpoint assigns cohorts to the holdout or treatment allocations for a campaign. - public let cohortId: String? - /// The unique ID that you assigned to the endpoint. The ID should be a globally unique identifier (GUID) to ensure that it is unique compared to all other endpoints for the application. - public let id: String? - /// The last time the endpoint was updated. Provided in ISO 8601 format. - public let effectiveDate: String? - /// The endpoint location attributes. - public let location: EndpointLocation? - /// The address or token of the endpoint as provided by your push provider (e.g. DeviceToken or RegistrationId). - public let address: String? - /// The endpoint demographic attributes. - public let demographic: EndpointDemographic? - public let attributes: [String: [String]]? - /// The ID of the application associated with the endpoint. - public let applicationId: String? - /// The unique ID for the most recent request to update the endpoint. - public let requestId: String? - /// The channel type. - /// Valid values: APNS, GCM - public let channelType: ChannelType? - /// The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated. - public let endpointStatus: String? + public let sMSChannelResponse: SMSChannelResponse - public init(user: EndpointUser? = nil, shardId: String? = nil, optOut: String? = nil, metrics: [String: Double]? = nil, creationDate: String? = nil, cohortId: String? = nil, id: String? = nil, effectiveDate: String? = nil, location: EndpointLocation? = nil, address: String? = nil, demographic: EndpointDemographic? = nil, attributes: [String: [String]]? = nil, applicationId: String? = nil, requestId: String? = nil, channelType: ChannelType? = nil, endpointStatus: String? = nil) { - self.user = user - self.shardId = shardId - self.optOut = optOut - self.metrics = metrics - self.creationDate = creationDate - self.cohortId = cohortId - self.id = id - self.effectiveDate = effectiveDate - self.location = location - self.address = address - self.demographic = demographic - self.attributes = attributes + public init(sMSChannelResponse: SMSChannelResponse) { + self.sMSChannelResponse = sMSChannelResponse + } + + private enum CodingKeys: String, CodingKey { + case sMSChannelResponse = "SMSChannelResponse" + } + } + + public struct UpdateApnsVoipSandboxChannelRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSVoipSandboxChannelRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSVoipSandboxChannelRequest", required: true, type: .structure), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let aPNSVoipSandboxChannelRequest: APNSVoipSandboxChannelRequest + public let applicationId: String + + public init(aPNSVoipSandboxChannelRequest: APNSVoipSandboxChannelRequest, applicationId: String) { + self.aPNSVoipSandboxChannelRequest = aPNSVoipSandboxChannelRequest self.applicationId = applicationId - self.requestId = requestId - self.channelType = channelType - self.endpointStatus = endpointStatus } private enum CodingKeys: String, CodingKey { - case user = "User" - case shardId = "ShardId" - case optOut = "OptOut" - case metrics = "Metrics" - case creationDate = "CreationDate" - case cohortId = "CohortId" - case id = "Id" - case effectiveDate = "EffectiveDate" - case location = "Location" - case address = "Address" - case demographic = "Demographic" - case attributes = "Attributes" - case applicationId = "ApplicationId" - case requestId = "RequestId" - case channelType = "ChannelType" - case endpointStatus = "EndpointStatus" + case aPNSVoipSandboxChannelRequest = "APNSVoipSandboxChannelRequest" + case applicationId = "application-id" } } - public struct DeleteSmsChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public enum Frequency: String, CustomStringConvertible, Codable { + case once = "ONCE" + case hourly = "HOURLY" + case daily = "DAILY" + case weekly = "WEEKLY" + case monthly = "MONTHLY" + public var description: String { return self.rawValue } + } + + public struct GetSmsChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] public let applicationId: String @@ -1073,264 +846,152 @@ extension Pinpoint { } } - public struct GetImportJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "JobId", location: .uri(locationName: "job-id"), required: true, type: .string), + public struct DeleteApnsVoipSandboxChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - public let jobId: String public let applicationId: String - public init(jobId: String, applicationId: String) { - self.jobId = jobId + public init(applicationId: String) { self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case jobId = "job-id" case applicationId = "application-id" } } - public struct SMSMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SenderId", required: false, type: .string), - AWSShapeMember(label: "MessageType", required: false, type: .enum), - AWSShapeMember(label: "Body", required: false, type: .string), - AWSShapeMember(label: "Substitutions", required: false, type: .map) + public struct MessageRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Context", required: false, type: .map), + AWSShapeMember(label: "Addresses", required: false, type: .map), + AWSShapeMember(label: "MessageConfiguration", required: false, type: .structure), + AWSShapeMember(label: "Endpoints", required: false, type: .map) ] - /// Sender ID of sent message. - public let senderId: String? - /// Is this a transaction priority message or lower priority. - public let messageType: MessageType? - /// The message body of the notification, the email body or the text message. - public let body: String? - public let substitutions: [String: [String]]? + public let context: [String: String]? + /// A map of destination addresses, with the address as the key(Email address, phone number or push token) and the Address Configuration as the value. + public let addresses: [String: AddressConfiguration]? + /// Message configuration. + public let messageConfiguration: DirectMessageConfiguration? + /// A map of destination addresses, with the address as the key(Email address, phone number or push token) and the Address Configuration as the value. + public let endpoints: [String: EndpointSendConfiguration]? - public init(senderId: String? = nil, messageType: MessageType? = nil, body: String? = nil, substitutions: [String: [String]]? = nil) { - self.senderId = senderId - self.messageType = messageType - self.body = body - self.substitutions = substitutions + public init(context: [String: String]? = nil, addresses: [String: AddressConfiguration]? = nil, messageConfiguration: DirectMessageConfiguration? = nil, endpoints: [String: EndpointSendConfiguration]? = nil) { + self.context = context + self.addresses = addresses + self.messageConfiguration = messageConfiguration + self.endpoints = endpoints } private enum CodingKeys: String, CodingKey { - case senderId = "SenderId" - case messageType = "MessageType" - case body = "Body" - case substitutions = "Substitutions" + case context = "Context" + case addresses = "Addresses" + case messageConfiguration = "MessageConfiguration" + case endpoints = "Endpoints" } } - public struct DeleteApnsSandboxChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct GetCampaignRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CampaignId", location: .uri(locationName: "campaign-id"), required: true, type: .string), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] + public let campaignId: String public let applicationId: String - public init(applicationId: String) { + public init(campaignId: String, applicationId: String) { + self.campaignId = campaignId self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { + case campaignId = "campaign-id" case applicationId = "application-id" } } - public struct DeleteSmsChannelResponse: AWSShape { + public struct DeleteBaiduChannelResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "SMSChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SMSChannelResponse", required: true, type: .structure) + public static let payloadPath: String? = "BaiduChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BaiduChannelResponse", required: true, type: .structure) ] - public let sMSChannelResponse: SMSChannelResponse + public let baiduChannelResponse: BaiduChannelResponse - public init(sMSChannelResponse: SMSChannelResponse) { - self.sMSChannelResponse = sMSChannelResponse + public init(baiduChannelResponse: BaiduChannelResponse) { + self.baiduChannelResponse = baiduChannelResponse } private enum CodingKeys: String, CodingKey { - case sMSChannelResponse = "SMSChannelResponse" + case baiduChannelResponse = "BaiduChannelResponse" } } - public struct CampaignResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Limits", required: false, type: .structure), - AWSShapeMember(label: "TreatmentName", required: false, type: .string), - AWSShapeMember(label: "SegmentVersion", required: false, type: .integer), - AWSShapeMember(label: "State", required: false, type: .structure), - AWSShapeMember(label: "CreationDate", required: false, type: .string), - AWSShapeMember(label: "Schedule", required: false, type: .structure), - AWSShapeMember(label: "MessageConfiguration", required: false, type: .structure), - AWSShapeMember(label: "SegmentId", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string), - AWSShapeMember(label: "TreatmentDescription", required: false, type: .string), - AWSShapeMember(label: "AdditionalTreatments", required: false, type: .list), + public struct ApplicationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "HoldoutPercent", required: false, type: .integer), - AWSShapeMember(label: "Version", required: false, type: .integer), - AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), - AWSShapeMember(label: "ApplicationId", required: false, type: .string), - AWSShapeMember(label: "IsPaused", required: false, type: .boolean), - AWSShapeMember(label: "DefaultState", required: false, type: .structure) + AWSShapeMember(label: "Id", required: false, type: .string) ] - /// The campaign limits settings. - public let limits: CampaignLimits? - /// The custom name of a variation of the campaign used for A/B testing. - public let treatmentName: String? - /// The version of the segment to which the campaign sends messages. - public let segmentVersion: Int32? - /// The campaign status. - /// An A/B test campaign will have a status of COMPLETED only when all treatments have a status of COMPLETED. - public let state: CampaignState? - /// The date the campaign was created in ISO 8601 format. - public let creationDate: String? - /// The campaign schedule. - public let schedule: Schedule? - /// The message configuration settings. - public let messageConfiguration: MessageConfiguration? - /// The ID of the segment to which the campaign sends messages. - public let segmentId: String? - /// The unique campaign ID. - public let id: String? - /// A description of the campaign. - public let description: String? - /// A custom description for the treatment. - public let treatmentDescription: String? - /// Treatments that are defined in addition to the default treatment. - public let additionalTreatments: [TreatmentResource]? - /// The custom name of the campaign. + /// The display name of the application. public let name: String? - /// The allocated percentage of end users who will not receive messages from this campaign. - public let holdoutPercent: Int32? - /// The campaign version number. - public let version: Int32? - /// The date the campaign was last updated in ISO 8601 format. - public let lastModifiedDate: String? - /// The ID of the application to which the campaign applies. - public let applicationId: String? - /// Indicates whether the campaign is paused. A paused campaign does not send messages unless you resume it by setting IsPaused to false. - public let isPaused: Bool? - /// The status of the campaign's default treatment. Only present for A/B test campaigns. - public let defaultState: CampaignState? + /// The unique application ID. + public let id: String? - public init(limits: CampaignLimits? = nil, treatmentName: String? = nil, segmentVersion: Int32? = nil, state: CampaignState? = nil, creationDate: String? = nil, schedule: Schedule? = nil, messageConfiguration: MessageConfiguration? = nil, segmentId: String? = nil, id: String? = nil, description: String? = nil, treatmentDescription: String? = nil, additionalTreatments: [TreatmentResource]? = nil, name: String? = nil, holdoutPercent: Int32? = nil, version: Int32? = nil, lastModifiedDate: String? = nil, applicationId: String? = nil, isPaused: Bool? = nil, defaultState: CampaignState? = nil) { - self.limits = limits - self.treatmentName = treatmentName - self.segmentVersion = segmentVersion - self.state = state - self.creationDate = creationDate - self.schedule = schedule - self.messageConfiguration = messageConfiguration - self.segmentId = segmentId - self.id = id - self.description = description - self.treatmentDescription = treatmentDescription - self.additionalTreatments = additionalTreatments + public init(name: String? = nil, id: String? = nil) { self.name = name - self.holdoutPercent = holdoutPercent - self.version = version - self.lastModifiedDate = lastModifiedDate - self.applicationId = applicationId - self.isPaused = isPaused - self.defaultState = defaultState + self.id = id } private enum CodingKeys: String, CodingKey { - case limits = "Limits" - case treatmentName = "TreatmentName" - case segmentVersion = "SegmentVersion" - case state = "State" - case creationDate = "CreationDate" - case schedule = "Schedule" - case messageConfiguration = "MessageConfiguration" - case segmentId = "SegmentId" - case id = "Id" - case description = "Description" - case treatmentDescription = "TreatmentDescription" - case additionalTreatments = "AdditionalTreatments" case name = "Name" - case holdoutPercent = "HoldoutPercent" - case version = "Version" - case lastModifiedDate = "LastModifiedDate" - case applicationId = "ApplicationId" - case isPaused = "IsPaused" - case defaultState = "DefaultState" + case id = "Id" } } - public enum Frequency: String, CustomStringConvertible, Codable { - case once = "ONCE" - case hourly = "HOURLY" - case daily = "DAILY" - case weekly = "WEEKLY" - case monthly = "MONTHLY" - public var description: String { return self.rawValue } - } - - public struct GetSmsChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct UpdateEndpointRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "EndpointRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointRequest", required: true, type: .structure), + AWSShapeMember(label: "EndpointId", location: .uri(locationName: "endpoint-id"), required: true, type: .string), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] + public let endpointRequest: EndpointRequest + public let endpointId: String public let applicationId: String - public init(applicationId: String) { + public init(endpointRequest: EndpointRequest, endpointId: String, applicationId: String) { + self.endpointRequest = endpointRequest + self.endpointId = endpointId self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { + case endpointRequest = "EndpointRequest" + case endpointId = "endpoint-id" case applicationId = "application-id" } } - public struct MessageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MessageConfiguration", required: false, type: .structure), - AWSShapeMember(label: "Context", required: false, type: .map), - AWSShapeMember(label: "Addresses", required: false, type: .map) - ] - /// Message configuration. - public let messageConfiguration: DirectMessageConfiguration? - public let context: [String: String]? - /// A map of destination addresses, with the address as the key(Email address, phone number or push token) and the Address Configuration as the value. - public let addresses: [String: AddressConfiguration]? - - public init(messageConfiguration: DirectMessageConfiguration? = nil, context: [String: String]? = nil, addresses: [String: AddressConfiguration]? = nil) { - self.messageConfiguration = messageConfiguration - self.context = context - self.addresses = addresses - } - - private enum CodingKeys: String, CodingKey { - case messageConfiguration = "MessageConfiguration" - case context = "Context" - case addresses = "Addresses" - } - } - - public struct GetCampaignRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CampaignId", location: .uri(locationName: "campaign-id"), required: true, type: .string), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + public struct GetSegmentImportJobsResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ImportJobsResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ImportJobsResponse", required: true, type: .structure) ] - public let campaignId: String - public let applicationId: String + public let importJobsResponse: ImportJobsResponse - public init(campaignId: String, applicationId: String) { - self.campaignId = campaignId - self.applicationId = applicationId + public init(importJobsResponse: ImportJobsResponse) { + self.importJobsResponse = importJobsResponse } private enum CodingKeys: String, CodingKey { - case campaignId = "campaign-id" - case applicationId = "application-id" + case importJobsResponse = "ImportJobsResponse" } } public struct WriteApplicationSettingsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limits", required: false, type: .structure), AWSShapeMember(label: "QuietTime", required: false, type: .structure) ] @@ -1353,7 +1014,7 @@ extension Pinpoint { public struct UpdateGcmChannelResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "GCMChannelResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GCMChannelResponse", required: true, type: .structure) ] public let gCMChannelResponse: GCMChannelResponse @@ -1367,241 +1028,157 @@ extension Pinpoint { } } - public struct APNSMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ThreadId", required: false, type: .string), - AWSShapeMember(label: "Data", required: false, type: .map), - AWSShapeMember(label: "MediaUrl", required: false, type: .string), - AWSShapeMember(label: "Title", required: false, type: .string), - AWSShapeMember(label: "SilentPush", required: false, type: .boolean), - AWSShapeMember(label: "Badge", required: false, type: .integer), - AWSShapeMember(label: "Action", required: false, type: .enum), - AWSShapeMember(label: "Url", required: false, type: .string), - AWSShapeMember(label: "RawContent", required: false, type: .string), - AWSShapeMember(label: "Category", required: false, type: .string), - AWSShapeMember(label: "Sound", required: false, type: .string), - AWSShapeMember(label: "Body", required: false, type: .string), - AWSShapeMember(label: "Substitutions", required: false, type: .map) + public struct EndpointMessageResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeliveryStatus", required: false, type: .enum), + AWSShapeMember(label: "StatusCode", required: false, type: .integer), + AWSShapeMember(label: "StatusMessage", required: false, type: .string), + AWSShapeMember(label: "Address", required: false, type: .string), + AWSShapeMember(label: "UpdatedToken", required: false, type: .string) ] - /// Provide this key with a string value that represents the app-specific identifier for grouping notifications. If you provide a Notification Content app extension, you can use this value to group your notifications together. - public let threadId: String? - public let data: [String: String]? - /// The URL that points to a video used in the push notification. - public let mediaUrl: String? - /// The message title that displays above the message on the user's device. - public let title: String? - /// Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases. - public let silentPush: Bool? - /// Include this key when you want the system to modify the badge of your app icon. If this key is not included in the dictionary, the badge is not changed. To remove the badge, set the value of this key to 0. - public let badge: Int32? - /// The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL - public let action: Action? - /// The URL to open in the user's mobile browser. Used if the value for Action is URL. - public let url: String? - /// The Raw JSON formatted string to be used as the payload. This value overrides the message. - public let rawContent: String? - /// Provide this key with a string value that represents the notification's type. This value corresponds to the value in the identifier property of one of your app's registered categories. - public let category: String? - /// Include this key when you want the system to play a sound. The value of this key is the name of a sound file in your app's main bundle or in the Library/Sounds folder of your app's data container. If the sound file cannot be found, or if you specify defaultfor the value, the system plays the default alert sound. - public let sound: String? - /// The message body of the notification, the email body or the text message. - public let body: String? - public let substitutions: [String: [String]]? + /// Delivery status of message. + public let deliveryStatus: DeliveryStatus? + /// Downstream service status code. + public let statusCode: Int32? + /// Status message for message delivery. + public let statusMessage: String? + /// Address that endpoint message was delivered to. + public let address: String? + /// If token was updated as part of delivery. (This is GCM Specific) + public let updatedToken: String? - public init(threadId: String? = nil, data: [String: String]? = nil, mediaUrl: String? = nil, title: String? = nil, silentPush: Bool? = nil, badge: Int32? = nil, action: Action? = nil, url: String? = nil, rawContent: String? = nil, category: String? = nil, sound: String? = nil, body: String? = nil, substitutions: [String: [String]]? = nil) { - self.threadId = threadId - self.data = data - self.mediaUrl = mediaUrl - self.title = title - self.silentPush = silentPush - self.badge = badge - self.action = action - self.url = url - self.rawContent = rawContent - self.category = category - self.sound = sound - self.body = body - self.substitutions = substitutions + public init(deliveryStatus: DeliveryStatus? = nil, statusCode: Int32? = nil, statusMessage: String? = nil, address: String? = nil, updatedToken: String? = nil) { + self.deliveryStatus = deliveryStatus + self.statusCode = statusCode + self.statusMessage = statusMessage + self.address = address + self.updatedToken = updatedToken } private enum CodingKeys: String, CodingKey { - case threadId = "ThreadId" - case data = "Data" - case mediaUrl = "MediaUrl" - case title = "Title" - case silentPush = "SilentPush" - case badge = "Badge" - case action = "Action" - case url = "Url" - case rawContent = "RawContent" - case category = "Category" - case sound = "Sound" - case body = "Body" - case substitutions = "Substitutions" + case deliveryStatus = "DeliveryStatus" + case statusCode = "StatusCode" + case statusMessage = "StatusMessage" + case address = "Address" + case updatedToken = "UpdatedToken" } } - public struct GetSegmentImportJobsResponse: AWSShape { + public enum Duration: String, CustomStringConvertible, Codable { + case hr24 = "HR_24" + case day7 = "DAY_7" + case day14 = "DAY_14" + case day30 = "DAY_30" + public var description: String { return self.rawValue } + } + + public struct GetSmsChannelResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "ImportJobsResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ImportJobsResponse", required: true, type: .structure) + public static let payloadPath: String? = "SMSChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SMSChannelResponse", required: true, type: .structure) ] - public let importJobsResponse: ImportJobsResponse + public let sMSChannelResponse: SMSChannelResponse - public init(importJobsResponse: ImportJobsResponse) { - self.importJobsResponse = importJobsResponse + public init(sMSChannelResponse: SMSChannelResponse) { + self.sMSChannelResponse = sMSChannelResponse } private enum CodingKeys: String, CodingKey { - case importJobsResponse = "ImportJobsResponse" + case sMSChannelResponse = "SMSChannelResponse" } } - public struct UpdateEndpointRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "EndpointRequest" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EndpointRequest", required: true, type: .structure), - AWSShapeMember(label: "EndpointId", location: .uri(locationName: "endpoint-id"), required: true, type: .string), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + public struct EndpointBatchItem: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChannelType", required: false, type: .enum), + AWSShapeMember(label: "User", required: false, type: .structure), + AWSShapeMember(label: "EffectiveDate", required: false, type: .string), + AWSShapeMember(label: "OptOut", required: false, type: .string), + AWSShapeMember(label: "Metrics", required: false, type: .map), + AWSShapeMember(label: "Location", required: false, type: .structure), + AWSShapeMember(label: "Address", required: false, type: .string), + AWSShapeMember(label: "Demographic", required: false, type: .structure), + AWSShapeMember(label: "Attributes", required: false, type: .map), + AWSShapeMember(label: "RequestId", required: false, type: .string), + AWSShapeMember(label: "EndpointStatus", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) ] - public let endpointRequest: EndpointRequest - public let endpointId: String - public let applicationId: String + /// The channel type. + /// Valid values: GCM | APNS | SMS | EMAIL + public let channelType: ChannelType? + /// Custom user-specific attributes that your app reports to Amazon Pinpoint. + public let user: EndpointUser? + /// The last time the endpoint was updated. Provided in ISO 8601 format. + public let effectiveDate: String? + /// Indicates whether a user has opted out of receiving messages with one of the following values: + /// ALL - User has opted out of all messages. + /// NONE - Users has not opted out and receives all messages. + public let optOut: String? + public let metrics: [String: Double]? + /// The endpoint location attributes. + public let location: EndpointLocation? + /// The address or token of the endpoint as provided by your push provider (e.g. DeviceToken or RegistrationId). + public let address: String? + /// The endpoint demographic attributes. + public let demographic: EndpointDemographic? + public let attributes: [String: [String]]? + /// The unique ID for the most recent request to update the endpoint. + public let requestId: String? + /// The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated. + public let endpointStatus: String? + /// The unique Id for the Endpoint in the batch. + public let id: String? - public init(endpointRequest: EndpointRequest, endpointId: String, applicationId: String) { - self.endpointRequest = endpointRequest - self.endpointId = endpointId - self.applicationId = applicationId + public init(channelType: ChannelType? = nil, user: EndpointUser? = nil, effectiveDate: String? = nil, optOut: String? = nil, metrics: [String: Double]? = nil, location: EndpointLocation? = nil, address: String? = nil, demographic: EndpointDemographic? = nil, attributes: [String: [String]]? = nil, requestId: String? = nil, endpointStatus: String? = nil, id: String? = nil) { + self.channelType = channelType + self.user = user + self.effectiveDate = effectiveDate + self.optOut = optOut + self.metrics = metrics + self.location = location + self.address = address + self.demographic = demographic + self.attributes = attributes + self.requestId = requestId + self.endpointStatus = endpointStatus + self.id = id } private enum CodingKeys: String, CodingKey { - case endpointRequest = "EndpointRequest" - case endpointId = "endpoint-id" - case applicationId = "application-id" - } - } - - public struct DefaultPushNotificationMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Action", required: false, type: .enum), - AWSShapeMember(label: "Url", required: false, type: .string), - AWSShapeMember(label: "Data", required: false, type: .map), - AWSShapeMember(label: "Title", required: false, type: .string), - AWSShapeMember(label: "SilentPush", required: false, type: .boolean), - AWSShapeMember(label: "Body", required: false, type: .string), - AWSShapeMember(label: "Substitutions", required: false, type: .map) - ] - /// The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL - public let action: Action? - /// The URL to open in the user's mobile browser. Used if the value for Action is URL. - public let url: String? - public let data: [String: String]? - /// The message title that displays above the message on the user's device. - public let title: String? - /// Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases. - public let silentPush: Bool? - /// The message body of the notification, the email body or the text message. - public let body: String? - public let substitutions: [String: [String]]? - - public init(action: Action? = nil, url: String? = nil, data: [String: String]? = nil, title: String? = nil, silentPush: Bool? = nil, body: String? = nil, substitutions: [String: [String]]? = nil) { - self.action = action - self.url = url - self.data = data - self.title = title - self.silentPush = silentPush - self.body = body - self.substitutions = substitutions - } - - private enum CodingKeys: String, CodingKey { - case action = "Action" - case url = "Url" - case data = "Data" - case title = "Title" - case silentPush = "SilentPush" - case body = "Body" - case substitutions = "Substitutions" - } - } - - public enum Duration: String, CustomStringConvertible, Codable { - case hr24 = "HR_24" - case day7 = "DAY_7" - case day14 = "DAY_14" - case day30 = "DAY_30" - public var description: String { return self.rawValue } - } - - public enum ChannelType: String, CustomStringConvertible, Codable { - case gcm = "GCM" - case apns = "APNS" - case apnsSandbox = "APNS_SANDBOX" - case adm = "ADM" - case sms = "SMS" - case email = "EMAIL" - public var description: String { return self.rawValue } - } - - public struct GetSmsChannelResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "SMSChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SMSChannelResponse", required: true, type: .structure) - ] - public let sMSChannelResponse: SMSChannelResponse - - public init(sMSChannelResponse: SMSChannelResponse) { - self.sMSChannelResponse = sMSChannelResponse - } - - private enum CodingKeys: String, CodingKey { - case sMSChannelResponse = "SMSChannelResponse" - } - } - - public struct MessageResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Result", required: false, type: .map), - AWSShapeMember(label: "RequestId", required: false, type: .string), - AWSShapeMember(label: "ApplicationId", required: false, type: .string) - ] - /// A map containing a multi part response for each address, with the address as the key(Email address, phone number or push token) and the result as the value. - public let result: [String: MessageResult]? - /// Original request Id for which this message was delivered. - public let requestId: String? - /// Application id of the message. - public let applicationId: String? - - public init(result: [String: MessageResult]? = nil, requestId: String? = nil, applicationId: String? = nil) { - self.result = result - self.requestId = requestId - self.applicationId = applicationId - } - - private enum CodingKeys: String, CodingKey { - case result = "Result" + case channelType = "ChannelType" + case user = "User" + case effectiveDate = "EffectiveDate" + case optOut = "OptOut" + case metrics = "Metrics" + case location = "Location" + case address = "Address" + case demographic = "Demographic" + case attributes = "Attributes" case requestId = "RequestId" - case applicationId = "ApplicationId" + case endpointStatus = "EndpointStatus" + case id = "Id" } } - public struct UpdateEmailChannelResponse: AWSShape { + public struct UpdateApnsVoipChannelRequest: AWSShape { /// The key for the payload - public static let payloadPath: String? = "EmailChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EmailChannelResponse", required: true, type: .structure) + public static let payloadPath: String? = "APNSVoipChannelRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSVoipChannelRequest", required: true, type: .structure), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - public let emailChannelResponse: EmailChannelResponse + public let aPNSVoipChannelRequest: APNSVoipChannelRequest + public let applicationId: String - public init(emailChannelResponse: EmailChannelResponse) { - self.emailChannelResponse = emailChannelResponse + public init(aPNSVoipChannelRequest: APNSVoipChannelRequest, applicationId: String) { + self.aPNSVoipChannelRequest = aPNSVoipChannelRequest + self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case emailChannelResponse = "EmailChannelResponse" + case aPNSVoipChannelRequest = "APNSVoipChannelRequest" + case applicationId = "application-id" } } @@ -1612,7 +1189,7 @@ extension Pinpoint { } public struct CampaignsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Item", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -1632,69 +1209,23 @@ extension Pinpoint { } } - public struct GCMChannelResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Id", required: false, type: .string), - AWSShapeMember(label: "Platform", required: false, type: .string), - AWSShapeMember(label: "Enabled", required: false, type: .boolean), - AWSShapeMember(label: "Version", required: false, type: .integer), - AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), - AWSShapeMember(label: "Credential", required: false, type: .string), - AWSShapeMember(label: "ApplicationId", required: false, type: .string), - AWSShapeMember(label: "CreationDate", required: false, type: .string), - AWSShapeMember(label: "IsArchived", required: false, type: .boolean), - AWSShapeMember(label: "LastModifiedBy", required: false, type: .string) + public struct GetApnsVoipChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - /// Channel ID. Not used, only for backwards compatibility. - public let id: String? - /// The platform type. Will be GCM - public let platform: String? - /// If the channel is enabled for sending messages. - public let enabled: Bool? - /// Version of channel - public let version: Int32? - /// Last date this was updated - public let lastModifiedDate: String? - /// The GCM API key from Google. - public let credential: String? - /// The ID of the application to which the channel applies. - public let applicationId: String? - /// When was this segment created - public let creationDate: String? - /// Is this channel archived - public let isArchived: Bool? - /// Who last updated this entry - public let lastModifiedBy: String? + public let applicationId: String - public init(id: String? = nil, platform: String? = nil, enabled: Bool? = nil, version: Int32? = nil, lastModifiedDate: String? = nil, credential: String? = nil, applicationId: String? = nil, creationDate: String? = nil, isArchived: Bool? = nil, lastModifiedBy: String? = nil) { - self.id = id - self.platform = platform - self.enabled = enabled - self.version = version - self.lastModifiedDate = lastModifiedDate - self.credential = credential + public init(applicationId: String) { self.applicationId = applicationId - self.creationDate = creationDate - self.isArchived = isArchived - self.lastModifiedBy = lastModifiedBy } private enum CodingKeys: String, CodingKey { - case id = "Id" - case platform = "Platform" - case enabled = "Enabled" - case version = "Version" - case lastModifiedDate = "LastModifiedDate" - case credential = "Credential" - case applicationId = "ApplicationId" - case creationDate = "CreationDate" - case isArchived = "IsArchived" - case lastModifiedBy = "LastModifiedBy" + case applicationId = "application-id" } } public struct DefaultMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Body", required: false, type: .string), AWSShapeMember(label: "Substitutions", required: false, type: .map) ] @@ -1713,48 +1244,39 @@ extension Pinpoint { } } - public struct ActivitiesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Item", required: false, type: .list) + public struct DeleteAdmChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - /// List of campaign activities - public let item: [ActivityResponse]? + public let applicationId: String - public init(item: [ActivityResponse]? = nil) { - self.item = item + public init(applicationId: String) { + self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case item = "Item" + case applicationId = "application-id" } } - public struct RecencyDimension: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Duration", required: false, type: .enum), - AWSShapeMember(label: "RecencyType", required: false, type: .enum) + public struct CreateApplicationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string) ] - /// The length of time during which users have been active or inactive with your app. - /// Valid values: HR_24, DAY_7, DAY_14, DAY_30 - public let duration: Duration? - /// The recency dimension type: - /// ACTIVE - Users who have used your app within the specified duration are included in the segment. - /// INACTIVE - Users who have not used your app within the specified duration are included in the segment. - public let recencyType: RecencyType? + /// The display name of the application. Used in the Amazon Pinpoint console. + public let name: String? - public init(duration: Duration? = nil, recencyType: RecencyType? = nil) { - self.duration = duration - self.recencyType = recencyType + public init(name: String? = nil) { + self.name = name } private enum CodingKeys: String, CodingKey { - case duration = "Duration" - case recencyType = "RecencyType" + case name = "Name" } } public struct EndpointLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Longitude", required: false, type: .double), AWSShapeMember(label: "Country", required: false, type: .string), AWSShapeMember(label: "PostalCode", required: false, type: .string), @@ -1794,84 +1316,27 @@ extension Pinpoint { } } - public struct Schedule: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StartTime", required: false, type: .string), - AWSShapeMember(label: "EndTime", required: false, type: .string), - AWSShapeMember(label: "Frequency", required: false, type: .enum), - AWSShapeMember(label: "QuietTime", required: false, type: .structure), - AWSShapeMember(label: "IsLocalTime", required: false, type: .boolean), - AWSShapeMember(label: "Timezone", required: false, type: .string) + public struct GetApnsVoipChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSVoipChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSVoipChannelResponse", required: true, type: .structure) ] - /// The scheduled time that the campaign begins in ISO 8601 format. - public let startTime: String? - /// The scheduled time that the campaign ends in ISO 8601 format. - public let endTime: String? - /// How often the campaign delivers messages. - /// Valid values: ONCE, HOURLY, DAILY, WEEKLY, MONTHLY - public let frequency: Frequency? - /// The time during which the campaign sends no messages. - public let quietTime: QuietTime? - /// Indicates whether the campaign schedule takes effect according to each user's local time. - public let isLocalTime: Bool? - /// The starting UTC offset for the schedule if the value for isLocalTime is true - /// Valid values: - /// UTC - /// UTC+01 - /// UTC+02 - /// UTC+03 - /// UTC+03:30 - /// UTC+04 - /// UTC+04:30 - /// UTC+05 - /// UTC+05:30 - /// UTC+05:45 - /// UTC+06 - /// UTC+06:30 - /// UTC+07 - /// UTC+08 - /// UTC+09 - /// UTC+09:30 - /// UTC+10 - /// UTC+10:30 - /// UTC+11 - /// UTC+12 - /// UTC+13 - /// UTC-02 - /// UTC-03 - /// UTC-04 - /// UTC-05 - /// UTC-06 - /// UTC-07 - /// UTC-08 - /// UTC-09 - /// UTC-10 - /// UTC-11 - public let timezone: String? + public let aPNSVoipChannelResponse: APNSVoipChannelResponse - public init(startTime: String? = nil, endTime: String? = nil, frequency: Frequency? = nil, quietTime: QuietTime? = nil, isLocalTime: Bool? = nil, timezone: String? = nil) { - self.startTime = startTime - self.endTime = endTime - self.frequency = frequency - self.quietTime = quietTime - self.isLocalTime = isLocalTime - self.timezone = timezone + public init(aPNSVoipChannelResponse: APNSVoipChannelResponse) { + self.aPNSVoipChannelResponse = aPNSVoipChannelResponse } private enum CodingKeys: String, CodingKey { - case startTime = "StartTime" - case endTime = "EndTime" - case frequency = "Frequency" - case quietTime = "QuietTime" - case isLocalTime = "IsLocalTime" - case timezone = "Timezone" + case aPNSVoipChannelResponse = "APNSVoipChannelResponse" } } public struct GetEndpointResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "EndpointResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndpointResponse", required: true, type: .structure) ] public let endpointResponse: EndpointResponse @@ -1885,308 +1350,176 @@ extension Pinpoint { } } - public struct EndpointBatchItem: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChannelType", required: false, type: .enum), - AWSShapeMember(label: "User", required: false, type: .structure), - AWSShapeMember(label: "EffectiveDate", required: false, type: .string), - AWSShapeMember(label: "OptOut", required: false, type: .string), - AWSShapeMember(label: "Metrics", required: false, type: .map), - AWSShapeMember(label: "Location", required: false, type: .structure), - AWSShapeMember(label: "Address", required: false, type: .string), - AWSShapeMember(label: "Demographic", required: false, type: .structure), - AWSShapeMember(label: "Attributes", required: false, type: .map), - AWSShapeMember(label: "RequestId", required: false, type: .string), - AWSShapeMember(label: "EndpointStatus", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) + public struct GCMChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "Platform", required: false, type: .string), + AWSShapeMember(label: "HasCredential", required: false, type: .boolean), + AWSShapeMember(label: "Version", required: false, type: .integer), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), + AWSShapeMember(label: "Credential", required: false, type: .string), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "IsArchived", required: false, type: .boolean), + AWSShapeMember(label: "LastModifiedBy", required: false, type: .string) ] - /// The channel type. - /// Valid values: APNS, GCM - public let channelType: ChannelType? - /// Custom user-specific attributes that your app reports to Amazon Pinpoint. - public let user: EndpointUser? - /// The last time the endpoint was updated. Provided in ISO 8601 format. - public let effectiveDate: String? - /// Indicates whether a user has opted out of receiving messages with one of the following values: - /// ALL – User receives all messages. - /// NONE – User receives no messages. - public let optOut: String? - public let metrics: [String: Double]? - /// The endpoint location attributes. - public let location: EndpointLocation? - /// The address or token of the endpoint as provided by your push provider (e.g. DeviceToken or RegistrationId). - public let address: String? - /// The endpoint demographic attributes. - public let demographic: EndpointDemographic? - public let attributes: [String: [String]]? - /// The unique ID for the most recent request to update the endpoint. - public let requestId: String? - /// The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated. - public let endpointStatus: String? - /// The unique Id for the Endpoint in the batch. + /// Channel ID. Not used. Present only for backwards compatibility. public let id: String? + /// The platform type. Will be GCM + public let platform: String? + /// If the channel is registered with a credential for authentication. + public let hasCredential: Bool? + /// Version of channel + public let version: Int32? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + /// Last date this was updated + public let lastModifiedDate: String? + /// The GCM API key from Google. + public let credential: String? + /// The ID of the application to which the channel applies. + public let applicationId: String? + /// When was this segment created + public let creationDate: String? + /// Is this channel archived + public let isArchived: Bool? + /// Who last updated this entry + public let lastModifiedBy: String? - public init(channelType: ChannelType? = nil, user: EndpointUser? = nil, effectiveDate: String? = nil, optOut: String? = nil, metrics: [String: Double]? = nil, location: EndpointLocation? = nil, address: String? = nil, demographic: EndpointDemographic? = nil, attributes: [String: [String]]? = nil, requestId: String? = nil, endpointStatus: String? = nil, id: String? = nil) { - self.channelType = channelType - self.user = user - self.effectiveDate = effectiveDate - self.optOut = optOut - self.metrics = metrics - self.location = location - self.address = address - self.demographic = demographic - self.attributes = attributes - self.requestId = requestId - self.endpointStatus = endpointStatus + public init(id: String? = nil, platform: String? = nil, hasCredential: Bool? = nil, version: Int32? = nil, enabled: Bool? = nil, lastModifiedDate: String? = nil, credential: String? = nil, applicationId: String? = nil, creationDate: String? = nil, isArchived: Bool? = nil, lastModifiedBy: String? = nil) { self.id = id + self.platform = platform + self.hasCredential = hasCredential + self.version = version + self.enabled = enabled + self.lastModifiedDate = lastModifiedDate + self.credential = credential + self.applicationId = applicationId + self.creationDate = creationDate + self.isArchived = isArchived + self.lastModifiedBy = lastModifiedBy } private enum CodingKeys: String, CodingKey { - case channelType = "ChannelType" - case user = "User" - case effectiveDate = "EffectiveDate" - case optOut = "OptOut" - case metrics = "Metrics" - case location = "Location" - case address = "Address" - case demographic = "Demographic" - case attributes = "Attributes" - case requestId = "RequestId" - case endpointStatus = "EndpointStatus" case id = "Id" + case platform = "Platform" + case hasCredential = "HasCredential" + case version = "Version" + case enabled = "Enabled" + case lastModifiedDate = "LastModifiedDate" + case credential = "Credential" + case applicationId = "ApplicationId" + case creationDate = "CreationDate" + case isArchived = "IsArchived" + case lastModifiedBy = "LastModifiedBy" } } - public struct GetApnsChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + public enum DimensionType: String, CustomStringConvertible, Codable { + case inclusive = "INCLUSIVE" + case exclusive = "EXCLUSIVE" + public var description: String { return self.rawValue } + } + + public struct SendMessagesRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "MessageRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), + AWSShapeMember(label: "MessageRequest", required: true, type: .structure) ] public let applicationId: String + public let messageRequest: MessageRequest - public init(applicationId: String) { + public init(applicationId: String, messageRequest: MessageRequest) { self.applicationId = applicationId + self.messageRequest = messageRequest } private enum CodingKeys: String, CodingKey { case applicationId = "application-id" + case messageRequest = "MessageRequest" } } - public struct GetApnsChannelResponse: AWSShape { + public struct GetEmailChannelResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "APNSChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "APNSChannelResponse", required: true, type: .structure) + public static let payloadPath: String? = "EmailChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EmailChannelResponse", required: true, type: .structure) ] - public let aPNSChannelResponse: APNSChannelResponse + public let emailChannelResponse: EmailChannelResponse - public init(aPNSChannelResponse: APNSChannelResponse) { - self.aPNSChannelResponse = aPNSChannelResponse + public init(emailChannelResponse: EmailChannelResponse) { + self.emailChannelResponse = emailChannelResponse } private enum CodingKeys: String, CodingKey { - case aPNSChannelResponse = "APNSChannelResponse" + case emailChannelResponse = "EmailChannelResponse" } } - public struct SegmentImportResource: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ExternalId", required: false, type: .string), - AWSShapeMember(label: "Format", required: false, type: .enum), - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "ChannelCounts", required: false, type: .map), - AWSShapeMember(label: "S3Url", required: false, type: .string), - AWSShapeMember(label: "Size", required: false, type: .integer) + public enum DeliveryStatus: String, CustomStringConvertible, Codable { + case successful = "SUCCESSFUL" + case throttled = "THROTTLED" + case temporaryFailure = "TEMPORARY_FAILURE" + case permanentFailure = "PERMANENT_FAILURE" + case unknownFailure = "UNKNOWN_FAILURE" + case optOut = "OPT_OUT" + case duplicate = "DUPLICATE" + public var description: String { return self.rawValue } + } + + public struct PutEventStreamResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "EventStream" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventStream", required: true, type: .structure) ] - /// A unique, custom ID assigned to the IAM role that restricts who can assume the role. - public let externalId: String? - /// The format of the endpoint files that were imported to create this segment. - /// Valid values: CSV, JSON - public let format: Format? - /// The Amazon Resource Name (ARN) of an IAM role that grants Amazon Pinpoint access to the endpoints in Amazon S3. - public let roleArn: String? - public let channelCounts: [String: Int32]? - /// A URL that points to the Amazon S3 location from which the endpoints for this segment were imported. - public let s3Url: String? - /// The number of endpoints that were successfully imported to create this segment. - public let size: Int32? + public let eventStream: EventStream - public init(externalId: String? = nil, format: Format? = nil, roleArn: String? = nil, channelCounts: [String: Int32]? = nil, s3Url: String? = nil, size: Int32? = nil) { - self.externalId = externalId - self.format = format - self.roleArn = roleArn - self.channelCounts = channelCounts - self.s3Url = s3Url - self.size = size + public init(eventStream: EventStream) { + self.eventStream = eventStream } private enum CodingKeys: String, CodingKey { - case externalId = "ExternalId" - case format = "Format" - case roleArn = "RoleArn" - case channelCounts = "ChannelCounts" - case s3Url = "S3Url" - case size = "Size" + case eventStream = "EventStream" } } - public enum DimensionType: String, CustomStringConvertible, Codable { - case inclusive = "INCLUSIVE" - case exclusive = "EXCLUSIVE" + public enum CampaignStatus: String, CustomStringConvertible, Codable { + case scheduled = "SCHEDULED" + case executing = "EXECUTING" + case pendingNextRun = "PENDING_NEXT_RUN" + case completed = "COMPLETED" + case paused = "PAUSED" public var description: String { return self.rawValue } } - public struct ImportJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "S3Url", required: false, type: .string), - AWSShapeMember(label: "DefineSegment", required: false, type: .boolean), - AWSShapeMember(label: "Format", required: false, type: .enum), - AWSShapeMember(label: "ExternalId", required: false, type: .string), - AWSShapeMember(label: "RegisterEndpoints", required: false, type: .boolean), - AWSShapeMember(label: "SegmentName", required: false, type: .string), - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "SegmentId", required: false, type: .string) + public struct UpdateAdmChannelRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ADMChannelRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), + AWSShapeMember(label: "ADMChannelRequest", required: true, type: .structure) ] - /// A URL that points to the location within an Amazon S3 bucket that contains the endpoints to import. The location can be a folder or a single file. - /// The URL should follow this format: s3://bucket-name/folder-name/file-name - /// Amazon Pinpoint will import endpoints from this location and any subfolders it contains. - public let s3Url: String? - /// Sets whether the endpoints create a segment when they are imported. - public let defineSegment: Bool? - /// The format of the files that contain the endpoint definitions. - /// Valid values: CSV, JSON - public let format: Format? - /// A unique, custom ID assigned to the IAM role that restricts who can assume the role. - public let externalId: String? - /// Sets whether the endpoints are registered with Amazon Pinpoint when they are imported. - public let registerEndpoints: Bool? - /// A custom name for the segment created by the import job. Use if DefineSegment is true. - public let segmentName: String? - /// The Amazon Resource Name (ARN) of an IAM role that grants Amazon Pinpoint access to the Amazon S3 location that contains the endpoints to import. - public let roleArn: String? - /// The ID of the segment to update if the import job is meant to update an existing segment. - public let segmentId: String? + public let applicationId: String + public let aDMChannelRequest: ADMChannelRequest - public init(s3Url: String? = nil, defineSegment: Bool? = nil, format: Format? = nil, externalId: String? = nil, registerEndpoints: Bool? = nil, segmentName: String? = nil, roleArn: String? = nil, segmentId: String? = nil) { - self.s3Url = s3Url - self.defineSegment = defineSegment - self.format = format - self.externalId = externalId - self.registerEndpoints = registerEndpoints - self.segmentName = segmentName - self.roleArn = roleArn - self.segmentId = segmentId + public init(applicationId: String, aDMChannelRequest: ADMChannelRequest) { + self.applicationId = applicationId + self.aDMChannelRequest = aDMChannelRequest } private enum CodingKeys: String, CodingKey { - case s3Url = "S3Url" - case defineSegment = "DefineSegment" - case format = "Format" - case externalId = "ExternalId" - case registerEndpoints = "RegisterEndpoints" - case segmentName = "SegmentName" - case roleArn = "RoleArn" - case segmentId = "SegmentId" + case applicationId = "application-id" + case aDMChannelRequest = "ADMChannelRequest" } } - public struct GetEmailChannelResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "EmailChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EmailChannelResponse", required: true, type: .structure) - ] - public let emailChannelResponse: EmailChannelResponse - - public init(emailChannelResponse: EmailChannelResponse) { - self.emailChannelResponse = emailChannelResponse - } - - private enum CodingKeys: String, CodingKey { - case emailChannelResponse = "EmailChannelResponse" - } - } - - public struct SendMessagesRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "MessageRequest" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), - AWSShapeMember(label: "MessageRequest", required: true, type: .structure) - ] - public let applicationId: String - public let messageRequest: MessageRequest - - public init(applicationId: String, messageRequest: MessageRequest) { - self.applicationId = applicationId - self.messageRequest = messageRequest - } - - private enum CodingKeys: String, CodingKey { - case applicationId = "application-id" - case messageRequest = "MessageRequest" - } - } - - public struct PutEventStreamResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "EventStream" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventStream", required: true, type: .structure) - ] - public let eventStream: EventStream - - public init(eventStream: EventStream) { - self.eventStream = eventStream - } - - private enum CodingKeys: String, CodingKey { - case eventStream = "EventStream" - } - } - - public enum DeliveryStatus: String, CustomStringConvertible, Codable { - case successful = "SUCCESSFUL" - case throttled = "THROTTLED" - case temporaryFailure = "TEMPORARY_FAILURE" - case permanentFailure = "PERMANENT_FAILURE" - public var description: String { return self.rawValue } - } - - public struct GetCampaignsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), - AWSShapeMember(label: "Token", location: .querystring(locationName: "token"), required: false, type: .string) - ] - public let pageSize: String? - public let applicationId: String - public let token: String? - - public init(pageSize: String? = nil, applicationId: String, token: String? = nil) { - self.pageSize = pageSize - self.applicationId = applicationId - self.token = token - } - - private enum CodingKeys: String, CodingKey { - case pageSize = "page-size" - case applicationId = "application-id" - case token = "token" - } - } - - public enum CampaignStatus: String, CustomStringConvertible, Codable { - case scheduled = "SCHEDULED" - case executing = "EXECUTING" - case pendingNextRun = "PENDING_NEXT_RUN" - case completed = "COMPLETED" - case paused = "PAUSED" - public var description: String { return self.rawValue } - } - public struct SetDimension: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DimensionType", required: false, type: .enum), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -2207,64 +1540,10 @@ extension Pinpoint { } } - public struct ImportJobResource: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "S3Url", required: false, type: .string), - AWSShapeMember(label: "DefineSegment", required: false, type: .boolean), - AWSShapeMember(label: "Format", required: false, type: .enum), - AWSShapeMember(label: "ExternalId", required: false, type: .string), - AWSShapeMember(label: "RegisterEndpoints", required: false, type: .boolean), - AWSShapeMember(label: "SegmentName", required: false, type: .string), - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "SegmentId", required: false, type: .string) - ] - /// A URL that points to the location within an Amazon S3 bucket that contains the endpoints to import. The location can be a folder or a single file. - /// The URL should follow this format: s3://bucket-name/folder-name/file-name - /// Amazon Pinpoint will import endpoints from this location and any subfolders it contains. - public let s3Url: String? - /// Sets whether the endpoints create a segment when they are imported. - public let defineSegment: Bool? - /// The format of the files that contain the endpoint definitions. - /// Valid values: CSV, JSON - public let format: Format? - /// A unique, custom ID assigned to the IAM role that restricts who can assume the role. - public let externalId: String? - /// Sets whether the endpoints are registered with Amazon Pinpoint when they are imported. - public let registerEndpoints: Bool? - /// A custom name for the segment created by the import job. Use if DefineSegment is true. - public let segmentName: String? - /// The Amazon Resource Name (ARN) of an IAM role that grants Amazon Pinpoint access to the Amazon S3 location that contains the endpoints to import. - public let roleArn: String? - /// The ID of the segment to update if the import job is meant to update an existing segment. - public let segmentId: String? - - public init(s3Url: String? = nil, defineSegment: Bool? = nil, format: Format? = nil, externalId: String? = nil, registerEndpoints: Bool? = nil, segmentName: String? = nil, roleArn: String? = nil, segmentId: String? = nil) { - self.s3Url = s3Url - self.defineSegment = defineSegment - self.format = format - self.externalId = externalId - self.registerEndpoints = registerEndpoints - self.segmentName = segmentName - self.roleArn = roleArn - self.segmentId = segmentId - } - - private enum CodingKeys: String, CodingKey { - case s3Url = "S3Url" - case defineSegment = "DefineSegment" - case format = "Format" - case externalId = "ExternalId" - case registerEndpoints = "RegisterEndpoints" - case segmentName = "SegmentName" - case roleArn = "RoleArn" - case segmentId = "SegmentId" - } - } - public struct GetCampaignVersionResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "CampaignResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CampaignResponse", required: true, type: .structure) ] public let campaignResponse: CampaignResponse @@ -2278,50 +1557,54 @@ extension Pinpoint { } } - public struct CreateImportJobRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "ImportJobRequest" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ImportJobRequest", required: true, type: .structure), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) - ] - public let importJobRequest: ImportJobRequest - public let applicationId: String - - public init(importJobRequest: ImportJobRequest, applicationId: String) { - self.importJobRequest = importJobRequest - self.applicationId = applicationId - } - - private enum CodingKeys: String, CodingKey { - case importJobRequest = "ImportJobRequest" - case applicationId = "application-id" - } - } - public struct APNSChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TeamId", required: false, type: .string), + AWSShapeMember(label: "DefaultAuthenticationMethod", required: false, type: .string), + AWSShapeMember(label: "TokenKeyId", required: false, type: .string), + AWSShapeMember(label: "TokenKey", required: false, type: .string), AWSShapeMember(label: "Certificate", required: false, type: .string), AWSShapeMember(label: "Enabled", required: false, type: .boolean), - AWSShapeMember(label: "PrivateKey", required: false, type: .string) - ] + AWSShapeMember(label: "PrivateKey", required: false, type: .string), + AWSShapeMember(label: "BundleId", required: false, type: .string) + ] + /// The team id used for APNs Tokens. + public let teamId: String? + /// The default authentication method used for APNs. + public let defaultAuthenticationMethod: String? + /// The token key used for APNs Tokens. + public let tokenKeyId: String? + /// The token key used for APNs Tokens. + public let tokenKey: String? /// The distribution certificate from Apple. public let certificate: String? /// If the channel is enabled for sending messages. public let enabled: Bool? /// The certificate private key. public let privateKey: String? - - public init(certificate: String? = nil, enabled: Bool? = nil, privateKey: String? = nil) { + /// The bundle id used for APNs Tokens. + public let bundleId: String? + + public init(teamId: String? = nil, defaultAuthenticationMethod: String? = nil, tokenKeyId: String? = nil, tokenKey: String? = nil, certificate: String? = nil, enabled: Bool? = nil, privateKey: String? = nil, bundleId: String? = nil) { + self.teamId = teamId + self.defaultAuthenticationMethod = defaultAuthenticationMethod + self.tokenKeyId = tokenKeyId + self.tokenKey = tokenKey self.certificate = certificate self.enabled = enabled self.privateKey = privateKey + self.bundleId = bundleId } private enum CodingKeys: String, CodingKey { + case teamId = "TeamId" + case defaultAuthenticationMethod = "DefaultAuthenticationMethod" + case tokenKeyId = "TokenKeyId" + case tokenKey = "TokenKey" case certificate = "Certificate" case enabled = "Enabled" case privateKey = "PrivateKey" + case bundleId = "BundleId" } } @@ -2331,6 +1614,22 @@ extension Pinpoint { public var description: String { return self.rawValue } } + public struct GetEventStreamRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + /// Application Id. + public let applicationId: String + + public init(applicationId: String) { + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + } + } + public enum JobStatus: String, CustomStringConvertible, Codable { case created = "CREATED" case initializing = "INITIALIZING" @@ -2342,98 +1641,54 @@ extension Pinpoint { public var description: String { return self.rawValue } } - public struct EndpointUser: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UserId", required: false, type: .string), - AWSShapeMember(label: "UserAttributes", required: false, type: .map) + public struct MessageBody: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RequestID", required: false, type: .string), + AWSShapeMember(label: "Message", required: false, type: .string) ] - /// The unique ID of the user. - public let userId: String? - public let userAttributes: [String: [String]]? + /// The unique message body ID. + public let requestID: String? + /// The error message returned from the API. + public let message: String? - public init(userId: String? = nil, userAttributes: [String: [String]]? = nil) { - self.userId = userId - self.userAttributes = userAttributes + public init(requestID: String? = nil, message: String? = nil) { + self.requestID = requestID + self.message = message } private enum CodingKeys: String, CodingKey { - case userId = "UserId" - case userAttributes = "UserAttributes" + case requestID = "RequestID" + case message = "Message" } } - public struct CampaignEmailMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Body", required: false, type: .string), - AWSShapeMember(label: "Title", required: false, type: .string), - AWSShapeMember(label: "HtmlBody", required: false, type: .string) + public struct GetGcmChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "GCMChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GCMChannelResponse", required: true, type: .structure) ] - /// The email text body. - public let body: String? - /// The email title (Or subject). - public let title: String? - /// The email html body. - public let htmlBody: String? + public let gCMChannelResponse: GCMChannelResponse - public init(body: String? = nil, title: String? = nil, htmlBody: String? = nil) { - self.body = body - self.title = title - self.htmlBody = htmlBody + public init(gCMChannelResponse: GCMChannelResponse) { + self.gCMChannelResponse = gCMChannelResponse } private enum CodingKeys: String, CodingKey { - case body = "Body" - case title = "Title" - case htmlBody = "HtmlBody" + case gCMChannelResponse = "GCMChannelResponse" } } - public struct SegmentDimensions: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Demographic", required: false, type: .structure), - AWSShapeMember(label: "Behavior", required: false, type: .structure), - AWSShapeMember(label: "Attributes", required: false, type: .map), - AWSShapeMember(label: "Location", required: false, type: .structure), - AWSShapeMember(label: "UserAttributes", required: false, type: .map) + public struct GetSegmentVersionsResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "SegmentsResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SegmentsResponse", required: true, type: .structure) ] - /// The segment demographics attributes. - public let demographic: SegmentDemographics? - /// The segment behaviors attributes. - public let behavior: SegmentBehaviors? - /// Custom segment attributes. - public let attributes: [String: AttributeDimension]? - /// The segment location attributes. - public let location: SegmentLocation? - /// Custom segment user attributes. - public let userAttributes: [String: AttributeDimension]? + public let segmentsResponse: SegmentsResponse - public init(demographic: SegmentDemographics? = nil, behavior: SegmentBehaviors? = nil, attributes: [String: AttributeDimension]? = nil, location: SegmentLocation? = nil, userAttributes: [String: AttributeDimension]? = nil) { - self.demographic = demographic - self.behavior = behavior - self.attributes = attributes - self.location = location - self.userAttributes = userAttributes - } - - private enum CodingKeys: String, CodingKey { - case demographic = "Demographic" - case behavior = "Behavior" - case attributes = "Attributes" - case location = "Location" - case userAttributes = "UserAttributes" - } - } - - public struct GetSegmentVersionsResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "SegmentsResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SegmentsResponse", required: true, type: .structure) - ] - public let segmentsResponse: SegmentsResponse - - public init(segmentsResponse: SegmentsResponse) { - self.segmentsResponse = segmentsResponse + public init(segmentsResponse: SegmentsResponse) { + self.segmentsResponse = segmentsResponse } private enum CodingKeys: String, CodingKey { @@ -2441,95 +1696,10 @@ extension Pinpoint { } } - public struct GetEventStreamRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) - ] - /// Application Id. - public let applicationId: String - - public init(applicationId: String) { - self.applicationId = applicationId - } - - private enum CodingKeys: String, CodingKey { - case applicationId = "application-id" - } - } - - public struct MessageBody: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RequestID", required: false, type: .string), - AWSShapeMember(label: "Message", required: false, type: .string) - ] - /// The unique message body ID. - public let requestID: String? - /// The error message returned from the API. - public let message: String? - - public init(requestID: String? = nil, message: String? = nil) { - self.requestID = requestID - self.message = message - } - - private enum CodingKeys: String, CodingKey { - case requestID = "RequestID" - case message = "Message" - } - } - - public struct GetGcmChannelResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "GCMChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GCMChannelResponse", required: true, type: .structure) - ] - public let gCMChannelResponse: GCMChannelResponse - - public init(gCMChannelResponse: GCMChannelResponse) { - self.gCMChannelResponse = gCMChannelResponse - } - - private enum CodingKeys: String, CodingKey { - case gCMChannelResponse = "GCMChannelResponse" - } - } - - public struct ApplicationSettingsResource: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), - AWSShapeMember(label: "Limits", required: false, type: .structure), - AWSShapeMember(label: "QuietTime", required: false, type: .structure), - AWSShapeMember(label: "ApplicationId", required: false, type: .string) - ] - /// The date that the settings were last updated in ISO 8601 format. - public let lastModifiedDate: String? - /// The default campaign limits for the app. These limits apply to each campaign for the app, unless the campaign overrides the default with limits of its own. - public let limits: CampaignLimits? - /// The default quiet time for the app. Each campaign for this app sends no messages during this time unless the campaign overrides the default with a quiet time of its own. - public let quietTime: QuietTime? - /// The unique ID for the application. - public let applicationId: String? - - public init(lastModifiedDate: String? = nil, limits: CampaignLimits? = nil, quietTime: QuietTime? = nil, applicationId: String? = nil) { - self.lastModifiedDate = lastModifiedDate - self.limits = limits - self.quietTime = quietTime - self.applicationId = applicationId - } - - private enum CodingKeys: String, CodingKey { - case lastModifiedDate = "LastModifiedDate" - case limits = "Limits" - case quietTime = "QuietTime" - case applicationId = "ApplicationId" - } - } - public struct UpdateEndpointResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "MessageBody" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MessageBody", required: true, type: .structure) ] public let messageBody: MessageBody @@ -2543,25 +1713,8 @@ extension Pinpoint { } } - public struct GetCampaignActivitiesResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "ActivitiesResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ActivitiesResponse", required: true, type: .structure) - ] - public let activitiesResponse: ActivitiesResponse - - public init(activitiesResponse: ActivitiesResponse) { - self.activitiesResponse = activitiesResponse - } - - private enum CodingKeys: String, CodingKey { - case activitiesResponse = "ActivitiesResponse" - } - } - public struct GetCampaignVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), AWSShapeMember(label: "CampaignId", location: .uri(locationName: "campaign-id"), required: true, type: .string), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), @@ -2587,29 +1740,8 @@ extension Pinpoint { } } - public struct UpdateEndpointsBatchRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "EndpointBatchRequest" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EndpointBatchRequest", required: true, type: .structure), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) - ] - public let endpointBatchRequest: EndpointBatchRequest - public let applicationId: String - - public init(endpointBatchRequest: EndpointBatchRequest, applicationId: String) { - self.endpointBatchRequest = endpointBatchRequest - self.applicationId = applicationId - } - - private enum CodingKeys: String, CodingKey { - case endpointBatchRequest = "EndpointBatchRequest" - case applicationId = "application-id" - } - } - public struct AttributeDimension: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeType", required: false, type: .enum), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -2630,81 +1762,121 @@ extension Pinpoint { } } + public struct UpdateEndpointsBatchRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "EndpointBatchRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointBatchRequest", required: true, type: .structure), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let endpointBatchRequest: EndpointBatchRequest + public let applicationId: String + + public init(endpointBatchRequest: EndpointBatchRequest, applicationId: String) { + self.endpointBatchRequest = endpointBatchRequest + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case endpointBatchRequest = "EndpointBatchRequest" + case applicationId = "application-id" + } + } + public struct APNSChannelResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: false, type: .string), AWSShapeMember(label: "Platform", required: false, type: .string), - AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "DefaultAuthenticationMethod", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .integer), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), AWSShapeMember(label: "CreationDate", required: false, type: .string), AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "HasCredential", required: false, type: .boolean), AWSShapeMember(label: "IsArchived", required: false, type: .boolean), + AWSShapeMember(label: "HasTokenKey", required: false, type: .boolean), AWSShapeMember(label: "LastModifiedBy", required: false, type: .string) ] - /// Channel ID. Not used, only for backwards compatibility. + /// Channel ID. Not used. Present only for backwards compatibility. public let id: String? /// The platform type. Will be APNS. public let platform: String? - /// If the channel is enabled for sending messages. - public let enabled: Bool? + /// The default authentication method used for APNs. + public let defaultAuthenticationMethod: String? /// Version of channel public let version: Int32? + /// If the channel is enabled for sending messages. + public let enabled: Bool? /// Last date this was updated public let lastModifiedDate: String? /// When was this segment created public let creationDate: String? /// The ID of the application to which the channel applies. public let applicationId: String? + /// If the channel is registered with a credential for authentication. + public let hasCredential: Bool? /// Is this channel archived public let isArchived: Bool? + /// If the channel is registered with a token key for authentication. + public let hasTokenKey: Bool? /// Who last updated this entry public let lastModifiedBy: String? - public init(id: String? = nil, platform: String? = nil, enabled: Bool? = nil, version: Int32? = nil, lastModifiedDate: String? = nil, creationDate: String? = nil, applicationId: String? = nil, isArchived: Bool? = nil, lastModifiedBy: String? = nil) { + public init(id: String? = nil, platform: String? = nil, defaultAuthenticationMethod: String? = nil, version: Int32? = nil, enabled: Bool? = nil, lastModifiedDate: String? = nil, creationDate: String? = nil, applicationId: String? = nil, hasCredential: Bool? = nil, isArchived: Bool? = nil, hasTokenKey: Bool? = nil, lastModifiedBy: String? = nil) { self.id = id self.platform = platform - self.enabled = enabled + self.defaultAuthenticationMethod = defaultAuthenticationMethod self.version = version + self.enabled = enabled self.lastModifiedDate = lastModifiedDate self.creationDate = creationDate self.applicationId = applicationId + self.hasCredential = hasCredential self.isArchived = isArchived + self.hasTokenKey = hasTokenKey self.lastModifiedBy = lastModifiedBy } private enum CodingKeys: String, CodingKey { case id = "Id" case platform = "Platform" - case enabled = "Enabled" + case defaultAuthenticationMethod = "DefaultAuthenticationMethod" case version = "Version" + case enabled = "Enabled" case lastModifiedDate = "LastModifiedDate" case creationDate = "CreationDate" case applicationId = "ApplicationId" + case hasCredential = "HasCredential" case isArchived = "IsArchived" + case hasTokenKey = "HasTokenKey" case lastModifiedBy = "LastModifiedBy" } } - public struct UpdateApnsSandboxChannelResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "APNSSandboxChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "APNSSandboxChannelResponse", required: true, type: .structure) + public struct SegmentsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Item", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) ] - public let aPNSSandboxChannelResponse: APNSSandboxChannelResponse + /// The list of segments. + public let item: [SegmentResponse]? + /// An identifier used to retrieve the next page of results. The token is null if no additional pages exist. + public let nextToken: String? - public init(aPNSSandboxChannelResponse: APNSSandboxChannelResponse) { - self.aPNSSandboxChannelResponse = aPNSSandboxChannelResponse + public init(item: [SegmentResponse]? = nil, nextToken: String? = nil) { + self.item = item + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case aPNSSandboxChannelResponse = "APNSSandboxChannelResponse" + case item = "Item" + case nextToken = "NextToken" } } public struct DeleteEventStreamRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] /// Application Id. @@ -2719,166 +1891,44 @@ extension Pinpoint { } } - public struct SegmentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Item", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) + public struct CreateAppRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "CreateApplicationRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CreateApplicationRequest", required: true, type: .structure) ] - /// The list of segments. - public let item: [SegmentResponse]? - /// An identifier used to retrieve the next page of results. The token is null if no additional pages exist. - public let nextToken: String? + public let createApplicationRequest: CreateApplicationRequest - public init(item: [SegmentResponse]? = nil, nextToken: String? = nil) { - self.item = item - self.nextToken = nextToken + public init(createApplicationRequest: CreateApplicationRequest) { + self.createApplicationRequest = createApplicationRequest } private enum CodingKeys: String, CodingKey { - case item = "Item" - case nextToken = "NextToken" + case createApplicationRequest = "CreateApplicationRequest" } } - public struct SegmentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Id", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "Version", required: false, type: .integer), - AWSShapeMember(label: "Dimensions", required: false, type: .structure), - AWSShapeMember(label: "CreationDate", required: false, type: .string), - AWSShapeMember(label: "ApplicationId", required: false, type: .string), - AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), - AWSShapeMember(label: "ImportDefinition", required: false, type: .structure), - AWSShapeMember(label: "SegmentType", required: false, type: .enum) + public struct GetEventStreamResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "EventStream" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventStream", required: true, type: .structure) ] - /// The unique segment ID. - public let id: String? - /// The name of segment - public let name: String? - /// The segment version number. - public let version: Int32? - /// The segment dimensions attributes. - public let dimensions: SegmentDimensions? - /// The date the segment was created in ISO 8601 format. - public let creationDate: String? - /// The ID of the application to which the segment applies. - public let applicationId: String? - /// The date the segment was last updated in ISO 8601 format. - public let lastModifiedDate: String? - /// The import job settings. - public let importDefinition: SegmentImportResource? - /// The segment type: - /// DIMENSIONAL - A dynamic segment built from selection criteria based on endpoint data reported by your app. You create this type of segment by using the segment builder in the Amazon Pinpoint console or by making a POST request to the segments resource. - /// IMPORT - A static segment built from an imported set of endpoint definitions. You create this type of segment by importing a segment in the Amazon Pinpoint console or by making a POST request to the jobs/import resource. - public let segmentType: SegmentType? + public let eventStream: EventStream - public init(id: String? = nil, name: String? = nil, version: Int32? = nil, dimensions: SegmentDimensions? = nil, creationDate: String? = nil, applicationId: String? = nil, lastModifiedDate: String? = nil, importDefinition: SegmentImportResource? = nil, segmentType: SegmentType? = nil) { - self.id = id - self.name = name - self.version = version - self.dimensions = dimensions - self.creationDate = creationDate - self.applicationId = applicationId - self.lastModifiedDate = lastModifiedDate - self.importDefinition = importDefinition - self.segmentType = segmentType + public init(eventStream: EventStream) { + self.eventStream = eventStream } private enum CodingKeys: String, CodingKey { - case id = "Id" - case name = "Name" - case version = "Version" - case dimensions = "Dimensions" - case creationDate = "CreationDate" - case applicationId = "ApplicationId" - case lastModifiedDate = "LastModifiedDate" - case importDefinition = "ImportDefinition" - case segmentType = "SegmentType" - } - } - - public struct ImportJobResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CompletionDate", required: false, type: .string), - AWSShapeMember(label: "Definition", required: false, type: .structure), - AWSShapeMember(label: "FailedPieces", required: false, type: .integer), - AWSShapeMember(label: "TotalPieces", required: false, type: .integer), - AWSShapeMember(label: "CreationDate", required: false, type: .string), - AWSShapeMember(label: "JobStatus", required: false, type: .enum), - AWSShapeMember(label: "Id", required: false, type: .string), - AWSShapeMember(label: "TotalProcessed", required: false, type: .integer), - AWSShapeMember(label: "CompletedPieces", required: false, type: .integer), - AWSShapeMember(label: "TotalFailures", required: false, type: .integer), - AWSShapeMember(label: "Failures", required: false, type: .list), - AWSShapeMember(label: "ApplicationId", required: false, type: .string), - AWSShapeMember(label: "Type", required: false, type: .string) - ] - /// The date the import job completed in ISO 8601 format. - public let completionDate: String? - /// The import job settings. - public let definition: ImportJobResource? - /// The number of pieces that have failed to import as of the time of the request. - public let failedPieces: Int32? - /// The total number of pieces that must be imported to finish the job. Each piece is an approximately equal portion of the endpoints to import. - public let totalPieces: Int32? - /// The date the import job was created in ISO 8601 format. - public let creationDate: String? - /// The status of the import job. - /// Valid values: CREATED, INITIALIZING, PROCESSING, COMPLETING, COMPLETED, FAILING, FAILED - /// The job status is FAILED if one or more pieces failed to import. - public let jobStatus: JobStatus? - /// The unique ID of the import job. - public let id: String? - /// The number of endpoints that were processed by the import job. - public let totalProcessed: Int32? - /// The number of pieces that have successfully imported as of the time of the request. - public let completedPieces: Int32? - /// The number of endpoints that failed to import; for example, because of syntax errors. - public let totalFailures: Int32? - public let failures: [String]? - /// The unique ID of the application to which the import job applies. - public let applicationId: String? - /// The job type. Will be Import. - public let `type`: String? - - public init(completionDate: String? = nil, definition: ImportJobResource? = nil, failedPieces: Int32? = nil, totalPieces: Int32? = nil, creationDate: String? = nil, jobStatus: JobStatus? = nil, id: String? = nil, totalProcessed: Int32? = nil, completedPieces: Int32? = nil, totalFailures: Int32? = nil, failures: [String]? = nil, applicationId: String? = nil, type: String? = nil) { - self.completionDate = completionDate - self.definition = definition - self.failedPieces = failedPieces - self.totalPieces = totalPieces - self.creationDate = creationDate - self.jobStatus = jobStatus - self.id = id - self.totalProcessed = totalProcessed - self.completedPieces = completedPieces - self.totalFailures = totalFailures - self.failures = failures - self.applicationId = applicationId - self.`type` = `type` - } - - private enum CodingKeys: String, CodingKey { - case completionDate = "CompletionDate" - case definition = "Definition" - case failedPieces = "FailedPieces" - case totalPieces = "TotalPieces" - case creationDate = "CreationDate" - case jobStatus = "JobStatus" - case id = "Id" - case totalProcessed = "TotalProcessed" - case completedPieces = "CompletedPieces" - case totalFailures = "TotalFailures" - case failures = "Failures" - case applicationId = "ApplicationId" - case `type` = "Type" + case eventStream = "EventStream" } } public struct CreateImportJobResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "ImportJobResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImportJobResponse", required: true, type: .structure) ] public let importJobResponse: ImportJobResponse @@ -2892,44 +1942,31 @@ extension Pinpoint { } } - public struct GetEventStreamResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "EventStream" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventStream", required: true, type: .structure) - ] - public let eventStream: EventStream - - public init(eventStream: EventStream) { - self.eventStream = eventStream - } - - private enum CodingKeys: String, CodingKey { - case eventStream = "EventStream" - } - } - - public struct GetApplicationSettingsResponse: AWSShape { + public struct UpdateSmsChannelRequest: AWSShape { /// The key for the payload - public static let payloadPath: String? = "ApplicationSettingsResource" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationSettingsResource", required: true, type: .structure) + public static let payloadPath: String? = "SMSChannelRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SMSChannelRequest", required: true, type: .structure), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - public let applicationSettingsResource: ApplicationSettingsResource + public let sMSChannelRequest: SMSChannelRequest + public let applicationId: String - public init(applicationSettingsResource: ApplicationSettingsResource) { - self.applicationSettingsResource = applicationSettingsResource + public init(sMSChannelRequest: SMSChannelRequest, applicationId: String) { + self.sMSChannelRequest = sMSChannelRequest + self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case applicationSettingsResource = "ApplicationSettingsResource" + case sMSChannelRequest = "SMSChannelRequest" + case applicationId = "application-id" } } public struct GetImportJobsResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "ImportJobsResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ImportJobsResponse", required: true, type: .structure) ] public let importJobsResponse: ImportJobsResponse @@ -2946,7 +1983,7 @@ extension Pinpoint { public struct GetCampaignResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "CampaignResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CampaignResponse", required: true, type: .structure) ] public let campaignResponse: CampaignResponse @@ -2960,31 +1997,10 @@ extension Pinpoint { } } - public struct UpdateSmsChannelRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "SMSChannelRequest" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SMSChannelRequest", required: true, type: .structure), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) - ] - public let sMSChannelRequest: SMSChannelRequest - public let applicationId: String - - public init(sMSChannelRequest: SMSChannelRequest, applicationId: String) { - self.sMSChannelRequest = sMSChannelRequest - self.applicationId = applicationId - } - - private enum CodingKeys: String, CodingKey { - case sMSChannelRequest = "SMSChannelRequest" - case applicationId = "application-id" - } - } - public struct UpdateSegmentRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "WriteSegmentRequest" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string), AWSShapeMember(label: "WriteSegmentRequest", required: true, type: .structure) @@ -3007,7 +2023,7 @@ extension Pinpoint { } public struct DeleteGcmChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] public let applicationId: String @@ -3021,89 +2037,104 @@ extension Pinpoint { } } + public struct WriteEventStream: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "DestinationStreamArn", required: false, type: .string) + ] + /// The IAM role that authorizes Amazon Pinpoint to publish events to the stream in your account. + public let roleArn: String? + /// The Amazon Resource Name (ARN) of the Amazon Kinesis stream or Firehose delivery stream to which you want to publish events. + /// Firehose ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream/STREAM_NAME + /// Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME + public let destinationStreamArn: String? + + public init(roleArn: String? = nil, destinationStreamArn: String? = nil) { + self.roleArn = roleArn + self.destinationStreamArn = destinationStreamArn + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "RoleArn" + case destinationStreamArn = "DestinationStreamArn" + } + } + public struct APNSSandboxChannelResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: false, type: .string), AWSShapeMember(label: "Platform", required: false, type: .string), - AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "DefaultAuthenticationMethod", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .integer), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), AWSShapeMember(label: "CreationDate", required: false, type: .string), AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "HasCredential", required: false, type: .boolean), AWSShapeMember(label: "IsArchived", required: false, type: .boolean), + AWSShapeMember(label: "HasTokenKey", required: false, type: .boolean), AWSShapeMember(label: "LastModifiedBy", required: false, type: .string) ] /// Channel ID. Not used, only for backwards compatibility. public let id: String? - /// The platform type. Will be APNS. + /// The platform type. Will be APNS_SANDBOX. public let platform: String? - /// If the channel is enabled for sending messages. - public let enabled: Bool? + /// The default authentication method used for APNs. + public let defaultAuthenticationMethod: String? /// Version of channel public let version: Int32? + /// If the channel is enabled for sending messages. + public let enabled: Bool? /// Last date this was updated public let lastModifiedDate: String? /// When was this segment created public let creationDate: String? /// Application id public let applicationId: String? + /// If the channel is registered with a credential for authentication. + public let hasCredential: Bool? /// Is this channel archived public let isArchived: Bool? + /// If the channel is registered with a token key for authentication. + public let hasTokenKey: Bool? /// Who last updated this entry public let lastModifiedBy: String? - public init(id: String? = nil, platform: String? = nil, enabled: Bool? = nil, version: Int32? = nil, lastModifiedDate: String? = nil, creationDate: String? = nil, applicationId: String? = nil, isArchived: Bool? = nil, lastModifiedBy: String? = nil) { + public init(id: String? = nil, platform: String? = nil, defaultAuthenticationMethod: String? = nil, version: Int32? = nil, enabled: Bool? = nil, lastModifiedDate: String? = nil, creationDate: String? = nil, applicationId: String? = nil, hasCredential: Bool? = nil, isArchived: Bool? = nil, hasTokenKey: Bool? = nil, lastModifiedBy: String? = nil) { self.id = id self.platform = platform - self.enabled = enabled + self.defaultAuthenticationMethod = defaultAuthenticationMethod self.version = version + self.enabled = enabled self.lastModifiedDate = lastModifiedDate self.creationDate = creationDate self.applicationId = applicationId + self.hasCredential = hasCredential self.isArchived = isArchived + self.hasTokenKey = hasTokenKey self.lastModifiedBy = lastModifiedBy } private enum CodingKeys: String, CodingKey { case id = "Id" case platform = "Platform" - case enabled = "Enabled" + case defaultAuthenticationMethod = "DefaultAuthenticationMethod" case version = "Version" + case enabled = "Enabled" case lastModifiedDate = "LastModifiedDate" case creationDate = "CreationDate" case applicationId = "ApplicationId" + case hasCredential = "HasCredential" case isArchived = "IsArchived" + case hasTokenKey = "HasTokenKey" case lastModifiedBy = "LastModifiedBy" } } - public struct WriteEventStream: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "DestinationStreamArn", required: false, type: .string) - ] - /// The IAM role that authorizes Amazon Pinpoint to publish events to the stream in your account. - public let roleArn: String? - /// The Amazon Resource Name (ARN) of the Amazon Kinesis stream or Firehose delivery stream to which you want to publish events. - /// Firehose ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream/STREAM_NAME - /// Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME - public let destinationStreamArn: String? - - public init(roleArn: String? = nil, destinationStreamArn: String? = nil) { - self.roleArn = roleArn - self.destinationStreamArn = destinationStreamArn - } - - private enum CodingKeys: String, CodingKey { - case roleArn = "RoleArn" - case destinationStreamArn = "DestinationStreamArn" - } - } - public struct UpdateApnsChannelResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "APNSChannelResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "APNSChannelResponse", required: true, type: .structure) ] public let aPNSChannelResponse: APNSChannelResponse @@ -3117,111 +2148,2434 @@ extension Pinpoint { } } - public struct UpdateGcmChannelRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "GCMChannelRequest" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "GCMChannelRequest", required: true, type: .structure), + public struct DeleteBaiduChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - public let gCMChannelRequest: GCMChannelRequest public let applicationId: String - public init(gCMChannelRequest: GCMChannelRequest, applicationId: String) { - self.gCMChannelRequest = gCMChannelRequest + public init(applicationId: String) { self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case gCMChannelRequest = "GCMChannelRequest" case applicationId = "application-id" } } - public struct DeleteCampaignResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "CampaignResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CampaignResponse", required: true, type: .structure) + public struct GetApnsSandboxChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - public let campaignResponse: CampaignResponse + public let applicationId: String - public init(campaignResponse: CampaignResponse) { - self.campaignResponse = campaignResponse + public init(applicationId: String) { + self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case campaignResponse = "CampaignResponse" + case applicationId = "application-id" } } - public struct CampaignLimits: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Daily", required: false, type: .integer), - AWSShapeMember(label: "Total", required: false, type: .integer) + public struct UpdateApnsVoipSandboxChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSVoipSandboxChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSVoipSandboxChannelResponse", required: true, type: .structure) ] - /// The maximum number of messages that the campaign can send daily. - public let daily: Int32? - /// The maximum total number of messages that the campaign can send. - public let total: Int32? + public let aPNSVoipSandboxChannelResponse: APNSVoipSandboxChannelResponse - public init(daily: Int32? = nil, total: Int32? = nil) { - self.daily = daily - self.total = total + public init(aPNSVoipSandboxChannelResponse: APNSVoipSandboxChannelResponse) { + self.aPNSVoipSandboxChannelResponse = aPNSVoipSandboxChannelResponse } private enum CodingKeys: String, CodingKey { - case daily = "Daily" - case total = "Total" + case aPNSVoipSandboxChannelResponse = "APNSVoipSandboxChannelResponse" } } - public struct SegmentDemographics: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Make", required: false, type: .structure), - AWSShapeMember(label: "Platform", required: false, type: .structure), - AWSShapeMember(label: "DeviceType", required: false, type: .structure), - AWSShapeMember(label: "AppVersion", required: false, type: .structure), - AWSShapeMember(label: "Channel", required: false, type: .structure), - AWSShapeMember(label: "Model", required: false, type: .structure) + public struct UpdateBaiduChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "BaiduChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BaiduChannelResponse", required: true, type: .structure) ] - /// The device make criteria for the segment. - public let make: SetDimension? - /// The device platform criteria for the segment. - public let platform: SetDimension? - /// The device type criteria for the segment. - public let deviceType: SetDimension? - /// The app version criteria for the segment. - public let appVersion: SetDimension? - /// The channel criteria for the segment. - public let channel: SetDimension? - /// The device model criteria for the segment. - public let model: SetDimension? + public let baiduChannelResponse: BaiduChannelResponse - public init(make: SetDimension? = nil, platform: SetDimension? = nil, deviceType: SetDimension? = nil, appVersion: SetDimension? = nil, channel: SetDimension? = nil, model: SetDimension? = nil) { - self.make = make - self.platform = platform - self.deviceType = deviceType - self.appVersion = appVersion - self.channel = channel - self.model = model + public init(baiduChannelResponse: BaiduChannelResponse) { + self.baiduChannelResponse = baiduChannelResponse } private enum CodingKeys: String, CodingKey { - case make = "Make" - case platform = "Platform" - case deviceType = "DeviceType" - case appVersion = "AppVersion" - case channel = "Channel" - case model = "Model" + case baiduChannelResponse = "BaiduChannelResponse" } } - public struct GetApnsSandboxChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) - ] - public let applicationId: String + public struct ActivityResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CampaignId", required: false, type: .string), + AWSShapeMember(label: "State", required: false, type: .string), + AWSShapeMember(label: "TimezonesTotalCount", required: false, type: .integer), + AWSShapeMember(label: "TotalEndpointCount", required: false, type: .integer), + AWSShapeMember(label: "TimezonesCompletedCount", required: false, type: .integer), + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "ScheduledStart", required: false, type: .string), + AWSShapeMember(label: "Start", required: false, type: .string), + AWSShapeMember(label: "End", required: false, type: .string), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "TreatmentId", required: false, type: .string), + AWSShapeMember(label: "Result", required: false, type: .string), + AWSShapeMember(label: "SuccessfulEndpointCount", required: false, type: .integer) + ] + /// The ID of the campaign to which the activity applies. + public let campaignId: String? + /// The state of the activity. + /// Valid values: PENDING, INITIALIZING, RUNNING, PAUSED, CANCELLED, COMPLETED + public let state: String? + /// The total number of unique timezones present in the segment. + public let timezonesTotalCount: Int32? + /// The total number of endpoints to which the campaign attempts to deliver messages. + public let totalEndpointCount: Int32? + /// The total number of timezones completed. + public let timezonesCompletedCount: Int32? + /// The unique activity ID. + public let id: String? + /// The scheduled start time for the activity in ISO 8601 format. + public let scheduledStart: String? + /// The actual start time of the activity in ISO 8601 format. + public let start: String? + /// The actual time the activity was marked CANCELLED or COMPLETED. Provided in ISO 8601 format. + public let end: String? + /// The ID of the application to which the campaign applies. + public let applicationId: String? + /// The ID of a variation of the campaign used for A/B testing. + public let treatmentId: String? + /// Indicates whether the activity succeeded. + /// Valid values: SUCCESS, FAIL + public let result: String? + /// The total number of endpoints to which the campaign successfully delivered messages. + public let successfulEndpointCount: Int32? + + public init(campaignId: String? = nil, state: String? = nil, timezonesTotalCount: Int32? = nil, totalEndpointCount: Int32? = nil, timezonesCompletedCount: Int32? = nil, id: String? = nil, scheduledStart: String? = nil, start: String? = nil, end: String? = nil, applicationId: String? = nil, treatmentId: String? = nil, result: String? = nil, successfulEndpointCount: Int32? = nil) { + self.campaignId = campaignId + self.state = state + self.timezonesTotalCount = timezonesTotalCount + self.totalEndpointCount = totalEndpointCount + self.timezonesCompletedCount = timezonesCompletedCount + self.id = id + self.scheduledStart = scheduledStart + self.start = start + self.end = end + self.applicationId = applicationId + self.treatmentId = treatmentId + self.result = result + self.successfulEndpointCount = successfulEndpointCount + } + + private enum CodingKeys: String, CodingKey { + case campaignId = "CampaignId" + case state = "State" + case timezonesTotalCount = "TimezonesTotalCount" + case totalEndpointCount = "TotalEndpointCount" + case timezonesCompletedCount = "TimezonesCompletedCount" + case id = "Id" + case scheduledStart = "ScheduledStart" + case start = "Start" + case end = "End" + case applicationId = "ApplicationId" + case treatmentId = "TreatmentId" + case result = "Result" + case successfulEndpointCount = "SuccessfulEndpointCount" + } + } + + public struct GetSegmentResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "SegmentResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SegmentResponse", required: true, type: .structure) + ] + public let segmentResponse: SegmentResponse + + public init(segmentResponse: SegmentResponse) { + self.segmentResponse = segmentResponse + } + + private enum CodingKeys: String, CodingKey { + case segmentResponse = "SegmentResponse" + } + } + + public struct GetSegmentImportJobsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), + AWSShapeMember(label: "Token", location: .querystring(locationName: "token"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), + AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string) + ] + public let pageSize: String? + public let token: String? + public let applicationId: String + public let segmentId: String + + public init(pageSize: String? = nil, token: String? = nil, applicationId: String, segmentId: String) { + self.pageSize = pageSize + self.token = token + self.applicationId = applicationId + self.segmentId = segmentId + } + + private enum CodingKeys: String, CodingKey { + case pageSize = "page-size" + case token = "token" + case applicationId = "application-id" + case segmentId = "segment-id" + } + } + + public struct CreateCampaignResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "CampaignResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CampaignResponse", required: true, type: .structure) + ] + public let campaignResponse: CampaignResponse + + public init(campaignResponse: CampaignResponse) { + self.campaignResponse = campaignResponse + } + + private enum CodingKeys: String, CodingKey { + case campaignResponse = "CampaignResponse" + } + } + + public struct PutEventStreamRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "WriteEventStream" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), + AWSShapeMember(label: "WriteEventStream", required: true, type: .structure) + ] + /// Application Id. + public let applicationId: String + /// Write event stream wrapper. + public let writeEventStream: WriteEventStream + + public init(applicationId: String, writeEventStream: WriteEventStream) { + self.applicationId = applicationId + self.writeEventStream = writeEventStream + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + case writeEventStream = "WriteEventStream" + } + } + + public struct GetCampaignVersionsResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "CampaignsResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CampaignsResponse", required: true, type: .structure) + ] + public let campaignsResponse: CampaignsResponse + + public init(campaignsResponse: CampaignsResponse) { + self.campaignsResponse = campaignsResponse + } + + private enum CodingKeys: String, CodingKey { + case campaignsResponse = "CampaignsResponse" + } + } + + public struct DeleteAppResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ApplicationResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationResponse", required: true, type: .structure) + ] + public let applicationResponse: ApplicationResponse + + public init(applicationResponse: ApplicationResponse) { + self.applicationResponse = applicationResponse + } + + private enum CodingKeys: String, CodingKey { + case applicationResponse = "ApplicationResponse" + } + } + + public struct GetAdmChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ADMChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ADMChannelResponse", required: true, type: .structure) + ] + public let aDMChannelResponse: ADMChannelResponse + + public init(aDMChannelResponse: ADMChannelResponse) { + self.aDMChannelResponse = aDMChannelResponse + } + + private enum CodingKeys: String, CodingKey { + case aDMChannelResponse = "ADMChannelResponse" + } + } + + public struct GetAppsResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ApplicationsResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationsResponse", required: true, type: .structure) + ] + public let applicationsResponse: ApplicationsResponse + + public init(applicationsResponse: ApplicationsResponse) { + self.applicationsResponse = applicationsResponse + } + + private enum CodingKeys: String, CodingKey { + case applicationsResponse = "ApplicationsResponse" + } + } + + public struct GetCampaignsResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "CampaignsResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CampaignsResponse", required: true, type: .structure) + ] + public let campaignsResponse: CampaignsResponse + + public init(campaignsResponse: CampaignsResponse) { + self.campaignsResponse = campaignsResponse + } + + private enum CodingKeys: String, CodingKey { + case campaignsResponse = "CampaignsResponse" + } + } + + public struct GetEndpointRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointId", location: .uri(locationName: "endpoint-id"), required: true, type: .string), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let endpointId: String + public let applicationId: String + + public init(endpointId: String, applicationId: String) { + self.endpointId = endpointId + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case endpointId = "endpoint-id" + case applicationId = "application-id" + } + } + + public struct GetCampaignVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), + AWSShapeMember(label: "CampaignId", location: .uri(locationName: "campaign-id"), required: true, type: .string), + AWSShapeMember(label: "Version", location: .uri(locationName: "version"), required: true, type: .string) + ] + public let applicationId: String + public let campaignId: String + public let version: String + + public init(applicationId: String, campaignId: String, version: String) { + self.applicationId = applicationId + self.campaignId = campaignId + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + case campaignId = "campaign-id" + case version = "version" + } + } + + public struct SendUsersMessageRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MessageConfiguration", required: false, type: .structure), + AWSShapeMember(label: "Context", required: false, type: .map), + AWSShapeMember(label: "Users", required: false, type: .map) + ] + /// Message configuration. + public let messageConfiguration: DirectMessageConfiguration? + public let context: [String: String]? + /// A map of destination endpoints, with the EndpointId as the key Endpoint Message Configuration as the value. + public let users: [String: EndpointSendConfiguration]? + + public init(messageConfiguration: DirectMessageConfiguration? = nil, context: [String: String]? = nil, users: [String: EndpointSendConfiguration]? = nil) { + self.messageConfiguration = messageConfiguration + self.context = context + self.users = users + } + + private enum CodingKeys: String, CodingKey { + case messageConfiguration = "MessageConfiguration" + case context = "Context" + case users = "Users" + } + } + + public struct UpdateCampaignResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "CampaignResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CampaignResponse", required: true, type: .structure) + ] + public let campaignResponse: CampaignResponse + + public init(campaignResponse: CampaignResponse) { + self.campaignResponse = campaignResponse + } + + private enum CodingKeys: String, CodingKey { + case campaignResponse = "CampaignResponse" + } + } + + public struct SegmentBehaviors: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Recency", required: false, type: .structure) + ] + /// The recency of use. + public let recency: RecencyDimension? + + public init(recency: RecencyDimension? = nil) { + self.recency = recency + } + + private enum CodingKeys: String, CodingKey { + case recency = "Recency" + } + } + + public struct UpdateSegmentResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "SegmentResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SegmentResponse", required: true, type: .structure) + ] + public let segmentResponse: SegmentResponse + + public init(segmentResponse: SegmentResponse) { + self.segmentResponse = segmentResponse + } + + private enum CodingKeys: String, CodingKey { + case segmentResponse = "SegmentResponse" + } + } + + public struct CampaignState: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CampaignStatus", required: false, type: .enum) + ] + /// The status of the campaign, or the status of a treatment that belongs to an A/B test campaign. + /// Valid values: SCHEDULED, EXECUTING, PENDING_NEXT_RUN, COMPLETED, PAUSED + public let campaignStatus: CampaignStatus? + + public init(campaignStatus: CampaignStatus? = nil) { + self.campaignStatus = campaignStatus + } + + private enum CodingKeys: String, CodingKey { + case campaignStatus = "CampaignStatus" + } + } + + public struct DeleteApnsChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSChannelResponse", required: true, type: .structure) + ] + public let aPNSChannelResponse: APNSChannelResponse + + public init(aPNSChannelResponse: APNSChannelResponse) { + self.aPNSChannelResponse = aPNSChannelResponse + } + + private enum CodingKeys: String, CodingKey { + case aPNSChannelResponse = "APNSChannelResponse" + } + } + + public struct DeleteSegmentRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let segmentId: String + public let applicationId: String + + public init(segmentId: String, applicationId: String) { + self.segmentId = segmentId + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case segmentId = "segment-id" + case applicationId = "application-id" + } + } + + public struct BaiduMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IconReference", required: false, type: .string), + AWSShapeMember(label: "Data", required: false, type: .map), + AWSShapeMember(label: "Title", required: false, type: .string), + AWSShapeMember(label: "ImageIconUrl", required: false, type: .string), + AWSShapeMember(label: "SilentPush", required: false, type: .boolean), + AWSShapeMember(label: "SmallImageIconUrl", required: false, type: .string), + AWSShapeMember(label: "Action", required: false, type: .enum), + AWSShapeMember(label: "Url", required: false, type: .string), + AWSShapeMember(label: "RawContent", required: false, type: .string), + AWSShapeMember(label: "Sound", required: false, type: .string), + AWSShapeMember(label: "ImageUrl", required: false, type: .string), + AWSShapeMember(label: "Body", required: false, type: .string), + AWSShapeMember(label: "Substitutions", required: false, type: .map) + ] + /// The icon image name of the asset saved in your application. + public let iconReference: String? + public let data: [String: String]? + /// The message title that displays above the message on the user's device. + public let title: String? + /// The URL that points to an image used as the large icon to the notification content view. + public let imageIconUrl: String? + /// Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases. + public let silentPush: Bool? + /// The URL that points to an image used as the small icon for the notification which will be used to represent the notification in the status bar and content view + public let smallImageIconUrl: String? + /// The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL + public let action: Action? + /// The URL to open in the user's mobile browser. Used if the value for Action is URL. + public let url: String? + /// The Raw JSON formatted string to be used as the payload. This value overrides the message. + public let rawContent: String? + /// Indicates a sound to play when the device receives the notification. Supports default, or the filename of a sound resource bundled in the app. Android sound files must reside in /res/raw/ + public let sound: String? + /// The URL that points to an image used in the push notification. + public let imageUrl: String? + /// The message body of the notification, the email body or the text message. + public let body: String? + public let substitutions: [String: [String]]? + + public init(iconReference: String? = nil, data: [String: String]? = nil, title: String? = nil, imageIconUrl: String? = nil, silentPush: Bool? = nil, smallImageIconUrl: String? = nil, action: Action? = nil, url: String? = nil, rawContent: String? = nil, sound: String? = nil, imageUrl: String? = nil, body: String? = nil, substitutions: [String: [String]]? = nil) { + self.iconReference = iconReference + self.data = data + self.title = title + self.imageIconUrl = imageIconUrl + self.silentPush = silentPush + self.smallImageIconUrl = smallImageIconUrl + self.action = action + self.url = url + self.rawContent = rawContent + self.sound = sound + self.imageUrl = imageUrl + self.body = body + self.substitutions = substitutions + } + + private enum CodingKeys: String, CodingKey { + case iconReference = "IconReference" + case data = "Data" + case title = "Title" + case imageIconUrl = "ImageIconUrl" + case silentPush = "SilentPush" + case smallImageIconUrl = "SmallImageIconUrl" + case action = "Action" + case url = "Url" + case rawContent = "RawContent" + case sound = "Sound" + case imageUrl = "ImageUrl" + case body = "Body" + case substitutions = "Substitutions" + } + } + + public struct GetImportJobsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), + AWSShapeMember(label: "Token", location: .querystring(locationName: "token"), required: false, type: .string) + ] + public let pageSize: String? + public let applicationId: String + public let token: String? + + public init(pageSize: String? = nil, applicationId: String, token: String? = nil) { + self.pageSize = pageSize + self.applicationId = applicationId + self.token = token + } + + private enum CodingKeys: String, CodingKey { + case pageSize = "page-size" + case applicationId = "application-id" + case token = "token" + } + } + + public struct EndpointDemographic: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Locale", required: false, type: .string), + AWSShapeMember(label: "Platform", required: false, type: .string), + AWSShapeMember(label: "Timezone", required: false, type: .string), + AWSShapeMember(label: "PlatformVersion", required: false, type: .string), + AWSShapeMember(label: "Make", required: false, type: .string), + AWSShapeMember(label: "AppVersion", required: false, type: .string), + AWSShapeMember(label: "Model", required: false, type: .string), + AWSShapeMember(label: "ModelVersion", required: false, type: .string) + ] + /// The endpoint locale in the following format: The ISO 639-1 alpha-2 code, followed by an underscore, followed by an ISO 3166-1 alpha-2 value. + public let locale: String? + /// The endpoint platform, such as ios or android. + public let platform: String? + /// The timezone of the endpoint. Specified as a tz database value, such as Americas/Los_Angeles. + public let timezone: String? + /// The endpoint platform version. + public let platformVersion: String? + /// The endpoint make, such as such as Apple or Samsung. + public let make: String? + /// The version of the application associated with the endpoint. + public let appVersion: String? + /// The endpoint model, such as iPhone. + public let model: String? + /// The endpoint model version. + public let modelVersion: String? + + public init(locale: String? = nil, platform: String? = nil, timezone: String? = nil, platformVersion: String? = nil, make: String? = nil, appVersion: String? = nil, model: String? = nil, modelVersion: String? = nil) { + self.locale = locale + self.platform = platform + self.timezone = timezone + self.platformVersion = platformVersion + self.make = make + self.appVersion = appVersion + self.model = model + self.modelVersion = modelVersion + } + + private enum CodingKeys: String, CodingKey { + case locale = "Locale" + case platform = "Platform" + case timezone = "Timezone" + case platformVersion = "PlatformVersion" + case make = "Make" + case appVersion = "AppVersion" + case model = "Model" + case modelVersion = "ModelVersion" + } + } + + public struct APNSVoipSandboxChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TeamId", required: false, type: .string), + AWSShapeMember(label: "DefaultAuthenticationMethod", required: false, type: .string), + AWSShapeMember(label: "TokenKeyId", required: false, type: .string), + AWSShapeMember(label: "TokenKey", required: false, type: .string), + AWSShapeMember(label: "Certificate", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "PrivateKey", required: false, type: .string), + AWSShapeMember(label: "BundleId", required: false, type: .string) + ] + /// The team id used for APNs Tokens. + public let teamId: String? + /// The default authentication method used for APNs. + public let defaultAuthenticationMethod: String? + /// The token key used for APNs Tokens. + public let tokenKeyId: String? + /// The token key used for APNs Tokens. + public let tokenKey: String? + /// The distribution certificate from Apple. + public let certificate: String? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + /// The certificate private key. + public let privateKey: String? + /// The bundle id used for APNs Tokens. + public let bundleId: String? + + public init(teamId: String? = nil, defaultAuthenticationMethod: String? = nil, tokenKeyId: String? = nil, tokenKey: String? = nil, certificate: String? = nil, enabled: Bool? = nil, privateKey: String? = nil, bundleId: String? = nil) { + self.teamId = teamId + self.defaultAuthenticationMethod = defaultAuthenticationMethod + self.tokenKeyId = tokenKeyId + self.tokenKey = tokenKey + self.certificate = certificate + self.enabled = enabled + self.privateKey = privateKey + self.bundleId = bundleId + } + + private enum CodingKeys: String, CodingKey { + case teamId = "TeamId" + case defaultAuthenticationMethod = "DefaultAuthenticationMethod" + case tokenKeyId = "TokenKeyId" + case tokenKey = "TokenKey" + case certificate = "Certificate" + case enabled = "Enabled" + case privateKey = "PrivateKey" + case bundleId = "BundleId" + } + } + + public struct CreateAppResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ApplicationResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationResponse", required: true, type: .structure) + ] + public let applicationResponse: ApplicationResponse + + public init(applicationResponse: ApplicationResponse) { + self.applicationResponse = applicationResponse + } + + private enum CodingKeys: String, CodingKey { + case applicationResponse = "ApplicationResponse" + } + } + + public struct GetAppResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ApplicationResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationResponse", required: true, type: .structure) + ] + public let applicationResponse: ApplicationResponse + + public init(applicationResponse: ApplicationResponse) { + self.applicationResponse = applicationResponse + } + + private enum CodingKeys: String, CodingKey { + case applicationResponse = "ApplicationResponse" + } + } + + public struct SendMessagesResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "MessageResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MessageResponse", required: true, type: .structure) + ] + public let messageResponse: MessageResponse + + public init(messageResponse: MessageResponse) { + self.messageResponse = messageResponse + } + + private enum CodingKeys: String, CodingKey { + case messageResponse = "MessageResponse" + } + } + + public struct UpdateEndpointsBatchResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "MessageBody" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MessageBody", required: true, type: .structure) + ] + public let messageBody: MessageBody + + public init(messageBody: MessageBody) { + self.messageBody = messageBody + } + + private enum CodingKeys: String, CodingKey { + case messageBody = "MessageBody" + } + } + + public struct DeleteApnsVoipChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSVoipChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSVoipChannelResponse", required: true, type: .structure) + ] + public let aPNSVoipChannelResponse: APNSVoipChannelResponse + + public init(aPNSVoipChannelResponse: APNSVoipChannelResponse) { + self.aPNSVoipChannelResponse = aPNSVoipChannelResponse + } + + private enum CodingKeys: String, CodingKey { + case aPNSVoipChannelResponse = "APNSVoipChannelResponse" + } + } + + public struct ADMChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientSecret", required: false, type: .string), + AWSShapeMember(label: "ClientId", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean) + ] + /// Client secret as gotten from Amazon + public let clientSecret: String? + /// Client ID as gotten from Amazon + public let clientId: String? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + + public init(clientSecret: String? = nil, clientId: String? = nil, enabled: Bool? = nil) { + self.clientSecret = clientSecret + self.clientId = clientId + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case clientSecret = "ClientSecret" + case clientId = "ClientId" + case enabled = "Enabled" + } + } + + public struct GetGcmChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let applicationId: String + + public init(applicationId: String) { + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + } + } + + public struct GCMChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApiKey", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean) + ] + /// Platform credential API key from Google. + public let apiKey: String? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + + public init(apiKey: String? = nil, enabled: Bool? = nil) { + self.apiKey = apiKey + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case apiKey = "ApiKey" + case enabled = "Enabled" + } + } + + public struct DeleteApnsChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let applicationId: String + + public init(applicationId: String) { + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + } + } + + public struct BaiduChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SecretKey", required: false, type: .string), + AWSShapeMember(label: "ApiKey", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean) + ] + /// Platform credential Secret key from Baidu. + public let secretKey: String? + /// Platform credential API key from Baidu. + public let apiKey: String? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + + public init(secretKey: String? = nil, apiKey: String? = nil, enabled: Bool? = nil) { + self.secretKey = secretKey + self.apiKey = apiKey + self.enabled = enabled + } + + private enum CodingKeys: String, CodingKey { + case secretKey = "SecretKey" + case apiKey = "ApiKey" + case enabled = "Enabled" + } + } + + public struct CreateSegmentRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "WriteSegmentRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), + AWSShapeMember(label: "WriteSegmentRequest", required: true, type: .structure) + ] + public let applicationId: String + public let writeSegmentRequest: WriteSegmentRequest + + public init(applicationId: String, writeSegmentRequest: WriteSegmentRequest) { + self.applicationId = applicationId + self.writeSegmentRequest = writeSegmentRequest + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + case writeSegmentRequest = "WriteSegmentRequest" + } + } + + public struct GetSegmentVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), + AWSShapeMember(label: "Token", location: .querystring(locationName: "token"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), + AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string) + ] + public let pageSize: String? + public let token: String? + public let applicationId: String + public let segmentId: String + + public init(pageSize: String? = nil, token: String? = nil, applicationId: String, segmentId: String) { + self.pageSize = pageSize + self.token = token + self.applicationId = applicationId + self.segmentId = segmentId + } + + private enum CodingKeys: String, CodingKey { + case pageSize = "page-size" + case token = "token" + case applicationId = "application-id" + case segmentId = "segment-id" + } + } + + public struct AddressConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TitleOverride", required: false, type: .string), + AWSShapeMember(label: "Context", required: false, type: .map), + AWSShapeMember(label: "BodyOverride", required: false, type: .string), + AWSShapeMember(label: "RawContent", required: false, type: .string), + AWSShapeMember(label: "ChannelType", required: false, type: .enum), + AWSShapeMember(label: "Substitutions", required: false, type: .map) + ] + /// Title override. If specified will override default title if applicable. + public let titleOverride: String? + public let context: [String: String]? + /// Body override. If specified will override default body. + public let bodyOverride: String? + /// The Raw JSON formatted string to be used as the payload. This value overrides the message. + public let rawContent: String? + /// The channel type. + /// Valid values: GCM | APNS | SMS | EMAIL + public let channelType: ChannelType? + public let substitutions: [String: [String]]? + + public init(titleOverride: String? = nil, context: [String: String]? = nil, bodyOverride: String? = nil, rawContent: String? = nil, channelType: ChannelType? = nil, substitutions: [String: [String]]? = nil) { + self.titleOverride = titleOverride + self.context = context + self.bodyOverride = bodyOverride + self.rawContent = rawContent + self.channelType = channelType + self.substitutions = substitutions + } + + private enum CodingKeys: String, CodingKey { + case titleOverride = "TitleOverride" + case context = "Context" + case bodyOverride = "BodyOverride" + case rawContent = "RawContent" + case channelType = "ChannelType" + case substitutions = "Substitutions" + } + } + + public struct Message: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ImageSmallIconUrl", required: false, type: .string), + AWSShapeMember(label: "Action", required: false, type: .enum), + AWSShapeMember(label: "Url", required: false, type: .string), + AWSShapeMember(label: "RawContent", required: false, type: .string), + AWSShapeMember(label: "MediaUrl", required: false, type: .string), + AWSShapeMember(label: "Title", required: false, type: .string), + AWSShapeMember(label: "ImageUrl", required: false, type: .string), + AWSShapeMember(label: "SilentPush", required: false, type: .boolean), + AWSShapeMember(label: "JsonBody", required: false, type: .string), + AWSShapeMember(label: "Body", required: false, type: .string), + AWSShapeMember(label: "ImageIconUrl", required: false, type: .string) + ] + /// The URL that points to the small icon image for the push notification icon, for example, the app icon. + public let imageSmallIconUrl: String? + /// The action that occurs if the user taps a push notification delivered by the campaign: + /// OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. + /// DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. + /// URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. + public let action: Action? + /// The URL to open in the user's mobile browser. Used if the value for Action is URL. + public let url: String? + /// The Raw JSON formatted string to be used as the payload. This value overrides the message. + public let rawContent: String? + /// The URL that points to the media resource, for example a .mp4 or .gif file. + public let mediaUrl: String? + /// The message title that displays above the message on the user's device. + public let title: String? + /// The URL that points to an image used in the push notification. + public let imageUrl: String? + /// Indicates if the message should display on the users device. + /// Silent pushes can be used for Remote Configuration and Phone Home use cases. + public let silentPush: Bool? + /// The JSON payload used for a silent push. + public let jsonBody: String? + /// The message body. Can include up to 140 characters. + public let body: String? + /// The URL that points to the icon image for the push notification icon, for example, the app icon. + public let imageIconUrl: String? + + public init(imageSmallIconUrl: String? = nil, action: Action? = nil, url: String? = nil, rawContent: String? = nil, mediaUrl: String? = nil, title: String? = nil, imageUrl: String? = nil, silentPush: Bool? = nil, jsonBody: String? = nil, body: String? = nil, imageIconUrl: String? = nil) { + self.imageSmallIconUrl = imageSmallIconUrl + self.action = action + self.url = url + self.rawContent = rawContent + self.mediaUrl = mediaUrl + self.title = title + self.imageUrl = imageUrl + self.silentPush = silentPush + self.jsonBody = jsonBody + self.body = body + self.imageIconUrl = imageIconUrl + } + + private enum CodingKeys: String, CodingKey { + case imageSmallIconUrl = "ImageSmallIconUrl" + case action = "Action" + case url = "Url" + case rawContent = "RawContent" + case mediaUrl = "MediaUrl" + case title = "Title" + case imageUrl = "ImageUrl" + case silentPush = "SilentPush" + case jsonBody = "JsonBody" + case body = "Body" + case imageIconUrl = "ImageIconUrl" + } + } + + public struct GetApnsVoipSandboxChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSVoipSandboxChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSVoipSandboxChannelResponse", required: true, type: .structure) + ] + public let aPNSVoipSandboxChannelResponse: APNSVoipSandboxChannelResponse + + public init(aPNSVoipSandboxChannelResponse: APNSVoipSandboxChannelResponse) { + self.aPNSVoipSandboxChannelResponse = aPNSVoipSandboxChannelResponse + } + + private enum CodingKeys: String, CodingKey { + case aPNSVoipSandboxChannelResponse = "APNSVoipSandboxChannelResponse" + } + } + + public struct SMSChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ShortCode", required: false, type: .string), + AWSShapeMember(label: "Platform", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "HasCredential", required: false, type: .boolean), + AWSShapeMember(label: "Version", required: false, type: .integer), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "SenderId", required: false, type: .string), + AWSShapeMember(label: "IsArchived", required: false, type: .boolean), + AWSShapeMember(label: "LastModifiedBy", required: false, type: .string) + ] + /// The short code registered with the phone provider. + public let shortCode: String? + /// Platform type. Will be "SMS" + public let platform: String? + /// Channel ID. Not used, only for backwards compatibility. + public let id: String? + /// If the channel is registered with a credential for authentication. + public let hasCredential: Bool? + /// Version of channel + public let version: Int32? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + /// Last date this was updated + public let lastModifiedDate: String? + /// The date that the settings were last updated in ISO 8601 format. + public let creationDate: String? + /// The unique ID of the application to which the SMS channel belongs. + public let applicationId: String? + /// Sender identifier of your messages. + public let senderId: String? + /// Is this channel archived + public let isArchived: Bool? + /// Who last updated this entry + public let lastModifiedBy: String? + + public init(shortCode: String? = nil, platform: String? = nil, id: String? = nil, hasCredential: Bool? = nil, version: Int32? = nil, enabled: Bool? = nil, lastModifiedDate: String? = nil, creationDate: String? = nil, applicationId: String? = nil, senderId: String? = nil, isArchived: Bool? = nil, lastModifiedBy: String? = nil) { + self.shortCode = shortCode + self.platform = platform + self.id = id + self.hasCredential = hasCredential + self.version = version + self.enabled = enabled + self.lastModifiedDate = lastModifiedDate + self.creationDate = creationDate + self.applicationId = applicationId + self.senderId = senderId + self.isArchived = isArchived + self.lastModifiedBy = lastModifiedBy + } + + private enum CodingKeys: String, CodingKey { + case shortCode = "ShortCode" + case platform = "Platform" + case id = "Id" + case hasCredential = "HasCredential" + case version = "Version" + case enabled = "Enabled" + case lastModifiedDate = "LastModifiedDate" + case creationDate = "CreationDate" + case applicationId = "ApplicationId" + case senderId = "SenderId" + case isArchived = "IsArchived" + case lastModifiedBy = "LastModifiedBy" + } + } + + public struct GetApplicationSettingsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let applicationId: String + + public init(applicationId: String) { + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + } + } + + public struct GetSegmentVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), + AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string), + AWSShapeMember(label: "Version", location: .uri(locationName: "version"), required: true, type: .string) + ] + public let applicationId: String + public let segmentId: String + public let version: String + + public init(applicationId: String, segmentId: String, version: String) { + self.applicationId = applicationId + self.segmentId = segmentId + self.version = version + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + case segmentId = "segment-id" + case version = "version" + } + } + + public struct SegmentLocation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Country", required: false, type: .structure) + ] + /// The country filter according to ISO 3166-1 Alpha-2 codes. + public let country: SetDimension? + + public init(country: SetDimension? = nil) { + self.country = country + } + + private enum CodingKeys: String, CodingKey { + case country = "Country" + } + } + + public struct UpdateApplicationSettingsRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "WriteApplicationSettingsRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WriteApplicationSettingsRequest", required: true, type: .structure), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let writeApplicationSettingsRequest: WriteApplicationSettingsRequest + public let applicationId: String + + public init(writeApplicationSettingsRequest: WriteApplicationSettingsRequest, applicationId: String) { + self.writeApplicationSettingsRequest = writeApplicationSettingsRequest + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case writeApplicationSettingsRequest = "WriteApplicationSettingsRequest" + case applicationId = "application-id" + } + } + + public struct TreatmentResource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TreatmentName", required: false, type: .string), + AWSShapeMember(label: "TreatmentDescription", required: false, type: .string), + AWSShapeMember(label: "SizePercent", required: false, type: .integer), + AWSShapeMember(label: "State", required: false, type: .structure), + AWSShapeMember(label: "Schedule", required: false, type: .structure), + AWSShapeMember(label: "MessageConfiguration", required: false, type: .structure), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// The custom name of a variation of the campaign used for A/B testing. + public let treatmentName: String? + /// A custom description for the treatment. + public let treatmentDescription: String? + /// The allocated percentage of users for this treatment. + public let sizePercent: Int32? + /// The treatment status. + public let state: CampaignState? + /// The campaign schedule. + public let schedule: Schedule? + /// The message configuration settings. + public let messageConfiguration: MessageConfiguration? + /// The unique treatment ID. + public let id: String? + + public init(treatmentName: String? = nil, treatmentDescription: String? = nil, sizePercent: Int32? = nil, state: CampaignState? = nil, schedule: Schedule? = nil, messageConfiguration: MessageConfiguration? = nil, id: String? = nil) { + self.treatmentName = treatmentName + self.treatmentDescription = treatmentDescription + self.sizePercent = sizePercent + self.state = state + self.schedule = schedule + self.messageConfiguration = messageConfiguration + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case treatmentName = "TreatmentName" + case treatmentDescription = "TreatmentDescription" + case sizePercent = "SizePercent" + case state = "State" + case schedule = "Schedule" + case messageConfiguration = "MessageConfiguration" + case id = "Id" + } + } + + public struct APNSVoipChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "Platform", required: false, type: .string), + AWSShapeMember(label: "DefaultAuthenticationMethod", required: false, type: .string), + AWSShapeMember(label: "Version", required: false, type: .integer), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "HasCredential", required: false, type: .boolean), + AWSShapeMember(label: "IsArchived", required: false, type: .boolean), + AWSShapeMember(label: "HasTokenKey", required: false, type: .boolean), + AWSShapeMember(label: "LastModifiedBy", required: false, type: .string) + ] + /// Channel ID. Not used, only for backwards compatibility. + public let id: String? + /// The platform type. Will be APNS. + public let platform: String? + /// The default authentication method used for APNs. + public let defaultAuthenticationMethod: String? + /// Version of channel + public let version: Int32? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + /// Last date this was updated + public let lastModifiedDate: String? + /// When was this segment created + public let creationDate: String? + /// Application id + public let applicationId: String? + /// If the channel is registered with a credential for authentication. + public let hasCredential: Bool? + /// Is this channel archived + public let isArchived: Bool? + /// If the channel is registered with a token key for authentication. + public let hasTokenKey: Bool? + /// Who made the last change + public let lastModifiedBy: String? + + public init(id: String? = nil, platform: String? = nil, defaultAuthenticationMethod: String? = nil, version: Int32? = nil, enabled: Bool? = nil, lastModifiedDate: String? = nil, creationDate: String? = nil, applicationId: String? = nil, hasCredential: Bool? = nil, isArchived: Bool? = nil, hasTokenKey: Bool? = nil, lastModifiedBy: String? = nil) { + self.id = id + self.platform = platform + self.defaultAuthenticationMethod = defaultAuthenticationMethod + self.version = version + self.enabled = enabled + self.lastModifiedDate = lastModifiedDate + self.creationDate = creationDate + self.applicationId = applicationId + self.hasCredential = hasCredential + self.isArchived = isArchived + self.hasTokenKey = hasTokenKey + self.lastModifiedBy = lastModifiedBy + } + + private enum CodingKeys: String, CodingKey { + case id = "Id" + case platform = "Platform" + case defaultAuthenticationMethod = "DefaultAuthenticationMethod" + case version = "Version" + case enabled = "Enabled" + case lastModifiedDate = "LastModifiedDate" + case creationDate = "CreationDate" + case applicationId = "ApplicationId" + case hasCredential = "HasCredential" + case isArchived = "IsArchived" + case hasTokenKey = "HasTokenKey" + case lastModifiedBy = "LastModifiedBy" + } + } + + public struct EventStream: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ExternalId", required: false, type: .string), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), + AWSShapeMember(label: "DestinationStreamArn", required: false, type: .string), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "LastUpdatedBy", required: false, type: .string) + ] + /// The external ID assigned the IAM role that authorizes Amazon Pinpoint to publish to the stream. + public let externalId: String? + /// The date the event stream was last updated in ISO 8601 format. + public let lastModifiedDate: String? + /// The Amazon Resource Name (ARN) of the Amazon Kinesis stream or Firehose delivery stream to which you want to publish events. + /// Firehose ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream/STREAM_NAME + /// Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME + public let destinationStreamArn: String? + /// The ID of the application from which events should be published. + public let applicationId: String? + /// The IAM role that authorizes Amazon Pinpoint to publish events to the stream in your account. + public let roleArn: String? + /// The IAM user who last modified the event stream. + public let lastUpdatedBy: String? + + public init(externalId: String? = nil, lastModifiedDate: String? = nil, destinationStreamArn: String? = nil, applicationId: String? = nil, roleArn: String? = nil, lastUpdatedBy: String? = nil) { + self.externalId = externalId + self.lastModifiedDate = lastModifiedDate + self.destinationStreamArn = destinationStreamArn + self.applicationId = applicationId + self.roleArn = roleArn + self.lastUpdatedBy = lastUpdatedBy + } + + private enum CodingKeys: String, CodingKey { + case externalId = "ExternalId" + case lastModifiedDate = "LastModifiedDate" + case destinationStreamArn = "DestinationStreamArn" + case applicationId = "ApplicationId" + case roleArn = "RoleArn" + case lastUpdatedBy = "LastUpdatedBy" + } + } + + public struct DeleteApnsSandboxChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let applicationId: String + + public init(applicationId: String) { + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + } + } + + public struct EndpointResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointStatus", required: false, type: .string), + AWSShapeMember(label: "Metrics", required: false, type: .map), + AWSShapeMember(label: "OptOut", required: false, type: .string), + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "CohortId", required: false, type: .string), + AWSShapeMember(label: "EffectiveDate", required: false, type: .string), + AWSShapeMember(label: "Location", required: false, type: .structure), + AWSShapeMember(label: "Address", required: false, type: .string), + AWSShapeMember(label: "Demographic", required: false, type: .structure), + AWSShapeMember(label: "Attributes", required: false, type: .map), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "RequestId", required: false, type: .string), + AWSShapeMember(label: "ChannelType", required: false, type: .enum), + AWSShapeMember(label: "User", required: false, type: .structure) + ] + /// The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated. + public let endpointStatus: String? + public let metrics: [String: Double]? + /// Indicates whether a user has opted out of receiving messages with one of the following values: + /// ALL - User has opted out of all messages. + /// NONE - Users has not opted out and receives all messages. + public let optOut: String? + /// The last time the endpoint was created. Provided in ISO 8601 format. + public let creationDate: String? + /// The unique ID that you assigned to the endpoint. The ID should be a globally unique identifier (GUID) to ensure that it is unique compared to all other endpoints for the application. + public let id: String? + /// A number from 0 - 99 that represents the cohort the endpoint is assigned to. Endpoints are grouped into cohorts randomly, and each cohort contains approximately 1 percent of the endpoints for an app. Amazon Pinpoint assigns cohorts to the holdout or treatment allocations for a campaign. + public let cohortId: String? + /// The last time the endpoint was updated. Provided in ISO 8601 format. + public let effectiveDate: String? + /// The endpoint location attributes. + public let location: EndpointLocation? + /// The address or token of the endpoint as provided by your push provider (e.g. DeviceToken or RegistrationId). + public let address: String? + /// The endpoint demographic attributes. + public let demographic: EndpointDemographic? + public let attributes: [String: [String]]? + /// The ID of the application associated with the endpoint. + public let applicationId: String? + /// The unique ID for the most recent request to update the endpoint. + public let requestId: String? + /// The channel type. + /// Valid values: GCM | APNS | SMS | EMAIL + public let channelType: ChannelType? + /// Custom user-specific attributes that your app reports to Amazon Pinpoint. + public let user: EndpointUser? + + public init(endpointStatus: String? = nil, metrics: [String: Double]? = nil, optOut: String? = nil, creationDate: String? = nil, id: String? = nil, cohortId: String? = nil, effectiveDate: String? = nil, location: EndpointLocation? = nil, address: String? = nil, demographic: EndpointDemographic? = nil, attributes: [String: [String]]? = nil, applicationId: String? = nil, requestId: String? = nil, channelType: ChannelType? = nil, user: EndpointUser? = nil) { + self.endpointStatus = endpointStatus + self.metrics = metrics + self.optOut = optOut + self.creationDate = creationDate + self.id = id + self.cohortId = cohortId + self.effectiveDate = effectiveDate + self.location = location + self.address = address + self.demographic = demographic + self.attributes = attributes + self.applicationId = applicationId + self.requestId = requestId + self.channelType = channelType + self.user = user + } + + private enum CodingKeys: String, CodingKey { + case endpointStatus = "EndpointStatus" + case metrics = "Metrics" + case optOut = "OptOut" + case creationDate = "CreationDate" + case id = "Id" + case cohortId = "CohortId" + case effectiveDate = "EffectiveDate" + case location = "Location" + case address = "Address" + case demographic = "Demographic" + case attributes = "Attributes" + case applicationId = "ApplicationId" + case requestId = "RequestId" + case channelType = "ChannelType" + case user = "User" + } + } + + public struct GetImportJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobId", location: .uri(locationName: "job-id"), required: true, type: .string), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let jobId: String + public let applicationId: String + + public init(jobId: String, applicationId: String) { + self.jobId = jobId + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case jobId = "job-id" + case applicationId = "application-id" + } + } + + public struct CampaignResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limits", required: false, type: .structure), + AWSShapeMember(label: "TreatmentName", required: false, type: .string), + AWSShapeMember(label: "SegmentVersion", required: false, type: .integer), + AWSShapeMember(label: "State", required: false, type: .structure), + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "Schedule", required: false, type: .structure), + AWSShapeMember(label: "MessageConfiguration", required: false, type: .structure), + AWSShapeMember(label: "SegmentId", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "TreatmentDescription", required: false, type: .string), + AWSShapeMember(label: "AdditionalTreatments", required: false, type: .list), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "HoldoutPercent", required: false, type: .integer), + AWSShapeMember(label: "Version", required: false, type: .integer), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "IsPaused", required: false, type: .boolean), + AWSShapeMember(label: "DefaultState", required: false, type: .structure) + ] + /// The campaign limits settings. + public let limits: CampaignLimits? + /// The custom name of a variation of the campaign used for A/B testing. + public let treatmentName: String? + /// The version of the segment to which the campaign sends messages. + public let segmentVersion: Int32? + /// The campaign status. + /// An A/B test campaign will have a status of COMPLETED only when all treatments have a status of COMPLETED. + public let state: CampaignState? + /// The date the campaign was created in ISO 8601 format. + public let creationDate: String? + /// The campaign schedule. + public let schedule: Schedule? + /// The message configuration settings. + public let messageConfiguration: MessageConfiguration? + /// The ID of the segment to which the campaign sends messages. + public let segmentId: String? + /// The unique campaign ID. + public let id: String? + /// A description of the campaign. + public let description: String? + /// A custom description for the treatment. + public let treatmentDescription: String? + /// Treatments that are defined in addition to the default treatment. + public let additionalTreatments: [TreatmentResource]? + /// The custom name of the campaign. + public let name: String? + /// The allocated percentage of end users who will not receive messages from this campaign. + public let holdoutPercent: Int32? + /// The campaign version number. + public let version: Int32? + /// The date the campaign was last updated in ISO 8601 format. + public let lastModifiedDate: String? + /// The ID of the application to which the campaign applies. + public let applicationId: String? + /// Indicates whether the campaign is paused. A paused campaign does not send messages unless you resume it by setting IsPaused to false. + public let isPaused: Bool? + /// The status of the campaign's default treatment. Only present for A/B test campaigns. + public let defaultState: CampaignState? + + public init(limits: CampaignLimits? = nil, treatmentName: String? = nil, segmentVersion: Int32? = nil, state: CampaignState? = nil, creationDate: String? = nil, schedule: Schedule? = nil, messageConfiguration: MessageConfiguration? = nil, segmentId: String? = nil, id: String? = nil, description: String? = nil, treatmentDescription: String? = nil, additionalTreatments: [TreatmentResource]? = nil, name: String? = nil, holdoutPercent: Int32? = nil, version: Int32? = nil, lastModifiedDate: String? = nil, applicationId: String? = nil, isPaused: Bool? = nil, defaultState: CampaignState? = nil) { + self.limits = limits + self.treatmentName = treatmentName + self.segmentVersion = segmentVersion + self.state = state + self.creationDate = creationDate + self.schedule = schedule + self.messageConfiguration = messageConfiguration + self.segmentId = segmentId + self.id = id + self.description = description + self.treatmentDescription = treatmentDescription + self.additionalTreatments = additionalTreatments + self.name = name + self.holdoutPercent = holdoutPercent + self.version = version + self.lastModifiedDate = lastModifiedDate + self.applicationId = applicationId + self.isPaused = isPaused + self.defaultState = defaultState + } + + private enum CodingKeys: String, CodingKey { + case limits = "Limits" + case treatmentName = "TreatmentName" + case segmentVersion = "SegmentVersion" + case state = "State" + case creationDate = "CreationDate" + case schedule = "Schedule" + case messageConfiguration = "MessageConfiguration" + case segmentId = "SegmentId" + case id = "Id" + case description = "Description" + case treatmentDescription = "TreatmentDescription" + case additionalTreatments = "AdditionalTreatments" + case name = "Name" + case holdoutPercent = "HoldoutPercent" + case version = "Version" + case lastModifiedDate = "LastModifiedDate" + case applicationId = "ApplicationId" + case isPaused = "IsPaused" + case defaultState = "DefaultState" + } + } + + public struct SendUsersMessagesResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "SendUsersMessageResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SendUsersMessageResponse", required: true, type: .structure) + ] + public let sendUsersMessageResponse: SendUsersMessageResponse + + public init(sendUsersMessageResponse: SendUsersMessageResponse) { + self.sendUsersMessageResponse = sendUsersMessageResponse + } + + private enum CodingKeys: String, CodingKey { + case sendUsersMessageResponse = "SendUsersMessageResponse" + } + } + + public struct APNSMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ThreadId", required: false, type: .string), + AWSShapeMember(label: "Data", required: false, type: .map), + AWSShapeMember(label: "Priority", required: false, type: .string), + AWSShapeMember(label: "MediaUrl", required: false, type: .string), + AWSShapeMember(label: "CollapseId", required: false, type: .string), + AWSShapeMember(label: "Title", required: false, type: .string), + AWSShapeMember(label: "SilentPush", required: false, type: .boolean), + AWSShapeMember(label: "Badge", required: false, type: .integer), + AWSShapeMember(label: "Action", required: false, type: .enum), + AWSShapeMember(label: "Url", required: false, type: .string), + AWSShapeMember(label: "PreferredAuthenticationMethod", required: false, type: .string), + AWSShapeMember(label: "RawContent", required: false, type: .string), + AWSShapeMember(label: "Category", required: false, type: .string), + AWSShapeMember(label: "Sound", required: false, type: .string), + AWSShapeMember(label: "TimeToLive", required: false, type: .integer), + AWSShapeMember(label: "Body", required: false, type: .string), + AWSShapeMember(label: "Substitutions", required: false, type: .map) + ] + /// Provide this key with a string value that represents the app-specific identifier for grouping notifications. If you provide a Notification Content app extension, you can use this value to group your notifications together. + public let threadId: String? + public let data: [String: String]? + /// Is this a transaction priority message or lower priority. + public let priority: String? + /// The URL that points to a video used in the push notification. + public let mediaUrl: String? + /// Multiple notifications with the same collapse identifier are displayed to the user as a single notification. The value of this key must not exceed 64 bytes. + public let collapseId: String? + /// The message title that displays above the message on the user's device. + public let title: String? + /// Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases. + public let silentPush: Bool? + /// Include this key when you want the system to modify the badge of your app icon. If this key is not included in the dictionary, the badge is not changed. To remove the badge, set the value of this key to 0. + public let badge: Int32? + /// The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL + public let action: Action? + /// The URL to open in the user's mobile browser. Used if the value for Action is URL. + public let url: String? + /// The preferred authentication method, either "CERTIFICATE" or "TOKEN" + public let preferredAuthenticationMethod: String? + /// The Raw JSON formatted string to be used as the payload. This value overrides the message. + public let rawContent: String? + /// Provide this key with a string value that represents the notification's type. This value corresponds to the value in the identifier property of one of your app's registered categories. + public let category: String? + /// Include this key when you want the system to play a sound. The value of this key is the name of a sound file in your app's main bundle or in the Library/Sounds folder of your app's data container. If the sound file cannot be found, or if you specify defaultfor the value, the system plays the default alert sound. + public let sound: String? + /// This parameter specifies how long (in seconds) the message should be kept if APNS is unable to deliver the notification the first time. If the value is 0, APNS treats the notification as if it expires immediately and does not store the notification or attempt to redeliver it. This value is converted to the expiration field when sent to APNS + public let timeToLive: Int32? + /// The message body of the notification, the email body or the text message. + public let body: String? + public let substitutions: [String: [String]]? + + public init(threadId: String? = nil, data: [String: String]? = nil, priority: String? = nil, mediaUrl: String? = nil, collapseId: String? = nil, title: String? = nil, silentPush: Bool? = nil, badge: Int32? = nil, action: Action? = nil, url: String? = nil, preferredAuthenticationMethod: String? = nil, rawContent: String? = nil, category: String? = nil, sound: String? = nil, timeToLive: Int32? = nil, body: String? = nil, substitutions: [String: [String]]? = nil) { + self.threadId = threadId + self.data = data + self.priority = priority + self.mediaUrl = mediaUrl + self.collapseId = collapseId + self.title = title + self.silentPush = silentPush + self.badge = badge + self.action = action + self.url = url + self.preferredAuthenticationMethod = preferredAuthenticationMethod + self.rawContent = rawContent + self.category = category + self.sound = sound + self.timeToLive = timeToLive + self.body = body + self.substitutions = substitutions + } + + private enum CodingKeys: String, CodingKey { + case threadId = "ThreadId" + case data = "Data" + case priority = "Priority" + case mediaUrl = "MediaUrl" + case collapseId = "CollapseId" + case title = "Title" + case silentPush = "SilentPush" + case badge = "Badge" + case action = "Action" + case url = "Url" + case preferredAuthenticationMethod = "PreferredAuthenticationMethod" + case rawContent = "RawContent" + case category = "Category" + case sound = "Sound" + case timeToLive = "TimeToLive" + case body = "Body" + case substitutions = "Substitutions" + } + } + + public struct ApplicationsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Item", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// List of applications returned in this page. + public let item: [ApplicationResponse]? + /// The string that you use in a subsequent request to get the next page of results in a paginated response. + public let nextToken: String? + + public init(item: [ApplicationResponse]? = nil, nextToken: String? = nil) { + self.item = item + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case item = "Item" + case nextToken = "NextToken" + } + } + + public struct DefaultPushNotificationMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Action", required: false, type: .enum), + AWSShapeMember(label: "Url", required: false, type: .string), + AWSShapeMember(label: "Data", required: false, type: .map), + AWSShapeMember(label: "Title", required: false, type: .string), + AWSShapeMember(label: "SilentPush", required: false, type: .boolean), + AWSShapeMember(label: "Body", required: false, type: .string), + AWSShapeMember(label: "Substitutions", required: false, type: .map) + ] + /// The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL + public let action: Action? + /// The URL to open in the user's mobile browser. Used if the value for Action is URL. + public let url: String? + public let data: [String: String]? + /// The message title that displays above the message on the user's device. + public let title: String? + /// Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases. + public let silentPush: Bool? + /// The message body of the notification, the email body or the text message. + public let body: String? + public let substitutions: [String: [String]]? + + public init(action: Action? = nil, url: String? = nil, data: [String: String]? = nil, title: String? = nil, silentPush: Bool? = nil, body: String? = nil, substitutions: [String: [String]]? = nil) { + self.action = action + self.url = url + self.data = data + self.title = title + self.silentPush = silentPush + self.body = body + self.substitutions = substitutions + } + + private enum CodingKeys: String, CodingKey { + case action = "Action" + case url = "Url" + case data = "Data" + case title = "Title" + case silentPush = "SilentPush" + case body = "Body" + case substitutions = "Substitutions" + } + } + + public struct ADMChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "Platform", required: false, type: .string), + AWSShapeMember(label: "HasCredential", required: false, type: .boolean), + AWSShapeMember(label: "Version", required: false, type: .integer), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "IsArchived", required: false, type: .boolean), + AWSShapeMember(label: "LastModifiedBy", required: false, type: .string) + ] + /// Channel ID. Not used, only for backwards compatibility. + public let id: String? + /// Platform type. Will be "ADM" + public let platform: String? + /// If the channel is registered with a credential for authentication. + public let hasCredential: Bool? + /// Version of channel + public let version: Int32? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + /// Last date this was updated + public let lastModifiedDate: String? + /// When was this segment created + public let creationDate: String? + /// Application id + public let applicationId: String? + /// Is this channel archived + public let isArchived: Bool? + /// Who last updated this entry + public let lastModifiedBy: String? + + public init(id: String? = nil, platform: String? = nil, hasCredential: Bool? = nil, version: Int32? = nil, enabled: Bool? = nil, lastModifiedDate: String? = nil, creationDate: String? = nil, applicationId: String? = nil, isArchived: Bool? = nil, lastModifiedBy: String? = nil) { + self.id = id + self.platform = platform + self.hasCredential = hasCredential + self.version = version + self.enabled = enabled + self.lastModifiedDate = lastModifiedDate + self.creationDate = creationDate + self.applicationId = applicationId + self.isArchived = isArchived + self.lastModifiedBy = lastModifiedBy + } + + private enum CodingKeys: String, CodingKey { + case id = "Id" + case platform = "Platform" + case hasCredential = "HasCredential" + case version = "Version" + case enabled = "Enabled" + case lastModifiedDate = "LastModifiedDate" + case creationDate = "CreationDate" + case applicationId = "ApplicationId" + case isArchived = "IsArchived" + case lastModifiedBy = "LastModifiedBy" + } + } + + public enum ChannelType: String, CustomStringConvertible, Codable { + case gcm = "GCM" + case apns = "APNS" + case apnsSandbox = "APNS_SANDBOX" + case apnsVoip = "APNS_VOIP" + case apnsVoipSandbox = "APNS_VOIP_SANDBOX" + case adm = "ADM" + case sms = "SMS" + case email = "EMAIL" + case baidu = "BAIDU" + public var description: String { return self.rawValue } + } + + public struct UpdateBaiduChannelRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "BaiduChannelRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BaiduChannelRequest", required: true, type: .structure), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let baiduChannelRequest: BaiduChannelRequest + public let applicationId: String + + public init(baiduChannelRequest: BaiduChannelRequest, applicationId: String) { + self.baiduChannelRequest = baiduChannelRequest + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case baiduChannelRequest = "BaiduChannelRequest" + case applicationId = "application-id" + } + } + + public struct MessageResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointResult", required: false, type: .map), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "Result", required: false, type: .map), + AWSShapeMember(label: "RequestId", required: false, type: .string) + ] + /// A map containing a multi part response for each address, with the endpointId as the key and the result as the value. + public let endpointResult: [String: EndpointMessageResult]? + /// Application id of the message. + public let applicationId: String? + /// A map containing a multi part response for each address, with the address as the key(Email address, phone number or push token) and the result as the value. + public let result: [String: MessageResult]? + /// Original request Id for which this message was delivered. + public let requestId: String? + + public init(endpointResult: [String: EndpointMessageResult]? = nil, applicationId: String? = nil, result: [String: MessageResult]? = nil, requestId: String? = nil) { + self.endpointResult = endpointResult + self.applicationId = applicationId + self.result = result + self.requestId = requestId + } + + private enum CodingKeys: String, CodingKey { + case endpointResult = "EndpointResult" + case applicationId = "ApplicationId" + case result = "Result" + case requestId = "RequestId" + } + } + + public struct UpdateEmailChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "EmailChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EmailChannelResponse", required: true, type: .structure) + ] + public let emailChannelResponse: EmailChannelResponse + + public init(emailChannelResponse: EmailChannelResponse) { + self.emailChannelResponse = emailChannelResponse + } + + private enum CodingKeys: String, CodingKey { + case emailChannelResponse = "EmailChannelResponse" + } + } + + public struct ActivitiesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Item", required: false, type: .list) + ] + /// List of campaign activities + public let item: [ActivityResponse]? + + public init(item: [ActivityResponse]? = nil) { + self.item = item + } + + private enum CodingKeys: String, CodingKey { + case item = "Item" + } + } + + public struct DeleteAdmChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ADMChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ADMChannelResponse", required: true, type: .structure) + ] + public let aDMChannelResponse: ADMChannelResponse + + public init(aDMChannelResponse: ADMChannelResponse) { + self.aDMChannelResponse = aDMChannelResponse + } + + private enum CodingKeys: String, CodingKey { + case aDMChannelResponse = "ADMChannelResponse" + } + } + + public struct RecencyDimension: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Duration", required: false, type: .enum), + AWSShapeMember(label: "RecencyType", required: false, type: .enum) + ] + /// The length of time during which users have been active or inactive with your app. + /// Valid values: HR_24, DAY_7, DAY_14, DAY_30 + public let duration: Duration? + /// The recency dimension type: + /// ACTIVE - Users who have used your app within the specified duration are included in the segment. + /// INACTIVE - Users who have not used your app within the specified duration are included in the segment. + public let recencyType: RecencyType? + + public init(duration: Duration? = nil, recencyType: RecencyType? = nil) { + self.duration = duration + self.recencyType = recencyType + } + + private enum CodingKeys: String, CodingKey { + case duration = "Duration" + case recencyType = "RecencyType" + } + } + + public struct GetApnsChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let applicationId: String + + public init(applicationId: String) { + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + } + } + + public struct Schedule: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTime", required: false, type: .string), + AWSShapeMember(label: "EndTime", required: false, type: .string), + AWSShapeMember(label: "Frequency", required: false, type: .enum), + AWSShapeMember(label: "QuietTime", required: false, type: .structure), + AWSShapeMember(label: "IsLocalTime", required: false, type: .boolean), + AWSShapeMember(label: "Timezone", required: false, type: .string) + ] + /// The scheduled time that the campaign begins in ISO 8601 format. + public let startTime: String? + /// The scheduled time that the campaign ends in ISO 8601 format. + public let endTime: String? + /// How often the campaign delivers messages. + /// Valid values: ONCE, HOURLY, DAILY, WEEKLY, MONTHLY + public let frequency: Frequency? + /// The time during which the campaign sends no messages. + public let quietTime: QuietTime? + /// Indicates whether the campaign schedule takes effect according to each user's local time. + public let isLocalTime: Bool? + /// The starting UTC offset for the schedule if the value for isLocalTime is true + /// Valid values: + /// UTC + /// UTC+01 + /// UTC+02 + /// UTC+03 + /// UTC+03:30 + /// UTC+04 + /// UTC+04:30 + /// UTC+05 + /// UTC+05:30 + /// UTC+05:45 + /// UTC+06 + /// UTC+06:30 + /// UTC+07 + /// UTC+08 + /// UTC+09 + /// UTC+09:30 + /// UTC+10 + /// UTC+10:30 + /// UTC+11 + /// UTC+12 + /// UTC+13 + /// UTC-02 + /// UTC-03 + /// UTC-04 + /// UTC-05 + /// UTC-06 + /// UTC-07 + /// UTC-08 + /// UTC-09 + /// UTC-10 + /// UTC-11 + public let timezone: String? + + public init(startTime: String? = nil, endTime: String? = nil, frequency: Frequency? = nil, quietTime: QuietTime? = nil, isLocalTime: Bool? = nil, timezone: String? = nil) { + self.startTime = startTime + self.endTime = endTime + self.frequency = frequency + self.quietTime = quietTime + self.isLocalTime = isLocalTime + self.timezone = timezone + } + + private enum CodingKeys: String, CodingKey { + case startTime = "StartTime" + case endTime = "EndTime" + case frequency = "Frequency" + case quietTime = "QuietTime" + case isLocalTime = "IsLocalTime" + case timezone = "Timezone" + } + } + + public struct GetApnsChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSChannelResponse", required: true, type: .structure) + ] + public let aPNSChannelResponse: APNSChannelResponse + + public init(aPNSChannelResponse: APNSChannelResponse) { + self.aPNSChannelResponse = aPNSChannelResponse + } + + private enum CodingKeys: String, CodingKey { + case aPNSChannelResponse = "APNSChannelResponse" + } + } + + public struct SegmentImportResource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ExternalId", required: false, type: .string), + AWSShapeMember(label: "Format", required: false, type: .enum), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "ChannelCounts", required: false, type: .map), + AWSShapeMember(label: "S3Url", required: false, type: .string), + AWSShapeMember(label: "Size", required: false, type: .integer) + ] + /// A unique, custom ID assigned to the IAM role that restricts who can assume the role. + public let externalId: String? + /// The format of the endpoint files that were imported to create this segment. + /// Valid values: CSV, JSON + public let format: Format? + /// The Amazon Resource Name (ARN) of an IAM role that grants Amazon Pinpoint access to the endpoints in Amazon S3. + public let roleArn: String? + public let channelCounts: [String: Int32]? + /// A URL that points to the Amazon S3 location from which the endpoints for this segment were imported. + public let s3Url: String? + /// The number of endpoints that were successfully imported to create this segment. + public let size: Int32? + + public init(externalId: String? = nil, format: Format? = nil, roleArn: String? = nil, channelCounts: [String: Int32]? = nil, s3Url: String? = nil, size: Int32? = nil) { + self.externalId = externalId + self.format = format + self.roleArn = roleArn + self.channelCounts = channelCounts + self.s3Url = s3Url + self.size = size + } + + private enum CodingKeys: String, CodingKey { + case externalId = "ExternalId" + case format = "Format" + case roleArn = "RoleArn" + case channelCounts = "ChannelCounts" + case s3Url = "S3Url" + case size = "Size" + } + } + + public struct ImportJobRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3Url", required: false, type: .string), + AWSShapeMember(label: "DefineSegment", required: false, type: .boolean), + AWSShapeMember(label: "Format", required: false, type: .enum), + AWSShapeMember(label: "ExternalId", required: false, type: .string), + AWSShapeMember(label: "RegisterEndpoints", required: false, type: .boolean), + AWSShapeMember(label: "SegmentName", required: false, type: .string), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "SegmentId", required: false, type: .string) + ] + /// A URL that points to the location within an Amazon S3 bucket that contains the endpoints to import. The location can be a folder or a single file. + /// The URL should follow this format: s3://bucket-name/folder-name/file-name + /// Amazon Pinpoint will import endpoints from this location and any subfolders it contains. + public let s3Url: String? + /// Sets whether the endpoints create a segment when they are imported. + public let defineSegment: Bool? + /// The format of the files that contain the endpoint definitions. + /// Valid values: CSV, JSON + public let format: Format? + /// A unique, custom ID assigned to the IAM role that restricts who can assume the role. + public let externalId: String? + /// Sets whether the endpoints are registered with Amazon Pinpoint when they are imported. + public let registerEndpoints: Bool? + /// A custom name for the segment created by the import job. Use if DefineSegment is true. + public let segmentName: String? + /// The Amazon Resource Name (ARN) of an IAM role that grants Amazon Pinpoint access to the Amazon S3 location that contains the endpoints to import. + public let roleArn: String? + /// The ID of the segment to update if the import job is meant to update an existing segment. + public let segmentId: String? + + public init(s3Url: String? = nil, defineSegment: Bool? = nil, format: Format? = nil, externalId: String? = nil, registerEndpoints: Bool? = nil, segmentName: String? = nil, roleArn: String? = nil, segmentId: String? = nil) { + self.s3Url = s3Url + self.defineSegment = defineSegment + self.format = format + self.externalId = externalId + self.registerEndpoints = registerEndpoints + self.segmentName = segmentName + self.roleArn = roleArn + self.segmentId = segmentId + } + + private enum CodingKeys: String, CodingKey { + case s3Url = "S3Url" + case defineSegment = "DefineSegment" + case format = "Format" + case externalId = "ExternalId" + case registerEndpoints = "RegisterEndpoints" + case segmentName = "SegmentName" + case roleArn = "RoleArn" + case segmentId = "SegmentId" + } + } + + public struct GetCampaignsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), + AWSShapeMember(label: "Token", location: .querystring(locationName: "token"), required: false, type: .string) + ] + public let pageSize: String? + public let applicationId: String + public let token: String? + + public init(pageSize: String? = nil, applicationId: String, token: String? = nil) { + self.pageSize = pageSize + self.applicationId = applicationId + self.token = token + } + + private enum CodingKeys: String, CodingKey { + case pageSize = "page-size" + case applicationId = "application-id" + case token = "token" + } + } + + public struct CreateImportJobRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ImportJobRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ImportJobRequest", required: true, type: .structure), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let importJobRequest: ImportJobRequest + public let applicationId: String + + public init(importJobRequest: ImportJobRequest, applicationId: String) { + self.importJobRequest = importJobRequest + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case importJobRequest = "ImportJobRequest" + case applicationId = "application-id" + } + } + + public struct ImportJobResource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3Url", required: false, type: .string), + AWSShapeMember(label: "DefineSegment", required: false, type: .boolean), + AWSShapeMember(label: "Format", required: false, type: .enum), + AWSShapeMember(label: "ExternalId", required: false, type: .string), + AWSShapeMember(label: "RegisterEndpoints", required: false, type: .boolean), + AWSShapeMember(label: "SegmentName", required: false, type: .string), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "SegmentId", required: false, type: .string) + ] + /// A URL that points to the location within an Amazon S3 bucket that contains the endpoints to import. The location can be a folder or a single file. + /// The URL should follow this format: s3://bucket-name/folder-name/file-name + /// Amazon Pinpoint will import endpoints from this location and any subfolders it contains. + public let s3Url: String? + /// Sets whether the endpoints create a segment when they are imported. + public let defineSegment: Bool? + /// The format of the files that contain the endpoint definitions. + /// Valid values: CSV, JSON + public let format: Format? + /// A unique, custom ID assigned to the IAM role that restricts who can assume the role. + public let externalId: String? + /// Sets whether the endpoints are registered with Amazon Pinpoint when they are imported. + public let registerEndpoints: Bool? + /// A custom name for the segment created by the import job. Use if DefineSegment is true. + public let segmentName: String? + /// The Amazon Resource Name (ARN) of an IAM role that grants Amazon Pinpoint access to the Amazon S3 location that contains the endpoints to import. + public let roleArn: String? + /// The ID of the segment to update if the import job is meant to update an existing segment. + public let segmentId: String? + + public init(s3Url: String? = nil, defineSegment: Bool? = nil, format: Format? = nil, externalId: String? = nil, registerEndpoints: Bool? = nil, segmentName: String? = nil, roleArn: String? = nil, segmentId: String? = nil) { + self.s3Url = s3Url + self.defineSegment = defineSegment + self.format = format + self.externalId = externalId + self.registerEndpoints = registerEndpoints + self.segmentName = segmentName + self.roleArn = roleArn + self.segmentId = segmentId + } + + private enum CodingKeys: String, CodingKey { + case s3Url = "S3Url" + case defineSegment = "DefineSegment" + case format = "Format" + case externalId = "ExternalId" + case registerEndpoints = "RegisterEndpoints" + case segmentName = "SegmentName" + case roleArn = "RoleArn" + case segmentId = "SegmentId" + } + } + + public struct GetAppsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), + AWSShapeMember(label: "Token", location: .querystring(locationName: "token"), required: false, type: .string) + ] + public let pageSize: String? + public let token: String? + + public init(pageSize: String? = nil, token: String? = nil) { + self.pageSize = pageSize + self.token = token + } + + private enum CodingKeys: String, CodingKey { + case pageSize = "page-size" + case token = "token" + } + } + + public struct EndpointUser: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UserId", required: false, type: .string), + AWSShapeMember(label: "UserAttributes", required: false, type: .map) + ] + /// The unique ID of the user. + public let userId: String? + public let userAttributes: [String: [String]]? + + public init(userId: String? = nil, userAttributes: [String: [String]]? = nil) { + self.userId = userId + self.userAttributes = userAttributes + } + + private enum CodingKeys: String, CodingKey { + case userId = "UserId" + case userAttributes = "UserAttributes" + } + } + + public struct CampaignEmailMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Title", required: false, type: .string), + AWSShapeMember(label: "HtmlBody", required: false, type: .string), + AWSShapeMember(label: "Body", required: false, type: .string), + AWSShapeMember(label: "FromAddress", required: false, type: .string) + ] + /// The email title (Or subject). + public let title: String? + /// The email html body. + public let htmlBody: String? + /// The email text body. + public let body: String? + /// The email address used to send the email from. Defaults to use FromAddress specified in the Email Channel. + public let fromAddress: String? + + public init(title: String? = nil, htmlBody: String? = nil, body: String? = nil, fromAddress: String? = nil) { + self.title = title + self.htmlBody = htmlBody + self.body = body + self.fromAddress = fromAddress + } + + private enum CodingKeys: String, CodingKey { + case title = "Title" + case htmlBody = "HtmlBody" + case body = "Body" + case fromAddress = "FromAddress" + } + } + + public struct SegmentDimensions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Demographic", required: false, type: .structure), + AWSShapeMember(label: "Behavior", required: false, type: .structure), + AWSShapeMember(label: "Attributes", required: false, type: .map), + AWSShapeMember(label: "Location", required: false, type: .structure), + AWSShapeMember(label: "UserAttributes", required: false, type: .map) + ] + /// The segment demographics attributes. + public let demographic: SegmentDemographics? + /// The segment behaviors attributes. + public let behavior: SegmentBehaviors? + /// Custom segment attributes. + public let attributes: [String: AttributeDimension]? + /// The segment location attributes. + public let location: SegmentLocation? + /// Custom segment user attributes. + public let userAttributes: [String: AttributeDimension]? + + public init(demographic: SegmentDemographics? = nil, behavior: SegmentBehaviors? = nil, attributes: [String: AttributeDimension]? = nil, location: SegmentLocation? = nil, userAttributes: [String: AttributeDimension]? = nil) { + self.demographic = demographic + self.behavior = behavior + self.attributes = attributes + self.location = location + self.userAttributes = userAttributes + } + + private enum CodingKeys: String, CodingKey { + case demographic = "Demographic" + case behavior = "Behavior" + case attributes = "Attributes" + case location = "Location" + case userAttributes = "UserAttributes" + } + } + + public struct ApplicationSettingsResource: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), + AWSShapeMember(label: "Limits", required: false, type: .structure), + AWSShapeMember(label: "QuietTime", required: false, type: .structure), + AWSShapeMember(label: "ApplicationId", required: false, type: .string) + ] + /// The date that the settings were last updated in ISO 8601 format. + public let lastModifiedDate: String? + /// The default campaign limits for the app. These limits apply to each campaign for the app, unless the campaign overrides the default with limits of its own. + public let limits: CampaignLimits? + /// The default quiet time for the app. Each campaign for this app sends no messages during this time unless the campaign overrides the default with a quiet time of its own. + public let quietTime: QuietTime? + /// The unique ID for the application. + public let applicationId: String? + + public init(lastModifiedDate: String? = nil, limits: CampaignLimits? = nil, quietTime: QuietTime? = nil, applicationId: String? = nil) { + self.lastModifiedDate = lastModifiedDate + self.limits = limits + self.quietTime = quietTime + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case lastModifiedDate = "LastModifiedDate" + case limits = "Limits" + case quietTime = "QuietTime" + case applicationId = "ApplicationId" + } + } + + public struct GetCampaignActivitiesResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ActivitiesResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ActivitiesResponse", required: true, type: .structure) + ] + public let activitiesResponse: ActivitiesResponse + + public init(activitiesResponse: ActivitiesResponse) { + self.activitiesResponse = activitiesResponse + } + + private enum CodingKeys: String, CodingKey { + case activitiesResponse = "ActivitiesResponse" + } + } + + public struct UpdateApnsSandboxChannelResponse: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSSandboxChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSSandboxChannelResponse", required: true, type: .structure) + ] + public let aPNSSandboxChannelResponse: APNSSandboxChannelResponse + + public init(aPNSSandboxChannelResponse: APNSSandboxChannelResponse) { + self.aPNSSandboxChannelResponse = aPNSSandboxChannelResponse + } + + private enum CodingKeys: String, CodingKey { + case aPNSSandboxChannelResponse = "APNSSandboxChannelResponse" + } + } + + public struct GetAppRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let applicationId: String public init(applicationId: String) { self.applicationId = applicationId @@ -3232,397 +4586,576 @@ extension Pinpoint { } } - public struct DeleteEventStreamResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "EventStream" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventStream", required: true, type: .structure) + public struct SegmentResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Version", required: false, type: .integer), + AWSShapeMember(label: "Dimensions", required: false, type: .structure), + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), + AWSShapeMember(label: "ImportDefinition", required: false, type: .structure), + AWSShapeMember(label: "SegmentType", required: false, type: .enum) ] - public let eventStream: EventStream + /// The unique segment ID. + public let id: String? + /// The name of segment + public let name: String? + /// The segment version number. + public let version: Int32? + /// The segment dimensions attributes. + public let dimensions: SegmentDimensions? + /// The date the segment was created in ISO 8601 format. + public let creationDate: String? + /// The ID of the application to which the segment applies. + public let applicationId: String? + /// The date the segment was last updated in ISO 8601 format. + public let lastModifiedDate: String? + /// The import job settings. + public let importDefinition: SegmentImportResource? + /// The segment type: + /// DIMENSIONAL - A dynamic segment built from selection criteria based on endpoint data reported by your app. You create this type of segment by using the segment builder in the Amazon Pinpoint console or by making a POST request to the segments resource. + /// IMPORT - A static segment built from an imported set of endpoint definitions. You create this type of segment by importing a segment in the Amazon Pinpoint console or by making a POST request to the jobs/import resource. + public let segmentType: SegmentType? - public init(eventStream: EventStream) { - self.eventStream = eventStream + public init(id: String? = nil, name: String? = nil, version: Int32? = nil, dimensions: SegmentDimensions? = nil, creationDate: String? = nil, applicationId: String? = nil, lastModifiedDate: String? = nil, importDefinition: SegmentImportResource? = nil, segmentType: SegmentType? = nil) { + self.id = id + self.name = name + self.version = version + self.dimensions = dimensions + self.creationDate = creationDate + self.applicationId = applicationId + self.lastModifiedDate = lastModifiedDate + self.importDefinition = importDefinition + self.segmentType = segmentType } private enum CodingKeys: String, CodingKey { - case eventStream = "EventStream" + case id = "Id" + case name = "Name" + case version = "Version" + case dimensions = "Dimensions" + case creationDate = "CreationDate" + case applicationId = "ApplicationId" + case lastModifiedDate = "LastModifiedDate" + case importDefinition = "ImportDefinition" + case segmentType = "SegmentType" } } - public struct EmailChannelResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LastModifiedBy", required: false, type: .string), - AWSShapeMember(label: "Platform", required: false, type: .string), + public struct ImportJobResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CompletionDate", required: false, type: .string), + AWSShapeMember(label: "Definition", required: false, type: .structure), + AWSShapeMember(label: "FailedPieces", required: false, type: .integer), + AWSShapeMember(label: "TotalPieces", required: false, type: .integer), + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "JobStatus", required: false, type: .enum), + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "TotalProcessed", required: false, type: .integer), + AWSShapeMember(label: "CompletedPieces", required: false, type: .integer), + AWSShapeMember(label: "TotalFailures", required: false, type: .integer), + AWSShapeMember(label: "Failures", required: false, type: .list), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "Type", required: false, type: .string) + ] + /// The date the import job completed in ISO 8601 format. + public let completionDate: String? + /// The import job settings. + public let definition: ImportJobResource? + /// The number of pieces that have failed to import as of the time of the request. + public let failedPieces: Int32? + /// The total number of pieces that must be imported to finish the job. Each piece is an approximately equal portion of the endpoints to import. + public let totalPieces: Int32? + /// The date the import job was created in ISO 8601 format. + public let creationDate: String? + /// The status of the import job. + /// Valid values: CREATED, INITIALIZING, PROCESSING, COMPLETING, COMPLETED, FAILING, FAILED + /// The job status is FAILED if one or more pieces failed to import. + public let jobStatus: JobStatus? + /// The unique ID of the import job. + public let id: String? + /// The number of endpoints that were processed by the import job. + public let totalProcessed: Int32? + /// The number of pieces that have successfully imported as of the time of the request. + public let completedPieces: Int32? + /// The number of endpoints that failed to import; for example, because of syntax errors. + public let totalFailures: Int32? + public let failures: [String]? + /// The unique ID of the application to which the import job applies. + public let applicationId: String? + /// The job type. Will be Import. + public let `type`: String? + + public init(completionDate: String? = nil, definition: ImportJobResource? = nil, failedPieces: Int32? = nil, totalPieces: Int32? = nil, creationDate: String? = nil, jobStatus: JobStatus? = nil, id: String? = nil, totalProcessed: Int32? = nil, completedPieces: Int32? = nil, totalFailures: Int32? = nil, failures: [String]? = nil, applicationId: String? = nil, type: String? = nil) { + self.completionDate = completionDate + self.definition = definition + self.failedPieces = failedPieces + self.totalPieces = totalPieces + self.creationDate = creationDate + self.jobStatus = jobStatus + self.id = id + self.totalProcessed = totalProcessed + self.completedPieces = completedPieces + self.totalFailures = totalFailures + self.failures = failures + self.applicationId = applicationId + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case completionDate = "CompletionDate" + case definition = "Definition" + case failedPieces = "FailedPieces" + case totalPieces = "TotalPieces" + case creationDate = "CreationDate" + case jobStatus = "JobStatus" + case id = "Id" + case totalProcessed = "TotalProcessed" + case completedPieces = "CompletedPieces" + case totalFailures = "TotalFailures" + case failures = "Failures" + case applicationId = "ApplicationId" + case `type` = "Type" + } + } + + public struct APNSVoipSandboxChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "Platform", required: false, type: .string), + AWSShapeMember(label: "DefaultAuthenticationMethod", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .integer), AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), AWSShapeMember(label: "CreationDate", required: false, type: .string), AWSShapeMember(label: "ApplicationId", required: false, type: .string), - AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "HasCredential", required: false, type: .boolean), AWSShapeMember(label: "IsArchived", required: false, type: .boolean), - AWSShapeMember(label: "Identity", required: false, type: .string), - AWSShapeMember(label: "FromAddress", required: false, type: .string) - ] - /// Who last updated this entry - public let lastModifiedBy: String? - /// Platform type. Will be "EMAIL" - public let platform: String? + AWSShapeMember(label: "HasTokenKey", required: false, type: .boolean), + AWSShapeMember(label: "LastModifiedBy", required: false, type: .string) + ] /// Channel ID. Not used, only for backwards compatibility. public let id: String? + /// The platform type. Will be APNS. + public let platform: String? + /// The default authentication method used for APNs. + public let defaultAuthenticationMethod: String? /// Version of channel public let version: Int32? /// If the channel is enabled for sending messages. public let enabled: Bool? /// Last date this was updated public let lastModifiedDate: String? - /// The date that the settings were last updated in ISO 8601 format. + /// When was this segment created public let creationDate: String? /// Application id public let applicationId: String? - /// The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service - public let roleArn: String? + /// If the channel is registered with a credential for authentication. + public let hasCredential: Bool? /// Is this channel archived public let isArchived: Bool? - /// The ARN of an identity verified with SES. - public let identity: String? - /// The email address used to send emails from. - public let fromAddress: String? + /// If the channel is registered with a token key for authentication. + public let hasTokenKey: Bool? + /// Who made the last change + public let lastModifiedBy: String? - public init(lastModifiedBy: String? = nil, platform: String? = nil, id: String? = nil, version: Int32? = nil, enabled: Bool? = nil, lastModifiedDate: String? = nil, creationDate: String? = nil, applicationId: String? = nil, roleArn: String? = nil, isArchived: Bool? = nil, identity: String? = nil, fromAddress: String? = nil) { - self.lastModifiedBy = lastModifiedBy - self.platform = platform + public init(id: String? = nil, platform: String? = nil, defaultAuthenticationMethod: String? = nil, version: Int32? = nil, enabled: Bool? = nil, lastModifiedDate: String? = nil, creationDate: String? = nil, applicationId: String? = nil, hasCredential: Bool? = nil, isArchived: Bool? = nil, hasTokenKey: Bool? = nil, lastModifiedBy: String? = nil) { self.id = id + self.platform = platform + self.defaultAuthenticationMethod = defaultAuthenticationMethod self.version = version self.enabled = enabled self.lastModifiedDate = lastModifiedDate self.creationDate = creationDate self.applicationId = applicationId - self.roleArn = roleArn + self.hasCredential = hasCredential self.isArchived = isArchived - self.identity = identity - self.fromAddress = fromAddress + self.hasTokenKey = hasTokenKey + self.lastModifiedBy = lastModifiedBy } private enum CodingKeys: String, CodingKey { - case lastModifiedBy = "LastModifiedBy" - case platform = "Platform" case id = "Id" + case platform = "Platform" + case defaultAuthenticationMethod = "DefaultAuthenticationMethod" case version = "Version" case enabled = "Enabled" case lastModifiedDate = "LastModifiedDate" case creationDate = "CreationDate" case applicationId = "ApplicationId" - case roleArn = "RoleArn" + case hasCredential = "HasCredential" case isArchived = "IsArchived" - case identity = "Identity" - case fromAddress = "FromAddress" - } - } - - public struct CreateCampaignResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "CampaignResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CampaignResponse", required: true, type: .structure) - ] - public let campaignResponse: CampaignResponse - - public init(campaignResponse: CampaignResponse) { - self.campaignResponse = campaignResponse - } - - private enum CodingKeys: String, CodingKey { - case campaignResponse = "CampaignResponse" - } - } - - public struct ActivityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CampaignId", required: false, type: .string), - AWSShapeMember(label: "State", required: false, type: .string), - AWSShapeMember(label: "TimezonesTotalCount", required: false, type: .integer), - AWSShapeMember(label: "TotalEndpointCount", required: false, type: .integer), - AWSShapeMember(label: "TimezonesCompletedCount", required: false, type: .integer), - AWSShapeMember(label: "Id", required: false, type: .string), - AWSShapeMember(label: "ScheduledStart", required: false, type: .string), - AWSShapeMember(label: "Start", required: false, type: .string), - AWSShapeMember(label: "End", required: false, type: .string), - AWSShapeMember(label: "ApplicationId", required: false, type: .string), - AWSShapeMember(label: "TreatmentId", required: false, type: .string), - AWSShapeMember(label: "Result", required: false, type: .string), - AWSShapeMember(label: "SuccessfulEndpointCount", required: false, type: .integer) - ] - /// The ID of the campaign to which the activity applies. - public let campaignId: String? - /// The state of the activity. - /// Valid values: PENDING, INITIALIZING, RUNNING, PAUSED, CANCELLED, COMPLETED - public let state: String? - /// The total number of unique timezones present in the segment. - public let timezonesTotalCount: Int32? - /// The total number of endpoints to which the campaign attempts to deliver messages. - public let totalEndpointCount: Int32? - /// The total number of timezones completed. - public let timezonesCompletedCount: Int32? - /// The unique activity ID. - public let id: String? - /// The scheduled start time for the activity in ISO 8601 format. - public let scheduledStart: String? - /// The actual start time of the activity in ISO 8601 format. - public let start: String? - /// The actual time the activity was marked CANCELLED or COMPLETED. Provided in ISO 8601 format. - public let end: String? - /// The ID of the application to which the campaign applies. - public let applicationId: String? - /// The ID of a variation of the campaign used for A/B testing. - public let treatmentId: String? - /// Indicates whether the activity succeeded. - /// Valid values: SUCCESS, FAIL - public let result: String? - /// The total number of endpoints to which the campaign successfully delivered messages. - public let successfulEndpointCount: Int32? - - public init(campaignId: String? = nil, state: String? = nil, timezonesTotalCount: Int32? = nil, totalEndpointCount: Int32? = nil, timezonesCompletedCount: Int32? = nil, id: String? = nil, scheduledStart: String? = nil, start: String? = nil, end: String? = nil, applicationId: String? = nil, treatmentId: String? = nil, result: String? = nil, successfulEndpointCount: Int32? = nil) { - self.campaignId = campaignId - self.state = state - self.timezonesTotalCount = timezonesTotalCount - self.totalEndpointCount = totalEndpointCount - self.timezonesCompletedCount = timezonesCompletedCount - self.id = id - self.scheduledStart = scheduledStart - self.start = start - self.end = end - self.applicationId = applicationId - self.treatmentId = treatmentId - self.result = result - self.successfulEndpointCount = successfulEndpointCount - } - - private enum CodingKeys: String, CodingKey { - case campaignId = "CampaignId" - case state = "State" - case timezonesTotalCount = "TimezonesTotalCount" - case totalEndpointCount = "TotalEndpointCount" - case timezonesCompletedCount = "TimezonesCompletedCount" - case id = "Id" - case scheduledStart = "ScheduledStart" - case start = "Start" - case end = "End" - case applicationId = "ApplicationId" - case treatmentId = "TreatmentId" - case result = "Result" - case successfulEndpointCount = "SuccessfulEndpointCount" + case hasTokenKey = "HasTokenKey" + case lastModifiedBy = "LastModifiedBy" } } - public struct CreateSegmentResponse: AWSShape { + public struct GetApplicationSettingsResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "SegmentResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SegmentResponse", required: true, type: .structure) + public static let payloadPath: String? = "ApplicationSettingsResource" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationSettingsResource", required: true, type: .structure) ] - public let segmentResponse: SegmentResponse + public let applicationSettingsResource: ApplicationSettingsResource - public init(segmentResponse: SegmentResponse) { - self.segmentResponse = segmentResponse + public init(applicationSettingsResource: ApplicationSettingsResource) { + self.applicationSettingsResource = applicationSettingsResource } private enum CodingKeys: String, CodingKey { - case segmentResponse = "SegmentResponse" + case applicationSettingsResource = "ApplicationSettingsResource" } } - public struct GetSegmentImportJobsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), - AWSShapeMember(label: "Token", location: .querystring(locationName: "token"), required: false, type: .string), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), - AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string) - ] - public let pageSize: String? - public let token: String? - public let applicationId: String - public let segmentId: String - - public init(pageSize: String? = nil, token: String? = nil, applicationId: String, segmentId: String) { - self.pageSize = pageSize - self.token = token - self.applicationId = applicationId - self.segmentId = segmentId + public struct APNSVoipChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TeamId", required: false, type: .string), + AWSShapeMember(label: "DefaultAuthenticationMethod", required: false, type: .string), + AWSShapeMember(label: "TokenKeyId", required: false, type: .string), + AWSShapeMember(label: "TokenKey", required: false, type: .string), + AWSShapeMember(label: "Certificate", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "PrivateKey", required: false, type: .string), + AWSShapeMember(label: "BundleId", required: false, type: .string) + ] + /// The team id used for APNs Tokens. + public let teamId: String? + /// The default authentication method used for APNs. + public let defaultAuthenticationMethod: String? + /// The token key used for APNs Tokens. + public let tokenKeyId: String? + /// The token key used for APNs Tokens. + public let tokenKey: String? + /// The distribution certificate from Apple. + public let certificate: String? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + /// The certificate private key. + public let privateKey: String? + /// The bundle id used for APNs Tokens. + public let bundleId: String? + + public init(teamId: String? = nil, defaultAuthenticationMethod: String? = nil, tokenKeyId: String? = nil, tokenKey: String? = nil, certificate: String? = nil, enabled: Bool? = nil, privateKey: String? = nil, bundleId: String? = nil) { + self.teamId = teamId + self.defaultAuthenticationMethod = defaultAuthenticationMethod + self.tokenKeyId = tokenKeyId + self.tokenKey = tokenKey + self.certificate = certificate + self.enabled = enabled + self.privateKey = privateKey + self.bundleId = bundleId } private enum CodingKeys: String, CodingKey { - case pageSize = "page-size" - case token = "token" - case applicationId = "application-id" - case segmentId = "segment-id" + case teamId = "TeamId" + case defaultAuthenticationMethod = "DefaultAuthenticationMethod" + case tokenKeyId = "TokenKeyId" + case tokenKey = "TokenKey" + case certificate = "Certificate" + case enabled = "Enabled" + case privateKey = "PrivateKey" + case bundleId = "BundleId" } } - public struct UpdateApnsChannelRequest: AWSShape { + public struct UpdateGcmChannelRequest: AWSShape { /// The key for the payload - public static let payloadPath: String? = "APNSChannelRequest" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "APNSChannelRequest", required: true, type: .structure), + public static let payloadPath: String? = "GCMChannelRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GCMChannelRequest", required: true, type: .structure), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - public let aPNSChannelRequest: APNSChannelRequest + public let gCMChannelRequest: GCMChannelRequest public let applicationId: String - public init(aPNSChannelRequest: APNSChannelRequest, applicationId: String) { - self.aPNSChannelRequest = aPNSChannelRequest + public init(gCMChannelRequest: GCMChannelRequest, applicationId: String) { + self.gCMChannelRequest = gCMChannelRequest self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case aPNSChannelRequest = "APNSChannelRequest" + case gCMChannelRequest = "GCMChannelRequest" case applicationId = "application-id" } } - public struct GetCampaignVersionsResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "CampaignsResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CampaignsResponse", required: true, type: .structure) - ] - public let campaignsResponse: CampaignsResponse - - public init(campaignsResponse: CampaignsResponse) { - self.campaignsResponse = campaignsResponse - } - - private enum CodingKeys: String, CodingKey { - case campaignsResponse = "CampaignsResponse" - } - } - - public struct GetSegmentResponse: AWSShape { + public struct DeleteCampaignResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "SegmentResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SegmentResponse", required: true, type: .structure) + public static let payloadPath: String? = "CampaignResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CampaignResponse", required: true, type: .structure) ] - public let segmentResponse: SegmentResponse + public let campaignResponse: CampaignResponse - public init(segmentResponse: SegmentResponse) { - self.segmentResponse = segmentResponse + public init(campaignResponse: CampaignResponse) { + self.campaignResponse = campaignResponse } private enum CodingKeys: String, CodingKey { - case segmentResponse = "SegmentResponse" + case campaignResponse = "CampaignResponse" } } - public struct GetSegmentsResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "SegmentsResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SegmentsResponse", required: true, type: .structure) + public struct ADMMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IconReference", required: false, type: .string), + AWSShapeMember(label: "Data", required: false, type: .map), + AWSShapeMember(label: "Title", required: false, type: .string), + AWSShapeMember(label: "ImageIconUrl", required: false, type: .string), + AWSShapeMember(label: "SilentPush", required: false, type: .boolean), + AWSShapeMember(label: "SmallImageIconUrl", required: false, type: .string), + AWSShapeMember(label: "ConsolidationKey", required: false, type: .string), + AWSShapeMember(label: "Action", required: false, type: .enum), + AWSShapeMember(label: "Url", required: false, type: .string), + AWSShapeMember(label: "RawContent", required: false, type: .string), + AWSShapeMember(label: "MD5", required: false, type: .string), + AWSShapeMember(label: "Sound", required: false, type: .string), + AWSShapeMember(label: "ImageUrl", required: false, type: .string), + AWSShapeMember(label: "Body", required: false, type: .string), + AWSShapeMember(label: "ExpiresAfter", required: false, type: .string), + AWSShapeMember(label: "Substitutions", required: false, type: .map) ] - public let segmentsResponse: SegmentsResponse + /// The icon image name of the asset saved in your application. + public let iconReference: String? + public let data: [String: String]? + /// The message title that displays above the message on the user's device. + public let title: String? + /// The URL that points to an image used as the large icon to the notification content view. + public let imageIconUrl: String? + /// Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases. + public let silentPush: Bool? + /// The URL that points to an image used as the small icon for the notification which will be used to represent the notification in the status bar and content view + public let smallImageIconUrl: String? + /// Optional. Arbitrary string used to indicate multiple messages are logically the same and that ADM is allowed to drop previously enqueued messages in favor of this one. + public let consolidationKey: String? + /// The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL + public let action: Action? + /// The URL to open in the user's mobile browser. Used if the value for Action is URL. + public let url: String? + /// The Raw JSON formatted string to be used as the payload. This value overrides the message. + public let rawContent: String? + /// Optional. Base-64-encoded MD5 checksum of the data parameter. Used to verify data integrity + public let md5: String? + /// Indicates a sound to play when the device receives the notification. Supports default, or the filename of a sound resource bundled in the app. Android sound files must reside in /res/raw/ + public let sound: String? + /// The URL that points to an image used in the push notification. + public let imageUrl: String? + /// The message body of the notification, the email body or the text message. + public let body: String? + /// Optional. Number of seconds ADM should retain the message if the device is offline + public let expiresAfter: String? + public let substitutions: [String: [String]]? - public init(segmentsResponse: SegmentsResponse) { - self.segmentsResponse = segmentsResponse + public init(iconReference: String? = nil, data: [String: String]? = nil, title: String? = nil, imageIconUrl: String? = nil, silentPush: Bool? = nil, smallImageIconUrl: String? = nil, consolidationKey: String? = nil, action: Action? = nil, url: String? = nil, rawContent: String? = nil, md5: String? = nil, sound: String? = nil, imageUrl: String? = nil, body: String? = nil, expiresAfter: String? = nil, substitutions: [String: [String]]? = nil) { + self.iconReference = iconReference + self.data = data + self.title = title + self.imageIconUrl = imageIconUrl + self.silentPush = silentPush + self.smallImageIconUrl = smallImageIconUrl + self.consolidationKey = consolidationKey + self.action = action + self.url = url + self.rawContent = rawContent + self.md5 = md5 + self.sound = sound + self.imageUrl = imageUrl + self.body = body + self.expiresAfter = expiresAfter + self.substitutions = substitutions } private enum CodingKeys: String, CodingKey { - case segmentsResponse = "SegmentsResponse" + case iconReference = "IconReference" + case data = "Data" + case title = "Title" + case imageIconUrl = "ImageIconUrl" + case silentPush = "SilentPush" + case smallImageIconUrl = "SmallImageIconUrl" + case consolidationKey = "ConsolidationKey" + case action = "Action" + case url = "Url" + case rawContent = "RawContent" + case md5 = "MD5" + case sound = "Sound" + case imageUrl = "ImageUrl" + case body = "Body" + case expiresAfter = "ExpiresAfter" + case substitutions = "Substitutions" } } - public enum MessageType: String, CustomStringConvertible, Codable { - case transactional = "TRANSACTIONAL" - case promotional = "PROMOTIONAL" - public var description: String { return self.rawValue } - } - - public struct UpdateCampaignRequest: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "WriteCampaignRequest" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), - AWSShapeMember(label: "CampaignId", location: .uri(locationName: "campaign-id"), required: true, type: .string), - AWSShapeMember(label: "WriteCampaignRequest", required: true, type: .structure) + public struct CampaignLimits: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaximumDuration", required: false, type: .integer), + AWSShapeMember(label: "Daily", required: false, type: .integer), + AWSShapeMember(label: "MessagesPerSecond", required: false, type: .integer), + AWSShapeMember(label: "Total", required: false, type: .integer) ] - public let applicationId: String - public let campaignId: String - public let writeCampaignRequest: WriteCampaignRequest + /// The maximum duration of a campaign from the scheduled start. Must be a minimum of 60 seconds. + public let maximumDuration: Int32? + /// The maximum number of messages that the campaign can send daily. + public let daily: Int32? + /// The maximum number of messages per second that the campaign will send. This is a best effort maximum cap and can go as high as 20000 and as low as 50 + public let messagesPerSecond: Int32? + /// The maximum total number of messages that the campaign can send. + public let total: Int32? - public init(applicationId: String, campaignId: String, writeCampaignRequest: WriteCampaignRequest) { - self.applicationId = applicationId - self.campaignId = campaignId - self.writeCampaignRequest = writeCampaignRequest + public init(maximumDuration: Int32? = nil, daily: Int32? = nil, messagesPerSecond: Int32? = nil, total: Int32? = nil) { + self.maximumDuration = maximumDuration + self.daily = daily + self.messagesPerSecond = messagesPerSecond + self.total = total } private enum CodingKeys: String, CodingKey { - case applicationId = "application-id" - case campaignId = "campaign-id" - case writeCampaignRequest = "WriteCampaignRequest" + case maximumDuration = "MaximumDuration" + case daily = "Daily" + case messagesPerSecond = "MessagesPerSecond" + case total = "Total" } } - public struct DeleteSegmentResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "SegmentResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SegmentResponse", required: true, type: .structure) + public struct SegmentDemographics: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Make", required: false, type: .structure), + AWSShapeMember(label: "Platform", required: false, type: .structure), + AWSShapeMember(label: "DeviceType", required: false, type: .structure), + AWSShapeMember(label: "AppVersion", required: false, type: .structure), + AWSShapeMember(label: "Channel", required: false, type: .structure), + AWSShapeMember(label: "Model", required: false, type: .structure) ] - public let segmentResponse: SegmentResponse + /// The device make criteria for the segment. + public let make: SetDimension? + /// The device platform criteria for the segment. + public let platform: SetDimension? + /// The device type criteria for the segment. + public let deviceType: SetDimension? + /// The app version criteria for the segment. + public let appVersion: SetDimension? + /// The channel criteria for the segment. + public let channel: SetDimension? + /// The device model criteria for the segment. + public let model: SetDimension? - public init(segmentResponse: SegmentResponse) { - self.segmentResponse = segmentResponse + public init(make: SetDimension? = nil, platform: SetDimension? = nil, deviceType: SetDimension? = nil, appVersion: SetDimension? = nil, channel: SetDimension? = nil, model: SetDimension? = nil) { + self.make = make + self.platform = platform + self.deviceType = deviceType + self.appVersion = appVersion + self.channel = channel + self.model = model } private enum CodingKeys: String, CodingKey { - case segmentResponse = "SegmentResponse" + case make = "Make" + case platform = "Platform" + case deviceType = "DeviceType" + case appVersion = "AppVersion" + case channel = "Channel" + case model = "Model" } } - public struct PutEventStreamRequest: AWSShape { + public struct DeleteEventStreamResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "WriteEventStream" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), - AWSShapeMember(label: "WriteEventStream", required: true, type: .structure) + public static let payloadPath: String? = "EventStream" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventStream", required: true, type: .structure) ] - /// Application Id. - public let applicationId: String - /// Write event stream wrapper. - public let writeEventStream: WriteEventStream + public let eventStream: EventStream - public init(applicationId: String, writeEventStream: WriteEventStream) { - self.applicationId = applicationId - self.writeEventStream = writeEventStream + public init(eventStream: EventStream) { + self.eventStream = eventStream } private enum CodingKeys: String, CodingKey { - case applicationId = "application-id" - case writeEventStream = "WriteEventStream" + case eventStream = "EventStream" } } - public struct GetCampaignsResponse: AWSShape { - /// The key for the payload - public static let payloadPath: String? = "CampaignsResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CampaignsResponse", required: true, type: .structure) + public struct EmailChannelResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Platform", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "CreationDate", required: false, type: .string), + AWSShapeMember(label: "IsArchived", required: false, type: .boolean), + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "FromAddress", required: false, type: .string), + AWSShapeMember(label: "HasCredential", required: false, type: .boolean), + AWSShapeMember(label: "Version", required: false, type: .integer), + AWSShapeMember(label: "Identity", required: false, type: .string), + AWSShapeMember(label: "LastModifiedDate", required: false, type: .string), + AWSShapeMember(label: "ApplicationId", required: false, type: .string), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "LastModifiedBy", required: false, type: .string) ] - public let campaignsResponse: CampaignsResponse + /// Platform type. Will be "EMAIL" + public let platform: String? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + /// The date that the settings were last updated in ISO 8601 format. + public let creationDate: String? + /// Is this channel archived + public let isArchived: Bool? + /// Channel ID. Not used, only for backwards compatibility. + public let id: String? + /// The email address used to send emails from. + public let fromAddress: String? + /// If the channel is registered with a credential for authentication. + public let hasCredential: Bool? + /// Version of channel + public let version: Int32? + /// The ARN of an identity verified with SES. + public let identity: String? + /// Last date this was updated + public let lastModifiedDate: String? + /// The unique ID of the application to which the email channel belongs. + public let applicationId: String? + /// The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service + public let roleArn: String? + /// Who last updated this entry + public let lastModifiedBy: String? - public init(campaignsResponse: CampaignsResponse) { - self.campaignsResponse = campaignsResponse + public init(platform: String? = nil, enabled: Bool? = nil, creationDate: String? = nil, isArchived: Bool? = nil, id: String? = nil, fromAddress: String? = nil, hasCredential: Bool? = nil, version: Int32? = nil, identity: String? = nil, lastModifiedDate: String? = nil, applicationId: String? = nil, roleArn: String? = nil, lastModifiedBy: String? = nil) { + self.platform = platform + self.enabled = enabled + self.creationDate = creationDate + self.isArchived = isArchived + self.id = id + self.fromAddress = fromAddress + self.hasCredential = hasCredential + self.version = version + self.identity = identity + self.lastModifiedDate = lastModifiedDate + self.applicationId = applicationId + self.roleArn = roleArn + self.lastModifiedBy = lastModifiedBy } private enum CodingKeys: String, CodingKey { - case campaignsResponse = "CampaignsResponse" + case platform = "Platform" + case enabled = "Enabled" + case creationDate = "CreationDate" + case isArchived = "IsArchived" + case id = "Id" + case fromAddress = "FromAddress" + case hasCredential = "HasCredential" + case version = "Version" + case identity = "Identity" + case lastModifiedDate = "LastModifiedDate" + case applicationId = "ApplicationId" + case roleArn = "RoleArn" + case lastModifiedBy = "LastModifiedBy" } } - public struct GetSegmentVersionResponse: AWSShape { + public struct CreateSegmentResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "SegmentResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SegmentResponse", required: true, type: .structure) ] public let segmentResponse: SegmentResponse @@ -3636,127 +5169,96 @@ extension Pinpoint { } } - public struct GetEndpointRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EndpointId", location: .uri(locationName: "endpoint-id"), required: true, type: .string), + public struct UpdateApnsChannelRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "APNSChannelRequest" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSChannelRequest", required: true, type: .structure), AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - public let endpointId: String + public let aPNSChannelRequest: APNSChannelRequest public let applicationId: String - public init(endpointId: String, applicationId: String) { - self.endpointId = endpointId + public init(aPNSChannelRequest: APNSChannelRequest, applicationId: String) { + self.aPNSChannelRequest = aPNSChannelRequest self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case endpointId = "endpoint-id" + case aPNSChannelRequest = "APNSChannelRequest" case applicationId = "application-id" } } - public struct APNSSandboxChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Certificate", required: false, type: .string), - AWSShapeMember(label: "Enabled", required: false, type: .boolean), - AWSShapeMember(label: "PrivateKey", required: false, type: .string) - ] - /// The distribution certificate from Apple. - public let certificate: String? - /// If the channel is enabled for sending messages. - public let enabled: Bool? - /// The certificate private key. - public let privateKey: String? - - public init(certificate: String? = nil, enabled: Bool? = nil, privateKey: String? = nil) { - self.certificate = certificate - self.enabled = enabled - self.privateKey = privateKey - } - - private enum CodingKeys: String, CodingKey { - case certificate = "Certificate" - case enabled = "Enabled" - case privateKey = "PrivateKey" - } - } - - public struct GetCampaignVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct UpdateCampaignRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "WriteCampaignRequest" + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), AWSShapeMember(label: "CampaignId", location: .uri(locationName: "campaign-id"), required: true, type: .string), - AWSShapeMember(label: "Version", location: .uri(locationName: "version"), required: true, type: .string) + AWSShapeMember(label: "WriteCampaignRequest", required: true, type: .structure) ] public let applicationId: String public let campaignId: String - public let version: String + public let writeCampaignRequest: WriteCampaignRequest - public init(applicationId: String, campaignId: String, version: String) { + public init(applicationId: String, campaignId: String, writeCampaignRequest: WriteCampaignRequest) { self.applicationId = applicationId self.campaignId = campaignId - self.version = version + self.writeCampaignRequest = writeCampaignRequest } private enum CodingKeys: String, CodingKey { case applicationId = "application-id" case campaignId = "campaign-id" - case version = "version" - } - } - - public struct DeleteEmailChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) - ] - public let applicationId: String - - public init(applicationId: String) { - self.applicationId = applicationId - } - - private enum CodingKeys: String, CodingKey { - case applicationId = "application-id" + case writeCampaignRequest = "WriteCampaignRequest" } } - public struct UpdateCampaignResponse: AWSShape { + public struct DeleteSegmentResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "CampaignResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CampaignResponse", required: true, type: .structure) + public static let payloadPath: String? = "SegmentResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SegmentResponse", required: true, type: .structure) ] - public let campaignResponse: CampaignResponse + public let segmentResponse: SegmentResponse - public init(campaignResponse: CampaignResponse) { - self.campaignResponse = campaignResponse + public init(segmentResponse: SegmentResponse) { + self.segmentResponse = segmentResponse } private enum CodingKeys: String, CodingKey { - case campaignResponse = "CampaignResponse" + case segmentResponse = "SegmentResponse" } } - public struct DeleteEmailChannelResponse: AWSShape { + public enum MessageType: String, CustomStringConvertible, Codable { + case transactional = "TRANSACTIONAL" + case promotional = "PROMOTIONAL" + public var description: String { return self.rawValue } + } + + public struct GetSegmentsResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "EmailChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EmailChannelResponse", required: true, type: .structure) + public static let payloadPath: String? = "SegmentsResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SegmentsResponse", required: true, type: .structure) ] - public let emailChannelResponse: EmailChannelResponse + public let segmentsResponse: SegmentsResponse - public init(emailChannelResponse: EmailChannelResponse) { - self.emailChannelResponse = emailChannelResponse + public init(segmentsResponse: SegmentsResponse) { + self.segmentsResponse = segmentsResponse } private enum CodingKeys: String, CodingKey { - case emailChannelResponse = "EmailChannelResponse" + case segmentsResponse = "SegmentsResponse" } } - public struct UpdateSegmentResponse: AWSShape { + public struct GetSegmentVersionResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "SegmentResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SegmentResponse", required: true, type: .structure) ] public let segmentResponse: SegmentResponse @@ -3770,24 +5272,59 @@ extension Pinpoint { } } - public struct SegmentBehaviors: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Recency", required: false, type: .structure) - ] - /// The recency of use. - public let recency: RecencyDimension? - - public init(recency: RecencyDimension? = nil) { - self.recency = recency + public struct APNSSandboxChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TeamId", required: false, type: .string), + AWSShapeMember(label: "DefaultAuthenticationMethod", required: false, type: .string), + AWSShapeMember(label: "TokenKeyId", required: false, type: .string), + AWSShapeMember(label: "TokenKey", required: false, type: .string), + AWSShapeMember(label: "Certificate", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "PrivateKey", required: false, type: .string), + AWSShapeMember(label: "BundleId", required: false, type: .string) + ] + /// The team id used for APNs Tokens. + public let teamId: String? + /// The default authentication method used for APNs. + public let defaultAuthenticationMethod: String? + /// The token key used for APNs Tokens. + public let tokenKeyId: String? + /// The token key used for APNs Tokens. + public let tokenKey: String? + /// The distribution certificate from Apple. + public let certificate: String? + /// If the channel is enabled for sending messages. + public let enabled: Bool? + /// The certificate private key. + public let privateKey: String? + /// The bundle id used for APNs Tokens. + public let bundleId: String? + + public init(teamId: String? = nil, defaultAuthenticationMethod: String? = nil, tokenKeyId: String? = nil, tokenKey: String? = nil, certificate: String? = nil, enabled: Bool? = nil, privateKey: String? = nil, bundleId: String? = nil) { + self.teamId = teamId + self.defaultAuthenticationMethod = defaultAuthenticationMethod + self.tokenKeyId = tokenKeyId + self.tokenKey = tokenKey + self.certificate = certificate + self.enabled = enabled + self.privateKey = privateKey + self.bundleId = bundleId } private enum CodingKeys: String, CodingKey { - case recency = "Recency" + case teamId = "TeamId" + case defaultAuthenticationMethod = "DefaultAuthenticationMethod" + case tokenKeyId = "TokenKeyId" + case tokenKey = "TokenKey" + case certificate = "Certificate" + case enabled = "Enabled" + case privateKey = "PrivateKey" + case bundleId = "BundleId" } } - public struct GetEmailChannelRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DeleteEmailChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] public let applicationId: String @@ -3801,25 +5338,25 @@ extension Pinpoint { } } - public struct GetApnsSandboxChannelResponse: AWSShape { + public struct DeleteEmailChannelResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "APNSSandboxChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "APNSSandboxChannelResponse", required: true, type: .structure) + public static let payloadPath: String? = "EmailChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EmailChannelResponse", required: true, type: .structure) ] - public let aPNSSandboxChannelResponse: APNSSandboxChannelResponse + public let emailChannelResponse: EmailChannelResponse - public init(aPNSSandboxChannelResponse: APNSSandboxChannelResponse) { - self.aPNSSandboxChannelResponse = aPNSSandboxChannelResponse + public init(emailChannelResponse: EmailChannelResponse) { + self.emailChannelResponse = emailChannelResponse } private enum CodingKeys: String, CodingKey { - case aPNSSandboxChannelResponse = "APNSSandboxChannelResponse" + case emailChannelResponse = "EmailChannelResponse" } } public struct MessageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StatusCode", required: false, type: .integer), AWSShapeMember(label: "StatusMessage", required: false, type: .string), AWSShapeMember(label: "UpdatedToken", required: false, type: .string), @@ -3849,61 +5386,40 @@ extension Pinpoint { } } - public struct CampaignState: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CampaignStatus", required: false, type: .enum) + public struct GetEmailChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - /// The status of the campaign, or the status of a treatment that belongs to an A/B test campaign. - /// Valid values: SCHEDULED, EXECUTING, PENDING_NEXT_RUN, COMPLETED, PAUSED - public let campaignStatus: CampaignStatus? + public let applicationId: String - public init(campaignStatus: CampaignStatus? = nil) { - self.campaignStatus = campaignStatus + public init(applicationId: String) { + self.applicationId = applicationId } private enum CodingKeys: String, CodingKey { - case campaignStatus = "CampaignStatus" + case applicationId = "application-id" } } - public struct DeleteApnsChannelResponse: AWSShape { + public struct GetApnsSandboxChannelResponse: AWSShape { /// The key for the payload - public static let payloadPath: String? = "APNSChannelResponse" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "APNSChannelResponse", required: true, type: .structure) - ] - public let aPNSChannelResponse: APNSChannelResponse - - public init(aPNSChannelResponse: APNSChannelResponse) { - self.aPNSChannelResponse = aPNSChannelResponse - } - - private enum CodingKeys: String, CodingKey { - case aPNSChannelResponse = "APNSChannelResponse" - } - } - - public struct DeleteSegmentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SegmentId", location: .uri(locationName: "segment-id"), required: true, type: .string), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + public static let payloadPath: String? = "APNSSandboxChannelResponse" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "APNSSandboxChannelResponse", required: true, type: .structure) ] - public let segmentId: String - public let applicationId: String + public let aPNSSandboxChannelResponse: APNSSandboxChannelResponse - public init(segmentId: String, applicationId: String) { - self.segmentId = segmentId - self.applicationId = applicationId + public init(aPNSSandboxChannelResponse: APNSSandboxChannelResponse) { + self.aPNSSandboxChannelResponse = aPNSSandboxChannelResponse } private enum CodingKeys: String, CodingKey { - case segmentId = "segment-id" - case applicationId = "application-id" + case aPNSSandboxChannelResponse = "APNSSandboxChannelResponse" } } public struct ImportJobsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Item", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -3923,31 +5439,23 @@ extension Pinpoint { } } - public struct GetImportJobsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PageSize", location: .querystring(locationName: "page-size"), required: false, type: .string), - AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string), - AWSShapeMember(label: "Token", location: .querystring(locationName: "token"), required: false, type: .string) + public struct DeleteAppRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) ] - public let pageSize: String? public let applicationId: String - public let token: String? - public init(pageSize: String? = nil, applicationId: String, token: String? = nil) { - self.pageSize = pageSize + public init(applicationId: String) { self.applicationId = applicationId - self.token = token } private enum CodingKeys: String, CodingKey { - case pageSize = "page-size" case applicationId = "application-id" - case token = "token" } } public struct CampaignSmsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Body", required: false, type: .string), AWSShapeMember(label: "SenderId", required: false, type: .string), AWSShapeMember(label: "MessageType", required: false, type: .enum) @@ -3973,125 +5481,94 @@ extension Pinpoint { } public struct DirectMessageConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GCMMessage", required: false, type: .structure), AWSShapeMember(label: "SMSMessage", required: false, type: .structure), - AWSShapeMember(label: "DefaultPushNotificationMessage", required: false, type: .structure), AWSShapeMember(label: "APNSMessage", required: false, type: .structure), - AWSShapeMember(label: "DefaultMessage", required: false, type: .structure) + AWSShapeMember(label: "ADMMessage", required: false, type: .structure), + AWSShapeMember(label: "DefaultMessage", required: false, type: .structure), + AWSShapeMember(label: "BaiduMessage", required: false, type: .structure), + AWSShapeMember(label: "DefaultPushNotificationMessage", required: false, type: .structure) ] /// The message to GCM channels. Overrides the default push notification message. public let gCMMessage: GCMMessage? /// The message to SMS channels. Overrides the default message. public let sMSMessage: SMSMessage? - /// The default push notification message for all push channels. - public let defaultPushNotificationMessage: DefaultPushNotificationMessage? /// The message to APNS channels. Overrides the default push notification message. public let aPNSMessage: APNSMessage? + /// The message to ADM channels. Overrides the default push notification message. + public let aDMMessage: ADMMessage? /// The default message for all channels. public let defaultMessage: DefaultMessage? + /// The message to Baidu GCM channels. Overrides the default push notification message. + public let baiduMessage: BaiduMessage? + /// The default push notification message for all push channels. + public let defaultPushNotificationMessage: DefaultPushNotificationMessage? - public init(gCMMessage: GCMMessage? = nil, sMSMessage: SMSMessage? = nil, defaultPushNotificationMessage: DefaultPushNotificationMessage? = nil, aPNSMessage: APNSMessage? = nil, defaultMessage: DefaultMessage? = nil) { + public init(gCMMessage: GCMMessage? = nil, sMSMessage: SMSMessage? = nil, aPNSMessage: APNSMessage? = nil, aDMMessage: ADMMessage? = nil, defaultMessage: DefaultMessage? = nil, baiduMessage: BaiduMessage? = nil, defaultPushNotificationMessage: DefaultPushNotificationMessage? = nil) { self.gCMMessage = gCMMessage self.sMSMessage = sMSMessage - self.defaultPushNotificationMessage = defaultPushNotificationMessage self.aPNSMessage = aPNSMessage + self.aDMMessage = aDMMessage self.defaultMessage = defaultMessage + self.baiduMessage = baiduMessage + self.defaultPushNotificationMessage = defaultPushNotificationMessage } private enum CodingKeys: String, CodingKey { case gCMMessage = "GCMMessage" case sMSMessage = "SMSMessage" - case defaultPushNotificationMessage = "DefaultPushNotificationMessage" case aPNSMessage = "APNSMessage" + case aDMMessage = "ADMMessage" case defaultMessage = "DefaultMessage" - } - } - - public struct EndpointDemographic: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Locale", required: false, type: .string), - AWSShapeMember(label: "Platform", required: false, type: .string), - AWSShapeMember(label: "Timezone", required: false, type: .string), - AWSShapeMember(label: "PlatformVersion", required: false, type: .string), - AWSShapeMember(label: "Make", required: false, type: .string), - AWSShapeMember(label: "AppVersion", required: false, type: .string), - AWSShapeMember(label: "Model", required: false, type: .string), - AWSShapeMember(label: "ModelVersion", required: false, type: .string) - ] - /// The endpoint locale in the following format: The ISO 639-1 alpha-2 code, followed by an underscore, followed by an ISO 3166-1 alpha-2 value. - public let locale: String? - /// The endpoint platform, such as ios or android. - public let platform: String? - /// The timezone of the endpoint. Specified as a tz database value, such as Americas/Los_Angeles. - public let timezone: String? - /// The endpoint platform version. - public let platformVersion: String? - /// The endpoint make, such as such as Apple or Samsung. - public let make: String? - /// The version of the application associated with the endpoint. - public let appVersion: String? - /// The endpoint model, such as iPhone. - public let model: String? - /// The endpoint model version. - public let modelVersion: String? - - public init(locale: String? = nil, platform: String? = nil, timezone: String? = nil, platformVersion: String? = nil, make: String? = nil, appVersion: String? = nil, model: String? = nil, modelVersion: String? = nil) { - self.locale = locale - self.platform = platform - self.timezone = timezone - self.platformVersion = platformVersion - self.make = make - self.appVersion = appVersion - self.model = model - self.modelVersion = modelVersion - } - - private enum CodingKeys: String, CodingKey { - case locale = "Locale" - case platform = "Platform" - case timezone = "Timezone" - case platformVersion = "PlatformVersion" - case make = "Make" - case appVersion = "AppVersion" - case model = "Model" - case modelVersion = "ModelVersion" + case baiduMessage = "BaiduMessage" + case defaultPushNotificationMessage = "DefaultPushNotificationMessage" } } public struct MessageConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SMSMessage", required: false, type: .structure), - AWSShapeMember(label: "EmailMessage", required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GCMMessage", required: false, type: .structure), + AWSShapeMember(label: "SMSMessage", required: false, type: .structure), AWSShapeMember(label: "APNSMessage", required: false, type: .structure), - AWSShapeMember(label: "DefaultMessage", required: false, type: .structure) + AWSShapeMember(label: "ADMMessage", required: false, type: .structure), + AWSShapeMember(label: "DefaultMessage", required: false, type: .structure), + AWSShapeMember(label: "EmailMessage", required: false, type: .structure), + AWSShapeMember(label: "BaiduMessage", required: false, type: .structure) ] - /// The SMS message configuration. - public let sMSMessage: CampaignSmsMessage? - /// The email message configuration. - public let emailMessage: CampaignEmailMessage? /// The message that the campaign delivers to GCM channels. Overrides the default message. public let gCMMessage: Message? + /// The SMS message configuration. + public let sMSMessage: CampaignSmsMessage? /// The message that the campaign delivers to APNS channels. Overrides the default message. public let aPNSMessage: Message? + /// The message that the campaign delivers to ADM channels. Overrides the default message. + public let aDMMessage: Message? /// The default message for all channels. public let defaultMessage: Message? + /// The email message configuration. + public let emailMessage: CampaignEmailMessage? + /// The message that the campaign delivers to Baidu channels. Overrides the default message. + public let baiduMessage: Message? - public init(sMSMessage: CampaignSmsMessage? = nil, emailMessage: CampaignEmailMessage? = nil, gCMMessage: Message? = nil, aPNSMessage: Message? = nil, defaultMessage: Message? = nil) { - self.sMSMessage = sMSMessage - self.emailMessage = emailMessage + public init(gCMMessage: Message? = nil, sMSMessage: CampaignSmsMessage? = nil, aPNSMessage: Message? = nil, aDMMessage: Message? = nil, defaultMessage: Message? = nil, emailMessage: CampaignEmailMessage? = nil, baiduMessage: Message? = nil) { self.gCMMessage = gCMMessage + self.sMSMessage = sMSMessage self.aPNSMessage = aPNSMessage + self.aDMMessage = aDMMessage self.defaultMessage = defaultMessage + self.emailMessage = emailMessage + self.baiduMessage = baiduMessage } private enum CodingKeys: String, CodingKey { - case sMSMessage = "SMSMessage" - case emailMessage = "EmailMessage" case gCMMessage = "GCMMessage" + case sMSMessage = "SMSMessage" case aPNSMessage = "APNSMessage" + case aDMMessage = "ADMMessage" case defaultMessage = "DefaultMessage" + case emailMessage = "EmailMessage" + case baiduMessage = "BaiduMessage" } } @@ -4102,11 +5579,12 @@ extension Pinpoint { } public struct GCMMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RestrictedPackageName", required: false, type: .string), AWSShapeMember(label: "IconReference", required: false, type: .string), AWSShapeMember(label: "CollapseKey", required: false, type: .string), AWSShapeMember(label: "Data", required: false, type: .map), + AWSShapeMember(label: "Priority", required: false, type: .string), AWSShapeMember(label: "Title", required: false, type: .string), AWSShapeMember(label: "ImageIconUrl", required: false, type: .string), AWSShapeMember(label: "SilentPush", required: false, type: .boolean), @@ -4115,8 +5593,9 @@ extension Pinpoint { AWSShapeMember(label: "Url", required: false, type: .string), AWSShapeMember(label: "RawContent", required: false, type: .string), AWSShapeMember(label: "Sound", required: false, type: .string), - AWSShapeMember(label: "ImageUrl", required: false, type: .string), + AWSShapeMember(label: "TimeToLive", required: false, type: .integer), AWSShapeMember(label: "Body", required: false, type: .string), + AWSShapeMember(label: "ImageUrl", required: false, type: .string), AWSShapeMember(label: "Substitutions", required: false, type: .map) ] /// This parameter specifies the package name of the application where the registration tokens must match in order to receive the message. @@ -4126,6 +5605,8 @@ extension Pinpoint { /// This parameter identifies a group of messages (e.g., with collapse_key: "Updates Available") that can be collapsed, so that only the last message gets sent when delivery can be resumed. This is intended to avoid sending too many of the same messages when the device comes back online or becomes active. public let collapseKey: String? public let data: [String: String]? + /// Is this a transaction priority message or lower priority. + public let priority: String? /// The message title that displays above the message on the user's device. public let title: String? /// The URL that points to an image used as the large icon to the notification content view. @@ -4142,17 +5623,20 @@ extension Pinpoint { public let rawContent: String? /// Indicates a sound to play when the device receives the notification. Supports default, or the filename of a sound resource bundled in the app. Android sound files must reside in /res/raw/ public let sound: String? - /// The URL that points to an image used in the push notification. - public let imageUrl: String? + /// This parameter specifies how long (in seconds) the message should be kept in GCM storage if the device is offline. The maximum time to live supported is 4 weeks, and the default value is 4 weeks. + public let timeToLive: Int32? /// The message body of the notification, the email body or the text message. public let body: String? + /// The URL that points to an image used in the push notification. + public let imageUrl: String? public let substitutions: [String: [String]]? - public init(restrictedPackageName: String? = nil, iconReference: String? = nil, collapseKey: String? = nil, data: [String: String]? = nil, title: String? = nil, imageIconUrl: String? = nil, silentPush: Bool? = nil, smallImageIconUrl: String? = nil, action: Action? = nil, url: String? = nil, rawContent: String? = nil, sound: String? = nil, imageUrl: String? = nil, body: String? = nil, substitutions: [String: [String]]? = nil) { + public init(restrictedPackageName: String? = nil, iconReference: String? = nil, collapseKey: String? = nil, data: [String: String]? = nil, priority: String? = nil, title: String? = nil, imageIconUrl: String? = nil, silentPush: Bool? = nil, smallImageIconUrl: String? = nil, action: Action? = nil, url: String? = nil, rawContent: String? = nil, sound: String? = nil, timeToLive: Int32? = nil, body: String? = nil, imageUrl: String? = nil, substitutions: [String: [String]]? = nil) { self.restrictedPackageName = restrictedPackageName self.iconReference = iconReference self.collapseKey = collapseKey self.data = data + self.priority = priority self.title = title self.imageIconUrl = imageIconUrl self.silentPush = silentPush @@ -4161,8 +5645,9 @@ extension Pinpoint { self.url = url self.rawContent = rawContent self.sound = sound - self.imageUrl = imageUrl + self.timeToLive = timeToLive self.body = body + self.imageUrl = imageUrl self.substitutions = substitutions } @@ -4171,6 +5656,7 @@ extension Pinpoint { case iconReference = "IconReference" case collapseKey = "CollapseKey" case data = "Data" + case priority = "Priority" case title = "Title" case imageIconUrl = "ImageIconUrl" case silentPush = "SilentPush" @@ -4179,8 +5665,9 @@ extension Pinpoint { case url = "Url" case rawContent = "RawContent" case sound = "Sound" - case imageUrl = "ImageUrl" + case timeToLive = "TimeToLive" case body = "Body" + case imageUrl = "ImageUrl" case substitutions = "Substitutions" } } @@ -4188,7 +5675,7 @@ extension Pinpoint { public struct DeleteApnsSandboxChannelResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "APNSSandboxChannelResponse" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "APNSSandboxChannelResponse", required: true, type: .structure) ] public let aPNSSandboxChannelResponse: APNSSandboxChannelResponse @@ -4202,8 +5689,49 @@ extension Pinpoint { } } + public struct SendUsersMessageResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Result", required: false, type: .map), + AWSShapeMember(label: "RequestId", required: false, type: .string), + AWSShapeMember(label: "ApplicationId", required: false, type: .string) + ] + /// A map containing of UserId to Map of EndpointId to Endpoint Message Result. + public let result: [String: [String: EndpointMessageResult]]? + /// Original request Id for which this message was delivered. + public let requestId: String? + /// Application id of the message. + public let applicationId: String? + + public init(result: [String: [String: EndpointMessageResult]]? = nil, requestId: String? = nil, applicationId: String? = nil) { + self.result = result + self.requestId = requestId + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case result = "Result" + case requestId = "RequestId" + case applicationId = "ApplicationId" + } + } + + public struct GetBaiduChannelRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "application-id"), required: true, type: .string) + ] + public let applicationId: String + + public init(applicationId: String) { + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "application-id" + } + } + public struct WriteSegmentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Dimensions", required: false, type: .structure) ] diff --git a/Sources/AWSSDKSwift/Services/polly/Polly_Shapes.swift b/Sources/AWSSDKSwift/Services/polly/Polly_Shapes.swift index 134adc8e071..bfb3583f146 100644 --- a/Sources/AWSSDKSwift/Services/polly/Polly_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/polly/Polly_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Polly { public struct Lexicon: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Content", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -27,7 +27,7 @@ extension Polly { } public struct DescribeVoicesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LanguageCode", location: .querystring(locationName: "LanguageCode"), required: false, type: .enum), AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string) ] @@ -66,6 +66,7 @@ extension Polly { case justin = "Justin" case kendra = "Kendra" case kimberly = "Kimberly" + case matthew = "Matthew" case salli = "Salli" case conchita = "Conchita" case enrique = "Enrique" @@ -96,6 +97,9 @@ extension Polly { case astrid = "Astrid" case filiz = "Filiz" case vicki = "Vicki" + case takumi = "Takumi" + case seoyeon = "Seoyeon" + case aditi = "Aditi" public var description: String { return self.rawValue } } @@ -114,6 +118,7 @@ extension Polly { case frFr = "fr-FR" case isIs = "is-IS" case itIt = "it-IT" + case koKr = "ko-KR" case jaJp = "ja-JP" case nbNo = "nb-NO" case nlNl = "nl-NL" @@ -136,7 +141,7 @@ extension Polly { public struct SynthesizeSpeechOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "AudioStream" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContentType", location: .header(locationName: "Content-Type"), required: false, type: .string), AWSShapeMember(label: "AudioStream", required: false, type: .blob), AWSShapeMember(label: "RequestCharacters", location: .header(locationName: "x-amzn-RequestCharacters"), required: false, type: .integer) @@ -162,7 +167,7 @@ extension Polly { } public struct PutLexiconInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Content", required: true, type: .string), AWSShapeMember(label: "Name", location: .uri(locationName: "LexiconName"), required: true, type: .string) ] @@ -183,7 +188,7 @@ extension Polly { } public struct GetLexiconOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Lexicon", required: false, type: .structure), AWSShapeMember(label: "LexiconAttributes", required: false, type: .structure) ] @@ -212,7 +217,7 @@ extension Polly { } public struct ListLexiconsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Lexicons", required: false, type: .list) ] @@ -233,7 +238,7 @@ extension Polly { } public struct GetLexiconInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", location: .uri(locationName: "LexiconName"), required: true, type: .string) ] /// Name of the lexicon. @@ -261,7 +266,7 @@ extension Polly { } public struct SynthesizeSpeechInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VoiceId", required: true, type: .enum), AWSShapeMember(label: "Text", required: true, type: .string), AWSShapeMember(label: "SampleRate", required: false, type: .string), @@ -307,7 +312,7 @@ extension Polly { } public struct DescribeVoicesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Voices", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -328,7 +333,7 @@ extension Polly { } public struct ListLexiconsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .querystring(locationName: "NextToken"), required: false, type: .string) ] /// An opaque pagination token returned from previous ListLexicons operation. If present, indicates where to continue the list of lexicons. @@ -344,7 +349,7 @@ extension Polly { } public struct LexiconAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LexiconArn", required: false, type: .string), AWSShapeMember(label: "LastModified", required: false, type: .timestamp), AWSShapeMember(label: "LexemesCount", required: false, type: .integer), @@ -385,7 +390,7 @@ extension Polly { } public struct LexiconDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Attributes", required: false, type: .structure) ] @@ -416,7 +421,7 @@ extension Polly { } public struct DeleteLexiconInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", location: .uri(locationName: "LexiconName"), required: true, type: .string) ] /// The name of the lexicon to delete. Must be an existing lexicon in the region. @@ -432,7 +437,7 @@ extension Polly { } public struct Voice: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LanguageName", required: false, type: .string), AWSShapeMember(label: "LanguageCode", required: false, type: .enum), AWSShapeMember(label: "Name", required: false, type: .string), diff --git a/Sources/AWSSDKSwift/Services/pricing/Pricing_API.swift b/Sources/AWSSDKSwift/Services/pricing/Pricing_API.swift new file mode 100644 index 00000000000..43f1f07c6a6 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/pricing/Pricing_API.swift @@ -0,0 +1,44 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +AWS Price List Service API (AWS Price List Service) is a centralized and convenient way to programmatically query Amazon Web Services for services, products, and pricing information. The AWS Price List Service uses standardized product attributes such as Location, Storage Class, and Operating System, and provides prices at the SKU level. You can use the AWS Price List Service to build cost control and scenario planning tools, reconcile billing data, forecast future spend for budgeting purposes, and provide cost benefit analysis that compare your internal workloads with AWS. Use GetServices without a service code to retrieve the service codes for all AWS services, then GetServices with a service code to retreive the attribute names for that service. After you have the service code and attribute names, you can use GetAttributeValues to see what values are available for an attribute. With the service code and an attribute name and value, you can use GetProducts to find specific products that you're interested in, such as an AmazonEC2 instance, with a Provisioned IOPS volumeType. Service Endpoint AWS Price List Service API provides the following two endpoints: https://api.pricing.us-east-1.amazonaws.com https://api.pricing.ap-south-1.amazonaws.com +*/ +public struct Pricing { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "AWSPriceListService", + service: "api.pricing", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-10-15", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [PricingError.self] + ) + } + + /// Returns the metadata for one service or a list of the metadata for all services. Use this without a service code to get the service codes for all services. Use it with a service code, such as AmazonEC2, to get information specific to that service, such as the attribute names available for that service. For example, some of the attribute names available for EC2 are volumeType, maxIopsVolume, operation, locationType, and instanceCapacity10xlarge. + public func describeServices(_ input: DescribeServicesRequest) throws -> DescribeServicesResponse { + return try client.send(operation: "DescribeServices", path: "/", httpMethod: "POST", input: input) + } + + /// Returns a list of attribute values. Attibutes are similar to the details in a Price List API offer file. For a list of available attributes, see Offer File Definitions in the AWS Billing and Cost Management User Guide. + public func getAttributeValues(_ input: GetAttributeValuesRequest) throws -> GetAttributeValuesResponse { + return try client.send(operation: "GetAttributeValues", path: "/", httpMethod: "POST", input: input) + } + + /// Returns a list of all products that match the filter criteria. + public func getProducts(_ input: GetProductsRequest) throws -> GetProductsResponse { + return try client.send(operation: "GetProducts", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/pricing/Pricing_Error.swift b/Sources/AWSSDKSwift/Services/pricing/Pricing_Error.swift new file mode 100644 index 00000000000..a26c9984622 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/pricing/Pricing_Error.swift @@ -0,0 +1,35 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Pricing +public enum PricingError: AWSErrorType { + case internalErrorException(message: String?) + case invalidParameterException(message: String?) + case notFoundException(message: String?) + case invalidNextTokenException(message: String?) + case expiredNextTokenException(message: String?) +} + +extension PricingError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "InternalErrorException": + self = .internalErrorException(message: message) + case "InvalidParameterException": + self = .invalidParameterException(message: message) + case "NotFoundException": + self = .notFoundException(message: message) + case "InvalidNextTokenException": + self = .invalidNextTokenException(message: message) + case "ExpiredNextTokenException": + self = .expiredNextTokenException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/pricing/Pricing_Shapes.swift b/Sources/AWSSDKSwift/Services/pricing/Pricing_Shapes.swift new file mode 100644 index 00000000000..656128dc537 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/pricing/Pricing_Shapes.swift @@ -0,0 +1,247 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Pricing { + + public struct GetAttributeValuesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "AttributeValues", required: false, type: .list) + ] + /// The pagination token that indicates the next set of results to retrieve. + public let nextToken: String? + /// The list of values for an attribute. For example, Throughput Optimized HDD and Provisioned IOPS are two available values for the AmazonEC2 volumeType. + public let attributeValues: [AttributeValue]? + + public init(nextToken: String? = nil, attributeValues: [AttributeValue]? = nil) { + self.nextToken = nextToken + self.attributeValues = attributeValues + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case attributeValues = "AttributeValues" + } + } + + public struct Service: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceCode", required: false, type: .string), + AWSShapeMember(label: "AttributeNames", required: false, type: .list) + ] + /// The code for the AWS service. + public let serviceCode: String? + /// The attributes that are available for this service. + public let attributeNames: [String]? + + public init(serviceCode: String? = nil, attributeNames: [String]? = nil) { + self.serviceCode = serviceCode + self.attributeNames = attributeNames + } + + private enum CodingKeys: String, CodingKey { + case serviceCode = "ServiceCode" + case attributeNames = "AttributeNames" + } + } + + public struct DescribeServicesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceCode", required: false, type: .string), + AWSShapeMember(label: "FormatVersion", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The code for the service whose information you want to retrieve, such as AmazonEC2. You can use the ServiceCode to filter the results in a GetProducts call. To retrieve a list of all services, leave this blank. + public let serviceCode: String? + /// The format version that you want the response to be in. Valid values are: aws_v1 + public let formatVersion: String? + /// The pagination token that indicates the next set of results that you want to retrieve. + public let nextToken: String? + /// The maximum number of results that you want returned in the response. + public let maxResults: Int32? + + public init(serviceCode: String? = nil, formatVersion: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.serviceCode = serviceCode + self.formatVersion = formatVersion + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case serviceCode = "ServiceCode" + case formatVersion = "FormatVersion" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct GetProductsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceCode", required: false, type: .string), + AWSShapeMember(label: "FormatVersion", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The code for the service whose products you want to retrieve. + public let serviceCode: String? + /// The format version that you want the response to be in. Valid values are: aws_v1 + public let formatVersion: String? + /// The list of filters that limit the returned products. only products that match all filters are returned. + public let filters: [Filter]? + /// The pagination token that indicates the next set of results that you want to retrieve. + public let nextToken: String? + /// The maximum number of results to return in the response. + public let maxResults: Int32? + + public init(serviceCode: String? = nil, formatVersion: String? = nil, filters: [Filter]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.serviceCode = serviceCode + self.formatVersion = formatVersion + self.filters = filters + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case serviceCode = "ServiceCode" + case formatVersion = "FormatVersion" + case filters = "Filters" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct GetAttributeValuesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceCode", required: true, type: .string), + AWSShapeMember(label: "AttributeName", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The service code for the service whose attributes you want to retrieve. For example, if you want the retrieve an EC2 attribute, use AmazonEC2. + public let serviceCode: String + /// The name of the attribute that you want to retrieve the values for, such as volumeType. + public let attributeName: String + /// The pagination token that indicates the next set of results that you want to retrieve. + public let nextToken: String? + /// The maximum number of results to return in response. + public let maxResults: Int32? + + public init(serviceCode: String, attributeName: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.serviceCode = serviceCode + self.attributeName = attributeName + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case serviceCode = "ServiceCode" + case attributeName = "AttributeName" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct GetProductsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FormatVersion", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "PriceList", required: false, type: .list) + ] + /// The format version of the response. For example, aws_v1. + public let formatVersion: String? + /// The pagination token that indicates the next set of results to retrieve. + public let nextToken: String? + /// The list of products that match your filters. The list contains both the product metadata and the price information. + public let priceList: [String]? + + public init(formatVersion: String? = nil, nextToken: String? = nil, priceList: [String]? = nil) { + self.formatVersion = formatVersion + self.nextToken = nextToken + self.priceList = priceList + } + + private enum CodingKeys: String, CodingKey { + case formatVersion = "FormatVersion" + case nextToken = "NextToken" + case priceList = "PriceList" + } + } + + public enum FilterType: String, CustomStringConvertible, Codable { + case termMatch = "TERM_MATCH" + public var description: String { return self.rawValue } + } + + public struct AttributeValue: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: false, type: .string) + ] + /// The specific value of an attributeName. + public let value: String? + + public init(value: String? = nil) { + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + } + } + + public struct Filter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Field", required: true, type: .string), + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "Value", required: true, type: .string) + ] + /// The product metadata field that you want to filter on. You can filter by just the service code to see all products for a specific service, filter by just the attribute name to see a specific attribute for multiple services, or use both a service code and an attribute name to retrieve only products that match both fields. Valid values include: ServiceCode, and all attribute names For example, you can filter by the AmazonEC2 service code and the volumeType attribute name to get the prices for only Amazon EC2 volumes. + public let field: String + /// The type of filter that you want to use. Valid values are: TERM_MATCH. TERM_MATCH returns only products that match both the given filter field and the given value. + public let `type`: FilterType + /// The service code or attribute value that you want to filter by. If you are filtering by service code this is the actual service code, such as AmazonEC2. If you are filtering by attribute name, this is the attribute value that you want the returned products to match, such as a Provisioned IOPS volume. + public let value: String + + public init(field: String, type: FilterType, value: String) { + self.field = field + self.`type` = `type` + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case field = "Field" + case `type` = "Type" + case value = "Value" + } + } + + public struct DescribeServicesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Services", required: false, type: .list), + AWSShapeMember(label: "FormatVersion", required: false, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The service metadata for the service or services in the response. + public let services: [Service]? + /// The format version of the response. For example, aws_v1. + public let formatVersion: String? + /// The pagination token for the next set of retreivable results. + public let nextToken: String? + + public init(services: [Service]? = nil, formatVersion: String? = nil, nextToken: String? = nil) { + self.services = services + self.formatVersion = formatVersion + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case services = "Services" + case formatVersion = "FormatVersion" + case nextToken = "NextToken" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/rds/Rds_API.swift b/Sources/AWSSDKSwift/Services/rds/Rds_API.swift index e43218c5d21..b866115c89f 100644 --- a/Sources/AWSSDKSwift/Services/rds/Rds_API.swift +++ b/Sources/AWSSDKSwift/Services/rds/Rds_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon Relational Database Service Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizable capacity for an industry-standard relational database and manages common database administration tasks, freeing up developers to focus on what makes their applications and businesses unique. Amazon RDS gives you access to the capabilities of a MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, Oracle, or Amazon Aurora database server. These capabilities mean that the code, applications, and tools you already use today with your existing databases work with Amazon RDS without modification. Amazon RDS automatically backs up your database and maintains the database software that powers your DB instance. Amazon RDS is flexible: you can scale your database instance's compute resources and storage capacity to meet your application's demand. As with all Amazon Web Services, there are no up-front investments, and you pay only for the resources you use. This interface reference for Amazon RDS contains documentation for a programming or command line interface you can use to manage Amazon RDS. Note that Amazon RDS is asynchronous, which means that some interfaces might require techniques such as polling or callback functions to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a command is applied immediately, on the next instance reboot, or during the maintenance window. The reference structure is as follows, and we list following some related topics from the user guide. Amazon RDS API Reference For the alphabetical list of API actions, see API Actions. For the alphabetical list of data types, see Data Types. For a list of common query parameters, see Common Parameters. For descriptions of the error codes, see Common Errors. Amazon RDS User Guide For a summary of the Amazon RDS interfaces, see Available RDS Interfaces. For more information about how to use the Query API, see Using the Query API. +Amazon Relational Database Service Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizable capacity for an industry-standard relational database and manages common database administration tasks, freeing up developers to focus on what makes their applications and businesses unique. Amazon RDS gives you access to the capabilities of a MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, Oracle, or Amazon Aurora database server. These capabilities mean that the code, applications, and tools you already use today with your existing databases work with Amazon RDS without modification. Amazon RDS automatically backs up your database and maintains the database software that powers your DB instance. Amazon RDS is flexible: you can scale your DB instance's compute resources and storage capacity to meet your application's demand. As with all Amazon Web Services, there are no up-front investments, and you pay only for the resources you use. This interface reference for Amazon RDS contains documentation for a programming or command line interface you can use to manage Amazon RDS. Note that Amazon RDS is asynchronous, which means that some interfaces might require techniques such as polling or callback functions to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a command is applied immediately, on the next instance reboot, or during the maintenance window. The reference structure is as follows, and we list following some related topics from the user guide. Amazon RDS API Reference For the alphabetical list of API actions, see API Actions. For the alphabetical list of data types, see Data Types. For a list of common query parameters, see Common Parameters. For descriptions of the error codes, see Common Errors. Amazon RDS User Guide For a summary of the Amazon RDS interfaces, see Available RDS Interfaces. For more information about how to use the Query API, see Using the Query API. */ public struct Rds { @@ -119,7 +119,7 @@ public struct Rds { return try client.send(operation: "DescribeOptionGroups", path: "/", httpMethod: "POST", input: input) } - /// Modifies an existing RDS event notification subscription. Note that you cannot modify the source identifiers using this call; to change source identifiers for a subscription, use the AddSourceIdentifierToSubscription and RemoveSourceIdentifierFromSubscription calls. You can see a list of the event categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action. + /// Modifies an existing RDS event notification subscription. Note that you can't modify the source identifiers using this call; to change source identifiers for a subscription, use the AddSourceIdentifierToSubscription and RemoveSourceIdentifierFromSubscription calls. You can see a list of the event categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action. public func modifyEventSubscription(_ input: ModifyEventSubscriptionMessage) throws -> ModifyEventSubscriptionResult { return try client.send(operation: "ModifyEventSubscription", path: "/", httpMethod: "POST", input: input) } @@ -144,7 +144,7 @@ public struct Rds { return try client.send(operation: "RestoreDBClusterFromS3", path: "/", httpMethod: "POST", input: input) } - /// Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the region. + /// Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the AWS Region. public func createDBSubnetGroup(_ input: CreateDBSubnetGroupMessage) throws -> CreateDBSubnetGroupResult { return try client.send(operation: "CreateDBSubnetGroup", path: "/", httpMethod: "POST", input: input) } @@ -194,7 +194,7 @@ public struct Rds { return try client.send(operation: "ModifyDBCluster", path: "/", httpMethod: "POST", input: input) } - /// Modifies the parameters of a DB parameter group to the engine/system default value. To reset specific parameters, provide a list of the following: ParameterName and ApplyMethod. To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request. + /// Modifies the parameters of a DB parameter group to the engine/system default value. To reset specific parameters, provide a list of the following: ParameterName and ApplyMethod. To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request. public func resetDBParameterGroup(_ input: ResetDBParameterGroupMessage) throws -> DBParameterGroupNameMessage { return try client.send(operation: "ResetDBParameterGroup", path: "/", httpMethod: "POST", input: input) } @@ -204,12 +204,12 @@ public struct Rds { return try client.send(operation: "DescribeEventCategories", path: "/", httpMethod: "POST", input: input) } - /// Rebooting a DB instance restarts the database engine service. A reboot also applies to the DB instance any modifications to the associated DB parameter group that were pending. Rebooting a DB instance results in a momentary outage of the instance, during which the DB instance status is set to rebooting. If the RDS instance is configured for MultiAZ, it is possible that the reboot will be conducted through a failover. An Amazon RDS event is created when the reboot is completed. If your DB instance is deployed in multiple Availability Zones, you can force a failover from one AZ to the other during the reboot. You might force a failover to test the availability of your DB instance deployment or to restore operations to the original AZ after a failover occurs. The time required to reboot is a function of the specific database engine's crash recovery process. To improve the reboot time, we recommend that you reduce database activities as much as possible during the reboot process to reduce rollback activity for in-transit transactions. + /// Rebooting a DB instance restarts the database engine service. A reboot also applies to the DB instance any modifications to the associated DB parameter group that were pending. Rebooting a DB instance results in a momentary outage of the instance, during which the DB instance status is set to rebooting. If the RDS instance is configured for MultiAZ, it is possible that the reboot is conducted through a failover. An Amazon RDS event is created when the reboot is completed. If your DB instance is deployed in multiple Availability Zones, you can force a failover from one AZ to the other during the reboot. You might force a failover to test the availability of your DB instance deployment or to restore operations to the original AZ after a failover occurs. The time required to reboot is a function of the specific database engine's crash recovery process. To improve the reboot time, we recommend that you reduce database activities as much as possible during the reboot process to reduce rollback activity for in-transit transactions. public func rebootDBInstance(_ input: RebootDBInstanceMessage) throws -> RebootDBInstanceResult { return try client.send(operation: "RebootDBInstance", path: "/", httpMethod: "POST", input: input) } - /// Creates a DB instance for a DB instance running MySQL, MariaDB, or PostgreSQL that acts as a Read Replica of a source DB instance. Amazon Aurora does not support this action. You must call the CreateDBInstance action to create a DB instance for an Aurora DB cluster. All Read Replica DB instances are created as Single-AZ deployments with backups disabled. All other DB instance attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance, except as specified below. The source DB instance must have backup retention enabled. You can create an encrypted Read Replica in a different AWS Region than the source DB instance. In that case, the region where you call the CreateDBInstanceReadReplica action is the destination region of the encrypted Read Replica. The source DB instance must be encrypted. To create an encrypted Read Replica in another AWS Region, you must provide the following values: KmsKeyId - The AWS Key Management System (KMS) key identifier for the key to use to encrypt the Read Replica in the destination region. PreSignedUrl - A URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API action in the AWS region that contains the source DB instance. The PreSignedUrl parameter must be used when encrypting a Read Replica from another AWS region. The presigned URL must be a valid request for the CreateDBInstanceReadReplica API action that can be executed in the source region that contains the encrypted DB instance. The presigned URL request must contain the following parameter values: DestinationRegion - The AWS Region that the Read Replica is created in. This region is the same one where the CreateDBInstanceReadReplica action is called that contains this presigned URL. For example, if you create an encrypted Read Replica in the us-east-1 region, and the source DB instance is in the west-2 region, then you call the CreateDBInstanceReadReplica action in the us-east-1 region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica action in the us-west-2 region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 region. KmsKeyId - The KMS key identifier for the key to use to encrypt the Read Replica in the destination region. This is the same identifier for both the CreateDBInstanceReadReplica action that is called in the destination region, and the action contained in the presigned URL. SourceDBInstanceIdentifier - The DB instance identifier for the encrypted Read Replica to be created. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you create an encrypted Read Replica from a DB instance in the us-west-2 region, then your SourceDBInstanceIdentifier would look like this example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-instance-20161115. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. DBInstanceIdentifier - The identifier for the encrypted Read Replica in the destination region. SourceDBInstanceIdentifier - The DB instance identifier for the encrypted Read Replica. This identifier must be in the ARN format for the source region and is the same value as the SourceDBInstanceIdentifier in the presigned URL. + /// Creates a new DB instance that acts as a Read Replica for an existing source DB instance. You can create a Read Replica for a DB instance running MySQL, MariaDB, or PostgreSQL. Amazon Aurora does not support this action. You must call the CreateDBInstance action to create a DB instance for an Aurora DB cluster. All Read Replica DB instances are created as Single-AZ deployments with backups disabled. All other DB instance attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance, except as specified below. The source DB instance must have backup retention enabled. For more information, see Working with PostgreSQL, MySQL, and MariaDB Read Replicas. public func createDBInstanceReadReplica(_ input: CreateDBInstanceReadReplicaMessage) throws -> CreateDBInstanceReadReplicaResult { return try client.send(operation: "CreateDBInstanceReadReplica", path: "/", httpMethod: "POST", input: input) } @@ -219,12 +219,12 @@ public struct Rds { return try client.send(operation: "DescribeDBLogFiles", path: "/", httpMethod: "POST", input: input) } - /// Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. + /// Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. To learn what modifications you can make to your DB instance, call DescribeValidDBInstanceModifications before you call ModifyDBInstance. public func modifyDBInstance(_ input: ModifyDBInstanceMessage) throws -> ModifyDBInstanceResult { return try client.send(operation: "ModifyDBInstance", path: "/", httpMethod: "POST", input: input) } - /// Copies the specified DB snapshot. The source DB snapshot must be in the "available" state. You can copy a snapshot from one AWS region to another. In that case, the region where you call the CopyDBSnapshot action is the destination region for the DB snapshot copy. You cannot copy an encrypted, shared DB snapshot from one AWS region to another. For more information about copying snapshots, see Copying a DB Snapshot in the Amazon RDS User Guide. + /// Copies the specified DB snapshot. The source DB snapshot must be in the "available" state. You can copy a snapshot from one AWS Region to another. In that case, the AWS Region where you call the CopyDBSnapshot action is the destination AWS Region for the DB snapshot copy. You can't copy an encrypted, shared DB snapshot from one AWS Region to another. For more information about copying snapshots, see Copying a DB Snapshot in the Amazon RDS User Guide. public func copyDBSnapshot(_ input: CopyDBSnapshotMessage) throws -> CopyDBSnapshotResult { return try client.send(operation: "CopyDBSnapshot", path: "/", httpMethod: "POST", input: input) } @@ -249,9 +249,9 @@ public struct Rds { return try client.send(operation: "RestoreDBInstanceToPointInTime", path: "/", httpMethod: "POST", input: input) } - /// Returns information about DB snapshots. This API action supports pagination. - public func describeDBSnapshots(_ input: DescribeDBSnapshotsMessage) throws -> DBSnapshotMessage { - return try client.send(operation: "DescribeDBSnapshots", path: "/", httpMethod: "POST", input: input) + /// You can call DescribeValidDBInstanceModifications to learn what modifications you can make to your DB instance. You can use this information when you call ModifyDBInstance. + public func describeValidDBInstanceModifications(_ input: DescribeValidDBInstanceModificationsMessage) throws -> DescribeValidDBInstanceModificationsResult { + return try client.send(operation: "DescribeValidDBInstanceModifications", path: "/", httpMethod: "POST", input: input) } /// Returns information about provisioned RDS instances. This API supports pagination. @@ -264,14 +264,14 @@ public struct Rds { _ = try client.send(operation: "DeleteDBSecurityGroup", path: "/", httpMethod: "POST", input: input) } - /// Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. - public func restoreDBClusterToPointInTime(_ input: RestoreDBClusterToPointInTimeMessage) throws -> RestoreDBClusterToPointInTimeResult { - return try client.send(operation: "RestoreDBClusterToPointInTime", path: "/", httpMethod: "POST", input: input) + /// Returns information about DB snapshots. This API action supports pagination. + public func describeDBSnapshots(_ input: DescribeDBSnapshotsMessage) throws -> DBSnapshotMessage { + return try client.send(operation: "DescribeDBSnapshots", path: "/", httpMethod: "POST", input: input) } - /// Creates a new DB cluster from a DB cluster snapshot. The target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. - public func restoreDBClusterFromSnapshot(_ input: RestoreDBClusterFromSnapshotMessage) throws -> RestoreDBClusterFromSnapshotResult { - return try client.send(operation: "RestoreDBClusterFromSnapshot", path: "/", httpMethod: "POST", input: input) + /// Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group. This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterToPointInTime action has completed and the DB cluster is available. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. + public func restoreDBClusterToPointInTime(_ input: RestoreDBClusterToPointInTimeMessage) throws -> RestoreDBClusterToPointInTimeResult { + return try client.send(operation: "RestoreDBClusterToPointInTime", path: "/", httpMethod: "POST", input: input) } /// Purchases a reserved DB instance offering. @@ -289,7 +289,7 @@ public struct Rds { return try client.send(operation: "DescribeDBSecurityGroups", path: "/", httpMethod: "POST", input: input) } - /// Enables ingress to a DBSecurityGroup using one of two forms of authorization. First, EC2 or VPC security groups can be added to the DBSecurityGroup if the application using the database is running on EC2 or VPC instances. Second, IP ranges are available if the application accessing your database is running on the Internet. Required parameters for this API are one of CIDR range, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId for non-VPC). You cannot authorize ingress from an EC2 security group in one region to an Amazon RDS DB instance in another. You cannot authorize ingress from a VPC security group in one VPC to an Amazon RDS DB instance in another. For an overview of CIDR ranges, go to the Wikipedia Tutorial. + /// Enables ingress to a DBSecurityGroup using one of two forms of authorization. First, EC2 or VPC security groups can be added to the DBSecurityGroup if the application using the database is running on EC2 or VPC instances. Second, IP ranges are available if the application accessing your database is running on the Internet. Required parameters for this API are one of CIDR range, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId for non-VPC). You can't authorize ingress from an EC2 security group in one AWS Region to an Amazon RDS DB instance in another. You can't authorize ingress from a VPC security group in one VPC to an Amazon RDS DB instance in another. For an overview of CIDR ranges, go to the Wikipedia Tutorial. public func authorizeDBSecurityGroupIngress(_ input: AuthorizeDBSecurityGroupIngressMessage) throws -> AuthorizeDBSecurityGroupIngressResult { return try client.send(operation: "AuthorizeDBSecurityGroupIngress", path: "/", httpMethod: "POST", input: input) } @@ -319,12 +319,17 @@ public struct Rds { return try client.send(operation: "StopDBInstance", path: "/", httpMethod: "POST", input: input) } + /// Creates a new DB cluster from a DB snapshot or DB cluster snapshot. If a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group. If a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. + public func restoreDBClusterFromSnapshot(_ input: RestoreDBClusterFromSnapshotMessage) throws -> RestoreDBClusterFromSnapshotResult { + return try client.send(operation: "RestoreDBClusterFromSnapshot", path: "/", httpMethod: "POST", input: input) + } + /// Adds a source identifier to an existing RDS event notification subscription. public func addSourceIdentifierToSubscription(_ input: AddSourceIdentifierToSubscriptionMessage) throws -> AddSourceIdentifierToSubscriptionResult { return try client.send(operation: "AddSourceIdentifierToSubscription", path: "/", httpMethod: "POST", input: input) } - /// The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and cannot be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. + /// The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. public func deleteDBCluster(_ input: DeleteDBClusterMessage) throws -> DeleteDBClusterResult { return try client.send(operation: "DeleteDBCluster", path: "/", httpMethod: "POST", input: input) } @@ -339,12 +344,7 @@ public struct Rds { return try client.send(operation: "DescribeAccountAttributes", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of DB snapshot attribute names and values for a manual DB snapshot. When sharing snapshots with other AWS accounts, DescribeDBSnapshotAttributes returns the restore attribute and a list of IDs for the AWS accounts that are authorized to copy or restore the manual DB snapshot. If all is included in the list of values for the restore attribute, then the manual DB snapshot is public and can be copied or restored by all AWS accounts. To add or remove access for an AWS account to copy or restore a manual DB snapshot, or to make the manual DB snapshot public or private, use the ModifyDBSnapshotAttribute API action. - public func describeDBSnapshotAttributes(_ input: DescribeDBSnapshotAttributesMessage) throws -> DescribeDBSnapshotAttributesResult { - return try client.send(operation: "DescribeDBSnapshotAttributes", path: "/", httpMethod: "POST", input: input) - } - - /// Creates an RDS event notification subscription. This action requires a topic ARN (Amazon Resource Name) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console. You can specify the type of source (SourceType) you want to be notified of, provide a list of RDS sources (SourceIds) that triggers the events, and provide a list of event categories (EventCategories) for events you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup. If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIdentifier = myDBInstance1, you will be notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify a SourceIdentifier, you will receive notice of the events for that source type for all your RDS sources. If you do not specify either the SourceType nor the SourceIdentifier, you will be notified of events generated from all RDS sources belonging to your customer account. + /// Creates an RDS event notification subscription. This action requires a topic ARN (Amazon Resource Name) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console. You can specify the type of source (SourceType) you want to be notified of, provide a list of RDS sources (SourceIds) that triggers the events, and provide a list of event categories (EventCategories) for events you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup. If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIdentifier = myDBInstance1, you are notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify a SourceIdentifier, you receive notice of the events for that source type for all your RDS sources. If you do not specify either the SourceType nor the SourceIdentifier, you are notified of events generated from all RDS sources belonging to your customer account. public func createEventSubscription(_ input: CreateEventSubscriptionMessage) throws -> CreateEventSubscriptionResult { return try client.send(operation: "CreateEventSubscription", path: "/", httpMethod: "POST", input: input) } @@ -354,6 +354,11 @@ public struct Rds { return try client.send(operation: "CreateDBCluster", path: "/", httpMethod: "POST", input: input) } + /// Returns a list of DB snapshot attribute names and values for a manual DB snapshot. When sharing snapshots with other AWS accounts, DescribeDBSnapshotAttributes returns the restore attribute and a list of IDs for the AWS accounts that are authorized to copy or restore the manual DB snapshot. If all is included in the list of values for the restore attribute, then the manual DB snapshot is public and can be copied or restored by all AWS accounts. To add or remove access for an AWS account to copy or restore a manual DB snapshot, or to make the manual DB snapshot public or private, use the ModifyDBSnapshotAttribute API action. + public func describeDBSnapshotAttributes(_ input: DescribeDBSnapshotAttributesMessage) throws -> DescribeDBSnapshotAttributesResult { + return try client.send(operation: "DescribeDBSnapshotAttributes", path: "/", httpMethod: "POST", input: input) + } + /// Returns events related to DB instances, DB security groups, DB snapshots, and DB parameter groups for the past 14 days. Events specific to a particular DB instance, DB security group, database snapshot, or DB parameter group can be obtained by providing the name as a parameter. By default, the past hour of events are returned. public func describeEvents(_ input: DescribeEventsMessage) throws -> EventsMessage { return try client.send(operation: "DescribeEvents", path: "/", httpMethod: "POST", input: input) @@ -369,17 +374,17 @@ public struct Rds { return try client.send(operation: "DescribeEventSubscriptions", path: "/", httpMethod: "POST", input: input) } - /// Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the region. + /// Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the AWS Region. public func modifyDBSubnetGroup(_ input: ModifyDBSubnetGroupMessage) throws -> ModifyDBSubnetGroupResult { return try client.send(operation: "ModifyDBSubnetGroup", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of the source AWS regions where the current AWS region can create a Read Replica or copy a DB snapshot from. This API action supports pagination. + /// Returns a list of the source AWS Regions where the current AWS Region can create a Read Replica or copy a DB snapshot from. This API action supports pagination. public func describeSourceRegions(_ input: DescribeSourceRegionsMessage) throws -> SourceRegionMessage { return try client.send(operation: "DescribeSourceRegions", path: "/", httpMethod: "POST", input: input) } - /// Updates a manual DB snapshot, which can be encrypted or not encrypted, with a new engine version. You can update the engine version to either a new major or minor engine version. Amazon RDS supports upgrading a MySQL DB snapshot from MySQL 5.1 to MySQL 5.5. + /// Updates a manual DB snapshot, which can be encrypted or not encrypted, with a new engine version. Amazon RDS supports upgrading DB snapshots for MySQL and Oracle. public func modifyDBSnapshot(_ input: ModifyDBSnapshotMessage) throws -> ModifyDBSnapshotResult { return try client.send(operation: "ModifyDBSnapshot", path: "/", httpMethod: "POST", input: input) } @@ -404,7 +409,7 @@ public struct Rds { return try client.send(operation: "ModifyDBSnapshotAttribute", path: "/", httpMethod: "POST", input: input) } - /// The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and cannot be recovered. Manual DB snapshots of the DB instance to be deleted by DeleteDBInstance are not deleted. If you request a final DB snapshot the status of the Amazon RDS DB instance is deleting until the DB snapshot is created. The API action DescribeDBInstance is used to monitor the status of this operation. The action cannot be canceled or reverted once submitted. Note that when a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, you can only delete it when the SkipFinalSnapshot parameter is set to true. If the specified DB instance is part of an Amazon Aurora DB cluster, you cannot delete the DB instance if the following are true: The DB cluster is a Read Replica of another Amazon Aurora DB cluster. The DB instance is the only instance in the DB cluster. To delete a DB instance in this case, first call the PromoteReadReplicaDBCluster API action to promote the DB cluster so it's no longer a Read Replica. After the promotion completes, then call the DeleteDBInstance API action to delete the final instance in the DB cluster. + /// The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and can't be recovered. Manual DB snapshots of the DB instance to be deleted by DeleteDBInstance are not deleted. If you request a final DB snapshot the status of the Amazon RDS DB instance is deleting until the DB snapshot is created. The API action DescribeDBInstance is used to monitor the status of this operation. The action can't be canceled or reverted once submitted. Note that when a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, you can only delete it when the SkipFinalSnapshot parameter is set to true. If the specified DB instance is part of an Amazon Aurora DB cluster, you can't delete the DB instance if both of the following conditions are true: The DB cluster is a Read Replica of another Amazon Aurora DB cluster. The DB instance is the only instance in the DB cluster. To delete a DB instance in this case, first call the PromoteReadReplicaDBCluster API action to promote the DB cluster so it's no longer a Read Replica. After the promotion completes, then call the DeleteDBInstance API action to delete the final instance in the DB cluster. public func deleteDBInstance(_ input: DeleteDBInstanceMessage) throws -> DeleteDBInstanceResult { return try client.send(operation: "DeleteDBInstance", path: "/", httpMethod: "POST", input: input) } @@ -419,9 +424,9 @@ public struct Rds { return try client.send(operation: "DescribeDBClusterSnapshots", path: "/", httpMethod: "POST", input: input) } - /// Deletes a specified DBParameterGroup. The DBParameterGroup to be deleted cannot be associated with any DB instances. - public func deleteDBParameterGroup(_ input: DeleteDBParameterGroupMessage) throws { - _ = try client.send(operation: "DeleteDBParameterGroup", path: "/", httpMethod: "POST", input: input) + /// Amazon Relational Database Service (Amazon RDS) supports importing MySQL databases by using backup files. You can create a backup of your on-premises database, store it on Amazon Simple Storage Service (Amazon S3), and then restore the backup file onto a new Amazon RDS DB instance running MySQL. For more information, see Importing Data into an Amazon RDS MySQL DB Instance. + public func restoreDBInstanceFromS3(_ input: RestoreDBInstanceFromS3Message) throws -> RestoreDBInstanceFromS3Result { + return try client.send(operation: "RestoreDBInstanceFromS3", path: "/", httpMethod: "POST", input: input) } /// Applies a pending maintenance action to a resource (for example, to a DB instance). @@ -429,22 +434,27 @@ public struct Rds { return try client.send(operation: "ApplyPendingMaintenanceAction", path: "/", httpMethod: "POST", input: input) } + /// Deletes a specified DBParameterGroup. The DBParameterGroup to be deleted can't be associated with any DB instances. + public func deleteDBParameterGroup(_ input: DeleteDBParameterGroupMessage) throws { + _ = try client.send(operation: "DeleteDBParameterGroup", path: "/", httpMethod: "POST", input: input) + } + /// Creates a new DB security group. DB security groups control access to a DB instance. public func createDBSecurityGroup(_ input: CreateDBSecurityGroupMessage) throws -> CreateDBSecurityGroupResult { return try client.send(operation: "CreateDBSecurityGroup", path: "/", httpMethod: "POST", input: input) } - /// Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted cannot be associated with any DB clusters. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. - public func deleteDBClusterParameterGroup(_ input: DeleteDBClusterParameterGroupMessage) throws { - _ = try client.send(operation: "DeleteDBClusterParameterGroup", path: "/", httpMethod: "POST", input: input) - } - /// Adds an attribute and values to, or removes an attribute and values from, a manual DB cluster snapshot. To share a manual DB cluster snapshot with other AWS accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the AWS accounts that are authorized to restore the manual DB cluster snapshot. Use the value all to make the manual DB cluster snapshot public, which means that it can be copied or restored by all AWS accounts. Do not add the all value for any manual DB cluster snapshots that contain private information that you don't want available to all AWS accounts. If a manual DB cluster snapshot is encrypted, it can be shared, but only by specifying a list of authorized AWS account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case. To view which AWS accounts have access to copy or restore a manual DB cluster snapshot, or whether a manual DB cluster snapshot public or private, use the DescribeDBClusterSnapshotAttributes API action. public func modifyDBClusterSnapshotAttribute(_ input: ModifyDBClusterSnapshotAttributeMessage) throws -> ModifyDBClusterSnapshotAttributeResult { return try client.send(operation: "ModifyDBClusterSnapshotAttribute", path: "/", httpMethod: "POST", input: input) } - /// Copies a snapshot of a DB cluster. To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot. You can copy an encrypted DB cluster snapshot from another AWS region. In that case, the region where you call the CopyDBClusterSnapshot action is the destination region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another region, you must provide the following values: KmsKeyId - The AWS Key Management System (KMS) key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination region. PreSignedUrl - A URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot action to be called in the source region where the DB cluster snapshot will be copied from. The pre-signed URL must be a valid request for the CopyDBClusterSnapshot API action that can be executed in the source region that contains the encrypted DB cluster snapshot to be copied. The pre-signed URL request must contain the following parameter values: KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination region. This is the same identifier for both the CopyDBClusterSnapshot action that is called in the destination region, and the action contained in the pre-signed URL. DestinationRegion - The name of the region that the DB cluster snapshot will be created in. SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination region. SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the ARN format for the source region and is the same value as the SourceDBClusterSnapshotIdentifier in the pre-signed URL. To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in "copying" status. For more information on copying encrypted DB cluster snapshots from one region to another, see Copying a DB Cluster Snapshot in the Same Account, Either in the Same Region or Across Regions in the Amazon RDS User Guide. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. + /// Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted can't be associated with any DB clusters. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. + public func deleteDBClusterParameterGroup(_ input: DeleteDBClusterParameterGroupMessage) throws { + _ = try client.send(operation: "DeleteDBClusterParameterGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Copies a snapshot of a DB cluster. To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot. You can copy an encrypted DB cluster snapshot from another AWS Region. In that case, the AWS Region where you call the CopyDBClusterSnapshot action is the destination AWS Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another AWS Region, you must provide the following values: KmsKeyId - The AWS Key Management System (AWS KMS) key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination AWS Region. PreSignedUrl - A URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot action to be called in the source AWS Region where the DB cluster snapshot is copied from. The pre-signed URL must be a valid request for the CopyDBClusterSnapshot API action that can be executed in the source AWS Region that contains the encrypted DB cluster snapshot to be copied. The pre-signed URL request must contain the following parameter values: KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot action that is called in the destination AWS Region, and the action contained in the pre-signed URL. DestinationRegion - The name of the AWS Region that the DB cluster snapshot will be created in. SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 AWS Region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination AWS Region. SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the ARN format for the source AWS Region and is the same value as the SourceDBClusterSnapshotIdentifier in the pre-signed URL. To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in "copying" status. For more information on copying encrypted DB cluster snapshots from one AWS Region to another, see Copying a DB Cluster Snapshot in the Same Account, Either in the Same Region or Across Regions in the Amazon RDS User Guide. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. public func copyDBClusterSnapshot(_ input: CopyDBClusterSnapshotMessage) throws -> CopyDBClusterSnapshotResult { return try client.send(operation: "CopyDBClusterSnapshot", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/rds/Rds_Shapes.swift b/Sources/AWSSDKSwift/Services/rds/Rds_Shapes.swift index acb4ad3605d..eded5f07b6e 100644 --- a/Sources/AWSSDKSwift/Services/rds/Rds_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/rds/Rds_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Rds { public struct DescribeDBParametersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Filters", required: false, type: .structure), AWSShapeMember(label: "Source", required: false, type: .string), @@ -21,7 +21,7 @@ extension Rds { public let source: String? /// An optional pagination token provided by a previous DescribeDBParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - /// The name of a specific DB parameter group to return details for. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens + /// The name of a specific DB parameter group to return details for. Constraints: If supplied, must match the name of an existing DBParameterGroup. public let dBParameterGroupName: String public init(maxRecords: Int32? = nil, filters: FilterList? = nil, source: String? = nil, marker: String? = nil, dBParameterGroupName: String) { @@ -41,23 +41,8 @@ extension Rds { } } - public struct DBInstanceStatusInfoList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstanceStatusInfo", required: false, type: .list) - ] - public let dBInstanceStatusInfo: [DBInstanceStatusInfo]? - - public init(dBInstanceStatusInfo: [DBInstanceStatusInfo]? = nil) { - self.dBInstanceStatusInfo = dBInstanceStatusInfo - } - - private enum CodingKeys: String, CodingKey { - case dBInstanceStatusInfo = "DBInstanceStatusInfo" - } - } - public struct EventsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Events", required: false, type: .structure) ] @@ -77,30 +62,30 @@ extension Rds { } } - public struct CreateDBSubnetGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSubnetGroup", required: false, type: .structure) + public struct DescribeEngineDefaultParametersResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EngineDefaults", required: false, type: .structure) ] - public let dBSubnetGroup: DBSubnetGroup? + public let engineDefaults: EngineDefaults? - public init(dBSubnetGroup: DBSubnetGroup? = nil) { - self.dBSubnetGroup = dBSubnetGroup + public init(engineDefaults: EngineDefaults? = nil) { + self.engineDefaults = engineDefaults } private enum CodingKeys: String, CodingKey { - case dBSubnetGroup = "DBSubnetGroup" + case engineDefaults = "EngineDefaults" } } public struct ResetDBClusterParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .structure), AWSShapeMember(label: "ResetAllParameters", required: false, type: .boolean), AWSShapeMember(label: "DBClusterParameterGroupName", required: true, type: .string) ] - /// A list of parameter names in the DB cluster parameter group to reset to the default values. You cannot use this parameter if the ResetAllParameters parameter is set to true. + /// A list of parameter names in the DB cluster parameter group to reset to the default values. You can't use this parameter if the ResetAllParameters parameter is set to true. public let parameters: ParametersList? - /// A value that is set to true to reset all parameters in the DB cluster parameter group to their default values, and false otherwise. You cannot use this parameter if there is a list of parameter names specified for the Parameters parameter. + /// A value that is set to true to reset all parameters in the DB cluster parameter group to their default values, and false otherwise. You can't use this parameter if there is a list of parameter names specified for the Parameters parameter. public let resetAllParameters: Bool? /// The name of the DB cluster parameter group to reset. public let dBClusterParameterGroupName: String @@ -118,84 +103,8 @@ extension Rds { } } - public struct DescribeEngineDefaultParametersResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EngineDefaults", required: false, type: .structure) - ] - public let engineDefaults: EngineDefaults? - - public init(engineDefaults: EngineDefaults? = nil) { - self.engineDefaults = engineDefaults - } - - private enum CodingKeys: String, CodingKey { - case engineDefaults = "EngineDefaults" - } - } - - public struct OptionsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Option", required: false, type: .list) - ] - public let option: [Option]? - - public init(option: [Option]? = nil) { - self.option = option - } - - private enum CodingKeys: String, CodingKey { - case option = "Option" - } - } - - public struct RestoreDBClusterFromSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBCluster", required: false, type: .structure) - ] - public let dBCluster: DBCluster? - - public init(dBCluster: DBCluster? = nil) { - self.dBCluster = dBCluster - } - - private enum CodingKeys: String, CodingKey { - case dBCluster = "DBCluster" - } - } - - public struct PromoteReadReplicaDBClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string) - ] - /// The identifier of the DB cluster Read Replica to promote. This parameter is not case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: my-cluster-replica1 - public let dBClusterIdentifier: String - - public init(dBClusterIdentifier: String) { - self.dBClusterIdentifier = dBClusterIdentifier - } - - private enum CodingKeys: String, CodingKey { - case dBClusterIdentifier = "DBClusterIdentifier" - } - } - - public struct FilterList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Filter", required: false, type: .list) - ] - public let filter: [Filter]? - - public init(filter: [Filter]? = nil) { - self.filter = filter - } - - private enum CodingKeys: String, CodingKey { - case filter = "Filter" - } - } - public struct CopyOptionGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetOptionGroupDescription", required: true, type: .string), AWSShapeMember(label: "TargetOptionGroupIdentifier", required: true, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), @@ -203,10 +112,10 @@ extension Rds { ] /// The description for the copied option group. public let targetOptionGroupDescription: String - /// The identifier for the copied option group. Constraints: Cannot be null, empty, or blank Must contain from 1 to 255 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-option-group + /// The identifier for the copied option group. Constraints: Cannot be null, empty, or blank Must contain from 1 to 255 letters, numbers, or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-option-group public let targetOptionGroupIdentifier: String public let tags: TagList? - /// The identifier or ARN for the source option group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). Constraints: Must specify a valid option group. If the source option group is in the same region as the copy, specify a valid option group identifier, for example my-option-group, or a valid ARN. If the source option group is in a different region than the copy, specify a valid option group ARN, for example arn:aws:rds:us-west-2:123456789012:og:special-options. + /// The identifier or ARN for the source option group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). Constraints: Must specify a valid option group. If the source option group is in the same AWS Region as the copy, specify a valid option group identifier, for example my-option-group, or a valid ARN. If the source option group is in a different AWS Region than the copy, specify a valid option group ARN, for example arn:aws:rds:us-west-2:123456789012:og:special-options. public let sourceOptionGroupIdentifier: String public init(targetOptionGroupDescription: String, targetOptionGroupIdentifier: String, tags: TagList? = nil, sourceOptionGroupIdentifier: String) { @@ -224,8 +133,23 @@ extension Rds { } } + public struct OptionsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Option", required: false, type: .list) + ] + public let option: [Option]? + + public init(option: [Option]? = nil) { + self.option = option + } + + private enum CodingKeys: String, CodingKey { + case option = "Option" + } + } + public struct DBClusterMember: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBInstanceIdentifier", required: false, type: .string), AWSShapeMember(label: "PromotionTier", required: false, type: .integer), AWSShapeMember(label: "IsClusterWriter", required: false, type: .boolean), @@ -255,114 +179,8 @@ extension Rds { } } - public struct OptionGroupOption: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PortRequired", required: false, type: .boolean), - AWSShapeMember(label: "OptionsConflictsWith", required: false, type: .structure), - AWSShapeMember(label: "MinimumRequiredMinorEngineVersion", required: false, type: .string), - AWSShapeMember(label: "MajorEngineVersion", required: false, type: .string), - AWSShapeMember(label: "Persistent", required: false, type: .boolean), - AWSShapeMember(label: "OptionGroupOptionSettings", required: false, type: .structure), - AWSShapeMember(label: "Permanent", required: false, type: .boolean), - AWSShapeMember(label: "OptionsDependedOn", required: false, type: .structure), - AWSShapeMember(label: "Description", required: false, type: .string), - AWSShapeMember(label: "OptionGroupOptionVersions", required: false, type: .structure), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "DefaultPort", required: false, type: .integer), - AWSShapeMember(label: "EngineName", required: false, type: .string) - ] - /// Specifies whether the option requires a port. - public let portRequired: Bool? - /// The options that conflict with this option. - public let optionsConflictsWith: OptionsConflictsWith? - /// The minimum required engine version for the option to be applied. - public let minimumRequiredMinorEngineVersion: String? - /// Indicates the major engine version that the option is available for. - public let majorEngineVersion: String? - /// Persistent options can't be removed from an option group while DB instances are associated with the option group. If you disassociate all DB instances from the option group, your can remove the persistent option from the option group. - public let persistent: Bool? - /// The option settings that are available (and the default value) for each option in an option group. - public let optionGroupOptionSettings: OptionGroupOptionSettingsList? - /// Permanent options can never be removed from an option group. An option group containing a permanent option can't be removed from a DB instance. - public let permanent: Bool? - /// The options that are prerequisites for this option. - public let optionsDependedOn: OptionsDependedOn? - /// The description of the option. - public let description: String? - /// The versions that are available for the option. - public let optionGroupOptionVersions: OptionGroupOptionVersionsList? - /// The name of the option. - public let name: String? - /// If the option requires a port, specifies the default port for the option. - public let defaultPort: Int32? - /// The name of the engine that this option can be applied to. - public let engineName: String? - - public init(portRequired: Bool? = nil, optionsConflictsWith: OptionsConflictsWith? = nil, minimumRequiredMinorEngineVersion: String? = nil, majorEngineVersion: String? = nil, persistent: Bool? = nil, optionGroupOptionSettings: OptionGroupOptionSettingsList? = nil, permanent: Bool? = nil, optionsDependedOn: OptionsDependedOn? = nil, description: String? = nil, optionGroupOptionVersions: OptionGroupOptionVersionsList? = nil, name: String? = nil, defaultPort: Int32? = nil, engineName: String? = nil) { - self.portRequired = portRequired - self.optionsConflictsWith = optionsConflictsWith - self.minimumRequiredMinorEngineVersion = minimumRequiredMinorEngineVersion - self.majorEngineVersion = majorEngineVersion - self.persistent = persistent - self.optionGroupOptionSettings = optionGroupOptionSettings - self.permanent = permanent - self.optionsDependedOn = optionsDependedOn - self.description = description - self.optionGroupOptionVersions = optionGroupOptionVersions - self.name = name - self.defaultPort = defaultPort - self.engineName = engineName - } - - private enum CodingKeys: String, CodingKey { - case portRequired = "PortRequired" - case optionsConflictsWith = "OptionsConflictsWith" - case minimumRequiredMinorEngineVersion = "MinimumRequiredMinorEngineVersion" - case majorEngineVersion = "MajorEngineVersion" - case persistent = "Persistent" - case optionGroupOptionSettings = "OptionGroupOptionSettings" - case permanent = "Permanent" - case optionsDependedOn = "OptionsDependedOn" - case description = "Description" - case optionGroupOptionVersions = "OptionGroupOptionVersions" - case name = "Name" - case defaultPort = "DefaultPort" - case engineName = "EngineName" - } - } - - public struct CreateDBClusterParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroupFamily", required: true, type: .string), - AWSShapeMember(label: "DBClusterParameterGroupName", required: true, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "Description", required: true, type: .string) - ] - /// The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family. - public let dBParameterGroupFamily: String - /// The name of the DB cluster parameter group. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens This value is stored as a lowercase string. - public let dBClusterParameterGroupName: String - public let tags: TagList? - /// The description for the DB cluster parameter group. - public let description: String - - public init(dBParameterGroupFamily: String, dBClusterParameterGroupName: String, tags: TagList? = nil, description: String) { - self.dBParameterGroupFamily = dBParameterGroupFamily - self.dBClusterParameterGroupName = dBClusterParameterGroupName - self.tags = tags - self.description = description - } - - private enum CodingKeys: String, CodingKey { - case dBParameterGroupFamily = "DBParameterGroupFamily" - case dBClusterParameterGroupName = "DBClusterParameterGroupName" - case tags = "Tags" - case description = "Description" - } - } - public struct DBClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "DBClusters", required: false, type: .structure) ] @@ -383,7 +201,7 @@ extension Rds { } public struct Endpoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Address", required: false, type: .string), AWSShapeMember(label: "Port", required: false, type: .integer), AWSShapeMember(label: "HostedZoneId", required: false, type: .string) @@ -408,45 +226,38 @@ extension Rds { } } - public struct DeleteDBSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSubnetGroupName", required: true, type: .string) + public struct ModifyDBClusterResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBCluster", required: false, type: .structure) ] - /// The name of the database subnet group to delete. You cannot delete the default subnet group. Constraints: Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup - public let dBSubnetGroupName: String + public let dBCluster: DBCluster? - public init(dBSubnetGroupName: String) { - self.dBSubnetGroupName = dBSubnetGroupName + public init(dBCluster: DBCluster? = nil) { + self.dBCluster = dBCluster } private enum CodingKeys: String, CodingKey { - case dBSubnetGroupName = "DBSubnetGroupName" + case dBCluster = "DBCluster" } } - public struct DBClusterSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "DBClusterSnapshots", required: false, type: .structure) + public struct DescribeEngineDefaultClusterParametersResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EngineDefaults", required: false, type: .structure) ] - /// An optional pagination token provided by a previous DescribeDBClusterSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// Provides a list of DB cluster snapshots for the user. - public let dBClusterSnapshots: DBClusterSnapshotList? + public let engineDefaults: EngineDefaults? - public init(marker: String? = nil, dBClusterSnapshots: DBClusterSnapshotList? = nil) { - self.marker = marker - self.dBClusterSnapshots = dBClusterSnapshots + public init(engineDefaults: EngineDefaults? = nil) { + self.engineDefaults = engineDefaults } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case dBClusterSnapshots = "DBClusterSnapshots" + case engineDefaults = "EngineDefaults" } } - public struct ModifyDBClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct FailoverDBClusterResult: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBCluster", required: false, type: .structure) ] public let dBCluster: DBCluster? @@ -460,130 +271,23 @@ extension Rds { } } - public struct DescribeEngineDefaultClusterParametersResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EngineDefaults", required: false, type: .structure) + public struct RebootDBInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .structure) ] - public let engineDefaults: EngineDefaults? + public let dBInstance: DBInstance? - public init(engineDefaults: EngineDefaults? = nil) { - self.engineDefaults = engineDefaults + public init(dBInstance: DBInstance? = nil) { + self.dBInstance = dBInstance } private enum CodingKeys: String, CodingKey { - case engineDefaults = "EngineDefaults" - } - } - - public struct PurchaseReservedDBInstancesOfferingResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReservedDBInstance", required: false, type: .structure) - ] - public let reservedDBInstance: ReservedDBInstance? - - public init(reservedDBInstance: ReservedDBInstance? = nil) { - self.reservedDBInstance = reservedDBInstance - } - - private enum CodingKeys: String, CodingKey { - case reservedDBInstance = "ReservedDBInstance" - } - } - - public struct OptionSettingConfigurationList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionSetting", required: false, type: .list) - ] - public let optionSetting: [OptionSetting]? - - public init(optionSetting: [OptionSetting]? = nil) { - self.optionSetting = optionSetting - } - - private enum CodingKeys: String, CodingKey { - case optionSetting = "OptionSetting" - } - } - - public struct OptionsConflictsWith: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionConflictName", required: false, type: .list) - ] - public let optionConflictName: [String]? - - public init(optionConflictName: [String]? = nil) { - self.optionConflictName = optionConflictName - } - - private enum CodingKeys: String, CodingKey { - case optionConflictName = "OptionConflictName" - } - } - - public struct FailoverDBClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBCluster", required: false, type: .structure) - ] - public let dBCluster: DBCluster? - - public init(dBCluster: DBCluster? = nil) { - self.dBCluster = dBCluster - } - - private enum CodingKeys: String, CodingKey { - case dBCluster = "DBCluster" - } - } - - public struct CreateDBClusterSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: true, type: .string), - AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string) - ] - /// The tags to be assigned to the DB cluster snapshot. - public let tags: TagList? - /// The identifier of the DB cluster snapshot. This parameter is stored as a lowercase string. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: my-cluster1-snapshot1 - public let dBClusterSnapshotIdentifier: String - /// The identifier of the DB cluster to create a snapshot for. This parameter is not case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: my-cluster1 - public let dBClusterIdentifier: String - - public init(tags: TagList? = nil, dBClusterSnapshotIdentifier: String, dBClusterIdentifier: String) { - self.tags = tags - self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier - self.dBClusterIdentifier = dBClusterIdentifier - } - - private enum CodingKeys: String, CodingKey { - case tags = "Tags" - case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" - case dBClusterIdentifier = "DBClusterIdentifier" - } - } - - public struct DBClusterSnapshotAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeName", required: false, type: .string), - AWSShapeMember(label: "AttributeValues", required: false, type: .structure) - ] - /// The name of the manual DB cluster snapshot attribute. The attribute named restore refers to the list of AWS accounts that have permission to copy or restore the manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute API action. - public let attributeName: String? - /// The value(s) for the manual DB cluster snapshot attribute. If the AttributeName field is set to restore, then this element returns a list of IDs of the AWS accounts that are authorized to copy or restore the manual DB cluster snapshot. If a value of all is in the list, then the manual DB cluster snapshot is public and available for any AWS account to copy or restore. - public let attributeValues: AttributeValueList? - - public init(attributeName: String? = nil, attributeValues: AttributeValueList? = nil) { - self.attributeName = attributeName - self.attributeValues = attributeValues - } - - private enum CodingKeys: String, CodingKey { - case attributeName = "AttributeName" - case attributeValues = "AttributeValues" + case dBInstance = "DBInstance" } } public struct DomainMembership: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "IAMRoleName", required: false, type: .string), AWSShapeMember(label: "FQDN", required: false, type: .string), @@ -613,23 +317,8 @@ extension Rds { } } - public struct RebootDBInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstance", required: false, type: .structure) - ] - public let dBInstance: DBInstance? - - public init(dBInstance: DBInstance? = nil) { - self.dBInstance = dBInstance - } - - private enum CodingKeys: String, CodingKey { - case dBInstance = "DBInstance" - } - } - public struct ModifyOptionGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OptionGroup", required: false, type: .structure) ] public let optionGroup: OptionGroup? @@ -644,7 +333,7 @@ extension Rds { } public struct AttributeValueList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeValue", required: false, type: .list) ] public let attributeValue: [String]? @@ -658,29 +347,8 @@ extension Rds { } } - public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: false, type: .string), - AWSShapeMember(label: "Key", required: false, type: .string) - ] - /// A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and cannot be prefixed with "aws:" or "rds:". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$"). - public let value: String? - /// A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and cannot be prefixed with "aws:" or "rds:". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$"). - public let key: String? - - public init(value: String? = nil, key: String? = nil) { - self.value = value - self.key = key - } - - private enum CodingKeys: String, CodingKey { - case value = "Value" - case key = "Key" - } - } - public struct SupportedTimezonesList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Timezone", required: false, type: .list) ] public let timezone: [Timezone]? @@ -695,7 +363,7 @@ extension Rds { } public struct ListTagsForResourceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filters", required: false, type: .structure), AWSShapeMember(label: "ResourceName", required: true, type: .string) ] @@ -716,13 +384,13 @@ extension Rds { } public struct FailoverDBClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetDBInstanceIdentifier", required: false, type: .string), AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string) ] /// The name of the instance to promote to the primary instance. You must specify the instance identifier for an Aurora Replica in the DB cluster. For example, mydbcluster-replica1. public let targetDBInstanceIdentifier: String? - /// A DB cluster identifier to force a failover for. This parameter is not case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens + /// A DB cluster identifier to force a failover for. This parameter is not case-sensitive. Constraints: Must match the identifier of an existing DBCluster. public let dBClusterIdentifier: String? public init(targetDBInstanceIdentifier: String? = nil, dBClusterIdentifier: String? = nil) { @@ -736,68 +404,8 @@ extension Rds { } } - public struct CreateEventSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SnsTopicArn", required: true, type: .string), - AWSShapeMember(label: "SubscriptionName", required: true, type: .string), - AWSShapeMember(label: "SourceType", required: false, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "EventCategories", required: false, type: .structure), - AWSShapeMember(label: "Enabled", required: false, type: .boolean), - AWSShapeMember(label: "SourceIds", required: false, type: .structure) - ] - /// The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it. - public let snsTopicArn: String - /// The name of the subscription. Constraints: The name must be less than 255 characters. - public let subscriptionName: String - /// The type of source that will be generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned. Valid values: db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot - public let sourceType: String? - public let tags: TagList? - /// A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action. - public let eventCategories: EventCategoriesList? - /// A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it. - public let enabled: Bool? - /// The list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens. Constraints: If SourceIds are supplied, SourceType must also be provided. If the source type is a DB instance, then a DBInstanceIdentifier must be supplied. If the source type is a DB security group, a DBSecurityGroupName must be supplied. If the source type is a DB parameter group, a DBParameterGroupName must be supplied. If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied. - public let sourceIds: SourceIdsList? - - public init(snsTopicArn: String, subscriptionName: String, sourceType: String? = nil, tags: TagList? = nil, eventCategories: EventCategoriesList? = nil, enabled: Bool? = nil, sourceIds: SourceIdsList? = nil) { - self.snsTopicArn = snsTopicArn - self.subscriptionName = subscriptionName - self.sourceType = sourceType - self.tags = tags - self.eventCategories = eventCategories - self.enabled = enabled - self.sourceIds = sourceIds - } - - private enum CodingKeys: String, CodingKey { - case snsTopicArn = "SnsTopicArn" - case subscriptionName = "SubscriptionName" - case sourceType = "SourceType" - case tags = "Tags" - case eventCategories = "EventCategories" - case enabled = "Enabled" - case sourceIds = "SourceIds" - } - } - - public struct DescribeDBSnapshotAttributesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshotAttributesResult", required: false, type: .structure) - ] - public let dBSnapshotAttributesResult: DBSnapshotAttributesResult? - - public init(dBSnapshotAttributesResult: DBSnapshotAttributesResult? = nil) { - self.dBSnapshotAttributesResult = dBSnapshotAttributesResult - } - - private enum CodingKeys: String, CodingKey { - case dBSnapshotAttributesResult = "DBSnapshotAttributesResult" - } - } - public struct CopyDBSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetDBSnapshotIdentifier", required: true, type: .string), AWSShapeMember(label: "OptionGroupName", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), @@ -806,18 +414,18 @@ extension Rds { AWSShapeMember(label: "SourceDBSnapshotIdentifier", required: true, type: .string), AWSShapeMember(label: "KmsKeyId", required: false, type: .string) ] - /// The identifier for the copy of the snapshot. Constraints: Cannot be null, empty, or blank Must contain from 1 to 255 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-db-snapshot + /// The identifier for the copy of the snapshot. Constraints: Cannot be null, empty, or blank Must contain from 1 to 255 letters, numbers, or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-db-snapshot public let targetDBSnapshotIdentifier: String - /// The name of an option group to associate with the copy. Specify this option if you are copying a snapshot from one AWS region to another, and your DB instance uses a non-default option group. If your source DB instance uses Transparent Data Encryption for Oracle or Microsoft SQL Server, you must specify this option when copying across regions. For more information, see Option Group Considerations. + /// The name of an option group to associate with the copy of the snapshot. Specify this option if you are copying a snapshot from one AWS Region to another, and your DB instance uses a nondefault option group. If your source DB instance uses Transparent Data Encryption for Oracle or Microsoft SQL Server, you must specify this option when copying across AWS Regions. For more information, see Option Group Considerations. public let optionGroupName: String? public let tags: TagList? - /// True to copy all tags from the source DB snapshot to the target DB snapshot; otherwise false. The default is false. + /// True to copy all tags from the source DB snapshot to the target DB snapshot, and otherwise false. The default is false. public let copyTags: Bool? - /// The URL that contains a Signature Version 4 signed request for the CopyDBSnapshot API action in the source AWS region that contains the source DB snapshot to copy. You must specify this parameter when you copy an encrypted DB snapshot from another AWS region by using the Amazon RDS API. You can specify the source region option instead of this parameter when you copy an encrypted DB snapshot from another AWS region by using the AWS CLI. The presigned URL must be a valid request for the CopyDBSnapshot API action that can be executed in the source region that contains the encrypted DB snapshot to be copied. The presigned URL request must contain the following parameter values: DestinationRegion - The AWS Region that the encrypted DB snapshot will be copied to. This region is the same one where the CopyDBSnapshot action is called that contains this presigned URL. For example, if you copy an encrypted DB snapshot from the us-west-2 region to the us-east-1 region, then you will call the CopyDBSnapshot action in the us-east-1 region and provide a presigned URL that contains a call to the CopyDBSnapshot action in the us-west-2 region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 region. KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB snapshot in the destination region. This is the same identifier for both the CopyDBSnapshot action that is called in the destination region, and the action contained in the presigned URL. SourceDBSnapshotIdentifier - The DB snapshot identifier for the encrypted snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you are copying an encrypted DB snapshot from the us-west-2 region, then your SourceDBSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. + /// The URL that contains a Signature Version 4 signed request for the CopyDBSnapshot API action in the source AWS Region that contains the source DB snapshot to copy. You must specify this parameter when you copy an encrypted DB snapshot from another AWS Region by using the Amazon RDS API. You can specify the --source-region option instead of this parameter when you copy an encrypted DB snapshot from another AWS Region by using the AWS CLI. The presigned URL must be a valid request for the CopyDBSnapshot API action that can be executed in the source AWS Region that contains the encrypted DB snapshot to be copied. The presigned URL request must contain the following parameter values: DestinationRegion - The AWS Region that the encrypted DB snapshot is copied to. This AWS Region is the same one where the CopyDBSnapshot action is called that contains this presigned URL. For example, if you copy an encrypted DB snapshot from the us-west-2 AWS Region to the us-east-1 AWS Region, then you call the CopyDBSnapshot action in the us-east-1 AWS Region and provide a presigned URL that contains a call to the CopyDBSnapshot action in the us-west-2 AWS Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 AWS Region. KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of the DB snapshot in the destination AWS Region. This is the same identifier for both the CopyDBSnapshot action that is called in the destination AWS Region, and the action contained in the presigned URL. SourceDBSnapshotIdentifier - The DB snapshot identifier for the encrypted snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an encrypted DB snapshot from the us-west-2 AWS Region, then your SourceDBSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. public let preSignedUrl: String? - /// The identifier for the source DB snapshot. If the source snapshot is in the same region as the copy, specify a valid DB snapshot identifier. For example, rds:mysql-instance1-snapshot-20130805. If the source snapshot is in a different region than the copy, specify a valid DB snapshot ARN. For example, arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805. If you are copying from a shared manual DB snapshot, this parameter must be the Amazon Resource Name (ARN) of the shared DB snapshot. If you are copying an encrypted snapshot this parameter must be in the ARN format for the source region, and must match the SourceDBSnapshotIdentifier in the PreSignedUrl parameter. Constraints: Must specify a valid system snapshot in the "available" state. Example: rds:mydb-2012-04-02-00-01 Example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805 + /// The identifier for the source DB snapshot. If the source snapshot is in the same AWS Region as the copy, specify a valid DB snapshot identifier. For example, you might specify rds:mysql-instance1-snapshot-20130805. If the source snapshot is in a different AWS Region than the copy, specify a valid DB snapshot ARN. For example, you might specify arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805. If you are copying from a shared manual DB snapshot, this parameter must be the Amazon Resource Name (ARN) of the shared DB snapshot. If you are copying an encrypted snapshot this parameter must be in the ARN format for the source AWS Region, and must match the SourceDBSnapshotIdentifier in the PreSignedUrl parameter. Constraints: Must specify a valid system snapshot in the "available" state. Example: rds:mydb-2012-04-02-00-01 Example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805 public let sourceDBSnapshotIdentifier: String - /// The AWS KMS key ID for an encrypted DB snapshot. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. If you copy an encrypted DB snapshot from your AWS account, you can specify a value for this parameter to encrypt the copy with a new KMS encryption key. If you don't specify a value for this parameter, then the copy of the DB snapshot is encrypted with the same KMS key as the source DB snapshot. If you copy an encrypted DB snapshot that is shared from another AWS account, then you must specify a value for this parameter. If you specify this parameter when you copy an unencrypted snapshot, the copy is encrypted. If you copy an encrypted snapshot to a different AWS region, then you must specify a KMS key for the destination AWS region. KMS encryption keys are specific to the region that they are created in, and you cannot use encryption keys from one region in another region. + /// The AWS KMS key ID for an encrypted DB snapshot. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. If you copy an encrypted DB snapshot from your AWS account, you can specify a value for this parameter to encrypt the copy with a new KMS encryption key. If you don't specify a value for this parameter, then the copy of the DB snapshot is encrypted with the same KMS key as the source DB snapshot. If you copy an encrypted DB snapshot that is shared from another AWS account, then you must specify a value for this parameter. If you specify this parameter when you copy an unencrypted snapshot, the copy is encrypted. If you copy an encrypted snapshot to a different AWS Region, then you must specify a KMS key for the destination AWS Region. KMS encryption keys are specific to the AWS Region that they are created in, and you can't use encryption keys from one AWS Region in another AWS Region. public let kmsKeyId: String? public init(targetDBSnapshotIdentifier: String, optionGroupName: String? = nil, tags: TagList? = nil, copyTags: Bool? = nil, preSignedUrl: String? = nil, sourceDBSnapshotIdentifier: String, kmsKeyId: String? = nil) { @@ -842,7 +450,7 @@ extension Rds { } public struct EventCategoriesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventCategoriesMapList", required: false, type: .structure) ] /// A list of EventCategoriesMap data types. @@ -858,7 +466,7 @@ extension Rds { } public struct DBClusterParameterGroupDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Parameters", required: false, type: .structure) ] @@ -878,44 +486,8 @@ extension Rds { } } - public struct RecurringCharge: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RecurringChargeAmount", required: false, type: .double), - AWSShapeMember(label: "RecurringChargeFrequency", required: false, type: .string) - ] - /// The amount of the recurring charge. - public let recurringChargeAmount: Double? - /// The frequency of the recurring charge. - public let recurringChargeFrequency: String? - - public init(recurringChargeAmount: Double? = nil, recurringChargeFrequency: String? = nil) { - self.recurringChargeAmount = recurringChargeAmount - self.recurringChargeFrequency = recurringChargeFrequency - } - - private enum CodingKeys: String, CodingKey { - case recurringChargeAmount = "RecurringChargeAmount" - case recurringChargeFrequency = "RecurringChargeFrequency" - } - } - - public struct ModifyDBInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstance", required: false, type: .structure) - ] - public let dBInstance: DBInstance? - - public init(dBInstance: DBInstance? = nil) { - self.dBInstance = dBInstance - } - - private enum CodingKeys: String, CodingKey { - case dBInstance = "DBInstance" - } - } - public struct OptionGroupMembership: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "OptionGroupName", required: false, type: .string) ] @@ -935,23 +507,24 @@ extension Rds { } } - public struct IPRangeList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IPRange", required: false, type: .list) + public struct DescribeValidDBInstanceModificationsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) ] - public let iPRange: [IPRange]? + /// The customer identifier or the ARN of your DB instance. + public let dBInstanceIdentifier: String - public init(iPRange: [IPRange]? = nil) { - self.iPRange = iPRange + public init(dBInstanceIdentifier: String) { + self.dBInstanceIdentifier = dBInstanceIdentifier } private enum CodingKeys: String, CodingKey { - case iPRange = "IPRange" + case dBInstanceIdentifier = "DBInstanceIdentifier" } } public struct DeleteDBClusterSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: true, type: .string) ] /// The identifier of the DB cluster snapshot to delete. Constraints: Must be the name of an existing DB cluster snapshot in the available state. @@ -966,23 +539,8 @@ extension Rds { } } - public struct RestoreDBClusterToPointInTimeResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBCluster", required: false, type: .structure) - ] - public let dBCluster: DBCluster? - - public init(dBCluster: DBCluster? = nil) { - self.dBCluster = dBCluster - } - - private enum CodingKeys: String, CodingKey { - case dBCluster = "DBCluster" - } - } - public struct DescribeEventsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -1007,7 +565,7 @@ extension Rds { public let endTime: TimeStamp? /// This parameter is not currently supported. public let filters: FilterList? - /// The identifier of the event source for which events will be returned. If not specified, then all sources are included in the response. Constraints: If SourceIdentifier is supplied, SourceType must also be provided. If the source type is DBInstance, then a DBInstanceIdentifier must be supplied. If the source type is DBSecurityGroup, a DBSecurityGroupName must be supplied. If the source type is DBParameterGroup, a DBParameterGroupName must be supplied. If the source type is DBSnapshot, a DBSnapshotIdentifier must be supplied. Cannot end with a hyphen or contain two consecutive hyphens. + /// The identifier of the event source for which events are returned. If not specified, then all sources are included in the response. Constraints: If SourceIdentifier is supplied, SourceType must also be provided. If the source type is DBInstance, then a DBInstanceIdentifier must be supplied. If the source type is DBSecurityGroup, a DBSecurityGroupName must be supplied. If the source type is DBParameterGroup, a DBParameterGroupName must be supplied. If the source type is DBSnapshot, a DBSnapshotIdentifier must be supplied. Cannot end with a hyphen or contain two consecutive hyphens. public let sourceIdentifier: String? /// The number of minutes to retrieve events for. Default: 60 public let duration: Int32? @@ -1038,7 +596,7 @@ extension Rds { } public struct CopyOptionGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OptionGroup", required: false, type: .structure) ] public let optionGroup: OptionGroup? @@ -1052,2499 +610,4625 @@ extension Rds { } } - public struct AvailabilityZones: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AvailabilityZone", required: false, type: .list) + public struct RemoveTagsFromResourceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceName", required: true, type: .string), + AWSShapeMember(label: "TagKeys", required: true, type: .list) ] - public let availabilityZone: [String]? + /// The Amazon RDS resource that the tags are removed from. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). + public let resourceName: String + /// The tag key (name) of the tag to be removed. + public let tagKeys: [String] - public init(availabilityZone: [String]? = nil) { - self.availabilityZone = availabilityZone + public init(resourceName: String, tagKeys: [String]) { + self.resourceName = resourceName + self.tagKeys = tagKeys } private enum CodingKeys: String, CodingKey { - case availabilityZone = "AvailabilityZone" + case resourceName = "ResourceName" + case tagKeys = "TagKeys" } } - public struct CreateDBInstanceReadReplicaResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstance", required: false, type: .structure) + public struct EventList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Event", required: false, type: .list) ] - public let dBInstance: DBInstance? + public let event: [Event]? - public init(dBInstance: DBInstance? = nil) { - self.dBInstance = dBInstance + public init(event: [Event]? = nil) { + self.event = event } private enum CodingKeys: String, CodingKey { - case dBInstance = "DBInstance" + case event = "Event" } } - public struct Option: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionSettings", required: false, type: .structure), - AWSShapeMember(label: "OptionDescription", required: false, type: .string), - AWSShapeMember(label: "OptionVersion", required: false, type: .string), - AWSShapeMember(label: "VpcSecurityGroupMemberships", required: false, type: .structure), - AWSShapeMember(label: "DBSecurityGroupMemberships", required: false, type: .structure), - AWSShapeMember(label: "Persistent", required: false, type: .boolean), - AWSShapeMember(label: "Permanent", required: false, type: .boolean), - AWSShapeMember(label: "OptionName", required: false, type: .string), - AWSShapeMember(label: "Port", required: false, type: .integer) + public struct DoubleRangeList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DoubleRange", required: false, type: .list) ] - /// The option settings for this option. - public let optionSettings: OptionSettingConfigurationList? - /// The description of the option. - public let optionDescription: String? - /// The version of the option. - public let optionVersion: String? - /// If the option requires access to a port, then this VPC security group allows access to the port. - public let vpcSecurityGroupMemberships: VpcSecurityGroupMembershipList? - /// If the option requires access to a port, then this DB security group allows access to the port. - public let dBSecurityGroupMemberships: DBSecurityGroupMembershipList? - /// Indicate if this option is persistent. - public let persistent: Bool? - /// Indicate if this option is permanent. - public let permanent: Bool? - /// The name of the option. - public let optionName: String? - /// If required, the port configured for this option to use. - public let port: Int32? + public let doubleRange: [DoubleRange]? - public init(optionSettings: OptionSettingConfigurationList? = nil, optionDescription: String? = nil, optionVersion: String? = nil, vpcSecurityGroupMemberships: VpcSecurityGroupMembershipList? = nil, dBSecurityGroupMemberships: DBSecurityGroupMembershipList? = nil, persistent: Bool? = nil, permanent: Bool? = nil, optionName: String? = nil, port: Int32? = nil) { - self.optionSettings = optionSettings - self.optionDescription = optionDescription - self.optionVersion = optionVersion - self.vpcSecurityGroupMemberships = vpcSecurityGroupMemberships - self.dBSecurityGroupMemberships = dBSecurityGroupMemberships - self.persistent = persistent - self.permanent = permanent - self.optionName = optionName - self.port = port + public init(doubleRange: [DoubleRange]? = nil) { + self.doubleRange = doubleRange } private enum CodingKeys: String, CodingKey { - case optionSettings = "OptionSettings" - case optionDescription = "OptionDescription" - case optionVersion = "OptionVersion" - case vpcSecurityGroupMemberships = "VpcSecurityGroupMemberships" - case dBSecurityGroupMemberships = "DBSecurityGroupMemberships" - case persistent = "Persistent" - case permanent = "Permanent" - case optionName = "OptionName" - case port = "Port" + case doubleRange = "DoubleRange" } } - public struct VpcSecurityGroupIdList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcSecurityGroupId", required: false, type: .list) + public struct DBParameterGroupStatusList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroup", required: false, type: .list) ] - public let vpcSecurityGroupId: [String]? + public let dBParameterGroup: [DBParameterGroupStatus]? - public init(vpcSecurityGroupId: [String]? = nil) { - self.vpcSecurityGroupId = vpcSecurityGroupId + public init(dBParameterGroup: [DBParameterGroupStatus]? = nil) { + self.dBParameterGroup = dBParameterGroup } private enum CodingKeys: String, CodingKey { - case vpcSecurityGroupId = "VpcSecurityGroupId" + case dBParameterGroup = "DBParameterGroup" } } - public struct RemoveTagsFromResourceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourceName", required: true, type: .string), - AWSShapeMember(label: "TagKeys", required: true, type: .list) + public struct PromoteReadReplicaDBClusterResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBCluster", required: false, type: .structure) ] - /// The Amazon RDS resource the tags will be removed from. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). - public let resourceName: String - /// The tag key (name) of the tag to be removed. - public let tagKeys: [String] + public let dBCluster: DBCluster? - public init(resourceName: String, tagKeys: [String]) { - self.resourceName = resourceName - self.tagKeys = tagKeys + public init(dBCluster: DBCluster? = nil) { + self.dBCluster = dBCluster } private enum CodingKeys: String, CodingKey { - case resourceName = "ResourceName" - case tagKeys = "TagKeys" + case dBCluster = "DBCluster" } } - public struct OptionsDependedOn: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionName", required: false, type: .list) + public struct ModifyDBSubnetGroupResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSubnetGroup", required: false, type: .structure) ] - public let optionName: [String]? + public let dBSubnetGroup: DBSubnetGroup? - public init(optionName: [String]? = nil) { - self.optionName = optionName + public init(dBSubnetGroup: DBSubnetGroup? = nil) { + self.dBSubnetGroup = dBSubnetGroup } private enum CodingKeys: String, CodingKey { - case optionName = "OptionName" + case dBSubnetGroup = "DBSubnetGroup" } } - public struct DBClusterMemberList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterMember", required: false, type: .list) + public struct DeleteDBSnapshotMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string) ] - public let dBClusterMember: [DBClusterMember]? + /// The DBSnapshot identifier. Constraints: Must be the name of an existing DB snapshot in the available state. + public let dBSnapshotIdentifier: String - public init(dBClusterMember: [DBClusterMember]? = nil) { - self.dBClusterMember = dBClusterMember + public init(dBSnapshotIdentifier: String) { + self.dBSnapshotIdentifier = dBSnapshotIdentifier } private enum CodingKeys: String, CodingKey { - case dBClusterMember = "DBClusterMember" + case dBSnapshotIdentifier = "DBSnapshotIdentifier" } } - public struct EventList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Event", required: false, type: .list) + public struct DBInstanceStatusInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "Message", required: false, type: .string), + AWSShapeMember(label: "StatusType", required: false, type: .string), + AWSShapeMember(label: "Normal", required: false, type: .boolean) ] - public let event: [Event]? + /// Status of the DB instance. For a StatusType of read replica, the values can be replicating, error, stopped, or terminated. + public let status: String? + /// Details of the error if there is an error for the instance. If the instance is not in an error state, this value is blank. + public let message: String? + /// This value is currently "read replication." + public let statusType: String? + /// Boolean value that is true if the instance is operating normally, or false if the instance is in an error state. + public let normal: Bool? - public init(event: [Event]? = nil) { - self.event = event + public init(status: String? = nil, message: String? = nil, statusType: String? = nil, normal: Bool? = nil) { + self.status = status + self.message = message + self.statusType = statusType + self.normal = normal } private enum CodingKeys: String, CodingKey { - case event = "Event" + case status = "Status" + case message = "Message" + case statusType = "StatusType" + case normal = "Normal" } } - public struct OptionGroup: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Options", required: false, type: .structure), - AWSShapeMember(label: "AllowsVpcAndNonVpcInstanceMemberships", required: false, type: .boolean), - AWSShapeMember(label: "OptionGroupName", required: false, type: .string), - AWSShapeMember(label: "OptionGroupArn", required: false, type: .string), - AWSShapeMember(label: "VpcId", required: false, type: .string), - AWSShapeMember(label: "MajorEngineVersion", required: false, type: .string), - AWSShapeMember(label: "EngineName", required: false, type: .string), - AWSShapeMember(label: "OptionGroupDescription", required: false, type: .string) + public struct ReservedDBInstancesOfferingMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "ReservedDBInstancesOfferings", required: false, type: .structure) ] - /// Indicates what options are available in the option group. - public let options: OptionsList? - /// Indicates whether this option group can be applied to both VPC and non-VPC instances. The value true indicates the option group can be applied to both VPC and non-VPC instances. - public let allowsVpcAndNonVpcInstanceMemberships: Bool? - /// Specifies the name of the option group. - public let optionGroupName: String? - /// The Amazon Resource Name (ARN) for the option group. - public let optionGroupArn: String? - /// If AllowsVpcAndNonVpcInstanceMemberships is false, this field is blank. If AllowsVpcAndNonVpcInstanceMemberships is true and this field is blank, then this option group can be applied to both VPC and non-VPC instances. If this field contains a value, then this option group can only be applied to instances that are in the VPC indicated by this field. - public let vpcId: String? - /// Indicates the major engine version associated with this option group. - public let majorEngineVersion: String? - /// Indicates the name of the engine that this option group can be applied to. - public let engineName: String? - /// Provides a description of the option group. - public let optionGroupDescription: String? + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// A list of reserved DB instance offerings. + public let reservedDBInstancesOfferings: ReservedDBInstancesOfferingList? - public init(options: OptionsList? = nil, allowsVpcAndNonVpcInstanceMemberships: Bool? = nil, optionGroupName: String? = nil, optionGroupArn: String? = nil, vpcId: String? = nil, majorEngineVersion: String? = nil, engineName: String? = nil, optionGroupDescription: String? = nil) { - self.options = options - self.allowsVpcAndNonVpcInstanceMemberships = allowsVpcAndNonVpcInstanceMemberships - self.optionGroupName = optionGroupName - self.optionGroupArn = optionGroupArn - self.vpcId = vpcId - self.majorEngineVersion = majorEngineVersion - self.engineName = engineName - self.optionGroupDescription = optionGroupDescription + public init(marker: String? = nil, reservedDBInstancesOfferings: ReservedDBInstancesOfferingList? = nil) { + self.marker = marker + self.reservedDBInstancesOfferings = reservedDBInstancesOfferings } private enum CodingKeys: String, CodingKey { - case options = "Options" - case allowsVpcAndNonVpcInstanceMemberships = "AllowsVpcAndNonVpcInstanceMemberships" - case optionGroupName = "OptionGroupName" - case optionGroupArn = "OptionGroupArn" - case vpcId = "VpcId" - case majorEngineVersion = "MajorEngineVersion" - case engineName = "EngineName" - case optionGroupDescription = "OptionGroupDescription" + case marker = "Marker" + case reservedDBInstancesOfferings = "ReservedDBInstancesOfferings" } } - public struct DBParameterGroupStatusList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroup", required: false, type: .list) + public struct RestoreDBInstanceFromS3Result: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .structure) ] - public let dBParameterGroup: [DBParameterGroupStatus]? + public let dBInstance: DBInstance? - public init(dBParameterGroup: [DBParameterGroupStatus]? = nil) { - self.dBParameterGroup = dBParameterGroup + public init(dBInstance: DBInstance? = nil) { + self.dBInstance = dBInstance } private enum CodingKeys: String, CodingKey { - case dBParameterGroup = "DBParameterGroup" + case dBInstance = "DBInstance" } } - public struct RestoreDBInstanceFromDBSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Port", required: false, type: .integer), - AWSShapeMember(label: "Domain", required: false, type: .string), - AWSShapeMember(label: "DBName", required: false, type: .string), - AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "TdeCredentialPassword", required: false, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "LicenseModel", required: false, type: .string), - AWSShapeMember(label: "StorageType", required: false, type: .string), - AWSShapeMember(label: "TdeCredentialArn", required: false, type: .string), - AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string), - AWSShapeMember(label: "Iops", required: false, type: .integer), - AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), - AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), - AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), - AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), - AWSShapeMember(label: "OptionGroupName", required: false, type: .string), - AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), - AWSShapeMember(label: "Engine", required: false, type: .string), - AWSShapeMember(label: "DomainIAMRoleName", required: false, type: .string), - AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string), - AWSShapeMember(label: "DBInstanceClass", required: false, type: .string) + public struct Subnet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIdentifier", required: false, type: .string), + AWSShapeMember(label: "SubnetAvailabilityZone", required: false, type: .structure), + AWSShapeMember(label: "SubnetStatus", required: false, type: .string) ] - /// The port number on which the database accepts connections. Default: The same port as the original DB instance Constraints: Value must be 1150-65535 - public let port: Int32? - /// Specify the Active Directory Domain to restore the instance in. - public let domain: String? - /// The database name for the restored DB instance. This parameter doesn't apply to the MySQL, PostgreSQL, or MariaDB engines. - public let dBName: String? - /// Specifies if the DB instance is a Multi-AZ deployment. Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true. - public let multiAZ: Bool? - /// The password for the given ARN from the Key Store in order to access the device. - public let tdeCredentialPassword: String? - public let tags: TagList? - /// License model information for the restored DB instance. Default: Same as source. Valid values: license-included | bring-your-own-license | general-public-license - public let licenseModel: String? - /// Specifies the storage type to be associated with the DB instance. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified; otherwise standard - public let storageType: String? - /// The ARN from the Key Store with which to associate the instance for TDE encryption. - public let tdeCredentialArn: String? - /// Name of the DB instance to create from the DB snapshot. This parameter isn't case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens (1 to 15 for SQL Server) First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-snapshot-id - public let dBInstanceIdentifier: String - /// Specifies the amount of provisioned IOPS for the DB instance, expressed in I/O operations per second. If this parameter is not specified, the IOPS value will be taken from the backup. If this parameter is set to 0, the new instance will be converted to a non-PIOPS instance, which will take additional time, though your DB instance will be available for connections before the conversion starts. Constraints: Must be an integer greater than 1000. SQL Server Setting the IOPS value for the SQL Server database engine is not supported. - public let iops: Int32? - /// The EC2 Availability Zone that the database instance will be created in. Default: A random, system-chosen Availability Zone. Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true. Example: us-east-1a - public let availabilityZone: String? - /// Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case. Default VPC: true VPC: false If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private. - public let publiclyAccessible: Bool? - /// Indicates that minor version upgrades will be applied automatically to the DB instance during the maintenance window. - public let autoMinorVersionUpgrade: Bool? - /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false. You can enable IAM database authentication for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Aurora 5.6 or higher. Default: false - public let enableIAMDatabaseAuthentication: Bool? - /// The name of the option group to be used for the restored DB instance. Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance - public let optionGroupName: String? - /// The DB subnet group name to use for the new instance. Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup - public let dBSubnetGroupName: String? - /// True to copy all tags from the restored DB instance to snapshots of the DB instance; otherwise false. The default is false. - public let copyTagsToSnapshot: Bool? - /// The database engine to use for the new instance. Default: The same as source Constraint: Must be compatible with the engine of the source. You can restore a MariaDB 10.1 DB instance from a MySQL 5.6 snapshot. Valid Values: MySQL | mariadb | oracle-se1 | oracle-se | oracle-ee | sqlserver-ee | sqlserver-se | sqlserver-ex | sqlserver-web | postgres | aurora - public let engine: String? - /// Specify the name of the IAM role to be used when making API calls to the Directory Service. - public let domainIAMRoleName: String? - /// The identifier for the DB snapshot to restore from. Constraints: Must contain from 1 to 255 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot. - public let dBSnapshotIdentifier: String - /// The compute and memory capacity of the Amazon RDS DB instance. Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large - public let dBInstanceClass: String? + /// Specifies the identifier of the subnet. + public let subnetIdentifier: String? + public let subnetAvailabilityZone: AvailabilityZone? + /// Specifies the status of the subnet. + public let subnetStatus: String? - public init(port: Int32? = nil, domain: String? = nil, dBName: String? = nil, multiAZ: Bool? = nil, tdeCredentialPassword: String? = nil, tags: TagList? = nil, licenseModel: String? = nil, storageType: String? = nil, tdeCredentialArn: String? = nil, dBInstanceIdentifier: String, iops: Int32? = nil, availabilityZone: String? = nil, publiclyAccessible: Bool? = nil, autoMinorVersionUpgrade: Bool? = nil, enableIAMDatabaseAuthentication: Bool? = nil, optionGroupName: String? = nil, dBSubnetGroupName: String? = nil, copyTagsToSnapshot: Bool? = nil, engine: String? = nil, domainIAMRoleName: String? = nil, dBSnapshotIdentifier: String, dBInstanceClass: String? = nil) { - self.port = port - self.domain = domain - self.dBName = dBName - self.multiAZ = multiAZ - self.tdeCredentialPassword = tdeCredentialPassword - self.tags = tags - self.licenseModel = licenseModel - self.storageType = storageType - self.tdeCredentialArn = tdeCredentialArn - self.dBInstanceIdentifier = dBInstanceIdentifier - self.iops = iops - self.availabilityZone = availabilityZone - self.publiclyAccessible = publiclyAccessible - self.autoMinorVersionUpgrade = autoMinorVersionUpgrade - self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication - self.optionGroupName = optionGroupName - self.dBSubnetGroupName = dBSubnetGroupName - self.copyTagsToSnapshot = copyTagsToSnapshot - self.engine = engine - self.domainIAMRoleName = domainIAMRoleName - self.dBSnapshotIdentifier = dBSnapshotIdentifier - self.dBInstanceClass = dBInstanceClass + public init(subnetIdentifier: String? = nil, subnetAvailabilityZone: AvailabilityZone? = nil, subnetStatus: String? = nil) { + self.subnetIdentifier = subnetIdentifier + self.subnetAvailabilityZone = subnetAvailabilityZone + self.subnetStatus = subnetStatus } private enum CodingKeys: String, CodingKey { - case port = "Port" - case domain = "Domain" - case dBName = "DBName" - case multiAZ = "MultiAZ" - case tdeCredentialPassword = "TdeCredentialPassword" - case tags = "Tags" - case licenseModel = "LicenseModel" - case storageType = "StorageType" - case tdeCredentialArn = "TdeCredentialArn" - case dBInstanceIdentifier = "DBInstanceIdentifier" - case iops = "Iops" - case availabilityZone = "AvailabilityZone" - case publiclyAccessible = "PubliclyAccessible" - case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" - case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" - case optionGroupName = "OptionGroupName" - case dBSubnetGroupName = "DBSubnetGroupName" - case copyTagsToSnapshot = "CopyTagsToSnapshot" - case engine = "Engine" - case domainIAMRoleName = "DomainIAMRoleName" - case dBSnapshotIdentifier = "DBSnapshotIdentifier" - case dBInstanceClass = "DBInstanceClass" + case subnetIdentifier = "SubnetIdentifier" + case subnetAvailabilityZone = "SubnetAvailabilityZone" + case subnetStatus = "SubnetStatus" } } - public struct OrderableDBInstanceOptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "OrderableDBInstanceOptions", required: false, type: .structure) + public struct EC2SecurityGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "EC2SecurityGroupId", required: false, type: .string), + AWSShapeMember(label: "EC2SecurityGroupOwnerId", required: false, type: .string), + AWSShapeMember(label: "EC2SecurityGroupName", required: false, type: .string) ] - /// An optional pagination token provided by a previous OrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords . - public let marker: String? - /// An OrderableDBInstanceOption structure containing information about orderable options for the DB instance. - public let orderableDBInstanceOptions: OrderableDBInstanceOptionsList? + /// Provides the status of the EC2 security group. Status can be "authorizing", "authorized", "revoking", and "revoked". + public let status: String? + /// Specifies the id of the EC2 security group. + public let eC2SecurityGroupId: String? + /// Specifies the AWS ID of the owner of the EC2 security group specified in the EC2SecurityGroupName field. + public let eC2SecurityGroupOwnerId: String? + /// Specifies the name of the EC2 security group. + public let eC2SecurityGroupName: String? - public init(marker: String? = nil, orderableDBInstanceOptions: OrderableDBInstanceOptionsList? = nil) { - self.marker = marker - self.orderableDBInstanceOptions = orderableDBInstanceOptions + public init(status: String? = nil, eC2SecurityGroupId: String? = nil, eC2SecurityGroupOwnerId: String? = nil, eC2SecurityGroupName: String? = nil) { + self.status = status + self.eC2SecurityGroupId = eC2SecurityGroupId + self.eC2SecurityGroupOwnerId = eC2SecurityGroupOwnerId + self.eC2SecurityGroupName = eC2SecurityGroupName } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case orderableDBInstanceOptions = "OrderableDBInstanceOptions" + case status = "Status" + case eC2SecurityGroupId = "EC2SecurityGroupId" + case eC2SecurityGroupOwnerId = "EC2SecurityGroupOwnerId" + case eC2SecurityGroupName = "EC2SecurityGroupName" } } - public struct DescribeDBClusterSnapshotsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct OptionSettingsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionSetting", required: false, type: .list) + ] + public let optionSetting: [OptionSetting]? + + public init(optionSetting: [OptionSetting]? = nil) { + self.optionSetting = optionSetting + } + + private enum CodingKeys: String, CodingKey { + case optionSetting = "OptionSetting" + } + } + + public struct DBInstanceList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .list) + ] + public let dBInstance: [DBInstance]? + + public init(dBInstance: [DBInstance]? = nil) { + self.dBInstance = dBInstance + } + + private enum CodingKeys: String, CodingKey { + case dBInstance = "DBInstance" + } + } + + public struct SupportedCharacterSetsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CharacterSet", required: false, type: .list) + ] + public let characterSet: [CharacterSet]? + + public init(characterSet: [CharacterSet]? = nil) { + self.characterSet = characterSet + } + + private enum CodingKeys: String, CodingKey { + case characterSet = "CharacterSet" + } + } + + public struct AccountQuota: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Max", required: false, type: .long), + AWSShapeMember(label: "Used", required: false, type: .long), + AWSShapeMember(label: "AccountQuotaName", required: false, type: .string) + ] + /// The maximum allowed value for the quota. + public let max: Int64? + /// The amount currently used toward the quota maximum. + public let used: Int64? + /// The name of the Amazon RDS quota for this AWS account. + public let accountQuotaName: String? + + public init(max: Int64? = nil, used: Int64? = nil, accountQuotaName: String? = nil) { + self.max = max + self.used = used + self.accountQuotaName = accountQuotaName + } + + private enum CodingKeys: String, CodingKey { + case max = "Max" + case used = "Used" + case accountQuotaName = "AccountQuotaName" + } + } + + public struct DBClusterSnapshotList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterSnapshot", required: false, type: .list) + ] + public let dBClusterSnapshot: [DBClusterSnapshot]? + + public init(dBClusterSnapshot: [DBClusterSnapshot]? = nil) { + self.dBClusterSnapshot = dBClusterSnapshot + } + + private enum CodingKeys: String, CodingKey { + case dBClusterSnapshot = "DBClusterSnapshot" + } + } + + public struct ValidStorageOptionsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ValidStorageOptions", required: false, type: .list) + ] + public let validStorageOptions: [ValidStorageOptions]? + + public init(validStorageOptions: [ValidStorageOptions]? = nil) { + self.validStorageOptions = validStorageOptions + } + + private enum CodingKeys: String, CodingKey { + case validStorageOptions = "ValidStorageOptions" + } + } + + public struct DescribeDBLogFilesMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string), + AWSShapeMember(label: "FileSize", required: false, type: .long), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IncludePublic", required: false, type: .boolean), - AWSShapeMember(label: "SnapshotType", required: false, type: .string), - AWSShapeMember(label: "IncludeShared", required: false, type: .boolean), + AWSShapeMember(label: "FileLastWritten", required: false, type: .long), AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: false, type: .string) + AWSShapeMember(label: "FilenameContains", required: false, type: .string) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. public let maxRecords: Int32? - /// The ID of the DB cluster to retrieve the list of DB cluster snapshots for. This parameter cannot be used in conjunction with the DBClusterSnapshotIdentifier parameter. This parameter is not case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBClusterIdentifier: String? - /// An optional pagination token provided by a previous DescribeDBClusterSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + /// The customer-assigned name of the DB instance that contains the log files you want to list. Constraints: Must match the identifier of an existing DBInstance. + public let dBInstanceIdentifier: String + /// Filters the available log files for files larger than the specified size. + public let fileSize: Int64? + /// The pagination token provided in the previous request. If this parameter is specified the response includes only records beyond the marker, up to MaxRecords. public let marker: String? - /// Set this value to true to include manual DB cluster snapshots that are public and can be copied or restored by any AWS account, otherwise set this value to false. The default is false. The default is false. You can share a manual DB cluster snapshot as public by using the ModifyDBClusterSnapshotAttribute API action. - public let includePublic: Bool? - /// The type of DB cluster snapshots to be returned. You can specify one of the following values: automated - Return all DB cluster snapshots that have been automatically taken by Amazon RDS for my AWS account. manual - Return all DB cluster snapshots that have been taken by my AWS account. shared - Return all manual DB cluster snapshots that have been shared to my AWS account. public - Return all DB cluster snapshots that have been marked as public. If you don't specify a SnapshotType value, then both automated and manual DB cluster snapshots are returned. You can include shared DB cluster snapshots with these results by setting the IncludeShared parameter to true. You can include public DB cluster snapshots with these results by setting the IncludePublic parameter to true. The IncludeShared and IncludePublic parameters don't apply for SnapshotType values of manual or automated. The IncludePublic parameter doesn't apply when SnapshotType is set to shared. The IncludeShared parameter doesn't apply when SnapshotType is set to public. - public let snapshotType: String? - /// Set this value to true to include shared manual DB cluster snapshots from other AWS accounts that this AWS account has been given permission to copy or restore, otherwise set this value to false. The default is false. You can give an AWS account permission to restore a manual DB cluster snapshot from another AWS account by the ModifyDBClusterSnapshotAttribute API action. - public let includeShared: Bool? + /// Filters the available log files for files written since the specified date, in POSIX timestamp format with milliseconds. + public let fileLastWritten: Int64? /// This parameter is not currently supported. public let filters: FilterList? - /// A specific DB cluster snapshot identifier to describe. This parameter cannot be used in conjunction with the DBClusterIdentifier parameter. This value is stored as a lowercase string. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified. - public let dBClusterSnapshotIdentifier: String? + /// Filters the available log files for log file names that contain the specified string. + public let filenameContains: String? - public init(maxRecords: Int32? = nil, dBClusterIdentifier: String? = nil, marker: String? = nil, includePublic: Bool? = nil, snapshotType: String? = nil, includeShared: Bool? = nil, filters: FilterList? = nil, dBClusterSnapshotIdentifier: String? = nil) { + public init(maxRecords: Int32? = nil, dBInstanceIdentifier: String, fileSize: Int64? = nil, marker: String? = nil, fileLastWritten: Int64? = nil, filters: FilterList? = nil, filenameContains: String? = nil) { self.maxRecords = maxRecords - self.dBClusterIdentifier = dBClusterIdentifier + self.dBInstanceIdentifier = dBInstanceIdentifier + self.fileSize = fileSize self.marker = marker - self.includePublic = includePublic - self.snapshotType = snapshotType - self.includeShared = includeShared + self.fileLastWritten = fileLastWritten self.filters = filters - self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier + self.filenameContains = filenameContains } private enum CodingKeys: String, CodingKey { case maxRecords = "MaxRecords" - case dBClusterIdentifier = "DBClusterIdentifier" + case dBInstanceIdentifier = "DBInstanceIdentifier" + case fileSize = "FileSize" case marker = "Marker" - case includePublic = "IncludePublic" - case snapshotType = "SnapshotType" - case includeShared = "IncludeShared" + case fileLastWritten = "FileLastWritten" case filters = "Filters" - case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" + case filenameContains = "FilenameContains" } } - public struct DBClusterSnapshot: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AvailabilityZones", required: false, type: .structure), - AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), - AWSShapeMember(label: "LicenseModel", required: false, type: .string), - AWSShapeMember(label: "SnapshotType", required: false, type: .string), - AWSShapeMember(label: "DBClusterSnapshotArn", required: false, type: .string), - AWSShapeMember(label: "ClusterCreateTime", required: false, type: .timestamp), - AWSShapeMember(label: "IAMDatabaseAuthenticationEnabled", required: false, type: .boolean), - AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), + public struct DescribeDBEngineVersionsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "VpcId", required: false, type: .string), - AWSShapeMember(label: "MasterUsername", required: false, type: .string), - AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "DefaultOnly", required: false, type: .boolean), + AWSShapeMember(label: "ListSupportedTimezones", required: false, type: .boolean), AWSShapeMember(label: "Engine", required: false, type: .string), - AWSShapeMember(label: "SnapshotCreateTime", required: false, type: .timestamp), - AWSShapeMember(label: "PercentProgress", required: false, type: .integer), - AWSShapeMember(label: "StorageEncrypted", required: false, type: .boolean), - AWSShapeMember(label: "SourceDBClusterSnapshotArn", required: false, type: .string), - AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: false, type: .string), - AWSShapeMember(label: "Port", required: false, type: .integer), - AWSShapeMember(label: "KmsKeyId", required: false, type: .string) + AWSShapeMember(label: "DBParameterGroupFamily", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "ListSupportedCharacterSets", required: false, type: .boolean) ] - /// Provides the list of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in. - public let availabilityZones: AvailabilityZones? - /// Specifies the allocated storage size in gigabytes (GB). - public let allocatedStorage: Int32? - /// Provides the license model information for this DB cluster snapshot. - public let licenseModel: String? - /// Provides the type of the DB cluster snapshot. - public let snapshotType: String? - /// The Amazon Resource Name (ARN) for the DB cluster snapshot. - public let dBClusterSnapshotArn: String? - /// Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC). - public let clusterCreateTime: TimeStamp? - /// True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled; otherwise false. - public let iAMDatabaseAuthenticationEnabled: Bool? - /// Specifies the DB cluster identifier of the DB cluster that this DB cluster snapshot was created from. - public let dBClusterIdentifier: String? - /// Provides the version of the database engine for this DB cluster snapshot. + /// The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so that the following results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// The database engine version to return. Example: 5.1.49 public let engineVersion: String? - /// Provides the VPC ID associated with the DB cluster snapshot. - public let vpcId: String? - /// Provides the master username for the DB cluster snapshot. - public let masterUsername: String? - /// Specifies the status of this DB cluster snapshot. - public let status: String? - /// Specifies the name of the database engine. + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// Indicates that only the default version of the specified engine or engine and major version combination is returned. + public let defaultOnly: Bool? + /// If this parameter is specified and the requested engine supports the TimeZone parameter for CreateDBInstance, the response includes a list of supported time zones for each engine version. + public let listSupportedTimezones: Bool? + /// The database engine to return. public let engine: String? - /// Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). - public let snapshotCreateTime: TimeStamp? - /// Specifies the percentage of the estimated data that has been transferred. - public let percentProgress: Int32? - /// Specifies whether the DB cluster snapshot is encrypted. - public let storageEncrypted: Bool? - /// If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot; otherwise, a null value. - public let sourceDBClusterSnapshotArn: String? - /// Specifies the identifier for the DB cluster snapshot. - public let dBClusterSnapshotIdentifier: String? - /// Specifies the port that the DB cluster was listening on at the time of the snapshot. - public let port: Int32? - /// If StorageEncrypted is true, the KMS key identifier for the encrypted DB cluster snapshot. - public let kmsKeyId: String? + /// The name of a specific DB parameter group family to return details for. Constraints: If supplied, must match an existing DBParameterGroupFamily. + public let dBParameterGroupFamily: String? + /// Not currently supported. + public let filters: FilterList? + /// If this parameter is specified and the requested engine supports the CharacterSetName parameter for CreateDBInstance, the response includes a list of supported character sets for each engine version. + public let listSupportedCharacterSets: Bool? - public init(availabilityZones: AvailabilityZones? = nil, allocatedStorage: Int32? = nil, licenseModel: String? = nil, snapshotType: String? = nil, dBClusterSnapshotArn: String? = nil, clusterCreateTime: TimeStamp? = nil, iAMDatabaseAuthenticationEnabled: Bool? = nil, dBClusterIdentifier: String? = nil, engineVersion: String? = nil, vpcId: String? = nil, masterUsername: String? = nil, status: String? = nil, engine: String? = nil, snapshotCreateTime: TimeStamp? = nil, percentProgress: Int32? = nil, storageEncrypted: Bool? = nil, sourceDBClusterSnapshotArn: String? = nil, dBClusterSnapshotIdentifier: String? = nil, port: Int32? = nil, kmsKeyId: String? = nil) { - self.availabilityZones = availabilityZones - self.allocatedStorage = allocatedStorage - self.licenseModel = licenseModel - self.snapshotType = snapshotType - self.dBClusterSnapshotArn = dBClusterSnapshotArn - self.clusterCreateTime = clusterCreateTime - self.iAMDatabaseAuthenticationEnabled = iAMDatabaseAuthenticationEnabled - self.dBClusterIdentifier = dBClusterIdentifier + public init(maxRecords: Int32? = nil, engineVersion: String? = nil, marker: String? = nil, defaultOnly: Bool? = nil, listSupportedTimezones: Bool? = nil, engine: String? = nil, dBParameterGroupFamily: String? = nil, filters: FilterList? = nil, listSupportedCharacterSets: Bool? = nil) { + self.maxRecords = maxRecords self.engineVersion = engineVersion - self.vpcId = vpcId - self.masterUsername = masterUsername - self.status = status + self.marker = marker + self.defaultOnly = defaultOnly + self.listSupportedTimezones = listSupportedTimezones self.engine = engine - self.snapshotCreateTime = snapshotCreateTime - self.percentProgress = percentProgress - self.storageEncrypted = storageEncrypted - self.sourceDBClusterSnapshotArn = sourceDBClusterSnapshotArn - self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier - self.port = port - self.kmsKeyId = kmsKeyId + self.dBParameterGroupFamily = dBParameterGroupFamily + self.filters = filters + self.listSupportedCharacterSets = listSupportedCharacterSets } private enum CodingKeys: String, CodingKey { - case availabilityZones = "AvailabilityZones" - case allocatedStorage = "AllocatedStorage" - case licenseModel = "LicenseModel" - case snapshotType = "SnapshotType" - case dBClusterSnapshotArn = "DBClusterSnapshotArn" - case clusterCreateTime = "ClusterCreateTime" - case iAMDatabaseAuthenticationEnabled = "IAMDatabaseAuthenticationEnabled" - case dBClusterIdentifier = "DBClusterIdentifier" + case maxRecords = "MaxRecords" case engineVersion = "EngineVersion" - case vpcId = "VpcId" - case masterUsername = "MasterUsername" - case status = "Status" + case marker = "Marker" + case defaultOnly = "DefaultOnly" + case listSupportedTimezones = "ListSupportedTimezones" case engine = "Engine" - case snapshotCreateTime = "SnapshotCreateTime" - case percentProgress = "PercentProgress" - case storageEncrypted = "StorageEncrypted" - case sourceDBClusterSnapshotArn = "SourceDBClusterSnapshotArn" - case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" - case port = "Port" - case kmsKeyId = "KmsKeyId" + case dBParameterGroupFamily = "DBParameterGroupFamily" + case filters = "Filters" + case listSupportedCharacterSets = "ListSupportedCharacterSets" } } - public struct DBSnapshotAttributeList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshotAttribute", required: false, type: .list) + public struct DescribeDBLogFilesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "DescribeDBLogFiles", required: false, type: .structure) ] - public let dBSnapshotAttribute: [DBSnapshotAttribute]? + /// A pagination token that can be used in a subsequent DescribeDBLogFiles request. + public let marker: String? + /// The DB log files returned. + public let describeDBLogFiles: DescribeDBLogFilesList? - public init(dBSnapshotAttribute: [DBSnapshotAttribute]? = nil) { - self.dBSnapshotAttribute = dBSnapshotAttribute + public init(marker: String? = nil, describeDBLogFiles: DescribeDBLogFilesList? = nil) { + self.marker = marker + self.describeDBLogFiles = describeDBLogFiles } private enum CodingKeys: String, CodingKey { - case dBSnapshotAttribute = "DBSnapshotAttribute" + case marker = "Marker" + case describeDBLogFiles = "DescribeDBLogFiles" } } - public struct PromoteReadReplicaDBClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBCluster", required: false, type: .structure) + public struct DescribePendingMaintenanceActionsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceIdentifier", required: false, type: .string), + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Marker", required: false, type: .string) ] - public let dBCluster: DBCluster? + /// The ARN of a resource to return pending maintenance actions for. + public let resourceIdentifier: String? + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// A filter that specifies one or more resources to return pending maintenance actions for. Supported filters: db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include pending maintenance actions for the DB clusters identified by these ARNs. db-instance-id - Accepts DB instance identifiers and DB instance ARNs. The results list will only include pending maintenance actions for the DB instances identified by these ARNs. + public let filters: FilterList? + /// An optional pagination token provided by a previous DescribePendingMaintenanceActions request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by MaxRecords. + public let marker: String? - public init(dBCluster: DBCluster? = nil) { - self.dBCluster = dBCluster + public init(resourceIdentifier: String? = nil, maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil) { + self.resourceIdentifier = resourceIdentifier + self.maxRecords = maxRecords + self.filters = filters + self.marker = marker } private enum CodingKeys: String, CodingKey { - case dBCluster = "DBCluster" + case resourceIdentifier = "ResourceIdentifier" + case maxRecords = "MaxRecords" + case filters = "Filters" + case marker = "Marker" } } - public struct ModifyDBSubnetGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSubnetGroup", required: false, type: .structure) + public struct Event: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceType", required: false, type: .enum), + AWSShapeMember(label: "Message", required: false, type: .string), + AWSShapeMember(label: "SourceIdentifier", required: false, type: .string), + AWSShapeMember(label: "Date", required: false, type: .timestamp), + AWSShapeMember(label: "EventCategories", required: false, type: .structure), + AWSShapeMember(label: "SourceArn", required: false, type: .string) ] - public let dBSubnetGroup: DBSubnetGroup? + /// Specifies the source type for this event. + public let sourceType: SourceType? + /// Provides the text of this event. + public let message: String? + /// Provides the identifier for the source of the event. + public let sourceIdentifier: String? + /// Specifies the date and time of the event. + public let date: TimeStamp? + /// Specifies the category for the event. + public let eventCategories: EventCategoriesList? + /// The Amazon Resource Name (ARN) for the event. + public let sourceArn: String? - public init(dBSubnetGroup: DBSubnetGroup? = nil) { - self.dBSubnetGroup = dBSubnetGroup + public init(sourceType: SourceType? = nil, message: String? = nil, sourceIdentifier: String? = nil, date: TimeStamp? = nil, eventCategories: EventCategoriesList? = nil, sourceArn: String? = nil) { + self.sourceType = sourceType + self.message = message + self.sourceIdentifier = sourceIdentifier + self.date = date + self.eventCategories = eventCategories + self.sourceArn = sourceArn } private enum CodingKeys: String, CodingKey { - case dBSubnetGroup = "DBSubnetGroup" + case sourceType = "SourceType" + case message = "Message" + case sourceIdentifier = "SourceIdentifier" + case date = "Date" + case eventCategories = "EventCategories" + case sourceArn = "SourceArn" } } - public struct DeleteEventSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubscriptionName", required: true, type: .string) + public struct EventCategoriesMap: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceType", required: false, type: .string), + AWSShapeMember(label: "EventCategories", required: false, type: .structure) ] - /// The name of the RDS event notification subscription you want to delete. - public let subscriptionName: String + /// The source type that the returned categories belong to + public let sourceType: String? + /// The event categories for the specified source type + public let eventCategories: EventCategoriesList? - public init(subscriptionName: String) { - self.subscriptionName = subscriptionName + public init(sourceType: String? = nil, eventCategories: EventCategoriesList? = nil) { + self.sourceType = sourceType + self.eventCategories = eventCategories } private enum CodingKeys: String, CodingKey { - case subscriptionName = "SubscriptionName" + case sourceType = "SourceType" + case eventCategories = "EventCategories" } } - public struct DeleteDBSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string) + public struct DescribeDBParameterGroupsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string) ] - /// The DBSnapshot identifier. Constraints: Must be the name of an existing DB snapshot in the available state. - public let dBSnapshotIdentifier: String + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// This parameter is not currently supported. + public let filters: FilterList? + /// An optional pagination token provided by a previous DescribeDBParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// The name of a specific DB parameter group to return details for. Constraints: If supplied, must match the name of an existing DBClusterParameterGroup. + public let dBParameterGroupName: String? - public init(dBSnapshotIdentifier: String) { - self.dBSnapshotIdentifier = dBSnapshotIdentifier + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil, dBParameterGroupName: String? = nil) { + self.maxRecords = maxRecords + self.filters = filters + self.marker = marker + self.dBParameterGroupName = dBParameterGroupName } private enum CodingKeys: String, CodingKey { - case dBSnapshotIdentifier = "DBSnapshotIdentifier" + case maxRecords = "MaxRecords" + case filters = "Filters" + case marker = "Marker" + case dBParameterGroupName = "DBParameterGroupName" } } - public struct DBInstanceStatusInfo: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Status", required: false, type: .string), - AWSShapeMember(label: "Message", required: false, type: .string), - AWSShapeMember(label: "StatusType", required: false, type: .string), - AWSShapeMember(label: "Normal", required: false, type: .boolean) + public struct CopyDBSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSnapshot", required: false, type: .structure) ] - /// Status of the DB instance. For a StatusType of read replica, the values can be replicating, error, stopped, or terminated. - public let status: String? - /// Details of the error if there is an error for the instance. If the instance is not in an error state, this value is blank. - public let message: String? - /// This value is currently "read replication." - public let statusType: String? - /// Boolean value that is true if the instance is operating normally, or false if the instance is in an error state. - public let normal: Bool? + public let dBSnapshot: DBSnapshot? - public init(status: String? = nil, message: String? = nil, statusType: String? = nil, normal: Bool? = nil) { - self.status = status - self.message = message - self.statusType = statusType - self.normal = normal + public init(dBSnapshot: DBSnapshot? = nil) { + self.dBSnapshot = dBSnapshot } private enum CodingKeys: String, CodingKey { - case status = "Status" - case message = "Message" - case statusType = "StatusType" - case normal = "Normal" + case dBSnapshot = "DBSnapshot" } } - public struct SourceIdsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceId", required: false, type: .list) + public struct ModifyEventSubscriptionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventSubscription", required: false, type: .structure) ] - public let sourceId: [String]? + public let eventSubscription: EventSubscription? - public init(sourceId: [String]? = nil) { - self.sourceId = sourceId + public init(eventSubscription: EventSubscription? = nil) { + self.eventSubscription = eventSubscription } private enum CodingKeys: String, CodingKey { - case sourceId = "SourceId" + case eventSubscription = "EventSubscription" } } - public struct SubnetIdentifierList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubnetIdentifier", required: false, type: .list) + public struct DBClusterList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBCluster", required: false, type: .list) ] - public let subnetIdentifier: [String]? + public let dBCluster: [DBCluster]? - public init(subnetIdentifier: [String]? = nil) { - self.subnetIdentifier = subnetIdentifier + public init(dBCluster: [DBCluster]? = nil) { + self.dBCluster = dBCluster } private enum CodingKeys: String, CodingKey { - case subnetIdentifier = "SubnetIdentifier" + case dBCluster = "DBCluster" } } - public struct ReservedDBInstancesOfferingMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ModifyOptionGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionGroupName", required: true, type: .string), + AWSShapeMember(label: "OptionsToInclude", required: false, type: .structure), + AWSShapeMember(label: "OptionsToRemove", required: false, type: .list), + AWSShapeMember(label: "ApplyImmediately", required: false, type: .boolean) + ] + /// The name of the option group to be modified. Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance + public let optionGroupName: String + /// Options in this list are added to the option group or, if already present, the specified configuration is used to update the existing configuration. + public let optionsToInclude: OptionConfigurationList? + /// Options in this list are removed from the option group. + public let optionsToRemove: [String]? + /// Indicates whether the changes should be applied immediately, or during the next maintenance window for each instance associated with the option group. + public let applyImmediately: Bool? + + public init(optionGroupName: String, optionsToInclude: OptionConfigurationList? = nil, optionsToRemove: [String]? = nil, applyImmediately: Bool? = nil) { + self.optionGroupName = optionGroupName + self.optionsToInclude = optionsToInclude + self.optionsToRemove = optionsToRemove + self.applyImmediately = applyImmediately + } + + private enum CodingKeys: String, CodingKey { + case optionGroupName = "OptionGroupName" + case optionsToInclude = "OptionsToInclude" + case optionsToRemove = "OptionsToRemove" + case applyImmediately = "ApplyImmediately" + } + } + + public struct DBParameterGroupStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string), + AWSShapeMember(label: "ParameterApplyStatus", required: false, type: .string) + ] + /// The name of the DP parameter group. + public let dBParameterGroupName: String? + /// The status of parameter updates. + public let parameterApplyStatus: String? + + public init(dBParameterGroupName: String? = nil, parameterApplyStatus: String? = nil) { + self.dBParameterGroupName = dBParameterGroupName + self.parameterApplyStatus = parameterApplyStatus + } + + private enum CodingKeys: String, CodingKey { + case dBParameterGroupName = "DBParameterGroupName" + case parameterApplyStatus = "ParameterApplyStatus" + } + } + + public struct DBSnapshotList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSnapshot", required: false, type: .list) + ] + public let dBSnapshot: [DBSnapshot]? + + public init(dBSnapshot: [DBSnapshot]? = nil) { + self.dBSnapshot = dBSnapshot + } + + private enum CodingKeys: String, CodingKey { + case dBSnapshot = "DBSnapshot" + } + } + + public struct OptionGroups: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "ReservedDBInstancesOfferings", required: false, type: .structure) + AWSShapeMember(label: "OptionGroupsList", required: false, type: .structure) ] - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - /// A list of reserved DB instance offerings. - public let reservedDBInstancesOfferings: ReservedDBInstancesOfferingList? + /// List of option groups. + public let optionGroupsList: OptionGroupsList? - public init(marker: String? = nil, reservedDBInstancesOfferings: ReservedDBInstancesOfferingList? = nil) { + public init(marker: String? = nil, optionGroupsList: OptionGroupsList? = nil) { self.marker = marker - self.reservedDBInstancesOfferings = reservedDBInstancesOfferings + self.optionGroupsList = optionGroupsList } private enum CodingKeys: String, CodingKey { case marker = "Marker" - case reservedDBInstancesOfferings = "ReservedDBInstancesOfferings" + case optionGroupsList = "OptionGroupsList" } } - public struct Subnet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubnetIdentifier", required: false, type: .string), - AWSShapeMember(label: "SubnetAvailabilityZone", required: false, type: .structure), - AWSShapeMember(label: "SubnetStatus", required: false, type: .string) + public struct CreateOptionGroupResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionGroup", required: false, type: .structure) ] - /// Specifies the identifier of the subnet. - public let subnetIdentifier: String? - public let subnetAvailabilityZone: AvailabilityZone? - /// Specifies the status of the subnet. - public let subnetStatus: String? + public let optionGroup: OptionGroup? - public init(subnetIdentifier: String? = nil, subnetAvailabilityZone: AvailabilityZone? = nil, subnetStatus: String? = nil) { - self.subnetIdentifier = subnetIdentifier - self.subnetAvailabilityZone = subnetAvailabilityZone - self.subnetStatus = subnetStatus + public init(optionGroup: OptionGroup? = nil) { + self.optionGroup = optionGroup } private enum CodingKeys: String, CodingKey { - case subnetIdentifier = "SubnetIdentifier" - case subnetAvailabilityZone = "SubnetAvailabilityZone" - case subnetStatus = "SubnetStatus" + case optionGroup = "OptionGroup" } } - public struct EC2SecurityGroup: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Status", required: false, type: .string), - AWSShapeMember(label: "EC2SecurityGroupId", required: false, type: .string), - AWSShapeMember(label: "EC2SecurityGroupOwnerId", required: false, type: .string), - AWSShapeMember(label: "EC2SecurityGroupName", required: false, type: .string) + public struct RestoreDBInstanceFromDBSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .structure) ] - /// Provides the status of the EC2 security group. Status can be "authorizing", "authorized", "revoking", and "revoked". - public let status: String? - /// Specifies the id of the EC2 security group. - public let eC2SecurityGroupId: String? - /// Specifies the AWS ID of the owner of the EC2 security group specified in the EC2SecurityGroupName field. - public let eC2SecurityGroupOwnerId: String? - /// Specifies the name of the EC2 security group. - public let eC2SecurityGroupName: String? + public let dBInstance: DBInstance? - public init(status: String? = nil, eC2SecurityGroupId: String? = nil, eC2SecurityGroupOwnerId: String? = nil, eC2SecurityGroupName: String? = nil) { - self.status = status - self.eC2SecurityGroupId = eC2SecurityGroupId - self.eC2SecurityGroupOwnerId = eC2SecurityGroupOwnerId - self.eC2SecurityGroupName = eC2SecurityGroupName + public init(dBInstance: DBInstance? = nil) { + self.dBInstance = dBInstance } private enum CodingKeys: String, CodingKey { - case status = "Status" - case eC2SecurityGroupId = "EC2SecurityGroupId" - case eC2SecurityGroupOwnerId = "EC2SecurityGroupOwnerId" - case eC2SecurityGroupName = "EC2SecurityGroupName" + case dBInstance = "DBInstance" } } - public struct Parameter: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ParameterValue", required: false, type: .string), + public struct OptionSetting: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "AllowedValues", required: false, type: .string), AWSShapeMember(label: "DataType", required: false, type: .string), - AWSShapeMember(label: "ParameterName", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "ApplyType", required: false, type: .string), - AWSShapeMember(label: "Source", required: false, type: .string), AWSShapeMember(label: "IsModifiable", required: false, type: .boolean), - AWSShapeMember(label: "MinimumEngineVersion", required: false, type: .string), - AWSShapeMember(label: "ApplyMethod", required: false, type: .enum), - AWSShapeMember(label: "Description", required: false, type: .string) + AWSShapeMember(label: "Value", required: false, type: .string), + AWSShapeMember(label: "DefaultValue", required: false, type: .string), + AWSShapeMember(label: "IsCollection", required: false, type: .boolean) ] - /// Specifies the value of the parameter. - public let parameterValue: String? - /// Specifies the valid range of values for the parameter. + /// The description of the option setting. + public let description: String? + /// The allowed values of the option setting. public let allowedValues: String? - /// Specifies the valid data type for the parameter. + /// The data type of the option setting. public let dataType: String? - /// Specifies the name of the parameter. - public let parameterName: String? - /// Specifies the engine specific parameters type. + /// The name of the option that has settings that you can set. + public let name: String? + /// The DB engine specific parameter type. public let applyType: String? - /// Indicates the source of the parameter value. - public let source: String? - /// Indicates whether (true) or not (false) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed. + /// A Boolean value that, when true, indicates the option setting can be modified from the default. public let isModifiable: Bool? - /// The earliest engine version to which the parameter can apply. - public let minimumEngineVersion: String? - /// Indicates when to apply parameter updates. - public let applyMethod: ApplyMethod? - /// Provides a description of the parameter. - public let description: String? + /// The current value of the option setting. + public let value: String? + /// The default value of the option setting. + public let defaultValue: String? + /// Indicates if the option setting is part of a collection. + public let isCollection: Bool? - public init(parameterValue: String? = nil, allowedValues: String? = nil, dataType: String? = nil, parameterName: String? = nil, applyType: String? = nil, source: String? = nil, isModifiable: Bool? = nil, minimumEngineVersion: String? = nil, applyMethod: ApplyMethod? = nil, description: String? = nil) { - self.parameterValue = parameterValue + public init(description: String? = nil, allowedValues: String? = nil, dataType: String? = nil, name: String? = nil, applyType: String? = nil, isModifiable: Bool? = nil, value: String? = nil, defaultValue: String? = nil, isCollection: Bool? = nil) { + self.description = description self.allowedValues = allowedValues self.dataType = dataType - self.parameterName = parameterName + self.name = name self.applyType = applyType - self.source = source self.isModifiable = isModifiable - self.minimumEngineVersion = minimumEngineVersion - self.applyMethod = applyMethod - self.description = description + self.value = value + self.defaultValue = defaultValue + self.isCollection = isCollection } private enum CodingKeys: String, CodingKey { - case parameterValue = "ParameterValue" + case description = "Description" case allowedValues = "AllowedValues" case dataType = "DataType" - case parameterName = "ParameterName" + case name = "Name" case applyType = "ApplyType" - case source = "Source" case isModifiable = "IsModifiable" - case minimumEngineVersion = "MinimumEngineVersion" - case applyMethod = "ApplyMethod" - case description = "Description" + case value = "Value" + case defaultValue = "DefaultValue" + case isCollection = "IsCollection" } } - public struct ResetDBParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Parameters", required: false, type: .structure), - AWSShapeMember(label: "DBParameterGroupName", required: true, type: .string), - AWSShapeMember(label: "ResetAllParameters", required: false, type: .boolean) + public struct ModifyDBSubnetGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIds", required: true, type: .structure), + AWSShapeMember(label: "DBSubnetGroupDescription", required: false, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: true, type: .string) ] - /// To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. To reset specific parameters, provide a list of the following: ParameterName and ApplyMethod. A maximum of 20 parameters can be modified in a single request. MySQL Valid Values (for Apply method): immediate | pending-reboot You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when DB instance reboots. MariaDB Valid Values (for Apply method): immediate | pending-reboot You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when DB instance reboots. Oracle Valid Values (for Apply method): pending-reboot - public let parameters: ParametersList? - /// The name of the DB parameter group. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBParameterGroupName: String - /// Specifies whether (true) or not (false) to reset all parameters in the DB parameter group to default values. Default: true - public let resetAllParameters: Bool? + /// The EC2 subnet IDs for the DB subnet group. + public let subnetIds: SubnetIdentifierList + /// The description for the DB subnet group. + public let dBSubnetGroupDescription: String? + /// The name for the DB subnet group. This value is stored as a lowercase string. You can't modify the default subnet group. Constraints: Must match the name of an existing DBSubnetGroup. Must not be default. Example: mySubnetgroup + public let dBSubnetGroupName: String - public init(parameters: ParametersList? = nil, dBParameterGroupName: String, resetAllParameters: Bool? = nil) { - self.parameters = parameters - self.dBParameterGroupName = dBParameterGroupName - self.resetAllParameters = resetAllParameters + public init(subnetIds: SubnetIdentifierList, dBSubnetGroupDescription: String? = nil, dBSubnetGroupName: String) { + self.subnetIds = subnetIds + self.dBSubnetGroupDescription = dBSubnetGroupDescription + self.dBSubnetGroupName = dBSubnetGroupName } private enum CodingKeys: String, CodingKey { - case parameters = "Parameters" - case dBParameterGroupName = "DBParameterGroupName" - case resetAllParameters = "ResetAllParameters" + case subnetIds = "SubnetIds" + case dBSubnetGroupDescription = "DBSubnetGroupDescription" + case dBSubnetGroupName = "DBSubnetGroupName" } } - public struct OptionSettingsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionSetting", required: false, type: .list) + public struct DownloadDBLogFilePortionDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AdditionalDataPending", required: false, type: .boolean), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "LogFileData", required: false, type: .string) ] - public let optionSetting: [OptionSetting]? + /// Boolean value that if true, indicates there is more data to be downloaded. + public let additionalDataPending: Bool? + /// A pagination token that can be used in a subsequent DownloadDBLogFilePortion request. + public let marker: String? + /// Entries from the specified log file. + public let logFileData: String? - public init(optionSetting: [OptionSetting]? = nil) { - self.optionSetting = optionSetting + public init(additionalDataPending: Bool? = nil, marker: String? = nil, logFileData: String? = nil) { + self.additionalDataPending = additionalDataPending + self.marker = marker + self.logFileData = logFileData } private enum CodingKeys: String, CodingKey { - case optionSetting = "OptionSetting" + case additionalDataPending = "AdditionalDataPending" + case marker = "Marker" + case logFileData = "LogFileData" } } - public struct OptionGroupOptionVersionsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionVersion", required: false, type: .list) + public struct DBSnapshotAttribute: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeName", required: false, type: .string), + AWSShapeMember(label: "AttributeValues", required: false, type: .structure) ] - public let optionVersion: [OptionVersion]? + /// The name of the manual DB snapshot attribute. The attribute named restore refers to the list of AWS accounts that have permission to copy or restore the manual DB cluster snapshot. For more information, see the ModifyDBSnapshotAttribute API action. + public let attributeName: String? + /// The value or values for the manual DB snapshot attribute. If the AttributeName field is set to restore, then this element returns a list of IDs of the AWS accounts that are authorized to copy or restore the manual DB snapshot. If a value of all is in the list, then the manual DB snapshot is public and available for any AWS account to copy or restore. + public let attributeValues: AttributeValueList? - public init(optionVersion: [OptionVersion]? = nil) { - self.optionVersion = optionVersion + public init(attributeName: String? = nil, attributeValues: AttributeValueList? = nil) { + self.attributeName = attributeName + self.attributeValues = attributeValues } private enum CodingKeys: String, CodingKey { - case optionVersion = "OptionVersion" + case attributeName = "AttributeName" + case attributeValues = "AttributeValues" } } - public struct DBInstanceList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstance", required: false, type: .list) + public struct RemoveSourceIdentifierFromSubscriptionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventSubscription", required: false, type: .structure) ] - public let dBInstance: [DBInstance]? + public let eventSubscription: EventSubscription? - public init(dBInstance: [DBInstance]? = nil) { - self.dBInstance = dBInstance + public init(eventSubscription: EventSubscription? = nil) { + self.eventSubscription = eventSubscription } private enum CodingKeys: String, CodingKey { - case dBInstance = "DBInstance" + case eventSubscription = "EventSubscription" } } - public struct SupportedCharacterSetsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CharacterSet", required: false, type: .list) + public struct DeleteOptionGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionGroupName", required: true, type: .string) ] - public let characterSet: [CharacterSet]? + /// The name of the option group to be deleted. You can't delete default option groups. + public let optionGroupName: String - public init(characterSet: [CharacterSet]? = nil) { - self.characterSet = characterSet + public init(optionGroupName: String) { + self.optionGroupName = optionGroupName } private enum CodingKeys: String, CodingKey { - case characterSet = "CharacterSet" + case optionGroupName = "OptionGroupName" } } - public struct DescribeEngineDefaultClusterParametersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroupFamily", required: true, type: .string), - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "Marker", required: false, type: .string) + public struct OrderableDBInstanceOptionsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OrderableDBInstanceOption", required: false, type: .list) ] - /// The name of the DB cluster parameter group family to return engine parameter information for. - public let dBParameterGroupFamily: String - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// This parameter is not currently supported. - public let filters: FilterList? - /// An optional pagination token provided by a previous DescribeEngineDefaultClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? + public let orderableDBInstanceOption: [OrderableDBInstanceOption]? - public init(dBParameterGroupFamily: String, maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil) { - self.dBParameterGroupFamily = dBParameterGroupFamily - self.maxRecords = maxRecords - self.filters = filters - self.marker = marker + public init(orderableDBInstanceOption: [OrderableDBInstanceOption]? = nil) { + self.orderableDBInstanceOption = orderableDBInstanceOption } private enum CodingKeys: String, CodingKey { - case dBParameterGroupFamily = "DBParameterGroupFamily" - case maxRecords = "MaxRecords" - case filters = "Filters" - case marker = "Marker" + case orderableDBInstanceOption = "OrderableDBInstanceOption" } } - public struct DBEngineVersion: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "SupportedCharacterSets", required: false, type: .structure), - AWSShapeMember(label: "DefaultCharacterSet", required: false, type: .structure), - AWSShapeMember(label: "Engine", required: false, type: .string), - AWSShapeMember(label: "SupportedTimezones", required: false, type: .structure), - AWSShapeMember(label: "DBParameterGroupFamily", required: false, type: .string), - AWSShapeMember(label: "ValidUpgradeTarget", required: false, type: .structure), - AWSShapeMember(label: "DBEngineDescription", required: false, type: .string), - AWSShapeMember(label: "DBEngineVersionDescription", required: false, type: .string) + public struct AddTagsToResourceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: true, type: .structure), + AWSShapeMember(label: "ResourceName", required: true, type: .string) ] - /// The version number of the database engine. - public let engineVersion: String? - /// A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance action. - public let supportedCharacterSets: SupportedCharacterSetsList? - /// The default character set for new instances of this engine version, if the CharacterSetName parameter of the CreateDBInstance API is not specified. - public let defaultCharacterSet: CharacterSet? - /// The name of the database engine. - public let engine: String? - /// A list of the time zones supported by this engine for the Timezone parameter of the CreateDBInstance action. - public let supportedTimezones: SupportedTimezonesList? - /// The name of the DB parameter group family for the database engine. - public let dBParameterGroupFamily: String? - /// A list of engine versions that this database engine version can be upgraded to. - public let validUpgradeTarget: ValidUpgradeTargetList? - /// The description of the database engine. - public let dBEngineDescription: String? - /// The description of the database engine version. - public let dBEngineVersionDescription: String? + /// The tags to be assigned to the Amazon RDS resource. + public let tags: TagList + /// The Amazon RDS resource that the tags are added to. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). + public let resourceName: String - public init(engineVersion: String? = nil, supportedCharacterSets: SupportedCharacterSetsList? = nil, defaultCharacterSet: CharacterSet? = nil, engine: String? = nil, supportedTimezones: SupportedTimezonesList? = nil, dBParameterGroupFamily: String? = nil, validUpgradeTarget: ValidUpgradeTargetList? = nil, dBEngineDescription: String? = nil, dBEngineVersionDescription: String? = nil) { - self.engineVersion = engineVersion - self.supportedCharacterSets = supportedCharacterSets - self.defaultCharacterSet = defaultCharacterSet - self.engine = engine - self.supportedTimezones = supportedTimezones - self.dBParameterGroupFamily = dBParameterGroupFamily - self.validUpgradeTarget = validUpgradeTarget - self.dBEngineDescription = dBEngineDescription - self.dBEngineVersionDescription = dBEngineVersionDescription + public init(tags: TagList, resourceName: String) { + self.tags = tags + self.resourceName = resourceName } private enum CodingKeys: String, CodingKey { - case engineVersion = "EngineVersion" - case supportedCharacterSets = "SupportedCharacterSets" - case defaultCharacterSet = "DefaultCharacterSet" - case engine = "Engine" - case supportedTimezones = "SupportedTimezones" - case dBParameterGroupFamily = "DBParameterGroupFamily" - case validUpgradeTarget = "ValidUpgradeTarget" - case dBEngineDescription = "DBEngineDescription" - case dBEngineVersionDescription = "DBEngineVersionDescription" + case tags = "Tags" + case resourceName = "ResourceName" } } - public struct OptionGroupMembershipList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionGroupMembership", required: false, type: .list) + public struct DBClusterOptionGroupMemberships: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterOptionGroup", required: false, type: .list) ] - public let optionGroupMembership: [OptionGroupMembership]? + public let dBClusterOptionGroup: [DBClusterOptionGroupStatus]? - public init(optionGroupMembership: [OptionGroupMembership]? = nil) { - self.optionGroupMembership = optionGroupMembership + public init(dBClusterOptionGroup: [DBClusterOptionGroupStatus]? = nil) { + self.dBClusterOptionGroup = dBClusterOptionGroup } private enum CodingKeys: String, CodingKey { - case optionGroupMembership = "OptionGroupMembership" + case dBClusterOptionGroup = "DBClusterOptionGroup" } } - public struct ReadReplicaDBClusterIdentifierList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReadReplicaDBClusterIdentifier", required: false, type: .list) + public struct DeleteDBSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSnapshot", required: false, type: .structure) ] - public let readReplicaDBClusterIdentifier: [String]? + public let dBSnapshot: DBSnapshot? - public init(readReplicaDBClusterIdentifier: [String]? = nil) { - self.readReplicaDBClusterIdentifier = readReplicaDBClusterIdentifier + public init(dBSnapshot: DBSnapshot? = nil) { + self.dBSnapshot = dBSnapshot } private enum CodingKeys: String, CodingKey { - case readReplicaDBClusterIdentifier = "ReadReplicaDBClusterIdentifier" + case dBSnapshot = "DBSnapshot" } } - public struct DBClusterSnapshotList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterSnapshot", required: false, type: .list) + public struct ModifyDBClusterSnapshotAttributeMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeName", required: true, type: .string), + AWSShapeMember(label: "ValuesToAdd", required: false, type: .structure), + AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: true, type: .string), + AWSShapeMember(label: "ValuesToRemove", required: false, type: .structure) ] - public let dBClusterSnapshot: [DBClusterSnapshot]? + /// The name of the DB cluster snapshot attribute to modify. To manage authorization for other AWS accounts to copy or restore a manual DB cluster snapshot, set this value to restore. + public let attributeName: String + /// A list of DB cluster snapshot attributes to add to the attribute specified by AttributeName. To authorize other AWS accounts to copy or restore a manual DB cluster snapshot, set this list to include one or more AWS account IDs, or all to make the manual DB cluster snapshot restorable by any AWS account. Do not add the all value for any manual DB cluster snapshots that contain private information that you don't want available to all AWS accounts. + public let valuesToAdd: AttributeValueList? + /// The identifier for the DB cluster snapshot to modify the attributes for. + public let dBClusterSnapshotIdentifier: String + /// A list of DB cluster snapshot attributes to remove from the attribute specified by AttributeName. To remove authorization for other AWS accounts to copy or restore a manual DB cluster snapshot, set this list to include one or more AWS account identifiers, or all to remove authorization for any AWS account to copy or restore the DB cluster snapshot. If you specify all, an AWS account whose account ID is explicitly added to the restore attribute can still copy or restore a manual DB cluster snapshot. + public let valuesToRemove: AttributeValueList? - public init(dBClusterSnapshot: [DBClusterSnapshot]? = nil) { - self.dBClusterSnapshot = dBClusterSnapshot + public init(attributeName: String, valuesToAdd: AttributeValueList? = nil, dBClusterSnapshotIdentifier: String, valuesToRemove: AttributeValueList? = nil) { + self.attributeName = attributeName + self.valuesToAdd = valuesToAdd + self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier + self.valuesToRemove = valuesToRemove } private enum CodingKeys: String, CodingKey { - case dBClusterSnapshot = "DBClusterSnapshot" + case attributeName = "AttributeName" + case valuesToAdd = "ValuesToAdd" + case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" + case valuesToRemove = "ValuesToRemove" } } - public struct DescribeDBLogFilesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string), - AWSShapeMember(label: "FileSize", required: false, type: .long), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "FileLastWritten", required: false, type: .long), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "FilenameContains", required: false, type: .string) + public struct DBEngineVersionList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBEngineVersion", required: false, type: .list) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. - public let maxRecords: Int32? - /// The customer-assigned name of the DB instance that contains the log files you want to list. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBInstanceIdentifier: String - /// Filters the available log files for files larger than the specified size. - public let fileSize: Int64? - /// The pagination token provided in the previous request. If this parameter is specified the response includes only records beyond the marker, up to MaxRecords. - public let marker: String? - /// Filters the available log files for files written since the specified date, in POSIX timestamp format with milliseconds. - public let fileLastWritten: Int64? - /// This parameter is not currently supported. - public let filters: FilterList? - /// Filters the available log files for log file names that contain the specified string. - public let filenameContains: String? + public let dBEngineVersion: [DBEngineVersion]? - public init(maxRecords: Int32? = nil, dBInstanceIdentifier: String, fileSize: Int64? = nil, marker: String? = nil, fileLastWritten: Int64? = nil, filters: FilterList? = nil, filenameContains: String? = nil) { - self.maxRecords = maxRecords - self.dBInstanceIdentifier = dBInstanceIdentifier - self.fileSize = fileSize - self.marker = marker - self.fileLastWritten = fileLastWritten - self.filters = filters - self.filenameContains = filenameContains + public init(dBEngineVersion: [DBEngineVersion]? = nil) { + self.dBEngineVersion = dBEngineVersion } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case dBInstanceIdentifier = "DBInstanceIdentifier" - case fileSize = "FileSize" - case marker = "Marker" - case fileLastWritten = "FileLastWritten" - case filters = "Filters" - case filenameContains = "FilenameContains" + case dBEngineVersion = "DBEngineVersion" } } - public struct AccountQuota: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Max", required: false, type: .long), - AWSShapeMember(label: "Used", required: false, type: .long), - AWSShapeMember(label: "AccountQuotaName", required: false, type: .string) + public struct PendingMaintenanceActionDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PendingMaintenanceAction", required: false, type: .list) ] - /// The maximum allowed value for the quota. - public let max: Int64? - /// The amount currently used toward the quota maximum. - public let used: Int64? - /// The name of the Amazon RDS quota for this AWS account. - public let accountQuotaName: String? + public let pendingMaintenanceAction: [PendingMaintenanceAction]? - public init(max: Int64? = nil, used: Int64? = nil, accountQuotaName: String? = nil) { - self.max = max - self.used = used - self.accountQuotaName = accountQuotaName + public init(pendingMaintenanceAction: [PendingMaintenanceAction]? = nil) { + self.pendingMaintenanceAction = pendingMaintenanceAction } private enum CodingKeys: String, CodingKey { - case max = "Max" - case used = "Used" - case accountQuotaName = "AccountQuotaName" + case pendingMaintenanceAction = "PendingMaintenanceAction" } } - public struct DescribeDBEngineVersionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "DefaultOnly", required: false, type: .boolean), - AWSShapeMember(label: "ListSupportedTimezones", required: false, type: .boolean), - AWSShapeMember(label: "Engine", required: false, type: .string), - AWSShapeMember(label: "DBParameterGroupFamily", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "ListSupportedCharacterSets", required: false, type: .boolean) + public struct EventSubscriptionsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventSubscriptionsList", required: false, type: .structure), + AWSShapeMember(label: "Marker", required: false, type: .string) ] - /// The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so that the following results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// The database engine version to return. Example: 5.1.49 - public let engineVersion: String? - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + /// A list of EventSubscriptions data types. + public let eventSubscriptionsList: EventSubscriptionsList? + /// An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - /// Indicates that only the default version of the specified engine or engine and major version combination is returned. - public let defaultOnly: Bool? - /// If this parameter is specified and the requested engine supports the TimeZone parameter for CreateDBInstance, the response includes a list of supported time zones for each engine version. - public let listSupportedTimezones: Bool? - /// The database engine to return. - public let engine: String? - /// The name of a specific DB parameter group family to return details for. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBParameterGroupFamily: String? - /// Not currently supported. - public let filters: FilterList? - /// If this parameter is specified and the requested engine supports the CharacterSetName parameter for CreateDBInstance, the response includes a list of supported character sets for each engine version. - public let listSupportedCharacterSets: Bool? - public init(maxRecords: Int32? = nil, engineVersion: String? = nil, marker: String? = nil, defaultOnly: Bool? = nil, listSupportedTimezones: Bool? = nil, engine: String? = nil, dBParameterGroupFamily: String? = nil, filters: FilterList? = nil, listSupportedCharacterSets: Bool? = nil) { - self.maxRecords = maxRecords - self.engineVersion = engineVersion + public init(eventSubscriptionsList: EventSubscriptionsList? = nil, marker: String? = nil) { + self.eventSubscriptionsList = eventSubscriptionsList self.marker = marker - self.defaultOnly = defaultOnly - self.listSupportedTimezones = listSupportedTimezones - self.engine = engine - self.dBParameterGroupFamily = dBParameterGroupFamily - self.filters = filters - self.listSupportedCharacterSets = listSupportedCharacterSets } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case engineVersion = "EngineVersion" + case eventSubscriptionsList = "EventSubscriptionsList" case marker = "Marker" - case defaultOnly = "DefaultOnly" - case listSupportedTimezones = "ListSupportedTimezones" - case engine = "Engine" - case dBParameterGroupFamily = "DBParameterGroupFamily" - case filters = "Filters" - case listSupportedCharacterSets = "ListSupportedCharacterSets" } } - public struct DescribeDBLogFilesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "DescribeDBLogFiles", required: false, type: .structure) + public struct ModifyDBSnapshotMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string) ] - /// A pagination token that can be used in a subsequent DescribeDBLogFiles request. - public let marker: String? - /// The DB log files returned. - public let describeDBLogFiles: DescribeDBLogFilesList? + /// The engine version to upgrade the DB snapshot to. The following are the database engines and engine versions that are available when you upgrade a DB snapshot. MySQL 5.5.46 (supported for 5.1 DB snapshots) Oracle 12.1.0.2.v8 (supported for 12.1.0.1 DB snapshots) 11.2.0.4.v12 (supported for 11.2.0.2 DB snapshots) 11.2.0.4.v11 (supported for 11.2.0.3 DB snapshots) + public let engineVersion: String? + /// The identifier of the DB snapshot to modify. + public let dBSnapshotIdentifier: String + /// The option group to identify with the upgraded DB snapshot. You can specify this parameter when you upgrade an Oracle DB snapshot. The same option group considerations apply when upgrading a DB snapshot as when upgrading a DB instance. For more information, see Option Group Considerations. + public let optionGroupName: String? - public init(marker: String? = nil, describeDBLogFiles: DescribeDBLogFilesList? = nil) { - self.marker = marker - self.describeDBLogFiles = describeDBLogFiles + public init(engineVersion: String? = nil, dBSnapshotIdentifier: String, optionGroupName: String? = nil) { + self.engineVersion = engineVersion + self.dBSnapshotIdentifier = dBSnapshotIdentifier + self.optionGroupName = optionGroupName } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case describeDBLogFiles = "DescribeDBLogFiles" + case engineVersion = "EngineVersion" + case dBSnapshotIdentifier = "DBSnapshotIdentifier" + case optionGroupName = "OptionGroupName" } } - public struct DescribePendingMaintenanceActionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourceIdentifier", required: false, type: .string), - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "Marker", required: false, type: .string) + public struct EventSubscriptionsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventSubscription", required: false, type: .list) ] - /// The ARN of a resource to return pending maintenance actions for. - public let resourceIdentifier: String? - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// A filter that specifies one or more resources to return pending maintenance actions for. Supported filters: db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include pending maintenance actions for the DB clusters identified by these ARNs. db-instance-id - Accepts DB instance identifiers and DB instance ARNs. The results list will only include pending maintenance actions for the DB instances identified by these ARNs. - public let filters: FilterList? - /// An optional pagination token provided by a previous DescribePendingMaintenanceActions request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by MaxRecords. - public let marker: String? + public let eventSubscription: [EventSubscription]? - public init(resourceIdentifier: String? = nil, maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil) { - self.resourceIdentifier = resourceIdentifier - self.maxRecords = maxRecords - self.filters = filters - self.marker = marker + public init(eventSubscription: [EventSubscription]? = nil) { + self.eventSubscription = eventSubscription } private enum CodingKeys: String, CodingKey { - case resourceIdentifier = "ResourceIdentifier" - case maxRecords = "MaxRecords" - case filters = "Filters" - case marker = "Marker" + case eventSubscription = "EventSubscription" } } - public struct Event: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceType", required: false, type: .enum), - AWSShapeMember(label: "Message", required: false, type: .string), - AWSShapeMember(label: "SourceIdentifier", required: false, type: .string), - AWSShapeMember(label: "Date", required: false, type: .timestamp), - AWSShapeMember(label: "EventCategories", required: false, type: .structure), - AWSShapeMember(label: "SourceArn", required: false, type: .string) + public struct AddSourceIdentifierToSubscriptionMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceIdentifier", required: true, type: .string), + AWSShapeMember(label: "SubscriptionName", required: true, type: .string) ] - /// Specifies the source type for this event. - public let sourceType: SourceType? - /// Provides the text of this event. - public let message: String? - /// Provides the identifier for the source of the event. - public let sourceIdentifier: String? - /// Specifies the date and time of the event. - public let date: TimeStamp? - /// Specifies the category for the event. - public let eventCategories: EventCategoriesList? - /// The Amazon Resource Name (ARN) for the event. - public let sourceArn: String? + /// The identifier of the event source to be added. Constraints: If the source type is a DB instance, then a DBInstanceIdentifier must be supplied. If the source type is a DB security group, a DBSecurityGroupName must be supplied. If the source type is a DB parameter group, a DBParameterGroupName must be supplied. If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied. + public let sourceIdentifier: String + /// The name of the RDS event notification subscription you want to add a source identifier to. + public let subscriptionName: String - public init(sourceType: SourceType? = nil, message: String? = nil, sourceIdentifier: String? = nil, date: TimeStamp? = nil, eventCategories: EventCategoriesList? = nil, sourceArn: String? = nil) { - self.sourceType = sourceType - self.message = message + public init(sourceIdentifier: String, subscriptionName: String) { self.sourceIdentifier = sourceIdentifier - self.date = date - self.eventCategories = eventCategories - self.sourceArn = sourceArn + self.subscriptionName = subscriptionName } private enum CodingKeys: String, CodingKey { - case sourceType = "SourceType" - case message = "Message" case sourceIdentifier = "SourceIdentifier" - case date = "Date" - case eventCategories = "EventCategories" - case sourceArn = "SourceArn" + case subscriptionName = "SubscriptionName" } } - public struct DescribeDBClusterSnapshotAttributesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: true, type: .string) + public struct CreateEventSubscriptionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventSubscription", required: false, type: .structure) ] - /// The identifier for the DB cluster snapshot to describe the attributes for. - public let dBClusterSnapshotIdentifier: String + public let eventSubscription: EventSubscription? - public init(dBClusterSnapshotIdentifier: String) { - self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier + public init(eventSubscription: EventSubscription? = nil) { + self.eventSubscription = eventSubscription } private enum CodingKeys: String, CodingKey { - case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" + case eventSubscription = "EventSubscription" } } - public struct DBSecurityGroup: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSecurityGroupDescription", required: false, type: .string), - AWSShapeMember(label: "EC2SecurityGroups", required: false, type: .structure), - AWSShapeMember(label: "DBSecurityGroupArn", required: false, type: .string), - AWSShapeMember(label: "VpcId", required: false, type: .string), - AWSShapeMember(label: "IPRanges", required: false, type: .structure), - AWSShapeMember(label: "OwnerId", required: false, type: .string), - AWSShapeMember(label: "DBSecurityGroupName", required: false, type: .string) + public struct PendingMaintenanceActionsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "PendingMaintenanceActions", required: false, type: .structure) ] - /// Provides the description of the DB security group. - public let dBSecurityGroupDescription: String? - /// Contains a list of EC2SecurityGroup elements. - public let eC2SecurityGroups: EC2SecurityGroupList? - /// The Amazon Resource Name (ARN) for the DB security group. - public let dBSecurityGroupArn: String? - /// Provides the VpcId of the DB security group. - public let vpcId: String? - /// Contains a list of IPRange elements. - public let iPRanges: IPRangeList? - /// Provides the AWS ID of the owner of a specific DB security group. - public let ownerId: String? - /// Specifies the name of the DB security group. - public let dBSecurityGroupName: String? + /// An optional pagination token provided by a previous DescribePendingMaintenanceActions request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by MaxRecords. + public let marker: String? + /// A list of the pending maintenance actions for the resource. + public let pendingMaintenanceActions: PendingMaintenanceActions? - public init(dBSecurityGroupDescription: String? = nil, eC2SecurityGroups: EC2SecurityGroupList? = nil, dBSecurityGroupArn: String? = nil, vpcId: String? = nil, iPRanges: IPRangeList? = nil, ownerId: String? = nil, dBSecurityGroupName: String? = nil) { - self.dBSecurityGroupDescription = dBSecurityGroupDescription - self.eC2SecurityGroups = eC2SecurityGroups - self.dBSecurityGroupArn = dBSecurityGroupArn - self.vpcId = vpcId - self.iPRanges = iPRanges - self.ownerId = ownerId - self.dBSecurityGroupName = dBSecurityGroupName + public init(marker: String? = nil, pendingMaintenanceActions: PendingMaintenanceActions? = nil) { + self.marker = marker + self.pendingMaintenanceActions = pendingMaintenanceActions } private enum CodingKeys: String, CodingKey { - case dBSecurityGroupDescription = "DBSecurityGroupDescription" - case eC2SecurityGroups = "EC2SecurityGroups" - case dBSecurityGroupArn = "DBSecurityGroupArn" - case vpcId = "VpcId" - case iPRanges = "IPRanges" - case ownerId = "OwnerId" - case dBSecurityGroupName = "DBSecurityGroupName" + case marker = "Marker" + case pendingMaintenanceActions = "PendingMaintenanceActions" } } - public struct DescribeEventSubscriptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "SubscriptionName", required: false, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string) + public struct CopyDBClusterSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterSnapshot", required: false, type: .structure) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// This parameter is not currently supported. - public let filters: FilterList? - /// The name of the RDS event notification subscription you want to describe. - public let subscriptionName: String? - /// An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords . - public let marker: String? + public let dBClusterSnapshot: DBClusterSnapshot? - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, subscriptionName: String? = nil, marker: String? = nil) { - self.maxRecords = maxRecords - self.filters = filters - self.subscriptionName = subscriptionName - self.marker = marker + public init(dBClusterSnapshot: DBClusterSnapshot? = nil) { + self.dBClusterSnapshot = dBClusterSnapshot } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case filters = "Filters" - case subscriptionName = "SubscriptionName" - case marker = "Marker" + case dBClusterSnapshot = "DBClusterSnapshot" } } - public struct PromoteReadReplicaMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), - AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), - AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) + public struct DBInstanceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "DBInstances", required: false, type: .structure) ] - /// The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups. Default: 1 Constraints: Must be a value from 0 to 8 - public let backupRetentionPeriod: Int32? - /// The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. Default: A 30-minute window selected at random from an 8-hour block of time per region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Constraints: Must be in the format hh24:mi-hh24:mi. Times should be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. - public let preferredBackupWindow: String? - /// The DB instance identifier. This value is stored as a lowercase string. Constraints: Must be the identifier for an existing Read Replica DB instance Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: mydbinstance - public let dBInstanceIdentifier: String + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords . + public let marker: String? + /// A list of DBInstance instances. + public let dBInstances: DBInstanceList? - public init(backupRetentionPeriod: Int32? = nil, preferredBackupWindow: String? = nil, dBInstanceIdentifier: String) { - self.backupRetentionPeriod = backupRetentionPeriod - self.preferredBackupWindow = preferredBackupWindow - self.dBInstanceIdentifier = dBInstanceIdentifier + public init(marker: String? = nil, dBInstances: DBInstanceList? = nil) { + self.marker = marker + self.dBInstances = dBInstances } private enum CodingKeys: String, CodingKey { - case backupRetentionPeriod = "BackupRetentionPeriod" - case preferredBackupWindow = "PreferredBackupWindow" - case dBInstanceIdentifier = "DBInstanceIdentifier" + case marker = "Marker" + case dBInstances = "DBInstances" } } - public struct EventCategoriesMap: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceType", required: false, type: .string), - AWSShapeMember(label: "EventCategories", required: false, type: .structure) + public struct PromoteReadReplicaResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .structure) ] - /// The source type that the returned categories belong to - public let sourceType: String? - /// The event categories for the specified source type - public let eventCategories: EventCategoriesList? + public let dBInstance: DBInstance? - public init(sourceType: String? = nil, eventCategories: EventCategoriesList? = nil) { - self.sourceType = sourceType - self.eventCategories = eventCategories + public init(dBInstance: DBInstance? = nil) { + self.dBInstance = dBInstance } private enum CodingKeys: String, CodingKey { - case sourceType = "SourceType" - case eventCategories = "EventCategories" + case dBInstance = "DBInstance" } } - public struct DescribeDBParameterGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string) + public struct EventCategoriesList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventCategory", required: false, type: .list) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// This parameter is not currently supported. - public let filters: FilterList? - /// An optional pagination token provided by a previous DescribeDBParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// The name of a specific DB parameter group to return details for. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBParameterGroupName: String? + public let eventCategory: [String]? - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil, dBParameterGroupName: String? = nil) { - self.maxRecords = maxRecords - self.filters = filters - self.marker = marker - self.dBParameterGroupName = dBParameterGroupName + public init(eventCategory: [String]? = nil) { + self.eventCategory = eventCategory } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case filters = "Filters" - case marker = "Marker" - case dBParameterGroupName = "DBParameterGroupName" + case eventCategory = "EventCategory" } } - public struct CopyDBSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshot", required: false, type: .structure) + public struct DBSecurityGroups: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSecurityGroup", required: false, type: .list) ] - public let dBSnapshot: DBSnapshot? + public let dBSecurityGroup: [DBSecurityGroup]? - public init(dBSnapshot: DBSnapshot? = nil) { - self.dBSnapshot = dBSnapshot + public init(dBSecurityGroup: [DBSecurityGroup]? = nil) { + self.dBSecurityGroup = dBSecurityGroup } private enum CodingKeys: String, CodingKey { - case dBSnapshot = "DBSnapshot" + case dBSecurityGroup = "DBSecurityGroup" } } - public struct DBClusterRoles: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterRole", required: false, type: .list) + public struct CopyDBParameterGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetDBParameterGroupIdentifier", required: true, type: .string), + AWSShapeMember(label: "SourceDBParameterGroupIdentifier", required: true, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "TargetDBParameterGroupDescription", required: true, type: .string) ] - public let dBClusterRole: [DBClusterRole]? + /// The identifier for the copied DB parameter group. Constraints: Cannot be null, empty, or blank Must contain from 1 to 255 letters, numbers, or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-db-parameter-group + public let targetDBParameterGroupIdentifier: String + /// The identifier or ARN for the source DB parameter group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). Constraints: Must specify a valid DB parameter group. Must specify a valid DB parameter group identifier, for example my-db-param-group, or a valid ARN. + public let sourceDBParameterGroupIdentifier: String + public let tags: TagList? + /// A description for the copied DB parameter group. + public let targetDBParameterGroupDescription: String - public init(dBClusterRole: [DBClusterRole]? = nil) { - self.dBClusterRole = dBClusterRole + public init(targetDBParameterGroupIdentifier: String, sourceDBParameterGroupIdentifier: String, tags: TagList? = nil, targetDBParameterGroupDescription: String) { + self.targetDBParameterGroupIdentifier = targetDBParameterGroupIdentifier + self.sourceDBParameterGroupIdentifier = sourceDBParameterGroupIdentifier + self.tags = tags + self.targetDBParameterGroupDescription = targetDBParameterGroupDescription } private enum CodingKeys: String, CodingKey { - case dBClusterRole = "DBClusterRole" + case targetDBParameterGroupIdentifier = "TargetDBParameterGroupIdentifier" + case sourceDBParameterGroupIdentifier = "SourceDBParameterGroupIdentifier" + case tags = "Tags" + case targetDBParameterGroupDescription = "TargetDBParameterGroupDescription" } } - public struct ModifyEventSubscriptionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventSubscription", required: false, type: .structure) + public struct OrderableDBInstanceOption: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SupportsIops", required: false, type: .boolean), + AWSShapeMember(label: "AvailabilityZones", required: false, type: .structure), + AWSShapeMember(label: "MinIopsPerGib", required: false, type: .double), + AWSShapeMember(label: "MaxIopsPerGib", required: false, type: .double), + AWSShapeMember(label: "LicenseModel", required: false, type: .string), + AWSShapeMember(label: "StorageType", required: false, type: .string), + AWSShapeMember(label: "MinIopsPerDbInstance", required: false, type: .integer), + AWSShapeMember(label: "MinStorageSize", required: false, type: .integer), + AWSShapeMember(label: "SupportsIAMDatabaseAuthentication", required: false, type: .boolean), + AWSShapeMember(label: "SupportsStorageEncryption", required: false, type: .boolean), + AWSShapeMember(label: "MultiAZCapable", required: false, type: .boolean), + AWSShapeMember(label: "ReadReplicaCapable", required: false, type: .boolean), + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "MaxStorageSize", required: false, type: .integer), + AWSShapeMember(label: "SupportsEnhancedMonitoring", required: false, type: .boolean), + AWSShapeMember(label: "Engine", required: false, type: .string), + AWSShapeMember(label: "SupportsPerformanceInsights", required: false, type: .boolean), + AWSShapeMember(label: "Vpc", required: false, type: .boolean), + AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), + AWSShapeMember(label: "MaxIopsPerDbInstance", required: false, type: .integer) ] - public let eventSubscription: EventSubscription? + /// Indicates whether a DB instance supports provisioned IOPS. + public let supportsIops: Bool? + /// A list of Availability Zones for a DB instance. + public let availabilityZones: AvailabilityZoneList? + /// Minimum provisioned IOPS per GiB for a DB instance. + public let minIopsPerGib: Double? + /// Maximum provisioned IOPS per GiB for a DB instance. + public let maxIopsPerGib: Double? + /// The license model for a DB instance. + public let licenseModel: String? + /// Indicates the storage type for a DB instance. + public let storageType: String? + /// Minimum total provisioned IOPS for a DB instance. + public let minIopsPerDbInstance: Int32? + /// Minimum storage size for a DB instance. + public let minStorageSize: Int32? + /// Indicates whether a DB instance supports IAM database authentication. + public let supportsIAMDatabaseAuthentication: Bool? + /// Indicates whether a DB instance supports encrypted storage. + public let supportsStorageEncryption: Bool? + /// Indicates whether a DB instance is Multi-AZ capable. + public let multiAZCapable: Bool? + /// Indicates whether a DB instance can have a Read Replica. + public let readReplicaCapable: Bool? + /// The engine version of a DB instance. + public let engineVersion: String? + /// Maximum storage size for a DB instance. + public let maxStorageSize: Int32? + /// Indicates whether a DB instance supports Enhanced Monitoring at intervals from 1 to 60 seconds. + public let supportsEnhancedMonitoring: Bool? + /// The engine type of a DB instance. + public let engine: String? + /// True if a DB instance supports Performance Insights, otherwise false. + public let supportsPerformanceInsights: Bool? + /// Indicates whether a DB instance is in a VPC. + public let vpc: Bool? + /// The DB instance class for a DB instance. + public let dBInstanceClass: String? + /// Maximum total provisioned IOPS for a DB instance. + public let maxIopsPerDbInstance: Int32? - public init(eventSubscription: EventSubscription? = nil) { - self.eventSubscription = eventSubscription + public init(supportsIops: Bool? = nil, availabilityZones: AvailabilityZoneList? = nil, minIopsPerGib: Double? = nil, maxIopsPerGib: Double? = nil, licenseModel: String? = nil, storageType: String? = nil, minIopsPerDbInstance: Int32? = nil, minStorageSize: Int32? = nil, supportsIAMDatabaseAuthentication: Bool? = nil, supportsStorageEncryption: Bool? = nil, multiAZCapable: Bool? = nil, readReplicaCapable: Bool? = nil, engineVersion: String? = nil, maxStorageSize: Int32? = nil, supportsEnhancedMonitoring: Bool? = nil, engine: String? = nil, supportsPerformanceInsights: Bool? = nil, vpc: Bool? = nil, dBInstanceClass: String? = nil, maxIopsPerDbInstance: Int32? = nil) { + self.supportsIops = supportsIops + self.availabilityZones = availabilityZones + self.minIopsPerGib = minIopsPerGib + self.maxIopsPerGib = maxIopsPerGib + self.licenseModel = licenseModel + self.storageType = storageType + self.minIopsPerDbInstance = minIopsPerDbInstance + self.minStorageSize = minStorageSize + self.supportsIAMDatabaseAuthentication = supportsIAMDatabaseAuthentication + self.supportsStorageEncryption = supportsStorageEncryption + self.multiAZCapable = multiAZCapable + self.readReplicaCapable = readReplicaCapable + self.engineVersion = engineVersion + self.maxStorageSize = maxStorageSize + self.supportsEnhancedMonitoring = supportsEnhancedMonitoring + self.engine = engine + self.supportsPerformanceInsights = supportsPerformanceInsights + self.vpc = vpc + self.dBInstanceClass = dBInstanceClass + self.maxIopsPerDbInstance = maxIopsPerDbInstance } private enum CodingKeys: String, CodingKey { - case eventSubscription = "EventSubscription" + case supportsIops = "SupportsIops" + case availabilityZones = "AvailabilityZones" + case minIopsPerGib = "MinIopsPerGib" + case maxIopsPerGib = "MaxIopsPerGib" + case licenseModel = "LicenseModel" + case storageType = "StorageType" + case minIopsPerDbInstance = "MinIopsPerDbInstance" + case minStorageSize = "MinStorageSize" + case supportsIAMDatabaseAuthentication = "SupportsIAMDatabaseAuthentication" + case supportsStorageEncryption = "SupportsStorageEncryption" + case multiAZCapable = "MultiAZCapable" + case readReplicaCapable = "ReadReplicaCapable" + case engineVersion = "EngineVersion" + case maxStorageSize = "MaxStorageSize" + case supportsEnhancedMonitoring = "SupportsEnhancedMonitoring" + case engine = "Engine" + case supportsPerformanceInsights = "SupportsPerformanceInsights" + case vpc = "Vpc" + case dBInstanceClass = "DBInstanceClass" + case maxIopsPerDbInstance = "MaxIopsPerDbInstance" } } - public struct StartDBInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstance", required: false, type: .structure) + public struct RecurringChargeList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RecurringCharge", required: false, type: .list) ] - public let dBInstance: DBInstance? + public let recurringCharge: [RecurringCharge]? - public init(dBInstance: DBInstance? = nil) { - self.dBInstance = dBInstance + public init(recurringCharge: [RecurringCharge]? = nil) { + self.recurringCharge = recurringCharge } private enum CodingKeys: String, CodingKey { - case dBInstance = "DBInstance" + case recurringCharge = "RecurringCharge" } } - public struct DBClusterList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBCluster", required: false, type: .list) + public struct EngineDefaults: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroupFamily", required: false, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .structure) ] - public let dBCluster: [DBCluster]? + /// Specifies the name of the DB parameter group family that the engine default parameters apply to. + public let dBParameterGroupFamily: String? + /// An optional pagination token provided by a previous EngineDefaults request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords . + public let marker: String? + /// Contains a list of engine default parameters. + public let parameters: ParametersList? - public init(dBCluster: [DBCluster]? = nil) { - self.dBCluster = dBCluster + public init(dBParameterGroupFamily: String? = nil, marker: String? = nil, parameters: ParametersList? = nil) { + self.dBParameterGroupFamily = dBParameterGroupFamily + self.marker = marker + self.parameters = parameters } private enum CodingKeys: String, CodingKey { - case dBCluster = "DBCluster" + case dBParameterGroupFamily = "DBParameterGroupFamily" + case marker = "Marker" + case parameters = "Parameters" } } - public struct ModifyOptionGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionGroupName", required: true, type: .string), - AWSShapeMember(label: "OptionsToInclude", required: false, type: .structure), - AWSShapeMember(label: "OptionsToRemove", required: false, type: .list), - AWSShapeMember(label: "ApplyImmediately", required: false, type: .boolean) + public struct DeleteDBClusterMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FinalDBSnapshotIdentifier", required: false, type: .string), + AWSShapeMember(label: "SkipFinalSnapshot", required: false, type: .boolean), + AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string) ] - /// The name of the option group to be modified. Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance - public let optionGroupName: String - /// Options in this list are added to the option group or, if already present, the specified configuration is used to update the existing configuration. - public let optionsToInclude: OptionConfigurationList? - /// Options in this list are removed from the option group. - public let optionsToRemove: [String]? - /// Indicates whether the changes should be applied immediately, or during the next maintenance window for each instance associated with the option group. - public let applyImmediately: Bool? + /// The DB cluster snapshot identifier of the new DB cluster snapshot created when SkipFinalSnapshot is set to false. Specifying this parameter and also setting the SkipFinalShapshot parameter to true results in an error. Constraints: Must be 1 to 255 letters, numbers, or hyphens. First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens + public let finalDBSnapshotIdentifier: String? + /// Determines whether a final DB cluster snapshot is created before the DB cluster is deleted. If true is specified, no DB cluster snapshot is created. If false is specified, a DB cluster snapshot is created before the DB cluster is deleted. You must specify a FinalDBSnapshotIdentifier parameter if SkipFinalSnapshot is false. Default: false + public let skipFinalSnapshot: Bool? + /// The DB cluster identifier for the DB cluster to be deleted. This parameter isn't case-sensitive. Constraints: Must match an existing DBClusterIdentifier. + public let dBClusterIdentifier: String - public init(optionGroupName: String, optionsToInclude: OptionConfigurationList? = nil, optionsToRemove: [String]? = nil, applyImmediately: Bool? = nil) { - self.optionGroupName = optionGroupName - self.optionsToInclude = optionsToInclude - self.optionsToRemove = optionsToRemove - self.applyImmediately = applyImmediately + public init(finalDBSnapshotIdentifier: String? = nil, skipFinalSnapshot: Bool? = nil, dBClusterIdentifier: String) { + self.finalDBSnapshotIdentifier = finalDBSnapshotIdentifier + self.skipFinalSnapshot = skipFinalSnapshot + self.dBClusterIdentifier = dBClusterIdentifier } private enum CodingKeys: String, CodingKey { - case optionGroupName = "OptionGroupName" - case optionsToInclude = "OptionsToInclude" - case optionsToRemove = "OptionsToRemove" - case applyImmediately = "ApplyImmediately" + case finalDBSnapshotIdentifier = "FinalDBSnapshotIdentifier" + case skipFinalSnapshot = "SkipFinalSnapshot" + case dBClusterIdentifier = "DBClusterIdentifier" } } - public struct DBParameterGroupStatus: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string), - AWSShapeMember(label: "ParameterApplyStatus", required: false, type: .string) + public struct DeleteEventSubscriptionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventSubscription", required: false, type: .structure) ] - /// The name of the DP parameter group. - public let dBParameterGroupName: String? - /// The status of parameter updates. - public let parameterApplyStatus: String? + public let eventSubscription: EventSubscription? - public init(dBParameterGroupName: String? = nil, parameterApplyStatus: String? = nil) { - self.dBParameterGroupName = dBParameterGroupName - self.parameterApplyStatus = parameterApplyStatus + public init(eventSubscription: EventSubscription? = nil) { + self.eventSubscription = eventSubscription } private enum CodingKeys: String, CodingKey { - case dBParameterGroupName = "DBParameterGroupName" - case parameterApplyStatus = "ParameterApplyStatus" - } - } - - public struct DBClusterParameterGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "DBClusterParameterGroups", required: false, type: .structure) - ] - /// An optional pagination token provided by a previous DescribeDBClusterParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// A list of DB cluster parameter groups. - public let dBClusterParameterGroups: DBClusterParameterGroupList? - - public init(marker: String? = nil, dBClusterParameterGroups: DBClusterParameterGroupList? = nil) { - self.marker = marker - self.dBClusterParameterGroups = dBClusterParameterGroups - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case dBClusterParameterGroups = "DBClusterParameterGroups" - } - } - - public struct DBSnapshotList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshot", required: false, type: .list) - ] - public let dBSnapshot: [DBSnapshot]? - - public init(dBSnapshot: [DBSnapshot]? = nil) { - self.dBSnapshot = dBSnapshot - } - - private enum CodingKeys: String, CodingKey { - case dBSnapshot = "DBSnapshot" + case eventSubscription = "EventSubscription" } } - public struct ReadReplicaDBInstanceIdentifierList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReadReplicaDBInstanceIdentifier", required: false, type: .list) + public struct CreateDBSecurityGroupResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSecurityGroup", required: false, type: .structure) ] - public let readReplicaDBInstanceIdentifier: [String]? + public let dBSecurityGroup: DBSecurityGroup? - public init(readReplicaDBInstanceIdentifier: [String]? = nil) { - self.readReplicaDBInstanceIdentifier = readReplicaDBInstanceIdentifier + public init(dBSecurityGroup: DBSecurityGroup? = nil) { + self.dBSecurityGroup = dBSecurityGroup } private enum CodingKeys: String, CodingKey { - case readReplicaDBInstanceIdentifier = "ReadReplicaDBInstanceIdentifier" + case dBSecurityGroup = "DBSecurityGroup" } } - public struct OptionGroups: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "OptionGroupsList", required: false, type: .structure) + public struct EventSubscription: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "SnsTopicArn", required: false, type: .string), + AWSShapeMember(label: "SourceIdsList", required: false, type: .structure), + AWSShapeMember(label: "SourceType", required: false, type: .string), + AWSShapeMember(label: "CustSubscriptionId", required: false, type: .string), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "EventSubscriptionArn", required: false, type: .string), + AWSShapeMember(label: "CustomerAwsId", required: false, type: .string), + AWSShapeMember(label: "EventCategoriesList", required: false, type: .structure), + AWSShapeMember(label: "SubscriptionCreationTime", required: false, type: .string) ] - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// List of option groups. - public let optionGroupsList: OptionGroupsList? + /// The status of the RDS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that RDS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created. + public let status: String? + /// The topic ARN of the RDS event notification subscription. + public let snsTopicArn: String? + /// A list of source IDs for the RDS event notification subscription. + public let sourceIdsList: SourceIdsList? + /// The source type for the RDS event notification subscription. + public let sourceType: String? + /// The RDS event notification subscription Id. + public let custSubscriptionId: String? + /// A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled. + public let enabled: Bool? + /// The Amazon Resource Name (ARN) for the event subscription. + public let eventSubscriptionArn: String? + /// The AWS customer account associated with the RDS event notification subscription. + public let customerAwsId: String? + /// A list of event categories for the RDS event notification subscription. + public let eventCategoriesList: EventCategoriesList? + /// The time the RDS event notification subscription was created. + public let subscriptionCreationTime: String? - public init(marker: String? = nil, optionGroupsList: OptionGroupsList? = nil) { - self.marker = marker - self.optionGroupsList = optionGroupsList + public init(status: String? = nil, snsTopicArn: String? = nil, sourceIdsList: SourceIdsList? = nil, sourceType: String? = nil, custSubscriptionId: String? = nil, enabled: Bool? = nil, eventSubscriptionArn: String? = nil, customerAwsId: String? = nil, eventCategoriesList: EventCategoriesList? = nil, subscriptionCreationTime: String? = nil) { + self.status = status + self.snsTopicArn = snsTopicArn + self.sourceIdsList = sourceIdsList + self.sourceType = sourceType + self.custSubscriptionId = custSubscriptionId + self.enabled = enabled + self.eventSubscriptionArn = eventSubscriptionArn + self.customerAwsId = customerAwsId + self.eventCategoriesList = eventCategoriesList + self.subscriptionCreationTime = subscriptionCreationTime } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case optionGroupsList = "OptionGroupsList" + case status = "Status" + case snsTopicArn = "SnsTopicArn" + case sourceIdsList = "SourceIdsList" + case sourceType = "SourceType" + case custSubscriptionId = "CustSubscriptionId" + case enabled = "Enabled" + case eventSubscriptionArn = "EventSubscriptionArn" + case customerAwsId = "CustomerAwsId" + case eventCategoriesList = "EventCategoriesList" + case subscriptionCreationTime = "SubscriptionCreationTime" } } - public struct CreateDBSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubnetIds", required: true, type: .structure), - AWSShapeMember(label: "DBSubnetGroupDescription", required: true, type: .string), - AWSShapeMember(label: "DBSubnetGroupName", required: true, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure) + public struct RestoreDBClusterToPointInTimeMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KmsKeyId", required: false, type: .string), + AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), + AWSShapeMember(label: "RestoreToTime", required: false, type: .timestamp), + AWSShapeMember(label: "UseLatestRestorableTime", required: false, type: .boolean), + AWSShapeMember(label: "RestoreType", required: false, type: .string), + AWSShapeMember(label: "SourceDBClusterIdentifier", required: true, type: .string), + AWSShapeMember(label: "Port", required: false, type: .integer) ] - /// The EC2 Subnet IDs for the DB subnet group. - public let subnetIds: SubnetIdentifierList - /// The description for the DB subnet group. - public let dBSubnetGroupDescription: String - /// The name for the DB subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup - public let dBSubnetGroupName: String + /// The AWS KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. You can restore to a new DB cluster and encrypt the new DB cluster with a KMS key that is different than the KMS key used to encrypt the source DB cluster. The new DB cluster is encrypted with the KMS key identified by the KmsKeyId parameter. If you do not specify a value for the KmsKeyId parameter, then the following will occur: If the DB cluster is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the source DB cluster. If the DB cluster is not encrypted, then the restored DB cluster is not encrypted. If DBClusterIdentifier refers to a DB cluster that is not encrypted, then the restore request is rejected. + public let kmsKeyId: String? + /// The name of the new DB cluster to be created. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens + public let dBClusterIdentifier: String + /// The DB subnet group name to use for the new DB cluster. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: mySubnetgroup + public let dBSubnetGroupName: String? + /// The name of the option group for the new DB cluster. + public let optionGroupName: String? + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false + public let enableIAMDatabaseAuthentication: Bool? public let tags: TagList? + /// A list of VPC security groups that the new DB cluster belongs to. + public let vpcSecurityGroupIds: VpcSecurityGroupIdList? + /// The date and time to restore the DB cluster to. Valid Values: Value must be a time in Universal Coordinated Time (UTC) format Constraints: Must be before the latest restorable time for the DB instance Must be specified if UseLatestRestorableTime parameter is not provided Cannot be specified if UseLatestRestorableTime parameter is true Cannot be specified if RestoreType parameter is copy-on-write Example: 2015-03-07T23:45:00Z + public let restoreToTime: TimeStamp? + /// A value that is set to true to restore the DB cluster to the latest restorable backup time, and false otherwise. Default: false Constraints: Cannot be specified if RestoreToTime parameter is provided. + public let useLatestRestorableTime: Bool? + /// The type of restore to be performed. You can specify one of the following values: full-copy - The new DB cluster is restored as a full copy of the source DB cluster. copy-on-write - The new DB cluster is restored as a clone of the source DB cluster. Constraints: You can't specify copy-on-write if the engine version of the source DB cluster is earlier than 1.11. If you don't specify a RestoreType value, then the new DB cluster is restored as a full copy of the source DB cluster. + public let restoreType: String? + /// The identifier of the source DB cluster from which to restore. Constraints: Must match the identifier of an existing DBCluster. + public let sourceDBClusterIdentifier: String + /// The port number on which the new DB cluster accepts connections. Constraints: Value must be 1150-65535 Default: The same port as the original DB cluster. + public let port: Int32? - public init(subnetIds: SubnetIdentifierList, dBSubnetGroupDescription: String, dBSubnetGroupName: String, tags: TagList? = nil) { - self.subnetIds = subnetIds - self.dBSubnetGroupDescription = dBSubnetGroupDescription + public init(kmsKeyId: String? = nil, dBClusterIdentifier: String, dBSubnetGroupName: String? = nil, optionGroupName: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, tags: TagList? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, restoreToTime: TimeStamp? = nil, useLatestRestorableTime: Bool? = nil, restoreType: String? = nil, sourceDBClusterIdentifier: String, port: Int32? = nil) { + self.kmsKeyId = kmsKeyId + self.dBClusterIdentifier = dBClusterIdentifier self.dBSubnetGroupName = dBSubnetGroupName + self.optionGroupName = optionGroupName + self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication self.tags = tags + self.vpcSecurityGroupIds = vpcSecurityGroupIds + self.restoreToTime = restoreToTime + self.useLatestRestorableTime = useLatestRestorableTime + self.restoreType = restoreType + self.sourceDBClusterIdentifier = sourceDBClusterIdentifier + self.port = port } private enum CodingKeys: String, CodingKey { - case subnetIds = "SubnetIds" - case dBSubnetGroupDescription = "DBSubnetGroupDescription" + case kmsKeyId = "KmsKeyId" + case dBClusterIdentifier = "DBClusterIdentifier" case dBSubnetGroupName = "DBSubnetGroupName" + case optionGroupName = "OptionGroupName" + case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" case tags = "Tags" + case vpcSecurityGroupIds = "VpcSecurityGroupIds" + case restoreToTime = "RestoreToTime" + case useLatestRestorableTime = "UseLatestRestorableTime" + case restoreType = "RestoreType" + case sourceDBClusterIdentifier = "SourceDBClusterIdentifier" + case port = "Port" } } - public struct CreateOptionGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionGroup", required: false, type: .structure) + public struct DescribeEventCategoriesMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceType", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .structure) ] - public let optionGroup: OptionGroup? + /// The type of source that is generating the events. Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot + public let sourceType: String? + /// This parameter is not currently supported. + public let filters: FilterList? - public init(optionGroup: OptionGroup? = nil) { - self.optionGroup = optionGroup + public init(sourceType: String? = nil, filters: FilterList? = nil) { + self.sourceType = sourceType + self.filters = filters } private enum CodingKeys: String, CodingKey { - case optionGroup = "OptionGroup" + case sourceType = "SourceType" + case filters = "Filters" } } - public struct CopyDBClusterParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceDBClusterParameterGroupIdentifier", required: true, type: .string), - AWSShapeMember(label: "TargetDBClusterParameterGroupDescription", required: true, type: .string), - AWSShapeMember(label: "TargetDBClusterParameterGroupIdentifier", required: true, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure) + public struct AvailabilityZoneList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZone", required: false, type: .list) ] - /// The identifier or Amazon Resource Name (ARN) for the source DB cluster parameter group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). Constraints: Must specify a valid DB cluster parameter group. If the source DB cluster parameter group is in the same region as the copy, specify a valid DB parameter group identifier, for example my-db-cluster-param-group, or a valid ARN. If the source DB parameter group is in a different region than the copy, specify a valid DB cluster parameter group ARN, for example arn:aws:rds:us-east-1:123456789012:cluster-pg:custom-cluster-group1. - public let sourceDBClusterParameterGroupIdentifier: String - /// A description for the copied DB cluster parameter group. - public let targetDBClusterParameterGroupDescription: String - /// The identifier for the copied DB cluster parameter group. Constraints: Cannot be null, empty, or blank Must contain from 1 to 255 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-cluster-param-group1 - public let targetDBClusterParameterGroupIdentifier: String - public let tags: TagList? + public let availabilityZone: [AvailabilityZone]? - public init(sourceDBClusterParameterGroupIdentifier: String, targetDBClusterParameterGroupDescription: String, targetDBClusterParameterGroupIdentifier: String, tags: TagList? = nil) { - self.sourceDBClusterParameterGroupIdentifier = sourceDBClusterParameterGroupIdentifier - self.targetDBClusterParameterGroupDescription = targetDBClusterParameterGroupDescription - self.targetDBClusterParameterGroupIdentifier = targetDBClusterParameterGroupIdentifier - self.tags = tags + public init(availabilityZone: [AvailabilityZone]? = nil) { + self.availabilityZone = availabilityZone } private enum CodingKeys: String, CodingKey { - case sourceDBClusterParameterGroupIdentifier = "SourceDBClusterParameterGroupIdentifier" - case targetDBClusterParameterGroupDescription = "TargetDBClusterParameterGroupDescription" - case targetDBClusterParameterGroupIdentifier = "TargetDBClusterParameterGroupIdentifier" - case tags = "Tags" + case availabilityZone = "AvailabilityZone" } } - public struct RestoreDBInstanceFromDBSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstance", required: false, type: .structure) + public struct AuthorizeDBSecurityGroupIngressResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSecurityGroup", required: false, type: .structure) ] - public let dBInstance: DBInstance? + public let dBSecurityGroup: DBSecurityGroup? - public init(dBInstance: DBInstance? = nil) { - self.dBInstance = dBInstance + public init(dBSecurityGroup: DBSecurityGroup? = nil) { + self.dBSecurityGroup = dBSecurityGroup } private enum CodingKeys: String, CodingKey { - case dBInstance = "DBInstance" + case dBSecurityGroup = "DBSecurityGroup" } } - public struct CreateDBParameterGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroup", required: false, type: .structure) + public struct DBSecurityGroupMembership: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "DBSecurityGroupName", required: false, type: .string) ] - public let dBParameterGroup: DBParameterGroup? + /// The status of the DB security group. + public let status: String? + /// The name of the DB security group. + public let dBSecurityGroupName: String? - public init(dBParameterGroup: DBParameterGroup? = nil) { - self.dBParameterGroup = dBParameterGroup + public init(status: String? = nil, dBSecurityGroupName: String? = nil) { + self.status = status + self.dBSecurityGroupName = dBSecurityGroupName } private enum CodingKeys: String, CodingKey { - case dBParameterGroup = "DBParameterGroup" + case status = "Status" + case dBSecurityGroupName = "DBSecurityGroupName" } } - public struct OptionSetting: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Description", required: false, type: .string), - AWSShapeMember(label: "AllowedValues", required: false, type: .string), - AWSShapeMember(label: "DataType", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "ApplyType", required: false, type: .string), - AWSShapeMember(label: "IsModifiable", required: false, type: .boolean), - AWSShapeMember(label: "Value", required: false, type: .string), - AWSShapeMember(label: "DefaultValue", required: false, type: .string), - AWSShapeMember(label: "IsCollection", required: false, type: .boolean) + public struct DBClusterParameterGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroupFamily", required: false, type: .string), + AWSShapeMember(label: "DBClusterParameterGroupArn", required: false, type: .string), + AWSShapeMember(label: "DBClusterParameterGroupName", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) ] - /// The description of the option setting. + /// Provides the name of the DB parameter group family that this DB cluster parameter group is compatible with. + public let dBParameterGroupFamily: String? + /// The Amazon Resource Name (ARN) for the DB cluster parameter group. + public let dBClusterParameterGroupArn: String? + /// Provides the name of the DB cluster parameter group. + public let dBClusterParameterGroupName: String? + /// Provides the customer-specified description for this DB cluster parameter group. public let description: String? - /// The allowed values of the option setting. - public let allowedValues: String? - /// The data type of the option setting. - public let dataType: String? - /// The name of the option that has settings that you can set. - public let name: String? - /// The DB engine specific parameter type. - public let applyType: String? - /// A Boolean value that, when true, indicates the option setting can be modified from the default. - public let isModifiable: Bool? - /// The current value of the option setting. - public let value: String? - /// The default value of the option setting. - public let defaultValue: String? - /// Indicates if the option setting is part of a collection. - public let isCollection: Bool? - public init(description: String? = nil, allowedValues: String? = nil, dataType: String? = nil, name: String? = nil, applyType: String? = nil, isModifiable: Bool? = nil, value: String? = nil, defaultValue: String? = nil, isCollection: Bool? = nil) { + public init(dBParameterGroupFamily: String? = nil, dBClusterParameterGroupArn: String? = nil, dBClusterParameterGroupName: String? = nil, description: String? = nil) { + self.dBParameterGroupFamily = dBParameterGroupFamily + self.dBClusterParameterGroupArn = dBClusterParameterGroupArn + self.dBClusterParameterGroupName = dBClusterParameterGroupName self.description = description - self.allowedValues = allowedValues - self.dataType = dataType - self.name = name - self.applyType = applyType - self.isModifiable = isModifiable - self.value = value - self.defaultValue = defaultValue - self.isCollection = isCollection } private enum CodingKeys: String, CodingKey { + case dBParameterGroupFamily = "DBParameterGroupFamily" + case dBClusterParameterGroupArn = "DBClusterParameterGroupArn" + case dBClusterParameterGroupName = "DBClusterParameterGroupName" case description = "Description" - case allowedValues = "AllowedValues" - case dataType = "DataType" - case name = "Name" - case applyType = "ApplyType" - case isModifiable = "IsModifiable" - case value = "Value" - case defaultValue = "DefaultValue" - case isCollection = "IsCollection" } } - public struct ModifyDBSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SubnetIds", required: true, type: .structure), - AWSShapeMember(label: "DBSubnetGroupDescription", required: false, type: .string), - AWSShapeMember(label: "DBSubnetGroupName", required: true, type: .string) - ] - /// The EC2 subnet IDs for the DB subnet group. - public let subnetIds: SubnetIdentifierList - /// The description for the DB subnet group. - public let dBSubnetGroupDescription: String? - /// The name for the DB subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup - public let dBSubnetGroupName: String - - public init(subnetIds: SubnetIdentifierList, dBSubnetGroupDescription: String? = nil, dBSubnetGroupName: String) { - self.subnetIds = subnetIds - self.dBSubnetGroupDescription = dBSubnetGroupDescription - self.dBSubnetGroupName = dBSubnetGroupName - } - - private enum CodingKeys: String, CodingKey { - case subnetIds = "SubnetIds" - case dBSubnetGroupDescription = "DBSubnetGroupDescription" - case dBSubnetGroupName = "DBSubnetGroupName" - } + public enum SourceType: String, CustomStringConvertible, Codable { + case dbInstance = "db-instance" + case dbParameterGroup = "db-parameter-group" + case dbSecurityGroup = "db-security-group" + case dbSnapshot = "db-snapshot" + case dbCluster = "db-cluster" + case dbClusterSnapshot = "db-cluster-snapshot" + public var description: String { return self.rawValue } } - public struct DownloadDBLogFilePortionDetails: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AdditionalDataPending", required: false, type: .boolean), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "LogFileData", required: false, type: .string) + public struct DBSecurityGroupNameList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSecurityGroupName", required: false, type: .list) ] - /// Boolean value that if true, indicates there is more data to be downloaded. - public let additionalDataPending: Bool? - /// A pagination token that can be used in a subsequent DownloadDBLogFilePortion request. - public let marker: String? - /// Entries from the specified log file. - public let logFileData: String? + public let dBSecurityGroupName: [String]? - public init(additionalDataPending: Bool? = nil, marker: String? = nil, logFileData: String? = nil) { - self.additionalDataPending = additionalDataPending - self.marker = marker - self.logFileData = logFileData + public init(dBSecurityGroupName: [String]? = nil) { + self.dBSecurityGroupName = dBSecurityGroupName } private enum CodingKeys: String, CodingKey { - case additionalDataPending = "AdditionalDataPending" - case marker = "Marker" - case logFileData = "LogFileData" + case dBSecurityGroupName = "DBSecurityGroupName" } } - public struct DBSnapshotAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeName", required: false, type: .string), - AWSShapeMember(label: "AttributeValues", required: false, type: .structure) + public struct CreateDBClusterResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBCluster", required: false, type: .structure) ] - /// The name of the manual DB snapshot attribute. The attribute named restore refers to the list of AWS accounts that have permission to copy or restore the manual DB cluster snapshot. For more information, see the ModifyDBSnapshotAttribute API action. - public let attributeName: String? - /// The value or values for the manual DB snapshot attribute. If the AttributeName field is set to restore, then this element returns a list of IDs of the AWS accounts that are authorized to copy or restore the manual DB snapshot. If a value of all is in the list, then the manual DB snapshot is public and available for any AWS account to copy or restore. - public let attributeValues: AttributeValueList? + public let dBCluster: DBCluster? - public init(attributeName: String? = nil, attributeValues: AttributeValueList? = nil) { - self.attributeName = attributeName - self.attributeValues = attributeValues + public init(dBCluster: DBCluster? = nil) { + self.dBCluster = dBCluster } private enum CodingKeys: String, CodingKey { - case attributeName = "AttributeName" - case attributeValues = "AttributeValues" + case dBCluster = "DBCluster" } } - public struct RemoveSourceIdentifierFromSubscriptionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventSubscription", required: false, type: .structure) + public struct DeleteDBInstanceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FinalDBSnapshotIdentifier", required: false, type: .string), + AWSShapeMember(label: "SkipFinalSnapshot", required: false, type: .boolean), + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) ] - public let eventSubscription: EventSubscription? + /// The DBSnapshotIdentifier of the new DBSnapshot created when SkipFinalSnapshot is set to false. Specifying this parameter and also setting the SkipFinalShapshot parameter to true results in an error. Constraints: Must be 1 to 255 letters or numbers. First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Cannot be specified when deleting a Read Replica. + public let finalDBSnapshotIdentifier: String? + /// Determines whether a final DB snapshot is created before the DB instance is deleted. If true is specified, no DBSnapshot is created. If false is specified, a DB snapshot is created before the DB instance is deleted. Note that when a DB instance is in a failure state and has a status of 'failed', 'incompatible-restore', or 'incompatible-network', it can only be deleted when the SkipFinalSnapshot parameter is set to "true". Specify true when deleting a Read Replica. The FinalDBSnapshotIdentifier parameter must be specified if SkipFinalSnapshot is false. Default: false + public let skipFinalSnapshot: Bool? + /// The DB instance identifier for the DB instance to be deleted. This parameter isn't case-sensitive. Constraints: Must match the name of an existing DB instance. + public let dBInstanceIdentifier: String - public init(eventSubscription: EventSubscription? = nil) { - self.eventSubscription = eventSubscription + public init(finalDBSnapshotIdentifier: String? = nil, skipFinalSnapshot: Bool? = nil, dBInstanceIdentifier: String) { + self.finalDBSnapshotIdentifier = finalDBSnapshotIdentifier + self.skipFinalSnapshot = skipFinalSnapshot + self.dBInstanceIdentifier = dBInstanceIdentifier } private enum CodingKeys: String, CodingKey { - case eventSubscription = "EventSubscription" + case finalDBSnapshotIdentifier = "FinalDBSnapshotIdentifier" + case skipFinalSnapshot = "SkipFinalSnapshot" + case dBInstanceIdentifier = "DBInstanceIdentifier" } } - public struct DeleteOptionGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionGroupName", required: true, type: .string) + public struct Timezone: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TimezoneName", required: false, type: .string) ] - /// The name of the option group to be deleted. You cannot delete default option groups. - public let optionGroupName: String + /// The name of the time zone. + public let timezoneName: String? - public init(optionGroupName: String) { - self.optionGroupName = optionGroupName + public init(timezoneName: String? = nil) { + self.timezoneName = timezoneName } private enum CodingKeys: String, CodingKey { - case optionGroupName = "OptionGroupName" + case timezoneName = "TimezoneName" } } - public struct DeleteDBClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBCluster", required: false, type: .structure) + public struct RebootDBInstanceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string), + AWSShapeMember(label: "ForceFailover", required: false, type: .boolean) ] - public let dBCluster: DBCluster? + /// The DB instance identifier. This parameter is stored as a lowercase string. Constraints: Must match the identifier of an existing DBInstance. + public let dBInstanceIdentifier: String + /// When true, the reboot is conducted through a MultiAZ failover. Constraint: You can't specify true if the instance is not configured for MultiAZ. + public let forceFailover: Bool? - public init(dBCluster: DBCluster? = nil) { - self.dBCluster = dBCluster + public init(dBInstanceIdentifier: String, forceFailover: Bool? = nil) { + self.dBInstanceIdentifier = dBInstanceIdentifier + self.forceFailover = forceFailover } private enum CodingKeys: String, CodingKey { - case dBCluster = "DBCluster" + case dBInstanceIdentifier = "DBInstanceIdentifier" + case forceFailover = "ForceFailover" } } - public struct OrderableDBInstanceOptionsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OrderableDBInstanceOption", required: false, type: .list) + public struct ReservedDBInstanceList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedDBInstance", required: false, type: .list) ] - public let orderableDBInstanceOption: [OrderableDBInstanceOption]? + public let reservedDBInstance: [ReservedDBInstance]? - public init(orderableDBInstanceOption: [OrderableDBInstanceOption]? = nil) { - self.orderableDBInstanceOption = orderableDBInstanceOption + public init(reservedDBInstance: [ReservedDBInstance]? = nil) { + self.reservedDBInstance = reservedDBInstance } private enum CodingKeys: String, CodingKey { - case orderableDBInstanceOption = "OrderableDBInstanceOption" + case reservedDBInstance = "ReservedDBInstance" } } - public struct AddTagsToResourceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Tags", required: true, type: .structure), - AWSShapeMember(label: "ResourceName", required: true, type: .string) + public struct DBClusterSnapshotAttributesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: false, type: .string), + AWSShapeMember(label: "DBClusterSnapshotAttributes", required: false, type: .structure) ] - /// The tags to be assigned to the Amazon RDS resource. - public let tags: TagList - /// The Amazon RDS resource the tags will be added to. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). - public let resourceName: String + /// The identifier of the manual DB cluster snapshot that the attributes apply to. + public let dBClusterSnapshotIdentifier: String? + /// The list of attributes and values for the manual DB cluster snapshot. + public let dBClusterSnapshotAttributes: DBClusterSnapshotAttributeList? - public init(tags: TagList, resourceName: String) { - self.tags = tags - self.resourceName = resourceName + public init(dBClusterSnapshotIdentifier: String? = nil, dBClusterSnapshotAttributes: DBClusterSnapshotAttributeList? = nil) { + self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier + self.dBClusterSnapshotAttributes = dBClusterSnapshotAttributes } private enum CodingKeys: String, CodingKey { - case tags = "Tags" - case resourceName = "ResourceName" + case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" + case dBClusterSnapshotAttributes = "DBClusterSnapshotAttributes" } } - public struct DBClusterOptionGroupMemberships: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterOptionGroup", required: false, type: .list) + public struct DescribeDBLogFilesDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "LastWritten", required: false, type: .long), + AWSShapeMember(label: "Size", required: false, type: .long), + AWSShapeMember(label: "LogFileName", required: false, type: .string) ] - public let dBClusterOptionGroup: [DBClusterOptionGroupStatus]? + /// A POSIX timestamp when the last log entry was written. + public let lastWritten: Int64? + /// The size, in bytes, of the log file for the specified DB instance. + public let size: Int64? + /// The name of the log file for the specified DB instance. + public let logFileName: String? - public init(dBClusterOptionGroup: [DBClusterOptionGroupStatus]? = nil) { - self.dBClusterOptionGroup = dBClusterOptionGroup + public init(lastWritten: Int64? = nil, size: Int64? = nil, logFileName: String? = nil) { + self.lastWritten = lastWritten + self.size = size + self.logFileName = logFileName } private enum CodingKeys: String, CodingKey { - case dBClusterOptionGroup = "DBClusterOptionGroup" + case lastWritten = "LastWritten" + case size = "Size" + case logFileName = "LogFileName" } } - public struct PendingMaintenanceAction: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AutoAppliedAfterDate", required: false, type: .timestamp), - AWSShapeMember(label: "OptInStatus", required: false, type: .string), - AWSShapeMember(label: "Action", required: false, type: .string), - AWSShapeMember(label: "ForcedApplyDate", required: false, type: .timestamp), - AWSShapeMember(label: "CurrentApplyDate", required: false, type: .timestamp), - AWSShapeMember(label: "Description", required: false, type: .string) - ] - /// The date of the maintenance window when the action will be applied. The maintenance action will be applied to the resource during its first maintenance window after this date. If this date is specified, any next-maintenance opt-in requests are ignored. - public let autoAppliedAfterDate: TimeStamp? - /// Indicates the type of opt-in request that has been received for the resource. - public let optInStatus: String? - /// The type of pending maintenance action that is available for the resource. - public let action: String? - /// The date when the maintenance action will be automatically applied. The maintenance action will be applied to the resource on this date regardless of the maintenance window for the resource. If this date is specified, any immediate opt-in requests are ignored. - public let forcedApplyDate: TimeStamp? - /// The effective date when the pending maintenance action will be applied to the resource. This date takes into account opt-in requests received from the ApplyPendingMaintenanceAction API, the AutoAppliedAfterDate, and the ForcedApplyDate. This value is blank if an opt-in request has not been received and nothing has been specified as AutoAppliedAfterDate or ForcedApplyDate. - public let currentApplyDate: TimeStamp? - /// A description providing more detail about the maintenance action. - public let description: String? - - public init(autoAppliedAfterDate: TimeStamp? = nil, optInStatus: String? = nil, action: String? = nil, forcedApplyDate: TimeStamp? = nil, currentApplyDate: TimeStamp? = nil, description: String? = nil) { - self.autoAppliedAfterDate = autoAppliedAfterDate - self.optInStatus = optInStatus - self.action = action - self.forcedApplyDate = forcedApplyDate - self.currentApplyDate = currentApplyDate + public struct DBInstance: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcSecurityGroups", required: false, type: .structure), + AWSShapeMember(label: "DomainMemberships", required: false, type: .structure), + AWSShapeMember(label: "DBInstanceStatus", required: false, type: .string), + AWSShapeMember(label: "DBParameterGroups", required: false, type: .structure), + AWSShapeMember(label: "DBSecurityGroups", required: false, type: .structure), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "CharacterSetName", required: false, type: .string), + AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), + AWSShapeMember(label: "Iops", required: false, type: .integer), + AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), + AWSShapeMember(label: "PerformanceInsightsKMSKeyId", required: false, type: .string), + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "LatestRestorableTime", required: false, type: .timestamp), + AWSShapeMember(label: "DbiResourceId", required: false, type: .string), + AWSShapeMember(label: "Endpoint", required: false, type: .structure), + AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), + AWSShapeMember(label: "InstanceCreateTime", required: false, type: .timestamp), + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), + AWSShapeMember(label: "LicenseModel", required: false, type: .string), + AWSShapeMember(label: "PerformanceInsightsEnabled", required: false, type: .boolean), + AWSShapeMember(label: "DbInstancePort", required: false, type: .integer), + AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), + AWSShapeMember(label: "IAMDatabaseAuthenticationEnabled", required: false, type: .boolean), + AWSShapeMember(label: "MonitoringRoleArn", required: false, type: .string), + AWSShapeMember(label: "StatusInfos", required: false, type: .structure), + AWSShapeMember(label: "MasterUsername", required: false, type: .string), + AWSShapeMember(label: "SecondaryAvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "Engine", required: false, type: .string), + AWSShapeMember(label: "ReadReplicaDBInstanceIdentifiers", required: false, type: .structure), + AWSShapeMember(label: "DBSubnetGroup", required: false, type: .structure), + AWSShapeMember(label: "StorageEncrypted", required: false, type: .boolean), + AWSShapeMember(label: "MonitoringInterval", required: false, type: .integer), + AWSShapeMember(label: "DBInstanceIdentifier", required: false, type: .string), + AWSShapeMember(label: "DBName", required: false, type: .string), + AWSShapeMember(label: "EnhancedMonitoringResourceArn", required: false, type: .string), + AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), + AWSShapeMember(label: "OptionGroupMemberships", required: false, type: .structure), + AWSShapeMember(label: "CACertificateIdentifier", required: false, type: .string), + AWSShapeMember(label: "PromotionTier", required: false, type: .integer), + AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), + AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), + AWSShapeMember(label: "DBInstanceArn", required: false, type: .string), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string), + AWSShapeMember(label: "PendingModifiedValues", required: false, type: .structure), + AWSShapeMember(label: "ReadReplicaSourceDBInstanceIdentifier", required: false, type: .string), + AWSShapeMember(label: "Timezone", required: false, type: .string), + AWSShapeMember(label: "StorageType", required: false, type: .string), + AWSShapeMember(label: "TdeCredentialArn", required: false, type: .string), + AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), + AWSShapeMember(label: "ReadReplicaDBClusterIdentifiers", required: false, type: .structure) + ] + /// Provides a list of VPC security group elements that the DB instance belongs to. + public let vpcSecurityGroups: VpcSecurityGroupMembershipList? + /// The Active Directory Domain membership records associated with the DB instance. + public let domainMemberships: DomainMembershipList? + /// Specifies the current state of this database. + public let dBInstanceStatus: String? + /// Provides the list of DB parameter groups applied to this DB instance. + public let dBParameterGroups: DBParameterGroupStatusList? + /// Provides List of DB security group elements containing only DBSecurityGroup.Name and DBSecurityGroup.Status subelements. + public let dBSecurityGroups: DBSecurityGroupMembershipList? + /// Specifies the name of the Availability Zone the DB instance is located in. + public let availabilityZone: String? + /// If present, specifies the name of the character set that this instance is associated with. + public let characterSetName: String? + /// Indicates that minor version patches are applied automatically. + public let autoMinorVersionUpgrade: Bool? + /// Specifies the Provisioned IOPS (I/O operations per second) value. + public let iops: Int32? + /// If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of. + public let dBClusterIdentifier: String? + /// The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. + public let performanceInsightsKMSKeyId: String? + /// Indicates the database engine version. + public let engineVersion: String? + /// Specifies the latest time to which a database can be restored with point-in-time restore. + public let latestRestorableTime: TimeStamp? + /// The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed. + public let dbiResourceId: String? + /// Specifies the connection endpoint. + public let endpoint: Endpoint? + /// Contains the name of the compute and memory capacity class of the DB instance. + public let dBInstanceClass: String? + /// Provides the date and time the DB instance was created. + public let instanceCreateTime: TimeStamp? + /// Specifies if the DB instance is a Multi-AZ deployment. + public let multiAZ: Bool? + /// Specifies the allocated storage size specified in gigabytes. + public let allocatedStorage: Int32? + /// License model information for this DB instance. + public let licenseModel: String? + /// True if Performance Insights is enabled for the DB instance, and otherwise false. + public let performanceInsightsEnabled: Bool? + /// Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port. + public let dbInstancePort: Int32? + /// Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod. + public let preferredBackupWindow: String? + /// True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. + public let iAMDatabaseAuthenticationEnabled: Bool? + /// The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. + public let monitoringRoleArn: String? + /// The status of a Read Replica. If the instance is not a Read Replica, this is blank. + public let statusInfos: DBInstanceStatusInfoList? + /// Contains the master username for the DB instance. + public let masterUsername: String? + /// If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support. + public let secondaryAvailabilityZone: String? + /// Provides the name of the database engine to be used for this DB instance. + public let engine: String? + /// Contains one or more identifiers of the Read Replicas associated with this DB instance. + public let readReplicaDBInstanceIdentifiers: ReadReplicaDBInstanceIdentifierList? + /// Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group. + public let dBSubnetGroup: DBSubnetGroup? + /// Specifies whether the DB instance is encrypted. + public let storageEncrypted: Bool? + /// The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. + public let monitoringInterval: Int32? + /// Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance. + public let dBInstanceIdentifier: String? + /// The meaning of this parameter differs according to the database engine you use. For example, this value returns MySQL, MariaDB, or PostgreSQL information when returning values from CreateDBInstanceReadReplica since Read Replicas are only supported for these engines. MySQL, MariaDB, SQL Server, PostgreSQL Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String Oracle Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance. + public let dBName: String? + /// The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance. + public let enhancedMonitoringResourceArn: String? + /// Specifies the number of days for which automatic DB snapshots are retained. + public let backupRetentionPeriod: Int32? + /// Provides the list of option group memberships for this DB instance. + public let optionGroupMemberships: OptionGroupMembershipList? + /// The identifier of the CA certificate for this DB instance. + public let cACertificateIdentifier: String? + /// A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster. + public let promotionTier: Int32? + /// Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). + public let preferredMaintenanceWindow: String? + /// Specifies whether tags are copied from the DB instance to snapshots of the DB instance. + public let copyTagsToSnapshot: Bool? + /// The Amazon Resource Name (ARN) for the DB instance. + public let dBInstanceArn: String? + /// If StorageEncrypted is true, the AWS KMS key identifier for the encrypted DB instance. + public let kmsKeyId: String? + /// Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements. + public let pendingModifiedValues: PendingModifiedValues? + /// Contains the identifier of the source DB instance if this DB instance is a Read Replica. + public let readReplicaSourceDBInstanceIdentifier: String? + /// The time zone of the DB instance. In most cases, the Timezone element is empty. Timezone content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. + public let timezone: String? + /// Specifies the storage type associated with DB instance. + public let storageType: String? + /// The ARN from the key store with which the instance is associated for TDE encryption. + public let tdeCredentialArn: String? + /// Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case. Default VPC:true VPC:false If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private. + public let publiclyAccessible: Bool? + /// Contains one or more identifiers of Aurora DB clusters that are Read Replicas of this DB instance. + public let readReplicaDBClusterIdentifiers: ReadReplicaDBClusterIdentifierList? + + public init(vpcSecurityGroups: VpcSecurityGroupMembershipList? = nil, domainMemberships: DomainMembershipList? = nil, dBInstanceStatus: String? = nil, dBParameterGroups: DBParameterGroupStatusList? = nil, dBSecurityGroups: DBSecurityGroupMembershipList? = nil, availabilityZone: String? = nil, characterSetName: String? = nil, autoMinorVersionUpgrade: Bool? = nil, iops: Int32? = nil, dBClusterIdentifier: String? = nil, performanceInsightsKMSKeyId: String? = nil, engineVersion: String? = nil, latestRestorableTime: TimeStamp? = nil, dbiResourceId: String? = nil, endpoint: Endpoint? = nil, dBInstanceClass: String? = nil, instanceCreateTime: TimeStamp? = nil, multiAZ: Bool? = nil, allocatedStorage: Int32? = nil, licenseModel: String? = nil, performanceInsightsEnabled: Bool? = nil, dbInstancePort: Int32? = nil, preferredBackupWindow: String? = nil, iAMDatabaseAuthenticationEnabled: Bool? = nil, monitoringRoleArn: String? = nil, statusInfos: DBInstanceStatusInfoList? = nil, masterUsername: String? = nil, secondaryAvailabilityZone: String? = nil, engine: String? = nil, readReplicaDBInstanceIdentifiers: ReadReplicaDBInstanceIdentifierList? = nil, dBSubnetGroup: DBSubnetGroup? = nil, storageEncrypted: Bool? = nil, monitoringInterval: Int32? = nil, dBInstanceIdentifier: String? = nil, dBName: String? = nil, enhancedMonitoringResourceArn: String? = nil, backupRetentionPeriod: Int32? = nil, optionGroupMemberships: OptionGroupMembershipList? = nil, cACertificateIdentifier: String? = nil, promotionTier: Int32? = nil, preferredMaintenanceWindow: String? = nil, copyTagsToSnapshot: Bool? = nil, dBInstanceArn: String? = nil, kmsKeyId: String? = nil, pendingModifiedValues: PendingModifiedValues? = nil, readReplicaSourceDBInstanceIdentifier: String? = nil, timezone: String? = nil, storageType: String? = nil, tdeCredentialArn: String? = nil, publiclyAccessible: Bool? = nil, readReplicaDBClusterIdentifiers: ReadReplicaDBClusterIdentifierList? = nil) { + self.vpcSecurityGroups = vpcSecurityGroups + self.domainMemberships = domainMemberships + self.dBInstanceStatus = dBInstanceStatus + self.dBParameterGroups = dBParameterGroups + self.dBSecurityGroups = dBSecurityGroups + self.availabilityZone = availabilityZone + self.characterSetName = characterSetName + self.autoMinorVersionUpgrade = autoMinorVersionUpgrade + self.iops = iops + self.dBClusterIdentifier = dBClusterIdentifier + self.performanceInsightsKMSKeyId = performanceInsightsKMSKeyId + self.engineVersion = engineVersion + self.latestRestorableTime = latestRestorableTime + self.dbiResourceId = dbiResourceId + self.endpoint = endpoint + self.dBInstanceClass = dBInstanceClass + self.instanceCreateTime = instanceCreateTime + self.multiAZ = multiAZ + self.allocatedStorage = allocatedStorage + self.licenseModel = licenseModel + self.performanceInsightsEnabled = performanceInsightsEnabled + self.dbInstancePort = dbInstancePort + self.preferredBackupWindow = preferredBackupWindow + self.iAMDatabaseAuthenticationEnabled = iAMDatabaseAuthenticationEnabled + self.monitoringRoleArn = monitoringRoleArn + self.statusInfos = statusInfos + self.masterUsername = masterUsername + self.secondaryAvailabilityZone = secondaryAvailabilityZone + self.engine = engine + self.readReplicaDBInstanceIdentifiers = readReplicaDBInstanceIdentifiers + self.dBSubnetGroup = dBSubnetGroup + self.storageEncrypted = storageEncrypted + self.monitoringInterval = monitoringInterval + self.dBInstanceIdentifier = dBInstanceIdentifier + self.dBName = dBName + self.enhancedMonitoringResourceArn = enhancedMonitoringResourceArn + self.backupRetentionPeriod = backupRetentionPeriod + self.optionGroupMemberships = optionGroupMemberships + self.cACertificateIdentifier = cACertificateIdentifier + self.promotionTier = promotionTier + self.preferredMaintenanceWindow = preferredMaintenanceWindow + self.copyTagsToSnapshot = copyTagsToSnapshot + self.dBInstanceArn = dBInstanceArn + self.kmsKeyId = kmsKeyId + self.pendingModifiedValues = pendingModifiedValues + self.readReplicaSourceDBInstanceIdentifier = readReplicaSourceDBInstanceIdentifier + self.timezone = timezone + self.storageType = storageType + self.tdeCredentialArn = tdeCredentialArn + self.publiclyAccessible = publiclyAccessible + self.readReplicaDBClusterIdentifiers = readReplicaDBClusterIdentifiers + } + + private enum CodingKeys: String, CodingKey { + case vpcSecurityGroups = "VpcSecurityGroups" + case domainMemberships = "DomainMemberships" + case dBInstanceStatus = "DBInstanceStatus" + case dBParameterGroups = "DBParameterGroups" + case dBSecurityGroups = "DBSecurityGroups" + case availabilityZone = "AvailabilityZone" + case characterSetName = "CharacterSetName" + case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" + case iops = "Iops" + case dBClusterIdentifier = "DBClusterIdentifier" + case performanceInsightsKMSKeyId = "PerformanceInsightsKMSKeyId" + case engineVersion = "EngineVersion" + case latestRestorableTime = "LatestRestorableTime" + case dbiResourceId = "DbiResourceId" + case endpoint = "Endpoint" + case dBInstanceClass = "DBInstanceClass" + case instanceCreateTime = "InstanceCreateTime" + case multiAZ = "MultiAZ" + case allocatedStorage = "AllocatedStorage" + case licenseModel = "LicenseModel" + case performanceInsightsEnabled = "PerformanceInsightsEnabled" + case dbInstancePort = "DbInstancePort" + case preferredBackupWindow = "PreferredBackupWindow" + case iAMDatabaseAuthenticationEnabled = "IAMDatabaseAuthenticationEnabled" + case monitoringRoleArn = "MonitoringRoleArn" + case statusInfos = "StatusInfos" + case masterUsername = "MasterUsername" + case secondaryAvailabilityZone = "SecondaryAvailabilityZone" + case engine = "Engine" + case readReplicaDBInstanceIdentifiers = "ReadReplicaDBInstanceIdentifiers" + case dBSubnetGroup = "DBSubnetGroup" + case storageEncrypted = "StorageEncrypted" + case monitoringInterval = "MonitoringInterval" + case dBInstanceIdentifier = "DBInstanceIdentifier" + case dBName = "DBName" + case enhancedMonitoringResourceArn = "EnhancedMonitoringResourceArn" + case backupRetentionPeriod = "BackupRetentionPeriod" + case optionGroupMemberships = "OptionGroupMemberships" + case cACertificateIdentifier = "CACertificateIdentifier" + case promotionTier = "PromotionTier" + case preferredMaintenanceWindow = "PreferredMaintenanceWindow" + case copyTagsToSnapshot = "CopyTagsToSnapshot" + case dBInstanceArn = "DBInstanceArn" + case kmsKeyId = "KmsKeyId" + case pendingModifiedValues = "PendingModifiedValues" + case readReplicaSourceDBInstanceIdentifier = "ReadReplicaSourceDBInstanceIdentifier" + case timezone = "Timezone" + case storageType = "StorageType" + case tdeCredentialArn = "TdeCredentialArn" + case publiclyAccessible = "PubliclyAccessible" + case readReplicaDBClusterIdentifiers = "ReadReplicaDBClusterIdentifiers" + } + } + + public struct ModifyDBSnapshotAttributeResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSnapshotAttributesResult", required: false, type: .structure) + ] + public let dBSnapshotAttributesResult: DBSnapshotAttributesResult? + + public init(dBSnapshotAttributesResult: DBSnapshotAttributesResult? = nil) { + self.dBSnapshotAttributesResult = dBSnapshotAttributesResult + } + + private enum CodingKeys: String, CodingKey { + case dBSnapshotAttributesResult = "DBSnapshotAttributesResult" + } + } + + public struct RevokeDBSecurityGroupIngressResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSecurityGroup", required: false, type: .structure) + ] + public let dBSecurityGroup: DBSecurityGroup? + + public init(dBSecurityGroup: DBSecurityGroup? = nil) { + self.dBSecurityGroup = dBSecurityGroup + } + + private enum CodingKeys: String, CodingKey { + case dBSecurityGroup = "DBSecurityGroup" + } + } + + public struct ApplyPendingMaintenanceActionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourcePendingMaintenanceActions", required: false, type: .structure) + ] + public let resourcePendingMaintenanceActions: ResourcePendingMaintenanceActions? + + public init(resourcePendingMaintenanceActions: ResourcePendingMaintenanceActions? = nil) { + self.resourcePendingMaintenanceActions = resourcePendingMaintenanceActions + } + + private enum CodingKeys: String, CodingKey { + case resourcePendingMaintenanceActions = "ResourcePendingMaintenanceActions" + } + } + + public struct SourceRegionList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceRegion", required: false, type: .list) + ] + public let sourceRegion: [SourceRegion]? + + public init(sourceRegion: [SourceRegion]? = nil) { + self.sourceRegion = sourceRegion + } + + private enum CodingKeys: String, CodingKey { + case sourceRegion = "SourceRegion" + } + } + + public struct DescribeOptionGroupOptionsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "EngineName", required: true, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "MajorEngineVersion", required: false, type: .string) + ] + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// This parameter is not currently supported. + public let filters: FilterList? + /// A required parameter. Options available for the given engine name are described. + public let engineName: String + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// If specified, filters the results to include only options for the specified major engine version. + public let majorEngineVersion: String? + + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, engineName: String, marker: String? = nil, majorEngineVersion: String? = nil) { + self.maxRecords = maxRecords + self.filters = filters + self.engineName = engineName + self.marker = marker + self.majorEngineVersion = majorEngineVersion + } + + private enum CodingKeys: String, CodingKey { + case maxRecords = "MaxRecords" + case filters = "Filters" + case engineName = "EngineName" + case marker = "Marker" + case majorEngineVersion = "MajorEngineVersion" + } + } + + public struct CreateDBSnapshotMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string), + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) + ] + public let tags: TagList? + /// The identifier for the DB snapshot. Constraints: Cannot be null, empty, or blank Must contain from 1 to 255 letters, numbers, or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-snapshot-id + public let dBSnapshotIdentifier: String + /// The identifier of the DB instance that you want to create the snapshot of. Constraints: Must match the identifier of an existing DBInstance. + public let dBInstanceIdentifier: String + + public init(tags: TagList? = nil, dBSnapshotIdentifier: String, dBInstanceIdentifier: String) { + self.tags = tags + self.dBSnapshotIdentifier = dBSnapshotIdentifier + self.dBInstanceIdentifier = dBInstanceIdentifier + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + case dBSnapshotIdentifier = "DBSnapshotIdentifier" + case dBInstanceIdentifier = "DBInstanceIdentifier" + } + } + + public struct ReservedDBInstancesOffering: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProductDescription", required: false, type: .string), + AWSShapeMember(label: "RecurringCharges", required: false, type: .structure), + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "UsagePrice", required: false, type: .double), + AWSShapeMember(label: "CurrencyCode", required: false, type: .string), + AWSShapeMember(label: "ReservedDBInstancesOfferingId", required: false, type: .string), + AWSShapeMember(label: "Duration", required: false, type: .integer), + AWSShapeMember(label: "OfferingType", required: false, type: .string), + AWSShapeMember(label: "FixedPrice", required: false, type: .double), + AWSShapeMember(label: "DBInstanceClass", required: false, type: .string) + ] + /// The database engine used by the offering. + public let productDescription: String? + /// The recurring price charged to run this reserved DB instance. + public let recurringCharges: RecurringChargeList? + /// Indicates if the offering applies to Multi-AZ deployments. + public let multiAZ: Bool? + /// The hourly price charged for this offering. + public let usagePrice: Double? + /// The currency code for the reserved DB instance offering. + public let currencyCode: String? + /// The offering identifier. + public let reservedDBInstancesOfferingId: String? + /// The duration of the offering in seconds. + public let duration: Int32? + /// The offering type. + public let offeringType: String? + /// The fixed price charged for this offering. + public let fixedPrice: Double? + /// The DB instance class for the reserved DB instance. + public let dBInstanceClass: String? + + public init(productDescription: String? = nil, recurringCharges: RecurringChargeList? = nil, multiAZ: Bool? = nil, usagePrice: Double? = nil, currencyCode: String? = nil, reservedDBInstancesOfferingId: String? = nil, duration: Int32? = nil, offeringType: String? = nil, fixedPrice: Double? = nil, dBInstanceClass: String? = nil) { + self.productDescription = productDescription + self.recurringCharges = recurringCharges + self.multiAZ = multiAZ + self.usagePrice = usagePrice + self.currencyCode = currencyCode + self.reservedDBInstancesOfferingId = reservedDBInstancesOfferingId + self.duration = duration + self.offeringType = offeringType + self.fixedPrice = fixedPrice + self.dBInstanceClass = dBInstanceClass + } + + private enum CodingKeys: String, CodingKey { + case productDescription = "ProductDescription" + case recurringCharges = "RecurringCharges" + case multiAZ = "MultiAZ" + case usagePrice = "UsagePrice" + case currencyCode = "CurrencyCode" + case reservedDBInstancesOfferingId = "ReservedDBInstancesOfferingId" + case duration = "Duration" + case offeringType = "OfferingType" + case fixedPrice = "FixedPrice" + case dBInstanceClass = "DBInstanceClass" + } + } + + public struct ValidStorageOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StorageSize", required: false, type: .structure), + AWSShapeMember(label: "ProvisionedIops", required: false, type: .structure), + AWSShapeMember(label: "IopsToStorageRatio", required: false, type: .structure), + AWSShapeMember(label: "StorageType", required: false, type: .string) + ] + /// The valid range of storage in gigabytes. For example, 100 to 6144. + public let storageSize: RangeList? + /// The valid range of provisioned IOPS. For example, 1000-20000. + public let provisionedIops: RangeList? + /// The valid range of Provisioned IOPS to gigabytes of storage multiplier. For example, 3-10, which means that provisioned IOPS can be between 3 and 10 times storage. + public let iopsToStorageRatio: DoubleRangeList? + /// The valid storage types for your DB instance. For example, gp2, io1. + public let storageType: String? + + public init(storageSize: RangeList? = nil, provisionedIops: RangeList? = nil, iopsToStorageRatio: DoubleRangeList? = nil, storageType: String? = nil) { + self.storageSize = storageSize + self.provisionedIops = provisionedIops + self.iopsToStorageRatio = iopsToStorageRatio + self.storageType = storageType + } + + private enum CodingKeys: String, CodingKey { + case storageSize = "StorageSize" + case provisionedIops = "ProvisionedIops" + case iopsToStorageRatio = "IopsToStorageRatio" + case storageType = "StorageType" + } + } + + public struct DescribeDBClusterParameterGroupsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "DBClusterParameterGroupName", required: false, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string) + ] + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// This parameter is not currently supported. + public let filters: FilterList? + /// The name of a specific DB cluster parameter group to return details for. Constraints: If supplied, must match the name of an existing DBClusterParameterGroup. + public let dBClusterParameterGroupName: String? + /// An optional pagination token provided by a previous DescribeDBClusterParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, dBClusterParameterGroupName: String? = nil, marker: String? = nil) { + self.maxRecords = maxRecords + self.filters = filters + self.dBClusterParameterGroupName = dBClusterParameterGroupName + self.marker = marker + } + + private enum CodingKeys: String, CodingKey { + case maxRecords = "MaxRecords" + case filters = "Filters" + case dBClusterParameterGroupName = "DBClusterParameterGroupName" + case marker = "Marker" + } + } + + public struct DescribeSourceRegionsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "RegionName", required: false, type: .string) + ] + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// This parameter is not currently supported. + public let filters: FilterList? + /// An optional pagination token provided by a previous DescribeSourceRegions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// The source AWS Region name. For example, us-east-1. Constraints: Must specify a valid AWS Region name. + public let regionName: String? + + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil, regionName: String? = nil) { + self.maxRecords = maxRecords + self.filters = filters + self.marker = marker + self.regionName = regionName + } + + private enum CodingKeys: String, CodingKey { + case maxRecords = "MaxRecords" + case filters = "Filters" + case marker = "Marker" + case regionName = "RegionName" + } + } + + public struct Certificate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CertificateArn", required: false, type: .string), + AWSShapeMember(label: "Thumbprint", required: false, type: .string), + AWSShapeMember(label: "ValidFrom", required: false, type: .timestamp), + AWSShapeMember(label: "ValidTill", required: false, type: .timestamp), + AWSShapeMember(label: "CertificateIdentifier", required: false, type: .string), + AWSShapeMember(label: "CertificateType", required: false, type: .string) + ] + /// The Amazon Resource Name (ARN) for the certificate. + public let certificateArn: String? + /// The thumbprint of the certificate. + public let thumbprint: String? + /// The starting date from which the certificate is valid. + public let validFrom: TimeStamp? + /// The final date that the certificate continues to be valid. + public let validTill: TimeStamp? + /// The unique key that identifies a certificate. + public let certificateIdentifier: String? + /// The type of the certificate. + public let certificateType: String? + + public init(certificateArn: String? = nil, thumbprint: String? = nil, validFrom: TimeStamp? = nil, validTill: TimeStamp? = nil, certificateIdentifier: String? = nil, certificateType: String? = nil) { + self.certificateArn = certificateArn + self.thumbprint = thumbprint + self.validFrom = validFrom + self.validTill = validTill + self.certificateIdentifier = certificateIdentifier + self.certificateType = certificateType + } + + private enum CodingKeys: String, CodingKey { + case certificateArn = "CertificateArn" + case thumbprint = "Thumbprint" + case validFrom = "ValidFrom" + case validTill = "ValidTill" + case certificateIdentifier = "CertificateIdentifier" + case certificateType = "CertificateType" + } + } + + public struct DeleteDBClusterParameterGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterParameterGroupName", required: true, type: .string) + ] + /// The name of the DB cluster parameter group. Constraints: Must be the name of an existing DB cluster parameter group. You can't delete a default DB cluster parameter group. Cannot be associated with any DB clusters. + public let dBClusterParameterGroupName: String + + public init(dBClusterParameterGroupName: String) { + self.dBClusterParameterGroupName = dBClusterParameterGroupName + } + + private enum CodingKeys: String, CodingKey { + case dBClusterParameterGroupName = "DBClusterParameterGroupName" + } + } + + public struct AvailabilityZone: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string) + ] + /// The name of the availability zone. + public let name: String? + + public init(name: String? = nil) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct RestoreDBInstanceToPointInTimeMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Domain", required: false, type: .string), + AWSShapeMember(label: "Port", required: false, type: .integer), + AWSShapeMember(label: "DBName", required: false, type: .string), + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "TdeCredentialPassword", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "LicenseModel", required: false, type: .string), + AWSShapeMember(label: "StorageType", required: false, type: .string), + AWSShapeMember(label: "TdeCredentialArn", required: false, type: .string), + AWSShapeMember(label: "RestoreTime", required: false, type: .timestamp), + AWSShapeMember(label: "Iops", required: false, type: .integer), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), + AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), + AWSShapeMember(label: "TargetDBInstanceIdentifier", required: true, type: .string), + AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), + AWSShapeMember(label: "Engine", required: false, type: .string), + AWSShapeMember(label: "DomainIAMRoleName", required: false, type: .string), + AWSShapeMember(label: "UseLatestRestorableTime", required: false, type: .boolean), + AWSShapeMember(label: "SourceDBInstanceIdentifier", required: true, type: .string), + AWSShapeMember(label: "DBInstanceClass", required: false, type: .string) + ] + /// Specify the Active Directory Domain to restore the instance in. + public let domain: String? + /// The port number on which the database accepts connections. Constraints: Value must be 1150-65535 Default: The same port as the original DB instance. + public let port: Int32? + /// The database name for the restored DB instance. This parameter is not used for the MySQL or MariaDB engines. + public let dBName: String? + /// Specifies if the DB instance is a Multi-AZ deployment. Constraint: You can't specify the AvailabilityZone parameter if the MultiAZ parameter is set to true. + public let multiAZ: Bool? + /// The password for the given ARN from the key store in order to access the device. + public let tdeCredentialPassword: String? + public let tags: TagList? + /// License model information for the restored DB instance. Default: Same as source. Valid values: license-included | bring-your-own-license | general-public-license + public let licenseModel: String? + /// Specifies the storage type to be associated with the DB instance. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified, otherwise standard + public let storageType: String? + /// The ARN from the key store with which to associate the instance for TDE encryption. + public let tdeCredentialArn: String? + /// The date and time to restore from. Valid Values: Value must be a time in Universal Coordinated Time (UTC) format Constraints: Must be before the latest restorable time for the DB instance Cannot be specified if UseLatestRestorableTime parameter is true Example: 2009-09-07T23:45:00Z + public let restoreTime: TimeStamp? + /// The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. Constraints: Must be an integer greater than 1000. SQL Server Setting the IOPS value for the SQL Server database engine is not supported. + public let iops: Int32? + /// The EC2 Availability Zone that the DB instance is created in. Default: A random, system-chosen Availability Zone. Constraint: You can't specify the AvailabilityZone parameter if the MultiAZ parameter is set to true. Example: us-east-1a + public let availabilityZone: String? + /// Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case. Default VPC:true VPC:false If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private. + public let publiclyAccessible: Bool? + /// Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window. + public let autoMinorVersionUpgrade: Bool? + /// The name of the new DB instance to be created. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens + public let targetDBInstanceIdentifier: String + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. You can enable IAM database authentication for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Aurora 5.6 or higher. Default: false + public let enableIAMDatabaseAuthentication: Bool? + /// The name of the option group to be used for the restored DB instance. Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance + public let optionGroupName: String? + /// The DB subnet group name to use for the new instance. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: mySubnetgroup + public let dBSubnetGroupName: String? + /// True to copy all tags from the restored DB instance to snapshots of the DB instance, and otherwise false. The default is false. + public let copyTagsToSnapshot: Bool? + /// The database engine to use for the new instance. Default: The same as source Constraint: Must be compatible with the engine of the source Valid Values: aurora aurora-postgresql mariadb mysql oracle-ee oracle-se2 oracle-se1 oracle-se postgres sqlserver-ee sqlserver-se sqlserver-ex sqlserver-web + public let engine: String? + /// Specify the name of the IAM role to be used when making API calls to the Directory Service. + public let domainIAMRoleName: String? + /// Specifies whether (true) or not (false) the DB instance is restored from the latest backup time. Default: false Constraints: Cannot be specified if RestoreTime parameter is provided. + public let useLatestRestorableTime: Bool? + /// The identifier of the source DB instance from which to restore. Constraints: Must match the identifier of an existing DBInstance. + public let sourceDBInstanceIdentifier: String + /// The compute and memory capacity of the Amazon RDS DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide. Default: The same DBInstanceClass as the original DB instance. + public let dBInstanceClass: String? + + public init(domain: String? = nil, port: Int32? = nil, dBName: String? = nil, multiAZ: Bool? = nil, tdeCredentialPassword: String? = nil, tags: TagList? = nil, licenseModel: String? = nil, storageType: String? = nil, tdeCredentialArn: String? = nil, restoreTime: TimeStamp? = nil, iops: Int32? = nil, availabilityZone: String? = nil, publiclyAccessible: Bool? = nil, autoMinorVersionUpgrade: Bool? = nil, targetDBInstanceIdentifier: String, enableIAMDatabaseAuthentication: Bool? = nil, optionGroupName: String? = nil, dBSubnetGroupName: String? = nil, copyTagsToSnapshot: Bool? = nil, engine: String? = nil, domainIAMRoleName: String? = nil, useLatestRestorableTime: Bool? = nil, sourceDBInstanceIdentifier: String, dBInstanceClass: String? = nil) { + self.domain = domain + self.port = port + self.dBName = dBName + self.multiAZ = multiAZ + self.tdeCredentialPassword = tdeCredentialPassword + self.tags = tags + self.licenseModel = licenseModel + self.storageType = storageType + self.tdeCredentialArn = tdeCredentialArn + self.restoreTime = restoreTime + self.iops = iops + self.availabilityZone = availabilityZone + self.publiclyAccessible = publiclyAccessible + self.autoMinorVersionUpgrade = autoMinorVersionUpgrade + self.targetDBInstanceIdentifier = targetDBInstanceIdentifier + self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication + self.optionGroupName = optionGroupName + self.dBSubnetGroupName = dBSubnetGroupName + self.copyTagsToSnapshot = copyTagsToSnapshot + self.engine = engine + self.domainIAMRoleName = domainIAMRoleName + self.useLatestRestorableTime = useLatestRestorableTime + self.sourceDBInstanceIdentifier = sourceDBInstanceIdentifier + self.dBInstanceClass = dBInstanceClass + } + + private enum CodingKeys: String, CodingKey { + case domain = "Domain" + case port = "Port" + case dBName = "DBName" + case multiAZ = "MultiAZ" + case tdeCredentialPassword = "TdeCredentialPassword" + case tags = "Tags" + case licenseModel = "LicenseModel" + case storageType = "StorageType" + case tdeCredentialArn = "TdeCredentialArn" + case restoreTime = "RestoreTime" + case iops = "Iops" + case availabilityZone = "AvailabilityZone" + case publiclyAccessible = "PubliclyAccessible" + case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" + case targetDBInstanceIdentifier = "TargetDBInstanceIdentifier" + case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" + case optionGroupName = "OptionGroupName" + case dBSubnetGroupName = "DBSubnetGroupName" + case copyTagsToSnapshot = "CopyTagsToSnapshot" + case engine = "Engine" + case domainIAMRoleName = "DomainIAMRoleName" + case useLatestRestorableTime = "UseLatestRestorableTime" + case sourceDBInstanceIdentifier = "SourceDBInstanceIdentifier" + case dBInstanceClass = "DBInstanceClass" + } + } + + public struct CreateDBInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .structure) + ] + public let dBInstance: DBInstance? + + public init(dBInstance: DBInstance? = nil) { + self.dBInstance = dBInstance + } + + private enum CodingKeys: String, CodingKey { + case dBInstance = "DBInstance" + } + } + + public struct StopDBInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .structure) + ] + public let dBInstance: DBInstance? + + public init(dBInstance: DBInstance? = nil) { + self.dBInstance = dBInstance + } + + private enum CodingKeys: String, CodingKey { + case dBInstance = "DBInstance" + } + } + + public struct ReservedDBInstance: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RecurringCharges", required: false, type: .structure), + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "UsagePrice", required: false, type: .double), + AWSShapeMember(label: "State", required: false, type: .string), + AWSShapeMember(label: "ReservedDBInstanceArn", required: false, type: .string), + AWSShapeMember(label: "OfferingType", required: false, type: .string), + AWSShapeMember(label: "ProductDescription", required: false, type: .string), + AWSShapeMember(label: "StartTime", required: false, type: .timestamp), + AWSShapeMember(label: "ReservedDBInstanceId", required: false, type: .string), + AWSShapeMember(label: "DBInstanceCount", required: false, type: .integer), + AWSShapeMember(label: "CurrencyCode", required: false, type: .string), + AWSShapeMember(label: "ReservedDBInstancesOfferingId", required: false, type: .string), + AWSShapeMember(label: "Duration", required: false, type: .integer), + AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), + AWSShapeMember(label: "FixedPrice", required: false, type: .double) + ] + /// The recurring price charged to run this reserved DB instance. + public let recurringCharges: RecurringChargeList? + /// Indicates if the reservation applies to Multi-AZ deployments. + public let multiAZ: Bool? + /// The hourly price charged for this reserved DB instance. + public let usagePrice: Double? + /// The state of the reserved DB instance. + public let state: String? + /// The Amazon Resource Name (ARN) for the reserved DB instance. + public let reservedDBInstanceArn: String? + /// The offering type of this reserved DB instance. + public let offeringType: String? + /// The description of the reserved DB instance. + public let productDescription: String? + /// The time the reservation started. + public let startTime: TimeStamp? + /// The unique identifier for the reservation. + public let reservedDBInstanceId: String? + /// The number of reserved DB instances. + public let dBInstanceCount: Int32? + /// The currency code for the reserved DB instance. + public let currencyCode: String? + /// The offering identifier. + public let reservedDBInstancesOfferingId: String? + /// The duration of the reservation in seconds. + public let duration: Int32? + /// The DB instance class for the reserved DB instance. + public let dBInstanceClass: String? + /// The fixed price charged for this reserved DB instance. + public let fixedPrice: Double? + + public init(recurringCharges: RecurringChargeList? = nil, multiAZ: Bool? = nil, usagePrice: Double? = nil, state: String? = nil, reservedDBInstanceArn: String? = nil, offeringType: String? = nil, productDescription: String? = nil, startTime: TimeStamp? = nil, reservedDBInstanceId: String? = nil, dBInstanceCount: Int32? = nil, currencyCode: String? = nil, reservedDBInstancesOfferingId: String? = nil, duration: Int32? = nil, dBInstanceClass: String? = nil, fixedPrice: Double? = nil) { + self.recurringCharges = recurringCharges + self.multiAZ = multiAZ + self.usagePrice = usagePrice + self.state = state + self.reservedDBInstanceArn = reservedDBInstanceArn + self.offeringType = offeringType + self.productDescription = productDescription + self.startTime = startTime + self.reservedDBInstanceId = reservedDBInstanceId + self.dBInstanceCount = dBInstanceCount + self.currencyCode = currencyCode + self.reservedDBInstancesOfferingId = reservedDBInstancesOfferingId + self.duration = duration + self.dBInstanceClass = dBInstanceClass + self.fixedPrice = fixedPrice + } + + private enum CodingKeys: String, CodingKey { + case recurringCharges = "RecurringCharges" + case multiAZ = "MultiAZ" + case usagePrice = "UsagePrice" + case state = "State" + case reservedDBInstanceArn = "ReservedDBInstanceArn" + case offeringType = "OfferingType" + case productDescription = "ProductDescription" + case startTime = "StartTime" + case reservedDBInstanceId = "ReservedDBInstanceId" + case dBInstanceCount = "DBInstanceCount" + case currencyCode = "CurrencyCode" + case reservedDBInstancesOfferingId = "ReservedDBInstancesOfferingId" + case duration = "Duration" + case dBInstanceClass = "DBInstanceClass" + case fixedPrice = "FixedPrice" + } + } + + public struct DBSubnetGroups: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSubnetGroup", required: false, type: .list) + ] + public let dBSubnetGroup: [DBSubnetGroup]? + + public init(dBSubnetGroup: [DBSubnetGroup]? = nil) { + self.dBSubnetGroup = dBSubnetGroup + } + + private enum CodingKeys: String, CodingKey { + case dBSubnetGroup = "DBSubnetGroup" + } + } + + public struct DoubleRange: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "From", required: false, type: .double), + AWSShapeMember(label: "To", required: false, type: .double) + ] + /// The minimum value in the range. + public let from: Double? + /// The maximum value in the range. + public let to: Double? + + public init(from: Double? = nil, to: Double? = nil) { + self.from = from + self.to = to + } + + private enum CodingKeys: String, CodingKey { + case from = "From" + case to = "To" + } + } + + public struct RemoveRoleFromDBClusterMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleArn", required: true, type: .string), + AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the IAM role to disassociate from the Aurora DB cluster, for example arn:aws:iam::123456789012:role/AuroraAccessRole. + public let roleArn: String + /// The name of the DB cluster to disassociate the IAM role from. + public let dBClusterIdentifier: String + + public init(roleArn: String, dBClusterIdentifier: String) { + self.roleArn = roleArn + self.dBClusterIdentifier = dBClusterIdentifier + } + + private enum CodingKeys: String, CodingKey { + case roleArn = "RoleArn" + case dBClusterIdentifier = "DBClusterIdentifier" + } + } + + public struct DescribeDBSubnetGroupsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string) + ] + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// This parameter is not currently supported. + public let filters: FilterList? + /// The name of the DB subnet group to return details for. + public let dBSubnetGroupName: String? + /// An optional pagination token provided by a previous DescribeDBSubnetGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, dBSubnetGroupName: String? = nil, marker: String? = nil) { + self.maxRecords = maxRecords + self.filters = filters + self.dBSubnetGroupName = dBSubnetGroupName + self.marker = marker + } + + private enum CodingKeys: String, CodingKey { + case maxRecords = "MaxRecords" + case filters = "Filters" + case dBSubnetGroupName = "DBSubnetGroupName" + case marker = "Marker" + } + } + + public struct RangeList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Range", required: false, type: .list) + ] + public let range: [Range]? + + public init(range: [Range]? = nil) { + self.range = range + } + + private enum CodingKeys: String, CodingKey { + case range = "Range" + } + } + + public struct DescribeDBClusterSnapshotAttributesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterSnapshotAttributesResult", required: false, type: .structure) + ] + public let dBClusterSnapshotAttributesResult: DBClusterSnapshotAttributesResult? + + public init(dBClusterSnapshotAttributesResult: DBClusterSnapshotAttributesResult? = nil) { + self.dBClusterSnapshotAttributesResult = dBClusterSnapshotAttributesResult + } + + private enum CodingKeys: String, CodingKey { + case dBClusterSnapshotAttributesResult = "DBClusterSnapshotAttributesResult" + } + } + + public struct OptionGroupOptionsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionGroupOption", required: false, type: .list) + ] + public let optionGroupOption: [OptionGroupOption]? + + public init(optionGroupOption: [OptionGroupOption]? = nil) { + self.optionGroupOption = optionGroupOption + } + + private enum CodingKeys: String, CodingKey { + case optionGroupOption = "OptionGroupOption" + } + } + + public struct SourceRegion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "Endpoint", required: false, type: .string), + AWSShapeMember(label: "RegionName", required: false, type: .string) + ] + /// The status of the source AWS Region. + public let status: String? + /// The endpoint for the source AWS Region endpoint. + public let endpoint: String? + /// The name of the source AWS Region. + public let regionName: String? + + public init(status: String? = nil, endpoint: String? = nil, regionName: String? = nil) { + self.status = status + self.endpoint = endpoint + self.regionName = regionName + } + + private enum CodingKeys: String, CodingKey { + case status = "Status" + case endpoint = "Endpoint" + case regionName = "RegionName" + } + } + + public struct Range: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Step", required: false, type: .integer), + AWSShapeMember(label: "From", required: false, type: .integer), + AWSShapeMember(label: "To", required: false, type: .integer) + ] + /// The step value for the range. For example, if you have a range of 5,000 to 10,000, with a step value of 1,000, the valid values start at 5,000 and step up by 1,000. Even though 7,500 is within the range, it isn't a valid value for the range. The valid values are 5,000, 6,000, 7,000, 8,000... + public let step: Int32? + /// The minimum value in the range. + public let from: Int32? + /// The maximum value in the range. + public let to: Int32? + + public init(step: Int32? = nil, from: Int32? = nil, to: Int32? = nil) { + self.step = step + self.from = from + self.to = to + } + + private enum CodingKeys: String, CodingKey { + case step = "Step" + case from = "From" + case to = "To" + } + } + + public struct CreateDBSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSnapshot", required: false, type: .structure) + ] + public let dBSnapshot: DBSnapshot? + + public init(dBSnapshot: DBSnapshot? = nil) { + self.dBSnapshot = dBSnapshot + } + + private enum CodingKeys: String, CodingKey { + case dBSnapshot = "DBSnapshot" + } + } + + public struct RestoreDBClusterFromS3Result: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBCluster", required: false, type: .structure) + ] + public let dBCluster: DBCluster? + + public init(dBCluster: DBCluster? = nil) { + self.dBCluster = dBCluster + } + + private enum CodingKeys: String, CodingKey { + case dBCluster = "DBCluster" + } + } + + public struct EC2SecurityGroupList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EC2SecurityGroup", required: false, type: .list) + ] + public let eC2SecurityGroup: [EC2SecurityGroup]? + + public init(eC2SecurityGroup: [EC2SecurityGroup]? = nil) { + self.eC2SecurityGroup = eC2SecurityGroup + } + + private enum CodingKeys: String, CodingKey { + case eC2SecurityGroup = "EC2SecurityGroup" + } + } + + public struct ModifyDBClusterMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), + AWSShapeMember(label: "MasterUserPassword", required: false, type: .string), + AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), + AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), + AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), + AWSShapeMember(label: "DBClusterParameterGroupName", required: false, type: .string), + AWSShapeMember(label: "ApplyImmediately", required: false, type: .boolean), + AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), + AWSShapeMember(label: "NewDBClusterIdentifier", required: false, type: .string), + AWSShapeMember(label: "Port", required: false, type: .integer) + ] + /// The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Constraints: Must be in the format hh24:mi-hh24:mi. Must be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. + public let preferredBackupWindow: String? + /// The new password for the master database user. This password can contain any printable ASCII character except "/", """, or "@". Constraints: Must contain from 8 to 41 characters. + public let masterUserPassword: String? + /// The DB cluster identifier for the cluster being modified. This parameter is not case-sensitive. Constraints: Must match the identifier of an existing DBCluster. + public let dBClusterIdentifier: String + /// A value that indicates that the DB cluster should be associated with the specified option group. Changing this parameter does not result in an outage except in the following case, and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted. Permanent options can't be removed from an option group. The option group can't be removed from a DB cluster once it is associated with a DB cluster. + public let optionGroupName: String? + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false + public let enableIAMDatabaseAuthentication: Bool? + /// The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: ddd:hh24:mi-ddd:hh24:mi The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window. + public let preferredMaintenanceWindow: String? + /// A list of VPC security groups that the DB cluster will belong to. + public let vpcSecurityGroupIds: VpcSecurityGroupIdList? + /// The name of the DB cluster parameter group to use for the DB cluster. + public let dBClusterParameterGroupName: String? + /// A value that specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB cluster. If this parameter is set to false, changes to the DB cluster are applied during the next maintenance window. The ApplyImmediately parameter only affects the NewDBClusterIdentifier and MasterUserPassword values. If you set the ApplyImmediately parameter value to false, then changes to the NewDBClusterIdentifier and MasterUserPassword values are applied during the next maintenance window. All other changes are applied immediately, regardless of the value of the ApplyImmediately parameter. Default: false + public let applyImmediately: Bool? + /// The number of days for which automated backups are retained. You must specify a minimum value of 1. Default: 1 Constraints: Must be a value from 1 to 35 + public let backupRetentionPeriod: Int32? + /// The new DB cluster identifier for the DB cluster when renaming a DB cluster. This value is stored as a lowercase string. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens The first character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-cluster2 + public let newDBClusterIdentifier: String? + /// The port number on which the DB cluster accepts connections. Constraints: Value must be 1150-65535 Default: The same port as the original DB cluster. + public let port: Int32? + + public init(preferredBackupWindow: String? = nil, masterUserPassword: String? = nil, dBClusterIdentifier: String, optionGroupName: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, preferredMaintenanceWindow: String? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, dBClusterParameterGroupName: String? = nil, applyImmediately: Bool? = nil, backupRetentionPeriod: Int32? = nil, newDBClusterIdentifier: String? = nil, port: Int32? = nil) { + self.preferredBackupWindow = preferredBackupWindow + self.masterUserPassword = masterUserPassword + self.dBClusterIdentifier = dBClusterIdentifier + self.optionGroupName = optionGroupName + self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication + self.preferredMaintenanceWindow = preferredMaintenanceWindow + self.vpcSecurityGroupIds = vpcSecurityGroupIds + self.dBClusterParameterGroupName = dBClusterParameterGroupName + self.applyImmediately = applyImmediately + self.backupRetentionPeriod = backupRetentionPeriod + self.newDBClusterIdentifier = newDBClusterIdentifier + self.port = port + } + + private enum CodingKeys: String, CodingKey { + case preferredBackupWindow = "PreferredBackupWindow" + case masterUserPassword = "MasterUserPassword" + case dBClusterIdentifier = "DBClusterIdentifier" + case optionGroupName = "OptionGroupName" + case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" + case preferredMaintenanceWindow = "PreferredMaintenanceWindow" + case vpcSecurityGroupIds = "VpcSecurityGroupIds" + case dBClusterParameterGroupName = "DBClusterParameterGroupName" + case applyImmediately = "ApplyImmediately" + case backupRetentionPeriod = "BackupRetentionPeriod" + case newDBClusterIdentifier = "NewDBClusterIdentifier" + case port = "Port" + } + } + + public struct DBParameterGroupList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroup", required: false, type: .list) + ] + public let dBParameterGroup: [DBParameterGroup]? + + public init(dBParameterGroup: [DBParameterGroup]? = nil) { + self.dBParameterGroup = dBParameterGroup + } + + private enum CodingKeys: String, CodingKey { + case dBParameterGroup = "DBParameterGroup" + } + } + + public struct AddSourceIdentifierToSubscriptionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EventSubscription", required: false, type: .structure) + ] + public let eventSubscription: EventSubscription? + + public init(eventSubscription: EventSubscription? = nil) { + self.eventSubscription = eventSubscription + } + + private enum CodingKeys: String, CodingKey { + case eventSubscription = "EventSubscription" + } + } + + public struct ValidUpgradeTargetList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "UpgradeTarget", required: false, type: .list) + ] + public let upgradeTarget: [UpgradeTarget]? + + public init(upgradeTarget: [UpgradeTarget]? = nil) { + self.upgradeTarget = upgradeTarget + } + + private enum CodingKeys: String, CodingKey { + case upgradeTarget = "UpgradeTarget" + } + } + + public struct DBSubnetGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSubnetGroupArn", required: false, type: .string), + AWSShapeMember(label: "SubnetGroupStatus", required: false, type: .string), + AWSShapeMember(label: "DBSubnetGroupDescription", required: false, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "VpcId", required: false, type: .string), + AWSShapeMember(label: "Subnets", required: false, type: .structure) + ] + /// The Amazon Resource Name (ARN) for the DB subnet group. + public let dBSubnetGroupArn: String? + /// Provides the status of the DB subnet group. + public let subnetGroupStatus: String? + /// Provides the description of the DB subnet group. + public let dBSubnetGroupDescription: String? + /// The name of the DB subnet group. + public let dBSubnetGroupName: String? + /// Provides the VpcId of the DB subnet group. + public let vpcId: String? + /// Contains a list of Subnet elements. + public let subnets: SubnetList? + + public init(dBSubnetGroupArn: String? = nil, subnetGroupStatus: String? = nil, dBSubnetGroupDescription: String? = nil, dBSubnetGroupName: String? = nil, vpcId: String? = nil, subnets: SubnetList? = nil) { + self.dBSubnetGroupArn = dBSubnetGroupArn + self.subnetGroupStatus = subnetGroupStatus + self.dBSubnetGroupDescription = dBSubnetGroupDescription + self.dBSubnetGroupName = dBSubnetGroupName + self.vpcId = vpcId + self.subnets = subnets + } + + private enum CodingKeys: String, CodingKey { + case dBSubnetGroupArn = "DBSubnetGroupArn" + case subnetGroupStatus = "SubnetGroupStatus" + case dBSubnetGroupDescription = "DBSubnetGroupDescription" + case dBSubnetGroupName = "DBSubnetGroupName" + case vpcId = "VpcId" + case subnets = "Subnets" + } + } + + public struct SubnetList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Subnet", required: false, type: .list) + ] + public let subnet: [Subnet]? + + public init(subnet: [Subnet]? = nil) { + self.subnet = subnet + } + + private enum CodingKeys: String, CodingKey { + case subnet = "Subnet" + } + } + + public struct ReadReplicaIdentifierList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReadReplicaIdentifier", required: false, type: .list) + ] + public let readReplicaIdentifier: [String]? + + public init(readReplicaIdentifier: [String]? = nil) { + self.readReplicaIdentifier = readReplicaIdentifier + } + + private enum CodingKeys: String, CodingKey { + case readReplicaIdentifier = "ReadReplicaIdentifier" + } + } + + public struct TagListMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TagList", required: false, type: .structure) + ] + /// List of tags returned by the ListTagsForResource operation. + public let tagList: TagList? + + public init(tagList: TagList? = nil) { + self.tagList = tagList + } + + private enum CodingKeys: String, CodingKey { + case tagList = "TagList" + } + } + + public struct AuthorizeDBSecurityGroupIngressMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EC2SecurityGroupName", required: false, type: .string), + AWSShapeMember(label: "DBSecurityGroupName", required: true, type: .string), + AWSShapeMember(label: "EC2SecurityGroupId", required: false, type: .string), + AWSShapeMember(label: "EC2SecurityGroupOwnerId", required: false, type: .string), + AWSShapeMember(label: "CIDRIP", required: false, type: .string) + ] + /// Name of the EC2 security group to authorize. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided. + public let eC2SecurityGroupName: String? + /// The name of the DB security group to add authorization to. + public let dBSecurityGroupName: String + /// Id of the EC2 security group to authorize. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided. + public let eC2SecurityGroupId: String? + /// AWS account number of the owner of the EC2 security group specified in the EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable value. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided. + public let eC2SecurityGroupOwnerId: String? + /// The IP range to authorize. + public let cidrip: String? + + public init(eC2SecurityGroupName: String? = nil, dBSecurityGroupName: String, eC2SecurityGroupId: String? = nil, eC2SecurityGroupOwnerId: String? = nil, cidrip: String? = nil) { + self.eC2SecurityGroupName = eC2SecurityGroupName + self.dBSecurityGroupName = dBSecurityGroupName + self.eC2SecurityGroupId = eC2SecurityGroupId + self.eC2SecurityGroupOwnerId = eC2SecurityGroupOwnerId + self.cidrip = cidrip + } + + private enum CodingKeys: String, CodingKey { + case eC2SecurityGroupName = "EC2SecurityGroupName" + case dBSecurityGroupName = "DBSecurityGroupName" + case eC2SecurityGroupId = "EC2SecurityGroupId" + case eC2SecurityGroupOwnerId = "EC2SecurityGroupOwnerId" + case cidrip = "CIDRIP" + } + } + + public struct CertificateMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "Certificates", required: false, type: .structure) + ] + /// An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords . + public let marker: String? + /// The list of Certificate objects for the AWS account. + public let certificates: CertificateList? + + public init(marker: String? = nil, certificates: CertificateList? = nil) { + self.marker = marker + self.certificates = certificates + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case certificates = "Certificates" + } + } + + public struct DBClusterParameterGroupList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterParameterGroup", required: false, type: .list) + ] + public let dBClusterParameterGroup: [DBClusterParameterGroup]? + + public init(dBClusterParameterGroup: [DBClusterParameterGroup]? = nil) { + self.dBClusterParameterGroup = dBClusterParameterGroup + } + + private enum CodingKeys: String, CodingKey { + case dBClusterParameterGroup = "DBClusterParameterGroup" + } + } + + public struct CopyDBClusterSnapshotMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceDBClusterSnapshotIdentifier", required: true, type: .string), + AWSShapeMember(label: "CopyTags", required: false, type: .boolean), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "TargetDBClusterSnapshotIdentifier", required: true, type: .string), + AWSShapeMember(label: "PreSignedUrl", required: false, type: .string) + ] + /// The identifier of the DB cluster snapshot to copy. This parameter is not case-sensitive. You can't copy an encrypted, shared DB cluster snapshot from one AWS Region to another. Constraints: Must specify a valid system snapshot in the "available" state. If the source snapshot is in the same AWS Region as the copy, specify a valid DB snapshot identifier. If the source snapshot is in a different AWS Region than the copy, specify a valid DB cluster snapshot ARN. For more information, go to Copying a DB Snapshot or DB Cluster Snapshot. Example: my-cluster-snapshot1 + public let sourceDBClusterSnapshotIdentifier: String + /// True to copy all tags from the source DB cluster snapshot to the target DB cluster snapshot, and otherwise false. The default is false. + public let copyTags: Bool? + /// The AWS AWS KMS key ID for an encrypted DB cluster snapshot. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. If you copy an unencrypted DB cluster snapshot and specify a value for the KmsKeyId parameter, Amazon RDS encrypts the target DB cluster snapshot using the specified KMS encryption key. If you copy an encrypted DB cluster snapshot from your AWS account, you can specify a value for KmsKeyId to encrypt the copy with a new KMS encryption key. If you don't specify a value for KmsKeyId, then the copy of the DB cluster snapshot is encrypted with the same KMS key as the source DB cluster snapshot. If you copy an encrypted DB cluster snapshot that is shared from another AWS account, then you must specify a value for KmsKeyId. To copy an encrypted DB cluster snapshot to another AWS Region, you must set KmsKeyId to the KMS key ID you want to use to encrypt the copy of the DB cluster snapshot in the destination AWS Region. KMS encryption keys are specific to the AWS Region that they are created in, and you can't use encryption keys from one AWS Region in another AWS Region. + public let kmsKeyId: String? + public let tags: TagList? + /// The identifier of the new DB cluster snapshot to create from the source DB cluster snapshot. This parameter is not case-sensitive. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: my-cluster-snapshot2 + public let targetDBClusterSnapshotIdentifier: String + /// The URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot API action in the AWS Region that contains the source DB cluster snapshot to copy. The PreSignedUrl parameter must be used when copying an encrypted DB cluster snapshot from another AWS Region. The pre-signed URL must be a valid request for the CopyDBSClusterSnapshot API action that can be executed in the source AWS Region that contains the encrypted DB cluster snapshot to be copied. The pre-signed URL request must contain the following parameter values: KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot action that is called in the destination AWS Region, and the action contained in the pre-signed URL. DestinationRegion - The name of the AWS Region that the DB cluster snapshot will be created in. SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 AWS Region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. + public let preSignedUrl: String? + + public init(sourceDBClusterSnapshotIdentifier: String, copyTags: Bool? = nil, kmsKeyId: String? = nil, tags: TagList? = nil, targetDBClusterSnapshotIdentifier: String, preSignedUrl: String? = nil) { + self.sourceDBClusterSnapshotIdentifier = sourceDBClusterSnapshotIdentifier + self.copyTags = copyTags + self.kmsKeyId = kmsKeyId + self.tags = tags + self.targetDBClusterSnapshotIdentifier = targetDBClusterSnapshotIdentifier + self.preSignedUrl = preSignedUrl + } + + private enum CodingKeys: String, CodingKey { + case sourceDBClusterSnapshotIdentifier = "SourceDBClusterSnapshotIdentifier" + case copyTags = "CopyTags" + case kmsKeyId = "KmsKeyId" + case tags = "Tags" + case targetDBClusterSnapshotIdentifier = "TargetDBClusterSnapshotIdentifier" + case preSignedUrl = "PreSignedUrl" + } + } + + public struct ValidDBInstanceModificationsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Storage", required: false, type: .structure) + ] + /// Valid storage options for your DB instance. + public let storage: ValidStorageOptionsList? + + public init(storage: ValidStorageOptionsList? = nil) { + self.storage = storage + } + + private enum CodingKeys: String, CodingKey { + case storage = "Storage" + } + } + + public struct ReservedDBInstancesOfferingList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedDBInstancesOffering", required: false, type: .list) + ] + public let reservedDBInstancesOffering: [ReservedDBInstancesOffering]? + + public init(reservedDBInstancesOffering: [ReservedDBInstancesOffering]? = nil) { + self.reservedDBInstancesOffering = reservedDBInstancesOffering + } + + private enum CodingKeys: String, CodingKey { + case reservedDBInstancesOffering = "ReservedDBInstancesOffering" + } + } + + public struct OptionConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionSettings", required: false, type: .structure), + AWSShapeMember(label: "OptionName", required: true, type: .string), + AWSShapeMember(label: "DBSecurityGroupMemberships", required: false, type: .structure), + AWSShapeMember(label: "VpcSecurityGroupMemberships", required: false, type: .structure), + AWSShapeMember(label: "OptionVersion", required: false, type: .string), + AWSShapeMember(label: "Port", required: false, type: .integer) + ] + /// The option settings to include in an option group. + public let optionSettings: OptionSettingsList? + /// The configuration of options to include in a group. + public let optionName: String + /// A list of DBSecurityGroupMemebrship name strings used for this option. + public let dBSecurityGroupMemberships: DBSecurityGroupNameList? + /// A list of VpcSecurityGroupMemebrship name strings used for this option. + public let vpcSecurityGroupMemberships: VpcSecurityGroupIdList? + /// The version for the option. + public let optionVersion: String? + /// The optional port for the option. + public let port: Int32? + + public init(optionSettings: OptionSettingsList? = nil, optionName: String, dBSecurityGroupMemberships: DBSecurityGroupNameList? = nil, vpcSecurityGroupMemberships: VpcSecurityGroupIdList? = nil, optionVersion: String? = nil, port: Int32? = nil) { + self.optionSettings = optionSettings + self.optionName = optionName + self.dBSecurityGroupMemberships = dBSecurityGroupMemberships + self.vpcSecurityGroupMemberships = vpcSecurityGroupMemberships + self.optionVersion = optionVersion + self.port = port + } + + private enum CodingKeys: String, CodingKey { + case optionSettings = "OptionSettings" + case optionName = "OptionName" + case dBSecurityGroupMemberships = "DBSecurityGroupMemberships" + case vpcSecurityGroupMemberships = "VpcSecurityGroupMemberships" + case optionVersion = "OptionVersion" + case port = "Port" + } + } + + public struct RestoreDBClusterFromSnapshotMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZones", required: false, type: .structure), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), + AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "SnapshotIdentifier", required: true, type: .string), + AWSShapeMember(label: "Engine", required: true, type: .string), + AWSShapeMember(label: "DatabaseName", required: false, type: .string), + AWSShapeMember(label: "Port", required: false, type: .integer), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) + ] + /// Provides the list of EC2 Availability Zones that instances in the restored DB cluster can be created in. + public let availabilityZones: AvailabilityZones? + /// The tags to be assigned to the restored DB cluster. + public let tags: TagList? + /// A list of VPC security groups that the new DB cluster will belong to. + public let vpcSecurityGroupIds: VpcSecurityGroupIdList? + /// The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. This parameter isn't case-sensitive. Constraints: Must contain from 1 to 255 letters, numbers, or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-snapshot-id + public let dBClusterIdentifier: String + /// The name of the DB subnet group to use for the new DB cluster. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: mySubnetgroup + public let dBSubnetGroupName: String? + /// The name of the option group to use for the restored DB cluster. + public let optionGroupName: String? + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false + public let enableIAMDatabaseAuthentication: Bool? + /// The version of the database engine to use for the new DB cluster. + public let engineVersion: String? + /// The identifier for the DB snapshot or DB cluster snapshot to restore from. You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot. Constraints: Must match the identifier of an existing Snapshot. + public let snapshotIdentifier: String + /// The database engine to use for the new DB cluster. Default: The same as source Constraint: Must be compatible with the engine of the source + public let engine: String + /// The database name for the restored DB cluster. + public let databaseName: String? + /// The port number on which the new DB cluster accepts connections. Constraints: Value must be 1150-65535 Default: The same port as the original DB cluster. + public let port: Int32? + /// The AWS KMS key identifier to use when restoring an encrypted DB cluster from a DB snapshot or DB cluster snapshot. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. If you do not specify a value for the KmsKeyId parameter, then the following will occur: If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB snapshot or DB cluster snapshot. If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is not encrypted, then the restored DB cluster is not encrypted. + public let kmsKeyId: String? + + public init(availabilityZones: AvailabilityZones? = nil, tags: TagList? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, dBClusterIdentifier: String, dBSubnetGroupName: String? = nil, optionGroupName: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, engineVersion: String? = nil, snapshotIdentifier: String, engine: String, databaseName: String? = nil, port: Int32? = nil, kmsKeyId: String? = nil) { + self.availabilityZones = availabilityZones + self.tags = tags + self.vpcSecurityGroupIds = vpcSecurityGroupIds + self.dBClusterIdentifier = dBClusterIdentifier + self.dBSubnetGroupName = dBSubnetGroupName + self.optionGroupName = optionGroupName + self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication + self.engineVersion = engineVersion + self.snapshotIdentifier = snapshotIdentifier + self.engine = engine + self.databaseName = databaseName + self.port = port + self.kmsKeyId = kmsKeyId + } + + private enum CodingKeys: String, CodingKey { + case availabilityZones = "AvailabilityZones" + case tags = "Tags" + case vpcSecurityGroupIds = "VpcSecurityGroupIds" + case dBClusterIdentifier = "DBClusterIdentifier" + case dBSubnetGroupName = "DBSubnetGroupName" + case optionGroupName = "OptionGroupName" + case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" + case engineVersion = "EngineVersion" + case snapshotIdentifier = "SnapshotIdentifier" + case engine = "Engine" + case databaseName = "DatabaseName" + case port = "Port" + case kmsKeyId = "KmsKeyId" + } + } + + public struct SourceRegionMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "SourceRegions", required: false, type: .structure) + ] + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// A list of SourceRegion instances that contains each source AWS Region that the current AWS Region can get a Read Replica or a DB snapshot from. + public let sourceRegions: SourceRegionList? + + public init(marker: String? = nil, sourceRegions: SourceRegionList? = nil) { + self.marker = marker + self.sourceRegions = sourceRegions + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case sourceRegions = "SourceRegions" + } + } + + public struct DescribeDBInstancesMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "DBInstanceIdentifier", required: false, type: .string) + ] + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// A filter that specifies one or more DB instances to describe. Supported filters: db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB instances associated with the DB clusters identified by these ARNs. db-instance-id - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). The results list will only include information about the DB instances identified by these ARNs. + public let filters: FilterList? + /// An optional pagination token provided by a previous DescribeDBInstances request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// The user-supplied instance identifier. If this parameter is specified, information from only the specific DB instance is returned. This parameter isn't case-sensitive. Constraints: If supplied, must match the identifier of an existing DBInstance. + public let dBInstanceIdentifier: String? + + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil, dBInstanceIdentifier: String? = nil) { + self.maxRecords = maxRecords + self.filters = filters + self.marker = marker + self.dBInstanceIdentifier = dBInstanceIdentifier + } + + private enum CodingKeys: String, CodingKey { + case maxRecords = "MaxRecords" + case filters = "Filters" + case marker = "Marker" + case dBInstanceIdentifier = "DBInstanceIdentifier" + } + } + + public struct PendingModifiedValues: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "LicenseModel", required: false, type: .string), + AWSShapeMember(label: "StorageType", required: false, type: .string), + AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), + AWSShapeMember(label: "MasterUserPassword", required: false, type: .string), + AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), + AWSShapeMember(label: "Iops", required: false, type: .integer), + AWSShapeMember(label: "CACertificateIdentifier", required: false, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "Port", required: false, type: .integer), + AWSShapeMember(label: "DBInstanceIdentifier", required: false, type: .string) + ] + /// Contains the new DBInstanceClass for the DB instance that will be applied or is currently being applied. + public let dBInstanceClass: String? + /// Indicates that the Single-AZ DB instance is to change to a Multi-AZ deployment. + public let multiAZ: Bool? + /// The license model for the DB instance. Valid values: license-included | bring-your-own-license | general-public-license + public let licenseModel: String? + /// Specifies the storage type to be associated with the DB instance. + public let storageType: String? + /// Contains the new AllocatedStorage size for the DB instance that will be applied or is currently being applied. + public let allocatedStorage: Int32? + /// Contains the pending or currently-in-progress change of the master credentials for the DB instance. + public let masterUserPassword: String? + /// Specifies the pending number of days for which automated backups are retained. + public let backupRetentionPeriod: Int32? + /// Specifies the new Provisioned IOPS value for the DB instance that will be applied or is currently being applied. + public let iops: Int32? + /// Specifies the identifier of the CA certificate for the DB instance. + public let cACertificateIdentifier: String? + /// The new DB subnet group for the DB instance. + public let dBSubnetGroupName: String? + /// Indicates the database engine version. + public let engineVersion: String? + /// Specifies the pending port for the DB instance. + public let port: Int32? + /// Contains the new DBInstanceIdentifier for the DB instance that will be applied or is currently being applied. + public let dBInstanceIdentifier: String? + + public init(dBInstanceClass: String? = nil, multiAZ: Bool? = nil, licenseModel: String? = nil, storageType: String? = nil, allocatedStorage: Int32? = nil, masterUserPassword: String? = nil, backupRetentionPeriod: Int32? = nil, iops: Int32? = nil, cACertificateIdentifier: String? = nil, dBSubnetGroupName: String? = nil, engineVersion: String? = nil, port: Int32? = nil, dBInstanceIdentifier: String? = nil) { + self.dBInstanceClass = dBInstanceClass + self.multiAZ = multiAZ + self.licenseModel = licenseModel + self.storageType = storageType + self.allocatedStorage = allocatedStorage + self.masterUserPassword = masterUserPassword + self.backupRetentionPeriod = backupRetentionPeriod + self.iops = iops + self.cACertificateIdentifier = cACertificateIdentifier + self.dBSubnetGroupName = dBSubnetGroupName + self.engineVersion = engineVersion + self.port = port + self.dBInstanceIdentifier = dBInstanceIdentifier + } + + private enum CodingKeys: String, CodingKey { + case dBInstanceClass = "DBInstanceClass" + case multiAZ = "MultiAZ" + case licenseModel = "LicenseModel" + case storageType = "StorageType" + case allocatedStorage = "AllocatedStorage" + case masterUserPassword = "MasterUserPassword" + case backupRetentionPeriod = "BackupRetentionPeriod" + case iops = "Iops" + case cACertificateIdentifier = "CACertificateIdentifier" + case dBSubnetGroupName = "DBSubnetGroupName" + case engineVersion = "EngineVersion" + case port = "Port" + case dBInstanceIdentifier = "DBInstanceIdentifier" + } + } + + public struct ModifyDBSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSnapshot", required: false, type: .structure) + ] + public let dBSnapshot: DBSnapshot? + + public init(dBSnapshot: DBSnapshot? = nil) { + self.dBSnapshot = dBSnapshot + } + + private enum CodingKeys: String, CodingKey { + case dBSnapshot = "DBSnapshot" + } + } + + public struct StartDBInstanceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) + ] + /// The user-supplied instance identifier. + public let dBInstanceIdentifier: String + + public init(dBInstanceIdentifier: String) { + self.dBInstanceIdentifier = dBInstanceIdentifier + } + + private enum CodingKeys: String, CodingKey { + case dBInstanceIdentifier = "DBInstanceIdentifier" + } + } + + public struct ModifyDBInstanceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AllowMajorVersionUpgrade", required: false, type: .boolean), + AWSShapeMember(label: "TdeCredentialPassword", required: false, type: .string), + AWSShapeMember(label: "DBPortNumber", required: false, type: .integer), + AWSShapeMember(label: "EnablePerformanceInsights", required: false, type: .boolean), + AWSShapeMember(label: "ApplyImmediately", required: false, type: .boolean), + AWSShapeMember(label: "Iops", required: false, type: .integer), + AWSShapeMember(label: "MasterUserPassword", required: false, type: .string), + AWSShapeMember(label: "DBSecurityGroups", required: false, type: .structure), + AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), + AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), + AWSShapeMember(label: "CACertificateIdentifier", required: false, type: .string), + AWSShapeMember(label: "PerformanceInsightsKMSKeyId", required: false, type: .string), + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), + AWSShapeMember(label: "PromotionTier", required: false, type: .integer), + AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), + AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), + AWSShapeMember(label: "DomainIAMRoleName", required: false, type: .string), + AWSShapeMember(label: "Domain", required: false, type: .string), + AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), + AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), + AWSShapeMember(label: "StorageType", required: false, type: .string), + AWSShapeMember(label: "LicenseModel", required: false, type: .string), + AWSShapeMember(label: "TdeCredentialArn", required: false, type: .string), + AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string), + AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), + AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "MonitoringRoleArn", required: false, type: .string), + AWSShapeMember(label: "MonitoringInterval", required: false, type: .integer), + AWSShapeMember(label: "NewDBInstanceIdentifier", required: false, type: .string), + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) + ] + /// Indicates that major version upgrades are allowed. Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible. Constraints: This parameter must be set to true when specifying a value for the EngineVersion parameter that is a different major version than the DB instance's current version. + public let allowMajorVersionUpgrade: Bool? + /// The password for the given ARN from the key store in order to access the device. + public let tdeCredentialPassword: String? + /// The port number on which the database accepts connections. The value of the DBPortNumber parameter must not match any of the port values specified for options in the option group for the DB instance. Your database will restart when you change the DBPortNumber value regardless of the value of the ApplyImmediately parameter. MySQL Default: 3306 Valid Values: 1150-65535 MariaDB Default: 3306 Valid Values: 1150-65535 PostgreSQL Default: 5432 Valid Values: 1150-65535 Type: Integer Oracle Default: 1521 Valid Values: 1150-65535 SQL Server Default: 1433 Valid Values: 1150-65535 except for 1434, 3389, 47001, 49152, and 49152 through 49156. Amazon Aurora Default: 3306 Valid Values: 1150-65535 + public let dBPortNumber: Int32? + /// True to enable Performance Insights for the DB instance, and otherwise false. + public let enablePerformanceInsights: Bool? + /// Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB instance. If this parameter is set to false, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and are applied on the next call to RebootDBInstance, or the next failure reboot. Review the table of parameters in Modifying a DB Instance and Using the Apply Immediately Parameter to see the impact that setting ApplyImmediately to true or false has for each modified parameter and to determine when the changes are applied. Default: false + public let applyImmediately: Bool? + /// The new Provisioned IOPS (I/O operations per second) value for the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. Default: Uses existing setting Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. If you are migrating from Provisioned IOPS to standard storage, set this value to 0. The DB instance will require a reboot for the change in storage type to take effect. SQL Server Setting the IOPS value for the SQL Server database engine is not supported. Type: Integer If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance is available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance are suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a Read Replica for the instance, and creating a DB snapshot of the instance. + public let iops: Int32? + /// The new password for the master user. The password can include any printable ASCII character except "/", """, or "@". Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response. Amazon Aurora Not applicable. The password for the master user is managed by the DB cluster. For more information, see ModifyDBCluster. Default: Uses existing setting MariaDB Constraints: Must contain from 8 to 41 characters. Microsoft SQL Server Constraints: Must contain from 8 to 128 characters. MySQL Constraints: Must contain from 8 to 41 characters. Oracle Constraints: Must contain from 8 to 30 characters. PostgreSQL Constraints: Must contain from 8 to 128 characters. Amazon RDS API actions never return the password, so this action provides a way to regain access to a primary instance user if the password is lost. This includes restoring privileges that might have been accidentally revoked. + public let masterUserPassword: String? + /// A list of DB security groups to authorize on this DB instance. Changing this setting does not result in an outage and the change is asynchronously applied as soon as possible. Constraints: If supplied, must match existing DBSecurityGroups. + public let dBSecurityGroups: DBSecurityGroupNameList? + /// Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window. Changing this parameter does not result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to true during the maintenance window, and a newer minor version is available, and RDS has enabled auto patching for that engine version. + public let autoMinorVersionUpgrade: Bool? + /// The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups. Changing this parameter can result in an outage if you change from 0 to a non-zero value or from a non-zero value to 0. These changes are applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If you change the parameter from one non-zero value to another non-zero value, the change is asynchronously applied as soon as possible. Amazon Aurora Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see ModifyDBCluster. Default: Uses existing setting Constraints: Must be a value from 0 to 35 Can be specified for a MySQL Read Replica only if the source is running MySQL 5.6 Can be specified for a PostgreSQL Read Replica only if the source is running PostgreSQL 9.3.5 Cannot be set to 0 if the DB instance is a source to Read Replicas + public let backupRetentionPeriod: Int32? + /// Indicates the certificate that needs to be associated with the instance. + public let cACertificateIdentifier: String? + /// The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. + public let performanceInsightsKMSKeyId: String? + /// The version number of the database engine to upgrade to. Changing this parameter results in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. For major version upgrades, if a nondefault DB parameter group is currently in use, a new DB parameter group in the DB parameter group family for the new engine version must be specified. The new DB parameter group can be the default for that DB parameter group family. For a list of valid engine versions, see CreateDBInstance. + public let engineVersion: String? + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. You can enable IAM database authentication for the following database engines Amazon Aurora Not applicable. Mapping AWS IAM accounts to database accounts is managed by the DB cluster. For more information, see ModifyDBCluster. MySQL For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Default: false + public let enableIAMDatabaseAuthentication: Bool? + /// A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster. Default: 1 Valid Values: 0 - 15 + public let promotionTier: Int32? + /// The weekly time range (in UTC) during which system maintenance can occur, which might result in an outage. Changing this parameter does not result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, then changing this parameter will cause a reboot of the DB instance. If moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied. Default: Uses existing setting Format: ddd:hh24:mi-ddd:hh24:mi Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun Constraints: Must be at least 30 minutes + public let preferredMaintenanceWindow: String? + /// True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. The default is false. + public let copyTagsToSnapshot: Bool? + /// The name of the IAM role to use when making API calls to the Directory Service. + public let domainIAMRoleName: String? + /// The Active Directory Domain to move the instance to. Specify none to remove the instance from its current domain. The domain must be created prior to this operation. Currently only a Microsoft SQL Server instance can be created in a Active Directory Domain. + public let domain: String? + /// The new compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide. If you modify the DB instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless ApplyImmediately is specified as true for this request. Default: Uses existing setting + public let dBInstanceClass: String? + /// Specifies if the DB instance is a Multi-AZ deployment. Changing this parameter does not result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. Constraints: Cannot be specified if the DB instance is a Read Replica. + public let multiAZ: Bool? + /// The new storage capacity of the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless ApplyImmediately is set to true for this request. MySQL Default: Uses existing setting Valid Values: 5-6144 Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. Type: Integer MariaDB Default: Uses existing setting Valid Values: 5-6144 Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. Type: Integer PostgreSQL Default: Uses existing setting Valid Values: 5-6144 Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. Type: Integer Oracle Default: Uses existing setting Valid Values: 10-6144 Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. SQL Server Cannot be modified. If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance is available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance are suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a Read Replica for the instance, and creating a DB snapshot of the instance. + public let allocatedStorage: Int32? + /// A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible. Amazon Aurora Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see ModifyDBCluster. Constraints: If supplied, must match existing VpcSecurityGroupIds. + public let vpcSecurityGroupIds: VpcSecurityGroupIdList? + /// Specifies the storage type to be associated with the DB instance. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified, otherwise standard + public let storageType: String? + /// The license model for the DB instance. Valid values: license-included | bring-your-own-license | general-public-license + public let licenseModel: String? + /// The ARN from the key store with which to associate the instance for TDE encryption. + public let tdeCredentialArn: String? + /// The name of the DB parameter group to apply to the DB instance. Changing this setting does not result in an outage. The parameter group name itself is changed immediately, but the actual parameter changes are not applied until you reboot the instance without failover. The db instance will NOT be rebooted automatically and the parameter changes will NOT be applied during the next maintenance window. Default: Uses existing setting Constraints: The DB parameter group must be in the same DB parameter group family as this DB instance. + public let dBParameterGroupName: String? + /// Boolean value that indicates if the DB instance has a publicly resolvable DNS name. Set to True to make the DB instance Internet-facing with a publicly resolvable DNS name, which resolves to a public IP address. Set to False to make the DB instance internal with a DNS name that resolves to a private IP address. PubliclyAccessible only applies to DB instances in a VPC. The DB instance must be part of a public subnet and PubliclyAccessible must be true in order for it to be publicly accessible. Changes to the PubliclyAccessible parameter are applied immediately regardless of the value of the ApplyImmediately parameter. Default: false + public let publiclyAccessible: Bool? + /// The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod parameter. Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible. Amazon Aurora Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see ModifyDBCluster. Constraints: Must be in the format hh24:mi-hh24:mi Must be in Universal Time Coordinated (UTC) Must not conflict with the preferred maintenance window Must be at least 30 minutes + public let preferredBackupWindow: String? + /// The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC. If your DB instance is not in a VPC, you can also use this parameter to move your DB instance into a VPC. For more information, see Updating the VPC for a DB Instance. Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you specify true for the ApplyImmediately parameter. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: mySubnetGroup + public let dBSubnetGroupName: String? + /// Indicates that the DB instance should be associated with the specified option group. Changing this parameter does not result in an outage except in the following case and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted. Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance + public let optionGroupName: String? + /// The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring. If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value. + public let monitoringRoleArn: String? + /// The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0. Valid Values: 0, 1, 5, 10, 15, 30, 60 + public let monitoringInterval: Int32? + /// The new DB instance identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot will occur immediately if you set Apply Immediately to true, or will occur during the next maintenance window if Apply Immediately to false. This value is stored as a lowercase string. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens. The first character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: mydbinstance + public let newDBInstanceIdentifier: String? + /// The DB instance identifier. This value is stored as a lowercase string. Constraints: Must match the identifier of an existing DBInstance. + public let dBInstanceIdentifier: String + + public init(allowMajorVersionUpgrade: Bool? = nil, tdeCredentialPassword: String? = nil, dBPortNumber: Int32? = nil, enablePerformanceInsights: Bool? = nil, applyImmediately: Bool? = nil, iops: Int32? = nil, masterUserPassword: String? = nil, dBSecurityGroups: DBSecurityGroupNameList? = nil, autoMinorVersionUpgrade: Bool? = nil, backupRetentionPeriod: Int32? = nil, cACertificateIdentifier: String? = nil, performanceInsightsKMSKeyId: String? = nil, engineVersion: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, promotionTier: Int32? = nil, preferredMaintenanceWindow: String? = nil, copyTagsToSnapshot: Bool? = nil, domainIAMRoleName: String? = nil, domain: String? = nil, dBInstanceClass: String? = nil, multiAZ: Bool? = nil, allocatedStorage: Int32? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, storageType: String? = nil, licenseModel: String? = nil, tdeCredentialArn: String? = nil, dBParameterGroupName: String? = nil, publiclyAccessible: Bool? = nil, preferredBackupWindow: String? = nil, dBSubnetGroupName: String? = nil, optionGroupName: String? = nil, monitoringRoleArn: String? = nil, monitoringInterval: Int32? = nil, newDBInstanceIdentifier: String? = nil, dBInstanceIdentifier: String) { + self.allowMajorVersionUpgrade = allowMajorVersionUpgrade + self.tdeCredentialPassword = tdeCredentialPassword + self.dBPortNumber = dBPortNumber + self.enablePerformanceInsights = enablePerformanceInsights + self.applyImmediately = applyImmediately + self.iops = iops + self.masterUserPassword = masterUserPassword + self.dBSecurityGroups = dBSecurityGroups + self.autoMinorVersionUpgrade = autoMinorVersionUpgrade + self.backupRetentionPeriod = backupRetentionPeriod + self.cACertificateIdentifier = cACertificateIdentifier + self.performanceInsightsKMSKeyId = performanceInsightsKMSKeyId + self.engineVersion = engineVersion + self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication + self.promotionTier = promotionTier + self.preferredMaintenanceWindow = preferredMaintenanceWindow + self.copyTagsToSnapshot = copyTagsToSnapshot + self.domainIAMRoleName = domainIAMRoleName + self.domain = domain + self.dBInstanceClass = dBInstanceClass + self.multiAZ = multiAZ + self.allocatedStorage = allocatedStorage + self.vpcSecurityGroupIds = vpcSecurityGroupIds + self.storageType = storageType + self.licenseModel = licenseModel + self.tdeCredentialArn = tdeCredentialArn + self.dBParameterGroupName = dBParameterGroupName + self.publiclyAccessible = publiclyAccessible + self.preferredBackupWindow = preferredBackupWindow + self.dBSubnetGroupName = dBSubnetGroupName + self.optionGroupName = optionGroupName + self.monitoringRoleArn = monitoringRoleArn + self.monitoringInterval = monitoringInterval + self.newDBInstanceIdentifier = newDBInstanceIdentifier + self.dBInstanceIdentifier = dBInstanceIdentifier + } + + private enum CodingKeys: String, CodingKey { + case allowMajorVersionUpgrade = "AllowMajorVersionUpgrade" + case tdeCredentialPassword = "TdeCredentialPassword" + case dBPortNumber = "DBPortNumber" + case enablePerformanceInsights = "EnablePerformanceInsights" + case applyImmediately = "ApplyImmediately" + case iops = "Iops" + case masterUserPassword = "MasterUserPassword" + case dBSecurityGroups = "DBSecurityGroups" + case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" + case backupRetentionPeriod = "BackupRetentionPeriod" + case cACertificateIdentifier = "CACertificateIdentifier" + case performanceInsightsKMSKeyId = "PerformanceInsightsKMSKeyId" + case engineVersion = "EngineVersion" + case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" + case promotionTier = "PromotionTier" + case preferredMaintenanceWindow = "PreferredMaintenanceWindow" + case copyTagsToSnapshot = "CopyTagsToSnapshot" + case domainIAMRoleName = "DomainIAMRoleName" + case domain = "Domain" + case dBInstanceClass = "DBInstanceClass" + case multiAZ = "MultiAZ" + case allocatedStorage = "AllocatedStorage" + case vpcSecurityGroupIds = "VpcSecurityGroupIds" + case storageType = "StorageType" + case licenseModel = "LicenseModel" + case tdeCredentialArn = "TdeCredentialArn" + case dBParameterGroupName = "DBParameterGroupName" + case publiclyAccessible = "PubliclyAccessible" + case preferredBackupWindow = "PreferredBackupWindow" + case dBSubnetGroupName = "DBSubnetGroupName" + case optionGroupName = "OptionGroupName" + case monitoringRoleArn = "MonitoringRoleArn" + case monitoringInterval = "MonitoringInterval" + case newDBInstanceIdentifier = "NewDBInstanceIdentifier" + case dBInstanceIdentifier = "DBInstanceIdentifier" + } + } + + public struct DBParameterGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroupFamily", required: false, type: .string), + AWSShapeMember(label: "DBParameterGroupArn", required: false, type: .string), + AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// Provides the name of the DB parameter group family that this DB parameter group is compatible with. + public let dBParameterGroupFamily: String? + /// The Amazon Resource Name (ARN) for the DB parameter group. + public let dBParameterGroupArn: String? + /// Provides the name of the DB parameter group. + public let dBParameterGroupName: String? + /// Provides the customer-specified description for this DB parameter group. + public let description: String? + + public init(dBParameterGroupFamily: String? = nil, dBParameterGroupArn: String? = nil, dBParameterGroupName: String? = nil, description: String? = nil) { + self.dBParameterGroupFamily = dBParameterGroupFamily + self.dBParameterGroupArn = dBParameterGroupArn + self.dBParameterGroupName = dBParameterGroupName self.description = description } private enum CodingKeys: String, CodingKey { - case autoAppliedAfterDate = "AutoAppliedAfterDate" - case optInStatus = "OptInStatus" - case action = "Action" - case forcedApplyDate = "ForcedApplyDate" - case currentApplyDate = "CurrentApplyDate" - case description = "Description" + case dBParameterGroupFamily = "DBParameterGroupFamily" + case dBParameterGroupArn = "DBParameterGroupArn" + case dBParameterGroupName = "DBParameterGroupName" + case description = "Description" + } + } + + public struct PurchaseReservedDBInstancesOfferingMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedDBInstanceId", required: false, type: .string), + AWSShapeMember(label: "ReservedDBInstancesOfferingId", required: true, type: .string), + AWSShapeMember(label: "DBInstanceCount", required: false, type: .integer), + AWSShapeMember(label: "Tags", required: false, type: .structure) + ] + /// Customer-specified identifier to track this reservation. Example: myreservationID + public let reservedDBInstanceId: String? + /// The ID of the Reserved DB instance offering to purchase. Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706 + public let reservedDBInstancesOfferingId: String + /// The number of instances to reserve. Default: 1 + public let dBInstanceCount: Int32? + public let tags: TagList? + + public init(reservedDBInstanceId: String? = nil, reservedDBInstancesOfferingId: String, dBInstanceCount: Int32? = nil, tags: TagList? = nil) { + self.reservedDBInstanceId = reservedDBInstanceId + self.reservedDBInstancesOfferingId = reservedDBInstancesOfferingId + self.dBInstanceCount = dBInstanceCount + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case reservedDBInstanceId = "ReservedDBInstanceId" + case reservedDBInstancesOfferingId = "ReservedDBInstancesOfferingId" + case dBInstanceCount = "DBInstanceCount" + case tags = "Tags" } } - public struct DeleteDBSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshot", required: false, type: .structure) + public struct DescribeDBSnapshotAttributesMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string) ] - public let dBSnapshot: DBSnapshot? + /// The identifier for the DB snapshot to describe the attributes for. + public let dBSnapshotIdentifier: String - public init(dBSnapshot: DBSnapshot? = nil) { - self.dBSnapshot = dBSnapshot + public init(dBSnapshotIdentifier: String) { + self.dBSnapshotIdentifier = dBSnapshotIdentifier } private enum CodingKeys: String, CodingKey { - case dBSnapshot = "DBSnapshot" + case dBSnapshotIdentifier = "DBSnapshotIdentifier" } } - public struct ModifyDBClusterSnapshotAttributeMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeName", required: true, type: .string), - AWSShapeMember(label: "ValuesToAdd", required: false, type: .structure), - AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: true, type: .string), - AWSShapeMember(label: "ValuesToRemove", required: false, type: .structure) + public struct DescribeDBSecurityGroupsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "DBSecurityGroupName", required: false, type: .string) ] - /// The name of the DB cluster snapshot attribute to modify. To manage authorization for other AWS accounts to copy or restore a manual DB cluster snapshot, set this value to restore. - public let attributeName: String - /// A list of DB cluster snapshot attributes to add to the attribute specified by AttributeName. To authorize other AWS accounts to copy or restore a manual DB cluster snapshot, set this list to include one or more AWS account IDs, or all to make the manual DB cluster snapshot restorable by any AWS account. Do not add the all value for any manual DB cluster snapshots that contain private information that you don't want available to all AWS accounts. - public let valuesToAdd: AttributeValueList? - /// The identifier for the DB cluster snapshot to modify the attributes for. - public let dBClusterSnapshotIdentifier: String - /// A list of DB cluster snapshot attributes to remove from the attribute specified by AttributeName. To remove authorization for other AWS accounts to copy or restore a manual DB cluster snapshot, set this list to include one or more AWS account identifiers, or all to remove authorization for any AWS account to copy or restore the DB cluster snapshot. If you specify all, an AWS account whose account ID is explicitly added to the restore attribute can still copy or restore a manual DB cluster snapshot. - public let valuesToRemove: AttributeValueList? + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// This parameter is not currently supported. + public let filters: FilterList? + /// An optional pagination token provided by a previous DescribeDBSecurityGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// The name of the DB security group to return details for. + public let dBSecurityGroupName: String? - public init(attributeName: String, valuesToAdd: AttributeValueList? = nil, dBClusterSnapshotIdentifier: String, valuesToRemove: AttributeValueList? = nil) { - self.attributeName = attributeName - self.valuesToAdd = valuesToAdd - self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier - self.valuesToRemove = valuesToRemove + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil, dBSecurityGroupName: String? = nil) { + self.maxRecords = maxRecords + self.filters = filters + self.marker = marker + self.dBSecurityGroupName = dBSecurityGroupName + } + + private enum CodingKeys: String, CodingKey { + case maxRecords = "MaxRecords" + case filters = "Filters" + case marker = "Marker" + case dBSecurityGroupName = "DBSecurityGroupName" + } + } + + public struct DownloadDBLogFilePortionMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NumberOfLines", required: false, type: .integer), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "LogFileName", required: true, type: .string), + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) + ] + /// The number of lines to download. If the number of lines specified results in a file over 1 MB in size, the file is truncated at 1 MB in size. If the NumberOfLines parameter is specified, then the block of lines returned can be from the beginning or the end of the log file, depending on the value of the Marker parameter. If neither Marker or NumberOfLines are specified, the entire log file is returned up to a maximum of 10000 lines, starting with the most recent log entries first. If NumberOfLines is specified and Marker is not specified, then the most recent lines from the end of the log file are returned. If Marker is specified as "0", then the specified number of lines from the beginning of the log file are returned. You can download the log file in blocks of lines by specifying the size of the block using the NumberOfLines parameter, and by specifying a value of "0" for the Marker parameter in your first request. Include the Marker value returned in the response as the Marker value for the next request, continuing until the AdditionalDataPending response element returns false. + public let numberOfLines: Int32? + /// The pagination token provided in the previous request or "0". If the Marker parameter is specified the response includes only records beyond the marker until the end of the file or up to NumberOfLines. + public let marker: String? + /// The name of the log file to be downloaded. + public let logFileName: String + /// The customer-assigned name of the DB instance that contains the log files you want to list. Constraints: Must match the identifier of an existing DBInstance. + public let dBInstanceIdentifier: String + + public init(numberOfLines: Int32? = nil, marker: String? = nil, logFileName: String, dBInstanceIdentifier: String) { + self.numberOfLines = numberOfLines + self.marker = marker + self.logFileName = logFileName + self.dBInstanceIdentifier = dBInstanceIdentifier + } + + private enum CodingKeys: String, CodingKey { + case numberOfLines = "NumberOfLines" + case marker = "Marker" + case logFileName = "LogFileName" + case dBInstanceIdentifier = "DBInstanceIdentifier" + } + } + + public struct PendingMaintenanceActions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourcePendingMaintenanceActions", required: false, type: .list) + ] + public let resourcePendingMaintenanceActions: [ResourcePendingMaintenanceActions]? + + public init(resourcePendingMaintenanceActions: [ResourcePendingMaintenanceActions]? = nil) { + self.resourcePendingMaintenanceActions = resourcePendingMaintenanceActions + } + + private enum CodingKeys: String, CodingKey { + case resourcePendingMaintenanceActions = "ResourcePendingMaintenanceActions" + } + } + + public struct Filter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Values", required: true, type: .structure) + ] + /// This parameter is not currently supported. + public let name: String + /// This parameter is not currently supported. + public let values: FilterValueList + + public init(name: String, values: FilterValueList) { + self.name = name + self.values = values + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case values = "Values" + } + } + + public struct DBInstanceStatusInfoList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstanceStatusInfo", required: false, type: .list) + ] + public let dBInstanceStatusInfo: [DBInstanceStatusInfo]? + + public init(dBInstanceStatusInfo: [DBInstanceStatusInfo]? = nil) { + self.dBInstanceStatusInfo = dBInstanceStatusInfo + } + + private enum CodingKeys: String, CodingKey { + case dBInstanceStatusInfo = "DBInstanceStatusInfo" + } + } + + public struct CreateDBSubnetGroupResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSubnetGroup", required: false, type: .structure) + ] + public let dBSubnetGroup: DBSubnetGroup? + + public init(dBSubnetGroup: DBSubnetGroup? = nil) { + self.dBSubnetGroup = dBSubnetGroup + } + + private enum CodingKeys: String, CodingKey { + case dBSubnetGroup = "DBSubnetGroup" + } + } + + public struct RestoreDBInstanceFromS3Message: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3IngestionRoleArn", required: true, type: .string), + AWSShapeMember(label: "DBName", required: false, type: .string), + AWSShapeMember(label: "EnablePerformanceInsights", required: false, type: .boolean), + AWSShapeMember(label: "S3Prefix", required: false, type: .string), + AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), + AWSShapeMember(label: "Iops", required: false, type: .integer), + AWSShapeMember(label: "MasterUserPassword", required: false, type: .string), + AWSShapeMember(label: "DBSecurityGroups", required: false, type: .structure), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), + AWSShapeMember(label: "PerformanceInsightsKMSKeyId", required: false, type: .string), + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), + AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), + AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), + AWSShapeMember(label: "DBInstanceClass", required: true, type: .string), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string), + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), + AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), + AWSShapeMember(label: "StorageType", required: false, type: .string), + AWSShapeMember(label: "LicenseModel", required: false, type: .string), + AWSShapeMember(label: "SourceEngine", required: true, type: .string), + AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string), + AWSShapeMember(label: "SourceEngineVersion", required: true, type: .string), + AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), + AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), + AWSShapeMember(label: "S3BucketName", required: true, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "MasterUsername", required: false, type: .string), + AWSShapeMember(label: "MonitoringRoleArn", required: false, type: .string), + AWSShapeMember(label: "Engine", required: true, type: .string), + AWSShapeMember(label: "MonitoringInterval", required: false, type: .integer), + AWSShapeMember(label: "StorageEncrypted", required: false, type: .boolean), + AWSShapeMember(label: "Port", required: false, type: .integer), + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) + ] + /// An AWS Identity and Access Management (IAM) role to allow Amazon RDS to access your Amazon S3 bucket. + public let s3IngestionRoleArn: String + /// The name of the database to create when the DB instance is created. Follow the naming rules specified in CreateDBInstance. + public let dBName: String? + /// True to enable Performance Insights for the DB instance, and otherwise false. + public let enablePerformanceInsights: Bool? + /// The prefix of your Amazon S3 bucket. + public let s3Prefix: String? + /// The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. For more information, see CreateDBInstance. + public let backupRetentionPeriod: Int32? + /// The amount of Provisioned IOPS (input/output operations per second) to allocate initially for the DB instance. For information about valid Iops values, see see Amazon RDS Provisioned IOPS Storage to Improve Performance. + public let iops: Int32? + /// The password for the master user. The password can include any printable ASCII character except "/", """, or "@". Constraints: Must contain from 8 to 41 characters. + public let masterUserPassword: String? + /// A list of DB security groups to associate with this DB instance. Default: The default DB security group for the database engine. + public let dBSecurityGroups: DBSecurityGroupNameList? + /// The Availability Zone that the DB instance is created in. For information about AWS Regions and Availability Zones, see Regions and Availability Zones. Default: A random, system-chosen Availability Zone in the endpoint's AWS Region. Example: us-east-1d Constraint: The AvailabilityZone parameter can't be specified if the MultiAZ parameter is set to true. The specified Availability Zone must be in the same AWS Region as the current endpoint. + public let availabilityZone: String? + /// True to indicate that minor engine upgrades are applied automatically to the DB instance during the maintenance window, and otherwise false. Default: true + public let autoMinorVersionUpgrade: Bool? + /// The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), the KMS key identifier, or the KMS key alias for the KMS encryption key. + public let performanceInsightsKMSKeyId: String? + /// The version number of the database engine to use. Choose the latest minor version of your database engine as specified in CreateDBInstance. + public let engineVersion: String? + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false + public let enableIAMDatabaseAuthentication: Bool? + /// The time range each week during which system maintenance can occur, in Universal Coordinated Time (UTC). For more information, see Amazon RDS Maintenance Window. Constraints: Must be in the format ddd:hh24:mi-ddd:hh24:mi. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Must be in Universal Coordinated Time (UTC). Must not conflict with the preferred backup window. Must be at least 30 minutes. + public let preferredMaintenanceWindow: String? + /// True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. Default: false. + public let copyTagsToSnapshot: Bool? + /// The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide. Importing from Amazon S3 is not supported on the db.t2.micro DB instance class. + public let dBInstanceClass: String + /// The AWS KMS key identifier for an encrypted DB instance. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, then you can use the KMS key alias instead of the ARN for the KM encryption key. If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region. + public let kmsKeyId: String? + /// Specifies whether the DB instance is a Multi-AZ deployment. If MultiAZ is set to true, you can't set the AvailabilityZone parameter. + public let multiAZ: Bool? + /// A list of tags to associate with this DB instance. For more information, see Tagging Amazon RDS Resources. + public let tags: TagList? + /// The amount of storage (in gigabytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance. Be sure to allocate enough memory for your new DB instance so that the restore operation can succeed. You can also allocate additional memory for future growth. + public let allocatedStorage: Int32? + /// A list of VPC security groups to associate with this DB instance. + public let vpcSecurityGroupIds: VpcSecurityGroupIdList? + /// Specifies the storage type to be associated with the DB instance. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified; otherwise standard + public let storageType: String? + /// The license model for this DB instance. Use general-public-license. + public let licenseModel: String? + /// The name of the engine of your source database. Valid Values: mysql + public let sourceEngine: String + /// The name of the DB parameter group to associate with this DB instance. If this argument is omitted, the default parameter group for the specified engine is used. + public let dBParameterGroupName: String? + /// The engine version of your source database. Valid Values: 5.6 + public let sourceEngineVersion: String + /// Specifies whether the DB instance is publicly accessible or not. For more information, see CreateDBInstance. + public let publiclyAccessible: Bool? + /// The time range each day during which automated backups are created if automated backups are enabled. For more information, see The Backup Window. Constraints: Must be in the format hh24:mi-hh24:mi. Must be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. + public let preferredBackupWindow: String? + /// The name of your Amazon S3 bucket that contains your database backup file. + public let s3BucketName: String + /// A DB subnet group to associate with this DB instance. + public let dBSubnetGroupName: String? + /// The name of the option group to associate with this DB instance. If this argument is omitted, the default option group for the specified engine is used. + public let optionGroupName: String? + /// The name for the master user. Constraints: Must be 1 to 16 letters or numbers. First character must be a letter. Cannot be a reserved word for the chosen database engine. + public let masterUsername: String? + /// The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, see Setting Up and Enabling Enhanced Monitoring. If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value. + public let monitoringRoleArn: String? + /// The name of the database engine to be used for this instance. Valid Values: mysql + public let engine: String + /// The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0. Valid Values: 0, 1, 5, 10, 15, 30, 60 Default: 0 + public let monitoringInterval: Int32? + /// Specifies whether the new DB instance is encrypted or not. + public let storageEncrypted: Bool? + /// The port number on which the database accepts connections. Type: Integer Valid Values: 1150-65535 Default: 3306 + public let port: Int32? + /// The DB instance identifier. This parameter is stored as a lowercase string. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: mydbinstance + public let dBInstanceIdentifier: String + + public init(s3IngestionRoleArn: String, dBName: String? = nil, enablePerformanceInsights: Bool? = nil, s3Prefix: String? = nil, backupRetentionPeriod: Int32? = nil, iops: Int32? = nil, masterUserPassword: String? = nil, dBSecurityGroups: DBSecurityGroupNameList? = nil, availabilityZone: String? = nil, autoMinorVersionUpgrade: Bool? = nil, performanceInsightsKMSKeyId: String? = nil, engineVersion: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, preferredMaintenanceWindow: String? = nil, copyTagsToSnapshot: Bool? = nil, dBInstanceClass: String, kmsKeyId: String? = nil, multiAZ: Bool? = nil, tags: TagList? = nil, allocatedStorage: Int32? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, storageType: String? = nil, licenseModel: String? = nil, sourceEngine: String, dBParameterGroupName: String? = nil, sourceEngineVersion: String, publiclyAccessible: Bool? = nil, preferredBackupWindow: String? = nil, s3BucketName: String, dBSubnetGroupName: String? = nil, optionGroupName: String? = nil, masterUsername: String? = nil, monitoringRoleArn: String? = nil, engine: String, monitoringInterval: Int32? = nil, storageEncrypted: Bool? = nil, port: Int32? = nil, dBInstanceIdentifier: String) { + self.s3IngestionRoleArn = s3IngestionRoleArn + self.dBName = dBName + self.enablePerformanceInsights = enablePerformanceInsights + self.s3Prefix = s3Prefix + self.backupRetentionPeriod = backupRetentionPeriod + self.iops = iops + self.masterUserPassword = masterUserPassword + self.dBSecurityGroups = dBSecurityGroups + self.availabilityZone = availabilityZone + self.autoMinorVersionUpgrade = autoMinorVersionUpgrade + self.performanceInsightsKMSKeyId = performanceInsightsKMSKeyId + self.engineVersion = engineVersion + self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication + self.preferredMaintenanceWindow = preferredMaintenanceWindow + self.copyTagsToSnapshot = copyTagsToSnapshot + self.dBInstanceClass = dBInstanceClass + self.kmsKeyId = kmsKeyId + self.multiAZ = multiAZ + self.tags = tags + self.allocatedStorage = allocatedStorage + self.vpcSecurityGroupIds = vpcSecurityGroupIds + self.storageType = storageType + self.licenseModel = licenseModel + self.sourceEngine = sourceEngine + self.dBParameterGroupName = dBParameterGroupName + self.sourceEngineVersion = sourceEngineVersion + self.publiclyAccessible = publiclyAccessible + self.preferredBackupWindow = preferredBackupWindow + self.s3BucketName = s3BucketName + self.dBSubnetGroupName = dBSubnetGroupName + self.optionGroupName = optionGroupName + self.masterUsername = masterUsername + self.monitoringRoleArn = monitoringRoleArn + self.engine = engine + self.monitoringInterval = monitoringInterval + self.storageEncrypted = storageEncrypted + self.port = port + self.dBInstanceIdentifier = dBInstanceIdentifier } private enum CodingKeys: String, CodingKey { - case attributeName = "AttributeName" - case valuesToAdd = "ValuesToAdd" - case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" - case valuesToRemove = "ValuesToRemove" + case s3IngestionRoleArn = "S3IngestionRoleArn" + case dBName = "DBName" + case enablePerformanceInsights = "EnablePerformanceInsights" + case s3Prefix = "S3Prefix" + case backupRetentionPeriod = "BackupRetentionPeriod" + case iops = "Iops" + case masterUserPassword = "MasterUserPassword" + case dBSecurityGroups = "DBSecurityGroups" + case availabilityZone = "AvailabilityZone" + case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" + case performanceInsightsKMSKeyId = "PerformanceInsightsKMSKeyId" + case engineVersion = "EngineVersion" + case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" + case preferredMaintenanceWindow = "PreferredMaintenanceWindow" + case copyTagsToSnapshot = "CopyTagsToSnapshot" + case dBInstanceClass = "DBInstanceClass" + case kmsKeyId = "KmsKeyId" + case multiAZ = "MultiAZ" + case tags = "Tags" + case allocatedStorage = "AllocatedStorage" + case vpcSecurityGroupIds = "VpcSecurityGroupIds" + case storageType = "StorageType" + case licenseModel = "LicenseModel" + case sourceEngine = "SourceEngine" + case dBParameterGroupName = "DBParameterGroupName" + case sourceEngineVersion = "SourceEngineVersion" + case publiclyAccessible = "PubliclyAccessible" + case preferredBackupWindow = "PreferredBackupWindow" + case s3BucketName = "S3BucketName" + case dBSubnetGroupName = "DBSubnetGroupName" + case optionGroupName = "OptionGroupName" + case masterUsername = "MasterUsername" + case monitoringRoleArn = "MonitoringRoleArn" + case engine = "Engine" + case monitoringInterval = "MonitoringInterval" + case storageEncrypted = "StorageEncrypted" + case port = "Port" + case dBInstanceIdentifier = "DBInstanceIdentifier" } } - public struct DBClusterSnapshotAttributeList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterSnapshotAttribute", required: false, type: .list) + public struct RestoreDBClusterFromSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBCluster", required: false, type: .structure) ] - public let dBClusterSnapshotAttribute: [DBClusterSnapshotAttribute]? + public let dBCluster: DBCluster? - public init(dBClusterSnapshotAttribute: [DBClusterSnapshotAttribute]? = nil) { - self.dBClusterSnapshotAttribute = dBClusterSnapshotAttribute + public init(dBCluster: DBCluster? = nil) { + self.dBCluster = dBCluster } private enum CodingKeys: String, CodingKey { - case dBClusterSnapshotAttribute = "DBClusterSnapshotAttribute" + case dBCluster = "DBCluster" } } - public struct DBEngineVersionList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBEngineVersion", required: false, type: .list) + public struct PromoteReadReplicaDBClusterMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string) ] - public let dBEngineVersion: [DBEngineVersion]? + /// The identifier of the DB cluster Read Replica to promote. This parameter is not case-sensitive. Constraints: Must match the identifier of an existing DBCluster Read Replica. Example: my-cluster-replica1 + public let dBClusterIdentifier: String - public init(dBEngineVersion: [DBEngineVersion]? = nil) { - self.dBEngineVersion = dBEngineVersion + public init(dBClusterIdentifier: String) { + self.dBClusterIdentifier = dBClusterIdentifier } private enum CodingKeys: String, CodingKey { - case dBEngineVersion = "DBEngineVersion" + case dBClusterIdentifier = "DBClusterIdentifier" } } - public struct PendingMaintenanceActionDetails: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PendingMaintenanceAction", required: false, type: .list) + public struct FilterList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filter", required: false, type: .list) ] - public let pendingMaintenanceAction: [PendingMaintenanceAction]? + public let filter: [Filter]? - public init(pendingMaintenanceAction: [PendingMaintenanceAction]? = nil) { - self.pendingMaintenanceAction = pendingMaintenanceAction + public init(filter: [Filter]? = nil) { + self.filter = filter } private enum CodingKeys: String, CodingKey { - case pendingMaintenanceAction = "PendingMaintenanceAction" + case filter = "Filter" } } - public struct EventSubscriptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventSubscriptionsList", required: false, type: .structure), - AWSShapeMember(label: "Marker", required: false, type: .string) + public struct OptionGroupOption: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RequiresAutoMinorEngineVersionUpgrade", required: false, type: .boolean), + AWSShapeMember(label: "PortRequired", required: false, type: .boolean), + AWSShapeMember(label: "OptionsConflictsWith", required: false, type: .structure), + AWSShapeMember(label: "MinimumRequiredMinorEngineVersion", required: false, type: .string), + AWSShapeMember(label: "MajorEngineVersion", required: false, type: .string), + AWSShapeMember(label: "Persistent", required: false, type: .boolean), + AWSShapeMember(label: "OptionGroupOptionSettings", required: false, type: .structure), + AWSShapeMember(label: "Permanent", required: false, type: .boolean), + AWSShapeMember(label: "VpcOnly", required: false, type: .boolean), + AWSShapeMember(label: "OptionsDependedOn", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "OptionGroupOptionVersions", required: false, type: .structure), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "SupportsOptionVersionDowngrade", required: false, type: .boolean), + AWSShapeMember(label: "DefaultPort", required: false, type: .integer), + AWSShapeMember(label: "EngineName", required: false, type: .string) ] - /// A list of EventSubscriptions data types. - public let eventSubscriptionsList: EventSubscriptionsList? - /// An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? + /// If true, you must enable the Auto Minor Version Upgrade setting for your DB instance before you can use this option. You can enable Auto Minor Version Upgrade when you first create your DB instance, or by modifying your DB instance later. + public let requiresAutoMinorEngineVersionUpgrade: Bool? + /// Specifies whether the option requires a port. + public let portRequired: Bool? + /// The options that conflict with this option. + public let optionsConflictsWith: OptionsConflictsWith? + /// The minimum required engine version for the option to be applied. + public let minimumRequiredMinorEngineVersion: String? + /// Indicates the major engine version that the option is available for. + public let majorEngineVersion: String? + /// Persistent options can't be removed from an option group while DB instances are associated with the option group. If you disassociate all DB instances from the option group, your can remove the persistent option from the option group. + public let persistent: Bool? + /// The option settings that are available (and the default value) for each option in an option group. + public let optionGroupOptionSettings: OptionGroupOptionSettingsList? + /// Permanent options can never be removed from an option group. An option group containing a permanent option can't be removed from a DB instance. + public let permanent: Bool? + /// If true, you can only use this option with a DB instance that is in a VPC. + public let vpcOnly: Bool? + /// The options that are prerequisites for this option. + public let optionsDependedOn: OptionsDependedOn? + /// The description of the option. + public let description: String? + /// The versions that are available for the option. + public let optionGroupOptionVersions: OptionGroupOptionVersionsList? + /// The name of the option. + public let name: String? + /// If true, you can change the option to an earlier version of the option. This only applies to options that have different versions available. + public let supportsOptionVersionDowngrade: Bool? + /// If the option requires a port, specifies the default port for the option. + public let defaultPort: Int32? + /// The name of the engine that this option can be applied to. + public let engineName: String? - public init(eventSubscriptionsList: EventSubscriptionsList? = nil, marker: String? = nil) { - self.eventSubscriptionsList = eventSubscriptionsList - self.marker = marker + public init(requiresAutoMinorEngineVersionUpgrade: Bool? = nil, portRequired: Bool? = nil, optionsConflictsWith: OptionsConflictsWith? = nil, minimumRequiredMinorEngineVersion: String? = nil, majorEngineVersion: String? = nil, persistent: Bool? = nil, optionGroupOptionSettings: OptionGroupOptionSettingsList? = nil, permanent: Bool? = nil, vpcOnly: Bool? = nil, optionsDependedOn: OptionsDependedOn? = nil, description: String? = nil, optionGroupOptionVersions: OptionGroupOptionVersionsList? = nil, name: String? = nil, supportsOptionVersionDowngrade: Bool? = nil, defaultPort: Int32? = nil, engineName: String? = nil) { + self.requiresAutoMinorEngineVersionUpgrade = requiresAutoMinorEngineVersionUpgrade + self.portRequired = portRequired + self.optionsConflictsWith = optionsConflictsWith + self.minimumRequiredMinorEngineVersion = minimumRequiredMinorEngineVersion + self.majorEngineVersion = majorEngineVersion + self.persistent = persistent + self.optionGroupOptionSettings = optionGroupOptionSettings + self.permanent = permanent + self.vpcOnly = vpcOnly + self.optionsDependedOn = optionsDependedOn + self.description = description + self.optionGroupOptionVersions = optionGroupOptionVersions + self.name = name + self.supportsOptionVersionDowngrade = supportsOptionVersionDowngrade + self.defaultPort = defaultPort + self.engineName = engineName } private enum CodingKeys: String, CodingKey { - case eventSubscriptionsList = "EventSubscriptionsList" - case marker = "Marker" + case requiresAutoMinorEngineVersionUpgrade = "RequiresAutoMinorEngineVersionUpgrade" + case portRequired = "PortRequired" + case optionsConflictsWith = "OptionsConflictsWith" + case minimumRequiredMinorEngineVersion = "MinimumRequiredMinorEngineVersion" + case majorEngineVersion = "MajorEngineVersion" + case persistent = "Persistent" + case optionGroupOptionSettings = "OptionGroupOptionSettings" + case permanent = "Permanent" + case vpcOnly = "VpcOnly" + case optionsDependedOn = "OptionsDependedOn" + case description = "Description" + case optionGroupOptionVersions = "OptionGroupOptionVersions" + case name = "Name" + case supportsOptionVersionDowngrade = "SupportsOptionVersionDowngrade" + case defaultPort = "DefaultPort" + case engineName = "EngineName" } } - public struct DBClusterParameterGroupNameMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterParameterGroupName", required: false, type: .string) + public struct CreateDBClusterParameterGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroupFamily", required: true, type: .string), + AWSShapeMember(label: "DBClusterParameterGroupName", required: true, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "Description", required: true, type: .string) ] - /// The name of the DB cluster parameter group. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens This value is stored as a lowercase string. - public let dBClusterParameterGroupName: String? + /// The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family. + public let dBParameterGroupFamily: String + /// The name of the DB cluster parameter group. Constraints: Must match the name of an existing DBClusterParameterGroup. This value is stored as a lowercase string. + public let dBClusterParameterGroupName: String + public let tags: TagList? + /// The description for the DB cluster parameter group. + public let description: String - public init(dBClusterParameterGroupName: String? = nil) { + public init(dBParameterGroupFamily: String, dBClusterParameterGroupName: String, tags: TagList? = nil, description: String) { + self.dBParameterGroupFamily = dBParameterGroupFamily self.dBClusterParameterGroupName = dBClusterParameterGroupName + self.tags = tags + self.description = description } private enum CodingKeys: String, CodingKey { + case dBParameterGroupFamily = "DBParameterGroupFamily" case dBClusterParameterGroupName = "DBClusterParameterGroupName" + case tags = "Tags" + case description = "Description" } } - public struct ModifyDBSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string), - AWSShapeMember(label: "EngineVersion", required: false, type: .string) - ] - /// The identifier of the DB snapshot to modify. - public let dBSnapshotIdentifier: String - /// The engine version to update the DB snapshot to. - public let engineVersion: String? - - public init(dBSnapshotIdentifier: String, engineVersion: String? = nil) { - self.dBSnapshotIdentifier = dBSnapshotIdentifier - self.engineVersion = engineVersion - } - - private enum CodingKeys: String, CodingKey { - case dBSnapshotIdentifier = "DBSnapshotIdentifier" - case engineVersion = "EngineVersion" - } - } - - public struct EventSubscriptionsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventSubscription", required: false, type: .list) - ] - public let eventSubscription: [EventSubscription]? - - public init(eventSubscription: [EventSubscription]? = nil) { - self.eventSubscription = eventSubscription - } - - private enum CodingKeys: String, CodingKey { - case eventSubscription = "EventSubscription" - } - } - - public struct ModifyDBClusterParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Parameters", required: true, type: .structure), - AWSShapeMember(label: "DBClusterParameterGroupName", required: true, type: .string) + public struct DeleteDBSubnetGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSubnetGroupName", required: true, type: .string) ] - /// A list of parameters in the DB cluster parameter group to modify. - public let parameters: ParametersList - /// The name of the DB cluster parameter group to modify. - public let dBClusterParameterGroupName: String + /// The name of the database subnet group to delete. You can't delete the default subnet group. Constraints: Constraints: Must match the name of an existing DBSubnetGroup. Must not be default. Example: mySubnetgroup + public let dBSubnetGroupName: String - public init(parameters: ParametersList, dBClusterParameterGroupName: String) { - self.parameters = parameters - self.dBClusterParameterGroupName = dBClusterParameterGroupName + public init(dBSubnetGroupName: String) { + self.dBSubnetGroupName = dBSubnetGroupName } private enum CodingKeys: String, CodingKey { - case parameters = "Parameters" - case dBClusterParameterGroupName = "DBClusterParameterGroupName" + case dBSubnetGroupName = "DBSubnetGroupName" } } - public struct AddSourceIdentifierToSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceIdentifier", required: true, type: .string), - AWSShapeMember(label: "SubscriptionName", required: true, type: .string) + public struct OptionSettingConfigurationList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionSetting", required: false, type: .list) ] - /// The identifier of the event source to be added. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens. Constraints: If the source type is a DB instance, then a DBInstanceIdentifier must be supplied. If the source type is a DB security group, a DBSecurityGroupName must be supplied. If the source type is a DB parameter group, a DBParameterGroupName must be supplied. If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied. - public let sourceIdentifier: String - /// The name of the RDS event notification subscription you want to add a source identifier to. - public let subscriptionName: String + public let optionSetting: [OptionSetting]? - public init(sourceIdentifier: String, subscriptionName: String) { - self.sourceIdentifier = sourceIdentifier - self.subscriptionName = subscriptionName + public init(optionSetting: [OptionSetting]? = nil) { + self.optionSetting = optionSetting } private enum CodingKeys: String, CodingKey { - case sourceIdentifier = "SourceIdentifier" - case subscriptionName = "SubscriptionName" + case optionSetting = "OptionSetting" } } - public struct DescribeOptionGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + public struct DBClusterSnapshotMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "EngineName", required: false, type: .string), - AWSShapeMember(label: "MajorEngineVersion", required: false, type: .string) + AWSShapeMember(label: "DBClusterSnapshots", required: false, type: .structure) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// This parameter is not currently supported. - public let filters: FilterList? - /// The name of the option group to describe. Cannot be supplied together with EngineName or MajorEngineVersion. - public let optionGroupName: String? - /// An optional pagination token provided by a previous DescribeOptionGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + /// An optional pagination token provided by a previous DescribeDBClusterSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - /// Filters the list of option groups to only include groups associated with a specific database engine. - public let engineName: String? - /// Filters the list of option groups to only include groups associated with a specific database engine version. If specified, then EngineName must also be specified. - public let majorEngineVersion: String? + /// Provides a list of DB cluster snapshots for the user. + public let dBClusterSnapshots: DBClusterSnapshotList? - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, optionGroupName: String? = nil, marker: String? = nil, engineName: String? = nil, majorEngineVersion: String? = nil) { - self.maxRecords = maxRecords - self.filters = filters - self.optionGroupName = optionGroupName + public init(marker: String? = nil, dBClusterSnapshots: DBClusterSnapshotList? = nil) { self.marker = marker - self.engineName = engineName - self.majorEngineVersion = majorEngineVersion + self.dBClusterSnapshots = dBClusterSnapshots } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case filters = "Filters" - case optionGroupName = "OptionGroupName" case marker = "Marker" - case engineName = "EngineName" - case majorEngineVersion = "MajorEngineVersion" + case dBClusterSnapshots = "DBClusterSnapshots" } } - public struct CreateEventSubscriptionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventSubscription", required: false, type: .structure) + public struct OptionsConflictsWith: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionConflictName", required: false, type: .list) ] - public let eventSubscription: EventSubscription? + public let optionConflictName: [String]? - public init(eventSubscription: EventSubscription? = nil) { - self.eventSubscription = eventSubscription + public init(optionConflictName: [String]? = nil) { + self.optionConflictName = optionConflictName } private enum CodingKeys: String, CodingKey { - case eventSubscription = "EventSubscription" + case optionConflictName = "OptionConflictName" } } - public struct DBParameterGroupDetails: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Parameters", required: false, type: .structure) + public struct PurchaseReservedDBInstancesOfferingResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReservedDBInstance", required: false, type: .structure) ] - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// A list of Parameter values. - public let parameters: ParametersList? + public let reservedDBInstance: ReservedDBInstance? - public init(marker: String? = nil, parameters: ParametersList? = nil) { - self.marker = marker - self.parameters = parameters + public init(reservedDBInstance: ReservedDBInstance? = nil) { + self.reservedDBInstance = reservedDBInstance } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case parameters = "Parameters" + case reservedDBInstance = "ReservedDBInstance" } } - public struct VpcSecurityGroupMembership: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Status", required: false, type: .string), - AWSShapeMember(label: "VpcSecurityGroupId", required: false, type: .string) + public struct CreateDBClusterSnapshotMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: true, type: .string), + AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string) ] - /// The status of the VPC security group. - public let status: String? - /// The name of the VPC security group. - public let vpcSecurityGroupId: String? + /// The tags to be assigned to the DB cluster snapshot. + public let tags: TagList? + /// The identifier of the DB cluster snapshot. This parameter is stored as a lowercase string. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: my-cluster1-snapshot1 + public let dBClusterSnapshotIdentifier: String + /// The identifier of the DB cluster to create a snapshot for. This parameter is not case-sensitive. Constraints: Must match the identifier of an existing DBCluster. Example: my-cluster1 + public let dBClusterIdentifier: String - public init(status: String? = nil, vpcSecurityGroupId: String? = nil) { - self.status = status - self.vpcSecurityGroupId = vpcSecurityGroupId + public init(tags: TagList? = nil, dBClusterSnapshotIdentifier: String, dBClusterIdentifier: String) { + self.tags = tags + self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier + self.dBClusterIdentifier = dBClusterIdentifier } private enum CodingKeys: String, CodingKey { - case status = "Status" - case vpcSecurityGroupId = "VpcSecurityGroupId" + case tags = "Tags" + case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" + case dBClusterIdentifier = "DBClusterIdentifier" } } - public struct PendingMaintenanceActionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "PendingMaintenanceActions", required: false, type: .structure) + public struct DBClusterSnapshotAttribute: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeName", required: false, type: .string), + AWSShapeMember(label: "AttributeValues", required: false, type: .structure) ] - /// An optional pagination token provided by a previous DescribePendingMaintenanceActions request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by MaxRecords. - public let marker: String? - /// A list of the pending maintenance actions for the resource. - public let pendingMaintenanceActions: PendingMaintenanceActions? + /// The name of the manual DB cluster snapshot attribute. The attribute named restore refers to the list of AWS accounts that have permission to copy or restore the manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute API action. + public let attributeName: String? + /// The value(s) for the manual DB cluster snapshot attribute. If the AttributeName field is set to restore, then this element returns a list of IDs of the AWS accounts that are authorized to copy or restore the manual DB cluster snapshot. If a value of all is in the list, then the manual DB cluster snapshot is public and available for any AWS account to copy or restore. + public let attributeValues: AttributeValueList? - public init(marker: String? = nil, pendingMaintenanceActions: PendingMaintenanceActions? = nil) { - self.marker = marker - self.pendingMaintenanceActions = pendingMaintenanceActions + public init(attributeName: String? = nil, attributeValues: AttributeValueList? = nil) { + self.attributeName = attributeName + self.attributeValues = attributeValues } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case pendingMaintenanceActions = "PendingMaintenanceActions" + case attributeName = "AttributeName" + case attributeValues = "AttributeValues" } } - public struct CopyDBClusterSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterSnapshot", required: false, type: .structure) + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: false, type: .string), + AWSShapeMember(label: "Key", required: false, type: .string) ] - public let dBClusterSnapshot: DBClusterSnapshot? + /// A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with "aws:" or "rds:". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$"). + public let value: String? + /// A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with "aws:" or "rds:". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$"). + public let key: String? - public init(dBClusterSnapshot: DBClusterSnapshot? = nil) { - self.dBClusterSnapshot = dBClusterSnapshot + public init(value: String? = nil, key: String? = nil) { + self.value = value + self.key = key } private enum CodingKeys: String, CodingKey { - case dBClusterSnapshot = "DBClusterSnapshot" + case value = "Value" + case key = "Key" } } - public struct DBInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "DBInstances", required: false, type: .structure) + public struct CreateEventSubscriptionMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SnsTopicArn", required: true, type: .string), + AWSShapeMember(label: "SubscriptionName", required: true, type: .string), + AWSShapeMember(label: "SourceType", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "EventCategories", required: false, type: .structure), + AWSShapeMember(label: "Enabled", required: false, type: .boolean), + AWSShapeMember(label: "SourceIds", required: false, type: .structure) ] - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords . - public let marker: String? - /// A list of DBInstance instances. - public let dBInstances: DBInstanceList? + /// The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it. + public let snsTopicArn: String + /// The name of the subscription. Constraints: The name must be less than 255 characters. + public let subscriptionName: String + /// The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned. Valid values: db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot + public let sourceType: String? + public let tags: TagList? + /// A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action. + public let eventCategories: EventCategoriesList? + /// A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it. + public let enabled: Bool? + /// The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens. Constraints: If SourceIds are supplied, SourceType must also be provided. If the source type is a DB instance, then a DBInstanceIdentifier must be supplied. If the source type is a DB security group, a DBSecurityGroupName must be supplied. If the source type is a DB parameter group, a DBParameterGroupName must be supplied. If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied. + public let sourceIds: SourceIdsList? - public init(marker: String? = nil, dBInstances: DBInstanceList? = nil) { - self.marker = marker - self.dBInstances = dBInstances + public init(snsTopicArn: String, subscriptionName: String, sourceType: String? = nil, tags: TagList? = nil, eventCategories: EventCategoriesList? = nil, enabled: Bool? = nil, sourceIds: SourceIdsList? = nil) { + self.snsTopicArn = snsTopicArn + self.subscriptionName = subscriptionName + self.sourceType = sourceType + self.tags = tags + self.eventCategories = eventCategories + self.enabled = enabled + self.sourceIds = sourceIds } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case dBInstances = "DBInstances" + case snsTopicArn = "SnsTopicArn" + case subscriptionName = "SubscriptionName" + case sourceType = "SourceType" + case tags = "Tags" + case eventCategories = "EventCategories" + case enabled = "Enabled" + case sourceIds = "SourceIds" } } - public struct PromoteReadReplicaResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstance", required: false, type: .structure) + public struct DescribeDBSnapshotAttributesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSnapshotAttributesResult", required: false, type: .structure) ] - public let dBInstance: DBInstance? + public let dBSnapshotAttributesResult: DBSnapshotAttributesResult? - public init(dBInstance: DBInstance? = nil) { - self.dBInstance = dBInstance + public init(dBSnapshotAttributesResult: DBSnapshotAttributesResult? = nil) { + self.dBSnapshotAttributesResult = dBSnapshotAttributesResult } private enum CodingKeys: String, CodingKey { - case dBInstance = "DBInstance" + case dBSnapshotAttributesResult = "DBSnapshotAttributesResult" } } - public struct DescribeEngineDefaultParametersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroupFamily", required: true, type: .string), - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "Marker", required: false, type: .string) + public struct ModifyDBInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .structure) ] - /// The name of the DB parameter group family. - public let dBParameterGroupFamily: String - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// Not currently supported. - public let filters: FilterList? - /// An optional pagination token provided by a previous DescribeEngineDefaultParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? + public let dBInstance: DBInstance? - public init(dBParameterGroupFamily: String, maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil) { - self.dBParameterGroupFamily = dBParameterGroupFamily - self.maxRecords = maxRecords - self.filters = filters - self.marker = marker + public init(dBInstance: DBInstance? = nil) { + self.dBInstance = dBInstance } private enum CodingKeys: String, CodingKey { - case dBParameterGroupFamily = "DBParameterGroupFamily" - case maxRecords = "MaxRecords" - case filters = "Filters" - case marker = "Marker" + case dBInstance = "DBInstance" } } - - public struct DescribeReservedDBInstancesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "ReservedDBInstanceId", required: false, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "ReservedDBInstancesOfferingId", required: false, type: .string), - AWSShapeMember(label: "Duration", required: false, type: .string), - AWSShapeMember(label: "OfferingType", required: false, type: .string), - AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), - AWSShapeMember(label: "ProductDescription", required: false, type: .string) + + public struct IPRangeList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IPRange", required: false, type: .list) ] - /// The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so that the following results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// The Multi-AZ filter value. Specify this parameter to show only those reservations matching the specified Multi-AZ parameter. - public let multiAZ: Bool? - /// The reserved DB instance identifier filter value. Specify this parameter to show only the reservation that matches the specified reservation ID. - public let reservedDBInstanceId: String? - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// This parameter is not currently supported. - public let filters: FilterList? - /// The offering identifier filter value. Specify this parameter to show only purchased reservations matching the specified offering identifier. - public let reservedDBInstancesOfferingId: String? - /// The duration filter value, specified in years or seconds. Specify this parameter to show only reservations for this duration. Valid Values: 1 | 3 | 31536000 | 94608000 - public let duration: String? - /// The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type. Valid Values: "Partial Upfront" | "All Upfront" | "No Upfront" - public let offeringType: String? - /// The DB instance class filter value. Specify this parameter to show only those reservations matching the specified DB instances class. - public let dBInstanceClass: String? - /// The product description filter value. Specify this parameter to show only those reservations matching the specified product description. - public let productDescription: String? + public let iPRange: [IPRange]? - public init(maxRecords: Int32? = nil, multiAZ: Bool? = nil, reservedDBInstanceId: String? = nil, marker: String? = nil, filters: FilterList? = nil, reservedDBInstancesOfferingId: String? = nil, duration: String? = nil, offeringType: String? = nil, dBInstanceClass: String? = nil, productDescription: String? = nil) { - self.maxRecords = maxRecords - self.multiAZ = multiAZ - self.reservedDBInstanceId = reservedDBInstanceId - self.marker = marker - self.filters = filters - self.reservedDBInstancesOfferingId = reservedDBInstancesOfferingId - self.duration = duration - self.offeringType = offeringType - self.dBInstanceClass = dBInstanceClass - self.productDescription = productDescription + public init(iPRange: [IPRange]? = nil) { + self.iPRange = iPRange } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case multiAZ = "MultiAZ" - case reservedDBInstanceId = "ReservedDBInstanceId" - case marker = "Marker" - case filters = "Filters" - case reservedDBInstancesOfferingId = "ReservedDBInstancesOfferingId" - case duration = "Duration" - case offeringType = "OfferingType" - case dBInstanceClass = "DBInstanceClass" - case productDescription = "ProductDescription" + case iPRange = "IPRange" } } - public struct EventCategoriesList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventCategory", required: false, type: .list) + public struct RecurringCharge: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RecurringChargeAmount", required: false, type: .double), + AWSShapeMember(label: "RecurringChargeFrequency", required: false, type: .string) ] - public let eventCategory: [String]? + /// The amount of the recurring charge. + public let recurringChargeAmount: Double? + /// The frequency of the recurring charge. + public let recurringChargeFrequency: String? - public init(eventCategory: [String]? = nil) { - self.eventCategory = eventCategory + public init(recurringChargeAmount: Double? = nil, recurringChargeFrequency: String? = nil) { + self.recurringChargeAmount = recurringChargeAmount + self.recurringChargeFrequency = recurringChargeFrequency } private enum CodingKeys: String, CodingKey { - case eventCategory = "EventCategory" + case recurringChargeAmount = "RecurringChargeAmount" + case recurringChargeFrequency = "RecurringChargeFrequency" } } - public struct DBSecurityGroups: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSecurityGroup", required: false, type: .list) + public struct RestoreDBClusterToPointInTimeResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBCluster", required: false, type: .structure) ] - public let dBSecurityGroup: [DBSecurityGroup]? + public let dBCluster: DBCluster? - public init(dBSecurityGroup: [DBSecurityGroup]? = nil) { - self.dBSecurityGroup = dBSecurityGroup + public init(dBCluster: DBCluster? = nil) { + self.dBCluster = dBCluster } private enum CodingKeys: String, CodingKey { - case dBSecurityGroup = "DBSecurityGroup" + case dBCluster = "DBCluster" } } - public struct DeleteDBInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct CreateDBInstanceReadReplicaResult: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBInstance", required: false, type: .structure) ] public let dBInstance: DBInstance? @@ -3558,2800 +5242,2640 @@ extension Rds { } } - public struct OrderableDBInstanceOption: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SupportsIops", required: false, type: .boolean), - AWSShapeMember(label: "AvailabilityZones", required: false, type: .structure), - AWSShapeMember(label: "LicenseModel", required: false, type: .string), - AWSShapeMember(label: "StorageType", required: false, type: .string), - AWSShapeMember(label: "SupportsIAMDatabaseAuthentication", required: false, type: .boolean), - AWSShapeMember(label: "SupportsStorageEncryption", required: false, type: .boolean), - AWSShapeMember(label: "MultiAZCapable", required: false, type: .boolean), - AWSShapeMember(label: "ReadReplicaCapable", required: false, type: .boolean), - AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "SupportsEnhancedMonitoring", required: false, type: .boolean), - AWSShapeMember(label: "Engine", required: false, type: .string), - AWSShapeMember(label: "Vpc", required: false, type: .boolean), - AWSShapeMember(label: "DBInstanceClass", required: false, type: .string) + public struct AvailabilityZones: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZone", required: false, type: .list) ] - /// Indicates whether this orderable DB instance supports provisioned IOPS. - public let supportsIops: Bool? - /// A list of Availability Zones for the orderable DB instance. - public let availabilityZones: AvailabilityZoneList? - /// The license model for the orderable DB instance. - public let licenseModel: String? - /// Indicates the storage type for this orderable DB instance. - public let storageType: String? - /// Indicates whether this orderable DB instance supports IAM database authentication. - public let supportsIAMDatabaseAuthentication: Bool? - /// Indicates whether this orderable DB instance supports encrypted storage. - public let supportsStorageEncryption: Bool? - /// Indicates whether this orderable DB instance is multi-AZ capable. - public let multiAZCapable: Bool? - /// Indicates whether this orderable DB instance can have a Read Replica. - public let readReplicaCapable: Bool? - /// The engine version of the orderable DB instance. - public let engineVersion: String? - /// Indicates whether the DB instance supports enhanced monitoring at intervals from 1 to 60 seconds. - public let supportsEnhancedMonitoring: Bool? - /// The engine type of the orderable DB instance. - public let engine: String? - /// Indicates whether this is a VPC orderable DB instance. - public let vpc: Bool? - /// The DB instance class for the orderable DB instance. - public let dBInstanceClass: String? + public let availabilityZone: [String]? - public init(supportsIops: Bool? = nil, availabilityZones: AvailabilityZoneList? = nil, licenseModel: String? = nil, storageType: String? = nil, supportsIAMDatabaseAuthentication: Bool? = nil, supportsStorageEncryption: Bool? = nil, multiAZCapable: Bool? = nil, readReplicaCapable: Bool? = nil, engineVersion: String? = nil, supportsEnhancedMonitoring: Bool? = nil, engine: String? = nil, vpc: Bool? = nil, dBInstanceClass: String? = nil) { - self.supportsIops = supportsIops - self.availabilityZones = availabilityZones - self.licenseModel = licenseModel - self.storageType = storageType - self.supportsIAMDatabaseAuthentication = supportsIAMDatabaseAuthentication - self.supportsStorageEncryption = supportsStorageEncryption - self.multiAZCapable = multiAZCapable - self.readReplicaCapable = readReplicaCapable - self.engineVersion = engineVersion - self.supportsEnhancedMonitoring = supportsEnhancedMonitoring - self.engine = engine - self.vpc = vpc - self.dBInstanceClass = dBInstanceClass + public init(availabilityZone: [String]? = nil) { + self.availabilityZone = availabilityZone } private enum CodingKeys: String, CodingKey { - case supportsIops = "SupportsIops" - case availabilityZones = "AvailabilityZones" - case licenseModel = "LicenseModel" - case storageType = "StorageType" - case supportsIAMDatabaseAuthentication = "SupportsIAMDatabaseAuthentication" - case supportsStorageEncryption = "SupportsStorageEncryption" - case multiAZCapable = "MultiAZCapable" - case readReplicaCapable = "ReadReplicaCapable" - case engineVersion = "EngineVersion" - case supportsEnhancedMonitoring = "SupportsEnhancedMonitoring" - case engine = "Engine" - case vpc = "Vpc" - case dBInstanceClass = "DBInstanceClass" + case availabilityZone = "AvailabilityZone" } } - public struct RecurringChargeList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RecurringCharge", required: false, type: .list) + public struct Option: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionSettings", required: false, type: .structure), + AWSShapeMember(label: "OptionDescription", required: false, type: .string), + AWSShapeMember(label: "OptionVersion", required: false, type: .string), + AWSShapeMember(label: "VpcSecurityGroupMemberships", required: false, type: .structure), + AWSShapeMember(label: "DBSecurityGroupMemberships", required: false, type: .structure), + AWSShapeMember(label: "Persistent", required: false, type: .boolean), + AWSShapeMember(label: "Permanent", required: false, type: .boolean), + AWSShapeMember(label: "OptionName", required: false, type: .string), + AWSShapeMember(label: "Port", required: false, type: .integer) ] - public let recurringCharge: [RecurringCharge]? + /// The option settings for this option. + public let optionSettings: OptionSettingConfigurationList? + /// The description of the option. + public let optionDescription: String? + /// The version of the option. + public let optionVersion: String? + /// If the option requires access to a port, then this VPC security group allows access to the port. + public let vpcSecurityGroupMemberships: VpcSecurityGroupMembershipList? + /// If the option requires access to a port, then this DB security group allows access to the port. + public let dBSecurityGroupMemberships: DBSecurityGroupMembershipList? + /// Indicate if this option is persistent. + public let persistent: Bool? + /// Indicate if this option is permanent. + public let permanent: Bool? + /// The name of the option. + public let optionName: String? + /// If required, the port configured for this option to use. + public let port: Int32? - public init(recurringCharge: [RecurringCharge]? = nil) { - self.recurringCharge = recurringCharge + public init(optionSettings: OptionSettingConfigurationList? = nil, optionDescription: String? = nil, optionVersion: String? = nil, vpcSecurityGroupMemberships: VpcSecurityGroupMembershipList? = nil, dBSecurityGroupMemberships: DBSecurityGroupMembershipList? = nil, persistent: Bool? = nil, permanent: Bool? = nil, optionName: String? = nil, port: Int32? = nil) { + self.optionSettings = optionSettings + self.optionDescription = optionDescription + self.optionVersion = optionVersion + self.vpcSecurityGroupMemberships = vpcSecurityGroupMemberships + self.dBSecurityGroupMemberships = dBSecurityGroupMemberships + self.persistent = persistent + self.permanent = permanent + self.optionName = optionName + self.port = port } private enum CodingKeys: String, CodingKey { - case recurringCharge = "RecurringCharge" + case optionSettings = "OptionSettings" + case optionDescription = "OptionDescription" + case optionVersion = "OptionVersion" + case vpcSecurityGroupMemberships = "VpcSecurityGroupMemberships" + case dBSecurityGroupMemberships = "DBSecurityGroupMemberships" + case persistent = "Persistent" + case permanent = "Permanent" + case optionName = "OptionName" + case port = "Port" } } - public struct EngineDefaults: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroupFamily", required: false, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Parameters", required: false, type: .structure) + public struct VpcSecurityGroupIdList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcSecurityGroupId", required: false, type: .list) ] - /// Specifies the name of the DB parameter group family that the engine default parameters apply to. - public let dBParameterGroupFamily: String? - /// An optional pagination token provided by a previous EngineDefaults request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords . - public let marker: String? - /// Contains a list of engine default parameters. - public let parameters: ParametersList? + public let vpcSecurityGroupId: [String]? - public init(dBParameterGroupFamily: String? = nil, marker: String? = nil, parameters: ParametersList? = nil) { - self.dBParameterGroupFamily = dBParameterGroupFamily - self.marker = marker - self.parameters = parameters + public init(vpcSecurityGroupId: [String]? = nil) { + self.vpcSecurityGroupId = vpcSecurityGroupId } private enum CodingKeys: String, CodingKey { - case dBParameterGroupFamily = "DBParameterGroupFamily" - case marker = "Marker" - case parameters = "Parameters" + case vpcSecurityGroupId = "VpcSecurityGroupId" } } - public struct CopyDBParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TargetDBParameterGroupIdentifier", required: true, type: .string), - AWSShapeMember(label: "SourceDBParameterGroupIdentifier", required: true, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "TargetDBParameterGroupDescription", required: true, type: .string) + public struct OptionsDependedOn: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionName", required: false, type: .list) ] - /// The identifier for the copied DB parameter group. Constraints: Cannot be null, empty, or blank Must contain from 1 to 255 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-db-parameter-group - public let targetDBParameterGroupIdentifier: String - /// The identifier or ARN for the source DB parameter group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). Constraints: Must specify a valid DB parameter group. Must specify a valid DB parameter group identifier, for example my-db-param-group, or a valid ARN. - public let sourceDBParameterGroupIdentifier: String - public let tags: TagList? - /// A description for the copied DB parameter group. - public let targetDBParameterGroupDescription: String + public let optionName: [String]? - public init(targetDBParameterGroupIdentifier: String, sourceDBParameterGroupIdentifier: String, tags: TagList? = nil, targetDBParameterGroupDescription: String) { - self.targetDBParameterGroupIdentifier = targetDBParameterGroupIdentifier - self.sourceDBParameterGroupIdentifier = sourceDBParameterGroupIdentifier - self.tags = tags - self.targetDBParameterGroupDescription = targetDBParameterGroupDescription + public init(optionName: [String]? = nil) { + self.optionName = optionName } private enum CodingKeys: String, CodingKey { - case targetDBParameterGroupIdentifier = "TargetDBParameterGroupIdentifier" - case sourceDBParameterGroupIdentifier = "SourceDBParameterGroupIdentifier" - case tags = "Tags" - case targetDBParameterGroupDescription = "TargetDBParameterGroupDescription" + case optionName = "OptionName" } } - public struct DeleteDBClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FinalDBSnapshotIdentifier", required: false, type: .string), - AWSShapeMember(label: "SkipFinalSnapshot", required: false, type: .boolean), - AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string) + public struct DBClusterMemberList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterMember", required: false, type: .list) + ] + public let dBClusterMember: [DBClusterMember]? + + public init(dBClusterMember: [DBClusterMember]? = nil) { + self.dBClusterMember = dBClusterMember + } + + private enum CodingKeys: String, CodingKey { + case dBClusterMember = "DBClusterMember" + } + } + + public struct OptionGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Options", required: false, type: .structure), + AWSShapeMember(label: "AllowsVpcAndNonVpcInstanceMemberships", required: false, type: .boolean), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "OptionGroupArn", required: false, type: .string), + AWSShapeMember(label: "VpcId", required: false, type: .string), + AWSShapeMember(label: "MajorEngineVersion", required: false, type: .string), + AWSShapeMember(label: "EngineName", required: false, type: .string), + AWSShapeMember(label: "OptionGroupDescription", required: false, type: .string) ] - /// The DB cluster snapshot identifier of the new DB cluster snapshot created when SkipFinalSnapshot is set to false. Specifying this parameter and also setting the SkipFinalShapshot parameter to true results in an error. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let finalDBSnapshotIdentifier: String? - /// Determines whether a final DB cluster snapshot is created before the DB cluster is deleted. If true is specified, no DB cluster snapshot is created. If false is specified, a DB cluster snapshot is created before the DB cluster is deleted. You must specify a FinalDBSnapshotIdentifier parameter if SkipFinalSnapshot is false. Default: false - public let skipFinalSnapshot: Bool? - /// The DB cluster identifier for the DB cluster to be deleted. This parameter isn't case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBClusterIdentifier: String + /// Indicates what options are available in the option group. + public let options: OptionsList? + /// Indicates whether this option group can be applied to both VPC and non-VPC instances. The value true indicates the option group can be applied to both VPC and non-VPC instances. + public let allowsVpcAndNonVpcInstanceMemberships: Bool? + /// Specifies the name of the option group. + public let optionGroupName: String? + /// The Amazon Resource Name (ARN) for the option group. + public let optionGroupArn: String? + /// If AllowsVpcAndNonVpcInstanceMemberships is false, this field is blank. If AllowsVpcAndNonVpcInstanceMemberships is true and this field is blank, then this option group can be applied to both VPC and non-VPC instances. If this field contains a value, then this option group can only be applied to instances that are in the VPC indicated by this field. + public let vpcId: String? + /// Indicates the major engine version associated with this option group. + public let majorEngineVersion: String? + /// Indicates the name of the engine that this option group can be applied to. + public let engineName: String? + /// Provides a description of the option group. + public let optionGroupDescription: String? - public init(finalDBSnapshotIdentifier: String? = nil, skipFinalSnapshot: Bool? = nil, dBClusterIdentifier: String) { - self.finalDBSnapshotIdentifier = finalDBSnapshotIdentifier - self.skipFinalSnapshot = skipFinalSnapshot - self.dBClusterIdentifier = dBClusterIdentifier + public init(options: OptionsList? = nil, allowsVpcAndNonVpcInstanceMemberships: Bool? = nil, optionGroupName: String? = nil, optionGroupArn: String? = nil, vpcId: String? = nil, majorEngineVersion: String? = nil, engineName: String? = nil, optionGroupDescription: String? = nil) { + self.options = options + self.allowsVpcAndNonVpcInstanceMemberships = allowsVpcAndNonVpcInstanceMemberships + self.optionGroupName = optionGroupName + self.optionGroupArn = optionGroupArn + self.vpcId = vpcId + self.majorEngineVersion = majorEngineVersion + self.engineName = engineName + self.optionGroupDescription = optionGroupDescription } private enum CodingKeys: String, CodingKey { - case finalDBSnapshotIdentifier = "FinalDBSnapshotIdentifier" - case skipFinalSnapshot = "SkipFinalSnapshot" - case dBClusterIdentifier = "DBClusterIdentifier" + case options = "Options" + case allowsVpcAndNonVpcInstanceMemberships = "AllowsVpcAndNonVpcInstanceMemberships" + case optionGroupName = "OptionGroupName" + case optionGroupArn = "OptionGroupArn" + case vpcId = "VpcId" + case majorEngineVersion = "MajorEngineVersion" + case engineName = "EngineName" + case optionGroupDescription = "OptionGroupDescription" } } - public struct CreateDBInstanceReadReplicaMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "KmsKeyId", required: false, type: .string), - AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), - AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string), + public struct RestoreDBInstanceFromDBSnapshotMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Port", required: false, type: .integer), + AWSShapeMember(label: "Domain", required: false, type: .string), + AWSShapeMember(label: "DBName", required: false, type: .string), + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "TdeCredentialPassword", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "LicenseModel", required: false, type: .string), AWSShapeMember(label: "StorageType", required: false, type: .string), + AWSShapeMember(label: "TdeCredentialArn", required: false, type: .string), + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string), AWSShapeMember(label: "Iops", required: false, type: .integer), AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), - AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), + AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), - AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "MonitoringRoleArn", required: false, type: .string), AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), - AWSShapeMember(label: "PreSignedUrl", required: false, type: .string), - AWSShapeMember(label: "MonitoringInterval", required: false, type: .integer), - AWSShapeMember(label: "Port", required: false, type: .integer), - AWSShapeMember(label: "SourceDBInstanceIdentifier", required: true, type: .string) + AWSShapeMember(label: "Engine", required: false, type: .string), + AWSShapeMember(label: "DomainIAMRoleName", required: false, type: .string), + AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string), + AWSShapeMember(label: "DBInstanceClass", required: false, type: .string) ] - /// The AWS KMS key ID for an encrypted Read Replica. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. If you create an unencrypted Read Replica and specify a value for the KmsKeyId parameter, Amazon RDS encrypts the target Read Replica using the specified KMS encryption key. If you create an encrypted Read Replica from your AWS account, you can specify a value for KmsKeyId to encrypt the Read Replica with a new KMS encryption key. If you don't specify a value for KmsKeyId, then the Read Replica is encrypted with the same KMS key as the source DB instance. If you create an encrypted Read Replica in a different AWS region, then you must specify a KMS key for the destination AWS region. KMS encryption keys are specific to the region that they are created in, and you cannot use encryption keys from one region in another region. - public let kmsKeyId: String? - /// The compute and memory capacity of the Read Replica. Note that not all instance classes are available in all regions for all DB engines. Valid Values: db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large Default: Inherits from the source DB instance. - public let dBInstanceClass: String? - /// The DB instance identifier of the Read Replica. This identifier is the unique key that identifies a DB instance. This parameter is stored as a lowercase string. - public let dBInstanceIdentifier: String + /// The port number on which the database accepts connections. Default: The same port as the original DB instance Constraints: Value must be 1150-65535 + public let port: Int32? + /// Specify the Active Directory Domain to restore the instance in. + public let domain: String? + /// The database name for the restored DB instance. This parameter doesn't apply to the MySQL, PostgreSQL, or MariaDB engines. + public let dBName: String? + /// Specifies if the DB instance is a Multi-AZ deployment. Constraint: You can't specify the AvailabilityZone parameter if the MultiAZ parameter is set to true. + public let multiAZ: Bool? + /// The password for the given ARN from the key store in order to access the device. + public let tdeCredentialPassword: String? public let tags: TagList? - /// Specifies the storage type to be associated with the Read Replica. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified; otherwise standard + /// License model information for the restored DB instance. Default: Same as source. Valid values: license-included | bring-your-own-license | general-public-license + public let licenseModel: String? + /// Specifies the storage type to be associated with the DB instance. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified, otherwise standard public let storageType: String? - /// The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. + /// The ARN from the key store with which to associate the instance for TDE encryption. + public let tdeCredentialArn: String? + /// Name of the DB instance to create from the DB snapshot. This parameter isn't case-sensitive. Constraints: Must contain from 1 to 63 numbers, letters, or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-snapshot-id + public let dBInstanceIdentifier: String + /// Specifies the amount of provisioned IOPS for the DB instance, expressed in I/O operations per second. If this parameter is not specified, the IOPS value is taken from the backup. If this parameter is set to 0, the new instance is converted to a non-PIOPS instance. The conversion takes additional time, though your DB instance is available for connections before the conversion starts. The provisioned IOPS value must follow the requirements for your database engine. For more information, see Amazon RDS Provisioned IOPS Storage to Improve Performance. Constraints: Must be an integer greater than 1000. public let iops: Int32? - /// The Amazon EC2 Availability Zone that the Read Replica will be created in. Default: A random, system-chosen Availability Zone in the endpoint's region. Example: us-east-1d + /// The EC2 Availability Zone that the DB instance is created in. Default: A random, system-chosen Availability Zone. Constraint: You can't specify the AvailabilityZone parameter if the MultiAZ parameter is set to true. Example: us-east-1a public let availabilityZone: String? - /// Indicates that minor engine upgrades will be applied automatically to the Read Replica during the maintenance window. Default: Inherits from the source DB instance - public let autoMinorVersionUpgrade: Bool? - /// Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case. Default VPC:true VPC:false If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private. + /// Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case. Default VPC: true VPC: false If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private. public let publiclyAccessible: Bool? - /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false. You can enable IAM database authentication for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Aurora 5.6 or higher. Default: false + /// Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window. + public let autoMinorVersionUpgrade: Bool? + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. You can enable IAM database authentication for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Aurora 5.6 or higher. Default: false public let enableIAMDatabaseAuthentication: Bool? - /// Specifies a DB subnet group for the DB instance. The new DB instance will be created in the VPC associated with the DB subnet group. If no DB subnet group is specified, then the new DB instance is not created in a VPC. Constraints: Can only be specified if the source DB instance identifier specifies a DB instance in another region. The specified DB subnet group must be in the same region in which the operation is running. All Read Replicas in one region that are created from the same source DB instance must either:> Specify DB subnet groups from the same VPC. All these Read Replicas will be created in the same VPC. Not specify a DB subnet group. All these Read Replicas will be created outside of any VPC. Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup - public let dBSubnetGroupName: String? - /// The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring. If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value. - public let monitoringRoleArn: String? - /// The option group the DB instance will be associated with. If omitted, the default option group for the engine specified will be used. + /// The name of the option group to be used for the restored DB instance. Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance public let optionGroupName: String? - /// True to copy all tags from the Read Replica to snapshots of the Read Replica; otherwise false. The default is false. + /// The DB subnet group name to use for the new instance. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: mySubnetgroup + public let dBSubnetGroupName: String? + /// True to copy all tags from the restored DB instance to snapshots of the DB instance, and otherwise false. The default is false. public let copyTagsToSnapshot: Bool? - /// The URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API action in the AWS region that contains the source DB instance. The PreSignedUrl parameter must be used when encrypting a Read Replica from another AWS region. The presigned URL must be a valid request for the CreateDBInstanceReadReplica API action that can be executed in the source region that contains the encrypted DB instance. The presigned URL request must contain the following parameter values: DestinationRegion - The AWS Region that the Read Replica is created in. This region is the same one where the CreateDBInstanceReadReplica action is called that contains this presigned URL. For example, if you create an encrypted Read Replica in the us-east-1 region, and the source DB instance is in the west-2 region, then you call the CreateDBInstanceReadReplica action in the us-east-1 region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica action in the us-west-2 region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 region. KmsKeyId - The KMS key identifier for the key to use to encrypt the Read Replica in the destination region. This is the same identifier for both the CreateDBInstanceReadReplica action that is called in the destination region, and the action contained in the presigned URL. SourceDBInstanceIdentifier - The DB instance identifier for the encrypted Read Replica to be created. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you create an encrypted Read Replica from a DB instance in the us-west-2 region, then your SourceDBInstanceIdentifier would look like this example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-instance-20161115. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. - public let preSignedUrl: String? - /// The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the Read Replica. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0. Valid Values: 0, 1, 5, 10, 15, 30, 60 - public let monitoringInterval: Int32? - /// The port number that the DB instance uses for connections. Default: Inherits from the source DB instance Valid Values: 1150-65535 - public let port: Int32? - /// The identifier of the DB instance that will act as the source for the Read Replica. Each DB instance can have up to five Read Replicas. Constraints: Must be the identifier of an existing MySQL, MariaDB, or PostgreSQL DB instance. Can specify a DB instance that is a MySQL Read Replica only if the source is running MySQL 5.6. Can specify a DB instance that is a PostgreSQL DB instance only if the source is running PostgreSQL 9.3.5 or later. The specified DB instance must have automatic backups enabled, its backup retention period must be greater than 0. If the source DB instance is in the same region as the Read Replica, specify a valid DB instance identifier. If the source DB instance is in a different region than the Read Replica, specify a valid DB instance ARN. For more information, go to Constructing a Amazon RDS Amazon Resource Name (ARN). - public let sourceDBInstanceIdentifier: String + /// The database engine to use for the new instance. Default: The same as source Constraint: Must be compatible with the engine of the source. You can restore a MariaDB 10.1 DB instance from a MySQL 5.6 snapshot. Valid Values: aurora aurora-postgresql mariadb mysql oracle-ee oracle-se2 oracle-se1 oracle-se postgres sqlserver-ee sqlserver-se sqlserver-ex sqlserver-web + public let engine: String? + /// Specify the name of the IAM role to be used when making API calls to the Directory Service. + public let domainIAMRoleName: String? + /// The identifier for the DB snapshot to restore from. Constraints: Must match the identifier of an existing DBSnapshot. If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot. + public let dBSnapshotIdentifier: String + /// The compute and memory capacity of the Amazon RDS DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide. Default: The same DBInstanceClass as the original DB instance. + public let dBInstanceClass: String? - public init(kmsKeyId: String? = nil, dBInstanceClass: String? = nil, dBInstanceIdentifier: String, tags: TagList? = nil, storageType: String? = nil, iops: Int32? = nil, availabilityZone: String? = nil, autoMinorVersionUpgrade: Bool? = nil, publiclyAccessible: Bool? = nil, enableIAMDatabaseAuthentication: Bool? = nil, dBSubnetGroupName: String? = nil, monitoringRoleArn: String? = nil, optionGroupName: String? = nil, copyTagsToSnapshot: Bool? = nil, preSignedUrl: String? = nil, monitoringInterval: Int32? = nil, port: Int32? = nil, sourceDBInstanceIdentifier: String) { - self.kmsKeyId = kmsKeyId - self.dBInstanceClass = dBInstanceClass - self.dBInstanceIdentifier = dBInstanceIdentifier + public init(port: Int32? = nil, domain: String? = nil, dBName: String? = nil, multiAZ: Bool? = nil, tdeCredentialPassword: String? = nil, tags: TagList? = nil, licenseModel: String? = nil, storageType: String? = nil, tdeCredentialArn: String? = nil, dBInstanceIdentifier: String, iops: Int32? = nil, availabilityZone: String? = nil, publiclyAccessible: Bool? = nil, autoMinorVersionUpgrade: Bool? = nil, enableIAMDatabaseAuthentication: Bool? = nil, optionGroupName: String? = nil, dBSubnetGroupName: String? = nil, copyTagsToSnapshot: Bool? = nil, engine: String? = nil, domainIAMRoleName: String? = nil, dBSnapshotIdentifier: String, dBInstanceClass: String? = nil) { + self.port = port + self.domain = domain + self.dBName = dBName + self.multiAZ = multiAZ + self.tdeCredentialPassword = tdeCredentialPassword self.tags = tags + self.licenseModel = licenseModel self.storageType = storageType + self.tdeCredentialArn = tdeCredentialArn + self.dBInstanceIdentifier = dBInstanceIdentifier self.iops = iops self.availabilityZone = availabilityZone - self.autoMinorVersionUpgrade = autoMinorVersionUpgrade self.publiclyAccessible = publiclyAccessible + self.autoMinorVersionUpgrade = autoMinorVersionUpgrade self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication - self.dBSubnetGroupName = dBSubnetGroupName - self.monitoringRoleArn = monitoringRoleArn self.optionGroupName = optionGroupName + self.dBSubnetGroupName = dBSubnetGroupName self.copyTagsToSnapshot = copyTagsToSnapshot - self.preSignedUrl = preSignedUrl - self.monitoringInterval = monitoringInterval - self.port = port - self.sourceDBInstanceIdentifier = sourceDBInstanceIdentifier + self.engine = engine + self.domainIAMRoleName = domainIAMRoleName + self.dBSnapshotIdentifier = dBSnapshotIdentifier + self.dBInstanceClass = dBInstanceClass } private enum CodingKeys: String, CodingKey { - case kmsKeyId = "KmsKeyId" - case dBInstanceClass = "DBInstanceClass" - case dBInstanceIdentifier = "DBInstanceIdentifier" + case port = "Port" + case domain = "Domain" + case dBName = "DBName" + case multiAZ = "MultiAZ" + case tdeCredentialPassword = "TdeCredentialPassword" case tags = "Tags" + case licenseModel = "LicenseModel" case storageType = "StorageType" + case tdeCredentialArn = "TdeCredentialArn" + case dBInstanceIdentifier = "DBInstanceIdentifier" case iops = "Iops" case availabilityZone = "AvailabilityZone" - case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" case publiclyAccessible = "PubliclyAccessible" + case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" - case dBSubnetGroupName = "DBSubnetGroupName" - case monitoringRoleArn = "MonitoringRoleArn" case optionGroupName = "OptionGroupName" + case dBSubnetGroupName = "DBSubnetGroupName" case copyTagsToSnapshot = "CopyTagsToSnapshot" - case preSignedUrl = "PreSignedUrl" - case monitoringInterval = "MonitoringInterval" - case port = "Port" - case sourceDBInstanceIdentifier = "SourceDBInstanceIdentifier" + case engine = "Engine" + case domainIAMRoleName = "DomainIAMRoleName" + case dBSnapshotIdentifier = "DBSnapshotIdentifier" + case dBInstanceClass = "DBInstanceClass" } } - public struct DescribeDBClustersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "Marker", required: false, type: .string) + public struct OrderableDBInstanceOptionsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "OrderableDBInstanceOptions", required: false, type: .structure) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// The user-supplied DB cluster identifier. If this parameter is specified, information from only the specific DB cluster is returned. This parameter isn't case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBClusterIdentifier: String? - /// A filter that specifies one or more DB clusters to describe. Supported filters: db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB clusters identified by these ARNs. - public let filters: FilterList? - /// An optional pagination token provided by a previous DescribeDBClusters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + /// An optional pagination token provided by a previous OrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords . public let marker: String? + /// An OrderableDBInstanceOption structure containing information about orderable options for the DB instance. + public let orderableDBInstanceOptions: OrderableDBInstanceOptionsList? - public init(maxRecords: Int32? = nil, dBClusterIdentifier: String? = nil, filters: FilterList? = nil, marker: String? = nil) { - self.maxRecords = maxRecords - self.dBClusterIdentifier = dBClusterIdentifier - self.filters = filters + public init(marker: String? = nil, orderableDBInstanceOptions: OrderableDBInstanceOptionsList? = nil) { self.marker = marker + self.orderableDBInstanceOptions = orderableDBInstanceOptions } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case dBClusterIdentifier = "DBClusterIdentifier" - case filters = "Filters" case marker = "Marker" + case orderableDBInstanceOptions = "OrderableDBInstanceOptions" } } - public struct OptionGroupOptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DescribeDBClusterSnapshotsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "OptionGroupOptions", required: false, type: .structure) + AWSShapeMember(label: "IncludePublic", required: false, type: .boolean), + AWSShapeMember(label: "SnapshotType", required: false, type: .string), + AWSShapeMember(label: "IncludeShared", required: false, type: .boolean), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: false, type: .string) ] - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// The ID of the DB cluster to retrieve the list of DB cluster snapshots for. This parameter can't be used in conjunction with the DBClusterSnapshotIdentifier parameter. This parameter is not case-sensitive. Constraints: If supplied, must match the identifier of an existing DBCluster. + public let dBClusterIdentifier: String? + /// An optional pagination token provided by a previous DescribeDBClusterSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - public let optionGroupOptions: OptionGroupOptionsList? + /// True to include manual DB cluster snapshots that are public and can be copied or restored by any AWS account, and otherwise false. The default is false. The default is false. You can share a manual DB cluster snapshot as public by using the ModifyDBClusterSnapshotAttribute API action. + public let includePublic: Bool? + /// The type of DB cluster snapshots to be returned. You can specify one of the following values: automated - Return all DB cluster snapshots that have been automatically taken by Amazon RDS for my AWS account. manual - Return all DB cluster snapshots that have been taken by my AWS account. shared - Return all manual DB cluster snapshots that have been shared to my AWS account. public - Return all DB cluster snapshots that have been marked as public. If you don't specify a SnapshotType value, then both automated and manual DB cluster snapshots are returned. You can include shared DB cluster snapshots with these results by setting the IncludeShared parameter to true. You can include public DB cluster snapshots with these results by setting the IncludePublic parameter to true. The IncludeShared and IncludePublic parameters don't apply for SnapshotType values of manual or automated. The IncludePublic parameter doesn't apply when SnapshotType is set to shared. The IncludeShared parameter doesn't apply when SnapshotType is set to public. + public let snapshotType: String? + /// True to include shared manual DB cluster snapshots from other AWS accounts that this AWS account has been given permission to copy or restore, and otherwise false. The default is false. You can give an AWS account permission to restore a manual DB cluster snapshot from another AWS account by the ModifyDBClusterSnapshotAttribute API action. + public let includeShared: Bool? + /// This parameter is not currently supported. + public let filters: FilterList? + /// A specific DB cluster snapshot identifier to describe. This parameter can't be used in conjunction with the DBClusterIdentifier parameter. This value is stored as a lowercase string. Constraints: If supplied, must match the identifier of an existing DBClusterSnapshot. If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified. + public let dBClusterSnapshotIdentifier: String? - public init(marker: String? = nil, optionGroupOptions: OptionGroupOptionsList? = nil) { + public init(maxRecords: Int32? = nil, dBClusterIdentifier: String? = nil, marker: String? = nil, includePublic: Bool? = nil, snapshotType: String? = nil, includeShared: Bool? = nil, filters: FilterList? = nil, dBClusterSnapshotIdentifier: String? = nil) { + self.maxRecords = maxRecords + self.dBClusterIdentifier = dBClusterIdentifier self.marker = marker - self.optionGroupOptions = optionGroupOptions + self.includePublic = includePublic + self.snapshotType = snapshotType + self.includeShared = includeShared + self.filters = filters + self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier } private enum CodingKeys: String, CodingKey { + case maxRecords = "MaxRecords" + case dBClusterIdentifier = "DBClusterIdentifier" case marker = "Marker" - case optionGroupOptions = "OptionGroupOptions" - } - } - - public struct FilterValueList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: false, type: .list) - ] - public let value: [String]? - - public init(value: [String]? = nil) { - self.value = value - } - - private enum CodingKeys: String, CodingKey { - case value = "Value" - } - } - - public struct DeleteEventSubscriptionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventSubscription", required: false, type: .structure) - ] - public let eventSubscription: EventSubscription? - - public init(eventSubscription: EventSubscription? = nil) { - self.eventSubscription = eventSubscription - } - - private enum CodingKeys: String, CodingKey { - case eventSubscription = "EventSubscription" + case includePublic = "IncludePublic" + case snapshotType = "SnapshotType" + case includeShared = "IncludeShared" + case filters = "Filters" + case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" } } - public struct CreateDBParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroupFamily", required: true, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "DBParameterGroupName", required: true, type: .string), - AWSShapeMember(label: "Description", required: true, type: .string) + public struct DBClusterSnapshot: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AvailabilityZones", required: false, type: .structure), + AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), + AWSShapeMember(label: "LicenseModel", required: false, type: .string), + AWSShapeMember(label: "SnapshotType", required: false, type: .string), + AWSShapeMember(label: "DBClusterSnapshotArn", required: false, type: .string), + AWSShapeMember(label: "ClusterCreateTime", required: false, type: .timestamp), + AWSShapeMember(label: "IAMDatabaseAuthenticationEnabled", required: false, type: .boolean), + AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "VpcId", required: false, type: .string), + AWSShapeMember(label: "MasterUsername", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "Engine", required: false, type: .string), + AWSShapeMember(label: "SnapshotCreateTime", required: false, type: .timestamp), + AWSShapeMember(label: "PercentProgress", required: false, type: .integer), + AWSShapeMember(label: "StorageEncrypted", required: false, type: .boolean), + AWSShapeMember(label: "SourceDBClusterSnapshotArn", required: false, type: .string), + AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: false, type: .string), + AWSShapeMember(label: "Port", required: false, type: .integer), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) ] - /// The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family. - public let dBParameterGroupFamily: String - public let tags: TagList? - /// The name of the DB parameter group. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens This value is stored as a lowercase string. - public let dBParameterGroupName: String - /// The description for the DB parameter group. - public let description: String + /// Provides the list of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in. + public let availabilityZones: AvailabilityZones? + /// Specifies the allocated storage size in gigabytes (GB). + public let allocatedStorage: Int32? + /// Provides the license model information for this DB cluster snapshot. + public let licenseModel: String? + /// Provides the type of the DB cluster snapshot. + public let snapshotType: String? + /// The Amazon Resource Name (ARN) for the DB cluster snapshot. + public let dBClusterSnapshotArn: String? + /// Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC). + public let clusterCreateTime: TimeStamp? + /// True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. + public let iAMDatabaseAuthenticationEnabled: Bool? + /// Specifies the DB cluster identifier of the DB cluster that this DB cluster snapshot was created from. + public let dBClusterIdentifier: String? + /// Provides the version of the database engine for this DB cluster snapshot. + public let engineVersion: String? + /// Provides the VPC ID associated with the DB cluster snapshot. + public let vpcId: String? + /// Provides the master username for the DB cluster snapshot. + public let masterUsername: String? + /// Specifies the status of this DB cluster snapshot. + public let status: String? + /// Specifies the name of the database engine. + public let engine: String? + /// Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). + public let snapshotCreateTime: TimeStamp? + /// Specifies the percentage of the estimated data that has been transferred. + public let percentProgress: Int32? + /// Specifies whether the DB cluster snapshot is encrypted. + public let storageEncrypted: Bool? + /// If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot, otherwise, a null value. + public let sourceDBClusterSnapshotArn: String? + /// Specifies the identifier for the DB cluster snapshot. + public let dBClusterSnapshotIdentifier: String? + /// Specifies the port that the DB cluster was listening on at the time of the snapshot. + public let port: Int32? + /// If StorageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot. + public let kmsKeyId: String? - public init(dBParameterGroupFamily: String, tags: TagList? = nil, dBParameterGroupName: String, description: String) { - self.dBParameterGroupFamily = dBParameterGroupFamily - self.tags = tags - self.dBParameterGroupName = dBParameterGroupName - self.description = description + public init(availabilityZones: AvailabilityZones? = nil, allocatedStorage: Int32? = nil, licenseModel: String? = nil, snapshotType: String? = nil, dBClusterSnapshotArn: String? = nil, clusterCreateTime: TimeStamp? = nil, iAMDatabaseAuthenticationEnabled: Bool? = nil, dBClusterIdentifier: String? = nil, engineVersion: String? = nil, vpcId: String? = nil, masterUsername: String? = nil, status: String? = nil, engine: String? = nil, snapshotCreateTime: TimeStamp? = nil, percentProgress: Int32? = nil, storageEncrypted: Bool? = nil, sourceDBClusterSnapshotArn: String? = nil, dBClusterSnapshotIdentifier: String? = nil, port: Int32? = nil, kmsKeyId: String? = nil) { + self.availabilityZones = availabilityZones + self.allocatedStorage = allocatedStorage + self.licenseModel = licenseModel + self.snapshotType = snapshotType + self.dBClusterSnapshotArn = dBClusterSnapshotArn + self.clusterCreateTime = clusterCreateTime + self.iAMDatabaseAuthenticationEnabled = iAMDatabaseAuthenticationEnabled + self.dBClusterIdentifier = dBClusterIdentifier + self.engineVersion = engineVersion + self.vpcId = vpcId + self.masterUsername = masterUsername + self.status = status + self.engine = engine + self.snapshotCreateTime = snapshotCreateTime + self.percentProgress = percentProgress + self.storageEncrypted = storageEncrypted + self.sourceDBClusterSnapshotArn = sourceDBClusterSnapshotArn + self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier + self.port = port + self.kmsKeyId = kmsKeyId } private enum CodingKeys: String, CodingKey { - case dBParameterGroupFamily = "DBParameterGroupFamily" - case tags = "Tags" - case dBParameterGroupName = "DBParameterGroupName" - case description = "Description" + case availabilityZones = "AvailabilityZones" + case allocatedStorage = "AllocatedStorage" + case licenseModel = "LicenseModel" + case snapshotType = "SnapshotType" + case dBClusterSnapshotArn = "DBClusterSnapshotArn" + case clusterCreateTime = "ClusterCreateTime" + case iAMDatabaseAuthenticationEnabled = "IAMDatabaseAuthenticationEnabled" + case dBClusterIdentifier = "DBClusterIdentifier" + case engineVersion = "EngineVersion" + case vpcId = "VpcId" + case masterUsername = "MasterUsername" + case status = "Status" + case engine = "Engine" + case snapshotCreateTime = "SnapshotCreateTime" + case percentProgress = "PercentProgress" + case storageEncrypted = "StorageEncrypted" + case sourceDBClusterSnapshotArn = "SourceDBClusterSnapshotArn" + case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" + case port = "Port" + case kmsKeyId = "KmsKeyId" } } - public struct CreateDBSecurityGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSecurityGroup", required: false, type: .structure) + public struct DBSnapshotAttributeList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSnapshotAttribute", required: false, type: .list) ] - public let dBSecurityGroup: DBSecurityGroup? + public let dBSnapshotAttribute: [DBSnapshotAttribute]? - public init(dBSecurityGroup: DBSecurityGroup? = nil) { - self.dBSecurityGroup = dBSecurityGroup + public init(dBSnapshotAttribute: [DBSnapshotAttribute]? = nil) { + self.dBSnapshotAttribute = dBSnapshotAttribute } private enum CodingKeys: String, CodingKey { - case dBSecurityGroup = "DBSecurityGroup" + case dBSnapshotAttribute = "DBSnapshotAttribute" } } - public struct OptionGroupOptionSettingsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionGroupOptionSetting", required: false, type: .list) + public struct DeleteEventSubscriptionMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubscriptionName", required: true, type: .string) ] - public let optionGroupOptionSetting: [OptionGroupOptionSetting]? + /// The name of the RDS event notification subscription you want to delete. + public let subscriptionName: String - public init(optionGroupOptionSetting: [OptionGroupOptionSetting]? = nil) { - self.optionGroupOptionSetting = optionGroupOptionSetting + public init(subscriptionName: String) { + self.subscriptionName = subscriptionName } private enum CodingKeys: String, CodingKey { - case optionGroupOptionSetting = "OptionGroupOptionSetting" + case subscriptionName = "SubscriptionName" } } - public struct CopyDBParameterGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroup", required: false, type: .structure) + public struct SourceIdsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceId", required: false, type: .list) ] - public let dBParameterGroup: DBParameterGroup? + public let sourceId: [String]? - public init(dBParameterGroup: DBParameterGroup? = nil) { - self.dBParameterGroup = dBParameterGroup + public init(sourceId: [String]? = nil) { + self.sourceId = sourceId } private enum CodingKeys: String, CodingKey { - case dBParameterGroup = "DBParameterGroup" + case sourceId = "SourceId" } } - public struct EventSubscription: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Status", required: false, type: .string), - AWSShapeMember(label: "SnsTopicArn", required: false, type: .string), - AWSShapeMember(label: "SourceIdsList", required: false, type: .structure), - AWSShapeMember(label: "SourceType", required: false, type: .string), - AWSShapeMember(label: "CustSubscriptionId", required: false, type: .string), - AWSShapeMember(label: "Enabled", required: false, type: .boolean), - AWSShapeMember(label: "EventSubscriptionArn", required: false, type: .string), - AWSShapeMember(label: "CustomerAwsId", required: false, type: .string), - AWSShapeMember(label: "EventCategoriesList", required: false, type: .structure), - AWSShapeMember(label: "SubscriptionCreationTime", required: false, type: .string) + public struct SubnetIdentifierList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIdentifier", required: false, type: .list) ] - /// The status of the RDS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that RDS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created. - public let status: String? - /// The topic ARN of the RDS event notification subscription. - public let snsTopicArn: String? - /// A list of source IDs for the RDS event notification subscription. - public let sourceIdsList: SourceIdsList? - /// The source type for the RDS event notification subscription. - public let sourceType: String? - /// The RDS event notification subscription Id. - public let custSubscriptionId: String? - /// A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled. - public let enabled: Bool? - /// The Amazon Resource Name (ARN) for the event subscription. - public let eventSubscriptionArn: String? - /// The AWS customer account associated with the RDS event notification subscription. - public let customerAwsId: String? - /// A list of event categories for the RDS event notification subscription. - public let eventCategoriesList: EventCategoriesList? - /// The time the RDS event notification subscription was created. - public let subscriptionCreationTime: String? + public let subnetIdentifier: [String]? - public init(status: String? = nil, snsTopicArn: String? = nil, sourceIdsList: SourceIdsList? = nil, sourceType: String? = nil, custSubscriptionId: String? = nil, enabled: Bool? = nil, eventSubscriptionArn: String? = nil, customerAwsId: String? = nil, eventCategoriesList: EventCategoriesList? = nil, subscriptionCreationTime: String? = nil) { - self.status = status - self.snsTopicArn = snsTopicArn - self.sourceIdsList = sourceIdsList - self.sourceType = sourceType - self.custSubscriptionId = custSubscriptionId - self.enabled = enabled - self.eventSubscriptionArn = eventSubscriptionArn - self.customerAwsId = customerAwsId - self.eventCategoriesList = eventCategoriesList - self.subscriptionCreationTime = subscriptionCreationTime + public init(subnetIdentifier: [String]? = nil) { + self.subnetIdentifier = subnetIdentifier } private enum CodingKeys: String, CodingKey { - case status = "Status" - case snsTopicArn = "SnsTopicArn" - case sourceIdsList = "SourceIdsList" - case sourceType = "SourceType" - case custSubscriptionId = "CustSubscriptionId" - case enabled = "Enabled" - case eventSubscriptionArn = "EventSubscriptionArn" - case customerAwsId = "CustomerAwsId" - case eventCategoriesList = "EventCategoriesList" - case subscriptionCreationTime = "SubscriptionCreationTime" + case subnetIdentifier = "SubnetIdentifier" } } - public struct AccountAttributesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountQuotas", required: false, type: .structure) + public struct Parameter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ParameterValue", required: false, type: .string), + AWSShapeMember(label: "AllowedValues", required: false, type: .string), + AWSShapeMember(label: "DataType", required: false, type: .string), + AWSShapeMember(label: "ParameterName", required: false, type: .string), + AWSShapeMember(label: "ApplyType", required: false, type: .string), + AWSShapeMember(label: "Source", required: false, type: .string), + AWSShapeMember(label: "IsModifiable", required: false, type: .boolean), + AWSShapeMember(label: "MinimumEngineVersion", required: false, type: .string), + AWSShapeMember(label: "ApplyMethod", required: false, type: .enum), + AWSShapeMember(label: "Description", required: false, type: .string) ] - /// A list of AccountQuota objects. Within this list, each quota has a name, a count of usage toward the quota maximum, and a maximum value for the quota. - public let accountQuotas: AccountQuotaList? + /// Specifies the value of the parameter. + public let parameterValue: String? + /// Specifies the valid range of values for the parameter. + public let allowedValues: String? + /// Specifies the valid data type for the parameter. + public let dataType: String? + /// Specifies the name of the parameter. + public let parameterName: String? + /// Specifies the engine specific parameters type. + public let applyType: String? + /// Indicates the source of the parameter value. + public let source: String? + /// Indicates whether (true) or not (false) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed. + public let isModifiable: Bool? + /// The earliest engine version to which the parameter can apply. + public let minimumEngineVersion: String? + /// Indicates when to apply parameter updates. + public let applyMethod: ApplyMethod? + /// Provides a description of the parameter. + public let description: String? - public init(accountQuotas: AccountQuotaList? = nil) { - self.accountQuotas = accountQuotas + public init(parameterValue: String? = nil, allowedValues: String? = nil, dataType: String? = nil, parameterName: String? = nil, applyType: String? = nil, source: String? = nil, isModifiable: Bool? = nil, minimumEngineVersion: String? = nil, applyMethod: ApplyMethod? = nil, description: String? = nil) { + self.parameterValue = parameterValue + self.allowedValues = allowedValues + self.dataType = dataType + self.parameterName = parameterName + self.applyType = applyType + self.source = source + self.isModifiable = isModifiable + self.minimumEngineVersion = minimumEngineVersion + self.applyMethod = applyMethod + self.description = description } private enum CodingKeys: String, CodingKey { - case accountQuotas = "AccountQuotas" + case parameterValue = "ParameterValue" + case allowedValues = "AllowedValues" + case dataType = "DataType" + case parameterName = "ParameterName" + case applyType = "ApplyType" + case source = "Source" + case isModifiable = "IsModifiable" + case minimumEngineVersion = "MinimumEngineVersion" + case applyMethod = "ApplyMethod" + case description = "Description" } } - public struct VpcSecurityGroupMembershipList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcSecurityGroupMembership", required: false, type: .list) + public struct ResetDBParameterGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Parameters", required: false, type: .structure), + AWSShapeMember(label: "DBParameterGroupName", required: true, type: .string), + AWSShapeMember(label: "ResetAllParameters", required: false, type: .boolean) ] - public let vpcSecurityGroupMembership: [VpcSecurityGroupMembership]? + /// To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. To reset specific parameters, provide a list of the following: ParameterName and ApplyMethod. A maximum of 20 parameters can be modified in a single request. MySQL Valid Values (for Apply method): immediate | pending-reboot You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when DB instance reboots. MariaDB Valid Values (for Apply method): immediate | pending-reboot You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when DB instance reboots. Oracle Valid Values (for Apply method): pending-reboot + public let parameters: ParametersList? + /// The name of the DB parameter group. Constraints: Must match the name of an existing DBParameterGroup. + public let dBParameterGroupName: String + /// Specifies whether (true) or not (false) to reset all parameters in the DB parameter group to default values. Default: true + public let resetAllParameters: Bool? - public init(vpcSecurityGroupMembership: [VpcSecurityGroupMembership]? = nil) { - self.vpcSecurityGroupMembership = vpcSecurityGroupMembership + public init(parameters: ParametersList? = nil, dBParameterGroupName: String, resetAllParameters: Bool? = nil) { + self.parameters = parameters + self.dBParameterGroupName = dBParameterGroupName + self.resetAllParameters = resetAllParameters } private enum CodingKeys: String, CodingKey { - case vpcSecurityGroupMembership = "VpcSecurityGroupMembership" + case parameters = "Parameters" + case dBParameterGroupName = "DBParameterGroupName" + case resetAllParameters = "ResetAllParameters" } } - public struct DBClusterRole: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleArn", required: false, type: .string), - AWSShapeMember(label: "Status", required: false, type: .string) + public struct OptionGroupOptionVersionsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionVersion", required: false, type: .list) ] - /// The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster. - public let roleArn: String? - /// Describes the state of association between the IAM role and the DB cluster. The Status property returns one of the following values: ACTIVE - the IAM role ARN is associated with the DB cluster and can be used to access other AWS services on your behalf. PENDING - the IAM role ARN is being associated with the DB cluster. INVALID - the IAM role ARN is associated with the DB cluster, but the DB cluster is unable to assume the IAM role in order to access other AWS services on your behalf. - public let status: String? + public let optionVersion: [OptionVersion]? - public init(roleArn: String? = nil, status: String? = nil) { - self.roleArn = roleArn - self.status = status + public init(optionVersion: [OptionVersion]? = nil) { + self.optionVersion = optionVersion } private enum CodingKeys: String, CodingKey { - case roleArn = "RoleArn" - case status = "Status" + case optionVersion = "OptionVersion" } } - public struct CreateDBInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBName", required: false, type: .string), - AWSShapeMember(label: "TdeCredentialPassword", required: false, type: .string), - AWSShapeMember(label: "MasterUserPassword", required: false, type: .string), - AWSShapeMember(label: "Iops", required: false, type: .integer), - AWSShapeMember(label: "DBSecurityGroups", required: false, type: .structure), - AWSShapeMember(label: "CharacterSetName", required: false, type: .string), - AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), - AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), - AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), - AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), - AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "PromotionTier", required: false, type: .integer), - AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), - AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), - AWSShapeMember(label: "DomainIAMRoleName", required: false, type: .string), - AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), - AWSShapeMember(label: "DBInstanceClass", required: true, type: .string), - AWSShapeMember(label: "Domain", required: false, type: .string), - AWSShapeMember(label: "KmsKeyId", required: false, type: .string), - AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "Timezone", required: false, type: .string), - AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), - AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), - AWSShapeMember(label: "StorageType", required: false, type: .string), - AWSShapeMember(label: "LicenseModel", required: false, type: .string), - AWSShapeMember(label: "TdeCredentialArn", required: false, type: .string), - AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string), - AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), - AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), - AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "OptionGroupName", required: false, type: .string), - AWSShapeMember(label: "MasterUsername", required: false, type: .string), - AWSShapeMember(label: "MonitoringRoleArn", required: false, type: .string), - AWSShapeMember(label: "Engine", required: true, type: .string), - AWSShapeMember(label: "MonitoringInterval", required: false, type: .integer), - AWSShapeMember(label: "StorageEncrypted", required: false, type: .boolean), - AWSShapeMember(label: "Port", required: false, type: .integer), - AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) + public struct DescribeEngineDefaultClusterParametersMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroupFamily", required: true, type: .string), + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Marker", required: false, type: .string) ] - /// The meaning of this parameter differs according to the database engine you use. Type: String MySQL The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Constraints: Must contain 1 to 64 alphanumeric characters Cannot be a word reserved by the specified database engine MariaDB The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Constraints: Must contain 1 to 64 alphanumeric characters Cannot be a word reserved by the specified database engine PostgreSQL The name of the database to create when the DB instance is created. If this parameter is not specified, the default "postgres" database is created in the DB instance. Constraints: Must contain 1 to 63 alphanumeric characters Must begin with a letter or an underscore. Subsequent characters can be letters, underscores, or digits (0-9). Cannot be a word reserved by the specified database engine Oracle The Oracle System ID (SID) of the created DB instance. If you specify null, the default value ORCL is used. You can't specify the string NULL, or any other reserved word, for DBName. Default: ORCL Constraints: Cannot be longer than 8 characters SQL Server Not applicable. Must be null. Amazon Aurora The name of the database to create when the primary instance of the DB cluster is created. If this parameter is not specified, no database is created in the DB instance. Constraints: Must contain 1 to 64 alphanumeric characters Cannot be a word reserved by the specified database engine - public let dBName: String? - /// The password for the given ARN from the Key Store in order to access the device. - public let tdeCredentialPassword: String? - /// The password for the master database user. Can be any printable ASCII character except "/", """, or "@". Amazon Aurora Not applicable. You specify the password for the master database user when you create your DB cluster. MariaDB Constraints: Must contain from 8 to 41 characters. Microsoft SQL Server Constraints: Must contain from 8 to 128 characters. MySQL Constraints: Must contain from 8 to 41 characters. Oracle Constraints: Must contain from 8 to 30 characters. PostgreSQL Constraints: Must contain from 8 to 128 characters. - public let masterUserPassword: String? - /// The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. Constraints: Must be a multiple between 3 and 10 of the storage amount for the DB instance. Must also be an integer multiple of 1000. For example, if the size of your DB instance is 500 GB, then your Iops value can be 2000, 3000, 4000, or 5000. - public let iops: Int32? - /// A list of DB security groups to associate with this DB instance. Default: The default DB security group for the database engine. - public let dBSecurityGroups: DBSecurityGroupNameList? - /// For supported engines, indicates that the DB instance should be associated with the specified CharacterSet. - public let characterSetName: String? - /// The EC2 Availability Zone that the database instance will be created in. For information on regions and Availability Zones, see Regions and Availability Zones. Default: A random, system-chosen Availability Zone in the endpoint's region. Example: us-east-1d Constraint: The AvailabilityZone parameter cannot be specified if the MultiAZ parameter is set to true. The specified Availability Zone must be in the same region as the current endpoint. - public let availabilityZone: String? - /// Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default: true - public let autoMinorVersionUpgrade: Bool? - /// The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups. Default: 1 Constraints: Must be a value from 0 to 35 Cannot be set to 0 if the DB instance is a source to Read Replicas - public let backupRetentionPeriod: Int32? - /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false. You can enable IAM database authentication for the following database engines: For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Default: false - public let enableIAMDatabaseAuthentication: Bool? - /// The version number of the database engine to use. The following are the database engines and major and minor versions that are available with Amazon RDS. Not every database engine is available for every AWS region. Amazon Aurora Version 5.6 (available in these AWS regions: ap-northeast-1, ap-northeast-2, ap-south-1, ap-southeast-2, eu-west-1, us-east-1, us-east-2, us-west-2): 5.6.10a MariaDB 10.1.19 (supported in all AWS regions) 10.1.14 (supported in all regions except us-east-2) 10.0.28 (supported in all AWS regions) 10.0.24 (supported in all AWS regions) 10.0.17 (supported in all regions except us-east-2, ca-central-1, eu-west-2) Microsoft SQL Server 2016 13.00.4422.0.v1 (supported for all editions, and all AWS regions) 13.00.2164.0.v1 (supported for all editions, and all AWS regions) Microsoft SQL Server 2014 12.00.5546.0.v1 (supported for all editions, and all AWS regions) 12.00.5000.0.v1 (supported for all editions, and all AWS regions) 12.00.4422.0.v1 (supported for all editions except Enterprise Edition, and all AWS regions except ca-central-1 and eu-west-2) Microsoft SQL Server 2012 11.00.6594.0.v1 (supported for all editions, and all AWS regions) 11.00.6020.0.v1 (supported for all editions, and all AWS regions) 11.00.5058.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2) 11.00.2100.60.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2) Microsoft SQL Server 2008 R2 10.50.6529.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2) 10.50.6000.34.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2) 10.50.2789.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2) MySQL 5.7.17 (supported in all AWS regions) 5.7.16 (supported in all AWS regions) 5.7.11 (supported in all AWS regions) 5.7.10 (supported in all regions except us-east-2, ca-central-1, eu-west-2) 5.6.35 (supported in all AWS regions) 5.6.34 (supported in all AWS regions) 5.6.29 (supported in all AWS regions) 5.6.27 (supported in all regions except us-east-2, ca-central-1, eu-west-2) 5.6.23 (supported in all regions except us-east-2, ap-south-1, ca-central-1, eu-west-2) 5.6.22 (supported in all regions except us-east-2, ap-south-1, ap-northeast-2, ca-central-1, eu-west-2) 5.6.21b (supported in all regions except us-east-2, ap-south-1, ap-northeast-2, ca-central-1, eu-west-2) 5.6.21 (supported in all regions except us-east-2, ap-south-1, ap-northeast-2, ca-central-1, eu-west-2) 5.6.19b (supported in all regions except us-east-2, ap-south-1, ap-northeast-2, ca-central-1, eu-west-2) 5.6.19a (supported in all regions except us-east-2, ap-south-1, ap-northeast-2, ca-central-1, eu-west-2) 5.5.54 (supported in all AWS regions) 5.5.53 (supported in all AWS regions) 5.5.46 (supported in all AWS regions) Oracle 12c 12.1.0.2.v8 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v7 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v6 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v5 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v4 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v3 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v2 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v1 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) Oracle 11g 11.2.0.4.v12 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v11 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v10 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v9 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v8 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v7 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v6 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v5 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v4 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v3 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v1 (supported for EE, SE1, and SE, in all AWS regions) PostgreSQL Version 9.6.x: 9.6.1 | 9.6.2 Version 9.5.x: 9.5.6 | 9.5.4 | 9.5.2 Version 9.4.x: 9.4.11 | 9.4.9 | 9.4.7 Version 9.3.x: 9.3.16 | 9.3.14 | 9.3.12 - public let engineVersion: String? - /// A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster. Default: 1 Valid Values: 0 - 15 - public let promotionTier: Int32? - /// The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). For more information, see DB Instance Maintenance. Format: ddd:hh24:mi-ddd:hh24:mi Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun Constraints: Minimum 30-minute window. - public let preferredMaintenanceWindow: String? - /// The identifier of the DB cluster that the instance will belong to. For information on creating a DB cluster, see CreateDBCluster. Type: String - public let dBClusterIdentifier: String? - /// Specify the name of the IAM role to be used when making API calls to the Directory Service. - public let domainIAMRoleName: String? - /// True to copy all tags from the DB instance to snapshots of the DB instance; otherwise false. The default is false. - public let copyTagsToSnapshot: Bool? - /// The compute and memory capacity of the DB instance. Note that not all instance classes are available in all regions for all DB engines. Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large - public let dBInstanceClass: String - /// Specify the Active Directory Domain to create the instance in. - public let domain: String? - /// The KMS key identifier for an encrypted DB instance. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, then you can use the KMS key alias instead of the ARN for the KM encryption key. If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region. - public let kmsKeyId: String? - /// Specifies if the DB instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the MultiAZ parameter is set to true. - public let multiAZ: Bool? - public let tags: TagList? - /// The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server. - public let timezone: String? - /// A list of EC2 VPC security groups to associate with this DB instance. Default: The default EC2 VPC security group for the DB subnet group's VPC. - public let vpcSecurityGroupIds: VpcSecurityGroupIdList? - /// The amount of storage (in gigabytes) to be initially allocated for the database instance. Type: Integer Amazon Aurora Not applicable. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume. MySQL Constraints: Must be an integer from 5 to 6144. MariaDB Constraints: Must be an integer from 5 to 6144. PostgreSQL Constraints: Must be an integer from 5 to 6144. Oracle Constraints: Must be an integer from 10 to 6144. SQL Server Constraints: Must be an integer from 200 to 4096 (Standard Edition and Enterprise Edition) or from 20 to 4096 (Express Edition and Web Edition) - public let allocatedStorage: Int32? - /// Specifies the storage type to be associated with the DB instance. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified; otherwise standard - public let storageType: String? - /// License model information for this DB instance. Valid values: license-included | bring-your-own-license | general-public-license - public let licenseModel: String? - /// The ARN from the Key Store with which to associate the instance for TDE encryption. - public let tdeCredentialArn: String? - /// The name of the DB parameter group to associate with this DB instance. If this argument is omitted, the default DBParameterGroup for the specified engine will be used. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBParameterGroupName: String? - /// Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case. Default VPC: true VPC: false If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private. - public let publiclyAccessible: Bool? - /// The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. For more information, see DB Instance Backups. Default: A 30-minute window selected at random from an 8-hour block of time per region. To see the time blocks available, see Adjusting the Preferred DB Instance Maintenance Window. Constraints: Must be in the format hh24:mi-hh24:mi. Times should be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. - public let preferredBackupWindow: String? - /// A DB subnet group to associate with this DB instance. If there is no DB subnet group, then it is a non-VPC DB instance. - public let dBSubnetGroupName: String? - /// Indicates that the DB instance should be associated with the specified option group. Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance - public let optionGroupName: String? - /// The name for the master database user. Amazon Aurora Not applicable. You specify the name for the master database user when you create your DB cluster. MariaDB Constraints: Must be 1 to 16 alphanumeric characters. Cannot be a reserved word for the chosen database engine. Microsoft SQL Server Constraints: Must be 1 to 128 alphanumeric characters. First character must be a letter. Cannot be a reserved word for the chosen database engine. MySQL Constraints: Must be 1 to 16 alphanumeric characters. First character must be a letter. Cannot be a reserved word for the chosen database engine. Oracle Constraints: Must be 1 to 30 alphanumeric characters. First character must be a letter. Cannot be a reserved word for the chosen database engine. PostgreSQL Constraints: Must be 1 to 63 alphanumeric characters. First character must be a letter. Cannot be a reserved word for the chosen database engine. - public let masterUsername: String? - /// The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to Setting Up and Enabling Enhanced Monitoring. If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value. - public let monitoringRoleArn: String? - /// The name of the database engine to be used for this instance. Not every database engine is available for every AWS region. Valid Values: aurora mariadb mysql oracle-ee oracle-se2 oracle-se1 oracle-se postgres sqlserver-ee sqlserver-se sqlserver-ex sqlserver-web - public let engine: String - /// The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0. Valid Values: 0, 1, 5, 10, 15, 30, 60 - public let monitoringInterval: Int32? - /// Specifies whether the DB instance is encrypted. Default: false - public let storageEncrypted: Bool? - /// The port number on which the database accepts connections. MySQL Default: 3306 Valid Values: 1150-65535 Type: Integer MariaDB Default: 3306 Valid Values: 1150-65535 Type: Integer PostgreSQL Default: 5432 Valid Values: 1150-65535 Type: Integer Oracle Default: 1521 Valid Values: 1150-65535 SQL Server Default: 1433 Valid Values: 1150-65535 except for 1434, 3389, 47001, 49152, and 49152 through 49156. Amazon Aurora Default: 3306 Valid Values: 1150-65535 Type: Integer - public let port: Int32? - /// The DB instance identifier. This parameter is stored as a lowercase string. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens (1 to 15 for SQL Server). First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: mydbinstance - public let dBInstanceIdentifier: String + /// The name of the DB cluster parameter group family to return engine parameter information for. + public let dBParameterGroupFamily: String + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// This parameter is not currently supported. + public let filters: FilterList? + /// An optional pagination token provided by a previous DescribeEngineDefaultClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? - public init(dBName: String? = nil, tdeCredentialPassword: String? = nil, masterUserPassword: String? = nil, iops: Int32? = nil, dBSecurityGroups: DBSecurityGroupNameList? = nil, characterSetName: String? = nil, availabilityZone: String? = nil, autoMinorVersionUpgrade: Bool? = nil, backupRetentionPeriod: Int32? = nil, enableIAMDatabaseAuthentication: Bool? = nil, engineVersion: String? = nil, promotionTier: Int32? = nil, preferredMaintenanceWindow: String? = nil, dBClusterIdentifier: String? = nil, domainIAMRoleName: String? = nil, copyTagsToSnapshot: Bool? = nil, dBInstanceClass: String, domain: String? = nil, kmsKeyId: String? = nil, multiAZ: Bool? = nil, tags: TagList? = nil, timezone: String? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, allocatedStorage: Int32? = nil, storageType: String? = nil, licenseModel: String? = nil, tdeCredentialArn: String? = nil, dBParameterGroupName: String? = nil, publiclyAccessible: Bool? = nil, preferredBackupWindow: String? = nil, dBSubnetGroupName: String? = nil, optionGroupName: String? = nil, masterUsername: String? = nil, monitoringRoleArn: String? = nil, engine: String, monitoringInterval: Int32? = nil, storageEncrypted: Bool? = nil, port: Int32? = nil, dBInstanceIdentifier: String) { - self.dBName = dBName - self.tdeCredentialPassword = tdeCredentialPassword - self.masterUserPassword = masterUserPassword - self.iops = iops - self.dBSecurityGroups = dBSecurityGroups - self.characterSetName = characterSetName - self.availabilityZone = availabilityZone - self.autoMinorVersionUpgrade = autoMinorVersionUpgrade - self.backupRetentionPeriod = backupRetentionPeriod - self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication - self.engineVersion = engineVersion - self.promotionTier = promotionTier - self.preferredMaintenanceWindow = preferredMaintenanceWindow - self.dBClusterIdentifier = dBClusterIdentifier - self.domainIAMRoleName = domainIAMRoleName - self.copyTagsToSnapshot = copyTagsToSnapshot - self.dBInstanceClass = dBInstanceClass - self.domain = domain - self.kmsKeyId = kmsKeyId - self.multiAZ = multiAZ - self.tags = tags - self.timezone = timezone - self.vpcSecurityGroupIds = vpcSecurityGroupIds - self.allocatedStorage = allocatedStorage - self.storageType = storageType - self.licenseModel = licenseModel - self.tdeCredentialArn = tdeCredentialArn - self.dBParameterGroupName = dBParameterGroupName - self.publiclyAccessible = publiclyAccessible - self.preferredBackupWindow = preferredBackupWindow - self.dBSubnetGroupName = dBSubnetGroupName - self.optionGroupName = optionGroupName - self.masterUsername = masterUsername - self.monitoringRoleArn = monitoringRoleArn - self.engine = engine - self.monitoringInterval = monitoringInterval - self.storageEncrypted = storageEncrypted - self.port = port - self.dBInstanceIdentifier = dBInstanceIdentifier + public init(dBParameterGroupFamily: String, maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil) { + self.dBParameterGroupFamily = dBParameterGroupFamily + self.maxRecords = maxRecords + self.filters = filters + self.marker = marker } private enum CodingKeys: String, CodingKey { - case dBName = "DBName" - case tdeCredentialPassword = "TdeCredentialPassword" - case masterUserPassword = "MasterUserPassword" - case iops = "Iops" - case dBSecurityGroups = "DBSecurityGroups" - case characterSetName = "CharacterSetName" - case availabilityZone = "AvailabilityZone" - case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" - case backupRetentionPeriod = "BackupRetentionPeriod" - case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" - case engineVersion = "EngineVersion" - case promotionTier = "PromotionTier" - case preferredMaintenanceWindow = "PreferredMaintenanceWindow" - case dBClusterIdentifier = "DBClusterIdentifier" - case domainIAMRoleName = "DomainIAMRoleName" - case copyTagsToSnapshot = "CopyTagsToSnapshot" - case dBInstanceClass = "DBInstanceClass" - case domain = "Domain" - case kmsKeyId = "KmsKeyId" - case multiAZ = "MultiAZ" - case tags = "Tags" - case timezone = "Timezone" - case vpcSecurityGroupIds = "VpcSecurityGroupIds" - case allocatedStorage = "AllocatedStorage" - case storageType = "StorageType" - case licenseModel = "LicenseModel" - case tdeCredentialArn = "TdeCredentialArn" - case dBParameterGroupName = "DBParameterGroupName" - case publiclyAccessible = "PubliclyAccessible" - case preferredBackupWindow = "PreferredBackupWindow" - case dBSubnetGroupName = "DBSubnetGroupName" - case optionGroupName = "OptionGroupName" - case masterUsername = "MasterUsername" - case monitoringRoleArn = "MonitoringRoleArn" - case engine = "Engine" - case monitoringInterval = "MonitoringInterval" - case storageEncrypted = "StorageEncrypted" - case port = "Port" - case dBInstanceIdentifier = "DBInstanceIdentifier" + case dBParameterGroupFamily = "DBParameterGroupFamily" + case maxRecords = "MaxRecords" + case filters = "Filters" + case marker = "Marker" } } - public struct ApplyPendingMaintenanceActionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourceIdentifier", required: true, type: .string), - AWSShapeMember(label: "OptInType", required: true, type: .string), - AWSShapeMember(label: "ApplyAction", required: true, type: .string) + public struct DBEngineVersion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "SupportedCharacterSets", required: false, type: .structure), + AWSShapeMember(label: "DefaultCharacterSet", required: false, type: .structure), + AWSShapeMember(label: "Engine", required: false, type: .string), + AWSShapeMember(label: "SupportedTimezones", required: false, type: .structure), + AWSShapeMember(label: "DBParameterGroupFamily", required: false, type: .string), + AWSShapeMember(label: "ValidUpgradeTarget", required: false, type: .structure), + AWSShapeMember(label: "DBEngineDescription", required: false, type: .string), + AWSShapeMember(label: "DBEngineVersionDescription", required: false, type: .string) ] - /// The RDS Amazon Resource Name (ARN) of the resource that the pending maintenance action applies to. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). - public let resourceIdentifier: String - /// A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type immediate cannot be undone. Valid values: immediate - Apply the maintenance action immediately. next-maintenance - Apply the maintenance action during the next maintenance window for the resource. undo-opt-in - Cancel any existing next-maintenance opt-in requests. - public let optInType: String - /// The pending maintenance action to apply to this resource. Valid values: system-update, db-upgrade - public let applyAction: String + /// The version number of the database engine. + public let engineVersion: String? + /// A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance action. + public let supportedCharacterSets: SupportedCharacterSetsList? + /// The default character set for new instances of this engine version, if the CharacterSetName parameter of the CreateDBInstance API is not specified. + public let defaultCharacterSet: CharacterSet? + /// The name of the database engine. + public let engine: String? + /// A list of the time zones supported by this engine for the Timezone parameter of the CreateDBInstance action. + public let supportedTimezones: SupportedTimezonesList? + /// The name of the DB parameter group family for the database engine. + public let dBParameterGroupFamily: String? + /// A list of engine versions that this database engine version can be upgraded to. + public let validUpgradeTarget: ValidUpgradeTargetList? + /// The description of the database engine. + public let dBEngineDescription: String? + /// The description of the database engine version. + public let dBEngineVersionDescription: String? - public init(resourceIdentifier: String, optInType: String, applyAction: String) { - self.resourceIdentifier = resourceIdentifier - self.optInType = optInType - self.applyAction = applyAction + public init(engineVersion: String? = nil, supportedCharacterSets: SupportedCharacterSetsList? = nil, defaultCharacterSet: CharacterSet? = nil, engine: String? = nil, supportedTimezones: SupportedTimezonesList? = nil, dBParameterGroupFamily: String? = nil, validUpgradeTarget: ValidUpgradeTargetList? = nil, dBEngineDescription: String? = nil, dBEngineVersionDescription: String? = nil) { + self.engineVersion = engineVersion + self.supportedCharacterSets = supportedCharacterSets + self.defaultCharacterSet = defaultCharacterSet + self.engine = engine + self.supportedTimezones = supportedTimezones + self.dBParameterGroupFamily = dBParameterGroupFamily + self.validUpgradeTarget = validUpgradeTarget + self.dBEngineDescription = dBEngineDescription + self.dBEngineVersionDescription = dBEngineVersionDescription } private enum CodingKeys: String, CodingKey { - case resourceIdentifier = "ResourceIdentifier" - case optInType = "OptInType" - case applyAction = "ApplyAction" + case engineVersion = "EngineVersion" + case supportedCharacterSets = "SupportedCharacterSets" + case defaultCharacterSet = "DefaultCharacterSet" + case engine = "Engine" + case supportedTimezones = "SupportedTimezones" + case dBParameterGroupFamily = "DBParameterGroupFamily" + case validUpgradeTarget = "ValidUpgradeTarget" + case dBEngineDescription = "DBEngineDescription" + case dBEngineVersionDescription = "DBEngineVersionDescription" } } - public struct TagList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Tag", required: false, type: .list) + public struct OptionGroupMembershipList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionGroupMembership", required: false, type: .list) ] - public let tag: [Tag]? + public let optionGroupMembership: [OptionGroupMembership]? - public init(tag: [Tag]? = nil) { - self.tag = tag + public init(optionGroupMembership: [OptionGroupMembership]? = nil) { + self.optionGroupMembership = optionGroupMembership } private enum CodingKeys: String, CodingKey { - case tag = "Tag" + case optionGroupMembership = "OptionGroupMembership" } } - public struct CreateDBClusterParameterGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterParameterGroup", required: false, type: .structure) + public struct ReadReplicaDBClusterIdentifierList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReadReplicaDBClusterIdentifier", required: false, type: .list) ] - public let dBClusterParameterGroup: DBClusterParameterGroup? + public let readReplicaDBClusterIdentifier: [String]? - public init(dBClusterParameterGroup: DBClusterParameterGroup? = nil) { - self.dBClusterParameterGroup = dBClusterParameterGroup + public init(readReplicaDBClusterIdentifier: [String]? = nil) { + self.readReplicaDBClusterIdentifier = readReplicaDBClusterIdentifier } private enum CodingKeys: String, CodingKey { - case dBClusterParameterGroup = "DBClusterParameterGroup" + case readReplicaDBClusterIdentifier = "ReadReplicaDBClusterIdentifier" } } - public struct ModifyDBSnapshotAttributeMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AttributeName", required: true, type: .string), - AWSShapeMember(label: "ValuesToAdd", required: false, type: .structure), - AWSShapeMember(label: "ValuesToRemove", required: false, type: .structure), - AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string) + public struct DescribeDBClusterSnapshotAttributesMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: true, type: .string) ] - /// The name of the DB snapshot attribute to modify. To manage authorization for other AWS accounts to copy or restore a manual DB snapshot, set this value to restore. - public let attributeName: String - /// A list of DB snapshot attributes to add to the attribute specified by AttributeName. To authorize other AWS accounts to copy or restore a manual snapshot, set this list to include one or more AWS account IDs, or all to make the manual DB snapshot restorable by any AWS account. Do not add the all value for any manual DB snapshots that contain private information that you don't want available to all AWS accounts. - public let valuesToAdd: AttributeValueList? - /// A list of DB snapshot attributes to remove from the attribute specified by AttributeName. To remove authorization for other AWS accounts to copy or restore a manual snapshot, set this list to include one or more AWS account identifiers, or all to remove authorization for any AWS account to copy or restore the DB snapshot. If you specify all, an AWS account whose account ID is explicitly added to the restore attribute can still copy or restore the manual DB snapshot. - public let valuesToRemove: AttributeValueList? - /// The identifier for the DB snapshot to modify the attributes for. - public let dBSnapshotIdentifier: String + /// The identifier for the DB cluster snapshot to describe the attributes for. + public let dBClusterSnapshotIdentifier: String - public init(attributeName: String, valuesToAdd: AttributeValueList? = nil, valuesToRemove: AttributeValueList? = nil, dBSnapshotIdentifier: String) { - self.attributeName = attributeName - self.valuesToAdd = valuesToAdd - self.valuesToRemove = valuesToRemove - self.dBSnapshotIdentifier = dBSnapshotIdentifier + public init(dBClusterSnapshotIdentifier: String) { + self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier } private enum CodingKeys: String, CodingKey { - case attributeName = "AttributeName" - case valuesToAdd = "ValuesToAdd" - case valuesToRemove = "ValuesToRemove" - case dBSnapshotIdentifier = "DBSnapshotIdentifier" + case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" } } - public struct RestoreDBClusterToPointInTimeMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "KmsKeyId", required: false, type: .string), - AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string), - AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "OptionGroupName", required: false, type: .string), - AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), - AWSShapeMember(label: "RestoreToTime", required: false, type: .timestamp), - AWSShapeMember(label: "UseLatestRestorableTime", required: false, type: .boolean), - AWSShapeMember(label: "RestoreType", required: false, type: .string), - AWSShapeMember(label: "SourceDBClusterIdentifier", required: true, type: .string), - AWSShapeMember(label: "Port", required: false, type: .integer) + public struct DBSecurityGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBSecurityGroupDescription", required: false, type: .string), + AWSShapeMember(label: "EC2SecurityGroups", required: false, type: .structure), + AWSShapeMember(label: "DBSecurityGroupArn", required: false, type: .string), + AWSShapeMember(label: "VpcId", required: false, type: .string), + AWSShapeMember(label: "IPRanges", required: false, type: .structure), + AWSShapeMember(label: "OwnerId", required: false, type: .string), + AWSShapeMember(label: "DBSecurityGroupName", required: false, type: .string) ] - /// The KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. You can restore to a new DB cluster and encrypt the new DB cluster with a KMS key that is different than the KMS key used to encrypt the source DB cluster. The new DB cluster will be encrypted with the KMS key identified by the KmsKeyId parameter. If you do not specify a value for the KmsKeyId parameter, then the following will occur: If the DB cluster is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the source DB cluster. If the DB cluster is not encrypted, then the restored DB cluster is not encrypted. If DBClusterIdentifier refers to a DB cluster that is not encrypted, then the restore request is rejected. - public let kmsKeyId: String? - /// The name of the new DB cluster to be created. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBClusterIdentifier: String - /// The DB subnet group name to use for the new DB cluster. Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup - public let dBSubnetGroupName: String? - /// The name of the option group for the new DB cluster. - public let optionGroupName: String? - /// A Boolean value that is true to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false - public let enableIAMDatabaseAuthentication: Bool? - public let tags: TagList? - /// A list of VPC security groups that the new DB cluster belongs to. - public let vpcSecurityGroupIds: VpcSecurityGroupIdList? - /// The date and time to restore the DB cluster to. Valid Values: Value must be a time in Universal Coordinated Time (UTC) format Constraints: Must be before the latest restorable time for the DB instance Must be specified if UseLatestRestorableTime parameter is not provided Cannot be specified if UseLatestRestorableTime parameter is true Cannot be specified if RestoreType parameter is copy-on-write Example: 2015-03-07T23:45:00Z - public let restoreToTime: TimeStamp? - /// A value that is set to true to restore the DB cluster to the latest restorable backup time, and false otherwise. Default: false Constraints: Cannot be specified if RestoreToTime parameter is provided. - public let useLatestRestorableTime: Bool? - /// The type of restore to be performed. You can specify one of the following values: full-copy - The new DB cluster is restored as a full copy of the source DB cluster. copy-on-write - The new DB cluster is restored as a clone of the source DB cluster. Constraints: You cannot specify copy-on-write if the engine version of the source DB cluster is earlier than 1.11. If you don't specify a RestoreType value, then the new DB cluster is restored as a full copy of the source DB cluster. - public let restoreType: String? - /// The identifier of the source DB cluster from which to restore. Constraints: Must be the identifier of an existing database instance Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let sourceDBClusterIdentifier: String - /// The port number on which the new DB cluster accepts connections. Constraints: Value must be 1150-65535 Default: The same port as the original DB cluster. - public let port: Int32? + /// Provides the description of the DB security group. + public let dBSecurityGroupDescription: String? + /// Contains a list of EC2SecurityGroup elements. + public let eC2SecurityGroups: EC2SecurityGroupList? + /// The Amazon Resource Name (ARN) for the DB security group. + public let dBSecurityGroupArn: String? + /// Provides the VpcId of the DB security group. + public let vpcId: String? + /// Contains a list of IPRange elements. + public let iPRanges: IPRangeList? + /// Provides the AWS ID of the owner of a specific DB security group. + public let ownerId: String? + /// Specifies the name of the DB security group. + public let dBSecurityGroupName: String? - public init(kmsKeyId: String? = nil, dBClusterIdentifier: String, dBSubnetGroupName: String? = nil, optionGroupName: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, tags: TagList? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, restoreToTime: TimeStamp? = nil, useLatestRestorableTime: Bool? = nil, restoreType: String? = nil, sourceDBClusterIdentifier: String, port: Int32? = nil) { - self.kmsKeyId = kmsKeyId - self.dBClusterIdentifier = dBClusterIdentifier - self.dBSubnetGroupName = dBSubnetGroupName - self.optionGroupName = optionGroupName - self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication - self.tags = tags - self.vpcSecurityGroupIds = vpcSecurityGroupIds - self.restoreToTime = restoreToTime - self.useLatestRestorableTime = useLatestRestorableTime - self.restoreType = restoreType - self.sourceDBClusterIdentifier = sourceDBClusterIdentifier - self.port = port + public init(dBSecurityGroupDescription: String? = nil, eC2SecurityGroups: EC2SecurityGroupList? = nil, dBSecurityGroupArn: String? = nil, vpcId: String? = nil, iPRanges: IPRangeList? = nil, ownerId: String? = nil, dBSecurityGroupName: String? = nil) { + self.dBSecurityGroupDescription = dBSecurityGroupDescription + self.eC2SecurityGroups = eC2SecurityGroups + self.dBSecurityGroupArn = dBSecurityGroupArn + self.vpcId = vpcId + self.iPRanges = iPRanges + self.ownerId = ownerId + self.dBSecurityGroupName = dBSecurityGroupName } private enum CodingKeys: String, CodingKey { - case kmsKeyId = "KmsKeyId" - case dBClusterIdentifier = "DBClusterIdentifier" - case dBSubnetGroupName = "DBSubnetGroupName" - case optionGroupName = "OptionGroupName" - case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" - case tags = "Tags" - case vpcSecurityGroupIds = "VpcSecurityGroupIds" - case restoreToTime = "RestoreToTime" - case useLatestRestorableTime = "UseLatestRestorableTime" - case restoreType = "RestoreType" - case sourceDBClusterIdentifier = "SourceDBClusterIdentifier" - case port = "Port" + case dBSecurityGroupDescription = "DBSecurityGroupDescription" + case eC2SecurityGroups = "EC2SecurityGroups" + case dBSecurityGroupArn = "DBSecurityGroupArn" + case vpcId = "VpcId" + case iPRanges = "IPRanges" + case ownerId = "OwnerId" + case dBSecurityGroupName = "DBSecurityGroupName" } } - public struct AvailabilityZoneList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AvailabilityZone", required: false, type: .list) + public struct DescribeEventSubscriptionsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "SubscriptionName", required: false, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string) ] - public let availabilityZone: [AvailabilityZone]? + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// This parameter is not currently supported. + public let filters: FilterList? + /// The name of the RDS event notification subscription you want to describe. + public let subscriptionName: String? + /// An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords . + public let marker: String? - public init(availabilityZone: [AvailabilityZone]? = nil) { - self.availabilityZone = availabilityZone + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, subscriptionName: String? = nil, marker: String? = nil) { + self.maxRecords = maxRecords + self.filters = filters + self.subscriptionName = subscriptionName + self.marker = marker } private enum CodingKeys: String, CodingKey { - case availabilityZone = "AvailabilityZone" + case maxRecords = "MaxRecords" + case filters = "Filters" + case subscriptionName = "SubscriptionName" + case marker = "Marker" } } - - public struct DBCluster: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterArn", required: false, type: .string), - AWSShapeMember(label: "VpcSecurityGroups", required: false, type: .structure), - AWSShapeMember(label: "ReadReplicaIdentifiers", required: false, type: .structure), - AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), - AWSShapeMember(label: "HostedZoneId", required: false, type: .string), - AWSShapeMember(label: "CharacterSetName", required: false, type: .string), - AWSShapeMember(label: "Status", required: false, type: .string), - AWSShapeMember(label: "LatestRestorableTime", required: false, type: .timestamp), - AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), - AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), - AWSShapeMember(label: "DBClusterParameterGroup", required: false, type: .string), - AWSShapeMember(label: "ReplicationSourceIdentifier", required: false, type: .string), - AWSShapeMember(label: "PercentProgress", required: false, type: .string), - AWSShapeMember(label: "ReaderEndpoint", required: false, type: .string), - AWSShapeMember(label: "DbClusterResourceId", required: false, type: .string), - AWSShapeMember(label: "Endpoint", required: false, type: .string), - AWSShapeMember(label: "KmsKeyId", required: false, type: .string), - AWSShapeMember(label: "AvailabilityZones", required: false, type: .structure), - AWSShapeMember(label: "DBClusterOptionGroupMemberships", required: false, type: .structure), - AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "DBClusterMembers", required: false, type: .structure), - AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), - AWSShapeMember(label: "EarliestRestorableTime", required: false, type: .timestamp), - AWSShapeMember(label: "ClusterCreateTime", required: false, type: .timestamp), - AWSShapeMember(label: "CloneGroupId", required: false, type: .string), + + public struct PromoteReadReplicaMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), - AWSShapeMember(label: "IAMDatabaseAuthenticationEnabled", required: false, type: .boolean), - AWSShapeMember(label: "MasterUsername", required: false, type: .string), - AWSShapeMember(label: "DatabaseName", required: false, type: .string), - AWSShapeMember(label: "Engine", required: false, type: .string), - AWSShapeMember(label: "DBSubnetGroup", required: false, type: .string), - AWSShapeMember(label: "StorageEncrypted", required: false, type: .boolean), - AWSShapeMember(label: "AssociatedRoles", required: false, type: .structure), - AWSShapeMember(label: "Port", required: false, type: .integer) + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) ] - /// The Amazon Resource Name (ARN) for the DB cluster. - public let dBClusterArn: String? - /// Provides a list of VPC security groups that the DB cluster belongs to. - public let vpcSecurityGroups: VpcSecurityGroupMembershipList? - /// Contains one or more identifiers of the Read Replicas associated with this DB cluster. - public let readReplicaIdentifiers: ReadReplicaIdentifierList? - /// Specifies the number of days for which automatic DB snapshots are retained. + /// The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups. Default: 1 Constraints: Must be a value from 0 to 8 public let backupRetentionPeriod: Int32? - /// Specifies the ID that Amazon Route 53 assigns when you create a hosted zone. - public let hostedZoneId: String? - /// If present, specifies the name of the character set that this cluster is associated with. - public let characterSetName: String? - /// Specifies the current state of this DB cluster. - public let status: String? - /// Specifies the latest time to which a database can be restored with point-in-time restore. - public let latestRestorableTime: TimeStamp? - /// Indicates the database engine version. - public let engineVersion: String? - /// Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster. - public let dBClusterIdentifier: String? - /// Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). - public let preferredMaintenanceWindow: String? - /// Specifies the name of the DB cluster parameter group for the DB cluster. - public let dBClusterParameterGroup: String? - /// Contains the identifier of the source DB cluster if this DB cluster is a Read Replica. - public let replicationSourceIdentifier: String? - /// Specifies the progress of the operation as a percentage. - public let percentProgress: String? - /// The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster. If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection will be dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint. - public let readerEndpoint: String? - /// The region-unique, immutable identifier for the DB cluster. This identifier is found in AWS CloudTrail log entries whenever the KMS key for the DB cluster is accessed. - public let dbClusterResourceId: String? - /// Specifies the connection endpoint for the primary instance of the DB cluster. - public let endpoint: String? - /// If StorageEncrypted is true, the KMS key identifier for the encrypted DB cluster. - public let kmsKeyId: String? - /// Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in. - public let availabilityZones: AvailabilityZones? - /// Provides the list of option group memberships for this DB cluster. - public let dBClusterOptionGroupMemberships: DBClusterOptionGroupMemberships? - /// Specifies whether the DB cluster has instances in multiple Availability Zones. - public let multiAZ: Bool? - /// Provides the list of instances that make up the DB cluster. - public let dBClusterMembers: DBClusterMemberList? - /// For all database engines except Amazon Aurora, AllocatedStorage specifies the allocated storage size in gigabytes (GB). For Aurora, AllocatedStorage always returns 1, because Aurora DB cluster storage size is not fixed, but instead automatically adjusts as needed. - public let allocatedStorage: Int32? - /// Specifies the earliest time to which a database can be restored with point-in-time restore. - public let earliestRestorableTime: TimeStamp? - /// Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC). - public let clusterCreateTime: TimeStamp? - /// Identifies the clone group to which the DB cluster is associated. - public let cloneGroupId: String? - /// Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod. + /// The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Constraints: Must be in the format hh24:mi-hh24:mi. Must be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. public let preferredBackupWindow: String? - /// True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled; otherwise false. - public let iAMDatabaseAuthenticationEnabled: Bool? - /// Contains the master username for the DB cluster. - public let masterUsername: String? - /// Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster. - public let databaseName: String? - /// Provides the name of the database engine to be used for this DB cluster. - public let engine: String? - /// Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group. - public let dBSubnetGroup: String? - /// Specifies whether the DB cluster is encrypted. - public let storageEncrypted: Bool? - /// Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf. - public let associatedRoles: DBClusterRoles? - /// Specifies the port that the database engine is listening on. - public let port: Int32? + /// The DB instance identifier. This value is stored as a lowercase string. Constraints: Must match the identifier of an existing Read Replica DB instance. Example: mydbinstance + public let dBInstanceIdentifier: String - public init(dBClusterArn: String? = nil, vpcSecurityGroups: VpcSecurityGroupMembershipList? = nil, readReplicaIdentifiers: ReadReplicaIdentifierList? = nil, backupRetentionPeriod: Int32? = nil, hostedZoneId: String? = nil, characterSetName: String? = nil, status: String? = nil, latestRestorableTime: TimeStamp? = nil, engineVersion: String? = nil, dBClusterIdentifier: String? = nil, preferredMaintenanceWindow: String? = nil, dBClusterParameterGroup: String? = nil, replicationSourceIdentifier: String? = nil, percentProgress: String? = nil, readerEndpoint: String? = nil, dbClusterResourceId: String? = nil, endpoint: String? = nil, kmsKeyId: String? = nil, availabilityZones: AvailabilityZones? = nil, dBClusterOptionGroupMemberships: DBClusterOptionGroupMemberships? = nil, multiAZ: Bool? = nil, dBClusterMembers: DBClusterMemberList? = nil, allocatedStorage: Int32? = nil, earliestRestorableTime: TimeStamp? = nil, clusterCreateTime: TimeStamp? = nil, cloneGroupId: String? = nil, preferredBackupWindow: String? = nil, iAMDatabaseAuthenticationEnabled: Bool? = nil, masterUsername: String? = nil, databaseName: String? = nil, engine: String? = nil, dBSubnetGroup: String? = nil, storageEncrypted: Bool? = nil, associatedRoles: DBClusterRoles? = nil, port: Int32? = nil) { - self.dBClusterArn = dBClusterArn - self.vpcSecurityGroups = vpcSecurityGroups - self.readReplicaIdentifiers = readReplicaIdentifiers + public init(backupRetentionPeriod: Int32? = nil, preferredBackupWindow: String? = nil, dBInstanceIdentifier: String) { self.backupRetentionPeriod = backupRetentionPeriod - self.hostedZoneId = hostedZoneId - self.characterSetName = characterSetName - self.status = status - self.latestRestorableTime = latestRestorableTime - self.engineVersion = engineVersion - self.dBClusterIdentifier = dBClusterIdentifier - self.preferredMaintenanceWindow = preferredMaintenanceWindow - self.dBClusterParameterGroup = dBClusterParameterGroup - self.replicationSourceIdentifier = replicationSourceIdentifier - self.percentProgress = percentProgress - self.readerEndpoint = readerEndpoint - self.dbClusterResourceId = dbClusterResourceId - self.endpoint = endpoint - self.kmsKeyId = kmsKeyId - self.availabilityZones = availabilityZones - self.dBClusterOptionGroupMemberships = dBClusterOptionGroupMemberships - self.multiAZ = multiAZ - self.dBClusterMembers = dBClusterMembers - self.allocatedStorage = allocatedStorage - self.earliestRestorableTime = earliestRestorableTime - self.clusterCreateTime = clusterCreateTime - self.cloneGroupId = cloneGroupId self.preferredBackupWindow = preferredBackupWindow - self.iAMDatabaseAuthenticationEnabled = iAMDatabaseAuthenticationEnabled - self.masterUsername = masterUsername - self.databaseName = databaseName - self.engine = engine - self.dBSubnetGroup = dBSubnetGroup - self.storageEncrypted = storageEncrypted - self.associatedRoles = associatedRoles - self.port = port + self.dBInstanceIdentifier = dBInstanceIdentifier } private enum CodingKeys: String, CodingKey { - case dBClusterArn = "DBClusterArn" - case vpcSecurityGroups = "VpcSecurityGroups" - case readReplicaIdentifiers = "ReadReplicaIdentifiers" case backupRetentionPeriod = "BackupRetentionPeriod" - case hostedZoneId = "HostedZoneId" - case characterSetName = "CharacterSetName" - case status = "Status" - case latestRestorableTime = "LatestRestorableTime" - case engineVersion = "EngineVersion" - case dBClusterIdentifier = "DBClusterIdentifier" - case preferredMaintenanceWindow = "PreferredMaintenanceWindow" - case dBClusterParameterGroup = "DBClusterParameterGroup" - case replicationSourceIdentifier = "ReplicationSourceIdentifier" - case percentProgress = "PercentProgress" - case readerEndpoint = "ReaderEndpoint" - case dbClusterResourceId = "DbClusterResourceId" - case endpoint = "Endpoint" - case kmsKeyId = "KmsKeyId" - case availabilityZones = "AvailabilityZones" - case dBClusterOptionGroupMemberships = "DBClusterOptionGroupMemberships" - case multiAZ = "MultiAZ" - case dBClusterMembers = "DBClusterMembers" - case allocatedStorage = "AllocatedStorage" - case earliestRestorableTime = "EarliestRestorableTime" - case clusterCreateTime = "ClusterCreateTime" - case cloneGroupId = "CloneGroupId" case preferredBackupWindow = "PreferredBackupWindow" - case iAMDatabaseAuthenticationEnabled = "IAMDatabaseAuthenticationEnabled" - case masterUsername = "MasterUsername" - case databaseName = "DatabaseName" - case engine = "Engine" - case dBSubnetGroup = "DBSubnetGroup" - case storageEncrypted = "StorageEncrypted" - case associatedRoles = "AssociatedRoles" - case port = "Port" + case dBInstanceIdentifier = "DBInstanceIdentifier" } } - public struct DescribeEventCategoriesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceType", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .structure) + public struct DBClusterRoles: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterRole", required: false, type: .list) ] - /// The type of source that will be generating the events. Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot - public let sourceType: String? - /// This parameter is not currently supported. - public let filters: FilterList? + public let dBClusterRole: [DBClusterRole]? - public init(sourceType: String? = nil, filters: FilterList? = nil) { - self.sourceType = sourceType - self.filters = filters + public init(dBClusterRole: [DBClusterRole]? = nil) { + self.dBClusterRole = dBClusterRole } private enum CodingKeys: String, CodingKey { - case sourceType = "SourceType" - case filters = "Filters" + case dBClusterRole = "DBClusterRole" } } - public struct CreateDBClusterSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterSnapshot", required: false, type: .structure) + public struct StartDBInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .structure) ] - public let dBClusterSnapshot: DBClusterSnapshot? + public let dBInstance: DBInstance? - public init(dBClusterSnapshot: DBClusterSnapshot? = nil) { - self.dBClusterSnapshot = dBClusterSnapshot + public init(dBInstance: DBInstance? = nil) { + self.dBInstance = dBInstance } private enum CodingKeys: String, CodingKey { - case dBClusterSnapshot = "DBClusterSnapshot" + case dBInstance = "DBInstance" } } - public struct ModifyDBClusterSnapshotAttributeResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterSnapshotAttributesResult", required: false, type: .structure) + public struct DBClusterParameterGroupsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "DBClusterParameterGroups", required: false, type: .structure) ] - public let dBClusterSnapshotAttributesResult: DBClusterSnapshotAttributesResult? + /// An optional pagination token provided by a previous DescribeDBClusterParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// A list of DB cluster parameter groups. + public let dBClusterParameterGroups: DBClusterParameterGroupList? - public init(dBClusterSnapshotAttributesResult: DBClusterSnapshotAttributesResult? = nil) { - self.dBClusterSnapshotAttributesResult = dBClusterSnapshotAttributesResult + public init(marker: String? = nil, dBClusterParameterGroups: DBClusterParameterGroupList? = nil) { + self.marker = marker + self.dBClusterParameterGroups = dBClusterParameterGroups } private enum CodingKeys: String, CodingKey { - case dBClusterSnapshotAttributesResult = "DBClusterSnapshotAttributesResult" + case marker = "Marker" + case dBClusterParameterGroups = "DBClusterParameterGroups" } } - public struct DescribeDBLogFilesList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DescribeDBLogFilesDetails", required: false, type: .list) + public struct CopyDBClusterParameterGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceDBClusterParameterGroupIdentifier", required: true, type: .string), + AWSShapeMember(label: "TargetDBClusterParameterGroupDescription", required: true, type: .string), + AWSShapeMember(label: "TargetDBClusterParameterGroupIdentifier", required: true, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .structure) ] - public let describeDBLogFilesDetails: [DescribeDBLogFilesDetails]? + /// The identifier or Amazon Resource Name (ARN) for the source DB cluster parameter group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). Constraints: Must specify a valid DB cluster parameter group. If the source DB cluster parameter group is in the same AWS Region as the copy, specify a valid DB parameter group identifier, for example my-db-cluster-param-group, or a valid ARN. If the source DB parameter group is in a different AWS Region than the copy, specify a valid DB cluster parameter group ARN, for example arn:aws:rds:us-east-1:123456789012:cluster-pg:custom-cluster-group1. + public let sourceDBClusterParameterGroupIdentifier: String + /// A description for the copied DB cluster parameter group. + public let targetDBClusterParameterGroupDescription: String + /// The identifier for the copied DB cluster parameter group. Constraints: Cannot be null, empty, or blank Must contain from 1 to 255 letters, numbers, or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-cluster-param-group1 + public let targetDBClusterParameterGroupIdentifier: String + public let tags: TagList? - public init(describeDBLogFilesDetails: [DescribeDBLogFilesDetails]? = nil) { - self.describeDBLogFilesDetails = describeDBLogFilesDetails + public init(sourceDBClusterParameterGroupIdentifier: String, targetDBClusterParameterGroupDescription: String, targetDBClusterParameterGroupIdentifier: String, tags: TagList? = nil) { + self.sourceDBClusterParameterGroupIdentifier = sourceDBClusterParameterGroupIdentifier + self.targetDBClusterParameterGroupDescription = targetDBClusterParameterGroupDescription + self.targetDBClusterParameterGroupIdentifier = targetDBClusterParameterGroupIdentifier + self.tags = tags } private enum CodingKeys: String, CodingKey { - case describeDBLogFilesDetails = "DescribeDBLogFilesDetails" + case sourceDBClusterParameterGroupIdentifier = "SourceDBClusterParameterGroupIdentifier" + case targetDBClusterParameterGroupDescription = "TargetDBClusterParameterGroupDescription" + case targetDBClusterParameterGroupIdentifier = "TargetDBClusterParameterGroupIdentifier" + case tags = "Tags" } } - public struct AuthorizeDBSecurityGroupIngressResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSecurityGroup", required: false, type: .structure) + public struct ReadReplicaDBInstanceIdentifierList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReadReplicaDBInstanceIdentifier", required: false, type: .list) ] - public let dBSecurityGroup: DBSecurityGroup? + public let readReplicaDBInstanceIdentifier: [String]? - public init(dBSecurityGroup: DBSecurityGroup? = nil) { - self.dBSecurityGroup = dBSecurityGroup + public init(readReplicaDBInstanceIdentifier: [String]? = nil) { + self.readReplicaDBInstanceIdentifier = readReplicaDBInstanceIdentifier } private enum CodingKeys: String, CodingKey { - case dBSecurityGroup = "DBSecurityGroup" + case readReplicaDBInstanceIdentifier = "ReadReplicaDBInstanceIdentifier" } } - public struct ReservedDBInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "ReservedDBInstances", required: false, type: .structure) + public struct CreateDBSubnetGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubnetIds", required: true, type: .structure), + AWSShapeMember(label: "DBSubnetGroupDescription", required: true, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: true, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .structure) ] - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// A list of reserved DB instances. - public let reservedDBInstances: ReservedDBInstanceList? + /// The EC2 Subnet IDs for the DB subnet group. + public let subnetIds: SubnetIdentifierList + /// The description for the DB subnet group. + public let dBSubnetGroupDescription: String + /// The name for the DB subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup + public let dBSubnetGroupName: String + public let tags: TagList? - public init(marker: String? = nil, reservedDBInstances: ReservedDBInstanceList? = nil) { - self.marker = marker - self.reservedDBInstances = reservedDBInstances + public init(subnetIds: SubnetIdentifierList, dBSubnetGroupDescription: String, dBSubnetGroupName: String, tags: TagList? = nil) { + self.subnetIds = subnetIds + self.dBSubnetGroupDescription = dBSubnetGroupDescription + self.dBSubnetGroupName = dBSubnetGroupName + self.tags = tags } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case reservedDBInstances = "ReservedDBInstances" + case subnetIds = "SubnetIds" + case dBSubnetGroupDescription = "DBSubnetGroupDescription" + case dBSubnetGroupName = "DBSubnetGroupName" + case tags = "Tags" } } - public struct DescribeDBClusterParametersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "Source", required: false, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "DBClusterParameterGroupName", required: true, type: .string) + public struct CreateDBParameterGroupResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroup", required: false, type: .structure) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// This parameter is not currently supported. - public let filters: FilterList? - /// A value that indicates to return only parameters for a specific source. Parameter sources can be engine, service, or customer. - public let source: String? - /// An optional pagination token provided by a previous DescribeDBClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// The name of a specific DB cluster parameter group to return parameter details for. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBClusterParameterGroupName: String + public let dBParameterGroup: DBParameterGroup? - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, source: String? = nil, marker: String? = nil, dBClusterParameterGroupName: String) { - self.maxRecords = maxRecords - self.filters = filters - self.source = source - self.marker = marker - self.dBClusterParameterGroupName = dBClusterParameterGroupName + public init(dBParameterGroup: DBParameterGroup? = nil) { + self.dBParameterGroup = dBParameterGroup } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case filters = "Filters" - case source = "Source" - case marker = "Marker" - case dBClusterParameterGroupName = "DBClusterParameterGroupName" + case dBParameterGroup = "DBParameterGroup" } } - public struct DeleteDBParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroupName", required: true, type: .string) + public struct DeleteDBClusterResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBCluster", required: false, type: .structure) ] - /// The name of the DB parameter group. Constraints: Must be the name of an existing DB parameter group You cannot delete a default DB parameter group Cannot be associated with any DB instances - public let dBParameterGroupName: String + public let dBCluster: DBCluster? - public init(dBParameterGroupName: String) { - self.dBParameterGroupName = dBParameterGroupName + public init(dBCluster: DBCluster? = nil) { + self.dBCluster = dBCluster } private enum CodingKeys: String, CodingKey { - case dBParameterGroupName = "DBParameterGroupName" + case dBCluster = "DBCluster" } } - public struct DBSecurityGroupMembership: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Status", required: false, type: .string), - AWSShapeMember(label: "DBSecurityGroupName", required: false, type: .string) + public struct PendingMaintenanceAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AutoAppliedAfterDate", required: false, type: .timestamp), + AWSShapeMember(label: "OptInStatus", required: false, type: .string), + AWSShapeMember(label: "Action", required: false, type: .string), + AWSShapeMember(label: "ForcedApplyDate", required: false, type: .timestamp), + AWSShapeMember(label: "CurrentApplyDate", required: false, type: .timestamp), + AWSShapeMember(label: "Description", required: false, type: .string) ] - /// The status of the DB security group. - public let status: String? - /// The name of the DB security group. - public let dBSecurityGroupName: String? + /// The date of the maintenance window when the action is applied. The maintenance action is applied to the resource during its first maintenance window after this date. If this date is specified, any next-maintenance opt-in requests are ignored. + public let autoAppliedAfterDate: TimeStamp? + /// Indicates the type of opt-in request that has been received for the resource. + public let optInStatus: String? + /// The type of pending maintenance action that is available for the resource. + public let action: String? + /// The date when the maintenance action is automatically applied. The maintenance action is applied to the resource on this date regardless of the maintenance window for the resource. If this date is specified, any immediate opt-in requests are ignored. + public let forcedApplyDate: TimeStamp? + /// The effective date when the pending maintenance action is applied to the resource. This date takes into account opt-in requests received from the ApplyPendingMaintenanceAction API, the AutoAppliedAfterDate, and the ForcedApplyDate. This value is blank if an opt-in request has not been received and nothing has been specified as AutoAppliedAfterDate or ForcedApplyDate. + public let currentApplyDate: TimeStamp? + /// A description providing more detail about the maintenance action. + public let description: String? - public init(status: String? = nil, dBSecurityGroupName: String? = nil) { - self.status = status - self.dBSecurityGroupName = dBSecurityGroupName + public init(autoAppliedAfterDate: TimeStamp? = nil, optInStatus: String? = nil, action: String? = nil, forcedApplyDate: TimeStamp? = nil, currentApplyDate: TimeStamp? = nil, description: String? = nil) { + self.autoAppliedAfterDate = autoAppliedAfterDate + self.optInStatus = optInStatus + self.action = action + self.forcedApplyDate = forcedApplyDate + self.currentApplyDate = currentApplyDate + self.description = description } private enum CodingKeys: String, CodingKey { - case status = "Status" - case dBSecurityGroupName = "DBSecurityGroupName" + case autoAppliedAfterDate = "AutoAppliedAfterDate" + case optInStatus = "OptInStatus" + case action = "Action" + case forcedApplyDate = "ForcedApplyDate" + case currentApplyDate = "CurrentApplyDate" + case description = "Description" } } - public struct OptionVersion: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "IsDefault", required: false, type: .boolean), - AWSShapeMember(label: "Version", required: false, type: .string) + public struct DBClusterSnapshotAttributeList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterSnapshotAttribute", required: false, type: .list) ] - /// True if the version is the default version of the option; otherwise, false. - public let isDefault: Bool? - /// The version of the option. - public let version: String? + public let dBClusterSnapshotAttribute: [DBClusterSnapshotAttribute]? - public init(isDefault: Bool? = nil, version: String? = nil) { - self.isDefault = isDefault - self.version = version + public init(dBClusterSnapshotAttribute: [DBClusterSnapshotAttribute]? = nil) { + self.dBClusterSnapshotAttribute = dBClusterSnapshotAttribute } private enum CodingKeys: String, CodingKey { - case isDefault = "IsDefault" - case version = "Version" + case dBClusterSnapshotAttribute = "DBClusterSnapshotAttribute" } } - public struct DBClusterParameterGroup: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroupFamily", required: false, type: .string), - AWSShapeMember(label: "DBClusterParameterGroupArn", required: false, type: .string), - AWSShapeMember(label: "DBClusterParameterGroupName", required: false, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string) + public struct ModifyDBClusterParameterGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Parameters", required: true, type: .structure), + AWSShapeMember(label: "DBClusterParameterGroupName", required: true, type: .string) ] - /// Provides the name of the DB parameter group family that this DB cluster parameter group is compatible with. - public let dBParameterGroupFamily: String? - /// The Amazon Resource Name (ARN) for the DB cluster parameter group. - public let dBClusterParameterGroupArn: String? - /// Provides the name of the DB cluster parameter group. - public let dBClusterParameterGroupName: String? - /// Provides the customer-specified description for this DB cluster parameter group. - public let description: String? + /// A list of parameters in the DB cluster parameter group to modify. + public let parameters: ParametersList + /// The name of the DB cluster parameter group to modify. + public let dBClusterParameterGroupName: String - public init(dBParameterGroupFamily: String? = nil, dBClusterParameterGroupArn: String? = nil, dBClusterParameterGroupName: String? = nil, description: String? = nil) { - self.dBParameterGroupFamily = dBParameterGroupFamily - self.dBClusterParameterGroupArn = dBClusterParameterGroupArn + public init(parameters: ParametersList, dBClusterParameterGroupName: String) { + self.parameters = parameters self.dBClusterParameterGroupName = dBClusterParameterGroupName - self.description = description } private enum CodingKeys: String, CodingKey { - case dBParameterGroupFamily = "DBParameterGroupFamily" - case dBClusterParameterGroupArn = "DBClusterParameterGroupArn" + case parameters = "Parameters" case dBClusterParameterGroupName = "DBClusterParameterGroupName" - case description = "Description" } } - public enum SourceType: String, CustomStringConvertible, Codable { - case dbInstance = "db-instance" - case dbParameterGroup = "db-parameter-group" - case dbSecurityGroup = "db-security-group" - case dbSnapshot = "db-snapshot" - case dbCluster = "db-cluster" - case dbClusterSnapshot = "db-cluster-snapshot" - public var description: String { return self.rawValue } - } - - public struct CreateDBSecurityGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "DBSecurityGroupDescription", required: true, type: .string), - AWSShapeMember(label: "DBSecurityGroupName", required: true, type: .string) + public struct DBClusterParameterGroupNameMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterParameterGroupName", required: false, type: .string) ] - public let tags: TagList? - /// The description for the DB security group. - public let dBSecurityGroupDescription: String - /// The name for the DB security group. This value is stored as a lowercase string. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Must not be "Default" Example: mysecuritygroup - public let dBSecurityGroupName: String + /// The name of the DB cluster parameter group. Constraints: Must be 1 to 255 letters or numbers. First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens This value is stored as a lowercase string. + public let dBClusterParameterGroupName: String? - public init(tags: TagList? = nil, dBSecurityGroupDescription: String, dBSecurityGroupName: String) { - self.tags = tags - self.dBSecurityGroupDescription = dBSecurityGroupDescription - self.dBSecurityGroupName = dBSecurityGroupName + public init(dBClusterParameterGroupName: String? = nil) { + self.dBClusterParameterGroupName = dBClusterParameterGroupName } private enum CodingKeys: String, CodingKey { - case tags = "Tags" - case dBSecurityGroupDescription = "DBSecurityGroupDescription" - case dBSecurityGroupName = "DBSecurityGroupName" + case dBClusterParameterGroupName = "DBClusterParameterGroupName" } } - public struct OptionGroupOptionSetting: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SettingName", required: false, type: .string), - AWSShapeMember(label: "AllowedValues", required: false, type: .string), - AWSShapeMember(label: "IsModifiable", required: false, type: .boolean), - AWSShapeMember(label: "DefaultValue", required: false, type: .string), - AWSShapeMember(label: "ApplyType", required: false, type: .string), - AWSShapeMember(label: "SettingDescription", required: false, type: .string) + public struct DescribeOptionGroupsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "EngineName", required: false, type: .string), + AWSShapeMember(label: "MajorEngineVersion", required: false, type: .string) ] - /// The name of the option group option. - public let settingName: String? - /// Indicates the acceptable values for the option group option. - public let allowedValues: String? - /// Boolean value where true indicates that this option group option can be changed from the default value. - public let isModifiable: Bool? - /// The default value for the option group option. - public let defaultValue: String? - /// The DB engine specific parameter type for the option group option. - public let applyType: String? - /// The description of the option group option. - public let settingDescription: String? + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// This parameter is not currently supported. + public let filters: FilterList? + /// The name of the option group to describe. Cannot be supplied together with EngineName or MajorEngineVersion. + public let optionGroupName: String? + /// An optional pagination token provided by a previous DescribeOptionGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// Filters the list of option groups to only include groups associated with a specific database engine. + public let engineName: String? + /// Filters the list of option groups to only include groups associated with a specific database engine version. If specified, then EngineName must also be specified. + public let majorEngineVersion: String? - public init(settingName: String? = nil, allowedValues: String? = nil, isModifiable: Bool? = nil, defaultValue: String? = nil, applyType: String? = nil, settingDescription: String? = nil) { - self.settingName = settingName - self.allowedValues = allowedValues - self.isModifiable = isModifiable - self.defaultValue = defaultValue - self.applyType = applyType - self.settingDescription = settingDescription + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, optionGroupName: String? = nil, marker: String? = nil, engineName: String? = nil, majorEngineVersion: String? = nil) { + self.maxRecords = maxRecords + self.filters = filters + self.optionGroupName = optionGroupName + self.marker = marker + self.engineName = engineName + self.majorEngineVersion = majorEngineVersion } private enum CodingKeys: String, CodingKey { - case settingName = "SettingName" - case allowedValues = "AllowedValues" - case isModifiable = "IsModifiable" - case defaultValue = "DefaultValue" - case applyType = "ApplyType" - case settingDescription = "SettingDescription" + case maxRecords = "MaxRecords" + case filters = "Filters" + case optionGroupName = "OptionGroupName" + case marker = "Marker" + case engineName = "EngineName" + case majorEngineVersion = "MajorEngineVersion" } } - public enum ApplyMethod: String, CustomStringConvertible, Codable { - case immediate = "immediate" - case pendingReboot = "pending-reboot" - public var description: String { return self.rawValue } - } - - public struct DBSecurityGroupNameList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSecurityGroupName", required: false, type: .list) + public struct DBParameterGroupDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .structure) ] - public let dBSecurityGroupName: [String]? + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// A list of Parameter values. + public let parameters: ParametersList? - public init(dBSecurityGroupName: [String]? = nil) { - self.dBSecurityGroupName = dBSecurityGroupName + public init(marker: String? = nil, parameters: ParametersList? = nil) { + self.marker = marker + self.parameters = parameters } private enum CodingKeys: String, CodingKey { - case dBSecurityGroupName = "DBSecurityGroupName" + case marker = "Marker" + case parameters = "Parameters" } } - public struct DomainMembershipList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DomainMembership", required: false, type: .list) + public struct VpcSecurityGroupMembership: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "VpcSecurityGroupId", required: false, type: .string) ] - public let domainMembership: [DomainMembership]? + /// The status of the VPC security group. + public let status: String? + /// The name of the VPC security group. + public let vpcSecurityGroupId: String? - public init(domainMembership: [DomainMembership]? = nil) { - self.domainMembership = domainMembership + public init(status: String? = nil, vpcSecurityGroupId: String? = nil) { + self.status = status + self.vpcSecurityGroupId = vpcSecurityGroupId } private enum CodingKeys: String, CodingKey { - case domainMembership = "DomainMembership" + case status = "Status" + case vpcSecurityGroupId = "VpcSecurityGroupId" } } - public struct CreateDBClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBCluster", required: false, type: .structure) + public struct DescribeReservedDBInstancesMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "ReservedDBInstanceId", required: false, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "ReservedDBInstancesOfferingId", required: false, type: .string), + AWSShapeMember(label: "Duration", required: false, type: .string), + AWSShapeMember(label: "OfferingType", required: false, type: .string), + AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), + AWSShapeMember(label: "ProductDescription", required: false, type: .string) ] - public let dBCluster: DBCluster? + /// The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so that the following results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// The Multi-AZ filter value. Specify this parameter to show only those reservations matching the specified Multi-AZ parameter. + public let multiAZ: Bool? + /// The reserved DB instance identifier filter value. Specify this parameter to show only the reservation that matches the specified reservation ID. + public let reservedDBInstanceId: String? + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// This parameter is not currently supported. + public let filters: FilterList? + /// The offering identifier filter value. Specify this parameter to show only purchased reservations matching the specified offering identifier. + public let reservedDBInstancesOfferingId: String? + /// The duration filter value, specified in years or seconds. Specify this parameter to show only reservations for this duration. Valid Values: 1 | 3 | 31536000 | 94608000 + public let duration: String? + /// The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type. Valid Values: "Partial Upfront" | "All Upfront" | "No Upfront" + public let offeringType: String? + /// The DB instance class filter value. Specify this parameter to show only those reservations matching the specified DB instances class. + public let dBInstanceClass: String? + /// The product description filter value. Specify this parameter to show only those reservations matching the specified product description. + public let productDescription: String? - public init(dBCluster: DBCluster? = nil) { - self.dBCluster = dBCluster + public init(maxRecords: Int32? = nil, multiAZ: Bool? = nil, reservedDBInstanceId: String? = nil, marker: String? = nil, filters: FilterList? = nil, reservedDBInstancesOfferingId: String? = nil, duration: String? = nil, offeringType: String? = nil, dBInstanceClass: String? = nil, productDescription: String? = nil) { + self.maxRecords = maxRecords + self.multiAZ = multiAZ + self.reservedDBInstanceId = reservedDBInstanceId + self.marker = marker + self.filters = filters + self.reservedDBInstancesOfferingId = reservedDBInstancesOfferingId + self.duration = duration + self.offeringType = offeringType + self.dBInstanceClass = dBInstanceClass + self.productDescription = productDescription } private enum CodingKeys: String, CodingKey { - case dBCluster = "DBCluster" + case maxRecords = "MaxRecords" + case multiAZ = "MultiAZ" + case reservedDBInstanceId = "ReservedDBInstanceId" + case marker = "Marker" + case filters = "Filters" + case reservedDBInstancesOfferingId = "ReservedDBInstancesOfferingId" + case duration = "Duration" + case offeringType = "OfferingType" + case dBInstanceClass = "DBInstanceClass" + case productDescription = "ProductDescription" } } - public struct DeleteDBInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FinalDBSnapshotIdentifier", required: false, type: .string), - AWSShapeMember(label: "SkipFinalSnapshot", required: false, type: .boolean), - AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) + public struct DescribeEngineDefaultParametersMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroupFamily", required: true, type: .string), + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Marker", required: false, type: .string) ] - /// The DBSnapshotIdentifier of the new DBSnapshot created when SkipFinalSnapshot is set to false. Specifying this parameter and also setting the SkipFinalShapshot parameter to true results in an error. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Cannot be specified when deleting a Read Replica. - public let finalDBSnapshotIdentifier: String? - /// Determines whether a final DB snapshot is created before the DB instance is deleted. If true is specified, no DBSnapshot is created. If false is specified, a DB snapshot is created before the DB instance is deleted. Note that when a DB instance is in a failure state and has a status of 'failed', 'incompatible-restore', or 'incompatible-network', it can only be deleted when the SkipFinalSnapshot parameter is set to "true". Specify true when deleting a Read Replica. The FinalDBSnapshotIdentifier parameter must be specified if SkipFinalSnapshot is false. Default: false - public let skipFinalSnapshot: Bool? - /// The DB instance identifier for the DB instance to be deleted. This parameter isn't case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBInstanceIdentifier: String + /// The name of the DB parameter group family. + public let dBParameterGroupFamily: String + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// Not currently supported. + public let filters: FilterList? + /// An optional pagination token provided by a previous DescribeEngineDefaultParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? - public init(finalDBSnapshotIdentifier: String? = nil, skipFinalSnapshot: Bool? = nil, dBInstanceIdentifier: String) { - self.finalDBSnapshotIdentifier = finalDBSnapshotIdentifier - self.skipFinalSnapshot = skipFinalSnapshot - self.dBInstanceIdentifier = dBInstanceIdentifier + public init(dBParameterGroupFamily: String, maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil) { + self.dBParameterGroupFamily = dBParameterGroupFamily + self.maxRecords = maxRecords + self.filters = filters + self.marker = marker } private enum CodingKeys: String, CodingKey { - case finalDBSnapshotIdentifier = "FinalDBSnapshotIdentifier" - case skipFinalSnapshot = "SkipFinalSnapshot" - case dBInstanceIdentifier = "DBInstanceIdentifier" + case dBParameterGroupFamily = "DBParameterGroupFamily" + case maxRecords = "MaxRecords" + case filters = "Filters" + case marker = "Marker" } } - public struct Timezone: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TimezoneName", required: false, type: .string) + public struct DeleteDBInstanceResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .structure) ] - /// The name of the time zone. - public let timezoneName: String? + public let dBInstance: DBInstance? - public init(timezoneName: String? = nil) { - self.timezoneName = timezoneName + public init(dBInstance: DBInstance? = nil) { + self.dBInstance = dBInstance } private enum CodingKeys: String, CodingKey { - case timezoneName = "TimezoneName" + case dBInstance = "DBInstance" } } - public struct RebootDBInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct CreateDBInstanceReadReplicaMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceDBInstanceIdentifier", required: true, type: .string), + AWSShapeMember(label: "Port", required: false, type: .integer), AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string), - AWSShapeMember(label: "ForceFailover", required: false, type: .boolean) + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "StorageType", required: false, type: .string), + AWSShapeMember(label: "EnablePerformanceInsights", required: false, type: .boolean), + AWSShapeMember(label: "Iops", required: false, type: .integer), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), + AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), + AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), + AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "MonitoringRoleArn", required: false, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "PerformanceInsightsKMSKeyId", required: false, type: .string), + AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), + AWSShapeMember(label: "PreSignedUrl", required: false, type: .string), + AWSShapeMember(label: "MonitoringInterval", required: false, type: .integer), + AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string) ] - /// The DB instance identifier. This parameter is stored as a lowercase string. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens + /// The identifier of the DB instance that will act as the source for the Read Replica. Each DB instance can have up to five Read Replicas. Constraints: Must be the identifier of an existing MySQL, MariaDB, or PostgreSQL DB instance. Can specify a DB instance that is a MySQL Read Replica only if the source is running MySQL 5.6. Can specify a DB instance that is a PostgreSQL DB instance only if the source is running PostgreSQL 9.3.5 or later (9.4.7 and higher for cross-region replication). The specified DB instance must have automatic backups enabled, its backup retention period must be greater than 0. If the source DB instance is in the same AWS Region as the Read Replica, specify a valid DB instance identifier. If the source DB instance is in a different AWS Region than the Read Replica, specify a valid DB instance ARN. For more information, go to Constructing a Amazon RDS Amazon Resource Name (ARN). + public let sourceDBInstanceIdentifier: String + /// The port number that the DB instance uses for connections. Default: Inherits from the source DB instance Valid Values: 1150-65535 + public let port: Int32? + /// The DB instance identifier of the Read Replica. This identifier is the unique key that identifies a DB instance. This parameter is stored as a lowercase string. public let dBInstanceIdentifier: String - /// When true, the reboot will be conducted through a MultiAZ failover. Constraint: You cannot specify true if the instance is not configured for MultiAZ. - public let forceFailover: Bool? + public let tags: TagList? + /// Specifies the storage type to be associated with the Read Replica. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified, otherwise standard + public let storageType: String? + /// True to enable Performance Insights for the read replica, and otherwise false. + public let enablePerformanceInsights: Bool? + /// The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. + public let iops: Int32? + /// The Amazon EC2 Availability Zone that the Read Replica is created in. Default: A random, system-chosen Availability Zone in the endpoint's AWS Region. Example: us-east-1d + public let availabilityZone: String? + /// Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case. Default VPC:true VPC:false If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private. + public let publiclyAccessible: Bool? + /// Indicates that minor engine upgrades are applied automatically to the Read Replica during the maintenance window. Default: Inherits from the source DB instance + public let autoMinorVersionUpgrade: Bool? + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. You can enable IAM database authentication for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Aurora 5.6 or higher. Default: false + public let enableIAMDatabaseAuthentication: Bool? + /// The option group the DB instance is associated with. If omitted, the default option group for the engine specified is used. + public let optionGroupName: String? + /// The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring. If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value. + public let monitoringRoleArn: String? + /// Specifies a DB subnet group for the DB instance. The new DB instance is created in the VPC associated with the DB subnet group. If no DB subnet group is specified, then the new DB instance is not created in a VPC. Constraints: Can only be specified if the source DB instance identifier specifies a DB instance in another AWS Region. If supplied, must match the name of an existing DBSubnetGroup. The specified DB subnet group must be in the same AWS Region in which the operation is running. All Read Replicas in one AWS Region that are created from the same source DB instance must either:> Specify DB subnet groups from the same VPC. All these Read Replicas are created in the same VPC. Not specify a DB subnet group. All these Read Replicas are created outside of any VPC. Example: mySubnetgroup + public let dBSubnetGroupName: String? + /// The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. + public let performanceInsightsKMSKeyId: String? + /// True to copy all tags from the Read Replica to snapshots of the Read Replica, and otherwise false. The default is false. + public let copyTagsToSnapshot: Bool? + /// The URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API action in the source AWS Region that contains the source DB instance. You must specify this parameter when you create an encrypted Read Replica from another AWS Region by using the Amazon RDS API. You can specify the --source-region option instead of this parameter when you create an encrypted Read Replica from another AWS Region by using the AWS CLI. The presigned URL must be a valid request for the CreateDBInstanceReadReplica API action that can be executed in the source AWS Region that contains the encrypted source DB instance. The presigned URL request must contain the following parameter values: DestinationRegion - The AWS Region that the encrypted Read Replica is created in. This AWS Region is the same one where the CreateDBInstanceReadReplica action is called that contains this presigned URL. For example, if you create an encrypted DB instance in the us-west-1 AWS Region, from a source DB instance in the us-east-2 AWS Region, then you call the CreateDBInstanceReadReplica action in the us-east-1 AWS Region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica action in the us-west-2 AWS Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 AWS Region. KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the Read Replica in the destination AWS Region. This is the same identifier for both the CreateDBInstanceReadReplica action that is called in the destination AWS Region, and the action contained in the presigned URL. SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are creating an encrypted Read Replica from a DB instance in the us-west-2 AWS Region, then your SourceDBInstanceIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. + public let preSignedUrl: String? + /// The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the Read Replica. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0. Valid Values: 0, 1, 5, 10, 15, 30, 60 + public let monitoringInterval: Int32? + /// The compute and memory capacity of the Read Replica, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide. Default: Inherits from the source DB instance. + public let dBInstanceClass: String? + /// The AWS KMS key ID for an encrypted Read Replica. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. If you specify this parameter when you create a Read Replica from an unencrypted DB instance, the Read Replica is encrypted. If you create an encrypted Read Replica in the same AWS Region as the source DB instance, then you do not have to specify a value for this parameter. The Read Replica is encrypted with the same KMS key as the source DB instance. If you create an encrypted Read Replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region. KMS encryption keys are specific to the AWS Region that they are created in, and you can't use encryption keys from one AWS Region in another AWS Region. + public let kmsKeyId: String? - public init(dBInstanceIdentifier: String, forceFailover: Bool? = nil) { + public init(sourceDBInstanceIdentifier: String, port: Int32? = nil, dBInstanceIdentifier: String, tags: TagList? = nil, storageType: String? = nil, enablePerformanceInsights: Bool? = nil, iops: Int32? = nil, availabilityZone: String? = nil, publiclyAccessible: Bool? = nil, autoMinorVersionUpgrade: Bool? = nil, enableIAMDatabaseAuthentication: Bool? = nil, optionGroupName: String? = nil, monitoringRoleArn: String? = nil, dBSubnetGroupName: String? = nil, performanceInsightsKMSKeyId: String? = nil, copyTagsToSnapshot: Bool? = nil, preSignedUrl: String? = nil, monitoringInterval: Int32? = nil, dBInstanceClass: String? = nil, kmsKeyId: String? = nil) { + self.sourceDBInstanceIdentifier = sourceDBInstanceIdentifier + self.port = port self.dBInstanceIdentifier = dBInstanceIdentifier - self.forceFailover = forceFailover + self.tags = tags + self.storageType = storageType + self.enablePerformanceInsights = enablePerformanceInsights + self.iops = iops + self.availabilityZone = availabilityZone + self.publiclyAccessible = publiclyAccessible + self.autoMinorVersionUpgrade = autoMinorVersionUpgrade + self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication + self.optionGroupName = optionGroupName + self.monitoringRoleArn = monitoringRoleArn + self.dBSubnetGroupName = dBSubnetGroupName + self.performanceInsightsKMSKeyId = performanceInsightsKMSKeyId + self.copyTagsToSnapshot = copyTagsToSnapshot + self.preSignedUrl = preSignedUrl + self.monitoringInterval = monitoringInterval + self.dBInstanceClass = dBInstanceClass + self.kmsKeyId = kmsKeyId } private enum CodingKeys: String, CodingKey { + case sourceDBInstanceIdentifier = "SourceDBInstanceIdentifier" + case port = "Port" case dBInstanceIdentifier = "DBInstanceIdentifier" - case forceFailover = "ForceFailover" + case tags = "Tags" + case storageType = "StorageType" + case enablePerformanceInsights = "EnablePerformanceInsights" + case iops = "Iops" + case availabilityZone = "AvailabilityZone" + case publiclyAccessible = "PubliclyAccessible" + case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" + case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" + case optionGroupName = "OptionGroupName" + case monitoringRoleArn = "MonitoringRoleArn" + case dBSubnetGroupName = "DBSubnetGroupName" + case performanceInsightsKMSKeyId = "PerformanceInsightsKMSKeyId" + case copyTagsToSnapshot = "CopyTagsToSnapshot" + case preSignedUrl = "PreSignedUrl" + case monitoringInterval = "MonitoringInterval" + case dBInstanceClass = "DBInstanceClass" + case kmsKeyId = "KmsKeyId" } } - public struct DescribeDBSnapshotsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DescribeDBClustersMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "IncludePublic", required: false, type: .boolean), - AWSShapeMember(label: "SnapshotType", required: false, type: .string), - AWSShapeMember(label: "IncludeShared", required: false, type: .boolean), + AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "DBSnapshotIdentifier", required: false, type: .string), - AWSShapeMember(label: "DBInstanceIdentifier", required: false, type: .string) + AWSShapeMember(label: "Marker", required: false, type: .string) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. public let maxRecords: Int32? - /// An optional pagination token provided by a previous DescribeDBSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// Set this value to true to include manual DB snapshots that are public and can be copied or restored by any AWS account, otherwise set this value to false. The default is false. You can share a manual DB snapshot as public by using the ModifyDBSnapshotAttribute API. - public let includePublic: Bool? - /// The type of snapshots to be returned. You can specify one of the following values: automated - Return all DB snapshots that have been automatically taken by Amazon RDS for my AWS account. manual - Return all DB snapshots that have been taken by my AWS account. shared - Return all manual DB snapshots that have been shared to my AWS account. public - Return all DB snapshots that have been marked as public. If you don't specify a SnapshotType value, then both automated and manual snapshots are returned. Shared and public DB snapshots are not included in the returned results by default. You can include shared snapshots with these results by setting the IncludeShared parameter to true. You can include public snapshots with these results by setting the IncludePublic parameter to true. The IncludeShared and IncludePublic parameters don't apply for SnapshotType values of manual or automated. The IncludePublic parameter doesn't apply when SnapshotType is set to shared. The IncludeShared parameter doesn't apply when SnapshotType is set to public. - public let snapshotType: String? - /// Set this value to true to include shared manual DB snapshots from other AWS accounts that this AWS account has been given permission to copy or restore, otherwise set this value to false. The default is false. You can give an AWS account permission to restore a manual DB snapshot from another AWS account by using the ModifyDBSnapshotAttribute API action. - public let includeShared: Bool? - /// This parameter is not currently supported. + /// The user-supplied DB cluster identifier. If this parameter is specified, information from only the specific DB cluster is returned. This parameter isn't case-sensitive. Constraints: If supplied, must match an existing DBClusterIdentifier. + public let dBClusterIdentifier: String? + /// A filter that specifies one or more DB clusters to describe. Supported filters: db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB clusters identified by these ARNs. public let filters: FilterList? - /// A specific DB snapshot identifier to describe. This parameter cannot be used in conjunction with DBInstanceIdentifier. This value is stored as a lowercase string. Constraints: Must be 1 to 255 alphanumeric characters. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified. - public let dBSnapshotIdentifier: String? - /// The ID of the DB instance to retrieve the list of DB snapshots for. This parameter cannot be used in conjunction with DBSnapshotIdentifier. This parameter is not case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBInstanceIdentifier: String? + /// An optional pagination token provided by a previous DescribeDBClusters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? - public init(maxRecords: Int32? = nil, marker: String? = nil, includePublic: Bool? = nil, snapshotType: String? = nil, includeShared: Bool? = nil, filters: FilterList? = nil, dBSnapshotIdentifier: String? = nil, dBInstanceIdentifier: String? = nil) { + public init(maxRecords: Int32? = nil, dBClusterIdentifier: String? = nil, filters: FilterList? = nil, marker: String? = nil) { self.maxRecords = maxRecords + self.dBClusterIdentifier = dBClusterIdentifier + self.filters = filters + self.marker = marker + } + + private enum CodingKeys: String, CodingKey { + case maxRecords = "MaxRecords" + case dBClusterIdentifier = "DBClusterIdentifier" + case filters = "Filters" + case marker = "Marker" + } + } + + public struct OptionGroupOptionsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "OptionGroupOptions", required: false, type: .structure) + ] + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + public let optionGroupOptions: OptionGroupOptionsList? + + public init(marker: String? = nil, optionGroupOptions: OptionGroupOptionsList? = nil) { self.marker = marker - self.includePublic = includePublic - self.snapshotType = snapshotType - self.includeShared = includeShared - self.filters = filters - self.dBSnapshotIdentifier = dBSnapshotIdentifier - self.dBInstanceIdentifier = dBInstanceIdentifier + self.optionGroupOptions = optionGroupOptions } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" case marker = "Marker" - case includePublic = "IncludePublic" - case snapshotType = "SnapshotType" - case includeShared = "IncludeShared" - case filters = "Filters" - case dBSnapshotIdentifier = "DBSnapshotIdentifier" - case dBInstanceIdentifier = "DBInstanceIdentifier" + case optionGroupOptions = "OptionGroupOptions" } } - public struct ReservedDBInstanceList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReservedDBInstance", required: false, type: .list) + public struct FilterValueList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: false, type: .list) ] - public let reservedDBInstance: [ReservedDBInstance]? + public let value: [String]? - public init(reservedDBInstance: [ReservedDBInstance]? = nil) { - self.reservedDBInstance = reservedDBInstance + public init(value: [String]? = nil) { + self.value = value } private enum CodingKeys: String, CodingKey { - case reservedDBInstance = "ReservedDBInstance" + case value = "Value" } } - public struct DeleteDBClusterSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterSnapshot", required: false, type: .structure) + public struct CreateDBParameterGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroupFamily", required: true, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "DBParameterGroupName", required: true, type: .string), + AWSShapeMember(label: "Description", required: true, type: .string) ] - public let dBClusterSnapshot: DBClusterSnapshot? + /// The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family. + public let dBParameterGroupFamily: String + public let tags: TagList? + /// The name of the DB parameter group. Constraints: Must be 1 to 255 letters, numbers, or hyphens. First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens This value is stored as a lowercase string. + public let dBParameterGroupName: String + /// The description for the DB parameter group. + public let description: String - public init(dBClusterSnapshot: DBClusterSnapshot? = nil) { - self.dBClusterSnapshot = dBClusterSnapshot + public init(dBParameterGroupFamily: String, tags: TagList? = nil, dBParameterGroupName: String, description: String) { + self.dBParameterGroupFamily = dBParameterGroupFamily + self.tags = tags + self.dBParameterGroupName = dBParameterGroupName + self.description = description } private enum CodingKeys: String, CodingKey { - case dBClusterSnapshot = "DBClusterSnapshot" + case dBParameterGroupFamily = "DBParameterGroupFamily" + case tags = "Tags" + case dBParameterGroupName = "DBParameterGroupName" + case description = "Description" } } - public struct RestoreDBInstanceToPointInTimeResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstance", required: false, type: .structure) + public struct OptionGroupOptionSettingsList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionGroupOptionSetting", required: false, type: .list) ] - public let dBInstance: DBInstance? + public let optionGroupOptionSetting: [OptionGroupOptionSetting]? - public init(dBInstance: DBInstance? = nil) { - self.dBInstance = dBInstance + public init(optionGroupOptionSetting: [OptionGroupOptionSetting]? = nil) { + self.optionGroupOptionSetting = optionGroupOptionSetting } private enum CodingKeys: String, CodingKey { - case dBInstance = "DBInstance" + case optionGroupOptionSetting = "OptionGroupOptionSetting" } } - public struct DBClusterSnapshotAttributesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterSnapshotIdentifier", required: false, type: .string), - AWSShapeMember(label: "DBClusterSnapshotAttributes", required: false, type: .structure) + public struct CopyDBParameterGroupResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroup", required: false, type: .structure) ] - /// The identifier of the manual DB cluster snapshot that the attributes apply to. - public let dBClusterSnapshotIdentifier: String? - /// The list of attributes and values for the manual DB cluster snapshot. - public let dBClusterSnapshotAttributes: DBClusterSnapshotAttributeList? + public let dBParameterGroup: DBParameterGroup? - public init(dBClusterSnapshotIdentifier: String? = nil, dBClusterSnapshotAttributes: DBClusterSnapshotAttributeList? = nil) { - self.dBClusterSnapshotIdentifier = dBClusterSnapshotIdentifier - self.dBClusterSnapshotAttributes = dBClusterSnapshotAttributes + public init(dBParameterGroup: DBParameterGroup? = nil) { + self.dBParameterGroup = dBParameterGroup } private enum CodingKeys: String, CodingKey { - case dBClusterSnapshotIdentifier = "DBClusterSnapshotIdentifier" - case dBClusterSnapshotAttributes = "DBClusterSnapshotAttributes" + case dBParameterGroup = "DBParameterGroup" } } - public struct DescribeDBLogFilesDetails: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "LastWritten", required: false, type: .long), - AWSShapeMember(label: "Size", required: false, type: .long), - AWSShapeMember(label: "LogFileName", required: false, type: .string) + public struct AccountAttributesMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountQuotas", required: false, type: .structure) ] - /// A POSIX timestamp when the last log entry was written. - public let lastWritten: Int64? - /// The size, in bytes, of the log file for the specified DB instance. - public let size: Int64? - /// The name of the log file for the specified DB instance. - public let logFileName: String? + /// A list of AccountQuota objects. Within this list, each quota has a name, a count of usage toward the quota maximum, and a maximum value for the quota. + public let accountQuotas: AccountQuotaList? - public init(lastWritten: Int64? = nil, size: Int64? = nil, logFileName: String? = nil) { - self.lastWritten = lastWritten - self.size = size - self.logFileName = logFileName + public init(accountQuotas: AccountQuotaList? = nil) { + self.accountQuotas = accountQuotas } private enum CodingKeys: String, CodingKey { - case lastWritten = "LastWritten" - case size = "Size" - case logFileName = "LogFileName" + case accountQuotas = "AccountQuotas" } } - public struct DBClusterOptionGroupStatus: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Status", required: false, type: .string), - AWSShapeMember(label: "DBClusterOptionGroupName", required: false, type: .string) + public struct VpcSecurityGroupMembershipList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VpcSecurityGroupMembership", required: false, type: .list) ] - /// Specifies the status of the DB cluster option group. + public let vpcSecurityGroupMembership: [VpcSecurityGroupMembership]? + + public init(vpcSecurityGroupMembership: [VpcSecurityGroupMembership]? = nil) { + self.vpcSecurityGroupMembership = vpcSecurityGroupMembership + } + + private enum CodingKeys: String, CodingKey { + case vpcSecurityGroupMembership = "VpcSecurityGroupMembership" + } + } + + public struct DBClusterRole: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .string) + ] + /// The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster. + public let roleArn: String? + /// Describes the state of association between the IAM role and the DB cluster. The Status property returns one of the following values: ACTIVE - the IAM role ARN is associated with the DB cluster and can be used to access other AWS services on your behalf. PENDING - the IAM role ARN is being associated with the DB cluster. INVALID - the IAM role ARN is associated with the DB cluster, but the DB cluster is unable to assume the IAM role in order to access other AWS services on your behalf. public let status: String? - /// Specifies the name of the DB cluster option group. - public let dBClusterOptionGroupName: String? - public init(status: String? = nil, dBClusterOptionGroupName: String? = nil) { + public init(roleArn: String? = nil, status: String? = nil) { + self.roleArn = roleArn self.status = status - self.dBClusterOptionGroupName = dBClusterOptionGroupName } private enum CodingKeys: String, CodingKey { + case roleArn = "RoleArn" case status = "Status" - case dBClusterOptionGroupName = "DBClusterOptionGroupName" } } - public struct DBInstance: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VpcSecurityGroups", required: false, type: .structure), - AWSShapeMember(label: "DomainMemberships", required: false, type: .structure), - AWSShapeMember(label: "DBInstanceStatus", required: false, type: .string), - AWSShapeMember(label: "DBParameterGroups", required: false, type: .structure), + public struct CreateDBInstanceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBName", required: false, type: .string), + AWSShapeMember(label: "TdeCredentialPassword", required: false, type: .string), + AWSShapeMember(label: "EnablePerformanceInsights", required: false, type: .boolean), + AWSShapeMember(label: "MasterUserPassword", required: false, type: .string), + AWSShapeMember(label: "Iops", required: false, type: .integer), AWSShapeMember(label: "DBSecurityGroups", required: false, type: .structure), - AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), AWSShapeMember(label: "CharacterSetName", required: false, type: .string), + AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), - AWSShapeMember(label: "Iops", required: false, type: .integer), - AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), - AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "LatestRestorableTime", required: false, type: .timestamp), - AWSShapeMember(label: "DbiResourceId", required: false, type: .string), - AWSShapeMember(label: "Endpoint", required: false, type: .structure), - AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), - AWSShapeMember(label: "InstanceCreateTime", required: false, type: .timestamp), - AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), - AWSShapeMember(label: "LicenseModel", required: false, type: .string), - AWSShapeMember(label: "DbInstancePort", required: false, type: .integer), - AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), - AWSShapeMember(label: "IAMDatabaseAuthenticationEnabled", required: false, type: .boolean), - AWSShapeMember(label: "MonitoringRoleArn", required: false, type: .string), - AWSShapeMember(label: "StatusInfos", required: false, type: .structure), - AWSShapeMember(label: "MasterUsername", required: false, type: .string), - AWSShapeMember(label: "SecondaryAvailabilityZone", required: false, type: .string), - AWSShapeMember(label: "Engine", required: false, type: .string), - AWSShapeMember(label: "ReadReplicaDBInstanceIdentifiers", required: false, type: .structure), - AWSShapeMember(label: "DBSubnetGroup", required: false, type: .structure), - AWSShapeMember(label: "StorageEncrypted", required: false, type: .boolean), - AWSShapeMember(label: "MonitoringInterval", required: false, type: .integer), - AWSShapeMember(label: "DBInstanceIdentifier", required: false, type: .string), - AWSShapeMember(label: "DBName", required: false, type: .string), - AWSShapeMember(label: "EnhancedMonitoringResourceArn", required: false, type: .string), AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), - AWSShapeMember(label: "OptionGroupMemberships", required: false, type: .structure), - AWSShapeMember(label: "CACertificateIdentifier", required: false, type: .string), + AWSShapeMember(label: "PerformanceInsightsKMSKeyId", required: false, type: .string), + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), AWSShapeMember(label: "PromotionTier", required: false, type: .integer), AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), + AWSShapeMember(label: "DomainIAMRoleName", required: false, type: .string), AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), - AWSShapeMember(label: "DBInstanceArn", required: false, type: .string), + AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), + AWSShapeMember(label: "DBInstanceClass", required: true, type: .string), + AWSShapeMember(label: "Domain", required: false, type: .string), AWSShapeMember(label: "KmsKeyId", required: false, type: .string), - AWSShapeMember(label: "PendingModifiedValues", required: false, type: .structure), - AWSShapeMember(label: "ReadReplicaSourceDBInstanceIdentifier", required: false, type: .string), - AWSShapeMember(label: "Timezone", required: false, type: .string), - AWSShapeMember(label: "StorageType", required: false, type: .string), - AWSShapeMember(label: "TdeCredentialArn", required: false, type: .string), - AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), - AWSShapeMember(label: "ReadReplicaDBClusterIdentifiers", required: false, type: .structure) - ] - /// Provides a list of VPC security group elements that the DB instance belongs to. - public let vpcSecurityGroups: VpcSecurityGroupMembershipList? - /// The Active Directory Domain membership records associated with the DB instance. - public let domainMemberships: DomainMembershipList? - /// Specifies the current state of this database. - public let dBInstanceStatus: String? - /// Provides the list of DB parameter groups applied to this DB instance. - public let dBParameterGroups: DBParameterGroupStatusList? - /// Provides List of DB security group elements containing only DBSecurityGroup.Name and DBSecurityGroup.Status subelements. - public let dBSecurityGroups: DBSecurityGroupMembershipList? - /// Specifies the name of the Availability Zone the DB instance is located in. - public let availabilityZone: String? - /// If present, specifies the name of the character set that this instance is associated with. - public let characterSetName: String? - /// Indicates that minor version patches are applied automatically. - public let autoMinorVersionUpgrade: Bool? - /// Specifies the Provisioned IOPS (I/O operations per second) value. - public let iops: Int32? - /// If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of. - public let dBClusterIdentifier: String? - /// Indicates the database engine version. - public let engineVersion: String? - /// Specifies the latest time to which a database can be restored with point-in-time restore. - public let latestRestorableTime: TimeStamp? - /// The region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the KMS key for the DB instance is accessed. - public let dbiResourceId: String? - /// Specifies the connection endpoint. - public let endpoint: Endpoint? - /// Contains the name of the compute and memory capacity class of the DB instance. - public let dBInstanceClass: String? - /// Provides the date and time the DB instance was created. - public let instanceCreateTime: TimeStamp? - /// Specifies if the DB instance is a Multi-AZ deployment. - public let multiAZ: Bool? - /// Specifies the allocated storage size specified in gigabytes. - public let allocatedStorage: Int32? - /// License model information for this DB instance. - public let licenseModel: String? - /// Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port. - public let dbInstancePort: Int32? - /// Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod. - public let preferredBackupWindow: String? - /// True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled; otherwise false. IAM database authentication can be enabled for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. - public let iAMDatabaseAuthenticationEnabled: Bool? - /// The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to CloudWatch Logs. - public let monitoringRoleArn: String? - /// The status of a Read Replica. If the instance is not a Read Replica, this will be blank. - public let statusInfos: DBInstanceStatusInfoList? - /// Contains the master username for the DB instance. - public let masterUsername: String? - /// If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support. - public let secondaryAvailabilityZone: String? - /// Provides the name of the database engine to be used for this DB instance. - public let engine: String? - /// Contains one or more identifiers of the Read Replicas associated with this DB instance. - public let readReplicaDBInstanceIdentifiers: ReadReplicaDBInstanceIdentifierList? - /// Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group. - public let dBSubnetGroup: DBSubnetGroup? - /// Specifies whether the DB instance is encrypted. - public let storageEncrypted: Bool? - /// The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. - public let monitoringInterval: Int32? - /// Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance. - public let dBInstanceIdentifier: String? - /// The meaning of this parameter differs according to the database engine you use. For example, this value returns MySQL, MariaDB, or PostgreSQL information when returning values from CreateDBInstanceReadReplica since Read Replicas are only supported for these engines. MySQL, MariaDB, SQL Server, PostgreSQL Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String Oracle Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance. + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "Timezone", required: false, type: .string), + AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), + AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), + AWSShapeMember(label: "StorageType", required: false, type: .string), + AWSShapeMember(label: "LicenseModel", required: false, type: .string), + AWSShapeMember(label: "TdeCredentialArn", required: false, type: .string), + AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string), + AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), + AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), + AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), + AWSShapeMember(label: "OptionGroupName", required: false, type: .string), + AWSShapeMember(label: "MasterUsername", required: false, type: .string), + AWSShapeMember(label: "MonitoringRoleArn", required: false, type: .string), + AWSShapeMember(label: "Engine", required: true, type: .string), + AWSShapeMember(label: "MonitoringInterval", required: false, type: .integer), + AWSShapeMember(label: "StorageEncrypted", required: false, type: .boolean), + AWSShapeMember(label: "Port", required: false, type: .integer), + AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) + ] + /// The meaning of this parameter differs according to the database engine you use. Type: String MySQL The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Constraints: Must contain 1 to 64 letters or numbers. Cannot be a word reserved by the specified database engine MariaDB The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Constraints: Must contain 1 to 64 letters or numbers. Cannot be a word reserved by the specified database engine PostgreSQL The name of the database to create when the DB instance is created. If this parameter is not specified, the default "postgres" database is created in the DB instance. Constraints: Must contain 1 to 63 letters, numbers, or underscores. Must begin with a letter or an underscore. Subsequent characters can be letters, underscores, or digits (0-9). Cannot be a word reserved by the specified database engine Oracle The Oracle System ID (SID) of the created DB instance. If you specify null, the default value ORCL is used. You can't specify the string NULL, or any other reserved word, for DBName. Default: ORCL Constraints: Cannot be longer than 8 characters SQL Server Not applicable. Must be null. Amazon Aurora The name of the database to create when the primary instance of the DB cluster is created. If this parameter is not specified, no database is created in the DB instance. Constraints: Must contain 1 to 64 letters or numbers. Cannot be a word reserved by the specified database engine public let dBName: String? - /// The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance. - public let enhancedMonitoringResourceArn: String? - /// Specifies the number of days for which automatic DB snapshots are retained. + /// The password for the given ARN from the key store in order to access the device. + public let tdeCredentialPassword: String? + /// True to enable Performance Insights for the DB instance, and otherwise false. + public let enablePerformanceInsights: Bool? + /// The password for the master user. The password can include any printable ASCII character except "/", """, or "@". Amazon Aurora Not applicable. The password for the master user is managed by the DB cluster. For more information, see CreateDBCluster. MariaDB Constraints: Must contain from 8 to 41 characters. Microsoft SQL Server Constraints: Must contain from 8 to 128 characters. MySQL Constraints: Must contain from 8 to 41 characters. Oracle Constraints: Must contain from 8 to 30 characters. PostgreSQL Constraints: Must contain from 8 to 128 characters. + public let masterUserPassword: String? + /// The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. For information about valid Iops values, see see Amazon RDS Provisioned IOPS Storage to Improve Performance. Constraints: Must be a multiple between 3 and 10 of the storage amount for the DB instance. Must also be an integer multiple of 1000. For example, if the size of your DB instance is 500 GB, then your Iops value can be 2000, 3000, 4000, or 5000. + public let iops: Int32? + /// A list of DB security groups to associate with this DB instance. Default: The default DB security group for the database engine. + public let dBSecurityGroups: DBSecurityGroupNameList? + /// For supported engines, indicates that the DB instance should be associated with the specified CharacterSet. Amazon Aurora Not applicable. The character set is managed by the DB cluster. For more information, see CreateDBCluster. + public let characterSetName: String? + /// The EC2 Availability Zone that the DB instance is created in. For information on AWS Regions and Availability Zones, see Regions and Availability Zones. Default: A random, system-chosen Availability Zone in the endpoint's AWS Region. Example: us-east-1d Constraint: The AvailabilityZone parameter can't be specified if the MultiAZ parameter is set to true. The specified Availability Zone must be in the same AWS Region as the current endpoint. + public let availabilityZone: String? + /// Indicates that minor engine upgrades are applied automatically to the DB instance during the maintenance window. Default: true + public let autoMinorVersionUpgrade: Bool? + /// The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups. Amazon Aurora Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see CreateDBCluster. Default: 1 Constraints: Must be a value from 0 to 35 Cannot be set to 0 if the DB instance is a source to Read Replicas public let backupRetentionPeriod: Int32? - /// Provides the list of option group memberships for this DB instance. - public let optionGroupMemberships: OptionGroupMembershipList? - /// The identifier of the CA certificate for this DB instance. - public let cACertificateIdentifier: String? - /// A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster. + /// The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. + public let performanceInsightsKMSKeyId: String? + /// The version number of the database engine to use. The following are the database engines and major and minor versions that are available with Amazon RDS. Not every database engine is available for every AWS Region. Amazon Aurora Not applicable. The version number of the database engine to be used by the DB instance is managed by the DB cluster. For more information, see CreateDBCluster. MariaDB 10.1.23 (supported in all AWS Regions) 10.1.19 (supported in all AWS Regions) 10.1.14 (supported in all AWS Regions except us-east-2) 10.0.31 (supported in all AWS Regions) 10.0.28 (supported in all AWS Regions) 10.0.24 (supported in all AWS Regions) 10.0.17 (supported in all AWS Regions except us-east-2, ca-central-1, eu-west-2) Microsoft SQL Server 2016 13.00.4422.0.v1 (supported for all editions, and all AWS Regions) 13.00.2164.0.v1 (supported for all editions, and all AWS Regions) Microsoft SQL Server 2014 12.00.5546.0.v1 (supported for all editions, and all AWS Regions) 12.00.5000.0.v1 (supported for all editions, and all AWS Regions) 12.00.4422.0.v1 (supported for all editions except Enterprise Edition, and all AWS Regions except ca-central-1 and eu-west-2) Microsoft SQL Server 2012 11.00.6594.0.v1 (supported for all editions, and all AWS Regions) 11.00.6020.0.v1 (supported for all editions, and all AWS Regions) 11.00.5058.0.v1 (supported for all editions, and all AWS Regions except us-east-2, ca-central-1, and eu-west-2) 11.00.2100.60.v1 (supported for all editions, and all AWS Regions except us-east-2, ca-central-1, and eu-west-2) Microsoft SQL Server 2008 R2 10.50.6529.0.v1 (supported for all editions, and all AWS Regions except us-east-2, ca-central-1, and eu-west-2) 10.50.6000.34.v1 (supported for all editions, and all AWS Regions except us-east-2, ca-central-1, and eu-west-2) 10.50.2789.0.v1 (supported for all editions, and all AWS Regions except us-east-2, ca-central-1, and eu-west-2) MySQL 5.7.19 (supported in all AWS regions) 5.7.17 (supported in all AWS regions) 5.7.16 (supported in all AWS regions) 5.6.37 (supported in all AWS Regions) 5.6.35 (supported in all AWS Regions) 5.6.34 (supported in all AWS Regions) 5.6.29 (supported in all AWS Regions) 5.6.27 (supported in all AWS Regions except us-east-2, ca-central-1, eu-west-2) 5.5.57 (supported in all AWS Regions) 5.5.54 (supported in all AWS Regions) 5.5.53 (supported in all AWS Regions) 5.5.46 (supported in all AWS Regions) Oracle 12c 12.1.0.2.v9 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v8 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v7 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v6 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v5 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v4 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v3 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v2 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) 12.1.0.2.v1 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) Oracle 11g 11.2.0.4.v13 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v12 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v11 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v10 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v9 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v8 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v7 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v6 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v5 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v4 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v3 (supported for EE, SE1, and SE, in all AWS regions) 11.2.0.4.v1 (supported for EE, SE1, and SE, in all AWS regions) PostgreSQL Version 9.6.x: 9.6.5 | 9.6.3 | 9.6.2 | 9.6.1 Version 9.5.x: 9.5.9 | 9.5.7 | 9.5.6 | 9.5.4 | 9.5.2 Version 9.4.x: 9.4.14 | 9.4.12 | 9.4.11 | 9.4.9 | 9.4.7 Version 9.3.x: 9.3.19 | 9.3.17 | 9.3.16 | 9.3.14 | 9.3.12 + public let engineVersion: String? + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. You can enable IAM database authentication for the following database engines: Amazon Aurora Not applicable. Mapping AWS IAM accounts to database accounts is managed by the DB cluster. For more information, see CreateDBCluster. MySQL For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Default: false + public let enableIAMDatabaseAuthentication: Bool? + /// A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster. Default: 1 Valid Values: 0 - 15 public let promotionTier: Int32? - /// Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). + /// The time range each week during which system maintenance can occur, in Universal Coordinated Time (UTC). For more information, see Amazon RDS Maintenance Window. Format: ddd:hh24:mi-ddd:hh24:mi The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window. public let preferredMaintenanceWindow: String? - /// Specifies whether tags are copied from the DB instance to snapshots of the DB instance. + /// Specify the name of the IAM role to be used when making API calls to the Directory Service. + public let domainIAMRoleName: String? + /// True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. The default is false. public let copyTagsToSnapshot: Bool? - /// The Amazon Resource Name (ARN) for the DB instance. - public let dBInstanceArn: String? - /// If StorageEncrypted is true, the KMS key identifier for the encrypted DB instance. + /// The identifier of the DB cluster that the instance will belong to. For information on creating a DB cluster, see CreateDBCluster. Type: String + public let dBClusterIdentifier: String? + /// The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide. + public let dBInstanceClass: String + /// Specify the Active Directory Domain to create the instance in. + public let domain: String? + /// The AWS KMS key identifier for an encrypted DB instance. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, then you can use the KMS key alias instead of the ARN for the KM encryption key. Amazon Aurora Not applicable. The KMS key identifier is managed by the DB cluster. For more information, see CreateDBCluster. If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region. public let kmsKeyId: String? - /// Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements. - public let pendingModifiedValues: PendingModifiedValues? - /// Contains the identifier of the source DB instance if this DB instance is a Read Replica. - public let readReplicaSourceDBInstanceIdentifier: String? - /// The time zone of the DB instance. In most cases, the Timezone element is empty. Timezone content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. + /// Specifies if the DB instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the MultiAZ parameter is set to true. + public let multiAZ: Bool? + public let tags: TagList? + /// The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server. public let timezone: String? - /// Specifies the storage type associated with DB instance. + /// A list of EC2 VPC security groups to associate with this DB instance. Amazon Aurora Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see CreateDBCluster. Default: The default EC2 VPC security group for the DB subnet group's VPC. + public let vpcSecurityGroupIds: VpcSecurityGroupIdList? + /// The amount of storage (in gigabytes) to be initially allocated for the DB instance. Type: Integer Amazon Aurora Not applicable. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume. MySQL Constraints to the amount of storage for each storage type are the following: General Purpose (SSD) storage (gp2): Must be an integer from 5 to 6144. Provisioned IOPS storage (io1): Must be an integer from 100 to 6144. Magnetic storage (standard): Must be an integer from 5 to 3072. MariaDB Constraints to the amount of storage for each storage type are the following: General Purpose (SSD) storage (gp2): Must be an integer from 5 to 6144. Provisioned IOPS storage (io1): Must be an integer from 100 to 6144. Magnetic storage (standard): Must be an integer from 5 to 3072. PostgreSQL Constraints to the amount of storage for each storage type are the following: General Purpose (SSD) storage (gp2): Must be an integer from 5 to 6144. Provisioned IOPS storage (io1): Must be an integer from 100 to 6144. Magnetic storage (standard): Must be an integer from 5 to 3072. Oracle Constraints to the amount of storage for each storage type are the following: General Purpose (SSD) storage (gp2): Must be an integer from 10 to 6144. Provisioned IOPS storage (io1): Must be an integer from 100 to 6144. Magnetic storage (standard): Must be an integer from 10 to 3072. SQL Server Constraints to the amount of storage for each storage type are the following: General Purpose (SSD) storage (gp2): Enterprise and Standard editions: Must be an integer from 200 to 16384. Web and Express editions: Must be an integer from 20 to 16384. Provisioned IOPS storage (io1): Enterprise and Standard editions: Must be an integer from 200 to 16384. Web and Express editions: Must be an integer from 100 to 16384. Magnetic storage (standard): Enterprise and Standard editions: Must be an integer from 200 to 1024. Web and Express editions: Must be an integer from 20 to 1024. + public let allocatedStorage: Int32? + /// Specifies the storage type to be associated with the DB instance. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified, otherwise standard public let storageType: String? - /// The ARN from the key store with which the instance is associated for TDE encryption. + /// License model information for this DB instance. Valid values: license-included | bring-your-own-license | general-public-license + public let licenseModel: String? + /// The ARN from the key store with which to associate the instance for TDE encryption. public let tdeCredentialArn: String? - /// Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case. Default VPC:true VPC:false If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private. + /// The name of the DB parameter group to associate with this DB instance. If this argument is omitted, the default DBParameterGroup for the specified engine is used. Constraints: Must be 1 to 255 letters, numbers, or hyphens. First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens + public let dBParameterGroupName: String? + /// Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case. Default VPC: true VPC: false If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private. public let publiclyAccessible: Bool? - /// Contains one or more identifiers of Aurora DB clusters that are Read Replicas of this DB instance. - public let readReplicaDBClusterIdentifiers: ReadReplicaDBClusterIdentifierList? + /// The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. For more information, see The Backup Window. Amazon Aurora Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see CreateDBCluster. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Instance Maintenance Window. Constraints: Must be in the format hh24:mi-hh24:mi. Must be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. + public let preferredBackupWindow: String? + /// A DB subnet group to associate with this DB instance. If there is no DB subnet group, then it is a non-VPC DB instance. + public let dBSubnetGroupName: String? + /// Indicates that the DB instance should be associated with the specified option group. Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance + public let optionGroupName: String? + /// The name for the master user. Amazon Aurora Not applicable. The name for the master user is managed by the DB cluster. For more information, see CreateDBCluster. MariaDB Constraints: Required for MariaDB. Must be 1 to 16 letters or numbers. Cannot be a reserved word for the chosen database engine. Microsoft SQL Server Constraints: Required for SQL Server. Must be 1 to 128 letters or numbers. The first character must be a letter. Cannot be a reserved word for the chosen database engine. MySQL Constraints: Required for MySQL. Must be 1 to 16 letters or numbers. First character must be a letter. Cannot be a reserved word for the chosen database engine. Oracle Constraints: Required for Oracle. Must be 1 to 30 letters or numbers. First character must be a letter. Cannot be a reserved word for the chosen database engine. PostgreSQL Constraints: Required for PostgreSQL. Must be 1 to 63 letters or numbers. First character must be a letter. Cannot be a reserved word for the chosen database engine. + public let masterUsername: String? + /// The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to Setting Up and Enabling Enhanced Monitoring. If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value. + public let monitoringRoleArn: String? + /// The name of the database engine to be used for this instance. Not every database engine is available for every AWS Region. Valid Values: aurora aurora-postgresql mariadb mysql oracle-ee oracle-se2 oracle-se1 oracle-se postgres sqlserver-ee sqlserver-se sqlserver-ex sqlserver-web + public let engine: String + /// The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0. Valid Values: 0, 1, 5, 10, 15, 30, 60 + public let monitoringInterval: Int32? + /// Specifies whether the DB instance is encrypted. Amazon Aurora Not applicable. The encryption for DB instances is managed by the DB cluster. For more information, see CreateDBCluster. Default: false + public let storageEncrypted: Bool? + /// The port number on which the database accepts connections. MySQL Default: 3306 Valid Values: 1150-65535 Type: Integer MariaDB Default: 3306 Valid Values: 1150-65535 Type: Integer PostgreSQL Default: 5432 Valid Values: 1150-65535 Type: Integer Oracle Default: 1521 Valid Values: 1150-65535 SQL Server Default: 1433 Valid Values: 1150-65535 except for 1434, 3389, 47001, 49152, and 49152 through 49156. Amazon Aurora Default: 3306 Valid Values: 1150-65535 Type: Integer + public let port: Int32? + /// The DB instance identifier. This parameter is stored as a lowercase string. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: mydbinstance + public let dBInstanceIdentifier: String - public init(vpcSecurityGroups: VpcSecurityGroupMembershipList? = nil, domainMemberships: DomainMembershipList? = nil, dBInstanceStatus: String? = nil, dBParameterGroups: DBParameterGroupStatusList? = nil, dBSecurityGroups: DBSecurityGroupMembershipList? = nil, availabilityZone: String? = nil, characterSetName: String? = nil, autoMinorVersionUpgrade: Bool? = nil, iops: Int32? = nil, dBClusterIdentifier: String? = nil, engineVersion: String? = nil, latestRestorableTime: TimeStamp? = nil, dbiResourceId: String? = nil, endpoint: Endpoint? = nil, dBInstanceClass: String? = nil, instanceCreateTime: TimeStamp? = nil, multiAZ: Bool? = nil, allocatedStorage: Int32? = nil, licenseModel: String? = nil, dbInstancePort: Int32? = nil, preferredBackupWindow: String? = nil, iAMDatabaseAuthenticationEnabled: Bool? = nil, monitoringRoleArn: String? = nil, statusInfos: DBInstanceStatusInfoList? = nil, masterUsername: String? = nil, secondaryAvailabilityZone: String? = nil, engine: String? = nil, readReplicaDBInstanceIdentifiers: ReadReplicaDBInstanceIdentifierList? = nil, dBSubnetGroup: DBSubnetGroup? = nil, storageEncrypted: Bool? = nil, monitoringInterval: Int32? = nil, dBInstanceIdentifier: String? = nil, dBName: String? = nil, enhancedMonitoringResourceArn: String? = nil, backupRetentionPeriod: Int32? = nil, optionGroupMemberships: OptionGroupMembershipList? = nil, cACertificateIdentifier: String? = nil, promotionTier: Int32? = nil, preferredMaintenanceWindow: String? = nil, copyTagsToSnapshot: Bool? = nil, dBInstanceArn: String? = nil, kmsKeyId: String? = nil, pendingModifiedValues: PendingModifiedValues? = nil, readReplicaSourceDBInstanceIdentifier: String? = nil, timezone: String? = nil, storageType: String? = nil, tdeCredentialArn: String? = nil, publiclyAccessible: Bool? = nil, readReplicaDBClusterIdentifiers: ReadReplicaDBClusterIdentifierList? = nil) { - self.vpcSecurityGroups = vpcSecurityGroups - self.domainMemberships = domainMemberships - self.dBInstanceStatus = dBInstanceStatus - self.dBParameterGroups = dBParameterGroups + public init(dBName: String? = nil, tdeCredentialPassword: String? = nil, enablePerformanceInsights: Bool? = nil, masterUserPassword: String? = nil, iops: Int32? = nil, dBSecurityGroups: DBSecurityGroupNameList? = nil, characterSetName: String? = nil, availabilityZone: String? = nil, autoMinorVersionUpgrade: Bool? = nil, backupRetentionPeriod: Int32? = nil, performanceInsightsKMSKeyId: String? = nil, engineVersion: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, promotionTier: Int32? = nil, preferredMaintenanceWindow: String? = nil, domainIAMRoleName: String? = nil, copyTagsToSnapshot: Bool? = nil, dBClusterIdentifier: String? = nil, dBInstanceClass: String, domain: String? = nil, kmsKeyId: String? = nil, multiAZ: Bool? = nil, tags: TagList? = nil, timezone: String? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, allocatedStorage: Int32? = nil, storageType: String? = nil, licenseModel: String? = nil, tdeCredentialArn: String? = nil, dBParameterGroupName: String? = nil, publiclyAccessible: Bool? = nil, preferredBackupWindow: String? = nil, dBSubnetGroupName: String? = nil, optionGroupName: String? = nil, masterUsername: String? = nil, monitoringRoleArn: String? = nil, engine: String, monitoringInterval: Int32? = nil, storageEncrypted: Bool? = nil, port: Int32? = nil, dBInstanceIdentifier: String) { + self.dBName = dBName + self.tdeCredentialPassword = tdeCredentialPassword + self.enablePerformanceInsights = enablePerformanceInsights + self.masterUserPassword = masterUserPassword + self.iops = iops self.dBSecurityGroups = dBSecurityGroups - self.availabilityZone = availabilityZone self.characterSetName = characterSetName + self.availabilityZone = availabilityZone self.autoMinorVersionUpgrade = autoMinorVersionUpgrade - self.iops = iops - self.dBClusterIdentifier = dBClusterIdentifier + self.backupRetentionPeriod = backupRetentionPeriod + self.performanceInsightsKMSKeyId = performanceInsightsKMSKeyId self.engineVersion = engineVersion - self.latestRestorableTime = latestRestorableTime - self.dbiResourceId = dbiResourceId - self.endpoint = endpoint + self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication + self.promotionTier = promotionTier + self.preferredMaintenanceWindow = preferredMaintenanceWindow + self.domainIAMRoleName = domainIAMRoleName + self.copyTagsToSnapshot = copyTagsToSnapshot + self.dBClusterIdentifier = dBClusterIdentifier self.dBInstanceClass = dBInstanceClass - self.instanceCreateTime = instanceCreateTime + self.domain = domain + self.kmsKeyId = kmsKeyId self.multiAZ = multiAZ + self.tags = tags + self.timezone = timezone + self.vpcSecurityGroupIds = vpcSecurityGroupIds self.allocatedStorage = allocatedStorage + self.storageType = storageType self.licenseModel = licenseModel - self.dbInstancePort = dbInstancePort + self.tdeCredentialArn = tdeCredentialArn + self.dBParameterGroupName = dBParameterGroupName + self.publiclyAccessible = publiclyAccessible self.preferredBackupWindow = preferredBackupWindow - self.iAMDatabaseAuthenticationEnabled = iAMDatabaseAuthenticationEnabled - self.monitoringRoleArn = monitoringRoleArn - self.statusInfos = statusInfos + self.dBSubnetGroupName = dBSubnetGroupName + self.optionGroupName = optionGroupName self.masterUsername = masterUsername - self.secondaryAvailabilityZone = secondaryAvailabilityZone + self.monitoringRoleArn = monitoringRoleArn self.engine = engine - self.readReplicaDBInstanceIdentifiers = readReplicaDBInstanceIdentifiers - self.dBSubnetGroup = dBSubnetGroup - self.storageEncrypted = storageEncrypted self.monitoringInterval = monitoringInterval + self.storageEncrypted = storageEncrypted + self.port = port self.dBInstanceIdentifier = dBInstanceIdentifier - self.dBName = dBName - self.enhancedMonitoringResourceArn = enhancedMonitoringResourceArn - self.backupRetentionPeriod = backupRetentionPeriod - self.optionGroupMemberships = optionGroupMemberships - self.cACertificateIdentifier = cACertificateIdentifier - self.promotionTier = promotionTier - self.preferredMaintenanceWindow = preferredMaintenanceWindow - self.copyTagsToSnapshot = copyTagsToSnapshot - self.dBInstanceArn = dBInstanceArn - self.kmsKeyId = kmsKeyId - self.pendingModifiedValues = pendingModifiedValues - self.readReplicaSourceDBInstanceIdentifier = readReplicaSourceDBInstanceIdentifier - self.timezone = timezone - self.storageType = storageType - self.tdeCredentialArn = tdeCredentialArn - self.publiclyAccessible = publiclyAccessible - self.readReplicaDBClusterIdentifiers = readReplicaDBClusterIdentifiers } private enum CodingKeys: String, CodingKey { - case vpcSecurityGroups = "VpcSecurityGroups" - case domainMemberships = "DomainMemberships" - case dBInstanceStatus = "DBInstanceStatus" - case dBParameterGroups = "DBParameterGroups" + case dBName = "DBName" + case tdeCredentialPassword = "TdeCredentialPassword" + case enablePerformanceInsights = "EnablePerformanceInsights" + case masterUserPassword = "MasterUserPassword" + case iops = "Iops" case dBSecurityGroups = "DBSecurityGroups" - case availabilityZone = "AvailabilityZone" case characterSetName = "CharacterSetName" + case availabilityZone = "AvailabilityZone" case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" - case iops = "Iops" - case dBClusterIdentifier = "DBClusterIdentifier" - case engineVersion = "EngineVersion" - case latestRestorableTime = "LatestRestorableTime" - case dbiResourceId = "DbiResourceId" - case endpoint = "Endpoint" - case dBInstanceClass = "DBInstanceClass" - case instanceCreateTime = "InstanceCreateTime" - case multiAZ = "MultiAZ" - case allocatedStorage = "AllocatedStorage" - case licenseModel = "LicenseModel" - case dbInstancePort = "DbInstancePort" - case preferredBackupWindow = "PreferredBackupWindow" - case iAMDatabaseAuthenticationEnabled = "IAMDatabaseAuthenticationEnabled" - case monitoringRoleArn = "MonitoringRoleArn" - case statusInfos = "StatusInfos" - case masterUsername = "MasterUsername" - case secondaryAvailabilityZone = "SecondaryAvailabilityZone" - case engine = "Engine" - case readReplicaDBInstanceIdentifiers = "ReadReplicaDBInstanceIdentifiers" - case dBSubnetGroup = "DBSubnetGroup" - case storageEncrypted = "StorageEncrypted" - case monitoringInterval = "MonitoringInterval" - case dBInstanceIdentifier = "DBInstanceIdentifier" - case dBName = "DBName" - case enhancedMonitoringResourceArn = "EnhancedMonitoringResourceArn" case backupRetentionPeriod = "BackupRetentionPeriod" - case optionGroupMemberships = "OptionGroupMemberships" - case cACertificateIdentifier = "CACertificateIdentifier" + case performanceInsightsKMSKeyId = "PerformanceInsightsKMSKeyId" + case engineVersion = "EngineVersion" + case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" case promotionTier = "PromotionTier" case preferredMaintenanceWindow = "PreferredMaintenanceWindow" + case domainIAMRoleName = "DomainIAMRoleName" case copyTagsToSnapshot = "CopyTagsToSnapshot" - case dBInstanceArn = "DBInstanceArn" + case dBClusterIdentifier = "DBClusterIdentifier" + case dBInstanceClass = "DBInstanceClass" + case domain = "Domain" case kmsKeyId = "KmsKeyId" - case pendingModifiedValues = "PendingModifiedValues" - case readReplicaSourceDBInstanceIdentifier = "ReadReplicaSourceDBInstanceIdentifier" + case multiAZ = "MultiAZ" + case tags = "Tags" case timezone = "Timezone" + case vpcSecurityGroupIds = "VpcSecurityGroupIds" + case allocatedStorage = "AllocatedStorage" case storageType = "StorageType" + case licenseModel = "LicenseModel" case tdeCredentialArn = "TdeCredentialArn" + case dBParameterGroupName = "DBParameterGroupName" case publiclyAccessible = "PubliclyAccessible" - case readReplicaDBClusterIdentifiers = "ReadReplicaDBClusterIdentifiers" - } - } - - public struct ModifyDBSnapshotAttributeResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshotAttributesResult", required: false, type: .structure) - ] - public let dBSnapshotAttributesResult: DBSnapshotAttributesResult? - - public init(dBSnapshotAttributesResult: DBSnapshotAttributesResult? = nil) { - self.dBSnapshotAttributesResult = dBSnapshotAttributesResult - } - - private enum CodingKeys: String, CodingKey { - case dBSnapshotAttributesResult = "DBSnapshotAttributesResult" - } - } - - public struct RevokeDBSecurityGroupIngressResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSecurityGroup", required: false, type: .structure) - ] - public let dBSecurityGroup: DBSecurityGroup? - - public init(dBSecurityGroup: DBSecurityGroup? = nil) { - self.dBSecurityGroup = dBSecurityGroup - } - - private enum CodingKeys: String, CodingKey { - case dBSecurityGroup = "DBSecurityGroup" - } - } - - public struct UpgradeTarget: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Engine", required: false, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string), - AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "AutoUpgrade", required: false, type: .boolean), - AWSShapeMember(label: "IsMajorVersionUpgrade", required: false, type: .boolean) - ] - /// The name of the upgrade target database engine. - public let engine: String? - /// The version of the database engine that a DB instance can be upgraded to. - public let description: String? - /// The version number of the upgrade target database engine. - public let engineVersion: String? - /// A value that indicates whether the target version will be applied to any source DB instances that have AutoMinorVersionUpgrade set to true. - public let autoUpgrade: Bool? - /// A value that indicates whether a database engine will be upgraded to a major version. - public let isMajorVersionUpgrade: Bool? - - public init(engine: String? = nil, description: String? = nil, engineVersion: String? = nil, autoUpgrade: Bool? = nil, isMajorVersionUpgrade: Bool? = nil) { - self.engine = engine - self.description = description - self.engineVersion = engineVersion - self.autoUpgrade = autoUpgrade - self.isMajorVersionUpgrade = isMajorVersionUpgrade - } - - private enum CodingKeys: String, CodingKey { + case preferredBackupWindow = "PreferredBackupWindow" + case dBSubnetGroupName = "DBSubnetGroupName" + case optionGroupName = "OptionGroupName" + case masterUsername = "MasterUsername" + case monitoringRoleArn = "MonitoringRoleArn" case engine = "Engine" - case description = "Description" - case engineVersion = "EngineVersion" - case autoUpgrade = "AutoUpgrade" - case isMajorVersionUpgrade = "IsMajorVersionUpgrade" + case monitoringInterval = "MonitoringInterval" + case storageEncrypted = "StorageEncrypted" + case port = "Port" + case dBInstanceIdentifier = "DBInstanceIdentifier" } } - public struct DBSecurityGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "DBSecurityGroups", required: false, type: .structure) + public struct ApplyPendingMaintenanceActionMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceIdentifier", required: true, type: .string), + AWSShapeMember(label: "OptInType", required: true, type: .string), + AWSShapeMember(label: "ApplyAction", required: true, type: .string) ] - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// A list of DBSecurityGroup instances. - public let dBSecurityGroups: DBSecurityGroups? + /// The RDS Amazon Resource Name (ARN) of the resource that the pending maintenance action applies to. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). + public let resourceIdentifier: String + /// A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type immediate can't be undone. Valid values: immediate - Apply the maintenance action immediately. next-maintenance - Apply the maintenance action during the next maintenance window for the resource. undo-opt-in - Cancel any existing next-maintenance opt-in requests. + public let optInType: String + /// The pending maintenance action to apply to this resource. Valid values: system-update, db-upgrade + public let applyAction: String - public init(marker: String? = nil, dBSecurityGroups: DBSecurityGroups? = nil) { - self.marker = marker - self.dBSecurityGroups = dBSecurityGroups + public init(resourceIdentifier: String, optInType: String, applyAction: String) { + self.resourceIdentifier = resourceIdentifier + self.optInType = optInType + self.applyAction = applyAction } private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case dBSecurityGroups = "DBSecurityGroups" + case resourceIdentifier = "ResourceIdentifier" + case optInType = "OptInType" + case applyAction = "ApplyAction" } } - public struct ApplyPendingMaintenanceActionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourcePendingMaintenanceActions", required: false, type: .structure) + public struct TagList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tag", required: false, type: .list) ] - public let resourcePendingMaintenanceActions: ResourcePendingMaintenanceActions? + public let tag: [Tag]? - public init(resourcePendingMaintenanceActions: ResourcePendingMaintenanceActions? = nil) { - self.resourcePendingMaintenanceActions = resourcePendingMaintenanceActions + public init(tag: [Tag]? = nil) { + self.tag = tag } private enum CodingKeys: String, CodingKey { - case resourcePendingMaintenanceActions = "ResourcePendingMaintenanceActions" + case tag = "Tag" } } - public struct SourceRegionList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceRegion", required: false, type: .list) + public struct CreateDBClusterParameterGroupResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterParameterGroup", required: false, type: .structure) ] - public let sourceRegion: [SourceRegion]? + public let dBClusterParameterGroup: DBClusterParameterGroup? - public init(sourceRegion: [SourceRegion]? = nil) { - self.sourceRegion = sourceRegion + public init(dBClusterParameterGroup: DBClusterParameterGroup? = nil) { + self.dBClusterParameterGroup = dBClusterParameterGroup } private enum CodingKeys: String, CodingKey { - case sourceRegion = "SourceRegion" + case dBClusterParameterGroup = "DBClusterParameterGroup" } } - public struct DescribeAccountAttributesMessage: AWSShape { + public struct ModifyDBSnapshotAttributeMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AttributeName", required: true, type: .string), + AWSShapeMember(label: "ValuesToAdd", required: false, type: .structure), + AWSShapeMember(label: "ValuesToRemove", required: false, type: .structure), + AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string) + ] + /// The name of the DB snapshot attribute to modify. To manage authorization for other AWS accounts to copy or restore a manual DB snapshot, set this value to restore. + public let attributeName: String + /// A list of DB snapshot attributes to add to the attribute specified by AttributeName. To authorize other AWS accounts to copy or restore a manual snapshot, set this list to include one or more AWS account IDs, or all to make the manual DB snapshot restorable by any AWS account. Do not add the all value for any manual DB snapshots that contain private information that you don't want available to all AWS accounts. + public let valuesToAdd: AttributeValueList? + /// A list of DB snapshot attributes to remove from the attribute specified by AttributeName. To remove authorization for other AWS accounts to copy or restore a manual snapshot, set this list to include one or more AWS account identifiers, or all to remove authorization for any AWS account to copy or restore the DB snapshot. If you specify all, an AWS account whose account ID is explicitly added to the restore attribute can still copy or restore the manual DB snapshot. + public let valuesToRemove: AttributeValueList? + /// The identifier for the DB snapshot to modify the attributes for. + public let dBSnapshotIdentifier: String + + public init(attributeName: String, valuesToAdd: AttributeValueList? = nil, valuesToRemove: AttributeValueList? = nil, dBSnapshotIdentifier: String) { + self.attributeName = attributeName + self.valuesToAdd = valuesToAdd + self.valuesToRemove = valuesToRemove + self.dBSnapshotIdentifier = dBSnapshotIdentifier + } + private enum CodingKeys: String, CodingKey { + case attributeName = "AttributeName" + case valuesToAdd = "ValuesToAdd" + case valuesToRemove = "ValuesToRemove" + case dBSnapshotIdentifier = "DBSnapshotIdentifier" + } } - public struct DescribeOptionGroupOptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "EngineName", required: true, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "MajorEngineVersion", required: false, type: .string) + public struct DBCluster: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterArn", required: false, type: .string), + AWSShapeMember(label: "VpcSecurityGroups", required: false, type: .structure), + AWSShapeMember(label: "ReadReplicaIdentifiers", required: false, type: .structure), + AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), + AWSShapeMember(label: "HostedZoneId", required: false, type: .string), + AWSShapeMember(label: "CharacterSetName", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "LatestRestorableTime", required: false, type: .timestamp), + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "DBClusterIdentifier", required: false, type: .string), + AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), + AWSShapeMember(label: "DBClusterParameterGroup", required: false, type: .string), + AWSShapeMember(label: "ReplicationSourceIdentifier", required: false, type: .string), + AWSShapeMember(label: "PercentProgress", required: false, type: .string), + AWSShapeMember(label: "ReaderEndpoint", required: false, type: .string), + AWSShapeMember(label: "DbClusterResourceId", required: false, type: .string), + AWSShapeMember(label: "Endpoint", required: false, type: .string), + AWSShapeMember(label: "KmsKeyId", required: false, type: .string), + AWSShapeMember(label: "AvailabilityZones", required: false, type: .structure), + AWSShapeMember(label: "DBClusterOptionGroupMemberships", required: false, type: .structure), + AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), + AWSShapeMember(label: "DBClusterMembers", required: false, type: .structure), + AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), + AWSShapeMember(label: "EarliestRestorableTime", required: false, type: .timestamp), + AWSShapeMember(label: "ClusterCreateTime", required: false, type: .timestamp), + AWSShapeMember(label: "CloneGroupId", required: false, type: .string), + AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), + AWSShapeMember(label: "IAMDatabaseAuthenticationEnabled", required: false, type: .boolean), + AWSShapeMember(label: "MasterUsername", required: false, type: .string), + AWSShapeMember(label: "DatabaseName", required: false, type: .string), + AWSShapeMember(label: "Engine", required: false, type: .string), + AWSShapeMember(label: "DBSubnetGroup", required: false, type: .string), + AWSShapeMember(label: "StorageEncrypted", required: false, type: .boolean), + AWSShapeMember(label: "AssociatedRoles", required: false, type: .structure), + AWSShapeMember(label: "Port", required: false, type: .integer) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// This parameter is not currently supported. - public let filters: FilterList? - /// A required parameter. Options available for the given engine name will be described. - public let engineName: String - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// If specified, filters the results to include only options for the specified major engine version. - public let majorEngineVersion: String? + /// The Amazon Resource Name (ARN) for the DB cluster. + public let dBClusterArn: String? + /// Provides a list of VPC security groups that the DB cluster belongs to. + public let vpcSecurityGroups: VpcSecurityGroupMembershipList? + /// Contains one or more identifiers of the Read Replicas associated with this DB cluster. + public let readReplicaIdentifiers: ReadReplicaIdentifierList? + /// Specifies the number of days for which automatic DB snapshots are retained. + public let backupRetentionPeriod: Int32? + /// Specifies the ID that Amazon Route 53 assigns when you create a hosted zone. + public let hostedZoneId: String? + /// If present, specifies the name of the character set that this cluster is associated with. + public let characterSetName: String? + /// Specifies the current state of this DB cluster. + public let status: String? + /// Specifies the latest time to which a database can be restored with point-in-time restore. + public let latestRestorableTime: TimeStamp? + /// Indicates the database engine version. + public let engineVersion: String? + /// Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster. + public let dBClusterIdentifier: String? + /// Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). + public let preferredMaintenanceWindow: String? + /// Specifies the name of the DB cluster parameter group for the DB cluster. + public let dBClusterParameterGroup: String? + /// Contains the identifier of the source DB cluster if this DB cluster is a Read Replica. + public let replicationSourceIdentifier: String? + /// Specifies the progress of the operation as a percentage. + public let percentProgress: String? + /// The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster. If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint. + public let readerEndpoint: String? + /// The AWS Region-unique, immutable identifier for the DB cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed. + public let dbClusterResourceId: String? + /// Specifies the connection endpoint for the primary instance of the DB cluster. + public let endpoint: String? + /// If StorageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster. + public let kmsKeyId: String? + /// Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in. + public let availabilityZones: AvailabilityZones? + /// Provides the list of option group memberships for this DB cluster. + public let dBClusterOptionGroupMemberships: DBClusterOptionGroupMemberships? + /// Specifies whether the DB cluster has instances in multiple Availability Zones. + public let multiAZ: Bool? + /// Provides the list of instances that make up the DB cluster. + public let dBClusterMembers: DBClusterMemberList? + /// For all database engines except Amazon Aurora, AllocatedStorage specifies the allocated storage size in gigabytes (GB). For Aurora, AllocatedStorage always returns 1, because Aurora DB cluster storage size is not fixed, but instead automatically adjusts as needed. + public let allocatedStorage: Int32? + /// Specifies the earliest time to which a database can be restored with point-in-time restore. + public let earliestRestorableTime: TimeStamp? + /// Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC). + public let clusterCreateTime: TimeStamp? + /// Identifies the clone group to which the DB cluster is associated. + public let cloneGroupId: String? + /// Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod. + public let preferredBackupWindow: String? + /// True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. + public let iAMDatabaseAuthenticationEnabled: Bool? + /// Contains the master username for the DB cluster. + public let masterUsername: String? + /// Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster. + public let databaseName: String? + /// Provides the name of the database engine to be used for this DB cluster. + public let engine: String? + /// Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group. + public let dBSubnetGroup: String? + /// Specifies whether the DB cluster is encrypted. + public let storageEncrypted: Bool? + /// Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf. + public let associatedRoles: DBClusterRoles? + /// Specifies the port that the database engine is listening on. + public let port: Int32? - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, engineName: String, marker: String? = nil, majorEngineVersion: String? = nil) { - self.maxRecords = maxRecords - self.filters = filters - self.engineName = engineName - self.marker = marker - self.majorEngineVersion = majorEngineVersion + public init(dBClusterArn: String? = nil, vpcSecurityGroups: VpcSecurityGroupMembershipList? = nil, readReplicaIdentifiers: ReadReplicaIdentifierList? = nil, backupRetentionPeriod: Int32? = nil, hostedZoneId: String? = nil, characterSetName: String? = nil, status: String? = nil, latestRestorableTime: TimeStamp? = nil, engineVersion: String? = nil, dBClusterIdentifier: String? = nil, preferredMaintenanceWindow: String? = nil, dBClusterParameterGroup: String? = nil, replicationSourceIdentifier: String? = nil, percentProgress: String? = nil, readerEndpoint: String? = nil, dbClusterResourceId: String? = nil, endpoint: String? = nil, kmsKeyId: String? = nil, availabilityZones: AvailabilityZones? = nil, dBClusterOptionGroupMemberships: DBClusterOptionGroupMemberships? = nil, multiAZ: Bool? = nil, dBClusterMembers: DBClusterMemberList? = nil, allocatedStorage: Int32? = nil, earliestRestorableTime: TimeStamp? = nil, clusterCreateTime: TimeStamp? = nil, cloneGroupId: String? = nil, preferredBackupWindow: String? = nil, iAMDatabaseAuthenticationEnabled: Bool? = nil, masterUsername: String? = nil, databaseName: String? = nil, engine: String? = nil, dBSubnetGroup: String? = nil, storageEncrypted: Bool? = nil, associatedRoles: DBClusterRoles? = nil, port: Int32? = nil) { + self.dBClusterArn = dBClusterArn + self.vpcSecurityGroups = vpcSecurityGroups + self.readReplicaIdentifiers = readReplicaIdentifiers + self.backupRetentionPeriod = backupRetentionPeriod + self.hostedZoneId = hostedZoneId + self.characterSetName = characterSetName + self.status = status + self.latestRestorableTime = latestRestorableTime + self.engineVersion = engineVersion + self.dBClusterIdentifier = dBClusterIdentifier + self.preferredMaintenanceWindow = preferredMaintenanceWindow + self.dBClusterParameterGroup = dBClusterParameterGroup + self.replicationSourceIdentifier = replicationSourceIdentifier + self.percentProgress = percentProgress + self.readerEndpoint = readerEndpoint + self.dbClusterResourceId = dbClusterResourceId + self.endpoint = endpoint + self.kmsKeyId = kmsKeyId + self.availabilityZones = availabilityZones + self.dBClusterOptionGroupMemberships = dBClusterOptionGroupMemberships + self.multiAZ = multiAZ + self.dBClusterMembers = dBClusterMembers + self.allocatedStorage = allocatedStorage + self.earliestRestorableTime = earliestRestorableTime + self.clusterCreateTime = clusterCreateTime + self.cloneGroupId = cloneGroupId + self.preferredBackupWindow = preferredBackupWindow + self.iAMDatabaseAuthenticationEnabled = iAMDatabaseAuthenticationEnabled + self.masterUsername = masterUsername + self.databaseName = databaseName + self.engine = engine + self.dBSubnetGroup = dBSubnetGroup + self.storageEncrypted = storageEncrypted + self.associatedRoles = associatedRoles + self.port = port } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case filters = "Filters" - case engineName = "EngineName" - case marker = "Marker" - case majorEngineVersion = "MajorEngineVersion" + case dBClusterArn = "DBClusterArn" + case vpcSecurityGroups = "VpcSecurityGroups" + case readReplicaIdentifiers = "ReadReplicaIdentifiers" + case backupRetentionPeriod = "BackupRetentionPeriod" + case hostedZoneId = "HostedZoneId" + case characterSetName = "CharacterSetName" + case status = "Status" + case latestRestorableTime = "LatestRestorableTime" + case engineVersion = "EngineVersion" + case dBClusterIdentifier = "DBClusterIdentifier" + case preferredMaintenanceWindow = "PreferredMaintenanceWindow" + case dBClusterParameterGroup = "DBClusterParameterGroup" + case replicationSourceIdentifier = "ReplicationSourceIdentifier" + case percentProgress = "PercentProgress" + case readerEndpoint = "ReaderEndpoint" + case dbClusterResourceId = "DbClusterResourceId" + case endpoint = "Endpoint" + case kmsKeyId = "KmsKeyId" + case availabilityZones = "AvailabilityZones" + case dBClusterOptionGroupMemberships = "DBClusterOptionGroupMemberships" + case multiAZ = "MultiAZ" + case dBClusterMembers = "DBClusterMembers" + case allocatedStorage = "AllocatedStorage" + case earliestRestorableTime = "EarliestRestorableTime" + case clusterCreateTime = "ClusterCreateTime" + case cloneGroupId = "CloneGroupId" + case preferredBackupWindow = "PreferredBackupWindow" + case iAMDatabaseAuthenticationEnabled = "IAMDatabaseAuthenticationEnabled" + case masterUsername = "MasterUsername" + case databaseName = "DatabaseName" + case engine = "Engine" + case dBSubnetGroup = "DBSubnetGroup" + case storageEncrypted = "StorageEncrypted" + case associatedRoles = "AssociatedRoles" + case port = "Port" } } - public struct CreateDBSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string), - AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) + public struct CreateDBClusterSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterSnapshot", required: false, type: .structure) ] - public let tags: TagList? - /// The identifier for the DB snapshot. Constraints: Cannot be null, empty, or blank Must contain from 1 to 255 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-snapshot-id - public let dBSnapshotIdentifier: String - /// The DB instance identifier. This is the unique key that identifies a DB instance. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBInstanceIdentifier: String + public let dBClusterSnapshot: DBClusterSnapshot? - public init(tags: TagList? = nil, dBSnapshotIdentifier: String, dBInstanceIdentifier: String) { - self.tags = tags - self.dBSnapshotIdentifier = dBSnapshotIdentifier - self.dBInstanceIdentifier = dBInstanceIdentifier + public init(dBClusterSnapshot: DBClusterSnapshot? = nil) { + self.dBClusterSnapshot = dBClusterSnapshot } private enum CodingKeys: String, CodingKey { - case tags = "Tags" - case dBSnapshotIdentifier = "DBSnapshotIdentifier" - case dBInstanceIdentifier = "DBInstanceIdentifier" + case dBClusterSnapshot = "DBClusterSnapshot" } } - public struct CreateOptionGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionGroupName", required: true, type: .string), - AWSShapeMember(label: "EngineName", required: true, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "OptionGroupDescription", required: true, type: .string), - AWSShapeMember(label: "MajorEngineVersion", required: true, type: .string) + public struct ModifyDBClusterSnapshotAttributeResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterSnapshotAttributesResult", required: false, type: .structure) ] - /// Specifies the name of the option group to be created. Constraints: Must be 1 to 255 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: myoptiongroup - public let optionGroupName: String - /// Specifies the name of the engine that this option group should be associated with. - public let engineName: String - public let tags: TagList? - /// The description of the option group. - public let optionGroupDescription: String - /// Specifies the major version of the engine that this option group should be associated with. - public let majorEngineVersion: String + public let dBClusterSnapshotAttributesResult: DBClusterSnapshotAttributesResult? - public init(optionGroupName: String, engineName: String, tags: TagList? = nil, optionGroupDescription: String, majorEngineVersion: String) { - self.optionGroupName = optionGroupName - self.engineName = engineName - self.tags = tags - self.optionGroupDescription = optionGroupDescription - self.majorEngineVersion = majorEngineVersion + public init(dBClusterSnapshotAttributesResult: DBClusterSnapshotAttributesResult? = nil) { + self.dBClusterSnapshotAttributesResult = dBClusterSnapshotAttributesResult } private enum CodingKeys: String, CodingKey { - case optionGroupName = "OptionGroupName" - case engineName = "EngineName" - case tags = "Tags" - case optionGroupDescription = "OptionGroupDescription" - case majorEngineVersion = "MajorEngineVersion" + case dBClusterSnapshotAttributesResult = "DBClusterSnapshotAttributesResult" } } - public struct CertificateList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Certificate", required: false, type: .list) + public struct DescribeDBLogFilesList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DescribeDBLogFilesDetails", required: false, type: .list) ] - public let certificate: [Certificate]? + public let describeDBLogFilesDetails: [DescribeDBLogFilesDetails]? - public init(certificate: [Certificate]? = nil) { - self.certificate = certificate + public init(describeDBLogFilesDetails: [DescribeDBLogFilesDetails]? = nil) { + self.describeDBLogFilesDetails = describeDBLogFilesDetails } private enum CodingKeys: String, CodingKey { - case certificate = "Certificate" + case describeDBLogFilesDetails = "DescribeDBLogFilesDetails" } } - public struct DescribeDBClusterParameterGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "DBClusterParameterGroupName", required: false, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string) + public struct ReservedDBInstanceMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "ReservedDBInstances", required: false, type: .structure) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// This parameter is not currently supported. - public let filters: FilterList? - /// The name of a specific DB cluster parameter group to return details for. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBClusterParameterGroupName: String? - /// An optional pagination token provided by a previous DescribeDBClusterParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? + /// A list of reserved DB instances. + public let reservedDBInstances: ReservedDBInstanceList? - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, dBClusterParameterGroupName: String? = nil, marker: String? = nil) { - self.maxRecords = maxRecords - self.filters = filters - self.dBClusterParameterGroupName = dBClusterParameterGroupName + public init(marker: String? = nil, reservedDBInstances: ReservedDBInstanceList? = nil) { self.marker = marker + self.reservedDBInstances = reservedDBInstances } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case filters = "Filters" - case dBClusterParameterGroupName = "DBClusterParameterGroupName" case marker = "Marker" + case reservedDBInstances = "ReservedDBInstances" } } - public struct DescribeSourceRegionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DescribeDBClusterParametersMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Source", required: false, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "RegionName", required: false, type: .string) + AWSShapeMember(label: "DBClusterParameterGroupName", required: true, type: .string) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. public let maxRecords: Int32? /// This parameter is not currently supported. public let filters: FilterList? - /// An optional pagination token provided by a previous DescribeSourceRegions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + /// A value that indicates to return only parameters for a specific source. Parameter sources can be engine, service, or customer. + public let source: String? + /// An optional pagination token provided by a previous DescribeDBClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? - /// The source region name. For example, us-east-1. Constraints: Must specify a valid AWS Region name. - public let regionName: String? + /// The name of a specific DB cluster parameter group to return parameter details for. Constraints: If supplied, must match the name of an existing DBClusterParameterGroup. + public let dBClusterParameterGroupName: String - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil, regionName: String? = nil) { + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, source: String? = nil, marker: String? = nil, dBClusterParameterGroupName: String) { self.maxRecords = maxRecords self.filters = filters + self.source = source self.marker = marker - self.regionName = regionName + self.dBClusterParameterGroupName = dBClusterParameterGroupName } private enum CodingKeys: String, CodingKey { case maxRecords = "MaxRecords" case filters = "Filters" + case source = "Source" case marker = "Marker" - case regionName = "RegionName" + case dBClusterParameterGroupName = "DBClusterParameterGroupName" } } - public struct Certificate: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CertificateArn", required: false, type: .string), - AWSShapeMember(label: "Thumbprint", required: false, type: .string), - AWSShapeMember(label: "ValidFrom", required: false, type: .timestamp), - AWSShapeMember(label: "ValidTill", required: false, type: .timestamp), - AWSShapeMember(label: "CertificateIdentifier", required: false, type: .string), - AWSShapeMember(label: "CertificateType", required: false, type: .string) + public struct DeleteDBParameterGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBParameterGroupName", required: true, type: .string) ] - /// The Amazon Resource Name (ARN) for the certificate. - public let certificateArn: String? - /// The thumbprint of the certificate. - public let thumbprint: String? - /// The starting date from which the certificate is valid. - public let validFrom: TimeStamp? - /// The final date that the certificate continues to be valid. - public let validTill: TimeStamp? - /// The unique key that identifies a certificate. - public let certificateIdentifier: String? - /// The type of the certificate. - public let certificateType: String? + /// The name of the DB parameter group. Constraints: Must be the name of an existing DB parameter group You can't delete a default DB parameter group Cannot be associated with any DB instances + public let dBParameterGroupName: String - public init(certificateArn: String? = nil, thumbprint: String? = nil, validFrom: TimeStamp? = nil, validTill: TimeStamp? = nil, certificateIdentifier: String? = nil, certificateType: String? = nil) { - self.certificateArn = certificateArn - self.thumbprint = thumbprint - self.validFrom = validFrom - self.validTill = validTill - self.certificateIdentifier = certificateIdentifier - self.certificateType = certificateType + public init(dBParameterGroupName: String) { + self.dBParameterGroupName = dBParameterGroupName } private enum CodingKeys: String, CodingKey { - case certificateArn = "CertificateArn" - case thumbprint = "Thumbprint" - case validFrom = "ValidFrom" - case validTill = "ValidTill" - case certificateIdentifier = "CertificateIdentifier" - case certificateType = "CertificateType" + case dBParameterGroupName = "DBParameterGroupName" } } - public struct ReservedDBInstancesOffering: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ProductDescription", required: false, type: .string), - AWSShapeMember(label: "RecurringCharges", required: false, type: .structure), - AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "UsagePrice", required: false, type: .double), - AWSShapeMember(label: "CurrencyCode", required: false, type: .string), - AWSShapeMember(label: "ReservedDBInstancesOfferingId", required: false, type: .string), - AWSShapeMember(label: "Duration", required: false, type: .integer), - AWSShapeMember(label: "OfferingType", required: false, type: .string), - AWSShapeMember(label: "FixedPrice", required: false, type: .double), - AWSShapeMember(label: "DBInstanceClass", required: false, type: .string) + public struct OptionVersion: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "IsDefault", required: false, type: .boolean), + AWSShapeMember(label: "Version", required: false, type: .string) ] - /// The database engine used by the offering. - public let productDescription: String? - /// The recurring price charged to run this reserved DB instance. - public let recurringCharges: RecurringChargeList? - /// Indicates if the offering applies to Multi-AZ deployments. - public let multiAZ: Bool? - /// The hourly price charged for this offering. - public let usagePrice: Double? - /// The currency code for the reserved DB instance offering. - public let currencyCode: String? - /// The offering identifier. - public let reservedDBInstancesOfferingId: String? - /// The duration of the offering in seconds. - public let duration: Int32? - /// The offering type. - public let offeringType: String? - /// The fixed price charged for this offering. - public let fixedPrice: Double? - /// The DB instance class for the reserved DB instance. - public let dBInstanceClass: String? + /// True if the version is the default version of the option, and otherwise false. + public let isDefault: Bool? + /// The version of the option. + public let version: String? - public init(productDescription: String? = nil, recurringCharges: RecurringChargeList? = nil, multiAZ: Bool? = nil, usagePrice: Double? = nil, currencyCode: String? = nil, reservedDBInstancesOfferingId: String? = nil, duration: Int32? = nil, offeringType: String? = nil, fixedPrice: Double? = nil, dBInstanceClass: String? = nil) { - self.productDescription = productDescription - self.recurringCharges = recurringCharges - self.multiAZ = multiAZ - self.usagePrice = usagePrice - self.currencyCode = currencyCode - self.reservedDBInstancesOfferingId = reservedDBInstancesOfferingId - self.duration = duration - self.offeringType = offeringType - self.fixedPrice = fixedPrice - self.dBInstanceClass = dBInstanceClass + public init(isDefault: Bool? = nil, version: String? = nil) { + self.isDefault = isDefault + self.version = version } private enum CodingKeys: String, CodingKey { - case productDescription = "ProductDescription" - case recurringCharges = "RecurringCharges" - case multiAZ = "MultiAZ" - case usagePrice = "UsagePrice" - case currencyCode = "CurrencyCode" - case reservedDBInstancesOfferingId = "ReservedDBInstancesOfferingId" - case duration = "Duration" - case offeringType = "OfferingType" - case fixedPrice = "FixedPrice" - case dBInstanceClass = "DBInstanceClass" + case isDefault = "IsDefault" + case version = "Version" + } + } + + public struct CreateDBSecurityGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "DBSecurityGroupDescription", required: true, type: .string), + AWSShapeMember(label: "DBSecurityGroupName", required: true, type: .string) + ] + public let tags: TagList? + /// The description for the DB security group. + public let dBSecurityGroupDescription: String + /// The name for the DB security group. This value is stored as a lowercase string. Constraints: Must be 1 to 255 letters, numbers, or hyphens. First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Must not be "Default" Example: mysecuritygroup + public let dBSecurityGroupName: String + + public init(tags: TagList? = nil, dBSecurityGroupDescription: String, dBSecurityGroupName: String) { + self.tags = tags + self.dBSecurityGroupDescription = dBSecurityGroupDescription + self.dBSecurityGroupName = dBSecurityGroupName + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + case dBSecurityGroupDescription = "DBSecurityGroupDescription" + case dBSecurityGroupName = "DBSecurityGroupName" } } - public struct AvailabilityZone: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: false, type: .string) + public struct OptionGroupOptionSetting: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SettingName", required: false, type: .string), + AWSShapeMember(label: "AllowedValues", required: false, type: .string), + AWSShapeMember(label: "IsModifiable", required: false, type: .boolean), + AWSShapeMember(label: "DefaultValue", required: false, type: .string), + AWSShapeMember(label: "ApplyType", required: false, type: .string), + AWSShapeMember(label: "SettingDescription", required: false, type: .string) ] - /// The name of the availability zone. - public let name: String? + /// The name of the option group option. + public let settingName: String? + /// Indicates the acceptable values for the option group option. + public let allowedValues: String? + /// Boolean value where true indicates that this option group option can be changed from the default value. + public let isModifiable: Bool? + /// The default value for the option group option. + public let defaultValue: String? + /// The DB engine specific parameter type for the option group option. + public let applyType: String? + /// The description of the option group option. + public let settingDescription: String? - public init(name: String? = nil) { - self.name = name + public init(settingName: String? = nil, allowedValues: String? = nil, isModifiable: Bool? = nil, defaultValue: String? = nil, applyType: String? = nil, settingDescription: String? = nil) { + self.settingName = settingName + self.allowedValues = allowedValues + self.isModifiable = isModifiable + self.defaultValue = defaultValue + self.applyType = applyType + self.settingDescription = settingDescription } private enum CodingKeys: String, CodingKey { - case name = "Name" + case settingName = "SettingName" + case allowedValues = "AllowedValues" + case isModifiable = "IsModifiable" + case defaultValue = "DefaultValue" + case applyType = "ApplyType" + case settingDescription = "SettingDescription" } } - public struct CharacterSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CharacterSetDescription", required: false, type: .string), - AWSShapeMember(label: "CharacterSetName", required: false, type: .string) + public enum ApplyMethod: String, CustomStringConvertible, Codable { + case immediate = "immediate" + case pendingReboot = "pending-reboot" + public var description: String { return self.rawValue } + } + + public struct DomainMembershipList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainMembership", required: false, type: .list) ] - /// The description of the character set. - public let characterSetDescription: String? - /// The name of the character set. - public let characterSetName: String? + public let domainMembership: [DomainMembership]? - public init(characterSetDescription: String? = nil, characterSetName: String? = nil) { - self.characterSetDescription = characterSetDescription - self.characterSetName = characterSetName + public init(domainMembership: [DomainMembership]? = nil) { + self.domainMembership = domainMembership } private enum CodingKeys: String, CodingKey { - case characterSetDescription = "CharacterSetDescription" - case characterSetName = "CharacterSetName" + case domainMembership = "DomainMembership" } } - public struct ModifyEventSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SnsTopicArn", required: false, type: .string), - AWSShapeMember(label: "SubscriptionName", required: true, type: .string), - AWSShapeMember(label: "SourceType", required: false, type: .string), - AWSShapeMember(label: "EventCategories", required: false, type: .structure), - AWSShapeMember(label: "Enabled", required: false, type: .boolean) + public struct RestoreDBInstanceToPointInTimeResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBInstance", required: false, type: .structure) ] - /// The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it. - public let snsTopicArn: String? - /// The name of the RDS event notification subscription. - public let subscriptionName: String - /// The type of source that will be generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned. Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot - public let sourceType: String? - /// A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action. - public let eventCategories: EventCategoriesList? - /// A Boolean value; set to true to activate the subscription. - public let enabled: Bool? + public let dBInstance: DBInstance? - public init(snsTopicArn: String? = nil, subscriptionName: String, sourceType: String? = nil, eventCategories: EventCategoriesList? = nil, enabled: Bool? = nil) { - self.snsTopicArn = snsTopicArn - self.subscriptionName = subscriptionName - self.sourceType = sourceType - self.eventCategories = eventCategories - self.enabled = enabled + public init(dBInstance: DBInstance? = nil) { + self.dBInstance = dBInstance } private enum CodingKeys: String, CodingKey { - case snsTopicArn = "SnsTopicArn" - case subscriptionName = "SubscriptionName" - case sourceType = "SourceType" - case eventCategories = "EventCategories" - case enabled = "Enabled" + case dBInstance = "DBInstance" } } - public struct RestoreDBInstanceToPointInTimeMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Domain", required: false, type: .string), - AWSShapeMember(label: "Port", required: false, type: .integer), - AWSShapeMember(label: "DBName", required: false, type: .string), - AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "TdeCredentialPassword", required: false, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "LicenseModel", required: false, type: .string), - AWSShapeMember(label: "StorageType", required: false, type: .string), - AWSShapeMember(label: "TdeCredentialArn", required: false, type: .string), - AWSShapeMember(label: "RestoreTime", required: false, type: .timestamp), - AWSShapeMember(label: "Iops", required: false, type: .integer), - AWSShapeMember(label: "AvailabilityZone", required: false, type: .string), - AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), - AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), - AWSShapeMember(label: "TargetDBInstanceIdentifier", required: true, type: .string), - AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), - AWSShapeMember(label: "OptionGroupName", required: false, type: .string), - AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), - AWSShapeMember(label: "Engine", required: false, type: .string), - AWSShapeMember(label: "DomainIAMRoleName", required: false, type: .string), - AWSShapeMember(label: "UseLatestRestorableTime", required: false, type: .boolean), - AWSShapeMember(label: "SourceDBInstanceIdentifier", required: true, type: .string), - AWSShapeMember(label: "DBInstanceClass", required: false, type: .string) + public struct DescribeDBSnapshotsMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxRecords", required: false, type: .integer), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "IncludePublic", required: false, type: .boolean), + AWSShapeMember(label: "SnapshotType", required: false, type: .string), + AWSShapeMember(label: "IncludeShared", required: false, type: .boolean), + AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "DBSnapshotIdentifier", required: false, type: .string), + AWSShapeMember(label: "DBInstanceIdentifier", required: false, type: .string) ] - /// Specify the Active Directory Domain to restore the instance in. - public let domain: String? - /// The port number on which the database accepts connections. Constraints: Value must be 1150-65535 Default: The same port as the original DB instance. - public let port: Int32? - /// The database name for the restored DB instance. This parameter is not used for the MySQL or MariaDB engines. - public let dBName: String? - /// Specifies if the DB instance is a Multi-AZ deployment. Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true. - public let multiAZ: Bool? - /// The password for the given ARN from the Key Store in order to access the device. - public let tdeCredentialPassword: String? - public let tags: TagList? - /// License model information for the restored DB instance. Default: Same as source. Valid values: license-included | bring-your-own-license | general-public-license - public let licenseModel: String? - /// Specifies the storage type to be associated with the DB instance. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified; otherwise standard - public let storageType: String? - /// The ARN from the Key Store with which to associate the instance for TDE encryption. - public let tdeCredentialArn: String? - /// The date and time to restore from. Valid Values: Value must be a time in Universal Coordinated Time (UTC) format Constraints: Must be before the latest restorable time for the DB instance Cannot be specified if UseLatestRestorableTime parameter is true Example: 2009-09-07T23:45:00Z - public let restoreTime: TimeStamp? - /// The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. Constraints: Must be an integer greater than 1000. SQL Server Setting the IOPS value for the SQL Server database engine is not supported. - public let iops: Int32? - /// The EC2 Availability Zone that the database instance will be created in. Default: A random, system-chosen Availability Zone. Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true. Example: us-east-1a - public let availabilityZone: String? - /// Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case. Default VPC:true VPC:false If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private. - public let publiclyAccessible: Bool? - /// Indicates that minor version upgrades will be applied automatically to the DB instance during the maintenance window. - public let autoMinorVersionUpgrade: Bool? - /// The name of the new database instance to be created. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let targetDBInstanceIdentifier: String - /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false. You can enable IAM database authentication for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Aurora 5.6 or higher. Default: false - public let enableIAMDatabaseAuthentication: Bool? - /// The name of the option group to be used for the restored DB instance. Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance - public let optionGroupName: String? - /// The DB subnet group name to use for the new instance. Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup - public let dBSubnetGroupName: String? - /// True to copy all tags from the restored DB instance to snapshots of the DB instance; otherwise false. The default is false. - public let copyTagsToSnapshot: Bool? - /// The database engine to use for the new instance. Default: The same as source Constraint: Must be compatible with the engine of the source Valid Values: MySQL | mariadb | oracle-se1 | oracle-se | oracle-ee | sqlserver-ee | sqlserver-se | sqlserver-ex | sqlserver-web | postgres | aurora - public let engine: String? - /// Specify the name of the IAM role to be used when making API calls to the Directory Service. - public let domainIAMRoleName: String? - /// Specifies whether (true) or not (false) the DB instance is restored from the latest backup time. Default: false Constraints: Cannot be specified if RestoreTime parameter is provided. - public let useLatestRestorableTime: Bool? - /// The identifier of the source DB instance from which to restore. Constraints: Must be the identifier of an existing database instance Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let sourceDBInstanceIdentifier: String - /// The compute and memory capacity of the Amazon RDS DB instance. Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large Default: The same DBInstanceClass as the original DB instance. - public let dBInstanceClass: String? + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public let maxRecords: Int32? + /// An optional pagination token provided by a previous DescribeDBSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// True to include manual DB snapshots that are public and can be copied or restored by any AWS account, and otherwise false. The default is false. You can share a manual DB snapshot as public by using the ModifyDBSnapshotAttribute API. + public let includePublic: Bool? + /// The type of snapshots to be returned. You can specify one of the following values: automated - Return all DB snapshots that have been automatically taken by Amazon RDS for my AWS account. manual - Return all DB snapshots that have been taken by my AWS account. shared - Return all manual DB snapshots that have been shared to my AWS account. public - Return all DB snapshots that have been marked as public. If you don't specify a SnapshotType value, then both automated and manual snapshots are returned. Shared and public DB snapshots are not included in the returned results by default. You can include shared snapshots with these results by setting the IncludeShared parameter to true. You can include public snapshots with these results by setting the IncludePublic parameter to true. The IncludeShared and IncludePublic parameters don't apply for SnapshotType values of manual or automated. The IncludePublic parameter doesn't apply when SnapshotType is set to shared. The IncludeShared parameter doesn't apply when SnapshotType is set to public. + public let snapshotType: String? + /// True to include shared manual DB snapshots from other AWS accounts that this AWS account has been given permission to copy or restore, and otherwise false. The default is false. You can give an AWS account permission to restore a manual DB snapshot from another AWS account by using the ModifyDBSnapshotAttribute API action. + public let includeShared: Bool? + /// This parameter is not currently supported. + public let filters: FilterList? + /// A specific DB snapshot identifier to describe. This parameter can't be used in conjunction with DBInstanceIdentifier. This value is stored as a lowercase string. Constraints: If supplied, must match the identifier of an existing DBSnapshot. If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified. + public let dBSnapshotIdentifier: String? + /// The ID of the DB instance to retrieve the list of DB snapshots for. This parameter can't be used in conjunction with DBSnapshotIdentifier. This parameter is not case-sensitive. Constraints: If supplied, must match the identifier of an existing DBInstance. + public let dBInstanceIdentifier: String? - public init(domain: String? = nil, port: Int32? = nil, dBName: String? = nil, multiAZ: Bool? = nil, tdeCredentialPassword: String? = nil, tags: TagList? = nil, licenseModel: String? = nil, storageType: String? = nil, tdeCredentialArn: String? = nil, restoreTime: TimeStamp? = nil, iops: Int32? = nil, availabilityZone: String? = nil, publiclyAccessible: Bool? = nil, autoMinorVersionUpgrade: Bool? = nil, targetDBInstanceIdentifier: String, enableIAMDatabaseAuthentication: Bool? = nil, optionGroupName: String? = nil, dBSubnetGroupName: String? = nil, copyTagsToSnapshot: Bool? = nil, engine: String? = nil, domainIAMRoleName: String? = nil, useLatestRestorableTime: Bool? = nil, sourceDBInstanceIdentifier: String, dBInstanceClass: String? = nil) { - self.domain = domain - self.port = port - self.dBName = dBName - self.multiAZ = multiAZ - self.tdeCredentialPassword = tdeCredentialPassword - self.tags = tags - self.licenseModel = licenseModel - self.storageType = storageType - self.tdeCredentialArn = tdeCredentialArn - self.restoreTime = restoreTime - self.iops = iops - self.availabilityZone = availabilityZone - self.publiclyAccessible = publiclyAccessible - self.autoMinorVersionUpgrade = autoMinorVersionUpgrade - self.targetDBInstanceIdentifier = targetDBInstanceIdentifier - self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication - self.optionGroupName = optionGroupName - self.dBSubnetGroupName = dBSubnetGroupName - self.copyTagsToSnapshot = copyTagsToSnapshot - self.engine = engine - self.domainIAMRoleName = domainIAMRoleName - self.useLatestRestorableTime = useLatestRestorableTime - self.sourceDBInstanceIdentifier = sourceDBInstanceIdentifier - self.dBInstanceClass = dBInstanceClass + public init(maxRecords: Int32? = nil, marker: String? = nil, includePublic: Bool? = nil, snapshotType: String? = nil, includeShared: Bool? = nil, filters: FilterList? = nil, dBSnapshotIdentifier: String? = nil, dBInstanceIdentifier: String? = nil) { + self.maxRecords = maxRecords + self.marker = marker + self.includePublic = includePublic + self.snapshotType = snapshotType + self.includeShared = includeShared + self.filters = filters + self.dBSnapshotIdentifier = dBSnapshotIdentifier + self.dBInstanceIdentifier = dBInstanceIdentifier } private enum CodingKeys: String, CodingKey { - case domain = "Domain" - case port = "Port" - case dBName = "DBName" - case multiAZ = "MultiAZ" - case tdeCredentialPassword = "TdeCredentialPassword" - case tags = "Tags" - case licenseModel = "LicenseModel" - case storageType = "StorageType" - case tdeCredentialArn = "TdeCredentialArn" - case restoreTime = "RestoreTime" - case iops = "Iops" - case availabilityZone = "AvailabilityZone" - case publiclyAccessible = "PubliclyAccessible" - case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" - case targetDBInstanceIdentifier = "TargetDBInstanceIdentifier" - case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" - case optionGroupName = "OptionGroupName" - case dBSubnetGroupName = "DBSubnetGroupName" - case copyTagsToSnapshot = "CopyTagsToSnapshot" - case engine = "Engine" - case domainIAMRoleName = "DomainIAMRoleName" - case useLatestRestorableTime = "UseLatestRestorableTime" - case sourceDBInstanceIdentifier = "SourceDBInstanceIdentifier" - case dBInstanceClass = "DBInstanceClass" + case maxRecords = "MaxRecords" + case marker = "Marker" + case includePublic = "IncludePublic" + case snapshotType = "SnapshotType" + case includeShared = "IncludeShared" + case filters = "Filters" + case dBSnapshotIdentifier = "DBSnapshotIdentifier" + case dBInstanceIdentifier = "DBInstanceIdentifier" + } + } + + public struct DeleteDBClusterSnapshotResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DBClusterSnapshot", required: false, type: .structure) + ] + public let dBClusterSnapshot: DBClusterSnapshot? + + public init(dBClusterSnapshot: DBClusterSnapshot? = nil) { + self.dBClusterSnapshot = dBClusterSnapshot + } + + private enum CodingKeys: String, CodingKey { + case dBClusterSnapshot = "DBClusterSnapshot" } } - public struct CreateDBInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstance", required: false, type: .structure) + public struct DBClusterOptionGroupStatus: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .string), + AWSShapeMember(label: "DBClusterOptionGroupName", required: false, type: .string) ] - public let dBInstance: DBInstance? + /// Specifies the status of the DB cluster option group. + public let status: String? + /// Specifies the name of the DB cluster option group. + public let dBClusterOptionGroupName: String? - public init(dBInstance: DBInstance? = nil) { - self.dBInstance = dBInstance + public init(status: String? = nil, dBClusterOptionGroupName: String? = nil) { + self.status = status + self.dBClusterOptionGroupName = dBClusterOptionGroupName } private enum CodingKeys: String, CodingKey { - case dBInstance = "DBInstance" + case status = "Status" + case dBClusterOptionGroupName = "DBClusterOptionGroupName" } } - public struct StopDBInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstance", required: false, type: .structure) + public struct UpgradeTarget: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Engine", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "EngineVersion", required: false, type: .string), + AWSShapeMember(label: "AutoUpgrade", required: false, type: .boolean), + AWSShapeMember(label: "IsMajorVersionUpgrade", required: false, type: .boolean) ] - public let dBInstance: DBInstance? + /// The name of the upgrade target database engine. + public let engine: String? + /// The version of the database engine that a DB instance can be upgraded to. + public let description: String? + /// The version number of the upgrade target database engine. + public let engineVersion: String? + /// A value that indicates whether the target version is applied to any source DB instances that have AutoMinorVersionUpgrade set to true. + public let autoUpgrade: Bool? + /// A value that indicates whether a database engine is upgraded to a major version. + public let isMajorVersionUpgrade: Bool? - public init(dBInstance: DBInstance? = nil) { - self.dBInstance = dBInstance + public init(engine: String? = nil, description: String? = nil, engineVersion: String? = nil, autoUpgrade: Bool? = nil, isMajorVersionUpgrade: Bool? = nil) { + self.engine = engine + self.description = description + self.engineVersion = engineVersion + self.autoUpgrade = autoUpgrade + self.isMajorVersionUpgrade = isMajorVersionUpgrade } private enum CodingKeys: String, CodingKey { - case dBInstance = "DBInstance" + case engine = "Engine" + case description = "Description" + case engineVersion = "EngineVersion" + case autoUpgrade = "AutoUpgrade" + case isMajorVersionUpgrade = "IsMajorVersionUpgrade" } } - public struct ReservedDBInstance: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RecurringCharges", required: false, type: .structure), - AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "UsagePrice", required: false, type: .double), - AWSShapeMember(label: "State", required: false, type: .string), - AWSShapeMember(label: "ReservedDBInstanceArn", required: false, type: .string), - AWSShapeMember(label: "OfferingType", required: false, type: .string), - AWSShapeMember(label: "ProductDescription", required: false, type: .string), - AWSShapeMember(label: "StartTime", required: false, type: .timestamp), - AWSShapeMember(label: "ReservedDBInstanceId", required: false, type: .string), - AWSShapeMember(label: "DBInstanceCount", required: false, type: .integer), - AWSShapeMember(label: "CurrencyCode", required: false, type: .string), - AWSShapeMember(label: "ReservedDBInstancesOfferingId", required: false, type: .string), - AWSShapeMember(label: "Duration", required: false, type: .integer), - AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), - AWSShapeMember(label: "FixedPrice", required: false, type: .double) + public struct DBSecurityGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "DBSecurityGroups", required: false, type: .structure) ] - /// The recurring price charged to run this reserved DB instance. - public let recurringCharges: RecurringChargeList? - /// Indicates if the reservation applies to Multi-AZ deployments. - public let multiAZ: Bool? - /// The hourly price charged for this reserved DB instance. - public let usagePrice: Double? - /// The state of the reserved DB instance. - public let state: String? - /// The Amazon Resource Name (ARN) for the reserved DB instance. - public let reservedDBInstanceArn: String? - /// The offering type of this reserved DB instance. - public let offeringType: String? - /// The description of the reserved DB instance. - public let productDescription: String? - /// The time the reservation started. - public let startTime: TimeStamp? - /// The unique identifier for the reservation. - public let reservedDBInstanceId: String? - /// The number of reserved DB instances. - public let dBInstanceCount: Int32? - /// The currency code for the reserved DB instance. - public let currencyCode: String? - /// The offering identifier. - public let reservedDBInstancesOfferingId: String? - /// The duration of the reservation in seconds. - public let duration: Int32? - /// The DB instance class for the reserved DB instance. - public let dBInstanceClass: String? - /// The fixed price charged for this reserved DB instance. - public let fixedPrice: Double? + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public let marker: String? + /// A list of DBSecurityGroup instances. + public let dBSecurityGroups: DBSecurityGroups? - public init(recurringCharges: RecurringChargeList? = nil, multiAZ: Bool? = nil, usagePrice: Double? = nil, state: String? = nil, reservedDBInstanceArn: String? = nil, offeringType: String? = nil, productDescription: String? = nil, startTime: TimeStamp? = nil, reservedDBInstanceId: String? = nil, dBInstanceCount: Int32? = nil, currencyCode: String? = nil, reservedDBInstancesOfferingId: String? = nil, duration: Int32? = nil, dBInstanceClass: String? = nil, fixedPrice: Double? = nil) { - self.recurringCharges = recurringCharges - self.multiAZ = multiAZ - self.usagePrice = usagePrice - self.state = state - self.reservedDBInstanceArn = reservedDBInstanceArn - self.offeringType = offeringType - self.productDescription = productDescription - self.startTime = startTime - self.reservedDBInstanceId = reservedDBInstanceId - self.dBInstanceCount = dBInstanceCount - self.currencyCode = currencyCode - self.reservedDBInstancesOfferingId = reservedDBInstancesOfferingId - self.duration = duration - self.dBInstanceClass = dBInstanceClass - self.fixedPrice = fixedPrice + public init(marker: String? = nil, dBSecurityGroups: DBSecurityGroups? = nil) { + self.marker = marker + self.dBSecurityGroups = dBSecurityGroups } private enum CodingKeys: String, CodingKey { - case recurringCharges = "RecurringCharges" - case multiAZ = "MultiAZ" - case usagePrice = "UsagePrice" - case state = "State" - case reservedDBInstanceArn = "ReservedDBInstanceArn" - case offeringType = "OfferingType" - case productDescription = "ProductDescription" - case startTime = "StartTime" - case reservedDBInstanceId = "ReservedDBInstanceId" - case dBInstanceCount = "DBInstanceCount" - case currencyCode = "CurrencyCode" - case reservedDBInstancesOfferingId = "ReservedDBInstancesOfferingId" - case duration = "Duration" - case dBInstanceClass = "DBInstanceClass" - case fixedPrice = "FixedPrice" + case marker = "Marker" + case dBSecurityGroups = "DBSecurityGroups" } } - public struct ModifyDBParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Parameters", required: true, type: .structure), - AWSShapeMember(label: "DBParameterGroupName", required: true, type: .string) + public struct DescribeAccountAttributesMessage: AWSShape { + + } + + public struct CreateOptionGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OptionGroupName", required: true, type: .string), + AWSShapeMember(label: "EngineName", required: true, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .structure), + AWSShapeMember(label: "OptionGroupDescription", required: true, type: .string), + AWSShapeMember(label: "MajorEngineVersion", required: true, type: .string) ] - /// An array of parameter names, values, and the apply method for the parameter update. At least one parameter name, value, and apply method must be supplied; subsequent arguments are optional. A maximum of 20 parameters can be modified in a single request. Valid Values (for the application method): immediate | pending-reboot You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when you reboot the DB instance without failover. - public let parameters: ParametersList - /// The name of the DB parameter group. Constraints: Must be the name of an existing DB parameter group Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBParameterGroupName: String + /// Specifies the name of the option group to be created. Constraints: Must be 1 to 255 letters, numbers, or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: myoptiongroup + public let optionGroupName: String + /// Specifies the name of the engine that this option group should be associated with. + public let engineName: String + public let tags: TagList? + /// The description of the option group. + public let optionGroupDescription: String + /// Specifies the major version of the engine that this option group should be associated with. + public let majorEngineVersion: String - public init(parameters: ParametersList, dBParameterGroupName: String) { - self.parameters = parameters - self.dBParameterGroupName = dBParameterGroupName + public init(optionGroupName: String, engineName: String, tags: TagList? = nil, optionGroupDescription: String, majorEngineVersion: String) { + self.optionGroupName = optionGroupName + self.engineName = engineName + self.tags = tags + self.optionGroupDescription = optionGroupDescription + self.majorEngineVersion = majorEngineVersion } private enum CodingKeys: String, CodingKey { - case parameters = "Parameters" - case dBParameterGroupName = "DBParameterGroupName" + case optionGroupName = "OptionGroupName" + case engineName = "EngineName" + case tags = "Tags" + case optionGroupDescription = "OptionGroupDescription" + case majorEngineVersion = "MajorEngineVersion" } } - public struct DescribeCertificatesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "CertificateIdentifier", required: false, type: .string) + public struct CertificateList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Certificate", required: false, type: .list) ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// This parameter is not currently supported. - public let filters: FilterList? - /// An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// The user-supplied certificate identifier. If this parameter is specified, information for only the identified certificate is returned. This parameter isn't case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let certificateIdentifier: String? + public let certificate: [Certificate]? - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil, certificateIdentifier: String? = nil) { - self.maxRecords = maxRecords - self.filters = filters - self.marker = marker - self.certificateIdentifier = certificateIdentifier + public init(certificate: [Certificate]? = nil) { + self.certificate = certificate } private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case filters = "Filters" - case marker = "Marker" - case certificateIdentifier = "CertificateIdentifier" + case certificate = "Certificate" } } - public struct DBSubnetGroups: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSubnetGroup", required: false, type: .list) + public struct ModifyEventSubscriptionMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SnsTopicArn", required: false, type: .string), + AWSShapeMember(label: "SubscriptionName", required: true, type: .string), + AWSShapeMember(label: "SourceType", required: false, type: .string), + AWSShapeMember(label: "EventCategories", required: false, type: .structure), + AWSShapeMember(label: "Enabled", required: false, type: .boolean) ] - public let dBSubnetGroup: [DBSubnetGroup]? + /// The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it. + public let snsTopicArn: String? + /// The name of the RDS event notification subscription. + public let subscriptionName: String + /// The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned. Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot + public let sourceType: String? + /// A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action. + public let eventCategories: EventCategoriesList? + /// A Boolean value; set to true to activate the subscription. + public let enabled: Bool? - public init(dBSubnetGroup: [DBSubnetGroup]? = nil) { - self.dBSubnetGroup = dBSubnetGroup + public init(snsTopicArn: String? = nil, subscriptionName: String, sourceType: String? = nil, eventCategories: EventCategoriesList? = nil, enabled: Bool? = nil) { + self.snsTopicArn = snsTopicArn + self.subscriptionName = subscriptionName + self.sourceType = sourceType + self.eventCategories = eventCategories + self.enabled = enabled } private enum CodingKeys: String, CodingKey { - case dBSubnetGroup = "DBSubnetGroup" + case snsTopicArn = "SnsTopicArn" + case subscriptionName = "SubscriptionName" + case sourceType = "SourceType" + case eventCategories = "EventCategories" + case enabled = "Enabled" } } - public struct RemoveRoleFromDBClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RoleArn", required: true, type: .string), - AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string) + public struct CharacterSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CharacterSetDescription", required: false, type: .string), + AWSShapeMember(label: "CharacterSetName", required: false, type: .string) ] - /// The Amazon Resource Name (ARN) of the IAM role to disassociate from the Aurora DB cluster, for example arn:aws:iam::123456789012:role/AuroraAccessRole. - public let roleArn: String - /// The name of the DB cluster to disassociate the IAM role from. - public let dBClusterIdentifier: String + /// The description of the character set. + public let characterSetDescription: String? + /// The name of the character set. + public let characterSetName: String? - public init(roleArn: String, dBClusterIdentifier: String) { - self.roleArn = roleArn - self.dBClusterIdentifier = dBClusterIdentifier + public init(characterSetDescription: String? = nil, characterSetName: String? = nil) { + self.characterSetDescription = characterSetDescription + self.characterSetName = characterSetName } private enum CodingKeys: String, CodingKey { - case roleArn = "RoleArn" - case dBClusterIdentifier = "DBClusterIdentifier" + case characterSetDescription = "CharacterSetDescription" + case characterSetName = "CharacterSetName" } } - public struct DeleteDBClusterParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterParameterGroupName", required: true, type: .string) + public struct ModifyDBParameterGroupMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Parameters", required: true, type: .structure), + AWSShapeMember(label: "DBParameterGroupName", required: true, type: .string) ] - /// The name of the DB cluster parameter group. Constraints: Must be the name of an existing DB cluster parameter group. You cannot delete a default DB cluster parameter group. Cannot be associated with any DB clusters. - public let dBClusterParameterGroupName: String + /// An array of parameter names, values, and the apply method for the parameter update. At least one parameter name, value, and apply method must be supplied; subsequent arguments are optional. A maximum of 20 parameters can be modified in a single request. Valid Values (for the application method): immediate | pending-reboot You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when you reboot the DB instance without failover. + public let parameters: ParametersList + /// The name of the DB parameter group. Constraints: If supplied, must match the name of an existing DBParameterGroup. + public let dBParameterGroupName: String - public init(dBClusterParameterGroupName: String) { - self.dBClusterParameterGroupName = dBClusterParameterGroupName + public init(parameters: ParametersList, dBParameterGroupName: String) { + self.parameters = parameters + self.dBParameterGroupName = dBParameterGroupName } private enum CodingKeys: String, CodingKey { - case dBClusterParameterGroupName = "DBClusterParameterGroupName" + case parameters = "Parameters" + case dBParameterGroupName = "DBParameterGroupName" } } - public struct DescribeDBSubnetGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DescribeCertificatesMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "Marker", required: false, type: .string) + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "CertificateIdentifier", required: false, type: .string) ] /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. public let maxRecords: Int32? /// This parameter is not currently supported. public let filters: FilterList? - /// The name of the DB subnet group to return details for. - public let dBSubnetGroupName: String? - /// An optional pagination token provided by a previous DescribeDBSubnetGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + /// An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public let marker: String? + /// The user-supplied certificate identifier. If this parameter is specified, information for only the identified certificate is returned. This parameter isn't case-sensitive. Constraints: Must match an existing CertificateIdentifier. + public let certificateIdentifier: String? - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, dBSubnetGroupName: String? = nil, marker: String? = nil) { + public init(maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil, certificateIdentifier: String? = nil) { self.maxRecords = maxRecords self.filters = filters - self.dBSubnetGroupName = dBSubnetGroupName self.marker = marker + self.certificateIdentifier = certificateIdentifier } private enum CodingKeys: String, CodingKey { case maxRecords = "MaxRecords" case filters = "Filters" - case dBSubnetGroupName = "DBSubnetGroupName" case marker = "Marker" + case certificateIdentifier = "CertificateIdentifier" } } public struct StopDBInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBSnapshotIdentifier", required: false, type: .string), AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) ] @@ -6371,64 +7895,8 @@ extension Rds { } } - public struct DescribeDBClusterSnapshotAttributesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterSnapshotAttributesResult", required: false, type: .structure) - ] - public let dBClusterSnapshotAttributesResult: DBClusterSnapshotAttributesResult? - - public init(dBClusterSnapshotAttributesResult: DBClusterSnapshotAttributesResult? = nil) { - self.dBClusterSnapshotAttributesResult = dBClusterSnapshotAttributesResult - } - - private enum CodingKeys: String, CodingKey { - case dBClusterSnapshotAttributesResult = "DBClusterSnapshotAttributesResult" - } - } - - public struct OptionGroupOptionsList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionGroupOption", required: false, type: .list) - ] - public let optionGroupOption: [OptionGroupOption]? - - public init(optionGroupOption: [OptionGroupOption]? = nil) { - self.optionGroupOption = optionGroupOption - } - - private enum CodingKeys: String, CodingKey { - case optionGroupOption = "OptionGroupOption" - } - } - - public struct SourceRegion: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Status", required: false, type: .string), - AWSShapeMember(label: "Endpoint", required: false, type: .string), - AWSShapeMember(label: "RegionName", required: false, type: .string) - ] - /// The status of the source region. - public let status: String? - /// The source region endpoint. - public let endpoint: String? - /// The source region name. - public let regionName: String? - - public init(status: String? = nil, endpoint: String? = nil, regionName: String? = nil) { - self.status = status - self.endpoint = endpoint - self.regionName = regionName - } - - private enum CodingKeys: String, CodingKey { - case status = "Status" - case endpoint = "Endpoint" - case regionName = "RegionName" - } - } - public struct ResourcePendingMaintenanceActions: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceIdentifier", required: false, type: .string), AWSShapeMember(label: "PendingMaintenanceActionDetails", required: false, type: .structure) ] @@ -6449,10 +7917,10 @@ extension Rds { } public struct DeleteDBSecurityGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBSecurityGroupName", required: true, type: .string) ] - /// The name of the DB security group to delete. You cannot delete the default DB security group. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Must not be "Default" + /// The name of the DB security group to delete. You can't delete the default DB security group. Constraints: Must be 1 to 255 letters, numbers, or hyphens. First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Must not be "Default" public let dBSecurityGroupName: String public init(dBSecurityGroupName: String) { @@ -6464,23 +7932,8 @@ extension Rds { } } - public struct CreateDBSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshot", required: false, type: .structure) - ] - public let dBSnapshot: DBSnapshot? - - public init(dBSnapshot: DBSnapshot? = nil) { - self.dBSnapshot = dBSnapshot - } - - private enum CodingKeys: String, CodingKey { - case dBSnapshot = "DBSnapshot" - } - } - public struct DBSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "DBSubnetGroups", required: false, type: .structure) ] @@ -6500,23 +7953,8 @@ extension Rds { } } - public struct RestoreDBClusterFromS3Result: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBCluster", required: false, type: .structure) - ] - public let dBCluster: DBCluster? - - public init(dBCluster: DBCluster? = nil) { - self.dBCluster = dBCluster - } - - private enum CodingKeys: String, CodingKey { - case dBCluster = "DBCluster" - } - } - public struct DBSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "DBSnapshots", required: false, type: .structure) ] @@ -6537,7 +7975,7 @@ extension Rds { } public struct CopyDBClusterParameterGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBClusterParameterGroup", required: false, type: .structure) ] public let dBClusterParameterGroup: DBClusterParameterGroup? @@ -6552,7 +7990,7 @@ extension Rds { } public struct DBSecurityGroupMembershipList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBSecurityGroup", required: false, type: .list) ] public let dBSecurityGroup: [DBSecurityGroupMembership]? @@ -6566,53 +8004,8 @@ extension Rds { } } - public struct DBParameterGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroup", required: false, type: .list) - ] - public let dBParameterGroup: [DBParameterGroup]? - - public init(dBParameterGroup: [DBParameterGroup]? = nil) { - self.dBParameterGroup = dBParameterGroup - } - - private enum CodingKeys: String, CodingKey { - case dBParameterGroup = "DBParameterGroup" - } - } - - public struct EC2SecurityGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EC2SecurityGroup", required: false, type: .list) - ] - public let eC2SecurityGroup: [EC2SecurityGroup]? - - public init(eC2SecurityGroup: [EC2SecurityGroup]? = nil) { - self.eC2SecurityGroup = eC2SecurityGroup - } - - private enum CodingKeys: String, CodingKey { - case eC2SecurityGroup = "EC2SecurityGroup" - } - } - - public struct AddSourceIdentifierToSubscriptionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EventSubscription", required: false, type: .structure) - ] - public let eventSubscription: EventSubscription? - - public init(eventSubscription: EventSubscription? = nil) { - self.eventSubscription = eventSubscription - } - - private enum CodingKeys: String, CodingKey { - case eventSubscription = "EventSubscription" - } - } - public struct DBSnapshotAttributesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBSnapshotAttributes", required: false, type: .structure), AWSShapeMember(label: "DBSnapshotIdentifier", required: false, type: .string) ] @@ -6633,7 +8026,7 @@ extension Rds { } public struct AddRoleToDBClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoleArn", required: true, type: .string), AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string) ] @@ -6649,155 +8042,48 @@ extension Rds { private enum CodingKeys: String, CodingKey { case roleArn = "RoleArn" - case dBClusterIdentifier = "DBClusterIdentifier" - } - } - - public struct ValidUpgradeTargetList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "UpgradeTarget", required: false, type: .list) - ] - public let upgradeTarget: [UpgradeTarget]? - - public init(upgradeTarget: [UpgradeTarget]? = nil) { - self.upgradeTarget = upgradeTarget - } - - private enum CodingKeys: String, CodingKey { - case upgradeTarget = "UpgradeTarget" - } - } - - public struct DBSubnetGroup: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSubnetGroupArn", required: false, type: .string), - AWSShapeMember(label: "SubnetGroupStatus", required: false, type: .string), - AWSShapeMember(label: "DBSubnetGroupDescription", required: false, type: .string), - AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "VpcId", required: false, type: .string), - AWSShapeMember(label: "Subnets", required: false, type: .structure) - ] - /// The Amazon Resource Name (ARN) for the DB subnet group. - public let dBSubnetGroupArn: String? - /// Provides the status of the DB subnet group. - public let subnetGroupStatus: String? - /// Provides the description of the DB subnet group. - public let dBSubnetGroupDescription: String? - /// The name of the DB subnet group. - public let dBSubnetGroupName: String? - /// Provides the VpcId of the DB subnet group. - public let vpcId: String? - /// Contains a list of Subnet elements. - public let subnets: SubnetList? - - public init(dBSubnetGroupArn: String? = nil, subnetGroupStatus: String? = nil, dBSubnetGroupDescription: String? = nil, dBSubnetGroupName: String? = nil, vpcId: String? = nil, subnets: SubnetList? = nil) { - self.dBSubnetGroupArn = dBSubnetGroupArn - self.subnetGroupStatus = subnetGroupStatus - self.dBSubnetGroupDescription = dBSubnetGroupDescription - self.dBSubnetGroupName = dBSubnetGroupName - self.vpcId = vpcId - self.subnets = subnets - } - - private enum CodingKeys: String, CodingKey { - case dBSubnetGroupArn = "DBSubnetGroupArn" - case subnetGroupStatus = "SubnetGroupStatus" - case dBSubnetGroupDescription = "DBSubnetGroupDescription" - case dBSubnetGroupName = "DBSubnetGroupName" - case vpcId = "VpcId" - case subnets = "Subnets" - } - } - - public struct RemoveSourceIdentifierFromSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceIdentifier", required: true, type: .string), - AWSShapeMember(label: "SubscriptionName", required: true, type: .string) - ] - /// The source identifier to be removed from the subscription, such as the DB instance identifier for a DB instance or the name of a security group. - public let sourceIdentifier: String - /// The name of the RDS event notification subscription you want to remove a source identifier from. - public let subscriptionName: String - - public init(sourceIdentifier: String, subscriptionName: String) { - self.sourceIdentifier = sourceIdentifier - self.subscriptionName = subscriptionName - } - - private enum CodingKeys: String, CodingKey { - case sourceIdentifier = "SourceIdentifier" - case subscriptionName = "SubscriptionName" - } - } - - public struct SubnetList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Subnet", required: false, type: .list) - ] - public let subnet: [Subnet]? - - public init(subnet: [Subnet]? = nil) { - self.subnet = subnet - } - - private enum CodingKeys: String, CodingKey { - case subnet = "Subnet" + case dBClusterIdentifier = "DBClusterIdentifier" } } - public struct AuthorizeDBSecurityGroupIngressMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "EC2SecurityGroupName", required: false, type: .string), - AWSShapeMember(label: "DBSecurityGroupName", required: true, type: .string), - AWSShapeMember(label: "EC2SecurityGroupId", required: false, type: .string), - AWSShapeMember(label: "EC2SecurityGroupOwnerId", required: false, type: .string), - AWSShapeMember(label: "CIDRIP", required: false, type: .string) + public struct RemoveSourceIdentifierFromSubscriptionMessage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceIdentifier", required: true, type: .string), + AWSShapeMember(label: "SubscriptionName", required: true, type: .string) ] - /// Name of the EC2 security group to authorize. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided. - public let eC2SecurityGroupName: String? - /// The name of the DB security group to add authorization to. - public let dBSecurityGroupName: String - /// Id of the EC2 security group to authorize. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided. - public let eC2SecurityGroupId: String? - /// AWS account number of the owner of the EC2 security group specified in the EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable value. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided. - public let eC2SecurityGroupOwnerId: String? - /// The IP range to authorize. - public let cidrip: String? + /// The source identifier to be removed from the subscription, such as the DB instance identifier for a DB instance or the name of a security group. + public let sourceIdentifier: String + /// The name of the RDS event notification subscription you want to remove a source identifier from. + public let subscriptionName: String - public init(eC2SecurityGroupName: String? = nil, dBSecurityGroupName: String, eC2SecurityGroupId: String? = nil, eC2SecurityGroupOwnerId: String? = nil, cidrip: String? = nil) { - self.eC2SecurityGroupName = eC2SecurityGroupName - self.dBSecurityGroupName = dBSecurityGroupName - self.eC2SecurityGroupId = eC2SecurityGroupId - self.eC2SecurityGroupOwnerId = eC2SecurityGroupOwnerId - self.cidrip = cidrip + public init(sourceIdentifier: String, subscriptionName: String) { + self.sourceIdentifier = sourceIdentifier + self.subscriptionName = subscriptionName } private enum CodingKeys: String, CodingKey { - case eC2SecurityGroupName = "EC2SecurityGroupName" - case dBSecurityGroupName = "DBSecurityGroupName" - case eC2SecurityGroupId = "EC2SecurityGroupId" - case eC2SecurityGroupOwnerId = "EC2SecurityGroupOwnerId" - case cidrip = "CIDRIP" + case sourceIdentifier = "SourceIdentifier" + case subscriptionName = "SubscriptionName" } } - public struct ReadReplicaIdentifierList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReadReplicaIdentifier", required: false, type: .list) + public struct DescribeValidDBInstanceModificationsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ValidDBInstanceModificationsMessage", required: false, type: .structure) ] - public let readReplicaIdentifier: [String]? + public let validDBInstanceModificationsMessage: ValidDBInstanceModificationsMessage? - public init(readReplicaIdentifier: [String]? = nil) { - self.readReplicaIdentifier = readReplicaIdentifier + public init(validDBInstanceModificationsMessage: ValidDBInstanceModificationsMessage? = nil) { + self.validDBInstanceModificationsMessage = validDBInstanceModificationsMessage } private enum CodingKeys: String, CodingKey { - case readReplicaIdentifier = "ReadReplicaIdentifier" + case validDBInstanceModificationsMessage = "ValidDBInstanceModificationsMessage" } } public struct RestoreDBClusterFromS3Message: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MasterUserPassword", required: true, type: .string), AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), AWSShapeMember(label: "S3Prefix", required: false, type: .string), @@ -6832,270 +8118,107 @@ extension Rds { public let s3Prefix: String? /// A value that indicates that the restored DB cluster should be associated with the specified CharacterSet. public let characterSetName: String? - /// The name of the DB cluster to create from the source data in the S3 bucket. This parameter is isn't case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: my-cluster1 + /// The name of the DB cluster to create from the source data in the Amazon S3 bucket. This parameter is isn't case-sensitive. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: my-cluster1 public let dBClusterIdentifier: String /// The version number of the database engine to use. Aurora Example: 5.6.10a - public let engineVersion: String? - /// A Boolean value that is true to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false - public let enableIAMDatabaseAuthentication: Bool? - /// The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: ddd:hh24:mi-ddd:hh24:mi Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun Constraints: Minimum 30-minute window. - public let preferredMaintenanceWindow: String? - /// The KMS key identifier for an encrypted DB cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KM encryption key. If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region. - public let kmsKeyId: String? - /// A list of EC2 Availability Zones that instances in the restored DB cluster can be created in. - public let availabilityZones: AvailabilityZones? - public let tags: TagList? - /// The version of the database that the backup files were created from. MySQL version 5.5 and 5.6 are supported. Example: 5.6.22 - public let sourceEngineVersion: String - /// A list of EC2 VPC security groups to associate with the restored DB cluster. - public let vpcSecurityGroupIds: VpcSecurityGroupIdList? - /// The identifier for the database engine that was backed up to create the files stored in the Amazon S3 bucket. Valid values: mysql - public let sourceEngine: String - /// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. Default: A 30-minute window selected at random from an 8-hour block of time per region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Constraints: Must be in the format hh24:mi-hh24:mi. Times should be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. - public let preferredBackupWindow: String? - /// The name of the Amazon S3 bucket that contains the data used to create the Amazon Aurora DB cluster. - public let s3BucketName: String - /// A value that indicates that the restored DB cluster should be associated with the specified option group. Permanent options cannot be removed from an option group. An option group cannot be removed from a DB cluster once it is associated with a DB cluster. - public let optionGroupName: String? - /// The name of the master user for the restored DB cluster. Constraints: Must be 1 to 16 alphanumeric characters. First character must be a letter. Cannot be a reserved word for the chosen database engine. - public let masterUsername: String - /// A DB subnet group to associate with the restored DB cluster. Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup - public let dBSubnetGroupName: String? - /// The database name for the restored DB cluster. - public let databaseName: String? - /// The name of the database engine to be used for the restored DB cluster. Valid Values: aurora - public let engine: String - /// Specifies whether the restored DB cluster is encrypted. - public let storageEncrypted: Bool? - /// The name of the DB cluster parameter group to associate with the restored DB cluster. If this argument is omitted, default.aurora5.6 will be used. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBClusterParameterGroupName: String? - /// The port number on which the instances in the restored DB cluster accept connections. Default: 3306 - public let port: Int32? - /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon RDS to access the Amazon S3 bucket on your behalf. - public let s3IngestionRoleArn: String - - public init(masterUserPassword: String, backupRetentionPeriod: Int32? = nil, s3Prefix: String? = nil, characterSetName: String? = nil, dBClusterIdentifier: String, engineVersion: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, preferredMaintenanceWindow: String? = nil, kmsKeyId: String? = nil, availabilityZones: AvailabilityZones? = nil, tags: TagList? = nil, sourceEngineVersion: String, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, sourceEngine: String, preferredBackupWindow: String? = nil, s3BucketName: String, optionGroupName: String? = nil, masterUsername: String, dBSubnetGroupName: String? = nil, databaseName: String? = nil, engine: String, storageEncrypted: Bool? = nil, dBClusterParameterGroupName: String? = nil, port: Int32? = nil, s3IngestionRoleArn: String) { - self.masterUserPassword = masterUserPassword - self.backupRetentionPeriod = backupRetentionPeriod - self.s3Prefix = s3Prefix - self.characterSetName = characterSetName - self.dBClusterIdentifier = dBClusterIdentifier - self.engineVersion = engineVersion - self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication - self.preferredMaintenanceWindow = preferredMaintenanceWindow - self.kmsKeyId = kmsKeyId - self.availabilityZones = availabilityZones - self.tags = tags - self.sourceEngineVersion = sourceEngineVersion - self.vpcSecurityGroupIds = vpcSecurityGroupIds - self.sourceEngine = sourceEngine - self.preferredBackupWindow = preferredBackupWindow - self.s3BucketName = s3BucketName - self.optionGroupName = optionGroupName - self.masterUsername = masterUsername - self.dBSubnetGroupName = dBSubnetGroupName - self.databaseName = databaseName - self.engine = engine - self.storageEncrypted = storageEncrypted - self.dBClusterParameterGroupName = dBClusterParameterGroupName - self.port = port - self.s3IngestionRoleArn = s3IngestionRoleArn - } - - private enum CodingKeys: String, CodingKey { - case masterUserPassword = "MasterUserPassword" - case backupRetentionPeriod = "BackupRetentionPeriod" - case s3Prefix = "S3Prefix" - case characterSetName = "CharacterSetName" - case dBClusterIdentifier = "DBClusterIdentifier" - case engineVersion = "EngineVersion" - case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" - case preferredMaintenanceWindow = "PreferredMaintenanceWindow" - case kmsKeyId = "KmsKeyId" - case availabilityZones = "AvailabilityZones" - case tags = "Tags" - case sourceEngineVersion = "SourceEngineVersion" - case vpcSecurityGroupIds = "VpcSecurityGroupIds" - case sourceEngine = "SourceEngine" - case preferredBackupWindow = "PreferredBackupWindow" - case s3BucketName = "S3BucketName" - case optionGroupName = "OptionGroupName" - case masterUsername = "MasterUsername" - case dBSubnetGroupName = "DBSubnetGroupName" - case databaseName = "DatabaseName" - case engine = "Engine" - case storageEncrypted = "StorageEncrypted" - case dBClusterParameterGroupName = "DBClusterParameterGroupName" - case port = "Port" - case s3IngestionRoleArn = "S3IngestionRoleArn" - } - } - - public struct ModifyDBClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), - AWSShapeMember(label: "MasterUserPassword", required: false, type: .string), - AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string), - AWSShapeMember(label: "OptionGroupName", required: false, type: .string), - AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), - AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), - AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), - AWSShapeMember(label: "DBClusterParameterGroupName", required: false, type: .string), - AWSShapeMember(label: "ApplyImmediately", required: false, type: .boolean), - AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), - AWSShapeMember(label: "NewDBClusterIdentifier", required: false, type: .string), - AWSShapeMember(label: "Port", required: false, type: .integer) - ] - /// The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. Default: A 30-minute window selected at random from an 8-hour block of time per region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Constraints: Must be in the format hh24:mi-hh24:mi. Times should be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. - public let preferredBackupWindow: String? - /// The new password for the master database user. This password can contain any printable ASCII character except "/", """, or "@". Constraints: Must contain from 8 to 41 characters. - public let masterUserPassword: String? - /// The DB cluster identifier for the cluster being modified. This parameter is not case-sensitive. Constraints: Must be the identifier for an existing DB cluster. Must contain from 1 to 63 alphanumeric characters or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. - public let dBClusterIdentifier: String - /// A value that indicates that the DB cluster should be associated with the specified option group. Changing this parameter does not result in an outage except in the following case, and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted. Permanent options cannot be removed from an option group. The option group cannot be removed from a DB cluster once it is associated with a DB cluster. - public let optionGroupName: String? - /// A Boolean value that is true to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false - public let enableIAMDatabaseAuthentication: Bool? - /// The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: ddd:hh24:mi-ddd:hh24:mi Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun Constraints: Minimum 30-minute window. - public let preferredMaintenanceWindow: String? - /// A list of VPC security groups that the DB cluster will belong to. - public let vpcSecurityGroupIds: VpcSecurityGroupIdList? - /// The name of the DB cluster parameter group to use for the DB cluster. - public let dBClusterParameterGroupName: String? - /// A value that specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB cluster. If this parameter is set to false, changes to the DB cluster are applied during the next maintenance window. The ApplyImmediately parameter only affects the NewDBClusterIdentifier and MasterUserPassword values. If you set the ApplyImmediately parameter value to false, then changes to the NewDBClusterIdentifier and MasterUserPassword values are applied during the next maintenance window. All other changes are applied immediately, regardless of the value of the ApplyImmediately parameter. Default: false - public let applyImmediately: Bool? - /// The number of days for which automated backups are retained. You must specify a minimum value of 1. Default: 1 Constraints: Must be a value from 1 to 35 - public let backupRetentionPeriod: Int32? - /// The new DB cluster identifier for the DB cluster when renaming a DB cluster. This value is stored as a lowercase string. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-cluster2 - public let newDBClusterIdentifier: String? - /// The port number on which the DB cluster accepts connections. Constraints: Value must be 1150-65535 Default: The same port as the original DB cluster. - public let port: Int32? - - public init(preferredBackupWindow: String? = nil, masterUserPassword: String? = nil, dBClusterIdentifier: String, optionGroupName: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, preferredMaintenanceWindow: String? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, dBClusterParameterGroupName: String? = nil, applyImmediately: Bool? = nil, backupRetentionPeriod: Int32? = nil, newDBClusterIdentifier: String? = nil, port: Int32? = nil) { - self.preferredBackupWindow = preferredBackupWindow - self.masterUserPassword = masterUserPassword - self.dBClusterIdentifier = dBClusterIdentifier - self.optionGroupName = optionGroupName - self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication - self.preferredMaintenanceWindow = preferredMaintenanceWindow - self.vpcSecurityGroupIds = vpcSecurityGroupIds - self.dBClusterParameterGroupName = dBClusterParameterGroupName - self.applyImmediately = applyImmediately - self.backupRetentionPeriod = backupRetentionPeriod - self.newDBClusterIdentifier = newDBClusterIdentifier - self.port = port - } - - private enum CodingKeys: String, CodingKey { - case preferredBackupWindow = "PreferredBackupWindow" - case masterUserPassword = "MasterUserPassword" - case dBClusterIdentifier = "DBClusterIdentifier" - case optionGroupName = "OptionGroupName" - case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" - case preferredMaintenanceWindow = "PreferredMaintenanceWindow" - case vpcSecurityGroupIds = "VpcSecurityGroupIds" - case dBClusterParameterGroupName = "DBClusterParameterGroupName" - case applyImmediately = "ApplyImmediately" - case backupRetentionPeriod = "BackupRetentionPeriod" - case newDBClusterIdentifier = "NewDBClusterIdentifier" - case port = "Port" - } - } - - public struct CertificateMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "Certificates", required: false, type: .structure) - ] - /// An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords . - public let marker: String? - /// The list of Certificate objects for the AWS account. - public let certificates: CertificateList? - - public init(marker: String? = nil, certificates: CertificateList? = nil) { - self.marker = marker - self.certificates = certificates - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case certificates = "Certificates" - } - } - - public struct TagListMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TagList", required: false, type: .structure) - ] - /// List of tags returned by the ListTagsForResource operation. - public let tagList: TagList? - - public init(tagList: TagList? = nil) { - self.tagList = tagList - } - - private enum CodingKeys: String, CodingKey { - case tagList = "TagList" - } - } - - public struct DBClusterParameterGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBClusterParameterGroup", required: false, type: .list) - ] - public let dBClusterParameterGroup: [DBClusterParameterGroup]? - - public init(dBClusterParameterGroup: [DBClusterParameterGroup]? = nil) { - self.dBClusterParameterGroup = dBClusterParameterGroup - } - - private enum CodingKeys: String, CodingKey { - case dBClusterParameterGroup = "DBClusterParameterGroup" - } - } - - public struct CopyDBClusterSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceDBClusterSnapshotIdentifier", required: true, type: .string), - AWSShapeMember(label: "CopyTags", required: false, type: .boolean), - AWSShapeMember(label: "KmsKeyId", required: false, type: .string), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "TargetDBClusterSnapshotIdentifier", required: true, type: .string), - AWSShapeMember(label: "PreSignedUrl", required: false, type: .string) - ] - /// The identifier of the DB cluster snapshot to copy. This parameter is not case-sensitive. You cannot copy an encrypted, shared DB cluster snapshot from one AWS region to another. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Must specify a valid system snapshot in the "available" state. If the source snapshot is in the same region as the copy, specify a valid DB snapshot identifier. If the source snapshot is in a different region than the copy, specify a valid DB cluster snapshot ARN. For more information, go to Copying a DB Snapshot or DB Cluster Snapshot. Example: my-cluster-snapshot1 - public let sourceDBClusterSnapshotIdentifier: String - /// True to copy all tags from the source DB cluster snapshot to the target DB cluster snapshot; otherwise false. The default is false. - public let copyTags: Bool? - /// The AWS KMS key ID for an encrypted DB cluster snapshot. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. If you copy an unencrypted DB cluster snapshot and specify a value for the KmsKeyId parameter, Amazon RDS encrypts the target DB cluster snapshot using the specified KMS encryption key. If you copy an encrypted DB cluster snapshot from your AWS account, you can specify a value for KmsKeyId to encrypt the copy with a new KMS encryption key. If you don't specify a value for KmsKeyId, then the copy of the DB cluster snapshot is encrypted with the same KMS key as the source DB cluster snapshot. If you copy an encrypted DB cluster snapshot that is shared from another AWS account, then you must specify a value for KmsKeyId. To copy an encrypted DB cluster snapshot to another region, you must set KmsKeyId to the KMS key ID you want to use to encrypt the copy of the DB cluster snapshot in the destination region. KMS encryption keys are specific to the region that they are created in, and you cannot use encryption keys from one region in another region. + public let engineVersion: String? + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false + public let enableIAMDatabaseAuthentication: Bool? + /// The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: ddd:hh24:mi-ddd:hh24:mi The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window. + public let preferredMaintenanceWindow: String? + /// The AWS KMS key identifier for an encrypted DB cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KM encryption key. If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region. public let kmsKeyId: String? + /// A list of EC2 Availability Zones that instances in the restored DB cluster can be created in. + public let availabilityZones: AvailabilityZones? public let tags: TagList? - /// The identifier of the new DB cluster snapshot to create from the source DB cluster snapshot. This parameter is not case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: my-cluster-snapshot2 - public let targetDBClusterSnapshotIdentifier: String - /// The URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot API action in the AWS region that contains the source DB cluster snapshot to copy. The PreSignedUrl parameter must be used when copying an encrypted DB cluster snapshot from another AWS region. The pre-signed URL must be a valid request for the CopyDBSClusterSnapshot API action that can be executed in the source region that contains the encrypted DB cluster snapshot to be copied. The pre-signed URL request must contain the following parameter values: KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination region. This is the same identifier for both the CopyDBClusterSnapshot action that is called in the destination region, and the action contained in the pre-signed URL. DestinationRegion - The name of the region that the DB cluster snapshot will be created in. SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. - public let preSignedUrl: String? + /// The version of the database that the backup files were created from. MySQL version 5.5 and 5.6 are supported. Example: 5.6.22 + public let sourceEngineVersion: String + /// A list of EC2 VPC security groups to associate with the restored DB cluster. + public let vpcSecurityGroupIds: VpcSecurityGroupIdList? + /// The identifier for the database engine that was backed up to create the files stored in the Amazon S3 bucket. Valid values: mysql + public let sourceEngine: String + /// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Constraints: Must be in the format hh24:mi-hh24:mi. Must be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. + public let preferredBackupWindow: String? + /// The name of the Amazon S3 bucket that contains the data used to create the Amazon Aurora DB cluster. + public let s3BucketName: String + /// A value that indicates that the restored DB cluster should be associated with the specified option group. Permanent options can't be removed from an option group. An option group can't be removed from a DB cluster once it is associated with a DB cluster. + public let optionGroupName: String? + /// The name of the master user for the restored DB cluster. Constraints: Must be 1 to 16 letters or numbers. First character must be a letter. Cannot be a reserved word for the chosen database engine. + public let masterUsername: String + /// A DB subnet group to associate with the restored DB cluster. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: mySubnetgroup + public let dBSubnetGroupName: String? + /// The database name for the restored DB cluster. + public let databaseName: String? + /// The name of the database engine to be used for the restored DB cluster. Valid Values: aurora, aurora-postgresql + public let engine: String + /// Specifies whether the restored DB cluster is encrypted. + public let storageEncrypted: Bool? + /// The name of the DB cluster parameter group to associate with the restored DB cluster. If this argument is omitted, default.aurora5.6 is used. Constraints: If supplied, must match the name of an existing DBClusterParameterGroup. + public let dBClusterParameterGroupName: String? + /// The port number on which the instances in the restored DB cluster accept connections. Default: 3306 + public let port: Int32? + /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon RDS to access the Amazon S3 bucket on your behalf. + public let s3IngestionRoleArn: String - public init(sourceDBClusterSnapshotIdentifier: String, copyTags: Bool? = nil, kmsKeyId: String? = nil, tags: TagList? = nil, targetDBClusterSnapshotIdentifier: String, preSignedUrl: String? = nil) { - self.sourceDBClusterSnapshotIdentifier = sourceDBClusterSnapshotIdentifier - self.copyTags = copyTags + public init(masterUserPassword: String, backupRetentionPeriod: Int32? = nil, s3Prefix: String? = nil, characterSetName: String? = nil, dBClusterIdentifier: String, engineVersion: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, preferredMaintenanceWindow: String? = nil, kmsKeyId: String? = nil, availabilityZones: AvailabilityZones? = nil, tags: TagList? = nil, sourceEngineVersion: String, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, sourceEngine: String, preferredBackupWindow: String? = nil, s3BucketName: String, optionGroupName: String? = nil, masterUsername: String, dBSubnetGroupName: String? = nil, databaseName: String? = nil, engine: String, storageEncrypted: Bool? = nil, dBClusterParameterGroupName: String? = nil, port: Int32? = nil, s3IngestionRoleArn: String) { + self.masterUserPassword = masterUserPassword + self.backupRetentionPeriod = backupRetentionPeriod + self.s3Prefix = s3Prefix + self.characterSetName = characterSetName + self.dBClusterIdentifier = dBClusterIdentifier + self.engineVersion = engineVersion + self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication + self.preferredMaintenanceWindow = preferredMaintenanceWindow self.kmsKeyId = kmsKeyId + self.availabilityZones = availabilityZones self.tags = tags - self.targetDBClusterSnapshotIdentifier = targetDBClusterSnapshotIdentifier - self.preSignedUrl = preSignedUrl + self.sourceEngineVersion = sourceEngineVersion + self.vpcSecurityGroupIds = vpcSecurityGroupIds + self.sourceEngine = sourceEngine + self.preferredBackupWindow = preferredBackupWindow + self.s3BucketName = s3BucketName + self.optionGroupName = optionGroupName + self.masterUsername = masterUsername + self.dBSubnetGroupName = dBSubnetGroupName + self.databaseName = databaseName + self.engine = engine + self.storageEncrypted = storageEncrypted + self.dBClusterParameterGroupName = dBClusterParameterGroupName + self.port = port + self.s3IngestionRoleArn = s3IngestionRoleArn } private enum CodingKeys: String, CodingKey { - case sourceDBClusterSnapshotIdentifier = "SourceDBClusterSnapshotIdentifier" - case copyTags = "CopyTags" + case masterUserPassword = "MasterUserPassword" + case backupRetentionPeriod = "BackupRetentionPeriod" + case s3Prefix = "S3Prefix" + case characterSetName = "CharacterSetName" + case dBClusterIdentifier = "DBClusterIdentifier" + case engineVersion = "EngineVersion" + case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" + case preferredMaintenanceWindow = "PreferredMaintenanceWindow" case kmsKeyId = "KmsKeyId" + case availabilityZones = "AvailabilityZones" case tags = "Tags" - case targetDBClusterSnapshotIdentifier = "TargetDBClusterSnapshotIdentifier" - case preSignedUrl = "PreSignedUrl" + case sourceEngineVersion = "SourceEngineVersion" + case vpcSecurityGroupIds = "VpcSecurityGroupIds" + case sourceEngine = "SourceEngine" + case preferredBackupWindow = "PreferredBackupWindow" + case s3BucketName = "S3BucketName" + case optionGroupName = "OptionGroupName" + case masterUsername = "MasterUsername" + case dBSubnetGroupName = "DBSubnetGroupName" + case databaseName = "DatabaseName" + case engine = "Engine" + case storageEncrypted = "StorageEncrypted" + case dBClusterParameterGroupName = "DBClusterParameterGroupName" + case port = "Port" + case s3IngestionRoleArn = "S3IngestionRoleArn" } } public struct DescribeReservedDBInstancesOfferingsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -7151,7 +8274,7 @@ extension Rds { } public struct DBEngineVersionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "DBEngineVersions", required: false, type: .structure) ] @@ -7172,7 +8295,7 @@ extension Rds { } public struct DBParameterGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "DBParameterGroups", required: false, type: .structure) ] @@ -7192,23 +8315,8 @@ extension Rds { } } - public struct ReservedDBInstancesOfferingList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReservedDBInstancesOffering", required: false, type: .list) - ] - public let reservedDBInstancesOffering: [ReservedDBInstancesOffering]? - - public init(reservedDBInstancesOffering: [ReservedDBInstancesOffering]? = nil) { - self.reservedDBInstancesOffering = reservedDBInstancesOffering - } - - private enum CodingKeys: String, CodingKey { - case reservedDBInstancesOffering = "ReservedDBInstancesOffering" - } - } - public struct RevokeDBSecurityGroupIngressMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EC2SecurityGroupName", required: false, type: .string), AWSShapeMember(label: "DBSecurityGroupName", required: true, type: .string), AWSShapeMember(label: "EC2SecurityGroupId", required: false, type: .string), @@ -7223,7 +8331,7 @@ extension Rds { public let eC2SecurityGroupId: String? /// The AWS Account Number of the owner of the EC2 security group specified in the EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable value. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided. public let eC2SecurityGroupOwnerId: String? - /// The IP range to revoke access from. Must be a valid CIDR range. If CIDRIP is specified, EC2SecurityGroupName, EC2SecurityGroupId and EC2SecurityGroupOwnerId cannot be provided. + /// The IP range to revoke access from. Must be a valid CIDR range. If CIDRIP is specified, EC2SecurityGroupName, EC2SecurityGroupId and EC2SecurityGroupOwnerId can't be provided. public let cidrip: String? public init(eC2SecurityGroupName: String? = nil, dBSecurityGroupName: String, eC2SecurityGroupId: String? = nil, eC2SecurityGroupOwnerId: String? = nil, cidrip: String? = nil) { @@ -7243,125 +8351,8 @@ extension Rds { } } - public struct OptionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OptionSettings", required: false, type: .structure), - AWSShapeMember(label: "OptionName", required: true, type: .string), - AWSShapeMember(label: "DBSecurityGroupMemberships", required: false, type: .structure), - AWSShapeMember(label: "VpcSecurityGroupMemberships", required: false, type: .structure), - AWSShapeMember(label: "OptionVersion", required: false, type: .string), - AWSShapeMember(label: "Port", required: false, type: .integer) - ] - /// The option settings to include in an option group. - public let optionSettings: OptionSettingsList? - /// The configuration of options to include in a group. - public let optionName: String - /// A list of DBSecurityGroupMemebrship name strings used for this option. - public let dBSecurityGroupMemberships: DBSecurityGroupNameList? - /// A list of VpcSecurityGroupMemebrship name strings used for this option. - public let vpcSecurityGroupMemberships: VpcSecurityGroupIdList? - /// The version for the option. - public let optionVersion: String? - /// The optional port for the option. - public let port: Int32? - - public init(optionSettings: OptionSettingsList? = nil, optionName: String, dBSecurityGroupMemberships: DBSecurityGroupNameList? = nil, vpcSecurityGroupMemberships: VpcSecurityGroupIdList? = nil, optionVersion: String? = nil, port: Int32? = nil) { - self.optionSettings = optionSettings - self.optionName = optionName - self.dBSecurityGroupMemberships = dBSecurityGroupMemberships - self.vpcSecurityGroupMemberships = vpcSecurityGroupMemberships - self.optionVersion = optionVersion - self.port = port - } - - private enum CodingKeys: String, CodingKey { - case optionSettings = "OptionSettings" - case optionName = "OptionName" - case dBSecurityGroupMemberships = "DBSecurityGroupMemberships" - case vpcSecurityGroupMemberships = "VpcSecurityGroupMemberships" - case optionVersion = "OptionVersion" - case port = "Port" - } - } - - public struct RestoreDBClusterFromSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AvailabilityZones", required: false, type: .structure), - AWSShapeMember(label: "Tags", required: false, type: .structure), - AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), - AWSShapeMember(label: "DBClusterIdentifier", required: true, type: .string), - AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "OptionGroupName", required: false, type: .string), - AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), - AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "SnapshotIdentifier", required: true, type: .string), - AWSShapeMember(label: "Engine", required: true, type: .string), - AWSShapeMember(label: "DatabaseName", required: false, type: .string), - AWSShapeMember(label: "Port", required: false, type: .integer), - AWSShapeMember(label: "KmsKeyId", required: false, type: .string) - ] - /// Provides the list of EC2 Availability Zones that instances in the restored DB cluster can be created in. - public let availabilityZones: AvailabilityZones? - /// The tags to be assigned to the restored DB cluster. - public let tags: TagList? - /// A list of VPC security groups that the new DB cluster will belong to. - public let vpcSecurityGroupIds: VpcSecurityGroupIdList? - /// The name of the DB cluster to create from the DB cluster snapshot. This parameter isn't case-sensitive. Constraints: Must contain from 1 to 255 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens Example: my-snapshot-id - public let dBClusterIdentifier: String - /// The name of the DB subnet group to use for the new DB cluster. Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup - public let dBSubnetGroupName: String? - /// The name of the option group to use for the restored DB cluster. - public let optionGroupName: String? - /// A Boolean value that is true to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false - public let enableIAMDatabaseAuthentication: Bool? - /// The version of the database engine to use for the new DB cluster. - public let engineVersion: String? - /// The identifier for the DB cluster snapshot to restore from. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let snapshotIdentifier: String - /// The database engine to use for the new DB cluster. Default: The same as source Constraint: Must be compatible with the engine of the source - public let engine: String - /// The database name for the restored DB cluster. - public let databaseName: String? - /// The port number on which the new DB cluster accepts connections. Constraints: Value must be 1150-65535 Default: The same port as the original DB cluster. - public let port: Int32? - /// The KMS key identifier to use when restoring an encrypted DB cluster from a DB cluster snapshot. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. If you do not specify a value for the KmsKeyId parameter, then the following will occur: If the DB cluster snapshot is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB cluster snapshot. If the DB cluster snapshot is not encrypted, then the restored DB cluster is encrypted using the specified encryption key. - public let kmsKeyId: String? - - public init(availabilityZones: AvailabilityZones? = nil, tags: TagList? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, dBClusterIdentifier: String, dBSubnetGroupName: String? = nil, optionGroupName: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, engineVersion: String? = nil, snapshotIdentifier: String, engine: String, databaseName: String? = nil, port: Int32? = nil, kmsKeyId: String? = nil) { - self.availabilityZones = availabilityZones - self.tags = tags - self.vpcSecurityGroupIds = vpcSecurityGroupIds - self.dBClusterIdentifier = dBClusterIdentifier - self.dBSubnetGroupName = dBSubnetGroupName - self.optionGroupName = optionGroupName - self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication - self.engineVersion = engineVersion - self.snapshotIdentifier = snapshotIdentifier - self.engine = engine - self.databaseName = databaseName - self.port = port - self.kmsKeyId = kmsKeyId - } - - private enum CodingKeys: String, CodingKey { - case availabilityZones = "AvailabilityZones" - case tags = "Tags" - case vpcSecurityGroupIds = "VpcSecurityGroupIds" - case dBClusterIdentifier = "DBClusterIdentifier" - case dBSubnetGroupName = "DBSubnetGroupName" - case optionGroupName = "OptionGroupName" - case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" - case engineVersion = "EngineVersion" - case snapshotIdentifier = "SnapshotIdentifier" - case engine = "Engine" - case databaseName = "DatabaseName" - case port = "Port" - case kmsKeyId = "KmsKeyId" - } - } - public struct CreateDBClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .structure), AWSShapeMember(label: "DBClusterParameterGroupName", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), @@ -7385,9 +8376,9 @@ extension Rds { AWSShapeMember(label: "Port", required: false, type: .integer), AWSShapeMember(label: "KmsKeyId", required: false, type: .string) ] - /// A list of EC2 Availability Zones that instances in the DB cluster can be created in. For information on regions and Availability Zones, see Regions and Availability Zones. + /// A list of EC2 Availability Zones that instances in the DB cluster can be created in. For information on AWS Regions and Availability Zones, see Regions and Availability Zones. public let availabilityZones: AvailabilityZones? - /// The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, default.aurora5.6 will be used. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens + /// The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, default.aurora5.6 is used. Constraints: If supplied, must match the name of an existing DBClusterParameterGroup. public let dBClusterParameterGroupName: String? public let tags: TagList? /// A list of EC2 VPC security groups to associate with this DB cluster. @@ -7398,35 +8389,35 @@ extension Rds { public let backupRetentionPeriod: Int32? /// A value that indicates that the DB cluster should be associated with the specified CharacterSet. public let characterSetName: String? - /// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. Default: A 30-minute window selected at random from an 8-hour block of time per region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Constraints: Must be in the format hh24:mi-hh24:mi. Times should be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. + /// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Constraints: Must be in the format hh24:mi-hh24:mi. Must be in Universal Coordinated Time (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes. public let preferredBackupWindow: String? - /// The DB cluster identifier. This parameter is stored as a lowercase string. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: my-cluster1 + /// The DB cluster identifier. This parameter is stored as a lowercase string. Constraints: Must contain from 1 to 63 letters, numbers, or hyphens. First character must be a letter. Cannot end with a hyphen or contain two consecutive hyphens. Example: my-cluster1 public let dBClusterIdentifier: String - /// A value that indicates that the DB cluster should be associated with the specified option group. Permanent options cannot be removed from an option group. The option group cannot be removed from a DB cluster once it is associated with a DB cluster. + /// A value that indicates that the DB cluster should be associated with the specified option group. Permanent options can't be removed from an option group. The option group can't be removed from a DB cluster once it is associated with a DB cluster. public let optionGroupName: String? /// The version number of the database engine to use. Aurora Example: 5.6.10a public let engineVersion: String? - /// The name of the master user for the DB cluster. Constraints: Must be 1 to 16 alphanumeric characters. First character must be a letter. Cannot be a reserved word for the chosen database engine. + /// The name of the master user for the DB cluster. Constraints: Must be 1 to 16 letters or numbers. First character must be a letter. Cannot be a reserved word for the chosen database engine. public let masterUsername: String? - /// A DB subnet group to associate with this DB cluster. Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default. Example: mySubnetgroup + /// A DB subnet group to associate with this DB cluster. Constraints: Must match the name of an existing DBSubnetGroup. Must not be default. Example: mySubnetgroup public let dBSubnetGroupName: String? - /// A Boolean value that is true to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false + /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: false public let enableIAMDatabaseAuthentication: Bool? /// The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica. public let replicationSourceIdentifier: String? - /// A URL that contains a Signature Version 4 signed request for the CreateDBCluster action to be called in the source region where the DB cluster will be replicated from. You only need to specify PreSignedUrl when you are performing cross-region replication from an encrypted DB cluster. The pre-signed URL must be a valid request for the CreateDBCluster API action that can be executed in the source region that contains the encrypted DB cluster to be copied. The pre-signed URL request must contain the following parameter values: KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB cluster in the destination region. This should refer to the same KMS key for both the CreateDBCluster action that is called in the destination region, and the action contained in the pre-signed URL. DestinationRegion - The name of the region that Aurora Read Replica will be created in. ReplicationSourceIdentifier - The DB cluster identifier for the encrypted DB cluster to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you are copying an encrypted DB cluster from the us-west-2 region, then your ReplicationSourceIdentifier would look like Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. + /// A URL that contains a Signature Version 4 signed request for the CreateDBCluster action to be called in the source AWS Region where the DB cluster is replicated from. You only need to specify PreSignedUrl when you are performing cross-region replication from an encrypted DB cluster. The pre-signed URL must be a valid request for the CreateDBCluster API action that can be executed in the source AWS Region that contains the encrypted DB cluster to be copied. The pre-signed URL request must contain the following parameter values: KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of the DB cluster in the destination AWS Region. This should refer to the same KMS key for both the CreateDBCluster action that is called in the destination AWS Region, and the action contained in the pre-signed URL. DestinationRegion - The name of the AWS Region that Aurora Read Replica will be created in. ReplicationSourceIdentifier - The DB cluster identifier for the encrypted DB cluster to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an encrypted DB cluster from the us-west-2 AWS Region, then your ReplicationSourceIdentifier would look like Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1. To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process. public let preSignedUrl: String? - /// The name of the database engine to be used for this DB cluster. Valid Values: aurora + /// The name of the database engine to be used for this DB cluster. Valid Values: aurora, aurora-postgresql public let engine: String /// Specifies whether the DB cluster is encrypted. public let storageEncrypted: Bool? - /// The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: ddd:hh24:mi-ddd:hh24:mi Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun Constraints: Minimum 30-minute window. + /// The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: ddd:hh24:mi-ddd:hh24:mi The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window. public let preferredMaintenanceWindow: String? /// The name for your database of up to 64 alpha-numeric characters. If you do not provide a name, Amazon RDS will not create a database in the DB cluster you are creating. public let databaseName: String? /// The port number on which the instances in the DB cluster accept connections. Default: 3306 public let port: Int32? - /// The KMS key identifier for an encrypted DB cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region. If you create a Read Replica of an encrypted DB cluster in another region, you must set KmsKeyId to a KMS key ID that is valid in the destination region. This key is used to encrypt the Read Replica in that region. + /// The AWS KMS key identifier for an encrypted DB cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. If an encryption key is not specified in KmsKeyId: If ReplicationSourceIdentifier identifies an encrypted source, then Amazon RDS will use the encryption key used to encrypt the source. Otherwise, Amazon RDS will use your default encryption key. If the StorageEncrypted parameter is true and ReplicationSourceIdentifier is not specified, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region. If you create a Read Replica of an encrypted DB cluster in another AWS Region, you must set KmsKeyId to a KMS key ID that is valid in the destination AWS Region. This key is used to encrypt the Read Replica in that AWS Region. public let kmsKeyId: String? public init(availabilityZones: AvailabilityZones? = nil, dBClusterParameterGroupName: String? = nil, tags: TagList? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, masterUserPassword: String? = nil, backupRetentionPeriod: Int32? = nil, characterSetName: String? = nil, preferredBackupWindow: String? = nil, dBClusterIdentifier: String, optionGroupName: String? = nil, engineVersion: String? = nil, masterUsername: String? = nil, dBSubnetGroupName: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, replicationSourceIdentifier: String? = nil, preSignedUrl: String? = nil, engine: String, storageEncrypted: Bool? = nil, preferredMaintenanceWindow: String? = nil, databaseName: String? = nil, port: Int32? = nil, kmsKeyId: String? = nil) { @@ -7458,61 +8449,30 @@ extension Rds { case availabilityZones = "AvailabilityZones" case dBClusterParameterGroupName = "DBClusterParameterGroupName" case tags = "Tags" - case vpcSecurityGroupIds = "VpcSecurityGroupIds" - case masterUserPassword = "MasterUserPassword" - case backupRetentionPeriod = "BackupRetentionPeriod" - case characterSetName = "CharacterSetName" - case preferredBackupWindow = "PreferredBackupWindow" - case dBClusterIdentifier = "DBClusterIdentifier" - case optionGroupName = "OptionGroupName" - case engineVersion = "EngineVersion" - case masterUsername = "MasterUsername" - case dBSubnetGroupName = "DBSubnetGroupName" - case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" - case replicationSourceIdentifier = "ReplicationSourceIdentifier" - case preSignedUrl = "PreSignedUrl" - case engine = "Engine" - case storageEncrypted = "StorageEncrypted" - case preferredMaintenanceWindow = "PreferredMaintenanceWindow" - case databaseName = "DatabaseName" - case port = "Port" - case kmsKeyId = "KmsKeyId" - } - } - - public struct DescribeDBInstancesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "DBInstanceIdentifier", required: false, type: .string) - ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// A filter that specifies one or more DB instances to describe. Supported filters: db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB instances associated with the DB Clusters identified by these ARNs. db-instance-id - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). The results list will only include information about the DB instances identified by these ARNs. - public let filters: FilterList? - /// An optional pagination token provided by a previous DescribeDBInstances request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// The user-supplied instance identifier. If this parameter is specified, information from only the specific DB instance is returned. This parameter isn't case-sensitive. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBInstanceIdentifier: String? - - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil, dBInstanceIdentifier: String? = nil) { - self.maxRecords = maxRecords - self.filters = filters - self.marker = marker - self.dBInstanceIdentifier = dBInstanceIdentifier - } - - private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case filters = "Filters" - case marker = "Marker" - case dBInstanceIdentifier = "DBInstanceIdentifier" + case vpcSecurityGroupIds = "VpcSecurityGroupIds" + case masterUserPassword = "MasterUserPassword" + case backupRetentionPeriod = "BackupRetentionPeriod" + case characterSetName = "CharacterSetName" + case preferredBackupWindow = "PreferredBackupWindow" + case dBClusterIdentifier = "DBClusterIdentifier" + case optionGroupName = "OptionGroupName" + case engineVersion = "EngineVersion" + case masterUsername = "MasterUsername" + case dBSubnetGroupName = "DBSubnetGroupName" + case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" + case replicationSourceIdentifier = "ReplicationSourceIdentifier" + case preSignedUrl = "PreSignedUrl" + case engine = "Engine" + case storageEncrypted = "StorageEncrypted" + case preferredMaintenanceWindow = "PreferredMaintenanceWindow" + case databaseName = "DatabaseName" + case port = "Port" + case kmsKeyId = "KmsKeyId" } } public struct OptionGroupsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OptionGroup", required: false, type: .list) ] public let optionGroup: [OptionGroup]? @@ -7527,7 +8487,7 @@ extension Rds { } public struct DescribeOrderableDBInstanceOptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "EngineVersion", required: false, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -7552,352 +8512,48 @@ extension Rds { /// The VPC filter value. Specify this parameter to show only the available VPC or non-VPC offerings. public let vpc: Bool? /// The DB instance class filter value. Specify this parameter to show only the available offerings matching the specified DB instance class. - public let dBInstanceClass: String? - - public init(maxRecords: Int32? = nil, engineVersion: String? = nil, marker: String? = nil, licenseModel: String? = nil, engine: String, filters: FilterList? = nil, vpc: Bool? = nil, dBInstanceClass: String? = nil) { - self.maxRecords = maxRecords - self.engineVersion = engineVersion - self.marker = marker - self.licenseModel = licenseModel - self.engine = engine - self.filters = filters - self.vpc = vpc - self.dBInstanceClass = dBInstanceClass - } - - private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case engineVersion = "EngineVersion" - case marker = "Marker" - case licenseModel = "LicenseModel" - case engine = "Engine" - case filters = "Filters" - case vpc = "Vpc" - case dBInstanceClass = "DBInstanceClass" - } - } - - public struct PendingModifiedValues: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), - AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "LicenseModel", required: false, type: .string), - AWSShapeMember(label: "StorageType", required: false, type: .string), - AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), - AWSShapeMember(label: "MasterUserPassword", required: false, type: .string), - AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), - AWSShapeMember(label: "Iops", required: false, type: .integer), - AWSShapeMember(label: "CACertificateIdentifier", required: false, type: .string), - AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "Port", required: false, type: .integer), - AWSShapeMember(label: "DBInstanceIdentifier", required: false, type: .string) - ] - /// Contains the new DBInstanceClass for the DB instance that will be applied or is in progress. - public let dBInstanceClass: String? - /// Indicates that the Single-AZ DB instance is to change to a Multi-AZ deployment. - public let multiAZ: Bool? - /// The license model for the DB instance. Valid values: license-included | bring-your-own-license | general-public-license - public let licenseModel: String? - /// Specifies the storage type to be associated with the DB instance. - public let storageType: String? - /// Contains the new AllocatedStorage size for the DB instance that will be applied or is in progress. - public let allocatedStorage: Int32? - /// Contains the pending or in-progress change of the master credentials for the DB instance. - public let masterUserPassword: String? - /// Specifies the pending number of days for which automated backups are retained. - public let backupRetentionPeriod: Int32? - /// Specifies the new Provisioned IOPS value for the DB instance that will be applied or is being applied. - public let iops: Int32? - /// Specifies the identifier of the CA certificate for the DB instance. - public let cACertificateIdentifier: String? - /// The new DB subnet group for the DB instance. - public let dBSubnetGroupName: String? - /// Indicates the database engine version. - public let engineVersion: String? - /// Specifies the pending port for the DB instance. - public let port: Int32? - /// Contains the new DBInstanceIdentifier for the DB instance that will be applied or is in progress. - public let dBInstanceIdentifier: String? - - public init(dBInstanceClass: String? = nil, multiAZ: Bool? = nil, licenseModel: String? = nil, storageType: String? = nil, allocatedStorage: Int32? = nil, masterUserPassword: String? = nil, backupRetentionPeriod: Int32? = nil, iops: Int32? = nil, cACertificateIdentifier: String? = nil, dBSubnetGroupName: String? = nil, engineVersion: String? = nil, port: Int32? = nil, dBInstanceIdentifier: String? = nil) { - self.dBInstanceClass = dBInstanceClass - self.multiAZ = multiAZ - self.licenseModel = licenseModel - self.storageType = storageType - self.allocatedStorage = allocatedStorage - self.masterUserPassword = masterUserPassword - self.backupRetentionPeriod = backupRetentionPeriod - self.iops = iops - self.cACertificateIdentifier = cACertificateIdentifier - self.dBSubnetGroupName = dBSubnetGroupName - self.engineVersion = engineVersion - self.port = port - self.dBInstanceIdentifier = dBInstanceIdentifier - } - - private enum CodingKeys: String, CodingKey { - case dBInstanceClass = "DBInstanceClass" - case multiAZ = "MultiAZ" - case licenseModel = "LicenseModel" - case storageType = "StorageType" - case allocatedStorage = "AllocatedStorage" - case masterUserPassword = "MasterUserPassword" - case backupRetentionPeriod = "BackupRetentionPeriod" - case iops = "Iops" - case cACertificateIdentifier = "CACertificateIdentifier" - case dBSubnetGroupName = "DBSubnetGroupName" - case engineVersion = "EngineVersion" - case port = "Port" - case dBInstanceIdentifier = "DBInstanceIdentifier" - } - } - - public struct ModifyDBSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshot", required: false, type: .structure) - ] - public let dBSnapshot: DBSnapshot? - - public init(dBSnapshot: DBSnapshot? = nil) { - self.dBSnapshot = dBSnapshot - } - - private enum CodingKeys: String, CodingKey { - case dBSnapshot = "DBSnapshot" - } - } - - public struct SourceRegionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "SourceRegions", required: false, type: .structure) - ] - /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// A list of SourceRegion instances that contains each source AWS Region that the current region can get a Read Replica or a DB snapshot from. - public let sourceRegions: SourceRegionList? - - public init(marker: String? = nil, sourceRegions: SourceRegionList? = nil) { - self.marker = marker - self.sourceRegions = sourceRegions - } - - private enum CodingKeys: String, CodingKey { - case marker = "Marker" - case sourceRegions = "SourceRegions" - } - } - - public struct StartDBInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) - ] - /// The user-supplied instance identifier. - public let dBInstanceIdentifier: String - - public init(dBInstanceIdentifier: String) { - self.dBInstanceIdentifier = dBInstanceIdentifier - } - - private enum CodingKeys: String, CodingKey { - case dBInstanceIdentifier = "DBInstanceIdentifier" - } - } - - public struct AccountQuotaList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountQuota", required: false, type: .list) - ] - public let accountQuota: [AccountQuota]? - - public init(accountQuota: [AccountQuota]? = nil) { - self.accountQuota = accountQuota - } - - private enum CodingKeys: String, CodingKey { - case accountQuota = "AccountQuota" - } - } - - public struct ModifyDBInstanceMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AllowMajorVersionUpgrade", required: false, type: .boolean), - AWSShapeMember(label: "TdeCredentialPassword", required: false, type: .string), - AWSShapeMember(label: "DBPortNumber", required: false, type: .integer), - AWSShapeMember(label: "ApplyImmediately", required: false, type: .boolean), - AWSShapeMember(label: "Iops", required: false, type: .integer), - AWSShapeMember(label: "MasterUserPassword", required: false, type: .string), - AWSShapeMember(label: "DBSecurityGroups", required: false, type: .structure), - AWSShapeMember(label: "AutoMinorVersionUpgrade", required: false, type: .boolean), - AWSShapeMember(label: "BackupRetentionPeriod", required: false, type: .integer), - AWSShapeMember(label: "CACertificateIdentifier", required: false, type: .string), - AWSShapeMember(label: "EnableIAMDatabaseAuthentication", required: false, type: .boolean), - AWSShapeMember(label: "EngineVersion", required: false, type: .string), - AWSShapeMember(label: "PromotionTier", required: false, type: .integer), - AWSShapeMember(label: "PreferredMaintenanceWindow", required: false, type: .string), - AWSShapeMember(label: "CopyTagsToSnapshot", required: false, type: .boolean), - AWSShapeMember(label: "DomainIAMRoleName", required: false, type: .string), - AWSShapeMember(label: "Domain", required: false, type: .string), - AWSShapeMember(label: "DBInstanceClass", required: false, type: .string), - AWSShapeMember(label: "MultiAZ", required: false, type: .boolean), - AWSShapeMember(label: "AllocatedStorage", required: false, type: .integer), - AWSShapeMember(label: "VpcSecurityGroupIds", required: false, type: .structure), - AWSShapeMember(label: "StorageType", required: false, type: .string), - AWSShapeMember(label: "LicenseModel", required: false, type: .string), - AWSShapeMember(label: "TdeCredentialArn", required: false, type: .string), - AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string), - AWSShapeMember(label: "PubliclyAccessible", required: false, type: .boolean), - AWSShapeMember(label: "PreferredBackupWindow", required: false, type: .string), - AWSShapeMember(label: "DBSubnetGroupName", required: false, type: .string), - AWSShapeMember(label: "OptionGroupName", required: false, type: .string), - AWSShapeMember(label: "MonitoringRoleArn", required: false, type: .string), - AWSShapeMember(label: "MonitoringInterval", required: false, type: .integer), - AWSShapeMember(label: "NewDBInstanceIdentifier", required: false, type: .string), - AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) - ] - /// Indicates that major version upgrades are allowed. Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible. Constraints: This parameter must be set to true when specifying a value for the EngineVersion parameter that is a different major version than the DB instance's current version. - public let allowMajorVersionUpgrade: Bool? - /// The password for the given ARN from the Key Store in order to access the device. - public let tdeCredentialPassword: String? - /// The port number on which the database accepts connections. The value of the DBPortNumber parameter must not match any of the port values specified for options in the option group for the DB instance. Your database will restart when you change the DBPortNumber value regardless of the value of the ApplyImmediately parameter. MySQL Default: 3306 Valid Values: 1150-65535 MariaDB Default: 3306 Valid Values: 1150-65535 PostgreSQL Default: 5432 Valid Values: 1150-65535 Type: Integer Oracle Default: 1521 Valid Values: 1150-65535 SQL Server Default: 1433 Valid Values: 1150-65535 except for 1434, 3389, 47001, 49152, and 49152 through 49156. Amazon Aurora Default: 3306 Valid Values: 1150-65535 - public let dBPortNumber: Int32? - /// Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB instance. If this parameter is set to false, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and will be applied on the next call to RebootDBInstance, or the next failure reboot. Review the table of parameters in Modifying a DB Instance and Using the Apply Immediately Parameter to see the impact that setting ApplyImmediately to true or false has for each modified parameter and to determine when the changes will be applied. Default: false - public let applyImmediately: Bool? - /// The new Provisioned IOPS (I/O operations per second) value for the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. Default: Uses existing setting Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. If you are migrating from Provisioned IOPS to standard storage, set this value to 0. The DB instance will require a reboot for the change in storage type to take effect. SQL Server Setting the IOPS value for the SQL Server database engine is not supported. Type: Integer If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance will be available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance will be suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a Read Replica for the instance, and creating a DB snapshot of the instance. - public let iops: Int32? - /// The new password for the DB instance master user. Can be any printable ASCII character except "/", """, or "@". Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response. Default: Uses existing setting Constraints: Must be 8 to 41 alphanumeric characters (MySQL, MariaDB, and Amazon Aurora), 8 to 30 alphanumeric characters (Oracle), or 8 to 128 alphanumeric characters (SQL Server). Amazon RDS API actions never return the password, so this action provides a way to regain access to a primary instance user if the password is lost. This includes restoring privileges that might have been accidentally revoked. - public let masterUserPassword: String? - /// A list of DB security groups to authorize on this DB instance. Changing this setting does not result in an outage and the change is asynchronously applied as soon as possible. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBSecurityGroups: DBSecurityGroupNameList? - /// Indicates that minor version upgrades will be applied automatically to the DB instance during the maintenance window. Changing this parameter does not result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to true during the maintenance window, and a newer minor version is available, and RDS has enabled auto patching for that engine version. - public let autoMinorVersionUpgrade: Bool? - /// The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups. Changing this parameter can result in an outage if you change from 0 to a non-zero value or from a non-zero value to 0. These changes are applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If you change the parameter from one non-zero value to another non-zero value, the change is asynchronously applied as soon as possible. Default: Uses existing setting Constraints: Must be a value from 0 to 35 Can be specified for a MySQL Read Replica only if the source is running MySQL 5.6 Can be specified for a PostgreSQL Read Replica only if the source is running PostgreSQL 9.3.5 Cannot be set to 0 if the DB instance is a source to Read Replicas - public let backupRetentionPeriod: Int32? - /// Indicates the certificate that needs to be associated with the instance. - public let cACertificateIdentifier: String? - /// True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false. You can enable IAM database authentication for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Default: false - public let enableIAMDatabaseAuthentication: Bool? - /// The version number of the database engine to upgrade to. Changing this parameter results in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. For major version upgrades, if a non-default DB parameter group is currently in use, a new DB parameter group in the DB parameter group family for the new engine version must be specified. The new DB parameter group can be the default for that DB parameter group family. For a list of valid engine versions, see CreateDBInstance. - public let engineVersion: String? - /// A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster. Default: 1 Valid Values: 0 - 15 - public let promotionTier: Int32? - /// The weekly time range (in UTC) during which system maintenance can occur, which might result in an outage. Changing this parameter does not result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, then changing this parameter will cause a reboot of the DB instance. If moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied. Default: Uses existing setting Format: ddd:hh24:mi-ddd:hh24:mi Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun Constraints: Must be at least 30 minutes - public let preferredMaintenanceWindow: String? - /// True to copy all tags from the DB instance to snapshots of the DB instance; otherwise false. The default is false. - public let copyTagsToSnapshot: Bool? - /// The name of the IAM role to use when making API calls to the Directory Service. - public let domainIAMRoleName: String? - /// The Active Directory Domain to move the instance to. Specify none to remove the instance from its current domain. The domain must be created prior to this operation. Currently only a Microsoft SQL Server instance can be created in a Active Directory Domain. - public let domain: String? - /// The new compute and memory capacity of the DB instance. To determine the instance classes that are available for a particular DB engine, use the DescribeOrderableDBInstanceOptions action. Note that not all instance classes are available in all regions for all DB engines. Passing a value for this setting causes an outage during the change and is applied during the next maintenance window, unless ApplyImmediately is specified as true for this request. Default: Uses existing setting Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large - public let dBInstanceClass: String? - /// Specifies if the DB instance is a Multi-AZ deployment. Changing this parameter does not result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. Constraints: Cannot be specified if the DB instance is a Read Replica. - public let multiAZ: Bool? - /// The new storage capacity of the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless ApplyImmediately is set to true for this request. MySQL Default: Uses existing setting Valid Values: 5-6144 Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. Type: Integer MariaDB Default: Uses existing setting Valid Values: 5-6144 Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. Type: Integer PostgreSQL Default: Uses existing setting Valid Values: 5-6144 Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. Type: Integer Oracle Default: Uses existing setting Valid Values: 10-6144 Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. SQL Server Cannot be modified. If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance will be available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance will be suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a Read Replica for the instance, and creating a DB snapshot of the instance. - public let allocatedStorage: Int32? - /// A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible. Constraints: Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let vpcSecurityGroupIds: VpcSecurityGroupIdList? - /// Specifies the storage type to be associated with the DB instance. Valid values: standard | gp2 | io1 If you specify io1, you must also include a value for the Iops parameter. Default: io1 if the Iops parameter is specified; otherwise standard - public let storageType: String? - /// The license model for the DB instance. Valid values: license-included | bring-your-own-license | general-public-license - public let licenseModel: String? - /// The ARN from the Key Store with which to associate the instance for TDE encryption. - public let tdeCredentialArn: String? - /// The name of the DB parameter group to apply to the DB instance. Changing this setting does not result in an outage. The parameter group name itself is changed immediately, but the actual parameter changes are not applied until you reboot the instance without failover. The db instance will NOT be rebooted automatically and the parameter changes will NOT be applied during the next maintenance window. Default: Uses existing setting Constraints: The DB parameter group must be in the same DB parameter group family as this DB instance. - public let dBParameterGroupName: String? - /// Boolean value that indicates if the DB instance has a publicly resolvable DNS name. Set to True to make the DB instance Internet-facing with a publicly resolvable DNS name, which resolves to a public IP address. Set to False to make the DB instance internal with a DNS name that resolves to a private IP address. PubliclyAccessible only applies to DB instances in a VPC. The DB instance must be part of a public subnet and PubliclyAccessible must be true in order for it to be publicly accessible. Changes to the PubliclyAccessible parameter are applied immediately regardless of the value of the ApplyImmediately parameter. Default: false - public let publiclyAccessible: Bool? - /// The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod parameter. Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible. Constraints: Must be in the format hh24:mi-hh24:mi Times should be in Universal Time Coordinated (UTC) Must not conflict with the preferred maintenance window Must be at least 30 minutes - public let preferredBackupWindow: String? - /// The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC. If your DB instance is not in a VPC, you can also use this parameter to move your DB instance into a VPC. For more information, see Updating the VPC for a DB Instance. Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you specify true for the ApplyImmediately parameter. Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Example: mySubnetGroup - public let dBSubnetGroupName: String? - /// Indicates that the DB instance should be associated with the specified option group. Changing this parameter does not result in an outage except in the following case and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted. Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance - public let optionGroupName: String? - /// The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring. If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value. - public let monitoringRoleArn: String? - /// The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0. Valid Values: 0, 1, 5, 10, 15, 30, 60 - public let monitoringInterval: Int32? - /// The new DB instance identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot will occur immediately if you set Apply Immediately to true, or will occur during the next maintenance window if Apply Immediately to false. This value is stored as a lowercase string. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let newDBInstanceIdentifier: String? - /// The DB instance identifier. This value is stored as a lowercase string. Constraints: Must be the identifier for an existing DB instance Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBInstanceIdentifier: String + public let dBInstanceClass: String? - public init(allowMajorVersionUpgrade: Bool? = nil, tdeCredentialPassword: String? = nil, dBPortNumber: Int32? = nil, applyImmediately: Bool? = nil, iops: Int32? = nil, masterUserPassword: String? = nil, dBSecurityGroups: DBSecurityGroupNameList? = nil, autoMinorVersionUpgrade: Bool? = nil, backupRetentionPeriod: Int32? = nil, cACertificateIdentifier: String? = nil, enableIAMDatabaseAuthentication: Bool? = nil, engineVersion: String? = nil, promotionTier: Int32? = nil, preferredMaintenanceWindow: String? = nil, copyTagsToSnapshot: Bool? = nil, domainIAMRoleName: String? = nil, domain: String? = nil, dBInstanceClass: String? = nil, multiAZ: Bool? = nil, allocatedStorage: Int32? = nil, vpcSecurityGroupIds: VpcSecurityGroupIdList? = nil, storageType: String? = nil, licenseModel: String? = nil, tdeCredentialArn: String? = nil, dBParameterGroupName: String? = nil, publiclyAccessible: Bool? = nil, preferredBackupWindow: String? = nil, dBSubnetGroupName: String? = nil, optionGroupName: String? = nil, monitoringRoleArn: String? = nil, monitoringInterval: Int32? = nil, newDBInstanceIdentifier: String? = nil, dBInstanceIdentifier: String) { - self.allowMajorVersionUpgrade = allowMajorVersionUpgrade - self.tdeCredentialPassword = tdeCredentialPassword - self.dBPortNumber = dBPortNumber - self.applyImmediately = applyImmediately - self.iops = iops - self.masterUserPassword = masterUserPassword - self.dBSecurityGroups = dBSecurityGroups - self.autoMinorVersionUpgrade = autoMinorVersionUpgrade - self.backupRetentionPeriod = backupRetentionPeriod - self.cACertificateIdentifier = cACertificateIdentifier - self.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication + public init(maxRecords: Int32? = nil, engineVersion: String? = nil, marker: String? = nil, licenseModel: String? = nil, engine: String, filters: FilterList? = nil, vpc: Bool? = nil, dBInstanceClass: String? = nil) { + self.maxRecords = maxRecords self.engineVersion = engineVersion - self.promotionTier = promotionTier - self.preferredMaintenanceWindow = preferredMaintenanceWindow - self.copyTagsToSnapshot = copyTagsToSnapshot - self.domainIAMRoleName = domainIAMRoleName - self.domain = domain - self.dBInstanceClass = dBInstanceClass - self.multiAZ = multiAZ - self.allocatedStorage = allocatedStorage - self.vpcSecurityGroupIds = vpcSecurityGroupIds - self.storageType = storageType + self.marker = marker self.licenseModel = licenseModel - self.tdeCredentialArn = tdeCredentialArn - self.dBParameterGroupName = dBParameterGroupName - self.publiclyAccessible = publiclyAccessible - self.preferredBackupWindow = preferredBackupWindow - self.dBSubnetGroupName = dBSubnetGroupName - self.optionGroupName = optionGroupName - self.monitoringRoleArn = monitoringRoleArn - self.monitoringInterval = monitoringInterval - self.newDBInstanceIdentifier = newDBInstanceIdentifier - self.dBInstanceIdentifier = dBInstanceIdentifier + self.engine = engine + self.filters = filters + self.vpc = vpc + self.dBInstanceClass = dBInstanceClass } private enum CodingKeys: String, CodingKey { - case allowMajorVersionUpgrade = "AllowMajorVersionUpgrade" - case tdeCredentialPassword = "TdeCredentialPassword" - case dBPortNumber = "DBPortNumber" - case applyImmediately = "ApplyImmediately" - case iops = "Iops" - case masterUserPassword = "MasterUserPassword" - case dBSecurityGroups = "DBSecurityGroups" - case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" - case backupRetentionPeriod = "BackupRetentionPeriod" - case cACertificateIdentifier = "CACertificateIdentifier" - case enableIAMDatabaseAuthentication = "EnableIAMDatabaseAuthentication" + case maxRecords = "MaxRecords" case engineVersion = "EngineVersion" - case promotionTier = "PromotionTier" - case preferredMaintenanceWindow = "PreferredMaintenanceWindow" - case copyTagsToSnapshot = "CopyTagsToSnapshot" - case domainIAMRoleName = "DomainIAMRoleName" - case domain = "Domain" - case dBInstanceClass = "DBInstanceClass" - case multiAZ = "MultiAZ" - case allocatedStorage = "AllocatedStorage" - case vpcSecurityGroupIds = "VpcSecurityGroupIds" - case storageType = "StorageType" + case marker = "Marker" case licenseModel = "LicenseModel" - case tdeCredentialArn = "TdeCredentialArn" - case dBParameterGroupName = "DBParameterGroupName" - case publiclyAccessible = "PubliclyAccessible" - case preferredBackupWindow = "PreferredBackupWindow" - case dBSubnetGroupName = "DBSubnetGroupName" - case optionGroupName = "OptionGroupName" - case monitoringRoleArn = "MonitoringRoleArn" - case monitoringInterval = "MonitoringInterval" - case newDBInstanceIdentifier = "NewDBInstanceIdentifier" - case dBInstanceIdentifier = "DBInstanceIdentifier" + case engine = "Engine" + case filters = "Filters" + case vpc = "Vpc" + case dBInstanceClass = "DBInstanceClass" + } + } + + public struct AccountQuotaList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountQuota", required: false, type: .list) + ] + public let accountQuota: [AccountQuota]? + + public init(accountQuota: [AccountQuota]? = nil) { + self.accountQuota = accountQuota + } + + private enum CodingKeys: String, CodingKey { + case accountQuota = "AccountQuota" } } public struct OptionConfigurationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OptionConfiguration", required: false, type: .list) ] public let optionConfiguration: [OptionConfiguration]? @@ -7912,7 +8568,7 @@ extension Rds { } public struct IPRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "CIDRIP", required: false, type: .string) ] @@ -7933,7 +8589,7 @@ extension Rds { } public struct DBSnapshot: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Port", required: false, type: .integer), AWSShapeMember(label: "Encrypted", required: false, type: .boolean), AWSShapeMember(label: "Iops", required: false, type: .integer), @@ -7969,7 +8625,7 @@ extension Rds { public let iops: Int32? /// Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot. public let availabilityZone: String? - /// The DB snapshot Arn that the DB snapshot was copied from. It only has value in case of cross customer or cross region copy. + /// The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was copied from. It only has value in case of cross-customer or cross-region copy. public let sourceDBSnapshotIdentifier: String? /// Specifies the status of this DB snapshot. public let status: String? @@ -7983,11 +8639,11 @@ extension Rds { public let snapshotCreateTime: TimeStamp? /// The Amazon Resource Name (ARN) for the DB snapshot. public let dBSnapshotArn: String? - /// If Encrypted is true, the KMS key identifier for the encrypted DB snapshot. + /// If Encrypted is true, the AWS KMS key identifier for the encrypted DB snapshot. public let kmsKeyId: String? /// Specifies the time when the snapshot was taken, in Universal Coordinated Time (UTC). public let instanceCreateTime: TimeStamp? - /// The region that the DB snapshot was created in or copied from. + /// The AWS Region that the DB snapshot was created in or copied from. public let sourceRegion: String? /// Specifies the allocated storage size in gigabytes (GB). public let allocatedStorage: Int32? @@ -8001,7 +8657,7 @@ extension Rds { public let snapshotType: String? /// License model information for the restored DB instance. public let licenseModel: String? - /// True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled; otherwise false. + /// True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. public let iAMDatabaseAuthenticationEnabled: Bool? /// Provides the option group name for the DB snapshot. public let optionGroupName: String? @@ -8073,69 +8729,8 @@ extension Rds { } } - public struct DBParameterGroup: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBParameterGroupFamily", required: false, type: .string), - AWSShapeMember(label: "DBParameterGroupArn", required: false, type: .string), - AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string), - AWSShapeMember(label: "Description", required: false, type: .string) - ] - /// Provides the name of the DB parameter group family that this DB parameter group is compatible with. - public let dBParameterGroupFamily: String? - /// The Amazon Resource Name (ARN) for the DB parameter group. - public let dBParameterGroupArn: String? - /// Provides the name of the DB parameter group. - public let dBParameterGroupName: String? - /// Provides the customer-specified description for this DB parameter group. - public let description: String? - - public init(dBParameterGroupFamily: String? = nil, dBParameterGroupArn: String? = nil, dBParameterGroupName: String? = nil, description: String? = nil) { - self.dBParameterGroupFamily = dBParameterGroupFamily - self.dBParameterGroupArn = dBParameterGroupArn - self.dBParameterGroupName = dBParameterGroupName - self.description = description - } - - private enum CodingKeys: String, CodingKey { - case dBParameterGroupFamily = "DBParameterGroupFamily" - case dBParameterGroupArn = "DBParameterGroupArn" - case dBParameterGroupName = "DBParameterGroupName" - case description = "Description" - } - } - - public struct PurchaseReservedDBInstancesOfferingMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ReservedDBInstanceId", required: false, type: .string), - AWSShapeMember(label: "ReservedDBInstancesOfferingId", required: true, type: .string), - AWSShapeMember(label: "DBInstanceCount", required: false, type: .integer), - AWSShapeMember(label: "Tags", required: false, type: .structure) - ] - /// Customer-specified identifier to track this reservation. Example: myreservationID - public let reservedDBInstanceId: String? - /// The ID of the Reserved DB instance offering to purchase. Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706 - public let reservedDBInstancesOfferingId: String - /// The number of instances to reserve. Default: 1 - public let dBInstanceCount: Int32? - public let tags: TagList? - - public init(reservedDBInstanceId: String? = nil, reservedDBInstancesOfferingId: String, dBInstanceCount: Int32? = nil, tags: TagList? = nil) { - self.reservedDBInstanceId = reservedDBInstanceId - self.reservedDBInstancesOfferingId = reservedDBInstancesOfferingId - self.dBInstanceCount = dBInstanceCount - self.tags = tags - } - - private enum CodingKeys: String, CodingKey { - case reservedDBInstanceId = "ReservedDBInstanceId" - case reservedDBInstancesOfferingId = "ReservedDBInstancesOfferingId" - case dBInstanceCount = "DBInstanceCount" - case tags = "Tags" - } - } - public struct ParametersList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameter", required: false, type: .list) ] public let parameter: [Parameter]? @@ -8150,7 +8745,7 @@ extension Rds { } public struct DBParameterGroupNameMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBParameterGroupName", required: false, type: .string) ] /// Provides the name of the DB parameter group. @@ -8165,122 +8760,8 @@ extension Rds { } } - public struct DescribeDBSnapshotAttributesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DBSnapshotIdentifier", required: true, type: .string) - ] - /// The identifier for the DB snapshot to describe the attributes for. - public let dBSnapshotIdentifier: String - - public init(dBSnapshotIdentifier: String) { - self.dBSnapshotIdentifier = dBSnapshotIdentifier - } - - private enum CodingKeys: String, CodingKey { - case dBSnapshotIdentifier = "DBSnapshotIdentifier" - } - } - - public struct DescribeDBSecurityGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "DBSecurityGroupName", required: false, type: .string) - ] - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. - public let maxRecords: Int32? - /// This parameter is not currently supported. - public let filters: FilterList? - /// An optional pagination token provided by a previous DescribeDBSecurityGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. - public let marker: String? - /// The name of the DB security group to return details for. - public let dBSecurityGroupName: String? - - public init(maxRecords: Int32? = nil, filters: FilterList? = nil, marker: String? = nil, dBSecurityGroupName: String? = nil) { - self.maxRecords = maxRecords - self.filters = filters - self.marker = marker - self.dBSecurityGroupName = dBSecurityGroupName - } - - private enum CodingKeys: String, CodingKey { - case maxRecords = "MaxRecords" - case filters = "Filters" - case marker = "Marker" - case dBSecurityGroupName = "DBSecurityGroupName" - } - } - - public struct Filter: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "Values", required: true, type: .structure) - ] - /// This parameter is not currently supported. - public let name: String - /// This parameter is not currently supported. - public let values: FilterValueList - - public init(name: String, values: FilterValueList) { - self.name = name - self.values = values - } - - private enum CodingKeys: String, CodingKey { - case name = "Name" - case values = "Values" - } - } - - public struct DownloadDBLogFilePortionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NumberOfLines", required: false, type: .integer), - AWSShapeMember(label: "Marker", required: false, type: .string), - AWSShapeMember(label: "LogFileName", required: true, type: .string), - AWSShapeMember(label: "DBInstanceIdentifier", required: true, type: .string) - ] - /// The number of lines to download. If the number of lines specified results in a file over 1 MB in size, the file will be truncated at 1 MB in size. If the NumberOfLines parameter is specified, then the block of lines returned can be from the beginning or the end of the log file, depending on the value of the Marker parameter. If neither Marker or NumberOfLines are specified, the entire log file is returned up to a maximum of 10000 lines, starting with the most recent log entries first. If NumberOfLines is specified and Marker is not specified, then the most recent lines from the end of the log file are returned. If Marker is specified as "0", then the specified number of lines from the beginning of the log file are returned. You can download the log file in blocks of lines by specifying the size of the block using the NumberOfLines parameter, and by specifying a value of "0" for the Marker parameter in your first request. Include the Marker value returned in the response as the Marker value for the next request, continuing until the AdditionalDataPending response element returns false. - public let numberOfLines: Int32? - /// The pagination token provided in the previous request or "0". If the Marker parameter is specified the response includes only records beyond the marker until the end of the file or up to NumberOfLines. - public let marker: String? - /// The name of the log file to be downloaded. - public let logFileName: String - /// The customer-assigned name of the DB instance that contains the log files you want to list. Constraints: Must contain from 1 to 63 alphanumeric characters or hyphens First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens - public let dBInstanceIdentifier: String - - public init(numberOfLines: Int32? = nil, marker: String? = nil, logFileName: String, dBInstanceIdentifier: String) { - self.numberOfLines = numberOfLines - self.marker = marker - self.logFileName = logFileName - self.dBInstanceIdentifier = dBInstanceIdentifier - } - - private enum CodingKeys: String, CodingKey { - case numberOfLines = "NumberOfLines" - case marker = "Marker" - case logFileName = "LogFileName" - case dBInstanceIdentifier = "DBInstanceIdentifier" - } - } - - public struct PendingMaintenanceActions: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourcePendingMaintenanceActions", required: false, type: .list) - ] - public let resourcePendingMaintenanceActions: [ResourcePendingMaintenanceActions]? - - public init(resourcePendingMaintenanceActions: [ResourcePendingMaintenanceActions]? = nil) { - self.resourcePendingMaintenanceActions = resourcePendingMaintenanceActions - } - - private enum CodingKeys: String, CodingKey { - case resourcePendingMaintenanceActions = "ResourcePendingMaintenanceActions" - } - } - public struct EventCategoriesMapList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventCategoriesMap", required: false, type: .list) ] public let eventCategoriesMap: [EventCategoriesMap]? diff --git a/Sources/AWSSDKSwift/Services/redshift/Redshift_API.swift b/Sources/AWSSDKSwift/Services/redshift/Redshift_API.swift index b08a13b3822..3d43fc976c7 100644 --- a/Sources/AWSSDKSwift/Services/redshift/Redshift_API.swift +++ b/Sources/AWSSDKSwift/Services/redshift/Redshift_API.swift @@ -244,7 +244,7 @@ public struct Redshift { return try client.send(operation: "DescribeEvents", path: "/", httpMethod: "POST", input: input) } - /// Lists descriptions of all the Amazon Redshift event notifications subscription for a customer account. If you specify a subscription name, lists the description for that subscription. + /// Lists descriptions of all the Amazon Redshift event notification subscriptions for a customer account. If you specify a subscription name, lists the description for that subscription. If you specify both tag keys and tag values in the same request, Amazon Redshift returns all event notification subscriptions that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all subscriptions that have any combination of those values are returned. If both tag keys and values are omitted from the request, subscriptions are returned regardless of whether they have tag keys or values associated with them. public func describeEventSubscriptions(_ input: DescribeEventSubscriptionsMessage) throws -> EventSubscriptionsMessage { return try client.send(operation: "DescribeEventSubscriptions", path: "/", httpMethod: "POST", input: input) } @@ -294,7 +294,7 @@ public struct Redshift { _ = try client.send(operation: "DeleteClusterParameterGroup", path: "/", httpMethod: "POST", input: input) } - /// Returns a database user name and temporary password with temporary authorization to log in to an Amazon Redshift database. The action returns the database user name prefixed with IAM: if AutoCreate is False or IAMA: if AutoCreate is True. You can optionally specify one or more database user groups that the user will join at log in. By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes). For more information, see Generating IAM Database User Credentials in the Amazon Redshift Cluster Management Guide. The IAM user or role that executes GetClusterCredentials must have an IAM policy attached that allows the redshift:GetClusterCredentials action with access to the dbuser resource on the cluster. The user name specified for dbuser in the IAM policy and the user name specified for the DbUser parameter must match. If the DbGroups parameter is specified, the IAM policy must allow the redshift:JoinGroup action with access to the listed dbgroups. In addition, if the AutoCreate parameter is set to True, then the policy must include the redshift:CreateClusterUser privilege. If the DbName parameter is specified, the IAM policy must allow access to the resource dbname for the specified database name. + /// Returns a database user name and temporary password with temporary authorization to log on to an Amazon Redshift database. The action returns the database user name prefixed with IAM: if AutoCreate is False or IAMA: if AutoCreate is True. You can optionally specify one or more database user groups that the user will join at log on. By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes). For more information, see Using IAM Authentication to Generate Database User Credentials in the Amazon Redshift Cluster Management Guide. The AWS Identity and Access Management (IAM)user or role that executes GetClusterCredentials must have an IAM policy attached that allows access to all necessary actions and resources. For more information about permissions, see Resource Policies for GetClusterCredentials in the Amazon Redshift Cluster Management Guide. If the DbGroups parameter is specified, the IAM policy must allow the redshift:JoinGroup action with access to the listed dbgroups. In addition, if the AutoCreate parameter is set to True, then the policy must include the redshift:CreateClusterUser privilege. If the DbName parameter is specified, the IAM policy must allow access to the resource dbname for the specified database name. public func getClusterCredentials(_ input: GetClusterCredentialsMessage) throws -> ClusterCredentials { return try client.send(operation: "GetClusterCredentials", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/redshift/Redshift_Shapes.swift b/Sources/AWSSDKSwift/Services/redshift/Redshift_Shapes.swift index 56c0c5c14e5..7e26dea79ab 100644 --- a/Sources/AWSSDKSwift/Services/redshift/Redshift_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/redshift/Redshift_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Redshift { public struct EventInfoMap: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Severity", required: false, type: .string), AWSShapeMember(label: "EventId", required: false, type: .string), AWSShapeMember(label: "EventDescription", required: false, type: .string), @@ -37,7 +37,7 @@ extension Redshift { } public struct DeleteClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] public let cluster: Cluster? @@ -52,7 +52,7 @@ extension Redshift { } public struct EventsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Events", required: false, type: .structure) ] @@ -73,7 +73,7 @@ extension Redshift { } public struct TaggedResourceListMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "TaggedResources", required: false, type: .structure) ] @@ -94,7 +94,7 @@ extension Redshift { } public struct RevokeClusterSecurityGroupIngressResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSecurityGroup", required: false, type: .structure) ] public let clusterSecurityGroup: ClusterSecurityGroup? @@ -109,7 +109,7 @@ extension Redshift { } public struct AuthorizeClusterSecurityGroupIngressMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CIDRIP", required: false, type: .string), AWSShapeMember(label: "EC2SecurityGroupName", required: false, type: .string), AWSShapeMember(label: "EC2SecurityGroupOwnerId", required: false, type: .string), @@ -140,7 +140,7 @@ extension Redshift { } public struct GetClusterCredentialsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string), AWSShapeMember(label: "DbGroups", required: false, type: .structure), AWSShapeMember(label: "DbName", required: false, type: .string), @@ -150,15 +150,15 @@ extension Redshift { ] /// The unique identifier of the cluster that contains the database for which your are requesting credentials. This parameter is case sensitive. public let clusterIdentifier: String - /// A list of the names of existing database groups that DbUser will join for the current session. If not specified, the new user is added only to PUBLIC. + /// A list of the names of existing database groups that the user named in DbUser will join for the current session, in addition to any group memberships for an existing user. If not specified, a new user is added only to PUBLIC. Database group name constraints Must be 1 to 64 alphanumeric characters or hyphens Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen. First character must be a letter. Must not contain a colon ( : ) or slash ( / ). Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide. public let dbGroups: DbGroupList? - /// The name of a database that DbUser is authorized to log on to. If DbName is not specified, DbUser can log in to any existing database. Constraints: Must be 1 to 64 alphanumeric characters or hyphens Must contain only lowercase letters. Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide. + /// The name of a database that DbUser is authorized to log on to. If DbName is not specified, DbUser can log on to any existing database. Constraints: Must be 1 to 64 alphanumeric characters or hyphens Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen. First character must be a letter. Must not contain a colon ( : ) or slash ( / ). Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide. public let dbName: String? /// The number of seconds until the returned temporary password expires. Constraint: minimum 900, maximum 3600. Default: 900 public let durationSeconds: Int32? - /// Create a database user with the name specified for DbUser if one does not exist. + /// Create a database user with the name specified for the user named in DbUser if one does not exist. public let autoCreate: Bool? - /// The name of a database user. If a user name matching DbUser exists in the database, the temporary user credentials have the same permissions as the existing user. If DbUser doesn't exist in the database and Autocreate is True, a new user is created using the value for DbUser with PUBLIC permissions. If a database user matching the value for DbUser doesn't exist and Autocreate is False, then the command succeeds but the connection attempt will fail because the user doesn't exist in the database. For more information, see CREATE USER in the Amazon Redshift Database Developer Guide. Constraints: Must be 1 to 128 alphanumeric characters or hyphens Must contain only lowercase letters. First character must be a letter. Must not contain a colon ( : ) or slash ( / ). Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide. + /// The name of a database user. If a user name matching DbUser exists in the database, the temporary user credentials have the same permissions as the existing user. If DbUser doesn't exist in the database and Autocreate is True, a new user is created using the value for DbUser with PUBLIC permissions. If a database user matching the value for DbUser doesn't exist and Autocreate is False, then the command succeeds but the connection attempt will fail because the user doesn't exist in the database. For more information, see CREATE USER in the Amazon Redshift Database Developer Guide. Constraints: Must be 1 to 64 alphanumeric characters or hyphens Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen. First character must be a letter. Must not contain a colon ( : ) or slash ( / ). Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide. public let dbUser: String public init(clusterIdentifier: String, dbGroups: DbGroupList? = nil, dbName: String? = nil, durationSeconds: Int32? = nil, autoCreate: Bool? = nil, dbUser: String) { @@ -181,7 +181,7 @@ extension Redshift { } public struct ClusterSecurityGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ClusterSecurityGroups", required: false, type: .structure) ] @@ -202,7 +202,7 @@ extension Redshift { } public struct DescribeTableRestoreStatusMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: false, type: .string), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "TableRestoreRequestId", required: false, type: .string), @@ -233,7 +233,7 @@ extension Redshift { } public struct RebootClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] public let cluster: Cluster? @@ -248,7 +248,7 @@ extension Redshift { } public struct DeleteHsmClientCertificateMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmClientCertificateIdentifier", required: true, type: .string) ] /// The identifier of the HSM client certificate to be deleted. @@ -264,7 +264,7 @@ extension Redshift { } public struct OrderableClusterOptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "OrderableClusterOptions", required: false, type: .structure) ] @@ -285,7 +285,7 @@ extension Redshift { } public struct AccountsWithRestoreAccessList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountWithRestoreAccess", required: false, type: .list) ] public let accountWithRestoreAccess: [AccountWithRestoreAccess]? @@ -300,7 +300,7 @@ extension Redshift { } public struct ClusterList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .list) ] public let cluster: [Cluster]? @@ -315,7 +315,7 @@ extension Redshift { } public struct AuthorizeSnapshotAccessMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotClusterIdentifier", required: false, type: .string), AWSShapeMember(label: "SnapshotIdentifier", required: true, type: .string), AWSShapeMember(label: "AccountWithRestoreAccess", required: true, type: .string) @@ -350,7 +350,7 @@ extension Redshift { } public struct Endpoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Address", required: false, type: .string), AWSShapeMember(label: "Port", required: false, type: .integer) ] @@ -371,7 +371,7 @@ extension Redshift { } public struct ReservedNodeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedNode", required: false, type: .list) ] public let reservedNode: [ReservedNode]? @@ -386,7 +386,7 @@ extension Redshift { } public struct ClusterVersionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterVersion", required: false, type: .list) ] public let clusterVersion: [ClusterVersion]? @@ -401,7 +401,7 @@ extension Redshift { } public struct ClusterParameterGroupStatusList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterParameterGroup", required: false, type: .list) ] public let clusterParameterGroup: [ClusterParameterGroupStatus]? @@ -416,7 +416,7 @@ extension Redshift { } public struct CreateClusterParameterGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterParameterGroup", required: false, type: .structure) ] public let clusterParameterGroup: ClusterParameterGroup? @@ -431,7 +431,7 @@ extension Redshift { } public struct HsmConfigurationMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "HsmConfigurations", required: false, type: .structure) ] @@ -452,7 +452,7 @@ extension Redshift { } public struct PurchaseReservedNodeOfferingMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedNodeOfferingId", required: true, type: .string), AWSShapeMember(label: "NodeCount", required: false, type: .integer) ] @@ -473,7 +473,7 @@ extension Redshift { } public struct ModifySnapshotCopyRetentionPeriodResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] public let cluster: Cluster? @@ -488,7 +488,7 @@ extension Redshift { } public struct HsmStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "HsmConfigurationIdentifier", required: false, type: .string), AWSShapeMember(label: "HsmClientCertificateIdentifier", required: false, type: .string) @@ -514,7 +514,7 @@ extension Redshift { } public struct ModifyClusterSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: true, type: .structure), AWSShapeMember(label: "ClusterSubnetGroupName", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) @@ -540,7 +540,7 @@ extension Redshift { } public struct RestoreTableFromClusterSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TableRestoreStatus", required: false, type: .structure) ] public let tableRestoreStatus: TableRestoreStatus? @@ -555,7 +555,7 @@ extension Redshift { } public struct TableRestoreStatusList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TableRestoreStatus", required: false, type: .list) ] public let tableRestoreStatus: [TableRestoreStatus]? @@ -570,7 +570,7 @@ extension Redshift { } public struct AuthorizeSnapshotAccessResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Snapshot", required: false, type: .structure) ] public let snapshot: Snapshot? @@ -585,7 +585,7 @@ extension Redshift { } public struct ClusterSubnetGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetGroupStatus", required: false, type: .string), AWSShapeMember(label: "Subnets", required: false, type: .structure), AWSShapeMember(label: "VpcId", required: false, type: .string), @@ -626,7 +626,7 @@ extension Redshift { } public struct CreateHsmConfigurationMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmPartitionName", required: true, type: .string), AWSShapeMember(label: "HsmPartitionPassword", required: true, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), @@ -672,7 +672,7 @@ extension Redshift { } public struct RestoreTableFromClusterSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotIdentifier", required: true, type: .string), AWSShapeMember(label: "SourceDatabaseName", required: true, type: .string), AWSShapeMember(label: "SourceTableName", required: true, type: .string), @@ -723,7 +723,7 @@ extension Redshift { } public struct DisableSnapshotCopyResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] public let cluster: Cluster? @@ -738,7 +738,7 @@ extension Redshift { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -759,7 +759,7 @@ extension Redshift { } public struct ResizeProgressMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "EstimatedTimeToCompletionInSeconds", required: false, type: .long), AWSShapeMember(label: "TargetClusterType", required: false, type: .string), @@ -830,7 +830,7 @@ extension Redshift { } public struct OrderableClusterOption: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZones", required: false, type: .structure), AWSShapeMember(label: "ClusterType", required: false, type: .string), AWSShapeMember(label: "ClusterVersion", required: false, type: .string), @@ -861,7 +861,7 @@ extension Redshift { } public struct CreateEventSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Severity", required: false, type: .string), AWSShapeMember(label: "SnsTopicArn", required: true, type: .string), AWSShapeMember(label: "SubscriptionName", required: true, type: .string), @@ -912,7 +912,7 @@ extension Redshift { } public struct ClusterIamRoleList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIamRole", required: false, type: .list) ] public let clusterIamRole: [ClusterIamRole]? @@ -927,7 +927,7 @@ extension Redshift { } public struct EventCategoriesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventCategoriesMapList", required: false, type: .structure) ] /// A list of event categories descriptions. @@ -943,7 +943,7 @@ extension Redshift { } public struct RecurringCharge: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecurringChargeAmount", required: false, type: .double), AWSShapeMember(label: "RecurringChargeFrequency", required: false, type: .string) ] @@ -964,7 +964,7 @@ extension Redshift { } public struct IPRangeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPRange", required: false, type: .list) ] public let iPRange: [IPRange]? @@ -979,7 +979,7 @@ extension Redshift { } public struct HsmClientCertificateMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "HsmClientCertificates", required: false, type: .structure) ] @@ -1000,7 +1000,7 @@ extension Redshift { } public struct DescribeEventsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -1046,7 +1046,7 @@ extension Redshift { } public struct EnableSnapshotCopyMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DestinationRegion", required: true, type: .string), AWSShapeMember(label: "RetentionPeriod", required: false, type: .integer), AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string), @@ -1077,7 +1077,7 @@ extension Redshift { } public struct DescribeClusterSecurityGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "TagValues", required: false, type: .structure), AWSShapeMember(label: "TagKeys", required: false, type: .structure), @@ -1113,7 +1113,7 @@ extension Redshift { } public struct CreateClusterSecurityGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSecurityGroupName", required: true, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), AWSShapeMember(label: "Description", required: true, type: .string) @@ -1139,7 +1139,7 @@ extension Redshift { } public struct VpcSecurityGroupIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcSecurityGroupId", required: false, type: .list) ] public let vpcSecurityGroupId: [String]? @@ -1154,7 +1154,7 @@ extension Redshift { } public struct DescribeHsmConfigurationsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "TagValues", required: false, type: .structure), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -1190,7 +1190,7 @@ extension Redshift { } public struct EventList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Event", required: false, type: .list) ] public let event: [Event]? @@ -1205,7 +1205,7 @@ extension Redshift { } public struct DeleteClusterSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Snapshot", required: false, type: .structure) ] public let snapshot: Snapshot? @@ -1220,7 +1220,7 @@ extension Redshift { } public struct EventInfoMapList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventInfoMap", required: false, type: .list) ] public let eventInfoMap: [EventInfoMap]? @@ -1235,7 +1235,7 @@ extension Redshift { } public struct ClusterParameterGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterGroupName", required: false, type: .string), AWSShapeMember(label: "ParameterGroupFamily", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), @@ -1266,7 +1266,7 @@ extension Redshift { } public struct ReservedNode: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "RecurringCharges", required: false, type: .structure), AWSShapeMember(label: "NodeCount", required: false, type: .integer), @@ -1337,7 +1337,7 @@ extension Redshift { } public struct RestoreStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "SnapshotSizeInMegaBytes", required: false, type: .long), AWSShapeMember(label: "CurrentRestoreRateInMegaBytesPerSecond", required: false, type: .double), @@ -1378,7 +1378,7 @@ extension Redshift { } public struct RestoreFromClusterSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSecurityGroups", required: false, type: .structure), AWSShapeMember(label: "SnapshotClusterIdentifier", required: false, type: .string), AWSShapeMember(label: "OwnerAccount", required: false, type: .string), @@ -1499,7 +1499,7 @@ extension Redshift { } public struct DeleteTagsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceName", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .structure) ] @@ -1520,7 +1520,7 @@ extension Redshift { } public struct RebootClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string) ] /// The cluster identifier. @@ -1536,7 +1536,7 @@ extension Redshift { } public struct ReservedNodesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ReservedNodes", required: false, type: .structure) ] @@ -1557,7 +1557,7 @@ extension Redshift { } public struct DescribeLoggingStatusMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string) ] /// The identifier of the cluster from which to get the logging status. Example: examplecluster @@ -1573,7 +1573,7 @@ extension Redshift { } public struct ResetClusterParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .structure), AWSShapeMember(label: "ResetAllParameters", required: false, type: .boolean), AWSShapeMember(label: "ParameterGroupName", required: true, type: .string) @@ -1599,7 +1599,7 @@ extension Redshift { } public struct DeleteEventSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubscriptionName", required: true, type: .string) ] /// The name of the Amazon Redshift event notification subscription to be deleted. @@ -1615,7 +1615,7 @@ extension Redshift { } public struct DescribeOrderableClusterOptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "ClusterVersion", required: false, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -1646,7 +1646,7 @@ extension Redshift { } public struct IamRoleArnList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamRoleArn", required: false, type: .list) ] public let iamRoleArn: [String]? @@ -1661,7 +1661,7 @@ extension Redshift { } public struct SourceIdsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceId", required: false, type: .list) ] public let sourceId: [String]? @@ -1676,7 +1676,7 @@ extension Redshift { } public struct ClusterVersion: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterVersion", required: false, type: .string), AWSShapeMember(label: "ClusterParameterGroupFamily", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) @@ -1702,7 +1702,7 @@ extension Redshift { } public struct SubnetIdentifierList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIdentifier", required: false, type: .list) ] public let subnetIdentifier: [String]? @@ -1717,7 +1717,7 @@ extension Redshift { } public struct Subnet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIdentifier", required: false, type: .string), AWSShapeMember(label: "SubnetAvailabilityZone", required: false, type: .structure), AWSShapeMember(label: "SubnetStatus", required: false, type: .string) @@ -1742,7 +1742,7 @@ extension Redshift { } public struct EC2SecurityGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "EC2SecurityGroupOwnerId", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), @@ -1773,7 +1773,7 @@ extension Redshift { } public struct Parameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterValue", required: false, type: .string), AWSShapeMember(label: "AllowedValues", required: false, type: .string), AWSShapeMember(label: "DataType", required: false, type: .string), @@ -1829,16 +1829,16 @@ extension Redshift { } public struct ClusterCredentials: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DbPassword", required: false, type: .string), AWSShapeMember(label: "DbUser", required: false, type: .string), AWSShapeMember(label: "Expiration", required: false, type: .timestamp) ] /// A temporary password that authorizes the user name returned by DbUser to log on to the database DbName. public let dbPassword: String? - /// A database user name that is authorized to log on to the database DbName using the password DbPassword. If the DbGroups parameter is specifed, DbUser is added to the listed groups for the current session. The user name is prefixed with IAM: for an existing user name or IAMA: if the user was auto-created. + /// A database user name that is authorized to log on to the database DbName using the password DbPassword. If the specified DbUser exists in the database, the new user name has the same database privileges as the the user named in DbUser. By default, the user is added to PUBLIC. If the DbGroups parameter is specifed, DbUser is added to the listed groups for any sessions created using these credentials. public let dbUser: String? - /// The date and time DbPassword expires. + /// The date and time the password in DbPassword expires. public let expiration: TimeStamp? public init(dbPassword: String? = nil, dbUser: String? = nil, expiration: TimeStamp? = nil) { @@ -1855,7 +1855,7 @@ extension Redshift { } public struct CreateClusterParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterGroupName", required: true, type: .string), AWSShapeMember(label: "ParameterGroupFamily", required: true, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), @@ -1886,7 +1886,7 @@ extension Redshift { } public struct DescribeHsmClientCertificatesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "TagValues", required: false, type: .structure), AWSShapeMember(label: "HsmClientCertificateIdentifier", required: false, type: .string), @@ -1922,7 +1922,7 @@ extension Redshift { } public struct DescribeResizeMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string) ] /// The unique identifier of a cluster whose resize progress you are requesting. This parameter is case-sensitive. By default, resize operations for all clusters defined for an AWS account are returned. @@ -1938,7 +1938,7 @@ extension Redshift { } public struct ClusterVersionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ClusterVersions", required: false, type: .structure) ] @@ -1959,7 +1959,7 @@ extension Redshift { } public struct ClusterSecurityGroups: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSecurityGroup", required: false, type: .list) ] public let clusterSecurityGroup: [ClusterSecurityGroup]? @@ -1974,7 +1974,7 @@ extension Redshift { } public struct Event: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Severity", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "SourceType", required: false, type: .enum), @@ -2020,7 +2020,7 @@ extension Redshift { } public struct SnapshotList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Snapshot", required: false, type: .list) ] public let snapshot: [Snapshot]? @@ -2035,7 +2035,7 @@ extension Redshift { } public struct ReservedNodeOffering: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecurringCharges", required: false, type: .structure), AWSShapeMember(label: "UsagePrice", required: false, type: .double), AWSShapeMember(label: "NodeType", required: false, type: .string), @@ -2086,7 +2086,7 @@ extension Redshift { } public struct RevokeSnapshotAccessResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Snapshot", required: false, type: .structure) ] public let snapshot: Snapshot? @@ -2101,7 +2101,7 @@ extension Redshift { } public struct CreateClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] public let cluster: Cluster? @@ -2116,7 +2116,7 @@ extension Redshift { } public struct EventCategoriesMap: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceType", required: false, type: .string), AWSShapeMember(label: "Events", required: false, type: .structure) ] @@ -2137,7 +2137,7 @@ extension Redshift { } public struct TableRestoreStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "ProgressInMegaBytes", required: false, type: .long), AWSShapeMember(label: "SourceSchemaName", required: false, type: .string), @@ -2218,33 +2218,43 @@ extension Redshift { } public struct DescribeEventSubscriptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Marker", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), - AWSShapeMember(label: "SubscriptionName", required: false, type: .string) + AWSShapeMember(label: "TagValues", required: false, type: .structure), + AWSShapeMember(label: "SubscriptionName", required: false, type: .string), + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "TagKeys", required: false, type: .structure) ] - /// An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEventSubscriptions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request. - public let marker: String? /// The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value. Default: 100 Constraints: minimum 20, maximum 100. public let maxRecords: Int32? + /// A tag value or values for which you want to return all matching event notification subscriptions that are associated with the specified tag value or values. For example, suppose that you have subscriptions that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag values associated with them. + public let tagValues: TagValueList? /// The name of the Amazon Redshift event notification subscription to be described. public let subscriptionName: String? + /// An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEventSubscriptions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request. + public let marker: String? + /// A tag key or keys for which you want to return all matching event notification subscriptions that are associated with the specified key or keys. For example, suppose that you have subscriptions that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag keys associated with them. + public let tagKeys: TagKeyList? - public init(marker: String? = nil, maxRecords: Int32? = nil, subscriptionName: String? = nil) { - self.marker = marker + public init(maxRecords: Int32? = nil, tagValues: TagValueList? = nil, subscriptionName: String? = nil, marker: String? = nil, tagKeys: TagKeyList? = nil) { self.maxRecords = maxRecords + self.tagValues = tagValues self.subscriptionName = subscriptionName + self.marker = marker + self.tagKeys = tagKeys } private enum CodingKeys: String, CodingKey { - case marker = "Marker" case maxRecords = "MaxRecords" + case tagValues = "TagValues" case subscriptionName = "SubscriptionName" + case marker = "Marker" + case tagKeys = "TagKeys" } } public struct DescribeDefaultClusterParametersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultClusterParameters", required: false, type: .structure) ] public let defaultClusterParameters: DefaultClusterParameters? @@ -2259,7 +2269,7 @@ extension Redshift { } public struct ModifyEventSubscriptionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSubscription", required: false, type: .structure) ] public let eventSubscription: EventSubscription? @@ -2274,7 +2284,7 @@ extension Redshift { } public struct ClusterParameterGroupStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterParameterStatusList", required: false, type: .list), AWSShapeMember(label: "ParameterApplyStatus", required: false, type: .string), AWSShapeMember(label: "ParameterGroupName", required: false, type: .string) @@ -2300,7 +2310,7 @@ extension Redshift { } public struct CreateClusterSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: true, type: .structure), AWSShapeMember(label: "ClusterSubnetGroupName", required: true, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), @@ -2331,7 +2341,7 @@ extension Redshift { } public struct CopyClusterSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetSnapshotIdentifier", required: true, type: .string), AWSShapeMember(label: "SourceSnapshotIdentifier", required: true, type: .string), AWSShapeMember(label: "SourceSnapshotClusterIdentifier", required: false, type: .string) @@ -2357,7 +2367,7 @@ extension Redshift { } public struct DeleteHsmConfigurationMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmConfigurationIdentifier", required: true, type: .string) ] /// The identifier of the Amazon Redshift HSM configuration to be deleted. @@ -2373,7 +2383,7 @@ extension Redshift { } public struct RestoreFromClusterSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] public let cluster: Cluster? @@ -2388,7 +2398,7 @@ extension Redshift { } public struct RestorableNodeTypeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeType", required: false, type: .list) ] public let nodeType: [String]? @@ -2403,7 +2413,7 @@ extension Redshift { } public struct DescribeClusterVersionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "ClusterVersion", required: false, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -2434,7 +2444,7 @@ extension Redshift { } public struct LoggingStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastFailureMessage", required: false, type: .string), AWSShapeMember(label: "BucketName", required: false, type: .string), AWSShapeMember(label: "S3KeyPrefix", required: false, type: .string), @@ -2475,7 +2485,7 @@ extension Redshift { } public struct EnableSnapshotCopyResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] public let cluster: Cluster? @@ -2490,7 +2500,7 @@ extension Redshift { } public struct DeleteClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string), AWSShapeMember(label: "FinalClusterSnapshotIdentifier", required: false, type: .string), AWSShapeMember(label: "SkipFinalClusterSnapshot", required: false, type: .boolean) @@ -2516,7 +2526,7 @@ extension Redshift { } public struct DeleteClusterSecurityGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSecurityGroupName", required: true, type: .string) ] /// The name of the cluster security group to be deleted. @@ -2532,7 +2542,7 @@ extension Redshift { } public struct DescribeReservedNodeOfferingsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "ReservedNodeOfferingId", required: false, type: .string) @@ -2558,7 +2568,7 @@ extension Redshift { } public struct ModifyClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] public let cluster: Cluster? @@ -2573,7 +2583,7 @@ extension Redshift { } public struct TagValueList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagValue", required: false, type: .list) ] public let tagValue: [String]? @@ -2588,7 +2598,7 @@ extension Redshift { } public struct EventSubscriptionsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSubscriptionsList", required: false, type: .structure), AWSShapeMember(label: "Marker", required: false, type: .string) ] @@ -2609,7 +2619,7 @@ extension Redshift { } public struct ClusterParameterGroupNameMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterGroupStatus", required: false, type: .string), AWSShapeMember(label: "ParameterGroupName", required: false, type: .string) ] @@ -2630,7 +2640,7 @@ extension Redshift { } public struct EventSubscriptionsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSubscription", required: false, type: .list) ] public let eventSubscription: [EventSubscription]? @@ -2645,7 +2655,7 @@ extension Redshift { } public struct TableRestoreStatusMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TableRestoreStatusDetails", required: false, type: .structure), AWSShapeMember(label: "Marker", required: false, type: .string) ] @@ -2666,7 +2676,7 @@ extension Redshift { } public struct CreateEventSubscriptionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventSubscription", required: false, type: .structure) ] public let eventSubscription: EventSubscription? @@ -2681,7 +2691,7 @@ extension Redshift { } public struct ReservedNodeOfferingList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedNodeOffering", required: false, type: .list) ] public let reservedNodeOffering: [ReservedNodeOffering]? @@ -2696,7 +2706,7 @@ extension Redshift { } public struct VpcSecurityGroupMembership: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "VpcSecurityGroupId", required: false, type: .string) ] @@ -2717,7 +2727,7 @@ extension Redshift { } public struct HsmClientCertificate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: false, type: .structure), AWSShapeMember(label: "HsmClientCertificatePublicKey", required: false, type: .string), AWSShapeMember(label: "HsmClientCertificateIdentifier", required: false, type: .string) @@ -2743,7 +2753,7 @@ extension Redshift { } public struct DescribeClusterSnapshotsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "SnapshotIdentifier", required: false, type: .string), @@ -2804,7 +2814,7 @@ extension Redshift { } public struct DeleteSnapshotCopyGrantMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotCopyGrantName", required: true, type: .string) ] /// The name of the snapshot copy grant to delete. @@ -2820,7 +2830,7 @@ extension Redshift { } public struct ClusterParameterGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ParameterGroups", required: false, type: .structure) ] @@ -2841,7 +2851,7 @@ extension Redshift { } public struct EventCategoriesList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventCategory", required: false, type: .list) ] public let eventCategory: [String]? @@ -2856,7 +2866,7 @@ extension Redshift { } public struct DescribeDefaultClusterParametersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "ParameterGroupFamily", required: true, type: .string) @@ -2882,7 +2892,7 @@ extension Redshift { } public struct RecurringChargeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecurringCharge", required: false, type: .list) ] public let recurringCharge: [RecurringCharge]? @@ -2897,7 +2907,7 @@ extension Redshift { } public struct CreateClusterSubnetGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSubnetGroup", required: false, type: .structure) ] public let clusterSubnetGroup: ClusterSubnetGroup? @@ -2912,7 +2922,7 @@ extension Redshift { } public struct ModifyClusterIamRolesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] public let cluster: Cluster? @@ -2927,7 +2937,7 @@ extension Redshift { } public struct ClusterSecurityGroupMembership: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "ClusterSecurityGroupName", required: false, type: .string) ] @@ -2954,7 +2964,7 @@ extension Redshift { } public struct DescribeReservedNodesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ReservedNodeId", required: false, type: .string), AWSShapeMember(label: "MaxRecords", required: false, type: .integer) @@ -2980,7 +2990,7 @@ extension Redshift { } public struct CopyClusterSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Snapshot", required: false, type: .structure) ] public let snapshot: Snapshot? @@ -2995,7 +3005,7 @@ extension Redshift { } public struct DescribeTagsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "TagValues", required: false, type: .structure), AWSShapeMember(label: "ResourceType", required: false, type: .string), @@ -3007,7 +3017,7 @@ extension Redshift { public let maxRecords: Int32? /// A tag value or values for which you want to return all matching resources that are associated with the specified value or values. For example, suppose that you have resources tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with all resources that have either or both of these tag values associated with them. public let tagValues: TagValueList? - /// The type of resource with which you want to view tags. Valid resource types are: Cluster CIDR/IP EC2 security group Snapshot Cluster security group Subnet group HSM connection HSM certificate Parameter group Snapshot copy grant For more information about Amazon Redshift resource types and constructing ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in the Amazon Redshift Cluster Management Guide. + /// The type of resource with which you want to view tags. Valid resource types are: Cluster CIDR/IP EC2 security group Snapshot Cluster security group Subnet group HSM connection HSM certificate Parameter group Snapshot copy grant For more information about Amazon Redshift resource types and constructing ARNs, go to Specifying Policy Elements: Actions, Effects, Resources, and Principals in the Amazon Redshift Cluster Management Guide. public let resourceType: String? /// A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the marker parameter and retrying the command. If the marker field is empty, all response records have been retrieved for the request. public let marker: String? @@ -3036,7 +3046,7 @@ extension Redshift { } public struct ClusterSubnetGroups: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSubnetGroup", required: false, type: .list) ] public let clusterSubnetGroup: [ClusterSubnetGroup]? @@ -3051,7 +3061,7 @@ extension Redshift { } public struct Snapshot: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActualIncrementalBackupSizeInMegaBytes", required: false, type: .double), AWSShapeMember(label: "DBName", required: false, type: .string), AWSShapeMember(label: "ClusterVersion", required: false, type: .string), @@ -3207,7 +3217,7 @@ extension Redshift { } public struct EventSubscription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Severity", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "SnsTopicArn", required: false, type: .string), @@ -3273,7 +3283,7 @@ extension Redshift { } public struct VpcSecurityGroupMembershipList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcSecurityGroup", required: false, type: .list) ] public let vpcSecurityGroup: [VpcSecurityGroupMembership]? @@ -3288,7 +3298,7 @@ extension Redshift { } public struct CreateSnapshotCopyGrantMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotCopyGrantName", required: true, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), AWSShapeMember(label: "KmsKeyId", required: false, type: .string) @@ -3314,7 +3324,7 @@ extension Redshift { } public struct TagList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tag", required: false, type: .list) ] public let tag: [Tag]? @@ -3329,7 +3339,7 @@ extension Redshift { } public struct ElasticIpStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ElasticIp", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .string) ] @@ -3350,7 +3360,7 @@ extension Redshift { } public struct DescribeEventCategoriesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceType", required: false, type: .string) ] /// The source type, such as cluster or parameter group, to which the described event categories apply. Valid values: cluster, cluster-snapshot, cluster-parameter-group, and cluster-security-group. @@ -3366,7 +3376,7 @@ extension Redshift { } public struct AvailabilityZoneList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AvailabilityZone", required: false, type: .list) ] public let availabilityZone: [AvailabilityZone]? @@ -3381,7 +3391,7 @@ extension Redshift { } public struct DeleteClusterParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterGroupName", required: true, type: .string) ] /// The name of the parameter group to be deleted. Constraints: Must be the name of an existing cluster parameter group. Cannot delete a default cluster parameter group. @@ -3397,7 +3407,7 @@ extension Redshift { } public struct CreateHsmClientCertificateMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: false, type: .structure), AWSShapeMember(label: "HsmClientCertificateIdentifier", required: true, type: .string) ] @@ -3418,7 +3428,7 @@ extension Redshift { } public struct TaggedResourceList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TaggedResource", required: false, type: .list) ] public let taggedResource: [TaggedResource]? @@ -3433,7 +3443,7 @@ extension Redshift { } public struct DescribeSnapshotCopyGrantsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "TagValues", required: false, type: .structure), AWSShapeMember(label: "SnapshotCopyGrantName", required: false, type: .string), @@ -3469,7 +3479,7 @@ extension Redshift { } public struct ClustersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Clusters", required: false, type: .structure) ] @@ -3490,7 +3500,7 @@ extension Redshift { } public struct PurchaseReservedNodeOfferingResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedNode", required: false, type: .structure) ] public let reservedNode: ReservedNode? @@ -3513,7 +3523,7 @@ extension Redshift { } public struct DefaultClusterParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .structure), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ParameterGroupFamily", required: false, type: .string) @@ -3539,7 +3549,7 @@ extension Redshift { } public struct ModifyClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSecurityGroups", required: false, type: .structure), AWSShapeMember(label: "ClusterVersion", required: false, type: .string), AWSShapeMember(label: "NewClusterIdentifier", required: false, type: .string), @@ -3640,7 +3650,7 @@ extension Redshift { } public struct RotateEncryptionKeyResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Cluster", required: false, type: .structure) ] public let cluster: Cluster? @@ -3655,7 +3665,7 @@ extension Redshift { } public struct HsmConfigurationList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmConfiguration", required: false, type: .list) ] public let hsmConfiguration: [HsmConfiguration]? @@ -3670,7 +3680,7 @@ extension Redshift { } public struct DescribeClusterSubnetGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "TagValues", required: false, type: .structure), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -3706,7 +3716,7 @@ extension Redshift { } public struct ModifyClusterIamRolesMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string), AWSShapeMember(label: "AddIamRoles", required: false, type: .structure), AWSShapeMember(label: "RemoveIamRoles", required: false, type: .structure) @@ -3732,7 +3742,7 @@ extension Redshift { } public struct ClusterIamRole: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamRoleArn", required: false, type: .string), AWSShapeMember(label: "ApplyStatus", required: false, type: .string) ] @@ -3753,7 +3763,7 @@ extension Redshift { } public struct CreateClusterSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), AWSShapeMember(label: "SnapshotIdentifier", required: true, type: .string) @@ -3779,7 +3789,7 @@ extension Redshift { } public struct ClusterSecurityGroupMembershipList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSecurityGroup", required: false, type: .list) ] public let clusterSecurityGroup: [ClusterSecurityGroupMembership]? @@ -3794,7 +3804,7 @@ extension Redshift { } public struct ClusterParameterGroupDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Parameters", required: false, type: .structure) ] @@ -3815,7 +3825,7 @@ extension Redshift { } public struct AuthorizeClusterSecurityGroupIngressResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSecurityGroup", required: false, type: .structure) ] public let clusterSecurityGroup: ClusterSecurityGroup? @@ -3830,7 +3840,7 @@ extension Redshift { } public struct ClusterSecurityGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "IPRanges", required: false, type: .structure), AWSShapeMember(label: "EC2SecurityGroups", required: false, type: .structure), @@ -3866,7 +3876,7 @@ extension Redshift { } public struct TaggedResource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tag", required: false, type: .structure), AWSShapeMember(label: "ResourceName", required: false, type: .string), AWSShapeMember(label: "ResourceType", required: false, type: .string) @@ -3892,7 +3902,7 @@ extension Redshift { } public struct ReservedNodeOfferingsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReservedNodeOfferings", required: false, type: .structure), AWSShapeMember(label: "Marker", required: false, type: .string) ] @@ -3913,7 +3923,7 @@ extension Redshift { } public struct ClusterNode: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NodeRole", required: false, type: .string), AWSShapeMember(label: "PrivateIPAddress", required: false, type: .string), AWSShapeMember(label: "PublicIPAddress", required: false, type: .string) @@ -3939,7 +3949,7 @@ extension Redshift { } public struct OrderableClusterOptionsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrderableClusterOption", required: false, type: .list) ] public let orderableClusterOption: [OrderableClusterOption]? @@ -3954,7 +3964,7 @@ extension Redshift { } public struct TagKeyList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagKey", required: false, type: .list) ] public let tagKey: [String]? @@ -3969,7 +3979,7 @@ extension Redshift { } public struct SnapshotCopyGrantMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "SnapshotCopyGrants", required: false, type: .structure) ] @@ -3990,7 +4000,7 @@ extension Redshift { } public struct SnapshotCopyGrantList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotCopyGrant", required: false, type: .list) ] public let snapshotCopyGrant: [SnapshotCopyGrant]? @@ -4005,7 +4015,7 @@ extension Redshift { } public struct Cluster: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VpcSecurityGroups", required: false, type: .structure), AWSShapeMember(label: "ClusterNodes", required: false, type: .list), AWSShapeMember(label: "DBName", required: false, type: .string), @@ -4181,7 +4191,7 @@ extension Redshift { } public struct CreateClusterSnapshotResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Snapshot", required: false, type: .structure) ] public let snapshot: Snapshot? @@ -4196,7 +4206,7 @@ extension Redshift { } public struct ModifyEventSubscriptionMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Severity", required: false, type: .string), AWSShapeMember(label: "SnsTopicArn", required: false, type: .string), AWSShapeMember(label: "SubscriptionName", required: true, type: .string), @@ -4242,7 +4252,7 @@ extension Redshift { } public struct ClusterSnapshotCopyStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DestinationRegion", required: false, type: .string), AWSShapeMember(label: "RetentionPeriod", required: false, type: .long), AWSShapeMember(label: "SnapshotCopyGrantName", required: false, type: .string) @@ -4268,7 +4278,7 @@ extension Redshift { } public struct AvailabilityZone: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string) ] /// The name of the availability zone. @@ -4284,7 +4294,7 @@ extension Redshift { } public struct ModifyClusterSubnetGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSubnetGroup", required: false, type: .structure) ] public let clusterSubnetGroup: ClusterSubnetGroup? @@ -4299,7 +4309,7 @@ extension Redshift { } public struct HsmConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmIpAddress", required: false, type: .string), AWSShapeMember(label: "HsmPartitionName", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), @@ -4335,7 +4345,7 @@ extension Redshift { } public struct DisableLoggingMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string) ] /// The identifier of the cluster on which logging is to be stopped. Example: examplecluster @@ -4351,7 +4361,7 @@ extension Redshift { } public struct HsmClientCertificateList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmClientCertificate", required: false, type: .list) ] public let hsmClientCertificate: [HsmClientCertificate]? @@ -4366,7 +4376,7 @@ extension Redshift { } public struct DescribeClustersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: false, type: .string), AWSShapeMember(label: "TagValues", required: false, type: .structure), AWSShapeMember(label: "MaxRecords", required: false, type: .integer), @@ -4402,7 +4412,7 @@ extension Redshift { } public struct RotateEncryptionKeyMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string) ] /// The unique identifier of the cluster that you want to rotate the encryption keys for. Constraints: Must be the name of valid cluster that has encryption enabled. @@ -4418,7 +4428,7 @@ extension Redshift { } public struct RevokeClusterSecurityGroupIngressMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CIDRIP", required: false, type: .string), AWSShapeMember(label: "EC2SecurityGroupName", required: false, type: .string), AWSShapeMember(label: "EC2SecurityGroupOwnerId", required: false, type: .string), @@ -4449,7 +4459,7 @@ extension Redshift { } public struct EC2SecurityGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EC2SecurityGroup", required: false, type: .list) ] public let eC2SecurityGroup: [EC2SecurityGroup]? @@ -4464,7 +4474,7 @@ extension Redshift { } public struct EnableLoggingMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string), AWSShapeMember(label: "BucketName", required: true, type: .string), AWSShapeMember(label: "S3KeyPrefix", required: false, type: .string) @@ -4490,7 +4500,7 @@ extension Redshift { } public struct SubnetList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subnet", required: false, type: .list) ] public let subnet: [Subnet]? @@ -4505,7 +4515,7 @@ extension Redshift { } public struct CreateClusterMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DBName", required: false, type: .string), AWSShapeMember(label: "ClusterVersion", required: false, type: .string), AWSShapeMember(label: "Encrypted", required: false, type: .boolean), @@ -4651,7 +4661,7 @@ extension Redshift { } public struct SnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Snapshots", required: false, type: .structure) ] @@ -4672,7 +4682,7 @@ extension Redshift { } public struct SnapshotCopyGrant: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotCopyGrantName", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), AWSShapeMember(label: "KmsKeyId", required: false, type: .string) @@ -4698,7 +4708,7 @@ extension Redshift { } public struct ClusterSecurityGroupNameList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSecurityGroupName", required: false, type: .list) ] public let clusterSecurityGroupName: [String]? @@ -4713,7 +4723,7 @@ extension Redshift { } public struct ModifySnapshotCopyRetentionPeriodMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string), AWSShapeMember(label: "RetentionPeriod", required: true, type: .integer) ] @@ -4734,7 +4744,7 @@ extension Redshift { } public struct DeleteClusterSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSubnetGroupName", required: true, type: .string) ] /// The name of the cluster subnet group name to be deleted. @@ -4750,7 +4760,7 @@ extension Redshift { } public struct RevokeSnapshotAccessMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotClusterIdentifier", required: false, type: .string), AWSShapeMember(label: "SnapshotIdentifier", required: true, type: .string), AWSShapeMember(label: "AccountWithRestoreAccess", required: true, type: .string) @@ -4776,7 +4786,7 @@ extension Redshift { } public struct CreateHsmClientCertificateResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmClientCertificate", required: false, type: .structure) ] public let hsmClientCertificate: HsmClientCertificate? @@ -4791,7 +4801,7 @@ extension Redshift { } public struct CreateSnapshotCopyGrantResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotCopyGrant", required: false, type: .structure) ] public let snapshotCopyGrant: SnapshotCopyGrant? @@ -4806,7 +4816,7 @@ extension Redshift { } public struct ClusterParameterStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterApplyErrorDescription", required: false, type: .string), AWSShapeMember(label: "ParameterName", required: false, type: .string), AWSShapeMember(label: "ParameterApplyStatus", required: false, type: .string) @@ -4832,7 +4842,7 @@ extension Redshift { } public struct CreateClusterSecurityGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterSecurityGroup", required: false, type: .structure) ] public let clusterSecurityGroup: ClusterSecurityGroup? @@ -4847,7 +4857,7 @@ extension Redshift { } public struct PendingModifiedValues: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterVersion", required: false, type: .string), AWSShapeMember(label: "NodeType", required: false, type: .string), AWSShapeMember(label: "ClusterIdentifier", required: false, type: .string), @@ -4903,7 +4913,7 @@ extension Redshift { } public struct CreateHsmConfigurationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HsmConfiguration", required: false, type: .structure) ] public let hsmConfiguration: HsmConfiguration? @@ -4918,7 +4928,7 @@ extension Redshift { } public struct CreateTagsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .structure), AWSShapeMember(label: "ResourceName", required: true, type: .string) ] @@ -4939,7 +4949,7 @@ extension Redshift { } public struct ParameterGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterParameterGroup", required: false, type: .list) ] public let clusterParameterGroup: [ClusterParameterGroup]? @@ -4954,7 +4964,7 @@ extension Redshift { } public struct IPRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), AWSShapeMember(label: "CIDRIP", required: false, type: .string) @@ -4980,7 +4990,7 @@ extension Redshift { } public struct DeleteClusterSnapshotMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotIdentifier", required: true, type: .string), AWSShapeMember(label: "SnapshotClusterIdentifier", required: false, type: .string) ] @@ -5001,7 +5011,7 @@ extension Redshift { } public struct DescribeClusterParameterGroupsMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "TagValues", required: false, type: .structure), AWSShapeMember(label: "ParameterGroupName", required: false, type: .string), @@ -5037,7 +5047,7 @@ extension Redshift { } public struct DbGroupList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DbGroup", required: false, type: .list) ] public let dbGroup: [String]? @@ -5052,7 +5062,7 @@ extension Redshift { } public struct ParametersList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameter", required: false, type: .list) ] public let parameter: [Parameter]? @@ -5067,7 +5077,7 @@ extension Redshift { } public struct DisableSnapshotCopyMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterIdentifier", required: true, type: .string) ] /// The unique identifier of the source cluster that you want to disable copying of snapshots to a destination region. Constraints: Must be the valid name of an existing cluster that has cross-region snapshot copy enabled. @@ -5083,7 +5093,7 @@ extension Redshift { } public struct ModifyClusterParameterGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: true, type: .structure), AWSShapeMember(label: "ParameterGroupName", required: true, type: .string) ] @@ -5104,7 +5114,7 @@ extension Redshift { } public struct DescribeClusterParametersMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxRecords", required: false, type: .integer), AWSShapeMember(label: "ParameterGroupName", required: true, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -5135,7 +5145,7 @@ extension Redshift { } public struct ClusterSubnetGroupMessage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "ClusterSubnetGroups", required: false, type: .structure) ] @@ -5156,7 +5166,7 @@ extension Redshift { } public struct AccountWithRestoreAccess: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: false, type: .string), AWSShapeMember(label: "AccountAlias", required: false, type: .string) ] @@ -5177,7 +5187,7 @@ extension Redshift { } public struct EventCategoriesMapList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventCategoriesMap", required: false, type: .list) ] public let eventCategoriesMap: [EventCategoriesMap]? diff --git a/Sources/AWSSDKSwift/Services/rekognition/Rekognition_API.swift b/Sources/AWSSDKSwift/Services/rekognition/Rekognition_API.swift index 0762d25ab25..808b25b7b17 100644 --- a/Sources/AWSSDKSwift/Services/rekognition/Rekognition_API.swift +++ b/Sources/AWSSDKSwift/Services/rekognition/Rekognition_API.swift @@ -25,74 +25,169 @@ public struct Rekognition { ) } - /// Detects faces in the input image and adds them to the specified collection. Amazon Rekognition does not save the actual faces detected. Instead, the underlying detection algorithm first detects the faces in the input image, and for each face extracts facial features into a feature vector, and stores it in the back-end database. Amazon Rekognition uses feature vectors when performing face match and search operations using the and operations. If you provide the optional externalImageID for the input image you provided, Amazon Rekognition associates this ID with all faces that it detects. When you call the operation, the response returns the external ID. You can use this external image ID to create a client-side index to associate the faces with each image. You can then use the index to find all faces in an image. In response, the operation returns an array of metadata for all detected faces. This includes, the bounding box of the detected face, confidence value (indicating the bounding box contains a face), a face ID assigned by the service for each face that is detected and stored, and an image ID assigned by the service for the input image. If you request all facial attributes (using the detectionAttributes parameter, Amazon Rekognition returns detailed facial attributes such as facial landmarks (for example, location of eye and mount) and other facial attributes such gender. If you provide the same image, specify the same collection, and use the same external ID in the IndexFaces operation, Amazon Rekognition doesn't save duplicate face metadata. For an example, see example2. This operation requires permissions to perform the rekognition:IndexFaces action. - public func indexFaces(_ input: IndexFacesRequest) throws -> IndexFacesResponse { - return try client.send(operation: "IndexFaces", path: "/", httpMethod: "POST", input: input) + /// Deletes faces from a collection. You specify a collection ID and an array of face IDs to remove from the collection. This operation requires permissions to perform the rekognition:DeleteFaces action. + public func deleteFaces(_ input: DeleteFacesRequest) throws -> DeleteFacesResponse { + return try client.send(operation: "DeleteFaces", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of celebrities recognized in the input image. The image is passed either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. The image must be either a PNG or JPEG formatted file. For more information, see celebrity-recognition. RecognizeCelebrities returns the 15 largest faces in the image. It lists recognized celebrities in the CelebrityFaces list and unrecognized faces in the UnrecognizedFaces list. The operation doesn't return celebrities whose face sizes are smaller than the largest 15 faces in the image. For each celebrity recognized, the API returns a Celebrity object. The Celebrity object contains the celebrity name, ID, URL links to additional information, match confidence, and a ComparedFace object that you can use to locate the celebrity's face on the image. Rekognition does not retain information about which images a celebrity has been recognized in. Your application must store this information and use the Celebrity ID property as a unique identifier for the celebrity. If you don't store the celebrity name or additional information URLs returned by RecognizeCelebrities, you will need the ID to identify the celebrity in a call to the operation. For an example, see recognize-celebrities-tutorial. This operation requires permissions to perform the rekognition:RecognizeCelebrities operation. - public func recognizeCelebrities(_ input: RecognizeCelebritiesRequest) throws -> RecognizeCelebritiesResponse { - return try client.send(operation: "RecognizeCelebrities", path: "/", httpMethod: "POST", input: input) + /// Gets the person tracking results of a Rekognition Video analysis started by . The person detection operation is started by a call to StartPersonTracking which returns a job identifier (JobId). When the person detection operation finishes, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartPersonTracking. To get the results of the person tracking operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartPersonTracking. GetPersonTracking returns an array, Persons, of tracked persons and the time(s) they were tracked in the video. By default, the array is sorted by the time(s) a person is tracked in the video. You can sort by tracked persons by specifying INDEX for the SortBy input parameter. Use the MaxResults parameter to limit the number of items returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetPersonTracking and populate the NextToken request parameter with the token value returned from the previous call to GetPersonTracking. + public func getPersonTracking(_ input: GetPersonTrackingRequest) throws -> GetPersonTrackingResponse { + return try client.send(operation: "GetPersonTracking", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the stream processor identified by Name. You assign the value for Name when you create the stream processor with . You might not be able to use the same name for a stream processor for a few seconds after calling DeleteStreamProcessor. + public func deleteStreamProcessor(_ input: DeleteStreamProcessorRequest) throws -> DeleteStreamProcessorResponse { + return try client.send(operation: "DeleteStreamProcessor", path: "/", httpMethod: "POST", input: input) } - /// Detects faces within an image (JPEG or PNG) that is provided as input. For each face detected, the operation returns face details including a bounding box of the face, a confidence value (that the bounding box contains a face), and a fixed set of attributes such as facial landmarks (for example, coordinates of eye and mouth), gender, presence of beard, sunglasses, etc. The face-detection algorithm is most effective on frontal faces. For non-frontal or obscured faces, the algorithm may not detect the faces or might detect faces with lower confidence. This is a stateless API operation. That is, the operation does not persist any data. For an example, see get-started-exercise-detect-faces. This operation requires permissions to perform the rekognition:DetectFaces action. + /// Detects faces within an image that is provided as input. DetectFaces detects the 100 largest faces in the image. For each face detected, the operation returns face details including a bounding box of the face, a confidence value (that the bounding box contains a face), and a fixed set of attributes such as facial landmarks (for example, coordinates of eye and mouth), gender, presence of beard, sunglasses, etc. The face-detection algorithm is most effective on frontal faces. For non-frontal or obscured faces, the algorithm may not detect the faces or might detect faces with lower confidence. You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file. This is a stateless API operation. That is, the operation does not persist any data. For an example, see procedure-detecting-faces-in-images. This operation requires permissions to perform the rekognition:DetectFaces action. public func detectFaces(_ input: DetectFacesRequest) throws -> DetectFacesResponse { return try client.send(operation: "DetectFaces", path: "/", httpMethod: "POST", input: input) } - /// For a given input face ID, searches for matching faces in the collection the face belongs to. You get a face ID when you add a face to the collection using the IndexFaces operation. The operation compares the features of the input face with faces in the specified collection. You can also search faces without indexing faces by using the SearchFacesByImage operation. The operation response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match that is found. Along with the metadata, the response also includes a confidence value for each face match, indicating the confidence that the specific face matches the input face. For an example, see example3. This operation requires permissions to perform the rekognition:SearchFaces action. - public func searchFaces(_ input: SearchFacesRequest) throws -> SearchFacesResponse { - return try client.send(operation: "SearchFaces", path: "/", httpMethod: "POST", input: input) + /// Gets the celebrity recognition results for a Rekognition Video analysis started by . Celebrity recognition in a video is an asynchronous operation. Analysis is started by a call to which returns a job identifier (JobId). When the celebrity recognition operation finishes, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartCelebrityRecognition. To get the results of the celebrity recognition analysis, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetCelebrityDetection and pass the job identifier (JobId) from the initial call to StartCelebrityDetection. For more information, see video. GetCelebrityRecognition returns detected celebrities and the time(s) they are detected in an array (Celebrities) of objects. Each CelebrityRecognition contains information about the celebrity in a object and the time, Timestamp, the celebrity was detected. By default, the Celebrities array is sorted by time (milliseconds from the start of the video). You can also sort the array by celebrity by specifying the value ID in the SortBy input parameter. The CelebrityDetail object includes the celebrity identifer and additional information urls. If you don't store the additional information urls, you can get them later by calling with the celebrity identifer. No information is returned for faces not recognized as celebrities. Use MaxResults parameter to limit the number of labels returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetCelebrityDetection and populate the NextToken request parameter with the token value returned from the previous call to GetCelebrityRecognition. + public func getCelebrityRecognition(_ input: GetCelebrityRecognitionRequest) throws -> GetCelebrityRecognitionResponse { + return try client.send(operation: "GetCelebrityRecognition", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified collection. Note that this operation removes all faces in the collection. For an example, see example1. This operation requires permissions to perform the rekognition:DeleteCollection action. - public func deleteCollection(_ input: DeleteCollectionRequest) throws -> DeleteCollectionResponse { - return try client.send(operation: "DeleteCollection", path: "/", httpMethod: "POST", input: input) + /// For a given input face ID, searches for matching faces in the collection the face belongs to. You get a face ID when you add a face to the collection using the IndexFaces operation. The operation compares the features of the input face with faces in the specified collection. You can also search faces without indexing faces by using the SearchFacesByImage operation. The operation response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match that is found. Along with the metadata, the response also includes a confidence value for each face match, indicating the confidence that the specific face matches the input face. For an example, see search-face-with-id-procedure. This operation requires permissions to perform the rekognition:SearchFaces action. + public func searchFaces(_ input: SearchFacesRequest) throws -> SearchFacesResponse { + return try client.send(operation: "SearchFaces", path: "/", httpMethod: "POST", input: input) } - /// Returns list of collection IDs in your account. If the result is truncated, the response also provides a NextToken that you can use in the subsequent request to fetch the next set of collection IDs. For an example, see example1. This operation requires permissions to perform the rekognition:ListCollections action. + /// Returns list of collection IDs in your account. If the result is truncated, the response also provides a NextToken that you can use in the subsequent request to fetch the next set of collection IDs. For an example, see list-collection-procedure. This operation requires permissions to perform the rekognition:ListCollections action. public func listCollections(_ input: ListCollectionsRequest) throws -> ListCollectionsResponse { return try client.send(operation: "ListCollections", path: "/", httpMethod: "POST", input: input) } - /// Gets the name and additional information about a celebrity based on his or her Rekognition ID. The additional information is returned as an array of URLs. If there is no additional information about the celebrity, this list is empty. For more information, see celebrity-recognition. This operation requires permissions to perform the rekognition:GetCelebrityInfo action. + /// Deletes the specified collection. Note that this operation removes all faces in the collection. For an example, see delete-collection-procedure. This operation requires permissions to perform the rekognition:DeleteCollection action. + public func deleteCollection(_ input: DeleteCollectionRequest) throws -> DeleteCollectionResponse { + return try client.send(operation: "DeleteCollection", path: "/", httpMethod: "POST", input: input) + } + + /// Gets the name and additional information about a celebrity based on his or her Rekognition ID. The additional information is returned as an array of URLs. If there is no additional information about the celebrity, this list is empty. For more information, see get-celebrity-info-procedure. This operation requires permissions to perform the rekognition:GetCelebrityInfo action. public func getCelebrityInfo(_ input: GetCelebrityInfoRequest) throws -> GetCelebrityInfoResponse { return try client.send(operation: "GetCelebrityInfo", path: "/", httpMethod: "POST", input: input) } - /// Creates a collection in an AWS Region. You can add faces to the collection using the operation. For example, you might create collections, one for each of your application users. A user can then index faces using the IndexFaces operation and persist results in a specific collection. Then, a user can search the collection for faces in the user-specific container. Collection names are case-sensitive. For an example, see example1. This operation requires permissions to perform the rekognition:CreateCollection action. - public func createCollection(_ input: CreateCollectionRequest) throws -> CreateCollectionResponse { - return try client.send(operation: "CreateCollection", path: "/", httpMethod: "POST", input: input) + /// Starts asynchronous detection of faces in a stored video. Rekognition Video can detect faces in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartFaceDetection returns a job identifier (JobId) that you use to get the results of the operation. When face detection is finished, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the results of the label detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartFaceDetection. For more information, see faces-video. + public func startFaceDetection(_ input: StartFaceDetectionRequest) throws -> StartFaceDetectionResponse { + return try client.send(operation: "StartFaceDetection", path: "/", httpMethod: "POST", input: input) } - /// Detects instances of real-world labels within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature. For an example, see get-started-exercise-detect-labels. For each object, scene, and concept the API returns one or more labels. Each label provides the object name, and the level of confidence that the image contains the object. For example, suppose the input image has a lighthouse, the sea, and a rock. The response will include all three labels, one for each object. {Name: lighthouse, Confidence: 98.4629} {Name: rock,Confidence: 79.2097} {Name: sea,Confidence: 75.061} In the preceding example, the operation returns one label for each of the three objects. The operation can also return multiple labels for the same object in the image. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels. {Name: flower,Confidence: 99.0562} {Name: plant,Confidence: 99.0562} {Name: tulip,Confidence: 99.0562} In this example, the detection algorithm more precisely identifies the flower as a tulip. You can provide the input image as an S3 object or as base64-encoded bytes. In response, the API returns an array of labels. In addition, the response also includes the orientation correction. Optionally, you can specify MinConfidence to control the confidence threshold for the labels returned. The default is 50%. You can also add the MaxLabels parameter to limit the number of labels returned. If the object detected is a person, the operation doesn't provide the same facial details that the DetectFaces operation provides. This is a stateless API operation. That is, the operation does not persist any data. This operation requires permissions to perform the rekognition:DetectLabels action. + /// Detects instances of real-world entities within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature. For an example, see images-s3. DetectLabels does not support the detection of activities. However, activity detection is supported for label detection in videos. For more information, see . You pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file. For each object, scene, and concept the API returns one or more labels. Each label provides the object name, and the level of confidence that the image contains the object. For example, suppose the input image has a lighthouse, the sea, and a rock. The response will include all three labels, one for each object. {Name: lighthouse, Confidence: 98.4629} {Name: rock,Confidence: 79.2097} {Name: sea,Confidence: 75.061} In the preceding example, the operation returns one label for each of the three objects. The operation can also return multiple labels for the same object in the image. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels. {Name: flower,Confidence: 99.0562} {Name: plant,Confidence: 99.0562} {Name: tulip,Confidence: 99.0562} In this example, the detection algorithm more precisely identifies the flower as a tulip. In response, the API returns an array of labels. In addition, the response also includes the orientation correction. Optionally, you can specify MinConfidence to control the confidence threshold for the labels returned. The default is 50%. You can also add the MaxLabels parameter to limit the number of labels returned. If the object detected is a person, the operation doesn't provide the same facial details that the DetectFaces operation provides. This is a stateless API operation. That is, the operation does not persist any data. This operation requires permissions to perform the rekognition:DetectLabels action. public func detectLabels(_ input: DetectLabelsRequest) throws -> DetectLabelsResponse { return try client.send(operation: "DetectLabels", path: "/", httpMethod: "POST", input: input) } - /// Returns metadata for faces in the specified collection. This metadata includes information such as the bounding box coordinates, the confidence (that the bounding box contains a face), and face ID. For an example, see example3. This operation requires permissions to perform the rekognition:ListFaces action. + /// Returns metadata for faces in the specified collection. This metadata includes information such as the bounding box coordinates, the confidence (that the bounding box contains a face), and face ID. For an example, see list-faces-in-collection-procedure. This operation requires permissions to perform the rekognition:ListFaces action. public func listFaces(_ input: ListFacesRequest) throws -> ListFacesResponse { return try client.send(operation: "ListFaces", path: "/", httpMethod: "POST", input: input) } - /// For a given input image, first detects the largest face in the image, and then searches the specified collection for matching faces. The operation compares the features of the input face with faces in the specified collection. To search for all faces in an input image, you might first call the operation, and then use the face IDs returned in subsequent calls to the operation. You can also call the DetectFaces operation and use the bounding boxes in the response to make face crops, which then you can pass in to the SearchFacesByImage operation. The response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match found. Along with the metadata, the response also includes a similarity indicating how similar the face is to the input face. In the response, the operation also returns the bounding box (and a confidence level that the bounding box contains a face) of the face that Amazon Rekognition used for the input image. For an example, see example3. This operation requires permissions to perform the rekognition:SearchFacesByImage action. + /// Starts asynchronous recognition of celebrities in a stored video. Rekognition Video can detect celebrities in a video must be stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartCelebrityRecognition returns a job identifier (JobId) which you use to get the results of the analysis. When celebrity recognition analysis is finished, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the results of the celebrity recognition analysis, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartCelebrityRecognition. For more information, see celebrities. + public func startCelebrityRecognition(_ input: StartCelebrityRecognitionRequest) throws -> StartCelebrityRecognitionResponse { + return try client.send(operation: "StartCelebrityRecognition", path: "/", httpMethod: "POST", input: input) + } + + /// Gets a list of stream processors that you have created with . + public func listStreamProcessors(_ input: ListStreamProcessorsRequest) throws -> ListStreamProcessorsResponse { + return try client.send(operation: "ListStreamProcessors", path: "/", httpMethod: "POST", input: input) + } + + /// Gets the content moderation analysis results for a Rekognition Video analysis started by . Content moderation analysis of a video is an asynchronous operation. You start analysis by calling . which returns a job identifier (JobId). When analysis finishes, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartContentModeration. To get the results of the content moderation analysis, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetCelebrityDetection and pass the job identifier (JobId) from the initial call to StartCelebrityDetection. For more information, see video. GetContentModeration returns detected content moderation labels, and the time they are detected, in an array, ModerationLabels, of objects. By default, the moderated labels are returned sorted by time, in milliseconds from the start of the video. You can also sort them by moderated label by specifying NAME for the SortBy input parameter. Since video analysis can return a large number of results, use the MaxResults parameter to limit the number of labels returned in a single call to GetContentModeration. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetContentModeration and populate the NextToken request parameter with the value of NextToken returned from the previous call to GetContentModeration. For more information, see moderation. + public func getContentModeration(_ input: GetContentModerationRequest) throws -> GetContentModerationResponse { + return try client.send(operation: "GetContentModeration", path: "/", httpMethod: "POST", input: input) + } + + /// Provides information about a stream processor created by . You can get information about the input and output streams, the input parameters for the face recognition being performed, and the current status of the stream processor. + public func describeStreamProcessor(_ input: DescribeStreamProcessorRequest) throws -> DescribeStreamProcessorResponse { + return try client.send(operation: "DescribeStreamProcessor", path: "/", httpMethod: "POST", input: input) + } + + /// Starts the asynchronous tracking of persons in a stored video. Rekognition Video can track persons in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartPersonTracking returns a job identifier (JobId) which you use to get the results of the operation. When label detection is finished, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the results of the person detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartPersonTracking. + public func startPersonTracking(_ input: StartPersonTrackingRequest) throws -> StartPersonTrackingResponse { + return try client.send(operation: "StartPersonTracking", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an Amazon Rekognition stream processor that you can use to detect and recognize faces in a streaming video. Rekognition Video is a consumer of live video from Amazon Kinesis Video Streams. Rekognition Video sends analysis results to Amazon Kinesis Data Streams. You provide as input a Kinesis video stream (Input) and a Kinesis data stream (Output) stream. You also specify the face recognition criteria in Settings. For example, the collection containing faces that you want to recognize. Use Name to assign an identifier for the stream processor. You use Name to manage the stream processor. For example, you can start processing the source video by calling with the Name field. After you have finished analyzing a streaming video, use to stop processing. You can delete the stream processor by calling . + public func createStreamProcessor(_ input: CreateStreamProcessorRequest) throws -> CreateStreamProcessorResponse { + return try client.send(operation: "CreateStreamProcessor", path: "/", httpMethod: "POST", input: input) + } + + /// Compares a face in the source input image with each of the 100 largest faces detected in the target input image. If the source image contains multiple faces, the service detects the largest face and compares it with each face detected in the target image. You pass the input and target images either as base64-encoded image bytes or as a references to images in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file. In response, the operation returns an array of face matches ordered by similarity score in descending order. For each face match, the response provides a bounding box of the face, facial landmarks, pose details (pitch, role, and yaw), quality (brightness and sharpness), and confidence value (indicating the level of confidence that the bounding box contains a face). The response also provides a similarity score, which indicates how closely the faces match. By default, only faces with a similarity score of greater than or equal to 80% are returned in the response. You can change this value by specifying the SimilarityThreshold parameter. CompareFaces also returns an array of faces that don't match the source image. For each face, it returns a bounding box, confidence value, landmarks, pose details, and quality. The response also returns information about the face in the source image, including the bounding box of the face and confidence value. If the image doesn't contain Exif metadata, CompareFaces returns orientation information for the source and target images. Use these values to display the images with the correct image orientation. If no faces are detected in the source or target images, CompareFaces returns an InvalidParameterException error. This is a stateless API operation. That is, data returned by this operation doesn't persist. For an example, see faces-compare-images. This operation requires permissions to perform the rekognition:CompareFaces action. + public func compareFaces(_ input: CompareFacesRequest) throws -> CompareFacesResponse { + return try client.send(operation: "CompareFaces", path: "/", httpMethod: "POST", input: input) + } + + /// Detects faces in the input image and adds them to the specified collection. Amazon Rekognition does not save the actual faces detected. Instead, the underlying detection algorithm first detects the faces in the input image, and for each face extracts facial features into a feature vector, and stores it in the back-end database. Amazon Rekognition uses feature vectors when performing face match and search operations using the and operations. If you are using version 1.0 of the face detection model, IndexFaces indexes the 15 largest faces in the input image. Later versions of the face detection model index the 100 largest faces in the input image. To determine which version of the model you are using, check the the value of FaceModelVersion in the response from IndexFaces. For more information, see face-detection-model. If you provide the optional ExternalImageID for the input image you provided, Amazon Rekognition associates this ID with all faces that it detects. When you call the operation, the response returns the external ID. You can use this external image ID to create a client-side index to associate the faces with each image. You can then use the index to find all faces in an image. In response, the operation returns an array of metadata for all detected faces. This includes, the bounding box of the detected face, confidence value (indicating the bounding box contains a face), a face ID assigned by the service for each face that is detected and stored, and an image ID assigned by the service for the input image. If you request all facial attributes (using the detectionAttributes parameter, Amazon Rekognition returns detailed facial attributes such as facial landmarks (for example, location of eye and mount) and other facial attributes such gender. If you provide the same image, specify the same collection, and use the same external ID in the IndexFaces operation, Amazon Rekognition doesn't save duplicate face metadata. The input image is passed either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file. This operation requires permissions to perform the rekognition:IndexFaces action. + public func indexFaces(_ input: IndexFacesRequest) throws -> IndexFacesResponse { + return try client.send(operation: "IndexFaces", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of celebrities recognized in the input image. For more information, see celebrities. RecognizeCelebrities returns the 100 largest faces in the image. It lists recognized celebrities in the CelebrityFaces array and unrecognized faces in the UnrecognizedFaces array. RecognizeCelebrities doesn't return celebrities whose faces are not amongst the largest 100 faces in the image. For each celebrity recognized, the RecognizeCelebrities returns a Celebrity object. The Celebrity object contains the celebrity name, ID, URL links to additional information, match confidence, and a ComparedFace object that you can use to locate the celebrity's face on the image. Rekognition does not retain information about which images a celebrity has been recognized in. Your application must store this information and use the Celebrity ID property as a unique identifier for the celebrity. If you don't store the celebrity name or additional information URLs returned by RecognizeCelebrities, you will need the ID to identify the celebrity in a call to the operation. You pass the imput image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file. For an example, see celebrities-procedure-image. This operation requires permissions to perform the rekognition:RecognizeCelebrities operation. + public func recognizeCelebrities(_ input: RecognizeCelebritiesRequest) throws -> RecognizeCelebritiesResponse { + return try client.send(operation: "RecognizeCelebrities", path: "/", httpMethod: "POST", input: input) + } + + /// Starts processing a stream processor. You create a stream processor by calling . To tell StartStreamProcessor which stream processor to start, use the value of the Name field specified in the call to CreateStreamProcessor. + public func startStreamProcessor(_ input: StartStreamProcessorRequest) throws -> StartStreamProcessorResponse { + return try client.send(operation: "StartStreamProcessor", path: "/", httpMethod: "POST", input: input) + } + + /// Starts asynchronous detection of labels in a stored video. Rekognition Video can detect labels in a video. Labels are instances of real-world entities. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; concepts like landscape, evening, and nature; and activities like a person getting out of a car or a person skiing. The video must be stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartLabelDetection returns a job identifier (JobId) which you use to get the results of the operation. When label detection is finished, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the results of the label detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartLabelDetection. + public func startLabelDetection(_ input: StartLabelDetectionRequest) throws -> StartLabelDetectionResponse { + return try client.send(operation: "StartLabelDetection", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a collection in an AWS Region. You can add faces to the collection using the operation. For example, you might create collections, one for each of your application users. A user can then index faces using the IndexFaces operation and persist results in a specific collection. Then, a user can search the collection for faces in the user-specific container. Collection names are case-sensitive. This operation requires permissions to perform the rekognition:CreateCollection action. + public func createCollection(_ input: CreateCollectionRequest) throws -> CreateCollectionResponse { + return try client.send(operation: "CreateCollection", path: "/", httpMethod: "POST", input: input) + } + + /// Starts asynchronous detection of explicit or suggestive adult content in a stored video. Rekognition Video can moderate content in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartContentModeration returns a job identifier (JobId) which you use to get the results of the analysis. When content moderation analysis is finished, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the results of the content moderation analysis, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartContentModeration. For more information, see moderation. + public func startContentModeration(_ input: StartContentModerationRequest) throws -> StartContentModerationResponse { + return try client.send(operation: "StartContentModeration", path: "/", httpMethod: "POST", input: input) + } + + /// For a given input image, first detects the largest face in the image, and then searches the specified collection for matching faces. The operation compares the features of the input face with faces in the specified collection. To search for all faces in an input image, you might first call the operation, and then use the face IDs returned in subsequent calls to the operation. You can also call the DetectFaces operation and use the bounding boxes in the response to make face crops, which then you can pass in to the SearchFacesByImage operation. You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file. The response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match found. Along with the metadata, the response also includes a similarity indicating how similar the face is to the input face. In the response, the operation also returns the bounding box (and a confidence level that the bounding box contains a face) of the face that Amazon Rekognition used for the input image. For an example, see search-face-with-image-procedure. This operation requires permissions to perform the rekognition:SearchFacesByImage action. public func searchFacesByImage(_ input: SearchFacesByImageRequest) throws -> SearchFacesByImageResponse { return try client.send(operation: "SearchFacesByImage", path: "/", httpMethod: "POST", input: input) } - /// Detects explicit or suggestive adult content in a specified JPEG or PNG format image. Use DetectModerationLabels to moderate images depending on your requirements. For example, you might want to filter images that contain nudity, but not images containing suggestive content. To filter images, use the labels returned by DetectModerationLabels to determine which types of content are appropriate. For information about moderation labels, see image-moderation. + /// Gets the face search results for Rekognition Video face search started by . The search returns faces in a collection that match the faces of persons detected in a video. It also includes the time(s) that faces are matched in the video. Face search in a video is an asynchronous operation. You start face search by calling to which returns a job identifier (JobId). When the search operation finishes, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartFaceSearch. To get the search results, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetFaceSearch and pass the job identifier (JobId) from the initial call to StartFaceSearch. For more information, see collections. The search results are retured in an array, Persons, of objects. EachPersonMatch element contains details about the matching faces in the input collection, person information for the matched person, and the time the person was matched in the video. By default, the Persons array is sorted by the time, in milliseconds from the start of the video, persons are matched. You can also sort by persons by specifying INDEX for the SORTBY input parameter. + public func getFaceSearch(_ input: GetFaceSearchRequest) throws -> GetFaceSearchResponse { + return try client.send(operation: "GetFaceSearch", path: "/", httpMethod: "POST", input: input) + } + + /// Detects text in the input image and converts it into machine-readable text. Pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, you must pass it as a reference to an image in an Amazon S3 bucket. For the AWS CLI, passing image bytes is not supported. The image must be either a .png or .jpeg formatted file. The DetectText operation returns text in an array of elements, TextDetections. Each TextDetection element provides information about a single word or line of text that was detected in the image. A word is one or more ISO basic latin script characters that are not separated by spaces. DetectText can detect up to 50 words in an image. A line is a string of equally spaced words. A line isn't necessarily a complete sentence. For example, a driver's license number is detected as a line. A line ends when there is no aligned text after it. Also, a line ends when there is a large gap between words, relative to the length of the words. This means, depending on the gap between words, Amazon Rekognition may detect multiple lines in text aligned in the same direction. Periods don't represent the end of a line. If a sentence spans multiple lines, the DetectText operation returns multiple lines. To determine whether a TextDetection element is a line of text or a word, use the TextDetection object Type field. To be detected, text must be within +/- 30 degrees orientation of the horizontal axis. For more information, see text-detection. + public func detectText(_ input: DetectTextRequest) throws -> DetectTextResponse { + return try client.send(operation: "DetectText", path: "/", httpMethod: "POST", input: input) + } + + /// Gets face detection results for a Rekognition Video analysis started by . Face detection with Rekognition Video is an asynchronous operation. You start face detection by calling which returns a job identifier (JobId). When the face detection operation finishes, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartFaceDetection. To get the results of the face detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartFaceDetection. GetFaceDetection returns an array of detected faces (Faces) sorted by the time the faces were detected. Use MaxResults parameter to limit the number of labels returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetFaceDetection and populate the NextToken request parameter with the token value returned from the previous call to GetFaceDetection. + public func getFaceDetection(_ input: GetFaceDetectionRequest) throws -> GetFaceDetectionResponse { + return try client.send(operation: "GetFaceDetection", path: "/", httpMethod: "POST", input: input) + } + + /// Stops a running stream processor that was created by . + public func stopStreamProcessor(_ input: StopStreamProcessorRequest) throws -> StopStreamProcessorResponse { + return try client.send(operation: "StopStreamProcessor", path: "/", httpMethod: "POST", input: input) + } + + /// Detects explicit or suggestive adult content in a specified JPEG or PNG format image. Use DetectModerationLabels to moderate images depending on your requirements. For example, you might want to filter images that contain nudity, but not images containing suggestive content. To filter images, use the labels returned by DetectModerationLabels to determine which types of content are appropriate. For information about moderation labels, see moderation. You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file. public func detectModerationLabels(_ input: DetectModerationLabelsRequest) throws -> DetectModerationLabelsResponse { return try client.send(operation: "DetectModerationLabels", path: "/", httpMethod: "POST", input: input) } - /// Compares a face in the source input image with each face detected in the target input image. If the source image contains multiple faces, the service detects the largest face and compares it with each face detected in the target image. In response, the operation returns an array of face matches ordered by similarity score in descending order. For each face match, the response provides a bounding box of the face, facial landmarks, pose details (pitch, role, and yaw), quality (brightness and sharpness), and confidence value (indicating the level of confidence that the bounding box contains a face). The response also provides a similarity score, which indicates how closely the faces match. By default, only faces with a similarity score of greater than or equal to 80% are returned in the response. You can change this value by specifying the SimilarityThreshold parameter. CompareFaces also returns an array of faces that don't match the source image. For each face, it returns a bounding box, confidence value, landmarks, pose details, and quality. The response also returns information about the face in the source image, including the bounding box of the face and confidence value. If the image doesn't contain Exif metadata, CompareFaces returns orientation information for the source and target images. Use these values to display the images with the correct image orientation. This is a stateless API operation. That is, data returned by this operation doesn't persist. For an example, see get-started-exercise-compare-faces. This operation requires permissions to perform the rekognition:CompareFaces action. - public func compareFaces(_ input: CompareFacesRequest) throws -> CompareFacesResponse { - return try client.send(operation: "CompareFaces", path: "/", httpMethod: "POST", input: input) + /// Gets the label detection results of a Rekognition Video analysis started by . The label detection operation is started by a call to which returns a job identifier (JobId). When the label detection operation finishes, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartlabelDetection. To get the results of the label detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartLabelDetection. GetLabelDetection returns an array of detected labels (Labels) sorted by the time the labels were detected. You can also sort by the label name by specifying NAME for the SortBy input parameter. The labels returned include the label name, the percentage confidence in the accuracy of the detected label, and the time the label was detected in the video. Use MaxResults parameter to limit the number of labels returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetlabelDetection and populate the NextToken request parameter with the token value returned from the previous call to GetLabelDetection. + public func getLabelDetection(_ input: GetLabelDetectionRequest) throws -> GetLabelDetectionResponse { + return try client.send(operation: "GetLabelDetection", path: "/", httpMethod: "POST", input: input) } - /// Deletes faces from a collection. You specify a collection ID and an array of face IDs to remove from the collection. This operation requires permissions to perform the rekognition:DeleteFaces action. - public func deleteFaces(_ input: DeleteFacesRequest) throws -> DeleteFacesResponse { - return try client.send(operation: "DeleteFaces", path: "/", httpMethod: "POST", input: input) + /// Starts the asynchronous search for faces in a collection that match the faces of persons detected in a stored video. The video must be stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartFaceSearch returns a job identifier (JobId) which you use to get the search results once the search has completed. When searching is finished, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the search results, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartFaceSearch. For more information, see collections-search-person. + public func startFaceSearch(_ input: StartFaceSearchRequest) throws -> StartFaceSearchResponse { + return try client.send(operation: "StartFaceSearch", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/rekognition/Rekognition_Error.swift b/Sources/AWSSDKSwift/Services/rekognition/Rekognition_Error.swift index e2ad5d5e88d..2a0dbe2b24e 100644 --- a/Sources/AWSSDKSwift/Services/rekognition/Rekognition_Error.swift +++ b/Sources/AWSSDKSwift/Services/rekognition/Rekognition_Error.swift @@ -4,16 +4,20 @@ import AWSSDKSwiftCore /// Error enum for Rekognition public enum RekognitionError: AWSErrorType { - case invalidS3ObjectException(message: String?) case invalidParameterException(message: String?) - case imageTooLargeException(message: String?) case accessDeniedException(message: String?) case internalServerError(message: String?) case throttlingException(message: String?) case provisionedThroughputExceededException(message: String?) case resourceNotFoundException(message: String?) - case invalidImageFormatException(message: String?) case invalidPaginationTokenException(message: String?) + case resourceInUseException(message: String?) + case invalidS3ObjectException(message: String?) + case imageTooLargeException(message: String?) + case invalidImageFormatException(message: String?) + case idempotentParameterMismatchException(message: String?) + case videoTooLargeException(message: String?) + case limitExceededException(message: String?) case resourceAlreadyExistsException(message: String?) } @@ -24,12 +28,8 @@ extension RekognitionError { errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) } switch errorCode { - case "InvalidS3ObjectException": - self = .invalidS3ObjectException(message: message) case "InvalidParameterException": self = .invalidParameterException(message: message) - case "ImageTooLargeException": - self = .imageTooLargeException(message: message) case "AccessDeniedException": self = .accessDeniedException(message: message) case "InternalServerError": @@ -40,10 +40,22 @@ extension RekognitionError { self = .provisionedThroughputExceededException(message: message) case "ResourceNotFoundException": self = .resourceNotFoundException(message: message) - case "InvalidImageFormatException": - self = .invalidImageFormatException(message: message) case "InvalidPaginationTokenException": self = .invalidPaginationTokenException(message: message) + case "ResourceInUseException": + self = .resourceInUseException(message: message) + case "InvalidS3ObjectException": + self = .invalidS3ObjectException(message: message) + case "ImageTooLargeException": + self = .imageTooLargeException(message: message) + case "InvalidImageFormatException": + self = .invalidImageFormatException(message: message) + case "IdempotentParameterMismatchException": + self = .idempotentParameterMismatchException(message: message) + case "VideoTooLargeException": + self = .videoTooLargeException(message: message) + case "LimitExceededException": + self = .limitExceededException(message: message) case "ResourceAlreadyExistsException": self = .resourceAlreadyExistsException(message: message) default: diff --git a/Sources/AWSSDKSwift/Services/rekognition/Rekognition_Shapes.swift b/Sources/AWSSDKSwift/Services/rekognition/Rekognition_Shapes.swift index e3355731990..5b41130cdf8 100644 --- a/Sources/AWSSDKSwift/Services/rekognition/Rekognition_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/rekognition/Rekognition_Shapes.swift @@ -5,8 +5,49 @@ import AWSSDKSwiftCore extension Rekognition { + public struct CelebrityDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BoundingBox", required: false, type: .structure), + AWSShapeMember(label: "Face", required: false, type: .structure), + AWSShapeMember(label: "Urls", required: false, type: .list), + AWSShapeMember(label: "Confidence", required: false, type: .float), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// Bounding box around the body of a celebrity. + public let boundingBox: BoundingBox? + /// Face details for the recognized celebrity. + public let face: FaceDetail? + /// An array of URLs pointing to additional celebrity information. + public let urls: [String]? + /// The confidence, in percentage, that Amazon Rekognition has that the recognized face is the celebrity. + public let confidence: Float? + /// The name of the celebrity. + public let name: String? + /// The unique identifier for the celebrity. + public let id: String? + + public init(boundingBox: BoundingBox? = nil, face: FaceDetail? = nil, urls: [String]? = nil, confidence: Float? = nil, name: String? = nil, id: String? = nil) { + self.boundingBox = boundingBox + self.face = face + self.urls = urls + self.confidence = confidence + self.name = name + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case boundingBox = "BoundingBox" + case face = "Face" + case urls = "Urls" + case confidence = "Confidence" + case name = "Name" + case id = "Id" + } + } + public struct DeleteCollectionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StatusCode", required: false, type: .integer) ] /// HTTP status code that indicates the result of the operation. @@ -21,41 +62,24 @@ extension Rekognition { } } - public struct ListCollectionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CollectionIds", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) + public struct DetectTextResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TextDetections", required: false, type: .list) ] - /// An array of collection IDs. - public let collectionIds: [String]? - /// If the result is truncated, the response provides a NextToken that you can use in the subsequent request to fetch the next set of collection IDs. - public let nextToken: String? + /// An array of text that was detected in the input image. + public let textDetections: [TextDetection]? - public init(collectionIds: [String]? = nil, nextToken: String? = nil) { - self.collectionIds = collectionIds - self.nextToken = nextToken + public init(textDetections: [TextDetection]? = nil) { + self.textDetections = textDetections } private enum CodingKeys: String, CodingKey { - case collectionIds = "CollectionIds" - case nextToken = "NextToken" + case textDetections = "TextDetections" } } - public enum EmotionName: String, CustomStringConvertible, Codable { - case happy = "HAPPY" - case sad = "SAD" - case angry = "ANGRY" - case confused = "CONFUSED" - case disgusted = "DISGUSTED" - case surprised = "SURPRISED" - case calm = "CALM" - case unknown = "UNKNOWN" - public var description: String { return self.rawValue } - } - public struct BoundingBox: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Height", required: false, type: .float), AWSShapeMember(label: "Top", required: false, type: .float), AWSShapeMember(label: "Left", required: false, type: .float), @@ -86,7 +110,7 @@ extension Rekognition { } public struct Pose: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Yaw", required: false, type: .float), AWSShapeMember(label: "Roll", required: false, type: .float), AWSShapeMember(label: "Pitch", required: false, type: .float) @@ -111,24 +135,65 @@ extension Rekognition { } } - public struct DetectModerationLabelsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ModerationLabels", required: false, type: .list) + public struct StartFaceSearchRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobTag", required: false, type: .string), + AWSShapeMember(label: "FaceMatchThreshold", required: false, type: .float), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "CollectionId", required: true, type: .string), + AWSShapeMember(label: "NotificationChannel", required: false, type: .structure), + AWSShapeMember(label: "Video", required: true, type: .structure) ] - /// An array of labels for explicit or suggestive adult content found in the image. The list includes the top-level label and each child label detected in the image. This is useful for filtering specific categories of content. - public let moderationLabels: [ModerationLabel]? + /// Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic. + public let jobTag: String? + /// The minimum confidence in the person match to return. For example, don't return any matches where confidence in matches is less than 70%. + public let faceMatchThreshold: Float? + /// Idempotent token used to identify the start request. If you use the same token with multiple StartFaceSearch requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once. + public let clientRequestToken: String? + /// ID of the collection that contains the faces you want to search for. + public let collectionId: String + /// The ARN of the Amazon SNS topic to which you want Rekognition Video to publish the completion status of the search. + public let notificationChannel: NotificationChannel? + /// The video you want to search. The video must be stored in an Amazon S3 bucket. + public let video: Video - public init(moderationLabels: [ModerationLabel]? = nil) { - self.moderationLabels = moderationLabels + public init(jobTag: String? = nil, faceMatchThreshold: Float? = nil, clientRequestToken: String? = nil, collectionId: String, notificationChannel: NotificationChannel? = nil, video: Video) { + self.jobTag = jobTag + self.faceMatchThreshold = faceMatchThreshold + self.clientRequestToken = clientRequestToken + self.collectionId = collectionId + self.notificationChannel = notificationChannel + self.video = video } private enum CodingKeys: String, CodingKey { - case moderationLabels = "ModerationLabels" + case jobTag = "JobTag" + case faceMatchThreshold = "FaceMatchThreshold" + case clientRequestToken = "ClientRequestToken" + case collectionId = "CollectionId" + case notificationChannel = "NotificationChannel" + case video = "Video" + } + } + + public struct StreamProcessorInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KinesisVideoStream", required: false, type: .structure) + ] + /// The Kinesis video stream input stream for the source streaming video. + public let kinesisVideoStream: KinesisVideoStream? + + public init(kinesisVideoStream: KinesisVideoStream? = nil) { + self.kinesisVideoStream = kinesisVideoStream + } + + private enum CodingKeys: String, CodingKey { + case kinesisVideoStream = "KinesisVideoStream" } } public struct Gender: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Confidence", required: false, type: .float), AWSShapeMember(label: "Value", required: false, type: .enum) ] @@ -149,7 +214,7 @@ extension Rekognition { } public struct Smile: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Confidence", required: false, type: .float), AWSShapeMember(label: "Value", required: false, type: .boolean) ] @@ -169,8 +234,24 @@ extension Rekognition { } } + public struct KinesisVideoStream: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string) + ] + /// ARN of the Kinesis video stream stream that streams the source video. + public let arn: String? + + public init(arn: String? = nil) { + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + } + } + public struct S3Object: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Version", required: false, type: .string) @@ -196,7 +277,7 @@ extension Rekognition { } public struct DetectFacesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrientationCorrection", required: false, type: .enum), AWSShapeMember(label: "FaceDetails", required: false, type: .list) ] @@ -217,28 +298,33 @@ extension Rekognition { } public struct IndexFacesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrientationCorrection", required: false, type: .enum), + AWSShapeMember(label: "FaceModelVersion", required: false, type: .string), AWSShapeMember(label: "FaceRecords", required: false, type: .list) ] /// The orientation of the input image (counterclockwise direction). If your application displays the image, you can use this value to correct image orientation. The bounding box coordinates returned in FaceRecords represent face locations before the image orientation is corrected. If the input image is in jpeg format, it might contain exchangeable image (Exif) metadata. If so, and the Exif metadata populates the orientation field, the value of OrientationCorrection is null and the bounding box coordinates in FaceRecords represent face locations after Exif metadata is used to correct the image orientation. Images in .png format don't contain Exif metadata. public let orientationCorrection: OrientationCorrection? - /// An array of faces detected and added to the collection. For more information, see howitworks-index-faces. + /// Version number of the face detection model associated with the input collection (CollectionId). + public let faceModelVersion: String? + /// An array of faces detected and added to the collection. For more information, see collections-index-faces. public let faceRecords: [FaceRecord]? - public init(orientationCorrection: OrientationCorrection? = nil, faceRecords: [FaceRecord]? = nil) { + public init(orientationCorrection: OrientationCorrection? = nil, faceModelVersion: String? = nil, faceRecords: [FaceRecord]? = nil) { self.orientationCorrection = orientationCorrection + self.faceModelVersion = faceModelVersion self.faceRecords = faceRecords } private enum CodingKeys: String, CodingKey { case orientationCorrection = "OrientationCorrection" + case faceModelVersion = "FaceModelVersion" case faceRecords = "FaceRecords" } } public struct FaceDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Sunglasses", required: false, type: .structure), AWSShapeMember(label: "Gender", required: false, type: .structure), AWSShapeMember(label: "EyesOpen", required: false, type: .structure), @@ -324,7 +410,7 @@ extension Rekognition { } public struct CompareFacesMatch: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Face", required: false, type: .structure), AWSShapeMember(label: "Similarity", required: false, type: .float) ] @@ -344,65 +430,34 @@ extension Rekognition { } } - public struct Celebrity: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Face", required: false, type: .structure), - AWSShapeMember(label: "Urls", required: false, type: .list), - AWSShapeMember(label: "MatchConfidence", required: false, type: .float), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "Id", required: false, type: .string) - ] - /// Provides information about the celebrity's face, such as its location on the image. - public let face: ComparedFace? - /// An array of URLs pointing to additional information about the celebrity. If there is no additional information about the celebrity, this list is empty. - public let urls: [String]? - /// The confidence, in percentage, that Rekognition has that the recognized face is the celebrity. - public let matchConfidence: Float? - /// The name of the celebrity. - public let name: String? - /// A unique identifier for the celebrity. - public let id: String? - - public init(face: ComparedFace? = nil, urls: [String]? = nil, matchConfidence: Float? = nil, name: String? = nil, id: String? = nil) { - self.face = face - self.urls = urls - self.matchConfidence = matchConfidence - self.name = name - self.id = id - } - - private enum CodingKeys: String, CodingKey { - case face = "Face" - case urls = "Urls" - case matchConfidence = "MatchConfidence" - case name = "Name" - case id = "Id" - } - } - public struct SearchFacesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FaceModelVersion", required: false, type: .string), AWSShapeMember(label: "FaceMatches", required: false, type: .list), AWSShapeMember(label: "SearchedFaceId", required: false, type: .string) ] + /// Version number of the face detection model associated with the input collection (CollectionId). + public let faceModelVersion: String? /// An array of faces that matched the input face, along with the confidence in the match. public let faceMatches: [FaceMatch]? /// ID of the face that was searched for matches in a collection. public let searchedFaceId: String? - public init(faceMatches: [FaceMatch]? = nil, searchedFaceId: String? = nil) { + public init(faceModelVersion: String? = nil, faceMatches: [FaceMatch]? = nil, searchedFaceId: String? = nil) { + self.faceModelVersion = faceModelVersion self.faceMatches = faceMatches self.searchedFaceId = searchedFaceId } private enum CodingKeys: String, CodingKey { + case faceModelVersion = "FaceModelVersion" case faceMatches = "FaceMatches" case searchedFaceId = "SearchedFaceId" } } public struct SearchFacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FaceMatchThreshold", required: false, type: .float), AWSShapeMember(label: "MaxFaces", required: false, type: .integer), AWSShapeMember(label: "CollectionId", required: true, type: .string), @@ -433,7 +488,7 @@ extension Rekognition { } public struct Mustache: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Confidence", required: false, type: .float), AWSShapeMember(label: "Value", required: false, type: .boolean) ] @@ -454,7 +509,7 @@ extension Rekognition { } public struct ModerationLabel: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Confidence", required: false, type: .float), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "ParentName", required: false, type: .string) @@ -479,27 +534,6 @@ extension Rekognition { } } - public struct EyeOpen: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Confidence", required: false, type: .float), - AWSShapeMember(label: "Value", required: false, type: .boolean) - ] - /// Level of confidence in the determination. - public let confidence: Float? - /// Boolean value that indicates whether the eyes on the face are open. - public let value: Bool? - - public init(confidence: Float? = nil, value: Bool? = nil) { - self.confidence = confidence - self.value = value - } - - private enum CodingKeys: String, CodingKey { - case confidence = "Confidence" - case value = "Value" - } - } - public enum Attribute: String, CustomStringConvertible, Codable { case `default` = "DEFAULT" case all = "ALL" @@ -507,11 +541,11 @@ extension Rekognition { } public struct DetectFacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Image", required: true, type: .structure), AWSShapeMember(label: "Attributes", required: false, type: .list) ] - /// The image in which you want to detect faces. You can specify a blob or an S3 object. + /// The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported. public let image: Image /// An array of facial attributes you want to be returned. This can be the default list of attributes or all attributes. If you don't specify a value for Attributes or if you specify ["DEFAULT"], the API returns the following subset of facial attributes: BoundingBox, Confidence, Pose, Quality and Landmarks. If you provide ["ALL"], all facial attributes are returned but the operation will take longer to complete. If you provide both, ["ALL", "DEFAULT"], the service uses a logical AND operator to determine which attributes to return (in this case, all attributes). public let attributes: [Attribute]? @@ -528,7 +562,7 @@ extension Rekognition { } public struct Beard: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Confidence", required: false, type: .float), AWSShapeMember(label: "Value", required: false, type: .boolean) ] @@ -548,108 +582,44 @@ extension Rekognition { } } - public struct Sunglasses: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Confidence", required: false, type: .float), - AWSShapeMember(label: "Value", required: false, type: .boolean) - ] - /// Level of confidence in the determination. - public let confidence: Float? - /// Boolean value that indicates whether the face is wearing sunglasses or not. - public let value: Bool? - - public init(confidence: Float? = nil, value: Bool? = nil) { - self.confidence = confidence - self.value = value - } - - private enum CodingKeys: String, CodingKey { - case confidence = "Confidence" - case value = "Value" - } - } - - public struct Image: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Bytes", required: false, type: .blob), - AWSShapeMember(label: "S3Object", required: false, type: .structure) - ] - /// Blob of image bytes up to 5 MBs. - public let bytes: Data? - /// Identifies an S3 object as the image source. - public let s3Object: S3Object? - - public init(bytes: Data? = nil, s3Object: S3Object? = nil) { - self.bytes = bytes - self.s3Object = s3Object - } - - private enum CodingKeys: String, CodingKey { - case bytes = "Bytes" - case s3Object = "S3Object" - } - } - - public struct AgeRange: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "High", required: false, type: .integer), - AWSShapeMember(label: "Low", required: false, type: .integer) - ] - /// The highest estimated age. - public let high: Int32? - /// The lowest estimated age. - public let low: Int32? - - public init(high: Int32? = nil, low: Int32? = nil) { - self.high = high - self.low = low - } - - private enum CodingKeys: String, CodingKey { - case high = "High" - case low = "Low" - } - } - - public struct Eyeglasses: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Confidence", required: false, type: .float), - AWSShapeMember(label: "Value", required: false, type: .boolean) - ] - /// Level of confidence in the determination. - public let confidence: Float? - /// Boolean value that indicates whether the face is wearing eye glasses or not. - public let value: Bool? - - public init(confidence: Float? = nil, value: Bool? = nil) { - self.confidence = confidence - self.value = value - } - - private enum CodingKeys: String, CodingKey { - case confidence = "Confidence" - case value = "Value" - } - } - - public struct DeleteCollectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CollectionId", required: true, type: .string) + public struct StartContentModerationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobTag", required: false, type: .string), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "MinConfidence", required: false, type: .float), + AWSShapeMember(label: "NotificationChannel", required: false, type: .structure), + AWSShapeMember(label: "Video", required: true, type: .structure) ] - /// ID of the collection to delete. - public let collectionId: String - - public init(collectionId: String) { - self.collectionId = collectionId + /// Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic. + public let jobTag: String? + /// Idempotent token used to identify the start request. If you use the same token with multiple StartContentModeration requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once. + public let clientRequestToken: String? + /// Specifies the minimum confidence that Amazon Rekognition must have in order to return a moderated content label. Confidence represents how certain Amazon Rekognition is that the moderated content is correctly identified. 0 is the lowest confidence. 100 is the highest confidence. Amazon Rekognition doesn't return any moderated content labels with a confidence level lower than this specified value. + public let minConfidence: Float? + /// The Amazon SNS topic ARN that you want Rekognition Video to publish the completion status of the content moderation analysis to. + public let notificationChannel: NotificationChannel? + /// The video in which you want to moderate content. The video must be stored in an Amazon S3 bucket. + public let video: Video + + public init(jobTag: String? = nil, clientRequestToken: String? = nil, minConfidence: Float? = nil, notificationChannel: NotificationChannel? = nil, video: Video) { + self.jobTag = jobTag + self.clientRequestToken = clientRequestToken + self.minConfidence = minConfidence + self.notificationChannel = notificationChannel + self.video = video } private enum CodingKeys: String, CodingKey { - case collectionId = "CollectionId" + case jobTag = "JobTag" + case clientRequestToken = "ClientRequestToken" + case minConfidence = "MinConfidence" + case notificationChannel = "NotificationChannel" + case video = "Video" } } public struct CreateCollectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CollectionId", required: true, type: .string) ] /// ID for the collection that you are creating. @@ -665,7 +635,7 @@ extension Rekognition { } public struct DetectLabelsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrientationCorrection", required: false, type: .enum), AWSShapeMember(label: "Labels", required: false, type: .list) ] @@ -685,85 +655,64 @@ extension Rekognition { } } - public struct ListFacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct ListStreamProcessorsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "CollectionId", required: true, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// If the previous response was incomplete (because there is more data to retrieve), Amazon Rekognition returns a pagination token in the response. You can use this pagination token to retrieve the next set of faces. + /// If the previous response was incomplete (because there are more stream processors to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of stream processors. public let nextToken: String? - /// ID of the collection from which to list the faces. - public let collectionId: String - /// Maximum number of faces to return. + /// Maximum number of stream processors you want Rekognition Video to return in the response. The default is 1000. public let maxResults: Int32? - public init(nextToken: String? = nil, collectionId: String, maxResults: Int32? = nil) { + public init(nextToken: String? = nil, maxResults: Int32? = nil) { self.nextToken = nextToken - self.collectionId = collectionId self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { case nextToken = "NextToken" - case collectionId = "CollectionId" case maxResults = "MaxResults" } } - public struct ComparedSourceImageFace: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Confidence", required: false, type: .float), - AWSShapeMember(label: "BoundingBox", required: false, type: .structure) + public struct ListFacesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FaceModelVersion", required: false, type: .string), + AWSShapeMember(label: "Faces", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// Confidence level that the selected bounding box contains a face. - public let confidence: Float? - /// Bounding box of the face. - public let boundingBox: BoundingBox? + /// Version number of the face detection model associated with the input collection (CollectionId). + public let faceModelVersion: String? + /// An array of Face objects. + public let faces: [Face]? + /// If the response is truncated, Amazon Rekognition returns this token that you can use in the subsequent request to retrieve the next set of faces. + public let nextToken: String? - public init(confidence: Float? = nil, boundingBox: BoundingBox? = nil) { - self.confidence = confidence - self.boundingBox = boundingBox - } - - private enum CodingKeys: String, CodingKey { - case confidence = "Confidence" - case boundingBox = "BoundingBox" - } - } - - public struct ListFacesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Faces", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - /// An array of Face objects. - public let faces: [Face]? - /// If the response is truncated, Amazon Rekognition returns this token that you can use in the subsequent request to retrieve the next set of faces. - public let nextToken: String? - - public init(faces: [Face]? = nil, nextToken: String? = nil) { + public init(faceModelVersion: String? = nil, faces: [Face]? = nil, nextToken: String? = nil) { + self.faceModelVersion = faceModelVersion self.faces = faces self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { + case faceModelVersion = "FaceModelVersion" case faces = "Faces" case nextToken = "NextToken" } } public struct Landmark: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "X", required: false, type: .float), AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Y", required: false, type: .float) ] - /// x-coordinate from the top left of the landmark expressed as the ration of the width of the image. For example, if the images is 700x200 and the x-coordinate of the landmark is at 350 pixels, this value is 0.5. + /// x-coordinate from the top left of the landmark expressed as the ratio of the width of the image. For example, if the images is 700x200 and the x-coordinate of the landmark is at 350 pixels, this value is 0.5. public let x: Float? /// Type of the landmark. public let `type`: LandmarkType? - /// y-coordinate from the top left of the landmark expressed as the ration of the height of the image. For example, if the images is 700x200 and the y-coordinate of the landmark is at 100 pixels, this value is 0.5. + /// y-coordinate from the top left of the landmark expressed as the ratio of the height of the image. For example, if the images is 700x200 and the y-coordinate of the landmark is at 100 pixels, this value is 0.5. public let y: Float? public init(x: Float? = nil, type: LandmarkType? = nil, y: Float? = nil) { @@ -780,31 +729,43 @@ extension Rekognition { } public struct SearchFacesByImageResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SearchedFaceConfidence", required: false, type: .float), + AWSShapeMember(label: "FaceModelVersion", required: false, type: .string), AWSShapeMember(label: "FaceMatches", required: false, type: .list), AWSShapeMember(label: "SearchedFaceBoundingBox", required: false, type: .structure) ] /// The level of confidence that the searchedFaceBoundingBox, contains a face. public let searchedFaceConfidence: Float? + /// Version number of the face detection model associated with the input collection (CollectionId). + public let faceModelVersion: String? /// An array of faces that match the input face, along with the confidence in the match. public let faceMatches: [FaceMatch]? /// The bounding box around the face in the input image that Amazon Rekognition used for the search. public let searchedFaceBoundingBox: BoundingBox? - public init(searchedFaceConfidence: Float? = nil, faceMatches: [FaceMatch]? = nil, searchedFaceBoundingBox: BoundingBox? = nil) { + public init(searchedFaceConfidence: Float? = nil, faceModelVersion: String? = nil, faceMatches: [FaceMatch]? = nil, searchedFaceBoundingBox: BoundingBox? = nil) { self.searchedFaceConfidence = searchedFaceConfidence + self.faceModelVersion = faceModelVersion self.faceMatches = faceMatches self.searchedFaceBoundingBox = searchedFaceBoundingBox } private enum CodingKeys: String, CodingKey { case searchedFaceConfidence = "SearchedFaceConfidence" + case faceModelVersion = "FaceModelVersion" case faceMatches = "FaceMatches" case searchedFaceBoundingBox = "SearchedFaceBoundingBox" } } + public enum VideoJobStatus: String, CustomStringConvertible, Codable { + case inProgress = "IN_PROGRESS" + case succeeded = "SUCCEEDED" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + public enum OrientationCorrection: String, CustomStringConvertible, Codable { case rotate0 = "ROTATE_0" case rotate90 = "ROTATE_90" @@ -814,7 +775,7 @@ extension Rekognition { } public struct Emotion: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Confidence", required: false, type: .float), AWSShapeMember(label: "Type", required: false, type: .enum) ] @@ -834,124 +795,1688 @@ extension Rekognition { } } - public struct DeleteFacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FaceIds", required: true, type: .list), - AWSShapeMember(label: "CollectionId", required: true, type: .string) + public struct GetCelebrityInfoRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", required: true, type: .string) ] - /// An array of face IDs to delete. - public let faceIds: [String] - /// Collection from which to remove the specific faces. - public let collectionId: String + /// The ID for the celebrity. You get the celebrity ID from a call to the operation, which recognizes celebrities in an image. + public let id: String - public init(faceIds: [String], collectionId: String) { - self.faceIds = faceIds + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "Id" + } + } + + public struct GetCelebrityInfoResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Urls", required: false, type: .list) + ] + /// The name of the celebrity. + public let name: String? + /// An array of URLs pointing to additional celebrity information. + public let urls: [String]? + + public init(name: String? = nil, urls: [String]? = nil) { + self.name = name + self.urls = urls + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case urls = "Urls" + } + } + + public struct ContentModerationDetection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Timestamp", required: false, type: .long), + AWSShapeMember(label: "ModerationLabel", required: false, type: .structure) + ] + /// Time, in milliseconds from the beginning of the video, that the moderation label was detected. + public let timestamp: Int64? + /// The moderation label detected by in the stored video. + public let moderationLabel: ModerationLabel? + + public init(timestamp: Int64? = nil, moderationLabel: ModerationLabel? = nil) { + self.timestamp = timestamp + self.moderationLabel = moderationLabel + } + + private enum CodingKeys: String, CodingKey { + case timestamp = "Timestamp" + case moderationLabel = "ModerationLabel" + } + } + + public struct ComparedFace: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BoundingBox", required: false, type: .structure), + AWSShapeMember(label: "Landmarks", required: false, type: .list), + AWSShapeMember(label: "Confidence", required: false, type: .float), + AWSShapeMember(label: "Pose", required: false, type: .structure), + AWSShapeMember(label: "Quality", required: false, type: .structure) + ] + /// Bounding box of the face. + public let boundingBox: BoundingBox? + /// An array of facial landmarks. + public let landmarks: [Landmark]? + /// Level of confidence that what the bounding box contains is a face. + public let confidence: Float? + /// Indicates the pose of the face as determined by its pitch, roll, and yaw. + public let pose: Pose? + /// Identifies face image brightness and sharpness. + public let quality: ImageQuality? + + public init(boundingBox: BoundingBox? = nil, landmarks: [Landmark]? = nil, confidence: Float? = nil, pose: Pose? = nil, quality: ImageQuality? = nil) { + self.boundingBox = boundingBox + self.landmarks = landmarks + self.confidence = confidence + self.pose = pose + self.quality = quality + } + + private enum CodingKeys: String, CodingKey { + case boundingBox = "BoundingBox" + case landmarks = "Landmarks" + case confidence = "Confidence" + case pose = "Pose" + case quality = "Quality" + } + } + + public struct CreateStreamProcessorResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StreamProcessorArn", required: false, type: .string) + ] + /// ARN for the newly create stream processor. + public let streamProcessorArn: String? + + public init(streamProcessorArn: String? = nil) { + self.streamProcessorArn = streamProcessorArn + } + + private enum CodingKeys: String, CodingKey { + case streamProcessorArn = "StreamProcessorArn" + } + } + + public struct FaceMatch: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Face", required: false, type: .structure), + AWSShapeMember(label: "Similarity", required: false, type: .float) + ] + /// Describes the face properties such as the bounding box, face ID, image ID of the source image, and external image ID that you assigned. + public let face: Face? + /// Confidence in the match of this face with the input face. + public let similarity: Float? + + public init(face: Face? = nil, similarity: Float? = nil) { + self.face = face + self.similarity = similarity + } + + private enum CodingKeys: String, CodingKey { + case face = "Face" + case similarity = "Similarity" + } + } + + public enum StreamProcessorStatus: String, CustomStringConvertible, Codable { + case stopped = "STOPPED" + case starting = "STARTING" + case running = "RUNNING" + case failed = "FAILED" + case stopping = "STOPPING" + public var description: String { return self.rawValue } + } + + public struct FaceSearchSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FaceMatchThreshold", required: false, type: .float), + AWSShapeMember(label: "CollectionId", required: false, type: .string) + ] + /// Minimum face match confidence score that must be met to return a result for a recognized face. Default is 70. 0 is the lowest confidence. 100 is the highest confidence. + public let faceMatchThreshold: Float? + /// The ID of a collection that contains faces that you want to search for. + public let collectionId: String? + + public init(faceMatchThreshold: Float? = nil, collectionId: String? = nil) { + self.faceMatchThreshold = faceMatchThreshold self.collectionId = collectionId } private enum CodingKeys: String, CodingKey { - case faceIds = "FaceIds" + case faceMatchThreshold = "FaceMatchThreshold" case collectionId = "CollectionId" } } - public struct DeleteFacesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DeletedFaces", required: false, type: .list) + public struct NotificationChannel: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RoleArn", required: true, type: .string), + AWSShapeMember(label: "SNSTopicArn", required: true, type: .string) ] - /// An array of strings (face IDs) of the faces that were deleted. - public let deletedFaces: [String]? + /// The ARN of an IAM role that gives Amazon Rekognition publishing permissions to the Amazon SNS topic. + public let roleArn: String + /// The Amazon SNS topic to which Amazon Rekognition to posts the completion status. + public let sNSTopicArn: String - public init(deletedFaces: [String]? = nil) { - self.deletedFaces = deletedFaces + public init(roleArn: String, sNSTopicArn: String) { + self.roleArn = roleArn + self.sNSTopicArn = sNSTopicArn } private enum CodingKeys: String, CodingKey { - case deletedFaces = "DeletedFaces" + case roleArn = "RoleArn" + case sNSTopicArn = "SNSTopicArn" } } - public struct GetCelebrityInfoRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Id", required: true, type: .string) + public struct DescribeStreamProcessorResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "CreationTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "Input", required: false, type: .structure), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "LastUpdateTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "Output", required: false, type: .structure), + AWSShapeMember(label: "Settings", required: false, type: .structure), + AWSShapeMember(label: "RoleArn", required: false, type: .string), + AWSShapeMember(label: "StatusMessage", required: false, type: .string), + AWSShapeMember(label: "StreamProcessorArn", required: false, type: .string) ] - /// The ID for the celebrity. You get the celebrity ID from a call to the operation, which recognizes celebrities in an image. - public let id: String + /// Current status of the stream processor. + public let status: StreamProcessorStatus? + /// Date and time the stream processor was created + public let creationTimestamp: TimeStamp? + /// Kinesis video stream that provides the source streaming video. + public let input: StreamProcessorInput? + /// Name of the stream processor. + public let name: String? + /// The time, in Unix format, the stream processor was last updated. For example, when the stream processor moves from a running state to a failed state, or when the user starts or stops the stream processor. + public let lastUpdateTimestamp: TimeStamp? + /// Kinesis data stream to which Rekognition Video puts the analysis results. + public let output: StreamProcessorOutput? + /// Face recognition input parameters that are being used by the stream processor. Includes the collection to use for face recognition and the face attributes to detect. + public let settings: StreamProcessorSettings? + /// ARN of the IAM role that allows access to the stream processor. + public let roleArn: String? + /// Detailed status message about the stream processor. + public let statusMessage: String? + /// ARN of the stream processor. + public let streamProcessorArn: String? + + public init(status: StreamProcessorStatus? = nil, creationTimestamp: TimeStamp? = nil, input: StreamProcessorInput? = nil, name: String? = nil, lastUpdateTimestamp: TimeStamp? = nil, output: StreamProcessorOutput? = nil, settings: StreamProcessorSettings? = nil, roleArn: String? = nil, statusMessage: String? = nil, streamProcessorArn: String? = nil) { + self.status = status + self.creationTimestamp = creationTimestamp + self.input = input + self.name = name + self.lastUpdateTimestamp = lastUpdateTimestamp + self.output = output + self.settings = settings + self.roleArn = roleArn + self.statusMessage = statusMessage + self.streamProcessorArn = streamProcessorArn + } - public init(id: String) { - self.id = id + private enum CodingKeys: String, CodingKey { + case status = "Status" + case creationTimestamp = "CreationTimestamp" + case input = "Input" + case name = "Name" + case lastUpdateTimestamp = "LastUpdateTimestamp" + case output = "Output" + case settings = "Settings" + case roleArn = "RoleArn" + case statusMessage = "StatusMessage" + case streamProcessorArn = "StreamProcessorArn" + } + } + + public struct GetLabelDetectionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Labels", required: false, type: .list), + AWSShapeMember(label: "JobStatus", required: false, type: .enum), + AWSShapeMember(label: "VideoMetadata", required: false, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StatusMessage", required: false, type: .string) + ] + /// An array of labels detected in the video. Each element contains the detected label and the time, in milliseconds from the start of the video, that the label was detected. + public let labels: [LabelDetection]? + /// The current status of the label detection job. + public let jobStatus: VideoJobStatus? + /// Information about a video that Rekognition Video analyzed. Videometadata is returned in every page of paginated responses from a Amazon Rekognition video operation. + public let videoMetadata: VideoMetadata? + /// If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of labels. + public let nextToken: String? + /// If the job fails, StatusMessage provides a descriptive error message. + public let statusMessage: String? + + public init(labels: [LabelDetection]? = nil, jobStatus: VideoJobStatus? = nil, videoMetadata: VideoMetadata? = nil, nextToken: String? = nil, statusMessage: String? = nil) { + self.labels = labels + self.jobStatus = jobStatus + self.videoMetadata = videoMetadata + self.nextToken = nextToken + self.statusMessage = statusMessage + } + + private enum CodingKeys: String, CodingKey { + case labels = "Labels" + case jobStatus = "JobStatus" + case videoMetadata = "VideoMetadata" + case nextToken = "NextToken" + case statusMessage = "StatusMessage" + } + } + + public struct DescribeStreamProcessorRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// Name of the stream processor for which you want information. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public enum CelebrityRecognitionSortBy: String, CustomStringConvertible, Codable { + case id = "ID" + case timestamp = "TIMESTAMP" + public var description: String { return self.rawValue } + } + + public enum PersonTrackingSortBy: String, CustomStringConvertible, Codable { + case index = "INDEX" + case timestamp = "TIMESTAMP" + public var description: String { return self.rawValue } + } + + public struct GetFaceSearchResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobStatus", required: false, type: .enum), + AWSShapeMember(label: "Persons", required: false, type: .list), + AWSShapeMember(label: "VideoMetadata", required: false, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StatusMessage", required: false, type: .string) + ] + /// The current status of the face search job. + public let jobStatus: VideoJobStatus? + /// An array of persons, , in the video whose face(s) match the face(s) in an Amazon Rekognition collection. It also includes time information for when persons are matched in the video. You specify the input collection in an initial call to StartFaceSearch. Each Persons element includes a time the person was matched, face match details (FaceMatches) for matching faces in the collection, and person information (Person) for the matched person. + public let persons: [PersonMatch]? + /// Information about a video that Amazon Rekognition analyzed. Videometadata is returned in every page of paginated responses from a Rekognition Video operation. + public let videoMetadata: VideoMetadata? + /// If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of search results. + public let nextToken: String? + /// If the job fails, StatusMessage provides a descriptive error message. + public let statusMessage: String? + + public init(jobStatus: VideoJobStatus? = nil, persons: [PersonMatch]? = nil, videoMetadata: VideoMetadata? = nil, nextToken: String? = nil, statusMessage: String? = nil) { + self.jobStatus = jobStatus + self.persons = persons + self.videoMetadata = videoMetadata + self.nextToken = nextToken + self.statusMessage = statusMessage + } + + private enum CodingKeys: String, CodingKey { + case jobStatus = "JobStatus" + case persons = "Persons" + case videoMetadata = "VideoMetadata" + case nextToken = "NextToken" + case statusMessage = "StatusMessage" + } + } + + public struct ListCollectionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Pagination token from the previous response. + public let nextToken: String? + /// Maximum number of collection IDs to return. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + + public struct StartLabelDetectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobTag", required: false, type: .string), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "MinConfidence", required: false, type: .float), + AWSShapeMember(label: "NotificationChannel", required: false, type: .structure), + AWSShapeMember(label: "Video", required: true, type: .structure) + ] + /// Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic. + public let jobTag: String? + /// Idempotent token used to identify the start request. If you use the same token with multiple StartLabelDetection requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once. + public let clientRequestToken: String? + /// Specifies the minimum confidence that Rekognition Video must have in order to return a detected label. Confidence represents how certain Amazon Rekognition is that a label is correctly identified.0 is the lowest confidence. 100 is the highest confidence. Rekognition Video doesn't return any labels with a confidence level lower than this specified value. If you don't specify MinConfidence, the operation returns labels with confidence values greater than or equal to 50 percent. + public let minConfidence: Float? + /// The Amazon SNS topic ARN you want Rekognition Video to publish the completion status of the label detection operation to. + public let notificationChannel: NotificationChannel? + /// The video in which you want to detect labels. The video must be stored in an Amazon S3 bucket. + public let video: Video + + public init(jobTag: String? = nil, clientRequestToken: String? = nil, minConfidence: Float? = nil, notificationChannel: NotificationChannel? = nil, video: Video) { + self.jobTag = jobTag + self.clientRequestToken = clientRequestToken + self.minConfidence = minConfidence + self.notificationChannel = notificationChannel + self.video = video + } + + private enum CodingKeys: String, CodingKey { + case jobTag = "JobTag" + case clientRequestToken = "ClientRequestToken" + case minConfidence = "MinConfidence" + case notificationChannel = "NotificationChannel" + case video = "Video" + } + } + + public struct GetFaceSearchRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortBy", required: false, type: .enum), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "JobId", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Sort to use for grouping faces in the response. Use TIMESTAMP to group faces by the time that they are recognized. Use INDEX to sort by recognized faces. + public let sortBy: FaceSearchSortBy? + /// If the previous response was incomplete (because there is more search results to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of search results. + public let nextToken: String? + /// The job identifer for the search request. You get the job identifier from an initial call to StartFaceSearch. + public let jobId: String + /// Maximum number of search results you want Rekognition Video to return in the response. The default is 1000. + public let maxResults: Int32? + + public init(sortBy: FaceSearchSortBy? = nil, nextToken: String? = nil, jobId: String, maxResults: Int32? = nil) { + self.sortBy = sortBy + self.nextToken = nextToken + self.jobId = jobId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case sortBy = "SortBy" + case nextToken = "NextToken" + case jobId = "JobId" + case maxResults = "MaxResults" + } + } + + public struct PersonDetection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Timestamp", required: false, type: .long), + AWSShapeMember(label: "Person", required: false, type: .structure) + ] + /// The time, in milliseconds from the start of the video, that the person was tracked. + public let timestamp: Int64? + /// Details about a person tracked in a video. + public let person: PersonDetail? + + public init(timestamp: Int64? = nil, person: PersonDetail? = nil) { + self.timestamp = timestamp + self.person = person + } + + private enum CodingKeys: String, CodingKey { + case timestamp = "Timestamp" + case person = "Person" + } + } + + public struct GetCelebrityRecognitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortBy", required: false, type: .enum), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "JobId", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Sort to use for celebrities returned in Celebrities field. Specify ID to sort by the celebrity identifier, specify TIMESTAMP to sort by the time the celebrity was recognized. + public let sortBy: CelebrityRecognitionSortBy? + /// If the previous response was incomplete (because there is more recognized celebrities to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of celebrities. + public let nextToken: String? + /// Job identifier for the required celebrity recognition analysis. You can get the job identifer from a call to StartCelebrityRecognition. + public let jobId: String + /// Maximum number of celebrities you want Rekognition Video to return in the response. The default is 1000. + public let maxResults: Int32? + + public init(sortBy: CelebrityRecognitionSortBy? = nil, nextToken: String? = nil, jobId: String, maxResults: Int32? = nil) { + self.sortBy = sortBy + self.nextToken = nextToken + self.jobId = jobId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case sortBy = "SortBy" + case nextToken = "NextToken" + case jobId = "JobId" + case maxResults = "MaxResults" + } + } + + public struct FaceRecord: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Face", required: false, type: .structure), + AWSShapeMember(label: "FaceDetail", required: false, type: .structure) + ] + /// Describes the face properties such as the bounding box, face ID, image ID of the input image, and external image ID that you assigned. + public let face: Face? + /// Structure containing attributes of the face that the algorithm detected. + public let faceDetail: FaceDetail? + + public init(face: Face? = nil, faceDetail: FaceDetail? = nil) { + self.face = face + self.faceDetail = faceDetail + } + + private enum CodingKeys: String, CodingKey { + case face = "Face" + case faceDetail = "FaceDetail" + } + } + + public struct CompareFacesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceImage", required: true, type: .structure), + AWSShapeMember(label: "TargetImage", required: true, type: .structure), + AWSShapeMember(label: "SimilarityThreshold", required: false, type: .float) + ] + /// The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported. + public let sourceImage: Image + /// The target image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported. + public let targetImage: Image + /// The minimum level of confidence in the face matches that a match must meet to be included in the FaceMatches array. + public let similarityThreshold: Float? + + public init(sourceImage: Image, targetImage: Image, similarityThreshold: Float? = nil) { + self.sourceImage = sourceImage + self.targetImage = targetImage + self.similarityThreshold = similarityThreshold + } + + private enum CodingKeys: String, CodingKey { + case sourceImage = "SourceImage" + case targetImage = "TargetImage" + case similarityThreshold = "SimilarityThreshold" + } + } + + public struct RecognizeCelebritiesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OrientationCorrection", required: false, type: .enum), + AWSShapeMember(label: "CelebrityFaces", required: false, type: .list), + AWSShapeMember(label: "UnrecognizedFaces", required: false, type: .list) + ] + /// The orientation of the input image (counterclockwise direction). If your application displays the image, you can use this value to correct the orientation. The bounding box coordinates returned in CelebrityFaces and UnrecognizedFaces represent face locations before the image orientation is corrected. If the input image is in .jpeg format, it might contain exchangeable image (Exif) metadata that includes the image's orientation. If so, and the Exif metadata for the input image populates the orientation field, the value of OrientationCorrection is null and the CelebrityFaces and UnrecognizedFaces bounding box coordinates represent face locations after Exif metadata is used to correct the image orientation. Images in .png format don't contain Exif metadata. + public let orientationCorrection: OrientationCorrection? + /// Details about each celebrity found in the image. Amazon Rekognition can detect a maximum of 15 celebrities in an image. + public let celebrityFaces: [Celebrity]? + /// Details about each unrecognized face in the image. + public let unrecognizedFaces: [ComparedFace]? + + public init(orientationCorrection: OrientationCorrection? = nil, celebrityFaces: [Celebrity]? = nil, unrecognizedFaces: [ComparedFace]? = nil) { + self.orientationCorrection = orientationCorrection + self.celebrityFaces = celebrityFaces + self.unrecognizedFaces = unrecognizedFaces + } + + private enum CodingKeys: String, CodingKey { + case orientationCorrection = "OrientationCorrection" + case celebrityFaces = "CelebrityFaces" + case unrecognizedFaces = "UnrecognizedFaces" + } + } + + public struct TextDetection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Geometry", required: false, type: .structure), + AWSShapeMember(label: "ParentId", required: false, type: .integer), + AWSShapeMember(label: "DetectedText", required: false, type: .string), + AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "Confidence", required: false, type: .float), + AWSShapeMember(label: "Id", required: false, type: .integer) + ] + /// The location of the detected text on the image. Includes an axis aligned coarse bounding box surrounding the text and a finer grain polygon for more accurate spatial information. + public let geometry: Geometry? + /// The Parent identifier for the detected text identified by the value of ID. If the type of detected text is LINE, the value of ParentId is Null. + public let parentId: Int32? + /// The word or line of text recognized by Amazon Rekognition. + public let detectedText: String? + /// The type of text that was detected. + public let `type`: TextTypes? + /// The confidence that Amazon Rekognition has in the accuracy of the detected text and the accuracy of the geometry points around the detected text. + public let confidence: Float? + /// The identifier for the detected text. The identifier is only unique for a single call to DetectText. + public let id: Int32? + + public init(geometry: Geometry? = nil, parentId: Int32? = nil, detectedText: String? = nil, type: TextTypes? = nil, confidence: Float? = nil, id: Int32? = nil) { + self.geometry = geometry + self.parentId = parentId + self.detectedText = detectedText + self.`type` = `type` + self.confidence = confidence + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case geometry = "Geometry" + case parentId = "ParentId" + case detectedText = "DetectedText" + case `type` = "Type" + case confidence = "Confidence" + case id = "Id" + } + } + + public struct MouthOpen: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Confidence", required: false, type: .float), + AWSShapeMember(label: "Value", required: false, type: .boolean) + ] + /// Level of confidence in the determination. + public let confidence: Float? + /// Boolean value that indicates whether the mouth on the face is open or not. + public let value: Bool? + + public init(confidence: Float? = nil, value: Bool? = nil) { + self.confidence = confidence + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case confidence = "Confidence" + case value = "Value" + } + } + + public struct CreateStreamProcessorRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Settings", required: true, type: .structure), + AWSShapeMember(label: "RoleArn", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Input", required: true, type: .structure), + AWSShapeMember(label: "Output", required: true, type: .structure) + ] + /// Face recognition input parameters to be used by the stream processor. Includes the collection to use for face recognition and the face attributes to detect. + public let settings: StreamProcessorSettings + /// ARN of the IAM role that allows access to the stream processor. + public let roleArn: String + /// An identifier you assign to the stream processor. You can use Name to manage the stream processor. For example, you can get the current status of the stream processor by calling . Name is idempotent. + public let name: String + /// Kinesis video stream stream that provides the source streaming video. If you are using the AWS CLI, the parameter name is StreamProcessorInput. + public let input: StreamProcessorInput + /// Kinesis data stream stream to which Rekognition Video puts the analysis results. If you are using the AWS CLI, the parameter name is StreamProcessorOutput. + public let output: StreamProcessorOutput + + public init(settings: StreamProcessorSettings, roleArn: String, name: String, input: StreamProcessorInput, output: StreamProcessorOutput) { + self.settings = settings + self.roleArn = roleArn + self.name = name + self.input = input + self.output = output + } + + private enum CodingKeys: String, CodingKey { + case settings = "Settings" + case roleArn = "RoleArn" + case name = "Name" + case input = "Input" + case output = "Output" + } + } + + public struct FaceDetection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Timestamp", required: false, type: .long), + AWSShapeMember(label: "Face", required: false, type: .structure) + ] + /// Time, in milliseconds from the start of the video, that the face was detected. + public let timestamp: Int64? + /// The face properties for the detected face. + public let face: FaceDetail? + + public init(timestamp: Int64? = nil, face: FaceDetail? = nil) { + self.timestamp = timestamp + self.face = face + } + + private enum CodingKeys: String, CodingKey { + case timestamp = "Timestamp" + case face = "Face" + } + } + + public struct StartCelebrityRecognitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobId", required: false, type: .string) + ] + /// The identifier for the celebrity recognition analysis job. Use JobId to identify the job in a subsequent call to GetCelebrityRecognition. + public let jobId: String? + + public init(jobId: String? = nil) { + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case jobId = "JobId" + } + } + + public struct StreamProcessorSettings: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FaceSearch", required: false, type: .structure) + ] + /// Face search settings to use on a streaming video. + public let faceSearch: FaceSearchSettings? + + public init(faceSearch: FaceSearchSettings? = nil) { + self.faceSearch = faceSearch + } + + private enum CodingKeys: String, CodingKey { + case faceSearch = "FaceSearch" + } + } + + public struct ImageQuality: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Sharpness", required: false, type: .float), + AWSShapeMember(label: "Brightness", required: false, type: .float) + ] + /// Value representing sharpness of the face. The service returns a value between 0 and 100 (inclusive). A higher value indicates a sharper face image. + public let sharpness: Float? + /// Value representing brightness of the face. The service returns a value between 0 and 100 (inclusive). A higher value indicates a brighter face image. + public let brightness: Float? + + public init(sharpness: Float? = nil, brightness: Float? = nil) { + self.sharpness = sharpness + self.brightness = brightness + } + + private enum CodingKeys: String, CodingKey { + case sharpness = "Sharpness" + case brightness = "Brightness" + } + } + + public struct DeleteStreamProcessorResponse: AWSShape { + + } + + public struct StartContentModerationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobId", required: false, type: .string) + ] + /// The identifier for the content moderation analysis job. Use JobId to identify the job in a subsequent call to GetContentModeration. + public let jobId: String? + + public init(jobId: String? = nil) { + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case jobId = "JobId" + } + } + + public struct IndexFacesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Image", required: true, type: .structure), + AWSShapeMember(label: "ExternalImageId", required: false, type: .string), + AWSShapeMember(label: "CollectionId", required: true, type: .string), + AWSShapeMember(label: "DetectionAttributes", required: false, type: .list) + ] + /// The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported. + public let image: Image + /// ID you want to assign to all the faces detected in the image. + public let externalImageId: String? + /// The ID of an existing collection to which you want to add the faces that are detected in the input images. + public let collectionId: String + /// An array of facial attributes that you want to be returned. This can be the default list of attributes or all attributes. If you don't specify a value for Attributes or if you specify ["DEFAULT"], the API returns the following subset of facial attributes: BoundingBox, Confidence, Pose, Quality and Landmarks. If you provide ["ALL"], all facial attributes are returned but the operation will take longer to complete. If you provide both, ["ALL", "DEFAULT"], the service uses a logical AND operator to determine which attributes to return (in this case, all attributes). + public let detectionAttributes: [Attribute]? + + public init(image: Image, externalImageId: String? = nil, collectionId: String, detectionAttributes: [Attribute]? = nil) { + self.image = image + self.externalImageId = externalImageId + self.collectionId = collectionId + self.detectionAttributes = detectionAttributes + } + + private enum CodingKeys: String, CodingKey { + case image = "Image" + case externalImageId = "ExternalImageId" + case collectionId = "CollectionId" + case detectionAttributes = "DetectionAttributes" + } + } + + public enum EmotionName: String, CustomStringConvertible, Codable { + case happy = "HAPPY" + case sad = "SAD" + case angry = "ANGRY" + case confused = "CONFUSED" + case disgusted = "DISGUSTED" + case surprised = "SURPRISED" + case calm = "CALM" + case unknown = "UNKNOWN" + public var description: String { return self.rawValue } + } + + public struct DetectTextRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Image", required: true, type: .structure) + ] + /// The input image as base64-encoded bytes or an Amazon S3 object. If you use the AWS CLI to call Amazon Rekognition operations, you can't pass image bytes. + public let image: Image + + public init(image: Image) { + self.image = image + } + + private enum CodingKeys: String, CodingKey { + case image = "Image" + } + } + + public struct KinesisDataStream: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string) + ] + /// ARN of the output Amazon Kinesis Data Streams stream. + public let arn: String? + + public init(arn: String? = nil) { + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + } + } + + public struct ListCollectionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FaceModelVersions", required: false, type: .list), + AWSShapeMember(label: "CollectionIds", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Version numbers of the face detection models associated with the collections in the array CollectionIds. For example, the value of FaceModelVersions[2] is the version number for the face detection model used by the collection in CollectionId[2]. + public let faceModelVersions: [String]? + /// An array of collection IDs. + public let collectionIds: [String]? + /// If the result is truncated, the response provides a NextToken that you can use in the subsequent request to fetch the next set of collection IDs. + public let nextToken: String? + + public init(faceModelVersions: [String]? = nil, collectionIds: [String]? = nil, nextToken: String? = nil) { + self.faceModelVersions = faceModelVersions + self.collectionIds = collectionIds + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case faceModelVersions = "FaceModelVersions" + case collectionIds = "CollectionIds" + case nextToken = "NextToken" + } + } + + public struct StartFaceDetectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobTag", required: false, type: .string), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "FaceAttributes", required: false, type: .enum), + AWSShapeMember(label: "NotificationChannel", required: false, type: .structure), + AWSShapeMember(label: "Video", required: true, type: .structure) + ] + /// Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic. + public let jobTag: String? + /// Idempotent token used to identify the start request. If you use the same token with multiple StartFaceDetection requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once. + public let clientRequestToken: String? + /// The face attributes you want returned. DEFAULT - The following subset of facial attributes are returned: BoundingBox, Confidence, Pose, Quality and Landmarks. ALL - All facial attributes are returned. + public let faceAttributes: FaceAttributes? + /// The ARN of the Amazon SNS topic to which you want Rekognition Video to publish the completion status of the face detection operation. + public let notificationChannel: NotificationChannel? + /// The video in which you want to detect faces. The video must be stored in an Amazon S3 bucket. + public let video: Video + + public init(jobTag: String? = nil, clientRequestToken: String? = nil, faceAttributes: FaceAttributes? = nil, notificationChannel: NotificationChannel? = nil, video: Video) { + self.jobTag = jobTag + self.clientRequestToken = clientRequestToken + self.faceAttributes = faceAttributes + self.notificationChannel = notificationChannel + self.video = video + } + + private enum CodingKeys: String, CodingKey { + case jobTag = "JobTag" + case clientRequestToken = "ClientRequestToken" + case faceAttributes = "FaceAttributes" + case notificationChannel = "NotificationChannel" + case video = "Video" + } + } + + public struct StopStreamProcessorRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The name of a stream processor created by . + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct GetCelebrityRecognitionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StatusMessage", required: false, type: .string), + AWSShapeMember(label: "JobStatus", required: false, type: .enum), + AWSShapeMember(label: "VideoMetadata", required: false, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Celebrities", required: false, type: .list) + ] + /// If the job fails, StatusMessage provides a descriptive error message. + public let statusMessage: String? + /// The current status of the celebrity recognition job. + public let jobStatus: VideoJobStatus? + /// Information about a video that Rekognition Video analyzed. Videometadata is returned in every page of paginated responses from a Rekognition Video operation. + public let videoMetadata: VideoMetadata? + /// If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of celebrities. + public let nextToken: String? + /// Array of celebrities recognized in the video. + public let celebrities: [CelebrityRecognition]? + + public init(statusMessage: String? = nil, jobStatus: VideoJobStatus? = nil, videoMetadata: VideoMetadata? = nil, nextToken: String? = nil, celebrities: [CelebrityRecognition]? = nil) { + self.statusMessage = statusMessage + self.jobStatus = jobStatus + self.videoMetadata = videoMetadata + self.nextToken = nextToken + self.celebrities = celebrities + } + + private enum CodingKeys: String, CodingKey { + case statusMessage = "StatusMessage" + case jobStatus = "JobStatus" + case videoMetadata = "VideoMetadata" + case nextToken = "NextToken" + case celebrities = "Celebrities" + } + } + + public struct PersonMatch: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Timestamp", required: false, type: .long), + AWSShapeMember(label: "Person", required: false, type: .structure), + AWSShapeMember(label: "FaceMatches", required: false, type: .list) + ] + /// The time, in milliseconds from the beginning of the video, that the person was matched in the video. + public let timestamp: Int64? + /// Information about the matched person. + public let person: PersonDetail? + /// Information about the faces in the input collection that match the face of a person in the video. + public let faceMatches: [FaceMatch]? + + public init(timestamp: Int64? = nil, person: PersonDetail? = nil, faceMatches: [FaceMatch]? = nil) { + self.timestamp = timestamp + self.person = person + self.faceMatches = faceMatches + } + + private enum CodingKeys: String, CodingKey { + case timestamp = "Timestamp" + case person = "Person" + case faceMatches = "FaceMatches" + } + } + + public enum FaceAttributes: String, CustomStringConvertible, Codable { + case `default` = "DEFAULT" + case all = "ALL" + public var description: String { return self.rawValue } + } + + public struct DetectModerationLabelsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ModerationLabels", required: false, type: .list) + ] + /// Array of detected Moderation labels and the time, in millseconds from the start of the video, they were detected. + public let moderationLabels: [ModerationLabel]? + + public init(moderationLabels: [ModerationLabel]? = nil) { + self.moderationLabels = moderationLabels + } + + private enum CodingKeys: String, CodingKey { + case moderationLabels = "ModerationLabels" + } + } + + public struct DeleteStreamProcessorRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The name of the stream processor you want to delete. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct StartCelebrityRecognitionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobTag", required: false, type: .string), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "NotificationChannel", required: false, type: .structure), + AWSShapeMember(label: "Video", required: true, type: .structure) + ] + /// Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic. + public let jobTag: String? + /// Idempotent token used to identify the start request. If you use the same token with multiple StartCelebrityRecognition requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once. + public let clientRequestToken: String? + /// The Amazon SNS topic ARN that you want Rekognition Video to publish the completion status of the celebrity recognition analysis to. + public let notificationChannel: NotificationChannel? + /// The video in which you want to recognize celebrities. The video must be stored in an Amazon S3 bucket. + public let video: Video + + public init(jobTag: String? = nil, clientRequestToken: String? = nil, notificationChannel: NotificationChannel? = nil, video: Video) { + self.jobTag = jobTag + self.clientRequestToken = clientRequestToken + self.notificationChannel = notificationChannel + self.video = video + } + + private enum CodingKeys: String, CodingKey { + case jobTag = "JobTag" + case clientRequestToken = "ClientRequestToken" + case notificationChannel = "NotificationChannel" + case video = "Video" + } + } + + public struct StreamProcessorOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KinesisDataStream", required: false, type: .structure) + ] + /// The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results. + public let kinesisDataStream: KinesisDataStream? + + public init(kinesisDataStream: KinesisDataStream? = nil) { + self.kinesisDataStream = kinesisDataStream + } + + private enum CodingKeys: String, CodingKey { + case kinesisDataStream = "KinesisDataStream" + } + } + + public struct Geometry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BoundingBox", required: false, type: .structure), + AWSShapeMember(label: "Polygon", required: false, type: .list) + ] + /// An axis-aligned coarse representation of the detected text's location on the image. + public let boundingBox: BoundingBox? + /// Within the bounding box, a fine-grained polygon around the detected text. + public let polygon: [Point]? + + public init(boundingBox: BoundingBox? = nil, polygon: [Point]? = nil) { + self.boundingBox = boundingBox + self.polygon = polygon + } + + private enum CodingKeys: String, CodingKey { + case boundingBox = "BoundingBox" + case polygon = "Polygon" + } + } + + public struct Celebrity: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Face", required: false, type: .structure), + AWSShapeMember(label: "Urls", required: false, type: .list), + AWSShapeMember(label: "MatchConfidence", required: false, type: .float), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// Provides information about the celebrity's face, such as its location on the image. + public let face: ComparedFace? + /// An array of URLs pointing to additional information about the celebrity. If there is no additional information about the celebrity, this list is empty. + public let urls: [String]? + /// The confidence, in percentage, that Rekognition has that the recognized face is the celebrity. + public let matchConfidence: Float? + /// The name of the celebrity. + public let name: String? + /// A unique identifier for the celebrity. + public let id: String? + + public init(face: ComparedFace? = nil, urls: [String]? = nil, matchConfidence: Float? = nil, name: String? = nil, id: String? = nil) { + self.face = face + self.urls = urls + self.matchConfidence = matchConfidence + self.name = name + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case face = "Face" + case urls = "Urls" + case matchConfidence = "MatchConfidence" + case name = "Name" + case id = "Id" + } + } + + public struct GetPersonTrackingResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobStatus", required: false, type: .enum), + AWSShapeMember(label: "Persons", required: false, type: .list), + AWSShapeMember(label: "VideoMetadata", required: false, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StatusMessage", required: false, type: .string) + ] + /// The current status of the person tracking job. + public let jobStatus: VideoJobStatus? + /// An array of the persons detected in the video and the times they are tracked throughout the video. An array element will exist for each time the person is tracked. + public let persons: [PersonDetection]? + /// Information about a video that Rekognition Video analyzed. Videometadata is returned in every page of paginated responses from a Rekognition Video operation. + public let videoMetadata: VideoMetadata? + /// If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of persons. + public let nextToken: String? + /// If the job fails, StatusMessage provides a descriptive error message. + public let statusMessage: String? + + public init(jobStatus: VideoJobStatus? = nil, persons: [PersonDetection]? = nil, videoMetadata: VideoMetadata? = nil, nextToken: String? = nil, statusMessage: String? = nil) { + self.jobStatus = jobStatus + self.persons = persons + self.videoMetadata = videoMetadata + self.nextToken = nextToken + self.statusMessage = statusMessage + } + + private enum CodingKeys: String, CodingKey { + case jobStatus = "JobStatus" + case persons = "Persons" + case videoMetadata = "VideoMetadata" + case nextToken = "NextToken" + case statusMessage = "StatusMessage" + } + } + + public struct GetFaceDetectionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StatusMessage", required: false, type: .string), + AWSShapeMember(label: "JobStatus", required: false, type: .enum), + AWSShapeMember(label: "Faces", required: false, type: .list), + AWSShapeMember(label: "VideoMetadata", required: false, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// If the job fails, StatusMessage provides a descriptive error message. + public let statusMessage: String? + /// The current status of the face detection job. + public let jobStatus: VideoJobStatus? + /// An array of faces detected in the video. Each element contains a detected face's details and the time, in milliseconds from the start of the video, the face was detected. + public let faces: [FaceDetection]? + /// Information about a video that Rekognition Video analyzed. Videometadata is returned in every page of paginated responses from a Amazon Rekognition video operation. + public let videoMetadata: VideoMetadata? + /// If the response is truncated, Amazon Rekognition returns this token that you can use in the subsequent request to retrieve the next set of faces. + public let nextToken: String? + + public init(statusMessage: String? = nil, jobStatus: VideoJobStatus? = nil, faces: [FaceDetection]? = nil, videoMetadata: VideoMetadata? = nil, nextToken: String? = nil) { + self.statusMessage = statusMessage + self.jobStatus = jobStatus + self.faces = faces + self.videoMetadata = videoMetadata + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case statusMessage = "StatusMessage" + case jobStatus = "JobStatus" + case faces = "Faces" + case videoMetadata = "VideoMetadata" + case nextToken = "NextToken" + } + } + + public struct Point: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "X", required: false, type: .float), + AWSShapeMember(label: "Y", required: false, type: .float) + ] + /// The value of the X coordinate for a point on a Polygon. + public let x: Float? + /// The value of the Y coordinate for a point on a Polygon. + public let y: Float? + + public init(x: Float? = nil, y: Float? = nil) { + self.x = x + self.y = y + } + + private enum CodingKeys: String, CodingKey { + case x = "X" + case y = "Y" + } + } + + public struct ListStreamProcessorsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StreamProcessors", required: false, type: .list) + ] + /// If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of stream processors. + public let nextToken: String? + /// List of stream processors that you have created. + public let streamProcessors: [StreamProcessor]? + + public init(nextToken: String? = nil, streamProcessors: [StreamProcessor]? = nil) { + self.nextToken = nextToken + self.streamProcessors = streamProcessors + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case streamProcessors = "StreamProcessors" + } + } + + public struct EyeOpen: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Confidence", required: false, type: .float), + AWSShapeMember(label: "Value", required: false, type: .boolean) + ] + /// Level of confidence in the determination. + public let confidence: Float? + /// Boolean value that indicates whether the eyes on the face are open. + public let value: Bool? + + public init(confidence: Float? = nil, value: Bool? = nil) { + self.confidence = confidence + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case confidence = "Confidence" + case value = "Value" + } + } + + public struct StartStreamProcessorRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The name of the stream processor to start processing. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct GetLabelDetectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortBy", required: false, type: .enum), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "JobId", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Sort to use for elements in the Labels array. Use TIMESTAMP to sort array elements by the time labels are detected. Use NAME to alphabetically group elements for a label together. Within each label group, the array element are sorted by detection confidence. The default sort is by TIMESTAMP. + public let sortBy: LabelDetectionSortBy? + /// If the previous response was incomplete (because there are more labels to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of labels. + public let nextToken: String? + /// Job identifier for the label detection operation for which you want results returned. You get the job identifer from an initial call to StartlabelDetection. + public let jobId: String + /// Maximum number of labels you want Amazon Rekognition to return in the response. The default is 1000. + public let maxResults: Int32? + + public init(sortBy: LabelDetectionSortBy? = nil, nextToken: String? = nil, jobId: String, maxResults: Int32? = nil) { + self.sortBy = sortBy + self.nextToken = nextToken + self.jobId = jobId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case sortBy = "SortBy" + case nextToken = "NextToken" + case jobId = "JobId" + case maxResults = "MaxResults" + } + } + + public struct StartPersonTrackingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobTag", required: false, type: .string), + AWSShapeMember(label: "ClientRequestToken", required: false, type: .string), + AWSShapeMember(label: "NotificationChannel", required: false, type: .structure), + AWSShapeMember(label: "Video", required: true, type: .structure) + ] + /// Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic. + public let jobTag: String? + /// Idempotent token used to identify the start request. If you use the same token with multiple StartPersonTracking requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once. + public let clientRequestToken: String? + /// The Amazon SNS topic ARN you want Rekognition Video to publish the completion status of the people detection operation to. + public let notificationChannel: NotificationChannel? + /// The video in which you want to detect people. The video must be stored in an Amazon S3 bucket. + public let video: Video + + public init(jobTag: String? = nil, clientRequestToken: String? = nil, notificationChannel: NotificationChannel? = nil, video: Video) { + self.jobTag = jobTag + self.clientRequestToken = clientRequestToken + self.notificationChannel = notificationChannel + self.video = video + } + + private enum CodingKeys: String, CodingKey { + case jobTag = "JobTag" + case clientRequestToken = "ClientRequestToken" + case notificationChannel = "NotificationChannel" + case video = "Video" + } + } + + public struct GetFaceDetectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "JobId", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// If the previous response was incomplete (because there are more faces to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of faces. + public let nextToken: String? + /// Unique identifier for the face detection job. The JobId is returned from StartFaceDetection. + public let jobId: String + /// Maximum number of detected faces to return. The default is 1000. + public let maxResults: Int32? + + public init(nextToken: String? = nil, jobId: String, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.jobId = jobId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case jobId = "JobId" + case maxResults = "MaxResults" + } + } + + public enum ContentModerationSortBy: String, CustomStringConvertible, Codable { + case name = "NAME" + case timestamp = "TIMESTAMP" + public var description: String { return self.rawValue } + } + + public struct StartStreamProcessorResponse: AWSShape { + + } + + public struct StartLabelDetectionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobId", required: false, type: .string) + ] + /// The identifier for the label detection job. Use JobId to identify the job in a subsequent call to GetLabelDetection. + public let jobId: String? + + public init(jobId: String? = nil) { + self.jobId = jobId + } + + private enum CodingKeys: String, CodingKey { + case jobId = "JobId" + } + } + + public struct CelebrityRecognition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Timestamp", required: false, type: .long), + AWSShapeMember(label: "Celebrity", required: false, type: .structure) + ] + /// The time, in milliseconds from the start of the video, that the celebrity was recognized. + public let timestamp: Int64? + /// Information about a recognized celebrity. + public let celebrity: CelebrityDetail? + + public init(timestamp: Int64? = nil, celebrity: CelebrityDetail? = nil) { + self.timestamp = timestamp + self.celebrity = celebrity + } + + private enum CodingKeys: String, CodingKey { + case timestamp = "Timestamp" + case celebrity = "Celebrity" + } + } + + public struct Sunglasses: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Confidence", required: false, type: .float), + AWSShapeMember(label: "Value", required: false, type: .boolean) + ] + /// Level of confidence in the determination. + public let confidence: Float? + /// Boolean value that indicates whether the face is wearing sunglasses or not. + public let value: Bool? + + public init(confidence: Float? = nil, value: Bool? = nil) { + self.confidence = confidence + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case confidence = "Confidence" + case value = "Value" + } + } + + public struct Image: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Bytes", required: false, type: .blob), + AWSShapeMember(label: "S3Object", required: false, type: .structure) + ] + /// Blob of image bytes up to 5 MBs. + public let bytes: Data? + /// Identifies an S3 object as the image source. + public let s3Object: S3Object? + + public init(bytes: Data? = nil, s3Object: S3Object? = nil) { + self.bytes = bytes + self.s3Object = s3Object + } + + private enum CodingKeys: String, CodingKey { + case bytes = "Bytes" + case s3Object = "S3Object" + } + } + + public struct LabelDetection: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Timestamp", required: false, type: .long), + AWSShapeMember(label: "Label", required: false, type: .structure) + ] + /// Time, in milliseconds from the start of the video, that the label was detected. + public let timestamp: Int64? + /// Details about the detected label. + public let label: Label? + + public init(timestamp: Int64? = nil, label: Label? = nil) { + self.timestamp = timestamp + self.label = label + } + + private enum CodingKeys: String, CodingKey { + case timestamp = "Timestamp" + case label = "Label" + } + } + + public struct AgeRange: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "High", required: false, type: .integer), + AWSShapeMember(label: "Low", required: false, type: .integer) + ] + /// The highest estimated age. + public let high: Int32? + /// The lowest estimated age. + public let low: Int32? + + public init(high: Int32? = nil, low: Int32? = nil) { + self.high = high + self.low = low + } + + private enum CodingKeys: String, CodingKey { + case high = "High" + case low = "Low" + } + } + + public struct Eyeglasses: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Confidence", required: false, type: .float), + AWSShapeMember(label: "Value", required: false, type: .boolean) + ] + /// Level of confidence in the determination. + public let confidence: Float? + /// Boolean value that indicates whether the face is wearing eye glasses or not. + public let value: Bool? + + public init(confidence: Float? = nil, value: Bool? = nil) { + self.confidence = confidence + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case confidence = "Confidence" + case value = "Value" + } + } + + public struct DeleteCollectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CollectionId", required: true, type: .string) + ] + /// ID of the collection to delete. + public let collectionId: String + + public init(collectionId: String) { + self.collectionId = collectionId + } + + private enum CodingKeys: String, CodingKey { + case collectionId = "CollectionId" + } + } + + public struct ListFacesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "CollectionId", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// If the previous response was incomplete (because there is more data to retrieve), Amazon Rekognition returns a pagination token in the response. You can use this pagination token to retrieve the next set of faces. + public let nextToken: String? + /// ID of the collection from which to list the faces. + public let collectionId: String + /// Maximum number of faces to return. + public let maxResults: Int32? + + public init(nextToken: String? = nil, collectionId: String, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.collectionId = collectionId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case collectionId = "CollectionId" + case maxResults = "MaxResults" + } + } + + public struct ComparedSourceImageFace: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Confidence", required: false, type: .float), + AWSShapeMember(label: "BoundingBox", required: false, type: .structure) + ] + /// Confidence level that the selected bounding box contains a face. + public let confidence: Float? + /// Bounding box of the face. + public let boundingBox: BoundingBox? + + public init(confidence: Float? = nil, boundingBox: BoundingBox? = nil) { + self.confidence = confidence + self.boundingBox = boundingBox + } + + private enum CodingKeys: String, CodingKey { + case confidence = "Confidence" + case boundingBox = "BoundingBox" + } + } + + public struct VideoMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Format", required: false, type: .string), + AWSShapeMember(label: "Codec", required: false, type: .string), + AWSShapeMember(label: "DurationMillis", required: false, type: .long), + AWSShapeMember(label: "FrameHeight", required: false, type: .long), + AWSShapeMember(label: "FrameWidth", required: false, type: .long), + AWSShapeMember(label: "FrameRate", required: false, type: .float) + ] + /// Format of the analyzed video. Possible values are MP4, MOV and AVI. + public let format: String? + /// Type of compression used in the analyzed video. + public let codec: String? + /// Length of the video in milliseconds. + public let durationMillis: Int64? + /// Vertical pixel dimension of the video. + public let frameHeight: Int64? + /// Horizontal pixel dimension of the video. + public let frameWidth: Int64? + /// Number of frames per second in the video. + public let frameRate: Float? + + public init(format: String? = nil, codec: String? = nil, durationMillis: Int64? = nil, frameHeight: Int64? = nil, frameWidth: Int64? = nil, frameRate: Float? = nil) { + self.format = format + self.codec = codec + self.durationMillis = durationMillis + self.frameHeight = frameHeight + self.frameWidth = frameWidth + self.frameRate = frameRate + } + + private enum CodingKeys: String, CodingKey { + case format = "Format" + case codec = "Codec" + case durationMillis = "DurationMillis" + case frameHeight = "FrameHeight" + case frameWidth = "FrameWidth" + case frameRate = "FrameRate" + } + } + + public struct DeleteFacesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FaceIds", required: true, type: .list), + AWSShapeMember(label: "CollectionId", required: true, type: .string) + ] + /// An array of face IDs to delete. + public let faceIds: [String] + /// Collection from which to remove the specific faces. + public let collectionId: String + + public init(faceIds: [String], collectionId: String) { + self.faceIds = faceIds + self.collectionId = collectionId } private enum CodingKeys: String, CodingKey { - case id = "Id" + case faceIds = "FaceIds" + case collectionId = "CollectionId" } } - public struct GetCelebrityInfoResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "Urls", required: false, type: .list) + public struct DeleteFacesResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DeletedFaces", required: false, type: .list) ] - /// The name of the celebrity. - public let name: String? - /// An array of URLs pointing to additional celebrity information. - public let urls: [String]? + /// An array of strings (face IDs) of the faces that were deleted. + public let deletedFaces: [String]? - public init(name: String? = nil, urls: [String]? = nil) { - self.name = name - self.urls = urls + public init(deletedFaces: [String]? = nil) { + self.deletedFaces = deletedFaces } private enum CodingKeys: String, CodingKey { - case name = "Name" - case urls = "Urls" + case deletedFaces = "DeletedFaces" } } - public struct ComparedFace: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "BoundingBox", required: false, type: .structure), - AWSShapeMember(label: "Landmarks", required: false, type: .list), - AWSShapeMember(label: "Confidence", required: false, type: .float), - AWSShapeMember(label: "Pose", required: false, type: .structure), - AWSShapeMember(label: "Quality", required: false, type: .structure) + public struct GetContentModerationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortBy", required: false, type: .enum), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "JobId", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// Bounding box of the face. - public let boundingBox: BoundingBox? - /// An array of facial landmarks. - public let landmarks: [Landmark]? - /// Level of confidence that what the bounding box contains is a face. - public let confidence: Float? - /// Indicates the pose of the face as determined by its pitch, roll, and yaw. - public let pose: Pose? - /// Identifies face image brightness and sharpness. - public let quality: ImageQuality? + /// Sort to use for elements in the ModerationLabelDetections array. Use TIMESTAMP to sort array elements by the time labels are detected. Use NAME to alphabetically group elements for a label together. Within each label group, the array element are sorted by detection confidence. The default sort is by TIMESTAMP. + public let sortBy: ContentModerationSortBy? + /// If the previous response was incomplete (because there is more data to retrieve), Amazon Rekognition returns a pagination token in the response. You can use this pagination token to retrieve the next set of content moderation labels. + public let nextToken: String? + /// The identifier for the content moderation job. Use JobId to identify the job in a subsequent call to GetContentModeration. + public let jobId: String + /// Maximum number of content moderation labels to return. The default is 1000. + public let maxResults: Int32? - public init(boundingBox: BoundingBox? = nil, landmarks: [Landmark]? = nil, confidence: Float? = nil, pose: Pose? = nil, quality: ImageQuality? = nil) { - self.boundingBox = boundingBox - self.landmarks = landmarks - self.confidence = confidence - self.pose = pose - self.quality = quality + public init(sortBy: ContentModerationSortBy? = nil, nextToken: String? = nil, jobId: String, maxResults: Int32? = nil) { + self.sortBy = sortBy + self.nextToken = nextToken + self.jobId = jobId + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case boundingBox = "BoundingBox" - case landmarks = "Landmarks" - case confidence = "Confidence" - case pose = "Pose" - case quality = "Quality" + case sortBy = "SortBy" + case nextToken = "NextToken" + case jobId = "JobId" + case maxResults = "MaxResults" } } + public enum TextTypes: String, CustomStringConvertible, Codable { + case line = "LINE" + case word = "WORD" + public var description: String { return self.rawValue } + } + public struct SearchFacesByImageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Image", required: true, type: .structure), AWSShapeMember(label: "FaceMatchThreshold", required: false, type: .float), AWSShapeMember(label: "MaxFaces", required: false, type: .integer), AWSShapeMember(label: "CollectionId", required: true, type: .string) ] - /// The input image as bytes or an S3 object. + /// The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported. public let image: Image /// (Optional) Specifies the minimum confidence in the face match to return. For example, don't return any matches where confidence in matches is less than 70%. public let faceMatchThreshold: Float? @@ -975,50 +2500,60 @@ extension Rekognition { } } - public struct FaceMatch: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Face", required: false, type: .structure), - AWSShapeMember(label: "Similarity", required: false, type: .float) + public struct StartPersonTrackingResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobId", required: false, type: .string) ] - /// Describes the face properties such as the bounding box, face ID, image ID of the source image, and external image ID that you assigned. - public let face: Face? - /// Confidence in the match of this face with the input face. - public let similarity: Float? + /// The identifier for the person detection job. Use JobId to identify the job in a subsequent call to GetPersonTracking. + public let jobId: String? - public init(face: Face? = nil, similarity: Float? = nil) { - self.face = face - self.similarity = similarity + public init(jobId: String? = nil) { + self.jobId = jobId } private enum CodingKeys: String, CodingKey { - case face = "Face" - case similarity = "Similarity" + case jobId = "JobId" } } - public struct DetectModerationLabelsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Image", required: true, type: .structure), - AWSShapeMember(label: "MinConfidence", required: false, type: .float) + public struct GetContentModerationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobStatus", required: false, type: .enum), + AWSShapeMember(label: "ModerationLabels", required: false, type: .list), + AWSShapeMember(label: "VideoMetadata", required: false, type: .structure), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "StatusMessage", required: false, type: .string) ] - /// The input image as bytes or an S3 object. - public let image: Image - /// Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn't return any labels with a confidence level lower than this specified value. If you don't specify MinConfidence, the operation returns labels with confidence values greater than or equal to 50 percent. - public let minConfidence: Float? + /// The current status of the content moderation job. + public let jobStatus: VideoJobStatus? + /// The detected moderation labels and the time(s) they were detected. + public let moderationLabels: [ContentModerationDetection]? + /// Information about a video that Amazon Rekognition analyzed. Videometadata is returned in every page of paginated responses from GetContentModeration. + public let videoMetadata: VideoMetadata? + /// If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of moderation labels. + public let nextToken: String? + /// If the job fails, StatusMessage provides a descriptive error message. + public let statusMessage: String? - public init(image: Image, minConfidence: Float? = nil) { - self.image = image - self.minConfidence = minConfidence + public init(jobStatus: VideoJobStatus? = nil, moderationLabels: [ContentModerationDetection]? = nil, videoMetadata: VideoMetadata? = nil, nextToken: String? = nil, statusMessage: String? = nil) { + self.jobStatus = jobStatus + self.moderationLabels = moderationLabels + self.videoMetadata = videoMetadata + self.nextToken = nextToken + self.statusMessage = statusMessage } private enum CodingKeys: String, CodingKey { - case image = "Image" - case minConfidence = "MinConfidence" + case jobStatus = "JobStatus" + case moderationLabels = "ModerationLabels" + case videoMetadata = "VideoMetadata" + case nextToken = "NextToken" + case statusMessage = "StatusMessage" } } public struct Label: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Confidence", required: false, type: .float), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -1038,34 +2573,34 @@ extension Rekognition { } } - public struct ListCollectionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) + public struct DetectModerationLabelsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Image", required: true, type: .structure), + AWSShapeMember(label: "MinConfidence", required: false, type: .float) ] - /// Pagination token from the previous response. - public let nextToken: String? - /// Maximum number of collection IDs to return. - public let maxResults: Int32? + /// The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported. + public let image: Image + /// Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn't return any labels with a confidence level lower than this specified value. If you don't specify MinConfidence, the operation returns labels with confidence values greater than or equal to 50 percent. + public let minConfidence: Float? - public init(nextToken: String? = nil, maxResults: Int32? = nil) { - self.nextToken = nextToken - self.maxResults = maxResults + public init(image: Image, minConfidence: Float? = nil) { + self.image = image + self.minConfidence = minConfidence } private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case maxResults = "MaxResults" + case image = "Image" + case minConfidence = "MinConfidence" } } public struct DetectLabelsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Image", required: true, type: .structure), AWSShapeMember(label: "MaxLabels", required: false, type: .integer), AWSShapeMember(label: "MinConfidence", required: false, type: .float) ] - /// The input image. You can provide a blob of image bytes or an S3 object. + /// The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported. public let image: Image /// Maximum number of labels you want the service to return in the response. The service returns the specified number of highest confidence labels. public let maxLabels: Int32? @@ -1085,56 +2620,119 @@ extension Rekognition { } } + public struct Video: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3Object", required: false, type: .structure) + ] + /// The Amazon S3 bucket name and file name for the video. + public let s3Object: S3Object? + + public init(s3Object: S3Object? = nil) { + self.s3Object = s3Object + } + + private enum CodingKeys: String, CodingKey { + case s3Object = "S3Object" + } + } + public struct CreateCollectionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FaceModelVersion", required: false, type: .string), AWSShapeMember(label: "CollectionArn", required: false, type: .string), AWSShapeMember(label: "StatusCode", required: false, type: .integer) ] + /// Version number of the face detection model associated with the collection you are creating. + public let faceModelVersion: String? /// Amazon Resource Name (ARN) of the collection. You can use this to manage permissions on your resources. public let collectionArn: String? /// HTTP status code indicating the result of the operation. public let statusCode: Int32? - public init(collectionArn: String? = nil, statusCode: Int32? = nil) { + public init(faceModelVersion: String? = nil, collectionArn: String? = nil, statusCode: Int32? = nil) { + self.faceModelVersion = faceModelVersion self.collectionArn = collectionArn self.statusCode = statusCode } private enum CodingKeys: String, CodingKey { + case faceModelVersion = "FaceModelVersion" case collectionArn = "CollectionArn" case statusCode = "StatusCode" } } - public struct FaceRecord: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Face", required: false, type: .structure), - AWSShapeMember(label: "FaceDetail", required: false, type: .structure) + public struct PersonDetail: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BoundingBox", required: false, type: .structure), + AWSShapeMember(label: "Index", required: false, type: .long), + AWSShapeMember(label: "Face", required: false, type: .structure) ] - /// Describes the face properties such as the bounding box, face ID, image ID of the input image, and external image ID that you assigned. - public let face: Face? - /// Structure containing attributes of the face that the algorithm detected. - public let faceDetail: FaceDetail? + /// Bounding box around the detected person. + public let boundingBox: BoundingBox? + /// Identifier for the person detected person within a video. Use to keep track of the person throughout the video. The identifier is not stored by Amazon Rekognition. + public let index: Int64? + /// Face details for the detected person. + public let face: FaceDetail? - public init(face: Face? = nil, faceDetail: FaceDetail? = nil) { + public init(boundingBox: BoundingBox? = nil, index: Int64? = nil, face: FaceDetail? = nil) { + self.boundingBox = boundingBox + self.index = index self.face = face - self.faceDetail = faceDetail } private enum CodingKeys: String, CodingKey { + case boundingBox = "BoundingBox" + case index = "Index" case face = "Face" - case faceDetail = "FaceDetail" } } + public enum LabelDetectionSortBy: String, CustomStringConvertible, Codable { + case name = "NAME" + case timestamp = "TIMESTAMP" + public var description: String { return self.rawValue } + } + public enum GenderType: String, CustomStringConvertible, Codable { - case male = "MALE" - case female = "FEMALE" + case male = "Male" + case female = "Female" public var description: String { return self.rawValue } } + public struct GetPersonTrackingRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SortBy", required: false, type: .enum), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "JobId", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Sort to use for elements in the Persons array. Use TIMESTAMP to sort array elements by the time persons are detected. Use INDEX to sort by the tracked persons. If you sort by INDEX, the array elements for each person are sorted by detection confidence. The default sort is by TIMESTAMP. + public let sortBy: PersonTrackingSortBy? + /// If the previous response was incomplete (because there are more persons to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of persons. + public let nextToken: String? + /// The identifier for a job that tracks persons in a video. You get the JobId from a call to StartPersonTracking. + public let jobId: String + /// Maximum number of tracked persons to return. The default is 1000. + public let maxResults: Int32? + + public init(sortBy: PersonTrackingSortBy? = nil, nextToken: String? = nil, jobId: String, maxResults: Int32? = nil) { + self.sortBy = sortBy + self.nextToken = nextToken + self.jobId = jobId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case sortBy = "SortBy" + case nextToken = "NextToken" + case jobId = "JobId" + case maxResults = "MaxResults" + } + } + public struct Face: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BoundingBox", required: false, type: .structure), AWSShapeMember(label: "ExternalImageId", required: false, type: .string), AWSShapeMember(label: "Confidence", required: false, type: .float), @@ -1169,37 +2767,15 @@ extension Rekognition { } } - public struct CompareFacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SourceImage", required: true, type: .structure), - AWSShapeMember(label: "TargetImage", required: true, type: .structure), - AWSShapeMember(label: "SimilarityThreshold", required: false, type: .float) - ] - /// The source image, either as bytes or as an S3 object. - public let sourceImage: Image - /// The target image, either as bytes or as an S3 object. - public let targetImage: Image - /// The minimum level of confidence in the face matches that a match must meet to be included in the FaceMatches array. - public let similarityThreshold: Float? - - public init(sourceImage: Image, targetImage: Image, similarityThreshold: Float? = nil) { - self.sourceImage = sourceImage - self.targetImage = targetImage - self.similarityThreshold = similarityThreshold - } + public struct StopStreamProcessorResponse: AWSShape { - private enum CodingKeys: String, CodingKey { - case sourceImage = "SourceImage" - case targetImage = "TargetImage" - case similarityThreshold = "SimilarityThreshold" - } } public struct RecognizeCelebritiesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Image", required: true, type: .structure) ] - /// The input image to use for celebrity recognition. + /// The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported. public let image: Image public init(image: Image) { @@ -1211,55 +2787,51 @@ extension Rekognition { } } - public struct RecognizeCelebritiesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "OrientationCorrection", required: false, type: .enum), - AWSShapeMember(label: "CelebrityFaces", required: false, type: .list), - AWSShapeMember(label: "UnrecognizedFaces", required: false, type: .list) + public enum FaceSearchSortBy: String, CustomStringConvertible, Codable { + case index = "INDEX" + case timestamp = "TIMESTAMP" + public var description: String { return self.rawValue } + } + + public struct StreamProcessor: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum) ] - /// The orientation of the input image (counterclockwise direction). If your application displays the image, you can use this value to correct the orientation. The bounding box coordinates returned in CelebrityFaces and UnrecognizedFaces represent face locations before the image orientation is corrected. If the input image is in .jpeg format, it might contain exchangeable image (Exif) metadata that includes the image's orientation. If so, and the Exif metadata for the input image populates the orientation field, the value of OrientationCorrection is null and the CelebrityFaces and UnrecognizedFaces bounding box coordinates represent face locations after Exif metadata is used to correct the image orientation. Images in .png format don't contain Exif metadata. - public let orientationCorrection: OrientationCorrection? - /// Details about each celebrity found in the image. Amazon Rekognition can detect a maximum of 15 celebrities in an image. - public let celebrityFaces: [Celebrity]? - /// Details about each unrecognized face in the image. - public let unrecognizedFaces: [ComparedFace]? + /// Name of the Amazon Rekognition stream processor. + public let name: String? + /// Current status of the Amazon Rekognition stream processor. + public let status: StreamProcessorStatus? - public init(orientationCorrection: OrientationCorrection? = nil, celebrityFaces: [Celebrity]? = nil, unrecognizedFaces: [ComparedFace]? = nil) { - self.orientationCorrection = orientationCorrection - self.celebrityFaces = celebrityFaces - self.unrecognizedFaces = unrecognizedFaces + public init(name: String? = nil, status: StreamProcessorStatus? = nil) { + self.name = name + self.status = status } private enum CodingKeys: String, CodingKey { - case orientationCorrection = "OrientationCorrection" - case celebrityFaces = "CelebrityFaces" - case unrecognizedFaces = "UnrecognizedFaces" + case name = "Name" + case status = "Status" } } - public struct MouthOpen: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Confidence", required: false, type: .float), - AWSShapeMember(label: "Value", required: false, type: .boolean) + public struct StartFaceSearchResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobId", required: false, type: .string) ] - /// Level of confidence in the determination. - public let confidence: Float? - /// Boolean value that indicates whether the mouth on the face is open or not. - public let value: Bool? + /// The identifier for the search job. Use JobId to identify the job in a subsequent call to GetFaceSearch. + public let jobId: String? - public init(confidence: Float? = nil, value: Bool? = nil) { - self.confidence = confidence - self.value = value + public init(jobId: String? = nil) { + self.jobId = jobId } private enum CodingKeys: String, CodingKey { - case confidence = "Confidence" - case value = "Value" + case jobId = "JobId" } } public struct CompareFacesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetImageOrientationCorrection", required: false, type: .enum), AWSShapeMember(label: "UnmatchedFaces", required: false, type: .list), AWSShapeMember(label: "SourceImageFace", required: false, type: .structure), @@ -1295,83 +2867,47 @@ extension Rekognition { } public enum LandmarkType: String, CustomStringConvertible, Codable { - case eyeLeft = "EYE_LEFT" - case eyeRight = "EYE_RIGHT" - case nose = "NOSE" - case mouthLeft = "MOUTH_LEFT" - case mouthRight = "MOUTH_RIGHT" - case leftEyebrowLeft = "LEFT_EYEBROW_LEFT" - case leftEyebrowRight = "LEFT_EYEBROW_RIGHT" - case leftEyebrowUp = "LEFT_EYEBROW_UP" - case rightEyebrowLeft = "RIGHT_EYEBROW_LEFT" - case rightEyebrowRight = "RIGHT_EYEBROW_RIGHT" - case rightEyebrowUp = "RIGHT_EYEBROW_UP" - case leftEyeLeft = "LEFT_EYE_LEFT" - case leftEyeRight = "LEFT_EYE_RIGHT" - case leftEyeUp = "LEFT_EYE_UP" - case leftEyeDown = "LEFT_EYE_DOWN" - case rightEyeLeft = "RIGHT_EYE_LEFT" - case rightEyeRight = "RIGHT_EYE_RIGHT" - case rightEyeUp = "RIGHT_EYE_UP" - case rightEyeDown = "RIGHT_EYE_DOWN" - case noseLeft = "NOSE_LEFT" - case noseRight = "NOSE_RIGHT" - case mouthUp = "MOUTH_UP" - case mouthDown = "MOUTH_DOWN" - case leftPupil = "LEFT_PUPIL" - case rightPupil = "RIGHT_PUPIL" + case eyeleft = "eyeLeft" + case eyeright = "eyeRight" + case nose = "nose" + case mouthleft = "mouthLeft" + case mouthright = "mouthRight" + case lefteyebrowleft = "leftEyeBrowLeft" + case lefteyebrowright = "leftEyeBrowRight" + case lefteyebrowup = "leftEyeBrowUp" + case righteyebrowleft = "rightEyeBrowLeft" + case righteyebrowright = "rightEyeBrowRight" + case righteyebrowup = "rightEyeBrowUp" + case lefteyeleft = "leftEyeLeft" + case lefteyeright = "leftEyeRight" + case lefteyeup = "leftEyeUp" + case lefteyedown = "leftEyeDown" + case righteyeleft = "rightEyeLeft" + case righteyeright = "rightEyeRight" + case righteyeup = "rightEyeUp" + case righteyedown = "rightEyeDown" + case noseleft = "noseLeft" + case noseright = "noseRight" + case mouthup = "mouthUp" + case mouthdown = "mouthDown" + case leftpupil = "leftPupil" + case rightpupil = "rightPupil" public var description: String { return self.rawValue } } - public struct ImageQuality: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Sharpness", required: false, type: .float), - AWSShapeMember(label: "Brightness", required: false, type: .float) - ] - /// Value representing sharpness of the face. The service returns a value between 0 and 100 (inclusive). A higher value indicates a sharper face image. - public let sharpness: Float? - /// Value representing brightness of the face. The service returns a value between 0 and 100 (inclusive). A higher value indicates a brighter face image. - public let brightness: Float? - - public init(sharpness: Float? = nil, brightness: Float? = nil) { - self.sharpness = sharpness - self.brightness = brightness - } - - private enum CodingKeys: String, CodingKey { - case sharpness = "Sharpness" - case brightness = "Brightness" - } - } - - public struct IndexFacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Image", required: true, type: .structure), - AWSShapeMember(label: "ExternalImageId", required: false, type: .string), - AWSShapeMember(label: "CollectionId", required: true, type: .string), - AWSShapeMember(label: "DetectionAttributes", required: false, type: .list) + public struct StartFaceDetectionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "JobId", required: false, type: .string) ] - /// The input image as bytes or an S3 object. - public let image: Image - /// ID you want to assign to all the faces detected in the image. - public let externalImageId: String? - /// The ID of an existing collection to which you want to add the faces that are detected in the input images. - public let collectionId: String - /// An array of facial attributes that you want to be returned. This can be the default list of attributes or all attributes. If you don't specify a value for Attributes or if you specify ["DEFAULT"], the API returns the following subset of facial attributes: BoundingBox, Confidence, Pose, Quality and Landmarks. If you provide ["ALL"], all facial attributes are returned but the operation will take longer to complete. If you provide both, ["ALL", "DEFAULT"], the service uses a logical AND operator to determine which attributes to return (in this case, all attributes). - public let detectionAttributes: [Attribute]? + /// The identifier for the face detection job. Use JobId to identify the job in a subsequent call to GetFaceDetection. + public let jobId: String? - public init(image: Image, externalImageId: String? = nil, collectionId: String, detectionAttributes: [Attribute]? = nil) { - self.image = image - self.externalImageId = externalImageId - self.collectionId = collectionId - self.detectionAttributes = detectionAttributes + public init(jobId: String? = nil) { + self.jobId = jobId } private enum CodingKeys: String, CodingKey { - case image = "Image" - case externalImageId = "ExternalImageId" - case collectionId = "CollectionId" - case detectionAttributes = "DetectionAttributes" + case jobId = "JobId" } } diff --git a/Sources/AWSSDKSwift/Services/resource-groups/ResourceGroups_API.swift b/Sources/AWSSDKSwift/Services/resource-groups/ResourceGroups_API.swift new file mode 100644 index 00000000000..9f5ce6c1ab7 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/resource-groups/ResourceGroups_API.swift @@ -0,0 +1,88 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +AWS Resource Groups AWS Resource Groups lets you organize AWS resources such as Amazon EC2 instances, Amazon Relational Database Service databases, and Amazon S3 buckets into groups using criteria that you define as tags. A resource group is a collection of resources that match the resource types specified in a query, and share one or more tags or portions of tags. You can create a group of resources based on their roles in your cloud infrastructure, lifecycle stages, regions, application layers, or virtually any criteria. Resource groups enable you to automate management tasks, such as those in AWS Systems Manager Automation documents, on tag-related resources in AWS Systems Manager. Groups of tagged resources also let you quickly view a custom console in AWS Systems Manager that shows AWS Config compliance and other monitoring data about member resources. To create a resource group, build a resource query, and specify tags that identify the criteria that members of the group have in common. Tags are key-value pairs. For more information about Resource Groups, see the AWS Resource Groups User Guide. AWS Resource Groups uses a REST-compliant API that you can use to perform the following types of operations. Create, Read, Update, and Delete (CRUD) operations on resource groups and resource query entities Applying, editing, and removing tags from resource groups Resolving resource group member ARNs so they can be returned as search results Getting data about resources that are members of a group Searching AWS resources based on a resource query +*/ +public struct ResourceGroups { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "resource-groups", + serviceProtocol: ServiceProtocol(type: .restjson), + apiVersion: "2017-11-27", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [ResourceGroupsError.self] + ) + } + + /// Returns information about a specified resource group. + public func getGroup(_ input: GetGroupInput) throws -> GetGroupOutput { + return try client.send(operation: "GetGroup", path: "/groups/{GroupName}", httpMethod: "GET", input: input) + } + + /// Updates the resource query of a group. + public func updateGroupQuery(_ input: UpdateGroupQueryInput) throws -> UpdateGroupQueryOutput { + return try client.send(operation: "UpdateGroupQuery", path: "/groups/{GroupName}/query", httpMethod: "PUT", input: input) + } + + /// Adds specified tags to a resource with the specified ARN. Existing tags on a resource are not changed if they are not specified in the request parameters. + public func tag(_ input: TagInput) throws -> TagOutput { + return try client.send(operation: "Tag", path: "/resources/{Arn}/tags", httpMethod: "PUT", input: input) + } + + /// Updates an existing group with a new or changed description. You cannot update the name of a resource group. + public func updateGroup(_ input: UpdateGroupInput) throws -> UpdateGroupOutput { + return try client.send(operation: "UpdateGroup", path: "/groups/{GroupName}", httpMethod: "PUT", input: input) + } + + /// Creates a group with a specified name, description, and resource query. + public func createGroup(_ input: CreateGroupInput) throws -> CreateGroupOutput { + return try client.send(operation: "CreateGroup", path: "/groups", httpMethod: "POST", input: input) + } + + /// Returns the resource query associated with the specified resource group. + public func getGroupQuery(_ input: GetGroupQueryInput) throws -> GetGroupQueryOutput { + return try client.send(operation: "GetGroupQuery", path: "/groups/{GroupName}/query", httpMethod: "GET", input: input) + } + + /// Deletes a specified resource group. Deleting a resource group does not delete resources that are members of the group; it only deletes the group structure. + public func deleteGroup(_ input: DeleteGroupInput) throws -> DeleteGroupOutput { + return try client.send(operation: "DeleteGroup", path: "/groups/{GroupName}", httpMethod: "DELETE", input: input) + } + + /// Returns a list of existing resource groups in your account. + public func listGroups(_ input: ListGroupsInput) throws -> ListGroupsOutput { + return try client.send(operation: "ListGroups", path: "/groups", httpMethod: "GET", input: input) + } + + /// Returns a list of ARNs of resources that are members of a specified resource group. + public func listGroupResources(_ input: ListGroupResourcesInput) throws -> ListGroupResourcesOutput { + return try client.send(operation: "ListGroupResources", path: "/groups/{GroupName}/resource-identifiers", httpMethod: "GET", input: input) + } + + /// Deletes specified tags from a specified resource. + public func untag(_ input: UntagInput) throws -> UntagOutput { + return try client.send(operation: "Untag", path: "/resources/{Arn}/tags", httpMethod: "PATCH", input: input) + } + + /// Returns a list of AWS resource identifiers that matches a specified query. The query uses the same format as a resource query in a CreateGroup or UpdateGroupQuery operation. + public func searchResources(_ input: SearchResourcesInput) throws -> SearchResourcesOutput { + return try client.send(operation: "SearchResources", path: "/resources/search", httpMethod: "POST", input: input) + } + + /// Returns a list of tags that are associated with a resource, specified by an ARN. + public func getTags(_ input: GetTagsInput) throws -> GetTagsOutput { + return try client.send(operation: "GetTags", path: "/resources/{Arn}/tags", httpMethod: "GET", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/resource-groups/ResourceGroups_Error.swift b/Sources/AWSSDKSwift/Services/resource-groups/ResourceGroups_Error.swift new file mode 100644 index 00000000000..02485bc1623 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/resource-groups/ResourceGroups_Error.swift @@ -0,0 +1,41 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for ResourceGroups +public enum ResourceGroupsError: AWSErrorType { + case badRequestException(message: String?) + case forbiddenException(message: String?) + case notFoundException(message: String?) + case methodNotAllowedException(message: String?) + case tooManyRequestsException(message: String?) + case internalServerErrorException(message: String?) + case unauthorizedException(message: String?) +} + +extension ResourceGroupsError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "BadRequestException": + self = .badRequestException(message: message) + case "ForbiddenException": + self = .forbiddenException(message: message) + case "NotFoundException": + self = .notFoundException(message: message) + case "MethodNotAllowedException": + self = .methodNotAllowedException(message: message) + case "TooManyRequestsException": + self = .tooManyRequestsException(message: message) + case "InternalServerErrorException": + self = .internalServerErrorException(message: message) + case "UnauthorizedException": + self = .unauthorizedException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/resource-groups/ResourceGroups_Shapes.swift b/Sources/AWSSDKSwift/Services/resource-groups/ResourceGroups_Shapes.swift new file mode 100644 index 00000000000..8d423a0abd0 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/resource-groups/ResourceGroups_Shapes.swift @@ -0,0 +1,586 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension ResourceGroups { + + public struct ListGroupResourcesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceIdentifiers", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The ARNs and resource types of resources that are members of the group that you specified. + public let resourceIdentifiers: [ResourceIdentifier]? + /// The NextToken value to include in a subsequent ListGroupResources request, to get more results. + public let nextToken: String? + + public init(resourceIdentifiers: [ResourceIdentifier]? = nil, nextToken: String? = nil) { + self.resourceIdentifiers = resourceIdentifiers + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case resourceIdentifiers = "ResourceIdentifiers" + case nextToken = "NextToken" + } + } + + public struct DeleteGroupOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Group", required: false, type: .structure) + ] + /// A full description of the deleted resource group. + public let group: Group? + + public init(group: Group? = nil) { + self.group = group + } + + private enum CodingKeys: String, CodingKey { + case group = "Group" + } + } + + public struct GetGroupQueryInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", location: .uri(locationName: "GroupName"), required: true, type: .string) + ] + /// The name of the resource group. + public let groupName: String + + public init(groupName: String) { + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + } + } + + public struct GetTagsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", location: .uri(locationName: "Arn"), required: true, type: .string) + ] + /// The ARN of the resource for which you want a list of tags. The resource must exist within the account you are using. + public let arn: String + + public init(arn: String) { + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + } + } + + public struct SearchResourcesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ResourceQuery", required: true, type: .structure), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The NextToken value that is returned in a paginated SearchResources request. To get the next page of results, run the call again, add the NextToken parameter, and specify the NextToken value. + public let nextToken: String? + /// The search query, using the same formats that are supported for resource group definition. + public let resourceQuery: ResourceQuery + /// The maximum number of group member ARNs returned by SearchResources in paginated output. By default, this number is 50. + public let maxResults: Int32? + + public init(nextToken: String? = nil, resourceQuery: ResourceQuery, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.resourceQuery = resourceQuery + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case resourceQuery = "ResourceQuery" + case maxResults = "MaxResults" + } + } + + public struct CreateGroupOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: false, type: .map), + AWSShapeMember(label: "ResourceQuery", required: false, type: .structure), + AWSShapeMember(label: "Group", required: false, type: .structure) + ] + /// The tags associated with the group. + public let tags: [String: String]? + /// The resource query associated with the group. + public let resourceQuery: ResourceQuery? + /// A full description of the resource group after it is created. + public let group: Group? + + public init(tags: [String: String]? = nil, resourceQuery: ResourceQuery? = nil, group: Group? = nil) { + self.tags = tags + self.resourceQuery = resourceQuery + self.group = group + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + case resourceQuery = "ResourceQuery" + case group = "Group" + } + } + + public struct ResourceIdentifier: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceArn", required: false, type: .string), + AWSShapeMember(label: "ResourceType", required: false, type: .string) + ] + /// The ARN of a resource. + public let resourceArn: String? + /// The resource type of a resource, such as AWS::EC2::Instance. + public let resourceType: String? + + public init(resourceArn: String? = nil, resourceType: String? = nil) { + self.resourceArn = resourceArn + self.resourceType = resourceType + } + + private enum CodingKeys: String, CodingKey { + case resourceArn = "ResourceArn" + case resourceType = "ResourceType" + } + } + + public struct UntagInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", location: .uri(locationName: "Arn"), required: true, type: .string), + AWSShapeMember(label: "Keys", required: true, type: .list) + ] + /// The ARN of the resource from which to remove tags. + public let arn: String + /// The keys of the tags to be removed. + public let keys: [String] + + public init(arn: String, keys: [String]) { + self.arn = arn + self.keys = keys + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case keys = "Keys" + } + } + + public struct ListGroupsInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + /// The NextToken value that is returned in a paginated ListGroups request. To get the next page of results, run the call again, add the NextToken parameter, and specify the NextToken value. + public let nextToken: String? + /// The maximum number of resource group results that are returned by ListGroups in paginated output. By default, this number is 50. + public let maxResults: Int32? + + public init(nextToken: String? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct ResourceQuery: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Query", required: true, type: .string), + AWSShapeMember(label: "Type", required: true, type: .enum) + ] + /// The query that defines a group or a search. + public let query: String + /// The type of the query. The valid value in this release is TAG_FILTERS_1_0. TAG_FILTERS_1_0: A JSON syntax that lets you specify a collection of simple tag filters for resource types and tags, as supported by the AWS Tagging API GetResources operation. When more than one element is present, only resources that match all filters are part of the result. If a filter specifies more than one value for a key, a resource matches the filter if its tag value matches any of the specified values. + public let `type`: QueryType + + public init(query: String, type: QueryType) { + self.query = query + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case query = "Query" + case `type` = "Type" + } + } + + public struct GetGroupOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Group", required: false, type: .structure) + ] + /// A full description of the resource group. + public let group: Group? + + public init(group: Group? = nil) { + self.group = group + } + + private enum CodingKeys: String, CodingKey { + case group = "Group" + } + } + + public enum QueryType: String, CustomStringConvertible, Codable { + case tagFilters10 = "TAG_FILTERS_1_0" + public var description: String { return self.rawValue } + } + + public struct GetGroupQueryOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupQuery", required: false, type: .structure) + ] + /// The resource query associated with the specified group. + public let groupQuery: GroupQuery? + + public init(groupQuery: GroupQuery? = nil) { + self.groupQuery = groupQuery + } + + private enum CodingKeys: String, CodingKey { + case groupQuery = "GroupQuery" + } + } + + public struct UpdateGroupInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", location: .uri(locationName: "GroupName"), required: true, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The name of the resource group for which you want to update its description. + public let groupName: String + /// The description of the resource group. Descriptions can have a maximum of 511 characters, including letters, numbers, hyphens, underscores, punctuation, and spaces. + public let description: String? + + public init(groupName: String, description: String? = nil) { + self.groupName = groupName + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + case description = "Description" + } + } + + public struct SearchResourcesOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceIdentifiers", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The ARNs and resource types of resources that are members of the group that you specified. + public let resourceIdentifiers: [ResourceIdentifier]? + /// The NextToken value to include in a subsequent SearchResources request, to get more results. + public let nextToken: String? + + public init(resourceIdentifiers: [ResourceIdentifier]? = nil, nextToken: String? = nil) { + self.resourceIdentifiers = resourceIdentifiers + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case resourceIdentifiers = "ResourceIdentifiers" + case nextToken = "NextToken" + } + } + + public struct ListGroupsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Groups", required: false, type: .list) + ] + /// The NextToken value to include in a subsequent ListGroups request, to get more results. + public let nextToken: String? + /// A list of resource groups. + public let groups: [Group]? + + public init(nextToken: String? = nil, groups: [Group]? = nil) { + self.nextToken = nextToken + self.groups = groups + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case groups = "Groups" + } + } + + public struct UntagOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Arn", required: false, type: .string), + AWSShapeMember(label: "Keys", required: false, type: .list) + ] + /// The ARN of the resource from which tags have been removed. + public let arn: String? + /// The keys of tags that have been removed. + public let keys: [String]? + + public init(arn: String? = nil, keys: [String]? = nil) { + self.arn = arn + self.keys = keys + } + + private enum CodingKeys: String, CodingKey { + case arn = "Arn" + case keys = "Keys" + } + } + + public struct UpdateGroupQueryOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupQuery", required: false, type: .structure) + ] + /// The resource query associated with the resource group after the update. + public let groupQuery: GroupQuery? + + public init(groupQuery: GroupQuery? = nil) { + self.groupQuery = groupQuery + } + + private enum CodingKeys: String, CodingKey { + case groupQuery = "GroupQuery" + } + } + + public struct GetGroupInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", location: .uri(locationName: "GroupName"), required: true, type: .string) + ] + /// The name of the resource group. + public let groupName: String + + public init(groupName: String) { + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + } + } + + public struct UpdateGroupOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Group", required: false, type: .structure) + ] + /// The full description of the resource group after it has been updated. + public let group: Group? + + public init(group: Group? = nil) { + self.group = group + } + + private enum CodingKeys: String, CodingKey { + case group = "Group" + } + } + + public struct GetTagsOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: false, type: .map), + AWSShapeMember(label: "Arn", required: false, type: .string) + ] + /// The tags associated with the specified resource. + public let tags: [String: String]? + /// The ARN of the tagged resource. + public let arn: String? + + public init(tags: [String: String]? = nil, arn: String? = nil) { + self.tags = tags + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + case arn = "Arn" + } + } + + public struct DeleteGroupInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", location: .uri(locationName: "GroupName"), required: true, type: .string) + ] + /// The name of the resource group to delete. + public let groupName: String + + public init(groupName: String) { + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + } + } + + public struct ListGroupResourcesInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GroupName", location: .uri(locationName: "GroupName"), required: true, type: .string), + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxResults"), required: false, type: .integer) + ] + /// The name of the resource group. + public let groupName: String + /// The NextToken value that is returned in a paginated ListGroupResources request. To get the next page of results, run the call again, add the NextToken parameter, and specify the NextToken value. + public let nextToken: String? + /// The maximum number of group member ARNs that are returned in a single call by ListGroupResources, in paginated output. By default, this number is 50. + public let maxResults: Int32? + + public init(groupName: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.groupName = groupName + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case groupName = "GroupName" + case nextToken = "nextToken" + case maxResults = "maxResults" + } + } + + public struct TagInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: true, type: .map), + AWSShapeMember(label: "Arn", location: .uri(locationName: "Arn"), required: true, type: .string) + ] + /// The tags to add to the specified resource. A tag is a string-to-string map of key-value pairs. Tag keys can have a maximum character length of 127 characters, and tag values can have a maximum length of 255 characters. + public let tags: [String: String] + /// The ARN of the resource to which to add tags. + public let arn: String + + public init(tags: [String: String], arn: String) { + self.tags = tags + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + case arn = "Arn" + } + } + + public struct GroupQuery: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceQuery", required: true, type: .structure), + AWSShapeMember(label: "GroupName", required: true, type: .string) + ] + /// The resource query which determines which AWS resources are members of the associated resource group. + public let resourceQuery: ResourceQuery + /// The name of a resource group that is associated with a specific resource query. + public let groupName: String + + public init(resourceQuery: ResourceQuery, groupName: String) { + self.resourceQuery = resourceQuery + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case resourceQuery = "ResourceQuery" + case groupName = "GroupName" + } + } + + public struct Group: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "GroupArn", required: true, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The name of a resource group. + public let name: String + /// The ARN of a resource group. + public let groupArn: String + /// The description of the resource group. + public let description: String? + + public init(name: String, groupArn: String, description: String? = nil) { + self.name = name + self.groupArn = groupArn + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case groupArn = "GroupArn" + case description = "Description" + } + } + + public struct CreateGroupInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceQuery", required: true, type: .structure), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .map), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The resource query that determines which AWS resources are members of this group. + public let resourceQuery: ResourceQuery + /// The name of the group, which is the identifier of the group in other operations. A resource group name cannot be updated after it is created. A resource group name can have a maximum of 127 characters, including letters, numbers, hyphens, dots, and underscores. The name cannot start with AWS or aws; these are reserved. A resource group name must be unique within your account. + public let name: String + /// The tags to add to the group. A tag is a string-to-string map of key-value pairs. Tag keys can have a maximum character length of 127 characters, and tag values can have a maximum length of 255 characters. + public let tags: [String: String]? + /// The description of the resource group. Descriptions can have a maximum of 511 characters, including letters, numbers, hyphens, underscores, punctuation, and spaces. + public let description: String? + + public init(resourceQuery: ResourceQuery, name: String, tags: [String: String]? = nil, description: String? = nil) { + self.resourceQuery = resourceQuery + self.name = name + self.tags = tags + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case resourceQuery = "ResourceQuery" + case name = "Name" + case tags = "Tags" + case description = "Description" + } + } + + public struct TagOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: false, type: .map), + AWSShapeMember(label: "Arn", required: false, type: .string) + ] + /// The tags that have been added to the specified resource. + public let tags: [String: String]? + /// The ARN of the tagged resource. + public let arn: String? + + public init(tags: [String: String]? = nil, arn: String? = nil) { + self.tags = tags + self.arn = arn + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tags" + case arn = "Arn" + } + } + + public struct UpdateGroupQueryInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceQuery", required: true, type: .structure), + AWSShapeMember(label: "GroupName", location: .uri(locationName: "GroupName"), required: true, type: .string) + ] + /// The resource query that determines which AWS resources are members of the resource group. + public let resourceQuery: ResourceQuery + /// The name of the resource group for which you want to edit the query. + public let groupName: String + + public init(resourceQuery: ResourceQuery, groupName: String) { + self.resourceQuery = resourceQuery + self.groupName = groupName + } + + private enum CodingKeys: String, CodingKey { + case resourceQuery = "ResourceQuery" + case groupName = "GroupName" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/resourcegroupstaggingapi/Resourcegroupstaggingapi_Shapes.swift b/Sources/AWSSDKSwift/Services/resourcegroupstaggingapi/Resourcegroupstaggingapi_Shapes.swift index 044c431ecf4..f85b139fbe8 100644 --- a/Sources/AWSSDKSwift/Services/resourcegroupstaggingapi/Resourcegroupstaggingapi_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/resourcegroupstaggingapi/Resourcegroupstaggingapi_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Resourcegroupstaggingapi { public struct UntagResourcesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagKeys", required: true, type: .list), AWSShapeMember(label: "ResourceARNList", required: true, type: .list) ] @@ -27,7 +27,7 @@ extension Resourcegroupstaggingapi { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -48,7 +48,7 @@ extension Resourcegroupstaggingapi { } public struct TagFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -69,7 +69,7 @@ extension Resourcegroupstaggingapi { } public struct FailureInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorMessage", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .enum), AWSShapeMember(label: "StatusCode", required: false, type: .integer) @@ -101,7 +101,7 @@ extension Resourcegroupstaggingapi { } public struct ResourceTagMapping: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list) ] @@ -122,7 +122,7 @@ extension Resourcegroupstaggingapi { } public struct UntagResourcesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedResourcesMap", required: false, type: .map) ] /// Details of resources that could not be untagged. An error code, status code, and error message are returned for each failed item. @@ -138,7 +138,7 @@ extension Resourcegroupstaggingapi { } public struct GetTagValuesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PaginationToken", required: false, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -159,7 +159,7 @@ extension Resourcegroupstaggingapi { } public struct TagResourcesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: true, type: .map), AWSShapeMember(label: "ResourceARNList", required: true, type: .list) ] @@ -180,7 +180,7 @@ extension Resourcegroupstaggingapi { } public struct GetTagValuesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PaginationToken", required: false, type: .string), AWSShapeMember(label: "TagValues", required: false, type: .list) ] @@ -201,7 +201,7 @@ extension Resourcegroupstaggingapi { } public struct GetResourcesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PaginationToken", required: false, type: .string), AWSShapeMember(label: "ResourceTagMappingList", required: false, type: .list) ] @@ -222,7 +222,7 @@ extension Resourcegroupstaggingapi { } public struct GetTagKeysInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PaginationToken", required: false, type: .string) ] /// A string that indicates that additional data is available. Leave this value empty for your initial request. If the response includes a PaginationToken, use that string for this value to request an additional page of data. @@ -238,7 +238,7 @@ extension Resourcegroupstaggingapi { } public struct GetResourcesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PaginationToken", required: false, type: .string), AWSShapeMember(label: "TagFilters", required: false, type: .list), AWSShapeMember(label: "TagsPerPage", required: false, type: .integer), @@ -274,7 +274,7 @@ extension Resourcegroupstaggingapi { } public struct GetTagKeysOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PaginationToken", required: false, type: .string), AWSShapeMember(label: "TagKeys", required: false, type: .list) ] @@ -295,7 +295,7 @@ extension Resourcegroupstaggingapi { } public struct TagResourcesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedResourcesMap", required: false, type: .map) ] /// Details of resources that could not be tagged. An error code, status code, and error message are returned for each failed item. diff --git a/Sources/AWSSDKSwift/Services/route53/Route53_API.swift b/Sources/AWSSDKSwift/Services/route53/Route53_API.swift index cdd2d5c6af8..44b2ddda515 100644 --- a/Sources/AWSSDKSwift/Services/route53/Route53_API.swift +++ b/Sources/AWSSDKSwift/Services/route53/Route53_API.swift @@ -36,6 +36,11 @@ public struct Route53 { return try client.send(operation: "GetTrafficPolicyInstance", path: "/2013-04-01/trafficpolicyinstance/{Id}", httpMethod: "GET", input: input) } + /// Gets information about a specified configuration for DNS query logging. For more information about DNS query logs, see CreateQueryLoggingConfig and Logging DNS Queries. + public func getQueryLoggingConfig(_ input: GetQueryLoggingConfigRequest) throws -> GetQueryLoggingConfigResponse { + return try client.send(operation: "GetQueryLoggingConfig", path: "/2013-04-01/queryloggingconfig/{Id}", httpMethod: "GET", input: input) + } + /// Disassociates a VPC from a Amazon Route 53 private hosted zone. You can't disassociate the last VPC from a private hosted zone. You can't disassociate a VPC from a private hosted zone when only one VPC is associated with the hosted zone. You also can't convert a private hosted zone into a public hosted zone. public func disassociateVPCFromHostedZone(_ input: DisassociateVPCFromHostedZoneRequest) throws -> DisassociateVPCFromHostedZoneResponse { return try client.send(operation: "DisassociateVPCFromHostedZone", path: "/2013-04-01/hostedzone/{Id}/disassociatevpc", httpMethod: "POST", input: input) @@ -56,19 +61,29 @@ public struct Route53 { return try client.send(operation: "UpdateHostedZoneComment", path: "/2013-04-01/hostedzone/{Id}", httpMethod: "POST", input: input) } + /// Gets the maximum number of hosted zones that you can associate with the specified reusable delegation set. For the default limit, see Limits in the Amazon Route 53 Developer Guide. To request a higher limit, open a case. + public func getReusableDelegationSetLimit(_ input: GetReusableDelegationSetLimitRequest) throws -> GetReusableDelegationSetLimitResponse { + return try client.send(operation: "GetReusableDelegationSetLimit", path: "/2013-04-01/reusabledelegationsetlimit/{Id}/{Type}", httpMethod: "GET", input: input) + } + /// GetCheckerIpRanges still works, but we recommend that you download ip-ranges.json, which includes IP address ranges for all AWS services. For more information, see IP Address Ranges of Amazon Route 53 Servers in the Amazon Route 53 Developer Guide. public func getCheckerIpRanges(_ input: GetCheckerIpRangesRequest) throws -> GetCheckerIpRangesResponse { return try client.send(operation: "GetCheckerIpRanges", path: "/2013-04-01/checkeripranges", httpMethod: "GET", input: input) } + /// Gets the specified limit for a specified hosted zone, for example, the maximum number of records that you can create in the hosted zone. For the default limit, see Limits in the Amazon Route 53 Developer Guide. To request a higher limit, open a case. + public func getHostedZoneLimit(_ input: GetHostedZoneLimitRequest) throws -> GetHostedZoneLimitResponse { + return try client.send(operation: "GetHostedZoneLimit", path: "/2013-04-01/hostedzonelimit/{Id}/{Type}", httpMethod: "GET", input: input) + } + /// Deletes a health check. Amazon Route 53 does not prevent you from deleting a health check even if the health check is associated with one or more resource record sets. If you delete a health check and you don't update the associated resource record sets, the future status of the health check can't be predicted and may change. This will affect the routing of DNS queries for your DNS failover configuration. For more information, see Replacing and Deleting Health Checks in the Amazon Route 53 Developer Guide. public func deleteHealthCheck(_ input: DeleteHealthCheckRequest) throws -> DeleteHealthCheckResponse { return try client.send(operation: "DeleteHealthCheck", path: "/2013-04-01/healthcheck/{HealthCheckId}", httpMethod: "DELETE", input: input) } - /// Retrieves information about a specified reusable delegation set, including the four name servers that are assigned to the delegation set. - public func getReusableDelegationSet(_ input: GetReusableDelegationSetRequest) throws -> GetReusableDelegationSetResponse { - return try client.send(operation: "GetReusableDelegationSet", path: "/2013-04-01/delegationset/{Id}", httpMethod: "GET", input: input) + /// Retrieves a list of your hosted zones in lexicographic order. The response includes a HostedZones child element for each hosted zone created by the current AWS account. ListHostedZonesByName sorts hosted zones by name with the labels reversed. For example: com.example.www. Note the trailing dot, which can change the sort order in some circumstances. If the domain name includes escape characters or Punycode, ListHostedZonesByName alphabetizes the domain name using the escaped or Punycoded value, which is the format that Amazon Route 53 saves in its database. For example, to create a hosted zone for exämple.com, you specify ex\344mple.com for the domain name. ListHostedZonesByName alphabetizes it as: com.ex\344mple. The labels are reversed and alphabetized using the escaped value. For more information about valid domain name formats, including internationalized domain names, see DNS Domain Name Format in the Amazon Route 53 Developer Guide. Amazon Route 53 returns up to 100 items in each response. If you have a lot of hosted zones, use the MaxItems parameter to list them in groups of up to 100. The response includes values that help navigate from one group of MaxItems hosted zones to the next: The DNSName and HostedZoneId elements in the response contain the values, if any, specified for the dnsname and hostedzoneid parameters in the request that produced the current response. The MaxItems element in the response contains the value, if any, that you specified for the maxitems parameter in the request that produced the current response. If the value of IsTruncated in the response is true, there are more hosted zones associated with the current AWS account. If IsTruncated is false, this response includes the last hosted zone that is associated with the current account. The NextDNSName element and NextHostedZoneId elements are omitted from the response. The NextDNSName and NextHostedZoneId elements in the response contain the domain name and the hosted zone ID of the next hosted zone that is associated with the current AWS account. If you want to list more hosted zones, make another call to ListHostedZonesByName, and specify the value of NextDNSName and NextHostedZoneId in the dnsname and hostedzoneid parameters, respectively. + public func listHostedZonesByName(_ input: ListHostedZonesByNameRequest) throws -> ListHostedZonesByNameResponse { + return try client.send(operation: "ListHostedZonesByName", path: "/2013-04-01/hostedzonesbyname", httpMethod: "GET", input: input) } /// Gets the number of traffic policy instances that are associated with the current AWS account. @@ -76,9 +91,9 @@ public struct Route53 { return try client.send(operation: "GetTrafficPolicyInstanceCount", path: "/2013-04-01/trafficpolicyinstancecount", httpMethod: "GET", input: input) } - /// Updates the comment for a specified traffic policy version. - public func updateTrafficPolicyComment(_ input: UpdateTrafficPolicyCommentRequest) throws -> UpdateTrafficPolicyCommentResponse { - return try client.send(operation: "UpdateTrafficPolicyComment", path: "/2013-04-01/trafficpolicy/{Id}/{Version}", httpMethod: "POST", input: input) + /// Retrieves information about a specified reusable delegation set, including the four name servers that are assigned to the delegation set. + public func getReusableDelegationSet(_ input: GetReusableDelegationSetRequest) throws -> GetReusableDelegationSetResponse { + return try client.send(operation: "GetReusableDelegationSet", path: "/2013-04-01/delegationset/{Id}", httpMethod: "GET", input: input) } /// Gets the value that Amazon Route 53 returns in response to a DNS request for a specified record name and type. You can optionally specify the IP address of a DNS resolver, an EDNS0 client subnet IP address, and a subnet mask. @@ -96,9 +111,9 @@ public struct Route53 { return try client.send(operation: "CreateVPCAssociationAuthorization", path: "/2013-04-01/hostedzone/{Id}/authorizevpcassociation", httpMethod: "POST", input: input) } - /// Retrieves a list of your hosted zones in lexicographic order. The response includes a HostedZones child element for each hosted zone created by the current AWS account. ListHostedZonesByName sorts hosted zones by name with the labels reversed. For example: com.example.www. Note the trailing dot, which can change the sort order in some circumstances. If the domain name includes escape characters or Punycode, ListHostedZonesByName alphabetizes the domain name using the escaped or Punycoded value, which is the format that Amazon Route 53 saves in its database. For example, to create a hosted zone for exämple.com, you specify ex\344mple.com for the domain name. ListHostedZonesByName alphabetizes it as: com.ex\344mple. The labels are reversed and alphabetized using the escaped value. For more information about valid domain name formats, including internationalized domain names, see DNS Domain Name Format in the Amazon Route 53 Developer Guide. Amazon Route 53 returns up to 100 items in each response. If you have a lot of hosted zones, use the MaxItems parameter to list them in groups of up to 100. The response includes values that help navigate from one group of MaxItems hosted zones to the next: The DNSName and HostedZoneId elements in the response contain the values, if any, specified for the dnsname and hostedzoneid parameters in the request that produced the current response. The MaxItems element in the response contains the value, if any, that you specified for the maxitems parameter in the request that produced the current response. If the value of IsTruncated in the response is true, there are more hosted zones associated with the current AWS account. If IsTruncated is false, this response includes the last hosted zone that is associated with the current account. The NextDNSName element and NextHostedZoneId elements are omitted from the response. The NextDNSName and NextHostedZoneId elements in the response contain the domain name and the hosted zone ID of the next hosted zone that is associated with the current AWS account. If you want to list more hosted zones, make another call to ListHostedZonesByName, and specify the value of NextDNSName and NextHostedZoneId in the dnsname and hostedzoneid parameters, respectively. - public func listHostedZonesByName(_ input: ListHostedZonesByNameRequest) throws -> ListHostedZonesByNameResponse { - return try client.send(operation: "ListHostedZonesByName", path: "/2013-04-01/hostedzonesbyname", httpMethod: "GET", input: input) + /// Updates the comment for a specified traffic policy version. + public func updateTrafficPolicyComment(_ input: UpdateTrafficPolicyCommentRequest) throws -> UpdateTrafficPolicyCommentResponse { + return try client.send(operation: "UpdateTrafficPolicyComment", path: "/2013-04-01/trafficpolicy/{Id}/{Version}", httpMethod: "POST", input: input) } /// Gets information about the traffic policy instances that you created in a specified hosted zone. After you submit a CreateTrafficPolicyInstance or an UpdateTrafficPolicyInstance request, there's a brief delay while Amazon Route 53 creates the resource record sets that are specified in the traffic policy definition. For more information, see the State response element. Amazon Route 53 returns a maximum of 100 items in each response. If you have a lot of traffic policy instances, you can use the MaxItems parameter to list them in groups of up to 100. @@ -116,16 +131,16 @@ public struct Route53 { return try client.send(operation: "ListTrafficPolicyInstances", path: "/2013-04-01/trafficpolicyinstances", httpMethod: "GET", input: input) } - /// Creates a new health check. For information about adding health checks to resource record sets, see ResourceRecordSet$HealthCheckId in ChangeResourceRecordSets. ELB Load Balancers If you're registering EC2 instances with an Elastic Load Balancing (ELB) load balancer, do not create Amazon Route 53 health checks for the EC2 instances. When you register an EC2 instance with a load balancer, you configure settings for an ELB health check, which performs a similar function to an Amazon Route 53 health check. Private Hosted Zones You can associate health checks with failover resource record sets in a private hosted zone. Note the following: Amazon Route 53 health checkers are outside the VPC. To check the health of an endpoint within a VPC by IP address, you must assign a public IP address to the instance in the VPC. You can configure a health checker to check the health of an external resource that the instance relies on, such as a database server. You can create a CloudWatch metric, associate an alarm with the metric, and then create a health check that is based on the state of the alarm. For example, you might create a CloudWatch metric that checks the status of the Amazon EC2 StatusCheckFailed metric, add an alarm to the metric, and then create a health check that is based on the state of the alarm. For information about creating CloudWatch metrics and alarms by using the CloudWatch console, see the Amazon CloudWatch User Guide. - public func createHealthCheck(_ input: CreateHealthCheckRequest) throws -> CreateHealthCheckResponse { - return try client.send(operation: "CreateHealthCheck", path: "/2013-04-01/healthcheck", httpMethod: "POST", input: input) - } - /// Deletes a hosted zone. If the name servers for the hosted zone are associated with a domain and if you want to make the domain unavailable on the Internet, we recommend that you delete the name servers from the domain to prevent future DNS queries from possibly being misrouted. If the domain is registered with Amazon Route 53, see UpdateDomainNameservers. If the domain is registered with another registrar, use the method provided by the registrar to delete name servers for the domain. Some domain registries don't allow you to remove all of the name servers for a domain. If the registry for your domain requires one or more name servers, we recommend that you delete the hosted zone only if you transfer DNS service to another service provider, and you replace the name servers for the domain with name servers from the new provider. You can delete a hosted zone only if it contains only the default SOA record and NS resource record sets. If the hosted zone contains other resource record sets, you must delete them before you can delete the hosted zone. If you try to delete a hosted zone that contains other resource record sets, the request fails, and Amazon Route 53 returns a HostedZoneNotEmpty error. For information about deleting records from your hosted zone, see ChangeResourceRecordSets. To verify that the hosted zone has been deleted, do one of the following: Use the GetHostedZone action to request information about the hosted zone. Use the ListHostedZones action to get a list of the hosted zones associated with the current AWS account. public func deleteHostedZone(_ input: DeleteHostedZoneRequest) throws -> DeleteHostedZoneResponse { return try client.send(operation: "DeleteHostedZone", path: "/2013-04-01/hostedzone/{Id}", httpMethod: "DELETE", input: input) } + /// Retrieves the number of health checks that are associated with the current AWS account. + public func getHealthCheckCount(_ input: GetHealthCheckCountRequest) throws -> GetHealthCheckCountResponse { + return try client.send(operation: "GetHealthCheckCount", path: "/2013-04-01/healthcheckcount", httpMethod: "GET", input: input) + } + /// Gets information about a specific traffic policy version. public func getTrafficPolicy(_ input: GetTrafficPolicyRequest) throws -> GetTrafficPolicyResponse { return try client.send(operation: "GetTrafficPolicy", path: "/2013-04-01/trafficpolicy/{Id}/{Version}", httpMethod: "GET", input: input) @@ -136,16 +151,16 @@ public struct Route53 { return try client.send(operation: "DeleteVPCAssociationAuthorization", path: "/2013-04-01/hostedzone/{Id}/deauthorizevpcassociation", httpMethod: "POST", input: input) } + /// Creates a new health check. For information about adding health checks to resource record sets, see ResourceRecordSet$HealthCheckId in ChangeResourceRecordSets. ELB Load Balancers If you're registering EC2 instances with an Elastic Load Balancing (ELB) load balancer, do not create Amazon Route 53 health checks for the EC2 instances. When you register an EC2 instance with a load balancer, you configure settings for an ELB health check, which performs a similar function to an Amazon Route 53 health check. Private Hosted Zones You can associate health checks with failover resource record sets in a private hosted zone. Note the following: Amazon Route 53 health checkers are outside the VPC. To check the health of an endpoint within a VPC by IP address, you must assign a public IP address to the instance in the VPC. You can configure a health checker to check the health of an external resource that the instance relies on, such as a database server. You can create a CloudWatch metric, associate an alarm with the metric, and then create a health check that is based on the state of the alarm. For example, you might create a CloudWatch metric that checks the status of the Amazon EC2 StatusCheckFailed metric, add an alarm to the metric, and then create a health check that is based on the state of the alarm. For information about creating CloudWatch metrics and alarms by using the CloudWatch console, see the Amazon CloudWatch User Guide. + public func createHealthCheck(_ input: CreateHealthCheckRequest) throws -> CreateHealthCheckResponse { + return try client.send(operation: "CreateHealthCheck", path: "/2013-04-01/healthcheck", httpMethod: "POST", input: input) + } + /// Returns the current status of a change batch request. The status is one of the following values: PENDING indicates that the changes in this request have not propagated to all Amazon Route 53 DNS servers. This is the initial status of all change batch requests. INSYNC indicates that the changes have propagated to all Amazon Route 53 DNS servers. public func getChange(_ input: GetChangeRequest) throws -> GetChangeResponse { return try client.send(operation: "GetChange", path: "/2013-04-01/change/{Id}", httpMethod: "GET", input: input) } - /// Retrieves the number of health checks that are associated with the current AWS account. - public func getHealthCheckCount(_ input: GetHealthCheckCountRequest) throws -> GetHealthCheckCountResponse { - return try client.send(operation: "GetHealthCheckCount", path: "/2013-04-01/healthcheckcount", httpMethod: "GET", input: input) - } - /// Lists the resource record sets in a specified hosted zone. ListResourceRecordSets returns up to 100 resource record sets at a time in ASCII order, beginning at a position specified by the name and type elements. The action sorts results first by DNS name with the labels reversed, for example: com.example.www. Note the trailing dot, which can change the sort order in some circumstances. When multiple records have the same DNS name, the action sorts results by the record type. You can use the name and type elements to adjust the beginning position of the list of resource record sets returned: If you do not specify Name or Type The results begin with the first resource record set that the hosted zone contains. If you specify Name but not Type The results begin with the first resource record set in the list whose name is greater than or equal to Name. If you specify Type but not Name Amazon Route 53 returns the InvalidInput error. If you specify both Name and Type The results begin with the first resource record set in the list whose name is greater than or equal to Name, and whose type is greater than or equal to Type. This action returns the most current version of the records. This includes records that are PENDING, and that are not yet available on all Amazon Route 53 DNS servers. To ensure that you get an accurate listing of the resource record sets for a hosted zone at a point in time, do not submit a ChangeResourceRecordSets request while you're paging through the results of a ListResourceRecordSets request. If you do, some pages may display results without the latest changes while other pages display results with the latest changes. public func listResourceRecordSets(_ input: ListResourceRecordSetsRequest) throws -> ListResourceRecordSetsResponse { return try client.send(operation: "ListResourceRecordSets", path: "/2013-04-01/hostedzone/{Id}/rrset", httpMethod: "GET", input: input) @@ -156,21 +171,26 @@ public struct Route53 { return try client.send(operation: "UpdateHealthCheck", path: "/2013-04-01/healthcheck/{HealthCheckId}", httpMethod: "POST", input: input) } + /// Lists the configurations for DNS query logging that are associated with the current AWS account or the configuration that is associated with a specified hosted zone. For more information about DNS query logs, see CreateQueryLoggingConfig. Additional information, including the format of DNS query logs, appears in Logging DNS Queries in the Amazon Route 53 Developer Guide. + public func listQueryLoggingConfigs(_ input: ListQueryLoggingConfigsRequest) throws -> ListQueryLoggingConfigsResponse { + return try client.send(operation: "ListQueryLoggingConfigs", path: "/2013-04-01/queryloggingconfig", httpMethod: "GET", input: input) + } + /// Gets information about a specified hosted zone including the four name servers assigned to the hosted zone. public func getHostedZone(_ input: GetHostedZoneRequest) throws -> GetHostedZoneResponse { return try client.send(operation: "GetHostedZone", path: "/2013-04-01/hostedzone/{Id}", httpMethod: "GET", input: input) } - /// Updates the resource record sets in a specified hosted zone that were created based on the settings in a specified traffic policy version. When you update a traffic policy instance, Amazon Route 53 continues to respond to DNS queries for the root resource record set name (such as example.com) while it replaces one group of resource record sets with another. Amazon Route 53 performs the following operations: Amazon Route 53 creates a new group of resource record sets based on the specified traffic policy. This is true regardless of how significant the differences are between the existing resource record sets and the new resource record sets. When all of the new resource record sets have been created, Amazon Route 53 starts to respond to DNS queries for the root resource record set name (such as example.com) by using the new resource record sets. Amazon Route 53 deletes the old group of resource record sets that are associated with the root resource record set name. - public func updateTrafficPolicyInstance(_ input: UpdateTrafficPolicyInstanceRequest) throws -> UpdateTrafficPolicyInstanceResponse { - return try client.send(operation: "UpdateTrafficPolicyInstance", path: "/2013-04-01/trafficpolicyinstance/{Id}", httpMethod: "POST", input: input) - } - /// Creates, changes, or deletes a resource record set, which contains authoritative DNS information for a specified domain name or subdomain name. For example, you can use ChangeResourceRecordSets to create a resource record set that routes traffic for test.example.com to a web server that has an IP address of 192.0.2.44. Change Batches and Transactional Changes The request body must include a document with a ChangeResourceRecordSetsRequest element. The request body contains a list of change items, known as a change batch. Change batches are considered transactional changes. When using the Amazon Route 53 API to change resource record sets, Amazon Route 53 either makes all or none of the changes in a change batch request. This ensures that Amazon Route 53 never partially implements the intended changes to the resource record sets in a hosted zone. For example, a change batch request that deletes the CNAME record for www.example.com and creates an alias resource record set for www.example.com. Amazon Route 53 deletes the first resource record set and creates the second resource record set in a single operation. If either the DELETE or the CREATE action fails, then both changes (plus any other changes in the batch) fail, and the original CNAME record continues to exist. Due to the nature of transactional changes, you can't delete the same resource record set more than once in a single change batch. If you attempt to delete the same change batch more than once, Amazon Route 53 returns an InvalidChangeBatch error. Traffic Flow To create resource record sets for complex routing configurations, use either the traffic flow visual editor in the Amazon Route 53 console or the API actions for traffic policies and traffic policy instances. Save the configuration as a traffic policy, then associate the traffic policy with one or more domain names (such as example.com) or subdomain names (such as www.example.com), in the same hosted zone or in multiple hosted zones. You can roll back the updates if the new configuration isn't performing as expected. For more information, see Using Traffic Flow to Route DNS Traffic in the Amazon Route 53 Developer Guide. Create, Delete, and Upsert Use ChangeResourceRecordsSetsRequest to perform the following actions: CREATE: Creates a resource record set that has the specified values. DELETE: Deletes an existing resource record set that has the specified values. UPSERT: If a resource record set does not already exist, AWS creates it. If a resource set does exist, Amazon Route 53 updates it with the values in the request. Syntaxes for Creating, Updating, and Deleting Resource Record Sets The syntax for a request depends on the type of resource record set that you want to create, delete, or update, such as weighted, alias, or failover. The XML elements in your request must appear in the order listed in the syntax. For an example for each type of resource record set, see "Examples." Don't refer to the syntax in the "Parameter Syntax" section, which includes all of the elements for every kind of resource record set that you can create, delete, or update by using ChangeResourceRecordSets. Change Propagation to Amazon Route 53 DNS Servers When you submit a ChangeResourceRecordSets request, Amazon Route 53 propagates your changes to all of the Amazon Route 53 authoritative DNS servers. While your changes are propagating, GetChange returns a status of PENDING. When propagation is complete, GetChange returns a status of INSYNC. Changes generally propagate to all Amazon Route 53 name servers within 60 seconds. For more information, see GetChange. Limits on ChangeResourceRecordSets Requests For information about the limits on a ChangeResourceRecordSets request, see Limits in the Amazon Route 53 Developer Guide. public func changeResourceRecordSets(_ input: ChangeResourceRecordSetsRequest) throws -> ChangeResourceRecordSetsResponse { return try client.send(operation: "ChangeResourceRecordSets", path: "/2013-04-01/hostedzone/{Id}/rrset/", httpMethod: "POST", input: input) } + /// Updates the resource record sets in a specified hosted zone that were created based on the settings in a specified traffic policy version. When you update a traffic policy instance, Amazon Route 53 continues to respond to DNS queries for the root resource record set name (such as example.com) while it replaces one group of resource record sets with another. Amazon Route 53 performs the following operations: Amazon Route 53 creates a new group of resource record sets based on the specified traffic policy. This is true regardless of how significant the differences are between the existing resource record sets and the new resource record sets. When all of the new resource record sets have been created, Amazon Route 53 starts to respond to DNS queries for the root resource record set name (such as example.com) by using the new resource record sets. Amazon Route 53 deletes the old group of resource record sets that are associated with the root resource record set name. + public func updateTrafficPolicyInstance(_ input: UpdateTrafficPolicyInstanceRequest) throws -> UpdateTrafficPolicyInstanceResponse { + return try client.send(operation: "UpdateTrafficPolicyInstance", path: "/2013-04-01/trafficpolicyinstance/{Id}", httpMethod: "POST", input: input) + } + /// Gets information about all of the versions for a specified traffic policy. Traffic policy versions are listed in numerical order by VersionNumber. public func listTrafficPolicyVersions(_ input: ListTrafficPolicyVersionsRequest) throws -> ListTrafficPolicyVersionsResponse { return try client.send(operation: "ListTrafficPolicyVersions", path: "/2013-04-01/trafficpolicies/{Id}/versions", httpMethod: "GET", input: input) @@ -206,9 +226,9 @@ public struct Route53 { return try client.send(operation: "CreateTrafficPolicyVersion", path: "/2013-04-01/trafficpolicy/{Id}", httpMethod: "POST", input: input) } - /// Retrieves a list of supported geo locations. Countries are listed first, and continents are listed last. If Amazon Route 53 supports subdivisions for a country (for example, states or provinces), the subdivisions for that country are listed in alphabetical order immediately after the corresponding country. - public func listGeoLocations(_ input: ListGeoLocationsRequest) throws -> ListGeoLocationsResponse { - return try client.send(operation: "ListGeoLocations", path: "/2013-04-01/geolocations", httpMethod: "GET", input: input) + /// Retrieves a list of the reusable delegation sets that are associated with the current AWS account. + public func listReusableDelegationSets(_ input: ListReusableDelegationSetsRequest) throws -> ListReusableDelegationSetsResponse { + return try client.send(operation: "ListReusableDelegationSets", path: "/2013-04-01/delegationset", httpMethod: "GET", input: input) } /// Adds, edits, or deletes tags for a health check or a hosted zone. For information about using tags for cost allocation, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide. @@ -216,9 +236,9 @@ public struct Route53 { return try client.send(operation: "ChangeTagsForResource", path: "/2013-04-01/tags/{ResourceType}/{ResourceId}", httpMethod: "POST", input: input) } - /// Retrieves a list of the reusable delegation sets that are associated with the current AWS account. - public func listReusableDelegationSets(_ input: ListReusableDelegationSetsRequest) throws -> ListReusableDelegationSetsResponse { - return try client.send(operation: "ListReusableDelegationSets", path: "/2013-04-01/delegationset", httpMethod: "GET", input: input) + /// Gets the specified limit for the current account, for example, the maximum number of health checks that you can create using the account. For the default limit, see Limits in the Amazon Route 53 Developer Guide. To request a higher limit, open a case. + public func getAccountLimit(_ input: GetAccountLimitRequest) throws -> GetAccountLimitResponse { + return try client.send(operation: "GetAccountLimit", path: "/2013-04-01/accountlimit/{Type}", httpMethod: "GET", input: input) } /// Creates resource record sets in a specified hosted zone based on the settings in a specified traffic policy version. In addition, CreateTrafficPolicyInstance associates the resource record sets with a specified domain name (such as example.com) or subdomain name (such as www.example.com). Amazon Route 53 responds to DNS queries for the domain or subdomain name by using the resource record sets that CreateTrafficPolicyInstance created. @@ -231,6 +251,11 @@ public struct Route53 { return try client.send(operation: "ListVPCAssociationAuthorizations", path: "/2013-04-01/hostedzone/{Id}/authorizevpcassociation", httpMethod: "GET", input: input) } + /// Retrieves a list of supported geo locations. Countries are listed first, and continents are listed last. If Amazon Route 53 supports subdivisions for a country (for example, states or provinces), the subdivisions for that country are listed in alphabetical order immediately after the corresponding country. + public func listGeoLocations(_ input: ListGeoLocationsRequest) throws -> ListGeoLocationsResponse { + return try client.send(operation: "ListGeoLocations", path: "/2013-04-01/geolocations", httpMethod: "GET", input: input) + } + /// Lists tags for up to 10 health checks or hosted zones. For information about using tags for cost allocation, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide. public func listTagsForResources(_ input: ListTagsForResourcesRequest) throws -> ListTagsForResourcesResponse { return try client.send(operation: "ListTagsForResources", path: "/2013-04-01/tags/{ResourceType}", httpMethod: "POST", input: input) @@ -241,11 +266,21 @@ public struct Route53 { return try client.send(operation: "ListTrafficPolicyInstancesByPolicy", path: "/2013-04-01/trafficpolicyinstances/trafficpolicy", httpMethod: "GET", input: input) } + /// Creates a configuration for DNS query logging. After you create a query logging configuration, Amazon Route 53 begins to publish log data to an Amazon CloudWatch Logs log group. DNS query logs contain information about the queries that Amazon Route 53 receives for a specified public hosted zone, such as the following: Amazon Route 53 edge location that responded to the DNS query Domain or subdomain that was requested DNS record type, such as A or AAAA DNS response code, such as NoError or ServFail Log Group and Resource Policy Before you create a query logging configuration, perform the following operations. If you create a query logging configuration using the Amazon Route 53 console, Amazon Route 53 performs these operations automatically. Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following: You must create the log group in the us-east-1 region. You must use the same AWS account to create the log group and the hosted zone that you want to configure query logging for. When you create log groups for query logging, we recommend that you use a consistent prefix, for example: /aws/route53/hosted zone name In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated AWS resources, such as Amazon Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging. Create a CloudWatch Logs resource policy, and give it the permissions that Amazon Route 53 needs to create log streams and to send query logs to log streams. For the value of Resource, specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with *, for example: arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the AWS SDKs, or the AWS CLI. Log Streams and Edge Locations When Amazon Route 53 finishes creating the configuration for DNS query logging, it does the following: Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Amazon Route 53 responds to for that edge location. Begins to send query logs to the applicable log stream. The name of each log stream is in the following format: hosted zone ID/edge location code The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see "The Amazon Route 53 Global Network" on the Amazon Route 53 Product Details page. Queries That Are Logged Query logs contain only the queries that DNS resolvers forward to Amazon Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Amazon Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see Routing Internet Traffic to Your Website or Web Application in the Amazon Route 53 Developer Guide. Log File Format For a list of the values in each query log and the format of each value, see Logging DNS Queries in the Amazon Route 53 Developer Guide. Pricing For information about charges for query logs, see Amazon CloudWatch Pricing. How to Stop Logging If you want Amazon Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see DeleteQueryLoggingConfig. + public func createQueryLoggingConfig(_ input: CreateQueryLoggingConfigRequest) throws -> CreateQueryLoggingConfigResponse { + return try client.send(operation: "CreateQueryLoggingConfig", path: "/2013-04-01/queryloggingconfig", httpMethod: "POST", input: input) + } + /// Associates an Amazon VPC with a private hosted zone. To perform the association, the VPC and the private hosted zone must already exist. You can't convert a public hosted zone into a private hosted zone. If you want to associate a VPC that was created by using one AWS account with a private hosted zone that was created by using a different account, the AWS account that created the private hosted zone must first submit a CreateVPCAssociationAuthorization request. Then the account that created the VPC must submit an AssociateVPCWithHostedZone request. public func associateVPCWithHostedZone(_ input: AssociateVPCWithHostedZoneRequest) throws -> AssociateVPCWithHostedZoneResponse { return try client.send(operation: "AssociateVPCWithHostedZone", path: "/2013-04-01/hostedzone/{Id}/associatevpc", httpMethod: "POST", input: input) } + /// Deletes a configuration for DNS query logging. If you delete a configuration, Amazon Route 53 stops sending query logs to CloudWatch Logs. Amazon Route 53 doesn't delete any logs that are already in CloudWatch Logs. For more information about DNS query logs, see CreateQueryLoggingConfig. + public func deleteQueryLoggingConfig(_ input: DeleteQueryLoggingConfigRequest) throws -> DeleteQueryLoggingConfigResponse { + return try client.send(operation: "DeleteQueryLoggingConfig", path: "/2013-04-01/queryloggingconfig/{Id}", httpMethod: "DELETE", input: input) + } + /// Deletes a traffic policy instance and all of the resource record sets that Amazon Route 53 created when you created the instance. In the Amazon Route 53 console, traffic policy instances are known as policy records. public func deleteTrafficPolicyInstance(_ input: DeleteTrafficPolicyInstanceRequest) throws -> DeleteTrafficPolicyInstanceResponse { return try client.send(operation: "DeleteTrafficPolicyInstance", path: "/2013-04-01/trafficpolicyinstance/{Id}", httpMethod: "DELETE", input: input) diff --git a/Sources/AWSSDKSwift/Services/route53/Route53_Error.swift b/Sources/AWSSDKSwift/Services/route53/Route53_Error.swift index 7eb61baf90c..cdcbb329659 100644 --- a/Sources/AWSSDKSwift/Services/route53/Route53_Error.swift +++ b/Sources/AWSSDKSwift/Services/route53/Route53_Error.swift @@ -9,6 +9,7 @@ public enum Route53Error: AWSErrorType { case trafficPolicyAlreadyExists(message: String?) case invalidTrafficPolicyDocument(message: String?) case noSuchTrafficPolicyInstance(message: String?) + case noSuchQueryLoggingConfig(message: String?) case noSuchHostedZone(message: String?) case invalidVPCId(message: String?) case vPCAssociationNotFound(message: String?) @@ -16,32 +17,36 @@ public enum Route53Error: AWSErrorType { case noSuchHealthCheck(message: String?) case priorRequestNotComplete(message: String?) case throttlingException(message: String?) - case healthCheckInUse(message: String?) case noSuchDelegationSet(message: String?) + case hostedZoneNotPrivate(message: String?) + case healthCheckInUse(message: String?) + case invalidDomainName(message: String?) case delegationSetNotReusable(message: String?) - case noSuchTrafficPolicy(message: String?) - case concurrentModification(message: String?) case incompatibleVersion(message: String?) + case concurrentModification(message: String?) case tooManyVPCAssociationAuthorizations(message: String?) - case invalidDomainName(message: String?) + case noSuchTrafficPolicy(message: String?) case delegationSetAlreadyCreated(message: String?) case limitsExceeded(message: String?) case hostedZoneNotFound(message: String?) case invalidArgument(message: String?) case delegationSetNotAvailable(message: String?) case delegationSetAlreadyReusable(message: String?) - case tooManyHealthChecks(message: String?) - case healthCheckAlreadyExists(message: String?) case hostedZoneNotEmpty(message: String?) case vPCAssociationAuthorizationNotFound(message: String?) + case tooManyHealthChecks(message: String?) + case healthCheckAlreadyExists(message: String?) case noSuchChange(message: String?) case healthCheckVersionMismatch(message: String?) - case conflictingTypes(message: String?) + case invalidPaginationToken(message: String?) case invalidChangeBatch(message: String?) + case conflictingTypes(message: String?) case trafficPolicyInUse(message: String?) case tooManyTrafficPolicyInstances(message: String?) case trafficPolicyInstanceAlreadyExists(message: String?) - case invalidPaginationToken(message: String?) + case noSuchCloudWatchLogsLogGroup(message: String?) + case queryLoggingConfigAlreadyExists(message: String?) + case insufficientCloudWatchLogsResourcePolicy(message: String?) case notAuthorizedException(message: String?) case publicZoneVPCAssociation(message: String?) case conflictingDomainExists(message: String?) @@ -68,6 +73,8 @@ extension Route53Error { self = .invalidTrafficPolicyDocument(message: message) case "NoSuchTrafficPolicyInstance": self = .noSuchTrafficPolicyInstance(message: message) + case "NoSuchQueryLoggingConfig": + self = .noSuchQueryLoggingConfig(message: message) case "NoSuchHostedZone": self = .noSuchHostedZone(message: message) case "InvalidVPCId": @@ -82,22 +89,24 @@ extension Route53Error { self = .priorRequestNotComplete(message: message) case "ThrottlingException": self = .throttlingException(message: message) - case "HealthCheckInUse": - self = .healthCheckInUse(message: message) case "NoSuchDelegationSet": self = .noSuchDelegationSet(message: message) + case "HostedZoneNotPrivate": + self = .hostedZoneNotPrivate(message: message) + case "HealthCheckInUse": + self = .healthCheckInUse(message: message) + case "InvalidDomainName": + self = .invalidDomainName(message: message) case "DelegationSetNotReusable": self = .delegationSetNotReusable(message: message) - case "NoSuchTrafficPolicy": - self = .noSuchTrafficPolicy(message: message) - case "ConcurrentModification": - self = .concurrentModification(message: message) case "IncompatibleVersion": self = .incompatibleVersion(message: message) + case "ConcurrentModification": + self = .concurrentModification(message: message) case "TooManyVPCAssociationAuthorizations": self = .tooManyVPCAssociationAuthorizations(message: message) - case "InvalidDomainName": - self = .invalidDomainName(message: message) + case "NoSuchTrafficPolicy": + self = .noSuchTrafficPolicy(message: message) case "DelegationSetAlreadyCreated": self = .delegationSetAlreadyCreated(message: message) case "LimitsExceeded": @@ -110,30 +119,36 @@ extension Route53Error { self = .delegationSetNotAvailable(message: message) case "DelegationSetAlreadyReusable": self = .delegationSetAlreadyReusable(message: message) - case "TooManyHealthChecks": - self = .tooManyHealthChecks(message: message) - case "HealthCheckAlreadyExists": - self = .healthCheckAlreadyExists(message: message) case "HostedZoneNotEmpty": self = .hostedZoneNotEmpty(message: message) case "VPCAssociationAuthorizationNotFound": self = .vPCAssociationAuthorizationNotFound(message: message) + case "TooManyHealthChecks": + self = .tooManyHealthChecks(message: message) + case "HealthCheckAlreadyExists": + self = .healthCheckAlreadyExists(message: message) case "NoSuchChange": self = .noSuchChange(message: message) case "HealthCheckVersionMismatch": self = .healthCheckVersionMismatch(message: message) - case "ConflictingTypes": - self = .conflictingTypes(message: message) + case "InvalidPaginationToken": + self = .invalidPaginationToken(message: message) case "InvalidChangeBatch": self = .invalidChangeBatch(message: message) + case "ConflictingTypes": + self = .conflictingTypes(message: message) case "TrafficPolicyInUse": self = .trafficPolicyInUse(message: message) case "TooManyTrafficPolicyInstances": self = .tooManyTrafficPolicyInstances(message: message) case "TrafficPolicyInstanceAlreadyExists": self = .trafficPolicyInstanceAlreadyExists(message: message) - case "InvalidPaginationToken": - self = .invalidPaginationToken(message: message) + case "NoSuchCloudWatchLogsLogGroup": + self = .noSuchCloudWatchLogsLogGroup(message: message) + case "QueryLoggingConfigAlreadyExists": + self = .queryLoggingConfigAlreadyExists(message: message) + case "InsufficientCloudWatchLogsResourcePolicy": + self = .insufficientCloudWatchLogsResourcePolicy(message: message) case "NotAuthorizedException": self = .notAuthorizedException(message: message) case "PublicZoneVPCAssociation": diff --git a/Sources/AWSSDKSwift/Services/route53/Route53_Shapes.swift b/Sources/AWSSDKSwift/Services/route53/Route53_Shapes.swift index de0c26810dd..253deaf775e 100644 --- a/Sources/AWSSDKSwift/Services/route53/Route53_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/route53/Route53_Shapes.swift @@ -6,37 +6,42 @@ import AWSSDKSwiftCore extension Route53 { public struct HostedZone: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Config", required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "ResourceRecordSetCount", required: false, type: .long), + AWSShapeMember(label: "LinkedService", required: false, type: .structure), + AWSShapeMember(label: "Config", required: false, type: .structure), AWSShapeMember(label: "CallerReference", required: true, type: .string), - AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] - /// A complex type that includes the Comment and PrivateZone elements. If you omitted the HostedZoneConfig and Comment elements from the request, the Config and Comment elements don't appear in the response. - public let config: HostedZoneConfig? + /// The name of the domain. For public hosted zones, this is the name that you have registered with your DNS registrar. For information about how to specify characters other than a-z, 0-9, and - (hyphen) and how to specify internationalized domain names, see CreateHostedZone. + public let name: String /// The number of resource record sets in the hosted zone. public let resourceRecordSetCount: Int64? + /// If the hosted zone was created by another service, the service that created the hosted zone. When a hosted zone is created by another service, you can't edit or delete it using Amazon Route 53. + public let linkedService: LinkedService? + /// A complex type that includes the Comment and PrivateZone elements. If you omitted the HostedZoneConfig and Comment elements from the request, the Config and Comment elements don't appear in the response. + public let config: HostedZoneConfig? /// The value that you specified for CallerReference when you created the hosted zone. public let callerReference: String - /// The name of the domain. For public hosted zones, this is the name that you have registered with your DNS registrar. For information about how to specify characters other than a-z, 0-9, and - (hyphen) and how to specify internationalized domain names, see CreateHostedZone. - public let name: String /// The ID that Amazon Route 53 assigned to the hosted zone when you created it. public let id: String - public init(config: HostedZoneConfig? = nil, resourceRecordSetCount: Int64? = nil, callerReference: String, name: String, id: String) { - self.config = config + public init(name: String, resourceRecordSetCount: Int64? = nil, linkedService: LinkedService? = nil, config: HostedZoneConfig? = nil, callerReference: String, id: String) { + self.name = name self.resourceRecordSetCount = resourceRecordSetCount + self.linkedService = linkedService + self.config = config self.callerReference = callerReference - self.name = name self.id = id } private enum CodingKeys: String, CodingKey { - case config = "Config" + case name = "Name" case resourceRecordSetCount = "ResourceRecordSetCount" + case linkedService = "LinkedService" + case config = "Config" case callerReference = "CallerReference" - case name = "Name" case id = "Id" } } @@ -49,7 +54,7 @@ extension Route53 { } public struct DelegationSetNameServers: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NameServer", required: false, type: .list) ] public let nameServer: [String]? @@ -75,7 +80,7 @@ extension Route53 { } public struct ListHostedZonesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DelegationSetId", location: .querystring(locationName: "delegationsetid"), required: false, type: .string), AWSShapeMember(label: "Marker", location: .querystring(locationName: "marker"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string) @@ -101,7 +106,7 @@ extension Route53 { } public struct GetTrafficPolicyInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The ID of the traffic policy instance that you want to get information about. @@ -116,23 +121,29 @@ extension Route53 { } } - public struct TrafficPolicyInstances: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TrafficPolicyInstance", required: false, type: .list) + public struct GetHostedZoneLimitRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", location: .uri(locationName: "Type"), required: true, type: .enum), + AWSShapeMember(label: "HostedZoneId", location: .uri(locationName: "Id"), required: true, type: .string) ] - public let trafficPolicyInstance: [TrafficPolicyInstance]? + /// The limit that you want to get. Valid values include the following: MAX_RRSETS_BY_ZONE: The maximum number of records that you can create in the specified hosted zone. MAX_VPCS_ASSOCIATED_BY_TYPE: The maximum number of Amazon VPCs that you can associate with the specified private hosted zone. + public let `type`: HostedZoneLimitType + /// The ID of the hosted zone that you want to get a limit for. + public let hostedZoneId: String - public init(trafficPolicyInstance: [TrafficPolicyInstance]? = nil) { - self.trafficPolicyInstance = trafficPolicyInstance + public init(type: HostedZoneLimitType, hostedZoneId: String) { + self.`type` = `type` + self.hostedZoneId = hostedZoneId } private enum CodingKeys: String, CodingKey { - case trafficPolicyInstance = "TrafficPolicyInstance" + case `type` = "Type" + case hostedZoneId = "Id" } } public struct GeoLocationDetailsList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GeoLocationDetails", required: false, type: .list) ] public let geoLocationDetails: [GeoLocationDetails]? @@ -146,8 +157,23 @@ extension Route53 { } } + public struct TrafficPolicyInstances: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TrafficPolicyInstance", required: false, type: .list) + ] + public let trafficPolicyInstance: [TrafficPolicyInstance]? + + public init(trafficPolicyInstance: [TrafficPolicyInstance]? = nil) { + self.trafficPolicyInstance = trafficPolicyInstance + } + + private enum CodingKeys: String, CodingKey { + case trafficPolicyInstance = "TrafficPolicyInstance" + } + } + public struct GetHealthCheckStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckObservations", required: true, type: .structure) ] /// A list that contains one HealthCheckObservation element for each Amazon Route 53 health checker that is reporting a status about the health check endpoint. @@ -163,7 +189,7 @@ extension Route53 { } public struct ListVPCAssociationAuthorizationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nexttoken"), required: false, type: .string), AWSShapeMember(label: "HostedZoneId", location: .uri(locationName: "Id"), required: true, type: .string), AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxresults"), required: false, type: .string) @@ -188,8 +214,55 @@ extension Route53 { } } + public struct ListQueryLoggingConfigsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nexttoken"), required: false, type: .string), + AWSShapeMember(label: "HostedZoneId", location: .querystring(locationName: "hostedzoneid"), required: false, type: .string), + AWSShapeMember(label: "MaxResults", location: .querystring(locationName: "maxresults"), required: false, type: .string) + ] + /// (Optional) If the current AWS account has more than MaxResults query logging configurations, use NextToken to get the second and subsequent pages of results. For the first ListQueryLoggingConfigs request, omit this value. For the second and subsequent requests, get the value of NextToken from the previous response and specify that value for NextToken in the request. + public let nextToken: String? + /// (Optional) If you want to list the query logging configuration that is associated with a hosted zone, specify the ID in HostedZoneId. If you don't specify a hosted zone ID, ListQueryLoggingConfigs returns all of the configurations that are associated with the current AWS account. + public let hostedZoneId: String? + /// (Optional) The maximum number of query logging configurations that you want Amazon Route 53 to return in response to the current request. If the current AWS account has more than MaxResults configurations, use the value of ListQueryLoggingConfigsResponse$NextToken in the response to get the next page of results. If you don't specify a value for MaxResults, Amazon Route 53 returns up to 100 configurations. + public let maxResults: String? + + public init(nextToken: String? = nil, hostedZoneId: String? = nil, maxResults: String? = nil) { + self.nextToken = nextToken + self.hostedZoneId = hostedZoneId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nexttoken" + case hostedZoneId = "hostedzoneid" + case maxResults = "maxresults" + } + } + + public struct LinkedService: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServicePrincipal", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// If the health check or hosted zone was created by another service, the service that created the resource. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. + public let servicePrincipal: String? + /// If the health check or hosted zone was created by another service, an optional description that can be provided by the other service. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. + public let description: String? + + public init(servicePrincipal: String? = nil, description: String? = nil) { + self.servicePrincipal = servicePrincipal + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case servicePrincipal = "ServicePrincipal" + case description = "Description" + } + } + public struct DeleteReusableDelegationSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The ID of the reusable delegation set that you want to delete. @@ -205,7 +278,7 @@ extension Route53 { } public struct CreateHealthCheckResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheck", required: true, type: .structure), AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: true, type: .string) ] @@ -225,8 +298,24 @@ extension Route53 { } } + public struct DeleteQueryLoggingConfigRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) + ] + /// The ID of the configuration that you want to delete. + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "Id" + } + } + public struct TestDNSAnswerRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordType", location: .querystring(locationName: "recordtype"), required: true, type: .enum), AWSShapeMember(label: "EDNS0ClientSubnetIP", location: .querystring(locationName: "edns0clientsubnetip"), required: false, type: .string), AWSShapeMember(label: "EDNS0ClientSubnetMask", location: .querystring(locationName: "edns0clientsubnetmask"), required: false, type: .string), @@ -267,7 +356,7 @@ extension Route53 { } public struct ListTrafficPoliciesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "MaxItems", required: true, type: .string), AWSShapeMember(label: "TrafficPolicyIdMarker", required: true, type: .string), @@ -298,7 +387,7 @@ extension Route53 { } public struct GetTrafficPolicyInstanceCountResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrafficPolicyInstanceCount", required: true, type: .integer) ] /// The number of traffic policy instances that are associated with the current AWS account. @@ -314,7 +403,7 @@ extension Route53 { } public struct GetHealthCheckLastFailureReasonRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckId", location: .uri(locationName: "HealthCheckId"), required: true, type: .string) ] /// The ID for the health check for which you want the last failure reason. When you created the health check, CreateHealthCheck returned the ID in the response, in the HealthCheckId element. @@ -330,7 +419,7 @@ extension Route53 { } public struct TrafficPolicySummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LatestVersion", required: true, type: .integer), AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Name", required: true, type: .string), @@ -366,7 +455,7 @@ extension Route53 { } public struct ChangeBatch: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Changes", required: true, type: .structure), AWSShapeMember(label: "Comment", required: false, type: .string) ] @@ -387,7 +476,7 @@ extension Route53 { } public struct UpdateTrafficPolicyInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrafficPolicyVersion", required: true, type: .integer), AWSShapeMember(label: "TrafficPolicyId", required: true, type: .string), AWSShapeMember(label: "TTL", required: true, type: .long), @@ -418,7 +507,7 @@ extension Route53 { } public struct ListHostedZonesByNameRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string), AWSShapeMember(label: "HostedZoneId", location: .querystring(locationName: "hostedzoneid"), required: false, type: .string), AWSShapeMember(label: "DNSName", location: .querystring(locationName: "dnsname"), required: false, type: .string) @@ -444,7 +533,7 @@ extension Route53 { } public struct HealthCheckObservations: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckObservation", required: false, type: .list) ] public let healthCheckObservation: [HealthCheckObservation]? @@ -495,11 +584,12 @@ extension Route53 { case srv = "SRV" case spf = "SPF" case aaaa = "AAAA" + case caa = "CAA" public var description: String { return self.rawValue } } public struct UpdateHealthCheckResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheck", required: true, type: .structure) ] public let healthCheck: HealthCheck @@ -514,7 +604,7 @@ extension Route53 { } public struct ListTrafficPolicyInstancesByHostedZoneResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "MaxItems", required: true, type: .string), AWSShapeMember(label: "TrafficPolicyInstances", required: true, type: .structure), @@ -554,7 +644,7 @@ extension Route53 { } public struct AssociateVPCWithHostedZoneRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VPC", required: true, type: .structure), AWSShapeMember(label: "HostedZoneId", location: .uri(locationName: "Id"), required: true, type: .string), AWSShapeMember(label: "Comment", required: false, type: .string) @@ -580,7 +670,7 @@ extension Route53 { } public struct ResourceRecord: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string) ] /// The current or new DNS record value, not to exceed 4,000 characters. In the case of a DELETE action, if the current value does not match the actual value, an error is returned. For descriptions about how to format Value for different record types, see Supported DNS Resource Record Types in the Amazon Route 53 Developer Guide. You can specify more than one value for all record types except CNAME and SOA. If you're creating an alias resource record set, omit Value. @@ -596,7 +686,7 @@ extension Route53 { } public struct GetHealthCheckStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckId", location: .uri(locationName: "HealthCheckId"), required: true, type: .string) ] /// The ID for the health check that you want the current status for. When you created the health check, CreateHealthCheck returned the ID in the response, in the HealthCheckId element. If you want to check the status of a calculated health check, you must use the Amazon Route 53 console or the CloudWatch console. You can't use GetHealthCheckStatus to get the status of a calculated health check. @@ -612,7 +702,7 @@ extension Route53 { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -633,7 +723,7 @@ extension Route53 { } public struct DelegationSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NameServers", required: true, type: .structure), AWSShapeMember(label: "CallerReference", required: false, type: .string), AWSShapeMember(label: "Id", required: false, type: .string) @@ -659,7 +749,7 @@ extension Route53 { } public struct VPCs: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VPC", required: false, type: .list) ] public let vpc: [VPC]? @@ -673,8 +763,29 @@ extension Route53 { } } + public struct CreateQueryLoggingConfigResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "QueryLoggingConfig", required: true, type: .structure), + AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: true, type: .string) + ] + /// A complex type that contains the ID for a query logging configuration, the ID of the hosted zone that you want to log queries for, and the ARN for the log group that you want Amazon Route 53 to send query logs to. + public let queryLoggingConfig: QueryLoggingConfig + /// The unique URL representing the new query logging configuration. + public let location: String + + public init(queryLoggingConfig: QueryLoggingConfig, location: String) { + self.queryLoggingConfig = queryLoggingConfig + self.location = location + } + + private enum CodingKeys: String, CodingKey { + case queryLoggingConfig = "QueryLoggingConfig" + case location = "Location" + } + } + public struct ChildHealthCheckList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChildHealthCheck", required: false, type: .list) ] public let childHealthCheck: [String]? @@ -688,8 +799,24 @@ extension Route53 { } } + public struct GetQueryLoggingConfigResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "QueryLoggingConfig", required: true, type: .structure) + ] + /// A complex type that contains information about the query logging configuration that you specified in a GetQueryLoggingConfig request. + public let queryLoggingConfig: QueryLoggingConfig + + public init(queryLoggingConfig: QueryLoggingConfig) { + self.queryLoggingConfig = queryLoggingConfig + } + + private enum CodingKeys: String, CodingKey { + case queryLoggingConfig = "QueryLoggingConfig" + } + } + public struct UpdateTrafficPolicyCommentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Comment", required: true, type: .string), AWSShapeMember(label: "Version", location: .uri(locationName: "Version"), required: true, type: .integer), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) @@ -715,7 +842,7 @@ extension Route53 { } public struct CreateTrafficPolicyVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: true, type: .string), AWSShapeMember(label: "TrafficPolicy", required: true, type: .structure) ] @@ -736,7 +863,7 @@ extension Route53 { } public struct ListTrafficPolicyInstancesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "HostedZoneIdMarker", required: false, type: .string), AWSShapeMember(label: "TrafficPolicyInstances", required: true, type: .structure), @@ -777,7 +904,7 @@ extension Route53 { } public struct ListHostedZonesByNameResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostedZones", required: true, type: .structure), AWSShapeMember(label: "MaxItems", required: true, type: .string), AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), @@ -823,7 +950,7 @@ extension Route53 { } public struct CreateHealthCheckRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckConfig", required: true, type: .structure), AWSShapeMember(label: "CallerReference", required: true, type: .string) ] @@ -844,7 +971,7 @@ extension Route53 { } public struct CreateReusableDelegationSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: true, type: .string), AWSShapeMember(label: "DelegationSet", required: true, type: .structure) ] @@ -865,7 +992,7 @@ extension Route53 { } public struct AssociateVPCWithHostedZoneResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeInfo", required: true, type: .structure) ] /// A complex type that describes the changes made to your hosted zone. @@ -880,10 +1007,32 @@ extension Route53 { } } + public struct GetAccountLimitResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: true, type: .structure), + AWSShapeMember(label: "Count", required: true, type: .long) + ] + /// The current setting for the specified limit. For example, if you specified MAX_HEALTH_CHECKS_BY_OWNER for the value of Type in the request, the value of Limit is the maximum number of health checks that you can create using the current account. + public let limit: AccountLimit + /// The current number of entities that you have created of the specified type. For example, if you specified MAX_HEALTH_CHECKS_BY_OWNER for the value of Type in the request, the value of Count is the current number of health checks that you have created using the current account. + public let count: Int64 + + public init(limit: AccountLimit, count: Int64) { + self.limit = limit + self.count = count + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case count = "Count" + } + } + public struct HealthCheck: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckVersion", required: true, type: .long), AWSShapeMember(label: "HealthCheckConfig", required: true, type: .structure), + AWSShapeMember(label: "LinkedService", required: false, type: .structure), AWSShapeMember(label: "CloudWatchAlarmConfiguration", required: false, type: .structure), AWSShapeMember(label: "CallerReference", required: true, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) @@ -892,6 +1041,8 @@ extension Route53 { public let healthCheckVersion: Int64 /// A complex type that contains detailed information about one health check. public let healthCheckConfig: HealthCheckConfig + /// If the health check was created by another service, the service that created the health check. When a health check is created by another service, you can't edit or delete it using Amazon Route 53. + public let linkedService: LinkedService? /// A complex type that contains information about the CloudWatch alarm that Amazon Route 53 is monitoring for this health check. public let cloudWatchAlarmConfiguration: CloudWatchAlarmConfiguration? /// A unique string that you specified when you created the health check. @@ -899,9 +1050,10 @@ extension Route53 { /// The identifier that Amazon Route 53assigned to the health check when you created it. When you add or update a resource record set, you use this value to specify which health check to use. The value can be up to 64 characters long. public let id: String - public init(healthCheckVersion: Int64, healthCheckConfig: HealthCheckConfig, cloudWatchAlarmConfiguration: CloudWatchAlarmConfiguration? = nil, callerReference: String, id: String) { + public init(healthCheckVersion: Int64, healthCheckConfig: HealthCheckConfig, linkedService: LinkedService? = nil, cloudWatchAlarmConfiguration: CloudWatchAlarmConfiguration? = nil, callerReference: String, id: String) { self.healthCheckVersion = healthCheckVersion self.healthCheckConfig = healthCheckConfig + self.linkedService = linkedService self.cloudWatchAlarmConfiguration = cloudWatchAlarmConfiguration self.callerReference = callerReference self.id = id @@ -910,6 +1062,7 @@ extension Route53 { private enum CodingKeys: String, CodingKey { case healthCheckVersion = "HealthCheckVersion" case healthCheckConfig = "HealthCheckConfig" + case linkedService = "LinkedService" case cloudWatchAlarmConfiguration = "CloudWatchAlarmConfiguration" case callerReference = "CallerReference" case id = "Id" @@ -917,7 +1070,7 @@ extension Route53 { } public struct CloudWatchAlarmConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Threshold", required: true, type: .double), AWSShapeMember(label: "MetricName", required: true, type: .string), AWSShapeMember(label: "Period", required: true, type: .integer), @@ -968,7 +1121,7 @@ extension Route53 { } public struct DisassociateVPCFromHostedZoneResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeInfo", required: true, type: .structure) ] /// A complex type that describes the changes made to the specified private hosted zone. @@ -984,7 +1137,7 @@ extension Route53 { } public struct GetChangeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeInfo", required: true, type: .structure) ] /// A complex type that contains information about the specified change batch. @@ -1000,7 +1153,7 @@ extension Route53 { } public struct UpdateHealthCheckRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckVersion", required: false, type: .long), AWSShapeMember(label: "IPAddress", required: false, type: .string), AWSShapeMember(label: "ChildHealthChecks", required: false, type: .structure), @@ -1009,10 +1162,11 @@ extension Route53 { AWSShapeMember(label: "Inverted", required: false, type: .boolean), AWSShapeMember(label: "AlarmIdentifier", required: false, type: .structure), AWSShapeMember(label: "HealthCheckId", location: .uri(locationName: "HealthCheckId"), required: true, type: .string), - AWSShapeMember(label: "Regions", required: false, type: .structure), + AWSShapeMember(label: "ResetElements", required: false, type: .structure), AWSShapeMember(label: "HealthThreshold", required: false, type: .integer), AWSShapeMember(label: "SearchString", required: false, type: .string), AWSShapeMember(label: "FullyQualifiedDomainName", required: false, type: .string), + AWSShapeMember(label: "Regions", required: false, type: .structure), AWSShapeMember(label: "FailureThreshold", required: false, type: .integer), AWSShapeMember(label: "EnableSNI", required: false, type: .boolean), AWSShapeMember(label: "Port", required: false, type: .integer) @@ -1032,14 +1186,16 @@ extension Route53 { public let alarmIdentifier: AlarmIdentifier? /// The ID for the health check for which you want detailed information. When you created the health check, CreateHealthCheck returned the ID in the response, in the HealthCheckId element. public let healthCheckId: String - /// A complex type that contains one Region element for each region that you want Amazon Route 53 health checkers to check the specified endpoint from. - public let regions: HealthCheckRegionList? + /// A complex type that contains one ResettableElementName element for each element that you want to reset to the default value. Valid values for ResettableElementName include the following: ChildHealthChecks: Amazon Route 53 resets HealthCheckConfig$ChildHealthChecks to null. FullyQualifiedDomainName: Amazon Route 53 resets HealthCheckConfig$FullyQualifiedDomainName to null. Regions: Amazon Route 53 resets the HealthCheckConfig$Regions list to the default set of regions. ResourcePath: Amazon Route 53 resets HealthCheckConfig$ResourcePath to null. + public let resetElements: ResettableElementNameList? /// The number of child health checks that are associated with a CALCULATED health that Amazon Route 53 must consider healthy for the CALCULATED health check to be considered healthy. To specify the child health checks that you want to associate with a CALCULATED health check, use the ChildHealthChecks and ChildHealthCheck elements. Note the following: If you specify a number greater than the number of child health checks, Amazon Route 53 always considers this health check to be unhealthy. If you specify 0, Amazon Route 53 always considers this health check to be healthy. public let healthThreshold: Int32? /// If the value of Type is HTTP_STR_MATCH or HTTP_STR_MATCH, the string that you want Amazon Route 53 to search for in the response body from the specified resource. If the string appears in the response body, Amazon Route 53 considers the resource healthy. (You can't change the value of Type when you update a health check.) public let searchString: String? /// Amazon Route 53 behavior depends on whether you specify a value for IPAddress. If a health check already has a value for IPAddress, you can change the value. However, you can't update an existing health check to add or remove the value of IPAddress. If you specify a value for IPAddress: Amazon Route 53 sends health check requests to the specified IPv4 or IPv6 address and passes the value of FullyQualifiedDomainName in the Host header for all health checks except TCP health checks. This is typically the fully qualified DNS name of the endpoint on which you want Amazon Route 53 to perform health checks. When Amazon Route 53 checks the health of an endpoint, here is how it constructs the Host header: If you specify a value of 80 for Port and HTTP or HTTP_STR_MATCH for Type, Amazon Route 53 passes the value of FullyQualifiedDomainName to the endpoint in the Host header. If you specify a value of 443 for Port and HTTPS or HTTPS_STR_MATCH for Type, Amazon Route 53 passes the value of FullyQualifiedDomainName to the endpoint in the Host header. If you specify another value for Port and any value except TCP for Type, Amazon Route 53 passes FullyQualifiedDomainName:Port to the endpoint in the Host header. If you don't specify a value for FullyQualifiedDomainName, Amazon Route 53 substitutes the value of IPAddress in the Host header in each of the above cases. If you don't specify a value for IPAddress: If you don't specify a value for IPAddress, Amazon Route 53 sends a DNS request to the domain that you specify in FullyQualifiedDomainName at the interval you specify in RequestInterval. Using an IPv4 address that is returned by DNS, Amazon Route 53 then checks the health of the endpoint. If you don't specify a value for IPAddress, Amazon Route 53 uses only IPv4 to send health checks to the endpoint. If there's no resource record set with a type of A for the name that you specify for FullyQualifiedDomainName, the health check fails with a "DNS resolution failed" error. If you want to check the health of weighted, latency, or failover resource record sets and you choose to specify the endpoint only by FullyQualifiedDomainName, we recommend that you create a separate health check for each endpoint. For example, create a health check for each HTTP server that is serving content for www.example.com. For the value of FullyQualifiedDomainName, specify the domain name of the server (such as us-east-2-www.example.com), not the name of the resource record sets (www.example.com). In this configuration, if the value of FullyQualifiedDomainName matches the name of the resource record sets and you then associate the health check with those resource record sets, health check results will be unpredictable. In addition, if the value of Type is HTTP, HTTPS, HTTP_STR_MATCH, or HTTPS_STR_MATCH, Amazon Route 53 passes the value of FullyQualifiedDomainName in the Host header, as it does when you specify a value for IPAddress. If the value of Type is TCP, Amazon Route 53 doesn't pass a Host header. public let fullyQualifiedDomainName: String? + /// A complex type that contains one Region element for each region that you want Amazon Route 53 health checkers to check the specified endpoint from. + public let regions: HealthCheckRegionList? /// The number of consecutive health checks that an endpoint must pass or fail for Amazon Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa. For more information, see How Amazon Route 53 Determines Whether an Endpoint Is Healthy in the Amazon Route 53 Developer Guide. If you don't specify a value for FailureThreshold, the default value is three health checks. public let failureThreshold: Int32? /// Specify whether you want Amazon Route 53 to send the value of FullyQualifiedDomainName to the endpoint in the client_hello message during TLS negotiation. This allows the endpoint to respond to HTTPS health check requests with the applicable SSL/TLS certificate. Some endpoints require that HTTPS requests include the host name in the client_hello message. If you don't enable SNI, the status of the health check will be SSL alert handshake_failure. A health check can also have that status for other reasons. If SNI is enabled and you're still getting the error, check the SSL/TLS configuration on your endpoint and confirm that your certificate is valid. The SSL/TLS certificate on your endpoint includes a domain name in the Common Name field and possibly several more in the Subject Alternative Names field. One of the domain names in the certificate should match the value that you specify for FullyQualifiedDomainName. If the endpoint responds to the client_hello message with a certificate that does not include the domain name that you specified in FullyQualifiedDomainName, a health checker will retry the handshake. In the second attempt, the health checker will omit FullyQualifiedDomainName from the client_hello message. @@ -1047,7 +1203,7 @@ extension Route53 { /// The port on the endpoint on which you want Amazon Route 53 to perform health checks. public let port: Int32? - public init(healthCheckVersion: Int64? = nil, iPAddress: String? = nil, childHealthChecks: ChildHealthCheckList? = nil, resourcePath: String? = nil, insufficientDataHealthStatus: InsufficientDataHealthStatus? = nil, inverted: Bool? = nil, alarmIdentifier: AlarmIdentifier? = nil, healthCheckId: String, regions: HealthCheckRegionList? = nil, healthThreshold: Int32? = nil, searchString: String? = nil, fullyQualifiedDomainName: String? = nil, failureThreshold: Int32? = nil, enableSNI: Bool? = nil, port: Int32? = nil) { + public init(healthCheckVersion: Int64? = nil, iPAddress: String? = nil, childHealthChecks: ChildHealthCheckList? = nil, resourcePath: String? = nil, insufficientDataHealthStatus: InsufficientDataHealthStatus? = nil, inverted: Bool? = nil, alarmIdentifier: AlarmIdentifier? = nil, healthCheckId: String, resetElements: ResettableElementNameList? = nil, healthThreshold: Int32? = nil, searchString: String? = nil, fullyQualifiedDomainName: String? = nil, regions: HealthCheckRegionList? = nil, failureThreshold: Int32? = nil, enableSNI: Bool? = nil, port: Int32? = nil) { self.healthCheckVersion = healthCheckVersion self.iPAddress = iPAddress self.childHealthChecks = childHealthChecks @@ -1056,10 +1212,11 @@ extension Route53 { self.inverted = inverted self.alarmIdentifier = alarmIdentifier self.healthCheckId = healthCheckId - self.regions = regions + self.resetElements = resetElements self.healthThreshold = healthThreshold self.searchString = searchString self.fullyQualifiedDomainName = fullyQualifiedDomainName + self.regions = regions self.failureThreshold = failureThreshold self.enableSNI = enableSNI self.port = port @@ -1074,10 +1231,11 @@ extension Route53 { case inverted = "Inverted" case alarmIdentifier = "AlarmIdentifier" case healthCheckId = "HealthCheckId" - case regions = "Regions" + case resetElements = "ResetElements" case healthThreshold = "HealthThreshold" case searchString = "SearchString" case fullyQualifiedDomainName = "FullyQualifiedDomainName" + case regions = "Regions" case failureThreshold = "FailureThreshold" case enableSNI = "EnableSNI" case port = "Port" @@ -1085,7 +1243,7 @@ extension Route53 { } public struct ListReusableDelegationSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", location: .querystring(locationName: "marker"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string) ] @@ -1106,7 +1264,7 @@ extension Route53 { } public struct Changes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Change", required: false, type: .list) ] public let change: [Change]? @@ -1121,7 +1279,7 @@ extension Route53 { } public struct ListTagsForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string), AWSShapeMember(label: "ResourceType", location: .uri(locationName: "ResourceType"), required: true, type: .enum) ] @@ -1141,8 +1299,34 @@ extension Route53 { } } + public struct QueryLoggingConfig: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CloudWatchLogsLogGroupArn", required: true, type: .string), + AWSShapeMember(label: "HostedZoneId", required: true, type: .string), + AWSShapeMember(label: "Id", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the CloudWatch Logs log group that Amazon Route 53 is publishing logs to. + public let cloudWatchLogsLogGroupArn: String + /// The ID of the hosted zone that CloudWatch Logs is logging queries for. + public let hostedZoneId: String + /// The ID for a configuration for DNS query logging. + public let id: String + + public init(cloudWatchLogsLogGroupArn: String, hostedZoneId: String, id: String) { + self.cloudWatchLogsLogGroupArn = cloudWatchLogsLogGroupArn + self.hostedZoneId = hostedZoneId + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case cloudWatchLogsLogGroupArn = "CloudWatchLogsLogGroupArn" + case hostedZoneId = "HostedZoneId" + case id = "Id" + } + } + public struct CreateTrafficPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: true, type: .string), AWSShapeMember(label: "TrafficPolicy", required: true, type: .structure) ] @@ -1163,7 +1347,7 @@ extension Route53 { } public struct ListTagsForResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceTagSet", required: true, type: .structure) ] /// A ResourceTagSet containing tags associated with the specified resource. @@ -1178,6 +1362,22 @@ extension Route53 { } } + public struct GetQueryLoggingConfigRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) + ] + /// The ID of the configuration for DNS query logging that you want to get information about. + public let id: String + + public init(id: String) { + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case id = "Id" + } + } + public enum TagResourceType: String, CustomStringConvertible, Codable { case healthcheck = "healthcheck" case hostedzone = "hostedzone" @@ -1185,14 +1385,14 @@ extension Route53 { } public struct AliasTarget: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DNSName", required: true, type: .string), AWSShapeMember(label: "HostedZoneId", required: true, type: .string), AWSShapeMember(label: "EvaluateTargetHealth", required: true, type: .boolean) ] - /// Alias resource record sets only: The value that you specify depends on where you want to route queries: CloudFront distribution Specify the domain name that CloudFront assigned when you created your distribution. Your CloudFront distribution must include an alternate domain name that matches the name of the resource record set. For example, if the name of the resource record set is acme.example.com, your CloudFront distribution must include acme.example.com as one of the alternate domain names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon CloudFront Developer Guide. Elastic Beanstalk environment Specify the CNAME attribute for the environment. (The environment must have a regionalized domain name.) You can use the following methods to get the value of the CNAME attribute: AWS Management Console: For information about how to get the value by using the console, see Using Custom Domains with AWS Elastic Beanstalk in the AWS Elastic Beanstalk Developer Guide. Elastic Beanstalk API: Use the DescribeEnvironments action to get the value of the CNAME attribute. For more information, see DescribeEnvironments in the AWS Elastic Beanstalk API Reference. AWS CLI: Use the describe-environments command to get the value of the CNAME attribute. For more information, see describe-environments in the AWS Command Line Interface Reference. ELB load balancer Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI. AWS Management Console: Go to the EC2 page, choose Load Balancers in the navigation pane, choose the load balancer, choose the Description tab, and get the value of the DNS name field. (If you're routing traffic to a Classic Load Balancer, get the value that begins with dualstack.) Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of DNSName. For more information, see the applicable guide: Classic Load Balancer: DescribeLoadBalancers Application Load Balancer: DescribeLoadBalancers AWS CLI: Use describe-load-balancers to get the value of DNSName. Amazon S3 bucket that is configured as a static website Specify the domain name of the Amazon S3 website endpoint in which you created the bucket, for example, s3-website-us-east-2.amazonaws.com. For more information about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the Amazon Web Services General Reference. For more information about using S3 buckets for websites, see Getting Started with Amazon Route 53 in the Amazon Route 53 Developer Guide. Another Amazon Route 53 resource record set Specify the value of the Name element for a resource record set in the current hosted zone. + /// Alias resource record sets only: The value that you specify depends on where you want to route queries: CloudFront distribution Specify the domain name that CloudFront assigned when you created your distribution. Your CloudFront distribution must include an alternate domain name that matches the name of the resource record set. For example, if the name of the resource record set is acme.example.com, your CloudFront distribution must include acme.example.com as one of the alternate domain names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon CloudFront Developer Guide. Elastic Beanstalk environment Specify the CNAME attribute for the environment. (The environment must have a regionalized domain name.) You can use the following methods to get the value of the CNAME attribute: AWS Management Console: For information about how to get the value by using the console, see Using Custom Domains with AWS Elastic Beanstalk in the AWS Elastic Beanstalk Developer Guide. Elastic Beanstalk API: Use the DescribeEnvironments action to get the value of the CNAME attribute. For more information, see DescribeEnvironments in the AWS Elastic Beanstalk API Reference. AWS CLI: Use the describe-environments command to get the value of the CNAME attribute. For more information, see describe-environments in the AWS Command Line Interface Reference. ELB load balancer Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI. AWS Management Console: Go to the EC2 page, choose Load Balancers in the navigation pane, choose the load balancer, choose the Description tab, and get the value of the DNS name field. (If you're routing traffic to a Classic Load Balancer, get the value that begins with dualstack.) Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of DNSName. For more information, see the applicable guide: Classic Load Balancers: DescribeLoadBalancers Application and Network Load Balancers: DescribeLoadBalancers AWS CLI: Use describe-load-balancers to get the value of DNSName. For more information, see the applicable guide: Classic Load Balancers: describe-load-balancers Application and Network Load Balancers: describe-load-balancers Amazon S3 bucket that is configured as a static website Specify the domain name of the Amazon S3 website endpoint in which you created the bucket, for example, s3-website-us-east-2.amazonaws.com. For more information about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the Amazon Web Services General Reference. For more information about using S3 buckets for websites, see Getting Started with Amazon Route 53 in the Amazon Route 53 Developer Guide. Another Amazon Route 53 resource record set Specify the value of the Name element for a resource record set in the current hosted zone. public let dNSName: String - /// Alias resource records sets only: The value used depends on where you want to route traffic: CloudFront distribution Specify Z2FDTNDATAQYW2. Alias resource record sets for CloudFront can't be created in a private zone. Elastic Beanstalk environment Specify the hosted zone ID for the region in which you created the environment. The environment must have a regionalized subdomain. For a list of regions and the corresponding hosted zone IDs, see AWS Elastic Beanstalk in the "AWS Regions and Endpoints" chapter of the Amazon Web Services General Reference. ELB load balancer Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone ID: Elastic Load Balancing table in the "AWS Regions and Endpoints" chapter of the Amazon Web Services General Reference: Use the value in the "Amazon Route 53 Hosted Zone ID" column that corresponds with the region that you created your load balancer in. AWS Management Console: Go to the Amazon EC2 page, click Load Balancers in the navigation pane, select the load balancer, and get the value of the Hosted zone field on the Description tab. Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of CanonicalHostedZoneNameId. For more information, see the applicable guide: Classic Load Balancer: DescribeLoadBalancers Application Load Balancer: DescribeLoadBalancers AWS CLI: Use describe-load-balancers to get the value of CanonicalHostedZoneNameID. An Amazon S3 bucket configured as a static website Specify the hosted zone ID for the region that you created the bucket in. For more information about valid values, see the Amazon Simple Storage Service Website Endpoints table in the "AWS Regions and Endpoints" chapter of the Amazon Web Services General Reference. Another Amazon Route 53 resource record set in your hosted zone Specify the hosted zone ID of your hosted zone. (An alias resource record set can't reference a resource record set in a different hosted zone.) + /// Alias resource records sets only: The value used depends on where you want to route traffic: CloudFront distribution Specify Z2FDTNDATAQYW2. Alias resource record sets for CloudFront can't be created in a private zone. Elastic Beanstalk environment Specify the hosted zone ID for the region in which you created the environment. The environment must have a regionalized subdomain. For a list of regions and the corresponding hosted zone IDs, see AWS Elastic Beanstalk in the "AWS Regions and Endpoints" chapter of the Amazon Web Services General Reference. ELB load balancer Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone ID: Elastic Load Balancing table in the "AWS Regions and Endpoints" chapter of the Amazon Web Services General Reference: Use the value that corresponds with the region that you created your load balancer in. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers. AWS Management Console: Go to the Amazon EC2 page, choose Load Balancers in the navigation pane, select the load balancer, and get the value of the Hosted zone field on the Description tab. Elastic Load Balancing API: Use DescribeLoadBalancers to get the applicable value. For more information, see the applicable guide: Classic Load Balancers: Use DescribeLoadBalancers to get the value of CanonicalHostedZoneNameId. Application and Network Load Balancers: Use DescribeLoadBalancers to get the value of CanonicalHostedZoneId. AWS CLI: Use describe-load-balancers to get the applicable value. For more information, see the applicable guide: Classic Load Balancers: Use describe-load-balancers to get the value of CanonicalHostedZoneNameId. Application and Network Load Balancers: Use describe-load-balancers to get the value of CanonicalHostedZoneId. An Amazon S3 bucket configured as a static website Specify the hosted zone ID for the region that you created the bucket in. For more information about valid values, see the Amazon Simple Storage Service Website Endpoints table in the "AWS Regions and Endpoints" chapter of the Amazon Web Services General Reference. Another Amazon Route 53 resource record set in your hosted zone Specify the hosted zone ID of your hosted zone. (An alias resource record set can't reference a resource record set in a different hosted zone.) public let hostedZoneId: String /// Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record sets: When EvaluateTargetHealth is true, an alias resource record set inherits the health of the referenced AWS resource, such as an ELB load balancer, or the referenced resource record set. Note the following: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution. If the AWS resource that you specify in AliasTarget is a resource record set or a group of resource record sets (for example, a group of weighted resource record sets), but it is not another alias resource record set, we recommend that you associate a health check with all of the resource record sets in the alias target. For more information, see What Happens When You Omit Health Checks? in the Amazon Route 53 Developer Guide. If you specify an Elastic Beanstalk environment in HostedZoneId and DNSName, and if the environment contains an ELB load balancer, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. (An environment automatically contains an ELB load balancer if it includes more than one EC2 instance.) If you set EvaluateTargetHealth to true and either no EC2 instances are healthy or the load balancer itself is unhealthy, Amazon Route 53 routes queries to other available resources that are healthy, if any. If the environment contains a single EC2 instance, there are no special requirements. If you specify an ELB load balancer in AliasTarget , ELB routes queries only to the healthy EC2 instances that are registered with the load balancer. If no EC2 instances are healthy or if the load balancer itself is unhealthy, and if EvaluateTargetHealth is true for the corresponding alias resource record set, Amazon Route 53 routes queries to other resources. When you create a load balancer, you configure settings for ELB health checks; they're not Amazon Route 53 health checks, but they perform a similar function. Do not create Amazon Route 53 health checks for the EC2 instances that you register with an ELB load balancer. For more information, see How Health Checks Work in More Complex Amazon Route 53 Configurations in the Amazon Route 53 Developer Guide. We recommend that you set EvaluateTargetHealth to true only when you have enough idle capacity to handle the failure of one or more endpoints. For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the Amazon Route 53 Developer Guide. public let evaluateTargetHealth: Bool @@ -1211,7 +1411,7 @@ extension Route53 { } public struct TrafficPolicyInstance: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string), AWSShapeMember(label: "TrafficPolicyType", required: true, type: .enum), AWSShapeMember(label: "Message", required: true, type: .string), @@ -1267,7 +1467,7 @@ extension Route53 { } public struct UpdateTrafficPolicyInstanceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrafficPolicyInstance", required: true, type: .structure) ] /// A complex type that contains settings for the updated traffic policy instance. @@ -1283,7 +1483,7 @@ extension Route53 { } public struct ListTrafficPoliciesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrafficPolicyIdMarker", location: .querystring(locationName: "trafficpolicyid"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string) ] @@ -1304,7 +1504,7 @@ extension Route53 { } public struct DelegationSets: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DelegationSet", required: false, type: .list) ] public let delegationSet: [DelegationSet]? @@ -1319,7 +1519,7 @@ extension Route53 { } public struct GetGeoLocationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContinentCode", location: .querystring(locationName: "continentcode"), required: false, type: .string), AWSShapeMember(label: "SubdivisionCode", location: .querystring(locationName: "subdivisioncode"), required: false, type: .string), AWSShapeMember(label: "CountryCode", location: .querystring(locationName: "countrycode"), required: false, type: .string) @@ -1344,8 +1544,29 @@ extension Route53 { } } + public struct AccountLimit: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "Value", required: true, type: .long) + ] + /// The limit that you requested. Valid values include the following: MAX_HEALTH_CHECKS_BY_OWNER: The maximum number of health checks that you can create using the current account. MAX_HOSTED_ZONES_BY_OWNER: The maximum number of hosted zones that you can create using the current account. MAX_REUSABLE_DELEGATION_SETS_BY_OWNER: The maximum number of reusable delegation sets that you can create using the current account. MAX_TRAFFIC_POLICIES_BY_OWNER: The maximum number of traffic policies that you can create using the current account. MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER: The maximum number of traffic policy instances that you can create using the current account. (Traffic policy instances are referred to as traffic flow policy records in the Amazon Route 53 console.) + public let `type`: AccountLimitType + /// The current value for the limit that is specified by AccountLimit$Type. + public let value: Int64 + + public init(type: AccountLimitType, value: Int64) { + self.`type` = `type` + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case value = "Value" + } + } + public struct DisassociateVPCFromHostedZoneRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VPC", required: true, type: .structure), AWSShapeMember(label: "HostedZoneId", location: .uri(locationName: "Id"), required: true, type: .string), AWSShapeMember(label: "Comment", required: false, type: .string) @@ -1371,7 +1592,7 @@ extension Route53 { } public struct DeleteHealthCheckRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckId", location: .uri(locationName: "HealthCheckId"), required: true, type: .string) ] /// The ID of the health check that you want to delete. @@ -1387,7 +1608,7 @@ extension Route53 { } public struct HealthCheckRegionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Region", required: false, type: .list) ] public let region: [HealthCheckRegion]? @@ -1402,7 +1623,7 @@ extension Route53 { } public struct CreateHostedZoneResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeInfo", required: true, type: .structure), AWSShapeMember(label: "HostedZone", required: true, type: .structure), AWSShapeMember(label: "VPC", required: false, type: .structure), @@ -1437,8 +1658,16 @@ extension Route53 { } } + public enum ResettableElementName: String, CustomStringConvertible, Codable { + case fullyqualifieddomainname = "FullyQualifiedDomainName" + case regions = "Regions" + case resourcepath = "ResourcePath" + case childhealthchecks = "ChildHealthChecks" + public var description: String { return self.rawValue } + } + public struct GetTrafficPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrafficPolicy", required: true, type: .structure) ] /// A complex type that contains settings for the specified traffic policy. @@ -1453,8 +1682,29 @@ extension Route53 { } } + public struct CreateQueryLoggingConfigRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CloudWatchLogsLogGroupArn", required: true, type: .string), + AWSShapeMember(label: "HostedZoneId", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) for the log group that you want to Amazon Route 53 to send query logs to. This is the format of the ARN: arn:aws:logs:region:account-id:log-group:log_group_name To get the ARN for a log group, you can use the CloudWatch console, the DescribeLogGroups API action, the describe-log-groups command, or the applicable command in one of the AWS SDKs. + public let cloudWatchLogsLogGroupArn: String + /// The ID of the hosted zone that you want to log queries for. You can log queries only for public hosted zones. + public let hostedZoneId: String + + public init(cloudWatchLogsLogGroupArn: String, hostedZoneId: String) { + self.cloudWatchLogsLogGroupArn = cloudWatchLogsLogGroupArn + self.hostedZoneId = hostedZoneId + } + + private enum CodingKeys: String, CodingKey { + case cloudWatchLogsLogGroupArn = "CloudWatchLogsLogGroupArn" + case hostedZoneId = "HostedZoneId" + } + } + public struct StatusReport: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "CheckedTime", required: false, type: .timestamp) ] @@ -1475,7 +1725,7 @@ extension Route53 { } public struct ResourceRecordSets: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceRecordSet", required: false, type: .list) ] public let resourceRecordSet: [ResourceRecordSet]? @@ -1490,7 +1740,7 @@ extension Route53 { } public struct TrafficPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Comment", required: false, type: .string), AWSShapeMember(label: "Version", required: true, type: .integer), AWSShapeMember(label: "Type", required: true, type: .enum), @@ -1531,7 +1781,7 @@ extension Route53 { } public struct GetGeoLocationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GeoLocationDetails", required: true, type: .structure) ] /// A complex type that contains the codes and full continent, country, and subdivision names for the specified geolocation code. @@ -1551,7 +1801,7 @@ extension Route53 { } public struct ListGeoLocationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextContinentCode", required: false, type: .string), AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "MaxItems", required: true, type: .string), @@ -1592,7 +1842,7 @@ extension Route53 { } public struct HealthCheckObservation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StatusReport", required: false, type: .structure), AWSShapeMember(label: "IPAddress", required: false, type: .string), AWSShapeMember(label: "Region", required: false, type: .enum) @@ -1617,8 +1867,23 @@ extension Route53 { } } + public struct QueryLoggingConfigs: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "QueryLoggingConfig", required: false, type: .list) + ] + public let queryLoggingConfig: [QueryLoggingConfig]? + + public init(queryLoggingConfig: [QueryLoggingConfig]? = nil) { + self.queryLoggingConfig = queryLoggingConfig + } + + private enum CodingKeys: String, CodingKey { + case queryLoggingConfig = "QueryLoggingConfig" + } + } + public struct HealthChecks: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheck", required: false, type: .list) ] public let healthCheck: [HealthCheck]? @@ -1633,7 +1898,7 @@ extension Route53 { } public struct Dimension: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1654,7 +1919,7 @@ extension Route53 { } public struct GetReusableDelegationSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The ID of the reusable delegation set that you want to get a list of name servers for. @@ -1670,7 +1935,7 @@ extension Route53 { } public struct CreateVPCAssociationAuthorizationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostedZoneId", location: .uri(locationName: "Id"), required: true, type: .string), AWSShapeMember(label: "VPC", required: true, type: .structure) ] @@ -1695,7 +1960,7 @@ extension Route53 { } public struct TagResourceIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: false, type: .list) ] public let resourceId: [String]? @@ -1710,7 +1975,7 @@ extension Route53 { } public struct DimensionList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Dimension", required: false, type: .list) ] public let dimension: [Dimension]? @@ -1733,7 +1998,7 @@ extension Route53 { } public struct ListResourceRecordSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextRecordName", required: false, type: .string), AWSShapeMember(label: "ResourceRecordSets", required: true, type: .structure), AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), @@ -1774,7 +2039,7 @@ extension Route53 { } public struct ListHostedZonesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostedZones", required: true, type: .structure), AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "MaxItems", required: true, type: .string), @@ -1810,7 +2075,7 @@ extension Route53 { } public struct CreateTrafficPolicyInstanceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: true, type: .string), AWSShapeMember(label: "TrafficPolicyInstance", required: true, type: .structure) ] @@ -1843,7 +2108,7 @@ extension Route53 { } public struct ListTrafficPolicyInstancesByPolicyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "HostedZoneIdMarker", required: false, type: .string), AWSShapeMember(label: "TrafficPolicyInstances", required: true, type: .structure), @@ -1884,7 +2149,7 @@ extension Route53 { } public struct ChangeInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Comment", required: false, type: .string), AWSShapeMember(label: "Status", required: true, type: .enum), AWSShapeMember(label: "SubmittedAt", required: true, type: .timestamp), @@ -1926,7 +2191,7 @@ extension Route53 { } public struct GeoLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContinentCode", required: false, type: .string), AWSShapeMember(label: "SubdivisionCode", required: false, type: .string), AWSShapeMember(label: "CountryCode", required: false, type: .string) @@ -1952,7 +2217,7 @@ extension Route53 { } public struct ListResourceRecordSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartRecordIdentifier", location: .querystring(locationName: "identifier"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string), AWSShapeMember(label: "StartRecordName", location: .querystring(locationName: "name"), required: false, type: .string), @@ -1965,7 +2230,7 @@ extension Route53 { public let maxItems: String? /// The first name in the lexicographic ordering of resource record sets that you want to list. public let startRecordName: String? - /// The type of resource record set to begin the record listing from. Valid values for basic resource record sets: A | AAAA | CNAME | MX | NAPTR | NS | PTR | SOA | SPF | SRV | TXT Values for weighted, latency, geo, and failover resource record sets: A | AAAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT Values for alias resource record sets: CloudFront distribution: A or AAAA Elastic Beanstalk environment that has a regionalized subdomain: A ELB load balancer: A | AAAA Amazon S3 bucket: A Constraint: Specifying type without specifying name returns an InvalidInput error. + /// The type of resource record set to begin the record listing from. Valid values for basic resource record sets: A | AAAA | CAA | CNAME | MX | NAPTR | NS | PTR | SOA | SPF | SRV | TXT Values for weighted, latency, geo, and failover resource record sets: A | AAAA | CAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT Values for alias resource record sets: CloudFront distribution: A or AAAA Elastic Beanstalk environment that has a regionalized subdomain: A ELB load balancer: A | AAAA Amazon S3 bucket: A Another resource record set in this hosted zone: The type of the resource record set that the alias references. Constraint: Specifying type without specifying name returns an InvalidInput error. public let startRecordType: RRType? /// The ID of the hosted zone that contains the resource record sets that you want to list. public let hostedZoneId: String @@ -1988,7 +2253,7 @@ extension Route53 { } public struct GetHealthCheckLastFailureReasonResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckObservations", required: true, type: .structure) ] /// A list that contains one Observation element for each Amazon Route 53 health checker that is reporting a last failure reason. @@ -2004,7 +2269,7 @@ extension Route53 { } public struct CreateTrafficPolicyVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Document", required: true, type: .string), AWSShapeMember(label: "Comment", required: false, type: .string), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) @@ -2030,7 +2295,7 @@ extension Route53 { } public struct GeoLocationDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubdivisionName", required: false, type: .string), AWSShapeMember(label: "SubdivisionCode", required: false, type: .string), AWSShapeMember(label: "CountryCode", required: false, type: .string), @@ -2075,7 +2340,7 @@ extension Route53 { } public struct ResourceTagSetList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceTagSet", required: false, type: .list) ] public let resourceTagSet: [ResourceTagSet]? @@ -2094,7 +2359,7 @@ extension Route53 { } public struct ListTrafficPolicyVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "MaxItems", required: true, type: .string), AWSShapeMember(label: "TrafficPolicyVersionMarker", required: true, type: .string), @@ -2124,8 +2389,29 @@ extension Route53 { } } + public struct GetReusableDelegationSetLimitRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", location: .uri(locationName: "Type"), required: true, type: .enum), + AWSShapeMember(label: "DelegationSetId", location: .uri(locationName: "Id"), required: true, type: .string) + ] + /// Specify MAX_ZONES_BY_REUSABLE_DELEGATION_SET to get the maximum number of hosted zones that you can associate with the specified reusable delegation set. + public let `type`: ReusableDelegationSetLimitType + /// The ID of the delegation set that you want to get the limit for. + public let delegationSetId: String + + public init(type: ReusableDelegationSetLimitType, delegationSetId: String) { + self.`type` = `type` + self.delegationSetId = delegationSetId + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case delegationSetId = "Id" + } + } + public struct TagList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tag", required: false, type: .list) ] public let tag: [Tag]? @@ -2140,7 +2426,7 @@ extension Route53 { } public struct GetHealthCheckRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckId", location: .uri(locationName: "HealthCheckId"), required: true, type: .string) ] /// The identifier that Amazon Route 53 assigned to the health check when you created it. When you add or update a resource record set, you use this value to specify which health check to use. The value can be up to 64 characters long. @@ -2156,7 +2442,7 @@ extension Route53 { } public struct ListHealthChecksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", location: .querystring(locationName: "marker"), required: false, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string) ] @@ -2176,8 +2462,22 @@ extension Route53 { } } + public enum ReusableDelegationSetLimitType: String, CustomStringConvertible, Codable { + case maxZonesByReusableDelegationSet = "MAX_ZONES_BY_REUSABLE_DELEGATION_SET" + public var description: String { return self.rawValue } + } + + public enum AccountLimitType: String, CustomStringConvertible, Codable { + case maxHealthChecksByOwner = "MAX_HEALTH_CHECKS_BY_OWNER" + case maxHostedZonesByOwner = "MAX_HOSTED_ZONES_BY_OWNER" + case maxTrafficPolicyInstancesByOwner = "MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER" + case maxReusableDelegationSetsByOwner = "MAX_REUSABLE_DELEGATION_SETS_BY_OWNER" + case maxTrafficPoliciesByOwner = "MAX_TRAFFIC_POLICIES_BY_OWNER" + public var description: String { return self.rawValue } + } + public struct RecordData: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordDataEntry", required: false, type: .list) ] public let recordDataEntry: [String]? @@ -2192,7 +2492,7 @@ extension Route53 { } public struct ListTagsForResourcesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceTagSets", required: true, type: .structure) ] /// A list of ResourceTagSets containing tags associated with the specified resources. @@ -2208,7 +2508,7 @@ extension Route53 { } public struct ListReusableDelegationSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "MaxItems", required: true, type: .string), AWSShapeMember(label: "NextMarker", required: false, type: .string), @@ -2244,7 +2544,7 @@ extension Route53 { } public struct AlarmIdentifier: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Region", required: true, type: .enum) ] @@ -2265,7 +2565,7 @@ extension Route53 { } public struct ListTrafficPolicyInstancesByPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string), AWSShapeMember(label: "HostedZoneIdMarker", location: .querystring(locationName: "hostedzoneid"), required: false, type: .string), AWSShapeMember(label: "TrafficPolicyInstanceTypeMarker", location: .querystring(locationName: "trafficpolicyinstancetype"), required: false, type: .enum), @@ -2306,7 +2606,7 @@ extension Route53 { } public struct ResourceRecordSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Failover", required: false, type: .enum), AWSShapeMember(label: "Weight", required: false, type: .long), AWSShapeMember(label: "Region", required: false, type: .enum), @@ -2345,7 +2645,7 @@ extension Route53 { public let setIdentifier: String? /// Information about the resource records to act upon. If you're creating an alias resource record set, omit ResourceRecords. public let resourceRecords: ResourceRecords? - /// The DNS record type. For information about different record types and how data is encoded for them, see Supported DNS Resource Record Types in the Amazon Route 53 Developer Guide. Valid values for basic resource record sets: A | AAAA | CNAME | MX | NAPTR | NS | PTR | SOA | SPF | SRV | TXT Values for weighted, latency, geolocation, and failover resource record sets: A | AAAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT. When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group. Valid values for multivalue answer resource record sets: A | AAAA | MX | NAPTR | PTR | SPF | SRV | TXT SPF records were formerly used to verify the identity of the sender of email messages. However, we no longer recommend that you create resource record sets for which the value of Type is SPF. RFC 7208, Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1, has been updated to say, "...[I]ts existence and mechanism defined in [RFC4408] have led to some interoperability issues. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it." In RFC 7208, see section 14.1, The SPF DNS Record Type. Values for alias resource record sets: CloudFront distributions: A If IPv6 is enabled for the distribution, create two resource record sets to route traffic to your distribution, one with a value of A and one with a value of AAAA. AWS Elastic Beanstalk environment that has a regionalized subdomain: A ELB load balancers: A | AAAA Amazon S3 buckets: A Another resource record set in this hosted zone: Specify the type of the resource record set that you're creating the alias for. All values are supported except NS and SOA. + /// The DNS record type. For information about different record types and how data is encoded for them, see Supported DNS Resource Record Types in the Amazon Route 53 Developer Guide. Valid values for basic resource record sets: A | AAAA | CAA | CNAME | MX | NAPTR | NS | PTR | SOA | SPF | SRV | TXT Values for weighted, latency, geolocation, and failover resource record sets: A | AAAA | CAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT. When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group. Valid values for multivalue answer resource record sets: A | AAAA | MX | NAPTR | PTR | SPF | SRV | TXT SPF records were formerly used to verify the identity of the sender of email messages. However, we no longer recommend that you create resource record sets for which the value of Type is SPF. RFC 7208, Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1, has been updated to say, "...[I]ts existence and mechanism defined in [RFC4408] have led to some interoperability issues. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it." In RFC 7208, see section 14.1, The SPF DNS Record Type. Values for alias resource record sets: CloudFront distributions: A If IPv6 is enabled for the distribution, create two resource record sets to route traffic to your distribution, one with a value of A and one with a value of AAAA. AWS Elastic Beanstalk environment that has a regionalized subdomain: A ELB load balancers: A | AAAA Amazon S3 buckets: A Another resource record set in this hosted zone: Specify the type of the resource record set that you're creating the alias for. All values are supported except NS and SOA. public let `type`: RRType public init(failover: ResourceRecordSetFailover? = nil, weight: Int64? = nil, region: ResourceRecordSetRegion? = nil, ttl: Int64? = nil, geoLocation: GeoLocation? = nil, trafficPolicyInstanceId: String? = nil, name: String, aliasTarget: AliasTarget? = nil, healthCheckId: String? = nil, multiValueAnswer: Bool? = nil, setIdentifier: String? = nil, resourceRecords: ResourceRecords? = nil, type: RRType) { @@ -2386,7 +2686,7 @@ extension Route53 { } public struct DeleteTrafficPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Version", location: .uri(locationName: "Version"), required: true, type: .integer), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] @@ -2406,8 +2706,29 @@ extension Route53 { } } + public struct ReusableDelegationSetLimit: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "Value", required: true, type: .long) + ] + /// The limit that you requested: MAX_ZONES_BY_REUSABLE_DELEGATION_SET, the maximum number of hosted zones that you can associate with the specified reusable delegation set. + public let `type`: ReusableDelegationSetLimitType + /// The current value for the MAX_ZONES_BY_REUSABLE_DELEGATION_SET limit. + public let value: Int64 + + public init(type: ReusableDelegationSetLimitType, value: Int64) { + self.`type` = `type` + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case value = "Value" + } + } + public struct ResourceTagSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .structure), AWSShapeMember(label: "ResourceType", required: false, type: .enum) @@ -2433,7 +2754,7 @@ extension Route53 { } public struct ListVPCAssociationAuthorizationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "VPCs", required: true, type: .structure), AWSShapeMember(label: "HostedZoneId", required: true, type: .string) @@ -2458,8 +2779,12 @@ extension Route53 { } } + public struct DeleteQueryLoggingConfigResponse: AWSShape { + + } + public struct HealthCheckConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPAddress", required: false, type: .string), AWSShapeMember(label: "ChildHealthChecks", required: false, type: .structure), AWSShapeMember(label: "MeasureLatency", required: false, type: .boolean), @@ -2559,7 +2884,7 @@ extension Route53 { } public struct ListTrafficPolicyVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string), AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string), AWSShapeMember(label: "TrafficPolicyVersionMarker", location: .querystring(locationName: "trafficpolicyversion"), required: false, type: .string) @@ -2584,8 +2909,23 @@ extension Route53 { } } + public struct ResettableElementNameList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResettableElementName", required: false, type: .list) + ] + public let resettableElementName: [ResettableElementName]? + + public init(resettableElementName: [ResettableElementName]? = nil) { + self.resettableElementName = resettableElementName + } + + private enum CodingKeys: String, CodingKey { + case resettableElementName = "ResettableElementName" + } + } + public struct ListTrafficPolicyInstancesByHostedZoneRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string), AWSShapeMember(label: "TrafficPolicyInstanceTypeMarker", location: .querystring(locationName: "trafficpolicyinstancetype"), required: false, type: .enum), AWSShapeMember(label: "TrafficPolicyInstanceNameMarker", location: .querystring(locationName: "trafficpolicyinstancename"), required: false, type: .string), @@ -2616,7 +2956,7 @@ extension Route53 { } public struct ListHealthChecksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsTruncated", required: true, type: .boolean), AWSShapeMember(label: "HealthChecks", required: true, type: .structure), AWSShapeMember(label: "NextMarker", required: false, type: .string), @@ -2652,7 +2992,7 @@ extension Route53 { } public struct ResourceRecords: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceRecord", required: false, type: .list) ] public let resourceRecord: [ResourceRecord]? @@ -2667,7 +3007,7 @@ extension Route53 { } public struct GetHostedZoneResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostedZone", required: true, type: .structure), AWSShapeMember(label: "VPCs", required: false, type: .structure), AWSShapeMember(label: "DelegationSet", required: false, type: .structure) @@ -2693,7 +3033,7 @@ extension Route53 { } public struct ChangeTagsForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AddTags", required: false, type: .structure), AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string), AWSShapeMember(label: "RemoveTagKeys", required: false, type: .structure), @@ -2724,7 +3064,7 @@ extension Route53 { } public struct UpdateHostedZoneCommentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Comment", required: false, type: .string), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] @@ -2745,7 +3085,7 @@ extension Route53 { } public struct TagKeyList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .list) ] public let key: [String]? @@ -2760,7 +3100,7 @@ extension Route53 { } public struct DeleteVPCAssociationAuthorizationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostedZoneId", location: .uri(locationName: "Id"), required: true, type: .string), AWSShapeMember(label: "VPC", required: true, type: .structure) ] @@ -2781,7 +3121,7 @@ extension Route53 { } public struct CreateHostedZoneRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DelegationSetId", required: false, type: .string), AWSShapeMember(label: "VPC", required: false, type: .structure), AWSShapeMember(label: "CallerReference", required: true, type: .string), @@ -2817,7 +3157,7 @@ extension Route53 { } public struct DeleteHostedZoneResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeInfo", required: true, type: .structure) ] /// A complex type that contains the ID, the status, and the date and time of a request to delete a hosted zone. @@ -2833,7 +3173,7 @@ extension Route53 { } public struct GetHostedZoneCountResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostedZoneCount", required: true, type: .long) ] /// The total number of public and private hosted zones that are associated with the current AWS account. @@ -2856,8 +3196,24 @@ extension Route53 { } + public struct UpdateTrafficPolicyCommentResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TrafficPolicy", required: true, type: .structure) + ] + /// A complex type that contains settings for the specified traffic policy. + public let trafficPolicy: TrafficPolicy + + public init(trafficPolicy: TrafficPolicy) { + self.trafficPolicy = trafficPolicy + } + + private enum CodingKeys: String, CodingKey { + case trafficPolicy = "TrafficPolicy" + } + } + public struct GetHealthCheckResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheck", required: true, type: .structure) ] /// A complex type that contains information about one health check that is associated with the current AWS account. @@ -2872,28 +3228,33 @@ extension Route53 { } } - public struct UpdateTrafficPolicyCommentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TrafficPolicy", required: true, type: .structure) + public struct GetHostedZoneCountRequest: AWSShape { + + } + + public struct ListQueryLoggingConfigsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "QueryLoggingConfigs", required: true, type: .structure) ] - /// A complex type that contains settings for the specified traffic policy. - public let trafficPolicy: TrafficPolicy + /// If a response includes the last of the query logging configurations that are associated with the current AWS account, NextToken doesn't appear in the response. If a response doesn't include the last of the configurations, you can get more configurations by submitting another ListQueryLoggingConfigs request. Get the value of NextToken that Amazon Route 53 returned in the previous response and include it in NextToken in the next request. + public let nextToken: String? + /// An array that contains one QueryLoggingConfig element for each configuration for DNS query logging that is associated with the current AWS account. + public let queryLoggingConfigs: QueryLoggingConfigs - public init(trafficPolicy: TrafficPolicy) { - self.trafficPolicy = trafficPolicy + public init(nextToken: String? = nil, queryLoggingConfigs: QueryLoggingConfigs) { + self.nextToken = nextToken + self.queryLoggingConfigs = queryLoggingConfigs } private enum CodingKeys: String, CodingKey { - case trafficPolicy = "TrafficPolicy" + case nextToken = "NextToken" + case queryLoggingConfigs = "QueryLoggingConfigs" } } - public struct GetHostedZoneCountRequest: AWSShape { - - } - public struct HostedZones: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostedZone", required: false, type: .list) ] public let hostedZone: [HostedZone]? @@ -2908,7 +3269,7 @@ extension Route53 { } public struct UpdateHostedZoneCommentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostedZone", required: true, type: .structure) ] public let hostedZone: HostedZone @@ -2923,13 +3284,13 @@ extension Route53 { } public struct Change: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceRecordSet", required: true, type: .structure), AWSShapeMember(label: "Action", required: true, type: .enum) ] /// Information about the resource record set to create, delete, or update. public let resourceRecordSet: ResourceRecordSet - /// The action to perform: CREATE: Creates a resource record set that has the specified values. DELETE: Deletes a existing resource record set. To delete the resource record set that is associated with a traffic policy instance, use DeleteTrafficPolicyInstance . Amazon Route 53 will delete the resource record set automatically. If you delete the resource record set by using ChangeResourceRecordSets, Amazon Route 53 doesn't automatically delete the traffic policy instance, and you'll continue to be charged for it even though it's no longer in use. UPSERT: If a resource record set doesn't already exist, Amazon Route 53 creates it. If a resource record set does exist, Amazon Route 53 updates it with the values in the request. The values that you need to include in the request depend on the type of resource record set that you're creating, deleting, or updating: Basic resource record sets (excluding alias, failover, geolocation, latency, and weighted resource record sets) Name Type TTL Failover, geolocation, latency, or weighted resource record sets (excluding alias resource record sets) Name Type TTL SetIdentifier Alias resource record sets (including failover alias, geolocation alias, latency alias, and weighted alias resource record sets) Name Type AliasTarget (includes DNSName, EvaluateTargetHealth, and HostedZoneId) SetIdentifier (for failover, geolocation, latency, and weighted resource record sets) + /// The action to perform: CREATE: Creates a resource record set that has the specified values. DELETE: Deletes a existing resource record set. To delete the resource record set that is associated with a traffic policy instance, use DeleteTrafficPolicyInstance . Amazon Route 53 will delete the resource record set automatically. If you delete the resource record set by using ChangeResourceRecordSets, Amazon Route 53 doesn't automatically delete the traffic policy instance, and you'll continue to be charged for it even though it's no longer in use. UPSERT: If a resource record set doesn't already exist, Amazon Route 53 creates it. If a resource record set does exist, Amazon Route 53 updates it with the values in the request. public let action: ChangeAction public init(resourceRecordSet: ResourceRecordSet, action: ChangeAction) { @@ -2944,7 +3305,7 @@ extension Route53 { } public struct GetChangeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The ID of the change batch request. The value that you specify here is the value that ChangeResourceRecordSets returned in the Id element when you submitted the request. @@ -2960,7 +3321,7 @@ extension Route53 { } public struct GetCheckerIpRangesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CheckerIpRanges", required: true, type: .list) ] public let checkerIpRanges: [String] @@ -2974,8 +3335,29 @@ extension Route53 { } } + public struct GetHostedZoneLimitResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: true, type: .structure), + AWSShapeMember(label: "Count", required: true, type: .long) + ] + /// The current setting for the specified limit. For example, if you specified MAX_RRSETS_BY_ZONE for the value of Type in the request, the value of Limit is the maximum number of records that you can create in the specified hosted zone. + public let limit: HostedZoneLimit + /// The current number of entities that you have created of the specified type. For example, if you specified MAX_RRSETS_BY_ZONE for the value of Type in the request, the value of Count is the current number of records that you have created in the specified hosted zone. + public let count: Int64 + + public init(limit: HostedZoneLimit, count: Int64) { + self.limit = limit + self.count = count + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case count = "Count" + } + } + public struct GetHostedZoneRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The ID of the hosted zone that you want to get information about. @@ -2991,7 +3373,7 @@ extension Route53 { } public struct DeleteHostedZoneRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The ID of the hosted zone you want to delete. @@ -3007,7 +3389,7 @@ extension Route53 { } public struct CreateReusableDelegationSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CallerReference", required: true, type: .string), AWSShapeMember(label: "HostedZoneId", required: false, type: .string) ] @@ -3028,7 +3410,7 @@ extension Route53 { } public struct GetHealthCheckCountResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HealthCheckCount", required: true, type: .long) ] /// The number of health checks associated with the current AWS account. @@ -3044,7 +3426,7 @@ extension Route53 { } public struct HostedZoneConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrivateZone", required: false, type: .boolean), AWSShapeMember(label: "Comment", required: false, type: .string) ] @@ -3065,7 +3447,7 @@ extension Route53 { } public struct TrafficPolicySummaries: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrafficPolicySummary", required: false, type: .list) ] public let trafficPolicySummary: [TrafficPolicySummary]? @@ -3080,7 +3462,7 @@ extension Route53 { } public struct CreateVPCAssociationAuthorizationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostedZoneId", required: true, type: .string), AWSShapeMember(label: "VPC", required: true, type: .structure) ] @@ -3100,8 +3482,14 @@ extension Route53 { } } + public enum HostedZoneLimitType: String, CustomStringConvertible, Codable { + case maxRrsetsByZone = "MAX_RRSETS_BY_ZONE" + case maxVpcsAssociatedByZone = "MAX_VPCS_ASSOCIATED_BY_ZONE" + public var description: String { return self.rawValue } + } + public struct DeleteTrafficPolicyInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] /// The ID of the traffic policy instance that you want to delete. When you delete a traffic policy instance, Amazon Route 53 also deletes all of the resource record sets that were created when you created the traffic policy instance. @@ -3116,8 +3504,29 @@ extension Route53 { } } + public struct HostedZoneLimit: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "Value", required: true, type: .long) + ] + /// The limit that you requested. Valid values include the following: MAX_RRSETS_BY_ZONE: The maximum number of records that you can create in the specified hosted zone. MAX_VPCS_ASSOCIATED_BY_TYPE: The maximum number of Amazon VPCs that you can associate with the specified private hosted zone. + public let `type`: HostedZoneLimitType + /// The current value for the limit that is specified by Type. + public let value: Int64 + + public init(type: HostedZoneLimitType, value: Int64) { + self.`type` = `type` + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case value = "Value" + } + } + public struct TestDNSAnswerResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Protocol", required: true, type: .string), AWSShapeMember(label: "ResponseCode", required: true, type: .string), AWSShapeMember(label: "RecordData", required: true, type: .structure), @@ -3158,7 +3567,7 @@ extension Route53 { } public struct ChangeResourceRecordSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeBatch", required: true, type: .structure), AWSShapeMember(label: "HostedZoneId", location: .uri(locationName: "Id"), required: true, type: .string) ] @@ -3178,8 +3587,28 @@ extension Route53 { } } + public struct VPC: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VPCId", required: false, type: .string), + AWSShapeMember(label: "VPCRegion", required: false, type: .enum) + ] + public let vPCId: String? + /// (Private hosted zones only) The region in which you created an Amazon VPC. + public let vPCRegion: VPCRegion? + + public init(vPCId: String? = nil, vPCRegion: VPCRegion? = nil) { + self.vPCId = vPCId + self.vPCRegion = vPCRegion + } + + private enum CodingKeys: String, CodingKey { + case vPCId = "VPCId" + case vPCRegion = "VPCRegion" + } + } + public struct ListTrafficPolicyInstancesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string), AWSShapeMember(label: "HostedZoneIdMarker", location: .querystring(locationName: "hostedzoneid"), required: false, type: .string), AWSShapeMember(label: "TrafficPolicyInstanceTypeMarker", location: .querystring(locationName: "trafficpolicyinstancetype"), required: false, type: .enum), @@ -3209,28 +3638,23 @@ extension Route53 { } } - public struct VPC: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "VPCId", required: false, type: .string), - AWSShapeMember(label: "VPCRegion", required: false, type: .enum) + public struct ErrorMessages: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", required: false, type: .list) ] - public let vPCId: String? - /// (Private hosted zones only) The region in which you created an Amazon VPC. - public let vPCRegion: VPCRegion? + public let message: [String]? - public init(vPCId: String? = nil, vPCRegion: VPCRegion? = nil) { - self.vPCId = vPCId - self.vPCRegion = vPCRegion + public init(message: [String]? = nil) { + self.message = message } private enum CodingKeys: String, CodingKey { - case vPCId = "VPCId" - case vPCRegion = "VPCRegion" + case message = "Message" } } public struct ListGeoLocationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxitems"), required: false, type: .string), AWSShapeMember(label: "StartContinentCode", location: .querystring(locationName: "startcontinentcode"), required: false, type: .string), AWSShapeMember(label: "StartSubdivisionCode", location: .querystring(locationName: "startsubdivisioncode"), required: false, type: .string), @@ -3260,23 +3684,8 @@ extension Route53 { } } - public struct ErrorMessages: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Message", required: false, type: .list) - ] - public let message: [String]? - - public init(message: [String]? = nil) { - self.message = message - } - - private enum CodingKeys: String, CodingKey { - case message = "Message" - } - } - public struct GetTrafficPolicyInstanceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrafficPolicyInstance", required: true, type: .structure) ] /// A complex type that contains settings for the traffic policy instance. @@ -3292,7 +3701,7 @@ extension Route53 { } public struct ListTagsForResourcesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceIds", required: true, type: .structure), AWSShapeMember(label: "ResourceType", location: .uri(locationName: "ResourceType"), required: true, type: .enum) ] @@ -3312,6 +3721,27 @@ extension Route53 { } } + public struct GetReusableDelegationSetLimitResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: true, type: .structure), + AWSShapeMember(label: "Count", required: true, type: .long) + ] + /// The current setting for the limit on hosted zones that you can associate with the specified reusable delegation set. + public let limit: ReusableDelegationSetLimit + /// The current number of hosted zones that you can associate with the specified reusable delegation set. + public let count: Int64 + + public init(limit: ReusableDelegationSetLimit, count: Int64) { + self.limit = limit + self.count = count + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case count = "Count" + } + } + public enum ResourceRecordSetRegion: String, CustomStringConvertible, Codable { case usEast1 = "us-east-1" case usEast2 = "us-east-2" @@ -3331,8 +3761,24 @@ extension Route53 { public var description: String { return self.rawValue } } + public struct GetAccountLimitRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", location: .uri(locationName: "Type"), required: true, type: .enum) + ] + /// The limit that you want to get. Valid values include the following: MAX_HEALTH_CHECKS_BY_OWNER: The maximum number of health checks that you can create using the current account. MAX_HOSTED_ZONES_BY_OWNER: The maximum number of hosted zones that you can create using the current account. MAX_REUSABLE_DELEGATION_SETS_BY_OWNER: The maximum number of reusable delegation sets that you can create using the current account. MAX_TRAFFIC_POLICIES_BY_OWNER: The maximum number of traffic policies that you can create using the current account. MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER: The maximum number of traffic policy instances that you can create using the current account. (Traffic policy instances are referred to as traffic flow policy records in the Amazon Route 53 console.) + public let `type`: AccountLimitType + + public init(type: AccountLimitType) { + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + } + } + public struct CreateTrafficPolicyInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrafficPolicyVersion", required: true, type: .integer), AWSShapeMember(label: "TrafficPolicyId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), @@ -3368,7 +3814,7 @@ extension Route53 { } public struct GetReusableDelegationSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DelegationSet", required: true, type: .structure) ] /// A complex type that contains information about the reusable delegation set. @@ -3384,7 +3830,7 @@ extension Route53 { } public struct ChangeResourceRecordSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeInfo", required: true, type: .structure) ] /// A complex type that contains information about changes made to your hosted zone. This element contains an ID that you use when performing a GetChange action to get detailed information about the change. @@ -3400,7 +3846,7 @@ extension Route53 { } public struct TrafficPolicies: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TrafficPolicy", required: false, type: .list) ] public let trafficPolicy: [TrafficPolicy]? @@ -3415,7 +3861,7 @@ extension Route53 { } public struct CreateTrafficPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Document", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Comment", required: false, type: .string) @@ -3441,7 +3887,7 @@ extension Route53 { } public struct GetTrafficPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Version", location: .uri(locationName: "Version"), required: true, type: .integer), AWSShapeMember(label: "Id", location: .uri(locationName: "Id"), required: true, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/route53domains/Route53domains_API.swift b/Sources/AWSSDKSwift/Services/route53domains/Route53domains_API.swift index 242cf192761..cf91bc9370e 100644 --- a/Sources/AWSSDKSwift/Services/route53domains/Route53domains_API.swift +++ b/Sources/AWSSDKSwift/Services/route53domains/Route53domains_API.swift @@ -35,7 +35,7 @@ public struct Route53domains { return try client.send(operation: "GetContactReachabilityStatus", path: "/", httpMethod: "POST", input: input) } - /// This operation deletes the specified tags for a domain. All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations. + /// This operation deletes the specified tags for a domain. All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations. public func deleteTagsForDomain(_ input: DeleteTagsForDomainRequest) throws -> DeleteTagsForDomainResponse { return try client.send(operation: "DeleteTagsForDomain", path: "/", httpMethod: "POST", input: input) } @@ -45,12 +45,7 @@ public struct Route53domains { return try client.send(operation: "DisableDomainAutoRenew", path: "/", httpMethod: "POST", input: input) } - /// This operation checks the availability of one domain name. Note that if the availability status of a domain is pending, you must submit another request to determine the availability of the domain name. - public func checkDomainAvailability(_ input: CheckDomainAvailabilityRequest) throws -> CheckDomainAvailabilityResponse { - return try client.send(operation: "CheckDomainAvailability", path: "/", httpMethod: "POST", input: input) - } - - /// This operation adds or updates tags for a specified domain. All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations. + /// This operation adds or updates tags for a specified domain. All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations. public func updateTagsForDomain(_ input: UpdateTagsForDomainRequest) throws -> UpdateTagsForDomainResponse { return try client.send(operation: "UpdateTagsForDomain", path: "/", httpMethod: "POST", input: input) } @@ -85,12 +80,22 @@ public struct Route53domains { return try client.send(operation: "ResendContactReachabilityEmail", path: "/", httpMethod: "POST", input: input) } + /// Checks whether a domain name can be transferred to Amazon Route 53. + public func checkDomainTransferability(_ input: CheckDomainTransferabilityRequest) throws -> CheckDomainTransferabilityResponse { + return try client.send(operation: "CheckDomainTransferability", path: "/", httpMethod: "POST", input: input) + } + + /// This operation checks the availability of one domain name. Note that if the availability status of a domain is pending, you must submit another request to determine the availability of the domain name. + public func checkDomainAvailability(_ input: CheckDomainAvailabilityRequest) throws -> CheckDomainAvailabilityResponse { + return try client.send(operation: "CheckDomainAvailability", path: "/", httpMethod: "POST", input: input) + } + /// This operation returns the operation IDs of operations that are not yet complete. public func listOperations(_ input: ListOperationsRequest) throws -> ListOperationsResponse { return try client.send(operation: "ListOperations", path: "/", httpMethod: "POST", input: input) } - /// This operation returns all of the tags that are associated with the specified domain. All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations. + /// This operation returns all of the tags that are associated with the specified domain. All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations. public func listTagsForDomain(_ input: ListTagsForDomainRequest) throws -> ListTagsForDomainResponse { return try client.send(operation: "ListTagsForDomain", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/route53domains/Route53domains_Shapes.swift b/Sources/AWSSDKSwift/Services/route53domains/Route53domains_Shapes.swift index 34df6d138d4..f45dbd18ca8 100644 --- a/Sources/AWSSDKSwift/Services/route53domains/Route53domains_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/route53domains/Route53domains_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Route53domains { public struct GetOperationDetailRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperationId", required: true, type: .string) ] /// The identifier for the operation for which you want to get the status. Amazon Route 53 returned the identifier in the response to the original request. @@ -22,7 +22,7 @@ extension Route53domains { } public struct ResendContactReachabilityEmailRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainName", required: false, type: .string) ] /// The name of the domain for which you want Amazon Route 53 to resend a confirmation email to the registrant contact. @@ -37,8 +37,29 @@ extension Route53domains { } } + public struct CheckDomainTransferabilityRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DomainName", required: true, type: .string), + AWSShapeMember(label: "AuthCode", required: false, type: .string) + ] + /// The name of the domain that you want to transfer to Amazon Route 53. Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported. + public let domainName: String + /// If the registrar for the top-level domain (TLD) requires an authorization code to transfer the domain, the code that you got from the current registrar for the domain. + public let authCode: String? + + public init(domainName: String, authCode: String? = nil) { + self.domainName = domainName + self.authCode = authCode + } + + private enum CodingKeys: String, CodingKey { + case domainName = "DomainName" + case authCode = "AuthCode" + } + } + public struct ListOperationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer) ] @@ -59,7 +80,7 @@ extension Route53domains { } public struct RenewDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CurrentExpiryYear", required: true, type: .integer), AWSShapeMember(label: "DomainName", required: true, type: .string), AWSShapeMember(label: "DurationInYears", required: false, type: .integer) @@ -94,7 +115,7 @@ extension Route53domains { } public struct GetDomainSuggestionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SuggestionsList", required: false, type: .list) ] /// A list of possible domain names. If you specified true for OnlyAvailable in the request, the list contains only domains that are available for registration. @@ -110,7 +131,7 @@ extension Route53domains { } public struct ListDomainsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Domains", required: true, type: .list), AWSShapeMember(label: "NextPageMarker", required: false, type: .string) ] @@ -131,7 +152,7 @@ extension Route53domains { } public struct RegisterDomainResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperationId", required: true, type: .string) ] /// Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail. @@ -159,7 +180,7 @@ extension Route53domains { } public struct UpdateDomainContactPrivacyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TechPrivacy", required: false, type: .boolean), AWSShapeMember(label: "DomainName", required: true, type: .string), AWSShapeMember(label: "RegistrantPrivacy", required: false, type: .boolean), @@ -190,7 +211,7 @@ extension Route53domains { } public struct ListDomainsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "MaxItems", required: false, type: .integer) ] @@ -211,7 +232,7 @@ extension Route53domains { } public struct EnableDomainTransferLockResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperationId", required: true, type: .string) ] /// Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail. @@ -227,7 +248,7 @@ extension Route53domains { } public struct GetDomainSuggestionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OnlyAvailable", required: true, type: .boolean), AWSShapeMember(label: "SuggestionCount", required: true, type: .integer), AWSShapeMember(label: "DomainName", required: true, type: .string) @@ -269,11 +290,16 @@ extension Route53domains { case esLegalForm = "ES_LEGAL_FORM" case fiBusinessNumber = "FI_BUSINESS_NUMBER" case fiIdNumber = "FI_ID_NUMBER" + case fiNationality = "FI_NATIONALITY" + case fiOrganizationType = "FI_ORGANIZATION_TYPE" case itPin = "IT_PIN" + case itRegistrantEntityType = "IT_REGISTRANT_ENTITY_TYPE" case ruPassportData = "RU_PASSPORT_DATA" case seIdNumber = "SE_ID_NUMBER" case sgIdNumber = "SG_ID_NUMBER" case vatNumber = "VAT_NUMBER" + case ukContactType = "UK_CONTACT_TYPE" + case ukCompanyNumber = "UK_COMPANY_NUMBER" public var description: String { return self.rawValue } } @@ -282,7 +308,7 @@ extension Route53domains { } public struct RetrieveDomainAuthCodeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthCode", required: true, type: .string) ] /// The authorization code for the domain. @@ -298,7 +324,7 @@ extension Route53domains { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -319,7 +345,7 @@ extension Route53domains { } public struct DomainSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Expiry", required: false, type: .timestamp), AWSShapeMember(label: "DomainName", required: true, type: .string), AWSShapeMember(label: "AutoRenew", required: false, type: .boolean), @@ -359,10 +385,10 @@ extension Route53domains { } public struct CheckDomainAvailabilityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Availability", required: true, type: .enum) ] - /// Whether the domain name is available for registering. You can only register domains designated as AVAILABLE. Valid values: AVAILABLE The domain name is available. AVAILABLE_RESERVED The domain name is reserved under specific conditions. AVAILABLE_PREORDER The domain name is available and can be preordered. DONT_KNOW The TLD registry didn't reply with a definitive answer about whether the domain name is available. Amazon Route 53 can return this response for a variety of reasons, for example, the registry is performing maintenance. Try again later. PENDING The TLD registry didn't return a response in the expected amount of time. When the response is delayed, it usually takes just a few extra seconds. You can resubmit the request immediately. RESERVED The domain name has been reserved for another person or organization. UNAVAILABLE The domain name is not available. UNAVAILABLE_PREMIUM The domain name is not available. UNAVAILABLE_RESTRICTED The domain name is forbidden. + /// Whether the domain name is available for registering. You can register only domains designated as AVAILABLE. Valid values: AVAILABLE The domain name is available. AVAILABLE_RESERVED The domain name is reserved under specific conditions. AVAILABLE_PREORDER The domain name is available and can be preordered. DONT_KNOW The TLD registry didn't reply with a definitive answer about whether the domain name is available. Amazon Route 53 can return this response for a variety of reasons, for example, the registry is performing maintenance. Try again later. PENDING The TLD registry didn't return a response in the expected amount of time. When the response is delayed, it usually takes just a few extra seconds. You can resubmit the request immediately. RESERVED The domain name has been reserved for another person or organization. UNAVAILABLE The domain name is not available. UNAVAILABLE_PREMIUM The domain name is not available. UNAVAILABLE_RESTRICTED The domain name is forbidden. public let availability: DomainAvailability public init(availability: DomainAvailability) { @@ -374,8 +400,15 @@ extension Route53domains { } } + public enum Transferable: String, CustomStringConvertible, Codable { + case transferable = "TRANSFERABLE" + case untransferable = "UNTRANSFERABLE" + case dontKnow = "DONT_KNOW" + public var description: String { return self.rawValue } + } + public struct TransferDomainResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperationId", required: true, type: .string) ] /// Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail. @@ -398,7 +431,7 @@ extension Route53domains { } public struct DomainSuggestion: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: false, type: .string), AWSShapeMember(label: "Availability", required: false, type: .string) ] @@ -419,7 +452,7 @@ extension Route53domains { } public struct ListOperationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Operations", required: true, type: .list), AWSShapeMember(label: "NextPageMarker", required: false, type: .string) ] @@ -440,7 +473,7 @@ extension Route53domains { } public struct ContactDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AddressLine1", required: false, type: .string), AWSShapeMember(label: "Email", required: false, type: .string), AWSShapeMember(label: "PhoneNumber", required: false, type: .string), @@ -525,7 +558,7 @@ extension Route53domains { } public struct ViewBillingResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BillingRecords", required: false, type: .list), AWSShapeMember(label: "NextPageMarker", required: false, type: .string) ] @@ -546,7 +579,7 @@ extension Route53domains { } public struct UpdateDomainNameserversResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperationId", required: true, type: .string) ] /// Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail. @@ -562,7 +595,7 @@ extension Route53domains { } public struct ListTagsForDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The domain for which you want to get a list of tags. @@ -578,7 +611,7 @@ extension Route53domains { } public struct ListTagsForDomainResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagList", required: true, type: .list) ] /// A list of the tags that are associated with the specified domain. @@ -598,7 +631,7 @@ extension Route53domains { } public struct GetDomainDetailRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The name of the domain that you want to get detailed information about. @@ -614,7 +647,7 @@ extension Route53domains { } public struct TransferDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdnLangCode", required: false, type: .string), AWSShapeMember(label: "AdminContact", required: true, type: .structure), AWSShapeMember(label: "DurationInYears", required: true, type: .integer), @@ -684,8 +717,23 @@ extension Route53domains { } } + public struct DomainTransferability: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Transferable", required: false, type: .enum) + ] + public let transferable: Transferable? + + public init(transferable: Transferable? = nil) { + self.transferable = transferable + } + + private enum CodingKeys: String, CodingKey { + case transferable = "Transferable" + } + } + public struct EnableDomainTransferLockRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The name of the domain that you want to set the transfer lock for. @@ -701,7 +749,7 @@ extension Route53domains { } public struct UpdateTagsForDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagsToUpdate", required: false, type: .list), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -722,7 +770,7 @@ extension Route53domains { } public struct GetContactReachabilityStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainName", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .enum) ] @@ -743,7 +791,7 @@ extension Route53domains { } public struct DeleteTagsForDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagsToDelete", required: true, type: .list), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -764,7 +812,7 @@ extension Route53domains { } public struct GetContactReachabilityStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainName", required: false, type: .string) ] /// The name of the domain for which you want to know whether the registrant contact has confirmed that the email address is valid. @@ -780,7 +828,7 @@ extension Route53domains { } public struct ExtraParam: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .enum) ] @@ -801,7 +849,7 @@ extension Route53domains { } public struct GetOperationDetailResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "OperationId", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string), @@ -842,7 +890,7 @@ extension Route53domains { } public struct EnableDomainAutoRenewRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The name of the domain that you want to enable automatic renewal for. @@ -858,7 +906,7 @@ extension Route53domains { } public struct Nameserver: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GlueIps", required: false, type: .list), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -879,7 +927,7 @@ extension Route53domains { } public struct RetrieveDomainAuthCodeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The name of the domain that you want to get an authorization code for. @@ -895,7 +943,7 @@ extension Route53domains { } public struct BillingRecord: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BillDate", required: false, type: .timestamp), AWSShapeMember(label: "InvoiceId", required: false, type: .string), AWSShapeMember(label: "DomainName", required: false, type: .string), @@ -931,7 +979,7 @@ extension Route53domains { } public struct RegisterDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdnLangCode", required: false, type: .string), AWSShapeMember(label: "AdminContact", required: true, type: .structure), AWSShapeMember(label: "DurationInYears", required: true, type: .integer), @@ -992,7 +1040,7 @@ extension Route53domains { } public struct ResendContactReachabilityEmailResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "isAlreadyVerified", required: false, type: .boolean), AWSShapeMember(label: "emailAddress", required: false, type: .string), AWSShapeMember(label: "domainName", required: false, type: .string) @@ -1025,11 +1073,20 @@ extension Route53domains { case updateNameserver = "UPDATE_NAMESERVER" case changePrivacyProtection = "CHANGE_PRIVACY_PROTECTION" case domainLock = "DOMAIN_LOCK" + case enableAutorenew = "ENABLE_AUTORENEW" + case disableAutorenew = "DISABLE_AUTORENEW" + case addDnssec = "ADD_DNSSEC" + case removeDnssec = "REMOVE_DNSSEC" + case expireDomain = "EXPIRE_DOMAIN" + case transferOutDomain = "TRANSFER_OUT_DOMAIN" + case changeDomainOwner = "CHANGE_DOMAIN_OWNER" + case renewDomain = "RENEW_DOMAIN" + case pushDomain = "PUSH_DOMAIN" public var description: String { return self.rawValue } } public struct DisableDomainAutoRenewRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The name of the domain that you want to disable automatic renewal for. @@ -1045,7 +1102,7 @@ extension Route53domains { } public struct GetDomainDetailResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RegistryDomainId", required: false, type: .string), AWSShapeMember(label: "Reseller", required: false, type: .string), AWSShapeMember(label: "RegistrantContact", required: true, type: .structure), @@ -1161,7 +1218,7 @@ extension Route53domains { } public struct DisableDomainTransferLockRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The name of the domain that you want to remove the transfer lock for. @@ -1177,7 +1234,7 @@ extension Route53domains { } public struct RenewDomainResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperationId", required: true, type: .string) ] /// The identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail. @@ -1193,7 +1250,7 @@ extension Route53domains { } public struct OperationSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: true, type: .enum), AWSShapeMember(label: "OperationId", required: true, type: .string), AWSShapeMember(label: "SubmittedDate", required: true, type: .timestamp), @@ -1224,7 +1281,7 @@ extension Route53domains { } public struct UpdateDomainContactPrivacyResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperationId", required: true, type: .string) ] /// Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail. @@ -1244,7 +1301,7 @@ extension Route53domains { } public struct CheckDomainAvailabilityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IdnLangCode", required: false, type: .string), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -1265,7 +1322,7 @@ extension Route53domains { } public struct UpdateDomainContactResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperationId", required: true, type: .string) ] /// Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail. @@ -1281,7 +1338,7 @@ extension Route53domains { } public struct ViewBillingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxItems", required: false, type: .integer), AWSShapeMember(label: "Start", required: false, type: .timestamp), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -1311,39 +1368,24 @@ extension Route53domains { } } - public struct UpdateDomainContactRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AdminContact", required: false, type: .structure), - AWSShapeMember(label: "DomainName", required: true, type: .string), - AWSShapeMember(label: "RegistrantContact", required: false, type: .structure), - AWSShapeMember(label: "TechContact", required: false, type: .structure) + public struct CheckDomainTransferabilityResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Transferability", required: true, type: .structure) ] - /// Provides detailed contact information. - public let adminContact: ContactDetail? - /// The name of the domain that you want to update contact information for. - public let domainName: String - /// Provides detailed contact information. - public let registrantContact: ContactDetail? - /// Provides detailed contact information. - public let techContact: ContactDetail? + /// A complex type that contains information about whether the specified domain can be transferred to Amazon Route 53. + public let transferability: DomainTransferability - public init(adminContact: ContactDetail? = nil, domainName: String, registrantContact: ContactDetail? = nil, techContact: ContactDetail? = nil) { - self.adminContact = adminContact - self.domainName = domainName - self.registrantContact = registrantContact - self.techContact = techContact + public init(transferability: DomainTransferability) { + self.transferability = transferability } private enum CodingKeys: String, CodingKey { - case adminContact = "AdminContact" - case domainName = "DomainName" - case registrantContact = "RegistrantContact" - case techContact = "TechContact" + case transferability = "Transferability" } } public struct UpdateDomainNameserversRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FIAuthKey", required: false, type: .string), AWSShapeMember(label: "Nameservers", required: true, type: .list), AWSShapeMember(label: "DomainName", required: true, type: .string) @@ -1368,8 +1410,39 @@ extension Route53domains { } } + public struct UpdateDomainContactRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AdminContact", required: false, type: .structure), + AWSShapeMember(label: "DomainName", required: true, type: .string), + AWSShapeMember(label: "RegistrantContact", required: false, type: .structure), + AWSShapeMember(label: "TechContact", required: false, type: .structure) + ] + /// Provides detailed contact information. + public let adminContact: ContactDetail? + /// The name of the domain that you want to update contact information for. + public let domainName: String + /// Provides detailed contact information. + public let registrantContact: ContactDetail? + /// Provides detailed contact information. + public let techContact: ContactDetail? + + public init(adminContact: ContactDetail? = nil, domainName: String, registrantContact: ContactDetail? = nil, techContact: ContactDetail? = nil) { + self.adminContact = adminContact + self.domainName = domainName + self.registrantContact = registrantContact + self.techContact = techContact + } + + private enum CodingKeys: String, CodingKey { + case adminContact = "AdminContact" + case domainName = "DomainName" + case registrantContact = "RegistrantContact" + case techContact = "TechContact" + } + } + public struct DisableDomainTransferLockResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OperationId", required: true, type: .string) ] /// Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail. diff --git a/Sources/AWSSDKSwift/Services/runtime.lex/Runtimelex_API.swift b/Sources/AWSSDKSwift/Services/runtime.lex/Runtimelex_API.swift index 6813bd842b3..b522465e713 100644 --- a/Sources/AWSSDKSwift/Services/runtime.lex/Runtimelex_API.swift +++ b/Sources/AWSSDKSwift/Services/runtime.lex/Runtimelex_API.swift @@ -24,7 +24,7 @@ public struct Runtimelex { ) } - /// Sends user input (text or speech) to Amazon Lex. Clients use this API to send requests to Amazon Lex at runtime. Amazon Lex interprets the user input using the machine learning model that it built for the bot. In response, Amazon Lex returns the next message to convey to the user. Consider the following example messages: For a user input "I would like a pizza," Amazon Lex might return a response with a message eliciting slot data (for example, PizzaSize): "What size pizza would you like?". After the user provides all of the pizza order information, Amazon Lex might return a response with a message to get user confirmation: "Order the pizza?". After the user replies "Yes" to the confirmation prompt, Amazon Lex might return a conclusion statement: "Thank you, your cheese pizza has been ordered.". Not all Amazon Lex messages require a response from the user. For example, conclusion statements do not require a response. Some messages require only a yes or no response. In addition to the message, Amazon Lex provides additional context about the message in the response that you can use to enhance client behavior, such as displaying the appropriate client user interface. Consider the following examples: If the message is to elicit slot data, Amazon Lex returns the following context information: x-amz-lex-dialog-state header set to ElicitSlot x-amz-lex-intent-name header set to the intent name in the current context x-amz-lex-slot-to-elicit header set to the slot name for which the message is eliciting information x-amz-lex-slots header set to a map of slots configured for the intent with their current values If the message is a confirmation prompt, the x-amz-lex-dialog-state header is set to Confirmation and the x-amz-lex-slot-to-elicit header is omitted. If the message is a clarification prompt configured for the intent, indicating that the user intent is not understood, the x-amz-dialog-state header is set to ElicitIntent and the x-amz-slot-to-elicit header is omitted. In addition, Amazon Lex also returns your application-specific sessionAttributes. For more information, see Managing Conversation Context. + /// Sends user input (text or speech) to Amazon Lex. Clients use this API to send text and audio requests to Amazon Lex at runtime. Amazon Lex interprets the user input using the machine learning model that it built for the bot. The PostContent operation supports audio input at 8kHz and 16kHz. You can use 8kHz audio to achieve higher speech recognition accuracy in telephone audio applications. In response, Amazon Lex returns the next message to convey to the user. Consider the following example messages: For a user input "I would like a pizza," Amazon Lex might return a response with a message eliciting slot data (for example, PizzaSize): "What size pizza would you like?". After the user provides all of the pizza order information, Amazon Lex might return a response with a message to get user confirmation: "Order the pizza?". After the user replies "Yes" to the confirmation prompt, Amazon Lex might return a conclusion statement: "Thank you, your cheese pizza has been ordered.". Not all Amazon Lex messages require a response from the user. For example, conclusion statements do not require a response. Some messages require only a yes or no response. In addition to the message, Amazon Lex provides additional context about the message in the response that you can use to enhance client behavior, such as displaying the appropriate client user interface. Consider the following examples: If the message is to elicit slot data, Amazon Lex returns the following context information: x-amz-lex-dialog-state header set to ElicitSlot x-amz-lex-intent-name header set to the intent name in the current context x-amz-lex-slot-to-elicit header set to the slot name for which the message is eliciting information x-amz-lex-slots header set to a map of slots configured for the intent with their current values If the message is a confirmation prompt, the x-amz-lex-dialog-state header is set to Confirmation and the x-amz-lex-slot-to-elicit header is omitted. If the message is a clarification prompt configured for the intent, indicating that the user intent is not understood, the x-amz-dialog-state header is set to ElicitIntent and the x-amz-slot-to-elicit header is omitted. In addition, Amazon Lex also returns your application-specific sessionAttributes. For more information, see Managing Conversation Context. public func postContent(_ input: PostContentRequest) throws -> PostContentResponse { return try client.send(operation: "PostContent", path: "/bot/{botName}/alias/{botAlias}/user/{userId}/content", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/runtime.lex/Runtimelex_Shapes.swift b/Sources/AWSSDKSwift/Services/runtime.lex/Runtimelex_Shapes.swift index afa84531e0c..75b7ef26f20 100644 --- a/Sources/AWSSDKSwift/Services/runtime.lex/Runtimelex_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/runtime.lex/Runtimelex_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Runtimelex { public struct GenericAttachment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attachmentLinkUrl", required: false, type: .string), AWSShapeMember(label: "title", required: false, type: .string), AWSShapeMember(label: "imageUrl", required: false, type: .string), @@ -42,7 +42,7 @@ extension Runtimelex { } public struct ResponseCard: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "genericAttachments", required: false, type: .list), AWSShapeMember(label: "version", required: false, type: .string), AWSShapeMember(label: "contentType", required: false, type: .enum) @@ -78,7 +78,7 @@ extension Runtimelex { } public struct PostTextResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "slotToElicit", required: false, type: .string), AWSShapeMember(label: "slots", required: false, type: .map), AWSShapeMember(label: "sessionAttributes", required: false, type: .map), @@ -89,13 +89,13 @@ extension Runtimelex { ] /// If the dialogState value is ElicitSlot, returns the name of the slot for which Amazon Lex is eliciting a value. public let slotToElicit: String? - /// The intent slots (name/value pairs) that Amazon Lex detected so far from the user input in the conversation. + /// The intent slots that Amazon Lex detected from the user input in the conversation. Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the valueSelectionStrategy selected when the slot type was created or updated. If valueSelectionStrategy is set to ORIGINAL_VALUE, the value provided by the user is returned, if the user value is similar to the slot values. If valueSelectionStrategy is set to TOP_RESOLUTION Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy, the default is ORIGINAL_VALUE. public let slots: [String: String]? /// A map of key-value pairs representing the session-specific context information. public let sessionAttributes: [String: String]? /// A message to convey to the user. It can come from the bot's configuration or a code hook (Lambda function). If the current intent is not configured with a code hook or the code hook returned Delegate as the dialogAction.type in its response, then Amazon Lex decides the next course of action and selects an appropriate message from the bot configuration based on the current user interaction context. For example, if Amazon Lex is not able to understand the user input, it uses a clarification prompt message (for more information, see the Error Handling section in the Amazon Lex console). Another example: if the intent requires confirmation before fulfillment, then Amazon Lex uses the confirmation prompt message in the intent configuration. If the code hook returns a message, Amazon Lex passes it as-is in its response to the client. public let message: String? - /// Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface. ElicitIntent – Amazon Lex wants to elicit user intent. For example, a user might utter an intent ("I want to order a pizza"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialogState. ConfirmIntent – Amazon Lex is expecting a "yes" or "no" response. For example, Amazon Lex wants user confirmation before fulfilling an intent. Instead of a simple "yes" or "no," a user might respond with additional information. For example, "yes, but make it thick crust pizza" or "no, I want to order a drink". Amazon Lex can process such additional information (in these examples, update the crust type slot value, or change intent from OrderPizza to OrderDrink). ElicitSlot – Amazon Lex is expecting a slot value for the current intent. For example, suppose that in the response Amazon Lex sends this message: "What size pizza would you like?". A user might reply with the slot value (e.g., "medium"). The user might also provide additional information in the response (e.g., "medium thick crust pizza"). Amazon Lex can process such additional information appropriately. Fulfilled – Conveys that the Lambda function configured for the intent has successfully fulfilled the intent. ReadyForFulfillment – Conveys that the client has to fulfill the intent. Failed – Conveys that the conversation with the user failed. This can happen for various reasons including that the user did not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or the Lambda function failed to fulfill the intent. + /// Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface. ElicitIntent - Amazon Lex wants to elicit user intent. For example, a user might utter an intent ("I want to order a pizza"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialogState. ConfirmIntent - Amazon Lex is expecting a "yes" or "no" response. For example, Amazon Lex wants user confirmation before fulfilling an intent. Instead of a simple "yes" or "no," a user might respond with additional information. For example, "yes, but make it thick crust pizza" or "no, I want to order a drink". Amazon Lex can process such additional information (in these examples, update the crust type slot value, or change intent from OrderPizza to OrderDrink). ElicitSlot - Amazon Lex is expecting a slot value for the current intent. For example, suppose that in the response Amazon Lex sends this message: "What size pizza would you like?". A user might reply with the slot value (e.g., "medium"). The user might also provide additional information in the response (e.g., "medium thick crust pizza"). Amazon Lex can process such additional information appropriately. Fulfilled - Conveys that the Lambda function configured for the intent has successfully fulfilled the intent. ReadyForFulfillment - Conveys that the client has to fulfill the intent. Failed - Conveys that the conversation with the user failed. This can happen for various reasons including that the user did not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or the Lambda function failed to fulfill the intent. public let dialogState: DialogState? /// The current user intent that Amazon Lex is aware of. public let intentName: String? @@ -126,10 +126,11 @@ extension Runtimelex { public struct PostContentRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "inputStream" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "botAlias", location: .uri(locationName: "botAlias"), required: true, type: .string), AWSShapeMember(label: "contentType", location: .header(locationName: "Content-Type"), required: true, type: .string), AWSShapeMember(label: "inputStream", required: true, type: .blob), + AWSShapeMember(label: "requestAttributes", location: .header(locationName: "x-amz-lex-request-attributes"), required: false, type: .string), AWSShapeMember(label: "userId", location: .uri(locationName: "userId"), required: true, type: .string), AWSShapeMember(label: "sessionAttributes", location: .header(locationName: "x-amz-lex-session-attributes"), required: false, type: .string), AWSShapeMember(label: "accept", location: .header(locationName: "Accept"), required: false, type: .string), @@ -137,23 +138,26 @@ extension Runtimelex { ] /// Alias of the Amazon Lex bot. public let botAlias: String - /// You pass this values as the Content-Type HTTP header. Indicates the audio format or text. The header value must start with one of the following prefixes: PCM format audio/l16; rate=16000; channels=1 audio/x-l16; sample-rate=16000; channel-count=1 Opus format audio/x-cbr-opus-with-preamble; preamble-size=0; bit-rate=1; frame-size-milliseconds=1.1 Text format text/plain; charset=utf-8 + /// You pass this value as the Content-Type HTTP header. Indicates the audio format or text. The header value must start with one of the following prefixes: PCM format, audio data must be in little-endian byte order. audio/l16; rate=16000; channels=1 audio/x-l16; sample-rate=16000; channel-count=1 audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false Opus format audio/x-cbr-opus-with-preamble; preamble-size=0; bit-rate=256000; frame-size-milliseconds=4 Text format text/plain; charset=utf-8 public let contentType: String - /// User input in PCM or Opus audio format or text format as described in the Content-Type HTTP header. + /// User input in PCM or Opus audio format or text format as described in the Content-Type HTTP header. You can stream audio data to Amazon Lex or you can create a local buffer that captures all of the audio data before sending. In general, you get better performance if you stream audio data rather than buffering the data locally. public let inputStream: Data - /// ID of the client application user. Typically, each of your application users should have a unique ID. The application developer decides the user IDs. At runtime, each request must include the user ID. Note the following considerations: If you want a user to start conversation on one device and continue the conversation on another device, you might choose a user-specific identifier, such as the user's login, or Amazon Cognito user ID (assuming your application is using Amazon Cognito). If you want the same user to be able to have two independent conversations on two different devices, you might choose device-specific identifier, such as device ID, or some globally unique identifier. + /// You pass this value as the x-amz-lex-request-attributes HTTP header. Request-specific information passed between Amazon Lex and a client application. The value must be a JSON serialized and base64 encoded map with string keys and values. The total size of the requestAttributes and sessionAttributes headers is limited to 12 KB. The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes with the prefix x-amz-lex:. For more information, see Setting Request Attributes. + public let requestAttributes: String? + /// The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. At runtime, each request must contain the userID field. To decide the user ID to use for your application, consider the following factors. The userID field must not contain any personally identifiable information of the user, for example, name, personal identification numbers, or other end user personal information. If you want a user to start a conversation on one device and continue on another device, use a user-specific identifier. If you want the same user to be able to have two independent conversations on two different devices, choose a device-specific identifier. A user can't have two independent conversations with two different versions of the same bot. For example, a user can't have a conversation with the PROD and BETA versions of the same bot. If you anticipate that a user will need to have conversation with two different versions, for example, while testing, include the bot alias in the user ID to separate the two conversations. public let userId: String - /// You pass this value in the x-amz-lex-session-attributes HTTP header. The value must be map (keys and values must be strings) that is JSON serialized and then base64 encoded. A session represents dialog between a user and Amazon Lex. At runtime, a client application can pass contextual information, in the request to Amazon Lex. For example, You might use session attributes to track the requestID of user requests. In Getting Started Exercise 1, the example bot uses the price session attribute to maintain the price of flowers ordered (for example, "price":25). The code hook (Lambda function) sets this attribute based on the type of flowers ordered. For more information, see Review the Details of Information Flow. In the BookTrip bot exercise, the bot uses the currentReservation session attribute to maintains the slot data during the in-progress conversation to book a hotel or book a car. For more information, see Details of Information Flow. Amazon Lex passes these session attributes to the Lambda functions configured for the intent In the your Lambda function, you can use the session attributes for initialization and customization (prompts). Some examples are: Initialization - In a pizza ordering bot, if you pass user location (for example, "Location : 111 Maple Street"), then your Lambda function might use this information to determine the closest pizzeria to place the order (and perhaps set the storeAddress slot value as well). Personalized prompts - For example, you can configure prompts to refer to the user by name (for example, "Hey [firstName], what toppings would you like?"). You can pass the user's name as a session attribute ("firstName": "Joe") so that Amazon Lex can substitute the placeholder to provide a personalized prompt to the user ("Hey Joe, what toppings would you like?"). Amazon Lex does not persist session attributes. If you configured a code hook for the intent, Amazon Lex passes the incoming session attributes to the Lambda function. The Lambda function must return these session attributes if you want Amazon Lex to return them to the client. If there is no code hook configured for the intent Amazon Lex simply returns the session attributes to the client application. + /// You pass this value as the x-amz-lex-session-attributes HTTP header. Application-specific information passed between Amazon Lex and a client application. The value must be a JSON serialized and base64 encoded map with string keys and values. The total size of the sessionAttributes and requestAttributes headers is limited to 12 KB. For more information, see Setting Session Attributes. public let sessionAttributes: String? /// You pass this value as the Accept HTTP header. The message Amazon Lex returns in the response can be either text or speech based on the Accept HTTP header value in the request. If the value is text/plain; charset=utf-8, Amazon Lex returns text in the response. If the value begins with audio/, Amazon Lex returns speech in the response. Amazon Lex uses Amazon Polly to generate the speech (using the configuration you specified in the Accept header). For example, if you specify audio/mpeg as the value, Amazon Lex returns speech in the MPEG format. The following are the accepted values: audio/mpeg audio/ogg audio/pcm text/plain; charset=utf-8 audio/* (defaults to mpeg) public let accept: String? /// Name of the Amazon Lex bot. public let botName: String - public init(botAlias: String, contentType: String, inputStream: Data, userId: String, sessionAttributes: String? = nil, accept: String? = nil, botName: String) { + public init(botAlias: String, contentType: String, inputStream: Data, requestAttributes: String? = nil, userId: String, sessionAttributes: String? = nil, accept: String? = nil, botName: String) { self.botAlias = botAlias self.contentType = contentType self.inputStream = inputStream + self.requestAttributes = requestAttributes self.userId = userId self.sessionAttributes = sessionAttributes self.accept = accept @@ -164,6 +168,7 @@ extension Runtimelex { case botAlias = "botAlias" case contentType = "Content-Type" case inputStream = "inputStream" + case requestAttributes = "x-amz-lex-request-attributes" case userId = "userId" case sessionAttributes = "x-amz-lex-session-attributes" case accept = "Accept" @@ -172,25 +177,29 @@ extension Runtimelex { } public struct PostTextRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "requestAttributes", required: false, type: .map), AWSShapeMember(label: "botAlias", location: .uri(locationName: "botAlias"), required: true, type: .string), AWSShapeMember(label: "sessionAttributes", required: false, type: .map), AWSShapeMember(label: "userId", location: .uri(locationName: "userId"), required: true, type: .string), AWSShapeMember(label: "inputText", required: true, type: .string), AWSShapeMember(label: "botName", location: .uri(locationName: "botName"), required: true, type: .string) ] + /// Request-specific information passed between Amazon Lex and a client application. The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes with the prefix x-amz-lex:. For more information, see Setting Request Attributes. + public let requestAttributes: [String: String]? /// The alias of the Amazon Lex bot. public let botAlias: String - /// By using session attributes, a client application can pass contextual information in the request to Amazon Lex For example, In Getting Started Exercise 1, the example bot uses the price session attribute to maintain the price of the flowers ordered (for example, "Price":25). The code hook (the Lambda function) sets this attribute based on the type of flowers ordered. For more information, see Review the Details of Information Flow. In the BookTrip bot exercise, the bot uses the currentReservation session attribute to maintain slot data during the in-progress conversation to book a hotel or book a car. For more information, see Details of Information Flow. You might use the session attributes (key, value pairs) to track the requestID of user requests. Amazon Lex simply passes these session attributes to the Lambda functions configured for the intent. In your Lambda function, you can also use the session attributes for initialization and customization (prompts and response cards). Some examples are: Initialization - In a pizza ordering bot, if you can pass the user location as a session attribute (for example, "Location" : "111 Maple street"), then your Lambda function might use this information to determine the closest pizzeria to place the order (perhaps to set the storeAddress slot value). Personalize prompts - For example, you can configure prompts to refer to the user name. (For example, "Hey [FirstName], what toppings would you like?"). You can pass the user name as a session attribute ("FirstName" : "Joe") so that Amazon Lex can substitute the placeholder to provide a personalize prompt to the user ("Hey Joe, what toppings would you like?"). Amazon Lex does not persist session attributes. If you configure a code hook for the intent, Amazon Lex passes the incoming session attributes to the Lambda function. If you want Amazon Lex to return these session attributes back to the client, the Lambda function must return them. If there is no code hook configured for the intent, Amazon Lex simply returns the session attributes back to the client application. + /// Application-specific information passed between Amazon Lex and a client application. For more information, see Setting Session Attributes. public let sessionAttributes: [String: String]? - /// The ID of the client application user. The application developer decides the user IDs. At runtime, each request must include the user ID. Typically, each of your application users should have a unique ID. Note the following considerations: If you want a user to start a conversation on one device and continue the conversation on another device, you might choose a user-specific identifier, such as a login or Amazon Cognito user ID (assuming your application is using Amazon Cognito). If you want the same user to be able to have two independent conversations on two different devices, you might choose a device-specific identifier, such as device ID, or some globally unique identifier. + /// The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. At runtime, each request must contain the userID field. To decide the user ID to use for your application, consider the following factors. The userID field must not contain any personally identifiable information of the user, for example, name, personal identification numbers, or other end user personal information. If you want a user to start a conversation on one device and continue on another device, use a user-specific identifier. If you want the same user to be able to have two independent conversations on two different devices, choose a device-specific identifier. A user can't have two independent conversations with two different versions of the same bot. For example, a user can't have a conversation with the PROD and BETA versions of the same bot. If you anticipate that a user will need to have conversation with two different versions, for example, while testing, include the bot alias in the user ID to separate the two conversations. public let userId: String /// The text that the user entered (Amazon Lex interprets this text). public let inputText: String /// The name of the Amazon Lex bot. public let botName: String - public init(botAlias: String, sessionAttributes: [String: String]? = nil, userId: String, inputText: String, botName: String) { + public init(requestAttributes: [String: String]? = nil, botAlias: String, sessionAttributes: [String: String]? = nil, userId: String, inputText: String, botName: String) { + self.requestAttributes = requestAttributes self.botAlias = botAlias self.sessionAttributes = sessionAttributes self.userId = userId @@ -199,6 +208,7 @@ extension Runtimelex { } private enum CodingKeys: String, CodingKey { + case requestAttributes = "requestAttributes" case botAlias = "botAlias" case sessionAttributes = "sessionAttributes" case userId = "userId" @@ -210,7 +220,7 @@ extension Runtimelex { public struct PostContentResponse: AWSShape { /// The key for the payload public static let payloadPath: String? = "audioStream" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "contentType", location: .header(locationName: "Content-Type"), required: false, type: .string), AWSShapeMember(label: "slotToElicit", location: .header(locationName: "x-amz-lex-slot-to-elicit"), required: false, type: .string), AWSShapeMember(label: "audioStream", required: false, type: .blob), @@ -227,15 +237,15 @@ extension Runtimelex { public let slotToElicit: String? /// The prompt (or statement) to convey to the user. This is based on the bot configuration and context. For example, if Amazon Lex did not understand the user intent, it sends the clarificationPrompt configured for the bot. If the intent requires confirmation before taking the fulfillment action, it sends the confirmationPrompt. Another example: Suppose that the Lambda function successfully fulfilled the intent, and sent a message to convey to the user. Then Amazon Lex sends that message in the response. public let audioStream: Data? - /// Transcript of the voice input to the operation. + /// The text used to process the request. If the input was an audio stream, the inputTranscript field contains the text extracted from the audio stream. This is the text that is actually processed to recognize intents and slot values. You can use this information to determine if Amazon Lex is correctly processing the audio that you send. public let inputTranscript: String? /// Map of key/value pairs representing the session-specific context information. public let sessionAttributes: String? - /// Map of zero or more intent slots (name/value pairs) Amazon Lex detected from the user input during the conversation. + /// Map of zero or more intent slots (name/value pairs) Amazon Lex detected from the user input during the conversation. Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the valueSelectionStrategy selected when the slot type was created or updated. If valueSelectionStrategy is set to ORIGINAL_VALUE, the value provided by the user is returned, if the user value is similar to the slot values. If valueSelectionStrategy is set to TOP_RESOLUTION Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy, the default is ORIGINAL_VALUE. public let slots: String? /// Message to convey to the user. It can come from the bot's configuration or a code hook (Lambda function). If the current intent is not configured with a code hook or if the code hook returned Delegate as the dialogAction.type in its response, then Amazon Lex decides the next course of action and selects an appropriate message from the bot configuration based on the current user interaction context. For example, if Amazon Lex is not able to understand the user input, it uses a clarification prompt message (For more information, see the Error Handling section in the Amazon Lex console). Another example: if the intent requires confirmation before fulfillment, then Amazon Lex uses the confirmation prompt message in the intent configuration. If the code hook returns a message, Amazon Lex passes it as-is in its response to the client. public let message: String? - /// Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface. ElicitIntent – Amazon Lex wants to elicit the user's intent. Consider the following examples: For example, a user might utter an intent ("I want to order a pizza"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialog state. ConfirmIntent – Amazon Lex is expecting a "yes" or "no" response. For example, Amazon Lex wants user confirmation before fulfilling an intent. Instead of a simple "yes" or "no" response, a user might respond with additional information. For example, "yes, but make it a thick crust pizza" or "no, I want to order a drink." Amazon Lex can process such additional information (in these examples, update the crust type slot or change the intent from OrderPizza to OrderDrink). ElicitSlot – Amazon Lex is expecting the value of a slot for the current intent. For example, suppose that in the response Amazon Lex sends this message: "What size pizza would you like?". A user might reply with the slot value (e.g., "medium"). The user might also provide additional information in the response (e.g., "medium thick crust pizza"). Amazon Lex can process such additional information appropriately. Fulfilled – Conveys that the Lambda function has successfully fulfilled the intent. ReadyForFulfillment – Conveys that the client has to fullfill the request. Failed – Conveys that the conversation with the user failed. This can happen for various reasons, including that the user does not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or if the Lambda function fails to fulfill the intent. + /// Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface. ElicitIntent - Amazon Lex wants to elicit the user's intent. Consider the following examples: For example, a user might utter an intent ("I want to order a pizza"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialog state. ConfirmIntent - Amazon Lex is expecting a "yes" or "no" response. For example, Amazon Lex wants user confirmation before fulfilling an intent. Instead of a simple "yes" or "no" response, a user might respond with additional information. For example, "yes, but make it a thick crust pizza" or "no, I want to order a drink." Amazon Lex can process such additional information (in these examples, update the crust type slot or change the intent from OrderPizza to OrderDrink). ElicitSlot - Amazon Lex is expecting the value of a slot for the current intent. For example, suppose that in the response Amazon Lex sends this message: "What size pizza would you like?". A user might reply with the slot value (e.g., "medium"). The user might also provide additional information in the response (e.g., "medium thick crust pizza"). Amazon Lex can process such additional information appropriately. Fulfilled - Conveys that the Lambda function has successfully fulfilled the intent. ReadyForFulfillment - Conveys that the client has to fulfill the request. Failed - Conveys that the conversation with the user failed. This can happen for various reasons, including that the user does not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or if the Lambda function fails to fulfill the intent. public let dialogState: DialogState? /// Current user intent that Amazon Lex is aware of. public let intentName: String? @@ -266,7 +276,7 @@ extension Runtimelex { } public struct Button: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "text", required: true, type: .string), AWSShapeMember(label: "value", required: true, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/runtime.sagemaker/Runtimesagemaker_API.swift b/Sources/AWSSDKSwift/Services/runtime.sagemaker/Runtimesagemaker_API.swift new file mode 100644 index 00000000000..ddbe09542d8 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/runtime.sagemaker/Runtimesagemaker_API.swift @@ -0,0 +1,33 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** + Amazon SageMaker runtime API. +*/ +public struct Runtimesagemaker { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "runtime.sagemaker", + serviceProtocol: ServiceProtocol(type: .restjson, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-05-13", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [RuntimesagemakerError.self] + ) + } + + /// After you deploy a model into production using Amazon SageMaker hosting services, your client applications use this API to get inferences from the model hosted at the specified endpoint. For an overview of Amazon SageMaker, see How It Works Amazon SageMaker strips all POST headers except those supported by the API. Amazon SageMaker might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax. + public func invokeEndpoint(_ input: InvokeEndpointInput) throws -> InvokeEndpointOutput { + return try client.send(operation: "InvokeEndpoint", path: "/endpoints/{EndpointName}/invocations", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/runtime.sagemaker/Runtimesagemaker_Error.swift b/Sources/AWSSDKSwift/Services/runtime.sagemaker/Runtimesagemaker_Error.swift new file mode 100644 index 00000000000..39b5da1b5e2 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/runtime.sagemaker/Runtimesagemaker_Error.swift @@ -0,0 +1,32 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Runtimesagemaker +public enum RuntimesagemakerError: AWSErrorType { + case internalFailure(message: String?) + case serviceUnavailable(message: String?) + case validationError(message: String?) + case modelError(message: String?) +} + +extension RuntimesagemakerError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "InternalFailure": + self = .internalFailure(message: message) + case "ServiceUnavailable": + self = .serviceUnavailable(message: message) + case "ValidationError": + self = .validationError(message: message) + case "ModelError": + self = .modelError(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/runtime.sagemaker/Runtimesagemaker_Shapes.swift b/Sources/AWSSDKSwift/Services/runtime.sagemaker/Runtimesagemaker_Shapes.swift new file mode 100644 index 00000000000..4e93946d88a --- /dev/null +++ b/Sources/AWSSDKSwift/Services/runtime.sagemaker/Runtimesagemaker_Shapes.swift @@ -0,0 +1,69 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Runtimesagemaker { + + public struct InvokeEndpointInput: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "Body" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "EndpointName", location: .uri(locationName: "EndpointName"), required: true, type: .string), + AWSShapeMember(label: "Accept", location: .header(locationName: "Accept"), required: false, type: .string), + AWSShapeMember(label: "Body", required: true, type: .blob), + AWSShapeMember(label: "ContentType", location: .header(locationName: "Content-Type"), required: false, type: .string) + ] + /// The name of the endpoint that you specified when you created the endpoint using the CreateEndpoint API. + public let endpointName: String + /// The desired MIME type of the inference in the response. + public let accept: String? + /// Provides input data, in the format specified in the ContentType request header. Amazon SageMaker passes all of the data in the body to the model. + public let body: Data + /// The MIME type of the input data in the request body. + public let contentType: String? + + public init(endpointName: String, accept: String? = nil, body: Data, contentType: String? = nil) { + self.endpointName = endpointName + self.accept = accept + self.body = body + self.contentType = contentType + } + + private enum CodingKeys: String, CodingKey { + case endpointName = "EndpointName" + case accept = "Accept" + case body = "Body" + case contentType = "Content-Type" + } + } + + public struct InvokeEndpointOutput: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "Body" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Body", required: true, type: .blob), + AWSShapeMember(label: "InvokedProductionVariant", location: .header(locationName: "x-Amzn-Invoked-Production-Variant"), required: false, type: .string), + AWSShapeMember(label: "ContentType", location: .header(locationName: "Content-Type"), required: false, type: .string) + ] + /// Includes the inference provided by the model. + public let body: Data + /// Identifies the production variant that was invoked. + public let invokedProductionVariant: String? + /// The MIME type of the inference returned in the response body. + public let contentType: String? + + public init(body: Data, invokedProductionVariant: String? = nil, contentType: String? = nil) { + self.body = body + self.invokedProductionVariant = invokedProductionVariant + self.contentType = contentType + } + + private enum CodingKeys: String, CodingKey { + case body = "Body" + case invokedProductionVariant = "x-Amzn-Invoked-Production-Variant" + case contentType = "Content-Type" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/s3/S3_API.swift b/Sources/AWSSDKSwift/Services/s3/S3_API.swift index 89d48d81039..4ceeff1365d 100644 --- a/Sources/AWSSDKSwift/Services/s3/S3_API.swift +++ b/Sources/AWSSDKSwift/Services/s3/S3_API.swift @@ -19,7 +19,7 @@ public struct S3 { serviceProtocol: ServiceProtocol(type: .restxml), apiVersion: "2006-03-01", endpoint: endpoint, - serviceEndpoints: ["s3-external-1": "s3-external-1.amazonaws.com", "ap-southeast-1": "s3-ap-southeast-1.amazonaws.com", "us-west-1": "s3-us-west-1.amazonaws.com", "sa-east-1": "s3-sa-east-1.amazonaws.com", "ap-northeast-1": "s3-ap-northeast-1.amazonaws.com", "eu-west-1": "s3-eu-west-1.amazonaws.com", "us-west-2": "s3-us-west-2.amazonaws.com", "ap-southeast-2": "s3-ap-southeast-2.amazonaws.com", "us-east-1": "s3.amazonaws.com"], + serviceEndpoints: ["s3-external-1": "s3-external-1.amazonaws.com", "ap-southeast-1": "s3.ap-southeast-1.amazonaws.com", "us-west-1": "s3.us-west-1.amazonaws.com", "sa-east-1": "s3.sa-east-1.amazonaws.com", "ap-northeast-1": "s3.ap-northeast-1.amazonaws.com", "eu-west-1": "s3.eu-west-1.amazonaws.com", "us-west-2": "s3.us-west-2.amazonaws.com", "ap-southeast-2": "s3.ap-southeast-2.amazonaws.com", "us-east-1": "s3.amazonaws.com"], partitionEndpoint: "us-east-1", middlewares: [S3RequestMiddleware()], possibleErrorTypes: [S3Error.self] @@ -36,11 +36,6 @@ public struct S3 { return try client.send(operation: "GetObjectTorrent", path: "/{Bucket}/{Key+}?torrent", httpMethod: "GET", input: input) } - /// Returns the cors configuration for the bucket. - public func getBucketCors(_ input: GetBucketCorsRequest) throws -> GetBucketCorsOutput { - return try client.send(operation: "GetBucketCors", path: "/{Bucket}?cors", httpMethod: "GET", input: input) - } - /// Deprecated, see the PutBucketNotificationConfiguraiton operation. public func putBucketNotification(_ input: PutBucketNotificationRequest) throws { _ = try client.send(operation: "PutBucketNotification", path: "/{Bucket}?notification", httpMethod: "PUT", input: input) @@ -56,11 +51,21 @@ public struct S3 { return try client.send(operation: "AbortMultipartUpload", path: "/{Bucket}/{Key+}", httpMethod: "DELETE", input: input) } + /// Creates a new server-side encryption configuration (or replaces an existing one, if present). + public func putBucketEncryption(_ input: PutBucketEncryptionRequest) throws { + _ = try client.send(operation: "PutBucketEncryption", path: "/{Bucket}?encryption", httpMethod: "PUT", input: input) + } + /// Deletes the bucket. All objects (including all object versions and Delete Markers) in the bucket must be deleted before the bucket itself can be deleted. public func deleteBucket(_ input: DeleteBucketRequest) throws { _ = try client.send(operation: "DeleteBucket", path: "/{Bucket}", httpMethod: "DELETE", input: input) } + /// Returns the cors configuration for the bucket. + public func getBucketCors(_ input: GetBucketCorsRequest) throws -> GetBucketCorsOutput { + return try client.send(operation: "GetBucketCors", path: "/{Bucket}?cors", httpMethod: "GET", input: input) + } + /// Uploads a part by copying data from an existing object as data source. public func uploadPartCopy(_ input: UploadPartCopyRequest) throws -> UploadPartCopyOutput { return try client.send(operation: "UploadPartCopy", path: "/{Bucket}/{Key+}", httpMethod: "PUT", input: input) @@ -296,6 +301,11 @@ public struct S3 { _ = try client.send(operation: "PutBucketNotificationConfiguration", path: "/{Bucket}?notification", httpMethod: "PUT", input: input) } + /// Returns the server-side encryption configuration of a bucket. + public func getBucketEncryption(_ input: GetBucketEncryptionRequest) throws -> GetBucketEncryptionOutput { + return try client.send(operation: "GetBucketEncryption", path: "/{Bucket}?encryption", httpMethod: "GET", input: input) + } + /// Sets the permissions on a bucket using access control lists (ACL). public func putBucketAcl(_ input: PutBucketAclRequest) throws { _ = try client.send(operation: "PutBucketAcl", path: "/{Bucket}?acl", httpMethod: "PUT", input: input) @@ -311,9 +321,9 @@ public struct S3 { _ = try client.send(operation: "PutBucketCors", path: "/{Bucket}?cors", httpMethod: "PUT", input: input) } - /// Sets the supplied tag-set to an object that already exists in a bucket - public func putObjectTagging(_ input: PutObjectTaggingRequest) throws -> PutObjectTaggingOutput { - return try client.send(operation: "PutObjectTagging", path: "/{Bucket}/{Key+}?tagging", httpMethod: "PUT", input: input) + /// Deletes the server-side encryption configuration from the bucket. + public func deleteBucketEncryption(_ input: DeleteBucketEncryptionRequest) throws { + _ = try client.send(operation: "DeleteBucketEncryption", path: "/{Bucket}?encryption", httpMethod: "DELETE", input: input) } /// Lists the analytics configurations for the bucket. @@ -321,9 +331,9 @@ public struct S3 { return try client.send(operation: "ListBucketAnalyticsConfigurations", path: "/{Bucket}?analytics", httpMethod: "GET", input: input) } - /// Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. - public func putBucketMetricsConfiguration(_ input: PutBucketMetricsConfigurationRequest) throws { - _ = try client.send(operation: "PutBucketMetricsConfiguration", path: "/{Bucket}?metrics", httpMethod: "PUT", input: input) + /// Sets the supplied tag-set to an object that already exists in a bucket + public func putObjectTagging(_ input: PutObjectTaggingRequest) throws -> PutObjectTaggingOutput { + return try client.send(operation: "PutObjectTagging", path: "/{Bucket}/{Key+}?tagging", httpMethod: "PUT", input: input) } /// Retrieves objects from Amazon S3. @@ -336,6 +346,11 @@ public struct S3 { return try client.send(operation: "ListParts", path: "/{Bucket}/{Key+}", httpMethod: "GET", input: input) } + /// Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. + public func putBucketMetricsConfiguration(_ input: PutBucketMetricsConfigurationRequest) throws { + _ = try client.send(operation: "PutBucketMetricsConfiguration", path: "/{Bucket}?metrics", httpMethod: "PUT", input: input) + } + /// Returns the access control list (ACL) of an object. public func getObjectAcl(_ input: GetObjectAclRequest) throws -> GetObjectAclOutput { return try client.send(operation: "GetObjectAcl", path: "/{Bucket}/{Key+}?acl", httpMethod: "GET", input: input) diff --git a/Sources/AWSSDKSwift/Services/s3/S3_Shapes.swift b/Sources/AWSSDKSwift/Services/s3/S3_Shapes.swift index 39427d15343..09adad0cecb 100644 --- a/Sources/AWSSDKSwift/Services/s3/S3_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/s3/S3_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension S3 { public struct DeleteBucketWebsiteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -20,8 +20,24 @@ extension S3 { } } + public struct GetBucketEncryptionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) + ] + /// The name of the bucket from which the server-side encryption configuration is retrieved. + public let bucket: String + + public init(bucket: String) { + self.bucket = bucket + } + + private enum CodingKeys: String, CodingKey { + case bucket = "Bucket" + } + } + public struct MetricsAndOperator: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", location: .body(locationName: "Tag"), required: false, type: .structure), AWSShapeMember(label: "Prefix", required: false, type: .string) ] @@ -42,7 +58,7 @@ extension S3 { } public struct LifecycleExpiration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExpiredObjectDeleteMarker", required: false, type: .boolean), AWSShapeMember(label: "Date", required: false, type: .timestamp), AWSShapeMember(label: "Days", required: false, type: .integer) @@ -70,7 +86,7 @@ extension S3 { public struct PutBucketCorsRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "CORSConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "CORSConfiguration", location: .body(locationName: "CORSConfiguration"), required: true, type: .structure), AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string) @@ -93,7 +109,7 @@ extension S3 { } public struct TagSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tag", required: false, type: .list) ] public let tag: [Tag]? @@ -108,7 +124,7 @@ extension S3 { } public struct DeleteBucketCorsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -123,7 +139,7 @@ extension S3 { } public struct Rule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ID", required: false, type: .string), AWSShapeMember(label: "Status", required: true, type: .enum), AWSShapeMember(label: "AbortIncompleteMultipartUpload", required: false, type: .structure), @@ -169,7 +185,7 @@ extension S3 { } public struct GetBucketReplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -184,7 +200,7 @@ extension S3 { } public struct GetBucketLifecycleConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -199,7 +215,7 @@ extension S3 { } public struct LifecycleRuleAndOperator: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", location: .body(locationName: "Tag"), required: false, type: .structure), AWSShapeMember(label: "Prefix", required: false, type: .string) ] @@ -218,8 +234,39 @@ extension S3 { } } + public struct SelectParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OutputSerialization", required: true, type: .structure), + AWSShapeMember(label: "ExpressionType", required: true, type: .enum), + AWSShapeMember(label: "Expression", required: true, type: .string), + AWSShapeMember(label: "InputSerialization", required: true, type: .structure) + ] + /// Describes how the results of the Select job are serialized. + public let outputSerialization: OutputSerialization + /// The type of the provided expression (e.g., SQL). + public let expressionType: ExpressionType + /// The expression that is used to query the object. + public let expression: String + /// Describes the serialization format of the object. + public let inputSerialization: InputSerialization + + public init(outputSerialization: OutputSerialization, expressionType: ExpressionType, expression: String, inputSerialization: InputSerialization) { + self.outputSerialization = outputSerialization + self.expressionType = expressionType + self.expression = expression + self.inputSerialization = inputSerialization + } + + private enum CodingKeys: String, CodingKey { + case outputSerialization = "OutputSerialization" + case expressionType = "ExpressionType" + case expression = "Expression" + case inputSerialization = "InputSerialization" + } + } + public struct GetBucketPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -234,7 +281,7 @@ extension S3 { } public struct CopyObjectResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", required: false, type: .string), AWSShapeMember(label: "LastModified", required: false, type: .timestamp) ] @@ -255,7 +302,7 @@ extension S3 { public struct PutBucketAccelerateConfigurationRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "AccelerateConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "AccelerateConfiguration", location: .body(locationName: "AccelerateConfiguration"), required: true, type: .structure) ] @@ -276,7 +323,7 @@ extension S3 { } public struct GetBucketLocationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LocationConstraint", required: false, type: .enum) ] public let locationConstraint: BucketLocationConstraint? @@ -291,7 +338,7 @@ extension S3 { } public struct RedirectAllRequestsTo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HostName", required: true, type: .string), AWSShapeMember(label: "Protocol", required: false, type: .enum) ] @@ -320,7 +367,7 @@ extension S3 { public struct UploadPartCopyOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "CopyPartResult" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CopyPartResult", required: false, type: .structure), AWSShapeMember(label: "SSECustomerKeyMD5", location: .header(locationName: "x-amz-server-side-encryption-customer-key-MD5"), required: false, type: .string), AWSShapeMember(label: "CopySourceVersionId", location: .header(locationName: "x-amz-copy-source-version-id"), required: false, type: .string), @@ -364,7 +411,7 @@ extension S3 { } public struct Tagging: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagSet", required: true, type: .structure) ] public let tagSet: TagSet @@ -381,7 +428,7 @@ extension S3 { public struct GetBucketAnalyticsConfigurationOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "AnalyticsConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AnalyticsConfiguration", required: false, type: .structure) ] /// The configuration and any analyses for the analytics filter. @@ -397,7 +444,7 @@ extension S3 { } public struct Owner: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ID", required: false, type: .string), AWSShapeMember(label: "DisplayName", required: false, type: .string) ] @@ -416,7 +463,7 @@ extension S3 { } public struct CreateMultipartUploadOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .body(locationName: "Bucket"), required: false, type: .string), AWSShapeMember(label: "AbortDate", location: .header(locationName: "x-amz-abort-date"), required: false, type: .timestamp), AWSShapeMember(label: "AbortRuleId", location: .header(locationName: "x-amz-abort-rule-id"), required: false, type: .string), @@ -476,7 +523,7 @@ extension S3 { } public struct Object: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastModified", required: false, type: .timestamp), AWSShapeMember(label: "StorageClass", required: false, type: .enum), AWSShapeMember(label: "Key", required: false, type: .string), @@ -511,8 +558,24 @@ extension S3 { } } + public struct OutputLocation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3", required: false, type: .structure) + ] + /// Describes an S3 location that will receive the results of the restore request. + public let s3: S3Location? + + public init(s3: S3Location? = nil) { + self.s3 = s3 + } + + private enum CodingKeys: String, CodingKey { + case s3 = "S3" + } + } + public struct CopyObjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Tagging", location: .header(locationName: "x-amz-tagging"), required: false, type: .string), AWSShapeMember(label: "ContentDisposition", location: .header(locationName: "Content-Disposition"), required: false, type: .string), @@ -691,7 +754,7 @@ extension S3 { } public struct GetBucketLocationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -705,8 +768,34 @@ extension S3 { } } + public struct InventoryEncryption: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SSEKMS", location: .body(locationName: "SSE-KMS"), required: false, type: .structure), + AWSShapeMember(label: "SSES3", location: .body(locationName: "SSE-S3"), required: false, type: .structure) + ] + /// Specifies the use of SSE-KMS to encrypt delievered Inventory reports. + public let ssekms: SSEKMS? + /// Specifies the use of SSE-S3 to encrypt delievered Inventory reports. + public let sses3: SSES3? + + public init(ssekms: SSEKMS? = nil, sses3: SSES3? = nil) { + self.ssekms = ssekms + self.sses3 = sses3 + } + + private enum CodingKeys: String, CodingKey { + case ssekms = "SSE-KMS" + case sses3 = "SSE-S3" + } + } + + public enum OwnerOverride: String, CustomStringConvertible, Codable { + case destination = "Destination" + public var description: String { return self.rawValue } + } + public struct Grant: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Permission", required: false, type: .enum), AWSShapeMember(label: "Grantee", required: false, type: .structure) ] @@ -725,8 +814,49 @@ extension S3 { } } + public struct CSVInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FieldDelimiter", required: false, type: .string), + AWSShapeMember(label: "FileHeaderInfo", required: false, type: .enum), + AWSShapeMember(label: "QuoteEscapeCharacter", required: false, type: .string), + AWSShapeMember(label: "Comments", required: false, type: .string), + AWSShapeMember(label: "RecordDelimiter", required: false, type: .string), + AWSShapeMember(label: "QuoteCharacter", required: false, type: .string) + ] + /// Value used to separate individual fields in a record. + public let fieldDelimiter: String? + /// Describes the first line of input. Valid values: None, Ignore, Use. + public let fileHeaderInfo: FileHeaderInfo? + /// Single character used for escaping the quote character inside an already escaped value. + public let quoteEscapeCharacter: String? + /// Single character used to indicate a row should be ignored when present at the start of a row. + public let comments: String? + /// Value used to separate individual records. + public let recordDelimiter: String? + /// Value used for escaping where the field delimiter is part of the value. + public let quoteCharacter: String? + + public init(fieldDelimiter: String? = nil, fileHeaderInfo: FileHeaderInfo? = nil, quoteEscapeCharacter: String? = nil, comments: String? = nil, recordDelimiter: String? = nil, quoteCharacter: String? = nil) { + self.fieldDelimiter = fieldDelimiter + self.fileHeaderInfo = fileHeaderInfo + self.quoteEscapeCharacter = quoteEscapeCharacter + self.comments = comments + self.recordDelimiter = recordDelimiter + self.quoteCharacter = quoteCharacter + } + + private enum CodingKeys: String, CodingKey { + case fieldDelimiter = "FieldDelimiter" + case fileHeaderInfo = "FileHeaderInfo" + case quoteEscapeCharacter = "QuoteEscapeCharacter" + case comments = "Comments" + case recordDelimiter = "RecordDelimiter" + case quoteCharacter = "QuoteCharacter" + } + } + public struct InventoryDestination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3BucketDestination", required: true, type: .structure) ] /// Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published. @@ -750,7 +880,7 @@ extension S3 { } public struct ListObjectsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "MaxKeys", location: .querystring(locationName: "max-keys"), required: false, type: .integer), AWSShapeMember(label: "Marker", location: .querystring(locationName: "marker"), required: false, type: .string), @@ -796,7 +926,7 @@ extension S3 { public struct PutBucketAnalyticsConfigurationRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "AnalyticsConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "AnalyticsConfiguration", location: .body(locationName: "AnalyticsConfiguration"), required: true, type: .structure), AWSShapeMember(label: "Id", location: .querystring(locationName: "id"), required: true, type: .string) @@ -822,7 +952,7 @@ extension S3 { } public struct CloudFunctionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CloudFunction", required: false, type: .string), AWSShapeMember(label: "InvocationRole", required: false, type: .string), AWSShapeMember(label: "Events", location: .body(locationName: "Event"), required: false, type: .list), @@ -855,7 +985,7 @@ extension S3 { } public struct HeadObjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "SSECustomerKey", location: .header(locationName: "x-amz-server-side-encryption-customer-key"), required: false, type: .string), AWSShapeMember(label: "IfUnmodifiedSince", location: .header(locationName: "If-Unmodified-Since"), required: false, type: .timestamp), @@ -928,7 +1058,7 @@ extension S3 { } public struct GetBucketRequestPaymentOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Payer", required: false, type: .enum) ] /// Specifies who pays for the download and request fees. @@ -944,7 +1074,7 @@ extension S3 { } public struct AbortMultipartUploadOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RequestCharged", location: .header(locationName: "x-amz-request-charged"), required: false, type: .enum) ] public let requestCharged: RequestCharged? @@ -961,7 +1091,7 @@ extension S3 { public struct PutObjectTaggingRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "Tagging" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "Tagging", location: .body(locationName: "Tagging"), required: true, type: .structure), @@ -992,7 +1122,7 @@ extension S3 { } public struct CompletedMultipartUpload: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parts", location: .body(locationName: "Part"), required: false, type: .list) ] public let parts: [CompletedPart]? @@ -1026,7 +1156,7 @@ extension S3 { public struct GetObjectOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "Body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PartsCount", location: .header(locationName: "x-amz-mp-parts-count"), required: false, type: .integer), AWSShapeMember(label: "ContentDisposition", location: .header(locationName: "Content-Disposition"), required: false, type: .string), AWSShapeMember(label: "VersionId", location: .header(locationName: "x-amz-version-id"), required: false, type: .string), @@ -1186,7 +1316,7 @@ extension S3 { } public struct NotificationConfigurationDeprecated: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueueConfiguration", required: false, type: .structure), AWSShapeMember(label: "TopicConfiguration", required: false, type: .structure), AWSShapeMember(label: "CloudFunctionConfiguration", required: false, type: .structure) @@ -1209,7 +1339,7 @@ extension S3 { } public struct Transition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StorageClass", required: false, type: .enum), AWSShapeMember(label: "Date", required: false, type: .timestamp), AWSShapeMember(label: "Days", required: false, type: .integer) @@ -1235,7 +1365,7 @@ extension S3 { } public struct MetricsConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string), AWSShapeMember(label: "Filter", required: false, type: .structure) ] @@ -1256,7 +1386,7 @@ extension S3 { } public struct Condition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HttpErrorCodeReturnedEquals", required: false, type: .string), AWSShapeMember(label: "KeyPrefixEquals", required: false, type: .string) ] @@ -1277,7 +1407,7 @@ extension S3 { } public struct VersioningConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MFADelete", location: .body(locationName: "MfaDelete"), required: false, type: .enum), AWSShapeMember(label: "Status", required: false, type: .enum) ] @@ -1298,7 +1428,7 @@ extension S3 { } public struct AccelerateConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum) ] /// The accelerate configuration of the bucket. @@ -1313,10 +1443,15 @@ extension S3 { } } + public enum RestoreRequestType: String, CustomStringConvertible, Codable { + case select = "SELECT" + public var description: String { return self.rawValue } + } + public struct PutBucketLoggingRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "BucketLoggingStatus" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "BucketLoggingStatus", location: .body(locationName: "BucketLoggingStatus"), required: true, type: .structure) @@ -1341,7 +1476,7 @@ extension S3 { public struct GetBucketPolicyOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "Policy" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: false, type: .string) ] /// The bucket policy as a JSON document. @@ -1357,7 +1492,7 @@ extension S3 { } public struct ReplicationConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Role", required: true, type: .string), AWSShapeMember(label: "Rules", location: .body(locationName: "Rule"), required: true, type: .list) ] @@ -1386,7 +1521,7 @@ extension S3 { } public struct ObjectVersion: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastModified", required: false, type: .timestamp), AWSShapeMember(label: "Size", required: false, type: .integer), AWSShapeMember(label: "VersionId", required: false, type: .string), @@ -1437,7 +1572,7 @@ extension S3 { public struct GetBucketReplicationOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "ReplicationConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplicationConfiguration", required: false, type: .structure) ] public let replicationConfiguration: ReplicationConfiguration? @@ -1454,7 +1589,7 @@ extension S3 { public struct PutBucketInventoryConfigurationRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "InventoryConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "InventoryConfiguration", location: .body(locationName: "InventoryConfiguration"), required: true, type: .structure), AWSShapeMember(label: "Id", location: .querystring(locationName: "id"), required: true, type: .string) @@ -1486,7 +1621,7 @@ extension S3 { } public struct ListObjectsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxKeys", required: false, type: .integer), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -1540,7 +1675,7 @@ extension S3 { } public struct CompleteMultipartUploadOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", required: false, type: .string), AWSShapeMember(label: "Location", required: false, type: .string), AWSShapeMember(label: "Expiration", location: .header(locationName: "x-amz-expiration"), required: false, type: .string), @@ -1592,7 +1727,7 @@ extension S3 { } public struct NotificationConfigurationFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", location: .body(locationName: "S3Key"), required: false, type: .structure) ] public let key: S3KeyFilter? @@ -1609,7 +1744,7 @@ extension S3 { public struct PutObjectAclRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "AccessControlPolicy" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "AccessControlPolicy", location: .body(locationName: "AccessControlPolicy"), required: false, type: .structure), @@ -1680,7 +1815,7 @@ extension S3 { } public struct TopicConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", location: .body(locationName: "Topic"), required: true, type: .string), AWSShapeMember(label: "Filter", required: false, type: .structure), AWSShapeMember(label: "Events", location: .body(locationName: "Event"), required: true, type: .list), @@ -1708,7 +1843,7 @@ extension S3 { } public struct RoutingRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Redirect", required: true, type: .structure), AWSShapeMember(label: "Condition", required: false, type: .structure) ] @@ -1734,7 +1869,7 @@ extension S3 { } public struct LifecycleRuleFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tag", required: false, type: .structure), AWSShapeMember(label: "And", required: false, type: .structure), AWSShapeMember(label: "Prefix", required: false, type: .string) @@ -1759,7 +1894,7 @@ extension S3 { } public struct IndexDocument: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Suffix", required: true, type: .string) ] /// A suffix that is appended to a request that is for a directory on the website endpoint (e.g. if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character. @@ -1775,7 +1910,7 @@ extension S3 { } public struct HeadObjectOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PartsCount", location: .header(locationName: "x-amz-mp-parts-count"), required: false, type: .integer), AWSShapeMember(label: "ContentDisposition", location: .header(locationName: "Content-Disposition"), required: false, type: .string), AWSShapeMember(label: "VersionId", location: .header(locationName: "x-amz-version-id"), required: false, type: .string), @@ -1906,8 +2041,50 @@ extension S3 { } } + public struct EncryptionConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReplicaKmsKeyID", required: false, type: .string) + ] + /// The id of the KMS key used to encrypt the replica object. + public let replicaKmsKeyID: String? + + public init(replicaKmsKeyID: String? = nil) { + self.replicaKmsKeyID = replicaKmsKeyID + } + + private enum CodingKeys: String, CodingKey { + case replicaKmsKeyID = "ReplicaKmsKeyID" + } + } + + public struct Encryption: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KMSKeyId", required: false, type: .string), + AWSShapeMember(label: "KMSContext", required: false, type: .string), + AWSShapeMember(label: "EncryptionType", required: true, type: .enum) + ] + /// If the encryption type is aws:kms, this optional value specifies the AWS KMS key ID to use for encryption of job results. + public let kMSKeyId: String? + /// If the encryption type is aws:kms, this optional value can be used to specify the encryption context for the restore results. + public let kMSContext: String? + /// The server-side encryption algorithm used when storing job results in Amazon S3 (e.g., AES256, aws:kms). + public let encryptionType: ServerSideEncryption + + public init(kMSKeyId: String? = nil, kMSContext: String? = nil, encryptionType: ServerSideEncryption) { + self.kMSKeyId = kMSKeyId + self.kMSContext = kMSContext + self.encryptionType = encryptionType + } + + private enum CodingKeys: String, CodingKey { + case kMSKeyId = "KMSKeyId" + case kMSContext = "KMSContext" + case encryptionType = "EncryptionType" + } + } + public struct CompletedPart: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", required: false, type: .string), AWSShapeMember(label: "PartNumber", required: false, type: .integer) ] @@ -1928,7 +2105,7 @@ extension S3 { } public struct GetBucketTaggingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -1943,7 +2120,7 @@ extension S3 { } public struct ListObjectsV2Output: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxKeys", required: false, type: .integer), AWSShapeMember(label: "StartAfter", required: false, type: .string), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), @@ -2014,7 +2191,7 @@ extension S3 { } public struct TargetGrant: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Permission", required: false, type: .enum), AWSShapeMember(label: "Grantee", required: false, type: .structure) ] @@ -2034,7 +2211,7 @@ extension S3 { } public struct BucketLoggingStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoggingEnabled", required: false, type: .structure) ] public let loggingEnabled: LoggingEnabled? @@ -2049,7 +2226,7 @@ extension S3 { } public struct AnalyticsS3BucketDestination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", required: true, type: .string), AWSShapeMember(label: "Format", required: true, type: .enum), AWSShapeMember(label: "BucketAccountId", required: false, type: .string), @@ -2088,7 +2265,7 @@ extension S3 { public struct PutBucketLifecycleRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "LifecycleConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "LifecycleConfiguration", location: .body(locationName: "LifecycleConfiguration"), required: false, type: .structure) @@ -2111,7 +2288,7 @@ extension S3 { } public struct WebsiteConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoutingRules", required: false, type: .structure), AWSShapeMember(label: "IndexDocument", required: false, type: .structure), AWSShapeMember(label: "ErrorDocument", required: false, type: .structure), @@ -2138,7 +2315,7 @@ extension S3 { } public struct NotificationConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicConfigurations", location: .body(locationName: "TopicConfiguration"), required: false, type: .list), AWSShapeMember(label: "QueueConfigurations", location: .body(locationName: "QueueConfiguration"), required: false, type: .list), AWSShapeMember(label: "LambdaFunctionConfigurations", location: .body(locationName: "CloudFunctionConfiguration"), required: false, type: .list) @@ -2161,7 +2338,7 @@ extension S3 { } public struct AnalyticsFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tag", required: false, type: .structure), AWSShapeMember(label: "And", required: false, type: .structure), AWSShapeMember(label: "Prefix", required: false, type: .string) @@ -2187,7 +2364,7 @@ extension S3 { } public struct GetBucketAclRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -2202,7 +2379,7 @@ extension S3 { } public struct GetObjectTaggingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "VersionId", location: .querystring(locationName: "versionId"), required: false, type: .string), AWSShapeMember(label: "Key", location: .uri(locationName: "Key"), required: true, type: .string) @@ -2227,7 +2404,7 @@ extension S3 { public struct PutBucketLifecycleConfigurationRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "LifecycleConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "LifecycleConfiguration", location: .body(locationName: "LifecycleConfiguration"), required: false, type: .structure) ] @@ -2246,7 +2423,7 @@ extension S3 { } public struct ListObjectVersionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxKeys", required: false, type: .integer), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), AWSShapeMember(label: "VersionIdMarker", required: false, type: .string), @@ -2314,7 +2491,7 @@ extension S3 { } public struct AnalyticsConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string), AWSShapeMember(label: "StorageClassAnalysis", required: true, type: .structure), AWSShapeMember(label: "Filter", required: false, type: .structure) @@ -2340,7 +2517,7 @@ extension S3 { } public struct GetBucketVersioningOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MFADelete", location: .body(locationName: "MfaDelete"), required: false, type: .enum), AWSShapeMember(label: "Status", required: false, type: .enum) ] @@ -2360,8 +2537,24 @@ extension S3 { } } + public struct InputSerialization: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CSV", required: false, type: .structure) + ] + /// Describes the serialization of a CSV-encoded object. + public let csv: CSVInput? + + public init(csv: CSVInput? = nil) { + self.csv = csv + } + + private enum CodingKeys: String, CodingKey { + case csv = "CSV" + } + } + public struct InventoryFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Prefix", required: true, type: .string) ] /// The prefix that an object must have to be included in the inventory results. @@ -2376,68 +2569,68 @@ extension S3 { } } - public struct DeleteObjectsRequest: AWSShape { + public struct PutBucketVersioningRequest: AWSShape { /// The key for the payload - public static let payloadPath: String? = "Delete" - public static var members: [AWSShapeMember] = [ + public static let payloadPath: String? = "VersioningConfiguration" + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), + AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "MFA", location: .header(locationName: "x-amz-mfa"), required: false, type: .string), - AWSShapeMember(label: "RequestPayer", location: .header(locationName: "x-amz-request-payer"), required: false, type: .enum), - AWSShapeMember(label: "Delete", location: .body(locationName: "Delete"), required: true, type: .structure) + AWSShapeMember(label: "VersioningConfiguration", location: .body(locationName: "VersioningConfiguration"), required: true, type: .structure) ] public let bucket: String + public let contentMD5: String? /// The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. public let mfa: String? - public let requestPayer: RequestPayer? - public let delete: Delete + public let versioningConfiguration: VersioningConfiguration - public init(bucket: String, mfa: String? = nil, requestPayer: RequestPayer? = nil, delete: Delete) { + public init(bucket: String, contentMD5: String? = nil, mfa: String? = nil, versioningConfiguration: VersioningConfiguration) { self.bucket = bucket + self.contentMD5 = contentMD5 self.mfa = mfa - self.requestPayer = requestPayer - self.delete = delete + self.versioningConfiguration = versioningConfiguration } private enum CodingKeys: String, CodingKey { case bucket = "Bucket" + case contentMD5 = "Content-MD5" case mfa = "x-amz-mfa" - case requestPayer = "x-amz-request-payer" - case delete = "Delete" + case versioningConfiguration = "VersioningConfiguration" } } - public struct PutBucketVersioningRequest: AWSShape { + public struct DeleteObjectsRequest: AWSShape { /// The key for the payload - public static let payloadPath: String? = "VersioningConfiguration" - public static var members: [AWSShapeMember] = [ + public static let payloadPath: String? = "Delete" + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), - AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "MFA", location: .header(locationName: "x-amz-mfa"), required: false, type: .string), - AWSShapeMember(label: "VersioningConfiguration", location: .body(locationName: "VersioningConfiguration"), required: true, type: .structure) + AWSShapeMember(label: "RequestPayer", location: .header(locationName: "x-amz-request-payer"), required: false, type: .enum), + AWSShapeMember(label: "Delete", location: .body(locationName: "Delete"), required: true, type: .structure) ] public let bucket: String - public let contentMD5: String? /// The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. public let mfa: String? - public let versioningConfiguration: VersioningConfiguration + public let requestPayer: RequestPayer? + public let delete: Delete - public init(bucket: String, contentMD5: String? = nil, mfa: String? = nil, versioningConfiguration: VersioningConfiguration) { + public init(bucket: String, mfa: String? = nil, requestPayer: RequestPayer? = nil, delete: Delete) { self.bucket = bucket - self.contentMD5 = contentMD5 self.mfa = mfa - self.versioningConfiguration = versioningConfiguration + self.requestPayer = requestPayer + self.delete = delete } private enum CodingKeys: String, CodingKey { case bucket = "Bucket" - case contentMD5 = "Content-MD5" case mfa = "x-amz-mfa" - case versioningConfiguration = "VersioningConfiguration" + case requestPayer = "x-amz-request-payer" + case delete = "Delete" } } public struct GetObjectAclOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Owner", required: false, type: .structure), AWSShapeMember(label: "Grants", location: .body(locationName: "AccessControlList"), required: false, type: .structure), AWSShapeMember(label: "RequestCharged", location: .header(locationName: "x-amz-request-charged"), required: false, type: .enum) @@ -2461,7 +2654,7 @@ extension S3 { } public struct Delete: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Objects", location: .body(locationName: "Object"), required: true, type: .list), AWSShapeMember(label: "Quiet", required: false, type: .boolean) ] @@ -2488,7 +2681,7 @@ extension S3 { } public struct ListMultipartUploadsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "UploadIdMarker", location: .querystring(locationName: "upload-id-marker"), required: false, type: .string), AWSShapeMember(label: "Prefix", location: .querystring(locationName: "prefix"), required: false, type: .string), @@ -2532,7 +2725,7 @@ extension S3 { } public struct DeleteObjectsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RequestCharged", location: .header(locationName: "x-amz-request-charged"), required: false, type: .enum), AWSShapeMember(label: "Errors", location: .body(locationName: "Error"), required: false, type: .list), AWSShapeMember(label: "Deleted", required: false, type: .list) @@ -2555,7 +2748,7 @@ extension S3 { } public struct DeleteBucketAnalyticsConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Id", location: .querystring(locationName: "id"), required: true, type: .string) ] @@ -2576,7 +2769,7 @@ extension S3 { } public struct DeleteBucketReplicationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -2598,7 +2791,7 @@ extension S3 { } public struct ListBucketAnalyticsConfigurationsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContinuationToken", required: false, type: .string), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), AWSShapeMember(label: "NextContinuationToken", required: false, type: .string), @@ -2629,7 +2822,7 @@ extension S3 { } public struct InventorySchedule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Frequency", required: true, type: .enum) ] /// Specifies how frequently inventory results are produced. @@ -2645,7 +2838,7 @@ extension S3 { } public struct ListMultipartUploadsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", required: false, type: .string), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), AWSShapeMember(label: "KeyMarker", required: false, type: .string), @@ -2715,7 +2908,7 @@ extension S3 { public struct GetBucketMetricsConfigurationOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "MetricsConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricsConfiguration", required: false, type: .structure) ] /// Specifies the metrics configuration. @@ -2731,7 +2924,7 @@ extension S3 { } public struct ListBucketMetricsConfigurationsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContinuationToken", required: false, type: .string), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), AWSShapeMember(label: "MetricsConfigurationList", location: .body(locationName: "MetricsConfiguration"), required: false, type: .list), @@ -2762,7 +2955,7 @@ extension S3 { } public struct GetBucketAclOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Owner", required: false, type: .structure), AWSShapeMember(label: "Grants", location: .body(locationName: "AccessControlList"), required: false, type: .structure) ] @@ -2782,7 +2975,7 @@ extension S3 { } public struct ListObjectsV2Request: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "MaxKeys", location: .querystring(locationName: "max-keys"), required: false, type: .integer), AWSShapeMember(label: "StartAfter", location: .querystring(locationName: "start-after"), required: false, type: .string), @@ -2838,7 +3031,7 @@ extension S3 { } public struct HeadBucketRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -2855,7 +3048,7 @@ extension S3 { public struct CreateBucketRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "CreateBucketConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "CreateBucketConfiguration", location: .body(locationName: "CreateBucketConfiguration"), required: false, type: .structure), AWSShapeMember(label: "GrantWriteACP", location: .header(locationName: "x-amz-grant-write-acp"), required: false, type: .string), @@ -2903,23 +3096,24 @@ extension S3 { } } - public enum BucketLocationConstraint: String, CustomStringConvertible, Codable { - case eu = "EU" - case euWest1 = "eu-west-1" - case usWest1 = "us-west-1" - case usWest2 = "us-west-2" - case apSouth1 = "ap-south-1" - case apSoutheast1 = "ap-southeast-1" - case apSoutheast2 = "ap-southeast-2" - case apNortheast1 = "ap-northeast-1" - case saEast1 = "sa-east-1" - case cnNorth1 = "cn-north-1" - case euCentral1 = "eu-central-1" - public var description: String { return self.rawValue } + public struct ServerSideEncryptionConfiguration: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Rules", location: .body(locationName: "Rule"), required: true, type: .list) + ] + /// Container for information about a particular server-side encryption configuration rule. + public let rules: [ServerSideEncryptionRule] + + public init(rules: [ServerSideEncryptionRule]) { + self.rules = rules + } + + private enum CodingKeys: String, CodingKey { + case rules = "Rule" + } } public struct Initiator: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ID", required: false, type: .string), AWSShapeMember(label: "DisplayName", required: false, type: .string) ] @@ -2940,7 +3134,7 @@ extension S3 { } public struct DeleteObjectTaggingOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .header(locationName: "x-amz-version-id"), required: false, type: .string) ] /// The versionId of the object the tag-set was removed from. @@ -2955,10 +3149,41 @@ extension S3 { } } + public enum BucketLocationConstraint: String, CustomStringConvertible, Codable { + case eu = "EU" + case euWest1 = "eu-west-1" + case usWest1 = "us-west-1" + case usWest2 = "us-west-2" + case apSouth1 = "ap-south-1" + case apSoutheast1 = "ap-southeast-1" + case apSoutheast2 = "ap-southeast-2" + case apNortheast1 = "ap-northeast-1" + case saEast1 = "sa-east-1" + case cnNorth1 = "cn-north-1" + case euCentral1 = "eu-central-1" + public var description: String { return self.rawValue } + } + + public struct ServerSideEncryptionRule: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplyServerSideEncryptionByDefault", required: false, type: .structure) + ] + /// Describes the default server-side encryption to apply to new objects in the bucket. If Put Object request does not specify any server-side encryption, this default encryption will be applied. + public let applyServerSideEncryptionByDefault: ServerSideEncryptionByDefault? + + public init(applyServerSideEncryptionByDefault: ServerSideEncryptionByDefault? = nil) { + self.applyServerSideEncryptionByDefault = applyServerSideEncryptionByDefault + } + + private enum CodingKeys: String, CodingKey { + case applyServerSideEncryptionByDefault = "ApplyServerSideEncryptionByDefault" + } + } + public struct PutBucketReplicationRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "ReplicationConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "ReplicationConfiguration", location: .body(locationName: "ReplicationConfiguration"), required: true, type: .structure) @@ -2987,11 +3212,28 @@ extension S3 { case etag = "ETag" case ismultipartuploaded = "IsMultipartUploaded" case replicationstatus = "ReplicationStatus" + case encryptionstatus = "EncryptionStatus" public var description: String { return self.rawValue } } + public struct SourceSelectionCriteria: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SseKmsEncryptedObjects", required: false, type: .structure) + ] + /// Container for filter information of selection of KMS Encrypted S3 objects. + public let sseKmsEncryptedObjects: SseKmsEncryptedObjects? + + public init(sseKmsEncryptedObjects: SseKmsEncryptedObjects? = nil) { + self.sseKmsEncryptedObjects = sseKmsEncryptedObjects + } + + private enum CodingKeys: String, CodingKey { + case sseKmsEncryptedObjects = "SseKmsEncryptedObjects" + } + } + public struct CORSRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExposeHeaders", location: .body(locationName: "ExposeHeader"), required: false, type: .list), AWSShapeMember(label: "AllowedMethods", location: .body(locationName: "AllowedMethod"), required: true, type: .list), AWSShapeMember(label: "MaxAgeSeconds", required: false, type: .integer), @@ -3027,7 +3269,7 @@ extension S3 { } public struct CreateMultipartUploadRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SSECustomerKey", location: .header(locationName: "x-amz-server-side-encryption-customer-key"), required: false, type: .string), AWSShapeMember(label: "CacheControl", location: .header(locationName: "Cache-Control"), required: false, type: .string), AWSShapeMember(label: "Tagging", location: .header(locationName: "x-amz-tagging"), required: false, type: .string), @@ -3150,7 +3392,7 @@ extension S3 { } public struct Grants: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Grant", required: false, type: .list) ] public let grant: [Grant]? @@ -3165,7 +3407,7 @@ extension S3 { } public struct DeleteObjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .querystring(locationName: "versionId"), required: false, type: .string), AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Key", location: .uri(locationName: "Key"), required: true, type: .string), @@ -3197,8 +3439,25 @@ extension S3 { } } + public struct GetBucketEncryptionOutput: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ServerSideEncryptionConfiguration" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServerSideEncryptionConfiguration", required: false, type: .structure) + ] + public let serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? + + public init(serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration? = nil) { + self.serverSideEncryptionConfiguration = serverSideEncryptionConfiguration + } + + private enum CodingKeys: String, CodingKey { + case serverSideEncryptionConfiguration = "ServerSideEncryptionConfiguration" + } + } + public struct PutObjectAclOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RequestCharged", location: .header(locationName: "x-amz-request-charged"), required: false, type: .enum) ] public let requestCharged: RequestCharged? @@ -3213,7 +3472,7 @@ extension S3 { } public struct ListPartsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PartNumberMarker", required: false, type: .integer), AWSShapeMember(label: "Bucket", required: false, type: .string), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), @@ -3291,7 +3550,7 @@ extension S3 { } public struct ListBucketInventoryConfigurationsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContinuationToken", required: false, type: .string), AWSShapeMember(label: "IsTruncated", required: false, type: .boolean), AWSShapeMember(label: "NextContinuationToken", required: false, type: .string), @@ -3322,7 +3581,7 @@ extension S3 { } public struct ListBucketMetricsConfigurationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "ContinuationToken", location: .querystring(locationName: "continuation-token"), required: false, type: .string) ] @@ -3343,7 +3602,7 @@ extension S3 { } public struct TopicConfigurationDeprecated: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Topic", required: false, type: .string), AWSShapeMember(label: "Events", location: .body(locationName: "Event"), required: false, type: .list), AWSShapeMember(label: "Event", required: false, type: .enum), @@ -3379,7 +3638,7 @@ extension S3 { } public struct DeleteBucketRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -3405,7 +3664,7 @@ extension S3 { } public struct StorageClassAnalysis: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataExport", required: false, type: .structure) ] /// A container used to describe how data related to the storage class analysis should be exported. @@ -3421,7 +3680,7 @@ extension S3 { } public struct GetBucketNotificationConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] /// Name of the bucket to get the notification configuration for. @@ -3437,7 +3696,7 @@ extension S3 { } public struct CommonPrefix: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Prefix", required: false, type: .string) ] public let prefix: String? @@ -3451,6 +3710,12 @@ extension S3 { } } + public enum SseKmsEncryptedObjectsStatus: String, CustomStringConvertible, Codable { + case enabled = "Enabled" + case disabled = "Disabled" + public var description: String { return self.rawValue } + } + public enum ExpirationStatus: String, CustomStringConvertible, Codable { case enabled = "Enabled" case disabled = "Disabled" @@ -3458,7 +3723,7 @@ extension S3 { } public struct GetObjectTorrentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Key", location: .uri(locationName: "Key"), required: true, type: .string), AWSShapeMember(label: "RequestPayer", location: .header(locationName: "x-amz-request-payer"), required: false, type: .enum) @@ -3481,10 +3746,11 @@ extension S3 { } public struct InventoryS3BucketDestination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", required: true, type: .string), AWSShapeMember(label: "Format", required: true, type: .enum), AWSShapeMember(label: "AccountId", required: false, type: .string), + AWSShapeMember(label: "Encryption", required: false, type: .structure), AWSShapeMember(label: "Prefix", required: false, type: .string) ] /// The Amazon resource name (ARN) of the bucket where inventory results will be published. @@ -3493,13 +3759,16 @@ extension S3 { public let format: InventoryFormat /// The ID of the account that owns the destination bucket. public let accountId: String? + /// Contains the type of server-side encryption used to encrypt the inventory results. + public let encryption: InventoryEncryption? /// The prefix that is prepended to all inventory results. public let prefix: String? - public init(bucket: String, format: InventoryFormat, accountId: String? = nil, prefix: String? = nil) { + public init(bucket: String, format: InventoryFormat, accountId: String? = nil, encryption: InventoryEncryption? = nil, prefix: String? = nil) { self.bucket = bucket self.format = format self.accountId = accountId + self.encryption = encryption self.prefix = prefix } @@ -3507,12 +3776,29 @@ extension S3 { case bucket = "Bucket" case format = "Format" case accountId = "AccountId" + case encryption = "Encryption" case prefix = "Prefix" } } + public struct DeleteBucketEncryptionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) + ] + /// The name of the bucket containing the server-side encryption configuration to delete. + public let bucket: String + + public init(bucket: String) { + self.bucket = bucket + } + + private enum CodingKeys: String, CodingKey { + case bucket = "Bucket" + } + } + public struct GetObjectAclRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "VersionId", location: .querystring(locationName: "versionId"), required: false, type: .string), AWSShapeMember(label: "Key", location: .uri(locationName: "Key"), required: true, type: .string), @@ -3540,7 +3826,7 @@ extension S3 { } public struct AccessControlPolicy: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Owner", required: false, type: .structure), AWSShapeMember(label: "Grants", location: .body(locationName: "AccessControlList"), required: false, type: .structure) ] @@ -3559,8 +3845,45 @@ extension S3 { } } + public struct AccessControlTranslation: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Owner", required: true, type: .enum) + ] + /// The override value for the owner of the replica object. + public let owner: OwnerOverride + + public init(owner: OwnerOverride) { + self.owner = owner + } + + private enum CodingKeys: String, CodingKey { + case owner = "Owner" + } + } + + public struct ServerSideEncryptionByDefault: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KMSMasterKeyID", required: false, type: .string), + AWSShapeMember(label: "SSEAlgorithm", required: true, type: .enum) + ] + /// KMS master key ID to use for the default encryption. This parameter is allowed if SSEAlgorithm is aws:kms. + public let kMSMasterKeyID: String? + /// Server-side encryption algorithm to use for the default encryption. + public let sSEAlgorithm: ServerSideEncryption + + public init(kMSMasterKeyID: String? = nil, sSEAlgorithm: ServerSideEncryption) { + self.kMSMasterKeyID = kMSMasterKeyID + self.sSEAlgorithm = sSEAlgorithm + } + + private enum CodingKeys: String, CodingKey { + case kMSMasterKeyID = "KMSMasterKeyID" + case sSEAlgorithm = "SSEAlgorithm" + } + } + public struct DeleteBucketLifecycleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -3575,7 +3898,7 @@ extension S3 { } public struct CreateBucketOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Location", location: .header(locationName: "Location"), required: false, type: .string) ] public let location: String? @@ -3589,6 +3912,11 @@ extension S3 { } } + public enum ExpressionType: String, CustomStringConvertible, Codable { + case sql = "SQL" + public var description: String { return self.rawValue } + } + public enum Payer: String, CustomStringConvertible, Codable { case requester = "Requester" case bucketowner = "BucketOwner" @@ -3596,7 +3924,7 @@ extension S3 { } public struct DeleteBucketInventoryConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Id", location: .querystring(locationName: "id"), required: true, type: .string) ] @@ -3617,7 +3945,7 @@ extension S3 { } public struct GetBucketWebsiteOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoutingRules", required: false, type: .structure), AWSShapeMember(label: "IndexDocument", required: false, type: .structure), AWSShapeMember(label: "ErrorDocument", required: false, type: .structure), @@ -3644,7 +3972,7 @@ extension S3 { } public struct LoggingEnabled: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetGrants", required: false, type: .structure), AWSShapeMember(label: "TargetPrefix", required: false, type: .string), AWSShapeMember(label: "TargetBucket", required: false, type: .string) @@ -3669,7 +3997,7 @@ extension S3 { } public struct CORSConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CORSRules", location: .body(locationName: "CORSRule"), required: true, type: .list) ] public let cORSRules: [CORSRule] @@ -3684,7 +4012,7 @@ extension S3 { } public struct ObjectIdentifier: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", required: false, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -3705,7 +4033,7 @@ extension S3 { } public struct StorageClassAnalysisDataExport: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Destination", required: true, type: .structure), AWSShapeMember(label: "OutputSchemaVersion", required: true, type: .enum) ] @@ -3726,7 +4054,7 @@ extension S3 { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -3747,7 +4075,7 @@ extension S3 { } public struct TargetGrants: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Grant", required: false, type: .list) ] public let grant: [TargetGrant]? @@ -3762,17 +4090,22 @@ extension S3 { } public struct RestoreObjectOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RequestCharged", location: .header(locationName: "x-amz-request-charged"), required: false, type: .enum) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RequestCharged", location: .header(locationName: "x-amz-request-charged"), required: false, type: .enum), + AWSShapeMember(label: "RestoreOutputPath", location: .header(locationName: "x-amz-restore-output-path"), required: false, type: .string) ] public let requestCharged: RequestCharged? + /// Indicates the path in the provided S3 output location where Select results will be restored to. + public let restoreOutputPath: String? - public init(requestCharged: RequestCharged? = nil) { + public init(requestCharged: RequestCharged? = nil, restoreOutputPath: String? = nil) { self.requestCharged = requestCharged + self.restoreOutputPath = restoreOutputPath } private enum CodingKeys: String, CodingKey { case requestCharged = "x-amz-request-charged" + case restoreOutputPath = "x-amz-restore-output-path" } } @@ -3783,7 +4116,7 @@ extension S3 { } public struct BucketLifecycleConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", location: .body(locationName: "Rule"), required: true, type: .list) ] public let rules: [LifecycleRule] @@ -3798,7 +4131,7 @@ extension S3 { } public struct GetBucketMetricsConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Id", location: .querystring(locationName: "id"), required: true, type: .string) ] @@ -3819,7 +4152,7 @@ extension S3 { } public struct LifecycleRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ID", required: false, type: .string), AWSShapeMember(label: "Status", required: true, type: .enum), AWSShapeMember(label: "NoncurrentVersionExpiration", required: false, type: .structure), @@ -3869,7 +4202,7 @@ extension S3 { } public struct InventoryOptionalFields: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Field", required: false, type: .list) ] public let field: [InventoryOptionalField]? @@ -3884,7 +4217,7 @@ extension S3 { } public struct GetBucketCorsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -3899,7 +4232,7 @@ extension S3 { } public struct Bucket: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "CreationDate", required: false, type: .timestamp) ] @@ -3920,28 +4253,43 @@ extension S3 { } public struct Destination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", required: true, type: .string), - AWSShapeMember(label: "StorageClass", required: false, type: .enum) + AWSShapeMember(label: "StorageClass", required: false, type: .enum), + AWSShapeMember(label: "Account", required: false, type: .string), + AWSShapeMember(label: "EncryptionConfiguration", required: false, type: .structure), + AWSShapeMember(label: "AccessControlTranslation", required: false, type: .structure) ] /// Amazon resource name (ARN) of the bucket where you want Amazon S3 to store replicas of the object identified by the rule. public let bucket: String /// The class of storage used to store the object. public let storageClass: StorageClass? - - public init(bucket: String, storageClass: StorageClass? = nil) { + /// Account ID of the destination bucket. Currently this is only being verified if Access Control Translation is enabled + public let account: String? + /// Container for information regarding encryption based configuration for replicas. + public let encryptionConfiguration: EncryptionConfiguration? + /// Container for information regarding the access control for replicas. + public let accessControlTranslation: AccessControlTranslation? + + public init(bucket: String, storageClass: StorageClass? = nil, account: String? = nil, encryptionConfiguration: EncryptionConfiguration? = nil, accessControlTranslation: AccessControlTranslation? = nil) { self.bucket = bucket self.storageClass = storageClass + self.account = account + self.encryptionConfiguration = encryptionConfiguration + self.accessControlTranslation = accessControlTranslation } private enum CodingKeys: String, CodingKey { case bucket = "Bucket" case storageClass = "StorageClass" + case account = "Account" + case encryptionConfiguration = "EncryptionConfiguration" + case accessControlTranslation = "AccessControlTranslation" } } public struct GlacierJobParameters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tier", required: true, type: .enum) ] /// Glacier retrieval tier at which the restore will be processed. @@ -3959,7 +4307,7 @@ extension S3 { public struct PutBucketNotificationRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "NotificationConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "NotificationConfiguration", location: .body(locationName: "NotificationConfiguration"), required: true, type: .structure) @@ -3984,7 +4332,7 @@ extension S3 { public struct CompleteMultipartUploadRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "MultipartUpload" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "MultipartUpload", location: .body(locationName: "CompleteMultipartUpload"), required: false, type: .structure), AWSShapeMember(label: "Key", location: .uri(locationName: "Key"), required: true, type: .string), @@ -4017,7 +4365,7 @@ extension S3 { public struct PutBucketMetricsConfigurationRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "MetricsConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "MetricsConfiguration", location: .body(locationName: "MetricsConfiguration"), required: true, type: .structure), AWSShapeMember(label: "Id", location: .querystring(locationName: "id"), required: true, type: .string) @@ -4042,8 +4390,24 @@ extension S3 { } } + public struct SSEKMS: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "KeyId", required: true, type: .string) + ] + /// Specifies the ID of the AWS Key Management Service (KMS) master encryption key to use for encrypting Inventory reports. + public let keyId: String + + public init(keyId: String) { + self.keyId = keyId + } + + private enum CodingKeys: String, CodingKey { + case keyId = "KeyId" + } + } + public struct Part: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastModified", required: false, type: .timestamp), AWSShapeMember(label: "PartNumber", required: false, type: .integer), AWSShapeMember(label: "ETag", required: false, type: .string), @@ -4074,7 +4438,7 @@ extension S3 { } public struct ListBucketsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Buckets", required: false, type: .structure), AWSShapeMember(label: "Owner", required: false, type: .structure) ] @@ -4093,7 +4457,7 @@ extension S3 { } public struct GetBucketAccelerateConfigurationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum) ] /// The accelerate configuration of the bucket. @@ -4109,7 +4473,7 @@ extension S3 { } public struct CopyPartResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ETag", required: false, type: .string), AWSShapeMember(label: "LastModified", required: false, type: .timestamp) ] @@ -4130,7 +4494,7 @@ extension S3 { } public struct NoncurrentVersionExpiration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NoncurrentDays", required: false, type: .integer) ] /// Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide. @@ -4146,7 +4510,7 @@ extension S3 { } public struct AnalyticsExportDestination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3BucketDestination", required: true, type: .structure) ] /// A destination signifying output to an S3 bucket. @@ -4163,11 +4527,12 @@ extension S3 { public enum InventoryFormat: String, CustomStringConvertible, Codable { case csv = "CSV" + case orc = "ORC" public var description: String { return self.rawValue } } public struct FilterRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .enum) ] @@ -4194,7 +4559,7 @@ extension S3 { } public struct ListBucketInventoryConfigurationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "ContinuationToken", location: .querystring(locationName: "continuation-token"), required: false, type: .string) ] @@ -4217,31 +4582,36 @@ extension S3 { public struct PutBucketPolicyRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "Policy" - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), + AWSShapeMember(label: "ConfirmRemoveSelfBucketAccess", location: .header(locationName: "x-amz-confirm-remove-self-bucket-access"), required: false, type: .boolean), + AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "Policy", required: true, type: .string) ] - public let contentMD5: String? public let bucket: String + /// Set this parameter to true to confirm that you want to remove your permissions to change this bucket policy in the future. + public let confirmRemoveSelfBucketAccess: Bool? + public let contentMD5: String? /// The bucket policy as a JSON document. public let policy: String - public init(contentMD5: String? = nil, bucket: String, policy: String) { - self.contentMD5 = contentMD5 + public init(bucket: String, confirmRemoveSelfBucketAccess: Bool? = nil, contentMD5: String? = nil, policy: String) { self.bucket = bucket + self.confirmRemoveSelfBucketAccess = confirmRemoveSelfBucketAccess + self.contentMD5 = contentMD5 self.policy = policy } private enum CodingKeys: String, CodingKey { - case contentMD5 = "Content-MD5" case bucket = "Bucket" + case confirmRemoveSelfBucketAccess = "x-amz-confirm-remove-self-bucket-access" + case contentMD5 = "Content-MD5" case policy = "Policy" } } public struct GetObjectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "SSECustomerKey", location: .header(locationName: "x-amz-server-side-encryption-customer-key"), required: false, type: .string), AWSShapeMember(label: "IfUnmodifiedSince", location: .header(locationName: "If-Unmodified-Since"), required: false, type: .timestamp), @@ -4344,7 +4714,7 @@ extension S3 { } public struct AbortMultipartUploadRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Key", location: .uri(locationName: "Key"), required: true, type: .string), AWSShapeMember(label: "UploadId", location: .querystring(locationName: "uploadId"), required: true, type: .string), @@ -4373,7 +4743,7 @@ extension S3 { public struct GetObjectTorrentOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "Body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Body", required: false, type: .blob), AWSShapeMember(label: "RequestCharged", location: .header(locationName: "x-amz-request-charged"), required: false, type: .enum) ] @@ -4397,8 +4767,35 @@ extension S3 { public var description: String { return self.rawValue } } + public struct PutBucketEncryptionRequest: AWSShape { + /// The key for the payload + public static let payloadPath: String? = "ServerSideEncryptionConfiguration" + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), + AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), + AWSShapeMember(label: "ServerSideEncryptionConfiguration", location: .body(locationName: "ServerSideEncryptionConfiguration"), required: true, type: .structure) + ] + /// The base64-encoded 128-bit MD5 digest of the server-side encryption configuration. + public let contentMD5: String? + /// The name of the bucket for which the server-side encryption configuration is set. + public let bucket: String + public let serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration + + public init(contentMD5: String? = nil, bucket: String, serverSideEncryptionConfiguration: ServerSideEncryptionConfiguration) { + self.contentMD5 = contentMD5 + self.bucket = bucket + self.serverSideEncryptionConfiguration = serverSideEncryptionConfiguration + } + + private enum CodingKeys: String, CodingKey { + case contentMD5 = "Content-MD5" + case bucket = "Bucket" + case serverSideEncryptionConfiguration = "ServerSideEncryptionConfiguration" + } + } + public struct NoncurrentVersionTransition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NoncurrentDays", required: false, type: .integer), AWSShapeMember(label: "StorageClass", required: false, type: .enum) ] @@ -4419,7 +4816,7 @@ extension S3 { } public struct UploadPartCopyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "SSECustomerKey", location: .header(locationName: "x-amz-server-side-encryption-customer-key"), required: false, type: .string), AWSShapeMember(label: "PartNumber", location: .querystring(locationName: "partNumber"), required: true, type: .integer), @@ -4514,7 +4911,7 @@ extension S3 { public struct PutBucketAclRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "AccessControlPolicy" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "AccessControlPolicy", location: .body(locationName: "AccessControlPolicy"), required: false, type: .structure), @@ -4567,7 +4964,7 @@ extension S3 { } public struct Redirect: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReplaceKeyPrefixWith", required: false, type: .string), AWSShapeMember(label: "HttpRedirectCode", required: false, type: .string), AWSShapeMember(label: "HostName", required: false, type: .string), @@ -4609,7 +5006,7 @@ extension S3 { } public struct MultipartUpload: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StorageClass", required: false, type: .enum), AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "UploadId", required: false, type: .string), @@ -4649,7 +5046,7 @@ extension S3 { } public struct ListBucketAnalyticsConfigurationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "ContinuationToken", location: .querystring(locationName: "continuation-token"), required: false, type: .string) ] @@ -4677,7 +5074,7 @@ extension S3 { } public struct GetBucketLifecycleConfigurationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", location: .body(locationName: "Rule"), required: false, type: .list) ] public let rules: [LifecycleRule]? @@ -4692,7 +5089,7 @@ extension S3 { } public struct GetBucketLifecycleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -4707,7 +5104,7 @@ extension S3 { } public struct RequestPaymentConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Payer", required: true, type: .enum) ] /// Specifies who pays for the download and request fees. @@ -4723,7 +5120,7 @@ extension S3 { } public struct DeleteObjectOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .header(locationName: "x-amz-version-id"), required: false, type: .string), AWSShapeMember(label: "RequestCharged", location: .header(locationName: "x-amz-request-charged"), required: false, type: .enum), AWSShapeMember(label: "DeleteMarker", location: .header(locationName: "x-amz-delete-marker"), required: false, type: .boolean) @@ -4753,7 +5150,7 @@ extension S3 { } public struct RoutingRules: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RoutingRule", required: false, type: .list) ] public let routingRule: [RoutingRule]? @@ -4767,8 +5164,23 @@ extension S3 { } } + public struct UserMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetadataEntry", required: false, type: .list) + ] + public let metadataEntry: [MetadataEntry]? + + public init(metadataEntry: [MetadataEntry]? = nil) { + self.metadataEntry = metadataEntry + } + + private enum CodingKeys: String, CodingKey { + case metadataEntry = "MetadataEntry" + } + } + public struct QueueConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filter", required: false, type: .structure), AWSShapeMember(label: "QueueArn", location: .body(locationName: "Queue"), required: true, type: .string), AWSShapeMember(label: "Events", location: .body(locationName: "Event"), required: true, type: .list), @@ -4796,7 +5208,7 @@ extension S3 { } public struct GetBucketTaggingOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagSet", required: true, type: .structure) ] public let tagSet: TagSet @@ -4811,7 +5223,7 @@ extension S3 { } public struct ErrorDocument: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: true, type: .string) ] /// The object key name to use when a 4XX class error occurs. @@ -4827,7 +5239,7 @@ extension S3 { } public struct InventoryConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OptionalFields", required: false, type: .structure), AWSShapeMember(label: "Destination", required: true, type: .structure), AWSShapeMember(label: "IsEnabled", required: true, type: .boolean), @@ -4873,7 +5285,7 @@ extension S3 { } public struct MetricsFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tag", required: false, type: .structure), AWSShapeMember(label: "And", required: false, type: .structure), AWSShapeMember(label: "Prefix", required: false, type: .string) @@ -4901,7 +5313,7 @@ extension S3 { public struct PutBucketTaggingRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "Tagging" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Tagging", location: .body(locationName: "Tagging"), required: true, type: .structure) @@ -4924,7 +5336,7 @@ extension S3 { } public struct AnalyticsAndOperator: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", location: .body(locationName: "Tag"), required: false, type: .structure), AWSShapeMember(label: "Prefix", required: false, type: .string) ] @@ -4945,7 +5357,7 @@ extension S3 { } public struct ListObjectVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "MaxKeys", location: .querystring(locationName: "max-keys"), required: false, type: .integer), AWSShapeMember(label: "Prefix", location: .querystring(locationName: "prefix"), required: false, type: .string), @@ -4988,8 +5400,27 @@ extension S3 { } } + public struct MetadataEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string) + ] + public let value: String? + public let name: String? + + public init(value: String? = nil, name: String? = nil) { + self.value = value + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case name = "Name" + } + } + public struct GetBucketLifecycleOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", location: .body(locationName: "Rule"), required: false, type: .list) ] public let rules: [Rule]? @@ -5016,7 +5447,7 @@ extension S3 { } public struct DeleteMarkerEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsLatest", required: false, type: .boolean), AWSShapeMember(label: "LastModified", required: false, type: .timestamp), AWSShapeMember(label: "Key", required: false, type: .string), @@ -5050,6 +5481,42 @@ extension S3 { } } + public struct CSVOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FieldDelimiter", required: false, type: .string), + AWSShapeMember(label: "QuoteFields", required: false, type: .enum), + AWSShapeMember(label: "RecordDelimiter", required: false, type: .string), + AWSShapeMember(label: "QuoteCharacter", required: false, type: .string), + AWSShapeMember(label: "QuoteEscapeCharacter", required: false, type: .string) + ] + /// Value used to separate individual fields in a record. + public let fieldDelimiter: String? + /// Indicates whether or not all output fields should be quoted. + public let quoteFields: QuoteFields? + /// Value used to separate individual records. + public let recordDelimiter: String? + /// Value used for escaping where the field delimiter is part of the value. + public let quoteCharacter: String? + /// Single character used for escaping the quote character inside an already escaped value. + public let quoteEscapeCharacter: String? + + public init(fieldDelimiter: String? = nil, quoteFields: QuoteFields? = nil, recordDelimiter: String? = nil, quoteCharacter: String? = nil, quoteEscapeCharacter: String? = nil) { + self.fieldDelimiter = fieldDelimiter + self.quoteFields = quoteFields + self.recordDelimiter = recordDelimiter + self.quoteCharacter = quoteCharacter + self.quoteEscapeCharacter = quoteEscapeCharacter + } + + private enum CodingKeys: String, CodingKey { + case fieldDelimiter = "FieldDelimiter" + case quoteFields = "QuoteFields" + case recordDelimiter = "RecordDelimiter" + case quoteCharacter = "QuoteCharacter" + case quoteEscapeCharacter = "QuoteEscapeCharacter" + } + } + public enum InventoryIncludedObjectVersions: String, CustomStringConvertible, Codable { case all = "All" case current = "Current" @@ -5057,7 +5524,7 @@ extension S3 { } public struct DeleteBucketTaggingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -5072,9 +5539,10 @@ extension S3 { } public struct ReplicationRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ID", required: false, type: .string), AWSShapeMember(label: "Status", required: true, type: .enum), + AWSShapeMember(label: "SourceSelectionCriteria", required: false, type: .structure), AWSShapeMember(label: "Destination", required: true, type: .structure), AWSShapeMember(label: "Prefix", required: true, type: .string) ] @@ -5082,13 +5550,17 @@ extension S3 { public let id: String? /// The rule is ignored if status is not Enabled. public let status: ReplicationRuleStatus + /// Container for filters that define which source objects should be replicated. + public let sourceSelectionCriteria: SourceSelectionCriteria? + /// Container for replication destination information. public let destination: Destination /// Object keyname prefix identifying one or more objects to which the rule applies. Maximum prefix length can be up to 1,024 characters. Overlapping prefixes are not supported. public let prefix: String - public init(id: String? = nil, status: ReplicationRuleStatus, destination: Destination, prefix: String) { + public init(id: String? = nil, status: ReplicationRuleStatus, sourceSelectionCriteria: SourceSelectionCriteria? = nil, destination: Destination, prefix: String) { self.id = id self.status = status + self.sourceSelectionCriteria = sourceSelectionCriteria self.destination = destination self.prefix = prefix } @@ -5096,13 +5568,14 @@ extension S3 { private enum CodingKeys: String, CodingKey { case id = "ID" case status = "Status" + case sourceSelectionCriteria = "SourceSelectionCriteria" case destination = "Destination" case prefix = "Prefix" } } public struct DeleteObjectTaggingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "VersionId", location: .querystring(locationName: "versionId"), required: false, type: .string), AWSShapeMember(label: "Key", location: .uri(locationName: "Key"), required: true, type: .string) @@ -5126,7 +5599,7 @@ extension S3 { } public struct LambdaFunctionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LambdaFunctionArn", location: .body(locationName: "CloudFunction"), required: true, type: .string), AWSShapeMember(label: "Events", location: .body(locationName: "Event"), required: true, type: .list), AWSShapeMember(label: "Filter", required: false, type: .structure), @@ -5154,7 +5627,7 @@ extension S3 { } public struct GetBucketLoggingOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LoggingEnabled", required: false, type: .structure) ] public let loggingEnabled: LoggingEnabled? @@ -5169,7 +5642,7 @@ extension S3 { } public struct UploadPartOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SSECustomerKeyMD5", location: .header(locationName: "x-amz-server-side-encryption-customer-key-MD5"), required: false, type: .string), AWSShapeMember(label: "SSEKMSKeyId", location: .header(locationName: "x-amz-server-side-encryption-aws-kms-key-id"), required: false, type: .string), AWSShapeMember(label: "ETag", location: .header(locationName: "ETag"), required: false, type: .string), @@ -5208,8 +5681,24 @@ extension S3 { } } + public struct OutputSerialization: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CSV", required: false, type: .structure) + ] + /// Describes the serialization of CSV-encoded Select results. + public let csv: CSVOutput? + + public init(csv: CSVOutput? = nil) { + self.csv = csv + } + + private enum CodingKeys: String, CodingKey { + case csv = "CSV" + } + } + public struct GetObjectTaggingOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .header(locationName: "x-amz-version-id"), required: false, type: .string), AWSShapeMember(label: "TagSet", required: true, type: .structure) ] @@ -5228,7 +5717,7 @@ extension S3 { } public struct GetBucketCorsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CORSRules", location: .body(locationName: "CORSRule"), required: false, type: .list) ] public let cORSRules: [CORSRule]? @@ -5243,7 +5732,7 @@ extension S3 { } public struct Error: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "Code", required: false, type: .string), @@ -5272,7 +5761,7 @@ extension S3 { public struct PutObjectRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "Body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Tagging", location: .header(locationName: "x-amz-tagging"), required: false, type: .string), AWSShapeMember(label: "ContentDisposition", location: .header(locationName: "Content-Disposition"), required: false, type: .string), @@ -5412,7 +5901,7 @@ extension S3 { } public struct CreateBucketConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LocationConstraint", required: false, type: .enum) ] /// Specifies the region where the bucket will be created. If you don't specify a region, the bucket will be created in US Standard. @@ -5428,7 +5917,7 @@ extension S3 { } public struct GetBucketWebsiteRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -5442,10 +5931,60 @@ extension S3 { } } + public struct S3Location: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tagging", required: false, type: .structure), + AWSShapeMember(label: "Encryption", required: false, type: .structure), + AWSShapeMember(label: "Prefix", required: true, type: .string), + AWSShapeMember(label: "AccessControlList", required: false, type: .structure), + AWSShapeMember(label: "StorageClass", required: false, type: .enum), + AWSShapeMember(label: "BucketName", required: true, type: .string), + AWSShapeMember(label: "CannedACL", required: false, type: .enum), + AWSShapeMember(label: "UserMetadata", required: false, type: .structure) + ] + /// The tag-set that is applied to the restore results. + public let tagging: Tagging? + public let encryption: Encryption? + /// The prefix that is prepended to the restore results for this request. + public let prefix: String + /// A list of grants that control access to the staged results. + public let accessControlList: Grants? + /// The class of storage used to store the restore results. + public let storageClass: StorageClass? + /// The name of the bucket where the restore results will be placed. + public let bucketName: String + /// The canned ACL to apply to the restore results. + public let cannedACL: ObjectCannedACL? + /// A list of metadata to store with the restore results in S3. + public let userMetadata: UserMetadata? + + public init(tagging: Tagging? = nil, encryption: Encryption? = nil, prefix: String, accessControlList: Grants? = nil, storageClass: StorageClass? = nil, bucketName: String, cannedACL: ObjectCannedACL? = nil, userMetadata: UserMetadata? = nil) { + self.tagging = tagging + self.encryption = encryption + self.prefix = prefix + self.accessControlList = accessControlList + self.storageClass = storageClass + self.bucketName = bucketName + self.cannedACL = cannedACL + self.userMetadata = userMetadata + } + + private enum CodingKeys: String, CodingKey { + case tagging = "Tagging" + case encryption = "Encryption" + case prefix = "Prefix" + case accessControlList = "AccessControlList" + case storageClass = "StorageClass" + case bucketName = "BucketName" + case cannedACL = "CannedACL" + case userMetadata = "UserMetadata" + } + } + public struct UploadPartRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "Body" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "SSECustomerKey", location: .header(locationName: "x-amz-server-side-encryption-customer-key"), required: false, type: .string), AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), @@ -5510,7 +6049,7 @@ extension S3 { } public struct DeletedObject: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeleteMarkerVersionId", required: false, type: .string), AWSShapeMember(label: "VersionId", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string), @@ -5537,7 +6076,7 @@ extension S3 { } public struct PutObjectTaggingOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .header(locationName: "x-amz-version-id"), required: false, type: .string) ] public let versionId: String? @@ -5551,8 +6090,12 @@ extension S3 { } } + public struct SSES3: AWSShape { + + } + public struct GetBucketRequestPaymentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -5567,7 +6110,7 @@ extension S3 { } public struct DeleteBucketPolicyRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -5582,7 +6125,7 @@ extension S3 { } public struct S3KeyFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FilterRules", location: .body(locationName: "FilterRule"), required: false, type: .list) ] public let filterRules: [FilterRule]? @@ -5605,7 +6148,7 @@ extension S3 { public struct PutBucketWebsiteRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "WebsiteConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "WebsiteConfiguration", location: .body(locationName: "WebsiteConfiguration"), required: true, type: .structure) @@ -5630,7 +6173,7 @@ extension S3 { public struct PutBucketNotificationConfigurationRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "NotificationConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "NotificationConfiguration", location: .body(locationName: "NotificationConfiguration"), required: true, type: .structure) ] @@ -5649,7 +6192,7 @@ extension S3 { } public struct DeleteBucketMetricsConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Id", location: .querystring(locationName: "id"), required: true, type: .string) ] @@ -5670,7 +6213,7 @@ extension S3 { } public struct AbortIncompleteMultipartUpload: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DaysAfterInitiation", required: false, type: .integer) ] /// Indicates the number of days that must pass since initiation for Lifecycle to abort an Incomplete Multipart Upload. @@ -5686,28 +6229,69 @@ extension S3 { } public struct RestoreRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GlacierJobParameters", required: false, type: .structure), - AWSShapeMember(label: "Days", required: true, type: .integer) - ] - /// Glacier related prameters pertaining to this job. + AWSShapeMember(label: "SelectParameters", required: false, type: .structure), + AWSShapeMember(label: "Days", required: false, type: .integer), + AWSShapeMember(label: "OutputLocation", required: false, type: .structure), + AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "Tier", required: false, type: .enum), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// Glacier related parameters pertaining to this job. Do not use with restores that specify OutputLocation. public let glacierJobParameters: GlacierJobParameters? - /// Lifetime of the active copy in days - public let days: Int32 + /// Describes the parameters for Select job types. + public let selectParameters: SelectParameters? + /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. + public let days: Int32? + /// Describes the location where the restore job's output is stored. + public let outputLocation: OutputLocation? + /// Type of restore request. + public let `type`: RestoreRequestType? + /// Glacier retrieval tier at which the restore will be processed. + public let tier: Tier? + /// The optional description for the job. + public let description: String? - public init(glacierJobParameters: GlacierJobParameters? = nil, days: Int32) { + public init(glacierJobParameters: GlacierJobParameters? = nil, selectParameters: SelectParameters? = nil, days: Int32? = nil, outputLocation: OutputLocation? = nil, type: RestoreRequestType? = nil, tier: Tier? = nil, description: String? = nil) { self.glacierJobParameters = glacierJobParameters + self.selectParameters = selectParameters self.days = days + self.outputLocation = outputLocation + self.`type` = `type` + self.tier = tier + self.description = description } private enum CodingKeys: String, CodingKey { case glacierJobParameters = "GlacierJobParameters" + case selectParameters = "SelectParameters" case days = "Days" + case outputLocation = "OutputLocation" + case `type` = "Type" + case tier = "Tier" + case description = "Description" + } + } + + public struct SseKmsEncryptedObjects: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Status", required: true, type: .enum) + ] + /// The replication for KMS encrypted S3 objects is disabled if status is not Enabled. + public let status: SseKmsEncryptedObjectsStatus + + public init(status: SseKmsEncryptedObjectsStatus) { + self.status = status + } + + private enum CodingKeys: String, CodingKey { + case status = "Status" } } public struct GetBucketInventoryConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Id", location: .querystring(locationName: "id"), required: true, type: .string) ] @@ -5728,7 +6312,7 @@ extension S3 { } public struct LifecycleConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", location: .body(locationName: "Rule"), required: true, type: .list) ] public let rules: [Rule] @@ -5743,7 +6327,7 @@ extension S3 { } public struct GetBucketAnalyticsConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "Id", location: .querystring(locationName: "id"), required: true, type: .string) ] @@ -5763,8 +6347,15 @@ extension S3 { } } + public enum FileHeaderInfo: String, CustomStringConvertible, Codable { + case use = "USE" + case ignore = "IGNORE" + case none = "NONE" + public var description: String { return self.rawValue } + } + public struct Buckets: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", required: false, type: .list) ] public let bucket: [Bucket]? @@ -5779,7 +6370,7 @@ extension S3 { } public struct GetBucketAccelerateConfigurationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] /// Name of the bucket for which the accelerate configuration is retrieved. @@ -5797,7 +6388,7 @@ extension S3 { public struct GetBucketInventoryConfigurationOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "InventoryConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InventoryConfiguration", required: false, type: .structure) ] /// Specifies the inventory configuration. @@ -5813,7 +6404,7 @@ extension S3 { } public struct ListPartsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "PartNumberMarker", location: .querystring(locationName: "part-number-marker"), required: false, type: .integer), AWSShapeMember(label: "Key", location: .uri(locationName: "Key"), required: true, type: .string), @@ -5859,7 +6450,7 @@ extension S3 { public struct RestoreObjectRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "RestoreRequest" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "RestoreRequest", location: .body(locationName: "RestoreRequest"), required: false, type: .structure), AWSShapeMember(label: "Key", location: .uri(locationName: "Key"), required: true, type: .string), @@ -5890,7 +6481,7 @@ extension S3 { } public struct Grantee: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ID", required: false, type: .string), AWSShapeMember(label: "EmailAddress", required: false, type: .string), AWSShapeMember(label: "Type", location: .body(locationName: "xsi:type"), required: true, type: .enum), @@ -5902,13 +6493,13 @@ extension S3 { /// Email address of the grantee. public let emailAddress: String? /// Type of grantee - public let `type`: Type + public let `type`: `Type` /// Screen name of the grantee. public let displayName: String? /// URI of the grantee group. public let uri: String? - public init(id: String? = nil, emailAddress: String? = nil, type: Type, displayName: String? = nil, uri: String? = nil) { + public init(id: String? = nil, emailAddress: String? = nil, type: `Type`, displayName: String? = nil, uri: String? = nil) { self.id = id self.emailAddress = emailAddress self.`type` = `type` @@ -5926,7 +6517,7 @@ extension S3 { } public struct QueueConfigurationDeprecated: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Queue", required: false, type: .string), AWSShapeMember(label: "Events", location: .body(locationName: "Event"), required: false, type: .list), AWSShapeMember(label: "Event", required: false, type: .enum), @@ -5955,7 +6546,7 @@ extension S3 { } public struct GetBucketVersioningRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -5970,7 +6561,7 @@ extension S3 { } public struct GetBucketLoggingRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string) ] public let bucket: String @@ -6002,7 +6593,7 @@ extension S3 { public struct PutBucketRequestPaymentRequest: AWSShape { /// The key for the payload public static let payloadPath: String? = "RequestPaymentConfiguration" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContentMD5", location: .header(locationName: "Content-MD5"), required: false, type: .string), AWSShapeMember(label: "Bucket", location: .uri(locationName: "Bucket"), required: true, type: .string), AWSShapeMember(label: "RequestPaymentConfiguration", location: .body(locationName: "RequestPaymentConfiguration"), required: true, type: .structure) @@ -6024,8 +6615,14 @@ extension S3 { } } + public enum QuoteFields: String, CustomStringConvertible, Codable { + case always = "ALWAYS" + case asneeded = "ASNEEDED" + public var description: String { return self.rawValue } + } + public struct PutObjectOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Expiration", location: .header(locationName: "x-amz-expiration"), required: false, type: .string), AWSShapeMember(label: "VersionId", location: .header(locationName: "x-amz-version-id"), required: false, type: .string), AWSShapeMember(label: "SSECustomerKeyMD5", location: .header(locationName: "x-amz-server-side-encryption-customer-key-MD5"), required: false, type: .string), @@ -6077,7 +6674,7 @@ extension S3 { public struct CopyObjectOutput: AWSShape { /// The key for the payload public static let payloadPath: String? = "CopyObjectResult" - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CopyObjectResult", required: false, type: .structure), AWSShapeMember(label: "SSECustomerKeyMD5", location: .header(locationName: "x-amz-server-side-encryption-customer-key-MD5"), required: false, type: .string), AWSShapeMember(label: "VersionId", location: .header(locationName: "x-amz-version-id"), required: false, type: .string), diff --git a/Sources/AWSSDKSwift/Services/sdb/Sdb_Shapes.swift b/Sources/AWSSDKSwift/Services/sdb/Sdb_Shapes.swift index 2e8f710c8ff..cd313bfda58 100644 --- a/Sources/AWSSDKSwift/Services/sdb/Sdb_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/sdb/Sdb_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Sdb { public struct ReplaceableAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Replace", required: false, type: .boolean) @@ -32,7 +32,7 @@ extension Sdb { } public struct GetAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConsistentRead", required: false, type: .boolean), AWSShapeMember(label: "ItemName", required: true, type: .string), AWSShapeMember(label: "DomainName", required: true, type: .string), @@ -63,7 +63,7 @@ extension Sdb { } public struct ListDomainsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxNumberOfDomains", required: false, type: .integer), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -84,7 +84,7 @@ extension Sdb { } public struct AttributeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attribute", required: false, type: .list) ] public let attribute: [Attribute]? @@ -99,7 +99,7 @@ extension Sdb { } public struct GetAttributesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: false, type: .structure) ] /// The list of attributes returned by the operation. @@ -115,7 +115,7 @@ extension Sdb { } public struct SelectRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConsistentRead", required: false, type: .boolean), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "SelectExpression", required: true, type: .string) @@ -141,7 +141,7 @@ extension Sdb { } public struct BatchDeleteAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: true, type: .structure), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -162,7 +162,7 @@ extension Sdb { } public struct DomainMetadataResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Timestamp", required: false, type: .integer), AWSShapeMember(label: "AttributeNamesSizeBytes", required: false, type: .long), AWSShapeMember(label: "AttributeValuesSizeBytes", required: false, type: .long), @@ -208,7 +208,7 @@ extension Sdb { } public struct Item: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AlternateNameEncoding", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Attributes", required: true, type: .structure) @@ -233,7 +233,7 @@ extension Sdb { } public struct Attribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AlternateNameEncoding", required: false, type: .string), AWSShapeMember(label: "AlternateValueEncoding", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), @@ -262,7 +262,7 @@ extension Sdb { } public struct DomainMetadataRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The name of the domain for which to display the metadata of. @@ -278,7 +278,7 @@ extension Sdb { } public struct DeleteDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The name of the domain to delete. @@ -294,7 +294,7 @@ extension Sdb { } public struct BatchPutAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: true, type: .structure), AWSShapeMember(label: "DomainName", required: true, type: .string) ] @@ -315,7 +315,7 @@ extension Sdb { } public struct ReplaceableItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", location: .body(locationName: "ItemName"), required: true, type: .string), AWSShapeMember(label: "Attributes", required: true, type: .structure) ] @@ -336,7 +336,7 @@ extension Sdb { } public struct DeletableItemList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Item", required: false, type: .list) ] public let item: [DeletableItem]? @@ -351,7 +351,7 @@ extension Sdb { } public struct AttributeNameList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: false, type: .list) ] public let attributeName: [String]? @@ -366,7 +366,7 @@ extension Sdb { } public struct DeletableItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", location: .body(locationName: "ItemName"), required: true, type: .string), AWSShapeMember(label: "Attributes", required: false, type: .structure) ] @@ -385,7 +385,7 @@ extension Sdb { } public struct UpdateCondition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Exists", required: false, type: .boolean) @@ -411,7 +411,7 @@ extension Sdb { } public struct ItemList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Item", required: false, type: .list) ] public let item: [Item]? @@ -426,7 +426,7 @@ extension Sdb { } public struct PutAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ItemName", required: true, type: .string), AWSShapeMember(label: "Attributes", required: true, type: .structure), AWSShapeMember(label: "DomainName", required: true, type: .string), @@ -457,7 +457,7 @@ extension Sdb { } public struct DeletableAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -478,7 +478,7 @@ extension Sdb { } public struct DeleteAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ItemName", required: true, type: .string), AWSShapeMember(label: "Attributes", required: false, type: .structure), AWSShapeMember(label: "DomainName", required: true, type: .string), @@ -509,7 +509,7 @@ extension Sdb { } public struct ListDomainsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "DomainNames", required: false, type: .structure) ] @@ -530,7 +530,7 @@ extension Sdb { } public struct ReplaceableAttributeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attribute", required: false, type: .list) ] public let attribute: [ReplaceableAttribute]? @@ -545,7 +545,7 @@ extension Sdb { } public struct DeletableAttributeList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attribute", required: false, type: .list) ] public let attribute: [DeletableAttribute]? @@ -560,7 +560,7 @@ extension Sdb { } public struct ReplaceableItemList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Item", required: false, type: .list) ] public let item: [ReplaceableItem]? @@ -575,7 +575,7 @@ extension Sdb { } public struct SelectResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Items", required: false, type: .structure), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -596,7 +596,7 @@ extension Sdb { } public struct CreateDomainRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: true, type: .string) ] /// The name of the domain to create. The name can range between 3 and 255 characters and can contain the following characters: a-z, A-Z, 0-9, '_', '-', and '.'. @@ -612,7 +612,7 @@ extension Sdb { } public struct DomainNameList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DomainName", required: false, type: .list) ] public let domainName: [String]? diff --git a/Sources/AWSSDKSwift/Services/serverlessrepo/Serverlessrepo_API.swift b/Sources/AWSSDKSwift/Services/serverlessrepo/Serverlessrepo_API.swift new file mode 100644 index 00000000000..30333cc13db --- /dev/null +++ b/Sources/AWSSDKSwift/Services/serverlessrepo/Serverlessrepo_API.swift @@ -0,0 +1,73 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +AWS Serverless Application Repository +*/ +public struct Serverlessrepo { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + service: "serverlessrepo", + serviceProtocol: ServiceProtocol(type: .restjson, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-09-08", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [ServerlessrepoError.self] + ) + } + + /// Lists versions for the specified application. + public func listApplicationVersions(_ input: ListApplicationVersionsRequest) throws -> ListApplicationVersionsResponse { + return try client.send(operation: "ListApplicationVersions", path: "/applications/{applicationId}/versions", httpMethod: "GET", input: input) + } + + /// Gets the specified application. + public func getApplication(_ input: GetApplicationRequest) throws -> GetApplicationResponse { + return try client.send(operation: "GetApplication", path: "/applications/{applicationId}", httpMethod: "GET", input: input) + } + + /// Creates an application version. + public func createApplicationVersion(_ input: CreateApplicationVersionRequest) throws -> CreateApplicationVersionResponse { + return try client.send(operation: "CreateApplicationVersion", path: "/applications/{applicationId}/versions/{semanticVersion}", httpMethod: "PUT", input: input) + } + + /// Gets the policy for the specified application. + public func getApplicationPolicy(_ input: GetApplicationPolicyRequest) throws -> GetApplicationPolicyResponse { + return try client.send(operation: "GetApplicationPolicy", path: "/applications/{applicationId}/policy", httpMethod: "GET", input: input) + } + + /// Lists applications owned by the requester. + public func listApplications(_ input: ListApplicationsRequest) throws -> ListApplicationsResponse { + return try client.send(operation: "ListApplications", path: "/applications", httpMethod: "GET", input: input) + } + + /// Puts the policy for the specified application. + public func putApplicationPolicy(_ input: PutApplicationPolicyRequest) throws -> PutApplicationPolicyResponse { + return try client.send(operation: "PutApplicationPolicy", path: "/applications/{applicationId}/policy", httpMethod: "PUT", input: input) + } + + /// Creates an AWS CloudFormation ChangeSet for the given application. + public func createCloudFormationChangeSet(_ input: CreateCloudFormationChangeSetRequest) throws -> CreateCloudFormationChangeSetResponse { + return try client.send(operation: "CreateCloudFormationChangeSet", path: "/applications/{applicationId}/changesets", httpMethod: "POST", input: input) + } + + /// Updates the specified application. + public func updateApplication(_ input: UpdateApplicationRequest) throws -> UpdateApplicationResponse { + return try client.send(operation: "UpdateApplication", path: "/applications/{applicationId}", httpMethod: "PATCH", input: input) + } + + /// Creates an application, optionally including an AWS SAM file to create the first application version in the same call. + public func createApplication(_ input: CreateApplicationRequest) throws -> CreateApplicationResponse { + return try client.send(operation: "CreateApplication", path: "/applications", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/serverlessrepo/Serverlessrepo_Error.swift b/Sources/AWSSDKSwift/Services/serverlessrepo/Serverlessrepo_Error.swift new file mode 100644 index 00000000000..d2e49780531 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/serverlessrepo/Serverlessrepo_Error.swift @@ -0,0 +1,38 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Serverlessrepo +public enum ServerlessrepoError: AWSErrorType { + case notFoundException(message: String?) + case tooManyRequestsException(message: String?) + case badRequestException(message: String?) + case internalServerErrorException(message: String?) + case forbiddenException(message: String?) + case conflictException(message: String?) +} + +extension ServerlessrepoError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "NotFoundException": + self = .notFoundException(message: message) + case "TooManyRequestsException": + self = .tooManyRequestsException(message: message) + case "BadRequestException": + self = .badRequestException(message: message) + case "InternalServerErrorException": + self = .internalServerErrorException(message: message) + case "ForbiddenException": + self = .forbiddenException(message: message) + case "ConflictException": + self = .conflictException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/serverlessrepo/Serverlessrepo_Shapes.swift b/Sources/AWSSDKSwift/Services/serverlessrepo/Serverlessrepo_Shapes.swift new file mode 100644 index 00000000000..52b5aee6f01 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/serverlessrepo/Serverlessrepo_Shapes.swift @@ -0,0 +1,1097 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Serverlessrepo { + + public struct ListApplicationsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Applications", location: .body(locationName: "applications"), required: false, type: .list) + ] + public let nextToken: String? + public let applications: [ApplicationSummary]? + + public init(nextToken: String? = nil, applications: [ApplicationSummary]? = nil) { + self.nextToken = nextToken + self.applications = applications + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case applications = "applications" + } + } + + public struct GetApplicationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Labels", location: .body(locationName: "labels"), required: false, type: .list), + AWSShapeMember(label: "Author", location: .body(locationName: "author"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "ReadmeUrl", location: .body(locationName: "readmeUrl"), required: false, type: .string), + AWSShapeMember(label: "Version", location: .body(locationName: "version"), required: false, type: .structure), + AWSShapeMember(label: "SpdxLicenseId", location: .body(locationName: "spdxLicenseId"), required: false, type: .string), + AWSShapeMember(label: "CreationTime", location: .body(locationName: "creationTime"), required: false, type: .string), + AWSShapeMember(label: "LicenseUrl", location: .body(locationName: "licenseUrl"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .body(locationName: "applicationId"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let labels: [String]? + public let author: String? + public let name: String? + public let readmeUrl: String? + public let version: Version? + public let spdxLicenseId: String? + public let creationTime: String? + public let licenseUrl: String? + public let applicationId: String? + public let description: String? + + public init(labels: [String]? = nil, author: String? = nil, name: String? = nil, readmeUrl: String? = nil, version: Version? = nil, spdxLicenseId: String? = nil, creationTime: String? = nil, licenseUrl: String? = nil, applicationId: String? = nil, description: String? = nil) { + self.labels = labels + self.author = author + self.name = name + self.readmeUrl = readmeUrl + self.version = version + self.spdxLicenseId = spdxLicenseId + self.creationTime = creationTime + self.licenseUrl = licenseUrl + self.applicationId = applicationId + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case labels = "labels" + case author = "author" + case name = "name" + case readmeUrl = "readmeUrl" + case version = "version" + case spdxLicenseId = "spdxLicenseId" + case creationTime = "creationTime" + case licenseUrl = "licenseUrl" + case applicationId = "applicationId" + case description = "description" + } + } + + public struct ChangeSetDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .body(locationName: "applicationId"), required: false, type: .string), + AWSShapeMember(label: "SemanticVersion", location: .body(locationName: "semanticVersion"), required: false, type: .string), + AWSShapeMember(label: "StackId", location: .body(locationName: "stackId"), required: false, type: .string), + AWSShapeMember(label: "ChangeSetId", location: .body(locationName: "changeSetId"), required: false, type: .string) + ] + /// The application Amazon Resource Name (ARN). + public let applicationId: String? + /// The semantic version of the application:\n\n https://semver.org/ + public let semanticVersion: String? + /// The unique ID of the stack. + public let stackId: String? + /// The ARN of the change set.\nLength Constraints: Minimum length of 1.\nPattern: arn:[-a-zA-Z0-9:/]* + public let changeSetId: String? + + public init(applicationId: String? = nil, semanticVersion: String? = nil, stackId: String? = nil, changeSetId: String? = nil) { + self.applicationId = applicationId + self.semanticVersion = semanticVersion + self.stackId = stackId + self.changeSetId = changeSetId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "applicationId" + case semanticVersion = "semanticVersion" + case stackId = "stackId" + case changeSetId = "changeSetId" + } + } + + public struct UpdateApplicationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Labels", location: .body(locationName: "labels"), required: false, type: .list), + AWSShapeMember(label: "Author", location: .body(locationName: "author"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "ReadmeUrl", location: .body(locationName: "readmeUrl"), required: false, type: .string), + AWSShapeMember(label: "Version", location: .body(locationName: "version"), required: false, type: .structure), + AWSShapeMember(label: "SpdxLicenseId", location: .body(locationName: "spdxLicenseId"), required: false, type: .string), + AWSShapeMember(label: "CreationTime", location: .body(locationName: "creationTime"), required: false, type: .string), + AWSShapeMember(label: "LicenseUrl", location: .body(locationName: "licenseUrl"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .body(locationName: "applicationId"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let labels: [String]? + public let author: String? + public let name: String? + public let readmeUrl: String? + public let version: Version? + public let spdxLicenseId: String? + public let creationTime: String? + public let licenseUrl: String? + public let applicationId: String? + public let description: String? + + public init(labels: [String]? = nil, author: String? = nil, name: String? = nil, readmeUrl: String? = nil, version: Version? = nil, spdxLicenseId: String? = nil, creationTime: String? = nil, licenseUrl: String? = nil, applicationId: String? = nil, description: String? = nil) { + self.labels = labels + self.author = author + self.name = name + self.readmeUrl = readmeUrl + self.version = version + self.spdxLicenseId = spdxLicenseId + self.creationTime = creationTime + self.licenseUrl = licenseUrl + self.applicationId = applicationId + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case labels = "labels" + case author = "author" + case name = "name" + case readmeUrl = "readmeUrl" + case version = "version" + case spdxLicenseId = "spdxLicenseId" + case creationTime = "creationTime" + case licenseUrl = "licenseUrl" + case applicationId = "applicationId" + case description = "description" + } + } + + public struct GetApplicationPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "applicationId"), required: true, type: .string) + ] + public let applicationId: String + + public init(applicationId: String) { + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "applicationId" + } + } + + public struct ParameterDefinition: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AllowedValues", location: .body(locationName: "allowedValues"), required: false, type: .list), + AWSShapeMember(label: "MinValue", location: .body(locationName: "minValue"), required: false, type: .integer), + AWSShapeMember(label: "MinLength", location: .body(locationName: "minLength"), required: false, type: .integer), + AWSShapeMember(label: "AllowedPattern", location: .body(locationName: "allowedPattern"), required: false, type: .string), + AWSShapeMember(label: "DefaultValue", location: .body(locationName: "defaultValue"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "MaxValue", location: .body(locationName: "maxValue"), required: false, type: .integer), + AWSShapeMember(label: "NoEcho", location: .body(locationName: "noEcho"), required: false, type: .boolean), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "MaxLength", location: .body(locationName: "maxLength"), required: false, type: .integer), + AWSShapeMember(label: "ReferencedByResources", location: .body(locationName: "referencedByResources"), required: false, type: .list), + AWSShapeMember(label: "Type", location: .body(locationName: "type"), required: false, type: .string), + AWSShapeMember(label: "ConstraintDescription", location: .body(locationName: "constraintDescription"), required: false, type: .string) + ] + /// Array containing the list of values allowed for the parameter. + public let allowedValues: [String]? + /// A numeric value that determines the smallest numeric value you want to allow for Number types. + public let minValue: Int32? + /// An integer value that determines the smallest number of characters you want to allow for String types. + public let minLength: Int32? + /// A regular expression that represents the patterns to allow for String types. + public let allowedPattern: String? + /// A value of the appropriate type for the template to use if no value is specified when a stack is created.\n If you define constraints for the parameter, you must specify a value that adheres to those constraints. + public let defaultValue: String? + /// A string of up to 4,000 characters that describes the parameter. + public let description: String? + /// A numeric value that determines the largest numeric value you want to allow for Number types. + public let maxValue: Int32? + /// Whether to mask the parameter value whenever anyone makes a call that describes the stack. If you set the\n value to true, the parameter value is masked with asterisks (*****). + public let noEcho: Bool? + /// The name of the parameter. + public let name: String? + /// An integer value that determines the largest number of characters you want to allow for String types. + public let maxLength: Int32? + /// A list of SAM resources that use this parameter. + public let referencedByResources: [String]? + /// The type of the parameter.\nValid values: String | Number | List | CommaDelimitedList \n \n\n String : A literal string.\nFor example, users could specify "MyUserName" .\n\n Number : An integer or float. AWS CloudFormation validates the parameter value as a number; however, when you use the\n parameter elsewhere in your template (for example, by using the Ref intrinsic function), the parameter value becomes a string.\nFor example, users could specify "8888" .\n\n List : An array of integers or floats that are separated by commas. AWS CloudFormation validates the parameter value as numbers; however, when\n you use the parameter elsewhere in your template (for example, by using the Ref intrinsic function), the parameter value becomes a list of strings.\nFor example, users could specify "80,20", and a Ref results in ["80","20"] .\n\n CommaDelimitedList : An array of literal strings that are separated by commas. The total number of strings should be one more than the total number of commas.\n Also, each member string is space-trimmed.\nFor example, users could specify "test,dev,prod", and a Ref results in ["test","dev","prod"] . + public let `type`: String? + /// A string that explains a constraint when the constraint is violated. For example, without a constraint description,\n a parameter that has an allowed pattern of [A-Za-z0-9]+ displays the following error message when the user\n specifies an invalid value:\n\n Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+ \n \nBy adding a constraint description, such as "must contain only uppercase and lowercase letters, and numbers," you can display\n the following customized error message:\n\n Malformed input-Parameter MyParameter must contain only uppercase and lowercase letters and numbers. + public let constraintDescription: String? + + public init(allowedValues: [String]? = nil, minValue: Int32? = nil, minLength: Int32? = nil, allowedPattern: String? = nil, defaultValue: String? = nil, description: String? = nil, maxValue: Int32? = nil, noEcho: Bool? = nil, name: String? = nil, maxLength: Int32? = nil, referencedByResources: [String]? = nil, type: String? = nil, constraintDescription: String? = nil) { + self.allowedValues = allowedValues + self.minValue = minValue + self.minLength = minLength + self.allowedPattern = allowedPattern + self.defaultValue = defaultValue + self.description = description + self.maxValue = maxValue + self.noEcho = noEcho + self.name = name + self.maxLength = maxLength + self.referencedByResources = referencedByResources + self.`type` = `type` + self.constraintDescription = constraintDescription + } + + private enum CodingKeys: String, CodingKey { + case allowedValues = "allowedValues" + case minValue = "minValue" + case minLength = "minLength" + case allowedPattern = "allowedPattern" + case defaultValue = "defaultValue" + case description = "description" + case maxValue = "maxValue" + case noEcho = "noEcho" + case name = "name" + case maxLength = "maxLength" + case referencedByResources = "referencedByResources" + case `type` = "type" + case constraintDescription = "constraintDescription" + } + } + + public struct Version: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceCodeUrl", location: .body(locationName: "sourceCodeUrl"), required: false, type: .string), + AWSShapeMember(label: "CreationTime", location: .body(locationName: "creationTime"), required: false, type: .string), + AWSShapeMember(label: "ParameterDefinitions", location: .body(locationName: "parameterDefinitions"), required: false, type: .list), + AWSShapeMember(label: "ApplicationId", location: .body(locationName: "applicationId"), required: false, type: .string), + AWSShapeMember(label: "SemanticVersion", location: .body(locationName: "semanticVersion"), required: false, type: .string), + AWSShapeMember(label: "TemplateUrl", location: .body(locationName: "templateUrl"), required: false, type: .string) + ] + /// A link to a public repository for the source code of your application. + public let sourceCodeUrl: String? + /// The date/time this resource was created. + public let creationTime: String? + /// Array of parameter types supported by the application. + public let parameterDefinitions: [ParameterDefinition]? + /// The application Amazon Resource Name (ARN). + public let applicationId: String? + /// The semantic version of the application:\n\n https://semver.org/ + public let semanticVersion: String? + /// A link to the packaged SAM template of your application. + public let templateUrl: String? + + public init(sourceCodeUrl: String? = nil, creationTime: String? = nil, parameterDefinitions: [ParameterDefinition]? = nil, applicationId: String? = nil, semanticVersion: String? = nil, templateUrl: String? = nil) { + self.sourceCodeUrl = sourceCodeUrl + self.creationTime = creationTime + self.parameterDefinitions = parameterDefinitions + self.applicationId = applicationId + self.semanticVersion = semanticVersion + self.templateUrl = templateUrl + } + + private enum CodingKeys: String, CodingKey { + case sourceCodeUrl = "sourceCodeUrl" + case creationTime = "creationTime" + case parameterDefinitions = "parameterDefinitions" + case applicationId = "applicationId" + case semanticVersion = "semanticVersion" + case templateUrl = "templateUrl" + } + } + + public struct VersionSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceCodeUrl", location: .body(locationName: "sourceCodeUrl"), required: false, type: .string), + AWSShapeMember(label: "CreationTime", location: .body(locationName: "creationTime"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .body(locationName: "applicationId"), required: false, type: .string), + AWSShapeMember(label: "SemanticVersion", location: .body(locationName: "semanticVersion"), required: false, type: .string) + ] + /// A link to a public repository for the source code of your application. + public let sourceCodeUrl: String? + /// The date/time this resource was created. + public let creationTime: String? + /// The application Amazon Resource Name (ARN). + public let applicationId: String? + /// The semantic version of the application:\n\n https://semver.org/ + public let semanticVersion: String? + + public init(sourceCodeUrl: String? = nil, creationTime: String? = nil, applicationId: String? = nil, semanticVersion: String? = nil) { + self.sourceCodeUrl = sourceCodeUrl + self.creationTime = creationTime + self.applicationId = applicationId + self.semanticVersion = semanticVersion + } + + private enum CodingKeys: String, CodingKey { + case sourceCodeUrl = "sourceCodeUrl" + case creationTime = "creationTime" + case applicationId = "applicationId" + case semanticVersion = "semanticVersion" + } + } + + public struct CreateApplicationVersionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceCodeUrl", location: .body(locationName: "sourceCodeUrl"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "applicationId"), required: true, type: .string), + AWSShapeMember(label: "SemanticVersion", location: .uri(locationName: "semanticVersion"), required: true, type: .string), + AWSShapeMember(label: "TemplateBody", location: .body(locationName: "templateBody"), required: false, type: .string), + AWSShapeMember(label: "TemplateUrl", location: .body(locationName: "templateUrl"), required: false, type: .string) + ] + public let sourceCodeUrl: String? + public let applicationId: String + public let semanticVersion: String + public let templateBody: String? + public let templateUrl: String? + + public init(sourceCodeUrl: String? = nil, applicationId: String, semanticVersion: String, templateBody: String? = nil, templateUrl: String? = nil) { + self.sourceCodeUrl = sourceCodeUrl + self.applicationId = applicationId + self.semanticVersion = semanticVersion + self.templateBody = templateBody + self.templateUrl = templateUrl + } + + private enum CodingKeys: String, CodingKey { + case sourceCodeUrl = "sourceCodeUrl" + case applicationId = "applicationId" + case semanticVersion = "semanticVersion" + case templateBody = "templateBody" + case templateUrl = "templateUrl" + } + } + + public struct CreateCloudFormationChangeSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ApplicationId", location: .body(locationName: "applicationId"), required: false, type: .string), + AWSShapeMember(label: "SemanticVersion", location: .body(locationName: "semanticVersion"), required: false, type: .string), + AWSShapeMember(label: "StackId", location: .body(locationName: "stackId"), required: false, type: .string), + AWSShapeMember(label: "ChangeSetId", location: .body(locationName: "changeSetId"), required: false, type: .string) + ] + public let applicationId: String? + public let semanticVersion: String? + public let stackId: String? + public let changeSetId: String? + + public init(applicationId: String? = nil, semanticVersion: String? = nil, stackId: String? = nil, changeSetId: String? = nil) { + self.applicationId = applicationId + self.semanticVersion = semanticVersion + self.stackId = stackId + self.changeSetId = changeSetId + } + + private enum CodingKeys: String, CodingKey { + case applicationId = "applicationId" + case semanticVersion = "semanticVersion" + case stackId = "stackId" + case changeSetId = "changeSetId" + } + } + + public struct ApplicationPolicyStatement: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StatementId", location: .body(locationName: "statementId"), required: false, type: .string), + AWSShapeMember(label: "Principals", location: .body(locationName: "principals"), required: false, type: .list), + AWSShapeMember(label: "Actions", location: .body(locationName: "actions"), required: false, type: .list) + ] + /// A unique ID for the statement. + public let statementId: String? + /// An AWS account ID, or * to make the application public. + public let principals: [String]? + /// A list of supported actions:\n\n GetApplication \n \n\n CreateCloudFormationChangeSet \n \n\n ListApplicationVersions \n \n\n SearchApplications \n \n\n Deploy (Note: This action enables all other actions above.) + public let actions: [String]? + + public init(statementId: String? = nil, principals: [String]? = nil, actions: [String]? = nil) { + self.statementId = statementId + self.principals = principals + self.actions = actions + } + + private enum CodingKeys: String, CodingKey { + case statementId = "statementId" + case principals = "principals" + case actions = "actions" + } + } + + public struct CreateCloudFormationChangeSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ParameterOverrides", location: .body(locationName: "parameterOverrides"), required: false, type: .list), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "applicationId"), required: true, type: .string), + AWSShapeMember(label: "SemanticVersion", location: .body(locationName: "semanticVersion"), required: false, type: .string), + AWSShapeMember(label: "StackName", location: .body(locationName: "stackName"), required: false, type: .string) + ] + public let parameterOverrides: [ParameterValue]? + public let applicationId: String + public let semanticVersion: String? + public let stackName: String? + + public init(parameterOverrides: [ParameterValue]? = nil, applicationId: String, semanticVersion: String? = nil, stackName: String? = nil) { + self.parameterOverrides = parameterOverrides + self.applicationId = applicationId + self.semanticVersion = semanticVersion + self.stackName = stackName + } + + private enum CodingKeys: String, CodingKey { + case parameterOverrides = "parameterOverrides" + case applicationId = "applicationId" + case semanticVersion = "semanticVersion" + case stackName = "stackName" + } + } + + public struct ApplicationVersionPage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Versions", location: .body(locationName: "versions"), required: false, type: .list) + ] + /// The token to request the next page of results. + public let nextToken: String? + /// Array of version summaries for the application. + public let versions: [VersionSummary]? + + public init(nextToken: String? = nil, versions: [VersionSummary]? = nil) { + self.nextToken = nextToken + self.versions = versions + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case versions = "versions" + } + } + + public struct Application: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Labels", location: .body(locationName: "labels"), required: false, type: .list), + AWSShapeMember(label: "Author", location: .body(locationName: "author"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "ReadmeUrl", location: .body(locationName: "readmeUrl"), required: false, type: .string), + AWSShapeMember(label: "Version", location: .body(locationName: "version"), required: false, type: .structure), + AWSShapeMember(label: "SpdxLicenseId", location: .body(locationName: "spdxLicenseId"), required: false, type: .string), + AWSShapeMember(label: "CreationTime", location: .body(locationName: "creationTime"), required: false, type: .string), + AWSShapeMember(label: "LicenseUrl", location: .body(locationName: "licenseUrl"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .body(locationName: "applicationId"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// Labels to improve discovery of apps in search results.\nMin Length=1. Max Length=127. Maximum number of labels: 10\nPattern: "^[a-zA-Z0-9+\\-_:\\/@]+$"; + public let labels: [String]? + /// The name of the author publishing the app.\nMin Length=1. Max Length=127.\nPattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$"; + public let author: String? + /// The name of the application.\nMin Length=1. Max Length=140\nPattern: "[a-zA-Z0-9\\-]+"; + public let name: String? + /// A link to the Readme file that contains a more detailed description of the application and how it works in markdown language.\nMax size 5 MB + public let readmeUrl: String? + /// Version information about the application. + public let version: Version? + /// A valid identifier from https://spdx.org/licenses/. + public let spdxLicenseId: String? + /// The date/time this resource was created. + public let creationTime: String? + /// A link to a license file of the app that matches the spdxLicenseID of your application.\nMax size 5 MB + public let licenseUrl: String? + /// The application Amazon Resource Name (ARN). + public let applicationId: String? + /// The description of the application.\nMin Length=1. Max Length=256 + public let description: String? + + public init(labels: [String]? = nil, author: String? = nil, name: String? = nil, readmeUrl: String? = nil, version: Version? = nil, spdxLicenseId: String? = nil, creationTime: String? = nil, licenseUrl: String? = nil, applicationId: String? = nil, description: String? = nil) { + self.labels = labels + self.author = author + self.name = name + self.readmeUrl = readmeUrl + self.version = version + self.spdxLicenseId = spdxLicenseId + self.creationTime = creationTime + self.licenseUrl = licenseUrl + self.applicationId = applicationId + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case labels = "labels" + case author = "author" + case name = "name" + case readmeUrl = "readmeUrl" + case version = "version" + case spdxLicenseId = "spdxLicenseId" + case creationTime = "creationTime" + case licenseUrl = "licenseUrl" + case applicationId = "applicationId" + case description = "description" + } + } + + public struct PutApplicationPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Statements", location: .body(locationName: "statements"), required: false, type: .list) + ] + public let statements: [ApplicationPolicyStatement]? + + public init(statements: [ApplicationPolicyStatement]? = nil) { + self.statements = statements + } + + private enum CodingKeys: String, CodingKey { + case statements = "statements" + } + } + + public struct CreateApplicationVersionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceCodeUrl", location: .body(locationName: "sourceCodeUrl"), required: false, type: .string), + AWSShapeMember(label: "CreationTime", location: .body(locationName: "creationTime"), required: false, type: .string), + AWSShapeMember(label: "ParameterDefinitions", location: .body(locationName: "parameterDefinitions"), required: false, type: .list), + AWSShapeMember(label: "ApplicationId", location: .body(locationName: "applicationId"), required: false, type: .string), + AWSShapeMember(label: "SemanticVersion", location: .body(locationName: "semanticVersion"), required: false, type: .string), + AWSShapeMember(label: "TemplateUrl", location: .body(locationName: "templateUrl"), required: false, type: .string) + ] + public let sourceCodeUrl: String? + public let creationTime: String? + public let parameterDefinitions: [ParameterDefinition]? + public let applicationId: String? + public let semanticVersion: String? + public let templateUrl: String? + + public init(sourceCodeUrl: String? = nil, creationTime: String? = nil, parameterDefinitions: [ParameterDefinition]? = nil, applicationId: String? = nil, semanticVersion: String? = nil, templateUrl: String? = nil) { + self.sourceCodeUrl = sourceCodeUrl + self.creationTime = creationTime + self.parameterDefinitions = parameterDefinitions + self.applicationId = applicationId + self.semanticVersion = semanticVersion + self.templateUrl = templateUrl + } + + private enum CodingKeys: String, CodingKey { + case sourceCodeUrl = "sourceCodeUrl" + case creationTime = "creationTime" + case parameterDefinitions = "parameterDefinitions" + case applicationId = "applicationId" + case semanticVersion = "semanticVersion" + case templateUrl = "templateUrl" + } + } + + public struct CreateApplicationResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Labels", location: .body(locationName: "labels"), required: false, type: .list), + AWSShapeMember(label: "Author", location: .body(locationName: "author"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "ReadmeUrl", location: .body(locationName: "readmeUrl"), required: false, type: .string), + AWSShapeMember(label: "Version", location: .body(locationName: "version"), required: false, type: .structure), + AWSShapeMember(label: "SpdxLicenseId", location: .body(locationName: "spdxLicenseId"), required: false, type: .string), + AWSShapeMember(label: "CreationTime", location: .body(locationName: "creationTime"), required: false, type: .string), + AWSShapeMember(label: "LicenseUrl", location: .body(locationName: "licenseUrl"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .body(locationName: "applicationId"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let labels: [String]? + public let author: String? + public let name: String? + public let readmeUrl: String? + public let version: Version? + public let spdxLicenseId: String? + public let creationTime: String? + public let licenseUrl: String? + public let applicationId: String? + public let description: String? + + public init(labels: [String]? = nil, author: String? = nil, name: String? = nil, readmeUrl: String? = nil, version: Version? = nil, spdxLicenseId: String? = nil, creationTime: String? = nil, licenseUrl: String? = nil, applicationId: String? = nil, description: String? = nil) { + self.labels = labels + self.author = author + self.name = name + self.readmeUrl = readmeUrl + self.version = version + self.spdxLicenseId = spdxLicenseId + self.creationTime = creationTime + self.licenseUrl = licenseUrl + self.applicationId = applicationId + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case labels = "labels" + case author = "author" + case name = "name" + case readmeUrl = "readmeUrl" + case version = "version" + case spdxLicenseId = "spdxLicenseId" + case creationTime = "creationTime" + case licenseUrl = "licenseUrl" + case applicationId = "applicationId" + case description = "description" + } + } + + public struct UpdateApplicationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Labels", location: .body(locationName: "labels"), required: false, type: .list), + AWSShapeMember(label: "Author", location: .body(locationName: "author"), required: false, type: .string), + AWSShapeMember(label: "ReadmeBody", location: .body(locationName: "readmeBody"), required: false, type: .string), + AWSShapeMember(label: "ReadmeUrl", location: .body(locationName: "readmeUrl"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// Labels to improve discovery of apps in search results.\nMin Length=1. Max Length=127. Maximum number of labels: 10\nPattern: "^[a-zA-Z0-9+\\-_:\\/@]+$"; + public let labels: [String]? + /// The name of the author publishing the app.\nMin Length=1. Max Length=127.\nPattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$"; + public let author: String? + /// A raw text Readme file that contains a more detailed description of the application and how it works in markdown language.\nMax size 5 MB + public let readmeBody: String? + /// A link to the Readme file that contains a more detailed description of the application and how it works in markdown language.\nMax size 5 MB + public let readmeUrl: String? + /// The description of the application.\nMin Length=1. Max Length=256 + public let description: String? + + public init(labels: [String]? = nil, author: String? = nil, readmeBody: String? = nil, readmeUrl: String? = nil, description: String? = nil) { + self.labels = labels + self.author = author + self.readmeBody = readmeBody + self.readmeUrl = readmeUrl + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case labels = "labels" + case author = "author" + case readmeBody = "readmeBody" + case readmeUrl = "readmeUrl" + case description = "description" + } + } + + public struct GetApplicationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SemanticVersion", location: .querystring(locationName: "semanticVersion"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "applicationId"), required: true, type: .string) + ] + public let semanticVersion: String? + public let applicationId: String + + public init(semanticVersion: String? = nil, applicationId: String) { + self.semanticVersion = semanticVersion + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case semanticVersion = "semanticVersion" + case applicationId = "applicationId" + } + } + + public struct PutApplicationPolicyRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Statements", location: .body(locationName: "statements"), required: false, type: .list), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "applicationId"), required: true, type: .string) + ] + public let statements: [ApplicationPolicyStatement]? + public let applicationId: String + + public init(statements: [ApplicationPolicyStatement]? = nil, applicationId: String) { + self.statements = statements + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case statements = "statements" + case applicationId = "applicationId" + } + } + + public struct CreateCloudFormationChangeSetInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SemanticVersion", location: .body(locationName: "semanticVersion"), required: false, type: .string), + AWSShapeMember(label: "StackName", location: .body(locationName: "stackName"), required: false, type: .string), + AWSShapeMember(label: "ParameterOverrides", location: .body(locationName: "parameterOverrides"), required: false, type: .list) + ] + /// The semantic version of the application:\n\n https://semver.org/ + public let semanticVersion: String? + /// The name or the unique ID of the stack for which you are creating a change set. AWS CloudFormation generates\n the change set by comparing this stack's information with the information that you submit, such as a modified\n template or different parameter input values. \nConstraints: Minimum length of 1.\nPattern: ([a-zA-Z][-a-zA-Z0-9]*)|(arn:\b(aws|aws-us-gov|aws-cn)\b:[-a-zA-Z0-9:/._+]*) + public let stackName: String? + /// A list of parameter values for the parameters of the application. + public let parameterOverrides: [ParameterValue]? + + public init(semanticVersion: String? = nil, stackName: String? = nil, parameterOverrides: [ParameterValue]? = nil) { + self.semanticVersion = semanticVersion + self.stackName = stackName + self.parameterOverrides = parameterOverrides + } + + private enum CodingKeys: String, CodingKey { + case semanticVersion = "semanticVersion" + case stackName = "stackName" + case parameterOverrides = "parameterOverrides" + } + } + + public struct ListApplicationVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxItems"), required: false, type: .integer), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "applicationId"), required: true, type: .string) + ] + public let nextToken: String? + public let maxItems: Int32? + public let applicationId: String + + public init(nextToken: String? = nil, maxItems: Int32? = nil, applicationId: String) { + self.nextToken = nextToken + self.maxItems = maxItems + self.applicationId = applicationId + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxItems = "maxItems" + case applicationId = "applicationId" + } + } + + public struct ApplicationPolicy: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Statements", location: .body(locationName: "statements"), required: false, type: .list) + ] + /// Array of policy statements applied to the application. + public let statements: [ApplicationPolicyStatement]? + + public init(statements: [ApplicationPolicyStatement]? = nil) { + self.statements = statements + } + + private enum CodingKeys: String, CodingKey { + case statements = "statements" + } + } + + public struct CreateApplicationInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceCodeUrl", location: .body(locationName: "sourceCodeUrl"), required: false, type: .string), + AWSShapeMember(label: "Labels", location: .body(locationName: "labels"), required: false, type: .list), + AWSShapeMember(label: "Author", location: .body(locationName: "author"), required: false, type: .string), + AWSShapeMember(label: "ReadmeBody", location: .body(locationName: "readmeBody"), required: false, type: .string), + AWSShapeMember(label: "LicenseUrl", location: .body(locationName: "licenseUrl"), required: false, type: .string), + AWSShapeMember(label: "SemanticVersion", location: .body(locationName: "semanticVersion"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "LicenseBody", location: .body(locationName: "licenseBody"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "ReadmeUrl", location: .body(locationName: "readmeUrl"), required: false, type: .string), + AWSShapeMember(label: "SpdxLicenseId", location: .body(locationName: "spdxLicenseId"), required: false, type: .string), + AWSShapeMember(label: "TemplateBody", location: .body(locationName: "templateBody"), required: false, type: .string), + AWSShapeMember(label: "TemplateUrl", location: .body(locationName: "templateUrl"), required: false, type: .string) + ] + /// A link to a public repository for the source code of your application. + public let sourceCodeUrl: String? + /// Labels to improve discovery of apps in search results.\nMin Length=1. Max Length=127. Maximum number of labels: 10\nPattern: "^[a-zA-Z0-9+\\-_:\\/@]+$"; + public let labels: [String]? + /// The name of the author publishing the app.\nMin Length=1. Max Length=127.\nPattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$"; + public let author: String? + /// A raw text Readme file that contains a more detailed description of the application and how it works in markdown language.\nMax size 5 MB + public let readmeBody: String? + /// A link to a license file of the app that matches the spdxLicenseID of your application.\nMax size 5 MB + public let licenseUrl: String? + /// The semantic version of the application:\n\n https://semver.org/ + public let semanticVersion: String? + /// The description of the application.\nMin Length=1. Max Length=256 + public let description: String? + /// A raw text file that contains the license of the app that matches the spdxLicenseID of your application.\nMax size 5 MB + public let licenseBody: String? + /// The name of the application you want to publish.\nMin Length=1. Max Length=140\nPattern: "[a-zA-Z0-9\\-]+"; + public let name: String? + /// A link to the Readme file that contains a more detailed description of the application and how it works in markdown language.\nMax size 5 MB + public let readmeUrl: String? + /// A valid identifier from https://spdx.org/licenses/ . + public let spdxLicenseId: String? + /// The raw packaged SAM template of your application. + public let templateBody: String? + /// A link to the packaged SAM template of your application. + public let templateUrl: String? + + public init(sourceCodeUrl: String? = nil, labels: [String]? = nil, author: String? = nil, readmeBody: String? = nil, licenseUrl: String? = nil, semanticVersion: String? = nil, description: String? = nil, licenseBody: String? = nil, name: String? = nil, readmeUrl: String? = nil, spdxLicenseId: String? = nil, templateBody: String? = nil, templateUrl: String? = nil) { + self.sourceCodeUrl = sourceCodeUrl + self.labels = labels + self.author = author + self.readmeBody = readmeBody + self.licenseUrl = licenseUrl + self.semanticVersion = semanticVersion + self.description = description + self.licenseBody = licenseBody + self.name = name + self.readmeUrl = readmeUrl + self.spdxLicenseId = spdxLicenseId + self.templateBody = templateBody + self.templateUrl = templateUrl + } + + private enum CodingKeys: String, CodingKey { + case sourceCodeUrl = "sourceCodeUrl" + case labels = "labels" + case author = "author" + case readmeBody = "readmeBody" + case licenseUrl = "licenseUrl" + case semanticVersion = "semanticVersion" + case description = "description" + case licenseBody = "licenseBody" + case name = "name" + case readmeUrl = "readmeUrl" + case spdxLicenseId = "spdxLicenseId" + case templateBody = "templateBody" + case templateUrl = "templateUrl" + } + } + + public struct ListApplicationsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .querystring(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "MaxItems", location: .querystring(locationName: "maxItems"), required: false, type: .integer) + ] + public let nextToken: String? + public let maxItems: Int32? + + public init(nextToken: String? = nil, maxItems: Int32? = nil) { + self.nextToken = nextToken + self.maxItems = maxItems + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case maxItems = "maxItems" + } + } + + public struct CreateApplicationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceCodeUrl", location: .body(locationName: "sourceCodeUrl"), required: false, type: .string), + AWSShapeMember(label: "Labels", location: .body(locationName: "labels"), required: false, type: .list), + AWSShapeMember(label: "Author", location: .body(locationName: "author"), required: false, type: .string), + AWSShapeMember(label: "ReadmeBody", location: .body(locationName: "readmeBody"), required: false, type: .string), + AWSShapeMember(label: "LicenseUrl", location: .body(locationName: "licenseUrl"), required: false, type: .string), + AWSShapeMember(label: "SemanticVersion", location: .body(locationName: "semanticVersion"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string), + AWSShapeMember(label: "LicenseBody", location: .body(locationName: "licenseBody"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "ReadmeUrl", location: .body(locationName: "readmeUrl"), required: false, type: .string), + AWSShapeMember(label: "SpdxLicenseId", location: .body(locationName: "spdxLicenseId"), required: false, type: .string), + AWSShapeMember(label: "TemplateBody", location: .body(locationName: "templateBody"), required: false, type: .string), + AWSShapeMember(label: "TemplateUrl", location: .body(locationName: "templateUrl"), required: false, type: .string) + ] + public let sourceCodeUrl: String? + public let labels: [String]? + public let author: String? + public let readmeBody: String? + public let licenseUrl: String? + public let semanticVersion: String? + public let description: String? + public let licenseBody: String? + public let name: String? + public let readmeUrl: String? + public let spdxLicenseId: String? + public let templateBody: String? + public let templateUrl: String? + + public init(sourceCodeUrl: String? = nil, labels: [String]? = nil, author: String? = nil, readmeBody: String? = nil, licenseUrl: String? = nil, semanticVersion: String? = nil, description: String? = nil, licenseBody: String? = nil, name: String? = nil, readmeUrl: String? = nil, spdxLicenseId: String? = nil, templateBody: String? = nil, templateUrl: String? = nil) { + self.sourceCodeUrl = sourceCodeUrl + self.labels = labels + self.author = author + self.readmeBody = readmeBody + self.licenseUrl = licenseUrl + self.semanticVersion = semanticVersion + self.description = description + self.licenseBody = licenseBody + self.name = name + self.readmeUrl = readmeUrl + self.spdxLicenseId = spdxLicenseId + self.templateBody = templateBody + self.templateUrl = templateUrl + } + + private enum CodingKeys: String, CodingKey { + case sourceCodeUrl = "sourceCodeUrl" + case labels = "labels" + case author = "author" + case readmeBody = "readmeBody" + case licenseUrl = "licenseUrl" + case semanticVersion = "semanticVersion" + case description = "description" + case licenseBody = "licenseBody" + case name = "name" + case readmeUrl = "readmeUrl" + case spdxLicenseId = "spdxLicenseId" + case templateBody = "templateBody" + case templateUrl = "templateUrl" + } + } + + public struct ApplicationPage: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Applications", location: .body(locationName: "applications"), required: false, type: .list) + ] + /// The token to request the next page of results. + public let nextToken: String? + /// Array of application summaries. + public let applications: [ApplicationSummary]? + + public init(nextToken: String? = nil, applications: [ApplicationSummary]? = nil) { + self.nextToken = nextToken + self.applications = applications + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case applications = "applications" + } + } + + public struct GetApplicationPolicyResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Statements", location: .body(locationName: "statements"), required: false, type: .list) + ] + public let statements: [ApplicationPolicyStatement]? + + public init(statements: [ApplicationPolicyStatement]? = nil) { + self.statements = statements + } + + private enum CodingKeys: String, CodingKey { + case statements = "statements" + } + } + + public struct CreateApplicationVersionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceCodeUrl", location: .body(locationName: "sourceCodeUrl"), required: false, type: .string), + AWSShapeMember(label: "TemplateUrl", location: .body(locationName: "templateUrl"), required: false, type: .string), + AWSShapeMember(label: "TemplateBody", location: .body(locationName: "templateBody"), required: false, type: .string) + ] + /// A link to a public repository for the source code of your application. + public let sourceCodeUrl: String? + /// A link to the packaged SAM template of your application. + public let templateUrl: String? + /// The raw packaged SAM template of your application. + public let templateBody: String? + + public init(sourceCodeUrl: String? = nil, templateUrl: String? = nil, templateBody: String? = nil) { + self.sourceCodeUrl = sourceCodeUrl + self.templateUrl = templateUrl + self.templateBody = templateBody + } + + private enum CodingKeys: String, CodingKey { + case sourceCodeUrl = "sourceCodeUrl" + case templateUrl = "templateUrl" + case templateBody = "templateBody" + } + } + + public struct ApplicationSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Labels", location: .body(locationName: "labels"), required: false, type: .list), + AWSShapeMember(label: "Author", location: .body(locationName: "author"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string), + AWSShapeMember(label: "SpdxLicenseId", location: .body(locationName: "spdxLicenseId"), required: false, type: .string), + AWSShapeMember(label: "CreationTime", location: .body(locationName: "creationTime"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .body(locationName: "applicationId"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + /// Labels to improve discovery of apps in search results.\nMin Length=1. Max Length=127. Maximum number of labels: 10\nPattern: "^[a-zA-Z0-9+\\-_:\\/@]+$"; + public let labels: [String]? + /// The name of the author publishing the app\nMin Length=1. Max Length=127.\nPattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$"; + public let author: String? + /// The name of the application.\nMin Length=1. Max Length=140\nPattern: "[a-zA-Z0-9\\-]+"; + public let name: String? + /// A valid identifier from https://spdx.org/licenses/ . + public let spdxLicenseId: String? + /// The date/time this resource was created. + public let creationTime: String? + /// The application ARN. + public let applicationId: String? + /// The description of the application.\nMin Length=1. Max Length=256 + public let description: String? + + public init(labels: [String]? = nil, author: String? = nil, name: String? = nil, spdxLicenseId: String? = nil, creationTime: String? = nil, applicationId: String? = nil, description: String? = nil) { + self.labels = labels + self.author = author + self.name = name + self.spdxLicenseId = spdxLicenseId + self.creationTime = creationTime + self.applicationId = applicationId + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case labels = "labels" + case author = "author" + case name = "name" + case spdxLicenseId = "spdxLicenseId" + case creationTime = "creationTime" + case applicationId = "applicationId" + case description = "description" + } + } + + public struct ListApplicationVersionsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", location: .body(locationName: "nextToken"), required: false, type: .string), + AWSShapeMember(label: "Versions", location: .body(locationName: "versions"), required: false, type: .list) + ] + public let nextToken: String? + public let versions: [VersionSummary]? + + public init(nextToken: String? = nil, versions: [VersionSummary]? = nil) { + self.nextToken = nextToken + self.versions = versions + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "nextToken" + case versions = "versions" + } + } + + public struct UpdateApplicationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Labels", location: .body(locationName: "labels"), required: false, type: .list), + AWSShapeMember(label: "Author", location: .body(locationName: "author"), required: false, type: .string), + AWSShapeMember(label: "ApplicationId", location: .uri(locationName: "applicationId"), required: true, type: .string), + AWSShapeMember(label: "ReadmeBody", location: .body(locationName: "readmeBody"), required: false, type: .string), + AWSShapeMember(label: "ReadmeUrl", location: .body(locationName: "readmeUrl"), required: false, type: .string), + AWSShapeMember(label: "Description", location: .body(locationName: "description"), required: false, type: .string) + ] + public let labels: [String]? + public let author: String? + public let applicationId: String + public let readmeBody: String? + public let readmeUrl: String? + public let description: String? + + public init(labels: [String]? = nil, author: String? = nil, applicationId: String, readmeBody: String? = nil, readmeUrl: String? = nil, description: String? = nil) { + self.labels = labels + self.author = author + self.applicationId = applicationId + self.readmeBody = readmeBody + self.readmeUrl = readmeUrl + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case labels = "labels" + case author = "author" + case applicationId = "applicationId" + case readmeBody = "readmeBody" + case readmeUrl = "readmeUrl" + case description = "description" + } + } + + public struct ParameterValue: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", location: .body(locationName: "value"), required: false, type: .string), + AWSShapeMember(label: "Name", location: .body(locationName: "name"), required: false, type: .string) + ] + /// The input value associated with the parameter. + public let value: String? + /// The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation\n uses the default value that is specified in your template. + public let name: String? + + public init(value: String? = nil, name: String? = nil) { + self.value = value + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case value = "value" + case name = "name" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_API.swift b/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_API.swift index 50fdda036a4..7a232d1b66a 100644 --- a/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_API.swift +++ b/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_API.swift @@ -25,16 +25,16 @@ public struct Servicecatalog { ) } - /// Updates an existing TagOption. - public func updateTagOption(_ input: UpdateTagOptionInput) throws -> UpdateTagOptionOutput { - return try client.send(operation: "UpdateTagOption", path: "/", httpMethod: "POST", input: input) - } - /// Creates a new portfolio share. public func createPortfolioShare(_ input: CreatePortfolioShareInput) throws -> CreatePortfolioShareOutput { return try client.send(operation: "CreatePortfolioShare", path: "/", httpMethod: "POST", input: input) } + /// Updates an existing TagOption. + public func updateTagOption(_ input: UpdateTagOptionInput) throws -> UpdateTagOptionOutput { + return try client.send(operation: "UpdateTagOption", path: "/", httpMethod: "POST", input: input) + } + /// Deletes the specified constraint. public func deleteConstraint(_ input: DeleteConstraintInput) throws -> DeleteConstraintOutput { return try client.send(operation: "DeleteConstraint", path: "/", httpMethod: "POST", input: input) @@ -70,16 +70,16 @@ public struct Servicecatalog { return try client.send(operation: "UpdateConstraint", path: "/", httpMethod: "POST", input: input) } - /// Creates a new product. - public func createProduct(_ input: CreateProductInput) throws -> CreateProductOutput { - return try client.send(operation: "CreateProduct", path: "/", httpMethod: "POST", input: input) - } - /// Lists resources associated with a TagOption. public func listResourcesForTagOption(_ input: ListResourcesForTagOptionInput) throws -> ListResourcesForTagOptionOutput { return try client.send(operation: "ListResourcesForTagOption", path: "/", httpMethod: "POST", input: input) } + /// Creates a new product. + public func createProduct(_ input: CreateProductInput) throws -> CreateProductOutput { + return try client.send(operation: "CreateProduct", path: "/", httpMethod: "POST", input: input) + } + /// Disassociates the specified product from the specified portfolio. public func disassociateProductFromPortfolio(_ input: DisassociateProductFromPortfolioInput) throws -> DisassociateProductFromPortfolioOutput { return try client.send(operation: "DisassociateProductFromPortfolio", path: "/", httpMethod: "POST", input: input) @@ -135,7 +135,7 @@ public struct Servicecatalog { return try client.send(operation: "ListPortfoliosForProduct", path: "/", httpMethod: "POST", input: input) } - /// Create a new provisioning artifact for the specified product. This operation does not work with a product that has been shared with you. See the bottom of this topic for an example JSON request. + /// Create a new provisioning artifact for the specified product. This operation does not work with a product that has been shared with you. public func createProvisioningArtifact(_ input: CreateProvisioningArtifactInput) throws -> CreateProvisioningArtifactOutput { return try client.send(operation: "CreateProvisioningArtifact", path: "/", httpMethod: "POST", input: input) } @@ -160,9 +160,9 @@ public struct Servicecatalog { return try client.send(operation: "UpdatePortfolio", path: "/", httpMethod: "POST", input: input) } - /// Associate a TagOption identifier with a resource identifier. - public func associateTagOptionWithResource(_ input: AssociateTagOptionWithResourceInput) throws -> AssociateTagOptionWithResourceOutput { - return try client.send(operation: "AssociateTagOptionWithResource", path: "/", httpMethod: "POST", input: input) + /// Retrieves a paginated list of the full details of a specific request. Use this operation after calling a request operation (ProvisionProduct, TerminateProvisionedProduct, or UpdateProvisionedProduct). + public func describeRecord(_ input: DescribeRecordInput) throws -> DescribeRecordOutput { + return try client.send(operation: "DescribeRecord", path: "/", httpMethod: "POST", input: input) } /// Accepts an offer to share a portfolio. @@ -180,16 +180,16 @@ public struct Servicecatalog { return try client.send(operation: "ListLaunchPaths", path: "/", httpMethod: "POST", input: input) } + /// Associate a TagOption identifier with a resource identifier. + public func associateTagOptionWithResource(_ input: AssociateTagOptionWithResourceInput) throws -> AssociateTagOptionWithResourceOutput { + return try client.send(operation: "AssociateTagOptionWithResource", path: "/", httpMethod: "POST", input: input) + } + /// Retrieves summary and status information about all products created within the caller's account. If a portfolio ID is provided, this operation retrieves information for only those products that are associated with the specified portfolio. public func searchProductsAsAdmin(_ input: SearchProductsAsAdminInput) throws -> SearchProductsAsAdminOutput { return try client.send(operation: "SearchProductsAsAdmin", path: "/", httpMethod: "POST", input: input) } - /// Retrieves a paginated list of the full details of a specific request. Use this operation after calling a request operation (ProvisionProduct, TerminateProvisionedProduct, or UpdateProvisionedProduct). - public func describeRecord(_ input: DescribeRecordInput) throws -> DescribeRecordOutput { - return try client.send(operation: "DescribeRecord", path: "/", httpMethod: "POST", input: input) - } - /// Lists details of all portfolios for which sharing was accepted by this account. public func listAcceptedPortfolioShares(_ input: ListAcceptedPortfolioSharesInput) throws -> ListAcceptedPortfolioSharesOutput { return try client.send(operation: "ListAcceptedPortfolioShares", path: "/", httpMethod: "POST", input: input) @@ -230,6 +230,11 @@ public struct Servicecatalog { return try client.send(operation: "DescribeProductView", path: "/", httpMethod: "POST", input: input) } + /// Copies the specified source product to the specified target product or a new product. You can copy the product to the same account or another account. You can copy the product to the same region or another region. This operation is performed asynchronously. To track the progress of the operation, use DescribeCopyProductStatus. + public func copyProduct(_ input: CopyProductInput) throws -> CopyProductOutput { + return try client.send(operation: "CopyProduct", path: "/", httpMethod: "POST", input: input) + } + /// Lists detailed TagOptions information. public func listTagOptions(_ input: ListTagOptionsInput) throws -> ListTagOptionsOutput { return try client.send(operation: "ListTagOptions", path: "/", httpMethod: "POST", input: input) @@ -280,5 +285,10 @@ public struct Servicecatalog { return try client.send(operation: "ProvisionProduct", path: "/", httpMethod: "POST", input: input) } + /// Describes the status of the specified copy product operation. + public func describeCopyProductStatus(_ input: DescribeCopyProductStatusInput) throws -> DescribeCopyProductStatusOutput { + return try client.send(operation: "DescribeCopyProductStatus", path: "/", httpMethod: "POST", input: input) + } + } \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_Error.swift b/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_Error.swift index e446ee01d53..37e60984893 100644 --- a/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_Error.swift +++ b/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_Error.swift @@ -4,11 +4,11 @@ import AWSSDKSwiftCore /// Error enum for Servicecatalog public enum ServicecatalogError: AWSErrorType { - case tagOptionNotMigratedException(message: String?) case resourceNotFoundException(message: String?) - case duplicateResourceException(message: String?) - case invalidParametersException(message: String?) case limitExceededException(message: String?) + case invalidParametersException(message: String?) + case tagOptionNotMigratedException(message: String?) + case duplicateResourceException(message: String?) case resourceInUseException(message: String?) case invalidStateException(message: String?) } @@ -20,16 +20,16 @@ extension ServicecatalogError { errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) } switch errorCode { - case "TagOptionNotMigratedException": - self = .tagOptionNotMigratedException(message: message) case "ResourceNotFoundException": self = .resourceNotFoundException(message: message) - case "DuplicateResourceException": - self = .duplicateResourceException(message: message) - case "InvalidParametersException": - self = .invalidParametersException(message: message) case "LimitExceededException": self = .limitExceededException(message: message) + case "InvalidParametersException": + self = .invalidParametersException(message: message) + case "TagOptionNotMigratedException": + self = .tagOptionNotMigratedException(message: message) + case "DuplicateResourceException": + self = .duplicateResourceException(message: message) case "ResourceInUseException": self = .resourceInUseException(message: message) case "InvalidStateException": diff --git a/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_Shapes.swift b/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_Shapes.swift index b960daa24f6..69c1607408a 100644 --- a/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/servicecatalog/Servicecatalog_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Servicecatalog { public struct CreateTagOptionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -27,7 +27,7 @@ extension Servicecatalog { } public struct DeletePortfolioShareInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "PortfolioId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string) @@ -36,7 +36,7 @@ extension Servicecatalog { public let accountId: String /// The portfolio identifier. public let portfolioId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? public init(accountId: String, portfolioId: String, acceptLanguage: String? = nil) { @@ -53,7 +53,7 @@ extension Servicecatalog { } public struct DisassociatePrincipalFromPortfolioInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrincipalARN", required: true, type: .string), AWSShapeMember(label: "PortfolioId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string) @@ -62,7 +62,7 @@ extension Servicecatalog { public let principalARN: String /// The portfolio identifier. public let portfolioId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? public init(principalARN: String, portfolioId: String, acceptLanguage: String? = nil) { @@ -87,11 +87,11 @@ extension Servicecatalog { } public struct DeletePortfolioInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The identifier of the portfolio for the delete request. public let id: String @@ -108,7 +108,7 @@ extension Servicecatalog { } public struct DescribeProvisioningParametersOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagOptions", required: false, type: .list), AWSShapeMember(label: "ConstraintSummaries", required: false, type: .list), AWSShapeMember(label: "UsageInstructions", required: false, type: .list), @@ -139,11 +139,11 @@ extension Servicecatalog { } public struct DescribeProvisionedProductInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The provisioned product identifier. public let id: String @@ -160,7 +160,7 @@ extension Servicecatalog { } public struct ProvisioningArtifactProperties: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Name", required: false, type: .string), @@ -191,7 +191,7 @@ extension Servicecatalog { } public struct DescribeProductAsAdminOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagOptions", required: false, type: .list), AWSShapeMember(label: "ProvisioningArtifactSummaries", required: false, type: .list), AWSShapeMember(label: "Tags", required: false, type: .list), @@ -222,7 +222,7 @@ extension Servicecatalog { } public struct ListPortfolioAccessOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextPageToken", required: false, type: .string), AWSShapeMember(label: "AccountIds", required: false, type: .list) ] @@ -243,7 +243,7 @@ extension Servicecatalog { } public struct ListResourcesForTagOptionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagOptionId", required: true, type: .string), AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "ResourceType", required: false, type: .string), @@ -279,7 +279,7 @@ extension Servicecatalog { } public struct CreateProductOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "ProductViewDetail", required: false, type: .structure), AWSShapeMember(label: "ProvisioningArtifactDetail", required: false, type: .structure) @@ -305,7 +305,7 @@ extension Servicecatalog { } public struct UsageInstruction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .string), AWSShapeMember(label: "Value", required: false, type: .string) ] @@ -326,7 +326,7 @@ extension Servicecatalog { } public struct DescribeTagOptionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagOptionDetail", required: false, type: .structure) ] /// The resulting detailed TagOption information. @@ -342,7 +342,7 @@ extension Servicecatalog { } public struct CreatePortfolioShareInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: true, type: .string), AWSShapeMember(label: "PortfolioId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string) @@ -351,7 +351,7 @@ extension Servicecatalog { public let accountId: String /// The portfolio identifier. public let portfolioId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? public init(accountId: String, portfolioId: String, acceptLanguage: String? = nil) { @@ -368,11 +368,11 @@ extension Servicecatalog { } public struct DescribeConstraintInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The identifier of the constraint. public let id: String @@ -389,7 +389,7 @@ extension Servicecatalog { } public struct ScanProvisionedProductsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisionedProducts", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -409,29 +409,8 @@ extension Servicecatalog { } } - public struct DescribeProductViewOutput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ProductViewSummary", required: false, type: .structure), - AWSShapeMember(label: "ProvisioningArtifacts", required: false, type: .list) - ] - /// The summary metadata about the specified product. - public let productViewSummary: ProductViewSummary? - /// A list of provisioning artifact objects for the specified product. The ProvisioningArtifacts represent the ways in which the specified product can be provisioned. - public let provisioningArtifacts: [ProvisioningArtifact]? - - public init(productViewSummary: ProductViewSummary? = nil, provisioningArtifacts: [ProvisioningArtifact]? = nil) { - self.productViewSummary = productViewSummary - self.provisioningArtifacts = provisioningArtifacts - } - - private enum CodingKeys: String, CodingKey { - case productViewSummary = "ProductViewSummary" - case provisioningArtifacts = "ProvisioningArtifacts" - } - } - public struct ConstraintDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConstraintId", required: false, type: .string), AWSShapeMember(label: "Type", required: false, type: .string), AWSShapeMember(label: "Owner", required: false, type: .string), @@ -461,8 +440,34 @@ extension Servicecatalog { } } + public struct DescribeProductViewOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProductViewSummary", required: false, type: .structure), + AWSShapeMember(label: "ProvisioningArtifacts", required: false, type: .list) + ] + /// The summary metadata about the specified product. + public let productViewSummary: ProductViewSummary? + /// A list of provisioning artifact objects for the specified product. The ProvisioningArtifacts represent the ways in which the specified product can be provisioned. + public let provisioningArtifacts: [ProvisioningArtifact]? + + public init(productViewSummary: ProductViewSummary? = nil, provisioningArtifacts: [ProvisioningArtifact]? = nil) { + self.productViewSummary = productViewSummary + self.provisioningArtifacts = provisioningArtifacts + } + + private enum CodingKeys: String, CodingKey { + case productViewSummary = "ProductViewSummary" + case provisioningArtifacts = "ProvisioningArtifacts" + } + } + + public enum ProvisioningArtifactPropertyName: String, CustomStringConvertible, Codable { + case id = "Id" + public var description: String { return self.rawValue } + } + public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -483,7 +488,7 @@ extension Servicecatalog { } public struct UpdatePortfolioOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PortfolioDetail", required: false, type: .structure), AWSShapeMember(label: "Tags", required: false, type: .list) ] @@ -504,11 +509,11 @@ extension Servicecatalog { } public struct DescribeProductInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The ProductId of the product to describe. public let id: String @@ -525,7 +530,7 @@ extension Servicecatalog { } public struct ListRecordHistoryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordDetails", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -546,7 +551,7 @@ extension Servicecatalog { } public struct ScanProvisionedProductsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "AccessLevelFilter", required: false, type: .structure), @@ -554,7 +559,7 @@ extension Servicecatalog { ] /// The maximum number of items to return in the results. If more results exist than fit in the specified PageSize, the value of NextPageToken in the response is non-null. public let pageSize: Int32? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The access level for obtaining results. If left unspecified, User level access is used. public let accessLevelFilter: AccessLevelFilter? @@ -577,7 +582,7 @@ extension Servicecatalog { } public struct CreatePortfolioInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "ProviderName", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), @@ -589,13 +594,13 @@ extension Servicecatalog { public let description: String? /// The name of the portfolio provider. public let providerName: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// Tags to associate with the new portfolio. public let tags: [Tag]? /// The name to use for display purposes. public let displayName: String - /// A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request. + /// A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request. public let idempotencyToken: String public init(description: String? = nil, providerName: String, acceptLanguage: String? = nil, tags: [Tag]? = nil, displayName: String, idempotencyToken: String) { @@ -618,7 +623,7 @@ extension Servicecatalog { } public struct TagOptionSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -639,7 +644,7 @@ extension Servicecatalog { } public struct ListRecordHistorySearchFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -660,14 +665,14 @@ extension Servicecatalog { } public struct ListPortfoliosInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "PageToken", required: false, type: .string) ] /// The maximum number of items to return in the results. If more results exist than fit in the specified PageSize, the value of NextPageToken in the response is non-null. public let pageSize: Int32? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The page token of the first page retrieved. If null, this retrieves the first page of size PageSize. public let pageToken: String? @@ -685,12 +690,17 @@ extension Servicecatalog { } } + public enum CopyOption: String, CustomStringConvertible, Codable { + case copytags = "CopyTags" + public var description: String { return self.rawValue } + } + public struct AcceptPortfolioShareOutput: AWSShape { } public struct ListLaunchPathsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LaunchPathSummaries", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -711,7 +721,7 @@ extension Servicecatalog { } public struct ListConstraintsForPortfolioOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConstraintDetails", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -732,7 +742,7 @@ extension Servicecatalog { } public struct UpdateProductOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "ProductViewDetail", required: false, type: .structure) ] @@ -753,7 +763,7 @@ extension Servicecatalog { } public struct SearchProductsAsAdminInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SortBy", required: false, type: .enum), AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), @@ -767,7 +777,7 @@ extension Servicecatalog { public let sortBy: ProductViewSortBy? /// The maximum number of items to return in the results. If more results exist than fit in the specified PageSize, the value of NextPageToken in the response is non-null. public let pageSize: Int32? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// Access level of the source of the product. public let productSource: ProductSource? @@ -804,7 +814,7 @@ extension Servicecatalog { } public struct ProvisionProductInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisioningArtifactId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "NotificationArns", required: false, type: .list), @@ -817,7 +827,7 @@ extension Servicecatalog { ] /// The provisioning artifact identifier for this product. This is sometimes referred to as the product version. public let provisioningArtifactId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events. public let notificationArns: [String]? @@ -860,7 +870,7 @@ extension Servicecatalog { } public struct UpdateProvisioningParameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "UsePreviousValue", required: false, type: .boolean) @@ -894,7 +904,7 @@ extension Servicecatalog { } public struct CreateConstraintInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "PortfolioId", required: true, type: .string), AWSShapeMember(label: "Parameters", required: true, type: .string), @@ -903,13 +913,13 @@ extension Servicecatalog { AWSShapeMember(label: "ProductId", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The portfolio identifier. public let portfolioId: String - /// The constraint parameters. Expected values vary depending on which Type is specified. For examples, see the bottom of this topic. For Type LAUNCH, the RoleArn property is required. For Type NOTIFICATION, the NotificationArns property is required. For Type TEMPLATE, the Rules property is required. + /// The constraint parameters. Expected values vary depending on which Type is specified. For more information, see the Examples section. For Type LAUNCH, the RoleArn property is required. For Type NOTIFICATION, the NotificationArns property is required. For Type TEMPLATE, the Rules property is required. public let parameters: String - /// A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request. + /// A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request. public let idempotencyToken: String /// The type of the constraint. Case-sensitive valid values are: LAUNCH, NOTIFICATION, or TEMPLATE. public let `type`: String @@ -946,7 +956,7 @@ extension Servicecatalog { } public struct LaunchPathSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConstraintSummaries", required: false, type: .list), AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "Name", required: false, type: .string), @@ -981,7 +991,7 @@ extension Servicecatalog { } public struct UpdateProvisionedProductInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisioningArtifactId", required: false, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "UpdateToken", required: true, type: .string), @@ -993,7 +1003,7 @@ extension Servicecatalog { ] /// The provisioning artifact identifier for this product. This is sometimes referred to as the product version. public let provisioningArtifactId: String? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The idempotency token that uniquely identifies the provisioning update request. public let updateToken: String @@ -1040,7 +1050,7 @@ extension Servicecatalog { } public struct ProvisioningArtifactParameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParameterType", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "ParameterConstraints", required: false, type: .structure), @@ -1081,7 +1091,7 @@ extension Servicecatalog { } public struct ListPrincipalsForPortfolioOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Principals", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -1102,7 +1112,7 @@ extension Servicecatalog { } public struct DescribeRecordInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "PageToken", required: false, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), @@ -1112,7 +1122,7 @@ extension Servicecatalog { public let pageSize: Int32? /// The page token of the first page retrieved. If null, this retrieves the first page of size PageSize. public let pageToken: String? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The record identifier of the ProvisionedProduct object for which to retrieve output information. This is the RecordDetail.RecordId obtained from the request operation's response. public let id: String @@ -1133,7 +1143,7 @@ extension Servicecatalog { } public struct ListPortfoliosForProductOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PortfolioDetails", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -1154,7 +1164,7 @@ extension Servicecatalog { } public struct CreateConstraintOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConstraintDetail", required: false, type: .structure), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ConstraintParameters", required: false, type: .string) @@ -1180,7 +1190,7 @@ extension Servicecatalog { } public struct ProductViewDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ProductARN", required: false, type: .string), AWSShapeMember(label: "ProductViewSummary", required: false, type: .structure), @@ -1211,7 +1221,7 @@ extension Servicecatalog { } public struct DescribeProvisioningArtifactInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisioningArtifactId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Verbose", required: false, type: .boolean), @@ -1219,7 +1229,7 @@ extension Servicecatalog { ] /// The identifier of the provisioning artifact. This is sometimes referred to as the product version. public let provisioningArtifactId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// Enable a verbose level of details for the provisioning artifact. public let verbose: Bool? @@ -1242,19 +1252,19 @@ extension Servicecatalog { } public struct CreateProvisioningArtifactInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Parameters", required: true, type: .structure), AWSShapeMember(label: "ProductId", required: true, type: .string), AWSShapeMember(label: "IdempotencyToken", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The parameters to use when creating the new provisioning artifact. public let parameters: ProvisioningArtifactProperties /// The product identifier. public let productId: String - /// A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request. + /// A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request. public let idempotencyToken: String public init(acceptLanguage: String? = nil, parameters: ProvisioningArtifactProperties, productId: String, idempotencyToken: String) { @@ -1273,7 +1283,7 @@ extension Servicecatalog { } public struct UpdateConstraintOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConstraintDetail", required: false, type: .structure), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ConstraintParameters", required: false, type: .string) @@ -1306,7 +1316,7 @@ extension Servicecatalog { } public struct DescribeRecordOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordDetail", required: false, type: .structure), AWSShapeMember(label: "RecordOutputs", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) @@ -1332,7 +1342,7 @@ extension Servicecatalog { } public struct UpdateProvisionedProductOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordDetail", required: false, type: .structure) ] /// The detailed result of the UpdateProvisionedProduct request, containing the inputs made to that request, the current state of the request, a pointer to the ProvisionedProduct object that the request is modifying, and a list of any errors that the request encountered. @@ -1348,7 +1358,7 @@ extension Servicecatalog { } public struct ListProvisioningArtifactsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisioningArtifactDetails", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -1369,7 +1379,7 @@ extension Servicecatalog { } public struct TerminateProvisionedProductOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordDetail", required: false, type: .structure) ] /// The detailed result of the TerminateProvisionedProduct request, containing the inputs made to that request, the current state of the request, a pointer to the ProvisionedProduct object that the request is modifying, and a list of any errors that the request encountered. @@ -1385,7 +1395,7 @@ extension Servicecatalog { } public struct ProvisioningParameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -1406,7 +1416,7 @@ extension Servicecatalog { } public struct RecordOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OutputValue", required: false, type: .string), AWSShapeMember(label: "OutputKey", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) @@ -1432,7 +1442,7 @@ extension Servicecatalog { } public struct ProvisioningArtifact: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "CreatedTime", required: false, type: .timestamp), @@ -1463,7 +1473,7 @@ extension Servicecatalog { } public struct DescribeProvisionedProductOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisionedProductDetail", required: false, type: .structure) ] /// Detailed provisioned product information. @@ -1479,7 +1489,7 @@ extension Servicecatalog { } public struct ProvisioningArtifactSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisioningArtifactMetadata", required: false, type: .map), AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -1519,7 +1529,7 @@ extension Servicecatalog { } public struct ListLaunchPathsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "ProductId", required: true, type: .string), @@ -1527,7 +1537,7 @@ extension Servicecatalog { ] /// The maximum number of items to return in the results. If more results exist than fit in the specified PageSize, the value of NextPageToken in the response is non-null. public let pageSize: Int32? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The product identifier. Identifies the product for which to retrieve LaunchPathSummaries information. public let productId: String @@ -1550,7 +1560,7 @@ extension Servicecatalog { } public struct SearchProductsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProductViewAggregations", required: false, type: .map), AWSShapeMember(label: "ProductViewSummaries", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) @@ -1576,7 +1586,7 @@ extension Servicecatalog { } public struct ListTagOptionsFilters: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "Active", required: false, type: .boolean) @@ -1606,7 +1616,7 @@ extension Servicecatalog { } public struct DescribeTagOptionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string) ] /// The identifier of the TagOption. @@ -1626,11 +1636,11 @@ extension Servicecatalog { } public struct DeleteConstraintInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The identifier of the constraint to delete. public let id: String @@ -1646,12 +1656,28 @@ extension Servicecatalog { } } + public struct CopyProductOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CopyProductToken", required: false, type: .string) + ] + /// A unique token to pass to DescribeCopyProductStatus to track the progress of the operation. + public let copyProductToken: String? + + public init(copyProductToken: String? = nil) { + self.copyProductToken = copyProductToken + } + + private enum CodingKeys: String, CodingKey { + case copyProductToken = "CopyProductToken" + } + } + public struct DescribeProductViewInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The ProductViewId of the product to describe. public let id: String @@ -1668,7 +1694,7 @@ extension Servicecatalog { } public struct DeleteProvisioningArtifactInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisioningArtifactId", required: true, type: .string), AWSShapeMember(label: "ProductId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string) @@ -1677,7 +1703,7 @@ extension Servicecatalog { public let provisioningArtifactId: String /// The product identifier. public let productId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? public init(provisioningArtifactId: String, productId: String, acceptLanguage: String? = nil) { @@ -1694,7 +1720,7 @@ extension Servicecatalog { } public struct ParameterConstraints: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AllowedValues", required: false, type: .list) ] /// The values that the administrator has allowed for the parameter. @@ -1715,7 +1741,7 @@ extension Servicecatalog { } public struct ListPortfoliosForProductInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "ProductId", required: true, type: .string), @@ -1723,7 +1749,7 @@ extension Servicecatalog { ] /// The maximum number of items to return in the results. If more results exist than fit in the specified PageSize, the value of NextPageToken in the response is non-null. public let pageSize: Int32? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The product identifier. public let productId: String @@ -1746,7 +1772,7 @@ extension Servicecatalog { } public struct PortfolioDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DisplayName", required: false, type: .string), AWSShapeMember(label: "ProviderName", required: false, type: .string), AWSShapeMember(label: "ARN", required: false, type: .string), @@ -1787,7 +1813,7 @@ extension Servicecatalog { } public struct CreateTagOptionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagOptionDetail", required: false, type: .structure) ] /// The resulting detailed TagOption information. @@ -1803,7 +1829,7 @@ extension Servicecatalog { } public struct DescribeProvisioningParametersInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisioningArtifactId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "ProductId", required: true, type: .string), @@ -1811,7 +1837,7 @@ extension Servicecatalog { ] /// The provisioning artifact identifier for this product. This is sometimes referred to as the product version. public let provisioningArtifactId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The product identifier. public let productId: String @@ -1834,7 +1860,7 @@ extension Servicecatalog { } public struct SearchProductsAsAdminOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProductViewDetails", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -1855,7 +1881,7 @@ extension Servicecatalog { } public struct ProductViewAggregationValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "ApproximateCount", required: false, type: .integer) ] @@ -1876,7 +1902,7 @@ extension Servicecatalog { } public struct ResourceDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "ARN", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -1912,14 +1938,14 @@ extension Servicecatalog { } public struct ListAcceptedPortfolioSharesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "PageToken", required: false, type: .string) ] /// The maximum number of items to return in the results. If more results exist than fit in the specified PageSize, the value of NextPageToken in the response is non-null. public let pageSize: Int32? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The page token of the first page retrieved. If null, this retrieves the first page of size PageSize. public let pageToken: String? @@ -1938,7 +1964,7 @@ extension Servicecatalog { } public struct SearchProductsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "SortBy", required: false, type: .enum), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), @@ -1950,7 +1976,7 @@ extension Servicecatalog { public let pageSize: Int32? /// The sort field specifier. If no value is specified, results are not sorted. public let sortBy: ProductViewSortBy? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The list of filters with which to limit search results. If no search filters are specified, the output is all the products to which the calling user has access. public let filters: [ProductViewFilterBy: [String]]? @@ -1979,7 +2005,7 @@ extension Servicecatalog { } public struct RecordError: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] @@ -2000,14 +2026,14 @@ extension Servicecatalog { } public struct UpdateConstraintInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] /// The updated text description of the constraint. public let description: String? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The identifier of the constraint to update. public let id: String @@ -2026,7 +2052,7 @@ extension Servicecatalog { } public struct ProvisionedProductDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "Arn", required: false, type: .string), AWSShapeMember(label: "LastRecordId", required: false, type: .string), @@ -2045,7 +2071,7 @@ extension Servicecatalog { public let lastRecordId: String? /// The user-friendly name of the ProvisionedProduct object. public let name: String? - /// A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request. + /// A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request. public let idempotencyToken: String? /// The type of the ProvisionedProduct object. public let `type`: String? @@ -2082,7 +2108,7 @@ extension Servicecatalog { } public struct ProvisionProductOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecordDetail", required: false, type: .structure) ] /// The detailed result of the ProvisionProduct request, containing the inputs made to that request, the current state of the request, a pointer to the ProvisionedProduct object of the request, and a list of any errors that the request encountered. @@ -2098,11 +2124,11 @@ extension Servicecatalog { } public struct DeleteProductInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The identifier of the product for the delete request. public let id: String @@ -2119,7 +2145,7 @@ extension Servicecatalog { } public struct ListResourcesForTagOptionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceDetails", required: false, type: .list), AWSShapeMember(label: "PageToken", required: false, type: .string) ] @@ -2140,13 +2166,13 @@ extension Servicecatalog { } public struct ListProvisioningArtifactsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProductId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string) ] /// The product identifier. public let productId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? public init(productId: String, acceptLanguage: String? = nil) { @@ -2161,7 +2187,7 @@ extension Servicecatalog { } public struct ListRecordHistoryInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "AccessLevelFilter", required: false, type: .structure), @@ -2170,7 +2196,7 @@ extension Servicecatalog { ] /// The maximum number of items to return in the results. If more results exist than fit in the specified PageSize, the value of NextPageToken in the response is non-null. public let pageSize: Int32? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The access level for obtaining results. If left unspecified, User level access is used. public let accessLevelFilter: AccessLevelFilter? @@ -2197,13 +2223,13 @@ extension Servicecatalog { } public struct AssociateProductWithPortfolioInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "SourcePortfolioId", required: false, type: .string), AWSShapeMember(label: "PortfolioId", required: true, type: .string), AWSShapeMember(label: "ProductId", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The identifier of the source portfolio to use with this association. public let sourcePortfolioId: String? @@ -2228,7 +2254,7 @@ extension Servicecatalog { } public struct UpdateProductInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string), AWSShapeMember(label: "RemoveTags", required: false, type: .list), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), @@ -2245,7 +2271,7 @@ extension Servicecatalog { public let id: String /// Tags to remove from the existing list of tags associated with the product. public let removeTags: [String]? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The updated support email for the product. public let supportEmail: String? @@ -2293,6 +2319,13 @@ extension Servicecatalog { } } + public enum CopyProductStatus: String, CustomStringConvertible, Codable { + case succeeded = "SUCCEEDED" + case inProgress = "IN_PROGRESS" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + public enum ProductViewSortBy: String, CustomStringConvertible, Codable { case title = "Title" case versioncount = "VersionCount" @@ -2301,7 +2334,7 @@ extension Servicecatalog { } public struct TerminateProvisionedProductInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IgnoreErrors", required: false, type: .boolean), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "TerminateToken", required: true, type: .string), @@ -2310,7 +2343,7 @@ extension Servicecatalog { ] /// If set to true, AWS Service Catalog stops managing the specified ProvisionedProduct object even if it cannot delete the underlying resources. public let ignoreErrors: Bool? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// An idempotency token that uniquely identifies the termination request. This token is only valid during the termination process. After the ProvisionedProduct object is terminated, further requests to terminate the same ProvisionedProduct object always return ResourceNotFound regardless of the value of TerminateToken. public let terminateToken: String @@ -2347,7 +2380,7 @@ extension Servicecatalog { } public struct UpdateProvisioningArtifactInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisioningArtifactId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "ProductId", required: true, type: .string), @@ -2356,7 +2389,7 @@ extension Servicecatalog { ] /// The identifier of the provisioning artifact for the update request. This is sometimes referred to as the product version. public let provisioningArtifactId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The product identifier. public let productId: String @@ -2383,7 +2416,7 @@ extension Servicecatalog { } public struct CreatePortfolioOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PortfolioDetail", required: false, type: .structure), AWSShapeMember(label: "Tags", required: false, type: .list) ] @@ -2404,7 +2437,7 @@ extension Servicecatalog { } public struct DescribePortfolioOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PortfolioDetail", required: false, type: .structure), AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "TagOptions", required: false, type: .list) @@ -2437,7 +2470,7 @@ extension Servicecatalog { } public struct AccessLevelFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .enum) ] @@ -2458,7 +2491,7 @@ extension Servicecatalog { } public struct TagOptionDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Active", required: false, type: .boolean), @@ -2489,7 +2522,7 @@ extension Servicecatalog { } public struct ConstraintSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] @@ -2510,7 +2543,7 @@ extension Servicecatalog { } public struct ProductViewSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "HasDefaultPath", required: false, type: .boolean), AWSShapeMember(label: "ShortDescription", required: false, type: .string), AWSShapeMember(label: "Id", required: false, type: .string), @@ -2585,7 +2618,7 @@ extension Servicecatalog { } public struct UpdateProvisioningArtifactOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ProvisioningArtifactDetail", required: false, type: .structure), AWSShapeMember(label: "Info", required: false, type: .map) @@ -2611,13 +2644,13 @@ extension Servicecatalog { } public struct RejectPortfolioShareInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PortfolioId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string) ] /// The portfolio identifier. public let portfolioId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? public init(portfolioId: String, acceptLanguage: String? = nil) { @@ -2632,7 +2665,7 @@ extension Servicecatalog { } public struct ListTagOptionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagOptionDetails", required: false, type: .list), AWSShapeMember(label: "PageToken", required: false, type: .string) ] @@ -2652,8 +2685,29 @@ extension Servicecatalog { } } + public struct DescribeCopyProductStatusInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CopyProductToken", required: true, type: .string), + AWSShapeMember(label: "AcceptLanguage", required: false, type: .string) + ] + /// The token returned from the call to CopyProduct that initiated the operation. + public let copyProductToken: String + /// The language code. en - English (default) jp - Japanese zh - Chinese + public let acceptLanguage: String? + + public init(copyProductToken: String, acceptLanguage: String? = nil) { + self.copyProductToken = copyProductToken + self.acceptLanguage = acceptLanguage + } + + private enum CodingKeys: String, CodingKey { + case copyProductToken = "CopyProductToken" + case acceptLanguage = "AcceptLanguage" + } + } + public struct DescribeConstraintOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConstraintDetail", required: false, type: .structure), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ConstraintParameters", required: false, type: .string) @@ -2686,7 +2740,7 @@ extension Servicecatalog { } public struct Principal: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrincipalARN", required: false, type: .string), AWSShapeMember(label: "PrincipalType", required: false, type: .enum) ] @@ -2707,7 +2761,7 @@ extension Servicecatalog { } public struct ListTagOptionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "Filters", required: false, type: .structure), AWSShapeMember(label: "PageToken", required: false, type: .string) @@ -2733,7 +2787,7 @@ extension Servicecatalog { } public struct UpdateTagOptionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagOptionDetail", required: false, type: .structure) ] /// The resulting detailed TagOption information. @@ -2749,7 +2803,7 @@ extension Servicecatalog { } public struct ProvisioningArtifactDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Name", required: false, type: .string), @@ -2789,7 +2843,7 @@ extension Servicecatalog { } public struct ListConstraintsForPortfolioInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "PortfolioId", required: true, type: .string), @@ -2798,7 +2852,7 @@ extension Servicecatalog { ] /// The maximum number of items to return in the results. If more results exist than fit in the specified PageSize, the value of NextPageToken in the response is non-null. public let pageSize: Int32? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The portfolio identifier. public let portfolioId: String @@ -2825,7 +2879,7 @@ extension Servicecatalog { } public struct DisassociateProductFromPortfolioInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PortfolioId", required: true, type: .string), AWSShapeMember(label: "ProductId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string) @@ -2834,7 +2888,7 @@ extension Servicecatalog { public let portfolioId: String /// The product identifier. public let productId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? public init(portfolioId: String, productId: String, acceptLanguage: String? = nil) { @@ -2855,7 +2909,7 @@ extension Servicecatalog { } public struct ListPortfoliosOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PortfolioDetails", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -2876,7 +2930,7 @@ extension Servicecatalog { } public struct ListPrincipalsForPortfolioInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PageSize", required: false, type: .integer), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "PortfolioId", required: true, type: .string), @@ -2884,7 +2938,7 @@ extension Servicecatalog { ] /// The maximum number of items to return in the results. If more results exist than fit in the specified PageSize, the value of NextPageToken in the response is non-null. public let pageSize: Int32? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The portfolio identifier. public let portfolioId: String @@ -2906,6 +2960,52 @@ extension Servicecatalog { } } + public struct CopyProductInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TargetProductId", required: false, type: .string), + AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), + AWSShapeMember(label: "TargetProductName", required: false, type: .string), + AWSShapeMember(label: "IdempotencyToken", required: true, type: .string), + AWSShapeMember(label: "SourceProvisioningArtifactIdentifiers", required: false, type: .list), + AWSShapeMember(label: "SourceProductArn", required: true, type: .string), + AWSShapeMember(label: "CopyOptions", required: false, type: .list) + ] + /// The ID of the target product. By default, a new product is created. + public let targetProductId: String? + /// The language code. en - English (default) jp - Japanese zh - Chinese + public let acceptLanguage: String? + /// A name for the target product. The default is the name of the source product. + public let targetProductName: String? + /// A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request. + public let idempotencyToken: String + /// The IDs of the product versions to copy. By default, all provisioning artifacts are copied. + public let sourceProvisioningArtifactIdentifiers: [[ProvisioningArtifactPropertyName: String]]? + /// The Amazon Resource Name (ARN) of the source product. + public let sourceProductArn: String + /// The copy options. If the value is CopyTags, the tags from the source product are copied to the target product. + public let copyOptions: [CopyOption]? + + public init(targetProductId: String? = nil, acceptLanguage: String? = nil, targetProductName: String? = nil, idempotencyToken: String, sourceProvisioningArtifactIdentifiers: [[ProvisioningArtifactPropertyName: String]]? = nil, sourceProductArn: String, copyOptions: [CopyOption]? = nil) { + self.targetProductId = targetProductId + self.acceptLanguage = acceptLanguage + self.targetProductName = targetProductName + self.idempotencyToken = idempotencyToken + self.sourceProvisioningArtifactIdentifiers = sourceProvisioningArtifactIdentifiers + self.sourceProductArn = sourceProductArn + self.copyOptions = copyOptions + } + + private enum CodingKeys: String, CodingKey { + case targetProductId = "TargetProductId" + case acceptLanguage = "AcceptLanguage" + case targetProductName = "TargetProductName" + case idempotencyToken = "IdempotencyToken" + case sourceProvisioningArtifactIdentifiers = "SourceProvisioningArtifactIdentifiers" + case sourceProductArn = "SourceProductArn" + case copyOptions = "CopyOptions" + } + } + public struct DeleteProvisioningArtifactOutput: AWSShape { } @@ -2914,8 +3014,34 @@ extension Servicecatalog { } + public struct DescribeCopyProductStatusOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CopyProductStatus", required: false, type: .enum), + AWSShapeMember(label: "StatusDetail", required: false, type: .string), + AWSShapeMember(label: "TargetProductId", required: false, type: .string) + ] + /// The status of the copy product operation. + public let copyProductStatus: CopyProductStatus? + /// The status message. + public let statusDetail: String? + /// The ID of the copied product. + public let targetProductId: String? + + public init(copyProductStatus: CopyProductStatus? = nil, statusDetail: String? = nil, targetProductId: String? = nil) { + self.copyProductStatus = copyProductStatus + self.statusDetail = statusDetail + self.targetProductId = targetProductId + } + + private enum CodingKeys: String, CodingKey { + case copyProductStatus = "CopyProductStatus" + case statusDetail = "StatusDetail" + case targetProductId = "TargetProductId" + } + } + public struct DescribeProductOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProductViewSummary", required: false, type: .structure), AWSShapeMember(label: "ProvisioningArtifacts", required: false, type: .list) ] @@ -2936,7 +3062,7 @@ extension Servicecatalog { } public struct RecordDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProvisioningArtifactId", required: false, type: .string), AWSShapeMember(label: "UpdatedTime", required: false, type: .timestamp), AWSShapeMember(label: "ProvisionedProductName", required: false, type: .string), @@ -3012,7 +3138,7 @@ extension Servicecatalog { } public struct DescribeProvisioningArtifactOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ProvisioningArtifactDetail", required: false, type: .structure), AWSShapeMember(label: "Info", required: false, type: .map) @@ -3038,7 +3164,7 @@ extension Servicecatalog { } public struct DisassociateTagOptionFromResourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "TagOptionId", required: true, type: .string) ] @@ -3059,7 +3185,7 @@ extension Servicecatalog { } public struct AssociateTagOptionWithResourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "TagOptionId", required: true, type: .string) ] @@ -3084,13 +3210,13 @@ extension Servicecatalog { } public struct AcceptPortfolioShareInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PortfolioId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string) ] /// The portfolio identifier. public let portfolioId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? public init(portfolioId: String, acceptLanguage: String? = nil) { @@ -3105,7 +3231,7 @@ extension Servicecatalog { } public struct RecordTag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: false, type: .string) ] @@ -3126,7 +3252,7 @@ extension Servicecatalog { } public struct ListAcceptedPortfolioSharesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PortfolioDetails", required: false, type: .list), AWSShapeMember(label: "NextPageToken", required: false, type: .string) ] @@ -3147,7 +3273,7 @@ extension Servicecatalog { } public struct UpdatePortfolioInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string), AWSShapeMember(label: "RemoveTags", required: false, type: .list), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), @@ -3160,7 +3286,7 @@ extension Servicecatalog { public let id: String /// Tags to remove from the existing list of tags associated with the portfolio. public let removeTags: [String]? - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The name to use for display purposes. public let displayName: String? @@ -3197,7 +3323,7 @@ extension Servicecatalog { } public struct AssociatePrincipalWithPortfolioInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrincipalARN", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "PrincipalType", required: true, type: .enum), @@ -3205,7 +3331,7 @@ extension Servicecatalog { ] /// The ARN representing the principal (IAM user, role, or group). public let principalARN: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The principal type. Must be IAM public let principalType: PrincipalType @@ -3228,11 +3354,11 @@ extension Servicecatalog { } public struct DescribeProductAsAdminInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The identifier of the product for which to retrieve information. public let id: String @@ -3249,11 +3375,11 @@ extension Servicecatalog { } public struct DescribePortfolioInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// The identifier of the portfolio for which to retrieve information. public let id: String @@ -3270,7 +3396,7 @@ extension Servicecatalog { } public struct CreateProductInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AcceptLanguage", required: false, type: .string), AWSShapeMember(label: "SupportEmail", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), @@ -3284,7 +3410,7 @@ extension Servicecatalog { AWSShapeMember(label: "SupportDescription", required: false, type: .string), AWSShapeMember(label: "Description", required: false, type: .string) ] - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? /// Contact email for product support. public let supportEmail: String? @@ -3292,7 +3418,7 @@ extension Servicecatalog { public let name: String /// The distributor of the product. public let distributor: String? - /// A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request. + /// A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request. public let idempotencyToken: String /// The type of the product to create. public let productType: ProductType @@ -3341,7 +3467,7 @@ extension Servicecatalog { } public struct CreateProvisioningArtifactOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ProvisioningArtifactDetail", required: false, type: .structure), AWSShapeMember(label: "Info", required: false, type: .map) @@ -3367,13 +3493,13 @@ extension Servicecatalog { } public struct ListPortfolioAccessInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PortfolioId", required: true, type: .string), AWSShapeMember(label: "AcceptLanguage", required: false, type: .string) ] /// The portfolio identifier. public let portfolioId: String - /// The language code to use for this operation. Supported language codes are as follows: "en" (English) "jp" (Japanese) "zh" (Chinese) If no code is specified, "en" is used as the default. + /// The language code. en - English (default) jp - Japanese zh - Chinese public let acceptLanguage: String? public init(portfolioId: String, acceptLanguage: String? = nil) { @@ -3388,7 +3514,7 @@ extension Servicecatalog { } public struct UpdateTagOptionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Active", required: false, type: .boolean), AWSShapeMember(label: "Id", required: true, type: .string) diff --git a/Sources/AWSSDKSwift/Services/shield/Shield_API.swift b/Sources/AWSSDKSwift/Services/shield/Shield_API.swift index 17be85a333c..7870f632f5c 100644 --- a/Sources/AWSSDKSwift/Services/shield/Shield_API.swift +++ b/Sources/AWSSDKSwift/Services/shield/Shield_API.swift @@ -40,9 +40,9 @@ public struct Shield { return try client.send(operation: "DescribeAttack", path: "/", httpMethod: "POST", input: input) } - /// Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Elastic Load Balancing load balancer, or an Amazon Route 53 hosted zone. - public func createProtection(_ input: CreateProtectionRequest) throws -> CreateProtectionResponse { - return try client.send(operation: "CreateProtection", path: "/", httpMethod: "POST", input: input) + /// Returns the SubscriptionState, either Active or Inactive. + public func getSubscriptionState(_ input: GetSubscriptionStateRequest) throws -> GetSubscriptionStateResponse { + return try client.send(operation: "GetSubscriptionState", path: "/", httpMethod: "POST", input: input) } /// Lists the details of a Protection object. @@ -50,6 +50,11 @@ public struct Shield { return try client.send(operation: "DescribeProtection", path: "/", httpMethod: "POST", input: input) } + /// Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Elastic Load Balancing load balancer, Elastic IP Address, or an Amazon Route 53 hosted zone. + public func createProtection(_ input: CreateProtectionRequest) throws -> CreateProtectionResponse { + return try client.send(operation: "CreateProtection", path: "/", httpMethod: "POST", input: input) + } + /// Deletes an AWS Shield Advanced Protection. public func deleteProtection(_ input: DeleteProtectionRequest) throws -> DeleteProtectionResponse { return try client.send(operation: "DeleteProtection", path: "/", httpMethod: "POST", input: input) @@ -60,7 +65,7 @@ public struct Shield { return try client.send(operation: "DescribeSubscription", path: "/", httpMethod: "POST", input: input) } - /// Removes AWS Shield Advanced from an account. + /// Removes AWS Shield Advanced from an account. AWS Shield Advanced requires a 1-year subscription commitment. You cannot delete a subscription prior to the completion of that commitment. public func deleteSubscription(_ input: DeleteSubscriptionRequest) throws -> DeleteSubscriptionResponse { return try client.send(operation: "DeleteSubscription", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/shield/Shield_Error.swift b/Sources/AWSSDKSwift/Services/shield/Shield_Error.swift index fbfd79d5c6f..db5e95cf591 100644 --- a/Sources/AWSSDKSwift/Services/shield/Shield_Error.swift +++ b/Sources/AWSSDKSwift/Services/shield/Shield_Error.swift @@ -8,10 +8,10 @@ public enum ShieldError: AWSErrorType { case resourceAlreadyExistsException(message: String?) case invalidParameterException(message: String?) case invalidOperationException(message: String?) + case resourceNotFoundException(message: String?) case invalidResourceException(message: String?) case limitsExceededException(message: String?) case optimisticLockException(message: String?) - case resourceNotFoundException(message: String?) case lockedSubscriptionException(message: String?) } @@ -30,14 +30,14 @@ extension ShieldError { self = .invalidParameterException(message: message) case "InvalidOperationException": self = .invalidOperationException(message: message) + case "ResourceNotFoundException": + self = .resourceNotFoundException(message: message) case "InvalidResourceException": self = .invalidResourceException(message: message) case "LimitsExceededException": self = .limitsExceededException(message: message) case "OptimisticLockException": self = .optimisticLockException(message: message) - case "ResourceNotFoundException": - self = .resourceNotFoundException(message: message) case "LockedSubscriptionException": self = .lockedSubscriptionException(message: message) default: diff --git a/Sources/AWSSDKSwift/Services/shield/Shield_Shapes.swift b/Sources/AWSSDKSwift/Services/shield/Shield_Shapes.swift index 8d824e20565..fc1973e1739 100644 --- a/Sources/AWSSDKSwift/Services/shield/Shield_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/shield/Shield_Shapes.swift @@ -5,6 +5,42 @@ import AWSSDKSwiftCore extension Shield { + public struct AttackProperty: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Unit", required: false, type: .enum), + AWSShapeMember(label: "TopContributors", required: false, type: .list), + AWSShapeMember(label: "AttackLayer", required: false, type: .enum), + AWSShapeMember(label: "Total", required: false, type: .long), + AWSShapeMember(label: "AttackPropertyIdentifier", required: false, type: .enum) + ] + /// The unit of the Value of the contributions. + public let unit: Unit? + /// The array of Contributor objects that includes the top five contributors to an attack. + public let topContributors: [Contributor]? + /// The type of DDoS event that was observed. NETWORK indicates layer 3 and layer 4 events and APPLICATION indicates layer 7 events. + public let attackLayer: AttackLayer? + /// The total contributions made to this attack by all contributors, not just the five listed in the TopContributors list. + public let total: Int64? + /// Defines the DDoS attack property information that is provided. + public let attackPropertyIdentifier: AttackPropertyIdentifier? + + public init(unit: Unit? = nil, topContributors: [Contributor]? = nil, attackLayer: AttackLayer? = nil, total: Int64? = nil, attackPropertyIdentifier: AttackPropertyIdentifier? = nil) { + self.unit = unit + self.topContributors = topContributors + self.attackLayer = attackLayer + self.total = total + self.attackPropertyIdentifier = attackPropertyIdentifier + } + + private enum CodingKeys: String, CodingKey { + case unit = "Unit" + case topContributors = "TopContributors" + case attackLayer = "AttackLayer" + case total = "Total" + case attackPropertyIdentifier = "AttackPropertyIdentifier" + } + } + public enum SubResourceType: String, CustomStringConvertible, Codable { case ip = "IP" case url = "URL" @@ -12,7 +48,7 @@ extension Shield { } public struct Protection: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Id", required: false, type: .string) @@ -42,16 +78,16 @@ extension Shield { } public struct AttackSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "EndTime", required: false, type: .timestamp), AWSShapeMember(label: "ResourceArn", required: false, type: .string), AWSShapeMember(label: "AttackVectors", required: false, type: .list), AWSShapeMember(label: "AttackId", required: false, type: .string) ] - /// The start time of the attack, in the format 2016-12-16T13:50Z. + /// The start time of the attack, in Unix time in seconds. For more information see timestamp. public let startTime: TimeStamp? - /// The end time of the attack, in the format 2016-12-16T13:50Z. + /// The end time of the attack, in Unix time in seconds. For more information see timestamp. public let endTime: TimeStamp? /// The ARN (Amazon Resource Name) of the resource that was attacked. public let resourceArn: String? @@ -78,11 +114,11 @@ extension Shield { } public struct Subscription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "TimeCommitmentInSeconds", required: false, type: .long) ] - /// The start time of the subscription, in the format "2016-12-16T13:50Z". + /// The start time of the subscription, in Unix time in seconds. For more information see timestamp. public let startTime: TimeStamp? /// The length, in seconds, of the AWS Shield Advanced subscription for the account. public let timeCommitmentInSeconds: Int64? @@ -98,23 +134,30 @@ extension Shield { } } + public enum AttackLayer: String, CustomStringConvertible, Codable { + case network = "NETWORK" + case application = "APPLICATION" + public var description: String { return self.rawValue } + } + public struct AttackDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "Mitigations", required: false, type: .list), AWSShapeMember(label: "ResourceArn", required: false, type: .string), AWSShapeMember(label: "EndTime", required: false, type: .timestamp), AWSShapeMember(label: "SubResources", required: false, type: .list), AWSShapeMember(label: "AttackCounters", required: false, type: .list), - AWSShapeMember(label: "AttackId", required: false, type: .string) + AWSShapeMember(label: "AttackId", required: false, type: .string), + AWSShapeMember(label: "AttackProperties", required: false, type: .list) ] - /// The time the attack started, in the format 2016-12-16T13:50Z. + /// The time the attack started, in Unix time in seconds. For more information see timestamp. public let startTime: TimeStamp? /// List of mitigation actions taken for the attack. public let mitigations: [Mitigation]? /// The ARN (Amazon Resource Name) of the resource that was attacked. public let resourceArn: String? - /// The time the attack ended, in the format 2016-12-16T13:50Z. + /// The time the attack ended, in Unix time in seconds. For more information see timestamp. public let endTime: TimeStamp? /// If applicable, additional detail about the resource being attacked, for example, IP address or URL. public let subResources: [SubResourceSummary]? @@ -122,8 +165,10 @@ extension Shield { public let attackCounters: [SummarizedCounter]? /// The unique identifier (ID) of the attack. public let attackId: String? + /// The array of AttackProperty objects. + public let attackProperties: [AttackProperty]? - public init(startTime: TimeStamp? = nil, mitigations: [Mitigation]? = nil, resourceArn: String? = nil, endTime: TimeStamp? = nil, subResources: [SubResourceSummary]? = nil, attackCounters: [SummarizedCounter]? = nil, attackId: String? = nil) { + public init(startTime: TimeStamp? = nil, mitigations: [Mitigation]? = nil, resourceArn: String? = nil, endTime: TimeStamp? = nil, subResources: [SubResourceSummary]? = nil, attackCounters: [SummarizedCounter]? = nil, attackId: String? = nil, attackProperties: [AttackProperty]? = nil) { self.startTime = startTime self.mitigations = mitigations self.resourceArn = resourceArn @@ -131,6 +176,7 @@ extension Shield { self.subResources = subResources self.attackCounters = attackCounters self.attackId = attackId + self.attackProperties = attackProperties } private enum CodingKeys: String, CodingKey { @@ -141,11 +187,28 @@ extension Shield { case subResources = "SubResources" case attackCounters = "AttackCounters" case attackId = "AttackId" + case attackProperties = "AttackProperties" + } + } + + public struct GetSubscriptionStateResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SubscriptionState", required: true, type: .enum) + ] + /// The status of the subscription. + public let subscriptionState: SubscriptionState + + public init(subscriptionState: SubscriptionState) { + self.subscriptionState = subscriptionState + } + + private enum CodingKeys: String, CodingKey { + case subscriptionState = "SubscriptionState" } } public struct ListAttacksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "AttackSummaries", required: false, type: .list) ] @@ -166,7 +229,7 @@ extension Shield { } public struct DescribeAttackResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attack", required: false, type: .structure) ] /// The attack that is described. @@ -182,7 +245,7 @@ extension Shield { } public struct ListProtectionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Protections", required: false, type: .list) ] @@ -203,7 +266,7 @@ extension Shield { } public struct SummarizedCounter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Unit", required: false, type: .string), AWSShapeMember(label: "Average", required: false, type: .double), AWSShapeMember(label: "N", required: false, type: .integer), @@ -243,14 +306,35 @@ extension Shield { } } + public struct Contributor: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: false, type: .long), + AWSShapeMember(label: "Name", required: false, type: .string) + ] + /// The contribution of this contributor expressed in Protection units. For example 10,000. + public let value: Int64? + /// The name of the contributor. This is dependent on the AttackPropertyIdentifier. For example, if the AttackPropertyIdentifier is SOURCE_COUNTRY, the Name could be United States. + public let name: String? + + public init(value: Int64? = nil, name: String? = nil) { + self.value = value + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case name = "Name" + } + } + public struct CreateProtectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "ResourceArn", required: true, type: .string) ] /// Friendly name for the Protection you are creating. public let name: String - /// The ARN (Amazon Resource Name) of the resource to be protected. + /// The ARN (Amazon Resource Name) of the resource to be protected. The ARN should be in one of the following formats: For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id For an Elastic Load Balancer (Classic Load Balancer): arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name For AWS CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id For Amazon Route 53: arn:aws:route53::account-id:hostedzone/hosted-zone-id For an Elastic IP address: arn:aws:ec2:region:account-id:eip-allocation/allocation-id public let resourceArn: String public init(name: String, resourceArn: String) { @@ -264,24 +348,12 @@ extension Shield { } } - public struct DescribeProtectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ProtectionId", required: true, type: .string) - ] - /// The unique identifier (ID) for the Protection object that is described. - public let protectionId: String + public struct GetSubscriptionStateRequest: AWSShape { - public init(protectionId: String) { - self.protectionId = protectionId - } - - private enum CodingKeys: String, CodingKey { - case protectionId = "ProtectionId" - } } public struct DescribeAttackRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttackId", required: true, type: .string) ] /// The unique identifier (ID) for the attack that to be described. @@ -297,7 +369,7 @@ extension Shield { } public struct DescribeProtectionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Protection", required: false, type: .structure) ] /// The Protection object that is described. @@ -312,8 +384,24 @@ extension Shield { } } + public struct DescribeProtectionRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ProtectionId", required: true, type: .string) + ] + /// The unique identifier (ID) for the Protection object that is described. + public let protectionId: String + + public init(protectionId: String) { + self.protectionId = protectionId + } + + private enum CodingKeys: String, CodingKey { + case protectionId = "ProtectionId" + } + } + public struct DeleteProtectionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProtectionId", required: true, type: .string) ] /// The unique identifier (ID) for the Protection object to be deleted. @@ -333,13 +421,13 @@ extension Shield { } public struct TimeRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ToExclusive", required: false, type: .timestamp), AWSShapeMember(label: "FromInclusive", required: false, type: .timestamp) ] - /// The end time, in the format 2016-12-16T15:50Z. + /// The end time, in Unix time in seconds. For more information see timestamp. public let toExclusive: TimeStamp? - /// The start time, in the format 2016-12-16T13:50Z. + /// The start time, in Unix time in seconds. For more information see timestamp. public let fromInclusive: TimeStamp? public init(toExclusive: TimeStamp? = nil, fromInclusive: TimeStamp? = nil) { @@ -358,7 +446,7 @@ extension Shield { } public struct CreateProtectionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProtectionId", required: false, type: .string) ] /// The unique identifier (ID) for the Protection object that is created. @@ -374,7 +462,7 @@ extension Shield { } public struct SummarizedAttackVector: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VectorCounters", required: false, type: .list), AWSShapeMember(label: "VectorType", required: true, type: .string) ] @@ -395,7 +483,7 @@ extension Shield { } public struct Mitigation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MitigationName", required: false, type: .string) ] /// The name of the mitigation taken for this attack. @@ -411,7 +499,7 @@ extension Shield { } public struct DescribeSubscriptionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subscription", required: false, type: .structure) ] /// The AWS Shield Advanced subscription details for an account. @@ -431,18 +519,18 @@ extension Shield { } public struct ListAttacksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .structure), AWSShapeMember(label: "ResourceArns", required: false, type: .list), AWSShapeMember(label: "EndTime", required: false, type: .structure), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// The time period for the attacks. + /// The start of the time period for the attacks. This is a timestamp type. The sample request above indicates a number type because the default used by WAF is Unix time in seconds. However any valid timestamp format is allowed. public let startTime: TimeRange? /// The ARN (Amazon Resource Name) of the resource that was attacked. If this is left blank, all applicable resources for this account will be included. public let resourceArns: [String]? - /// The end of the time period for the attacks. + /// The end of the time period for the attacks. This is a timestamp type. The sample request above indicates a number type because the default used by WAF is Unix time in seconds. However any valid timestamp format is allowed. public let endTime: TimeRange? /// The ListAttacksRequest.NextMarker value from a previous call to ListAttacksRequest. Pass null if this is the first call. public let nextToken: String? @@ -467,10 +555,10 @@ extension Shield { } public struct AttackVectorDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VectorType", required: true, type: .string) ] - /// The attack type, for example, SNMP reflection or SYN flood. + /// The attack type. Valid values: UDP_TRAFFIC UDP_FRAGMENT GENERIC_UDP_REFLECTION DNS_REFLECTION NTP_REFLECTION CHARGEN_REFLECTION SSDP_REFLECTION PORT_MAPPER RIP_REFLECTION SNMP_REFLECTION MSSQL_REFLECTION NET_BIOS_REFLECTION SYN_FLOOD ACK_FLOOD REQUEST_FLOOD public let vectorType: String public init(vectorType: String) { @@ -482,8 +570,26 @@ extension Shield { } } + public enum AttackPropertyIdentifier: String, CustomStringConvertible, Codable { + case destinationUrl = "DESTINATION_URL" + case referrer = "REFERRER" + case sourceAsn = "SOURCE_ASN" + case sourceCountry = "SOURCE_COUNTRY" + case sourceIpAddress = "SOURCE_IP_ADDRESS" + case sourceUserAgent = "SOURCE_USER_AGENT" + public var description: String { return self.rawValue } + } + + public enum Unit: String, CustomStringConvertible, Codable { + case bits = "BITS" + case bytes = "BYTES" + case packets = "PACKETS" + case requests = "REQUESTS" + public var description: String { return self.rawValue } + } + public struct SubResourceSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Counters", required: false, type: .list), AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "AttackVectors", required: false, type: .list), @@ -514,7 +620,7 @@ extension Shield { } public struct ListProtectionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -534,6 +640,12 @@ extension Shield { } } + public enum SubscriptionState: String, CustomStringConvertible, Codable { + case active = "ACTIVE" + case inactive = "INACTIVE" + public var description: String { return self.rawValue } + } + public struct DescribeSubscriptionRequest: AWSShape { } diff --git a/Sources/AWSSDKSwift/Services/sms/Sms_Shapes.swift b/Sources/AWSSDKSwift/Services/sms/Sms_Shapes.swift index b61024dc67f..2e3191d4775 100644 --- a/Sources/AWSSDKSwift/Services/sms/Sms_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/sms/Sms_Shapes.swift @@ -10,7 +10,7 @@ extension Sms { } public struct Connector: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "capabilityList", required: false, type: .structure), AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "ipAddress", required: false, type: .string), @@ -61,7 +61,7 @@ extension Sms { } public struct GetReplicationRunsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "replicationJobId", required: true, type: .string) @@ -89,7 +89,7 @@ extension Sms { } public struct GetConnectorsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer) ] @@ -117,7 +117,7 @@ extension Sms { } public struct GetServersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "serverList", required: false, type: .structure), AWSShapeMember(label: "serverCatalogStatus", required: false, type: .enum), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -144,7 +144,7 @@ extension Sms { } public struct GetReplicationJobsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "replicationJobId", required: false, type: .string) @@ -180,7 +180,7 @@ extension Sms { } public struct StartOnDemandReplicationRunResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "replicationRunId", required: false, type: .string) ] public let replicationRunId: String? @@ -195,7 +195,7 @@ extension Sms { } public struct UpdateReplicationJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "roleName", required: false, type: .string), AWSShapeMember(label: "nextReplicationRunStartTime", required: false, type: .timestamp), AWSShapeMember(label: "description", required: false, type: .string), @@ -230,7 +230,7 @@ extension Sms { } public struct ConnectorCapabilityList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ConnectorCapability]? @@ -245,7 +245,7 @@ extension Sms { } public struct ReplicationRun: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: false, type: .enum), AWSShapeMember(label: "replicationRunId", required: false, type: .string), AWSShapeMember(label: "completedTime", required: false, type: .timestamp), @@ -292,7 +292,7 @@ extension Sms { } public struct ReplicationJob: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "state", required: false, type: .enum), AWSShapeMember(label: "replicationRunList", required: false, type: .structure), AWSShapeMember(label: "nextReplicationRunStartTime", required: false, type: .timestamp), @@ -374,7 +374,7 @@ extension Sms { } public struct ServerList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Server]? @@ -393,7 +393,7 @@ extension Sms { } public struct ReplicationJobList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ReplicationJob]? @@ -414,7 +414,7 @@ extension Sms { } public struct GetConnectorsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "connectorList", required: false, type: .structure) ] @@ -433,7 +433,7 @@ extension Sms { } public struct CreateReplicationJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "seedReplicationTime", required: true, type: .timestamp), AWSShapeMember(label: "roleName", required: false, type: .string), AWSShapeMember(label: "serverId", required: true, type: .string), @@ -474,7 +474,7 @@ extension Sms { } public struct VmServerAddress: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "vmId", required: false, type: .string), AWSShapeMember(label: "vmManagerId", required: false, type: .string) ] @@ -493,7 +493,7 @@ extension Sms { } public struct GetServersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer) ] @@ -517,7 +517,7 @@ extension Sms { } public struct ConnectorList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [Connector]? @@ -532,7 +532,7 @@ extension Sms { } public struct VmServer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "vmManagerName", required: false, type: .string), AWSShapeMember(label: "vmManagerType", required: false, type: .enum), AWSShapeMember(label: "vmName", required: false, type: .string), @@ -563,7 +563,7 @@ extension Sms { } public struct Server: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "serverId", required: false, type: .string), AWSShapeMember(label: "replicationJobTerminated", required: false, type: .boolean), AWSShapeMember(label: "serverType", required: false, type: .enum), @@ -598,7 +598,7 @@ extension Sms { } public struct CreateReplicationJobResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "replicationJobId", required: false, type: .string) ] public let replicationJobId: String? @@ -613,7 +613,7 @@ extension Sms { } public struct ReplicationRunList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "item", required: false, type: .list) ] public let item: [ReplicationRun]? @@ -628,7 +628,7 @@ extension Sms { } public struct StartOnDemandReplicationRunRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "replicationJobId", required: true, type: .string) ] @@ -656,7 +656,7 @@ extension Sms { } public struct GetReplicationJobsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "replicationJobList", required: false, type: .structure) ] @@ -675,7 +675,7 @@ extension Sms { } public struct DisassociateConnectorRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "connectorId", required: true, type: .string) ] public let connectorId: String @@ -690,7 +690,7 @@ extension Sms { } public struct GetReplicationRunsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "replicationJob", required: false, type: .structure), AWSShapeMember(label: "replicationRunList", required: false, type: .structure), AWSShapeMember(label: "nextToken", required: false, type: .string) @@ -719,7 +719,7 @@ extension Sms { } public struct DeleteReplicationJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "replicationJobId", required: true, type: .string) ] public let replicationJobId: String diff --git a/Sources/AWSSDKSwift/Services/snowball/Snowball_Shapes.swift b/Sources/AWSSDKSwift/Services/snowball/Snowball_Shapes.swift index 09efa84ed84..cf0df8e6947 100644 --- a/Sources/AWSSDKSwift/Services/snowball/Snowball_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/snowball/Snowball_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Snowball { public struct S3Resource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyRange", required: false, type: .structure), AWSShapeMember(label: "BucketArn", required: false, type: .string) ] @@ -27,7 +27,7 @@ extension Snowball { } public struct UpdateJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShippingOption", required: false, type: .enum), AWSShapeMember(label: "SnowballCapacityPreference", required: false, type: .enum), AWSShapeMember(label: "AddressId", required: false, type: .string), @@ -91,7 +91,7 @@ extension Snowball { } public struct JobResource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3Resources", required: false, type: .list), AWSShapeMember(label: "LambdaResources", required: false, type: .list) ] @@ -112,7 +112,7 @@ extension Snowball { } public struct CancelClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterId", required: true, type: .string) ] /// The 39-character ID for the cluster that you want to cancel, for example CID123e4567-e89b-12d3-a456-426655440000. @@ -128,7 +128,7 @@ extension Snowball { } public struct ShippingDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShippingOption", required: false, type: .enum), AWSShapeMember(label: "InboundShipment", required: false, type: .structure), AWSShapeMember(label: "OutboundShipment", required: false, type: .structure) @@ -154,7 +154,7 @@ extension Snowball { } public struct ListClusterJobsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "ClusterId", required: true, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -184,7 +184,7 @@ extension Snowball { } public struct EventTriggerDefinition: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EventResourceARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) for any local Amazon S3 resource that is an AWS Lambda function's event trigger associated with this job. @@ -200,7 +200,7 @@ extension Snowball { } public struct GetJobUnlockCodeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobId", required: true, type: .string) ] /// The ID for the job that you want to get the UnlockCode value for, for example JID123e4567-e89b-12d3-a456-426655440000. @@ -216,7 +216,7 @@ extension Snowball { } public struct KeyRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BeginMarker", required: false, type: .string), AWSShapeMember(label: "EndMarker", required: false, type: .string) ] @@ -243,7 +243,7 @@ extension Snowball { } public struct DescribeClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterMetadata", required: false, type: .structure) ] /// Information about a specific cluster, including shipping information, cluster status, and other important metadata. @@ -259,7 +259,7 @@ extension Snowball { } public struct Address: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Landmark", required: false, type: .string), AWSShapeMember(label: "PhoneNumber", required: false, type: .string), AWSShapeMember(label: "Country", required: false, type: .string), @@ -349,7 +349,7 @@ extension Snowball { } public struct ListClustersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterListEntries", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -394,7 +394,7 @@ extension Snowball { } public struct CreateClusterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterId", required: false, type: .string) ] /// The automatically generated ID for a cluster. @@ -410,7 +410,7 @@ extension Snowball { } public struct CreateClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShippingOption", required: true, type: .enum), AWSShapeMember(label: "AddressId", required: true, type: .string), AWSShapeMember(label: "ForwardingAddressId", required: false, type: .string), @@ -471,7 +471,7 @@ extension Snowball { } public struct DescribeClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterId", required: true, type: .string) ] /// The automatically generated ID for a cluster. @@ -487,7 +487,7 @@ extension Snowball { } public struct ListClustersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -508,7 +508,7 @@ extension Snowball { } public struct CreateAddressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Address", required: true, type: .structure) ] /// The address that you want the Snowball shipped to. @@ -524,7 +524,7 @@ extension Snowball { } public struct DescribeAddressesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Addresses", required: false, type: .list) ] @@ -549,7 +549,7 @@ extension Snowball { } public struct GetJobUnlockCodeResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UnlockCode", required: false, type: .string) ] /// The UnlockCode value for the specified job. The UnlockCode value can be accessed for up to 90 days after the job has been created. @@ -565,7 +565,7 @@ extension Snowball { } public struct DataTransfer: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ObjectsTransferred", required: false, type: .long), AWSShapeMember(label: "BytesTransferred", required: false, type: .long), AWSShapeMember(label: "TotalBytes", required: false, type: .long), @@ -604,7 +604,7 @@ extension Snowball { } public struct GetJobManifestRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobId", required: true, type: .string) ] /// The ID for a job that you want to get the manifest file for, for example JID123e4567-e89b-12d3-a456-426655440000. @@ -620,7 +620,7 @@ extension Snowball { } public struct DescribeAddressRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AddressId", required: true, type: .string) ] /// The automatically generated ID for a specific address. @@ -636,7 +636,7 @@ extension Snowball { } public struct DescribeJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobId", required: true, type: .string) ] /// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000. @@ -652,7 +652,7 @@ extension Snowball { } public struct ListJobsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "JobListEntries", required: false, type: .list) ] @@ -673,7 +673,7 @@ extension Snowball { } public struct CreateJobResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobId", required: false, type: .string) ] /// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000. @@ -689,7 +689,7 @@ extension Snowball { } public struct DescribeAddressResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Address", required: false, type: .structure) ] /// The address that you want the Snowball or Snowballs associated with a specific job to be shipped to. @@ -709,7 +709,7 @@ extension Snowball { } public struct LambdaResource: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LambdaArn", required: false, type: .string), AWSShapeMember(label: "EventTriggers", required: false, type: .list) ] @@ -730,7 +730,7 @@ extension Snowball { } public struct ClusterMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterState", required: false, type: .enum), AWSShapeMember(label: "ShippingOption", required: false, type: .enum), AWSShapeMember(label: "ForwardingAddressId", required: false, type: .string), @@ -806,7 +806,7 @@ extension Snowball { } public struct Notification: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NotifyAll", required: false, type: .boolean), AWSShapeMember(label: "JobStatesToNotify", required: false, type: .list), AWSShapeMember(label: "SnsTopicARN", required: false, type: .string) @@ -839,7 +839,7 @@ extension Snowball { } public struct ListJobsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -860,7 +860,7 @@ extension Snowball { } public struct Shipment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "TrackingNumber", required: false, type: .string) ] @@ -881,7 +881,7 @@ extension Snowball { } public struct DescribeAddressesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -902,7 +902,7 @@ extension Snowball { } public struct UpdateClusterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShippingOption", required: false, type: .enum), AWSShapeMember(label: "AddressId", required: false, type: .string), AWSShapeMember(label: "ForwardingAddressId", required: false, type: .string), @@ -953,7 +953,7 @@ extension Snowball { } public struct DescribeJobResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobMetadata", required: false, type: .structure), AWSShapeMember(label: "SubJobMetadata", required: false, type: .list) ] @@ -974,7 +974,7 @@ extension Snowball { } public struct JobListEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsMaster", required: false, type: .boolean), AWSShapeMember(label: "JobType", required: false, type: .enum), AWSShapeMember(label: "JobState", required: false, type: .enum), @@ -1020,7 +1020,7 @@ extension Snowball { } public struct ListClusterJobsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "JobListEntries", required: false, type: .list) ] @@ -1041,7 +1041,7 @@ extension Snowball { } public struct CreateAddressResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AddressId", required: false, type: .string) ] /// The automatically generated ID for a specific address. You'll use this ID when you create a job to specify which address you want the Snowball for that job shipped to. @@ -1057,7 +1057,7 @@ extension Snowball { } public struct CancelJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobId", required: true, type: .string) ] /// The 39-character job ID for the job that you want to cancel, for example JID123e4567-e89b-12d3-a456-426655440000. @@ -1073,7 +1073,7 @@ extension Snowball { } public struct ClusterListEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClusterState", required: false, type: .enum), AWSShapeMember(label: "CreationDate", required: false, type: .timestamp), AWSShapeMember(label: "ClusterId", required: false, type: .string), @@ -1104,7 +1104,7 @@ extension Snowball { } public struct JobMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataTransferProgress", required: false, type: .structure), AWSShapeMember(label: "SnowballCapacityPreference", required: false, type: .enum), AWSShapeMember(label: "ForwardingAddressId", required: false, type: .string), @@ -1200,7 +1200,7 @@ extension Snowball { } public struct JobLogs: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "JobFailureLogURI", required: false, type: .string), AWSShapeMember(label: "JobSuccessLogURI", required: false, type: .string), AWSShapeMember(label: "JobCompletionReportURI", required: false, type: .string) @@ -1226,7 +1226,7 @@ extension Snowball { } public struct GetSnowballUsageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnowballLimit", required: false, type: .integer), AWSShapeMember(label: "SnowballsInUse", required: false, type: .integer) ] @@ -1247,7 +1247,7 @@ extension Snowball { } public struct CreateJobRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShippingOption", required: false, type: .enum), AWSShapeMember(label: "SnowballCapacityPreference", required: false, type: .enum), AWSShapeMember(label: "ForwardingAddressId", required: false, type: .string), @@ -1318,7 +1318,7 @@ extension Snowball { } public struct GetJobManifestResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ManifestURI", required: false, type: .string) ] /// The Amazon S3 presigned URL for the manifest file associated with the specified JobId value. diff --git a/Sources/AWSSDKSwift/Services/sns/Sns_Shapes.swift b/Sources/AWSSDKSwift/Services/sns/Sns_Shapes.swift index 81fb7803e5b..59a9d0ae4dc 100644 --- a/Sources/AWSSDKSwift/Services/sns/Sns_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/sns/Sns_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Sns { public struct SetPlatformApplicationAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformApplicationArn", required: true, type: .string), AWSShapeMember(label: "Attributes", required: true, type: .map) ] @@ -27,7 +27,7 @@ extension Sns { } public struct RemovePermissionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: true, type: .string), AWSShapeMember(label: "Label", required: true, type: .string) ] @@ -48,7 +48,7 @@ extension Sns { } public struct ListSubscriptionsByTopicInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -69,7 +69,7 @@ extension Sns { } public struct ListPhoneNumbersOptedOutInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// A NextToken string is used when you call the ListPhoneNumbersOptedOut action to retrieve additional records that are available after the first page of results. @@ -85,7 +85,7 @@ extension Sns { } public struct PublishResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MessageId", required: false, type: .string) ] /// Unique identifier assigned to the published message. Length Constraint: Maximum 100 characters @@ -101,7 +101,7 @@ extension Sns { } public struct ListEndpointsByPlatformApplicationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "PlatformApplicationArn", required: true, type: .string) ] @@ -122,7 +122,7 @@ extension Sns { } public struct OptInPhoneNumberInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "phoneNumber", required: true, type: .string) ] /// The phone number to opt in. @@ -138,7 +138,7 @@ extension Sns { } public struct Subscription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: false, type: .string), AWSShapeMember(label: "Owner", required: false, type: .string), AWSShapeMember(label: "SubscriptionArn", required: false, type: .string), @@ -174,7 +174,7 @@ extension Sns { } public struct AddPermissionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: true, type: .string), AWSShapeMember(label: "AWSAccountId", required: true, type: .list), AWSShapeMember(label: "ActionName", required: true, type: .list), @@ -205,7 +205,7 @@ extension Sns { } public struct ListTopicsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string) ] /// Token returned by the previous ListTopics request. @@ -221,7 +221,7 @@ extension Sns { } public struct Endpoint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndpointArn", required: false, type: .string), AWSShapeMember(label: "Attributes", required: false, type: .map) ] @@ -242,7 +242,7 @@ extension Sns { } public struct UnsubscribeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubscriptionArn", required: true, type: .string) ] /// The ARN of the subscription to be deleted. @@ -258,7 +258,7 @@ extension Sns { } public struct SetEndpointAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndpointArn", required: true, type: .string), AWSShapeMember(label: "Attributes", required: true, type: .map) ] @@ -279,7 +279,7 @@ extension Sns { } public struct PlatformApplication: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformApplicationArn", required: false, type: .string), AWSShapeMember(label: "Attributes", required: false, type: .map) ] @@ -300,7 +300,7 @@ extension Sns { } public struct GetSubscriptionAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubscriptionArn", required: true, type: .string) ] /// The ARN of the subscription whose properties you want to get. @@ -316,7 +316,7 @@ extension Sns { } public struct SetSubscriptionAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: true, type: .string), AWSShapeMember(label: "AttributeValue", required: false, type: .string), AWSShapeMember(label: "SubscriptionArn", required: true, type: .string) @@ -342,7 +342,7 @@ extension Sns { } public struct GetSMSAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributes", required: false, type: .map) ] /// The SMS attribute names and their values. @@ -358,7 +358,7 @@ extension Sns { } public struct CreatePlatformEndpointInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CustomUserData", required: false, type: .string), AWSShapeMember(label: "Attributes", required: false, type: .map), AWSShapeMember(label: "Token", required: true, type: .string), @@ -389,7 +389,7 @@ extension Sns { } public struct GetEndpointAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndpointArn", required: true, type: .string) ] /// EndpointArn for GetEndpointAttributes input. @@ -405,7 +405,7 @@ extension Sns { } public struct ListTopicsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Topics", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -426,7 +426,7 @@ extension Sns { } public struct GetPlatformApplicationAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformApplicationArn", required: true, type: .string) ] /// PlatformApplicationArn for GetPlatformApplicationAttributesInput. @@ -442,7 +442,7 @@ extension Sns { } public struct GetPlatformApplicationAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: false, type: .map) ] /// Attributes include the following: EventEndpointCreated -- Topic ARN to which EndpointCreated event notifications should be sent. EventEndpointDeleted -- Topic ARN to which EndpointDeleted event notifications should be sent. EventEndpointUpdated -- Topic ARN to which EndpointUpdate event notifications should be sent. EventDeliveryFailure -- Topic ARN to which DeliveryFailure event notifications should be sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints. @@ -458,7 +458,7 @@ extension Sns { } public struct GetTopicAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: true, type: .string) ] /// The ARN of the topic whose properties you want to get. @@ -474,7 +474,7 @@ extension Sns { } public struct CreatePlatformApplicationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "Attributes", required: true, type: .map), AWSShapeMember(label: "Platform", required: true, type: .string) @@ -500,7 +500,7 @@ extension Sns { } public struct CreatePlatformApplicationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformApplicationArn", required: false, type: .string) ] /// PlatformApplicationArn is returned. @@ -516,7 +516,7 @@ extension Sns { } public struct DeleteTopicInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: true, type: .string) ] /// The ARN of the topic you want to delete. @@ -532,7 +532,7 @@ extension Sns { } public struct ListEndpointsByPlatformApplicationResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Endpoints", required: false, type: .list) ] @@ -553,7 +553,7 @@ extension Sns { } public struct ListPhoneNumbersOptedOutResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "phoneNumbers", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -574,7 +574,7 @@ extension Sns { } public struct CheckIfPhoneNumberIsOptedOutResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "isOptedOut", required: false, type: .boolean) ] /// Indicates whether the phone number is opted out: true – The phone number is opted out, meaning you cannot publish SMS messages to it. false – The phone number is opted in, meaning you can publish SMS messages to it. @@ -590,7 +590,7 @@ extension Sns { } public struct ConfirmSubscriptionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubscriptionArn", required: false, type: .string) ] /// The ARN of the created subscription. @@ -606,7 +606,7 @@ extension Sns { } public struct SubscribeResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubscriptionArn", required: false, type: .string) ] /// The ARN of the subscription, if the service was able to create a subscription immediately (without requiring endpoint owner confirmation). @@ -622,7 +622,7 @@ extension Sns { } public struct ListSubscriptionsByTopicResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Subscriptions", required: false, type: .list) ] @@ -643,7 +643,7 @@ extension Sns { } public struct ListSubscriptionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Subscriptions", required: false, type: .list) ] @@ -664,7 +664,7 @@ extension Sns { } public struct MessageAttributeValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataType", required: true, type: .string), AWSShapeMember(label: "BinaryValue", required: false, type: .blob), AWSShapeMember(label: "StringValue", required: false, type: .string) @@ -690,7 +690,7 @@ extension Sns { } public struct ListPlatformApplicationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "PlatformApplications", required: false, type: .list) ] @@ -711,7 +711,7 @@ extension Sns { } public struct ConfirmSubscriptionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticateOnUnsubscribe", required: false, type: .string), AWSShapeMember(label: "TopicArn", required: true, type: .string), AWSShapeMember(label: "Token", required: true, type: .string) @@ -737,7 +737,7 @@ extension Sns { } public struct ListSubscriptionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string) ] /// Token returned by the previous ListSubscriptions request. @@ -753,7 +753,7 @@ extension Sns { } public struct Topic: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: false, type: .string) ] /// The topic's ARN. @@ -773,7 +773,7 @@ extension Sns { } public struct SetSMSAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributes", required: true, type: .map) ] /// The default settings for sending SMS messages from your account. You can set values for the following attribute names: MonthlySpendLimit – The maximum amount in USD that you are willing to spend each month to send SMS messages. When Amazon SNS determines that sending an SMS message would incur a cost that exceeds this limit, it stops sending SMS messages within minutes. Amazon SNS stops sending SMS messages within minutes of the limit being crossed. During that interval, if you continue to send SMS messages, you will incur costs that exceed your limit. By default, the spend limit is set to the maximum allowed by Amazon SNS. If you want to exceed the maximum, contact AWS Support or your AWS sales representative for a service limit increase. DeliveryStatusIAMRole – The ARN of the IAM role that allows Amazon SNS to write logs about SMS deliveries in CloudWatch Logs. For each SMS message that you send, Amazon SNS writes a log that includes the message price, the success or failure status, the reason for failure (if the message failed), the message dwell time, and other information. DeliveryStatusSuccessSamplingRate – The percentage of successful SMS deliveries for which Amazon SNS will write logs in CloudWatch Logs. The value can be an integer from 0 - 100. For example, to write logs only for failed deliveries, set this value to 0. To write logs for 10% of your successful deliveries, set it to 10. DefaultSenderID – A string, such as your business brand, that is displayed as the sender on the receiving device. Support for sender IDs varies by country. The sender ID can be 1 - 11 alphanumeric characters, and it must contain at least one letter. DefaultSMSType – The type of SMS message that you will send by default. You can assign the following values: Promotional – (Default) Noncritical messages, such as marketing messages. Amazon SNS optimizes the message delivery to incur the lowest cost. Transactional – Critical messages that support customer transactions, such as one-time passcodes for multi-factor authentication. Amazon SNS optimizes the message delivery to achieve the highest reliability. UsageReportS3Bucket – The name of the Amazon S3 bucket to receive daily SMS usage reports from Amazon SNS. Each day, Amazon SNS will deliver a usage report as a CSV file to the bucket. The report includes the following information for each SMS message that was successfully delivered by your account: Time that the message was published (in UTC) Message ID Destination phone number Message type Delivery status Message price (in USD) Part number (a message is split into multiple parts if it is too long for a single message) Total number of parts To receive the report, the bucket must have a policy that allows the Amazon SNS service principle to perform the s3:PutObject and s3:GetBucketLocation actions. For an example bucket policy and usage report, see Monitoring SMS Activity in the Amazon SNS Developer Guide. @@ -789,7 +789,7 @@ extension Sns { } public struct SubscribeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Endpoint", required: false, type: .string), AWSShapeMember(label: "TopicArn", required: true, type: .string), AWSShapeMember(label: "Protocol", required: true, type: .string) @@ -815,7 +815,7 @@ extension Sns { } public struct GetTopicAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: false, type: .map) ] /// A map of the topic's attributes. Attributes in this map include the following: TopicArn -- the topic's ARN Owner -- the AWS account ID of the topic's owner Policy -- the JSON serialization of the topic's access control policy DisplayName -- the human-readable name used in the "From" field for notifications to email and email-json endpoints SubscriptionsPending -- the number of subscriptions pending confirmation on this topic SubscriptionsConfirmed -- the number of confirmed subscriptions on this topic SubscriptionsDeleted -- the number of deleted subscriptions on this topic DeliveryPolicy -- the JSON serialization of the topic's delivery policy EffectiveDeliveryPolicy -- the JSON serialization of the effective delivery policy that takes into account system defaults @@ -831,7 +831,7 @@ extension Sns { } public struct CreateTopicResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TopicArn", required: false, type: .string) ] /// The Amazon Resource Name (ARN) assigned to the created topic. @@ -847,7 +847,7 @@ extension Sns { } public struct CreateEndpointResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndpointArn", required: false, type: .string) ] /// EndpointArn returned from CreateEndpoint action. @@ -863,7 +863,7 @@ extension Sns { } public struct PublishInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MessageAttributes", required: false, type: .map), AWSShapeMember(label: "PhoneNumber", required: false, type: .string), AWSShapeMember(label: "Message", required: true, type: .string), @@ -909,7 +909,7 @@ extension Sns { } public struct CheckIfPhoneNumberIsOptedOutInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "phoneNumber", required: true, type: .string) ] /// The phone number for which you want to check the opt out status. @@ -925,7 +925,7 @@ extension Sns { } public struct GetEndpointAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: false, type: .map) ] /// Attributes include the following: CustomUserData -- arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB. Enabled -- flag that enables/disables delivery to the endpoint. Amazon SNS will set this to false when a notification service indicates to Amazon SNS that the endpoint is invalid. Users can set it back to true, typically after updating Token. Token -- device token, also referred to as a registration id, for an app and mobile device. This is returned from the notification service when an app and mobile device are registered with the notification service. @@ -941,7 +941,7 @@ extension Sns { } public struct DeleteEndpointInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndpointArn", required: true, type: .string) ] /// EndpointArn of endpoint to delete. @@ -961,7 +961,7 @@ extension Sns { } public struct SetTopicAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: true, type: .string), AWSShapeMember(label: "TopicArn", required: true, type: .string), AWSShapeMember(label: "AttributeValue", required: false, type: .string) @@ -987,7 +987,7 @@ extension Sns { } public struct GetSMSAttributesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attributes", required: false, type: .list) ] /// A list of the individual attribute names, such as MonthlySpendLimit, for which you want values. For all attribute names, see SetSMSAttributes. If you don't use this parameter, Amazon SNS returns all SMS attributes. @@ -1003,7 +1003,7 @@ extension Sns { } public struct CreateTopicInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// The name of the topic you want to create. Constraints: Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. @@ -1019,7 +1019,7 @@ extension Sns { } public struct ListPlatformApplicationsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string) ] /// NextToken string is used when calling ListPlatformApplications action to retrieve additional records that are available after the first page results. @@ -1035,7 +1035,7 @@ extension Sns { } public struct GetSubscriptionAttributesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", required: false, type: .map) ] /// A map of the subscription's attributes. Attributes in this map include the following: SubscriptionArn -- the subscription's ARN TopicArn -- the topic ARN that the subscription is associated with Owner -- the AWS account ID of the subscription's owner ConfirmationWasAuthenticated -- true if the subscription confirmation request was authenticated DeliveryPolicy -- the JSON serialization of the subscription's delivery policy EffectiveDeliveryPolicy -- the JSON serialization of the effective delivery policy that takes into account the topic delivery policy and account system defaults @@ -1051,7 +1051,7 @@ extension Sns { } public struct DeletePlatformApplicationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PlatformApplicationArn", required: true, type: .string) ] /// PlatformApplicationArn of platform application object to delete. diff --git a/Sources/AWSSDKSwift/Services/sqs/Sqs_API.swift b/Sources/AWSSDKSwift/Services/sqs/Sqs_API.swift index 7ec6c7ad93c..8f88116c86d 100644 --- a/Sources/AWSSDKSwift/Services/sqs/Sqs_API.swift +++ b/Sources/AWSSDKSwift/Services/sqs/Sqs_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Welcome to the Amazon Simple Queue Service API Reference. Amazon Simple Queue Service (Amazon SQS) is a reliable, highly-scalable hosted queue for storing messages as they travel between applications or microservices. Amazon SQS moves data between distributed application components and helps you decouple these components. Standard queues are available in all regions. FIFO queues are available in US West (Oregon) and US East (Ohio). You can use AWS SDKs to access Amazon SQS using your favorite programming language. The SDKs perform tasks such as the following automatically: Cryptographically sign your service requests Retry requests Handle error responses Additional Information Amazon SQS Product Page Amazon SQS Developer Guide Making API Requests Using Amazon SQS Message Attributes Using Amazon SQS Dead Letter Queues Amazon Web Services General Reference Regions and Endpoints +Welcome to the Amazon Simple Queue Service API Reference. Amazon Simple Queue Service (Amazon SQS) is a reliable, highly-scalable hosted queue for storing messages as they travel between applications or microservices. Amazon SQS moves data between distributed application components and helps you decouple these components. Standard queues are available in all regions. FIFO queues are available in the US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland) regions. You can use AWS SDKs to access Amazon SQS using your favorite programming language. The SDKs perform tasks such as the following automatically: Cryptographically sign your service requests Retry requests Handle error responses Additional Information Amazon SQS Product Page Amazon Simple Queue Service Developer Guide Making API Requests Using Amazon SQS Message Attributes Using Amazon SQS Dead-Letter Queues Amazon Web Services General Reference Regions and Endpoints */ public struct Sqs { @@ -24,47 +24,62 @@ public struct Sqs { ) } + /// Gets attributes for the specified queue. To determine whether a queue is FIFO, you can check whether QueueName ends with the .fifo suffix. Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this: &Attribute.1=this &Attribute.2=that + public func getQueueAttributes(_ input: GetQueueAttributesRequest) throws -> GetQueueAttributesResult { + return try client.send(operation: "GetQueueAttributes", path: "/", httpMethod: "POST", input: input) + } + /// Delivers a message to the specified queue. A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed: #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF Any characters not included in this list will be rejected. For more information, see the W3C specification for characters. public func sendMessage(_ input: SendMessageRequest) throws -> SendMessageResult { return try client.send(operation: "SendMessage", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified message from the specified queue. You specify the message by using the message's receipt handle and not the MessageId you receive when you send the message. Even if the message is locked by another reader due to the visibility timeout setting, it is still deleted from the queue. If you leave a message in the queue for longer than the queue's configured retention period, Amazon SQS automatically deletes the message. The receipt handle is associated with a specific instance of receiving the message. If you receive a message more than once, the receipt handle you get each time you receive the message is different. If you don't provide the most recently received receipt handle for the message when you use the DeleteMessage action, the request succeeds, but the message might not be deleted. For standard queues, it is possible to receive a message even after you delete it. This might happen on rare occasions if one of the servers storing a copy of the message is unavailable when you send the request to delete the message. The copy remains on the server and might be returned to you on a subsequent receive request. You should ensure that your application is idempotent, so that receiving a message more than once does not cause issues. - public func deleteMessage(_ input: DeleteMessageRequest) throws { - _ = try client.send(operation: "DeleteMessage", path: "/", httpMethod: "POST", input: input) + /// Remove cost allocation tags from the specified Amazon SQS queue. For an overview, see Tagging Amazon SQS Queues in the Amazon Simple Queue Service Developer Guide. When you use queue tags, keep the following guidelines in mind: Adding more than 50 tags to a queue isn't recommended. Tags don't have any semantic meaning. Amazon SQS interprets tags as character strings. Tags are case-sensitive. A new tag with a key identical to that of an existing tag overwrites the existing tag. Tagging API actions are limited to 5 TPS per AWS account. If your application requires a higher throughput, file a technical support request. For a full list of tag restrictions, see Limits Related to Queues in the Amazon Simple Queue Service Developer Guide. + public func untagQueue(_ input: UntagQueueRequest) throws { + _ = try client.send(operation: "UntagQueue", path: "/", httpMethod: "POST", input: input) } - /// Adds a permission to a queue for a specific principal. This allows sharing access to the queue. When you create a queue, you have full control access rights for the queue. Only you, the owner of the queue, can grant or deny permissions to the queue. For more information about these permissions, see Shared Queues in the Amazon SQS Developer Guide. AddPermission writes an Amazon-SQS-generated policy. If you want to write your own policy, use SetQueueAttributes to upload your policy. For more information about writing your own policy, see Using The Access Policy Language in the Amazon SQS Developer Guide. Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this: &Attribute.1=this &Attribute.2=that + /// Adds a permission to a queue for a specific principal. This allows sharing access to the queue. When you create a queue, you have full control access rights for the queue. Only you, the owner of the queue, can grant or deny permissions to the queue. For more information about these permissions, see Shared Queues in the Amazon Simple Queue Service Developer Guide. AddPermission writes an Amazon-SQS-generated policy. If you want to write your own policy, use SetQueueAttributes to upload your policy. For more information about writing your own policy, see Using The Access Policy Language in the Amazon Simple Queue Service Developer Guide. Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this: &Attribute.1=this &Attribute.2=that public func addPermission(_ input: AddPermissionRequest) throws { _ = try client.send(operation: "AddPermission", path: "/", httpMethod: "POST", input: input) } + /// Deletes the messages in a queue specified by the QueueURL parameter. When you use the PurgeQueue action, you can't retrieve a message deleted from a queue. When you purge a queue, the message deletion process takes up to 60 seconds. All messages sent to the queue before calling the PurgeQueue action are deleted. Messages sent to the queue while it is being purged might be deleted. While the queue is being purged, messages sent to the queue before PurgeQueue is called might be received, but are deleted within the next minute. + public func purgeQueue(_ input: PurgeQueueRequest) throws { + _ = try client.send(operation: "PurgeQueue", path: "/", httpMethod: "POST", input: input) + } + /// Deletes up to ten messages from the specified queue. This is a batch version of DeleteMessage. The result of the action on each message is reported individually in the response. Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200. Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this: &Attribute.1=this &Attribute.2=that public func deleteMessageBatch(_ input: DeleteMessageBatchRequest) throws -> DeleteMessageBatchResult { return try client.send(operation: "DeleteMessageBatch", path: "/", httpMethod: "POST", input: input) } - /// Deletes the messages in a queue specified by the QueueURL parameter. When you use the PurgeQueue action, you can't retrieve a message deleted from a queue. When you purge a queue, the message deletion process takes up to 60 seconds. All messages sent to the queue before calling the PurgeQueue action are deleted. Messages sent to the queue while it is being purged might be deleted. While the queue is being purged, messages sent to the queue before PurgeQueue is called might be received, but are deleted within the next minute. - public func purgeQueue(_ input: PurgeQueueRequest) throws { - _ = try client.send(operation: "PurgeQueue", path: "/", httpMethod: "POST", input: input) + /// List all cost allocation tags added to the specified Amazon SQS queue. For an overview, see Tagging Amazon SQS Queues in the Amazon Simple Queue Service Developer Guide. When you use queue tags, keep the following guidelines in mind: Adding more than 50 tags to a queue isn't recommended. Tags don't have any semantic meaning. Amazon SQS interprets tags as character strings. Tags are case-sensitive. A new tag with a key identical to that of an existing tag overwrites the existing tag. Tagging API actions are limited to 5 TPS per AWS account. If your application requires a higher throughput, file a technical support request. For a full list of tag restrictions, see Limits Related to Queues in the Amazon Simple Queue Service Developer Guide. + public func listQueueTags(_ input: ListQueueTagsRequest) throws -> ListQueueTagsResult { + return try client.send(operation: "ListQueueTags", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of your queues that have the RedrivePolicy queue attribute configured with a dead letter queue. For more information about using dead letter queues, see Using Amazon SQS Dead Letter Queues in the Amazon SQS Developer Guide. + /// Returns a list of your queues that have the RedrivePolicy queue attribute configured with a dead-letter queue. For more information about using dead-letter queues, see Using Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service Developer Guide. public func listDeadLetterSourceQueues(_ input: ListDeadLetterSourceQueuesRequest) throws -> ListDeadLetterSourceQueuesResult { return try client.send(operation: "ListDeadLetterSourceQueues", path: "/", httpMethod: "POST", input: input) } - /// Returns the URL of an existing queue. This action provides a simple way to retrieve the URL of an Amazon SQS queue. To access a queue that belongs to another AWS account, use the QueueOwnerAWSAccountId parameter to specify the account ID of the queue's owner. The queue's owner must grant you permission to access the queue. For more information about shared queue access, see AddPermission or see Shared Queues in the Amazon SQS Developer Guide. + /// Returns the URL of an existing queue. This action provides a simple way to retrieve the URL of an Amazon SQS queue. To access a queue that belongs to another AWS account, use the QueueOwnerAWSAccountId parameter to specify the account ID of the queue's owner. The queue's owner must grant you permission to access the queue. For more information about shared queue access, see AddPermission or see Shared Queues in the Amazon Simple Queue Service Developer Guide. public func getQueueUrl(_ input: GetQueueUrlRequest) throws -> GetQueueUrlResult { return try client.send(operation: "GetQueueUrl", path: "/", httpMethod: "POST", input: input) } - /// Retrieves one or more messages (up to 10), from the specified queue. Using the WaitTimeSeconds parameter enables long-poll support. For more information, see Amazon SQS Long Polling in the Amazon SQS Developer Guide. Short poll is the default behavior where a weighted random set of machines is sampled on a ReceiveMessage call. Thus, only the messages on the sampled machines are returned. If the number of messages in the queue is small (fewer than 1,000), you most likely get fewer messages than you requested per ReceiveMessage call. If the number of messages in the queue is extremely small, you might not receive any messages in a particular ReceiveMessage response. If this happens, repeat the request. For each message returned, the response includes the following: The message body. An MD5 digest of the message body. For information about MD5, see RFC1321. The MessageId you received when you sent the message to the queue. The receipt handle. The message attributes. An MD5 digest of the message attributes. The receipt handle is the identifier you must provide when deleting the message. For more information, see Queue and Message Identifiers in the Amazon SQS Developer Guide. You can provide the VisibilityTimeout parameter in your request. The parameter is applied to the messages that Amazon SQS returns in the response. If you don't include the parameter, the overall visibility timeout for the queue is used for the returned messages. For more information, see Visibility Timeout in the Amazon SQS Developer Guide. A message that isn't deleted or a message whose visibility isn't extended before the visibility timeout expires counts as a failed receive. Depending on the configuration of the queue, the message might be sent to the dead letter queue. In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully. + /// Retrieves one or more messages (up to 10), from the specified queue. Using the WaitTimeSeconds parameter enables long-poll support. For more information, see Amazon SQS Long Polling in the Amazon Simple Queue Service Developer Guide. Short poll is the default behavior where a weighted random set of machines is sampled on a ReceiveMessage call. Thus, only the messages on the sampled machines are returned. If the number of messages in the queue is small (fewer than 1,000), you most likely get fewer messages than you requested per ReceiveMessage call. If the number of messages in the queue is extremely small, you might not receive any messages in a particular ReceiveMessage response. If this happens, repeat the request. For each message returned, the response includes the following: The message body. An MD5 digest of the message body. For information about MD5, see RFC1321. The MessageId you received when you sent the message to the queue. The receipt handle. The message attributes. An MD5 digest of the message attributes. The receipt handle is the identifier you must provide when deleting the message. For more information, see Queue and Message Identifiers in the Amazon Simple Queue Service Developer Guide. You can provide the VisibilityTimeout parameter in your request. The parameter is applied to the messages that Amazon SQS returns in the response. If you don't include the parameter, the overall visibility timeout for the queue is used for the returned messages. For more information, see Visibility Timeout in the Amazon Simple Queue Service Developer Guide. A message that isn't deleted or a message whose visibility isn't extended before the visibility timeout expires counts as a failed receive. Depending on the configuration of the queue, the message might be sent to the dead-letter queue. In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully. public func receiveMessage(_ input: ReceiveMessageRequest) throws -> ReceiveMessageResult { return try client.send(operation: "ReceiveMessage", path: "/", httpMethod: "POST", input: input) } - /// Deletes the queue specified by the QueueUrl, even if the queue is empty. If the specified queue doesn't exist, Amazon SQS returns a successful response. Be careful with the DeleteQueue action: When you delete a queue, any messages in the queue are no longer available. When you delete a queue, the deletion process takes up to 60 seconds. Requests you send involving that queue during the 60 seconds might succeed. For example, a SendMessage request might succeed, but after 60 seconds the queue and the message you sent no longer exist. When you delete a queue, you must wait at least 60 seconds before creating a queue with the same name. + /// Add cost allocation tags to the specified Amazon SQS queue. For an overview, see Tagging Amazon SQS Queues in the Amazon Simple Queue Service Developer Guide. When you use queue tags, keep the following guidelines in mind: Adding more than 50 tags to a queue isn't recommended. Tags don't have any semantic meaning. Amazon SQS interprets tags as character strings. Tags are case-sensitive. A new tag with a key identical to that of an existing tag overwrites the existing tag. Tagging API actions are limited to 5 TPS per AWS account. If your application requires a higher throughput, file a technical support request. For a full list of tag restrictions, see Limits Related to Queues in the Amazon Simple Queue Service Developer Guide. + public func tagQueue(_ input: TagQueueRequest) throws { + _ = try client.send(operation: "TagQueue", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes the queue specified by the QueueUrl, regardless of the queue's contents. If the specified queue doesn't exist, Amazon SQS returns a successful response. Be careful with the DeleteQueue action: When you delete a queue, any messages in the queue are no longer available. When you delete a queue, the deletion process takes up to 60 seconds. Requests you send involving that queue during the 60 seconds might succeed. For example, a SendMessage request might succeed, but after 60 seconds the queue and the message you sent no longer exist. When you delete a queue, you must wait at least 60 seconds before creating a queue with the same name. public func deleteQueue(_ input: DeleteQueueRequest) throws { _ = try client.send(operation: "DeleteQueue", path: "/", httpMethod: "POST", input: input) } @@ -74,19 +89,14 @@ public struct Sqs { return try client.send(operation: "ChangeMessageVisibilityBatch", path: "/", httpMethod: "POST", input: input) } - /// Changes the visibility timeout of a specified message in a queue to a new value. The maximum allowed timeout value is 12 hours. Thus, you can't extend the timeout of a message in an existing queue to more than a total visibility timeout of 12 hours. For more information, see Visibility Timeout in the Amazon SQS Developer Guide. For example, you have a message and with the default visibility timeout of 5 minutes. After 3 minutes, you call ChangeMessageVisiblity with a timeout of 10 minutes. At that time, the timeout for the message is extended by 10 minutes beyond the time of the ChangeMessageVisibility action. This results in a total visibility timeout of 13 minutes. You can continue to call the ChangeMessageVisibility to extend the visibility timeout to a maximum of 12 hours. If you try to extend the visibility timeout beyond 12 hours, your request is rejected. A message is considered to be in flight after it's received from a queue by a consumer, but not yet deleted from the queue. For standard queues, there can be a maximum of 120,000 inflight messages per queue. If you reach this limit, Amazon SQS returns the OverLimit error message. To avoid reaching the limit, you should delete messages from the queue after they're processed. You can also increase the number of queues you use to process your messages. For FIFO queues, there can be a maximum of 20,000 inflight messages per queue. If you reach this limit, Amazon SQS returns no error messages. If you attempt to set the VisibilityTimeout to a value greater than the maximum time left, Amazon SQS returns an error. Amazon SQS doesn't automatically recalculate and increase the timeout to the maximum remaining time. Unlike with a queue, when you change the visibility timeout for a specific message the timeout value is applied immediately but isn't saved in memory for that message. If you don't delete a message after it is received, the visibility timeout for the message reverts to the original timeout value (not to the value you set using the ChangeMessageVisibility action) the next time the message is received. - public func changeMessageVisibility(_ input: ChangeMessageVisibilityRequest) throws { - _ = try client.send(operation: "ChangeMessageVisibility", path: "/", httpMethod: "POST", input: input) - } - /// Revokes any permissions in the queue policy that matches the specified Label parameter. Only the owner of the queue can remove permissions. public func removePermission(_ input: RemovePermissionRequest) throws { _ = try client.send(operation: "RemovePermission", path: "/", httpMethod: "POST", input: input) } - /// Creates a new standard or FIFO queue. You can pass one or more attributes in the request. Keep the following caveats in mind: If you don't specify the FifoQueue attribute, Amazon SQS creates a standard queue. You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see Moving From a Standard Queue to a FIFO Queue in the Amazon SQS Developer Guide. If you don't provide a value for an attribute, the queue is created with the default value for the attribute. If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name. To successfully create a new queue, you must provide a queue name that adheres to the limits related to queues and is unique within the scope of your queues. To get the queue URL, use the GetQueueUrl action. GetQueueUrl requires only the QueueName parameter. be aware of existing queue names: If you provide the name of an existing queue along with the exact names and values of all the queue's attributes, CreateQueue returns the queue URL for the existing queue. If the queue name, attribute names, or attribute values don't match an existing queue, CreateQueue returns an error. Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this: &Attribute.1=this &Attribute.2=that - public func createQueue(_ input: CreateQueueRequest) throws -> CreateQueueResult { - return try client.send(operation: "CreateQueue", path: "/", httpMethod: "POST", input: input) + /// Returns a list of your queues. The maximum number of queues that can be returned is 1,000. If you specify a value for the optional QueueNamePrefix parameter, only queues with a name that begins with the specified value are returned. + public func listQueues(_ input: ListQueuesRequest) throws -> ListQueuesResult { + return try client.send(operation: "ListQueues", path: "/", httpMethod: "POST", input: input) } /// Sets the value of one or more queue attributes. When you change a queue's attributes, the change can take up to 60 seconds for most of the attributes to propagate throughout the Amazon SQS system. Changes made to the MessageRetentionPeriod attribute can take up to 15 minutes. In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully. @@ -94,19 +104,24 @@ public struct Sqs { _ = try client.send(operation: "SetQueueAttributes", path: "/", httpMethod: "POST", input: input) } - /// Delivers up to ten messages to the specified queue. This is a batch version of SendMessage. For a FIFO queue, multiple messages within a single batch are enqueued in the order they are sent. The result of sending each message is reported individually in the response. Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200. The maximum allowed individual message size and the maximum total payload size (the sum of the individual lengths of all of the batched messages) are both 256 KB (262,144 bytes). A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed: #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF Any characters not included in this list will be rejected. For more information, see the W3C specification for characters. If you don't specify the DelaySeconds parameter for an entry, Amazon SQS uses the default value for the queue. Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this: &Attribute.1=this &Attribute.2=that - public func sendMessageBatch(_ input: SendMessageBatchRequest) throws -> SendMessageBatchResult { - return try client.send(operation: "SendMessageBatch", path: "/", httpMethod: "POST", input: input) + /// Creates a new standard or FIFO queue. You can pass one or more attributes in the request. Keep the following caveats in mind: If you don't specify the FifoQueue attribute, Amazon SQS creates a standard queue. You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see Moving From a Standard Queue to a FIFO Queue in the Amazon Simple Queue Service Developer Guide. If you don't provide a value for an attribute, the queue is created with the default value for the attribute. If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name. To successfully create a new queue, you must provide a queue name that adheres to the limits related to queues and is unique within the scope of your queues. To get the queue URL, use the GetQueueUrl action. GetQueueUrl requires only the QueueName parameter. be aware of existing queue names: If you provide the name of an existing queue along with the exact names and values of all the queue's attributes, CreateQueue returns the queue URL for the existing queue. If the queue name, attribute names, or attribute values don't match an existing queue, CreateQueue returns an error. Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this: &Attribute.1=this &Attribute.2=that + public func createQueue(_ input: CreateQueueRequest) throws -> CreateQueueResult { + return try client.send(operation: "CreateQueue", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of your queues. The maximum number of queues that can be returned is 1,000. If you specify a value for the optional QueueNamePrefix parameter, only queues with a name that begins with the specified value are returned. - public func listQueues(_ input: ListQueuesRequest) throws -> ListQueuesResult { - return try client.send(operation: "ListQueues", path: "/", httpMethod: "POST", input: input) + /// Deletes the specified message from the specified queue. You specify the message by using the message's receipt handle and not the MessageId you receive when you send the message. Even if the message is locked by another reader due to the visibility timeout setting, it is still deleted from the queue. If you leave a message in the queue for longer than the queue's configured retention period, Amazon SQS automatically deletes the message. The receipt handle is associated with a specific instance of receiving the message. If you receive a message more than once, the receipt handle you get each time you receive the message is different. If you don't provide the most recently received receipt handle for the message when you use the DeleteMessage action, the request succeeds, but the message might not be deleted. For standard queues, it is possible to receive a message even after you delete it. This might happen on rare occasions if one of the servers storing a copy of the message is unavailable when you send the request to delete the message. The copy remains on the server and might be returned to you on a subsequent receive request. You should ensure that your application is idempotent, so that receiving a message more than once does not cause issues. + public func deleteMessage(_ input: DeleteMessageRequest) throws { + _ = try client.send(operation: "DeleteMessage", path: "/", httpMethod: "POST", input: input) } - /// Gets attributes for the specified queue. To determine whether a queue is FIFO, you can check whether QueueName ends with the .fifo suffix. Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this: &Attribute.1=this &Attribute.2=that - public func getQueueAttributes(_ input: GetQueueAttributesRequest) throws -> GetQueueAttributesResult { - return try client.send(operation: "GetQueueAttributes", path: "/", httpMethod: "POST", input: input) + /// Changes the visibility timeout of a specified message in a queue to a new value. The maximum allowed timeout value is 12 hours. Thus, you can't extend the timeout of a message in an existing queue to more than a total visibility timeout of 12 hours. For more information, see Visibility Timeout in the Amazon Simple Queue Service Developer Guide. For example, you have a message with a visibility timeout of 5 minutes. After 3 minutes, you call ChangeMessageVisiblity with a timeout of 10 minutes. At that time, the timeout for the message is extended by 10 minutes beyond the time of the ChangeMessageVisibility action. This results in a total visibility timeout of 13 minutes. You can continue to call the ChangeMessageVisibility to extend the visibility timeout to a maximum of 12 hours. If you try to extend the visibility timeout beyond 12 hours, your request is rejected. A message is considered to be in flight after it's received from a queue by a consumer, but not yet deleted from the queue. For standard queues, there can be a maximum of 120,000 inflight messages per queue. If you reach this limit, Amazon SQS returns the OverLimit error message. To avoid reaching the limit, you should delete messages from the queue after they're processed. You can also increase the number of queues you use to process your messages. For FIFO queues, there can be a maximum of 20,000 inflight messages per queue. If you reach this limit, Amazon SQS returns no error messages. If you attempt to set the VisibilityTimeout to a value greater than the maximum time left, Amazon SQS returns an error. Amazon SQS doesn't automatically recalculate and increase the timeout to the maximum remaining time. Unlike with a queue, when you change the visibility timeout for a specific message the timeout value is applied immediately but isn't saved in memory for that message. If you don't delete a message after it is received, the visibility timeout for the message reverts to the original timeout value (not to the value you set using the ChangeMessageVisibility action) the next time the message is received. + public func changeMessageVisibility(_ input: ChangeMessageVisibilityRequest) throws { + _ = try client.send(operation: "ChangeMessageVisibility", path: "/", httpMethod: "POST", input: input) + } + + /// Delivers up to ten messages to the specified queue. This is a batch version of SendMessage. For a FIFO queue, multiple messages within a single batch are enqueued in the order they are sent. The result of sending each message is reported individually in the response. Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200. The maximum allowed individual message size and the maximum total payload size (the sum of the individual lengths of all of the batched messages) are both 256 KB (262,144 bytes). A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed: #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF Any characters not included in this list will be rejected. For more information, see the W3C specification for characters. If you don't specify the DelaySeconds parameter for an entry, Amazon SQS uses the default value for the queue. Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this: &Attribute.1=this &Attribute.2=that + public func sendMessageBatch(_ input: SendMessageBatchRequest) throws -> SendMessageBatchResult { + return try client.send(operation: "SendMessageBatch", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/sqs/Sqs_Error.swift b/Sources/AWSSDKSwift/Services/sqs/Sqs_Error.swift index 2512a602f09..9ecc4c30e18 100644 --- a/Sources/AWSSDKSwift/Services/sqs/Sqs_Error.swift +++ b/Sources/AWSSDKSwift/Services/sqs/Sqs_Error.swift @@ -4,21 +4,21 @@ import AWSSDKSwiftCore /// Error enum for Sqs public enum SqsError: AWSErrorType { + case invalidAttributeName(message: String?) case invalidMessageContents(message: String?) case unsupportedOperation(message: String?) - case invalidIdFormat(message: String?) - case receiptHandleIsInvalid(message: String?) case overLimit(message: String?) + case queueDoesNotExist(message: String?) + case purgeQueueInProgress(message: String?) case tooManyEntriesInBatchRequest(message: String?) case emptyBatchRequest(message: String?) case batchEntryIdsNotDistinct(message: String?) case invalidBatchEntryId(message: String?) - case queueDoesNotExist(message: String?) - case purgeQueueInProgress(message: String?) - case messageNotInflight(message: String?) case queueDeletedRecently(message: String?) case queueNameExists(message: String?) - case invalidAttributeName(message: String?) + case invalidIdFormat(message: String?) + case receiptHandleIsInvalid(message: String?) + case messageNotInflight(message: String?) case batchRequestTooLong(message: String?) } @@ -29,16 +29,18 @@ extension SqsError { errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) } switch errorCode { + case "InvalidAttributeName": + self = .invalidAttributeName(message: message) case "InvalidMessageContents": self = .invalidMessageContents(message: message) case "UnsupportedOperation": self = .unsupportedOperation(message: message) - case "InvalidIdFormat": - self = .invalidIdFormat(message: message) - case "ReceiptHandleIsInvalid": - self = .receiptHandleIsInvalid(message: message) case "OverLimit": self = .overLimit(message: message) + case "QueueDoesNotExist": + self = .queueDoesNotExist(message: message) + case "PurgeQueueInProgress": + self = .purgeQueueInProgress(message: message) case "TooManyEntriesInBatchRequest": self = .tooManyEntriesInBatchRequest(message: message) case "EmptyBatchRequest": @@ -47,18 +49,16 @@ extension SqsError { self = .batchEntryIdsNotDistinct(message: message) case "InvalidBatchEntryId": self = .invalidBatchEntryId(message: message) - case "QueueDoesNotExist": - self = .queueDoesNotExist(message: message) - case "PurgeQueueInProgress": - self = .purgeQueueInProgress(message: message) - case "MessageNotInflight": - self = .messageNotInflight(message: message) case "QueueDeletedRecently": self = .queueDeletedRecently(message: message) case "QueueNameExists": self = .queueNameExists(message: message) - case "InvalidAttributeName": - self = .invalidAttributeName(message: message) + case "InvalidIdFormat": + self = .invalidIdFormat(message: message) + case "ReceiptHandleIsInvalid": + self = .receiptHandleIsInvalid(message: message) + case "MessageNotInflight": + self = .messageNotInflight(message: message) case "BatchRequestTooLong": self = .batchRequestTooLong(message: message) default: diff --git a/Sources/AWSSDKSwift/Services/sqs/Sqs_Shapes.swift b/Sources/AWSSDKSwift/Services/sqs/Sqs_Shapes.swift index 2340e9bf466..0e986f4aa32 100644 --- a/Sources/AWSSDKSwift/Services/sqs/Sqs_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/sqs/Sqs_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Sqs { public struct ReceiveMessageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MessageAttributeNames", required: false, type: .structure), AWSShapeMember(label: "VisibilityTimeout", required: false, type: .integer), AWSShapeMember(label: "MaxNumberOfMessages", required: false, type: .integer), @@ -27,7 +27,7 @@ extension Sqs { public let receiveRequestAttemptId: String? /// A list of attributes that need to be returned along with each message. These attributes include: All - Returns all values. ApproximateFirstReceiveTimestamp - Returns the time the message was first received from the queue (epoch time in milliseconds). ApproximateReceiveCount - Returns the number of times a message has been received from the queue but not deleted. SenderId For an IAM user, returns the IAM user ID, for example ABCDEFGHI1JKLMNOPQ23R. For an IAM role, returns the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456. SentTimestamp - Returns the time the message was sent to the queue (epoch time in milliseconds). MessageDeduplicationId - Returns the value provided by the sender that calls the SendMessage action. MessageGroupId - Returns the value provided by the sender that calls the SendMessage action. Messages with the same MessageGroupId are returned in sequence. SequenceNumber - Returns the value provided by Amazon SQS. Any other valid special request parameters (such as the following) are ignored: ApproximateNumberOfMessages ApproximateNumberOfMessagesDelayed ApproximateNumberOfMessagesNotVisible CreatedTimestamp ContentBasedDeduplication DelaySeconds FifoQueue LastModifiedTimestamp MaximumMessageSize MessageRetentionPeriod Policy QueueArn, ReceiveMessageWaitTimeSeconds RedrivePolicy VisibilityTimeout public let attributeNames: AttributeNameList? - /// The duration (in seconds) for which the call waits for a message to arrive in the queue before returning. If a message is available, the call returns sooner than WaitTimeSeconds. + /// The duration (in seconds) for which the call waits for a message to arrive in the queue before returning. If a message is available, the call returns sooner than WaitTimeSeconds. If no messages are available and the wait time expires, the call returns successfully with an empty list of messages. public let waitTimeSeconds: Int32? public init(messageAttributeNames: MessageAttributeNameList? = nil, visibilityTimeout: Int32? = nil, maxNumberOfMessages: Int32? = nil, queueUrl: String, receiveRequestAttemptId: String? = nil, attributeNames: AttributeNameList? = nil, waitTimeSeconds: Int32? = nil) { @@ -51,29 +51,29 @@ extension Sqs { } } - public struct GetQueueUrlRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "QueueName", required: true, type: .string), - AWSShapeMember(label: "QueueOwnerAWSAccountId", required: false, type: .string) + public struct UntagQueueRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "QueueUrl", required: true, type: .string), + AWSShapeMember(label: "TagKeys", required: true, type: .structure) ] - /// The name of the queue whose URL must be fetched. Maximum 80 characters. Valid values: alphanumeric characters, hyphens (-), and underscores (_). Queue names are case-sensitive. - public let queueName: String - /// The AWS account ID of the account that created the queue. - public let queueOwnerAWSAccountId: String? + /// The URL of the queue. + public let queueUrl: String + /// The list of tags to be removed from the specified queue. + public let tagKeys: TagKeyList - public init(queueName: String, queueOwnerAWSAccountId: String? = nil) { - self.queueName = queueName - self.queueOwnerAWSAccountId = queueOwnerAWSAccountId + public init(queueUrl: String, tagKeys: TagKeyList) { + self.queueUrl = queueUrl + self.tagKeys = tagKeys } private enum CodingKeys: String, CodingKey { - case queueName = "QueueName" - case queueOwnerAWSAccountId = "QueueOwnerAWSAccountId" + case queueUrl = "QueueUrl" + case tagKeys = "TagKeys" } } public struct SendMessageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MD5OfMessageAttributes", required: false, type: .string), AWSShapeMember(label: "MD5OfMessageBody", required: false, type: .string), AWSShapeMember(label: "SequenceNumber", required: false, type: .string), @@ -85,7 +85,7 @@ extension Sqs { public let mD5OfMessageBody: String? /// This parameter applies only to FIFO (first-in-first-out) queues. The large, non-consecutive number that Amazon SQS assigns to each message. The length of SequenceNumber is 128 bits. SequenceNumber continues to increase for a particular MessageGroupId. public let sequenceNumber: String? - /// An attribute containing the MessageId of the message sent to the queue. For more information, see Queue and Message Identifiers in the Amazon SQS Developer Guide. + /// An attribute containing the MessageId of the message sent to the queue. For more information, see Queue and Message Identifiers in the Amazon Simple Queue Service Developer Guide. public let messageId: String? public init(mD5OfMessageAttributes: String? = nil, mD5OfMessageBody: String? = nil, sequenceNumber: String? = nil, messageId: String? = nil) { @@ -103,8 +103,29 @@ extension Sqs { } } + public struct GetQueueUrlRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "QueueName", required: true, type: .string), + AWSShapeMember(label: "QueueOwnerAWSAccountId", required: false, type: .string) + ] + /// The name of the queue whose URL must be fetched. Maximum 80 characters. Valid values: alphanumeric characters, hyphens (-), and underscores (_). Queue names are case-sensitive. + public let queueName: String + /// The AWS account ID of the account that created the queue. + public let queueOwnerAWSAccountId: String? + + public init(queueName: String, queueOwnerAWSAccountId: String? = nil) { + self.queueName = queueName + self.queueOwnerAWSAccountId = queueOwnerAWSAccountId + } + + private enum CodingKeys: String, CodingKey { + case queueName = "QueueName" + case queueOwnerAWSAccountId = "QueueOwnerAWSAccountId" + } + } + public struct BinaryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BinaryListValue", required: false, type: .list) ] public let binaryListValue: [Data]? @@ -119,7 +140,7 @@ extension Sqs { } public struct MessageAttributeValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BinaryListValues", location: .body(locationName: "BinaryListValue"), required: false, type: .structure), AWSShapeMember(label: "BinaryValue", required: false, type: .blob), AWSShapeMember(label: "StringValue", required: false, type: .string), @@ -132,7 +153,7 @@ extension Sqs { public let binaryValue: Data? /// Strings are Unicode with UTF-8 binary encoding. For a list of code values, see ASCII Printable Characters. public let stringValue: String? - /// Amazon SQS supports the following logical data types: String, Number, and Binary. For the Number data type, you must use StringValue. You can also append custom labels. For more information, see Message Attribute Data Types and Validation in the Amazon SQS Developer Guide. + /// Amazon SQS supports the following logical data types: String, Number, and Binary. For the Number data type, you must use StringValue. You can also append custom labels. For more information, see Message Attribute Data Types and Validation in the Amazon Simple Queue Service Developer Guide. public let dataType: String /// Not implemented. Reserved for future use. public let stringListValues: StringList? @@ -155,7 +176,7 @@ extension Sqs { } public struct ChangeMessageVisibilityBatchRequestEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VisibilityTimeout", required: false, type: .integer), AWSShapeMember(label: "ReceiptHandle", required: true, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) @@ -181,7 +202,7 @@ extension Sqs { } public struct StringList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StringListValue", required: false, type: .list) ] public let stringListValue: [String]? @@ -196,7 +217,7 @@ extension Sqs { } public struct GetQueueUrlResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueueUrl", required: false, type: .string) ] /// The URL of the queue. @@ -212,7 +233,7 @@ extension Sqs { } public struct ActionNameList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActionName", required: false, type: .list) ] public let actionName: [String]? @@ -227,7 +248,7 @@ extension Sqs { } public struct ChangeMessageVisibilityBatchRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Entries", required: true, type: .structure), AWSShapeMember(label: "QueueUrl", required: true, type: .string) ] @@ -248,7 +269,7 @@ extension Sqs { } public struct Message: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReceiptHandle", required: false, type: .string), AWSShapeMember(label: "MessageId", required: false, type: .string), AWSShapeMember(label: "MD5OfMessageAttributes", required: false, type: .string), @@ -269,7 +290,7 @@ extension Sqs { public let body: String? /// An MD5 digest of the non-URL-encoded message body string. public let mD5OfBody: String? - /// Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon SQS Developer Guide. + /// Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon Simple Queue Service Developer Guide. public let messageAttributes: [String: MessageAttributeValue]? public init(receiptHandle: String? = nil, messageId: String? = nil, mD5OfMessageAttributes: String? = nil, attributes: [MessageSystemAttributeName: String]? = nil, body: String? = nil, mD5OfBody: String? = nil, messageAttributes: [String: MessageAttributeValue]? = nil) { @@ -294,7 +315,7 @@ extension Sqs { } public struct MessageAttributeNameList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MessageAttributeName", required: false, type: .list) ] public let messageAttributeName: [String]? @@ -309,7 +330,7 @@ extension Sqs { } public struct DeleteMessageBatchResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Successful", required: true, type: .structure), AWSShapeMember(label: "Failed", required: true, type: .structure) ] @@ -330,7 +351,7 @@ extension Sqs { } public struct ReceiveMessageResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Messages", required: false, type: .structure) ] /// A list of messages. @@ -345,8 +366,24 @@ extension Sqs { } } + public struct ListQueueTagsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", location: .body(locationName: "Tag"), required: false, type: .map) + ] + /// The list of all tags added to the specified queue. + public let tags: [String: String]? + + public init(tags: [String: String]? = nil) { + self.tags = tags + } + + private enum CodingKeys: String, CodingKey { + case tags = "Tag" + } + } + public struct SendMessageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DelaySeconds", required: false, type: .integer), AWSShapeMember(label: "QueueUrl", required: true, type: .string), AWSShapeMember(label: "MessageGroupId", required: false, type: .string), @@ -360,11 +397,11 @@ extension Sqs { public let queueUrl: String /// This parameter applies only to FIFO (first-in-first-out) queues. The tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are processed in a FIFO manner (however, messages in different message groups might be processed out of order). To interleave multiple ordered streams within a single queue, use MessageGroupId values (for example, session data for multiple users). In this scenario, multiple readers can process the queue, but the session data of each user is processed in a FIFO fashion. You must associate a non-empty MessageGroupId with a message. If you don't provide a MessageGroupId, the action fails. ReceiveMessage might return messages with multiple MessageGroupId values. For each MessageGroupId, the messages are sorted by time sent. The caller can't specify a MessageGroupId. The length of MessageGroupId is 128 characters. Valid values are alphanumeric characters and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). For best practices of using MessageGroupId, see Using the MessageGroupId Property in the Amazon Simple Queue Service Developer Guide. MessageGroupId is required for FIFO queues. You can't use it for Standard queues. public let messageGroupId: String? - /// This parameter applies only to FIFO (first-in-first-out) queues. The token used for deduplication of sent messages. If a message with a particular MessageDeduplicationId is sent successfully, any messages sent with the same MessageDeduplicationId are accepted successfully but aren't delivered during the 5-minute deduplication interval. For more information, see Exactly-Once Processing in the Amazon SQS Developer Guide. Every message must have a unique MessageDeduplicationId, You may provide a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message). If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error. If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one. When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered. The MessageDeduplicationId is available to the recipient of the message (this can be useful for troubleshooting delivery issues). If a message is sent successfully but the acknowledgement is lost and the message is resent with the same MessageDeduplicationId after the deduplication interval, Amazon SQS can't detect duplicate messages. The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId Property in the Amazon Simple Queue Service Developer Guide. + /// This parameter applies only to FIFO (first-in-first-out) queues. The token used for deduplication of sent messages. If a message with a particular MessageDeduplicationId is sent successfully, any messages sent with the same MessageDeduplicationId are accepted successfully but aren't delivered during the 5-minute deduplication interval. For more information, see Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide. Every message must have a unique MessageDeduplicationId, You may provide a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message). If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error. If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one. When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered. The MessageDeduplicationId is available to the recipient of the message (this can be useful for troubleshooting delivery issues). If a message is sent successfully but the acknowledgement is lost and the message is resent with the same MessageDeduplicationId after the deduplication interval, Amazon SQS can't detect duplicate messages. The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId Property in the Amazon Simple Queue Service Developer Guide. public let messageDeduplicationId: String? /// The message to send. The maximum string size is 256 KB. A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed: #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF Any characters not included in this list will be rejected. For more information, see the W3C specification for characters. public let messageBody: String - /// Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon SQS Developer Guide. + /// Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon Simple Queue Service Developer Guide. public let messageAttributes: [String: MessageAttributeValue]? public init(delaySeconds: Int32? = nil, queueUrl: String, messageGroupId: String? = nil, messageDeduplicationId: String? = nil, messageBody: String, messageAttributes: [String: MessageAttributeValue]? = nil) { @@ -387,7 +424,7 @@ extension Sqs { } public struct AddPermissionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Label", required: true, type: .string), AWSShapeMember(label: "AWSAccountIds", required: true, type: .structure), AWSShapeMember(label: "Actions", required: true, type: .structure), @@ -395,9 +432,9 @@ extension Sqs { ] /// The unique identification of the permission you're setting (for example, AliceSendMessage). Maximum 80 characters. Allowed characters include alphanumeric characters, hyphens (-), and underscores (_). public let label: String - /// The AWS account number of the principal who is given permission. The principal must have an AWS account, but does not need to be signed up for Amazon SQS. For information about locating the AWS account identification, see Your AWS Identifiers in the Amazon SQS Developer Guide. + /// The AWS account number of the principal who is given permission. The principal must have an AWS account, but does not need to be signed up for Amazon SQS. For information about locating the AWS account identification, see Your AWS Identifiers in the Amazon Simple Queue Service Developer Guide. public let aWSAccountIds: AWSAccountIdList - /// The action the client wants to allow for the specified principal. The following values are valid: * ChangeMessageVisibility DeleteMessage GetQueueAttributes GetQueueUrl ReceiveMessage SendMessage For more information about these actions, see Understanding Permissions in the Amazon SQS Developer Guide. Specifying SendMessage, DeleteMessage, or ChangeMessageVisibility for ActionName.n also grants permissions for the corresponding batch versions of those actions: SendMessageBatch, DeleteMessageBatch, and ChangeMessageVisibilityBatch. + /// The action the client wants to allow for the specified principal. The following values are valid: * ChangeMessageVisibility DeleteMessage GetQueueAttributes GetQueueUrl ReceiveMessage SendMessage For more information about these actions, see Understanding Permissions in the Amazon Simple Queue Service Developer Guide. Specifying SendMessage, DeleteMessage, or ChangeMessageVisibility for ActionName.n also grants permissions for the corresponding batch versions of those actions: SendMessageBatch, DeleteMessageBatch, and ChangeMessageVisibilityBatch. public let actions: ActionNameList /// The URL of the Amazon SQS queue to which permissions are added. Queue URLs are case-sensitive. public let queueUrl: String @@ -418,13 +455,13 @@ extension Sqs { } public struct CreateQueueRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueueName", required: true, type: .string), AWSShapeMember(label: "Attributes", location: .body(locationName: "Attribute"), required: false, type: .map) ] /// The name of the new queue. The following limits apply to this name: A queue name can have up to 80 characters. Valid values: alphanumeric characters, hyphens (-), and underscores (_). A FIFO queue name must end with the .fifo suffix. Queue names are case-sensitive. public let queueName: String - /// A map of attributes with their corresponding values. The following lists the names, descriptions, and values of the special request parameters that the CreateQueue action uses: DelaySeconds - The length of time, in seconds, for which the delivery of all messages in the queue is delayed. Valid values: An integer from 0 to 900 seconds (15 minutes). The default is 0 (zero). MaximumMessageSize - The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes (1 KiB) to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB). MessageRetentionPeriod - The length of time, in seconds, for which Amazon SQS retains a message. Valid values: An integer from 60 seconds (1 minute) to 1,209,600 seconds (14 days). The default is 345,600 (4 days). Policy - The queue's policy. A valid AWS policy. For more information about policy structure, see Overview of AWS IAM Policies in the Amazon IAM User Guide. ReceiveMessageWaitTimeSeconds - The length of time, in seconds, for which a ReceiveMessage action waits for a message to arrive. Valid values: An integer from 0 to 20 (seconds). The default is 0 (zero). RedrivePolicy - The parameters for the dead letter queue functionality of the source queue. For more information about the redrive policy and dead letter queues, see Using Amazon SQS Dead Letter Queues in the Amazon SQS Developer Guide. The dead letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead letter queue of a standard queue must also be a standard queue. VisibilityTimeout - The visibility timeout for the queue. Valid values: An integer from 0 to 43,200 (12 hours). The default is 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide. The following attributes apply only to server-side-encryption: KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms. While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, the alias of a custom CMK can, for example, be alias/aws/sqs. For more examples, see KeyId in the AWS Key Management Service API Reference. KmsDataKeyReusePeriodSeconds - The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes). A shorter time period provides better security but results in more calls to KMS which incur charges after Free Tier. For more information, see How Does the Data Key Reuse Period Work?. The following attributes apply only to FIFO (first-in-first-out) queues: FifoQueue - Designates a queue as FIFO. Valid values: true, false. You can provide this attribute only during queue creation. You can't change it for an existing queue. When you set this attribute, you must also provide the MessageGroupId for your messages explicitly. For more information, see FIFO Queue Logic in the Amazon SQS Developer Guide. ContentBasedDeduplication - Enables content-based deduplication. Valid values: true, false. For more information, see Exactly-Once Processing in the Amazon SQS Developer Guide. Every message must have a unique MessageDeduplicationId, You may provide a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message). If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error. If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one. When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered. Any other valid special request parameters (such as the following) are ignored: ApproximateNumberOfMessages ApproximateNumberOfMessagesDelayed ApproximateNumberOfMessagesNotVisible CreatedTimestamp LastModifiedTimestamp QueueArn + /// A map of attributes with their corresponding values. The following lists the names, descriptions, and values of the special request parameters that the CreateQueue action uses: DelaySeconds - The length of time, in seconds, for which the delivery of all messages in the queue is delayed. Valid values: An integer from 0 to 900 seconds (15 minutes). The default is 0 (zero). MaximumMessageSize - The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes (1 KiB) to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB). MessageRetentionPeriod - The length of time, in seconds, for which Amazon SQS retains a message. Valid values: An integer from 60 seconds (1 minute) to 1,209,600 seconds (14 days). The default is 345,600 (4 days). Policy - The queue's policy. A valid AWS policy. For more information about policy structure, see Overview of AWS IAM Policies in the Amazon IAM User Guide. ReceiveMessageWaitTimeSeconds - The length of time, in seconds, for which a ReceiveMessage action waits for a message to arrive. Valid values: An integer from 0 to 20 (seconds). The default is 0 (zero). RedrivePolicy - The string that includes the parameters for the dead-letter queue functionality of the source queue. For more information about the redrive policy and dead-letter queues, see Using Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service Developer Guide. deadLetterTargetArn - The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the value of maxReceiveCount is exceeded. maxReceiveCount - The number of times a message is delivered to the source queue before being moved to the dead-letter queue. The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue. VisibilityTimeout - The visibility timeout for the queue. Valid values: An integer from 0 to 43,200 (12 hours). The default is 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon Simple Queue Service Developer Guide. The following attributes apply only to server-side-encryption: KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms. While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, the alias of a custom CMK can, for example, be alias/MyAlias . For more examples, see KeyId in the AWS Key Management Service API Reference. KmsDataKeyReusePeriodSeconds - The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes). A shorter time period provides better security but results in more calls to KMS which might incur charges after Free Tier. For more information, see How Does the Data Key Reuse Period Work?. The following attributes apply only to FIFO (first-in-first-out) queues: FifoQueue - Designates a queue as FIFO. Valid values: true, false. You can provide this attribute only during queue creation. You can't change it for an existing queue. When you set this attribute, you must also provide the MessageGroupId for your messages explicitly. For more information, see FIFO Queue Logic in the Amazon Simple Queue Service Developer Guide. ContentBasedDeduplication - Enables content-based deduplication. Valid values: true, false. For more information, see Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide. Every message must have a unique MessageDeduplicationId, You may provide a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message). If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error. If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one. When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered. Any other valid special request parameters (such as the following) are ignored: ApproximateNumberOfMessages ApproximateNumberOfMessagesDelayed ApproximateNumberOfMessagesNotVisible CreatedTimestamp LastModifiedTimestamp QueueArn public let attributes: [QueueAttributeName: String]? public init(queueName: String, attributes: [QueueAttributeName: String]? = nil) { @@ -439,10 +476,10 @@ extension Sqs { } public struct ListDeadLetterSourceQueuesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "queueUrls", required: true, type: .structure) ] - /// A list of source queue URLs that have the RedrivePolicy queue attribute configured with a dead letter queue. + /// A list of source queue URLs that have the RedrivePolicy queue attribute configured with a dead-letter queue. public let queueUrls: QueueUrlList public init(queueUrls: QueueUrlList) { @@ -455,7 +492,7 @@ extension Sqs { } public struct AWSAccountIdList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AWSAccountId", required: false, type: .list) ] public let aWSAccountId: [String]? @@ -470,7 +507,7 @@ extension Sqs { } public struct QueueUrlList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueueUrl", required: false, type: .list) ] public let queueUrl: [String]? @@ -507,7 +544,7 @@ extension Sqs { } public struct ListQueuesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueueNamePrefix", required: false, type: .string) ] /// A string to use for filtering the list results. Only those queues whose name begins with the specified string are returned. Queue names are case-sensitive. @@ -523,7 +560,7 @@ extension Sqs { } public struct RemovePermissionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueueUrl", required: true, type: .string), AWSShapeMember(label: "Label", required: true, type: .string) ] @@ -544,7 +581,7 @@ extension Sqs { } public struct SendMessageBatchResultEntryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SendMessageBatchResultEntry", required: false, type: .list) ] public let sendMessageBatchResultEntry: [SendMessageBatchResultEntry]? @@ -559,7 +596,7 @@ extension Sqs { } public struct ChangeMessageVisibilityBatchResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Successful", required: true, type: .structure), AWSShapeMember(label: "Failed", required: true, type: .structure) ] @@ -580,7 +617,7 @@ extension Sqs { } public struct DeleteMessageBatchResultEntryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeleteMessageBatchResultEntry", required: false, type: .list) ] public let deleteMessageBatchResultEntry: [DeleteMessageBatchResultEntry]? @@ -594,39 +631,44 @@ extension Sqs { } } - public struct MessageList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Message", required: false, type: .list) + public struct TagQueueRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Tags", required: true, type: .map), + AWSShapeMember(label: "QueueUrl", required: true, type: .string) ] - public let message: [Message]? + /// The list of tags to be added to the specified queue. + public let tags: [String: String] + /// The URL of the queue. + public let queueUrl: String - public init(message: [Message]? = nil) { - self.message = message + public init(tags: [String: String], queueUrl: String) { + self.tags = tags + self.queueUrl = queueUrl } private enum CodingKeys: String, CodingKey { - case message = "Message" + case tags = "Tags" + case queueUrl = "QueueUrl" } } - public struct ListDeadLetterSourceQueuesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "QueueUrl", required: true, type: .string) + public struct MessageList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Message", required: false, type: .list) ] - /// The URL of a dead letter queue. Queue URLs are case-sensitive. - public let queueUrl: String + public let message: [Message]? - public init(queueUrl: String) { - self.queueUrl = queueUrl + public init(message: [Message]? = nil) { + self.message = message } private enum CodingKeys: String, CodingKey { - case queueUrl = "QueueUrl" + case message = "Message" } } public struct SendMessageBatchResultEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MD5OfMessageAttributes", required: false, type: .string), AWSShapeMember(label: "MD5OfMessageBody", required: true, type: .string), AWSShapeMember(label: "SequenceNumber", required: false, type: .string), @@ -662,11 +704,11 @@ extension Sqs { } public struct SetQueueAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", location: .body(locationName: "Attribute"), required: true, type: .map), AWSShapeMember(label: "QueueUrl", required: true, type: .string) ] - /// A map of attributes to set. The following lists the names, descriptions, and values of the special request parameters that the SetQueueAttributes action uses: DelaySeconds - The length of time, in seconds, for which the delivery of all messages in the queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). The default is 0 (zero). MaximumMessageSize - The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB). MessageRetentionPeriod - The length of time, in seconds, for which Amazon SQS retains a message. Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days). The default is 345,600 (4 days). Policy - The queue's policy. A valid AWS policy. For more information about policy structure, see Overview of AWS IAM Policies in the Amazon IAM User Guide. ReceiveMessageWaitTimeSeconds - The length of time, in seconds, for which a ReceiveMessage action waits for a message to arrive. Valid values: an integer from 0 to 20 (seconds). The default is 0. RedrivePolicy - The parameters for the dead letter queue functionality of the source queue. For more information about the redrive policy and dead letter queues, see Using Amazon SQS Dead Letter Queues in the Amazon SQS Developer Guide. The dead letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead letter queue of a standard queue must also be a standard queue. VisibilityTimeout - The visibility timeout for the queue. Valid values: an integer from 0 to 43,200 (12 hours). The default is 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide. The following attributes apply only to server-side-encryption: KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms. While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, the alias of a custom CMK can, for example, be alias/aws/sqs. For more examples, see KeyId in the AWS Key Management Service API Reference. KmsDataKeyReusePeriodSeconds - The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes). A shorter time period provides better security but results in more calls to KMS which incur charges after Free Tier. For more information, see How Does the Data Key Reuse Period Work?. The following attribute applies only to FIFO (first-in-first-out) queues: ContentBasedDeduplication - Enables content-based deduplication. For more information, see Exactly-Once Processing in the Amazon SQS Developer Guide. Every message must have a unique MessageDeduplicationId, You may provide a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message). If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error. If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one. When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered. Any other valid special request parameters (such as the following) are ignored: ApproximateNumberOfMessages ApproximateNumberOfMessagesDelayed ApproximateNumberOfMessagesNotVisible CreatedTimestamp LastModifiedTimestamp QueueArn + /// A map of attributes to set. The following lists the names, descriptions, and values of the special request parameters that the SetQueueAttributes action uses: DelaySeconds - The length of time, in seconds, for which the delivery of all messages in the queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). The default is 0 (zero). MaximumMessageSize - The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB). MessageRetentionPeriod - The length of time, in seconds, for which Amazon SQS retains a message. Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days). The default is 345,600 (4 days). Policy - The queue's policy. A valid AWS policy. For more information about policy structure, see Overview of AWS IAM Policies in the Amazon IAM User Guide. ReceiveMessageWaitTimeSeconds - The length of time, in seconds, for which a ReceiveMessage action waits for a message to arrive. Valid values: an integer from 0 to 20 (seconds). The default is 0. RedrivePolicy - The string that includes the parameters for the dead-letter queue functionality of the source queue. For more information about the redrive policy and dead-letter queues, see Using Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service Developer Guide. deadLetterTargetArn - The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the value of maxReceiveCount is exceeded. maxReceiveCount - The number of times a message is delivered to the source queue before being moved to the dead-letter queue. The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue. VisibilityTimeout - The visibility timeout for the queue. Valid values: an integer from 0 to 43,200 (12 hours). The default is 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon Simple Queue Service Developer Guide. The following attributes apply only to server-side-encryption: KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms. While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, the alias of a custom CMK can, for example, be alias/MyAlias . For more examples, see KeyId in the AWS Key Management Service API Reference. KmsDataKeyReusePeriodSeconds - The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes). A shorter time period provides better security but results in more calls to KMS which might incur charges after Free Tier. For more information, see How Does the Data Key Reuse Period Work?. The following attribute applies only to FIFO (first-in-first-out) queues: ContentBasedDeduplication - Enables content-based deduplication. For more information, see Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide. Every message must have a unique MessageDeduplicationId, You may provide a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message). If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error. If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one. When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered. Any other valid special request parameters (such as the following) are ignored: ApproximateNumberOfMessages ApproximateNumberOfMessagesDelayed ApproximateNumberOfMessagesNotVisible CreatedTimestamp LastModifiedTimestamp QueueArn public let attributes: [QueueAttributeName: String] /// The URL of the Amazon SQS queue whose attributes are set. Queue URLs are case-sensitive. public let queueUrl: String @@ -683,7 +725,7 @@ extension Sqs { } public struct AttributeNameList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: false, type: .list) ] public let attributeName: [QueueAttributeName]? @@ -698,7 +740,7 @@ extension Sqs { } public struct GetQueueAttributesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Attributes", location: .body(locationName: "Attribute"), required: false, type: .map) ] /// A map of attributes to their respective values. @@ -713,8 +755,24 @@ extension Sqs { } } + public struct ListDeadLetterSourceQueuesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "QueueUrl", required: true, type: .string) + ] + /// The URL of a dead-letter queue. Queue URLs are case-sensitive. + public let queueUrl: String + + public init(queueUrl: String) { + self.queueUrl = queueUrl + } + + private enum CodingKeys: String, CodingKey { + case queueUrl = "QueueUrl" + } + } + public struct CreateQueueResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueueUrl", required: false, type: .string) ] /// The URL of the created Amazon SQS queue. @@ -730,7 +788,7 @@ extension Sqs { } public struct ListQueuesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueueUrls", required: false, type: .structure) ] /// A list of queue URLs, up to 1,000 entries. @@ -746,7 +804,7 @@ extension Sqs { } public struct ChangeMessageVisibilityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VisibilityTimeout", required: true, type: .integer), AWSShapeMember(label: "ReceiptHandle", required: true, type: .string), AWSShapeMember(label: "QueueUrl", required: true, type: .string) @@ -772,7 +830,7 @@ extension Sqs { } public struct ChangeMessageVisibilityBatchRequestEntryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeMessageVisibilityBatchRequestEntry", required: false, type: .list) ] public let changeMessageVisibilityBatchRequestEntry: [ChangeMessageVisibilityBatchRequestEntry]? @@ -798,7 +856,7 @@ extension Sqs { } public struct DeleteMessageBatchRequestEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReceiptHandle", required: true, type: .string), AWSShapeMember(label: "Id", required: true, type: .string) ] @@ -819,7 +877,7 @@ extension Sqs { } public struct BatchResultErrorEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Code", required: true, type: .string), AWSShapeMember(label: "Message", required: false, type: .string), AWSShapeMember(label: "SenderFault", required: true, type: .boolean), @@ -850,7 +908,7 @@ extension Sqs { } public struct ChangeMessageVisibilityBatchResultEntryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeMessageVisibilityBatchResultEntry", required: false, type: .list) ] public let changeMessageVisibilityBatchResultEntry: [ChangeMessageVisibilityBatchResultEntry]? @@ -865,7 +923,7 @@ extension Sqs { } public struct DeleteMessageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ReceiptHandle", required: true, type: .string), AWSShapeMember(label: "QueueUrl", required: true, type: .string) ] @@ -886,7 +944,7 @@ extension Sqs { } public struct ChangeMessageVisibilityBatchResultEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string) ] /// Represents a message whose visibility timeout has been changed successfully. @@ -901,8 +959,24 @@ extension Sqs { } } + public struct ListQueueTagsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "QueueUrl", required: true, type: .string) + ] + /// The URL of the queue. + public let queueUrl: String + + public init(queueUrl: String) { + self.queueUrl = queueUrl + } + + private enum CodingKeys: String, CodingKey { + case queueUrl = "QueueUrl" + } + } + public struct SendMessageBatchRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Entries", required: true, type: .structure), AWSShapeMember(label: "QueueUrl", required: true, type: .string) ] @@ -923,7 +997,7 @@ extension Sqs { } public struct PurgeQueueRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueueUrl", required: true, type: .string) ] /// The URL of the queue from which the PurgeQueue action deletes messages. Queue URLs are case-sensitive. @@ -939,7 +1013,7 @@ extension Sqs { } public struct DeleteMessageBatchRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Entries", required: true, type: .structure), AWSShapeMember(label: "QueueUrl", required: true, type: .string) ] @@ -960,11 +1034,11 @@ extension Sqs { } public struct GetQueueAttributesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeNames", required: false, type: .structure), AWSShapeMember(label: "QueueUrl", required: true, type: .string) ] - /// A list of attributes for which to retrieve information. In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully. The following attributes are supported: All - Returns all values. ApproximateNumberOfMessages - Returns the approximate number of visible messages in a queue. For more information, see Resources Required to Process Messages in the Amazon SQS Developer Guide. ApproximateNumberOfMessagesDelayed - Returns the approximate number of messages that are waiting to be added to the queue. ApproximateNumberOfMessagesNotVisible - Returns the approximate number of messages that have not timed-out and aren't deleted. For more information, see Resources Required to Process Messages in the Amazon SQS Developer Guide. CreatedTimestamp - Returns the time when the queue was created in seconds (epoch time). DelaySeconds - Returns the default delay on the queue in seconds. LastModifiedTimestamp - Returns the time when the queue was last changed in seconds (epoch time). MaximumMessageSize - Returns the limit of how many bytes a message can contain before Amazon SQS rejects it. MessageRetentionPeriod - Returns the length of time, in seconds, for which Amazon SQS retains a message. Policy - Returns the policy of the queue. QueueArn - Returns the Amazon resource name (ARN) of the queue. ReceiveMessageWaitTimeSeconds - Returns the length of time, in seconds, for which the ReceiveMessage action waits for a message to arrive. RedrivePolicy - Returns the parameters for dead letter queue functionality of the source queue. For more information about the redrive policy and dead letter queues, see Using Amazon SQS Dead Letter Queues in the Amazon SQS Developer Guide. VisibilityTimeout - Returns the visibility timeout for the queue. For more information about the visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide. The following attributes apply only to server-side-encryption: KmsMasterKeyId - Returns the ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms. KmsDataKeyReusePeriodSeconds - Returns the length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. The following attributes apply only to FIFO (first-in-first-out) queues: FifoQueue - Returns whether the queue is FIFO. For more information, see FIFO Queue Logic in the Amazon SQS Developer Guide. To determine whether a queue is FIFO, you can check whether QueueName ends with the .fifo suffix. ContentBasedDeduplication - Returns whether content-based deduplication is enabled for the queue. For more information, see Exactly-Once Processing in the Amazon SQS Developer Guide. + /// A list of attributes for which to retrieve information. In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully. The following attributes are supported: All - Returns all values. ApproximateNumberOfMessages - Returns the approximate number of visible messages in a queue. For more information, see Resources Required to Process Messages in the Amazon Simple Queue Service Developer Guide. ApproximateNumberOfMessagesDelayed - Returns the approximate number of messages that are waiting to be added to the queue. ApproximateNumberOfMessagesNotVisible - Returns the approximate number of messages that have not timed-out and aren't deleted. For more information, see Resources Required to Process Messages in the Amazon Simple Queue Service Developer Guide. CreatedTimestamp - Returns the time when the queue was created in seconds (epoch time). DelaySeconds - Returns the default delay on the queue in seconds. LastModifiedTimestamp - Returns the time when the queue was last changed in seconds (epoch time). MaximumMessageSize - Returns the limit of how many bytes a message can contain before Amazon SQS rejects it. MessageRetentionPeriod - Returns the length of time, in seconds, for which Amazon SQS retains a message. Policy - Returns the policy of the queue. QueueArn - Returns the Amazon resource name (ARN) of the queue. ReceiveMessageWaitTimeSeconds - Returns the length of time, in seconds, for which the ReceiveMessage action waits for a message to arrive. RedrivePolicy - Returns the string that includes the parameters for dead-letter queue functionality of the source queue. For more information about the redrive policy and dead-letter queues, see Using Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service Developer Guide. deadLetterTargetArn - The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the value of maxReceiveCount is exceeded. maxReceiveCount - The number of times a message is delivered to the source queue before being moved to the dead-letter queue. VisibilityTimeout - Returns the visibility timeout for the queue. For more information about the visibility timeout, see Visibility Timeout in the Amazon Simple Queue Service Developer Guide. The following attributes apply only to server-side-encryption: KmsMasterKeyId - Returns the ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms. KmsDataKeyReusePeriodSeconds - Returns the length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. For more information, see How Does the Data Key Reuse Period Work?. The following attributes apply only to FIFO (first-in-first-out) queues: FifoQueue - Returns whether the queue is FIFO. For more information, see FIFO Queue Logic in the Amazon Simple Queue Service Developer Guide. To determine whether a queue is FIFO, you can check whether QueueName ends with the .fifo suffix. ContentBasedDeduplication - Returns whether content-based deduplication is enabled for the queue. For more information, see Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide. public let attributeNames: AttributeNameList? /// The URL of the Amazon SQS queue whose attribute information is retrieved. Queue URLs are case-sensitive. public let queueUrl: String @@ -981,7 +1055,7 @@ extension Sqs { } public struct BatchResultErrorEntryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BatchResultErrorEntry", required: false, type: .list) ] public let batchResultErrorEntry: [BatchResultErrorEntry]? @@ -996,7 +1070,7 @@ extension Sqs { } public struct DeleteQueueRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "QueueUrl", required: true, type: .string) ] /// The URL of the Amazon SQS queue to delete. Queue URLs are case-sensitive. @@ -1011,8 +1085,23 @@ extension Sqs { } } + public struct TagKeyList: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TagKey", required: false, type: .list) + ] + public let tagKey: [String]? + + public init(tagKey: [String]? = nil) { + self.tagKey = tagKey + } + + private enum CodingKeys: String, CodingKey { + case tagKey = "TagKey" + } + } + public struct SendMessageBatchRequestEntryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SendMessageBatchRequestEntry", required: false, type: .list) ] public let sendMessageBatchRequestEntry: [SendMessageBatchRequestEntry]? @@ -1027,7 +1116,7 @@ extension Sqs { } public struct DeleteMessageBatchRequestEntryList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeleteMessageBatchRequestEntry", required: false, type: .list) ] public let deleteMessageBatchRequestEntry: [DeleteMessageBatchRequestEntry]? @@ -1042,7 +1131,7 @@ extension Sqs { } public struct SendMessageBatchRequestEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DelaySeconds", required: false, type: .integer), AWSShapeMember(label: "MessageAttributes", location: .body(locationName: "MessageAttribute"), required: false, type: .map), AWSShapeMember(label: "MessageGroupId", required: false, type: .string), @@ -1052,11 +1141,11 @@ extension Sqs { ] /// The length of time, in seconds, for which a specific message is delayed. Valid values: 0 to 900. Maximum: 15 minutes. Messages with a positive DelaySeconds value become available for processing after the delay period is finished. If you don't specify a value, the default value for the queue is applied. When you set FifoQueue, you can't set DelaySeconds per message. You can set this parameter only on a queue level. public let delaySeconds: Int32? - /// Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon SQS Developer Guide. + /// Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon Simple Queue Service Developer Guide. public let messageAttributes: [String: MessageAttributeValue]? /// This parameter applies only to FIFO (first-in-first-out) queues. The tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are processed in a FIFO manner (however, messages in different message groups might be processed out of order). To interleave multiple ordered streams within a single queue, use MessageGroupId values (for example, session data for multiple users). In this scenario, multiple readers can process the queue, but the session data of each user is processed in a FIFO fashion. You must associate a non-empty MessageGroupId with a message. If you don't provide a MessageGroupId, the action fails. ReceiveMessage might return messages with multiple MessageGroupId values. For each MessageGroupId, the messages are sorted by time sent. The caller can't specify a MessageGroupId. The length of MessageGroupId is 128 characters. Valid values are alphanumeric characters and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). For best practices of using MessageGroupId, see Using the MessageGroupId Property in the Amazon Simple Queue Service Developer Guide. MessageGroupId is required for FIFO queues. You can't use it for Standard queues. public let messageGroupId: String? - /// This parameter applies only to FIFO (first-in-first-out) queues. The token used for deduplication of messages within a 5-minute minimum deduplication interval. If a message with a particular MessageDeduplicationId is sent successfully, subsequent messages with the same MessageDeduplicationId are accepted successfully but aren't delivered. For more information, see Exactly-Once Processing in the Amazon SQS Developer Guide. Every message must have a unique MessageDeduplicationId, You may provide a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message). If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error. If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one. When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered. The MessageDeduplicationId is available to the recipient of the message (this can be useful for troubleshooting delivery issues). If a message is sent successfully but the acknowledgement is lost and the message is resent with the same MessageDeduplicationId after the deduplication interval, Amazon SQS can't detect duplicate messages. The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId Property in the Amazon Simple Queue Service Developer Guide. + /// This parameter applies only to FIFO (first-in-first-out) queues. The token used for deduplication of messages within a 5-minute minimum deduplication interval. If a message with a particular MessageDeduplicationId is sent successfully, subsequent messages with the same MessageDeduplicationId are accepted successfully but aren't delivered. For more information, see Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide. Every message must have a unique MessageDeduplicationId, You may provide a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message). If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error. If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one. When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered. The MessageDeduplicationId is available to the recipient of the message (this can be useful for troubleshooting delivery issues). If a message is sent successfully but the acknowledgement is lost and the message is resent with the same MessageDeduplicationId after the deduplication interval, Amazon SQS can't detect duplicate messages. The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId Property in the Amazon Simple Queue Service Developer Guide. public let messageDeduplicationId: String? /// The body of the message. public let messageBody: String @@ -1083,7 +1172,7 @@ extension Sqs { } public struct DeleteMessageBatchResultEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: true, type: .string) ] /// Represents a successfully deleted message. @@ -1099,7 +1188,7 @@ extension Sqs { } public struct SendMessageBatchResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Successful", required: true, type: .structure), AWSShapeMember(label: "Failed", required: true, type: .structure) ] diff --git a/Sources/AWSSDKSwift/Services/ssm/Ssm_API.swift b/Sources/AWSSDKSwift/Services/ssm/Ssm_API.swift index b7ced09093d..8ae5cc28a86 100644 --- a/Sources/AWSSDKSwift/Services/ssm/Ssm_API.swift +++ b/Sources/AWSSDKSwift/Services/ssm/Ssm_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon EC2 Systems Manager Amazon EC2 Systems Manager is a collection of capabilities that helps you automate management tasks such as collecting system inventory, applying operating system (OS) patches, automating the creation of Amazon Machine Images (AMIs), and configuring operating systems (OSs) and applications at scale. Systems Manager lets you remotely and securely manage the configuration of your managed instances. A managed instance is any Amazon EC2 instance or on-premises machine in your hybrid environment that has been configured for Systems Manager. This reference is intended to be used with the Amazon EC2 Systems Manager User Guide. To get started, verify prerequisites and configure managed instances. For more information, see Systems Manager Prerequisites. +AWS Systems Manager AWS Systems Manager is a collection of capabilities that helps you automate management tasks such as collecting system inventory, applying operating system (OS) patches, automating the creation of Amazon Machine Images (AMIs), and configuring operating systems (OSs) and applications at scale. Systems Manager lets you remotely and securely manage the configuration of your managed instances. A managed instance is any Amazon EC2 instance or on-premises machine in your hybrid environment that has been configured for Systems Manager. This reference is intended to be used with the AWS Systems Manager User Guide. To get started, verify prerequisites and configure managed instances. For more information, see Systems Manager Prerequisites. For information about other API actions you can perform on Amazon EC2 instances, see the Amazon EC2 API Reference. For information about how to use a Query API, see Making API Requests. */ public struct Ssm { @@ -25,109 +25,279 @@ public struct Ssm { ) } - /// Describes the associations for the specified Systems Manager document or instance. - public func describeAssociation(_ input: DescribeAssociationRequest) throws -> DescribeAssociationResult { - return try client.send(operation: "DescribeAssociation", path: "/", httpMethod: "POST", input: input) + /// Retrieves the individual task executions (one per target) for a particular task executed as part of a Maintenance Window execution. + public func describeMaintenanceWindowExecutionTaskInvocations(_ input: DescribeMaintenanceWindowExecutionTaskInvocationsRequest) throws -> DescribeMaintenanceWindowExecutionTaskInvocationsResult { + return try client.send(operation: "DescribeMaintenanceWindowExecutionTaskInvocations", path: "/", httpMethod: "POST", input: input) } - /// List all versions for a document. - public func listDocumentVersions(_ input: ListDocumentVersionsRequest) throws -> ListDocumentVersionsResult { - return try client.send(operation: "ListDocumentVersions", path: "/", httpMethod: "POST", input: input) + /// Get detailed information about a particular Automation execution. + public func getAutomationExecution(_ input: GetAutomationExecutionRequest) throws -> GetAutomationExecutionResult { + return try client.send(operation: "GetAutomationExecution", path: "/", httpMethod: "POST", input: input) } - /// An invocation is copy of a command sent to a specific instance. A command can apply to one or more instances. A command invocation applies to one instance. For example, if a user executes SendCommand against three instances, then a command invocation is created for each requested instance ID. ListCommandInvocations provide status about command execution. - public func listCommandInvocations(_ input: ListCommandInvocationsRequest) throws -> ListCommandInvocationsResult { - return try client.send(operation: "ListCommandInvocations", path: "/", httpMethod: "POST", input: input) + /// Describes the specified Systems Manager document. + public func describeDocument(_ input: DescribeDocumentRequest) throws -> DescribeDocumentResult { + return try client.send(operation: "DescribeDocument", path: "/", httpMethod: "POST", input: input) } - /// Lists all patches that could possibly be included in a patch baseline. - public func describeAvailablePatches(_ input: DescribeAvailablePatchesRequest) throws -> DescribeAvailablePatchesResult { - return try client.send(operation: "DescribeAvailablePatches", path: "/", httpMethod: "POST", input: input) + /// Retrieves the Maintenance Windows in an AWS account. + public func describeMaintenanceWindows(_ input: DescribeMaintenanceWindowsRequest) throws -> DescribeMaintenanceWindowsResult { + return try client.send(operation: "DescribeMaintenanceWindows", path: "/", httpMethod: "POST", input: input) } - /// Removes the server or virtual machine from the list of registered servers. You can reregister the instance again at any time. If you don't plan to use Run Command on the server, we suggest uninstalling the SSM Agent first. - public func deregisterManagedInstance(_ input: DeregisterManagedInstanceRequest) throws -> DeregisterManagedInstanceResult { - return try client.send(operation: "DeregisterManagedInstance", path: "/", httpMethod: "POST", input: input) + /// Modifies the target of an existing Maintenance Window. You can't change the target type, but you can change the following: The target from being an ID target to a Tag target, or a Tag target to an ID target. IDs for an ID target. Tags for a Tag target. Owner. Name. Description. If a parameter is null, then the corresponding field is not modified. + public func updateMaintenanceWindowTarget(_ input: UpdateMaintenanceWindowTargetRequest) throws -> UpdateMaintenanceWindowTargetResult { + return try client.send(operation: "UpdateMaintenanceWindowTarget", path: "/", httpMethod: "POST", input: input) } - /// Updates an existing Maintenance Window. Only specified parameters are modified. - public func updateMaintenanceWindow(_ input: UpdateMaintenanceWindowRequest) throws -> UpdateMaintenanceWindowResult { - return try client.send(operation: "UpdateMaintenanceWindow", path: "/", httpMethod: "POST", input: input) + /// Returns a list of the tags assigned to the specified resource. + public func listTagsForResource(_ input: ListTagsForResourceRequest) throws -> ListTagsForResourceResult { + return try client.send(operation: "ListTagsForResource", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the Maintenance Windows in an AWS account. - public func describeMaintenanceWindows(_ input: DescribeMaintenanceWindowsRequest) throws -> DescribeMaintenanceWindowsResult { - return try client.send(operation: "DescribeMaintenanceWindows", path: "/", httpMethod: "POST", input: input) + /// Adds a new task to a Maintenance Window. + public func registerTaskWithMaintenanceWindow(_ input: RegisterTaskWithMaintenanceWindowRequest) throws -> RegisterTaskWithMaintenanceWindowResult { + return try client.send(operation: "RegisterTaskWithMaintenanceWindow", path: "/", httpMethod: "POST", input: input) } - /// Get information about a parameter. - public func describeParameters(_ input: DescribeParametersRequest) throws -> DescribeParametersResult { - return try client.send(operation: "DescribeParameters", path: "/", httpMethod: "POST", input: input) + /// Lists the targets registered with the Maintenance Window. + public func describeMaintenanceWindowTargets(_ input: DescribeMaintenanceWindowTargetsRequest) throws -> DescribeMaintenanceWindowTargetsResult { + return try client.send(operation: "DescribeMaintenanceWindowTargets", path: "/", httpMethod: "POST", input: input) } - /// The status of the associations for the instance(s). - public func describeInstanceAssociationsStatus(_ input: DescribeInstanceAssociationsStatusRequest) throws -> DescribeInstanceAssociationsStatusResult { - return try client.send(operation: "DescribeInstanceAssociationsStatus", path: "/", httpMethod: "POST", input: input) + /// Stop an Automation that is currently executing. + public func stopAutomationExecution(_ input: StopAutomationExecutionRequest) throws -> StopAutomationExecutionResult { + return try client.send(operation: "StopAutomationExecution", path: "/", httpMethod: "POST", input: input) } - /// Lists the associations for the specified Systems Manager document or instance. - public func listAssociations(_ input: ListAssociationsRequest) throws -> ListAssociationsResult { - return try client.send(operation: "ListAssociations", path: "/", httpMethod: "POST", input: input) + /// Retrieves the high-level patch state of one or more instances. + public func describeInstancePatchStates(_ input: DescribeInstancePatchStatesRequest) throws -> DescribeInstancePatchStatesResult { + return try client.send(operation: "DescribeInstancePatchStates", path: "/", httpMethod: "POST", input: input) } - /// Removes a task from a Maintenance Window. - public func deregisterTaskFromMaintenanceWindow(_ input: DeregisterTaskFromMaintenanceWindowRequest) throws -> DeregisterTaskFromMaintenanceWindowResult { - return try client.send(operation: "DeregisterTaskFromMaintenanceWindow", path: "/", httpMethod: "POST", input: input) + /// Updates the status of the Systems Manager document associated with the specified instance. + public func updateAssociationStatus(_ input: UpdateAssociationStatusRequest) throws -> UpdateAssociationStatusResult { + return try client.send(operation: "UpdateAssociationStatus", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of the tags assigned to the specified resource. - public func listTagsForResource(_ input: ListTagsForResourceRequest) throws -> ListTagsForResourceResult { - return try client.send(operation: "ListTagsForResource", path: "/", httpMethod: "POST", input: input) + /// Deletes a Maintenance Window. + public func deleteMaintenanceWindow(_ input: DeleteMaintenanceWindowRequest) throws -> DeleteMaintenanceWindowResult { + return try client.send(operation: "DeleteMaintenanceWindow", path: "/", httpMethod: "POST", input: input) } - /// Lists the commands requested by users of the AWS account. - public func listCommands(_ input: ListCommandsRequest) throws -> ListCommandsResult { - return try client.send(operation: "ListCommands", path: "/", httpMethod: "POST", input: input) + /// Removes all tags from the specified resource. + public func removeTagsFromResource(_ input: RemoveTagsFromResourceRequest) throws -> RemoveTagsFromResourceResult { + return try client.send(operation: "RemoveTagsFromResource", path: "/", httpMethod: "POST", input: input) } - /// Adds a new task to a Maintenance Window. - public func registerTaskWithMaintenanceWindow(_ input: RegisterTaskWithMaintenanceWindowRequest) throws -> RegisterTaskWithMaintenanceWindowResult { - return try client.send(operation: "RegisterTaskWithMaintenanceWindow", path: "/", httpMethod: "POST", input: input) + /// Gets the contents of the specified Systems Manager document. + public func getDocument(_ input: GetDocumentRequest) throws -> GetDocumentResult { + return try client.send(operation: "GetDocument", path: "/", httpMethod: "POST", input: input) + } + + /// Defines the default patch baseline. + public func registerDefaultPatchBaseline(_ input: RegisterDefaultPatchBaselineRequest) throws -> RegisterDefaultPatchBaselineResult { + return try client.send(operation: "RegisterDefaultPatchBaseline", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the patch baselines in your AWS account. + public func describePatchBaselines(_ input: DescribePatchBaselinesRequest) throws -> DescribePatchBaselinesResult { + return try client.send(operation: "DescribePatchBaselines", path: "/", httpMethod: "POST", input: input) + } + + /// Returns high-level aggregated patch compliance state for a patch group. + public func describePatchGroupState(_ input: DescribePatchGroupStateRequest) throws -> DescribePatchGroupStateResult { + return try client.send(operation: "DescribePatchGroupState", path: "/", httpMethod: "POST", input: input) + } + + /// For a specified resource ID, this API action returns a list of compliance statuses for different resource types. Currently, you can only specify one resource ID per call. List results depend on the criteria specified in the filter. + public func listComplianceItems(_ input: ListComplianceItemsRequest) throws -> ListComplianceItemsResult { + return try client.send(operation: "ListComplianceItems", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves a Maintenance Window. + public func getMaintenanceWindow(_ input: GetMaintenanceWindowRequest) throws -> GetMaintenanceWindowResult { + return try client.send(operation: "GetMaintenanceWindow", path: "/", httpMethod: "POST", input: input) + } + + /// Modifies a task assigned to a Maintenance Window. You can't change the task type, but you can change the following values: Task ARN. For example, you can change a RUN_COMMAND task from AWS-RunPowerShellScript to AWS-RunShellScript. Service role ARN. Task parameters. Task priority. Task MaxConcurrency and MaxErrors. Log location. If a parameter is null, then the corresponding field is not modified. Also, if you set Replace to true, then all fields required by the RegisterTaskWithMaintenanceWindow action are required for this request. Optional fields that aren't specified are set to null. + public func updateMaintenanceWindowTask(_ input: UpdateMaintenanceWindowTaskRequest) throws -> UpdateMaintenanceWindowTaskResult { + return try client.send(operation: "UpdateMaintenanceWindowTask", path: "/", httpMethod: "POST", input: input) + } + + /// Returns a summary count of compliant and non-compliant resources for a compliance type. For example, this call can return State Manager associations, patches, or custom compliance types according to the filter criteria that you specify. + public func listComplianceSummaries(_ input: ListComplianceSummariesRequest) throws -> ListComplianceSummariesResult { + return try client.send(operation: "ListComplianceSummaries", path: "/", httpMethod: "POST", input: input) + } + + /// Get information about a parameter by using the parameter name. + public func getParameter(_ input: GetParameterRequest) throws -> GetParameterResult { + return try client.send(operation: "GetParameter", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the patch baseline that should be used for the specified patch group. + public func getPatchBaselineForPatchGroup(_ input: GetPatchBaselineForPatchGroupRequest) throws -> GetPatchBaselineForPatchGroupResult { + return try client.send(operation: "GetPatchBaselineForPatchGroup", path: "/", httpMethod: "POST", input: input) + } + + /// A list of inventory items returned by the request. + public func listInventoryEntries(_ input: ListInventoryEntriesRequest) throws -> ListInventoryEntriesResult { + return try client.send(operation: "ListInventoryEntries", path: "/", httpMethod: "POST", input: input) + } + + /// Disassociates the specified Systems Manager document from the specified instance. When you disassociate a document from an instance, it does not change the configuration of the instance. To change the configuration state of an instance after you disassociate a document, you must create a new document with the desired configuration and associate it with the instance. + public func deleteAssociation(_ input: DeleteAssociationRequest) throws -> DeleteAssociationResult { + return try client.send(operation: "DeleteAssociation", path: "/", httpMethod: "POST", input: input) + } + + /// Assigns or changes an Amazon Identity and Access Management (IAM) role to the managed instance. + public func updateManagedInstanceRole(_ input: UpdateManagedInstanceRoleRequest) throws -> UpdateManagedInstanceRoleResult { + return try client.send(operation: "UpdateManagedInstanceRole", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a resource data sync configuration to a single bucket in Amazon S3. This is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data to the Amazon S3 bucket. To check the status of the sync, use the ListResourceDataSync. By default, data is not encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy. To view an example of a restrictive Amazon S3 bucket policy for Resource Data Sync, see Configuring Resource Data Sync for Inventory. + public func createResourceDataSync(_ input: CreateResourceDataSyncRequest) throws -> CreateResourceDataSyncResult { + return try client.send(operation: "CreateResourceDataSync", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the default patch baseline. + /// Deletes the Systems Manager document and all instance associations to the document. Before you delete the document, we recommend that you use DeleteAssociation to disassociate all instances that are associated with the document. + public func deleteDocument(_ input: DeleteDocumentRequest) throws -> DeleteDocumentResult { + return try client.send(operation: "DeleteDocument", path: "/", httpMethod: "POST", input: input) + } + + /// Associates the specified Systems Manager document with the specified instances or targets. When you associate a document with one or more instances using instance IDs or tags, the SSM Agent running on the instance processes the document and configures the instance as specified. If you associate a document with an instance that already has an associated document, the system throws the AssociationAlreadyExists exception. + public func createAssociation(_ input: CreateAssociationRequest) throws -> CreateAssociationResult { + return try client.send(operation: "CreateAssociation", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the permissions for a Systems Manager document. If you created the document, you are the owner. If a document is shared, it can either be shared privately (by specifying a user's AWS account ID) or publicly (All). + public func describeDocumentPermission(_ input: DescribeDocumentPermissionRequest) throws -> DescribeDocumentPermissionResponse { + return try client.send(operation: "DescribeDocumentPermission", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the tasks in a Maintenance Window. + public func describeMaintenanceWindowTasks(_ input: DescribeMaintenanceWindowTasksRequest) throws -> DescribeMaintenanceWindowTasksResult { + return try client.send(operation: "DescribeMaintenanceWindowTasks", path: "/", httpMethod: "POST", input: input) + } + + /// Delete a list of parameters. This API is used to delete parameters by using the Amazon EC2 console. + public func deleteParameters(_ input: DeleteParametersRequest) throws -> DeleteParametersResult { + return try client.send(operation: "DeleteParameters", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves information about the patches on the specified instance and their state relative to the patch baseline being used for the instance. + public func describeInstancePatches(_ input: DescribeInstancePatchesRequest) throws -> DescribeInstancePatchesResult { + return try client.send(operation: "DescribeInstancePatches", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes a patch baseline. + public func deletePatchBaseline(_ input: DeletePatchBaselineRequest) throws -> DeletePatchBaselineResult { + return try client.send(operation: "DeletePatchBaseline", path: "/", httpMethod: "POST", input: input) + } + + /// Lists all patch groups that have been registered with patch baselines. + public func describePatchGroups(_ input: DescribePatchGroupsRequest) throws -> DescribePatchGroupsResult { + return try client.send(operation: "DescribePatchGroups", path: "/", httpMethod: "POST", input: input) + } + + /// Deletes an activation. You are not required to delete an activation. If you delete an activation, you can no longer use it to register additional managed instances. Deleting an activation does not de-register managed instances. You must manually de-register managed instances. + public func deleteActivation(_ input: DeleteActivationRequest) throws -> DeleteActivationResult { + return try client.send(operation: "DeleteActivation", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the executions of a Maintenance Window. This includes information about when the Maintenance Window was scheduled to be active, and information about tasks registered and run with the Maintenance Window. + public func describeMaintenanceWindowExecutions(_ input: DescribeMaintenanceWindowExecutionsRequest) throws -> DescribeMaintenanceWindowExecutionsResult { + return try client.send(operation: "DescribeMaintenanceWindowExecutions", path: "/", httpMethod: "POST", input: input) + } + + /// Associates the specified Systems Manager document with the specified instances or targets. When you associate a document with one or more instances using instance IDs or tags, the SSM Agent running on the instance processes the document and configures the instance as specified. If you associate a document with an instance that already has an associated document, the system throws the AssociationAlreadyExists exception. + public func createAssociationBatch(_ input: CreateAssociationBatchRequest) throws -> CreateAssociationBatchResult { + return try client.send(operation: "CreateAssociationBatch", path: "/", httpMethod: "POST", input: input) + } + + /// Registers your on-premises server or virtual machine with Amazon EC2 so that you can manage these resources using Run Command. An on-premises server or virtual machine that has been registered with EC2 is called a managed instance. For more information about activations, see Setting Up Systems Manager in Hybrid Environments. + public func createActivation(_ input: CreateActivationRequest) throws -> CreateActivationResult { + return try client.send(operation: "CreateActivation", path: "/", httpMethod: "POST", input: input) + } + + /// Retrieves the default patch baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. public func getDefaultPatchBaseline(_ input: GetDefaultPatchBaselineRequest) throws -> GetDefaultPatchBaselineResult { return try client.send(operation: "GetDefaultPatchBaseline", path: "/", httpMethod: "POST", input: input) } - /// Adds or overwrites one or more tags for the specified resource. Tags are metadata that you assign to your managed instances, Maintenance Windows, or Parameter Store parameters. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed instances that helps you track each instance's owner and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, or Test. Each resource can have a maximum of 10 tags. We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to Amazon EC2 and are interpreted strictly as a string of characters. For more information about tags, see Tagging Your Amazon EC2 Resources in the Amazon EC2 User Guide. - public func addTagsToResource(_ input: AddTagsToResourceRequest) throws -> AddTagsToResourceResult { - return try client.send(operation: "AddTagsToResource", path: "/", httpMethod: "POST", input: input) + /// Return a list of inventory type names for the account, or return a list of attribute names for a specific Inventory item type. + public func getInventorySchema(_ input: GetInventorySchemaRequest) throws -> GetInventorySchemaResult { + return try client.send(operation: "GetInventorySchema", path: "/", httpMethod: "POST", input: input) } - /// Query inventory information. - public func getInventory(_ input: GetInventoryRequest) throws -> GetInventoryResult { - return try client.send(operation: "GetInventory", path: "/", httpMethod: "POST", input: input) + /// Retrieves the current effective patches (the patch and the approval state) for the specified patch baseline. Note that this API applies only to Windows patch baselines. + public func describeEffectivePatchesForPatchBaseline(_ input: DescribeEffectivePatchesForPatchBaselineRequest) throws -> DescribeEffectivePatchesForPatchBaselineResult { + return try client.send(operation: "DescribeEffectivePatchesForPatchBaseline", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the individual task executions (one per target) for a particular task executed as part of a Maintenance Window execution. - public func describeMaintenanceWindowExecutionTaskInvocations(_ input: DescribeMaintenanceWindowExecutionTaskInvocationsRequest) throws -> DescribeMaintenanceWindowExecutionTaskInvocationsResult { - return try client.send(operation: "DescribeMaintenanceWindowExecutionTaskInvocations", path: "/", httpMethod: "POST", input: input) + /// Retrieves all versions of an association for a specific association ID. + public func listAssociationVersions(_ input: ListAssociationVersionsRequest) throws -> ListAssociationVersionsResult { + return try client.send(operation: "ListAssociationVersions", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more of your instances. You can use this to get information about instances like the operating system platform, the SSM Agent version (Linux), status etc. If you specify one or more instance IDs, it returns information for those instances. If you do not specify instance IDs, it returns information for all your instances. If you specify an instance ID that is not valid or an instance that you do not own, you receive an error. - public func describeInstanceInformation(_ input: DescribeInstanceInformationRequest) throws -> DescribeInstanceInformationResult { - return try client.send(operation: "DescribeInstanceInformation", path: "/", httpMethod: "POST", input: input) + /// Executes commands on one or more managed instances. + public func sendCommand(_ input: SendCommandRequest) throws -> SendCommandResult { + return try client.send(operation: "SendCommand", path: "/", httpMethod: "POST", input: input) } - /// Get detailed information about a particular Automation execution. - public func getAutomationExecution(_ input: GetAutomationExecutionRequest) throws -> GetAutomationExecutionResult { - return try client.send(operation: "GetAutomationExecution", path: "/", httpMethod: "POST", input: input) + /// Sends a signal to an Automation execution to change the current behavior or status of the execution. + public func sendAutomationSignal(_ input: SendAutomationSignalRequest) throws -> SendAutomationSignalResult { + return try client.send(operation: "SendAutomationSignal", path: "/", httpMethod: "POST", input: input) } - /// Lists the targets registered with the Maintenance Window. - public func describeMaintenanceWindowTargets(_ input: DescribeMaintenanceWindowTargetsRequest) throws -> DescribeMaintenanceWindowTargetsResult { - return try client.send(operation: "DescribeMaintenanceWindowTargets", path: "/", httpMethod: "POST", input: input) + /// Removes the server or virtual machine from the list of registered servers. You can reregister the instance again at any time. If you don't plan to use Run Command on the server, we suggest uninstalling the SSM Agent first. + public func deregisterManagedInstance(_ input: DeregisterManagedInstanceRequest) throws -> DeregisterManagedInstanceResult { + return try client.send(operation: "DeregisterManagedInstance", path: "/", httpMethod: "POST", input: input) + } + + /// Describes the association for the specified target or instance. If you created the association by using the Targets parameter, then you must retrieve the association by using the association ID. If you created the association by specifying an instance ID and a Systems Manager document, then you retrieve the association by specifying the document name and the instance ID. + public func describeAssociation(_ input: DescribeAssociationRequest) throws -> DescribeAssociationResult { + return try client.send(operation: "DescribeAssociation", path: "/", httpMethod: "POST", input: input) + } + + /// List all versions for a document. + public func listDocumentVersions(_ input: ListDocumentVersionsRequest) throws -> ListDocumentVersionsResult { + return try client.send(operation: "ListDocumentVersions", path: "/", httpMethod: "POST", input: input) + } + + /// An invocation is copy of a command sent to a specific instance. A command can apply to one or more instances. A command invocation applies to one instance. For example, if a user executes SendCommand against three instances, then a command invocation is created for each requested instance ID. ListCommandInvocations provide status about command execution. + public func listCommandInvocations(_ input: ListCommandInvocationsRequest) throws -> ListCommandInvocationsResult { + return try client.send(operation: "ListCommandInvocations", path: "/", httpMethod: "POST", input: input) + } + + /// Lists all patches that could possibly be included in a patch baseline. + public func describeAvailablePatches(_ input: DescribeAvailablePatchesRequest) throws -> DescribeAvailablePatchesResult { + return try client.send(operation: "DescribeAvailablePatches", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the associations for the specified Systems Manager document or instance. + public func listAssociations(_ input: ListAssociationsRequest) throws -> ListAssociationsResult { + return try client.send(operation: "ListAssociations", path: "/", httpMethod: "POST", input: input) + } + + /// Lists the commands requested by users of the AWS account. + public func listCommands(_ input: ListCommandsRequest) throws -> ListCommandsResult { + return try client.send(operation: "ListCommands", path: "/", httpMethod: "POST", input: input) + } + + /// Query inventory information. + public func getInventory(_ input: GetInventoryRequest) throws -> GetInventoryResult { + return try client.send(operation: "GetInventory", path: "/", httpMethod: "POST", input: input) + } + + /// Information about all active and terminated step executions in an Automation workflow. + public func describeAutomationStepExecutions(_ input: DescribeAutomationStepExecutionsRequest) throws -> DescribeAutomationStepExecutionsResult { + return try client.send(operation: "DescribeAutomationStepExecutions", path: "/", httpMethod: "POST", input: input) + } + + /// Returns a resource-level summary count. The summary includes information about compliant and non-compliant statuses and detailed compliance-item severity counts, according to the filter criteria you specify. + public func listResourceComplianceSummaries(_ input: ListResourceComplianceSummariesRequest) throws -> ListResourceComplianceSummariesResult { + return try client.send(operation: "ListResourceComplianceSummaries", path: "/", httpMethod: "POST", input: input) } /// Details about the activation, including: the date and time the activation was created, the expiration date, the IAM role assigned to the instances in the activation, and the number of instances activated by this registration. @@ -140,7 +310,7 @@ public struct Ssm { return try client.send(operation: "DescribeEffectiveInstanceAssociations", path: "/", httpMethod: "POST", input: input) } - /// Describes one or more of your SSM documents. + /// Describes one or more of your Systems Manager documents. public func listDocuments(_ input: ListDocumentsRequest) throws -> ListDocumentsResult { return try client.send(operation: "ListDocuments", path: "/", httpMethod: "POST", input: input) } @@ -150,16 +320,16 @@ public struct Ssm { return try client.send(operation: "ListResourceDataSync", path: "/", httpMethod: "POST", input: input) } - /// Stop an Automation that is currently executing. - public func stopAutomationExecution(_ input: StopAutomationExecutionRequest) throws -> StopAutomationExecutionResult { - return try client.send(operation: "StopAutomationExecution", path: "/", httpMethod: "POST", input: input) - } - /// Deletes a Resource Data Sync configuration. After the configuration is deleted, changes to inventory data on managed instances are no longer synced with the target Amazon S3 bucket. Deleting a sync configuration does not delete data in the target Amazon S3 bucket. public func deleteResourceDataSync(_ input: DeleteResourceDataSyncRequest) throws -> DeleteResourceDataSyncResult { return try client.send(operation: "DeleteResourceDataSync", path: "/", httpMethod: "POST", input: input) } + /// Retrieves a task invocation. A task invocation is a specific task executing on a specific target. Maintenance Windows report status for all invocations. + public func getMaintenanceWindowExecutionTaskInvocation(_ input: GetMaintenanceWindowExecutionTaskInvocationRequest) throws -> GetMaintenanceWindowExecutionTaskInvocationResult { + return try client.send(operation: "GetMaintenanceWindowExecutionTaskInvocation", path: "/", httpMethod: "POST", input: input) + } + /// Get details of a parameter. public func getParameters(_ input: GetParametersRequest) throws -> GetParametersResult { return try client.send(operation: "GetParameters", path: "/", httpMethod: "POST", input: input) @@ -170,11 +340,6 @@ public struct Ssm { return try client.send(operation: "DeleteParameter", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the high-level patch state of one or more instances. - public func describeInstancePatchStates(_ input: DescribeInstancePatchStatesRequest) throws -> DescribeInstancePatchStatesResult { - return try client.send(operation: "DescribeInstancePatchStates", path: "/", httpMethod: "POST", input: input) - } - /// The document you want to update. public func updateDocument(_ input: UpdateDocumentRequest) throws -> UpdateDocumentResult { return try client.send(operation: "UpdateDocument", path: "/", httpMethod: "POST", input: input) @@ -195,37 +360,12 @@ public struct Ssm { return try client.send(operation: "UpdatePatchBaseline", path: "/", httpMethod: "POST", input: input) } - /// Updates the status of the Systems Manager document associated with the specified instance. - public func updateAssociationStatus(_ input: UpdateAssociationStatusRequest) throws -> UpdateAssociationStatusResult { - return try client.send(operation: "UpdateAssociationStatus", path: "/", httpMethod: "POST", input: input) - } - - /// Deletes a Maintenance Window. - public func deleteMaintenanceWindow(_ input: DeleteMaintenanceWindowRequest) throws -> DeleteMaintenanceWindowResult { - return try client.send(operation: "DeleteMaintenanceWindow", path: "/", httpMethod: "POST", input: input) - } - - /// Removes all tags from the specified resource. - public func removeTagsFromResource(_ input: RemoveTagsFromResourceRequest) throws -> RemoveTagsFromResourceResult { - return try client.send(operation: "RemoveTagsFromResource", path: "/", httpMethod: "POST", input: input) - } - - /// Gets the contents of the specified SSM document. - public func getDocument(_ input: GetDocumentRequest) throws -> GetDocumentResult { - return try client.send(operation: "GetDocument", path: "/", httpMethod: "POST", input: input) - } - /// Shares a Systems Manager document publicly or privately. If you share a document privately, you must specify the AWS user account IDs for those people who can use the document. If you share a document publicly, you must specify All as the account ID. public func modifyDocumentPermission(_ input: ModifyDocumentPermissionRequest) throws -> ModifyDocumentPermissionResponse { return try client.send(operation: "ModifyDocumentPermission", path: "/", httpMethod: "POST", input: input) } - /// Defines the default patch baseline. - public func registerDefaultPatchBaseline(_ input: RegisterDefaultPatchBaselineRequest) throws -> RegisterDefaultPatchBaselineResult { - return try client.send(operation: "RegisterDefaultPatchBaseline", path: "/", httpMethod: "POST", input: input) - } - - /// Retrieve parameters in a specific hierarchy. For more information, see Working with Systems Manager Parameters. + /// Retrieve parameters in a specific hierarchy. For more information, see Working with Systems Manager Parameters. Request results are returned on a best-effort basis. If you specify MaxResults in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of MaxResults. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a NextToken. You can specify the NextToken in a subsequent call to get the next set of results. public func getParametersByPath(_ input: GetParametersByPathRequest) throws -> GetParametersByPathResult { return try client.send(operation: "GetParametersByPath", path: "/", httpMethod: "POST", input: input) } @@ -235,19 +375,9 @@ public struct Ssm { return try client.send(operation: "CreateDocument", path: "/", httpMethod: "POST", input: input) } - /// Lists the patch baselines in your AWS account. - public func describePatchBaselines(_ input: DescribePatchBaselinesRequest) throws -> DescribePatchBaselinesResult { - return try client.send(operation: "DescribePatchBaselines", path: "/", httpMethod: "POST", input: input) - } - - /// Returns high-level aggregated patch compliance state for a patch group. - public func describePatchGroupState(_ input: DescribePatchGroupStateRequest) throws -> DescribePatchGroupStateResult { - return try client.send(operation: "DescribePatchGroupState", path: "/", httpMethod: "POST", input: input) - } - - /// Retrieves a Maintenance Window. - public func getMaintenanceWindow(_ input: GetMaintenanceWindowRequest) throws -> GetMaintenanceWindowResult { - return try client.send(operation: "GetMaintenanceWindow", path: "/", httpMethod: "POST", input: input) + /// Lists the tasks in a Maintenance Window. + public func getMaintenanceWindowTask(_ input: GetMaintenanceWindowTaskRequest) throws -> GetMaintenanceWindowTaskResult { + return try client.send(operation: "GetMaintenanceWindowTask", path: "/", httpMethod: "POST", input: input) } /// Registers a target with a Maintenance Window. @@ -270,59 +400,19 @@ public struct Ssm { return try client.send(operation: "DeregisterPatchBaselineForPatchGroup", path: "/", httpMethod: "POST", input: input) } - /// Updates an association. You can only update the document version, schedule, parameters, and Amazon S3 output of an association. + /// Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon S3 output. public func updateAssociation(_ input: UpdateAssociationRequest) throws -> UpdateAssociationResult { return try client.send(operation: "UpdateAssociation", path: "/", httpMethod: "POST", input: input) } - /// Get information about a parameter by using the parameter name. - public func getParameter(_ input: GetParameterRequest) throws -> GetParameterResult { - return try client.send(operation: "GetParameter", path: "/", httpMethod: "POST", input: input) - } - - /// Retrieves the patch baseline that should be used for the specified patch group. - public func getPatchBaselineForPatchGroup(_ input: GetPatchBaselineForPatchGroupRequest) throws -> GetPatchBaselineForPatchGroupResult { - return try client.send(operation: "GetPatchBaselineForPatchGroup", path: "/", httpMethod: "POST", input: input) - } - /// Creates a new Maintenance Window. public func createMaintenanceWindow(_ input: CreateMaintenanceWindowRequest) throws -> CreateMaintenanceWindowResult { return try client.send(operation: "CreateMaintenanceWindow", path: "/", httpMethod: "POST", input: input) } - /// Disassociates the specified Systems Manager document from the specified instance. When you disassociate a document from an instance, it does not change the configuration of the instance. To change the configuration state of an instance after you disassociate a document, you must create a new document with the desired configuration and associate it with the instance. - public func deleteAssociation(_ input: DeleteAssociationRequest) throws -> DeleteAssociationResult { - return try client.send(operation: "DeleteAssociation", path: "/", httpMethod: "POST", input: input) - } - - /// Assigns or changes an Amazon Identity and Access Management (IAM) role to the managed instance. - public func updateManagedInstanceRole(_ input: UpdateManagedInstanceRoleRequest) throws -> UpdateManagedInstanceRoleResult { - return try client.send(operation: "UpdateManagedInstanceRole", path: "/", httpMethod: "POST", input: input) - } - - /// A list of inventory items returned by the request. - public func listInventoryEntries(_ input: ListInventoryEntriesRequest) throws -> ListInventoryEntriesResult { - return try client.send(operation: "ListInventoryEntries", path: "/", httpMethod: "POST", input: input) - } - - /// Creates a resource data sync configuration to a single bucket in Amazon S3. This is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data to the Amazon S3 bucket. To check the status of the sync, use the ListResourceDataSync operation. By default, data is not encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy. To view an example of a restrictive Amazon S3 bucket policy for Resource Data Sync, see Creating a Resource Data Sync. - public func createResourceDataSync(_ input: CreateResourceDataSyncRequest) throws -> CreateResourceDataSyncResult { - return try client.send(operation: "CreateResourceDataSync", path: "/", httpMethod: "POST", input: input) - } - - /// Deletes the Systems Manager document and all instance associations to the document. Before you delete the document, we recommend that you use DeleteAssociation to disassociate all instances that are associated with the document. - public func deleteDocument(_ input: DeleteDocumentRequest) throws -> DeleteDocumentResult { - return try client.send(operation: "DeleteDocument", path: "/", httpMethod: "POST", input: input) - } - - /// Associates the specified Systems Manager document with the specified instances or targets. When you associate a document with one or more instances using instance IDs or tags, the SSM Agent running on the instance processes the document and configures the instance as specified. If you associate a document with an instance that already has an associated document, the system throws the AssociationAlreadyExists exception. - public func createAssociation(_ input: CreateAssociationRequest) throws -> CreateAssociationResult { - return try client.send(operation: "CreateAssociation", path: "/", httpMethod: "POST", input: input) - } - - /// Describes the permissions for a Systems Manager document. If you created the document, you are the owner. If a document is shared, it can either be shared privately (by specifying a user's AWS account ID) or publicly (All). - public func describeDocumentPermission(_ input: DescribeDocumentPermissionRequest) throws -> DescribeDocumentPermissionResponse { - return try client.send(operation: "DescribeDocumentPermission", path: "/", httpMethod: "POST", input: input) + /// Registers a compliance type and other compliance details on a designated resource. This action lets you register custom compliance details with a resource. This call overwrites existing compliance information on the resource, so you must provide a full list of compliance items each time that you send the request. + public func putComplianceItems(_ input: PutComplianceItemsRequest) throws -> PutComplianceItemsResult { + return try client.send(operation: "PutComplianceItems", path: "/", httpMethod: "POST", input: input) } /// Returns detailed information about command execution for an invocation or plugin. @@ -330,41 +420,16 @@ public struct Ssm { return try client.send(operation: "GetCommandInvocation", path: "/", httpMethod: "POST", input: input) } - /// Lists the tasks in a Maintenance Window. - public func describeMaintenanceWindowTasks(_ input: DescribeMaintenanceWindowTasksRequest) throws -> DescribeMaintenanceWindowTasksResult { - return try client.send(operation: "DescribeMaintenanceWindowTasks", path: "/", httpMethod: "POST", input: input) - } - - /// Delete a list of parameters. - public func deleteParameters(_ input: DeleteParametersRequest) throws -> DeleteParametersResult { - return try client.send(operation: "DeleteParameters", path: "/", httpMethod: "POST", input: input) - } - - /// Retrieves information about the patches on the specified instance and their state relative to the patch baseline being used for the instance. - public func describeInstancePatches(_ input: DescribeInstancePatchesRequest) throws -> DescribeInstancePatchesResult { - return try client.send(operation: "DescribeInstancePatches", path: "/", httpMethod: "POST", input: input) - } - /// Set the default version of a document. public func updateDocumentDefaultVersion(_ input: UpdateDocumentDefaultVersionRequest) throws -> UpdateDocumentDefaultVersionResult { return try client.send(operation: "UpdateDocumentDefaultVersion", path: "/", httpMethod: "POST", input: input) } - /// Deletes a patch baseline. - public func deletePatchBaseline(_ input: DeletePatchBaselineRequest) throws -> DeletePatchBaselineResult { - return try client.send(operation: "DeletePatchBaseline", path: "/", httpMethod: "POST", input: input) - } - /// Add one or more parameters to the system. public func putParameter(_ input: PutParameterRequest) throws -> PutParameterResult { return try client.send(operation: "PutParameter", path: "/", httpMethod: "POST", input: input) } - /// Lists all patch groups that have been registered with patch baselines. - public func describePatchGroups(_ input: DescribePatchGroupsRequest) throws -> DescribePatchGroupsResult { - return try client.send(operation: "DescribePatchGroups", path: "/", httpMethod: "POST", input: input) - } - /// Bulk update custom inventory items on one more instance. The request adds an inventory item, if it doesn't already exist, or updates an inventory item, if it does exist. public func putInventory(_ input: PutInventoryRequest) throws -> PutInventoryResult { return try client.send(operation: "PutInventory", path: "/", httpMethod: "POST", input: input) @@ -385,19 +450,14 @@ public struct Ssm { return try client.send(operation: "DeregisterTargetFromMaintenanceWindow", path: "/", httpMethod: "POST", input: input) } - /// Deletes an activation. You are not required to delete an activation. If you delete an activation, you can no longer use it to register additional managed instances. Deleting an activation does not de-register managed instances. You must manually de-register managed instances. - public func deleteActivation(_ input: DeleteActivationRequest) throws -> DeleteActivationResult { - return try client.send(operation: "DeleteActivation", path: "/", httpMethod: "POST", input: input) - } - - /// Retrieves the current snapshot for the patch baseline the instance uses. This API is primarily used by the AWS-ApplyPatchBaseline Systems Manager document. + /// Retrieves the current snapshot for the patch baseline the instance uses. This API is primarily used by the AWS-RunPatchBaseline Systems Manager document. public func getDeployablePatchSnapshotForInstance(_ input: GetDeployablePatchSnapshotForInstanceRequest) throws -> GetDeployablePatchSnapshotForInstanceResult { return try client.send(operation: "GetDeployablePatchSnapshotForInstance", path: "/", httpMethod: "POST", input: input) } - /// Lists the executions of a Maintenance Window (meaning, information about when the Maintenance Window was scheduled to be active and information about tasks registered and run with the Maintenance Window). - public func describeMaintenanceWindowExecutions(_ input: DescribeMaintenanceWindowExecutionsRequest) throws -> DescribeMaintenanceWindowExecutionsResult { - return try client.send(operation: "DescribeMaintenanceWindowExecutions", path: "/", httpMethod: "POST", input: input) + /// For a given Maintenance Window execution, lists the tasks that were executed. + public func describeMaintenanceWindowExecutionTasks(_ input: DescribeMaintenanceWindowExecutionTasksRequest) throws -> DescribeMaintenanceWindowExecutionTasksResult { + return try client.send(operation: "DescribeMaintenanceWindowExecutionTasks", path: "/", httpMethod: "POST", input: input) } /// Query a list of all parameters used by the AWS account. @@ -405,24 +465,19 @@ public struct Ssm { return try client.send(operation: "GetParameterHistory", path: "/", httpMethod: "POST", input: input) } - /// Registers your on-premises server or virtual machine with Amazon EC2 so that you can manage these resources using Run Command. An on-premises server or virtual machine that has been registered with EC2 is called a managed instance. For more information about activations, see Setting Up Systems Manager in Hybrid Environments. - public func createActivation(_ input: CreateActivationRequest) throws -> CreateActivationResult { - return try client.send(operation: "CreateActivation", path: "/", httpMethod: "POST", input: input) - } - /// Retrieves the details about a specific task executed as part of a Maintenance Window execution. public func getMaintenanceWindowExecutionTask(_ input: GetMaintenanceWindowExecutionTaskRequest) throws -> GetMaintenanceWindowExecutionTaskResult { return try client.send(operation: "GetMaintenanceWindowExecutionTask", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the current effective patches (the patch and the approval state) for the specified patch baseline. - public func describeEffectivePatchesForPatchBaseline(_ input: DescribeEffectivePatchesForPatchBaselineRequest) throws -> DescribeEffectivePatchesForPatchBaselineResult { - return try client.send(operation: "DescribeEffectivePatchesForPatchBaseline", path: "/", httpMethod: "POST", input: input) + /// Updates an existing Maintenance Window. Only specified parameters are modified. + public func updateMaintenanceWindow(_ input: UpdateMaintenanceWindowRequest) throws -> UpdateMaintenanceWindowResult { + return try client.send(operation: "UpdateMaintenanceWindow", path: "/", httpMethod: "POST", input: input) } - /// Return a list of inventory type names for the account, or return a list of attribute names for a specific Inventory item type. - public func getInventorySchema(_ input: GetInventorySchemaRequest) throws -> GetInventorySchemaResult { - return try client.send(operation: "GetInventorySchema", path: "/", httpMethod: "POST", input: input) + /// Get information about a parameter. Request results are returned on a best-effort basis. If you specify MaxResults in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of MaxResults. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a NextToken. You can specify the NextToken in a subsequent call to get the next set of results. + public func describeParameters(_ input: DescribeParametersRequest) throws -> DescribeParametersResult { + return try client.send(operation: "DescribeParameters", path: "/", httpMethod: "POST", input: input) } /// Creates a patch baseline. @@ -430,19 +485,19 @@ public struct Ssm { return try client.send(operation: "CreatePatchBaseline", path: "/", httpMethod: "POST", input: input) } - /// Executes commands on one or more managed instances. - public func sendCommand(_ input: SendCommandRequest) throws -> SendCommandResult { - return try client.send(operation: "SendCommand", path: "/", httpMethod: "POST", input: input) + /// Removes a task from a Maintenance Window. + public func deregisterTaskFromMaintenanceWindow(_ input: DeregisterTaskFromMaintenanceWindowRequest) throws -> DeregisterTaskFromMaintenanceWindowResult { + return try client.send(operation: "DeregisterTaskFromMaintenanceWindow", path: "/", httpMethod: "POST", input: input) } - /// For a given Maintenance Window execution, lists the tasks that were executed. - public func describeMaintenanceWindowExecutionTasks(_ input: DescribeMaintenanceWindowExecutionTasksRequest) throws -> DescribeMaintenanceWindowExecutionTasksResult { - return try client.send(operation: "DescribeMaintenanceWindowExecutionTasks", path: "/", httpMethod: "POST", input: input) + /// Describes one or more of your instances. You can use this to get information about instances like the operating system platform, the SSM Agent version (Linux), status etc. If you specify one or more instance IDs, it returns information for those instances. If you do not specify instance IDs, it returns information for all your instances. If you specify an instance ID that is not valid or an instance that you do not own, you receive an error. + public func describeInstanceInformation(_ input: DescribeInstanceInformationRequest) throws -> DescribeInstanceInformationResult { + return try client.send(operation: "DescribeInstanceInformation", path: "/", httpMethod: "POST", input: input) } - /// Associates the specified Systems Manager document with the specified instances or targets. When you associate a document with one or more instances using instance IDs or tags, the SSM Agent running on the instance processes the document and configures the instance as specified. If you associate a document with an instance that already has an associated document, the system throws the AssociationAlreadyExists exception. - public func createAssociationBatch(_ input: CreateAssociationBatchRequest) throws -> CreateAssociationBatchResult { - return try client.send(operation: "CreateAssociationBatch", path: "/", httpMethod: "POST", input: input) + /// Adds or overwrites one or more tags for the specified resource. Tags are metadata that you can assign to your documents, managed instances, Maintenance Windows, Parameter Store parameters, and patch baselines. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed instances that helps you track each instance's owner and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, or Test. Each resource can have a maximum of 10 tags. We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to Amazon EC2 and are interpreted strictly as a string of characters. For more information about tags, see Tagging Your Amazon EC2 Resources in the Amazon EC2 User Guide. + public func addTagsToResource(_ input: AddTagsToResourceRequest) throws -> AddTagsToResourceResult { + return try client.send(operation: "AddTagsToResource", path: "/", httpMethod: "POST", input: input) } /// Registers a patch baseline for a patch group. @@ -450,9 +505,9 @@ public struct Ssm { return try client.send(operation: "RegisterPatchBaselineForPatchGroup", path: "/", httpMethod: "POST", input: input) } - /// Describes the specified SSM document. - public func describeDocument(_ input: DescribeDocumentRequest) throws -> DescribeDocumentResult { - return try client.send(operation: "DescribeDocument", path: "/", httpMethod: "POST", input: input) + /// The status of the associations for the instance(s). + public func describeInstanceAssociationsStatus(_ input: DescribeInstanceAssociationsStatusRequest) throws -> DescribeInstanceAssociationsStatusResult { + return try client.send(operation: "DescribeInstanceAssociationsStatus", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/ssm/Ssm_Error.swift b/Sources/AWSSDKSwift/Services/ssm/Ssm_Error.swift index cbac6148450..d87925d013a 100644 --- a/Sources/AWSSDKSwift/Services/ssm/Ssm_Error.swift +++ b/Sources/AWSSDKSwift/Services/ssm/Ssm_Error.swift @@ -4,80 +4,94 @@ import AWSSDKSwiftCore /// Error enum for Ssm public enum SsmError: AWSErrorType { - case associationDoesNotExist(message: String?) + case doesNotExistException(message: String?) case internalServerError(message: String?) + case automationExecutionNotFoundException(message: String?) case invalidDocument(message: String?) - case invalidInstanceId(message: String?) - case invalidNextToken(message: String?) - case invalidCommandId(message: String?) - case invalidFilterKey(message: String?) - case doesNotExistException(message: String?) - case invalidFilterOption(message: String?) - case invalidFilterValue(message: String?) + case invalidDocumentVersion(message: String?) case invalidResourceType(message: String?) case invalidResourceId(message: String?) case idempotentParameterMismatch(message: String?) case resourceLimitExceededException(message: String?) - case tooManyTagsError(message: String?) + case featureNotAvailableException(message: String?) + case invalidAutomationStatusUpdateException(message: String?) + case invalidNextToken(message: String?) + case invalidInstanceId(message: String?) + case associationDoesNotExist(message: String?) + case statusUnchanged(message: String?) + case tooManyUpdates(message: String?) case invalidFilter(message: String?) - case invalidTypeNameException(message: String?) - case invalidResultAttributeException(message: String?) - case invalidInstanceInformationFilterValue(message: String?) - case automationExecutionNotFoundException(message: String?) - case resourceDataSyncNotFoundException(message: String?) case invalidKeyId(message: String?) case parameterNotFound(message: String?) + case parameterVersionNotFound(message: String?) + case invalidTypeNameException(message: String?) + case resourceDataSyncCountExceededException(message: String?) + case resourceDataSyncAlreadyExistsException(message: String?) + case resourceDataSyncInvalidConfigurationException(message: String?) + case invalidDocumentOperation(message: String?) + case associatedInstances(message: String?) + case associationAlreadyExists(message: String?) + case associationLimitExceeded(message: String?) + case unsupportedPlatformType(message: String?) + case invalidOutputLocation(message: String?) + case invalidParameters(message: String?) + case invalidTarget(message: String?) + case invalidSchedule(message: String?) + case invalidPermissionType(message: String?) + case resourceInUseException(message: String?) + case invalidActivationId(message: String?) + case invalidActivation(message: String?) + case duplicateInstanceId(message: String?) + case unsupportedOperatingSystem(message: String?) + case invalidOutputFolder(message: String?) case maxDocumentSizeExceeded(message: String?) + case invalidRole(message: String?) + case invalidNotificationConfig(message: String?) + case automationStepNotFoundException(message: String?) + case invalidAutomationSignalException(message: String?) + case invalidAssociationVersion(message: String?) + case invalidCommandId(message: String?) + case invalidFilterKey(message: String?) + case invalidResultAttributeException(message: String?) + case invalidFilterValue(message: String?) + case resourceDataSyncNotFoundException(message: String?) case documentVersionLimitExceeded(message: String?) case duplicateDocumentContent(message: String?) case invalidDocumentContent(message: String?) - case invalidDocumentVersion(message: String?) case invalidDocumentSchemaVersion(message: String?) - case duplicateInstanceId(message: String?) case automationDefinitionNotFoundException(message: String?) case invalidAutomationExecutionParametersException(message: String?) case automationExecutionLimitExceededException(message: String?) case automationDefinitionVersionNotFoundException(message: String?) - case statusUnchanged(message: String?) - case tooManyUpdates(message: String?) - case invalidPermissionType(message: String?) case documentPermissionLimit(message: String?) case documentLimitExceeded(message: String?) + case invalidFilterOption(message: String?) case documentAlreadyExists(message: String?) - case invalidSchedule(message: String?) - case invalidParameters(message: String?) - case invalidOutputLocation(message: String?) case invalidUpdate(message: String?) - case invalidTarget(message: String?) - case resourceDataSyncCountExceededException(message: String?) - case resourceDataSyncAlreadyExistsException(message: String?) - case resourceDataSyncInvalidConfigurationException(message: String?) - case invalidDocumentOperation(message: String?) - case associatedInstances(message: String?) - case associationAlreadyExists(message: String?) - case associationLimitExceeded(message: String?) - case unsupportedPlatformType(message: String?) + case associationVersionLimitExceeded(message: String?) + case invalidItemContentException(message: String?) + case totalSizeLimitExceededException(message: String?) + case itemSizeLimitExceededException(message: String?) + case complianceTypeCountLimitExceededException(message: String?) case invalidPluginName(message: String?) case invocationDoesNotExist(message: String?) - case resourceInUseException(message: String?) case parameterLimitExceeded(message: String?) case parameterAlreadyExists(message: String?) case hierarchyLevelLimitExceededException(message: String?) case hierarchyTypeMismatchException(message: String?) case invalidAllowedPatternException(message: String?) + case parameterMaxVersionLimitExceeded(message: String?) case parameterPatternMismatchException(message: String?) case unsupportedParameterType(message: String?) - case invalidItemContentException(message: String?) - case totalSizeLimitExceededException(message: String?) - case itemSizeLimitExceededException(message: String?) case itemContentMismatchException(message: String?) case customSchemaCountLimitExceededException(message: String?) case unsupportedInventorySchemaVersionException(message: String?) - case invalidActivationId(message: String?) - case invalidActivation(message: String?) - case invalidOutputFolder(message: String?) - case invalidRole(message: String?) - case invalidNotificationConfig(message: String?) + case unsupportedInventoryItemContextException(message: String?) + case invalidInventoryItemContextException(message: String?) + case subTypeCountLimitExceededException(message: String?) + case targetInUseException(message: String?) + case invalidInstanceInformationFilterValue(message: String?) + case tooManyTagsError(message: String?) case alreadyExistsException(message: String?) } @@ -88,26 +102,16 @@ extension SsmError { errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) } switch errorCode { - case "AssociationDoesNotExist": - self = .associationDoesNotExist(message: message) + case "DoesNotExistException": + self = .doesNotExistException(message: message) case "InternalServerError": self = .internalServerError(message: message) + case "AutomationExecutionNotFoundException": + self = .automationExecutionNotFoundException(message: message) case "InvalidDocument": self = .invalidDocument(message: message) - case "InvalidInstanceId": - self = .invalidInstanceId(message: message) - case "InvalidNextToken": - self = .invalidNextToken(message: message) - case "InvalidCommandId": - self = .invalidCommandId(message: message) - case "InvalidFilterKey": - self = .invalidFilterKey(message: message) - case "DoesNotExistException": - self = .doesNotExistException(message: message) - case "InvalidFilterOption": - self = .invalidFilterOption(message: message) - case "InvalidFilterValue": - self = .invalidFilterValue(message: message) + case "InvalidDocumentVersion": + self = .invalidDocumentVersion(message: message) case "InvalidResourceType": self = .invalidResourceType(message: message) case "InvalidResourceId": @@ -116,38 +120,98 @@ extension SsmError { self = .idempotentParameterMismatch(message: message) case "ResourceLimitExceededException": self = .resourceLimitExceededException(message: message) - case "TooManyTagsError": - self = .tooManyTagsError(message: message) + case "FeatureNotAvailableException": + self = .featureNotAvailableException(message: message) + case "InvalidAutomationStatusUpdateException": + self = .invalidAutomationStatusUpdateException(message: message) + case "InvalidNextToken": + self = .invalidNextToken(message: message) + case "InvalidInstanceId": + self = .invalidInstanceId(message: message) + case "AssociationDoesNotExist": + self = .associationDoesNotExist(message: message) + case "StatusUnchanged": + self = .statusUnchanged(message: message) + case "TooManyUpdates": + self = .tooManyUpdates(message: message) case "InvalidFilter": self = .invalidFilter(message: message) - case "InvalidTypeNameException": - self = .invalidTypeNameException(message: message) - case "InvalidResultAttributeException": - self = .invalidResultAttributeException(message: message) - case "InvalidInstanceInformationFilterValue": - self = .invalidInstanceInformationFilterValue(message: message) - case "AutomationExecutionNotFoundException": - self = .automationExecutionNotFoundException(message: message) - case "ResourceDataSyncNotFoundException": - self = .resourceDataSyncNotFoundException(message: message) case "InvalidKeyId": self = .invalidKeyId(message: message) case "ParameterNotFound": self = .parameterNotFound(message: message) + case "ParameterVersionNotFound": + self = .parameterVersionNotFound(message: message) + case "InvalidTypeNameException": + self = .invalidTypeNameException(message: message) + case "ResourceDataSyncCountExceededException": + self = .resourceDataSyncCountExceededException(message: message) + case "ResourceDataSyncAlreadyExistsException": + self = .resourceDataSyncAlreadyExistsException(message: message) + case "ResourceDataSyncInvalidConfigurationException": + self = .resourceDataSyncInvalidConfigurationException(message: message) + case "InvalidDocumentOperation": + self = .invalidDocumentOperation(message: message) + case "AssociatedInstances": + self = .associatedInstances(message: message) + case "AssociationAlreadyExists": + self = .associationAlreadyExists(message: message) + case "AssociationLimitExceeded": + self = .associationLimitExceeded(message: message) + case "UnsupportedPlatformType": + self = .unsupportedPlatformType(message: message) + case "InvalidOutputLocation": + self = .invalidOutputLocation(message: message) + case "InvalidParameters": + self = .invalidParameters(message: message) + case "InvalidTarget": + self = .invalidTarget(message: message) + case "InvalidSchedule": + self = .invalidSchedule(message: message) + case "InvalidPermissionType": + self = .invalidPermissionType(message: message) + case "ResourceInUseException": + self = .resourceInUseException(message: message) + case "InvalidActivationId": + self = .invalidActivationId(message: message) + case "InvalidActivation": + self = .invalidActivation(message: message) + case "DuplicateInstanceId": + self = .duplicateInstanceId(message: message) + case "UnsupportedOperatingSystem": + self = .unsupportedOperatingSystem(message: message) + case "InvalidOutputFolder": + self = .invalidOutputFolder(message: message) case "MaxDocumentSizeExceeded": self = .maxDocumentSizeExceeded(message: message) + case "InvalidRole": + self = .invalidRole(message: message) + case "InvalidNotificationConfig": + self = .invalidNotificationConfig(message: message) + case "AutomationStepNotFoundException": + self = .automationStepNotFoundException(message: message) + case "InvalidAutomationSignalException": + self = .invalidAutomationSignalException(message: message) + case "InvalidAssociationVersion": + self = .invalidAssociationVersion(message: message) + case "InvalidCommandId": + self = .invalidCommandId(message: message) + case "InvalidFilterKey": + self = .invalidFilterKey(message: message) + case "InvalidResultAttributeException": + self = .invalidResultAttributeException(message: message) + case "InvalidFilterValue": + self = .invalidFilterValue(message: message) + case "ResourceDataSyncNotFoundException": + self = .resourceDataSyncNotFoundException(message: message) case "DocumentVersionLimitExceeded": self = .documentVersionLimitExceeded(message: message) case "DuplicateDocumentContent": self = .duplicateDocumentContent(message: message) case "InvalidDocumentContent": self = .invalidDocumentContent(message: message) - case "InvalidDocumentVersion": - self = .invalidDocumentVersion(message: message) case "InvalidDocumentSchemaVersion": self = .invalidDocumentSchemaVersion(message: message) - case "DuplicateInstanceId": - self = .duplicateInstanceId(message: message) case "AutomationDefinitionNotFoundException": self = .automationDefinitionNotFoundException(message: message) case "InvalidAutomationExecutionParametersException": @@ -156,50 +220,30 @@ extension SsmError { self = .automationExecutionLimitExceededException(message: message) case "AutomationDefinitionVersionNotFoundException": self = .automationDefinitionVersionNotFoundException(message: message) - case "StatusUnchanged": - self = .statusUnchanged(message: message) - case "TooManyUpdates": - self = .tooManyUpdates(message: message) - case "InvalidPermissionType": - self = .invalidPermissionType(message: message) case "DocumentPermissionLimit": self = .documentPermissionLimit(message: message) case "DocumentLimitExceeded": self = .documentLimitExceeded(message: message) + case "InvalidFilterOption": + self = .invalidFilterOption(message: message) case "DocumentAlreadyExists": self = .documentAlreadyExists(message: message) - case "InvalidSchedule": - self = .invalidSchedule(message: message) - case "InvalidParameters": - self = .invalidParameters(message: message) - case "InvalidOutputLocation": - self = .invalidOutputLocation(message: message) case "InvalidUpdate": self = .invalidUpdate(message: message) - case "InvalidTarget": - self = .invalidTarget(message: message) - case "ResourceDataSyncCountExceededException": - self = .resourceDataSyncCountExceededException(message: message) - case "ResourceDataSyncAlreadyExistsException": - self = .resourceDataSyncAlreadyExistsException(message: message) - case "ResourceDataSyncInvalidConfigurationException": - self = .resourceDataSyncInvalidConfigurationException(message: message) - case "InvalidDocumentOperation": - self = .invalidDocumentOperation(message: message) - case "AssociatedInstances": - self = .associatedInstances(message: message) - case "AssociationAlreadyExists": - self = .associationAlreadyExists(message: message) - case "AssociationLimitExceeded": - self = .associationLimitExceeded(message: message) - case "UnsupportedPlatformType": - self = .unsupportedPlatformType(message: message) + case "AssociationVersionLimitExceeded": + self = .associationVersionLimitExceeded(message: message) + case "InvalidItemContentException": + self = .invalidItemContentException(message: message) + case "TotalSizeLimitExceededException": + self = .totalSizeLimitExceededException(message: message) + case "ItemSizeLimitExceededException": + self = .itemSizeLimitExceededException(message: message) + case "ComplianceTypeCountLimitExceededException": + self = .complianceTypeCountLimitExceededException(message: message) case "InvalidPluginName": self = .invalidPluginName(message: message) case "InvocationDoesNotExist": self = .invocationDoesNotExist(message: message) - case "ResourceInUseException": - self = .resourceInUseException(message: message) case "ParameterLimitExceeded": self = .parameterLimitExceeded(message: message) case "ParameterAlreadyExists": @@ -210,32 +254,30 @@ extension SsmError { self = .hierarchyTypeMismatchException(message: message) case "InvalidAllowedPatternException": self = .invalidAllowedPatternException(message: message) + case "ParameterMaxVersionLimitExceeded": + self = .parameterMaxVersionLimitExceeded(message: message) case "ParameterPatternMismatchException": self = .parameterPatternMismatchException(message: message) case "UnsupportedParameterType": self = .unsupportedParameterType(message: message) - case "InvalidItemContentException": - self = .invalidItemContentException(message: message) - case "TotalSizeLimitExceededException": - self = .totalSizeLimitExceededException(message: message) - case "ItemSizeLimitExceededException": - self = .itemSizeLimitExceededException(message: message) case "ItemContentMismatchException": self = .itemContentMismatchException(message: message) case "CustomSchemaCountLimitExceededException": self = .customSchemaCountLimitExceededException(message: message) case "UnsupportedInventorySchemaVersionException": self = .unsupportedInventorySchemaVersionException(message: message) - case "InvalidActivationId": - self = .invalidActivationId(message: message) - case "InvalidActivation": - self = .invalidActivation(message: message) - case "InvalidOutputFolder": - self = .invalidOutputFolder(message: message) - case "InvalidRole": - self = .invalidRole(message: message) - case "InvalidNotificationConfig": - self = .invalidNotificationConfig(message: message) + case "UnsupportedInventoryItemContextException": + self = .unsupportedInventoryItemContextException(message: message) + case "InvalidInventoryItemContextException": + self = .invalidInventoryItemContextException(message: message) + case "SubTypeCountLimitExceededException": + self = .subTypeCountLimitExceededException(message: message) + case "TargetInUseException": + self = .targetInUseException(message: message) + case "InvalidInstanceInformationFilterValue": + self = .invalidInstanceInformationFilterValue(message: message) + case "TooManyTagsError": + self = .tooManyTagsError(message: message) case "AlreadyExistsException": self = .alreadyExistsException(message: message) default: diff --git a/Sources/AWSSDKSwift/Services/ssm/Ssm_Shapes.swift b/Sources/AWSSDKSwift/Services/ssm/Ssm_Shapes.swift index 07525f2612e..fcce7147fc7 100644 --- a/Sources/AWSSDKSwift/Services/ssm/Ssm_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/ssm/Ssm_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Ssm { public struct DescribePatchBaselinesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -32,7 +32,7 @@ extension Ssm { } public struct DescribeActivationsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActivationList", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -52,23 +52,29 @@ extension Ssm { } } - public struct FailedCreateAssociationList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FailedCreateAssociationEntry", required: false, type: .list) + public struct NonCompliantSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NonCompliantCount", required: false, type: .integer), + AWSShapeMember(label: "SeveritySummary", required: false, type: .structure) ] - public let failedCreateAssociationEntry: [FailedCreateAssociation]? + /// The total number of compliance items that are not compliant. + public let nonCompliantCount: Int32? + /// A summary of the non-compliance severity by compliance type + public let severitySummary: SeveritySummary? - public init(failedCreateAssociationEntry: [FailedCreateAssociation]? = nil) { - self.failedCreateAssociationEntry = failedCreateAssociationEntry + public init(nonCompliantCount: Int32? = nil, severitySummary: SeveritySummary? = nil) { + self.nonCompliantCount = nonCompliantCount + self.severitySummary = severitySummary } private enum CodingKeys: String, CodingKey { - case failedCreateAssociationEntry = "FailedCreateAssociationEntry" + case nonCompliantCount = "NonCompliantCount" + case severitySummary = "SeveritySummary" } } public struct DescribeEffectivePatchesForPatchBaselineResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "EffectivePatches", required: false, type: .list) ] @@ -89,12 +95,12 @@ extension Ssm { } public struct UpdateAssociationStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "AssociationStatus", required: true, type: .structure) ] - /// The name of the SSM document. + /// The name of the Systems Manager document. public let name: String /// The ID of the instance. public let instanceId: String @@ -115,7 +121,7 @@ extension Ssm { } public struct DeregisterTargetFromMaintenanceWindowResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: false, type: .string), AWSShapeMember(label: "WindowTargetId", required: false, type: .string) ] @@ -135,67 +141,39 @@ extension Ssm { } } - public struct GetParameterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "WithDecryption", required: false, type: .boolean), - AWSShapeMember(label: "Name", required: true, type: .string) - ] - /// Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types. - public let withDecryption: Bool? - /// The name of the parameter you want to query. - public let name: String - - public init(withDecryption: Bool? = nil, name: String) { - self.withDecryption = withDecryption - self.name = name - } - - private enum CodingKeys: String, CodingKey { - case withDecryption = "WithDecryption" - case name = "Name" - } - } - - public struct InventoryItemList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Item", required: false, type: .list) - ] - public let item: [InventoryItem]? - - public init(item: [InventoryItem]? = nil) { - self.item = item - } - - private enum CodingKeys: String, CodingKey { - case item = "Item" - } - } - public enum ResourceTypeForTagging: String, CustomStringConvertible, Codable { + case document = "Document" case managedinstance = "ManagedInstance" case maintenancewindow = "MaintenanceWindow" case parameter = "Parameter" + case patchbaseline = "PatchBaseline" public var description: String { return self.rawValue } } - public struct ParametersFilter: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Key", required: true, type: .enum), - AWSShapeMember(label: "Values", required: true, type: .list) + public enum PlatformType: String, CustomStringConvertible, Codable { + case windows = "Windows" + case linux = "Linux" + public var description: String { return self.rawValue } + } + + public struct GetMaintenanceWindowTaskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WindowId", required: true, type: .string), + AWSShapeMember(label: "WindowTaskId", required: true, type: .string) ] - /// The name of the filter. - public let key: ParametersFilterKey - /// The filter values. - public let values: [String] + /// The Maintenance Window ID that includes the task to retrieve. + public let windowId: String + /// The Maintenance Window task ID to retrieve. + public let windowTaskId: String - public init(key: ParametersFilterKey, values: [String]) { - self.key = key - self.values = values + public init(windowId: String, windowTaskId: String) { + self.windowId = windowId + self.windowTaskId = windowTaskId } private enum CodingKeys: String, CodingKey { - case key = "Key" - case values = "Values" + case windowId = "WindowId" + case windowTaskId = "WindowTaskId" } } @@ -211,14 +189,14 @@ extension Ssm { public var description: String { return self.rawValue } } - public enum PlatformType: String, CustomStringConvertible, Codable { - case windows = "Windows" - case linux = "Linux" + public enum ExecutionMode: String, CustomStringConvertible, Codable { + case auto = "Auto" + case interactive = "Interactive" public var description: String { return self.rawValue } } public struct ResultAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TypeName", required: true, type: .string) ] /// Name of the inventory item type. Valid value: AWS:InstanceInformation. Default Value: AWS:InstanceInformation. @@ -233,8 +211,76 @@ extension Ssm { } } + public struct ListAssociationVersionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxResults", required: false, type: .integer), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "AssociationId", required: true, type: .string) + ] + /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + public let maxResults: Int32? + /// A token to start the list. Use this token to get the next set of results. + public let nextToken: String? + /// The association ID for which you want to view all versions. + public let associationId: String + + public init(maxResults: Int32? = nil, nextToken: String? = nil, associationId: String) { + self.maxResults = maxResults + self.nextToken = nextToken + self.associationId = associationId + } + + private enum CodingKeys: String, CodingKey { + case maxResults = "MaxResults" + case nextToken = "NextToken" + case associationId = "AssociationId" + } + } + + public struct GetParameterRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WithDecryption", required: false, type: .boolean), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types. + public let withDecryption: Bool? + /// The name of the parameter you want to query. + public let name: String + + public init(withDecryption: Bool? = nil, name: String) { + self.withDecryption = withDecryption + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case withDecryption = "WithDecryption" + case name = "Name" + } + } + + public struct ParametersFilter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Key", required: true, type: .enum), + AWSShapeMember(label: "Values", required: true, type: .list) + ] + /// The name of the filter. + public let key: ParametersFilterKey + /// The filter values. + public let values: [String] + + public init(key: ParametersFilterKey, values: [String]) { + self.key = key + self.values = values + } + + private enum CodingKeys: String, CodingKey { + case key = "Key" + case values = "Values" + } + } + public struct DescribePatchGroupsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Mappings", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -255,90 +301,79 @@ extension Ssm { } public struct RegisterTargetWithMaintenanceWindowRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: true, type: .string), - AWSShapeMember(label: "Targets", required: true, type: .list), + AWSShapeMember(label: "OwnerInformation", required: false, type: .string), AWSShapeMember(label: "ClientToken", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "ResourceType", required: true, type: .enum), - AWSShapeMember(label: "OwnerInformation", required: false, type: .string) + AWSShapeMember(label: "Targets", required: true, type: .list), + AWSShapeMember(label: "Description", required: false, type: .string) ] /// The ID of the Maintenance Window the target should be registered with. public let windowId: String - /// The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>. - public let targets: [Target] + /// User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window. + public let ownerInformation: String? /// User-provided idempotency token. public let clientToken: String? + /// An optional name for the target. + public let name: String? /// The type of target being registered with the Maintenance Window. public let resourceType: MaintenanceWindowResourceType - /// User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window. - public let ownerInformation: String? + /// The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>. + public let targets: [Target] + /// An optional description for the target. + public let description: String? - public init(windowId: String, targets: [Target], clientToken: String? = nil, resourceType: MaintenanceWindowResourceType, ownerInformation: String? = nil) { + public init(windowId: String, ownerInformation: String? = nil, clientToken: String? = nil, name: String? = nil, resourceType: MaintenanceWindowResourceType, targets: [Target], description: String? = nil) { self.windowId = windowId - self.targets = targets + self.ownerInformation = ownerInformation self.clientToken = clientToken + self.name = name self.resourceType = resourceType - self.ownerInformation = ownerInformation + self.targets = targets + self.description = description } private enum CodingKeys: String, CodingKey { case windowId = "WindowId" - case targets = "Targets" + case ownerInformation = "OwnerInformation" case clientToken = "ClientToken" + case name = "Name" case resourceType = "ResourceType" - case ownerInformation = "OwnerInformation" + case targets = "Targets" + case description = "Description" } } public struct GetDocumentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "DocumentFormat", required: false, type: .enum), AWSShapeMember(label: "DocumentVersion", required: false, type: .string) ] - /// The name of the SSM document. + /// The name of the Systems Manager document. public let name: String + /// Returns the document in the specified format. The document format can be either JSON or YAML. JSON is the default format. + public let documentFormat: DocumentFormat? /// The document version for which you want information. public let documentVersion: String? - public init(name: String, documentVersion: String? = nil) { + public init(name: String, documentFormat: DocumentFormat? = nil, documentVersion: String? = nil) { self.name = name + self.documentFormat = documentFormat self.documentVersion = documentVersion } private enum CodingKeys: String, CodingKey { case name = "Name" + case documentFormat = "DocumentFormat" case documentVersion = "DocumentVersion" } } - public struct FailureDetails: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FailureType", required: false, type: .string), - AWSShapeMember(label: "Details", required: false, type: .map), - AWSShapeMember(label: "FailureStage", required: false, type: .string) - ] - /// The type of Automation failure. Failure types include the following: Action, Permission, Throttling, Verification, Internal. - public let failureType: String? - /// Detailed information about the Automation step failure. - public let details: [String: [String]]? - /// The stage of the Automation execution when the failure occurred. The stages include the following: InputValidation, PreVerification, Invocation, PostVerification. - public let failureStage: String? - - public init(failureType: String? = nil, details: [String: [String]]? = nil, failureStage: String? = nil) { - self.failureType = failureType - self.details = details - self.failureStage = failureStage - } - - private enum CodingKeys: String, CodingKey { - case failureType = "FailureType" - case details = "Details" - case failureStage = "FailureStage" - } - } - public struct DescribeMaintenanceWindowTargetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: true, type: .string), AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -369,19 +404,19 @@ extension Ssm { } public struct ListAssociationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AssociationFilterList", required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssociationFilterList", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] /// One or more filters. Use a filter to return a more specific list of results. - public let associationFilterList: AssociationFilterList? + public let associationFilterList: [AssociationFilter]? /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. public let maxResults: Int32? - public init(associationFilterList: AssociationFilterList? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + public init(associationFilterList: [AssociationFilter]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { self.associationFilterList = associationFilterList self.nextToken = nextToken self.maxResults = maxResults @@ -394,38 +429,76 @@ extension Ssm { } } + public struct FailureDetails: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FailureType", required: false, type: .string), + AWSShapeMember(label: "Details", required: false, type: .map), + AWSShapeMember(label: "FailureStage", required: false, type: .string) + ] + /// The type of Automation failure. Failure types include the following: Action, Permission, Throttling, Verification, Internal. + public let failureType: String? + /// Detailed information about the Automation step failure. + public let details: [String: [String]]? + /// The stage of the Automation execution when the failure occurred. The stages include the following: InputValidation, PreVerification, Invocation, PostVerification. + public let failureStage: String? + + public init(failureType: String? = nil, details: [String: [String]]? = nil, failureStage: String? = nil) { + self.failureType = failureType + self.details = details + self.failureStage = failureStage + } + + private enum CodingKeys: String, CodingKey { + case failureType = "FailureType" + case details = "Details" + case failureStage = "FailureStage" + } + } + public struct GetInventorySchemaRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TypeName", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxResults", required: false, type: .integer), + AWSShapeMember(label: "Aggregator", required: false, type: .boolean), + AWSShapeMember(label: "SubType", required: false, type: .boolean), AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) + AWSShapeMember(label: "TypeName", required: false, type: .string) ] - /// The type of inventory item to return. - public let typeName: String? - /// The token for the next set of items to return. (You received this token from a previous call.) - public let nextToken: String? /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. public let maxResults: Int32? + /// Returns inventory schemas that support aggregation. For example, this call returns the AWS:InstanceInformation type, because it supports aggregation based on the PlatformName, PlatformType, and PlatformVersion attributes. + public let aggregator: Bool? + /// Returns the sub-type schema for a specified inventory type. + public let subType: Bool? + /// The token for the next set of items to return. (You received this token from a previous call.) + public let nextToken: String? + /// The type of inventory item to return. + public let typeName: String? - public init(typeName: String? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { - self.typeName = typeName - self.nextToken = nextToken + public init(maxResults: Int32? = nil, aggregator: Bool? = nil, subType: Bool? = nil, nextToken: String? = nil, typeName: String? = nil) { self.maxResults = maxResults + self.aggregator = aggregator + self.subType = subType + self.nextToken = nextToken + self.typeName = typeName } private enum CodingKeys: String, CodingKey { - case typeName = "TypeName" - case nextToken = "NextToken" case maxResults = "MaxResults" + case aggregator = "Aggregator" + case subType = "SubType" + case nextToken = "NextToken" + case typeName = "TypeName" } } public struct CreatePatchBaselineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientToken", required: false, type: .string), AWSShapeMember(label: "ApprovedPatches", required: false, type: .list), AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "OperatingSystem", required: false, type: .enum), AWSShapeMember(label: "RejectedPatches", required: false, type: .list), + AWSShapeMember(label: "ApprovedPatchesComplianceLevel", required: false, type: .enum), AWSShapeMember(label: "ApprovalRules", required: false, type: .structure), AWSShapeMember(label: "GlobalFilters", required: false, type: .structure), AWSShapeMember(label: "Description", required: false, type: .string) @@ -436,8 +509,12 @@ extension Ssm { public let approvedPatches: [String]? /// The name of the patch baseline. public let name: String + /// Defines the operating system the patch baseline applies to. The Default value is WINDOWS. + public let operatingSystem: OperatingSystem? /// A list of explicitly rejected patches for the baseline. public let rejectedPatches: [String]? + /// Defines the compliance level for approved patches. This means that if an approved patch is reported as missing, this is the severity of the compliance violation. Valid compliance severity levels include the following: CRITICAL, HIGH, MEDIUM, LOW, INFORMATIONAL, UNSPECIFIED. The default value is UNSPECIFIED. + public let approvedPatchesComplianceLevel: PatchComplianceLevel? /// A set of rules used to include patches in the baseline. public let approvalRules: PatchRuleGroup? /// A set of global filters used to exclude patches from the baseline. @@ -445,11 +522,13 @@ extension Ssm { /// A description of the patch baseline. public let description: String? - public init(clientToken: String? = nil, approvedPatches: [String]? = nil, name: String, rejectedPatches: [String]? = nil, approvalRules: PatchRuleGroup? = nil, globalFilters: PatchFilterGroup? = nil, description: String? = nil) { + public init(clientToken: String? = nil, approvedPatches: [String]? = nil, name: String, operatingSystem: OperatingSystem? = nil, rejectedPatches: [String]? = nil, approvedPatchesComplianceLevel: PatchComplianceLevel? = nil, approvalRules: PatchRuleGroup? = nil, globalFilters: PatchFilterGroup? = nil, description: String? = nil) { self.clientToken = clientToken self.approvedPatches = approvedPatches self.name = name + self.operatingSystem = operatingSystem self.rejectedPatches = rejectedPatches + self.approvedPatchesComplianceLevel = approvedPatchesComplianceLevel self.approvalRules = approvalRules self.globalFilters = globalFilters self.description = description @@ -459,7 +538,9 @@ extension Ssm { case clientToken = "ClientToken" case approvedPatches = "ApprovedPatches" case name = "Name" + case operatingSystem = "OperatingSystem" case rejectedPatches = "RejectedPatches" + case approvedPatchesComplianceLevel = "ApprovedPatchesComplianceLevel" case approvalRules = "ApprovalRules" case globalFilters = "GlobalFilters" case description = "Description" @@ -467,7 +548,7 @@ extension Ssm { } public struct DescribeMaintenanceWindowExecutionTaskInvocationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowExecutionId", required: true, type: .string), AWSShapeMember(label: "TaskId", required: true, type: .string), AWSShapeMember(label: "Filters", required: false, type: .list), @@ -502,76 +583,169 @@ extension Ssm { } } - public struct DescribeInstancePatchesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Filters", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "InstanceId", required: true, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) - ] - /// Each entry in the array is a structure containing: Key (string, between 1 and 128 characters) Values (array of strings, each string between 1 and 256 characters) - public let filters: [PatchOrchestratorFilter]? - /// The token for the next set of items to return. (You received this token from a previous call.) - public let nextToken: String? - /// The ID of the instance whose patch state information should be retrieved. - public let instanceId: String - /// The maximum number of patches to return (per page). - public let maxResults: Int32? - - public init(filters: [PatchOrchestratorFilter]? = nil, nextToken: String? = nil, instanceId: String, maxResults: Int32? = nil) { - self.filters = filters - self.nextToken = nextToken - self.instanceId = instanceId - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case filters = "Filters" - case nextToken = "NextToken" - case instanceId = "InstanceId" - case maxResults = "MaxResults" - } - } - public struct DeregisterTargetFromMaintenanceWindowRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: true, type: .string), - AWSShapeMember(label: "WindowTargetId", required: true, type: .string) + AWSShapeMember(label: "WindowTargetId", required: true, type: .string), + AWSShapeMember(label: "Safe", required: false, type: .boolean) ] /// The ID of the Maintenance Window the target should be removed from. public let windowId: String /// The ID of the target definition to remove. public let windowTargetId: String + /// The system checks if the target is being referenced by a task. If the target is being referenced, the system returns an error and does not deregister the target from the Maintenance Window. + public let safe: Bool? - public init(windowId: String, windowTargetId: String) { + public init(windowId: String, windowTargetId: String, safe: Bool? = nil) { self.windowId = windowId self.windowTargetId = windowTargetId + self.safe = safe } private enum CodingKeys: String, CodingKey { case windowId = "WindowId" case windowTargetId = "WindowTargetId" + case safe = "Safe" } } - public struct DeleteResourceDataSyncRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SyncName", required: true, type: .string) + public class InventoryAggregator: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Aggregators", required: false, type: .list), + AWSShapeMember(label: "Expression", required: false, type: .string) ] - /// The name of the configuration to delete. - public let syncName: String + /// Nested aggregators to further refine aggregation for an inventory type. + public let aggregators: [InventoryAggregator]? + /// The inventory type and attribute name for aggregation. + public let expression: String? - public init(syncName: String) { - self.syncName = syncName + public init(aggregators: [InventoryAggregator]? = nil, expression: String? = nil) { + self.aggregators = aggregators + self.expression = expression } private enum CodingKeys: String, CodingKey { - case syncName = "SyncName" + case aggregators = "Aggregators" + case expression = "Expression" + } + } + + public struct UpdateMaintenanceWindowTargetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WindowId", required: true, type: .string), + AWSShapeMember(label: "Replace", required: false, type: .boolean), + AWSShapeMember(label: "OwnerInformation", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "WindowTargetId", required: true, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) + ] + /// The Maintenance Window ID with which to modify the target. + public let windowId: String + /// If True, then all fields that are required by the RegisterTargetWithMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null. + public let replace: Bool? + /// User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window. + public let ownerInformation: String? + /// A name for the update. + public let name: String? + /// The targets to add or replace. + public let targets: [Target]? + /// The target ID to modify. + public let windowTargetId: String + /// An optional description for the update. + public let description: String? + + public init(windowId: String, replace: Bool? = nil, ownerInformation: String? = nil, name: String? = nil, targets: [Target]? = nil, windowTargetId: String, description: String? = nil) { + self.windowId = windowId + self.replace = replace + self.ownerInformation = ownerInformation + self.name = name + self.targets = targets + self.windowTargetId = windowTargetId + self.description = description + } + + private enum CodingKeys: String, CodingKey { + case windowId = "WindowId" + case replace = "Replace" + case ownerInformation = "OwnerInformation" + case name = "Name" + case targets = "Targets" + case windowTargetId = "WindowTargetId" + case description = "Description" + } + } + + public struct DescribeInstancePatchesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "InstanceId", required: true, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Each entry in the array is a structure containing: Key (string, between 1 and 128 characters) Values (array of strings, each string between 1 and 256 characters) + public let filters: [PatchOrchestratorFilter]? + /// The token for the next set of items to return. (You received this token from a previous call.) + public let nextToken: String? + /// The ID of the instance whose patch state information should be retrieved. + public let instanceId: String + /// The maximum number of patches to return (per page). + public let maxResults: Int32? + + public init(filters: [PatchOrchestratorFilter]? = nil, nextToken: String? = nil, instanceId: String, maxResults: Int32? = nil) { + self.filters = filters + self.nextToken = nextToken + self.instanceId = instanceId + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case filters = "Filters" + case nextToken = "NextToken" + case instanceId = "InstanceId" + case maxResults = "MaxResults" + } + } + + public struct ListAssociationVersionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssociationVersions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// Information about all versions of the association for the specified association ID. + public let associationVersions: [AssociationVersionInfo]? + /// The token for the next set of items to return. Use this token to get the next set of results. + public let nextToken: String? + + public init(associationVersions: [AssociationVersionInfo]? = nil, nextToken: String? = nil) { + self.associationVersions = associationVersions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case associationVersions = "AssociationVersions" + case nextToken = "NextToken" + } + } + + public struct DeleteResourceDataSyncRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SyncName", required: true, type: .string) + ] + /// The name of the configuration to delete. + public let syncName: String + + public init(syncName: String) { + self.syncName = syncName + } + + private enum CodingKeys: String, CodingKey { + case syncName = "SyncName" } } public struct DescribeMaintenanceWindowExecutionTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowExecutionId", required: true, type: .string), AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -602,7 +776,7 @@ extension Ssm { } public struct DescribeInstancePatchStatesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "InstanceIds", required: true, type: .list), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -628,7 +802,7 @@ extension Ssm { } public struct SendCommandRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceRoleArn", required: false, type: .string), AWSShapeMember(label: "OutputS3BucketName", required: false, type: .string), AWSShapeMember(label: "NotificationConfig", required: false, type: .structure), @@ -714,7 +888,7 @@ extension Ssm { } public struct GetMaintenanceWindowExecutionTaskRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowExecutionId", required: true, type: .string), AWSShapeMember(label: "TaskId", required: true, type: .string) ] @@ -735,7 +909,7 @@ extension Ssm { } public struct CommandPlugin: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ResponseStartDateTime", required: false, type: .timestamp), AWSShapeMember(label: "ResponseFinishDateTime", required: false, type: .timestamp), @@ -806,52 +980,59 @@ extension Ssm { } public struct GetDeployablePatchSnapshotForInstanceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .string), - AWSShapeMember(label: "InstanceId", required: false, type: .string), - AWSShapeMember(label: "SnapshotDownloadUrl", required: false, type: .string) + AWSShapeMember(label: "SnapshotDownloadUrl", required: false, type: .string), + AWSShapeMember(label: "Product", required: false, type: .string), + AWSShapeMember(label: "InstanceId", required: false, type: .string) ] /// The user-defined snapshot ID. public let snapshotId: String? - /// The ID of the instance. - public let instanceId: String? /// A pre-signed Amazon S3 URL that can be used to download the patch snapshot. public let snapshotDownloadUrl: String? + /// Returns the specific operating system (for example Windows Server 2012 or Amazon Linux 2015.09) on the instance for the specified patch snapshot. + public let product: String? + /// The ID of the instance. + public let instanceId: String? - public init(snapshotId: String? = nil, instanceId: String? = nil, snapshotDownloadUrl: String? = nil) { + public init(snapshotId: String? = nil, snapshotDownloadUrl: String? = nil, product: String? = nil, instanceId: String? = nil) { self.snapshotId = snapshotId - self.instanceId = instanceId self.snapshotDownloadUrl = snapshotDownloadUrl + self.product = product + self.instanceId = instanceId } private enum CodingKeys: String, CodingKey { case snapshotId = "SnapshotId" - case instanceId = "InstanceId" case snapshotDownloadUrl = "SnapshotDownloadUrl" + case product = "Product" + case instanceId = "InstanceId" } } - public struct DocumentFilterList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DocumentFilter", required: false, type: .list) + public struct DescribeAutomationStepExecutionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StepExecutions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) ] - public let documentFilter: [DocumentFilter]? + /// A list of details about the current state of all steps that make up an execution. + public let stepExecutions: [StepExecution]? + /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. + public let nextToken: String? - public init(documentFilter: [DocumentFilter]? = nil) { - self.documentFilter = documentFilter + public init(stepExecutions: [StepExecution]? = nil, nextToken: String? = nil) { + self.stepExecutions = stepExecutions + self.nextToken = nextToken } private enum CodingKeys: String, CodingKey { - case documentFilter = "DocumentFilter" + case stepExecutions = "StepExecutions" + case nextToken = "NextToken" } } - public struct DeleteActivationResult: AWSShape { - - } - public struct DescribeParametersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -871,12 +1052,63 @@ extension Ssm { } } + public struct DeleteActivationResult: AWSShape { + + } + + public struct ResolvedTargets: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Truncated", required: false, type: .boolean), + AWSShapeMember(label: "ParameterValues", required: false, type: .list) + ] + /// A boolean value indicating whether the resolved target list is truncated. + public let truncated: Bool? + /// A list of parameter values sent to targets that resolved during the Automation execution. + public let parameterValues: [String]? + + public init(truncated: Bool? = nil, parameterValues: [String]? = nil) { + self.truncated = truncated + self.parameterValues = parameterValues + } + + private enum CodingKeys: String, CodingKey { + case truncated = "Truncated" + case parameterValues = "ParameterValues" + } + } + + public struct ComplianceSummaryItem: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CompliantSummary", required: false, type: .structure), + AWSShapeMember(label: "ComplianceType", required: false, type: .string), + AWSShapeMember(label: "NonCompliantSummary", required: false, type: .structure) + ] + /// A list of COMPLIANT items for the specified compliance type. + public let compliantSummary: CompliantSummary? + /// The type of compliance item. For example, the compliance type can be Association, Patch, or Custom:string. + public let complianceType: String? + /// A list of NON_COMPLIANT items for the specified compliance type. + public let nonCompliantSummary: NonCompliantSummary? + + public init(compliantSummary: CompliantSummary? = nil, complianceType: String? = nil, nonCompliantSummary: NonCompliantSummary? = nil) { + self.compliantSummary = compliantSummary + self.complianceType = complianceType + self.nonCompliantSummary = nonCompliantSummary + } + + private enum CodingKeys: String, CodingKey { + case compliantSummary = "CompliantSummary" + case complianceType = "ComplianceType" + case nonCompliantSummary = "NonCompliantSummary" + } + } + public struct DescribeDocumentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "DocumentVersion", required: false, type: .string) ] - /// The name of the SSM document. + /// The name of the Systems Manager document. public let name: String /// The document version for which you want information. Can be a specific version or the default version. public let documentVersion: String? @@ -893,7 +1125,7 @@ extension Ssm { } public struct DescribeInstanceAssociationsStatusResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceAssociationStatusInfos", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -913,8 +1145,34 @@ extension Ssm { } } + public struct GetMaintenanceWindowExecutionTaskInvocationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WindowExecutionId", required: true, type: .string), + AWSShapeMember(label: "TaskId", required: true, type: .string), + AWSShapeMember(label: "InvocationId", required: true, type: .string) + ] + /// The ID of the Maintenance Window execution for which the task is a part. + public let windowExecutionId: String + /// The ID of the specific task in the Maintenance Window task that should be retrieved. + public let taskId: String + /// The invocation ID to retrieve. + public let invocationId: String + + public init(windowExecutionId: String, taskId: String, invocationId: String) { + self.windowExecutionId = windowExecutionId + self.taskId = taskId + self.invocationId = invocationId + } + + private enum CodingKeys: String, CodingKey { + case windowExecutionId = "WindowExecutionId" + case taskId = "TaskId" + case invocationId = "InvocationId" + } + } + public struct DeletePatchBaselineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: true, type: .string) ] /// The ID of the patch baseline to delete. @@ -930,16 +1188,16 @@ extension Ssm { } public struct GetInventoryResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Entities", required: false, type: .structure) + AWSShapeMember(label: "Entities", required: false, type: .list) ] /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. public let nextToken: String? /// Collection of inventory entities such as a collection of instance inventory. - public let entities: InventoryResultEntityList? + public let entities: [InventoryResultEntity]? - public init(nextToken: String? = nil, entities: InventoryResultEntityList? = nil) { + public init(nextToken: String? = nil, entities: [InventoryResultEntity]? = nil) { self.nextToken = nextToken self.entities = entities } @@ -951,7 +1209,7 @@ extension Ssm { } public struct DescribeInstancePatchStatesForPatchGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "InstancePatchStates", required: false, type: .list) ] @@ -971,23 +1229,8 @@ extension Ssm { } } - public struct InstanceInformationFilterValueSet: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceInformationFilterValue", required: false, type: .list) - ] - public let instanceInformationFilterValue: [String]? - - public init(instanceInformationFilterValue: [String]? = nil) { - self.instanceInformationFilterValue = instanceInformationFilterValue - } - - private enum CodingKeys: String, CodingKey { - case instanceInformationFilterValue = "InstanceInformationFilterValue" - } - } - public struct Command: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OutputS3BucketName", required: false, type: .string), AWSShapeMember(label: "NotificationConfig", required: false, type: .structure), AWSShapeMember(label: "CompletedCount", required: false, type: .integer), @@ -1103,14 +1346,15 @@ extension Ssm { } public struct CreateAssociationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .map), AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "DocumentVersion", required: false, type: .string), AWSShapeMember(label: "Targets", required: false, type: .list), AWSShapeMember(label: "OutputLocation", required: false, type: .structure), - AWSShapeMember(label: "ScheduleExpression", required: false, type: .string) + AWSShapeMember(label: "ScheduleExpression", required: false, type: .string), + AWSShapeMember(label: "AssociationName", required: false, type: .string) ] /// The parameters for the documents runtime configuration. public let parameters: [String: [String]]? @@ -1126,8 +1370,10 @@ extension Ssm { public let outputLocation: InstanceAssociationOutputLocation? /// A cron expression when the association will be applied to the target(s). public let scheduleExpression: String? + /// Specify a descriptive name for the association. + public let associationName: String? - public init(parameters: [String: [String]]? = nil, instanceId: String? = nil, name: String, documentVersion: String? = nil, targets: [Target]? = nil, outputLocation: InstanceAssociationOutputLocation? = nil, scheduleExpression: String? = nil) { + public init(parameters: [String: [String]]? = nil, instanceId: String? = nil, name: String, documentVersion: String? = nil, targets: [Target]? = nil, outputLocation: InstanceAssociationOutputLocation? = nil, scheduleExpression: String? = nil, associationName: String? = nil) { self.parameters = parameters self.instanceId = instanceId self.name = name @@ -1135,6 +1381,7 @@ extension Ssm { self.targets = targets self.outputLocation = outputLocation self.scheduleExpression = scheduleExpression + self.associationName = associationName } private enum CodingKeys: String, CodingKey { @@ -1145,26 +1392,27 @@ extension Ssm { case targets = "Targets" case outputLocation = "OutputLocation" case scheduleExpression = "ScheduleExpression" + case associationName = "AssociationName" } } public struct ModifyDocumentPermissionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PermissionType", required: true, type: .enum), AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "AccountIdsToRemove", required: false, type: .structure), - AWSShapeMember(label: "AccountIdsToAdd", required: false, type: .structure) + AWSShapeMember(label: "AccountIdsToRemove", required: false, type: .list), + AWSShapeMember(label: "AccountIdsToAdd", required: false, type: .list) ] /// The permission type for the document. The permission type can be Share. public let permissionType: DocumentPermissionType /// The name of the document that you want to share. public let name: String /// The AWS user accounts that should no longer have access to the document. The AWS user account can either be a group of account IDs or All. This action has a higher priority than AccountIdsToAdd. If you specify an account ID to add and the same ID to remove, the system removes access to the document. - public let accountIdsToRemove: AccountIdList? + public let accountIdsToRemove: [String]? /// The AWS user accounts that should have access to the document. The account IDs can either be a group of account IDs or All. - public let accountIdsToAdd: AccountIdList? + public let accountIdsToAdd: [String]? - public init(permissionType: DocumentPermissionType, name: String, accountIdsToRemove: AccountIdList? = nil, accountIdsToAdd: AccountIdList? = nil) { + public init(permissionType: DocumentPermissionType, name: String, accountIdsToRemove: [String]? = nil, accountIdsToAdd: [String]? = nil) { self.permissionType = permissionType self.name = name self.accountIdsToRemove = accountIdsToRemove @@ -1180,7 +1428,7 @@ extension Ssm { } public struct RegisterDefaultPatchBaselineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: true, type: .string) ] /// The ID of the patch baseline that should be the default patch baseline. @@ -1200,7 +1448,7 @@ extension Ssm { } public struct PatchComplianceData: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Severity", required: true, type: .string), AWSShapeMember(label: "Classification", required: true, type: .string), AWSShapeMember(label: "InstalledTime", required: true, type: .timestamp), @@ -1212,13 +1460,13 @@ extension Ssm { public let severity: String /// The classification of the patch (for example, SecurityUpdates, Updates, CriticalUpdates). public let classification: String - /// The date/time the patch was installed on the instance. + /// The date/time the patch was installed on the instance. Note that not all operating systems provide this level of information. public let installedTime: TimeStamp /// The title of the patch. public let title: String /// The state of the patch on the instance (INSTALLED, INSTALLED_OTHER, MISSING, NOT_APPLICABLE or FAILED). public let state: PatchComplianceDataState - /// The Microsoft Knowledge Base ID of the patch. + /// The operating system-specific ID of the patch. public let kBId: String public init(severity: String, classification: String, installedTime: TimeStamp, title: String, state: PatchComplianceDataState, kBId: String) { @@ -1241,7 +1489,7 @@ extension Ssm { } public struct DeregisterTaskFromMaintenanceWindowResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: false, type: .string), AWSShapeMember(label: "WindowTaskId", required: false, type: .string) ] @@ -1262,7 +1510,7 @@ extension Ssm { } public struct PatchRuleGroup: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PatchRules", required: true, type: .list) ] /// The rules that make up the rule group. @@ -1277,23 +1525,8 @@ extension Ssm { } } - public struct InstanceInformationStringFilterList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceInformationStringFilter", required: false, type: .list) - ] - public let instanceInformationStringFilter: [InstanceInformationStringFilter]? - - public init(instanceInformationStringFilter: [InstanceInformationStringFilter]? = nil) { - self.instanceInformationStringFilter = instanceInformationStringFilter - } - - private enum CodingKeys: String, CodingKey { - case instanceInformationStringFilter = "InstanceInformationStringFilter" - } - } - public struct DescribeMaintenanceWindowTasksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: true, type: .string), AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -1323,17 +1556,8 @@ extension Ssm { } } - public enum PatchComplianceDataState: String, CustomStringConvertible, Codable { - case installed = "INSTALLED" - case installedOther = "INSTALLED_OTHER" - case missing = "MISSING" - case notApplicable = "NOT_APPLICABLE" - case failed = "FAILED" - public var description: String { return self.rawValue } - } - public struct DescribeAutomationExecutionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -1358,8 +1582,17 @@ extension Ssm { } } + public enum PatchComplianceDataState: String, CustomStringConvertible, Codable { + case installed = "INSTALLED" + case installedOther = "INSTALLED_OTHER" + case missing = "MISSING" + case notApplicable = "NOT_APPLICABLE" + case failed = "FAILED" + public var description: String { return self.rawValue } + } + public struct GetMaintenanceWindowResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: false, type: .string), AWSShapeMember(label: "ModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "Name", required: false, type: .string), @@ -1368,7 +1601,8 @@ extension Ssm { AWSShapeMember(label: "Schedule", required: false, type: .string), AWSShapeMember(label: "Cutoff", required: false, type: .integer), AWSShapeMember(label: "Duration", required: false, type: .integer), - AWSShapeMember(label: "CreatedDate", required: false, type: .timestamp) + AWSShapeMember(label: "CreatedDate", required: false, type: .timestamp), + AWSShapeMember(label: "Description", required: false, type: .string) ] /// The ID of the created Maintenance Window. public let windowId: String? @@ -1388,8 +1622,10 @@ extension Ssm { public let duration: Int32? /// The date the Maintenance Window was created. public let createdDate: TimeStamp? + /// The description of the Maintenance Window. + public let description: String? - public init(windowId: String? = nil, modifiedDate: TimeStamp? = nil, name: String? = nil, enabled: Bool? = nil, allowUnassociatedTargets: Bool? = nil, schedule: String? = nil, cutoff: Int32? = nil, duration: Int32? = nil, createdDate: TimeStamp? = nil) { + public init(windowId: String? = nil, modifiedDate: TimeStamp? = nil, name: String? = nil, enabled: Bool? = nil, allowUnassociatedTargets: Bool? = nil, schedule: String? = nil, cutoff: Int32? = nil, duration: Int32? = nil, createdDate: TimeStamp? = nil, description: String? = nil) { self.windowId = windowId self.modifiedDate = modifiedDate self.name = name @@ -1399,6 +1635,7 @@ extension Ssm { self.cutoff = cutoff self.duration = duration self.createdDate = createdDate + self.description = description } private enum CodingKeys: String, CodingKey { @@ -1411,11 +1648,12 @@ extension Ssm { case cutoff = "Cutoff" case duration = "Duration" case createdDate = "CreatedDate" + case description = "Description" } } public struct LoggingInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3KeyPrefix", required: false, type: .string), AWSShapeMember(label: "S3Region", required: true, type: .string), AWSShapeMember(label: "S3BucketName", required: true, type: .string) @@ -1441,7 +1679,7 @@ extension Ssm { } public struct InventoryResultItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CaptureTime", required: false, type: .string), AWSShapeMember(label: "Content", required: true, type: .list), AWSShapeMember(label: "SchemaVersion", required: true, type: .string), @@ -1477,7 +1715,7 @@ extension Ssm { } public struct GetPatchBaselineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: true, type: .string) ] /// The ID of the patch baseline to retrieve. @@ -1497,90 +1735,145 @@ extension Ssm { } public struct AutomationExecutionMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ExecutedBy", required: false, type: .string), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CurrentAction", required: false, type: .string), AWSShapeMember(label: "AutomationExecutionStatus", required: false, type: .enum), + AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "ResolvedTargets", required: false, type: .structure), + AWSShapeMember(label: "CurrentStepName", required: false, type: .string), + AWSShapeMember(label: "Outputs", required: false, type: .map), + AWSShapeMember(label: "ExecutionStartTime", required: false, type: .timestamp), + AWSShapeMember(label: "Mode", required: false, type: .enum), + AWSShapeMember(label: "ParentAutomationExecutionId", required: false, type: .string), + AWSShapeMember(label: "MaxErrors", required: false, type: .string), + AWSShapeMember(label: "Target", required: false, type: .string), + AWSShapeMember(label: "ExecutionEndTime", required: false, type: .timestamp), + AWSShapeMember(label: "ExecutedBy", required: false, type: .string), + AWSShapeMember(label: "TargetParameterName", required: false, type: .string), AWSShapeMember(label: "DocumentName", required: false, type: .string), AWSShapeMember(label: "DocumentVersion", required: false, type: .string), - AWSShapeMember(label: "ExecutionStartTime", required: false, type: .timestamp), - AWSShapeMember(label: "Outputs", required: false, type: .map), + AWSShapeMember(label: "MaxConcurrency", required: false, type: .string), AWSShapeMember(label: "LogFile", required: false, type: .string), - AWSShapeMember(label: "AutomationExecutionId", required: false, type: .string), - AWSShapeMember(label: "ExecutionEndTime", required: false, type: .timestamp) + AWSShapeMember(label: "FailureMessage", required: false, type: .string), + AWSShapeMember(label: "AutomationExecutionId", required: false, type: .string) ] - /// The IAM role ARN of the user who executed the Automation. - public let executedBy: String? + /// The action of the currently executing step. + public let currentAction: String? /// The status of the execution. Valid values include: Running, Succeeded, Failed, Timed out, or Cancelled. public let automationExecutionStatus: AutomationExecutionStatus? + /// The targets defined by the user when starting the Automation. + public let targets: [Target]? + /// A list of targets that resolved during the execution. + public let resolvedTargets: ResolvedTargets? + /// The name of the currently executing step. + public let currentStepName: String? + /// The list of execution outputs as defined in the Automation document. + public let outputs: [String: [String]]? + /// The time the execution started.> + public let executionStartTime: TimeStamp? + /// The Automation execution mode. + public let mode: ExecutionMode? + /// The ExecutionId of the parent Automation. + public let parentAutomationExecutionId: String? + /// The MaxErrors value specified by the user when starting the Automation. + public let maxErrors: String? + /// The list of execution outputs as defined in the Automation document. + public let target: String? + /// The time the execution finished. This is not populated if the execution is still in progress. + public let executionEndTime: TimeStamp? + /// The IAM role ARN of the user who executed the Automation. + public let executedBy: String? + /// The list of execution outputs as defined in the Automation document. + public let targetParameterName: String? /// The name of the Automation document used during execution. public let documentName: String? /// The document version used during the execution. public let documentVersion: String? - /// The time the execution started.> - public let executionStartTime: TimeStamp? - /// The list of execution outputs as defined in the Automation document. - public let outputs: [String: [String]]? + /// The MaxConcurrency value specified by the user when starting the Automation. + public let maxConcurrency: String? /// An Amazon S3 bucket where execution information is stored. public let logFile: String? + /// The list of execution outputs as defined in the Automation document. + public let failureMessage: String? /// The execution ID. public let automationExecutionId: String? - /// The time the execution finished. This is not populated if the execution is still in progress. - public let executionEndTime: TimeStamp? - public init(executedBy: String? = nil, automationExecutionStatus: AutomationExecutionStatus? = nil, documentName: String? = nil, documentVersion: String? = nil, executionStartTime: TimeStamp? = nil, outputs: [String: [String]]? = nil, logFile: String? = nil, automationExecutionId: String? = nil, executionEndTime: TimeStamp? = nil) { - self.executedBy = executedBy + public init(currentAction: String? = nil, automationExecutionStatus: AutomationExecutionStatus? = nil, targets: [Target]? = nil, resolvedTargets: ResolvedTargets? = nil, currentStepName: String? = nil, outputs: [String: [String]]? = nil, executionStartTime: TimeStamp? = nil, mode: ExecutionMode? = nil, parentAutomationExecutionId: String? = nil, maxErrors: String? = nil, target: String? = nil, executionEndTime: TimeStamp? = nil, executedBy: String? = nil, targetParameterName: String? = nil, documentName: String? = nil, documentVersion: String? = nil, maxConcurrency: String? = nil, logFile: String? = nil, failureMessage: String? = nil, automationExecutionId: String? = nil) { + self.currentAction = currentAction self.automationExecutionStatus = automationExecutionStatus + self.targets = targets + self.resolvedTargets = resolvedTargets + self.currentStepName = currentStepName + self.outputs = outputs + self.executionStartTime = executionStartTime + self.mode = mode + self.parentAutomationExecutionId = parentAutomationExecutionId + self.maxErrors = maxErrors + self.target = target + self.executionEndTime = executionEndTime + self.executedBy = executedBy + self.targetParameterName = targetParameterName self.documentName = documentName self.documentVersion = documentVersion - self.executionStartTime = executionStartTime - self.outputs = outputs + self.maxConcurrency = maxConcurrency self.logFile = logFile + self.failureMessage = failureMessage self.automationExecutionId = automationExecutionId - self.executionEndTime = executionEndTime } private enum CodingKeys: String, CodingKey { - case executedBy = "ExecutedBy" + case currentAction = "CurrentAction" case automationExecutionStatus = "AutomationExecutionStatus" + case targets = "Targets" + case resolvedTargets = "ResolvedTargets" + case currentStepName = "CurrentStepName" + case outputs = "Outputs" + case executionStartTime = "ExecutionStartTime" + case mode = "Mode" + case parentAutomationExecutionId = "ParentAutomationExecutionId" + case maxErrors = "MaxErrors" + case target = "Target" + case executionEndTime = "ExecutionEndTime" + case executedBy = "ExecutedBy" + case targetParameterName = "TargetParameterName" case documentName = "DocumentName" case documentVersion = "DocumentVersion" - case executionStartTime = "ExecutionStartTime" - case outputs = "Outputs" + case maxConcurrency = "MaxConcurrency" case logFile = "LogFile" + case failureMessage = "FailureMessage" case automationExecutionId = "AutomationExecutionId" - case executionEndTime = "ExecutionEndTime" } } - public struct DescribeAssociationResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AssociationDescription", required: false, type: .structure) + public struct CreateAssociationBatchRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Entries", required: true, type: .list) ] - /// Information about the association. - public let associationDescription: AssociationDescription? + /// One or more associations. + public let entries: [CreateAssociationBatchRequestEntry] - public init(associationDescription: AssociationDescription? = nil) { - self.associationDescription = associationDescription + public init(entries: [CreateAssociationBatchRequestEntry]) { + self.entries = entries } private enum CodingKeys: String, CodingKey { - case associationDescription = "AssociationDescription" + case entries = "Entries" } } - public struct CreateAssociationBatchRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Entries", required: true, type: .structure) + public struct DescribeAssociationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssociationDescription", required: false, type: .structure) ] - /// One or more associations. - public let entries: CreateAssociationBatchRequestEntries + /// Information about the association. + public let associationDescription: AssociationDescription? - public init(entries: CreateAssociationBatchRequestEntries) { - self.entries = entries + public init(associationDescription: AssociationDescription? = nil) { + self.associationDescription = associationDescription } private enum CodingKeys: String, CodingKey { - case entries = "Entries" + case associationDescription = "AssociationDescription" } } @@ -1589,7 +1882,7 @@ extension Ssm { } public struct GetParameterResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameter", required: false, type: .structure) ] /// Information about a parameter. @@ -1605,7 +1898,7 @@ extension Ssm { } public struct MaintenanceWindowFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -1626,8 +1919,9 @@ extension Ssm { } public struct InventoryItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CaptureTime", required: true, type: .string), + AWSShapeMember(label: "Context", required: false, type: .map), AWSShapeMember(label: "Content", required: false, type: .list), AWSShapeMember(label: "SchemaVersion", required: true, type: .string), AWSShapeMember(label: "ContentHash", required: false, type: .string), @@ -1635,6 +1929,8 @@ extension Ssm { ] /// The time the inventory information was collected. public let captureTime: String + /// A map of associated properties for a specified inventory type. For example, with this attribute, you can specify the ExecutionId, ExecutionType, ComplianceType properties of the AWS:ComplianceItem type. + public let context: [String: String]? /// The inventory data of the inventory type. public let content: [[String: String]]? /// The schema version for the inventory item. @@ -1644,8 +1940,9 @@ extension Ssm { /// The name of the inventory type. Default inventory item type names start with AWS. Custom inventory type names will start with Custom. Default inventory item types include the following: AWS:AWSComponent, AWS:Application, AWS:InstanceInformation, AWS:Network, and AWS:WindowsUpdate. public let typeName: String - public init(captureTime: String, content: [[String: String]]? = nil, schemaVersion: String, contentHash: String? = nil, typeName: String) { + public init(captureTime: String, context: [String: String]? = nil, content: [[String: String]]? = nil, schemaVersion: String, contentHash: String? = nil, typeName: String) { self.captureTime = captureTime + self.context = context self.content = content self.schemaVersion = schemaVersion self.contentHash = contentHash @@ -1654,6 +1951,7 @@ extension Ssm { private enum CodingKeys: String, CodingKey { case captureTime = "CaptureTime" + case context = "Context" case content = "Content" case schemaVersion = "SchemaVersion" case contentHash = "ContentHash" @@ -1664,15 +1962,17 @@ extension Ssm { public enum AutomationExecutionStatus: String, CustomStringConvertible, Codable { case pending = "Pending" case inprogress = "InProgress" + case waiting = "Waiting" case success = "Success" case timedout = "TimedOut" + case cancelling = "Cancelling" case cancelled = "Cancelled" case failed = "Failed" public var description: String { return self.rawValue } } public struct DeletePatchBaselineResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: false, type: .string) ] /// The ID of the deleted patch baseline. @@ -1687,29 +1987,53 @@ extension Ssm { } } - public struct CancelCommandRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "CommandId", required: true, type: .string), - AWSShapeMember(label: "InstanceIds", required: false, type: .list) + public enum DocumentFormat: String, CustomStringConvertible, Codable { + case yaml = "YAML" + case json = "JSON" + public var description: String { return self.rawValue } + } + + public enum DocumentType: String, CustomStringConvertible, Codable { + case command = "Command" + case policy = "Policy" + case automation = "Automation" + public var description: String { return self.rawValue } + } + + public struct ListResourceComplianceSummariesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ResourceComplianceSummaryItems", required: false, type: .list) ] - /// The ID of the command you want to cancel. - public let commandId: String - /// (Optional) A list of instance IDs on which you want to cancel the command. If not provided, the command is canceled on every instance on which it was requested. - public let instanceIds: [String]? + /// The token for the next set of items to return. Use this token to get the next set of results. + public let nextToken: String? + /// A summary count for specified or targeted managed instances. Summary count includes information about compliant and non-compliant State Manager associations, patch status, or custom items according to the filter criteria that you specify. + public let resourceComplianceSummaryItems: [ResourceComplianceSummaryItem]? - public init(commandId: String, instanceIds: [String]? = nil) { - self.commandId = commandId - self.instanceIds = instanceIds + public init(nextToken: String? = nil, resourceComplianceSummaryItems: [ResourceComplianceSummaryItem]? = nil) { + self.nextToken = nextToken + self.resourceComplianceSummaryItems = resourceComplianceSummaryItems } private enum CodingKeys: String, CodingKey { - case commandId = "CommandId" - case instanceIds = "InstanceIds" + case nextToken = "NextToken" + case resourceComplianceSummaryItems = "ResourceComplianceSummaryItems" } } + public enum CommandStatus: String, CustomStringConvertible, Codable { + case pending = "Pending" + case inprogress = "InProgress" + case success = "Success" + case cancelled = "Cancelled" + case failed = "Failed" + case timedout = "TimedOut" + case cancelling = "Cancelling" + public var description: String { return self.rawValue } + } + public struct InstanceInformation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastSuccessfulAssociationExecutionDate", required: false, type: .timestamp), AWSShapeMember(label: "IsLatestVersion", required: false, type: .boolean), AWSShapeMember(label: "AssociationOverview", required: false, type: .structure), @@ -1814,26 +2138,29 @@ extension Ssm { } } - public enum DocumentType: String, CustomStringConvertible, Codable { - case command = "Command" - case policy = "Policy" - case automation = "Automation" - public var description: String { return self.rawValue } - } + public struct CancelCommandRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CommandId", required: true, type: .string), + AWSShapeMember(label: "InstanceIds", required: false, type: .list) + ] + /// The ID of the command you want to cancel. + public let commandId: String + /// (Optional) A list of instance IDs on which you want to cancel the command. If not provided, the command is canceled on every instance on which it was requested. + public let instanceIds: [String]? - public enum CommandStatus: String, CustomStringConvertible, Codable { - case pending = "Pending" - case inprogress = "InProgress" - case success = "Success" - case cancelled = "Cancelled" - case failed = "Failed" - case timedout = "TimedOut" - case cancelling = "Cancelling" - public var description: String { return self.rawValue } + public init(commandId: String, instanceIds: [String]? = nil) { + self.commandId = commandId + self.instanceIds = instanceIds + } + + private enum CodingKeys: String, CodingKey { + case commandId = "CommandId" + case instanceIds = "InstanceIds" + } } public struct DescribeActivationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -1858,16 +2185,31 @@ extension Ssm { } } + public enum CommandPluginStatus: String, CustomStringConvertible, Codable { + case pending = "Pending" + case inprogress = "InProgress" + case success = "Success" + case timedout = "TimedOut" + case cancelled = "Cancelled" + case failed = "Failed" + public var description: String { return self.rawValue } + } + public struct CreateMaintenanceWindowRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientToken", required: false, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "AllowUnassociatedTargets", required: true, type: .boolean), AWSShapeMember(label: "Schedule", required: true, type: .string), AWSShapeMember(label: "Cutoff", required: true, type: .integer), AWSShapeMember(label: "Duration", required: true, type: .integer), - AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "ClientToken", required: false, type: .string) + AWSShapeMember(label: "Description", required: false, type: .string) ] - /// Whether targets must be registered with the Maintenance Window before tasks can be defined for those targets. + /// User-provided idempotency token. + public let clientToken: String? + /// The name of the Maintenance Window. + public let name: String + /// Enables a Maintenance Window task to execute on managed instances, even if you have not registered those instances as targets. If enabled, then you must specify the unregistered instances (by instance ID) when you register a task with the Maintenance Window If you don't enable this option, then you must specify previously-registered targets when you register a task with the Maintenance Window. public let allowUnassociatedTargets: Bool /// The schedule of the Maintenance Window in the form of a cron or rate expression. public let schedule: String @@ -1875,42 +2217,67 @@ extension Ssm { public let cutoff: Int32 /// The duration of the Maintenance Window in hours. public let duration: Int32 - /// The name of the Maintenance Window. - public let name: String - /// User-provided idempotency token. - public let clientToken: String? + /// An optional description for the Maintenance Window. We recommend specifying a description to help you organize your Maintenance Windows. + public let description: String? - public init(allowUnassociatedTargets: Bool, schedule: String, cutoff: Int32, duration: Int32, name: String, clientToken: String? = nil) { + public init(clientToken: String? = nil, name: String, allowUnassociatedTargets: Bool, schedule: String, cutoff: Int32, duration: Int32, description: String? = nil) { + self.clientToken = clientToken + self.name = name self.allowUnassociatedTargets = allowUnassociatedTargets self.schedule = schedule self.cutoff = cutoff self.duration = duration - self.name = name - self.clientToken = clientToken + self.description = description } private enum CodingKeys: String, CodingKey { + case clientToken = "ClientToken" + case name = "Name" case allowUnassociatedTargets = "AllowUnassociatedTargets" case schedule = "Schedule" case cutoff = "Cutoff" case duration = "Duration" - case name = "Name" - case clientToken = "ClientToken" + case description = "Description" } } - public enum CommandPluginStatus: String, CustomStringConvertible, Codable { - case pending = "Pending" - case inprogress = "InProgress" - case success = "Success" - case timedout = "TimedOut" - case cancelled = "Cancelled" - case failed = "Failed" + public struct ComplianceStringFilter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "Key", required: false, type: .string), + AWSShapeMember(label: "Values", required: false, type: .list) + ] + /// The type of comparison that should be performed for the value: Equal, NotEqual, BeginWith, LessThan, or GreaterThan. + public let `type`: ComplianceQueryOperatorType? + /// The name of the filter. + public let key: String? + /// The value for which to search. + public let values: [String]? + + public init(type: ComplianceQueryOperatorType? = nil, key: String? = nil, values: [String]? = nil) { + self.`type` = `type` + self.key = key + self.values = values + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case key = "Key" + case values = "Values" + } + } + + public enum SignalType: String, CustomStringConvertible, Codable { + case approve = "Approve" + case reject = "Reject" + case startstep = "StartStep" + case stopstep = "StopStep" + case resume = "Resume" public var description: String { return self.rawValue } } public struct CommandInvocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CommandPlugins", required: false, type: .list), AWSShapeMember(label: "NotificationConfig", required: false, type: .structure), AWSShapeMember(label: "Comment", required: false, type: .string), @@ -1997,23 +2364,8 @@ extension Ssm { } - public struct InventoryResultEntityList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Entity", required: false, type: .list) - ] - public let entity: [InventoryResultEntity]? - - public init(entity: [InventoryResultEntity]? = nil) { - self.entity = entity - } - - private enum CodingKeys: String, CodingKey { - case entity = "Entity" - } - } - public struct FailedCreateAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Fault", required: false, type: .enum), AWSShapeMember(label: "Entry", required: false, type: .structure), AWSShapeMember(label: "Message", required: false, type: .string) @@ -2038,49 +2390,79 @@ extension Ssm { } } - public struct DocumentIdentifier: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SchemaVersion", required: false, type: .string), - AWSShapeMember(label: "DocumentType", required: false, type: .enum), - AWSShapeMember(label: "Owner", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "PlatformTypes", required: false, type: .structure), - AWSShapeMember(label: "DocumentVersion", required: false, type: .string) + public struct GetMaintenanceWindowExecutionTaskInvocationResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTime", required: false, type: .timestamp), + AWSShapeMember(label: "WindowExecutionId", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "InvocationId", required: false, type: .string), + AWSShapeMember(label: "TaskType", required: false, type: .enum), + AWSShapeMember(label: "Parameters", required: false, type: .string), + AWSShapeMember(label: "ExecutionId", required: false, type: .string), + AWSShapeMember(label: "EndTime", required: false, type: .timestamp), + AWSShapeMember(label: "WindowTargetId", required: false, type: .string), + AWSShapeMember(label: "TaskExecutionId", required: false, type: .string), + AWSShapeMember(label: "StatusDetails", required: false, type: .string), + AWSShapeMember(label: "OwnerInformation", required: false, type: .string) ] - /// The schema version. - public let schemaVersion: String? - /// The document type. - public let documentType: DocumentType? - /// The AWS user account of the person who created the document. - public let owner: String? - /// The name of the SSM document. - public let name: String? - /// The operating system platform. - public let platformTypes: PlatformTypeList? - /// The document version. - public let documentVersion: String? + /// The time that the task started executing on the target. + public let startTime: TimeStamp? + /// The Maintenance Window execution ID. + public let windowExecutionId: String? + /// The task status for an invocation. + public let status: MaintenanceWindowExecutionStatus? + /// The invocation ID. + public let invocationId: String? + /// Retrieves the task type for a Maintenance Window. Task types include the following: LAMBDA, STEP_FUNCTION, AUTOMATION, RUN_COMMAND. + public let taskType: MaintenanceWindowTaskType? + /// The parameters used at the time that the task executed. + public let parameters: String? + /// The execution ID. + public let executionId: String? + /// The time that the task finished executing on the target. + public let endTime: TimeStamp? + /// The Maintenance Window target ID. + public let windowTargetId: String? + /// The task execution ID. + public let taskExecutionId: String? + /// The details explaining the status. Details are only available for certain status values. + public let statusDetails: String? + /// User-provided value to be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window. + public let ownerInformation: String? - public init(schemaVersion: String? = nil, documentType: DocumentType? = nil, owner: String? = nil, name: String? = nil, platformTypes: PlatformTypeList? = nil, documentVersion: String? = nil) { - self.schemaVersion = schemaVersion - self.documentType = documentType - self.owner = owner - self.name = name - self.platformTypes = platformTypes - self.documentVersion = documentVersion + public init(startTime: TimeStamp? = nil, windowExecutionId: String? = nil, status: MaintenanceWindowExecutionStatus? = nil, invocationId: String? = nil, taskType: MaintenanceWindowTaskType? = nil, parameters: String? = nil, executionId: String? = nil, endTime: TimeStamp? = nil, windowTargetId: String? = nil, taskExecutionId: String? = nil, statusDetails: String? = nil, ownerInformation: String? = nil) { + self.startTime = startTime + self.windowExecutionId = windowExecutionId + self.status = status + self.invocationId = invocationId + self.taskType = taskType + self.parameters = parameters + self.executionId = executionId + self.endTime = endTime + self.windowTargetId = windowTargetId + self.taskExecutionId = taskExecutionId + self.statusDetails = statusDetails + self.ownerInformation = ownerInformation } private enum CodingKeys: String, CodingKey { - case schemaVersion = "SchemaVersion" - case documentType = "DocumentType" - case owner = "Owner" - case name = "Name" - case platformTypes = "PlatformTypes" - case documentVersion = "DocumentVersion" + case startTime = "StartTime" + case windowExecutionId = "WindowExecutionId" + case status = "Status" + case invocationId = "InvocationId" + case taskType = "TaskType" + case parameters = "Parameters" + case executionId = "ExecutionId" + case endTime = "EndTime" + case windowTargetId = "WindowTargetId" + case taskExecutionId = "TaskExecutionId" + case statusDetails = "StatusDetails" + case ownerInformation = "OwnerInformation" } } public struct GetInventorySchemaResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Schemas", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2100,8 +2482,64 @@ extension Ssm { } } + public struct DocumentIdentifier: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list), + AWSShapeMember(label: "SchemaVersion", required: false, type: .string), + AWSShapeMember(label: "DocumentVersion", required: false, type: .string), + AWSShapeMember(label: "TargetType", required: false, type: .string), + AWSShapeMember(label: "Owner", required: false, type: .string), + AWSShapeMember(label: "DocumentFormat", required: false, type: .enum), + AWSShapeMember(label: "PlatformTypes", required: false, type: .list), + AWSShapeMember(label: "DocumentType", required: false, type: .enum) + ] + /// The name of the Systems Manager document. + public let name: String? + /// The tags, or metadata, that have been applied to the document. + public let tags: [Tag]? + /// The schema version. + public let schemaVersion: String? + /// The document version. + public let documentVersion: String? + /// The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see AWS Resource Types Reference in the AWS CloudFormation User Guide. + public let targetType: String? + /// The AWS user account that created the document. + public let owner: String? + /// The document format, either JSON or YAML. + public let documentFormat: DocumentFormat? + /// The operating system platform. + public let platformTypes: [PlatformType]? + /// The document type. + public let documentType: DocumentType? + + public init(name: String? = nil, tags: [Tag]? = nil, schemaVersion: String? = nil, documentVersion: String? = nil, targetType: String? = nil, owner: String? = nil, documentFormat: DocumentFormat? = nil, platformTypes: [PlatformType]? = nil, documentType: DocumentType? = nil) { + self.name = name + self.tags = tags + self.schemaVersion = schemaVersion + self.documentVersion = documentVersion + self.targetType = targetType + self.owner = owner + self.documentFormat = documentFormat + self.platformTypes = platformTypes + self.documentType = documentType + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case tags = "Tags" + case schemaVersion = "SchemaVersion" + case documentVersion = "DocumentVersion" + case targetType = "TargetType" + case owner = "Owner" + case documentFormat = "DocumentFormat" + case platformTypes = "PlatformTypes" + case documentType = "DocumentType" + } + } + public struct DeleteMaintenanceWindowResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: false, type: .string) ] /// The ID of the deleted Maintenance Window. @@ -2117,7 +2555,7 @@ extension Ssm { } public struct GetParameterHistoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WithDecryption", required: false, type: .boolean), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -2147,29 +2585,49 @@ extension Ssm { } } - public struct GetParameterHistoryResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Parameters", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - /// A list of parameters returned by the request. - public let parameters: [ParameterHistory]? - /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. - public let nextToken: String? - - public init(parameters: [ParameterHistory]? = nil, nextToken: String? = nil) { - self.parameters = parameters - self.nextToken = nextToken + public struct PutComplianceItemsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ComplianceType", required: true, type: .string), + AWSShapeMember(label: "ItemContentHash", required: false, type: .string), + AWSShapeMember(label: "ExecutionSummary", required: true, type: .structure), + AWSShapeMember(label: "ResourceId", required: true, type: .string), + AWSShapeMember(label: "ResourceType", required: true, type: .string), + AWSShapeMember(label: "Items", required: true, type: .list) + ] + /// Specify the compliance type. For example, specify Association (for a State Manager association), Patch, or Custom:string. + public let complianceType: String + /// MD5 or SHA-256 content hash. The content hash is used to determine if existing information should be overwritten or ignored. If the content hashes match, the request to put compliance information is ignored. + public let itemContentHash: String? + /// A summary of the call execution that includes an execution ID, the type of execution (for example, Command), and the date/time of the execution using a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'. + public let executionSummary: ComplianceExecutionSummary + /// Specify an ID for this resource. For a managed instance, this is the instance ID. + public let resourceId: String + /// Specify the type of resource. ManagedInstance is currently the only supported resource type. + public let resourceType: String + /// Information about the compliance as defined by the resource type. For example, for a patch compliance type, Items includes information about the PatchSeverity, Classification, etc. + public let items: [ComplianceItemEntry] + + public init(complianceType: String, itemContentHash: String? = nil, executionSummary: ComplianceExecutionSummary, resourceId: String, resourceType: String, items: [ComplianceItemEntry]) { + self.complianceType = complianceType + self.itemContentHash = itemContentHash + self.executionSummary = executionSummary + self.resourceId = resourceId + self.resourceType = resourceType + self.items = items } private enum CodingKeys: String, CodingKey { - case parameters = "Parameters" - case nextToken = "NextToken" + case complianceType = "ComplianceType" + case itemContentHash = "ItemContentHash" + case executionSummary = "ExecutionSummary" + case resourceId = "ResourceId" + case resourceType = "ResourceType" + case items = "Items" } } public struct ListDocumentVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -2194,37 +2652,37 @@ extension Ssm { } } - public enum DocumentFilterKey: String, CustomStringConvertible, Codable { - case name = "Name" - case owner = "Owner" - case platformtypes = "PlatformTypes" - case documenttype = "DocumentType" - public var description: String { return self.rawValue } - } - - public struct ListResourceDataSyncResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "ResourceDataSyncItems", required: false, type: .list) + public struct GetParameterHistoryResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Parameters", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// The token for the next set of items to return. Use this token to get the next set of results. + /// A list of parameters returned by the request. + public let parameters: [ParameterHistory]? + /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. public let nextToken: String? - /// A list of your current Resource Data Sync configurations and their statuses. - public let resourceDataSyncItems: [ResourceDataSyncItem]? - public init(nextToken: String? = nil, resourceDataSyncItems: [ResourceDataSyncItem]? = nil) { + public init(parameters: [ParameterHistory]? = nil, nextToken: String? = nil) { + self.parameters = parameters self.nextToken = nextToken - self.resourceDataSyncItems = resourceDataSyncItems } private enum CodingKeys: String, CodingKey { + case parameters = "Parameters" case nextToken = "NextToken" - case resourceDataSyncItems = "ResourceDataSyncItems" } } + public enum DocumentFilterKey: String, CustomStringConvertible, Codable { + case name = "Name" + case owner = "Owner" + case platformtypes = "PlatformTypes" + case documenttype = "DocumentType" + public var description: String { return self.rawValue } + } + public struct Target: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -2244,6 +2702,31 @@ extension Ssm { } } + public struct ListResourceDataSyncResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ResourceDataSyncItems", required: false, type: .list) + ] + /// The token for the next set of items to return. Use this token to get the next set of results. + public let nextToken: String? + /// A list of your current Resource Data Sync configurations and their statuses. + public let resourceDataSyncItems: [ResourceDataSyncItem]? + + public init(nextToken: String? = nil, resourceDataSyncItems: [ResourceDataSyncItem]? = nil) { + self.nextToken = nextToken + self.resourceDataSyncItems = resourceDataSyncItems + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case resourceDataSyncItems = "ResourceDataSyncItems" + } + } + + public struct PutComplianceItemsResult: AWSShape { + + } + public enum AssociationStatusName: String, CustomStringConvertible, Codable { case pending = "Pending" case success = "Success" @@ -2257,8 +2740,44 @@ extension Ssm { public var description: String { return self.rawValue } } + public struct DescribeAutomationStepExecutionsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ReverseOrder", required: false, type: .boolean), + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "AutomationExecutionId", required: true, type: .string), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// A boolean that indicates whether to list step executions in reverse order by start time. The default value is false. + public let reverseOrder: Bool? + /// One or more filters to limit the number of step executions returned by the request. + public let filters: [StepExecutionFilter]? + /// The Automation execution ID for which you want step execution descriptions. + public let automationExecutionId: String + /// The token for the next set of items to return. (You received this token from a previous call.) + public let nextToken: String? + /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + public let maxResults: Int32? + + public init(reverseOrder: Bool? = nil, filters: [StepExecutionFilter]? = nil, automationExecutionId: String, nextToken: String? = nil, maxResults: Int32? = nil) { + self.reverseOrder = reverseOrder + self.filters = filters + self.automationExecutionId = automationExecutionId + self.nextToken = nextToken + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case reverseOrder = "ReverseOrder" + case filters = "Filters" + case automationExecutionId = "AutomationExecutionId" + case nextToken = "NextToken" + case maxResults = "MaxResults" + } + } + public struct AssociationDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastExecutionDate", required: false, type: .timestamp), AWSShapeMember(label: "LastUpdateAssociationDate", required: false, type: .timestamp), AWSShapeMember(label: "Targets", required: false, type: .list), @@ -2268,9 +2787,11 @@ extension Ssm { AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "DocumentVersion", required: false, type: .string), + AWSShapeMember(label: "AssociationVersion", required: false, type: .string), AWSShapeMember(label: "OutputLocation", required: false, type: .structure), AWSShapeMember(label: "Overview", required: false, type: .structure), AWSShapeMember(label: "ScheduleExpression", required: false, type: .string), + AWSShapeMember(label: "AssociationName", required: false, type: .string), AWSShapeMember(label: "Date", required: false, type: .timestamp), AWSShapeMember(label: "LastSuccessfulExecutionDate", required: false, type: .timestamp) ] @@ -2286,24 +2807,28 @@ extension Ssm { public let associationId: String? /// A description of the parameters for a document. public let parameters: [String: [String]]? - /// The name of the SSM document. + /// The name of the Systems Manager document. public let name: String? /// The ID of the instance. public let instanceId: String? /// The document version. public let documentVersion: String? + /// The association version. + public let associationVersion: String? /// An Amazon S3 bucket where you want to store the output details of the request. public let outputLocation: InstanceAssociationOutputLocation? /// Information about the association. public let overview: AssociationOverview? /// A cron expression that specifies a schedule when the association runs. public let scheduleExpression: String? + /// The association name. + public let associationName: String? /// The date when the association was made. public let date: TimeStamp? /// The last date on which the association was successfully run. public let lastSuccessfulExecutionDate: TimeStamp? - public init(lastExecutionDate: TimeStamp? = nil, lastUpdateAssociationDate: TimeStamp? = nil, targets: [Target]? = nil, status: AssociationStatus? = nil, associationId: String? = nil, parameters: [String: [String]]? = nil, name: String? = nil, instanceId: String? = nil, documentVersion: String? = nil, outputLocation: InstanceAssociationOutputLocation? = nil, overview: AssociationOverview? = nil, scheduleExpression: String? = nil, date: TimeStamp? = nil, lastSuccessfulExecutionDate: TimeStamp? = nil) { + public init(lastExecutionDate: TimeStamp? = nil, lastUpdateAssociationDate: TimeStamp? = nil, targets: [Target]? = nil, status: AssociationStatus? = nil, associationId: String? = nil, parameters: [String: [String]]? = nil, name: String? = nil, instanceId: String? = nil, documentVersion: String? = nil, associationVersion: String? = nil, outputLocation: InstanceAssociationOutputLocation? = nil, overview: AssociationOverview? = nil, scheduleExpression: String? = nil, associationName: String? = nil, date: TimeStamp? = nil, lastSuccessfulExecutionDate: TimeStamp? = nil) { self.lastExecutionDate = lastExecutionDate self.lastUpdateAssociationDate = lastUpdateAssociationDate self.targets = targets @@ -2313,9 +2838,11 @@ extension Ssm { self.name = name self.instanceId = instanceId self.documentVersion = documentVersion + self.associationVersion = associationVersion self.outputLocation = outputLocation self.overview = overview self.scheduleExpression = scheduleExpression + self.associationName = associationName self.date = date self.lastSuccessfulExecutionDate = lastSuccessfulExecutionDate } @@ -2330,55 +2857,62 @@ extension Ssm { case name = "Name" case instanceId = "InstanceId" case documentVersion = "DocumentVersion" + case associationVersion = "AssociationVersion" case outputLocation = "OutputLocation" case overview = "Overview" case scheduleExpression = "ScheduleExpression" + case associationName = "AssociationName" case date = "Date" case lastSuccessfulExecutionDate = "LastSuccessfulExecutionDate" } } + public struct DeleteParameterResult: AWSShape { + + } + public struct InstanceAssociation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Content", required: false, type: .string), - AWSShapeMember(label: "InstanceId", required: false, type: .string), - AWSShapeMember(label: "AssociationId", required: false, type: .string) + AWSShapeMember(label: "AssociationVersion", required: false, type: .string), + AWSShapeMember(label: "AssociationId", required: false, type: .string), + AWSShapeMember(label: "InstanceId", required: false, type: .string) ] /// The content of the association document for the instance(s). public let content: String? - /// The instance ID. - public let instanceId: String? + /// Version information for the association on the instance. + public let associationVersion: String? /// The association ID. public let associationId: String? + /// The instance ID. + public let instanceId: String? - public init(content: String? = nil, instanceId: String? = nil, associationId: String? = nil) { + public init(content: String? = nil, associationVersion: String? = nil, associationId: String? = nil, instanceId: String? = nil) { self.content = content - self.instanceId = instanceId + self.associationVersion = associationVersion self.associationId = associationId + self.instanceId = instanceId } private enum CodingKeys: String, CodingKey { case content = "Content" - case instanceId = "InstanceId" + case associationVersion = "AssociationVersion" case associationId = "AssociationId" + case instanceId = "InstanceId" } } - public struct DeleteParameterResult: AWSShape { - - } - public struct InstanceInformationStringFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: true, type: .string), - AWSShapeMember(label: "Values", required: true, type: .structure) + AWSShapeMember(label: "Values", required: true, type: .list) ] /// The filter key name to describe your instances. For example: "InstanceIds"|"AgentVersion"|"PingStatus"|"PlatformTypes"|"ActivationIds"|"IamRole"|"ResourceType"|"AssociationStatus"|"Tag Key" public let key: String /// The filter values. - public let values: InstanceInformationFilterValueSet + public let values: [String] - public init(key: String, values: InstanceInformationFilterValueSet) { + public init(key: String, values: [String]) { self.key = key self.values = values } @@ -2390,7 +2924,7 @@ extension Ssm { } public struct DeleteDocumentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string) ] /// The name of the document. @@ -2406,7 +2940,7 @@ extension Ssm { } public struct DescribeMaintenanceWindowTargetsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Targets", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2426,28 +2960,13 @@ extension Ssm { } } - public struct DescribePatchGroupStateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PatchGroup", required: true, type: .string) - ] - /// The name of the patch group whose patch snapshot should be retrieved. - public let patchGroup: String - - public init(patchGroup: String) { - self.patchGroup = patchGroup - } - - private enum CodingKeys: String, CodingKey { - case patchGroup = "PatchGroup" - } - } - public struct UpdatePatchBaselineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: true, type: .string), AWSShapeMember(label: "ApprovedPatches", required: false, type: .list), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "RejectedPatches", required: false, type: .list), + AWSShapeMember(label: "ApprovedPatchesComplianceLevel", required: false, type: .enum), AWSShapeMember(label: "ApprovalRules", required: false, type: .structure), AWSShapeMember(label: "GlobalFilters", required: false, type: .structure), AWSShapeMember(label: "Description", required: false, type: .string) @@ -2460,6 +2979,8 @@ extension Ssm { public let name: String? /// A list of explicitly rejected patches for the baseline. public let rejectedPatches: [String]? + /// Assigns a new compliance severity level to an existing patch baseline. + public let approvedPatchesComplianceLevel: PatchComplianceLevel? /// A set of rules used to include patches in the baseline. public let approvalRules: PatchRuleGroup? /// A set of global filters used to exclude patches from the baseline. @@ -2467,11 +2988,12 @@ extension Ssm { /// A description of the patch baseline. public let description: String? - public init(baselineId: String, approvedPatches: [String]? = nil, name: String? = nil, rejectedPatches: [String]? = nil, approvalRules: PatchRuleGroup? = nil, globalFilters: PatchFilterGroup? = nil, description: String? = nil) { + public init(baselineId: String, approvedPatches: [String]? = nil, name: String? = nil, rejectedPatches: [String]? = nil, approvedPatchesComplianceLevel: PatchComplianceLevel? = nil, approvalRules: PatchRuleGroup? = nil, globalFilters: PatchFilterGroup? = nil, description: String? = nil) { self.baselineId = baselineId self.approvedPatches = approvedPatches self.name = name self.rejectedPatches = rejectedPatches + self.approvedPatchesComplianceLevel = approvedPatchesComplianceLevel self.approvalRules = approvalRules self.globalFilters = globalFilters self.description = description @@ -2482,26 +3004,43 @@ extension Ssm { case approvedPatches = "ApprovedPatches" case name = "Name" case rejectedPatches = "RejectedPatches" + case approvedPatchesComplianceLevel = "ApprovedPatchesComplianceLevel" case approvalRules = "ApprovalRules" case globalFilters = "GlobalFilters" case description = "Description" } } + public struct DescribePatchGroupStateRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PatchGroup", required: true, type: .string) + ] + /// The name of the patch group whose patch snapshot should be retrieved. + public let patchGroup: String + + public init(patchGroup: String) { + self.patchGroup = patchGroup + } + + private enum CodingKeys: String, CodingKey { + case patchGroup = "PatchGroup" + } + } + public struct InventoryFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Key", required: true, type: .string), - AWSShapeMember(label: "Values", required: true, type: .structure) + AWSShapeMember(label: "Values", required: true, type: .list) ] /// The type of filter. Valid values include the following: "Equal"|"NotEqual"|"BeginWith"|"LessThan"|"GreaterThan" public let `type`: InventoryQueryOperatorType? /// The name of the filter key. public let key: String /// Inventory filter values. Example: inventory filter where instance IDs are specified as values Key=AWS:InstanceInformation.InstanceId,Values= i-a12b3c4d5e6g, i-1a2b3c4d5e6,Type=Equal - public let values: InventoryFilterValueList + public let values: [String] - public init(type: InventoryQueryOperatorType? = nil, key: String, values: InventoryFilterValueList) { + public init(type: InventoryQueryOperatorType? = nil, key: String, values: [String]) { self.`type` = `type` self.key = key self.values = values @@ -2515,7 +3054,7 @@ extension Ssm { } public struct ListCommandsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Commands", required: false, type: .list) ] @@ -2541,17 +3080,94 @@ extension Ssm { public var description: String { return self.rawValue } } + public struct ResourceComplianceSummaryItem: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CompliantSummary", required: false, type: .structure), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "ComplianceType", required: false, type: .string), + AWSShapeMember(label: "OverallSeverity", required: false, type: .enum), + AWSShapeMember(label: "ResourceType", required: false, type: .string), + AWSShapeMember(label: "NonCompliantSummary", required: false, type: .structure), + AWSShapeMember(label: "ExecutionSummary", required: false, type: .structure), + AWSShapeMember(label: "ResourceId", required: false, type: .string) + ] + /// A list of items that are compliant for the resource. + public let compliantSummary: CompliantSummary? + /// The compliance status for the resource. + public let status: ComplianceStatus? + /// The compliance type. + public let complianceType: String? + /// The highest severity item found for the resource. The resource is compliant for this item. + public let overallSeverity: ComplianceSeverity? + /// The resource type. + public let resourceType: String? + /// A list of items that aren't compliant for the resource. + public let nonCompliantSummary: NonCompliantSummary? + /// Information about the execution. + public let executionSummary: ComplianceExecutionSummary? + /// The resource ID. + public let resourceId: String? + + public init(compliantSummary: CompliantSummary? = nil, status: ComplianceStatus? = nil, complianceType: String? = nil, overallSeverity: ComplianceSeverity? = nil, resourceType: String? = nil, nonCompliantSummary: NonCompliantSummary? = nil, executionSummary: ComplianceExecutionSummary? = nil, resourceId: String? = nil) { + self.compliantSummary = compliantSummary + self.status = status + self.complianceType = complianceType + self.overallSeverity = overallSeverity + self.resourceType = resourceType + self.nonCompliantSummary = nonCompliantSummary + self.executionSummary = executionSummary + self.resourceId = resourceId + } + + private enum CodingKeys: String, CodingKey { + case compliantSummary = "CompliantSummary" + case status = "Status" + case complianceType = "ComplianceType" + case overallSeverity = "OverallSeverity" + case resourceType = "ResourceType" + case nonCompliantSummary = "NonCompliantSummary" + case executionSummary = "ExecutionSummary" + case resourceId = "ResourceId" + } + } + public struct GetPatchBaselineForPatchGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperatingSystem", required: false, type: .enum), AWSShapeMember(label: "BaselineId", required: false, type: .string), AWSShapeMember(label: "PatchGroup", required: false, type: .string) ] + /// The operating system rule specified for patch groups using the patch baseline. + public let operatingSystem: OperatingSystem? /// The ID of the patch baseline that should be used for the patch group. public let baselineId: String? /// The name of the patch group. public let patchGroup: String? - public init(baselineId: String? = nil, patchGroup: String? = nil) { + public init(operatingSystem: OperatingSystem? = nil, baselineId: String? = nil, patchGroup: String? = nil) { + self.operatingSystem = operatingSystem + self.baselineId = baselineId + self.patchGroup = patchGroup + } + + private enum CodingKeys: String, CodingKey { + case operatingSystem = "OperatingSystem" + case baselineId = "BaselineId" + case patchGroup = "PatchGroup" + } + } + + public struct RegisterPatchBaselineForPatchGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BaselineId", required: true, type: .string), + AWSShapeMember(label: "PatchGroup", required: true, type: .string) + ] + /// The ID of the patch baseline to register the patch group with. + public let baselineId: String + /// The name of the patch group that should be registered with the patch baseline. + public let patchGroup: String + + public init(baselineId: String, patchGroup: String) { self.baselineId = baselineId self.patchGroup = patchGroup } @@ -2563,7 +3179,7 @@ extension Ssm { } public struct DescribeEffectivePatchesForPatchBaselineRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -2588,39 +3204,64 @@ extension Ssm { } } - public struct DocumentIdentifierList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DocumentIdentifier", required: false, type: .list) - ] - public let documentIdentifier: [DocumentIdentifier]? - - public init(documentIdentifier: [DocumentIdentifier]? = nil) { - self.documentIdentifier = documentIdentifier - } - - private enum CodingKeys: String, CodingKey { - case documentIdentifier = "DocumentIdentifier" - } - } - - public struct RegisterPatchBaselineForPatchGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "BaselineId", required: true, type: .string), - AWSShapeMember(label: "PatchGroup", required: true, type: .string) + public struct AssociationVersionInfo: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssociationId", required: false, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "DocumentVersion", required: false, type: .string), + AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "OutputLocation", required: false, type: .structure), + AWSShapeMember(label: "AssociationVersion", required: false, type: .string), + AWSShapeMember(label: "ScheduleExpression", required: false, type: .string), + AWSShapeMember(label: "CreatedDate", required: false, type: .timestamp), + AWSShapeMember(label: "AssociationName", required: false, type: .string) ] - /// The ID of the patch baseline to register the patch group with. - public let baselineId: String - /// The name of the patch group that should be registered with the patch baseline. - public let patchGroup: String + /// The ID created by the system when the association was created. + public let associationId: String? + /// Parameters specified when the association version was created. + public let parameters: [String: [String]]? + /// The name specified when the association was created. + public let name: String? + /// The version of a Systems Manager document used when the association version was created. + public let documentVersion: String? + /// The targets specified for the association when the association version was created. + public let targets: [Target]? + /// The location in Amazon S3 specified for the association when the association version was created. + public let outputLocation: InstanceAssociationOutputLocation? + /// The association version. + public let associationVersion: String? + /// The cron or rate schedule specified for the association when the association version was created. + public let scheduleExpression: String? + /// The date the association version was created. + public let createdDate: TimeStamp? + /// The name specified for the association version when the association version was created. + public let associationName: String? - public init(baselineId: String, patchGroup: String) { - self.baselineId = baselineId - self.patchGroup = patchGroup + public init(associationId: String? = nil, parameters: [String: [String]]? = nil, name: String? = nil, documentVersion: String? = nil, targets: [Target]? = nil, outputLocation: InstanceAssociationOutputLocation? = nil, associationVersion: String? = nil, scheduleExpression: String? = nil, createdDate: TimeStamp? = nil, associationName: String? = nil) { + self.associationId = associationId + self.parameters = parameters + self.name = name + self.documentVersion = documentVersion + self.targets = targets + self.outputLocation = outputLocation + self.associationVersion = associationVersion + self.scheduleExpression = scheduleExpression + self.createdDate = createdDate + self.associationName = associationName } private enum CodingKeys: String, CodingKey { - case baselineId = "BaselineId" - case patchGroup = "PatchGroup" + case associationId = "AssociationId" + case parameters = "Parameters" + case name = "Name" + case documentVersion = "DocumentVersion" + case targets = "Targets" + case outputLocation = "OutputLocation" + case associationVersion = "AssociationVersion" + case scheduleExpression = "ScheduleExpression" + case createdDate = "CreatedDate" + case associationName = "AssociationName" } } @@ -2632,7 +3273,7 @@ extension Ssm { } public struct AssociationStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Message", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .enum), AWSShapeMember(label: "Date", required: true, type: .timestamp), @@ -2663,7 +3304,7 @@ extension Ssm { } public struct DescribeInstancePatchStatesForPatchGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "PatchGroup", required: true, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -2694,7 +3335,7 @@ extension Ssm { } public struct DescribeMaintenanceWindowTasksResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Tasks", required: false, type: .list) ] @@ -2719,103 +3360,135 @@ extension Ssm { case classification = "CLASSIFICATION" case msrcSeverity = "MSRC_SEVERITY" case patchId = "PATCH_ID" + case section = "SECTION" + case priority = "PRIORITY" + case severity = "SEVERITY" public var description: String { return self.rawValue } } public struct AutomationExecution: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Parameters", required: false, type: .map), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CurrentAction", required: false, type: .string), AWSShapeMember(label: "AutomationExecutionStatus", required: false, type: .enum), + AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "ResolvedTargets", required: false, type: .structure), + AWSShapeMember(label: "CurrentStepName", required: false, type: .string), + AWSShapeMember(label: "Outputs", required: false, type: .map), + AWSShapeMember(label: "ExecutionStartTime", required: false, type: .timestamp), + AWSShapeMember(label: "StepExecutions", required: false, type: .list), + AWSShapeMember(label: "Mode", required: false, type: .enum), + AWSShapeMember(label: "ParentAutomationExecutionId", required: false, type: .string), + AWSShapeMember(label: "ExecutionEndTime", required: false, type: .timestamp), + AWSShapeMember(label: "Target", required: false, type: .string), + AWSShapeMember(label: "MaxErrors", required: false, type: .string), + AWSShapeMember(label: "ExecutedBy", required: false, type: .string), + AWSShapeMember(label: "TargetParameterName", required: false, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .map), AWSShapeMember(label: "DocumentName", required: false, type: .string), AWSShapeMember(label: "DocumentVersion", required: false, type: .string), - AWSShapeMember(label: "ExecutionStartTime", required: false, type: .timestamp), - AWSShapeMember(label: "Outputs", required: false, type: .map), + AWSShapeMember(label: "MaxConcurrency", required: false, type: .string), AWSShapeMember(label: "FailureMessage", required: false, type: .string), AWSShapeMember(label: "AutomationExecutionId", required: false, type: .string), - AWSShapeMember(label: "StepExecutions", required: false, type: .list), - AWSShapeMember(label: "ExecutionEndTime", required: false, type: .timestamp) + AWSShapeMember(label: "StepExecutionsTruncated", required: false, type: .boolean) ] - /// The key-value map of execution parameters, which were supplied when calling StartAutomationExecution. - public let parameters: [String: [String]]? + /// The action of the currently executing step. + public let currentAction: String? /// The execution status of the Automation. public let automationExecutionStatus: AutomationExecutionStatus? + /// The specified targets. + public let targets: [Target]? + /// A list of resolved targets in the rate control execution. + public let resolvedTargets: ResolvedTargets? + /// The name of the currently executing step. + public let currentStepName: String? + /// The list of execution outputs as defined in the automation document. + public let outputs: [String: [String]]? + /// The time the execution started. + public let executionStartTime: TimeStamp? + /// A list of details about the current state of all steps that comprise an execution. An Automation document contains a list of steps that are executed in order. + public let stepExecutions: [StepExecution]? + /// The automation execution mode. + public let mode: ExecutionMode? + /// The AutomationExecutionId of the parent automation. + public let parentAutomationExecutionId: String? + /// The time the execution finished. + public let executionEndTime: TimeStamp? + /// The target of the execution. + public let target: String? + /// The MaxErrors value specified by the user when the execution started. + public let maxErrors: String? + /// The Amazon Resource Name (ARN) of the user who executed the automation. + public let executedBy: String? + /// The parameter name. + public let targetParameterName: String? + /// The key-value map of execution parameters, which were supplied when calling StartAutomationExecution. + public let parameters: [String: [String]]? /// The name of the Automation document used during the execution. public let documentName: String? /// The version of the document to use during execution. public let documentVersion: String? - /// The time the execution started. - public let executionStartTime: TimeStamp? - /// The list of execution outputs as defined in the automation document. - public let outputs: [String: [String]]? + /// The MaxConcurrency value specified by the user when the execution started. + public let maxConcurrency: String? /// A message describing why an execution has failed, if the status is set to Failed. public let failureMessage: String? /// The execution ID. public let automationExecutionId: String? - /// A list of details about the current state of all steps that comprise an execution. An Automation document contains a list of steps that are executed in order. - public let stepExecutions: [StepExecution]? - /// The time the execution finished. - public let executionEndTime: TimeStamp? + /// A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API action to get the full list of step executions. + public let stepExecutionsTruncated: Bool? - public init(parameters: [String: [String]]? = nil, automationExecutionStatus: AutomationExecutionStatus? = nil, documentName: String? = nil, documentVersion: String? = nil, executionStartTime: TimeStamp? = nil, outputs: [String: [String]]? = nil, failureMessage: String? = nil, automationExecutionId: String? = nil, stepExecutions: [StepExecution]? = nil, executionEndTime: TimeStamp? = nil) { - self.parameters = parameters + public init(currentAction: String? = nil, automationExecutionStatus: AutomationExecutionStatus? = nil, targets: [Target]? = nil, resolvedTargets: ResolvedTargets? = nil, currentStepName: String? = nil, outputs: [String: [String]]? = nil, executionStartTime: TimeStamp? = nil, stepExecutions: [StepExecution]? = nil, mode: ExecutionMode? = nil, parentAutomationExecutionId: String? = nil, executionEndTime: TimeStamp? = nil, target: String? = nil, maxErrors: String? = nil, executedBy: String? = nil, targetParameterName: String? = nil, parameters: [String: [String]]? = nil, documentName: String? = nil, documentVersion: String? = nil, maxConcurrency: String? = nil, failureMessage: String? = nil, automationExecutionId: String? = nil, stepExecutionsTruncated: Bool? = nil) { + self.currentAction = currentAction self.automationExecutionStatus = automationExecutionStatus + self.targets = targets + self.resolvedTargets = resolvedTargets + self.currentStepName = currentStepName + self.outputs = outputs + self.executionStartTime = executionStartTime + self.stepExecutions = stepExecutions + self.mode = mode + self.parentAutomationExecutionId = parentAutomationExecutionId + self.executionEndTime = executionEndTime + self.target = target + self.maxErrors = maxErrors + self.executedBy = executedBy + self.targetParameterName = targetParameterName + self.parameters = parameters self.documentName = documentName self.documentVersion = documentVersion - self.executionStartTime = executionStartTime - self.outputs = outputs + self.maxConcurrency = maxConcurrency self.failureMessage = failureMessage self.automationExecutionId = automationExecutionId - self.stepExecutions = stepExecutions - self.executionEndTime = executionEndTime + self.stepExecutionsTruncated = stepExecutionsTruncated } private enum CodingKeys: String, CodingKey { - case parameters = "Parameters" + case currentAction = "CurrentAction" case automationExecutionStatus = "AutomationExecutionStatus" - case documentName = "DocumentName" - case documentVersion = "DocumentVersion" - case executionStartTime = "ExecutionStartTime" + case targets = "Targets" + case resolvedTargets = "ResolvedTargets" + case currentStepName = "CurrentStepName" case outputs = "Outputs" - case failureMessage = "FailureMessage" - case automationExecutionId = "AutomationExecutionId" + case executionStartTime = "ExecutionStartTime" case stepExecutions = "StepExecutions" + case mode = "Mode" + case parentAutomationExecutionId = "ParentAutomationExecutionId" case executionEndTime = "ExecutionEndTime" - } - } - - public struct MaintenanceWindowTaskParameterValueExpression: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Values", required: false, type: .list) - ] - /// This field contains an array of 0 or more strings, each 1 to 255 characters in length. - public let values: [String]? - - public init(values: [String]? = nil) { - self.values = values - } - - private enum CodingKeys: String, CodingKey { - case values = "Values" - } - } - - public struct AssociationFilterList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AssociationFilter", required: false, type: .list) - ] - public let associationFilter: [AssociationFilter]? - - public init(associationFilter: [AssociationFilter]? = nil) { - self.associationFilter = associationFilter - } - - private enum CodingKeys: String, CodingKey { - case associationFilter = "AssociationFilter" + case target = "Target" + case maxErrors = "MaxErrors" + case executedBy = "ExecutedBy" + case targetParameterName = "TargetParameterName" + case parameters = "Parameters" + case documentName = "DocumentName" + case documentVersion = "DocumentVersion" + case maxConcurrency = "MaxConcurrency" + case failureMessage = "FailureMessage" + case automationExecutionId = "AutomationExecutionId" + case stepExecutionsTruncated = "StepExecutionsTruncated" } } public struct GetParametersByPathResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -2835,8 +3508,24 @@ extension Ssm { } } + public struct MaintenanceWindowTaskParameterValueExpression: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Values", required: false, type: .list) + ] + /// This field contains an array of 0 or more strings, each 1 to 255 characters in length. + public let values: [String]? + + public init(values: [String]? = nil) { + self.values = values + } + + private enum CodingKeys: String, CodingKey { + case values = "Values" + } + } + public struct Patch: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Classification", required: false, type: .string), AWSShapeMember(label: "Product", required: false, type: .string), AWSShapeMember(label: "Language", required: false, type: .string), @@ -2911,11 +3600,38 @@ extension Ssm { } } + public struct MaintenanceWindowStepFunctionsParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Input", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string) + ] + /// The inputs for the STEP_FUNCTION task. + public let input: String? + /// The name of the STEP_FUNCTION task. + public let name: String? + + public init(input: String? = nil, name: String? = nil) { + self.input = input + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case input = "Input" + case name = "Name" + } + } + + public enum ComplianceStatus: String, CustomStringConvertible, Codable { + case compliant = "COMPLIANT" + case nonCompliant = "NON_COMPLIANT" + public var description: String { return self.rawValue } + } + public struct DescribeDocumentResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Document", required: false, type: .structure) ] - /// Information about the SSM document. + /// Information about the Systems Manager document. public let document: DocumentDescription? public init(document: DocumentDescription? = nil) { @@ -2928,7 +3644,7 @@ extension Ssm { } public struct DescribeAutomationExecutionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "AutomationExecutionMetadataList", required: false, type: .list) ] @@ -2949,95 +3665,96 @@ extension Ssm { } public struct RegisterTaskWithMaintenanceWindowRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: true, type: .string), - AWSShapeMember(label: "TaskArn", required: true, type: .string), + AWSShapeMember(label: "TaskInvocationParameters", required: false, type: .structure), AWSShapeMember(label: "ServiceRoleArn", required: true, type: .string), - AWSShapeMember(label: "MaxErrors", required: true, type: .string), - AWSShapeMember(label: "TaskType", required: true, type: .enum), AWSShapeMember(label: "ClientToken", required: false, type: .string), - AWSShapeMember(label: "TaskParameters", required: false, type: .map), + AWSShapeMember(label: "Priority", required: false, type: .integer), AWSShapeMember(label: "Targets", required: true, type: .list), AWSShapeMember(label: "LoggingInfo", required: false, type: .structure), - AWSShapeMember(label: "Priority", required: false, type: .integer), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "MaxErrors", required: true, type: .string), + AWSShapeMember(label: "TaskArn", required: true, type: .string), + AWSShapeMember(label: "TaskType", required: true, type: .enum), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "TaskParameters", required: false, type: .map), AWSShapeMember(label: "MaxConcurrency", required: true, type: .string) ] /// The id of the Maintenance Window the task should be added to. public let windowId: String - /// The ARN of the task to execute - public let taskArn: String + /// The parameters that the task should use during execution. Populate only the fields that match the task type. All other fields should be empty. + public let taskInvocationParameters: MaintenanceWindowTaskInvocationParameters? /// The role that should be assumed when executing the task. public let serviceRoleArn: String - /// The maximum number of errors allowed before this task stops being scheduled. - public let maxErrors: String - /// The type of task being registered. - public let taskType: MaintenanceWindowTaskType /// User-provided idempotency token. public let clientToken: String? - /// The parameters that should be passed to the task when it is executed. - public let taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? + /// The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel. + public let priority: Int32? /// The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>. public let targets: [Target] /// A structure containing information about an Amazon S3 bucket to write instance-level logs to. public let loggingInfo: LoggingInfo? - /// The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel. - public let priority: Int32? + /// An optional description for the task. + public let description: String? + /// The maximum number of errors allowed before this task stops being scheduled. + public let maxErrors: String + /// The ARN of the task to execute + public let taskArn: String + /// The type of task being registered. + public let taskType: MaintenanceWindowTaskType + /// An optional name for the task. + public let name: String? + /// The parameters that should be passed to the task when it is executed. + public let taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? /// The maximum number of targets this task can be run for in parallel. public let maxConcurrency: String - public init(windowId: String, taskArn: String, serviceRoleArn: String, maxErrors: String, taskType: MaintenanceWindowTaskType, clientToken: String? = nil, taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? = nil, targets: [Target], loggingInfo: LoggingInfo? = nil, priority: Int32? = nil, maxConcurrency: String) { + public init(windowId: String, taskInvocationParameters: MaintenanceWindowTaskInvocationParameters? = nil, serviceRoleArn: String, clientToken: String? = nil, priority: Int32? = nil, targets: [Target], loggingInfo: LoggingInfo? = nil, description: String? = nil, maxErrors: String, taskArn: String, taskType: MaintenanceWindowTaskType, name: String? = nil, taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? = nil, maxConcurrency: String) { self.windowId = windowId - self.taskArn = taskArn + self.taskInvocationParameters = taskInvocationParameters self.serviceRoleArn = serviceRoleArn - self.maxErrors = maxErrors - self.taskType = taskType self.clientToken = clientToken - self.taskParameters = taskParameters + self.priority = priority self.targets = targets self.loggingInfo = loggingInfo - self.priority = priority + self.description = description + self.maxErrors = maxErrors + self.taskArn = taskArn + self.taskType = taskType + self.name = name + self.taskParameters = taskParameters self.maxConcurrency = maxConcurrency } private enum CodingKeys: String, CodingKey { case windowId = "WindowId" - case taskArn = "TaskArn" + case taskInvocationParameters = "TaskInvocationParameters" case serviceRoleArn = "ServiceRoleArn" - case maxErrors = "MaxErrors" - case taskType = "TaskType" case clientToken = "ClientToken" - case taskParameters = "TaskParameters" + case priority = "Priority" case targets = "Targets" case loggingInfo = "LoggingInfo" - case priority = "Priority" + case description = "Description" + case maxErrors = "MaxErrors" + case taskArn = "TaskArn" + case taskType = "TaskType" + case name = "Name" + case taskParameters = "TaskParameters" case maxConcurrency = "MaxConcurrency" } } - public struct ResultAttributeList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResultAttribute", required: false, type: .list) - ] - public let resultAttribute: [ResultAttribute]? - - public init(resultAttribute: [ResultAttribute]? = nil) { - self.resultAttribute = resultAttribute - } - - private enum CodingKeys: String, CodingKey { - case resultAttribute = "ResultAttribute" - } - } - public struct CreateAssociationBatchRequestEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Parameters", required: false, type: .map), AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "DocumentVersion", required: false, type: .string), AWSShapeMember(label: "Targets", required: false, type: .list), AWSShapeMember(label: "OutputLocation", required: false, type: .structure), - AWSShapeMember(label: "ScheduleExpression", required: false, type: .string) + AWSShapeMember(label: "ScheduleExpression", required: false, type: .string), + AWSShapeMember(label: "AssociationName", required: false, type: .string) ] /// A description of the parameters for a document. public let parameters: [String: [String]]? @@ -3053,8 +3770,10 @@ extension Ssm { public let outputLocation: InstanceAssociationOutputLocation? /// A cron expression that specifies a schedule when the association runs. public let scheduleExpression: String? + /// Specify a descriptive name for the association. + public let associationName: String? - public init(parameters: [String: [String]]? = nil, instanceId: String? = nil, name: String, documentVersion: String? = nil, targets: [Target]? = nil, outputLocation: InstanceAssociationOutputLocation? = nil, scheduleExpression: String? = nil) { + public init(parameters: [String: [String]]? = nil, instanceId: String? = nil, name: String, documentVersion: String? = nil, targets: [Target]? = nil, outputLocation: InstanceAssociationOutputLocation? = nil, scheduleExpression: String? = nil, associationName: String? = nil) { self.parameters = parameters self.instanceId = instanceId self.name = name @@ -3062,6 +3781,7 @@ extension Ssm { self.targets = targets self.outputLocation = outputLocation self.scheduleExpression = scheduleExpression + self.associationName = associationName } private enum CodingKeys: String, CodingKey { @@ -3072,6 +3792,7 @@ extension Ssm { case targets = "Targets" case outputLocation = "OutputLocation" case scheduleExpression = "ScheduleExpression" + case associationName = "AssociationName" } } @@ -3092,63 +3813,67 @@ extension Ssm { case associationstatusname = "AssociationStatusName" case lastexecutedbefore = "LastExecutedBefore" case lastexecutedafter = "LastExecutedAfter" + case associationname = "AssociationName" public var description: String { return self.rawValue } } public struct GetDefaultPatchBaselineRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperatingSystem", required: false, type: .enum) + ] + /// Returns the default patch baseline for the specified operating system. + public let operatingSystem: OperatingSystem? + + public init(operatingSystem: OperatingSystem? = nil) { + self.operatingSystem = operatingSystem + } + private enum CodingKeys: String, CodingKey { + case operatingSystem = "OperatingSystem" + } } public struct ResourceDataSyncS3Destination: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Prefix", required: false, type: .string), AWSShapeMember(label: "BucketName", required: true, type: .string), AWSShapeMember(label: "SyncFormat", required: true, type: .enum), AWSShapeMember(label: "Region", required: true, type: .string), - AWSShapeMember(label: "Prefix", required: false, type: .string) + AWSShapeMember(label: "AWSKMSKeyARN", required: false, type: .string) ] + /// An Amazon S3 prefix for the bucket. + public let prefix: String? /// The name of the Amazon S3 bucket where the aggregated data is stored. public let bucketName: String /// A supported sync format. The following format is currently supported: JsonSerDe public let syncFormat: ResourceDataSyncS3Format /// The AWS Region with the Amazon S3 bucket targeted by the Resource Data Sync. public let region: String - /// An Amazon S3 prefix for the bucket. - public let prefix: String? + /// The ARN of an encryption key for a destination in Amazon S3. Must belong to the same region as the destination Amazon S3 bucket. + public let aWSKMSKeyARN: String? - public init(bucketName: String, syncFormat: ResourceDataSyncS3Format, region: String, prefix: String? = nil) { + public init(prefix: String? = nil, bucketName: String, syncFormat: ResourceDataSyncS3Format, region: String, aWSKMSKeyARN: String? = nil) { + self.prefix = prefix self.bucketName = bucketName self.syncFormat = syncFormat self.region = region - self.prefix = prefix + self.aWSKMSKeyARN = aWSKMSKeyARN } private enum CodingKeys: String, CodingKey { + case prefix = "Prefix" case bucketName = "BucketName" case syncFormat = "SyncFormat" case region = "Region" - case prefix = "Prefix" - } - } - - public struct InstanceInformationFilterList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceInformationFilter", required: false, type: .list) - ] - public let instanceInformationFilter: [InstanceInformationFilter]? - - public init(instanceInformationFilter: [InstanceInformationFilter]? = nil) { - self.instanceInformationFilter = instanceInformationFilter - } - - private enum CodingKeys: String, CodingKey { - case instanceInformationFilter = "InstanceInformationFilter" + case aWSKMSKeyARN = "AWSKMSKeyARN" } } public struct ParameterHistory: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Version", required: false, type: .long), AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "AllowedPattern", required: false, type: .string), AWSShapeMember(label: "Type", required: false, type: .enum), @@ -3160,6 +3885,8 @@ extension Ssm { public let keyId: String? /// The name of the parameter. public let name: String? + /// The parameter version. + public let version: Int64? /// Date the parameter was last changed or updated. public let lastModifiedDate: TimeStamp? /// Parameter names can include the following letters and symbols. a-zA-Z0-9_.- @@ -3173,9 +3900,10 @@ extension Ssm { /// Information about the parameter. public let description: String? - public init(keyId: String? = nil, name: String? = nil, lastModifiedDate: TimeStamp? = nil, allowedPattern: String? = nil, type: ParameterType? = nil, value: String? = nil, lastModifiedUser: String? = nil, description: String? = nil) { + public init(keyId: String? = nil, name: String? = nil, version: Int64? = nil, lastModifiedDate: TimeStamp? = nil, allowedPattern: String? = nil, type: ParameterType? = nil, value: String? = nil, lastModifiedUser: String? = nil, description: String? = nil) { self.keyId = keyId self.name = name + self.version = version self.lastModifiedDate = lastModifiedDate self.allowedPattern = allowedPattern self.`type` = `type` @@ -3187,6 +3915,7 @@ extension Ssm { private enum CodingKeys: String, CodingKey { case keyId = "KeyId" case name = "Name" + case version = "Version" case lastModifiedDate = "LastModifiedDate" case allowedPattern = "AllowedPattern" case `type` = "Type" @@ -3198,11 +3927,14 @@ extension Ssm { public enum MaintenanceWindowTaskType: String, CustomStringConvertible, Codable { case runCommand = "RUN_COMMAND" + case automation = "AUTOMATION" + case stepFunctions = "STEP_FUNCTIONS" + case lambda = "LAMBDA" public var description: String { return self.rawValue } } public struct PatchOrchestratorFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: false, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) ] @@ -3235,7 +3967,7 @@ extension Ssm { } public struct UpdateDocumentResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DocumentDescription", required: false, type: .structure) ] /// A description of the document that was updated. @@ -3251,7 +3983,7 @@ extension Ssm { } public struct InventoryItemAttribute: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DataType", required: true, type: .enum), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -3272,40 +4004,47 @@ extension Ssm { } public struct DocumentDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Sha1", required: false, type: .string), + AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "DefaultVersion", required: false, type: .string), AWSShapeMember(label: "CreatedDate", required: false, type: .timestamp), + AWSShapeMember(label: "DocumentFormat", required: false, type: .enum), AWSShapeMember(label: "Owner", required: false, type: .string), AWSShapeMember(label: "DocumentType", required: false, type: .enum), AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "Status", required: false, type: .enum), - AWSShapeMember(label: "Parameters", required: false, type: .structure), + AWSShapeMember(label: "Parameters", required: false, type: .list), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "DocumentVersion", required: false, type: .string), AWSShapeMember(label: "SchemaVersion", required: false, type: .string), AWSShapeMember(label: "LatestVersion", required: false, type: .string), - AWSShapeMember(label: "PlatformTypes", required: false, type: .structure), - AWSShapeMember(label: "Hash", required: false, type: .string), - AWSShapeMember(label: "HashType", required: false, type: .enum) + AWSShapeMember(label: "TargetType", required: false, type: .string), + AWSShapeMember(label: "PlatformTypes", required: false, type: .list), + AWSShapeMember(label: "HashType", required: false, type: .enum), + AWSShapeMember(label: "Hash", required: false, type: .string) ] - /// The SHA1 hash of the document, which you can use for verification purposes. + /// The SHA1 hash of the document, which you can use for verification. public let sha1: String? + /// The tags, or metadata, that have been applied to the document. + public let tags: [Tag]? /// The default version. public let defaultVersion: String? /// The date when the document was created. public let createdDate: TimeStamp? - /// The AWS user account of the person who created the document. + /// The document format, either JSON or YAML. + public let documentFormat: DocumentFormat? + /// The AWS user account that created the document. public let owner: String? /// The type of document. public let documentType: DocumentType? /// A description of the document. public let description: String? - /// The status of the SSM document. + /// The status of the Systems Manager document. public let status: DocumentStatus? /// A description of the parameters for a document. - public let parameters: DocumentParameterList? - /// The name of the SSM document. + public let parameters: [DocumentParameter]? + /// The name of the Systems Manager document. public let name: String? /// The document version. public let documentVersion: String? @@ -3313,17 +4052,21 @@ extension Ssm { public let schemaVersion: String? /// The latest version of the document. public let latestVersion: String? - /// The list of OS platforms compatible with this SSM document. - public let platformTypes: PlatformTypeList? - /// The Sha256 or Sha1 hash created by the system when the document was created. Sha1 hashes have been deprecated. - public let hash: String? + /// The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see AWS Resource Types Reference in the AWS CloudFormation User Guide. + public let targetType: String? + /// The list of OS platforms compatible with this Systems Manager document. + public let platformTypes: [PlatformType]? /// Sha256 or Sha1. Sha1 hashes have been deprecated. public let hashType: DocumentHashType? + /// The Sha256 or Sha1 hash created by the system when the document was created. Sha1 hashes have been deprecated. + public let hash: String? - public init(sha1: String? = nil, defaultVersion: String? = nil, createdDate: TimeStamp? = nil, owner: String? = nil, documentType: DocumentType? = nil, description: String? = nil, status: DocumentStatus? = nil, parameters: DocumentParameterList? = nil, name: String? = nil, documentVersion: String? = nil, schemaVersion: String? = nil, latestVersion: String? = nil, platformTypes: PlatformTypeList? = nil, hash: String? = nil, hashType: DocumentHashType? = nil) { + public init(sha1: String? = nil, tags: [Tag]? = nil, defaultVersion: String? = nil, createdDate: TimeStamp? = nil, documentFormat: DocumentFormat? = nil, owner: String? = nil, documentType: DocumentType? = nil, description: String? = nil, status: DocumentStatus? = nil, parameters: [DocumentParameter]? = nil, name: String? = nil, documentVersion: String? = nil, schemaVersion: String? = nil, latestVersion: String? = nil, targetType: String? = nil, platformTypes: [PlatformType]? = nil, hashType: DocumentHashType? = nil, hash: String? = nil) { self.sha1 = sha1 + self.tags = tags self.defaultVersion = defaultVersion self.createdDate = createdDate + self.documentFormat = documentFormat self.owner = owner self.documentType = documentType self.description = description @@ -3333,15 +4076,18 @@ extension Ssm { self.documentVersion = documentVersion self.schemaVersion = schemaVersion self.latestVersion = latestVersion + self.targetType = targetType self.platformTypes = platformTypes - self.hash = hash self.hashType = hashType + self.hash = hash } private enum CodingKeys: String, CodingKey { case sha1 = "Sha1" + case tags = "Tags" case defaultVersion = "DefaultVersion" case createdDate = "CreatedDate" + case documentFormat = "DocumentFormat" case owner = "Owner" case documentType = "DocumentType" case description = "Description" @@ -3351,14 +4097,15 @@ extension Ssm { case documentVersion = "DocumentVersion" case schemaVersion = "SchemaVersion" case latestVersion = "LatestVersion" + case targetType = "TargetType" case platformTypes = "PlatformTypes" - case hash = "Hash" case hashType = "HashType" + case hash = "Hash" } } public struct DeregisterPatchBaselineForPatchGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: true, type: .string), AWSShapeMember(label: "PatchGroup", required: true, type: .string) ] @@ -3379,16 +4126,16 @@ extension Ssm { } public struct InstanceInformationFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .enum), - AWSShapeMember(label: "valueSet", required: true, type: .structure) + AWSShapeMember(label: "valueSet", required: true, type: .list) ] /// The name of the filter. public let key: InstanceInformationFilterKey /// The filter values. - public let valueSet: InstanceInformationFilterValueSet + public let valueSet: [String] - public init(key: InstanceInformationFilterKey, valueSet: InstanceInformationFilterValueSet) { + public init(key: InstanceInformationFilterKey, valueSet: [String]) { self.key = key self.valueSet = valueSet } @@ -3399,12 +4146,25 @@ extension Ssm { } } + public struct SendAutomationSignalResult: AWSShape { + + } + + public enum ComplianceQueryOperatorType: String, CustomStringConvertible, Codable { + case equal = "EQUAL" + case notEqual = "NOT_EQUAL" + case beginWith = "BEGIN_WITH" + case lessThan = "LESS_THAN" + case greaterThan = "GREATER_THAN" + public var description: String { return self.rawValue } + } + public struct CreateResourceDataSyncResult: AWSShape { } public struct DescribeEffectiveInstanceAssociationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -3433,24 +4193,8 @@ extension Ssm { } - public struct PatchFilterGroup: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PatchFilters", required: true, type: .list) - ] - /// The set of patch filters that make up the group. - public let patchFilters: [PatchFilter] - - public init(patchFilters: [PatchFilter]) { - self.patchFilters = patchFilters - } - - private enum CodingKeys: String, CodingKey { - case patchFilters = "PatchFilters" - } - } - public struct DescribeDocumentPermissionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "PermissionType", required: true, type: .enum) ] @@ -3470,29 +4214,80 @@ extension Ssm { } } - public struct RegisterPatchBaselineForPatchGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "BaselineId", required: false, type: .string), - AWSShapeMember(label: "PatchGroup", required: false, type: .string) + public struct PatchFilterGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "PatchFilters", required: true, type: .list) ] - /// The ID of the patch baseline the patch group was registered with. - public let baselineId: String? - /// The name of the patch group registered with the patch baseline. - public let patchGroup: String? + /// The set of patch filters that make up the group. + public let patchFilters: [PatchFilter] - public init(baselineId: String? = nil, patchGroup: String? = nil) { - self.baselineId = baselineId - self.patchGroup = patchGroup + public init(patchFilters: [PatchFilter]) { + self.patchFilters = patchFilters } private enum CodingKeys: String, CodingKey { - case baselineId = "BaselineId" - case patchGroup = "PatchGroup" + case patchFilters = "PatchFilters" + } + } + + public struct ComplianceItem: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Severity", required: false, type: .enum), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "ComplianceType", required: false, type: .string), + AWSShapeMember(label: "Details", required: false, type: .map), + AWSShapeMember(label: "ResourceType", required: false, type: .string), + AWSShapeMember(label: "Title", required: false, type: .string), + AWSShapeMember(label: "ExecutionSummary", required: false, type: .structure), + AWSShapeMember(label: "ResourceId", required: false, type: .string), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// The severity of the compliance status. Severity can be one of the following: Critical, High, Medium, Low, Informational, Unspecified. + public let severity: ComplianceSeverity? + /// The status of the compliance item. An item is either COMPLIANT or NON_COMPLIANT. + public let status: ComplianceStatus? + /// The compliance type. For example, Association (for a State Manager association), Patch, or Custom:string are all valid compliance types. + public let complianceType: String? + /// A "Key": "Value" tag combination for the compliance item. + public let details: [String: String]? + /// The type of resource. ManagedInstance is currently the only supported resource type. + public let resourceType: String? + /// A title for the compliance item. For example, if the compliance item is a Windows patch, the title could be the title of the KB article for the patch. Here's an example: Security Update for Active Directory Federation Services. + public let title: String? + /// A summary for the compliance item. The summary includes an execution ID, the execution type (for example, command), and the execution time. + public let executionSummary: ComplianceExecutionSummary? + /// An ID for the resource. For a managed instance, this is the instance ID. + public let resourceId: String? + /// An ID for the compliance item. For example, if the compliance item is a Windows patch, the ID could be the number of the KB article. Here's an example: KB4010320. + public let id: String? + + public init(severity: ComplianceSeverity? = nil, status: ComplianceStatus? = nil, complianceType: String? = nil, details: [String: String]? = nil, resourceType: String? = nil, title: String? = nil, executionSummary: ComplianceExecutionSummary? = nil, resourceId: String? = nil, id: String? = nil) { + self.severity = severity + self.status = status + self.complianceType = complianceType + self.details = details + self.resourceType = resourceType + self.title = title + self.executionSummary = executionSummary + self.resourceId = resourceId + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case severity = "Severity" + case status = "Status" + case complianceType = "ComplianceType" + case details = "Details" + case resourceType = "ResourceType" + case title = "Title" + case executionSummary = "ExecutionSummary" + case resourceId = "ResourceId" + case id = "Id" } } public struct CommandFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .enum), AWSShapeMember(label: "value", required: true, type: .string) ] @@ -3512,55 +4307,138 @@ extension Ssm { } } + public struct RegisterPatchBaselineForPatchGroupResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BaselineId", required: false, type: .string), + AWSShapeMember(label: "PatchGroup", required: false, type: .string) + ] + /// The ID of the patch baseline the patch group was registered with. + public let baselineId: String? + /// The name of the patch group registered with the patch baseline. + public let patchGroup: String? + + public init(baselineId: String? = nil, patchGroup: String? = nil) { + self.baselineId = baselineId + self.patchGroup = patchGroup + } + + private enum CodingKeys: String, CodingKey { + case baselineId = "BaselineId" + case patchGroup = "PatchGroup" + } + } + public enum MaintenanceWindowResourceType: String, CustomStringConvertible, Codable { case instance = "INSTANCE" public var description: String { return self.rawValue } } public struct CreateDocumentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Content", required: true, type: .string), + AWSShapeMember(label: "TargetType", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "DocumentFormat", required: false, type: .enum), AWSShapeMember(label: "DocumentType", required: false, type: .enum) ] - /// A valid JSON string. + /// A valid JSON or YAML string. public let content: String + /// Specify a target type to define the kinds of resources the document can run on. For example, to run a document on EC2 instances, specify the following value: /AWS::EC2::Instance. If you specify a value of '/' the document can run on all types of resources. If you don't specify a value, the document can't run on any resources. For a list of valid resource types, see AWS Resource Types Reference in the AWS CloudFormation User Guide. + public let targetType: String? /// A name for the Systems Manager document. public let name: String + /// Specify the document format for the request. The document format can be either JSON or YAML. JSON is the default format. + public let documentFormat: DocumentFormat? /// The type of document to create. Valid document types include: Policy, Automation, and Command. public let documentType: DocumentType? - public init(content: String, name: String, documentType: DocumentType? = nil) { + public init(content: String, targetType: String? = nil, name: String, documentFormat: DocumentFormat? = nil, documentType: DocumentType? = nil) { self.content = content + self.targetType = targetType self.name = name + self.documentFormat = documentFormat self.documentType = documentType } private enum CodingKeys: String, CodingKey { case content = "Content" + case targetType = "TargetType" case name = "Name" + case documentFormat = "DocumentFormat" case documentType = "DocumentType" } } - public struct RegisterDefaultPatchBaselineResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "BaselineId", required: false, type: .string) + public struct RegisterDefaultPatchBaselineResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "BaselineId", required: false, type: .string) + ] + /// The ID of the default patch baseline. + public let baselineId: String? + + public init(baselineId: String? = nil) { + self.baselineId = baselineId + } + + private enum CodingKeys: String, CodingKey { + case baselineId = "BaselineId" + } + } + + public struct ComplianceItemEntry: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Severity", required: true, type: .enum), + AWSShapeMember(label: "Details", required: false, type: .map), + AWSShapeMember(label: "Title", required: false, type: .string), + AWSShapeMember(label: "Status", required: true, type: .enum), + AWSShapeMember(label: "Id", required: false, type: .string) + ] + /// The severity of the compliance status. Severity can be one of the following: Critical, High, Medium, Low, Informational, Unspecified. + public let severity: ComplianceSeverity + /// A "Key": "Value" tag combination for the compliance item. + public let details: [String: String]? + /// The title of the compliance item. For example, if the compliance item is a Windows patch, the title could be the title of the KB article for the patch. Here's an example: Security Update for Active Directory Federation Services. + public let title: String? + /// The status of the compliance item. An item is either COMPLIANT or NON_COMPLIANT. + public let status: ComplianceStatus + /// The compliance item ID. For example, if the compliance item is a Windows patch, the ID could be the number of the KB article. + public let id: String? + + public init(severity: ComplianceSeverity, details: [String: String]? = nil, title: String? = nil, status: ComplianceStatus, id: String? = nil) { + self.severity = severity + self.details = details + self.title = title + self.status = status + self.id = id + } + + private enum CodingKeys: String, CodingKey { + case severity = "Severity" + case details = "Details" + case title = "Title" + case status = "Status" + case id = "Id" + } + } + + public struct SendCommandResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Command", required: false, type: .structure) ] - /// The ID of the default patch baseline. - public let baselineId: String? + /// The request as it was received by Systems Manager. Also provides the command ID which can be used future references to this request. + public let command: Command? - public init(baselineId: String? = nil) { - self.baselineId = baselineId + public init(command: Command? = nil) { + self.command = command } private enum CodingKeys: String, CodingKey { - case baselineId = "BaselineId" + case command = "Command" } } public struct GetDeployablePatchSnapshotForInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: true, type: .string), AWSShapeMember(label: "InstanceId", required: true, type: .string) ] @@ -3580,24 +4458,8 @@ extension Ssm { } } - public struct SendCommandResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Command", required: false, type: .structure) - ] - /// The request as it was received by Systems Manager. Also provides the command ID which can be used future references to this request. - public let command: Command? - - public init(command: Command? = nil) { - self.command = command - } - - private enum CodingKeys: String, CodingKey { - case command = "Command" - } - } - public struct DeregisterTaskFromMaintenanceWindowRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: true, type: .string), AWSShapeMember(label: "WindowTaskId", required: true, type: .string) ] @@ -3618,7 +4480,7 @@ extension Ssm { } public struct GetParametersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WithDecryption", required: false, type: .boolean), AWSShapeMember(label: "Names", required: true, type: .list) ] @@ -3639,7 +4501,7 @@ extension Ssm { } public struct ListCommandInvocationsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "CommandInvocations", required: false, type: .list) ] @@ -3659,8 +4521,44 @@ extension Ssm { } } + public struct ListComplianceItemsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceIds", required: false, type: .list), + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ResourceTypes", required: false, type: .list), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The ID for the resources from which to get compliance information. Currently, you can only specify one resource ID. + public let resourceIds: [String]? + /// One or more compliance filters. Use a filter to return a more specific list of results. + public let filters: [ComplianceStringFilter]? + /// A token to start the list. Use this token to get the next set of results. + public let nextToken: String? + /// The type of resource from which to get compliance information. Currently, the only supported resource type is ManagedInstance. + public let resourceTypes: [String]? + /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + public let maxResults: Int32? + + public init(resourceIds: [String]? = nil, filters: [ComplianceStringFilter]? = nil, nextToken: String? = nil, resourceTypes: [String]? = nil, maxResults: Int32? = nil) { + self.resourceIds = resourceIds + self.filters = filters + self.nextToken = nextToken + self.resourceTypes = resourceTypes + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case resourceIds = "ResourceIds" + case filters = "Filters" + case nextToken = "NextToken" + case resourceTypes = "ResourceTypes" + case maxResults = "MaxResults" + } + } + public struct DescribeMaintenanceWindowExecutionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: true, type: .string), AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -3691,7 +4589,7 @@ extension Ssm { } public struct DeleteParametersResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InvalidParameters", required: false, type: .list), AWSShapeMember(label: "DeletedParameters", required: false, type: .list) ] @@ -3719,7 +4617,7 @@ extension Ssm { } public struct ListCommandsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "CommandId", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string), @@ -3755,9 +4653,10 @@ extension Ssm { } public struct ParameterMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeyId", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Version", required: false, type: .long), AWSShapeMember(label: "LastModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "AllowedPattern", required: false, type: .string), AWSShapeMember(label: "Type", required: false, type: .enum), @@ -3768,6 +4667,8 @@ extension Ssm { public let keyId: String? /// The parameter name. public let name: String? + /// The parameter version. + public let version: Int64? /// Date the parameter was last changed or updated. public let lastModifiedDate: TimeStamp? /// A parameter name can include only the following letters and symbols. a-zA-Z0-9_.- @@ -3779,9 +4680,10 @@ extension Ssm { /// Description of the parameter actions. public let description: String? - public init(keyId: String? = nil, name: String? = nil, lastModifiedDate: TimeStamp? = nil, allowedPattern: String? = nil, type: ParameterType? = nil, lastModifiedUser: String? = nil, description: String? = nil) { + public init(keyId: String? = nil, name: String? = nil, version: Int64? = nil, lastModifiedDate: TimeStamp? = nil, allowedPattern: String? = nil, type: ParameterType? = nil, lastModifiedUser: String? = nil, description: String? = nil) { self.keyId = keyId self.name = name + self.version = version self.lastModifiedDate = lastModifiedDate self.allowedPattern = allowedPattern self.`type` = `type` @@ -3792,6 +4694,7 @@ extension Ssm { private enum CodingKeys: String, CodingKey { case keyId = "KeyId" case name = "Name" + case version = "Version" case lastModifiedDate = "LastModifiedDate" case allowedPattern = "AllowedPattern" case `type` = "Type" @@ -3807,57 +4710,18 @@ extension Ssm { public var description: String { return self.rawValue } } - public struct DescribeMaintenanceWindowsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .list), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) - ] - /// The token for the next set of items to return. (You received this token from a previous call.) - public let nextToken: String? - /// Optional filters used to narrow down the scope of the returned Maintenance Windows. Supported filter keys are Name and Enabled. - public let filters: [MaintenanceWindowFilter]? - /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. - public let maxResults: Int32? - - public init(nextToken: String? = nil, filters: [MaintenanceWindowFilter]? = nil, maxResults: Int32? = nil) { - self.nextToken = nextToken - self.filters = filters - self.maxResults = maxResults - } - - private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case filters = "Filters" - case maxResults = "MaxResults" - } - } - - public struct PlatformTypeList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "PlatformType", required: false, type: .list) - ] - public let platformType: [PlatformType]? - - public init(platformType: [PlatformType]? = nil) { - self.platformType = platformType - } - - private enum CodingKeys: String, CodingKey { - case platformType = "PlatformType" - } - } - public struct UpdatePatchBaselineResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: false, type: .string), AWSShapeMember(label: "ApprovedPatches", required: false, type: .list), AWSShapeMember(label: "ModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "OperatingSystem", required: false, type: .enum), AWSShapeMember(label: "RejectedPatches", required: false, type: .list), + AWSShapeMember(label: "ApprovedPatchesComplianceLevel", required: false, type: .enum), AWSShapeMember(label: "ApprovalRules", required: false, type: .structure), - AWSShapeMember(label: "GlobalFilters", required: false, type: .structure), AWSShapeMember(label: "CreatedDate", required: false, type: .timestamp), + AWSShapeMember(label: "GlobalFilters", required: false, type: .structure), AWSShapeMember(label: "Description", required: false, type: .string) ] /// The ID of the deleted patch baseline. @@ -3868,26 +4732,32 @@ extension Ssm { public let modifiedDate: TimeStamp? /// The name of the patch baseline. public let name: String? + /// The operating system rule used by the updated patch baseline. + public let operatingSystem: OperatingSystem? /// A list of explicitly rejected patches for the baseline. public let rejectedPatches: [String]? + /// The compliance severity level assigned to the patch baseline after the update completed. + public let approvedPatchesComplianceLevel: PatchComplianceLevel? /// A set of rules used to include patches in the baseline. public let approvalRules: PatchRuleGroup? - /// A set of global filters used to exclude patches from the baseline. - public let globalFilters: PatchFilterGroup? /// The date when the patch baseline was created. public let createdDate: TimeStamp? + /// A set of global filters used to exclude patches from the baseline. + public let globalFilters: PatchFilterGroup? /// A description of the Patch Baseline. public let description: String? - public init(baselineId: String? = nil, approvedPatches: [String]? = nil, modifiedDate: TimeStamp? = nil, name: String? = nil, rejectedPatches: [String]? = nil, approvalRules: PatchRuleGroup? = nil, globalFilters: PatchFilterGroup? = nil, createdDate: TimeStamp? = nil, description: String? = nil) { + public init(baselineId: String? = nil, approvedPatches: [String]? = nil, modifiedDate: TimeStamp? = nil, name: String? = nil, operatingSystem: OperatingSystem? = nil, rejectedPatches: [String]? = nil, approvedPatchesComplianceLevel: PatchComplianceLevel? = nil, approvalRules: PatchRuleGroup? = nil, createdDate: TimeStamp? = nil, globalFilters: PatchFilterGroup? = nil, description: String? = nil) { self.baselineId = baselineId self.approvedPatches = approvedPatches self.modifiedDate = modifiedDate self.name = name + self.operatingSystem = operatingSystem self.rejectedPatches = rejectedPatches + self.approvedPatchesComplianceLevel = approvedPatchesComplianceLevel self.approvalRules = approvalRules - self.globalFilters = globalFilters self.createdDate = createdDate + self.globalFilters = globalFilters self.description = description } @@ -3896,31 +4766,33 @@ extension Ssm { case approvedPatches = "ApprovedPatches" case modifiedDate = "ModifiedDate" case name = "Name" + case operatingSystem = "OperatingSystem" case rejectedPatches = "RejectedPatches" + case approvedPatchesComplianceLevel = "ApprovedPatchesComplianceLevel" case approvalRules = "ApprovalRules" - case globalFilters = "GlobalFilters" case createdDate = "CreatedDate" + case globalFilters = "GlobalFilters" case description = "Description" } } public struct DescribeInstanceInformationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceInformationFilterList", required: false, type: .structure), - AWSShapeMember(label: "Filters", required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceInformationFilterList", required: false, type: .list), + AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] /// One or more filters. Use a filter to return a more specific list of instances. - public let instanceInformationFilterList: InstanceInformationFilterList? + public let instanceInformationFilterList: [InstanceInformationFilter]? /// One or more filters. Use a filter to return a more specific list of instances. - public let filters: InstanceInformationStringFilterList? + public let filters: [InstanceInformationStringFilter]? /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. public let maxResults: Int32? - public init(instanceInformationFilterList: InstanceInformationFilterList? = nil, filters: InstanceInformationStringFilterList? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + public init(instanceInformationFilterList: [InstanceInformationFilter]? = nil, filters: [InstanceInformationStringFilter]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { self.instanceInformationFilterList = instanceInformationFilterList self.filters = filters self.nextToken = nextToken @@ -3935,23 +4807,53 @@ extension Ssm { } } + public struct DescribeMaintenanceWindowsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// The token for the next set of items to return. (You received this token from a previous call.) + public let nextToken: String? + /// Optional filters used to narrow down the scope of the returned Maintenance Windows. Supported filter keys are Name and Enabled. + public let filters: [MaintenanceWindowFilter]? + /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + public let maxResults: Int32? + + public init(nextToken: String? = nil, filters: [MaintenanceWindowFilter]? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.filters = filters + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case filters = "Filters" + case maxResults = "MaxResults" + } + } + public struct GetInventoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Filters", required: false, type: .structure), - AWSShapeMember(label: "ResultAttributes", required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Aggregators", required: false, type: .list), + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "ResultAttributes", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] + /// Returns counts of inventory types based on one or more expressions. For example, if you aggregate by using an expression that uses the AWS:InstanceInformation.PlatformType type, you can see a count of how many Windows and Linux instances exist in your inventoried fleet. + public let aggregators: [InventoryAggregator]? /// One or more filters. Use a filter to return a more specific list of results. - public let filters: InventoryFilterList? + public let filters: [InventoryFilter]? /// The list of inventory item types to return. - public let resultAttributes: ResultAttributeList? + public let resultAttributes: [ResultAttribute]? /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. public let maxResults: Int32? - public init(filters: InventoryFilterList? = nil, resultAttributes: ResultAttributeList? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + public init(aggregators: [InventoryAggregator]? = nil, filters: [InventoryFilter]? = nil, resultAttributes: [ResultAttribute]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.aggregators = aggregators self.filters = filters self.resultAttributes = resultAttributes self.nextToken = nextToken @@ -3959,6 +4861,7 @@ extension Ssm { } private enum CodingKeys: String, CodingKey { + case aggregators = "Aggregators" case filters = "Filters" case resultAttributes = "ResultAttributes" case nextToken = "NextToken" @@ -3967,7 +4870,7 @@ extension Ssm { } public struct DescribePatchBaselinesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineIdentities", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -3988,7 +4891,7 @@ extension Ssm { } public struct InstanceAggregatedAssociationOverview: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceAssociationStatusAggregatedCount", required: false, type: .map), AWSShapeMember(label: "DetailedStatus", required: false, type: .string) ] @@ -4008,8 +4911,34 @@ extension Ssm { } } + public struct ListComplianceSummariesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// A token to start the list. Use this token to get the next set of results. + public let nextToken: String? + /// One or more compliance or inventory filters. Use a filter to return a more specific list of results. + public let filters: [ComplianceStringFilter]? + /// The maximum number of items to return for this call. Currently, you can specify null or 50. The call also returns a token that you can specify in a subsequent call to get the next set of results. + public let maxResults: Int32? + + public init(nextToken: String? = nil, filters: [ComplianceStringFilter]? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.filters = filters + self.maxResults = maxResults + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case filters = "Filters" + case maxResults = "MaxResults" + } + } + public struct GetCommandInvocationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PluginName", required: false, type: .string), AWSShapeMember(label: "ExecutionElapsedTime", required: false, type: .string), AWSShapeMember(label: "Comment", required: false, type: .string), @@ -4094,49 +5023,39 @@ extension Ssm { } } - public struct InstanceInformationList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceInformation", required: false, type: .list) - ] - public let instanceInformation: [InstanceInformation]? - - public init(instanceInformation: [InstanceInformation]? = nil) { - self.instanceInformation = instanceInformation - } - - private enum CodingKeys: String, CodingKey { - case instanceInformation = "InstanceInformation" - } - } - public struct InventoryItemSchema: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TypeName", required: true, type: .string), - AWSShapeMember(label: "Attributes", required: true, type: .structure), - AWSShapeMember(label: "Version", required: false, type: .string) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Version", required: false, type: .string), + AWSShapeMember(label: "Attributes", required: true, type: .list), + AWSShapeMember(label: "DisplayName", required: false, type: .string), + AWSShapeMember(label: "TypeName", required: true, type: .string) ] - /// The name of the inventory type. Default inventory item type names start with AWS. Custom inventory type names will start with Custom. Default inventory item types include the following: AWS:AWSComponent, AWS:Application, AWS:InstanceInformation, AWS:Network, and AWS:WindowsUpdate. - public let typeName: String - /// The schema attributes for inventory. This contains data type and attribute name. - public let attributes: InventoryItemAttributeList /// The schema version for the inventory item. public let version: String? + /// The schema attributes for inventory. This contains data type and attribute name. + public let attributes: [InventoryItemAttribute] + /// The alias name of the inventory type. The alias name is used for display purposes. + public let displayName: String? + /// The name of the inventory type. Default inventory item type names start with AWS. Custom inventory type names will start with Custom. Default inventory item types include the following: AWS:AWSComponent, AWS:Application, AWS:InstanceInformation, AWS:Network, and AWS:WindowsUpdate. + public let typeName: String - public init(typeName: String, attributes: InventoryItemAttributeList, version: String? = nil) { - self.typeName = typeName - self.attributes = attributes + public init(version: String? = nil, attributes: [InventoryItemAttribute], displayName: String? = nil, typeName: String) { self.version = version + self.attributes = attributes + self.displayName = displayName + self.typeName = typeName } private enum CodingKeys: String, CodingKey { - case typeName = "TypeName" - case attributes = "Attributes" case version = "Version" + case attributes = "Attributes" + case displayName = "DisplayName" + case typeName = "TypeName" } } public struct UpdateAssociationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociationDescription", required: false, type: .structure) ] /// The description of the association that was updated. @@ -4156,16 +5075,16 @@ extension Ssm { } public struct DescribeInstanceInformationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "InstanceInformationList", required: false, type: .structure) + AWSShapeMember(label: "InstanceInformationList", required: false, type: .list) ] /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. public let nextToken: String? /// The instance information list. - public let instanceInformationList: InstanceInformationList? + public let instanceInformationList: [InstanceInformation]? - public init(nextToken: String? = nil, instanceInformationList: InstanceInformationList? = nil) { + public init(nextToken: String? = nil, instanceInformationList: [InstanceInformation]? = nil) { self.nextToken = nextToken self.instanceInformationList = instanceInformationList } @@ -4177,80 +5096,125 @@ extension Ssm { } public struct PatchStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ApprovalDate", required: false, type: .timestamp), - AWSShapeMember(label: "DeploymentStatus", required: false, type: .enum) + AWSShapeMember(label: "DeploymentStatus", required: false, type: .enum), + AWSShapeMember(label: "ComplianceLevel", required: false, type: .enum) ] /// The date the patch was approved (or will be approved if the status is PENDING_APPROVAL). public let approvalDate: TimeStamp? /// The approval status of a patch (APPROVED, PENDING_APPROVAL, EXPLICIT_APPROVED, EXPLICIT_REJECTED). public let deploymentStatus: PatchDeploymentStatus? + /// The compliance severity level for a patch. + public let complianceLevel: PatchComplianceLevel? - public init(approvalDate: TimeStamp? = nil, deploymentStatus: PatchDeploymentStatus? = nil) { + public init(approvalDate: TimeStamp? = nil, deploymentStatus: PatchDeploymentStatus? = nil, complianceLevel: PatchComplianceLevel? = nil) { self.approvalDate = approvalDate self.deploymentStatus = deploymentStatus + self.complianceLevel = complianceLevel } private enum CodingKeys: String, CodingKey { case approvalDate = "ApprovalDate" case deploymentStatus = "DeploymentStatus" + case complianceLevel = "ComplianceLevel" } } public struct StartAutomationExecutionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxErrors", required: false, type: .string), + AWSShapeMember(label: "ClientToken", required: false, type: .string), AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "TargetParameterName", required: false, type: .string), AWSShapeMember(label: "DocumentName", required: true, type: .string), - AWSShapeMember(label: "DocumentVersion", required: false, type: .string) + AWSShapeMember(label: "DocumentVersion", required: false, type: .string), + AWSShapeMember(label: "Mode", required: false, type: .enum), + AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "MaxConcurrency", required: false, type: .string) ] + /// The number of errors that are allowed before the system stops running the automation on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops running the automation when the fourth error is received. If you specify 0, then the system stops running the automation on additional targets after the first error result is returned. If you run an automation on 50 resources and set max-errors to 10%, then the system stops running the automation on additional targets when the sixth error is received. Executions that are already running an automation when max-errors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set max-concurrency to 1 so the executions proceed one at a time. + public let maxErrors: String? + /// User-provided idempotency token. The token must be unique, is case insensitive, enforces the UUID format, and can't be reused. + public let clientToken: String? /// A key-value map of execution parameters, which match the declared parameters in the Automation document. public let parameters: [String: [String]]? + /// The name of the parameter used as the target resource for the rate-controlled execution. Required if you specify Targets. + public let targetParameterName: String? /// The name of the Automation document to use for this execution. public let documentName: String /// The version of the Automation document to use for this execution. public let documentVersion: String? + /// The execution mode of the automation. Valid modes include the following: Auto and Interactive. The default mode is Auto. + public let mode: ExecutionMode? + /// A key-value mapping to target resources. Required if you specify TargetParameterName. + public let targets: [Target]? + /// The maximum number of targets allowed to run this task in parallel. You can specify a number, such as 10, or a percentage, such as 10%. The default value is 10. + public let maxConcurrency: String? - public init(parameters: [String: [String]]? = nil, documentName: String, documentVersion: String? = nil) { + public init(maxErrors: String? = nil, clientToken: String? = nil, parameters: [String: [String]]? = nil, targetParameterName: String? = nil, documentName: String, documentVersion: String? = nil, mode: ExecutionMode? = nil, targets: [Target]? = nil, maxConcurrency: String? = nil) { + self.maxErrors = maxErrors + self.clientToken = clientToken self.parameters = parameters + self.targetParameterName = targetParameterName self.documentName = documentName self.documentVersion = documentVersion + self.mode = mode + self.targets = targets + self.maxConcurrency = maxConcurrency } private enum CodingKeys: String, CodingKey { + case maxErrors = "MaxErrors" + case clientToken = "ClientToken" case parameters = "Parameters" + case targetParameterName = "TargetParameterName" case documentName = "DocumentName" case documentVersion = "DocumentVersion" + case mode = "Mode" + case targets = "Targets" + case maxConcurrency = "MaxConcurrency" } } public struct UpdateDocumentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Content", required: true, type: .string), + AWSShapeMember(label: "TargetType", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "DocumentFormat", required: false, type: .enum), AWSShapeMember(label: "DocumentVersion", required: false, type: .string) ] /// The content in a document that you want to update. public let content: String + /// Specify a new target type for the document. + public let targetType: String? /// The name of the document that you want to update. public let name: String + /// Specify the document format for the new document version. Systems Manager supports JSON and YAML documents. JSON is the default format. + public let documentFormat: DocumentFormat? /// The version of the document that you want to update. public let documentVersion: String? - public init(content: String, name: String, documentVersion: String? = nil) { + public init(content: String, targetType: String? = nil, name: String, documentFormat: DocumentFormat? = nil, documentVersion: String? = nil) { self.content = content + self.targetType = targetType self.name = name + self.documentFormat = documentFormat self.documentVersion = documentVersion } private enum CodingKeys: String, CodingKey { case content = "Content" + case targetType = "TargetType" case name = "Name" + case documentFormat = "DocumentFormat" case documentVersion = "DocumentVersion" } } public struct GetMaintenanceWindowExecutionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndTime", required: false, type: .timestamp), AWSShapeMember(label: "TaskIds", required: false, type: .list), AWSShapeMember(label: "StartTime", required: false, type: .timestamp), @@ -4291,7 +5255,7 @@ extension Ssm { } public struct DescribePatchGroupStateResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstancesWithMissingPatches", required: false, type: .integer), AWSShapeMember(label: "Instances", required: false, type: .integer), AWSShapeMember(label: "InstancesWithNotApplicablePatches", required: false, type: .integer), @@ -4320,83 +5284,21 @@ extension Ssm { self.instancesWithFailedPatches = instancesWithFailedPatches self.instancesWithInstalledOtherPatches = instancesWithInstalledOtherPatches } - - private enum CodingKeys: String, CodingKey { - case instancesWithMissingPatches = "InstancesWithMissingPatches" - case instances = "Instances" - case instancesWithNotApplicablePatches = "InstancesWithNotApplicablePatches" - case instancesWithInstalledPatches = "InstancesWithInstalledPatches" - case instancesWithFailedPatches = "InstancesWithFailedPatches" - case instancesWithInstalledOtherPatches = "InstancesWithInstalledOtherPatches" - } - } - - public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Value", required: true, type: .string), - AWSShapeMember(label: "Key", required: true, type: .string) - ] - /// The value of the tag. - public let value: String - /// The name of the tag. - public let key: String - - public init(value: String, key: String) { - self.value = value - self.key = key - } - - private enum CodingKeys: String, CodingKey { - case value = "Value" - case key = "Key" - } - } - - public struct RegisterTaskWithMaintenanceWindowResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "WindowTaskId", required: false, type: .string) - ] - /// The id of the task in the Maintenance Window. - public let windowTaskId: String? - - public init(windowTaskId: String? = nil) { - self.windowTaskId = windowTaskId - } - - private enum CodingKeys: String, CodingKey { - case windowTaskId = "WindowTaskId" - } - } - - public struct DescribeAssociationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "InstanceId", required: false, type: .string), - AWSShapeMember(label: "AssociationId", required: false, type: .string) - ] - /// The name of the SSM document. - public let name: String? - /// The instance ID. - public let instanceId: String? - /// The association ID for which you want information. - public let associationId: String? - - public init(name: String? = nil, instanceId: String? = nil, associationId: String? = nil) { - self.name = name - self.instanceId = instanceId - self.associationId = associationId - } - - private enum CodingKeys: String, CodingKey { - case name = "Name" - case instanceId = "InstanceId" - case associationId = "AssociationId" + + private enum CodingKeys: String, CodingKey { + case instancesWithMissingPatches = "InstancesWithMissingPatches" + case instances = "Instances" + case instancesWithNotApplicablePatches = "InstancesWithNotApplicablePatches" + case instancesWithInstalledPatches = "InstancesWithInstalledPatches" + case instancesWithFailedPatches = "InstancesWithFailedPatches" + case instancesWithInstalledOtherPatches = "InstancesWithInstalledOtherPatches" } } public struct MaintenanceWindowIdentity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "Cutoff", required: false, type: .integer), AWSShapeMember(label: "Duration", required: false, type: .integer), AWSShapeMember(label: "Name", required: false, type: .string), @@ -4404,6 +5306,8 @@ extension Ssm { ] /// The ID of the Maintenance Window. public let windowId: String? + /// A description of the Maintenance Window. + public let description: String? /// The number of hours before the end of the Maintenance Window that Systems Manager stops scheduling new tasks for execution. public let cutoff: Int32? /// The duration of the Maintenance Window in hours. @@ -4413,8 +5317,9 @@ extension Ssm { /// Whether the Maintenance Window is enabled. public let enabled: Bool? - public init(windowId: String? = nil, cutoff: Int32? = nil, duration: Int32? = nil, name: String? = nil, enabled: Bool? = nil) { + public init(windowId: String? = nil, description: String? = nil, cutoff: Int32? = nil, duration: Int32? = nil, name: String? = nil, enabled: Bool? = nil) { self.windowId = windowId + self.description = description self.cutoff = cutoff self.duration = duration self.name = name @@ -4423,6 +5328,7 @@ extension Ssm { private enum CodingKeys: String, CodingKey { case windowId = "WindowId" + case description = "Description" case cutoff = "Cutoff" case duration = "Duration" case name = "Name" @@ -4430,24 +5336,76 @@ extension Ssm { } } - public struct DeregisterManagedInstanceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InstanceId", required: true, type: .string) + public struct Tag: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Value", required: true, type: .string), + AWSShapeMember(label: "Key", required: true, type: .string) ] - /// The ID assigned to the managed instance when you registered it using the activation process. - public let instanceId: String + /// The value of the tag. + public let value: String + /// The name of the tag. + public let key: String - public init(instanceId: String) { + public init(value: String, key: String) { + self.value = value + self.key = key + } + + private enum CodingKeys: String, CodingKey { + case value = "Value" + case key = "Key" + } + } + + public struct DescribeAssociationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AssociationVersion", required: false, type: .string), + AWSShapeMember(label: "AssociationId", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "InstanceId", required: false, type: .string) + ] + /// Specify the association version to retrieve. To view the latest version, either specify $LATEST for this parameter, or omit this parameter. To view a list of all associations for an instance, use ListInstanceAssociations. To get a list of versions for a specific association, use ListAssociationVersions. + public let associationVersion: String? + /// The association ID for which you want information. + public let associationId: String? + /// The name of the Systems Manager document. + public let name: String? + /// The instance ID. + public let instanceId: String? + + public init(associationVersion: String? = nil, associationId: String? = nil, name: String? = nil, instanceId: String? = nil) { + self.associationVersion = associationVersion + self.associationId = associationId + self.name = name self.instanceId = instanceId } private enum CodingKeys: String, CodingKey { + case associationVersion = "AssociationVersion" + case associationId = "AssociationId" + case name = "Name" case instanceId = "InstanceId" } } + public struct RegisterTaskWithMaintenanceWindowResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WindowTaskId", required: false, type: .string) + ] + /// The id of the task in the Maintenance Window. + public let windowTaskId: String? + + public init(windowTaskId: String? = nil) { + self.windowTaskId = windowTaskId + } + + private enum CodingKeys: String, CodingKey { + case windowTaskId = "WindowTaskId" + } + } + public struct DocumentDefaultVersionDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "DefaultVersion", required: false, type: .string) ] @@ -4468,11 +5426,11 @@ extension Ssm { } public struct AutomationExecutionFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: true, type: .enum), AWSShapeMember(label: "Values", required: true, type: .list) ] - /// The aspect of the Automation execution information that should be limited. + /// One or more keys to limit the results. Valid filter keys include the following: DocumentNamePrefix, ExecutionStatus, ExecutionId, ParentExecutionId, CurrentAction, StartTimeBefore, StartTimeAfter. public let key: AutomationExecutionFilterKey /// The values used to limit the execution information associated with the filter's key. public let values: [String] @@ -4497,8 +5455,34 @@ extension Ssm { public var description: String { return self.rawValue } } + public enum ComplianceSeverity: String, CustomStringConvertible, Codable { + case critical = "CRITICAL" + case high = "HIGH" + case medium = "MEDIUM" + case low = "LOW" + case informational = "INFORMATIONAL" + case unspecified = "UNSPECIFIED" + public var description: String { return self.rawValue } + } + + public struct DeregisterManagedInstanceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "InstanceId", required: true, type: .string) + ] + /// The ID assigned to the managed instance when you registered it using the activation process. + public let instanceId: String + + public init(instanceId: String) { + self.instanceId = instanceId + } + + private enum CodingKeys: String, CodingKey { + case instanceId = "InstanceId" + } + } + public struct CreateActivationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamRole", required: true, type: .string), AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "RegistrationLimit", required: false, type: .integer), @@ -4534,12 +5518,12 @@ extension Ssm { } public struct AddTagsToResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "Tags", required: true, type: .list), AWSShapeMember(label: "ResourceType", required: true, type: .enum) ] - /// The resource ID you want to tag. + /// The resource ID you want to tag. For the ManagedInstance, MaintenanceWindow, and PatchBaseline values, use the ID of the resource, such as mw-01234361858c9b57b for a Maintenance Window. For the Document and Parameter values, use the name of the resource. public let resourceId: String /// One or more tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string. public let tags: [Tag] @@ -4560,73 +5544,83 @@ extension Ssm { } public struct MaintenanceWindowTask: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: false, type: .string), - AWSShapeMember(label: "TaskArn", required: false, type: .string), AWSShapeMember(label: "ServiceRoleArn", required: false, type: .string), + AWSShapeMember(label: "Priority", required: false, type: .integer), + AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "LoggingInfo", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "MaxErrors", required: false, type: .string), + AWSShapeMember(label: "TaskArn", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "TaskParameters", required: false, type: .map), AWSShapeMember(label: "WindowTaskId", required: false, type: .string), - AWSShapeMember(label: "Targets", required: false, type: .list), - AWSShapeMember(label: "Priority", required: false, type: .integer), - AWSShapeMember(label: "LoggingInfo", required: false, type: .structure), AWSShapeMember(label: "MaxConcurrency", required: false, type: .string), AWSShapeMember(label: "Type", required: false, type: .enum) ] /// The Maintenance Window ID where the task is registered. public let windowId: String? - /// The ARN of the task to execute. - public let taskArn: String? /// The role that should be assumed when executing the task public let serviceRoleArn: String? + /// The priority of the task in the Maintenance Window. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel. + public let priority: Int32? + /// The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>. + public let targets: [Target]? + /// Information about an Amazon S3 bucket to write task-level logs to. + public let loggingInfo: LoggingInfo? + /// A description of the task. + public let description: String? /// The maximum number of errors allowed before this task stops being scheduled. public let maxErrors: String? + /// The resource that the task uses during execution. For RUN_COMMAND and AUTOMATION task types, TaskArn is the Systems Manager document name or ARN. For LAMBDA tasks, it's the function name or ARN. For STEP_FUNCTION tasks, it's the state machine ARN. + public let taskArn: String? + /// The task name. + public let name: String? /// The parameters that should be passed to the task when it is executed. public let taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? /// The task ID. public let windowTaskId: String? - /// The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>. - public let targets: [Target]? - /// The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel. - public let priority: Int32? - /// Information about an Amazon S3 bucket to write task-level logs to. - public let loggingInfo: LoggingInfo? /// The maximum number of targets this task can be run for in parallel. public let maxConcurrency: String? - /// The type of task. + /// The type of task. The type can be one of the following: RUN_COMMAND, AUTOMATION, LAMBDA, or STEP_FUNCTION. public let `type`: MaintenanceWindowTaskType? - public init(windowId: String? = nil, taskArn: String? = nil, serviceRoleArn: String? = nil, maxErrors: String? = nil, taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? = nil, windowTaskId: String? = nil, targets: [Target]? = nil, priority: Int32? = nil, loggingInfo: LoggingInfo? = nil, maxConcurrency: String? = nil, type: MaintenanceWindowTaskType? = nil) { + public init(windowId: String? = nil, serviceRoleArn: String? = nil, priority: Int32? = nil, targets: [Target]? = nil, loggingInfo: LoggingInfo? = nil, description: String? = nil, maxErrors: String? = nil, taskArn: String? = nil, name: String? = nil, taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? = nil, windowTaskId: String? = nil, maxConcurrency: String? = nil, type: MaintenanceWindowTaskType? = nil) { self.windowId = windowId - self.taskArn = taskArn self.serviceRoleArn = serviceRoleArn + self.priority = priority + self.targets = targets + self.loggingInfo = loggingInfo + self.description = description self.maxErrors = maxErrors + self.taskArn = taskArn + self.name = name self.taskParameters = taskParameters self.windowTaskId = windowTaskId - self.targets = targets - self.priority = priority - self.loggingInfo = loggingInfo self.maxConcurrency = maxConcurrency self.`type` = `type` } private enum CodingKeys: String, CodingKey { case windowId = "WindowId" - case taskArn = "TaskArn" case serviceRoleArn = "ServiceRoleArn" + case priority = "Priority" + case targets = "Targets" + case loggingInfo = "LoggingInfo" + case description = "Description" case maxErrors = "MaxErrors" + case taskArn = "TaskArn" + case name = "Name" case taskParameters = "TaskParameters" case windowTaskId = "WindowTaskId" - case targets = "Targets" - case priority = "Priority" - case loggingInfo = "LoggingInfo" case maxConcurrency = "MaxConcurrency" case `type` = "Type" } } public struct DescribeMaintenanceWindowExecutionTaskInvocationsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowExecutionTaskInvocationIdentities", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -4646,23 +5640,29 @@ extension Ssm { } } - public struct DocumentParameterList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DocumentParameter", required: false, type: .list) + public struct MaintenanceWindowAutomationParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "DocumentVersion", required: false, type: .string) ] - public let documentParameter: [DocumentParameter]? + /// The parameters for the AUTOMATION task. + public let parameters: [String: [String]]? + /// The version of an Automation document to use during task execution. + public let documentVersion: String? - public init(documentParameter: [DocumentParameter]? = nil) { - self.documentParameter = documentParameter + public init(parameters: [String: [String]]? = nil, documentVersion: String? = nil) { + self.parameters = parameters + self.documentVersion = documentVersion } private enum CodingKeys: String, CodingKey { - case documentParameter = "DocumentParameter" + case parameters = "Parameters" + case documentVersion = "DocumentVersion" } } public struct DescribeInstancePatchesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Patches", required: false, type: .list) ] @@ -4687,7 +5687,7 @@ extension Ssm { } public struct PatchGroupPatchBaselineMapping: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PatchGroup", required: false, type: .string), AWSShapeMember(label: "BaselineIdentity", required: false, type: .structure) ] @@ -4708,7 +5708,7 @@ extension Ssm { } public struct CreatePatchBaselineResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: false, type: .string) ] /// The ID of the created patch baseline. @@ -4724,7 +5724,7 @@ extension Ssm { } public struct DeleteMaintenanceWindowRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: true, type: .string) ] /// The ID of the Maintenance Window to delete. @@ -4740,44 +5740,131 @@ extension Ssm { } public struct DescribePatchGroupsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? + /// One or more filters. Use a filter to return a more specific list of results. + public let filters: [PatchOrchestratorFilter]? /// The maximum number of patch groups to return (per page). public let maxResults: Int32? - public init(nextToken: String? = nil, maxResults: Int32? = nil) { + public init(nextToken: String? = nil, filters: [PatchOrchestratorFilter]? = nil, maxResults: Int32? = nil) { self.nextToken = nextToken + self.filters = filters self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { case nextToken = "NextToken" + case filters = "Filters" case maxResults = "MaxResults" } } + public struct MaintenanceWindowRunCommandParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ServiceRoleArn", required: false, type: .string), + AWSShapeMember(label: "Parameters", required: false, type: .map), + AWSShapeMember(label: "OutputS3BucketName", required: false, type: .string), + AWSShapeMember(label: "NotificationConfig", required: false, type: .structure), + AWSShapeMember(label: "Comment", required: false, type: .string), + AWSShapeMember(label: "DocumentHash", required: false, type: .string), + AWSShapeMember(label: "OutputS3KeyPrefix", required: false, type: .string), + AWSShapeMember(label: "DocumentHashType", required: false, type: .enum), + AWSShapeMember(label: "TimeoutSeconds", required: false, type: .integer) + ] + /// The IAM service role to assume during task execution. + public let serviceRoleArn: String? + /// The parameters for the RUN_COMMAND task execution. + public let parameters: [String: [String]]? + /// The name of the Amazon S3 bucket. + public let outputS3BucketName: String? + /// Configurations for sending notifications about command status changes on a per-instance basis. + public let notificationConfig: NotificationConfig? + /// Information about the command(s) to execute. + public let comment: String? + /// The SHA-256 or SHA-1 hash created by the system when the document was created. SHA-1 hashes have been deprecated. + public let documentHash: String? + /// The Amazon S3 bucket subfolder. + public let outputS3KeyPrefix: String? + /// SHA-256 or SHA-1. SHA-1 hashes have been deprecated. + public let documentHashType: DocumentHashType? + /// If this time is reached and the command has not already started executing, it doesn not execute. + public let timeoutSeconds: Int32? + + public init(serviceRoleArn: String? = nil, parameters: [String: [String]]? = nil, outputS3BucketName: String? = nil, notificationConfig: NotificationConfig? = nil, comment: String? = nil, documentHash: String? = nil, outputS3KeyPrefix: String? = nil, documentHashType: DocumentHashType? = nil, timeoutSeconds: Int32? = nil) { + self.serviceRoleArn = serviceRoleArn + self.parameters = parameters + self.outputS3BucketName = outputS3BucketName + self.notificationConfig = notificationConfig + self.comment = comment + self.documentHash = documentHash + self.outputS3KeyPrefix = outputS3KeyPrefix + self.documentHashType = documentHashType + self.timeoutSeconds = timeoutSeconds + } + + private enum CodingKeys: String, CodingKey { + case serviceRoleArn = "ServiceRoleArn" + case parameters = "Parameters" + case outputS3BucketName = "OutputS3BucketName" + case notificationConfig = "NotificationConfig" + case comment = "Comment" + case documentHash = "DocumentHash" + case outputS3KeyPrefix = "OutputS3KeyPrefix" + case documentHashType = "DocumentHashType" + case timeoutSeconds = "TimeoutSeconds" + } + } + public struct GetPatchBaselineForPatchGroupRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperatingSystem", required: false, type: .enum), AWSShapeMember(label: "PatchGroup", required: true, type: .string) ] + /// Returns he operating system rule specified for patch groups using the patch baseline. + public let operatingSystem: OperatingSystem? /// The name of the patch group whose patch baseline should be retrieved. public let patchGroup: String - public init(patchGroup: String) { + public init(operatingSystem: OperatingSystem? = nil, patchGroup: String) { + self.operatingSystem = operatingSystem self.patchGroup = patchGroup } private enum CodingKeys: String, CodingKey { + case operatingSystem = "OperatingSystem" case patchGroup = "PatchGroup" } } + public struct ListTagsForResourceRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceId", required: true, type: .string), + AWSShapeMember(label: "ResourceType", required: true, type: .enum) + ] + /// The resource ID for which you want to see a list of tags. + public let resourceId: String + /// Returns a list of tags for a specific resource type. + public let resourceType: ResourceTypeForTagging + + public init(resourceId: String, resourceType: ResourceTypeForTagging) { + self.resourceId = resourceId + self.resourceType = resourceType + } + + private enum CodingKeys: String, CodingKey { + case resourceId = "ResourceId" + case resourceType = "ResourceType" + } + } + public struct DescribeActivationsFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FilterKey", required: false, type: .enum), AWSShapeMember(label: "FilterValues", required: false, type: .list) ] @@ -4797,29 +5884,29 @@ extension Ssm { } } - public struct ListTagsForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourceId", required: true, type: .string), - AWSShapeMember(label: "ResourceType", required: true, type: .enum) + public struct CompliantSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "CompliantCount", required: false, type: .integer), + AWSShapeMember(label: "SeveritySummary", required: false, type: .structure) ] - /// The resource ID for which you want to see a list of tags. - public let resourceId: String - /// Returns a list of tags for a specific resource type. - public let resourceType: ResourceTypeForTagging + /// The total number of resources that are compliant. + public let compliantCount: Int32? + /// A summary of the compliance severity by compliance type. + public let severitySummary: SeveritySummary? - public init(resourceId: String, resourceType: ResourceTypeForTagging) { - self.resourceId = resourceId - self.resourceType = resourceType + public init(compliantCount: Int32? = nil, severitySummary: SeveritySummary? = nil) { + self.compliantCount = compliantCount + self.severitySummary = severitySummary } private enum CodingKeys: String, CodingKey { - case resourceId = "ResourceId" - case resourceType = "ResourceType" + case compliantCount = "CompliantCount" + case severitySummary = "SeveritySummary" } } public struct GetAutomationExecutionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutomationExecutionId", required: true, type: .string) ] /// The unique identifier for an existing automation execution to examine. The execution ID is returned by StartAutomationExecution when the execution of an Automation document is initiated. @@ -4835,33 +5922,38 @@ extension Ssm { } public struct Parameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), + AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Value", required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string) + AWSShapeMember(label: "Version", required: false, type: .long) ] /// The type of parameter. Valid values include the following: String, String list, Secure string. public let `type`: ParameterType? - /// The parameter value. - public let value: String? /// The name of the parameter. public let name: String? + /// The parameter value. + public let value: String? + /// The parameter version. + public let version: Int64? - public init(type: ParameterType? = nil, value: String? = nil, name: String? = nil) { + public init(type: ParameterType? = nil, name: String? = nil, value: String? = nil, version: Int64? = nil) { self.`type` = `type` - self.value = value self.name = name + self.value = value + self.version = version } private enum CodingKeys: String, CodingKey { case `type` = "Type" - case value = "Value" case name = "Name" + case value = "Value" + case version = "Version" } } public struct CreateActivationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActivationId", required: false, type: .string), AWSShapeMember(label: "ActivationCode", required: false, type: .string) ] @@ -4882,7 +5974,7 @@ extension Ssm { } public struct DescribeMaintenanceWindowExecutionTasksResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowExecutionTaskIdentities", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -4903,7 +5995,7 @@ extension Ssm { } public struct DescribeInstanceAssociationsStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) @@ -4928,35 +6020,47 @@ extension Ssm { } } - public struct PutParameterResult: AWSShape { - - } - - public struct ListDocumentVersionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DocumentVersions", required: false, type: .list), - AWSShapeMember(label: "NextToken", required: false, type: .string) + public struct ListComplianceSummariesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ComplianceSummaryItems", required: false, type: .list) ] - /// The document versions. - public let documentVersions: [DocumentVersionInfo]? - /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. + /// The token for the next set of items to return. Use this token to get the next set of results. public let nextToken: String? + /// A list of compliant and non-compliant summary counts based on compliance types. For example, this call returns State Manager associations, patches, or custom compliance types according to the filter criteria that you specified. + public let complianceSummaryItems: [ComplianceSummaryItem]? - public init(documentVersions: [DocumentVersionInfo]? = nil, nextToken: String? = nil) { - self.documentVersions = documentVersions + public init(nextToken: String? = nil, complianceSummaryItems: [ComplianceSummaryItem]? = nil) { self.nextToken = nextToken + self.complianceSummaryItems = complianceSummaryItems + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case complianceSummaryItems = "ComplianceSummaryItems" + } + } + + public struct PutParameterResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Version", required: false, type: .long) + ] + /// The new version number of a parameter. If you edit a parameter value, Parameter Store automatically creates a new version and assigns this new version a unique ID. You can reference a parameter version ID in API actions or in Systems Manager documents (SSM documents). By default, if you don't specify a specific version, the system returns the latest parameter value when a parameter is called. + public let version: Int64? + + public init(version: Int64? = nil) { + self.version = version } private enum CodingKeys: String, CodingKey { - case documentVersions = "DocumentVersions" - case nextToken = "NextToken" + case version = "Version" } } public struct ListInventoryEntriesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MaxResults", required: false, type: .integer), - AWSShapeMember(label: "Filters", required: false, type: .structure), + AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "TypeName", required: true, type: .string) @@ -4964,7 +6068,7 @@ extension Ssm { /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. public let maxResults: Int32? /// One or more filters. Use a filter to return a more specific list of results. - public let filters: InventoryFilterList? + public let filters: [InventoryFilter]? /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? /// The instance ID for which you want inventory information. @@ -4972,7 +6076,7 @@ extension Ssm { /// The type of inventory item for which you want information. public let typeName: String - public init(maxResults: Int32? = nil, filters: InventoryFilterList? = nil, nextToken: String? = nil, instanceId: String, typeName: String) { + public init(maxResults: Int32? = nil, filters: [InventoryFilter]? = nil, nextToken: String? = nil, instanceId: String, typeName: String) { self.maxResults = maxResults self.filters = filters self.nextToken = nextToken @@ -4989,6 +6093,77 @@ extension Ssm { } } + public struct MaintenanceWindowExecutionTaskInvocationIdentity: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "StartTime", required: false, type: .timestamp), + AWSShapeMember(label: "WindowExecutionId", required: false, type: .string), + AWSShapeMember(label: "Status", required: false, type: .enum), + AWSShapeMember(label: "InvocationId", required: false, type: .string), + AWSShapeMember(label: "TaskType", required: false, type: .enum), + AWSShapeMember(label: "Parameters", required: false, type: .string), + AWSShapeMember(label: "ExecutionId", required: false, type: .string), + AWSShapeMember(label: "EndTime", required: false, type: .timestamp), + AWSShapeMember(label: "WindowTargetId", required: false, type: .string), + AWSShapeMember(label: "TaskExecutionId", required: false, type: .string), + AWSShapeMember(label: "StatusDetails", required: false, type: .string), + AWSShapeMember(label: "OwnerInformation", required: false, type: .string) + ] + /// The time the invocation started. + public let startTime: TimeStamp? + /// The ID of the Maintenance Window execution that ran the task. + public let windowExecutionId: String? + /// The status of the task invocation. + public let status: MaintenanceWindowExecutionStatus? + /// The ID of the task invocation. + public let invocationId: String? + /// The task type. + public let taskType: MaintenanceWindowTaskType? + /// The parameters that were provided for the invocation when it was executed. + public let parameters: String? + /// The ID of the action performed in the service that actually handled the task invocation. If the task type is RUN_COMMAND, this value is the command ID. + public let executionId: String? + /// The time the invocation finished. + public let endTime: TimeStamp? + /// The ID of the target definition in this Maintenance Window the invocation was performed for. + public let windowTargetId: String? + /// The ID of the specific task execution in the Maintenance Window execution. + public let taskExecutionId: String? + /// The details explaining the status of the task invocation. Only available for certain Status values. + public let statusDetails: String? + /// User-provided value that was specified when the target was registered with the Maintenance Window. This was also included in any CloudWatch events raised during the task invocation. + public let ownerInformation: String? + + public init(startTime: TimeStamp? = nil, windowExecutionId: String? = nil, status: MaintenanceWindowExecutionStatus? = nil, invocationId: String? = nil, taskType: MaintenanceWindowTaskType? = nil, parameters: String? = nil, executionId: String? = nil, endTime: TimeStamp? = nil, windowTargetId: String? = nil, taskExecutionId: String? = nil, statusDetails: String? = nil, ownerInformation: String? = nil) { + self.startTime = startTime + self.windowExecutionId = windowExecutionId + self.status = status + self.invocationId = invocationId + self.taskType = taskType + self.parameters = parameters + self.executionId = executionId + self.endTime = endTime + self.windowTargetId = windowTargetId + self.taskExecutionId = taskExecutionId + self.statusDetails = statusDetails + self.ownerInformation = ownerInformation + } + + private enum CodingKeys: String, CodingKey { + case startTime = "StartTime" + case windowExecutionId = "WindowExecutionId" + case status = "Status" + case invocationId = "InvocationId" + case taskType = "TaskType" + case parameters = "Parameters" + case executionId = "ExecutionId" + case endTime = "EndTime" + case windowTargetId = "WindowTargetId" + case taskExecutionId = "TaskExecutionId" + case statusDetails = "StatusDetails" + case ownerInformation = "OwnerInformation" + } + } + public enum MaintenanceWindowExecutionStatus: String, CustomStringConvertible, Codable { case pending = "PENDING" case inProgress = "IN_PROGRESS" @@ -5002,14 +6177,16 @@ extension Ssm { } public struct UpdateAssociationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociationId", required: true, type: .string), AWSShapeMember(label: "Parameters", required: false, type: .map), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "DocumentVersion", required: false, type: .string), + AWSShapeMember(label: "AssociationVersion", required: false, type: .string), AWSShapeMember(label: "Targets", required: false, type: .list), AWSShapeMember(label: "OutputLocation", required: false, type: .structure), - AWSShapeMember(label: "ScheduleExpression", required: false, type: .string) + AWSShapeMember(label: "ScheduleExpression", required: false, type: .string), + AWSShapeMember(label: "AssociationName", required: false, type: .string) ] /// The ID of the association you want to update. public let associationId: String @@ -5019,21 +6196,27 @@ extension Ssm { public let name: String? /// The document version you want update for the association. public let documentVersion: String? + /// This parameter is provided for concurrency control purposes. You must specify the latest association version in the service. If you want to ensure that this request succeeds, either specify $LATEST, or omit this parameter. + public let associationVersion: String? /// The targets of the association. public let targets: [Target]? /// An Amazon S3 bucket where you want to store the results of this request. public let outputLocation: InstanceAssociationOutputLocation? /// The cron expression used to schedule the association that you want to update. public let scheduleExpression: String? + /// The name of the association that you want to update. + public let associationName: String? - public init(associationId: String, parameters: [String: [String]]? = nil, name: String? = nil, documentVersion: String? = nil, targets: [Target]? = nil, outputLocation: InstanceAssociationOutputLocation? = nil, scheduleExpression: String? = nil) { + public init(associationId: String, parameters: [String: [String]]? = nil, name: String? = nil, documentVersion: String? = nil, associationVersion: String? = nil, targets: [Target]? = nil, outputLocation: InstanceAssociationOutputLocation? = nil, scheduleExpression: String? = nil, associationName: String? = nil) { self.associationId = associationId self.parameters = parameters self.name = name self.documentVersion = documentVersion + self.associationVersion = associationVersion self.targets = targets self.outputLocation = outputLocation self.scheduleExpression = scheduleExpression + self.associationName = associationName } private enum CodingKeys: String, CodingKey { @@ -5041,14 +6224,16 @@ extension Ssm { case parameters = "Parameters" case name = "Name" case documentVersion = "DocumentVersion" + case associationVersion = "AssociationVersion" case targets = "Targets" case outputLocation = "OutputLocation" case scheduleExpression = "ScheduleExpression" + case associationName = "AssociationName" } } public struct GetCommandInvocationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CommandId", required: true, type: .string), AWSShapeMember(label: "PluginName", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: true, type: .string) @@ -5073,78 +6258,12 @@ extension Ssm { } } - public struct MaintenanceWindowExecutionTaskInvocationIdentity: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "StartTime", required: false, type: .timestamp), - AWSShapeMember(label: "Status", required: false, type: .enum), - AWSShapeMember(label: "WindowExecutionId", required: false, type: .string), - AWSShapeMember(label: "InvocationId", required: false, type: .string), - AWSShapeMember(label: "Parameters", required: false, type: .string), - AWSShapeMember(label: "ExecutionId", required: false, type: .string), - AWSShapeMember(label: "EndTime", required: false, type: .timestamp), - AWSShapeMember(label: "WindowTargetId", required: false, type: .string), - AWSShapeMember(label: "TaskExecutionId", required: false, type: .string), - AWSShapeMember(label: "StatusDetails", required: false, type: .string), - AWSShapeMember(label: "OwnerInformation", required: false, type: .string) - ] - /// The time the invocation started. - public let startTime: TimeStamp? - /// The status of the task invocation. - public let status: MaintenanceWindowExecutionStatus? - /// The ID of the Maintenance Window execution that ran the task. - public let windowExecutionId: String? - /// The ID of the task invocation. - public let invocationId: String? - /// The parameters that were provided for the invocation when it was executed. - public let parameters: String? - /// The ID of the action performed in the service that actually handled the task invocation. If the task type is RUN_COMMAND, this value is the command ID. - public let executionId: String? - /// The time the invocation finished. - public let endTime: TimeStamp? - /// The ID of the target definition in this Maintenance Window the invocation was performed for. - public let windowTargetId: String? - /// The ID of the specific task execution in the Maintenance Window execution. - public let taskExecutionId: String? - /// The details explaining the status of the task invocation. Only available for certain Status values. - public let statusDetails: String? - /// User-provided value that was specified when the target was registered with the Maintenance Window. This was also included in any CloudWatch events raised during the task invocation. - public let ownerInformation: String? - - public init(startTime: TimeStamp? = nil, status: MaintenanceWindowExecutionStatus? = nil, windowExecutionId: String? = nil, invocationId: String? = nil, parameters: String? = nil, executionId: String? = nil, endTime: TimeStamp? = nil, windowTargetId: String? = nil, taskExecutionId: String? = nil, statusDetails: String? = nil, ownerInformation: String? = nil) { - self.startTime = startTime - self.status = status - self.windowExecutionId = windowExecutionId - self.invocationId = invocationId - self.parameters = parameters - self.executionId = executionId - self.endTime = endTime - self.windowTargetId = windowTargetId - self.taskExecutionId = taskExecutionId - self.statusDetails = statusDetails - self.ownerInformation = ownerInformation - } - - private enum CodingKeys: String, CodingKey { - case startTime = "StartTime" - case status = "Status" - case windowExecutionId = "WindowExecutionId" - case invocationId = "InvocationId" - case parameters = "Parameters" - case executionId = "ExecutionId" - case endTime = "EndTime" - case windowTargetId = "WindowTargetId" - case taskExecutionId = "TaskExecutionId" - case statusDetails = "StatusDetails" - case ownerInformation = "OwnerInformation" - } - } - public struct DeleteAssociationResult: AWSShape { } public struct ListResourceDataSyncRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] @@ -5164,40 +6283,64 @@ extension Ssm { } } - public struct UpdateDocumentDefaultVersionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Description", required: false, type: .structure) + public struct ListResourceComplianceSummariesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// The description of a custom document that you want to set as the default version. - public let description: DocumentDefaultVersionDescription? + /// A token to start the list. Use this token to get the next set of results. + public let nextToken: String? + /// One or more filters. Use a filter to return a more specific list of results. + public let filters: [ComplianceStringFilter]? + /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + public let maxResults: Int32? - public init(description: DocumentDefaultVersionDescription? = nil) { - self.description = description + public init(nextToken: String? = nil, filters: [ComplianceStringFilter]? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.filters = filters + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case description = "Description" + case nextToken = "NextToken" + case filters = "Filters" + case maxResults = "MaxResults" } } - public enum PingStatus: String, CustomStringConvertible, Codable { - case online = "Online" - case connectionlost = "ConnectionLost" - case inactive = "Inactive" - public var description: String { return self.rawValue } + public struct ListDocumentVersionsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DocumentVersions", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) + ] + /// The document versions. + public let documentVersions: [DocumentVersionInfo]? + /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. + public let nextToken: String? + + public init(documentVersions: [DocumentVersionInfo]? = nil, nextToken: String? = nil) { + self.documentVersions = documentVersions + self.nextToken = nextToken + } + + private enum CodingKeys: String, CodingKey { + case documentVersions = "DocumentVersions" + case nextToken = "NextToken" + } } public struct CreateAssociationBatchResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Successful", required: false, type: .structure), - AWSShapeMember(label: "Failed", required: false, type: .structure) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Successful", required: false, type: .list), + AWSShapeMember(label: "Failed", required: false, type: .list) ] /// Information about the associations that succeeded. - public let successful: AssociationDescriptionList? + public let successful: [AssociationDescription]? /// Information about the associations that failed. - public let failed: FailedCreateAssociationList? + public let failed: [FailedCreateAssociation]? - public init(successful: AssociationDescriptionList? = nil, failed: FailedCreateAssociationList? = nil) { + public init(successful: [AssociationDescription]? = nil, failed: [FailedCreateAssociation]? = nil) { self.successful = successful self.failed = failed } @@ -5208,23 +6351,31 @@ extension Ssm { } } - public struct AccountIdList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountId", required: false, type: .list) + public struct UpdateDocumentDefaultVersionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Description", required: false, type: .structure) ] - public let accountId: [String]? + /// The description of a custom document that you want to set as the default version. + public let description: DocumentDefaultVersionDescription? - public init(accountId: [String]? = nil) { - self.accountId = accountId + public init(description: DocumentDefaultVersionDescription? = nil) { + self.description = description } private enum CodingKeys: String, CodingKey { - case accountId = "AccountId" + case description = "Description" } } + public enum PingStatus: String, CustomStringConvertible, Codable { + case online = "Online" + case connectionlost = "ConnectionLost" + case inactive = "Inactive" + public var description: String { return self.rawValue } + } + public struct InstancePatchState: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstalledOtherCount", required: false, type: .integer), AWSShapeMember(label: "FailedCount", required: false, type: .integer), AWSShapeMember(label: "OperationEndTime", required: true, type: .timestamp), @@ -5300,7 +6451,7 @@ extension Ssm { } public struct MaintenanceWindowExecutionTaskIdentity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "WindowExecutionId", required: false, type: .string), @@ -5350,8 +6501,22 @@ extension Ssm { } } + public enum InstancePatchStateOperatorType: String, CustomStringConvertible, Codable { + case equal = "Equal" + case notequal = "NotEqual" + case lessthan = "LessThan" + case greaterthan = "GreaterThan" + public var description: String { return self.rawValue } + } + + public enum DocumentHashType: String, CustomStringConvertible, Codable { + case sha256 = "Sha256" + case sha1 = "Sha1" + public var description: String { return self.rawValue } + } + public struct MaintenanceWindowExecution: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndTime", required: false, type: .timestamp), AWSShapeMember(label: "WindowId", required: false, type: .string), AWSShapeMember(label: "StartTime", required: false, type: .timestamp), @@ -5391,20 +6556,6 @@ extension Ssm { } } - public enum InstancePatchStateOperatorType: String, CustomStringConvertible, Codable { - case equal = "Equal" - case notequal = "NotEqual" - case lessthan = "LessThan" - case greaterthan = "GreaterThan" - public var description: String { return self.rawValue } - } - - public enum DocumentHashType: String, CustomStringConvertible, Codable { - case sha256 = "Sha256" - case sha1 = "Sha1" - public var description: String { return self.rawValue } - } - public enum ParameterType: String, CustomStringConvertible, Codable { case string = "String" case stringlist = "StringList" @@ -5412,74 +6563,39 @@ extension Ssm { public var description: String { return self.rawValue } } - public struct AssociationList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Association", required: false, type: .list) - ] - public let association: [Association]? - - public init(association: [Association]? = nil) { - self.association = association - } - - private enum CodingKeys: String, CodingKey { - case association = "Association" - } + public enum StopType: String, CustomStringConvertible, Codable { + case complete = "Complete" + case cancel = "Cancel" + public var description: String { return self.rawValue } } public struct PutInventoryResult: AWSShape { - - } - - public struct ListDocumentsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DocumentIdentifiers", required: false, type: .structure), - AWSShapeMember(label: "NextToken", required: false, type: .string) - ] - /// The names of the SSM documents. - public let documentIdentifiers: DocumentIdentifierList? - /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. - public let nextToken: String? - - public init(documentIdentifiers: DocumentIdentifierList? = nil, nextToken: String? = nil) { - self.documentIdentifiers = documentIdentifiers - self.nextToken = nextToken - } - - private enum CodingKeys: String, CodingKey { - case documentIdentifiers = "DocumentIdentifiers" - case nextToken = "NextToken" - } - } - - public struct DescribeAvailablePatchesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Filters", required: false, type: .list), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) + + } + + public struct ListDocumentsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DocumentIdentifiers", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string) ] - /// The token for the next set of items to return. (You received this token from a previous call.) + /// The names of the Systems Manager documents. + public let documentIdentifiers: [DocumentIdentifier]? + /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. public let nextToken: String? - /// Filters used to scope down the returned patches. - public let filters: [PatchOrchestratorFilter]? - /// The maximum number of patches to return (per page). - public let maxResults: Int32? - public init(nextToken: String? = nil, filters: [PatchOrchestratorFilter]? = nil, maxResults: Int32? = nil) { + public init(documentIdentifiers: [DocumentIdentifier]? = nil, nextToken: String? = nil) { + self.documentIdentifiers = documentIdentifiers self.nextToken = nextToken - self.filters = filters - self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { + case documentIdentifiers = "DocumentIdentifiers" case nextToken = "NextToken" - case filters = "Filters" - case maxResults = "MaxResults" } } public struct ListTagsForResourceResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagList", required: false, type: .list) ] /// A list of tags. @@ -5495,19 +6611,36 @@ extension Ssm { } public struct StepExecution: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Response", required: false, type: .string), + AWSShapeMember(label: "OnFailure", required: false, type: .string), + AWSShapeMember(label: "Inputs", required: false, type: .map), + AWSShapeMember(label: "ExecutionStartTime", required: false, type: .timestamp), + AWSShapeMember(label: "Outputs", required: false, type: .map), + AWSShapeMember(label: "MaxAttempts", required: false, type: .integer), AWSShapeMember(label: "ExecutionEndTime", required: false, type: .timestamp), AWSShapeMember(label: "StepName", required: false, type: .string), AWSShapeMember(label: "Action", required: false, type: .string), AWSShapeMember(label: "FailureDetails", required: false, type: .structure), - AWSShapeMember(label: "Inputs", required: false, type: .map), - AWSShapeMember(label: "ExecutionStartTime", required: false, type: .timestamp), - AWSShapeMember(label: "Outputs", required: false, type: .map), + AWSShapeMember(label: "OverriddenParameters", required: false, type: .map), AWSShapeMember(label: "ResponseCode", required: false, type: .string), + AWSShapeMember(label: "StepExecutionId", required: false, type: .string), AWSShapeMember(label: "FailureMessage", required: false, type: .string), AWSShapeMember(label: "StepStatus", required: false, type: .enum), - AWSShapeMember(label: "Response", required: false, type: .string) + AWSShapeMember(label: "TimeoutSeconds", required: false, type: .long) ] + /// A message associated with the response code for an execution. + public let response: String? + /// The action to take if the step fails. The default value is Abort. + public let onFailure: String? + /// Fully-resolved values passed into the step before execution. + public let inputs: [String: String]? + /// If a step has begun execution, this contains the time the step started. If the step is in Pending status, this field is not populated. + public let executionStartTime: TimeStamp? + /// Returned values from the execution of the step. + public let outputs: [String: [String]]? + /// The maximum number of tries to run the action of the step. The default value is 1. + public let maxAttempts: Int32? /// If a step has finished execution, this contains the time the execution ended. If the step has not yet concluded, this field is not populated. public let executionEndTime: TimeStamp? /// The name of this execution step. @@ -5516,52 +6649,81 @@ extension Ssm { public let action: String? /// Information about the Automation failure. public let failureDetails: FailureDetails? - /// Fully-resolved values passed into the step before execution. - public let inputs: [String: String]? - /// If a step has begun execution, this contains the time the step started. If the step is in Pending status, this field is not populated. - public let executionStartTime: TimeStamp? - /// Returned values from the execution of the step. - public let outputs: [String: [String]]? + /// A user-specified list of parameters to override when executing a step. + public let overriddenParameters: [String: [String]]? /// The response code returned by the execution of the step. public let responseCode: String? + /// The unique ID of a step execution. + public let stepExecutionId: String? /// If a step failed, this message explains why the execution failed. public let failureMessage: String? /// The execution status for this step. Valid values include: Pending, InProgress, Success, Cancelled, Failed, and TimedOut. public let stepStatus: AutomationExecutionStatus? - /// A message associated with the response code for an execution. - public let response: String? + /// The timeout seconds of the step. + public let timeoutSeconds: Int64? - public init(executionEndTime: TimeStamp? = nil, stepName: String? = nil, action: String? = nil, failureDetails: FailureDetails? = nil, inputs: [String: String]? = nil, executionStartTime: TimeStamp? = nil, outputs: [String: [String]]? = nil, responseCode: String? = nil, failureMessage: String? = nil, stepStatus: AutomationExecutionStatus? = nil, response: String? = nil) { + public init(response: String? = nil, onFailure: String? = nil, inputs: [String: String]? = nil, executionStartTime: TimeStamp? = nil, outputs: [String: [String]]? = nil, maxAttempts: Int32? = nil, executionEndTime: TimeStamp? = nil, stepName: String? = nil, action: String? = nil, failureDetails: FailureDetails? = nil, overriddenParameters: [String: [String]]? = nil, responseCode: String? = nil, stepExecutionId: String? = nil, failureMessage: String? = nil, stepStatus: AutomationExecutionStatus? = nil, timeoutSeconds: Int64? = nil) { + self.response = response + self.onFailure = onFailure + self.inputs = inputs + self.executionStartTime = executionStartTime + self.outputs = outputs + self.maxAttempts = maxAttempts self.executionEndTime = executionEndTime self.stepName = stepName self.action = action self.failureDetails = failureDetails - self.inputs = inputs - self.executionStartTime = executionStartTime - self.outputs = outputs + self.overriddenParameters = overriddenParameters self.responseCode = responseCode + self.stepExecutionId = stepExecutionId self.failureMessage = failureMessage self.stepStatus = stepStatus - self.response = response + self.timeoutSeconds = timeoutSeconds } private enum CodingKeys: String, CodingKey { + case response = "Response" + case onFailure = "OnFailure" + case inputs = "Inputs" + case executionStartTime = "ExecutionStartTime" + case outputs = "Outputs" + case maxAttempts = "MaxAttempts" case executionEndTime = "ExecutionEndTime" case stepName = "StepName" case action = "Action" case failureDetails = "FailureDetails" - case inputs = "Inputs" - case executionStartTime = "ExecutionStartTime" - case outputs = "Outputs" + case overriddenParameters = "OverriddenParameters" case responseCode = "ResponseCode" + case stepExecutionId = "StepExecutionId" case failureMessage = "FailureMessage" case stepStatus = "StepStatus" - case response = "Response" + case timeoutSeconds = "TimeoutSeconds" + } + } + + public struct CreateResourceDataSyncRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SyncName", required: true, type: .string), + AWSShapeMember(label: "S3Destination", required: true, type: .structure) + ] + /// A name for the configuration. + public let syncName: String + /// Amazon S3 configuration details for the sync. + public let s3Destination: ResourceDataSyncS3Destination + + public init(syncName: String, s3Destination: ResourceDataSyncS3Destination) { + self.syncName = syncName + self.s3Destination = s3Destination + } + + private enum CodingKeys: String, CodingKey { + case syncName = "SyncName" + case s3Destination = "S3Destination" } } public struct AssociationOverview: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "AssociationStatusAggregatedCount", required: false, type: .map), AWSShapeMember(label: "DetailedStatus", required: false, type: .string) @@ -5586,29 +6748,34 @@ extension Ssm { } } - public struct CreateResourceDataSyncRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SyncName", required: true, type: .string), - AWSShapeMember(label: "S3Destination", required: true, type: .structure) + public struct DescribeAvailablePatchesRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] - /// A name for the configuration. - public let syncName: String - /// Amazon S3 configuration details for the sync. - public let s3Destination: ResourceDataSyncS3Destination + /// The token for the next set of items to return. (You received this token from a previous call.) + public let nextToken: String? + /// Filters used to scope down the returned patches. + public let filters: [PatchOrchestratorFilter]? + /// The maximum number of patches to return (per page). + public let maxResults: Int32? - public init(syncName: String, s3Destination: ResourceDataSyncS3Destination) { - self.syncName = syncName - self.s3Destination = s3Destination + public init(nextToken: String? = nil, filters: [PatchOrchestratorFilter]? = nil, maxResults: Int32? = nil) { + self.nextToken = nextToken + self.filters = filters + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case syncName = "SyncName" - case s3Destination = "S3Destination" + case nextToken = "NextToken" + case filters = "Filters" + case maxResults = "MaxResults" } } public struct GetMaintenanceWindowExecutionTaskResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Priority", required: false, type: .integer), AWSShapeMember(label: "ServiceRole", required: false, type: .string), AWSShapeMember(label: "TaskExecutionId", required: false, type: .string), @@ -5684,7 +6851,7 @@ extension Ssm { } public struct CreateDocumentResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DocumentDescription", required: false, type: .structure) ] /// Information about the Systems Manager document. @@ -5700,7 +6867,7 @@ extension Ssm { } public struct DescribeMaintenanceWindowExecutionsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowExecutions", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -5721,7 +6888,7 @@ extension Ssm { } public struct ListCommandInvocationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Details", required: false, type: .boolean), AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "CommandId", required: false, type: .string), @@ -5762,16 +6929,18 @@ extension Ssm { } public struct GetPatchBaselineResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: false, type: .string), AWSShapeMember(label: "ApprovedPatches", required: false, type: .list), AWSShapeMember(label: "ModifiedDate", required: false, type: .timestamp), AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "OperatingSystem", required: false, type: .enum), AWSShapeMember(label: "RejectedPatches", required: false, type: .list), AWSShapeMember(label: "ApprovalRules", required: false, type: .structure), - AWSShapeMember(label: "GlobalFilters", required: false, type: .structure), - AWSShapeMember(label: "CreatedDate", required: false, type: .timestamp), + AWSShapeMember(label: "ApprovedPatchesComplianceLevel", required: false, type: .enum), AWSShapeMember(label: "PatchGroups", required: false, type: .list), + AWSShapeMember(label: "CreatedDate", required: false, type: .timestamp), + AWSShapeMember(label: "GlobalFilters", required: false, type: .structure), AWSShapeMember(label: "Description", required: false, type: .string) ] /// The ID of the retrieved patch baseline. @@ -5782,29 +6951,35 @@ extension Ssm { public let modifiedDate: TimeStamp? /// The name of the patch baseline. public let name: String? + /// Returns the operating system specified for the patch baseline. + public let operatingSystem: OperatingSystem? /// A list of explicitly rejected patches for the baseline. public let rejectedPatches: [String]? /// A set of rules used to include patches in the baseline. public let approvalRules: PatchRuleGroup? - /// A set of global filters used to exclude patches from the baseline. - public let globalFilters: PatchFilterGroup? - /// The date the patch baseline was created. - public let createdDate: TimeStamp? + /// Returns the specified compliance severity level for approved patches in the patch baseline. + public let approvedPatchesComplianceLevel: PatchComplianceLevel? /// Patch groups included in the patch baseline. public let patchGroups: [String]? + /// The date the patch baseline was created. + public let createdDate: TimeStamp? + /// A set of global filters used to exclude patches from the baseline. + public let globalFilters: PatchFilterGroup? /// A description of the patch baseline. public let description: String? - public init(baselineId: String? = nil, approvedPatches: [String]? = nil, modifiedDate: TimeStamp? = nil, name: String? = nil, rejectedPatches: [String]? = nil, approvalRules: PatchRuleGroup? = nil, globalFilters: PatchFilterGroup? = nil, createdDate: TimeStamp? = nil, patchGroups: [String]? = nil, description: String? = nil) { + public init(baselineId: String? = nil, approvedPatches: [String]? = nil, modifiedDate: TimeStamp? = nil, name: String? = nil, operatingSystem: OperatingSystem? = nil, rejectedPatches: [String]? = nil, approvalRules: PatchRuleGroup? = nil, approvedPatchesComplianceLevel: PatchComplianceLevel? = nil, patchGroups: [String]? = nil, createdDate: TimeStamp? = nil, globalFilters: PatchFilterGroup? = nil, description: String? = nil) { self.baselineId = baselineId self.approvedPatches = approvedPatches self.modifiedDate = modifiedDate self.name = name + self.operatingSystem = operatingSystem self.rejectedPatches = rejectedPatches self.approvalRules = approvalRules - self.globalFilters = globalFilters - self.createdDate = createdDate + self.approvedPatchesComplianceLevel = approvedPatchesComplianceLevel self.patchGroups = patchGroups + self.createdDate = createdDate + self.globalFilters = globalFilters self.description = description } @@ -5813,17 +6988,29 @@ extension Ssm { case approvedPatches = "ApprovedPatches" case modifiedDate = "ModifiedDate" case name = "Name" + case operatingSystem = "OperatingSystem" case rejectedPatches = "RejectedPatches" case approvalRules = "ApprovalRules" - case globalFilters = "GlobalFilters" - case createdDate = "CreatedDate" + case approvedPatchesComplianceLevel = "ApprovedPatchesComplianceLevel" case patchGroups = "PatchGroups" + case createdDate = "CreatedDate" + case globalFilters = "GlobalFilters" case description = "Description" } } + public enum StepExecutionFilterKey: String, CustomStringConvertible, Codable { + case starttimebefore = "StartTimeBefore" + case starttimeafter = "StartTimeAfter" + case stepexecutionstatus = "StepExecutionStatus" + case stepexecutionid = "StepExecutionId" + case stepname = "StepName" + case action = "Action" + public var description: String { return self.rawValue } + } + public struct CreateAssociationResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociationDescription", required: false, type: .structure) ] /// Information about the association. @@ -5838,56 +7025,111 @@ extension Ssm { } } - public struct DescribeMaintenanceWindowsResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "WindowIdentities", required: false, type: .list) + public struct UpdateMaintenanceWindowTaskResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WindowId", required: false, type: .string), + AWSShapeMember(label: "TaskInvocationParameters", required: false, type: .structure), + AWSShapeMember(label: "ServiceRoleArn", required: false, type: .string), + AWSShapeMember(label: "Priority", required: false, type: .integer), + AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "LoggingInfo", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "MaxErrors", required: false, type: .string), + AWSShapeMember(label: "TaskArn", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "TaskParameters", required: false, type: .map), + AWSShapeMember(label: "WindowTaskId", required: false, type: .string), + AWSShapeMember(label: "MaxConcurrency", required: false, type: .string) ] - /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. - public let nextToken: String? - /// Information about the Maintenance Windows. - public let windowIdentities: [MaintenanceWindowIdentity]? + /// The ID of the Maintenance Window that was updated. + public let windowId: String? + /// The updated parameter values. + public let taskInvocationParameters: MaintenanceWindowTaskInvocationParameters? + /// The updated service role ARN value. + public let serviceRoleArn: String? + /// The updated priority value. + public let priority: Int32? + /// The updated target values. + public let targets: [Target]? + /// The updated logging information in Amazon S3. + public let loggingInfo: LoggingInfo? + /// The updated task description. + public let description: String? + /// The updated MaxErrors value. + public let maxErrors: String? + /// The updated task ARN value. + public let taskArn: String? + /// The updated task name. + public let name: String? + /// The updated parameter values. + public let taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? + /// The task ID of the Maintenance Window that was updated. + public let windowTaskId: String? + /// The updated MaxConcurrency value. + public let maxConcurrency: String? - public init(nextToken: String? = nil, windowIdentities: [MaintenanceWindowIdentity]? = nil) { - self.nextToken = nextToken - self.windowIdentities = windowIdentities + public init(windowId: String? = nil, taskInvocationParameters: MaintenanceWindowTaskInvocationParameters? = nil, serviceRoleArn: String? = nil, priority: Int32? = nil, targets: [Target]? = nil, loggingInfo: LoggingInfo? = nil, description: String? = nil, maxErrors: String? = nil, taskArn: String? = nil, name: String? = nil, taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? = nil, windowTaskId: String? = nil, maxConcurrency: String? = nil) { + self.windowId = windowId + self.taskInvocationParameters = taskInvocationParameters + self.serviceRoleArn = serviceRoleArn + self.priority = priority + self.targets = targets + self.loggingInfo = loggingInfo + self.description = description + self.maxErrors = maxErrors + self.taskArn = taskArn + self.name = name + self.taskParameters = taskParameters + self.windowTaskId = windowTaskId + self.maxConcurrency = maxConcurrency } private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case windowIdentities = "WindowIdentities" + case windowId = "WindowId" + case taskInvocationParameters = "TaskInvocationParameters" + case serviceRoleArn = "ServiceRoleArn" + case priority = "Priority" + case targets = "Targets" + case loggingInfo = "LoggingInfo" + case description = "Description" + case maxErrors = "MaxErrors" + case taskArn = "TaskArn" + case name = "Name" + case taskParameters = "TaskParameters" + case windowTaskId = "WindowTaskId" + case maxConcurrency = "MaxConcurrency" } } - public struct DescribeAvailablePatchesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct DescribeMaintenanceWindowsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Patches", required: false, type: .list) + AWSShapeMember(label: "WindowIdentities", required: false, type: .list) ] /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. public let nextToken: String? - /// An array of patches. Each entry in the array is a patch structure. - public let patches: [Patch]? + /// Information about the Maintenance Windows. + public let windowIdentities: [MaintenanceWindowIdentity]? - public init(nextToken: String? = nil, patches: [Patch]? = nil) { + public init(nextToken: String? = nil, windowIdentities: [MaintenanceWindowIdentity]? = nil) { self.nextToken = nextToken - self.patches = patches + self.windowIdentities = windowIdentities } private enum CodingKeys: String, CodingKey { case nextToken = "NextToken" - case patches = "Patches" + case windowIdentities = "WindowIdentities" } } public struct InventoryResultEntity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: false, type: .string), AWSShapeMember(label: "Data", required: false, type: .map) ] /// ID of the inventory result entity. For example, for managed instance inventory the result will be the managed instance ID. For EC2 instance inventory, the result will be the instance ID. public let id: String? - /// The data section in the inventory result entity json. + /// The data section in the inventory result entity JSON. public let data: [String: InventoryResultItem]? public init(id: String? = nil, data: [String: InventoryResultItem]? = nil) { @@ -5902,17 +7144,21 @@ extension Ssm { } public struct UpdateMaintenanceWindowRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: true, type: .string), + AWSShapeMember(label: "Replace", required: false, type: .boolean), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "AllowUnassociatedTargets", required: false, type: .boolean), AWSShapeMember(label: "Schedule", required: false, type: .string), AWSShapeMember(label: "Cutoff", required: false, type: .integer), - AWSShapeMember(label: "Duration", required: false, type: .integer) + AWSShapeMember(label: "Duration", required: false, type: .integer), + AWSShapeMember(label: "Description", required: false, type: .string) ] /// The ID of the Maintenance Window to update. public let windowId: String + /// If True, then all fields that are required by the CreateMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null. + public let replace: Bool? /// The name of the Maintenance Window. public let name: String? /// Whether the Maintenance Window is enabled. @@ -5925,61 +7171,57 @@ extension Ssm { public let cutoff: Int32? /// The duration of the Maintenance Window in hours. public let duration: Int32? + /// An optional description for the update request. + public let description: String? - public init(windowId: String, name: String? = nil, enabled: Bool? = nil, allowUnassociatedTargets: Bool? = nil, schedule: String? = nil, cutoff: Int32? = nil, duration: Int32? = nil) { + public init(windowId: String, replace: Bool? = nil, name: String? = nil, enabled: Bool? = nil, allowUnassociatedTargets: Bool? = nil, schedule: String? = nil, cutoff: Int32? = nil, duration: Int32? = nil, description: String? = nil) { self.windowId = windowId + self.replace = replace self.name = name self.enabled = enabled self.allowUnassociatedTargets = allowUnassociatedTargets self.schedule = schedule self.cutoff = cutoff self.duration = duration + self.description = description } private enum CodingKeys: String, CodingKey { case windowId = "WindowId" + case replace = "Replace" case name = "Name" case enabled = "Enabled" case allowUnassociatedTargets = "AllowUnassociatedTargets" case schedule = "Schedule" case cutoff = "Cutoff" case duration = "Duration" + case description = "Description" } } - public struct DescribeParametersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ParameterFilters", required: false, type: .list), - AWSShapeMember(label: "Filters", required: false, type: .list), + public struct DescribeAvailablePatchesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "MaxResults", required: false, type: .integer) + AWSShapeMember(label: "Patches", required: false, type: .list) ] - /// Filters to limit the request results. - public let parameterFilters: [ParameterStringFilter]? - /// One or more filters. Use a filter to return a more specific list of results. - public let filters: [ParametersFilter]? - /// The token for the next set of items to return. (You received this token from a previous call.) + /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. public let nextToken: String? - /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. - public let maxResults: Int32? + /// An array of patches. Each entry in the array is a patch structure. + public let patches: [Patch]? - public init(parameterFilters: [ParameterStringFilter]? = nil, filters: [ParametersFilter]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { - self.parameterFilters = parameterFilters - self.filters = filters + public init(nextToken: String? = nil, patches: [Patch]? = nil) { self.nextToken = nextToken - self.maxResults = maxResults + self.patches = patches } private enum CodingKeys: String, CodingKey { - case parameterFilters = "ParameterFilters" - case filters = "Filters" case nextToken = "NextToken" - case maxResults = "MaxResults" + case patches = "Patches" } } public struct InstancePatchStateFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Key", required: true, type: .string), AWSShapeMember(label: "Values", required: true, type: .list) @@ -6005,25 +7247,29 @@ extension Ssm { } public struct GetDocumentResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Content", required: false, type: .string), AWSShapeMember(label: "DocumentType", required: false, type: .enum), AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "DocumentFormat", required: false, type: .enum), AWSShapeMember(label: "DocumentVersion", required: false, type: .string) ] - /// The contents of the SSM document. + /// The contents of the Systems Manager document. public let content: String? /// The document type. public let documentType: DocumentType? - /// The name of the SSM document. + /// The name of the Systems Manager document. public let name: String? + /// The document format, either JSON or YAML. + public let documentFormat: DocumentFormat? /// The document version. public let documentVersion: String? - public init(content: String? = nil, documentType: DocumentType? = nil, name: String? = nil, documentVersion: String? = nil) { + public init(content: String? = nil, documentType: DocumentType? = nil, name: String? = nil, documentFormat: DocumentFormat? = nil, documentVersion: String? = nil) { self.content = content self.documentType = documentType self.name = name + self.documentFormat = documentFormat self.documentVersion = documentVersion } @@ -6031,48 +7277,85 @@ extension Ssm { case content = "Content" case documentType = "DocumentType" case name = "Name" + case documentFormat = "DocumentFormat" case documentVersion = "DocumentVersion" } } public struct UpdateManagedInstanceRoleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "InstanceId", required: true, type: .string), AWSShapeMember(label: "IamRole", required: true, type: .string) ] - /// The ID of the managed instance where you want to update the role. - public let instanceId: String - /// The IAM role you want to assign or change. - public let iamRole: String + /// The ID of the managed instance where you want to update the role. + public let instanceId: String + /// The IAM role you want to assign or change. + public let iamRole: String + + public init(instanceId: String, iamRole: String) { + self.instanceId = instanceId + self.iamRole = iamRole + } + + private enum CodingKeys: String, CodingKey { + case instanceId = "InstanceId" + case iamRole = "IamRole" + } + } + + public struct DescribeParametersRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ParameterFilters", required: false, type: .list), + AWSShapeMember(label: "Filters", required: false, type: .list), + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "MaxResults", required: false, type: .integer) + ] + /// Filters to limit the request results. + public let parameterFilters: [ParameterStringFilter]? + /// One or more filters. Use a filter to return a more specific list of results. + public let filters: [ParametersFilter]? + /// The token for the next set of items to return. (You received this token from a previous call.) + public let nextToken: String? + /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + public let maxResults: Int32? - public init(instanceId: String, iamRole: String) { - self.instanceId = instanceId - self.iamRole = iamRole + public init(parameterFilters: [ParameterStringFilter]? = nil, filters: [ParametersFilter]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + self.parameterFilters = parameterFilters + self.filters = filters + self.nextToken = nextToken + self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { - case instanceId = "InstanceId" - case iamRole = "IamRole" + case parameterFilters = "ParameterFilters" + case filters = "Filters" + case nextToken = "NextToken" + case maxResults = "MaxResults" } } public struct PatchRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PatchFilterGroup", required: true, type: .structure), + AWSShapeMember(label: "ComplianceLevel", required: false, type: .enum), AWSShapeMember(label: "ApproveAfterDays", required: true, type: .integer) ] /// The patch filter group that defines the criteria for the rule. public let patchFilterGroup: PatchFilterGroup + /// A compliance severity level for all approved patches in a patch baseline. Valid compliance severity levels include the following: Unspecified, Critical, High, Medium, Low, and Informational. + public let complianceLevel: PatchComplianceLevel? /// The number of days after the release date of each patch matched by the rule the patch is marked as approved in the patch baseline. public let approveAfterDays: Int32 - public init(patchFilterGroup: PatchFilterGroup, approveAfterDays: Int32) { + public init(patchFilterGroup: PatchFilterGroup, complianceLevel: PatchComplianceLevel? = nil, approveAfterDays: Int32) { self.patchFilterGroup = patchFilterGroup + self.complianceLevel = complianceLevel self.approveAfterDays = approveAfterDays } private enum CodingKeys: String, CodingKey { case patchFilterGroup = "PatchFilterGroup" + case complianceLevel = "ComplianceLevel" case approveAfterDays = "ApproveAfterDays" } } @@ -6085,8 +7368,24 @@ extension Ssm { public var description: String { return self.rawValue } } + public struct GetAutomationExecutionResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AutomationExecution", required: false, type: .structure) + ] + /// Detailed information about the current state of an automation execution. + public let automationExecution: AutomationExecution? + + public init(automationExecution: AutomationExecution? = nil) { + self.automationExecution = automationExecution + } + + private enum CodingKeys: String, CodingKey { + case automationExecution = "AutomationExecution" + } + } + public struct DeregisterPatchBaselineForPatchGroupResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BaselineId", required: false, type: .string), AWSShapeMember(label: "PatchGroup", required: false, type: .string) ] @@ -6106,39 +7405,34 @@ extension Ssm { } } - public struct GetAutomationExecutionResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AutomationExecution", required: false, type: .structure) - ] - /// Detailed information about the current state of an automation execution. - public let automationExecution: AutomationExecution? - - public init(automationExecution: AutomationExecution? = nil) { - self.automationExecution = automationExecution - } - - private enum CodingKeys: String, CodingKey { - case automationExecution = "AutomationExecution" - } - } - - public struct AssociationDescriptionList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AssociationDescription", required: false, type: .list) + public struct ComplianceExecutionSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ExecutionTime", required: true, type: .timestamp), + AWSShapeMember(label: "ExecutionType", required: false, type: .string), + AWSShapeMember(label: "ExecutionId", required: false, type: .string) ] - public let associationDescription: [AssociationDescription]? + /// The time the execution ran as a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'. + public let executionTime: TimeStamp + /// The type of execution. For example, Command is a valid execution type. + public let executionType: String? + /// An ID created by the system when PutComplianceItems was called. For example, CommandID is a valid execution ID. You can use this ID in subsequent calls. + public let executionId: String? - public init(associationDescription: [AssociationDescription]? = nil) { - self.associationDescription = associationDescription + public init(executionTime: TimeStamp, executionType: String? = nil, executionId: String? = nil) { + self.executionTime = executionTime + self.executionType = executionType + self.executionId = executionId } private enum CodingKeys: String, CodingKey { - case associationDescription = "AssociationDescription" + case executionTime = "ExecutionTime" + case executionType = "ExecutionType" + case executionId = "ExecutionId" } } public struct DescribeEffectiveInstanceAssociationsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Associations", required: false, type: .list) ] @@ -6159,7 +7453,7 @@ extension Ssm { } public struct UpdateAssociationStatusResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AssociationDescription", required: false, type: .structure) ] /// Information about the association. @@ -6174,85 +7468,95 @@ extension Ssm { } } - public struct InstanceAssociationOutputUrl: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "S3OutputUrl", required: false, type: .structure) - ] - /// The URL of Amazon S3 bucket where you want to store the results of this request. - public let s3OutputUrl: S3OutputUrl? - - public init(s3OutputUrl: S3OutputUrl? = nil) { - self.s3OutputUrl = s3OutputUrl - } - - private enum CodingKeys: String, CodingKey { - case s3OutputUrl = "S3OutputUrl" - } - } - public struct InstanceAssociationStatusInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Status", required: false, type: .string), AWSShapeMember(label: "AssociationId", required: false, type: .string), - AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "DocumentVersion", required: false, type: .string), + AWSShapeMember(label: "AssociationVersion", required: false, type: .string), AWSShapeMember(label: "ExecutionDate", required: false, type: .timestamp), AWSShapeMember(label: "ExecutionSummary", required: false, type: .string), + AWSShapeMember(label: "AssociationName", required: false, type: .string), + AWSShapeMember(label: "DetailedStatus", required: false, type: .string), AWSShapeMember(label: "OutputUrl", required: false, type: .structure), - AWSShapeMember(label: "ErrorCode", required: false, type: .string), - AWSShapeMember(label: "DetailedStatus", required: false, type: .string) + AWSShapeMember(label: "ErrorCode", required: false, type: .string) ] /// Status information about the instance association. public let status: String? /// The association ID. public let associationId: String? - /// The instance ID where the association was created. - public let instanceId: String? /// The name of the association. public let name: String? + /// The instance ID where the association was created. + public let instanceId: String? /// The association document verions. public let documentVersion: String? + /// The version of the association applied to the instance. + public let associationVersion: String? /// The date the instance association executed. public let executionDate: TimeStamp? /// Summary information about association execution. public let executionSummary: String? + /// The name of the association applied to the instance. + public let associationName: String? + /// Detailed status information about the instance association. + public let detailedStatus: String? /// A URL for an Amazon S3 bucket where you want to store the results of this request. public let outputUrl: InstanceAssociationOutputUrl? /// An error code returned by the request to create the association. public let errorCode: String? - /// Detailed status information about the instance association. - public let detailedStatus: String? - public init(status: String? = nil, associationId: String? = nil, instanceId: String? = nil, name: String? = nil, documentVersion: String? = nil, executionDate: TimeStamp? = nil, executionSummary: String? = nil, outputUrl: InstanceAssociationOutputUrl? = nil, errorCode: String? = nil, detailedStatus: String? = nil) { + public init(status: String? = nil, associationId: String? = nil, name: String? = nil, instanceId: String? = nil, documentVersion: String? = nil, associationVersion: String? = nil, executionDate: TimeStamp? = nil, executionSummary: String? = nil, associationName: String? = nil, detailedStatus: String? = nil, outputUrl: InstanceAssociationOutputUrl? = nil, errorCode: String? = nil) { self.status = status self.associationId = associationId - self.instanceId = instanceId self.name = name + self.instanceId = instanceId self.documentVersion = documentVersion + self.associationVersion = associationVersion self.executionDate = executionDate self.executionSummary = executionSummary + self.associationName = associationName + self.detailedStatus = detailedStatus self.outputUrl = outputUrl self.errorCode = errorCode - self.detailedStatus = detailedStatus } private enum CodingKeys: String, CodingKey { case status = "Status" case associationId = "AssociationId" - case instanceId = "InstanceId" case name = "Name" + case instanceId = "InstanceId" case documentVersion = "DocumentVersion" + case associationVersion = "AssociationVersion" case executionDate = "ExecutionDate" case executionSummary = "ExecutionSummary" + case associationName = "AssociationName" + case detailedStatus = "DetailedStatus" case outputUrl = "OutputUrl" case errorCode = "ErrorCode" - case detailedStatus = "DetailedStatus" + } + } + + public struct InstanceAssociationOutputUrl: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "S3OutputUrl", required: false, type: .structure) + ] + /// The URL of Amazon S3 bucket where you want to store the results of this request. + public let s3OutputUrl: S3OutputUrl? + + public init(s3OutputUrl: S3OutputUrl? = nil) { + self.s3OutputUrl = s3OutputUrl + } + + private enum CodingKeys: String, CodingKey { + case s3OutputUrl = "S3OutputUrl" } } public struct S3OutputUrl: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OutputUrl", required: false, type: .string) ] /// A URL for an Amazon S3 bucket where you want to store the results of this request. @@ -6268,7 +7572,7 @@ extension Ssm { } public struct GetMaintenanceWindowExecutionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowExecutionId", required: true, type: .string) ] /// The ID of the Maintenance Window execution that includes the task. @@ -6283,23 +7587,29 @@ extension Ssm { } } - public struct CreateAssociationBatchRequestEntries: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "entries", required: false, type: .list) + public struct DocumentKeyValuesFilter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Key", required: false, type: .string), + AWSShapeMember(label: "Values", required: false, type: .list) ] - public let entries: [CreateAssociationBatchRequestEntry]? + /// The name of the filter key. + public let key: String? + /// The value for the filter key. + public let values: [String]? - public init(entries: [CreateAssociationBatchRequestEntry]? = nil) { - self.entries = entries + public init(key: String? = nil, values: [String]? = nil) { + self.key = key + self.values = values } private enum CodingKeys: String, CodingKey { - case entries = "entries" + case key = "Key" + case values = "Values" } } public struct PatchFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Key", required: true, type: .enum), AWSShapeMember(label: "Values", required: true, type: .list) ] @@ -6319,80 +7629,75 @@ extension Ssm { } } - public struct GetParametersResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Parameters", required: false, type: .list), - AWSShapeMember(label: "InvalidParameters", required: false, type: .list) - ] - /// A list of details for a parameter. - public let parameters: [Parameter]? - /// A list of parameters that are not formatted correctly or do not run when executed. - public let invalidParameters: [String]? - - public init(parameters: [Parameter]? = nil, invalidParameters: [String]? = nil) { - self.parameters = parameters - self.invalidParameters = invalidParameters - } - - private enum CodingKeys: String, CodingKey { - case parameters = "Parameters" - case invalidParameters = "InvalidParameters" - } - } - public struct MaintenanceWindowTarget: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: false, type: .string), + AWSShapeMember(label: "OwnerInformation", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "ResourceType", required: false, type: .enum), AWSShapeMember(label: "Targets", required: false, type: .list), AWSShapeMember(label: "WindowTargetId", required: false, type: .string), - AWSShapeMember(label: "ResourceType", required: false, type: .enum), - AWSShapeMember(label: "OwnerInformation", required: false, type: .string) + AWSShapeMember(label: "Description", required: false, type: .string) ] /// The Maintenance Window ID where the target is registered. public let windowId: String? + /// User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window. + public let ownerInformation: String? + /// The target name. + public let name: String? + /// The type of target. + public let resourceType: MaintenanceWindowResourceType? /// The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>. public let targets: [Target]? /// The ID of the target. public let windowTargetId: String? - /// The type of target. - public let resourceType: MaintenanceWindowResourceType? - /// User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window. - public let ownerInformation: String? + /// A description of the target. + public let description: String? - public init(windowId: String? = nil, targets: [Target]? = nil, windowTargetId: String? = nil, resourceType: MaintenanceWindowResourceType? = nil, ownerInformation: String? = nil) { + public init(windowId: String? = nil, ownerInformation: String? = nil, name: String? = nil, resourceType: MaintenanceWindowResourceType? = nil, targets: [Target]? = nil, windowTargetId: String? = nil, description: String? = nil) { self.windowId = windowId + self.ownerInformation = ownerInformation + self.name = name + self.resourceType = resourceType self.targets = targets self.windowTargetId = windowTargetId - self.resourceType = resourceType - self.ownerInformation = ownerInformation + self.description = description } private enum CodingKeys: String, CodingKey { case windowId = "WindowId" + case ownerInformation = "OwnerInformation" + case name = "Name" + case resourceType = "ResourceType" case targets = "Targets" case windowTargetId = "WindowTargetId" - case resourceType = "ResourceType" - case ownerInformation = "OwnerInformation" + case description = "Description" } } - public struct InventoryFilterList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "InventoryFilter", required: false, type: .list) + public struct GetParametersResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Parameters", required: false, type: .list), + AWSShapeMember(label: "InvalidParameters", required: false, type: .list) ] - public let inventoryFilter: [InventoryFilter]? + /// A list of details for a parameter. + public let parameters: [Parameter]? + /// A list of parameters that are not formatted correctly or do not run when executed. + public let invalidParameters: [String]? - public init(inventoryFilter: [InventoryFilter]? = nil) { - self.inventoryFilter = inventoryFilter + public init(parameters: [Parameter]? = nil, invalidParameters: [String]? = nil) { + self.parameters = parameters + self.invalidParameters = invalidParameters } private enum CodingKeys: String, CodingKey { - case inventoryFilter = "InventoryFilter" + case parameters = "Parameters" + case invalidParameters = "InvalidParameters" } } public struct UpdateDocumentDefaultVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "DocumentVersion", required: true, type: .string) ] @@ -6413,16 +7718,16 @@ extension Ssm { } public struct ListAssociationsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "Associations", required: false, type: .structure) + AWSShapeMember(label: "Associations", required: false, type: .list) ] /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. public let nextToken: String? /// The associations. - public let associations: AssociationList? + public let associations: [Association]? - public init(nextToken: String? = nil, associations: AssociationList? = nil) { + public init(nextToken: String? = nil, associations: [Association]? = nil) { self.nextToken = nextToken self.associations = associations } @@ -6433,24 +7738,44 @@ extension Ssm { } } - public struct DescribeInstancePatchStatesResult: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextToken", required: false, type: .string), - AWSShapeMember(label: "InstancePatchStates", required: false, type: .list) + public struct UpdateMaintenanceWindowTargetResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WindowId", required: false, type: .string), + AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "WindowTargetId", required: false, type: .string), + AWSShapeMember(label: "OwnerInformation", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "Description", required: false, type: .string) ] - /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. - public let nextToken: String? - /// The high-level patch state for the requested instances. - public let instancePatchStates: [InstancePatchState]? + /// The Maintenance Window ID specified in the update request. + public let windowId: String? + /// The updated targets. + public let targets: [Target]? + /// The target ID specified in the update request. + public let windowTargetId: String? + /// The updated owner. + public let ownerInformation: String? + /// The updated name. + public let name: String? + /// The updated description. + public let description: String? - public init(nextToken: String? = nil, instancePatchStates: [InstancePatchState]? = nil) { - self.nextToken = nextToken - self.instancePatchStates = instancePatchStates + public init(windowId: String? = nil, targets: [Target]? = nil, windowTargetId: String? = nil, ownerInformation: String? = nil, name: String? = nil, description: String? = nil) { + self.windowId = windowId + self.targets = targets + self.windowTargetId = windowTargetId + self.ownerInformation = ownerInformation + self.name = name + self.description = description } private enum CodingKeys: String, CodingKey { - case nextToken = "NextToken" - case instancePatchStates = "InstancePatchStates" + case windowId = "WindowId" + case targets = "Targets" + case windowTargetId = "WindowTargetId" + case ownerInformation = "OwnerInformation" + case name = "Name" + case description = "Description" } } @@ -6462,7 +7787,7 @@ extension Ssm { } public struct ResourceDataSyncItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SyncName", required: false, type: .string), AWSShapeMember(label: "LastSyncTime", required: false, type: .timestamp), AWSShapeMember(label: "LastSuccessfulSyncTime", required: false, type: .timestamp), @@ -6503,7 +7828,7 @@ extension Ssm { } public struct RemoveTagsFromResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "ResourceType", required: true, type: .enum), AWSShapeMember(label: "TagKeys", required: true, type: .list) @@ -6528,8 +7853,29 @@ extension Ssm { } } + public struct DescribeInstancePatchStatesResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "InstancePatchStates", required: false, type: .list) + ] + /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. + public let nextToken: String? + /// The high-level patch state for the requested instances. + public let instancePatchStates: [InstancePatchState]? + + public init(nextToken: String? = nil, instancePatchStates: [InstancePatchState]? = nil) { + self.nextToken = nextToken + self.instancePatchStates = instancePatchStates + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case instancePatchStates = "InstancePatchStates" + } + } + public struct S3OutputLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OutputS3KeyPrefix", required: false, type: .string), AWSShapeMember(label: "OutputS3BucketName", required: false, type: .string), AWSShapeMember(label: "OutputS3Region", required: false, type: .string) @@ -6555,7 +7901,7 @@ extension Ssm { } public struct GetMaintenanceWindowRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: true, type: .string) ] /// The ID of the desired Maintenance Window. @@ -6571,14 +7917,15 @@ extension Ssm { } public struct UpdateMaintenanceWindowResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Enabled", required: false, type: .boolean), AWSShapeMember(label: "AllowUnassociatedTargets", required: false, type: .boolean), AWSShapeMember(label: "Schedule", required: false, type: .string), AWSShapeMember(label: "Cutoff", required: false, type: .integer), - AWSShapeMember(label: "Duration", required: false, type: .integer) + AWSShapeMember(label: "Duration", required: false, type: .integer), + AWSShapeMember(label: "Description", required: false, type: .string) ] /// The ID of the created Maintenance Window. public let windowId: String? @@ -6594,8 +7941,10 @@ extension Ssm { public let cutoff: Int32? /// The duration of the Maintenance Window in hours. public let duration: Int32? + /// An optional description of the update. + public let description: String? - public init(windowId: String? = nil, name: String? = nil, enabled: Bool? = nil, allowUnassociatedTargets: Bool? = nil, schedule: String? = nil, cutoff: Int32? = nil, duration: Int32? = nil) { + public init(windowId: String? = nil, name: String? = nil, enabled: Bool? = nil, allowUnassociatedTargets: Bool? = nil, schedule: String? = nil, cutoff: Int32? = nil, duration: Int32? = nil, description: String? = nil) { self.windowId = windowId self.name = name self.enabled = enabled @@ -6603,6 +7952,7 @@ extension Ssm { self.schedule = schedule self.cutoff = cutoff self.duration = duration + self.description = description } private enum CodingKeys: String, CodingKey { @@ -6613,6 +7963,7 @@ extension Ssm { case schedule = "Schedule" case cutoff = "Cutoff" case duration = "Duration" + case description = "Description" } } @@ -6629,7 +7980,7 @@ extension Ssm { } public struct GetParametersByPathRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WithDecryption", required: false, type: .boolean), AWSShapeMember(label: "ParameterFilters", required: false, type: .list), AWSShapeMember(label: "Path", required: true, type: .string), @@ -6641,7 +7992,7 @@ extension Ssm { public let withDecryption: Bool? /// Filters to limit the request results. public let parameterFilters: [ParameterStringFilter]? - /// The hierarchy for the parameter. Hierarchies start with a forward slash (/) and end with the parameter name. A hierarchy can have a maximum of five levels. Examples: /Environment/Test/DBString003 /Finance/Prod/IAD/OS/WinServ2016/license15 + /// The hierarchy for the parameter. Hierarchies start with a forward slash (/) and end with the parameter name. A hierarchy can have a maximum of five levels. For example: /Finance/Prod/IAD/WinServ2016/license15 public let path: String /// Retrieve all parameters within a hierarchy. public let recursive: Bool? @@ -6664,38 +8015,30 @@ extension Ssm { case parameterFilters = "ParameterFilters" case path = "Path" case recursive = "Recursive" - case nextToken = "NextToken" - case maxResults = "MaxResults" - } - } - - public struct DeleteActivationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ActivationId", required: true, type: .string) - ] - /// The ID of the activation that you want to delete. - public let activationId: String - - public init(activationId: String) { - self.activationId = activationId + case nextToken = "NextToken" + case maxResults = "MaxResults" } + } - private enum CodingKeys: String, CodingKey { - case activationId = "ActivationId" - } + public enum OperatingSystem: String, CustomStringConvertible, Codable { + case windows = "WINDOWS" + case amazonLinux = "AMAZON_LINUX" + case ubuntu = "UBUNTU" + case redhatEnterpriseLinux = "REDHAT_ENTERPRISE_LINUX" + public var description: String { return self.rawValue } } public struct PutInventoryRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Items", required: true, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Items", required: true, type: .list), AWSShapeMember(label: "InstanceId", required: true, type: .string) ] /// The inventory items that you want to add or update on instances. - public let items: InventoryItemList + public let items: [InventoryItem] /// One or more instance IDs where you want to add or update inventory items. public let instanceId: String - public init(items: InventoryItemList, instanceId: String) { + public init(items: [InventoryItem], instanceId: String) { self.items = items self.instanceId = instanceId } @@ -6706,24 +8049,24 @@ extension Ssm { } } - public struct DescribeDocumentPermissionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "AccountIds", required: false, type: .structure) + public struct DeleteActivationRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ActivationId", required: true, type: .string) ] - /// The account IDs that have permission to use this document. The ID can be either an AWS account or All. - public let accountIds: AccountIdList? + /// The ID of the activation that you want to delete. + public let activationId: String - public init(accountIds: AccountIdList? = nil) { - self.accountIds = accountIds + public init(activationId: String) { + self.activationId = activationId } private enum CodingKeys: String, CodingKey { - case accountIds = "AccountIds" + case activationId = "ActivationId" } } public struct AssociationFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .enum), AWSShapeMember(label: "value", required: true, type: .string) ] @@ -6743,8 +8086,24 @@ extension Ssm { } } + public struct DescribeDocumentPermissionResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AccountIds", required: false, type: .list) + ] + /// The account IDs that have permission to use this document. The ID can be either an AWS account or All. + public let accountIds: [String]? + + public init(accountIds: [String]? = nil) { + self.accountIds = accountIds + } + + private enum CodingKeys: String, CodingKey { + case accountIds = "AccountIds" + } + } + public struct NotificationConfig: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NotificationArn", required: false, type: .string), AWSShapeMember(label: "NotificationType", required: false, type: .enum), AWSShapeMember(label: "NotificationEvents", required: false, type: .list) @@ -6753,7 +8112,7 @@ extension Ssm { public let notificationArn: String? /// Command: Receive notification when the status of a command changes. Invocation: For commands sent to multiple instances, receive notification on a per-instance basis when the status of a command changes. public let notificationType: NotificationType? - /// The different events for which you can receive notifications. These events include the following: All (events), InProgress, Success, TimedOut, Cancelled, Failed. To learn more about these events, see Setting Up Events and Notifications in the Amazon EC2 Systems Manager User Guide. + /// The different events for which you can receive notifications. These events include the following: All (events), InProgress, Success, TimedOut, Cancelled, Failed. To learn more about these events, see Setting Up Events and Notifications in the AWS Systems Manager User Guide. public let notificationEvents: [NotificationEvent]? public init(notificationArn: String? = nil, notificationType: NotificationType? = nil, notificationEvents: [NotificationEvent]? = nil) { @@ -6778,7 +8137,7 @@ extension Ssm { } public struct PutParameterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "KeyId", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), @@ -6787,11 +8146,11 @@ extension Ssm { AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Overwrite", required: false, type: .boolean) ] - /// Information about the parameter that you want to add to the system + /// Information about the parameter that you want to add to the system. public let description: String? /// The KMS Key ID that you want to use to encrypt a parameter when you choose the SecureString data type. If you don't specify a key ID, the system uses the default key associated with your AWS account. public let keyId: String? - /// The name of the parameter that you want to add to the system. + /// The fully qualified name of the parameter that you want to add to the system. The fully qualified name includes the complete hierarchy of the parameter path and name. For example: /Dev/DBServer/MySQL/db-string13 The maximum length constraint listed below includes capacity for additional system attributes that are not part of the name. The maximum length for the fully qualified parameter name is 1011 characters. public let name: String /// A regular expression used to validate the parameter value. For example, for String types with values restricted to numbers, you can specify the following: AllowedPattern=^\d+$ public let allowedPattern: String? @@ -6823,47 +8182,95 @@ extension Ssm { } } + public struct SeveritySummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MediumCount", required: false, type: .integer), + AWSShapeMember(label: "CriticalCount", required: false, type: .integer), + AWSShapeMember(label: "LowCount", required: false, type: .integer), + AWSShapeMember(label: "InformationalCount", required: false, type: .integer), + AWSShapeMember(label: "UnspecifiedCount", required: false, type: .integer), + AWSShapeMember(label: "HighCount", required: false, type: .integer) + ] + /// The total number of resources or compliance items that have a severity level of medium. Medium severity is determined by the organization that published the compliance items. + public let mediumCount: Int32? + /// The total number of resources or compliance items that have a severity level of critical. Critical severity is determined by the organization that published the compliance items. + public let criticalCount: Int32? + /// The total number of resources or compliance items that have a severity level of low. Low severity is determined by the organization that published the compliance items. + public let lowCount: Int32? + /// The total number of resources or compliance items that have a severity level of informational. Informational severity is determined by the organization that published the compliance items. + public let informationalCount: Int32? + /// The total number of resources or compliance items that have a severity level of unspecified. Unspecified severity is determined by the organization that published the compliance items. + public let unspecifiedCount: Int32? + /// The total number of resources or compliance items that have a severity level of high. High severity is determined by the organization that published the compliance items. + public let highCount: Int32? + + public init(mediumCount: Int32? = nil, criticalCount: Int32? = nil, lowCount: Int32? = nil, informationalCount: Int32? = nil, unspecifiedCount: Int32? = nil, highCount: Int32? = nil) { + self.mediumCount = mediumCount + self.criticalCount = criticalCount + self.lowCount = lowCount + self.informationalCount = informationalCount + self.unspecifiedCount = unspecifiedCount + self.highCount = highCount + } + + private enum CodingKeys: String, CodingKey { + case mediumCount = "MediumCount" + case criticalCount = "CriticalCount" + case lowCount = "LowCount" + case informationalCount = "InformationalCount" + case unspecifiedCount = "UnspecifiedCount" + case highCount = "HighCount" + } + } + public struct PatchBaselineIdentity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultBaseline", required: false, type: .boolean), - AWSShapeMember(label: "BaselineId", required: false, type: .string), + AWSShapeMember(label: "OperatingSystem", required: false, type: .enum), AWSShapeMember(label: "BaselineName", required: false, type: .string), - AWSShapeMember(label: "BaselineDescription", required: false, type: .string) + AWSShapeMember(label: "BaselineDescription", required: false, type: .string), + AWSShapeMember(label: "BaselineId", required: false, type: .string) ] - /// Whether this is the default baseline. + /// Whether this is the default baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. public let defaultBaseline: Bool? - /// The ID of the patch baseline. - public let baselineId: String? + /// Defines the operating system the patch baseline applies to. The Default value is WINDOWS. + public let operatingSystem: OperatingSystem? /// The name of the patch baseline. public let baselineName: String? /// The description of the patch baseline. public let baselineDescription: String? + /// The ID of the patch baseline. + public let baselineId: String? - public init(defaultBaseline: Bool? = nil, baselineId: String? = nil, baselineName: String? = nil, baselineDescription: String? = nil) { + public init(defaultBaseline: Bool? = nil, operatingSystem: OperatingSystem? = nil, baselineName: String? = nil, baselineDescription: String? = nil, baselineId: String? = nil) { self.defaultBaseline = defaultBaseline - self.baselineId = baselineId + self.operatingSystem = operatingSystem self.baselineName = baselineName self.baselineDescription = baselineDescription + self.baselineId = baselineId } private enum CodingKeys: String, CodingKey { case defaultBaseline = "DefaultBaseline" - case baselineId = "BaselineId" + case operatingSystem = "OperatingSystem" case baselineName = "BaselineName" case baselineDescription = "BaselineDescription" + case baselineId = "BaselineId" } } public struct Association: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LastExecutionDate", required: false, type: .timestamp), AWSShapeMember(label: "AssociationId", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "DocumentVersion", required: false, type: .string), AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "AssociationVersion", required: false, type: .string), AWSShapeMember(label: "Overview", required: false, type: .structure), - AWSShapeMember(label: "ScheduleExpression", required: false, type: .string) + AWSShapeMember(label: "ScheduleExpression", required: false, type: .string), + AWSShapeMember(label: "AssociationName", required: false, type: .string) ] /// The date on which the association was last run. public let lastExecutionDate: TimeStamp? @@ -6871,26 +8278,32 @@ extension Ssm { public let associationId: String? /// The ID of the instance. public let instanceId: String? - /// The name of the SSM document. + /// The name of the Systems Manager document. public let name: String? /// The version of the document used in the association. public let documentVersion: String? /// The instances targeted by the request to create an association. public let targets: [Target]? + /// The association version. + public let associationVersion: String? /// Information about the association. public let overview: AssociationOverview? /// A cron expression that specifies a schedule when the association runs. public let scheduleExpression: String? + /// The association name. + public let associationName: String? - public init(lastExecutionDate: TimeStamp? = nil, associationId: String? = nil, instanceId: String? = nil, name: String? = nil, documentVersion: String? = nil, targets: [Target]? = nil, overview: AssociationOverview? = nil, scheduleExpression: String? = nil) { + public init(lastExecutionDate: TimeStamp? = nil, associationId: String? = nil, instanceId: String? = nil, name: String? = nil, documentVersion: String? = nil, targets: [Target]? = nil, associationVersion: String? = nil, overview: AssociationOverview? = nil, scheduleExpression: String? = nil, associationName: String? = nil) { self.lastExecutionDate = lastExecutionDate self.associationId = associationId self.instanceId = instanceId self.name = name self.documentVersion = documentVersion self.targets = targets + self.associationVersion = associationVersion self.overview = overview self.scheduleExpression = scheduleExpression + self.associationName = associationName } private enum CodingKeys: String, CodingKey { @@ -6900,13 +8313,15 @@ extension Ssm { case name = "Name" case documentVersion = "DocumentVersion" case targets = "Targets" + case associationVersion = "AssociationVersion" case overview = "Overview" case scheduleExpression = "ScheduleExpression" + case associationName = "AssociationName" } } public struct Activation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IamRole", required: false, type: .string), AWSShapeMember(label: "Expired", required: false, type: .boolean), AWSShapeMember(label: "RegistrationLimit", required: false, type: .integer), @@ -6961,8 +8376,55 @@ extension Ssm { } } + public struct SendAutomationSignalRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SignalType", required: true, type: .enum), + AWSShapeMember(label: "AutomationExecutionId", required: true, type: .string), + AWSShapeMember(label: "Payload", required: false, type: .map) + ] + /// The type of signal. Valid signal types include the following: Approve and Reject + public let signalType: SignalType + /// The unique identifier for an existing Automation execution that you want to send the signal to. + public let automationExecutionId: String + /// The data sent with the signal. The data schema depends on the type of signal used in the request. + public let payload: [String: [String]]? + + public init(signalType: SignalType, automationExecutionId: String, payload: [String: [String]]? = nil) { + self.signalType = signalType + self.automationExecutionId = automationExecutionId + self.payload = payload + } + + private enum CodingKeys: String, CodingKey { + case signalType = "SignalType" + case automationExecutionId = "AutomationExecutionId" + case payload = "Payload" + } + } + + public struct StepExecutionFilter: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Key", required: true, type: .enum), + AWSShapeMember(label: "Values", required: true, type: .list) + ] + /// One or more keys to limit the results. Valid filter keys include the following: StepName, Action, StepExecutionId, StepExecutionStatus, StartTimeBefore, StartTimeAfter. + public let key: StepExecutionFilterKey + /// The values of the filter key. + public let values: [String] + + public init(key: StepExecutionFilterKey, values: [String]) { + self.key = key + self.values = values + } + + private enum CodingKeys: String, CodingKey { + case key = "Key" + case values = "Values" + } + } + public struct StartAutomationExecutionResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AutomationExecutionId", required: false, type: .string) ] /// The unique ID of a newly scheduled automation execution. @@ -6978,33 +8440,38 @@ extension Ssm { } public struct ListDocumentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "DocumentFilterList", required: false, type: .structure), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DocumentFilterList", required: false, type: .list), + AWSShapeMember(label: "Filters", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "MaxResults", required: false, type: .integer) ] /// One or more filters. Use a filter to return a more specific list of results. - public let documentFilterList: DocumentFilterList? + public let documentFilterList: [DocumentFilter]? + /// One or more filters. Use a filter to return a more specific list of results. + public let filters: [DocumentKeyValuesFilter]? /// The token for the next set of items to return. (You received this token from a previous call.) public let nextToken: String? /// The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. public let maxResults: Int32? - public init(documentFilterList: DocumentFilterList? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { + public init(documentFilterList: [DocumentFilter]? = nil, filters: [DocumentKeyValuesFilter]? = nil, nextToken: String? = nil, maxResults: Int32? = nil) { self.documentFilterList = documentFilterList + self.filters = filters self.nextToken = nextToken self.maxResults = maxResults } private enum CodingKeys: String, CodingKey { case documentFilterList = "DocumentFilterList" + case filters = "Filters" case nextToken = "NextToken" case maxResults = "MaxResults" } } public struct ListInventoryEntriesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CaptureTime", required: false, type: .string), AWSShapeMember(label: "Entries", required: false, type: .list), AWSShapeMember(label: "SchemaVersion", required: false, type: .string), @@ -7044,23 +8511,8 @@ extension Ssm { } } - public struct InventoryFilterValueList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FilterValue", required: false, type: .list) - ] - public let filterValue: [String]? - - public init(filterValue: [String]? = nil) { - self.filterValue = filterValue - } - - private enum CodingKeys: String, CodingKey { - case filterValue = "FilterValue" - } - } - public struct DeleteAssociationRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "InstanceId", required: false, type: .string), AWSShapeMember(label: "AssociationId", required: false, type: .string) @@ -7088,11 +8540,16 @@ extension Ssm { public enum AutomationExecutionFilterKey: String, CustomStringConvertible, Codable { case documentnameprefix = "DocumentNamePrefix" case executionstatus = "ExecutionStatus" + case executionid = "ExecutionId" + case parentexecutionid = "ParentExecutionId" + case currentaction = "CurrentAction" + case starttimebefore = "StartTimeBefore" + case starttimeafter = "StartTimeAfter" public var description: String { return self.rawValue } } public struct EffectivePatch: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Patch", required: false, type: .structure), AWSShapeMember(label: "PatchStatus", required: false, type: .structure) ] @@ -7113,7 +8570,7 @@ extension Ssm { } public struct DocumentParameter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "DefaultValue", required: false, type: .string), @@ -7144,7 +8601,7 @@ extension Ssm { } public struct DeleteParametersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Names", required: true, type: .list) ] /// The names of the parameters to delete. @@ -7159,65 +8616,237 @@ extension Ssm { } } - public struct InventoryItemAttributeList: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Attribute", required: false, type: .list) + public enum PatchComplianceLevel: String, CustomStringConvertible, Codable { + case critical = "CRITICAL" + case high = "HIGH" + case medium = "MEDIUM" + case low = "LOW" + case informational = "INFORMATIONAL" + case unspecified = "UNSPECIFIED" + public var description: String { return self.rawValue } + } + + public struct MaintenanceWindowLambdaParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Qualifier", required: false, type: .string), + AWSShapeMember(label: "ClientContext", required: false, type: .string), + AWSShapeMember(label: "Payload", required: false, type: .blob) ] - public let attribute: [InventoryItemAttribute]? + /// (Optional) Specify a Lambda function version or alias name. If you specify a function version, the action uses the qualified function ARN to invoke a specific Lambda function. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version to which the alias points. + public let qualifier: String? + /// Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable. + public let clientContext: String? + /// JSON to provide to your Lambda function as input. + public let payload: Data? - public init(attribute: [InventoryItemAttribute]? = nil) { - self.attribute = attribute + public init(qualifier: String? = nil, clientContext: String? = nil, payload: Data? = nil) { + self.qualifier = qualifier + self.clientContext = clientContext + self.payload = payload } private enum CodingKeys: String, CodingKey { - case attribute = "Attribute" + case qualifier = "Qualifier" + case clientContext = "ClientContext" + case payload = "Payload" } } - public enum NotificationEvent: String, CustomStringConvertible, Codable { - case all = "All" - case inprogress = "InProgress" - case success = "Success" - case timedout = "TimedOut" - case cancelled = "Cancelled" - case failed = "Failed" - public var description: String { return self.rawValue } + public struct UpdateMaintenanceWindowTaskRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WindowId", required: true, type: .string), + AWSShapeMember(label: "Replace", required: false, type: .boolean), + AWSShapeMember(label: "ServiceRoleArn", required: false, type: .string), + AWSShapeMember(label: "TaskInvocationParameters", required: false, type: .structure), + AWSShapeMember(label: "Priority", required: false, type: .integer), + AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "LoggingInfo", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "MaxErrors", required: false, type: .string), + AWSShapeMember(label: "TaskArn", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "TaskParameters", required: false, type: .map), + AWSShapeMember(label: "WindowTaskId", required: true, type: .string), + AWSShapeMember(label: "MaxConcurrency", required: false, type: .string) + ] + /// The Maintenance Window ID that contains the task to modify. + public let windowId: String + /// If True, then all fields that are required by the RegisterTaskWithMaintenanceWndow action are also required for this API request. Optional fields that are not specified are set to null. + public let replace: Bool? + /// The IAM service role ARN to modify. The system assumes this role during task execution. + public let serviceRoleArn: String? + /// The parameters that the task should use during execution. Populate only the fields that match the task type. All other fields should be empty. + public let taskInvocationParameters: MaintenanceWindowTaskInvocationParameters? + /// The new task priority to specify. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel. + public let priority: Int32? + /// The targets (either instances or tags) to modify. Instances are specified using Key=instanceids,Values=instanceID_1,instanceID_2. Tags are specified using Key=tag_name,Values=tag_value. + public let targets: [Target]? + /// The new logging location in Amazon S3 to specify. + public let loggingInfo: LoggingInfo? + /// The new task description to specify. + public let description: String? + /// The new MaxErrors value to specify. MaxErrors is the maximum number of errors that are allowed before the task stops being scheduled. + public let maxErrors: String? + /// The task ARN to modify. + public let taskArn: String? + /// The new task name to specify. + public let name: String? + /// The parameters to modify. The map has the following format: Key: string, between 1 and 255 characters Value: an array of strings, each string is between 1 and 255 characters + public let taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? + /// The task ID to modify. + public let windowTaskId: String + /// The new MaxConcurrency value you want to specify. MaxConcurrency is the number of targets that are allowed to run this task in parallel. + public let maxConcurrency: String? + + public init(windowId: String, replace: Bool? = nil, serviceRoleArn: String? = nil, taskInvocationParameters: MaintenanceWindowTaskInvocationParameters? = nil, priority: Int32? = nil, targets: [Target]? = nil, loggingInfo: LoggingInfo? = nil, description: String? = nil, maxErrors: String? = nil, taskArn: String? = nil, name: String? = nil, taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? = nil, windowTaskId: String, maxConcurrency: String? = nil) { + self.windowId = windowId + self.replace = replace + self.serviceRoleArn = serviceRoleArn + self.taskInvocationParameters = taskInvocationParameters + self.priority = priority + self.targets = targets + self.loggingInfo = loggingInfo + self.description = description + self.maxErrors = maxErrors + self.taskArn = taskArn + self.name = name + self.taskParameters = taskParameters + self.windowTaskId = windowTaskId + self.maxConcurrency = maxConcurrency + } + + private enum CodingKeys: String, CodingKey { + case windowId = "WindowId" + case replace = "Replace" + case serviceRoleArn = "ServiceRoleArn" + case taskInvocationParameters = "TaskInvocationParameters" + case priority = "Priority" + case targets = "Targets" + case loggingInfo = "LoggingInfo" + case description = "Description" + case maxErrors = "MaxErrors" + case taskArn = "TaskArn" + case name = "Name" + case taskParameters = "TaskParameters" + case windowTaskId = "WindowTaskId" + case maxConcurrency = "MaxConcurrency" + } } - public struct DeleteParameterRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: true, type: .string) + public struct GetMaintenanceWindowTaskResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "WindowId", required: false, type: .string), + AWSShapeMember(label: "TaskInvocationParameters", required: false, type: .structure), + AWSShapeMember(label: "ServiceRoleArn", required: false, type: .string), + AWSShapeMember(label: "Priority", required: false, type: .integer), + AWSShapeMember(label: "Targets", required: false, type: .list), + AWSShapeMember(label: "LoggingInfo", required: false, type: .structure), + AWSShapeMember(label: "Description", required: false, type: .string), + AWSShapeMember(label: "MaxErrors", required: false, type: .string), + AWSShapeMember(label: "TaskArn", required: false, type: .string), + AWSShapeMember(label: "TaskType", required: false, type: .enum), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "TaskParameters", required: false, type: .map), + AWSShapeMember(label: "WindowTaskId", required: false, type: .string), + AWSShapeMember(label: "MaxConcurrency", required: false, type: .string) ] - /// The name of the parameter to delete. - public let name: String + /// The retrieved Maintenance Window ID. + public let windowId: String? + /// The parameters to pass to the task when it executes. + public let taskInvocationParameters: MaintenanceWindowTaskInvocationParameters? + /// The IAM service role to assume during task execution. + public let serviceRoleArn: String? + /// The priority of the task when it executes. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel. + public let priority: Int32? + /// The targets where the task should execute. + public let targets: [Target]? + /// The location in Amazon S3 where the task results are logged. + public let loggingInfo: LoggingInfo? + /// The retrieved task description. + public let description: String? + /// The maximum number of errors allowed before the task stops being scheduled. + public let maxErrors: String? + /// The resource that the task used during execution. For RUN_COMMAND and AUTOMATION task types, the TaskArn is the Systems Manager Document name/ARN. For LAMBDA tasks, the value is the function name/ARN. For STEP_FUNCTION tasks, the value is the state machine ARN. + public let taskArn: String? + /// The type of task to execute. + public let taskType: MaintenanceWindowTaskType? + /// The retrieved task name. + public let name: String? + /// The parameters to pass to the task when it executes. + public let taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? + /// The retrieved Maintenance Window task ID. + public let windowTaskId: String? + /// The maximum number of targets allowed to run this task in parallel. + public let maxConcurrency: String? - public init(name: String) { + public init(windowId: String? = nil, taskInvocationParameters: MaintenanceWindowTaskInvocationParameters? = nil, serviceRoleArn: String? = nil, priority: Int32? = nil, targets: [Target]? = nil, loggingInfo: LoggingInfo? = nil, description: String? = nil, maxErrors: String? = nil, taskArn: String? = nil, taskType: MaintenanceWindowTaskType? = nil, name: String? = nil, taskParameters: [String: MaintenanceWindowTaskParameterValueExpression]? = nil, windowTaskId: String? = nil, maxConcurrency: String? = nil) { + self.windowId = windowId + self.taskInvocationParameters = taskInvocationParameters + self.serviceRoleArn = serviceRoleArn + self.priority = priority + self.targets = targets + self.loggingInfo = loggingInfo + self.description = description + self.maxErrors = maxErrors + self.taskArn = taskArn + self.taskType = taskType self.name = name + self.taskParameters = taskParameters + self.windowTaskId = windowTaskId + self.maxConcurrency = maxConcurrency } private enum CodingKeys: String, CodingKey { + case windowId = "WindowId" + case taskInvocationParameters = "TaskInvocationParameters" + case serviceRoleArn = "ServiceRoleArn" + case priority = "Priority" + case targets = "Targets" + case loggingInfo = "LoggingInfo" + case description = "Description" + case maxErrors = "MaxErrors" + case taskArn = "TaskArn" + case taskType = "TaskType" case name = "Name" + case taskParameters = "TaskParameters" + case windowTaskId = "WindowTaskId" + case maxConcurrency = "MaxConcurrency" } } + public enum NotificationEvent: String, CustomStringConvertible, Codable { + case all = "All" + case inprogress = "InProgress" + case success = "Success" + case timedout = "TimedOut" + case cancelled = "Cancelled" + case failed = "Failed" + public var description: String { return self.rawValue } + } + public struct StopAutomationExecutionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "AutomationExecutionId", required: true, type: .string) ] + /// The stop request type. Valid types include the following: Cancel and Complete. The default type is Cancel. + public let `type`: StopType? /// The execution ID of the Automation to stop. public let automationExecutionId: String - public init(automationExecutionId: String) { + public init(type: StopType? = nil, automationExecutionId: String) { + self.`type` = `type` self.automationExecutionId = automationExecutionId } private enum CodingKeys: String, CodingKey { + case `type` = "Type" case automationExecutionId = "AutomationExecutionId" } } public struct ParameterStringFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Option", required: false, type: .string), AWSShapeMember(label: "Key", required: true, type: .string), AWSShapeMember(label: "Values", required: false, type: .list) @@ -7242,24 +8871,76 @@ extension Ssm { } } + public struct DeleteParameterRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The name of the parameter to delete. + public let name: String + + public init(name: String) { + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + } + } + + public struct MaintenanceWindowTaskInvocationParameters: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Automation", required: false, type: .structure), + AWSShapeMember(label: "RunCommand", required: false, type: .structure), + AWSShapeMember(label: "Lambda", required: false, type: .structure), + AWSShapeMember(label: "StepFunctions", required: false, type: .structure) + ] + /// The parameters for a AUTOMATION task type. + public let automation: MaintenanceWindowAutomationParameters? + /// The parameters for a RUN_COMMAND task type. + public let runCommand: MaintenanceWindowRunCommandParameters? + /// The parameters for a LAMBDA task type. + public let lambda: MaintenanceWindowLambdaParameters? + /// The parameters for a STEP_FUNCTION task type. + public let stepFunctions: MaintenanceWindowStepFunctionsParameters? + + public init(automation: MaintenanceWindowAutomationParameters? = nil, runCommand: MaintenanceWindowRunCommandParameters? = nil, lambda: MaintenanceWindowLambdaParameters? = nil, stepFunctions: MaintenanceWindowStepFunctionsParameters? = nil) { + self.automation = automation + self.runCommand = runCommand + self.lambda = lambda + self.stepFunctions = stepFunctions + } + + private enum CodingKeys: String, CodingKey { + case automation = "Automation" + case runCommand = "RunCommand" + case lambda = "Lambda" + case stepFunctions = "StepFunctions" + } + } + public struct GetDefaultPatchBaselineResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "OperatingSystem", required: false, type: .enum), AWSShapeMember(label: "BaselineId", required: false, type: .string) ] + /// The operating system for the returned patch baseline. + public let operatingSystem: OperatingSystem? /// The ID of the default patch baseline. public let baselineId: String? - public init(baselineId: String? = nil) { + public init(operatingSystem: OperatingSystem? = nil, baselineId: String? = nil) { + self.operatingSystem = operatingSystem self.baselineId = baselineId } private enum CodingKeys: String, CodingKey { + case operatingSystem = "OperatingSystem" case baselineId = "BaselineId" } } public struct DocumentFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "key", required: true, type: .enum), AWSShapeMember(label: "value", required: true, type: .string) ] @@ -7286,8 +8967,29 @@ extension Ssm { public var description: String { return self.rawValue } } + public struct ListComplianceItemsResult: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextToken", required: false, type: .string), + AWSShapeMember(label: "ComplianceItems", required: false, type: .list) + ] + /// The token for the next set of items to return. Use this token to get the next set of results. + public let nextToken: String? + /// A list of compliance information for the specified resource ID. + public let complianceItems: [ComplianceItem]? + + public init(nextToken: String? = nil, complianceItems: [ComplianceItem]? = nil) { + self.nextToken = nextToken + self.complianceItems = complianceItems + } + + private enum CodingKeys: String, CodingKey { + case nextToken = "NextToken" + case complianceItems = "ComplianceItems" + } + } + public struct InstanceAssociationOutputLocation: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "S3Location", required: false, type: .structure) ] /// An Amazon S3 bucket where you want to store the results of this request. @@ -7309,7 +9011,7 @@ extension Ssm { } public struct RegisterTargetWithMaintenanceWindowResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowTargetId", required: false, type: .string) ] /// The ID of the target definition in this Maintenance Window. @@ -7325,7 +9027,7 @@ extension Ssm { } public struct CreateMaintenanceWindowResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WindowId", required: false, type: .string) ] /// The ID of the created Maintenance Window. @@ -7341,12 +9043,15 @@ extension Ssm { } public struct DocumentVersionInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "DocumentFormat", required: false, type: .enum), AWSShapeMember(label: "CreatedDate", required: false, type: .timestamp), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "IsDefaultVersion", required: false, type: .boolean), AWSShapeMember(label: "DocumentVersion", required: false, type: .string) ] + /// The document format, either JSON or YAML. + public let documentFormat: DocumentFormat? /// The date the document was created. public let createdDate: TimeStamp? /// The document name. @@ -7356,7 +9061,8 @@ extension Ssm { /// The document version. public let documentVersion: String? - public init(createdDate: TimeStamp? = nil, name: String? = nil, isDefaultVersion: Bool? = nil, documentVersion: String? = nil) { + public init(documentFormat: DocumentFormat? = nil, createdDate: TimeStamp? = nil, name: String? = nil, isDefaultVersion: Bool? = nil, documentVersion: String? = nil) { + self.documentFormat = documentFormat self.createdDate = createdDate self.name = name self.isDefaultVersion = isDefaultVersion @@ -7364,6 +9070,7 @@ extension Ssm { } private enum CodingKeys: String, CodingKey { + case documentFormat = "DocumentFormat" case createdDate = "CreatedDate" case name = "Name" case isDefaultVersion = "IsDefaultVersion" diff --git a/Sources/AWSSDKSwift/Services/states/States_API.swift b/Sources/AWSSDKSwift/Services/states/States_API.swift index 0e88e72736d..da07175ca9f 100644 --- a/Sources/AWSSDKSwift/Services/states/States_API.swift +++ b/Sources/AWSSDKSwift/Services/states/States_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -AWS Step Functions AWS Step Functions is a web service that enables you to coordinate the components of distributed applications and microservices using visual workflows. You build applications from individual components that each perform a discrete function, or task, allowing you to scale and change applications quickly. Step Functions provides a graphical console to visualize the components of your application as a series of steps. It automatically triggers and tracks each step, and retries when there are errors, so your application executes in order and as expected, every time. Step Functions logs the state of each step, so when things do go wrong, you can diagnose and debug problems quickly. Step Functions manages the operations and underlying infrastructure for you to ensure your application is available at any scale. You can run tasks on the AWS cloud, on your own servers, or an any system that has access to AWS. Step Functions can be accessed and used with the Step Functions console, the AWS SDKs (included with your Beta release invitation email), or an HTTP API (the subject of this document). +AWS Step Functions AWS Step Functions is a service that lets you coordinate the components of distributed applications and microservices using visual workflows. You can use Step Functions to build applications from individual components, each of which performs a discrete function, or task, allowing you to scale and change applications quickly. Step Functions provides a console that helps visualize the components of your application as a series of steps. Step Functions automatically triggers and tracks each step, and retries steps when there are errors, so your application executes predictably and in the right order every time. Step Functions logs the state of each step, so you can quickly diagnose and debug any issues. Step Functions manages operations and underlying infrastructure to ensure your application is available at any scale. You can run tasks on AWS, your own servers, or any system that has access to AWS. You can access and use Step Functions using the console, the AWS SDKs, or an HTTP API. For more information about Step Functions, see the AWS Step Functions Developer Guide . */ public struct States { @@ -25,7 +25,7 @@ public struct States { ) } - /// Used by workers to retrieve a task (with the specified activity ARN) scheduled for execution by a running state machine. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available (i.e. an execution of a task of this type is needed.) The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll will return an empty result, that is, the taskToken returned is an empty string. Workers should set their client side socket timeout to at least 65 seconds (5 seconds higher than the maximum time the service may hold the poll request). + /// Used by workers to retrieve a task (with the specified activity ARN) which has been scheduled for execution by a running state machine. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available (i.e. an execution of a task of this type is needed.) The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll returns a taskToken with a null string. Workers should set their client side socket timeout to at least 65 seconds (5 seconds higher than the maximum time the service may hold the poll request). public func getActivityTask(_ input: GetActivityTaskInput) throws -> GetActivityTaskOutput { return try client.send(operation: "GetActivityTask", path: "/", httpMethod: "POST", input: input) } @@ -35,7 +35,7 @@ public struct States { return try client.send(operation: "SendTaskSuccess", path: "/", httpMethod: "POST", input: input) } - /// Returns the history of the specified execution as a list of events. By default, the results are returned in ascending order of the timeStamp of the events. Use the reverseOrder parameter to get the latest events first. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextToken returned by the previous call. + /// Returns the history of the specified execution as a list of events. By default, the results are returned in ascending order of the timeStamp of the events. Use the reverseOrder parameter to get the latest events first. If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. public func getExecutionHistory(_ input: GetExecutionHistoryInput) throws -> GetExecutionHistoryOutput { return try client.send(operation: "GetExecutionHistory", path: "/", httpMethod: "POST", input: input) } @@ -55,7 +55,7 @@ public struct States { return try client.send(operation: "DescribeActivity", path: "/", httpMethod: "POST", input: input) } - /// Lists the existing activities. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextToken returned by the previous call. + /// Lists the existing activities. If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. public func listActivities(_ input: ListActivitiesInput) throws -> ListActivitiesOutput { return try client.send(operation: "ListActivities", path: "/", httpMethod: "POST", input: input) } @@ -65,7 +65,7 @@ public struct States { return try client.send(operation: "DescribeExecution", path: "/", httpMethod: "POST", input: input) } - /// Lists the existing state machines. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextToken returned by the previous call. + /// Lists the existing state machines. If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. public func listStateMachines(_ input: ListStateMachinesInput) throws -> ListStateMachinesOutput { return try client.send(operation: "ListStateMachines", path: "/", httpMethod: "POST", input: input) } @@ -75,32 +75,42 @@ public struct States { return try client.send(operation: "DescribeStateMachine", path: "/", httpMethod: "POST", input: input) } - /// Creates an activity. + /// Creates an activity. An activity is a task which you write in any programming language and host on any machine which has access to AWS Step Functions. Activities must poll Step Functions using the GetActivityTask API action and respond using SendTask* API actions. This function lets Step Functions know the existence of your activity and returns an identifier for use in a state machine and when polling from the activity. public func createActivity(_ input: CreateActivityInput) throws -> CreateActivityOutput { return try client.send(operation: "CreateActivity", path: "/", httpMethod: "POST", input: input) } - /// Creates a state machine. + /// Describes the state machine associated with a specific execution. + public func describeStateMachineForExecution(_ input: DescribeStateMachineForExecutionInput) throws -> DescribeStateMachineForExecutionOutput { + return try client.send(operation: "DescribeStateMachineForExecution", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a state machine. A state machine consists of a collection of states that can do work (Task states), determine to which states to transition next (Choice states), stop an execution with an error (Fail states), and so on. State machines are specified using a JSON-based, structured language. public func createStateMachine(_ input: CreateStateMachineInput) throws -> CreateStateMachineOutput { return try client.send(operation: "CreateStateMachine", path: "/", httpMethod: "POST", input: input) } - /// Deletes a state machine. This is an asynchronous operation-- it sets the state machine's status to "DELETING" and begins the delete process. + /// Deletes a state machine. This is an asynchronous operation: It sets the state machine's status to DELETING and begins the deletion process. Each state machine execution is deleted the next time it makes a state transition. The state machine itself is deleted after all executions are completed or deleted. public func deleteStateMachine(_ input: DeleteStateMachineInput) throws -> DeleteStateMachineOutput { return try client.send(operation: "DeleteStateMachine", path: "/", httpMethod: "POST", input: input) } + /// Updates an existing state machine by modifying its definition and/or roleArn. Running executions will continue to use the previous definition and roleArn. All StartExecution calls within a few seconds will use the updated definition and roleArn. Executions started immediately after calling UpdateStateMachine may use the previous state machine definition and roleArn. You must include at least one of definition or roleArn or you will receive a MissingRequiredParameter error. + public func updateStateMachine(_ input: UpdateStateMachineInput) throws -> UpdateStateMachineOutput { + return try client.send(operation: "UpdateStateMachine", path: "/", httpMethod: "POST", input: input) + } + /// Stops an execution. public func stopExecution(_ input: StopExecutionInput) throws -> StopExecutionOutput { return try client.send(operation: "StopExecution", path: "/", httpMethod: "POST", input: input) } - /// Lists the executions of a state machine that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextToken returned by the previous call. + /// Lists the executions of a state machine that meet the filtering criteria. If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. public func listExecutions(_ input: ListExecutionsInput) throws -> ListExecutionsOutput { return try client.send(operation: "ListExecutions", path: "/", httpMethod: "POST", input: input) } - /// Used by workers to report to the service that the task represented by the specified taskToken is still making progress. This action resets the Heartbeat clock. The Heartbeat threshold is specified in the state machine's Amazon States Language definition. This action does not in itself create an event in the execution history. However, if the task times out, the execution history will contain an ActivityTimedOut event. The Timeout of a task, defined in the state machine's Amazon States Language definition, is its maximum allowed duration, regardless of the number of SendTaskHeartbeat requests received. This operation is only useful for long-lived tasks to report the liveliness of the task. + /// Used by workers to report to the service that the task represented by the specified taskToken is still making progress. This action resets the Heartbeat clock. The Heartbeat threshold is specified in the state machine's Amazon States Language definition. This action does not in itself create an event in the execution history. However, if the task times out, the execution history contains an ActivityTimedOut event. The Timeout of a task, defined in the state machine's Amazon States Language definition, is its maximum allowed duration, regardless of the number of SendTaskHeartbeat requests received. This operation is only useful for long-lived tasks to report the liveliness of the task. public func sendTaskHeartbeat(_ input: SendTaskHeartbeatInput) throws -> SendTaskHeartbeatOutput { return try client.send(operation: "SendTaskHeartbeat", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/states/States_Error.swift b/Sources/AWSSDKSwift/Services/states/States_Error.swift index 39f47124ee1..6eb17333cb2 100644 --- a/Sources/AWSSDKSwift/Services/states/States_Error.swift +++ b/Sources/AWSSDKSwift/Services/states/States_Error.swift @@ -22,6 +22,7 @@ public enum StatesError: AWSErrorType { case invalidDefinition(message: String?) case stateMachineAlreadyExists(message: String?) case stateMachineLimitExceeded(message: String?) + case missingRequiredParameter(message: String?) } extension StatesError { @@ -67,6 +68,8 @@ extension StatesError { self = .stateMachineAlreadyExists(message: message) case "StateMachineLimitExceeded": self = .stateMachineLimitExceeded(message: message) + case "MissingRequiredParameter": + self = .missingRequiredParameter(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/states/States_Shapes.swift b/Sources/AWSSDKSwift/Services/states/States_Shapes.swift index a223d57a5c9..9a1a8796feb 100644 --- a/Sources/AWSSDKSwift/Services/states/States_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/states/States_Shapes.swift @@ -6,13 +6,13 @@ import AWSSDKSwiftCore extension States { public struct StateEnteredEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "input", required: false, type: .string) ] /// The name of the state. public let name: String - /// The JSON input data to the state. + /// The string that contains the JSON input data for the state. public let input: String? public init(name: String, input: String? = nil) { @@ -31,10 +31,10 @@ extension States { } public struct StopExecutionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "stopDate", required: true, type: .timestamp) ] - /// The date the execution was stopped. + /// The date the execution is stopped. public let stopDate: TimeStamp public init(stopDate: TimeStamp) { @@ -47,13 +47,13 @@ extension States { } public struct CreateActivityOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "activityArn", required: true, type: .string), AWSShapeMember(label: "creationDate", required: true, type: .timestamp) ] /// The Amazon Resource Name (ARN) that identifies the created activity. public let activityArn: String - /// The date the activity was created. + /// The date the activity is created. public let creationDate: TimeStamp public init(activityArn: String, creationDate: TimeStamp) { @@ -67,14 +67,50 @@ extension States { } } + public struct DescribeStateMachineForExecutionOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "name", required: true, type: .string), + AWSShapeMember(label: "definition", required: true, type: .string), + AWSShapeMember(label: "stateMachineArn", required: true, type: .string), + AWSShapeMember(label: "roleArn", required: true, type: .string), + AWSShapeMember(label: "updateDate", required: true, type: .timestamp) + ] + /// The name of the state machine associated with the execution. + public let name: String + /// The Amazon States Language definition of the state machine. + public let definition: String + /// The Amazon Resource Name (ARN) of the state machine associated with the execution. + public let stateMachineArn: String + /// The Amazon Resource Name (ARN) of the IAM role of the State Machine for the execution. + public let roleArn: String + /// The date and time the state machine associated with an execution was updated. For a newly created state machine, this is the creation date. + public let updateDate: TimeStamp + + public init(name: String, definition: String, stateMachineArn: String, roleArn: String, updateDate: TimeStamp) { + self.name = name + self.definition = definition + self.stateMachineArn = stateMachineArn + self.roleArn = roleArn + self.updateDate = updateDate + } + + private enum CodingKeys: String, CodingKey { + case name = "name" + case definition = "definition" + case stateMachineArn = "stateMachineArn" + case roleArn = "roleArn" + case updateDate = "updateDate" + } + } + public struct ListActivitiesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string) ] - /// The maximum number of results that will be returned per call. nextToken can be used to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 100 and the maximum allowed page size is 100. A value of 0 uses the default. This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum. public let maxResults: Int32? - /// If a nextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. + /// If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. public let nextToken: String? public init(maxResults: Int32? = nil, nextToken: String? = nil) { @@ -89,13 +125,13 @@ extension States { } public struct GetExecutionHistoryOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "events", required: true, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// The list of events that occurred in the execution. public let events: [HistoryEvent] - /// If a nextToken is returned, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. + /// If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. public let nextToken: String? public init(events: [HistoryEvent], nextToken: String? = nil) { @@ -110,7 +146,7 @@ extension States { } public struct ActivityFailedEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) ] @@ -131,16 +167,16 @@ extension States { } public struct ActivityListItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "activityArn", required: true, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "creationDate", required: true, type: .timestamp) ] /// The Amazon Resource Name (ARN) that identifies the activity. public let activityArn: String - /// The name of the activity. + /// The name of the activity. A name must not contain: whitespace brackets < > { } [ ] wildcard characters ? * special characters " # % \ ^ | ~ ` $ & , ; : / control characters (U+0000-001F, U+007F-009F) public let name: String - /// The date the activity was created. + /// The date the activity is created. public let creationDate: TimeStamp public init(activityArn: String, name: String, creationDate: TimeStamp) { @@ -157,16 +193,16 @@ extension States { } public struct DescribeActivityOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "activityArn", required: true, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "creationDate", required: true, type: .timestamp) ] /// The Amazon Resource Name (ARN) that identifies the activity. public let activityArn: String - /// The name of the activity. + /// The name of the activity. A name must not contain: whitespace brackets < > { } [ ] wildcard characters ? * special characters " # % \ ^ | ~ ` $ & , ; : / control characters (U+0000-001F, U+007F-009F) public let name: String - /// The date the activity was created. + /// The date the activity is created. public let creationDate: TimeStamp public init(activityArn: String, name: String, creationDate: TimeStamp) { @@ -183,7 +219,7 @@ extension States { } public struct ExecutionListItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: true, type: .enum), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "stateMachineArn", required: true, type: .string), @@ -193,7 +229,7 @@ extension States { ] /// The current status of the execution. public let status: ExecutionStatus - /// The name of the execution. + /// The name of the execution. A name must not contain: whitespace brackets < > { } [ ] wildcard characters ? * special characters " # % \ ^ | ~ ` $ & , ; : / control characters (U+0000-001F, U+007F-009F) public let name: String /// The Amazon Resource Name (ARN) of the executed state machine. public let stateMachineArn: String @@ -224,14 +260,14 @@ extension States { } public struct StartExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "input", required: false, type: .string), AWSShapeMember(label: "stateMachineArn", required: true, type: .string) ] - /// The name of the execution. This name must be unique for your AWS account and region. + /// The name of the execution. This name must be unique for your AWS account and region for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide. An execution can't use the name of another execution for 90 days. When you make multiple StartExecution calls with the same name, the new execution doesn't run and the following rules apply: When the original execution is open and the execution input from the new call is different, the ExecutionAlreadyExists message is returned. When the original execution is open and the execution input from the new call is identical, the Success message is returned. When the original execution is closed, the ExecutionAlreadyExists message is returned regardless of input. A name must not contain: whitespace brackets < > { } [ ] wildcard characters ? * special characters " # % \ ^ | ~ ` $ & , ; : / control characters (U+0000-001F, U+007F-009F) public let name: String? - /// The JSON input data for the execution. + /// The string that contains the JSON input data for the execution, for example: "input": "{\"first_name\" : \"test\"}" If you don't include any JSON input data, you still must include the two braces, for example: "input": "{}" public let input: String? /// The Amazon Resource Name (ARN) of the state machine to execute. public let stateMachineArn: String @@ -277,19 +313,25 @@ extension States { case lambdafunctiontimedout = "LambdaFunctionTimedOut" case succeedstateentered = "SucceedStateEntered" case succeedstateexited = "SucceedStateExited" + case taskstateaborted = "TaskStateAborted" case taskstateentered = "TaskStateEntered" case taskstateexited = "TaskStateExited" case passstateentered = "PassStateEntered" case passstateexited = "PassStateExited" + case parallelstateaborted = "ParallelStateAborted" case parallelstateentered = "ParallelStateEntered" case parallelstateexited = "ParallelStateExited" + case parallelstatefailed = "ParallelStateFailed" + case parallelstatestarted = "ParallelStateStarted" + case parallelstatesucceeded = "ParallelStateSucceeded" + case waitstateaborted = "WaitStateAborted" case waitstateentered = "WaitStateEntered" case waitstateexited = "WaitStateExited" public var description: String { return self.rawValue } } public struct DescribeStateMachineOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: false, type: .enum), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "stateMachineArn", required: true, type: .string), @@ -299,15 +341,15 @@ extension States { ] /// The current status of the state machine. public let status: StateMachineStatus? - /// The name of the state machine. + /// The name of the state machine. A name must not contain: whitespace brackets < > { } [ ] wildcard characters ? * special characters " # % \ ^ | ~ ` $ & , ; : / control characters (U+0000-001F, U+007F-009F) public let name: String /// The Amazon Resource Name (ARN) that identifies the state machine. public let stateMachineArn: String - /// The date the state machine was created. + /// The date the state machine is created. public let creationDate: TimeStamp /// The Amazon States Language definition of the state machine. public let definition: String - /// The Amazon Resource Name (ARN) of the IAM role used for executing this state machine. + /// The Amazon Resource Name (ARN) of the IAM role used when creating this state machine. (The IAM role maintains security by granting Step Functions access to AWS resources.) public let roleArn: String public init(status: StateMachineStatus? = nil, name: String, stateMachineArn: String, creationDate: TimeStamp, definition: String, roleArn: String) { @@ -329,8 +371,50 @@ extension States { } } + public struct UpdateStateMachineOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "updateDate", required: true, type: .timestamp) + ] + /// The date and time the state machine was updated. + public let updateDate: TimeStamp + + public init(updateDate: TimeStamp) { + self.updateDate = updateDate + } + + private enum CodingKeys: String, CodingKey { + case updateDate = "updateDate" + } + } + + public struct UpdateStateMachineInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "definition", required: false, type: .string), + AWSShapeMember(label: "roleArn", required: false, type: .string), + AWSShapeMember(label: "stateMachineArn", required: true, type: .string) + ] + /// The Amazon States Language definition of the state machine. + public let definition: String? + /// The Amazon Resource Name (ARN) of the IAM role of the state machine. + public let roleArn: String? + /// The Amazon Resource Name (ARN) of the state machine. + public let stateMachineArn: String + + public init(definition: String? = nil, roleArn: String? = nil, stateMachineArn: String) { + self.definition = definition + self.roleArn = roleArn + self.stateMachineArn = stateMachineArn + } + + private enum CodingKeys: String, CodingKey { + case definition = "definition" + case roleArn = "roleArn" + case stateMachineArn = "stateMachineArn" + } + } + public struct LambdaFunctionStartFailedEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) ] @@ -351,7 +435,7 @@ extension States { } public struct ActivityTimedOutEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) ] @@ -372,11 +456,11 @@ extension States { } public struct StartExecutionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "startDate", required: true, type: .timestamp), AWSShapeMember(label: "executionArn", required: true, type: .string) ] - /// The date the execution was started. + /// The date the execution is started. public let startDate: TimeStamp /// The Amazon Resource Name (ARN) that identifies the execution. public let executionArn: String @@ -393,7 +477,7 @@ extension States { } public struct HistoryEvent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lambdaFunctionSucceededEventDetails", required: false, type: .structure), AWSShapeMember(label: "lambdaFunctionFailedEventDetails", required: false, type: .structure), AWSShapeMember(label: "executionSucceededEventDetails", required: false, type: .structure), @@ -418,6 +502,7 @@ extension States { AWSShapeMember(label: "lambdaFunctionScheduleFailedEventDetails", required: false, type: .structure), AWSShapeMember(label: "lambdaFunctionStartFailedEventDetails", required: false, type: .structure) ] + /// Contains details about a lambda function which terminated successfully during an execution. public let lambdaFunctionSucceededEventDetails: LambdaFunctionSucceededEventDetails? public let lambdaFunctionFailedEventDetails: LambdaFunctionFailedEventDetails? public let executionSucceededEventDetails: ExecutionSucceededEventDetails? @@ -432,8 +517,9 @@ extension States { public let `type`: HistoryEventType public let stateEnteredEventDetails: StateEnteredEventDetails? public let executionStartedEventDetails: ExecutionStartedEventDetails? + /// Contains details about an activity schedule event which failed during an execution. public let activityScheduleFailedEventDetails: ActivityScheduleFailedEventDetails? - /// The date the event occured. + /// The date the event occurred. public let timestamp: TimeStamp /// The id of the previous event. public let previousEventId: Int64? @@ -444,6 +530,7 @@ extension States { public let activitySucceededEventDetails: ActivitySucceededEventDetails? public let stateExitedEventDetails: StateExitedEventDetails? public let lambdaFunctionScheduleFailedEventDetails: LambdaFunctionScheduleFailedEventDetails? + /// Contains details about a lambda function which failed to start during an execution. public let lambdaFunctionStartFailedEventDetails: LambdaFunctionStartFailedEventDetails? public init(lambdaFunctionSucceededEventDetails: LambdaFunctionSucceededEventDetails? = nil, lambdaFunctionFailedEventDetails: LambdaFunctionFailedEventDetails? = nil, executionSucceededEventDetails: ExecutionSucceededEventDetails? = nil, activityFailedEventDetails: ActivityFailedEventDetails? = nil, executionTimedOutEventDetails: ExecutionTimedOutEventDetails? = nil, lambdaFunctionTimedOutEventDetails: LambdaFunctionTimedOutEventDetails? = nil, executionAbortedEventDetails: ExecutionAbortedEventDetails? = nil, executionFailedEventDetails: ExecutionFailedEventDetails? = nil, activityScheduledEventDetails: ActivityScheduledEventDetails? = nil, activityStartedEventDetails: ActivityStartedEventDetails? = nil, type: HistoryEventType, stateEnteredEventDetails: StateEnteredEventDetails? = nil, executionStartedEventDetails: ExecutionStartedEventDetails? = nil, activityScheduleFailedEventDetails: ActivityScheduleFailedEventDetails? = nil, timestamp: TimeStamp, previousEventId: Int64? = nil, id: Int64, activityTimedOutEventDetails: ActivityTimedOutEventDetails? = nil, lambdaFunctionScheduledEventDetails: LambdaFunctionScheduledEventDetails? = nil, activitySucceededEventDetails: ActivitySucceededEventDetails? = nil, stateExitedEventDetails: StateExitedEventDetails? = nil, lambdaFunctionScheduleFailedEventDetails: LambdaFunctionScheduleFailedEventDetails? = nil, lambdaFunctionStartFailedEventDetails: LambdaFunctionStartFailedEventDetails? = nil) { @@ -500,13 +587,13 @@ extension States { } public struct ListActivitiesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "activities", required: true, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// The list of activities. public let activities: [ActivityListItem] - /// If a nextToken is returned, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. + /// If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. public let nextToken: String? public init(activities: [ActivityListItem], nextToken: String? = nil) { @@ -525,13 +612,13 @@ extension States { } public struct ListStateMachinesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "nextToken", required: false, type: .string) ] - /// The maximum number of results that will be returned per call. nextToken can be used to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 100 and the maximum allowed page size is 100. A value of 0 uses the default. This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum. public let maxResults: Int32? - /// If a nextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. + /// If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. public let nextToken: String? public init(maxResults: Int32? = nil, nextToken: String? = nil) { @@ -546,13 +633,13 @@ extension States { } public struct ListExecutionsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "executions", required: true, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] /// The list of matching executions. public let executions: [ExecutionListItem] - /// If a nextToken is returned, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. + /// If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. public let nextToken: String? public init(executions: [ExecutionListItem], nextToken: String? = nil) { @@ -567,12 +654,12 @@ extension States { } public struct CreateStateMachineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "definition", required: true, type: .string), AWSShapeMember(label: "roleArn", required: true, type: .string) ] - /// The name of the state machine. This name must be unique for your AWS account and region. + /// The name of the state machine. This name must be unique for your AWS account and region for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide. A name must not contain: whitespace brackets < > { } [ ] wildcard characters ? * special characters " # % \ ^ | ~ ` $ & , ; : / control characters (U+0000-001F, U+007F-009F) public let name: String /// The Amazon States Language definition of the state machine. public let definition: String @@ -593,10 +680,10 @@ extension States { } public struct SendTaskHeartbeatInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskToken", required: true, type: .string) ] - /// The token that represents this task. Task tokens are generated by the service when the tasks are assigned to a worker (see GetActivityTask::taskToken). + /// The token that represents this task. Task tokens are generated by the service when the tasks are assigned to a worker (see GetActivityTaskOutput$taskToken). public let taskToken: String public init(taskToken: String) { @@ -609,7 +696,7 @@ extension States { } public struct ActivityScheduleFailedEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) ] @@ -636,7 +723,7 @@ extension States { } public struct ActivitySucceededEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "output", required: false, type: .string) ] /// The JSON data output by the activity task. @@ -652,7 +739,7 @@ extension States { } public struct SendTaskFailureInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskToken", required: true, type: .string), AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) @@ -678,13 +765,13 @@ extension States { } public struct GetActivityTaskInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "workerName", required: false, type: .string), AWSShapeMember(label: "activityArn", required: true, type: .string) ] - /// An arbitrary name may be provided in order to identify the worker that the task is assigned to. This name will be used when it is logged in the execution history. + /// You can provide an arbitrary name in order to identify the worker that the task is assigned to. This name is used when it is logged in the execution history. public let workerName: String? - /// The Amazon Resource Name (ARN) of the activity to retrieve tasks from. + /// The Amazon Resource Name (ARN) of the activity to retrieve tasks from (assigned when you create the task using CreateActivity.) public let activityArn: String public init(workerName: String? = nil, activityArn: String) { @@ -699,7 +786,7 @@ extension States { } public struct DescribeActivityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "activityArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the activity to describe. @@ -715,7 +802,7 @@ extension States { } public struct LambdaFunctionScheduledEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "timeoutInSeconds", required: false, type: .long), AWSShapeMember(label: "input", required: false, type: .string), AWSShapeMember(label: "resource", required: true, type: .string) @@ -745,13 +832,13 @@ extension States { } public struct GetActivityTaskOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskToken", required: false, type: .string), AWSShapeMember(label: "input", required: false, type: .string) ] /// A token that identifies the scheduled task. This token must be copied and included in subsequent calls to SendTaskHeartbeat, SendTaskSuccess or SendTaskFailure in order to report the progress or completion of the task. public let taskToken: String? - /// The JSON input data for the task. + /// The string that contains the JSON input data for the task. public let input: String? public init(taskToken: String? = nil, input: String? = nil) { @@ -766,13 +853,13 @@ extension States { } public struct StateExitedEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "output", required: false, type: .string), AWSShapeMember(label: "name", required: true, type: .string) ] /// The JSON output data of the state. public let output: String? - /// The name of the state. + /// The name of the state. A name must not contain: whitespace brackets < > { } [ ] wildcard characters ? * special characters " # % \ ^ | ~ ` $ & , ; : / control characters (U+0000-001F, U+007F-009F) public let name: String public init(output: String? = nil, name: String) { @@ -796,7 +883,7 @@ extension States { } public struct LambdaFunctionSucceededEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "output", required: false, type: .string) ] /// The JSON data output by the lambda function. @@ -812,7 +899,7 @@ extension States { } public struct ActivityScheduledEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "timeoutInSeconds", required: false, type: .long), AWSShapeMember(label: "input", required: false, type: .string), AWSShapeMember(label: "heartbeatInSeconds", required: false, type: .long), @@ -843,13 +930,13 @@ extension States { } public struct CreateStateMachineOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "stateMachineArn", required: true, type: .string), AWSShapeMember(label: "creationDate", required: true, type: .timestamp) ] /// The Amazon Resource Name (ARN) that identifies the created state machine. public let stateMachineArn: String - /// The date the state machine was created. + /// The date the state machine is created. public let creationDate: TimeStamp public init(stateMachineArn: String, creationDate: TimeStamp) { @@ -864,7 +951,7 @@ extension States { } public struct DescribeExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "executionArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the execution to describe. @@ -880,7 +967,7 @@ extension States { } public struct DeleteActivityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "activityArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the activity to delete. @@ -896,7 +983,7 @@ extension States { } public struct DeleteStateMachineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "stateMachineArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the state machine to delete. @@ -912,7 +999,7 @@ extension States { } public struct DescribeStateMachineInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "stateMachineArn", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the state machine to describe. @@ -928,13 +1015,13 @@ extension States { } public struct SendTaskSuccessInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "output", required: true, type: .string), AWSShapeMember(label: "taskToken", required: true, type: .string) ] /// The JSON output of the task. public let output: String - /// The token that represents this task. Task tokens are generated by the service when the tasks are assigned to a worker (see GetActivityTask::taskToken). + /// The token that represents this task. Task tokens are generated by the service when the tasks are assigned to a worker (see GetActivityTaskOutput$taskToken). public let taskToken: String public init(output: String, taskToken: String) { @@ -949,7 +1036,7 @@ extension States { } public struct LambdaFunctionScheduleFailedEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) ] @@ -970,7 +1057,7 @@ extension States { } public struct ExecutionFailedEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) ] @@ -991,11 +1078,11 @@ extension States { } public struct ListStateMachinesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "stateMachines", required: true, type: .list) ] - /// If a nextToken is returned, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. + /// If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. public let nextToken: String? public let stateMachines: [StateMachineListItem] @@ -1011,10 +1098,10 @@ extension States { } public struct CreateActivityInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string) ] - /// The name of the activity to create. This name must be unique for your AWS account and region. + /// The name of the activity to create. This name must be unique for your AWS account and region for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide. A name must not contain: whitespace brackets < > { } [ ] wildcard characters ? * special characters " # % \ ^ | ~ ` $ & , ; : / control characters (U+0000-001F, U+007F-009F) public let name: String public init(name: String) { @@ -1027,7 +1114,7 @@ extension States { } public struct ListExecutionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "statusFilter", required: false, type: .enum), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "stateMachineArn", required: true, type: .string), @@ -1035,11 +1122,11 @@ extension States { ] /// If specified, only list the executions whose current execution status matches the given filter. public let statusFilter: ExecutionStatus? - /// The maximum number of results that will be returned per call. nextToken can be used to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 100 and the maximum allowed page size is 100. A value of 0 uses the default. This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum. public let maxResults: Int32? - /// The Amazon Resource Name (ARN) of the state machine whose executions will be listed. + /// The Amazon Resource Name (ARN) of the state machine whose executions is listed. public let stateMachineArn: String - /// If a nextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. + /// If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. public let nextToken: String? public init(statusFilter: ExecutionStatus? = nil, maxResults: Int32? = nil, stateMachineArn: String, nextToken: String? = nil) { @@ -1058,7 +1145,7 @@ extension States { } public struct LambdaFunctionTimedOutEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) ] @@ -1079,15 +1166,15 @@ extension States { } public struct GetExecutionHistoryInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "maxResults", required: false, type: .integer), AWSShapeMember(label: "reverseOrder", required: false, type: .boolean), AWSShapeMember(label: "executionArn", required: true, type: .string) ] - /// If a nextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. + /// If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged. The configured maxResults determines how many results can be returned in a single call. public let nextToken: String? - /// The maximum number of results that will be returned per call. nextToken can be used to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 100 and the maximum allowed page size is 100. A value of 0 uses the default. This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum. public let maxResults: Int32? /// Lists events in descending order of their timeStamp. public let reverseOrder: Bool? @@ -1110,7 +1197,7 @@ extension States { } public struct ExecutionStartedEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "roleArn", required: false, type: .string), AWSShapeMember(label: "input", required: false, type: .string) ] @@ -1131,7 +1218,7 @@ extension States { } public struct LambdaFunctionFailedEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) ] @@ -1152,10 +1239,10 @@ extension States { } public struct ActivityStartedEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "workerName", required: false, type: .string) ] - /// The name of the worker that the task was assigned to. These names are provided by the workers when calling GetActivityTask. + /// The name of the worker that the task is assigned to. These names are provided by the workers when calling GetActivityTask. public let workerName: String? public init(workerName: String? = nil) { @@ -1168,16 +1255,16 @@ extension States { } public struct StateMachineListItem: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "stateMachineArn", required: true, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "creationDate", required: true, type: .timestamp) ] /// The Amazon Resource Name (ARN) that identifies the state machine. public let stateMachineArn: String - /// The name of the state machine. + /// The name of the state machine. A name must not contain: whitespace brackets < > { } [ ] wildcard characters ? * special characters " # % \ ^ | ~ ` $ & , ; : / control characters (U+0000-001F, U+007F-009F) public let name: String - /// The date the state machine was created. + /// The date the state machine is created. public let creationDate: TimeStamp public init(stateMachineArn: String, name: String, creationDate: TimeStamp) { @@ -1193,12 +1280,28 @@ extension States { } } + public struct DescribeStateMachineForExecutionInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "executionArn", required: true, type: .string) + ] + /// The Amazon Resource Name (ARN) of the execution you want state machine information for. + public let executionArn: String + + public init(executionArn: String) { + self.executionArn = executionArn + } + + private enum CodingKeys: String, CodingKey { + case executionArn = "executionArn" + } + } + public struct SendTaskSuccessOutput: AWSShape { } public struct ExecutionTimedOutEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) ] @@ -1219,7 +1322,7 @@ extension States { } public struct ExecutionAbortedEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cause", required: false, type: .string), AWSShapeMember(label: "error", required: false, type: .string) ] @@ -1240,7 +1343,7 @@ extension States { } public struct ExecutionSucceededEventDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "output", required: false, type: .string) ] /// The JSON data output by the execution. @@ -1256,7 +1359,7 @@ extension States { } public struct DescribeExecutionOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: true, type: .enum), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "stopDate", required: false, type: .timestamp), @@ -1268,17 +1371,17 @@ extension States { ] /// The current status of the execution. public let status: ExecutionStatus - /// The name of the execution. + /// The name of the execution. A name must not contain: whitespace brackets < > { } [ ] wildcard characters ? * special characters " # % \ ^ | ~ ` $ & , ; : / control characters (U+0000-001F, U+007F-009F) public let name: String? /// If the execution has already ended, the date the execution stopped. public let stopDate: TimeStamp? - /// The date the execution was started. + /// The date the execution is started. public let startDate: TimeStamp - /// The JSON output data of the execution. + /// The JSON output data of the execution. This field is set only if the execution succeeds. If the execution fails, this field is null. public let output: String? /// The Amazon Resource Name (ARN) that identifies the execution. public let executionArn: String - /// The JSON input data of the execution. + /// The string that contains the JSON input data of the execution. public let input: String /// The Amazon Resource Name (ARN) of the executed stated machine. public let stateMachineArn: String @@ -1307,7 +1410,7 @@ extension States { } public struct StopExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "error", required: false, type: .string), AWSShapeMember(label: "executionArn", required: true, type: .string), AWSShapeMember(label: "cause", required: false, type: .string) diff --git a/Sources/AWSSDKSwift/Services/storagegateway/Storagegateway_API.swift b/Sources/AWSSDKSwift/Services/storagegateway/Storagegateway_API.swift index 23e0bb0943d..56799e4164a 100644 --- a/Sources/AWSSDKSwift/Services/storagegateway/Storagegateway_API.swift +++ b/Sources/AWSSDKSwift/Services/storagegateway/Storagegateway_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -AWS Storage Gateway Service AWS Storage Gateway is the service that connects an on-premises software appliance with cloud-based storage to provide seamless and secure integration between an organization's on-premises IT environment and AWS's storage infrastructure. The service enables you to securely upload data to the AWS cloud for cost effective backup and rapid disaster recovery. Use the following links to get started using the AWS Storage Gateway Service API Reference: AWS Storage Gateway Required Request Headers: Describes the required headers that you must send with every POST request to AWS Storage Gateway. Signing Requests: AWS Storage Gateway requires that you authenticate every request you send; this topic describes how sign such a request. Error Responses: Provides reference information about AWS Storage Gateway errors. Operations in AWS Storage Gateway: Contains detailed descriptions of all AWS Storage Gateway operations, their request parameters, response elements, possible errors, and examples of requests and responses. AWS Storage Gateway Regions and Endpoints: Provides a list of each region and endpoints available for use with AWS Storage Gateway. AWS Storage Gateway resource IDs are in uppercase. When you use these resource IDs with the Amazon EC2 API, EC2 expects resource IDs in lowercase. You must change your resource ID to lowercase to use it with the EC2 API. For example, in Storage Gateway the ID for a volume might be vol-AA22BB012345DAF670. When you use this ID with the EC2 API, you must change it to vol-aa22bb012345daf670. Otherwise, the EC2 API might not behave as expected. IDs for Storage Gateway volumes and Amazon EBS snapshots created from gateway volumes are changing to a longer format. Starting in December 2016, all new volumes and snapshots will be created with a 17-character string. Starting in April 2016, you will be able to use these longer IDs so you can test your systems with the new format. For more information, see Longer EC2 and EBS Resource IDs. For example, a volume Amazon Resource Name (ARN) with the longer volume ID format looks like the following: arn:aws:storagegateway:us-west-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABBCCDDEEFFG. A snapshot ID with the longer ID format looks like the following: snap-78e226633445566ee. For more information, see Announcement: Heads-up – Longer AWS Storage Gateway volume and snapshot IDs coming in 2016. +AWS Storage Gateway Service AWS Storage Gateway is the service that connects an on-premises software appliance with cloud-based storage to provide seamless and secure integration between an organization's on-premises IT environment and AWS's storage infrastructure. The service enables you to securely upload data to the AWS cloud for cost effective backup and rapid disaster recovery. Use the following links to get started using the AWS Storage Gateway Service API Reference: AWS Storage Gateway Required Request Headers: Describes the required headers that you must send with every POST request to AWS Storage Gateway. Signing Requests: AWS Storage Gateway requires that you authenticate every request you send; this topic describes how sign such a request. Error Responses: Provides reference information about AWS Storage Gateway errors. Operations in AWS Storage Gateway: Contains detailed descriptions of all AWS Storage Gateway operations, their request parameters, response elements, possible errors, and examples of requests and responses. AWS Storage Gateway Regions and Endpoints: Provides a list of each region and endpoints available for use with AWS Storage Gateway. AWS Storage Gateway resource IDs are in uppercase. When you use these resource IDs with the Amazon EC2 API, EC2 expects resource IDs in lowercase. You must change your resource ID to lowercase to use it with the EC2 API. For example, in Storage Gateway the ID for a volume might be vol-AA22BB012345DAF670. When you use this ID with the EC2 API, you must change it to vol-aa22bb012345daf670. Otherwise, the EC2 API might not behave as expected. IDs for Storage Gateway volumes and Amazon EBS snapshots created from gateway volumes are changing to a longer format. Starting in December 2016, all new volumes and snapshots will be created with a 17-character string. Starting in April 2016, you will be able to use these longer IDs so you can test your systems with the new format. For more information, see Longer EC2 and EBS Resource IDs. For example, a volume Amazon Resource Name (ARN) with the longer volume ID format looks like the following: arn:aws:storagegateway:us-west-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABBCCDDEEFFG. A snapshot ID with the longer ID format looks like the following: snap-78e226633445566ee. For more information, see Announcement: Heads-up – Longer AWS Storage Gateway volume and snapshot IDs coming in 2016. */ public struct Storagegateway { @@ -25,7 +25,7 @@ public struct Storagegateway { ) } - /// Configures one or more gateway local disks as cache for a gateway. This operation is only supported in the cached volume, tape and file gateway architectures (see Storage Gateway Concepts). In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add cache, and one or more disk IDs that you want to configure as cache. + /// Configures one or more gateway local disks as cache for a gateway. This operation is only supported in the cached volume, tape and file gateway type (see Storage Gateway Concepts). In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add cache, and one or more disk IDs that you want to configure as cache. public func addCache(_ input: AddCacheInput) throws -> AddCacheOutput { return try client.send(operation: "AddCache", path: "/", httpMethod: "POST", input: input) } @@ -35,7 +35,7 @@ public struct Storagegateway { return try client.send(operation: "UpdateBandwidthRateLimit", path: "/", httpMethod: "POST", input: input) } - /// Disables a tape gateway when the gateway is no longer functioning. For example, if your gateway VM is damaged, you can disable the gateway so you can recover virtual tapes. Use this operation for a tape gateway that is not reachable or not functioning. This operation is only supported in the tape gateway architectures. Once a gateway is disabled it cannot be enabled. + /// Disables a tape gateway when the gateway is no longer functioning. For example, if your gateway VM is damaged, you can disable the gateway so you can recover virtual tapes. Use this operation for a tape gateway that is not reachable or not functioning. This operation is only supported in the tape gateway type. Once a gateway is disabled it cannot be enabled. public func disableGateway(_ input: DisableGatewayInput) throws -> DisableGatewayOutput { return try client.send(operation: "DisableGateway", path: "/", httpMethod: "POST", input: input) } @@ -45,7 +45,7 @@ public struct Storagegateway { return try client.send(operation: "DescribeGatewayInformation", path: "/", httpMethod: "POST", input: input) } - /// Lists the tags that have been added to the specified resource. This operation is only supported in the cached volume, stored volume and tape gateway architecture. + /// Lists the tags that have been added to the specified resource. This operation is only supported in the cached volume, stored volume and tape gateway type. public func listTagsForResource(_ input: ListTagsForResourceInput) throws -> ListTagsForResourceOutput { return try client.send(operation: "ListTagsForResource", path: "/", httpMethod: "POST", input: input) } @@ -60,27 +60,27 @@ public struct Storagegateway { return try client.send(operation: "UpdateGatewayInformation", path: "/", httpMethod: "POST", input: input) } - /// Lists virtual tapes in your virtual tape library (VTL) and your virtual tape shelf (VTS). You specify the tapes to list by specifying one or more tape Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation lists all virtual tapes in both your VTL and VTS. This operation supports pagination. By default, the operation returns a maximum of up to 100 tapes. You can optionally specify the Limit parameter in the body to limit the number of tapes in the response. If the number of tapes returned in the response is truncated, the response includes a Marker element that you can use in your subsequent request to retrieve the next set of tapes. This operation is only supported in the tape gateway architecture. + /// Lists virtual tapes in your virtual tape library (VTL) and your virtual tape shelf (VTS). You specify the tapes to list by specifying one or more tape Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation lists all virtual tapes in both your VTL and VTS. This operation supports pagination. By default, the operation returns a maximum of up to 100 tapes. You can optionally specify the Limit parameter in the body to limit the number of tapes in the response. If the number of tapes returned in the response is truncated, the response includes a Marker element that you can use in your subsequent request to retrieve the next set of tapes. This operation is only supported in the tape gateway type. public func listTapes(_ input: ListTapesInput) throws -> ListTapesOutput { return try client.send(operation: "ListTapes", path: "/", httpMethod: "POST", input: input) } - /// Creates a file share on an existing file gateway. In Storage Gateway, a file share is a file system mount point backed by Amazon S3 cloud storage. Storage Gateway exposes file shares using a Network File System (NFS) interface. This operation is only supported in the file gateway architecture. File gateway requires AWS Security Token Service (AWS STS) to be activated to enable you create a file share. Make sure AWS STS is activated in the region you are creating your file gateway in. If AWS STS is not activated in the region, activate it. For information about how to activate AWS STS, see Activating and Deactivating AWS STS in an AWS Region in the AWS Identity and Access Management User Guide. File gateway does not support creating hard or symbolic links on a file share. + /// Creates a file share on an existing file gateway. In Storage Gateway, a file share is a file system mount point backed by Amazon S3 cloud storage. Storage Gateway exposes file shares using a Network File System (NFS) interface. This operation is only supported in the file gateway type. File gateway requires AWS Security Token Service (AWS STS) to be activated to enable you create a file share. Make sure AWS STS is activated in the region you are creating your file gateway in. If AWS STS is not activated in the region, activate it. For information about how to activate AWS STS, see Activating and Deactivating AWS STS in an AWS Region in the AWS Identity and Access Management User Guide. File gateway does not support creating hard or symbolic links on a file share. public func createNFSFileShare(_ input: CreateNFSFileShareInput) throws -> CreateNFSFileShareOutput { return try client.send(operation: "CreateNFSFileShare", path: "/", httpMethod: "POST", input: input) } - /// Initiates a snapshot of a gateway from a volume recovery point. This operation is only supported in the cached volume gateway architecture. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot. To get a list of volume recovery point for cached volume gateway, use ListVolumeRecoveryPoints. In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide a description for the snapshot. When the gateway takes a snapshot of the specified volume, the snapshot and its description appear in the AWS Storage Gateway console. In response, the gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. To list or delete a snapshot, you must use the Amazon EC2 API. For more information, in Amazon Elastic Compute Cloud API Reference. + /// Initiates a snapshot of a gateway from a volume recovery point. This operation is only supported in the cached volume gateway type. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot. To get a list of volume recovery point for cached volume gateway, use ListVolumeRecoveryPoints. In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide a description for the snapshot. When the gateway takes a snapshot of the specified volume, the snapshot and its description appear in the AWS Storage Gateway console. In response, the gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. To list or delete a snapshot, you must use the Amazon EC2 API. For more information, in Amazon Elastic Compute Cloud API Reference. public func createSnapshotFromVolumeRecoveryPoint(_ input: CreateSnapshotFromVolumeRecoveryPointInput) throws -> CreateSnapshotFromVolumeRecoveryPointOutput { return try client.send(operation: "CreateSnapshotFromVolumeRecoveryPoint", path: "/", httpMethod: "POST", input: input) } - /// Returns a description of virtual tape library (VTL) devices for the specified tape gateway. In the response, AWS Storage Gateway returns VTL device information. This operation is only supported in the tape gateway architecture. + /// Returns a description of virtual tape library (VTL) devices for the specified tape gateway. In the response, AWS Storage Gateway returns VTL device information. This operation is only supported in the tape gateway type. public func describeVTLDevices(_ input: DescribeVTLDevicesInput) throws -> DescribeVTLDevicesOutput { return try client.send(operation: "DescribeVTLDevices", path: "/", httpMethod: "POST", input: input) } - /// Updates a file share. This operation is only supported in the file gateway architecture. To leave a file share field unchanged, set the corresponding input field to null. Updates the following file share setting: Default storage class for your S3 bucket Metadata defaults for your S3 bucket Allowed NFS clients for your file share Squash settings Write status of your file share To leave a file share field unchanged, set the corresponding input field to null. This operation is only supported in file gateways. + /// Updates a file share. This operation is only supported in the file gateway type. To leave a file share field unchanged, set the corresponding input field to null. Updates the following file share setting: Default storage class for your S3 bucket Metadata defaults for your S3 bucket Allowed NFS clients for your file share Squash settings Write status of your file share To leave a file share field unchanged, set the corresponding input field to null. This operation is only supported in file gateways. public func updateNFSFileShare(_ input: UpdateNFSFileShareInput) throws -> UpdateNFSFileShareOutput { return try client.send(operation: "UpdateNFSFileShare", path: "/", httpMethod: "POST", input: input) } @@ -90,12 +90,12 @@ public struct Storagegateway { return try client.send(operation: "UpdateMaintenanceStartTime", path: "/", httpMethod: "POST", input: input) } - /// Returns information about the upload buffer of a gateway. This operation is supported for the stored volume, cached volume and tape gateway architectures. The response includes disk IDs that are configured as upload buffer space, and it includes the amount of upload buffer space allocated and used. + /// Returns information about the upload buffer of a gateway. This operation is supported for the stored volume, cached volume and tape gateway types. The response includes disk IDs that are configured as upload buffer space, and it includes the amount of upload buffer space allocated and used. public func describeUploadBuffer(_ input: DescribeUploadBufferInput) throws -> DescribeUploadBufferOutput { return try client.send(operation: "DescribeUploadBuffer", path: "/", httpMethod: "POST", input: input) } - /// Deletes a snapshot of a volume. You can take snapshots of your gateway volumes on a scheduled or ad hoc basis. This API action enables you to delete a snapshot schedule for a volume. For more information, see Working with Snapshots. In the DeleteSnapshotSchedule request, you identify the volume by providing its Amazon Resource Name (ARN). To list or delete a snapshot, you must use the Amazon EC2 API. in Amazon Elastic Compute Cloud API Reference. + /// Deletes a snapshot of a volume. You can take snapshots of your gateway volumes on a scheduled or ad hoc basis. This API action enables you to delete a snapshot schedule for a volume. For more information, see Working with Snapshots. In the DeleteSnapshotSchedule request, you identify the volume by providing its Amazon Resource Name (ARN). This operation is only supported in stored and cached volume gateway types. To list or delete a snapshot, you must use the Amazon EC2 API. in Amazon Elastic Compute Cloud API Reference. public func deleteSnapshotSchedule(_ input: DeleteSnapshotScheduleInput) throws -> DeleteSnapshotScheduleOutput { return try client.send(operation: "DeleteSnapshotSchedule", path: "/", httpMethod: "POST", input: input) } @@ -105,12 +105,12 @@ public struct Storagegateway { return try client.send(operation: "DescribeBandwidthRateLimit", path: "/", httpMethod: "POST", input: input) } - /// Removes one or more tags from the specified resource. This operation is only supported in the cached volume, stored volume and tape gateway architectures. + /// Removes one or more tags from the specified resource. This operation is only supported in the cached volume, stored volume and tape gateway types. public func removeTagsFromResource(_ input: RemoveTagsFromResourceInput) throws -> RemoveTagsFromResourceOutput { return try client.send(operation: "RemoveTagsFromResource", path: "/", httpMethod: "POST", input: input) } - /// Creates a virtual tape by using your own barcode. You write data to the virtual tape and then archive the tape. This operation is only supported in the tape gateway architecture. Cache storage must be allocated to the gateway before you can create a virtual tape. Use the AddCache operation to add cache storage to a gateway. + /// Creates a virtual tape by using your own barcode. You write data to the virtual tape and then archive the tape. A barcode is unique and can not be reused if it has already been used on a tape . This applies to barcodes used on deleted tapes. This operation is only supported in the tape gateway type. Cache storage must be allocated to the gateway before you can create a virtual tape. Use the AddCache operation to add cache storage to a gateway. public func createTapeWithBarcode(_ input: CreateTapeWithBarcodeInput) throws -> CreateTapeWithBarcodeOutput { return try client.send(operation: "CreateTapeWithBarcode", path: "/", httpMethod: "POST", input: input) } @@ -125,7 +125,7 @@ public struct Storagegateway { return try client.send(operation: "UpdateChapCredentials", path: "/", httpMethod: "POST", input: input) } - /// Configures one or more gateway local disks as working storage for a gateway. This operation is only supported in the stored volume gateway architecture. This operation is deprecated in cached volume API version 20120630. Use AddUploadBuffer instead. Working storage is also referred to as upload buffer. You can also use the AddUploadBuffer operation to add upload buffer to a stored volume gateway. In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add working storage, and one or more disk IDs that you want to configure as working storage. + /// Configures one or more gateway local disks as working storage for a gateway. This operation is only supported in the stored volume gateway type. This operation is deprecated in cached volume API version 20120630. Use AddUploadBuffer instead. Working storage is also referred to as upload buffer. You can also use the AddUploadBuffer operation to add upload buffer to a stored volume gateway. In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add working storage, and one or more disk IDs that you want to configure as working storage. public func addWorkingStorage(_ input: AddWorkingStorageInput) throws -> AddWorkingStorageOutput { return try client.send(operation: "AddWorkingStorage", path: "/", httpMethod: "POST", input: input) } @@ -140,12 +140,12 @@ public struct Storagegateway { return try client.send(operation: "ShutdownGateway", path: "/", httpMethod: "POST", input: input) } - /// Deletes a file share from a file gateway. This operation is only supported in the file gateway architecture. + /// Deletes a file share from a file gateway. This operation is only supported in the file gateway type. public func deleteFileShare(_ input: DeleteFileShareInput) throws -> DeleteFileShareOutput { return try client.send(operation: "DeleteFileShare", path: "/", httpMethod: "POST", input: input) } - /// Returns information about the working storage of a gateway. This operation is only supported in the stored volumes gateway architecture. This operation is deprecated in cached volumes API version (20120630). Use DescribeUploadBuffer instead. Working storage is also referred to as upload buffer. You can also use the DescribeUploadBuffer operation to add upload buffer to a stored volume gateway. The response includes disk IDs that are configured as working storage, and it includes the amount of working storage allocated and used. + /// Returns information about the working storage of a gateway. This operation is only supported in the stored volumes gateway type. This operation is deprecated in cached volumes API version (20120630). Use DescribeUploadBuffer instead. Working storage is also referred to as upload buffer. You can also use the DescribeUploadBuffer operation to add upload buffer to a stored volume gateway. The response includes disk IDs that are configured as working storage, and it includes the amount of working storage allocated and used. public func describeWorkingStorage(_ input: DescribeWorkingStorageInput) throws -> DescribeWorkingStorageOutput { return try client.send(operation: "DescribeWorkingStorage", path: "/", httpMethod: "POST", input: input) } @@ -155,22 +155,22 @@ public struct Storagegateway { return try client.send(operation: "SetLocalConsolePassword", path: "/", httpMethod: "POST", input: input) } - /// Resets all cache disks that have encountered a error and makes the disks available for reconfiguration as cache storage. If your cache disk encounters a error, the gateway prevents read and write operations on virtual tapes in the gateway. For example, an error can occur when a disk is corrupted or removed from the gateway. When a cache is reset, the gateway loses its cache storage. At this point you can reconfigure the disks as cache disks. This operation is only supported in the cached volume,tape and file gateway architectures. If the cache disk you are resetting contains data that has not been uploaded to Amazon S3 yet, that data can be lost. After you reset cache disks, there will be no configured cache disks left in the gateway, so you must configure at least one new cache disk for your gateway to function properly. + /// Resets all cache disks that have encountered a error and makes the disks available for reconfiguration as cache storage. If your cache disk encounters a error, the gateway prevents read and write operations on virtual tapes in the gateway. For example, an error can occur when a disk is corrupted or removed from the gateway. When a cache is reset, the gateway loses its cache storage. At this point you can reconfigure the disks as cache disks. This operation is only supported in the cached volume, tape and file gateway types. If the cache disk you are resetting contains data that has not been uploaded to Amazon S3 yet, that data can be lost. After you reset cache disks, there will be no configured cache disks left in the gateway, so you must configure at least one new cache disk for your gateway to function properly. public func resetCache(_ input: ResetCacheInput) throws -> ResetCacheOutput { return try client.send(operation: "ResetCache", path: "/", httpMethod: "POST", input: input) } - /// Updates a snapshot schedule configured for a gateway volume. This operation is only supported in the cached volume and stored volume gateway architectures. The default snapshot schedule for volume is once every 24 hours, starting at the creation time of the volume. You can use this API to change the snapshot schedule configured for the volume. In the request you must identify the gateway volume whose snapshot schedule you want to update, and the schedule information, including when you want the snapshot to begin on a day and the frequency (in hours) of snapshots. + /// Updates a snapshot schedule configured for a gateway volume. This operation is only supported in the cached volume and stored volume gateway types. The default snapshot schedule for volume is once every 24 hours, starting at the creation time of the volume. You can use this API to change the snapshot schedule configured for the volume. In the request you must identify the gateway volume whose snapshot schedule you want to update, and the schedule information, including when you want the snapshot to begin on a day and the frequency (in hours) of snapshots. public func updateSnapshotSchedule(_ input: UpdateSnapshotScheduleInput) throws -> UpdateSnapshotScheduleOutput { return try client.send(operation: "UpdateSnapshotSchedule", path: "/", httpMethod: "POST", input: input) } - /// Gets a list of the file shares for a specific file gateway, or the list of file shares that belong to the calling user account. This operation is only supported in the file gateway architecture. + /// Gets a list of the file shares for a specific file gateway, or the list of file shares that belong to the calling user account. This operation is only supported in the file gateway type. public func listFileShares(_ input: ListFileSharesInput) throws -> ListFileSharesOutput { return try client.send(operation: "ListFileShares", path: "/", httpMethod: "POST", input: input) } - /// Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated. This operation is only supported in the tape gateway architecture. + /// Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated. This operation is only supported in the tape gateway type. public func cancelArchival(_ input: CancelArchivalInput) throws -> CancelArchivalOutput { return try client.send(operation: "CancelArchival", path: "/", httpMethod: "POST", input: input) } @@ -180,22 +180,22 @@ public struct Storagegateway { return try client.send(operation: "ActivateGateway", path: "/", httpMethod: "POST", input: input) } - /// Lists the recovery points for a specified gateway. This operation is only supported in the cached volume gateway architecture. Each cache volume has one recovery point. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot or clone a new cached volume from a source volume. To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint operation. + /// Lists the recovery points for a specified gateway. This operation is only supported in the cached volume gateway type. Each cache volume has one recovery point. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot or clone a new cached volume from a source volume. To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint operation. public func listVolumeRecoveryPoints(_ input: ListVolumeRecoveryPointsInput) throws -> ListVolumeRecoveryPointsOutput { return try client.send(operation: "ListVolumeRecoveryPoints", path: "/", httpMethod: "POST", input: input) } - /// Initiates a snapshot of a volume. AWS Storage Gateway provides the ability to back up point-in-time snapshots of your data to Amazon Simple Storage (S3) for durable off-site recovery, as well as import the data to an Amazon Elastic Block Store (EBS) volume in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway volume on a scheduled or ad-hoc basis. This API enables you to take ad-hoc snapshot. For more information, see Editing a Snapshot Schedule. In the CreateSnapshot request you identify the volume by providing its Amazon Resource Name (ARN). You must also provide description for the snapshot. When AWS Storage Gateway takes the snapshot of specified volume, the snapshot and description appears in the AWS Storage Gateway Console. In response, AWS Storage Gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. This operation is only supported in stored and cached volume gateway architecture. To list or delete a snapshot, you must use the Amazon EC2 API. For more information, see DescribeSnapshots or DeleteSnapshot in the EC2 API reference. Volume and snapshot IDs are changing to a longer length ID format. For more information, see the important note on the Welcome page. + /// Initiates a snapshot of a volume. AWS Storage Gateway provides the ability to back up point-in-time snapshots of your data to Amazon Simple Storage (S3) for durable off-site recovery, as well as import the data to an Amazon Elastic Block Store (EBS) volume in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway volume on a scheduled or ad-hoc basis. This API enables you to take ad-hoc snapshot. For more information, see Editing a Snapshot Schedule. In the CreateSnapshot request you identify the volume by providing its Amazon Resource Name (ARN). You must also provide description for the snapshot. When AWS Storage Gateway takes the snapshot of specified volume, the snapshot and description appears in the AWS Storage Gateway Console. In response, AWS Storage Gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. This operation is only supported in stored and cached volume gateway type. To list or delete a snapshot, you must use the Amazon EC2 API. For more information, see DescribeSnapshots or DeleteSnapshot in the EC2 API reference. Volume and snapshot IDs are changing to a longer length ID format. For more information, see the important note on the Welcome page. public func createSnapshot(_ input: CreateSnapshotInput) throws -> CreateSnapshotOutput { return try client.send(operation: "CreateSnapshot", path: "/", httpMethod: "POST", input: input) } - /// Returns the description of the gateway volumes specified in the request. The list of gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway returns volume information sorted by volume ARNs. This operation is only supported in stored volume gateway architecture. + /// Returns the description of the gateway volumes specified in the request. The list of gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway returns volume information sorted by volume ARNs. This operation is only supported in stored volume gateway type. public func describeStorediSCSIVolumes(_ input: DescribeStorediSCSIVolumesInput) throws -> DescribeStorediSCSIVolumesOutput { return try client.send(operation: "DescribeStorediSCSIVolumes", path: "/", httpMethod: "POST", input: input) } - /// Configures one or more gateway local disks as upload buffer for a specified gateway. This operation is supported for the stored volume, cached volume and tape gateway architectures. In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add upload buffer, and one or more disk IDs that you want to configure as upload buffer. + /// Configures one or more gateway local disks as upload buffer for a specified gateway. This operation is supported for the stored volume, cached volume and tape gateway types. In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add upload buffer, and one or more disk IDs that you want to configure as upload buffer. public func addUploadBuffer(_ input: AddUploadBufferInput) throws -> AddUploadBufferOutput { return try client.send(operation: "AddUploadBuffer", path: "/", httpMethod: "POST", input: input) } @@ -210,52 +210,52 @@ public struct Storagegateway { return try client.send(operation: "DeleteBandwidthRateLimit", path: "/", httpMethod: "POST", input: input) } - /// Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a tape gateway. Virtual tapes archived in the VTS are not associated with any gateway. However after a tape is retrieved, it is associated with a gateway, even though it is also listed in the VTS, that is, archive. This operation is only supported in the tape gateway architecture. Once a tape is successfully retrieved to a gateway, it cannot be retrieved again to another gateway. You must archive the tape again before you can retrieve it to another gateway. This operation is only supported in the tape gateway architecture. + /// Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a tape gateway. Virtual tapes archived in the VTS are not associated with any gateway. However after a tape is retrieved, it is associated with a gateway, even though it is also listed in the VTS, that is, archive. This operation is only supported in the tape gateway type. Once a tape is successfully retrieved to a gateway, it cannot be retrieved again to another gateway. You must archive the tape again before you can retrieve it to another gateway. This operation is only supported in the tape gateway type. public func retrieveTapeArchive(_ input: RetrieveTapeArchiveInput) throws -> RetrieveTapeArchiveOutput { return try client.send(operation: "RetrieveTapeArchive", path: "/", httpMethod: "POST", input: input) } - /// Returns a description of the gateway volumes specified in the request. This operation is only supported in the cached volume gateway architecture. The list of gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway returns volume information sorted by volume Amazon Resource Name (ARN). + /// Returns a description of the gateway volumes specified in the request. This operation is only supported in the cached volume gateway types. The list of gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway returns volume information sorted by volume Amazon Resource Name (ARN). public func describeCachediSCSIVolumes(_ input: DescribeCachediSCSIVolumesInput) throws -> DescribeCachediSCSIVolumesOutput { return try client.send(operation: "DescribeCachediSCSIVolumes", path: "/", httpMethod: "POST", input: input) } - /// Creates a volume on a specified gateway. This operation is only supported in the stored volume gateway architecture. The size of the volume to create is inferred from the disk size. You can choose to preserve existing data on the disk, create volume from an existing snapshot, or create an empty volume. If you choose to create an empty gateway volume, then any existing data on the disk is erased. In the request you must specify the gateway and the disk information on which you are creating the volume. In response, the gateway creates the volume and returns volume information such as the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target. + /// Creates a volume on a specified gateway. This operation is only supported in the stored volume gateway type. The size of the volume to create is inferred from the disk size. You can choose to preserve existing data on the disk, create volume from an existing snapshot, or create an empty volume. If you choose to create an empty gateway volume, then any existing data on the disk is erased. In the request you must specify the gateway and the disk information on which you are creating the volume. In response, the gateway creates the volume and returns volume information such as the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target. public func createStorediSCSIVolume(_ input: CreateStorediSCSIVolumeInput) throws -> CreateStorediSCSIVolumeOutput { return try client.send(operation: "CreateStorediSCSIVolume", path: "/", httpMethod: "POST", input: input) } - /// Lists iSCSI initiators that are connected to a volume. You can use this operation to determine whether a volume is being used or not. This operation is only supported in the cached volume and stored volume gateway architecture. + /// Lists iSCSI initiators that are connected to a volume. You can use this operation to determine whether a volume is being used or not. This operation is only supported in the cached volume and stored volume gateway types. public func listVolumeInitiators(_ input: ListVolumeInitiatorsInput) throws -> ListVolumeInitiatorsOutput { return try client.send(operation: "ListVolumeInitiators", path: "/", httpMethod: "POST", input: input) } - /// Returns a description of the specified Amazon Resource Name (ARN) of virtual tapes. If a TapeARN is not specified, returns a description of all virtual tapes associated with the specified gateway. This operation is only supported in the tape gateway architecture. + /// Returns a description of the specified Amazon Resource Name (ARN) of virtual tapes. If a TapeARN is not specified, returns a description of all virtual tapes associated with the specified gateway. This operation is only supported in the tape gateway type. public func describeTapes(_ input: DescribeTapesInput) throws -> DescribeTapesOutput { return try client.send(operation: "DescribeTapes", path: "/", httpMethod: "POST", input: input) } - /// Refreshes the cache for the specified file share. This operation finds objects in the Amazon S3 bucket that were added or removed since the gateway last listed the bucket's contents and cached the results. + /// Refreshes the cache for the specified file share. This operation finds objects in the Amazon S3 bucket that were added, removed or replaced since the gateway last listed the bucket's contents and cached the results. This operation is only supported in the file gateway type. public func refreshCache(_ input: RefreshCacheInput) throws -> RefreshCacheOutput { return try client.send(operation: "RefreshCache", path: "/", httpMethod: "POST", input: input) } - /// Updates the type of medium changer in a tape gateway. When you activate a tape gateway, you select a medium changer type for the tape gateway. This operation enables you to select a different type of medium changer after a tape gateway is activated. This operation is only supported in the tape gateway architecture. + /// Updates the type of medium changer in a tape gateway. When you activate a tape gateway, you select a medium changer type for the tape gateway. This operation enables you to select a different type of medium changer after a tape gateway is activated. This operation is only supported in the tape gateway type. public func updateVTLDeviceType(_ input: UpdateVTLDeviceTypeInput) throws -> UpdateVTLDeviceTypeOutput { return try client.send(operation: "UpdateVTLDeviceType", path: "/", httpMethod: "POST", input: input) } - /// Returns information about the cache of a gateway. This operation is only supported in the cached volume,tape and file gateway architectures. The response includes disk IDs that are configured as cache, and it includes the amount of cache allocated and used. + /// Returns information about the cache of a gateway. This operation is only supported in the cached volume, tape and file gateway types. The response includes disk IDs that are configured as cache, and it includes the amount of cache allocated and used. public func describeCache(_ input: DescribeCacheInput) throws -> DescribeCacheOutput { return try client.send(operation: "DescribeCache", path: "/", httpMethod: "POST", input: input) } - /// Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to a gateway after the retrieval process is initiated. The virtual tape is returned to the VTS. + /// Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to a gateway after the retrieval process is initiated. The virtual tape is returned to the VTS. This operation is only supported in the tape gateway type. public func cancelRetrieval(_ input: CancelRetrievalInput) throws -> CancelRetrievalOutput { return try client.send(operation: "CancelRetrieval", path: "/", httpMethod: "POST", input: input) } - /// Describes the snapshot schedule for the specified gateway volume. The snapshot schedule information includes intervals at which snapshots are automatically initiated on the volume. This operation is only supported in the cached volume and stored volume architectures. + /// Describes the snapshot schedule for the specified gateway volume. The snapshot schedule information includes intervals at which snapshots are automatically initiated on the volume. This operation is only supported in the cached volume and stored volume types. public func describeSnapshotSchedule(_ input: DescribeSnapshotScheduleInput) throws -> DescribeSnapshotScheduleOutput { return try client.send(operation: "DescribeSnapshotSchedule", path: "/", httpMethod: "POST", input: input) } @@ -270,62 +270,67 @@ public struct Storagegateway { return try client.send(operation: "UpdateGatewaySoftwareNow", path: "/", httpMethod: "POST", input: input) } - /// Creates one or more virtual tapes. You write data to the virtual tapes and then archive the tapes. This operation is only supported in the tape gateway architecture. Cache storage must be allocated to the gateway before you can create virtual tapes. Use the AddCache operation to add cache storage to a gateway. + /// Creates one or more virtual tapes. You write data to the virtual tapes and then archive the tapes. This operation is only supported in the tape gateway type. Cache storage must be allocated to the gateway before you can create virtual tapes. Use the AddCache operation to add cache storage to a gateway. public func createTapes(_ input: CreateTapesInput) throws -> CreateTapesOutput { return try client.send(operation: "CreateTapes", path: "/", httpMethod: "POST", input: input) } - /// Lists the iSCSI stored volumes of a gateway. Results are sorted by volume ARN. The response includes only the volume ARNs. If you want additional volume information, use the DescribeStorediSCSIVolumes or the DescribeCachediSCSIVolumes API. The operation supports pagination. By default, the operation returns a maximum of up to 100 volumes. You can optionally specify the Limit field in the body to limit the number of volumes in the response. If the number of volumes returned in the response is truncated, the response includes a Marker field. You can use this Marker value in your subsequent request to retrieve the next set of volumes. This operation is only supported in the cached volume and stored volume gateway architectures. + /// Lists the iSCSI stored volumes of a gateway. Results are sorted by volume ARN. The response includes only the volume ARNs. If you want additional volume information, use the DescribeStorediSCSIVolumes or the DescribeCachediSCSIVolumes API. The operation supports pagination. By default, the operation returns a maximum of up to 100 volumes. You can optionally specify the Limit field in the body to limit the number of volumes in the response. If the number of volumes returned in the response is truncated, the response includes a Marker field. You can use this Marker value in your subsequent request to retrieve the next set of volumes. This operation is only supported in the cached volume and stored volume gateway types. public func listVolumes(_ input: ListVolumesInput) throws -> ListVolumesOutput { return try client.send(operation: "ListVolumes", path: "/", httpMethod: "POST", input: input) } - /// Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target and initiator pair. - public func deleteChapCredentials(_ input: DeleteChapCredentialsInput) throws -> DeleteChapCredentialsOutput { - return try client.send(operation: "DeleteChapCredentials", path: "/", httpMethod: "POST", input: input) + /// Sends you notification when all file data written to the NFS file share has been uploaded to Amazon S3. AWS Storage Gateway can send a notification through Amazon CloudWatch Events when all files written to your file share up to that point in time have been uploaded to Amazon S3. These files include files written to the NFS file share up to the time that you make a request for notification. When the upload is done, Storage Gateway sends you notification through an Amazon CloudWatch event. You can configure CloudWatch Events to sent the notification through event targets such as email, SNS or a Lambda function. text or Lambda functions. This operation is only supported in the file gateway type. + public func notifyWhenUploaded(_ input: NotifyWhenUploadedInput) throws -> NotifyWhenUploadedOutput { + return try client.send(operation: "NotifyWhenUploaded", path: "/", httpMethod: "POST", input: input) } - /// Returns a description of specified virtual tapes in the virtual tape shelf (VTS). This operation is only supported in the tape gateway architecture. If a specific TapeARN is not specified, AWS Storage Gateway returns a description of all virtual tapes found in the VTS associated with your account. + /// Returns a description of specified virtual tapes in the virtual tape shelf (VTS). This operation is only supported in the tape gateway type. If a specific TapeARN is not specified, AWS Storage Gateway returns a description of all virtual tapes found in the VTS associated with your account. public func describeTapeArchives(_ input: DescribeTapeArchivesInput) throws -> DescribeTapeArchivesOutput { return try client.send(operation: "DescribeTapeArchives", path: "/", httpMethod: "POST", input: input) } + /// Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target and initiator pair. + public func deleteChapCredentials(_ input: DeleteChapCredentialsInput) throws -> DeleteChapCredentialsOutput { + return try client.send(operation: "DeleteChapCredentials", path: "/", httpMethod: "POST", input: input) + } + /// Deletes a gateway. To specify which gateway to delete, use the Amazon Resource Name (ARN) of the gateway in your request. The operation deletes the gateway; however, it does not delete the gateway virtual machine (VM) from your host computer. After you delete a gateway, you cannot reactivate it. Completed snapshots of the gateway volumes are not deleted upon deleting the gateway, however, pending snapshots will not complete. After you delete a gateway, your next step is to remove it from your environment. You no longer pay software charges after the gateway is deleted; however, your existing Amazon EBS snapshots persist and you will continue to be billed for these snapshots. You can choose to remove all remaining Amazon EBS snapshots by canceling your Amazon EC2 subscription.  If you prefer not to cancel your Amazon EC2 subscription, you can delete your snapshots using the Amazon EC2 console. For more information, see the AWS Storage Gateway Detail Page. public func deleteGateway(_ input: DeleteGatewayInput) throws -> DeleteGatewayOutput { return try client.send(operation: "DeleteGateway", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified storage volume that you previously created using the CreateCachediSCSIVolume or CreateStorediSCSIVolume API. This operation is only supported in the cached volume and stored volume architectures. For stored volume gateways, the local disk that was configured as the storage volume is not deleted. You can reuse the local disk to create another storage volume. Before you delete a volume, make sure there are no iSCSI connections to the volume you are deleting. You should also make sure there is no snapshot in progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to query snapshots on the volume you are deleting and check the snapshot status. For more information, go to DescribeSnapshots in the Amazon Elastic Compute Cloud API Reference. In the request, you must provide the Amazon Resource Name (ARN) of the storage volume you want to delete. + /// Deletes the specified storage volume that you previously created using the CreateCachediSCSIVolume or CreateStorediSCSIVolume API. This operation is only supported in the cached volume and stored volume types. For stored volume gateways, the local disk that was configured as the storage volume is not deleted. You can reuse the local disk to create another storage volume. Before you delete a volume, make sure there are no iSCSI connections to the volume you are deleting. You should also make sure there is no snapshot in progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to query snapshots on the volume you are deleting and check the snapshot status. For more information, go to DescribeSnapshots in the Amazon Elastic Compute Cloud API Reference. In the request, you must provide the Amazon Resource Name (ARN) of the storage volume you want to delete. public func deleteVolume(_ input: DeleteVolumeInput) throws -> DeleteVolumeOutput { return try client.send(operation: "DeleteVolume", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified virtual tape from the virtual tape shelf (VTS). This operation is only supported in the tape gateway architecture. + /// Deletes the specified virtual tape from the virtual tape shelf (VTS). This operation is only supported in the tape gateway type. public func deleteTapeArchive(_ input: DeleteTapeArchiveInput) throws -> DeleteTapeArchiveOutput { return try client.send(operation: "DeleteTapeArchive", path: "/", httpMethod: "POST", input: input) } - /// Deletes the specified virtual tape. This operation is only supported in the tape gateway architecture. + /// Deletes the specified virtual tape. This operation is only supported in the tape gateway type. public func deleteTape(_ input: DeleteTapeInput) throws -> DeleteTapeOutput { return try client.send(operation: "DeleteTape", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of virtual tape recovery points that are available for the specified tape gateway. A recovery point is a point-in-time view of a virtual tape at which all the data on the virtual tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway. This operation is only supported in the tape gateway architecture. + /// Returns a list of virtual tape recovery points that are available for the specified tape gateway. A recovery point is a point-in-time view of a virtual tape at which all the data on the virtual tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway. This operation is only supported in the tape gateway type. public func describeTapeRecoveryPoints(_ input: DescribeTapeRecoveryPointsInput) throws -> DescribeTapeRecoveryPointsOutput { return try client.send(operation: "DescribeTapeRecoveryPoints", path: "/", httpMethod: "POST", input: input) } - /// Gets a description for one or more file shares from a file gateway. This operation is only supported in file gateways. + /// Gets a description for one or more file shares from a file gateway. This operation is only supported in the file gateway type. public func describeNFSFileShares(_ input: DescribeNFSFileSharesInput) throws -> DescribeNFSFileSharesOutput { return try client.send(operation: "DescribeNFSFileShares", path: "/", httpMethod: "POST", input: input) } - /// Retrieves the recovery point for the specified virtual tape. This operation is only supported in the tape gateway architecture. A recovery point is a point in time view of a virtual tape at which all the data on the tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway. The virtual tape can be retrieved to only one gateway. The retrieved tape is read-only. The virtual tape can be retrieved to only a tape gateway. There is no charge for retrieving recovery points. + /// Retrieves the recovery point for the specified virtual tape. This operation is only supported in the tape gateway type. A recovery point is a point in time view of a virtual tape at which all the data on the tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway. The virtual tape can be retrieved to only one gateway. The retrieved tape is read-only. The virtual tape can be retrieved to only a tape gateway. There is no charge for retrieving recovery points. public func retrieveTapeRecoveryPoint(_ input: RetrieveTapeRecoveryPointInput) throws -> RetrieveTapeRecoveryPointOutput { return try client.send(operation: "RetrieveTapeRecoveryPoint", path: "/", httpMethod: "POST", input: input) } - /// Creates a cached volume on a specified cached volume gateway. This operation is only supported in the cached volume gateway architecture. Cache storage must be allocated to the gateway before you can create a cached volume. Use the AddCache operation to add cache storage to a gateway. In the request, you must specify the gateway, size of the volume in bytes, the iSCSI target name, an IP address on which to expose the target, and a unique client token. In response, the gateway creates the volume and returns information about it. This information includes the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target. Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN for this cached volume, which creates an exact copy of the existing volume’s latest recovery point. The VolumeSizeInBytes value must be equal to or larger than the size of the copied volume, in bytes. + /// Creates a cached volume on a specified cached volume gateway. This operation is only supported in the cached volume gateway type. Cache storage must be allocated to the gateway before you can create a cached volume. Use the AddCache operation to add cache storage to a gateway. In the request, you must specify the gateway, size of the volume in bytes, the iSCSI target name, an IP address on which to expose the target, and a unique client token. In response, the gateway creates the volume and returns information about it. This information includes the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target. Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN for this cached volume, which creates an exact copy of the existing volume’s latest recovery point. The VolumeSizeInBytes value must be equal to or larger than the size of the copied volume, in bytes. public func createCachediSCSIVolume(_ input: CreateCachediSCSIVolumeInput) throws -> CreateCachediSCSIVolumeOutput { return try client.send(operation: "CreateCachediSCSIVolume", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/storagegateway/Storagegateway_Shapes.swift b/Sources/AWSSDKSwift/Services/storagegateway/Storagegateway_Shapes.swift index 844a09a552f..7b9bf3b503d 100644 --- a/Sources/AWSSDKSwift/Services/storagegateway/Storagegateway_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/storagegateway/Storagegateway_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Storagegateway { public struct DeleteSnapshotScheduleOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeARN", required: false, type: .string) ] public let volumeARN: String? @@ -21,7 +21,7 @@ extension Storagegateway { } public struct DeleteTapeArchiveOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the virtual tape that was deleted from the virtual tape shelf (VTS). @@ -37,7 +37,7 @@ extension Storagegateway { } public struct ResetCacheInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -52,7 +52,7 @@ extension Storagegateway { } public struct DescribeGatewayInformationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -67,7 +67,7 @@ extension Storagegateway { } public struct SetLocalConsolePasswordInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "LocalConsolePassword", required: true, type: .string), AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] @@ -87,7 +87,7 @@ extension Storagegateway { } public struct DescribeTapesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Tapes", required: false, type: .list) ] @@ -108,7 +108,7 @@ extension Storagegateway { } public struct AddUploadBufferOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -123,7 +123,7 @@ extension Storagegateway { } public struct RetrieveTapeArchiveInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: true, type: .string), AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] @@ -144,7 +144,7 @@ extension Storagegateway { } public struct RefreshCacheOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileShareARN", required: false, type: .string) ] public let fileShareARN: String? @@ -159,7 +159,7 @@ extension Storagegateway { } public struct CreateTapeWithBarcodeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "TapeSizeInBytes", required: true, type: .long), AWSShapeMember(label: "TapeBarcode", required: true, type: .string) @@ -168,7 +168,7 @@ extension Storagegateway { public let gatewayARN: String /// The size, in bytes, of the virtual tape that you want to create. The size must be aligned by gigabyte (1024*1024*1024 byte). public let tapeSizeInBytes: Int64 - /// The barcode that you want to assign to the tape. + /// The barcode that you want to assign to the tape. Barcodes cannot be reused. This includes barcodes used for tapes that have been deleted. public let tapeBarcode: String public init(gatewayARN: String, tapeSizeInBytes: Int64, tapeBarcode: String) { @@ -185,7 +185,7 @@ extension Storagegateway { } public struct CancelArchivalInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: true, type: .string), AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] @@ -205,7 +205,7 @@ extension Storagegateway { } public struct DeleteGatewayOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -220,7 +220,7 @@ extension Storagegateway { } public struct DescribeCacheOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CacheAllocatedInBytes", required: false, type: .long), AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "CacheUsedPercentage", required: false, type: .double), @@ -259,7 +259,7 @@ extension Storagegateway { } public struct DescribeNFSFileSharesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NFSFileShareInfoList", required: false, type: .list) ] /// An array containing a description for each requested file share. @@ -275,7 +275,7 @@ extension Storagegateway { } public struct NFSFileShareDefaults: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OwnerId", required: false, type: .long), AWSShapeMember(label: "FileMode", required: false, type: .string), AWSShapeMember(label: "GroupId", required: false, type: .long), @@ -306,7 +306,7 @@ extension Storagegateway { } public struct DescribeTapesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "TapeARNs", required: false, type: .list), AWSShapeMember(label: "Limit", required: false, type: .integer), @@ -336,7 +336,7 @@ extension Storagegateway { } public struct DescribeTapeRecoveryPointsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -361,7 +361,7 @@ extension Storagegateway { } public struct CreateSnapshotFromVolumeRecoveryPointInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotDescription", required: true, type: .string), AWSShapeMember(label: "VolumeARN", required: true, type: .string) ] @@ -380,7 +380,7 @@ extension Storagegateway { } public struct AddUploadBufferInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "DiskIds", required: true, type: .list) ] @@ -399,7 +399,7 @@ extension Storagegateway { } public struct ListVolumeRecoveryPointsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -414,7 +414,7 @@ extension Storagegateway { } public struct ListTagsForResourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: true, type: .string), AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -440,7 +440,7 @@ extension Storagegateway { } public struct UpdateVTLDeviceTypeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DeviceType", required: true, type: .string), AWSShapeMember(label: "VTLDeviceARN", required: true, type: .string) ] @@ -461,7 +461,7 @@ extension Storagegateway { } public struct TapeRecoveryPointInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string), AWSShapeMember(label: "TapeRecoveryPointTime", required: false, type: .timestamp), AWSShapeMember(label: "TapeStatus", required: false, type: .string), @@ -491,7 +491,7 @@ extension Storagegateway { } public struct RetrieveTapeArchiveOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the retrieved virtual tape. @@ -507,7 +507,7 @@ extension Storagegateway { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: true, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -526,7 +526,7 @@ extension Storagegateway { } public struct AddCacheOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -541,7 +541,7 @@ extension Storagegateway { } public struct StartGatewayInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -556,7 +556,7 @@ extension Storagegateway { } public struct ListTapesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "TapeInfos", required: false, type: .list) ] @@ -576,7 +576,7 @@ extension Storagegateway { } public struct TapeInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string), AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "TapeStatus", required: false, type: .string), @@ -612,7 +612,7 @@ extension Storagegateway { } public struct UpdateGatewayInformationInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayTimezone", required: false, type: .string), AWSShapeMember(label: "GatewayName", required: false, type: .string), AWSShapeMember(label: "GatewayARN", required: true, type: .string) @@ -635,7 +635,7 @@ extension Storagegateway { } public struct UpdateMaintenanceStartTimeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "HourOfDay", required: true, type: .integer), AWSShapeMember(label: "MinuteOfHour", required: true, type: .integer), @@ -665,7 +665,7 @@ extension Storagegateway { } public struct DeleteVolumeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeARN", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes. @@ -681,7 +681,7 @@ extension Storagegateway { } public struct DescribeSnapshotScheduleInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeARN", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes. @@ -697,7 +697,7 @@ extension Storagegateway { } public struct RemoveTagsFromResourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -718,7 +718,7 @@ extension Storagegateway { } public struct DescribeWorkingStorageInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -733,7 +733,7 @@ extension Storagegateway { } public struct DescribeWorkingStorageOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DiskIds", required: false, type: .list), AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "WorkingStorageUsedInBytes", required: false, type: .long), @@ -763,7 +763,7 @@ extension Storagegateway { } public struct DeleteTapeArchiveInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual tape shelf (VTS). @@ -779,7 +779,7 @@ extension Storagegateway { } public struct Disk: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DiskStatus", required: false, type: .string), AWSShapeMember(label: "DiskSizeInBytes", required: false, type: .long), AWSShapeMember(label: "DiskId", required: false, type: .string), @@ -818,7 +818,7 @@ extension Storagegateway { } public struct UpdateVTLDeviceTypeOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VTLDeviceARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the medium changer you have selected. @@ -834,7 +834,7 @@ extension Storagegateway { } public struct UpdateChapCredentialsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetARN", required: false, type: .string), AWSShapeMember(label: "InitiatorName", required: false, type: .string) ] @@ -855,7 +855,7 @@ extension Storagegateway { } public struct ActivateGatewayInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ActivationKey", required: true, type: .string), AWSShapeMember(label: "GatewayType", required: false, type: .string), AWSShapeMember(label: "MediumChangerType", required: false, type: .string), @@ -901,7 +901,8 @@ extension Storagegateway { } public struct NFSFileShareInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GuessMIMETypeEnabled", required: false, type: .boolean), AWSShapeMember(label: "Path", required: false, type: .string), AWSShapeMember(label: "FileShareId", required: false, type: .string), AWSShapeMember(label: "NFSFileShareDefaults", required: false, type: .structure), @@ -917,6 +918,8 @@ extension Storagegateway { AWSShapeMember(label: "Squash", required: false, type: .string), AWSShapeMember(label: "KMSEncrypted", required: false, type: .boolean) ] + /// Enables guessing of the MIME type for uploaded objects based on file extensions: "true" to enable MIME type guessing, and otherwise "false". + public let guessMIMETypeEnabled: Bool? public let path: String? public let fileShareId: String? public let nFSFileShareDefaults: NFSFileShareDefaults? @@ -934,7 +937,8 @@ extension Storagegateway { /// True to use Amazon S3 server side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. public let kMSEncrypted: Bool? - public init(path: String? = nil, fileShareId: String? = nil, nFSFileShareDefaults: NFSFileShareDefaults? = nil, fileShareARN: String? = nil, locationARN: String? = nil, defaultStorageClass: String? = nil, fileShareStatus: String? = nil, gatewayARN: String? = nil, kMSKey: String? = nil, role: String? = nil, readOnly: Bool? = nil, clientList: [String]? = nil, squash: String? = nil, kMSEncrypted: Bool? = nil) { + public init(guessMIMETypeEnabled: Bool? = nil, path: String? = nil, fileShareId: String? = nil, nFSFileShareDefaults: NFSFileShareDefaults? = nil, fileShareARN: String? = nil, locationARN: String? = nil, defaultStorageClass: String? = nil, fileShareStatus: String? = nil, gatewayARN: String? = nil, kMSKey: String? = nil, role: String? = nil, readOnly: Bool? = nil, clientList: [String]? = nil, squash: String? = nil, kMSEncrypted: Bool? = nil) { + self.guessMIMETypeEnabled = guessMIMETypeEnabled self.path = path self.fileShareId = fileShareId self.nFSFileShareDefaults = nFSFileShareDefaults @@ -952,6 +956,7 @@ extension Storagegateway { } private enum CodingKeys: String, CodingKey { + case guessMIMETypeEnabled = "GuessMIMETypeEnabled" case path = "Path" case fileShareId = "FileShareId" case nFSFileShareDefaults = "NFSFileShareDefaults" @@ -970,7 +975,7 @@ extension Storagegateway { } public struct AddTagsToResourceInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: true, type: .string), AWSShapeMember(label: "Tags", required: true, type: .list) ] @@ -991,7 +996,7 @@ extension Storagegateway { } public struct UpdateMaintenanceStartTimeOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -1006,7 +1011,7 @@ extension Storagegateway { } public struct UpdateGatewaySoftwareNowOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -1021,7 +1026,7 @@ extension Storagegateway { } public struct CancelArchivalOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the virtual tape for which archiving was canceled. @@ -1037,7 +1042,7 @@ extension Storagegateway { } public struct NetworkInterface: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Ipv6Address", required: false, type: .string), AWSShapeMember(label: "MacAddress", required: false, type: .string), AWSShapeMember(label: "Ipv4Address", required: false, type: .string) @@ -1063,7 +1068,7 @@ extension Storagegateway { } public struct DeviceiSCSIAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetARN", required: false, type: .string), AWSShapeMember(label: "ChapEnabled", required: false, type: .boolean), AWSShapeMember(label: "NetworkInterfaceId", required: false, type: .string), @@ -1094,7 +1099,7 @@ extension Storagegateway { } public struct CancelRetrievalInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: true, type: .string), AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] @@ -1114,7 +1119,7 @@ extension Storagegateway { } public struct ResetCacheOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -1129,7 +1134,7 @@ extension Storagegateway { } public struct DescribeCachediSCSIVolumesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeARNs", required: true, type: .list) ] public let volumeARNs: [String] @@ -1144,7 +1149,7 @@ extension Storagegateway { } public struct TapeArchive: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string), AWSShapeMember(label: "CompletionTime", required: false, type: .timestamp), AWSShapeMember(label: "TapeCreatedDate", required: false, type: .timestamp), @@ -1161,7 +1166,7 @@ extension Storagegateway { public let tapeCreatedDate: TimeStamp? /// The barcode that identifies the archived virtual tape. public let tapeBarcode: String? - /// The size, in bytes, of data written to the virtual tape. This value is not available for tapes created prior to May,13 2015. + /// The size, in bytes, of data stored on the virtual tape. This value is not available for tapes created prior to May 13, 2015. public let tapeUsedInBytes: Int64? /// The Amazon Resource Name (ARN) of the tape gateway that the virtual tape is being retrieved to. The virtual tape is retrieved from the virtual tape shelf (VTS). public let retrievedTo: String? @@ -1194,7 +1199,7 @@ extension Storagegateway { } public struct ListTapesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "TapeARNs", required: false, type: .list), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -1219,7 +1224,7 @@ extension Storagegateway { } public struct ListVolumeInitiatorsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeARN", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes for the gateway. @@ -1235,7 +1240,7 @@ extension Storagegateway { } public struct CreateSnapshotOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .string), AWSShapeMember(label: "VolumeARN", required: false, type: .string) ] @@ -1256,9 +1261,10 @@ extension Storagegateway { } public struct CreateNFSFileShareInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "ClientToken", required: true, type: .string), + AWSShapeMember(label: "GuessMIMETypeEnabled", required: false, type: .boolean), AWSShapeMember(label: "KMSKey", required: false, type: .string), AWSShapeMember(label: "Role", required: true, type: .string), AWSShapeMember(label: "ReadOnly", required: false, type: .boolean), @@ -1273,6 +1279,8 @@ extension Storagegateway { public let gatewayARN: String /// A unique string value that you supply that is used by file gateway to ensure idempotent file share creation. public let clientToken: String + /// Enables guessing of the MIME type for uploaded objects based on file extensions: "true" to enable MIME type guessing, and otherwise "false". + public let guessMIMETypeEnabled: Bool? /// The KMS key used for Amazon S3 server side encryption. This value can only be set when KmsEncrypted is true. Optional. public let kMSKey: String? /// The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage. @@ -1292,9 +1300,10 @@ extension Storagegateway { /// True to use Amazon S3 server side encryption with your own AWS KMS key, or false to use a key managed by Amazon S3. Optional. public let kMSEncrypted: Bool? - public init(gatewayARN: String, clientToken: String, kMSKey: String? = nil, role: String, readOnly: Bool? = nil, nFSFileShareDefaults: NFSFileShareDefaults? = nil, clientList: [String]? = nil, squash: String? = nil, locationARN: String, defaultStorageClass: String? = nil, kMSEncrypted: Bool? = nil) { + public init(gatewayARN: String, clientToken: String, guessMIMETypeEnabled: Bool? = nil, kMSKey: String? = nil, role: String, readOnly: Bool? = nil, nFSFileShareDefaults: NFSFileShareDefaults? = nil, clientList: [String]? = nil, squash: String? = nil, locationARN: String, defaultStorageClass: String? = nil, kMSEncrypted: Bool? = nil) { self.gatewayARN = gatewayARN self.clientToken = clientToken + self.guessMIMETypeEnabled = guessMIMETypeEnabled self.kMSKey = kMSKey self.role = role self.readOnly = readOnly @@ -1309,6 +1318,7 @@ extension Storagegateway { private enum CodingKeys: String, CodingKey { case gatewayARN = "GatewayARN" case clientToken = "ClientToken" + case guessMIMETypeEnabled = "GuessMIMETypeEnabled" case kMSKey = "KMSKey" case role = "Role" case readOnly = "ReadOnly" @@ -1322,7 +1332,7 @@ extension Storagegateway { } public struct ListTagsForResourceOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string) @@ -1348,7 +1358,7 @@ extension Storagegateway { } public struct CreateCachediSCSIVolumeOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetARN", required: false, type: .string), AWSShapeMember(label: "VolumeARN", required: false, type: .string) ] @@ -1367,7 +1377,7 @@ extension Storagegateway { } public struct ListVolumesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -1392,7 +1402,7 @@ extension Storagegateway { } public struct RemoveTagsFromResourceOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the resource that the tags were removed from. @@ -1408,7 +1418,7 @@ extension Storagegateway { } public struct UpdateChapCredentialsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetARN", required: true, type: .string), AWSShapeMember(label: "SecretToAuthenticateTarget", required: false, type: .string), AWSShapeMember(label: "SecretToAuthenticateInitiator", required: true, type: .string), @@ -1439,7 +1449,7 @@ extension Storagegateway { } public struct CreateNFSFileShareOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileShareARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the newly created file share. @@ -1455,7 +1465,7 @@ extension Storagegateway { } public struct DeleteVolumeOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the storage volume that was deleted. It is the same ARN you provided in the request. @@ -1471,7 +1481,7 @@ extension Storagegateway { } public struct RetrieveTapeRecoveryPointInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: true, type: .string), AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] @@ -1491,7 +1501,7 @@ extension Storagegateway { } public struct DescribeBandwidthRateLimitOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AverageDownloadRateLimitInBitsPerSec", required: false, type: .long), AWSShapeMember(label: "AverageUploadRateLimitInBitsPerSec", required: false, type: .long), AWSShapeMember(label: "GatewayARN", required: false, type: .string) @@ -1516,7 +1526,7 @@ extension Storagegateway { } public struct SetLocalConsolePasswordOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -1531,7 +1541,7 @@ extension Storagegateway { } public struct UpdateSnapshotScheduleOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeARN", required: false, type: .string) ] public let volumeARN: String? @@ -1546,7 +1556,7 @@ extension Storagegateway { } public struct DescribeChapCredentialsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChapCredentials", required: false, type: .list) ] /// An array of ChapInfo objects that represent CHAP credentials. Each object in the array contains CHAP credential information for one target-initiator pair. If no CHAP credentials are set, an empty array is returned. CHAP credential information is provided in a JSON object with the following fields: InitiatorName: The iSCSI initiator that connects to the target. SecretToAuthenticateInitiator: The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target. SecretToAuthenticateTarget: The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client). TargetARN: The Amazon Resource Name (ARN) of the storage volume. @@ -1562,7 +1572,8 @@ extension Storagegateway { } public struct UpdateNFSFileShareInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GuessMIMETypeEnabled", required: false, type: .boolean), AWSShapeMember(label: "KMSKey", required: false, type: .string), AWSShapeMember(label: "ReadOnly", required: false, type: .boolean), AWSShapeMember(label: "NFSFileShareDefaults", required: false, type: .structure), @@ -1572,9 +1583,11 @@ extension Storagegateway { AWSShapeMember(label: "DefaultStorageClass", required: false, type: .string), AWSShapeMember(label: "KMSEncrypted", required: false, type: .boolean) ] + /// Enables guessing of the MIME type for uploaded objects based on file extensions: "true" to enable MIME type guessing, and otherwise "false". + public let guessMIMETypeEnabled: Bool? /// The KMS key used for Amazon S3 server side encryption. This value can only be set when KmsEncrypted is true. Optional. public let kMSKey: String? - /// Sets the write status of a file share: "true" if the write status is read-only, and otherwise "false". + /// Sets the write status of a file share: "true" if the write status is read-only, otherwise "false". public let readOnly: Bool? /// The default values for the file share. Optional. public let nFSFileShareDefaults: NFSFileShareDefaults? @@ -1589,7 +1602,8 @@ extension Storagegateway { /// True to use Amazon S3 server side encryption with your own AWS KMS key, or false to use a key managed by Amazon S3. Optional. public let kMSEncrypted: Bool? - public init(kMSKey: String? = nil, readOnly: Bool? = nil, nFSFileShareDefaults: NFSFileShareDefaults? = nil, clientList: [String]? = nil, squash: String? = nil, fileShareARN: String, defaultStorageClass: String? = nil, kMSEncrypted: Bool? = nil) { + public init(guessMIMETypeEnabled: Bool? = nil, kMSKey: String? = nil, readOnly: Bool? = nil, nFSFileShareDefaults: NFSFileShareDefaults? = nil, clientList: [String]? = nil, squash: String? = nil, fileShareARN: String, defaultStorageClass: String? = nil, kMSEncrypted: Bool? = nil) { + self.guessMIMETypeEnabled = guessMIMETypeEnabled self.kMSKey = kMSKey self.readOnly = readOnly self.nFSFileShareDefaults = nFSFileShareDefaults @@ -1601,6 +1615,7 @@ extension Storagegateway { } private enum CodingKeys: String, CodingKey { + case guessMIMETypeEnabled = "GuessMIMETypeEnabled" case kMSKey = "KMSKey" case readOnly = "ReadOnly" case nFSFileShareDefaults = "NFSFileShareDefaults" @@ -1613,7 +1628,7 @@ extension Storagegateway { } public struct ListLocalDisksOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Disks", required: false, type: .list), AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] @@ -1632,7 +1647,7 @@ extension Storagegateway { } public struct DeleteBandwidthRateLimitOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -1647,7 +1662,7 @@ extension Storagegateway { } public struct DeleteBandwidthRateLimitInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BandwidthType", required: true, type: .string), AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] @@ -1667,7 +1682,7 @@ extension Storagegateway { } public struct DeleteTapeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: true, type: .string), AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] @@ -1688,7 +1703,7 @@ extension Storagegateway { } public struct UpdateBandwidthRateLimitOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -1702,8 +1717,27 @@ extension Storagegateway { } } + public struct NotifyWhenUploadedOutput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FileShareARN", required: false, type: .string), + AWSShapeMember(label: "NotificationId", required: false, type: .string) + ] + public let fileShareARN: String? + public let notificationId: String? + + public init(fileShareARN: String? = nil, notificationId: String? = nil) { + self.fileShareARN = fileShareARN + self.notificationId = notificationId + } + + private enum CodingKeys: String, CodingKey { + case fileShareARN = "FileShareARN" + case notificationId = "NotificationId" + } + } + public struct VTLDevice: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VTLDeviceVendor", required: false, type: .string), AWSShapeMember(label: "VTLDeviceType", required: false, type: .string), AWSShapeMember(label: "VTLDeviceARN", required: false, type: .string), @@ -1735,8 +1769,29 @@ extension Storagegateway { } } + public struct CreateSnapshotInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SnapshotDescription", required: true, type: .string), + AWSShapeMember(label: "VolumeARN", required: true, type: .string) + ] + /// Textual description of the snapshot that appears in the Amazon EC2 console, Elastic Block Store snapshots panel in the Description field, and in the AWS Storage Gateway snapshot Details pane, Description field + public let snapshotDescription: String + /// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes. + public let volumeARN: String + + public init(snapshotDescription: String, volumeARN: String) { + self.snapshotDescription = snapshotDescription + self.volumeARN = volumeARN + } + + private enum CodingKeys: String, CodingKey { + case snapshotDescription = "SnapshotDescription" + case volumeARN = "VolumeARN" + } + } + public struct GatewayInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "GatewayType", required: false, type: .string), AWSShapeMember(label: "GatewayOperationalState", required: false, type: .string), @@ -1771,29 +1826,8 @@ extension Storagegateway { } } - public struct CreateSnapshotInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SnapshotDescription", required: true, type: .string), - AWSShapeMember(label: "VolumeARN", required: true, type: .string) - ] - /// Textual description of the snapshot that appears in the Amazon EC2 console, Elastic Block Store snapshots panel in the Description field, and in the AWS Storage Gateway snapshot Details pane, Description field - public let snapshotDescription: String - /// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes. - public let volumeARN: String - - public init(snapshotDescription: String, volumeARN: String) { - self.snapshotDescription = snapshotDescription - self.volumeARN = volumeARN - } - - private enum CodingKeys: String, CodingKey { - case snapshotDescription = "SnapshotDescription" - case volumeARN = "VolumeARN" - } - } - public struct UpdateBandwidthRateLimitInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AverageDownloadRateLimitInBitsPerSec", required: false, type: .long), AWSShapeMember(label: "AverageUploadRateLimitInBitsPerSec", required: false, type: .long), AWSShapeMember(label: "GatewayARN", required: true, type: .string) @@ -1818,7 +1852,7 @@ extension Storagegateway { } public struct DescribeMaintenanceStartTimeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -1833,7 +1867,7 @@ extension Storagegateway { } public struct StartGatewayOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -1848,7 +1882,7 @@ extension Storagegateway { } public struct ListFileSharesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -1874,7 +1908,7 @@ extension Storagegateway { } public struct ActivateGatewayOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -1889,7 +1923,7 @@ extension Storagegateway { } public struct VolumeRecoveryPointInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeRecoveryPointTime", required: false, type: .string), AWSShapeMember(label: "VolumeARN", required: false, type: .string), AWSShapeMember(label: "VolumeUsageInBytes", required: false, type: .long), @@ -1916,7 +1950,7 @@ extension Storagegateway { } public struct DescribeTapeArchivesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeArchives", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string) ] @@ -1937,23 +1971,24 @@ extension Storagegateway { } public struct StorediSCSIVolume: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "VolumeDiskId", required: false, type: .string), AWSShapeMember(label: "VolumeiSCSIAttributes", required: false, type: .structure), - AWSShapeMember(label: "SourceSnapshotId", required: false, type: .string), AWSShapeMember(label: "VolumeType", required: false, type: .string), AWSShapeMember(label: "VolumeStatus", required: false, type: .string), AWSShapeMember(label: "VolumeId", required: false, type: .string), AWSShapeMember(label: "VolumeSizeInBytes", required: false, type: .long), + AWSShapeMember(label: "VolumeUsedInBytes", required: false, type: .long), AWSShapeMember(label: "PreservedExistingData", required: false, type: .boolean), - AWSShapeMember(label: "CreatedDate", required: false, type: .timestamp), AWSShapeMember(label: "VolumeARN", required: false, type: .string), + AWSShapeMember(label: "CreatedDate", required: false, type: .timestamp), AWSShapeMember(label: "VolumeProgress", required: false, type: .double), - AWSShapeMember(label: "VolumeDiskId", required: false, type: .string) + AWSShapeMember(label: "SourceSnapshotId", required: false, type: .string) ] + /// The ID of the local disk that was specified in the CreateStorediSCSIVolume operation. + public let volumeDiskId: String? /// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes for one stored volume. public let volumeiSCSIAttributes: VolumeiSCSIAttributes? - /// If the stored volume was created from a snapshot, this field contains the snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included. - public let sourceSnapshotId: String? /// One of the VolumeType enumeration values describing the type of the volume. public let volumeType: String? /// One of the VolumeStatus values that indicates the state of the storage volume. @@ -1962,48 +1997,52 @@ extension Storagegateway { public let volumeId: String? /// The size of the volume in bytes. public let volumeSizeInBytes: Int64? + /// The size of the data stored on the volume in bytes. This value is not available for volumes created prior to May 13, 2015, until you store data on the volume. + public let volumeUsedInBytes: Int64? /// Indicates if when the stored volume was created, existing data on the underlying local disk was preserved. Valid Values: true, false public let preservedExistingData: Bool? - /// The date the volume was created. Volumes created prior to March 28, 2017 don’t have this time stamp. - public let createdDate: TimeStamp? /// The Amazon Resource Name (ARN) of the storage volume. public let volumeARN: String? + /// The date the volume was created. Volumes created prior to March 28, 2017 don’t have this time stamp. + public let createdDate: TimeStamp? /// Represents the percentage complete if the volume is restoring or bootstrapping that represents the percent of data transferred. This field does not appear in the response if the stored volume is not restoring or bootstrapping. public let volumeProgress: Double? - /// The ID of the local disk that was specified in the CreateStorediSCSIVolume operation. - public let volumeDiskId: String? + /// If the stored volume was created from a snapshot, this field contains the snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included. + public let sourceSnapshotId: String? - public init(volumeiSCSIAttributes: VolumeiSCSIAttributes? = nil, sourceSnapshotId: String? = nil, volumeType: String? = nil, volumeStatus: String? = nil, volumeId: String? = nil, volumeSizeInBytes: Int64? = nil, preservedExistingData: Bool? = nil, createdDate: TimeStamp? = nil, volumeARN: String? = nil, volumeProgress: Double? = nil, volumeDiskId: String? = nil) { + public init(volumeDiskId: String? = nil, volumeiSCSIAttributes: VolumeiSCSIAttributes? = nil, volumeType: String? = nil, volumeStatus: String? = nil, volumeId: String? = nil, volumeSizeInBytes: Int64? = nil, volumeUsedInBytes: Int64? = nil, preservedExistingData: Bool? = nil, volumeARN: String? = nil, createdDate: TimeStamp? = nil, volumeProgress: Double? = nil, sourceSnapshotId: String? = nil) { + self.volumeDiskId = volumeDiskId self.volumeiSCSIAttributes = volumeiSCSIAttributes - self.sourceSnapshotId = sourceSnapshotId self.volumeType = volumeType self.volumeStatus = volumeStatus self.volumeId = volumeId self.volumeSizeInBytes = volumeSizeInBytes + self.volumeUsedInBytes = volumeUsedInBytes self.preservedExistingData = preservedExistingData - self.createdDate = createdDate self.volumeARN = volumeARN + self.createdDate = createdDate self.volumeProgress = volumeProgress - self.volumeDiskId = volumeDiskId + self.sourceSnapshotId = sourceSnapshotId } private enum CodingKeys: String, CodingKey { + case volumeDiskId = "VolumeDiskId" case volumeiSCSIAttributes = "VolumeiSCSIAttributes" - case sourceSnapshotId = "SourceSnapshotId" case volumeType = "VolumeType" case volumeStatus = "VolumeStatus" case volumeId = "VolumeId" case volumeSizeInBytes = "VolumeSizeInBytes" + case volumeUsedInBytes = "VolumeUsedInBytes" case preservedExistingData = "PreservedExistingData" - case createdDate = "CreatedDate" case volumeARN = "VolumeARN" + case createdDate = "CreatedDate" case volumeProgress = "VolumeProgress" - case volumeDiskId = "VolumeDiskId" + case sourceSnapshotId = "SourceSnapshotId" } } public struct CreateTapesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NumTapesToCreate", required: true, type: .integer), AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "ClientToken", required: true, type: .string), @@ -2039,12 +2078,13 @@ extension Storagegateway { } public struct CachediSCSIVolume: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SourceSnapshotId", required: false, type: .string), AWSShapeMember(label: "VolumeType", required: false, type: .string), AWSShapeMember(label: "VolumeStatus", required: false, type: .string), AWSShapeMember(label: "VolumeId", required: false, type: .string), AWSShapeMember(label: "VolumeSizeInBytes", required: false, type: .long), + AWSShapeMember(label: "VolumeUsedInBytes", required: false, type: .long), AWSShapeMember(label: "VolumeARN", required: false, type: .string), AWSShapeMember(label: "VolumeProgress", required: false, type: .double), AWSShapeMember(label: "VolumeiSCSIAttributes", required: false, type: .structure), @@ -2058,8 +2098,10 @@ extension Storagegateway { public let volumeStatus: String? /// The unique identifier of the volume, e.g. vol-AE4B946D. public let volumeId: String? - /// The size of the volume in bytes. + /// The size, in bytes, of the volume capacity. public let volumeSizeInBytes: Int64? + /// The size of the data stored on the volume in bytes. This value is not available for volumes created prior to May 13, 2015, until you store data on the volume. + public let volumeUsedInBytes: Int64? /// The Amazon Resource Name (ARN) of the storage volume. public let volumeARN: String? /// Represents the percentage complete if the volume is restoring or bootstrapping that represents the percent of data transferred. This field does not appear in the response if the cached volume is not restoring or bootstrapping. @@ -2069,12 +2111,13 @@ extension Storagegateway { /// The date the volume was created. Volumes created prior to March 28, 2017 don’t have this time stamp. public let createdDate: TimeStamp? - public init(sourceSnapshotId: String? = nil, volumeType: String? = nil, volumeStatus: String? = nil, volumeId: String? = nil, volumeSizeInBytes: Int64? = nil, volumeARN: String? = nil, volumeProgress: Double? = nil, volumeiSCSIAttributes: VolumeiSCSIAttributes? = nil, createdDate: TimeStamp? = nil) { + public init(sourceSnapshotId: String? = nil, volumeType: String? = nil, volumeStatus: String? = nil, volumeId: String? = nil, volumeSizeInBytes: Int64? = nil, volumeUsedInBytes: Int64? = nil, volumeARN: String? = nil, volumeProgress: Double? = nil, volumeiSCSIAttributes: VolumeiSCSIAttributes? = nil, createdDate: TimeStamp? = nil) { self.sourceSnapshotId = sourceSnapshotId self.volumeType = volumeType self.volumeStatus = volumeStatus self.volumeId = volumeId self.volumeSizeInBytes = volumeSizeInBytes + self.volumeUsedInBytes = volumeUsedInBytes self.volumeARN = volumeARN self.volumeProgress = volumeProgress self.volumeiSCSIAttributes = volumeiSCSIAttributes @@ -2087,6 +2130,7 @@ extension Storagegateway { case volumeStatus = "VolumeStatus" case volumeId = "VolumeId" case volumeSizeInBytes = "VolumeSizeInBytes" + case volumeUsedInBytes = "VolumeUsedInBytes" case volumeARN = "VolumeARN" case volumeProgress = "VolumeProgress" case volumeiSCSIAttributes = "VolumeiSCSIAttributes" @@ -2095,7 +2139,7 @@ extension Storagegateway { } public struct AddTagsToResourceOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the resource you want to add tags to. @@ -2111,7 +2155,7 @@ extension Storagegateway { } public struct DescribeChapCredentialsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetARN", required: true, type: .string) ] /// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN for specified VolumeARN. @@ -2127,7 +2171,7 @@ extension Storagegateway { } public struct DeleteGatewayInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -2142,7 +2186,7 @@ extension Storagegateway { } public struct DeleteFileShareOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileShareARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the deleted file share. @@ -2158,7 +2202,7 @@ extension Storagegateway { } public struct Tape: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string), AWSShapeMember(label: "VTLDevice", required: false, type: .string), AWSShapeMember(label: "Progress", required: false, type: .double), @@ -2178,7 +2222,7 @@ extension Storagegateway { public let tapeCreatedDate: TimeStamp? /// The barcode that identifies a specific virtual tape. public let tapeBarcode: String? - /// The size, in bytes, of data written to the virtual tape. This value is not available for tapes created prior to May,13 2015. + /// The size, in bytes, of data stored on the virtual tape. This value is not available for tapes created prior to May 13, 2015. public let tapeUsedInBytes: Int64? /// The current state of the virtual tape. public let tapeStatus: String? @@ -2209,7 +2253,7 @@ extension Storagegateway { } public struct DeleteTapeOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the deleted virtual tape. @@ -2225,7 +2269,7 @@ extension Storagegateway { } public struct DescribeStorediSCSIVolumesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeARNs", required: true, type: .list) ] /// An array of strings where each string represents the Amazon Resource Name (ARN) of a stored volume. All of the specified stored volumes must from the same gateway. Use ListVolumes to get volume ARNs for a gateway. @@ -2241,7 +2285,7 @@ extension Storagegateway { } public struct DescribeTapeArchivesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "TapeARNs", required: false, type: .list), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -2267,7 +2311,7 @@ extension Storagegateway { } public struct UpdateGatewaySoftwareNowInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -2282,7 +2326,7 @@ extension Storagegateway { } public struct CreateTapeWithBarcodeOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string) ] /// A unique Amazon Resource Name (ARN) that represents the virtual tape that was created. @@ -2298,7 +2342,7 @@ extension Storagegateway { } public struct AddWorkingStorageInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "DiskIds", required: true, type: .list) ] @@ -2317,8 +2361,23 @@ extension Storagegateway { } } + public struct NotifyWhenUploadedInput: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FileShareARN", required: true, type: .string) + ] + public let fileShareARN: String + + public init(fileShareARN: String) { + self.fileShareARN = fileShareARN + } + + private enum CodingKeys: String, CodingKey { + case fileShareARN = "FileShareARN" + } + } + public struct DeleteChapCredentialsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetARN", required: true, type: .string), AWSShapeMember(label: "InitiatorName", required: true, type: .string) ] @@ -2404,7 +2463,7 @@ extension Storagegateway { } public struct DescribeNFSFileSharesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileShareARNList", required: true, type: .list) ] /// An array containing the Amazon Resource Name (ARN) of each file share to be described. @@ -2420,7 +2479,7 @@ extension Storagegateway { } public struct DescribeStorediSCSIVolumesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StorediSCSIVolumes", required: false, type: .list) ] public let storediSCSIVolumes: [StorediSCSIVolume]? @@ -2435,7 +2494,7 @@ extension Storagegateway { } public struct DescribeUploadBufferOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "UploadBufferUsedInBytes", required: false, type: .long), AWSShapeMember(label: "UploadBufferAllocatedInBytes", required: false, type: .long), @@ -2462,7 +2521,7 @@ extension Storagegateway { } public struct UpdateNFSFileShareOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileShareARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the updated file share. @@ -2478,7 +2537,7 @@ extension Storagegateway { } public struct ListVolumesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "VolumeInfos", required: false, type: .list) @@ -2501,7 +2560,7 @@ extension Storagegateway { } public struct DescribeCachediSCSIVolumesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "CachediSCSIVolumes", required: false, type: .list) ] /// An array of objects where each object contains metadata about one cached volume. @@ -2517,7 +2576,7 @@ extension Storagegateway { } public struct DeleteSnapshotScheduleInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeARN", required: true, type: .string) ] public let volumeARN: String @@ -2532,7 +2591,7 @@ extension Storagegateway { } public struct CreateTapesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARNs", required: false, type: .list) ] /// A list of unique Amazon Resource Names (ARNs) that represents the virtual tapes that were created. @@ -2548,7 +2607,7 @@ extension Storagegateway { } public struct CreateStorediSCSIVolumeOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetARN", required: false, type: .string), AWSShapeMember(label: "VolumeARN", required: false, type: .string), AWSShapeMember(label: "VolumeSizeInBytes", required: false, type: .long) @@ -2574,7 +2633,7 @@ extension Storagegateway { } public struct ListLocalDisksInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -2589,7 +2648,7 @@ extension Storagegateway { } public struct CreateSnapshotFromVolumeRecoveryPointOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeARN", required: false, type: .string), AWSShapeMember(label: "VolumeRecoveryPointTime", required: false, type: .string), AWSShapeMember(label: "SnapshotId", required: false, type: .string) @@ -2612,7 +2671,7 @@ extension Storagegateway { } public struct DescribeGatewayInformationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayState", required: false, type: .string), AWSShapeMember(label: "GatewayType", required: false, type: .string), AWSShapeMember(label: "GatewayARN", required: false, type: .string), @@ -2667,7 +2726,7 @@ extension Storagegateway { } public struct FileShareInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileShareId", required: false, type: .string), AWSShapeMember(label: "FileShareStatus", required: false, type: .string), AWSShapeMember(label: "FileShareARN", required: false, type: .string), @@ -2694,7 +2753,7 @@ extension Storagegateway { } public struct UpdateSnapshotScheduleInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RecurrenceInHours", required: true, type: .integer), AWSShapeMember(label: "StartAt", required: true, type: .integer), AWSShapeMember(label: "VolumeARN", required: true, type: .string), @@ -2725,7 +2784,7 @@ extension Storagegateway { } public struct DescribeVTLDevicesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "VTLDevices", required: false, type: .list), AWSShapeMember(label: "GatewayARN", required: false, type: .string) @@ -2750,7 +2809,7 @@ extension Storagegateway { } public struct DeleteChapCredentialsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetARN", required: false, type: .string), AWSShapeMember(label: "InitiatorName", required: false, type: .string) ] @@ -2771,7 +2830,7 @@ extension Storagegateway { } public struct UpdateGatewayInformationOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "GatewayName", required: false, type: .string) ] @@ -2790,7 +2849,7 @@ extension Storagegateway { } public struct DescribeMaintenanceStartTimeOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "HourOfDay", required: false, type: .integer), AWSShapeMember(label: "MinuteOfHour", required: false, type: .integer), @@ -2824,7 +2883,7 @@ extension Storagegateway { } public struct DescribeSnapshotScheduleOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartAt", required: false, type: .integer), AWSShapeMember(label: "RecurrenceInHours", required: false, type: .integer), AWSShapeMember(label: "VolumeARN", required: false, type: .string), @@ -2855,23 +2914,28 @@ extension Storagegateway { } public struct DeleteFileShareInput: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "FileShareARN", required: true, type: .string) + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "FileShareARN", required: true, type: .string), + AWSShapeMember(label: "ForceDelete", required: false, type: .boolean) ] /// The Amazon Resource Name (ARN) of the file share to be deleted. public let fileShareARN: String + /// If this value is set to true, the operation deletes a file share immediately and aborts all data uploads to AWS. Otherwise, the file share is not deleted until all data is uploaded to AWS. This process aborts the data upload process, and the file share enters the FORCE_DELETING status. + public let forceDelete: Bool? - public init(fileShareARN: String) { + public init(fileShareARN: String, forceDelete: Bool? = nil) { self.fileShareARN = fileShareARN + self.forceDelete = forceDelete } private enum CodingKeys: String, CodingKey { case fileShareARN = "FileShareARN" + case forceDelete = "ForceDelete" } } public struct DescribeTapeRecoveryPointsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "TapeRecoveryPointInfos", required: false, type: .list) @@ -2896,7 +2960,7 @@ extension Storagegateway { } public struct DescribeCacheInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -2911,7 +2975,7 @@ extension Storagegateway { } public struct RefreshCacheInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FileShareARN", required: true, type: .string) ] public let fileShareARN: String @@ -2926,7 +2990,7 @@ extension Storagegateway { } public struct ShutdownGatewayOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -2941,7 +3005,7 @@ extension Storagegateway { } public struct ListFileSharesOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "FileShareInfoList", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) @@ -2967,7 +3031,7 @@ extension Storagegateway { } public struct DisableGatewayInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -2982,7 +3046,7 @@ extension Storagegateway { } public struct DescribeVTLDevicesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "Marker", required: false, type: .string), @@ -3012,7 +3076,7 @@ extension Storagegateway { } public struct VolumeiSCSIAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetARN", required: false, type: .string), AWSShapeMember(label: "ChapEnabled", required: false, type: .boolean), AWSShapeMember(label: "NetworkInterfaceId", required: false, type: .string), @@ -3048,7 +3112,7 @@ extension Storagegateway { } public struct ListVolumeRecoveryPointsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "VolumeRecoveryPointInfos", required: false, type: .list) ] @@ -3067,7 +3131,7 @@ extension Storagegateway { } public struct ListGatewaysInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) ] @@ -3088,7 +3152,7 @@ extension Storagegateway { } public struct CreateStorediSCSIVolumeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SnapshotId", required: false, type: .string), AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "PreserveExistingData", required: true, type: .boolean), @@ -3105,7 +3169,7 @@ extension Storagegateway { public let networkInterfaceId: String /// The unique identifier for the gateway local disk that is configured as a stored volume. Use ListLocalDisks to list disk IDs for a gateway. public let diskId: String - /// The name of the iSCSI target used by initiators to connect to the target and as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes of a gateway. + /// The name of the iSCSI target used by initiators to connect to the target and as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes of a gateway. public let targetName: String public init(snapshotId: String? = nil, gatewayARN: String, preserveExistingData: Bool, networkInterfaceId: String, diskId: String, targetName: String) { @@ -3128,7 +3192,7 @@ extension Storagegateway { } public struct ChapInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TargetARN", required: false, type: .string), AWSShapeMember(label: "SecretToAuthenticateTarget", required: false, type: .string), AWSShapeMember(label: "SecretToAuthenticateInitiator", required: false, type: .string), @@ -3159,7 +3223,7 @@ extension Storagegateway { } public struct StorageGatewayError: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "errorCode", required: false, type: .enum), AWSShapeMember(label: "errorDetails", required: false, type: .map) ] @@ -3180,7 +3244,7 @@ extension Storagegateway { } public struct VolumeInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VolumeSizeInBytes", required: false, type: .long), AWSShapeMember(label: "GatewayARN", required: false, type: .string), AWSShapeMember(label: "VolumeType", required: false, type: .string), @@ -3192,7 +3256,7 @@ extension Storagegateway { public let volumeSizeInBytes: Int64? public let gatewayARN: String? public let volumeType: String? - /// The Amazon Resource Name (ARN) for the storage volume. For example, the following is a valid ARN: arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-). + /// The Amazon Resource Name (ARN) for the storage volume. For example, the following is a valid ARN: arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-). public let volumeARN: String? /// The unique identifier assigned to the volume. This ID becomes part of the volume Amazon Resource Name (ARN), which you use as input for other operations. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-). public let volumeId: String? @@ -3219,7 +3283,7 @@ extension Storagegateway { } public struct AddWorkingStorageOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] public let gatewayARN: String? @@ -3234,7 +3298,7 @@ extension Storagegateway { } public struct CancelRetrievalOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the virtual tape for which retrieval was canceled. @@ -3250,7 +3314,7 @@ extension Storagegateway { } public struct ListVolumeInitiatorsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Initiators", required: false, type: .list) ] /// The host names and port numbers of all iSCSI initiators that are connected to the gateway. @@ -3266,7 +3330,7 @@ extension Storagegateway { } public struct DescribeBandwidthRateLimitInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -3281,7 +3345,7 @@ extension Storagegateway { } public struct DescribeUploadBufferInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -3296,7 +3360,7 @@ extension Storagegateway { } public struct CreateCachediSCSIVolumeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "NetworkInterfaceId", required: true, type: .string), AWSShapeMember(label: "ClientToken", required: true, type: .string), @@ -3336,7 +3400,7 @@ extension Storagegateway { } public struct ListGatewaysOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Gateways", required: false, type: .list) ] @@ -3355,7 +3419,7 @@ extension Storagegateway { } public struct ShutdownGatewayInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string) ] public let gatewayARN: String @@ -3370,7 +3434,7 @@ extension Storagegateway { } public struct RetrieveTapeRecoveryPointOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TapeARN", required: false, type: .string) ] /// The Amazon Resource Name (ARN) of the virtual tape for which the recovery point was retrieved. @@ -3386,7 +3450,7 @@ extension Storagegateway { } public struct DisableGatewayOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: false, type: .string) ] /// The unique Amazon Resource Name of the disabled gateway. @@ -3402,7 +3466,7 @@ extension Storagegateway { } public struct AddCacheInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "GatewayARN", required: true, type: .string), AWSShapeMember(label: "DiskIds", required: true, type: .list) ] diff --git a/Sources/AWSSDKSwift/Services/streams.dynamodb/Streamsdynamodb_Shapes.swift b/Sources/AWSSDKSwift/Services/streams.dynamodb/Streamsdynamodb_Shapes.swift index c835b9eeb9c..90860e64d9f 100644 --- a/Sources/AWSSDKSwift/Services/streams.dynamodb/Streamsdynamodb_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/streams.dynamodb/Streamsdynamodb_Shapes.swift @@ -14,7 +14,7 @@ extension Streamsdynamodb { } public struct DescribeStreamInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamArn", required: true, type: .string), AWSShapeMember(label: "ExclusiveStartShardId", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -40,7 +40,7 @@ extension Streamsdynamodb { } public struct KeySchemaElement: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AttributeName", required: true, type: .string), AWSShapeMember(label: "KeyType", required: true, type: .enum) ] @@ -61,7 +61,7 @@ extension Streamsdynamodb { } public struct Shard: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShardId", required: false, type: .string), AWSShapeMember(label: "SequenceNumberRange", required: false, type: .structure), AWSShapeMember(label: "ParentShardId", required: false, type: .string) @@ -87,7 +87,7 @@ extension Streamsdynamodb { } public struct DescribeStreamOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamDescription", required: false, type: .structure) ] /// A complete description of the stream, including its creation date and time, the DynamoDB table associated with the stream, the shard IDs within the stream, and the beginning and ending sequence numbers of stream records within the shards. @@ -109,7 +109,7 @@ extension Streamsdynamodb { } public struct Record: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "eventName", required: false, type: .enum), AWSShapeMember(label: "eventSource", required: false, type: .string), AWSShapeMember(label: "userIdentity", required: false, type: .structure), @@ -155,7 +155,7 @@ extension Streamsdynamodb { } public struct GetShardIteratorInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShardIteratorType", required: true, type: .enum), AWSShapeMember(label: "SequenceNumber", required: false, type: .string), AWSShapeMember(label: "StreamArn", required: true, type: .string), @@ -194,7 +194,7 @@ extension Streamsdynamodb { } public struct SequenceNumberRange: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndingSequenceNumber", required: false, type: .string), AWSShapeMember(label: "StartingSequenceNumber", required: false, type: .string) ] @@ -222,7 +222,7 @@ extension Streamsdynamodb { } public struct Stream: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StreamArn", required: false, type: .string), AWSShapeMember(label: "StreamLabel", required: false, type: .string), AWSShapeMember(label: "TableName", required: false, type: .string) @@ -248,7 +248,7 @@ extension Streamsdynamodb { } public struct GetRecordsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "ShardIterator", required: true, type: .string) ] @@ -269,7 +269,7 @@ extension Streamsdynamodb { } public struct GetShardIteratorOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShardIterator", required: false, type: .string) ] /// The position in the shard from which to start reading stream records sequentially. A shard iterator specifies this position using the sequence number of a stream record in a shard. @@ -285,7 +285,7 @@ extension Streamsdynamodb { } public struct Identity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .string), AWSShapeMember(label: "PrincipalId", required: false, type: .string) ] @@ -305,8 +305,8 @@ extension Streamsdynamodb { } } - public struct AttributeValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public class AttributeValue: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NS", required: false, type: .list), AWSShapeMember(label: "N", required: false, type: .string), AWSShapeMember(label: "BOOL", required: false, type: .boolean), @@ -367,7 +367,7 @@ extension Streamsdynamodb { } public struct ListStreamsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Streams", required: false, type: .list), AWSShapeMember(label: "LastEvaluatedStreamArn", required: false, type: .string) ] @@ -388,7 +388,7 @@ extension Streamsdynamodb { } public struct ListStreamsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ExclusiveStartStreamArn", required: false, type: .string), AWSShapeMember(label: "TableName", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer) @@ -414,7 +414,7 @@ extension Streamsdynamodb { } public struct GetRecordsOutput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextShardIterator", required: false, type: .string), AWSShapeMember(label: "Records", required: false, type: .list) ] @@ -435,7 +435,7 @@ extension Streamsdynamodb { } public struct StreamRecord: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SequenceNumber", required: false, type: .string), AWSShapeMember(label: "Keys", required: false, type: .map), AWSShapeMember(label: "NewImage", required: false, type: .map), @@ -481,7 +481,7 @@ extension Streamsdynamodb { } public struct StreamDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "KeySchema", required: false, type: .list), AWSShapeMember(label: "StreamArn", required: false, type: .string), AWSShapeMember(label: "CreationRequestDateTime", required: false, type: .timestamp), diff --git a/Sources/AWSSDKSwift/Services/sts/Sts_API.swift b/Sources/AWSSDKSwift/Services/sts/Sts_API.swift index 926bfc2dff1..2e0476744dc 100644 --- a/Sources/AWSSDKSwift/Services/sts/Sts_API.swift +++ b/Sources/AWSSDKSwift/Services/sts/Sts_API.swift @@ -19,7 +19,7 @@ public struct Sts { serviceProtocol: ServiceProtocol(type: .query), apiVersion: "2011-06-15", endpoint: endpoint, - serviceEndpoints: ["ap-northeast-2": "sts.ap-northeast-2.amazonaws.com"], + serviceEndpoints: ["us-west-2-fips": "sts-fips.us-west-2.amazonaws.com", "us-east-1-fips": "sts-fips.us-east-1.amazonaws.com", "us-west-1-fips": "sts-fips.us-west-1.amazonaws.com", "us-east-2-fips": "sts-fips.us-east-2.amazonaws.com", "ap-northeast-2": "sts.ap-northeast-2.amazonaws.com"], partitionEndpoint: "aws-global", middlewares: [], possibleErrorTypes: [StsError.self] diff --git a/Sources/AWSSDKSwift/Services/sts/Sts_Shapes.swift b/Sources/AWSSDKSwift/Services/sts/Sts_Shapes.swift index b47dfb6a92d..c9c3c1f2dbe 100644 --- a/Sources/AWSSDKSwift/Services/sts/Sts_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/sts/Sts_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Sts { public struct GetSessionTokenRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TokenCode", required: false, type: .string), AWSShapeMember(label: "SerialNumber", required: false, type: .string), AWSShapeMember(label: "DurationSeconds", required: false, type: .integer) @@ -32,7 +32,7 @@ extension Sts { } public struct GetSessionTokenResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Credentials", required: false, type: .structure) ] /// The temporary security credentials, which include an access key ID, a secret access key, and a security (or session) token. Note: The size of the security token that STS APIs return is not fixed. We strongly recommend that you make no assumptions about the maximum size. As of this writing, the typical size is less than 4096 bytes, but that can vary. Also, future updates to AWS might require larger sizes. @@ -48,7 +48,7 @@ extension Sts { } public struct DecodeAuthorizationMessageRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EncodedMessage", required: true, type: .string) ] /// The encoded message that was returned with the response. @@ -64,7 +64,7 @@ extension Sts { } public struct Credentials: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SessionToken", required: true, type: .string), AWSShapeMember(label: "AccessKeyId", required: true, type: .string), AWSShapeMember(label: "SecretAccessKey", required: true, type: .string), @@ -95,7 +95,7 @@ extension Sts { } public struct AssumeRoleWithWebIdentityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Audience", required: false, type: .string), AWSShapeMember(label: "Credentials", required: false, type: .structure), AWSShapeMember(label: "SubjectFromWebIdentityToken", required: false, type: .string), @@ -136,7 +136,7 @@ extension Sts { } public struct GetFederationTokenResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Credentials", required: false, type: .structure), AWSShapeMember(label: "FederatedUser", required: false, type: .structure), AWSShapeMember(label: "PackedPolicySize", required: false, type: .integer) @@ -162,7 +162,7 @@ extension Sts { } public struct AssumeRoleWithWebIdentityRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ProviderId", required: false, type: .string), AWSShapeMember(label: "DurationSeconds", required: false, type: .integer), AWSShapeMember(label: "RoleArn", required: true, type: .string), @@ -203,7 +203,7 @@ extension Sts { } public struct AssumedRoleUser: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Arn", required: true, type: .string), AWSShapeMember(label: "AssumedRoleId", required: true, type: .string) ] @@ -224,7 +224,7 @@ extension Sts { } public struct DecodeAuthorizationMessageResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DecodedMessage", required: false, type: .string) ] /// An XML document that contains the decoded message. @@ -244,7 +244,7 @@ extension Sts { } public struct AssumeRoleWithSAMLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PrincipalArn", required: true, type: .string), AWSShapeMember(label: "DurationSeconds", required: false, type: .integer), AWSShapeMember(label: "RoleArn", required: true, type: .string), @@ -280,7 +280,7 @@ extension Sts { } public struct AssumeRoleWithSAMLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Credentials", required: false, type: .structure), AWSShapeMember(label: "AssumedRoleUser", required: false, type: .structure), AWSShapeMember(label: "SubjectType", required: false, type: .string), @@ -331,7 +331,7 @@ extension Sts { } public struct GetFederationTokenRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Policy", required: false, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "DurationSeconds", required: false, type: .integer) @@ -357,7 +357,7 @@ extension Sts { } public struct GetCallerIdentityResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Account", required: false, type: .string), AWSShapeMember(label: "UserId", required: false, type: .string), AWSShapeMember(label: "Arn", required: false, type: .string) @@ -383,7 +383,7 @@ extension Sts { } public struct AssumeRoleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DurationSeconds", required: false, type: .integer), AWSShapeMember(label: "ExternalId", required: false, type: .string), AWSShapeMember(label: "TokenCode", required: false, type: .string), @@ -429,7 +429,7 @@ extension Sts { } public struct AssumeRoleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Credentials", required: false, type: .structure), AWSShapeMember(label: "AssumedRoleUser", required: false, type: .structure), AWSShapeMember(label: "PackedPolicySize", required: false, type: .integer) @@ -455,7 +455,7 @@ extension Sts { } public struct FederatedUser: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FederatedUserId", required: true, type: .string), AWSShapeMember(label: "Arn", required: true, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/support/Support_Shapes.swift b/Sources/AWSSDKSwift/Services/support/Support_Shapes.swift index fa20a928c1d..e888eb5c941 100644 --- a/Sources/AWSSDKSwift/Services/support/Support_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/support/Support_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Support { public struct DescribeCommunicationsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "communications", required: false, type: .list) ] @@ -27,7 +27,7 @@ extension Support { } public struct TrustedAdvisorCostOptimizingSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "estimatedMonthlySavings", required: true, type: .double), AWSShapeMember(label: "estimatedPercentMonthlySavings", required: true, type: .double) ] @@ -48,7 +48,7 @@ extension Support { } public struct DescribeTrustedAdvisorCheckSummariesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "summaries", required: true, type: .list) ] /// The summary information for the requested Trusted Advisor checks. @@ -64,7 +64,7 @@ extension Support { } public struct ResolveCaseResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "initialCaseStatus", required: false, type: .string), AWSShapeMember(label: "finalCaseStatus", required: false, type: .string) ] @@ -85,7 +85,7 @@ extension Support { } public struct DescribeCasesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cases", required: false, type: .list), AWSShapeMember(label: "nextToken", required: false, type: .string) ] @@ -106,7 +106,7 @@ extension Support { } public struct CreateCaseResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "caseId", required: false, type: .string) ] /// The AWS Support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-12345678910-2013-c4c1d2bf33c5cf47 @@ -122,7 +122,7 @@ extension Support { } public struct DescribeCasesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "afterTime", required: false, type: .string), AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "includeCommunications", required: false, type: .boolean), @@ -178,7 +178,7 @@ extension Support { } public struct DescribeCommunicationsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "caseId", required: true, type: .string), AWSShapeMember(label: "afterTime", required: false, type: .string), AWSShapeMember(label: "nextToken", required: false, type: .string), @@ -214,7 +214,7 @@ extension Support { } public struct AddCommunicationToCaseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "caseId", required: false, type: .string), AWSShapeMember(label: "ccEmailAddresses", required: false, type: .list), AWSShapeMember(label: "communicationBody", required: true, type: .string), @@ -245,7 +245,7 @@ extension Support { } public struct DescribeTrustedAdvisorCheckRefreshStatusesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "statuses", required: true, type: .list) ] /// The refresh status of the specified Trusted Advisor checks. @@ -261,7 +261,7 @@ extension Support { } public struct TrustedAdvisorCheckSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: true, type: .string), AWSShapeMember(label: "checkId", required: true, type: .string), AWSShapeMember(label: "categorySpecificSummary", required: true, type: .structure), @@ -301,7 +301,7 @@ extension Support { } public struct DescribeTrustedAdvisorCheckResultRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "language", required: false, type: .string), AWSShapeMember(label: "checkId", required: true, type: .string) ] @@ -322,7 +322,7 @@ extension Support { } public struct DescribeAttachmentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attachmentId", required: true, type: .string) ] /// The ID of the attachment to return. Attachment IDs are returned by the DescribeCommunications operation. @@ -338,7 +338,7 @@ extension Support { } public struct DescribeTrustedAdvisorCheckSummariesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "checkIds", required: true, type: .list) ] /// The IDs of the Trusted Advisor checks. @@ -354,7 +354,7 @@ extension Support { } public struct TrustedAdvisorCheckResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: true, type: .string), AWSShapeMember(label: "checkId", required: true, type: .string), AWSShapeMember(label: "flaggedResources", required: true, type: .list), @@ -394,7 +394,7 @@ extension Support { } public struct DescribeTrustedAdvisorChecksResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "checks", required: true, type: .list) ] /// Information about all available Trusted Advisor checks. @@ -410,7 +410,7 @@ extension Support { } public struct DescribeAttachmentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attachment", required: false, type: .structure) ] /// The attachment content and file name. @@ -426,7 +426,7 @@ extension Support { } public struct Service: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "categories", required: false, type: .list), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "code", required: false, type: .string) @@ -452,7 +452,7 @@ extension Support { } public struct TrustedAdvisorResourcesSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "resourcesFlagged", required: true, type: .long), AWSShapeMember(label: "resourcesIgnored", required: true, type: .long), AWSShapeMember(label: "resourcesSuppressed", required: true, type: .long), @@ -483,7 +483,7 @@ extension Support { } public struct CaseDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "submittedBy", required: false, type: .string), AWSShapeMember(label: "status", required: false, type: .string), AWSShapeMember(label: "serviceCode", required: false, type: .string), @@ -554,7 +554,7 @@ extension Support { } public struct DescribeServicesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "services", required: false, type: .list) ] /// A JSON-formatted list of AWS services. @@ -570,7 +570,7 @@ extension Support { } public struct AddAttachmentsToSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attachments", required: true, type: .list), AWSShapeMember(label: "attachmentSetId", required: false, type: .string) ] @@ -591,7 +591,7 @@ extension Support { } public struct ResolveCaseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "caseId", required: false, type: .string) ] /// The AWS Support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-12345678910-2013-c4c1d2bf33c5cf47 @@ -607,7 +607,7 @@ extension Support { } public struct AddAttachmentsToSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "attachmentSetId", required: false, type: .string), AWSShapeMember(label: "expiryTime", required: false, type: .string) ] @@ -628,7 +628,7 @@ extension Support { } public struct Category: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "code", required: false, type: .string) ] @@ -649,7 +649,7 @@ extension Support { } public struct DescribeTrustedAdvisorCheckRefreshStatusesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "checkIds", required: true, type: .list) ] /// The IDs of the Trusted Advisor checks to get the status of. Note: Specifying the check ID of a check that is automatically refreshed causes an InvalidParameterValue error. @@ -665,7 +665,7 @@ extension Support { } public struct DescribeSeverityLevelsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "language", required: false, type: .string) ] /// The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English ("en") and Japanese ("ja"). Language parameters must be passed explicitly for operations that take them. @@ -681,7 +681,7 @@ extension Support { } public struct RefreshTrustedAdvisorCheckRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "checkId", required: true, type: .string) ] /// The unique identifier for the Trusted Advisor check to refresh. Note: Specifying the check ID of a check that is automatically refreshed causes an InvalidParameterValue error. @@ -697,7 +697,7 @@ extension Support { } public struct TrustedAdvisorCategorySpecificSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "costOptimizing", required: false, type: .structure) ] /// The summary information about cost savings for a Trusted Advisor check that is in the Cost Optimizing category. @@ -713,7 +713,7 @@ extension Support { } public struct DescribeTrustedAdvisorCheckResultResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "result", required: false, type: .structure) ] /// The detailed results of the Trusted Advisor check. @@ -729,7 +729,7 @@ extension Support { } public struct DescribeSeverityLevelsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "severityLevels", required: false, type: .list) ] /// The available severity levels for the support case. Available severity levels are defined by your service level agreement with AWS. @@ -745,7 +745,7 @@ extension Support { } public struct DescribeServicesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "language", required: false, type: .string), AWSShapeMember(label: "serviceCodeList", required: false, type: .list) ] @@ -766,7 +766,7 @@ extension Support { } public struct AddCommunicationToCaseResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "result", required: false, type: .boolean) ] /// True if AddCommunicationToCase succeeds. Otherwise, returns an error. @@ -782,7 +782,7 @@ extension Support { } public struct TrustedAdvisorCheckDescription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "metadata", required: true, type: .list), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "description", required: true, type: .string), @@ -818,7 +818,7 @@ extension Support { } public struct Attachment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "fileName", required: false, type: .string), AWSShapeMember(label: "data", required: false, type: .blob) ] @@ -839,7 +839,7 @@ extension Support { } public struct RefreshTrustedAdvisorCheckResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: true, type: .structure) ] /// The current refresh status for a check, including the amount of time until the check is eligible for refresh. @@ -855,7 +855,7 @@ extension Support { } public struct TrustedAdvisorResourceDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "metadata", required: true, type: .list), AWSShapeMember(label: "status", required: true, type: .string), AWSShapeMember(label: "isSuppressed", required: false, type: .boolean), @@ -891,7 +891,7 @@ extension Support { } public struct DescribeTrustedAdvisorChecksRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "language", required: true, type: .string) ] /// The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English ("en") and Japanese ("ja"). Language parameters must be passed explicitly for operations that take them. @@ -907,7 +907,7 @@ extension Support { } public struct TrustedAdvisorCheckRefreshStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: true, type: .string), AWSShapeMember(label: "checkId", required: true, type: .string), AWSShapeMember(label: "millisUntilNextRefreshable", required: true, type: .long) @@ -933,7 +933,7 @@ extension Support { } public struct Communication: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "caseId", required: false, type: .string), AWSShapeMember(label: "submittedBy", required: false, type: .string), AWSShapeMember(label: "body", required: false, type: .string), @@ -969,7 +969,7 @@ extension Support { } public struct SeverityLevel: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "code", required: false, type: .string) ] @@ -990,7 +990,7 @@ extension Support { } public struct AttachmentDetails: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "fileName", required: false, type: .string), AWSShapeMember(label: "attachmentId", required: false, type: .string) ] @@ -1011,7 +1011,7 @@ extension Support { } public struct RecentCaseCommunications: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextToken", required: false, type: .string), AWSShapeMember(label: "communications", required: false, type: .list) ] @@ -1032,7 +1032,7 @@ extension Support { } public struct CreateCaseRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "issueType", required: false, type: .string), AWSShapeMember(label: "serviceCode", required: false, type: .string), AWSShapeMember(label: "attachmentSetId", required: false, type: .string), diff --git a/Sources/AWSSDKSwift/Services/swf/Swf_API.swift b/Sources/AWSSDKSwift/Services/swf/Swf_API.swift index 81508aba8f3..f54d57ea403 100644 --- a/Sources/AWSSDKSwift/Services/swf/Swf_API.swift +++ b/Sources/AWSSDKSwift/Services/swf/Swf_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -Amazon Simple Workflow Service The Amazon Simple Workflow Service (Amazon SWF) makes it easy to build applications that use Amazon's cloud to coordinate work across distributed components. In Amazon SWF, a task represents a logical unit of work that is performed by a component of your workflow. Coordinating tasks in a workflow involves managing intertask dependencies, scheduling, and concurrency in accordance with the logical flow of the application. Amazon SWF gives you full control over implementing tasks and coordinating them without worrying about underlying complexities such as tracking their progress and maintaining their state. This documentation serves as reference only. For a broader overview of the Amazon SWF programming model, see the Amazon SWF Developer Guide. +Amazon Simple Workflow Service The Amazon Simple Workflow Service (Amazon SWF) makes it easy to build applications that use Amazon's cloud to coordinate work across distributed components. In Amazon SWF, a task represents a logical unit of work that is performed by a component of your workflow. Coordinating tasks in a workflow involves managing intertask dependencies, scheduling, and concurrency in accordance with the logical flow of the application. Amazon SWF gives you full control over implementing tasks and coordinating them without worrying about underlying complexities such as tracking their progress and maintaining their state. This documentation serves as reference only. For a broader overview of the Amazon SWF programming model, see the Amazon SWF Developer Guide . */ public struct Swf { @@ -25,157 +25,157 @@ public struct Swf { ) } - /// Returns the history of the specified workflow execution. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns the history of the specified workflow execution. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func getWorkflowExecutionHistory(_ input: GetWorkflowExecutionHistoryInput) throws -> History { return try client.send(operation: "GetWorkflowExecutionHistory", path: "/", httpMethod: "POST", input: input) } - /// Returns the estimated number of activity tasks in the specified task list. The count returned is an approximation and is not guaranteed to be exact. If you specify a task list that no activity task was ever scheduled in then 0 will be returned. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns the estimated number of activity tasks in the specified task list. The count returned is an approximation and isn't guaranteed to be exact. If you specify a task list that no activity task was ever scheduled in then 0 is returned. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func countPendingActivityTasks(_ input: CountPendingActivityTasksInput) throws -> PendingTaskCount { return try client.send(operation: "CountPendingActivityTasks", path: "/", httpMethod: "POST", input: input) } - /// Records a WorkflowExecutionCancelRequested event in the currently running workflow execution identified by the given domain, workflowId, and runId. This logically requests the cancellation of the workflow execution as a whole. It is up to the decider to take appropriate actions when it receives an execution history with this event. If the runId is not specified, the WorkflowExecutionCancelRequested event is recorded in the history of the current open workflow execution with the specified workflowId in the domain. Because this action allows the workflow to properly clean up and gracefully close, it should be used instead of TerminateWorkflowExecution when possible. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Records a WorkflowExecutionCancelRequested event in the currently running workflow execution identified by the given domain, workflowId, and runId. This logically requests the cancellation of the workflow execution as a whole. It is up to the decider to take appropriate actions when it receives an execution history with this event. If the runId isn't specified, the WorkflowExecutionCancelRequested event is recorded in the history of the current open workflow execution with the specified workflowId in the domain. Because this action allows the workflow to properly clean up and gracefully close, it should be used instead of TerminateWorkflowExecution when possible. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func requestCancelWorkflowExecution(_ input: RequestCancelWorkflowExecutionInput) throws { _ = try client.send(operation: "RequestCancelWorkflowExecution", path: "/", httpMethod: "POST", input: input) } - /// Records a WorkflowExecutionSignaled event in the workflow execution history and creates a decision task for the workflow execution identified by the given domain, workflowId and runId. The event is recorded with the specified user defined signalName and input (if provided). If a runId is not specified, then the WorkflowExecutionSignaled event is recorded in the history of the current open workflow with the matching workflowId in the domain. If the specified workflow execution is not open, this method fails with UnknownResource. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Records a WorkflowExecutionSignaled event in the workflow execution history and creates a decision task for the workflow execution identified by the given domain, workflowId and runId. The event is recorded with the specified user defined signalName and input (if provided). If a runId isn't specified, then the WorkflowExecutionSignaled event is recorded in the history of the current open workflow with the matching workflowId in the domain. If the specified workflow execution isn't open, this method fails with UnknownResource. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func signalWorkflowExecution(_ input: SignalWorkflowExecutionInput) throws { _ = try client.send(operation: "SignalWorkflowExecution", path: "/", httpMethod: "POST", input: input) } - /// Returns information about the specified workflow type. This includes configuration settings specified when the type was registered and other information such as creation date, current status, and so on. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. workflowType.name: String constraint. The key is swf:workflowType.name. workflowType.version: String constraint. The key is swf:workflowType.version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns information about the specified workflow type. This includes configuration settings specified when the type was registered and other information such as creation date, current status, etc. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. workflowType.name: String constraint. The key is swf:workflowType.name. workflowType.version: String constraint. The key is swf:workflowType.version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func describeWorkflowType(_ input: DescribeWorkflowTypeInput) throws -> WorkflowTypeDetail { return try client.send(operation: "DescribeWorkflowType", path: "/", httpMethod: "POST", input: input) } - /// Returns the list of domains registered in the account. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. The element must be set to arn:aws:swf::AccountID:domain/*, where AccountID is the account ID, with no dashes. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns the list of domains registered in the account. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. The element must be set to arn:aws:swf::AccountID:domain/*, where AccountID is the account ID, with no dashes. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func listDomains(_ input: ListDomainsInput) throws -> DomainInfos { return try client.send(operation: "ListDomains", path: "/", httpMethod: "POST", input: input) } - /// Used by workers to tell the service that the ActivityTask identified by the taskToken has failed with reason (if specified). The reason and details appear in the ActivityTaskFailed event added to the workflow history. A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Used by workers to tell the service that the ActivityTask identified by the taskToken has failed with reason (if specified). The reason and details appear in the ActivityTaskFailed event added to the workflow history. A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func respondActivityTaskFailed(_ input: RespondActivityTaskFailedInput) throws { _ = try client.send(operation: "RespondActivityTaskFailed", path: "/", httpMethod: "POST", input: input) } - /// Returns information about workflow types in the specified domain. The results may be split into multiple pages that can be retrieved by making the call repeatedly. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns information about workflow types in the specified domain. The results may be split into multiple pages that can be retrieved by making the call repeatedly. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func listWorkflowTypes(_ input: ListWorkflowTypesInput) throws -> WorkflowTypeInfos { return try client.send(operation: "ListWorkflowTypes", path: "/", httpMethod: "POST", input: input) } - /// Used by deciders to tell the service that the DecisionTask identified by the taskToken has successfully completed. The decisions argument specifies the list of decisions made while processing the task. A DecisionTaskCompleted event is added to the workflow history. The executionContext specified is attached to the event in the workflow execution history. Access Control If an IAM policy grants permission to use RespondDecisionTaskCompleted, it can express permissions for the list of decisions in the decisions parameter. Each of the decisions has one or more parameters, much like a regular API call. To allow for policies to be as readable as possible, you can express permissions on decisions as if they were actual API calls, including applying conditions to some parameters. For more information, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Used by deciders to tell the service that the DecisionTask identified by the taskToken has successfully completed. The decisions argument specifies the list of decisions made while processing the task. A DecisionTaskCompleted event is added to the workflow history. The executionContext specified is attached to the event in the workflow execution history. Access Control If an IAM policy grants permission to use RespondDecisionTaskCompleted, it can express permissions for the list of decisions in the decisions parameter. Each of the decisions has one or more parameters, much like a regular API call. To allow for policies to be as readable as possible, you can express permissions on decisions as if they were actual API calls, including applying conditions to some parameters. For more information, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func respondDecisionTaskCompleted(_ input: RespondDecisionTaskCompletedInput) throws { _ = try client.send(operation: "RespondDecisionTaskCompleted", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of closed workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. tagFilter.tag: String constraint. The key is swf:tagFilter.tag. typeFilter.name: String constraint. The key is swf:typeFilter.name. typeFilter.version: String constraint. The key is swf:typeFilter.version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns a list of closed workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. tagFilter.tag: String constraint. The key is swf:tagFilter.tag. typeFilter.name: String constraint. The key is swf:typeFilter.name. typeFilter.version: String constraint. The key is swf:typeFilter.version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func listClosedWorkflowExecutions(_ input: ListClosedWorkflowExecutionsInput) throws -> WorkflowExecutionInfos { return try client.send(operation: "ListClosedWorkflowExecutions", path: "/", httpMethod: "POST", input: input) } - /// Used by workers to tell the service that the ActivityTask identified by the taskToken was successfully canceled. Additional details can be optionally provided using the details argument. These details (if provided) appear in the ActivityTaskCanceled event added to the workflow history. Only use this operation if the canceled flag of a RecordActivityTaskHeartbeat request returns true and if the activity can be safely undone or abandoned. A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Used by workers to tell the service that the ActivityTask identified by the taskToken was successfully canceled. Additional details can be provided using the details argument. These details (if provided) appear in the ActivityTaskCanceled event added to the workflow history. Only use this operation if the canceled flag of a RecordActivityTaskHeartbeat request returns true and if the activity can be safely undone or abandoned. A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func respondActivityTaskCanceled(_ input: RespondActivityTaskCanceledInput) throws { _ = try client.send(operation: "RespondActivityTaskCanceled", path: "/", httpMethod: "POST", input: input) } - /// Returns information about the specified workflow execution including its type and some statistics. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns information about the specified workflow execution including its type and some statistics. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func describeWorkflowExecution(_ input: DescribeWorkflowExecutionInput) throws -> WorkflowExecutionDetail { return try client.send(operation: "DescribeWorkflowExecution", path: "/", httpMethod: "POST", input: input) } - /// Registers a new domain. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: You cannot use an IAM policy to control domain access for this action. The name of the domain being registered is available as the resource of this action. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Registers a new domain. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: You cannot use an IAM policy to control domain access for this action. The name of the domain being registered is available as the resource of this action. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func registerDomain(_ input: RegisterDomainInput) throws { _ = try client.send(operation: "RegisterDomain", path: "/", httpMethod: "POST", input: input) } - /// Returns the number of closed workflow executions within the given domain that meet the specified filtering criteria. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. tagFilter.tag: String constraint. The key is swf:tagFilter.tag. typeFilter.name: String constraint. The key is swf:typeFilter.name. typeFilter.version: String constraint. The key is swf:typeFilter.version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns the number of closed workflow executions within the given domain that meet the specified filtering criteria. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. tagFilter.tag: String constraint. The key is swf:tagFilter.tag. typeFilter.name: String constraint. The key is swf:typeFilter.name. typeFilter.version: String constraint. The key is swf:typeFilter.version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func countClosedWorkflowExecutions(_ input: CountClosedWorkflowExecutionsInput) throws -> WorkflowExecutionCount { return try client.send(operation: "CountClosedWorkflowExecutions", path: "/", httpMethod: "POST", input: input) } - /// Returns information about the specified domain, including description and status. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns information about the specified domain, including description and status. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func describeDomain(_ input: DescribeDomainInput) throws -> DomainDetail { return try client.send(operation: "DescribeDomain", path: "/", httpMethod: "POST", input: input) } - /// Deprecates the specified activity type. After an activity type has been deprecated, you cannot create new tasks of that activity type. Tasks of this type that were scheduled before the type was deprecated will continue to run. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. activityType.name: String constraint. The key is swf:activityType.name. activityType.version: String constraint. The key is swf:activityType.version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Deprecates the specified activity type. After an activity type has been deprecated, you cannot create new tasks of that activity type. Tasks of this type that were scheduled before the type was deprecated continue to run. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. activityType.name: String constraint. The key is swf:activityType.name. activityType.version: String constraint. The key is swf:activityType.version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func deprecateActivityType(_ input: DeprecateActivityTypeInput) throws { _ = try client.send(operation: "DeprecateActivityType", path: "/", httpMethod: "POST", input: input) } - /// Returns a list of open workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. tagFilter.tag: String constraint. The key is swf:tagFilter.tag. typeFilter.name: String constraint. The key is swf:typeFilter.name. typeFilter.version: String constraint. The key is swf:typeFilter.version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns a list of open workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. tagFilter.tag: String constraint. The key is swf:tagFilter.tag. typeFilter.name: String constraint. The key is swf:typeFilter.name. typeFilter.version: String constraint. The key is swf:typeFilter.version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func listOpenWorkflowExecutions(_ input: ListOpenWorkflowExecutionsInput) throws -> WorkflowExecutionInfos { return try client.send(operation: "ListOpenWorkflowExecutions", path: "/", httpMethod: "POST", input: input) } - /// Records a WorkflowExecutionTerminated event and forces closure of the workflow execution identified by the given domain, runId, and workflowId. The child policy, registered with the workflow type or specified when starting this execution, is applied to any open child workflow executions of this workflow execution. If the identified workflow execution was in progress, it is terminated immediately. If a runId is not specified, then the WorkflowExecutionTerminated event is recorded in the history of the current open workflow with the matching workflowId in the domain. You should consider using RequestCancelWorkflowExecution action instead because it allows the workflow to gracefully close while TerminateWorkflowExecution does not. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Records a WorkflowExecutionTerminated event and forces closure of the workflow execution identified by the given domain, runId, and workflowId. The child policy, registered with the workflow type or specified when starting this execution, is applied to any open child workflow executions of this workflow execution. If the identified workflow execution was in progress, it is terminated immediately. If a runId isn't specified, then the WorkflowExecutionTerminated event is recorded in the history of the current open workflow with the matching workflowId in the domain. You should consider using RequestCancelWorkflowExecution action instead because it allows the workflow to gracefully close while TerminateWorkflowExecution doesn't. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func terminateWorkflowExecution(_ input: TerminateWorkflowExecutionInput) throws { _ = try client.send(operation: "TerminateWorkflowExecution", path: "/", httpMethod: "POST", input: input) } - /// Returns the number of open workflow executions within the given domain that meet the specified filtering criteria. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. tagFilter.tag: String constraint. The key is swf:tagFilter.tag. typeFilter.name: String constraint. The key is swf:typeFilter.name. typeFilter.version: String constraint. The key is swf:typeFilter.version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns the number of open workflow executions within the given domain that meet the specified filtering criteria. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. tagFilter.tag: String constraint. The key is swf:tagFilter.tag. typeFilter.name: String constraint. The key is swf:typeFilter.name. typeFilter.version: String constraint. The key is swf:typeFilter.version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func countOpenWorkflowExecutions(_ input: CountOpenWorkflowExecutionsInput) throws -> WorkflowExecutionCount { return try client.send(operation: "CountOpenWorkflowExecutions", path: "/", httpMethod: "POST", input: input) } - /// Returns the estimated number of decision tasks in the specified task list. The count returned is an approximation and is not guaranteed to be exact. If you specify a task list that no decision task was ever scheduled in then 0 will be returned. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns the estimated number of decision tasks in the specified task list. The count returned is an approximation and isn't guaranteed to be exact. If you specify a task list that no decision task was ever scheduled in then 0 is returned. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func countPendingDecisionTasks(_ input: CountPendingDecisionTasksInput) throws -> PendingTaskCount { return try client.send(operation: "CountPendingDecisionTasks", path: "/", httpMethod: "POST", input: input) } - /// Used by activity workers to report to the service that the ActivityTask represented by the specified taskToken is still making progress. The worker can also (optionally) specify details of the progress, for example percent complete, using the details parameter. This action can also be used by the worker as a mechanism to check if cancellation is being requested for the activity task. If a cancellation is being attempted for the specified task, then the boolean cancelRequested flag returned by the service is set to true. This action resets the taskHeartbeatTimeout clock. The taskHeartbeatTimeout is specified in RegisterActivityType. This action does not in itself create an event in the workflow execution history. However, if the task times out, the workflow execution history will contain a ActivityTaskTimedOut event that contains the information from the last heartbeat generated by the activity worker. The taskStartToCloseTimeout of an activity type is the maximum duration of an activity task, regardless of the number of RecordActivityTaskHeartbeat requests received. The taskStartToCloseTimeout is also specified in RegisterActivityType. This operation is only useful for long-lived activities to report liveliness of the task and to determine if a cancellation is being attempted. If the cancelRequested flag returns true, a cancellation is being attempted. If the worker can cancel the activity, it should respond with RespondActivityTaskCanceled. Otherwise, it should ignore the cancellation request. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Used by activity workers to report to the service that the ActivityTask represented by the specified taskToken is still making progress. The worker can also specify details of the progress, for example percent complete, using the details parameter. This action can also be used by the worker as a mechanism to check if cancellation is being requested for the activity task. If a cancellation is being attempted for the specified task, then the boolean cancelRequested flag returned by the service is set to true. This action resets the taskHeartbeatTimeout clock. The taskHeartbeatTimeout is specified in RegisterActivityType. This action doesn't in itself create an event in the workflow execution history. However, if the task times out, the workflow execution history contains a ActivityTaskTimedOut event that contains the information from the last heartbeat generated by the activity worker. The taskStartToCloseTimeout of an activity type is the maximum duration of an activity task, regardless of the number of RecordActivityTaskHeartbeat requests received. The taskStartToCloseTimeout is also specified in RegisterActivityType. This operation is only useful for long-lived activities to report liveliness of the task and to determine if a cancellation is being attempted. If the cancelRequested flag returns true, a cancellation is being attempted. If the worker can cancel the activity, it should respond with RespondActivityTaskCanceled. Otherwise, it should ignore the cancellation request. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func recordActivityTaskHeartbeat(_ input: RecordActivityTaskHeartbeatInput) throws -> ActivityTaskStatus { return try client.send(operation: "RecordActivityTaskHeartbeat", path: "/", httpMethod: "POST", input: input) } - /// Used by deciders to get a DecisionTask from the specified decision taskList. A decision task may be returned for any open workflow execution that is using the specified task list. The task includes a paginated view of the history of the workflow execution. The decider should use the workflow type and the history to determine how to properly handle the task. This action initiates a long poll, where the service holds the HTTP connection open and responds as soon a task becomes available. If no decision task is available in the specified task list before the timeout of 60 seconds expires, an empty result is returned. An empty result, in this context, means that a DecisionTask is returned, but that the value of taskToken is an empty string. Deciders should set their client-side socket timeout to at least 70 seconds (10 seconds higher than the timeout). Because the number of workflow history events for a single workflow execution might be very large, the result returned might be split up across a number of pages. To retrieve subsequent pages, make additional calls to PollForDecisionTask using the nextPageToken returned by the initial call. Note that you do not call GetWorkflowExecutionHistory with this nextPageToken. Instead, call PollForDecisionTask again. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Used by deciders to get a DecisionTask from the specified decision taskList. A decision task may be returned for any open workflow execution that is using the specified task list. The task includes a paginated view of the history of the workflow execution. The decider should use the workflow type and the history to determine how to properly handle the task. This action initiates a long poll, where the service holds the HTTP connection open and responds as soon a task becomes available. If no decision task is available in the specified task list before the timeout of 60 seconds expires, an empty result is returned. An empty result, in this context, means that a DecisionTask is returned, but that the value of taskToken is an empty string. Deciders should set their client side socket timeout to at least 70 seconds (10 seconds higher than the timeout). Because the number of workflow history events for a single workflow execution might be very large, the result returned might be split up across a number of pages. To retrieve subsequent pages, make additional calls to PollForDecisionTask using the nextPageToken returned by the initial call. Note that you do not call GetWorkflowExecutionHistory with this nextPageToken. Instead, call PollForDecisionTask again. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func pollForDecisionTask(_ input: PollForDecisionTaskInput) throws -> DecisionTask { return try client.send(operation: "PollForDecisionTask", path: "/", httpMethod: "POST", input: input) } - /// Used by workers to tell the service that the ActivityTask identified by the taskToken completed successfully with a result (if provided). The result appears in the ActivityTaskCompleted event in the workflow history. If the requested task does not complete successfully, use RespondActivityTaskFailed instead. If the worker finds that the task is canceled through the canceled flag returned by RecordActivityTaskHeartbeat, it should cancel the task, clean up and then call RespondActivityTaskCanceled. A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Used by workers to tell the service that the ActivityTask identified by the taskToken completed successfully with a result (if provided). The result appears in the ActivityTaskCompleted event in the workflow history. If the requested task doesn't complete successfully, use RespondActivityTaskFailed instead. If the worker finds that the task is canceled through the canceled flag returned by RecordActivityTaskHeartbeat, it should cancel the task, clean up and then call RespondActivityTaskCanceled. A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func respondActivityTaskCompleted(_ input: RespondActivityTaskCompletedInput) throws { _ = try client.send(operation: "RespondActivityTaskCompleted", path: "/", httpMethod: "POST", input: input) } - /// Registers a new workflow type and its configuration settings in the specified domain. The retention period for the workflow history is set by the RegisterDomain action. If the type already exists, then a TypeAlreadyExists fault is returned. You cannot change the configuration settings of a workflow type once it is registered and it must be registered as a new version. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. defaultTaskList.name: String constraint. The key is swf:defaultTaskList.name. name: String constraint. The key is swf:name. version: String constraint. The key is swf:version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Registers a new workflow type and its configuration settings in the specified domain. The retention period for the workflow history is set by the RegisterDomain action. If the type already exists, then a TypeAlreadyExists fault is returned. You cannot change the configuration settings of a workflow type once it is registered and it must be registered as a new version. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. defaultTaskList.name: String constraint. The key is swf:defaultTaskList.name. name: String constraint. The key is swf:name. version: String constraint. The key is swf:version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func registerWorkflowType(_ input: RegisterWorkflowTypeInput) throws { _ = try client.send(operation: "RegisterWorkflowType", path: "/", httpMethod: "POST", input: input) } - /// Deprecates the specified workflow type. After a workflow type has been deprecated, you cannot create new executions of that type. Executions that were started before the type was deprecated will continue to run. A deprecated workflow type may still be used when calling visibility actions. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. workflowType.name: String constraint. The key is swf:workflowType.name. workflowType.version: String constraint. The key is swf:workflowType.version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Deprecates the specified workflow type. After a workflow type has been deprecated, you cannot create new executions of that type. Executions that were started before the type was deprecated continues to run. A deprecated workflow type may still be used when calling visibility actions. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. workflowType.name: String constraint. The key is swf:workflowType.name. workflowType.version: String constraint. The key is swf:workflowType.version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func deprecateWorkflowType(_ input: DeprecateWorkflowTypeInput) throws { _ = try client.send(operation: "DeprecateWorkflowType", path: "/", httpMethod: "POST", input: input) } - /// Starts an execution of the workflow type in the specified domain using the provided workflowId and input data. This action returns the newly started workflow execution. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. tagList.member.0: The key is swf:tagList.member.0. tagList.member.1: The key is swf:tagList.member.1. tagList.member.2: The key is swf:tagList.member.2. tagList.member.3: The key is swf:tagList.member.3. tagList.member.4: The key is swf:tagList.member.4. taskList: String constraint. The key is swf:taskList.name. workflowType.name: String constraint. The key is swf:workflowType.name. workflowType.version: String constraint. The key is swf:workflowType.version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Starts an execution of the workflow type in the specified domain using the provided workflowId and input data. This action returns the newly started workflow execution. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. tagList.member.0: The key is swf:tagList.member.0. tagList.member.1: The key is swf:tagList.member.1. tagList.member.2: The key is swf:tagList.member.2. tagList.member.3: The key is swf:tagList.member.3. tagList.member.4: The key is swf:tagList.member.4. taskList: String constraint. The key is swf:taskList.name. workflowType.name: String constraint. The key is swf:workflowType.name. workflowType.version: String constraint. The key is swf:workflowType.version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func startWorkflowExecution(_ input: StartWorkflowExecutionInput) throws -> Run { return try client.send(operation: "StartWorkflowExecution", path: "/", httpMethod: "POST", input: input) } - /// Returns information about the specified activity type. This includes configuration settings provided when the type was registered and other general information about the type. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. activityType.name: String constraint. The key is swf:activityType.name. activityType.version: String constraint. The key is swf:activityType.version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns information about the specified activity type. This includes configuration settings provided when the type was registered and other general information about the type. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. activityType.name: String constraint. The key is swf:activityType.name. activityType.version: String constraint. The key is swf:activityType.version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func describeActivityType(_ input: DescribeActivityTypeInput) throws -> ActivityTypeDetail { return try client.send(operation: "DescribeActivityType", path: "/", httpMethod: "POST", input: input) } - /// Returns information about all activities registered in the specified domain that match the specified name and registration status. The result includes information like creation date, current status of the activity, etc. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Returns information about all activities registered in the specified domain that match the specified name and registration status. The result includes information like creation date, current status of the activity, etc. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func listActivityTypes(_ input: ListActivityTypesInput) throws -> ActivityTypeInfos { return try client.send(operation: "ListActivityTypes", path: "/", httpMethod: "POST", input: input) } - /// Deprecates the specified domain. After a domain has been deprecated it cannot be used to create new workflow executions or register new types. However, you can still use visibility actions on this domain. Deprecating a domain also deprecates all activity and workflow types registered in the domain. Executions that were started before the domain was deprecated will continue to run. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Deprecates the specified domain. After a domain has been deprecated it cannot be used to create new workflow executions or register new types. However, you can still use visibility actions on this domain. Deprecating a domain also deprecates all activity and workflow types registered in the domain. Executions that were started before the domain was deprecated continues to run. This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. You cannot use an IAM policy to constrain this action's parameters. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func deprecateDomain(_ input: DeprecateDomainInput) throws { _ = try client.send(operation: "DeprecateDomain", path: "/", httpMethod: "POST", input: input) } - /// Used by workers to get an ActivityTask from the specified activity taskList. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available. The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll will return an empty result. An empty result, in this context, means that an ActivityTask is returned, but that the value of taskToken is an empty string. If a task is returned, the worker should use its type to identify and process it correctly. Workers should set their client side socket timeout to at least 70 seconds (10 seconds higher than the maximum time service may hold the poll request). Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Used by workers to get an ActivityTask from the specified activity taskList. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available. The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll returns an empty result. An empty result, in this context, means that an ActivityTask is returned, but that the value of taskToken is an empty string. If a task is returned, the worker should use its type to identify and process it correctly. Workers should set their client side socket timeout to at least 70 seconds (10 seconds higher than the maximum time service may hold the poll request). Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func pollForActivityTask(_ input: PollForActivityTaskInput) throws -> ActivityTask { return try client.send(operation: "PollForActivityTask", path: "/", httpMethod: "POST", input: input) } - /// Registers a new activity type along with its configuration settings in the specified domain. A TypeAlreadyExists fault is returned if the type already exists in the domain. You cannot change any configuration settings of the type after its registration, and it must be registered as a new version. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. defaultTaskList.name: String constraint. The key is swf:defaultTaskList.name. name: String constraint. The key is swf:name. version: String constraint. The key is swf:version. If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// Registers a new activity type along with its configuration settings in the specified domain. A TypeAlreadyExists fault is returned if the type already exists in the domain. You cannot change any configuration settings of the type after its registration, and it must be registered as a new version. Access Control You can use IAM policies to control this action's access to Amazon SWF resources as follows: Use a Resource element with the domain name to limit the action to only specified domains. Use an Action element to allow or deny permission to call this action. Constrain the following parameters by using a Condition element with the appropriate keys. defaultTaskList.name: String constraint. The key is swf:defaultTaskList.name. name: String constraint. The key is swf:name. version: String constraint. The key is swf:version. If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public func registerActivityType(_ input: RegisterActivityTypeInput) throws { _ = try client.send(operation: "RegisterActivityType", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/swf/Swf_Shapes.swift b/Sources/AWSSDKSwift/Services/swf/Swf_Shapes.swift index c9d0d1ab867..5bfc24cc107 100644 --- a/Sources/AWSSDKSwift/Services/swf/Swf_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/swf/Swf_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Swf { public struct RequestCancelWorkflowExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: false, type: .string), AWSShapeMember(label: "workflowId", required: true, type: .string), AWSShapeMember(label: "domain", required: true, type: .string) @@ -32,7 +32,7 @@ extension Swf { } public struct CountClosedWorkflowExecutionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "typeFilter", required: false, type: .structure), AWSShapeMember(label: "closeStatusFilter", required: false, type: .structure), AWSShapeMember(label: "tagFilter", required: false, type: .structure), @@ -41,17 +41,17 @@ extension Swf { AWSShapeMember(label: "startTimeFilter", required: false, type: .structure), AWSShapeMember(label: "domain", required: true, type: .string) ] - /// If specified, indicates the type of the workflow executions to be counted. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, indicates the type of the workflow executions to be counted. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let typeFilter: WorkflowTypeFilter? - /// If specified, only workflow executions that match this close status are counted. This filter has an affect only if executionStatus is specified as CLOSED. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only workflow executions that match this close status are counted. This filter has an affect only if executionStatus is specified as CLOSED. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let closeStatusFilter: CloseStatusFilter? - /// If specified, only executions that have a tag that matches the filter are counted. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only executions that have a tag that matches the filter are counted. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let tagFilter: TagFilter? - /// If specified, only workflow executions matching the WorkflowId in the filter are counted. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only workflow executions matching the WorkflowId in the filter are counted. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let executionFilter: WorkflowExecutionFilter? - /// If specified, only workflow executions that meet the close time criteria of the filter are counted. startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both. + /// If specified, only workflow executions that meet the close time criteria of the filter are counted. startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both. public let closeTimeFilter: ExecutionTimeFilter? - /// If specified, only workflow executions that meet the start time criteria of the filter are counted. startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both. + /// If specified, only workflow executions that meet the start time criteria of the filter are counted. startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both. public let startTimeFilter: ExecutionTimeFilter? /// The name of the domain containing the workflow executions to count. public let domain: String @@ -78,14 +78,14 @@ extension Swf { } public struct LambdaFunctionTimedOutEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduledEventId", required: true, type: .long), AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "timeoutType", required: false, type: .enum) ] - /// The ID of the LambdaFunctionScheduled event that was recorded when this AWS Lambda function was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the LambdaFunctionScheduled event that was recorded when this activity task was scheduled. To help diagnose issues, use this information to trace back the chain of events leading up to this event. public let scheduledEventId: Int64 - /// The ID of the LambdaFunctionStarted event recorded in the history. + /// The ID of the ActivityTaskStarted event that was recorded when this activity task started. To help diagnose issues, use this information to trace back the chain of events leading up to this event. public let startedEventId: Int64 /// The type of the timeout that caused this event. public let timeoutType: LambdaFunctionTimeoutType? @@ -104,13 +104,13 @@ extension Swf { } public struct ActivityType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "version", required: true, type: .string) ] - /// The name of this activity. The combination of activity type name and version must be unique within a domain. + /// The name of this activity. The combination of activity type name and version must be unique within a domain. public let name: String - /// The version of this activity. The combination of activity type name and version must be unique with in a domain. + /// The version of this activity. The combination of activity type name and version must be unique with in a domain. public let version: String public init(name: String, version: String) { @@ -125,7 +125,7 @@ extension Swf { } public struct DecisionTask: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "previousStartedEventId", required: false, type: .long), AWSShapeMember(label: "taskToken", required: true, type: .string), AWSShapeMember(label: "workflowType", required: true, type: .structure), @@ -177,7 +177,7 @@ extension Swf { } public struct StartChildWorkflowExecutionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "workflowType", required: true, type: .structure), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), @@ -185,16 +185,17 @@ extension Swf { AWSShapeMember(label: "cause", required: true, type: .enum), AWSShapeMember(label: "control", required: false, type: .string) ] - /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// When the cause is WORKFLOW_ALREADY_RUNNING, initiatedEventId is the ID of the StartChildWorkflowExecutionInitiated event that corresponds to the StartChildWorkflowExecution Decision to start the workflow execution. You can use this information to diagnose problems by tracing back the chain of events leading up to this event. When the cause isn't WORKFLOW_ALREADY_RUNNING, initiatedEventId is set to 0 because the StartChildWorkflowExecutionInitiated event doesn't exist. public let initiatedEventId: Int64 - /// The workflow type provided in the StartChildWorkflowExecution decision that failed. + /// The workflow type provided in the StartChildWorkflowExecution Decision that failed. public let workflowType: WorkflowType - /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartChildWorkflowExecution decision to request this child workflow execution. This information can be useful for diagnosing problems by tracing back the cause of events. + /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartChildWorkflowExecution Decision to request this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events. public let decisionTaskCompletedEventId: Int64 /// The workflowId of the child workflow execution. public let workflowId: String - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. When cause is set to OPERATION_NOT_PERMITTED, the decision fails because it lacks sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: StartChildWorkflowExecutionFailedCause + /// The data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the child workflow execution. public let control: String? public init(initiatedEventId: Int64, workflowType: WorkflowType, decisionTaskCompletedEventId: Int64, workflowId: String, cause: StartChildWorkflowExecutionFailedCause, control: String? = nil) { @@ -230,7 +231,7 @@ extension Swf { } public struct WorkflowExecutionInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "execution", required: true, type: .structure), AWSShapeMember(label: "startTimestamp", required: true, type: .timestamp), AWSShapeMember(label: "parent", required: false, type: .structure), @@ -253,7 +254,7 @@ extension Swf { public let cancelRequested: Bool? /// The time when the workflow execution was closed. Set only if the execution status is CLOSED. public let closeTimestamp: TimeStamp? - /// If the execution status is closed then this specifies how the execution was closed: COMPLETED: the execution was successfully completed. CANCELED: the execution was canceled.Cancellation allows the implementation to gracefully clean up before the execution is closed. TERMINATED: the execution was force terminated. FAILED: the execution failed to complete. TIMED_OUT: the execution did not complete in the alloted time and was automatically timed out. CONTINUED_AS_NEW: the execution is logically continued. This means the current execution was completed and a new execution was started to carry on the workflow. + /// If the execution status is closed then this specifies how the execution was closed: COMPLETED – the execution was successfully completed. CANCELED – the execution was canceled.Cancellation allows the implementation to gracefully clean up before the execution is closed. TERMINATED – the execution was force terminated. FAILED – the execution failed to complete. TIMED_OUT – the execution did not complete in the alloted time and was automatically timed out. CONTINUED_AS_NEW – the execution is logically continued. This means the current execution was completed and a new execution was started to carry on the workflow. public let closeStatus: CloseStatus? /// The type of the workflow execution. public let workflowType: WorkflowType @@ -286,10 +287,10 @@ extension Swf { } public struct CancelWorkflowExecutionDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string) ] - /// Optional. details of the cancellation. + /// Details of the cancellation. public let details: String? public init(details: String? = nil) { @@ -308,13 +309,13 @@ extension Swf { } public struct WorkflowType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "version", required: true, type: .string) ] - /// Required. The name of the workflow type. The combination of workflow type name and version must be unique with in a domain. + /// The name of the workflow type. The combination of workflow type name and version must be unique with in a domain. public let name: String - /// Required. The version of the workflow type. The combination of workflow type name and version must be unique with in a domain. + /// The version of the workflow type. The combination of workflow type name and version must be unique with in a domain. public let version: String public init(name: String, version: String) { @@ -329,7 +330,7 @@ extension Swf { } public struct PollForDecisionTaskInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "identity", required: false, type: .string), AWSShapeMember(label: "maximumPageSize", required: false, type: .integer), AWSShapeMember(label: "taskList", required: true, type: .structure), @@ -339,13 +340,13 @@ extension Swf { ] /// Identity of the decider making the request, which is recorded in the DecisionTaskStarted event in the workflow history. This enables diagnostic tracing when problems arise. The form of this identity is user defined. public let identity: String? - /// The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. public let maximumPageSize: Int32? - /// Specifies the task list to poll for decision tasks. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// Specifies the task list to poll for decision tasks. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let taskList: TaskList /// When set to true, returns the events in reverse order. By default the results are returned in ascending order of the eventTimestamp of the events. public let reverseOrder: Bool? - /// If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged. The configured maximumPageSize determines how many results can be returned in a single call. The nextPageToken returned by this action cannot be used with GetWorkflowExecutionHistory to get the next page. You must call PollForDecisionTask again (with the nextPageToken) to retrieve the next page of history records. Calling PollForDecisionTask with a nextPageToken will not return a new decision task.. + /// If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged. The configured maximumPageSize determines how many results can be returned in a single call. The nextPageToken returned by this action cannot be used with GetWorkflowExecutionHistory to get the next page. You must call PollForDecisionTask again (with the nextPageToken) to retrieve the next page of history records. Calling PollForDecisionTask with a nextPageToken doesn't return a new decision task. public let nextPageToken: String? /// The name of the domain containing the task lists to poll. public let domain: String @@ -370,13 +371,13 @@ extension Swf { } public struct WorkflowTypeDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "typeInfo", required: true, type: .structure), AWSShapeMember(label: "configuration", required: true, type: .structure) ] - /// General information about the workflow type. The status of the workflow type (returned in the WorkflowTypeInfo structure) can be one of the following. REGISTERED: The type is registered and available. Workers supporting this type should be running. DEPRECATED: The type was deprecated using DeprecateWorkflowType, but is still in use. You should keep workers supporting this type running. You cannot create new workflow executions of this type. + /// General information about the workflow type. The status of the workflow type (returned in the WorkflowTypeInfo structure) can be one of the following. REGISTERED – The type is registered and available. Workers supporting this type should be running. DEPRECATED – The type was deprecated using DeprecateWorkflowType, but is still in use. You should keep workers supporting this type running. You cannot create new workflow executions of this type. public let typeInfo: WorkflowTypeInfo - /// Configuration settings of the workflow type registered through RegisterWorkflowType + /// Configuration settings of the workflow type registered through RegisterWorkflowType public let configuration: WorkflowTypeConfiguration public init(typeInfo: WorkflowTypeInfo, configuration: WorkflowTypeConfiguration) { @@ -391,7 +392,7 @@ extension Swf { } public struct DecisionTaskCompletedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduledEventId", required: true, type: .long), AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "executionContext", required: false, type: .string) @@ -417,11 +418,13 @@ extension Swf { } public struct DomainDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domainInfo", required: true, type: .structure), AWSShapeMember(label: "configuration", required: true, type: .structure) ] + /// The basic information about a domain, such as its name, status, and description. public let domainInfo: DomainInfo + /// The domain configuration. Currently, this includes only the domain's retention period. public let configuration: DomainConfiguration public init(domainInfo: DomainInfo, configuration: DomainConfiguration) { @@ -436,14 +439,14 @@ extension Swf { } public struct RespondActivityTaskFailedInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "taskToken", required: true, type: .string), AWSShapeMember(label: "reason", required: false, type: .string) ] - /// Optional. Detailed information about the failure. + /// Detailed information about the failure. public let details: String? - /// The taskToken of the ActivityTask. taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. + /// The taskToken of the ActivityTask. taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. public let taskToken: String /// Description of the error that may assist in diagnostics. public let reason: String? @@ -462,14 +465,14 @@ extension Swf { } public struct CancelTimerFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "cause", required: true, type: .enum), AWSShapeMember(label: "timerId", required: true, type: .string) ] /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelTimer decision to cancel this timer. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: CancelTimerFailedCause /// The timerId provided in the CancelTimer decision that failed. public let timerId: String @@ -488,7 +491,7 @@ extension Swf { } public struct DescribeDomainInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string) ] /// The name of the domain to describe. @@ -511,16 +514,16 @@ extension Swf { } public struct StartTimerDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "timerId", required: true, type: .string), AWSShapeMember(label: "startToFireTimeout", required: true, type: .string), AWSShapeMember(label: "control", required: false, type: .string) ] - /// Required. The unique ID of the timer. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// The unique ID of the timer. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let timerId: String - /// Required. The duration to wait before firing the timer. The duration is specified in seconds; an integer greater than or equal to 0. + /// The duration to wait before firing the timer. The duration is specified in seconds, an integer greater than or equal to 0. public let startToFireTimeout: String - /// Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. + /// The data attached to the event that can be used by the decider in subsequent workflow tasks. public let control: String? public init(timerId: String, startToFireTimeout: String, control: String? = nil) { @@ -537,7 +540,7 @@ extension Swf { } public struct DescribeWorkflowTypeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "workflowType", required: true, type: .structure) ] @@ -558,7 +561,7 @@ extension Swf { } public struct ExecutionTimeFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "oldestDate", required: true, type: .timestamp), AWSShapeMember(label: "latestDate", required: false, type: .timestamp) ] @@ -579,7 +582,7 @@ extension Swf { } public struct PollForActivityTaskInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "identity", required: false, type: .string), AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "taskList", required: true, type: .structure) @@ -588,7 +591,7 @@ extension Swf { public let identity: String? /// The name of the domain that contains the task lists being polled. public let domain: String - /// Specifies the task list to poll for activity tasks. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// Specifies the task list to poll for activity tasks. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let taskList: TaskList public init(identity: String? = nil, domain: String, taskList: TaskList) { @@ -605,7 +608,7 @@ extension Swf { } public struct ListClosedWorkflowExecutionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "typeFilter", required: false, type: .structure), AWSShapeMember(label: "closeStatusFilter", required: false, type: .structure), AWSShapeMember(label: "tagFilter", required: false, type: .structure), @@ -617,19 +620,19 @@ extension Swf { AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "nextPageToken", required: false, type: .string) ] - /// If specified, only executions of the type specified in the filter are returned. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only executions of the type specified in the filter are returned. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let typeFilter: WorkflowTypeFilter? - /// If specified, only workflow executions that match this close status are listed. For example, if TERMINATED is specified, then only TERMINATED workflow executions are listed. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only workflow executions that match this close status are listed. For example, if TERMINATED is specified, then only TERMINATED workflow executions are listed. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let closeStatusFilter: CloseStatusFilter? - /// If specified, only executions that have the matching tag are listed. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only executions that have the matching tag are listed. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let tagFilter: TagFilter? - /// The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. public let maximumPageSize: Int32? - /// If specified, only workflow executions matching the workflow ID specified in the filter are returned. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only workflow executions matching the workflow ID specified in the filter are returned. closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let executionFilter: WorkflowExecutionFilter? - /// If specified, the workflow executions are included in the returned results based on whether their close times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their close times. startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both. + /// If specified, the workflow executions are included in the returned results based on whether their close times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their close times. startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both. public let closeTimeFilter: ExecutionTimeFilter? - /// If specified, the workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their start times. startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both. + /// If specified, the workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their start times. startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both. public let startTimeFilter: ExecutionTimeFilter? /// When set to true, returns the results in reverse order. By default the results are returned in descending order of the start or the close time of the executions. public let reverseOrder: Bool? @@ -666,7 +669,7 @@ extension Swf { } public struct ActivityTask: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskToken", required: true, type: .string), AWSShapeMember(label: "input", required: false, type: .string), AWSShapeMember(label: "startedEventId", required: true, type: .long), @@ -707,7 +710,7 @@ extension Swf { } public struct DescribeActivityTypeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "activityType", required: true, type: .structure), AWSShapeMember(label: "domain", required: true, type: .string) ] @@ -728,10 +731,10 @@ extension Swf { } public struct TagFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "tag", required: true, type: .string) ] - /// Required. Specifies the tag that must be associated with the execution for it to meet the filter criteria. + /// Specifies the tag that must be associated with the execution for it to meet the filter criteria. public let tag: String public init(tag: String) { @@ -744,7 +747,7 @@ extension Swf { } public struct TaskList: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string) ] /// The name of the task list. @@ -766,17 +769,17 @@ extension Swf { } public struct WorkflowExecutionTerminatedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "reason", required: false, type: .string), AWSShapeMember(label: "childPolicy", required: true, type: .enum), AWSShapeMember(label: "cause", required: false, type: .enum) ] - /// The details provided for the termination (if any). + /// The details provided for the termination. public let details: String? - /// The reason provided for the termination (if any). + /// The reason provided for the termination. public let reason: String? - /// The policy used for the child workflow executions of this workflow execution. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. + /// The policy used for the child workflow executions of this workflow execution. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. public let childPolicy: ChildPolicy /// If set, indicates that the workflow execution was automatically terminated, and specifies the cause. This happens if the parent workflow execution times out or is terminated and the child policy is set to terminate child executions. public let cause: WorkflowExecutionTerminatedCause? @@ -803,7 +806,7 @@ extension Swf { } public struct ScheduleActivityTaskFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "activityType", required: true, type: .structure), AWSShapeMember(label: "activityId", required: true, type: .string), @@ -815,7 +818,7 @@ extension Swf { public let activityType: ActivityType /// The activityId provided in the ScheduleActivityTask decision that failed. public let activityId: String - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: ScheduleActivityTaskFailedCause public init(decisionTaskCompletedEventId: Int64, activityType: ActivityType, activityId: String, cause: ScheduleActivityTaskFailedCause) { @@ -834,16 +837,16 @@ extension Swf { } public struct RequestCancelExternalWorkflowExecutionDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: false, type: .string), AWSShapeMember(label: "workflowId", required: true, type: .string), AWSShapeMember(label: "control", required: false, type: .string) ] /// The runId of the external workflow execution to cancel. public let runId: String? - /// Required. The workflowId of the external workflow execution to cancel. + /// The workflowId of the external workflow execution to cancel. public let workflowId: String - /// Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. + /// The data attached to the event that can be used by the decider in subsequent workflow tasks. public let control: String? public init(runId: String? = nil, workflowId: String, control: String? = nil) { @@ -860,7 +863,7 @@ extension Swf { } public struct StartWorkflowExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lambdaRole", required: false, type: .string), AWSShapeMember(label: "executionStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "taskList", required: false, type: .structure), @@ -873,15 +876,15 @@ extension Swf { AWSShapeMember(label: "childPolicy", required: false, type: .enum), AWSShapeMember(label: "domain", required: true, type: .string) ] - /// The ARN of an IAM role that authorizes Amazon SWF to invoke AWS Lambda functions. In order for this workflow execution to invoke AWS Lambda functions, an appropriate IAM role must be specified either as a default for the workflow type or through this field. + /// The IAM role to attach to this workflow execution. Executions of this workflow type need IAM roles to invoke Lambda functions. If you don't attach an IAM role, any attempt to schedule a Lambda task fails. This results in a ScheduleLambdaFunctionFailed history event. For more information, see http://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html in the Amazon SWF Developer Guide. public let lambdaRole: String? - /// The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The duration is specified in seconds; an integer greater than or equal to 0. Exceeding this limit will cause the workflow execution to time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for this timeout; there is a one-year max limit on the time that a workflow execution can run. An execution start-to-close timeout must be specified either through this parameter or as a default when the workflow type is registered. If neither this parameter nor a default execution start-to-close timeout is specified, a fault is returned. + /// The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The duration is specified in seconds; an integer greater than or equal to 0. Exceeding this limit causes the workflow execution to time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for this timeout; there is a one-year max limit on the time that a workflow execution can run. An execution start-to-close timeout must be specified either through this parameter or as a default when the workflow type is registered. If neither this parameter nor a default execution start-to-close timeout is specified, a fault is returned. public let executionStartToCloseTimeout: String? - /// The task list to use for the decision tasks generated for this workflow execution. This overrides the defaultTaskList specified when registering the workflow type. A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault will be returned. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// The task list to use for the decision tasks generated for this workflow execution. This overrides the defaultTaskList specified when registering the workflow type. A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault is returned. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let taskList: TaskList? - /// The user defined identifier associated with the workflow execution. You can use this to associate a custom identifier with the workflow execution. You may specify the same identifier if a workflow execution is logically a restart of a previous execution. You cannot have two open workflow executions with the same workflowId at the same time. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// The user defined identifier associated with the workflow execution. You can use this to associate a custom identifier with the workflow execution. You may specify the same identifier if a workflow execution is logically a restart of a previous execution. You cannot have two open workflow executions with the same workflowId at the same time. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let workflowId: String - /// The task priority to use for this workflow execution. This will override any default priority that was assigned when the workflow type was registered. If not set, then the default task priority for the workflow type will be used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// The task priority to use for this workflow execution. This overrides any default priority that was assigned when the workflow type was registered. If not set, then the default task priority for the workflow type is used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let taskPriority: String? /// The list of tags to associate with the workflow execution. You can specify a maximum of 5 tags. You can list workflow executions with a specific tag by calling ListOpenWorkflowExecutions or ListClosedWorkflowExecutions and specifying a TagFilter. public let tagList: [String]? @@ -889,9 +892,9 @@ extension Swf { public let input: String? /// The type of the workflow to start. public let workflowType: WorkflowType - /// Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned. + /// Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault is returned. public let taskStartToCloseTimeout: String? - /// If set, specifies the policy to use for the child workflow executions of this workflow execution if it is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned. + /// If set, specifies the policy to use for the child workflow executions of this workflow execution if it is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault is returned. public let childPolicy: ChildPolicy? /// The name of the domain in which the workflow execution is created. public let domain: String @@ -926,7 +929,7 @@ extension Swf { } public struct ListWorkflowTypesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maximumPageSize", required: false, type: .integer), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "nextPageToken", required: false, type: .string), @@ -934,7 +937,7 @@ extension Swf { AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "registrationStatus", required: true, type: .enum) ] - /// The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. public let maximumPageSize: Int32? /// If specified, lists the workflow type with this name. public let name: String? @@ -967,19 +970,19 @@ extension Swf { } public struct ScheduleLambdaFunctionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "id", required: true, type: .string), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "cause", required: true, type: .enum) ] - /// The name of the scheduled AWS Lambda function. + /// The name of the Lambda function. public let name: String - /// The unique Amazon SWF ID of the AWS Lambda task. + /// The ID provided in the ScheduleLambdaFunction decision that failed. public let id: String - /// The ID of the DecisionTaskCompleted event corresponding to the decision that resulted in the scheduling of this AWS Lambda function. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the LambdaFunctionCompleted event corresponding to the decision that resulted in scheduling this Lambda task. To help diagnose issues, use this information to trace back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. To help diagnose issues, use this information to trace back the chain of events leading up to this event. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: ScheduleLambdaFunctionFailedCause public init(name: String, id: String, decisionTaskCompletedEventId: Int64, cause: ScheduleLambdaFunctionFailedCause) { @@ -1013,7 +1016,7 @@ extension Swf { } public struct ChildWorkflowExecutionCanceledEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "workflowType", required: true, type: .structure), @@ -1022,7 +1025,7 @@ extension Swf { ] /// Details of the cancellation (if provided). public let details: String? - /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let initiatedEventId: Int64 /// The type of the child workflow execution. public let workflowType: WorkflowType @@ -1049,7 +1052,7 @@ extension Swf { } public struct ScheduleActivityTaskDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskList", required: false, type: .structure), AWSShapeMember(label: "activityId", required: true, type: .string), AWSShapeMember(label: "scheduleToCloseTimeout", required: false, type: .string), @@ -1061,25 +1064,25 @@ extension Swf { AWSShapeMember(label: "heartbeatTimeout", required: false, type: .string), AWSShapeMember(label: "activityType", required: true, type: .structure) ] - /// If set, specifies the name of the task list in which to schedule the activity task. If not specified, the defaultTaskList registered with the activity type will be used. A task list for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default task list was specified at registration time then a fault will be returned. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// If set, specifies the name of the task list in which to schedule the activity task. If not specified, the defaultTaskList registered with the activity type is used. A task list for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default task list was specified at registration time then a fault is returned. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let taskList: TaskList? - /// Required. The activityId of the activity task. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// The activityId of the activity task. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let activityId: String - /// The maximum duration for this activity task. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. A schedule-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-close timeout was specified at registration time then a fault will be returned. + /// The maximum duration for this activity task. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. A schedule-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-close timeout was specified at registration time then a fault is returned. public let scheduleToCloseTimeout: String? - /// Optional. If set, specifies the maximum duration the activity task can wait to be assigned to a worker. This overrides the default schedule-to-start timeout specified when registering the activity type using RegisterActivityType. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. A schedule-to-start timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-start timeout was specified at registration time then a fault will be returned. + /// If set, specifies the maximum duration the activity task can wait to be assigned to a worker. This overrides the default schedule-to-start timeout specified when registering the activity type using RegisterActivityType. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. A schedule-to-start timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-start timeout was specified at registration time then a fault is returned. public let scheduleToStartTimeout: String? - /// Optional. If set, specifies the priority with which the activity task is to be assigned to a worker. This overrides the defaultTaskPriority specified when registering the activity type using RegisterActivityType. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// If set, specifies the priority with which the activity task is to be assigned to a worker. This overrides the defaultTaskPriority specified when registering the activity type using RegisterActivityType. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let taskPriority: String? - /// If set, specifies the maximum duration a worker may take to process this activity task. This overrides the default start-to-close timeout specified when registering the activity type using RegisterActivityType. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. A start-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default start-to-close timeout was specified at registration time then a fault will be returned. + /// If set, specifies the maximum duration a worker may take to process this activity task. This overrides the default start-to-close timeout specified when registering the activity type using RegisterActivityType. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. A start-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default start-to-close timeout was specified at registration time then a fault is returned. public let startToCloseTimeout: String? /// The input provided to the activity task. public let input: String? - /// Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the activity. + /// Data attached to the event that can be used by the decider in subsequent workflow tasks. This data isn't sent to the activity. public let control: String? - /// If set, specifies the maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or returns a result, it will be ignored. This overrides the default heartbeat timeout specified when registering the activity type using RegisterActivityType. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// If set, specifies the maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or returns a result, it is ignored. This overrides the default heartbeat timeout specified when registering the activity type using RegisterActivityType. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let heartbeatTimeout: String? - /// Required. The type of the activity task to schedule. + /// The type of the activity task to schedule. public let activityType: ActivityType public init(taskList: TaskList? = nil, activityId: String, scheduleToCloseTimeout: String? = nil, scheduleToStartTimeout: String? = nil, taskPriority: String? = nil, startToCloseTimeout: String? = nil, input: String? = nil, control: String? = nil, heartbeatTimeout: String? = nil, activityType: ActivityType) { @@ -1110,13 +1113,13 @@ extension Swf { } public struct ChildWorkflowExecutionTerminatedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "workflowType", required: true, type: .structure), AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "workflowExecution", required: true, type: .structure) ] - /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let initiatedEventId: Int64 /// The type of the child workflow execution. public let workflowType: WorkflowType @@ -1141,7 +1144,7 @@ extension Swf { } public struct StartChildWorkflowExecutionDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lambdaRole", required: false, type: .string), AWSShapeMember(label: "taskList", required: false, type: .structure), AWSShapeMember(label: "workflowId", required: true, type: .string), @@ -1154,27 +1157,27 @@ extension Swf { AWSShapeMember(label: "taskStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "executionStartToCloseTimeout", required: false, type: .string) ] - /// The ARN of an IAM role that authorizes Amazon SWF to invoke AWS Lambda functions. In order for this workflow execution to invoke AWS Lambda functions, an appropriate IAM role must be specified either as a default for the workflow type or through this field. + /// The IAM role attached to the child workflow execution. public let lambdaRole: String? - /// The name of the task list to be used for decision tasks of the child workflow execution. A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault will be returned. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// The name of the task list to be used for decision tasks of the child workflow execution. A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault is returned. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let taskList: TaskList? - /// Required. The workflowId of the workflow execution. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// The workflowId of the workflow execution. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let workflowId: String - /// Optional. A task priority that, if set, specifies the priority for a decision task of this workflow execution. This overrides the defaultTaskPriority specified when registering the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// A task priority that, if set, specifies the priority for a decision task of this workflow execution. This overrides the defaultTaskPriority specified when registering the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let taskPriority: String? - /// Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the child workflow execution. + /// The data attached to the event that can be used by the decider in subsequent workflow tasks. This data isn't sent to the child workflow execution. public let control: String? /// The list of tags to associate with the child workflow execution. A maximum of 5 tags can be specified. You can list workflow executions with a specific tag by calling ListOpenWorkflowExecutions or ListClosedWorkflowExecutions and specifying a TagFilter. public let tagList: [String]? /// The input to be provided to the workflow execution. public let input: String? - /// Required. The type of the workflow execution to be started. + /// The type of the workflow execution to be started. public let workflowType: WorkflowType - /// Optional. If set, specifies the policy to use for the child workflow executions if the workflow execution being started is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned. + /// If set, specifies the policy to use for the child workflow executions if the workflow execution being started is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault is returned. public let childPolicy: ChildPolicy? - /// Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned. + /// Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault is returned. public let taskStartToCloseTimeout: String? - /// The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default execution start-to-close timeout was specified at registration time then a fault will be returned. + /// The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default execution start-to-close timeout was specified at registration time then a fault is returned. public let executionStartToCloseTimeout: String? public init(lambdaRole: String? = nil, taskList: TaskList? = nil, workflowId: String, taskPriority: String? = nil, control: String? = nil, tagList: [String]? = nil, input: String? = nil, workflowType: WorkflowType, childPolicy: ChildPolicy? = nil, taskStartToCloseTimeout: String? = nil, executionStartToCloseTimeout: String? = nil) { @@ -1207,14 +1210,14 @@ extension Swf { } public struct WorkflowExecutionOpenCounts: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "openLambdaFunctions", required: false, type: .integer), AWSShapeMember(label: "openActivityTasks", required: true, type: .integer), AWSShapeMember(label: "openTimers", required: true, type: .integer), AWSShapeMember(label: "openChildWorkflowExecutions", required: true, type: .integer), AWSShapeMember(label: "openDecisionTasks", required: true, type: .integer) ] - /// The count of AWS Lambda functions that are currently executing. + /// The count of Lambda tasks whose status is OPEN. public let openLambdaFunctions: Int32? /// The count of activity tasks whose status is OPEN. public let openActivityTasks: Int32 @@ -1243,20 +1246,20 @@ extension Swf { } public struct CountOpenWorkflowExecutionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "typeFilter", required: false, type: .structure), AWSShapeMember(label: "executionFilter", required: false, type: .structure), AWSShapeMember(label: "startTimeFilter", required: true, type: .structure), AWSShapeMember(label: "tagFilter", required: false, type: .structure), AWSShapeMember(label: "domain", required: true, type: .string) ] - /// Specifies the type of the workflow executions to be counted. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// Specifies the type of the workflow executions to be counted. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let typeFilter: WorkflowTypeFilter? - /// If specified, only workflow executions matching the WorkflowId in the filter are counted. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only workflow executions matching the WorkflowId in the filter are counted. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let executionFilter: WorkflowExecutionFilter? /// Specifies the start time criteria that workflow executions must meet in order to be counted. public let startTimeFilter: ExecutionTimeFilter - /// If specified, only executions that have a tag that matches the filter are counted. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only executions that have a tag that matches the filter are counted. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let tagFilter: TagFilter? /// The name of the domain containing the workflow executions to count. public let domain: String @@ -1279,14 +1282,14 @@ extension Swf { } public struct ChildWorkflowExecutionTimedOutEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "timeoutType", required: true, type: .enum), AWSShapeMember(label: "workflowType", required: true, type: .structure), AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "workflowExecution", required: true, type: .structure) ] - /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let initiatedEventId: Int64 /// The type of the timeout that caused the child workflow execution to time out. public let timeoutType: WorkflowExecutionTimeoutType @@ -1315,30 +1318,34 @@ extension Swf { } public struct LambdaFunctionScheduledEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "input", required: false, type: .string), AWSShapeMember(label: "startToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "id", required: true, type: .string), - AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long) + AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), + AWSShapeMember(label: "control", required: false, type: .string) ] - /// The name of the scheduled AWS Lambda function. + /// The name of the Lambda function. public let name: String - /// Input provided to the AWS Lambda function. + /// The input provided to the Lambda task. public let input: String? - /// The maximum time, in seconds, that the AWS Lambda function can take to execute from start to close before it is marked as failed. + /// The maximum amount of time a worker can take to process the Lambda task. public let startToCloseTimeout: String? - /// The unique Amazon SWF ID for the AWS Lambda task. + /// The unique ID of the Lambda task. public let id: String - /// The ID of the DecisionTaskCompleted event for the decision that resulted in the scheduling of this AWS Lambda function. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the LambdaFunctionCompleted event corresponding to the decision that resulted in scheduling this activity task. To help diagnose issues, use this information to trace back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 + /// Data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the Lambda task. + public let control: String? - public init(name: String, input: String? = nil, startToCloseTimeout: String? = nil, id: String, decisionTaskCompletedEventId: Int64) { + public init(name: String, input: String? = nil, startToCloseTimeout: String? = nil, id: String, decisionTaskCompletedEventId: Int64, control: String? = nil) { self.name = name self.input = input self.startToCloseTimeout = startToCloseTimeout self.id = id self.decisionTaskCompletedEventId = decisionTaskCompletedEventId + self.control = control } private enum CodingKeys: String, CodingKey { @@ -1347,11 +1354,12 @@ extension Swf { case startToCloseTimeout = "startToCloseTimeout" case id = "id" case decisionTaskCompletedEventId = "decisionTaskCompletedEventId" + case control = "control" } } public struct TimerFiredEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "timerId", required: true, type: .string) ] @@ -1372,16 +1380,16 @@ extension Swf { } public struct ChildWorkflowExecutionStartedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "workflowExecution", required: true, type: .structure), AWSShapeMember(label: "workflowType", required: true, type: .structure) ] - /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let initiatedEventId: Int64 /// The child workflow execution that was started. public let workflowExecution: WorkflowExecution - /// The type of the child workflow execution. + /// The type of the child workflow execution. public let workflowType: WorkflowType public init(initiatedEventId: Int64, workflowExecution: WorkflowExecution, workflowType: WorkflowType) { @@ -1406,7 +1414,7 @@ extension Swf { } public struct DeprecateWorkflowTypeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "workflowType", required: true, type: .structure) ] @@ -1427,10 +1435,10 @@ extension Swf { } public struct CloseStatusFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "status", required: true, type: .enum) ] - /// Required. The close status that must match the close status of an execution for it to meet the criteria of this filter. + /// The close status that must match the close status of an execution for it to meet the criteria of this filter. public let status: CloseStatus public init(status: CloseStatus) { @@ -1448,7 +1456,7 @@ extension Swf { } public struct WorkflowExecutionCancelRequestedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "externalWorkflowExecution", required: false, type: .structure), AWSShapeMember(label: "cause", required: false, type: .enum), AWSShapeMember(label: "externalInitiatedEventId", required: false, type: .long) @@ -1474,7 +1482,7 @@ extension Swf { } public struct ActivityTaskCancelRequestedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "activityId", required: true, type: .string) ] @@ -1495,11 +1503,11 @@ extension Swf { } public struct WorkflowExecutionCanceledEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long) ] - /// Details for the cancellation (if any). + /// The details of the cancellation. public let details: String? /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelWorkflowExecution decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 @@ -1516,7 +1524,7 @@ extension Swf { } public struct History: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextPageToken", required: false, type: .string), AWSShapeMember(label: "events", required: true, type: .list) ] @@ -1537,7 +1545,7 @@ extension Swf { } public struct DomainConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "workflowExecutionRetentionPeriodInDays", required: true, type: .string) ] /// The retention period for workflow executions in this domain. @@ -1553,7 +1561,7 @@ extension Swf { } public struct WorkflowExecutionStartedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lambdaRole", required: false, type: .string), AWSShapeMember(label: "parentWorkflowExecution", required: false, type: .structure), AWSShapeMember(label: "executionStartToCloseTimeout", required: false, type: .string), @@ -1567,26 +1575,27 @@ extension Swf { AWSShapeMember(label: "taskStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "continuedExecutionRunId", required: false, type: .string) ] - /// The IAM role attached to this workflow execution to use when invoking AWS Lambda functions. + /// The IAM role attached to the workflow execution. public let lambdaRole: String? - /// The source workflow execution that started this workflow execution. The member is not set if the workflow execution was not started by a workflow. + /// The source workflow execution that started this workflow execution. The member isn't set if the workflow execution was not started by a workflow. public let parentWorkflowExecution: WorkflowExecution? - /// The maximum duration for this workflow execution. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The maximum duration for this workflow execution. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let executionStartToCloseTimeout: String? /// The name of the task list for scheduling the decision tasks for this workflow execution. public let taskList: TaskList + /// The priority of the decision tasks in the workflow execution. public let taskPriority: String? /// The list of tags associated with this workflow execution. An execution can have up to 5 tags. public let tagList: [String]? - /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this workflow execution. The source event with this ID can be found in the history of the source workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this workflow execution. The source event with this ID can be found in the history of the source workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let parentInitiatedEventId: Int64? - /// The input provided to the workflow execution (if any). + /// The input provided to the workflow execution. public let input: String? /// The workflow type of this execution. public let workflowType: WorkflowType - /// The policy to use for the child workflow executions if this workflow execution is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. + /// The policy to use for the child workflow executions if this workflow execution is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. public let childPolicy: ChildPolicy - /// The maximum duration of decision tasks for this workflow type. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The maximum duration of decision tasks for this workflow type. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let taskStartToCloseTimeout: String? /// If this workflow execution was started due to a ContinueAsNewWorkflowExecution decision, then it contains the runId of the previous workflow execution that was closed and continued as this execution. public let continuedExecutionRunId: String? @@ -1623,7 +1632,7 @@ extension Swf { } public struct WorkflowExecutionConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lambdaRole", required: false, type: .string), AWSShapeMember(label: "executionStartToCloseTimeout", required: true, type: .string), AWSShapeMember(label: "taskList", required: true, type: .structure), @@ -1631,17 +1640,17 @@ extension Swf { AWSShapeMember(label: "taskPriority", required: false, type: .string), AWSShapeMember(label: "childPolicy", required: true, type: .enum) ] - /// The IAM role used by this workflow execution when invoking AWS Lambda functions. + /// The IAM role attached to the child workflow execution. public let lambdaRole: String? - /// The total duration for this workflow execution. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The total duration for this workflow execution. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let executionStartToCloseTimeout: String /// The task list used for the decision tasks generated for this workflow execution. public let taskList: TaskList - /// The maximum duration allowed for decision tasks for this workflow execution. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The maximum duration allowed for decision tasks for this workflow execution. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let taskStartToCloseTimeout: String - /// The priority assigned to decision tasks for this workflow execution. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// The priority assigned to decision tasks for this workflow execution. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let taskPriority: String? - /// The policy to use for the child workflow executions if this workflow execution is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. + /// The policy to use for the child workflow executions if this workflow execution is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. public let childPolicy: ChildPolicy public init(lambdaRole: String? = nil, executionStartToCloseTimeout: String, taskList: TaskList, taskStartToCloseTimeout: String, taskPriority: String? = nil, childPolicy: ChildPolicy) { @@ -1664,7 +1673,7 @@ extension Swf { } public struct WorkflowExecutionInfos: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextPageToken", required: false, type: .string), AWSShapeMember(label: "executionInfos", required: true, type: .list) ] @@ -1693,11 +1702,11 @@ extension Swf { } public struct ActivityTypeDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "typeInfo", required: true, type: .structure), AWSShapeMember(label: "configuration", required: true, type: .structure) ] - /// General information about the activity type. The status of activity type (returned in the ActivityTypeInfo structure) can be one of the following. REGISTERED: The type is registered and available. Workers supporting this type should be running. DEPRECATED: The type was deprecated using DeprecateActivityType, but is still in use. You should keep workers supporting this type running. You cannot create new tasks of this type. + /// General information about the activity type. The status of activity type (returned in the ActivityTypeInfo structure) can be one of the following. REGISTERED – The type is registered and available. Workers supporting this type should be running. DEPRECATED – The type was deprecated using DeprecateActivityType, but is still in use. You should keep workers supporting this type running. You cannot create new tasks of this type. public let typeInfo: ActivityTypeInfo /// The configuration settings registered with the activity type. public let configuration: ActivityTypeConfiguration @@ -1714,7 +1723,7 @@ extension Swf { } public struct RegisterWorkflowTypeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "defaultTaskStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "defaultLambdaRole", required: false, type: .string), @@ -1726,25 +1735,25 @@ extension Swf { AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "defaultChildPolicy", required: false, type: .enum) ] - /// The name of the workflow type. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// The name of the workflow type. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let name: String - /// If set, specifies the default maximum duration of decision tasks for this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// If set, specifies the default maximum duration of decision tasks for this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultTaskStartToCloseTimeout: String? - /// The ARN of the default IAM role to use when a workflow execution of this type invokes AWS Lambda functions. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution and ContinueAsNewWorkflowExecution decision. + /// The default IAM role attached to this workflow type. Executions of this workflow type need IAM roles to invoke Lambda functions. If you don't specify an IAM role when you start this workflow type, the default Lambda role is attached to the execution. For more information, see http://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html in the Amazon SWF Developer Guide. public let defaultLambdaRole: String? - /// If set, specifies the default maximum duration for executions of this workflow type. You can override this default when starting an execution through the StartWorkflowExecution action or StartChildWorkflowExecution decision. The duration is specified in seconds; an integer greater than or equal to 0. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for defaultExecutionStartToCloseTimeout; there is a one-year max limit on the time that a workflow execution can run. Exceeding this limit will always cause the workflow execution to time out. + /// If set, specifies the default maximum duration for executions of this workflow type. You can override this default when starting an execution through the StartWorkflowExecution Action or StartChildWorkflowExecution Decision. The duration is specified in seconds; an integer greater than or equal to 0. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for defaultExecutionStartToCloseTimeout; there is a one-year max limit on the time that a workflow execution can run. Exceeding this limit always causes the workflow execution to time out. public let defaultExecutionStartToCloseTimeout: String? - /// The version of the workflow type. The workflow type consists of the name and version, the combination of which must be unique within the domain. To get a list of all currently registered workflow types, use the ListWorkflowTypes action. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// The version of the workflow type. The workflow type consists of the name and version, the combination of which must be unique within the domain. To get a list of all currently registered workflow types, use the ListWorkflowTypes action. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let version: String /// Textual description of the workflow type. public let description: String? - /// The default task priority to assign to the workflow type. If not assigned, then "0" will be used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// The default task priority to assign to the workflow type. If not assigned, then 0 is used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let defaultTaskPriority: String? - /// If set, specifies the default task list to use for scheduling decision tasks for executions of this workflow type. This default is used only if a task list is not provided when starting the execution through the StartWorkflowExecution action or StartChildWorkflowExecution decision. + /// If set, specifies the default task list to use for scheduling decision tasks for executions of this workflow type. This default is used only if a task list isn't provided when starting the execution through the StartWorkflowExecution Action or StartChildWorkflowExecution Decision. public let defaultTaskList: TaskList? /// The name of the domain in which to register the workflow type. public let domain: String - /// If set, specifies the default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. + /// If set, specifies the default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. public let defaultChildPolicy: ChildPolicy? public init(name: String, defaultTaskStartToCloseTimeout: String? = nil, defaultLambdaRole: String? = nil, defaultExecutionStartToCloseTimeout: String? = nil, version: String, description: String? = nil, defaultTaskPriority: String? = nil, defaultTaskList: TaskList? = nil, domain: String, defaultChildPolicy: ChildPolicy? = nil) { @@ -1833,7 +1842,7 @@ extension Swf { } public struct CompleteWorkflowExecutionDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "result", required: false, type: .string) ] /// The result of the workflow execution. The form of the result is implementation defined. @@ -1849,7 +1858,7 @@ extension Swf { } public struct ActivityTypeInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "status", required: true, type: .enum), AWSShapeMember(label: "deprecationDate", required: false, type: .timestamp), @@ -1885,13 +1894,13 @@ extension Swf { } public struct CompleteWorkflowExecutionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "cause", required: true, type: .enum) ] /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CompleteWorkflowExecution decision to complete this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: CompleteWorkflowExecutionFailedCause public init(decisionTaskCompletedEventId: Int64, cause: CompleteWorkflowExecutionFailedCause) { @@ -1906,7 +1915,7 @@ extension Swf { } public struct TimerStartedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "timerId", required: true, type: .string), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "startToFireTimeout", required: true, type: .string), @@ -1916,9 +1925,9 @@ extension Swf { public let timerId: String /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartTimer decision for this activity task. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 - /// The duration of time after which the timer will fire. The duration is specified in seconds; an integer greater than or equal to 0. + /// The duration of time after which the timer fires. The duration is specified in seconds, an integer greater than or equal to 0. public let startToFireTimeout: String - /// Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. + /// Data attached to the event that can be used by the decider in subsequent workflow tasks. public let control: String? public init(timerId: String, decisionTaskCompletedEventId: Int64, startToFireTimeout: String, control: String? = nil) { @@ -1937,13 +1946,13 @@ extension Swf { } public struct ExternalWorkflowExecutionSignaledEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "workflowExecution", required: true, type: .structure) ] /// The ID of the SignalExternalWorkflowExecutionInitiated event corresponding to the SignalExternalWorkflowExecution decision to request this signal. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let initiatedEventId: Int64 - /// The external workflow execution that the signal was delivered to. + /// The external workflow execution that the signal was delivered to. public let workflowExecution: WorkflowExecution public init(initiatedEventId: Int64, workflowExecution: WorkflowExecution) { @@ -1958,19 +1967,19 @@ extension Swf { } public struct LambdaFunctionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "reason", required: false, type: .string), AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "scheduledEventId", required: true, type: .long) ] - /// The details of the failure (if any). + /// The details of the failure. public let details: String? - /// The reason provided for the failure (if any). + /// The reason provided for the failure. public let reason: String? - /// The ID of the LambdaFunctionStarted event recorded in the history. + /// The ID of the LambdaFunctionStarted event recorded when this activity task started. To help diagnose issues, use this information to trace back the chain of events leading up to this event. public let startedEventId: Int64 - /// The ID of the LambdaFunctionScheduled event that was recorded when this AWS Lambda function was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the LambdaFunctionScheduled event that was recorded when this activity task was scheduled. To help diagnose issues, use this information to trace back the chain of events leading up to this event. public let scheduledEventId: Int64 public init(details: String? = nil, reason: String? = nil, startedEventId: Int64, scheduledEventId: Int64) { @@ -1989,7 +1998,7 @@ extension Swf { } public struct DecisionTaskTimedOutEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduledEventId", required: true, type: .long), AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "timeoutType", required: true, type: .enum) @@ -2015,13 +2024,13 @@ extension Swf { } public struct RecordActivityTaskHeartbeatInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "taskToken", required: true, type: .string) ] /// If specified, contains details about the progress of the task. public let details: String? - /// The taskToken of the ActivityTask. taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. + /// The taskToken of the ActivityTask. taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. public let taskToken: String public init(details: String? = nil, taskToken: String) { @@ -2036,7 +2045,7 @@ extension Swf { } public struct RequestCancelExternalWorkflowExecutionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: false, type: .string), AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), @@ -2052,8 +2061,9 @@ extension Swf { public let decisionTaskCompletedEventId: Int64 /// The workflowId of the external workflow to which the cancel request was to be delivered. public let workflowId: String - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: RequestCancelExternalWorkflowExecutionFailedCause + /// The data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the workflow execution. public let control: String? public init(runId: String? = nil, initiatedEventId: Int64, decisionTaskCompletedEventId: Int64, workflowId: String, cause: RequestCancelExternalWorkflowExecutionFailedCause, control: String? = nil) { @@ -2076,11 +2086,11 @@ extension Swf { } public struct RespondActivityTaskCompletedInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskToken", required: true, type: .string), AWSShapeMember(label: "result", required: false, type: .string) ] - /// The taskToken of the ActivityTask. taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. + /// The taskToken of the ActivityTask. taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. public let taskToken: String /// The result of the activity task. It is a free form string that is implementation specific. public let result: String? @@ -2097,7 +2107,7 @@ extension Swf { } public struct ListOpenWorkflowExecutionsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "typeFilter", required: false, type: .structure), AWSShapeMember(label: "tagFilter", required: false, type: .structure), AWSShapeMember(label: "maximumPageSize", required: false, type: .integer), @@ -2107,13 +2117,13 @@ extension Swf { AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "nextPageToken", required: false, type: .string) ] - /// If specified, only executions of the type specified in the filter are returned. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only executions of the type specified in the filter are returned. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let typeFilter: WorkflowTypeFilter? - /// If specified, only executions that have the matching tag are listed. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only executions that have the matching tag are listed. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let tagFilter: TagFilter? - /// The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. public let maximumPageSize: Int32? - /// If specified, only workflow executions matching the workflow ID specified in the filter are returned. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. + /// If specified, only workflow executions matching the workflow ID specified in the filter are returned. executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request. public let executionFilter: WorkflowExecutionFilter? /// Workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. public let startTimeFilter: ExecutionTimeFilter @@ -2148,10 +2158,10 @@ extension Swf { } public struct CancelTimerDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "timerId", required: true, type: .string) ] - /// Required. The unique ID of the timer to cancel. + /// The unique ID of the timer to cancel. public let timerId: String public init(timerId: String) { @@ -2164,7 +2174,7 @@ extension Swf { } public struct ActivityTaskStartedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduledEventId", required: true, type: .long), AWSShapeMember(label: "identity", required: false, type: .string) ] @@ -2185,13 +2195,13 @@ extension Swf { } public struct RecordMarkerDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "markerName", required: true, type: .string) ] - /// Optional. details of the marker. + /// The details of the marker. public let details: String? - /// Required. The name of the marker. + /// The name of the marker. public let markerName: String public init(details: String? = nil, markerName: String) { @@ -2206,10 +2216,10 @@ extension Swf { } public struct LambdaFunctionStartedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduledEventId", required: true, type: .long) ] - /// The ID of the LambdaFunctionScheduled event that was recorded when this AWS Lambda function was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the LambdaFunctionScheduled event that was recorded when this activity task was scheduled. To help diagnose issues, use this information to trace back the chain of events leading up to this event. public let scheduledEventId: Int64 public init(scheduledEventId: Int64) { @@ -2222,7 +2232,7 @@ extension Swf { } public struct DomainInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "status", required: true, type: .enum) @@ -2231,7 +2241,7 @@ extension Swf { public let description: String? /// The name of the domain. This name is unique within the account. public let name: String - /// The status of the domain: REGISTERED: The domain is properly registered and available. You can use this domain for registering types and creating new workflow executions. DEPRECATED: The domain was deprecated using DeprecateDomain, but is still in use. You should not create new workflow executions in this domain. + /// The status of the domain: REGISTERED – The domain is properly registered and available. You can use this domain for registering types and creating new workflow executions. DEPRECATED – The domain was deprecated using DeprecateDomain, but is still in use. You should not create new workflow executions in this domain. public let status: RegistrationStatus public init(description: String? = nil, name: String, status: RegistrationStatus) { @@ -2248,7 +2258,7 @@ extension Swf { } public struct WorkflowExecutionFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "workflowId", required: true, type: .string) ] /// The workflowId to pass of match the criteria of this filter. @@ -2264,7 +2274,7 @@ extension Swf { } public struct SignalExternalWorkflowExecutionDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: false, type: .string), AWSShapeMember(label: "signalName", required: true, type: .string), AWSShapeMember(label: "input", required: false, type: .string), @@ -2273,13 +2283,13 @@ extension Swf { ] /// The runId of the workflow execution to be signaled. public let runId: String? - /// Required. The name of the signal.The target workflow execution will use the signal name and input to process the signal. + /// The name of the signal.The target workflow execution uses the signal name and input to process the signal. public let signalName: String - /// Optional. Input data to be provided with the signal. The target workflow execution will use the signal name and input data to process the signal. + /// The input data to be provided with the signal. The target workflow execution uses the signal name and input data to process the signal. public let input: String? - /// Required. The workflowId of the workflow execution to be signaled. + /// The workflowId of the workflow execution to be signaled. public let workflowId: String - /// Optional. Data attached to the event that can be used by the decider in subsequent decision tasks. + /// The data attached to the event that can be used by the decider in subsequent decision tasks. public let control: String? public init(runId: String? = nil, signalName: String, input: String? = nil, workflowId: String, control: String? = nil) { @@ -2300,14 +2310,14 @@ extension Swf { } public struct ActivityTaskCompletedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduledEventId", required: true, type: .long), AWSShapeMember(label: "result", required: false, type: .string), AWSShapeMember(label: "startedEventId", required: true, type: .long) ] /// The ID of the ActivityTaskScheduled event that was recorded when this activity task was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let scheduledEventId: Int64 - /// The results of the activity task (if any). + /// The results of the activity task. public let result: String? /// The ID of the ActivityTaskStarted event recorded when this activity task was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let startedEventId: Int64 @@ -2326,7 +2336,7 @@ extension Swf { } public struct RequestCancelActivityTaskFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "activityId", required: true, type: .string), AWSShapeMember(label: "cause", required: true, type: .enum) @@ -2335,7 +2345,7 @@ extension Swf { public let decisionTaskCompletedEventId: Int64 /// The activityId provided in the RequestCancelActivityTask decision that failed. public let activityId: String - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: RequestCancelActivityTaskFailedCause public init(decisionTaskCompletedEventId: Int64, activityId: String, cause: RequestCancelActivityTaskFailedCause) { @@ -2352,7 +2362,7 @@ extension Swf { } public struct HistoryEvent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduleActivityTaskFailedEventAttributes", required: false, type: .structure), AWSShapeMember(label: "activityTaskCompletedEventAttributes", required: false, type: .structure), AWSShapeMember(label: "workflowExecutionFailedEventAttributes", required: false, type: .structure), @@ -2411,110 +2421,117 @@ extension Swf { AWSShapeMember(label: "scheduleLambdaFunctionFailedEventAttributes", required: false, type: .structure), AWSShapeMember(label: "eventTimestamp", required: true, type: .timestamp) ] - /// If the event is of type ScheduleActivityTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ScheduleActivityTaskFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let scheduleActivityTaskFailedEventAttributes: ScheduleActivityTaskFailedEventAttributes? - /// If the event is of type ActivityTaskCompleted then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ActivityTaskCompleted then this member is set and provides detailed information about the event. It isn't set for other event types. public let activityTaskCompletedEventAttributes: ActivityTaskCompletedEventAttributes? - /// If the event is of type WorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type WorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let workflowExecutionFailedEventAttributes: WorkflowExecutionFailedEventAttributes? - /// If the event is of type ActivityTaskTimedOut then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ActivityTaskTimedOut then this member is set and provides detailed information about the event. It isn't set for other event types. public let activityTaskTimedOutEventAttributes: ActivityTaskTimedOutEventAttributes? - /// If the event is of type WorkflowExecutionTerminated then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type WorkflowExecutionTerminated then this member is set and provides detailed information about the event. It isn't set for other event types. public let workflowExecutionTerminatedEventAttributes: WorkflowExecutionTerminatedEventAttributes? - /// If the event is of type DecisionTaskStarted then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type DecisionTaskStarted then this member is set and provides detailed information about the event. It isn't set for other event types. public let decisionTaskStartedEventAttributes: DecisionTaskStartedEventAttributes? /// The system generated ID of the event. This ID uniquely identifies the event with in the workflow execution history. public let eventId: Int64 - /// If the event is of type TimerFired then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type TimerFired then this member is set and provides detailed information about the event. It isn't set for other event types. public let timerFiredEventAttributes: TimerFiredEventAttributes? - /// If the event is of type StartChildWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type StartChildWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let startChildWorkflowExecutionFailedEventAttributes: StartChildWorkflowExecutionFailedEventAttributes? - /// If the event is of type ExternalWorkflowExecutionSignaled then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ExternalWorkflowExecutionSignaled then this member is set and provides detailed information about the event. It isn't set for other event types. public let externalWorkflowExecutionSignaledEventAttributes: ExternalWorkflowExecutionSignaledEventAttributes? - /// If the event is of type ActivityTaskcancelRequested then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ActivityTaskcancelRequested then this member is set and provides detailed information about the event. It isn't set for other event types. public let activityTaskCancelRequestedEventAttributes: ActivityTaskCancelRequestedEventAttributes? - /// If the event is of type RequestCancelExternalWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type RequestCancelExternalWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It isn't set for other event types. public let requestCancelExternalWorkflowExecutionInitiatedEventAttributes: RequestCancelExternalWorkflowExecutionInitiatedEventAttributes? - /// If the event is of type WorkflowExecutionCancelRequested then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type WorkflowExecutionCancelRequested then this member is set and provides detailed information about the event. It isn't set for other event types. public let workflowExecutionCancelRequestedEventAttributes: WorkflowExecutionCancelRequestedEventAttributes? + /// Provides the details of the LambdaFunctionScheduled event. It isn't set for other event types. public let lambdaFunctionScheduledEventAttributes: LambdaFunctionScheduledEventAttributes? - /// If the event is of type WorkflowExecutionTimedOut then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type WorkflowExecutionTimedOut then this member is set and provides detailed information about the event. It isn't set for other event types. public let workflowExecutionTimedOutEventAttributes: WorkflowExecutionTimedOutEventAttributes? - /// If the event is of type WorkflowExecutionCanceled then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type WorkflowExecutionCanceled then this member is set and provides detailed information about the event. It isn't set for other event types. public let workflowExecutionCanceledEventAttributes: WorkflowExecutionCanceledEventAttributes? - /// If the event is of type SignalExternalWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type SignalExternalWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It isn't set for other event types. public let signalExternalWorkflowExecutionInitiatedEventAttributes: SignalExternalWorkflowExecutionInitiatedEventAttributes? + /// Provides the details of the LambdaFunctionFailed event. It isn't set for other event types. public let lambdaFunctionFailedEventAttributes: LambdaFunctionFailedEventAttributes? - /// If the event is of type ChildWorkflowExecutionCompleted then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ChildWorkflowExecutionCompleted then this member is set and provides detailed information about the event. It isn't set for other event types. public let childWorkflowExecutionCompletedEventAttributes: ChildWorkflowExecutionCompletedEventAttributes? - /// If the event is of type WorkflowExecutionContinuedAsNew then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type WorkflowExecutionContinuedAsNew then this member is set and provides detailed information about the event. It isn't set for other event types. public let workflowExecutionContinuedAsNewEventAttributes: WorkflowExecutionContinuedAsNewEventAttributes? - /// If the event is of type FailWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type FailWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let failWorkflowExecutionFailedEventAttributes: FailWorkflowExecutionFailedEventAttributes? - /// If the event is of type MarkerRecorded then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type MarkerRecorded then this member is set and provides detailed information about the event. It isn't set for other event types. public let markerRecordedEventAttributes: MarkerRecordedEventAttributes? - /// If the event is of type ChildWorkflowExecutionTimedOut then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ChildWorkflowExecutionTimedOut then this member is set and provides detailed information about the event. It isn't set for other event types. public let childWorkflowExecutionTimedOutEventAttributes: ChildWorkflowExecutionTimedOutEventAttributes? - /// If the event is of type TimerCanceled then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type TimerCanceled then this member is set and provides detailed information about the event. It isn't set for other event types. public let timerCanceledEventAttributes: TimerCanceledEventAttributes? - /// If the event is of type DecisionTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type DecisionTaskFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let recordMarkerFailedEventAttributes: RecordMarkerFailedEventAttributes? - /// If the event is of type CompleteWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type CompleteWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let completeWorkflowExecutionFailedEventAttributes: CompleteWorkflowExecutionFailedEventAttributes? - /// If the event is of type CancelWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type CancelWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let cancelWorkflowExecutionFailedEventAttributes: CancelWorkflowExecutionFailedEventAttributes? - /// If the event is of type SignalExternalWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type SignalExternalWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let signalExternalWorkflowExecutionFailedEventAttributes: SignalExternalWorkflowExecutionFailedEventAttributes? + /// Provides the details of the StartLambdaFunctionFailed event. It isn't set for other event types. public let startLambdaFunctionFailedEventAttributes: StartLambdaFunctionFailedEventAttributes? - /// If the event is of type ActivityTaskCanceled then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ActivityTaskCanceled then this member is set and provides detailed information about the event. It isn't set for other event types. public let activityTaskCanceledEventAttributes: ActivityTaskCanceledEventAttributes? + /// Provides the details of the LambdaFunctionStarted event. It isn't set for other event types. public let lambdaFunctionStartedEventAttributes: LambdaFunctionStartedEventAttributes? - /// If the event is of type WorkflowExecutionCompleted then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type WorkflowExecutionCompleted then this member is set and provides detailed information about the event. It isn't set for other event types. public let workflowExecutionCompletedEventAttributes: WorkflowExecutionCompletedEventAttributes? - /// If the event is of type ChildWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ChildWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let childWorkflowExecutionFailedEventAttributes: ChildWorkflowExecutionFailedEventAttributes? - /// If the event is of type ContinueAsNewWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ContinueAsNewWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let continueAsNewWorkflowExecutionFailedEventAttributes: ContinueAsNewWorkflowExecutionFailedEventAttributes? /// The type of the history event. public let eventType: EventType + /// Provides the details of the LambdaFunctionTimedOut event. It isn't set for other event types. public let lambdaFunctionTimedOutEventAttributes: LambdaFunctionTimedOutEventAttributes? - /// If the event is of type StartChildWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type StartChildWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It isn't set for other event types. public let startChildWorkflowExecutionInitiatedEventAttributes: StartChildWorkflowExecutionInitiatedEventAttributes? - /// If the event is of type DecisionTaskTimedOut then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type DecisionTaskTimedOut then this member is set and provides detailed information about the event. It isn't set for other event types. public let decisionTaskTimedOutEventAttributes: DecisionTaskTimedOutEventAttributes? + /// Provides the details of the LambdaFunctionCompleted event. It isn't set for other event types. public let lambdaFunctionCompletedEventAttributes: LambdaFunctionCompletedEventAttributes? - /// If the event is of type WorkflowExecutionSignaled then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type WorkflowExecutionSignaled then this member is set and provides detailed information about the event. It isn't set for other event types. public let workflowExecutionSignaledEventAttributes: WorkflowExecutionSignaledEventAttributes? - /// If the event is of type ChildWorkflowExecutionTerminated then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ChildWorkflowExecutionTerminated then this member is set and provides detailed information about the event. It isn't set for other event types. public let childWorkflowExecutionTerminatedEventAttributes: ChildWorkflowExecutionTerminatedEventAttributes? - /// If the event is of type ChildWorkflowExecutionCanceled then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ChildWorkflowExecutionCanceled then this member is set and provides detailed information about the event. It isn't set for other event types. public let childWorkflowExecutionCanceledEventAttributes: ChildWorkflowExecutionCanceledEventAttributes? - /// If the event is of type WorkflowExecutionStarted then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type WorkflowExecutionStarted then this member is set and provides detailed information about the event. It isn't set for other event types. public let workflowExecutionStartedEventAttributes: WorkflowExecutionStartedEventAttributes? - /// If the event is of type ChildWorkflowExecutionStarted then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ChildWorkflowExecutionStarted then this member is set and provides detailed information about the event. It isn't set for other event types. public let childWorkflowExecutionStartedEventAttributes: ChildWorkflowExecutionStartedEventAttributes? - /// If the event is of type ActivityTaskScheduled then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ActivityTaskScheduled then this member is set and provides detailed information about the event. It isn't set for other event types. public let activityTaskScheduledEventAttributes: ActivityTaskScheduledEventAttributes? - /// If the event is of type RequestCancelActivityTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type RequestCancelActivityTaskFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let requestCancelActivityTaskFailedEventAttributes: RequestCancelActivityTaskFailedEventAttributes? - /// If the event is of type ExternalWorkflowExecutionCancelRequested then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ExternalWorkflowExecutionCancelRequested then this member is set and provides detailed information about the event. It isn't set for other event types. public let externalWorkflowExecutionCancelRequestedEventAttributes: ExternalWorkflowExecutionCancelRequestedEventAttributes? - /// If the event is of type DecisionTaskScheduled then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type DecisionTaskScheduled then this member is set and provides detailed information about the event. It isn't set for other event types. public let decisionTaskScheduledEventAttributes: DecisionTaskScheduledEventAttributes? - /// If the event is of type TimerStarted then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type TimerStarted then this member is set and provides detailed information about the event. It isn't set for other event types. public let timerStartedEventAttributes: TimerStartedEventAttributes? - /// If the event is of type ActivityTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ActivityTaskFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let activityTaskFailedEventAttributes: ActivityTaskFailedEventAttributes? - /// If the event is of type StartTimerFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type StartTimerFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let startTimerFailedEventAttributes: StartTimerFailedEventAttributes? - /// If the event is of type ActivityTaskStarted then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type ActivityTaskStarted then this member is set and provides detailed information about the event. It isn't set for other event types. public let activityTaskStartedEventAttributes: ActivityTaskStartedEventAttributes? - /// If the event is of type CancelTimerFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type CancelTimerFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let cancelTimerFailedEventAttributes: CancelTimerFailedEventAttributes? - /// If the event is of type DecisionTaskCompleted then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type DecisionTaskCompleted then this member is set and provides detailed information about the event. It isn't set for other event types. public let decisionTaskCompletedEventAttributes: DecisionTaskCompletedEventAttributes? - /// If the event is of type RequestCancelExternalWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types. + /// If the event is of type RequestCancelExternalWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types. public let requestCancelExternalWorkflowExecutionFailedEventAttributes: RequestCancelExternalWorkflowExecutionFailedEventAttributes? + /// Provides the details of the ScheduleLambdaFunctionFailed event. It isn't set for other event types. public let scheduleLambdaFunctionFailedEventAttributes: ScheduleLambdaFunctionFailedEventAttributes? /// The date and time when the event occurred. public let eventTimestamp: TimeStamp @@ -2641,7 +2658,7 @@ extension Swf { } public struct WorkflowExecution: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: true, type: .string), AWSShapeMember(label: "workflowId", required: true, type: .string) ] @@ -2662,7 +2679,7 @@ extension Swf { } public struct Run: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: false, type: .string) ] /// The runId of a workflow execution. This ID is generated by the service and can be used to uniquely identify the workflow execution within a domain. @@ -2678,16 +2695,16 @@ extension Swf { } public struct LambdaFunctionCompletedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduledEventId", required: true, type: .long), AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "result", required: false, type: .string) ] - /// The ID of the LambdaFunctionScheduled event that was recorded when this AWS Lambda function was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the LambdaFunctionScheduled event that was recorded when this Lambda task was scheduled. To help diagnose issues, use this information to trace back the chain of events leading up to this event. public let scheduledEventId: Int64 - /// The ID of the LambdaFunctionStarted event recorded in the history. + /// The ID of the LambdaFunctionStarted event recorded when this activity task started. To help diagnose issues, use this information to trace back the chain of events leading up to this event. public let startedEventId: Int64 - /// The result of the function execution (if any). + /// The results of the Lambda task. public let result: String? public init(scheduledEventId: Int64, startedEventId: Int64, result: String? = nil) { @@ -2704,7 +2721,7 @@ extension Swf { } public struct CountPendingActivityTasksInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "taskList", required: true, type: .structure) ] @@ -2725,16 +2742,16 @@ extension Swf { } public struct WorkflowExecutionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "reason", required: false, type: .string) ] - /// The details of the failure (if any). + /// The details of the failure. public let details: String? /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the FailWorkflowExecution decision to fail this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 - /// The descriptive reason provided for the failure (if any). + /// The descriptive reason provided for the failure. public let reason: String? public init(details: String? = nil, decisionTaskCompletedEventId: Int64, reason: String? = nil) { @@ -2761,16 +2778,16 @@ extension Swf { } public struct RegisterDomainInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "workflowExecutionRetentionPeriodInDays", required: true, type: .string) ] /// A text description of the domain. public let description: String? - /// Name of the domain to register. The name must be unique in the region that the domain is registered in. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// Name of the domain to register. The name must be unique in the region that the domain is registered in. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let name: String - /// The duration (in days) that records and histories of workflow executions on the domain should be kept by the service. After the retention period, the workflow execution is not available in the results of visibility calls. If you pass the value NONE or 0 (zero), then the workflow execution history will not be retained. As soon as the workflow execution completes, the execution record and its history are deleted. The maximum workflow execution retention period is 90 days. For more information about Amazon SWF service limits, see: Amazon SWF Service Limits in the Amazon SWF Developer Guide. + /// The duration (in days) that records and histories of workflow executions on the domain should be kept by the service. After the retention period, the workflow execution isn't available in the results of visibility calls. If you pass the value NONE or 0 (zero), then the workflow execution history isn't retained. As soon as the workflow execution completes, the execution record and its history are deleted. The maximum workflow execution retention period is 90 days. For more information about Amazon SWF service limits, see: Amazon SWF Service Limits in the Amazon SWF Developer Guide. public let workflowExecutionRetentionPeriodInDays: String public init(description: String? = nil, name: String, workflowExecutionRetentionPeriodInDays: String) { @@ -2787,7 +2804,7 @@ extension Swf { } public struct WorkflowExecutionCompletedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "result", required: false, type: .string) ] @@ -2808,7 +2825,7 @@ extension Swf { } public struct RecordMarkerFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "markerName", required: true, type: .string), AWSShapeMember(label: "cause", required: true, type: .enum) @@ -2817,7 +2834,7 @@ extension Swf { public let decisionTaskCompletedEventId: Int64 /// The marker's name. public let markerName: String - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: RecordMarkerFailedCause public init(decisionTaskCompletedEventId: Int64, markerName: String, cause: RecordMarkerFailedCause) { @@ -2834,7 +2851,7 @@ extension Swf { } public struct DecisionTaskStartedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduledEventId", required: true, type: .long), AWSShapeMember(label: "identity", required: false, type: .string) ] @@ -2855,7 +2872,7 @@ extension Swf { } public struct DeprecateDomainInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string) ] /// The name of the domain to deprecate. @@ -2871,7 +2888,7 @@ extension Swf { } public struct StartChildWorkflowExecutionInitiatedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lambdaRole", required: false, type: .string), AWSShapeMember(label: "taskList", required: true, type: .structure), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), @@ -2885,29 +2902,29 @@ extension Swf { AWSShapeMember(label: "taskStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "executionStartToCloseTimeout", required: false, type: .string) ] - /// The IAM role attached to this workflow execution to use when invoking AWS Lambda functions. + /// The IAM role to attach to the child workflow execution. public let lambdaRole: String? /// The name of the task list used for the decision tasks of the child workflow execution. public let taskList: TaskList - /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartChildWorkflowExecution decision to request this child workflow execution. This information can be useful for diagnosing problems by tracing back the cause of events. + /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartChildWorkflowExecution Decision to request this child workflow execution. This information can be useful for diagnosing problems by tracing back the cause of events. public let decisionTaskCompletedEventId: Int64 /// The workflowId of the child workflow execution. public let workflowId: String - /// Optional. The priority assigned for the decision tasks for this workflow execution. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// The priority assigned for the decision tasks for this workflow execution. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let taskPriority: String? - /// Optional. Data attached to the event that can be used by the decider in subsequent decision tasks. This data is not sent to the activity. + /// Data attached to the event that can be used by the decider in subsequent decision tasks. This data isn't sent to the activity. public let control: String? /// The list of tags to associated with the child workflow execution. public let tagList: [String]? - /// The inputs provided to the child workflow execution (if any). + /// The inputs provided to the child workflow execution. public let input: String? /// The type of the child workflow execution. public let workflowType: WorkflowType - /// The policy to use for the child workflow executions if this execution gets terminated by explicitly calling the TerminateWorkflowExecution action or due to an expired timeout. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. + /// The policy to use for the child workflow executions if this execution gets terminated by explicitly calling the TerminateWorkflowExecution action or due to an expired timeout. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. public let childPolicy: ChildPolicy - /// The maximum duration allowed for the decision tasks for this workflow execution. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The maximum duration allowed for the decision tasks for this workflow execution. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let taskStartToCloseTimeout: String? - /// The maximum duration for the child workflow execution. If the workflow execution is not closed within this duration, it will be timed out and force terminated. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The maximum duration for the child workflow execution. If the workflow execution isn't closed within this duration, it is timed out and force-terminated. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let executionStartToCloseTimeout: String? public init(lambdaRole: String? = nil, taskList: TaskList, decisionTaskCompletedEventId: Int64, workflowId: String, taskPriority: String? = nil, control: String? = nil, tagList: [String]? = nil, input: String? = nil, workflowType: WorkflowType, childPolicy: ChildPolicy, taskStartToCloseTimeout: String? = nil, executionStartToCloseTimeout: String? = nil) { @@ -2942,7 +2959,7 @@ extension Swf { } public struct RequestCancelExternalWorkflowExecutionInitiatedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: false, type: .string), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "workflowId", required: true, type: .string), @@ -2954,7 +2971,7 @@ extension Swf { public let decisionTaskCompletedEventId: Int64 /// The workflowId of the external workflow execution to be canceled. public let workflowId: String - /// Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. + /// Data attached to the event that can be used by the decider in subsequent workflow tasks. public let control: String? public init(runId: String? = nil, decisionTaskCompletedEventId: Int64, workflowId: String, control: String? = nil) { @@ -2973,13 +2990,13 @@ extension Swf { } public struct ListDomainsInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maximumPageSize", required: false, type: .integer), AWSShapeMember(label: "reverseOrder", required: false, type: .boolean), AWSShapeMember(label: "nextPageToken", required: false, type: .string), AWSShapeMember(label: "registrationStatus", required: true, type: .enum) ] - /// The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. public let maximumPageSize: Int32? /// When set to true, returns the results in reverse order. By default, the results are returned in ascending alphabetical order by name of the domains. public let reverseOrder: Bool? @@ -3004,7 +3021,7 @@ extension Swf { } public struct WorkflowTypeConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "defaultExecutionStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "defaultTaskStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "defaultTaskPriority", required: false, type: .string), @@ -3012,17 +3029,17 @@ extension Swf { AWSShapeMember(label: "defaultLambdaRole", required: false, type: .string), AWSShapeMember(label: "defaultChildPolicy", required: false, type: .enum) ] - /// Optional. The default maximum duration, specified when registering the workflow type, for executions of this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The default maximum duration, specified when registering the workflow type, for executions of this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultExecutionStartToCloseTimeout: String? - /// Optional. The default maximum duration, specified when registering the workflow type, that a decision task for executions of this workflow type might take before returning completion or failure. If the task does not close in the specified time then the task is automatically timed out and rescheduled. If the decider eventually reports a completion or failure, it is ignored. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The default maximum duration, specified when registering the workflow type, that a decision task for executions of this workflow type might take before returning completion or failure. If the task doesn'tdo close in the specified time then the task is automatically timed out and rescheduled. If the decider eventually reports a completion or failure, it is ignored. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultTaskStartToCloseTimeout: String? - /// Optional. The default task priority, specified when registering the workflow type, for all decision tasks of this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// The default task priority, specified when registering the workflow type, for all decision tasks of this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let defaultTaskPriority: String? - /// Optional. The default task list, specified when registering the workflow type, for decisions tasks scheduled for workflow executions of this type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision. + /// The default task list, specified when registering the workflow type, for decisions tasks scheduled for workflow executions of this type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision. public let defaultTaskList: TaskList? - /// The default IAM role to use when a workflow execution invokes a AWS Lambda function. + /// The default IAM role attached to this workflow type. Executions of this workflow type need IAM roles to invoke Lambda functions. If you don't specify an IAM role when starting this workflow type, the default Lambda role is attached to the execution. For more information, see http://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html in the Amazon SWF Developer Guide. public let defaultLambdaRole: String? - /// Optional. The default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. + /// The default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. public let defaultChildPolicy: ChildPolicy? public init(defaultExecutionStartToCloseTimeout: String? = nil, defaultTaskStartToCloseTimeout: String? = nil, defaultTaskPriority: String? = nil, defaultTaskList: TaskList? = nil, defaultLambdaRole: String? = nil, defaultChildPolicy: ChildPolicy? = nil) { @@ -3045,13 +3062,13 @@ extension Swf { } public struct FailWorkflowExecutionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "cause", required: true, type: .enum) ] /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the FailWorkflowExecution decision to fail this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: FailWorkflowExecutionFailedCause public init(decisionTaskCompletedEventId: Int64, cause: FailWorkflowExecutionFailedCause) { @@ -3078,13 +3095,13 @@ extension Swf { } public struct RespondActivityTaskCanceledInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "taskToken", required: true, type: .string) ] - /// Optional. Information about the cancellation. + /// Information about the cancellation. public let details: String? - /// The taskToken of the ActivityTask. taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. + /// The taskToken of the ActivityTask. taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. public let taskToken: String public init(details: String? = nil, taskToken: String) { @@ -3099,7 +3116,7 @@ extension Swf { } public struct RegisterActivityTypeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "defaultTaskStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "defaultTaskScheduleToStartTimeout", required: false, type: .string), @@ -3111,25 +3128,25 @@ extension Swf { AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "defaultTaskScheduleToCloseTimeout", required: false, type: .string) ] - /// The name of the activity type within the domain. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// The name of the activity type within the domain. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let name: String - /// If set, specifies the default maximum duration that a worker can take to process tasks of this activity type. This default can be overridden when scheduling an activity task using the ScheduleActivityTask decision. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// If set, specifies the default maximum duration that a worker can take to process tasks of this activity type. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultTaskStartToCloseTimeout: String? - /// If set, specifies the default maximum duration that a task of this activity type can wait before being assigned to a worker. This default can be overridden when scheduling an activity task using the ScheduleActivityTask decision. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// If set, specifies the default maximum duration that a task of this activity type can wait before being assigned to a worker. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultTaskScheduleToStartTimeout: String? /// A textual description of the activity type. public let description: String? - /// The version of the activity type. The activity type consists of the name and version, the combination of which must be unique within the domain. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// The version of the activity type. The activity type consists of the name and version, the combination of which must be unique within the domain. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f-\u009f). Also, it must not contain the literal string arn. public let version: String - /// If set, specifies the default maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. This default can be overridden when scheduling an activity task using the ScheduleActivityTask decision. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an UnknownResource fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// If set, specifies the default maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an UnknownResource fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultTaskHeartbeatTimeout: String? - /// The default task priority to assign to the activity type. If not assigned, then "0" will be used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// The default task priority to assign to the activity type. If not assigned, then 0 is used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the in the Amazon SWF Developer Guide.. public let defaultTaskPriority: String? - /// If set, specifies the default task list to use for scheduling tasks of this activity type. This default task list is used if a task list is not provided when a task is scheduled through the ScheduleActivityTask decision. + /// If set, specifies the default task list to use for scheduling tasks of this activity type. This default task list is used if a task list isn't provided when a task is scheduled through the ScheduleActivityTask Decision. public let defaultTaskList: TaskList? /// The name of the domain in which this activity is to be registered. public let domain: String - /// If set, specifies the default maximum duration for a task of this activity type. This default can be overridden when scheduling an activity task using the ScheduleActivityTask decision. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// If set, specifies the default maximum duration for a task of this activity type. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultTaskScheduleToCloseTimeout: String? public init(name: String, defaultTaskStartToCloseTimeout: String? = nil, defaultTaskScheduleToStartTimeout: String? = nil, description: String? = nil, version: String, defaultTaskHeartbeatTimeout: String? = nil, defaultTaskPriority: String? = nil, defaultTaskList: TaskList? = nil, domain: String, defaultTaskScheduleToCloseTimeout: String? = nil) { @@ -3167,7 +3184,7 @@ extension Swf { } public struct ActivityTaskTimedOutEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "timeoutType", required: true, type: .enum), AWSShapeMember(label: "startedEventId", required: true, type: .long), @@ -3198,7 +3215,7 @@ extension Swf { } public struct ActivityTaskStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "cancelRequested", required: true, type: .boolean) ] /// Set to true if cancellation of the task is requested. @@ -3220,7 +3237,7 @@ extension Swf { } public struct ActivityTaskScheduledEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskList", required: true, type: .structure), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "activityId", required: true, type: .string), @@ -3243,15 +3260,15 @@ extension Swf { public let scheduleToCloseTimeout: String? /// The maximum amount of time the activity task can wait to be assigned to a worker. public let scheduleToStartTimeout: String? - /// Optional. The priority to assign to the scheduled activity task. If set, this will override any default priority value that was assigned when the activity type was registered. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// The priority to assign to the scheduled activity task. If set, this overrides any default priority value that was assigned when the activity type was registered. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let taskPriority: String? /// The maximum amount of time a worker may take to process the activity task. public let startToCloseTimeout: String? /// The input provided to the activity task. public let input: String? - /// Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the activity. + /// Data attached to the event that can be used by the decider in subsequent workflow tasks. This data isn't sent to the activity. public let control: String? - /// The maximum time before which the worker processing this task must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or return a result, it will be ignored. + /// The maximum time before which the worker processing this task must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or return a result, it is ignored. public let heartbeatTimeout: String? /// The type of the activity task. public let activityType: ActivityType @@ -3286,7 +3303,7 @@ extension Swf { } public struct TerminateWorkflowExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: false, type: .string), AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "reason", required: false, type: .string), @@ -3296,15 +3313,15 @@ extension Swf { ] /// The runId of the workflow execution to terminate. public let runId: String? - /// Optional. Details for terminating the workflow execution. + /// Details for terminating the workflow execution. public let details: String? - /// Optional. A descriptive reason for terminating the workflow execution. + /// A descriptive reason for terminating the workflow execution. public let reason: String? /// The workflowId of the workflow execution to terminate. public let workflowId: String /// The domain of the workflow execution to terminate. public let domain: String - /// If set, specifies the policy to use for the child workflow executions of the workflow execution being terminated. This policy overrides the child policy specified for the workflow execution at registration time or when starting the execution. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned. + /// If set, specifies the policy to use for the child workflow executions of the workflow execution being terminated. This policy overrides the child policy specified for the workflow execution at registration time or when starting the execution. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault is returned. public let childPolicy: ChildPolicy? public init(runId: String? = nil, details: String? = nil, reason: String? = nil, workflowId: String, domain: String, childPolicy: ChildPolicy? = nil) { @@ -3327,7 +3344,7 @@ extension Swf { } public struct ChildWorkflowExecutionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "reason", required: false, type: .string), @@ -3337,7 +3354,7 @@ extension Swf { ] /// The details of the failure (if provided). public let details: String? - /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let initiatedEventId: Int64 /// The reason for the failure (if provided). public let reason: String? @@ -3368,20 +3385,20 @@ extension Swf { } public struct ChildWorkflowExecutionCompletedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "workflowType", required: true, type: .structure), AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "result", required: false, type: .string), AWSShapeMember(label: "workflowExecution", required: true, type: .structure) ] - /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let initiatedEventId: Int64 /// The type of the child workflow execution. public let workflowType: WorkflowType /// The ID of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let startedEventId: Int64 - /// The result of the child workflow execution (if any). + /// The result of the child workflow execution. public let result: String? /// The child workflow execution that was completed. public let workflowExecution: WorkflowExecution @@ -3425,7 +3442,7 @@ extension Swf { } public struct RequestCancelActivityTaskDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "activityId", required: true, type: .string) ] /// The activityId of the activity task to be canceled. @@ -3441,7 +3458,7 @@ extension Swf { } public struct ContinueAsNewWorkflowExecutionDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lambdaRole", required: false, type: .string), AWSShapeMember(label: "workflowTypeVersion", required: false, type: .string), AWSShapeMember(label: "taskList", required: false, type: .structure), @@ -3452,21 +3469,23 @@ extension Swf { AWSShapeMember(label: "taskStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "executionStartToCloseTimeout", required: false, type: .string) ] - /// The ARN of an IAM role that authorizes Amazon SWF to invoke AWS Lambda functions. In order for this workflow execution to invoke AWS Lambda functions, an appropriate IAM role must be specified either as a default for the workflow type or through this field. + /// The IAM role to attach to the new (continued) execution. public let lambdaRole: String? + /// The version of the workflow to start. public let workflowTypeVersion: String? + /// The task list to use for the decisions of the new (continued) workflow execution. public let taskList: TaskList? - /// Optional. The task priority that, if set, specifies the priority for the decision tasks for this workflow execution. This overrides the defaultTaskPriority specified when registering the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// The task priority that, if set, specifies the priority for the decision tasks for this workflow execution. This overrides the defaultTaskPriority specified when registering the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let taskPriority: String? /// The list of tags to associate with the new workflow execution. A maximum of 5 tags can be specified. You can list workflow executions with a specific tag by calling ListOpenWorkflowExecutions or ListClosedWorkflowExecutions and specifying a TagFilter. public let tagList: [String]? /// The input provided to the new workflow execution. public let input: String? - /// If set, specifies the policy to use for the child workflow executions of the new execution if it is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned. + /// If set, specifies the policy to use for the child workflow executions of the new execution if it is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault is returned. public let childPolicy: ChildPolicy? - /// Specifies the maximum duration of decision tasks for the new workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. A task start-to-close timeout for the new workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned. + /// Specifies the maximum duration of decision tasks for the new workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. A task start-to-close timeout for the new workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault is returned. public let taskStartToCloseTimeout: String? - /// If set, specifies the total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this field. If neither this field is set nor a default execution start-to-close timeout was specified at registration time then a fault will be returned. + /// If set, specifies the total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this field. If neither this field is set nor a default execution start-to-close timeout was specified at registration time then a fault is returned. public let executionStartToCloseTimeout: String? public init(lambdaRole: String? = nil, workflowTypeVersion: String? = nil, taskList: TaskList? = nil, taskPriority: String? = nil, tagList: [String]? = nil, input: String? = nil, childPolicy: ChildPolicy? = nil, taskStartToCloseTimeout: String? = nil, executionStartToCloseTimeout: String? = nil) { @@ -3500,16 +3519,16 @@ extension Swf { } public struct StartLambdaFunctionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduledEventId", required: false, type: .long), AWSShapeMember(label: "cause", required: false, type: .enum), AWSShapeMember(label: "message", required: false, type: .string) ] - /// The ID of the LambdaFunctionScheduled event that was recorded when this AWS Lambda function was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. + /// The ID of the ActivityTaskScheduled event that was recorded when this activity task was scheduled. To help diagnose issues, use this information to trace back the chain of events leading up to this event. public let scheduledEventId: Int64? - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. To help diagnose issues, use this information to trace back the chain of events leading up to this event. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because the IAM role attached to the execution lacked sufficient permissions. For details and example IAM policies, see Lambda Tasks in the Amazon SWF Developer Guide. public let cause: StartLambdaFunctionFailedCause? - /// The error message (if any). + /// A description that can help diagnose the cause of the fault. public let message: String? public init(scheduledEventId: Int64? = nil, cause: StartLambdaFunctionFailedCause? = nil, message: String? = nil) { @@ -3526,7 +3545,7 @@ extension Swf { } public struct SignalExternalWorkflowExecutionInitiatedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: false, type: .string), AWSShapeMember(label: "signalName", required: true, type: .string), AWSShapeMember(label: "input", required: false, type: .string), @@ -3538,13 +3557,13 @@ extension Swf { public let runId: String? /// The name of the signal. public let signalName: String - /// Input provided to the signal (if any). + /// The input provided to the signal. public let input: String? /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the SignalExternalWorkflowExecution decision for this signal. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 /// The workflowId of the external workflow execution. public let workflowId: String - /// Optional. data attached to the event that can be used by the decider in subsequent decision tasks. + /// Data attached to the event that can be used by the decider in subsequent decision tasks. public let control: String? public init(runId: String? = nil, signalName: String, input: String? = nil, decisionTaskCompletedEventId: Int64, workflowId: String, control: String? = nil) { @@ -3567,11 +3586,11 @@ extension Swf { } public struct WorkflowTypeFilter: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "version", required: false, type: .string) ] - /// Required. Name of the workflow type. + /// Name of the workflow type. public let name: String /// Version of the workflow type. public let version: String? @@ -3587,15 +3606,20 @@ extension Swf { } } + public enum DecisionTaskTimeoutType: String, CustomStringConvertible, Codable { + case startToClose = "START_TO_CLOSE" + public var description: String { return self.rawValue } + } + public struct GetWorkflowExecutionHistoryInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maximumPageSize", required: false, type: .integer), AWSShapeMember(label: "execution", required: true, type: .structure), AWSShapeMember(label: "nextPageToken", required: false, type: .string), AWSShapeMember(label: "reverseOrder", required: false, type: .boolean), AWSShapeMember(label: "domain", required: true, type: .string) ] - /// The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. public let maximumPageSize: Int32? /// Specifies the workflow execution for which to return the history. public let execution: WorkflowExecution @@ -3623,13 +3647,8 @@ extension Swf { } } - public enum DecisionTaskTimeoutType: String, CustomStringConvertible, Codable { - case startToClose = "START_TO_CLOSE" - public var description: String { return self.rawValue } - } - public struct ActivityTypeConfiguration: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "defaultTaskScheduleToStartTimeout", required: false, type: .string), AWSShapeMember(label: "defaultTaskStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "defaultTaskPriority", required: false, type: .string), @@ -3637,17 +3656,17 @@ extension Swf { AWSShapeMember(label: "defaultTaskScheduleToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "defaultTaskHeartbeatTimeout", required: false, type: .string) ] - /// Optional. The default maximum duration, specified when registering the activity type, that a task of an activity type can wait before being assigned to a worker. You can override this default when scheduling a task through the ScheduleActivityTask decision. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The default maximum duration, specified when registering the activity type, that a task of an activity type can wait before being assigned to a worker. You can override this default when scheduling a task through the ScheduleActivityTask Decision. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultTaskScheduleToStartTimeout: String? - /// Optional. The default maximum duration for tasks of an activity type specified when registering the activity type. You can override this default when scheduling a task through the ScheduleActivityTask decision. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The default maximum duration for tasks of an activity type specified when registering the activity type. You can override this default when scheduling a task through the ScheduleActivityTask Decision. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultTaskStartToCloseTimeout: String? - /// Optional. The default task priority for tasks of this activity type, specified at registration. If not set, then "0" will be used as the default priority. This default can be overridden when scheduling an activity task. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// The default task priority for tasks of this activity type, specified at registration. If not set, then 0 is used as the default priority. This default can be overridden when scheduling an activity task. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let defaultTaskPriority: String? - /// Optional. The default task list specified for this activity type at registration. This default is used if a task list is not provided when a task is scheduled through the ScheduleActivityTask decision. You can override the default registered task list when scheduling a task through the ScheduleActivityTask decision. + /// The default task list specified for this activity type at registration. This default is used if a task list isn't provided when a task is scheduled through the ScheduleActivityTask Decision. You can override the default registered task list when scheduling a task through the ScheduleActivityTask Decision. public let defaultTaskList: TaskList? - /// Optional. The default maximum duration, specified when registering the activity type, for tasks of this activity type. You can override this default when scheduling a task through the ScheduleActivityTask decision. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The default maximum duration, specified when registering the activity type, for tasks of this activity type. You can override this default when scheduling a task through the ScheduleActivityTask Decision. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultTaskScheduleToCloseTimeout: String? - /// Optional. The default maximum time, in seconds, before which a worker processing a task must report progress by calling RecordActivityTaskHeartbeat. You can specify this value only when registering an activity type. The registered default value can be overridden when you schedule a task through the ScheduleActivityTask decision. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an UnknownResource fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The default maximum time, in seconds, before which a worker processing a task must report progress by calling RecordActivityTaskHeartbeat. You can specify this value only when registering an activity type. The registered default value can be overridden when you schedule a task through the ScheduleActivityTask Decision. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an UnknownResource fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let defaultTaskHeartbeatTimeout: String? public init(defaultTaskScheduleToStartTimeout: String? = nil, defaultTaskStartToCloseTimeout: String? = nil, defaultTaskPriority: String? = nil, defaultTaskList: TaskList? = nil, defaultTaskScheduleToCloseTimeout: String? = nil, defaultTaskHeartbeatTimeout: String? = nil) { @@ -3670,7 +3689,7 @@ extension Swf { } public struct TimerCanceledEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "timerId", required: true, type: .string) @@ -3679,7 +3698,7 @@ extension Swf { public let startedEventId: Int64 /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelTimer decision to cancel this timer. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 - /// The unique ID of the timer that was canceled. + /// The unique ID of the timer that was canceled. public let timerId: String public init(startedEventId: Int64, decisionTaskCompletedEventId: Int64, timerId: String) { @@ -3696,7 +3715,7 @@ extension Swf { } public struct ListActivityTypesInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "maximumPageSize", required: false, type: .integer), AWSShapeMember(label: "name", required: false, type: .string), AWSShapeMember(label: "nextPageToken", required: false, type: .string), @@ -3704,7 +3723,7 @@ extension Swf { AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "registrationStatus", required: true, type: .enum) ] - /// The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. + /// The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum. This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum. public let maximumPageSize: Int32? /// If specified, only lists the activity types that have this name. public let name: String? @@ -3737,11 +3756,11 @@ extension Swf { } public struct FailWorkflowExecutionDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "reason", required: false, type: .string) ] - /// Optional. Details of the failure. + /// Details of the failure. public let details: String? /// A descriptive reason for the failure that may help in diagnostics. public let reason: String? @@ -3758,7 +3777,7 @@ extension Swf { } public struct PendingTaskCount: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "truncated", required: false, type: .boolean), AWSShapeMember(label: "count", required: true, type: .integer) ] @@ -3779,7 +3798,7 @@ extension Swf { } public struct WorkflowExecutionContinuedAsNewEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "lambdaRole", required: false, type: .string), AWSShapeMember(label: "taskList", required: true, type: .structure), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), @@ -3792,24 +3811,27 @@ extension Swf { AWSShapeMember(label: "taskStartToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "executionStartToCloseTimeout", required: false, type: .string) ] - /// The IAM role attached to this workflow execution to use when invoking AWS Lambda functions. + /// The IAM role to attach to the new (continued) workflow execution. public let lambdaRole: String? + /// The task list to use for the decisions of the new (continued) workflow execution. public let taskList: TaskList /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the ContinueAsNewWorkflowExecution decision that started this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 /// The runId of the new workflow execution. public let newExecutionRunId: String + /// The priority of the task to use for the decisions of the new (continued) workflow execution. public let taskPriority: String? /// The list of tags associated with the new workflow execution. public let tagList: [String]? /// The input provided to the new workflow execution. public let input: String? + /// The workflow type of this execution. public let workflowType: WorkflowType - /// The policy to use for the child workflow executions of the new execution if it is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. + /// The policy to use for the child workflow executions of the new execution if it is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. public let childPolicy: ChildPolicy - /// The maximum duration of decision tasks for the new workflow execution. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The maximum duration of decision tasks for the new workflow execution. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let taskStartToCloseTimeout: String? - /// The total duration allowed for the new workflow execution. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The total duration allowed for the new workflow execution. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let executionStartToCloseTimeout: String? public init(lambdaRole: String? = nil, taskList: TaskList, decisionTaskCompletedEventId: Int64, newExecutionRunId: String, taskPriority: String? = nil, tagList: [String]? = nil, input: String? = nil, workflowType: WorkflowType, childPolicy: ChildPolicy, taskStartToCloseTimeout: String? = nil, executionStartToCloseTimeout: String? = nil) { @@ -3850,7 +3872,7 @@ extension Swf { } public struct Decision: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "scheduleActivityTaskDecisionAttributes", required: false, type: .structure), AWSShapeMember(label: "requestCancelExternalWorkflowExecutionDecisionAttributes", required: false, type: .structure), AWSShapeMember(label: "cancelTimerDecisionAttributes", required: false, type: .structure), @@ -3866,32 +3888,33 @@ extension Swf { AWSShapeMember(label: "completeWorkflowExecutionDecisionAttributes", required: false, type: .structure), AWSShapeMember(label: "scheduleLambdaFunctionDecisionAttributes", required: false, type: .structure) ] - /// Provides details of the ScheduleActivityTask decision. It is not set for other decision types. + /// Provides the details of the ScheduleActivityTask decision. It isn't set for other decision types. public let scheduleActivityTaskDecisionAttributes: ScheduleActivityTaskDecisionAttributes? - /// Provides details of the RequestCancelExternalWorkflowExecution decision. It is not set for other decision types. + /// Provides the details of the RequestCancelExternalWorkflowExecution decision. It isn't set for other decision types. public let requestCancelExternalWorkflowExecutionDecisionAttributes: RequestCancelExternalWorkflowExecutionDecisionAttributes? - /// Provides details of the CancelTimer decision. It is not set for other decision types. + /// Provides the details of the CancelTimer decision. It isn't set for other decision types. public let cancelTimerDecisionAttributes: CancelTimerDecisionAttributes? - /// Provides details of the SignalExternalWorkflowExecution decision. It is not set for other decision types. + /// Provides the details of the SignalExternalWorkflowExecution decision. It isn't set for other decision types. public let signalExternalWorkflowExecutionDecisionAttributes: SignalExternalWorkflowExecutionDecisionAttributes? - /// Provides details of the RequestCancelActivityTask decision. It is not set for other decision types. + /// Provides the details of the RequestCancelActivityTask decision. It isn't set for other decision types. public let requestCancelActivityTaskDecisionAttributes: RequestCancelActivityTaskDecisionAttributes? - /// Provides details of the RecordMarker decision. It is not set for other decision types. + /// Provides the details of the RecordMarker decision. It isn't set for other decision types. public let recordMarkerDecisionAttributes: RecordMarkerDecisionAttributes? - /// Provides details of the FailWorkflowExecution decision. It is not set for other decision types. + /// Provides the details of the FailWorkflowExecution decision. It isn't set for other decision types. public let failWorkflowExecutionDecisionAttributes: FailWorkflowExecutionDecisionAttributes? - /// Provides details of the CancelWorkflowExecution decision. It is not set for other decision types. + /// Provides the details of the CancelWorkflowExecution decision. It isn't set for other decision types. public let cancelWorkflowExecutionDecisionAttributes: CancelWorkflowExecutionDecisionAttributes? /// Specifies the type of the decision. public let decisionType: DecisionType - /// Provides details of the ContinueAsNewWorkflowExecution decision. It is not set for other decision types. + /// Provides the details of the ContinueAsNewWorkflowExecution decision. It isn't set for other decision types. public let continueAsNewWorkflowExecutionDecisionAttributes: ContinueAsNewWorkflowExecutionDecisionAttributes? - /// Provides details of the StartTimer decision. It is not set for other decision types. + /// Provides the details of the StartTimer decision. It isn't set for other decision types. public let startTimerDecisionAttributes: StartTimerDecisionAttributes? - /// Provides details of the StartChildWorkflowExecution decision. It is not set for other decision types. + /// Provides the details of the StartChildWorkflowExecution decision. It isn't set for other decision types. public let startChildWorkflowExecutionDecisionAttributes: StartChildWorkflowExecutionDecisionAttributes? - /// Provides details of the CompleteWorkflowExecution decision. It is not set for other decision types. + /// Provides the details of the CompleteWorkflowExecution decision. It isn't set for other decision types. public let completeWorkflowExecutionDecisionAttributes: CompleteWorkflowExecutionDecisionAttributes? + /// Provides the details of the ScheduleLambdaFunction decision. It isn't set for other decision types. public let scheduleLambdaFunctionDecisionAttributes: ScheduleLambdaFunctionDecisionAttributes? public init(scheduleActivityTaskDecisionAttributes: ScheduleActivityTaskDecisionAttributes? = nil, requestCancelExternalWorkflowExecutionDecisionAttributes: RequestCancelExternalWorkflowExecutionDecisionAttributes? = nil, cancelTimerDecisionAttributes: CancelTimerDecisionAttributes? = nil, signalExternalWorkflowExecutionDecisionAttributes: SignalExternalWorkflowExecutionDecisionAttributes? = nil, requestCancelActivityTaskDecisionAttributes: RequestCancelActivityTaskDecisionAttributes? = nil, recordMarkerDecisionAttributes: RecordMarkerDecisionAttributes? = nil, failWorkflowExecutionDecisionAttributes: FailWorkflowExecutionDecisionAttributes? = nil, cancelWorkflowExecutionDecisionAttributes: CancelWorkflowExecutionDecisionAttributes? = nil, decisionType: DecisionType, continueAsNewWorkflowExecutionDecisionAttributes: ContinueAsNewWorkflowExecutionDecisionAttributes? = nil, startTimerDecisionAttributes: StartTimerDecisionAttributes? = nil, startChildWorkflowExecutionDecisionAttributes: StartChildWorkflowExecutionDecisionAttributes? = nil, completeWorkflowExecutionDecisionAttributes: CompleteWorkflowExecutionDecisionAttributes? = nil, scheduleLambdaFunctionDecisionAttributes: ScheduleLambdaFunctionDecisionAttributes? = nil) { @@ -3930,7 +3953,7 @@ extension Swf { } public struct WorkflowTypeInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "description", required: false, type: .string), AWSShapeMember(label: "status", required: true, type: .enum), AWSShapeMember(label: "deprecationDate", required: false, type: .timestamp), @@ -3966,7 +3989,7 @@ extension Swf { } public struct WorkflowExecutionSignaledEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "signalName", required: true, type: .string), AWSShapeMember(label: "input", required: false, type: .string), AWSShapeMember(label: "externalWorkflowExecution", required: false, type: .structure), @@ -3974,7 +3997,7 @@ extension Swf { ] /// The name of the signal received. The decider can use the signal name and inputs to determine how to the process the signal. public let signalName: String - /// Inputs provided with the signal (if any). The decider can use the signal name and inputs to determine how to process the signal. + /// The inputs provided with the signal. The decider can use the signal name and inputs to determine how to process the signal. public let input: String? /// The workflow execution that sent the signal. This is set only of the signal was sent by another workflow execution. public let externalWorkflowExecution: WorkflowExecution? @@ -3997,7 +4020,7 @@ extension Swf { } public struct ActivityTypeInfos: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextPageToken", required: false, type: .string), AWSShapeMember(label: "typeInfos", required: true, type: .list) ] @@ -4018,16 +4041,16 @@ extension Swf { } public struct RespondDecisionTaskCompletedInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "taskToken", required: true, type: .string), AWSShapeMember(label: "executionContext", required: false, type: .string), AWSShapeMember(label: "decisions", required: false, type: .list) ] - /// The taskToken from the DecisionTask. taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. + /// The taskToken from the DecisionTask. taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. public let taskToken: String /// User defined context to add to workflow execution. public let executionContext: String? - /// The list of decisions (possibly empty) made by the decider while processing this decision task. See the docs for the decision structure for details. + /// The list of decisions (possibly empty) made by the decider while processing this decision task. See the docs for the Decision structure for details. public let decisions: [Decision]? public init(taskToken: String, executionContext: String? = nil, decisions: [Decision]? = nil) { @@ -4044,12 +4067,12 @@ extension Swf { } public struct MarkerRecordedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "markerName", required: true, type: .string) ] - /// Details of the marker (if any). + /// The details of the marker. public let details: String? /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RecordMarker decision that requested this marker. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 @@ -4070,11 +4093,11 @@ extension Swf { } public struct WorkflowExecutionTimedOutEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "childPolicy", required: true, type: .enum), AWSShapeMember(label: "timeoutType", required: true, type: .enum) ] - /// The policy used for the child workflow executions of this workflow execution. The supported child policies are: TERMINATE: the child executions will be terminated. REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON: no action will be taken. The child executions will continue to run. + /// The policy used for the child workflow executions of this workflow execution. The supported child policies are: TERMINATE – The child executions are terminated. REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. ABANDON – No action is taken. The child executions continue to run. public let childPolicy: ChildPolicy /// The type of timeout that caused this event. public let timeoutType: WorkflowExecutionTimeoutType @@ -4091,26 +4114,30 @@ extension Swf { } public struct ScheduleLambdaFunctionDecisionAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "name", required: true, type: .string), AWSShapeMember(label: "input", required: false, type: .string), AWSShapeMember(label: "startToCloseTimeout", required: false, type: .string), - AWSShapeMember(label: "id", required: true, type: .string) + AWSShapeMember(label: "id", required: true, type: .string), + AWSShapeMember(label: "control", required: false, type: .string) ] - /// Required. The name of the AWS Lambda function to invoke. + /// The name, or ARN, of the Lambda function to schedule. public let name: String - /// The input provided to the AWS Lambda function. + /// The optional input data to be supplied to the Lambda function. public let input: String? - /// If set, specifies the maximum duration the function may take to execute. + /// The timeout value, in seconds, after which the Lambda function is considered to be failed once it has started. This can be any integer from 1-300 (1s-5m). If no value is supplied, than a default value of 300s is assumed. public let startToCloseTimeout: String? - /// Required. The SWF id of the AWS Lambda task. The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string quotarnquot. + /// A string that identifies the Lambda function execution in the event history. public let id: String + /// The data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the Lambda task. + public let control: String? - public init(name: String, input: String? = nil, startToCloseTimeout: String? = nil, id: String) { + public init(name: String, input: String? = nil, startToCloseTimeout: String? = nil, id: String, control: String? = nil) { self.name = name self.input = input self.startToCloseTimeout = startToCloseTimeout self.id = id + self.control = control } private enum CodingKeys: String, CodingKey { @@ -4118,6 +4145,7 @@ extension Swf { case input = "input" case startToCloseTimeout = "startToCloseTimeout" case id = "id" + case control = "control" } } @@ -4144,7 +4172,7 @@ extension Swf { } public struct DescribeWorkflowExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "execution", required: true, type: .structure), AWSShapeMember(label: "domain", required: true, type: .string) ] @@ -4165,13 +4193,13 @@ extension Swf { } public struct ContinueAsNewWorkflowExecutionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "cause", required: true, type: .enum) ] /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the ContinueAsNewWorkflowExecution decision that started this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: ContinueAsNewWorkflowExecutionFailedCause public init(decisionTaskCompletedEventId: Int64, cause: ContinueAsNewWorkflowExecutionFailedCause) { @@ -4186,7 +4214,7 @@ extension Swf { } public struct WorkflowExecutionDetail: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "openCounts", required: true, type: .structure), AWSShapeMember(label: "executionInfo", required: true, type: .structure), AWSShapeMember(label: "latestActivityTaskTimestamp", required: false, type: .timestamp), @@ -4222,7 +4250,7 @@ extension Swf { } public struct ExternalWorkflowExecutionCancelRequestedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "workflowExecution", required: true, type: .structure) ] @@ -4250,7 +4278,7 @@ extension Swf { } public struct WorkflowTypeInfos: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextPageToken", required: false, type: .string), AWSShapeMember(label: "typeInfos", required: true, type: .list) ] @@ -4271,13 +4299,13 @@ extension Swf { } public struct CancelWorkflowExecutionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "cause", required: true, type: .enum) ] /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelWorkflowExecution decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: CancelWorkflowExecutionFailedCause public init(decisionTaskCompletedEventId: Int64, cause: CancelWorkflowExecutionFailedCause) { @@ -4292,13 +4320,13 @@ extension Swf { } public struct ActivityTaskCanceledEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "latestCancelRequestedEventId", required: false, type: .long), AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "scheduledEventId", required: true, type: .long) ] - /// Details of the cancellation (if any). + /// Details of the cancellation. public let details: String? /// If set, contains the ID of the last ActivityTaskCancelRequested event recorded for this activity task. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let latestCancelRequestedEventId: Int64? @@ -4323,7 +4351,7 @@ extension Swf { } public struct WorkflowExecutionCount: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "truncated", required: false, type: .boolean), AWSShapeMember(label: "count", required: true, type: .integer) ] @@ -4344,7 +4372,7 @@ extension Swf { } public struct CountPendingDecisionTasksInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "domain", required: true, type: .string), AWSShapeMember(label: "taskList", required: true, type: .structure) ] @@ -4365,7 +4393,7 @@ extension Swf { } public struct DomainInfos: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "nextPageToken", required: false, type: .string), AWSShapeMember(label: "domainInfos", required: true, type: .list) ] @@ -4386,7 +4414,7 @@ extension Swf { } public struct SignalWorkflowExecutionInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: false, type: .string), AWSShapeMember(label: "signalName", required: true, type: .string), AWSShapeMember(label: "input", required: false, type: .string), @@ -4422,7 +4450,7 @@ extension Swf { } public struct SignalExternalWorkflowExecutionFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "runId", required: false, type: .string), AWSShapeMember(label: "initiatedEventId", required: true, type: .long), AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), @@ -4438,8 +4466,9 @@ extension Swf { public let decisionTaskCompletedEventId: Int64 /// The workflowId of the external workflow execution that the signal was being delivered to. public let workflowId: String - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: SignalExternalWorkflowExecutionFailedCause + /// The data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the workflow execution. public let control: String? public init(runId: String? = nil, initiatedEventId: Int64, decisionTaskCompletedEventId: Int64, workflowId: String, cause: SignalExternalWorkflowExecutionFailedCause, control: String? = nil) { @@ -4462,15 +4491,15 @@ extension Swf { } public struct ActivityTaskFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "details", required: false, type: .string), AWSShapeMember(label: "reason", required: false, type: .string), AWSShapeMember(label: "startedEventId", required: true, type: .long), AWSShapeMember(label: "scheduledEventId", required: true, type: .long) ] - /// The details of the failure (if any). + /// The details of the failure. public let details: String? - /// The reason provided for the failure (if any). + /// The reason provided for the failure. public let reason: String? /// The ID of the ActivityTaskStarted event recorded when this activity task was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let startedEventId: Int64 @@ -4499,14 +4528,14 @@ extension Swf { } public struct StartTimerFailedEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "decisionTaskCompletedEventId", required: true, type: .long), AWSShapeMember(label: "cause", required: true, type: .enum), AWSShapeMember(label: "timerId", required: true, type: .string) ] /// The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartTimer decision for this activity task. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. public let decisionTaskCompletedEventId: Int64 - /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows. + /// The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide. public let cause: StartTimerFailedCause /// The timerId provided in the StartTimer decision that failed. public let timerId: String @@ -4525,14 +4554,14 @@ extension Swf { } public struct DecisionTaskScheduledEventAttributes: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "startToCloseTimeout", required: false, type: .string), AWSShapeMember(label: "taskPriority", required: false, type: .string), AWSShapeMember(label: "taskList", required: true, type: .structure) ] - /// The maximum duration for this decision task. The task is considered timed out if it does not completed within this duration. The duration is specified in seconds; an integer greater than or equal to 0. The value "NONE" can be used to specify unlimited duration. + /// The maximum duration for this decision task. The task is considered timed out if it doesn't completed within this duration. The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration. public let startToCloseTimeout: String? - /// Optional. A task priority that, if set, specifies the priority for this decision task. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide. + /// A task priority that, if set, specifies the priority for this decision task. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide. public let taskPriority: String? /// The name of the task list in which the decision task was scheduled. public let taskList: TaskList @@ -4551,7 +4580,7 @@ extension Swf { } public struct DeprecateActivityTypeInput: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "activityType", required: true, type: .structure), AWSShapeMember(label: "domain", required: true, type: .string) ] diff --git a/Sources/AWSSDKSwift/Services/translate/Translate_API.swift b/Sources/AWSSDKSwift/Services/translate/Translate_API.swift new file mode 100644 index 00000000000..abedbaed7b3 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/translate/Translate_API.swift @@ -0,0 +1,34 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +/** +Provides translation between English and one of six languages, or between one of the six languages and English. +*/ +public struct Translate { + + let client: AWSClient + + public init(accessKeyId: String? = nil, secretAccessKey: String? = nil, region: AWSSDKSwiftCore.Region? = nil, endpoint: String? = nil) { + self.client = AWSClient( + accessKeyId: accessKeyId, + secretAccessKey: secretAccessKey, + region: region, + amzTarget: "AWSShineFrontendService_20170701", + service: "translate", + serviceProtocol: ServiceProtocol(type: .json, version: ServiceProtocol.Version(major: 1, minor: 1)), + apiVersion: "2017-07-01", + endpoint: endpoint, + middlewares: [], + possibleErrorTypes: [TranslateError.self] + ) + } + + /// Translates input text from the source language to the target language. You can translate between English (en) and one of the following languages, or between one of the following languages and English. Arabic (ar) Chinese (Simplified) (zh) French (fr) German (de) Portuguese (pt) Spanish (es) + public func translateText(_ input: TranslateTextRequest) throws -> TranslateTextResponse { + return try client.send(operation: "TranslateText", path: "/", httpMethod: "POST", input: input) + } + + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/translate/Translate_Error.swift b/Sources/AWSSDKSwift/Services/translate/Translate_Error.swift new file mode 100644 index 00000000000..8cc6da64ebd --- /dev/null +++ b/Sources/AWSSDKSwift/Services/translate/Translate_Error.swift @@ -0,0 +1,38 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import AWSSDKSwiftCore + +/// Error enum for Translate +public enum TranslateError: AWSErrorType { + case invalidRequestException(message: String?) + case textSizeLimitExceededException(message: String?) + case tooManyRequestsException(message: String?) + case unsupportedLanguagePairException(message: String?) + case internalServerException(message: String?) + case serviceUnavailableException(message: String?) +} + +extension TranslateError { + public init?(errorCode: String, message: String?){ + var errorCode = errorCode + if let index = errorCode.index(of: "#") { + errorCode = String(errorCode[errorCode.index(index, offsetBy: 1)...]) + } + switch errorCode { + case "InvalidRequestException": + self = .invalidRequestException(message: message) + case "TextSizeLimitExceededException": + self = .textSizeLimitExceededException(message: message) + case "TooManyRequestsException": + self = .tooManyRequestsException(message: message) + case "UnsupportedLanguagePairException": + self = .unsupportedLanguagePairException(message: message) + case "InternalServerException": + self = .internalServerException(message: message) + case "ServiceUnavailableException": + self = .serviceUnavailableException(message: message) + default: + return nil + } + } +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/translate/Translate_Shapes.swift b/Sources/AWSSDKSwift/Services/translate/Translate_Shapes.swift new file mode 100644 index 00000000000..e26aa131122 --- /dev/null +++ b/Sources/AWSSDKSwift/Services/translate/Translate_Shapes.swift @@ -0,0 +1,60 @@ +// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/noppoMan/aws-sdk-swift/blob/master/Sources/CodeGenerator/main.swift. DO NOT EDIT. + +import Foundation +import AWSSDKSwiftCore + +extension Translate { + + public struct TranslateTextRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SourceLanguageCode", required: true, type: .string), + AWSShapeMember(label: "Text", required: true, type: .string), + AWSShapeMember(label: "TargetLanguageCode", required: true, type: .string) + ] + /// One of the supported language codes for the source text. If the TargetLanguageCode is not "en", the SourceLanguageCode must be "en". + public let sourceLanguageCode: String + /// The text to translate. + public let text: String + /// One of the supported language codes for the target text. If the SourceLanguageCode is not "en", the TargetLanguageCode must be "en". + public let targetLanguageCode: String + + public init(sourceLanguageCode: String, text: String, targetLanguageCode: String) { + self.sourceLanguageCode = sourceLanguageCode + self.text = text + self.targetLanguageCode = targetLanguageCode + } + + private enum CodingKeys: String, CodingKey { + case sourceLanguageCode = "SourceLanguageCode" + case text = "Text" + case targetLanguageCode = "TargetLanguageCode" + } + } + + public struct TranslateTextResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TranslatedText", required: true, type: .string), + AWSShapeMember(label: "TargetLanguageCode", required: true, type: .string), + AWSShapeMember(label: "SourceLanguageCode", required: true, type: .string) + ] + /// The text translated into the target language. + public let translatedText: String + /// The language code for the language of the translated text. + public let targetLanguageCode: String + /// The language code for the language of the input text. + public let sourceLanguageCode: String + + public init(translatedText: String, targetLanguageCode: String, sourceLanguageCode: String) { + self.translatedText = translatedText + self.targetLanguageCode = targetLanguageCode + self.sourceLanguageCode = sourceLanguageCode + } + + private enum CodingKeys: String, CodingKey { + case translatedText = "TranslatedText" + case targetLanguageCode = "TargetLanguageCode" + case sourceLanguageCode = "SourceLanguageCode" + } + } + +} \ No newline at end of file diff --git a/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_API.swift b/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_API.swift index 9a46f09813d..f171dcfc9bc 100644 --- a/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_API.swift +++ b/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_API.swift @@ -25,29 +25,19 @@ public struct WafRegional { ) } - /// Returns an array of SizeConstraintSetSummary objects. - public func listSizeConstraintSets(_ input: ListSizeConstraintSetsRequest) throws -> ListSizeConstraintSetsResponse { - return try client.send(operation: "ListSizeConstraintSets", path: "/", httpMethod: "POST", input: input) - } - - /// Returns an array of RuleSummary objects. - public func listRules(_ input: ListRulesRequest) throws -> ListRulesResponse { - return try client.send(operation: "ListRules", path: "/", httpMethod: "POST", input: input) - } - /// Returns an array of WebACLSummary objects in the response. public func listWebACLs(_ input: ListWebACLsRequest) throws -> ListWebACLsResponse { return try client.send(operation: "ListWebACLs", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of ByteMatchSetSummary objects. - public func listByteMatchSets(_ input: ListByteMatchSetsRequest) throws -> ListByteMatchSetsResponse { - return try client.send(operation: "ListByteMatchSets", path: "/", httpMethod: "POST", input: input) + /// Returns an array of SizeConstraintSetSummary objects. + public func listSizeConstraintSets(_ input: ListSizeConstraintSetsRequest) throws -> ListSizeConstraintSetsResponse { + return try client.send(operation: "ListSizeConstraintSets", path: "/", httpMethod: "POST", input: input) } - /// Creates an IPSet, which you use to specify which web requests you want to allow or block based on the IP addresses that the requests originate from. For example, if you're receiving a lot of requests from one or more individual IP addresses or one or more ranges of IP addresses and you want to block the requests, you can create an IPSet that contains those IP addresses and then configure AWS WAF to block the requests. To create and configure an IPSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateIPSet request. Submit a CreateIPSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request. Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func createIPSet(_ input: CreateIPSetRequest) throws -> CreateIPSetResponse { - return try client.send(operation: "CreateIPSet", path: "/", httpMethod: "POST", input: input) + /// Permanently deletes a WebACL. You can't delete a WebACL if it still contains any Rules. To delete a WebACL, perform the following steps: Update the WebACL to remove Rules, if any. For more information, see UpdateWebACL. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteWebACL request. Submit a DeleteWebACL request. + public func deleteWebACL(_ input: DeleteWebACLRequest) throws -> DeleteWebACLResponse { + return try client.send(operation: "DeleteWebACL", path: "/", httpMethod: "POST", input: input) } /// Inserts or deletes ByteMatchTuple objects (filters) in a ByteMatchSet. For each ByteMatchTuple object, you specify the following values: Whether to insert or delete the object from the array. If you want to change a ByteMatchSetUpdate object, you delete the existing object and add a new one. The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the User-Agent header. The bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to look for. For more information, including how you specify the values for the AWS WAF API and the AWS CLI or SDKs, see TargetString in the ByteMatchTuple data type. Where to look, such as at the beginning or the end of a query string. Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. For example, you can add a ByteMatchSetUpdate object that matches web requests in which User-Agent headers contain the string BadBot. You can then configure AWS WAF to block those requests. To create and configure a ByteMatchSet, perform the following steps: Create a ByteMatchSet. For more information, see CreateByteMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateByteMatchSet request. Submit an UpdateByteMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. @@ -65,9 +55,9 @@ public struct WafRegional { return try client.send(operation: "CreateByteMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of RuleSummary objects. - public func listRateBasedRules(_ input: ListRateBasedRulesRequest) throws -> ListRateBasedRulesResponse { - return try client.send(operation: "ListRateBasedRules", path: "/", httpMethod: "POST", input: input) + /// Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies web requests that you want to allow, block, or count. When you update a WebACL, you specify the following values: A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the Rules in a WebACL. The Rules that you want to add and/or delete. If you want to replace one Rule with another, you delete the existing Rule and add the new one. For each Rule, whether you want AWS WAF to allow requests, block requests, or count requests that match the conditions in the Rule. The order in which you want AWS WAF to evaluate the Rules in a WebACL. If you add more than one Rule to a WebACL, AWS WAF evaluates each request against the Rules in order based on the value of Priority. (The Rule that has the lowest value for Priority is evaluated first.) When a web request matches all of the predicates (such as ByteMatchSets and IPSets) in a Rule, AWS WAF immediately takes the corresponding action, allow or block, and doesn't evaluate the request against the remaining Rules in the WebACL, if any. To create and configure a WebACL, perform the following steps: Create and update the predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule. Create a WebACL. See CreateWebACL. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution. Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the rule type when first creating the rule, the UpdateWebACL request will fail because the request tries to add a REGULAR rule (the default rule type) with the specified ID, which does not exist. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateWebACL(_ input: UpdateWebACLRequest) throws -> UpdateWebACLResponse { + return try client.send(operation: "UpdateWebACL", path: "/", httpMethod: "POST", input: input) } /// Returns the status of a ChangeToken that you got by calling GetChangeToken. ChangeTokenStatus is one of the following values: PROVISIONED: You requested the change token by calling GetChangeToken, but you haven't used it yet in a call to create, update, or delete an AWS WAF object. PENDING: AWS WAF is propagating the create, update, or delete request to all AWS WAF servers. IN_SYNC: Propagation is complete. @@ -75,11 +65,6 @@ public struct WafRegional { return try client.send(operation: "GetChangeTokenStatus", path: "/", httpMethod: "POST", input: input) } - /// Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies web requests that you want to allow, block, or count. When you update a WebACL, you specify the following values: A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the Rules in a WebACL. The Rules that you want to add and/or delete. If you want to replace one Rule with another, you delete the existing Rule and add the new one. For each Rule, whether you want AWS WAF to allow requests, block requests, or count requests that match the conditions in the Rule. The order in which you want AWS WAF to evaluate the Rules in a WebACL. If you add more than one Rule to a WebACL, AWS WAF evaluates each request against the Rules in order based on the value of Priority. (The Rule that has the lowest value for Priority is evaluated first.) When a web request matches all of the predicates (such as ByteMatchSets and IPSets) in a Rule, AWS WAF immediately takes the corresponding action, allow or block, and doesn't evaluate the request against the remaining Rules in the WebACL, if any. To create and configure a WebACL, perform the following steps: Create and update the predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule. Create a WebACL. See CreateWebACL. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution. Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the rule type when first creating the rule, the UpdateWebACL request will fail because the request tries to add a REGULAR rule (the default rule type) with the specified ID, which does not exist. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func updateWebACL(_ input: UpdateWebACLRequest) throws -> UpdateWebACLResponse { - return try client.send(operation: "UpdateWebACL", path: "/", httpMethod: "POST", input: input) - } - /// Gets detailed information about a specified number of requests--a sample--that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received during a time range that you choose. You can specify a sample size of up to 500 requests, and you can specify any time range in the previous three hours. GetSampledRequests returns a time range, which is usually the time range that you specified. However, if your resource (such as a CloudFront distribution) received 5,000 requests before the specified time range elapsed, GetSampledRequests returns an updated time range. This new time range indicates the actual period during which AWS WAF selected the requests in the sample. public func getSampledRequests(_ input: GetSampledRequestsRequest) throws -> GetSampledRequestsResponse { return try client.send(operation: "GetSampledRequests", path: "/", httpMethod: "POST", input: input) @@ -95,19 +80,9 @@ public struct WafRegional { return try client.send(operation: "UpdateRule", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of IP addresses currently being blocked by the RateBasedRule that is specified by the RuleId. The maximum number of managed keys that will be blocked is 10,000. If more than 10,000 addresses exceed the rate limit, the 10,000 addresses with the highest rates will be blocked. - public func getRateBasedRuleManagedKeys(_ input: GetRateBasedRuleManagedKeysRequest) throws -> GetRateBasedRuleManagedKeysResponse { - return try client.send(operation: "GetRateBasedRuleManagedKeys", path: "/", httpMethod: "POST", input: input) - } - - /// Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to block. If you add more than one predicate to a Rule, a request must match all of the specifications to be allowed or blocked. For example, suppose you add the following to a Rule: An IPSet that matches the IP address 192.0.2.44/32 A ByteMatchSet that matches BadBot in the User-Agent header You then add the Rule to a WebACL and specify that you want to blocks requests that satisfy the Rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. To create and configure a Rule, perform the following steps: Create and update the predicates that you want to include in the Rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request. Submit a CreateRule request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request. Submit an UpdateRule request to specify the predicates that you want to include in the Rule. Create and update a WebACL that contains the Rule. For more information, see CreateWebACL. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func createRule(_ input: CreateRuleRequest) throws -> CreateRuleResponse { - return try client.send(operation: "CreateRule", path: "/", httpMethod: "POST", input: input) - } - - /// Returns the RateBasedRule that is specified by the RuleId that you included in the GetRateBasedRule request. - public func getRateBasedRule(_ input: GetRateBasedRuleRequest) throws -> GetRateBasedRuleResponse { - return try client.send(operation: "GetRateBasedRule", path: "/", httpMethod: "POST", input: input) + /// Returns the IPSet that is specified by IPSetId. + public func getIPSet(_ input: GetIPSetRequest) throws -> GetIPSetResponse { + return try client.send(operation: "GetIPSet", path: "/", httpMethod: "POST", input: input) } /// Permanently deletes a ByteMatchSet. You can't delete a ByteMatchSet if it's still used in any Rules or if it still includes any ByteMatchTuple objects (any filters). If you just want to remove a ByteMatchSet from a Rule, use UpdateRule. To permanently delete a ByteMatchSet, perform the following steps: Update the ByteMatchSet to remove filters, if any. For more information, see UpdateByteMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteByteMatchSet request. Submit a DeleteByteMatchSet request. @@ -115,14 +90,14 @@ public struct WafRegional { return try client.send(operation: "DeleteByteMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Returns the IPSet that is specified by IPSetId. - public func getIPSet(_ input: GetIPSetRequest) throws -> GetIPSetResponse { - return try client.send(operation: "GetIPSet", path: "/", httpMethod: "POST", input: input) + /// Returns the RegexMatchSet specified by RegexMatchSetId. + public func getRegexMatchSet(_ input: GetRegexMatchSetRequest) throws -> GetRegexMatchSetResponse { + return try client.send(operation: "GetRegexMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of XssMatchSet objects. - public func listXssMatchSets(_ input: ListXssMatchSetsRequest) throws -> ListXssMatchSetsResponse { - return try client.send(operation: "ListXssMatchSets", path: "/", httpMethod: "POST", input: input) + /// Creates a RuleGroup. A rule group is a collection of predefined rules that you add to a web ACL. You use UpdateRuleGroup to add rules to the rule group. Rule groups are subject to the following limits: Three rule groups per account. You can request an increase to this limit by contacting customer support. One rule group per web ACL. Ten rules per rule group. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createRuleGroup(_ input: CreateRuleGroupRequest) throws -> CreateRuleGroupResponse { + return try client.send(operation: "CreateRuleGroup", path: "/", httpMethod: "POST", input: input) } /// Permanently deletes a SizeConstraintSet. You can't delete a SizeConstraintSet if it's still used in any Rules or if it still includes any SizeConstraint objects (any filters). If you just want to remove a SizeConstraintSet from a Rule, use UpdateRule. To permanently delete a SizeConstraintSet, perform the following steps: Update the SizeConstraintSet to remove filters, if any. For more information, see UpdateSizeConstraintSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteSizeConstraintSet request. Submit a DeleteSizeConstraintSet request. @@ -130,6 +105,11 @@ public struct WafRegional { return try client.send(operation: "DeleteSizeConstraintSet", path: "/", httpMethod: "POST", input: input) } + /// Returns the GeoMatchSet that is specified by GeoMatchSetId. + public func getGeoMatchSet(_ input: GetGeoMatchSetRequest) throws -> GetGeoMatchSetResponse { + return try client.send(operation: "GetGeoMatchSet", path: "/", httpMethod: "POST", input: input) + } + /// Returns an array of IPSetSummary objects in the response. public func listIPSets(_ input: ListIPSetsRequest) throws -> ListIPSetsResponse { return try client.send(operation: "ListIPSets", path: "/", httpMethod: "POST", input: input) @@ -140,11 +120,6 @@ public struct WafRegional { return try client.send(operation: "GetByteMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify the part of a web request that you want AWS WAF to check for length, such as the length of the User-Agent header or the length of the query string. For example, you can create a SizeConstraintSet that matches any requests that have a query string that is longer than 100 bytes. You can then configure AWS WAF to reject those requests. To create and configure a SizeConstraintSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateSizeConstraintSet request. Submit a CreateSizeConstraintSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateSizeConstraintSet request. Submit an UpdateSizeConstraintSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func createSizeConstraintSet(_ input: CreateSizeConstraintSetRequest) throws -> CreateSizeConstraintSetResponse { - return try client.send(operation: "CreateSizeConstraintSet", path: "/", httpMethod: "POST", input: input) - } - /// Returns an array of SqlInjectionMatchSet objects. public func listSqlInjectionMatchSets(_ input: ListSqlInjectionMatchSetsRequest) throws -> ListSqlInjectionMatchSetsResponse { return try client.send(operation: "ListSqlInjectionMatchSets", path: "/", httpMethod: "POST", input: input) @@ -160,9 +135,9 @@ public struct WafRegional { return try client.send(operation: "UpdateSizeConstraintSet", path: "/", httpMethod: "POST", input: input) } - /// Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies the maximum number of requests that AWS WAF allows from a specified IP address in a five-minute period. The RateBasedRule also contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to count or block if these requests exceed the RateLimit. If you add more than one predicate to a RateBasedRule, a request not only must exceed the RateLimit, but it also must match all the specifications to be counted or blocked. For example, suppose you add the following to a RateBasedRule: An IPSet that matches the IP address 192.0.2.44/32 A ByteMatchSet that matches BadBot in the User-Agent header Further, you specify a RateLimit of 15,000. You then add the RateBasedRule to a WebACL and specify that you want to block requests that meet the conditions in the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. Further, requests that match these two conditions must be received at a rate of more than 15,000 requests every five minutes. If both conditions are met and the rate is exceeded, AWS WAF blocks the requests. If the rate drops below 15,000 for a five-minute period, AWS WAF no longer blocks the requests. As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a RateBasedRule: A ByteMatchSet with FieldToMatch of URI A PositionalConstraint of STARTS_WITH A TargetString of login Further, you specify a RateLimit of 15,000. By adding this RateBasedRule to a WebACL, you could limit requests to your login page without affecting the rest of your site. To create and configure a RateBasedRule, perform the following steps: Create and update the predicates that you want to include in the rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request. Submit a CreateRateBasedRule request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request. Submit an UpdateRateBasedRule request to specify the predicates that you want to include in the rule. Create and update a WebACL that contains the RateBasedRule. For more information, see CreateWebACL. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func createRateBasedRule(_ input: CreateRateBasedRuleRequest) throws -> CreateRateBasedRuleResponse { - return try client.send(operation: "CreateRateBasedRule", path: "/", httpMethod: "POST", input: input) + /// Creates an GeoMatchSet, which you use to specify which web requests you want to allow or block based on the country that the requests originate from. For example, if you're receiving a lot of requests from one or more countries and you want to block the requests, you can create an GeoMatchSet that contains those countries and then configure AWS WAF to block the requests. To create and configure a GeoMatchSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateGeoMatchSet request. Submit a CreateGeoMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateGeoMatchSet request. Submit an UpdateGeoMatchSetSet request to specify the countries that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createGeoMatchSet(_ input: CreateGeoMatchSetRequest) throws -> CreateGeoMatchSetResponse { + return try client.send(operation: "CreateGeoMatchSet", path: "/", httpMethod: "POST", input: input) } /// Inserts or deletes XssMatchTuple objects (filters) in an XssMatchSet. For each XssMatchTuple object, you specify the following values: Action: Whether to insert the object into or delete the object from the array. To change a XssMatchTuple, you delete the existing object and add a new one. FieldToMatch: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to inspect a header, the name of the header. TextTransformation: Which text transformation, if any, to perform on the web request before inspecting the request for cross-site scripting attacks. You use XssMatchSet objects to specify which CloudFront requests you want to allow, block, or count. For example, if you're receiving requests that contain cross-site scripting attacks in the request body and you want to block the requests, you can create an XssMatchSet with the applicable settings, and then configure AWS WAF to block the requests. To create and configure an XssMatchSet, perform the following steps: Submit a CreateXssMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request. Submit an UpdateXssMatchSet request to specify the parts of web requests that you want AWS WAF to inspect for cross-site scripting attacks. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. @@ -170,24 +145,14 @@ public struct WafRegional { return try client.send(operation: "UpdateXssMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Inserts or deletes SqlInjectionMatchTuple objects (filters) in a SqlInjectionMatchSet. For each SqlInjectionMatchTuple object, you specify the following values: Action: Whether to insert the object into or delete the object from the array. To change a SqlInjectionMatchTuple, you delete the existing object and add a new one. FieldToMatch: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to inspect a header, the name of the header. TextTransformation: Which text transformation, if any, to perform on the web request before inspecting the request for snippets of malicious SQL code. You use SqlInjectionMatchSet objects to specify which CloudFront requests you want to allow, block, or count. For example, if you're receiving requests that contain snippets of SQL code in the query string and you want to block the requests, you can create a SqlInjectionMatchSet with the applicable settings, and then configure AWS WAF to block the requests. To create and configure a SqlInjectionMatchSet, perform the following steps: Submit a CreateSqlInjectionMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request. Submit an UpdateSqlInjectionMatchSet request to specify the parts of web requests that you want AWS WAF to inspect for snippets of SQL code. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func updateSqlInjectionMatchSet(_ input: UpdateSqlInjectionMatchSetRequest) throws -> UpdateSqlInjectionMatchSetResponse { - return try client.send(operation: "UpdateSqlInjectionMatchSet", path: "/", httpMethod: "POST", input: input) - } - - /// Creates a WebACL, which contains the Rules that identify the CloudFront web requests that you want to allow, block, or count. AWS WAF evaluates Rules in order based on the value of Priority for each Rule. You also specify a default action, either ALLOW or BLOCK. If a web request doesn't match any of the Rules in a WebACL, AWS WAF responds to the request with the default action. To create and configure a WebACL, perform the following steps: Create and update the ByteMatchSet objects and other predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateWebACL request. Submit a CreateWebACL request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution. For more information about how to use the AWS WAF API, see the AWS WAF Developer Guide. - public func createWebACL(_ input: CreateWebACLRequest) throws -> CreateWebACLResponse { - return try client.send(operation: "CreateWebACL", path: "/", httpMethod: "POST", input: input) - } - /// Removes a web ACL from the specified resource. public func disassociateWebACL(_ input: DisassociateWebACLRequest) throws -> DisassociateWebACLResponse { return try client.send(operation: "DisassociateWebACL", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of resources associated with the specified web ACL. - public func listResourcesForWebACL(_ input: ListResourcesForWebACLRequest) throws -> ListResourcesForWebACLResponse { - return try client.send(operation: "ListResourcesForWebACL", path: "/", httpMethod: "POST", input: input) + /// Inserts or deletes SqlInjectionMatchTuple objects (filters) in a SqlInjectionMatchSet. For each SqlInjectionMatchTuple object, you specify the following values: Action: Whether to insert the object into or delete the object from the array. To change a SqlInjectionMatchTuple, you delete the existing object and add a new one. FieldToMatch: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to inspect a header, the name of the header. TextTransformation: Which text transformation, if any, to perform on the web request before inspecting the request for snippets of malicious SQL code. You use SqlInjectionMatchSet objects to specify which CloudFront requests you want to allow, block, or count. For example, if you're receiving requests that contain snippets of SQL code in the query string and you want to block the requests, you can create a SqlInjectionMatchSet with the applicable settings, and then configure AWS WAF to block the requests. To create and configure a SqlInjectionMatchSet, perform the following steps: Submit a CreateSqlInjectionMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request. Submit an UpdateSqlInjectionMatchSet request to specify the parts of web requests that you want AWS WAF to inspect for snippets of SQL code. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateSqlInjectionMatchSet(_ input: UpdateSqlInjectionMatchSetRequest) throws -> UpdateSqlInjectionMatchSetResponse { + return try client.send(operation: "UpdateSqlInjectionMatchSet", path: "/", httpMethod: "POST", input: input) } /// Inserts or deletes Predicate objects in a rule and updates the RateLimit in the rule. Each Predicate object identifies a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests that you want to block or count. The RateLimit specifies the number of requests every five minutes that triggers the rule. If you add more than one predicate to a RateBasedRule, a request must match all the predicates and exceed the RateLimit to be counted or blocked. For example, suppose you add the following to a RateBasedRule: An IPSet that matches the IP address 192.0.2.44/32 A ByteMatchSet that matches BadBot in the User-Agent header Further, you specify a RateLimit of 15,000. You then add the RateBasedRule to a WebACL and specify that you want to block requests that satisfy the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. Further, requests that match these two conditions much be received at a rate of more than 15,000 every five minutes. If the rate drops below this limit, AWS WAF no longer blocks the requests. As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a RateBasedRule: A ByteMatchSet with FieldToMatch of URI A PositionalConstraint of STARTS_WITH A TargetString of login Further, you specify a RateLimit of 15,000. By adding this RateBasedRule to a WebACL, you could limit requests to your login page without affecting the rest of your site. @@ -210,14 +175,14 @@ public struct WafRegional { return try client.send(operation: "GetWebACL", path: "/", httpMethod: "POST", input: input) } - /// Permanently deletes an XssMatchSet. You can't delete an XssMatchSet if it's still used in any Rules or if it still contains any XssMatchTuple objects. If you just want to remove an XssMatchSet from a Rule, use UpdateRule. To permanently delete an XssMatchSet from AWS WAF, perform the following steps: Update the XssMatchSet to remove filters, if any. For more information, see UpdateXssMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteXssMatchSet request. Submit a DeleteXssMatchSet request. - public func deleteXssMatchSet(_ input: DeleteXssMatchSetRequest) throws -> DeleteXssMatchSetResponse { - return try client.send(operation: "DeleteXssMatchSet", path: "/", httpMethod: "POST", input: input) + /// Returns an array of RuleGroup objects that you are subscribed to. + public func listSubscribedRuleGroups(_ input: ListSubscribedRuleGroupsRequest) throws -> ListSubscribedRuleGroupsResponse { + return try client.send(operation: "ListSubscribedRuleGroups", path: "/", httpMethod: "POST", input: input) } - /// Permanently deletes an IPSet. You can't delete an IPSet if it's still used in any Rules or if it still includes any IP addresses. If you just want to remove an IPSet from a Rule, use UpdateRule. To permanently delete an IPSet from AWS WAF, perform the following steps: Update the IPSet to remove IP address ranges, if any. For more information, see UpdateIPSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteIPSet request. Submit a DeleteIPSet request. - public func deleteIPSet(_ input: DeleteIPSetRequest) throws -> DeleteIPSetResponse { - return try client.send(operation: "DeleteIPSet", path: "/", httpMethod: "POST", input: input) + /// Inserts or deletes GeoMatchConstraint objects in an GeoMatchSet. For each GeoMatchConstraint object, you specify the following values: Whether to insert or delete the object from the array. If you want to change an GeoMatchConstraint object, you delete the existing object and add a new one. The Type. The only valid value for Type is Country. The Value, which is a two character code for the country to add to the GeoMatchConstraint object. Valid codes are listed in GeoMatchConstraint$Value. To create and configure an GeoMatchSet, perform the following steps: Submit a CreateGeoMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateGeoMatchSet request. Submit an UpdateGeoMatchSet request to specify the country that you want AWS WAF to watch for. When you update an GeoMatchSet, you specify the country that you want to add and/or the country that you want to delete. If you want to change a country, you delete the existing country and add the new one. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateGeoMatchSet(_ input: UpdateGeoMatchSetRequest) throws -> UpdateGeoMatchSetResponse { + return try client.send(operation: "UpdateGeoMatchSet", path: "/", httpMethod: "POST", input: input) } /// When you want to create, update, or delete AWS WAF objects, get a change token and include the change token in the create, update, or delete request. Change tokens ensure that your application doesn't submit conflicting requests to AWS WAF. Each create, update, or delete request must use a unique change token. If your application submits a GetChangeToken request and then submits a second GetChangeToken request before submitting a create, update, or delete request, the second GetChangeToken request returns the same value as the first GetChangeToken request. When you use a change token in a create, update, or delete request, the status of the change token changes to PENDING, which indicates that AWS WAF is propagating the change to all AWS WAF servers. Use GetChangeTokenStatus to determine the status of your change token. @@ -230,14 +195,9 @@ public struct WafRegional { return try client.send(operation: "DeleteRule", path: "/", httpMethod: "POST", input: input) } - /// Returns the SizeConstraintSet specified by SizeConstraintSetId. - public func getSizeConstraintSet(_ input: GetSizeConstraintSetRequest) throws -> GetSizeConstraintSetResponse { - return try client.send(operation: "GetSizeConstraintSet", path: "/", httpMethod: "POST", input: input) - } - - /// Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId. - public func getSqlInjectionMatchSet(_ input: GetSqlInjectionMatchSetRequest) throws -> GetSqlInjectionMatchSetResponse { - return try client.send(operation: "GetSqlInjectionMatchSet", path: "/", httpMethod: "POST", input: input) + /// Permanently deletes a RegexMatchSet. You can't delete a RegexMatchSet if it's still used in any Rules or if it still includes any RegexMatchTuples objects (any filters). If you just want to remove a RegexMatchSet from a Rule, use UpdateRule. To permanently delete a RegexMatchSet, perform the following steps: Update the RegexMatchSet to remove filters, if any. For more information, see UpdateRegexMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRegexMatchSet request. Submit a DeleteRegexMatchSet request. + public func deleteRegexMatchSet(_ input: DeleteRegexMatchSetRequest) throws -> DeleteRegexMatchSetResponse { + return try client.send(operation: "DeleteRegexMatchSet", path: "/", httpMethod: "POST", input: input) } /// Returns the Rule that is specified by the RuleId that you included in the GetRule request. @@ -245,9 +205,9 @@ public struct WafRegional { return try client.send(operation: "GetRule", path: "/", httpMethod: "POST", input: input) } - /// Creates an XssMatchSet, which you use to allow, block, or count requests that contain cross-site scripting attacks in the specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings. To create and configure an XssMatchSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateXssMatchSet request. Submit a CreateXssMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateXssMatchSet request. Submit an UpdateXssMatchSet request to specify the parts of web requests in which you want to allow, block, or count cross-site scripting attacks. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func createXssMatchSet(_ input: CreateXssMatchSetRequest) throws -> CreateXssMatchSetResponse { - return try client.send(operation: "CreateXssMatchSet", path: "/", httpMethod: "POST", input: input) + /// Returns the RuleGroup that is specified by the RuleGroupId that you included in the GetRuleGroup request. To view the rules in a rule group, use ListActivatedRulesInRuleGroup. + public func getRuleGroup(_ input: GetRuleGroupRequest) throws -> GetRuleGroupResponse { + return try client.send(operation: "GetRuleGroup", path: "/", httpMethod: "POST", input: input) } /// Permanently deletes a RateBasedRule. You can't delete a rule if it's still used in any WebACL objects or if it still includes any predicates, such as ByteMatchSet objects. If you just want to remove a rule from a WebACL, use UpdateWebACL. To permanently delete a RateBasedRule from AWS WAF, perform the following steps: Update the RateBasedRule to remove predicates, if any. For more information, see UpdateRateBasedRule. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRateBasedRule request. Submit a DeleteRateBasedRule request. @@ -255,14 +215,164 @@ public struct WafRegional { return try client.send(operation: "DeleteRateBasedRule", path: "/", httpMethod: "POST", input: input) } + /// Returns the RegexPatternSet specified by RegexPatternSetId. + public func getRegexPatternSet(_ input: GetRegexPatternSetRequest) throws -> GetRegexPatternSetResponse { + return try client.send(operation: "GetRegexPatternSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of ActivatedRule objects. + public func listActivatedRulesInRuleGroup(_ input: ListActivatedRulesInRuleGroupRequest) throws -> ListActivatedRulesInRuleGroupResponse { + return try client.send(operation: "ListActivatedRulesInRuleGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of RegexPatternSetSummary objects. + public func listRegexPatternSets(_ input: ListRegexPatternSetsRequest) throws -> ListRegexPatternSetsResponse { + return try client.send(operation: "ListRegexPatternSets", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of ByteMatchSetSummary objects. + public func listByteMatchSets(_ input: ListByteMatchSetsRequest) throws -> ListByteMatchSetsResponse { + return try client.send(operation: "ListByteMatchSets", path: "/", httpMethod: "POST", input: input) + } + + /// Permanently deletes a GeoMatchSet. You can't delete a GeoMatchSet if it's still used in any Rules or if it still includes any countries. If you just want to remove a GeoMatchSet from a Rule, use UpdateRule. To permanently delete a GeoMatchSet from AWS WAF, perform the following steps: Update the GeoMatchSet to remove any countries. For more information, see UpdateGeoMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteGeoMatchSet request. Submit a DeleteGeoMatchSet request. + public func deleteGeoMatchSet(_ input: DeleteGeoMatchSetRequest) throws -> DeleteGeoMatchSetResponse { + return try client.send(operation: "DeleteGeoMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of RuleSummary objects. + public func listRules(_ input: ListRulesRequest) throws -> ListRulesResponse { + return try client.send(operation: "ListRules", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an IPSet, which you use to specify which web requests you want to allow or block based on the IP addresses that the requests originate from. For example, if you're receiving a lot of requests from one or more individual IP addresses or one or more ranges of IP addresses and you want to block the requests, you can create an IPSet that contains those IP addresses and then configure AWS WAF to block the requests. To create and configure an IPSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateIPSet request. Submit a CreateIPSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request. Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createIPSet(_ input: CreateIPSetRequest) throws -> CreateIPSetResponse { + return try client.send(operation: "CreateIPSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of RuleGroup objects. + public func listRuleGroups(_ input: ListRuleGroupsRequest) throws -> ListRuleGroupsResponse { + return try client.send(operation: "ListRuleGroups", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a RegexMatchSet. You then use UpdateRegexMatchSet to identify the part of a web request that you want AWS WAF to inspect, such as the values of the User-Agent header or the query string. For example, you can create a RegexMatchSet that contains a RegexMatchTuple that looks for any requests with User-Agent headers that match a RegexPatternSet with pattern B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests. To create and configure a RegexMatchSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRegexMatchSet request. Submit a CreateRegexMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexMatchSet request. Submit an UpdateRegexMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value, using a RegexPatternSet, that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createRegexMatchSet(_ input: CreateRegexMatchSetRequest) throws -> CreateRegexMatchSetResponse { + return try client.send(operation: "CreateRegexMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of RuleSummary objects. + public func listRateBasedRules(_ input: ListRateBasedRulesRequest) throws -> ListRateBasedRulesResponse { + return try client.send(operation: "ListRateBasedRules", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of IP addresses currently being blocked by the RateBasedRule that is specified by the RuleId. The maximum number of managed keys that will be blocked is 10,000. If more than 10,000 addresses exceed the rate limit, the 10,000 addresses with the highest rates will be blocked. + public func getRateBasedRuleManagedKeys(_ input: GetRateBasedRuleManagedKeysRequest) throws -> GetRateBasedRuleManagedKeysResponse { + return try client.send(operation: "GetRateBasedRuleManagedKeys", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a RegexPatternSet. You then use UpdateRegexPatternSet to specify the regular expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests. To create and configure a RegexPatternSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRegexPatternSet request. Submit a CreateRegexPatternSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexPatternSet request. Submit an UpdateRegexPatternSet request to specify the string that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createRegexPatternSet(_ input: CreateRegexPatternSetRequest) throws -> CreateRegexPatternSetResponse { + return try client.send(operation: "CreateRegexPatternSet", path: "/", httpMethod: "POST", input: input) + } + + /// Inserts or deletes ActivatedRule objects in a RuleGroup. You can only insert REGULAR rules into a rule group. You can have a maximum of ten rules per rule group. To create and configure a RuleGroup, perform the following steps: Create and update the Rules that you want to include in the RuleGroup. See CreateRule. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRuleGroup request. Submit an UpdateRuleGroup request to add Rules to the RuleGroup. Create and update a WebACL that contains the RuleGroup. See CreateWebACL. If you want to replace one Rule with another, you delete the existing one and add the new one. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateRuleGroup(_ input: UpdateRuleGroupRequest) throws -> UpdateRuleGroupResponse { + return try client.send(operation: "UpdateRuleGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to block. If you add more than one predicate to a Rule, a request must match all of the specifications to be allowed or blocked. For example, suppose you add the following to a Rule: An IPSet that matches the IP address 192.0.2.44/32 A ByteMatchSet that matches BadBot in the User-Agent header You then add the Rule to a WebACL and specify that you want to blocks requests that satisfy the Rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. To create and configure a Rule, perform the following steps: Create and update the predicates that you want to include in the Rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request. Submit a CreateRule request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request. Submit an UpdateRule request to specify the predicates that you want to include in the Rule. Create and update a WebACL that contains the Rule. For more information, see CreateWebACL. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createRule(_ input: CreateRuleRequest) throws -> CreateRuleResponse { + return try client.send(operation: "CreateRule", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the RateBasedRule that is specified by the RuleId that you included in the GetRateBasedRule request. + public func getRateBasedRule(_ input: GetRateBasedRuleRequest) throws -> GetRateBasedRuleResponse { + return try client.send(operation: "GetRateBasedRule", path: "/", httpMethod: "POST", input: input) + } + + /// Inserts or deletes RegexPatternString objects in a RegexPatternSet. For each RegexPatternString object, you specify the following values: Whether to insert or delete the RegexPatternString. The regular expression pattern that you want to insert or delete. For more information, see RegexPatternSet. For example, you can create a RegexPatternString such as B[a@]dB[o0]t. AWS WAF will match this RegexPatternString to: BadBot BadB0t B@dBot B@dB0t To create and configure a RegexPatternSet, perform the following steps: Create a RegexPatternSet. For more information, see CreateRegexPatternSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexPatternSet request. Submit an UpdateRegexPatternSet request to specify the regular expression pattern that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateRegexPatternSet(_ input: UpdateRegexPatternSetRequest) throws -> UpdateRegexPatternSetResponse { + return try client.send(operation: "UpdateRegexPatternSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of XssMatchSet objects. + public func listXssMatchSets(_ input: ListXssMatchSetsRequest) throws -> ListXssMatchSetsResponse { + return try client.send(operation: "ListXssMatchSets", path: "/", httpMethod: "POST", input: input) + } + + /// Inserts or deletes RegexMatchTuple objects (filters) in a RegexMatchSet. For each RegexMatchSetUpdate object, you specify the following values: Whether to insert or delete the object from the array. If you want to change a RegexMatchSetUpdate object, you delete the existing object and add a new one. The part of a web request that you want AWS WAF to inspectupdate, such as a query string or the value of the User-Agent header. The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see RegexPatternSet. Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. For example, you can create a RegexPatternSet that matches any requests with User-Agent headers that contain the string B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests. To create and configure a RegexMatchSet, perform the following steps: Create a RegexMatchSet. For more information, see CreateRegexMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexMatchSet request. Submit an UpdateRegexMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the identifier of the RegexPatternSet that contain the regular expression patters you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateRegexMatchSet(_ input: UpdateRegexMatchSetRequest) throws -> UpdateRegexMatchSetResponse { + return try client.send(operation: "UpdateRegexMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify the part of a web request that you want AWS WAF to check for length, such as the length of the User-Agent header or the length of the query string. For example, you can create a SizeConstraintSet that matches any requests that have a query string that is longer than 100 bytes. You can then configure AWS WAF to reject those requests. To create and configure a SizeConstraintSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateSizeConstraintSet request. Submit a CreateSizeConstraintSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateSizeConstraintSet request. Submit an UpdateSizeConstraintSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createSizeConstraintSet(_ input: CreateSizeConstraintSetRequest) throws -> CreateSizeConstraintSetResponse { + return try client.send(operation: "CreateSizeConstraintSet", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies the maximum number of requests that AWS WAF allows from a specified IP address in a five-minute period. The RateBasedRule also contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to count or block if these requests exceed the RateLimit. If you add more than one predicate to a RateBasedRule, a request not only must exceed the RateLimit, but it also must match all the specifications to be counted or blocked. For example, suppose you add the following to a RateBasedRule: An IPSet that matches the IP address 192.0.2.44/32 A ByteMatchSet that matches BadBot in the User-Agent header Further, you specify a RateLimit of 15,000. You then add the RateBasedRule to a WebACL and specify that you want to block requests that meet the conditions in the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. Further, requests that match these two conditions must be received at a rate of more than 15,000 requests every five minutes. If both conditions are met and the rate is exceeded, AWS WAF blocks the requests. If the rate drops below 15,000 for a five-minute period, AWS WAF no longer blocks the requests. As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a RateBasedRule: A ByteMatchSet with FieldToMatch of URI A PositionalConstraint of STARTS_WITH A TargetString of login Further, you specify a RateLimit of 15,000. By adding this RateBasedRule to a WebACL, you could limit requests to your login page without affecting the rest of your site. To create and configure a RateBasedRule, perform the following steps: Create and update the predicates that you want to include in the rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request. Submit a CreateRateBasedRule request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request. Submit an UpdateRateBasedRule request to specify the predicates that you want to include in the rule. Create and update a WebACL that contains the RateBasedRule. For more information, see CreateWebACL. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createRateBasedRule(_ input: CreateRateBasedRuleRequest) throws -> CreateRateBasedRuleResponse { + return try client.send(operation: "CreateRateBasedRule", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a WebACL, which contains the Rules that identify the CloudFront web requests that you want to allow, block, or count. AWS WAF evaluates Rules in order based on the value of Priority for each Rule. You also specify a default action, either ALLOW or BLOCK. If a web request doesn't match any of the Rules in a WebACL, AWS WAF responds to the request with the default action. To create and configure a WebACL, perform the following steps: Create and update the ByteMatchSet objects and other predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateWebACL request. Submit a CreateWebACL request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution. For more information about how to use the AWS WAF API, see the AWS WAF Developer Guide. + public func createWebACL(_ input: CreateWebACLRequest) throws -> CreateWebACLResponse { + return try client.send(operation: "CreateWebACL", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of resources associated with the specified web ACL. + public func listResourcesForWebACL(_ input: ListResourcesForWebACLRequest) throws -> ListResourcesForWebACLResponse { + return try client.send(operation: "ListResourcesForWebACL", path: "/", httpMethod: "POST", input: input) + } + + /// Permanently deletes an XssMatchSet. You can't delete an XssMatchSet if it's still used in any Rules or if it still contains any XssMatchTuple objects. If you just want to remove an XssMatchSet from a Rule, use UpdateRule. To permanently delete an XssMatchSet from AWS WAF, perform the following steps: Update the XssMatchSet to remove filters, if any. For more information, see UpdateXssMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteXssMatchSet request. Submit a DeleteXssMatchSet request. + public func deleteXssMatchSet(_ input: DeleteXssMatchSetRequest) throws -> DeleteXssMatchSetResponse { + return try client.send(operation: "DeleteXssMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Permanently deletes an IPSet. You can't delete an IPSet if it's still used in any Rules or if it still includes any IP addresses. If you just want to remove an IPSet from a Rule, use UpdateRule. To permanently delete an IPSet from AWS WAF, perform the following steps: Update the IPSet to remove IP address ranges, if any. For more information, see UpdateIPSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteIPSet request. Submit a DeleteIPSet request. + public func deleteIPSet(_ input: DeleteIPSetRequest) throws -> DeleteIPSetResponse { + return try client.send(operation: "DeleteIPSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the SizeConstraintSet specified by SizeConstraintSetId. + public func getSizeConstraintSet(_ input: GetSizeConstraintSetRequest) throws -> GetSizeConstraintSetResponse { + return try client.send(operation: "GetSizeConstraintSet", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an XssMatchSet, which you use to allow, block, or count requests that contain cross-site scripting attacks in the specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings. To create and configure an XssMatchSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateXssMatchSet request. Submit a CreateXssMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateXssMatchSet request. Submit an UpdateXssMatchSet request to specify the parts of web requests in which you want to allow, block, or count cross-site scripting attacks. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createXssMatchSet(_ input: CreateXssMatchSetRequest) throws -> CreateXssMatchSetResponse { + return try client.send(operation: "CreateXssMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Permanently deletes a RuleGroup. You can't delete a RuleGroup if it's still used in any WebACL objects or if it still includes any rules. If you just want to remove a RuleGroup from a WebACL, use UpdateWebACL. To permanently delete a RuleGroup from AWS WAF, perform the following steps: Update the RuleGroup to remove rules, if any. For more information, see UpdateRuleGroup. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRuleGroup request. Submit a DeleteRuleGroup request. + public func deleteRuleGroup(_ input: DeleteRuleGroupRequest) throws -> DeleteRuleGroupResponse { + return try client.send(operation: "DeleteRuleGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId. + public func getSqlInjectionMatchSet(_ input: GetSqlInjectionMatchSetRequest) throws -> GetSqlInjectionMatchSetResponse { + return try client.send(operation: "GetSqlInjectionMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of RegexMatchSetSummary objects. + public func listRegexMatchSets(_ input: ListRegexMatchSetsRequest) throws -> ListRegexMatchSetsResponse { + return try client.send(operation: "ListRegexMatchSets", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of GeoMatchSetSummary objects in the response. + public func listGeoMatchSets(_ input: ListGeoMatchSetsRequest) throws -> ListGeoMatchSetsResponse { + return try client.send(operation: "ListGeoMatchSets", path: "/", httpMethod: "POST", input: input) + } + /// Permanently deletes a SqlInjectionMatchSet. You can't delete a SqlInjectionMatchSet if it's still used in any Rules or if it still contains any SqlInjectionMatchTuple objects. If you just want to remove a SqlInjectionMatchSet from a Rule, use UpdateRule. To permanently delete a SqlInjectionMatchSet from AWS WAF, perform the following steps: Update the SqlInjectionMatchSet to remove filters, if any. For more information, see UpdateSqlInjectionMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteSqlInjectionMatchSet request. Submit a DeleteSqlInjectionMatchSet request. public func deleteSqlInjectionMatchSet(_ input: DeleteSqlInjectionMatchSetRequest) throws -> DeleteSqlInjectionMatchSetResponse { return try client.send(operation: "DeleteSqlInjectionMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Permanently deletes a WebACL. You can't delete a WebACL if it still contains any Rules. To delete a WebACL, perform the following steps: Update the WebACL to remove Rules, if any. For more information, see UpdateWebACL. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteWebACL request. Submit a DeleteWebACL request. - public func deleteWebACL(_ input: DeleteWebACLRequest) throws -> DeleteWebACLResponse { - return try client.send(operation: "DeleteWebACL", path: "/", httpMethod: "POST", input: input) + /// Permanently deletes a RegexPatternSet. You can't delete a RegexPatternSet if it's still used in any RegexMatchSet or if the RegexPatternSet is not empty. + public func deleteRegexPatternSet(_ input: DeleteRegexPatternSetRequest) throws -> DeleteRegexPatternSetResponse { + return try client.send(operation: "DeleteRegexPatternSet", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_Error.swift b/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_Error.swift index 40ad36bc7d2..7b435f0948b 100644 --- a/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_Error.swift +++ b/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_Error.swift @@ -7,15 +7,17 @@ public enum WafRegionalError: AWSErrorType { case wAFInternalErrorException(message: String?) case wAFInvalidAccountException(message: String?) case wAFStaleDataException(message: String?) - case wAFDisallowedNameException(message: String?) - case wAFInvalidParameterException(message: String?) - case wAFLimitsExceededException(message: String?) - case wAFInvalidOperationException(message: String?) - case wAFNonexistentContainerException(message: String?) case wAFNonexistentItemException(message: String?) case wAFReferencedItemException(message: String?) case wAFNonEmptyEntityException(message: String?) + case wAFInvalidOperationException(message: String?) + case wAFInvalidParameterException(message: String?) + case wAFNonexistentContainerException(message: String?) + case wAFLimitsExceededException(message: String?) + case wAFDisallowedNameException(message: String?) + case wAFSubscriptionNotFoundException(message: String?) case wAFUnavailableEntityException(message: String?) + case wAFInvalidRegexPatternException(message: String?) } extension WafRegionalError { @@ -31,24 +33,28 @@ extension WafRegionalError { self = .wAFInvalidAccountException(message: message) case "WAFStaleDataException": self = .wAFStaleDataException(message: message) - case "WAFDisallowedNameException": - self = .wAFDisallowedNameException(message: message) - case "WAFInvalidParameterException": - self = .wAFInvalidParameterException(message: message) - case "WAFLimitsExceededException": - self = .wAFLimitsExceededException(message: message) - case "WAFInvalidOperationException": - self = .wAFInvalidOperationException(message: message) - case "WAFNonexistentContainerException": - self = .wAFNonexistentContainerException(message: message) case "WAFNonexistentItemException": self = .wAFNonexistentItemException(message: message) case "WAFReferencedItemException": self = .wAFReferencedItemException(message: message) case "WAFNonEmptyEntityException": self = .wAFNonEmptyEntityException(message: message) + case "WAFInvalidOperationException": + self = .wAFInvalidOperationException(message: message) + case "WAFInvalidParameterException": + self = .wAFInvalidParameterException(message: message) + case "WAFNonexistentContainerException": + self = .wAFNonexistentContainerException(message: message) + case "WAFLimitsExceededException": + self = .wAFLimitsExceededException(message: message) + case "WAFDisallowedNameException": + self = .wAFDisallowedNameException(message: message) + case "WAFSubscriptionNotFoundException": + self = .wAFSubscriptionNotFoundException(message: message) case "WAFUnavailableEntityException": self = .wAFUnavailableEntityException(message: message) + case "WAFInvalidRegexPatternException": + self = .wAFInvalidRegexPatternException(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_Shapes.swift b/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_Shapes.swift index 7f72b497dcc..a9d4543c5e0 100644 --- a/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/waf-regional/WafRegional_Shapes.swift @@ -5,14 +5,61 @@ import AWSSDKSwiftCore extension WafRegional { + public struct RegexPatternSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "RegexPatternStrings", required: true, type: .list) + ] + /// The identifier for the RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet, update a RegexPatternSet, remove a RegexPatternSet from a RegexMatchSet, and delete a RegexPatternSet from AWS WAF. RegexMatchSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + /// A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet. + public let name: String? + /// Specifies the regular expression (regex) patterns that you want AWS WAF to search for, such as B[a@]dB[o0]t. + public let regexPatternStrings: [String] + + public init(regexPatternSetId: String, name: String? = nil, regexPatternStrings: [String]) { + self.regexPatternSetId = regexPatternSetId + self.name = name + self.regexPatternStrings = regexPatternStrings + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSetId = "RegexPatternSetId" + case name = "Name" + case regexPatternStrings = "RegexPatternStrings" + } + } + public enum ChangeAction: String, CustomStringConvertible, Codable { case insert = "INSERT" case delete = "DELETE" public var description: String { return self.rawValue } } + public struct RuleGroupSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) + ] + /// A friendly name or description of the RuleGroup. You can't change the name of a RuleGroup after you create it. + public let name: String + /// A unique identifier for a RuleGroup. You use RuleGroupId to get more information about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup), insert a RuleGroup into a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a RuleGroup from AWS WAF (see DeleteRuleGroup). RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups. + public let ruleGroupId: String + + public init(name: String, ruleGroupId: String) { + self.name = name + self.ruleGroupId = ruleGroupId + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case ruleGroupId = "RuleGroupId" + } + } + public struct UpdateSqlInjectionMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list) @@ -38,7 +85,7 @@ extension WafRegional { } public struct Rule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: false, type: .string), AWSShapeMember(label: "RuleId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -69,7 +116,7 @@ extension WafRegional { } public struct UpdateSizeConstraintSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list), AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) @@ -95,23 +142,27 @@ extension WafRegional { } public struct ActivatedRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Priority", required: true, type: .integer), + AWSShapeMember(label: "OverrideAction", required: false, type: .structure), AWSShapeMember(label: "Type", required: false, type: .enum), - AWSShapeMember(label: "Action", required: true, type: .structure), + AWSShapeMember(label: "Action", required: false, type: .structure), AWSShapeMember(label: "RuleId", required: true, type: .string) ] /// Specifies the order in which the Rules in a WebACL are evaluated. Rules with a lower value for Priority are evaluated before Rules with a higher value. The value must be a unique integer. If you add multiple Rules to a WebACL, the values don't need to be consecutive. public let priority: Int32 - /// The rule type, either REGULAR, as defined by Rule, or RATE_BASED, as defined by RateBasedRule. The default is REGULAR. Although this field is optional, be aware that if you try to add a RATE_BASED rule to a web ACL without setting the type, the UpdateWebACL request will fail because the request tries to add a REGULAR rule with the specified ID, which does not exist. + /// Use the OverrideAction to test your RuleGroup. Any rule in a RuleGroup can potentially block a request. If you set the OverrideAction to None, the RuleGroup will block a request if any individual rule in the RuleGroup matches the request and is configured to block that request. However if you first want to test the RuleGroup, set the OverrideAction to Count. The RuleGroup will then override any block action specified by individual rules contained within the group. Instead of blocking matching requests, those requests will be counted. You can view a record of counted requests using GetSampledRequests. The OverrideAction data type within ActivatedRule is used only when submitting an UpdateRuleGroup request. ActivatedRule|OverrideAction is not applicable and therefore not available for UpdateWebACL. + public let overrideAction: WafOverrideAction? + /// The rule type, either REGULAR, as defined by Rule, RATE_BASED, as defined by RateBasedRule, or GROUP, as defined by RuleGroup. The default is REGULAR. Although this field is optional, be aware that if you try to add a RATE_BASED rule to a web ACL without setting the type, the UpdateWebACL request will fail because the request tries to add a REGULAR rule with the specified ID, which does not exist. public let `type`: WafRuleType? - /// Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the Rule. Valid values for Action include the following: ALLOW: CloudFront responds with the requested object. BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code. COUNT: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL. - public let action: WafAction + /// Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the Rule. Valid values for Action include the following: ALLOW: CloudFront responds with the requested object. BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code. COUNT: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL. The Action data type within ActivatedRule is used only when submitting an UpdateWebACL request. ActivatedRule|Action is not applicable and therefore not available for UpdateRuleGroup. + public let action: WafAction? /// The RuleId for a Rule. You use RuleId to get more information about a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a Rule from AWS WAF (see DeleteRule). RuleId is returned by CreateRule and by ListRules. public let ruleId: String - public init(priority: Int32, type: WafRuleType? = nil, action: WafAction, ruleId: String) { + public init(priority: Int32, overrideAction: WafOverrideAction? = nil, type: WafRuleType? = nil, action: WafAction? = nil, ruleId: String) { self.priority = priority + self.overrideAction = overrideAction self.`type` = `type` self.action = action self.ruleId = ruleId @@ -119,6 +170,7 @@ extension WafRegional { private enum CodingKeys: String, CodingKey { case priority = "Priority" + case overrideAction = "OverrideAction" case `type` = "Type" case action = "Action" case ruleId = "RuleId" @@ -126,7 +178,7 @@ extension WafRegional { } public struct ListRateBasedRulesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -147,7 +199,7 @@ extension WafRegional { } public struct GetIPSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPSetId", required: true, type: .string) ] /// The IPSetId of the IPSet that you want to get. IPSetId is returned by CreateIPSet and by ListIPSets. @@ -162,8 +214,29 @@ extension WafRegional { } } + public struct DeleteGeoMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "GeoMatchSetId", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// The GeoMatchSetID of the GeoMatchSet that you want to delete. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets. + public let geoMatchSetId: String + + public init(changeToken: String, geoMatchSetId: String) { + self.changeToken = changeToken + self.geoMatchSetId = geoMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case geoMatchSetId = "GeoMatchSetId" + } + } + public struct GetWebACLForResourceResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WebACLSummary", required: false, type: .structure) ] /// Information about the web ACL that you specified in the GetWebACLForResource request. If there is no associated resource, a null WebACLSummary is returned. @@ -179,13 +252,13 @@ extension WafRegional { } public struct ListIPSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] /// Specifies the number of IPSet objects that you want AWS WAF to return for this request. If you have more IPSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of IPSet objects. public let limit: Int32? - /// If you specify a value for Limit and you have more IPSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of IPSets. For the second and subsequent ListIPSets requests, specify the value of NextMarker from the previous response to get information about another batch of ByteMatchSets. + /// If you specify a value for Limit and you have more IPSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of IPSets. For the second and subsequent ListIPSets requests, specify the value of NextMarker from the previous response to get information about another batch of IPSets. public let nextMarker: String? public init(limit: Int32? = nil, nextMarker: String? = nil) { @@ -199,9 +272,31 @@ extension WafRegional { } } + public struct DeleteRuleGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// The RuleGroupId of the RuleGroup that you want to delete. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups. + public let ruleGroupId: String + + public init(changeToken: String, ruleGroupId: String) { + self.changeToken = changeToken + self.ruleGroupId = ruleGroupId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case ruleGroupId = "RuleGroupId" + } + } + public enum ParameterExceptionField: String, CustomStringConvertible, Codable { case changeAction = "CHANGE_ACTION" case wafAction = "WAF_ACTION" + case wafOverrideAction = "WAF_OVERRIDE_ACTION" case predicateType = "PREDICATE_TYPE" case ipsetType = "IPSET_TYPE" case byteMatchFieldType = "BYTE_MATCH_FIELD_TYPE" @@ -209,6 +304,8 @@ extension WafRegional { case byteMatchTextTransformation = "BYTE_MATCH_TEXT_TRANSFORMATION" case byteMatchPositionalConstraint = "BYTE_MATCH_POSITIONAL_CONSTRAINT" case sizeConstraintComparisonOperator = "SIZE_CONSTRAINT_COMPARISON_OPERATOR" + case geoMatchLocationType = "GEO_MATCH_LOCATION_TYPE" + case geoMatchLocationValue = "GEO_MATCH_LOCATION_VALUE" case rateKey = "RATE_KEY" case ruleType = "RULE_TYPE" case nextMarker = "NEXT_MARKER" @@ -216,7 +313,7 @@ extension WafRegional { } public struct CreateRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "ChangeToken", required: true, type: .string) @@ -242,7 +339,7 @@ extension WafRegional { } public struct IPSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "IPSetDescriptors", required: true, type: .list) @@ -267,8 +364,29 @@ extension WafRegional { } } + public struct CreateXssMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "XssMatchSet", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateXssMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// An XssMatchSet. + public let xssMatchSet: XssMatchSet? + + public init(changeToken: String? = nil, xssMatchSet: XssMatchSet? = nil) { + self.changeToken = changeToken + self.xssMatchSet = xssMatchSet + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case xssMatchSet = "XssMatchSet" + } + } + public struct DeleteRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -284,7 +402,7 @@ extension WafRegional { } public struct WebACLSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "WebACLId", required: true, type: .string) ] @@ -304,45 +422,45 @@ extension WafRegional { } } - public struct CreateXssMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string), - AWSShapeMember(label: "XssMatchSet", required: false, type: .structure) + public struct UpdateIPSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The ChangeToken that you used to submit the CreateXssMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + /// The ChangeToken that you used to submit the UpdateIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. public let changeToken: String? - /// An XssMatchSet. - public let xssMatchSet: XssMatchSet? - public init(changeToken: String? = nil, xssMatchSet: XssMatchSet? = nil) { + public init(changeToken: String? = nil) { self.changeToken = changeToken - self.xssMatchSet = xssMatchSet } private enum CodingKeys: String, CodingKey { case changeToken = "ChangeToken" - case xssMatchSet = "XssMatchSet" } } - public struct UpdateIPSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string) + public struct GeoMatchSetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "GeoMatchSetId", required: true, type: .string) ] - /// The ChangeToken that you used to submit the UpdateIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. - public let changeToken: String? + /// A friendly name or description of the GeoMatchSet. You can't change the name of an GeoMatchSet after you create it. + public let name: String + /// The GeoMatchSetId for an GeoMatchSet. You can use GeoMatchSetId in a GetGeoMatchSet request to get detailed information about an GeoMatchSet. + public let geoMatchSetId: String - public init(changeToken: String? = nil) { - self.changeToken = changeToken + public init(name: String, geoMatchSetId: String) { + self.name = name + self.geoMatchSetId = geoMatchSetId } private enum CodingKeys: String, CodingKey { - case changeToken = "ChangeToken" + case name = "Name" + case geoMatchSetId = "GeoMatchSetId" } } public struct GetByteMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ByteMatchSetId", required: true, type: .string) ] /// The ByteMatchSetId of the ByteMatchSet that you want to get. ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets. @@ -361,8 +479,87 @@ extension WafRegional { } + public struct GetRuleGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleGroup", required: false, type: .structure) + ] + /// Information about the RuleGroup that you specified in the GetRuleGroup request. + public let ruleGroup: RuleGroup? + + public init(ruleGroup: RuleGroup? = nil) { + self.ruleGroup = ruleGroup + } + + private enum CodingKeys: String, CodingKey { + case ruleGroup = "RuleGroup" + } + } + + public struct CreateRegexPatternSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "RegexPatternSet", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// A RegexPatternSet that contains no objects. + public let regexPatternSet: RegexPatternSet? + + public init(changeToken: String? = nil, regexPatternSet: RegexPatternSet? = nil) { + self.changeToken = changeToken + self.regexPatternSet = regexPatternSet + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case regexPatternSet = "RegexPatternSet" + } + } + + public struct ListActivatedRulesInRuleGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ActivatedRules", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// An array of ActivatedRules objects. + public let activatedRules: [ActivatedRule]? + /// If you have more ActivatedRules than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more ActivatedRules, submit another ListActivatedRulesInRuleGroup request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + + public init(activatedRules: [ActivatedRule]? = nil, nextMarker: String? = nil) { + self.activatedRules = activatedRules + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case activatedRules = "ActivatedRules" + case nextMarker = "NextMarker" + } + } + + public struct ListSubscribedRuleGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// Specifies the number of subscribed rule groups that you want AWS WAF to return for this request. If you have more objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of objects. + public let limit: Int32? + /// If you specify a value for Limit and you have more ByteMatchSetssubscribed rule groups than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of subscribed rule groups. For the second and subsequent ListSubscribedRuleGroupsRequest requests, specify the value of NextMarker from the previous response to get information about another batch of subscribed rule groups. + public let nextMarker: String? + + public init(limit: Int32? = nil, nextMarker: String? = nil) { + self.limit = limit + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case nextMarker = "NextMarker" + } + } + public struct UpdateWebACLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the UpdateWebACL request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -377,8 +574,34 @@ extension WafRegional { } } + public struct ListActivatedRulesInRuleGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "RuleGroupId", required: false, type: .string), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// Specifies the number of ActivatedRules that you want AWS WAF to return for this request. If you have more ActivatedRules than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of ActivatedRules. + public let limit: Int32? + /// The RuleGroupId of the RuleGroup for which you want to get a list of ActivatedRule objects. + public let ruleGroupId: String? + /// If you specify a value for Limit and you have more ActivatedRules than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of ActivatedRules. For the second and subsequent ListActivatedRulesInRuleGroup requests, specify the value of NextMarker from the previous response to get information about another batch of ActivatedRules. + public let nextMarker: String? + + public init(limit: Int32? = nil, ruleGroupId: String? = nil, nextMarker: String? = nil) { + self.limit = limit + self.ruleGroupId = ruleGroupId + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case ruleGroupId = "RuleGroupId" + case nextMarker = "NextMarker" + } + } + public struct DeleteWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "WebACLId", required: true, type: .string) ] @@ -398,8 +621,24 @@ extension WafRegional { } } + public struct GetRegexMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexMatchSet", required: false, type: .structure) + ] + /// Information about the RegexMatchSet that you specified in the GetRegexMatchSet request. For more information, see RegexMatchTuple. + public let regexMatchSet: RegexMatchSet? + + public init(regexMatchSet: RegexMatchSet? = nil) { + self.regexMatchSet = regexMatchSet + } + + private enum CodingKeys: String, CodingKey { + case regexMatchSet = "RegexMatchSet" + } + } + public struct CreateByteMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -420,7 +659,7 @@ extension WafRegional { } public struct TimeWindow: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndTime", required: true, type: .timestamp), AWSShapeMember(label: "StartTime", required: true, type: .timestamp) ] @@ -440,8 +679,29 @@ extension WafRegional { } } + public struct RegexMatchSetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexMatchSetId", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information about a RegexMatchSet, update a RegexMatchSet, remove a RegexMatchSet from a Rule, and delete a RegexMatchSet from AWS WAF. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets. + public let regexMatchSetId: String + /// A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet. + public let name: String + + public init(regexMatchSetId: String, name: String) { + self.regexMatchSetId = regexMatchSetId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case regexMatchSetId = "RegexMatchSetId" + case name = "Name" + } + } + public struct DeleteSizeConstraintSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteSizeConstraintSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -456,29 +716,34 @@ extension WafRegional { } } - public struct SizeConstraintSetUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SizeConstraint", required: true, type: .structure), - AWSShapeMember(label: "Action", required: true, type: .enum) + public struct RuleGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetricName", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) ] - /// Specifies a constraint on the size of a part of the web request. AWS WAF uses the Size, ComparisonOperator, and FieldToMatch to build an expression in the form of "Size ComparisonOperator size in bytes of FieldToMatch". If that expression is true, the SizeConstraint is considered to match. - public let sizeConstraint: SizeConstraint - /// Specify INSERT to add a SizeConstraintSetUpdate to a SizeConstraintSet. Use DELETE to remove a SizeConstraintSetUpdate from a SizeConstraintSet. - public let action: ChangeAction + /// A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup. + public let metricName: String? + /// The friendly name or description for the RuleGroup. You can't change the name of a RuleGroup after you create it. + public let name: String? + /// A unique identifier for a RuleGroup. You use RuleGroupId to get more information about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup), insert a RuleGroup into a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a RuleGroup from AWS WAF (see DeleteRuleGroup). RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups. + public let ruleGroupId: String - public init(sizeConstraint: SizeConstraint, action: ChangeAction) { - self.sizeConstraint = sizeConstraint - self.action = action + public init(metricName: String? = nil, name: String? = nil, ruleGroupId: String) { + self.metricName = metricName + self.name = name + self.ruleGroupId = ruleGroupId } private enum CodingKeys: String, CodingKey { - case sizeConstraint = "SizeConstraint" - case action = "Action" + case metricName = "MetricName" + case name = "Name" + case ruleGroupId = "RuleGroupId" } } public struct CreateRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string), AWSShapeMember(label: "Rule", required: false, type: .structure) ] @@ -498,29 +763,65 @@ extension WafRegional { } } - public struct CreateRateBasedRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string), - AWSShapeMember(label: "Rule", required: false, type: .structure) + public struct DeleteIPSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The ChangeToken that you used to submit the CreateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + /// The ChangeToken that you used to submit the DeleteIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. public let changeToken: String? - /// The RateBasedRule that is returned in the CreateRateBasedRule response. - public let rule: RateBasedRule? - public init(changeToken: String? = nil, rule: RateBasedRule? = nil) { + public init(changeToken: String? = nil) { self.changeToken = changeToken - self.rule = rule } private enum CodingKeys: String, CodingKey { case changeToken = "ChangeToken" - case rule = "Rule" + } + } + + public struct HTTPRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientIP", required: false, type: .string), + AWSShapeMember(label: "Headers", required: false, type: .list), + AWSShapeMember(label: "Country", required: false, type: .string), + AWSShapeMember(label: "Method", required: false, type: .string), + AWSShapeMember(label: "URI", required: false, type: .string), + AWSShapeMember(label: "HTTPVersion", required: false, type: .string) + ] + /// The IP address that the request originated from. If the WebACL is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs: c-ip, if the viewer did not use an HTTP proxy or a load balancer to send the request x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer to send the request + public let clientIP: String? + /// A complex type that contains two values for each header in the sampled web request: the name of the header and the value of the header. + public let headers: [HTTPHeader]? + /// The two-letter country code for the country that the request originated from. For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2. + public let country: String? + /// The HTTP method specified in the sampled web request. CloudFront supports the following methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT. + public let method: String? + /// The part of a web request that identifies the resource, for example, /images/daily-ad.jpg. + public let uri: String? + /// The HTTP version specified in the sampled web request, for example, HTTP/1.1. + public let hTTPVersion: String? + + public init(clientIP: String? = nil, headers: [HTTPHeader]? = nil, country: String? = nil, method: String? = nil, uri: String? = nil, hTTPVersion: String? = nil) { + self.clientIP = clientIP + self.headers = headers + self.country = country + self.method = method + self.uri = uri + self.hTTPVersion = hTTPVersion + } + + private enum CodingKeys: String, CodingKey { + case clientIP = "ClientIP" + case headers = "Headers" + case country = "Country" + case method = "Method" + case uri = "URI" + case hTTPVersion = "HTTPVersion" } } public struct UpdateXssMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSetId", required: true, type: .string), AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list) @@ -545,24 +846,34 @@ extension WafRegional { } } - public struct DeleteIPSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string) + public struct RegexMatchTuple: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string), + AWSShapeMember(label: "FieldToMatch", required: true, type: .structure), + AWSShapeMember(label: "TextTransformation", required: true, type: .enum) ] - /// The ChangeToken that you used to submit the DeleteIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. - public let changeToken: String? + /// The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet (see GetRegexPatternSet), update a RegexPatternSet (see UpdateRegexPatternSet), insert a RegexPatternSet into a RegexMatchSet or delete one from a RegexMatchSet (see UpdateRegexMatchSet), and delete an RegexPatternSet from AWS WAF (see DeleteRegexPatternSet). RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + /// Specifies where in a web request to look for the RegexPatternSet. + public let fieldToMatch: FieldToMatch + /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on RegexPatternSet before inspecting a request for a match. CMD_LINE When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: Delete the following characters: \ " ' ^ Delete spaces before the following characters: / ( Replace the following characters with a space: , ; Replace multiple spaces with one space Convert uppercase letters (A-Z) to lowercase (a-z) COMPRESS_WHITE_SPACE Use this option to replace the following characters with a space character (decimal 32): \f, formfeed, decimal 12 \t, tab, decimal 9 \n, newline, decimal 10 \r, carriage return, decimal 13 \v, vertical tab, decimal 11 non-breaking space, decimal 160 COMPRESS_WHITE_SPACE also replaces multiple spaces with one space. HTML_ENTITY_DECODE Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations: Replaces (ampersand)quot; with " Replaces (ampersand)nbsp; with a non-breaking space, decimal 160 Replaces (ampersand)lt; with a "less than" symbol Replaces (ampersand)gt; with > Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters LOWERCASE Use this option to convert uppercase letters (A-Z) to lowercase (a-z). URL_DECODE Use this option to decode a URL-encoded value. NONE Specify NONE if you don't want to perform any text transformations. + public let textTransformation: TextTransformation - public init(changeToken: String? = nil) { - self.changeToken = changeToken + public init(regexPatternSetId: String, fieldToMatch: FieldToMatch, textTransformation: TextTransformation) { + self.regexPatternSetId = regexPatternSetId + self.fieldToMatch = fieldToMatch + self.textTransformation = textTransformation } private enum CodingKeys: String, CodingKey { - case changeToken = "ChangeToken" + case regexPatternSetId = "RegexPatternSetId" + case fieldToMatch = "FieldToMatch" + case textTransformation = "TextTransformation" } } public struct ListRateBasedRulesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -582,55 +893,29 @@ extension WafRegional { } } - public struct HTTPRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientIP", required: false, type: .string), - AWSShapeMember(label: "Headers", required: false, type: .list), - AWSShapeMember(label: "Country", required: false, type: .string), - AWSShapeMember(label: "Method", required: false, type: .string), - AWSShapeMember(label: "URI", required: false, type: .string), - AWSShapeMember(label: "HTTPVersion", required: false, type: .string) + public struct CreateRateBasedRuleResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "Rule", required: false, type: .structure) ] - /// The IP address that the request originated from. If the WebACL is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs: c-ip, if the viewer did not use an HTTP proxy or a load balancer to send the request x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer to send the request - public let clientIP: String? - /// A complex type that contains two values for each header in the sampled web request: the name of the header and the value of the header. - public let headers: [HTTPHeader]? - /// The two-letter country code for the country that the request originated from. For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2. - public let country: String? - /// The HTTP method specified in the sampled web request. CloudFront supports the following methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT. - public let method: String? - /// The part of a web request that identifies the resource, for example, /images/daily-ad.jpg. - public let uri: String? - /// The HTTP version specified in the sampled web request, for example, HTTP/1.1. - public let hTTPVersion: String? + /// The ChangeToken that you used to submit the CreateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// The RateBasedRule that is returned in the CreateRateBasedRule response. + public let rule: RateBasedRule? - public init(clientIP: String? = nil, headers: [HTTPHeader]? = nil, country: String? = nil, method: String? = nil, uri: String? = nil, hTTPVersion: String? = nil) { - self.clientIP = clientIP - self.headers = headers - self.country = country - self.method = method - self.uri = uri - self.hTTPVersion = hTTPVersion + public init(changeToken: String? = nil, rule: RateBasedRule? = nil) { + self.changeToken = changeToken + self.rule = rule } private enum CodingKeys: String, CodingKey { - case clientIP = "ClientIP" - case headers = "Headers" - case country = "Country" - case method = "Method" - case uri = "URI" - case hTTPVersion = "HTTPVersion" + case changeToken = "ChangeToken" + case rule = "Rule" } } - public enum WafRuleType: String, CustomStringConvertible, Codable { - case regular = "REGULAR" - case rateBased = "RATE_BASED" - public var description: String { return self.rawValue } - } - public struct HTTPHeader: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -650,29 +935,34 @@ extension WafRegional { } } - public struct AssociateWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourceArn", required: true, type: .string), - AWSShapeMember(label: "WebACLId", required: true, type: .string) + public struct UpdateRuleGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Updates", required: true, type: .list), + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) ] - /// The ARN (Amazon Resource Name) of the resource to be protected. - public let resourceArn: String - /// A unique identifier (ID) for the web ACL. - public let webACLId: String + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// An array of RuleGroupUpdate objects that you want to insert into or delete from a RuleGroup. You can only insert REGULAR rules into a rule group. The Action data type within ActivatedRule is used only when submitting an UpdateWebACL request. ActivatedRule|Action is not applicable and therefore not available for UpdateRuleGroup. + public let updates: [RuleGroupUpdate] + /// The RuleGroupId of the RuleGroup that you want to update. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups. + public let ruleGroupId: String - public init(resourceArn: String, webACLId: String) { - self.resourceArn = resourceArn - self.webACLId = webACLId + public init(changeToken: String, updates: [RuleGroupUpdate], ruleGroupId: String) { + self.changeToken = changeToken + self.updates = updates + self.ruleGroupId = ruleGroupId } private enum CodingKeys: String, CodingKey { - case resourceArn = "ResourceArn" - case webACLId = "WebACLId" + case changeToken = "ChangeToken" + case updates = "Updates" + case ruleGroupId = "RuleGroupId" } } public struct GetWebACLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WebACL", required: false, type: .structure) ] /// Information about the WebACL that you specified in the GetWebACL request. For more information, see the following topics: WebACL: Contains DefaultAction, MetricName, Name, an array of Rule objects, and WebACLId DefaultAction (Data type is WafAction): Contains Type Rules: Contains an array of ActivatedRule objects, which contain Action, Priority, and RuleId Action: Contains Type @@ -687,8 +977,261 @@ extension WafRegional { } } + public enum GeoMatchConstraintValue: String, CustomStringConvertible, Codable { + case af = "AF" + case ax = "AX" + case al = "AL" + case dz = "DZ" + case `as` = "AS" + case ad = "AD" + case ao = "AO" + case ai = "AI" + case aq = "AQ" + case ag = "AG" + case ar = "AR" + case am = "AM" + case aw = "AW" + case au = "AU" + case at = "AT" + case az = "AZ" + case bs = "BS" + case bh = "BH" + case bd = "BD" + case bb = "BB" + case by = "BY" + case be = "BE" + case bz = "BZ" + case bj = "BJ" + case bm = "BM" + case bt = "BT" + case bo = "BO" + case bq = "BQ" + case ba = "BA" + case bw = "BW" + case bv = "BV" + case br = "BR" + case io = "IO" + case bn = "BN" + case bg = "BG" + case bf = "BF" + case bi = "BI" + case kh = "KH" + case cm = "CM" + case ca = "CA" + case cv = "CV" + case ky = "KY" + case cf = "CF" + case td = "TD" + case cl = "CL" + case cn = "CN" + case cx = "CX" + case cc = "CC" + case co = "CO" + case km = "KM" + case cg = "CG" + case cd = "CD" + case ck = "CK" + case cr = "CR" + case ci = "CI" + case hr = "HR" + case cu = "CU" + case cw = "CW" + case cy = "CY" + case cz = "CZ" + case dk = "DK" + case dj = "DJ" + case dm = "DM" + case `do` = "DO" + case ec = "EC" + case eg = "EG" + case sv = "SV" + case gq = "GQ" + case er = "ER" + case ee = "EE" + case et = "ET" + case fk = "FK" + case fo = "FO" + case fj = "FJ" + case fi = "FI" + case fr = "FR" + case gf = "GF" + case pf = "PF" + case tf = "TF" + case ga = "GA" + case gm = "GM" + case ge = "GE" + case de = "DE" + case gh = "GH" + case gi = "GI" + case gr = "GR" + case gl = "GL" + case gd = "GD" + case gp = "GP" + case gu = "GU" + case gt = "GT" + case gg = "GG" + case gn = "GN" + case gw = "GW" + case gy = "GY" + case ht = "HT" + case hm = "HM" + case va = "VA" + case hn = "HN" + case hk = "HK" + case hu = "HU" + case `is` = "IS" + case `in` = "IN" + case id = "ID" + case ir = "IR" + case iq = "IQ" + case ie = "IE" + case im = "IM" + case il = "IL" + case it = "IT" + case jm = "JM" + case jp = "JP" + case je = "JE" + case jo = "JO" + case kz = "KZ" + case ke = "KE" + case ki = "KI" + case kp = "KP" + case kr = "KR" + case kw = "KW" + case kg = "KG" + case la = "LA" + case lv = "LV" + case lb = "LB" + case ls = "LS" + case lr = "LR" + case ly = "LY" + case li = "LI" + case lt = "LT" + case lu = "LU" + case mo = "MO" + case mk = "MK" + case mg = "MG" + case mw = "MW" + case my = "MY" + case mv = "MV" + case ml = "ML" + case mt = "MT" + case mh = "MH" + case mq = "MQ" + case mr = "MR" + case mu = "MU" + case yt = "YT" + case mx = "MX" + case fm = "FM" + case md = "MD" + case mc = "MC" + case mn = "MN" + case me = "ME" + case ms = "MS" + case ma = "MA" + case mz = "MZ" + case mm = "MM" + case na = "NA" + case nr = "NR" + case np = "NP" + case nl = "NL" + case nc = "NC" + case nz = "NZ" + case ni = "NI" + case ne = "NE" + case ng = "NG" + case nu = "NU" + case nf = "NF" + case mp = "MP" + case no = "NO" + case om = "OM" + case pk = "PK" + case pw = "PW" + case ps = "PS" + case pa = "PA" + case pg = "PG" + case py = "PY" + case pe = "PE" + case ph = "PH" + case pn = "PN" + case pl = "PL" + case pt = "PT" + case pr = "PR" + case qa = "QA" + case re = "RE" + case ro = "RO" + case ru = "RU" + case rw = "RW" + case bl = "BL" + case sh = "SH" + case kn = "KN" + case lc = "LC" + case mf = "MF" + case pm = "PM" + case vc = "VC" + case ws = "WS" + case sm = "SM" + case st = "ST" + case sa = "SA" + case sn = "SN" + case rs = "RS" + case sc = "SC" + case sl = "SL" + case sg = "SG" + case sx = "SX" + case sk = "SK" + case si = "SI" + case sb = "SB" + case so = "SO" + case za = "ZA" + case gs = "GS" + case ss = "SS" + case es = "ES" + case lk = "LK" + case sd = "SD" + case sr = "SR" + case sj = "SJ" + case sz = "SZ" + case se = "SE" + case ch = "CH" + case sy = "SY" + case tw = "TW" + case tj = "TJ" + case tz = "TZ" + case th = "TH" + case tl = "TL" + case tg = "TG" + case tk = "TK" + case to = "TO" + case tt = "TT" + case tn = "TN" + case tr = "TR" + case tm = "TM" + case tc = "TC" + case tv = "TV" + case ug = "UG" + case ua = "UA" + case ae = "AE" + case gb = "GB" + case us = "US" + case um = "UM" + case uy = "UY" + case uz = "UZ" + case vu = "VU" + case ve = "VE" + case vn = "VN" + case vg = "VG" + case vi = "VI" + case wf = "WF" + case eh = "EH" + case ye = "YE" + case zm = "ZM" + case zw = "ZW" + public var description: String { return self.rawValue } + } + public struct ListResourcesForWebACLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArns", required: false, type: .list) ] /// An array of ARNs (Amazon Resource Names) of the resources associated with the specified web ACL. An array with zero elements is returned if there are no resources associated with the web ACL. @@ -704,7 +1247,7 @@ extension WafRegional { } public struct XssMatchSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -724,8 +1267,78 @@ extension WafRegional { } } + public struct DeleteRegexMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "RegexMatchSetId", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// The RegexMatchSetId of the RegexMatchSet that you want to delete. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets. + public let regexMatchSetId: String + + public init(changeToken: String, regexMatchSetId: String) { + self.changeToken = changeToken + self.regexMatchSetId = regexMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case regexMatchSetId = "RegexMatchSetId" + } + } + + public struct SizeConstraintSetUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SizeConstraint", required: true, type: .structure), + AWSShapeMember(label: "Action", required: true, type: .enum) + ] + /// Specifies a constraint on the size of a part of the web request. AWS WAF uses the Size, ComparisonOperator, and FieldToMatch to build an expression in the form of "Size ComparisonOperator size in bytes of FieldToMatch". If that expression is true, the SizeConstraint is considered to match. + public let sizeConstraint: SizeConstraint + /// Specify INSERT to add a SizeConstraintSetUpdate to a SizeConstraintSet. Use DELETE to remove a SizeConstraintSetUpdate from a SizeConstraintSet. + public let action: ChangeAction + + public init(sizeConstraint: SizeConstraint, action: ChangeAction) { + self.sizeConstraint = sizeConstraint + self.action = action + } + + private enum CodingKeys: String, CodingKey { + case sizeConstraint = "SizeConstraint" + case action = "Action" + } + } + + public struct AssociateWebACLRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ResourceArn", required: true, type: .string), + AWSShapeMember(label: "WebACLId", required: true, type: .string) + ] + /// The ARN (Amazon Resource Name) of the resource to be protected. + public let resourceArn: String + /// A unique identifier (ID) for the web ACL. + public let webACLId: String + + public init(resourceArn: String, webACLId: String) { + self.resourceArn = resourceArn + self.webACLId = webACLId + } + + private enum CodingKeys: String, CodingKey { + case resourceArn = "ResourceArn" + case webACLId = "WebACLId" + } + } + + public enum WafRuleType: String, CustomStringConvertible, Codable { + case regular = "REGULAR" + case rateBased = "RATE_BASED" + case group = "GROUP" + public var description: String { return self.rawValue } + } + public struct CreateWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: true, type: .string), AWSShapeMember(label: "DefaultAction", required: true, type: .structure), AWSShapeMember(label: "ChangeToken", required: true, type: .string), @@ -756,7 +1369,7 @@ extension WafRegional { } public struct WafAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum) ] /// Specifies how you want AWS WAF to respond to requests that match the settings in a Rule. Valid settings include the following: ALLOW: AWS WAF allows requests BLOCK: AWS WAF blocks requests COUNT: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify COUNT for the default action for a WebACL. @@ -772,7 +1385,7 @@ extension WafRegional { } public struct SqlInjectionMatchSetUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: true, type: .enum), AWSShapeMember(label: "SqlInjectionMatchTuple", required: true, type: .structure) ] @@ -793,7 +1406,7 @@ extension WafRegional { } public struct CreateSqlInjectionMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string), AWSShapeMember(label: "SqlInjectionMatchSet", required: false, type: .structure) ] @@ -823,7 +1436,7 @@ extension WafRegional { } public struct GetChangeTokenResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used in the request. Use this value in a GetChangeTokenStatus request to get the current status of the request. @@ -839,7 +1452,7 @@ extension WafRegional { } public struct CreateXssMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -859,8 +1472,29 @@ extension WafRegional { } } + public struct GeoMatchSetUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GeoMatchConstraint", required: true, type: .structure), + AWSShapeMember(label: "Action", required: true, type: .enum) + ] + /// The country from which web requests originate that you want AWS WAF to search for. + public let geoMatchConstraint: GeoMatchConstraint + /// Specifies whether to insert or delete a country with UpdateGeoMatchSet. + public let action: ChangeAction + + public init(geoMatchConstraint: GeoMatchConstraint, action: ChangeAction) { + self.geoMatchConstraint = geoMatchConstraint + self.action = action + } + + private enum CodingKeys: String, CodingKey { + case geoMatchConstraint = "GeoMatchConstraint" + case action = "Action" + } + } + public struct RuleSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -880,8 +1514,60 @@ extension WafRegional { } } + public struct GetSampledRequestsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxItems", required: true, type: .long), + AWSShapeMember(label: "TimeWindow", required: true, type: .structure), + AWSShapeMember(label: "RuleId", required: true, type: .string), + AWSShapeMember(label: "WebAclId", required: true, type: .string) + ] + /// The number of requests that you want AWS WAF to return from among the first 5,000 requests that your AWS resource received during the time range. If your resource received fewer requests than the value of MaxItems, GetSampledRequests returns information about all of them. + public let maxItems: Int64 + /// The start date and time and the end date and time of the range for which you want GetSampledRequests to return a sample of requests. Specify the date and time in the following format: "2016-09-27T14:50Z". You can specify any time range in the previous three hours. + public let timeWindow: TimeWindow + /// RuleId is one of three values: The RuleId of the Rule or the RuleGroupId of the RuleGroup for which you want GetSampledRequests to return a sample of requests. Default_Action, which causes GetSampledRequests to return a sample of the requests that didn't match any of the rules in the specified WebACL. + public let ruleId: String + /// The WebACLId of the WebACL for which you want GetSampledRequests to return a sample of requests. + public let webAclId: String + + public init(maxItems: Int64, timeWindow: TimeWindow, ruleId: String, webAclId: String) { + self.maxItems = maxItems + self.timeWindow = timeWindow + self.ruleId = ruleId + self.webAclId = webAclId + } + + private enum CodingKeys: String, CodingKey { + case maxItems = "MaxItems" + case timeWindow = "TimeWindow" + case ruleId = "RuleId" + case webAclId = "WebAclId" + } + } + + public struct ListSqlInjectionMatchSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextMarker", required: false, type: .string), + AWSShapeMember(label: "SqlInjectionMatchSets", required: false, type: .list) + ] + /// If you have more SqlInjectionMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SqlInjectionMatchSet objects, submit another ListSqlInjectionMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + /// An array of SqlInjectionMatchSetSummary objects. + public let sqlInjectionMatchSets: [SqlInjectionMatchSetSummary]? + + public init(nextMarker: String? = nil, sqlInjectionMatchSets: [SqlInjectionMatchSetSummary]? = nil) { + self.nextMarker = nextMarker + self.sqlInjectionMatchSets = sqlInjectionMatchSets + } + + private enum CodingKeys: String, CodingKey { + case nextMarker = "NextMarker" + case sqlInjectionMatchSets = "SqlInjectionMatchSets" + } + } + public struct GetSizeConstraintSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SizeConstraintSet", required: false, type: .structure) ] /// Information about the SizeConstraintSet that you specified in the GetSizeConstraintSet request. For more information, see the following topics: SizeConstraintSet: Contains SizeConstraintSetId, SizeConstraints, and Name SizeConstraints: Contains an array of SizeConstraint objects. Each SizeConstraint object contains FieldToMatch, TextTransformation, ComparisonOperator, and Size FieldToMatch: Contains Data and Type @@ -897,7 +1583,7 @@ extension WafRegional { } public struct XssMatchSetUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchTuple", required: true, type: .structure), AWSShapeMember(label: "Action", required: true, type: .enum) ] @@ -917,60 +1603,24 @@ extension WafRegional { } } - public struct ListSqlInjectionMatchSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextMarker", required: false, type: .string), - AWSShapeMember(label: "SqlInjectionMatchSets", required: false, type: .list) - ] - /// If you have more SqlInjectionMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SqlInjectionMatchSet objects, submit another ListSqlInjectionMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. - public let nextMarker: String? - /// An array of SqlInjectionMatchSetSummary objects. - public let sqlInjectionMatchSets: [SqlInjectionMatchSetSummary]? - - public init(nextMarker: String? = nil, sqlInjectionMatchSets: [SqlInjectionMatchSetSummary]? = nil) { - self.nextMarker = nextMarker - self.sqlInjectionMatchSets = sqlInjectionMatchSets - } - - private enum CodingKeys: String, CodingKey { - case nextMarker = "NextMarker" - case sqlInjectionMatchSets = "SqlInjectionMatchSets" - } - } - - public struct GetSampledRequestsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxItems", required: true, type: .long), - AWSShapeMember(label: "TimeWindow", required: true, type: .structure), - AWSShapeMember(label: "RuleId", required: true, type: .string), - AWSShapeMember(label: "WebAclId", required: true, type: .string) + public struct DeleteRegexMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The number of requests that you want AWS WAF to return from among the first 5,000 requests that your AWS resource received during the time range. If your resource received fewer requests than the value of MaxItems, GetSampledRequests returns information about all of them. - public let maxItems: Int64 - /// The start date and time and the end date and time of the range for which you want GetSampledRequests to return a sample of requests. Specify the date and time in the following format: "2016-09-27T14:50Z". You can specify any time range in the previous three hours. - public let timeWindow: TimeWindow - /// RuleId is one of two values: The RuleId of the Rule for which you want GetSampledRequests to return a sample of requests. Default_Action, which causes GetSampledRequests to return a sample of the requests that didn't match any of the rules in the specified WebACL. - public let ruleId: String - /// The WebACLId of the WebACL for which you want GetSampledRequests to return a sample of requests. - public let webAclId: String + /// The ChangeToken that you used to submit the DeleteRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? - public init(maxItems: Int64, timeWindow: TimeWindow, ruleId: String, webAclId: String) { - self.maxItems = maxItems - self.timeWindow = timeWindow - self.ruleId = ruleId - self.webAclId = webAclId + public init(changeToken: String? = nil) { + self.changeToken = changeToken } private enum CodingKeys: String, CodingKey { - case maxItems = "MaxItems" - case timeWindow = "TimeWindow" - case ruleId = "RuleId" - case webAclId = "WebAclId" + case changeToken = "ChangeToken" } } public struct UpdateRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "RuleId", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list) @@ -996,7 +1646,7 @@ extension WafRegional { } public struct DeleteRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "RuleId", required: true, type: .string) ] @@ -1016,8 +1666,24 @@ extension WafRegional { } } + public struct UpdateSizeConstraintSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the UpdateSizeConstraintSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct DeleteWebACLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteWebACL request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -1032,11 +1698,27 @@ extension WafRegional { } } - public struct UpdateSizeConstraintSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct UpdateRegexMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The ChangeToken that you used to submit the UpdateSizeConstraintSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + /// The ChangeToken that you used to submit the UpdateRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + + public struct UpdateRuleGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the UpdateRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. public let changeToken: String? public init(changeToken: String? = nil) { @@ -1048,8 +1730,55 @@ extension WafRegional { } } + public struct CreateRuleGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetricName", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "ChangeToken", required: true, type: .string) + ] + /// A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup. + public let metricName: String + /// A friendly name or description of the RuleGroup. You can't change Name after you create a RuleGroup. + public let name: String + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + + public init(metricName: String, name: String, changeToken: String) { + self.metricName = metricName + self.name = name + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case metricName = "MetricName" + case name = "Name" + case changeToken = "ChangeToken" + } + } + + public struct GeoMatchConstraint: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "Value", required: true, type: .enum) + ] + /// The type of geographical area you want AWS WAF to search for. Currently Country is the only valid value. + public let `type`: GeoMatchConstraintType + /// The country that you want AWS WAF to search for. + public let value: GeoMatchConstraintValue + + public init(type: GeoMatchConstraintType, value: GeoMatchConstraintValue) { + self.`type` = `type` + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case value = "Value" + } + } + public struct FieldToMatch: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Data", required: false, type: .string) ] @@ -1077,7 +1806,7 @@ extension WafRegional { } public struct CreateByteMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string), AWSShapeMember(label: "ByteMatchSet", required: false, type: .structure) ] @@ -1098,7 +1827,7 @@ extension WafRegional { } public struct IPSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1119,7 +1848,7 @@ extension WafRegional { } public struct DisassociateWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string) ] /// The ARN (Amazon Resource Name) of the resource from which the web ACL is being removed. @@ -1135,7 +1864,7 @@ extension WafRegional { } public struct GetIPSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPSet", required: false, type: .structure) ] /// Information about the IPSet that you specified in the GetIPSet request. For more information, see the following topics: IPSet: Contains IPSetDescriptors, IPSetId, and Name IPSetDescriptors: Contains an array of IPSetDescriptor objects. Each IPSetDescriptor object contains Type and Value @@ -1151,7 +1880,7 @@ extension WafRegional { } public struct ListByteMatchSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1178,8 +1907,29 @@ extension WafRegional { public var description: String { return self.rawValue } } + public struct CreateRegexPatternSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet. + public let name: String + + public init(changeToken: String, name: String) { + self.changeToken = changeToken + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case name = "Name" + } + } + public struct UpdateRateBasedRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Updates", required: true, type: .list), AWSShapeMember(label: "RateLimit", required: true, type: .long), AWSShapeMember(label: "ChangeToken", required: true, type: .string), @@ -1209,8 +1959,29 @@ extension WafRegional { } } + public struct ListRegexMatchSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextMarker", required: false, type: .string), + AWSShapeMember(label: "RegexMatchSets", required: false, type: .list) + ] + /// If you have more RegexMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RegexMatchSet objects, submit another ListRegexMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + /// An array of RegexMatchSetSummary objects. + public let regexMatchSets: [RegexMatchSetSummary]? + + public init(nextMarker: String? = nil, regexMatchSets: [RegexMatchSetSummary]? = nil) { + self.nextMarker = nextMarker + self.regexMatchSets = regexMatchSets + } + + private enum CodingKeys: String, CodingKey { + case nextMarker = "NextMarker" + case regexMatchSets = "RegexMatchSets" + } + } + public struct GetChangeTokenStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeTokenStatus", required: false, type: .enum) ] /// The status of the change token. @@ -1225,8 +1996,24 @@ extension WafRegional { } } + public struct GetXssMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "XssMatchSet", required: false, type: .structure) + ] + /// Information about the XssMatchSet that you specified in the GetXssMatchSet request. For more information, see the following topics: XssMatchSet: Contains Name, XssMatchSetId, and an array of XssMatchTuple objects XssMatchTuple: Each XssMatchTuple object contains FieldToMatch and TextTransformation FieldToMatch: Contains Data and Type + public let xssMatchSet: XssMatchSet? + + public init(xssMatchSet: XssMatchSet? = nil) { + self.xssMatchSet = xssMatchSet + } + + private enum CodingKeys: String, CodingKey { + case xssMatchSet = "XssMatchSet" + } + } + public struct UpdateByteMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "ByteMatchSetId", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list) @@ -1251,24 +2038,8 @@ extension WafRegional { } } - public struct GetXssMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "XssMatchSet", required: false, type: .structure) - ] - /// Information about the XssMatchSet that you specified in the GetXssMatchSet request. For more information, see the following topics: XssMatchSet: Contains Name, XssMatchSetId, and an array of XssMatchTuple objects XssMatchTuple: Each XssMatchTuple object contains FieldToMatch and TextTransformation FieldToMatch: Contains Data and Type - public let xssMatchSet: XssMatchSet? - - public init(xssMatchSet: XssMatchSet? = nil) { - self.xssMatchSet = xssMatchSet - } - - private enum CodingKeys: String, CodingKey { - case xssMatchSet = "XssMatchSet" - } - } - public struct SizeConstraintSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SizeConstraints", required: true, type: .list), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) @@ -1294,7 +2065,7 @@ extension WafRegional { } public struct DeleteRateBasedRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -1309,8 +2080,24 @@ extension WafRegional { } } + public struct DeleteRuleGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the DeleteRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct ByteMatchSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ByteMatchSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1331,7 +2118,7 @@ extension WafRegional { } public struct GetRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rule", required: false, type: .structure) ] /// Information about the Rule that you specified in the GetRule request. For more information, see the following topics: Rule: Contains MetricName, Name, an array of Predicate objects, and RuleId Predicate: Each Predicate object contains DataId, Negated, and Type @@ -1346,29 +2133,45 @@ extension WafRegional { } } - public struct ListSizeConstraintSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SizeConstraintSets", required: false, type: .list), + public struct GetRegexPatternSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSet", required: false, type: .structure) + ] + /// Information about the RegexPatternSet that you specified in the GetRegexPatternSet request, including the identifier of the pattern set and the regular expression patterns you want AWS WAF to search for. + public let regexPatternSet: RegexPatternSet? + + public init(regexPatternSet: RegexPatternSet? = nil) { + self.regexPatternSet = regexPatternSet + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSet = "RegexPatternSet" + } + } + + public struct ListRuleGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// An array of SizeConstraintSetSummary objects. - public let sizeConstraintSets: [SizeConstraintSetSummary]? - /// If you have more SizeConstraintSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SizeConstraintSet objects, submit another ListSizeConstraintSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + /// Specifies the number of RuleGroups that you want AWS WAF to return for this request. If you have more RuleGroups than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RuleGroups. + public let limit: Int32? + /// If you specify a value for Limit and you have more RuleGroups than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of RuleGroups. For the second and subsequent ListRuleGroups requests, specify the value of NextMarker from the previous response to get information about another batch of RuleGroups. public let nextMarker: String? - public init(sizeConstraintSets: [SizeConstraintSetSummary]? = nil, nextMarker: String? = nil) { - self.sizeConstraintSets = sizeConstraintSets + public init(limit: Int32? = nil, nextMarker: String? = nil) { + self.limit = limit self.nextMarker = nextMarker } private enum CodingKeys: String, CodingKey { - case sizeConstraintSets = "SizeConstraintSets" + case limit = "Limit" case nextMarker = "NextMarker" } } public struct CreateSizeConstraintSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1388,8 +2191,50 @@ extension WafRegional { } } + public struct ListSizeConstraintSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SizeConstraintSets", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// An array of SizeConstraintSetSummary objects. + public let sizeConstraintSets: [SizeConstraintSetSummary]? + /// If you have more SizeConstraintSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SizeConstraintSet objects, submit another ListSizeConstraintSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + + public init(sizeConstraintSets: [SizeConstraintSetSummary]? = nil, nextMarker: String? = nil) { + self.sizeConstraintSets = sizeConstraintSets + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case sizeConstraintSets = "SizeConstraintSets" + case nextMarker = "NextMarker" + } + } + + public struct CreateRegexMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "RegexMatchSet", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// A RegexMatchSet that contains no RegexMatchTuple objects. + public let regexMatchSet: RegexMatchSet? + + public init(changeToken: String? = nil, regexMatchSet: RegexMatchSet? = nil) { + self.changeToken = changeToken + self.regexMatchSet = regexMatchSet + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case regexMatchSet = "RegexMatchSet" + } + } + public struct ListByteMatchSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ByteMatchSets", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1409,15 +2254,36 @@ extension WafRegional { } } + public struct RuleUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Action", required: true, type: .enum), + AWSShapeMember(label: "Predicate", required: true, type: .structure) + ] + /// Specify INSERT to add a Predicate to a Rule. Use DELETE to remove a Predicate from a Rule. + public let action: ChangeAction + /// The ID of the Predicate (such as an IPSet) that you want to add to a Rule. + public let predicate: Predicate + + public init(action: ChangeAction, predicate: Predicate) { + self.action = action + self.predicate = predicate + } + + private enum CodingKeys: String, CodingKey { + case action = "Action" + case predicate = "Predicate" + } + } + public struct Predicate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Negated", required: true, type: .boolean), AWSShapeMember(label: "DataId", required: true, type: .string) ] /// The type of predicate in a Rule, such as ByteMatchSet or IPSet. public let `type`: PredicateType - /// Set Negated to False if you want AWS WAF to allow, block, or count requests based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow or block requests based on that IP address. Set Negated to True if you want AWS WAF to allow or block a request based on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow, block, or count requests based on all IP addresses except 192.0.2.44. + /// Set Negated to False if you want AWS WAF to allow, block, or count requests based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow or block requests based on that IP address. Set Negated to True if you want AWS WAF to allow or block a request based on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow, block, or count requests based on all IP addresses except 192.0.2.44. public let negated: Bool /// A unique identifier for a predicate in a Rule, such as ByteMatchSetId or IPSetId. The ID is returned by the corresponding Create or List command. public let dataId: String @@ -1435,24 +2301,24 @@ extension WafRegional { } } - public struct RuleUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Action", required: true, type: .enum), - AWSShapeMember(label: "Predicate", required: true, type: .structure) + public struct ListRuleGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleGroups", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// Specify INSERT to add a Predicate to a Rule. Use DELETE to remove a Predicate from a Rule. - public let action: ChangeAction - /// The ID of the Predicate (such as an IPSet) that you want to add to a Rule. - public let predicate: Predicate + /// An array of RuleGroup objects. + public let ruleGroups: [RuleGroupSummary]? + /// If you have more RuleGroups than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RuleGroups, submit another ListRuleGroups request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? - public init(action: ChangeAction, predicate: Predicate) { - self.action = action - self.predicate = predicate + public init(ruleGroups: [RuleGroupSummary]? = nil, nextMarker: String? = nil) { + self.ruleGroups = ruleGroups + self.nextMarker = nextMarker } private enum CodingKeys: String, CodingKey { - case action = "Action" - case predicate = "Predicate" + case ruleGroups = "RuleGroups" + case nextMarker = "NextMarker" } } @@ -1467,7 +2333,7 @@ extension WafRegional { } public struct ListIPSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPSets", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1487,8 +2353,24 @@ extension WafRegional { } } + public struct WafOverrideAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .enum) + ] + /// COUNT overrides the action specified by the individual rule within a RuleGroup . If set to NONE, the rule's action will take place. + public let `type`: WafOverrideActionType + + public init(type: WafOverrideActionType) { + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + } + } + public struct ListSizeConstraintSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1508,8 +2390,40 @@ extension WafRegional { } } + public struct GetRegexMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexMatchSetId", required: true, type: .string) + ] + /// The RegexMatchSetId of the RegexMatchSet that you want to get. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets. + public let regexMatchSetId: String + + public init(regexMatchSetId: String) { + self.regexMatchSetId = regexMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case regexMatchSetId = "RegexMatchSetId" + } + } + + public struct UpdateRegexPatternSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the UpdateRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct DeleteRateBasedRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "RuleId", required: true, type: .string) ] @@ -1529,8 +2443,24 @@ extension WafRegional { } } + public struct DeleteRegexPatternSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the DeleteRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct ListXssMatchSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSets", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1551,7 +2481,7 @@ extension WafRegional { } public struct WebACLUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: true, type: .enum), AWSShapeMember(label: "ActivatedRule", required: true, type: .structure) ] @@ -1572,7 +2502,7 @@ extension WafRegional { } public struct IPSetUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: true, type: .enum), AWSShapeMember(label: "IPSetDescriptor", required: true, type: .structure) ] @@ -1592,12 +2522,33 @@ extension WafRegional { } } + public struct RegexPatternSetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet, update a RegexPatternSet, remove a RegexPatternSet from a RegexMatchSet, and delete a RegexPatternSet from AWS WAF. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + /// A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet. + public let name: String + + public init(regexPatternSetId: String, name: String) { + self.regexPatternSetId = regexPatternSetId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSetId = "RegexPatternSetId" + case name = "Name" + } + } + public struct DisassociateWebACLResponse: AWSShape { } public struct ListWebACLsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1618,7 +2569,7 @@ extension WafRegional { } public struct UpdateRateBasedRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the UpdateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -1634,7 +2585,7 @@ extension WafRegional { } public struct ByteMatchSetUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: true, type: .enum), AWSShapeMember(label: "ByteMatchTuple", required: true, type: .structure) ] @@ -1649,55 +2600,123 @@ extension WafRegional { } private enum CodingKeys: String, CodingKey { - case action = "Action" - case byteMatchTuple = "ByteMatchTuple" + case action = "Action" + case byteMatchTuple = "ByteMatchTuple" + } + } + + public struct GetRateBasedRuleManagedKeysResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ManagedKeys", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// An array of IP addresses that currently are blocked by the specified RateBasedRule. + public let managedKeys: [String]? + /// A null value and not currently used. + public let nextMarker: String? + + public init(managedKeys: [String]? = nil, nextMarker: String? = nil) { + self.managedKeys = managedKeys + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case managedKeys = "ManagedKeys" + case nextMarker = "NextMarker" + } + } + + public struct GetRateBasedRuleManagedKeysRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleId", required: true, type: .string), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// The RuleId of the RateBasedRule for which you want to get a list of ManagedKeys. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules. + public let ruleId: String + /// A null value and not currently used. Do not include this in your request. + public let nextMarker: String? + + public init(ruleId: String, nextMarker: String? = nil) { + self.ruleId = ruleId + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case ruleId = "RuleId" + case nextMarker = "NextMarker" + } + } + + public struct UpdateRegexPatternSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string), + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Updates", required: true, type: .list) + ] + /// The RegexPatternSetId of the RegexPatternSet that you want to update. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// An array of RegexPatternSetUpdate objects that you want to insert into or delete from a RegexPatternSet. + public let updates: [RegexPatternSetUpdate] + + public init(regexPatternSetId: String, changeToken: String, updates: [RegexPatternSetUpdate]) { + self.regexPatternSetId = regexPatternSetId + self.changeToken = changeToken + self.updates = updates + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSetId = "RegexPatternSetId" + case changeToken = "ChangeToken" + case updates = "Updates" } } - public struct GetRateBasedRuleManagedKeysResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ManagedKeys", required: false, type: .list), - AWSShapeMember(label: "NextMarker", required: false, type: .string) + public struct RegexMatchSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexMatchSetId", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "RegexMatchTuples", required: false, type: .list) ] - /// An array of IP addresses that currently are blocked by the specified RateBasedRule. - public let managedKeys: [String]? - /// A null value and not currently used. - public let nextMarker: String? + /// The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information about a RegexMatchSet (see GetRegexMatchSet), update a RegexMatchSet (see UpdateRegexMatchSet), insert a RegexMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a RegexMatchSet from AWS WAF (see DeleteRegexMatchSet). RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets. + public let regexMatchSetId: String? + /// A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet. + public let name: String? + /// Contains an array of RegexMatchTuple objects. Each RegexMatchTuple object contains: The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the User-Agent header. The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see RegexPatternSet. Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. + public let regexMatchTuples: [RegexMatchTuple]? - public init(managedKeys: [String]? = nil, nextMarker: String? = nil) { - self.managedKeys = managedKeys - self.nextMarker = nextMarker + public init(regexMatchSetId: String? = nil, name: String? = nil, regexMatchTuples: [RegexMatchTuple]? = nil) { + self.regexMatchSetId = regexMatchSetId + self.name = name + self.regexMatchTuples = regexMatchTuples } private enum CodingKeys: String, CodingKey { - case managedKeys = "ManagedKeys" - case nextMarker = "NextMarker" + case regexMatchSetId = "RegexMatchSetId" + case name = "Name" + case regexMatchTuples = "RegexMatchTuples" } } - public struct GetRateBasedRuleManagedKeysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "RuleId", required: true, type: .string), - AWSShapeMember(label: "NextMarker", required: false, type: .string) + public struct DeleteGeoMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The RuleId of the RateBasedRule for which you want to get a list of ManagedKeys. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules. - public let ruleId: String - /// A null value and not currently used. Do not include this in your request. - public let nextMarker: String? + /// The ChangeToken that you used to submit the DeleteGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? - public init(ruleId: String, nextMarker: String? = nil) { - self.ruleId = ruleId - self.nextMarker = nextMarker + public init(changeToken: String? = nil) { + self.changeToken = changeToken } private enum CodingKeys: String, CodingKey { - case ruleId = "RuleId" - case nextMarker = "NextMarker" + case changeToken = "ChangeToken" } } public struct SqlInjectionMatchTuple: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FieldToMatch", required: true, type: .structure), AWSShapeMember(label: "TextTransformation", required: true, type: .enum) ] @@ -1717,8 +2736,13 @@ extension WafRegional { } } + public enum GeoMatchConstraintType: String, CustomStringConvertible, Codable { + case country = "Country" + public var description: String { return self.rawValue } + } + public struct GetWebACLForResourceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceArn", required: true, type: .string) ] /// The ARN (Amazon Resource Name) of the resource for which to get the web ACL. @@ -1734,7 +2758,7 @@ extension WafRegional { } public struct GetByteMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ByteMatchSet", required: false, type: .structure) ] /// Information about the ByteMatchSet that you specified in the GetByteMatchSet request. For more information, see the following topics: ByteMatchSet: Contains ByteMatchSetId, ByteMatchTuples, and Name ByteMatchTuples: Contains an array of ByteMatchTuple objects. Each ByteMatchTuple object contains FieldToMatch, PositionalConstraint, TargetString, and TextTransformation FieldToMatch: Contains Data and Type @@ -1750,7 +2774,7 @@ extension WafRegional { } public struct GetRateBasedRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rule", required: false, type: .structure) ] /// Information about the RateBasedRule that you specified in the GetRateBasedRule request. @@ -1765,8 +2789,29 @@ extension WafRegional { } } + public struct ListGeoMatchSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GeoMatchSets", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// An array of GeoMatchSetSummary objects. + public let geoMatchSets: [GeoMatchSetSummary]? + /// If you have more GeoMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more GeoMatchSet objects, submit another ListGeoMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + + public init(geoMatchSets: [GeoMatchSetSummary]? = nil, nextMarker: String? = nil) { + self.geoMatchSets = geoMatchSets + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case geoMatchSets = "GeoMatchSets" + case nextMarker = "NextMarker" + } + } + public struct CreateIPSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1787,7 +2832,7 @@ extension WafRegional { } public struct CreateIPSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string), AWSShapeMember(label: "IPSet", required: false, type: .structure) ] @@ -1807,14 +2852,14 @@ extension WafRegional { } } - public struct UpdateSqlInjectionMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string) + public struct GetChangeTokenStatusRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string) ] - /// The ChangeToken that you used to submit the UpdateSqlInjectionMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. - public let changeToken: String? + /// The change token for which you want to get the status. This change token was previously returned in the GetChangeToken response. + public let changeToken: String - public init(changeToken: String? = nil) { + public init(changeToken: String) { self.changeToken = changeToken } @@ -1823,14 +2868,14 @@ extension WafRegional { } } - public struct GetChangeTokenStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: true, type: .string) + public struct UpdateSqlInjectionMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The change token for which you want to get the status. This change token was previously returned in the GetChangeToken response. - public let changeToken: String + /// The ChangeToken that you used to submit the UpdateSqlInjectionMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? - public init(changeToken: String) { + public init(changeToken: String? = nil) { self.changeToken = changeToken } @@ -1840,7 +2885,7 @@ extension WafRegional { } public struct RateBasedRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: false, type: .string), AWSShapeMember(label: "MatchPredicates", required: true, type: .list), AWSShapeMember(label: "RateLimit", required: true, type: .long), @@ -1881,7 +2926,7 @@ extension WafRegional { } public struct DeleteIPSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "IPSetId", required: true, type: .string) ] @@ -1902,7 +2947,7 @@ extension WafRegional { } public struct GetRateBasedRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleId", required: true, type: .string) ] /// The RuleId of the RateBasedRule that you want to get. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules. @@ -1923,8 +2968,45 @@ extension WafRegional { public var description: String { return self.rawValue } } + public struct ListSubscribedRuleGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleGroups", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// An array of RuleGroup objects. + public let ruleGroups: [SubscribedRuleGroupSummary]? + /// If you have more objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more objects, submit another ListSubscribedRuleGroups request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + + public init(ruleGroups: [SubscribedRuleGroupSummary]? = nil, nextMarker: String? = nil) { + self.ruleGroups = ruleGroups + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case ruleGroups = "RuleGroups" + case nextMarker = "NextMarker" + } + } + + public struct GetRegexPatternSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string) + ] + /// The RegexPatternSetId of the RegexPatternSet that you want to get. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + + public init(regexPatternSetId: String) { + self.regexPatternSetId = regexPatternSetId + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSetId = "RegexPatternSetId" + } + } + public struct IPSetDescriptor: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Value", required: true, type: .string) ] @@ -1944,29 +3026,8 @@ extension WafRegional { } } - public struct CreateSizeConstraintSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string), - AWSShapeMember(label: "SizeConstraintSet", required: false, type: .structure) - ] - /// The ChangeToken that you used to submit the CreateSizeConstraintSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. - public let changeToken: String? - /// A SizeConstraintSet that contains no SizeConstraint objects. - public let sizeConstraintSet: SizeConstraintSet? - - public init(changeToken: String? = nil, sizeConstraintSet: SizeConstraintSet? = nil) { - self.changeToken = changeToken - self.sizeConstraintSet = sizeConstraintSet - } - - private enum CodingKeys: String, CodingKey { - case changeToken = "ChangeToken" - case sizeConstraintSet = "SizeConstraintSet" - } - } - public struct SizeConstraint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FieldToMatch", required: true, type: .structure), AWSShapeMember(label: "TextTransformation", required: true, type: .enum), AWSShapeMember(label: "ComparisonOperator", required: true, type: .enum), @@ -1996,8 +3057,29 @@ extension WafRegional { } } + public struct CreateSizeConstraintSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "SizeConstraintSet", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateSizeConstraintSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// A SizeConstraintSet that contains no SizeConstraint objects. + public let sizeConstraintSet: SizeConstraintSet? + + public init(changeToken: String? = nil, sizeConstraintSet: SizeConstraintSet? = nil) { + self.changeToken = changeToken + self.sizeConstraintSet = sizeConstraintSet + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case sizeConstraintSet = "SizeConstraintSet" + } + } + public struct ListRulesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -2017,8 +3099,29 @@ extension WafRegional { } } + public struct CreateRuleGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "RuleGroup", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// An empty RuleGroup. + public let ruleGroup: RuleGroup? + + public init(changeToken: String? = nil, ruleGroup: RuleGroup? = nil) { + self.changeToken = changeToken + self.ruleGroup = ruleGroup + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case ruleGroup = "RuleGroup" + } + } + public struct GetXssMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSetId", required: true, type: .string) ] /// The XssMatchSetId of the XssMatchSet that you want to get. XssMatchSetId is returned by CreateXssMatchSet and by ListXssMatchSets. @@ -2033,8 +3136,24 @@ extension WafRegional { } } + public struct GetSizeConstraintSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) + ] + /// The SizeConstraintSetId of the SizeConstraintSet that you want to get. SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. + public let sizeConstraintSetId: String + + public init(sizeConstraintSetId: String) { + self.sizeConstraintSetId = sizeConstraintSetId + } + + private enum CodingKeys: String, CodingKey { + case sizeConstraintSetId = "SizeConstraintSetId" + } + } + public struct UpdateIPSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "IPSetId", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list) @@ -2059,24 +3178,50 @@ extension WafRegional { } } - public struct GetSizeConstraintSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) + public struct GetGeoMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GeoMatchSet", required: false, type: .structure) ] - /// The SizeConstraintSetId of the SizeConstraintSet that you want to get. SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. - public let sizeConstraintSetId: String + /// Information about the GeoMatchSet that you specified in the GetGeoMatchSet request. This includes the Type, which for a GeoMatchContraint is always Country, as well as the Value, which is the identifier for a specific country. + public let geoMatchSet: GeoMatchSet? - public init(sizeConstraintSetId: String) { - self.sizeConstraintSetId = sizeConstraintSetId + public init(geoMatchSet: GeoMatchSet? = nil) { + self.geoMatchSet = geoMatchSet } private enum CodingKeys: String, CodingKey { - case sizeConstraintSetId = "SizeConstraintSetId" + case geoMatchSet = "GeoMatchSet" + } + } + + public struct UpdateRegexMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexMatchSetId", required: true, type: .string), + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Updates", required: true, type: .list) + ] + /// The RegexMatchSetId of the RegexMatchSet that you want to update. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets. + public let regexMatchSetId: String + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// An array of RegexMatchSetUpdate objects that you want to insert into or delete from a RegexMatchSet. For more information, see RegexMatchTuple. + public let updates: [RegexMatchSetUpdate] + + public init(regexMatchSetId: String, changeToken: String, updates: [RegexMatchSetUpdate]) { + self.regexMatchSetId = regexMatchSetId + self.changeToken = changeToken + self.updates = updates + } + + private enum CodingKeys: String, CodingKey { + case regexMatchSetId = "RegexMatchSetId" + case changeToken = "ChangeToken" + case updates = "Updates" } } public struct CreateSqlInjectionMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -2096,29 +3241,55 @@ extension WafRegional { } } - public struct CreateWebACLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string), - AWSShapeMember(label: "WebACL", required: false, type: .structure) + public struct CreateRegexMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) ] - /// The ChangeToken that you used to submit the CreateWebACL request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. - public let changeToken: String? - /// The WebACL returned in the CreateWebACL response. - public let webACL: WebACL? + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet. + public let name: String - public init(changeToken: String? = nil, webACL: WebACL? = nil) { + public init(changeToken: String, name: String) { self.changeToken = changeToken - self.webACL = webACL + self.name = name } private enum CodingKeys: String, CodingKey { case changeToken = "ChangeToken" - case webACL = "WebACL" + case name = "Name" + } + } + + public struct UpdateGeoMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Updates", required: true, type: .list), + AWSShapeMember(label: "GeoMatchSetId", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// An array of GeoMatchSetUpdate objects that you want to insert into or delete from an GeoMatchSet. For more information, see the applicable data types: GeoMatchSetUpdate: Contains Action and GeoMatchConstraint GeoMatchConstraint: Contains Type and Value You can have only one Type and Value per GeoMatchConstraint. To add multiple countries, include multiple GeoMatchSetUpdate objects in your request. + public let updates: [GeoMatchSetUpdate] + /// The GeoMatchSetId of the GeoMatchSet that you want to update. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets. + public let geoMatchSetId: String + + public init(changeToken: String, updates: [GeoMatchSetUpdate], geoMatchSetId: String) { + self.changeToken = changeToken + self.updates = updates + self.geoMatchSetId = geoMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case updates = "Updates" + case geoMatchSetId = "GeoMatchSetId" } } public struct DeleteSqlInjectionMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string) ] @@ -2127,19 +3298,61 @@ extension WafRegional { /// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to delete. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. public let sqlInjectionMatchSetId: String - public init(changeToken: String, sqlInjectionMatchSetId: String) { + public init(changeToken: String, sqlInjectionMatchSetId: String) { + self.changeToken = changeToken + self.sqlInjectionMatchSetId = sqlInjectionMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case sqlInjectionMatchSetId = "SqlInjectionMatchSetId" + } + } + + public struct ListRegexMatchSetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// Specifies the number of RegexMatchSet objects that you want AWS WAF to return for this request. If you have more RegexMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RegexMatchSet objects. + public let limit: Int32? + /// If you specify a value for Limit and you have more RegexMatchSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of ByteMatchSets. For the second and subsequent ListRegexMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of RegexMatchSet objects. + public let nextMarker: String? + + public init(limit: Int32? = nil, nextMarker: String? = nil) { + self.limit = limit + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case nextMarker = "NextMarker" + } + } + + public struct CreateWebACLResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "WebACL", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateWebACL request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// The WebACL returned in the CreateWebACL response. + public let webACL: WebACL? + + public init(changeToken: String? = nil, webACL: WebACL? = nil) { self.changeToken = changeToken - self.sqlInjectionMatchSetId = sqlInjectionMatchSetId + self.webACL = webACL } private enum CodingKeys: String, CodingKey { case changeToken = "ChangeToken" - case sqlInjectionMatchSetId = "SqlInjectionMatchSetId" + case webACL = "WebACL" } } public struct ByteMatchTuple: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FieldToMatch", required: true, type: .structure), AWSShapeMember(label: "TargetString", required: true, type: .blob), AWSShapeMember(label: "TextTransformation", required: true, type: .enum), @@ -2169,12 +3382,33 @@ extension WafRegional { } } + public struct ListGeoMatchSetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// Specifies the number of GeoMatchSet objects that you want AWS WAF to return for this request. If you have more GeoMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of GeoMatchSet objects. + public let limit: Int32? + /// If you specify a value for Limit and you have more GeoMatchSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of GeoMatchSet objects. For the second and subsequent ListGeoMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of GeoMatchSet objects. + public let nextMarker: String? + + public init(limit: Int32? = nil, nextMarker: String? = nil) { + self.limit = limit + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case nextMarker = "NextMarker" + } + } + public struct AssociateWebACLResponse: AWSShape { } public struct ListXssMatchSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -2195,7 +3429,7 @@ extension WafRegional { } public struct UpdateRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the UpdateRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -2210,8 +3444,51 @@ extension WafRegional { } } + public struct RegexMatchSetUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Action", required: true, type: .enum), + AWSShapeMember(label: "RegexMatchTuple", required: true, type: .structure) + ] + /// Specifies whether to insert or delete a RegexMatchTuple. + public let action: ChangeAction + /// Information about the part of a web request that you want AWS WAF to inspect and the identifier of the regular expression (regex) pattern that you want AWS WAF to search for. If you specify DELETE for the value of Action, the RegexMatchTuple values must exactly match the values in the RegexMatchTuple that you want to delete from the RegexMatchSet. + public let regexMatchTuple: RegexMatchTuple + + public init(action: ChangeAction, regexMatchTuple: RegexMatchTuple) { + self.action = action + self.regexMatchTuple = regexMatchTuple + } + + private enum CodingKeys: String, CodingKey { + case action = "Action" + case regexMatchTuple = "RegexMatchTuple" + } + } + + public struct GetRuleGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) + ] + /// The RuleGroupId of the RuleGroup that you want to get. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups. + public let ruleGroupId: String + + public init(ruleGroupId: String) { + self.ruleGroupId = ruleGroupId + } + + private enum CodingKeys: String, CodingKey { + case ruleGroupId = "RuleGroupId" + } + } + + public enum WafOverrideActionType: String, CustomStringConvertible, Codable { + case none = "NONE" + case count = "COUNT" + public var description: String { return self.rawValue } + } + public struct UpdateXssMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the UpdateXssMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -2226,29 +3503,29 @@ extension WafRegional { } } - public struct SqlInjectionMatchSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string), + public struct CreateGeoMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] - /// A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet), update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet). SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. - public let sqlInjectionMatchSetId: String - /// The name of the SqlInjectionMatchSet, if any, specified by Id. + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// A friendly name or description of the GeoMatchSet. You can't change Name after you create the GeoMatchSet. public let name: String - public init(sqlInjectionMatchSetId: String, name: String) { - self.sqlInjectionMatchSetId = sqlInjectionMatchSetId + public init(changeToken: String, name: String) { + self.changeToken = changeToken self.name = name } private enum CodingKeys: String, CodingKey { - case sqlInjectionMatchSetId = "SqlInjectionMatchSetId" + case changeToken = "ChangeToken" case name = "Name" } } public struct ListResourcesForWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WebACLId", required: true, type: .string) ] /// The unique identifier (ID) of the web ACL for which to list the associated resources. @@ -2263,8 +3540,29 @@ extension WafRegional { } } + public struct SqlInjectionMatchSetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet), update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet). SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. + public let sqlInjectionMatchSetId: String + /// The name of the SqlInjectionMatchSet, if any, specified by Id. + public let name: String + + public init(sqlInjectionMatchSetId: String, name: String) { + self.sqlInjectionMatchSetId = sqlInjectionMatchSetId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case sqlInjectionMatchSetId = "SqlInjectionMatchSetId" + case name = "Name" + } + } + public struct ListWebACLsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WebACLs", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -2284,8 +3582,29 @@ extension WafRegional { } } + public struct DeleteRegexPatternSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string), + AWSShapeMember(label: "ChangeToken", required: true, type: .string) + ] + /// The RegexPatternSetId of the RegexPatternSet that you want to delete. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + + public init(regexPatternSetId: String, changeToken: String) { + self.regexPatternSetId = regexPatternSetId + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSetId = "RegexPatternSetId" + case changeToken = "ChangeToken" + } + } + public struct DeleteXssMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSetId", required: true, type: .string), AWSShapeMember(label: "ChangeToken", required: true, type: .string) ] @@ -2305,29 +3624,29 @@ extension WafRegional { } } - public struct SizeConstraintSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) + public struct ListRegexPatternSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSets", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// The name of the SizeConstraintSet, if any. - public let name: String - /// A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId to get information about a SizeConstraintSet (see GetSizeConstraintSet), update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet from AWS WAF (see DeleteSizeConstraintSet). SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. - public let sizeConstraintSetId: String + /// An array of RegexPatternSetSummary objects. + public let regexPatternSets: [RegexPatternSetSummary]? + /// If you have more RegexPatternSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RegexPatternSet objects, submit another ListRegexPatternSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? - public init(name: String, sizeConstraintSetId: String) { - self.name = name - self.sizeConstraintSetId = sizeConstraintSetId + public init(regexPatternSets: [RegexPatternSetSummary]? = nil, nextMarker: String? = nil) { + self.regexPatternSets = regexPatternSets + self.nextMarker = nextMarker } private enum CodingKeys: String, CodingKey { - case name = "Name" - case sizeConstraintSetId = "SizeConstraintSetId" + case regexPatternSets = "RegexPatternSets" + case nextMarker = "NextMarker" } } public struct DeleteByteMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "ByteMatchSetId", required: true, type: .string) ] @@ -2347,8 +3666,29 @@ extension WafRegional { } } + public struct SizeConstraintSetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) + ] + /// The name of the SizeConstraintSet, if any. + public let name: String + /// A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId to get information about a SizeConstraintSet (see GetSizeConstraintSet), update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet from AWS WAF (see DeleteSizeConstraintSet). SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. + public let sizeConstraintSetId: String + + public init(name: String, sizeConstraintSetId: String) { + self.name = name + self.sizeConstraintSetId = sizeConstraintSetId + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case sizeConstraintSetId = "SizeConstraintSetId" + } + } + public struct UpdateByteMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the UpdateByteMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -2364,31 +3704,36 @@ extension WafRegional { } public struct SampledHTTPRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleWithinRuleGroup", required: false, type: .string), AWSShapeMember(label: "Request", required: true, type: .structure), + AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), AWSShapeMember(label: "Weight", required: true, type: .long), AWSShapeMember(label: "Action", required: false, type: .string) ] - /// The time at which AWS WAF received the request from your AWS resource, in Unix time format (in seconds). - public let timestamp: TimeStamp? + /// This value is returned if the GetSampledRequests request specifies the ID of a RuleGroup rather than the ID of an individual rule. RuleWithinRuleGroup is the rule within the specified RuleGroup that matched the request listed in the response. + public let ruleWithinRuleGroup: String? /// A complex type that contains detailed information about the request. public let request: HTTPRequest + /// The time at which AWS WAF received the request from your AWS resource, in Unix time format (in seconds). + public let timestamp: TimeStamp? /// A value that indicates how one result in the response relates proportionally to other results in the response. A result that has a weight of 2 represents roughly twice as many CloudFront web requests as a result that has a weight of 1. public let weight: Int64 /// The action for the Rule that the request matched: ALLOW, BLOCK, or COUNT. public let action: String? - public init(timestamp: TimeStamp? = nil, request: HTTPRequest, weight: Int64, action: String? = nil) { - self.timestamp = timestamp + public init(ruleWithinRuleGroup: String? = nil, request: HTTPRequest, timestamp: TimeStamp? = nil, weight: Int64, action: String? = nil) { + self.ruleWithinRuleGroup = ruleWithinRuleGroup self.request = request + self.timestamp = timestamp self.weight = weight self.action = action } private enum CodingKeys: String, CodingKey { - case timestamp = "Timestamp" + case ruleWithinRuleGroup = "RuleWithinRuleGroup" case request = "Request" + case timestamp = "Timestamp" case weight = "Weight" case action = "Action" } @@ -2403,8 +3748,29 @@ extension WafRegional { public var description: String { return self.rawValue } } + public struct RegexPatternSetUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Action", required: true, type: .enum), + AWSShapeMember(label: "RegexPatternString", required: true, type: .string) + ] + /// Specifies whether to insert or delete a RegexPatternString. + public let action: ChangeAction + /// Specifies the regular expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t. + public let regexPatternString: String + + public init(action: ChangeAction, regexPatternString: String) { + self.action = action + self.regexPatternString = regexPatternString + } + + private enum CodingKeys: String, CodingKey { + case action = "Action" + case regexPatternString = "RegexPatternString" + } + } + public struct XssMatchTuple: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FieldToMatch", required: true, type: .structure), AWSShapeMember(label: "TextTransformation", required: true, type: .enum) ] @@ -2425,7 +3791,7 @@ extension WafRegional { } public struct DeleteByteMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteByteMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -2441,7 +3807,7 @@ extension WafRegional { } public struct GetSqlInjectionMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string) ] /// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to get. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. @@ -2460,13 +3826,15 @@ extension WafRegional { case ipmatch = "IPMatch" case bytematch = "ByteMatch" case sqlinjectionmatch = "SqlInjectionMatch" + case geomatch = "GeoMatch" case sizeconstraint = "SizeConstraint" case xssmatch = "XssMatch" + case regexmatch = "RegexMatch" public var description: String { return self.rawValue } } public struct DeleteSizeConstraintSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) ] @@ -2487,7 +3855,7 @@ extension WafRegional { } public struct GetSqlInjectionMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SqlInjectionMatchSet", required: false, type: .structure) ] /// Information about the SqlInjectionMatchSet that you specified in the GetSqlInjectionMatchSet request. For more information, see the following topics: SqlInjectionMatchSet: Contains Name, SqlInjectionMatchSetId, and an array of SqlInjectionMatchTuple objects SqlInjectionMatchTuple: Each SqlInjectionMatchTuple object contains FieldToMatch and TextTransformation FieldToMatch: Contains Data and Type @@ -2513,7 +3881,7 @@ extension WafRegional { } public struct UpdateWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultAction", required: false, type: .structure), AWSShapeMember(label: "Updates", required: false, type: .list), AWSShapeMember(label: "ChangeToken", required: true, type: .string), @@ -2521,7 +3889,7 @@ extension WafRegional { ] /// A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the rules in a web ACL. public let defaultAction: WafAction? - /// An array of updates to make to the WebACL. An array of WebACLUpdate objects that you want to insert into or delete from a WebACL. For more information, see the applicable data types: WebACLUpdate: Contains Action and ActivatedRule ActivatedRule: Contains Action, Priority, RuleId, and Type WafAction: Contains Type + /// An array of updates to make to the WebACL. An array of WebACLUpdate objects that you want to insert into or delete from a WebACL. For more information, see the applicable data types: WebACLUpdate: Contains Action and ActivatedRule ActivatedRule: Contains Action, Priority, RuleId, and Type. The OverrideAction data type within ActivatedRule is used only when submitting an UpdateRuleGroup request. ActivatedRule|OverrideAction is not applicable and therefore not available for UpdateWebACL. WafAction: Contains Type public let updates: [WebACLUpdate]? /// The value returned by the most recent call to GetChangeToken. public let changeToken: String @@ -2544,7 +3912,7 @@ extension WafRegional { } public struct GetWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WebACLId", required: true, type: .string) ] /// The WebACLId of the WebACL that you want to get. WebACLId is returned by CreateWebACL and by ListWebACLs. @@ -2571,7 +3939,7 @@ extension WafRegional { } public struct ListSqlInjectionMatchSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -2591,8 +3959,24 @@ extension WafRegional { } } + public struct UpdateGeoMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the UpdateGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct ListRulesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -2613,7 +3997,7 @@ extension WafRegional { } public struct ByteMatchSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ByteMatchSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "ByteMatchTuples", required: true, type: .list) @@ -2638,8 +4022,55 @@ extension WafRegional { } } + public struct GeoMatchSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GeoMatchConstraints", required: true, type: .list), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "GeoMatchSetId", required: true, type: .string) + ] + /// An array of GeoMatchConstraint objects, which contain the country that you want AWS WAF to search for. + public let geoMatchConstraints: [GeoMatchConstraint] + /// A friendly name or description of the GeoMatchSet. You can't change the name of an GeoMatchSet after you create it. + public let name: String? + /// The GeoMatchSetId for an GeoMatchSet. You use GeoMatchSetId to get information about a GeoMatchSet (see GeoMatchSet), update a GeoMatchSet (see UpdateGeoMatchSet), insert a GeoMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a GeoMatchSet from AWS WAF (see DeleteGeoMatchSet). GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets. + public let geoMatchSetId: String + + public init(geoMatchConstraints: [GeoMatchConstraint], name: String? = nil, geoMatchSetId: String) { + self.geoMatchConstraints = geoMatchConstraints + self.name = name + self.geoMatchSetId = geoMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case geoMatchConstraints = "GeoMatchConstraints" + case name = "Name" + case geoMatchSetId = "GeoMatchSetId" + } + } + + public struct RuleGroupUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Action", required: true, type: .enum), + AWSShapeMember(label: "ActivatedRule", required: true, type: .structure) + ] + /// Specify INSERT to add an ActivatedRule to a RuleGroup. Use DELETE to remove an ActivatedRule from a RuleGroup. + public let action: ChangeAction + /// The ActivatedRule object specifies a Rule that you want to insert or delete, the priority of the Rule in the WebACL, and the action that you want AWS WAF to take when a web request matches the Rule (ALLOW, BLOCK, or COUNT). + public let activatedRule: ActivatedRule + + public init(action: ChangeAction, activatedRule: ActivatedRule) { + self.action = action + self.activatedRule = activatedRule + } + + private enum CodingKeys: String, CodingKey { + case action = "Action" + case activatedRule = "ActivatedRule" + } + } + public struct CreateRateBasedRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: true, type: .string), AWSShapeMember(label: "RateLimit", required: true, type: .long), AWSShapeMember(label: "ChangeToken", required: true, type: .string), @@ -2674,24 +4105,50 @@ extension WafRegional { } } - public struct DeleteSqlInjectionMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string) + public struct ListRegexPatternSetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// The ChangeToken that you used to submit the DeleteSqlInjectionMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + /// Specifies the number of RegexPatternSet objects that you want AWS WAF to return for this request. If you have more RegexPatternSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RegexPatternSet objects. + public let limit: Int32? + /// If you specify a value for Limit and you have more RegexPatternSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of RegexPatternSet objects. For the second and subsequent ListRegexPatternSets requests, specify the value of NextMarker from the previous response to get information about another batch of RegexPatternSet objects. + public let nextMarker: String? + + public init(limit: Int32? = nil, nextMarker: String? = nil) { + self.limit = limit + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case nextMarker = "NextMarker" + } + } + + public struct CreateGeoMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "GeoMatchSet", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. public let changeToken: String? + /// The GeoMatchSet returned in the CreateGeoMatchSet response. The GeoMatchSet contains no GeoMatchConstraints. + public let geoMatchSet: GeoMatchSet? - public init(changeToken: String? = nil) { + public init(changeToken: String? = nil, geoMatchSet: GeoMatchSet? = nil) { self.changeToken = changeToken + self.geoMatchSet = geoMatchSet } private enum CodingKeys: String, CodingKey { case changeToken = "ChangeToken" + case geoMatchSet = "GeoMatchSet" } } public struct GetSampledRequestsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PopulationSize", required: false, type: .long), AWSShapeMember(label: "SampledRequests", required: false, type: .list), AWSShapeMember(label: "TimeWindow", required: false, type: .structure) @@ -2716,8 +4173,24 @@ extension WafRegional { } } + public struct DeleteSqlInjectionMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the DeleteSqlInjectionMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct DeleteXssMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteXssMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -2733,7 +4206,7 @@ extension WafRegional { } public struct XssMatchSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "XssMatchTuples", required: true, type: .list) @@ -2759,7 +4232,7 @@ extension WafRegional { } public struct GetRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleId", required: true, type: .string) ] /// The RuleId of the Rule that you want to get. RuleId is returned by CreateRule and by ListRules. @@ -2774,8 +4247,34 @@ extension WafRegional { } } + public struct SubscribedRuleGroupSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetricName", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) + ] + /// A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup. + public let metricName: String + /// A friendly name or description of the RuleGroup. You can't change the name of a RuleGroup after you create it. + public let name: String + /// A unique identifier for a RuleGroup. + public let ruleGroupId: String + + public init(metricName: String, name: String, ruleGroupId: String) { + self.metricName = metricName + self.name = name + self.ruleGroupId = ruleGroupId + } + + private enum CodingKeys: String, CodingKey { + case metricName = "MetricName" + case name = "Name" + case ruleGroupId = "RuleGroupId" + } + } + public struct WebACL: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: false, type: .string), AWSShapeMember(label: "DefaultAction", required: true, type: .structure), AWSShapeMember(label: "Rules", required: true, type: .list), @@ -2810,8 +4309,24 @@ extension WafRegional { } } + public struct GetGeoMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GeoMatchSetId", required: true, type: .string) + ] + /// The GeoMatchSetId of the GeoMatchSet that you want to get. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets. + public let geoMatchSetId: String + + public init(geoMatchSetId: String) { + self.geoMatchSetId = geoMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case geoMatchSetId = "GeoMatchSetId" + } + } + public struct SqlInjectionMatchSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string), AWSShapeMember(label: "SqlInjectionMatchTuples", required: true, type: .list), AWSShapeMember(label: "Name", required: false, type: .string) diff --git a/Sources/AWSSDKSwift/Services/waf/Waf_API.swift b/Sources/AWSSDKSwift/Services/waf/Waf_API.swift index 52d21ee22ec..6f62a4c5012 100644 --- a/Sources/AWSSDKSwift/Services/waf/Waf_API.swift +++ b/Sources/AWSSDKSwift/Services/waf/Waf_API.swift @@ -27,29 +27,19 @@ public struct Waf { ) } - /// Returns an array of SizeConstraintSetSummary objects. - public func listSizeConstraintSets(_ input: ListSizeConstraintSetsRequest) throws -> ListSizeConstraintSetsResponse { - return try client.send(operation: "ListSizeConstraintSets", path: "/", httpMethod: "POST", input: input) - } - - /// Returns an array of RuleSummary objects. - public func listRules(_ input: ListRulesRequest) throws -> ListRulesResponse { - return try client.send(operation: "ListRules", path: "/", httpMethod: "POST", input: input) - } - /// Returns an array of WebACLSummary objects in the response. public func listWebACLs(_ input: ListWebACLsRequest) throws -> ListWebACLsResponse { return try client.send(operation: "ListWebACLs", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of ByteMatchSetSummary objects. - public func listByteMatchSets(_ input: ListByteMatchSetsRequest) throws -> ListByteMatchSetsResponse { - return try client.send(operation: "ListByteMatchSets", path: "/", httpMethod: "POST", input: input) + /// Returns an array of SizeConstraintSetSummary objects. + public func listSizeConstraintSets(_ input: ListSizeConstraintSetsRequest) throws -> ListSizeConstraintSetsResponse { + return try client.send(operation: "ListSizeConstraintSets", path: "/", httpMethod: "POST", input: input) } - /// Creates an IPSet, which you use to specify which web requests you want to allow or block based on the IP addresses that the requests originate from. For example, if you're receiving a lot of requests from one or more individual IP addresses or one or more ranges of IP addresses and you want to block the requests, you can create an IPSet that contains those IP addresses and then configure AWS WAF to block the requests. To create and configure an IPSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateIPSet request. Submit a CreateIPSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request. Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func createIPSet(_ input: CreateIPSetRequest) throws -> CreateIPSetResponse { - return try client.send(operation: "CreateIPSet", path: "/", httpMethod: "POST", input: input) + /// Permanently deletes a WebACL. You can't delete a WebACL if it still contains any Rules. To delete a WebACL, perform the following steps: Update the WebACL to remove Rules, if any. For more information, see UpdateWebACL. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteWebACL request. Submit a DeleteWebACL request. + public func deleteWebACL(_ input: DeleteWebACLRequest) throws -> DeleteWebACLResponse { + return try client.send(operation: "DeleteWebACL", path: "/", httpMethod: "POST", input: input) } /// Inserts or deletes ByteMatchTuple objects (filters) in a ByteMatchSet. For each ByteMatchTuple object, you specify the following values: Whether to insert or delete the object from the array. If you want to change a ByteMatchSetUpdate object, you delete the existing object and add a new one. The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the User-Agent header. The bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to look for. For more information, including how you specify the values for the AWS WAF API and the AWS CLI or SDKs, see TargetString in the ByteMatchTuple data type. Where to look, such as at the beginning or the end of a query string. Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. For example, you can add a ByteMatchSetUpdate object that matches web requests in which User-Agent headers contain the string BadBot. You can then configure AWS WAF to block those requests. To create and configure a ByteMatchSet, perform the following steps: Create a ByteMatchSet. For more information, see CreateByteMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateByteMatchSet request. Submit an UpdateByteMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. @@ -67,9 +57,9 @@ public struct Waf { return try client.send(operation: "CreateByteMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of RuleSummary objects. - public func listRateBasedRules(_ input: ListRateBasedRulesRequest) throws -> ListRateBasedRulesResponse { - return try client.send(operation: "ListRateBasedRules", path: "/", httpMethod: "POST", input: input) + /// Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies web requests that you want to allow, block, or count. When you update a WebACL, you specify the following values: A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the Rules in a WebACL. The Rules that you want to add and/or delete. If you want to replace one Rule with another, you delete the existing Rule and add the new one. For each Rule, whether you want AWS WAF to allow requests, block requests, or count requests that match the conditions in the Rule. The order in which you want AWS WAF to evaluate the Rules in a WebACL. If you add more than one Rule to a WebACL, AWS WAF evaluates each request against the Rules in order based on the value of Priority. (The Rule that has the lowest value for Priority is evaluated first.) When a web request matches all of the predicates (such as ByteMatchSets and IPSets) in a Rule, AWS WAF immediately takes the corresponding action, allow or block, and doesn't evaluate the request against the remaining Rules in the WebACL, if any. To create and configure a WebACL, perform the following steps: Create and update the predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule. Create a WebACL. See CreateWebACL. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution. Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the rule type when first creating the rule, the UpdateWebACL request will fail because the request tries to add a REGULAR rule (the default rule type) with the specified ID, which does not exist. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateWebACL(_ input: UpdateWebACLRequest) throws -> UpdateWebACLResponse { + return try client.send(operation: "UpdateWebACL", path: "/", httpMethod: "POST", input: input) } /// Returns the status of a ChangeToken that you got by calling GetChangeToken. ChangeTokenStatus is one of the following values: PROVISIONED: You requested the change token by calling GetChangeToken, but you haven't used it yet in a call to create, update, or delete an AWS WAF object. PENDING: AWS WAF is propagating the create, update, or delete request to all AWS WAF servers. IN_SYNC: Propagation is complete. @@ -77,11 +67,6 @@ public struct Waf { return try client.send(operation: "GetChangeTokenStatus", path: "/", httpMethod: "POST", input: input) } - /// Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies web requests that you want to allow, block, or count. When you update a WebACL, you specify the following values: A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the Rules in a WebACL. The Rules that you want to add and/or delete. If you want to replace one Rule with another, you delete the existing Rule and add the new one. For each Rule, whether you want AWS WAF to allow requests, block requests, or count requests that match the conditions in the Rule. The order in which you want AWS WAF to evaluate the Rules in a WebACL. If you add more than one Rule to a WebACL, AWS WAF evaluates each request against the Rules in order based on the value of Priority. (The Rule that has the lowest value for Priority is evaluated first.) When a web request matches all of the predicates (such as ByteMatchSets and IPSets) in a Rule, AWS WAF immediately takes the corresponding action, allow or block, and doesn't evaluate the request against the remaining Rules in the WebACL, if any. To create and configure a WebACL, perform the following steps: Create and update the predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule. Create a WebACL. See CreateWebACL. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution. Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the rule type when first creating the rule, the UpdateWebACL request will fail because the request tries to add a REGULAR rule (the default rule type) with the specified ID, which does not exist. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func updateWebACL(_ input: UpdateWebACLRequest) throws -> UpdateWebACLResponse { - return try client.send(operation: "UpdateWebACL", path: "/", httpMethod: "POST", input: input) - } - /// Gets detailed information about a specified number of requests--a sample--that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received during a time range that you choose. You can specify a sample size of up to 500 requests, and you can specify any time range in the previous three hours. GetSampledRequests returns a time range, which is usually the time range that you specified. However, if your resource (such as a CloudFront distribution) received 5,000 requests before the specified time range elapsed, GetSampledRequests returns an updated time range. This new time range indicates the actual period during which AWS WAF selected the requests in the sample. public func getSampledRequests(_ input: GetSampledRequestsRequest) throws -> GetSampledRequestsResponse { return try client.send(operation: "GetSampledRequests", path: "/", httpMethod: "POST", input: input) @@ -97,19 +82,9 @@ public struct Waf { return try client.send(operation: "UpdateRule", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of IP addresses currently being blocked by the RateBasedRule that is specified by the RuleId. The maximum number of managed keys that will be blocked is 10,000. If more than 10,000 addresses exceed the rate limit, the 10,000 addresses with the highest rates will be blocked. - public func getRateBasedRuleManagedKeys(_ input: GetRateBasedRuleManagedKeysRequest) throws -> GetRateBasedRuleManagedKeysResponse { - return try client.send(operation: "GetRateBasedRuleManagedKeys", path: "/", httpMethod: "POST", input: input) - } - - /// Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to block. If you add more than one predicate to a Rule, a request must match all of the specifications to be allowed or blocked. For example, suppose you add the following to a Rule: An IPSet that matches the IP address 192.0.2.44/32 A ByteMatchSet that matches BadBot in the User-Agent header You then add the Rule to a WebACL and specify that you want to blocks requests that satisfy the Rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. To create and configure a Rule, perform the following steps: Create and update the predicates that you want to include in the Rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request. Submit a CreateRule request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request. Submit an UpdateRule request to specify the predicates that you want to include in the Rule. Create and update a WebACL that contains the Rule. For more information, see CreateWebACL. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func createRule(_ input: CreateRuleRequest) throws -> CreateRuleResponse { - return try client.send(operation: "CreateRule", path: "/", httpMethod: "POST", input: input) - } - - /// Returns the RateBasedRule that is specified by the RuleId that you included in the GetRateBasedRule request. - public func getRateBasedRule(_ input: GetRateBasedRuleRequest) throws -> GetRateBasedRuleResponse { - return try client.send(operation: "GetRateBasedRule", path: "/", httpMethod: "POST", input: input) + /// Returns the IPSet that is specified by IPSetId. + public func getIPSet(_ input: GetIPSetRequest) throws -> GetIPSetResponse { + return try client.send(operation: "GetIPSet", path: "/", httpMethod: "POST", input: input) } /// Permanently deletes a ByteMatchSet. You can't delete a ByteMatchSet if it's still used in any Rules or if it still includes any ByteMatchTuple objects (any filters). If you just want to remove a ByteMatchSet from a Rule, use UpdateRule. To permanently delete a ByteMatchSet, perform the following steps: Update the ByteMatchSet to remove filters, if any. For more information, see UpdateByteMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteByteMatchSet request. Submit a DeleteByteMatchSet request. @@ -117,14 +92,14 @@ public struct Waf { return try client.send(operation: "DeleteByteMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Returns the IPSet that is specified by IPSetId. - public func getIPSet(_ input: GetIPSetRequest) throws -> GetIPSetResponse { - return try client.send(operation: "GetIPSet", path: "/", httpMethod: "POST", input: input) + /// Returns the RegexMatchSet specified by RegexMatchSetId. + public func getRegexMatchSet(_ input: GetRegexMatchSetRequest) throws -> GetRegexMatchSetResponse { + return try client.send(operation: "GetRegexMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Returns an array of XssMatchSet objects. - public func listXssMatchSets(_ input: ListXssMatchSetsRequest) throws -> ListXssMatchSetsResponse { - return try client.send(operation: "ListXssMatchSets", path: "/", httpMethod: "POST", input: input) + /// Creates a RuleGroup. A rule group is a collection of predefined rules that you add to a web ACL. You use UpdateRuleGroup to add rules to the rule group. Rule groups are subject to the following limits: Three rule groups per account. You can request an increase to this limit by contacting customer support. One rule group per web ACL. Ten rules per rule group. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createRuleGroup(_ input: CreateRuleGroupRequest) throws -> CreateRuleGroupResponse { + return try client.send(operation: "CreateRuleGroup", path: "/", httpMethod: "POST", input: input) } /// Permanently deletes a SizeConstraintSet. You can't delete a SizeConstraintSet if it's still used in any Rules or if it still includes any SizeConstraint objects (any filters). If you just want to remove a SizeConstraintSet from a Rule, use UpdateRule. To permanently delete a SizeConstraintSet, perform the following steps: Update the SizeConstraintSet to remove filters, if any. For more information, see UpdateSizeConstraintSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteSizeConstraintSet request. Submit a DeleteSizeConstraintSet request. @@ -132,6 +107,11 @@ public struct Waf { return try client.send(operation: "DeleteSizeConstraintSet", path: "/", httpMethod: "POST", input: input) } + /// Returns the GeoMatchSet that is specified by GeoMatchSetId. + public func getGeoMatchSet(_ input: GetGeoMatchSetRequest) throws -> GetGeoMatchSetResponse { + return try client.send(operation: "GetGeoMatchSet", path: "/", httpMethod: "POST", input: input) + } + /// Returns an array of IPSetSummary objects in the response. public func listIPSets(_ input: ListIPSetsRequest) throws -> ListIPSetsResponse { return try client.send(operation: "ListIPSets", path: "/", httpMethod: "POST", input: input) @@ -142,11 +122,6 @@ public struct Waf { return try client.send(operation: "GetByteMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify the part of a web request that you want AWS WAF to check for length, such as the length of the User-Agent header or the length of the query string. For example, you can create a SizeConstraintSet that matches any requests that have a query string that is longer than 100 bytes. You can then configure AWS WAF to reject those requests. To create and configure a SizeConstraintSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateSizeConstraintSet request. Submit a CreateSizeConstraintSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateSizeConstraintSet request. Submit an UpdateSizeConstraintSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func createSizeConstraintSet(_ input: CreateSizeConstraintSetRequest) throws -> CreateSizeConstraintSetResponse { - return try client.send(operation: "CreateSizeConstraintSet", path: "/", httpMethod: "POST", input: input) - } - /// Returns an array of SqlInjectionMatchSet objects. public func listSqlInjectionMatchSets(_ input: ListSqlInjectionMatchSetsRequest) throws -> ListSqlInjectionMatchSetsResponse { return try client.send(operation: "ListSqlInjectionMatchSets", path: "/", httpMethod: "POST", input: input) @@ -157,9 +132,9 @@ public struct Waf { return try client.send(operation: "UpdateSizeConstraintSet", path: "/", httpMethod: "POST", input: input) } - /// Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies the maximum number of requests that AWS WAF allows from a specified IP address in a five-minute period. The RateBasedRule also contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to count or block if these requests exceed the RateLimit. If you add more than one predicate to a RateBasedRule, a request not only must exceed the RateLimit, but it also must match all the specifications to be counted or blocked. For example, suppose you add the following to a RateBasedRule: An IPSet that matches the IP address 192.0.2.44/32 A ByteMatchSet that matches BadBot in the User-Agent header Further, you specify a RateLimit of 15,000. You then add the RateBasedRule to a WebACL and specify that you want to block requests that meet the conditions in the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. Further, requests that match these two conditions must be received at a rate of more than 15,000 requests every five minutes. If both conditions are met and the rate is exceeded, AWS WAF blocks the requests. If the rate drops below 15,000 for a five-minute period, AWS WAF no longer blocks the requests. As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a RateBasedRule: A ByteMatchSet with FieldToMatch of URI A PositionalConstraint of STARTS_WITH A TargetString of login Further, you specify a RateLimit of 15,000. By adding this RateBasedRule to a WebACL, you could limit requests to your login page without affecting the rest of your site. To create and configure a RateBasedRule, perform the following steps: Create and update the predicates that you want to include in the rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request. Submit a CreateRateBasedRule request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request. Submit an UpdateRateBasedRule request to specify the predicates that you want to include in the rule. Create and update a WebACL that contains the RateBasedRule. For more information, see CreateWebACL. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func createRateBasedRule(_ input: CreateRateBasedRuleRequest) throws -> CreateRateBasedRuleResponse { - return try client.send(operation: "CreateRateBasedRule", path: "/", httpMethod: "POST", input: input) + /// Creates an GeoMatchSet, which you use to specify which web requests you want to allow or block based on the country that the requests originate from. For example, if you're receiving a lot of requests from one or more countries and you want to block the requests, you can create an GeoMatchSet that contains those countries and then configure AWS WAF to block the requests. To create and configure a GeoMatchSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateGeoMatchSet request. Submit a CreateGeoMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateGeoMatchSet request. Submit an UpdateGeoMatchSetSet request to specify the countries that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createGeoMatchSet(_ input: CreateGeoMatchSetRequest) throws -> CreateGeoMatchSetResponse { + return try client.send(operation: "CreateGeoMatchSet", path: "/", httpMethod: "POST", input: input) } /// Inserts or deletes XssMatchTuple objects (filters) in an XssMatchSet. For each XssMatchTuple object, you specify the following values: Action: Whether to insert the object into or delete the object from the array. To change a XssMatchTuple, you delete the existing object and add a new one. FieldToMatch: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to inspect a header, the name of the header. TextTransformation: Which text transformation, if any, to perform on the web request before inspecting the request for cross-site scripting attacks. You use XssMatchSet objects to specify which CloudFront requests you want to allow, block, or count. For example, if you're receiving requests that contain cross-site scripting attacks in the request body and you want to block the requests, you can create an XssMatchSet with the applicable settings, and then configure AWS WAF to block the requests. To create and configure an XssMatchSet, perform the following steps: Submit a CreateXssMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request. Submit an UpdateXssMatchSet request to specify the parts of web requests that you want AWS WAF to inspect for cross-site scripting attacks. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. @@ -172,11 +147,6 @@ public struct Waf { return try client.send(operation: "UpdateSqlInjectionMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Creates a WebACL, which contains the Rules that identify the CloudFront web requests that you want to allow, block, or count. AWS WAF evaluates Rules in order based on the value of Priority for each Rule. You also specify a default action, either ALLOW or BLOCK. If a web request doesn't match any of the Rules in a WebACL, AWS WAF responds to the request with the default action. To create and configure a WebACL, perform the following steps: Create and update the ByteMatchSet objects and other predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateWebACL request. Submit a CreateWebACL request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution. For more information about how to use the AWS WAF API, see the AWS WAF Developer Guide. - public func createWebACL(_ input: CreateWebACLRequest) throws -> CreateWebACLResponse { - return try client.send(operation: "CreateWebACL", path: "/", httpMethod: "POST", input: input) - } - /// Inserts or deletes Predicate objects in a rule and updates the RateLimit in the rule. Each Predicate object identifies a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests that you want to block or count. The RateLimit specifies the number of requests every five minutes that triggers the rule. If you add more than one predicate to a RateBasedRule, a request must match all the predicates and exceed the RateLimit to be counted or blocked. For example, suppose you add the following to a RateBasedRule: An IPSet that matches the IP address 192.0.2.44/32 A ByteMatchSet that matches BadBot in the User-Agent header Further, you specify a RateLimit of 15,000. You then add the RateBasedRule to a WebACL and specify that you want to block requests that satisfy the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. Further, requests that match these two conditions much be received at a rate of more than 15,000 every five minutes. If the rate drops below this limit, AWS WAF no longer blocks the requests. As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a RateBasedRule: A ByteMatchSet with FieldToMatch of URI A PositionalConstraint of STARTS_WITH A TargetString of login Further, you specify a RateLimit of 15,000. By adding this RateBasedRule to a WebACL, you could limit requests to your login page without affecting the rest of your site. public func updateRateBasedRule(_ input: UpdateRateBasedRuleRequest) throws -> UpdateRateBasedRuleResponse { return try client.send(operation: "UpdateRateBasedRule", path: "/", httpMethod: "POST", input: input) @@ -192,14 +162,14 @@ public struct Waf { return try client.send(operation: "GetWebACL", path: "/", httpMethod: "POST", input: input) } - /// Permanently deletes an XssMatchSet. You can't delete an XssMatchSet if it's still used in any Rules or if it still contains any XssMatchTuple objects. If you just want to remove an XssMatchSet from a Rule, use UpdateRule. To permanently delete an XssMatchSet from AWS WAF, perform the following steps: Update the XssMatchSet to remove filters, if any. For more information, see UpdateXssMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteXssMatchSet request. Submit a DeleteXssMatchSet request. - public func deleteXssMatchSet(_ input: DeleteXssMatchSetRequest) throws -> DeleteXssMatchSetResponse { - return try client.send(operation: "DeleteXssMatchSet", path: "/", httpMethod: "POST", input: input) + /// Returns an array of RuleGroup objects that you are subscribed to. + public func listSubscribedRuleGroups(_ input: ListSubscribedRuleGroupsRequest) throws -> ListSubscribedRuleGroupsResponse { + return try client.send(operation: "ListSubscribedRuleGroups", path: "/", httpMethod: "POST", input: input) } - /// Permanently deletes an IPSet. You can't delete an IPSet if it's still used in any Rules or if it still includes any IP addresses. If you just want to remove an IPSet from a Rule, use UpdateRule. To permanently delete an IPSet from AWS WAF, perform the following steps: Update the IPSet to remove IP address ranges, if any. For more information, see UpdateIPSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteIPSet request. Submit a DeleteIPSet request. - public func deleteIPSet(_ input: DeleteIPSetRequest) throws -> DeleteIPSetResponse { - return try client.send(operation: "DeleteIPSet", path: "/", httpMethod: "POST", input: input) + /// Inserts or deletes GeoMatchConstraint objects in an GeoMatchSet. For each GeoMatchConstraint object, you specify the following values: Whether to insert or delete the object from the array. If you want to change an GeoMatchConstraint object, you delete the existing object and add a new one. The Type. The only valid value for Type is Country. The Value, which is a two character code for the country to add to the GeoMatchConstraint object. Valid codes are listed in GeoMatchConstraint$Value. To create and configure an GeoMatchSet, perform the following steps: Submit a CreateGeoMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateGeoMatchSet request. Submit an UpdateGeoMatchSet request to specify the country that you want AWS WAF to watch for. When you update an GeoMatchSet, you specify the country that you want to add and/or the country that you want to delete. If you want to change a country, you delete the existing country and add the new one. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateGeoMatchSet(_ input: UpdateGeoMatchSetRequest) throws -> UpdateGeoMatchSetResponse { + return try client.send(operation: "UpdateGeoMatchSet", path: "/", httpMethod: "POST", input: input) } /// When you want to create, update, or delete AWS WAF objects, get a change token and include the change token in the create, update, or delete request. Change tokens ensure that your application doesn't submit conflicting requests to AWS WAF. Each create, update, or delete request must use a unique change token. If your application submits a GetChangeToken request and then submits a second GetChangeToken request before submitting a create, update, or delete request, the second GetChangeToken request returns the same value as the first GetChangeToken request. When you use a change token in a create, update, or delete request, the status of the change token changes to PENDING, which indicates that AWS WAF is propagating the change to all AWS WAF servers. Use GetChangeTokenStatus to determine the status of your change token. @@ -212,14 +182,9 @@ public struct Waf { return try client.send(operation: "DeleteRule", path: "/", httpMethod: "POST", input: input) } - /// Returns the SizeConstraintSet specified by SizeConstraintSetId. - public func getSizeConstraintSet(_ input: GetSizeConstraintSetRequest) throws -> GetSizeConstraintSetResponse { - return try client.send(operation: "GetSizeConstraintSet", path: "/", httpMethod: "POST", input: input) - } - - /// Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId. - public func getSqlInjectionMatchSet(_ input: GetSqlInjectionMatchSetRequest) throws -> GetSqlInjectionMatchSetResponse { - return try client.send(operation: "GetSqlInjectionMatchSet", path: "/", httpMethod: "POST", input: input) + /// Permanently deletes a RegexMatchSet. You can't delete a RegexMatchSet if it's still used in any Rules or if it still includes any RegexMatchTuples objects (any filters). If you just want to remove a RegexMatchSet from a Rule, use UpdateRule. To permanently delete a RegexMatchSet, perform the following steps: Update the RegexMatchSet to remove filters, if any. For more information, see UpdateRegexMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRegexMatchSet request. Submit a DeleteRegexMatchSet request. + public func deleteRegexMatchSet(_ input: DeleteRegexMatchSetRequest) throws -> DeleteRegexMatchSetResponse { + return try client.send(operation: "DeleteRegexMatchSet", path: "/", httpMethod: "POST", input: input) } /// Returns the Rule that is specified by the RuleId that you included in the GetRule request. @@ -227,9 +192,9 @@ public struct Waf { return try client.send(operation: "GetRule", path: "/", httpMethod: "POST", input: input) } - /// Creates an XssMatchSet, which you use to allow, block, or count requests that contain cross-site scripting attacks in the specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings. To create and configure an XssMatchSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateXssMatchSet request. Submit a CreateXssMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateXssMatchSet request. Submit an UpdateXssMatchSet request to specify the parts of web requests in which you want to allow, block, or count cross-site scripting attacks. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - public func createXssMatchSet(_ input: CreateXssMatchSetRequest) throws -> CreateXssMatchSetResponse { - return try client.send(operation: "CreateXssMatchSet", path: "/", httpMethod: "POST", input: input) + /// Returns the RuleGroup that is specified by the RuleGroupId that you included in the GetRuleGroup request. To view the rules in a rule group, use ListActivatedRulesInRuleGroup. + public func getRuleGroup(_ input: GetRuleGroupRequest) throws -> GetRuleGroupResponse { + return try client.send(operation: "GetRuleGroup", path: "/", httpMethod: "POST", input: input) } /// Permanently deletes a RateBasedRule. You can't delete a rule if it's still used in any WebACL objects or if it still includes any predicates, such as ByteMatchSet objects. If you just want to remove a rule from a WebACL, use UpdateWebACL. To permanently delete a RateBasedRule from AWS WAF, perform the following steps: Update the RateBasedRule to remove predicates, if any. For more information, see UpdateRateBasedRule. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRateBasedRule request. Submit a DeleteRateBasedRule request. @@ -237,14 +202,159 @@ public struct Waf { return try client.send(operation: "DeleteRateBasedRule", path: "/", httpMethod: "POST", input: input) } + /// Returns the RegexPatternSet specified by RegexPatternSetId. + public func getRegexPatternSet(_ input: GetRegexPatternSetRequest) throws -> GetRegexPatternSetResponse { + return try client.send(operation: "GetRegexPatternSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of ActivatedRule objects. + public func listActivatedRulesInRuleGroup(_ input: ListActivatedRulesInRuleGroupRequest) throws -> ListActivatedRulesInRuleGroupResponse { + return try client.send(operation: "ListActivatedRulesInRuleGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of RegexPatternSetSummary objects. + public func listRegexPatternSets(_ input: ListRegexPatternSetsRequest) throws -> ListRegexPatternSetsResponse { + return try client.send(operation: "ListRegexPatternSets", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of ByteMatchSetSummary objects. + public func listByteMatchSets(_ input: ListByteMatchSetsRequest) throws -> ListByteMatchSetsResponse { + return try client.send(operation: "ListByteMatchSets", path: "/", httpMethod: "POST", input: input) + } + + /// Permanently deletes a GeoMatchSet. You can't delete a GeoMatchSet if it's still used in any Rules or if it still includes any countries. If you just want to remove a GeoMatchSet from a Rule, use UpdateRule. To permanently delete a GeoMatchSet from AWS WAF, perform the following steps: Update the GeoMatchSet to remove any countries. For more information, see UpdateGeoMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteGeoMatchSet request. Submit a DeleteGeoMatchSet request. + public func deleteGeoMatchSet(_ input: DeleteGeoMatchSetRequest) throws -> DeleteGeoMatchSetResponse { + return try client.send(operation: "DeleteGeoMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of RuleSummary objects. + public func listRules(_ input: ListRulesRequest) throws -> ListRulesResponse { + return try client.send(operation: "ListRules", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an IPSet, which you use to specify which web requests you want to allow or block based on the IP addresses that the requests originate from. For example, if you're receiving a lot of requests from one or more individual IP addresses or one or more ranges of IP addresses and you want to block the requests, you can create an IPSet that contains those IP addresses and then configure AWS WAF to block the requests. To create and configure an IPSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateIPSet request. Submit a CreateIPSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request. Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createIPSet(_ input: CreateIPSetRequest) throws -> CreateIPSetResponse { + return try client.send(operation: "CreateIPSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of RuleGroup objects. + public func listRuleGroups(_ input: ListRuleGroupsRequest) throws -> ListRuleGroupsResponse { + return try client.send(operation: "ListRuleGroups", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a RegexMatchSet. You then use UpdateRegexMatchSet to identify the part of a web request that you want AWS WAF to inspect, such as the values of the User-Agent header or the query string. For example, you can create a RegexMatchSet that contains a RegexMatchTuple that looks for any requests with User-Agent headers that match a RegexPatternSet with pattern B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests. To create and configure a RegexMatchSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRegexMatchSet request. Submit a CreateRegexMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexMatchSet request. Submit an UpdateRegexMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value, using a RegexPatternSet, that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createRegexMatchSet(_ input: CreateRegexMatchSetRequest) throws -> CreateRegexMatchSetResponse { + return try client.send(operation: "CreateRegexMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of RuleSummary objects. + public func listRateBasedRules(_ input: ListRateBasedRulesRequest) throws -> ListRateBasedRulesResponse { + return try client.send(operation: "ListRateBasedRules", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of IP addresses currently being blocked by the RateBasedRule that is specified by the RuleId. The maximum number of managed keys that will be blocked is 10,000. If more than 10,000 addresses exceed the rate limit, the 10,000 addresses with the highest rates will be blocked. + public func getRateBasedRuleManagedKeys(_ input: GetRateBasedRuleManagedKeysRequest) throws -> GetRateBasedRuleManagedKeysResponse { + return try client.send(operation: "GetRateBasedRuleManagedKeys", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a RegexPatternSet. You then use UpdateRegexPatternSet to specify the regular expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests. To create and configure a RegexPatternSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRegexPatternSet request. Submit a CreateRegexPatternSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexPatternSet request. Submit an UpdateRegexPatternSet request to specify the string that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createRegexPatternSet(_ input: CreateRegexPatternSetRequest) throws -> CreateRegexPatternSetResponse { + return try client.send(operation: "CreateRegexPatternSet", path: "/", httpMethod: "POST", input: input) + } + + /// Inserts or deletes ActivatedRule objects in a RuleGroup. You can only insert REGULAR rules into a rule group. You can have a maximum of ten rules per rule group. To create and configure a RuleGroup, perform the following steps: Create and update the Rules that you want to include in the RuleGroup. See CreateRule. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRuleGroup request. Submit an UpdateRuleGroup request to add Rules to the RuleGroup. Create and update a WebACL that contains the RuleGroup. See CreateWebACL. If you want to replace one Rule with another, you delete the existing one and add the new one. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateRuleGroup(_ input: UpdateRuleGroupRequest) throws -> UpdateRuleGroupResponse { + return try client.send(operation: "UpdateRuleGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to block. If you add more than one predicate to a Rule, a request must match all of the specifications to be allowed or blocked. For example, suppose you add the following to a Rule: An IPSet that matches the IP address 192.0.2.44/32 A ByteMatchSet that matches BadBot in the User-Agent header You then add the Rule to a WebACL and specify that you want to blocks requests that satisfy the Rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. To create and configure a Rule, perform the following steps: Create and update the predicates that you want to include in the Rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request. Submit a CreateRule request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request. Submit an UpdateRule request to specify the predicates that you want to include in the Rule. Create and update a WebACL that contains the Rule. For more information, see CreateWebACL. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createRule(_ input: CreateRuleRequest) throws -> CreateRuleResponse { + return try client.send(operation: "CreateRule", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the RateBasedRule that is specified by the RuleId that you included in the GetRateBasedRule request. + public func getRateBasedRule(_ input: GetRateBasedRuleRequest) throws -> GetRateBasedRuleResponse { + return try client.send(operation: "GetRateBasedRule", path: "/", httpMethod: "POST", input: input) + } + + /// Inserts or deletes RegexPatternString objects in a RegexPatternSet. For each RegexPatternString object, you specify the following values: Whether to insert or delete the RegexPatternString. The regular expression pattern that you want to insert or delete. For more information, see RegexPatternSet. For example, you can create a RegexPatternString such as B[a@]dB[o0]t. AWS WAF will match this RegexPatternString to: BadBot BadB0t B@dBot B@dB0t To create and configure a RegexPatternSet, perform the following steps: Create a RegexPatternSet. For more information, see CreateRegexPatternSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexPatternSet request. Submit an UpdateRegexPatternSet request to specify the regular expression pattern that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateRegexPatternSet(_ input: UpdateRegexPatternSetRequest) throws -> UpdateRegexPatternSetResponse { + return try client.send(operation: "UpdateRegexPatternSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of XssMatchSet objects. + public func listXssMatchSets(_ input: ListXssMatchSetsRequest) throws -> ListXssMatchSetsResponse { + return try client.send(operation: "ListXssMatchSets", path: "/", httpMethod: "POST", input: input) + } + + /// Inserts or deletes RegexMatchTuple objects (filters) in a RegexMatchSet. For each RegexMatchSetUpdate object, you specify the following values: Whether to insert or delete the object from the array. If you want to change a RegexMatchSetUpdate object, you delete the existing object and add a new one. The part of a web request that you want AWS WAF to inspectupdate, such as a query string or the value of the User-Agent header. The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see RegexPatternSet. Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. For example, you can create a RegexPatternSet that matches any requests with User-Agent headers that contain the string B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests. To create and configure a RegexMatchSet, perform the following steps: Create a RegexMatchSet. For more information, see CreateRegexMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexMatchSet request. Submit an UpdateRegexMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the identifier of the RegexPatternSet that contain the regular expression patters you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func updateRegexMatchSet(_ input: UpdateRegexMatchSetRequest) throws -> UpdateRegexMatchSetResponse { + return try client.send(operation: "UpdateRegexMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify the part of a web request that you want AWS WAF to check for length, such as the length of the User-Agent header or the length of the query string. For example, you can create a SizeConstraintSet that matches any requests that have a query string that is longer than 100 bytes. You can then configure AWS WAF to reject those requests. To create and configure a SizeConstraintSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateSizeConstraintSet request. Submit a CreateSizeConstraintSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateSizeConstraintSet request. Submit an UpdateSizeConstraintSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createSizeConstraintSet(_ input: CreateSizeConstraintSetRequest) throws -> CreateSizeConstraintSetResponse { + return try client.send(operation: "CreateSizeConstraintSet", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies the maximum number of requests that AWS WAF allows from a specified IP address in a five-minute period. The RateBasedRule also contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to count or block if these requests exceed the RateLimit. If you add more than one predicate to a RateBasedRule, a request not only must exceed the RateLimit, but it also must match all the specifications to be counted or blocked. For example, suppose you add the following to a RateBasedRule: An IPSet that matches the IP address 192.0.2.44/32 A ByteMatchSet that matches BadBot in the User-Agent header Further, you specify a RateLimit of 15,000. You then add the RateBasedRule to a WebACL and specify that you want to block requests that meet the conditions in the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. Further, requests that match these two conditions must be received at a rate of more than 15,000 requests every five minutes. If both conditions are met and the rate is exceeded, AWS WAF blocks the requests. If the rate drops below 15,000 for a five-minute period, AWS WAF no longer blocks the requests. As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a RateBasedRule: A ByteMatchSet with FieldToMatch of URI A PositionalConstraint of STARTS_WITH A TargetString of login Further, you specify a RateLimit of 15,000. By adding this RateBasedRule to a WebACL, you could limit requests to your login page without affecting the rest of your site. To create and configure a RateBasedRule, perform the following steps: Create and update the predicates that you want to include in the rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request. Submit a CreateRateBasedRule request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request. Submit an UpdateRateBasedRule request to specify the predicates that you want to include in the rule. Create and update a WebACL that contains the RateBasedRule. For more information, see CreateWebACL. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createRateBasedRule(_ input: CreateRateBasedRuleRequest) throws -> CreateRateBasedRuleResponse { + return try client.send(operation: "CreateRateBasedRule", path: "/", httpMethod: "POST", input: input) + } + + /// Creates a WebACL, which contains the Rules that identify the CloudFront web requests that you want to allow, block, or count. AWS WAF evaluates Rules in order based on the value of Priority for each Rule. You also specify a default action, either ALLOW or BLOCK. If a web request doesn't match any of the Rules in a WebACL, AWS WAF responds to the request with the default action. To create and configure a WebACL, perform the following steps: Create and update the ByteMatchSet objects and other predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateWebACL request. Submit a CreateWebACL request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution. For more information about how to use the AWS WAF API, see the AWS WAF Developer Guide. + public func createWebACL(_ input: CreateWebACLRequest) throws -> CreateWebACLResponse { + return try client.send(operation: "CreateWebACL", path: "/", httpMethod: "POST", input: input) + } + + /// Permanently deletes an XssMatchSet. You can't delete an XssMatchSet if it's still used in any Rules or if it still contains any XssMatchTuple objects. If you just want to remove an XssMatchSet from a Rule, use UpdateRule. To permanently delete an XssMatchSet from AWS WAF, perform the following steps: Update the XssMatchSet to remove filters, if any. For more information, see UpdateXssMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteXssMatchSet request. Submit a DeleteXssMatchSet request. + public func deleteXssMatchSet(_ input: DeleteXssMatchSetRequest) throws -> DeleteXssMatchSetResponse { + return try client.send(operation: "DeleteXssMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Permanently deletes an IPSet. You can't delete an IPSet if it's still used in any Rules or if it still includes any IP addresses. If you just want to remove an IPSet from a Rule, use UpdateRule. To permanently delete an IPSet from AWS WAF, perform the following steps: Update the IPSet to remove IP address ranges, if any. For more information, see UpdateIPSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteIPSet request. Submit a DeleteIPSet request. + public func deleteIPSet(_ input: DeleteIPSetRequest) throws -> DeleteIPSetResponse { + return try client.send(operation: "DeleteIPSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the SizeConstraintSet specified by SizeConstraintSetId. + public func getSizeConstraintSet(_ input: GetSizeConstraintSetRequest) throws -> GetSizeConstraintSetResponse { + return try client.send(operation: "GetSizeConstraintSet", path: "/", httpMethod: "POST", input: input) + } + + /// Creates an XssMatchSet, which you use to allow, block, or count requests that contain cross-site scripting attacks in the specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings. To create and configure an XssMatchSet, perform the following steps: Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateXssMatchSet request. Submit a CreateXssMatchSet request. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateXssMatchSet request. Submit an UpdateXssMatchSet request to specify the parts of web requests in which you want to allow, block, or count cross-site scripting attacks. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. + public func createXssMatchSet(_ input: CreateXssMatchSetRequest) throws -> CreateXssMatchSetResponse { + return try client.send(operation: "CreateXssMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Permanently deletes a RuleGroup. You can't delete a RuleGroup if it's still used in any WebACL objects or if it still includes any rules. If you just want to remove a RuleGroup from a WebACL, use UpdateWebACL. To permanently delete a RuleGroup from AWS WAF, perform the following steps: Update the RuleGroup to remove rules, if any. For more information, see UpdateRuleGroup. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRuleGroup request. Submit a DeleteRuleGroup request. + public func deleteRuleGroup(_ input: DeleteRuleGroupRequest) throws -> DeleteRuleGroupResponse { + return try client.send(operation: "DeleteRuleGroup", path: "/", httpMethod: "POST", input: input) + } + + /// Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId. + public func getSqlInjectionMatchSet(_ input: GetSqlInjectionMatchSetRequest) throws -> GetSqlInjectionMatchSetResponse { + return try client.send(operation: "GetSqlInjectionMatchSet", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of RegexMatchSetSummary objects. + public func listRegexMatchSets(_ input: ListRegexMatchSetsRequest) throws -> ListRegexMatchSetsResponse { + return try client.send(operation: "ListRegexMatchSets", path: "/", httpMethod: "POST", input: input) + } + + /// Returns an array of GeoMatchSetSummary objects in the response. + public func listGeoMatchSets(_ input: ListGeoMatchSetsRequest) throws -> ListGeoMatchSetsResponse { + return try client.send(operation: "ListGeoMatchSets", path: "/", httpMethod: "POST", input: input) + } + /// Permanently deletes a SqlInjectionMatchSet. You can't delete a SqlInjectionMatchSet if it's still used in any Rules or if it still contains any SqlInjectionMatchTuple objects. If you just want to remove a SqlInjectionMatchSet from a Rule, use UpdateRule. To permanently delete a SqlInjectionMatchSet from AWS WAF, perform the following steps: Update the SqlInjectionMatchSet to remove filters, if any. For more information, see UpdateSqlInjectionMatchSet. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteSqlInjectionMatchSet request. Submit a DeleteSqlInjectionMatchSet request. public func deleteSqlInjectionMatchSet(_ input: DeleteSqlInjectionMatchSetRequest) throws -> DeleteSqlInjectionMatchSetResponse { return try client.send(operation: "DeleteSqlInjectionMatchSet", path: "/", httpMethod: "POST", input: input) } - /// Permanently deletes a WebACL. You can't delete a WebACL if it still contains any Rules. To delete a WebACL, perform the following steps: Update the WebACL to remove Rules, if any. For more information, see UpdateWebACL. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteWebACL request. Submit a DeleteWebACL request. - public func deleteWebACL(_ input: DeleteWebACLRequest) throws -> DeleteWebACLResponse { - return try client.send(operation: "DeleteWebACL", path: "/", httpMethod: "POST", input: input) + /// Permanently deletes a RegexPatternSet. You can't delete a RegexPatternSet if it's still used in any RegexMatchSet or if the RegexPatternSet is not empty. + public func deleteRegexPatternSet(_ input: DeleteRegexPatternSetRequest) throws -> DeleteRegexPatternSetResponse { + return try client.send(operation: "DeleteRegexPatternSet", path: "/", httpMethod: "POST", input: input) } diff --git a/Sources/AWSSDKSwift/Services/waf/Waf_Error.swift b/Sources/AWSSDKSwift/Services/waf/Waf_Error.swift index 058ee3412cc..0c82dcc0110 100644 --- a/Sources/AWSSDKSwift/Services/waf/Waf_Error.swift +++ b/Sources/AWSSDKSwift/Services/waf/Waf_Error.swift @@ -7,14 +7,16 @@ public enum WafError: AWSErrorType { case wAFInternalErrorException(message: String?) case wAFInvalidAccountException(message: String?) case wAFStaleDataException(message: String?) - case wAFDisallowedNameException(message: String?) - case wAFInvalidParameterException(message: String?) - case wAFLimitsExceededException(message: String?) - case wAFInvalidOperationException(message: String?) - case wAFNonexistentContainerException(message: String?) case wAFNonexistentItemException(message: String?) case wAFReferencedItemException(message: String?) case wAFNonEmptyEntityException(message: String?) + case wAFInvalidOperationException(message: String?) + case wAFInvalidParameterException(message: String?) + case wAFNonexistentContainerException(message: String?) + case wAFLimitsExceededException(message: String?) + case wAFDisallowedNameException(message: String?) + case wAFSubscriptionNotFoundException(message: String?) + case wAFInvalidRegexPatternException(message: String?) } extension WafError { @@ -30,22 +32,26 @@ extension WafError { self = .wAFInvalidAccountException(message: message) case "WAFStaleDataException": self = .wAFStaleDataException(message: message) - case "WAFDisallowedNameException": - self = .wAFDisallowedNameException(message: message) - case "WAFInvalidParameterException": - self = .wAFInvalidParameterException(message: message) - case "WAFLimitsExceededException": - self = .wAFLimitsExceededException(message: message) - case "WAFInvalidOperationException": - self = .wAFInvalidOperationException(message: message) - case "WAFNonexistentContainerException": - self = .wAFNonexistentContainerException(message: message) case "WAFNonexistentItemException": self = .wAFNonexistentItemException(message: message) case "WAFReferencedItemException": self = .wAFReferencedItemException(message: message) case "WAFNonEmptyEntityException": self = .wAFNonEmptyEntityException(message: message) + case "WAFInvalidOperationException": + self = .wAFInvalidOperationException(message: message) + case "WAFInvalidParameterException": + self = .wAFInvalidParameterException(message: message) + case "WAFNonexistentContainerException": + self = .wAFNonexistentContainerException(message: message) + case "WAFLimitsExceededException": + self = .wAFLimitsExceededException(message: message) + case "WAFDisallowedNameException": + self = .wAFDisallowedNameException(message: message) + case "WAFSubscriptionNotFoundException": + self = .wAFSubscriptionNotFoundException(message: message) + case "WAFInvalidRegexPatternException": + self = .wAFInvalidRegexPatternException(message: message) default: return nil } diff --git a/Sources/AWSSDKSwift/Services/waf/Waf_Shapes.swift b/Sources/AWSSDKSwift/Services/waf/Waf_Shapes.swift index 57b96643124..3cfcd07b2ac 100644 --- a/Sources/AWSSDKSwift/Services/waf/Waf_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/waf/Waf_Shapes.swift @@ -5,14 +5,61 @@ import AWSSDKSwiftCore extension Waf { + public struct RegexPatternSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "RegexPatternStrings", required: true, type: .list) + ] + /// The identifier for the RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet, update a RegexPatternSet, remove a RegexPatternSet from a RegexMatchSet, and delete a RegexPatternSet from AWS WAF. RegexMatchSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + /// A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet. + public let name: String? + /// Specifies the regular expression (regex) patterns that you want AWS WAF to search for, such as B[a@]dB[o0]t. + public let regexPatternStrings: [String] + + public init(regexPatternSetId: String, name: String? = nil, regexPatternStrings: [String]) { + self.regexPatternSetId = regexPatternSetId + self.name = name + self.regexPatternStrings = regexPatternStrings + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSetId = "RegexPatternSetId" + case name = "Name" + case regexPatternStrings = "RegexPatternStrings" + } + } + public enum ChangeAction: String, CustomStringConvertible, Codable { case insert = "INSERT" case delete = "DELETE" public var description: String { return self.rawValue } } + public struct RuleGroupSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) + ] + /// A friendly name or description of the RuleGroup. You can't change the name of a RuleGroup after you create it. + public let name: String + /// A unique identifier for a RuleGroup. You use RuleGroupId to get more information about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup), insert a RuleGroup into a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a RuleGroup from AWS WAF (see DeleteRuleGroup). RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups. + public let ruleGroupId: String + + public init(name: String, ruleGroupId: String) { + self.name = name + self.ruleGroupId = ruleGroupId + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case ruleGroupId = "RuleGroupId" + } + } + public struct UpdateSqlInjectionMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list) @@ -38,7 +85,7 @@ extension Waf { } public struct Rule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: false, type: .string), AWSShapeMember(label: "RuleId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -69,7 +116,7 @@ extension Waf { } public struct UpdateSizeConstraintSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list), AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) @@ -95,23 +142,27 @@ extension Waf { } public struct ActivatedRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Priority", required: true, type: .integer), + AWSShapeMember(label: "OverrideAction", required: false, type: .structure), AWSShapeMember(label: "Type", required: false, type: .enum), - AWSShapeMember(label: "Action", required: true, type: .structure), + AWSShapeMember(label: "Action", required: false, type: .structure), AWSShapeMember(label: "RuleId", required: true, type: .string) ] /// Specifies the order in which the Rules in a WebACL are evaluated. Rules with a lower value for Priority are evaluated before Rules with a higher value. The value must be a unique integer. If you add multiple Rules to a WebACL, the values don't need to be consecutive. public let priority: Int32 - /// The rule type, either REGULAR, as defined by Rule, or RATE_BASED, as defined by RateBasedRule. The default is REGULAR. Although this field is optional, be aware that if you try to add a RATE_BASED rule to a web ACL without setting the type, the UpdateWebACL request will fail because the request tries to add a REGULAR rule with the specified ID, which does not exist. + /// Use the OverrideAction to test your RuleGroup. Any rule in a RuleGroup can potentially block a request. If you set the OverrideAction to None, the RuleGroup will block a request if any individual rule in the RuleGroup matches the request and is configured to block that request. However if you first want to test the RuleGroup, set the OverrideAction to Count. The RuleGroup will then override any block action specified by individual rules contained within the group. Instead of blocking matching requests, those requests will be counted. You can view a record of counted requests using GetSampledRequests. The OverrideAction data type within ActivatedRule is used only when submitting an UpdateRuleGroup request. ActivatedRule|OverrideAction is not applicable and therefore not available for UpdateWebACL. + public let overrideAction: WafOverrideAction? + /// The rule type, either REGULAR, as defined by Rule, RATE_BASED, as defined by RateBasedRule, or GROUP, as defined by RuleGroup. The default is REGULAR. Although this field is optional, be aware that if you try to add a RATE_BASED rule to a web ACL without setting the type, the UpdateWebACL request will fail because the request tries to add a REGULAR rule with the specified ID, which does not exist. public let `type`: WafRuleType? - /// Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the Rule. Valid values for Action include the following: ALLOW: CloudFront responds with the requested object. BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code. COUNT: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL. - public let action: WafAction + /// Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the Rule. Valid values for Action include the following: ALLOW: CloudFront responds with the requested object. BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code. COUNT: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL. The Action data type within ActivatedRule is used only when submitting an UpdateWebACL request. ActivatedRule|Action is not applicable and therefore not available for UpdateRuleGroup. + public let action: WafAction? /// The RuleId for a Rule. You use RuleId to get more information about a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a Rule from AWS WAF (see DeleteRule). RuleId is returned by CreateRule and by ListRules. public let ruleId: String - public init(priority: Int32, type: WafRuleType? = nil, action: WafAction, ruleId: String) { + public init(priority: Int32, overrideAction: WafOverrideAction? = nil, type: WafRuleType? = nil, action: WafAction? = nil, ruleId: String) { self.priority = priority + self.overrideAction = overrideAction self.`type` = `type` self.action = action self.ruleId = ruleId @@ -119,6 +170,7 @@ extension Waf { private enum CodingKeys: String, CodingKey { case priority = "Priority" + case overrideAction = "OverrideAction" case `type` = "Type" case action = "Action" case ruleId = "RuleId" @@ -126,7 +178,7 @@ extension Waf { } public struct ListRateBasedRulesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -147,7 +199,7 @@ extension Waf { } public struct GetIPSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPSetId", required: true, type: .string) ] /// The IPSetId of the IPSet that you want to get. IPSetId is returned by CreateIPSet and by ListIPSets. @@ -162,14 +214,35 @@ extension Waf { } } + public struct DeleteGeoMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "GeoMatchSetId", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// The GeoMatchSetID of the GeoMatchSet that you want to delete. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets. + public let geoMatchSetId: String + + public init(changeToken: String, geoMatchSetId: String) { + self.changeToken = changeToken + self.geoMatchSetId = geoMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case geoMatchSetId = "GeoMatchSetId" + } + } + public struct ListIPSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] /// Specifies the number of IPSet objects that you want AWS WAF to return for this request. If you have more IPSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of IPSet objects. public let limit: Int32? - /// If you specify a value for Limit and you have more IPSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of IPSets. For the second and subsequent ListIPSets requests, specify the value of NextMarker from the previous response to get information about another batch of ByteMatchSets. + /// If you specify a value for Limit and you have more IPSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of IPSets. For the second and subsequent ListIPSets requests, specify the value of NextMarker from the previous response to get information about another batch of IPSets. public let nextMarker: String? public init(limit: Int32? = nil, nextMarker: String? = nil) { @@ -183,9 +256,31 @@ extension Waf { } } + public struct DeleteRuleGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// The RuleGroupId of the RuleGroup that you want to delete. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups. + public let ruleGroupId: String + + public init(changeToken: String, ruleGroupId: String) { + self.changeToken = changeToken + self.ruleGroupId = ruleGroupId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case ruleGroupId = "RuleGroupId" + } + } + public enum ParameterExceptionField: String, CustomStringConvertible, Codable { case changeAction = "CHANGE_ACTION" case wafAction = "WAF_ACTION" + case wafOverrideAction = "WAF_OVERRIDE_ACTION" case predicateType = "PREDICATE_TYPE" case ipsetType = "IPSET_TYPE" case byteMatchFieldType = "BYTE_MATCH_FIELD_TYPE" @@ -193,6 +288,8 @@ extension Waf { case byteMatchTextTransformation = "BYTE_MATCH_TEXT_TRANSFORMATION" case byteMatchPositionalConstraint = "BYTE_MATCH_POSITIONAL_CONSTRAINT" case sizeConstraintComparisonOperator = "SIZE_CONSTRAINT_COMPARISON_OPERATOR" + case geoMatchLocationType = "GEO_MATCH_LOCATION_TYPE" + case geoMatchLocationValue = "GEO_MATCH_LOCATION_VALUE" case rateKey = "RATE_KEY" case ruleType = "RULE_TYPE" case nextMarker = "NEXT_MARKER" @@ -200,7 +297,7 @@ extension Waf { } public struct CreateRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "ChangeToken", required: true, type: .string) @@ -226,7 +323,7 @@ extension Waf { } public struct IPSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "IPSetDescriptors", required: true, type: .list) @@ -251,8 +348,29 @@ extension Waf { } } + public struct CreateXssMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "XssMatchSet", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateXssMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// An XssMatchSet. + public let xssMatchSet: XssMatchSet? + + public init(changeToken: String? = nil, xssMatchSet: XssMatchSet? = nil) { + self.changeToken = changeToken + self.xssMatchSet = xssMatchSet + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case xssMatchSet = "XssMatchSet" + } + } + public struct DeleteRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -268,7 +386,7 @@ extension Waf { } public struct WebACLSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: true, type: .string), AWSShapeMember(label: "WebACLId", required: true, type: .string) ] @@ -288,45 +406,45 @@ extension Waf { } } - public struct CreateXssMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string), - AWSShapeMember(label: "XssMatchSet", required: false, type: .structure) + public struct UpdateIPSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The ChangeToken that you used to submit the CreateXssMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + /// The ChangeToken that you used to submit the UpdateIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. public let changeToken: String? - /// An XssMatchSet. - public let xssMatchSet: XssMatchSet? - public init(changeToken: String? = nil, xssMatchSet: XssMatchSet? = nil) { + public init(changeToken: String? = nil) { self.changeToken = changeToken - self.xssMatchSet = xssMatchSet } private enum CodingKeys: String, CodingKey { case changeToken = "ChangeToken" - case xssMatchSet = "XssMatchSet" } } - public struct UpdateIPSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string) + public struct GeoMatchSetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "GeoMatchSetId", required: true, type: .string) ] - /// The ChangeToken that you used to submit the UpdateIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. - public let changeToken: String? + /// A friendly name or description of the GeoMatchSet. You can't change the name of an GeoMatchSet after you create it. + public let name: String + /// The GeoMatchSetId for an GeoMatchSet. You can use GeoMatchSetId in a GetGeoMatchSet request to get detailed information about an GeoMatchSet. + public let geoMatchSetId: String - public init(changeToken: String? = nil) { - self.changeToken = changeToken + public init(name: String, geoMatchSetId: String) { + self.name = name + self.geoMatchSetId = geoMatchSetId } private enum CodingKeys: String, CodingKey { - case changeToken = "ChangeToken" + case name = "Name" + case geoMatchSetId = "GeoMatchSetId" } } public struct GetByteMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ByteMatchSetId", required: true, type: .string) ] /// The ByteMatchSetId of the ByteMatchSet that you want to get. ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets. @@ -345,8 +463,87 @@ extension Waf { } + public struct GetRuleGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleGroup", required: false, type: .structure) + ] + /// Information about the RuleGroup that you specified in the GetRuleGroup request. + public let ruleGroup: RuleGroup? + + public init(ruleGroup: RuleGroup? = nil) { + self.ruleGroup = ruleGroup + } + + private enum CodingKeys: String, CodingKey { + case ruleGroup = "RuleGroup" + } + } + + public struct CreateRegexPatternSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "RegexPatternSet", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// A RegexPatternSet that contains no objects. + public let regexPatternSet: RegexPatternSet? + + public init(changeToken: String? = nil, regexPatternSet: RegexPatternSet? = nil) { + self.changeToken = changeToken + self.regexPatternSet = regexPatternSet + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case regexPatternSet = "RegexPatternSet" + } + } + + public struct ListActivatedRulesInRuleGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ActivatedRules", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// An array of ActivatedRules objects. + public let activatedRules: [ActivatedRule]? + /// If you have more ActivatedRules than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more ActivatedRules, submit another ListActivatedRulesInRuleGroup request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + + public init(activatedRules: [ActivatedRule]? = nil, nextMarker: String? = nil) { + self.activatedRules = activatedRules + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case activatedRules = "ActivatedRules" + case nextMarker = "NextMarker" + } + } + + public struct ListSubscribedRuleGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// Specifies the number of subscribed rule groups that you want AWS WAF to return for this request. If you have more objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of objects. + public let limit: Int32? + /// If you specify a value for Limit and you have more ByteMatchSetssubscribed rule groups than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of subscribed rule groups. For the second and subsequent ListSubscribedRuleGroupsRequest requests, specify the value of NextMarker from the previous response to get information about another batch of subscribed rule groups. + public let nextMarker: String? + + public init(limit: Int32? = nil, nextMarker: String? = nil) { + self.limit = limit + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case nextMarker = "NextMarker" + } + } + public struct UpdateWebACLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the UpdateWebACL request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -361,8 +558,34 @@ extension Waf { } } + public struct ListActivatedRulesInRuleGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "RuleGroupId", required: false, type: .string), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// Specifies the number of ActivatedRules that you want AWS WAF to return for this request. If you have more ActivatedRules than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of ActivatedRules. + public let limit: Int32? + /// The RuleGroupId of the RuleGroup for which you want to get a list of ActivatedRule objects. + public let ruleGroupId: String? + /// If you specify a value for Limit and you have more ActivatedRules than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of ActivatedRules. For the second and subsequent ListActivatedRulesInRuleGroup requests, specify the value of NextMarker from the previous response to get information about another batch of ActivatedRules. + public let nextMarker: String? + + public init(limit: Int32? = nil, ruleGroupId: String? = nil, nextMarker: String? = nil) { + self.limit = limit + self.ruleGroupId = ruleGroupId + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case ruleGroupId = "RuleGroupId" + case nextMarker = "NextMarker" + } + } + public struct DeleteWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "WebACLId", required: true, type: .string) ] @@ -382,8 +605,24 @@ extension Waf { } } + public struct GetRegexMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexMatchSet", required: false, type: .structure) + ] + /// Information about the RegexMatchSet that you specified in the GetRegexMatchSet request. For more information, see RegexMatchTuple. + public let regexMatchSet: RegexMatchSet? + + public init(regexMatchSet: RegexMatchSet? = nil) { + self.regexMatchSet = regexMatchSet + } + + private enum CodingKeys: String, CodingKey { + case regexMatchSet = "RegexMatchSet" + } + } + public struct CreateByteMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -404,7 +643,7 @@ extension Waf { } public struct TimeWindow: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndTime", required: true, type: .timestamp), AWSShapeMember(label: "StartTime", required: true, type: .timestamp) ] @@ -424,8 +663,29 @@ extension Waf { } } + public struct RegexMatchSetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexMatchSetId", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information about a RegexMatchSet, update a RegexMatchSet, remove a RegexMatchSet from a Rule, and delete a RegexMatchSet from AWS WAF. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets. + public let regexMatchSetId: String + /// A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet. + public let name: String + + public init(regexMatchSetId: String, name: String) { + self.regexMatchSetId = regexMatchSetId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case regexMatchSetId = "RegexMatchSetId" + case name = "Name" + } + } + public struct DeleteSizeConstraintSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteSizeConstraintSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -440,29 +700,34 @@ extension Waf { } } - public struct SizeConstraintSetUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SizeConstraint", required: true, type: .structure), - AWSShapeMember(label: "Action", required: true, type: .enum) + public struct RuleGroup: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetricName", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) ] - /// Specifies a constraint on the size of a part of the web request. AWS WAF uses the Size, ComparisonOperator, and FieldToMatch to build an expression in the form of "Size ComparisonOperator size in bytes of FieldToMatch". If that expression is true, the SizeConstraint is considered to match. - public let sizeConstraint: SizeConstraint - /// Specify INSERT to add a SizeConstraintSetUpdate to a SizeConstraintSet. Use DELETE to remove a SizeConstraintSetUpdate from a SizeConstraintSet. - public let action: ChangeAction + /// A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup. + public let metricName: String? + /// The friendly name or description for the RuleGroup. You can't change the name of a RuleGroup after you create it. + public let name: String? + /// A unique identifier for a RuleGroup. You use RuleGroupId to get more information about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup), insert a RuleGroup into a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a RuleGroup from AWS WAF (see DeleteRuleGroup). RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups. + public let ruleGroupId: String - public init(sizeConstraint: SizeConstraint, action: ChangeAction) { - self.sizeConstraint = sizeConstraint - self.action = action + public init(metricName: String? = nil, name: String? = nil, ruleGroupId: String) { + self.metricName = metricName + self.name = name + self.ruleGroupId = ruleGroupId } private enum CodingKeys: String, CodingKey { - case sizeConstraint = "SizeConstraint" - case action = "Action" + case metricName = "MetricName" + case name = "Name" + case ruleGroupId = "RuleGroupId" } } public struct CreateRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string), AWSShapeMember(label: "Rule", required: false, type: .structure) ] @@ -482,29 +747,65 @@ extension Waf { } } - public struct CreateRateBasedRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string), - AWSShapeMember(label: "Rule", required: false, type: .structure) + public struct DeleteIPSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The ChangeToken that you used to submit the CreateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + /// The ChangeToken that you used to submit the DeleteIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. public let changeToken: String? - /// The RateBasedRule that is returned in the CreateRateBasedRule response. - public let rule: RateBasedRule? - public init(changeToken: String? = nil, rule: RateBasedRule? = nil) { + public init(changeToken: String? = nil) { self.changeToken = changeToken - self.rule = rule } private enum CodingKeys: String, CodingKey { case changeToken = "ChangeToken" - case rule = "Rule" + } + } + + public struct HTTPRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ClientIP", required: false, type: .string), + AWSShapeMember(label: "Headers", required: false, type: .list), + AWSShapeMember(label: "Country", required: false, type: .string), + AWSShapeMember(label: "Method", required: false, type: .string), + AWSShapeMember(label: "URI", required: false, type: .string), + AWSShapeMember(label: "HTTPVersion", required: false, type: .string) + ] + /// The IP address that the request originated from. If the WebACL is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs: c-ip, if the viewer did not use an HTTP proxy or a load balancer to send the request x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer to send the request + public let clientIP: String? + /// A complex type that contains two values for each header in the sampled web request: the name of the header and the value of the header. + public let headers: [HTTPHeader]? + /// The two-letter country code for the country that the request originated from. For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2. + public let country: String? + /// The HTTP method specified in the sampled web request. CloudFront supports the following methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT. + public let method: String? + /// The part of a web request that identifies the resource, for example, /images/daily-ad.jpg. + public let uri: String? + /// The HTTP version specified in the sampled web request, for example, HTTP/1.1. + public let hTTPVersion: String? + + public init(clientIP: String? = nil, headers: [HTTPHeader]? = nil, country: String? = nil, method: String? = nil, uri: String? = nil, hTTPVersion: String? = nil) { + self.clientIP = clientIP + self.headers = headers + self.country = country + self.method = method + self.uri = uri + self.hTTPVersion = hTTPVersion + } + + private enum CodingKeys: String, CodingKey { + case clientIP = "ClientIP" + case headers = "Headers" + case country = "Country" + case method = "Method" + case uri = "URI" + case hTTPVersion = "HTTPVersion" } } public struct UpdateXssMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSetId", required: true, type: .string), AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list) @@ -529,24 +830,34 @@ extension Waf { } } - public struct DeleteIPSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string) + public struct RegexMatchTuple: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string), + AWSShapeMember(label: "FieldToMatch", required: true, type: .structure), + AWSShapeMember(label: "TextTransformation", required: true, type: .enum) ] - /// The ChangeToken that you used to submit the DeleteIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. - public let changeToken: String? + /// The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet (see GetRegexPatternSet), update a RegexPatternSet (see UpdateRegexPatternSet), insert a RegexPatternSet into a RegexMatchSet or delete one from a RegexMatchSet (see UpdateRegexMatchSet), and delete an RegexPatternSet from AWS WAF (see DeleteRegexPatternSet). RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + /// Specifies where in a web request to look for the RegexPatternSet. + public let fieldToMatch: FieldToMatch + /// Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on RegexPatternSet before inspecting a request for a match. CMD_LINE When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: Delete the following characters: \ " ' ^ Delete spaces before the following characters: / ( Replace the following characters with a space: , ; Replace multiple spaces with one space Convert uppercase letters (A-Z) to lowercase (a-z) COMPRESS_WHITE_SPACE Use this option to replace the following characters with a space character (decimal 32): \f, formfeed, decimal 12 \t, tab, decimal 9 \n, newline, decimal 10 \r, carriage return, decimal 13 \v, vertical tab, decimal 11 non-breaking space, decimal 160 COMPRESS_WHITE_SPACE also replaces multiple spaces with one space. HTML_ENTITY_DECODE Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations: Replaces (ampersand)quot; with " Replaces (ampersand)nbsp; with a non-breaking space, decimal 160 Replaces (ampersand)lt; with a "less than" symbol Replaces (ampersand)gt; with > Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters LOWERCASE Use this option to convert uppercase letters (A-Z) to lowercase (a-z). URL_DECODE Use this option to decode a URL-encoded value. NONE Specify NONE if you don't want to perform any text transformations. + public let textTransformation: TextTransformation - public init(changeToken: String? = nil) { - self.changeToken = changeToken + public init(regexPatternSetId: String, fieldToMatch: FieldToMatch, textTransformation: TextTransformation) { + self.regexPatternSetId = regexPatternSetId + self.fieldToMatch = fieldToMatch + self.textTransformation = textTransformation } private enum CodingKeys: String, CodingKey { - case changeToken = "ChangeToken" + case regexPatternSetId = "RegexPatternSetId" + case fieldToMatch = "FieldToMatch" + case textTransformation = "TextTransformation" } } public struct ListRateBasedRulesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -566,55 +877,29 @@ extension Waf { } } - public struct HTTPRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ClientIP", required: false, type: .string), - AWSShapeMember(label: "Headers", required: false, type: .list), - AWSShapeMember(label: "Country", required: false, type: .string), - AWSShapeMember(label: "Method", required: false, type: .string), - AWSShapeMember(label: "URI", required: false, type: .string), - AWSShapeMember(label: "HTTPVersion", required: false, type: .string) + public struct CreateRateBasedRuleResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "Rule", required: false, type: .structure) ] - /// The IP address that the request originated from. If the WebACL is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs: c-ip, if the viewer did not use an HTTP proxy or a load balancer to send the request x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer to send the request - public let clientIP: String? - /// A complex type that contains two values for each header in the sampled web request: the name of the header and the value of the header. - public let headers: [HTTPHeader]? - /// The two-letter country code for the country that the request originated from. For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2. - public let country: String? - /// The HTTP method specified in the sampled web request. CloudFront supports the following methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT. - public let method: String? - /// The part of a web request that identifies the resource, for example, /images/daily-ad.jpg. - public let uri: String? - /// The HTTP version specified in the sampled web request, for example, HTTP/1.1. - public let hTTPVersion: String? + /// The ChangeToken that you used to submit the CreateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// The RateBasedRule that is returned in the CreateRateBasedRule response. + public let rule: RateBasedRule? - public init(clientIP: String? = nil, headers: [HTTPHeader]? = nil, country: String? = nil, method: String? = nil, uri: String? = nil, hTTPVersion: String? = nil) { - self.clientIP = clientIP - self.headers = headers - self.country = country - self.method = method - self.uri = uri - self.hTTPVersion = hTTPVersion + public init(changeToken: String? = nil, rule: RateBasedRule? = nil) { + self.changeToken = changeToken + self.rule = rule } private enum CodingKeys: String, CodingKey { - case clientIP = "ClientIP" - case headers = "Headers" - case country = "Country" - case method = "Method" - case uri = "URI" - case hTTPVersion = "HTTPVersion" + case changeToken = "ChangeToken" + case rule = "Rule" } } - public enum WafRuleType: String, CustomStringConvertible, Codable { - case regular = "REGULAR" - case rateBased = "RATE_BASED" - public var description: String { return self.rawValue } - } - public struct HTTPHeader: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] @@ -634,8 +919,34 @@ extension Waf { } } + public struct UpdateRuleGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Updates", required: true, type: .list), + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// An array of RuleGroupUpdate objects that you want to insert into or delete from a RuleGroup. You can only insert REGULAR rules into a rule group. The Action data type within ActivatedRule is used only when submitting an UpdateWebACL request. ActivatedRule|Action is not applicable and therefore not available for UpdateRuleGroup. + public let updates: [RuleGroupUpdate] + /// The RuleGroupId of the RuleGroup that you want to update. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups. + public let ruleGroupId: String + + public init(changeToken: String, updates: [RuleGroupUpdate], ruleGroupId: String) { + self.changeToken = changeToken + self.updates = updates + self.ruleGroupId = ruleGroupId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case updates = "Updates" + case ruleGroupId = "RuleGroupId" + } + } + public struct GetWebACLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WebACL", required: false, type: .structure) ] /// Information about the WebACL that you specified in the GetWebACL request. For more information, see the following topics: WebACL: Contains DefaultAction, MetricName, Name, an array of Rule objects, and WebACLId DefaultAction (Data type is WafAction): Contains Type Rules: Contains an array of ActivatedRule objects, which contain Action, Priority, and RuleId Action: Contains Type @@ -650,8 +961,282 @@ extension Waf { } } + public enum GeoMatchConstraintValue: String, CustomStringConvertible, Codable { + case af = "AF" + case ax = "AX" + case al = "AL" + case dz = "DZ" + case `as` = "AS" + case ad = "AD" + case ao = "AO" + case ai = "AI" + case aq = "AQ" + case ag = "AG" + case ar = "AR" + case am = "AM" + case aw = "AW" + case au = "AU" + case at = "AT" + case az = "AZ" + case bs = "BS" + case bh = "BH" + case bd = "BD" + case bb = "BB" + case by = "BY" + case be = "BE" + case bz = "BZ" + case bj = "BJ" + case bm = "BM" + case bt = "BT" + case bo = "BO" + case bq = "BQ" + case ba = "BA" + case bw = "BW" + case bv = "BV" + case br = "BR" + case io = "IO" + case bn = "BN" + case bg = "BG" + case bf = "BF" + case bi = "BI" + case kh = "KH" + case cm = "CM" + case ca = "CA" + case cv = "CV" + case ky = "KY" + case cf = "CF" + case td = "TD" + case cl = "CL" + case cn = "CN" + case cx = "CX" + case cc = "CC" + case co = "CO" + case km = "KM" + case cg = "CG" + case cd = "CD" + case ck = "CK" + case cr = "CR" + case ci = "CI" + case hr = "HR" + case cu = "CU" + case cw = "CW" + case cy = "CY" + case cz = "CZ" + case dk = "DK" + case dj = "DJ" + case dm = "DM" + case `do` = "DO" + case ec = "EC" + case eg = "EG" + case sv = "SV" + case gq = "GQ" + case er = "ER" + case ee = "EE" + case et = "ET" + case fk = "FK" + case fo = "FO" + case fj = "FJ" + case fi = "FI" + case fr = "FR" + case gf = "GF" + case pf = "PF" + case tf = "TF" + case ga = "GA" + case gm = "GM" + case ge = "GE" + case de = "DE" + case gh = "GH" + case gi = "GI" + case gr = "GR" + case gl = "GL" + case gd = "GD" + case gp = "GP" + case gu = "GU" + case gt = "GT" + case gg = "GG" + case gn = "GN" + case gw = "GW" + case gy = "GY" + case ht = "HT" + case hm = "HM" + case va = "VA" + case hn = "HN" + case hk = "HK" + case hu = "HU" + case `is` = "IS" + case `in` = "IN" + case id = "ID" + case ir = "IR" + case iq = "IQ" + case ie = "IE" + case im = "IM" + case il = "IL" + case it = "IT" + case jm = "JM" + case jp = "JP" + case je = "JE" + case jo = "JO" + case kz = "KZ" + case ke = "KE" + case ki = "KI" + case kp = "KP" + case kr = "KR" + case kw = "KW" + case kg = "KG" + case la = "LA" + case lv = "LV" + case lb = "LB" + case ls = "LS" + case lr = "LR" + case ly = "LY" + case li = "LI" + case lt = "LT" + case lu = "LU" + case mo = "MO" + case mk = "MK" + case mg = "MG" + case mw = "MW" + case my = "MY" + case mv = "MV" + case ml = "ML" + case mt = "MT" + case mh = "MH" + case mq = "MQ" + case mr = "MR" + case mu = "MU" + case yt = "YT" + case mx = "MX" + case fm = "FM" + case md = "MD" + case mc = "MC" + case mn = "MN" + case me = "ME" + case ms = "MS" + case ma = "MA" + case mz = "MZ" + case mm = "MM" + case na = "NA" + case nr = "NR" + case np = "NP" + case nl = "NL" + case nc = "NC" + case nz = "NZ" + case ni = "NI" + case ne = "NE" + case ng = "NG" + case nu = "NU" + case nf = "NF" + case mp = "MP" + case no = "NO" + case om = "OM" + case pk = "PK" + case pw = "PW" + case ps = "PS" + case pa = "PA" + case pg = "PG" + case py = "PY" + case pe = "PE" + case ph = "PH" + case pn = "PN" + case pl = "PL" + case pt = "PT" + case pr = "PR" + case qa = "QA" + case re = "RE" + case ro = "RO" + case ru = "RU" + case rw = "RW" + case bl = "BL" + case sh = "SH" + case kn = "KN" + case lc = "LC" + case mf = "MF" + case pm = "PM" + case vc = "VC" + case ws = "WS" + case sm = "SM" + case st = "ST" + case sa = "SA" + case sn = "SN" + case rs = "RS" + case sc = "SC" + case sl = "SL" + case sg = "SG" + case sx = "SX" + case sk = "SK" + case si = "SI" + case sb = "SB" + case so = "SO" + case za = "ZA" + case gs = "GS" + case ss = "SS" + case es = "ES" + case lk = "LK" + case sd = "SD" + case sr = "SR" + case sj = "SJ" + case sz = "SZ" + case se = "SE" + case ch = "CH" + case sy = "SY" + case tw = "TW" + case tj = "TJ" + case tz = "TZ" + case th = "TH" + case tl = "TL" + case tg = "TG" + case tk = "TK" + case to = "TO" + case tt = "TT" + case tn = "TN" + case tr = "TR" + case tm = "TM" + case tc = "TC" + case tv = "TV" + case ug = "UG" + case ua = "UA" + case ae = "AE" + case gb = "GB" + case us = "US" + case um = "UM" + case uy = "UY" + case uz = "UZ" + case vu = "VU" + case ve = "VE" + case vn = "VN" + case vg = "VG" + case vi = "VI" + case wf = "WF" + case eh = "EH" + case ye = "YE" + case zm = "ZM" + case zw = "ZW" + public var description: String { return self.rawValue } + } + + public struct DeleteRegexMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "RegexMatchSetId", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// The RegexMatchSetId of the RegexMatchSet that you want to delete. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets. + public let regexMatchSetId: String + + public init(changeToken: String, regexMatchSetId: String) { + self.changeToken = changeToken + self.regexMatchSetId = regexMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case regexMatchSetId = "RegexMatchSetId" + } + } + public struct XssMatchSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -671,8 +1256,36 @@ extension Waf { } } + public struct SizeConstraintSetUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SizeConstraint", required: true, type: .structure), + AWSShapeMember(label: "Action", required: true, type: .enum) + ] + /// Specifies a constraint on the size of a part of the web request. AWS WAF uses the Size, ComparisonOperator, and FieldToMatch to build an expression in the form of "Size ComparisonOperator size in bytes of FieldToMatch". If that expression is true, the SizeConstraint is considered to match. + public let sizeConstraint: SizeConstraint + /// Specify INSERT to add a SizeConstraintSetUpdate to a SizeConstraintSet. Use DELETE to remove a SizeConstraintSetUpdate from a SizeConstraintSet. + public let action: ChangeAction + + public init(sizeConstraint: SizeConstraint, action: ChangeAction) { + self.sizeConstraint = sizeConstraint + self.action = action + } + + private enum CodingKeys: String, CodingKey { + case sizeConstraint = "SizeConstraint" + case action = "Action" + } + } + + public enum WafRuleType: String, CustomStringConvertible, Codable { + case regular = "REGULAR" + case rateBased = "RATE_BASED" + case group = "GROUP" + public var description: String { return self.rawValue } + } + public struct CreateWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: true, type: .string), AWSShapeMember(label: "DefaultAction", required: true, type: .structure), AWSShapeMember(label: "ChangeToken", required: true, type: .string), @@ -703,7 +1316,7 @@ extension Waf { } public struct WafAction: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum) ] /// Specifies how you want AWS WAF to respond to requests that match the settings in a Rule. Valid settings include the following: ALLOW: AWS WAF allows requests BLOCK: AWS WAF blocks requests COUNT: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify COUNT for the default action for a WebACL. @@ -719,7 +1332,7 @@ extension Waf { } public struct SqlInjectionMatchSetUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: true, type: .enum), AWSShapeMember(label: "SqlInjectionMatchTuple", required: true, type: .structure) ] @@ -740,7 +1353,7 @@ extension Waf { } public struct CreateSqlInjectionMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string), AWSShapeMember(label: "SqlInjectionMatchSet", required: false, type: .structure) ] @@ -770,7 +1383,7 @@ extension Waf { } public struct GetChangeTokenResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used in the request. Use this value in a GetChangeTokenStatus request to get the current status of the request. @@ -786,7 +1399,7 @@ extension Waf { } public struct CreateXssMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -806,8 +1419,29 @@ extension Waf { } } + public struct GeoMatchSetUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GeoMatchConstraint", required: true, type: .structure), + AWSShapeMember(label: "Action", required: true, type: .enum) + ] + /// The country from which web requests originate that you want AWS WAF to search for. + public let geoMatchConstraint: GeoMatchConstraint + /// Specifies whether to insert or delete a country with UpdateGeoMatchSet. + public let action: ChangeAction + + public init(geoMatchConstraint: GeoMatchConstraint, action: ChangeAction) { + self.geoMatchConstraint = geoMatchConstraint + self.action = action + } + + private enum CodingKeys: String, CodingKey { + case geoMatchConstraint = "GeoMatchConstraint" + case action = "Action" + } + } + public struct RuleSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -827,8 +1461,60 @@ extension Waf { } } + public struct GetSampledRequestsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MaxItems", required: true, type: .long), + AWSShapeMember(label: "TimeWindow", required: true, type: .structure), + AWSShapeMember(label: "RuleId", required: true, type: .string), + AWSShapeMember(label: "WebAclId", required: true, type: .string) + ] + /// The number of requests that you want AWS WAF to return from among the first 5,000 requests that your AWS resource received during the time range. If your resource received fewer requests than the value of MaxItems, GetSampledRequests returns information about all of them. + public let maxItems: Int64 + /// The start date and time and the end date and time of the range for which you want GetSampledRequests to return a sample of requests. Specify the date and time in the following format: "2016-09-27T14:50Z". You can specify any time range in the previous three hours. + public let timeWindow: TimeWindow + /// RuleId is one of three values: The RuleId of the Rule or the RuleGroupId of the RuleGroup for which you want GetSampledRequests to return a sample of requests. Default_Action, which causes GetSampledRequests to return a sample of the requests that didn't match any of the rules in the specified WebACL. + public let ruleId: String + /// The WebACLId of the WebACL for which you want GetSampledRequests to return a sample of requests. + public let webAclId: String + + public init(maxItems: Int64, timeWindow: TimeWindow, ruleId: String, webAclId: String) { + self.maxItems = maxItems + self.timeWindow = timeWindow + self.ruleId = ruleId + self.webAclId = webAclId + } + + private enum CodingKeys: String, CodingKey { + case maxItems = "MaxItems" + case timeWindow = "TimeWindow" + case ruleId = "RuleId" + case webAclId = "WebAclId" + } + } + + public struct ListSqlInjectionMatchSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextMarker", required: false, type: .string), + AWSShapeMember(label: "SqlInjectionMatchSets", required: false, type: .list) + ] + /// If you have more SqlInjectionMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SqlInjectionMatchSet objects, submit another ListSqlInjectionMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + /// An array of SqlInjectionMatchSetSummary objects. + public let sqlInjectionMatchSets: [SqlInjectionMatchSetSummary]? + + public init(nextMarker: String? = nil, sqlInjectionMatchSets: [SqlInjectionMatchSetSummary]? = nil) { + self.nextMarker = nextMarker + self.sqlInjectionMatchSets = sqlInjectionMatchSets + } + + private enum CodingKeys: String, CodingKey { + case nextMarker = "NextMarker" + case sqlInjectionMatchSets = "SqlInjectionMatchSets" + } + } + public struct GetSizeConstraintSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SizeConstraintSet", required: false, type: .structure) ] /// Information about the SizeConstraintSet that you specified in the GetSizeConstraintSet request. For more information, see the following topics: SizeConstraintSet: Contains SizeConstraintSetId, SizeConstraints, and Name SizeConstraints: Contains an array of SizeConstraint objects. Each SizeConstraint object contains FieldToMatch, TextTransformation, ComparisonOperator, and Size FieldToMatch: Contains Data and Type @@ -844,7 +1530,7 @@ extension Waf { } public struct XssMatchSetUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchTuple", required: true, type: .structure), AWSShapeMember(label: "Action", required: true, type: .enum) ] @@ -864,60 +1550,24 @@ extension Waf { } } - public struct ListSqlInjectionMatchSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "NextMarker", required: false, type: .string), - AWSShapeMember(label: "SqlInjectionMatchSets", required: false, type: .list) - ] - /// If you have more SqlInjectionMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SqlInjectionMatchSet objects, submit another ListSqlInjectionMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. - public let nextMarker: String? - /// An array of SqlInjectionMatchSetSummary objects. - public let sqlInjectionMatchSets: [SqlInjectionMatchSetSummary]? - - public init(nextMarker: String? = nil, sqlInjectionMatchSets: [SqlInjectionMatchSetSummary]? = nil) { - self.nextMarker = nextMarker - self.sqlInjectionMatchSets = sqlInjectionMatchSets - } - - private enum CodingKeys: String, CodingKey { - case nextMarker = "NextMarker" - case sqlInjectionMatchSets = "SqlInjectionMatchSets" - } - } - - public struct GetSampledRequestsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "MaxItems", required: true, type: .long), - AWSShapeMember(label: "TimeWindow", required: true, type: .structure), - AWSShapeMember(label: "RuleId", required: true, type: .string), - AWSShapeMember(label: "WebAclId", required: true, type: .string) + public struct DeleteRegexMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The number of requests that you want AWS WAF to return from among the first 5,000 requests that your AWS resource received during the time range. If your resource received fewer requests than the value of MaxItems, GetSampledRequests returns information about all of them. - public let maxItems: Int64 - /// The start date and time and the end date and time of the range for which you want GetSampledRequests to return a sample of requests. Specify the date and time in the following format: "2016-09-27T14:50Z". You can specify any time range in the previous three hours. - public let timeWindow: TimeWindow - /// RuleId is one of two values: The RuleId of the Rule for which you want GetSampledRequests to return a sample of requests. Default_Action, which causes GetSampledRequests to return a sample of the requests that didn't match any of the rules in the specified WebACL. - public let ruleId: String - /// The WebACLId of the WebACL for which you want GetSampledRequests to return a sample of requests. - public let webAclId: String + /// The ChangeToken that you used to submit the DeleteRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? - public init(maxItems: Int64, timeWindow: TimeWindow, ruleId: String, webAclId: String) { - self.maxItems = maxItems - self.timeWindow = timeWindow - self.ruleId = ruleId - self.webAclId = webAclId + public init(changeToken: String? = nil) { + self.changeToken = changeToken } private enum CodingKeys: String, CodingKey { - case maxItems = "MaxItems" - case timeWindow = "TimeWindow" - case ruleId = "RuleId" - case webAclId = "WebAclId" + case changeToken = "ChangeToken" } } public struct UpdateRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "RuleId", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list) @@ -943,7 +1593,7 @@ extension Waf { } public struct DeleteRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "RuleId", required: true, type: .string) ] @@ -952,22 +1602,70 @@ extension Waf { /// The RuleId of the Rule that you want to delete. RuleId is returned by CreateRule and by ListRules. public let ruleId: String - public init(changeToken: String, ruleId: String) { + public init(changeToken: String, ruleId: String) { + self.changeToken = changeToken + self.ruleId = ruleId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case ruleId = "RuleId" + } + } + + public struct UpdateSizeConstraintSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the UpdateSizeConstraintSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + + public struct DeleteWebACLResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the DeleteWebACL request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + + public struct UpdateRegexMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the UpdateRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { self.changeToken = changeToken - self.ruleId = ruleId } private enum CodingKeys: String, CodingKey { case changeToken = "ChangeToken" - case ruleId = "RuleId" } } - public struct DeleteWebACLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public struct UpdateRuleGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The ChangeToken that you used to submit the DeleteWebACL request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + /// The ChangeToken that you used to submit the UpdateRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. public let changeToken: String? public init(changeToken: String? = nil) { @@ -979,24 +1677,55 @@ extension Waf { } } - public struct UpdateSizeConstraintSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string) + public struct CreateRuleGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetricName", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "ChangeToken", required: true, type: .string) ] - /// The ChangeToken that you used to submit the UpdateSizeConstraintSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. - public let changeToken: String? + /// A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup. + public let metricName: String + /// A friendly name or description of the RuleGroup. You can't change Name after you create a RuleGroup. + public let name: String + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String - public init(changeToken: String? = nil) { + public init(metricName: String, name: String, changeToken: String) { + self.metricName = metricName + self.name = name self.changeToken = changeToken } private enum CodingKeys: String, CodingKey { + case metricName = "MetricName" + case name = "Name" case changeToken = "ChangeToken" } } + public struct GeoMatchConstraint: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .enum), + AWSShapeMember(label: "Value", required: true, type: .enum) + ] + /// The type of geographical area you want AWS WAF to search for. Currently Country is the only valid value. + public let `type`: GeoMatchConstraintType + /// The country that you want AWS WAF to search for. + public let value: GeoMatchConstraintValue + + public init(type: GeoMatchConstraintType, value: GeoMatchConstraintValue) { + self.`type` = `type` + self.value = value + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + case value = "Value" + } + } + public struct FieldToMatch: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Data", required: false, type: .string) ] @@ -1024,7 +1753,7 @@ extension Waf { } public struct CreateByteMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string), AWSShapeMember(label: "ByteMatchSet", required: false, type: .structure) ] @@ -1045,7 +1774,7 @@ extension Waf { } public struct IPSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1066,7 +1795,7 @@ extension Waf { } public struct ListByteMatchSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1087,7 +1816,7 @@ extension Waf { } public struct GetIPSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPSet", required: false, type: .structure) ] /// Information about the IPSet that you specified in the GetIPSet request. For more information, see the following topics: IPSet: Contains IPSetDescriptors, IPSetId, and Name IPSetDescriptors: Contains an array of IPSetDescriptor objects. Each IPSetDescriptor object contains Type and Value @@ -1109,8 +1838,29 @@ extension Waf { public var description: String { return self.rawValue } } + public struct CreateRegexPatternSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet. + public let name: String + + public init(changeToken: String, name: String) { + self.changeToken = changeToken + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case name = "Name" + } + } + public struct UpdateRateBasedRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Updates", required: true, type: .list), AWSShapeMember(label: "RateLimit", required: true, type: .long), AWSShapeMember(label: "ChangeToken", required: true, type: .string), @@ -1140,8 +1890,29 @@ extension Waf { } } + public struct ListRegexMatchSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "NextMarker", required: false, type: .string), + AWSShapeMember(label: "RegexMatchSets", required: false, type: .list) + ] + /// If you have more RegexMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RegexMatchSet objects, submit another ListRegexMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + /// An array of RegexMatchSetSummary objects. + public let regexMatchSets: [RegexMatchSetSummary]? + + public init(nextMarker: String? = nil, regexMatchSets: [RegexMatchSetSummary]? = nil) { + self.nextMarker = nextMarker + self.regexMatchSets = regexMatchSets + } + + private enum CodingKeys: String, CodingKey { + case nextMarker = "NextMarker" + case regexMatchSets = "RegexMatchSets" + } + } + public struct GetChangeTokenStatusResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeTokenStatus", required: false, type: .enum) ] /// The status of the change token. @@ -1156,8 +1927,24 @@ extension Waf { } } + public struct GetXssMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "XssMatchSet", required: false, type: .structure) + ] + /// Information about the XssMatchSet that you specified in the GetXssMatchSet request. For more information, see the following topics: XssMatchSet: Contains Name, XssMatchSetId, and an array of XssMatchTuple objects XssMatchTuple: Each XssMatchTuple object contains FieldToMatch and TextTransformation FieldToMatch: Contains Data and Type + public let xssMatchSet: XssMatchSet? + + public init(xssMatchSet: XssMatchSet? = nil) { + self.xssMatchSet = xssMatchSet + } + + private enum CodingKeys: String, CodingKey { + case xssMatchSet = "XssMatchSet" + } + } + public struct UpdateByteMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "ByteMatchSetId", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list) @@ -1182,24 +1969,8 @@ extension Waf { } } - public struct GetXssMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "XssMatchSet", required: false, type: .structure) - ] - /// Information about the XssMatchSet that you specified in the GetXssMatchSet request. For more information, see the following topics: XssMatchSet: Contains Name, XssMatchSetId, and an array of XssMatchTuple objects XssMatchTuple: Each XssMatchTuple object contains FieldToMatch and TextTransformation FieldToMatch: Contains Data and Type - public let xssMatchSet: XssMatchSet? - - public init(xssMatchSet: XssMatchSet? = nil) { - self.xssMatchSet = xssMatchSet - } - - private enum CodingKeys: String, CodingKey { - case xssMatchSet = "XssMatchSet" - } - } - public struct SizeConstraintSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SizeConstraints", required: true, type: .list), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) @@ -1225,7 +1996,7 @@ extension Waf { } public struct DeleteRateBasedRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -1240,8 +2011,24 @@ extension Waf { } } + public struct DeleteRuleGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the DeleteRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct ByteMatchSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ByteMatchSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1262,7 +2049,7 @@ extension Waf { } public struct GetRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rule", required: false, type: .structure) ] /// Information about the Rule that you specified in the GetRule request. For more information, see the following topics: Rule: Contains MetricName, Name, an array of Predicate objects, and RuleId Predicate: Each Predicate object contains DataId, Negated, and Type @@ -1277,29 +2064,45 @@ extension Waf { } } - public struct ListSizeConstraintSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SizeConstraintSets", required: false, type: .list), + public struct GetRegexPatternSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSet", required: false, type: .structure) + ] + /// Information about the RegexPatternSet that you specified in the GetRegexPatternSet request, including the identifier of the pattern set and the regular expression patterns you want AWS WAF to search for. + public let regexPatternSet: RegexPatternSet? + + public init(regexPatternSet: RegexPatternSet? = nil) { + self.regexPatternSet = regexPatternSet + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSet = "RegexPatternSet" + } + } + + public struct ListRuleGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// An array of SizeConstraintSetSummary objects. - public let sizeConstraintSets: [SizeConstraintSetSummary]? - /// If you have more SizeConstraintSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SizeConstraintSet objects, submit another ListSizeConstraintSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + /// Specifies the number of RuleGroups that you want AWS WAF to return for this request. If you have more RuleGroups than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RuleGroups. + public let limit: Int32? + /// If you specify a value for Limit and you have more RuleGroups than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of RuleGroups. For the second and subsequent ListRuleGroups requests, specify the value of NextMarker from the previous response to get information about another batch of RuleGroups. public let nextMarker: String? - public init(sizeConstraintSets: [SizeConstraintSetSummary]? = nil, nextMarker: String? = nil) { - self.sizeConstraintSets = sizeConstraintSets + public init(limit: Int32? = nil, nextMarker: String? = nil) { + self.limit = limit self.nextMarker = nextMarker } private enum CodingKeys: String, CodingKey { - case sizeConstraintSets = "SizeConstraintSets" + case limit = "Limit" case nextMarker = "NextMarker" } } public struct CreateSizeConstraintSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1319,8 +2122,50 @@ extension Waf { } } + public struct ListSizeConstraintSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SizeConstraintSets", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// An array of SizeConstraintSetSummary objects. + public let sizeConstraintSets: [SizeConstraintSetSummary]? + /// If you have more SizeConstraintSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SizeConstraintSet objects, submit another ListSizeConstraintSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + + public init(sizeConstraintSets: [SizeConstraintSetSummary]? = nil, nextMarker: String? = nil) { + self.sizeConstraintSets = sizeConstraintSets + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case sizeConstraintSets = "SizeConstraintSets" + case nextMarker = "NextMarker" + } + } + + public struct CreateRegexMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "RegexMatchSet", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// A RegexMatchSet that contains no RegexMatchTuple objects. + public let regexMatchSet: RegexMatchSet? + + public init(changeToken: String? = nil, regexMatchSet: RegexMatchSet? = nil) { + self.changeToken = changeToken + self.regexMatchSet = regexMatchSet + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case regexMatchSet = "RegexMatchSet" + } + } + public struct ListByteMatchSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ByteMatchSets", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1340,15 +2185,36 @@ extension Waf { } } + public struct RuleUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Action", required: true, type: .enum), + AWSShapeMember(label: "Predicate", required: true, type: .structure) + ] + /// Specify INSERT to add a Predicate to a Rule. Use DELETE to remove a Predicate from a Rule. + public let action: ChangeAction + /// The ID of the Predicate (such as an IPSet) that you want to add to a Rule. + public let predicate: Predicate + + public init(action: ChangeAction, predicate: Predicate) { + self.action = action + self.predicate = predicate + } + + private enum CodingKeys: String, CodingKey { + case action = "Action" + case predicate = "Predicate" + } + } + public struct Predicate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Negated", required: true, type: .boolean), AWSShapeMember(label: "DataId", required: true, type: .string) ] /// The type of predicate in a Rule, such as ByteMatchSet or IPSet. public let `type`: PredicateType - /// Set Negated to False if you want AWS WAF to allow, block, or count requests based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow or block requests based on that IP address. Set Negated to True if you want AWS WAF to allow or block a request based on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow, block, or count requests based on all IP addresses except 192.0.2.44. + /// Set Negated to False if you want AWS WAF to allow, block, or count requests based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow or block requests based on that IP address. Set Negated to True if you want AWS WAF to allow or block a request based on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow, block, or count requests based on all IP addresses except 192.0.2.44. public let negated: Bool /// A unique identifier for a predicate in a Rule, such as ByteMatchSetId or IPSetId. The ID is returned by the corresponding Create or List command. public let dataId: String @@ -1366,24 +2232,24 @@ extension Waf { } } - public struct RuleUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Action", required: true, type: .enum), - AWSShapeMember(label: "Predicate", required: true, type: .structure) + public struct ListRuleGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleGroups", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// Specify INSERT to add a Predicate to a Rule. Use DELETE to remove a Predicate from a Rule. - public let action: ChangeAction - /// The ID of the Predicate (such as an IPSet) that you want to add to a Rule. - public let predicate: Predicate + /// An array of RuleGroup objects. + public let ruleGroups: [RuleGroupSummary]? + /// If you have more RuleGroups than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RuleGroups, submit another ListRuleGroups request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? - public init(action: ChangeAction, predicate: Predicate) { - self.action = action - self.predicate = predicate + public init(ruleGroups: [RuleGroupSummary]? = nil, nextMarker: String? = nil) { + self.ruleGroups = ruleGroups + self.nextMarker = nextMarker } private enum CodingKeys: String, CodingKey { - case action = "Action" - case predicate = "Predicate" + case ruleGroups = "RuleGroups" + case nextMarker = "NextMarker" } } @@ -1398,7 +2264,7 @@ extension Waf { } public struct ListIPSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IPSets", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1418,8 +2284,24 @@ extension Waf { } } + public struct WafOverrideAction: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Type", required: true, type: .enum) + ] + /// COUNT overrides the action specified by the individual rule within a RuleGroup . If set to NONE, the rule's action will take place. + public let `type`: WafOverrideActionType + + public init(type: WafOverrideActionType) { + self.`type` = `type` + } + + private enum CodingKeys: String, CodingKey { + case `type` = "Type" + } + } + public struct ListSizeConstraintSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1439,8 +2321,40 @@ extension Waf { } } + public struct GetRegexMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexMatchSetId", required: true, type: .string) + ] + /// The RegexMatchSetId of the RegexMatchSet that you want to get. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets. + public let regexMatchSetId: String + + public init(regexMatchSetId: String) { + self.regexMatchSetId = regexMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case regexMatchSetId = "RegexMatchSetId" + } + } + + public struct UpdateRegexPatternSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the UpdateRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct DeleteRateBasedRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "RuleId", required: true, type: .string) ] @@ -1460,8 +2374,24 @@ extension Waf { } } + public struct DeleteRegexPatternSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the DeleteRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct ListXssMatchSetsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSets", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1482,7 +2412,7 @@ extension Waf { } public struct WebACLUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: true, type: .enum), AWSShapeMember(label: "ActivatedRule", required: true, type: .structure) ] @@ -1503,7 +2433,7 @@ extension Waf { } public struct IPSetUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: true, type: .enum), AWSShapeMember(label: "IPSetDescriptor", required: true, type: .structure) ] @@ -1523,8 +2453,29 @@ extension Waf { } } + public struct RegexPatternSetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet, update a RegexPatternSet, remove a RegexPatternSet from a RegexMatchSet, and delete a RegexPatternSet from AWS WAF. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + /// A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet. + public let name: String + + public init(regexPatternSetId: String, name: String) { + self.regexPatternSetId = regexPatternSetId + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSetId = "RegexPatternSetId" + case name = "Name" + } + } + public struct ListWebACLsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1545,7 +2496,7 @@ extension Waf { } public struct UpdateRateBasedRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the UpdateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -1561,7 +2512,7 @@ extension Waf { } public struct ByteMatchSetUpdate: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Action", required: true, type: .enum), AWSShapeMember(label: "ByteMatchTuple", required: true, type: .structure) ] @@ -1582,7 +2533,7 @@ extension Waf { } public struct GetRateBasedRuleManagedKeysResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ManagedKeys", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1603,7 +2554,7 @@ extension Waf { } public struct GetRateBasedRuleManagedKeysRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleId", required: true, type: .string), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1623,8 +2574,76 @@ extension Waf { } } + public struct UpdateRegexPatternSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string), + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Updates", required: true, type: .list) + ] + /// The RegexPatternSetId of the RegexPatternSet that you want to update. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// An array of RegexPatternSetUpdate objects that you want to insert into or delete from a RegexPatternSet. + public let updates: [RegexPatternSetUpdate] + + public init(regexPatternSetId: String, changeToken: String, updates: [RegexPatternSetUpdate]) { + self.regexPatternSetId = regexPatternSetId + self.changeToken = changeToken + self.updates = updates + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSetId = "RegexPatternSetId" + case changeToken = "ChangeToken" + case updates = "Updates" + } + } + + public struct RegexMatchSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexMatchSetId", required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "RegexMatchTuples", required: false, type: .list) + ] + /// The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information about a RegexMatchSet (see GetRegexMatchSet), update a RegexMatchSet (see UpdateRegexMatchSet), insert a RegexMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a RegexMatchSet from AWS WAF (see DeleteRegexMatchSet). RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets. + public let regexMatchSetId: String? + /// A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet. + public let name: String? + /// Contains an array of RegexMatchTuple objects. Each RegexMatchTuple object contains: The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the User-Agent header. The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see RegexPatternSet. Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. + public let regexMatchTuples: [RegexMatchTuple]? + + public init(regexMatchSetId: String? = nil, name: String? = nil, regexMatchTuples: [RegexMatchTuple]? = nil) { + self.regexMatchSetId = regexMatchSetId + self.name = name + self.regexMatchTuples = regexMatchTuples + } + + private enum CodingKeys: String, CodingKey { + case regexMatchSetId = "RegexMatchSetId" + case name = "Name" + case regexMatchTuples = "RegexMatchTuples" + } + } + + public struct DeleteGeoMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the DeleteGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct SqlInjectionMatchTuple: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FieldToMatch", required: true, type: .structure), AWSShapeMember(label: "TextTransformation", required: true, type: .enum) ] @@ -1644,8 +2663,13 @@ extension Waf { } } + public enum GeoMatchConstraintType: String, CustomStringConvertible, Codable { + case country = "Country" + public var description: String { return self.rawValue } + } + public struct GetByteMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ByteMatchSet", required: false, type: .structure) ] /// Information about the ByteMatchSet that you specified in the GetByteMatchSet request. For more information, see the following topics: ByteMatchSet: Contains ByteMatchSetId, ByteMatchTuples, and Name ByteMatchTuples: Contains an array of ByteMatchTuple objects. Each ByteMatchTuple object contains FieldToMatch, PositionalConstraint, TargetString, and TextTransformation FieldToMatch: Contains Data and Type @@ -1660,8 +2684,29 @@ extension Waf { } } + public struct ListGeoMatchSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GeoMatchSets", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// An array of GeoMatchSetSummary objects. + public let geoMatchSets: [GeoMatchSetSummary]? + /// If you have more GeoMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more GeoMatchSet objects, submit another ListGeoMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + + public init(geoMatchSets: [GeoMatchSetSummary]? = nil, nextMarker: String? = nil) { + self.geoMatchSets = geoMatchSets + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case geoMatchSets = "GeoMatchSets" + case nextMarker = "NextMarker" + } + } + public struct GetRateBasedRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rule", required: false, type: .structure) ] /// Information about the RateBasedRule that you specified in the GetRateBasedRule request. @@ -1677,7 +2722,7 @@ extension Waf { } public struct CreateIPSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -1698,7 +2743,7 @@ extension Waf { } public struct CreateIPSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string), AWSShapeMember(label: "IPSet", required: false, type: .structure) ] @@ -1718,14 +2763,14 @@ extension Waf { } } - public struct UpdateSqlInjectionMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string) + public struct GetChangeTokenStatusRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string) ] - /// The ChangeToken that you used to submit the UpdateSqlInjectionMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. - public let changeToken: String? + /// The change token for which you want to get the status. This change token was previously returned in the GetChangeToken response. + public let changeToken: String - public init(changeToken: String? = nil) { + public init(changeToken: String) { self.changeToken = changeToken } @@ -1734,14 +2779,14 @@ extension Waf { } } - public struct GetChangeTokenStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: true, type: .string) + public struct UpdateSqlInjectionMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] - /// The change token for which you want to get the status. This change token was previously returned in the GetChangeToken response. - public let changeToken: String + /// The ChangeToken that you used to submit the UpdateSqlInjectionMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? - public init(changeToken: String) { + public init(changeToken: String? = nil) { self.changeToken = changeToken } @@ -1751,7 +2796,7 @@ extension Waf { } public struct RateBasedRule: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: false, type: .string), AWSShapeMember(label: "MatchPredicates", required: true, type: .list), AWSShapeMember(label: "RateLimit", required: true, type: .long), @@ -1792,7 +2837,7 @@ extension Waf { } public struct DeleteIPSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "IPSetId", required: true, type: .string) ] @@ -1813,7 +2858,7 @@ extension Waf { } public struct GetRateBasedRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleId", required: true, type: .string) ] /// The RuleId of the RateBasedRule that you want to get. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules. @@ -1834,8 +2879,45 @@ extension Waf { public var description: String { return self.rawValue } } + public struct ListSubscribedRuleGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleGroups", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// An array of RuleGroup objects. + public let ruleGroups: [SubscribedRuleGroupSummary]? + /// If you have more objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more objects, submit another ListSubscribedRuleGroups request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? + + public init(ruleGroups: [SubscribedRuleGroupSummary]? = nil, nextMarker: String? = nil) { + self.ruleGroups = ruleGroups + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case ruleGroups = "RuleGroups" + case nextMarker = "NextMarker" + } + } + + public struct GetRegexPatternSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string) + ] + /// The RegexPatternSetId of the RegexPatternSet that you want to get. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + + public init(regexPatternSetId: String) { + self.regexPatternSetId = regexPatternSetId + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSetId = "RegexPatternSetId" + } + } + public struct IPSetDescriptor: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Value", required: true, type: .string) ] @@ -1855,29 +2937,8 @@ extension Waf { } } - public struct CreateSizeConstraintSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string), - AWSShapeMember(label: "SizeConstraintSet", required: false, type: .structure) - ] - /// The ChangeToken that you used to submit the CreateSizeConstraintSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. - public let changeToken: String? - /// A SizeConstraintSet that contains no SizeConstraint objects. - public let sizeConstraintSet: SizeConstraintSet? - - public init(changeToken: String? = nil, sizeConstraintSet: SizeConstraintSet? = nil) { - self.changeToken = changeToken - self.sizeConstraintSet = sizeConstraintSet - } - - private enum CodingKeys: String, CodingKey { - case changeToken = "ChangeToken" - case sizeConstraintSet = "SizeConstraintSet" - } - } - public struct SizeConstraint: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FieldToMatch", required: true, type: .structure), AWSShapeMember(label: "TextTransformation", required: true, type: .enum), AWSShapeMember(label: "ComparisonOperator", required: true, type: .enum), @@ -1907,8 +2968,29 @@ extension Waf { } } + public struct CreateSizeConstraintSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "SizeConstraintSet", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateSizeConstraintSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// A SizeConstraintSet that contains no SizeConstraint objects. + public let sizeConstraintSet: SizeConstraintSet? + + public init(changeToken: String? = nil, sizeConstraintSet: SizeConstraintSet? = nil) { + self.changeToken = changeToken + self.sizeConstraintSet = sizeConstraintSet + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case sizeConstraintSet = "SizeConstraintSet" + } + } + public struct ListRulesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -1928,8 +3010,29 @@ extension Waf { } } + public struct CreateRuleGroupResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "RuleGroup", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + /// An empty RuleGroup. + public let ruleGroup: RuleGroup? + + public init(changeToken: String? = nil, ruleGroup: RuleGroup? = nil) { + self.changeToken = changeToken + self.ruleGroup = ruleGroup + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case ruleGroup = "RuleGroup" + } + } + public struct GetXssMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSetId", required: true, type: .string) ] /// The XssMatchSetId of the XssMatchSet that you want to get. XssMatchSetId is returned by CreateXssMatchSet and by ListXssMatchSets. @@ -1944,8 +3047,24 @@ extension Waf { } } + public struct GetSizeConstraintSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) + ] + /// The SizeConstraintSetId of the SizeConstraintSet that you want to get. SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. + public let sizeConstraintSetId: String + + public init(sizeConstraintSetId: String) { + self.sizeConstraintSetId = sizeConstraintSetId + } + + private enum CodingKeys: String, CodingKey { + case sizeConstraintSetId = "SizeConstraintSetId" + } + } + public struct UpdateIPSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "IPSetId", required: true, type: .string), AWSShapeMember(label: "Updates", required: true, type: .list) @@ -1970,24 +3089,50 @@ extension Waf { } } - public struct GetSizeConstraintSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) + public struct GetGeoMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GeoMatchSet", required: false, type: .structure) ] - /// The SizeConstraintSetId of the SizeConstraintSet that you want to get. SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. - public let sizeConstraintSetId: String + /// Information about the GeoMatchSet that you specified in the GetGeoMatchSet request. This includes the Type, which for a GeoMatchContraint is always Country, as well as the Value, which is the identifier for a specific country. + public let geoMatchSet: GeoMatchSet? - public init(sizeConstraintSetId: String) { - self.sizeConstraintSetId = sizeConstraintSetId + public init(geoMatchSet: GeoMatchSet? = nil) { + self.geoMatchSet = geoMatchSet } private enum CodingKeys: String, CodingKey { - case sizeConstraintSetId = "SizeConstraintSetId" + case geoMatchSet = "GeoMatchSet" + } + } + + public struct UpdateRegexMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexMatchSetId", required: true, type: .string), + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Updates", required: true, type: .list) + ] + /// The RegexMatchSetId of the RegexMatchSet that you want to update. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets. + public let regexMatchSetId: String + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// An array of RegexMatchSetUpdate objects that you want to insert into or delete from a RegexMatchSet. For more information, see RegexMatchTuple. + public let updates: [RegexMatchSetUpdate] + + public init(regexMatchSetId: String, changeToken: String, updates: [RegexMatchSetUpdate]) { + self.regexMatchSetId = regexMatchSetId + self.changeToken = changeToken + self.updates = updates + } + + private enum CodingKeys: String, CodingKey { + case regexMatchSetId = "RegexMatchSetId" + case changeToken = "ChangeToken" + case updates = "Updates" } } public struct CreateSqlInjectionMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -2007,8 +3152,97 @@ extension Waf { } } + public struct CreateRegexMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet. + public let name: String + + public init(changeToken: String, name: String) { + self.changeToken = changeToken + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case name = "Name" + } + } + + public struct UpdateGeoMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Updates", required: true, type: .list), + AWSShapeMember(label: "GeoMatchSetId", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// An array of GeoMatchSetUpdate objects that you want to insert into or delete from an GeoMatchSet. For more information, see the applicable data types: GeoMatchSetUpdate: Contains Action and GeoMatchConstraint GeoMatchConstraint: Contains Type and Value You can have only one Type and Value per GeoMatchConstraint. To add multiple countries, include multiple GeoMatchSetUpdate objects in your request. + public let updates: [GeoMatchSetUpdate] + /// The GeoMatchSetId of the GeoMatchSet that you want to update. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets. + public let geoMatchSetId: String + + public init(changeToken: String, updates: [GeoMatchSetUpdate], geoMatchSetId: String) { + self.changeToken = changeToken + self.updates = updates + self.geoMatchSetId = geoMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case updates = "Updates" + case geoMatchSetId = "GeoMatchSetId" + } + } + + public struct DeleteSqlInjectionMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to delete. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. + public let sqlInjectionMatchSetId: String + + public init(changeToken: String, sqlInjectionMatchSetId: String) { + self.changeToken = changeToken + self.sqlInjectionMatchSetId = sqlInjectionMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case sqlInjectionMatchSetId = "SqlInjectionMatchSetId" + } + } + + public struct ListRegexMatchSetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// Specifies the number of RegexMatchSet objects that you want AWS WAF to return for this request. If you have more RegexMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RegexMatchSet objects. + public let limit: Int32? + /// If you specify a value for Limit and you have more RegexMatchSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of ByteMatchSets. For the second and subsequent ListRegexMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of RegexMatchSet objects. + public let nextMarker: String? + + public init(limit: Int32? = nil, nextMarker: String? = nil) { + self.limit = limit + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case nextMarker = "NextMarker" + } + } + public struct CreateWebACLResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string), AWSShapeMember(label: "WebACL", required: false, type: .structure) ] @@ -2028,29 +3262,8 @@ extension Waf { } } - public struct DeleteSqlInjectionMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: true, type: .string), - AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string) - ] - /// The value returned by the most recent call to GetChangeToken. - public let changeToken: String - /// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to delete. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. - public let sqlInjectionMatchSetId: String - - public init(changeToken: String, sqlInjectionMatchSetId: String) { - self.changeToken = changeToken - self.sqlInjectionMatchSetId = sqlInjectionMatchSetId - } - - private enum CodingKeys: String, CodingKey { - case changeToken = "ChangeToken" - case sqlInjectionMatchSetId = "SqlInjectionMatchSetId" - } - } - public struct ByteMatchTuple: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FieldToMatch", required: true, type: .structure), AWSShapeMember(label: "TargetString", required: true, type: .blob), AWSShapeMember(label: "TextTransformation", required: true, type: .enum), @@ -2080,8 +3293,29 @@ extension Waf { } } + public struct ListGeoMatchSetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextMarker", required: false, type: .string) + ] + /// Specifies the number of GeoMatchSet objects that you want AWS WAF to return for this request. If you have more GeoMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of GeoMatchSet objects. + public let limit: Int32? + /// If you specify a value for Limit and you have more GeoMatchSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of GeoMatchSet objects. For the second and subsequent ListGeoMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of GeoMatchSet objects. + public let nextMarker: String? + + public init(limit: Int32? = nil, nextMarker: String? = nil) { + self.limit = limit + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case nextMarker = "NextMarker" + } + } + public struct ListXssMatchSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -2102,7 +3336,7 @@ extension Waf { } public struct UpdateRuleResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the UpdateRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -2117,8 +3351,51 @@ extension Waf { } } + public struct RegexMatchSetUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Action", required: true, type: .enum), + AWSShapeMember(label: "RegexMatchTuple", required: true, type: .structure) + ] + /// Specifies whether to insert or delete a RegexMatchTuple. + public let action: ChangeAction + /// Information about the part of a web request that you want AWS WAF to inspect and the identifier of the regular expression (regex) pattern that you want AWS WAF to search for. If you specify DELETE for the value of Action, the RegexMatchTuple values must exactly match the values in the RegexMatchTuple that you want to delete from the RegexMatchSet. + public let regexMatchTuple: RegexMatchTuple + + public init(action: ChangeAction, regexMatchTuple: RegexMatchTuple) { + self.action = action + self.regexMatchTuple = regexMatchTuple + } + + private enum CodingKeys: String, CodingKey { + case action = "Action" + case regexMatchTuple = "RegexMatchTuple" + } + } + + public struct GetRuleGroupRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) + ] + /// The RuleGroupId of the RuleGroup that you want to get. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups. + public let ruleGroupId: String + + public init(ruleGroupId: String) { + self.ruleGroupId = ruleGroupId + } + + private enum CodingKeys: String, CodingKey { + case ruleGroupId = "RuleGroupId" + } + } + + public enum WafOverrideActionType: String, CustomStringConvertible, Codable { + case none = "NONE" + case count = "COUNT" + public var description: String { return self.rawValue } + } + public struct UpdateXssMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the UpdateXssMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -2133,8 +3410,29 @@ extension Waf { } } + public struct CreateGeoMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string) + ] + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + /// A friendly name or description of the GeoMatchSet. You can't change Name after you create the GeoMatchSet. + public let name: String + + public init(changeToken: String, name: String) { + self.changeToken = changeToken + self.name = name + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + case name = "Name" + } + } + public struct SqlInjectionMatchSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: true, type: .string) ] @@ -2155,7 +3453,7 @@ extension Waf { } public struct ListWebACLsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WebACLs", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -2175,8 +3473,29 @@ extension Waf { } } + public struct DeleteRegexPatternSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSetId", required: true, type: .string), + AWSShapeMember(label: "ChangeToken", required: true, type: .string) + ] + /// The RegexPatternSetId of the RegexPatternSet that you want to delete. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets. + public let regexPatternSetId: String + /// The value returned by the most recent call to GetChangeToken. + public let changeToken: String + + public init(regexPatternSetId: String, changeToken: String) { + self.regexPatternSetId = regexPatternSetId + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case regexPatternSetId = "RegexPatternSetId" + case changeToken = "ChangeToken" + } + } + public struct DeleteXssMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSetId", required: true, type: .string), AWSShapeMember(label: "ChangeToken", required: true, type: .string) ] @@ -2196,29 +3515,29 @@ extension Waf { } } - public struct SizeConstraintSetSummary: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Name", required: true, type: .string), - AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) + public struct ListRegexPatternSetsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RegexPatternSets", required: false, type: .list), + AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// The name of the SizeConstraintSet, if any. - public let name: String - /// A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId to get information about a SizeConstraintSet (see GetSizeConstraintSet), update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet from AWS WAF (see DeleteSizeConstraintSet). SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. - public let sizeConstraintSetId: String + /// An array of RegexPatternSetSummary objects. + public let regexPatternSets: [RegexPatternSetSummary]? + /// If you have more RegexPatternSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RegexPatternSet objects, submit another ListRegexPatternSets request, and specify the NextMarker value from the response in the NextMarker value in the next request. + public let nextMarker: String? - public init(name: String, sizeConstraintSetId: String) { - self.name = name - self.sizeConstraintSetId = sizeConstraintSetId + public init(regexPatternSets: [RegexPatternSetSummary]? = nil, nextMarker: String? = nil) { + self.regexPatternSets = regexPatternSets + self.nextMarker = nextMarker } private enum CodingKeys: String, CodingKey { - case name = "Name" - case sizeConstraintSetId = "SizeConstraintSetId" + case regexPatternSets = "RegexPatternSets" + case nextMarker = "NextMarker" } } public struct DeleteByteMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "ByteMatchSetId", required: true, type: .string) ] @@ -2238,8 +3557,29 @@ extension Waf { } } + public struct SizeConstraintSetSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) + ] + /// The name of the SizeConstraintSet, if any. + public let name: String + /// A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId to get information about a SizeConstraintSet (see GetSizeConstraintSet), update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet from AWS WAF (see DeleteSizeConstraintSet). SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. + public let sizeConstraintSetId: String + + public init(name: String, sizeConstraintSetId: String) { + self.name = name + self.sizeConstraintSetId = sizeConstraintSetId + } + + private enum CodingKeys: String, CodingKey { + case name = "Name" + case sizeConstraintSetId = "SizeConstraintSetId" + } + } + public struct UpdateByteMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the UpdateByteMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -2255,31 +3595,36 @@ extension Waf { } public struct SampledHTTPRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "RuleWithinRuleGroup", required: false, type: .string), AWSShapeMember(label: "Request", required: true, type: .structure), + AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), AWSShapeMember(label: "Weight", required: true, type: .long), AWSShapeMember(label: "Action", required: false, type: .string) ] - /// The time at which AWS WAF received the request from your AWS resource, in Unix time format (in seconds). - public let timestamp: TimeStamp? + /// This value is returned if the GetSampledRequests request specifies the ID of a RuleGroup rather than the ID of an individual rule. RuleWithinRuleGroup is the rule within the specified RuleGroup that matched the request listed in the response. + public let ruleWithinRuleGroup: String? /// A complex type that contains detailed information about the request. public let request: HTTPRequest + /// The time at which AWS WAF received the request from your AWS resource, in Unix time format (in seconds). + public let timestamp: TimeStamp? /// A value that indicates how one result in the response relates proportionally to other results in the response. A result that has a weight of 2 represents roughly twice as many CloudFront web requests as a result that has a weight of 1. public let weight: Int64 /// The action for the Rule that the request matched: ALLOW, BLOCK, or COUNT. public let action: String? - public init(timestamp: TimeStamp? = nil, request: HTTPRequest, weight: Int64, action: String? = nil) { - self.timestamp = timestamp + public init(ruleWithinRuleGroup: String? = nil, request: HTTPRequest, timestamp: TimeStamp? = nil, weight: Int64, action: String? = nil) { + self.ruleWithinRuleGroup = ruleWithinRuleGroup self.request = request + self.timestamp = timestamp self.weight = weight self.action = action } private enum CodingKeys: String, CodingKey { - case timestamp = "Timestamp" + case ruleWithinRuleGroup = "RuleWithinRuleGroup" case request = "Request" + case timestamp = "Timestamp" case weight = "Weight" case action = "Action" } @@ -2294,8 +3639,29 @@ extension Waf { public var description: String { return self.rawValue } } + public struct RegexPatternSetUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Action", required: true, type: .enum), + AWSShapeMember(label: "RegexPatternString", required: true, type: .string) + ] + /// Specifies whether to insert or delete a RegexPatternString. + public let action: ChangeAction + /// Specifies the regular expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t. + public let regexPatternString: String + + public init(action: ChangeAction, regexPatternString: String) { + self.action = action + self.regexPatternString = regexPatternString + } + + private enum CodingKeys: String, CodingKey { + case action = "Action" + case regexPatternString = "RegexPatternString" + } + } + public struct XssMatchTuple: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FieldToMatch", required: true, type: .structure), AWSShapeMember(label: "TextTransformation", required: true, type: .enum) ] @@ -2316,7 +3682,7 @@ extension Waf { } public struct DeleteByteMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteByteMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -2332,7 +3698,7 @@ extension Waf { } public struct GetSqlInjectionMatchSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string) ] /// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to get. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. @@ -2351,13 +3717,15 @@ extension Waf { case ipmatch = "IPMatch" case bytematch = "ByteMatch" case sqlinjectionmatch = "SqlInjectionMatch" + case geomatch = "GeoMatch" case sizeconstraint = "SizeConstraint" case xssmatch = "XssMatch" + case regexmatch = "RegexMatch" public var description: String { return self.rawValue } } public struct DeleteSizeConstraintSetRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: true, type: .string), AWSShapeMember(label: "SizeConstraintSetId", required: true, type: .string) ] @@ -2378,7 +3746,7 @@ extension Waf { } public struct GetSqlInjectionMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SqlInjectionMatchSet", required: false, type: .structure) ] /// Information about the SqlInjectionMatchSet that you specified in the GetSqlInjectionMatchSet request. For more information, see the following topics: SqlInjectionMatchSet: Contains Name, SqlInjectionMatchSetId, and an array of SqlInjectionMatchTuple objects SqlInjectionMatchTuple: Each SqlInjectionMatchTuple object contains FieldToMatch and TextTransformation FieldToMatch: Contains Data and Type @@ -2404,7 +3772,7 @@ extension Waf { } public struct UpdateWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultAction", required: false, type: .structure), AWSShapeMember(label: "Updates", required: false, type: .list), AWSShapeMember(label: "ChangeToken", required: true, type: .string), @@ -2412,7 +3780,7 @@ extension Waf { ] /// A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the rules in a web ACL. public let defaultAction: WafAction? - /// An array of updates to make to the WebACL. An array of WebACLUpdate objects that you want to insert into or delete from a WebACL. For more information, see the applicable data types: WebACLUpdate: Contains Action and ActivatedRule ActivatedRule: Contains Action, Priority, RuleId, and Type WafAction: Contains Type + /// An array of updates to make to the WebACL. An array of WebACLUpdate objects that you want to insert into or delete from a WebACL. For more information, see the applicable data types: WebACLUpdate: Contains Action and ActivatedRule ActivatedRule: Contains Action, Priority, RuleId, and Type. The OverrideAction data type within ActivatedRule is used only when submitting an UpdateRuleGroup request. ActivatedRule|OverrideAction is not applicable and therefore not available for UpdateWebACL. WafAction: Contains Type public let updates: [WebACLUpdate]? /// The value returned by the most recent call to GetChangeToken. public let changeToken: String @@ -2435,7 +3803,7 @@ extension Waf { } public struct GetWebACLRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WebACLId", required: true, type: .string) ] /// The WebACLId of the WebACL that you want to get. WebACLId is returned by CreateWebACL and by ListWebACLs. @@ -2462,7 +3830,7 @@ extension Waf { } public struct ListSqlInjectionMatchSetsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Limit", required: false, type: .integer), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -2482,8 +3850,24 @@ extension Waf { } } + public struct UpdateGeoMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the UpdateGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct ListRulesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Rules", required: false, type: .list), AWSShapeMember(label: "NextMarker", required: false, type: .string) ] @@ -2504,7 +3888,7 @@ extension Waf { } public struct ByteMatchSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ByteMatchSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "ByteMatchTuples", required: true, type: .list) @@ -2529,8 +3913,55 @@ extension Waf { } } + public struct GeoMatchSet: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GeoMatchConstraints", required: true, type: .list), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "GeoMatchSetId", required: true, type: .string) + ] + /// An array of GeoMatchConstraint objects, which contain the country that you want AWS WAF to search for. + public let geoMatchConstraints: [GeoMatchConstraint] + /// A friendly name or description of the GeoMatchSet. You can't change the name of an GeoMatchSet after you create it. + public let name: String? + /// The GeoMatchSetId for an GeoMatchSet. You use GeoMatchSetId to get information about a GeoMatchSet (see GeoMatchSet), update a GeoMatchSet (see UpdateGeoMatchSet), insert a GeoMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a GeoMatchSet from AWS WAF (see DeleteGeoMatchSet). GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets. + public let geoMatchSetId: String + + public init(geoMatchConstraints: [GeoMatchConstraint], name: String? = nil, geoMatchSetId: String) { + self.geoMatchConstraints = geoMatchConstraints + self.name = name + self.geoMatchSetId = geoMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case geoMatchConstraints = "GeoMatchConstraints" + case name = "Name" + case geoMatchSetId = "GeoMatchSetId" + } + } + + public struct RuleGroupUpdate: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Action", required: true, type: .enum), + AWSShapeMember(label: "ActivatedRule", required: true, type: .structure) + ] + /// Specify INSERT to add an ActivatedRule to a RuleGroup. Use DELETE to remove an ActivatedRule from a RuleGroup. + public let action: ChangeAction + /// The ActivatedRule object specifies a Rule that you want to insert or delete, the priority of the Rule in the WebACL, and the action that you want AWS WAF to take when a web request matches the Rule (ALLOW, BLOCK, or COUNT). + public let activatedRule: ActivatedRule + + public init(action: ChangeAction, activatedRule: ActivatedRule) { + self.action = action + self.activatedRule = activatedRule + } + + private enum CodingKeys: String, CodingKey { + case action = "Action" + case activatedRule = "ActivatedRule" + } + } + public struct CreateRateBasedRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: true, type: .string), AWSShapeMember(label: "RateLimit", required: true, type: .long), AWSShapeMember(label: "ChangeToken", required: true, type: .string), @@ -2565,24 +3996,50 @@ extension Waf { } } - public struct DeleteSqlInjectionMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ChangeToken", required: false, type: .string) + public struct ListRegexPatternSetsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Limit", required: false, type: .integer), + AWSShapeMember(label: "NextMarker", required: false, type: .string) ] - /// The ChangeToken that you used to submit the DeleteSqlInjectionMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + /// Specifies the number of RegexPatternSet objects that you want AWS WAF to return for this request. If you have more RegexPatternSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RegexPatternSet objects. + public let limit: Int32? + /// If you specify a value for Limit and you have more RegexPatternSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of RegexPatternSet objects. For the second and subsequent ListRegexPatternSets requests, specify the value of NextMarker from the previous response to get information about another batch of RegexPatternSet objects. + public let nextMarker: String? + + public init(limit: Int32? = nil, nextMarker: String? = nil) { + self.limit = limit + self.nextMarker = nextMarker + } + + private enum CodingKeys: String, CodingKey { + case limit = "Limit" + case nextMarker = "NextMarker" + } + } + + public struct CreateGeoMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string), + AWSShapeMember(label: "GeoMatchSet", required: false, type: .structure) + ] + /// The ChangeToken that you used to submit the CreateGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. public let changeToken: String? + /// The GeoMatchSet returned in the CreateGeoMatchSet response. The GeoMatchSet contains no GeoMatchConstraints. + public let geoMatchSet: GeoMatchSet? - public init(changeToken: String? = nil) { + public init(changeToken: String? = nil, geoMatchSet: GeoMatchSet? = nil) { self.changeToken = changeToken + self.geoMatchSet = geoMatchSet } private enum CodingKeys: String, CodingKey { case changeToken = "ChangeToken" + case geoMatchSet = "GeoMatchSet" } } public struct GetSampledRequestsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "PopulationSize", required: false, type: .long), AWSShapeMember(label: "SampledRequests", required: false, type: .list), AWSShapeMember(label: "TimeWindow", required: false, type: .structure) @@ -2607,8 +4064,24 @@ extension Waf { } } + public struct DeleteSqlInjectionMatchSetResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "ChangeToken", required: false, type: .string) + ] + /// The ChangeToken that you used to submit the DeleteSqlInjectionMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. + public let changeToken: String? + + public init(changeToken: String? = nil) { + self.changeToken = changeToken + } + + private enum CodingKeys: String, CodingKey { + case changeToken = "ChangeToken" + } + } + public struct DeleteXssMatchSetResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ChangeToken", required: false, type: .string) ] /// The ChangeToken that you used to submit the DeleteXssMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus. @@ -2624,7 +4097,7 @@ extension Waf { } public struct XssMatchSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "XssMatchSetId", required: true, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "XssMatchTuples", required: true, type: .list) @@ -2650,7 +4123,7 @@ extension Waf { } public struct GetRuleRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RuleId", required: true, type: .string) ] /// The RuleId of the Rule that you want to get. RuleId is returned by CreateRule and by ListRules. @@ -2665,8 +4138,34 @@ extension Waf { } } + public struct SubscribedRuleGroupSummary: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "MetricName", required: true, type: .string), + AWSShapeMember(label: "Name", required: true, type: .string), + AWSShapeMember(label: "RuleGroupId", required: true, type: .string) + ] + /// A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup. + public let metricName: String + /// A friendly name or description of the RuleGroup. You can't change the name of a RuleGroup after you create it. + public let name: String + /// A unique identifier for a RuleGroup. + public let ruleGroupId: String + + public init(metricName: String, name: String, ruleGroupId: String) { + self.metricName = metricName + self.name = name + self.ruleGroupId = ruleGroupId + } + + private enum CodingKeys: String, CodingKey { + case metricName = "MetricName" + case name = "Name" + case ruleGroupId = "RuleGroupId" + } + } + public struct WebACL: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "MetricName", required: false, type: .string), AWSShapeMember(label: "DefaultAction", required: true, type: .structure), AWSShapeMember(label: "Rules", required: true, type: .list), @@ -2701,8 +4200,24 @@ extension Waf { } } + public struct GetGeoMatchSetRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "GeoMatchSetId", required: true, type: .string) + ] + /// The GeoMatchSetId of the GeoMatchSet that you want to get. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets. + public let geoMatchSetId: String + + public init(geoMatchSetId: String) { + self.geoMatchSetId = geoMatchSetId + } + + private enum CodingKeys: String, CodingKey { + case geoMatchSetId = "GeoMatchSetId" + } + } + public struct SqlInjectionMatchSet: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SqlInjectionMatchSetId", required: true, type: .string), AWSShapeMember(label: "SqlInjectionMatchTuples", required: true, type: .list), AWSShapeMember(label: "Name", required: false, type: .string) diff --git a/Sources/AWSSDKSwift/Services/workdocs/Workdocs_API.swift b/Sources/AWSSDKSwift/Services/workdocs/Workdocs_API.swift index 97bc0794e4a..6a88da78deb 100644 --- a/Sources/AWSSDKSwift/Services/workdocs/Workdocs_API.swift +++ b/Sources/AWSSDKSwift/Services/workdocs/Workdocs_API.swift @@ -4,7 +4,7 @@ import Foundation import AWSSDKSwiftCore /** -The WorkDocs API is designed for the following use cases: File Migration: File migration applications are supported for users who want to migrate their files from an on-premise or off-premise file system or service. Users can insert files into a user directory structure, as well as allow for basic metadata changes, such as modifications to the permissions of files. Security: Support security applications are supported for users who have additional security needs, such as anti-virus or data loss prevention. The APIs, in conjunction with Amazon CloudTrail, allow these applications to detect when changes occur in Amazon WorkDocs, so the application can take the necessary actions and replace the target file. The application can also choose to email the user if the target file violates the policy. eDiscovery/Analytics: General administrative applications are supported, such as eDiscovery and analytics. These applications can choose to mimic and/or record the actions in an Amazon WorkDocs site, in conjunction with Amazon CloudTrails, to replicate data for eDiscovery, backup, or analytical applications. All Amazon WorkDocs APIs are Amazon authenticated, certificate-signed APIs. They not only require the use of the AWS SDK, but also allow for the exclusive use of IAM users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the Amazon WorkDocs site, the IAM user gains full administrative visibility into the entire Amazon WorkDocs site (or as set in the IAM policy). This includes, but is not limited to, the ability to modify file permissions and upload any file to any user. This allows developers to perform the three use cases above, as well as give users the ability to grant access on a selective basis using the IAM model. +The WorkDocs API is designed for the following use cases: File Migration: File migration applications are supported for users who want to migrate their files from an on-premises or off-premises file system or service. Users can insert files into a user directory structure, as well as allow for basic metadata changes, such as modifications to the permissions of files. Security: Support security applications are supported for users who have additional security needs, such as antivirus or data loss prevention. The API actions, along with AWS CloudTrail, allow these applications to detect when changes occur in Amazon WorkDocs. Then, the application can take the necessary actions and replace the target file. If the target file violates the policy, the application can also choose to email the user. eDiscovery/Analytics: General administrative applications are supported, such as eDiscovery and analytics. These applications can choose to mimic or record the actions in an Amazon WorkDocs site, along with AWS CloudTrail, to replicate data for eDiscovery, backup, or analytical applications. All Amazon WorkDocs API actions are Amazon authenticated and certificate-signed. They not only require the use of the AWS SDK, but also allow for the exclusive use of IAM users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the Amazon WorkDocs site, the IAM user gains full administrative visibility into the entire Amazon WorkDocs site (or as set in the IAM policy). This includes, but is not limited to, the ability to modify file permissions and upload any file to any user. This allows developers to perform the three use cases above, as well as give users the ability to grant access on a selective basis using the IAM model. */ public struct Workdocs { @@ -179,6 +179,11 @@ public struct Workdocs { return try client.send(operation: "InitiateDocumentVersionUpload", path: "/api/v1/documents", httpMethod: "POST", input: input) } + /// Describes the groups specified by query. + public func describeGroups(_ input: DescribeGroupsRequest) throws -> DescribeGroupsResponse { + return try client.send(operation: "DescribeGroups", path: "/api/v1/groups", httpMethod: "GET", input: input) + } + /// Deletes the contents of the specified folder. public func deleteFolderContents(_ input: DeleteFolderContentsRequest) throws { _ = try client.send(operation: "DeleteFolderContents", path: "/api/v1/folders/{FolderId}/contents", httpMethod: "DELETE", input: input) @@ -194,7 +199,7 @@ public struct Workdocs { return try client.send(operation: "AddResourcePermissions", path: "/api/v1/resources/{ResourceId}/permissions", httpMethod: "POST", input: input) } - /// Describes the current user's special folders; the RootFolder and the RecyleBin. RootFolder is the root of user's files and folders and RecyleBin is the root of recycled items. This is not a valid action for SigV4 (administrative API) clients. + /// Describes the current user's special folders; the RootFolder and the RecycleBin. RootFolder is the root of user's files and folders and RecycleBin is the root of recycled items. This is not a valid action for SigV4 (administrative API) clients. public func describeRootFolders(_ input: DescribeRootFoldersRequest) throws -> DescribeRootFoldersResponse { return try client.send(operation: "DescribeRootFolders", path: "/api/v1/me/root", httpMethod: "GET", input: input) } diff --git a/Sources/AWSSDKSwift/Services/workdocs/Workdocs_Error.swift b/Sources/AWSSDKSwift/Services/workdocs/Workdocs_Error.swift index 86c5a07489f..d54579a93a5 100644 --- a/Sources/AWSSDKSwift/Services/workdocs/Workdocs_Error.swift +++ b/Sources/AWSSDKSwift/Services/workdocs/Workdocs_Error.swift @@ -15,6 +15,7 @@ public enum WorkdocsError: AWSErrorType { case entityAlreadyExistsException(message: String?) case limitExceededException(message: String?) case concurrentModificationException(message: String?) + case invalidPasswordException(message: String?) case invalidOperationException(message: String?) case illegalUserStateException(message: String?) case deactivatingLastSystemUserException(message: String?) @@ -56,6 +57,8 @@ extension WorkdocsError { self = .limitExceededException(message: message) case "ConcurrentModificationException": self = .concurrentModificationException(message: message) + case "InvalidPasswordException": + self = .invalidPasswordException(message: message) case "InvalidOperationException": self = .invalidOperationException(message: message) case "IllegalUserStateException": diff --git a/Sources/AWSSDKSwift/Services/workdocs/Workdocs_Shapes.swift b/Sources/AWSSDKSwift/Services/workdocs/Workdocs_Shapes.swift index c81a03dd98f..b1694d99d03 100644 --- a/Sources/AWSSDKSwift/Services/workdocs/Workdocs_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/workdocs/Workdocs_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Workdocs { public struct DescribeDocumentVersionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Fields", location: .querystring(locationName: "fields"), required: false, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "Limit", location: .querystring(locationName: "limit"), required: false, type: .integer), @@ -16,7 +16,7 @@ extension Workdocs { ] /// Specify "SOURCE" to include initialized versions and a URL for the source document. public let fields: String? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The maximum number of versions to return with this call. public let limit: Int32? @@ -47,7 +47,7 @@ extension Workdocs { } public struct DescribeActivitiesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", location: .querystring(locationName: "startTime"), required: false, type: .timestamp), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "UserId", location: .querystring(locationName: "userId"), required: false, type: .string), @@ -56,15 +56,15 @@ extension Workdocs { AWSShapeMember(label: "Limit", location: .querystring(locationName: "limit"), required: false, type: .integer), AWSShapeMember(label: "OrganizationId", location: .querystring(locationName: "organizationId"), required: false, type: .string) ] - /// The timestamp that determines the starting time of the activities; the response includes the activities performed after the specified timestamp. + /// The timestamp that determines the starting time of the activities. The response includes the activities performed after the specified timestamp. public let startTime: TimeStamp? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the user who performed the action. The response includes activities pertaining to this user. This is an optional parameter and is only applicable for administrative API (SigV4) requests. public let userId: String? - /// The marker for the next set of results. (You received this marker from a previous call.) + /// The marker for the next set of results. public let marker: String? - /// The timestamp that determines the end time of the activities; the response includes the activities performed before the specified timestamp. + /// The timestamp that determines the end time of the activities. The response includes the activities performed before the specified timestamp. public let endTime: TimeStamp? /// The maximum number of items to return. public let limit: Int32? @@ -97,7 +97,7 @@ extension Workdocs { } public struct CreateNotificationSubscriptionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrganizationId", location: .uri(locationName: "OrganizationId"), required: true, type: .string), AWSShapeMember(label: "SubscriptionType", required: true, type: .enum), AWSShapeMember(label: "Protocol", required: true, type: .enum), @@ -107,7 +107,7 @@ extension Workdocs { public let organizationId: String /// The notification type. public let subscriptionType: SubscriptionType - /// The protocol to use. The supported value is https, which delivers JSON-encoded messasges using HTTPS POST. + /// The protocol to use. The supported value is https, which delivers JSON-encoded messages using HTTPS POST. public let `protocol`: SubscriptionProtocolType /// The endpoint to receive the notifications. If the protocol is HTTPS, the endpoint is a URL that begins with "https://". public let endpoint: String @@ -127,6 +127,27 @@ extension Workdocs { } } + public struct DescribeGroupsResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Marker", required: false, type: .string), + AWSShapeMember(label: "Groups", required: false, type: .list) + ] + /// The marker to use when requesting the next set of results. If there are no additional results, the string is empty. + public let marker: String? + /// The list of groups. + public let groups: [GroupMetadata]? + + public init(marker: String? = nil, groups: [GroupMetadata]? = nil) { + self.marker = marker + self.groups = groups + } + + private enum CodingKeys: String, CodingKey { + case marker = "Marker" + case groups = "Groups" + } + } + public enum ActivityType: String, CustomStringConvertible, Codable { case documentCheckedIn = "DOCUMENT_CHECKED_IN" case documentCheckedOut = "DOCUMENT_CHECKED_OUT" @@ -163,7 +184,7 @@ extension Workdocs { } public struct CreateCommentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "ParentId", required: false, type: .string), AWSShapeMember(label: "ThreadId", required: false, type: .string), @@ -173,7 +194,7 @@ extension Workdocs { AWSShapeMember(label: "Visibility", required: false, type: .enum), AWSShapeMember(label: "NotifyCollaborators", required: false, type: .boolean) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the parent comment. public let parentId: String? @@ -221,7 +242,7 @@ extension Workdocs { } public struct ShareResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Role", required: false, type: .enum), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "PrincipalId", required: false, type: .string), @@ -257,7 +278,7 @@ extension Workdocs { } public struct GetDocumentVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .uri(locationName: "VersionId"), required: true, type: .string), AWSShapeMember(label: "IncludeCustomMetadata", location: .querystring(locationName: "includeCustomMetadata"), required: false, type: .boolean), AWSShapeMember(label: "Fields", location: .querystring(locationName: "fields"), required: false, type: .string), @@ -272,7 +293,7 @@ extension Workdocs { public let fields: String? /// The ID of the document. public let documentId: String - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? public init(versionId: String, includeCustomMetadata: Bool? = nil, fields: String? = nil, documentId: String, authenticationToken: String? = nil) { @@ -293,7 +314,7 @@ extension Workdocs { } public struct PermissionInfo: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Role", required: false, type: .enum) ] @@ -314,7 +335,7 @@ extension Workdocs { } public struct Subscription: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubscriptionId", required: false, type: .string), AWSShapeMember(label: "EndPoint", required: false, type: .string), AWSShapeMember(label: "Protocol", required: false, type: .enum) @@ -340,7 +361,7 @@ extension Workdocs { } public struct DescribeFolderContentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Documents", required: false, type: .list), AWSShapeMember(label: "Folders", required: false, type: .list) @@ -373,7 +394,7 @@ extension Workdocs { } public struct UpdateUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "User", required: false, type: .structure) ] /// The user information. @@ -389,7 +410,7 @@ extension Workdocs { } public struct DescribeUsersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Users", required: false, type: .list), AWSShapeMember(label: "TotalNumberOfUsers", required: false, type: .long) @@ -415,7 +436,7 @@ extension Workdocs { } public struct ResourcePathComponent: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Id", required: false, type: .string) ] @@ -435,42 +456,8 @@ extension Workdocs { } } - public struct CommentMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Contributor", required: false, type: .structure), - AWSShapeMember(label: "CommentStatus", required: false, type: .enum), - AWSShapeMember(label: "CommentId", required: false, type: .string), - AWSShapeMember(label: "CreatedTimestamp", required: false, type: .timestamp), - AWSShapeMember(label: "RecipientId", required: false, type: .string) - ] - /// The user who made the comment. - public let contributor: User? - public let commentStatus: CommentStatusType? - /// The ID of the comment. - public let commentId: String? - public let createdTimestamp: TimeStamp? - /// The ID of the user being replied to. - public let recipientId: String? - - public init(contributor: User? = nil, commentStatus: CommentStatusType? = nil, commentId: String? = nil, createdTimestamp: TimeStamp? = nil, recipientId: String? = nil) { - self.contributor = contributor - self.commentStatus = commentStatus - self.commentId = commentId - self.createdTimestamp = createdTimestamp - self.recipientId = recipientId - } - - private enum CodingKeys: String, CodingKey { - case contributor = "Contributor" - case commentStatus = "CommentStatus" - case commentId = "CommentId" - case createdTimestamp = "CreatedTimestamp" - case recipientId = "RecipientId" - } - } - public struct DescribeResourcePermissionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Principals", required: false, type: .list) ] @@ -491,14 +478,14 @@ extension Workdocs { } public struct CreateLabelsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "Labels", required: true, type: .list) ] /// The ID of the resource. public let resourceId: String - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// List of labels to add to the resource. public let labels: [String] @@ -517,11 +504,11 @@ extension Workdocs { } public struct DeleteDocumentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "DocumentId", location: .uri(locationName: "DocumentId"), required: true, type: .string) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the document. public let documentId: String @@ -537,14 +524,56 @@ extension Workdocs { } } + public struct CommentMetadata: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Contributor", required: false, type: .structure), + AWSShapeMember(label: "CommentStatus", required: false, type: .enum), + AWSShapeMember(label: "CommentId", required: false, type: .string), + AWSShapeMember(label: "CreatedTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "RecipientId", required: false, type: .string) + ] + /// The user who made the comment. + public let contributor: User? + /// The status of the comment. + public let commentStatus: CommentStatusType? + /// The ID of the comment. + public let commentId: String? + /// The timestamp that the comment was created. + public let createdTimestamp: TimeStamp? + /// The ID of the user being replied to. + public let recipientId: String? + + public init(contributor: User? = nil, commentStatus: CommentStatusType? = nil, commentId: String? = nil, createdTimestamp: TimeStamp? = nil, recipientId: String? = nil) { + self.contributor = contributor + self.commentStatus = commentStatus + self.commentId = commentId + self.createdTimestamp = createdTimestamp + self.recipientId = recipientId + } + + private enum CodingKeys: String, CodingKey { + case contributor = "Contributor" + case commentStatus = "CommentStatus" + case commentId = "CommentId" + case createdTimestamp = "CreatedTimestamp" + case recipientId = "RecipientId" + } + } + public enum DocumentStatusType: String, CustomStringConvertible, Codable { case initialized = "INITIALIZED" case active = "ACTIVE" public var description: String { return self.rawValue } } + public enum RolePermissionType: String, CustomStringConvertible, Codable { + case direct = "DIRECT" + case inherited = "INHERITED" + public var description: String { return self.rawValue } + } + public struct UpdateDocumentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParentFolderId", required: false, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "ResourceState", required: false, type: .enum), @@ -553,9 +582,9 @@ extension Workdocs { ] /// The ID of the parent folder. public let parentFolderId: String? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? - /// The resource state of the document. Note that only ACTIVE and RECYCLED are supported. + /// The resource state of the document. Only ACTIVE and RECYCLED are supported. public let resourceState: ResourceStateType? /// The ID of the document. public let documentId: String @@ -579,14 +608,8 @@ extension Workdocs { } } - public enum RolePermissionType: String, CustomStringConvertible, Codable { - case direct = "DIRECT" - case inherited = "INHERITED" - public var description: String { return self.rawValue } - } - public struct AddResourcePermissionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ShareResults", required: false, type: .list) ] /// The share results. @@ -601,59 +624,8 @@ extension Workdocs { } } - public struct InitiateDocumentVersionUploadRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Id", required: false, type: .string), - AWSShapeMember(label: "ContentModifiedTimestamp", required: false, type: .timestamp), - AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), - AWSShapeMember(label: "Name", required: false, type: .string), - AWSShapeMember(label: "ContentType", required: false, type: .string), - AWSShapeMember(label: "ParentFolderId", required: true, type: .string), - AWSShapeMember(label: "ContentCreatedTimestamp", required: false, type: .timestamp), - AWSShapeMember(label: "DocumentSizeInBytes", required: false, type: .long) - ] - /// The ID of the document. - public let id: String? - /// The time stamp when the content of the document was modified. - public let contentModifiedTimestamp: TimeStamp? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. - public let authenticationToken: String? - /// The name of the document. - public let name: String? - /// The content type of the document. - public let contentType: String? - /// The ID of the parent folder. - public let parentFolderId: String - /// The time stamp when the content of the document was originally created. - public let contentCreatedTimestamp: TimeStamp? - /// The size of the document, in bytes. - public let documentSizeInBytes: Int64? - - public init(id: String? = nil, contentModifiedTimestamp: TimeStamp? = nil, authenticationToken: String? = nil, name: String? = nil, contentType: String? = nil, parentFolderId: String, contentCreatedTimestamp: TimeStamp? = nil, documentSizeInBytes: Int64? = nil) { - self.id = id - self.contentModifiedTimestamp = contentModifiedTimestamp - self.authenticationToken = authenticationToken - self.name = name - self.contentType = contentType - self.parentFolderId = parentFolderId - self.contentCreatedTimestamp = contentCreatedTimestamp - self.documentSizeInBytes = documentSizeInBytes - } - - private enum CodingKeys: String, CodingKey { - case id = "Id" - case contentModifiedTimestamp = "ContentModifiedTimestamp" - case authenticationToken = "Authentication" - case name = "Name" - case contentType = "ContentType" - case parentFolderId = "ParentFolderId" - case contentCreatedTimestamp = "ContentCreatedTimestamp" - case documentSizeInBytes = "DocumentSizeInBytes" - } - } - public struct FolderMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Labels", required: false, type: .list), AWSShapeMember(label: "ResourceState", required: false, type: .enum), AWSShapeMember(label: "LatestVersionSize", required: false, type: .long), @@ -719,7 +691,7 @@ extension Workdocs { } public struct DescribeActivitiesResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "UserActivities", required: false, type: .list) ] @@ -740,7 +712,7 @@ extension Workdocs { } public struct DocumentVersionMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ContentModifiedTimestamp", required: false, type: .timestamp), AWSShapeMember(label: "Signature", required: false, type: .string), AWSShapeMember(label: "ModifiedTimestamp", required: false, type: .timestamp), @@ -755,15 +727,15 @@ extension Workdocs { AWSShapeMember(label: "Thumbnail", required: false, type: .map), AWSShapeMember(label: "ContentCreatedTimestamp", required: false, type: .timestamp) ] - /// The time stamp when the content of the document was modified. + /// The timestamp when the content of the document was modified. public let contentModifiedTimestamp: TimeStamp? /// The signature of the document. public let signature: String? - /// The time stamp when the document was last uploaded. + /// The timestamp when the document was last uploaded. public let modifiedTimestamp: TimeStamp? /// The source of the document. public let source: [DocumentSourceType: String]? - /// The time stamp when the document was first uploaded. + /// The timestamp when the document was first uploaded. public let createdTimestamp: TimeStamp? /// The ID of the version. public let id: String? @@ -779,7 +751,7 @@ extension Workdocs { public let creatorId: String? /// The thumbnail of the document. public let thumbnail: [DocumentThumbnailType: String]? - /// The time stamp when the content of the document was originally created. + /// The timestamp when the content of the document was originally created. public let contentCreatedTimestamp: TimeStamp? public init(contentModifiedTimestamp: TimeStamp? = nil, signature: String? = nil, modifiedTimestamp: TimeStamp? = nil, source: [DocumentSourceType: String]? = nil, createdTimestamp: TimeStamp? = nil, id: String? = nil, status: DocumentStatusType? = nil, name: String? = nil, size: Int64? = nil, contentType: String? = nil, creatorId: String? = nil, thumbnail: [DocumentThumbnailType: String]? = nil, contentCreatedTimestamp: TimeStamp? = nil) { @@ -816,13 +788,13 @@ extension Workdocs { } public struct UserStorageMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StorageRule", required: false, type: .structure), AWSShapeMember(label: "StorageUtilizedInBytes", required: false, type: .long) ] /// The storage for a user. public let storageRule: StorageRuleType? - /// The amount of storage utilized, in bytes. + /// The amount of storage used, in bytes. public let storageUtilizedInBytes: Int64? public init(storageRule: StorageRuleType? = nil, storageUtilizedInBytes: Int64? = nil) { @@ -836,8 +808,59 @@ extension Workdocs { } } + public struct InitiateDocumentVersionUploadRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Id", required: false, type: .string), + AWSShapeMember(label: "ContentModifiedTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), + AWSShapeMember(label: "Name", required: false, type: .string), + AWSShapeMember(label: "ContentType", required: false, type: .string), + AWSShapeMember(label: "ParentFolderId", required: true, type: .string), + AWSShapeMember(label: "ContentCreatedTimestamp", required: false, type: .timestamp), + AWSShapeMember(label: "DocumentSizeInBytes", required: false, type: .long) + ] + /// The ID of the document. + public let id: String? + /// The timestamp when the content of the document was modified. + public let contentModifiedTimestamp: TimeStamp? + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. + public let authenticationToken: String? + /// The name of the document. + public let name: String? + /// The content type of the document. + public let contentType: String? + /// The ID of the parent folder. + public let parentFolderId: String + /// The timestamp when the content of the document was originally created. + public let contentCreatedTimestamp: TimeStamp? + /// The size of the document, in bytes. + public let documentSizeInBytes: Int64? + + public init(id: String? = nil, contentModifiedTimestamp: TimeStamp? = nil, authenticationToken: String? = nil, name: String? = nil, contentType: String? = nil, parentFolderId: String, contentCreatedTimestamp: TimeStamp? = nil, documentSizeInBytes: Int64? = nil) { + self.id = id + self.contentModifiedTimestamp = contentModifiedTimestamp + self.authenticationToken = authenticationToken + self.name = name + self.contentType = contentType + self.parentFolderId = parentFolderId + self.contentCreatedTimestamp = contentCreatedTimestamp + self.documentSizeInBytes = documentSizeInBytes + } + + private enum CodingKeys: String, CodingKey { + case id = "Id" + case contentModifiedTimestamp = "ContentModifiedTimestamp" + case authenticationToken = "Authentication" + case name = "Name" + case contentType = "ContentType" + case parentFolderId = "ParentFolderId" + case contentCreatedTimestamp = "ContentCreatedTimestamp" + case documentSizeInBytes = "DocumentSizeInBytes" + } + } + public struct UserMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EmailAddress", required: false, type: .string), AWSShapeMember(label: "Surname", required: false, type: .string), AWSShapeMember(label: "Username", required: false, type: .string), @@ -848,7 +871,7 @@ extension Workdocs { public let emailAddress: String? /// The surname of the user. public let surname: String? - /// The username of the user. + /// The name of the user. public let username: String? /// The given name of the user before a rename operation. public let givenName: String? @@ -872,15 +895,31 @@ extension Workdocs { } } + public struct GetFolderPathResponse: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "Path", required: false, type: .structure) + ] + /// The path information. + public let path: ResourcePath? + + public init(path: ResourcePath? = nil) { + self.path = path + } + + private enum CodingKeys: String, CodingKey { + case path = "Path" + } + } + public struct GetDocumentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IncludeCustomMetadata", location: .querystring(locationName: "includeCustomMetadata"), required: false, type: .boolean), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "DocumentId", location: .uri(locationName: "DocumentId"), required: true, type: .string) ] /// Set this to TRUE to include custom metadata in the response. public let includeCustomMetadata: Bool? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the document. public let documentId: String @@ -898,33 +937,8 @@ extension Workdocs { } } - public struct GetFolderPathResponse: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "Path", required: false, type: .structure) - ] - /// The path information. - public let path: ResourcePath? - - public init(path: ResourcePath? = nil) { - self.path = path - } - - private enum CodingKeys: String, CodingKey { - case path = "Path" - } - } - - public enum PrincipalType: String, CustomStringConvertible, Codable { - case user = "USER" - case group = "GROUP" - case invite = "INVITE" - case anonymous = "ANONYMOUS" - case organization = "ORGANIZATION" - public var description: String { return self.rawValue } - } - public struct GetFolderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metadata", required: false, type: .structure), AWSShapeMember(label: "CustomMetadata", required: false, type: .map) ] @@ -948,15 +962,24 @@ extension Workdocs { } + public enum PrincipalType: String, CustomStringConvertible, Codable { + case user = "USER" + case group = "GROUP" + case invite = "INVITE" + case anonymous = "ANONYMOUS" + case organization = "ORGANIZATION" + public var description: String { return self.rawValue } + } + public struct DescribeRootFoldersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", location: .querystring(locationName: "marker"), required: false, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: true, type: .string), AWSShapeMember(label: "Limit", location: .querystring(locationName: "limit"), required: false, type: .integer) ] /// The marker for the next set of results. (You received this marker from a previous call.) public let marker: String? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String /// The maximum number of items to return. public let limit: Int32? @@ -992,7 +1015,7 @@ extension Workdocs { } public struct Activity: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OriginalParent", required: false, type: .structure), AWSShapeMember(label: "CommentMetadata", required: false, type: .structure), AWSShapeMember(label: "ResourceMetadata", required: false, type: .structure), @@ -1043,7 +1066,7 @@ extension Workdocs { } public struct CreateUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EmailAddress", required: false, type: .string), AWSShapeMember(label: "TimeZoneId", required: false, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), @@ -1058,7 +1081,7 @@ extension Workdocs { public let emailAddress: String? /// The time zone ID of the user. public let timeZoneId: String? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The given name of the user. public let givenName: String @@ -1099,7 +1122,7 @@ extension Workdocs { } public struct ActivateUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "User", required: false, type: .structure) ] /// The user information. @@ -1115,14 +1138,14 @@ extension Workdocs { } public struct GetFolderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IncludeCustomMetadata", location: .querystring(locationName: "includeCustomMetadata"), required: false, type: .boolean), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "FolderId", location: .uri(locationName: "FolderId"), required: true, type: .string) ] /// Set to TRUE to include custom metadata in the response. public let includeCustomMetadata: Bool? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the folder. public let folderId: String @@ -1141,7 +1164,7 @@ extension Workdocs { } public struct ResourceMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParentId", required: false, type: .string), AWSShapeMember(label: "OriginalName", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), @@ -1152,7 +1175,7 @@ extension Workdocs { ] /// The parent ID of the resource before a rename operation. public let parentId: String? - /// The original name of the resource prior to a rename operation. + /// The original name of the resource before a rename operation. public let originalName: String? /// The name of the resource. public let name: String? @@ -1187,7 +1210,7 @@ extension Workdocs { } public struct GetDocumentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metadata", required: false, type: .structure), AWSShapeMember(label: "CustomMetadata", required: false, type: .map) ] @@ -1208,7 +1231,7 @@ extension Workdocs { } public struct DescribeCommentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .uri(locationName: "VersionId"), required: true, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "Limit", location: .querystring(locationName: "limit"), required: false, type: .integer), @@ -1217,7 +1240,7 @@ extension Workdocs { ] /// The ID of the document version. public let versionId: String - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The maximum number of items to return. public let limit: Int32? @@ -1250,37 +1273,42 @@ extension Workdocs { } public struct AddResourcePermissionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string), + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), - AWSShapeMember(label: "Principals", required: true, type: .list) + AWSShapeMember(label: "Principals", required: true, type: .list), + AWSShapeMember(label: "NotificationOptions", required: false, type: .structure), + AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string) ] - /// The ID of the resource. - public let resourceId: String - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The users, groups, or organization being granted permission. public let principals: [SharePrincipal] + /// The notification options. + public let notificationOptions: NotificationOptions? + /// The ID of the resource. + public let resourceId: String - public init(resourceId: String, authenticationToken: String? = nil, principals: [SharePrincipal]) { - self.resourceId = resourceId + public init(authenticationToken: String? = nil, principals: [SharePrincipal], notificationOptions: NotificationOptions? = nil, resourceId: String) { self.authenticationToken = authenticationToken self.principals = principals + self.notificationOptions = notificationOptions + self.resourceId = resourceId } private enum CodingKeys: String, CodingKey { - case resourceId = "ResourceId" case authenticationToken = "Authentication" case principals = "Principals" + case notificationOptions = "NotificationOptions" + case resourceId = "ResourceId" } } public struct DeleteUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "UserId", location: .uri(locationName: "UserId"), required: true, type: .string) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the user. public let userId: String @@ -1297,7 +1325,7 @@ extension Workdocs { } public struct Comment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Contributor", required: false, type: .structure), AWSShapeMember(label: "Status", required: false, type: .enum), AWSShapeMember(label: "ParentId", required: false, type: .string), @@ -1353,7 +1381,7 @@ extension Workdocs { } public struct CreateNotificationSubscriptionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Subscription", required: false, type: .structure) ] /// The subscription. @@ -1369,7 +1397,7 @@ extension Workdocs { } public struct UploadMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UploadUrl", required: false, type: .string), AWSShapeMember(label: "SignedHeaders", required: false, type: .map) ] @@ -1390,7 +1418,7 @@ extension Workdocs { } public struct UpdateFolderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParentFolderId", required: false, type: .string), AWSShapeMember(label: "FolderId", location: .uri(locationName: "FolderId"), required: true, type: .string), AWSShapeMember(label: "ResourceState", required: false, type: .enum), @@ -1401,9 +1429,9 @@ extension Workdocs { public let parentFolderId: String? /// The ID of the folder. public let folderId: String - /// The resource state of the folder. Note that only ACTIVE and RECYCLED are accepted values from the API. + /// The resource state of the folder. Only ACTIVE and RECYCLED are accepted values from the API. public let resourceState: ResourceStateType? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The name of the folder. public let name: String? @@ -1426,7 +1454,7 @@ extension Workdocs { } public struct DescribeNotificationSubscriptionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrganizationId", location: .uri(locationName: "OrganizationId"), required: true, type: .string), AWSShapeMember(label: "Marker", location: .querystring(locationName: "marker"), required: false, type: .string), AWSShapeMember(label: "Limit", location: .querystring(locationName: "limit"), required: false, type: .integer) @@ -1467,7 +1495,7 @@ extension Workdocs { } public struct CreateCustomMetadataRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .querystring(locationName: "versionid"), required: false, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string), @@ -1475,7 +1503,7 @@ extension Workdocs { ] /// The ID of the version, if the custom metadata is being added to a document version. public let versionId: String? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the resource. public let resourceId: String @@ -1498,7 +1526,7 @@ extension Workdocs { } public struct Participants: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Users", required: false, type: .list), AWSShapeMember(label: "Groups", required: false, type: .list) ] @@ -1519,13 +1547,13 @@ extension Workdocs { } public struct RemoveAllResourcePermissionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string) ] /// The ID of the resource. public let resourceId: String - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? public init(resourceId: String, authenticationToken: String? = nil) { @@ -1540,10 +1568,11 @@ extension Workdocs { } public struct UpdateUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Locale", required: false, type: .enum), AWSShapeMember(label: "UserId", location: .uri(locationName: "UserId"), required: true, type: .string), AWSShapeMember(label: "GivenName", required: false, type: .string), + AWSShapeMember(label: "GrantPoweruserPrivileges", required: false, type: .enum), AWSShapeMember(label: "TimeZoneId", required: false, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "Surname", required: false, type: .string), @@ -1556,9 +1585,11 @@ extension Workdocs { public let userId: String /// The given name of the user. public let givenName: String? + /// Boolean value to determine whether the user is granted Poweruser privileges. + public let grantPoweruserPrivileges: BooleanEnumType? /// The time zone ID of the user. public let timeZoneId: String? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The surname of the user. public let surname: String? @@ -1567,10 +1598,11 @@ extension Workdocs { /// The amount of storage for the user. public let storageRule: StorageRuleType? - public init(locale: LocaleType? = nil, userId: String, givenName: String? = nil, timeZoneId: String? = nil, authenticationToken: String? = nil, surname: String? = nil, type: UserType? = nil, storageRule: StorageRuleType? = nil) { + public init(locale: LocaleType? = nil, userId: String, givenName: String? = nil, grantPoweruserPrivileges: BooleanEnumType? = nil, timeZoneId: String? = nil, authenticationToken: String? = nil, surname: String? = nil, type: UserType? = nil, storageRule: StorageRuleType? = nil) { self.locale = locale self.userId = userId self.givenName = givenName + self.grantPoweruserPrivileges = grantPoweruserPrivileges self.timeZoneId = timeZoneId self.authenticationToken = authenticationToken self.surname = surname @@ -1582,6 +1614,7 @@ extension Workdocs { case locale = "Locale" case userId = "UserId" case givenName = "GivenName" + case grantPoweruserPrivileges = "GrantPoweruserPrivileges" case timeZoneId = "TimeZoneId" case authenticationToken = "Authentication" case surname = "Surname" @@ -1597,7 +1630,7 @@ extension Workdocs { } public struct GetDocumentPathResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Path", required: false, type: .structure) ] /// The path information. @@ -1613,11 +1646,11 @@ extension Workdocs { } public struct DeleteFolderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "FolderId", location: .uri(locationName: "FolderId"), required: true, type: .string) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the folder. public let folderId: String @@ -1634,7 +1667,7 @@ extension Workdocs { } public struct DeleteCustomMetadataRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .querystring(locationName: "versionId"), required: false, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string), @@ -1643,7 +1676,7 @@ extension Workdocs { ] /// The ID of the version, if the custom metadata is being deleted from a document version. public let versionId: String? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the resource, either a document or folder. public let resourceId: String @@ -1670,7 +1703,7 @@ extension Workdocs { } public struct GetCurrentUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "User", required: false, type: .structure) ] /// Metadata of the user. @@ -1686,14 +1719,14 @@ extension Workdocs { } public struct CreateFolderRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ParentFolderId", required: true, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string) ] /// The ID of the parent folder. public let parentFolderId: String - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The name of the new folder. public let name: String? @@ -1712,13 +1745,13 @@ extension Workdocs { } public struct DeleteLabelsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "Labels", location: .querystring(locationName: "labels"), required: false, type: .list), AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string), AWSShapeMember(label: "DeleteAll", location: .querystring(locationName: "deleteAll"), required: false, type: .boolean) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// List of labels to delete from the resource. public let labels: [String]? @@ -1751,7 +1784,7 @@ extension Workdocs { } public struct DocumentMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Labels", required: false, type: .list), AWSShapeMember(label: "ResourceState", required: false, type: .enum), AWSShapeMember(label: "CreatorId", required: false, type: .string), @@ -1807,14 +1840,17 @@ extension Workdocs { } public struct DescribeResourcePermissionsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), + AWSShapeMember(label: "PrincipalId", location: .querystring(locationName: "principalId"), required: false, type: .string), AWSShapeMember(label: "Limit", location: .querystring(locationName: "limit"), required: false, type: .integer), AWSShapeMember(label: "Marker", location: .querystring(locationName: "marker"), required: false, type: .string), AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? + /// The ID of the principal to filter permissions by. + public let principalId: String? /// The maximum number of items to return with this call. public let limit: Int32? /// The marker for the next set of results. (You received this marker from a previous call) @@ -1822,8 +1858,9 @@ extension Workdocs { /// The ID of the resource. public let resourceId: String - public init(authenticationToken: String? = nil, limit: Int32? = nil, marker: String? = nil, resourceId: String) { + public init(authenticationToken: String? = nil, principalId: String? = nil, limit: Int32? = nil, marker: String? = nil, resourceId: String) { self.authenticationToken = authenticationToken + self.principalId = principalId self.limit = limit self.marker = marker self.resourceId = resourceId @@ -1831,6 +1868,7 @@ extension Workdocs { private enum CodingKeys: String, CodingKey { case authenticationToken = "Authentication" + case principalId = "principalId" case limit = "limit" case marker = "marker" case resourceId = "ResourceId" @@ -1853,7 +1891,7 @@ extension Workdocs { } public struct Principal: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .enum), AWSShapeMember(label: "Roles", required: false, type: .list), AWSShapeMember(label: "Id", required: false, type: .string) @@ -1879,7 +1917,7 @@ extension Workdocs { } public struct GroupMetadata: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Id", required: false, type: .string) ] @@ -1900,7 +1938,7 @@ extension Workdocs { } public struct DescribeNotificationSubscriptionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Subscriptions", required: false, type: .list) ] @@ -1927,7 +1965,7 @@ extension Workdocs { } public struct UpdateDocumentVersionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .uri(locationName: "VersionId"), required: true, type: .string), AWSShapeMember(label: "VersionStatus", required: false, type: .enum), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), @@ -1937,7 +1975,7 @@ extension Workdocs { public let versionId: String /// The status of the version. public let versionStatus: DocumentVersionStatus? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the document. public let documentId: String @@ -1971,7 +2009,7 @@ extension Workdocs { } public struct GetDocumentPathRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Fields", location: .querystring(locationName: "fields"), required: false, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "Limit", location: .querystring(locationName: "limit"), required: false, type: .integer), @@ -1980,7 +2018,7 @@ extension Workdocs { ] /// A comma-separated list of values. Specify NAME to include the names of the parent folders. public let fields: String? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The maximum number of levels in the hierarchy to return. public let limit: Int32? @@ -2007,13 +2045,13 @@ extension Workdocs { } public struct RemoveResourcePermissionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "PrincipalType", location: .querystring(locationName: "type"), required: false, type: .enum), AWSShapeMember(label: "PrincipalId", location: .uri(locationName: "PrincipalId"), required: true, type: .string), AWSShapeMember(label: "ResourceId", location: .uri(locationName: "ResourceId"), required: true, type: .string) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The principal type of the resource. public let principalType: PrincipalType? @@ -2038,7 +2076,7 @@ extension Workdocs { } public struct CreateCommentResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Comment", required: false, type: .structure) ] /// The comment that has been created. @@ -2054,7 +2092,7 @@ extension Workdocs { } public struct CreateUserResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "User", required: false, type: .structure) ] /// The user information. @@ -2070,7 +2108,7 @@ extension Workdocs { } public struct DeleteCommentRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .uri(locationName: "VersionId"), required: true, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "DocumentId", location: .uri(locationName: "DocumentId"), required: true, type: .string), @@ -2078,7 +2116,7 @@ extension Workdocs { ] /// The ID of the document version. public let versionId: String - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the document. public let documentId: String @@ -2107,7 +2145,7 @@ extension Workdocs { } public struct DescribeDocumentVersionsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DocumentVersions", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string) ] @@ -2128,7 +2166,7 @@ extension Workdocs { } public struct User: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EmailAddress", required: false, type: .string), AWSShapeMember(label: "RecycleBinFolderId", required: false, type: .string), AWSShapeMember(label: "Username", required: false, type: .string), @@ -2214,7 +2252,7 @@ extension Workdocs { } public struct StorageRuleType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StorageType", required: false, type: .enum), AWSShapeMember(label: "StorageAllocatedInBytes", required: false, type: .long) ] @@ -2235,7 +2273,7 @@ extension Workdocs { } public struct SharePrincipal: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Role", required: true, type: .enum), AWSShapeMember(label: "Type", required: true, type: .enum), AWSShapeMember(label: "Id", required: true, type: .string) @@ -2263,11 +2301,14 @@ extension Workdocs { public enum UserType: String, CustomStringConvertible, Codable { case user = "USER" case admin = "ADMIN" + case poweruser = "POWERUSER" + case minimaluser = "MINIMALUSER" + case workspacesuser = "WORKSPACESUSER" public var description: String { return self.rawValue } } public struct CreateFolderResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metadata", required: false, type: .structure) ] /// The metadata of the folder. @@ -2283,11 +2324,11 @@ extension Workdocs { } public struct DeactivateUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "UserId", location: .uri(locationName: "UserId"), required: true, type: .string) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the user. public let userId: String @@ -2304,7 +2345,7 @@ extension Workdocs { } public struct GetFolderPathRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Fields", location: .querystring(locationName: "fields"), required: false, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "FolderId", location: .uri(locationName: "FolderId"), required: true, type: .string), @@ -2313,7 +2354,7 @@ extension Workdocs { ] /// A comma-separated list of values. Specify "NAME" to include the names of the parent folders. public let fields: String? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the folder. public let folderId: String @@ -2340,7 +2381,7 @@ extension Workdocs { } public struct ResourcePath: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Components", required: false, type: .list) ] /// The components of the resource path. @@ -2360,12 +2401,33 @@ extension Workdocs { public var description: String { return self.rawValue } } + public struct NotificationOptions: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "SendEmail", required: false, type: .boolean), + AWSShapeMember(label: "EmailMessage", required: false, type: .string) + ] + /// Boolean value to indicate an email notification should be sent to the receipients. + public let sendEmail: Bool? + /// Text value to be included in the email body. + public let emailMessage: String? + + public init(sendEmail: Bool? = nil, emailMessage: String? = nil) { + self.sendEmail = sendEmail + self.emailMessage = emailMessage + } + + private enum CodingKeys: String, CodingKey { + case sendEmail = "SendEmail" + case emailMessage = "EmailMessage" + } + } + public struct DeleteFolderContentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "FolderId", location: .uri(locationName: "FolderId"), required: true, type: .string) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the folder. public let folderId: String @@ -2386,7 +2448,7 @@ extension Workdocs { } public struct DescribeUsersRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Fields", location: .querystring(locationName: "fields"), required: false, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "UserIds", location: .querystring(locationName: "userIds"), required: false, type: .string), @@ -2400,7 +2462,7 @@ extension Workdocs { ] /// A comma-separated list of values. Specify "STORAGE_METADATA" to include the user storage quota and utilization information. public let fields: String? - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The IDs of the users. public let userIds: String? @@ -2446,8 +2508,44 @@ extension Workdocs { } } + public struct DescribeGroupsRequest: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), + AWSShapeMember(label: "Limit", location: .querystring(locationName: "limit"), required: false, type: .integer), + AWSShapeMember(label: "Marker", location: .querystring(locationName: "marker"), required: false, type: .string), + AWSShapeMember(label: "SearchQuery", location: .querystring(locationName: "searchQuery"), required: true, type: .string), + AWSShapeMember(label: "OrganizationId", location: .querystring(locationName: "organizationId"), required: false, type: .string) + ] + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. + public let authenticationToken: String? + /// The maximum number of items to return with this call. + public let limit: Int32? + /// The marker for the next set of results. (You received this marker from a previous call.) + public let marker: String? + /// A query to describe groups by group name. + public let searchQuery: String + /// The ID of the organization. + public let organizationId: String? + + public init(authenticationToken: String? = nil, limit: Int32? = nil, marker: String? = nil, searchQuery: String, organizationId: String? = nil) { + self.authenticationToken = authenticationToken + self.limit = limit + self.marker = marker + self.searchQuery = searchQuery + self.organizationId = organizationId + } + + private enum CodingKeys: String, CodingKey { + case authenticationToken = "Authentication" + case limit = "limit" + case marker = "marker" + case searchQuery = "searchQuery" + case organizationId = "organizationId" + } + } + public struct InitiateDocumentVersionUploadResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metadata", required: false, type: .structure), AWSShapeMember(label: "UploadMetadata", required: false, type: .structure) ] @@ -2468,7 +2566,7 @@ extension Workdocs { } public struct DescribeFolderContentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "Sort", location: .querystring(locationName: "sort"), required: false, type: .enum), AWSShapeMember(label: "Marker", location: .querystring(locationName: "marker"), required: false, type: .string), @@ -2478,7 +2576,7 @@ extension Workdocs { AWSShapeMember(label: "Type", location: .querystring(locationName: "type"), required: false, type: .enum), AWSShapeMember(label: "Include", location: .querystring(locationName: "include"), required: false, type: .string) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The sorting criteria. public let sort: ResourceSortType? @@ -2528,14 +2626,14 @@ extension Workdocs { } public struct AbortDocumentVersionUploadRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "VersionId", location: .uri(locationName: "VersionId"), required: true, type: .string), AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "DocumentId", location: .uri(locationName: "DocumentId"), required: true, type: .string) ] /// The ID of the version. public let versionId: String - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the document. public let documentId: String @@ -2554,7 +2652,7 @@ extension Workdocs { } public struct GetDocumentVersionResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Metadata", required: false, type: .structure), AWSShapeMember(label: "CustomMetadata", required: false, type: .map) ] @@ -2575,7 +2673,7 @@ extension Workdocs { } public struct DeleteNotificationSubscriptionRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "OrganizationId", location: .uri(locationName: "OrganizationId"), required: true, type: .string), AWSShapeMember(label: "SubscriptionId", location: .uri(locationName: "SubscriptionId"), required: true, type: .string) ] @@ -2600,7 +2698,7 @@ extension Workdocs { } public struct DescribeCommentsResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Comments", required: false, type: .list), AWSShapeMember(label: "Marker", required: false, type: .string) ] @@ -2627,10 +2725,10 @@ extension Workdocs { } public struct GetCurrentUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: true, type: .string) ] - /// Amazon WorkDocs authentication token. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String public init(authenticationToken: String) { @@ -2643,7 +2741,7 @@ extension Workdocs { } public struct DescribeRootFoldersResponse: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Marker", required: false, type: .string), AWSShapeMember(label: "Folders", required: false, type: .list) ] @@ -2663,12 +2761,18 @@ extension Workdocs { } } + public enum BooleanEnumType: String, CustomStringConvertible, Codable { + case `true` = "TRUE" + case `false` = "FALSE" + public var description: String { return self.rawValue } + } + public struct ActivateUserRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AuthenticationToken", location: .header(locationName: "Authentication"), required: false, type: .string), AWSShapeMember(label: "UserId", location: .uri(locationName: "UserId"), required: true, type: .string) ] - /// Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials. + /// Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials. public let authenticationToken: String? /// The ID of the user. public let userId: String diff --git a/Sources/AWSSDKSwift/Services/workspaces/.dat.nosync1dda.fjP4Fb b/Sources/AWSSDKSwift/Services/workspaces/.dat.nosync1dda.fjP4Fb new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Sources/AWSSDKSwift/Services/workspaces/Workspaces_Shapes.swift b/Sources/AWSSDKSwift/Services/workspaces/Workspaces_Shapes.swift index 6965956b8de..79079d573d9 100644 --- a/Sources/AWSSDKSwift/Services/workspaces/Workspaces_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/workspaces/Workspaces_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Workspaces { public struct CreateTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "Tags", required: true, type: .list) ] @@ -27,7 +27,7 @@ extension Workspaces { } public struct TerminateWorkspacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TerminateWorkspaceRequests", required: true, type: .list) ] /// An array of structures that specify the WorkSpaces to terminate. @@ -50,7 +50,7 @@ extension Workspaces { } public struct FailedCreateWorkspaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorMessage", required: false, type: .string), AWSShapeMember(label: "WorkspaceRequest", required: false, type: .structure), AWSShapeMember(label: "ErrorCode", required: false, type: .string) @@ -76,7 +76,7 @@ extension Workspaces { } public struct DescribeWorkspaceBundlesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Owner", required: false, type: .string), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "BundleIds", required: false, type: .list) @@ -102,7 +102,7 @@ extension Workspaces { } public struct UserStorage: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Capacity", required: false, type: .string) ] /// The amount of user storage for the bundle. @@ -118,7 +118,7 @@ extension Workspaces { } public struct WorkspaceBundle: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Description", required: false, type: .string), AWSShapeMember(label: "ComputeType", required: false, type: .structure), AWSShapeMember(label: "UserStorage", required: false, type: .structure), @@ -159,7 +159,7 @@ extension Workspaces { } public struct RebootWorkspacesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedRequests", required: false, type: .list) ] /// An array of structures representing any WorkSpaces that could not be rebooted. @@ -175,7 +175,7 @@ extension Workspaces { } public struct DescribeTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string) ] /// The resource ID of the request. @@ -191,7 +191,7 @@ extension Workspaces { } public struct CreateWorkspacesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedRequests", required: false, type: .list), AWSShapeMember(label: "PendingRequests", required: false, type: .list) ] @@ -216,7 +216,7 @@ extension Workspaces { } public struct RebootWorkspacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RebootWorkspaceRequests", required: true, type: .list) ] /// An array of structures that specify the WorkSpaces to reboot. @@ -232,7 +232,7 @@ extension Workspaces { } public struct Tag: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .string), AWSShapeMember(label: "Key", required: true, type: .string) ] @@ -257,7 +257,7 @@ extension Workspaces { } public struct DescribeWorkspacesConnectionStatusResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WorkspacesConnectionStatus", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -293,7 +293,7 @@ extension Workspaces { } public struct StartWorkspacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartWorkspaceRequests", required: true, type: .list) ] /// The requests. @@ -327,7 +327,7 @@ extension Workspaces { } public struct ComputeType: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Name", required: false, type: .enum) ] /// The name of the compute type for the bundle. @@ -343,7 +343,7 @@ extension Workspaces { } public struct FailedWorkspaceChangeRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ErrorMessage", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .string), AWSShapeMember(label: "WorkspaceId", required: false, type: .string) @@ -369,7 +369,7 @@ extension Workspaces { } public struct StopRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WorkspaceId", required: false, type: .string) ] /// The ID of the WorkSpace. @@ -385,7 +385,7 @@ extension Workspaces { } public struct StartRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WorkspaceId", required: false, type: .string) ] /// The ID of the WorkSpace. @@ -401,7 +401,7 @@ extension Workspaces { } public struct DefaultWorkspaceCreationProperties: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DefaultOu", required: false, type: .string), AWSShapeMember(label: "CustomSecurityGroupId", required: false, type: .string), AWSShapeMember(label: "EnableInternetAccess", required: false, type: .boolean), @@ -437,7 +437,7 @@ extension Workspaces { } public struct StopWorkspacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StopWorkspaceRequests", required: true, type: .list) ] /// The requests. @@ -453,7 +453,7 @@ extension Workspaces { } public struct DescribeWorkspacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "DirectoryId", required: false, type: .string), AWSShapeMember(label: "UserName", required: false, type: .string), AWSShapeMember(label: "Limit", required: false, type: .integer), @@ -494,7 +494,7 @@ extension Workspaces { } public struct RebuildWorkspacesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedRequests", required: false, type: .list) ] /// An array of structures representing any WorkSpaces that could not be rebuilt. @@ -510,7 +510,7 @@ extension Workspaces { } public struct RebootRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WorkspaceId", required: true, type: .string) ] /// The identifier of the WorkSpace to reboot. @@ -526,7 +526,7 @@ extension Workspaces { } public struct DescribeWorkspacesConnectionStatusRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WorkspaceIds", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -547,7 +547,7 @@ extension Workspaces { } public struct WorkspaceConnectionStatus: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WorkspaceId", required: false, type: .string), AWSShapeMember(label: "ConnectionState", required: false, type: .enum), AWSShapeMember(label: "LastKnownUserConnectionTimestamp", required: false, type: .timestamp), @@ -578,7 +578,7 @@ extension Workspaces { } public struct DescribeTagsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TagList", required: false, type: .list) ] /// The list of tags. @@ -601,7 +601,7 @@ extension Workspaces { } public struct DescribeWorkspacesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Workspaces", required: false, type: .list) ] @@ -622,7 +622,7 @@ extension Workspaces { } public struct WorkspaceProperties: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RunningMode", required: false, type: .enum), AWSShapeMember(label: "RunningModeAutoStopTimeoutInMinutes", required: false, type: .integer) ] @@ -643,7 +643,7 @@ extension Workspaces { } public struct ModifyWorkspacePropertiesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WorkspaceId", required: true, type: .string), AWSShapeMember(label: "WorkspaceProperties", required: true, type: .structure) ] @@ -664,7 +664,7 @@ extension Workspaces { } public struct DescribeWorkspaceBundlesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Bundles", required: false, type: .list) ] @@ -685,7 +685,7 @@ extension Workspaces { } public struct DeleteTagsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ResourceId", required: true, type: .string), AWSShapeMember(label: "TagKeys", required: true, type: .list) ] @@ -706,7 +706,7 @@ extension Workspaces { } public struct Workspace: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetId", required: false, type: .string), AWSShapeMember(label: "UserName", required: false, type: .string), AWSShapeMember(label: "State", required: false, type: .enum), @@ -786,7 +786,7 @@ extension Workspaces { } public struct RebuildWorkspacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "RebuildWorkspaceRequests", required: true, type: .list) ] /// An array of structures that specify the WorkSpaces to rebuild. @@ -802,7 +802,7 @@ extension Workspaces { } public struct DescribeWorkspaceDirectoriesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Directories", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -823,7 +823,7 @@ extension Workspaces { } public struct TerminateWorkspacesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedRequests", required: false, type: .list) ] /// An array of structures representing any WorkSpaces that could not be terminated. @@ -839,7 +839,7 @@ extension Workspaces { } public struct StopWorkspacesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedRequests", required: false, type: .list) ] /// The failed requests. @@ -861,7 +861,7 @@ extension Workspaces { } public struct RebuildRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WorkspaceId", required: true, type: .string) ] /// The identifier of the WorkSpace to rebuild. @@ -877,7 +877,7 @@ extension Workspaces { } public struct CreateWorkspacesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Workspaces", required: true, type: .list) ] /// An array of structures that specify the WorkSpaces to create. @@ -893,7 +893,7 @@ extension Workspaces { } public struct WorkspaceDirectory: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SubnetIds", required: false, type: .list), AWSShapeMember(label: "WorkspaceCreationProperties", required: false, type: .structure), AWSShapeMember(label: "DnsIpAddresses", required: false, type: .list), @@ -964,7 +964,7 @@ extension Workspaces { } public struct WorkspaceRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UserName", required: true, type: .string), AWSShapeMember(label: "VolumeEncryptionKey", required: false, type: .string), AWSShapeMember(label: "Tags", required: false, type: .list), @@ -1014,7 +1014,7 @@ extension Workspaces { } public struct StartWorkspacesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "FailedRequests", required: false, type: .list) ] /// The failed requests. @@ -1034,7 +1034,7 @@ extension Workspaces { } public struct DescribeWorkspaceDirectoriesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "DirectoryIds", required: false, type: .list) ] @@ -1055,7 +1055,7 @@ extension Workspaces { } public struct TerminateRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "WorkspaceId", required: true, type: .string) ] /// The identifier of the WorkSpace to terminate. diff --git a/Sources/AWSSDKSwift/Services/xray/Xray_Shapes.swift b/Sources/AWSSDKSwift/Services/xray/Xray_Shapes.swift index 39f6fa72a2f..e7bc2702136 100644 --- a/Sources/AWSSDKSwift/Services/xray/Xray_Shapes.swift +++ b/Sources/AWSSDKSwift/Services/xray/Xray_Shapes.swift @@ -6,7 +6,7 @@ import AWSSDKSwiftCore extension Xray { public struct BatchGetTracesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "Traces", required: false, type: .list), AWSShapeMember(label: "UnprocessedTraceIds", required: false, type: .list) @@ -32,7 +32,7 @@ extension Xray { } public struct EdgeStatistics: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TotalResponseTime", required: false, type: .double), AWSShapeMember(label: "FaultStatistics", required: false, type: .structure), AWSShapeMember(label: "OkCount", required: false, type: .long), @@ -68,7 +68,7 @@ extension Xray { } public struct Segment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Document", required: false, type: .string), AWSShapeMember(label: "Id", required: false, type: .string) ] @@ -89,7 +89,7 @@ extension Xray { } public struct Alias: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Type", required: false, type: .string), AWSShapeMember(label: "Name", required: false, type: .string), AWSShapeMember(label: "Names", required: false, type: .list) @@ -115,7 +115,7 @@ extension Xray { } public struct ValueWithServiceIds: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceIds", required: false, type: .list), AWSShapeMember(label: "AnnotationValue", required: false, type: .structure) ] @@ -136,7 +136,7 @@ extension Xray { } public struct HistogramEntry: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Value", required: false, type: .double), AWSShapeMember(label: "Count", required: false, type: .integer) ] @@ -157,7 +157,7 @@ extension Xray { } public struct UnprocessedTraceSegment: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Id", required: false, type: .string), AWSShapeMember(label: "ErrorCode", required: false, type: .string), AWSShapeMember(label: "Message", required: false, type: .string) @@ -183,7 +183,7 @@ extension Xray { } public struct GetTraceSummariesResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TracesProcessedCount", required: false, type: .long), AWSShapeMember(label: "TraceSummaries", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string), @@ -214,7 +214,7 @@ extension Xray { } public struct Edge: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "SummaryStatistics", required: false, type: .structure), AWSShapeMember(label: "EndTime", required: false, type: .timestamp), @@ -254,34 +254,8 @@ extension Xray { } } - public struct ErrorStatistics: AWSShape { - public static var members: [AWSShapeMember] = [ - AWSShapeMember(label: "TotalCount", required: false, type: .long), - AWSShapeMember(label: "OtherCount", required: false, type: .long), - AWSShapeMember(label: "ThrottleCount", required: false, type: .long) - ] - /// The total number of requests that failed with a 4xx Client Error status code. - public let totalCount: Int64? - /// The number of requests that failed with untracked 4xx Client Error status codes. - public let otherCount: Int64? - /// The number of requests that failed with a 419 throttling status code. - public let throttleCount: Int64? - - public init(totalCount: Int64? = nil, otherCount: Int64? = nil, throttleCount: Int64? = nil) { - self.totalCount = totalCount - self.otherCount = otherCount - self.throttleCount = throttleCount - } - - private enum CodingKeys: String, CodingKey { - case totalCount = "TotalCount" - case otherCount = "OtherCount" - case throttleCount = "ThrottleCount" - } - } - public struct GetServiceGraphRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EndTime", required: true, type: .timestamp), AWSShapeMember(label: "NextToken", required: false, type: .string), AWSShapeMember(label: "StartTime", required: true, type: .timestamp) @@ -306,8 +280,34 @@ extension Xray { } } + public struct ErrorStatistics: AWSShape { + public static var _members: [AWSShapeMember] = [ + AWSShapeMember(label: "TotalCount", required: false, type: .long), + AWSShapeMember(label: "OtherCount", required: false, type: .long), + AWSShapeMember(label: "ThrottleCount", required: false, type: .long) + ] + /// The total number of requests that failed with a 4xx Client Error status code. + public let totalCount: Int64? + /// The number of requests that failed with untracked 4xx Client Error status codes. + public let otherCount: Int64? + /// The number of requests that failed with a 419 throttling status code. + public let throttleCount: Int64? + + public init(totalCount: Int64? = nil, otherCount: Int64? = nil, throttleCount: Int64? = nil) { + self.totalCount = totalCount + self.otherCount = otherCount + self.throttleCount = throttleCount + } + + private enum CodingKeys: String, CodingKey { + case totalCount = "TotalCount" + case otherCount = "OtherCount" + case throttleCount = "ThrottleCount" + } + } + public struct PutTraceSegmentsResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "UnprocessedTraceSegments", required: false, type: .list) ] /// Segments that failed processing. @@ -323,7 +323,7 @@ extension Xray { } public struct AnnotationValue: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "BooleanValue", required: false, type: .boolean), AWSShapeMember(label: "StringValue", required: false, type: .string), AWSShapeMember(label: "NumberValue", required: false, type: .double) @@ -349,7 +349,7 @@ extension Xray { } public struct GetServiceGraphResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: false, type: .timestamp), AWSShapeMember(label: "EndTime", required: false, type: .timestamp), AWSShapeMember(label: "Services", required: false, type: .list), @@ -380,7 +380,7 @@ extension Xray { } public struct TraceUser: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ServiceIds", required: false, type: .list), AWSShapeMember(label: "UserName", required: false, type: .string) ] @@ -401,7 +401,7 @@ extension Xray { } public struct FaultStatistics: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TotalCount", required: false, type: .long), AWSShapeMember(label: "OtherCount", required: false, type: .long) ] @@ -422,7 +422,7 @@ extension Xray { } public struct Http: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ClientIp", required: false, type: .string), AWSShapeMember(label: "HttpURL", required: false, type: .string), AWSShapeMember(label: "HttpMethod", required: false, type: .string), @@ -458,7 +458,7 @@ extension Xray { } public struct ServiceStatistics: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TotalResponseTime", required: false, type: .double), AWSShapeMember(label: "FaultStatistics", required: false, type: .structure), AWSShapeMember(label: "OkCount", required: false, type: .long), @@ -494,7 +494,7 @@ extension Xray { } public struct GetTraceGraphRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TraceIds", required: true, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -515,7 +515,7 @@ extension Xray { } public struct GetTraceGraphResult: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Services", required: false, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -536,7 +536,7 @@ extension Xray { } public struct Trace: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "Segments", required: false, type: .list), AWSShapeMember(label: "Duration", required: false, type: .double), AWSShapeMember(label: "Id", required: false, type: .string) @@ -562,7 +562,7 @@ extension Xray { } public struct PutTraceSegmentsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TraceSegmentDocuments", required: true, type: .list) ] /// A string containing a JSON document defining one or more segments or subsegments. @@ -578,7 +578,7 @@ extension Xray { } public struct GetTraceSummariesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "StartTime", required: true, type: .timestamp), AWSShapeMember(label: "EndTime", required: true, type: .timestamp), AWSShapeMember(label: "FilterExpression", required: false, type: .string), @@ -618,7 +618,7 @@ extension Xray { } public struct PutTelemetryRecordsRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "EC2InstanceId", required: false, type: .string), AWSShapeMember(label: "Hostname", required: false, type: .string), AWSShapeMember(label: "TelemetryRecords", required: true, type: .list), @@ -645,7 +645,7 @@ extension Xray { } public struct Service: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: false, type: .string), AWSShapeMember(label: "SummaryStatistics", required: false, type: .structure), AWSShapeMember(label: "DurationHistogram", required: false, type: .list), @@ -721,7 +721,7 @@ extension Xray { } public struct ServiceId: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "AccountId", required: false, type: .string), AWSShapeMember(label: "Names", required: false, type: .list), AWSShapeMember(label: "Type", required: false, type: .string), @@ -748,7 +748,7 @@ extension Xray { } public struct BackendConnectionErrors: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "ConnectionRefusedCount", required: false, type: .integer), AWSShapeMember(label: "TimeoutCount", required: false, type: .integer), AWSShapeMember(label: "UnknownHostCount", required: false, type: .integer), @@ -783,22 +783,22 @@ extension Xray { } public struct TelemetryRecord: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "SegmentsRejectedCount", required: false, type: .integer), - AWSShapeMember(label: "Timestamp", required: false, type: .timestamp), + AWSShapeMember(label: "Timestamp", required: true, type: .timestamp), AWSShapeMember(label: "SegmentsReceivedCount", required: false, type: .integer), AWSShapeMember(label: "SegmentsSentCount", required: false, type: .integer), AWSShapeMember(label: "SegmentsSpilloverCount", required: false, type: .integer), AWSShapeMember(label: "BackendConnectionErrors", required: false, type: .structure) ] public let segmentsRejectedCount: Int32? - public let timestamp: TimeStamp? + public let timestamp: TimeStamp public let segmentsReceivedCount: Int32? public let segmentsSentCount: Int32? public let segmentsSpilloverCount: Int32? public let backendConnectionErrors: BackendConnectionErrors? - public init(segmentsRejectedCount: Int32? = nil, timestamp: TimeStamp? = nil, segmentsReceivedCount: Int32? = nil, segmentsSentCount: Int32? = nil, segmentsSpilloverCount: Int32? = nil, backendConnectionErrors: BackendConnectionErrors? = nil) { + public init(segmentsRejectedCount: Int32? = nil, timestamp: TimeStamp, segmentsReceivedCount: Int32? = nil, segmentsSentCount: Int32? = nil, segmentsSpilloverCount: Int32? = nil, backendConnectionErrors: BackendConnectionErrors? = nil) { self.segmentsRejectedCount = segmentsRejectedCount self.timestamp = timestamp self.segmentsReceivedCount = segmentsReceivedCount @@ -818,7 +818,7 @@ extension Xray { } public struct BatchGetTracesRequest: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "TraceIds", required: true, type: .list), AWSShapeMember(label: "NextToken", required: false, type: .string) ] @@ -839,7 +839,7 @@ extension Xray { } public struct TraceSummary: AWSShape { - public static var members: [AWSShapeMember] = [ + public static var _members: [AWSShapeMember] = [ AWSShapeMember(label: "IsPartial", required: false, type: .boolean), AWSShapeMember(label: "ServiceIds", required: false, type: .list), AWSShapeMember(label: "Http", required: false, type: .structure), diff --git a/Sources/CodeGenerator/CodeGenerator.swift b/Sources/CodeGenerator/CodeGenerator.swift index ef69d31655a..d345490eba4 100644 --- a/Sources/CodeGenerator/CodeGenerator.swift +++ b/Sources/CodeGenerator/CodeGenerator.swift @@ -311,7 +311,7 @@ extension AWSService { return code }) if hints.count > 0 { - code += "\(indt(2))public static var members: [AWSShapeMember] = [" + code += "\(indt(2))public static var _members: [AWSShapeMember] = [" code += "\n" code += hints.joined(separator: ", \n") code += "\n" @@ -358,7 +358,13 @@ extension AWSService { code += "\n\n" case .structure(let type): - code += "\(indt(1))public struct \(shape.name): AWSShape {\n" + let hasRecursiveOwnReference = type.members.contains(where: { + return $0.shape.swiftTypeName == shape.swiftTypeName + || $0.shape.swiftTypeName == "[\(shape.swiftTypeName)]" + }) + + let classOrStruct = hasRecursiveOwnReference ? "class" : "struct" + code += "\(indt(1))public \(classOrStruct) \(shape.swiftTypeName): AWSShape {\n" if let payload = type.payload { code += "\(indt(2))/// The key for the payload\n" code += "\(indt(2))public static let payloadPath: String? = \"\(payload)\"\n" diff --git a/Sources/CodeGenerator/Util.swift b/Sources/CodeGenerator/Util.swift index 6c093f07235..b1e655693ad 100644 --- a/Sources/CodeGenerator/Util.swift +++ b/Sources/CodeGenerator/Util.swift @@ -29,7 +29,7 @@ func rootPath() -> String { } func loadEndpointJSON() throws -> JSON { - let data = try Data(contentsOf: URL(string: "file://\(rootPath())/models/endpoints/endpoint.json")!) + let data = try Data(contentsOf: URL(string: "file://\(rootPath())/models/endpoints/endpoints.json")!) return JSON(data: data) } diff --git a/models/apis/AWSMigrationHub/2017-05-31/api-2.json b/models/apis/AWSMigrationHub/2017-05-31/api-2.json new file mode 100644 index 00000000000..d545cff2a32 --- /dev/null +++ b/models/apis/AWSMigrationHub/2017-05-31/api-2.json @@ -0,0 +1,839 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-05-31", + "endpointPrefix":"mgh", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"AWS Migration Hub", + "signatureVersion":"v4", + "targetPrefix":"AWSMigrationHub", + "uid":"AWSMigrationHub-2017-05-31" + }, + "operations":{ + "AssociateCreatedArtifact":{ + "name":"AssociateCreatedArtifact", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateCreatedArtifactRequest"}, + "output":{"shape":"AssociateCreatedArtifactResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"DryRunOperation"}, + {"shape":"UnauthorizedOperation"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "AssociateDiscoveredResource":{ + "name":"AssociateDiscoveredResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateDiscoveredResourceRequest"}, + "output":{"shape":"AssociateDiscoveredResourceResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"DryRunOperation"}, + {"shape":"UnauthorizedOperation"}, + {"shape":"InvalidInputException"}, + {"shape":"PolicyErrorException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "CreateProgressUpdateStream":{ + "name":"CreateProgressUpdateStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateProgressUpdateStreamRequest"}, + "output":{"shape":"CreateProgressUpdateStreamResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"DryRunOperation"}, + {"shape":"UnauthorizedOperation"}, + {"shape":"InvalidInputException"} + ] + }, + "DeleteProgressUpdateStream":{ + "name":"DeleteProgressUpdateStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteProgressUpdateStreamRequest"}, + "output":{"shape":"DeleteProgressUpdateStreamResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"DryRunOperation"}, + {"shape":"UnauthorizedOperation"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "DescribeApplicationState":{ + "name":"DescribeApplicationState", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeApplicationStateRequest"}, + "output":{"shape":"DescribeApplicationStateResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidInputException"}, + {"shape":"PolicyErrorException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "DescribeMigrationTask":{ + "name":"DescribeMigrationTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMigrationTaskRequest"}, + "output":{"shape":"DescribeMigrationTaskResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "DisassociateCreatedArtifact":{ + "name":"DisassociateCreatedArtifact", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateCreatedArtifactRequest"}, + "output":{"shape":"DisassociateCreatedArtifactResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"DryRunOperation"}, + {"shape":"UnauthorizedOperation"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "DisassociateDiscoveredResource":{ + "name":"DisassociateDiscoveredResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateDiscoveredResourceRequest"}, + "output":{"shape":"DisassociateDiscoveredResourceResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"DryRunOperation"}, + {"shape":"UnauthorizedOperation"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ImportMigrationTask":{ + "name":"ImportMigrationTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportMigrationTaskRequest"}, + "output":{"shape":"ImportMigrationTaskResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"DryRunOperation"}, + {"shape":"UnauthorizedOperation"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListCreatedArtifacts":{ + "name":"ListCreatedArtifacts", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCreatedArtifactsRequest"}, + "output":{"shape":"ListCreatedArtifactsResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListDiscoveredResources":{ + "name":"ListDiscoveredResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDiscoveredResourcesRequest"}, + "output":{"shape":"ListDiscoveredResourcesResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListMigrationTasks":{ + "name":"ListMigrationTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMigrationTasksRequest"}, + "output":{"shape":"ListMigrationTasksResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidInputException"}, + {"shape":"PolicyErrorException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListProgressUpdateStreams":{ + "name":"ListProgressUpdateStreams", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListProgressUpdateStreamsRequest"}, + "output":{"shape":"ListProgressUpdateStreamsResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidInputException"} + ] + }, + "NotifyApplicationState":{ + "name":"NotifyApplicationState", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"NotifyApplicationStateRequest"}, + "output":{"shape":"NotifyApplicationStateResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"DryRunOperation"}, + {"shape":"UnauthorizedOperation"}, + {"shape":"InvalidInputException"}, + {"shape":"PolicyErrorException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "NotifyMigrationTaskState":{ + "name":"NotifyMigrationTaskState", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"NotifyMigrationTaskStateRequest"}, + "output":{"shape":"NotifyMigrationTaskStateResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"DryRunOperation"}, + {"shape":"UnauthorizedOperation"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "PutResourceAttributes":{ + "name":"PutResourceAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutResourceAttributesRequest"}, + "output":{"shape":"PutResourceAttributesResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"DryRunOperation"}, + {"shape":"UnauthorizedOperation"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ApplicationId":{ + "type":"string", + "max":1600, + "min":1 + }, + "ApplicationStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "COMPLETED" + ] + }, + "AssociateCreatedArtifactRequest":{ + "type":"structure", + "required":[ + "ProgressUpdateStream", + "MigrationTaskName", + "CreatedArtifact" + ], + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "CreatedArtifact":{"shape":"CreatedArtifact"}, + "DryRun":{"shape":"DryRun"} + } + }, + "AssociateCreatedArtifactResult":{ + "type":"structure", + "members":{ + } + }, + "AssociateDiscoveredResourceRequest":{ + "type":"structure", + "required":[ + "ProgressUpdateStream", + "MigrationTaskName", + "DiscoveredResource" + ], + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "DiscoveredResource":{"shape":"DiscoveredResource"}, + "DryRun":{"shape":"DryRun"} + } + }, + "AssociateDiscoveredResourceResult":{ + "type":"structure", + "members":{ + } + }, + "ConfigurationId":{ + "type":"string", + "min":1 + }, + "CreateProgressUpdateStreamRequest":{ + "type":"structure", + "required":["ProgressUpdateStreamName"], + "members":{ + "ProgressUpdateStreamName":{"shape":"ProgressUpdateStream"}, + "DryRun":{"shape":"DryRun"} + } + }, + "CreateProgressUpdateStreamResult":{ + "type":"structure", + "members":{ + } + }, + "CreatedArtifact":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"CreatedArtifactName"}, + "Description":{"shape":"CreatedArtifactDescription"} + } + }, + "CreatedArtifactDescription":{ + "type":"string", + "max":500, + "min":0 + }, + "CreatedArtifactList":{ + "type":"list", + "member":{"shape":"CreatedArtifact"} + }, + "CreatedArtifactName":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"arn:[a-z-]+:[a-z0-9-]+:(?:[a-z0-9-]+|):(?:[0-9]{12}|):.*" + }, + "DeleteProgressUpdateStreamRequest":{ + "type":"structure", + "required":["ProgressUpdateStreamName"], + "members":{ + "ProgressUpdateStreamName":{"shape":"ProgressUpdateStream"}, + "DryRun":{"shape":"DryRun"} + } + }, + "DeleteProgressUpdateStreamResult":{ + "type":"structure", + "members":{ + } + }, + "DescribeApplicationStateRequest":{ + "type":"structure", + "required":["ApplicationId"], + "members":{ + "ApplicationId":{"shape":"ApplicationId"} + } + }, + "DescribeApplicationStateResult":{ + "type":"structure", + "members":{ + "ApplicationStatus":{"shape":"ApplicationStatus"}, + "LastUpdatedTime":{"shape":"UpdateDateTime"} + } + }, + "DescribeMigrationTaskRequest":{ + "type":"structure", + "required":[ + "ProgressUpdateStream", + "MigrationTaskName" + ], + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"} + } + }, + "DescribeMigrationTaskResult":{ + "type":"structure", + "members":{ + "MigrationTask":{"shape":"MigrationTask"} + } + }, + "DisassociateCreatedArtifactRequest":{ + "type":"structure", + "required":[ + "ProgressUpdateStream", + "MigrationTaskName", + "CreatedArtifactName" + ], + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "CreatedArtifactName":{"shape":"CreatedArtifactName"}, + "DryRun":{"shape":"DryRun"} + } + }, + "DisassociateCreatedArtifactResult":{ + "type":"structure", + "members":{ + } + }, + "DisassociateDiscoveredResourceRequest":{ + "type":"structure", + "required":[ + "ProgressUpdateStream", + "MigrationTaskName", + "ConfigurationId" + ], + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "ConfigurationId":{"shape":"ConfigurationId"}, + "DryRun":{"shape":"DryRun"} + } + }, + "DisassociateDiscoveredResourceResult":{ + "type":"structure", + "members":{ + } + }, + "DiscoveredResource":{ + "type":"structure", + "required":["ConfigurationId"], + "members":{ + "ConfigurationId":{"shape":"ConfigurationId"}, + "Description":{"shape":"DiscoveredResourceDescription"} + } + }, + "DiscoveredResourceDescription":{ + "type":"string", + "max":500, + "min":0 + }, + "DiscoveredResourceList":{ + "type":"list", + "member":{"shape":"DiscoveredResource"} + }, + "DryRun":{"type":"boolean"}, + "DryRunOperation":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ErrorMessage":{"type":"string"}, + "ImportMigrationTaskRequest":{ + "type":"structure", + "required":[ + "ProgressUpdateStream", + "MigrationTaskName" + ], + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "DryRun":{"shape":"DryRun"} + } + }, + "ImportMigrationTaskResult":{ + "type":"structure", + "members":{ + } + }, + "InternalServerError":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "InvalidInputException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "LatestResourceAttributeList":{ + "type":"list", + "member":{"shape":"ResourceAttribute"}, + "max":100, + "min":0 + }, + "ListCreatedArtifactsRequest":{ + "type":"structure", + "required":[ + "ProgressUpdateStream", + "MigrationTaskName" + ], + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "NextToken":{"shape":"Token"}, + "MaxResults":{"shape":"MaxResultsCreatedArtifacts"} + } + }, + "ListCreatedArtifactsResult":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"Token"}, + "CreatedArtifactList":{"shape":"CreatedArtifactList"} + } + }, + "ListDiscoveredResourcesRequest":{ + "type":"structure", + "required":[ + "ProgressUpdateStream", + "MigrationTaskName" + ], + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "NextToken":{"shape":"Token"}, + "MaxResults":{"shape":"MaxResultsResources"} + } + }, + "ListDiscoveredResourcesResult":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"Token"}, + "DiscoveredResourceList":{"shape":"DiscoveredResourceList"} + } + }, + "ListMigrationTasksRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"Token"}, + "MaxResults":{"shape":"MaxResults"}, + "ResourceName":{"shape":"ResourceName"} + } + }, + "ListMigrationTasksResult":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"Token"}, + "MigrationTaskSummaryList":{"shape":"MigrationTaskSummaryList"} + } + }, + "ListProgressUpdateStreamsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"Token"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListProgressUpdateStreamsResult":{ + "type":"structure", + "members":{ + "ProgressUpdateStreamSummaryList":{"shape":"ProgressUpdateStreamSummaryList"}, + "NextToken":{"shape":"Token"} + } + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "MaxResultsCreatedArtifacts":{ + "type":"integer", + "box":true, + "max":10, + "min":1 + }, + "MaxResultsResources":{ + "type":"integer", + "box":true, + "max":10, + "min":1 + }, + "MigrationTask":{ + "type":"structure", + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "Task":{"shape":"Task"}, + "UpdateDateTime":{"shape":"UpdateDateTime"}, + "ResourceAttributeList":{"shape":"LatestResourceAttributeList"} + } + }, + "MigrationTaskName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[^:|]+" + }, + "MigrationTaskSummary":{ + "type":"structure", + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "Status":{"shape":"Status"}, + "ProgressPercent":{"shape":"ProgressPercent"}, + "StatusDetail":{"shape":"StatusDetail"}, + "UpdateDateTime":{"shape":"UpdateDateTime"} + } + }, + "MigrationTaskSummaryList":{ + "type":"list", + "member":{"shape":"MigrationTaskSummary"} + }, + "NextUpdateSeconds":{ + "type":"integer", + "min":0 + }, + "NotifyApplicationStateRequest":{ + "type":"structure", + "required":[ + "ApplicationId", + "Status" + ], + "members":{ + "ApplicationId":{"shape":"ApplicationId"}, + "Status":{"shape":"ApplicationStatus"}, + "DryRun":{"shape":"DryRun"} + } + }, + "NotifyApplicationStateResult":{ + "type":"structure", + "members":{ + } + }, + "NotifyMigrationTaskStateRequest":{ + "type":"structure", + "required":[ + "ProgressUpdateStream", + "MigrationTaskName", + "Task", + "UpdateDateTime", + "NextUpdateSeconds" + ], + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "Task":{"shape":"Task"}, + "UpdateDateTime":{"shape":"UpdateDateTime"}, + "NextUpdateSeconds":{"shape":"NextUpdateSeconds"}, + "DryRun":{"shape":"DryRun"} + } + }, + "NotifyMigrationTaskStateResult":{ + "type":"structure", + "members":{ + } + }, + "PolicyErrorException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ProgressPercent":{ + "type":"integer", + "box":true, + "max":100, + "min":0 + }, + "ProgressUpdateStream":{ + "type":"string", + "max":50, + "min":1, + "pattern":"[^/:|\\000-\\037]+" + }, + "ProgressUpdateStreamSummary":{ + "type":"structure", + "members":{ + "ProgressUpdateStreamName":{"shape":"ProgressUpdateStream"} + } + }, + "ProgressUpdateStreamSummaryList":{ + "type":"list", + "member":{"shape":"ProgressUpdateStreamSummary"} + }, + "PutResourceAttributesRequest":{ + "type":"structure", + "required":[ + "ProgressUpdateStream", + "MigrationTaskName", + "ResourceAttributeList" + ], + "members":{ + "ProgressUpdateStream":{"shape":"ProgressUpdateStream"}, + "MigrationTaskName":{"shape":"MigrationTaskName"}, + "ResourceAttributeList":{"shape":"ResourceAttributeList"}, + "DryRun":{"shape":"DryRun"} + } + }, + "PutResourceAttributesResult":{ + "type":"structure", + "members":{ + } + }, + "ResourceAttribute":{ + "type":"structure", + "required":[ + "Type", + "Value" + ], + "members":{ + "Type":{"shape":"ResourceAttributeType"}, + "Value":{"shape":"ResourceAttributeValue"} + } + }, + "ResourceAttributeList":{ + "type":"list", + "member":{"shape":"ResourceAttribute"}, + "max":100, + "min":1 + }, + "ResourceAttributeType":{ + "type":"string", + "enum":[ + "IPV4_ADDRESS", + "IPV6_ADDRESS", + "MAC_ADDRESS", + "FQDN", + "VM_MANAGER_ID", + "VM_MANAGED_OBJECT_REFERENCE", + "VM_NAME", + "VM_PATH", + "BIOS_ID", + "MOTHERBOARD_SERIAL_NUMBER", + "LABEL" + ] + }, + "ResourceAttributeValue":{ + "type":"string", + "max":256, + "min":1 + }, + "ResourceName":{ + "type":"string", + "max":1600, + "min":1 + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "Status":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "FAILED", + "COMPLETED" + ] + }, + "StatusDetail":{ + "type":"string", + "max":500, + "min":0 + }, + "Task":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{"shape":"Status"}, + "StatusDetail":{"shape":"StatusDetail"}, + "ProgressPercent":{"shape":"ProgressPercent"} + } + }, + "Token":{"type":"string"}, + "UnauthorizedOperation":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "UpdateDateTime":{"type":"timestamp"} + } +} diff --git a/models/apis/AWSMigrationHub/2017-05-31/docs-2.json b/models/apis/AWSMigrationHub/2017-05-31/docs-2.json new file mode 100644 index 00000000000..674c7721cb1 --- /dev/null +++ b/models/apis/AWSMigrationHub/2017-05-31/docs-2.json @@ -0,0 +1,497 @@ +{ + "version": "2.0", + "service": "

", + "operations": { + "AssociateCreatedArtifact": "

Associates a created artifact of an AWS cloud resource, the target receiving the migration, with the migration task performed by a migration tool. This API has the following traits:

", + "AssociateDiscoveredResource": "

Associates a discovered resource ID from Application Discovery Service (ADS) with a migration task.

", + "CreateProgressUpdateStream": "

Creates a progress update stream which is an AWS resource used for access control as well as a namespace for migration task names that is implicitly linked to your AWS account. It must uniquely identify the migration tool as it is used for all updates made by the tool; however, it does not need to be unique for each AWS account because it is scoped to the AWS account.

", + "DeleteProgressUpdateStream": "

Deletes a progress update stream, including all of its tasks, which was previously created as an AWS resource used for access control. This API has the following traits:

", + "DescribeApplicationState": "

Gets the migration status of an application.

", + "DescribeMigrationTask": "

Retrieves a list of all attributes associated with a specific migration task.

", + "DisassociateCreatedArtifact": "

Disassociates a created artifact of an AWS resource with a migration task performed by a migration tool that was previously associated. This API has the following traits:

", + "DisassociateDiscoveredResource": "

Disassociate an Application Discovery Service (ADS) discovered resource from a migration task.

", + "ImportMigrationTask": "

Registers a new migration task which represents a server, database, etc., being migrated to AWS by a migration tool.

This API is a prerequisite to calling the NotifyMigrationTaskState API as the migration tool must first register the migration task with Migration Hub.

", + "ListCreatedArtifacts": "

Lists the created artifacts attached to a given migration task in an update stream. This API has the following traits:

", + "ListDiscoveredResources": "

Lists discovered resources associated with the given MigrationTask.

", + "ListMigrationTasks": "

Lists all, or filtered by resource name, migration tasks associated with the user account making this call. This API has the following traits:

", + "ListProgressUpdateStreams": "

Lists progress update streams associated with the user account making this call.

", + "NotifyApplicationState": "

Sets the migration state of an application. For a given application identified by the value passed to ApplicationId, its status is set or updated by passing one of three values to Status: NOT_STARTED | IN_PROGRESS | COMPLETED.

", + "NotifyMigrationTaskState": "

Notifies Migration Hub of the current status, progress, or other detail regarding a migration task. This API has the following traits:

", + "PutResourceAttributes": "

Provides identifying details of the resource being migrated so that it can be associated in the Application Discovery Service (ADS)'s repository. This association occurs asynchronously after PutResourceAttributes returns.

Keep in mind that subsequent calls to PutResourceAttributes will override previously stored attributes. For example, if it is first called with a MAC address, but later, it is desired to add an IP address, it will then be required to call it with both the IP and MAC addresses to prevent overiding the MAC address.

Because this is an asynchronous call, it will always return 200, whether an association occurs or not. To confirm if an association was found based on the provided details, call ListAssociatedResource.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

Exception raised when the account making the call is not whitelisted or there are other authentication errors.

", + "refs": { + } + }, + "ApplicationId": { + "base": null, + "refs": { + "DescribeApplicationStateRequest$ApplicationId": "

The configurationId in ADS that uniquely identifies the grouped application.

", + "NotifyApplicationStateRequest$ApplicationId": "

The configurationId in ADS that uniquely identifies the grouped application.

" + } + }, + "ApplicationStatus": { + "base": null, + "refs": { + "DescribeApplicationStateResult$ApplicationStatus": "

Status of the application - Not Started, In-Progress, Complete.

", + "NotifyApplicationStateRequest$Status": "

Status of the application - Not Started, In-Progress, Complete.

" + } + }, + "AssociateCreatedArtifactRequest": { + "base": null, + "refs": { + } + }, + "AssociateCreatedArtifactResult": { + "base": null, + "refs": { + } + }, + "AssociateDiscoveredResourceRequest": { + "base": null, + "refs": { + } + }, + "AssociateDiscoveredResourceResult": { + "base": null, + "refs": { + } + }, + "ConfigurationId": { + "base": null, + "refs": { + "DisassociateDiscoveredResourceRequest$ConfigurationId": "

ConfigurationId of the ADS resource to be disassociated.

", + "DiscoveredResource$ConfigurationId": "

The configurationId in ADS that uniquely identifies the on-premise resource.

" + } + }, + "CreateProgressUpdateStreamRequest": { + "base": null, + "refs": { + } + }, + "CreateProgressUpdateStreamResult": { + "base": null, + "refs": { + } + }, + "CreatedArtifact": { + "base": "

An ARN of the AWS cloud resource target receiving the migration (e.g., AMI, EC2 instance, RDS instance, etc.).

", + "refs": { + "AssociateCreatedArtifactRequest$CreatedArtifact": "

An ARN of the AWS resource related to the migration (e.g., AMI, EC2 instance, RDS instance, etc.)

", + "CreatedArtifactList$member": null + } + }, + "CreatedArtifactDescription": { + "base": null, + "refs": { + "CreatedArtifact$Description": "

A description that can be free-form text to record additional detail about the artifact for clarity or for later reference.

" + } + }, + "CreatedArtifactList": { + "base": null, + "refs": { + "ListCreatedArtifactsResult$CreatedArtifactList": "

List of created artifacts up to the maximum number of results specified in the request.

" + } + }, + "CreatedArtifactName": { + "base": null, + "refs": { + "CreatedArtifact$Name": "

An ARN that uniquely identifies the result of a migration task.

", + "DisassociateCreatedArtifactRequest$CreatedArtifactName": "

An ARN of the AWS resource related to the migration (e.g., AMI, EC2 instance, RDS instance, etc.)

" + } + }, + "DeleteProgressUpdateStreamRequest": { + "base": null, + "refs": { + } + }, + "DeleteProgressUpdateStreamResult": { + "base": null, + "refs": { + } + }, + "DescribeApplicationStateRequest": { + "base": null, + "refs": { + } + }, + "DescribeApplicationStateResult": { + "base": null, + "refs": { + } + }, + "DescribeMigrationTaskRequest": { + "base": null, + "refs": { + } + }, + "DescribeMigrationTaskResult": { + "base": null, + "refs": { + } + }, + "DisassociateCreatedArtifactRequest": { + "base": null, + "refs": { + } + }, + "DisassociateCreatedArtifactResult": { + "base": null, + "refs": { + } + }, + "DisassociateDiscoveredResourceRequest": { + "base": null, + "refs": { + } + }, + "DisassociateDiscoveredResourceResult": { + "base": null, + "refs": { + } + }, + "DiscoveredResource": { + "base": "

Object representing the on-premises resource being migrated.

", + "refs": { + "AssociateDiscoveredResourceRequest$DiscoveredResource": "

Object representing a Resource.

", + "DiscoveredResourceList$member": null + } + }, + "DiscoveredResourceDescription": { + "base": null, + "refs": { + "DiscoveredResource$Description": "

A description that can be free-form text to record additional detail about the discovered resource for clarity or later reference.

" + } + }, + "DiscoveredResourceList": { + "base": null, + "refs": { + "ListDiscoveredResourcesResult$DiscoveredResourceList": "

Returned list of discovered resources associated with the given MigrationTask.

" + } + }, + "DryRun": { + "base": null, + "refs": { + "AssociateCreatedArtifactRequest$DryRun": "

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

", + "AssociateDiscoveredResourceRequest$DryRun": "

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

", + "CreateProgressUpdateStreamRequest$DryRun": "

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

", + "DeleteProgressUpdateStreamRequest$DryRun": "

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

", + "DisassociateCreatedArtifactRequest$DryRun": "

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

", + "DisassociateDiscoveredResourceRequest$DryRun": "

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

", + "ImportMigrationTaskRequest$DryRun": "

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

", + "NotifyApplicationStateRequest$DryRun": "

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

", + "NotifyMigrationTaskStateRequest$DryRun": "

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

", + "PutResourceAttributesRequest$DryRun": "

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

" + } + }, + "DryRunOperation": { + "base": "

Exception raised to indicate a successfully authorized action when the DryRun flag is set to \"true\".

", + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AccessDeniedException$Message": null, + "DryRunOperation$Message": null, + "InternalServerError$Message": null, + "InvalidInputException$Message": null, + "PolicyErrorException$Message": null, + "ResourceNotFoundException$Message": null, + "ServiceUnavailableException$Message": null, + "UnauthorizedOperation$Message": null + } + }, + "ImportMigrationTaskRequest": { + "base": null, + "refs": { + } + }, + "ImportMigrationTaskResult": { + "base": null, + "refs": { + } + }, + "InternalServerError": { + "base": "

Exception raised when there is an internal, configuration, or dependency error encountered.

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

Exception raised when the provided input violates a policy constraint or is entered in the wrong format or data type.

", + "refs": { + } + }, + "LatestResourceAttributeList": { + "base": null, + "refs": { + "MigrationTask$ResourceAttributeList": "

" + } + }, + "ListCreatedArtifactsRequest": { + "base": null, + "refs": { + } + }, + "ListCreatedArtifactsResult": { + "base": null, + "refs": { + } + }, + "ListDiscoveredResourcesRequest": { + "base": null, + "refs": { + } + }, + "ListDiscoveredResourcesResult": { + "base": null, + "refs": { + } + }, + "ListMigrationTasksRequest": { + "base": null, + "refs": { + } + }, + "ListMigrationTasksResult": { + "base": null, + "refs": { + } + }, + "ListProgressUpdateStreamsRequest": { + "base": null, + "refs": { + } + }, + "ListProgressUpdateStreamsResult": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListMigrationTasksRequest$MaxResults": "

Value to specify how many results are returned per page.

", + "ListProgressUpdateStreamsRequest$MaxResults": "

Filter to limit the maximum number of results to list per page.

" + } + }, + "MaxResultsCreatedArtifacts": { + "base": null, + "refs": { + "ListCreatedArtifactsRequest$MaxResults": "

Maximum number of results to be returned per page.

" + } + }, + "MaxResultsResources": { + "base": null, + "refs": { + "ListDiscoveredResourcesRequest$MaxResults": "

The maximum number of results returned per page.

" + } + }, + "MigrationTask": { + "base": "

Represents a migration task in a migration tool.

", + "refs": { + "DescribeMigrationTaskResult$MigrationTask": "

Object encapsulating information about the migration task.

" + } + }, + "MigrationTaskName": { + "base": null, + "refs": { + "AssociateCreatedArtifactRequest$MigrationTaskName": "

Unique identifier that references the migration task.

", + "AssociateDiscoveredResourceRequest$MigrationTaskName": "

The identifier given to the MigrationTask.

", + "DescribeMigrationTaskRequest$MigrationTaskName": "

The identifier given to the MigrationTask.

", + "DisassociateCreatedArtifactRequest$MigrationTaskName": "

Unique identifier that references the migration task to be disassociated with the artifact.

", + "DisassociateDiscoveredResourceRequest$MigrationTaskName": "

The identifier given to the MigrationTask.

", + "ImportMigrationTaskRequest$MigrationTaskName": "

Unique identifier that references the migration task.

", + "ListCreatedArtifactsRequest$MigrationTaskName": "

Unique identifier that references the migration task.

", + "ListDiscoveredResourcesRequest$MigrationTaskName": "

The name of the MigrationTask.

", + "MigrationTask$MigrationTaskName": "

Unique identifier that references the migration task.

", + "MigrationTaskSummary$MigrationTaskName": "

Unique identifier that references the migration task.

", + "NotifyMigrationTaskStateRequest$MigrationTaskName": "

Unique identifier that references the migration task.

", + "PutResourceAttributesRequest$MigrationTaskName": "

Unique identifier that references the migration task.

" + } + }, + "MigrationTaskSummary": { + "base": "

MigrationTaskSummary includes MigrationTaskName, ProgressPercent, ProgressUpdateStream, Status, and UpdateDateTime for each task.

", + "refs": { + "MigrationTaskSummaryList$member": null + } + }, + "MigrationTaskSummaryList": { + "base": null, + "refs": { + "ListMigrationTasksResult$MigrationTaskSummaryList": "

Lists the migration task's summary which includes: MigrationTaskName, ProgressPercent, ProgressUpdateStream, Status, and the UpdateDateTime for each task.

" + } + }, + "NextUpdateSeconds": { + "base": null, + "refs": { + "NotifyMigrationTaskStateRequest$NextUpdateSeconds": "

Number of seconds after the UpdateDateTime within which the Migration Hub can expect an update. If Migration Hub does not receive an update within the specified interval, then the migration task will be considered stale.

" + } + }, + "NotifyApplicationStateRequest": { + "base": null, + "refs": { + } + }, + "NotifyApplicationStateResult": { + "base": null, + "refs": { + } + }, + "NotifyMigrationTaskStateRequest": { + "base": null, + "refs": { + } + }, + "NotifyMigrationTaskStateResult": { + "base": null, + "refs": { + } + }, + "PolicyErrorException": { + "base": "

Exception raised when there are problems accessing ADS (Application Discovery Service); most likely due to a misconfigured policy or the ADSCaller role is missing or not configured correctly.

", + "refs": { + } + }, + "ProgressPercent": { + "base": null, + "refs": { + "MigrationTaskSummary$ProgressPercent": "

", + "Task$ProgressPercent": "

Indication of the percentage completion of the task.

" + } + }, + "ProgressUpdateStream": { + "base": null, + "refs": { + "AssociateCreatedArtifactRequest$ProgressUpdateStream": "

The name of the ProgressUpdateStream.

", + "AssociateDiscoveredResourceRequest$ProgressUpdateStream": "

The name of the ProgressUpdateStream.

", + "CreateProgressUpdateStreamRequest$ProgressUpdateStreamName": "

The name of the ProgressUpdateStream.

", + "DeleteProgressUpdateStreamRequest$ProgressUpdateStreamName": "

The name of the ProgressUpdateStream.

", + "DescribeMigrationTaskRequest$ProgressUpdateStream": "

The name of the ProgressUpdateStream.

", + "DisassociateCreatedArtifactRequest$ProgressUpdateStream": "

The name of the ProgressUpdateStream.

", + "DisassociateDiscoveredResourceRequest$ProgressUpdateStream": "

The name of the ProgressUpdateStream.

", + "ImportMigrationTaskRequest$ProgressUpdateStream": "

The name of the ProgressUpdateStream.

", + "ListCreatedArtifactsRequest$ProgressUpdateStream": "

The name of the ProgressUpdateStream.

", + "ListDiscoveredResourcesRequest$ProgressUpdateStream": "

The name of the ProgressUpdateStream.

", + "MigrationTask$ProgressUpdateStream": "

A name that identifies the vendor of the migration tool being used.

", + "MigrationTaskSummary$ProgressUpdateStream": "

An AWS resource used for access control. It should uniquely identify the migration tool as it is used for all updates made by the tool.

", + "NotifyMigrationTaskStateRequest$ProgressUpdateStream": "

The name of the ProgressUpdateStream.

", + "ProgressUpdateStreamSummary$ProgressUpdateStreamName": "

The name of the ProgressUpdateStream.

", + "PutResourceAttributesRequest$ProgressUpdateStream": "

The name of the ProgressUpdateStream.

" + } + }, + "ProgressUpdateStreamSummary": { + "base": "

Summary of the AWS resource used for access control that is implicitly linked to your AWS account.

", + "refs": { + "ProgressUpdateStreamSummaryList$member": null + } + }, + "ProgressUpdateStreamSummaryList": { + "base": null, + "refs": { + "ListProgressUpdateStreamsResult$ProgressUpdateStreamSummaryList": "

List of progress update streams up to the max number of results passed in the input.

" + } + }, + "PutResourceAttributesRequest": { + "base": null, + "refs": { + } + }, + "PutResourceAttributesResult": { + "base": null, + "refs": { + } + }, + "ResourceAttribute": { + "base": "

Attribute associated with a resource.

", + "refs": { + "LatestResourceAttributeList$member": null, + "ResourceAttributeList$member": null + } + }, + "ResourceAttributeList": { + "base": null, + "refs": { + "PutResourceAttributesRequest$ResourceAttributeList": "

Information about the resource that is being migrated. This data will be used to map the task to a resource in the Application Discovery Service (ADS)'s repository.

" + } + }, + "ResourceAttributeType": { + "base": null, + "refs": { + "ResourceAttribute$Type": "

Type of resource.

" + } + }, + "ResourceAttributeValue": { + "base": null, + "refs": { + "ResourceAttribute$Value": "

Value of the resource type.

" + } + }, + "ResourceName": { + "base": null, + "refs": { + "ListMigrationTasksRequest$ResourceName": "

Filter migration tasks by discovered resource name.

" + } + }, + "ResourceNotFoundException": { + "base": "

Exception raised when the request references a resource (ADS configuration, update stream, migration task, etc.) that does not exist in ADS (Application Discovery Service) or in Migration Hub's repository.

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

Exception raised when the service encounters throttled communication with upstream dependencies or is overloaded with requests.

", + "refs": { + } + }, + "Status": { + "base": null, + "refs": { + "MigrationTaskSummary$Status": "

Status of the task.

", + "Task$Status": "

Status of the task - Not Started, In-Progress, Complete.

" + } + }, + "StatusDetail": { + "base": null, + "refs": { + "MigrationTaskSummary$StatusDetail": "

Detail information of what is being done within the overall status state.

", + "Task$StatusDetail": "

Details of task status as notified by a migration tool. A tool might use this field to provide clarifying information about the status that is unique to that tool or that explains an error state.

" + } + }, + "Task": { + "base": "

Task object encapsulating task information.

", + "refs": { + "MigrationTask$Task": "

Task object encapsulating task information.

", + "NotifyMigrationTaskStateRequest$Task": "

Information about the task's progress and status.

" + } + }, + "Token": { + "base": null, + "refs": { + "ListCreatedArtifactsRequest$NextToken": "

If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken.

", + "ListCreatedArtifactsResult$NextToken": "

If there are more created artifacts than the max result, return the next token to be passed to the next call as a bookmark of where to start from.

", + "ListDiscoveredResourcesRequest$NextToken": "

If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken.

", + "ListDiscoveredResourcesResult$NextToken": "

If there are more discovered resources than the max result, return the next token to be passed to the next call as a bookmark of where to start from.

", + "ListMigrationTasksRequest$NextToken": "

If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken.

", + "ListMigrationTasksResult$NextToken": "

If there are more migration tasks than the max result, return the next token to be passed to the next call as a bookmark of where to start from.

", + "ListProgressUpdateStreamsRequest$NextToken": "

If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken.

", + "ListProgressUpdateStreamsResult$NextToken": "

If there are more streams created than the max result, return the next token to be passed to the next call as a bookmark of where to start from.

" + } + }, + "UnauthorizedOperation": { + "base": "

Exception raised to indicate a request was not authorized when the DryRun flag is set to \"true\".

", + "refs": { + } + }, + "UpdateDateTime": { + "base": null, + "refs": { + "DescribeApplicationStateResult$LastUpdatedTime": "

The timestamp when the application status was last updated.

", + "MigrationTask$UpdateDateTime": "

The timestamp when the task was gathered.

", + "MigrationTaskSummary$UpdateDateTime": "

The timestamp when the task was gathered.

", + "NotifyMigrationTaskStateRequest$UpdateDateTime": "

The timestamp when the task was gathered.

" + } + } + } +} diff --git a/models/apis/AWSMigrationHub/2017-05-31/examples-1.json b/models/apis/AWSMigrationHub/2017-05-31/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/AWSMigrationHub/2017-05-31/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/AWSMigrationHub/2017-05-31/paginators-1.json b/models/apis/AWSMigrationHub/2017-05-31/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/AWSMigrationHub/2017-05-31/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/Cloud9/2017-09-23/api-2.json b/models/apis/Cloud9/2017-09-23/api-2.json new file mode 100644 index 00000000000..2166e8a5522 --- /dev/null +++ b/models/apis/Cloud9/2017-09-23/api-2.json @@ -0,0 +1,528 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-09-23", + "endpointPrefix":"cloud9", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"AWS Cloud9", + "signatureVersion":"v4", + "targetPrefix":"AWSCloud9WorkspaceManagementService", + "uid":"cloud9-2017-09-23" + }, + "operations":{ + "CreateEnvironmentEC2":{ + "name":"CreateEnvironmentEC2", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEnvironmentEC2Request"}, + "output":{"shape":"CreateEnvironmentEC2Result"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerErrorException"} + ], + "idempotent":true + }, + "CreateEnvironmentMembership":{ + "name":"CreateEnvironmentMembership", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEnvironmentMembershipRequest"}, + "output":{"shape":"CreateEnvironmentMembershipResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerErrorException"} + ], + "idempotent":true + }, + "DeleteEnvironment":{ + "name":"DeleteEnvironment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEnvironmentRequest"}, + "output":{"shape":"DeleteEnvironmentResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerErrorException"} + ], + "idempotent":true + }, + "DeleteEnvironmentMembership":{ + "name":"DeleteEnvironmentMembership", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEnvironmentMembershipRequest"}, + "output":{"shape":"DeleteEnvironmentMembershipResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerErrorException"} + ], + "idempotent":true + }, + "DescribeEnvironmentMemberships":{ + "name":"DescribeEnvironmentMemberships", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEnvironmentMembershipsRequest"}, + "output":{"shape":"DescribeEnvironmentMembershipsResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "DescribeEnvironmentStatus":{ + "name":"DescribeEnvironmentStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEnvironmentStatusRequest"}, + "output":{"shape":"DescribeEnvironmentStatusResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "DescribeEnvironments":{ + "name":"DescribeEnvironments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEnvironmentsRequest"}, + "output":{"shape":"DescribeEnvironmentsResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "ListEnvironments":{ + "name":"ListEnvironments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListEnvironmentsRequest"}, + "output":{"shape":"ListEnvironmentsResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "UpdateEnvironment":{ + "name":"UpdateEnvironment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEnvironmentRequest"}, + "output":{"shape":"UpdateEnvironmentResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerErrorException"} + ], + "idempotent":true + }, + "UpdateEnvironmentMembership":{ + "name":"UpdateEnvironmentMembership", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEnvironmentMembershipRequest"}, + "output":{"shape":"UpdateEnvironmentMembershipResult"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerErrorException"} + ], + "idempotent":true + } + }, + "shapes":{ + "AutomaticStopTimeMinutes":{ + "type":"integer", + "box":true, + "max":20160 + }, + "BadRequestException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "BoundedEnvironmentIdList":{ + "type":"list", + "member":{"shape":"EnvironmentId"}, + "max":25, + "min":1 + }, + "ClientRequestToken":{ + "type":"string", + "pattern":"[\\x20-\\x7E]{10,128}" + }, + "ConflictException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "CreateEnvironmentEC2Request":{ + "type":"structure", + "required":[ + "name", + "instanceType" + ], + "members":{ + "name":{"shape":"EnvironmentName"}, + "description":{"shape":"EnvironmentDescription"}, + "clientRequestToken":{"shape":"ClientRequestToken"}, + "instanceType":{"shape":"InstanceType"}, + "subnetId":{"shape":"SubnetId"}, + "automaticStopTimeMinutes":{"shape":"AutomaticStopTimeMinutes"}, + "ownerArn":{"shape":"UserArn"} + } + }, + "CreateEnvironmentEC2Result":{ + "type":"structure", + "members":{ + "environmentId":{"shape":"EnvironmentId"} + } + }, + "CreateEnvironmentMembershipRequest":{ + "type":"structure", + "required":[ + "environmentId", + "userArn", + "permissions" + ], + "members":{ + "environmentId":{"shape":"EnvironmentId"}, + "userArn":{"shape":"UserArn"}, + "permissions":{"shape":"MemberPermissions"} + } + }, + "CreateEnvironmentMembershipResult":{ + "type":"structure", + "members":{ + "membership":{"shape":"EnvironmentMember"} + } + }, + "DeleteEnvironmentMembershipRequest":{ + "type":"structure", + "required":[ + "environmentId", + "userArn" + ], + "members":{ + "environmentId":{"shape":"EnvironmentId"}, + "userArn":{"shape":"UserArn"} + } + }, + "DeleteEnvironmentMembershipResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteEnvironmentRequest":{ + "type":"structure", + "required":["environmentId"], + "members":{ + "environmentId":{"shape":"EnvironmentId"} + } + }, + "DeleteEnvironmentResult":{ + "type":"structure", + "members":{ + } + }, + "DescribeEnvironmentMembershipsRequest":{ + "type":"structure", + "members":{ + "userArn":{"shape":"UserArn"}, + "environmentId":{"shape":"EnvironmentId"}, + "permissions":{"shape":"PermissionsList"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "DescribeEnvironmentMembershipsResult":{ + "type":"structure", + "members":{ + "memberships":{"shape":"EnvironmentMembersList"}, + "nextToken":{"shape":"String"} + } + }, + "DescribeEnvironmentStatusRequest":{ + "type":"structure", + "required":["environmentId"], + "members":{ + "environmentId":{"shape":"EnvironmentId"} + } + }, + "DescribeEnvironmentStatusResult":{ + "type":"structure", + "members":{ + "status":{"shape":"EnvironmentStatus"}, + "message":{"shape":"String"} + } + }, + "DescribeEnvironmentsRequest":{ + "type":"structure", + "required":["environmentIds"], + "members":{ + "environmentIds":{"shape":"BoundedEnvironmentIdList"} + } + }, + "DescribeEnvironmentsResult":{ + "type":"structure", + "members":{ + "environments":{"shape":"EnvironmentList"} + } + }, + "Environment":{ + "type":"structure", + "members":{ + "id":{"shape":"EnvironmentId"}, + "name":{"shape":"EnvironmentName"}, + "description":{"shape":"EnvironmentDescription"}, + "type":{"shape":"EnvironmentType"}, + "arn":{"shape":"String"}, + "ownerArn":{"shape":"String"} + } + }, + "EnvironmentDescription":{ + "type":"string", + "max":200 + }, + "EnvironmentId":{ + "type":"string", + "pattern":"^[a-zA-Z0-9]{8,32}$" + }, + "EnvironmentIdList":{ + "type":"list", + "member":{"shape":"EnvironmentId"} + }, + "EnvironmentList":{ + "type":"list", + "member":{"shape":"Environment"} + }, + "EnvironmentMember":{ + "type":"structure", + "members":{ + "permissions":{"shape":"Permissions"}, + "userId":{"shape":"String"}, + "userArn":{"shape":"UserArn"}, + "environmentId":{"shape":"EnvironmentId"}, + "lastAccess":{"shape":"Timestamp"} + } + }, + "EnvironmentMembersList":{ + "type":"list", + "member":{"shape":"EnvironmentMember"} + }, + "EnvironmentName":{ + "type":"string", + "max":60, + "min":1 + }, + "EnvironmentStatus":{ + "type":"string", + "enum":[ + "error", + "creating", + "connecting", + "ready", + "stopping", + "stopped", + "deleting" + ] + }, + "EnvironmentType":{ + "type":"string", + "enum":[ + "ssh", + "ec2" + ] + }, + "ForbiddenException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InstanceType":{ + "type":"string", + "max":20, + "min":5, + "pattern":"^[a-z][1-9][.][a-z0-9]+$" + }, + "InternalServerErrorException":{ + "type":"structure", + "members":{ + }, + "exception":true, + "fault":true + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ListEnvironmentsRequest":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "ListEnvironmentsResult":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"String"}, + "environmentIds":{"shape":"EnvironmentIdList"} + } + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":25, + "min":0 + }, + "MemberPermissions":{ + "type":"string", + "enum":[ + "read-write", + "read-only" + ] + }, + "NotFoundException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Permissions":{ + "type":"string", + "enum":[ + "owner", + "read-write", + "read-only" + ] + }, + "PermissionsList":{ + "type":"list", + "member":{"shape":"Permissions"} + }, + "String":{"type":"string"}, + "SubnetId":{ + "type":"string", + "max":30, + "min":5 + }, + "Timestamp":{"type":"timestamp"}, + "TooManyRequestsException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "UpdateEnvironmentMembershipRequest":{ + "type":"structure", + "required":[ + "environmentId", + "userArn", + "permissions" + ], + "members":{ + "environmentId":{"shape":"EnvironmentId"}, + "userArn":{"shape":"UserArn"}, + "permissions":{"shape":"MemberPermissions"} + } + }, + "UpdateEnvironmentMembershipResult":{ + "type":"structure", + "members":{ + "membership":{"shape":"EnvironmentMember"} + } + }, + "UpdateEnvironmentRequest":{ + "type":"structure", + "required":["environmentId"], + "members":{ + "environmentId":{"shape":"EnvironmentId"}, + "name":{"shape":"EnvironmentName"}, + "description":{"shape":"EnvironmentDescription"} + } + }, + "UpdateEnvironmentResult":{ + "type":"structure", + "members":{ + } + }, + "UserArn":{ + "type":"string", + "pattern":"arn:aws:(iam|sts)::\\d+:\\S+" + } + } +} diff --git a/models/apis/Cloud9/2017-09-23/docs-2.json b/models/apis/Cloud9/2017-09-23/docs-2.json new file mode 100644 index 00000000000..427e730a4ba --- /dev/null +++ b/models/apis/Cloud9/2017-09-23/docs-2.json @@ -0,0 +1,317 @@ +{ + "version": "2.0", + "service": "AWS Cloud9

AWS Cloud9 is a collection of tools that you can use to code, build, run, test, debug, and release software in the cloud.

In the background, these tools are available through development environments running on Amazon Elastic Compute Cloud (Amazon EC2) instances (known as Amazon EC2 environments), your own servers (known as SSH environments), or a combination. This enables you to create and switch between multiple environments, with each environment set up for a specific development project.

For more information about AWS Cloud9, see the AWS Cloud9 User Guide.

AWS Cloud9 supports these operations:

", + "operations": { + "CreateEnvironmentEC2": "

Creates an AWS Cloud9 development environment, launches an Amazon Elastic Compute Cloud (Amazon EC2) instance, and then hosts the environment on the instance.

", + "CreateEnvironmentMembership": "

Adds an environment member to an AWS Cloud9 development environment.

", + "DeleteEnvironment": "

Deletes an AWS Cloud9 development environment. If the environment is hosted on an Amazon Elastic Compute Cloud (Amazon EC2) instance, also terminates the instance.

", + "DeleteEnvironmentMembership": "

Deletes an environment member from an AWS Cloud9 development environment.

", + "DescribeEnvironmentMemberships": "

Gets information about environment members for an AWS Cloud9 development environment.

", + "DescribeEnvironmentStatus": "

Gets status information for an AWS Cloud9 development environment.

", + "DescribeEnvironments": "

Gets information about AWS Cloud9 development environments.

", + "ListEnvironments": "

Gets a list of AWS Cloud9 development environment identifiers.

", + "UpdateEnvironment": "

Changes the settings of an existing AWS Cloud9 development environment.

", + "UpdateEnvironmentMembership": "

Changes the settings of an existing environment member for an AWS Cloud9 development environment.

" + }, + "shapes": { + "AutomaticStopTimeMinutes": { + "base": null, + "refs": { + "CreateEnvironmentEC2Request$automaticStopTimeMinutes": "

The number of minutes until the running instance is shut down after the environment has last been used.

" + } + }, + "BadRequestException": { + "base": "

The target request is invalid.

", + "refs": { + } + }, + "BoundedEnvironmentIdList": { + "base": null, + "refs": { + "DescribeEnvironmentsRequest$environmentIds": "

The IDs of invidividual environments to get information about.

" + } + }, + "ClientRequestToken": { + "base": null, + "refs": { + "CreateEnvironmentEC2Request$clientRequestToken": "

A unique, case-sensitive string that helps AWS Cloud9 to ensure this operation completes no more than one time.

For more information, see Client Tokens in the Amazon EC2 API Reference.

" + } + }, + "ConflictException": { + "base": "

A conflict occurred.

", + "refs": { + } + }, + "CreateEnvironmentEC2Request": { + "base": null, + "refs": { + } + }, + "CreateEnvironmentEC2Result": { + "base": null, + "refs": { + } + }, + "CreateEnvironmentMembershipRequest": { + "base": null, + "refs": { + } + }, + "CreateEnvironmentMembershipResult": { + "base": null, + "refs": { + } + }, + "DeleteEnvironmentMembershipRequest": { + "base": null, + "refs": { + } + }, + "DeleteEnvironmentMembershipResult": { + "base": null, + "refs": { + } + }, + "DeleteEnvironmentRequest": { + "base": null, + "refs": { + } + }, + "DeleteEnvironmentResult": { + "base": null, + "refs": { + } + }, + "DescribeEnvironmentMembershipsRequest": { + "base": null, + "refs": { + } + }, + "DescribeEnvironmentMembershipsResult": { + "base": null, + "refs": { + } + }, + "DescribeEnvironmentStatusRequest": { + "base": null, + "refs": { + } + }, + "DescribeEnvironmentStatusResult": { + "base": null, + "refs": { + } + }, + "DescribeEnvironmentsRequest": { + "base": null, + "refs": { + } + }, + "DescribeEnvironmentsResult": { + "base": null, + "refs": { + } + }, + "Environment": { + "base": "

Information about an AWS Cloud9 development environment.

", + "refs": { + "EnvironmentList$member": null + } + }, + "EnvironmentDescription": { + "base": null, + "refs": { + "CreateEnvironmentEC2Request$description": "

The description of the environment to create.

", + "Environment$description": "

The description for the environment.

", + "UpdateEnvironmentRequest$description": "

Any new or replacement description for the environment.

" + } + }, + "EnvironmentId": { + "base": null, + "refs": { + "BoundedEnvironmentIdList$member": null, + "CreateEnvironmentEC2Result$environmentId": "

The ID of the environment that was created.

", + "CreateEnvironmentMembershipRequest$environmentId": "

The ID of the environment that contains the environment member you want to add.

", + "DeleteEnvironmentMembershipRequest$environmentId": "

The ID of the environment to delete the environment member from.

", + "DeleteEnvironmentRequest$environmentId": "

The ID of the environment to delete.

", + "DescribeEnvironmentMembershipsRequest$environmentId": "

The ID of the environment to get environment member information about.

", + "DescribeEnvironmentStatusRequest$environmentId": "

The ID of the environment to get status information about.

", + "Environment$id": "

The ID of the environment.

", + "EnvironmentIdList$member": null, + "EnvironmentMember$environmentId": "

The ID of the environment for the environment member.

", + "UpdateEnvironmentMembershipRequest$environmentId": "

The ID of the environment for the environment member whose settings you want to change.

", + "UpdateEnvironmentRequest$environmentId": "

The ID of the environment to change settings.

" + } + }, + "EnvironmentIdList": { + "base": null, + "refs": { + "ListEnvironmentsResult$environmentIds": "

The list of environment identifiers.

" + } + }, + "EnvironmentList": { + "base": null, + "refs": { + "DescribeEnvironmentsResult$environments": "

Information about the environments that are returned.

" + } + }, + "EnvironmentMember": { + "base": "

Information about an environment member for an AWS Cloud9 development environment.

", + "refs": { + "CreateEnvironmentMembershipResult$membership": "

Information about the environment member that was added.

", + "EnvironmentMembersList$member": null, + "UpdateEnvironmentMembershipResult$membership": "

Information about the environment member whose settings were changed.

" + } + }, + "EnvironmentMembersList": { + "base": null, + "refs": { + "DescribeEnvironmentMembershipsResult$memberships": "

Information about the environment members for the environment.

" + } + }, + "EnvironmentName": { + "base": null, + "refs": { + "CreateEnvironmentEC2Request$name": "

The name of the environment to create.

This name is visible to other AWS IAM users in the same AWS account.

", + "Environment$name": "

The name of the environment.

", + "UpdateEnvironmentRequest$name": "

Any replacement name for the environment.

" + } + }, + "EnvironmentStatus": { + "base": null, + "refs": { + "DescribeEnvironmentStatusResult$status": "

The status of the environment. Available values include:

" + } + }, + "EnvironmentType": { + "base": null, + "refs": { + "Environment$type": "

The type of environment. Valid values include the following:

" + } + }, + "ForbiddenException": { + "base": "

An access permissions issue occurred.

", + "refs": { + } + }, + "InstanceType": { + "base": null, + "refs": { + "CreateEnvironmentEC2Request$instanceType": "

The type of instance to host the environment on (for example, t2.micro).

" + } + }, + "InternalServerErrorException": { + "base": "

An internal server error occurred.

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

A service limit was exceeded.

", + "refs": { + } + }, + "ListEnvironmentsRequest": { + "base": null, + "refs": { + } + }, + "ListEnvironmentsResult": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "DescribeEnvironmentMembershipsRequest$maxResults": "

The maximum number of environment members to get information about.

", + "ListEnvironmentsRequest$maxResults": "

The maximum number of environments to get identifiers for.

" + } + }, + "MemberPermissions": { + "base": null, + "refs": { + "CreateEnvironmentMembershipRequest$permissions": "

The type of environment member permissions you want to associate with this environment member. Available values include:

", + "UpdateEnvironmentMembershipRequest$permissions": "

The replacement type of environment member permissions you want to associate with this environment member. Available values include:

" + } + }, + "NotFoundException": { + "base": "

The target resource cannot be found.

", + "refs": { + } + }, + "Permissions": { + "base": null, + "refs": { + "EnvironmentMember$permissions": "

The type of environment member permissions associated with this environment member. Available values include:

", + "PermissionsList$member": null + } + }, + "PermissionsList": { + "base": null, + "refs": { + "DescribeEnvironmentMembershipsRequest$permissions": "

The type of environment member permissions to get information about. Available values include:

If no value is specified, information about all environment members are returned.

" + } + }, + "String": { + "base": null, + "refs": { + "DescribeEnvironmentMembershipsRequest$nextToken": "

During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "DescribeEnvironmentMembershipsResult$nextToken": "

If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call.

", + "DescribeEnvironmentStatusResult$message": "

Any informational message about the status of the environment.

", + "Environment$arn": "

The Amazon Resource Name (ARN) of the environment.

", + "Environment$ownerArn": "

The Amazon Resource Name (ARN) of the environment owner.

", + "EnvironmentMember$userId": "

The user ID in AWS Identity and Access Management (AWS IAM) of the environment member.

", + "ListEnvironmentsRequest$nextToken": "

During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "ListEnvironmentsResult$nextToken": "

If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "CreateEnvironmentEC2Request$subnetId": "

The ID of the subnet in Amazon VPC that AWS Cloud9 will use to communicate with the Amazon EC2 instance.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "EnvironmentMember$lastAccess": "

The time, expressed in epoch time format, when the environment member last opened the environment.

" + } + }, + "TooManyRequestsException": { + "base": "

Too many service requests were made over the given time period.

", + "refs": { + } + }, + "UpdateEnvironmentMembershipRequest": { + "base": null, + "refs": { + } + }, + "UpdateEnvironmentMembershipResult": { + "base": null, + "refs": { + } + }, + "UpdateEnvironmentRequest": { + "base": null, + "refs": { + } + }, + "UpdateEnvironmentResult": { + "base": null, + "refs": { + } + }, + "UserArn": { + "base": null, + "refs": { + "CreateEnvironmentEC2Request$ownerArn": "

The Amazon Resource Name (ARN) of the environment owner. This ARN can be the ARN of any AWS IAM principal. If this value is not specified, the ARN defaults to this environment's creator.

", + "CreateEnvironmentMembershipRequest$userArn": "

The Amazon Resource Name (ARN) of the environment member you want to add.

", + "DeleteEnvironmentMembershipRequest$userArn": "

The Amazon Resource Name (ARN) of the environment member to delete from the environment.

", + "DescribeEnvironmentMembershipsRequest$userArn": "

The Amazon Resource Name (ARN) of an individual environment member to get information about. If no value is specified, information about all environment members are returned.

", + "EnvironmentMember$userArn": "

The Amazon Resource Name (ARN) of the environment member.

", + "UpdateEnvironmentMembershipRequest$userArn": "

The Amazon Resource Name (ARN) of the environment member whose settings you want to change.

" + } + } + } +} diff --git a/models/apis/Cloud9/2017-09-23/examples-1.json b/models/apis/Cloud9/2017-09-23/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/Cloud9/2017-09-23/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/Cloud9/2017-09-23/paginators-1.json b/models/apis/Cloud9/2017-09-23/paginators-1.json new file mode 100644 index 00000000000..f66f5129a6e --- /dev/null +++ b/models/apis/Cloud9/2017-09-23/paginators-1.json @@ -0,0 +1,14 @@ +{ + "pagination": { + "DescribeEnvironmentMemberships": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListEnvironments": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/models/apis/GuardDuty/2017-11-28/api-2.json b/models/apis/GuardDuty/2017-11-28/api-2.json new file mode 100644 index 00000000000..4f7c53de8aa --- /dev/null +++ b/models/apis/GuardDuty/2017-11-28/api-2.json @@ -0,0 +1,2622 @@ +{ + "metadata" : { + "apiVersion" : "2017-11-28", + "endpointPrefix" : "guardduty", + "signingName" : "guardduty", + "serviceFullName" : "Amazon GuardDuty", + "serviceId" : "GuardDuty", + "protocol" : "rest-json", + "jsonVersion" : "1.1", + "uid" : "guardduty-2017-11-28", + "signatureVersion" : "v4" + }, + "operations" : { + "AcceptInvitation" : { + "name" : "AcceptInvitation", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/master", + "responseCode" : 200 + }, + "input" : { + "shape" : "AcceptInvitationRequest" + }, + "output" : { + "shape" : "AcceptInvitationResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "ArchiveFindings" : { + "name" : "ArchiveFindings", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/findings/archive", + "responseCode" : 200 + }, + "input" : { + "shape" : "ArchiveFindingsRequest" + }, + "output" : { + "shape" : "ArchiveFindingsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "CreateDetector" : { + "name" : "CreateDetector", + "http" : { + "method" : "POST", + "requestUri" : "/detector", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateDetectorRequest" + }, + "output" : { + "shape" : "CreateDetectorResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "CreateIPSet" : { + "name" : "CreateIPSet", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/ipset", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateIPSetRequest" + }, + "output" : { + "shape" : "CreateIPSetResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "CreateMembers" : { + "name" : "CreateMembers", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/member", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateMembersRequest" + }, + "output" : { + "shape" : "CreateMembersResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "CreateSampleFindings" : { + "name" : "CreateSampleFindings", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/findings/create", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateSampleFindingsRequest" + }, + "output" : { + "shape" : "CreateSampleFindingsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "CreateThreatIntelSet" : { + "name" : "CreateThreatIntelSet", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/threatintelset", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateThreatIntelSetRequest" + }, + "output" : { + "shape" : "CreateThreatIntelSetResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "DeclineInvitations" : { + "name" : "DeclineInvitations", + "http" : { + "method" : "POST", + "requestUri" : "/invitation/decline", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeclineInvitationsRequest" + }, + "output" : { + "shape" : "DeclineInvitationsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "DeleteDetector" : { + "name" : "DeleteDetector", + "http" : { + "method" : "DELETE", + "requestUri" : "/detector/{detectorId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteDetectorRequest" + }, + "output" : { + "shape" : "DeleteDetectorResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "DeleteIPSet" : { + "name" : "DeleteIPSet", + "http" : { + "method" : "DELETE", + "requestUri" : "/detector/{detectorId}/ipset/{ipSetId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteIPSetRequest" + }, + "output" : { + "shape" : "DeleteIPSetResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "DeleteInvitations" : { + "name" : "DeleteInvitations", + "http" : { + "method" : "POST", + "requestUri" : "/invitation/delete", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteInvitationsRequest" + }, + "output" : { + "shape" : "DeleteInvitationsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "DeleteMembers" : { + "name" : "DeleteMembers", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/member/delete", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteMembersRequest" + }, + "output" : { + "shape" : "DeleteMembersResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "DeleteThreatIntelSet" : { + "name" : "DeleteThreatIntelSet", + "http" : { + "method" : "DELETE", + "requestUri" : "/detector/{detectorId}/threatintelset/{threatIntelSetId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteThreatIntelSetRequest" + }, + "output" : { + "shape" : "DeleteThreatIntelSetResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "DisassociateFromMasterAccount" : { + "name" : "DisassociateFromMasterAccount", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/master/disassociate", + "responseCode" : 200 + }, + "input" : { + "shape" : "DisassociateFromMasterAccountRequest" + }, + "output" : { + "shape" : "DisassociateFromMasterAccountResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "DisassociateMembers" : { + "name" : "DisassociateMembers", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/member/disassociate", + "responseCode" : 200 + }, + "input" : { + "shape" : "DisassociateMembersRequest" + }, + "output" : { + "shape" : "DisassociateMembersResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "GetDetector" : { + "name" : "GetDetector", + "http" : { + "method" : "GET", + "requestUri" : "/detector/{detectorId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetDetectorRequest" + }, + "output" : { + "shape" : "GetDetectorResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "GetFindings" : { + "name" : "GetFindings", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/findings/get", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetFindingsRequest" + }, + "output" : { + "shape" : "GetFindingsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "GetFindingsStatistics" : { + "name" : "GetFindingsStatistics", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/findings/statistics", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetFindingsStatisticsRequest" + }, + "output" : { + "shape" : "GetFindingsStatisticsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "GetIPSet" : { + "name" : "GetIPSet", + "http" : { + "method" : "GET", + "requestUri" : "/detector/{detectorId}/ipset/{ipSetId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetIPSetRequest" + }, + "output" : { + "shape" : "GetIPSetResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "GetInvitationsCount" : { + "name" : "GetInvitationsCount", + "http" : { + "method" : "GET", + "requestUri" : "/invitation/count", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetInvitationsCountRequest" + }, + "output" : { + "shape" : "GetInvitationsCountResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "GetMasterAccount" : { + "name" : "GetMasterAccount", + "http" : { + "method" : "GET", + "requestUri" : "/detector/{detectorId}/master", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetMasterAccountRequest" + }, + "output" : { + "shape" : "GetMasterAccountResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "GetMembers" : { + "name" : "GetMembers", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/member/get", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetMembersRequest" + }, + "output" : { + "shape" : "GetMembersResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "GetThreatIntelSet" : { + "name" : "GetThreatIntelSet", + "http" : { + "method" : "GET", + "requestUri" : "/detector/{detectorId}/threatintelset/{threatIntelSetId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetThreatIntelSetRequest" + }, + "output" : { + "shape" : "GetThreatIntelSetResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "InviteMembers" : { + "name" : "InviteMembers", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/member/invite", + "responseCode" : 200 + }, + "input" : { + "shape" : "InviteMembersRequest" + }, + "output" : { + "shape" : "InviteMembersResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "ListDetectors" : { + "name" : "ListDetectors", + "http" : { + "method" : "GET", + "requestUri" : "/detector", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListDetectorsRequest" + }, + "output" : { + "shape" : "ListDetectorsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "ListFindings" : { + "name" : "ListFindings", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/findings", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListFindingsRequest" + }, + "output" : { + "shape" : "ListFindingsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "ListIPSets" : { + "name" : "ListIPSets", + "http" : { + "method" : "GET", + "requestUri" : "/detector/{detectorId}/ipset", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListIPSetsRequest" + }, + "output" : { + "shape" : "ListIPSetsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "ListInvitations" : { + "name" : "ListInvitations", + "http" : { + "method" : "GET", + "requestUri" : "/invitation", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListInvitationsRequest" + }, + "output" : { + "shape" : "ListInvitationsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "ListMembers" : { + "name" : "ListMembers", + "http" : { + "method" : "GET", + "requestUri" : "/detector/{detectorId}/member", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListMembersRequest" + }, + "output" : { + "shape" : "ListMembersResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "ListThreatIntelSets" : { + "name" : "ListThreatIntelSets", + "http" : { + "method" : "GET", + "requestUri" : "/detector/{detectorId}/threatintelset", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListThreatIntelSetsRequest" + }, + "output" : { + "shape" : "ListThreatIntelSetsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "StartMonitoringMembers" : { + "name" : "StartMonitoringMembers", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/member/start", + "responseCode" : 200 + }, + "input" : { + "shape" : "StartMonitoringMembersRequest" + }, + "output" : { + "shape" : "StartMonitoringMembersResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "StopMonitoringMembers" : { + "name" : "StopMonitoringMembers", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/member/stop", + "responseCode" : 200 + }, + "input" : { + "shape" : "StopMonitoringMembersRequest" + }, + "output" : { + "shape" : "StopMonitoringMembersResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "UnarchiveFindings" : { + "name" : "UnarchiveFindings", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/findings/unarchive", + "responseCode" : 200 + }, + "input" : { + "shape" : "UnarchiveFindingsRequest" + }, + "output" : { + "shape" : "UnarchiveFindingsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "UpdateDetector" : { + "name" : "UpdateDetector", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateDetectorRequest" + }, + "output" : { + "shape" : "UpdateDetectorResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "UpdateFindingsFeedback" : { + "name" : "UpdateFindingsFeedback", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/findings/feedback", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateFindingsFeedbackRequest" + }, + "output" : { + "shape" : "UpdateFindingsFeedbackResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "UpdateIPSet" : { + "name" : "UpdateIPSet", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/ipset/{ipSetId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateIPSetRequest" + }, + "output" : { + "shape" : "UpdateIPSetResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, + "UpdateThreatIntelSet" : { + "name" : "UpdateThreatIntelSet", + "http" : { + "method" : "POST", + "requestUri" : "/detector/{detectorId}/threatintelset/{threatIntelSetId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateThreatIntelSetRequest" + }, + "output" : { + "shape" : "UpdateThreatIntelSetResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + } + }, + "shapes" : { + "AcceptInvitationRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "InvitationId" : { + "shape" : "InvitationId", + "locationName" : "invitationId" + }, + "MasterId" : { + "shape" : "MasterId", + "locationName" : "masterId" + } + }, + "required" : [ "DetectorId" ] + }, + "AcceptInvitationResponse" : { + "type" : "structure", + "members" : { } + }, + "AccountDetail" : { + "type" : "structure", + "members" : { + "AccountId" : { + "shape" : "AccountId", + "locationName" : "accountId" + }, + "Email" : { + "shape" : "Email", + "locationName" : "email" + } + } + }, + "AccountDetails" : { + "type" : "list", + "member" : { + "shape" : "AccountDetail" + } + }, + "AccountId" : { + "type" : "string" + }, + "AccountIds" : { + "type" : "list", + "member" : { + "shape" : "__string" + } + }, + "Action" : { + "type" : "structure", + "members" : { + "ActionType" : { + "shape" : "__string", + "locationName" : "actionType" + }, + "AwsApiCallAction" : { + "shape" : "AwsApiCallAction", + "locationName" : "awsApiCallAction" + }, + "DnsRequestAction" : { + "shape" : "DnsRequestAction", + "locationName" : "dnsRequestAction" + }, + "NetworkConnectionAction" : { + "shape" : "NetworkConnectionAction", + "locationName" : "networkConnectionAction" + } + } + }, + "Activate" : { + "type" : "boolean" + }, + "ArchiveFindingsRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "FindingIds" : { + "shape" : "FindingIds", + "locationName" : "findingIds" + } + }, + "required" : [ "DetectorId" ] + }, + "ArchiveFindingsResponse" : { + "type" : "structure", + "members" : { } + }, + "AwsApiCallAction" : { + "type" : "structure", + "members" : { + "Api" : { + "shape" : "__string", + "locationName" : "api" + }, + "CallerType" : { + "shape" : "__string", + "locationName" : "callerType" + }, + "DomainDetails" : { + "shape" : "DomainDetails", + "locationName" : "domainDetails" + }, + "RemoteIpDetails" : { + "shape" : "RemoteIpDetails", + "locationName" : "remoteIpDetails" + }, + "ServiceName" : { + "shape" : "__string", + "locationName" : "serviceName" + } + } + }, + "BadRequestException" : { + "type" : "structure", + "members" : { + "Message" : { + "shape" : "__string", + "locationName" : "message" + }, + "Type" : { + "shape" : "__string", + "locationName" : "__type" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 400 + } + }, + "City" : { + "type" : "structure", + "members" : { + "CityName" : { + "shape" : "__string", + "locationName" : "cityName" + } + } + }, + "Comments" : { + "type" : "string" + }, + "Condition" : { + "type" : "structure", + "members" : { + "Eq" : { + "shape" : "Eq", + "locationName" : "eq" + }, + "Gt" : { + "shape" : "__integer", + "locationName" : "gt" + }, + "Gte" : { + "shape" : "__integer", + "locationName" : "gte" + }, + "Lt" : { + "shape" : "__integer", + "locationName" : "lt" + }, + "Lte" : { + "shape" : "__integer", + "locationName" : "lte" + }, + "Neq" : { + "shape" : "Neq", + "locationName" : "neq" + } + } + }, + "CountBySeverityFindingStatistic" : { + "type" : "integer" + }, + "Country" : { + "type" : "structure", + "members" : { + "CountryCode" : { + "shape" : "__string", + "locationName" : "countryCode" + }, + "CountryName" : { + "shape" : "__string", + "locationName" : "countryName" + } + } + }, + "CreateDetectorRequest" : { + "type" : "structure", + "members" : { + "Enable" : { + "shape" : "Enable", + "locationName" : "enable" + } + } + }, + "CreateDetectorResponse" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "DetectorId", + "locationName" : "detectorId" + } + } + }, + "CreateIPSetRequest" : { + "type" : "structure", + "members" : { + "Activate" : { + "shape" : "Activate", + "locationName" : "activate" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "Format" : { + "shape" : "IpSetFormat", + "locationName" : "format" + }, + "Location" : { + "shape" : "Location", + "locationName" : "location" + }, + "Name" : { + "shape" : "Name", + "locationName" : "name" + } + }, + "required" : [ "DetectorId" ] + }, + "CreateIPSetResponse" : { + "type" : "structure", + "members" : { + "IpSetId" : { + "shape" : "IpSetId", + "locationName" : "ipSetId" + } + } + }, + "CreateMembersRequest" : { + "type" : "structure", + "members" : { + "AccountDetails" : { + "shape" : "AccountDetails", + "locationName" : "accountDetails" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + } + }, + "required" : [ "DetectorId" ] + }, + "CreateMembersResponse" : { + "type" : "structure", + "members" : { + "UnprocessedAccounts" : { + "shape" : "UnprocessedAccounts", + "locationName" : "unprocessedAccounts" + } + } + }, + "CreateSampleFindingsRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "FindingTypes" : { + "shape" : "FindingTypes", + "locationName" : "findingTypes" + } + }, + "required" : [ "DetectorId" ] + }, + "CreateSampleFindingsResponse" : { + "type" : "structure", + "members" : { } + }, + "CreateThreatIntelSetRequest" : { + "type" : "structure", + "members" : { + "Activate" : { + "shape" : "Activate", + "locationName" : "activate" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "Format" : { + "shape" : "ThreatIntelSetFormat", + "locationName" : "format" + }, + "Location" : { + "shape" : "Location", + "locationName" : "location" + }, + "Name" : { + "shape" : "Name", + "locationName" : "name" + } + }, + "required" : [ "DetectorId" ] + }, + "CreateThreatIntelSetResponse" : { + "type" : "structure", + "members" : { + "ThreatIntelSetId" : { + "shape" : "ThreatIntelSetId", + "locationName" : "threatIntelSetId" + } + } + }, + "CreatedAt" : { + "type" : "string" + }, + "DeclineInvitationsRequest" : { + "type" : "structure", + "members" : { + "AccountIds" : { + "shape" : "AccountIds", + "locationName" : "accountIds" + } + } + }, + "DeclineInvitationsResponse" : { + "type" : "structure", + "members" : { + "UnprocessedAccounts" : { + "shape" : "UnprocessedAccounts", + "locationName" : "unprocessedAccounts" + } + } + }, + "DeleteDetectorRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + } + }, + "required" : [ "DetectorId" ] + }, + "DeleteDetectorResponse" : { + "type" : "structure", + "members" : { } + }, + "DeleteIPSetRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "IpSetId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "ipSetId" + } + }, + "required" : [ "DetectorId", "IpSetId" ] + }, + "DeleteIPSetResponse" : { + "type" : "structure", + "members" : { } + }, + "DeleteInvitationsRequest" : { + "type" : "structure", + "members" : { + "AccountIds" : { + "shape" : "AccountIds", + "locationName" : "accountIds" + } + } + }, + "DeleteInvitationsResponse" : { + "type" : "structure", + "members" : { + "UnprocessedAccounts" : { + "shape" : "UnprocessedAccounts", + "locationName" : "unprocessedAccounts" + } + } + }, + "DeleteMembersRequest" : { + "type" : "structure", + "members" : { + "AccountIds" : { + "shape" : "AccountIds", + "locationName" : "accountIds" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + } + }, + "required" : [ "DetectorId" ] + }, + "DeleteMembersResponse" : { + "type" : "structure", + "members" : { + "UnprocessedAccounts" : { + "shape" : "UnprocessedAccounts", + "locationName" : "unprocessedAccounts" + } + } + }, + "DeleteThreatIntelSetRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "ThreatIntelSetId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "threatIntelSetId" + } + }, + "required" : [ "ThreatIntelSetId", "DetectorId" ] + }, + "DeleteThreatIntelSetResponse" : { + "type" : "structure", + "members" : { } + }, + "DetectorId" : { + "type" : "string" + }, + "DetectorIds" : { + "type" : "list", + "member" : { + "shape" : "DetectorId" + } + }, + "DetectorStatus" : { + "type" : "string", + "enum" : [ "ENABLED", "DISABLED" ] + }, + "DisassociateFromMasterAccountRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + } + }, + "required" : [ "DetectorId" ] + }, + "DisassociateFromMasterAccountResponse" : { + "type" : "structure", + "members" : { } + }, + "DisassociateMembersRequest" : { + "type" : "structure", + "members" : { + "AccountIds" : { + "shape" : "AccountIds", + "locationName" : "accountIds" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + } + }, + "required" : [ "DetectorId" ] + }, + "DisassociateMembersResponse" : { + "type" : "structure", + "members" : { + "UnprocessedAccounts" : { + "shape" : "UnprocessedAccounts", + "locationName" : "unprocessedAccounts" + } + } + }, + "DnsRequestAction" : { + "type" : "structure", + "members" : { + "Domain" : { + "shape" : "Domain", + "locationName" : "domain" + } + } + }, + "Domain" : { + "type" : "string" + }, + "DomainDetails" : { + "type" : "structure", + "members" : { } + }, + "Email" : { + "type" : "string" + }, + "Enable" : { + "type" : "boolean" + }, + "Eq" : { + "type" : "list", + "member" : { + "shape" : "__string" + } + }, + "ErrorResponse" : { + "type" : "structure", + "members" : { + "Message" : { + "shape" : "__string", + "locationName" : "message" + }, + "Type" : { + "shape" : "__string", + "locationName" : "__type" + } + } + }, + "Feedback" : { + "type" : "string", + "enum" : [ "USEFUL", "NOT_USEFUL" ] + }, + "Finding" : { + "type" : "structure", + "members" : { + "AccountId" : { + "shape" : "__string", + "locationName" : "accountId" + }, + "Arn" : { + "shape" : "__string", + "locationName" : "arn" + }, + "Confidence" : { + "shape" : "__double", + "locationName" : "confidence" + }, + "CreatedAt" : { + "shape" : "CreatedAt", + "locationName" : "createdAt" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Id" : { + "shape" : "__string", + "locationName" : "id" + }, + "Partition" : { + "shape" : "__string", + "locationName" : "partition" + }, + "Region" : { + "shape" : "__string", + "locationName" : "region" + }, + "Resource" : { + "shape" : "Resource", + "locationName" : "resource" + }, + "SchemaVersion" : { + "shape" : "__string", + "locationName" : "schemaVersion" + }, + "Service" : { + "shape" : "Service", + "locationName" : "service" + }, + "Severity" : { + "shape" : "__double", + "locationName" : "severity" + }, + "Title" : { + "shape" : "__string", + "locationName" : "title" + }, + "Type" : { + "shape" : "__string", + "locationName" : "type" + }, + "UpdatedAt" : { + "shape" : "UpdatedAt", + "locationName" : "updatedAt" + } + } + }, + "FindingCriteria" : { + "type" : "structure", + "members" : { + "Criterion" : { + "shape" : "MapOfCondition", + "locationName" : "criterion" + } + } + }, + "FindingId" : { + "type" : "string" + }, + "FindingIds" : { + "type" : "list", + "member" : { + "shape" : "FindingId" + } + }, + "FindingStatisticType" : { + "type" : "string", + "enum" : [ "COUNT_BY_SEVERITY" ] + }, + "FindingStatisticTypes" : { + "type" : "list", + "member" : { + "shape" : "FindingStatisticType" + } + }, + "FindingStatistics" : { + "type" : "structure", + "members" : { + "CountBySeverity" : { + "shape" : "MapOfCountBySeverityFindingStatistic", + "locationName" : "countBySeverity" + } + } + }, + "FindingType" : { + "type" : "string" + }, + "FindingTypes" : { + "type" : "list", + "member" : { + "shape" : "FindingType" + } + }, + "Findings" : { + "type" : "list", + "member" : { + "shape" : "Finding" + } + }, + "GeoLocation" : { + "type" : "structure", + "members" : { + "Lat" : { + "shape" : "__double", + "locationName" : "lat" + }, + "Lon" : { + "shape" : "__double", + "locationName" : "lon" + } + } + }, + "GetDetectorRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + } + }, + "required" : [ "DetectorId" ] + }, + "GetDetectorResponse" : { + "type" : "structure", + "members" : { + "CreatedAt" : { + "shape" : "CreatedAt", + "locationName" : "createdAt" + }, + "ServiceRole" : { + "shape" : "ServiceRole", + "locationName" : "serviceRole" + }, + "Status" : { + "shape" : "DetectorStatus", + "locationName" : "status" + }, + "UpdatedAt" : { + "shape" : "UpdatedAt", + "locationName" : "updatedAt" + } + } + }, + "GetFindingsRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "FindingIds" : { + "shape" : "FindingIds", + "locationName" : "findingIds" + }, + "SortCriteria" : { + "shape" : "SortCriteria", + "locationName" : "sortCriteria" + } + }, + "required" : [ "DetectorId" ] + }, + "GetFindingsResponse" : { + "type" : "structure", + "members" : { + "Findings" : { + "shape" : "Findings", + "locationName" : "findings" + } + } + }, + "GetFindingsStatisticsRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "FindingCriteria" : { + "shape" : "FindingCriteria", + "locationName" : "findingCriteria" + }, + "FindingStatisticTypes" : { + "shape" : "FindingStatisticTypes", + "locationName" : "findingStatisticTypes" + } + }, + "required" : [ "DetectorId" ] + }, + "GetFindingsStatisticsResponse" : { + "type" : "structure", + "members" : { + "FindingStatistics" : { + "shape" : "FindingStatistics", + "locationName" : "findingStatistics" + } + } + }, + "GetIPSetRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "IpSetId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "ipSetId" + } + }, + "required" : [ "DetectorId", "IpSetId" ] + }, + "GetIPSetResponse" : { + "type" : "structure", + "members" : { + "Format" : { + "shape" : "IpSetFormat", + "locationName" : "format" + }, + "Location" : { + "shape" : "Location", + "locationName" : "location" + }, + "Name" : { + "shape" : "Name", + "locationName" : "name" + }, + "Status" : { + "shape" : "IpSetStatus", + "locationName" : "status" + } + } + }, + "GetInvitationsCountRequest" : { + "type" : "structure", + "members" : { } + }, + "GetInvitationsCountResponse" : { + "type" : "structure", + "members" : { + "InvitationsCount" : { + "shape" : "__integer", + "locationName" : "invitationsCount" + } + } + }, + "GetMasterAccountRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + } + }, + "required" : [ "DetectorId" ] + }, + "GetMasterAccountResponse" : { + "type" : "structure", + "members" : { + "Master" : { + "shape" : "Master", + "locationName" : "master" + } + } + }, + "GetMembersRequest" : { + "type" : "structure", + "members" : { + "AccountIds" : { + "shape" : "AccountIds", + "locationName" : "accountIds" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + } + }, + "required" : [ "DetectorId" ] + }, + "GetMembersResponse" : { + "type" : "structure", + "members" : { + "Members" : { + "shape" : "Members", + "locationName" : "members" + }, + "UnprocessedAccounts" : { + "shape" : "UnprocessedAccounts", + "locationName" : "unprocessedAccounts" + } + } + }, + "GetThreatIntelSetRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "ThreatIntelSetId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "threatIntelSetId" + } + }, + "required" : [ "ThreatIntelSetId", "DetectorId" ] + }, + "GetThreatIntelSetResponse" : { + "type" : "structure", + "members" : { + "Format" : { + "shape" : "ThreatIntelSetFormat", + "locationName" : "format" + }, + "Location" : { + "shape" : "Location", + "locationName" : "location" + }, + "Name" : { + "shape" : "Name", + "locationName" : "name" + }, + "Status" : { + "shape" : "ThreatIntelSetStatus", + "locationName" : "status" + } + } + }, + "IamInstanceProfile" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string", + "locationName" : "arn" + }, + "Id" : { + "shape" : "__string", + "locationName" : "id" + } + } + }, + "InstanceDetails" : { + "type" : "structure", + "members" : { + "AvailabilityZone" : { + "shape" : "__string", + "locationName" : "availabilityZone" + }, + "IamInstanceProfile" : { + "shape" : "IamInstanceProfile", + "locationName" : "iamInstanceProfile" + }, + "ImageId" : { + "shape" : "__string", + "locationName" : "imageId" + }, + "InstanceId" : { + "shape" : "__string", + "locationName" : "instanceId" + }, + "InstanceState" : { + "shape" : "__string", + "locationName" : "instanceState" + }, + "InstanceType" : { + "shape" : "__string", + "locationName" : "instanceType" + }, + "LaunchTime" : { + "shape" : "__string", + "locationName" : "launchTime" + }, + "NetworkInterfaces" : { + "shape" : "NetworkInterfaces", + "locationName" : "networkInterfaces" + }, + "Platform" : { + "shape" : "__string", + "locationName" : "platform" + }, + "ProductCodes" : { + "shape" : "ProductCodes", + "locationName" : "productCodes" + }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags" + } + } + }, + "InternalServerErrorException" : { + "type" : "structure", + "members" : { + "Message" : { + "shape" : "__string", + "locationName" : "message" + }, + "Type" : { + "shape" : "__string", + "locationName" : "__type" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 500 + } + }, + "Invitation" : { + "type" : "structure", + "members" : { + "AccountId" : { + "shape" : "__string", + "locationName" : "accountId" + }, + "InvitationId" : { + "shape" : "InvitationId", + "locationName" : "invitationId" + }, + "InvitedAt" : { + "shape" : "InvitedAt", + "locationName" : "invitedAt" + }, + "RelationshipStatus" : { + "shape" : "__string", + "locationName" : "relationshipStatus" + } + } + }, + "InvitationId" : { + "type" : "string" + }, + "Invitations" : { + "type" : "list", + "member" : { + "shape" : "Invitation" + } + }, + "InviteMembersRequest" : { + "type" : "structure", + "members" : { + "AccountIds" : { + "shape" : "AccountIds", + "locationName" : "accountIds" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "Message" : { + "shape" : "Message", + "locationName" : "message" + } + }, + "required" : [ "DetectorId" ] + }, + "InviteMembersResponse" : { + "type" : "structure", + "members" : { + "UnprocessedAccounts" : { + "shape" : "UnprocessedAccounts", + "locationName" : "unprocessedAccounts" + } + } + }, + "InvitedAt" : { + "type" : "string" + }, + "IpSetFormat" : { + "type" : "string", + "enum" : [ "TXT", "STIX", "OTX_CSV", "ALIEN_VAULT", "PROOF_POINT", "FIRE_EYE" ] + }, + "IpSetId" : { + "type" : "string" + }, + "IpSetIds" : { + "type" : "list", + "member" : { + "shape" : "IpSetId" + } + }, + "IpSetStatus" : { + "type" : "string", + "enum" : [ "INACTIVE", "ACTIVATING", "ACTIVE", "DEACTIVATING", "ERROR", "DELETE_PENDING", "DELETED" ] + }, + "Ipv6Address" : { + "type" : "string" + }, + "Ipv6Addresses" : { + "type" : "list", + "member" : { + "shape" : "Ipv6Address" + } + }, + "ListDetectorsRequest" : { + "type" : "structure", + "members" : { + "MaxResults" : { + "shape" : "MaxResults", + "location" : "querystring", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + } + } + }, + "ListDetectorsResponse" : { + "type" : "structure", + "members" : { + "DetectorIds" : { + "shape" : "DetectorIds", + "locationName" : "detectorIds" + }, + "NextToken" : { + "shape" : "NextToken", + "locationName" : "nextToken" + } + } + }, + "ListFindingsRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "FindingCriteria" : { + "shape" : "FindingCriteria", + "locationName" : "findingCriteria" + }, + "MaxResults" : { + "shape" : "MaxResults", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "NextToken", + "locationName" : "nextToken" + }, + "SortCriteria" : { + "shape" : "SortCriteria", + "locationName" : "sortCriteria" + } + }, + "required" : [ "DetectorId" ] + }, + "ListFindingsResponse" : { + "type" : "structure", + "members" : { + "FindingIds" : { + "shape" : "FindingIds", + "locationName" : "findingIds" + }, + "NextToken" : { + "shape" : "NextToken", + "locationName" : "nextToken" + } + } + }, + "ListIPSetsRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "MaxResults" : { + "shape" : "MaxResults", + "location" : "querystring", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + } + }, + "required" : [ "DetectorId" ] + }, + "ListIPSetsResponse" : { + "type" : "structure", + "members" : { + "IpSetIds" : { + "shape" : "IpSetIds", + "locationName" : "ipSetIds" + }, + "NextToken" : { + "shape" : "NextToken", + "locationName" : "nextToken" + } + } + }, + "ListInvitationsRequest" : { + "type" : "structure", + "members" : { + "MaxResults" : { + "shape" : "MaxResults", + "location" : "querystring", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + } + } + }, + "ListInvitationsResponse" : { + "type" : "structure", + "members" : { + "Invitations" : { + "shape" : "Invitations", + "locationName" : "invitations" + }, + "NextToken" : { + "shape" : "NextToken", + "locationName" : "nextToken" + } + } + }, + "ListMembersRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "MaxResults" : { + "shape" : "MaxResults", + "location" : "querystring", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + }, + "OnlyAssociated" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "onlyAssociated" + } + }, + "required" : [ "DetectorId" ] + }, + "ListMembersResponse" : { + "type" : "structure", + "members" : { + "Members" : { + "shape" : "Members", + "locationName" : "members" + }, + "NextToken" : { + "shape" : "NextToken", + "locationName" : "nextToken" + } + } + }, + "ListThreatIntelSetsRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "MaxResults" : { + "shape" : "MaxResults", + "location" : "querystring", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + } + }, + "required" : [ "DetectorId" ] + }, + "ListThreatIntelSetsResponse" : { + "type" : "structure", + "members" : { + "NextToken" : { + "shape" : "NextToken", + "locationName" : "nextToken" + }, + "ThreatIntelSetIds" : { + "shape" : "ThreatIntelSetIds", + "locationName" : "threatIntelSetIds" + } + } + }, + "LocalPortDetails" : { + "type" : "structure", + "members" : { + "Port" : { + "shape" : "__integer", + "locationName" : "port" + }, + "PortName" : { + "shape" : "__string", + "locationName" : "portName" + } + } + }, + "Location" : { + "type" : "string" + }, + "MapOfCondition" : { + "type" : "map", + "key" : { + "shape" : "__string" + }, + "value" : { + "shape" : "Condition" + } + }, + "MapOfCountBySeverityFindingStatistic" : { + "type" : "map", + "key" : { + "shape" : "__string" + }, + "value" : { + "shape" : "CountBySeverityFindingStatistic" + } + }, + "Master" : { + "type" : "structure", + "members" : { + "AccountId" : { + "shape" : "__string", + "locationName" : "accountId" + }, + "InvitationId" : { + "shape" : "InvitationId", + "locationName" : "invitationId" + }, + "InvitedAt" : { + "shape" : "InvitedAt", + "locationName" : "invitedAt" + }, + "RelationshipStatus" : { + "shape" : "__string", + "locationName" : "relationshipStatus" + } + } + }, + "MasterId" : { + "type" : "string" + }, + "MaxResults" : { + "type" : "integer", + "min" : 1, + "max" : 50 + }, + "Member" : { + "type" : "structure", + "members" : { + "AccountId" : { + "shape" : "AccountId", + "locationName" : "accountId" + }, + "DetectorId" : { + "shape" : "DetectorId", + "locationName" : "detectorId" + }, + "Email" : { + "shape" : "Email", + "locationName" : "email" + }, + "InvitedAt" : { + "shape" : "InvitedAt", + "locationName" : "invitedAt" + }, + "MasterId" : { + "shape" : "MasterId", + "locationName" : "masterId" + }, + "RelationshipStatus" : { + "shape" : "__string", + "locationName" : "relationshipStatus" + }, + "UpdatedAt" : { + "shape" : "UpdatedAt", + "locationName" : "updatedAt" + } + } + }, + "Members" : { + "type" : "list", + "member" : { + "shape" : "Member" + } + }, + "Message" : { + "type" : "string" + }, + "Name" : { + "type" : "string" + }, + "Neq" : { + "type" : "list", + "member" : { + "shape" : "__string" + } + }, + "NetworkConnectionAction" : { + "type" : "structure", + "members" : { + "Blocked" : { + "shape" : "__boolean", + "locationName" : "blocked" + }, + "ConnectionDirection" : { + "shape" : "__string", + "locationName" : "connectionDirection" + }, + "LocalPortDetails" : { + "shape" : "LocalPortDetails", + "locationName" : "localPortDetails" + }, + "Protocol" : { + "shape" : "__string", + "locationName" : "protocol" + }, + "RemoteIpDetails" : { + "shape" : "RemoteIpDetails", + "locationName" : "remoteIpDetails" + }, + "RemotePortDetails" : { + "shape" : "RemotePortDetails", + "locationName" : "remotePortDetails" + } + } + }, + "NetworkInterface" : { + "type" : "structure", + "members" : { + "Ipv6Addresses" : { + "shape" : "Ipv6Addresses", + "locationName" : "ipv6Addresses" + }, + "PrivateDnsName" : { + "shape" : "PrivateDnsName", + "locationName" : "privateDnsName" + }, + "PrivateIpAddress" : { + "shape" : "PrivateIpAddress", + "locationName" : "privateIpAddress" + }, + "PrivateIpAddresses" : { + "shape" : "PrivateIpAddresses", + "locationName" : "privateIpAddresses" + }, + "PublicDnsName" : { + "shape" : "__string", + "locationName" : "publicDnsName" + }, + "PublicIp" : { + "shape" : "__string", + "locationName" : "publicIp" + }, + "SecurityGroups" : { + "shape" : "SecurityGroups", + "locationName" : "securityGroups" + }, + "SubnetId" : { + "shape" : "__string", + "locationName" : "subnetId" + }, + "VpcId" : { + "shape" : "__string", + "locationName" : "vpcId" + } + } + }, + "NetworkInterfaces" : { + "type" : "list", + "member" : { + "shape" : "NetworkInterface" + } + }, + "NextToken" : { + "type" : "string" + }, + "OrderBy" : { + "type" : "string", + "enum" : [ "ASC", "DESC" ] + }, + "Organization" : { + "type" : "structure", + "members" : { + "Asn" : { + "shape" : "__string", + "locationName" : "asn" + }, + "AsnOrg" : { + "shape" : "__string", + "locationName" : "asnOrg" + }, + "Isp" : { + "shape" : "__string", + "locationName" : "isp" + }, + "Org" : { + "shape" : "__string", + "locationName" : "org" + } + } + }, + "PrivateDnsName" : { + "type" : "string" + }, + "PrivateIpAddress" : { + "type" : "string" + }, + "PrivateIpAddressDetails" : { + "type" : "structure", + "members" : { + "PrivateDnsName" : { + "shape" : "PrivateDnsName", + "locationName" : "privateDnsName" + }, + "PrivateIpAddress" : { + "shape" : "PrivateIpAddress", + "locationName" : "privateIpAddress" + } + } + }, + "PrivateIpAddresses" : { + "type" : "list", + "member" : { + "shape" : "PrivateIpAddressDetails" + } + }, + "ProductCode" : { + "type" : "structure", + "members" : { + "Code" : { + "shape" : "__string", + "locationName" : "code" + }, + "ProductType" : { + "shape" : "__string", + "locationName" : "productType" + } + } + }, + "ProductCodes" : { + "type" : "list", + "member" : { + "shape" : "ProductCode" + } + }, + "RemoteIpDetails" : { + "type" : "structure", + "members" : { + "City" : { + "shape" : "City", + "locationName" : "city" + }, + "Country" : { + "shape" : "Country", + "locationName" : "country" + }, + "GeoLocation" : { + "shape" : "GeoLocation", + "locationName" : "geoLocation" + }, + "IpAddressV4" : { + "shape" : "__string", + "locationName" : "ipAddressV4" + }, + "Organization" : { + "shape" : "Organization", + "locationName" : "organization" + } + } + }, + "RemotePortDetails" : { + "type" : "structure", + "members" : { + "Port" : { + "shape" : "__integer", + "locationName" : "port" + }, + "PortName" : { + "shape" : "__string", + "locationName" : "portName" + } + } + }, + "Resource" : { + "type" : "structure", + "members" : { + "InstanceDetails" : { + "shape" : "InstanceDetails", + "locationName" : "instanceDetails" + }, + "ResourceType" : { + "shape" : "__string", + "locationName" : "resourceType" + } + } + }, + "SecurityGroup" : { + "type" : "structure", + "members" : { + "GroupId" : { + "shape" : "__string", + "locationName" : "groupId" + }, + "GroupName" : { + "shape" : "__string", + "locationName" : "groupName" + } + } + }, + "SecurityGroups" : { + "type" : "list", + "member" : { + "shape" : "SecurityGroup" + } + }, + "Service" : { + "type" : "structure", + "members" : { + "Action" : { + "shape" : "Action", + "locationName" : "action" + }, + "Archived" : { + "shape" : "__boolean", + "locationName" : "archived" + }, + "Count" : { + "shape" : "__integer", + "locationName" : "count" + }, + "DetectorId" : { + "shape" : "DetectorId", + "locationName" : "detectorId" + }, + "EventFirstSeen" : { + "shape" : "__string", + "locationName" : "eventFirstSeen" + }, + "EventLastSeen" : { + "shape" : "__string", + "locationName" : "eventLastSeen" + }, + "ResourceRole" : { + "shape" : "__string", + "locationName" : "resourceRole" + }, + "ServiceName" : { + "shape" : "__string", + "locationName" : "serviceName" + }, + "UserFeedback" : { + "shape" : "__string", + "locationName" : "userFeedback" + } + } + }, + "ServiceRole" : { + "type" : "string" + }, + "SortCriteria" : { + "type" : "structure", + "members" : { + "AttributeName" : { + "shape" : "__string", + "locationName" : "attributeName" + }, + "OrderBy" : { + "shape" : "OrderBy", + "locationName" : "orderBy" + } + } + }, + "StartMonitoringMembersRequest" : { + "type" : "structure", + "members" : { + "AccountIds" : { + "shape" : "AccountIds", + "locationName" : "accountIds" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + } + }, + "required" : [ "DetectorId" ] + }, + "StartMonitoringMembersResponse" : { + "type" : "structure", + "members" : { + "UnprocessedAccounts" : { + "shape" : "UnprocessedAccounts", + "locationName" : "unprocessedAccounts" + } + } + }, + "StopMonitoringMembersRequest" : { + "type" : "structure", + "members" : { + "AccountIds" : { + "shape" : "AccountIds", + "locationName" : "accountIds" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + } + }, + "required" : [ "DetectorId" ] + }, + "StopMonitoringMembersResponse" : { + "type" : "structure", + "members" : { + "UnprocessedAccounts" : { + "shape" : "UnprocessedAccounts", + "locationName" : "unprocessedAccounts" + } + } + }, + "Tag" : { + "type" : "structure", + "members" : { + "Key" : { + "shape" : "__string", + "locationName" : "key" + }, + "Value" : { + "shape" : "__string", + "locationName" : "value" + } + } + }, + "Tags" : { + "type" : "list", + "member" : { + "shape" : "Tag" + } + }, + "ThreatIntelSetFormat" : { + "type" : "string", + "enum" : [ "TXT", "STIX", "OTX_CSV", "ALIEN_VAULT", "PROOF_POINT", "FIRE_EYE" ] + }, + "ThreatIntelSetId" : { + "type" : "string" + }, + "ThreatIntelSetIds" : { + "type" : "list", + "member" : { + "shape" : "ThreatIntelSetId" + } + }, + "ThreatIntelSetStatus" : { + "type" : "string", + "enum" : [ "INACTIVE", "ACTIVATING", "ACTIVE", "DEACTIVATING", "ERROR", "DELETE_PENDING", "DELETED" ] + }, + "UnarchiveFindingsRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "FindingIds" : { + "shape" : "FindingIds", + "locationName" : "findingIds" + } + }, + "required" : [ "DetectorId" ] + }, + "UnarchiveFindingsResponse" : { + "type" : "structure", + "members" : { } + }, + "UnprocessedAccount" : { + "type" : "structure", + "members" : { + "AccountId" : { + "shape" : "__string", + "locationName" : "accountId" + }, + "Result" : { + "shape" : "__string", + "locationName" : "result" + } + } + }, + "UnprocessedAccounts" : { + "type" : "list", + "member" : { + "shape" : "UnprocessedAccount" + } + }, + "UpdateDetectorRequest" : { + "type" : "structure", + "members" : { + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "Enable" : { + "shape" : "Enable", + "locationName" : "enable" + } + }, + "required" : [ "DetectorId" ] + }, + "UpdateDetectorResponse" : { + "type" : "structure", + "members" : { } + }, + "UpdateFindingsFeedbackRequest" : { + "type" : "structure", + "members" : { + "Comments" : { + "shape" : "Comments", + "locationName" : "comments" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "Feedback" : { + "shape" : "Feedback", + "locationName" : "feedback" + }, + "FindingIds" : { + "shape" : "FindingIds", + "locationName" : "findingIds" + } + }, + "required" : [ "DetectorId" ] + }, + "UpdateFindingsFeedbackResponse" : { + "type" : "structure", + "members" : { } + }, + "UpdateIPSetRequest" : { + "type" : "structure", + "members" : { + "Activate" : { + "shape" : "Activate", + "locationName" : "activate" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "IpSetId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "ipSetId" + }, + "Location" : { + "shape" : "Location", + "locationName" : "location" + }, + "Name" : { + "shape" : "Name", + "locationName" : "name" + } + }, + "required" : [ "DetectorId", "IpSetId" ] + }, + "UpdateIPSetResponse" : { + "type" : "structure", + "members" : { } + }, + "UpdateThreatIntelSetRequest" : { + "type" : "structure", + "members" : { + "Activate" : { + "shape" : "Activate", + "locationName" : "activate" + }, + "DetectorId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "detectorId" + }, + "Location" : { + "shape" : "Location", + "locationName" : "location" + }, + "Name" : { + "shape" : "Name", + "locationName" : "name" + }, + "ThreatIntelSetId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "threatIntelSetId" + } + }, + "required" : [ "ThreatIntelSetId", "DetectorId" ] + }, + "UpdateThreatIntelSetResponse" : { + "type" : "structure", + "members" : { } + }, + "UpdatedAt" : { + "type" : "string" + }, + "__boolean" : { + "type" : "boolean" + }, + "__double" : { + "type" : "double" + }, + "__integer" : { + "type" : "integer" + }, + "__string" : { + "type" : "string" + }, + "__timestamp" : { + "type" : "timestamp" + } + } +} diff --git a/models/apis/GuardDuty/2017-11-28/docs-2.json b/models/apis/GuardDuty/2017-11-28/docs-2.json new file mode 100644 index 00000000000..d74714e0245 --- /dev/null +++ b/models/apis/GuardDuty/2017-11-28/docs-2.json @@ -0,0 +1,930 @@ +{ + "version" : "2.0", + "service" : "Assess, monitor, manage, and remediate security issues across your AWS infrastructure, applications, and data.", + "operations" : { + "AcceptInvitation" : "Accepts the invitation to be monitored by a master GuardDuty account.", + "ArchiveFindings" : "Archives Amazon GuardDuty findings specified by the list of finding IDs.", + "CreateDetector" : "Creates a single Amazon GuardDuty detector. A detector is an object that represents the GuardDuty service. A detector must be created in order for GuardDuty to become operational.", + "CreateIPSet" : "Creates a new IPSet - a list of trusted IP addresses that have been whitelisted for secure communication with AWS infrastructure and applications.", + "CreateMembers" : "Creates member accounts of the current AWS account by specifying a list of AWS account IDs. The current AWS account can then invite these members to manage GuardDuty in their accounts.", + "CreateSampleFindings" : "Generates example findings of types specified by the list of finding types. If 'NULL' is specified for findingTypes, the API generates example findings of all supported finding types.", + "CreateThreatIntelSet" : "Create a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates findings based on ThreatIntelSets.", + "DeclineInvitations" : "Declines invitations sent to the current member account by AWS account specified by their account IDs.", + "DeleteDetector" : "Deletes a Amazon GuardDuty detector specified by the detector ID.", + "DeleteIPSet" : "Deletes the IPSet specified by the IPSet ID.", + "DeleteInvitations" : "Deletes invitations sent to the current member account by AWS accounts specified by their account IDs.", + "DeleteMembers" : "Deletes GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.", + "DeleteThreatIntelSet" : "Deletes ThreatIntelSet specified by the ThreatIntelSet ID.", + "DisassociateFromMasterAccount" : "Disassociates the current GuardDuty member account from its master account.", + "DisassociateMembers" : "Disassociates GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.", + "GetDetector" : "Retrieves an Amazon GuardDuty detector specified by the detectorId.", + "GetFindings" : "Describes Amazon GuardDuty findings specified by finding IDs.", + "GetFindingsStatistics" : "Lists Amazon GuardDuty findings' statistics for the specified detector ID.", + "GetIPSet" : "Retrieves the IPSet specified by the IPSet ID.", + "GetInvitationsCount" : "Returns the count of all GuardDuty membership invitations that were sent to the current member account except the currently accepted invitation.", + "GetMasterAccount" : "Provides the details for the GuardDuty master account to the current GuardDuty member account.", + "GetMembers" : "Retrieves GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.", + "GetThreatIntelSet" : "Retrieves the ThreatIntelSet that is specified by the ThreatIntelSet ID.", + "InviteMembers" : "Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty and allow the current AWS account to view and manage these accounts' GuardDuty findings on their behalf as the master account.", + "ListDetectors" : "Lists detectorIds of all the existing Amazon GuardDuty detector resources.", + "ListFindings" : "Lists Amazon GuardDuty findings for the specified detector ID.", + "ListIPSets" : "Lists the IPSets of the GuardDuty service specified by the detector ID.", + "ListInvitations" : "Lists all GuardDuty membership invitations that were sent to the current AWS account.", + "ListMembers" : "Lists details about all member accounts for the current GuardDuty master account.", + "ListThreatIntelSets" : "Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID.", + "StartMonitoringMembers" : "Re-enables GuardDuty to monitor findings of the member accounts specified by the account IDs. A master GuardDuty account can run this command after disabling GuardDuty from monitoring these members' findings by running StopMonitoringMembers.", + "StopMonitoringMembers" : "Disables GuardDuty from monitoring findings of the member accounts specified by the account IDs. After running this command, a master GuardDuty account can run StartMonitoringMembers to re-enable GuardDuty to monitor these members' findings.", + "UnarchiveFindings" : "Unarchives Amazon GuardDuty findings specified by the list of finding IDs.", + "UpdateDetector" : "Updates an Amazon GuardDuty detector specified by the detectorId.", + "UpdateFindingsFeedback" : "Marks specified Amazon GuardDuty findings as useful or not useful.", + "UpdateIPSet" : "Updates the IPSet specified by the IPSet ID.", + "UpdateThreatIntelSet" : "Updates the ThreatIntelSet specified by ThreatIntelSet ID." + }, + "shapes" : { + "AcceptInvitationRequest" : { + "base" : "AcceptInvitation request body.", + "refs" : { } + }, + "AccountDetail" : { + "base" : "An object containing the member's accountId and email address.", + "refs" : { + "AccountDetails$member" : null + } + }, + "AccountDetails" : { + "base" : "A list of account/email pairs.", + "refs" : { + "CreateMembersRequest$AccountDetails" : "A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account." + } + }, + "AccountId" : { + "base" : "AWS account ID.", + "refs" : { + "AccountDetail$AccountId" : "Member account ID.", + "Member$AccountId" : null + } + }, + "AccountIds" : { + "base" : "A list of account IDs.", + "refs" : { + "DeclineInvitationsRequest$AccountIds" : "A list of account IDs of the AWS accounts that sent invitations to the current member account that you want to decline invitations from.", + "DeleteInvitationsRequest$AccountIds" : "A list of account IDs of the AWS accounts that sent invitations to the current member account that you want to delete invitations from.", + "DeleteMembersRequest$AccountIds" : "A list of account IDs of the GuardDuty member accounts that you want to delete.", + "DisassociateMembersRequest$AccountIds" : "A list of account IDs of the GuardDuty member accounts that you want to disassociate from master.", + "GetMembersRequest$AccountIds" : "A list of account IDs of the GuardDuty member accounts that you want to describe.", + "InviteMembersRequest$AccountIds" : "A list of account IDs of the accounts that you want to invite to GuardDuty as members.", + "StartMonitoringMembersRequest$AccountIds" : "A list of account IDs of the GuardDuty member accounts whose findings you want the master account to monitor.", + "StopMonitoringMembersRequest$AccountIds" : "A list of account IDs of the GuardDuty member accounts whose findings you want the master account to stop monitoring." + } + }, + "Action" : { + "base" : "Information about the activity described in a finding.", + "refs" : { + "Service$Action" : "Information about the activity described in a finding." + } + }, + "Activate" : { + "base" : "Whether we should start processing the list immediately or not.", + "refs" : { + "CreateIPSetRequest$Activate" : "A boolean value that indicates whether GuardDuty is to start using the uploaded IPSet.", + "CreateThreatIntelSetRequest$Activate" : "A boolean value that indicates whether GuardDuty is to start using the uploaded ThreatIntelSet.", + "UpdateIPSetRequest$Activate" : "The updated boolean value that specifies whether the IPSet is active or not.", + "UpdateThreatIntelSetRequest$Activate" : "The updated boolean value that specifies whether the ThreateIntelSet is active or not." + } + }, + "ArchiveFindingsRequest" : { + "base" : "Archive Findings Request", + "refs" : { } + }, + "AwsApiCallAction" : { + "base" : "Information about the AWS_API_CALL action described in this finding.", + "refs" : { + "Action$AwsApiCallAction" : "Information about the AWS_API_CALL action described in this finding." + } + }, + "BadRequestException" : { + "base" : "Error response object.", + "refs" : { } + }, + "City" : { + "base" : "City information of the remote IP address.", + "refs" : { + "RemoteIpDetails$City" : "City information of the remote IP address." + } + }, + "Comments" : { + "base" : "Additional feedback about the GuardDuty findings.", + "refs" : { + "UpdateFindingsFeedbackRequest$Comments" : "Additional feedback about the GuardDuty findings." + } + }, + "Condition" : { + "base" : "Finding attribute (for example, accountId) for which conditions and values must be specified when querying findings.", + "refs" : { + "MapOfCondition$member" : null + } + }, + "CountBySeverityFindingStatistic" : { + "base" : "The count of findings for the given severity.", + "refs" : { + "MapOfCountBySeverityFindingStatistic$member" : null + } + }, + "Country" : { + "base" : "Country information of the remote IP address.", + "refs" : { + "RemoteIpDetails$Country" : "Country code of the remote IP address." + } + }, + "CreateDetectorRequest" : { + "base" : "Create Detector Request", + "refs" : { } + }, + "CreateDetectorResponse" : { + "base" : "CreateDetector response object.", + "refs" : { } + }, + "CreateIPSetRequest" : { + "base" : "Create IP Set Request", + "refs" : { } + }, + "CreateIPSetResponse" : { + "base" : "CreateIPSet response object.", + "refs" : { } + }, + "CreateMembersRequest" : { + "base" : "CreateMembers body", + "refs" : { } + }, + "CreateMembersResponse" : { + "base" : "CreateMembers response object.", + "refs" : { } + }, + "CreateSampleFindingsRequest" : { + "base" : "Create Sample Findings Request", + "refs" : { } + }, + "CreateThreatIntelSetRequest" : { + "base" : "Create Threat Intel Set Request", + "refs" : { } + }, + "CreateThreatIntelSetResponse" : { + "base" : "CreateThreatIntelSet response object.", + "refs" : { } + }, + "CreatedAt" : { + "base" : "The first time a resource was created. The format will be ISO-8601.", + "refs" : { + "Finding$CreatedAt" : "The time stamp at which a finding was generated.", + "GetDetectorResponse$CreatedAt" : null + } + }, + "DeclineInvitationsRequest" : { + "base" : "DeclineInvitations request body.", + "refs" : { } + }, + "DeclineInvitationsResponse" : { + "base" : "DeclineInvitations response object.", + "refs" : { } + }, + "DeleteInvitationsRequest" : { + "base" : "DeleteInvitations request body.", + "refs" : { } + }, + "DeleteInvitationsResponse" : { + "base" : "DeleteInvitations response object.", + "refs" : { } + }, + "DeleteMembersRequest" : { + "base" : "DeleteMembers request body.", + "refs" : { } + }, + "DeleteMembersResponse" : { + "base" : "DeleteMembers response object.", + "refs" : { } + }, + "DetectorId" : { + "base" : "The unique identifier for a detector.", + "refs" : { + "CreateDetectorResponse$DetectorId" : "The unique ID of the created detector.", + "DetectorIds$member" : null, + "Member$DetectorId" : null, + "Service$DetectorId" : "Detector ID for the GuardDuty service." + } + }, + "DetectorIds" : { + "base" : "A list of detector Ids.", + "refs" : { + "ListDetectorsResponse$DetectorIds" : null + } + }, + "DetectorStatus" : { + "base" : "The status of detector.", + "refs" : { + "GetDetectorResponse$Status" : null + } + }, + "DisassociateMembersRequest" : { + "base" : "DisassociateMembers request body.", + "refs" : { } + }, + "DisassociateMembersResponse" : { + "base" : "DisassociateMembers response object.", + "refs" : { } + }, + "DnsRequestAction" : { + "base" : "Information about the DNS_REQUEST action described in this finding.", + "refs" : { + "Action$DnsRequestAction" : "Information about the DNS_REQUEST action described in this finding." + } + }, + "Domain" : { + "base" : "A domain name.", + "refs" : { + "DnsRequestAction$Domain" : "Domain information for the DNS request." + } + }, + "DomainDetails" : { + "base" : "Domain information for the AWS API call.", + "refs" : { + "AwsApiCallAction$DomainDetails" : "Domain information for the AWS API call." + } + }, + "Email" : { + "base" : "Member account's email address.", + "refs" : { + "AccountDetail$Email" : "Member account's email address.", + "Member$Email" : "Member account's email address." + } + }, + "Enable" : { + "base" : "A boolean value that specifies whether the detector is to be enabled.", + "refs" : { + "CreateDetectorRequest$Enable" : "A boolean value that specifies whether the detector is to be enabled.", + "UpdateDetectorRequest$Enable" : "Updated boolean value for the detector that specifies whether the detector is enabled." + } + }, + "Eq" : { + "base" : "Represents the equal condition to be applied to a single field when querying for findings.", + "refs" : { + "Condition$Eq" : "Represents the equal condition to be applied to a single field when querying for findings." + } + }, + "ErrorResponse" : { + "base" : "Error response object.", + "refs" : { } + }, + "Feedback" : { + "base" : "Finding Feedback Value", + "refs" : { + "UpdateFindingsFeedbackRequest$Feedback" : "Valid values: USEFUL | NOT_USEFUL" + } + }, + "Finding" : { + "base" : "Representation of a abnormal or suspicious activity.", + "refs" : { + "Findings$member" : null + } + }, + "FindingCriteria" : { + "base" : "Represents the criteria used for querying findings.", + "refs" : { + "GetFindingsStatisticsRequest$FindingCriteria" : "Represents the criteria used for querying findings.", + "ListFindingsRequest$FindingCriteria" : "Represents the criteria used for querying findings." + } + }, + "FindingId" : { + "base" : "The unique identifier for the Finding", + "refs" : { + "FindingIds$member" : null + } + }, + "FindingIds" : { + "base" : "The list of the Findings.", + "refs" : { + "ArchiveFindingsRequest$FindingIds" : "IDs of the findings that you want to archive.", + "GetFindingsRequest$FindingIds" : "IDs of the findings that you want to retrieve.", + "ListFindingsResponse$FindingIds" : null, + "UnarchiveFindingsRequest$FindingIds" : "IDs of the findings that you want to unarchive.", + "UpdateFindingsFeedbackRequest$FindingIds" : "IDs of the findings that you want to mark as useful or not useful." + } + }, + "FindingStatisticType" : { + "base" : "The types of finding statistics.", + "refs" : { + "FindingStatisticTypes$member" : null + } + }, + "FindingStatisticTypes" : { + "base" : "The list of the finding statistics.", + "refs" : { + "GetFindingsStatisticsRequest$FindingStatisticTypes" : "Types of finding statistics to retrieve." + } + }, + "FindingStatistics" : { + "base" : "Finding statistics object.", + "refs" : { + "GetFindingsStatisticsResponse$FindingStatistics" : "Finding statistics object." + } + }, + "FindingType" : { + "base" : "The finding type for the finding", + "refs" : { + "FindingTypes$member" : null + } + }, + "FindingTypes" : { + "base" : "The list of the finding types.", + "refs" : { + "CreateSampleFindingsRequest$FindingTypes" : "Types of sample findings that you want to generate." + } + }, + "Findings" : { + "base" : "A list of findings.", + "refs" : { + "GetFindingsResponse$Findings" : null + } + }, + "GeoLocation" : { + "base" : "Location information of the remote IP address.", + "refs" : { + "RemoteIpDetails$GeoLocation" : "Location information of the remote IP address." + } + }, + "GetDetectorResponse" : { + "base" : "GetDetector response object.", + "refs" : { } + }, + "GetFindingsRequest" : { + "base" : "Get Findings Request", + "refs" : { } + }, + "GetFindingsResponse" : { + "base" : "GetFindings response object.", + "refs" : { } + }, + "GetFindingsStatisticsRequest" : { + "base" : "Get Findings Statistics Request", + "refs" : { } + }, + "GetFindingsStatisticsResponse" : { + "base" : "GetFindingsStatistics response object.", + "refs" : { } + }, + "GetIPSetResponse" : { + "base" : "GetIPSet response object.", + "refs" : { } + }, + "GetInvitationsCountResponse" : { + "base" : "GetInvitationsCount response object.", + "refs" : { } + }, + "GetMasterAccountResponse" : { + "base" : "GetMasterAccount response object.", + "refs" : { } + }, + "GetMembersRequest" : { + "base" : "GetMembers request body.", + "refs" : { } + }, + "GetMembersResponse" : { + "base" : "GetMembers response object.", + "refs" : { } + }, + "GetThreatIntelSetResponse" : { + "base" : "GetThreatIntelSet response object", + "refs" : { } + }, + "IamInstanceProfile" : { + "base" : "The profile information of the EC2 instance.", + "refs" : { + "InstanceDetails$IamInstanceProfile" : null + } + }, + "InstanceDetails" : { + "base" : "The information about the EC2 instance associated with the activity that prompted GuardDuty to generate a finding.", + "refs" : { + "Resource$InstanceDetails" : null + } + }, + "InternalServerErrorException" : { + "base" : "Error response object.", + "refs" : { } + }, + "Invitation" : { + "base" : "Invitation from an AWS account to become the current account's master.", + "refs" : { + "Invitations$member" : null + } + }, + "InvitationId" : { + "base" : "This value is used to validate the master account to the member account.", + "refs" : { + "AcceptInvitationRequest$InvitationId" : "This value is used to validate the master account to the member account.", + "Invitation$InvitationId" : "This value is used to validate the inviter account to the member account.", + "Master$InvitationId" : "This value is used to validate the master account to the member account." + } + }, + "Invitations" : { + "base" : "A list of invitation descriptions.", + "refs" : { + "ListInvitationsResponse$Invitations" : null + } + }, + "InviteMembersRequest" : { + "base" : "InviteMembers request body.", + "refs" : { } + }, + "InviteMembersResponse" : { + "base" : "InviteMembers response object.", + "refs" : { } + }, + "InvitedAt" : { + "base" : "Timestamp at which a member has been invited. The format will be ISO-8601.", + "refs" : { + "Invitation$InvitedAt" : "Timestamp at which the invitation was sent", + "Master$InvitedAt" : "Timestamp at which the invitation was sent", + "Member$InvitedAt" : "Timestamp at which the invitation was sent" + } + }, + "IpSetFormat" : { + "base" : "The format of the ipSet.", + "refs" : { + "CreateIPSetRequest$Format" : "The format of the file that contains the IPSet.", + "GetIPSetResponse$Format" : "The format of the file that contains the IPSet." + } + }, + "IpSetId" : { + "base" : "The unique identifier for an IP Set", + "refs" : { + "CreateIPSetResponse$IpSetId" : null, + "IpSetIds$member" : null + } + }, + "IpSetIds" : { + "base" : "A list of the IP set IDs", + "refs" : { + "ListIPSetsResponse$IpSetIds" : null + } + }, + "IpSetStatus" : { + "base" : "The status of ipSet file uploaded.", + "refs" : { + "GetIPSetResponse$Status" : "The status of ipSet file uploaded." + } + }, + "Ipv6Address" : { + "base" : "IpV6 address of the EC2 instance.", + "refs" : { + "Ipv6Addresses$member" : null + } + }, + "Ipv6Addresses" : { + "base" : "A list of EC2 instance IPv6 address information.", + "refs" : { + "NetworkInterface$Ipv6Addresses" : "A list of EC2 instance IPv6 address information." + } + }, + "ListDetectorsResponse" : { + "base" : "ListDetectors response object.", + "refs" : { } + }, + "ListFindingsRequest" : { + "base" : "List Findings Request", + "refs" : { } + }, + "ListFindingsResponse" : { + "base" : "ListFindings response object.", + "refs" : { } + }, + "ListIPSetsResponse" : { + "base" : "ListIPSets response object.", + "refs" : { } + }, + "ListInvitationsResponse" : { + "base" : "ListInvitations response object.", + "refs" : { } + }, + "ListMembersResponse" : { + "base" : "ListMembers response object.", + "refs" : { } + }, + "ListThreatIntelSetsResponse" : { + "base" : "ListThreatIntelSets response object.", + "refs" : { } + }, + "LocalPortDetails" : { + "base" : "Local port information of the connection.", + "refs" : { + "NetworkConnectionAction$LocalPortDetails" : "Local port information of the connection." + } + }, + "Location" : { + "base" : "The location of the S3 bucket where the list resides. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)", + "refs" : { + "CreateIPSetRequest$Location" : "The URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)", + "CreateThreatIntelSetRequest$Location" : "The URI of the file that contains the ThreatIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).", + "GetIPSetResponse$Location" : "The URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)", + "GetThreatIntelSetResponse$Location" : "The URI of the file that contains the ThreatIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).", + "UpdateIPSetRequest$Location" : "The updated URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).", + "UpdateThreatIntelSetRequest$Location" : "The updated URI of the file that contains the ThreateIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)" + } + }, + "MapOfCondition" : { + "base" : null, + "refs" : { + "FindingCriteria$Criterion" : "Represents a map of finding properties that match specified conditions and values when querying findings." + } + }, + "MapOfCountBySeverityFindingStatistic" : { + "base" : null, + "refs" : { + "FindingStatistics$CountBySeverity" : "Represents a map of severity to count statistic for a set of findings" + } + }, + "Master" : { + "base" : "Contains details about the master account.", + "refs" : { + "GetMasterAccountResponse$Master" : null + } + }, + "MasterId" : { + "base" : "The master account ID.", + "refs" : { + "AcceptInvitationRequest$MasterId" : "The account ID of the master GuardDuty account whose invitation you're accepting.", + "Member$MasterId" : null + } + }, + "MaxResults" : { + "base" : "You can use this parameter to indicate the maximum number of items that you want in the response.", + "refs" : { + "ListFindingsRequest$MaxResults" : "You can use this parameter to indicate the maximum number of items you want in the response. The default value is 50. The maximum value is 50." + } + }, + "Member" : { + "base" : "Contains details about the member account.", + "refs" : { + "Members$member" : null + } + }, + "Members" : { + "base" : "A list of member descriptions.", + "refs" : { + "GetMembersResponse$Members" : null, + "ListMembersResponse$Members" : null + } + }, + "Message" : { + "base" : "The invitation message that you want to send to the accounts that you're inviting to GuardDuty as members.", + "refs" : { + "InviteMembersRequest$Message" : "The invitation message that you want to send to the accounts that you're inviting to GuardDuty as members." + } + }, + "Name" : { + "base" : "The user-friendly name to identify the list.", + "refs" : { + "CreateIPSetRequest$Name" : "The user friendly name to identify the IPSet. This name is displayed in all findings that are triggered by activity that involves IP addresses included in this IPSet.", + "CreateThreatIntelSetRequest$Name" : "A user-friendly ThreatIntelSet name that is displayed in all finding generated by activity that involves IP addresses included in this ThreatIntelSet.", + "GetIPSetResponse$Name" : "The user friendly name to identify the IPSet. This name is displayed in all findings that are triggered by activity that involves IP addresses included in this IPSet.", + "GetThreatIntelSetResponse$Name" : "A user-friendly ThreatIntelSet name that is displayed in all finding generated by activity that involves IP addresses included in this ThreatIntelSet.", + "UpdateIPSetRequest$Name" : "The unique ID that specifies the IPSet that you want to update.", + "UpdateThreatIntelSetRequest$Name" : "The unique ID that specifies the ThreatIntelSet that you want to update." + } + }, + "Neq" : { + "base" : "Represents the not equal condition to be applied to a single field when querying for findings.", + "refs" : { + "Condition$Neq" : "Represents the not equal condition to be applied to a single field when querying for findings." + } + }, + "NetworkConnectionAction" : { + "base" : "Information about the NETWORK_CONNECTION action described in this finding.", + "refs" : { + "Action$NetworkConnectionAction" : "Information about the NETWORK_CONNECTION action described in this finding." + } + }, + "NetworkInterface" : { + "base" : "The network interface information of the EC2 instance.", + "refs" : { + "NetworkInterfaces$member" : null + } + }, + "NetworkInterfaces" : { + "base" : "The network interface information of the EC2 instance.", + "refs" : { + "InstanceDetails$NetworkInterfaces" : "The network interface information of the EC2 instance." + } + }, + "NextToken" : { + "base" : "You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the list action. For subsequent calls to the action fill nextToken in the request with the value of NextToken from the previous response to continue listing data.", + "refs" : { + "ListDetectorsResponse$NextToken" : null, + "ListFindingsRequest$NextToken" : "You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListFindings action. For subsequent calls to the action fill nextToken in the request with the value of nextToken from the previous response to continue listing data.", + "ListFindingsResponse$NextToken" : null, + "ListIPSetsResponse$NextToken" : null, + "ListInvitationsResponse$NextToken" : null, + "ListMembersResponse$NextToken" : null, + "ListThreatIntelSetsResponse$NextToken" : null + } + }, + "OrderBy" : { + "base" : null, + "refs" : { + "SortCriteria$OrderBy" : "Order by which the sorted findings are to be displayed." + } + }, + "Organization" : { + "base" : "ISP Organization information of the remote IP address.", + "refs" : { + "RemoteIpDetails$Organization" : "ISP Organization information of the remote IP address." + } + }, + "PrivateDnsName" : { + "base" : "Private DNS name of the EC2 instance.", + "refs" : { + "NetworkInterface$PrivateDnsName" : "Private DNS name of the EC2 instance.", + "PrivateIpAddressDetails$PrivateDnsName" : "Private DNS name of the EC2 instance." + } + }, + "PrivateIpAddress" : { + "base" : "Private IP address of the EC2 instance.", + "refs" : { + "NetworkInterface$PrivateIpAddress" : "Private IP address of the EC2 instance.", + "PrivateIpAddressDetails$PrivateIpAddress" : "Private IP address of the EC2 instance." + } + }, + "PrivateIpAddressDetails" : { + "base" : "Other private IP address information of the EC2 instance.", + "refs" : { + "PrivateIpAddresses$member" : null + } + }, + "PrivateIpAddresses" : { + "base" : "Other private IP address information of the EC2 instance.", + "refs" : { + "NetworkInterface$PrivateIpAddresses" : "Other private IP address information of the EC2 instance." + } + }, + "ProductCode" : { + "base" : "The product code of the EC2 instance.", + "refs" : { + "ProductCodes$member" : null + } + }, + "ProductCodes" : { + "base" : "The product code of the EC2 instance.", + "refs" : { + "InstanceDetails$ProductCodes" : "The product code of the EC2 instance." + } + }, + "RemoteIpDetails" : { + "base" : "Remote IP information of the connection.", + "refs" : { + "AwsApiCallAction$RemoteIpDetails" : "Remote IP information of the connection.", + "NetworkConnectionAction$RemoteIpDetails" : "Remote IP information of the connection." + } + }, + "RemotePortDetails" : { + "base" : "Remote port information of the connection.", + "refs" : { + "NetworkConnectionAction$RemotePortDetails" : "Remote port information of the connection." + } + }, + "Resource" : { + "base" : "The AWS resource associated with the activity that prompted GuardDuty to generate a finding.", + "refs" : { + "Finding$Resource" : "The AWS resource associated with the activity that prompted GuardDuty to generate a finding." + } + }, + "SecurityGroup" : { + "base" : "Security groups associated with the EC2 instance.", + "refs" : { + "SecurityGroups$member" : null + } + }, + "SecurityGroups" : { + "base" : "Security groups associated with the EC2 instance.", + "refs" : { + "NetworkInterface$SecurityGroups" : "Security groups associated with the EC2 instance." + } + }, + "Service" : { + "base" : "Additional information assigned to the generated finding by GuardDuty.", + "refs" : { + "Finding$Service" : "Additional information assigned to the generated finding by GuardDuty." + } + }, + "ServiceRole" : { + "base" : "Customer serviceRole name or ARN for accessing customer resources", + "refs" : { + "GetDetectorResponse$ServiceRole" : null + } + }, + "SortCriteria" : { + "base" : "Represents the criteria used for sorting findings.", + "refs" : { + "GetFindingsRequest$SortCriteria" : "Represents the criteria used for sorting findings.", + "ListFindingsRequest$SortCriteria" : "Represents the criteria used for sorting findings." + } + }, + "StartMonitoringMembersRequest" : { + "base" : "StartMonitoringMembers request body.", + "refs" : { } + }, + "StartMonitoringMembersResponse" : { + "base" : "StartMonitoringMembers response object.", + "refs" : { } + }, + "StopMonitoringMembersRequest" : { + "base" : "StopMonitoringMembers request body.", + "refs" : { } + }, + "StopMonitoringMembersResponse" : { + "base" : "StopMonitoringMembers response object.", + "refs" : { } + }, + "Tag" : { + "base" : "A tag of the EC2 instance.", + "refs" : { + "Tags$member" : null + } + }, + "Tags" : { + "base" : "The tags of the EC2 instance.", + "refs" : { + "InstanceDetails$Tags" : "The tags of the EC2 instance." + } + }, + "ThreatIntelSetFormat" : { + "base" : "The format of the threatIntelSet.", + "refs" : { + "CreateThreatIntelSetRequest$Format" : "The format of the file that contains the ThreatIntelSet.", + "GetThreatIntelSetResponse$Format" : "The format of the threatIntelSet." + } + }, + "ThreatIntelSetId" : { + "base" : "The unique identifier for an threat intel set", + "refs" : { + "CreateThreatIntelSetResponse$ThreatIntelSetId" : null, + "ThreatIntelSetIds$member" : null + } + }, + "ThreatIntelSetIds" : { + "base" : "The list of the threat intel set IDs", + "refs" : { + "ListThreatIntelSetsResponse$ThreatIntelSetIds" : null + } + }, + "ThreatIntelSetStatus" : { + "base" : "The status of threatIntelSet file uploaded.", + "refs" : { + "GetThreatIntelSetResponse$Status" : "The status of threatIntelSet file uploaded." + } + }, + "UnarchiveFindingsRequest" : { + "base" : "Unrchive Findings Request", + "refs" : { } + }, + "UnprocessedAccount" : { + "base" : "An object containing the unprocessed account and a result string explaining why it was unprocessed.", + "refs" : { + "UnprocessedAccounts$member" : null + } + }, + "UnprocessedAccounts" : { + "base" : "A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.", + "refs" : { + "CreateMembersResponse$UnprocessedAccounts" : "A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.", + "DeclineInvitationsResponse$UnprocessedAccounts" : "A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.", + "DeleteInvitationsResponse$UnprocessedAccounts" : "A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.", + "DeleteMembersResponse$UnprocessedAccounts" : "A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.", + "DisassociateMembersResponse$UnprocessedAccounts" : "A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.", + "GetMembersResponse$UnprocessedAccounts" : "A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.", + "InviteMembersResponse$UnprocessedAccounts" : "A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.", + "StartMonitoringMembersResponse$UnprocessedAccounts" : "A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.", + "StopMonitoringMembersResponse$UnprocessedAccounts" : "A list of objects containing the unprocessed account and a result string explaining why it was unprocessed." + } + }, + "UpdateDetectorRequest" : { + "base" : "Update Detector Request", + "refs" : { } + }, + "UpdateFindingsFeedbackRequest" : { + "base" : "Update findings feedback body", + "refs" : { } + }, + "UpdateIPSetRequest" : { + "base" : "Update IP Set Request", + "refs" : { } + }, + "UpdateThreatIntelSetRequest" : { + "base" : "Update Threat Intel Set Request", + "refs" : { } + }, + "UpdatedAt" : { + "base" : "The first time a resource was created. The format will be ISO-8601.", + "refs" : { + "Finding$UpdatedAt" : "The time stamp at which a finding was last updated.", + "GetDetectorResponse$UpdatedAt" : null, + "Member$UpdatedAt" : null + } + }, + "__boolean" : { + "base" : null, + "refs" : { + "NetworkConnectionAction$Blocked" : "Network connection blocked information.", + "Service$Archived" : "Indicates whether this finding is archived." + } + }, + "__double" : { + "base" : null, + "refs" : { + "Finding$Confidence" : "The confidence level of a finding.", + "Finding$Severity" : "The severity of a finding.", + "GeoLocation$Lat" : "Latitude information of remote IP address.", + "GeoLocation$Lon" : "Longitude information of remote IP address." + } + }, + "__integer" : { + "base" : null, + "refs" : { + "Condition$Gt" : "Represents the greater than condition to be applied to a single field when querying for findings.", + "Condition$Gte" : "Represents the greater than equal condition to be applied to a single field when querying for findings.", + "Condition$Lt" : "Represents the less than condition to be applied to a single field when querying for findings.", + "Condition$Lte" : "Represents the less than equal condition to be applied to a single field when querying for findings.", + "GetInvitationsCountResponse$InvitationsCount" : "The number of received invitations.", + "LocalPortDetails$Port" : "Port number of the local connection.", + "RemotePortDetails$Port" : "Port number of the remote connection.", + "Service$Count" : "Total count of the occurrences of this finding type." + } + }, + "__string" : { + "base" : null, + "refs" : { + "AccountIds$member" : null, + "Action$ActionType" : "GuardDuty Finding activity type.", + "AwsApiCallAction$Api" : "AWS API name.", + "AwsApiCallAction$CallerType" : "AWS API caller type.", + "AwsApiCallAction$ServiceName" : "AWS service name whose API was invoked.", + "City$CityName" : "City name of the remote IP address.", + "Country$CountryCode" : "Country code of the remote IP address.", + "Country$CountryName" : "Country name of the remote IP address.", + "Eq$member" : null, + "ErrorResponse$Message" : "The error message.", + "ErrorResponse$Type" : "The error type.", + "Finding$AccountId" : "AWS account ID where the activity occurred that prompted GuardDuty to generate a finding.", + "Finding$Arn" : "The ARN of a finding described by the action.", + "Finding$Description" : "The description of a finding.", + "Finding$Id" : "The identifier that corresponds to a finding described by the action.", + "Finding$Partition" : "The AWS resource partition.", + "Finding$Region" : "The AWS region where the activity occurred that prompted GuardDuty to generate a finding.", + "Finding$SchemaVersion" : "Findings' schema version.", + "Finding$Title" : "The title of a finding.", + "Finding$Type" : "The type of a finding described by the action.", + "IamInstanceProfile$Arn" : "AWS EC2 instance profile ARN.", + "IamInstanceProfile$Id" : "AWS EC2 instance profile ID.", + "InstanceDetails$AvailabilityZone" : "The availability zone of the EC2 instance.", + "InstanceDetails$ImageId" : "The image ID of the EC2 instance.", + "InstanceDetails$InstanceId" : "The ID of the EC2 instance.", + "InstanceDetails$InstanceState" : "The state of the EC2 instance.", + "InstanceDetails$InstanceType" : "The type of the EC2 instance.", + "InstanceDetails$LaunchTime" : "The launch time of the EC2 instance.", + "InstanceDetails$Platform" : "The platform of the EC2 instance.", + "Invitation$AccountId" : "Inviter account ID", + "Invitation$RelationshipStatus" : "The status of the relationship between the inviter and invitee accounts.", + "LocalPortDetails$PortName" : "Port name of the local connection.", + "Master$AccountId" : "Master account ID", + "Master$RelationshipStatus" : "The status of the relationship between the master and member accounts.", + "Member$RelationshipStatus" : "The status of the relationship between the member and the master.", + "Neq$member" : null, + "NetworkConnectionAction$ConnectionDirection" : "Network connection direction.", + "NetworkConnectionAction$Protocol" : "Network connection protocol.", + "NetworkInterface$PublicDnsName" : "Public DNS name of the EC2 instance.", + "NetworkInterface$PublicIp" : "Public IP address of the EC2 instance.", + "NetworkInterface$SubnetId" : "The subnet ID of the EC2 instance.", + "NetworkInterface$VpcId" : "The VPC ID of the EC2 instance.", + "Organization$Asn" : "Autonomous system number of the internet provider of the remote IP address.", + "Organization$AsnOrg" : "Organization that registered this ASN.", + "Organization$Isp" : "ISP information for the internet provider.", + "Organization$Org" : "Name of the internet provider.", + "ProductCode$Code" : "Product code information.", + "ProductCode$ProductType" : "Product code type.", + "RemoteIpDetails$IpAddressV4" : "IPV4 remote address of the connection.", + "RemotePortDetails$PortName" : "Port name of the remote connection.", + "Resource$ResourceType" : "The type of the AWS resource.", + "SecurityGroup$GroupId" : "EC2 instance's security group ID.", + "SecurityGroup$GroupName" : "EC2 instance's security group name.", + "Service$EventFirstSeen" : "First seen timestamp of the activity that prompted GuardDuty to generate this finding.", + "Service$EventLastSeen" : "Last seen timestamp of the activity that prompted GuardDuty to generate this finding.", + "Service$ResourceRole" : "Resource role information for this finding.", + "Service$ServiceName" : "The name of the AWS service (GuardDuty) that generated a finding.", + "Service$UserFeedback" : "Feedback left about the finding.", + "SortCriteria$AttributeName" : "Represents the finding attribute (for example, accountId) by which to sort findings.", + "Tag$Key" : "EC2 instance tag key.", + "Tag$Value" : "EC2 instance tag value.", + "UnprocessedAccount$AccountId" : "AWS Account ID.", + "UnprocessedAccount$Result" : "A reason why the account hasn't been processed." + } + } + } +} diff --git a/models/apis/GuardDuty/2017-11-28/paginators-1.json b/models/apis/GuardDuty/2017-11-28/paginators-1.json new file mode 100644 index 00000000000..93dc789795a --- /dev/null +++ b/models/apis/GuardDuty/2017-11-28/paginators-1.json @@ -0,0 +1,40 @@ +{ + "pagination": { + "ListDetectors": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "DetectorIds" + }, + "ListFindings": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "FindingIds" + }, + "ListIPSets": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "IpSetIds" + }, + "ListThreatIntelSets": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ThreatIntelSetIds" + }, + "ListInvitations": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Invitations" + }, + "ListMembers": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Members" + } + } +} diff --git a/models/apis/SageMaker/2017-07-24/api-2.json b/models/apis/SageMaker/2017-07-24/api-2.json new file mode 100644 index 00000000000..0fb8c715590 --- /dev/null +++ b/models/apis/SageMaker/2017-07-24/api-2.json @@ -0,0 +1,1540 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-07-24", + "endpointPrefix":"sagemaker", + "jsonVersion":"1.1", + "protocol":"json", + "serviceAbbreviation":"SageMaker", + "serviceFullName":"Amazon SageMaker Service", + "signatureVersion":"v4", + "signingName":"sagemaker", + "targetPrefix":"SageMaker", + "uid":"sagemaker-2017-07-24" + }, + "operations":{ + "AddTags":{ + "name":"AddTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddTagsInput"}, + "output":{"shape":"AddTagsOutput"} + }, + "CreateEndpoint":{ + "name":"CreateEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEndpointInput"}, + "output":{"shape":"CreateEndpointOutput"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ] + }, + "CreateEndpointConfig":{ + "name":"CreateEndpointConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEndpointConfigInput"}, + "output":{"shape":"CreateEndpointConfigOutput"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ] + }, + "CreateModel":{ + "name":"CreateModel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateModelInput"}, + "output":{"shape":"CreateModelOutput"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ] + }, + "CreateNotebookInstance":{ + "name":"CreateNotebookInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNotebookInstanceInput"}, + "output":{"shape":"CreateNotebookInstanceOutput"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ] + }, + "CreatePresignedNotebookInstanceUrl":{ + "name":"CreatePresignedNotebookInstanceUrl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePresignedNotebookInstanceUrlInput"}, + "output":{"shape":"CreatePresignedNotebookInstanceUrlOutput"} + }, + "CreateTrainingJob":{ + "name":"CreateTrainingJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTrainingJobRequest"}, + "output":{"shape":"CreateTrainingJobResponse"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceLimitExceeded"} + ] + }, + "DeleteEndpoint":{ + "name":"DeleteEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEndpointInput"} + }, + "DeleteEndpointConfig":{ + "name":"DeleteEndpointConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEndpointConfigInput"} + }, + "DeleteModel":{ + "name":"DeleteModel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteModelInput"} + }, + "DeleteNotebookInstance":{ + "name":"DeleteNotebookInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNotebookInstanceInput"} + }, + "DeleteTags":{ + "name":"DeleteTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTagsInput"}, + "output":{"shape":"DeleteTagsOutput"} + }, + "DescribeEndpoint":{ + "name":"DescribeEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEndpointInput"}, + "output":{"shape":"DescribeEndpointOutput"} + }, + "DescribeEndpointConfig":{ + "name":"DescribeEndpointConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEndpointConfigInput"}, + "output":{"shape":"DescribeEndpointConfigOutput"} + }, + "DescribeModel":{ + "name":"DescribeModel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeModelInput"}, + "output":{"shape":"DescribeModelOutput"} + }, + "DescribeNotebookInstance":{ + "name":"DescribeNotebookInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeNotebookInstanceInput"}, + "output":{"shape":"DescribeNotebookInstanceOutput"} + }, + "DescribeTrainingJob":{ + "name":"DescribeTrainingJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrainingJobRequest"}, + "output":{"shape":"DescribeTrainingJobResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, + "ListEndpointConfigs":{ + "name":"ListEndpointConfigs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListEndpointConfigsInput"}, + "output":{"shape":"ListEndpointConfigsOutput"} + }, + "ListEndpoints":{ + "name":"ListEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListEndpointsInput"}, + "output":{"shape":"ListEndpointsOutput"} + }, + "ListModels":{ + "name":"ListModels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListModelsInput"}, + "output":{"shape":"ListModelsOutput"} + }, + "ListNotebookInstances":{ + "name":"ListNotebookInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListNotebookInstancesInput"}, + "output":{"shape":"ListNotebookInstancesOutput"} + }, + "ListTags":{ + "name":"ListTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsInput"}, + "output":{"shape":"ListTagsOutput"} + }, + "ListTrainingJobs":{ + "name":"ListTrainingJobs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTrainingJobsRequest"}, + "output":{"shape":"ListTrainingJobsResponse"} + }, + "StartNotebookInstance":{ + "name":"StartNotebookInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartNotebookInstanceInput"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ] + }, + "StopNotebookInstance":{ + "name":"StopNotebookInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopNotebookInstanceInput"} + }, + "StopTrainingJob":{ + "name":"StopTrainingJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopTrainingJobRequest"}, + "errors":[ + {"shape":"ResourceNotFound"} + ] + }, + "UpdateEndpoint":{ + "name":"UpdateEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEndpointInput"}, + "output":{"shape":"UpdateEndpointOutput"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ] + }, + "UpdateEndpointWeightsAndCapacities":{ + "name":"UpdateEndpointWeightsAndCapacities", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEndpointWeightsAndCapacitiesInput"}, + "output":{"shape":"UpdateEndpointWeightsAndCapacitiesOutput"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ] + }, + "UpdateNotebookInstance":{ + "name":"UpdateNotebookInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateNotebookInstanceInput"}, + "output":{"shape":"UpdateNotebookInstanceOutput"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ] + } + }, + "shapes":{ + "AddTagsInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{"shape":"ResourceArn"}, + "Tags":{"shape":"TagList"} + } + }, + "AddTagsOutput":{ + "type":"structure", + "members":{ + "Tags":{"shape":"TagList"} + } + }, + "AlgorithmImage":{ + "type":"string", + "max":255 + }, + "AlgorithmSpecification":{ + "type":"structure", + "required":[ + "TrainingImage", + "TrainingInputMode" + ], + "members":{ + "TrainingImage":{"shape":"AlgorithmImage"}, + "TrainingInputMode":{"shape":"TrainingInputMode"} + } + }, + "Channel":{ + "type":"structure", + "required":[ + "ChannelName", + "DataSource" + ], + "members":{ + "ChannelName":{"shape":"ChannelName"}, + "DataSource":{"shape":"DataSource"}, + "ContentType":{"shape":"ContentType"}, + "CompressionType":{"shape":"CompressionType"}, + "RecordWrapperType":{"shape":"RecordWrapper"} + } + }, + "ChannelName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[A-Za-z0-9\\.\\-_]+" + }, + "CompressionType":{ + "type":"string", + "enum":[ + "None", + "Gzip" + ] + }, + "ContainerDefinition":{ + "type":"structure", + "required":["Image"], + "members":{ + "ContainerHostname":{"shape":"ContainerHostname"}, + "Image":{"shape":"Image"}, + "ModelDataUrl":{"shape":"Url"}, + "Environment":{"shape":"EnvironmentMap"} + } + }, + "ContainerDefinitionList":{ + "type":"list", + "member":{"shape":"ContainerDefinition"}, + "max":5 + }, + "ContainerHostname":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "ContentType":{ + "type":"string", + "max":256 + }, + "CreateEndpointConfigInput":{ + "type":"structure", + "required":[ + "EndpointConfigName", + "ProductionVariants" + ], + "members":{ + "EndpointConfigName":{"shape":"EndpointConfigName"}, + "ProductionVariants":{"shape":"ProductionVariantList"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateEndpointConfigOutput":{ + "type":"structure", + "required":["EndpointConfigArn"], + "members":{ + "EndpointConfigArn":{"shape":"EndpointConfigArn"} + } + }, + "CreateEndpointInput":{ + "type":"structure", + "required":[ + "EndpointName", + "EndpointConfigName" + ], + "members":{ + "EndpointName":{"shape":"EndpointName"}, + "EndpointConfigName":{"shape":"EndpointConfigName"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateEndpointOutput":{ + "type":"structure", + "required":["EndpointArn"], + "members":{ + "EndpointArn":{"shape":"EndpointArn"} + } + }, + "CreateModelInput":{ + "type":"structure", + "required":[ + "ModelName", + "PrimaryContainer" + ], + "members":{ + "ModelName":{"shape":"ModelName"}, + "PrimaryContainer":{"shape":"ContainerDefinition"}, + "SupplementalContainers":{"shape":"ContainerDefinitionList"}, + "ExecutionRoleArn":{"shape":"RoleArn"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateModelOutput":{ + "type":"structure", + "required":["ModelArn"], + "members":{ + "ModelArn":{"shape":"ModelArn"} + } + }, + "CreateNotebookInstanceInput":{ + "type":"structure", + "required":[ + "NotebookInstanceName", + "InstanceType", + "RoleArn" + ], + "members":{ + "NotebookInstanceName":{"shape":"NotebookInstanceName"}, + "InstanceType":{"shape":"InstanceType"}, + "SubnetId":{"shape":"SubnetId"}, + "SecurityGroupIds":{"shape":"SecurityGroupIds"}, + "RoleArn":{"shape":"RoleArn"}, + "KmsKeyId":{"shape":"KmsKeyId"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateNotebookInstanceOutput":{ + "type":"structure", + "members":{ + "NotebookInstanceArn":{"shape":"NotebookInstanceArn"} + } + }, + "CreatePresignedNotebookInstanceUrlInput":{ + "type":"structure", + "required":["NotebookInstanceName"], + "members":{ + "NotebookInstanceName":{"shape":"NotebookInstanceName"}, + "SessionExpirationDurationInSeconds":{"shape":"SessionExpirationDurationInSeconds"} + } + }, + "CreatePresignedNotebookInstanceUrlOutput":{ + "type":"structure", + "members":{ + "AuthorizedUrl":{"shape":"NotebookInstanceUrl"} + } + }, + "CreateTrainingJobRequest":{ + "type":"structure", + "required":[ + "TrainingJobName", + "AlgorithmSpecification", + "RoleArn", + "InputDataConfig", + "OutputDataConfig", + "ResourceConfig", + "StoppingCondition" + ], + "members":{ + "TrainingJobName":{"shape":"TrainingJobName"}, + "HyperParameters":{"shape":"HyperParameters"}, + "AlgorithmSpecification":{"shape":"AlgorithmSpecification"}, + "RoleArn":{"shape":"RoleArn"}, + "InputDataConfig":{"shape":"InputDataConfig"}, + "OutputDataConfig":{"shape":"OutputDataConfig"}, + "ResourceConfig":{"shape":"ResourceConfig"}, + "StoppingCondition":{"shape":"StoppingCondition"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateTrainingJobResponse":{ + "type":"structure", + "required":["TrainingJobArn"], + "members":{ + "TrainingJobArn":{"shape":"TrainingJobArn"} + } + }, + "CreationTime":{"type":"timestamp"}, + "DataSource":{ + "type":"structure", + "required":["S3DataSource"], + "members":{ + "S3DataSource":{"shape":"S3DataSource"} + } + }, + "DeleteEndpointConfigInput":{ + "type":"structure", + "required":["EndpointConfigName"], + "members":{ + "EndpointConfigName":{"shape":"EndpointConfigName"} + } + }, + "DeleteEndpointInput":{ + "type":"structure", + "required":["EndpointName"], + "members":{ + "EndpointName":{"shape":"EndpointName"} + } + }, + "DeleteModelInput":{ + "type":"structure", + "required":["ModelName"], + "members":{ + "ModelName":{"shape":"ModelName"} + } + }, + "DeleteNotebookInstanceInput":{ + "type":"structure", + "required":["NotebookInstanceName"], + "members":{ + "NotebookInstanceName":{"shape":"NotebookInstanceName"} + } + }, + "DeleteTagsInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{"shape":"ResourceArn"}, + "TagKeys":{"shape":"TagKeyList"} + } + }, + "DeleteTagsOutput":{ + "type":"structure", + "members":{ + } + }, + "DescribeEndpointConfigInput":{ + "type":"structure", + "required":["EndpointConfigName"], + "members":{ + "EndpointConfigName":{"shape":"EndpointConfigName"} + } + }, + "DescribeEndpointConfigOutput":{ + "type":"structure", + "required":[ + "EndpointConfigName", + "EndpointConfigArn", + "ProductionVariants", + "CreationTime" + ], + "members":{ + "EndpointConfigName":{"shape":"EndpointConfigName"}, + "EndpointConfigArn":{"shape":"EndpointConfigArn"}, + "ProductionVariants":{"shape":"ProductionVariantList"}, + "CreationTime":{"shape":"Timestamp"} + } + }, + "DescribeEndpointInput":{ + "type":"structure", + "required":["EndpointName"], + "members":{ + "EndpointName":{"shape":"EndpointName"} + } + }, + "DescribeEndpointOutput":{ + "type":"structure", + "required":[ + "EndpointName", + "EndpointArn", + "EndpointConfigName", + "EndpointStatus", + "CreationTime", + "LastModifiedTime" + ], + "members":{ + "EndpointName":{"shape":"EndpointName"}, + "EndpointArn":{"shape":"EndpointArn"}, + "EndpointConfigName":{"shape":"EndpointConfigName"}, + "ProductionVariants":{"shape":"ProductionVariantSummaryList"}, + "EndpointStatus":{"shape":"EndpointStatus"}, + "FailureReason":{"shape":"FailureReason"}, + "CreationTime":{"shape":"Timestamp"}, + "LastModifiedTime":{"shape":"Timestamp"} + } + }, + "DescribeModelInput":{ + "type":"structure", + "required":["ModelName"], + "members":{ + "ModelName":{"shape":"ModelName"} + } + }, + "DescribeModelOutput":{ + "type":"structure", + "required":[ + "ModelName", + "PrimaryContainer", + "SupplementalContainers", + "ExecutionRoleArn", + "CreationTime", + "ModelArn" + ], + "members":{ + "ModelName":{"shape":"ModelName"}, + "PrimaryContainer":{"shape":"ContainerDefinition"}, + "SupplementalContainers":{"shape":"ContainerDefinitionList"}, + "ExecutionRoleArn":{"shape":"RoleArn"}, + "CreationTime":{"shape":"Timestamp"}, + "ModelArn":{"shape":"ModelArn"} + } + }, + "DescribeNotebookInstanceInput":{ + "type":"structure", + "required":["NotebookInstanceName"], + "members":{ + "NotebookInstanceName":{"shape":"NotebookInstanceName"} + } + }, + "DescribeNotebookInstanceOutput":{ + "type":"structure", + "members":{ + "NotebookInstanceArn":{"shape":"NotebookInstanceArn"}, + "NotebookInstanceName":{"shape":"NotebookInstanceName"}, + "NotebookInstanceStatus":{"shape":"NotebookInstanceStatus"}, + "FailureReason":{"shape":"FailureReason"}, + "Url":{"shape":"NotebookInstanceUrl"}, + "InstanceType":{"shape":"InstanceType"}, + "SubnetId":{"shape":"SubnetId"}, + "SecurityGroups":{"shape":"SecurityGroupIds"}, + "RoleArn":{"shape":"RoleArn"}, + "KmsKeyId":{"shape":"KmsKeyId"}, + "NetworkInterfaceId":{"shape":"NetworkInterfaceId"}, + "LastModifiedTime":{"shape":"LastModifiedTime"}, + "CreationTime":{"shape":"CreationTime"} + } + }, + "DescribeTrainingJobRequest":{ + "type":"structure", + "required":["TrainingJobName"], + "members":{ + "TrainingJobName":{"shape":"TrainingJobName"} + } + }, + "DescribeTrainingJobResponse":{ + "type":"structure", + "required":[ + "TrainingJobName", + "TrainingJobArn", + "ModelArtifacts", + "TrainingJobStatus", + "SecondaryStatus", + "AlgorithmSpecification", + "InputDataConfig", + "ResourceConfig", + "StoppingCondition", + "CreationTime" + ], + "members":{ + "TrainingJobName":{"shape":"TrainingJobName"}, + "TrainingJobArn":{"shape":"TrainingJobArn"}, + "ModelArtifacts":{"shape":"ModelArtifacts"}, + "TrainingJobStatus":{"shape":"TrainingJobStatus"}, + "SecondaryStatus":{"shape":"SecondaryStatus"}, + "FailureReason":{"shape":"FailureReason"}, + "HyperParameters":{"shape":"HyperParameters"}, + "AlgorithmSpecification":{"shape":"AlgorithmSpecification"}, + "RoleArn":{"shape":"RoleArn"}, + "InputDataConfig":{"shape":"InputDataConfig"}, + "OutputDataConfig":{"shape":"OutputDataConfig"}, + "ResourceConfig":{"shape":"ResourceConfig"}, + "StoppingCondition":{"shape":"StoppingCondition"}, + "CreationTime":{"shape":"Timestamp"}, + "TrainingStartTime":{"shape":"Timestamp"}, + "TrainingEndTime":{"shape":"Timestamp"}, + "LastModifiedTime":{"shape":"Timestamp"} + } + }, + "DesiredWeightAndCapacity":{ + "type":"structure", + "required":["VariantName"], + "members":{ + "VariantName":{"shape":"VariantName"}, + "DesiredWeight":{"shape":"VariantWeight"}, + "DesiredInstanceCount":{"shape":"TaskCount"} + } + }, + "DesiredWeightAndCapacityList":{ + "type":"list", + "member":{"shape":"DesiredWeightAndCapacity"}, + "min":1 + }, + "EndpointArn":{ + "type":"string", + "max":2048, + "min":20 + }, + "EndpointConfigArn":{ + "type":"string", + "max":2048, + "min":20 + }, + "EndpointConfigName":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "EndpointConfigNameContains":{ + "type":"string", + "pattern":"[a-zA-Z0-9-]+" + }, + "EndpointConfigSortKey":{ + "type":"string", + "enum":[ + "Name", + "CreationTime" + ] + }, + "EndpointConfigSummary":{ + "type":"structure", + "required":[ + "EndpointConfigName", + "EndpointConfigArn", + "CreationTime" + ], + "members":{ + "EndpointConfigName":{"shape":"EndpointConfigName"}, + "EndpointConfigArn":{"shape":"EndpointConfigArn"}, + "CreationTime":{"shape":"Timestamp"} + } + }, + "EndpointConfigSummaryList":{ + "type":"list", + "member":{"shape":"EndpointConfigSummary"} + }, + "EndpointName":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "EndpointNameContains":{ + "type":"string", + "pattern":"[a-zA-Z0-9-]+" + }, + "EndpointSortKey":{ + "type":"string", + "enum":[ + "Name", + "CreationTime", + "Status" + ] + }, + "EndpointStatus":{ + "type":"string", + "enum":[ + "OutOfService", + "Creating", + "Updating", + "RollingBack", + "InService", + "Deleting", + "Failed" + ] + }, + "EndpointSummary":{ + "type":"structure", + "required":[ + "EndpointName", + "EndpointArn", + "CreationTime", + "LastModifiedTime", + "EndpointStatus" + ], + "members":{ + "EndpointName":{"shape":"EndpointName"}, + "EndpointArn":{"shape":"EndpointArn"}, + "CreationTime":{"shape":"Timestamp"}, + "LastModifiedTime":{"shape":"Timestamp"}, + "EndpointStatus":{"shape":"EndpointStatus"} + } + }, + "EndpointSummaryList":{ + "type":"list", + "member":{"shape":"EndpointSummary"} + }, + "EnvironmentKey":{ + "type":"string", + "max":1024, + "pattern":"[a-zA-Z_][a-zA-Z0-9_]*" + }, + "EnvironmentMap":{ + "type":"map", + "key":{"shape":"EnvironmentKey"}, + "value":{"shape":"EnvironmentValue"}, + "max":16 + }, + "EnvironmentValue":{ + "type":"string", + "max":1024 + }, + "FailureReason":{ + "type":"string", + "max":1024 + }, + "HyperParameters":{ + "type":"map", + "key":{"shape":"ParameterKey"}, + "value":{"shape":"ParameterValue"}, + "max":100, + "min":0 + }, + "Image":{ + "type":"string", + "max":255, + "pattern":"[\\S]+" + }, + "InputDataConfig":{ + "type":"list", + "member":{"shape":"Channel"}, + "max":8, + "min":1 + }, + "InstanceType":{ + "type":"string", + "enum":[ + "ml.t2.medium", + "ml.m4.xlarge", + "ml.p2.xlarge" + ] + }, + "KmsKeyId":{ + "type":"string", + "max":2048 + }, + "LastModifiedTime":{"type":"timestamp"}, + "ListEndpointConfigsInput":{ + "type":"structure", + "members":{ + "SortBy":{"shape":"EndpointConfigSortKey"}, + "SortOrder":{"shape":"OrderKey"}, + "NextToken":{"shape":"PaginationToken"}, + "MaxResults":{"shape":"MaxResults"}, + "NameContains":{"shape":"EndpointConfigNameContains"}, + "CreationTimeBefore":{"shape":"Timestamp"}, + "CreationTimeAfter":{"shape":"Timestamp"} + } + }, + "ListEndpointConfigsOutput":{ + "type":"structure", + "required":["EndpointConfigs"], + "members":{ + "EndpointConfigs":{"shape":"EndpointConfigSummaryList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListEndpointsInput":{ + "type":"structure", + "members":{ + "SortBy":{"shape":"EndpointSortKey"}, + "SortOrder":{"shape":"OrderKey"}, + "NextToken":{"shape":"PaginationToken"}, + "MaxResults":{"shape":"MaxResults"}, + "NameContains":{"shape":"EndpointNameContains"}, + "CreationTimeBefore":{"shape":"Timestamp"}, + "CreationTimeAfter":{"shape":"Timestamp"}, + "LastModifiedTimeBefore":{"shape":"Timestamp"}, + "LastModifiedTimeAfter":{"shape":"Timestamp"}, + "StatusEquals":{"shape":"EndpointStatus"} + } + }, + "ListEndpointsOutput":{ + "type":"structure", + "required":["Endpoints"], + "members":{ + "Endpoints":{"shape":"EndpointSummaryList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListModelsInput":{ + "type":"structure", + "members":{ + "SortBy":{"shape":"ModelSortKey"}, + "SortOrder":{"shape":"OrderKey"}, + "NextToken":{"shape":"PaginationToken"}, + "MaxResults":{"shape":"MaxResults"}, + "NameContains":{"shape":"ModelNameContains"}, + "CreationTimeBefore":{"shape":"Timestamp"}, + "CreationTimeAfter":{"shape":"Timestamp"} + } + }, + "ListModelsOutput":{ + "type":"structure", + "required":["Models"], + "members":{ + "Models":{"shape":"ModelSummaryList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListNotebookInstancesInput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "SortBy":{"shape":"NotebookInstanceSortKey"}, + "SortOrder":{"shape":"NotebookInstanceSortOrder"}, + "NameContains":{"shape":"NotebookInstanceNameContains"}, + "CreationTimeBefore":{"shape":"CreationTime"}, + "CreationTimeAfter":{"shape":"CreationTime"}, + "LastModifiedTimeBefore":{"shape":"LastModifiedTime"}, + "LastModifiedTimeAfter":{"shape":"LastModifiedTime"}, + "StatusEquals":{"shape":"NotebookInstanceStatus"} + } + }, + "ListNotebookInstancesOutput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "NotebookInstances":{"shape":"NotebookInstanceSummaryList"} + } + }, + "ListTagsInput":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{"shape":"ResourceArn"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"ListTagsMaxResults"} + } + }, + "ListTagsMaxResults":{ + "type":"integer", + "min":50 + }, + "ListTagsOutput":{ + "type":"structure", + "members":{ + "Tags":{"shape":"TagList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListTrainingJobsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{ + "shape":"MaxResults", + "box":true + }, + "CreationTimeAfter":{"shape":"Timestamp"}, + "CreationTimeBefore":{"shape":"Timestamp"}, + "LastModifiedTimeAfter":{"shape":"Timestamp"}, + "LastModifiedTimeBefore":{"shape":"Timestamp"}, + "NameContains":{"shape":"NameContains"}, + "StatusEquals":{"shape":"TrainingJobStatus"}, + "SortBy":{"shape":"SortBy"}, + "SortOrder":{"shape":"SortOrder"} + } + }, + "ListTrainingJobsResponse":{ + "type":"structure", + "required":["TrainingJobSummaries"], + "members":{ + "TrainingJobSummaries":{"shape":"TrainingJobSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "MaxRuntimeInSeconds":{ + "type":"integer", + "min":1 + }, + "ModelArn":{ + "type":"string", + "max":2048, + "min":20 + }, + "ModelArtifacts":{ + "type":"structure", + "required":["S3ModelArtifacts"], + "members":{ + "S3ModelArtifacts":{"shape":"S3Uri"} + } + }, + "ModelName":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "ModelNameContains":{ + "type":"string", + "pattern":"[a-zA-Z0-9-]+" + }, + "ModelSortKey":{ + "type":"string", + "enum":[ + "Name", + "CreationTime" + ] + }, + "ModelSummary":{ + "type":"structure", + "required":[ + "ModelName", + "ModelArn", + "CreationTime" + ], + "members":{ + "ModelName":{"shape":"ModelName"}, + "ModelArn":{"shape":"ModelArn"}, + "CreationTime":{"shape":"Timestamp"} + } + }, + "ModelSummaryList":{ + "type":"list", + "member":{"shape":"ModelSummary"} + }, + "NameContains":{ + "type":"string", + "max":63, + "pattern":"[a-zA-Z0-9\\-]+" + }, + "NetworkInterfaceId":{"type":"string"}, + "NextToken":{ + "type":"string", + "max":8192 + }, + "NotebookInstanceArn":{ + "type":"string", + "max":256 + }, + "NotebookInstanceName":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "NotebookInstanceNameContains":{ + "type":"string", + "pattern":"[a-zA-Z0-9-]+" + }, + "NotebookInstanceSortKey":{ + "type":"string", + "enum":[ + "Name", + "CreationTime", + "Status" + ] + }, + "NotebookInstanceSortOrder":{ + "type":"string", + "enum":[ + "Ascending", + "Descending" + ] + }, + "NotebookInstanceStatus":{ + "type":"string", + "enum":[ + "Pending", + "InService", + "Stopping", + "Stopped", + "Failed", + "Deleting" + ] + }, + "NotebookInstanceSummary":{ + "type":"structure", + "required":[ + "NotebookInstanceName", + "NotebookInstanceArn" + ], + "members":{ + "NotebookInstanceName":{"shape":"NotebookInstanceName"}, + "NotebookInstanceArn":{"shape":"NotebookInstanceArn"}, + "NotebookInstanceStatus":{"shape":"NotebookInstanceStatus"}, + "Url":{"shape":"NotebookInstanceUrl"}, + "InstanceType":{"shape":"InstanceType"}, + "CreationTime":{"shape":"CreationTime"}, + "LastModifiedTime":{"shape":"LastModifiedTime"} + } + }, + "NotebookInstanceSummaryList":{ + "type":"list", + "member":{"shape":"NotebookInstanceSummary"} + }, + "NotebookInstanceUrl":{"type":"string"}, + "OrderKey":{ + "type":"string", + "enum":[ + "Ascending", + "Descending" + ] + }, + "OutputDataConfig":{ + "type":"structure", + "required":["S3OutputPath"], + "members":{ + "KmsKeyId":{"shape":"KmsKeyId"}, + "S3OutputPath":{"shape":"S3Uri"} + } + }, + "PaginationToken":{ + "type":"string", + "max":8192 + }, + "ParameterKey":{ + "type":"string", + "max":256 + }, + "ParameterValue":{ + "type":"string", + "max":256 + }, + "ProductionVariant":{ + "type":"structure", + "required":[ + "VariantName", + "ModelName", + "InitialInstanceCount", + "InstanceType" + ], + "members":{ + "VariantName":{"shape":"VariantName"}, + "ModelName":{"shape":"ModelName"}, + "InitialInstanceCount":{"shape":"TaskCount"}, + "InstanceType":{"shape":"ProductionVariantInstanceType"}, + "InitialVariantWeight":{"shape":"VariantWeight"} + } + }, + "ProductionVariantInstanceType":{ + "type":"string", + "enum":[ + "ml.c4.2xlarge", + "ml.c4.8xlarge", + "ml.c4.xlarge", + "ml.c5.2xlarge", + "ml.c5.9xlarge", + "ml.c5.xlarge", + "ml.m4.xlarge", + "ml.p2.xlarge", + "ml.p3.2xlarge", + "ml.t2.medium" + ] + }, + "ProductionVariantList":{ + "type":"list", + "member":{"shape":"ProductionVariant"}, + "min":1 + }, + "ProductionVariantSummary":{ + "type":"structure", + "required":["VariantName"], + "members":{ + "VariantName":{"shape":"VariantName"}, + "CurrentWeight":{"shape":"VariantWeight"}, + "DesiredWeight":{"shape":"VariantWeight"}, + "CurrentInstanceCount":{"shape":"TaskCount"}, + "DesiredInstanceCount":{"shape":"TaskCount"} + } + }, + "ProductionVariantSummaryList":{ + "type":"list", + "member":{"shape":"ProductionVariantSummary"}, + "min":1 + }, + "RecordWrapper":{ + "type":"string", + "enum":[ + "None", + "RecordIO" + ] + }, + "ResourceArn":{ + "type":"string", + "max":256 + }, + "ResourceConfig":{ + "type":"structure", + "required":[ + "InstanceType", + "InstanceCount", + "VolumeSizeInGB" + ], + "members":{ + "InstanceType":{"shape":"TrainingInstanceType"}, + "InstanceCount":{"shape":"TrainingInstanceCount"}, + "VolumeSizeInGB":{"shape":"VolumeSizeInGB"} + } + }, + "ResourceInUse":{ + "type":"structure", + "members":{ + "Message":{"shape":"FailureReason"} + }, + "exception":true + }, + "ResourceLimitExceeded":{ + "type":"structure", + "members":{ + "Message":{"shape":"FailureReason"} + }, + "exception":true + }, + "ResourceNotFound":{ + "type":"structure", + "members":{ + "Message":{"shape":"FailureReason"} + }, + "exception":true + }, + "RoleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$" + }, + "S3DataDistribution":{ + "type":"string", + "enum":[ + "FullyReplicated", + "ShardedByS3Key" + ] + }, + "S3DataSource":{ + "type":"structure", + "required":[ + "S3DataType", + "S3Uri" + ], + "members":{ + "S3DataType":{"shape":"S3DataType"}, + "S3Uri":{"shape":"S3Uri"}, + "S3DataDistributionType":{"shape":"S3DataDistribution"} + } + }, + "S3DataType":{ + "type":"string", + "enum":[ + "ManifestFile", + "S3Prefix" + ] + }, + "S3Uri":{ + "type":"string", + "max":1024, + "pattern":"^(https|s3)://([^/]+)/?(.*)$" + }, + "SecondaryStatus":{ + "type":"string", + "enum":[ + "Starting", + "Downloading", + "Training", + "Uploading", + "Stopping", + "Stopped", + "MaxRuntimeExceeded", + "Completed", + "Failed" + ] + }, + "SecurityGroupId":{ + "type":"string", + "max":32 + }, + "SecurityGroupIds":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "max":5 + }, + "SessionExpirationDurationInSeconds":{ + "type":"integer", + "max":43200, + "min":1800 + }, + "SortBy":{ + "type":"string", + "enum":[ + "Name", + "CreationTime", + "Status" + ] + }, + "SortOrder":{ + "type":"string", + "enum":[ + "Ascending", + "Descending" + ] + }, + "StartNotebookInstanceInput":{ + "type":"structure", + "required":["NotebookInstanceName"], + "members":{ + "NotebookInstanceName":{"shape":"NotebookInstanceName"} + } + }, + "StopNotebookInstanceInput":{ + "type":"structure", + "required":["NotebookInstanceName"], + "members":{ + "NotebookInstanceName":{"shape":"NotebookInstanceName"} + } + }, + "StopTrainingJobRequest":{ + "type":"structure", + "required":["TrainingJobName"], + "members":{ + "TrainingJobName":{"shape":"TrainingJobName"} + } + }, + "StoppingCondition":{ + "type":"structure", + "members":{ + "MaxRuntimeInSeconds":{"shape":"MaxRuntimeInSeconds"} + } + }, + "SubnetId":{ + "type":"string", + "max":32 + }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^((?!aws:)[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":0 + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TaskCount":{ + "type":"integer", + "min":1 + }, + "Timestamp":{"type":"timestamp"}, + "TrainingInputMode":{ + "type":"string", + "enum":[ + "Pipe", + "File" + ] + }, + "TrainingInstanceCount":{ + "type":"integer", + "min":1 + }, + "TrainingInstanceType":{ + "type":"string", + "enum":[ + "ml.m4.xlarge", + "ml.m4.4xlarge", + "ml.m4.10xlarge", + "ml.c4.xlarge", + "ml.c4.2xlarge", + "ml.c4.8xlarge", + "ml.p2.xlarge", + "ml.p2.8xlarge", + "ml.p2.16xlarge", + "ml.p3.2xlarge", + "ml.p3.8xlarge", + "ml.p3.16xlarge", + "ml.c5.xlarge", + "ml.c5.2xlarge", + "ml.c5.4xlarge", + "ml.c5.9xlarge", + "ml.c5.18xlarge" + ] + }, + "TrainingJobArn":{ + "type":"string", + "max":256, + "pattern":"arn:aws:sagemaker:[\\p{Alnum}\\-]*:[0-9]{12}:training-job/.*" + }, + "TrainingJobName":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "TrainingJobStatus":{ + "type":"string", + "enum":[ + "InProgress", + "Completed", + "Failed", + "Stopping", + "Stopped" + ] + }, + "TrainingJobSummaries":{ + "type":"list", + "member":{"shape":"TrainingJobSummary"} + }, + "TrainingJobSummary":{ + "type":"structure", + "required":[ + "TrainingJobName", + "TrainingJobArn", + "CreationTime", + "TrainingJobStatus" + ], + "members":{ + "TrainingJobName":{"shape":"TrainingJobName"}, + "TrainingJobArn":{"shape":"TrainingJobArn"}, + "CreationTime":{"shape":"Timestamp"}, + "TrainingEndTime":{"shape":"Timestamp"}, + "LastModifiedTime":{"shape":"Timestamp"}, + "TrainingJobStatus":{"shape":"TrainingJobStatus"} + } + }, + "UpdateEndpointInput":{ + "type":"structure", + "required":[ + "EndpointName", + "EndpointConfigName" + ], + "members":{ + "EndpointName":{"shape":"EndpointName"}, + "EndpointConfigName":{"shape":"EndpointConfigName"} + } + }, + "UpdateEndpointOutput":{ + "type":"structure", + "required":["EndpointArn"], + "members":{ + "EndpointArn":{"shape":"EndpointArn"} + } + }, + "UpdateEndpointWeightsAndCapacitiesInput":{ + "type":"structure", + "required":[ + "EndpointName", + "DesiredWeightsAndCapacities" + ], + "members":{ + "EndpointName":{"shape":"EndpointName"}, + "DesiredWeightsAndCapacities":{"shape":"DesiredWeightAndCapacityList"} + } + }, + "UpdateEndpointWeightsAndCapacitiesOutput":{ + "type":"structure", + "required":["EndpointArn"], + "members":{ + "EndpointArn":{"shape":"EndpointArn"} + } + }, + "UpdateNotebookInstanceInput":{ + "type":"structure", + "required":["NotebookInstanceName"], + "members":{ + "NotebookInstanceName":{"shape":"NotebookInstanceName"}, + "InstanceType":{"shape":"InstanceType"}, + "RoleArn":{"shape":"RoleArn"} + } + }, + "UpdateNotebookInstanceOutput":{ + "type":"structure", + "members":{ + } + }, + "Url":{ + "type":"string", + "max":1024, + "pattern":"^(https|s3)://([^/]+)/?(.*)$" + }, + "VariantName":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "VariantWeight":{ + "type":"float", + "min":0 + }, + "VolumeSizeInGB":{ + "type":"integer", + "min":1 + } + } +} diff --git a/models/apis/SageMaker/2017-07-24/docs-2.json b/models/apis/SageMaker/2017-07-24/docs-2.json new file mode 100644 index 00000000000..739ea29c922 --- /dev/null +++ b/models/apis/SageMaker/2017-07-24/docs-2.json @@ -0,0 +1,1071 @@ +{ + "version": "2.0", + "service": "Definition of the public APIs exposed by SageMaker", + "operations": { + "AddTags": "

Adds or overwrites one or more tags for the specified Amazon SageMaker resource. You can add tags to notebook instances, training jobs, models, endpoint configurations, and endpoints.

Each tag consists of a key and an optional value. Tag keys must be unique per resource. For more information about tags, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", + "CreateEndpoint": "

Creates an endpoint using the endpoint configuration specified in the request. Amazon SageMaker uses the endpoint to provision resources and deploy models. You create the endpoint configuration with the CreateEndpointConfig API.

Use this API only for hosting models using Amazon SageMaker hosting services.

The endpoint name must be unique within an AWS Region in your AWS account.

When it receives the request, Amazon SageMaker creates the endpoint, launches the resources (ML compute instances), and deploys the model(s) on them.

When Amazon SageMaker receives the request, it sets the endpoint status to Creating. After it creates the endpoint, it sets the status to InService. Amazon SageMaker can then process incoming requests for inferences. To check the status of an endpoint, use the DescribeEndpoint API.

For an example, see Exercise 1: Using the K-Means Algorithm Provided by Amazon SageMaker.

", + "CreateEndpointConfig": "

Creates an endpoint configuration that Amazon SageMaker hosting services uses to deploy models. In the configuration, you identify one or more models, created using the CreateModel API, to deploy and the resources that you want Amazon SageMaker to provision. Then you call the CreateEndpoint API.

Use this API only if you want to use Amazon SageMaker hosting services to deploy models into production.

In the request, you define one or more ProductionVariants, each of which identifies a model. Each ProductionVariant parameter also describes the resources that you want Amazon SageMaker to provision. This includes the number and type of ML compute instances to deploy.

If you are hosting multiple models, you also assign a VariantWeight to specify how much traffic you want to allocate to each model. For example, suppose that you want to host two models, A and B, and you assign traffic weight 2 for model A and 1 for model B. Amazon SageMaker distributes two-thirds of the traffic to Model A, and one-third to model B.

", + "CreateModel": "

Creates a model in Amazon SageMaker. In the request, you name the model and describe one or more containers. For each container, you specify the docker image containing inference code, artifacts (from prior training), and custom environment map that the inference code uses when you deploy the model into production.

Use this API to create a model only if you want to use Amazon SageMaker hosting services. To host your model, you create an endpoint configuration with the CreateEndpointConfig API, and then create an endpoint with the CreateEndpoint API.

Amazon SageMaker then deploys all of the containers that you defined for the model in the hosting environment.

In the CreateModel request, you must define at least one container with the PrimaryContainer parameter. You can optionally specify additional containers with the SupplementalContainers parameter.

In the request, you also provide an IAM role that Amazon SageMaker can assume to access model artifacts and docker image for deployment on ML compute hosting instances. In addition, you also use the IAM role to manage permissions the inference code needs. For example, if the inference code access any other AWS resources, you grant necessary permissions via this role.

", + "CreateNotebookInstance": "

Creates an Amazon SageMaker notebook instance. A notebook instance is an ML compute instance running on a Jupyter notebook.

In a CreateNotebookInstance request, you specify the type of ML compute instance that you want to run. Amazon SageMaker launches the instance, installs common libraries that you can use to explore datasets for model training, and attaches an ML storage volume to the notebook instance.

Amazon SageMaker also provides a set of example notebooks. Each notebook demonstrates how to use Amazon SageMaker with a specific an algorithm or with a machine learning framework.

After receiving the request, Amazon SageMaker does the following:

  1. Creates a network interface in the Amazon SageMaker VPC.

  2. (Option) If you specified SubnetId, creates a network interface in your own VPC, which is inferred from the subnet ID that you provide in the input. When creating this network interface, Amazon SageMaker attaches the security group that you specified in the request to the network interface that it creates in your VPC.

  3. Launches an EC2 instance of the type specified in the request in the Amazon SageMaker VPC. If you specified SubnetId of your VPC, Amazon SageMaker specifies both network interfaces when launching this instance. This enables inbound traffic from your own VPC to the notebook instance, assuming that the security groups allow it.

After creating the notebook instance, Amazon SageMaker returns its Amazon Resource Name (ARN).

After Amazon SageMaker creates the notebook instance, you can connect to the Jupyter server and work in Jupyter notebooks. For example, you can write code to explore a dataset that you can use for model training, train a model, host models by creating Amazon SageMaker endpoints, and validate hosted models.

For more information, see How It Works.

", + "CreatePresignedNotebookInstanceUrl": "

Returns a URL that you can use to connect to the Juypter server from a notebook instance. In the Amazon SageMaker console, when you choose Open next to a notebook instance, Amazon SageMaker opens a new tab showing the Jupyter server home page from the notebook instance. The console uses this API to get the URL and show the page.

", + "CreateTrainingJob": "

Starts a model training job. After training completes, Amazon SageMaker saves the resulting model artifacts to an Amazon S3 location that you specify.

If you choose to host your model using Amazon SageMaker hosting services, you can use the resulting model artifacts as part of the model. You can also use the artifacts in a deep learning service other than Amazon SageMaker, provided that you know how to use them for inferences.

In the request body, you provide the following:

For more information about Amazon SageMaker, see How It Works.

", + "DeleteEndpoint": "

Deletes an endpoint. Amazon SageMaker frees up all of the resources that were deployed when the endpoint was created.

", + "DeleteEndpointConfig": "

Deletes an endpoint configuration. The DeleteEndpoingConfig API deletes only the specified configuration. It does not delete endpoints created using the configuration.

", + "DeleteModel": "

Deletes a model. The DeleteModel API deletes only the model entry that was created in Amazon SageMaker when you called the CreateModel API. It does not delete model artifacts, inference code, or the IAM role that you specified when creating the model.

", + "DeleteNotebookInstance": "

Deletes an Amazon SageMaker notebook instance. Before you can delete a notebook instance, you must call the StopNotebookInstance API.

When you delete a notebook instance, you lose all of your data. Amazon SageMaker removes the ML compute instance, and deletes the ML storage volume and the network interface associated with the notebook instance.

", + "DeleteTags": "

Deletes the specified tags from an Amazon SageMaker resource.

To list a resource's tags, use the ListTags API.

", + "DescribeEndpoint": "

Returns the description of an endpoint.

", + "DescribeEndpointConfig": "

Returns the description of an endpoint configuration created using the CreateEndpointConfig API.

", + "DescribeModel": "

Describes a model that you created using the CreateModel API.

", + "DescribeNotebookInstance": "

Returns information about a notebook instance.

", + "DescribeTrainingJob": "

Returns information about a training job.

", + "ListEndpointConfigs": "

Lists endpoint configurations.

", + "ListEndpoints": "

Lists endpoints.

", + "ListModels": "

Lists models created with the CreateModel API.

", + "ListNotebookInstances": "

Returns a list of the Amazon SageMaker notebook instances in the requester's account in an AWS Region.

", + "ListTags": "

Returns the tags for the specified Amazon SageMaker resource.

", + "ListTrainingJobs": "

Lists training jobs.

", + "StartNotebookInstance": "

Launches an ML compute instance with the latest version of the libraries and attaches your ML storage volume. After configuring the notebook instance, Amazon SageMaker sets the notebook instance status to InService. A notebook instance's status must be InService (is this same as \"Running\" in the console?) before you can connect to your Jupyter notebook.

", + "StopNotebookInstance": "

Terminates the ML compute instance. Before terminating the instance, Amazon SageMaker disconnects the ML storage volume from it. Amazon SageMaker preserves the ML storage volume.

To access data on the ML storage volume for a notebook instance that has been terminated, call the StartNotebookInstance API. StartNotebookInstance launches another ML compute instance, configures it, and attaches the preserved ML storage volume so you can continue your work.

", + "StopTrainingJob": "

Stops a training job. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job termination for 120 seconds. Algorithms might use this 120-second window to save the model artifacts, so the results of the training is not lost.

Training algorithms provided by Amazon SageMaker save the intermediate results of a model training job. This intermediate data is a valid model artifact. You can use the model artifacts that are saved when Amazon SageMaker stops a training job to create a model.

When it receives a StopTrainingJob request, Amazon SageMaker changes the status of the job to Stopping. After Amazon SageMaker stops the job, it sets the status to Stopped.

", + "UpdateEndpoint": "

Deploys the new EndpointConfig specified in the request, switches to using newly created endpoint, and then deletes resources provisioned for the endpoint using the previous EndpointConfig (there is no availability loss).

When Amazon SageMaker receives the request, it sets the endpoint status to Updating. After updating the endpoint, it sets the status to InService. To check the status of an endpoint, use the DescribeEndpoint API.

", + "UpdateEndpointWeightsAndCapacities": "

Updates variant weight, capacity, or both of one or more variants associated with an endpoint. This operation updates weight, capacity, or both for the previously provisioned endpoint. When it receives the request, Amazon SageMaker sets the endpoint status to Updating. After updating the endpoint, it sets the status to InService. To check the status of an endpoint, use the DescribeEndpoint API.

", + "UpdateNotebookInstance": "

Updates a notebook instance. NotebookInstance updates include upgrading or downgrading the ML compute instance used for your notebook instance to accommodate changes in your workload requirements. You can also update the VPC security groups.

" + }, + "shapes": { + "AddTagsInput": { + "base": null, + "refs": { + } + }, + "AddTagsOutput": { + "base": null, + "refs": { + } + }, + "AlgorithmImage": { + "base": null, + "refs": { + "AlgorithmSpecification$TrainingImage": "

The registry path of the Docker image that contains the training algorithm. For information about using your own algorithms, see Docker Registry Paths for Algorithms Provided by Amazon SageMaker .

" + } + }, + "AlgorithmSpecification": { + "base": "

Specifies the training algorithm to use in a CreateTrainingJob request.

For more information about algorithms provided by Amazon SageMaker, see Algorithms. For information about using your own algorithms, see Bring Your Own Algorithms .

", + "refs": { + "CreateTrainingJobRequest$AlgorithmSpecification": "

The registry path of the Docker image that contains the training algorithm and algorithm-specific metadata, including the input mode. For more information about algorithms provided by Amazon SageMaker, see Algorithms. For information about providing your own algorithms, see Bring Your Own Algorithms .

", + "DescribeTrainingJobResponse$AlgorithmSpecification": "

Information about the algorithm used for training, and algorithm metadata.

" + } + }, + "Channel": { + "base": "

A channel is a named input source that training algorithms can consume.

", + "refs": { + "InputDataConfig$member": null + } + }, + "ChannelName": { + "base": null, + "refs": { + "Channel$ChannelName": "

The name of the channel.

" + } + }, + "CompressionType": { + "base": null, + "refs": { + "Channel$CompressionType": "

If training data is compressed, the compression type. The default value is None. CompressionType is used only in PIPE input mode. In FILE mode, leave this field unset or set it to None.

" + } + }, + "ContainerDefinition": { + "base": "

Describes the container, as part of model definition.

", + "refs": { + "ContainerDefinitionList$member": null, + "CreateModelInput$PrimaryContainer": "

The location of the primary docker image containing inference code, associated artifacts, and custom environment map that the inference code uses when the model is deployed into production.

", + "DescribeModelOutput$PrimaryContainer": "

The location of the primary inference code, associated artifacts, and custom environment map that the inference code uses when it is deployed in production.

" + } + }, + "ContainerDefinitionList": { + "base": null, + "refs": { + "CreateModelInput$SupplementalContainers": "

The additional optional containers to deploy.

", + "DescribeModelOutput$SupplementalContainers": "

The description of additional optional containers that you defined when creating the model.

" + } + }, + "ContainerHostname": { + "base": null, + "refs": { + "ContainerDefinition$ContainerHostname": "

The DNS host name for the container after Amazon SageMaker deploys it.

" + } + }, + "ContentType": { + "base": null, + "refs": { + "Channel$ContentType": "

The MIME type of the data.

" + } + }, + "CreateEndpointConfigInput": { + "base": null, + "refs": { + } + }, + "CreateEndpointConfigOutput": { + "base": null, + "refs": { + } + }, + "CreateEndpointInput": { + "base": null, + "refs": { + } + }, + "CreateEndpointOutput": { + "base": null, + "refs": { + } + }, + "CreateModelInput": { + "base": null, + "refs": { + } + }, + "CreateModelOutput": { + "base": null, + "refs": { + } + }, + "CreateNotebookInstanceInput": { + "base": null, + "refs": { + } + }, + "CreateNotebookInstanceOutput": { + "base": null, + "refs": { + } + }, + "CreatePresignedNotebookInstanceUrlInput": { + "base": null, + "refs": { + } + }, + "CreatePresignedNotebookInstanceUrlOutput": { + "base": null, + "refs": { + } + }, + "CreateTrainingJobRequest": { + "base": null, + "refs": { + } + }, + "CreateTrainingJobResponse": { + "base": null, + "refs": { + } + }, + "CreationTime": { + "base": null, + "refs": { + "DescribeNotebookInstanceOutput$CreationTime": "

A timestamp. Use this parameter to return the time when the notebook instance was created

", + "ListNotebookInstancesInput$CreationTimeBefore": "

A filter that returns only notebook instances that were created before the specified time (timestamp).

", + "ListNotebookInstancesInput$CreationTimeAfter": "

A filter that returns only notebook instances that were created after the specified time (timestamp).

", + "NotebookInstanceSummary$CreationTime": "

A timestamp that shows when the notebook instance was created.

" + } + }, + "DataSource": { + "base": "

Describes the location of the channel data.

", + "refs": { + "Channel$DataSource": "

The location of the channel data.

" + } + }, + "DeleteEndpointConfigInput": { + "base": null, + "refs": { + } + }, + "DeleteEndpointInput": { + "base": null, + "refs": { + } + }, + "DeleteModelInput": { + "base": null, + "refs": { + } + }, + "DeleteNotebookInstanceInput": { + "base": null, + "refs": { + } + }, + "DeleteTagsInput": { + "base": null, + "refs": { + } + }, + "DeleteTagsOutput": { + "base": null, + "refs": { + } + }, + "DescribeEndpointConfigInput": { + "base": null, + "refs": { + } + }, + "DescribeEndpointConfigOutput": { + "base": null, + "refs": { + } + }, + "DescribeEndpointInput": { + "base": null, + "refs": { + } + }, + "DescribeEndpointOutput": { + "base": null, + "refs": { + } + }, + "DescribeModelInput": { + "base": null, + "refs": { + } + }, + "DescribeModelOutput": { + "base": null, + "refs": { + } + }, + "DescribeNotebookInstanceInput": { + "base": null, + "refs": { + } + }, + "DescribeNotebookInstanceOutput": { + "base": null, + "refs": { + } + }, + "DescribeTrainingJobRequest": { + "base": null, + "refs": { + } + }, + "DescribeTrainingJobResponse": { + "base": null, + "refs": { + } + }, + "DesiredWeightAndCapacity": { + "base": "

Specifies weight and capacity values for a production variant.

", + "refs": { + "DesiredWeightAndCapacityList$member": null + } + }, + "DesiredWeightAndCapacityList": { + "base": null, + "refs": { + "UpdateEndpointWeightsAndCapacitiesInput$DesiredWeightsAndCapacities": "

An object that provides new capacity and weight values for a variant.

" + } + }, + "EndpointArn": { + "base": null, + "refs": { + "CreateEndpointOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", + "DescribeEndpointOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", + "EndpointSummary$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", + "UpdateEndpointOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", + "UpdateEndpointWeightsAndCapacitiesOutput$EndpointArn": "

The Amazon Resource Name (ARN) of the updated endpoint.

" + } + }, + "EndpointConfigArn": { + "base": null, + "refs": { + "CreateEndpointConfigOutput$EndpointConfigArn": "

The Amazon Resource Name (ARN) of the endpoint configuration.

", + "DescribeEndpointConfigOutput$EndpointConfigArn": "

The Amazon Resource Name (ARN) of the endpoint configuration.

", + "EndpointConfigSummary$EndpointConfigArn": "

The Amazon Resource Name (ARN) of the endpoint configuration.

" + } + }, + "EndpointConfigName": { + "base": null, + "refs": { + "CreateEndpointConfigInput$EndpointConfigName": "

The name of the endpoint configuration. You specify this name in a CreateEndpoint request.

", + "CreateEndpointInput$EndpointConfigName": "

The name of an endpoint configuration. For more information, see CreateEndpointConfig.

", + "DeleteEndpointConfigInput$EndpointConfigName": "

The name of the endpoint configuration that you want to delete.

", + "DescribeEndpointConfigInput$EndpointConfigName": "

The name of the endpoint configuration.

", + "DescribeEndpointConfigOutput$EndpointConfigName": "

Name of the Amazon SageMaker endpoint configuration.

", + "DescribeEndpointOutput$EndpointConfigName": "

The name of the endpoint configuration associated with this endpoint.

", + "EndpointConfigSummary$EndpointConfigName": "

The name of the endpoint configuration.

", + "UpdateEndpointInput$EndpointConfigName": "

The name of the new endpoint configuration.

" + } + }, + "EndpointConfigNameContains": { + "base": null, + "refs": { + "ListEndpointConfigsInput$NameContains": "

A string in the endpoint configuration name. This filter returns only endpoint configurations whose name contains the specified string.

" + } + }, + "EndpointConfigSortKey": { + "base": null, + "refs": { + "ListEndpointConfigsInput$SortBy": "

The field to sort results by. The default is CreationTime.

" + } + }, + "EndpointConfigSummary": { + "base": "

Provides summary information for an endpoint configuration.

", + "refs": { + "EndpointConfigSummaryList$member": null + } + }, + "EndpointConfigSummaryList": { + "base": null, + "refs": { + "ListEndpointConfigsOutput$EndpointConfigs": "

An array of endpoint configurations.

" + } + }, + "EndpointName": { + "base": null, + "refs": { + "CreateEndpointInput$EndpointName": "

The name of the endpoint. The name must be unique within an AWS Region in your AWS account.

", + "DeleteEndpointInput$EndpointName": "

The name of the endpoint that you want to delete.

", + "DescribeEndpointInput$EndpointName": "

The name of the endpoint.

", + "DescribeEndpointOutput$EndpointName": "

Name of the endpoint.

", + "EndpointSummary$EndpointName": "

The name of the endpoint.

", + "UpdateEndpointInput$EndpointName": "

The name of the endpoint whose configuration you want to update.

", + "UpdateEndpointWeightsAndCapacitiesInput$EndpointName": "

The name of an existing Amazon SageMaker endpoint.

" + } + }, + "EndpointNameContains": { + "base": null, + "refs": { + "ListEndpointsInput$NameContains": "

A string in endpoint names. This filter returns only endpoints whose name contains the specified string.

" + } + }, + "EndpointSortKey": { + "base": null, + "refs": { + "ListEndpointsInput$SortBy": "

Sorts the list of results. The default is CreationTime.

" + } + }, + "EndpointStatus": { + "base": null, + "refs": { + "DescribeEndpointOutput$EndpointStatus": "

The status of the endpoint.

", + "EndpointSummary$EndpointStatus": "

The status of the endpoint.

", + "ListEndpointsInput$StatusEquals": "

A filter that returns only endpoints with the specified status.

" + } + }, + "EndpointSummary": { + "base": "

Provides summary information for an endpoint.

", + "refs": { + "EndpointSummaryList$member": null + } + }, + "EndpointSummaryList": { + "base": null, + "refs": { + "ListEndpointsOutput$Endpoints": "

An array or endpoint objects.

" + } + }, + "EnvironmentKey": { + "base": null, + "refs": { + "EnvironmentMap$key": null + } + }, + "EnvironmentMap": { + "base": null, + "refs": { + "ContainerDefinition$Environment": "

The environment variables to set in the Docker container. Each key and value in the Environment string to string map can have length of up to 1024. We support up to 16 entries in the map.

" + } + }, + "EnvironmentValue": { + "base": null, + "refs": { + "EnvironmentMap$value": null + } + }, + "FailureReason": { + "base": null, + "refs": { + "DescribeEndpointOutput$FailureReason": "

If the status of the endpoint is Failed, the reason why it failed.

", + "DescribeNotebookInstanceOutput$FailureReason": "

If staus is failed, the reason it failed.

", + "DescribeTrainingJobResponse$FailureReason": "

If the training job failed, the reason it failed.

", + "ResourceInUse$Message": null, + "ResourceLimitExceeded$Message": null, + "ResourceNotFound$Message": null + } + }, + "HyperParameters": { + "base": null, + "refs": { + "CreateTrainingJobRequest$HyperParameters": "

Algorithm-specific parameters. You set hyperparameters before you start the learning process. Hyperparameters influence the quality of the model. For a list of hyperparameters for each training algorithm provided by Amazon SageMaker, see Algorithms.

You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and value is limited to 256 characters, as specified by the Length Constraint.

", + "DescribeTrainingJobResponse$HyperParameters": "

Algorithm-specific parameters.

" + } + }, + "Image": { + "base": null, + "refs": { + "ContainerDefinition$Image": "

The Amazon EC2 Container Registry (Amazon ECR) path where inference code is stored. If you are using your own custom algorithm instead of an algorithm provided by Amazon SageMaker, the inference code must meet Amazon SageMaker requirements. For more information, see Using Your Own Algorithms with Amazon SageMaker

" + } + }, + "InputDataConfig": { + "base": null, + "refs": { + "CreateTrainingJobRequest$InputDataConfig": "

An array of Channel objects. Each channel is a named input source. InputDataConfig describes the input data and its location.

Algorithms can accept input data from one or more channels. For example, an algorithm might have two channels of input data, training_data and validation_data. The configuration for each channel provides the S3 location where the input data is stored. It also provides information about the stored data: the MIME type, compression method, and whether the data is wrapped in RecordIO format.

Depending on the input mode that the algorithm supports, Amazon SageMaker either copies input data files from an S3 bucket to a local directory in the Docker container, or makes it available as input streams.

", + "DescribeTrainingJobResponse$InputDataConfig": "

An array of Channel objects that describes each data input channel.

" + } + }, + "InstanceType": { + "base": null, + "refs": { + "CreateNotebookInstanceInput$InstanceType": "

The type of ML compute instance to launch for the notebook instance.

", + "DescribeNotebookInstanceOutput$InstanceType": "

The type of ML compute instance running on the notebook instance.

", + "NotebookInstanceSummary$InstanceType": "

The type of ML compute instance that the notebook instance is running on.

", + "UpdateNotebookInstanceInput$InstanceType": "

The Amazon ML compute instance type.

" + } + }, + "KmsKeyId": { + "base": null, + "refs": { + "CreateNotebookInstanceInput$KmsKeyId": "

If you provide a AWS KMS key ID, Amazon SageMaker uses it to encrypt data at rest on the ML storage volume that is attached to your notebook instance.

", + "DescribeNotebookInstanceOutput$KmsKeyId": "

AWS KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance.

", + "OutputDataConfig$KmsKeyId": "

The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.

If the configuration of the output S3 bucket requires server-side encryption for objects, and you don't provide the KMS key ID, Amazon SageMaker uses the default service key. For more information, see KMS-Managed Encryption Keys in Amazon Simple Storage Service developer guide.

The KMS key policy must grant permission to the IAM role you specify in your CreateTrainingJob request. Using Key Policies in AWS KMS in the AWS Key Management Service Developer Guide.

" + } + }, + "LastModifiedTime": { + "base": null, + "refs": { + "DescribeNotebookInstanceOutput$LastModifiedTime": "

A timestamp. Use this parameter to retrieve the time when the notebook instance was last modified.

", + "ListNotebookInstancesInput$LastModifiedTimeBefore": "

A filter that returns only notebook instances that were modified before the specified time (timestamp).

", + "ListNotebookInstancesInput$LastModifiedTimeAfter": "

A filter that returns only notebook instances that were modified after the specified time (timestamp).

", + "NotebookInstanceSummary$LastModifiedTime": "

A timestamp that shows when the notebook instance was last modified.

" + } + }, + "ListEndpointConfigsInput": { + "base": null, + "refs": { + } + }, + "ListEndpointConfigsOutput": { + "base": null, + "refs": { + } + }, + "ListEndpointsInput": { + "base": null, + "refs": { + } + }, + "ListEndpointsOutput": { + "base": null, + "refs": { + } + }, + "ListModelsInput": { + "base": null, + "refs": { + } + }, + "ListModelsOutput": { + "base": null, + "refs": { + } + }, + "ListNotebookInstancesInput": { + "base": null, + "refs": { + } + }, + "ListNotebookInstancesOutput": { + "base": null, + "refs": { + } + }, + "ListTagsInput": { + "base": null, + "refs": { + } + }, + "ListTagsMaxResults": { + "base": null, + "refs": { + "ListTagsInput$MaxResults": "

Maximum number of tags to return.

" + } + }, + "ListTagsOutput": { + "base": null, + "refs": { + } + }, + "ListTrainingJobsRequest": { + "base": null, + "refs": { + } + }, + "ListTrainingJobsResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListEndpointConfigsInput$MaxResults": "

The maximum number of training jobs to return in the response.

", + "ListEndpointsInput$MaxResults": "

The maximum number of endpoints to return in the response.

", + "ListModelsInput$MaxResults": "

The maximum number of models to return in the response.

", + "ListNotebookInstancesInput$MaxResults": "

The maximum number of notebook instances to return.

", + "ListTrainingJobsRequest$MaxResults": "

The maximum number of training jobs to return in the response.

" + } + }, + "MaxRuntimeInSeconds": { + "base": null, + "refs": { + "StoppingCondition$MaxRuntimeInSeconds": "

The maximum length of time, in seconds, that the training job can run. If model training does not complete during this time, Amazon SageMaker ends the job. If value is not specified, default value is 1 day. Maximum value is 5 days.

" + } + }, + "ModelArn": { + "base": null, + "refs": { + "CreateModelOutput$ModelArn": "

The ARN of the model created in Amazon SageMaker.

", + "DescribeModelOutput$ModelArn": "

The Amazon Resource Name (ARN) of the model.

", + "ModelSummary$ModelArn": "

The Amazon Resource Name (ARN) of the model.

" + } + }, + "ModelArtifacts": { + "base": "

Provides information about the location that is configured for storing model artifacts.

", + "refs": { + "DescribeTrainingJobResponse$ModelArtifacts": "

Information about the Amazon S3 location that is configured for storing model artifacts.

" + } + }, + "ModelName": { + "base": null, + "refs": { + "CreateModelInput$ModelName": "

The name of the new model.

", + "DeleteModelInput$ModelName": "

The name of the model to delete.

", + "DescribeModelInput$ModelName": "

The name of the model.

", + "DescribeModelOutput$ModelName": "

Name of the Amazon SageMaker model.

", + "ModelSummary$ModelName": "

The name of the model that you want a summary for.

", + "ProductionVariant$ModelName": "

The name of the model that you want to host. This is the name that you specified when creating the model.

" + } + }, + "ModelNameContains": { + "base": null, + "refs": { + "ListModelsInput$NameContains": "

A string in the training job name. This filter returns only models in the training job whose name contains the specified string.

" + } + }, + "ModelSortKey": { + "base": null, + "refs": { + "ListModelsInput$SortBy": "

Sorts the list of results. The default is CreationTime.

" + } + }, + "ModelSummary": { + "base": "

Provides summary information about a model.

", + "refs": { + "ModelSummaryList$member": null + } + }, + "ModelSummaryList": { + "base": null, + "refs": { + "ListModelsOutput$Models": "

An array of ModelSummary objects, each of which lists a model.

" + } + }, + "NameContains": { + "base": null, + "refs": { + "ListTrainingJobsRequest$NameContains": "

A string in the training job name. This filter returns only models whose name contains the specified string.

" + } + }, + "NetworkInterfaceId": { + "base": null, + "refs": { + "DescribeNotebookInstanceOutput$NetworkInterfaceId": "

Network interface IDs that Amazon SageMaker created at the time of creating the instance.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListNotebookInstancesInput$NextToken": "

If the previous call to the ListNotebookInstances is truncated, the response includes a NextToken. You can use this token in your subsequent ListNotebookInstances request to fetch the next set of notebook instances.

You might specify a filter or a sort order in your request. When response is truncated, you must use the same values for the filer and sort order in the next request.

", + "ListNotebookInstancesOutput$NextToken": "

If the response to the previous ListNotebookInstances request was truncated, Amazon SageMaker returns this token. To retrieve the next set of notebook instances, use the token in the next request.

", + "ListTagsInput$NextToken": "

If the response to the previous ListTags request is truncated, Amazon SageMaker returns this token. To retrieve the next set of tags, use it in the subsequent request.

", + "ListTagsOutput$NextToken": "

If response is truncated, Amazon SageMaker includes a token in the response. You can use this token in your subsequent request to fetch next set of tokens.

", + "ListTrainingJobsRequest$NextToken": "

If the result of the previous ListTrainingJobs request was truncated, the response includes a NextToken. To retrieve the next set of training jobs, use the token in the next request.

", + "ListTrainingJobsResponse$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request.

" + } + }, + "NotebookInstanceArn": { + "base": null, + "refs": { + "CreateNotebookInstanceOutput$NotebookInstanceArn": "

The Amazon Resource Name (ARN) of the notebook instance.

", + "DescribeNotebookInstanceOutput$NotebookInstanceArn": "

The Amazon Resource Name (ARN) of the notebook instance.

", + "NotebookInstanceSummary$NotebookInstanceArn": "

The Amazon Resource Name (ARN) of the notebook instance.

" + } + }, + "NotebookInstanceName": { + "base": null, + "refs": { + "CreateNotebookInstanceInput$NotebookInstanceName": "

The name of the new notebook instance.

", + "CreatePresignedNotebookInstanceUrlInput$NotebookInstanceName": "

The name of the notebook instance.

", + "DeleteNotebookInstanceInput$NotebookInstanceName": "

The name of the Amazon SageMaker notebook instance to delete.

", + "DescribeNotebookInstanceInput$NotebookInstanceName": "

The name of the notebook instance that you want information about.

", + "DescribeNotebookInstanceOutput$NotebookInstanceName": "

Name of the Amazon SageMaker notebook instance.

", + "NotebookInstanceSummary$NotebookInstanceName": "

The name of the notebook instance that you want a summary for.

", + "StartNotebookInstanceInput$NotebookInstanceName": "

The name of the notebook instance to start.

", + "StopNotebookInstanceInput$NotebookInstanceName": "

The name of the notebook instance to terminate.

", + "UpdateNotebookInstanceInput$NotebookInstanceName": "

The name of the notebook instance to update.

" + } + }, + "NotebookInstanceNameContains": { + "base": null, + "refs": { + "ListNotebookInstancesInput$NameContains": "

A string in the notebook instances' name. This filter returns only notebook instances whose name contains the specified string.

" + } + }, + "NotebookInstanceSortKey": { + "base": null, + "refs": { + "ListNotebookInstancesInput$SortBy": "

The field to sort results by. The default is Name.

" + } + }, + "NotebookInstanceSortOrder": { + "base": null, + "refs": { + "ListNotebookInstancesInput$SortOrder": "

The sort order for results.

" + } + }, + "NotebookInstanceStatus": { + "base": null, + "refs": { + "DescribeNotebookInstanceOutput$NotebookInstanceStatus": "

The status of the notebook instance.

", + "ListNotebookInstancesInput$StatusEquals": "

A filter that returns only notebook instances with the specified status.

", + "NotebookInstanceSummary$NotebookInstanceStatus": "

The status of the notebook instance.

" + } + }, + "NotebookInstanceSummary": { + "base": "

Provides summary information for an Amazon SageMaker notebook instance.

", + "refs": { + "NotebookInstanceSummaryList$member": null + } + }, + "NotebookInstanceSummaryList": { + "base": null, + "refs": { + "ListNotebookInstancesOutput$NotebookInstances": "

An array of NotebookInstanceSummary objects, one for each notebook instance.

" + } + }, + "NotebookInstanceUrl": { + "base": null, + "refs": { + "CreatePresignedNotebookInstanceUrlOutput$AuthorizedUrl": "

A JSON object that contains the URL string.

", + "DescribeNotebookInstanceOutput$Url": "

The URL that you use to connect to the Jupyter notebook that is running in your notebook instance.

", + "NotebookInstanceSummary$Url": "

The URL that you use to connect to the Jupyter instance running in your notebook instance.

" + } + }, + "OrderKey": { + "base": null, + "refs": { + "ListEndpointConfigsInput$SortOrder": "

The sort order for results. The default is Ascending.

", + "ListEndpointsInput$SortOrder": "

The sort order for results. The default is Ascending.

", + "ListModelsInput$SortOrder": "

The sort order for results. The default is Ascending.

" + } + }, + "OutputDataConfig": { + "base": "

Provides information about how to store model training results (model artifacts).

", + "refs": { + "CreateTrainingJobRequest$OutputDataConfig": "

Specifies the path to the S3 bucket where you want to store model artifacts. Amazon SageMaker creates subfolders for the artifacts.

", + "DescribeTrainingJobResponse$OutputDataConfig": "

The S3 path where model artifacts that you configured when creating the job are stored. Amazon SageMaker creates subfolders for model artifacts.

" + } + }, + "PaginationToken": { + "base": null, + "refs": { + "ListEndpointConfigsInput$NextToken": "

If the result of the previous ListEndpointConfig request was truncated, the response includes a NextToken. To retrieve the next set of endpoint configurations, use the token in the next request.

", + "ListEndpointConfigsOutput$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of endpoint configurations, use it in the subsequent request

", + "ListEndpointsInput$NextToken": "

If the result of a ListEndpoints request was truncated, the response includes a NextToken. To retrieve the next set of endpoints, use the token in the next request.

", + "ListEndpointsOutput$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request.

", + "ListModelsInput$NextToken": "

If the response to a previous ListModels request was truncated, the response includes a NextToken. To retrieve the next set of models, use the token in the next request.

", + "ListModelsOutput$NextToken": "

If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of models, use it in the subsequent request.

" + } + }, + "ParameterKey": { + "base": null, + "refs": { + "HyperParameters$key": null + } + }, + "ParameterValue": { + "base": null, + "refs": { + "HyperParameters$value": null + } + }, + "ProductionVariant": { + "base": "

Identifies a model that you want to host and the resources to deploy for hosting it. If you are deploying multiple models, tell Amazon SageMaker how to distribute traffic among the models by specifying variant weights.

", + "refs": { + "ProductionVariantList$member": null + } + }, + "ProductionVariantInstanceType": { + "base": null, + "refs": { + "ProductionVariant$InstanceType": "

The ML compute instance type.

" + } + }, + "ProductionVariantList": { + "base": null, + "refs": { + "CreateEndpointConfigInput$ProductionVariants": "

An array of ProductionVariant objects, one for each model that you want to host at this endpoint.

", + "DescribeEndpointConfigOutput$ProductionVariants": "

An array of ProductionVariant objects, one for each model that you want to host at this endpoint.

" + } + }, + "ProductionVariantSummary": { + "base": "

Describes weight and capacities for a production variant associated with an endpoint. If you sent a request to the UpdateWeightAndCapacities API and the endpoint status is Updating, you get different desired and current values.

", + "refs": { + "ProductionVariantSummaryList$member": null + } + }, + "ProductionVariantSummaryList": { + "base": null, + "refs": { + "DescribeEndpointOutput$ProductionVariants": "

An array of ProductionVariant objects, one for each model hosted behind this endpoint.

" + } + }, + "RecordWrapper": { + "base": null, + "refs": { + "Channel$RecordWrapperType": "

Specify RecordIO as the value when input data is in raw format but the training algorithm requires the RecordIO format, in which caseAmazon SageMaker wraps each individual S3 object in a RecordIO record. If the input data is already in RecordIO format, you don't need to set this attribute. For more information, see Create a Dataset Using RecordIO.

In FILE mode, leave this field unset or set it to None.

" + } + }, + "ResourceArn": { + "base": null, + "refs": { + "AddTagsInput$ResourceArn": "

The Amazon Resource Name (ARN) of the resource that you want to tag.

", + "DeleteTagsInput$ResourceArn": "

The Amazon Resource Name (ARN) of the resource whose tags you want to delete.

", + "ListTagsInput$ResourceArn": "

The Amazon Resource Name (ARN) of the resource whose tags you want to retrieve.

" + } + }, + "ResourceConfig": { + "base": "

Describes the resources, including ML compute instances and ML storage volumes, to use for model training.

", + "refs": { + "CreateTrainingJobRequest$ResourceConfig": "

The resources, including the ML compute instances and ML storage volumes, to use for model training.

ML storage volumes store model artifacts and incremental states. Training algorithms might also use ML storage volumes for scratch space. If you want Amazon SageMaker to use the ML storage volume to store the training data, choose File as the TrainingInputMode in the algorithm specification. For distributed training algorithms, specify an instance count greater than 1.

", + "DescribeTrainingJobResponse$ResourceConfig": "

Resources, including ML compute instances and ML storage volumes, that are configured for model training.

" + } + }, + "ResourceInUse": { + "base": "

Resource being accessed is in use.

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

You have exceeded an Amazon SageMaker resource limit. For example, you might have too many training jobs created.

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

Resource being access is not found.

", + "refs": { + } + }, + "RoleArn": { + "base": null, + "refs": { + "CreateModelInput$ExecutionRoleArn": "

The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume to access model artifacts and docker image for deployment on ML compute instances. Deploying on ML compute instances is part of model hosting. For more information, see Amazon SageMaker Roles.

", + "CreateNotebookInstanceInput$RoleArn": "

When you send any requests to AWS resources from the notebook instance, Amazon SageMaker assumes this role to perform tasks on your behalf. You must grant this role necessary permissions so Amazon SageMaker can perform these tasks. The policy must allow the Amazon SageMaker service principal (sagemaker.amazonaws.com) permissions to assume this role. For more information, see Amazon SageMaker Roles.

", + "CreateTrainingJobRequest$RoleArn": "

The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.

During model training, Amazon SageMaker needs your permission to read input data from an S3 bucket, download a Docker image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks to an IAM role. For more information, see Amazon SageMaker Roles.

", + "DescribeModelOutput$ExecutionRoleArn": "

The Amazon Resource Name (ARN) of the IAM role that you specified for the model.

", + "DescribeNotebookInstanceOutput$RoleArn": "

Amazon Resource Name (ARN) of the IAM role associated with the instance.

", + "DescribeTrainingJobResponse$RoleArn": "

The AWS Identity and Access Management (IAM) role configured for the training job.

", + "UpdateNotebookInstanceInput$RoleArn": "

Amazon Resource Name (ARN) of the IAM role to associate with the instance.

" + } + }, + "S3DataDistribution": { + "base": null, + "refs": { + "S3DataSource$S3DataDistributionType": "

If you want Amazon SageMaker to replicate the entire dataset on each ML compute instance that is launched for model training, specify FullyReplicated.

If you want Amazon SageMaker to replicate a subset of data on each ML compute instance that is launched for model training, specify ShardedByS3Key. If there are n ML compute instances launched for a training job, each instance gets approximately 1/n of the number of S3 objects. In this case, model training on each machine uses only the subset of training data.

Don't choose more ML compute instances for training than available S3 objects. If you do, some nodes won't get any data and you will pay for nodes that aren't getting any training data. This applies in both FILE and PIPE modes. Keep this in mind when developing algorithms.

In distributed training, where you use multiple ML compute EC2 instances, you might choose ShardedByS3Key. If the algorithm requires copying training data to the ML storage volume (when TrainingInputMode is set to File), this copies 1/n of the number of objects.

" + } + }, + "S3DataSource": { + "base": "

Describes the S3 data source.

", + "refs": { + "DataSource$S3DataSource": "

The S3 location of the data source that is associated with a channel.

" + } + }, + "S3DataType": { + "base": null, + "refs": { + "S3DataSource$S3DataType": "

If you choose S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker uses all objects with the specified key name prefix for model training.

If you choose ManifestFile, S3Uri identifies an object that is a manifest file containing a list of object keys that you want Amazon SageMaker to use for model training.

" + } + }, + "S3Uri": { + "base": null, + "refs": { + "ModelArtifacts$S3ModelArtifacts": "

The path of the S3 object that contains the model artifacts. For example, s3://bucket-name/keynameprefix/model.tar.gz.

", + "OutputDataConfig$S3OutputPath": "

Identifies the S3 path where you want Amazon SageMaker to store the model artifacts. For example, s3://bucket-name/key-name-prefix.

", + "S3DataSource$S3Uri": "

Depending on the value specified for the S3DataType, identifies either a key name prefix or a manifest. For example:

" + } + }, + "SecondaryStatus": { + "base": null, + "refs": { + "DescribeTrainingJobResponse$SecondaryStatus": "

Provides granular information about the system state. For more information, see TrainingJobStatus.

" + } + }, + "SecurityGroupId": { + "base": null, + "refs": { + "SecurityGroupIds$member": null + } + }, + "SecurityGroupIds": { + "base": null, + "refs": { + "CreateNotebookInstanceInput$SecurityGroupIds": "

The VPC security group IDs, in the form sg-xxxxxxxx. The security groups must be for the same VPC as specified in the subnet.

", + "DescribeNotebookInstanceOutput$SecurityGroups": "

The IDs of the VPC security groups.

" + } + }, + "SessionExpirationDurationInSeconds": { + "base": null, + "refs": { + "CreatePresignedNotebookInstanceUrlInput$SessionExpirationDurationInSeconds": "

The duration of the session, in seconds. The default is 12 hours.

" + } + }, + "SortBy": { + "base": null, + "refs": { + "ListTrainingJobsRequest$SortBy": "

The field to sort results by. The default is CreationTime.

" + } + }, + "SortOrder": { + "base": null, + "refs": { + "ListTrainingJobsRequest$SortOrder": "

The sort order for results. The default is Ascending.

" + } + }, + "StartNotebookInstanceInput": { + "base": null, + "refs": { + } + }, + "StopNotebookInstanceInput": { + "base": null, + "refs": { + } + }, + "StopTrainingJobRequest": { + "base": null, + "refs": { + } + }, + "StoppingCondition": { + "base": "

Specifies how long model training can run. When model training reaches the limit, Amazon SageMaker ends the training job. Use this API to cap model training cost.

To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job termination for120 seconds. Algorithms might use this 120-second window to save the model artifacts, so the results of training is not lost.

Training algorithms provided by Amazon SageMaker automatically saves the intermediate results of a model training job (it is best effort case, as model might not be ready to save as some stages, for example training just started). This intermediate data is a valid model artifact. You can use it to create a model (CreateModel).

", + "refs": { + "CreateTrainingJobRequest$StoppingCondition": "

Sets a duration for training. Use this parameter to cap model training costs. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job termination for 120 seconds. Algorithms might use this 120-second window to save the model artifacts.

When Amazon SageMaker terminates a job because the stopping condition has been met, training algorithms provided by Amazon SageMaker save the intermediate results of the job. This intermediate data is a valid model artifact. You can use it to create a model using the CreateModel API.

", + "DescribeTrainingJobResponse$StoppingCondition": "

The condition under which to stop the training job.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "CreateNotebookInstanceInput$SubnetId": "

The ID of the subnet in a VPC to which you would like to have a connectivity from your ML compute instance.

", + "DescribeNotebookInstanceOutput$SubnetId": "

The ID of the VPC subnet.

" + } + }, + "Tag": { + "base": "

Describes a tag.

", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The tag key.

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "DeleteTagsInput$TagKeys": "

An array or one or more tag keys to delete.

" + } + }, + "TagList": { + "base": null, + "refs": { + "AddTagsInput$Tags": "

An array of Tag objects. Each tag is a key-value pair. Only the key parameter is required. If you don't specify a value, Amazon SageMaker sets the value to an empty string.

", + "AddTagsOutput$Tags": "

A list of tags associated with the Amazon SageMaker resource.

", + "CreateEndpointConfigInput$Tags": "

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", + "CreateEndpointInput$Tags": "

An array of key-value pairs. For more information, see Using Cost Allocation Tagsin the AWS Billing and Cost Management User Guide.

", + "CreateModelInput$Tags": "

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", + "CreateNotebookInstanceInput$Tags": "

A list of tags to associate with the notebook instance. You can add tags later by using the CreateTags API.

", + "CreateTrainingJobRequest$Tags": "

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", + "ListTagsOutput$Tags": "

An array of Tag objects, each with a tag key and a value.

" + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The tag value.

" + } + }, + "TaskCount": { + "base": null, + "refs": { + "DesiredWeightAndCapacity$DesiredInstanceCount": "

The variant's capacity.

", + "ProductionVariant$InitialInstanceCount": "

Number of instances to launch initially.

", + "ProductionVariantSummary$CurrentInstanceCount": "

The number of instances associated with the variant.

", + "ProductionVariantSummary$DesiredInstanceCount": "

The number of instances requested in the UpdateWeightAndCapacities request.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "DescribeEndpointConfigOutput$CreationTime": "

A timestamp that shows when the endpoint configuration was created.

", + "DescribeEndpointOutput$CreationTime": "

A timestamp that shows when the endpoint was created.

", + "DescribeEndpointOutput$LastModifiedTime": "

A timestamp that shows when the endpoint was last modified.

", + "DescribeModelOutput$CreationTime": "

A timestamp that shows when the model was created.

", + "DescribeTrainingJobResponse$CreationTime": "

A timestamp that indicates when the training job was created.

", + "DescribeTrainingJobResponse$TrainingStartTime": "

A timestamp that indicates when training started.

", + "DescribeTrainingJobResponse$TrainingEndTime": "

A timestamp that indicates when model training ended.

", + "DescribeTrainingJobResponse$LastModifiedTime": "

A timestamp that indicates when the status of the training job was last modified.

", + "EndpointConfigSummary$CreationTime": "

A timestamp that shows when the endpoint configuration was created.

", + "EndpointSummary$CreationTime": "

A timestamp that shows when the endpoint was created.

", + "EndpointSummary$LastModifiedTime": "

A timestamp that shows when the endpoint was last modified.

", + "ListEndpointConfigsInput$CreationTimeBefore": "

A filter that returns only endpoint configurations created before the specified time (timestamp).

", + "ListEndpointConfigsInput$CreationTimeAfter": "

A filter that returns only endpoint configurations created after the specified time (timestamp).

", + "ListEndpointsInput$CreationTimeBefore": "

A filter that returns only endpoints that were created before the specified time (timestamp).

", + "ListEndpointsInput$CreationTimeAfter": "

A filter that returns only endpoints that were created after the specified time (timestamp).

", + "ListEndpointsInput$LastModifiedTimeBefore": "

A filter that returns only endpoints that were modified before the specified timestamp.

", + "ListEndpointsInput$LastModifiedTimeAfter": "

A filter that returns only endpoints that were modified after the specified timestamp.

", + "ListModelsInput$CreationTimeBefore": "

A filter that returns only models created before the specified time (timestamp).

", + "ListModelsInput$CreationTimeAfter": "

A filter that returns only models created after the specified time (timestamp).

", + "ListTrainingJobsRequest$CreationTimeAfter": "

A filter that only training jobs created after the specified time (timestamp).

", + "ListTrainingJobsRequest$CreationTimeBefore": "

A filter that returns only training jobs created before the specified time (timestamp).

", + "ListTrainingJobsRequest$LastModifiedTimeAfter": "

A filter that returns only training jobs modified after the specified time (timestamp).

", + "ListTrainingJobsRequest$LastModifiedTimeBefore": "

A filter that returns only training jobs modified before the specified time (timestamp).

", + "ModelSummary$CreationTime": "

A timestamp that indicates when the model was created.

", + "TrainingJobSummary$CreationTime": "

A timestamp that shows when the training job was created.

", + "TrainingJobSummary$TrainingEndTime": "

A timestamp that shows when the training job ended. This field is set only if the training job has one of the terminal statuses (Completed, Failed, or Stopped).

", + "TrainingJobSummary$LastModifiedTime": "

Timestamp when the training job was last modified.

" + } + }, + "TrainingInputMode": { + "base": null, + "refs": { + "AlgorithmSpecification$TrainingInputMode": "

The input mode that the algorithm supports. For the input modes that Amazon SageMaker algorithms support, see Algorithms. If an algorithm supports the File input mode, Amazon SageMaker downloads the training data from S3 to the provisioned ML storage Volume, and mounts the directory to docker volume for training container. If an algorithm supports the Pipe input mode, Amazon SageMaker streams data directly from S3 to the container.

In File mode, make sure you provision ML storage volume with sufficient capacity to accomodate the data download from S3. In addition to the training data, the ML storage volume also stores the output model. The algorithm container use ML storage volume to also store intermediate information, if any.

For distributed algorithms using File mode, training data is distributed uniformly, and your training duration is predictable if the input data objects size is approximately same. Amazon SageMaker does not split the files any further for model training. If the object sizes are skewed, training won't be optimal as the data distribution is also skewed where one host in a training cluster is overloaded, thus becoming bottleneck in training.

" + } + }, + "TrainingInstanceCount": { + "base": null, + "refs": { + "ResourceConfig$InstanceCount": "

The number of ML compute instances to use. For distributed training, provide a value greater than 1.

" + } + }, + "TrainingInstanceType": { + "base": null, + "refs": { + "ResourceConfig$InstanceType": "

The ML compute instance type.

" + } + }, + "TrainingJobArn": { + "base": null, + "refs": { + "CreateTrainingJobResponse$TrainingJobArn": "

The Amazon Resource Name (ARN) of the training job.

", + "DescribeTrainingJobResponse$TrainingJobArn": "

The Amazon Resource Name (ARN) of the training job.

", + "TrainingJobSummary$TrainingJobArn": "

The Amazon Resource Name (ARN) of the training job.

" + } + }, + "TrainingJobName": { + "base": null, + "refs": { + "CreateTrainingJobRequest$TrainingJobName": "

The name of the training job. The name must be unique within an AWS Region in an AWS account. It appears in the Amazon SageMaker console.

", + "DescribeTrainingJobRequest$TrainingJobName": "

The name of the training job.

", + "DescribeTrainingJobResponse$TrainingJobName": "

Name of the model training job.

", + "StopTrainingJobRequest$TrainingJobName": "

The name of the training job to stop.

", + "TrainingJobSummary$TrainingJobName": "

The name of the training job that you want a summary for.

" + } + }, + "TrainingJobStatus": { + "base": null, + "refs": { + "DescribeTrainingJobResponse$TrainingJobStatus": "

The status of the training job.

For the InProgress status, Amazon SageMaker can return these secondary statuses:

For the Stopped training status, Amazon SageMaker can return these secondary statuses:

", + "ListTrainingJobsRequest$StatusEquals": "

A filter that retrieves only training jobs with a specific status.

", + "TrainingJobSummary$TrainingJobStatus": "

The status of the training job.

" + } + }, + "TrainingJobSummaries": { + "base": null, + "refs": { + "ListTrainingJobsResponse$TrainingJobSummaries": "

An array of TrainingJobSummary objects, each listing a training job.

" + } + }, + "TrainingJobSummary": { + "base": "

Provides summary information about a training job.

", + "refs": { + "TrainingJobSummaries$member": null + } + }, + "UpdateEndpointInput": { + "base": null, + "refs": { + } + }, + "UpdateEndpointOutput": { + "base": null, + "refs": { + } + }, + "UpdateEndpointWeightsAndCapacitiesInput": { + "base": null, + "refs": { + } + }, + "UpdateEndpointWeightsAndCapacitiesOutput": { + "base": null, + "refs": { + } + }, + "UpdateNotebookInstanceInput": { + "base": null, + "refs": { + } + }, + "UpdateNotebookInstanceOutput": { + "base": null, + "refs": { + } + }, + "Url": { + "base": null, + "refs": { + "ContainerDefinition$ModelDataUrl": "

The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).

" + } + }, + "VariantName": { + "base": null, + "refs": { + "DesiredWeightAndCapacity$VariantName": "

The name of the variant to update.

", + "ProductionVariant$VariantName": "

The name of the production variant.

", + "ProductionVariantSummary$VariantName": "

The name of the variant.

" + } + }, + "VariantWeight": { + "base": null, + "refs": { + "DesiredWeightAndCapacity$DesiredWeight": "

The variant's weight.

", + "ProductionVariant$InitialVariantWeight": "

Determines initial traffic distribution among all of the models that you specify in the endpoint configuration. The traffic to a production variant is determined by the ratio of the VariantWeight to the sum of all VariantWeight values across all ProductionVariants. If unspecified, it defaults to 1.0.

", + "ProductionVariantSummary$CurrentWeight": "

The weight associated with the variant.

", + "ProductionVariantSummary$DesiredWeight": "

The requested weight, as specified in the UpdateWeightAndCapacities request.

" + } + }, + "VolumeSizeInGB": { + "base": null, + "refs": { + "ResourceConfig$VolumeSizeInGB": "

The size of the ML storage volume that you want to provision.

ML storage volumes store model artifacts and incremental states. Training algorithms might also use the ML storage volume for scratch space. If you want to store the training data in the ML storage volume, choose File as the TrainingInputMode in the algorithm specification.

You must specify sufficient ML storage for your scenario.

Amazon SageMaker supports only the General Purpose SSD (gp2) ML storage volume type.

" + } + } + } +} diff --git a/models/apis/SageMaker/2017-07-24/examples-1.json b/models/apis/SageMaker/2017-07-24/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/SageMaker/2017-07-24/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/SageMaker/2017-07-24/paginators-1.json b/models/apis/SageMaker/2017-07-24/paginators-1.json new file mode 100644 index 00000000000..e18e6b303bc --- /dev/null +++ b/models/apis/SageMaker/2017-07-24/paginators-1.json @@ -0,0 +1,34 @@ +{ + "pagination": { + "ListEndpointConfigs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListEndpoints": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListModels": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListNotebookInstances": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListTags": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListTrainingJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/SageMaker/2017-07-24/waiters-2.json b/models/apis/SageMaker/2017-07-24/waiters-2.json new file mode 100644 index 00000000000..2b74581357f --- /dev/null +++ b/models/apis/SageMaker/2017-07-24/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": {} +} + diff --git a/models/apis/acm/2015-12-08/api-2.json b/models/apis/acm/2015-12-08/api-2.json index 56f498cc27d..87055431b54 100644 --- a/models/apis/acm/2015-12-08/api-2.json +++ b/models/apis/acm/2015-12-08/api-2.json @@ -158,7 +158,7 @@ "type":"string", "max":2048, "min":20, - "pattern":"arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=/,.@-]+)*" + "pattern":"arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*" }, "CertificateBody":{ "type":"string", @@ -205,7 +205,9 @@ "InUseBy":{"shape":"InUseList"}, "FailureReason":{"shape":"FailureReason"}, "Type":{"shape":"CertificateType"}, - "RenewalSummary":{"shape":"RenewalSummary"} + "RenewalSummary":{"shape":"RenewalSummary"}, + "KeyUsages":{"shape":"KeyUsageList"}, + "ExtendedKeyUsages":{"shape":"ExtendedKeyUsageList"} } }, "CertificateStatus":{ @@ -289,7 +291,9 @@ "DomainName":{"shape":"DomainNameString"}, "ValidationEmails":{"shape":"ValidationEmailList"}, "ValidationDomain":{"shape":"DomainNameString"}, - "ValidationStatus":{"shape":"DomainStatus"} + "ValidationStatus":{"shape":"DomainStatus"}, + "ResourceRecord":{"shape":"ResourceRecord"}, + "ValidationMethod":{"shape":"ValidationMethod"} } }, "DomainValidationList":{ @@ -315,6 +319,38 @@ "max":100, "min":1 }, + "ExtendedKeyUsage":{ + "type":"structure", + "members":{ + "Name":{"shape":"ExtendedKeyUsageName"}, + "OID":{"shape":"String"} + } + }, + "ExtendedKeyUsageFilterList":{ + "type":"list", + "member":{"shape":"ExtendedKeyUsageName"} + }, + "ExtendedKeyUsageList":{ + "type":"list", + "member":{"shape":"ExtendedKeyUsage"} + }, + "ExtendedKeyUsageName":{ + "type":"string", + "enum":[ + "TLS_WEB_SERVER_AUTHENTICATION", + "TLS_WEB_CLIENT_AUTHENTICATION", + "CODE_SIGNING", + "EMAIL_PROTECTION", + "TIME_STAMPING", + "OCSP_SIGNING", + "IPSEC_END_SYSTEM", + "IPSEC_TUNNEL", + "IPSEC_USER", + "ANY", + "NONE", + "CUSTOM" + ] + }, "FailureReason":{ "type":"string", "enum":[ @@ -322,9 +358,18 @@ "ADDITIONAL_VERIFICATION_REQUIRED", "DOMAIN_NOT_ALLOWED", "INVALID_PUBLIC_DOMAIN", + "CAA_ERROR", "OTHER" ] }, + "Filters":{ + "type":"structure", + "members":{ + "extendedKeyUsage":{"shape":"ExtendedKeyUsageFilterList"}, + "keyUsage":{"shape":"KeyUsageFilterList"}, + "keyTypes":{"shape":"KeyAlgorithmList"} + } + }, "GetCertificateRequest":{ "type":"structure", "required":["CertificateArn"], @@ -401,7 +446,44 @@ "enum":[ "RSA_2048", "RSA_1024", - "EC_prime256v1" + "RSA_4096", + "EC_prime256v1", + "EC_secp384r1", + "EC_secp521r1" + ] + }, + "KeyAlgorithmList":{ + "type":"list", + "member":{"shape":"KeyAlgorithm"} + }, + "KeyUsage":{ + "type":"structure", + "members":{ + "Name":{"shape":"KeyUsageName"} + } + }, + "KeyUsageFilterList":{ + "type":"list", + "member":{"shape":"KeyUsageName"} + }, + "KeyUsageList":{ + "type":"list", + "member":{"shape":"KeyUsage"} + }, + "KeyUsageName":{ + "type":"string", + "enum":[ + "DIGITAL_SIGNATURE", + "NON_REPUDIATION", + "KEY_ENCIPHERMENT", + "DATA_ENCIPHERMENT", + "KEY_AGREEMENT", + "CERTIFICATE_SIGNING", + "CRL_SIGNING", + "ENCIPHER_ONLY", + "DECIPHER_ONLY", + "ANY", + "CUSTOM" ] }, "LimitExceededException":{ @@ -415,6 +497,7 @@ "type":"structure", "members":{ "CertificateStatuses":{"shape":"CertificateStatuses"}, + "Includes":{"shape":"Filters"}, "NextToken":{"shape":"NextToken"}, "MaxItems":{"shape":"MaxItems"} } @@ -456,6 +539,10 @@ "min":1, "sensitive":true }, + "RecordType":{ + "type":"string", + "enum":["CNAME"] + }, "RemoveTagsFromCertificateRequest":{ "type":"structure", "required":[ @@ -492,6 +579,7 @@ "required":["DomainName"], "members":{ "DomainName":{"shape":"DomainNameString"}, + "ValidationMethod":{"shape":"ValidationMethod"}, "SubjectAlternativeNames":{"shape":"DomainList"}, "IdempotencyToken":{"shape":"IdempotencyToken"}, "DomainValidationOptions":{"shape":"DomainValidationOptionList"} @@ -537,6 +625,19 @@ }, "exception":true }, + "ResourceRecord":{ + "type":"structure", + "required":[ + "Name", + "Type", + "Value" + ], + "members":{ + "Name":{"shape":"String"}, + "Type":{"shape":"RecordType"}, + "Value":{"shape":"String"} + } + }, "RevocationReason":{ "type":"string", "enum":[ @@ -590,6 +691,13 @@ "ValidationEmailList":{ "type":"list", "member":{"shape":"String"} + }, + "ValidationMethod":{ + "type":"string", + "enum":[ + "EMAIL", + "DNS" + ] } } } diff --git a/models/apis/acm/2015-12-08/docs-2.json b/models/apis/acm/2015-12-08/docs-2.json index d70a5aab4bb..c87f62db07a 100644 --- a/models/apis/acm/2015-12-08/docs-2.json +++ b/models/apis/acm/2015-12-08/docs-2.json @@ -2,15 +2,15 @@ "version": "2.0", "service": "AWS Certificate Manager

Welcome to the AWS Certificate Manager (ACM) API documentation.

You can use ACM to manage SSL/TLS certificates for your AWS-based websites and applications. For general information about using ACM, see the AWS Certificate Manager User Guide .

", "operations": { - "AddTagsToCertificate": "

Adds one or more tags to an ACM Certificate. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the certificate on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair.

You can apply a tag to just one certificate if you want to identify a specific characteristic of that certificate, or you can apply the same tag to multiple certificates if you want to filter for a common relationship among those certificates. Similarly, you can apply the same tag to multiple resources if you want to specify a relationship among those resources. For example, you can add the same tag to an ACM Certificate and an Elastic Load Balancing load balancer to indicate that they are both used by the same website. For more information, see Tagging ACM Certificates.

To remove one or more tags, use the RemoveTagsFromCertificate action. To view all of the tags that have been applied to the certificate, use the ListTagsForCertificate action.

", - "DeleteCertificate": "

Deletes an ACM Certificate and its associated private key. If this action succeeds, the certificate no longer appears in the list of ACM Certificates that can be displayed by calling the ListCertificates action or be retrieved by calling the GetCertificate action. The certificate will not be available for use by other AWS services.

You cannot delete an ACM Certificate that is being used by another AWS service. To delete a certificate that is in use, the certificate association must first be removed.

", + "AddTagsToCertificate": "

Adds one or more tags to an ACM Certificate. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the certificate on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair.

You can apply a tag to just one certificate if you want to identify a specific characteristic of that certificate, or you can apply the same tag to multiple certificates if you want to filter for a common relationship among those certificates. Similarly, you can apply the same tag to multiple resources if you want to specify a relationship among those resources. For example, you can add the same tag to an ACM Certificate and an Elastic Load Balancing load balancer to indicate that they are both used by the same website. For more information, see Tagging ACM Certificates.

To remove one or more tags, use the RemoveTagsFromCertificate action. To view all of the tags that have been applied to the certificate, use the ListTagsForCertificate action.

", + "DeleteCertificate": "

Deletes a certificate and its associated private key. If this action succeeds, the certificate no longer appears in the list that can be displayed by calling the ListCertificates action or be retrieved by calling the GetCertificate action. The certificate will not be available for use by AWS services integrated with ACM.

You cannot delete an ACM Certificate that is being used by another AWS service. To delete a certificate that is in use, the certificate association must first be removed.

", "DescribeCertificate": "

Returns detailed metadata about the specified ACM Certificate.

", - "GetCertificate": "

Retrieves an ACM Certificate and certificate chain for the certificate specified by an ARN. The chain is an ordered list of certificates that contains the root certificate, intermediate certificates of subordinate CAs, and the ACM Certificate. The certificate and certificate chain are base64 encoded. If you want to decode the certificate chain to see the individual certificate fields, you can use OpenSSL.

Currently, ACM Certificates can be used only with Elastic Load Balancing and Amazon CloudFront.

", - "ImportCertificate": "

Imports an SSL/TLS certificate into AWS Certificate Manager (ACM) to use with ACM's integrated AWS services.

ACM does not provide managed renewal for certificates that you import.

For more information about importing certificates into ACM, including the differences between certificates that you import and those that ACM provides, see Importing Certificates in the AWS Certificate Manager User Guide.

To import a certificate, you must provide the certificate and the matching private key. When the certificate is not self-signed, you must also provide a certificate chain. You can omit the certificate chain when importing a self-signed certificate.

The certificate, private key, and certificate chain must be PEM-encoded. For more information about converting these items to PEM format, see Importing Certificates Troubleshooting in the AWS Certificate Manager User Guide.

To import a new certificate, omit the CertificateArn field. Include this field only when you want to replace a previously imported certificate.

This operation returns the Amazon Resource Name (ARN) of the imported certificate.

", - "ListCertificates": "

Retrieves a list of ACM Certificates and the domain name for each. You can optionally filter the list to return only the certificates that match the specified status.

", - "ListTagsForCertificate": "

Lists the tags that have been applied to the ACM Certificate. Use the certificate's Amazon Resource Name (ARN) to specify the certificate. To add a tag to an ACM Certificate, use the AddTagsToCertificate action. To delete a tag, use the RemoveTagsFromCertificate action.

", - "RemoveTagsFromCertificate": "

Remove one or more tags from an ACM Certificate. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this function, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value.

To add tags to a certificate, use the AddTagsToCertificate action. To view all of the tags that have been applied to a specific ACM Certificate, use the ListTagsForCertificate action.

", - "RequestCertificate": "

Requests an ACM Certificate for use with other AWS services. To request an ACM Certificate, you must specify the fully qualified domain name (FQDN) for your site. You can also specify additional FQDNs if users can reach your site by using other names. For each domain name you specify, email is sent to the domain owner to request approval to issue the certificate. After receiving approval from the domain owner, the ACM Certificate is issued. For more information, see the AWS Certificate Manager User Guide.

", + "GetCertificate": "

Retrieves a certificate specified by an ARN and its certificate chain . The chain is an ordered list of certificates that contains the end entity ertificate, intermediate certificates of subordinate CAs, and the root certificate in that order. The certificate and certificate chain are base64 encoded. If you want to decode the certificate to see the individual fields, you can use OpenSSL.

", + "ImportCertificate": "

Imports a certificate into AWS Certificate Manager (ACM) to use with services that are integrated with ACM. For more information, see Integrated Services.

ACM does not provide managed renewal for certificates that you import.

For more information about importing certificates into ACM, including the differences between certificates that you import and those that ACM provides, see Importing Certificates in the AWS Certificate Manager User Guide.

In general, you can import almost any valid certificate. However, services integrated with ACM allow only certificate types they support to be associated with their resources. The following guidelines are also important:

This operation returns the Amazon Resource Name (ARN) of the imported certificate.

", + "ListCertificates": "

Retrieves a list of certificate ARNs and domain names. You can request that only certificates that match a specific status be listed. You can also filter by specific attributes of the certificate.

", + "ListTagsForCertificate": "

Lists the tags that have been applied to the ACM Certificate. Use the certificate's Amazon Resource Name (ARN) to specify the certificate. To add a tag to an ACM Certificate, use the AddTagsToCertificate action. To delete a tag, use the RemoveTagsFromCertificate action.

", + "RemoveTagsFromCertificate": "

Remove one or more tags from an ACM Certificate. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this function, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value.

To add tags to a certificate, use the AddTagsToCertificate action. To view all of the tags that have been applied to a specific ACM Certificate, use the ListTagsForCertificate action.

", + "RequestCertificate": "

Requests an ACM Certificate for use with other AWS services. To request an ACM Certificate, you must specify the fully qualified domain name (FQDN) for your site in the DomainName parameter. You can also specify additional FQDNs in the SubjectAlternativeNames parameter if users can reach your site by using other names.

For each domain name you specify, email is sent to the domain owner to request approval to issue the certificate. Email is sent to three registered contact addresses in the WHOIS database and to five common system administration addresses formed from the DomainName you enter or the optional ValidationDomain parameter. For more information, see Validate Domain Ownership.

After receiving approval from the domain owner, the ACM Certificate is issued. For more information, see the AWS Certificate Manager User Guide.

", "ResendValidationEmail": "

Resends the email that requests domain ownership validation. The domain owner or an authorized representative must approve the ACM Certificate before it can be issued. The certificate can be approved by clicking a link in the mail to navigate to the Amazon certificate approval website and then clicking I Approve. However, the validation email can be blocked by spam filters. Therefore, if you do not receive the original mail, you can request that the mail be resent within 72 hours of requesting the ACM Certificate. If more than 72 hours have elapsed since your original request or since your last attempt to resend validation mail, you must request a new certificate. For more information about setting up your contact email addresses, see Configure Email for your Domain.

" }, "shapes": { @@ -22,18 +22,18 @@ "Arn": { "base": null, "refs": { - "AddTagsToCertificateRequest$CertificateArn": "

String that contains the ARN of the ACM Certificate to which the tag is to be applied. This must be of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "AddTagsToCertificateRequest$CertificateArn": "

String that contains the ARN of the ACM Certificate to which the tag is to be applied. This must be of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", "CertificateDetail$CertificateArn": "

The Amazon Resource Name (ARN) of the certificate. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

", - "CertificateSummary$CertificateArn": "

Amazon Resource Name (ARN) of the certificate. This is of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "CertificateSummary$CertificateArn": "

Amazon Resource Name (ARN) of the certificate. This is of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", "DeleteCertificateRequest$CertificateArn": "

String that contains the ARN of the ACM Certificate to be deleted. This must be of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", "DescribeCertificateRequest$CertificateArn": "

The Amazon Resource Name (ARN) of the ACM Certificate. The ARN must have the following form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", "GetCertificateRequest$CertificateArn": "

String that contains a certificate ARN in the following format:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", - "ImportCertificateRequest$CertificateArn": "

The Amazon Resource Name (ARN) of an imported certificate to replace. To import a new certificate, omit this field.

", + "ImportCertificateRequest$CertificateArn": "

The Amazon Resource Name (ARN) of an imported certificate to replace. To import a new certificate, omit this field.

", "ImportCertificateResponse$CertificateArn": "

The Amazon Resource Name (ARN) of the imported certificate.

", - "ListTagsForCertificateRequest$CertificateArn": "

String that contains the ARN of the ACM Certificate for which you want to list the tags. This has the following form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", - "RemoveTagsFromCertificateRequest$CertificateArn": "

String that contains the ARN of the ACM Certificate with one or more tags that you want to remove. This must be of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "ListTagsForCertificateRequest$CertificateArn": "

String that contains the ARN of the ACM Certificate for which you want to list the tags. This must have the following form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "RemoveTagsFromCertificateRequest$CertificateArn": "

String that contains the ARN of the ACM Certificate with one or more tags that you want to remove. This must be of the form:

arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", "RequestCertificateResponse$CertificateArn": "

String that contains the ARN of the issued certificate. This must be of the form:

arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012

", - "ResendValidationEmailRequest$CertificateArn": "

String that contains the ARN of the requested certificate. The certificate ARN is generated and returned by the RequestCertificate action as soon as the request is made. By default, using this parameter causes email to be sent to all top-level domains you specified in the certificate request.

The ARN must be of the form:

arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012

" + "ResendValidationEmailRequest$CertificateArn": "

String that contains the ARN of the requested certificate. The certificate ARN is generated and returned by the RequestCertificate action as soon as the request is made. By default, using this parameter causes email to be sent to all top-level domains you specified in the certificate request. The ARN must be of the form:

arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012

" } }, "CertificateBody": { @@ -45,7 +45,7 @@ "CertificateBodyBlob": { "base": null, "refs": { - "ImportCertificateRequest$Certificate": "

The certificate to import. It must meet the following requirements:

" + "ImportCertificateRequest$Certificate": "

The certificate to import.

" } }, "CertificateChain": { @@ -57,11 +57,11 @@ "CertificateChainBlob": { "base": null, "refs": { - "ImportCertificateRequest$CertificateChain": "

The certificate chain. It must be PEM-encoded.

" + "ImportCertificateRequest$CertificateChain": "

The PEM encoded certificate chain.

" } }, "CertificateDetail": { - "base": "

Contains metadata about an ACM certificate. This structure is returned in the response to a DescribeCertificate request.

", + "base": "

Contains metadata about an ACM certificate. This structure is returned in the response to a DescribeCertificate request.

", "refs": { "DescribeCertificateResponse$Certificate": "

Metadata about an ACM certificate.

" } @@ -76,11 +76,11 @@ "CertificateStatuses": { "base": null, "refs": { - "ListCertificatesRequest$CertificateStatuses": "

The status or statuses on which to filter the list of ACM Certificates.

" + "ListCertificatesRequest$CertificateStatuses": "

Filter the certificate list by status value.

" } }, "CertificateSummary": { - "base": "

This structure is returned in the response object of ListCertificates action.

", + "base": "

This structure is returned in the response object of ListCertificates action.

", "refs": { "CertificateSummaryList$member": null } @@ -94,7 +94,7 @@ "CertificateType": { "base": null, "refs": { - "CertificateDetail$Type": "

The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the AWS Certificate Manager User Guide.

" + "CertificateDetail$Type": "

The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the AWS Certificate Manager User Guide.

" } }, "DeleteCertificateRequest": { @@ -115,8 +115,8 @@ "DomainList": { "base": null, "refs": { - "CertificateDetail$SubjectAlternativeNames": "

One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website.

", - "RequestCertificateRequest$SubjectAlternativeNames": "

Additional FQDNs to be included in the Subject Alternative Name extension of the ACM Certificate. For example, add the name www.example.net to a certificate for which the DomainName field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM Certificate is 100. However, the initial limit is 10 domain names. If you need more than 10 names, you must request a limit increase. For more information, see Limits.

" + "CertificateDetail$SubjectAlternativeNames": "

One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website.

", + "RequestCertificateRequest$SubjectAlternativeNames": "

Additional FQDNs to be included in the Subject Alternative Name extension of the ACM Certificate. For example, add the name www.example.net to a certificate for which the DomainName field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM Certificate is 100. However, the initial limit is 10 domain names. If you need more than 10 names, you must request a limit increase. For more information, see Limits.

The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:

" } }, "DomainNameString": { @@ -125,11 +125,11 @@ "CertificateDetail$DomainName": "

The fully qualified domain name for the certificate, such as www.example.com or example.com.

", "CertificateSummary$DomainName": "

Fully qualified domain name (FQDN), such as www.example.com or example.com, for the certificate.

", "DomainList$member": null, - "DomainValidation$DomainName": "

A fully qualified domain name (FQDN) in the certificate. For example, www.example.com or example.com.

", + "DomainValidation$DomainName": "

A fully qualified domain name (FQDN) in the certificate. For example, www.example.com or example.com.

", "DomainValidation$ValidationDomain": "

The domain name that ACM used to send domain validation emails.

", "DomainValidationOption$DomainName": "

A fully qualified domain name (FQDN) in the certificate request.

", "DomainValidationOption$ValidationDomain": "

The domain name that you want ACM to use to send you validation emails. This domain name is the suffix of the email addresses that you want ACM to use. This must be the same as the DomainName value or a superdomain of the DomainName value. For example, if you request a certificate for testing.example.com, you can specify example.com for this value. In that case, ACM sends domain validation emails to the following five addresses:

", - "RequestCertificateRequest$DomainName": "

Fully qualified domain name (FQDN), such as www.example.com, of the site that you want to secure with an ACM Certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.

The maximum length of a DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:

(63 octets).(63 octets).(63 octets).(61 octets) is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

(64 octets).(63 octets).(63 octets).(61 octets) is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets.

(63 octets).(63 octets).(63 octets).(62 octets) is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets.

", + "RequestCertificateRequest$DomainName": "

Fully qualified domain name (FQDN), such as www.example.com, of the site that you want to secure with an ACM Certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.

The first domain name you enter cannot exceed 63 octets, including periods. Each subsequent Subject Alternative Name (SAN), however, can be up to 253 octets in length.

", "ResendValidationEmailRequest$Domain": "

The fully qualified domain name (FQDN) of the certificate that needs to be validated.

", "ResendValidationEmailRequest$ValidationDomain": "

The base validation domain that will act as the suffix of the email addresses that are used to send the emails. This must be the same as the Domain value or a superdomain of the Domain value. For example, if you requested a certificate for site.subdomain.example.com and specify a ValidationDomain of subdomain.example.com, ACM sends email to the domain registrant, technical contact, and administrative contact in WHOIS and the following five addresses:

" } @@ -137,7 +137,7 @@ "DomainStatus": { "base": null, "refs": { - "DomainValidation$ValidationStatus": "

The validation status of the domain name.

" + "DomainValidation$ValidationStatus": "

The validation status of the domain name. This can be one of the following values:

" } }, "DomainValidation": { @@ -149,12 +149,12 @@ "DomainValidationList": { "base": null, "refs": { - "CertificateDetail$DomainValidationOptions": "

Contains information about the initial validation of each domain name that occurs as a result of the RequestCertificate request. This field exists only when the certificate type is AMAZON_ISSUED.

", + "CertificateDetail$DomainValidationOptions": "

Contains information about the initial validation of each domain name that occurs as a result of the RequestCertificate request. This field exists only when the certificate type is AMAZON_ISSUED.

", "RenewalSummary$DomainValidationOptions": "

Contains information about the validation of each domain name in the certificate, as it pertains to ACM's managed renewal. This is different from the initial validation that occurs as a result of the RequestCertificate request. This field exists only when the certificate type is AMAZON_ISSUED.

" } }, "DomainValidationOption": { - "base": "

Contains information about the domain names that you want ACM to use to send you emails to validate your ownership of the domain.

", + "base": "

Contains information about the domain names that you want ACM to use to send you emails that enable you to validate domain ownership.

", "refs": { "DomainValidationOptionList$member": null } @@ -162,13 +162,44 @@ "DomainValidationOptionList": { "base": null, "refs": { - "RequestCertificateRequest$DomainValidationOptions": "

The domain name that you want ACM to use to send you emails to validate your ownership of the domain.

" + "RequestCertificateRequest$DomainValidationOptions": "

The domain name that you want ACM to use to send you emails so taht your can validate domain ownership.

" + } + }, + "ExtendedKeyUsage": { + "base": "

The Extended Key Usage X.509 v3 extension defines one or more purposes for which the public key can be used. This is in addition to or in place of the basic purposes specified by the Key Usage extension.

", + "refs": { + "ExtendedKeyUsageList$member": null + } + }, + "ExtendedKeyUsageFilterList": { + "base": null, + "refs": { + "Filters$extendedKeyUsage": "

Specify one or more ExtendedKeyUsage extension values.

" + } + }, + "ExtendedKeyUsageList": { + "base": null, + "refs": { + "CertificateDetail$ExtendedKeyUsages": "

Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies a purpose for which the certificate public key can be used and consists of a name and an object identifier (OID).

" + } + }, + "ExtendedKeyUsageName": { + "base": null, + "refs": { + "ExtendedKeyUsage$Name": "

The name of an Extended Key Usage value.

", + "ExtendedKeyUsageFilterList$member": null } }, "FailureReason": { "base": null, "refs": { - "CertificateDetail$FailureReason": "

The reason the certificate request failed. This value exists only when the certificate status is FAILED. For more information, see Certificate Request Failed in the AWS Certificate Manager User Guide.

" + "CertificateDetail$FailureReason": "

The reason the certificate request failed. This value exists only when the certificate status is FAILED. For more information, see Certificate Request Failed in the AWS Certificate Manager User Guide.

" + } + }, + "Filters": { + "base": "

This structure can be used in the ListCertificates action to filter the output of the certificate list.

", + "refs": { + "ListCertificatesRequest$Includes": "

Filter the certificate list by one or more of the following values. For more information, see the Filters structure.

" } }, "GetCertificateRequest": { @@ -200,7 +231,7 @@ "InUseList": { "base": null, "refs": { - "CertificateDetail$InUseBy": "

A list of ARNs for the AWS resources that are using the certificate. A certificate can be used by multiple AWS resources.

" + "CertificateDetail$InUseBy": "

A list of ARNs for the AWS resources that are using the certificate. A certificate can be used by multiple AWS resources.

" } }, "InvalidArnException": { @@ -226,7 +257,39 @@ "KeyAlgorithm": { "base": null, "refs": { - "CertificateDetail$KeyAlgorithm": "

The algorithm that was used to generate the key pair (the public and private key).

" + "CertificateDetail$KeyAlgorithm": "

The algorithm that was used to generate the public-private key pair.

", + "KeyAlgorithmList$member": null + } + }, + "KeyAlgorithmList": { + "base": null, + "refs": { + "Filters$keyTypes": "

Specify one or more algorithms that can be used to generate key pairs.

" + } + }, + "KeyUsage": { + "base": "

The Key Usage X.509 v3 extension defines the purpose of the public key contained in the certificate.

", + "refs": { + "KeyUsageList$member": null + } + }, + "KeyUsageFilterList": { + "base": null, + "refs": { + "Filters$keyUsage": "

Specify one or more KeyUsage extension values.

" + } + }, + "KeyUsageList": { + "base": null, + "refs": { + "CertificateDetail$KeyUsages": "

A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose of the public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.

" + } + }, + "KeyUsageName": { + "base": null, + "refs": { + "KeyUsage$Name": "

A string value that contains a Key Usage extension name.

", + "KeyUsageFilterList$member": null } }, "LimitExceededException": { @@ -270,7 +333,13 @@ "PrivateKeyBlob": { "base": null, "refs": { - "ImportCertificateRequest$PrivateKey": "

The private key that matches the public key in the certificate. It must meet the following requirements:

" + "ImportCertificateRequest$PrivateKey": "

The private key that matches the public key in the certificate.

" + } + }, + "RecordType": { + "base": null, + "refs": { + "ResourceRecord$Type": "

The type of DNS record. Currently this can be CNAME.

" } }, "RemoveTagsFromCertificateRequest": { @@ -320,10 +389,16 @@ "refs": { } }, + "ResourceRecord": { + "base": "

Contains a DNS record value that you can use to can use to validate ownership or control of a domain. This is used by the DescribeCertificate action.

", + "refs": { + "DomainValidation$ResourceRecord": "

Contains the CNAME record that you add to your DNS database for domain validation. For more information, see Use DNS to Validate Domain Ownership.

" + } + }, "RevocationReason": { "base": null, "refs": { - "CertificateDetail$RevocationReason": "

The reason the certificate was revoked. This value exists only when the certificate status is REVOKED.

" + "CertificateDetail$RevocationReason": "

The reason the certificate was revoked. This value exists only when the certificate status is REVOKED.

" } }, "String": { @@ -333,6 +408,7 @@ "CertificateDetail$Subject": "

The name of the entity that is associated with the public key contained in the certificate.

", "CertificateDetail$Issuer": "

The name of the certificate authority that issued and signed the certificate.

", "CertificateDetail$SignatureAlgorithm": "

The algorithm that was used to sign the certificate.

", + "ExtendedKeyUsage$OID": "

An object identifier (OID) for the extension value. OIDs are strings of numbers separated by periods. The following OIDs are defined in RFC 3280 and RFC 5280.

", "InUseList$member": null, "InvalidArnException$message": null, "InvalidDomainValidationOptionsException$message": null, @@ -342,6 +418,8 @@ "RequestInProgressException$message": null, "ResourceInUseException$message": null, "ResourceNotFoundException$message": null, + "ResourceRecord$Name": "

The name of the DNS record to create in your domain. This is supplied by ACM.

", + "ResourceRecord$Value": "

The value of the CNAME record to add to your DNS database. This is supplied by ACM.

", "TooManyTagsException$message": null, "ValidationEmailList$member": null } @@ -349,10 +427,10 @@ "TStamp": { "base": null, "refs": { - "CertificateDetail$CreatedAt": "

The time at which the certificate was requested. This value exists only when the certificate type is AMAZON_ISSUED.

", - "CertificateDetail$IssuedAt": "

The time at which the certificate was issued. This value exists only when the certificate type is AMAZON_ISSUED.

", - "CertificateDetail$ImportedAt": "

The date and time at which the certificate was imported. This value exists only when the certificate type is IMPORTED.

", - "CertificateDetail$RevokedAt": "

The time at which the certificate was revoked. This value exists only when the certificate status is REVOKED.

", + "CertificateDetail$CreatedAt": "

The time at which the certificate was requested. This value exists only when the certificate type is AMAZON_ISSUED.

", + "CertificateDetail$IssuedAt": "

The time at which the certificate was issued. This value exists only when the certificate type is AMAZON_ISSUED.

", + "CertificateDetail$ImportedAt": "

The date and time at which the certificate was imported. This value exists only when the certificate type is IMPORTED.

", + "CertificateDetail$RevokedAt": "

The time at which the certificate was revoked. This value exists only when the certificate status is REVOKED.

", "CertificateDetail$NotBefore": "

The time before which the certificate is not valid.

", "CertificateDetail$NotAfter": "

The time after which the certificate is not valid.

" } @@ -393,6 +471,13 @@ "refs": { "DomainValidation$ValidationEmails": "

A list of email addresses that ACM used to send domain validation emails.

" } + }, + "ValidationMethod": { + "base": null, + "refs": { + "DomainValidation$ValidationMethod": "

Specifies the domain validation method.

", + "RequestCertificateRequest$ValidationMethod": "

The method you want to use to validate your domain.

" + } } } } diff --git a/models/apis/alexaforbusiness/2017-11-09/api-2.json b/models/apis/alexaforbusiness/2017-11-09/api-2.json new file mode 100644 index 00000000000..5bb830a5517 --- /dev/null +++ b/models/apis/alexaforbusiness/2017-11-09/api-2.json @@ -0,0 +1,1447 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-11-09", + "endpointPrefix":"a4b", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"Alexa For Business", + "signatureVersion":"v4", + "targetPrefix":"AlexaForBusiness", + "uid":"alexaforbusiness-2017-11-09" + }, + "operations":{ + "AssociateDeviceWithRoom":{ + "name":"AssociateDeviceWithRoom", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateDeviceWithRoomRequest"}, + "output":{"shape":"AssociateDeviceWithRoomResponse"}, + "errors":[ + {"shape":"LimitExceededException"} + ] + }, + "AssociateSkillGroupWithRoom":{ + "name":"AssociateSkillGroupWithRoom", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateSkillGroupWithRoomRequest"}, + "output":{"shape":"AssociateSkillGroupWithRoomResponse"} + }, + "CreateProfile":{ + "name":"CreateProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateProfileRequest"}, + "output":{"shape":"CreateProfileResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"AlreadyExistsException"} + ] + }, + "CreateRoom":{ + "name":"CreateRoom", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRoomRequest"}, + "output":{"shape":"CreateRoomResponse"}, + "errors":[ + {"shape":"AlreadyExistsException"}, + {"shape":"LimitExceededException"} + ] + }, + "CreateSkillGroup":{ + "name":"CreateSkillGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSkillGroupRequest"}, + "output":{"shape":"CreateSkillGroupResponse"}, + "errors":[ + {"shape":"AlreadyExistsException"}, + {"shape":"LimitExceededException"} + ] + }, + "CreateUser":{ + "name":"CreateUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserRequest"}, + "output":{"shape":"CreateUserResponse"}, + "errors":[ + {"shape":"ResourceInUseException"}, + {"shape":"LimitExceededException"} + ] + }, + "DeleteProfile":{ + "name":"DeleteProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteProfileRequest"}, + "output":{"shape":"DeleteProfileResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "DeleteRoom":{ + "name":"DeleteRoom", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRoomRequest"}, + "output":{"shape":"DeleteRoomResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "DeleteRoomSkillParameter":{ + "name":"DeleteRoomSkillParameter", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRoomSkillParameterRequest"}, + "output":{"shape":"DeleteRoomSkillParameterResponse"} + }, + "DeleteSkillGroup":{ + "name":"DeleteSkillGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSkillGroupRequest"}, + "output":{"shape":"DeleteSkillGroupResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "DeleteUser":{ + "name":"DeleteUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserRequest"}, + "output":{"shape":"DeleteUserResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "DisassociateDeviceFromRoom":{ + "name":"DisassociateDeviceFromRoom", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateDeviceFromRoomRequest"}, + "output":{"shape":"DisassociateDeviceFromRoomResponse"} + }, + "DisassociateSkillGroupFromRoom":{ + "name":"DisassociateSkillGroupFromRoom", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateSkillGroupFromRoomRequest"}, + "output":{"shape":"DisassociateSkillGroupFromRoomResponse"} + }, + "GetDevice":{ + "name":"GetDevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDeviceRequest"}, + "output":{"shape":"GetDeviceResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "GetProfile":{ + "name":"GetProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetProfileRequest"}, + "output":{"shape":"GetProfileResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "GetRoom":{ + "name":"GetRoom", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRoomRequest"}, + "output":{"shape":"GetRoomResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "GetRoomSkillParameter":{ + "name":"GetRoomSkillParameter", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRoomSkillParameterRequest"}, + "output":{"shape":"GetRoomSkillParameterResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "GetSkillGroup":{ + "name":"GetSkillGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSkillGroupRequest"}, + "output":{"shape":"GetSkillGroupResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "ListSkills":{ + "name":"ListSkills", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSkillsRequest"}, + "output":{"shape":"ListSkillsResponse"} + }, + "ListTags":{ + "name":"ListTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsRequest"}, + "output":{"shape":"ListTagsResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "PutRoomSkillParameter":{ + "name":"PutRoomSkillParameter", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutRoomSkillParameterRequest"}, + "output":{"shape":"PutRoomSkillParameterResponse"} + }, + "ResolveRoom":{ + "name":"ResolveRoom", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResolveRoomRequest"}, + "output":{"shape":"ResolveRoomResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "RevokeInvitation":{ + "name":"RevokeInvitation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RevokeInvitationRequest"}, + "output":{"shape":"RevokeInvitationResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "SearchDevices":{ + "name":"SearchDevices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SearchDevicesRequest"}, + "output":{"shape":"SearchDevicesResponse"} + }, + "SearchProfiles":{ + "name":"SearchProfiles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SearchProfilesRequest"}, + "output":{"shape":"SearchProfilesResponse"} + }, + "SearchRooms":{ + "name":"SearchRooms", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SearchRoomsRequest"}, + "output":{"shape":"SearchRoomsResponse"} + }, + "SearchSkillGroups":{ + "name":"SearchSkillGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SearchSkillGroupsRequest"}, + "output":{"shape":"SearchSkillGroupsResponse"} + }, + "SearchUsers":{ + "name":"SearchUsers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SearchUsersRequest"}, + "output":{"shape":"SearchUsersResponse"} + }, + "SendInvitation":{ + "name":"SendInvitation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendInvitationRequest"}, + "output":{"shape":"SendInvitationResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"InvalidUserStatusException"} + ] + }, + "StartDeviceSync":{ + "name":"StartDeviceSync", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartDeviceSyncRequest"}, + "output":{"shape":"StartDeviceSyncResponse"} + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "UpdateDevice":{ + "name":"UpdateDevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDeviceRequest"}, + "output":{"shape":"UpdateDeviceResponse"}, + "errors":[ + {"shape":"NotFoundException"} + ] + }, + "UpdateProfile":{ + "name":"UpdateProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateProfileRequest"}, + "output":{"shape":"UpdateProfileResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"NameInUseException"} + ] + }, + "UpdateRoom":{ + "name":"UpdateRoom", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRoomRequest"}, + "output":{"shape":"UpdateRoomResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"NameInUseException"} + ] + }, + "UpdateSkillGroup":{ + "name":"UpdateSkillGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSkillGroupRequest"}, + "output":{"shape":"UpdateSkillGroupResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"NameInUseException"} + ] + } + }, + "shapes":{ + "Address":{ + "type":"string", + "max":500, + "min":1 + }, + "AlreadyExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Arn":{ + "type":"string", + "pattern":"arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}" + }, + "AssociateDeviceWithRoomRequest":{ + "type":"structure", + "members":{ + "DeviceArn":{"shape":"Arn"}, + "RoomArn":{"shape":"Arn"} + } + }, + "AssociateDeviceWithRoomResponse":{ + "type":"structure", + "members":{ + } + }, + "AssociateSkillGroupWithRoomRequest":{ + "type":"structure", + "members":{ + "SkillGroupArn":{"shape":"Arn"}, + "RoomArn":{"shape":"Arn"} + } + }, + "AssociateSkillGroupWithRoomResponse":{ + "type":"structure", + "members":{ + } + }, + "Boolean":{"type":"boolean"}, + "ClientRequestToken":{ + "type":"string", + "max":150, + "min":10, + "pattern":"[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "CreateProfileRequest":{ + "type":"structure", + "required":[ + "ProfileName", + "Timezone", + "Address", + "DistanceUnit", + "TemperatureUnit", + "WakeWord" + ], + "members":{ + "ProfileName":{"shape":"ProfileName"}, + "Timezone":{"shape":"Timezone"}, + "Address":{"shape":"Address"}, + "DistanceUnit":{"shape":"DistanceUnit"}, + "TemperatureUnit":{"shape":"TemperatureUnit"}, + "WakeWord":{"shape":"WakeWord"}, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + }, + "SetupModeDisabled":{"shape":"Boolean"}, + "MaxVolumeLimit":{"shape":"MaxVolumeLimit"}, + "PSTNEnabled":{"shape":"Boolean"} + } + }, + "CreateProfileResponse":{ + "type":"structure", + "members":{ + "ProfileArn":{"shape":"Arn"} + } + }, + "CreateRoomRequest":{ + "type":"structure", + "required":["RoomName"], + "members":{ + "RoomName":{"shape":"RoomName"}, + "Description":{"shape":"RoomDescription"}, + "ProfileArn":{"shape":"Arn"}, + "ProviderCalendarId":{"shape":"ProviderCalendarId"}, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + }, + "Tags":{"shape":"TagList"} + } + }, + "CreateRoomResponse":{ + "type":"structure", + "members":{ + "RoomArn":{"shape":"Arn"} + } + }, + "CreateSkillGroupRequest":{ + "type":"structure", + "required":["SkillGroupName"], + "members":{ + "SkillGroupName":{"shape":"SkillGroupName"}, + "Description":{"shape":"SkillGroupDescription"}, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "CreateSkillGroupResponse":{ + "type":"structure", + "members":{ + "SkillGroupArn":{"shape":"Arn"} + } + }, + "CreateUserRequest":{ + "type":"structure", + "required":["UserId"], + "members":{ + "UserId":{"shape":"user_UserId"}, + "FirstName":{"shape":"user_FirstName"}, + "LastName":{"shape":"user_LastName"}, + "Email":{"shape":"Email"}, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + }, + "Tags":{"shape":"TagList"} + } + }, + "CreateUserResponse":{ + "type":"structure", + "members":{ + "UserArn":{"shape":"Arn"} + } + }, + "DeleteProfileRequest":{ + "type":"structure", + "members":{ + "ProfileArn":{"shape":"Arn"} + } + }, + "DeleteProfileResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteRoomRequest":{ + "type":"structure", + "members":{ + "RoomArn":{"shape":"Arn"} + } + }, + "DeleteRoomResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteRoomSkillParameterRequest":{ + "type":"structure", + "required":[ + "SkillId", + "ParameterKey" + ], + "members":{ + "RoomArn":{"shape":"Arn"}, + "SkillId":{"shape":"SkillId"}, + "ParameterKey":{"shape":"RoomSkillParameterKey"} + } + }, + "DeleteRoomSkillParameterResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteSkillGroupRequest":{ + "type":"structure", + "members":{ + "SkillGroupArn":{"shape":"Arn"} + } + }, + "DeleteSkillGroupResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteUserRequest":{ + "type":"structure", + "required":["EnrollmentId"], + "members":{ + "UserArn":{"shape":"Arn"}, + "EnrollmentId":{"shape":"EnrollmentId"} + } + }, + "DeleteUserResponse":{ + "type":"structure", + "members":{ + } + }, + "Device":{ + "type":"structure", + "members":{ + "DeviceArn":{"shape":"Arn"}, + "DeviceSerialNumber":{"shape":"DeviceSerialNumber"}, + "DeviceType":{"shape":"DeviceType"}, + "DeviceName":{"shape":"DeviceName"}, + "SoftwareVersion":{"shape":"SoftwareVersion"}, + "MacAddress":{"shape":"MacAddress"}, + "RoomArn":{"shape":"Arn"}, + "DeviceStatus":{"shape":"DeviceStatus"} + } + }, + "DeviceData":{ + "type":"structure", + "members":{ + "DeviceArn":{"shape":"Arn"}, + "DeviceSerialNumber":{"shape":"DeviceSerialNumber"}, + "DeviceType":{"shape":"DeviceType"}, + "DeviceName":{"shape":"DeviceName"}, + "SoftwareVersion":{"shape":"SoftwareVersion"}, + "MacAddress":{"shape":"MacAddress"}, + "DeviceStatus":{"shape":"DeviceStatus"}, + "RoomArn":{"shape":"Arn"}, + "RoomName":{"shape":"RoomName"} + } + }, + "DeviceDataList":{ + "type":"list", + "member":{"shape":"DeviceData"} + }, + "DeviceName":{ + "type":"string", + "max":100, + "min":2, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*" + }, + "DeviceSerialNumber":{ + "type":"string", + "pattern":"[a-zA-Z0-9]{1,200}" + }, + "DeviceStatus":{ + "type":"string", + "enum":[ + "READY", + "PENDING", + "WAS_OFFLINE" + ] + }, + "DeviceType":{ + "type":"string", + "pattern":"[a-zA-Z0-9]{1,200}" + }, + "DisassociateDeviceFromRoomRequest":{ + "type":"structure", + "members":{ + "DeviceArn":{"shape":"Arn"} + } + }, + "DisassociateDeviceFromRoomResponse":{ + "type":"structure", + "members":{ + } + }, + "DisassociateSkillGroupFromRoomRequest":{ + "type":"structure", + "members":{ + "SkillGroupArn":{"shape":"Arn"}, + "RoomArn":{"shape":"Arn"} + } + }, + "DisassociateSkillGroupFromRoomResponse":{ + "type":"structure", + "members":{ + } + }, + "DistanceUnit":{ + "type":"string", + "enum":[ + "METRIC", + "IMPERIAL" + ] + }, + "Email":{ + "type":"string", + "max":128, + "min":1, + "pattern":"([0-9a-zA-Z]([+-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})" + }, + "EnrollmentId":{ + "type":"string", + "max":128, + "min":0 + }, + "EnrollmentStatus":{ + "type":"string", + "enum":[ + "INITIALIZED", + "PENDING", + "REGISTERED", + "DEREGISTERING" + ] + }, + "ErrorMessage":{"type":"string"}, + "Feature":{ + "type":"string", + "enum":[ + "BLUETOOTH", + "VOLUME", + "NOTIFICATIONS", + "LISTS", + "SKILLS", + "ALL" + ] + }, + "Features":{ + "type":"list", + "member":{"shape":"Feature"} + }, + "Filter":{ + "type":"structure", + "required":[ + "Key", + "Values" + ], + "members":{ + "Key":{"shape":"FilterKey"}, + "Values":{"shape":"FilterValueList"} + } + }, + "FilterKey":{ + "type":"string", + "max":500, + "min":1 + }, + "FilterList":{ + "type":"list", + "member":{"shape":"Filter"}, + "max":25 + }, + "FilterValue":{ + "type":"string", + "max":500, + "min":1 + }, + "FilterValueList":{ + "type":"list", + "member":{"shape":"FilterValue"}, + "max":5 + }, + "GetDeviceRequest":{ + "type":"structure", + "members":{ + "DeviceArn":{"shape":"Arn"} + } + }, + "GetDeviceResponse":{ + "type":"structure", + "members":{ + "Device":{"shape":"Device"} + } + }, + "GetProfileRequest":{ + "type":"structure", + "members":{ + "ProfileArn":{"shape":"Arn"} + } + }, + "GetProfileResponse":{ + "type":"structure", + "members":{ + "Profile":{"shape":"Profile"} + } + }, + "GetRoomRequest":{ + "type":"structure", + "members":{ + "RoomArn":{"shape":"Arn"} + } + }, + "GetRoomResponse":{ + "type":"structure", + "members":{ + "Room":{"shape":"Room"} + } + }, + "GetRoomSkillParameterRequest":{ + "type":"structure", + "required":[ + "SkillId", + "ParameterKey" + ], + "members":{ + "RoomArn":{"shape":"Arn"}, + "SkillId":{"shape":"SkillId"}, + "ParameterKey":{"shape":"RoomSkillParameterKey"} + } + }, + "GetRoomSkillParameterResponse":{ + "type":"structure", + "members":{ + "RoomSkillParameter":{"shape":"RoomSkillParameter"} + } + }, + "GetSkillGroupRequest":{ + "type":"structure", + "members":{ + "SkillGroupArn":{"shape":"Arn"} + } + }, + "GetSkillGroupResponse":{ + "type":"structure", + "members":{ + "SkillGroup":{"shape":"SkillGroup"} + } + }, + "InvalidUserStatusException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ListSkillsRequest":{ + "type":"structure", + "members":{ + "SkillGroupArn":{"shape":"Arn"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"SkillListMaxResults"} + } + }, + "ListSkillsResponse":{ + "type":"structure", + "members":{ + "SkillSummaries":{"shape":"SkillSummaryList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListTagsRequest":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{"shape":"Arn"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListTagsResponse":{ + "type":"structure", + "members":{ + "Tags":{"shape":"TagList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "MacAddress":{"type":"string"}, + "MaxResults":{ + "type":"integer", + "max":50, + "min":1 + }, + "MaxVolumeLimit":{"type":"integer"}, + "NameInUseException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "NextToken":{ + "type":"string", + "max":1000, + "min":1 + }, + "NotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Profile":{ + "type":"structure", + "members":{ + "ProfileArn":{"shape":"Arn"}, + "ProfileName":{"shape":"ProfileName"}, + "Address":{"shape":"Address"}, + "Timezone":{"shape":"Timezone"}, + "DistanceUnit":{"shape":"DistanceUnit"}, + "TemperatureUnit":{"shape":"TemperatureUnit"}, + "WakeWord":{"shape":"WakeWord"}, + "SetupModeDisabled":{"shape":"Boolean"}, + "MaxVolumeLimit":{"shape":"MaxVolumeLimit"}, + "PSTNEnabled":{"shape":"Boolean"} + } + }, + "ProfileData":{ + "type":"structure", + "members":{ + "ProfileArn":{"shape":"Arn"}, + "ProfileName":{"shape":"ProfileName"}, + "Address":{"shape":"Address"}, + "Timezone":{"shape":"Timezone"}, + "DistanceUnit":{"shape":"DistanceUnit"}, + "TemperatureUnit":{"shape":"TemperatureUnit"}, + "WakeWord":{"shape":"WakeWord"} + } + }, + "ProfileDataList":{ + "type":"list", + "member":{"shape":"ProfileData"} + }, + "ProfileName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*" + }, + "ProviderCalendarId":{ + "type":"string", + "max":100, + "min":0 + }, + "PutRoomSkillParameterRequest":{ + "type":"structure", + "required":[ + "SkillId", + "RoomSkillParameter" + ], + "members":{ + "RoomArn":{"shape":"Arn"}, + "SkillId":{"shape":"SkillId"}, + "RoomSkillParameter":{"shape":"RoomSkillParameter"} + } + }, + "PutRoomSkillParameterResponse":{ + "type":"structure", + "members":{ + } + }, + "ResolveRoomRequest":{ + "type":"structure", + "required":[ + "UserId", + "SkillId" + ], + "members":{ + "UserId":{"shape":"UserId"}, + "SkillId":{"shape":"SkillId"} + } + }, + "ResolveRoomResponse":{ + "type":"structure", + "members":{ + "RoomArn":{"shape":"Arn"}, + "RoomName":{"shape":"RoomName"}, + "RoomSkillParameters":{"shape":"RoomSkillParameters"} + } + }, + "ResourceInUseException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"}, + "ClientRequestToken":{"shape":"ClientRequestToken"} + }, + "exception":true + }, + "RevokeInvitationRequest":{ + "type":"structure", + "members":{ + "UserArn":{"shape":"Arn"}, + "EnrollmentId":{"shape":"EnrollmentId"} + } + }, + "RevokeInvitationResponse":{ + "type":"structure", + "members":{ + } + }, + "Room":{ + "type":"structure", + "members":{ + "RoomArn":{"shape":"Arn"}, + "RoomName":{"shape":"RoomName"}, + "Description":{"shape":"RoomDescription"}, + "ProviderCalendarId":{"shape":"ProviderCalendarId"}, + "ProfileArn":{"shape":"Arn"} + } + }, + "RoomData":{ + "type":"structure", + "members":{ + "RoomArn":{"shape":"Arn"}, + "RoomName":{"shape":"RoomName"}, + "Description":{"shape":"RoomDescription"}, + "ProviderCalendarId":{"shape":"ProviderCalendarId"}, + "ProfileArn":{"shape":"Arn"}, + "ProfileName":{"shape":"ProfileName"} + } + }, + "RoomDataList":{ + "type":"list", + "member":{"shape":"RoomData"} + }, + "RoomDescription":{ + "type":"string", + "max":200, + "min":1, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*" + }, + "RoomName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*" + }, + "RoomSkillParameter":{ + "type":"structure", + "required":[ + "ParameterKey", + "ParameterValue" + ], + "members":{ + "ParameterKey":{"shape":"RoomSkillParameterKey"}, + "ParameterValue":{"shape":"RoomSkillParameterValue"} + } + }, + "RoomSkillParameterKey":{ + "type":"string", + "max":256, + "min":1 + }, + "RoomSkillParameterValue":{ + "type":"string", + "max":512, + "min":1 + }, + "RoomSkillParameters":{ + "type":"list", + "member":{"shape":"RoomSkillParameter"} + }, + "SearchDevicesRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "Filters":{"shape":"FilterList"}, + "SortCriteria":{"shape":"SortList"} + } + }, + "SearchDevicesResponse":{ + "type":"structure", + "members":{ + "Devices":{"shape":"DeviceDataList"}, + "NextToken":{"shape":"NextToken"}, + "TotalCount":{"shape":"TotalCount"} + } + }, + "SearchProfilesRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "Filters":{"shape":"FilterList"}, + "SortCriteria":{"shape":"SortList"} + } + }, + "SearchProfilesResponse":{ + "type":"structure", + "members":{ + "Profiles":{"shape":"ProfileDataList"}, + "NextToken":{"shape":"NextToken"}, + "TotalCount":{"shape":"TotalCount"} + } + }, + "SearchRoomsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "Filters":{"shape":"FilterList"}, + "SortCriteria":{"shape":"SortList"} + } + }, + "SearchRoomsResponse":{ + "type":"structure", + "members":{ + "Rooms":{"shape":"RoomDataList"}, + "NextToken":{"shape":"NextToken"}, + "TotalCount":{"shape":"TotalCount"} + } + }, + "SearchSkillGroupsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "Filters":{"shape":"FilterList"}, + "SortCriteria":{"shape":"SortList"} + } + }, + "SearchSkillGroupsResponse":{ + "type":"structure", + "members":{ + "SkillGroups":{"shape":"SkillGroupDataList"}, + "NextToken":{"shape":"NextToken"}, + "TotalCount":{"shape":"TotalCount"} + } + }, + "SearchUsersRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "Filters":{"shape":"FilterList"}, + "SortCriteria":{"shape":"SortList"} + } + }, + "SearchUsersResponse":{ + "type":"structure", + "members":{ + "Users":{"shape":"UserDataList"}, + "NextToken":{"shape":"NextToken"}, + "TotalCount":{"shape":"TotalCount"} + } + }, + "SendInvitationRequest":{ + "type":"structure", + "members":{ + "UserArn":{"shape":"Arn"} + } + }, + "SendInvitationResponse":{ + "type":"structure", + "members":{ + } + }, + "SkillGroup":{ + "type":"structure", + "members":{ + "SkillGroupArn":{"shape":"Arn"}, + "SkillGroupName":{"shape":"SkillGroupName"}, + "Description":{"shape":"SkillGroupDescription"} + } + }, + "SkillGroupData":{ + "type":"structure", + "members":{ + "SkillGroupArn":{"shape":"Arn"}, + "SkillGroupName":{"shape":"SkillGroupName"}, + "Description":{"shape":"SkillGroupDescription"} + } + }, + "SkillGroupDataList":{ + "type":"list", + "member":{"shape":"SkillGroupData"} + }, + "SkillGroupDescription":{ + "type":"string", + "max":200, + "min":1, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*" + }, + "SkillGroupName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*" + }, + "SkillId":{ + "type":"string", + "pattern":"(^amzn1\\.ask\\.skill\\.[0-9a-f\\-]{1,200})|(^amzn1\\.echo-sdk-ams\\.app\\.[0-9a-f\\-]{1,200})" + }, + "SkillListMaxResults":{ + "type":"integer", + "max":10, + "min":1 + }, + "SkillName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*" + }, + "SkillSummary":{ + "type":"structure", + "members":{ + "SkillId":{"shape":"SkillId"}, + "SkillName":{"shape":"SkillName"}, + "SupportsLinking":{"shape":"boolean"} + } + }, + "SkillSummaryList":{ + "type":"list", + "member":{"shape":"SkillSummary"} + }, + "SoftwareVersion":{"type":"string"}, + "Sort":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"SortKey"}, + "Value":{"shape":"SortValue"} + } + }, + "SortKey":{ + "type":"string", + "max":500, + "min":1 + }, + "SortList":{ + "type":"list", + "member":{"shape":"Sort"}, + "max":25 + }, + "SortValue":{ + "type":"string", + "enum":[ + "ASC", + "DESC" + ] + }, + "StartDeviceSyncRequest":{ + "type":"structure", + "required":["Features"], + "members":{ + "RoomArn":{"shape":"Arn"}, + "DeviceArn":{"shape":"Arn"}, + "Features":{"shape":"Features"} + } + }, + "StartDeviceSyncResponse":{ + "type":"structure", + "members":{ + } + }, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"} + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "Arn", + "Tags" + ], + "members":{ + "Arn":{"shape":"Arn"}, + "Tags":{"shape":"TagList"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TemperatureUnit":{ + "type":"string", + "enum":[ + "FAHRENHEIT", + "CELSIUS" + ] + }, + "Timezone":{ + "type":"string", + "max":100, + "min":1 + }, + "TotalCount":{"type":"integer"}, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "Arn", + "TagKeys" + ], + "members":{ + "Arn":{"shape":"Arn"}, + "TagKeys":{"shape":"TagKeyList"} + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateDeviceRequest":{ + "type":"structure", + "members":{ + "DeviceArn":{"shape":"Arn"}, + "DeviceName":{"shape":"DeviceName"} + } + }, + "UpdateDeviceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateProfileRequest":{ + "type":"structure", + "members":{ + "ProfileArn":{"shape":"Arn"}, + "ProfileName":{"shape":"ProfileName"}, + "Timezone":{"shape":"Timezone"}, + "Address":{"shape":"Address"}, + "DistanceUnit":{"shape":"DistanceUnit"}, + "TemperatureUnit":{"shape":"TemperatureUnit"}, + "WakeWord":{"shape":"WakeWord"}, + "SetupModeDisabled":{"shape":"Boolean"}, + "MaxVolumeLimit":{"shape":"MaxVolumeLimit"}, + "PSTNEnabled":{"shape":"Boolean"} + } + }, + "UpdateProfileResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateRoomRequest":{ + "type":"structure", + "members":{ + "RoomArn":{"shape":"Arn"}, + "RoomName":{"shape":"RoomName"}, + "Description":{"shape":"RoomDescription"}, + "ProviderCalendarId":{"shape":"ProviderCalendarId"}, + "ProfileArn":{"shape":"Arn"} + } + }, + "UpdateRoomResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateSkillGroupRequest":{ + "type":"structure", + "members":{ + "SkillGroupArn":{"shape":"Arn"}, + "SkillGroupName":{"shape":"SkillGroupName"}, + "Description":{"shape":"SkillGroupDescription"} + } + }, + "UpdateSkillGroupResponse":{ + "type":"structure", + "members":{ + } + }, + "UserData":{ + "type":"structure", + "members":{ + "UserArn":{"shape":"Arn"}, + "FirstName":{"shape":"user_FirstName"}, + "LastName":{"shape":"user_LastName"}, + "Email":{"shape":"Email"}, + "EnrollmentStatus":{"shape":"EnrollmentStatus"}, + "EnrollmentId":{"shape":"EnrollmentId"} + } + }, + "UserDataList":{ + "type":"list", + "member":{"shape":"UserData"} + }, + "UserId":{ + "type":"string", + "pattern":"amzn1\\.[A-Za-z0-9+-\\/=.]{1,300}" + }, + "WakeWord":{ + "type":"string", + "enum":[ + "ALEXA", + "AMAZON", + "ECHO", + "COMPUTER" + ] + }, + "boolean":{"type":"boolean"}, + "user_FirstName":{ + "type":"string", + "max":30, + "min":0, + "pattern":"([A-Za-z\\-' 0-9._]|\\p{IsLetter})*" + }, + "user_LastName":{ + "type":"string", + "max":30, + "min":0, + "pattern":"([A-Za-z\\-' 0-9._]|\\p{IsLetter})*" + }, + "user_UserId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9@_+.-]*" + } + } +} diff --git a/models/apis/alexaforbusiness/2017-11-09/docs-2.json b/models/apis/alexaforbusiness/2017-11-09/docs-2.json new file mode 100644 index 00000000000..2d2cfefa342 --- /dev/null +++ b/models/apis/alexaforbusiness/2017-11-09/docs-2.json @@ -0,0 +1,1021 @@ +{ + "version": "2.0", + "service": "

Alexa for Business makes it easy for you to use Alexa in your organization. Alexa for Business gives you the tools you need to manage Alexa devices, enroll your users, and assign skills, at scale. You can build your own context-aware voice skills using the Alexa Skills Kit, and the Alexa for Business APIs, and you can make these available as private skills for your organization. Alexa for Business also makes it easy to voice-enable your products and services, providing context-aware voice experiences for your customers.

", + "operations": { + "AssociateDeviceWithRoom": "

Associates a device to a given room. This applies all the settings from the room profile to the device, and all the skills in any skill groups added to that room. This operation requires the device to be online, or a manual sync is required.

", + "AssociateSkillGroupWithRoom": "

Associates a skill group to a given room. This enables all skills in the associated skill group on all devices in the room.

", + "CreateProfile": "

Creates a new room profile with the specified details.

", + "CreateRoom": "

Creates a room with the specified details.

", + "CreateSkillGroup": "

Creates a skill group with a specified name and description.

", + "CreateUser": "

Creates a user.

", + "DeleteProfile": "

Deletes a room profile by the profile ARN.

", + "DeleteRoom": "

Deletes a room by the room ARN.

", + "DeleteRoomSkillParameter": "

Deletes room skill parameter details by room, skill, and parameter key ID.

", + "DeleteSkillGroup": "

Deletes a skill group by skill group ARN.

", + "DeleteUser": "

Deletes a specified user by user ARN and enrollment ARN.

", + "DisassociateDeviceFromRoom": "

Disassociates a device from its current room. The device continues to be connected to the Wi-Fi network and is still registered to the account. The device settings and skills are removed from the room.

", + "DisassociateSkillGroupFromRoom": "

Disassociates a skill group from a specified room. This disables all skills in the skill group on all devices in the room.

", + "GetDevice": "

Gets the details of a device by device ARN.

", + "GetProfile": "

Gets the details of a room profile by profile ARN.

", + "GetRoom": "

Gets room details by room ARN.

", + "GetRoomSkillParameter": "

Gets room skill parameter details by room, skill, and parameter key ARN.

", + "GetSkillGroup": "

Gets skill group details by skill group ARN.

", + "ListSkills": "

Lists all enabled skills in a specific skill group.

", + "ListTags": "

Lists all tags for a specific resource.

", + "PutRoomSkillParameter": "

Updates room skill parameter details by room, skill, and parameter key ID. Not all skills have a room skill parameter.

", + "ResolveRoom": "

Determines the details for the room from which a skill request was invoked. This operation is used by skill developers.

", + "RevokeInvitation": "

Revokes an invitation and invalidates the enrollment URL.

", + "SearchDevices": "

Searches devices and lists the ones that meet a set of filter criteria.

", + "SearchProfiles": "

Searches room profiles and lists the ones that meet a set of filter criteria.

", + "SearchRooms": "

Searches rooms and lists the ones that meet a set of filter and sort criteria.

", + "SearchSkillGroups": "

Searches skill groups and lists the ones that meet a set of filter and sort criteria.

", + "SearchUsers": "

Searches users and lists the ones that meet a set of filter and sort criteria.

", + "SendInvitation": "

Sends an enrollment invitation email with a URL to a user. The URL is valid for 72 hours or until you call this operation again, whichever comes first.

", + "StartDeviceSync": "

Resets a device and its account to the known default settings by clearing all information and settings set by previous users.

", + "TagResource": "

Adds metadata tags to a specified resource.

", + "UntagResource": "

Removes metadata tags from a specified resource.

", + "UpdateDevice": "

Updates the device name by device ARN.

", + "UpdateProfile": "

Updates an existing room profile by room profile ARN.

", + "UpdateRoom": "

Updates room details by room ARN.

", + "UpdateSkillGroup": "

Updates skill group details by skill group ARN.

" + }, + "shapes": { + "Address": { + "base": null, + "refs": { + "CreateProfileRequest$Address": "

The valid address for the room.

", + "Profile$Address": "

The address of a room profile.

", + "ProfileData$Address": "

The address of a room profile.

", + "UpdateProfileRequest$Address": "

The updated address for the room profile.

" + } + }, + "AlreadyExistsException": { + "base": "

The resource being created already exists. HTTP Status Code: 400

", + "refs": { + } + }, + "Arn": { + "base": null, + "refs": { + "AssociateDeviceWithRoomRequest$DeviceArn": "

The ARN of the device to associate to a room. Required.

", + "AssociateDeviceWithRoomRequest$RoomArn": "

The ARN of the room with which to associate the device. Required.

", + "AssociateSkillGroupWithRoomRequest$SkillGroupArn": "

The ARN of the skill group to associate with a room. Required.

", + "AssociateSkillGroupWithRoomRequest$RoomArn": "

The ARN of the room with which to associate the skill group. Required.

", + "CreateProfileResponse$ProfileArn": "

The ARN of the newly created room profile in the response.

", + "CreateRoomRequest$ProfileArn": "

The profile ARN for the room.

", + "CreateRoomResponse$RoomArn": "

The ARN of the newly created room in the response.

", + "CreateSkillGroupResponse$SkillGroupArn": "

The ARN of the newly created skill group in the response.

", + "CreateUserResponse$UserArn": "

The ARN of the newly created user in the response.

", + "DeleteProfileRequest$ProfileArn": "

The ARN of the room profile to delete. Required.

", + "DeleteRoomRequest$RoomArn": "

The ARN of the room to delete. Required.

", + "DeleteRoomSkillParameterRequest$RoomArn": "

The ARN of the room from which to remove the room skill parameter details.

", + "DeleteSkillGroupRequest$SkillGroupArn": "

The ARN of the skill group to delete. Required.

", + "DeleteUserRequest$UserArn": "

The ARN of the user to delete in the organization. Required.

", + "Device$DeviceArn": "

The ARN of a device.

", + "Device$RoomArn": "

The room ARN of a device.

", + "DeviceData$DeviceArn": "

The ARN of a device.

", + "DeviceData$RoomArn": "

The room ARN associated with a device.

", + "DisassociateDeviceFromRoomRequest$DeviceArn": "

The ARN of the device to disassociate from a room. Required.

", + "DisassociateSkillGroupFromRoomRequest$SkillGroupArn": "

The ARN of the skill group to disassociate from a room. Required.

", + "DisassociateSkillGroupFromRoomRequest$RoomArn": "

The ARN of the room from which the skill group is to be disassociated. Required.

", + "GetDeviceRequest$DeviceArn": "

The ARN of the device for which to request details. Required.

", + "GetProfileRequest$ProfileArn": "

The ARN of the room profile for which to request details. Required.

", + "GetRoomRequest$RoomArn": "

The ARN of the room for which to request details. Required.

", + "GetRoomSkillParameterRequest$RoomArn": "

The ARN of the room from which to get the room skill parameter details.

", + "GetSkillGroupRequest$SkillGroupArn": "

The ARN of the skill group for which to get details. Required.

", + "ListSkillsRequest$SkillGroupArn": "

The ARN of the skill group for which to list enabled skills. Required.

", + "ListTagsRequest$Arn": "

The ARN of the specific resource for which to list tags. Required.

", + "Profile$ProfileArn": "

The ARN of a room profile.

", + "ProfileData$ProfileArn": "

The ARN of a room profile.

", + "PutRoomSkillParameterRequest$RoomArn": "

The ARN of the room associated with the room skill parameter. Required.

", + "ResolveRoomResponse$RoomArn": "

The ARN of the room from which the skill request was invoked.

", + "RevokeInvitationRequest$UserArn": "

The ARN of the user for whom to revoke an enrollment invitation. Required.

", + "Room$RoomArn": "

The ARN of a room.

", + "Room$ProfileArn": "

The profile ARN of a room.

", + "RoomData$RoomArn": "

The ARN of a room.

", + "RoomData$ProfileArn": "

The profile ARN of a room.

", + "SendInvitationRequest$UserArn": "

The ARN of the user to whom to send an invitation. Required.

", + "SkillGroup$SkillGroupArn": "

The ARN of a skill group.

", + "SkillGroupData$SkillGroupArn": "

The skill group ARN of a skill group.

", + "StartDeviceSyncRequest$RoomArn": "

The ARN of the room with which the device to sync is associated. Required.

", + "StartDeviceSyncRequest$DeviceArn": "

The ARN of the device to sync. Required.

", + "TagResourceRequest$Arn": "

The ARN of the resource to which to add metadata tags. Required.

", + "UntagResourceRequest$Arn": "

The ARN of the resource from which to remove metadata tags. Required.

", + "UpdateDeviceRequest$DeviceArn": "

The ARN of the device to update. Required.

", + "UpdateProfileRequest$ProfileArn": "

The ARN of the room profile to update. Required.

", + "UpdateRoomRequest$RoomArn": "

The ARN of the room to update.

", + "UpdateRoomRequest$ProfileArn": "

The updated profile ARN for the room.

", + "UpdateSkillGroupRequest$SkillGroupArn": "

The ARN of the skill group to update.

", + "UserData$UserArn": "

The ARN of a user.

" + } + }, + "AssociateDeviceWithRoomRequest": { + "base": null, + "refs": { + } + }, + "AssociateDeviceWithRoomResponse": { + "base": null, + "refs": { + } + }, + "AssociateSkillGroupWithRoomRequest": { + "base": null, + "refs": { + } + }, + "AssociateSkillGroupWithRoomResponse": { + "base": null, + "refs": { + } + }, + "Boolean": { + "base": null, + "refs": { + "CreateProfileRequest$SetupModeDisabled": "

Whether room profile setup is enabled.

", + "CreateProfileRequest$PSTNEnabled": "

Whether PSTN calling is enabled.

", + "Profile$SetupModeDisabled": "

The setup mode of a room profile.

", + "Profile$PSTNEnabled": "

The PSTN setting of a room profile.

", + "UpdateProfileRequest$SetupModeDisabled": "

Whether the setup mode of the profile is enabled.

", + "UpdateProfileRequest$PSTNEnabled": "

Whether the PSTN setting of the room profile is enabled.

" + } + }, + "ClientRequestToken": { + "base": "User specified token that is used to support idempotency during Create Resource", + "refs": { + "CreateProfileRequest$ClientRequestToken": "

The user-specified token that is used during the creation of a profile.

", + "CreateRoomRequest$ClientRequestToken": "

A unique, user-specified identifier for this request that ensures idempotency.

", + "CreateSkillGroupRequest$ClientRequestToken": "

A unique, user-specified identifier for this request that ensures idempotency.

", + "CreateUserRequest$ClientRequestToken": "

A unique, user-specified identifier for this request that ensures idempotency.

", + "ResourceInUseException$ClientRequestToken": null + } + }, + "CreateProfileRequest": { + "base": null, + "refs": { + } + }, + "CreateProfileResponse": { + "base": null, + "refs": { + } + }, + "CreateRoomRequest": { + "base": null, + "refs": { + } + }, + "CreateRoomResponse": { + "base": null, + "refs": { + } + }, + "CreateSkillGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateSkillGroupResponse": { + "base": null, + "refs": { + } + }, + "CreateUserRequest": { + "base": null, + "refs": { + } + }, + "CreateUserResponse": { + "base": null, + "refs": { + } + }, + "DeleteProfileRequest": { + "base": null, + "refs": { + } + }, + "DeleteProfileResponse": { + "base": null, + "refs": { + } + }, + "DeleteRoomRequest": { + "base": null, + "refs": { + } + }, + "DeleteRoomResponse": { + "base": null, + "refs": { + } + }, + "DeleteRoomSkillParameterRequest": { + "base": null, + "refs": { + } + }, + "DeleteRoomSkillParameterResponse": { + "base": null, + "refs": { + } + }, + "DeleteSkillGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteSkillGroupResponse": { + "base": null, + "refs": { + } + }, + "DeleteUserRequest": { + "base": null, + "refs": { + } + }, + "DeleteUserResponse": { + "base": null, + "refs": { + } + }, + "Device": { + "base": "

A device with attributes.

", + "refs": { + "GetDeviceResponse$Device": "

The details of the device requested. Required.

" + } + }, + "DeviceData": { + "base": "

Device attributes.

", + "refs": { + "DeviceDataList$member": null + } + }, + "DeviceDataList": { + "base": null, + "refs": { + "SearchDevicesResponse$Devices": "

The devices that meet the specified set of filter criteria, in sort order.

" + } + }, + "DeviceName": { + "base": null, + "refs": { + "Device$DeviceName": "

The name of a device.

", + "DeviceData$DeviceName": "

The name of a device.

", + "UpdateDeviceRequest$DeviceName": "

The updated device name. Required.

" + } + }, + "DeviceSerialNumber": { + "base": null, + "refs": { + "Device$DeviceSerialNumber": "

The serial number of a device.

", + "DeviceData$DeviceSerialNumber": "

The serial number of a device.

" + } + }, + "DeviceStatus": { + "base": null, + "refs": { + "Device$DeviceStatus": "

The status of a device.

", + "DeviceData$DeviceStatus": "

The status of a device.

" + } + }, + "DeviceType": { + "base": null, + "refs": { + "Device$DeviceType": "

The type of a device.

", + "DeviceData$DeviceType": "

The type of a device.

" + } + }, + "DisassociateDeviceFromRoomRequest": { + "base": null, + "refs": { + } + }, + "DisassociateDeviceFromRoomResponse": { + "base": null, + "refs": { + } + }, + "DisassociateSkillGroupFromRoomRequest": { + "base": null, + "refs": { + } + }, + "DisassociateSkillGroupFromRoomResponse": { + "base": null, + "refs": { + } + }, + "DistanceUnit": { + "base": null, + "refs": { + "CreateProfileRequest$DistanceUnit": "

The distance unit to be used by devices in the profile.

", + "Profile$DistanceUnit": "

The distance unit of a room profile.

", + "ProfileData$DistanceUnit": "

The distance unit of a room profile.

", + "UpdateProfileRequest$DistanceUnit": "

The updated distance unit for the room profile.

" + } + }, + "Email": { + "base": null, + "refs": { + "CreateUserRequest$Email": "

The email address for the user.

", + "UserData$Email": "

The email of a user.

" + } + }, + "EnrollmentId": { + "base": null, + "refs": { + "DeleteUserRequest$EnrollmentId": "

The ARN of the user's enrollment in the organization. Required.

", + "RevokeInvitationRequest$EnrollmentId": "

The ARN of the enrollment invitation to revoke. Required.

", + "UserData$EnrollmentId": "

The enrollment ARN of a user.

" + } + }, + "EnrollmentStatus": { + "base": null, + "refs": { + "UserData$EnrollmentStatus": "

The enrollment status of a user.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AlreadyExistsException$Message": null, + "InvalidUserStatusException$Message": null, + "LimitExceededException$Message": null, + "NameInUseException$Message": null, + "NotFoundException$Message": null, + "ResourceInUseException$Message": null + } + }, + "Feature": { + "base": null, + "refs": { + "Features$member": null + } + }, + "Features": { + "base": null, + "refs": { + "StartDeviceSyncRequest$Features": "

Request structure to start the device sync. Required.

" + } + }, + "Filter": { + "base": "

A filter name and value pair that is used to return a more specific list of results. Filters can be used to match a set of resources by various criteria.

", + "refs": { + "FilterList$member": null + } + }, + "FilterKey": { + "base": null, + "refs": { + "Filter$Key": "

The key of a filter.

" + } + }, + "FilterList": { + "base": null, + "refs": { + "SearchDevicesRequest$Filters": "

The filters to use to list a specified set of devices. Supported filter keys are DeviceName, DeviceStatus, RoomName, DeviceType, DeviceSerialNumber, and UnassociatedOnly.

", + "SearchProfilesRequest$Filters": "

The filters to use to list a specified set of room profiles. Supported filter keys are ProfileName and Address. Required.

", + "SearchRoomsRequest$Filters": "

The filters to use to list a specified set of rooms. The supported filter keys are RoomName and ProfileName.

", + "SearchSkillGroupsRequest$Filters": "

The filters to use to list a specified set of skill groups. The supported filter key is SkillGroupName.

", + "SearchUsersRequest$Filters": "

The filters to use for listing a specific set of users. Required. Supported filter keys are UserId, FirstName, LastName, Email, and EnrollmentStatus.

" + } + }, + "FilterValue": { + "base": null, + "refs": { + "FilterValueList$member": null + } + }, + "FilterValueList": { + "base": null, + "refs": { + "Filter$Values": "

The values of a filter.

" + } + }, + "GetDeviceRequest": { + "base": null, + "refs": { + } + }, + "GetDeviceResponse": { + "base": null, + "refs": { + } + }, + "GetProfileRequest": { + "base": null, + "refs": { + } + }, + "GetProfileResponse": { + "base": null, + "refs": { + } + }, + "GetRoomRequest": { + "base": null, + "refs": { + } + }, + "GetRoomResponse": { + "base": null, + "refs": { + } + }, + "GetRoomSkillParameterRequest": { + "base": null, + "refs": { + } + }, + "GetRoomSkillParameterResponse": { + "base": null, + "refs": { + } + }, + "GetSkillGroupRequest": { + "base": null, + "refs": { + } + }, + "GetSkillGroupResponse": { + "base": null, + "refs": { + } + }, + "InvalidUserStatusException": { + "base": "

The attempt to update a user is invalid due to the user's current status. HTTP Status Code: 400

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

You are performing an action that would put you beyond your account's limits. HTTP Status Code: 400

", + "refs": { + } + }, + "ListSkillsRequest": { + "base": null, + "refs": { + } + }, + "ListSkillsResponse": { + "base": null, + "refs": { + } + }, + "ListTagsRequest": { + "base": null, + "refs": { + } + }, + "ListTagsResponse": { + "base": null, + "refs": { + } + }, + "MacAddress": { + "base": null, + "refs": { + "Device$MacAddress": "

The MAC address of a device.

", + "DeviceData$MacAddress": "

The MAC address of a device.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListTagsRequest$MaxResults": "

The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.

", + "SearchDevicesRequest$MaxResults": "

The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.

", + "SearchProfilesRequest$MaxResults": "

The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.

", + "SearchRoomsRequest$MaxResults": "

The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.

", + "SearchSkillGroupsRequest$MaxResults": "

The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.

", + "SearchUsersRequest$MaxResults": "

The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. Required.

" + } + }, + "MaxVolumeLimit": { + "base": null, + "refs": { + "CreateProfileRequest$MaxVolumeLimit": "

The maximum volume limit for a room profile.

", + "Profile$MaxVolumeLimit": "

The max volume limit of a room profile.

", + "UpdateProfileRequest$MaxVolumeLimit": "

The updated maximum volume limit for the room profile.

" + } + }, + "NameInUseException": { + "base": "

The name sent in the request is already in use. HTTP Status Code: 400

", + "refs": { + } + }, + "NextToken": { + "base": null, + "refs": { + "ListSkillsRequest$NextToken": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. Required.

", + "ListSkillsResponse$NextToken": "

The token returned to indicate that there is more data available.

", + "ListTagsRequest$NextToken": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.

", + "ListTagsResponse$NextToken": "

The token returned to indicate that there is more data available.

", + "SearchDevicesRequest$NextToken": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.

", + "SearchDevicesResponse$NextToken": "

The token returned to indicate that there is more data available.

", + "SearchProfilesRequest$NextToken": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.

", + "SearchProfilesResponse$NextToken": "

The token returned to indicate that there is more data available.

", + "SearchRoomsRequest$NextToken": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.

", + "SearchRoomsResponse$NextToken": "

The token returned to indicate that there is more data available.

", + "SearchSkillGroupsRequest$NextToken": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. Required.

", + "SearchSkillGroupsResponse$NextToken": "

The token returned to indicate that there is more data available.

", + "SearchUsersRequest$NextToken": "

An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. Required.

", + "SearchUsersResponse$NextToken": "

The token returned to indicate that there is more data available.

" + } + }, + "NotFoundException": { + "base": "

The resource is not found. HTTP Status Code: 400

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

A room profile with attributes.

", + "refs": { + "GetProfileResponse$Profile": "

The details of the room profile requested. Required.

" + } + }, + "ProfileData": { + "base": "

The data of a room profile.

", + "refs": { + "ProfileDataList$member": null + } + }, + "ProfileDataList": { + "base": null, + "refs": { + "SearchProfilesResponse$Profiles": "

The profiles that meet the specified set of filter criteria, in sort order.

" + } + }, + "ProfileName": { + "base": null, + "refs": { + "CreateProfileRequest$ProfileName": "

The name of a room profile.

", + "Profile$ProfileName": "

The name of a room profile.

", + "ProfileData$ProfileName": "

The name of a room profile.

", + "RoomData$ProfileName": "

The profile name of a room.

", + "UpdateProfileRequest$ProfileName": "

The updated name for the room profile.

" + } + }, + "ProviderCalendarId": { + "base": null, + "refs": { + "CreateRoomRequest$ProviderCalendarId": "

The calendar ARN for the room.

", + "Room$ProviderCalendarId": "

The provider calendar ARN of a room.

", + "RoomData$ProviderCalendarId": "

The provider calendar ARN of a room.

", + "UpdateRoomRequest$ProviderCalendarId": "

The updated provider calendar ARN for the room.

" + } + }, + "PutRoomSkillParameterRequest": { + "base": null, + "refs": { + } + }, + "PutRoomSkillParameterResponse": { + "base": null, + "refs": { + } + }, + "ResolveRoomRequest": { + "base": null, + "refs": { + } + }, + "ResolveRoomResponse": { + "base": null, + "refs": { + } + }, + "ResourceInUseException": { + "base": "

The resource in the request is already in use. HTTP Status Code: 400

", + "refs": { + } + }, + "RevokeInvitationRequest": { + "base": null, + "refs": { + } + }, + "RevokeInvitationResponse": { + "base": null, + "refs": { + } + }, + "Room": { + "base": "

A room with attributes.

", + "refs": { + "GetRoomResponse$Room": "

The details of the room requested.

" + } + }, + "RoomData": { + "base": "

The data of a room.

", + "refs": { + "RoomDataList$member": null + } + }, + "RoomDataList": { + "base": null, + "refs": { + "SearchRoomsResponse$Rooms": "

The rooms that meet the specified set of filter criteria, in sort order.

" + } + }, + "RoomDescription": { + "base": null, + "refs": { + "CreateRoomRequest$Description": "

The description for the room.

", + "Room$Description": "

The description of a room.

", + "RoomData$Description": "

The description of a room.

", + "UpdateRoomRequest$Description": "

The updated description for the room.

" + } + }, + "RoomName": { + "base": null, + "refs": { + "CreateRoomRequest$RoomName": "

The name for the room.

", + "DeviceData$RoomName": "

The name of the room associated with a device.

", + "ResolveRoomResponse$RoomName": "

The name of the room from which the skill request was invoked.

", + "Room$RoomName": "

The name of a room.

", + "RoomData$RoomName": "

The name of a room.

", + "UpdateRoomRequest$RoomName": "

The updated name for the room.

" + } + }, + "RoomSkillParameter": { + "base": "

A skill parameter associated with a room.

", + "refs": { + "GetRoomSkillParameterResponse$RoomSkillParameter": "

The details of the room skill parameter requested. Required.

", + "PutRoomSkillParameterRequest$RoomSkillParameter": "

The updated room skill parameter. Required.

", + "RoomSkillParameters$member": null + } + }, + "RoomSkillParameterKey": { + "base": null, + "refs": { + "DeleteRoomSkillParameterRequest$ParameterKey": "

The room skill parameter key for which to remove details.

", + "GetRoomSkillParameterRequest$ParameterKey": "

The room skill parameter key for which to get details. Required.

", + "RoomSkillParameter$ParameterKey": "

The parameter key of a room skill parameter. ParameterKey is an enumerated type that only takes “DEFAULT” or “SCOPE” as valid values.

" + } + }, + "RoomSkillParameterValue": { + "base": null, + "refs": { + "RoomSkillParameter$ParameterValue": "

The parameter value of a room skill parameter.

" + } + }, + "RoomSkillParameters": { + "base": null, + "refs": { + "ResolveRoomResponse$RoomSkillParameters": "

Response to get the room profile request. Required.

" + } + }, + "SearchDevicesRequest": { + "base": null, + "refs": { + } + }, + "SearchDevicesResponse": { + "base": null, + "refs": { + } + }, + "SearchProfilesRequest": { + "base": null, + "refs": { + } + }, + "SearchProfilesResponse": { + "base": null, + "refs": { + } + }, + "SearchRoomsRequest": { + "base": null, + "refs": { + } + }, + "SearchRoomsResponse": { + "base": null, + "refs": { + } + }, + "SearchSkillGroupsRequest": { + "base": null, + "refs": { + } + }, + "SearchSkillGroupsResponse": { + "base": null, + "refs": { + } + }, + "SearchUsersRequest": { + "base": null, + "refs": { + } + }, + "SearchUsersResponse": { + "base": null, + "refs": { + } + }, + "SendInvitationRequest": { + "base": null, + "refs": { + } + }, + "SendInvitationResponse": { + "base": null, + "refs": { + } + }, + "SkillGroup": { + "base": "

A skill group with attributes.

", + "refs": { + "GetSkillGroupResponse$SkillGroup": "

The details of the skill group requested. Required.

" + } + }, + "SkillGroupData": { + "base": "

The attributes of a skill group.

", + "refs": { + "SkillGroupDataList$member": null + } + }, + "SkillGroupDataList": { + "base": null, + "refs": { + "SearchSkillGroupsResponse$SkillGroups": "

The skill groups that meet the filter criteria, in sort order.

" + } + }, + "SkillGroupDescription": { + "base": null, + "refs": { + "CreateSkillGroupRequest$Description": "

The description for the skill group.

", + "SkillGroup$Description": "

The description of a skill group.

", + "SkillGroupData$Description": "

The description of a skill group.

", + "UpdateSkillGroupRequest$Description": "

The updated description for the skill group.

" + } + }, + "SkillGroupName": { + "base": null, + "refs": { + "CreateSkillGroupRequest$SkillGroupName": "

The name for the skill group.

", + "SkillGroup$SkillGroupName": "

The name of a skill group.

", + "SkillGroupData$SkillGroupName": "

The skill group name of a skill group.

", + "UpdateSkillGroupRequest$SkillGroupName": "

The updated name for the skill group.

" + } + }, + "SkillId": { + "base": null, + "refs": { + "DeleteRoomSkillParameterRequest$SkillId": "

The ID of the skill from which to remove the room skill parameter details.

", + "GetRoomSkillParameterRequest$SkillId": "

The ARN of the skill from which to get the room skill parameter details. Required.

", + "PutRoomSkillParameterRequest$SkillId": "

The ARN of the skill associated with the room skill parameter. Required.

", + "ResolveRoomRequest$SkillId": "

The ARN of the skill that was requested. Required.

", + "SkillSummary$SkillId": "

The ARN of the skill summary.

" + } + }, + "SkillListMaxResults": { + "base": null, + "refs": { + "ListSkillsRequest$MaxResults": "

The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. Required.

" + } + }, + "SkillName": { + "base": null, + "refs": { + "SkillSummary$SkillName": "

The name of the skill.

" + } + }, + "SkillSummary": { + "base": "

The summary of skills.

", + "refs": { + "SkillSummaryList$member": null + } + }, + "SkillSummaryList": { + "base": null, + "refs": { + "ListSkillsResponse$SkillSummaries": "

The list of enabled skills requested. Required.

" + } + }, + "SoftwareVersion": { + "base": null, + "refs": { + "Device$SoftwareVersion": "

The software version of a device.

", + "DeviceData$SoftwareVersion": "

The software version of a device.

" + } + }, + "Sort": { + "base": "

An object representing a sort criteria.

", + "refs": { + "SortList$member": null + } + }, + "SortKey": { + "base": null, + "refs": { + "Sort$Key": "

The sort key of a sort object.

" + } + }, + "SortList": { + "base": null, + "refs": { + "SearchDevicesRequest$SortCriteria": "

The sort order to use in listing the specified set of devices. Supported sort keys are DeviceName, DeviceStatus, RoomName, DeviceType, and DeviceSerialNumber.

", + "SearchProfilesRequest$SortCriteria": "

The sort order to use in listing the specified set of room profiles. Supported sort keys are ProfileName and Address.

", + "SearchRoomsRequest$SortCriteria": "

The sort order to use in listing the specified set of rooms. The supported sort keys are RoomName and ProfileName.

", + "SearchSkillGroupsRequest$SortCriteria": "

The sort order to use in listing the specified set of skill groups. The supported sort key is SkillGroupName.

", + "SearchUsersRequest$SortCriteria": "

The sort order to use in listing the filtered set of users. Required. Supported sort keys are UserId, FirstName, LastName, Email, and EnrollmentStatus.

" + } + }, + "SortValue": { + "base": null, + "refs": { + "Sort$Value": "

The sort value of a sort object.

" + } + }, + "StartDeviceSyncRequest": { + "base": null, + "refs": { + } + }, + "StartDeviceSyncResponse": { + "base": null, + "refs": { + } + }, + "Tag": { + "base": "

A key-value pair that can be associated with a resource.

", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The key of a tag. Tag keys are case-sensitive.

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$TagKeys": "

The tags to be removed from the specified resource. Do not provide system tags. Required.

" + } + }, + "TagList": { + "base": null, + "refs": { + "CreateRoomRequest$Tags": "

The tags for the room.

", + "CreateUserRequest$Tags": "

The tags for the user.

", + "ListTagsResponse$Tags": "

The list of tags requested for the specific resource.

", + "TagResourceRequest$Tags": "

The tags to be added to the specified resource. Do not provide system tags. Required.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The value of a tag. Tag values are case-sensitive and can be null.

" + } + }, + "TemperatureUnit": { + "base": null, + "refs": { + "CreateProfileRequest$TemperatureUnit": "

The temperature unit to be used by devices in the profile.

", + "Profile$TemperatureUnit": "

The temperature unit of a room profile.

", + "ProfileData$TemperatureUnit": "

The temperature unit of a room profile.

", + "UpdateProfileRequest$TemperatureUnit": "

The updated temperature unit for the room profile.

" + } + }, + "Timezone": { + "base": null, + "refs": { + "CreateProfileRequest$Timezone": "

The time zone used by a room profile.

", + "Profile$Timezone": "

The time zone of a room profile.

", + "ProfileData$Timezone": "

The timezone of a room profile.

", + "UpdateProfileRequest$Timezone": "

The updated timezone for the room profile.

" + } + }, + "TotalCount": { + "base": null, + "refs": { + "SearchDevicesResponse$TotalCount": "

The total number of devices returned.

", + "SearchProfilesResponse$TotalCount": "

The total number of room profiles returned.

", + "SearchRoomsResponse$TotalCount": "

The total number of rooms returned.

", + "SearchSkillGroupsResponse$TotalCount": "

The total number of skill groups returned.

", + "SearchUsersResponse$TotalCount": "

The total number of users returned.

" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateDeviceRequest": { + "base": null, + "refs": { + } + }, + "UpdateDeviceResponse": { + "base": null, + "refs": { + } + }, + "UpdateProfileRequest": { + "base": null, + "refs": { + } + }, + "UpdateProfileResponse": { + "base": null, + "refs": { + } + }, + "UpdateRoomRequest": { + "base": null, + "refs": { + } + }, + "UpdateRoomResponse": { + "base": null, + "refs": { + } + }, + "UpdateSkillGroupRequest": { + "base": null, + "refs": { + } + }, + "UpdateSkillGroupResponse": { + "base": null, + "refs": { + } + }, + "UserData": { + "base": "

Information related to a user.

", + "refs": { + "UserDataList$member": null + } + }, + "UserDataList": { + "base": null, + "refs": { + "SearchUsersResponse$Users": "

The users that meet the specified set of filter criteria, in sort order.

" + } + }, + "UserId": { + "base": null, + "refs": { + "ResolveRoomRequest$UserId": "

The ARN of the user. Required.

" + } + }, + "WakeWord": { + "base": null, + "refs": { + "CreateProfileRequest$WakeWord": "

A wake word for Alexa, Echo, Amazon, or a computer.

", + "Profile$WakeWord": "

The wake word of a room profile.

", + "ProfileData$WakeWord": "

The wake word of a room profile.

", + "UpdateProfileRequest$WakeWord": "

The updated wake word for the room profile.

" + } + }, + "boolean": { + "base": null, + "refs": { + "SkillSummary$SupportsLinking": "

Linking support for a skill.

" + } + }, + "user_FirstName": { + "base": null, + "refs": { + "CreateUserRequest$FirstName": "

The first name for the user.

", + "UserData$FirstName": "

The first name of a user.

" + } + }, + "user_LastName": { + "base": null, + "refs": { + "CreateUserRequest$LastName": "

The last name for the user.

", + "UserData$LastName": "

The last name of a user.

" + } + }, + "user_UserId": { + "base": null, + "refs": { + "CreateUserRequest$UserId": "

The ARN for the user.

" + } + } + } +} diff --git a/models/apis/alexaforbusiness/2017-11-09/examples-1.json b/models/apis/alexaforbusiness/2017-11-09/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/alexaforbusiness/2017-11-09/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/alexaforbusiness/2017-11-09/paginators-1.json b/models/apis/alexaforbusiness/2017-11-09/paginators-1.json new file mode 100644 index 00000000000..235854ec535 --- /dev/null +++ b/models/apis/alexaforbusiness/2017-11-09/paginators-1.json @@ -0,0 +1,39 @@ +{ + "pagination": { + "ListSkills": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListTags": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchDevices": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchProfiles": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchRooms": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchSkillGroups": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchUsers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/apigateway/2015-07-09/api-2.json b/models/apis/apigateway/2015-07-09/api-2.json index badeac46568..26d2972b9d5 100644 --- a/models/apis/apigateway/2015-07-09/api-2.json +++ b/models/apis/apigateway/2015-07-09/api-2.json @@ -5,6 +5,7 @@ "endpointPrefix":"apigateway", "protocol":"rest-json", "serviceFullName":"Amazon API Gateway", + "serviceId":"API Gateway", "signatureVersion":"v4", "uid":"apigateway-2015-07-09" }, @@ -254,6 +255,21 @@ {"shape":"TooManyRequestsException"} ] }, + "CreateVpcLink":{ + "name":"CreateVpcLink", + "http":{ + "method":"POST", + "requestUri":"/vpclinks", + "responseCode":202 + }, + "input":{"shape":"CreateVpcLinkRequest"}, + "output":{"shape":"VpcLink"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"BadRequestException"}, + {"shape":"TooManyRequestsException"} + ] + }, "DeleteApiKey":{ "name":"DeleteApiKey", "http":{ @@ -295,6 +311,8 @@ "errors":[ {"shape":"UnauthorizedException"}, {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"BadRequestException"}, {"shape":"TooManyRequestsException"} ] }, @@ -374,6 +392,22 @@ {"shape":"TooManyRequestsException"} ] }, + "DeleteGatewayResponse":{ + "name":"DeleteGatewayResponse", + "http":{ + "method":"DELETE", + "requestUri":"/restapis/{restapi_id}/gatewayresponses/{response_type}", + "responseCode":202 + }, + "input":{"shape":"DeleteGatewayResponseRequest"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"} + ] + }, "DeleteIntegration":{ "name":"DeleteIntegration", "http":{ @@ -545,6 +579,21 @@ {"shape":"TooManyRequestsException"} ] }, + "DeleteVpcLink":{ + "name":"DeleteVpcLink", + "http":{ + "method":"DELETE", + "requestUri":"/vpclinks/{vpclink_id}", + "responseCode":202 + }, + "input":{"shape":"DeleteVpcLinkRequest"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} + ] + }, "FlushStageAuthorizersCache":{ "name":"FlushStageAuthorizersCache", "http":{ @@ -847,6 +896,36 @@ {"shape":"UnauthorizedException"}, {"shape":"NotFoundException"}, {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"TooManyRequestsException"} + ] + }, + "GetGatewayResponse":{ + "name":"GetGatewayResponse", + "http":{ + "method":"GET", + "requestUri":"/restapis/{restapi_id}/gatewayresponses/{response_type}" + }, + "input":{"shape":"GetGatewayResponseRequest"}, + "output":{"shape":"GatewayResponse"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"} + ] + }, + "GetGatewayResponses":{ + "name":"GetGatewayResponses", + "http":{ + "method":"GET", + "requestUri":"/restapis/{restapi_id}/gatewayresponses" + }, + "input":{"shape":"GetGatewayResponsesRequest"}, + "output":{"shape":"GatewayResponses"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, {"shape":"TooManyRequestsException"} ] }, @@ -1049,6 +1128,7 @@ {"shape":"UnauthorizedException"}, {"shape":"NotFoundException"}, {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, {"shape":"TooManyRequestsException"} ] }, @@ -1184,6 +1264,34 @@ {"shape":"NotFoundException"} ] }, + "GetVpcLink":{ + "name":"GetVpcLink", + "http":{ + "method":"GET", + "requestUri":"/vpclinks/{vpclink_id}" + }, + "input":{"shape":"GetVpcLinkRequest"}, + "output":{"shape":"VpcLink"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"} + ] + }, + "GetVpcLinks":{ + "name":"GetVpcLinks", + "http":{ + "method":"GET", + "requestUri":"/vpclinks" + }, + "input":{"shape":"GetVpcLinksRequest"}, + "output":{"shape":"VpcLinks"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedException"}, + {"shape":"TooManyRequestsException"} + ] + }, "ImportApiKeys":{ "name":"ImportApiKeys", "http":{ @@ -1235,6 +1343,23 @@ {"shape":"ConflictException"} ] }, + "PutGatewayResponse":{ + "name":"PutGatewayResponse", + "http":{ + "method":"PUT", + "requestUri":"/restapis/{restapi_id}/gatewayresponses/{response_type}", + "responseCode":201 + }, + "input":{"shape":"PutGatewayResponseRequest"}, + "output":{"shape":"GatewayResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"TooManyRequestsException"} + ] + }, "PutIntegration":{ "name":"PutIntegration", "http":{ @@ -1495,6 +1620,21 @@ {"shape":"TooManyRequestsException"} ] }, + "UpdateGatewayResponse":{ + "name":"UpdateGatewayResponse", + "http":{ + "method":"PATCH", + "requestUri":"/restapis/{restapi_id}/gatewayresponses/{response_type}" + }, + "input":{"shape":"UpdateGatewayResponseRequest"}, + "output":{"shape":"GatewayResponse"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"TooManyRequestsException"} + ] + }, "UpdateIntegration":{ "name":"UpdateIntegration", "http":{ @@ -1670,9 +1810,32 @@ {"shape":"NotFoundException"}, {"shape":"ConflictException"} ] + }, + "UpdateVpcLink":{ + "name":"UpdateVpcLink", + "http":{ + "method":"PATCH", + "requestUri":"/vpclinks/{vpclink_id}" + }, + "input":{"shape":"UpdateVpcLinkRequest"}, + "output":{"shape":"VpcLink"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"TooManyRequestsException"} + ] } }, "shapes":{ + "AccessLogSettings":{ + "type":"structure", + "members":{ + "format":{"shape":"String"}, + "destinationArn":{"shape":"String"} + } + }, "Account":{ "type":"structure", "members":{ @@ -1744,6 +1907,7 @@ "type":"string", "enum":[ "TOKEN", + "REQUEST", "COGNITO_USER_POOLS" ] }, @@ -1808,6 +1972,15 @@ "FLUSH_IN_PROGRESS" ] }, + "CanarySettings":{ + "type":"structure", + "members":{ + "percentTraffic":{"shape":"Double"}, + "deploymentId":{"shape":"String"}, + "stageVariableOverrides":{"shape":"MapOfStringToString"}, + "useStageCache":{"shape":"Boolean"} + } + }, "ClientCertificate":{ "type":"structure", "members":{ @@ -1836,6 +2009,13 @@ "error":{"httpStatusCode":409}, "exception":true }, + "ConnectionType":{ + "type":"string", + "enum":[ + "INTERNET", + "VPC_LINK" + ] + }, "ContentHandlingStrategy":{ "type":"string", "enum":[ @@ -1860,8 +2040,7 @@ "required":[ "restApiId", "name", - "type", - "identitySource" + "type" ], "members":{ "restApiId":{ @@ -1911,7 +2090,8 @@ "description":{"shape":"String"}, "cacheClusterEnabled":{"shape":"NullableBoolean"}, "cacheClusterSize":{"shape":"CacheClusterSize"}, - "variables":{"shape":"MapOfStringToString"} + "variables":{"shape":"MapOfStringToString"}, + "canarySettings":{"shape":"DeploymentCanarySettings"} } }, "CreateDocumentationPartRequest":{ @@ -1957,7 +2137,10 @@ "certificateBody":{"shape":"String"}, "certificatePrivateKey":{"shape":"String"}, "certificateChain":{"shape":"String"}, - "certificateArn":{"shape":"String"} + "certificateArn":{"shape":"String"}, + "regionalCertificateName":{"shape":"String"}, + "regionalCertificateArn":{"shape":"String"}, + "endpointConfiguration":{"shape":"EndpointConfiguration"} } }, "CreateModelRequest":{ @@ -2022,7 +2205,8 @@ "description":{"shape":"String"}, "version":{"shape":"String"}, "cloneFrom":{"shape":"String"}, - "binaryMediaTypes":{"shape":"ListOfString"} + "binaryMediaTypes":{"shape":"ListOfString"}, + "endpointConfiguration":{"shape":"EndpointConfiguration"} } }, "CreateStageRequest":{ @@ -2044,7 +2228,8 @@ "cacheClusterEnabled":{"shape":"Boolean"}, "cacheClusterSize":{"shape":"CacheClusterSize"}, "variables":{"shape":"MapOfStringToString"}, - "documentationVersion":{"shape":"String"} + "documentationVersion":{"shape":"String"}, + "canarySettings":{"shape":"CanarySettings"} } }, "CreateUsagePlanKeyRequest":{ @@ -2075,6 +2260,18 @@ "quota":{"shape":"QuotaSettings"} } }, + "CreateVpcLinkRequest":{ + "type":"structure", + "required":[ + "name", + "targetArns" + ], + "members":{ + "name":{"shape":"String"}, + "description":{"shape":"String"}, + "targetArns":{"shape":"ListOfString"} + } + }, "DeleteApiKeyRequest":{ "type":"structure", "required":["apiKey"], @@ -2203,6 +2400,25 @@ } } }, + "DeleteGatewayResponseRequest":{ + "type":"structure", + "required":[ + "restApiId", + "responseType" + ], + "members":{ + "restApiId":{ + "shape":"String", + "location":"uri", + "locationName":"restapi_id" + }, + "responseType":{ + "shape":"GatewayResponseType", + "location":"uri", + "locationName":"response_type" + } + } + }, "DeleteIntegrationRequest":{ "type":"structure", "required":[ @@ -2432,6 +2648,17 @@ } } }, + "DeleteVpcLinkRequest":{ + "type":"structure", + "required":["vpcLinkId"], + "members":{ + "vpcLinkId":{ + "shape":"String", + "location":"uri", + "locationName":"vpclink_id" + } + } + }, "Deployment":{ "type":"structure", "members":{ @@ -2441,6 +2668,14 @@ "apiSummary":{"shape":"PathToMapOfMethodSnapshot"} } }, + "DeploymentCanarySettings":{ + "type":"structure", + "members":{ + "percentTraffic":{"shape":"Double"}, + "stageVariableOverrides":{"shape":"MapOfStringToString"}, + "useStageCache":{"shape":"Boolean"} + } + }, "Deployments":{ "type":"structure", "members":{ @@ -2533,7 +2768,13 @@ "certificateName":{"shape":"String"}, "certificateArn":{"shape":"String"}, "certificateUploadDate":{"shape":"Timestamp"}, - "distributionDomainName":{"shape":"String"} + "regionalDomainName":{"shape":"String"}, + "regionalHostedZoneId":{"shape":"String"}, + "regionalCertificateName":{"shape":"String"}, + "regionalCertificateArn":{"shape":"String"}, + "distributionDomainName":{"shape":"String"}, + "distributionHostedZoneId":{"shape":"String"}, + "endpointConfiguration":{"shape":"EndpointConfiguration"} } }, "DomainNames":{ @@ -2547,6 +2788,19 @@ } }, "Double":{"type":"double"}, + "EndpointConfiguration":{ + "type":"structure", + "members":{ + "types":{"shape":"ListOfEndpointType"} + } + }, + "EndpointType":{ + "type":"string", + "enum":[ + "REGIONAL", + "EDGE" + ] + }, "ExportResponse":{ "type":"structure", "members":{ @@ -2602,6 +2856,51 @@ } } }, + "GatewayResponse":{ + "type":"structure", + "members":{ + "responseType":{"shape":"GatewayResponseType"}, + "statusCode":{"shape":"StatusCode"}, + "responseParameters":{"shape":"MapOfStringToString"}, + "responseTemplates":{"shape":"MapOfStringToString"}, + "defaultResponse":{"shape":"Boolean"} + } + }, + "GatewayResponseType":{ + "type":"string", + "enum":[ + "DEFAULT_4XX", + "DEFAULT_5XX", + "RESOURCE_NOT_FOUND", + "UNAUTHORIZED", + "INVALID_API_KEY", + "ACCESS_DENIED", + "AUTHORIZER_FAILURE", + "AUTHORIZER_CONFIGURATION_ERROR", + "INVALID_SIGNATURE", + "EXPIRED_TOKEN", + "MISSING_AUTHENTICATION_TOKEN", + "INTEGRATION_FAILURE", + "INTEGRATION_TIMEOUT", + "API_CONFIGURATION_ERROR", + "UNSUPPORTED_MEDIA_TYPE", + "BAD_REQUEST_PARAMETERS", + "BAD_REQUEST_BODY", + "REQUEST_TOO_LARGE", + "THROTTLED", + "QUOTA_EXCEEDED" + ] + }, + "GatewayResponses":{ + "type":"structure", + "members":{ + "position":{"shape":"String"}, + "items":{ + "shape":"ListOfGatewayResponse", + "locationName":"item" + } + } + }, "GenerateClientCertificateRequest":{ "type":"structure", "members":{ @@ -2862,6 +3161,11 @@ "shape":"NullableInteger", "location":"querystring", "locationName":"limit" + }, + "locationStatus":{ + "shape":"LocationStatusType", + "location":"querystring", + "locationName":"locationStatus" } } }, @@ -2965,6 +3269,46 @@ } } }, + "GetGatewayResponseRequest":{ + "type":"structure", + "required":[ + "restApiId", + "responseType" + ], + "members":{ + "restApiId":{ + "shape":"String", + "location":"uri", + "locationName":"restapi_id" + }, + "responseType":{ + "shape":"GatewayResponseType", + "location":"uri", + "locationName":"response_type" + } + } + }, + "GetGatewayResponsesRequest":{ + "type":"structure", + "required":["restApiId"], + "members":{ + "restApiId":{ + "shape":"String", + "location":"uri", + "locationName":"restapi_id" + }, + "position":{ + "shape":"String", + "location":"querystring", + "locationName":"position" + }, + "limit":{ + "shape":"NullableInteger", + "location":"querystring", + "locationName":"limit" + } + } + }, "GetIntegrationRequest":{ "type":"structure", "required":[ @@ -3463,6 +3807,32 @@ } } }, + "GetVpcLinkRequest":{ + "type":"structure", + "required":["vpcLinkId"], + "members":{ + "vpcLinkId":{ + "shape":"String", + "location":"uri", + "locationName":"vpclink_id" + } + } + }, + "GetVpcLinksRequest":{ + "type":"structure", + "members":{ + "position":{ + "shape":"String", + "location":"querystring", + "locationName":"position" + }, + "limit":{ + "shape":"NullableInteger", + "location":"querystring", + "locationName":"limit" + } + } + }, "ImportApiKeysRequest":{ "type":"structure", "required":[ @@ -3534,11 +3904,14 @@ "type":{"shape":"IntegrationType"}, "httpMethod":{"shape":"String"}, "uri":{"shape":"String"}, + "connectionType":{"shape":"ConnectionType"}, + "connectionId":{"shape":"String"}, "credentials":{"shape":"String"}, "requestParameters":{"shape":"MapOfStringToString"}, "requestTemplates":{"shape":"MapOfStringToString"}, "passthroughBehavior":{"shape":"String"}, "contentHandling":{"shape":"ContentHandlingStrategy"}, + "timeoutInMillis":{"shape":"Integer"}, "cacheNamespace":{"shape":"String"}, "cacheKeyParameters":{"shape":"ListOfString"}, "integrationResponses":{"shape":"MapOfIntegrationResponse"} @@ -3617,6 +3990,14 @@ "type":"list", "member":{"shape":"DomainName"} }, + "ListOfEndpointType":{ + "type":"list", + "member":{"shape":"EndpointType"} + }, + "ListOfGatewayResponse":{ + "type":"list", + "member":{"shape":"GatewayResponse"} + }, "ListOfLong":{ "type":"list", "member":{"shape":"Long"} @@ -3673,6 +4054,17 @@ "type":"list", "member":{"shape":"UsagePlanKey"} }, + "ListOfVpcLink":{ + "type":"list", + "member":{"shape":"VpcLink"} + }, + "LocationStatusType":{ + "type":"string", + "enum":[ + "DOCUMENTED", + "UNDOCUMENTED" + ] + }, "Long":{"type":"long"}, "MapOfHeaderValues":{ "type":"map", @@ -3825,6 +4217,28 @@ "value":{"shape":"MapOfMethodSnapshot"} }, "ProviderARN":{"type":"string"}, + "PutGatewayResponseRequest":{ + "type":"structure", + "required":[ + "restApiId", + "responseType" + ], + "members":{ + "restApiId":{ + "shape":"String", + "location":"uri", + "locationName":"restapi_id" + }, + "responseType":{ + "shape":"GatewayResponseType", + "location":"uri", + "locationName":"response_type" + }, + "statusCode":{"shape":"StatusCode"}, + "responseParameters":{"shape":"MapOfStringToString"}, + "responseTemplates":{"shape":"MapOfStringToString"} + } + }, "PutIntegrationRequest":{ "type":"structure", "required":[ @@ -3855,13 +4269,16 @@ "locationName":"httpMethod" }, "uri":{"shape":"String"}, + "connectionType":{"shape":"ConnectionType"}, + "connectionId":{"shape":"String"}, "credentials":{"shape":"String"}, "requestParameters":{"shape":"MapOfStringToString"}, "requestTemplates":{"shape":"MapOfStringToString"}, "passthroughBehavior":{"shape":"String"}, "cacheNamespace":{"shape":"String"}, "cacheKeyParameters":{"shape":"ListOfString"}, - "contentHandling":{"shape":"ContentHandlingStrategy"} + "contentHandling":{"shape":"ContentHandlingStrategy"}, + "timeoutInMillis":{"shape":"NullableInteger"} } }, "PutIntegrationResponseRequest":{ @@ -4066,7 +4483,8 @@ "createdDate":{"shape":"Timestamp"}, "version":{"shape":"String"}, "warnings":{"shape":"ListOfString"}, - "binaryMediaTypes":{"shape":"ListOfString"} + "binaryMediaTypes":{"shape":"ListOfString"}, + "endpointConfiguration":{"shape":"EndpointConfiguration"} } }, "RestApis":{ @@ -4152,6 +4570,8 @@ "methodSettings":{"shape":"MapOfMethodSettings"}, "variables":{"shape":"MapOfStringToString"}, "documentationVersion":{"shape":"String"}, + "accessLogSettings":{"shape":"AccessLogSettings"}, + "canarySettings":{"shape":"CanarySettings"}, "createdDate":{"shape":"Timestamp"}, "lastUpdatedDate":{"shape":"Timestamp"} } @@ -4435,6 +4855,26 @@ "patchOperations":{"shape":"ListOfPatchOperation"} } }, + "UpdateGatewayResponseRequest":{ + "type":"structure", + "required":[ + "restApiId", + "responseType" + ], + "members":{ + "restApiId":{ + "shape":"String", + "location":"uri", + "locationName":"restapi_id" + }, + "responseType":{ + "shape":"GatewayResponseType", + "location":"uri", + "locationName":"response_type" + }, + "patchOperations":{"shape":"ListOfPatchOperation"} + } + }, "UpdateIntegrationRequest":{ "type":"structure", "required":[ @@ -4675,6 +5115,18 @@ "patchOperations":{"shape":"ListOfPatchOperation"} } }, + "UpdateVpcLinkRequest":{ + "type":"structure", + "required":["vpcLinkId"], + "members":{ + "vpcLinkId":{ + "shape":"String", + "location":"uri", + "locationName":"vpclink_id" + }, + "patchOperations":{"shape":"ListOfPatchOperation"} + } + }, "Usage":{ "type":"structure", "members":{ @@ -4728,6 +5180,36 @@ "locationName":"item" } } + }, + "VpcLink":{ + "type":"structure", + "members":{ + "id":{"shape":"String"}, + "name":{"shape":"String"}, + "description":{"shape":"String"}, + "targetArns":{"shape":"ListOfString"}, + "status":{"shape":"VpcLinkStatus"}, + "statusMessage":{"shape":"String"} + } + }, + "VpcLinkStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "PENDING", + "DELETING", + "FAILED" + ] + }, + "VpcLinks":{ + "type":"structure", + "members":{ + "position":{"shape":"String"}, + "items":{ + "shape":"ListOfVpcLink", + "locationName":"item" + } + } } } } diff --git a/models/apis/apigateway/2015-07-09/docs-2.json b/models/apis/apigateway/2015-07-09/docs-2.json index 2e39b1e43b7..c537915b738 100644 --- a/models/apis/apigateway/2015-07-09/docs-2.json +++ b/models/apis/apigateway/2015-07-09/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "Amazon API Gateway

Amazon API Gateway helps developers deliver robust, secure, and scalable mobile and web application back ends. Amazon API Gateway allows developers to securely connect mobile and web applications to APIs that run on AWS Lambda, Amazon EC2, or other publicly addressable web services that are hosted outside of AWS.

", + "service": "Amazon API Gateway

Amazon API Gateway helps developers deliver robust, secure, and scalable mobile and web application back ends. API Gateway allows developers to securely connect mobile and web applications to APIs that run on AWS Lambda, Amazon EC2, or other publicly addressable web services that are hosted outside of AWS.

", "operations": { "CreateApiKey": "

Create an ApiKey resource.

", "CreateAuthorizer": "

Adds a new Authorizer resource to an existing RestApi resource.

", @@ -16,6 +16,7 @@ "CreateStage": "

Creates a new Stage resource that references a pre-existing Deployment for the API.

", "CreateUsagePlan": "

Creates a usage plan with the throttle and quota limits, as well as the associated API stages, specified in the payload.

", "CreateUsagePlanKey": "

Creates a usage plan key for adding an existing API key to a usage plan.

", + "CreateVpcLink": "

Creates a VPC link, under the caller's account in a selected region, in an asynchronous operation that typically takes 2-4 minutes to complete and become operational. The caller must have permissions to create and update VPC Endpoint services.

", "DeleteApiKey": "

Deletes the ApiKey resource.

", "DeleteAuthorizer": "

Deletes an existing Authorizer resource.

", "DeleteBasePathMapping": "

Deletes the BasePathMapping resource.

", @@ -24,6 +25,7 @@ "DeleteDocumentationPart": null, "DeleteDocumentationVersion": null, "DeleteDomainName": "

Deletes the DomainName resource.

", + "DeleteGatewayResponse": "

Clears any customization of a GatewayResponse of a specified response type on the given RestApi and resets it with the default settings.

", "DeleteIntegration": "

Represents a delete integration.

", "DeleteIntegrationResponse": "

Represents a delete integration response.

", "DeleteMethod": "

Deletes an existing Method resource.

", @@ -35,6 +37,7 @@ "DeleteStage": "

Deletes a Stage resource.

", "DeleteUsagePlan": "

Deletes a usage plan of a given plan Id.

", "DeleteUsagePlanKey": "

Deletes a usage plan key and remove the underlying API key from the associated usage plan.

", + "DeleteVpcLink": "

Deletes an existing VpcLink of a specified identifier.

", "FlushStageAuthorizersCache": "

Flushes all authorizer cache entries on a stage.

", "FlushStageCache": "

Flushes a stage's cache.

", "GenerateClientCertificate": "

Generates a ClientCertificate resource.

", @@ -56,7 +59,9 @@ "GetDomainName": "

Represents a domain name that is contained in a simpler, more intuitive URL that can be called.

", "GetDomainNames": "

Represents a collection of DomainName resources.

", "GetExport": "

Exports a deployed version of a RestApi in a specified format.

", - "GetIntegration": "

Represents a get integration.

", + "GetGatewayResponse": "

Gets a GatewayResponse of a specified response type on the given RestApi.

", + "GetGatewayResponses": "

Gets the GatewayResponses collection on the given RestApi. If an API developer has not added any definitions for gateway responses, the result will be the API Gateway-generated default GatewayResponses collection for the supported response types.

", + "GetIntegration": "

Get the integration settings.

", "GetIntegrationResponse": "

Represents a get integration response.

", "GetMethod": "

Describe an existing Method resource.

", "GetMethodResponse": "

Describes a MethodResponse resource.

", @@ -79,14 +84,17 @@ "GetUsagePlanKey": "

Gets a usage plan key of a given key identifier.

", "GetUsagePlanKeys": "

Gets all the usage plan keys representing the API keys added to a specified usage plan.

", "GetUsagePlans": "

Gets all the usage plans of the caller's account.

", + "GetVpcLink": "

Gets a specified VPC link under the caller's account in a region.

", + "GetVpcLinks": "

Gets the VpcLinks collection under the caller's account in a selected region.

", "ImportApiKeys": "

Import API keys from an external source, such as a CSV-formatted file.

", "ImportDocumentationParts": null, - "ImportRestApi": "

A feature of the Amazon API Gateway control service for creating a new API from an external API definition file.

", - "PutIntegration": "

Represents a put integration.

", + "ImportRestApi": "

A feature of the API Gateway control service for creating a new API from an external API definition file.

", + "PutGatewayResponse": "

Creates a customization of a GatewayResponse of a specified response type and status code on the given RestApi.

", + "PutIntegration": "

Sets up a method's integration.

", "PutIntegrationResponse": "

Represents a put integration.

", "PutMethod": "

Add a method to an existing Resource resource.

", "PutMethodResponse": "

Adds a MethodResponse to an existing Method resource.

", - "PutRestApi": "

A feature of the Amazon API Gateway control service for updating an existing API with an input of external API definitions. The update can take the form of merging the supplied definition into the existing API or overwriting the existing API.

", + "PutRestApi": "

A feature of the API Gateway control service for updating an existing API with an input of external API definitions. The update can take the form of merging the supplied definition into the existing API or overwriting the existing API.

", "TestInvokeAuthorizer": "

Simulate the execution of an Authorizer in your RestApi with headers, parameters, and an incoming request body.

", "TestInvokeMethod": "

Simulate the execution of a Method in your RestApi with headers, parameters, and an incoming request body.

", "UpdateAccount": "

Changes information about the current Account resource.

", @@ -98,6 +106,7 @@ "UpdateDocumentationPart": null, "UpdateDocumentationVersion": null, "UpdateDomainName": "

Changes information about the DomainName resource.

", + "UpdateGatewayResponse": "

Updates a GatewayResponse of a specified response type on the given RestApi.

", "UpdateIntegration": "

Represents an update integration.

", "UpdateIntegrationResponse": "

Represents an update integration response.

", "UpdateMethod": "

Updates an existing Method resource.

", @@ -107,12 +116,19 @@ "UpdateResource": "

Changes information about a Resource resource.

", "UpdateRestApi": "

Changes information about the specified API.

", "UpdateStage": "

Changes information about a Stage resource.

", - "UpdateUsage": "

Grants a temporary extension to the reamining quota of a usage plan associated with a specified API key.

", - "UpdateUsagePlan": "

Updates a usage plan of a given plan Id.

" + "UpdateUsage": "

Grants a temporary extension to the remaining quota of a usage plan associated with a specified API key.

", + "UpdateUsagePlan": "

Updates a usage plan of a given plan Id.

", + "UpdateVpcLink": "

Updates an existing VpcLink of a specified identifier.

" }, "shapes": { + "AccessLogSettings": { + "base": "

Access log settings, including the access log format and access log destination ARN.

", + "refs": { + "Stage$accessLogSettings": "

Settings for logging access in this stage.

" + } + }, "Account": { - "base": "

Represents an AWS account that is associated with Amazon API Gateway.

To view the account info, call GET on this resource.

Error Codes

The following exception may be thrown when the request fails.

  • UnauthorizedException
  • NotFoundException
  • TooManyRequestsException

For detailed error code information, including the corresponding HTTP Status Codes, see API Gateway Error Codes

Example: Get the information about an account.

Request
GET /account HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160531T184618Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} 
Response

The successful response returns a 200 OK status code and a payload similar to the following:

{ \"_links\": { \"curies\": { \"href\": \"http://docs.aws.amazon.com/apigateway/latest/developerguide/account-apigateway-{rel}.html\", \"name\": \"account\", \"templated\": true }, \"self\": { \"href\": \"/account\" }, \"account:update\": { \"href\": \"/account\" } }, \"cloudwatchRoleArn\": \"arn:aws:iam::123456789012:role/apigAwsProxyRole\", \"throttleSettings\": { \"rateLimit\": 500, \"burstLimit\": 1000 } } 

In addition to making the REST API call directly, you can use the AWS CLI and an AWS SDK to access this resource.

", + "base": "

Represents an AWS account that is associated with API Gateway.

To view the account info, call GET on this resource.

Error Codes

The following exception may be thrown when the request fails.

  • UnauthorizedException
  • NotFoundException
  • TooManyRequestsException

For detailed error code information, including the corresponding HTTP Status Codes, see API Gateway Error Codes

Example: Get the information about an account.

Request
GET /account HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160531T184618Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} 
Response

The successful response returns a 200 OK status code and a payload similar to the following:

{ \"_links\": { \"curies\": { \"href\": \"http://docs.aws.amazon.com/apigateway/latest/developerguide/account-apigateway-{rel}.html\", \"name\": \"account\", \"templated\": true }, \"self\": { \"href\": \"/account\" }, \"account:update\": { \"href\": \"/account\" } }, \"cloudwatchRoleArn\": \"arn:aws:iam::123456789012:role/apigAwsProxyRole\", \"throttleSettings\": { \"rateLimit\": 500, \"burstLimit\": 1000 } } 

In addition to making the REST API call directly, you can use the AWS CLI and an AWS SDK to access this resource.

", "refs": { } }, @@ -151,10 +167,10 @@ } }, "AuthorizerType": { - "base": "

The authorizer type. the current value is TOKEN for a Lambda function or COGNITO_USER_POOLS for an Amazon Cognito Your User Pool.

", + "base": "

[Required] The authorizer type. Valid values are TOKEN for a Lambda function using a single authorization token submitted in a custom header, REQUEST for a Lambda function using incoming request parameters, and COGNITO_USER_POOLS for using an Amazon Cognito user pool.

", "refs": { - "Authorizer$type": "

[Required] The type of the authorizer. Currently, the valid type is TOKEN for a Lambda function or COGNITO_USER_POOLS for an Amazon Cognito user pool.

", - "CreateAuthorizerRequest$type": "

[Required] The type of the authorizer.

" + "Authorizer$type": "

[Required] The authorizer type. Valid values are TOKEN for a Lambda function using a single authorization token submitted in a custom header, REQUEST for a Lambda function using incoming request parameters, and COGNITO_USER_POOLS for using an Amazon Cognito user pool.

", + "CreateAuthorizerRequest$type": "

[Required] The authorizer type. Valid values are TOKEN for a Lambda function using a single authorization token submitted in a custom header, REQUEST for a Lambda function using incoming request parameters, and COGNITO_USER_POOLS for using an Amazon Cognito user pool.

" } }, "Authorizers": { @@ -163,7 +179,7 @@ } }, "BadRequestException": { - "base": null, + "base": "

The submitted request is not valid, for example, the input is incomplete or incorrect. See the accompanying error message for details.

", "refs": { } }, @@ -184,8 +200,8 @@ "ExportResponse$body": "

The binary blob response to GetExport, which contains the export.

", "ImportApiKeysRequest$body": "

The payload of the POST request to import API keys. For the payload format, see API Key File Format.

", "ImportDocumentationPartsRequest$body": "

[Required] Raw byte array representing the to-be-imported documentation parts. To import from a Swagger file, this is a JSON object.

", - "ImportRestApiRequest$body": "

The POST request body containing external API definitions. Currently, only Swagger definition JSON files are supported.

", - "PutRestApiRequest$body": "

The PUT request body containing external API definitions. Currently, only Swagger definition JSON files are supported.

", + "ImportRestApiRequest$body": "

The POST request body containing external API definitions. Currently, only Swagger definition JSON files are supported. The maximum size of the API definition file is 2MB.

", + "PutRestApiRequest$body": "

The PUT request body containing external API definitions. Currently, only Swagger definition JSON files are supported. The maximum size of the API definition file is 2MB.

", "SdkResponse$body": "

The binary blob response to GetSdk, which contains the generated SDK.

" } }, @@ -193,11 +209,14 @@ "base": null, "refs": { "ApiKey$enabled": "

Specifies whether the API Key can be used by callers.

", + "CanarySettings$useStageCache": "

A Boolean flag to indicate whether the canary deployment uses the stage cache or not.

", "CreateApiKeyRequest$enabled": "

Specifies whether the ApiKey can be used by callers.

", "CreateApiKeyRequest$generateDistinctId": "

Specifies whether (true) or not (false) the key identifier is distinct from the created API key value.

", "CreateRequestValidatorRequest$validateRequestBody": "

A Boolean flag to indicate whether to validate request body according to the configured model schema for the method (true) or not (false).

", "CreateRequestValidatorRequest$validateRequestParameters": "

A Boolean flag to indicate whether to validate request parameters, true, or not false.

", "CreateStageRequest$cacheClusterEnabled": "

Whether cache clustering is enabled for the stage.

", + "DeploymentCanarySettings$useStageCache": "

A Boolean flag to indicate whether the canary release deployment uses the stage cache or not.

", + "GatewayResponse$defaultResponse": "

A Boolean flag to indicate whether this GatewayResponse is the default gateway response (true) or not (false). A default gateway response is one generated by API Gateway without any customization by an API developer.

", "GetModelRequest$flatten": "

A query parameter of a Boolean value to resolve (true) all external model references and returns a flattened model schema or not (false) The default is false.

", "ImportApiKeysRequest$failOnWarnings": "

A query parameter to indicate whether to rollback ApiKey importation (true) or not (false) when error is encountered.

", "ImportDocumentationPartsRequest$failOnWarnings": "

A query parameter to specify whether to rollback the documentation importation (true) or not (false) when a warning is encountered. The default value is false.

", @@ -230,8 +249,15 @@ "Stage$cacheClusterStatus": "

The status of the cache cluster for the stage, if enabled.

" } }, + "CanarySettings": { + "base": "

Configuration settings of a canary deployment.

", + "refs": { + "CreateStageRequest$canarySettings": "

The canary deployment settings of this stage.

", + "Stage$canarySettings": "

Settings for the canary deployment in this stage.

" + } + }, "ClientCertificate": { - "base": "

Represents a client certificate used to configure client-side SSL authentication while sending requests to the integration endpoint.

Client certificates are used authenticate an API by the back-end server. To authenticate an API client (or user), use a custom Authorizer.
", + "base": "

Represents a client certificate used to configure client-side SSL authentication while sending requests to the integration endpoint.

Client certificates are used to authenticate an API by the backend server. To authenticate an API client (or user), use IAM roles and policies, a custom Authorizer or an Amazon Cognito user pool.
", "refs": { "ListOfClientCertificate$member": null } @@ -242,8 +268,15 @@ } }, "ConflictException": { + "base": "

The request configuration has conflicts. For details, see the accompanying error message.

", + "refs": { + } + }, + "ConnectionType": { "base": null, "refs": { + "Integration$connectionType": "

The type of the network connection to the integration endpoint. The valid value is INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and an network load balancer in a VPC. The default value is INTERNET.

", + "PutIntegrationRequest$connectionType": "

The type of the network connection to the integration endpoint. The valid value is INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and an network load balancer in a VPC. The default value is INTERNET.

" } }, "ContentHandlingStrategy": { @@ -266,12 +299,12 @@ } }, "CreateBasePathMappingRequest": { - "base": "

Requests Amazon API Gateway to create a new BasePathMapping resource.

", + "base": "

Requests API Gateway to create a new BasePathMapping resource.

", "refs": { } }, "CreateDeploymentRequest": { - "base": "

Requests Amazon API Gateway to create a Deployment resource.

", + "base": "

Requests API Gateway to create a Deployment resource.

", "refs": { } }, @@ -301,7 +334,7 @@ } }, "CreateResourceRequest": { - "base": "

Requests Amazon API Gateway to create a Resource resource.

", + "base": "

Requests API Gateway to create a Resource resource.

", "refs": { } }, @@ -311,7 +344,7 @@ } }, "CreateStageRequest": { - "base": "

Requests Amazon API Gateway to create a Stage resource.

", + "base": "

Requests API Gateway to create a Stage resource.

", "refs": { } }, @@ -325,6 +358,11 @@ "refs": { } }, + "CreateVpcLinkRequest": { + "base": "

Creates a VPC link, under the caller's account in a selected region, in an asynchronous operation that typically takes 2-4 minutes to complete and become operational. The caller must have permissions to create and update VPC Endpoint services.

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

A request to delete the ApiKey resource.

", "refs": { @@ -346,7 +384,7 @@ } }, "DeleteDeploymentRequest": { - "base": "

Requests Amazon API Gateway to delete a Deployment resource.

", + "base": "

Requests API Gateway to delete a Deployment resource.

", "refs": { } }, @@ -365,6 +403,11 @@ "refs": { } }, + "DeleteGatewayResponseRequest": { + "base": "

Clears any customization of a GatewayResponse of a specified response type on the given RestApi and resets it with the default settings.

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

Represents a delete integration request.

", "refs": { @@ -406,7 +449,7 @@ } }, "DeleteStageRequest": { - "base": "

Requests Amazon API Gateway to delete a Stage resource.

", + "base": "

Requests API Gateway to delete a Stage resource.

", "refs": { } }, @@ -416,7 +459,12 @@ } }, "DeleteUsagePlanRequest": { - "base": "

The DELETE request to delete a uasge plan of a given plan Id.

", + "base": "

The DELETE request to delete a usage plan of a given plan Id.

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

Deletes an existing VpcLink of a specified identifier.

", "refs": { } }, @@ -426,6 +474,12 @@ "ListOfDeployment$member": null } }, + "DeploymentCanarySettings": { + "base": "

The input configuration for a canary deployment.

", + "refs": { + "CreateDeploymentRequest$canarySettings": "

The input configuration for the canary deployment when the deployment is a canary release deployment.

" + } + }, "Deployments": { "base": "

Represents a collection resource that contains zero or more references to your existing deployments, and links that guide you on how to interact with your collection. The collection offers a paginated view of the contained deployments.

To create a new deployment of a RestApi, make a POST request against this resource. To view, update, or delete an existing deployment, make a GET, PATCH, or DELETE request, respectively, on a specified Deployment resource.
", "refs": { @@ -438,7 +492,7 @@ } }, "DocumentationPartIds": { - "base": "

A collection of the imported DocumentationPart identifiers.

This is used to return the result when documentation parts in an external (e.g., Swagger) file are imported into Amazon API Gateway
", + "base": "

A collection of the imported DocumentationPart identifiers.

This is used to return the result when documentation parts in an external (e.g., Swagger) file are imported into API Gateway
", "refs": { } }, @@ -458,7 +512,7 @@ "DocumentationPartType": { "base": null, "refs": { - "DocumentationPartLocation$type": "

The type of API entity to which the documentation content applies. It is a valid and required field for API entity types of API, AUTHORIZER, MODEL, RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. Content inheritance does not apply to any entity of the API, AUTHROZER, METHOD, MODEL, REQUEST_BODY, or RESOURCE type.

", + "DocumentationPartLocation$type": "

The type of API entity to which the documentation content applies. It is a valid and required field for API entity types of API, AUTHORIZER, MODEL, RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. Content inheritance does not apply to any entity of the API, AUTHORIZER, METHOD, MODEL, REQUEST_BODY, or RESOURCE type.

", "GetDocumentationPartsRequest$type": "

The type of API entities of the to-be-retrieved documentation parts.

" } }, @@ -479,7 +533,7 @@ } }, "DomainName": { - "base": "

Represents a domain name that is contained in a simpler, more intuitive URL that can be called.

", + "base": "

Represents a custom domain name as a user-friendly host name of an API (RestApi).

When you deploy an API, API Gateway creates a default host name for the API. This default API host name is of the {restapi-id}.execute-api.{region}.amazonaws.com format. With the default host name, you can access the API's root resource with the URL of https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/. When you set up a custom domain name of apis.example.com for this API, you can then access the same resource using the URL of the https://apis.examples.com/myApi, where myApi is the base path mapping (BasePathMapping) of your API under the custom domain name.

", "refs": { "ListOfDomainName$member": null } @@ -492,10 +546,27 @@ "Double": { "base": null, "refs": { + "CanarySettings$percentTraffic": "

The percent (0-100) of traffic diverted to a canary deployment.

", + "DeploymentCanarySettings$percentTraffic": "

The percentage (0.0-100.0) of traffic routed to the canary deployment.

", "MethodSetting$throttlingRateLimit": "

Specifies the throttling rate limit. The PATCH path for this setting is /{method_setting_key}/throttling/rateLimit, and the value is a double.

", "ThrottleSettings$rateLimit": "

The API request steady-state rate limit.

" } }, + "EndpointConfiguration": { + "base": "

The endpoint configuration to indicate the types of endpoints an API (RestApi) or its custom domain name (DomainName) has.

", + "refs": { + "CreateDomainNameRequest$endpointConfiguration": "

The endpoint configuration of this DomainName showing the endpoint types of the domain name.

", + "CreateRestApiRequest$endpointConfiguration": "

The endpoint configuration of this RestApi showing the endpoint types of the API.

", + "DomainName$endpointConfiguration": "

The endpoint configuration of this DomainName showing the endpoint types of the domain name.

", + "RestApi$endpointConfiguration": "

The endpoint configuration of this RestApi showing the endpoint types of the API.

" + } + }, + "EndpointType": { + "base": "

The endpoint type. The valid value is EDGE for edge-optimized API setup, most suitable for mobile applications, REGIONAL for regional API endpoint setup, most suitable for calling from AWS Region

", + "refs": { + "ListOfEndpointType$member": null + } + }, "ExportResponse": { "base": "

The binary blob response to GetExport, which contains the generated SDK.

", "refs": { @@ -507,7 +578,28 @@ } }, "FlushStageCacheRequest": { - "base": "

Requests Amazon API Gateway to flush a stage's cache.

", + "base": "

Requests API Gateway to flush a stage's cache.

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

A gateway response of a given response type and status code, with optional response parameters and mapping templates.

For more information about valid gateway response types, see Gateway Response Types Supported by API Gateway

Example: Get a Gateway Response of a given response type

Request

This example shows how to get a gateway response of the MISSING_AUTHNETICATION_TOKEN type.

GET /restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN HTTP/1.1 Host: beta-apigateway.us-east-1.amazonaws.com Content-Type: application/json X-Amz-Date: 20170503T202516Z Authorization: AWS4-HMAC-SHA256 Credential={access-key-id}/20170503/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=1b52460e3159c1a26cff29093855d50ea141c1c5b937528fecaf60f51129697a Cache-Control: no-cache Postman-Token: 3b2a1ce9-c848-2e26-2e2f-9c2caefbed45 

The response type is specified as a URL path.

Response

The successful operation returns the 200 OK status code and a payload similar to the following:

{ \"_links\": { \"curies\": { \"href\": \"http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html\", \"name\": \"gatewayresponse\", \"templated\": true }, \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN\" }, \"gatewayresponse:delete\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN\" } }, \"defaultResponse\": false, \"responseParameters\": { \"gatewayresponse.header.x-request-path\": \"method.request.path.petId\", \"gatewayresponse.header.Access-Control-Allow-Origin\": \"'a.b.c'\", \"gatewayresponse.header.x-request-query\": \"method.request.querystring.q\", \"gatewayresponse.header.x-request-header\": \"method.request.header.Accept\" }, \"responseTemplates\": { \"application/json\": \"{\\n \\\"message\\\": $context.error.messageString,\\n \\\"type\\\": \\\"$context.error.responseType\\\",\\n \\\"stage\\\": \\\"$context.stage\\\",\\n \\\"resourcePath\\\": \\\"$context.resourcePath\\\",\\n \\\"stageVariables.a\\\": \\\"$stageVariables.a\\\",\\n \\\"statusCode\\\": \\\"'404'\\\"\\n}\" }, \"responseType\": \"MISSING_AUTHENTICATION_TOKEN\", \"statusCode\": \"404\" }

", + "refs": { + "ListOfGatewayResponse$member": null + } + }, + "GatewayResponseType": { + "base": null, + "refs": { + "DeleteGatewayResponseRequest$responseType": "

The response type of the associated GatewayResponse. Valid values are

", + "GatewayResponse$responseType": "

The response type of the associated GatewayResponse. Valid values are

", + "GetGatewayResponseRequest$responseType": "

The response type of the associated GatewayResponse. Valid values are

", + "PutGatewayResponseRequest$responseType": "

The response type of the associated GatewayResponse. Valid values are

", + "UpdateGatewayResponseRequest$responseType": "

The response type of the associated GatewayResponse. Valid values are

" + } + }, + "GatewayResponses": { + "base": "

The collection of the GatewayResponse instances of a RestApi as a responseType-to-GatewayResponse object map of key-value pairs. As such, pagination is not supported for querying this collection.

For more information about valid gateway response types, see Gateway Response Types Supported by API Gateway

Example: Get the collection of gateway responses of an API

Request

This example request shows how to retrieve the GatewayResponses collection from an API.

GET /restapis/o81lxisefl/gatewayresponses HTTP/1.1 Host: beta-apigateway.us-east-1.amazonaws.com Content-Type: application/json X-Amz-Date: 20170503T220604Z Authorization: AWS4-HMAC-SHA256 Credential={access-key-id}/20170503/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=59b42fe54a76a5de8adf2c67baa6d39206f8e9ad49a1d77ccc6a5da3103a398a Cache-Control: no-cache Postman-Token: 5637af27-dc29-fc5c-9dfe-0645d52cb515 

Response

The successful operation returns the 200 OK status code and a payload similar to the following:

{ \"_links\": { \"curies\": { \"href\": \"http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html\", \"name\": \"gatewayresponse\", \"templated\": true }, \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses\" }, \"first\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses\" }, \"gatewayresponse:by-type\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"item\": [ { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/THROTTLED\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE\" }, { \"href\": \"/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE\" } ] }, \"_embedded\": { \"item\": [ { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INTEGRATION_FAILURE\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"INTEGRATION_FAILURE\", \"statusCode\": \"504\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/RESOURCE_NOT_FOUND\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"RESOURCE_NOT_FOUND\", \"statusCode\": \"404\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/REQUEST_TOO_LARGE\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"REQUEST_TOO_LARGE\", \"statusCode\": \"413\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/THROTTLED\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/THROTTLED\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"THROTTLED\", \"statusCode\": \"429\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/UNSUPPORTED_MEDIA_TYPE\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"UNSUPPORTED_MEDIA_TYPE\", \"statusCode\": \"415\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_CONFIGURATION_ERROR\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"AUTHORIZER_CONFIGURATION_ERROR\", \"statusCode\": \"500\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/DEFAULT_5XX\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"DEFAULT_5XX\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/DEFAULT_4XX\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"DEFAULT_4XX\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_PARAMETERS\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"BAD_REQUEST_PARAMETERS\", \"statusCode\": \"400\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/BAD_REQUEST_BODY\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"BAD_REQUEST_BODY\", \"statusCode\": \"400\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/EXPIRED_TOKEN\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"EXPIRED_TOKEN\", \"statusCode\": \"403\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/ACCESS_DENIED\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"ACCESS_DENIED\", \"statusCode\": \"403\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INVALID_API_KEY\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"INVALID_API_KEY\", \"statusCode\": \"403\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/UNAUTHORIZED\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"UNAUTHORIZED\", \"statusCode\": \"401\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/API_CONFIGURATION_ERROR\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"API_CONFIGURATION_ERROR\", \"statusCode\": \"500\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/QUOTA_EXCEEDED\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"QUOTA_EXCEEDED\", \"statusCode\": \"429\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INTEGRATION_TIMEOUT\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"INTEGRATION_TIMEOUT\", \"statusCode\": \"504\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"MISSING_AUTHENTICATION_TOKEN\", \"statusCode\": \"403\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/INVALID_SIGNATURE\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"INVALID_SIGNATURE\", \"statusCode\": \"403\" }, { \"_links\": { \"self\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE\" }, \"gatewayresponse:put\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/{response_type}\", \"templated\": true }, \"gatewayresponse:update\": { \"href\": \"/restapis/o81lxisefl/gatewayresponses/AUTHORIZER_FAILURE\" } }, \"defaultResponse\": true, \"responseParameters\": {}, \"responseTemplates\": { \"application/json\": \"{\\\"message\\\":$context.error.messageString}\" }, \"responseType\": \"AUTHORIZER_FAILURE\", \"statusCode\": \"500\" } ] } }

", "refs": { } }, @@ -517,7 +609,7 @@ } }, "GetAccountRequest": { - "base": "

Requests Amazon API Gateway to get information about the current Account resource.

", + "base": "

Requests API Gateway to get information about the current Account resource.

", "refs": { } }, @@ -562,12 +654,12 @@ } }, "GetDeploymentRequest": { - "base": "

Requests Amazon API Gateway to get information about a Deployment resource.

", + "base": "

Requests API Gateway to get information about a Deployment resource.

", "refs": { } }, "GetDeploymentsRequest": { - "base": "

Requests Amazon API Gateway to get information about a Deployments collection.

", + "base": "

Requests API Gateway to get information about a Deployments collection.

", "refs": { } }, @@ -606,8 +698,18 @@ "refs": { } }, + "GetGatewayResponseRequest": { + "base": "

Gets a GatewayResponse of a specified response type on the given RestApi.

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

Gets the GatewayResponses collection on the given RestApi. If an API developer has not added any definitions for gateway responses, the result will be the API Gateway-generated default GatewayResponses collection for the supported response types.

", + "refs": { + } + }, "GetIntegrationRequest": { - "base": "

Represents a get integration request.

", + "base": "

Represents a request to get the integration configuration.

", "refs": { } }, @@ -687,12 +789,12 @@ } }, "GetStageRequest": { - "base": "

Requests Amazon API Gateway to get information about a Stage resource.

", + "base": "

Requests API Gateway to get information about a Stage resource.

", "refs": { } }, "GetStagesRequest": { - "base": "

Requests Amazon API Gateway to get information about one or more Stage resources.

", + "base": "

Requests API Gateway to get information about one or more Stage resources.

", "refs": { } }, @@ -721,6 +823,16 @@ "refs": { } }, + "GetVpcLinkRequest": { + "base": "

Gets a specified VPC link under the caller's account in a region.

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

Gets the VpcLinks collection under the caller's account in a selected region.

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

The POST request to import API keys from an external source, such as a CSV-formatted file.

", "refs": { @@ -732,13 +844,14 @@ } }, "ImportRestApiRequest": { - "base": "

A POST request to import an API to Amazon API Gateway using an input of an API definition file.

", + "base": "

A POST request to import an API to API Gateway using an input of an API definition file.

", "refs": { } }, "Integer": { "base": null, "refs": { + "Integration$timeoutInMillis": "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.

", "MethodSetting$throttlingBurstLimit": "

Specifies the throttling burst limit. The PATCH path for this setting is /{method_setting_key}/throttling/burstLimit, and the value is an integer.

", "MethodSetting$cacheTtlInSeconds": "

Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached. The PATCH path for this setting is /{method_setting_key}/caching/ttlInSeconds, and the value is an integer.

", "QuotaSettings$limit": "

The maximum number of requests that can be made in a given time period.

", @@ -761,28 +874,28 @@ } }, "IntegrationType": { - "base": "

The integration type. The valid value is HTTP for integrating with an HTTP back end, AWS for any AWS service endpoints, MOCK for testing without actually invoking the back end, HTTP_PROXY for integrating with the HTTP proxy integration, or AWS_PROXY for integrating with the Lambda proxy integration type.

", + "base": "

The integration type. The valid value is HTTP for integrating an API method with an HTTP backend; AWS with any AWS service endpoints; MOCK for testing without actually invoking the backend; HTTP_PROXY for integrating with the HTTP proxy integration; AWS_PROXY for integrating with the Lambda proxy integration.

", "refs": { - "Integration$type": "

Specifies the integration's type. The valid value is HTTP for integrating with an HTTP back end, AWS for any AWS service endpoints, MOCK for testing without actually invoking the back end, HTTP_PROXY for integrating with the HTTP proxy integration, or AWS_PROXY for integrating with the Lambda proxy integration type.

", + "Integration$type": "

Specifies an API method integration type. The valid value is one of the following:

For the HTTP and HTTP proxy integrations, each integration can specify a protocol (http/https), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. An HTTP or HTTP proxy integration with a connectionType of VPC_LINK is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC.

", "PutIntegrationRequest$type": "

Specifies a put integration input's type.

" } }, "LimitExceededException": { - "base": null, + "base": "

The request exceeded the rate limit. Retry after the specified time period.

", "refs": { } }, "ListOfARNs": { "base": null, "refs": { - "Authorizer$providerARNs": "

A list of the provider ARNs of the authorizer. For an TOKEN authorizer, this is not defined. For authorizers of the COGNITO_USER_POOLS type, each element corresponds to a user pool ARN of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}.

", - "CreateAuthorizerRequest$providerARNs": "

A list of the Cognito Your User Pool authorizer's provider ARNs.

" + "Authorizer$providerARNs": "

A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer. Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}. For a TOKEN or REQUEST authorizer, this is not defined.

", + "CreateAuthorizerRequest$providerARNs": "

A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer. Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}. For a TOKEN or REQUEST authorizer, this is not defined.

" } }, "ListOfApiKey": { "base": null, "refs": { - "ApiKeys$items": "

The current page of any ApiKey resources in the collection of ApiKey resources.

" + "ApiKeys$items": "

The current page of elements from this collection.

" } }, "ListOfApiStage": { @@ -795,43 +908,55 @@ "ListOfAuthorizer": { "base": null, "refs": { - "Authorizers$items": "

Gets the current list of Authorizer resources in the collection.

" + "Authorizers$items": "

The current page of elements from this collection.

" } }, "ListOfBasePathMapping": { "base": null, "refs": { - "BasePathMappings$items": "

The current page of any BasePathMapping resources in the collection of base path mapping resources.

" + "BasePathMappings$items": "

The current page of elements from this collection.

" } }, "ListOfClientCertificate": { "base": null, "refs": { - "ClientCertificates$items": "

The current page of any ClientCertificate resources in the collection of ClientCertificate resources.

" + "ClientCertificates$items": "

The current page of elements from this collection.

" } }, "ListOfDeployment": { "base": null, "refs": { - "Deployments$items": "

The current page of any Deployment resources in the collection of deployment resources.

" + "Deployments$items": "

The current page of elements from this collection.

" } }, "ListOfDocumentationPart": { "base": null, "refs": { - "DocumentationParts$items": "

The current page of DocumentationPart resources in the DocumentationParts collection.

" + "DocumentationParts$items": "

The current page of elements from this collection.

" } }, "ListOfDocumentationVersion": { "base": null, "refs": { - "DocumentationVersions$items": "

The current page of DocumentationVersion items from the DocumentationVersions collection of an API.

" + "DocumentationVersions$items": "

The current page of elements from this collection.

" } }, "ListOfDomainName": { "base": null, "refs": { - "DomainNames$items": "

The current page of any DomainName resources in the collection of DomainName resources.

" + "DomainNames$items": "

The current page of elements from this collection.

" + } + }, + "ListOfEndpointType": { + "base": null, + "refs": { + "EndpointConfiguration$types": "

A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). For an edge-optimized API and its custom domain name, the endpoint type is \"EDGE\". For a regional API and its custom domain name, the endpoint type is REGIONAL.

" + } + }, + "ListOfGatewayResponse": { + "base": null, + "refs": { + "GatewayResponses$items": "

Returns the entire collection, because of no pagination support.

" } }, "ListOfLong": { @@ -843,7 +968,7 @@ "ListOfModel": { "base": null, "refs": { - "Models$items": "

Gets the current Model resource in the collection.

" + "Models$items": "

The current page of elements from this collection.

" } }, "ListOfPatchOperation": { @@ -858,6 +983,7 @@ "UpdateDocumentationPartRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", "UpdateDocumentationVersionRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", "UpdateDomainNameRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", + "UpdateGatewayResponseRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", "UpdateIntegrationRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", "UpdateIntegrationResponseRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", "UpdateMethodRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", @@ -868,25 +994,26 @@ "UpdateRestApiRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", "UpdateStageRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", "UpdateUsagePlanRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", - "UpdateUsageRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

" + "UpdateUsageRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

", + "UpdateVpcLinkRequest$patchOperations": "

A list of update operations to be applied to the specified resource and in the order specified in this list.

" } }, "ListOfRequestValidator": { "base": null, "refs": { - "RequestValidators$items": "

The current page of RequestValidator resources in the RequestValidators collection.

" + "RequestValidators$items": "

The current page of elements from this collection.

" } }, "ListOfResource": { "base": null, "refs": { - "Resources$items": "

Gets the current Resource resource in the collection.

" + "Resources$items": "

The current page of elements from this collection.

" } }, "ListOfRestApi": { "base": null, "refs": { - "RestApis$items": "

An array of links to the current page of RestApi resources.

" + "RestApis$items": "

The current page of elements from this collection.

" } }, "ListOfSdkConfigurationProperty": { @@ -898,13 +1025,13 @@ "ListOfSdkType": { "base": null, "refs": { - "SdkTypes$items": "

The set of SdkType items that comprise this view of the SdkTypes collection.

" + "SdkTypes$items": "

The current page of elements from this collection.

" } }, "ListOfStage": { "base": null, "refs": { - "Stages$item": "

An individual Stage resource.

" + "Stages$item": "

The current page of elements from this collection.

" } }, "ListOfStageKeys": { @@ -922,6 +1049,7 @@ "ApiKeyIds$warnings": "

A list of warning messages.

", "ApiKeys$warnings": "

A list of warning messages logged during the import of API keys when the failOnWarnings option is set to true.

", "CreateRestApiRequest$binaryMediaTypes": "

The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads.

", + "CreateVpcLinkRequest$targetArns": "

[Required] The ARNs of network load balancers of the VPC targeted by the VPC link. The network load balancers must be owned by the same AWS account of the API owner.

", "DocumentationPartIds$ids": "

A list of the returned documentation part identifiers.

", "DocumentationPartIds$warnings": "

A list of warning messages reported during import of documentation parts.

", "GetDeploymentRequest$embed": "

A query parameter to retrieve the specified embedded resources of the returned Deployment resource in the response. In a REST API call, this embed parameter value is a list of comma-separated strings, as in GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=var1,var2. The SDK and other platform-dependent libraries might use a different format for the list. Currently, this request supports only retrieval of the embedded API summary this way. Hence, the parameter value must be a single-valued list containing only the \"apisummary\" string. For example, GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=apisummary.

", @@ -931,7 +1059,8 @@ "MapOfStringToList$value": null, "PutIntegrationRequest$cacheKeyParameters": "

Specifies a put integration input's cache key parameters.

", "RestApi$warnings": "

The warning messages reported when failonwarnings is turned on during API import.

", - "RestApi$binaryMediaTypes": "

The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads.

" + "RestApi$binaryMediaTypes": "

The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads.

", + "VpcLink$targetArns": "

The ARNs of network load balancers of the VPC targeted by the VPC link. The network load balancers must be owned by the same AWS account of the API owner.

" } }, "ListOfUsage": { @@ -943,13 +1072,25 @@ "ListOfUsagePlan": { "base": null, "refs": { - "UsagePlans$items": "

Gets the current item when enumerating the collection of UsagePlan.

" + "UsagePlans$items": "

The current page of elements from this collection.

" } }, "ListOfUsagePlanKey": { "base": null, "refs": { - "UsagePlanKeys$items": "

Gets the current item of the usage plan keys collection.

" + "UsagePlanKeys$items": "

The current page of elements from this collection.

" + } + }, + "ListOfVpcLink": { + "base": null, + "refs": { + "VpcLinks$items": "

The current page of elements from this collection.

" + } + }, + "LocationStatusType": { + "base": null, + "refs": { + "GetDocumentationPartsRequest$locationStatus": "

The status of the API documentation parts to retrieve. Valid values are DOCUMENTED for retrieving DocumentationPart resources with content and UNDOCUMENTED for DocumentationPart resources without content.

" } }, "Long": { @@ -1007,10 +1148,10 @@ "MapOfStringToBoolean": { "base": null, "refs": { - "Method$requestParameters": "

A key-value map defining required or optional method request parameters that can be accepted by Amazon API Gateway. A key is a method request parameter name matching the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true) or optional (false). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates.

", - "MethodResponse$responseParameters": "

A key-value map specifying required or optional response parameters that Amazon API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern method.response.header.{name}, where name is a valid and unique header name. Amazon API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.)

", - "PutMethodRequest$requestParameters": "

A key-value map defining required or optional method request parameters that can be accepted by Amazon API Gateway. A key defines a method request parameter name matching the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true) or optional (false). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or body-mapping templates.

", - "PutMethodResponseRequest$responseParameters": "

A key-value map specifying required or optional response parameters that Amazon API Gateway can send back to the caller. A key defines a method response header name and the associated value is a Boolean flag indicating whether the method response parameter is required or not. The method response header names must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.)

" + "Method$requestParameters": "

A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true) or optional (false). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates.

", + "MethodResponse$responseParameters": "

A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern method.response.header.{name}, where name is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.)

", + "PutMethodRequest$requestParameters": "

A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key defines a method request parameter name matching the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true) or optional (false). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or body-mapping templates.

", + "PutMethodResponseRequest$responseParameters": "

A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header name and the associated value is a Boolean flag indicating whether the method response parameter is required or not. The method response header names must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.)

" } }, "MapOfStringToList": { @@ -1022,24 +1163,30 @@ "MapOfStringToString": { "base": null, "refs": { + "CanarySettings$stageVariableOverrides": "

Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.

", "CreateDeploymentRequest$variables": "

A map that defines the stage variables for the Stage resource that is associated with the new deployment. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

", "CreateStageRequest$variables": "

A map that defines the stage variables for the new Stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

", + "DeploymentCanarySettings$stageVariableOverrides": "

A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values.

", + "GatewayResponse$responseParameters": "

Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.

", + "GatewayResponse$responseTemplates": "

Response templates of the GatewayResponse as a string-to-string map of key-value pairs.

", "GetExportRequest$parameters": "

A key-value map of query string parameters that specify properties of the export, depending on the requested exportType. For exportType swagger, any combination of the following parameters are supported: integrations will export the API with x-amazon-apigateway-integration extensions. authorizers will export the API with x-amazon-apigateway-authorizer extensions. postman will export the API with Postman extensions, allowing for import to the Postman tool

", - "GetSdkRequest$parameters": "

A key-value map of query string parameters that specify properties of the SDK, depending on the requested sdkType. For sdkType of objectivec, a parameter named classPrefix is required. For sdkType of android, parameters named groupId, artifactId, artifactVersion, and invokerPackage are required.

", - "ImportRestApiRequest$parameters": "

Custom header parameters as part of the request.

", + "GetSdkRequest$parameters": "

A string-to-string key-value map of query parameters sdkType-dependent properties of the SDK. For sdkType of objectivec or swift, a parameter named classPrefix is required. For sdkType of android, parameters named groupId, artifactId, artifactVersion, and invokerPackage are required. For sdkType of java, parameters named serviceName and javaPackageName are required.

", + "ImportRestApiRequest$parameters": "

A key-value map of context-specific query string parameters specifying the behavior of different API importing operations. The following shows operation-specific parameters and their supported values.

To exclude DocumentationParts from the import, set parameters as ignore=documentation.

To configure the endpoint type, set parameters as endpointConfigurationTypes=EDGE orendpointConfigurationTypes=REGIONAL. The default endpoint type is EDGE.

To handle imported basePath, set parameters as basePath=ignore, basePath=prepend or basePath=split.

For example, the AWS CLI command to exclude documentation from the imported API is:

aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json

The AWS CLI command to set the regional endpoint on the imported API is:

aws apigateway import-rest-api --parameters endpointConfigurationTypes=REGIONAL --body 'file:///path/to/imported-api-body.json
", "Integration$requestParameters": "

A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name must be a valid and unique method request parameter name.

", "Integration$requestTemplates": "

Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.

", "IntegrationResponse$responseParameters": "

A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix.

", "IntegrationResponse$responseTemplates": "

Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.

", "Method$requestModels": "

A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key).

", "MethodResponse$responseModels": "

Specifies the Model resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a Model name as the value.

", + "PutGatewayResponseRequest$responseParameters": "

Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.

", + "PutGatewayResponseRequest$responseTemplates": "

Response templates of the GatewayResponse as a string-to-string map of key-value pairs.

", "PutIntegrationRequest$requestParameters": "

A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name must be a valid and unique method request parameter name.

", "PutIntegrationRequest$requestTemplates": "

Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.

", "PutIntegrationResponseRequest$responseParameters": "

A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name must be a valid and unique response header name and JSON-expression a valid JSON expression without the $ prefix.

", "PutIntegrationResponseRequest$responseTemplates": "

Specifies a put integration response's templates.

", "PutMethodRequest$requestModels": "

Specifies the Model resources used for the request's content type. Request models are represented as a key/value map, with a content type as the key and a Model name as the value.

", "PutMethodResponseRequest$responseModels": "

Specifies the Model resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a Model name as the value.

", - "PutRestApiRequest$parameters": "

Custom headers supplied as part of the request.

", + "PutRestApiRequest$parameters": "

Custom header parameters as part of the request. For example, to exclude DocumentationParts from an imported API, set ignore=documentation as a parameters value, as in the AWS CLI command of aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json.

", "Stage$variables": "

A map that defines the stage variables for a Stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

", "TestInvokeAuthorizerRequest$stageVariables": "

A key-value map of stage variables to simulate an invocation on a deployed Stage.

", "TestInvokeAuthorizerRequest$additionalContext": "

[Optional] A key-value map of additional context variables.

", @@ -1083,7 +1230,7 @@ } }, "NotFoundException": { - "base": null, + "base": "

The requested resource is not found. Make sure that the request URI is correct.

", "refs": { } }, @@ -1100,9 +1247,9 @@ "NullableInteger": { "base": null, "refs": { - "Authorizer$authorizerResultTtlInSeconds": "

The TTL in seconds of cached authorizer results. If greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour.

", - "CreateAuthorizerRequest$authorizerResultTtlInSeconds": "

The TTL of cached authorizer results.

", - "GetApiKeysRequest$limit": "

The maximum number of ApiKeys to get information about.

", + "Authorizer$authorizerResultTtlInSeconds": "

The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour.

", + "CreateAuthorizerRequest$authorizerResultTtlInSeconds": "

The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour.

", + "GetApiKeysRequest$limit": "

The maximum number of returned results per page.

", "GetAuthorizersRequest$limit": "

The maximum number of returned results per page.

", "GetBasePathMappingsRequest$limit": "

The maximum number of returned results per page. The value is 25 by default and could be between 1 - 500.

", "GetClientCertificatesRequest$limit": "

The maximum number of returned results per page. The value is 25 by default and could be between 1 - 500.

", @@ -1110,6 +1257,7 @@ "GetDocumentationPartsRequest$limit": "

The maximum number of returned results per page.

", "GetDocumentationVersionsRequest$limit": "

The maximum number of returned results per page.

", "GetDomainNamesRequest$limit": "

The maximum number of returned results per page. The value is 25 by default and could be between 1 - 500.

", + "GetGatewayResponsesRequest$limit": "

The maximum number of returned results per page. The GatewayResponses collection does not support pagination and the limit does not apply here.

", "GetModelsRequest$limit": "

The maximum number of returned results per page. The value is 25 by default and could be between 1 - 500.

", "GetRequestValidatorsRequest$limit": "

The maximum number of returned results per page.

", "GetResourcesRequest$limit": "

The maximum number of returned results per page. The value is 25 by default and could be between 1 - 500.

", @@ -1117,13 +1265,15 @@ "GetSdkTypesRequest$limit": "

The maximum number of returned results per page.

", "GetUsagePlanKeysRequest$limit": "

The maximum number of returned results per page.

", "GetUsagePlansRequest$limit": "

The maximum number of returned results per page.

", - "GetUsageRequest$limit": "

The maximum number of returned results per page.

" + "GetUsageRequest$limit": "

The maximum number of returned results per page.

", + "GetVpcLinksRequest$limit": "

The maximum number of returned results per page.

", + "PutIntegrationRequest$timeoutInMillis": "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.

" } }, "Op": { "base": null, "refs": { - "PatchOperation$op": "

An update operation to be performed with this PATCH request. The valid value can be \"add\", \"remove\", or \"replace\". Not all valid operations are supported for a given resource. Support of the operations depends on specific operational contexts. Attempts to apply an unsupported operation on a resource will return an error message.

" + "PatchOperation$op": "

An update operation to be performed with this PATCH request. The valid value can be add, remove, replace or copy. Not all valid operations are supported for a given resource. Support of the operations depends on specific operational contexts. Attempts to apply an unsupported operation on a resource will return an error message.

" } }, "PatchOperation": { @@ -1144,8 +1294,13 @@ "ListOfARNs$member": null } }, + "PutGatewayResponseRequest": { + "base": "

Creates a customization of a GatewayResponse of a specified response type and status code on the given RestApi.

", + "refs": { + } + }, "PutIntegrationRequest": { - "base": "

Represents a put integration request.

", + "base": "

Sets up a method's integration.

", "refs": { } }, @@ -1245,7 +1400,7 @@ } }, "ServiceUnavailableException": { - "base": null, + "base": "

The requested service is not available. For details see the accompanying error message. Retry after the specified time period.

", "refs": { } }, @@ -1271,10 +1426,12 @@ "refs": { "DeleteIntegrationResponseRequest$statusCode": "

Specifies a delete integration response request's status code.

", "DeleteMethodResponseRequest$statusCode": "

The status code identifier for the MethodResponse resource.

", + "GatewayResponse$statusCode": "

The HTTP status code for this GatewayResponse.

", "GetIntegrationResponseRequest$statusCode": "

Specifies a get integration response request's status code.

", "GetMethodResponseRequest$statusCode": "

The status code for the MethodResponse resource.

", "IntegrationResponse$statusCode": "

Specifies the status code that is used to map the integration response to an existing MethodResponse.

", "MethodResponse$statusCode": "

The method response's status code.

", + "PutGatewayResponseRequest$statusCode": "The HTTP status code of the GatewayResponse.", "PutIntegrationResponseRequest$statusCode": "

Specifies the status code that is used to map the integration response to an existing MethodResponse.

", "PutMethodResponseRequest$statusCode": "

The method response's status code.

", "UpdateIntegrationResponseRequest$statusCode": "

Specifies an update integration response request's status code.

", @@ -1284,6 +1441,8 @@ "String": { "base": null, "refs": { + "AccessLogSettings$format": "

A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId.

", + "AccessLogSettings$destinationArn": "

The ARN of the CloudWatch Logs log group to receive access logs.

", "Account$cloudwatchRoleArn": "

The ARN of an Amazon CloudWatch role for the current Account.

", "Account$apiKeyVersion": "

The version of the API keys used for the account.

", "ApiKey$id": "

The identifier of the API Key.

", @@ -1296,17 +1455,18 @@ "ApiStage$stage": "

API stage name of the associated API stage in a usage plan.

", "Authorizer$id": "

The identifier for the authorizer resource.

", "Authorizer$name": "

[Required] The name of the authorizer.

", - "Authorizer$authType": "

Optional customer-defined field, used in Swagger imports/exports. Has no functional impact.

", - "Authorizer$authorizerUri": "

[Required] Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api}, where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations.

", - "Authorizer$authorizerCredentials": "

Specifies the credentials required for the authorizer, if any. Two options are available. To specify an IAM role for Amazon API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null.

", - "Authorizer$identitySource": "

[Required] The source of the identity in an incoming request. For a TOKEN authorizer, this value is a mapping expression with the same syntax as integration parameter mappings. The only valid source for tokens is 'header', so the expression should match 'method.request.header.[headerName]'. The value of the header '[headerName]' will be interpreted as the incoming token. For COGNITO_USER_POOLS authorizers, this property is used.

", - "Authorizer$identityValidationExpression": "

A validation expression for the incoming identity. For TOKEN authorizers, this value should be a regular expression. The incoming token from the client is matched against this expression, and will proceed if the token matches. If the token doesn't match, the client receives a 401 Unauthorized response.

", + "Authorizer$authType": "

Optional customer-defined field, used in Swagger imports and exports without functional impact.

", + "Authorizer$authorizerUri": "

Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api}, where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations.

", + "Authorizer$authorizerCredentials": "

Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null.

", + "Authorizer$identitySource": "

The identity source for which authorization is requested.

", + "Authorizer$identityValidationExpression": "

A validation expression for the incoming identity token. For TOKEN authorizers, this value is a regular expression. API Gateway will match the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the REQUEST authorizer.

", "Authorizers$position": null, "BadRequestException$message": null, "BasePathMapping$basePath": "

The base path name that callers of the API must provide as part of the URL after the domain name.

", - "BasePathMapping$restApiId": "

The name of the API.

", - "BasePathMapping$stage": "

The name of the API's stage.

", + "BasePathMapping$restApiId": "

The string identifier of the associated RestApi.

", + "BasePathMapping$stage": "

The name of the associated stage.

", "BasePathMappings$position": null, + "CanarySettings$deploymentId": "

The ID of the canary deployment.

", "ClientCertificate$clientCertificateId": "

The identifier of the client certificate.

", "ClientCertificate$description": "

The description of the client certificate.

", "ClientCertificate$pemEncodedCertificate": "

The PEM-encoded public key of the client certificate, which can be used to configure certificate authentication in the integration endpoint .

", @@ -1316,50 +1476,52 @@ "CreateApiKeyRequest$description": "

The description of the ApiKey.

", "CreateApiKeyRequest$value": "

Specifies a value of the API key.

", "CreateApiKeyRequest$customerId": "

An AWS Marketplace customer identifier , when integrating with the AWS SaaS Marketplace.

", - "CreateAuthorizerRequest$restApiId": "

The RestApi identifier under which the Authorizer will be created.

", + "CreateAuthorizerRequest$restApiId": "

The string identifier of the associated RestApi.

", "CreateAuthorizerRequest$name": "

[Required] The name of the authorizer.

", - "CreateAuthorizerRequest$authType": "

Optional customer-defined field, used in Swagger imports/exports. Has no functional impact.

", - "CreateAuthorizerRequest$authorizerUri": "

[Required] Specifies the authorizer's Uniform Resource Identifier (URI).

", - "CreateAuthorizerRequest$authorizerCredentials": "

Specifies the credentials required for the authorizer, if any.

", - "CreateAuthorizerRequest$identitySource": "

[Required] The source of the identity in an incoming request.

", - "CreateAuthorizerRequest$identityValidationExpression": "

A validation expression for the incoming identity.

", + "CreateAuthorizerRequest$authType": "

Optional customer-defined field, used in Swagger imports and exports without functional impact.

", + "CreateAuthorizerRequest$authorizerUri": "

Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api}, where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations.

", + "CreateAuthorizerRequest$authorizerCredentials": "

Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null.

", + "CreateAuthorizerRequest$identitySource": "

The identity source for which authorization is requested.

", + "CreateAuthorizerRequest$identityValidationExpression": "

A validation expression for the incoming identity token. For TOKEN authorizers, this value is a regular expression. API Gateway will match the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the REQUEST authorizer.

", "CreateBasePathMappingRequest$domainName": "

The domain name of the BasePathMapping resource to create.

", "CreateBasePathMappingRequest$basePath": "

The base path name that callers of the API must provide as part of the URL after the domain name. This value must be unique for all of the mappings across a single API. Leave this blank if you do not want callers to specify a base path name after the domain name.

", - "CreateBasePathMappingRequest$restApiId": "

The name of the API that you want to apply this mapping to.

", + "CreateBasePathMappingRequest$restApiId": "

The string identifier of the associated RestApi.

", "CreateBasePathMappingRequest$stage": "

The name of the API's stage that you want to use for this mapping. Leave this blank if you do not want callers to explicitly specify the stage name after any base path name.

", - "CreateDeploymentRequest$restApiId": "

The RestApi resource identifier for the Deployment resource to create.

", + "CreateDeploymentRequest$restApiId": "

The string identifier of the associated RestApi.

", "CreateDeploymentRequest$stageName": "

The name of the Stage resource for the Deployment resource to create.

", "CreateDeploymentRequest$stageDescription": "

The description of the Stage resource for the Deployment resource to create.

", "CreateDeploymentRequest$description": "

The description for the Deployment resource to create.

", - "CreateDocumentationPartRequest$restApiId": "

[Required] The identifier of an API of the to-be-created documentation part.

", + "CreateDocumentationPartRequest$restApiId": "

[Required] The string identifier of the associated RestApi.

", "CreateDocumentationPartRequest$properties": "

[Required] The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only Swagger-compliant key-value pairs can be exported and, hence, published.

", - "CreateDocumentationVersionRequest$restApiId": "

[Required] Specifies the API identifier of the to-be-created documentation version.

", + "CreateDocumentationVersionRequest$restApiId": "

[Required] The string identifier of the associated RestApi.

", "CreateDocumentationVersionRequest$documentationVersion": "

[Required] The version identifier of the new snapshot.

", "CreateDocumentationVersionRequest$stageName": "

The stage name to be associated with the new documentation snapshot.

", "CreateDocumentationVersionRequest$description": "

A description about the new documentation snapshot.

", "CreateDomainNameRequest$domainName": "

(Required) The name of the DomainName resource.

", - "CreateDomainNameRequest$certificateName": "

The user-friendly name of the certificate.

", - "CreateDomainNameRequest$certificateBody": "

[Deprecated] The body of the server certificate provided by your certificate authority.

", - "CreateDomainNameRequest$certificatePrivateKey": "

[Deprecated] Your certificate's private key.

", - "CreateDomainNameRequest$certificateChain": "

[Deprecated] The intermediate certificates and optionally the root certificate, one after the other without any blank lines. If you include the root certificate, your certificate chain must start with intermediate certificates and end with the root certificate. Use the intermediate certificates that were provided by your certificate authority. Do not include any intermediaries that are not in the chain of trust path.

", - "CreateDomainNameRequest$certificateArn": "

The reference to an AWS-managed certificate. AWS Certificate Manager is the only supported source.

", + "CreateDomainNameRequest$certificateName": "

The user-friendly name of the certificate that will be used by edge-optimized endpoint for this domain name.

", + "CreateDomainNameRequest$certificateBody": "

[Deprecated] The body of the server certificate that will be used by edge-optimized endpoint for this domain name provided by your certificate authority.

", + "CreateDomainNameRequest$certificatePrivateKey": "

[Deprecated] Your edge-optimized endpoint's domain name certificate's private key.

", + "CreateDomainNameRequest$certificateChain": "

[Deprecated] The intermediate certificates and optionally the root certificate, one after the other without any blank lines, used by an edge-optimized endpoint for this domain name. If you include the root certificate, your certificate chain must start with intermediate certificates and end with the root certificate. Use the intermediate certificates that were provided by your certificate authority. Do not include any intermediaries that are not in the chain of trust path.

", + "CreateDomainNameRequest$certificateArn": "

The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.

", + "CreateDomainNameRequest$regionalCertificateName": "

The user-friendly name of the certificate that will be used by regional endpoint for this domain name.

", + "CreateDomainNameRequest$regionalCertificateArn": "

The reference to an AWS-managed certificate that will be used by regional endpoint for this domain name. AWS Certificate Manager is the only supported source.

", "CreateModelRequest$restApiId": "

The RestApi identifier under which the Model will be created.

", - "CreateModelRequest$name": "

The name of the model.

", + "CreateModelRequest$name": "

The name of the model. Must be alphanumeric.

", "CreateModelRequest$description": "

The description of the model.

", "CreateModelRequest$schema": "

The schema for the model. For application/json models, this should be JSON-schema draft v4 model.

", "CreateModelRequest$contentType": "

The content-type for the model.

", - "CreateRequestValidatorRequest$restApiId": "

[Required] The identifier of the RestApi for which the RequestValidator is created.

", + "CreateRequestValidatorRequest$restApiId": "

The string identifier of the associated RestApi.

", "CreateRequestValidatorRequest$name": "

The name of the to-be-created RequestValidator.

", - "CreateResourceRequest$restApiId": "

The identifier of the RestApi for the resource.

", + "CreateResourceRequest$restApiId": "

The string identifier of the associated RestApi.

", "CreateResourceRequest$parentId": "

The parent resource's identifier.

", "CreateResourceRequest$pathPart": "

The last path segment for this resource.

", "CreateRestApiRequest$name": "

The name of the RestApi.

", "CreateRestApiRequest$description": "

The description of the RestApi.

", "CreateRestApiRequest$version": "

A version identifier for the API.

", "CreateRestApiRequest$cloneFrom": "

The ID of the RestApi that you want to clone from.

", - "CreateStageRequest$restApiId": "

The identifier of the RestApi resource for the Stage resource to create.

", - "CreateStageRequest$stageName": "

The name for the Stage resource.

", - "CreateStageRequest$deploymentId": "

The identifier of the Deployment resource for the Stage resource.

", + "CreateStageRequest$restApiId": "

The string identifier of the associated RestApi.

", + "CreateStageRequest$stageName": "

[Required] The name for the Stage resource.

", + "CreateStageRequest$deploymentId": "

[Required] The identifier of the Deployment resource for the Stage resource.

", "CreateStageRequest$description": "

The description of the Stage resource.

", "CreateStageRequest$documentationVersion": "

The version of the associated API documentation.

", "CreateUsagePlanKeyRequest$usagePlanId": "

The Id of the UsagePlan resource representing the usage plan containing the to-be-created UsagePlanKey resource representing a plan customer.

", @@ -1367,47 +1529,51 @@ "CreateUsagePlanKeyRequest$keyType": "

The type of a UsagePlanKey resource for a plan customer.

", "CreateUsagePlanRequest$name": "

The name of the usage plan.

", "CreateUsagePlanRequest$description": "

The description of the usage plan.

", + "CreateVpcLinkRequest$name": "

[Required] The name used to label and identify the VPC link.

", + "CreateVpcLinkRequest$description": "

The description of the VPC link.

", "DeleteApiKeyRequest$apiKey": "

The identifier of the ApiKey resource to be deleted.

", - "DeleteAuthorizerRequest$restApiId": "

The RestApi identifier for the Authorizer resource.

", + "DeleteAuthorizerRequest$restApiId": "

The string identifier of the associated RestApi.

", "DeleteAuthorizerRequest$authorizerId": "

The identifier of the Authorizer resource.

", "DeleteBasePathMappingRequest$domainName": "

The domain name of the BasePathMapping resource to delete.

", "DeleteBasePathMappingRequest$basePath": "

The base path name of the BasePathMapping resource to delete.

", "DeleteClientCertificateRequest$clientCertificateId": "

The identifier of the ClientCertificate resource to be deleted.

", - "DeleteDeploymentRequest$restApiId": "

The identifier of the RestApi resource for the Deployment resource to delete.

", + "DeleteDeploymentRequest$restApiId": "

The string identifier of the associated RestApi.

", "DeleteDeploymentRequest$deploymentId": "

The identifier of the Deployment resource to delete.

", - "DeleteDocumentationPartRequest$restApiId": "

[Required] Specifies the identifier of an API of the to-be-deleted documentation part.

", + "DeleteDocumentationPartRequest$restApiId": "

[Required] The string identifier of the associated RestApi.

", "DeleteDocumentationPartRequest$documentationPartId": "

[Required] The identifier of the to-be-deleted documentation part.

", - "DeleteDocumentationVersionRequest$restApiId": "

[Required] The identifier of an API of a to-be-deleted documentation snapshot.

", + "DeleteDocumentationVersionRequest$restApiId": "

[Required] The string identifier of the associated RestApi.

", "DeleteDocumentationVersionRequest$documentationVersion": "

[Required] The version identifier of a to-be-deleted documentation snapshot.

", "DeleteDomainNameRequest$domainName": "

The name of the DomainName resource to be deleted.

", - "DeleteIntegrationRequest$restApiId": "

Specifies a delete integration request's API identifier.

", + "DeleteGatewayResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", + "DeleteIntegrationRequest$restApiId": "

The string identifier of the associated RestApi.

", "DeleteIntegrationRequest$resourceId": "

Specifies a delete integration request's resource identifier.

", "DeleteIntegrationRequest$httpMethod": "

Specifies a delete integration request's HTTP method.

", - "DeleteIntegrationResponseRequest$restApiId": "

Specifies a delete integration response request's API identifier.

", + "DeleteIntegrationResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", "DeleteIntegrationResponseRequest$resourceId": "

Specifies a delete integration response request's resource identifier.

", "DeleteIntegrationResponseRequest$httpMethod": "

Specifies a delete integration response request's HTTP method.

", - "DeleteMethodRequest$restApiId": "

The RestApi identifier for the Method resource.

", + "DeleteMethodRequest$restApiId": "

The string identifier of the associated RestApi.

", "DeleteMethodRequest$resourceId": "

The Resource identifier for the Method resource.

", "DeleteMethodRequest$httpMethod": "

The HTTP verb of the Method resource.

", - "DeleteMethodResponseRequest$restApiId": "

The RestApi identifier for the MethodResponse resource.

", + "DeleteMethodResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", "DeleteMethodResponseRequest$resourceId": "

The Resource identifier for the MethodResponse resource.

", "DeleteMethodResponseRequest$httpMethod": "

The HTTP verb of the Method resource.

", - "DeleteModelRequest$restApiId": "

The RestApi under which the model will be deleted.

", + "DeleteModelRequest$restApiId": "

The string identifier of the associated RestApi.

", "DeleteModelRequest$modelName": "

The name of the model to delete.

", - "DeleteRequestValidatorRequest$restApiId": "

[Required] The identifier of the RestApi from which the given RequestValidator is deleted.

", + "DeleteRequestValidatorRequest$restApiId": "

The string identifier of the associated RestApi.

", "DeleteRequestValidatorRequest$requestValidatorId": "

[Required] The identifier of the RequestValidator to be deleted.

", - "DeleteResourceRequest$restApiId": "

The RestApi identifier for the Resource resource.

", + "DeleteResourceRequest$restApiId": "

The string identifier of the associated RestApi.

", "DeleteResourceRequest$resourceId": "

The identifier of the Resource resource.

", - "DeleteRestApiRequest$restApiId": "

The ID of the RestApi you want to delete.

", - "DeleteStageRequest$restApiId": "

The identifier of the RestApi resource for the Stage resource to delete.

", + "DeleteRestApiRequest$restApiId": "

The string identifier of the associated RestApi.

", + "DeleteStageRequest$restApiId": "

The string identifier of the associated RestApi.

", "DeleteStageRequest$stageName": "

The name of the Stage resource to delete.

", "DeleteUsagePlanKeyRequest$usagePlanId": "

The Id of the UsagePlan resource representing the usage plan containing the to-be-deleted UsagePlanKey resource representing a plan customer.

", "DeleteUsagePlanKeyRequest$keyId": "

The Id of the UsagePlanKey resource to be deleted.

", "DeleteUsagePlanRequest$usagePlanId": "

The Id of the to-be-deleted usage plan.

", + "DeleteVpcLinkRequest$vpcLinkId": "

[Required] The identifier of the VpcLink. It is used in an Integration to reference this VpcLink.

", "Deployment$id": "

The identifier for the deployment resource.

", "Deployment$description": "

The description for the deployment resource.

", "Deployments$position": null, - "DocumentationPart$id": "

The DocumentationPart identifier, generated by Amazon API Gateway when the DocumentationPart is created.

", + "DocumentationPart$id": "

The DocumentationPart identifier, generated by API Gateway when the DocumentationPart is created.

", "DocumentationPart$properties": "

A content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., \"{ \\\"description\\\": \\\"The API does ...\\\" }\". Only Swagger-compliant documentation-related fields from the properties map are exported and, hence, published as part of the API entity definitions, while the original documentation parts are exported in a Swagger extension of x-amazon-apigateway-documentation.

", "DocumentationPartLocation$path": "

The URL path of the target. It is a valid field for the API entity types of RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value is / for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other location attributes, the child entity's path attribute must match that of the parent entity as a prefix.

", "DocumentationPartLocation$method": "

The HTTP verb of a method. It is a valid field for the API entity types of METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value is * for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other location attributes, the child entity's method attribute must match that of the parent entity exactly.

", @@ -1417,24 +1583,30 @@ "DocumentationVersion$description": "

The description of the API documentation snapshot.

", "DocumentationVersions$position": null, "DomainName$domainName": "

The name of the DomainName resource.

", - "DomainName$certificateName": "

The name of the certificate.

", - "DomainName$certificateArn": "

The reference to an AWS-managed certificate. AWS Certificate Manager is the only supported source.

", - "DomainName$distributionDomainName": "

The domain name of the Amazon CloudFront distribution. For more information, see the Amazon CloudFront documentation.

", + "DomainName$certificateName": "

The name of the certificate that will be used by edge-optimized endpoint for this domain name.

", + "DomainName$certificateArn": "

The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.

", + "DomainName$regionalDomainName": "

The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name. The regional domain name is returned by API Gateway when you create a regional endpoint.

", + "DomainName$regionalHostedZoneId": "

The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway.

", + "DomainName$regionalCertificateName": "

The name of the certificate that will be used for validating the regional domain name.

", + "DomainName$regionalCertificateArn": "

The reference to an AWS-managed certificate that will be used for validating the regional domain name. AWS Certificate Manager is the only supported source.

", + "DomainName$distributionDomainName": "

The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation.

", + "DomainName$distributionHostedZoneId": "

The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid value is Z2FDTNDATAQYW2 for all the regions. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway.

", "DomainNames$position": null, "ExportResponse$contentType": "

The content-type header value in the HTTP response. This will correspond to a valid 'accept' type in the request.

", "ExportResponse$contentDisposition": "

The content-disposition header value in the HTTP response.

", - "FlushStageAuthorizersCacheRequest$restApiId": "

The API identifier of the stage to flush.

", + "FlushStageAuthorizersCacheRequest$restApiId": "

The string identifier of the associated RestApi.

", "FlushStageAuthorizersCacheRequest$stageName": "

The name of the stage to flush.

", - "FlushStageCacheRequest$restApiId": "

The API identifier of the stage to flush its cache.

", + "FlushStageCacheRequest$restApiId": "

The string identifier of the associated RestApi.

", "FlushStageCacheRequest$stageName": "

The name of the stage to flush its cache.

", + "GatewayResponses$position": null, "GenerateClientCertificateRequest$description": "

The description of the ClientCertificate.

", "GetApiKeyRequest$apiKey": "

The identifier of the ApiKey resource.

", "GetApiKeysRequest$position": "

The current pagination position in the paged result set.

", "GetApiKeysRequest$nameQuery": "

The name of queried API keys.

", "GetApiKeysRequest$customerId": "

The identifier of a customer in AWS Marketplace or an external system, such as a developer portal.

", - "GetAuthorizerRequest$restApiId": "

The RestApi identifier for the Authorizer resource.

", + "GetAuthorizerRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetAuthorizerRequest$authorizerId": "

The identifier of the Authorizer resource.

", - "GetAuthorizersRequest$restApiId": "

The RestApi identifier for the Authorizers resource.

", + "GetAuthorizersRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetAuthorizersRequest$position": "

The current pagination position in the paged result set.

", "GetBasePathMappingRequest$domainName": "

The domain name of the BasePathMapping resource to be described.

", "GetBasePathMappingRequest$basePath": "

The base path name that callers of the API must provide as part of the URL after the domain name. This value must be unique for all of the mappings across a single API. Leave this blank if you do not want callers to specify any base path name after the domain name.

", @@ -1442,62 +1614,65 @@ "GetBasePathMappingsRequest$position": "

The current pagination position in the paged result set.

", "GetClientCertificateRequest$clientCertificateId": "

The identifier of the ClientCertificate resource to be described.

", "GetClientCertificatesRequest$position": "

The current pagination position in the paged result set.

", - "GetDeploymentRequest$restApiId": "

The identifier of the RestApi resource for the Deployment resource to get information about.

", + "GetDeploymentRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetDeploymentRequest$deploymentId": "

The identifier of the Deployment resource to get information about.

", - "GetDeploymentsRequest$restApiId": "

The identifier of the RestApi resource for the collection of Deployment resources to get information about.

", + "GetDeploymentsRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetDeploymentsRequest$position": "

The current pagination position in the paged result set.

", - "GetDocumentationPartRequest$restApiId": "

[Required] The identifier of an API of the to-be-retrieved documentation part.

", - "GetDocumentationPartRequest$documentationPartId": "

[Required] The identifier of the to-be-retrieved documentation part.

", - "GetDocumentationPartsRequest$restApiId": "

[Required] The identifier of the API of the to-be-retrieved documentation parts.

", + "GetDocumentationPartRequest$restApiId": "

[Required] The string identifier of the associated RestApi.

", + "GetDocumentationPartRequest$documentationPartId": "

[Required] The string identifier of the associated RestApi.

", + "GetDocumentationPartsRequest$restApiId": "

[Required] The string identifier of the associated RestApi.

", "GetDocumentationPartsRequest$nameQuery": "

The name of API entities of the to-be-retrieved documentation parts.

", "GetDocumentationPartsRequest$path": "

The path of API entities of the to-be-retrieved documentation parts.

", "GetDocumentationPartsRequest$position": "

The current pagination position in the paged result set.

", - "GetDocumentationVersionRequest$restApiId": "

[Required] The identifier of the API of the to-be-retrieved documentation snapshot.

", + "GetDocumentationVersionRequest$restApiId": "

[Required] The string identifier of the associated RestApi.

", "GetDocumentationVersionRequest$documentationVersion": "

[Required] The version identifier of the to-be-retrieved documentation snapshot.

", - "GetDocumentationVersionsRequest$restApiId": "

[Required] The identifier of an API of the to-be-retrieved documentation versions.

", + "GetDocumentationVersionsRequest$restApiId": "

[Required] The string identifier of the associated RestApi.

", "GetDocumentationVersionsRequest$position": "

The current pagination position in the paged result set.

", "GetDomainNameRequest$domainName": "

The name of the DomainName resource.

", "GetDomainNamesRequest$position": "

The current pagination position in the paged result set.

", - "GetExportRequest$restApiId": "

The identifier of the RestApi to be exported.

", + "GetExportRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetExportRequest$stageName": "

The name of the Stage that will be exported.

", "GetExportRequest$exportType": "

The type of export. Currently only 'swagger' is supported.

", "GetExportRequest$accepts": "

The content-type of the export, for example application/json. Currently application/json and application/yaml are supported for exportType of swagger. This should be specified in the Accept header for direct API requests.

", - "GetIntegrationRequest$restApiId": "

Specifies a get integration request's API identifier.

", + "GetGatewayResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", + "GetGatewayResponsesRequest$restApiId": "

The string identifier of the associated RestApi.

", + "GetGatewayResponsesRequest$position": "

The current pagination position in the paged result set. The GatewayResponse collection does not support pagination and the position does not apply here.

", + "GetIntegrationRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetIntegrationRequest$resourceId": "

Specifies a get integration request's resource identifier

", "GetIntegrationRequest$httpMethod": "

Specifies a get integration request's HTTP method.

", - "GetIntegrationResponseRequest$restApiId": "

Specifies a get integration response request's API identifier.

", + "GetIntegrationResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetIntegrationResponseRequest$resourceId": "

Specifies a get integration response request's resource identifier.

", "GetIntegrationResponseRequest$httpMethod": "

Specifies a get integration response request's HTTP method.

", - "GetMethodRequest$restApiId": "

The RestApi identifier for the Method resource.

", + "GetMethodRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetMethodRequest$resourceId": "

The Resource identifier for the Method resource.

", "GetMethodRequest$httpMethod": "

Specifies the method request's HTTP method type.

", - "GetMethodResponseRequest$restApiId": "

The RestApi identifier for the MethodResponse resource.

", + "GetMethodResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetMethodResponseRequest$resourceId": "

The Resource identifier for the MethodResponse resource.

", "GetMethodResponseRequest$httpMethod": "

The HTTP verb of the Method resource.

", "GetModelRequest$restApiId": "

The RestApi identifier under which the Model exists.

", "GetModelRequest$modelName": "

The name of the model as an identifier.

", - "GetModelTemplateRequest$restApiId": "

The ID of the RestApi under which the model exists.

", + "GetModelTemplateRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetModelTemplateRequest$modelName": "

The name of the model for which to generate a template.

", - "GetModelsRequest$restApiId": "

The RestApi identifier.

", + "GetModelsRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetModelsRequest$position": "

The current pagination position in the paged result set.

", - "GetRequestValidatorRequest$restApiId": "

[Required] The identifier of the RestApi to which the specified RequestValidator belongs.

", + "GetRequestValidatorRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetRequestValidatorRequest$requestValidatorId": "

[Required] The identifier of the RequestValidator to be retrieved.

", - "GetRequestValidatorsRequest$restApiId": "

[Required] The identifier of a RestApi to which the RequestValidators collection belongs.

", + "GetRequestValidatorsRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetRequestValidatorsRequest$position": "

The current pagination position in the paged result set.

", - "GetResourceRequest$restApiId": "

The RestApi identifier for the resource.

", + "GetResourceRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetResourceRequest$resourceId": "

The identifier for the Resource resource.

", - "GetResourcesRequest$restApiId": "

The RestApi identifier for the Resource.

", + "GetResourcesRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetResourcesRequest$position": "

The current pagination position in the paged result set.

", "GetRestApiRequest$restApiId": "

The identifier of the RestApi resource.

", "GetRestApisRequest$position": "

The current pagination position in the paged result set.

", - "GetSdkRequest$restApiId": "

The identifier of the RestApi that the SDK will use.

", + "GetSdkRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetSdkRequest$stageName": "

The name of the Stage that the SDK will use.

", - "GetSdkRequest$sdkType": "

The language for the generated SDK. Currently javascript, android, and objectivec (for iOS) are supported.

", + "GetSdkRequest$sdkType": "

The language for the generated SDK. Currently java, javascript, android, objectivec (for iOS), swift (for iOS), and ruby are supported.

", "GetSdkTypeRequest$id": "

The identifier of the queried SdkType instance.

", "GetSdkTypesRequest$position": "

The current pagination position in the paged result set.

", - "GetStageRequest$restApiId": "

The identifier of the RestApi resource for the Stage resource to get information about.

", + "GetStageRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetStageRequest$stageName": "

The name of the Stage resource to get information about.

", - "GetStagesRequest$restApiId": "

The stages' API identifiers.

", + "GetStagesRequest$restApiId": "

The string identifier of the associated RestApi.

", "GetStagesRequest$deploymentId": "

The stages' deployment identifiers.

", "GetUsagePlanKeyRequest$usagePlanId": "

The Id of the UsagePlan resource representing the usage plan containing the to-be-retrieved UsagePlanKey resource representing a plan customer.

", "GetUsagePlanKeyRequest$keyId": "

The key Id of the to-be-retrieved UsagePlanKey resource representing a plan customer.

", @@ -1512,11 +1687,14 @@ "GetUsageRequest$startDate": "

The starting date (e.g., 2016-01-01) of the usage data.

", "GetUsageRequest$endDate": "

The ending date (e.g., 2016-12-31) of the usage data.

", "GetUsageRequest$position": "

The current pagination position in the paged result set.

", - "ImportDocumentationPartsRequest$restApiId": "

[Required] The identifier of an API of the to-be-imported documentation parts.

", + "GetVpcLinkRequest$vpcLinkId": "

[Required] The identifier of the VpcLink. It is used in an Integration to reference this VpcLink.

", + "GetVpcLinksRequest$position": "

The current pagination position in the paged result set.

", + "ImportDocumentationPartsRequest$restApiId": "

[Required] The string identifier of the associated RestApi.

", "Integration$httpMethod": "

Specifies the integration's HTTP method type.

", - "Integration$uri": "

Specifies the integration's Uniform Resource Identifier (URI). For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification. For AWS integrations, the URI should be of the form arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}. Region, subdomain and service are used to determine the right endpoint. For AWS services that use the Action= query string parameter, service_api should be a valid action for the desired service. For RESTful AWS service APIs, path is used to indicate that the remaining substring in the URI should be treated as the path to the resource, including the initial /.

", - "Integration$credentials": "

Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::\\*:user/\\*. To use resource-based permissions on supported AWS services, specify null.

", - "Integration$passthroughBehavior": "

Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in requestTemplates. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER.

  • WHEN_NO_MATCH passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request.
  • WHEN_NO_TEMPLATES passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response.
  • NEVER rejects the method request with an HTTP 415 Unsupported Media Type response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request.
", + "Integration$uri": "

Specifies Uniform Resource Identifier (URI) of the integration endpoint.

", + "Integration$connectionId": "

The (id) of the VpcLink used for the integration when connectionType=VPC_LINK and undefined, otherwise.

", + "Integration$credentials": "

Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::\\*:user/\\*. To use resource-based permissions on supported AWS services, specify null.

", + "Integration$passthroughBehavior": "

Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in requestTemplates. The valid value is one of the following:

  • WHEN_NO_MATCH: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request.
  • WHEN_NO_TEMPLATES: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response.
  • NEVER: rejects the method request with an HTTP 415 Unsupported Media Type response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request.
", "Integration$cacheNamespace": "

Specifies the integration's cache namespace.

", "IntegrationResponse$selectionPattern": "

Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the .+ regex to match error response. However, make sure that the error response does not contain any newline (\\n) character in such cases. If the back end is an AWS Lambda function, the AWS Lambda function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.

", "LimitExceededException$retryAfterSeconds": null, @@ -1542,39 +1720,41 @@ "MethodSetting$loggingLevel": "

Specifies the logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The PATCH path for this setting is /{method_setting_key}/logging/loglevel, and the available levels are OFF, ERROR, and INFO.

", "MethodSnapshot$authorizationType": "

The method's authorization type. Valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS for using a Cognito user pool.

", "Model$id": "

The identifier for the model resource.

", - "Model$name": "

The name of the model.

", + "Model$name": "

The name of the model. Must be an alphanumeric string.

", "Model$description": "

The description of the model.

", "Model$schema": "

The schema for the model. For application/json models, this should be JSON-schema draft v4 model. Do not include \"\\*/\" characters in the description of any properties because such \"\\*/\" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail.

", "Model$contentType": "

The content-type for the model.

", "Models$position": null, "NotFoundException$message": null, "PatchOperation$path": "

The op operation's target, as identified by a JSON Pointer value that references a location within the targeted resource. For example, if the target resource has an updateable property of {\"name\":\"value\"}, the path for this property is /name. If the name property value is a JSON object (e.g., {\"name\": {\"child/name\": \"child-value\"}}), the path for the child/name property will be /name/child~1name. Any slash (\"/\") character appearing in path names must be escaped with \"~1\", as shown in the example above. Each op operation can have only one path associated with it.

", - "PatchOperation$value": "

The new target value of the update operation. When using AWS CLI to update a property of a JSON value, enclose the JSON object with a pair of single quotes in a Linux shell, e.g., '{\"a\": ...}'. In a Windows shell, see Using JSON for Parameters.

", - "PatchOperation$from": "

Not supported.

", + "PatchOperation$value": "

The new target value of the update operation. It is applicable for the add or replace operation. When using AWS CLI to update a property of a JSON value, enclose the JSON object with a pair of single quotes in a Linux shell, e.g., '{\"a\": ...}'. In a Windows shell, see Using JSON for Parameters.

", + "PatchOperation$from": "

The copy update operation's source as identified by a JSON-Pointer value referencing the location within the targeted resource to copy the value from. For example, to promote a canary deployment, you copy the canary deployment ID to the affiliated deployment ID by calling a PATCH request on a Stage resource with \"op\":\"copy\", \"from\":\"/canarySettings/deploymentId\" and \"path\":\"/deploymentId\".

", "PathToMapOfMethodSnapshot$key": null, - "PutIntegrationRequest$restApiId": "

Specifies a put integration request's API identifier.

", + "PutGatewayResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", + "PutIntegrationRequest$restApiId": "

The string identifier of the associated RestApi.

", "PutIntegrationRequest$resourceId": "

Specifies a put integration request's resource ID.

", "PutIntegrationRequest$httpMethod": "

Specifies a put integration request's HTTP method.

", "PutIntegrationRequest$integrationHttpMethod": "

Specifies a put integration HTTP method. When the integration type is HTTP or AWS, this field is required.

", - "PutIntegrationRequest$uri": "

Specifies a put integration input's Uniform Resource Identifier (URI). When the integration type is HTTP or AWS, this field is required. For integration with Lambda as an AWS service proxy, this value is of the 'arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/<functionArn>/invocations' format.

", + "PutIntegrationRequest$uri": "

Specifies Uniform Resource Identifier (URI) of the integration endpoint.

", + "PutIntegrationRequest$connectionId": "

The (id) of the VpcLink used for the integration when connectionType=VPC_LINK and undefined, otherwise.

", "PutIntegrationRequest$credentials": "

Specifies whether credentials are required for a put integration.

", "PutIntegrationRequest$passthroughBehavior": "

Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER.

", "PutIntegrationRequest$cacheNamespace": "

Specifies a put integration input's cache namespace.

", - "PutIntegrationResponseRequest$restApiId": "

Specifies a put integration response request's API identifier.

", + "PutIntegrationResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", "PutIntegrationResponseRequest$resourceId": "

Specifies a put integration response request's resource identifier.

", "PutIntegrationResponseRequest$httpMethod": "

Specifies a put integration response request's HTTP method.

", "PutIntegrationResponseRequest$selectionPattern": "

Specifies the selection pattern of a put integration response.

", - "PutMethodRequest$restApiId": "

The RestApi identifier for the new Method resource.

", + "PutMethodRequest$restApiId": "

The string identifier of the associated RestApi.

", "PutMethodRequest$resourceId": "

The Resource identifier for the new Method resource.

", "PutMethodRequest$httpMethod": "

Specifies the method request's HTTP method type.

", "PutMethodRequest$authorizationType": "

The method's authorization type. Valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS for using a Cognito user pool.

", "PutMethodRequest$authorizerId": "

Specifies the identifier of an Authorizer to use on this Method, if the type is CUSTOM.

", "PutMethodRequest$operationName": "

A human-friendly operation identifier for the method. For example, you can assign the operationName of ListPets for the GET /pets method in PetStore example.

", "PutMethodRequest$requestValidatorId": "

The identifier of a RequestValidator for validating the method request.

", - "PutMethodResponseRequest$restApiId": "

The RestApi identifier for the Method resource.

", + "PutMethodResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", "PutMethodResponseRequest$resourceId": "

The Resource identifier for the Method resource.

", "PutMethodResponseRequest$httpMethod": "

The HTTP verb of the Method resource.

", - "PutRestApiRequest$restApiId": "

The identifier of the RestApi to be updated.

", + "PutRestApiRequest$restApiId": "

The string identifier of the associated RestApi.

", "RequestValidator$id": "

The identifier of this RequestValidator.

", "RequestValidator$name": "

The name of this RequestValidator

", "RequestValidators$position": null, @@ -1583,7 +1763,7 @@ "Resource$pathPart": "

The last path segment for this resource.

", "Resource$path": "

The full path for this resource.

", "Resources$position": null, - "RestApi$id": "

The API's identifier. This identifier is unique across all of your APIs in Amazon API Gateway.

", + "RestApi$id": "

The API's identifier. This identifier is unique across all of your APIs in API Gateway.

", "RestApi$name": "

The API's name.

", "RestApi$description": "

The API's description.

", "RestApi$version": "

A version identifier for the API.

", @@ -1602,67 +1782,69 @@ "ServiceUnavailableException$message": null, "Stage$deploymentId": "

The identifier of the Deployment that the stage points to.

", "Stage$clientCertificateId": "

The identifier of a client certificate for an API stage.

", - "Stage$stageName": "

The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to Amazon API Gateway.

", + "Stage$stageName": "

The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway.

", "Stage$description": "

The stage's description.

", "Stage$documentationVersion": "

The version of the associated API documentation.

", - "StageKey$restApiId": "

A list of Stage resources that are associated with the ApiKey resource.

", - "StageKey$stageName": "

The stage name in the RestApi that the stage key references.

", + "StageKey$restApiId": "

The string identifier of the associated RestApi.

", + "StageKey$stageName": "

The stage name associated with the stage key.

", "Template$value": "

The Apache Velocity Template Language (VTL) template content used for the template resource.

", - "TestInvokeAuthorizerRequest$restApiId": "

Specifies a test invoke authorizer request's RestApi identifier.

", + "TestInvokeAuthorizerRequest$restApiId": "

The string identifier of the associated RestApi.

", "TestInvokeAuthorizerRequest$authorizerId": "

Specifies a test invoke authorizer request's Authorizer ID.

", "TestInvokeAuthorizerRequest$pathWithQueryString": "

[Optional] The URI path, including query string, of the simulated invocation request. Use this to specify path parameters and query string parameters.

", "TestInvokeAuthorizerRequest$body": "

[Optional] The simulated request body of an incoming invocation request.

", - "TestInvokeAuthorizerResponse$log": "

The Amazon API Gateway execution log for the test authorizer request.

", + "TestInvokeAuthorizerResponse$log": "

The API Gateway execution log for the test authorizer request.

", "TestInvokeAuthorizerResponse$principalId": "

The principal identity returned by the Authorizer

", "TestInvokeAuthorizerResponse$policy": "

The JSON policy document returned by the Authorizer

", - "TestInvokeMethodRequest$restApiId": "

Specifies a test invoke method request's API identifier.

", + "TestInvokeMethodRequest$restApiId": "

The string identifier of the associated RestApi.

", "TestInvokeMethodRequest$resourceId": "

Specifies a test invoke method request's resource ID.

", "TestInvokeMethodRequest$httpMethod": "

Specifies a test invoke method request's HTTP method.

", "TestInvokeMethodRequest$pathWithQueryString": "

The URI path, including query string, of the simulated invocation request. Use this to specify path parameters and query string parameters.

", "TestInvokeMethodRequest$body": "

The simulated request body of an incoming invocation request.

", "TestInvokeMethodRequest$clientCertificateId": "

A ClientCertificate identifier to use in the test invocation. API Gateway will use the certificate when making the HTTPS request to the defined back-end endpoint.

", "TestInvokeMethodResponse$body": "

The body of the HTTP response.

", - "TestInvokeMethodResponse$log": "

The Amazon API Gateway execution log for the test invoke request.

", + "TestInvokeMethodResponse$log": "

The API Gateway execution log for the test invoke request.

", "TooManyRequestsException$retryAfterSeconds": null, "TooManyRequestsException$message": null, "UnauthorizedException$message": null, "UpdateApiKeyRequest$apiKey": "

The identifier of the ApiKey resource to be updated.

", - "UpdateAuthorizerRequest$restApiId": "

The RestApi identifier for the Authorizer resource.

", + "UpdateAuthorizerRequest$restApiId": "

The string identifier of the associated RestApi.

", "UpdateAuthorizerRequest$authorizerId": "

The identifier of the Authorizer resource.

", "UpdateBasePathMappingRequest$domainName": "

The domain name of the BasePathMapping resource to change.

", "UpdateBasePathMappingRequest$basePath": "

The base path of the BasePathMapping resource to change.

", "UpdateClientCertificateRequest$clientCertificateId": "

The identifier of the ClientCertificate resource to be updated.

", - "UpdateDeploymentRequest$restApiId": "

The replacement identifier of the RestApi resource for the Deployment resource to change information about.

", + "UpdateDeploymentRequest$restApiId": "

The string identifier of the associated RestApi.

", "UpdateDeploymentRequest$deploymentId": "

The replacement identifier for the Deployment resource to change information about.

", - "UpdateDocumentationPartRequest$restApiId": "

[Required] The identifier of an API of the to-be-updated documentation part.

", + "UpdateDocumentationPartRequest$restApiId": "

[Required] The string identifier of the associated RestApi.

", "UpdateDocumentationPartRequest$documentationPartId": "

[Required] The identifier of the to-be-updated documentation part.

", - "UpdateDocumentationVersionRequest$restApiId": "

[Required] The identifier of an API of the to-be-updated documentation version.

", + "UpdateDocumentationVersionRequest$restApiId": "

[Required] The string identifier of the associated RestApi..

", "UpdateDocumentationVersionRequest$documentationVersion": "

[Required] The version identifier of the to-be-updated documentation version.

", "UpdateDomainNameRequest$domainName": "

The name of the DomainName resource to be changed.

", - "UpdateIntegrationRequest$restApiId": "

Represents an update integration request's API identifier.

", + "UpdateGatewayResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", + "UpdateIntegrationRequest$restApiId": "

The string identifier of the associated RestApi.

", "UpdateIntegrationRequest$resourceId": "

Represents an update integration request's resource identifier.

", "UpdateIntegrationRequest$httpMethod": "

Represents an update integration request's HTTP method.

", - "UpdateIntegrationResponseRequest$restApiId": "

Specifies an update integration response request's API identifier.

", + "UpdateIntegrationResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", "UpdateIntegrationResponseRequest$resourceId": "

Specifies an update integration response request's resource identifier.

", "UpdateIntegrationResponseRequest$httpMethod": "

Specifies an update integration response request's HTTP method.

", - "UpdateMethodRequest$restApiId": "

The RestApi identifier for the Method resource.

", + "UpdateMethodRequest$restApiId": "

The string identifier of the associated RestApi.

", "UpdateMethodRequest$resourceId": "

The Resource identifier for the Method resource.

", "UpdateMethodRequest$httpMethod": "

The HTTP verb of the Method resource.

", - "UpdateMethodResponseRequest$restApiId": "

The RestApi identifier for the MethodResponse resource.

", + "UpdateMethodResponseRequest$restApiId": "

The string identifier of the associated RestApi.

", "UpdateMethodResponseRequest$resourceId": "

The Resource identifier for the MethodResponse resource.

", "UpdateMethodResponseRequest$httpMethod": "

The HTTP verb of the Method resource.

", - "UpdateModelRequest$restApiId": "

The RestApi identifier under which the model exists.

", + "UpdateModelRequest$restApiId": "

The string identifier of the associated RestApi.

", "UpdateModelRequest$modelName": "

The name of the model to update.

", - "UpdateRequestValidatorRequest$restApiId": "

[Required] The identifier of the RestApi for which the given RequestValidator is updated.

", + "UpdateRequestValidatorRequest$restApiId": "

The string identifier of the associated RestApi.

", "UpdateRequestValidatorRequest$requestValidatorId": "

[Required] The identifier of RequestValidator to be updated.

", - "UpdateResourceRequest$restApiId": "

The RestApi identifier for the Resource resource.

", + "UpdateResourceRequest$restApiId": "

The string identifier of the associated RestApi.

", "UpdateResourceRequest$resourceId": "

The identifier of the Resource resource.

", - "UpdateRestApiRequest$restApiId": "

The ID of the RestApi you want to update.

", - "UpdateStageRequest$restApiId": "

The identifier of the RestApi resource for the Stage resource to change information about.

", + "UpdateRestApiRequest$restApiId": "

The string identifier of the associated RestApi.

", + "UpdateStageRequest$restApiId": "

The string identifier of the associated RestApi.

", "UpdateStageRequest$stageName": "

The name of the Stage resource to change information about.

", "UpdateUsagePlanRequest$usagePlanId": "

The Id of the to-be-updated usage plan.

", "UpdateUsageRequest$usagePlanId": "

The Id of the usage plan associated with the usage data.

", "UpdateUsageRequest$keyId": "

The identifier of the API key associated with the usage plan in which a temporary extension is granted to the remaining quota.

", + "UpdateVpcLinkRequest$vpcLinkId": "

[Required] The identifier of the VpcLink. It is used in an Integration to reference this VpcLink.

", "Usage$usagePlanId": "

The plan Id associated with this usage data.

", "Usage$startDate": "

The starting date of the usage data.

", "Usage$endDate": "

The ending date of the usage data.

", @@ -1676,7 +1858,12 @@ "UsagePlanKey$value": "

The value of a usage plan key.

", "UsagePlanKey$name": "

The name of a usage plan key.

", "UsagePlanKeys$position": null, - "UsagePlans$position": null + "UsagePlans$position": null, + "VpcLink$id": "

The identifier of the VpcLink. It is used in an Integration to reference this VpcLink.

", + "VpcLink$name": "

The name used to label and identify the VPC link.

", + "VpcLink$description": "

The description of the VPC link.

", + "VpcLink$statusMessage": "

A description about the VPC link status.

", + "VpcLinks$position": null } }, "Template": { @@ -1721,14 +1908,14 @@ "ClientCertificate$expirationDate": "

The timestamp when the client certificate will expire.

", "Deployment$createdDate": "

The date and time that the deployment resource was created.

", "DocumentationVersion$createdDate": "

The date when the API documentation snapshot is created.

", - "DomainName$certificateUploadDate": "

The timestamp when the certificate was uploaded.

", + "DomainName$certificateUploadDate": "

The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded.

", "RestApi$createdDate": "

The timestamp when the API was created.

", "Stage$createdDate": "

The timestamp when the stage was created.

", "Stage$lastUpdatedDate": "

The timestamp when the stage last updated.

" } }, "TooManyRequestsException": { - "base": null, + "base": "

The request has reached its throttling limit. Retry after the specified time period.

", "refs": { } }, @@ -1739,12 +1926,12 @@ } }, "UnauthorizedException": { - "base": null, + "base": "

The request is denied because the caller has insufficient permissions.

", "refs": { } }, "UpdateAccountRequest": { - "base": "

Requests Amazon API Gateway to change information about the current Account resource.

", + "base": "

Requests API Gateway to change information about the current Account resource.

", "refs": { } }, @@ -1769,7 +1956,7 @@ } }, "UpdateDeploymentRequest": { - "base": "

Requests Amazon API Gateway to change information about a Deployment resource.

", + "base": "

Requests API Gateway to change information about a Deployment resource.

", "refs": { } }, @@ -1788,6 +1975,11 @@ "refs": { } }, + "UpdateGatewayResponseRequest": { + "base": "

Updates a GatewayResponse of a specified response type on the given RestApi.

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

Represents an update integration request.

", "refs": { @@ -1829,7 +2021,7 @@ } }, "UpdateStageRequest": { - "base": "

Requests Amazon API Gateway to change information about a Stage resource.

", + "base": "

Requests API Gateway to change information about a Stage resource.

", "refs": { } }, @@ -1839,7 +2031,12 @@ } }, "UpdateUsageRequest": { - "base": "

The PATCH request to grant a temporary extension to the reamining quota of a usage plan associated with a specified API key.

", + "base": "

The PATCH request to grant a temporary extension to the remaining quota of a usage plan associated with a specified API key.

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

Updates an existing VpcLink of a specified identifier.

", "refs": { } }, @@ -1869,6 +2066,23 @@ "base": "

Represents a collection of usage plans for an AWS account.

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

A API Gateway VPC link for a RestApi to access resources in an Amazon Virtual Private Cloud (VPC).

To enable access to a resource in an Amazon Virtual Private Cloud through Amazon API Gateway, you, as an API developer, create a VpcLink resource targeted for one or more network load balancers of the VPC and then integrate an API method with a private integration that uses the VpcLink. The private integraiton has an integration type of HTTP or HTTP_PROXY and has a connection type of VPC_LINK. The integration uses the connectionId property to identify the VpcLink used.

", + "refs": { + "ListOfVpcLink$member": null + } + }, + "VpcLinkStatus": { + "base": null, + "refs": { + "VpcLink$status": "

The status of the VPC link. The valid values are AVAILABLE, PENDING, DELETING, or FAILED. Deploying an API will wait if the status is PENDING and will fail if the status is DELETING.

" + } + }, + "VpcLinks": { + "base": "

The collection of VPC links under the caller's account in a region.

", + "refs": { + } } } } diff --git a/models/apis/apigateway/2015-07-09/paginators-1.json b/models/apis/apigateway/2015-07-09/paginators-1.json index 8c972ac2adb..a095aef737d 100644 --- a/models/apis/apigateway/2015-07-09/paginators-1.json +++ b/models/apis/apigateway/2015-07-09/paginators-1.json @@ -65,6 +65,12 @@ "limit_key": "limit", "output_token": "position", "result_key": "items" + }, + "GetVpcLinks": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" } } } \ No newline at end of file diff --git a/models/apis/apigateway/2015-07-09/smoke.json b/models/apis/apigateway/2015-07-09/smoke.json new file mode 100644 index 00000000000..205de071caf --- /dev/null +++ b/models/apis/apigateway/2015-07-09/smoke.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "defaultRegion": "us-west-2", + "testCases": [ + { + "operationName": "GetDomainNames", + "input": {}, + "errorExpectedFromService": false + }, + { + "operationName": "CreateUsagePlanKey", + "input": { + "usagePlanId": "foo", + "keyId": "bar", + "keyType": "fixx" + }, + "errorExpectedFromService": true + } + ] +} diff --git a/models/apis/application-autoscaling/2016-02-06/api-2.json b/models/apis/application-autoscaling/2016-02-06/api-2.json index 69130ebcc5d..809f725151d 100644 --- a/models/apis/application-autoscaling/2016-02-06/api-2.json +++ b/models/apis/application-autoscaling/2016-02-06/api-2.json @@ -6,6 +6,7 @@ "jsonVersion":"1.1", "protocol":"json", "serviceFullName":"Application Auto Scaling", + "serviceId":"Application Auto Scaling", "signatureVersion":"v4", "signingName":"application-autoscaling", "targetPrefix":"AnyScaleFrontendService", @@ -27,6 +28,21 @@ {"shape":"InternalServiceException"} ] }, + "DeleteScheduledAction":{ + "name":"DeleteScheduledAction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteScheduledActionRequest"}, + "output":{"shape":"DeleteScheduledActionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ObjectNotFoundException"}, + {"shape":"ConcurrentUpdateException"}, + {"shape":"InternalServiceException"} + ] + }, "DeregisterScalableTarget":{ "name":"DeregisterScalableTarget", "http":{ @@ -88,6 +104,21 @@ {"shape":"InternalServiceException"} ] }, + "DescribeScheduledActions":{ + "name":"DescribeScheduledActions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeScheduledActionsRequest"}, + "output":{"shape":"DescribeScheduledActionsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ConcurrentUpdateException"}, + {"shape":"InternalServiceException"} + ] + }, "PutScalingPolicy":{ "name":"PutScalingPolicy", "http":{ @@ -105,6 +136,22 @@ {"shape":"InternalServiceException"} ] }, + "PutScheduledAction":{ + "name":"PutScheduledAction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutScheduledActionRequest"}, + "output":{"shape":"PutScheduledActionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"LimitExceededException"}, + {"shape":"ObjectNotFoundException"}, + {"shape":"ConcurrentUpdateException"}, + {"shape":"InternalServiceException"} + ] + }, "RegisterScalableTarget":{ "name":"RegisterScalableTarget", "http":{ @@ -188,6 +235,25 @@ "members":{ } }, + "DeleteScheduledActionRequest":{ + "type":"structure", + "required":[ + "ServiceNamespace", + "ScheduledActionName", + "ResourceId" + ], + "members":{ + "ServiceNamespace":{"shape":"ServiceNamespace"}, + "ScheduledActionName":{"shape":"ResourceIdMaxLen1600"}, + "ResourceId":{"shape":"ResourceIdMaxLen1600"}, + "ScalableDimension":{"shape":"ScalableDimension"} + } + }, + "DeleteScheduledActionResponse":{ + "type":"structure", + "members":{ + } + }, "DeregisterScalableTargetRequest":{ "type":"structure", "required":[ @@ -261,6 +327,26 @@ "NextToken":{"shape":"XmlString"} } }, + "DescribeScheduledActionsRequest":{ + "type":"structure", + "required":["ServiceNamespace"], + "members":{ + "ScheduledActionNames":{"shape":"ResourceIdsMaxLen1600"}, + "ServiceNamespace":{"shape":"ServiceNamespace"}, + "ResourceId":{"shape":"ResourceIdMaxLen1600"}, + "ScalableDimension":{"shape":"ScalableDimension"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"XmlString"} + } + }, + "DescribeScheduledActionsResponse":{ + "type":"structure", + "members":{ + "ScheduledActions":{"shape":"ScheduledActions"}, + "NextToken":{"shape":"XmlString"} + } + }, + "DisableScaleIn":{"type":"boolean"}, "ErrorMessage":{"type":"string"}, "FailedResourceAccessException":{ "type":"structure", @@ -333,7 +419,13 @@ "type":"string", "enum":[ "DynamoDBReadCapacityUtilization", - "DynamoDBWriteCapacityUtilization" + "DynamoDBWriteCapacityUtilization", + "ALBRequestCountPerTarget", + "RDSReaderAverageCPUUtilization", + "RDSReaderAverageDatabaseConnections", + "EC2SpotFleetRequestAverageCPUUtilization", + "EC2SpotFleetRequestAverageNetworkIn", + "EC2SpotFleetRequestAverageNetworkOut" ] }, "MetricUnit":{"type":"string"}, @@ -392,6 +484,29 @@ "Alarms":{"shape":"Alarms"} } }, + "PutScheduledActionRequest":{ + "type":"structure", + "required":[ + "ServiceNamespace", + "ScheduledActionName", + "ResourceId" + ], + "members":{ + "ServiceNamespace":{"shape":"ServiceNamespace"}, + "Schedule":{"shape":"ResourceIdMaxLen1600"}, + "ScheduledActionName":{"shape":"ScheduledActionName"}, + "ResourceId":{"shape":"ResourceIdMaxLen1600"}, + "ScalableDimension":{"shape":"ScalableDimension"}, + "StartTime":{"shape":"TimestampType"}, + "EndTime":{"shape":"TimestampType"}, + "ScalableTargetAction":{"shape":"ScalableTargetAction"} + } + }, + "PutScheduledActionResponse":{ + "type":"structure", + "members":{ + } + }, "RegisterScalableTargetRequest":{ "type":"structure", "required":[ @@ -443,7 +558,8 @@ "dynamodb:table:ReadCapacityUnits", "dynamodb:table:WriteCapacityUnits", "dynamodb:index:ReadCapacityUnits", - "dynamodb:index:WriteCapacityUnits" + "dynamodb:index:WriteCapacityUnits", + "rds:cluster:ReadReplicaCount" ] }, "ScalableTarget":{ @@ -467,6 +583,13 @@ "CreationTime":{"shape":"TimestampType"} } }, + "ScalableTargetAction":{ + "type":"structure", + "members":{ + "MinCapacity":{"shape":"ResourceCapacity"}, + "MaxCapacity":{"shape":"ResourceCapacity"} + } + }, "ScalableTargets":{ "type":"list", "member":{"shape":"ScalableTarget"} @@ -541,6 +664,39 @@ "CreationTime":{"shape":"TimestampType"} } }, + "ScheduledAction":{ + "type":"structure", + "required":[ + "ScheduledActionName", + "ScheduledActionARN", + "ServiceNamespace", + "Schedule", + "ResourceId", + "CreationTime" + ], + "members":{ + "ScheduledActionName":{"shape":"ScheduledActionName"}, + "ScheduledActionARN":{"shape":"ResourceIdMaxLen1600"}, + "ServiceNamespace":{"shape":"ServiceNamespace"}, + "Schedule":{"shape":"ResourceIdMaxLen1600"}, + "ResourceId":{"shape":"ResourceIdMaxLen1600"}, + "ScalableDimension":{"shape":"ScalableDimension"}, + "StartTime":{"shape":"TimestampType"}, + "EndTime":{"shape":"TimestampType"}, + "ScalableTargetAction":{"shape":"ScalableTargetAction"}, + "CreationTime":{"shape":"TimestampType"} + } + }, + "ScheduledActionName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"(?!((^[ ]+.*)|(.*([\\u0000-\\u001f]|[\\u007f-\\u009f]|[:/|])+.*)|(.*[ ]+$))).+" + }, + "ScheduledActions":{ + "type":"list", + "member":{"shape":"ScheduledAction"} + }, "ServiceNamespace":{ "type":"string", "enum":[ @@ -548,7 +704,8 @@ "elasticmapreduce", "ec2", "appstream", - "dynamodb" + "dynamodb", + "rds" ] }, "StepAdjustment":{ @@ -582,7 +739,8 @@ "PredefinedMetricSpecification":{"shape":"PredefinedMetricSpecification"}, "CustomizedMetricSpecification":{"shape":"CustomizedMetricSpecification"}, "ScaleOutCooldown":{"shape":"Cooldown"}, - "ScaleInCooldown":{"shape":"Cooldown"} + "ScaleInCooldown":{"shape":"Cooldown"}, + "DisableScaleIn":{"shape":"DisableScaleIn"} } }, "TimestampType":{"type":"timestamp"}, diff --git a/models/apis/application-autoscaling/2016-02-06/docs-2.json b/models/apis/application-autoscaling/2016-02-06/docs-2.json index 0b8e8ad61d1..d87ca3a88f4 100644 --- a/models/apis/application-autoscaling/2016-02-06/docs-2.json +++ b/models/apis/application-autoscaling/2016-02-06/docs-2.json @@ -1,13 +1,16 @@ { "version": "2.0", - "service": "

With Application Auto Scaling, you can automatically scale your AWS resources. The experience similar to that of Auto Scaling. You can use Application Auto Scaling to accomplish the following tasks:

Application Auto Scaling can scale the following AWS resources:

For a list of supported regions, see AWS Regions and Endpoints: Application Auto Scaling in the AWS General Reference.

", + "service": "

With Application Auto Scaling, you can automatically scale your AWS resources. The experience is similar to that of Auto Scaling. You can use Application Auto Scaling to accomplish the following tasks:

Application Auto Scaling can scale the following AWS resources:

For a list of supported regions, see AWS Regions and Endpoints: Application Auto Scaling in the AWS General Reference.

", "operations": { "DeleteScalingPolicy": "

Deletes the specified Application Auto Scaling scaling policy.

Deleting a policy deletes the underlying alarm action, but does not delete the CloudWatch alarm associated with the scaling policy, even if it no longer has an associated action.

To create a scaling policy or update an existing one, see PutScalingPolicy.

", + "DeleteScheduledAction": "

Deletes the specified Application Auto Scaling scheduled action.

", "DeregisterScalableTarget": "

Deregisters a scalable target.

Deregistering a scalable target deletes the scaling policies that are associated with it.

To create a scalable target or update an existing one, see RegisterScalableTarget.

", "DescribeScalableTargets": "

Provides descriptive information about the scalable targets in the specified namespace.

You can filter the results using the ResourceIds and ScalableDimension parameters.

To create a scalable target or update an existing one, see RegisterScalableTarget. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget.

", "DescribeScalingActivities": "

Provides descriptive information about the scaling activities in the specified namespace from the previous six weeks.

You can filter the results using the ResourceId and ScalableDimension parameters.

Scaling activities are triggered by CloudWatch alarms that are associated with scaling policies. To view the scaling policies for a service namespace, see DescribeScalingPolicies. To create a scaling policy or update an existing one, see PutScalingPolicy.

", - "DescribeScalingPolicies": "

Provides descriptive information about the scaling policies in the specified namespace.

You can filter the results using the ResourceId, ScalableDimension, and PolicyNames parameters.

To create a scaling policy or update an existing one, see PutScalingPolicy. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy.

", + "DescribeScalingPolicies": "

Describes the scaling policies for the specified service namespace.

You can filter the results using the ResourceId, ScalableDimension, and PolicyNames parameters.

To create a scaling policy or update an existing one, see PutScalingPolicy. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy.

", + "DescribeScheduledActions": "

Describes the scheduled actions for the specified service namespace.

You can filter the results using the ResourceId, ScalableDimension, and ScheduledActionNames parameters.

To create a scheduled action or update an existing one, see PutScheduledAction. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction.

", "PutScalingPolicy": "

Creates or updates a policy for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy without first registering a scalable target using RegisterScalableTarget.

To update a policy, specify its policy name and the parameters that you want to change. Any parameters that you don't specify are not changed by this update request.

You can view the scaling policies for a service namespace using DescribeScalingPolicies. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy.

", + "PutScheduledAction": "

Creates or updates a scheduled action for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action without first registering a scalable target using RegisterScalableTarget.

To update an action, specify its name and the parameters that you want to change. If you don't specify start and end times, the old values are deleted. Any other parameters that you don't specify are not changed by this update request.

You can view the scheduled actions using DescribeScheduledActions. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction.

", "RegisterScalableTarget": "

Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out or scale in. After you have registered a scalable target, you can use this operation to update the minimum and maximum values for your scalable dimension.

After you register a scalable target, you can create and apply scaling policies using PutScalingPolicy. You can view the scaling policies for a service namespace using DescribeScalableTargets. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget.

" }, "shapes": { @@ -59,6 +62,16 @@ "refs": { } }, + "DeleteScheduledActionRequest": { + "base": null, + "refs": { + } + }, + "DeleteScheduledActionResponse": { + "base": null, + "refs": { + } + }, "DeregisterScalableTargetRequest": { "base": null, "refs": { @@ -99,6 +112,22 @@ "refs": { } }, + "DescribeScheduledActionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeScheduledActionsResponse": { + "base": null, + "refs": { + } + }, + "DisableScaleIn": { + "base": null, + "refs": { + "TargetTrackingScalingPolicyConfiguration$DisableScaleIn": "

Indicates whether scale in by the target tracking policy is disabled. If the value is true, scale in is disabled and the target tracking policy won't remove capacity from the scalable resource. Otherwise, scale in is enabled and the target tracking policy can remove capacity from the scalable resource. The default value is false.

" + } + }, "ErrorMessage": { "base": null, "refs": { @@ -136,7 +165,8 @@ "refs": { "DescribeScalableTargetsRequest$MaxResults": "

The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

", "DescribeScalingActivitiesRequest$MaxResults": "

The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

", - "DescribeScalingPoliciesRequest$MaxResults": "

The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

" + "DescribeScalingPoliciesRequest$MaxResults": "

The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

", + "DescribeScheduledActionsRequest$MaxResults": "

The maximum number of scheduled action results. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

" } }, "MetricAggregationType": { @@ -198,7 +228,7 @@ "MetricType": { "base": null, "refs": { - "PredefinedMetricSpecification$PredefinedMetricType": "

The metric type.

" + "PredefinedMetricSpecification$PredefinedMetricType": "

The metric type. The ALBRequestCountPerTarget metric type applies only to Spot fleet requests.

" } }, "MetricUnit": { @@ -248,6 +278,16 @@ "refs": { } }, + "PutScheduledActionRequest": { + "base": null, + "refs": { + } + }, + "PutScheduledActionResponse": { + "base": null, + "refs": { + } + }, "RegisterScalableTargetRequest": { "base": null, "refs": { @@ -264,7 +304,9 @@ "RegisterScalableTargetRequest$MinCapacity": "

The minimum value to scale to in response to a scale in event. This parameter is required if you are registering a scalable target and optional if you are updating one.

", "RegisterScalableTargetRequest$MaxCapacity": "

The maximum value to scale to in response to a scale out event. This parameter is required if you are registering a scalable target and optional if you are updating one.

", "ScalableTarget$MinCapacity": "

The minimum value to scale to in response to a scale in event.

", - "ScalableTarget$MaxCapacity": "

The maximum value to scale to in response to a scale out event.

" + "ScalableTarget$MaxCapacity": "

The maximum value to scale to in response to a scale out event.

", + "ScalableTargetAction$MinCapacity": "

The minimum capacity.

", + "ScalableTargetAction$MaxCapacity": "

The maximum capacity.

" } }, "ResourceId": { @@ -279,48 +321,61 @@ "base": null, "refs": { "DeleteScalingPolicyRequest$PolicyName": "

The name of the scaling policy.

", - "DeleteScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", - "DeregisterScalableTargetRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", - "DescribeScalingActivitiesRequest$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScalingPoliciesRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", - "PutScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", + "DeleteScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", + "DeleteScheduledActionRequest$ScheduledActionName": "

The name of the scheduled action.

", + "DeleteScheduledActionRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier.

", + "DeregisterScalableTargetRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", + "DescribeScalingActivitiesRequest$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalingPoliciesRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScheduledActionsRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "PutScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", "PutScalingPolicyResponse$PolicyARN": "

The Amazon Resource Name (ARN) of the resulting scaling policy.

", - "RegisterScalableTargetRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", - "RegisterScalableTargetRequest$RoleARN": "

The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf. This parameter is required when you register a scalable target and optional when you update one.

", + "PutScheduledActionRequest$Schedule": "

The schedule for this action. The following formats are supported:

At expressions are useful for one-time schedules. Specify the time, in UTC.

For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days.

For more information about cron expressions, see Cron.

", + "PutScheduledActionRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier.

", + "RegisterScalableTargetRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", + "RegisterScalableTargetRequest$RoleARN": "

The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf.

With Amazon RDS resources, permissions are granted using a service-linked role. For more information, see Service-Linked Roles for Application Auto Scaling.

For resources that are not supported using a service-linked role, this parameter is required when you register a scalable target and optional when you update one.

", "ResourceIdsMaxLen1600$member": null, - "ScalableTarget$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", + "ScalableTarget$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", "ScalableTarget$RoleARN": "

The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf.

", - "ScalingActivity$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier.

", + "ScalingActivity$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier.

", "ScalingPolicy$PolicyARN": "

The Amazon Resource Name (ARN) of the scaling policy.

", - "ScalingPolicy$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

" + "ScalingPolicy$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", + "ScheduledAction$ScheduledActionARN": "

The Amazon Resource Name (ARN) of the scheduled action.

", + "ScheduledAction$Schedule": "

The schedule for this action. The following formats are supported:

At expressions are useful for one-time schedules. Specify the time, in UTC.

For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days.

For more information about cron expressions, see Cron.

", + "ScheduledAction$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

" } }, "ResourceIdsMaxLen1600": { "base": null, "refs": { - "DescribeScalableTargetsRequest$ResourceIds": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScalingPoliciesRequest$PolicyNames": "

The names of the scaling policies to describe.

" + "DescribeScalableTargetsRequest$ResourceIds": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalingPoliciesRequest$PolicyNames": "

The names of the scaling policies to describe.

", + "DescribeScheduledActionsRequest$ScheduledActionNames": "

The names of the scheduled actions to describe.

" } }, "ResourceLabel": { "base": null, "refs": { - "PredefinedMetricSpecification$ResourceLabel": "

Reserved for future use.

" + "PredefinedMetricSpecification$ResourceLabel": "

Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot fleet request.

The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>, where:

" } }, "ScalableDimension": { "base": null, "refs": { - "DeleteScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "DeregisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", - "DescribeScalableTargetsRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScalingActivitiesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScalingPoliciesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "PutScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "RegisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", - "ScalableTarget$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", - "ScalingActivity$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "ScalingPolicy$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

" + "DeleteScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "DeleteScheduledActionRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "DeregisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", + "DescribeScalableTargetsRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalingActivitiesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalingPoliciesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScheduledActionsRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "PutScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "PutScheduledActionRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "RegisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", + "ScalableTarget$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", + "ScalingActivity$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "ScalingPolicy$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "ScheduledAction$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

" } }, "ScalableTarget": { @@ -329,6 +384,13 @@ "ScalableTargets$member": null } }, + "ScalableTargetAction": { + "base": "

Represents the minimum and maximum capacity for a scheduled action.

", + "refs": { + "PutScheduledActionRequest$ScalableTargetAction": "

The new minimum and maximum capacity. You can set both values or just one. During the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity.

", + "ScheduledAction$ScalableTargetAction": "

The new minimum and maximum capacity. You can set both values or just one. During the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity.

" + } + }, "ScalableTargets": { "base": null, "refs": { @@ -362,7 +424,7 @@ "ScalingPolicies": { "base": null, "refs": { - "DescribeScalingPoliciesResponse$ScalingPolicies": "

A list of scaling policy objects.

" + "DescribeScalingPoliciesResponse$ScalingPolicies": "

Information about the scaling policies.

" } }, "ScalingPolicy": { @@ -371,19 +433,42 @@ "ScalingPolicies$member": null } }, + "ScheduledAction": { + "base": "

Represents a scheduled action.

", + "refs": { + "ScheduledActions$member": null + } + }, + "ScheduledActionName": { + "base": null, + "refs": { + "PutScheduledActionRequest$ScheduledActionName": "

The name of the scheduled action.

", + "ScheduledAction$ScheduledActionName": "

The name of the scheduled action.

" + } + }, + "ScheduledActions": { + "base": null, + "refs": { + "DescribeScheduledActionsResponse$ScheduledActions": "

Information about the scheduled actions.

" + } + }, "ServiceNamespace": { "base": null, "refs": { "DeleteScalingPolicyRequest$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", + "DeleteScheduledActionRequest$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", "DeregisterScalableTargetRequest$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", "DescribeScalableTargetsRequest$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", "DescribeScalingActivitiesRequest$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", "DescribeScalingPoliciesRequest$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", + "DescribeScheduledActionsRequest$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", "PutScalingPolicyRequest$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", + "PutScheduledActionRequest$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", "RegisterScalableTargetRequest$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", "ScalableTarget$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", "ScalingActivity$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", - "ScalingPolicy$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

" + "ScalingPolicy$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

", + "ScheduledAction$ServiceNamespace": "

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

" } }, "StepAdjustment": { @@ -415,10 +500,15 @@ "TimestampType": { "base": null, "refs": { + "PutScheduledActionRequest$StartTime": "

The date and time for the scheduled action to start.

", + "PutScheduledActionRequest$EndTime": "

The date and time for the scheduled action to end.

", "ScalableTarget$CreationTime": "

The Unix timestamp for when the scalable target was created.

", "ScalingActivity$StartTime": "

The Unix timestamp for when the scaling activity began.

", "ScalingActivity$EndTime": "

The Unix timestamp for when the scaling activity ended.

", - "ScalingPolicy$CreationTime": "

The Unix timestamp for when the scaling policy was created.

" + "ScalingPolicy$CreationTime": "

The Unix timestamp for when the scaling policy was created.

", + "ScheduledAction$StartTime": "

The date and time that the action is scheduled to begin.

", + "ScheduledAction$EndTime": "

The date and time that the action is scheduled to end.

", + "ScheduledAction$CreationTime": "

The date and time that the scheduled action was created.

" } }, "ValidationException": { @@ -435,6 +525,8 @@ "DescribeScalingActivitiesResponse$NextToken": "

The token required to get the next set of results. This value is null if there are no more results to return.

", "DescribeScalingPoliciesRequest$NextToken": "

The token for the next set of results.

", "DescribeScalingPoliciesResponse$NextToken": "

The token required to get the next set of results. This value is null if there are no more results to return.

", + "DescribeScheduledActionsRequest$NextToken": "

The token for the next set of results.

", + "DescribeScheduledActionsResponse$NextToken": "

The token required to get the next set of results. This value is null if there are no more results to return.

", "ScalingActivity$Description": "

A simple description of what action the scaling activity intends to accomplish.

", "ScalingActivity$Cause": "

A simple description of what caused the scaling activity to happen.

", "ScalingActivity$StatusMessage": "

A simple message about the current status of the scaling activity.

", diff --git a/models/apis/appstream/2016-12-01/api-2.json b/models/apis/appstream/2016-12-01/api-2.json index ece981dbbd1..73f184d097e 100644 --- a/models/apis/appstream/2016-12-01/api-2.json +++ b/models/apis/appstream/2016-12-01/api-2.json @@ -24,7 +24,21 @@ {"shape":"LimitExceededException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ConcurrentModificationException"}, - {"shape":"IncompatibleImageException"} + {"shape":"IncompatibleImageException"}, + {"shape":"OperationNotPermittedException"} + ] + }, + "CreateDirectoryConfig":{ + "name":"CreateDirectoryConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDirectoryConfigRequest"}, + "output":{"shape":"CreateDirectoryConfigResult"}, + "errors":[ + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"LimitExceededException"} ] }, "CreateFleet":{ @@ -41,7 +55,41 @@ {"shape":"ResourceNotFoundException"}, {"shape":"LimitExceededException"}, {"shape":"InvalidRoleException"}, - {"shape":"ConcurrentModificationException"} + {"shape":"ConcurrentModificationException"}, + {"shape":"InvalidParameterCombinationException"}, + {"shape":"IncompatibleImageException"} + ] + }, + "CreateImageBuilder":{ + "name":"CreateImageBuilder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateImageBuilderRequest"}, + "output":{"shape":"CreateImageBuilderResult"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceNotAvailableException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRoleException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InvalidParameterCombinationException"}, + {"shape":"IncompatibleImageException"} + ] + }, + "CreateImageBuilderStreamingURL":{ + "name":"CreateImageBuilderStreamingURL", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateImageBuilderStreamingURLRequest"}, + "output":{"shape":"CreateImageBuilderStreamingURLResult"}, + "errors":[ + {"shape":"OperationNotPermittedException"}, + {"shape":"ResourceNotFoundException"} ] }, "CreateStack":{ @@ -76,6 +124,19 @@ {"shape":"InvalidParameterCombinationException"} ] }, + "DeleteDirectoryConfig":{ + "name":"DeleteDirectoryConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDirectoryConfigRequest"}, + "output":{"shape":"DeleteDirectoryConfigResult"}, + "errors":[ + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "DeleteFleet":{ "name":"DeleteFleet", "http":{ @@ -90,6 +151,35 @@ {"shape":"ConcurrentModificationException"} ] }, + "DeleteImage":{ + "name":"DeleteImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteImageRequest"}, + "output":{"shape":"DeleteImageResult"}, + "errors":[ + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"ConcurrentModificationException"} + ] + }, + "DeleteImageBuilder":{ + "name":"DeleteImageBuilder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteImageBuilderRequest"}, + "output":{"shape":"DeleteImageBuilderResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "DeleteStack":{ "name":"DeleteStack", "http":{ @@ -104,6 +194,18 @@ {"shape":"ConcurrentModificationException"} ] }, + "DescribeDirectoryConfigs":{ + "name":"DescribeDirectoryConfigs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDirectoryConfigsRequest"}, + "output":{"shape":"DescribeDirectoryConfigsResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, "DescribeFleets":{ "name":"DescribeFleets", "http":{ @@ -116,6 +218,18 @@ {"shape":"ResourceNotFoundException"} ] }, + "DescribeImageBuilders":{ + "name":"DescribeImageBuilders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImageBuildersRequest"}, + "output":{"shape":"DescribeImageBuildersResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, "DescribeImages":{ "name":"DescribeImages", "http":{ @@ -208,6 +322,20 @@ {"shape":"ConcurrentModificationException"} ] }, + "StartImageBuilder":{ + "name":"StartImageBuilder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartImageBuilderRequest"}, + "output":{"shape":"StartImageBuilderResult"}, + "errors":[ + {"shape":"ResourceNotAvailableException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "StopFleet":{ "name":"StopFleet", "http":{ @@ -221,6 +349,34 @@ {"shape":"ConcurrentModificationException"} ] }, + "StopImageBuilder":{ + "name":"StopImageBuilder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopImageBuilderRequest"}, + "output":{"shape":"StopImageBuilderResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"ConcurrentModificationException"} + ] + }, + "UpdateDirectoryConfig":{ + "name":"UpdateDirectoryConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDirectoryConfigRequest"}, + "output":{"shape":"UpdateDirectoryConfigResult"}, + "errors":[ + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "UpdateFleet":{ "name":"UpdateFleet", "http":{ @@ -237,7 +393,8 @@ {"shape":"ResourceNotAvailableException"}, {"shape":"InvalidParameterCombinationException"}, {"shape":"ConcurrentModificationException"}, - {"shape":"IncompatibleImageException"} + {"shape":"IncompatibleImageException"}, + {"shape":"OperationNotPermittedException"} ] }, "UpdateStack":{ @@ -259,6 +416,17 @@ } }, "shapes":{ + "AccountName":{ + "type":"string", + "min":1, + "sensitive":true + }, + "AccountPassword":{ + "type":"string", + "max":127, + "min":1, + "sensitive":true + }, "Application":{ "type":"structure", "members":{ @@ -329,6 +497,25 @@ }, "exception":true }, + "CreateDirectoryConfigRequest":{ + "type":"structure", + "required":[ + "DirectoryName", + "OrganizationalUnitDistinguishedNames", + "ServiceAccountCredentials" + ], + "members":{ + "DirectoryName":{"shape":"DirectoryName"}, + "OrganizationalUnitDistinguishedNames":{"shape":"OrganizationalUnitDistinguishedNamesList"}, + "ServiceAccountCredentials":{"shape":"ServiceAccountCredentials"} + } + }, + "CreateDirectoryConfigResult":{ + "type":"structure", + "members":{ + "DirectoryConfig":{"shape":"DirectoryConfig"} + } + }, "CreateFleetRequest":{ "type":"structure", "required":[ @@ -341,13 +528,15 @@ "Name":{"shape":"Name"}, "ImageName":{"shape":"String"}, "InstanceType":{"shape":"String"}, + "FleetType":{"shape":"FleetType"}, "ComputeCapacity":{"shape":"ComputeCapacity"}, "VpcConfig":{"shape":"VpcConfig"}, "MaxUserDurationInSeconds":{"shape":"Integer"}, "DisconnectTimeoutInSeconds":{"shape":"Integer"}, "Description":{"shape":"Description"}, "DisplayName":{"shape":"DisplayName"}, - "EnableDefaultInternetAccess":{"shape":"BooleanObject"} + "EnableDefaultInternetAccess":{"shape":"BooleanObject"}, + "DomainJoinInfo":{"shape":"DomainJoinInfo"} } }, "CreateFleetResult":{ @@ -356,6 +545,45 @@ "Fleet":{"shape":"Fleet"} } }, + "CreateImageBuilderRequest":{ + "type":"structure", + "required":[ + "Name", + "ImageName", + "InstanceType" + ], + "members":{ + "Name":{"shape":"Name"}, + "ImageName":{"shape":"String"}, + "InstanceType":{"shape":"String"}, + "Description":{"shape":"Description"}, + "DisplayName":{"shape":"DisplayName"}, + "VpcConfig":{"shape":"VpcConfig"}, + "EnableDefaultInternetAccess":{"shape":"BooleanObject"}, + "DomainJoinInfo":{"shape":"DomainJoinInfo"} + } + }, + "CreateImageBuilderResult":{ + "type":"structure", + "members":{ + "ImageBuilder":{"shape":"ImageBuilder"} + } + }, + "CreateImageBuilderStreamingURLRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"}, + "Validity":{"shape":"Long"} + } + }, + "CreateImageBuilderStreamingURLResult":{ + "type":"structure", + "members":{ + "StreamingURL":{"shape":"String"}, + "Expires":{"shape":"Timestamp"} + } + }, "CreateStackRequest":{ "type":"structure", "required":["Name"], @@ -382,7 +610,7 @@ "members":{ "StackName":{"shape":"String"}, "FleetName":{"shape":"String"}, - "UserId":{"shape":"UserId"}, + "UserId":{"shape":"StreamingUrlUserId"}, "ApplicationId":{"shape":"String"}, "Validity":{"shape":"Long"}, "SessionContext":{"shape":"String"} @@ -395,6 +623,18 @@ "Expires":{"shape":"Timestamp"} } }, + "DeleteDirectoryConfigRequest":{ + "type":"structure", + "required":["DirectoryName"], + "members":{ + "DirectoryName":{"shape":"DirectoryName"} + } + }, + "DeleteDirectoryConfigResult":{ + "type":"structure", + "members":{ + } + }, "DeleteFleetRequest":{ "type":"structure", "required":["Name"], @@ -407,6 +647,32 @@ "members":{ } }, + "DeleteImageBuilderRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"Name"} + } + }, + "DeleteImageBuilderResult":{ + "type":"structure", + "members":{ + "ImageBuilder":{"shape":"ImageBuilder"} + } + }, + "DeleteImageRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"Name"} + } + }, + "DeleteImageResult":{ + "type":"structure", + "members":{ + "Image":{"shape":"Image"} + } + }, "DeleteStackRequest":{ "type":"structure", "required":["Name"], @@ -419,6 +685,21 @@ "members":{ } }, + "DescribeDirectoryConfigsRequest":{ + "type":"structure", + "members":{ + "DirectoryNames":{"shape":"DirectoryNameList"}, + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "DescribeDirectoryConfigsResult":{ + "type":"structure", + "members":{ + "DirectoryConfigs":{"shape":"DirectoryConfigList"}, + "NextToken":{"shape":"String"} + } + }, "DescribeFleetsRequest":{ "type":"structure", "members":{ @@ -433,6 +714,21 @@ "NextToken":{"shape":"String"} } }, + "DescribeImageBuildersRequest":{ + "type":"structure", + "members":{ + "Names":{"shape":"StringList"}, + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "DescribeImageBuildersResult":{ + "type":"structure", + "members":{ + "ImageBuilders":{"shape":"ImageBuilderList"}, + "NextToken":{"shape":"String"} + } + }, "DescribeImagesRequest":{ "type":"structure", "members":{ @@ -485,6 +781,25 @@ "type":"string", "max":256 }, + "DirectoryConfig":{ + "type":"structure", + "required":["DirectoryName"], + "members":{ + "DirectoryName":{"shape":"DirectoryName"}, + "OrganizationalUnitDistinguishedNames":{"shape":"OrganizationalUnitDistinguishedNamesList"}, + "ServiceAccountCredentials":{"shape":"ServiceAccountCredentials"}, + "CreatedTime":{"shape":"Timestamp"} + } + }, + "DirectoryConfigList":{ + "type":"list", + "member":{"shape":"DirectoryConfig"} + }, + "DirectoryName":{"type":"string"}, + "DirectoryNameList":{ + "type":"list", + "member":{"shape":"DirectoryName"} + }, "DisassociateFleetRequest":{ "type":"structure", "required":[ @@ -505,6 +820,13 @@ "type":"string", "max":100 }, + "DomainJoinInfo":{ + "type":"structure", + "members":{ + "DirectoryName":{"shape":"DirectoryName"}, + "OrganizationalUnitDistinguishedName":{"shape":"OrganizationalUnitDistinguishedName"} + } + }, "ErrorMessage":{"type":"string"}, "ExpireSessionRequest":{ "type":"structure", @@ -535,6 +857,7 @@ "Description":{"shape":"String"}, "ImageName":{"shape":"String"}, "InstanceType":{"shape":"String"}, + "FleetType":{"shape":"FleetType"}, "ComputeCapacityStatus":{"shape":"ComputeCapacityStatus"}, "MaxUserDurationInSeconds":{"shape":"Integer"}, "DisconnectTimeoutInSeconds":{"shape":"Integer"}, @@ -542,14 +865,16 @@ "VpcConfig":{"shape":"VpcConfig"}, "CreatedTime":{"shape":"Timestamp"}, "FleetErrors":{"shape":"FleetErrors"}, - "EnableDefaultInternetAccess":{"shape":"BooleanObject"} + "EnableDefaultInternetAccess":{"shape":"BooleanObject"}, + "DomainJoinInfo":{"shape":"DomainJoinInfo"} } }, "FleetAttribute":{ "type":"string", "enum":[ "VPC_CONFIGURATION", - "VPC_CONFIGURATION_SECURITY_GROUP_IDS" + "VPC_CONFIGURATION_SECURITY_GROUP_IDS", + "DOMAIN_JOIN_INFO" ] }, "FleetAttributes":{ @@ -576,7 +901,22 @@ "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION", "SUBNET_NOT_FOUND", "IMAGE_NOT_FOUND", - "INVALID_SUBNET_CONFIGURATION" + "INVALID_SUBNET_CONFIGURATION", + "SECURITY_GROUPS_NOT_FOUND", + "IGW_NOT_ATTACHED", + "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION", + "DOMAIN_JOIN_ERROR_FILE_NOT_FOUND", + "DOMAIN_JOIN_ERROR_ACCESS_DENIED", + "DOMAIN_JOIN_ERROR_LOGON_FAILURE", + "DOMAIN_JOIN_ERROR_INVALID_PARAMETER", + "DOMAIN_JOIN_ERROR_MORE_DATA", + "DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN", + "DOMAIN_JOIN_ERROR_NOT_SUPPORTED", + "DOMAIN_JOIN_NERR_INVALID_WORKGROUP_NAME", + "DOMAIN_JOIN_NERR_WORKSTATION_NOT_STARTED", + "DOMAIN_JOIN_ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED", + "DOMAIN_JOIN_NERR_PASSWORD_EXPIRED", + "DOMAIN_JOIN_INTERNAL_SERVICE_ERROR" ] }, "FleetErrors":{ @@ -596,6 +936,13 @@ "STOPPED" ] }, + "FleetType":{ + "type":"string", + "enum":[ + "ALWAYS_ON", + "ON_DEMAND" + ] + }, "Image":{ "type":"structure", "required":["Name"], @@ -615,6 +962,57 @@ "PublicBaseImageReleasedDate":{"shape":"Timestamp"} } }, + "ImageBuilder":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"}, + "Arn":{"shape":"Arn"}, + "ImageArn":{"shape":"Arn"}, + "Description":{"shape":"String"}, + "DisplayName":{"shape":"String"}, + "VpcConfig":{"shape":"VpcConfig"}, + "InstanceType":{"shape":"String"}, + "Platform":{"shape":"PlatformType"}, + "State":{"shape":"ImageBuilderState"}, + "StateChangeReason":{"shape":"ImageBuilderStateChangeReason"}, + "CreatedTime":{"shape":"Timestamp"}, + "EnableDefaultInternetAccess":{"shape":"BooleanObject"}, + "DomainJoinInfo":{"shape":"DomainJoinInfo"}, + "ImageBuilderErrors":{"shape":"ResourceErrors"} + } + }, + "ImageBuilderList":{ + "type":"list", + "member":{"shape":"ImageBuilder"} + }, + "ImageBuilderState":{ + "type":"string", + "enum":[ + "PENDING", + "RUNNING", + "STOPPING", + "STOPPED", + "REBOOTING", + "SNAPSHOTTING", + "DELETING", + "FAILED" + ] + }, + "ImageBuilderStateChangeReason":{ + "type":"structure", + "members":{ + "Code":{"shape":"ImageBuilderStateChangeReasonCode"}, + "Message":{"shape":"String"} + } + }, + "ImageBuilderStateChangeReasonCode":{ + "type":"string", + "enum":[ + "INTERNAL_ERROR", + "IMAGE_UNAVAILABLE" + ] + }, "ImageList":{ "type":"list", "member":{"shape":"Image"} @@ -718,6 +1116,14 @@ }, "exception":true }, + "OrganizationalUnitDistinguishedName":{ + "type":"string", + "max":2000 + }, + "OrganizationalUnitDistinguishedNamesList":{ + "type":"list", + "member":{"shape":"OrganizationalUnitDistinguishedName"} + }, "PlatformType":{ "type":"string", "enum":["WINDOWS"] @@ -729,6 +1135,18 @@ }, "exception":true }, + "ResourceError":{ + "type":"structure", + "members":{ + "ErrorCode":{"shape":"FleetErrorCode"}, + "ErrorMessage":{"shape":"String"}, + "ErrorTimestamp":{"shape":"Timestamp"} + } + }, + "ResourceErrors":{ + "type":"list", + "member":{"shape":"ResourceError"} + }, "ResourceIdentifier":{ "type":"string", "min":1 @@ -759,6 +1177,17 @@ "member":{"shape":"String"}, "max":5 }, + "ServiceAccountCredentials":{ + "type":"structure", + "required":[ + "AccountName", + "AccountPassword" + ], + "members":{ + "AccountName":{"shape":"AccountName"}, + "AccountPassword":{"shape":"AccountPassword"} + } + }, "Session":{ "type":"structure", "required":[ @@ -836,6 +1265,19 @@ "members":{ } }, + "StartImageBuilderRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"} + } + }, + "StartImageBuilderResult":{ + "type":"structure", + "members":{ + "ImageBuilder":{"shape":"ImageBuilder"} + } + }, "StopFleetRequest":{ "type":"structure", "required":["Name"], @@ -848,6 +1290,19 @@ "members":{ } }, + "StopImageBuilderRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"} + } + }, + "StopImageBuilderResult":{ + "type":"structure", + "members":{ + "ImageBuilder":{"shape":"ImageBuilder"} + } + }, "StorageConnector":{ "type":"structure", "required":["ConnectorType"], @@ -864,6 +1319,12 @@ "type":"string", "enum":["HOMEFOLDERS"] }, + "StreamingUrlUserId":{ + "type":"string", + "max":32, + "min":2, + "pattern":"[\\w+=,.@-]*" + }, "String":{ "type":"string", "min":1 @@ -877,6 +1338,21 @@ "member":{"shape":"String"} }, "Timestamp":{"type":"timestamp"}, + "UpdateDirectoryConfigRequest":{ + "type":"structure", + "required":["DirectoryName"], + "members":{ + "DirectoryName":{"shape":"DirectoryName"}, + "OrganizationalUnitDistinguishedNames":{"shape":"OrganizationalUnitDistinguishedNamesList"}, + "ServiceAccountCredentials":{"shape":"ServiceAccountCredentials"} + } + }, + "UpdateDirectoryConfigResult":{ + "type":"structure", + "members":{ + "DirectoryConfig":{"shape":"DirectoryConfig"} + } + }, "UpdateFleetRequest":{ "type":"structure", "required":["Name"], @@ -895,6 +1371,7 @@ "Description":{"shape":"Description"}, "DisplayName":{"shape":"DisplayName"}, "EnableDefaultInternetAccess":{"shape":"BooleanObject"}, + "DomainJoinInfo":{"shape":"DomainJoinInfo"}, "AttributesToDelete":{"shape":"FleetAttributes"} } }, diff --git a/models/apis/appstream/2016-12-01/docs-2.json b/models/apis/appstream/2016-12-01/docs-2.json index 915e4bbf0ca..f4111a8d487 100644 --- a/models/apis/appstream/2016-12-01/docs-2.json +++ b/models/apis/appstream/2016-12-01/docs-2.json @@ -1,29 +1,52 @@ { "version": "2.0", - "service": "Amazon AppStream 2.0

API documentation for Amazon AppStream 2.0.

", + "service": "Amazon AppStream 2.0

You can use Amazon AppStream 2.0 to stream desktop applications to any device running a web browser, without rewriting them.

", "operations": { - "AssociateFleet": "

Associate a fleet to a stack.

", - "CreateFleet": "

Creates a new fleet.

", - "CreateStack": "

Create a new stack.

", - "CreateStreamingURL": "

Creates a URL to start an AppStream 2.0 streaming session for a user. By default, the URL is valid only for 1 minute from the time that it is generated.

", - "DeleteFleet": "

Deletes a fleet.

", - "DeleteStack": "

Deletes the stack. After this operation completes, the environment can no longer be activated, and any reservations made for the stack are released.

", - "DescribeFleets": "

If fleet names are provided, this operation describes the specified fleets; otherwise, all the fleets in the account are described.

", - "DescribeImages": "

Describes the images. If a list of names is not provided, all images in your account are returned. This operation does not return a paginated result.

", - "DescribeSessions": "

Describes the streaming sessions for a stack and a fleet. If a user ID is provided, this operation returns streaming sessions for only that user. Pass this value for the nextToken parameter in a subsequent call to this operation to retrieve the next set of items. If an authentication type is not provided, the operation defaults to users authenticated using a streaming URL.

", - "DescribeStacks": "

If stack names are not provided, this operation describes the specified stacks; otherwise, all stacks in the account are described. Pass the nextToken value in a subsequent call to this operation to retrieve the next set of items.

", - "DisassociateFleet": "

Disassociates a fleet from a stack.

", - "ExpireSession": "

This operation immediately stops a streaming session.

", - "ListAssociatedFleets": "

Lists all fleets associated with the stack.

", - "ListAssociatedStacks": "

Lists all stacks to which the specified fleet is associated.

", - "StartFleet": "

Starts a fleet.

", - "StopFleet": "

Stops a fleet.

", - "UpdateFleet": "

Updates an existing fleet. All the attributes except the fleet name can be updated in the STOPPED state. When a fleet is in the RUNNING state, only DisplayName and ComputeCapacity can be updated. A fleet cannot be updated in a status of STARTING or STOPPING.

", - "UpdateStack": "

Updates the specified fields in the stack with the specified name.

" + "AssociateFleet": "

Associates the specified fleet with the specified stack.

", + "CreateDirectoryConfig": "

Creates a directory configuration.

", + "CreateFleet": "

Creates a fleet.

", + "CreateImageBuilder": null, + "CreateImageBuilderStreamingURL": null, + "CreateStack": "

Creates a stack.

", + "CreateStreamingURL": "

Creates a URL to start a streaming session for the specified user.

By default, the URL is valid only for one minute from the time that it is generated.

", + "DeleteDirectoryConfig": "

Deletes the specified directory configuration.

", + "DeleteFleet": "

Deletes the specified fleet.

", + "DeleteImage": null, + "DeleteImageBuilder": null, + "DeleteStack": "

Deletes the specified stack. After this operation completes, the environment can no longer be activated and any reservations made for the stack are released.

", + "DescribeDirectoryConfigs": "

Describes the specified directory configurations.

", + "DescribeFleets": "

Describes the specified fleets or all fleets in the account.

", + "DescribeImageBuilders": null, + "DescribeImages": "

Describes the specified images or all images in the account.

", + "DescribeSessions": "

Describes the streaming sessions for the specified stack and fleet. If a user ID is provided, only the streaming sessions for only that user are returned. If an authentication type is not provided, the default is to authenticate users using a streaming URL.

", + "DescribeStacks": "

Describes the specified stacks or all stacks in the account.

", + "DisassociateFleet": "

Disassociates the specified fleet from the specified stack.

", + "ExpireSession": "

Stops the specified streaming session.

", + "ListAssociatedFleets": "

Lists the fleets associated with the specified stack.

", + "ListAssociatedStacks": "

Lists the stacks associated with the specified fleet.

", + "StartFleet": "

Starts the specified fleet.

", + "StartImageBuilder": null, + "StopFleet": "

Stops the specified fleet.

", + "StopImageBuilder": null, + "UpdateDirectoryConfig": "

Updates the specified directory configuration.

", + "UpdateFleet": "

Updates the specified fleet.

If the fleet is in the STOPPED state, you can update any attribute except the fleet name. If the fleet is in the RUNNING state, you can update the DisplayName and ComputeCapacity attributes. If the fleet is in the STARTING or STOPPING state, you can't update it.

", + "UpdateStack": "

Updates the specified stack.

" }, "shapes": { + "AccountName": { + "base": null, + "refs": { + "ServiceAccountCredentials$AccountName": "

The user name of the account. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified.

" + } + }, + "AccountPassword": { + "base": null, + "refs": { + "ServiceAccountCredentials$AccountPassword": "

The password for the account.

" + } + }, "Application": { - "base": "

An entry for a single application in the application catalog.

", + "base": "

Describes an application in the application catalog.

", "refs": { "Applications$member": null } @@ -31,15 +54,17 @@ "Applications": { "base": null, "refs": { - "Image$Applications": "

The applications associated with an image.

" + "Image$Applications": "

The applications associated with the image.

" } }, "Arn": { "base": null, "refs": { "Fleet$Arn": "

The ARN for the fleet.

", - "Image$Arn": "

The ARN for the image.

", - "Image$BaseImageArn": "

The source image ARN from which this image was created.

", + "Image$Arn": "

The ARN of the image.

", + "Image$BaseImageArn": "

The ARN of the image from which this image was created.

", + "ImageBuilder$Arn": null, + "ImageBuilder$ImageArn": null, "Stack$Arn": "

The ARN of the stack.

" } }, @@ -56,38 +81,40 @@ "AuthenticationType": { "base": null, "refs": { - "DescribeSessionsRequest$AuthenticationType": "

The authentication method of the user. It can be API for a user authenticated using a streaming URL, or SAML for a SAML federated user. If an authentication type is not provided, the operation defaults to users authenticated using a streaming URL.

", - "Session$AuthenticationType": "

The authentication method of the user for whom the session was created. It can be API for a user authenticated using a streaming URL or SAML for a SAML federated user.

" + "DescribeSessionsRequest$AuthenticationType": "

The authentication method. Specify API for a user authenticated using a streaming URL or SAML for a SAML federated user. The default is to authenticate users using a streaming URL.

", + "Session$AuthenticationType": "

The authentication method. The user is authenticated using a streaming URL (API) or SAML federation (SAML).

" } }, "Boolean": { "base": null, "refs": { - "Application$Enabled": "

An application can be disabled after image creation if there is a problem.

", - "Image$ImageBuilderSupported": "

Whether an image builder can be launched from this image.

", - "UpdateFleetRequest$DeleteVpcConfig": "

Delete the VPC association for the specified fleet.

", - "UpdateStackRequest$DeleteStorageConnectors": "

Remove all the storage connectors currently enabled for the stack.

" + "Application$Enabled": "

If there is a problem, the application can be disabled after image creation.

", + "Image$ImageBuilderSupported": "

Indicates whether an image builder can be launched from this image.

", + "UpdateFleetRequest$DeleteVpcConfig": "

Deletes the VPC association for the specified fleet.

", + "UpdateStackRequest$DeleteStorageConnectors": "

Deletes the storage connectors currently enabled for the stack.

" } }, "BooleanObject": { "base": null, "refs": { - "CreateFleetRequest$EnableDefaultInternetAccess": "

Enables or disables default Internet access for the fleet.

", - "Fleet$EnableDefaultInternetAccess": "

Whether default Internet access is enabled for the fleet.

", - "UpdateFleetRequest$EnableDefaultInternetAccess": "

Enables or disables default Internet access for the fleet.

" + "CreateFleetRequest$EnableDefaultInternetAccess": "

Enables or disables default internet access for the fleet.

", + "CreateImageBuilderRequest$EnableDefaultInternetAccess": null, + "Fleet$EnableDefaultInternetAccess": "

Indicates whether default internet access is enabled for the fleet.

", + "ImageBuilder$EnableDefaultInternetAccess": null, + "UpdateFleetRequest$EnableDefaultInternetAccess": "

Enables or disables default internet access for the fleet.

" } }, "ComputeCapacity": { - "base": "

The capacity configuration for the fleet.

", + "base": "

Describes the capacity for a fleet.

", "refs": { - "CreateFleetRequest$ComputeCapacity": "

The parameters for the capacity allocated to the fleet.

", - "UpdateFleetRequest$ComputeCapacity": "

The parameters for the capacity allocated to the fleet.

" + "CreateFleetRequest$ComputeCapacity": "

The desired capacity for the fleet.

", + "UpdateFleetRequest$ComputeCapacity": "

The desired capacity for the fleet.

" } }, "ComputeCapacityStatus": { - "base": "

The capacity information for the fleet.

", + "base": "

Describes the capacity status for a fleet.

", "refs": { - "Fleet$ComputeCapacityStatus": "

The capacity information for the fleet.

" + "Fleet$ComputeCapacityStatus": "

The capacity status for the fleet.

" } }, "ConcurrentModificationException": { @@ -95,8 +122,18 @@ "refs": { } }, + "CreateDirectoryConfigRequest": { + "base": null, + "refs": { + } + }, + "CreateDirectoryConfigResult": { + "base": null, + "refs": { + } + }, "CreateFleetRequest": { - "base": "

Contains the parameters for the new fleet to create.

", + "base": null, "refs": { } }, @@ -105,6 +142,26 @@ "refs": { } }, + "CreateImageBuilderRequest": { + "base": null, + "refs": { + } + }, + "CreateImageBuilderResult": { + "base": null, + "refs": { + } + }, + "CreateImageBuilderStreamingURLRequest": { + "base": null, + "refs": { + } + }, + "CreateImageBuilderStreamingURLResult": { + "base": null, + "refs": { + } + }, "CreateStackRequest": { "base": null, "refs": { @@ -125,6 +182,16 @@ "refs": { } }, + "DeleteDirectoryConfigRequest": { + "base": null, + "refs": { + } + }, + "DeleteDirectoryConfigResult": { + "base": null, + "refs": { + } + }, "DeleteFleetRequest": { "base": null, "refs": { @@ -135,6 +202,26 @@ "refs": { } }, + "DeleteImageBuilderRequest": { + "base": null, + "refs": { + } + }, + "DeleteImageBuilderResult": { + "base": null, + "refs": { + } + }, + "DeleteImageRequest": { + "base": null, + "refs": { + } + }, + "DeleteImageResult": { + "base": null, + "refs": { + } + }, "DeleteStackRequest": { "base": null, "refs": { @@ -145,6 +232,16 @@ "refs": { } }, + "DescribeDirectoryConfigsRequest": { + "base": null, + "refs": { + } + }, + "DescribeDirectoryConfigsResult": { + "base": null, + "refs": { + } + }, "DescribeFleetsRequest": { "base": null, "refs": { @@ -155,6 +252,16 @@ "refs": { } }, + "DescribeImageBuildersRequest": { + "base": null, + "refs": { + } + }, + "DescribeImageBuildersResult": { + "base": null, + "refs": { + } + }, "DescribeImagesRequest": { "base": null, "refs": { @@ -188,10 +295,42 @@ "Description": { "base": null, "refs": { - "CreateFleetRequest$Description": "

The description of the fleet.

", - "CreateStackRequest$Description": "

The description displayed to end users on the AppStream 2.0 portal.

", - "UpdateFleetRequest$Description": "

The description displayed to end users on the AppStream 2.0 portal.

", - "UpdateStackRequest$Description": "

The description displayed to end users on the AppStream 2.0 portal.

" + "CreateFleetRequest$Description": "

The description displayed to end users.

", + "CreateImageBuilderRequest$Description": null, + "CreateStackRequest$Description": "

The description displayed to end users.

", + "UpdateFleetRequest$Description": "

The description displayed to end users.

", + "UpdateStackRequest$Description": "

The description displayed to end users.

" + } + }, + "DirectoryConfig": { + "base": "

Configuration information for the directory used to join domains.

", + "refs": { + "CreateDirectoryConfigResult$DirectoryConfig": "

Information about the directory configuration.

", + "DirectoryConfigList$member": null, + "UpdateDirectoryConfigResult$DirectoryConfig": "

Information about the directory configuration.

" + } + }, + "DirectoryConfigList": { + "base": null, + "refs": { + "DescribeDirectoryConfigsResult$DirectoryConfigs": "

Information about the directory configurations.

" + } + }, + "DirectoryName": { + "base": null, + "refs": { + "CreateDirectoryConfigRequest$DirectoryName": "

The fully qualified name of the directory (for example, corp.example.com).

", + "DeleteDirectoryConfigRequest$DirectoryName": "

The name of the directory configuration.

", + "DirectoryConfig$DirectoryName": "

The fully qualified name of the directory (for example, corp.example.com).

", + "DirectoryNameList$member": null, + "DomainJoinInfo$DirectoryName": "

The fully qualified name of the directory (for example, corp.example.com).

", + "UpdateDirectoryConfigRequest$DirectoryName": "

The name of the directory configuration.

" + } + }, + "DirectoryNameList": { + "base": null, + "refs": { + "DescribeDirectoryConfigsRequest$DirectoryNames": "

The directory names.

" } }, "DisassociateFleetRequest": { @@ -207,10 +346,21 @@ "DisplayName": { "base": null, "refs": { - "CreateFleetRequest$DisplayName": "

The display name of the fleet.

", - "CreateStackRequest$DisplayName": "

The name displayed to end users on the AppStream 2.0 portal.

", - "UpdateFleetRequest$DisplayName": "

The name displayed to end users on the AppStream 2.0 portal.

", - "UpdateStackRequest$DisplayName": "

The name displayed to end users on the AppStream 2.0 portal.

" + "CreateFleetRequest$DisplayName": "

The fleet name displayed to end users.

", + "CreateImageBuilderRequest$DisplayName": null, + "CreateStackRequest$DisplayName": "

The stack name displayed to end users.

", + "UpdateFleetRequest$DisplayName": "

The fleet name displayed to end users.

", + "UpdateStackRequest$DisplayName": "

The stack name displayed to end users.

" + } + }, + "DomainJoinInfo": { + "base": "

Contains the information needed for streaming instances to join a domain.

", + "refs": { + "CreateFleetRequest$DomainJoinInfo": "

The information needed for streaming instances to join a domain.

", + "CreateImageBuilderRequest$DomainJoinInfo": null, + "Fleet$DomainJoinInfo": "

The information needed for streaming instances to join a domain.

", + "ImageBuilder$DomainJoinInfo": null, + "UpdateFleetRequest$DomainJoinInfo": "

The information needed for streaming instances to join a domain.

" } }, "ErrorMessage": { @@ -241,25 +391,25 @@ "Fleet": { "base": "

Contains the parameters for a fleet.

", "refs": { - "CreateFleetResult$Fleet": "

The details for the created fleet.

", + "CreateFleetResult$Fleet": "

Information about the fleet.

", "FleetList$member": null, - "UpdateFleetResult$Fleet": "

A list of fleet details.

" + "UpdateFleetResult$Fleet": "

Information about the fleet.

" } }, "FleetAttribute": { - "base": "

Fleet attribute.

", + "base": "

The fleet attribute.

", "refs": { "FleetAttributes$member": null } }, "FleetAttributes": { - "base": "

A list of fleet attributes.

", + "base": "

The fleet attributes.

", "refs": { - "UpdateFleetRequest$AttributesToDelete": "

Fleet attributes to be deleted.

" + "UpdateFleetRequest$AttributesToDelete": "

The fleet attributes to delete.

" } }, "FleetError": { - "base": "

The details of the fleet error.

", + "base": "

Describes a fleet error.

", "refs": { "FleetErrors$member": null } @@ -267,19 +417,20 @@ "FleetErrorCode": { "base": null, "refs": { - "FleetError$ErrorCode": "

The error code for the fleet error.

" + "FleetError$ErrorCode": "

The error code.

", + "ResourceError$ErrorCode": null } }, "FleetErrors": { "base": null, "refs": { - "Fleet$FleetErrors": "

The list of fleet errors is appended to this list.

" + "Fleet$FleetErrors": "

The fleet errors.

" } }, "FleetList": { - "base": "

A list of fleets.

", + "base": "

The fleets.

", "refs": { - "DescribeFleetsResult$Fleets": "

The list of fleet details.

" + "DescribeFleetsResult$Fleets": "

Information about the fleets.

" } }, "FleetState": { @@ -288,26 +439,68 @@ "Fleet$State": "

The current state for the fleet.

" } }, + "FleetType": { + "base": null, + "refs": { + "CreateFleetRequest$FleetType": null, + "Fleet$FleetType": null + } + }, "Image": { - "base": "

New streaming instances are booted from images. The image stores the application catalog and is connected to fleets.

", + "base": "

Describes an image.

", "refs": { + "DeleteImageResult$Image": null, "ImageList$member": null } }, + "ImageBuilder": { + "base": null, + "refs": { + "CreateImageBuilderResult$ImageBuilder": null, + "DeleteImageBuilderResult$ImageBuilder": null, + "ImageBuilderList$member": null, + "StartImageBuilderResult$ImageBuilder": null, + "StopImageBuilderResult$ImageBuilder": null + } + }, + "ImageBuilderList": { + "base": null, + "refs": { + "DescribeImageBuildersResult$ImageBuilders": null + } + }, + "ImageBuilderState": { + "base": null, + "refs": { + "ImageBuilder$State": null + } + }, + "ImageBuilderStateChangeReason": { + "base": null, + "refs": { + "ImageBuilder$StateChangeReason": null + } + }, + "ImageBuilderStateChangeReasonCode": { + "base": null, + "refs": { + "ImageBuilderStateChangeReason$Code": null + } + }, "ImageList": { "base": null, "refs": { - "DescribeImagesResult$Images": "

The list of images.

" + "DescribeImagesResult$Images": "

Information about the images.

" } }, "ImageState": { "base": null, "refs": { - "Image$State": "

The image starts in the PENDING state, and then moves to AVAILABLE if image creation succeeds and FAILED if image creation has failed.

" + "Image$State": "

The image starts in the PENDING state. If image creation succeeds, the state is AVAILABLE. If image creation fails, the state is FAILED.

" } }, "ImageStateChangeReason": { - "base": "

The reason why the last state change occurred.

", + "base": "

Describes the reason why the last state change occurred.

", "refs": { "Image$StateChangeReason": "

The reason why the last state change occurred.

" } @@ -315,7 +508,7 @@ "ImageStateChangeReasonCode": { "base": null, "refs": { - "ImageStateChangeReason$Code": "

The state change reason code of the image.

" + "ImageStateChangeReason$Code": "

The state change reason code.

" } }, "IncompatibleImageException": { @@ -329,15 +522,17 @@ "ComputeCapacity$DesiredInstances": "

The desired number of streaming instances.

", "ComputeCapacityStatus$Desired": "

The desired number of streaming instances.

", "ComputeCapacityStatus$Running": "

The total number of simultaneous streaming instances that are running.

", - "ComputeCapacityStatus$InUse": "

The number of instances that are being used for streaming.

", + "ComputeCapacityStatus$InUse": "

The number of instances in use for streaming.

", "ComputeCapacityStatus$Available": "

The number of currently available instances that can be used to stream sessions.

", - "CreateFleetRequest$MaxUserDurationInSeconds": "

The maximum time for which a streaming session can run. The input can be any numeric value in seconds between 600 and 57600.

", - "CreateFleetRequest$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600.

", - "DescribeSessionsRequest$Limit": "

The size of each page of results. The default value is 20 and the maximum supported value is 50.

", - "Fleet$MaxUserDurationInSeconds": "

The maximum time for which a streaming session can run. The value can be any numeric value in seconds between 600 and 57600.

", - "Fleet$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600.

", - "UpdateFleetRequest$MaxUserDurationInSeconds": "

The maximum time for which a streaming session can run. The input can be any numeric value in seconds between 600 and 57600.

", - "UpdateFleetRequest$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600.

" + "CreateFleetRequest$MaxUserDurationInSeconds": "

The maximum time that a streaming session can run, in seconds. Specify a value between 600 and 57600.

", + "CreateFleetRequest$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended, in seconds. If a user who was disconnected reconnects within this time interval, the user is connected to their previous session. Specify a value between 60 and 57600.

", + "DescribeDirectoryConfigsRequest$MaxResults": "

The maximum size of each page of results.

", + "DescribeImageBuildersRequest$MaxResults": null, + "DescribeSessionsRequest$Limit": "

The size of each page of results. The default value is 20 and the maximum value is 50.

", + "Fleet$MaxUserDurationInSeconds": "

The maximum time that a streaming session can run, in seconds. Specify a value between 600 and 57600.

", + "Fleet$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended, in seconds. If a user who was disconnected reconnects within this time interval, the user is connected to their previous session. Specify a value between 60 and 57600.

", + "UpdateFleetRequest$MaxUserDurationInSeconds": "

The maximum time that a streaming session can run, in seconds. Specify a value between 600 and 57600.

", + "UpdateFleetRequest$DisconnectTimeoutInSeconds": "

The time after disconnection when a session is considered to have ended, in seconds. If a user who was disconnected reconnects within this time interval, the user is connected to their previous session. Specify a value between 60 and 57600.

" } }, "InvalidParameterCombinationException": { @@ -361,7 +556,7 @@ } }, "ListAssociatedFleetsResult": { - "base": "

The response from a successful operation.

", + "base": null, "refs": { } }, @@ -371,14 +566,15 @@ } }, "ListAssociatedStacksResult": { - "base": "

The response from a successful operation.

", + "base": null, "refs": { } }, "Long": { "base": null, "refs": { - "CreateStreamingURLRequest$Validity": "

The duration up to which the URL returned by this action is valid. The input can be any numeric value in seconds between 1 and 604800 seconds.

" + "CreateImageBuilderStreamingURLRequest$Validity": null, + "CreateStreamingURLRequest$Validity": "

The time that the streaming URL will be valid, in seconds. Specify a value between 1 and 604800 seconds.

" } }, "Metadata": { @@ -390,7 +586,10 @@ "Name": { "base": null, "refs": { - "CreateFleetRequest$Name": "

A unique identifier for the fleet.

" + "CreateFleetRequest$Name": "

A unique name for the fleet.

", + "CreateImageBuilderRequest$Name": null, + "DeleteImageBuilderRequest$Name": null, + "DeleteImageRequest$Name": null } }, "OperationNotPermittedException": { @@ -398,10 +597,26 @@ "refs": { } }, + "OrganizationalUnitDistinguishedName": { + "base": null, + "refs": { + "DomainJoinInfo$OrganizationalUnitDistinguishedName": "

The distinguished name of the organizational unit for computer accounts.

", + "OrganizationalUnitDistinguishedNamesList$member": null + } + }, + "OrganizationalUnitDistinguishedNamesList": { + "base": null, + "refs": { + "CreateDirectoryConfigRequest$OrganizationalUnitDistinguishedNames": "

The distinguished names of the organizational units for computer accounts.

", + "DirectoryConfig$OrganizationalUnitDistinguishedNames": "

The distinguished names of the organizational units for computer accounts.

", + "UpdateDirectoryConfigRequest$OrganizationalUnitDistinguishedNames": "

The distinguished names of the organizational units for computer accounts.

" + } + }, "PlatformType": { "base": null, "refs": { - "Image$Platform": "

The operating system platform of the image.

" + "Image$Platform": "

The operating system platform of the image.

", + "ImageBuilder$Platform": null } }, "ResourceAlreadyExistsException": { @@ -409,10 +624,22 @@ "refs": { } }, + "ResourceError": { + "base": null, + "refs": { + "ResourceErrors$member": null + } + }, + "ResourceErrors": { + "base": null, + "refs": { + "ImageBuilder$ImageBuilderErrors": null + } + }, "ResourceIdentifier": { "base": "

The ARN of the resource.

", "refs": { - "StorageConnector$ResourceIdentifier": "

The ARN associated with the storage connector.

" + "StorageConnector$ResourceIdentifier": "

The ARN of the storage connector.

" } }, "ResourceInUseException": { @@ -431,13 +658,21 @@ } }, "SecurityGroupIdList": { - "base": "

A list of security groups.

", + "base": "

The security group IDs.

", "refs": { - "VpcConfig$SecurityGroupIds": "

Security groups associated with the fleet.

" + "VpcConfig$SecurityGroupIds": "

The security groups for the fleet.

" + } + }, + "ServiceAccountCredentials": { + "base": "

Describes the credentials for the service account used by the streaming instance to connect to the directory.

", + "refs": { + "CreateDirectoryConfigRequest$ServiceAccountCredentials": "

The credentials for the service account used by the streaming instance to connect to the directory.

", + "DirectoryConfig$ServiceAccountCredentials": "

The credentials for the service account used by the streaming instance to connect to the directory.

", + "UpdateDirectoryConfigRequest$ServiceAccountCredentials": "

The credentials for the service account used by the streaming instance to connect to the directory.

" } }, "Session": { - "base": "

Contains the parameters for a streaming session.

", + "base": "

Describes a streaming session.

", "refs": { "SessionList$member": null } @@ -445,7 +680,7 @@ "SessionList": { "base": "

List of sessions.

", "refs": { - "DescribeSessionsResult$Sessions": "

The list of streaming sessions.

" + "DescribeSessionsResult$Sessions": "

Information about the streaming sessions.

" } }, "SessionState": { @@ -455,15 +690,15 @@ } }, "Stack": { - "base": "

Details about a stack.

", + "base": "

Describes a stack.

", "refs": { - "CreateStackResult$Stack": "

The details for the created stack.

", + "CreateStackResult$Stack": "

Information about the stack.

", "StackList$member": null, - "UpdateStackResult$Stack": "

A list of stack details.

" + "UpdateStackResult$Stack": "

Information about the stack.

" } }, "StackError": { - "base": "

Contains the parameters for a stack error.

", + "base": "

Describes a stack error.

", "refs": { "StackErrors$member": null } @@ -471,19 +706,19 @@ "StackErrorCode": { "base": null, "refs": { - "StackError$ErrorCode": "

The error code of a stack error.

" + "StackError$ErrorCode": "

The error code.

" } }, "StackErrors": { - "base": "

A list of stack errors.

", + "base": "

The stack errors.

", "refs": { - "Stack$StackErrors": "

The list of errors associated with the stack.

" + "Stack$StackErrors": "

The errors for the stack.

" } }, "StackList": { - "base": "

A list of stacks.

", + "base": "

The stacks.

", "refs": { - "DescribeStacksResult$Stacks": "

The list of stack details.

" + "DescribeStacksResult$Stacks": "

Information about the stacks.

" } }, "StartFleetRequest": { @@ -496,6 +731,16 @@ "refs": { } }, + "StartImageBuilderRequest": { + "base": null, + "refs": { + } + }, + "StartImageBuilderResult": { + "base": null, + "refs": { + } + }, "StopFleetRequest": { "base": null, "refs": { @@ -506,117 +751,164 @@ "refs": { } }, + "StopImageBuilderRequest": { + "base": null, + "refs": { + } + }, + "StopImageBuilderResult": { + "base": null, + "refs": { + } + }, "StorageConnector": { - "base": "

Contains the parameters for a storage connector.

", + "base": "

Describes a storage connector.

", "refs": { "StorageConnectorList$member": null } }, "StorageConnectorList": { - "base": "

A list of storage connectors.

", + "base": "

The storage connectors.

", "refs": { - "CreateStackRequest$StorageConnectors": "

The storage connectors to be enabled for the stack.

", - "Stack$StorageConnectors": "

The storage connectors to be enabled for the stack.

", - "UpdateStackRequest$StorageConnectors": "

The storage connectors to be enabled for the stack.

" + "CreateStackRequest$StorageConnectors": "

The storage connectors to enable.

", + "Stack$StorageConnectors": "

The storage connectors to enable.

", + "UpdateStackRequest$StorageConnectors": "

The storage connectors to enable.

" } }, "StorageConnectorType": { - "base": "

The type of storage connector. The possible values include: HOMEFOLDERS.

", + "base": "

The type of storage connector.

", + "refs": { + "StorageConnector$ConnectorType": "

The type of storage connector.

" + } + }, + "StreamingUrlUserId": { + "base": null, "refs": { - "StorageConnector$ConnectorType": "

The type of storage connector. The possible values include: HOMEFOLDERS.

" + "CreateStreamingURLRequest$UserId": "

The ID of the user.

" } }, "String": { "base": null, "refs": { - "Application$Name": "

The unique identifier for the application.

", - "Application$DisplayName": "

The name of the application shown to the end users.

", - "Application$IconURL": "

The URL for the application icon. This URL may be time-limited.

", + "Application$Name": "

The name of the application.

", + "Application$DisplayName": "

The application name displayed to end users.

", + "Application$IconURL": "

The URL for the application icon. This URL might be time-limited.

", "Application$LaunchPath": "

The path to the application executable in the instance.

", - "Application$LaunchParameters": "

A list of arguments that are passed to the application at launch.

", - "AssociateFleetRequest$FleetName": "

The name of the fleet to associate.

", - "AssociateFleetRequest$StackName": "

The name of the stack to which the fleet is associated.

", - "CreateFleetRequest$ImageName": "

Unique name of the image used by the fleet.

", - "CreateFleetRequest$InstanceType": "

The instance type of compute resources for the fleet. Fleet instances are launched from this instance type.

", - "CreateStackRequest$Name": "

The unique identifier for this stack.

", - "CreateStreamingURLRequest$StackName": "

The stack for which the URL is generated.

", - "CreateStreamingURLRequest$FleetName": "

The fleet for which the URL is generated.

", + "Application$LaunchParameters": "

The arguments that are passed to the application at launch.

", + "AssociateFleetRequest$FleetName": "

The name of the fleet.

", + "AssociateFleetRequest$StackName": "

The name of the stack.

", + "CreateFleetRequest$ImageName": "

The name of the image used by the fleet.

", + "CreateFleetRequest$InstanceType": "

The instance type to use when launching fleet instances. The following instance types are available:

", + "CreateImageBuilderRequest$ImageName": null, + "CreateImageBuilderRequest$InstanceType": null, + "CreateImageBuilderStreamingURLRequest$Name": null, + "CreateImageBuilderStreamingURLResult$StreamingURL": null, + "CreateStackRequest$Name": "

The name of the stack.

", + "CreateStreamingURLRequest$StackName": "

The name of the stack.

", + "CreateStreamingURLRequest$FleetName": "

The name of the fleet.

", "CreateStreamingURLRequest$ApplicationId": "

The ID of the application that must be launched after the session starts.

", - "CreateStreamingURLRequest$SessionContext": "

The sessionContext of the streaming URL.

", + "CreateStreamingURLRequest$SessionContext": "

The session context of the streaming URL.

", "CreateStreamingURLResult$StreamingURL": "

The URL to start the AppStream 2.0 streaming session.

", - "DeleteFleetRequest$Name": "

The name of the fleet to be deleted.

", - "DeleteStackRequest$Name": "

The name of the stack to delete.

", + "DeleteFleetRequest$Name": "

The name of the fleet.

", + "DeleteStackRequest$Name": "

The name of the stack.

", + "DescribeDirectoryConfigsRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", + "DescribeDirectoryConfigsResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", "DescribeFleetsRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", "DescribeFleetsResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", - "DescribeSessionsRequest$StackName": "

The name of the stack for which to list sessions.

", - "DescribeSessionsRequest$FleetName": "

The name of the fleet for which to list sessions.

", + "DescribeImageBuildersRequest$NextToken": null, + "DescribeImageBuildersResult$NextToken": null, + "DescribeSessionsRequest$StackName": "

The name of the stack.

", + "DescribeSessionsRequest$FleetName": "

The name of the fleet.

", "DescribeSessionsRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", "DescribeSessionsResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", "DescribeStacksRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", "DescribeStacksResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", - "DisassociateFleetRequest$FleetName": "

The name of the fleet to disassociate.

", - "DisassociateFleetRequest$StackName": "

The name of the stack with which the fleet is associated.

", - "ExpireSessionRequest$SessionId": "

The unique identifier of the streaming session to be stopped.

", + "DisassociateFleetRequest$FleetName": "

The name of the fleet.

", + "DisassociateFleetRequest$StackName": "

The name of the stack.

", + "ExpireSessionRequest$SessionId": "

The ID of the streaming session.

", "Fleet$Name": "

The name of the fleet.

", - "Fleet$DisplayName": "

The name displayed to end users on the AppStream 2.0 portal.

", - "Fleet$Description": "

The description displayed to end users on the AppStream 2.0 portal.

", + "Fleet$DisplayName": "

The fleet name displayed to end users.

", + "Fleet$Description": "

The description displayed to end users.

", "Fleet$ImageName": "

The image used by the fleet.

", - "Fleet$InstanceType": "

The instance type of compute resources for the fleet. The fleet instances are launched from this instance type.

", - "FleetError$ErrorMessage": "

The error message generated when the fleet has errors.

", - "Image$Name": "

The unique identifier for the image.

", - "Image$DisplayName": "

The display name for the image.

", - "Image$Description": "

A meaningful description for the image.

", - "ImageStateChangeReason$Message": "

The state change reason message to the end user.

", - "ListAssociatedFleetsRequest$StackName": "

The name of the stack whose associated fleets are listed.

", + "Fleet$InstanceType": "

The instance type to use when launching fleet instances.

", + "FleetError$ErrorMessage": "

The error message.

", + "Image$Name": "

The name of the image.

", + "Image$DisplayName": "

The image name displayed to end users.

", + "Image$Description": "

The description displayed to end users.

", + "ImageBuilder$Name": null, + "ImageBuilder$Description": null, + "ImageBuilder$DisplayName": null, + "ImageBuilder$InstanceType": null, + "ImageBuilderStateChangeReason$Message": null, + "ImageStateChangeReason$Message": "

The state change reason message.

", + "ListAssociatedFleetsRequest$StackName": "

The name of the stack.

", "ListAssociatedFleetsRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", "ListAssociatedFleetsResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", - "ListAssociatedStacksRequest$FleetName": "

The name of the fleet whose associated stacks are listed.

", + "ListAssociatedStacksRequest$FleetName": "

The name of the fleet.

", "ListAssociatedStacksRequest$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

", "ListAssociatedStacksResult$NextToken": "

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

", "Metadata$key": null, "Metadata$value": null, + "ResourceError$ErrorMessage": null, "SecurityGroupIdList$member": null, - "Session$Id": "

The unique ID for a streaming session.

", - "Session$StackName": "

The name of the stack for which the streaming session was created.

", - "Session$FleetName": "

The name of the fleet for which the streaming session was created.

", - "Stack$Name": "

The unique identifier of the stack.

", - "Stack$Description": "

A meaningful description for the stack.

", - "Stack$DisplayName": "

A display name for the stack.

", - "StackError$ErrorMessage": "

The error message of a stack error.

", - "StartFleetRequest$Name": "

The name of the fleet to start.

", - "StopFleetRequest$Name": "

The name of the fleet to stop.

", + "Session$Id": "

The ID of the streaming session.

", + "Session$StackName": "

The name of the stack for the streaming session.

", + "Session$FleetName": "

The name of the fleet for the streaming session.

", + "Stack$Name": "

The name of the stack.

", + "Stack$Description": "

The description displayed to end users.

", + "Stack$DisplayName": "

The stack name displayed to end users.

", + "StackError$ErrorMessage": "

The error message.

", + "StartFleetRequest$Name": "

The name of the fleet.

", + "StartImageBuilderRequest$Name": null, + "StopFleetRequest$Name": "

The name of the fleet.

", + "StopImageBuilderRequest$Name": null, "StringList$member": null, "SubnetIdList$member": null, - "UpdateFleetRequest$ImageName": "

The image name from which a fleet is created.

", - "UpdateFleetRequest$Name": "

The name of the fleet.

", - "UpdateFleetRequest$InstanceType": "

The instance type of compute resources for the fleet. Fleet instances are launched from this instance type.

", - "UpdateStackRequest$Name": "

The name of the stack to update.

" + "UpdateFleetRequest$ImageName": "

The name of the image used by the fleet.

", + "UpdateFleetRequest$Name": "

A unique name for the fleet.

", + "UpdateFleetRequest$InstanceType": "

The instance type to use when launching fleet instances. The following instance types are available:

", + "UpdateStackRequest$Name": "

The name of the stack.

" } }, "StringList": { "base": null, "refs": { - "DescribeFleetsRequest$Names": "

The fleet names to describe. Use null to describe all the fleets for the AWS account.

", - "DescribeImagesRequest$Names": "

A specific list of images to describe.

", - "DescribeStacksRequest$Names": "

The stack names to describe. Use null to describe all the stacks for the AWS account.

", - "ListAssociatedFleetsResult$Names": "

The names of associated fleets.

", - "ListAssociatedStacksResult$Names": "

The names of associated stacks.

" + "DescribeFleetsRequest$Names": "

The names of the fleets to describe.

", + "DescribeImageBuildersRequest$Names": null, + "DescribeImagesRequest$Names": "

The names of the images to describe.

", + "DescribeStacksRequest$Names": "

The names of the stacks to describe.

", + "ListAssociatedFleetsResult$Names": "

The names of the fleets.

", + "ListAssociatedStacksResult$Names": "

The names of the stacks.

" } }, "SubnetIdList": { - "base": "

A list of subnet IDs.

", + "base": "

The subnet IDs.

", "refs": { - "VpcConfig$SubnetIds": "

The list of subnets to which a network interface is established from the fleet instance.

" + "VpcConfig$SubnetIds": "

The subnets to which a network interface is established from the fleet instance.

" } }, "Timestamp": { "base": null, "refs": { - "CreateStreamingURLResult$Expires": "

Elapsed seconds after the Unix epoch, at which time this URL expires.

", - "Fleet$CreatedTime": "

The time at which the fleet was created.

", - "Image$CreatedTime": "

The timestamp when the image was created.

", - "Image$PublicBaseImageReleasedDate": "

The AWS release date of the public base image. For private images, this date is the release date of the base image from which the image was created.

", - "Stack$CreatedTime": "

The timestamp when the stack was created.

" + "CreateImageBuilderStreamingURLResult$Expires": null, + "CreateStreamingURLResult$Expires": "

The elapsed time, in seconds after the Unix epoch, when this URL expires.

", + "DirectoryConfig$CreatedTime": "

The time the directory configuration was created.

", + "Fleet$CreatedTime": "

The time the fleet was created.

", + "Image$CreatedTime": "

The time the image was created.

", + "Image$PublicBaseImageReleasedDate": "

The release date of the public base image. For private images, this date is the release date of the base image from which the image was created.

", + "ImageBuilder$CreatedTime": null, + "ResourceError$ErrorTimestamp": null, + "Stack$CreatedTime": "

The time the stack was created.

" + } + }, + "UpdateDirectoryConfigRequest": { + "base": null, + "refs": { + } + }, + "UpdateDirectoryConfigResult": { + "base": null, + "refs": { } }, "UpdateFleetRequest": { @@ -642,22 +934,23 @@ "UserId": { "base": null, "refs": { - "CreateStreamingURLRequest$UserId": "

A unique user ID for whom the URL is generated.

", - "DescribeSessionsRequest$UserId": "

The user for whom to list sessions. Use null to describe all the sessions for the stack and fleet.

", + "DescribeSessionsRequest$UserId": "

The user ID.

", "Session$UserId": "

The identifier of the user for whom the session was created.

" } }, "VisibilityType": { "base": null, "refs": { - "Image$Visibility": "

The visibility of an image to the user; images can be public or private.

" + "Image$Visibility": "

Indicates whether the image is public or private.

" } }, "VpcConfig": { - "base": "

VPC configuration information.

", + "base": "

Describes VPC configuration information.

", "refs": { "CreateFleetRequest$VpcConfig": "

The VPC configuration for the fleet.

", + "CreateImageBuilderRequest$VpcConfig": null, "Fleet$VpcConfig": "

The VPC configuration for the fleet.

", + "ImageBuilder$VpcConfig": null, "UpdateFleetRequest$VpcConfig": "

The VPC configuration for the fleet.

" } } diff --git a/models/apis/appstream/2016-12-01/waiters-2.json b/models/apis/appstream/2016-12-01/waiters-2.json index 6672ceed363..f53f609cb7c 100644 --- a/models/apis/appstream/2016-12-01/waiters-2.json +++ b/models/apis/appstream/2016-12-01/waiters-2.json @@ -9,19 +9,19 @@ { "state": "success", "matcher": "pathAll", - "argument": "fleets[].state", + "argument": "Fleets[].State", "expected": "ACTIVE" }, { "state": "failure", "matcher": "pathAny", - "argument": "fleets[].state", + "argument": "Fleets[].State", "expected": "PENDING_DEACTIVATE" }, { "state": "failure", "matcher": "pathAny", - "argument": "fleets[].state", + "argument": "Fleets[].State", "expected": "INACTIVE" } ] @@ -34,19 +34,19 @@ { "state": "success", "matcher": "pathAll", - "argument": "fleets[].state", + "argument": "Fleets[].State", "expected": "INACTIVE" }, { "state": "failure", "matcher": "pathAny", - "argument": "fleets[].state", + "argument": "Fleets[].State", "expected": "PENDING_ACTIVATE" }, { "state": "failure", "matcher": "pathAny", - "argument": "fleets[].state", + "argument": "Fleets[].State", "expected": "ACTIVE" } ] diff --git a/models/apis/appsync/2017-07-25/api-2.json b/models/apis/appsync/2017-07-25/api-2.json new file mode 100644 index 00000000000..c8879e72bd5 --- /dev/null +++ b/models/apis/appsync/2017-07-25/api-2.json @@ -0,0 +1,1362 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-07-25", + "endpointPrefix":"appsync", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"AWSAppSync", + "serviceFullName":"AWS AppSync", + "signatureVersion":"v4", + "signingName":"appsync", + "uid":"appsync-2017-07-25" + }, + "operations":{ + "CreateApiKey":{ + "name":"CreateApiKey", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}/apikeys" + }, + "input":{"shape":"CreateApiKeyRequest"}, + "output":{"shape":"CreateApiKeyResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"UnauthorizedException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalFailureException"}, + {"shape":"ApiKeyLimitExceededException"} + ] + }, + "CreateDataSource":{ + "name":"CreateDataSource", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}/datasources" + }, + "input":{"shape":"CreateDataSourceRequest"}, + "output":{"shape":"CreateDataSourceResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "CreateGraphqlApi":{ + "name":"CreateGraphqlApi", + "http":{ + "method":"POST", + "requestUri":"/v1/apis" + }, + "input":{"shape":"CreateGraphqlApiRequest"}, + "output":{"shape":"CreateGraphqlApiResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"LimitExceededException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"}, + {"shape":"ApiLimitExceededException"} + ] + }, + "CreateResolver":{ + "name":"CreateResolver", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}/types/{typeName}/resolvers" + }, + "input":{"shape":"CreateResolverRequest"}, + "output":{"shape":"CreateResolverResponse"}, + "errors":[ + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "CreateType":{ + "name":"CreateType", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}/types" + }, + "input":{"shape":"CreateTypeRequest"}, + "output":{"shape":"CreateTypeResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "DeleteApiKey":{ + "name":"DeleteApiKey", + "http":{ + "method":"DELETE", + "requestUri":"/v1/apis/{apiId}/apikeys/{id}" + }, + "input":{"shape":"DeleteApiKeyRequest"}, + "output":{"shape":"DeleteApiKeyResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "DeleteDataSource":{ + "name":"DeleteDataSource", + "http":{ + "method":"DELETE", + "requestUri":"/v1/apis/{apiId}/datasources/{name}" + }, + "input":{"shape":"DeleteDataSourceRequest"}, + "output":{"shape":"DeleteDataSourceResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "DeleteGraphqlApi":{ + "name":"DeleteGraphqlApi", + "http":{ + "method":"DELETE", + "requestUri":"/v1/apis/{apiId}" + }, + "input":{"shape":"DeleteGraphqlApiRequest"}, + "output":{"shape":"DeleteGraphqlApiResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "DeleteResolver":{ + "name":"DeleteResolver", + "http":{ + "method":"DELETE", + "requestUri":"/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}" + }, + "input":{"shape":"DeleteResolverRequest"}, + "output":{"shape":"DeleteResolverResponse"}, + "errors":[ + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "DeleteType":{ + "name":"DeleteType", + "http":{ + "method":"DELETE", + "requestUri":"/v1/apis/{apiId}/types/{typeName}" + }, + "input":{"shape":"DeleteTypeRequest"}, + "output":{"shape":"DeleteTypeResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "GetDataSource":{ + "name":"GetDataSource", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/datasources/{name}" + }, + "input":{"shape":"GetDataSourceRequest"}, + "output":{"shape":"GetDataSourceResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "GetGraphqlApi":{ + "name":"GetGraphqlApi", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}" + }, + "input":{"shape":"GetGraphqlApiRequest"}, + "output":{"shape":"GetGraphqlApiResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "GetIntrospectionSchema":{ + "name":"GetIntrospectionSchema", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/schema" + }, + "input":{"shape":"GetIntrospectionSchemaRequest"}, + "output":{"shape":"GetIntrospectionSchemaResponse"}, + "errors":[ + {"shape":"GraphQLSchemaException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "GetResolver":{ + "name":"GetResolver", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}" + }, + "input":{"shape":"GetResolverRequest"}, + "output":{"shape":"GetResolverResponse"}, + "errors":[ + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"} + ] + }, + "GetSchemaCreationStatus":{ + "name":"GetSchemaCreationStatus", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/schemacreation" + }, + "input":{"shape":"GetSchemaCreationStatusRequest"}, + "output":{"shape":"GetSchemaCreationStatusResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "GetType":{ + "name":"GetType", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/types/{typeName}" + }, + "input":{"shape":"GetTypeRequest"}, + "output":{"shape":"GetTypeResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "ListApiKeys":{ + "name":"ListApiKeys", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/apikeys" + }, + "input":{"shape":"ListApiKeysRequest"}, + "output":{"shape":"ListApiKeysResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "ListDataSources":{ + "name":"ListDataSources", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/datasources" + }, + "input":{"shape":"ListDataSourcesRequest"}, + "output":{"shape":"ListDataSourcesResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "ListGraphqlApis":{ + "name":"ListGraphqlApis", + "http":{ + "method":"GET", + "requestUri":"/v1/apis" + }, + "input":{"shape":"ListGraphqlApisRequest"}, + "output":{"shape":"ListGraphqlApisResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "ListResolvers":{ + "name":"ListResolvers", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/types/{typeName}/resolvers" + }, + "input":{"shape":"ListResolversRequest"}, + "output":{"shape":"ListResolversResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "ListTypes":{ + "name":"ListTypes", + "http":{ + "method":"GET", + "requestUri":"/v1/apis/{apiId}/types" + }, + "input":{"shape":"ListTypesRequest"}, + "output":{"shape":"ListTypesResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "StartSchemaCreation":{ + "name":"StartSchemaCreation", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}/schemacreation" + }, + "input":{"shape":"StartSchemaCreationRequest"}, + "output":{"shape":"StartSchemaCreationResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "UpdateDataSource":{ + "name":"UpdateDataSource", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}/datasources/{name}" + }, + "input":{"shape":"UpdateDataSourceRequest"}, + "output":{"shape":"UpdateDataSourceResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "UpdateGraphqlApi":{ + "name":"UpdateGraphqlApi", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}" + }, + "input":{"shape":"UpdateGraphqlApiRequest"}, + "output":{"shape":"UpdateGraphqlApiResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "UpdateResolver":{ + "name":"UpdateResolver", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}" + }, + "input":{"shape":"UpdateResolverRequest"}, + "output":{"shape":"UpdateResolverResponse"}, + "errors":[ + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "UpdateType":{ + "name":"UpdateType", + "http":{ + "method":"POST", + "requestUri":"/v1/apis/{apiId}/types/{typeName}" + }, + "input":{"shape":"UpdateTypeRequest"}, + "output":{"shape":"UpdateTypeResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + } + }, + "shapes":{ + "ApiKey":{ + "type":"structure", + "members":{ + "id":{"shape":"String"}, + "description":{"shape":"String"}, + "expires":{"shape":"Long"} + } + }, + "ApiKeyLimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ApiKeys":{ + "type":"list", + "member":{"shape":"ApiKey"} + }, + "ApiLimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "AuthenticationType":{ + "type":"string", + "enum":[ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS" + ] + }, + "BadRequestException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Blob":{"type":"blob"}, + "Boolean":{"type":"boolean"}, + "ConcurrentModificationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "CreateApiKeyRequest":{ + "type":"structure", + "required":["apiId"], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "description":{"shape":"String"} + } + }, + "CreateApiKeyResponse":{ + "type":"structure", + "members":{ + "apiKey":{"shape":"ApiKey"} + } + }, + "CreateDataSourceRequest":{ + "type":"structure", + "required":[ + "apiId", + "name", + "type" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "name":{"shape":"ResourceName"}, + "description":{"shape":"String"}, + "type":{"shape":"DataSourceType"}, + "serviceRoleArn":{"shape":"String"}, + "dynamodbConfig":{"shape":"DynamodbDataSourceConfig"}, + "lambdaConfig":{"shape":"LambdaDataSourceConfig"}, + "elasticsearchConfig":{"shape":"ElasticsearchDataSourceConfig"} + } + }, + "CreateDataSourceResponse":{ + "type":"structure", + "members":{ + "dataSource":{"shape":"DataSource"} + } + }, + "CreateGraphqlApiRequest":{ + "type":"structure", + "required":[ + "name", + "authenticationType" + ], + "members":{ + "name":{"shape":"ResourceName"}, + "authenticationType":{"shape":"AuthenticationType"}, + "userPoolConfig":{"shape":"UserPoolConfig"} + } + }, + "CreateGraphqlApiResponse":{ + "type":"structure", + "members":{ + "graphqlApi":{"shape":"GraphqlApi"} + } + }, + "CreateResolverRequest":{ + "type":"structure", + "required":[ + "apiId", + "typeName", + "fieldName", + "dataSourceName", + "requestMappingTemplate" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "typeName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"typeName" + }, + "fieldName":{"shape":"ResourceName"}, + "dataSourceName":{"shape":"ResourceName"}, + "requestMappingTemplate":{"shape":"MappingTemplate"}, + "responseMappingTemplate":{"shape":"MappingTemplate"} + } + }, + "CreateResolverResponse":{ + "type":"structure", + "members":{ + "resolver":{"shape":"Resolver"} + } + }, + "CreateTypeRequest":{ + "type":"structure", + "required":[ + "apiId", + "definition", + "format" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "definition":{"shape":"String"}, + "format":{"shape":"TypeDefinitionFormat"} + } + }, + "CreateTypeResponse":{ + "type":"structure", + "members":{ + "type":{"shape":"Type"} + } + }, + "DataSource":{ + "type":"structure", + "members":{ + "dataSourceArn":{"shape":"String"}, + "name":{"shape":"ResourceName"}, + "description":{"shape":"String"}, + "type":{"shape":"DataSourceType"}, + "serviceRoleArn":{"shape":"String"}, + "dynamodbConfig":{"shape":"DynamodbDataSourceConfig"}, + "lambdaConfig":{"shape":"LambdaDataSourceConfig"}, + "elasticsearchConfig":{"shape":"ElasticsearchDataSourceConfig"} + } + }, + "DataSourceType":{ + "type":"string", + "enum":[ + "AWS_LAMBDA", + "AMAZON_DYNAMODB", + "AMAZON_ELASTICSEARCH" + ] + }, + "DataSources":{ + "type":"list", + "member":{"shape":"DataSource"} + }, + "DefaultAction":{ + "type":"string", + "enum":[ + "ALLOW", + "DENY" + ] + }, + "DeleteApiKeyRequest":{ + "type":"structure", + "required":[ + "apiId", + "id" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "id":{ + "shape":"String", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteApiKeyResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteDataSourceRequest":{ + "type":"structure", + "required":[ + "apiId", + "name" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "name":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"name" + } + } + }, + "DeleteDataSourceResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteGraphqlApiRequest":{ + "type":"structure", + "required":["apiId"], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + } + } + }, + "DeleteGraphqlApiResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteResolverRequest":{ + "type":"structure", + "required":[ + "apiId", + "typeName", + "fieldName" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "typeName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"typeName" + }, + "fieldName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"fieldName" + } + } + }, + "DeleteResolverResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteTypeRequest":{ + "type":"structure", + "required":[ + "apiId", + "typeName" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "typeName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"typeName" + } + } + }, + "DeleteTypeResponse":{ + "type":"structure", + "members":{ + } + }, + "DynamodbDataSourceConfig":{ + "type":"structure", + "required":[ + "tableName", + "awsRegion" + ], + "members":{ + "tableName":{"shape":"String"}, + "awsRegion":{"shape":"String"}, + "useCallerCredentials":{"shape":"Boolean"} + } + }, + "ElasticsearchDataSourceConfig":{ + "type":"structure", + "required":[ + "endpoint", + "awsRegion" + ], + "members":{ + "endpoint":{"shape":"String"}, + "awsRegion":{"shape":"String"} + } + }, + "ErrorMessage":{"type":"string"}, + "GetDataSourceRequest":{ + "type":"structure", + "required":[ + "apiId", + "name" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "name":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"name" + } + } + }, + "GetDataSourceResponse":{ + "type":"structure", + "members":{ + "dataSource":{"shape":"DataSource"} + } + }, + "GetGraphqlApiRequest":{ + "type":"structure", + "required":["apiId"], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + } + } + }, + "GetGraphqlApiResponse":{ + "type":"structure", + "members":{ + "graphqlApi":{"shape":"GraphqlApi"} + } + }, + "GetIntrospectionSchemaRequest":{ + "type":"structure", + "required":[ + "apiId", + "format" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "format":{ + "shape":"OutputType", + "location":"querystring", + "locationName":"format" + } + } + }, + "GetIntrospectionSchemaResponse":{ + "type":"structure", + "members":{ + "schema":{"shape":"Blob"} + }, + "payload":"schema" + }, + "GetResolverRequest":{ + "type":"structure", + "required":[ + "apiId", + "typeName", + "fieldName" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "typeName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"typeName" + }, + "fieldName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"fieldName" + } + } + }, + "GetResolverResponse":{ + "type":"structure", + "members":{ + "resolver":{"shape":"Resolver"} + } + }, + "GetSchemaCreationStatusRequest":{ + "type":"structure", + "required":["apiId"], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + } + } + }, + "GetSchemaCreationStatusResponse":{ + "type":"structure", + "members":{ + "status":{"shape":"SchemaStatus"}, + "details":{"shape":"String"} + } + }, + "GetTypeRequest":{ + "type":"structure", + "required":[ + "apiId", + "typeName", + "format" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "typeName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"typeName" + }, + "format":{ + "shape":"TypeDefinitionFormat", + "location":"querystring", + "locationName":"format" + } + } + }, + "GetTypeResponse":{ + "type":"structure", + "members":{ + "type":{"shape":"Type"} + } + }, + "GraphQLSchemaException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "GraphqlApi":{ + "type":"structure", + "members":{ + "name":{"shape":"ResourceName"}, + "apiId":{"shape":"String"}, + "authenticationType":{"shape":"AuthenticationType"}, + "userPoolConfig":{"shape":"UserPoolConfig"}, + "arn":{"shape":"String"}, + "uris":{"shape":"MapOfStringToString"} + } + }, + "GraphqlApis":{ + "type":"list", + "member":{"shape":"GraphqlApi"} + }, + "InternalFailureException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "LambdaDataSourceConfig":{ + "type":"structure", + "required":["lambdaFunctionArn"], + "members":{ + "lambdaFunctionArn":{"shape":"String"} + } + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "ListApiKeysRequest":{ + "type":"structure", + "required":["apiId"], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListApiKeysResponse":{ + "type":"structure", + "members":{ + "apiKeys":{"shape":"ApiKeys"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "ListDataSourcesRequest":{ + "type":"structure", + "required":["apiId"], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListDataSourcesResponse":{ + "type":"structure", + "members":{ + "dataSources":{"shape":"DataSources"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "ListGraphqlApisRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListGraphqlApisResponse":{ + "type":"structure", + "members":{ + "graphqlApis":{"shape":"GraphqlApis"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "ListResolversRequest":{ + "type":"structure", + "required":[ + "apiId", + "typeName" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "typeName":{ + "shape":"String", + "location":"uri", + "locationName":"typeName" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListResolversResponse":{ + "type":"structure", + "members":{ + "resolvers":{"shape":"Resolvers"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "ListTypesRequest":{ + "type":"structure", + "required":[ + "apiId", + "format" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "format":{ + "shape":"TypeDefinitionFormat", + "location":"querystring", + "locationName":"format" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListTypesResponse":{ + "type":"structure", + "members":{ + "types":{"shape":"TypeList"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "Long":{"type":"long"}, + "MapOfStringToString":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "MappingTemplate":{ + "type":"string", + "max":65536, + "min":0 + }, + "MaxResults":{ + "type":"integer", + "max":25, + "min":0 + }, + "NotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "OutputType":{ + "type":"string", + "enum":[ + "SDL", + "JSON" + ] + }, + "PaginationToken":{ + "type":"string", + "pattern":"[\\\\S]+" + }, + "Resolver":{ + "type":"structure", + "members":{ + "typeName":{"shape":"ResourceName"}, + "fieldName":{"shape":"ResourceName"}, + "dataSourceName":{"shape":"ResourceName"}, + "resolverArn":{"shape":"String"}, + "requestMappingTemplate":{"shape":"MappingTemplate"}, + "responseMappingTemplate":{"shape":"MappingTemplate"} + } + }, + "Resolvers":{ + "type":"list", + "member":{"shape":"Resolver"} + }, + "ResourceName":{ + "type":"string", + "pattern":"[_A-Za-z][_0-9A-Za-z]*" + }, + "SchemaStatus":{ + "type":"string", + "enum":[ + "PROCESSING", + "ACTIVE", + "DELETING" + ] + }, + "StartSchemaCreationRequest":{ + "type":"structure", + "required":[ + "apiId", + "definition" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "definition":{"shape":"Blob"} + } + }, + "StartSchemaCreationResponse":{ + "type":"structure", + "members":{ + "status":{"shape":"SchemaStatus"} + } + }, + "String":{"type":"string"}, + "Type":{ + "type":"structure", + "members":{ + "name":{"shape":"ResourceName"}, + "description":{"shape":"String"}, + "arn":{"shape":"String"}, + "definition":{"shape":"String"}, + "format":{"shape":"TypeDefinitionFormat"} + } + }, + "TypeDefinitionFormat":{ + "type":"string", + "enum":[ + "SDL", + "JSON" + ] + }, + "TypeList":{ + "type":"list", + "member":{"shape":"Type"} + }, + "UnauthorizedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":401}, + "exception":true + }, + "UpdateDataSourceRequest":{ + "type":"structure", + "required":[ + "apiId", + "name", + "type" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "name":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"name" + }, + "description":{"shape":"String"}, + "type":{"shape":"DataSourceType"}, + "serviceRoleArn":{"shape":"String"}, + "dynamodbConfig":{"shape":"DynamodbDataSourceConfig"}, + "lambdaConfig":{"shape":"LambdaDataSourceConfig"}, + "elasticsearchConfig":{"shape":"ElasticsearchDataSourceConfig"} + } + }, + "UpdateDataSourceResponse":{ + "type":"structure", + "members":{ + "dataSource":{"shape":"DataSource"} + } + }, + "UpdateGraphqlApiRequest":{ + "type":"structure", + "required":[ + "apiId", + "name" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "name":{"shape":"ResourceName"}, + "authenticationType":{"shape":"AuthenticationType"}, + "userPoolConfig":{"shape":"UserPoolConfig"} + } + }, + "UpdateGraphqlApiResponse":{ + "type":"structure", + "members":{ + "graphqlApi":{"shape":"GraphqlApi"} + } + }, + "UpdateResolverRequest":{ + "type":"structure", + "required":[ + "apiId", + "typeName", + "fieldName", + "dataSourceName", + "requestMappingTemplate" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "typeName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"typeName" + }, + "fieldName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"fieldName" + }, + "dataSourceName":{"shape":"ResourceName"}, + "requestMappingTemplate":{"shape":"MappingTemplate"}, + "responseMappingTemplate":{"shape":"MappingTemplate"} + } + }, + "UpdateResolverResponse":{ + "type":"structure", + "members":{ + "resolver":{"shape":"Resolver"} + } + }, + "UpdateTypeRequest":{ + "type":"structure", + "required":[ + "apiId", + "typeName", + "format" + ], + "members":{ + "apiId":{ + "shape":"String", + "location":"uri", + "locationName":"apiId" + }, + "typeName":{ + "shape":"ResourceName", + "location":"uri", + "locationName":"typeName" + }, + "definition":{"shape":"String"}, + "format":{"shape":"TypeDefinitionFormat"} + } + }, + "UpdateTypeResponse":{ + "type":"structure", + "members":{ + "type":{"shape":"Type"} + } + }, + "UserPoolConfig":{ + "type":"structure", + "required":[ + "userPoolId", + "awsRegion", + "defaultAction" + ], + "members":{ + "userPoolId":{"shape":"String"}, + "awsRegion":{"shape":"String"}, + "defaultAction":{"shape":"DefaultAction"}, + "appIdClientRegex":{"shape":"String"} + } + } + } +} diff --git a/models/apis/appsync/2017-07-25/docs-2.json b/models/apis/appsync/2017-07-25/docs-2.json new file mode 100644 index 00000000000..b6908856fe5 --- /dev/null +++ b/models/apis/appsync/2017-07-25/docs-2.json @@ -0,0 +1,654 @@ +{ + "version": "2.0", + "service": "

AWS AppSync provides API actions for creating and interacting with data sources using GraphQL from your application.

", + "operations": { + "CreateApiKey": "

Creates a unique key that you can distribute to clients who are executing your API.

", + "CreateDataSource": "

Creates a DataSource object.

", + "CreateGraphqlApi": "

Creates a GraphqlApi object.

", + "CreateResolver": "

Creates a Resolver object.

A resolver converts incoming requests into a format that a data source can understand and converts the data source's responses into GraphQL.

", + "CreateType": "

Creates a Type object.

", + "DeleteApiKey": "

Deletes an API key.

", + "DeleteDataSource": "

Deletes a DataSource object.

", + "DeleteGraphqlApi": "

Deletes a GraphqlApi object.

", + "DeleteResolver": "

Deletes a Resolver object.

", + "DeleteType": "

Deletes a Type object.

", + "GetDataSource": "

Retrieves a DataSource object.

", + "GetGraphqlApi": "

Retrieves a GraphqlApi object.

", + "GetIntrospectionSchema": "

Retrieves the introspection schema for a GraphQL API.

", + "GetResolver": "

Retrieves a Resolver object.

", + "GetSchemaCreationStatus": "

Retrieves the current status of a schema creation operation.

", + "GetType": "

Retrieves a Type object.

", + "ListApiKeys": "

Lists the API keys for a given API.

", + "ListDataSources": "

Lists the data sources for a given API.

", + "ListGraphqlApis": "

Lists your GraphQL APIs.

", + "ListResolvers": "

Lists the resolvers for a given API and type.

", + "ListTypes": "

Lists the types for a given API.

", + "StartSchemaCreation": "

Adds a new schema to your GraphQL API.

This operation is asynchronous. Use to determine when it has completed.

", + "UpdateDataSource": "

Updates a DataSource object.

", + "UpdateGraphqlApi": "

Updates a GraphqlApi object.

", + "UpdateResolver": "

Updates a Resolver object.

", + "UpdateType": "

Updates a Type object.

" + }, + "shapes": { + "ApiKey": { + "base": "

Describes an API key.

", + "refs": { + "ApiKeys$member": null, + "CreateApiKeyResponse$apiKey": "

The API key.

" + } + }, + "ApiKeyLimitExceededException": { + "base": "

The API key exceeded a limit. Try your request again.

", + "refs": { + } + }, + "ApiKeys": { + "base": null, + "refs": { + "ListApiKeysResponse$apiKeys": "

The ApiKey objects.

" + } + }, + "ApiLimitExceededException": { + "base": "

The GraphQL API exceeded a limit. Try your request again.

", + "refs": { + } + }, + "AuthenticationType": { + "base": null, + "refs": { + "CreateGraphqlApiRequest$authenticationType": "

The authentication type: API key, IAM, or Amazon Cognito User Pools.

", + "GraphqlApi$authenticationType": "

The authentication type.

", + "UpdateGraphqlApiRequest$authenticationType": "

The new authentication type for the GraphqlApi object.

" + } + }, + "BadRequestException": { + "base": "

The request is not well formed. For example, a value is invalid or a required field is missing. Check the field values, and try again.

", + "refs": { + } + }, + "Blob": { + "base": null, + "refs": { + "GetIntrospectionSchemaResponse$schema": "

The schema, in GraphQL Schema Definition Language (SDL) format.

For more information, see the GraphQL SDL documentation.

", + "StartSchemaCreationRequest$definition": "

The schema definition, in GraphQL schema language format.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "DynamodbDataSourceConfig$useCallerCredentials": "

Set to TRUE to use Amazon Cognito credentials with this data source.

" + } + }, + "ConcurrentModificationException": { + "base": "

Another modification is being made. That modification must complete before you can make your change.

", + "refs": { + } + }, + "CreateApiKeyRequest": { + "base": null, + "refs": { + } + }, + "CreateApiKeyResponse": { + "base": null, + "refs": { + } + }, + "CreateDataSourceRequest": { + "base": null, + "refs": { + } + }, + "CreateDataSourceResponse": { + "base": null, + "refs": { + } + }, + "CreateGraphqlApiRequest": { + "base": null, + "refs": { + } + }, + "CreateGraphqlApiResponse": { + "base": null, + "refs": { + } + }, + "CreateResolverRequest": { + "base": null, + "refs": { + } + }, + "CreateResolverResponse": { + "base": null, + "refs": { + } + }, + "CreateTypeRequest": { + "base": null, + "refs": { + } + }, + "CreateTypeResponse": { + "base": null, + "refs": { + } + }, + "DataSource": { + "base": "

Describes a data source.

", + "refs": { + "CreateDataSourceResponse$dataSource": "

The DataSource object.

", + "DataSources$member": null, + "GetDataSourceResponse$dataSource": "

The DataSource object.

", + "UpdateDataSourceResponse$dataSource": "

The updated DataSource object.

" + } + }, + "DataSourceType": { + "base": null, + "refs": { + "CreateDataSourceRequest$type": "

The type of the DataSource.

", + "DataSource$type": "

The type of the data source.

", + "UpdateDataSourceRequest$type": "

The new data source type.

" + } + }, + "DataSources": { + "base": null, + "refs": { + "ListDataSourcesResponse$dataSources": "

The DataSource objects.

" + } + }, + "DefaultAction": { + "base": null, + "refs": { + "UserPoolConfig$defaultAction": "

The action that you want your GraphQL API to take when a request that uses Amazon Cognito User Pool authentication doesn't match the Amazon Cognito User Pool configuration.

" + } + }, + "DeleteApiKeyRequest": { + "base": null, + "refs": { + } + }, + "DeleteApiKeyResponse": { + "base": null, + "refs": { + } + }, + "DeleteDataSourceRequest": { + "base": null, + "refs": { + } + }, + "DeleteDataSourceResponse": { + "base": null, + "refs": { + } + }, + "DeleteGraphqlApiRequest": { + "base": null, + "refs": { + } + }, + "DeleteGraphqlApiResponse": { + "base": null, + "refs": { + } + }, + "DeleteResolverRequest": { + "base": null, + "refs": { + } + }, + "DeleteResolverResponse": { + "base": null, + "refs": { + } + }, + "DeleteTypeRequest": { + "base": null, + "refs": { + } + }, + "DeleteTypeResponse": { + "base": null, + "refs": { + } + }, + "DynamodbDataSourceConfig": { + "base": "

Describes a DynamoDB data source configuration.

", + "refs": { + "CreateDataSourceRequest$dynamodbConfig": "

DynamoDB settings.

", + "DataSource$dynamodbConfig": "

DynamoDB settings.

", + "UpdateDataSourceRequest$dynamodbConfig": "

The new DynamoDB configuration.

" + } + }, + "ElasticsearchDataSourceConfig": { + "base": "

Describes an Elasticsearch data source configuration.

", + "refs": { + "CreateDataSourceRequest$elasticsearchConfig": "

Amazon Elasticsearch settings.

", + "DataSource$elasticsearchConfig": "

Amazon Elasticsearch settings.

", + "UpdateDataSourceRequest$elasticsearchConfig": "

The new Elasticsearch configuration.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "BadRequestException$message": null, + "ConcurrentModificationException$message": null, + "GraphQLSchemaException$message": null + } + }, + "GetDataSourceRequest": { + "base": null, + "refs": { + } + }, + "GetDataSourceResponse": { + "base": null, + "refs": { + } + }, + "GetGraphqlApiRequest": { + "base": null, + "refs": { + } + }, + "GetGraphqlApiResponse": { + "base": null, + "refs": { + } + }, + "GetIntrospectionSchemaRequest": { + "base": null, + "refs": { + } + }, + "GetIntrospectionSchemaResponse": { + "base": null, + "refs": { + } + }, + "GetResolverRequest": { + "base": null, + "refs": { + } + }, + "GetResolverResponse": { + "base": null, + "refs": { + } + }, + "GetSchemaCreationStatusRequest": { + "base": null, + "refs": { + } + }, + "GetSchemaCreationStatusResponse": { + "base": null, + "refs": { + } + }, + "GetTypeRequest": { + "base": null, + "refs": { + } + }, + "GetTypeResponse": { + "base": null, + "refs": { + } + }, + "GraphQLSchemaException": { + "base": "

The GraphQL schema is not valid.

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

Describes a GraphQL API.

", + "refs": { + "CreateGraphqlApiResponse$graphqlApi": "

The GraphqlApi.

", + "GetGraphqlApiResponse$graphqlApi": "

The GraphqlApi object.

", + "GraphqlApis$member": null, + "UpdateGraphqlApiResponse$graphqlApi": "

The udpated GraphqlApi object.

" + } + }, + "GraphqlApis": { + "base": null, + "refs": { + "ListGraphqlApisResponse$graphqlApis": "

The GraphqlApi objects.

" + } + }, + "InternalFailureException": { + "base": "

An internal AWS AppSync error occurred. Try your request again.

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

Describes a Lambda data source configuration.

", + "refs": { + "CreateDataSourceRequest$lambdaConfig": "

AWS Lambda settings.

", + "DataSource$lambdaConfig": "

Lambda settings.

", + "UpdateDataSourceRequest$lambdaConfig": "

The new Lambda configuration.

" + } + }, + "LimitExceededException": { + "base": "

The request exceeded a limit. Try your request again.

", + "refs": { + } + }, + "ListApiKeysRequest": { + "base": null, + "refs": { + } + }, + "ListApiKeysResponse": { + "base": null, + "refs": { + } + }, + "ListDataSourcesRequest": { + "base": null, + "refs": { + } + }, + "ListDataSourcesResponse": { + "base": null, + "refs": { + } + }, + "ListGraphqlApisRequest": { + "base": null, + "refs": { + } + }, + "ListGraphqlApisResponse": { + "base": null, + "refs": { + } + }, + "ListResolversRequest": { + "base": null, + "refs": { + } + }, + "ListResolversResponse": { + "base": null, + "refs": { + } + }, + "ListTypesRequest": { + "base": null, + "refs": { + } + }, + "ListTypesResponse": { + "base": null, + "refs": { + } + }, + "Long": { + "base": null, + "refs": { + "ApiKey$expires": "

The time when the API key expires.

" + } + }, + "MapOfStringToString": { + "base": null, + "refs": { + "GraphqlApi$uris": "

The URIs.

" + } + }, + "MappingTemplate": { + "base": null, + "refs": { + "CreateResolverRequest$requestMappingTemplate": "

The mapping template to be used for requests.

A resolver use a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL).

", + "CreateResolverRequest$responseMappingTemplate": "

The mapping template to be used for responses from the data source.

", + "Resolver$requestMappingTemplate": "

The request mapping template.

", + "Resolver$responseMappingTemplate": "

The response mapping template.

", + "UpdateResolverRequest$requestMappingTemplate": "

The new request mapping template.

", + "UpdateResolverRequest$responseMappingTemplate": "

The new response mapping template.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListApiKeysRequest$maxResults": "

The maximum number of results you want the request to return.

", + "ListDataSourcesRequest$maxResults": "

The maximum number of results you want the request to return.

", + "ListGraphqlApisRequest$maxResults": "

The maximum number of results you want the request to return.

", + "ListResolversRequest$maxResults": "

The maximum number of results you want the request to return.

", + "ListTypesRequest$maxResults": "

The maximum number of results you want the request to return.

" + } + }, + "NotFoundException": { + "base": "

The resource specified in the request was not found. Check the resource and try again.

", + "refs": { + } + }, + "OutputType": { + "base": null, + "refs": { + "GetIntrospectionSchemaRequest$format": "

The schema format: SDL or JSON.

" + } + }, + "PaginationToken": { + "base": null, + "refs": { + "ListApiKeysRequest$nextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", + "ListApiKeysResponse$nextToken": "

An identifier to be passed in the next request to this operation to return the next set of items in the list.

", + "ListDataSourcesRequest$nextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", + "ListDataSourcesResponse$nextToken": "

An identifier to be passed in the next request to this operation to return the next set of items in the list.

", + "ListGraphqlApisRequest$nextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", + "ListGraphqlApisResponse$nextToken": "

An identifier to be passed in the next request to this operation to return the next set of items in the list.

", + "ListResolversRequest$nextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", + "ListResolversResponse$nextToken": "

An identifier to be passed in the next request to this operation to return the next set of items in the list.

", + "ListTypesRequest$nextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", + "ListTypesResponse$nextToken": "

An identifier to be passed in the next request to this operation to return the next set of items in the list.

" + } + }, + "Resolver": { + "base": "

Describes a resolver.

", + "refs": { + "CreateResolverResponse$resolver": "

The Resolver object.

", + "GetResolverResponse$resolver": "

The Resolver object.

", + "Resolvers$member": null, + "UpdateResolverResponse$resolver": "

The updated Resolver object.

" + } + }, + "Resolvers": { + "base": null, + "refs": { + "ListResolversResponse$resolvers": "

The Resolver objects.

" + } + }, + "ResourceName": { + "base": null, + "refs": { + "CreateDataSourceRequest$name": "

A user-supplied name for the DataSource.

", + "CreateGraphqlApiRequest$name": "

A user-supplied name for the GraphqlApi.

", + "CreateResolverRequest$typeName": "

The name of the Type.

", + "CreateResolverRequest$fieldName": "

The name of the field to attach the resolver to.

", + "CreateResolverRequest$dataSourceName": "

The name of the data source for which the resolver is being created.

", + "DataSource$name": "

The name of the data source.

", + "DeleteDataSourceRequest$name": "

The name of the data source.

", + "DeleteResolverRequest$typeName": "

The name of the resolver type.

", + "DeleteResolverRequest$fieldName": "

The resolver field name.

", + "DeleteTypeRequest$typeName": "

The type name.

", + "GetDataSourceRequest$name": "

The name of the data source.

", + "GetResolverRequest$typeName": "

The resolver type name.

", + "GetResolverRequest$fieldName": "

The resolver field name.

", + "GetTypeRequest$typeName": "

The type name.

", + "GraphqlApi$name": "

The API name.

", + "Resolver$typeName": "

The resolver type name.

", + "Resolver$fieldName": "

The resolver field name.

", + "Resolver$dataSourceName": "

The resolver data source name.

", + "Type$name": "

The type name.

", + "UpdateDataSourceRequest$name": "

The new name for the data source.

", + "UpdateGraphqlApiRequest$name": "

The new name for the GraphqlApi object.

", + "UpdateResolverRequest$typeName": "

The new type name.

", + "UpdateResolverRequest$fieldName": "

The new field name.

", + "UpdateResolverRequest$dataSourceName": "

The new data source name.

", + "UpdateTypeRequest$typeName": "

The new type name.

" + } + }, + "SchemaStatus": { + "base": null, + "refs": { + "GetSchemaCreationStatusResponse$status": "

The current state of the schema (PROCESSING, ACTIVE, or DELETING). Once the schema is in the ACTIVE state, you can add data.

", + "StartSchemaCreationResponse$status": "

The current state of the schema (PROCESSING, ACTIVE, or DELETING). Once the schema is in the ACTIVE state, you can add data.

" + } + }, + "StartSchemaCreationRequest": { + "base": null, + "refs": { + } + }, + "StartSchemaCreationResponse": { + "base": null, + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "ApiKey$id": "

The API key ID.

", + "ApiKey$description": "

A description of the purpose of the API key.

", + "ApiKeyLimitExceededException$message": null, + "ApiLimitExceededException$message": null, + "CreateApiKeyRequest$apiId": "

The ID for your GraphQL API.

", + "CreateApiKeyRequest$description": "

A description of the purpose of the API key.

", + "CreateDataSourceRequest$apiId": "

The API ID for the GraphQL API for the DataSource.

", + "CreateDataSourceRequest$description": "

A description of the DataSource.

", + "CreateDataSourceRequest$serviceRoleArn": "

The IAM service role ARN for the data source. The system assumes this role when accessing the data source.

", + "CreateResolverRequest$apiId": "

The ID for the GraphQL API for which the resolver is being created.

", + "CreateTypeRequest$apiId": "

The API ID.

", + "CreateTypeRequest$definition": "

The type definition, in GraphQL Schema Definition Language (SDL) format.

For more information, see the GraphQL SDL documentation.

", + "DataSource$dataSourceArn": "

The data source ARN.

", + "DataSource$description": "

The description of the data source.

", + "DataSource$serviceRoleArn": "

The IAM service role ARN for the data source. The system assumes this role when accessing the data source.

", + "DeleteApiKeyRequest$apiId": "

The API ID.

", + "DeleteApiKeyRequest$id": "

The ID for the API key.

", + "DeleteDataSourceRequest$apiId": "

The API ID.

", + "DeleteGraphqlApiRequest$apiId": "

The API ID.

", + "DeleteResolverRequest$apiId": "

The API ID.

", + "DeleteTypeRequest$apiId": "

The API ID.

", + "DynamodbDataSourceConfig$tableName": "

The table name.

", + "DynamodbDataSourceConfig$awsRegion": "

The AWS region.

", + "ElasticsearchDataSourceConfig$endpoint": "

The endpoint.

", + "ElasticsearchDataSourceConfig$awsRegion": "

The AWS region.

", + "GetDataSourceRequest$apiId": "

The API ID.

", + "GetGraphqlApiRequest$apiId": "

The API ID for the GraphQL API.

", + "GetIntrospectionSchemaRequest$apiId": "

The API ID.

", + "GetResolverRequest$apiId": "

The API ID.

", + "GetSchemaCreationStatusRequest$apiId": "

The API ID.

", + "GetSchemaCreationStatusResponse$details": "

Detailed information about the status of the schema creation operation.

", + "GetTypeRequest$apiId": "

The API ID.

", + "GraphqlApi$apiId": "

The API ID.

", + "GraphqlApi$arn": "

The ARN.

", + "InternalFailureException$message": null, + "LambdaDataSourceConfig$lambdaFunctionArn": "

The ARN for the Lambda function.

", + "LimitExceededException$message": null, + "ListApiKeysRequest$apiId": "

The API ID.

", + "ListDataSourcesRequest$apiId": "

The API ID.

", + "ListResolversRequest$apiId": "

The API ID.

", + "ListResolversRequest$typeName": "

The type name.

", + "ListTypesRequest$apiId": "

The API ID.

", + "MapOfStringToString$key": null, + "MapOfStringToString$value": null, + "NotFoundException$message": null, + "Resolver$resolverArn": "

The resolver ARN.

", + "StartSchemaCreationRequest$apiId": "

The API ID.

", + "Type$description": "

The type description.

", + "Type$arn": "

The type ARN.

", + "Type$definition": "

The type definition.

", + "UnauthorizedException$message": null, + "UpdateDataSourceRequest$apiId": "

The API ID.

", + "UpdateDataSourceRequest$description": "

The new description for the data source.

", + "UpdateDataSourceRequest$serviceRoleArn": "

The new service role ARN for the data source.

", + "UpdateGraphqlApiRequest$apiId": "

The API ID.

", + "UpdateResolverRequest$apiId": "

The API ID.

", + "UpdateTypeRequest$apiId": "

The API ID.

", + "UpdateTypeRequest$definition": "

The new definition.

", + "UserPoolConfig$userPoolId": "

The user pool ID.

", + "UserPoolConfig$awsRegion": "

The AWS region in which the user pool was created.

", + "UserPoolConfig$appIdClientRegex": "

A regular expression for validating the incoming Amazon Cognito User Pool app client ID.

" + } + }, + "Type": { + "base": "

Describes a type.

", + "refs": { + "CreateTypeResponse$type": "

The Type object.

", + "GetTypeResponse$type": "

The Type object.

", + "TypeList$member": null, + "UpdateTypeResponse$type": "

The updated Type object.

" + } + }, + "TypeDefinitionFormat": { + "base": null, + "refs": { + "CreateTypeRequest$format": "

The type format: SDL or JSON.

", + "GetTypeRequest$format": "

The type format: SDL or JSON.

", + "ListTypesRequest$format": "

The type format: SDL or JSON.

", + "Type$format": "

The type format: SDL or JSON.

", + "UpdateTypeRequest$format": "

The new type format: SDL or JSON.

" + } + }, + "TypeList": { + "base": null, + "refs": { + "ListTypesResponse$types": "

The Type objects.

" + } + }, + "UnauthorizedException": { + "base": "

You are not authorized to perform this operation.

", + "refs": { + } + }, + "UpdateDataSourceRequest": { + "base": null, + "refs": { + } + }, + "UpdateDataSourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateGraphqlApiRequest": { + "base": null, + "refs": { + } + }, + "UpdateGraphqlApiResponse": { + "base": null, + "refs": { + } + }, + "UpdateResolverRequest": { + "base": null, + "refs": { + } + }, + "UpdateResolverResponse": { + "base": null, + "refs": { + } + }, + "UpdateTypeRequest": { + "base": null, + "refs": { + } + }, + "UpdateTypeResponse": { + "base": null, + "refs": { + } + }, + "UserPoolConfig": { + "base": "

Describes an Amazon Cognito User Pool configuration.

", + "refs": { + "CreateGraphqlApiRequest$userPoolConfig": "

The Amazon Cognito User Pool configuration.

", + "GraphqlApi$userPoolConfig": "

The Amazon Cognito User Pool configuration.

", + "UpdateGraphqlApiRequest$userPoolConfig": "

The new Amazon Cognito User Pool configuration for the GraphqlApi object.

" + } + } + } +} diff --git a/models/apis/appsync/2017-07-25/examples-1.json b/models/apis/appsync/2017-07-25/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/appsync/2017-07-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/appsync/2017-07-25/paginators-1.json b/models/apis/appsync/2017-07-25/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/appsync/2017-07-25/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/autoscaling/2011-01-01/api-2.json b/models/apis/autoscaling/2011-01-01/api-2.json index 50d41e7e639..6dcaa716d34 100644 --- a/models/apis/autoscaling/2011-01-01/api-2.json +++ b/models/apis/autoscaling/2011-01-01/api-2.json @@ -102,7 +102,8 @@ "errors":[ {"shape":"LimitExceededFault"}, {"shape":"AlreadyExistsFault"}, - {"shape":"ResourceContentionFault"} + {"shape":"ResourceContentionFault"}, + {"shape":"ResourceInUseFault"} ] }, "DeleteAutoScalingGroup":{ @@ -186,7 +187,8 @@ }, "input":{"shape":"DeleteTagsType"}, "errors":[ - {"shape":"ResourceContentionFault"} + {"shape":"ResourceContentionFault"}, + {"shape":"ResourceInUseFault"} ] }, "DescribeAccountLimits":{ @@ -874,6 +876,7 @@ "AutoScalingGroupName":{"shape":"XmlStringMaxLen255"}, "AutoScalingGroupARN":{"shape":"ResourceName"}, "LaunchConfigurationName":{"shape":"XmlStringMaxLen255"}, + "LaunchTemplate":{"shape":"LaunchTemplateSpecification"}, "MinSize":{"shape":"AutoScalingGroupMinSize"}, "MaxSize":{"shape":"AutoScalingGroupMaxSize"}, "DesiredCapacity":{"shape":"AutoScalingGroupDesiredCapacity"}, @@ -930,7 +933,6 @@ "AvailabilityZone", "LifecycleState", "HealthStatus", - "LaunchConfigurationName", "ProtectedFromScaleIn" ], "members":{ @@ -940,6 +942,7 @@ "LifecycleState":{"shape":"XmlStringMaxLen32"}, "HealthStatus":{"shape":"XmlStringMaxLen32"}, "LaunchConfigurationName":{"shape":"XmlStringMaxLen255"}, + "LaunchTemplate":{"shape":"LaunchTemplateSpecification"}, "ProtectedFromScaleIn":{"shape":"InstanceProtected"} } }, @@ -1029,6 +1032,7 @@ "members":{ "AutoScalingGroupName":{"shape":"XmlStringMaxLen255"}, "LaunchConfigurationName":{"shape":"ResourceName"}, + "LaunchTemplate":{"shape":"LaunchTemplateSpecification"}, "InstanceId":{"shape":"XmlStringMaxLen19"}, "MinSize":{"shape":"AutoScalingGroupMinSize"}, "MaxSize":{"shape":"AutoScalingGroupMaxSize"}, @@ -1043,6 +1047,7 @@ "VPCZoneIdentifier":{"shape":"XmlStringMaxLen2047"}, "TerminationPolicies":{"shape":"TerminationPolicies"}, "NewInstancesProtectedFromScaleIn":{"shape":"InstanceProtected"}, + "LifecycleHookSpecificationList":{"shape":"LifecycleHookSpecifications"}, "Tags":{"shape":"Tags"} } }, @@ -1077,6 +1082,21 @@ "Tags":{"shape":"Tags"} } }, + "CustomizedMetricSpecification":{ + "type":"structure", + "required":[ + "MetricName", + "Namespace", + "Statistic" + ], + "members":{ + "MetricName":{"shape":"MetricName"}, + "Namespace":{"shape":"MetricNamespace"}, + "Dimensions":{"shape":"MetricDimensions"}, + "Statistic":{"shape":"MetricStatistic"}, + "Unit":{"shape":"MetricUnit"} + } + }, "DeleteAutoScalingGroupType":{ "type":"structure", "required":["AutoScalingGroupName"], @@ -1344,6 +1364,7 @@ "Metrics":{"shape":"Metrics"} } }, + "DisableScaleIn":{"type":"boolean"}, "Ebs":{ "type":"structure", "members":{ @@ -1446,7 +1467,6 @@ "AvailabilityZone", "LifecycleState", "HealthStatus", - "LaunchConfigurationName", "ProtectedFromScaleIn" ], "members":{ @@ -1455,6 +1475,7 @@ "LifecycleState":{"shape":"LifecycleState"}, "HealthStatus":{"shape":"XmlStringMaxLen32"}, "LaunchConfigurationName":{"shape":"XmlStringMaxLen255"}, + "LaunchTemplate":{"shape":"LaunchTemplateSpecification"}, "ProtectedFromScaleIn":{"shape":"InstanceProtected"} } }, @@ -1546,6 +1567,20 @@ "NextToken":{"shape":"XmlString"} } }, + "LaunchTemplateName":{ + "type":"string", + "max":128, + "min":3, + "pattern":"[a-zA-Z0-9\\(\\)\\.-/_]+" + }, + "LaunchTemplateSpecification":{ + "type":"structure", + "members":{ + "LaunchTemplateId":{"shape":"XmlStringMaxLen255"}, + "LaunchTemplateName":{"shape":"LaunchTemplateName"}, + "Version":{"shape":"XmlStringMaxLen255"} + } + }, "LifecycleActionResult":{"type":"string"}, "LifecycleActionToken":{ "type":"string", @@ -1568,7 +1603,28 @@ }, "LifecycleHookNames":{ "type":"list", - "member":{"shape":"AsciiStringMaxLen255"} + "member":{"shape":"AsciiStringMaxLen255"}, + "max":50 + }, + "LifecycleHookSpecification":{ + "type":"structure", + "required":[ + "LifecycleHookName", + "LifecycleTransition" + ], + "members":{ + "LifecycleHookName":{"shape":"AsciiStringMaxLen255"}, + "LifecycleTransition":{"shape":"LifecycleTransition"}, + "NotificationMetadata":{"shape":"XmlStringMaxLen1023"}, + "HeartbeatTimeout":{"shape":"HeartbeatTimeout"}, + "DefaultResult":{"shape":"LifecycleActionResult"}, + "NotificationTargetARN":{"shape":"NotificationTargetResourceName"}, + "RoleARN":{"shape":"ResourceName"} + } + }, + "LifecycleHookSpecifications":{ + "type":"list", + "member":{"shape":"LifecycleHookSpecification"} }, "LifecycleHooks":{ "type":"list", @@ -1644,6 +1700,23 @@ "type":"list", "member":{"shape":"MetricCollectionType"} }, + "MetricDimension":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{"shape":"MetricDimensionName"}, + "Value":{"shape":"MetricDimensionValue"} + } + }, + "MetricDimensionName":{"type":"string"}, + "MetricDimensionValue":{"type":"string"}, + "MetricDimensions":{ + "type":"list", + "member":{"shape":"MetricDimension"} + }, "MetricGranularityType":{ "type":"structure", "members":{ @@ -1654,7 +1727,29 @@ "type":"list", "member":{"shape":"MetricGranularityType"} }, + "MetricName":{"type":"string"}, + "MetricNamespace":{"type":"string"}, "MetricScale":{"type":"double"}, + "MetricStatistic":{ + "type":"string", + "enum":[ + "Average", + "Minimum", + "Maximum", + "SampleCount", + "Sum" + ] + }, + "MetricType":{ + "type":"string", + "enum":[ + "ASGAverageCPUUtilization", + "ASGAverageNetworkIn", + "ASGAverageNetworkOut", + "ALBRequestCountPerTarget" + ] + }, + "MetricUnit":{"type":"string"}, "Metrics":{ "type":"list", "member":{"shape":"XmlStringMaxLen255"} @@ -1696,7 +1791,8 @@ "PolicyARNType":{ "type":"structure", "members":{ - "PolicyARN":{"shape":"ResourceName"} + "PolicyARN":{"shape":"ResourceName"}, + "Alarms":{"shape":"Alarms"} } }, "PolicyIncrement":{"type":"integer"}, @@ -1708,6 +1804,14 @@ "type":"list", "member":{"shape":"XmlStringMaxLen64"} }, + "PredefinedMetricSpecification":{ + "type":"structure", + "required":["PredefinedMetricType"], + "members":{ + "PredefinedMetricType":{"shape":"MetricType"}, + "ResourceLabel":{"shape":"XmlStringMaxLen1023"} + } + }, "ProcessNames":{ "type":"list", "member":{"shape":"XmlStringMaxLen255"} @@ -1771,8 +1875,7 @@ "type":"structure", "required":[ "AutoScalingGroupName", - "PolicyName", - "AdjustmentType" + "PolicyName" ], "members":{ "AutoScalingGroupName":{"shape":"ResourceName"}, @@ -1785,7 +1888,8 @@ "Cooldown":{"shape":"Cooldown"}, "MetricAggregationType":{"shape":"XmlStringMaxLen32"}, "StepAdjustments":{"shape":"StepAdjustments"}, - "EstimatedInstanceWarmup":{"shape":"EstimatedInstanceWarmup"} + "EstimatedInstanceWarmup":{"shape":"EstimatedInstanceWarmup"}, + "TargetTrackingConfiguration":{"shape":"TargetTrackingConfiguration"} } }, "PutScheduledUpdateGroupActionType":{ @@ -1902,7 +2006,8 @@ "StepAdjustments":{"shape":"StepAdjustments"}, "MetricAggregationType":{"shape":"XmlStringMaxLen32"}, "EstimatedInstanceWarmup":{"shape":"EstimatedInstanceWarmup"}, - "Alarms":{"shape":"Alarms"} + "Alarms":{"shape":"Alarms"}, + "TargetTrackingConfiguration":{"shape":"TargetTrackingConfiguration"} } }, "ScalingProcessQuery":{ @@ -2072,6 +2177,16 @@ "type":"list", "member":{"shape":"XmlStringMaxLen511"} }, + "TargetTrackingConfiguration":{ + "type":"structure", + "required":["TargetValue"], + "members":{ + "PredefinedMetricSpecification":{"shape":"PredefinedMetricSpecification"}, + "CustomizedMetricSpecification":{"shape":"CustomizedMetricSpecification"}, + "TargetValue":{"shape":"MetricScale"}, + "DisableScaleIn":{"shape":"DisableScaleIn"} + } + }, "TerminateInstanceInAutoScalingGroupType":{ "type":"structure", "required":[ @@ -2094,6 +2209,7 @@ "members":{ "AutoScalingGroupName":{"shape":"ResourceName"}, "LaunchConfigurationName":{"shape":"ResourceName"}, + "LaunchTemplate":{"shape":"LaunchTemplateSpecification"}, "MinSize":{"shape":"AutoScalingGroupMinSize"}, "MaxSize":{"shape":"AutoScalingGroupMaxSize"}, "DesiredCapacity":{"shape":"AutoScalingGroupDesiredCapacity"}, diff --git a/models/apis/autoscaling/2011-01-01/docs-2.json b/models/apis/autoscaling/2011-01-01/docs-2.json index a2014c9ef14..4ec186ca94f 100644 --- a/models/apis/autoscaling/2011-01-01/docs-2.json +++ b/models/apis/autoscaling/2011-01-01/docs-2.json @@ -109,6 +109,7 @@ "Alarms": { "base": null, "refs": { + "PolicyARNType$Alarms": "

The CloudWatch alarms created for the target tracking policy.

", "ScalingPolicy$Alarms": "

The CloudWatch alarms related to the policy.

" } }, @@ -124,6 +125,7 @@ "DeleteLifecycleHookType$LifecycleHookName": "

The name of the lifecycle hook.

", "LifecycleHook$LifecycleHookName": "

The name of the lifecycle hook.

", "LifecycleHookNames$member": null, + "LifecycleHookSpecification$LifecycleHookName": "

The name of the lifecycle hook.

", "PutLifecycleHookType$LifecycleHookName": "

The name of the lifecycle hook.

", "RecordLifecycleActionHeartbeatType$LifecycleHookName": "

The name of the lifecycle hook.

" } @@ -200,8 +202,8 @@ "AutoScalingGroupNames": { "base": null, "refs": { - "AutoScalingGroupNamesType$AutoScalingGroupNames": "

The group names. If you omit this parameter, all Auto Scaling groups are described.

", - "DescribeNotificationConfigurationsType$AutoScalingGroupNames": "

The name of the group.

" + "AutoScalingGroupNamesType$AutoScalingGroupNames": "

The names of the Auto Scaling groups. If you omit this parameter, all Auto Scaling groups are described.

", + "DescribeNotificationConfigurationsType$AutoScalingGroupNames": "

The name of the Auto Scaling group.

" } }, "AutoScalingGroupNamesType": { @@ -318,7 +320,7 @@ "refs": { "AutoScalingGroup$DefaultCooldown": "

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

", "CreateAutoScalingGroupType$DefaultCooldown": "

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default is 300.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

", - "PutScalingPolicyType$Cooldown": "

The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.

This parameter is not supported unless the policy type is SimpleScaling.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

", + "PutScalingPolicyType$Cooldown": "

The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.

This parameter is supported if the policy type is SimpleScaling.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

", "ScalingPolicy$Cooldown": "

The amount of time, in seconds, after a scaling activity completes before any further dynamic scaling activities can start.

", "UpdateAutoScalingGroupType$DefaultCooldown": "

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default is 300.

For more information, see Auto Scaling Cooldowns in the Auto Scaling User Guide.

" } @@ -338,6 +340,12 @@ "refs": { } }, + "CustomizedMetricSpecification": { + "base": "

Configures a customized metric for a target tracking policy.

", + "refs": { + "TargetTrackingConfiguration$CustomizedMetricSpecification": "

A customized metric.

" + } + }, "DeleteAutoScalingGroupType": { "base": null, "refs": { @@ -503,6 +511,12 @@ "refs": { } }, + "DisableScaleIn": { + "base": null, + "refs": { + "TargetTrackingConfiguration$DisableScaleIn": "

Indicates whether scale in by the target tracking policy is disabled. If the value is true, scale in is disabled and the target tracking policy won't remove instances from the Auto Scaling group. Otherwise, scale in is enabled and the target tracking policy can remove instances from the Auto Scaling group. The default value is false.

" + } + }, "Ebs": { "base": "

Describes an Amazon EBS volume.

", "refs": { @@ -546,7 +560,7 @@ "EstimatedInstanceWarmup": { "base": null, "refs": { - "PutScalingPolicyType$EstimatedInstanceWarmup": "

The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. The default is to use the value specified for the default cooldown period for the group.

This parameter is not supported if the policy type is SimpleScaling.

", + "PutScalingPolicyType$EstimatedInstanceWarmup": "

The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. The default is to use the value specified for the default cooldown period for the group.

This parameter is supported if the policy type is StepScaling or TargetTrackingScaling.

", "ScalingPolicy$EstimatedInstanceWarmup": "

The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics.

" } }, @@ -600,8 +614,9 @@ "HeartbeatTimeout": { "base": null, "refs": { - "LifecycleHook$HeartbeatTimeout": "

The maximum time, in seconds, that can elapse before the lifecycle hook times out. The default is 3600 seconds (1 hour). When the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat.

", - "PutLifecycleHookType$HeartbeatTimeout": "

The amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat. The default is 3600 seconds (1 hour).

" + "LifecycleHook$HeartbeatTimeout": "

The maximum time, in seconds, that can elapse before the lifecycle hook times out. If the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat.

", + "LifecycleHookSpecification$HeartbeatTimeout": "

The maximum time, in seconds, that can elapse before the lifecycle hook times out. If the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat.

", + "PutLifecycleHookType$HeartbeatTimeout": "

The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from 30 to 7200 seconds. The default is 3600 seconds (1 hour).

If the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat.

" } }, "HonorCooldown": { @@ -689,11 +704,28 @@ "refs": { } }, + "LaunchTemplateName": { + "base": null, + "refs": { + "LaunchTemplateSpecification$LaunchTemplateName": "

The name of the launch template. You must specify either a template name or a template ID.

" + } + }, + "LaunchTemplateSpecification": { + "base": "

Describes a launch template.

", + "refs": { + "AutoScalingGroup$LaunchTemplate": "

The launch template for the group.

", + "AutoScalingInstanceDetails$LaunchTemplate": "

The launch template for the instance.

", + "CreateAutoScalingGroupType$LaunchTemplate": "

The launch template to use to launch instances. You must specify one of the following: a launch template, a launch configuration, or an EC2 instance.

", + "Instance$LaunchTemplate": "

The launch template for the instance.

", + "UpdateAutoScalingGroupType$LaunchTemplate": "

The launch template to use to specify the updates. You must specify a launch configuration or a launch template.

" + } + }, "LifecycleActionResult": { "base": null, "refs": { "CompleteLifecycleActionType$LifecycleActionResult": "

The action for the group to take. This parameter can be either CONTINUE or ABANDON.

", "LifecycleHook$DefaultResult": "

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The valid values are CONTINUE and ABANDON. The default value is CONTINUE.

", + "LifecycleHookSpecification$DefaultResult": "

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The valid values are CONTINUE and ABANDON.

", "PutLifecycleHookType$DefaultResult": "

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. This parameter can be either CONTINUE or ABANDON. The default value is ABANDON.

" } }, @@ -705,7 +737,7 @@ } }, "LifecycleHook": { - "base": "

Describes a lifecycle hook, which tells Auto Scaling that you want to perform an action when an instance launches or terminates. When you have a lifecycle hook in place, the Auto Scaling group will either:

For more information, see Auto Scaling Lifecycle in the Auto Scaling User Guide.

", + "base": "

Describes a lifecycle hook, which tells Auto Scaling that you want to perform an action whenever it launches instances or whenever it terminates instances.

For more information, see Auto Scaling Lifecycle Hooks in the Auto Scaling User Guide.

", "refs": { "LifecycleHooks$member": null } @@ -716,6 +748,18 @@ "DescribeLifecycleHooksType$LifecycleHookNames": "

The names of one or more lifecycle hooks. If you omit this parameter, all lifecycle hooks are described.

" } }, + "LifecycleHookSpecification": { + "base": "

Describes a lifecycle hook, which tells Auto Scaling that you want to perform an action whenever it launches instances or whenever it terminates instances.

For more information, see Auto Scaling Lifecycle Hooks in the Auto Scaling User Guide.

", + "refs": { + "LifecycleHookSpecifications$member": null + } + }, + "LifecycleHookSpecifications": { + "base": null, + "refs": { + "CreateAutoScalingGroupType$LifecycleHookSpecificationList": "

One or more lifecycle hooks.

" + } + }, "LifecycleHooks": { "base": null, "refs": { @@ -732,6 +776,7 @@ "base": null, "refs": { "LifecycleHook$LifecycleTransition": "

The state of the EC2 instance to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see DescribeLifecycleHookTypes.

", + "LifecycleHookSpecification$LifecycleTransition": "

The state of the EC2 instance to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see DescribeLifecycleHookTypes.

", "PutLifecycleHookType$LifecycleTransition": "

The instance state to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see DescribeLifecycleHookTypes.

This parameter is required for new lifecycle hooks, but optional when updating existing hooks.

" } }, @@ -812,6 +857,30 @@ "DescribeMetricCollectionTypesAnswer$Metrics": "

One or more metrics.

" } }, + "MetricDimension": { + "base": "

Describes the dimension of a metric.

", + "refs": { + "MetricDimensions$member": null + } + }, + "MetricDimensionName": { + "base": null, + "refs": { + "MetricDimension$Name": "

The name of the dimension.

" + } + }, + "MetricDimensionValue": { + "base": null, + "refs": { + "MetricDimension$Value": "

The value of the dimension.

" + } + }, + "MetricDimensions": { + "base": null, + "refs": { + "CustomizedMetricSpecification$Dimensions": "

The dimensions of the metric.

" + } + }, "MetricGranularityType": { "base": "

Describes a granularity of a metric.

", "refs": { @@ -824,13 +893,44 @@ "DescribeMetricCollectionTypesAnswer$Granularities": "

The granularities for the metrics.

" } }, + "MetricName": { + "base": null, + "refs": { + "CustomizedMetricSpecification$MetricName": "

The name of the metric.

" + } + }, + "MetricNamespace": { + "base": null, + "refs": { + "CustomizedMetricSpecification$Namespace": "

The namespace of the metric.

" + } + }, "MetricScale": { "base": null, "refs": { "ExecutePolicyType$MetricValue": "

The metric value to compare to BreachThreshold. This enables you to execute a policy of type StepScaling and determine which step adjustment to use. For example, if the breach threshold is 50 and you want to use a step adjustment with a lower bound of 0 and an upper bound of 10, you can set the metric value to 59.

If you specify a metric value that doesn't correspond to a step adjustment for the policy, the call returns an error.

This parameter is required if the policy type is StepScaling and not supported otherwise.

", "ExecutePolicyType$BreachThreshold": "

The breach threshold for the alarm.

This parameter is required if the policy type is StepScaling and not supported otherwise.

", "StepAdjustment$MetricIntervalLowerBound": "

The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.

", - "StepAdjustment$MetricIntervalUpperBound": "

The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.

The upper bound must be greater than the lower bound.

" + "StepAdjustment$MetricIntervalUpperBound": "

The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.

The upper bound must be greater than the lower bound.

", + "TargetTrackingConfiguration$TargetValue": "

The target value for the metric.

" + } + }, + "MetricStatistic": { + "base": null, + "refs": { + "CustomizedMetricSpecification$Statistic": "

The statistic of the metric.

" + } + }, + "MetricType": { + "base": null, + "refs": { + "PredefinedMetricSpecification$PredefinedMetricType": "

The metric type.

" + } + }, + "MetricUnit": { + "base": null, + "refs": { + "CustomizedMetricSpecification$Unit": "

The unit of the metric.

" } }, "Metrics": { @@ -843,7 +943,7 @@ "MinAdjustmentMagnitude": { "base": null, "refs": { - "PutScalingPolicyType$MinAdjustmentMagnitude": "

The minimum number of instances to scale. If the value of AdjustmentType is PercentChangeInCapacity, the scaling policy changes the DesiredCapacity of the Auto Scaling group by at least this many instances. Otherwise, the error is ValidationError.

", + "PutScalingPolicyType$MinAdjustmentMagnitude": "

The minimum number of instances to scale. If the value of AdjustmentType is PercentChangeInCapacity, the scaling policy changes the DesiredCapacity of the Auto Scaling group by at least this many instances. Otherwise, the error is ValidationError.

This parameter is supported if the policy type is SimpleScaling or StepScaling.

", "ScalingPolicy$MinAdjustmentMagnitude": "

The minimum number of instances to scale. If the value of AdjustmentType is PercentChangeInCapacity, the scaling policy changes the DesiredCapacity of the Auto Scaling group by at least this many instances. Otherwise, the error is ValidationError.

" } }, @@ -881,6 +981,7 @@ "NotificationTargetResourceName": { "base": null, "refs": { + "LifecycleHookSpecification$NotificationTargetARN": "

The ARN of the target that Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic.

", "PutLifecycleHookType$NotificationTargetARN": "

The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This target can be either an SQS queue or an SNS topic. If you specify an empty string, this overrides the current ARN.

This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key/value pair format when sending notifications to an Amazon SNS topic.

When you specify a notification target, Auto Scaling sends it a test message. Test messages contains the following additional key/value pair: \"Event\": \"autoscaling:TEST_NOTIFICATION\".

" } }, @@ -902,7 +1003,7 @@ } }, "PolicyARNType": { - "base": null, + "base": "

Contains the output of PutScalingPolicy.

", "refs": { } }, @@ -917,7 +1018,7 @@ "PolicyNames": { "base": null, "refs": { - "DescribePoliciesType$PolicyNames": "

One or more policy names or policy ARNs to be described. If you omit this parameter, all policy names are described. If an group name is provided, the results are limited to that group. This list is limited to 50 items. If you specify an unknown policy name, it is ignored with no error.

" + "DescribePoliciesType$PolicyNames": "

The names of one or more policies. If you omit this parameter, all policies are described. If an group name is provided, the results are limited to that group. This list is limited to 50 items. If you specify an unknown policy name, it is ignored with no error.

" } }, "PolicyTypes": { @@ -926,6 +1027,12 @@ "DescribePoliciesType$PolicyTypes": "

One or more policy types. Valid values are SimpleScaling and StepScaling.

" } }, + "PredefinedMetricSpecification": { + "base": "

Configures a predefined metric for a target tracking policy.

", + "refs": { + "TargetTrackingConfiguration$PredefinedMetricSpecification": "

A predefined metric. You can specify either a predefined metric or a customized metric.

" + } + }, "ProcessNames": { "base": null, "refs": { @@ -1017,61 +1124,62 @@ "base": null, "refs": { "Alarm$AlarmARN": "

The Amazon Resource Name (ARN) of the alarm.

", - "AttachInstancesQuery$AutoScalingGroupName": "

The name of the group.

", + "AttachInstancesQuery$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "AttachLoadBalancerTargetGroupsType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", - "AttachLoadBalancersType$AutoScalingGroupName": "

The name of the group.

", - "AutoScalingGroup$AutoScalingGroupARN": "

The Amazon Resource Name (ARN) of the group.

", + "AttachLoadBalancersType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "AutoScalingGroup$AutoScalingGroupARN": "

The Amazon Resource Name (ARN) of the Auto Scaling group.

", "AutoScalingGroupNames$member": null, - "CompleteLifecycleActionType$AutoScalingGroupName": "

The name of the group for the lifecycle hook.

", - "CreateAutoScalingGroupType$LaunchConfigurationName": "

The name of the launch configuration. Alternatively, specify an EC2 instance instead of a launch configuration.

", - "DeleteAutoScalingGroupType$AutoScalingGroupName": "

The name of the group to delete.

", - "DeleteLifecycleHookType$AutoScalingGroupName": "

The name of the Auto Scaling group for the lifecycle hook.

", + "CompleteLifecycleActionType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "CreateAutoScalingGroupType$LaunchConfigurationName": "

The name of the launch configuration. You must specify one of the following: a launch configuration, a launch template, or an EC2 instance.

", + "DeleteAutoScalingGroupType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "DeleteLifecycleHookType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "DeleteNotificationConfigurationType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "DeleteNotificationConfigurationType$TopicARN": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic.

", "DeletePolicyType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "DeletePolicyType$PolicyName": "

The name or Amazon Resource Name (ARN) of the policy.

", "DeleteScheduledActionType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "DeleteScheduledActionType$ScheduledActionName": "

The name of the action to delete.

", - "DescribeLifecycleHooksType$AutoScalingGroupName": "

The name of the group.

", + "DescribeLifecycleHooksType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "DescribeLoadBalancerTargetGroupsRequest$AutoScalingGroupName": "

The name of the Auto Scaling group.

", - "DescribeLoadBalancersRequest$AutoScalingGroupName": "

The name of the group.

", - "DescribePoliciesType$AutoScalingGroupName": "

The name of the group.

", - "DescribeScalingActivitiesType$AutoScalingGroupName": "

The name of the group.

", - "DescribeScheduledActionsType$AutoScalingGroupName": "

The name of the group.

", - "DetachInstancesQuery$AutoScalingGroupName": "

The name of the group.

", + "DescribeLoadBalancersRequest$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "DescribePoliciesType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "DescribeScalingActivitiesType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "DescribeScheduledActionsType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "DetachInstancesQuery$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "DetachLoadBalancerTargetGroupsType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "DetachLoadBalancersType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", - "DisableMetricsCollectionQuery$AutoScalingGroupName": "

The name or Amazon Resource Name (ARN) of the group.

", - "EnableMetricsCollectionQuery$AutoScalingGroupName": "

The name or ARN of the Auto Scaling group.

", + "DisableMetricsCollectionQuery$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "EnableMetricsCollectionQuery$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "EnterStandbyQuery$AutoScalingGroupName": "

The name of the Auto Scaling group.

", - "ExecutePolicyType$AutoScalingGroupName": "

The name or Amazon Resource Name (ARN) of the Auto Scaling group.

", + "ExecutePolicyType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "ExecutePolicyType$PolicyName": "

The name or ARN of the policy.

", "ExitStandbyQuery$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "LaunchConfiguration$LaunchConfigurationARN": "

The Amazon Resource Name (ARN) of the launch configuration.

", "LaunchConfigurationNameType$LaunchConfigurationName": "

The name of the launch configuration.

", "LaunchConfigurationNames$member": null, "LifecycleHook$AutoScalingGroupName": "

The name of the Auto Scaling group for the lifecycle hook.

", - "LifecycleHook$NotificationTargetARN": "

The ARN of the notification target that Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic. The notification message sent to the target includes the following:

", + "LifecycleHook$NotificationTargetARN": "

The ARN of the target that Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic.

", "LifecycleHook$RoleARN": "

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

", - "NotificationConfiguration$AutoScalingGroupName": "

The name of the group.

", + "LifecycleHookSpecification$RoleARN": "

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

", + "NotificationConfiguration$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "NotificationConfiguration$TopicARN": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic.

", "PolicyARNType$PolicyARN": "

The Amazon Resource Name (ARN) of the policy.

", "PolicyNames$member": null, - "PutLifecycleHookType$AutoScalingGroupName": "

The name of the Auto Scaling group to which you want to assign the lifecycle hook.

", + "PutLifecycleHookType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "PutLifecycleHookType$RoleARN": "

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

This parameter is required for new lifecycle hooks, but optional when updating existing hooks.

", "PutNotificationConfigurationType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "PutNotificationConfigurationType$TopicARN": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic.

", - "PutScalingPolicyType$AutoScalingGroupName": "

The name or ARN of the group.

", - "PutScheduledUpdateGroupActionType$AutoScalingGroupName": "

The name or Amazon Resource Name (ARN) of the Auto Scaling group.

", - "RecordLifecycleActionHeartbeatType$AutoScalingGroupName": "

The name of the Auto Scaling group for the hook.

", + "PutScalingPolicyType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "PutScheduledUpdateGroupActionType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "RecordLifecycleActionHeartbeatType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "ScalingPolicy$PolicyARN": "

The Amazon Resource Name (ARN) of the policy.

", - "ScalingProcessQuery$AutoScalingGroupName": "

The name or Amazon Resource Name (ARN) of the Auto Scaling group.

", + "ScalingProcessQuery$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "ScheduledActionNames$member": null, "ScheduledUpdateGroupAction$ScheduledActionARN": "

The Amazon Resource Name (ARN) of the scheduled action.

", "SetDesiredCapacityType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", - "SetInstanceProtectionQuery$AutoScalingGroupName": "

The name of the group.

", + "SetInstanceProtectionQuery$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "UpdateAutoScalingGroupType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", - "UpdateAutoScalingGroupType$LaunchConfigurationName": "

The name of the launch configuration.

" + "UpdateAutoScalingGroupType$LaunchConfigurationName": "

The name of the launch configuration. You must specify either a launch configuration or a launch template.

" } }, "ScalingActivityInProgressFault": { @@ -1253,6 +1361,13 @@ "DetachLoadBalancerTargetGroupsType$TargetGroupARNs": "

The Amazon Resource Names (ARN) of the target groups.

" } }, + "TargetTrackingConfiguration": { + "base": "

Represents a target tracking policy configuration.

", + "refs": { + "PutScalingPolicyType$TargetTrackingConfiguration": "

A target tracking policy.

This parameter is required if the policy type is TargetTrackingScaling and not supported otherwise.

", + "ScalingPolicy$TargetTrackingConfiguration": "

A target tracking policy.

" + } + }, "TerminateInstanceInAutoScalingGroupType": { "base": null, "refs": { @@ -1336,6 +1451,8 @@ "refs": { "Activity$Cause": "

The reason the activity began.

", "LifecycleHook$NotificationMetadata": "

Additional information that you want to include any time Auto Scaling sends a message to the notification target.

", + "LifecycleHookSpecification$NotificationMetadata": "

Additional information that you want to include any time Auto Scaling sends a message to the notification target.

", + "PredefinedMetricSpecification$ResourceLabel": "

Identifies the resource associated with the metric type. The following predefined metrics are available:

For predefined metric types ASGAverageCPUUtilization, ASGAverageNetworkIn, and ASGAverageNetworkOut, the parameter must not be specified as the resource associated with the metric type is the Auto Scaling group. For predefined metric type ALBRequestCountPerTarget, the parameter must be specified in the format: app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id , where app/load-balancer-name/load-balancer-id is the final portion of the load balancer ARN, and targetgroup/target-group-name/target-group-id is the final portion of the target group ARN. The target group must be attached to the Auto Scaling group.

", "PutLifecycleHookType$NotificationMetadata": "

Contains additional information that you want to include any time Auto Scaling sends a message to the notification target.

" } }, @@ -1352,7 +1469,7 @@ "refs": { "AutoScalingInstanceDetails$InstanceId": "

The ID of the instance.

", "CompleteLifecycleActionType$InstanceId": "

The ID of the instance.

", - "CreateAutoScalingGroupType$InstanceId": "

The ID of the instance used to create a launch configuration for the group. Alternatively, specify a launch configuration instead of an EC2 instance.

When you specify an ID of an instance, Auto Scaling creates a new launch configuration and associates it with the group. This launch configuration derives its attributes from the specified instance, with the exception of the block device mapping.

For more information, see Create an Auto Scaling Group Using an EC2 Instance in the Auto Scaling User Guide.

", + "CreateAutoScalingGroupType$InstanceId": "

The ID of the instance used to create a launch configuration for the group. You must specify one of the following: an EC2 instance, a launch configuration, or a launch template.

When you specify an ID of an instance, Auto Scaling creates a new launch configuration and associates it with the group. This launch configuration derives its attributes from the specified instance, with the exception of the block device mapping.

For more information, see Create an Auto Scaling Group Using an EC2 Instance in the Auto Scaling User Guide.

", "CreateLaunchConfigurationType$InstanceId": "

The ID of the instance to use to create the launch configuration. The new launch configuration derives attributes from the instance, with the exception of the block device mapping.

If you do not specify InstanceId, you must specify both ImageId and InstanceType.

To create a launch configuration with a block device mapping or override any other instance attributes, specify them as part of the same request.

For more information, see Create a Launch Configuration Using an EC2 Instance in the Auto Scaling User Guide.

", "Instance$InstanceId": "

The ID of the instance.

", "InstanceIds$member": null, @@ -1377,11 +1494,11 @@ "AdjustmentType$AdjustmentType": "

The policy adjustment type. The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

", "Alarm$AlarmName": "

The name of the alarm.

", "AlreadyExistsFault$message": "

", - "AutoScalingGroup$AutoScalingGroupName": "

The name of the group.

", + "AutoScalingGroup$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "AutoScalingGroup$LaunchConfigurationName": "

The name of the associated launch configuration.

", "AutoScalingGroup$PlacementGroup": "

The name of the placement group into which you'll launch your instances, if any. For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide.

", "AutoScalingGroup$Status": "

The current state of the group when DeleteAutoScalingGroup is in progress.

", - "AutoScalingInstanceDetails$AutoScalingGroupName": "

The name of the Auto Scaling group associated with the instance.

", + "AutoScalingInstanceDetails$AutoScalingGroupName": "

The name of the Auto Scaling group for the instance.

", "AutoScalingInstanceDetails$AvailabilityZone": "

The Availability Zone for the instance.

", "AutoScalingInstanceDetails$LaunchConfigurationName": "

The launch configuration used to launch the instance. This value is not available if you attached the instance to the Auto Scaling group.

", "AutoScalingNotificationTypes$member": null, @@ -1389,7 +1506,7 @@ "BlockDeviceMapping$VirtualName": "

The name of the virtual device (for example, ephemeral0).

", "BlockDeviceMapping$DeviceName": "

The device name exposed to the EC2 instance (for example, /dev/sdh or xvdh).

", "ClassicLinkVPCSecurityGroups$member": null, - "CreateAutoScalingGroupType$AutoScalingGroupName": "

The name of the group. This name must be unique within the scope of your AWS account.

", + "CreateAutoScalingGroupType$AutoScalingGroupName": "

The name of the Auto Scaling group. This name must be unique within the scope of your AWS account.

", "CreateAutoScalingGroupType$PlacementGroup": "

The name of the placement group into which you'll launch your instances, if any. For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide.

", "CreateLaunchConfigurationType$LaunchConfigurationName": "

The name of the launch configuration. This name must be unique within the scope of your AWS account.

", "CreateLaunchConfigurationType$ImageId": "

The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances.

If you do not specify InstanceId, you must specify ImageId.

For more information, see Finding an AMI in the Amazon Elastic Compute Cloud User Guide.

", @@ -1412,6 +1529,8 @@ "LaunchConfiguration$InstanceType": "

The instance type for the instances.

", "LaunchConfiguration$KernelId": "

The ID of the kernel associated with the AMI.

", "LaunchConfiguration$RamdiskId": "

The ID of the RAM disk associated with the AMI.

", + "LaunchTemplateSpecification$LaunchTemplateId": "

The ID of the launch template. You must specify either a template ID or a template name.

", + "LaunchTemplateSpecification$Version": "

The version number. By default, the default version of the launch template is used.

", "LimitExceededFault$message": "

", "LoadBalancerNames$member": null, "LoadBalancerState$LoadBalancerName": "

The name of the load balancer.

", @@ -1424,16 +1543,16 @@ "ProcessNames$member": null, "ProcessType$ProcessName": "

One of the following processes:

", "PutScalingPolicyType$PolicyName": "

The name of the policy.

", - "PutScalingPolicyType$AdjustmentType": "

The adjustment type. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

For more information, see Dynamic Scaling in the Auto Scaling User Guide.

", + "PutScalingPolicyType$AdjustmentType": "

The adjustment type. The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

This parameter is supported if the policy type is SimpleScaling or StepScaling.

For more information, see Dynamic Scaling in the Auto Scaling User Guide.

", "PutScheduledUpdateGroupActionType$ScheduledActionName": "

The name of this scaling action.

", "PutScheduledUpdateGroupActionType$Recurrence": "

The recurring schedule for this action, in Unix cron syntax format. For more information, see Cron in Wikipedia.

", "ResourceContentionFault$message": "

", "ResourceInUseFault$message": "

", "ScalingActivityInProgressFault$message": "

", - "ScalingPolicy$AutoScalingGroupName": "

The name of the Auto Scaling group associated with this scaling policy.

", + "ScalingPolicy$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "ScalingPolicy$PolicyName": "

The name of the scaling policy.

", "ScalingPolicy$AdjustmentType": "

The adjustment type, which specifies how ScalingAdjustment is interpreted. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

", - "ScheduledUpdateGroupAction$AutoScalingGroupName": "

The name of the group.

", + "ScheduledUpdateGroupAction$AutoScalingGroupName": "

The name of the Auto Scaling group.

", "ScheduledUpdateGroupAction$ScheduledActionName": "

The name of the scheduled action.

", "ScheduledUpdateGroupAction$Recurrence": "

The recurring schedule for the action.

", "SuspendedProcess$ProcessName": "

The name of the suspended process.

", @@ -1449,7 +1568,7 @@ "AutoScalingInstanceDetails$HealthStatus": "

The last reported health status of this instance. \"Healthy\" means that the instance is healthy and should remain in service. \"Unhealthy\" means that the instance is unhealthy and Auto Scaling should terminate and replace it.

", "CreateAutoScalingGroupType$HealthCheckType": "

The service to use for the health checks. The valid values are EC2 and ELB.

By default, health checks use Amazon EC2 instance status checks to determine the health of an instance. For more information, see Health Checks in the Auto Scaling User Guide.

", "Instance$HealthStatus": "

The last reported health status of the instance. \"Healthy\" means that the instance is healthy and should remain in service. \"Unhealthy\" means that the instance is unhealthy and Auto Scaling should terminate and replace it.

", - "PutScalingPolicyType$MetricAggregationType": "

The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average.

This parameter is not supported if the policy type is SimpleScaling.

", + "PutScalingPolicyType$MetricAggregationType": "

The aggregation type for the CloudWatch metrics. The valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average.

This parameter is supported if the policy type is StepScaling.

", "ScalingPolicy$MetricAggregationType": "

The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average.

", "SetInstanceHealthQuery$HealthStatus": "

The health status of the instance. Set to Healthy if you want the instance to remain in service. Set to Unhealthy if you want the instance to be out of service. Auto Scaling will terminate and replace the unhealthy instance.

", "UpdateAutoScalingGroupType$HealthCheckType": "

The service to use for the health checks. The valid values are EC2 and ELB.

" @@ -1468,7 +1587,7 @@ "CreateLaunchConfigurationType$PlacementTenancy": "

The tenancy of the instance. An instance with a tenancy of dedicated runs on single-tenant hardware and can only be launched into a VPC.

You must set the value of this parameter to dedicated if want to launch Dedicated Instances into a shared tenancy VPC (VPC with instance placement tenancy attribute set to default).

If you specify this parameter, be sure to specify at least one subnet when you create your group.

For more information, see Launching Auto Scaling Instances in a VPC in the Auto Scaling User Guide.

Valid values: default | dedicated

", "LaunchConfiguration$PlacementTenancy": "

The tenancy of the instance, either default or dedicated. An instance with dedicated tenancy runs in an isolated, single-tenant hardware and can only be launched into a VPC.

", "PolicyTypes$member": null, - "PutScalingPolicyType$PolicyType": "

The policy type. Valid values are SimpleScaling and StepScaling. If the policy type is null, the value is treated as SimpleScaling.

", + "PutScalingPolicyType$PolicyType": "

The policy type. The valid values are SimpleScaling, StepScaling, and TargetTrackingScaling. If the policy type is null, the value is treated as SimpleScaling.

", "ScalingPolicy$PolicyType": "

The policy type. Valid values are SimpleScaling and StepScaling.

" } }, diff --git a/models/apis/batch/2016-08-10/api-2.json b/models/apis/batch/2016-08-10/api-2.json index 4d12d86644f..0cee2f88e6b 100644 --- a/models/apis/batch/2016-08-10/api-2.json +++ b/models/apis/batch/2016-08-10/api-2.json @@ -221,13 +221,47 @@ } }, "shapes":{ + "ArrayJobDependency":{ + "type":"string", + "enum":[ + "N_TO_N", + "SEQUENTIAL" + ] + }, + "ArrayJobStatusSummary":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"Integer"} + }, + "ArrayProperties":{ + "type":"structure", + "members":{ + "size":{"shape":"Integer"} + } + }, + "ArrayPropertiesDetail":{ + "type":"structure", + "members":{ + "statusSummary":{"shape":"ArrayJobStatusSummary"}, + "size":{"shape":"Integer"}, + "index":{"shape":"Integer"} + } + }, + "ArrayPropertiesSummary":{ + "type":"structure", + "members":{ + "size":{"shape":"Integer"}, + "index":{"shape":"Integer"} + } + }, "AttemptContainerDetail":{ "type":"structure", "members":{ "containerInstanceArn":{"shape":"String"}, "taskArn":{"shape":"String"}, "exitCode":{"shape":"Integer"}, - "reason":{"shape":"String"} + "reason":{"shape":"String"}, + "logStreamName":{"shape":"String"} } }, "AttemptDetail":{ @@ -391,7 +425,8 @@ "exitCode":{"shape":"Integer"}, "reason":{"shape":"String"}, "containerInstanceArn":{"shape":"String"}, - "taskArn":{"shape":"String"} + "taskArn":{"shape":"String"}, + "logStreamName":{"shape":"String"} } }, "ContainerOverrides":{ @@ -425,6 +460,13 @@ "user":{"shape":"String"} } }, + "ContainerSummary":{ + "type":"structure", + "members":{ + "exitCode":{"shape":"Integer"}, + "reason":{"shape":"String"} + } + }, "CreateComputeEnvironmentRequest":{ "type":"structure", "required":[ @@ -627,7 +669,8 @@ "JobDependency":{ "type":"structure", "members":{ - "jobId":{"shape":"String"} + "jobId":{"shape":"String"}, + "type":{"shape":"ArrayJobDependency"} } }, "JobDependencyList":{ @@ -658,7 +701,8 @@ "dependsOn":{"shape":"JobDependencyList"}, "jobDefinition":{"shape":"String"}, "parameters":{"shape":"ParametersMap"}, - "container":{"shape":"ContainerDetail"} + "container":{"shape":"ContainerDetail"}, + "arrayProperties":{"shape":"ArrayPropertiesDetail"} } }, "JobDetailList":{ @@ -708,7 +752,14 @@ ], "members":{ "jobId":{"shape":"String"}, - "jobName":{"shape":"String"} + "jobName":{"shape":"String"}, + "createdAt":{"shape":"Long"}, + "status":{"shape":"JobStatus"}, + "statusReason":{"shape":"String"}, + "startedAt":{"shape":"Long"}, + "stoppedAt":{"shape":"Long"}, + "container":{"shape":"ContainerSummary"}, + "arrayProperties":{"shape":"ArrayPropertiesSummary"} } }, "JobSummaryList":{ @@ -724,9 +775,9 @@ }, "ListJobsRequest":{ "type":"structure", - "required":["jobQueue"], "members":{ "jobQueue":{"shape":"String"}, + "arrayJobId":{"shape":"String"}, "jobStatus":{"shape":"JobStatus"}, "maxResults":{"shape":"Integer"}, "nextToken":{"shape":"String"} @@ -815,6 +866,7 @@ "members":{ "jobName":{"shape":"String"}, "jobQueue":{"shape":"String"}, + "arrayProperties":{"shape":"ArrayProperties"}, "dependsOn":{"shape":"JobDependencyList"}, "jobDefinition":{"shape":"String"}, "parameters":{"shape":"ParametersMap"}, diff --git a/models/apis/batch/2016-08-10/docs-2.json b/models/apis/batch/2016-08-10/docs-2.json index eec7f67103c..8ccb639d572 100644 --- a/models/apis/batch/2016-08-10/docs-2.json +++ b/models/apis/batch/2016-08-10/docs-2.json @@ -2,24 +2,54 @@ "version": "2.0", "service": "

AWS Batch enables you to run batch computing workloads on the AWS Cloud. Batch computing is a common way for developers, scientists, and engineers to access large amounts of compute resources, and AWS Batch removes the undifferentiated heavy lifting of configuring and managing the required infrastructure. AWS Batch will be familiar to users of traditional batch computing software. This service can efficiently provision resources in response to jobs submitted in order to eliminate capacity constraints, reduce compute costs, and deliver results quickly.

As a fully managed service, AWS Batch enables developers, scientists, and engineers to run batch computing workloads of any scale. AWS Batch automatically provisions compute resources and optimizes the workload distribution based on the quantity and scale of the workloads. With AWS Batch, there is no need to install or manage batch computing software, which allows you to focus on analyzing results and solving problems. AWS Batch reduces operational complexities, saves time, and reduces costs, which makes it easy for developers, scientists, and engineers to run their batch jobs in the AWS Cloud.

", "operations": { - "CancelJob": "

Cancels jobs in an AWS Batch job queue. Jobs that are in the SUBMITTED, PENDING, or RUNNABLE state are cancelled. Jobs that have progressed to STARTING or RUNNING are not cancelled (but the API operation still succeeds, even if no jobs are cancelled); these jobs must be terminated with the TerminateJob operation.

", - "CreateComputeEnvironment": "

Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED compute environments.

In a managed compute environment, AWS Batch manages the compute resources within the environment, based on the compute resources that you specify. Instances launched into a managed compute environment use the latest Amazon ECS-optimized AMI. You can choose to use Amazon EC2 On-Demand instances in your managed compute environment, or you can use Amazon EC2 Spot instances that only launch when the Spot bid price is below a specified percentage of the On-Demand price.

In an unmanaged compute environment, you can manage your own compute resources. This provides more compute resource configuration options, such as using a custom AMI, but you must ensure that your AMI meets the Amazon ECS container instance AMI specification. For more information, see Container Instance AMIs in the Amazon EC2 Container Service Developer Guide. After you have created your unmanaged compute environment, you can use the DescribeComputeEnvironments operation to find the Amazon ECS cluster that is associated with it and then manually launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS Container Instance in the Amazon EC2 Container Service Developer Guide.

", + "CancelJob": "

Cancels a job in an AWS Batch job queue. Jobs that are in the SUBMITTED, PENDING, or RUNNABLE state are cancelled. Jobs that have progressed to STARTING or RUNNING are not cancelled (but the API operation still succeeds, even if no job is cancelled); these jobs must be terminated with the TerminateJob operation.

", + "CreateComputeEnvironment": "

Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED compute environments.

In a managed compute environment, AWS Batch manages the compute resources within the environment, based on the compute resources that you specify. Instances launched into a managed compute environment use a recent, approved version of the Amazon ECS-optimized AMI. You can choose to use Amazon EC2 On-Demand Instances in your managed compute environment, or you can use Amazon EC2 Spot Instances that only launch when the Spot bid price is below a specified percentage of the On-Demand price.

In an unmanaged compute environment, you can manage your own compute resources. This provides more compute resource configuration options, such as using a custom AMI, but you must ensure that your AMI meets the Amazon ECS container instance AMI specification. For more information, see Container Instance AMIs in the Amazon Elastic Container Service Developer Guide. After you have created your unmanaged compute environment, you can use the DescribeComputeEnvironments operation to find the Amazon ECS cluster that is associated with it and then manually launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS Container Instance in the Amazon Elastic Container Service Developer Guide.

", "CreateJobQueue": "

Creates an AWS Batch job queue. When you create a job queue, you associate one or more compute environments to the queue and assign an order of preference for the compute environments.

You also set a priority to the job queue that determines the order in which the AWS Batch scheduler places jobs onto its associated compute environments. For example, if a compute environment is associated with more than one job queue, the job queue with a higher priority is given preference for scheduling jobs to that compute environment.

", "DeleteComputeEnvironment": "

Deletes an AWS Batch compute environment.

Before you can delete a compute environment, you must set its state to DISABLED with the UpdateComputeEnvironment API operation and disassociate it from any job queues with the UpdateJobQueue API operation.

", - "DeleteJobQueue": "

Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation and terminate any jobs that have not completed with the TerminateJob.

It is not necessary to disassociate compute environments from a queue before submitting a DeleteJobQueue request.

", + "DeleteJobQueue": "

Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation. All jobs in the queue are terminated when you delete a job queue.

It is not necessary to disassociate compute environments from a queue before submitting a DeleteJobQueue request.

", "DeregisterJobDefinition": "

Deregisters an AWS Batch job definition.

", "DescribeComputeEnvironments": "

Describes one or more of your compute environments.

If you are using an unmanaged compute environment, you can use the DescribeComputeEnvironment operation to determine the ecsClusterArn that you should launch your Amazon ECS container instances into.

", "DescribeJobDefinitions": "

Describes a list of job definitions. You can specify a status (such as ACTIVE) to only return job definitions that match that status.

", "DescribeJobQueues": "

Describes one or more of your job queues.

", "DescribeJobs": "

Describes a list of AWS Batch jobs.

", - "ListJobs": "

Returns a list of task jobs for a specified job queue. You can filter the results by job status with the jobStatus parameter.

", + "ListJobs": "

Returns a list of task jobs for a specified job queue. You can filter the results by job status with the jobStatus parameter. If you do not specify a status, only RUNNING jobs are returned.

", "RegisterJobDefinition": "

Registers an AWS Batch job definition.

", "SubmitJob": "

Submits an AWS Batch job from a job definition. Parameters specified during SubmitJob override parameters defined in the job definition.

", - "TerminateJob": "

Terminates jobs in a job queue. Jobs that are in the STARTING or RUNNING state are terminated, which causes them to transition to FAILED. Jobs that have not progressed to the STARTING state are cancelled.

", + "TerminateJob": "

Terminates a job in a job queue. Jobs that are in the STARTING or RUNNING state are terminated, which causes them to transition to FAILED. Jobs that have not progressed to the STARTING state are cancelled.

", "UpdateComputeEnvironment": "

Updates an AWS Batch compute environment.

", "UpdateJobQueue": "

Updates a job queue.

" }, "shapes": { + "ArrayJobDependency": { + "base": null, + "refs": { + "JobDependency$type": "

The type of the job dependency.

" + } + }, + "ArrayJobStatusSummary": { + "base": null, + "refs": { + "ArrayPropertiesDetail$statusSummary": "

A summary of the number of array job children in each available job status. This parameter is returned for parent array jobs.

" + } + }, + "ArrayProperties": { + "base": "

An object representing an AWS Batch array job.

", + "refs": { + "SubmitJobRequest$arrayProperties": "

The array properties for the submitted job, such as the size of the array. The array size can be between 2 and 10,000. If you specify array properties for a job, it becomes an array job. For more information, see Array Jobs in the AWS Batch User Guide.

" + } + }, + "ArrayPropertiesDetail": { + "base": "

An object representing the array properties of a job.

", + "refs": { + "JobDetail$arrayProperties": "

The array properties of the job, if it is an array job.

" + } + }, + "ArrayPropertiesSummary": { + "base": "

An object representing the array properties of a job.

", + "refs": { + "JobSummary$arrayProperties": "

The array properties of the job, if it is an array job.

" + } + }, "AttemptContainerDetail": { "base": "

An object representing the details of a container that is part of a job attempt.

", "refs": { @@ -86,7 +116,7 @@ } }, "ClientException": { - "base": "

These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permission to use the action or resource, or specifying an identifier that is not valid.

", + "base": "

These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permissions to use the action or resource, or specifying an identifier that is not valid.

", "refs": { } }, @@ -111,7 +141,7 @@ "ComputeEnvironmentOrders": { "base": null, "refs": { - "CreateJobQueueRequest$computeEnvironmentOrder": "

The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment should execute a given job. Compute environments must be in the VALID state before you can associate them with a job queue. You can associate up to 3 compute environments with a job queue.

", + "CreateJobQueueRequest$computeEnvironmentOrder": "

The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment should execute a given job. Compute environments must be in the VALID state before you can associate them with a job queue. You can associate up to three compute environments with a job queue.

", "JobQueueDetail$computeEnvironmentOrder": "

The compute environments that are attached to the job queue and the order in which job placement is preferred. Compute environments are selected for job placement in ascending order.

", "UpdateJobQueueRequest$computeEnvironmentOrder": "

Details the set of compute environments mapped to a job queue and their order relative to each other. This is one of the parameters used by the job scheduler to determine which compute environment should execute a given job.

" } @@ -148,6 +178,12 @@ "RegisterJobDefinitionRequest$containerProperties": "

An object with various properties specific for container-based jobs. This parameter is required if the type parameter is container.

" } }, + "ContainerSummary": { + "base": "

An object representing summary details of a container within a job.

", + "refs": { + "JobSummary$container": "

An object representing the details of the container that is associated with the job.

" + } + }, "CreateComputeEnvironmentRequest": { "base": null, "refs": { @@ -241,20 +277,26 @@ "EnvironmentVariables": { "base": null, "refs": { - "ContainerDetail$environment": "

The environment variables to pass to a container.

", - "ContainerOverrides$environment": "

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the job definition.

", - "ContainerProperties$environment": "

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We do not recommend using plain text environment variables for sensitive information, such as credential data.

" + "ContainerDetail$environment": "

The environment variables to pass to a container.

Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the AWS Batch service.

", + "ContainerOverrides$environment": "

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the job definition.

Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the AWS Batch service.

", + "ContainerProperties$environment": "

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We do not recommend using plaintext environment variables for sensitive information, such as credential data.

Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the AWS Batch service.

" } }, "Host": { "base": "

The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running.

", "refs": { - "Volume$host": "

The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running.

" + "Volume$host": "

The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data is not guaranteed to persist after the containers associated with it stop running.

" } }, "Integer": { "base": null, "refs": { + "ArrayJobStatusSummary$value": null, + "ArrayProperties$size": "

The size of the array job.

", + "ArrayPropertiesDetail$size": "

The size of the array job. This parameter is returned for parent array jobs.

", + "ArrayPropertiesDetail$index": "

The job index within the array that is associated with this job. This parameter is returned for array job children.

", + "ArrayPropertiesSummary$size": "

The size of the array job. This parameter is returned for parent array jobs.

", + "ArrayPropertiesSummary$index": "

The job index within the array that is associated with this job. This parameter is returned for children of array jobs.

", "AttemptContainerDetail$exitCode": "

The exit code for the job attempt. A non-zero exit code is considered a failure.

", "ComputeEnvironmentOrder$order": "

The order of the compute environment.

", "ComputeResource$minvCpus": "

The minimum number of EC2 vCPUs that an environment should maintain.

", @@ -269,9 +311,10 @@ "ContainerDetail$exitCode": "

The exit code to return upon completion.

", "ContainerOverrides$vcpus": "

The number of vCPUs to reserve for the container. This value overrides the value set in the job definition.

", "ContainerOverrides$memory": "

The number of MiB of memory reserved for the job. This value overrides the value set in the job definition.

", - "ContainerProperties$vcpus": "

The number of vCPUs reserved for the container. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares.

", - "ContainerProperties$memory": "

The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

", - "CreateJobQueueRequest$priority": "

The priority of the job queue. Job queues with a higher priority (or a lower integer value for the priority parameter) are evaluated first when associated with same compute environment. Priority is determined in ascending order, for example, a job queue with a priority value of 1 is given scheduling preference over a job queue with a priority value of 10.

", + "ContainerProperties$vcpus": "

The number of vCPUs reserved for the container. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one vCPU.

", + "ContainerProperties$memory": "

The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job.

", + "ContainerSummary$exitCode": "

The exit code to return upon completion.

", + "CreateJobQueueRequest$priority": "

The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with same compute environment. Priority is determined in descending order, for example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1.

", "DescribeComputeEnvironmentsRequest$maxResults": "

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

", "DescribeJobDefinitionsRequest$maxResults": "

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

", "DescribeJobQueuesRequest$maxResults": "

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

", @@ -279,10 +322,10 @@ "JobQueueDetail$priority": "

The priority of the job queue.

", "ListJobsRequest$maxResults": "

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

", "RegisterJobDefinitionResponse$revision": "

The revision of the job definition.

", - "RetryStrategy$attempts": "

The number of times to move a job to the RUNNABLE status. You may specify between 1 and 10 attempts. If attempts is greater than one, the job is retried if it fails until it has moved to RUNNABLE that many times.

", + "RetryStrategy$attempts": "

The number of times to move a job to the RUNNABLE status. You may specify between 1 and 10 attempts. If the value of attempts is greater than one, the job is retried if it fails until it has moved to RUNNABLE that many times.

", "Ulimit$hardLimit": "

The hard limit for the ulimit type.

", "Ulimit$softLimit": "

The soft limit for the ulimit type.

", - "UpdateJobQueueRequest$priority": "

The priority of the job queue. Job queues with a higher priority (or a lower integer value for the priority parameter) are evaluated first when associated with same compute environment. Priority is determined in ascending order, for example, a job queue with a priority value of 1 is given scheduling preference over a job queue with a priority value of 10.

" + "UpdateJobQueueRequest$priority": "

The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with same compute environment. Priority is determined in descending order, for example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1.

" } }, "JQState": { @@ -327,7 +370,7 @@ "base": null, "refs": { "JobDetail$dependsOn": "

A list of job names or IDs on which this job depends.

", - "SubmitJobRequest$dependsOn": "

A list of job IDs on which this job depends. A job can depend upon a maximum of 100 jobs.

" + "SubmitJobRequest$dependsOn": "

A list of dependencies for the job. A job can depend upon a maximum of 20 jobs. You can specify a SEQUENTIAL type dependency without specifying a job ID for array jobs so that each child array job completes sequentially, starting at index 0. You can also specify an N_TO_N type dependency with a job ID for array jobs so that each index child of this job must wait for the corresponding index child of each dependency to complete before it can begin.

" } }, "JobDetail": { @@ -358,7 +401,8 @@ "base": null, "refs": { "JobDetail$status": "

The current status for the job.

", - "ListJobsRequest$jobStatus": "

The job status with which to filter jobs in the specified queue.

" + "JobSummary$status": "

The current status for the job.

", + "ListJobsRequest$jobStatus": "

The job status with which to filter jobs in the specified queue. If you do not specify a status, only RUNNING jobs are returned.

" } }, "JobSummary": { @@ -392,11 +436,14 @@ "Long": { "base": null, "refs": { - "AttemptDetail$startedAt": "

The Unix timestamp for when the attempt was started (when the task transitioned from the PENDING state to the RUNNING state).

", - "AttemptDetail$stoppedAt": "

The Unix timestamp for when the attempt was stopped (when the task transitioned from the RUNNING state to the STOPPED state).

", - "JobDetail$createdAt": "

The Unix timestamp for when the job was created (when the task entered the PENDING state).

", - "JobDetail$startedAt": "

The Unix timestamp for when the job was started (when the task transitioned from the PENDING state to the RUNNING state).

", - "JobDetail$stoppedAt": "

The Unix timestamp for when the job was stopped (when the task transitioned from the RUNNING state to the STOPPED state).

" + "AttemptDetail$startedAt": "

The Unix time stamp for when the attempt was started (when the attempt transitioned from the STARTING state to the RUNNING state).

", + "AttemptDetail$stoppedAt": "

The Unix time stamp for when the attempt was stopped (when the attempt transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED).

", + "JobDetail$createdAt": "

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

", + "JobDetail$startedAt": "

The Unix time stamp for when the job was started (when the job transitioned from the STARTING state to the RUNNING state).

", + "JobDetail$stoppedAt": "

The Unix time stamp for when the job was stopped (when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED).

", + "JobSummary$createdAt": "

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

", + "JobSummary$startedAt": "

The Unix time stamp for when the job was started (when the job transitioned from the STARTING state to the RUNNING state).

", + "JobSummary$stoppedAt": "

The Unix time stamp for when the job was stopped (when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED).

" } }, "MountPoint": { @@ -448,12 +495,14 @@ "String": { "base": null, "refs": { + "ArrayJobStatusSummary$key": null, "AttemptContainerDetail$containerInstanceArn": "

The Amazon Resource Name (ARN) of the Amazon ECS container instance that hosts the job attempt.

", - "AttemptContainerDetail$taskArn": "

The Amazon Resource Name (ARN) of the Amazon ECS task that is associated with the job attempt.

", + "AttemptContainerDetail$taskArn": "

The Amazon Resource Name (ARN) of the Amazon ECS task that is associated with the job attempt. Each container attempt receives a task ARN when they reach the STARTING status.

", "AttemptContainerDetail$reason": "

A short (255 max characters) human-readable string to provide additional details about a running or stopped container.

", + "AttemptContainerDetail$logStreamName": "

The name of the CloudWatch Logs log stream associated with the container. The log group for AWS Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach the RUNNING status.

", "AttemptDetail$statusReason": "

A short, human-readable string to provide additional details about the current status of the job attempt.

", - "CancelJobRequest$jobId": "

A list of up to 100 job IDs to cancel.

", - "CancelJobRequest$reason": "

A message to attach to the job that explains the reason for cancelling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs.

", + "CancelJobRequest$jobId": "

The AWS Batch job ID of the job to cancel.

", + "CancelJobRequest$reason": "

A message to attach to the job that explains the reason for canceling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs.

", "ClientException$message": null, "ComputeEnvironmentDetail$computeEnvironmentName": "

The name of the compute environment.

", "ComputeEnvironmentDetail$computeEnvironmentArn": "

The Amazon Resource Name (ARN) of the compute environment.

", @@ -463,19 +512,21 @@ "ComputeEnvironmentOrder$computeEnvironment": "

The Amazon Resource Name (ARN) of the compute environment.

", "ComputeResource$imageId": "

The Amazon Machine Image (AMI) ID used for instances launched in the compute environment.

", "ComputeResource$ec2KeyPair": "

The EC2 key pair that is used for instances launched in the compute environment.

", - "ComputeResource$instanceRole": "

The Amazon ECS instance role applied to Amazon EC2 instances in a compute environment.

", + "ComputeResource$instanceRole": "

The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole. For more information, see Amazon ECS Instance Role in the AWS Batch User Guide.

", "ComputeResource$spotIamFleetRole": "

The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment.

", "ContainerDetail$image": "

The image used to start the container.

", "ContainerDetail$jobRoleArn": "

The Amazon Resource Name (ARN) associated with the job upon execution.

", "ContainerDetail$user": "

The user name to use inside the container.

", "ContainerDetail$reason": "

A short (255 max characters) human-readable string to provide additional details about a running or stopped container.

", "ContainerDetail$containerInstanceArn": "

The Amazon Resource Name (ARN) of the container instance on which the container is running.

", - "ContainerDetail$taskArn": "

The Amazon Resource Name (ARN) of the Amazon ECS task that is associated with the container job.

", + "ContainerDetail$taskArn": "

The Amazon Resource Name (ARN) of the Amazon ECS task that is associated with the container job. Each container attempt receives a task ARN when they reach the STARTING status.

", + "ContainerDetail$logStreamName": "

The name of the CloudWatch Logs log stream associated with the container. The log group for AWS Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach the RUNNING status.

", "ContainerProperties$image": "

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

", "ContainerProperties$jobRoleArn": "

The Amazon Resource Name (ARN) of the IAM role that the container can assume for AWS permissions.

", "ContainerProperties$user": "

The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run.

", - "CreateComputeEnvironmentRequest$computeEnvironmentName": "

The name for your compute environment. Up to 128 letters (uppercase and lowercase), numbers, and underscores are allowed.

", - "CreateComputeEnvironmentRequest$serviceRole": "

The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf.

", + "ContainerSummary$reason": "

A short (255 max characters) human-readable string to provide additional details about a running or stopped container.

", + "CreateComputeEnvironmentRequest$computeEnvironmentName": "

The name for your compute environment. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

", + "CreateComputeEnvironmentRequest$serviceRole": "

The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf.

If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path.

Depending on how you created your AWS Batch service role, its ARN may contain the service-role path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments.

", "CreateComputeEnvironmentResponse$computeEnvironmentName": "

The name of the compute environment.

", "CreateComputeEnvironmentResponse$computeEnvironmentArn": "

The Amazon Resource Name (ARN) of the compute environment.

", "CreateJobQueueRequest$jobQueueName": "

The name of the job queue.

", @@ -508,32 +559,34 @@ "JobQueueDetail$statusReason": "

A short, human-readable string to provide additional details about the current status of the job queue.

", "JobSummary$jobId": "

The ID of the job.

", "JobSummary$jobName": "

The name of the job.

", - "KeyValuePair$name": "

The name of the key value pair. For environment variables, this is the name of the environment variable.

", - "KeyValuePair$value": "

The value of the key value pair. For environment variables, this is the value of the environment variable.

", + "JobSummary$statusReason": "

A short, human-readable string to provide additional details about the current status of the job.

", + "KeyValuePair$name": "

The name of the key-value pair. For environment variables, this is the name of the environment variable.

", + "KeyValuePair$value": "

The value of the key-value pair. For environment variables, this is the value of the environment variable.

", "ListJobsRequest$jobQueue": "

The name or full Amazon Resource Name (ARN) of the job queue with which to list jobs.

", + "ListJobsRequest$arrayJobId": "

The job ID for an array job. Specifying an array job ID with this parameter lists all child jobs from within the specified array.

", "ListJobsRequest$nextToken": "

The nextToken value returned from a previous paginated ListJobs request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListJobsResponse$nextToken": "

The nextToken value to include in a future ListJobs request. When the results of a ListJobs request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "MountPoint$containerPath": "

The path on the container at which to mount the host volume.

", "MountPoint$sourceVolume": "

The name of the volume to mount.

", "ParametersMap$key": null, "ParametersMap$value": null, - "RegisterJobDefinitionRequest$jobDefinitionName": "

The name of the job definition to register.

", - "RegisterJobDefinitionResponse$jobDefinitionName": "

The name of the job definition.

", + "RegisterJobDefinitionRequest$jobDefinitionName": "

The name of the job definition to register. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

", + "RegisterJobDefinitionResponse$jobDefinitionName": "

The name of the job definition.

", "RegisterJobDefinitionResponse$jobDefinitionArn": "

The Amazon Resource Name (ARN) of the job definition.

", "ServerException$message": null, "StringList$member": null, - "SubmitJobRequest$jobName": "

The name of the job. A name must be 1 to 128 characters in length.

Pattern: ^[a-zA-Z0-9_]+$

", - "SubmitJobRequest$jobQueue": "

The job queue into which the job will be submitted. You can specify either the name or the Amazon Resource Name (ARN) of the queue.

", + "SubmitJobRequest$jobName": "

The name of the job. The first character must be alphanumeric, and up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

", + "SubmitJobRequest$jobQueue": "

The job queue into which the job is submitted. You can specify either the name or the Amazon Resource Name (ARN) of the queue.

", "SubmitJobRequest$jobDefinition": "

The job definition used by this job. This value can be either a name:revision or the Amazon Resource Name (ARN) for the job definition.

", "SubmitJobResponse$jobName": "

The name of the job.

", "SubmitJobResponse$jobId": "

The unique identifier for the job.

", "TagsMap$key": null, "TagsMap$value": null, - "TerminateJobRequest$jobId": "

Job IDs to be terminated. Up to 100 jobs can be specified.

", - "TerminateJobRequest$reason": "

A message to attach to the job that explains the reason for cancelling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs.

", + "TerminateJobRequest$jobId": "

The AWS Batch job ID of the job to terminate.

", + "TerminateJobRequest$reason": "

A message to attach to the job that explains the reason for canceling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs.

", "Ulimit$name": "

The type of the ulimit.

", "UpdateComputeEnvironmentRequest$computeEnvironment": "

The name or full Amazon Resource Name (ARN) of the compute environment to update.

", - "UpdateComputeEnvironmentRequest$serviceRole": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to ECS, Auto Scaling, and EC2 on your behalf.

", + "UpdateComputeEnvironmentRequest$serviceRole": "

The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf.

If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path.

Depending on how you created your AWS Batch service role, its ARN may contain the service-role path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments.

", "UpdateComputeEnvironmentResponse$computeEnvironmentName": "

The name of compute environment.

", "UpdateComputeEnvironmentResponse$computeEnvironmentArn": "

The Amazon Resource Name (ARN) of the compute environment.

", "UpdateJobQueueRequest$jobQueue": "

The name or the Amazon Resource Name (ARN) of the job queue.

", @@ -545,7 +598,7 @@ "StringList": { "base": null, "refs": { - "ComputeResource$instanceTypes": "

The instances types that may launched.

", + "ComputeResource$instanceTypes": "

The instances types that may be launched. You can specify instance families to launch any instance type within those families (for example, c4 or p3), or you can specify specific sizes within a family (such as c4.8xlarge). You can also choose optimal to pick instance types (from the latest C, M, and R instance families) on the fly that match the demand of your job queues.

", "ComputeResource$subnets": "

The VPC subnets into which the compute resources are launched.

", "ComputeResource$securityGroupIds": "

The EC2 security group that is associated with instances launched in the compute environment.

", "ContainerDetail$command": "

The command that is passed to the container.

", diff --git a/models/apis/batch/2016-08-10/examples-1.json b/models/apis/batch/2016-08-10/examples-1.json index ddaaf42d13d..68001e3c6bb 100644 --- a/models/apis/batch/2016-08-10/examples-1.json +++ b/models/apis/batch/2016-08-10/examples-1.json @@ -124,7 +124,7 @@ } ], "jobQueueName": "LowPriority", - "priority": 10, + "priority": 1, "state": "ENABLED" }, "output": { @@ -154,7 +154,7 @@ } ], "jobQueueName": "HighPriority", - "priority": 1, + "priority": 10, "state": "ENABLED" }, "output": { diff --git a/models/apis/budgets/2016-10-20/api-2.json b/models/apis/budgets/2016-10-20/api-2.json index 72ac95c643a..12a939c115f 100755 --- a/models/apis/budgets/2016-10-20/api-2.json +++ b/models/apis/budgets/2016-10-20/api-2.json @@ -188,7 +188,8 @@ "errors":[ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, - {"shape":"NotFoundException"} + {"shape":"NotFoundException"}, + {"shape":"DuplicateRecordException"} ] }, "UpdateSubscriber":{ @@ -202,7 +203,8 @@ "errors":[ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, - {"shape":"NotFoundException"} + {"shape":"NotFoundException"}, + {"shape":"DuplicateRecordException"} ] } }, @@ -236,13 +238,14 @@ "BudgetName":{ "type":"string", "max":100, - "pattern":"[^:]+" + "pattern":"[^:\\\\]+" }, "BudgetType":{ "type":"string", "enum":[ "USAGE", - "COST" + "COST", + "RI_UTILIZATION" ] }, "Budgets":{ @@ -541,12 +544,13 @@ "members":{ "NotificationType":{"shape":"NotificationType"}, "ComparisonOperator":{"shape":"ComparisonOperator"}, - "Threshold":{"shape":"NotificationThreshold"} + "Threshold":{"shape":"NotificationThreshold"}, + "ThresholdType":{"shape":"ThresholdType"} } }, "NotificationThreshold":{ "type":"double", - "max":300, + "max":1000000000, "min":0.1 }, "NotificationType":{ @@ -588,7 +592,7 @@ ], "members":{ "Amount":{"shape":"NumericValue"}, - "Unit":{"shape":"GenericString"} + "Unit":{"shape":"UnitValue"} } }, "Subscriber":{ @@ -615,6 +619,13 @@ "EMAIL" ] }, + "ThresholdType":{ + "type":"string", + "enum":[ + "PERCENTAGE", + "ABSOLUTE_VALUE" + ] + }, "TimePeriod":{ "type":"structure", "required":[ @@ -629,11 +640,16 @@ "TimeUnit":{ "type":"string", "enum":[ + "DAILY", "MONTHLY", "QUARTERLY", "ANNUALLY" ] }, + "UnitValue":{ + "type":"string", + "min":1 + }, "UpdateBudgetRequest":{ "type":"structure", "required":[ diff --git a/models/apis/budgets/2016-10-20/docs-2.json b/models/apis/budgets/2016-10-20/docs-2.json index 4babb56f939..04955ae2983 100755 --- a/models/apis/budgets/2016-10-20/docs-2.json +++ b/models/apis/budgets/2016-10-20/docs-2.json @@ -45,7 +45,7 @@ } }, "BudgetName": { - "base": "A string represents the budget name. No \":\" character is allowed.", + "base": "A string represents the budget name. No \":\" and \"\\\" character is allowed.", "refs": { "Budget$BudgetName": null, "CreateNotificationRequest$BudgetName": null, @@ -61,7 +61,7 @@ } }, "BudgetType": { - "base": "The type of a budget. Can be COST or USAGE.", + "base": "The type of a budget. It should be COST, USAGE, or RI_UTILIZATION.", "refs": { "Budget$BudgetType": null } @@ -73,7 +73,7 @@ } }, "CalculatedSpend": { - "base": "A structure holds the actual and forecasted spend for a budget.", + "base": "A structure that holds the actual and forecasted spend for a budget.", "refs": { "Budget$CalculatedSpend": null } @@ -85,7 +85,7 @@ } }, "CostFilters": { - "base": "A map represents the cost filters applied to the budget.", + "base": "A map that represents the cost filters applied to the budget.", "refs": { "Budget$CostFilters": null } @@ -236,7 +236,6 @@ "DescribeSubscribersForNotificationRequest$NextToken": null, "DescribeSubscribersForNotificationResponse$NextToken": null, "DimensionValues$member": null, - "Spend$Unit": null, "Subscriber$Address": null } }, @@ -263,7 +262,7 @@ } }, "MaxResults": { - "base": "An integer to represent how many entries should a pagianted response contains. Maxium is set to 100.", + "base": "An integer to represent how many entries a paginated response contains. Maximum is set to 100.", "refs": { "DescribeBudgetsRequest$MaxResults": null, "DescribeNotificationsForBudgetRequest$MaxResults": null, @@ -291,7 +290,7 @@ } }, "NotificationThreshold": { - "base": "The threshold of the a notification. It should be a number between 0 and 100.", + "base": "The threshold of a notification. It should be a number between 0 and 1,000,000,000.", "refs": { "Notification$Threshold": null } @@ -327,7 +326,7 @@ } }, "Spend": { - "base": "A structure represent either a cost spend or usage spend. Contains an amount and a unit.", + "base": "A structure that represents either a cost spend or usage spend. Contains an amount and a unit.", "refs": { "Budget$BudgetLimit": null, "CalculatedSpend$ActualSpend": null, @@ -358,18 +357,30 @@ "Subscriber$SubscriptionType": null } }, + "ThresholdType": { + "base": "The type of threshold for a notification. It can be PERCENTAGE or ABSOLUTE_VALUE.", + "refs": { + "Notification$ThresholdType": null + } + }, "TimePeriod": { - "base": "A time period indicated the start date and end date of a budget.", + "base": "A time period indicating the start date and end date of a budget.", "refs": { "Budget$TimePeriod": null } }, "TimeUnit": { - "base": "The time unit of the budget. e.g. weekly, monthly, etc.", + "base": "The time unit of the budget. e.g. MONTHLY, QUARTERLY, etc.", "refs": { "Budget$TimeUnit": null } }, + "UnitValue": { + "base": "A string to represent budget spend unit. It should be not null and not empty.", + "refs": { + "Spend$Unit": null + } + }, "UpdateBudgetRequest": { "base": "Request of UpdateBudget", "refs": { diff --git a/models/apis/ce/2017-10-25/api-2.json b/models/apis/ce/2017-10-25/api-2.json new file mode 100644 index 00000000000..de6b4c5a476 --- /dev/null +++ b/models/apis/ce/2017-10-25/api-2.json @@ -0,0 +1,384 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-10-25", + "endpointPrefix":"ce", + "jsonVersion":"1.1", + "protocol":"json", + "serviceAbbreviation":"AWS Cost Explorer", + "serviceFullName":"AWS Cost Explorer Service", + "serviceId":"Cost Explorer", + "signatureVersion":"v4", + "signingName":"ce", + "targetPrefix":"AWSInsightsIndexService", + "uid":"ce-2017-10-25" + }, + "operations":{ + "GetCostAndUsage":{ + "name":"GetCostAndUsage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCostAndUsageRequest"}, + "output":{"shape":"GetCostAndUsageResponse"}, + "errors":[ + {"shape":"LimitExceededException"} + ] + }, + "GetDimensionValues":{ + "name":"GetDimensionValues", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDimensionValuesRequest"}, + "output":{"shape":"GetDimensionValuesResponse"}, + "errors":[ + {"shape":"LimitExceededException"} + ] + }, + "GetReservationUtilization":{ + "name":"GetReservationUtilization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetReservationUtilizationRequest"}, + "output":{"shape":"GetReservationUtilizationResponse"}, + "errors":[ + {"shape":"LimitExceededException"} + ] + }, + "GetTags":{ + "name":"GetTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTagsRequest"}, + "output":{"shape":"GetTagsResponse"}, + "errors":[ + {"shape":"LimitExceededException"} + ] + } + }, + "shapes":{ + "AttributeType":{"type":"string"}, + "AttributeValue":{"type":"string"}, + "Attributes":{ + "type":"map", + "key":{"shape":"AttributeType"}, + "value":{"shape":"AttributeValue"} + }, + "Context":{ + "type":"string", + "enum":[ + "COST_AND_USAGE", + "RESERVATIONS" + ] + }, + "DateInterval":{ + "type":"structure", + "required":[ + "Start", + "End" + ], + "members":{ + "Start":{"shape":"YearMonthDay"}, + "End":{"shape":"YearMonthDay"} + } + }, + "Dimension":{ + "type":"string", + "enum":[ + "AZ", + "INSTANCE_TYPE", + "LINKED_ACCOUNT", + "OPERATION", + "PURCHASE_TYPE", + "REGION", + "SERVICE", + "USAGE_TYPE", + "USAGE_TYPE_GROUP", + "RECORD_TYPE", + "OPERATING_SYSTEM", + "TENANCY", + "SCOPE", + "PLATFORM", + "SUBSCRIPTION_ID" + ] + }, + "DimensionValues":{ + "type":"structure", + "members":{ + "Key":{"shape":"Dimension"}, + "Values":{"shape":"Values"} + } + }, + "DimensionValuesWithAttributes":{ + "type":"structure", + "members":{ + "Value":{"shape":"Value"}, + "Attributes":{"shape":"Attributes"} + } + }, + "DimensionValuesWithAttributesList":{ + "type":"list", + "member":{"shape":"DimensionValuesWithAttributes"} + }, + "Entity":{"type":"string"}, + "ErrorMessage":{"type":"string"}, + "Estimated":{"type":"boolean"}, + "Expression":{ + "type":"structure", + "members":{ + "Or":{"shape":"Expressions"}, + "And":{"shape":"Expressions"}, + "Not":{"shape":"Expression"}, + "Dimensions":{"shape":"DimensionValues"}, + "Tags":{"shape":"TagValues"} + } + }, + "Expressions":{ + "type":"list", + "member":{"shape":"Expression"} + }, + "GetCostAndUsageRequest":{ + "type":"structure", + "members":{ + "TimePeriod":{"shape":"DateInterval"}, + "Granularity":{"shape":"Granularity"}, + "Filter":{"shape":"Expression"}, + "Metrics":{"shape":"MetricNames"}, + "GroupBy":{"shape":"GroupDefinitions"}, + "NextPageToken":{"shape":"NextPageToken"} + } + }, + "GetCostAndUsageResponse":{ + "type":"structure", + "members":{ + "NextPageToken":{"shape":"NextPageToken"}, + "GroupDefinitions":{"shape":"GroupDefinitions"}, + "ResultsByTime":{"shape":"ResultsByTime"} + } + }, + "GetDimensionValuesRequest":{ + "type":"structure", + "required":[ + "TimePeriod", + "Dimension" + ], + "members":{ + "SearchString":{"shape":"SearchString"}, + "TimePeriod":{"shape":"DateInterval"}, + "Dimension":{"shape":"Dimension"}, + "Context":{"shape":"Context"}, + "NextPageToken":{"shape":"NextPageToken"} + } + }, + "GetDimensionValuesResponse":{ + "type":"structure", + "required":[ + "DimensionValues", + "ReturnSize", + "TotalSize" + ], + "members":{ + "DimensionValues":{"shape":"DimensionValuesWithAttributesList"}, + "ReturnSize":{"shape":"PageSize"}, + "TotalSize":{"shape":"PageSize"}, + "NextPageToken":{"shape":"NextPageToken"} + } + }, + "GetReservationUtilizationRequest":{ + "type":"structure", + "required":["TimePeriod"], + "members":{ + "TimePeriod":{"shape":"DateInterval"}, + "GroupBy":{"shape":"GroupDefinitions"}, + "Granularity":{"shape":"Granularity"}, + "Filter":{"shape":"Expression"}, + "NextPageToken":{"shape":"NextPageToken"} + } + }, + "GetReservationUtilizationResponse":{ + "type":"structure", + "required":["UtilizationsByTime"], + "members":{ + "UtilizationsByTime":{"shape":"UtilizationsByTime"}, + "Total":{"shape":"ReservationAggregates"}, + "NextPageToken":{"shape":"NextPageToken"} + } + }, + "GetTagsRequest":{ + "type":"structure", + "required":["TimePeriod"], + "members":{ + "SearchString":{"shape":"SearchString"}, + "TimePeriod":{"shape":"DateInterval"}, + "TagKey":{"shape":"TagKey"}, + "NextPageToken":{"shape":"NextPageToken"} + } + }, + "GetTagsResponse":{ + "type":"structure", + "required":[ + "Tags", + "ReturnSize", + "TotalSize" + ], + "members":{ + "NextPageToken":{"shape":"NextPageToken"}, + "Tags":{"shape":"TagList"}, + "ReturnSize":{"shape":"PageSize"}, + "TotalSize":{"shape":"PageSize"} + } + }, + "Granularity":{ + "type":"string", + "enum":[ + "DAILY", + "MONTHLY" + ] + }, + "Group":{ + "type":"structure", + "members":{ + "Keys":{"shape":"Keys"}, + "Metrics":{"shape":"Metrics"} + } + }, + "GroupDefinition":{ + "type":"structure", + "members":{ + "Type":{"shape":"GroupDefinitionType"}, + "Key":{"shape":"GroupDefinitionKey"} + } + }, + "GroupDefinitionKey":{"type":"string"}, + "GroupDefinitionType":{ + "type":"string", + "enum":[ + "DIMENSION", + "TAG" + ] + }, + "GroupDefinitions":{ + "type":"list", + "member":{"shape":"GroupDefinition"} + }, + "Groups":{ + "type":"list", + "member":{"shape":"Group"} + }, + "Key":{"type":"string"}, + "Keys":{ + "type":"list", + "member":{"shape":"Key"} + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "MetricAmount":{"type":"string"}, + "MetricName":{"type":"string"}, + "MetricNames":{ + "type":"list", + "member":{"shape":"MetricName"} + }, + "MetricUnit":{"type":"string"}, + "MetricValue":{ + "type":"structure", + "members":{ + "Amount":{"shape":"MetricAmount"}, + "Unit":{"shape":"MetricUnit"} + } + }, + "Metrics":{ + "type":"map", + "key":{"shape":"MetricName"}, + "value":{"shape":"MetricValue"} + }, + "NextPageToken":{"type":"string"}, + "PageSize":{"type":"integer"}, + "PurchasedHours":{"type":"string"}, + "ReservationAggregates":{ + "type":"structure", + "members":{ + "UtilizationPercentage":{"shape":"UtilizationPercentage"}, + "PurchasedHours":{"shape":"PurchasedHours"}, + "TotalActualHours":{"shape":"TotalActualHours"}, + "UnusedHours":{"shape":"UnusedHours"} + } + }, + "ReservationGroupKey":{"type":"string"}, + "ReservationGroupValue":{"type":"string"}, + "ReservationUtilizationGroup":{ + "type":"structure", + "members":{ + "Key":{"shape":"ReservationGroupKey"}, + "Value":{"shape":"ReservationGroupValue"}, + "Attributes":{"shape":"Attributes"}, + "Utilization":{"shape":"ReservationAggregates"} + } + }, + "ReservationUtilizationGroups":{ + "type":"list", + "member":{"shape":"ReservationUtilizationGroup"} + }, + "ResultByTime":{ + "type":"structure", + "members":{ + "TimePeriod":{"shape":"DateInterval"}, + "Total":{"shape":"Metrics"}, + "Groups":{"shape":"Groups"}, + "Estimated":{"shape":"Estimated"} + } + }, + "ResultsByTime":{ + "type":"list", + "member":{"shape":"ResultByTime"} + }, + "SearchString":{"type":"string"}, + "TagKey":{"type":"string"}, + "TagList":{ + "type":"list", + "member":{"shape":"Entity"} + }, + "TagValues":{ + "type":"structure", + "members":{ + "Key":{"shape":"TagKey"}, + "Values":{"shape":"Values"} + } + }, + "TotalActualHours":{"type":"string"}, + "UnusedHours":{"type":"string"}, + "UtilizationByTime":{ + "type":"structure", + "members":{ + "TimePeriod":{"shape":"DateInterval"}, + "Groups":{"shape":"ReservationUtilizationGroups"}, + "Total":{"shape":"ReservationAggregates"} + } + }, + "UtilizationPercentage":{"type":"string"}, + "UtilizationsByTime":{ + "type":"list", + "member":{"shape":"UtilizationByTime"} + }, + "Value":{"type":"string"}, + "Values":{ + "type":"list", + "member":{"shape":"Value"} + }, + "YearMonthDay":{ + "type":"string", + "pattern":"\\d{4}-\\d{2}-\\d{2}" + } + } +} diff --git a/models/apis/ce/2017-10-25/docs-2.json b/models/apis/ce/2017-10-25/docs-2.json new file mode 100644 index 00000000000..e556405d126 --- /dev/null +++ b/models/apis/ce/2017-10-25/docs-2.json @@ -0,0 +1,396 @@ +{ + "version": "2.0", + "service": "

The Cost Explorer API allows you to programmatically query your cost and usage data. You can query for aggregated data such as total monthly costs or total daily usage. You can also query for granular data, such as the number of daily write operations for DynamoDB database tables in your production environment.

Service Endpoint

The Cost Explorer API provides the following endpoint:

", + "operations": { + "GetCostAndUsage": "

Retrieve cost and usage metrics for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as AWS Service or AvailabilityZone, in a specific time range. See the GetDimensionValues action for a complete list of the valid dimensions. Master accounts in an organization have access to all member accounts.

", + "GetDimensionValues": "

You can use GetDimensionValues to retrieve all available filter values for a specific filter over a period of time. You can search the dimension values for an arbitrary string.

", + "GetReservationUtilization": "

You can retrieve the Reservation utilization for your account. Master accounts in an organization have access to their associated member accounts. You can filter data by dimensions in a time period. You can use GetDimensionValues to determine the possible dimension values. Currently, you can group only by SUBSCRIPTION_ID.

", + "GetTags": "

You can query for available tag keys and tag values for a specified period. You can search the tag values for an arbitrary string.

" + }, + "shapes": { + "AttributeType": { + "base": null, + "refs": { + "Attributes$key": null + } + }, + "AttributeValue": { + "base": null, + "refs": { + "Attributes$value": null + } + }, + "Attributes": { + "base": null, + "refs": { + "DimensionValuesWithAttributes$Attributes": "

The attribute that applies to a specific Dimension.

", + "ReservationUtilizationGroup$Attributes": "

The attributes for this group of RIs.

" + } + }, + "Context": { + "base": null, + "refs": { + "GetDimensionValuesRequest$Context": "

The context for the call to GetDimensionValues. This can be RESERVED_INSTANCE or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is set to RESERVED_INSTANCE, the resulting dimension values can be used in the GetReservationUtilization action. If the context is set to COST_AND_USAGE, , the resulting dimension values can be used in the GetCostAndUsage operation.

If you set the context to CostAndUsage, you can use the following dimensions for searching:

If you set the context to ReservedInstance, you can use the following dimensions for searching:

" + } + }, + "DateInterval": { + "base": "

The time period that you want the usage and costs for.

", + "refs": { + "GetCostAndUsageRequest$TimePeriod": "

Sets the start and end dates for retrieving AWS costs. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", + "GetDimensionValuesRequest$TimePeriod": "

The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", + "GetReservationUtilizationRequest$TimePeriod": "

Sets the start and end dates for retrieving reserve instance (RI) utilization. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", + "GetTagsRequest$TimePeriod": "

The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", + "ResultByTime$TimePeriod": "

The time period covered by a result.

", + "UtilizationByTime$TimePeriod": "

The period of time over which this utilization was used.

" + } + }, + "Dimension": { + "base": null, + "refs": { + "DimensionValues$Key": "

The names of the metadata types that you can use to filter and group your results. For example, AZ returns a list of Availability Zones.

", + "GetDimensionValuesRequest$Dimension": "

The name of the dimension. Different Dimensionsare available for different Contexts. For more information, see Context.

" + } + }, + "DimensionValues": { + "base": "

The metadata that you can use to filter and group your results. You can use GetDimensionValues to find specific values.

", + "refs": { + "Expression$Dimensions": "

The specific Dimension to use for Expression.

" + } + }, + "DimensionValuesWithAttributes": { + "base": "

The metadata of a specific type that you can use to filter and group your results. You can use GetDimensionValues to find specific values.

", + "refs": { + "DimensionValuesWithAttributesList$member": null + } + }, + "DimensionValuesWithAttributesList": { + "base": null, + "refs": { + "GetDimensionValuesResponse$DimensionValues": "

The filters that you used to filter your request. Some dimensions are available only for a specific context:

If you set the context to CostAndUsage, you can use the following dimensions for searching:

If you set the context to ReservedInstance, you can use the following dimensions for searching:

" + } + }, + "Entity": { + "base": null, + "refs": { + "TagList$member": null + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "LimitExceededException$Message": null + } + }, + "Estimated": { + "base": null, + "refs": { + "ResultByTime$Estimated": "

Whether or not this result is estimated.

" + } + }, + "Expression": { + "base": "

Use Expression to filter by cost or by usage. There are two patterns:

", + "refs": { + "Expression$Not": "

Return results that don't match Dimension.

", + "Expressions$member": null, + "GetCostAndUsageRequest$Filter": "

Filters AWS costs by different dimensions. For example, you can specify Service and Linked Account and get the costs associated with that account's usage of that service. You can nest Expression objects to define any combination of dimension filters. For more information, see the Expression object or More Examples.

", + "GetReservationUtilizationRequest$Filter": "

Filters utilization data by using different dimensions. GetReservationUtilization uses the same Expression object as the other operations, but only AND is supported among each dimension, and nesting is supported up to only one level deep. If there are multiple values for a dimension, they are OR'd together.

" + } + }, + "Expressions": { + "base": null, + "refs": { + "Expression$Or": "

Return results that match either Dimension.

", + "Expression$And": "

Return results that match both Dimension objects.

" + } + }, + "GetCostAndUsageRequest": { + "base": null, + "refs": { + } + }, + "GetCostAndUsageResponse": { + "base": null, + "refs": { + } + }, + "GetDimensionValuesRequest": { + "base": null, + "refs": { + } + }, + "GetDimensionValuesResponse": { + "base": null, + "refs": { + } + }, + "GetReservationUtilizationRequest": { + "base": null, + "refs": { + } + }, + "GetReservationUtilizationResponse": { + "base": null, + "refs": { + } + }, + "GetTagsRequest": { + "base": null, + "refs": { + } + }, + "GetTagsResponse": { + "base": null, + "refs": { + } + }, + "Granularity": { + "base": null, + "refs": { + "GetCostAndUsageRequest$Granularity": "

Sets the AWS cost granularity to MONTHLY or DAILY.

", + "GetReservationUtilizationRequest$Granularity": "

Sets the AWS cost granularity to MONTHLY or DAILY. If both GroupBy and granularity are not set, GetReservationUtilization defaults to DAILY. If GroupBy is set, Granularity can't be set, and the response object doesn't include MONTHLY or DAILY granularity.

" + } + }, + "Group": { + "base": "

One level of grouped data within the results.

", + "refs": { + "Groups$member": null + } + }, + "GroupDefinition": { + "base": "

Represents a group when you specify a group by criteria, or in the response to a query with a specific grouping.

", + "refs": { + "GroupDefinitions$member": null + } + }, + "GroupDefinitionKey": { + "base": null, + "refs": { + "GroupDefinition$Key": "

The string that represents a key for a specified group.

" + } + }, + "GroupDefinitionType": { + "base": null, + "refs": { + "GroupDefinition$Type": "

The string that represents the type of group.

" + } + }, + "GroupDefinitions": { + "base": null, + "refs": { + "GetCostAndUsageRequest$GroupBy": "

You can group AWS costs using up to two different groups, either dimensions, tag keys, or both.

When you group by tag key, you get all tag values, including empty strings.

Valid values are: AZ, INSTANCE_TYPE, LINKED_ACCCOUNT, OPERATION, PURCHASE_TYPE, SERVICE, USAGE_TYPE, TAGS, and PLATFORM.

", + "GetCostAndUsageResponse$GroupDefinitions": "

The groups specified by the the Filter or GroupBy parameters in the request.

", + "GetReservationUtilizationRequest$GroupBy": "

Groups only by SubscriptionId. Metadata is included.

" + } + }, + "Groups": { + "base": null, + "refs": { + "ResultByTime$Groups": "

The groups that are included in this time period.

" + } + }, + "Key": { + "base": null, + "refs": { + "Keys$member": null + } + }, + "Keys": { + "base": null, + "refs": { + "Group$Keys": "

The keys included in this group.

" + } + }, + "LimitExceededException": { + "base": "

You made too many calls in a short period of time. Try again later.

", + "refs": { + } + }, + "MetricAmount": { + "base": null, + "refs": { + "MetricValue$Amount": "

The actual number that represents the metric.

" + } + }, + "MetricName": { + "base": null, + "refs": { + "MetricNames$member": null, + "Metrics$key": null + } + }, + "MetricNames": { + "base": null, + "refs": { + "GetCostAndUsageRequest$Metrics": "

Which metrics are returned in the query. For more information about blended and unblended rates, see https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/.

Valid values are BlendedCost, UnblendedCost, and UsageQuantity.

If you return the UsageQuantity metric, the service aggregates all usage numbers without taking into account the units. For example, if you aggregate usageQuantity across all of EC2, the results aren't meaningful because EC2 compute hours and data transfer are measured in different units (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, filter by UsageType or UsageTypeGroups.

" + } + }, + "MetricUnit": { + "base": null, + "refs": { + "MetricValue$Unit": "

The unit that the metric is given in.

" + } + }, + "MetricValue": { + "base": "

The aggregated value for a metric.

", + "refs": { + "Metrics$value": null + } + }, + "Metrics": { + "base": null, + "refs": { + "Group$Metrics": "

The metrics included in this group.

", + "ResultByTime$Total": "

The total amount of cost or usage accrued during the time period.

" + } + }, + "NextPageToken": { + "base": null, + "refs": { + "GetCostAndUsageRequest$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetCostAndUsageResponse$NextPageToken": "

The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetDimensionValuesRequest$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetDimensionValuesResponse$NextPageToken": "

The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetReservationUtilizationRequest$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetReservationUtilizationResponse$NextPageToken": "

The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetTagsRequest$NextPageToken": "

The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.

", + "GetTagsResponse$NextPageToken": "

The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.

" + } + }, + "PageSize": { + "base": null, + "refs": { + "GetDimensionValuesResponse$ReturnSize": "

The number of results that AWS returned at one time.

", + "GetDimensionValuesResponse$TotalSize": "

The total number of search results.

", + "GetTagsResponse$ReturnSize": "

The number of query results that AWS returns at a time.

", + "GetTagsResponse$TotalSize": "

The total number of query results.

" + } + }, + "PurchasedHours": { + "base": null, + "refs": { + "ReservationAggregates$PurchasedHours": "

How many RI hours you purchased.

" + } + }, + "ReservationAggregates": { + "base": "

The aggregated numbers for your RI usage.

", + "refs": { + "GetReservationUtilizationResponse$Total": "

The total amount of time that you utilized your RIs.

", + "ReservationUtilizationGroup$Utilization": "

How much you used this group of RIs.

", + "UtilizationByTime$Total": "

The total number of RI hours that were used.

" + } + }, + "ReservationGroupKey": { + "base": null, + "refs": { + "ReservationUtilizationGroup$Key": "

The key for a specific RI attribute.

" + } + }, + "ReservationGroupValue": { + "base": null, + "refs": { + "ReservationUtilizationGroup$Value": "

The value of a specific RI attribute.

" + } + }, + "ReservationUtilizationGroup": { + "base": "

A group of RIs that share a set of attributes.

", + "refs": { + "ReservationUtilizationGroups$member": null + } + }, + "ReservationUtilizationGroups": { + "base": null, + "refs": { + "UtilizationByTime$Groups": "

The groups that are included in this utilization result.

" + } + }, + "ResultByTime": { + "base": "

The result that is associated with a time period.

", + "refs": { + "ResultsByTime$member": null + } + }, + "ResultsByTime": { + "base": null, + "refs": { + "GetCostAndUsageResponse$ResultsByTime": "

The time period covered by the results in the response.

" + } + }, + "SearchString": { + "base": null, + "refs": { + "GetDimensionValuesRequest$SearchString": "

The value that you want to search the filter values for.

", + "GetTagsRequest$SearchString": "

The value that you want to search for.

" + } + }, + "TagKey": { + "base": null, + "refs": { + "GetTagsRequest$TagKey": "

The key of the tag that you want to return values for.

", + "TagValues$Key": "

The key for a tag.

" + } + }, + "TagList": { + "base": null, + "refs": { + "GetTagsResponse$Tags": "

The tags that match your request.

" + } + }, + "TagValues": { + "base": "

The values that are available for a tag.

", + "refs": { + "Expression$Tags": "

The specific Tag to use for Expression.

" + } + }, + "TotalActualHours": { + "base": null, + "refs": { + "ReservationAggregates$TotalActualHours": "

The total number of RI hours that you used.

" + } + }, + "UnusedHours": { + "base": null, + "refs": { + "ReservationAggregates$UnusedHours": "

The number of RI hours that you didn't use.

" + } + }, + "UtilizationByTime": { + "base": "

The amount of utilization, in hours.

", + "refs": { + "UtilizationsByTime$member": null + } + }, + "UtilizationPercentage": { + "base": null, + "refs": { + "ReservationAggregates$UtilizationPercentage": "

The percentage of RI time that you used.

" + } + }, + "UtilizationsByTime": { + "base": null, + "refs": { + "GetReservationUtilizationResponse$UtilizationsByTime": "

The amount of time that you utilized your RIs.

" + } + }, + "Value": { + "base": null, + "refs": { + "DimensionValuesWithAttributes$Value": "

The value of a dimension with a specific attribute.

", + "Values$member": null + } + }, + "Values": { + "base": null, + "refs": { + "DimensionValues$Values": "

The metadata values that you can use to filter and group your results. You can use GetDimensionValues to find specific values.

", + "TagValues$Values": "

The specific value of a tag.

" + } + }, + "YearMonthDay": { + "base": null, + "refs": { + "DateInterval$Start": "

The beginning of the time period that you want the usage and costs for. The start date is inclusive. For example, if start is 2017-01-01, then the cost and usage data is retrieved starting at 2017-01-01 up to the end date.

", + "DateInterval$End": "

The end of the time period that you want the usage and costs for. The end date is exclusive. For example, if the end is 2017-05-01, then the cost and usage data is retrieved from the start date but not including 2017-05-01.

" + } + } + } +} diff --git a/models/apis/ce/2017-10-25/examples-1.json b/models/apis/ce/2017-10-25/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/ce/2017-10-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/ce/2017-10-25/paginators-1.json b/models/apis/ce/2017-10-25/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/ce/2017-10-25/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/clouddirectory/2016-05-10/api-2.json b/models/apis/clouddirectory/2016-05-10/api-2.json index 4d96e160875..dc21b1bb42a 100644 --- a/models/apis/clouddirectory/2016-05-10/api-2.json +++ b/models/apis/clouddirectory/2016-05-10/api-2.json @@ -136,6 +136,7 @@ {"shape":"ValidationException"}, {"shape":"LimitExceededException"}, {"shape":"AccessDeniedException"}, + {"shape":"DirectoryNotEnabledException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidAttachmentException"}, {"shape":"ValidationException"}, @@ -495,6 +496,7 @@ {"shape":"ValidationException"}, {"shape":"LimitExceededException"}, {"shape":"AccessDeniedException"}, + {"shape":"DirectoryNotEnabledException"}, {"shape":"ResourceNotFoundException"}, {"shape":"FacetValidationException"} ] @@ -774,6 +776,7 @@ {"shape":"ValidationException"}, {"shape":"LimitExceededException"}, {"shape":"AccessDeniedException"}, + {"shape":"DirectoryNotEnabledException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidNextTokenException"}, {"shape":"FacetValidationException"} @@ -927,6 +930,7 @@ {"shape":"ValidationException"}, {"shape":"LimitExceededException"}, {"shape":"AccessDeniedException"}, + {"shape":"DirectoryNotEnabledException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InvalidNextTokenException"}, {"shape":"FacetValidationException"} @@ -1494,6 +1498,80 @@ "attachedObjectIdentifier":{"shape":"ObjectIdentifier"} } }, + "BatchAttachPolicy":{ + "type":"structure", + "required":[ + "PolicyReference", + "ObjectReference" + ], + "members":{ + "PolicyReference":{"shape":"ObjectReference"}, + "ObjectReference":{"shape":"ObjectReference"} + } + }, + "BatchAttachPolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "BatchAttachToIndex":{ + "type":"structure", + "required":[ + "IndexReference", + "TargetReference" + ], + "members":{ + "IndexReference":{"shape":"ObjectReference"}, + "TargetReference":{"shape":"ObjectReference"} + } + }, + "BatchAttachToIndexResponse":{ + "type":"structure", + "members":{ + "AttachedObjectIdentifier":{"shape":"ObjectIdentifier"} + } + }, + "BatchAttachTypedLink":{ + "type":"structure", + "required":[ + "SourceObjectReference", + "TargetObjectReference", + "TypedLinkFacet", + "Attributes" + ], + "members":{ + "SourceObjectReference":{"shape":"ObjectReference"}, + "TargetObjectReference":{"shape":"ObjectReference"}, + "TypedLinkFacet":{"shape":"TypedLinkSchemaAndFacetName"}, + "Attributes":{"shape":"AttributeNameAndValueList"} + } + }, + "BatchAttachTypedLinkResponse":{ + "type":"structure", + "members":{ + "TypedLinkSpecifier":{"shape":"TypedLinkSpecifier"} + } + }, + "BatchCreateIndex":{ + "type":"structure", + "required":[ + "OrderedIndexedAttributeList", + "IsUnique" + ], + "members":{ + "OrderedIndexedAttributeList":{"shape":"AttributeKeyList"}, + "IsUnique":{"shape":"Bool"}, + "ParentReference":{"shape":"ObjectReference"}, + "LinkName":{"shape":"LinkName"}, + "BatchReferenceName":{"shape":"BatchReferenceName"} + } + }, + "BatchCreateIndexResponse":{ + "type":"structure", + "members":{ + "ObjectIdentifier":{"shape":"ObjectIdentifier"} + } + }, "BatchCreateObject":{ "type":"structure", "required":[ @@ -1529,6 +1607,23 @@ "members":{ } }, + "BatchDetachFromIndex":{ + "type":"structure", + "required":[ + "IndexReference", + "TargetReference" + ], + "members":{ + "IndexReference":{"shape":"ObjectReference"}, + "TargetReference":{"shape":"ObjectReference"} + } + }, + "BatchDetachFromIndexResponse":{ + "type":"structure", + "members":{ + "DetachedObjectIdentifier":{"shape":"ObjectIdentifier"} + } + }, "BatchDetachObject":{ "type":"structure", "required":[ @@ -1548,6 +1643,99 @@ "detachedObjectIdentifier":{"shape":"ObjectIdentifier"} } }, + "BatchDetachPolicy":{ + "type":"structure", + "required":[ + "PolicyReference", + "ObjectReference" + ], + "members":{ + "PolicyReference":{"shape":"ObjectReference"}, + "ObjectReference":{"shape":"ObjectReference"} + } + }, + "BatchDetachPolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "BatchDetachTypedLink":{ + "type":"structure", + "required":["TypedLinkSpecifier"], + "members":{ + "TypedLinkSpecifier":{"shape":"TypedLinkSpecifier"} + } + }, + "BatchDetachTypedLinkResponse":{ + "type":"structure", + "members":{ + } + }, + "BatchGetObjectInformation":{ + "type":"structure", + "required":["ObjectReference"], + "members":{ + "ObjectReference":{"shape":"ObjectReference"} + } + }, + "BatchGetObjectInformationResponse":{ + "type":"structure", + "members":{ + "SchemaFacets":{"shape":"SchemaFacetList"}, + "ObjectIdentifier":{"shape":"ObjectIdentifier"} + } + }, + "BatchListAttachedIndices":{ + "type":"structure", + "required":["TargetReference"], + "members":{ + "TargetReference":{"shape":"ObjectReference"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"NumberResults"} + } + }, + "BatchListAttachedIndicesResponse":{ + "type":"structure", + "members":{ + "IndexAttachments":{"shape":"IndexAttachmentList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "BatchListIncomingTypedLinks":{ + "type":"structure", + "required":["ObjectReference"], + "members":{ + "ObjectReference":{"shape":"ObjectReference"}, + "FilterAttributeRanges":{"shape":"TypedLinkAttributeRangeList"}, + "FilterTypedLink":{"shape":"TypedLinkSchemaAndFacetName"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"NumberResults"} + } + }, + "BatchListIncomingTypedLinksResponse":{ + "type":"structure", + "members":{ + "LinkSpecifiers":{"shape":"TypedLinkSpecifierList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "BatchListIndex":{ + "type":"structure", + "required":["IndexReference"], + "members":{ + "RangesOnIndexedValues":{"shape":"ObjectAttributeRangeList"}, + "IndexReference":{"shape":"ObjectReference"}, + "MaxResults":{"shape":"NumberResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "BatchListIndexResponse":{ + "type":"structure", + "members":{ + "IndexAttachments":{"shape":"IndexAttachmentList"}, + "NextToken":{"shape":"NextToken"} + } + }, "BatchListObjectAttributes":{ "type":"structure", "required":["ObjectReference"], @@ -1581,6 +1769,88 @@ "NextToken":{"shape":"NextToken"} } }, + "BatchListObjectParentPaths":{ + "type":"structure", + "required":["ObjectReference"], + "members":{ + "ObjectReference":{"shape":"ObjectReference"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"NumberResults"} + } + }, + "BatchListObjectParentPathsResponse":{ + "type":"structure", + "members":{ + "PathToObjectIdentifiersList":{"shape":"PathToObjectIdentifiersList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "BatchListObjectPolicies":{ + "type":"structure", + "required":["ObjectReference"], + "members":{ + "ObjectReference":{"shape":"ObjectReference"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"NumberResults"} + } + }, + "BatchListObjectPoliciesResponse":{ + "type":"structure", + "members":{ + "AttachedPolicyIds":{"shape":"ObjectIdentifierList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "BatchListOutgoingTypedLinks":{ + "type":"structure", + "required":["ObjectReference"], + "members":{ + "ObjectReference":{"shape":"ObjectReference"}, + "FilterAttributeRanges":{"shape":"TypedLinkAttributeRangeList"}, + "FilterTypedLink":{"shape":"TypedLinkSchemaAndFacetName"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"NumberResults"} + } + }, + "BatchListOutgoingTypedLinksResponse":{ + "type":"structure", + "members":{ + "TypedLinkSpecifiers":{"shape":"TypedLinkSpecifierList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "BatchListPolicyAttachments":{ + "type":"structure", + "required":["PolicyReference"], + "members":{ + "PolicyReference":{"shape":"ObjectReference"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"NumberResults"} + } + }, + "BatchListPolicyAttachmentsResponse":{ + "type":"structure", + "members":{ + "ObjectIdentifiers":{"shape":"ObjectIdentifierList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "BatchLookupPolicy":{ + "type":"structure", + "required":["ObjectReference"], + "members":{ + "ObjectReference":{"shape":"ObjectReference"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"NumberResults"} + } + }, + "BatchLookupPolicyResponse":{ + "type":"structure", + "members":{ + "PolicyToPathList":{"shape":"PolicyToPathList"}, + "NextToken":{"shape":"NextToken"} + } + }, "BatchOperationIndex":{"type":"integer"}, "BatchReadException":{ "type":"structure", @@ -1597,14 +1867,30 @@ "ResourceNotFoundException", "InvalidNextTokenException", "AccessDeniedException", - "NotNodeException" + "NotNodeException", + "FacetValidationException", + "CannotListParentOfRootException", + "NotIndexException", + "NotPolicyException", + "DirectoryNotEnabledException", + "LimitExceededException", + "InternalServiceException" ] }, "BatchReadOperation":{ "type":"structure", "members":{ "ListObjectAttributes":{"shape":"BatchListObjectAttributes"}, - "ListObjectChildren":{"shape":"BatchListObjectChildren"} + "ListObjectChildren":{"shape":"BatchListObjectChildren"}, + "ListAttachedIndices":{"shape":"BatchListAttachedIndices"}, + "ListObjectParentPaths":{"shape":"BatchListObjectParentPaths"}, + "GetObjectInformation":{"shape":"BatchGetObjectInformation"}, + "ListObjectPolicies":{"shape":"BatchListObjectPolicies"}, + "ListPolicyAttachments":{"shape":"BatchListPolicyAttachments"}, + "LookupPolicy":{"shape":"BatchLookupPolicy"}, + "ListIndex":{"shape":"BatchListIndex"}, + "ListOutgoingTypedLinks":{"shape":"BatchListOutgoingTypedLinks"}, + "ListIncomingTypedLinks":{"shape":"BatchListIncomingTypedLinks"} } }, "BatchReadOperationList":{ @@ -1652,7 +1938,16 @@ "type":"structure", "members":{ "ListObjectAttributes":{"shape":"BatchListObjectAttributesResponse"}, - "ListObjectChildren":{"shape":"BatchListObjectChildrenResponse"} + "ListObjectChildren":{"shape":"BatchListObjectChildrenResponse"}, + "GetObjectInformation":{"shape":"BatchGetObjectInformationResponse"}, + "ListAttachedIndices":{"shape":"BatchListAttachedIndicesResponse"}, + "ListObjectParentPaths":{"shape":"BatchListObjectParentPathsResponse"}, + "ListObjectPolicies":{"shape":"BatchListObjectPoliciesResponse"}, + "ListPolicyAttachments":{"shape":"BatchListPolicyAttachmentsResponse"}, + "LookupPolicy":{"shape":"BatchLookupPolicyResponse"}, + "ListIndex":{"shape":"BatchListIndexResponse"}, + "ListOutgoingTypedLinks":{"shape":"BatchListOutgoingTypedLinksResponse"}, + "ListIncomingTypedLinks":{"shape":"BatchListIncomingTypedLinksResponse"} } }, "BatchReferenceName":{"type":"string"}, @@ -1709,7 +2004,15 @@ "FacetValidationException", "ObjectNotDetachedException", "ResourceNotFoundException", - "AccessDeniedException" + "AccessDeniedException", + "InvalidAttachmentException", + "NotIndexException", + "IndexedAttributeMissingException", + "ObjectAlreadyDetachedException", + "NotPolicyException", + "DirectoryNotEnabledException", + "LimitExceededException", + "UnsupportedIndexTypeException" ] }, "BatchWriteOperation":{ @@ -1721,7 +2024,14 @@ "UpdateObjectAttributes":{"shape":"BatchUpdateObjectAttributes"}, "DeleteObject":{"shape":"BatchDeleteObject"}, "AddFacetToObject":{"shape":"BatchAddFacetToObject"}, - "RemoveFacetFromObject":{"shape":"BatchRemoveFacetFromObject"} + "RemoveFacetFromObject":{"shape":"BatchRemoveFacetFromObject"}, + "AttachPolicy":{"shape":"BatchAttachPolicy"}, + "DetachPolicy":{"shape":"BatchDetachPolicy"}, + "CreateIndex":{"shape":"BatchCreateIndex"}, + "AttachToIndex":{"shape":"BatchAttachToIndex"}, + "DetachFromIndex":{"shape":"BatchDetachFromIndex"}, + "AttachTypedLink":{"shape":"BatchAttachTypedLink"}, + "DetachTypedLink":{"shape":"BatchDetachTypedLink"} } }, "BatchWriteOperationList":{ @@ -1737,7 +2047,14 @@ "UpdateObjectAttributes":{"shape":"BatchUpdateObjectAttributesResponse"}, "DeleteObject":{"shape":"BatchDeleteObjectResponse"}, "AddFacetToObject":{"shape":"BatchAddFacetToObjectResponse"}, - "RemoveFacetFromObject":{"shape":"BatchRemoveFacetFromObjectResponse"} + "RemoveFacetFromObject":{"shape":"BatchRemoveFacetFromObjectResponse"}, + "AttachPolicy":{"shape":"BatchAttachPolicyResponse"}, + "DetachPolicy":{"shape":"BatchDetachPolicyResponse"}, + "CreateIndex":{"shape":"BatchCreateIndexResponse"}, + "AttachToIndex":{"shape":"BatchAttachToIndexResponse"}, + "DetachFromIndex":{"shape":"BatchDetachFromIndexResponse"}, + "AttachTypedLink":{"shape":"BatchAttachTypedLinkResponse"}, + "DetachTypedLink":{"shape":"BatchDetachTypedLinkResponse"} } }, "BatchWriteOperationResponseList":{ diff --git a/models/apis/clouddirectory/2016-05-10/docs-2.json b/models/apis/clouddirectory/2016-05-10/docs-2.json index 45e5b3087c8..c5e70f45813 100644 --- a/models/apis/clouddirectory/2016-05-10/docs-2.json +++ b/models/apis/clouddirectory/2016-05-10/docs-2.json @@ -241,6 +241,7 @@ "AttributeKeyList": { "base": null, "refs": { + "BatchCreateIndex$OrderedIndexedAttributeList": "

Specifies the attributes that should be indexed on. Currently only a single attribute is supported.

", "CreateIndexRequest$OrderedIndexedAttributeList": "

Specifies the attributes that should be indexed on. Currently only a single attribute is supported.

" } }, @@ -266,6 +267,7 @@ "base": null, "refs": { "AttachTypedLinkRequest$Attributes": "

A set of attributes that are associated with the typed link.

", + "BatchAttachTypedLink$Attributes": "

A set of attributes that are associated with the typed link.

", "TypedLinkSpecifier$IdentityAttributeValues": "

Identifies the attribute value to update.

" } }, @@ -273,7 +275,7 @@ "base": null, "refs": { "GetTypedLinkFacetInformationResponse$IdentityAttributeOrder": "

The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed links considers the order that the attributes are defined on the typed link facet. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. For more information about identity attributes, see Typed link.

", - "TypedLinkFacet$IdentityAttributeOrder": "

The set of attributes that distinguish links made from this facet from each other, in the order of significance. Listing typed links can filter on the values of these attributes. See ListOutgoingTypedLinks and ListIncomingTypeLinks for details.

", + "TypedLinkFacet$IdentityAttributeOrder": "

The set of attributes that distinguish links made from this facet from each other, in the order of significance. Listing typed links can filter on the values of these attributes. See ListOutgoingTypedLinks and ListIncomingTypedLinks for details.

", "UpdateTypedLinkFacetRequest$IdentityAttributeOrder": "

The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed links considers the order that the attributes are defined on the typed link facet. When providing ranges to a typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. For more information about identity attributes, see Typed link.

" } }, @@ -290,77 +292,269 @@ } }, "BatchAttachObject": { - "base": "

Represents the output of an AttachObject operation.

", + "base": "

Represents the output of an AttachObject operation.

", "refs": { "BatchWriteOperation$AttachObject": "

Attaches an object to a Directory.

" } }, "BatchAttachObjectResponse": { - "base": "

Represents the output batch AttachObject response operation.

", + "base": "

Represents the output batch AttachObject response operation.

", "refs": { "BatchWriteOperationResponse$AttachObject": "

Attaches an object to a Directory.

" } }, + "BatchAttachPolicy": { + "base": "

Attaches a policy object to a regular object inside a BatchRead operation. For more information, see AttachPolicy and BatchReadRequest$Operations.

", + "refs": { + "BatchWriteOperation$AttachPolicy": "

Attaches a policy object to a regular object. An object can have a limited number of attached policies.

" + } + }, + "BatchAttachPolicyResponse": { + "base": "

Represents the output of an AttachPolicy response operation.

", + "refs": { + "BatchWriteOperationResponse$AttachPolicy": "

Attaches a policy object to a regular object. An object can have a limited number of attached policies.

" + } + }, + "BatchAttachToIndex": { + "base": "

Attaches the specified object to the specified index inside a BatchRead operation. For more information, see AttachToIndex and BatchReadRequest$Operations.

", + "refs": { + "BatchWriteOperation$AttachToIndex": "

Attaches the specified object to the specified index.

" + } + }, + "BatchAttachToIndexResponse": { + "base": "

Represents the output of a AttachToIndex response operation.

", + "refs": { + "BatchWriteOperationResponse$AttachToIndex": "

Attaches the specified object to the specified index.

" + } + }, + "BatchAttachTypedLink": { + "base": "

Attaches a typed link to a specified source and target object inside a BatchRead operation. For more information, see AttachTypedLink and BatchReadRequest$Operations.

", + "refs": { + "BatchWriteOperation$AttachTypedLink": "

Attaches a typed link to a specified source and target object. For more information, see Typed link.

" + } + }, + "BatchAttachTypedLinkResponse": { + "base": "

Represents the output of a AttachTypedLink response operation.

", + "refs": { + "BatchWriteOperationResponse$AttachTypedLink": "

Attaches a typed link to a specified source and target object. For more information, see Typed link.

" + } + }, + "BatchCreateIndex": { + "base": "

Creates an index object inside of a BatchRead operation. For more information, see CreateIndex and BatchReadRequest$Operations.

", + "refs": { + "BatchWriteOperation$CreateIndex": "

Creates an index object. See Indexing for more information.

" + } + }, + "BatchCreateIndexResponse": { + "base": "

Represents the output of a CreateIndex response operation.

", + "refs": { + "BatchWriteOperationResponse$CreateIndex": "

Creates an index object. See Indexing for more information.

" + } + }, "BatchCreateObject": { - "base": "

Represents the output of a CreateObject operation.

", + "base": "

Represents the output of a CreateObject operation.

", "refs": { "BatchWriteOperation$CreateObject": "

Creates an object.

" } }, "BatchCreateObjectResponse": { - "base": "

Represents the output of a CreateObject response operation.

", + "base": "

Represents the output of a CreateObject response operation.

", "refs": { "BatchWriteOperationResponse$CreateObject": "

Creates an object in a Directory.

" } }, "BatchDeleteObject": { - "base": "

Represents the output of a DeleteObject operation.

", + "base": "

Represents the output of a DeleteObject operation.

", "refs": { "BatchWriteOperation$DeleteObject": "

Deletes an object in a Directory.

" } }, "BatchDeleteObjectResponse": { - "base": "

Represents the output of a DeleteObject response operation.

", + "base": "

Represents the output of a DeleteObject response operation.

", "refs": { "BatchWriteOperationResponse$DeleteObject": "

Deletes an object in a Directory.

" } }, + "BatchDetachFromIndex": { + "base": "

Detaches the specified object from the specified index inside a BatchRead operation. For more information, see DetachFromIndex and BatchReadRequest$Operations.

", + "refs": { + "BatchWriteOperation$DetachFromIndex": "

Detaches the specified object from the specified index.

" + } + }, + "BatchDetachFromIndexResponse": { + "base": "

Represents the output of a DetachFromIndex response operation.

", + "refs": { + "BatchWriteOperationResponse$DetachFromIndex": "

Detaches the specified object from the specified index.

" + } + }, "BatchDetachObject": { - "base": "

Represents the output of a DetachObject operation.

", + "base": "

Represents the output of a DetachObject operation.

", "refs": { "BatchWriteOperation$DetachObject": "

Detaches an object from a Directory.

" } }, "BatchDetachObjectResponse": { - "base": "

Represents the output of a DetachObject response operation.

", + "base": "

Represents the output of a DetachObject response operation.

", "refs": { "BatchWriteOperationResponse$DetachObject": "

Detaches an object from a Directory.

" } }, + "BatchDetachPolicy": { + "base": "

Detaches the specified policy from the specified directory inside a BatchRead operation. For more information, see DetachPolicy and BatchReadRequest$Operations.

", + "refs": { + "BatchWriteOperation$DetachPolicy": "

Detaches a policy from a Directory.

" + } + }, + "BatchDetachPolicyResponse": { + "base": "

Represents the output of a DetachPolicy response operation.

", + "refs": { + "BatchWriteOperationResponse$DetachPolicy": "

Detaches a policy from a Directory.

" + } + }, + "BatchDetachTypedLink": { + "base": "

Detaches a typed link from a specified source and target object inside a BatchRead operation. For more information, see DetachTypedLink and BatchReadRequest$Operations.

", + "refs": { + "BatchWriteOperation$DetachTypedLink": "

Detaches a typed link from a specified source and target object. For more information, see Typed link.

" + } + }, + "BatchDetachTypedLinkResponse": { + "base": "

Represents the output of a DetachTypedLink response operation.

", + "refs": { + "BatchWriteOperationResponse$DetachTypedLink": "

Detaches a typed link from a specified source and target object. For more information, see Typed link.

" + } + }, + "BatchGetObjectInformation": { + "base": "

Retrieves metadata about an object inside a BatchRead operation. For more information, see GetObjectInformation and BatchReadRequest$Operations.

", + "refs": { + "BatchReadOperation$GetObjectInformation": "

Retrieves metadata about an object.

" + } + }, + "BatchGetObjectInformationResponse": { + "base": "

Represents the output of a GetObjectInformation response operation.

", + "refs": { + "BatchReadSuccessfulResponse$GetObjectInformation": "

Retrieves metadata about an object.

" + } + }, + "BatchListAttachedIndices": { + "base": "

Lists indices attached to an object inside a BatchRead operation. For more information, see ListAttachedIndices and BatchReadRequest$Operations.

", + "refs": { + "BatchReadOperation$ListAttachedIndices": "

Lists indices attached to an object.

" + } + }, + "BatchListAttachedIndicesResponse": { + "base": "

Represents the output of a ListAttachedIndices response operation.

", + "refs": { + "BatchReadSuccessfulResponse$ListAttachedIndices": "

Lists indices attached to an object.

" + } + }, + "BatchListIncomingTypedLinks": { + "base": "

Returns a paginated list of all the incoming TypedLinkSpecifier information for an object inside a BatchRead operation. For more information, see ListIncomingTypedLinks and BatchReadRequest$Operations.

", + "refs": { + "BatchReadOperation$ListIncomingTypedLinks": "

Returns a paginated list of all the incoming TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed link.

" + } + }, + "BatchListIncomingTypedLinksResponse": { + "base": "

Represents the output of a ListIncomingTypedLinks response operation.

", + "refs": { + "BatchReadSuccessfulResponse$ListIncomingTypedLinks": "

Returns a paginated list of all the incoming TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed link.

" + } + }, + "BatchListIndex": { + "base": "

Lists objects attached to the specified index inside a BatchRead operation. For more information, see ListIndex and BatchReadRequest$Operations.

", + "refs": { + "BatchReadOperation$ListIndex": "

Lists objects attached to the specified index.

" + } + }, + "BatchListIndexResponse": { + "base": "

Represents the output of a ListIndex response operation.

", + "refs": { + "BatchReadSuccessfulResponse$ListIndex": "

Lists objects attached to the specified index.

" + } + }, "BatchListObjectAttributes": { - "base": "

Represents the output of a ListObjectAttributes operation.

", + "base": "

Represents the output of a ListObjectAttributes operation.

", "refs": { "BatchReadOperation$ListObjectAttributes": "

Lists all attributes that are associated with an object.

" } }, "BatchListObjectAttributesResponse": { - "base": "

Represents the output of a ListObjectAttributes response operation.

", + "base": "

Represents the output of a ListObjectAttributes response operation.

", "refs": { "BatchReadSuccessfulResponse$ListObjectAttributes": "

Lists all attributes that are associated with an object.

" } }, "BatchListObjectChildren": { - "base": "

Represents the output of a ListObjectChildren operation.

", + "base": "

Represents the output of a ListObjectChildren operation.

", "refs": { "BatchReadOperation$ListObjectChildren": "

Returns a paginated list of child objects that are associated with a given object.

" } }, "BatchListObjectChildrenResponse": { - "base": "

Represents the output of a ListObjectChildren response operation.

", + "base": "

Represents the output of a ListObjectChildren response operation.

", "refs": { "BatchReadSuccessfulResponse$ListObjectChildren": "

Returns a paginated list of child objects that are associated with a given object.

" } }, + "BatchListObjectParentPaths": { + "base": "

Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects inside a BatchRead operation. For more information, see ListObjectParentPaths and BatchReadRequest$Operations.

", + "refs": { + "BatchReadOperation$ListObjectParentPaths": "

Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see Directory Structure.

" + } + }, + "BatchListObjectParentPathsResponse": { + "base": "

Represents the output of a ListObjectParentPaths response operation.

", + "refs": { + "BatchReadSuccessfulResponse$ListObjectParentPaths": "

Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see Directory Structure.

" + } + }, + "BatchListObjectPolicies": { + "base": "

Returns policies attached to an object in pagination fashion inside a BatchRead operation. For more information, see ListObjectPolicies and BatchReadRequest$Operations.

", + "refs": { + "BatchReadOperation$ListObjectPolicies": "

Returns policies attached to an object in pagination fashion.

" + } + }, + "BatchListObjectPoliciesResponse": { + "base": "

Represents the output of a ListObjectPolicies response operation.

", + "refs": { + "BatchReadSuccessfulResponse$ListObjectPolicies": "

Returns policies attached to an object in pagination fashion.

" + } + }, + "BatchListOutgoingTypedLinks": { + "base": "

Returns a paginated list of all the outgoing TypedLinkSpecifier information for an object inside a BatchRead operation. For more information, see ListOutgoingTypedLinks and BatchReadRequest$Operations.

", + "refs": { + "BatchReadOperation$ListOutgoingTypedLinks": "

Returns a paginated list of all the outgoing TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed link.

" + } + }, + "BatchListOutgoingTypedLinksResponse": { + "base": "

Represents the output of a ListOutgoingTypedLinks response operation.

", + "refs": { + "BatchReadSuccessfulResponse$ListOutgoingTypedLinks": "

Returns a paginated list of all the outgoing TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed link.

" + } + }, + "BatchListPolicyAttachments": { + "base": "

Returns all of the ObjectIdentifiers to which a given policy is attached inside a BatchRead operation. For more information, see ListPolicyAttachments and BatchReadRequest$Operations.

", + "refs": { + "BatchReadOperation$ListPolicyAttachments": "

Returns all of the ObjectIdentifiers to which a given policy is attached.

" + } + }, + "BatchListPolicyAttachmentsResponse": { + "base": "

Represents the output of a ListPolicyAttachments response operation.

", + "refs": { + "BatchReadSuccessfulResponse$ListPolicyAttachments": "

Returns all of the ObjectIdentifiers to which a given policy is attached.

" + } + }, + "BatchLookupPolicy": { + "base": "

Lists all policies from the root of the Directory to the object specified inside a BatchRead operation. For more information, see LookupPolicy and BatchReadRequest$Operations.

", + "refs": { + "BatchReadOperation$LookupPolicy": "

Lists all policies from the root of the Directory to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the ObjectIdentifier for such objects. If policies are present, it returns ObjectIdentifier, policyId, and policyType. Paths that don't lead to the root from the target object are ignored. For more information, see Policies.

" + } + }, + "BatchLookupPolicyResponse": { + "base": "

Represents the output of a LookupPolicy response operation.

", + "refs": { + "BatchReadSuccessfulResponse$LookupPolicy": "

Lists all policies from the root of the Directory to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the ObjectIdentifier for such objects. If policies are present, it returns ObjectIdentifier, policyId, and policyType. Paths that don't lead to the root from the target object are ignored. For more information, see Policies.

" + } + }, "BatchOperationIndex": { "base": null, "refs": { @@ -422,6 +616,7 @@ "BatchReferenceName": { "base": null, "refs": { + "BatchCreateIndex$BatchReferenceName": "

The batch reference name. See Batches for more information.

", "BatchCreateObject$BatchReferenceName": "

The batch reference name. See Batches for more information.

", "BatchDetachObject$BatchReferenceName": "

The batch reference name. See Batches for more information.

" } @@ -504,6 +699,7 @@ "Bool": { "base": null, "refs": { + "BatchCreateIndex$IsUnique": "

Indicates whether the attribute that is being indexed has unique values or not.

", "CreateIndexRequest$IsUnique": "

Indicates whether the attribute that is being indexed has unique values or not.

", "FacetAttributeDefinition$IsImmutable": "

Whether the attribute is mutable or not.

", "TypedLinkAttributeDefinition$IsImmutable": "

Whether the attribute is mutable or not.

" @@ -960,6 +1156,8 @@ "IndexAttachmentList": { "base": null, "refs": { + "BatchListAttachedIndicesResponse$IndexAttachments": "

The indices attached to the specified object.

", + "BatchListIndexResponse$IndexAttachments": "

The objects and indexed values attached to the index.

", "ListAttachedIndicesResponse$IndexAttachments": "

The indices attached to the specified object.

", "ListIndexResponse$IndexAttachments": "

The objects and indexed values attached to the index.

" } @@ -1019,6 +1217,7 @@ "refs": { "AttachObjectRequest$LinkName": "

The link name with which the child object is attached to the parent.

", "BatchAttachObject$LinkName": "

The name of the link.

", + "BatchCreateIndex$LinkName": "

The name of the link between the parent object and the index object.

", "BatchCreateObject$LinkName": "

The name of the link.

", "BatchDetachObject$LinkName": "

The name of the link.

", "CreateIndexRequest$LinkName": "

The name of the link between the parent object and the index object.

", @@ -1243,10 +1442,26 @@ "NextToken": { "base": null, "refs": { + "BatchListAttachedIndices$NextToken": "

The pagination token.

", + "BatchListAttachedIndicesResponse$NextToken": "

The pagination token.

", + "BatchListIncomingTypedLinks$NextToken": "

The pagination token.

", + "BatchListIncomingTypedLinksResponse$NextToken": "

The pagination token.

", + "BatchListIndex$NextToken": "

The pagination token.

", + "BatchListIndexResponse$NextToken": "

The pagination token.

", "BatchListObjectAttributes$NextToken": "

The pagination token.

", "BatchListObjectAttributesResponse$NextToken": "

The pagination token.

", "BatchListObjectChildren$NextToken": "

The pagination token.

", "BatchListObjectChildrenResponse$NextToken": "

The pagination token.

", + "BatchListObjectParentPaths$NextToken": "

The pagination token.

", + "BatchListObjectParentPathsResponse$NextToken": "

The pagination token.

", + "BatchListObjectPolicies$NextToken": "

The pagination token.

", + "BatchListObjectPoliciesResponse$NextToken": "

The pagination token.

", + "BatchListOutgoingTypedLinks$NextToken": "

The pagination token.

", + "BatchListOutgoingTypedLinksResponse$NextToken": "

The pagination token.

", + "BatchListPolicyAttachments$NextToken": "

The pagination token.

", + "BatchListPolicyAttachmentsResponse$NextToken": "

The pagination token.

", + "BatchLookupPolicy$NextToken": "

The pagination token.

", + "BatchLookupPolicyResponse$NextToken": "

The pagination token.

", "ListAppliedSchemaArnsRequest$NextToken": "

The pagination token.

", "ListAppliedSchemaArnsResponse$NextToken": "

The pagination token.

", "ListAttachedIndicesRequest$NextToken": "

The pagination token.

", @@ -1313,8 +1528,16 @@ "NumberResults": { "base": null, "refs": { + "BatchListAttachedIndices$MaxResults": "

The maximum number of results to retrieve.

", + "BatchListIncomingTypedLinks$MaxResults": "

The maximum number of results to retrieve.

", + "BatchListIndex$MaxResults": "

The maximum number of results to retrieve.

", "BatchListObjectAttributes$MaxResults": "

The maximum number of items to be retrieved in a single call. This is an approximate number.

", "BatchListObjectChildren$MaxResults": "

Maximum number of items to be retrieved in a single call. This is an approximate number.

", + "BatchListObjectParentPaths$MaxResults": "

The maximum number of results to retrieve.

", + "BatchListObjectPolicies$MaxResults": "

The maximum number of results to retrieve.

", + "BatchListOutgoingTypedLinks$MaxResults": "

The maximum number of results to retrieve.

", + "BatchListPolicyAttachments$MaxResults": "

The maximum number of results to retrieve.

", + "BatchLookupPolicy$MaxResults": "

The maximum number of results to retrieve.

", "ListAppliedSchemaArnsRequest$MaxResults": "

The maximum number of results to retrieve.

", "ListAttachedIndicesRequest$MaxResults": "

The maximum number of results to retrieve.

", "ListDevelopmentSchemaArnsRequest$MaxResults": "

The maximum number of results to retrieve.

", @@ -1356,6 +1579,7 @@ "ObjectAttributeRangeList": { "base": null, "refs": { + "BatchListIndex$RangesOnIndexedValues": "

Specifies the ranges of indexed values that you want to query.

", "ListIndexRequest$RangesOnIndexedValues": "

Specifies the ranges of indexed values that you want to query.

" } }, @@ -1378,8 +1602,12 @@ "AttachObjectResponse$AttachedObjectIdentifier": "

The attached ObjectIdentifier, which is the child ObjectIdentifier.

", "AttachToIndexResponse$AttachedObjectIdentifier": "

The ObjectIdentifier of the object that was attached to the index.

", "BatchAttachObjectResponse$attachedObjectIdentifier": "

The ObjectIdentifier of the object that has been attached.

", + "BatchAttachToIndexResponse$AttachedObjectIdentifier": "

The ObjectIdentifier of the object that was attached to the index.

", + "BatchCreateIndexResponse$ObjectIdentifier": "

The ObjectIdentifier of the index created by this operation.

", "BatchCreateObjectResponse$ObjectIdentifier": "

The ID that is associated with the object.

", + "BatchDetachFromIndexResponse$DetachedObjectIdentifier": "

The ObjectIdentifier of the object that was detached from the index.

", "BatchDetachObjectResponse$detachedObjectIdentifier": "

The ObjectIdentifier of the detached object.

", + "BatchGetObjectInformationResponse$ObjectIdentifier": "

The ObjectIdentifier of the specified object.

", "BatchUpdateObjectAttributesResponse$ObjectIdentifier": "

ID that is associated with the object.

", "CreateDirectoryResponse$ObjectIdentifier": "

The root object node of the created directory.

", "CreateIndexResponse$ObjectIdentifier": "

The ObjectIdentifier of the index created by this operation.

", @@ -1399,6 +1627,8 @@ "ObjectIdentifierList": { "base": null, "refs": { + "BatchListObjectPoliciesResponse$AttachedPolicyIds": "

A list of policy ObjectIdentifiers, that are attached to the object.

", + "BatchListPolicyAttachmentsResponse$ObjectIdentifiers": "

A list of ObjectIdentifiers to which the policy is attached.

", "ListObjectPoliciesResponse$AttachedPolicyIds": "

A list of policy ObjectIdentifiers, that are attached to the object.

", "ListPolicyAttachmentsResponse$ObjectIdentifiers": "

A list of ObjectIdentifiers to which the policy is attached.

", "PathToObjectIdentifiers$ObjectIdentifiers": "

Lists ObjectIdentifiers starting from directory root to the object in the request.

" @@ -1430,11 +1660,31 @@ "BatchAddFacetToObject$ObjectReference": "

A reference to the object being mutated.

", "BatchAttachObject$ParentReference": "

The parent object reference.

", "BatchAttachObject$ChildReference": "

The child object reference that is to be attached to the object.

", + "BatchAttachPolicy$PolicyReference": "

The reference that is associated with the policy object.

", + "BatchAttachPolicy$ObjectReference": "

The reference that identifies the object to which the policy will be attached.

", + "BatchAttachToIndex$IndexReference": "

A reference to the index that you are attaching the object to.

", + "BatchAttachToIndex$TargetReference": "

A reference to the object that you are attaching to the index.

", + "BatchAttachTypedLink$SourceObjectReference": "

Identifies the source object that the typed link will attach to.

", + "BatchAttachTypedLink$TargetObjectReference": "

Identifies the target object that the typed link will attach to.

", + "BatchCreateIndex$ParentReference": "

A reference to the parent object that contains the index object.

", "BatchCreateObject$ParentReference": "

If specified, the parent reference to which this object will be attached.

", "BatchDeleteObject$ObjectReference": "

The reference that identifies the object.

", + "BatchDetachFromIndex$IndexReference": "

A reference to the index object.

", + "BatchDetachFromIndex$TargetReference": "

A reference to the object being detached from the index.

", "BatchDetachObject$ParentReference": "

Parent reference from which the object with the specified link name is detached.

", + "BatchDetachPolicy$PolicyReference": "

Reference that identifies the policy object.

", + "BatchDetachPolicy$ObjectReference": "

Reference that identifies the object whose policy object will be detached.

", + "BatchGetObjectInformation$ObjectReference": "

A reference to the object.

", + "BatchListAttachedIndices$TargetReference": "

A reference to the object that has indices attached.

", + "BatchListIncomingTypedLinks$ObjectReference": "

The reference that identifies the object whose attributes will be listed.

", + "BatchListIndex$IndexReference": "

The reference to the index to list.

", "BatchListObjectAttributes$ObjectReference": "

Reference of the object whose attributes need to be listed.

", "BatchListObjectChildren$ObjectReference": "

Reference of the object for which child objects are being listed.

", + "BatchListObjectParentPaths$ObjectReference": "

The reference that identifies the object whose attributes will be listed.

", + "BatchListObjectPolicies$ObjectReference": "

The reference that identifies the object whose attributes will be listed.

", + "BatchListOutgoingTypedLinks$ObjectReference": "

The reference that identifies the object whose attributes will be listed.

", + "BatchListPolicyAttachments$PolicyReference": "

The reference that identifies the policy object.

", + "BatchLookupPolicy$ObjectReference": "

Reference that identifies the object whose policies will be looked up.

", "BatchRemoveFacetFromObject$ObjectReference": "

A reference to the object whose facet will be removed.

", "BatchUpdateObjectAttributes$ObjectReference": "

Reference that identifies the object.

", "CreateIndexRequest$ParentReference": "

A reference to the parent object that contains the index object.

", @@ -1446,7 +1696,7 @@ "DetachPolicyRequest$PolicyReference": "

Reference that identifies the policy object.

", "DetachPolicyRequest$ObjectReference": "

Reference that identifies the object whose policy object will be detached.

", "GetObjectInformationRequest$ObjectReference": "

A reference to the object.

", - "ListAttachedIndicesRequest$TargetReference": "

A reference to the object to that has indices attached.

", + "ListAttachedIndicesRequest$TargetReference": "

A reference to the object that has indices attached.

", "ListIncomingTypedLinksRequest$ObjectReference": "

Reference that identifies the object whose attributes will be listed.

", "ListIndexRequest$IndexReference": "

The reference to the index to list.

", "ListObjectAttributesRequest$ObjectReference": "

The reference that identifies the object whose attributes will be listed.

", @@ -1487,6 +1737,7 @@ "PathToObjectIdentifiersList": { "base": null, "refs": { + "BatchListObjectParentPathsResponse$PathToObjectIdentifiersList": "

Returns the path to the ObjectIdentifiers that are associated with the directory.

", "ListObjectParentPathsResponse$PathToObjectIdentifiersList": "

Returns the path to the ObjectIdentifiers that are associated with the directory.

" } }, @@ -1511,6 +1762,7 @@ "PolicyToPathList": { "base": null, "refs": { + "BatchLookupPolicyResponse$PolicyToPathList": "

Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier, and PolicyType. For more information, see Policies.

", "LookupPolicyResponse$PolicyToPathList": "

Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier, and PolicyType. For more information, see Policies.

" } }, @@ -1643,6 +1895,7 @@ "base": null, "refs": { "BatchCreateObject$SchemaFacet": "

A list of FacetArns that will be associated with the object. For more information, see arns.

", + "BatchGetObjectInformationResponse$SchemaFacets": "

The facets attached to the specified object.

", "CreateObjectRequest$SchemaFacets": "

A list of schema facets to be associated with the object that contains SchemaArn and facet name. For more information, see arns.

", "GetObjectInformationResponse$SchemaFacets": "

The facets attached to the specified object.

" } @@ -1770,6 +2023,8 @@ "TypedLinkAttributeRangeList": { "base": null, "refs": { + "BatchListIncomingTypedLinks$FilterAttributeRanges": "

Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.

", + "BatchListOutgoingTypedLinks$FilterAttributeRanges": "

Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.

", "ListIncomingTypedLinksRequest$FilterAttributeRanges": "

Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.

", "ListOutgoingTypedLinksRequest$FilterAttributeRanges": "

Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.

" } @@ -1814,6 +2069,9 @@ "base": "

Identifies the schema Amazon Resource Name (ARN) and facet name for the typed link.

", "refs": { "AttachTypedLinkRequest$TypedLinkFacet": "

Identifies the typed link facet that is associated with the typed link.

", + "BatchAttachTypedLink$TypedLinkFacet": "

Identifies the typed link facet that is associated with the typed link.

", + "BatchListIncomingTypedLinks$FilterTypedLink": "

Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls.

", + "BatchListOutgoingTypedLinks$FilterTypedLink": "

Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls.

", "ListIncomingTypedLinksRequest$FilterTypedLink": "

Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls.

", "ListOutgoingTypedLinksRequest$FilterTypedLink": "

Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls.

", "TypedLinkSpecifier$TypedLinkFacet": "

Identifies the typed link facet that is associated with the typed link.

" @@ -1823,6 +2081,8 @@ "base": "

Contains all the information that is used to uniquely identify a typed link. The parameters discussed in this topic are used to uniquely specify the typed link being operated on. The AttachTypedLink API returns a typed link specifier while the DetachTypedLink API accepts one as input. Similarly, the ListIncomingTypedLinks and ListOutgoingTypedLinks API operations provide typed link specifiers as output. You can also construct a typed link specifier from scratch.

", "refs": { "AttachTypedLinkResponse$TypedLinkSpecifier": "

Returns a typed link specifier as output.

", + "BatchAttachTypedLinkResponse$TypedLinkSpecifier": "

Returns a typed link specifier as output.

", + "BatchDetachTypedLink$TypedLinkSpecifier": "

Used to accept a typed link specifier as input.

", "DetachTypedLinkRequest$TypedLinkSpecifier": "

Used to accept a typed link specifier as input.

", "TypedLinkSpecifierList$member": null } @@ -1830,6 +2090,8 @@ "TypedLinkSpecifierList": { "base": null, "refs": { + "BatchListIncomingTypedLinksResponse$LinkSpecifiers": "

Returns one or more typed link specifiers as output.

", + "BatchListOutgoingTypedLinksResponse$TypedLinkSpecifiers": "

Returns a typed link specifier as output.

", "ListIncomingTypedLinksResponse$LinkSpecifiers": "

Returns one or more typed link specifiers as output.

", "ListOutgoingTypedLinksResponse$TypedLinkSpecifiers": "

Returns a typed link specifier as output.

" } diff --git a/models/apis/cloudformation/2010-05-15/api-2.json b/models/apis/cloudformation/2010-05-15/api-2.json index 517a91e0959..b3e7d8ee059 100644 --- a/models/apis/cloudformation/2010-05-15/api-2.json +++ b/models/apis/cloudformation/2010-05-15/api-2.json @@ -5,6 +5,7 @@ "endpointPrefix":"cloudformation", "protocol":"query", "serviceFullName":"AWS CloudFormation", + "serviceId":"CloudFormation", "signatureVersion":"v4", "uid":"cloudformation-2010-05-15", "xmlNamespace":"http://cloudformation.amazonaws.com/doc/2010-05-15/" @@ -71,6 +72,43 @@ {"shape":"InsufficientCapabilitiesException"} ] }, + "CreateStackInstances":{ + "name":"CreateStackInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateStackInstancesInput"}, + "output":{ + "shape":"CreateStackInstancesOutput", + "resultWrapper":"CreateStackInstancesResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"}, + {"shape":"OperationInProgressException"}, + {"shape":"OperationIdAlreadyExistsException"}, + {"shape":"StaleRequestException"}, + {"shape":"InvalidOperationException"}, + {"shape":"LimitExceededException"} + ] + }, + "CreateStackSet":{ + "name":"CreateStackSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateStackSetInput"}, + "output":{ + "shape":"CreateStackSetOutput", + "resultWrapper":"CreateStackSetResult" + }, + "errors":[ + {"shape":"NameAlreadyExistsException"}, + {"shape":"CreatedButModifiedException"}, + {"shape":"LimitExceededException"} + ] + }, "DeleteChangeSet":{ "name":"DeleteChangeSet", "http":{ @@ -97,6 +135,41 @@ {"shape":"TokenAlreadyExistsException"} ] }, + "DeleteStackInstances":{ + "name":"DeleteStackInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteStackInstancesInput"}, + "output":{ + "shape":"DeleteStackInstancesOutput", + "resultWrapper":"DeleteStackInstancesResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"}, + {"shape":"OperationInProgressException"}, + {"shape":"OperationIdAlreadyExistsException"}, + {"shape":"StaleRequestException"}, + {"shape":"InvalidOperationException"} + ] + }, + "DeleteStackSet":{ + "name":"DeleteStackSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteStackSetInput"}, + "output":{ + "shape":"DeleteStackSetOutput", + "resultWrapper":"DeleteStackSetResult" + }, + "errors":[ + {"shape":"StackSetNotEmptyException"}, + {"shape":"OperationInProgressException"} + ] + }, "DescribeAccountLimits":{ "name":"DescribeAccountLimits", "http":{ @@ -136,6 +209,22 @@ "resultWrapper":"DescribeStackEventsResult" } }, + "DescribeStackInstance":{ + "name":"DescribeStackInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStackInstanceInput"}, + "output":{ + "shape":"DescribeStackInstanceOutput", + "resultWrapper":"DescribeStackInstanceResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"}, + {"shape":"StackInstanceNotFoundException"} + ] + }, "DescribeStackResource":{ "name":"DescribeStackResource", "http":{ @@ -160,6 +249,37 @@ "resultWrapper":"DescribeStackResourcesResult" } }, + "DescribeStackSet":{ + "name":"DescribeStackSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStackSetInput"}, + "output":{ + "shape":"DescribeStackSetOutput", + "resultWrapper":"DescribeStackSetResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"} + ] + }, + "DescribeStackSetOperation":{ + "name":"DescribeStackSetOperation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStackSetOperationInput"}, + "output":{ + "shape":"DescribeStackSetOperationOutput", + "resultWrapper":"DescribeStackSetOperationResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"}, + {"shape":"OperationNotFoundException"} + ] + }, "DescribeStacks":{ "name":"DescribeStacks", "http":{ @@ -239,7 +359,10 @@ "output":{ "shape":"GetTemplateSummaryOutput", "resultWrapper":"GetTemplateSummaryResult" - } + }, + "errors":[ + {"shape":"StackSetNotFoundException"} + ] }, "ListChangeSets":{ "name":"ListChangeSets", @@ -277,6 +400,21 @@ "resultWrapper":"ListImportsResult" } }, + "ListStackInstances":{ + "name":"ListStackInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStackInstancesInput"}, + "output":{ + "shape":"ListStackInstancesOutput", + "resultWrapper":"ListStackInstancesResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"} + ] + }, "ListStackResources":{ "name":"ListStackResources", "http":{ @@ -289,6 +427,49 @@ "resultWrapper":"ListStackResourcesResult" } }, + "ListStackSetOperationResults":{ + "name":"ListStackSetOperationResults", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStackSetOperationResultsInput"}, + "output":{ + "shape":"ListStackSetOperationResultsOutput", + "resultWrapper":"ListStackSetOperationResultsResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"}, + {"shape":"OperationNotFoundException"} + ] + }, + "ListStackSetOperations":{ + "name":"ListStackSetOperations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStackSetOperationsInput"}, + "output":{ + "shape":"ListStackSetOperationsOutput", + "resultWrapper":"ListStackSetOperationsResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"} + ] + }, + "ListStackSets":{ + "name":"ListStackSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStackSetsInput"}, + "output":{ + "shape":"ListStackSetsOutput", + "resultWrapper":"ListStackSetsResult" + } + }, "ListStacks":{ "name":"ListStacks", "http":{ @@ -317,6 +498,23 @@ }, "input":{"shape":"SignalResourceInput"} }, + "StopStackSetOperation":{ + "name":"StopStackSetOperation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopStackSetOperationInput"}, + "output":{ + "shape":"StopStackSetOperationOutput", + "resultWrapper":"StopStackSetOperationResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"}, + {"shape":"OperationNotFoundException"}, + {"shape":"InvalidOperationException"} + ] + }, "UpdateStack":{ "name":"UpdateStack", "http":{ @@ -333,6 +531,57 @@ {"shape":"TokenAlreadyExistsException"} ] }, + "UpdateStackInstances":{ + "name":"UpdateStackInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateStackInstancesInput"}, + "output":{ + "shape":"UpdateStackInstancesOutput", + "resultWrapper":"UpdateStackInstancesResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"}, + {"shape":"StackInstanceNotFoundException"}, + {"shape":"OperationInProgressException"}, + {"shape":"OperationIdAlreadyExistsException"}, + {"shape":"StaleRequestException"}, + {"shape":"InvalidOperationException"} + ] + }, + "UpdateStackSet":{ + "name":"UpdateStackSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateStackSetInput"}, + "output":{ + "shape":"UpdateStackSetOutput", + "resultWrapper":"UpdateStackSetResult" + }, + "errors":[ + {"shape":"StackSetNotFoundException"}, + {"shape":"OperationInProgressException"}, + {"shape":"OperationIdAlreadyExistsException"}, + {"shape":"StaleRequestException"}, + {"shape":"InvalidOperationException"} + ] + }, + "UpdateTerminationProtection":{ + "name":"UpdateTerminationProtection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTerminationProtectionInput"}, + "output":{ + "shape":"UpdateTerminationProtectionOutput", + "resultWrapper":"UpdateTerminationProtectionResult" + } + }, "ValidateTemplate":{ "name":"ValidateTemplate", "http":{ @@ -347,6 +596,26 @@ } }, "shapes":{ + "Account":{ + "type":"string", + "pattern":"[0-9]{12}" + }, + "AccountGateResult":{ + "type":"structure", + "members":{ + "Status":{"shape":"AccountGateStatus"}, + "StatusReason":{"shape":"AccountGateStatusReason"} + } + }, + "AccountGateStatus":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "FAILED", + "SKIPPED" + ] + }, + "AccountGateStatusReason":{"type":"string"}, "AccountLimit":{ "type":"structure", "members":{ @@ -358,6 +627,10 @@ "type":"list", "member":{"shape":"AccountLimit"} }, + "AccountList":{ + "type":"list", + "member":{"shape":"Account"} + }, "AllowedValue":{"type":"string"}, "AllowedValues":{ "type":"list", @@ -374,6 +647,7 @@ }, "exception":true }, + "Arn":{"type":"string"}, "CancelUpdateStackInput":{ "type":"structure", "required":["StackName"], @@ -496,7 +770,7 @@ "type":"string", "max":128, "min":1, - "pattern":"[a-zA-Z][-a-zA-Z0-9]*" + "pattern":"[a-zA-Z0-9][-a-zA-Z0-9]*" }, "ClientToken":{ "type":"string", @@ -533,6 +807,7 @@ "Capabilities":{"shape":"Capabilities"}, "ResourceTypes":{"shape":"ResourceTypes"}, "RoleARN":{"shape":"RoleARN"}, + "RollbackConfiguration":{"shape":"RollbackConfiguration"}, "NotificationARNs":{"shape":"NotificationARNs"}, "Tags":{"shape":"Tags"}, "ChangeSetName":{"shape":"ChangeSetName"}, @@ -557,6 +832,7 @@ "TemplateURL":{"shape":"TemplateURL"}, "Parameters":{"shape":"Parameters"}, "DisableRollback":{"shape":"DisableRollback"}, + "RollbackConfiguration":{"shape":"RollbackConfiguration"}, "TimeoutInMinutes":{"shape":"TimeoutMinutes"}, "NotificationARNs":{"shape":"NotificationARNs"}, "Capabilities":{"shape":"Capabilities"}, @@ -566,7 +842,33 @@ "StackPolicyBody":{"shape":"StackPolicyBody"}, "StackPolicyURL":{"shape":"StackPolicyURL"}, "Tags":{"shape":"Tags"}, - "ClientRequestToken":{"shape":"ClientRequestToken"} + "ClientRequestToken":{"shape":"ClientRequestToken"}, + "EnableTerminationProtection":{"shape":"EnableTerminationProtection"} + } + }, + "CreateStackInstancesInput":{ + "type":"structure", + "required":[ + "StackSetName", + "Accounts", + "Regions" + ], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "Accounts":{"shape":"AccountList"}, + "Regions":{"shape":"RegionList"}, + "ParameterOverrides":{"shape":"Parameters"}, + "OperationPreferences":{"shape":"StackSetOperationPreferences"}, + "OperationId":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "CreateStackInstancesOutput":{ + "type":"structure", + "members":{ + "OperationId":{"shape":"ClientRequestToken"} } }, "CreateStackOutput":{ @@ -575,6 +877,40 @@ "StackId":{"shape":"StackId"} } }, + "CreateStackSetInput":{ + "type":"structure", + "required":["StackSetName"], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "Description":{"shape":"Description"}, + "TemplateBody":{"shape":"TemplateBody"}, + "TemplateURL":{"shape":"TemplateURL"}, + "Parameters":{"shape":"Parameters"}, + "Capabilities":{"shape":"Capabilities"}, + "Tags":{"shape":"Tags"}, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "CreateStackSetOutput":{ + "type":"structure", + "members":{ + "StackSetId":{"shape":"StackSetId"} + } + }, + "CreatedButModifiedException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CreatedButModifiedException", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, "CreationTime":{"type":"timestamp"}, "DeleteChangeSetInput":{ "type":"structure", @@ -599,6 +935,44 @@ "ClientRequestToken":{"shape":"ClientRequestToken"} } }, + "DeleteStackInstancesInput":{ + "type":"structure", + "required":[ + "StackSetName", + "Accounts", + "Regions", + "RetainStacks" + ], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "Accounts":{"shape":"AccountList"}, + "Regions":{"shape":"RegionList"}, + "OperationPreferences":{"shape":"StackSetOperationPreferences"}, + "RetainStacks":{"shape":"RetainStacks"}, + "OperationId":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "DeleteStackInstancesOutput":{ + "type":"structure", + "members":{ + "OperationId":{"shape":"ClientRequestToken"} + } + }, + "DeleteStackSetInput":{ + "type":"structure", + "required":["StackSetName"], + "members":{ + "StackSetName":{"shape":"StackSetName"} + } + }, + "DeleteStackSetOutput":{ + "type":"structure", + "members":{ + } + }, "DeletionTime":{"type":"timestamp"}, "DescribeAccountLimitsInput":{ "type":"structure", @@ -636,6 +1010,7 @@ "Status":{"shape":"ChangeSetStatus"}, "StatusReason":{"shape":"ChangeSetStatusReason"}, "NotificationARNs":{"shape":"NotificationARNs"}, + "RollbackConfiguration":{"shape":"RollbackConfiguration"}, "Capabilities":{"shape":"Capabilities"}, "Tags":{"shape":"Tags"}, "Changes":{"shape":"Changes"}, @@ -656,6 +1031,25 @@ "NextToken":{"shape":"NextToken"} } }, + "DescribeStackInstanceInput":{ + "type":"structure", + "required":[ + "StackSetName", + "StackInstanceAccount", + "StackInstanceRegion" + ], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "StackInstanceAccount":{"shape":"Account"}, + "StackInstanceRegion":{"shape":"Region"} + } + }, + "DescribeStackInstanceOutput":{ + "type":"structure", + "members":{ + "StackInstance":{"shape":"StackInstance"} + } + }, "DescribeStackResourceInput":{ "type":"structure", "required":[ @@ -687,6 +1081,36 @@ "StackResources":{"shape":"StackResources"} } }, + "DescribeStackSetInput":{ + "type":"structure", + "required":["StackSetName"], + "members":{ + "StackSetName":{"shape":"StackSetName"} + } + }, + "DescribeStackSetOperationInput":{ + "type":"structure", + "required":[ + "StackSetName", + "OperationId" + ], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "OperationId":{"shape":"ClientRequestToken"} + } + }, + "DescribeStackSetOperationOutput":{ + "type":"structure", + "members":{ + "StackSetOperation":{"shape":"StackSetOperation"} + } + }, + "DescribeStackSetOutput":{ + "type":"structure", + "members":{ + "StackSet":{"shape":"StackSet"} + } + }, "DescribeStacksInput":{ "type":"structure", "members":{ @@ -707,6 +1131,7 @@ "min":1 }, "DisableRollback":{"type":"boolean"}, + "EnableTerminationProtection":{"type":"boolean"}, "EstimateTemplateCostInput":{ "type":"structure", "members":{ @@ -768,6 +1193,15 @@ "type":"list", "member":{"shape":"Export"} }, + "FailureToleranceCount":{ + "type":"integer", + "min":0 + }, + "FailureTolerancePercentage":{ + "type":"integer", + "max":100, + "min":0 + }, "GetStackPolicyInput":{ "type":"structure", "required":["StackName"], @@ -801,7 +1235,8 @@ "members":{ "TemplateBody":{"shape":"TemplateBody"}, "TemplateURL":{"shape":"TemplateURL"}, - "StackName":{"shape":"StackNameOrId"} + "StackName":{"shape":"StackNameOrId"}, + "StackSetName":{"shape":"StackSetNameOrId"} } }, "GetTemplateSummaryOutput":{ @@ -843,6 +1278,17 @@ }, "exception":true }, + "InvalidOperationException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidOperationException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "LastUpdatedTime":{"type":"timestamp"}, "LimitExceededException":{ "type":"structure", @@ -900,6 +1346,24 @@ "NextToken":{"shape":"NextToken"} } }, + "ListStackInstancesInput":{ + "type":"structure", + "required":["StackSetName"], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "StackInstanceAccount":{"shape":"Account"}, + "StackInstanceRegion":{"shape":"Region"} + } + }, + "ListStackInstancesOutput":{ + "type":"structure", + "members":{ + "Summaries":{"shape":"StackInstanceSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListStackResourcesInput":{ "type":"structure", "required":["StackName"], @@ -915,9 +1379,60 @@ "NextToken":{"shape":"NextToken"} } }, - "ListStacksInput":{ + "ListStackSetOperationResultsInput":{ "type":"structure", - "members":{ + "required":[ + "StackSetName", + "OperationId" + ], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "OperationId":{"shape":"ClientRequestToken"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListStackSetOperationResultsOutput":{ + "type":"structure", + "members":{ + "Summaries":{"shape":"StackSetOperationResultSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListStackSetOperationsInput":{ + "type":"structure", + "required":["StackSetName"], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListStackSetOperationsOutput":{ + "type":"structure", + "members":{ + "Summaries":{"shape":"StackSetOperationSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListStackSetsInput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "Status":{"shape":"StackSetStatus"} + } + }, + "ListStackSetsOutput":{ + "type":"structure", + "members":{ + "Summaries":{"shape":"StackSetSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListStacksInput":{ + "type":"structure", + "members":{ "NextToken":{"shape":"NextToken"}, "StackStatusFilter":{"shape":"StackStatusFilter"} } @@ -930,7 +1445,37 @@ } }, "LogicalResourceId":{"type":"string"}, + "MaxConcurrentCount":{ + "type":"integer", + "min":1 + }, + "MaxConcurrentPercentage":{ + "type":"integer", + "max":100, + "min":1 + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, "Metadata":{"type":"string"}, + "MonitoringTimeInMinutes":{ + "type":"integer", + "max":180, + "min":0 + }, + "NameAlreadyExistsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"NameAlreadyExistsException", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, "NextToken":{ "type":"string", "max":1024, @@ -951,12 +1496,46 @@ "DELETE" ] }, + "OperationIdAlreadyExistsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"OperationIdAlreadyExistsException", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "OperationInProgressException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"OperationInProgressException", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "OperationNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"OperationNotFoundException", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, "Output":{ "type":"structure", "members":{ "OutputKey":{"shape":"OutputKey"}, "OutputValue":{"shape":"OutputValue"}, - "Description":{"shape":"Description"} + "Description":{"shape":"Description"}, + "ExportName":{"shape":"ExportName"} } }, "OutputKey":{"type":"string"}, @@ -970,7 +1549,8 @@ "members":{ "ParameterKey":{"shape":"ParameterKey"}, "ParameterValue":{"shape":"ParameterValue"}, - "UsePreviousValue":{"shape":"UsePreviousValue"} + "UsePreviousValue":{"shape":"UsePreviousValue"}, + "ResolvedValue":{"shape":"ParameterValue"} } }, "ParameterConstraints":{ @@ -1003,6 +1583,12 @@ }, "PhysicalResourceId":{"type":"string"}, "PropertyName":{"type":"string"}, + "Reason":{"type":"string"}, + "Region":{"type":"string"}, + "RegionList":{ + "type":"list", + "member":{"shape":"Region"} + }, "Replacement":{ "type":"string", "enum":[ @@ -1113,11 +1699,36 @@ "type":"list", "member":{"shape":"LogicalResourceId"} }, + "RetainStacks":{"type":"boolean"}, + "RetainStacksNullable":{"type":"boolean"}, "RoleARN":{ "type":"string", "max":2048, "min":20 }, + "RollbackConfiguration":{ + "type":"structure", + "members":{ + "RollbackTriggers":{"shape":"RollbackTriggers"}, + "MonitoringTimeInMinutes":{"shape":"MonitoringTimeInMinutes"} + } + }, + "RollbackTrigger":{ + "type":"structure", + "required":[ + "Arn", + "Type" + ], + "members":{ + "Arn":{"shape":"Arn"}, + "Type":{"shape":"Type"} + } + }, + "RollbackTriggers":{ + "type":"list", + "member":{"shape":"RollbackTrigger"}, + "max":5 + }, "Scope":{ "type":"list", "member":{"shape":"ResourceAttribute"} @@ -1160,7 +1771,9 @@ "Description":{"shape":"Description"}, "Parameters":{"shape":"Parameters"}, "CreationTime":{"shape":"CreationTime"}, + "DeletionTime":{"shape":"DeletionTime"}, "LastUpdatedTime":{"shape":"LastUpdatedTime"}, + "RollbackConfiguration":{"shape":"RollbackConfiguration"}, "StackStatus":{"shape":"StackStatus"}, "StackStatusReason":{"shape":"StackStatusReason"}, "DisableRollback":{"shape":"DisableRollback"}, @@ -1169,7 +1782,10 @@ "Capabilities":{"shape":"Capabilities"}, "Outputs":{"shape":"Outputs"}, "RoleARN":{"shape":"RoleARN"}, - "Tags":{"shape":"Tags"} + "Tags":{"shape":"Tags"}, + "EnableTerminationProtection":{"shape":"EnableTerminationProtection"}, + "ParentId":{"shape":"StackId"}, + "RootId":{"shape":"StackId"} } }, "StackEvent":{ @@ -1199,6 +1815,52 @@ "member":{"shape":"StackEvent"} }, "StackId":{"type":"string"}, + "StackInstance":{ + "type":"structure", + "members":{ + "StackSetId":{"shape":"StackSetId"}, + "Region":{"shape":"Region"}, + "Account":{"shape":"Account"}, + "StackId":{"shape":"StackId"}, + "ParameterOverrides":{"shape":"Parameters"}, + "Status":{"shape":"StackInstanceStatus"}, + "StatusReason":{"shape":"Reason"} + } + }, + "StackInstanceNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"StackInstanceNotFoundException", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "StackInstanceStatus":{ + "type":"string", + "enum":[ + "CURRENT", + "OUTDATED", + "INOPERABLE" + ] + }, + "StackInstanceSummaries":{ + "type":"list", + "member":{"shape":"StackInstanceSummary"} + }, + "StackInstanceSummary":{ + "type":"structure", + "members":{ + "StackSetId":{"shape":"StackSetId"}, + "Region":{"shape":"Region"}, + "Account":{"shape":"Account"}, + "StackId":{"shape":"StackId"}, + "Status":{"shape":"StackInstanceStatus"}, + "StatusReason":{"shape":"Reason"} + } + }, "StackName":{"type":"string"}, "StackNameOrId":{ "type":"string", @@ -1291,6 +1953,146 @@ "type":"list", "member":{"shape":"StackResource"} }, + "StackSet":{ + "type":"structure", + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "StackSetId":{"shape":"StackSetId"}, + "Description":{"shape":"Description"}, + "Status":{"shape":"StackSetStatus"}, + "TemplateBody":{"shape":"TemplateBody"}, + "Parameters":{"shape":"Parameters"}, + "Capabilities":{"shape":"Capabilities"}, + "Tags":{"shape":"Tags"} + } + }, + "StackSetId":{"type":"string"}, + "StackSetName":{"type":"string"}, + "StackSetNameOrId":{ + "type":"string", + "pattern":"[a-zA-Z][-a-zA-Z0-9]*(?::[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12})?" + }, + "StackSetNotEmptyException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"StackSetNotEmptyException", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "StackSetNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"StackSetNotFoundException", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "StackSetOperation":{ + "type":"structure", + "members":{ + "OperationId":{"shape":"ClientRequestToken"}, + "StackSetId":{"shape":"StackSetId"}, + "Action":{"shape":"StackSetOperationAction"}, + "Status":{"shape":"StackSetOperationStatus"}, + "OperationPreferences":{"shape":"StackSetOperationPreferences"}, + "RetainStacks":{"shape":"RetainStacksNullable"}, + "CreationTimestamp":{"shape":"Timestamp"}, + "EndTimestamp":{"shape":"Timestamp"} + } + }, + "StackSetOperationAction":{ + "type":"string", + "enum":[ + "CREATE", + "UPDATE", + "DELETE" + ] + }, + "StackSetOperationPreferences":{ + "type":"structure", + "members":{ + "RegionOrder":{"shape":"RegionList"}, + "FailureToleranceCount":{"shape":"FailureToleranceCount"}, + "FailureTolerancePercentage":{"shape":"FailureTolerancePercentage"}, + "MaxConcurrentCount":{"shape":"MaxConcurrentCount"}, + "MaxConcurrentPercentage":{"shape":"MaxConcurrentPercentage"} + } + }, + "StackSetOperationResultStatus":{ + "type":"string", + "enum":[ + "PENDING", + "RUNNING", + "SUCCEEDED", + "FAILED", + "CANCELLED" + ] + }, + "StackSetOperationResultSummaries":{ + "type":"list", + "member":{"shape":"StackSetOperationResultSummary"} + }, + "StackSetOperationResultSummary":{ + "type":"structure", + "members":{ + "Account":{"shape":"Account"}, + "Region":{"shape":"Region"}, + "Status":{"shape":"StackSetOperationResultStatus"}, + "StatusReason":{"shape":"Reason"}, + "AccountGateResult":{"shape":"AccountGateResult"} + } + }, + "StackSetOperationStatus":{ + "type":"string", + "enum":[ + "RUNNING", + "SUCCEEDED", + "FAILED", + "STOPPING", + "STOPPED" + ] + }, + "StackSetOperationSummaries":{ + "type":"list", + "member":{"shape":"StackSetOperationSummary"} + }, + "StackSetOperationSummary":{ + "type":"structure", + "members":{ + "OperationId":{"shape":"ClientRequestToken"}, + "Action":{"shape":"StackSetOperationAction"}, + "Status":{"shape":"StackSetOperationStatus"}, + "CreationTimestamp":{"shape":"Timestamp"}, + "EndTimestamp":{"shape":"Timestamp"} + } + }, + "StackSetStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "DELETED" + ] + }, + "StackSetSummaries":{ + "type":"list", + "member":{"shape":"StackSetSummary"} + }, + "StackSetSummary":{ + "type":"structure", + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "StackSetId":{"shape":"StackSetId"}, + "Description":{"shape":"Description"}, + "Status":{"shape":"StackSetStatus"} + } + }, "StackStatus":{ "type":"string", "enum":[ @@ -1337,7 +2139,9 @@ "LastUpdatedTime":{"shape":"LastUpdatedTime"}, "DeletionTime":{"shape":"DeletionTime"}, "StackStatus":{"shape":"StackStatus"}, - "StackStatusReason":{"shape":"StackStatusReason"} + "StackStatusReason":{"shape":"StackStatusReason"}, + "ParentId":{"shape":"StackId"}, + "RootId":{"shape":"StackId"} } }, "Stacks":{ @@ -1348,18 +2152,58 @@ "type":"list", "member":{"shape":"TemplateStage"} }, + "StaleRequestException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"StaleRequestException", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "StopStackSetOperationInput":{ + "type":"structure", + "required":[ + "StackSetName", + "OperationId" + ], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "OperationId":{"shape":"ClientRequestToken"} + } + }, + "StopStackSetOperationOutput":{ + "type":"structure", + "members":{ + } + }, "Tag":{ "type":"structure", + "required":[ + "Key", + "Value" + ], "members":{ "Key":{"shape":"TagKey"}, "Value":{"shape":"TagValue"} } }, - "TagKey":{"type":"string"}, - "TagValue":{"type":"string"}, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagValue":{ + "type":"string", + "max":256, + "min":1 + }, "Tags":{ "type":"list", - "member":{"shape":"Tag"} + "member":{"shape":"Tag"}, + "max":50 }, "TemplateBody":{ "type":"string", @@ -1412,6 +2256,7 @@ "type":"list", "member":{"shape":"TransformName"} }, + "Type":{"type":"string"}, "UpdateStackInput":{ "type":"structure", "required":["StackName"], @@ -1426,6 +2271,7 @@ "Capabilities":{"shape":"Capabilities"}, "ResourceTypes":{"shape":"ResourceTypes"}, "RoleARN":{"shape":"RoleARN"}, + "RollbackConfiguration":{"shape":"RollbackConfiguration"}, "StackPolicyBody":{"shape":"StackPolicyBody"}, "StackPolicyURL":{"shape":"StackPolicyURL"}, "NotificationARNs":{"shape":"NotificationARNs"}, @@ -1433,12 +2279,79 @@ "ClientRequestToken":{"shape":"ClientRequestToken"} } }, + "UpdateStackInstancesInput":{ + "type":"structure", + "required":[ + "StackSetName", + "Accounts", + "Regions" + ], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "Accounts":{"shape":"AccountList"}, + "Regions":{"shape":"RegionList"}, + "ParameterOverrides":{"shape":"Parameters"}, + "OperationPreferences":{"shape":"StackSetOperationPreferences"}, + "OperationId":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "UpdateStackInstancesOutput":{ + "type":"structure", + "members":{ + "OperationId":{"shape":"ClientRequestToken"} + } + }, "UpdateStackOutput":{ "type":"structure", "members":{ "StackId":{"shape":"StackId"} } }, + "UpdateStackSetInput":{ + "type":"structure", + "required":["StackSetName"], + "members":{ + "StackSetName":{"shape":"StackSetName"}, + "Description":{"shape":"Description"}, + "TemplateBody":{"shape":"TemplateBody"}, + "TemplateURL":{"shape":"TemplateURL"}, + "UsePreviousTemplate":{"shape":"UsePreviousTemplate"}, + "Parameters":{"shape":"Parameters"}, + "Capabilities":{"shape":"Capabilities"}, + "Tags":{"shape":"Tags"}, + "OperationPreferences":{"shape":"StackSetOperationPreferences"}, + "OperationId":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "UpdateStackSetOutput":{ + "type":"structure", + "members":{ + "OperationId":{"shape":"ClientRequestToken"} + } + }, + "UpdateTerminationProtectionInput":{ + "type":"structure", + "required":[ + "EnableTerminationProtection", + "StackName" + ], + "members":{ + "EnableTerminationProtection":{"shape":"EnableTerminationProtection"}, + "StackName":{"shape":"StackNameOrId"} + } + }, + "UpdateTerminationProtectionOutput":{ + "type":"structure", + "members":{ + "StackId":{"shape":"StackId"} + } + }, "Url":{"type":"string"}, "UsePreviousTemplate":{"type":"boolean"}, "UsePreviousValue":{"type":"boolean"}, diff --git a/models/apis/cloudformation/2010-05-15/docs-2.json b/models/apis/cloudformation/2010-05-15/docs-2.json index 18072cbf72f..11e042815cb 100644 --- a/models/apis/cloudformation/2010-05-15/docs-2.json +++ b/models/apis/cloudformation/2010-05-15/docs-2.json @@ -6,30 +6,74 @@ "ContinueUpdateRollback": "

For a specified stack that is in the UPDATE_ROLLBACK_FAILED state, continues rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can manually fix the error and continue the rollback. By continuing the rollback, you can return your stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try to update the stack again.

A stack goes into the UPDATE_ROLLBACK_FAILED state when AWS CloudFormation cannot roll back all changes after a failed stack update. For example, you might have a stack that is rolling back to an old database instance that was deleted outside of AWS CloudFormation. Because AWS CloudFormation doesn't know the database was deleted, it assumes that the database instance still exists and attempts to roll back to it, causing the update rollback to fail.

", "CreateChangeSet": "

Creates a list of changes that will be applied to a stack so that you can review the changes before executing them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for a stack that doesn't exist, the change set shows all of the resources that AWS CloudFormation will create. If you create a change set for an existing stack, AWS CloudFormation compares the stack's information with the information that you submit in the change set and lists the differences. Use change sets to understand which resources AWS CloudFormation will create or change, and how it will change resources in an existing stack, before you create or update a stack.

To create a change set for a stack that doesn't exist, for the ChangeSetType parameter, specify CREATE. To create a change set for an existing stack, specify UPDATE for the ChangeSetType parameter. After the CreateChangeSet call successfully completes, AWS CloudFormation starts creating the change set. To check the status of the change set or to review it, use the DescribeChangeSet action.

When you are satisfied with the changes the change set will make, execute the change set by using the ExecuteChangeSet action. AWS CloudFormation doesn't make changes until you execute the change set.

", "CreateStack": "

Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. You can check the status of the stack via the DescribeStacks API.

", + "CreateStackInstances": "

Creates stack instances for the specified accounts, within the specified regions. A stack instance refers to a stack in a specific account and region. Accounts and Regions are required parameters—you must specify at least one account and one region.

", + "CreateStackSet": "

Creates a stack set.

", "DeleteChangeSet": "

Deletes the specified change set. Deleting change sets ensures that no one executes the wrong change set.

If the call successfully completes, AWS CloudFormation successfully deleted the change set.

", "DeleteStack": "

Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not show up in the DescribeStacks API if the deletion has been completed successfully.

", + "DeleteStackInstances": "

Deletes stack instances for the specified accounts, in the specified regions.

", + "DeleteStackSet": "

Deletes a stack set. Before you can delete a stack set, all of its member stack instances must be deleted. For more information about how to do this, see DeleteStackInstances.

", "DescribeAccountLimits": "

Retrieves your account's AWS CloudFormation limits, such as the maximum number of stacks that you can create in your account.

", "DescribeChangeSet": "

Returns the inputs for the change set and a list of changes that AWS CloudFormation will make if you execute the change set. For more information, see Updating Stacks Using Change Sets in the AWS CloudFormation User Guide.

", "DescribeStackEvents": "

Returns all stack related events for a specified stack in reverse chronological order. For more information about a stack's event history, go to Stacks in the AWS CloudFormation User Guide.

You can list events for stacks that have failed to create or have been deleted by specifying the unique stack identifier (stack ID).

", + "DescribeStackInstance": "

Returns the stack instance that's associated with the specified stack set, AWS account, and region.

For a list of stack instances that are associated with a specific stack set, use ListStackInstances.

", "DescribeStackResource": "

Returns a description of the specified resource in the specified stack.

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

", "DescribeStackResources": "

Returns AWS resource descriptions for running and deleted stacks. If StackName is specified, all the associated resources that are part of the stack are returned. If PhysicalResourceId is specified, the associated resources of the stack that the resource belongs to are returned.

Only the first 100 resources will be returned. If your stack has more resources than this, you should use ListStackResources instead.

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

You must specify either StackName or PhysicalResourceId, but not both. In addition, you can specify LogicalResourceId to filter the returned result. For more information about resources, the LogicalResourceId and PhysicalResourceId, go to the AWS CloudFormation User Guide.

A ValidationError is returned if you specify both StackName and PhysicalResourceId in the same request.

", + "DescribeStackSet": "

Returns the description of the specified stack set.

", + "DescribeStackSetOperation": "

Returns the description of the specified stack set operation.

", "DescribeStacks": "

Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created.

If the stack does not exist, an AmazonCloudFormationException is returned.

", "EstimateTemplateCost": "

Returns the estimated monthly cost of a template. The return value is an AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template.

", "ExecuteChangeSet": "

Updates a stack using the input information that was provided when the specified change set was created. After the call successfully completes, AWS CloudFormation starts updating the stack. Use the DescribeStacks action to view the status of the update.

When you execute a change set, AWS CloudFormation deletes all other change sets associated with the stack because they aren't valid for the updated stack.

If a stack policy is associated with the stack, AWS CloudFormation enforces the policy during the update. You can't specify a temporary stack policy that overrides the current policy.

", "GetStackPolicy": "

Returns the stack policy for a specified stack. If a stack doesn't have a policy, a null value is returned.

", "GetTemplate": "

Returns the template body for a specified stack. You can get the template for running or deleted stacks.

For deleted stacks, GetTemplate returns the template for up to 90 days after the stack has been deleted.

If the template does not exist, a ValidationError is returned.

", - "GetTemplateSummary": "

Returns information about a new or existing template. The GetTemplateSummary action is useful for viewing parameter information, such as default parameter values and parameter types, before you create or update a stack.

You can use the GetTemplateSummary action when you submit a template, or you can get template information for a running or deleted stack.

For deleted stacks, GetTemplateSummary returns the template information for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned.

", + "GetTemplateSummary": "

Returns information about a new or existing template. The GetTemplateSummary action is useful for viewing parameter information, such as default parameter values and parameter types, before you create or update a stack or stack set.

You can use the GetTemplateSummary action when you submit a template, or you can get template information for a stack set, or a running or deleted stack.

For deleted stacks, GetTemplateSummary returns the template information for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned.

", "ListChangeSets": "

Returns the ID and status of each active change set for a stack. For example, AWS CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING state.

", "ListExports": "

Lists all exported output values in the account and region in which you call this action. Use this action to see the exported output values that you can import into other stacks. To import values, use the Fn::ImportValue function.

For more information, see AWS CloudFormation Export Stack Output Values.

", "ListImports": "

Lists all stacks that are importing an exported output value. To modify or remove an exported output value, first use this action to see which stacks are using it. To see the exported output values in your account, see ListExports.

For more information about importing an exported output value, see the Fn::ImportValue function.

", + "ListStackInstances": "

Returns summary information about stack instances that are associated with the specified stack set. You can filter for stack instances that are associated with a specific AWS account name or region.

", "ListStackResources": "

Returns descriptions of all resources of the specified stack.

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

", + "ListStackSetOperationResults": "

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

", + "ListStackSetOperations": "

Returns summary information about operations performed on a stack set.

", + "ListStackSets": "

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

", "ListStacks": "

Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks is returned (including existing stacks and stacks that have been deleted).

", "SetStackPolicy": "

Sets a stack policy for a specified stack.

", "SignalResource": "

Sends a signal to the specified resource with a success or failure status. You can use the SignalResource API in conjunction with a creation policy or update policy. AWS CloudFormation doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout period is exceeded. The SignalResource API is useful in cases where you want to send signals from anywhere other than an Amazon EC2 instance.

", + "StopStackSetOperation": "

Stops an in-progress operation on a stack set and its associated stack instances.

", "UpdateStack": "

Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack via the DescribeStacks action.

To get a copy of the template for an existing stack, you can use the GetTemplate action.

For more information about creating an update template, updating a stack, and monitoring the progress of the update, see Updating a Stack.

", + "UpdateStackInstances": "

Updates the parameter values for stack instances for the specified accounts, within the specified regions. A stack instance refers to a stack in a specific account and region.

You can only update stack instances in regions and accounts where they already exist; to create additional stack instances, use CreateStackInstances.

During stack set updates, any parameters overridden for a stack instance are not updated, but retain their overridden value.

You can only update the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using UpdateStackInstances.

", + "UpdateStackSet": "

Updates the stack set and all associated stack instances.

Even if the stack set operation created by updating the stack set fails (completely or partially, below or above a specified failure tolerance), the stack set is updated with your changes. Subsequent CreateStackInstances calls on the specified stack set use the updated stack set.

", + "UpdateTerminationProtection": "

Updates termination protection for the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide.

For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack.

", "ValidateTemplate": "

Validates a specified template. AWS CloudFormation first checks if the template is valid JSON. If it isn't, AWS CloudFormation checks if the template is valid YAML. If both these checks fail, AWS CloudFormation returns a template validation error.

" }, "shapes": { + "Account": { + "base": null, + "refs": { + "AccountList$member": null, + "DescribeStackInstanceInput$StackInstanceAccount": "

The ID of an AWS account that's associated with this stack instance.

", + "ListStackInstancesInput$StackInstanceAccount": "

The name of the AWS account that you want to list stack instances for.

", + "StackInstance$Account": "

The name of the AWS account that the stack instance is associated with.

", + "StackInstanceSummary$Account": "

The name of the AWS account that the stack instance is associated with.

", + "StackSetOperationResultSummary$Account": "

The name of the AWS account for this operation result.

" + } + }, + "AccountGateResult": { + "base": "

Structure that contains the results of the account gate function which AWS CloudFormation invokes, if present, before proceeding with a stack set operation in an account and region.

For each account and region, AWS CloudFormation lets you specify a Lamdba function that encapsulates any requirements that must be met before CloudFormation can proceed with a stack set operation in that account and region. CloudFormation invokes the function each time a stack set operation is requested for that account and region; if the function returns FAILED, CloudFormation cancels the operation in that account and region, and sets the stack set operation result status for that account and region to FAILED.

For more information, see Configuring a target account gate.

", + "refs": { + "StackSetOperationResultSummary$AccountGateResult": "

The results of the account gate function AWS CloudFormation invokes, if present, before proceeding with stack set operations in an account

" + } + }, + "AccountGateStatus": { + "base": null, + "refs": { + "AccountGateResult$Status": "

The status of the account gate function.

" + } + }, + "AccountGateStatusReason": { + "base": null, + "refs": { + "AccountGateResult$StatusReason": "

The reason for the account gate status assigned to this account and region for the stack set operation.

" + } + }, "AccountLimit": { "base": "

The AccountLimit data type.

", "refs": { @@ -42,6 +86,14 @@ "DescribeAccountLimitsOutput$AccountLimits": "

An account limit structure that contain a list of AWS CloudFormation account limits and their values.

" } }, + "AccountList": { + "base": null, + "refs": { + "CreateStackInstancesInput$Accounts": "

The names of one or more AWS accounts that you want to create stack instances in the specified region(s) for.

", + "DeleteStackInstancesInput$Accounts": "

The names of the AWS accounts that you want to delete stack instances for.

", + "UpdateStackInstancesInput$Accounts": "

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

" + } + }, "AllowedValue": { "base": null, "refs": { @@ -55,10 +107,16 @@ } }, "AlreadyExistsException": { - "base": "

Resource with the name requested already exists.

", + "base": "

The resource with the name requested already exists.

", "refs": { } }, + "Arn": { + "base": null, + "refs": { + "RollbackTrigger$Arn": "

The Amazon Resource Name (ARN) of the rollback trigger.

" + } + }, "CancelUpdateStackInput": { "base": "

The input for the CancelUpdateStack action.

", "refs": { @@ -69,10 +127,13 @@ "refs": { "CreateChangeSetInput$Capabilities": "

A list of values that you must specify before AWS CloudFormation can update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account, for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter.

The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.

If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error.

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

", "CreateStackInput$Capabilities": "

A list of values that you must specify before AWS CloudFormation can create certain stacks. Some stack templates might include resources that can affect permissions in your AWS account, for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter.

The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.

If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error.

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

", + "CreateStackSetInput$Capabilities": "

A list of values that you must specify before AWS CloudFormation can create certain stack sets. Some stack set templates might include resources that can affect permissions in your AWS account—for example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly acknowledge their capabilities by specifying this parameter.

The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter:

If your stack template contains these resources, we recommend that you review all permissions that are associated with them and edit their permissions if necessary.

If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error.

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

", "DescribeChangeSetOutput$Capabilities": "

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

", "GetTemplateSummaryOutput$Capabilities": "

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

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

", "Stack$Capabilities": "

The capabilities allowed in the stack.

", + "StackSet$Capabilities": "

The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your AWS account—for example, by creating new AWS Identity and Access Management (IAM) users. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates.

", "UpdateStackInput$Capabilities": "

A list of values that you must specify before AWS CloudFormation can update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account, for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter.

The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.

If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error.

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

", + "UpdateStackSetInput$Capabilities": "

A list of values that you must specify before AWS CloudFormation can create certain stack sets. Some stack set templates might include resources that can affect permissions in your AWS account—for example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly acknowledge their capabilities by specifying this parameter.

The only valid values are CAPABILITY_IAM and CAPABILITY_NAMED_IAM. The following resources require you to specify this parameter:

If your stack template contains these resources, we recommend that you review all permissions that are associated with them and edit their permissions if necessary.

If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify this parameter, this action returns an InsufficientCapabilities error.

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

", "ValidateTemplateOutput$Capabilities": "

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

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

" } }, @@ -193,11 +254,25 @@ "refs": { "CancelUpdateStackInput$ClientRequestToken": "

A unique identifier for this CancelUpdateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to cancel an update on a stack with the same name. You might retry CancelUpdateStack requests to ensure that AWS CloudFormation successfully received them.

", "ContinueUpdateRollbackInput$ClientRequestToken": "

A unique identifier for this ContinueUpdateRollback request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to continue the rollback to a stack with the same name. You might retry ContinueUpdateRollback requests to ensure that AWS CloudFormation successfully received them.

", - "CreateStackInput$ClientRequestToken": "

A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them.

", - "DeleteStackInput$ClientRequestToken": "

A unique identifier for this DeleteStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to delete a stack with the same name. You might retry DeleteStack requests to ensure that AWS CloudFormation successfully received them.

", + "CreateStackInput$ClientRequestToken": "

A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them.

All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1.

In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

", + "CreateStackInstancesInput$OperationId": "

The unique identifier for this stack set operation.

The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them.

If you don't specify an operation ID, the SDK generates one automatically.

Repeating this stack set operation with a new operation ID retries all stack instances whose status is OUTDATED.

", + "CreateStackInstancesOutput$OperationId": "

The unique identifier for this stack set operation.

", + "CreateStackSetInput$ClientRequestToken": "

A unique identifier for this CreateStackSet request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create another stack set with the same name. You might retry CreateStackSet requests to ensure that AWS CloudFormation successfully received them.

If you don't specify an operation ID, the SDK generates one automatically.

", + "DeleteStackInput$ClientRequestToken": "

A unique identifier for this DeleteStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to delete a stack with the same name. You might retry DeleteStack requests to ensure that AWS CloudFormation successfully received them.

All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1.

In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

", + "DeleteStackInstancesInput$OperationId": "

The unique identifier for this stack set operation.

If you don't specify an operation ID, the SDK generates one automatically.

The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You can retry stack set operation requests to ensure that AWS CloudFormation successfully received them.

Repeating this stack set operation with a new operation ID retries all stack instances whose status is OUTDATED.

", + "DeleteStackInstancesOutput$OperationId": "

The unique identifier for this stack set operation.

", + "DescribeStackSetOperationInput$OperationId": "

The unique ID of the stack set operation.

", "ExecuteChangeSetInput$ClientRequestToken": "

A unique identifier for this ExecuteChangeSet request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to execute a change set to update a stack with the same name. You might retry ExecuteChangeSet requests to ensure that AWS CloudFormation successfully received them.

", - "StackEvent$ClientRequestToken": "

The token passed to the operation that generated this event.

For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1.

", - "UpdateStackInput$ClientRequestToken": "

A unique identifier for this UpdateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to update a stack with the same name. You might retry UpdateStack requests to ensure that AWS CloudFormation successfully received them.

" + "ListStackSetOperationResultsInput$OperationId": "

The ID of the stack set operation.

", + "StackEvent$ClientRequestToken": "

The token passed to the operation that generated this event.

All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1.

In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

", + "StackSetOperation$OperationId": "

The unique ID of a stack set operation.

", + "StackSetOperationSummary$OperationId": "

The unique ID of the stack set operation.

", + "StopStackSetOperationInput$OperationId": "

The ID of the stack operation.

", + "UpdateStackInput$ClientRequestToken": "

A unique identifier for this UpdateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to update a stack with the same name. You might retry UpdateStack requests to ensure that AWS CloudFormation successfully received them.

All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1.

In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.

", + "UpdateStackInstancesInput$OperationId": "

The unique identifier for this stack set operation.

The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them.

If you don't specify an operation ID, the SDK generates one automatically.

", + "UpdateStackInstancesOutput$OperationId": "

The unique identifier for this stack set operation.

", + "UpdateStackSetInput$OperationId": "

The unique ID for this stack set operation.

The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them.

If you don't specify an operation ID, AWS CloudFormation generates one automatically.

Repeating this stack set operation with a new operation ID retries all stack instances whose status is OUTDATED.

", + "UpdateStackSetOutput$OperationId": "

The unique ID for this stack set operation.

" } }, "ClientToken": { @@ -231,11 +306,36 @@ "refs": { } }, + "CreateStackInstancesInput": { + "base": null, + "refs": { + } + }, + "CreateStackInstancesOutput": { + "base": null, + "refs": { + } + }, "CreateStackOutput": { "base": "

The output for a CreateStack action.

", "refs": { } }, + "CreateStackSetInput": { + "base": null, + "refs": { + } + }, + "CreateStackSetOutput": { + "base": null, + "refs": { + } + }, + "CreatedButModifiedException": { + "base": "

The specified resource exists, but has been changed.

", + "refs": { + } + }, "CreationTime": { "base": null, "refs": { @@ -260,9 +360,30 @@ "refs": { } }, + "DeleteStackInstancesInput": { + "base": null, + "refs": { + } + }, + "DeleteStackInstancesOutput": { + "base": null, + "refs": { + } + }, + "DeleteStackSetInput": { + "base": null, + "refs": { + } + }, + "DeleteStackSetOutput": { + "base": null, + "refs": { + } + }, "DeletionTime": { "base": null, "refs": { + "Stack$DeletionTime": "

The time the stack was deleted.

", "StackSummary$DeletionTime": "

The time the stack was deleted.

" } }, @@ -296,6 +417,16 @@ "refs": { } }, + "DescribeStackInstanceInput": { + "base": null, + "refs": { + } + }, + "DescribeStackInstanceOutput": { + "base": null, + "refs": { + } + }, "DescribeStackResourceInput": { "base": "

The input for DescribeStackResource action.

", "refs": { @@ -316,6 +447,26 @@ "refs": { } }, + "DescribeStackSetInput": { + "base": null, + "refs": { + } + }, + "DescribeStackSetOperationInput": { + "base": null, + "refs": { + } + }, + "DescribeStackSetOperationOutput": { + "base": null, + "refs": { + } + }, + "DescribeStackSetOutput": { + "base": null, + "refs": { + } + }, "DescribeStacksInput": { "base": "

The input for DescribeStacks action.

", "refs": { @@ -331,6 +482,7 @@ "refs": { "ChangeSetSummary$Description": "

Descriptive information about the change set.

", "CreateChangeSetInput$Description": "

A description to help you identify this change set.

", + "CreateStackSetInput$Description": "

A description of the stack set. You can use the description to identify the stack set's purpose or other important information.

", "DescribeChangeSetOutput$Description": "

Information about the change set.

", "GetTemplateSummaryOutput$Description": "

The value that is defined in the Description property of the template.

", "Output$Description": "

User defined description associated with the output.

", @@ -338,7 +490,10 @@ "Stack$Description": "

A user-defined description associated with the stack.

", "StackResource$Description": "

User defined description associated with the resource.

", "StackResourceDetail$Description": "

User defined description associated with the resource.

", + "StackSet$Description": "

A description of the stack set that you specify when the stack set is created or updated.

", + "StackSetSummary$Description": "

A description of the stack set that you specify when the stack set is created or updated.

", "TemplateParameter$Description": "

User defined description associated with the parameter.

", + "UpdateStackSetInput$Description": "

A brief description of updates that you are making.

", "ValidateTemplateOutput$Description": "

The description found within the template.

" } }, @@ -349,6 +504,14 @@ "Stack$DisableRollback": "

Boolean to enable or disable rollback on stack creation failures:

" } }, + "EnableTerminationProtection": { + "base": null, + "refs": { + "CreateStackInput$EnableTerminationProtection": "

Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide. Termination protection is disabled on stacks by default.

For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack.

", + "Stack$EnableTerminationProtection": "

Whether termination protection is enabled for the stack.

For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide.

", + "UpdateTerminationProtectionInput$EnableTerminationProtection": "

Whether to enable termination protection on the specified stack.

" + } + }, "EstimateTemplateCostInput": { "base": "

The input for an EstimateTemplateCost action.

", "refs": { @@ -398,7 +561,8 @@ "base": null, "refs": { "Export$Name": "

The name of exported output value. Use this name and the Fn::ImportValue function to import the associated value into other stacks. The name is defined in the Export field in the associated stack's Outputs section.

", - "ListImportsInput$ExportName": "

The name of the exported output value. AWS CloudFormation returns the stack names that are importing this value.

" + "ListImportsInput$ExportName": "

The name of the exported output value. AWS CloudFormation returns the stack names that are importing this value.

", + "Output$ExportName": "

The name of the export associated with the output.

" } }, "ExportValue": { @@ -413,6 +577,18 @@ "ListExportsOutput$Exports": "

The output for the ListExports action.

" } }, + "FailureToleranceCount": { + "base": null, + "refs": { + "StackSetOperationPreferences$FailureToleranceCount": "

The number of accounts, per region, for which this operation can fail before AWS CloudFormation stops the operation in that region. If the operation is stopped in a region, AWS CloudFormation doesn't attempt the operation in any subsequent regions.

Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage (but not both).

" + } + }, + "FailureTolerancePercentage": { + "base": null, + "refs": { + "StackSetOperationPreferences$FailureTolerancePercentage": "

The percentage of accounts, per region, for which this stack operation can fail before AWS CloudFormation stops the operation in that region. If the operation is stopped in a region, AWS CloudFormation doesn't attempt the operation in any subsequent regions.

When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number.

Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage, but not both.

" + } + }, "GetStackPolicyInput": { "base": "

The input for the GetStackPolicy action.

", "refs": { @@ -450,12 +626,17 @@ } }, "InsufficientCapabilitiesException": { - "base": "

The template contains resources with capabilities that were not specified in the Capabilities parameter.

", + "base": "

The template contains resources with capabilities that weren't specified in the Capabilities parameter.

", "refs": { } }, "InvalidChangeSetStatusException": { - "base": "

The specified change set cannot be used to update the stack. For example, the change set status might be CREATE_IN_PROGRESS or the stack status might be UPDATE_IN_PROGRESS.

", + "base": "

The specified change set can't be used to update the stack. For example, the change set status might be CREATE_IN_PROGRESS, or the stack status might be UPDATE_IN_PROGRESS.

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

The specified operation isn't valid.

", "refs": { } }, @@ -467,7 +648,7 @@ } }, "LimitExceededException": { - "base": "

Quota for the resource has already been reached.

", + "base": "

The quota for the resource has already been reached.

For information on stack set limitations, see Limitations of StackSets.

", "refs": { } }, @@ -513,6 +694,16 @@ "refs": { } }, + "ListStackInstancesInput": { + "base": null, + "refs": { + } + }, + "ListStackInstancesOutput": { + "base": null, + "refs": { + } + }, "ListStackResourcesInput": { "base": "

The input for the ListStackResource action.

", "refs": { @@ -523,6 +714,36 @@ "refs": { } }, + "ListStackSetOperationResultsInput": { + "base": null, + "refs": { + } + }, + "ListStackSetOperationResultsOutput": { + "base": null, + "refs": { + } + }, + "ListStackSetOperationsInput": { + "base": null, + "refs": { + } + }, + "ListStackSetOperationsOutput": { + "base": null, + "refs": { + } + }, + "ListStackSetsInput": { + "base": null, + "refs": { + } + }, + "ListStackSetsOutput": { + "base": null, + "refs": { + } + }, "ListStacksInput": { "base": "

The input for ListStacks action.

", "refs": { @@ -547,6 +768,27 @@ "StackResourceSummary$LogicalResourceId": "

The logical name of the resource specified in the template.

" } }, + "MaxConcurrentCount": { + "base": null, + "refs": { + "StackSetOperationPreferences$MaxConcurrentCount": "

The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of FailureToleranceCountMaxConcurrentCount is at most one more than the FailureToleranceCount .

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

" + } + }, + "MaxConcurrentPercentage": { + "base": null, + "refs": { + "StackSetOperationPreferences$MaxConcurrentPercentage": "

The maximum percentage of accounts in which to perform this operation at one time.

When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead.

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListStackInstancesInput$MaxResults": "

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

", + "ListStackSetOperationResultsInput$MaxResults": "

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

", + "ListStackSetOperationsInput$MaxResults": "

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

", + "ListStackSetsInput$MaxResults": "

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

" + } + }, "Metadata": { "base": null, "refs": { @@ -554,6 +796,17 @@ "StackResourceDetail$Metadata": "

The content of the Metadata attribute declared for the resource. For more information, see Metadata Attribute in the AWS CloudFormation User Guide.

" } }, + "MonitoringTimeInMinutes": { + "base": null, + "refs": { + "RollbackConfiguration$MonitoringTimeInMinutes": "

The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. If any of the alarms goes to ALERT state during the stack operation or this monitoring period, CloudFormation rolls back the entire stack operation. Then, for update operations, if the monitoring period expires without any alarms going to ALERT state CloudFormation proceeds to dispose of old resources as usual.

If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources for update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary.

If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.

" + } + }, + "NameAlreadyExistsException": { + "base": "

The specified name is already in use.

", + "refs": { + } + }, "NextToken": { "base": null, "refs": { @@ -571,8 +824,16 @@ "ListExportsOutput$NextToken": "

If the output exceeds 100 exported output values, a string that identifies the next page of exports. If there is no additional page, this value is null.

", "ListImportsInput$NextToken": "

A string (provided by the ListImports response output) that identifies the next page of stacks that are importing the specified exported output value.

", "ListImportsOutput$NextToken": "

A string that identifies the next page of exports. If there is no additional page, this value is null.

", + "ListStackInstancesInput$NextToken": "

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

", + "ListStackInstancesOutput$NextToken": "

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

", "ListStackResourcesInput$NextToken": "

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

", "ListStackResourcesOutput$NextToken": "

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

", + "ListStackSetOperationResultsInput$NextToken": "

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

", + "ListStackSetOperationResultsOutput$NextToken": "

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

", + "ListStackSetOperationsInput$NextToken": "

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

", + "ListStackSetOperationsOutput$NextToken": "

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

", + "ListStackSetsInput$NextToken": "

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

", + "ListStackSetsOutput$NextToken": "

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

", "ListStacksInput$NextToken": "

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

", "ListStacksOutput$NextToken": "

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

" } @@ -606,6 +867,21 @@ "CreateStackInput$OnFailure": "

Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both.

Default: ROLLBACK

" } }, + "OperationIdAlreadyExistsException": { + "base": "

The specified operation ID already exists.

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

Another operation is currently in progress for this stack set. Only one operation can be performed for a stack set at a given time.

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

The specified ID refers to an operation that doesn't exist.

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

The Output data type.

", "refs": { @@ -671,7 +947,8 @@ "ParameterValue": { "base": null, "refs": { - "Parameter$ParameterValue": "

The value associated with the parameter.

", + "Parameter$ParameterValue": "

The input value associated with the parameter.

", + "Parameter$ResolvedValue": "

Read-only. The value that corresponds to a Systems Manager parameter key. This field is returned only for SSM parameter types in the template.

", "ParameterDeclaration$DefaultValue": "

The default value of the parameter.

", "TemplateParameter$DefaultValue": "

The default value associated with the parameter.

" } @@ -681,10 +958,16 @@ "refs": { "CreateChangeSetInput$Parameters": "

A list of Parameter structures that specify input parameters for the change set. For more information, see the Parameter data type.

", "CreateStackInput$Parameters": "

A list of Parameter structures that specify input parameters for the stack. For more information, see the Parameter data type.

", + "CreateStackInstancesInput$ParameterOverrides": "

A list of stack set parameters whose values you want to override in the selected stack instances.

Any overridden parameter values will be applied to all stack instances in the specified accounts and regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during stack instance operations:

During stack set updates, any parameter values overridden for a stack instance are not updated, but retain their overridden value.

You can only override the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template.

", + "CreateStackSetInput$Parameters": "

The input parameters for the stack set template.

", "DescribeChangeSetOutput$Parameters": "

A list of Parameter structures that describes the input parameters and their values used to create the change set. For more information, see the Parameter data type.

", "EstimateTemplateCostInput$Parameters": "

A list of Parameter structures that specify input parameters.

", "Stack$Parameters": "

A list of Parameter structures.

", - "UpdateStackInput$Parameters": "

A list of Parameter structures that specify input parameters for the stack. For more information, see the Parameter data type.

" + "StackInstance$ParameterOverrides": "

A list of parameters from the stack set template whose values have been overridden in this stack instance.

", + "StackSet$Parameters": "

A list of input parameters for a stack set.

", + "UpdateStackInput$Parameters": "

A list of Parameter structures that specify input parameters for the stack. For more information, see the Parameter data type.

", + "UpdateStackInstancesInput$ParameterOverrides": "

A list of input parameters whose values you want to update for the specified stack instances.

Any overridden parameter values will be applied to all stack instances in the specified accounts and regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during stack instance update operations:

During stack set updates, any parameter values overridden for a stack instance are not updated, but retain their overridden value.

You can only override the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using UpdateStackInstances.

", + "UpdateStackSetInput$Parameters": "

A list of input parameters for the stack set template.

" } }, "PhysicalResourceId": { @@ -704,6 +987,34 @@ "ResourceTargetDefinition$Name": "

If the Attribute value is Properties, the name of the property. For all other attributes, the value is null.

" } }, + "Reason": { + "base": null, + "refs": { + "StackInstance$StatusReason": "

The explanation for the specific status code that is assigned to this stack instance.

", + "StackInstanceSummary$StatusReason": "

The explanation for the specific status code assigned to this stack instance.

", + "StackSetOperationResultSummary$StatusReason": "

The reason for the assigned result status.

" + } + }, + "Region": { + "base": null, + "refs": { + "DescribeStackInstanceInput$StackInstanceRegion": "

The name of a region that's associated with this stack instance.

", + "ListStackInstancesInput$StackInstanceRegion": "

The name of the region where you want to list stack instances.

", + "RegionList$member": null, + "StackInstance$Region": "

The name of the AWS region that the stack instance is associated with.

", + "StackInstanceSummary$Region": "

The name of the AWS region that the stack instance is associated with.

", + "StackSetOperationResultSummary$Region": "

The name of the AWS region for this operation result.

" + } + }, + "RegionList": { + "base": null, + "refs": { + "CreateStackInstancesInput$Regions": "

The names of one or more regions where you want to create stack instances using the specified AWS account(s).

", + "DeleteStackInstancesInput$Regions": "

The regions where you want to delete stack set instances.

", + "StackSetOperationPreferences$RegionOrder": "

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

", + "UpdateStackInstancesInput$Regions": "

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

" + } + }, "Replacement": { "base": null, "refs": { @@ -812,7 +1123,7 @@ "ResourcesToSkip": { "base": null, "refs": { - "ContinueUpdateRollbackInput$ResourcesToSkip": "

A list of the logical IDs of the resources that AWS CloudFormation skips during the continue update rollback operation. You can specify only resources that are in the UPDATE_FAILED state because a rollback failed. You can't specify resources that are in the UPDATE_FAILED state for other reasons, for example, because an update was canceled. To check why a resource update failed, use the DescribeStackResources action, and view the resource status reason.

Specify this property to skip rolling back resources that AWS CloudFormation can't successfully roll back. We recommend that you troubleshoot resources before skipping them. AWS CloudFormation sets the status of the specified resources to UPDATE_COMPLETE and continues to roll back the stack. After the rollback is complete, the state of the skipped resources will be inconsistent with the state of the resources in the stack template. Before performing another stack update, you must update the stack or resources to be consistent with each other. If you don't, subsequent stack updates might fail, and the stack will become unrecoverable.

Specify the minimum number of resources required to successfully roll back your stack. For example, a failed resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the dependent resources.

To specify resources in a nested stack, use the following format: NestedStackName.ResourceLogicalID. If the ResourceLogicalID is a stack resource (Type: AWS::CloudFormation::Stack), it must be in one of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED.

" + "ContinueUpdateRollbackInput$ResourcesToSkip": "

A list of the logical IDs of the resources that AWS CloudFormation skips during the continue update rollback operation. You can specify only resources that are in the UPDATE_FAILED state because a rollback failed. You can't specify resources that are in the UPDATE_FAILED state for other reasons, for example, because an update was cancelled. To check why a resource update failed, use the DescribeStackResources action, and view the resource status reason.

Specify this property to skip rolling back resources that AWS CloudFormation can't successfully roll back. We recommend that you troubleshoot resources before skipping them. AWS CloudFormation sets the status of the specified resources to UPDATE_COMPLETE and continues to roll back the stack. After the rollback is complete, the state of the skipped resources will be inconsistent with the state of the resources in the stack template. Before performing another stack update, you must update the stack or resources to be consistent with each other. If you don't, subsequent stack updates might fail, and the stack will become unrecoverable.

Specify the minimum number of resources required to successfully roll back your stack. For example, a failed resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the dependent resources.

To skip resources that are part of nested stacks, use the following format: NestedStackName.ResourceLogicalID. If you want to specify the logical ID of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip list, then its corresponding embedded stack must be in one of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED.

Don't confuse a child stack's name with its corresponding logical ID defined in the parent stack. For an example of a continue update rollback operation with nested stacks, see Using ResourcesToSkip to recover a nested stacks hierarchy.

" } }, "RetainResources": { @@ -821,6 +1132,18 @@ "DeleteStackInput$RetainResources": "

For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources.

Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.

" } }, + "RetainStacks": { + "base": null, + "refs": { + "DeleteStackInstancesInput$RetainStacks": "

Removes the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a retained stack or add an existing, saved stack to a new stack set.

For more information, see Stack set operation options.

" + } + }, + "RetainStacksNullable": { + "base": null, + "refs": { + "StackSetOperation$RetainStacks": "

For stack set operations of action type DELETE, specifies whether to remove the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a retained stack, or add an existing, saved stack to a new stack set.

" + } + }, "RoleARN": { "base": null, "refs": { @@ -832,6 +1155,28 @@ "UpdateStackInput$RoleARN": "

The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to update the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege.

If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.

" } }, + "RollbackConfiguration": { + "base": "

Structure containing the rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.

Rollback triggers enable you to have AWS CloudFormation monitor the state of your application during stack creation and updating, and to roll back that operation if the application breaches the threshold of any of the alarms you've specified. For each rollback trigger you create, you specify the Cloudwatch alarm that CloudFormation should monitor. CloudFormation monitors the specified alarms during the stack create or update operation, and for the specified amount of time after all resources have been deployed. If any of the alarms goes to ALERT state during the stack operation or the monitoring period, CloudFormation rolls back the entire stack operation. If the monitoring period expires without any alarms going to ALERT state, CloudFormation proceeds to dispose of old resources as usual.

By default, CloudFormation only rolls back stack operations if an alarm goes to ALERT state, not INSUFFICIENT_DATA state. To have CloudFormation roll back the stack operation if an alarm goes to INSUFFICIENT_DATA state as well, edit the CloudWatch alarm to treat missing data as breaching. For more information, see Configuring How CloudWatch Alarms Treats Missing Data.

AWS CloudFormation does not monitor rollback triggers when it rolls back a stack during an update operation.

", + "refs": { + "CreateChangeSetInput$RollbackConfiguration": "

The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.

", + "CreateStackInput$RollbackConfiguration": "

The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.

", + "DescribeChangeSetOutput$RollbackConfiguration": "

The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.

", + "Stack$RollbackConfiguration": "

The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.

", + "UpdateStackInput$RollbackConfiguration": "

The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.

" + } + }, + "RollbackTrigger": { + "base": "

A rollback trigger AWS CloudFormation monitors during creation and updating of stacks. If any of the alarms you specify goes to ALERT state during the stack operation or within the specified monitoring period afterwards, CloudFormation rolls back the entire stack operation.

", + "refs": { + "RollbackTriggers$member": null + } + }, + "RollbackTriggers": { + "base": null, + "refs": { + "RollbackConfiguration$RollbackTriggers": "

The triggers to monitor during stack creation or update actions.

By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. This means:

If a specified Cloudwatch alarm is missing, the entire stack operation fails and is rolled back.

" + } + }, "Scope": { "base": null, "refs": { @@ -875,11 +1220,48 @@ "DescribeChangeSetOutput$StackId": "

The ARN of the stack that is associated with the change set.

", "Export$ExportingStackId": "

The stack that contains the exported output name and value.

", "Stack$StackId": "

Unique identifier of the stack.

", + "Stack$ParentId": "

For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack.

For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide.

", + "Stack$RootId": "

For nested stacks--stacks created as resources for another stack--the stack ID of the the top-level stack to which the nested stack ultimately belongs.

For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide.

", "StackEvent$StackId": "

The unique ID name of the instance of the stack.

", + "StackInstance$StackId": "

The ID of the stack instance.

", + "StackInstanceSummary$StackId": "

The ID of the stack instance.

", "StackResource$StackId": "

Unique identifier of the stack.

", "StackResourceDetail$StackId": "

Unique identifier of the stack.

", "StackSummary$StackId": "

Unique stack identifier.

", - "UpdateStackOutput$StackId": "

Unique identifier of the stack.

" + "StackSummary$ParentId": "

For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack.

For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide.

", + "StackSummary$RootId": "

For nested stacks--stacks created as resources for another stack--the stack ID of the the top-level stack to which the nested stack ultimately belongs.

For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide.

", + "UpdateStackOutput$StackId": "

Unique identifier of the stack.

", + "UpdateTerminationProtectionOutput$StackId": "

The unique ID of the stack.

" + } + }, + "StackInstance": { + "base": "

An AWS CloudFormation stack, in a specific account and region, that's part of a stack set operation. A stack instance is a reference to an attempted or actual stack in a given account within a given region. A stack instance can exist without a stack—for example, if the stack couldn't be created for some reason. A stack instance is associated with only one stack set. Each stack instance contains the ID of its associated stack set, as well as the ID of the actual stack and the stack status.

", + "refs": { + "DescribeStackInstanceOutput$StackInstance": "

The stack instance that matches the specified request parameters.

" + } + }, + "StackInstanceNotFoundException": { + "base": "

The specified stack instance doesn't exist.

", + "refs": { + } + }, + "StackInstanceStatus": { + "base": null, + "refs": { + "StackInstance$Status": "

The status of the stack instance, in terms of its synchronization with its associated stack set.

", + "StackInstanceSummary$Status": "

The status of the stack instance, in terms of its synchronization with its associated stack set.

" + } + }, + "StackInstanceSummaries": { + "base": null, + "refs": { + "ListStackInstancesOutput$Summaries": "

A list of StackInstanceSummary structures that contain information about the specified stack instances.

" + } + }, + "StackInstanceSummary": { + "base": "

The structure that contains summary information about a stack instance.

", + "refs": { + "StackInstanceSummaries$member": null } }, "StackName": { @@ -915,9 +1297,10 @@ "DeleteChangeSetInput$StackName": "

If you specified the name of a change set to delete, specify the stack name or ID (ARN) that is associated with it.

", "DescribeChangeSetInput$StackName": "

If you specified the name of a change set, specify the stack name or ID (ARN) of the change set you want to describe.

", "ExecuteChangeSetInput$StackName": "

If you specified the name of a change set, specify the stack name or ID (ARN) that is associated with the change set you want to execute.

", - "GetTemplateSummaryInput$StackName": "

The name or the stack ID that is associated with the stack, which are not always interchangeable. For running stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the unique stack ID.

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

", + "GetTemplateSummaryInput$StackName": "

The name or the stack ID that is associated with the stack, which are not always interchangeable. For running stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the unique stack ID.

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

", "ListChangeSetsInput$StackName": "

The name or the Amazon Resource Name (ARN) of the stack for which you want to list change sets.

", - "SignalResourceInput$StackName": "

The stack name or unique stack ID that includes the resource that you want to signal.

" + "SignalResourceInput$StackName": "

The stack name or unique stack ID that includes the resource that you want to signal.

", + "UpdateTerminationProtectionInput$StackName": "

The name or unique ID of the stack for which you want to set termination protection.

" } }, "StackPolicyBody": { @@ -979,6 +1362,139 @@ "DescribeStackResourcesOutput$StackResources": "

A list of StackResource structures.

" } }, + "StackSet": { + "base": "

A structure that contains information about a stack set. A stack set enables you to provision stacks into AWS accounts and across regions by using a single CloudFormation template. In the stack set, you specify the template to use, as well as any parameters and capabilities that the template requires.

", + "refs": { + "DescribeStackSetOutput$StackSet": "

The specified stack set.

" + } + }, + "StackSetId": { + "base": null, + "refs": { + "CreateStackSetOutput$StackSetId": "

The ID of the stack set that you're creating.

", + "StackInstance$StackSetId": "

The name or unique ID of the stack set that the stack instance is associated with.

", + "StackInstanceSummary$StackSetId": "

The name or unique ID of the stack set that the stack instance is associated with.

", + "StackSet$StackSetId": "

The ID of the stack set.

", + "StackSetOperation$StackSetId": "

The ID of the stack set.

", + "StackSetSummary$StackSetId": "

The ID of the stack set.

" + } + }, + "StackSetName": { + "base": null, + "refs": { + "CreateStackInstancesInput$StackSetName": "

The name or unique ID of the stack set that you want to create stack instances from.

", + "CreateStackSetInput$StackSetName": "

The name to associate with the stack set. The name must be unique in the region where you create your stack set.

A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and can't be longer than 128 characters.

", + "DeleteStackInstancesInput$StackSetName": "

The name or unique ID of the stack set that you want to delete stack instances for.

", + "DeleteStackSetInput$StackSetName": "

The name or unique ID of the stack set that you're deleting. You can obtain this value by running ListStackSets.

", + "DescribeStackInstanceInput$StackSetName": "

The name or the unique stack ID of the stack set that you want to get stack instance information for.

", + "DescribeStackSetInput$StackSetName": "

The name or unique ID of the stack set whose description you want.

", + "DescribeStackSetOperationInput$StackSetName": "

The name or the unique stack ID of the stack set for the stack operation.

", + "ListStackInstancesInput$StackSetName": "

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

", + "ListStackSetOperationResultsInput$StackSetName": "

The name or unique ID of the stack set that you want to get operation results for.

", + "ListStackSetOperationsInput$StackSetName": "

The name or unique ID of the stack set that you want to get operation summaries for.

", + "StackSet$StackSetName": "

The name that's associated with the stack set.

", + "StackSetSummary$StackSetName": "

The name of the stack set.

", + "StopStackSetOperationInput$StackSetName": "

The name or unique ID of the stack set that you want to stop the operation for.

", + "UpdateStackInstancesInput$StackSetName": "

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

", + "UpdateStackSetInput$StackSetName": "

The name or unique ID of the stack set that you want to update.

" + } + }, + "StackSetNameOrId": { + "base": null, + "refs": { + "GetTemplateSummaryInput$StackSetName": "

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

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

" + } + }, + "StackSetNotEmptyException": { + "base": "

You can't yet delete this stack set, because it still contains one or more stack instances. Delete all stack instances from the stack set before deleting the stack set.

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

The specified stack set doesn't exist.

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

The structure that contains information about a stack set operation.

", + "refs": { + "DescribeStackSetOperationOutput$StackSetOperation": "

The specified stack set operation.

" + } + }, + "StackSetOperationAction": { + "base": null, + "refs": { + "StackSetOperation$Action": "

The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete operations affect only the specified stack set instances that are associated with the specified stack set. Update operations affect both the stack set itself, as well as all associated stack set instances.

", + "StackSetOperationSummary$Action": "

The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations affect only the specified stack instances that are associated with the specified stack set. Update operations affect both the stack set itself as well as all associated stack set instances.

" + } + }, + "StackSetOperationPreferences": { + "base": "

The user-specified preferences for how AWS CloudFormation performs a stack set operation.

For more information on maximum concurrent accounts and failure tolerance, see Stack set operation options.

", + "refs": { + "CreateStackInstancesInput$OperationPreferences": "

Preferences for how AWS CloudFormation performs this stack set operation.

", + "DeleteStackInstancesInput$OperationPreferences": "

Preferences for how AWS CloudFormation performs this stack set operation.

", + "StackSetOperation$OperationPreferences": "

The preferences for how AWS CloudFormation performs this stack set operation.

", + "UpdateStackInstancesInput$OperationPreferences": "

Preferences for how AWS CloudFormation performs this stack set operation.

", + "UpdateStackSetInput$OperationPreferences": "

Preferences for how AWS CloudFormation performs this stack set operation.

" + } + }, + "StackSetOperationResultStatus": { + "base": null, + "refs": { + "StackSetOperationResultSummary$Status": "

The result status of the stack set operation for the given account in the given region.

" + } + }, + "StackSetOperationResultSummaries": { + "base": null, + "refs": { + "ListStackSetOperationResultsOutput$Summaries": "

A list of StackSetOperationResultSummary structures that contain information about the specified operation results, for accounts and regions that are included in the operation.

" + } + }, + "StackSetOperationResultSummary": { + "base": "

The structure that contains information about a specified operation's results for a given account in a given region.

", + "refs": { + "StackSetOperationResultSummaries$member": null + } + }, + "StackSetOperationStatus": { + "base": null, + "refs": { + "StackSetOperation$Status": "

The status of the operation.

", + "StackSetOperationSummary$Status": "

The overall status of the operation.

" + } + }, + "StackSetOperationSummaries": { + "base": null, + "refs": { + "ListStackSetOperationsOutput$Summaries": "

A list of StackSetOperationSummary structures that contain summary information about operations for the specified stack set.

" + } + }, + "StackSetOperationSummary": { + "base": "

The structures that contain summary information about the specified operation.

", + "refs": { + "StackSetOperationSummaries$member": null + } + }, + "StackSetStatus": { + "base": null, + "refs": { + "ListStackSetsInput$Status": "

The status of the stack sets that you want to get summary information about.

", + "StackSet$Status": "

The status of the stack set.

", + "StackSetSummary$Status": "

The status of the stack set.

" + } + }, + "StackSetSummaries": { + "base": null, + "refs": { + "ListStackSetsOutput$Summaries": "

A list of StackSetSummary structures that contain information about the user's stack sets.

" + } + }, + "StackSetSummary": { + "base": "

The structures that contain summary information about the specified stack set.

", + "refs": { + "StackSetSummaries$member": null + } + }, "StackStatus": { "base": null, "refs": { @@ -1024,6 +1540,21 @@ "GetTemplateOutput$StagesAvailable": "

The stage of the template that you can retrieve. For stacks, the Original and Processed templates are always available. For change sets, the Original template is always available. After AWS CloudFormation finishes creating the change set, the Processed template becomes available.

" } }, + "StaleRequestException": { + "base": "

Another operation has been performed on this stack set since the specified operation was performed.

", + "refs": { + } + }, + "StopStackSetOperationInput": { + "base": null, + "refs": { + } + }, + "StopStackSetOperationOutput": { + "base": null, + "refs": { + } + }, "Tag": { "base": "

The Tag type enables you to specify a key-value pair that can be used to store information about an AWS CloudFormation stack.

", "refs": { @@ -1045,11 +1576,14 @@ "Tags": { "base": null, "refs": { - "CreateChangeSetInput$Tags": "

Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to resources in the stack. You can specify a maximum of 10 tags.

", - "CreateStackInput$Tags": "

Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 10 tags can be specified.

", + "CreateChangeSetInput$Tags": "

Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to resources in the stack. You can specify a maximum of 50 tags.

", + "CreateStackInput$Tags": "

Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.

", + "CreateStackSetInput$Tags": "

The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can be specified.

If you specify tags as part of a CreateStackSet action, AWS CloudFormation checks to see if you have the required IAM permission to tag resources. If you don't, the entire CreateStackSet action fails with an access denied error, and the stack set is not created.

", "DescribeChangeSetOutput$Tags": "

If you execute the change set, the tags that will be associated with the stack.

", "Stack$Tags": "

A list of Tags that specify information about the stack.

", - "UpdateStackInput$Tags": "

Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to supported resources in the stack. You can specify a maximum number of 10 tags.

If you don't specify this parameter, AWS CloudFormation doesn't modify the stack's tags. If you specify an empty value, AWS CloudFormation removes all associated tags.

" + "StackSet$Tags": "

A list of tags that specify information about the stack set. A maximum number of 50 tags can be specified.

", + "UpdateStackInput$Tags": "

Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to supported resources in the stack. You can specify a maximum number of 50 tags.

If you don't specify this parameter, AWS CloudFormation doesn't modify the stack's tags. If you specify an empty value, AWS CloudFormation removes all associated tags.

", + "UpdateStackSetInput$Tags": "

The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks. You can specify a maximum number of 50 tags.

If you specify tags for this parameter, those tags replace any list of tags that are currently associated with this stack set. This means:

If you specify new tags as part of an UpdateStackSet action, AWS CloudFormation checks to see if you have the required IAM permission to tag resources. If you omit tags that are currently associated with the stack set from the list of tags you specify, AWS CloudFormation assumes that you want to remove those tags from the stack set, and checks to see if you have permission to untag resources. If you don't have the necessary permission(s), the entire UpdateStackSet action fails with an access denied error, and the stack set is not updated.

" } }, "TemplateBody": { @@ -1057,10 +1591,13 @@ "refs": { "CreateChangeSetInput$TemplateBody": "

A structure that contains the body of the revised template, with a minimum length of 1 byte and a maximum length of 51,200 bytes. AWS CloudFormation generates the change set by comparing this template with the template of the stack that you specified.

Conditional: You must specify only TemplateBody or TemplateURL.

", "CreateStackInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

", + "CreateStackSetInput$TemplateBody": "

The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, see Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

", "EstimateTemplateCostInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.)

Conditional: You must pass TemplateBody or TemplateURL. If both are passed, only TemplateBody is used.

", "GetTemplateOutput$TemplateBody": "

Structure containing the template body. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.)

AWS CloudFormation returns the same template that was used when the stack was created.

", - "GetTemplateSummaryInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide.

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

", + "GetTemplateSummaryInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide.

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

", + "StackSet$TemplateBody": "

The structure that contains the body of the template that was used to create or update the stack set.

", "UpdateStackInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.)

Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true.

", + "UpdateStackSetInput$TemplateBody": "

The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, see Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true.

", "ValidateTemplateInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

" } }, @@ -1094,9 +1631,11 @@ "refs": { "CreateChangeSetInput$TemplateURL": "

The location of the file that contains the revised template. The URL must point to a template (max size: 460,800 bytes) that is located in an S3 bucket. AWS CloudFormation generates the change set by comparing this template with the stack that you specified.

Conditional: You must specify only TemplateBody or TemplateURL.

", "CreateStackInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, go to the Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

", + "CreateStackSetInput$TemplateURL": "

The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 bucket. For more information, see Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

", "EstimateTemplateCostInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template that is located in an Amazon S3 bucket. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

", - "GetTemplateSummaryInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide.

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

", + "GetTemplateSummaryInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide.

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

", "UpdateStackInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template that is located in an Amazon S3 bucket. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true.

", + "UpdateStackSetInput$TemplateURL": "

The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, see Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true.

", "ValidateTemplateInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

" } }, @@ -1113,7 +1652,11 @@ "StackEvent$Timestamp": "

Time the status was updated.

", "StackResource$Timestamp": "

Time the status was updated.

", "StackResourceDetail$LastUpdatedTimestamp": "

Time the status was updated.

", - "StackResourceSummary$LastUpdatedTimestamp": "

Time the status was updated.

" + "StackResourceSummary$LastUpdatedTimestamp": "

Time the status was updated.

", + "StackSetOperation$CreationTimestamp": "

The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because AWS CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested regions, before actually creating the first stacks.

", + "StackSetOperation$EndTimestamp": "

The time at which the stack set operation ended, across all accounts and regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or region.

", + "StackSetOperationSummary$CreationTimestamp": "

The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because AWS CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested regions, before actually creating the first stacks.

", + "StackSetOperationSummary$EndTimestamp": "

The time at which the stack set operation ended, across all accounts and regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or region.

" } }, "TokenAlreadyExistsException": { @@ -1134,16 +1677,52 @@ "ValidateTemplateOutput$DeclaredTransforms": "

A list of the transforms that are declared in the template.

" } }, + "Type": { + "base": null, + "refs": { + "RollbackTrigger$Type": "

The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm is the only supported resource type.

" + } + }, "UpdateStackInput": { "base": "

The input for an UpdateStack action.

", "refs": { } }, + "UpdateStackInstancesInput": { + "base": null, + "refs": { + } + }, + "UpdateStackInstancesOutput": { + "base": null, + "refs": { + } + }, "UpdateStackOutput": { "base": "

The output for an UpdateStack action.

", "refs": { } }, + "UpdateStackSetInput": { + "base": null, + "refs": { + } + }, + "UpdateStackSetOutput": { + "base": null, + "refs": { + } + }, + "UpdateTerminationProtectionInput": { + "base": null, + "refs": { + } + }, + "UpdateTerminationProtectionOutput": { + "base": null, + "refs": { + } + }, "Url": { "base": null, "refs": { @@ -1154,7 +1733,8 @@ "base": null, "refs": { "CreateChangeSetInput$UsePreviousTemplate": "

Whether to reuse the template that is associated with the stack to create the change set.

", - "UpdateStackInput$UsePreviousTemplate": "

Reuse the existing template that is associated with the stack that you are updating.

Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true.

" + "UpdateStackInput$UsePreviousTemplate": "

Reuse the existing template that is associated with the stack that you are updating.

Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true.

", + "UpdateStackSetInput$UsePreviousTemplate": "

Use the existing template that's associated with the stack set that you're updating.

Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true.

" } }, "UsePreviousValue": { diff --git a/models/apis/cloudfront/2017-03-25/api-2.json b/models/apis/cloudfront/2017-03-25/api-2.json index ca11fdb04ea..3ff77f4f867 100644 --- a/models/apis/cloudfront/2017-03-25/api-2.json +++ b/models/apis/cloudfront/2017-03-25/api-2.json @@ -233,6 +233,21 @@ {"shape":"PreconditionFailed"} ] }, + "DeleteServiceLinkedRole":{ + "name":"DeleteServiceLinkedRole2017_03_25", + "http":{ + "method":"DELETE", + "requestUri":"/2017-03-25/service-linked-role/{RoleName}", + "responseCode":204 + }, + "input":{"shape":"DeleteServiceLinkedRoleRequest"}, + "errors":[ + {"shape":"InvalidArgument"}, + {"shape":"AccessDenied"}, + {"shape":"ResourceInUse"}, + {"shape":"NoSuchResource"} + ] + }, "DeleteStreamingDistribution":{ "name":"DeleteStreamingDistribution2017_03_25", "http":{ @@ -1054,6 +1069,17 @@ } } }, + "DeleteServiceLinkedRoleRequest":{ + "type":"structure", + "required":["RoleName"], + "members":{ + "RoleName":{ + "shape":"string", + "location":"uri", + "locationName":"RoleName" + } + } + }, "DeleteStreamingDistributionRequest":{ "type":"structure", "required":["Id"], @@ -1937,7 +1963,10 @@ "type":"string", "enum":[ "SSLv3", - "TLSv1" + "TLSv1", + "TLSv1_2016", + "TLSv1.1_2016", + "TLSv1.2_2018" ] }, "MissingBody":{ @@ -2114,6 +2143,14 @@ "type":"string", "pattern":"arn:aws:cloudfront::[0-9]+:.*" }, + "ResourceInUse":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, "Restrictions":{ "type":"structure", "required":["GeoRestriction"], diff --git a/models/apis/cloudfront/2017-03-25/docs-2.json b/models/apis/cloudfront/2017-03-25/docs-2.json index 3ddba28efd1..c0e86083c01 100644 --- a/models/apis/cloudfront/2017-03-25/docs-2.json +++ b/models/apis/cloudfront/2017-03-25/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "Amazon CloudFront

This is the Amazon CloudFront API Reference. This guide is for developers who need detailed information about the CloudFront API actions, data types, and errors. For detailed information about CloudFront features and their associated API calls, see the Amazon CloudFront Developer Guide.

", + "service": "Amazon CloudFront

This is the Amazon CloudFront API Reference. This guide is for developers who need detailed information about CloudFront API actions, data types, and errors. For detailed information about CloudFront features, see the Amazon CloudFront Developer Guide.

", "operations": { "CreateCloudFrontOriginAccessIdentity": "

Creates a new origin access identity. If you're using Amazon S3 for your origin, you can use an origin access identity to require users to access your content using a CloudFront URL instead of the Amazon S3 URL. For more information about how to use origin access identities, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide.

", "CreateDistribution": "

Creates a new web distribution. Send a POST request to the /CloudFront API version/distribution/distribution ID resource.

", @@ -10,6 +10,7 @@ "CreateStreamingDistributionWithTags": "

Create a new streaming distribution with tags.

", "DeleteCloudFrontOriginAccessIdentity": "

Delete an origin access identity.

", "DeleteDistribution": "

Delete a distribution.

", + "DeleteServiceLinkedRole": null, "DeleteStreamingDistribution": "

Delete a streaming distribution. To delete an RTMP distribution using the CloudFront API, perform the following steps.

To delete an RTMP distribution using the CloudFront API:

  1. Disable the RTMP distribution.

  2. Submit a GET Streaming Distribution Config request to get the current configuration and the Etag header for the distribution.

  3. Update the XML document that was returned in the response to your GET Streaming Distribution Config request to change the value of Enabled to false.

  4. Submit a PUT Streaming Distribution Config request to update the configuration for your distribution. In the request body, include the XML document that you updated in Step 3. Then set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Streaming Distribution Config request in Step 2.

  5. Review the response to the PUT Streaming Distribution Config request to confirm that the distribution was successfully disabled.

  6. Submit a GET Streaming Distribution Config request to confirm that your changes have propagated. When propagation is complete, the value of Status is Deployed.

  7. Submit a DELETE Streaming Distribution request. Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Streaming Distribution Config request in Step 2.

  8. Review the response to your DELETE Streaming Distribution request to confirm that the distribution was successfully deleted.

For information about deleting a distribution using the CloudFront console, see Deleting a Distribution in the Amazon CloudFront Developer Guide.

", "GetCloudFrontOriginAccessIdentity": "

Get the information about an origin access identity.

", "GetCloudFrontOriginAccessIdentityConfig": "

Get the configuration information about an origin access identity.

", @@ -109,7 +110,7 @@ "CertificateSource": { "base": null, "refs": { - "ViewerCertificate$CertificateSource": "

This field is deprecated. You can use one of the following: [ACMCertificateArn, IAMCertificateId, or CloudFrontDefaultCertificate].

" + "ViewerCertificate$CertificateSource": "

This field has been deprecated. Use one of the following fields instead:

" } }, "CloudFrontOriginAccessIdentity": { @@ -267,10 +268,10 @@ } }, "DefaultCacheBehavior": { - "base": "

A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior.

", + "base": "

A complex type that describes the default cache behavior if you don't specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior.

", "refs": { - "DistributionConfig$DefaultCacheBehavior": "

A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior.

", - "DistributionSummary$DefaultCacheBehavior": "

A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior.

" + "DistributionConfig$DefaultCacheBehavior": "

A complex type that describes the default cache behavior if you don't specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior.

", + "DistributionSummary$DefaultCacheBehavior": "

A complex type that describes the default cache behavior if you don't specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior.

" } }, "DeleteCloudFrontOriginAccessIdentityRequest": { @@ -283,6 +284,11 @@ "refs": { } }, + "DeleteServiceLinkedRoleRequest": { + "base": null, + "refs": { + } + }, "DeleteStreamingDistributionRequest": { "base": "

The request to delete a streaming distribution.

", "refs": { @@ -345,7 +351,7 @@ "EventType": { "base": null, "refs": { - "LambdaFunctionAssociation$EventType": "

Specifies the event type that triggers a Lambda function invocation. Valid values are:

" + "LambdaFunctionAssociation$EventType": "

Specifies the event type that triggers a Lambda function invocation. You can specify the following values:

" } }, "ForwardedValues": { @@ -364,7 +370,7 @@ "GeoRestrictionType": { "base": null, "refs": { - "GeoRestriction$RestrictionType": "

The method that you want to use to restrict distribution of your content by country:

" + "GeoRestriction$RestrictionType": "

The method that you want to use to restrict distribution of your content by country:

" } }, "GetCloudFrontOriginAccessIdentityConfigRequest": { @@ -440,13 +446,13 @@ "HeaderList": { "base": null, "refs": { - "Headers$Items": "

A complex type that contains one Name element for each header that you want CloudFront to forward to the origin and to vary on for this cache behavior. If Quantity is 0, omit Items.

" + "Headers$Items": "

A list that contains one Name element for each header that you want CloudFront to use for caching in this cache behavior. If Quantity is 0, omit Items.

" } }, "Headers": { - "base": "

A complex type that specifies the headers that you want CloudFront to forward to the origin for this cache behavior.

For the headers that you specify, CloudFront also caches separate versions of a specified object based on the header values in viewer requests. For example, suppose viewer requests for logo.jpg contain a custom Product header that has a value of either Acme or Apex, and you configure CloudFront to cache your content based on values in the Product header. CloudFront forwards the Product header to the origin and caches the response from the origin once for each header value. For more information about caching based on header values, see How CloudFront Forwards and Caches Headers in the Amazon CloudFront Developer Guide.

", + "base": "

A complex type that specifies the request headers, if any, that you want CloudFront to base caching on for this cache behavior.

For the headers that you specify, CloudFront caches separate versions of a specified object based on the header values in viewer requests. For example, suppose viewer requests for logo.jpg contain a custom product header that has a value of either acme or apex, and you configure CloudFront to cache your content based on values in the product header. CloudFront forwards the product header to the origin and caches the response from the origin once for each header value. For more information about caching based on header values, see How CloudFront Forwards and Caches Headers in the Amazon CloudFront Developer Guide.

", "refs": { - "ForwardedValues$Headers": "

A complex type that specifies the Headers, if any, that you want CloudFront to vary upon for this cache behavior.

" + "ForwardedValues$Headers": "

A complex type that specifies the Headers, if any, that you want CloudFront to base caching on for this cache behavior.

" } }, "HttpVersion": { @@ -462,7 +468,7 @@ } }, "InconsistentQuantities": { - "base": "

The value of Quantity and the size of Items do not match.

", + "base": "

The value of Quantity and the size of Items don't match.

", "refs": { } }, @@ -713,7 +719,7 @@ "LocationList": { "base": null, "refs": { - "GeoRestriction$Items": "

A complex type that contains a Location element for each country in which you want CloudFront either to distribute your content (whitelist) or not distribute your content (blacklist).

The Location element is a two-letter, uppercase country code for a country that you want to include in your blacklist or whitelist. Include one Location element for each country.

CloudFront and MaxMind both use ISO 3166 country codes. For the current list of countries and the corresponding codes, see ISO 3166-1-alpha-2 code on the International Organization for Standardization website. You can also refer to the country list in the CloudFront console, which includes both country names and codes.

" + "GeoRestriction$Items": "

A complex type that contains a Location element for each country in which you want CloudFront either to distribute your content (whitelist) or not distribute your content (blacklist).

The Location element is a two-letter, uppercase country code for a country that you want to include in your blacklist or whitelist. Include one Location element for each country.

CloudFront and MaxMind both use ISO 3166 country codes. For the current list of countries and the corresponding codes, see ISO 3166-1-alpha-2 code on the International Organization for Standardization website. You can also refer to the country list on the CloudFront console, which includes both country names and codes.

" } }, "LoggingConfig": { @@ -738,11 +744,11 @@ "MinimumProtocolVersion": { "base": null, "refs": { - "ViewerCertificate$MinimumProtocolVersion": "

Specify the minimum version of the SSL/TLS protocol that you want CloudFront to use for HTTPS connections between viewers and CloudFront: SSLv3 or TLSv1. CloudFront serves your objects only to viewers that support SSL/TLS version that you specify and later versions. The TLSv1 protocol is more secure, so we recommend that you specify SSLv3 only if your users are using browsers or devices that don't support TLSv1. Note the following:

" + "ViewerCertificate$MinimumProtocolVersion": "

Specify the security policy that you want CloudFront to use for HTTPS connections. A security policy determines two settings:

On the CloudFront console, this setting is called Security policy.

We recommend that you specify TLSv1.1_2016 unless your users are using browsers or devices that do not support TLSv1.1 or later.

When both of the following are true, you must specify TLSv1 or later for the security policy:

If you specify true for CloudFrontDefaultCertificate, CloudFront automatically sets the security policy to TLSv1 regardless of the value that you specify for MinimumProtocolVersion.

For information about the relationship between the security policy that you choose and the protocols and ciphers that CloudFront uses to communicate with viewers, see Supported SSL/TLS Protocols and Ciphers for Communication Between Viewers and CloudFront in the Amazon CloudFront Developer Guide.

" } }, "MissingBody": { - "base": "

This operation requires a body. Ensure that the body is present and the Content-Type header is set.

", + "base": "

This operation requires a body. Ensure that the body is present and the Content-Type header is set.

", "refs": { } }, @@ -865,6 +871,11 @@ "UntagResourceRequest$Resource": "

An ARN of a CloudFront resource.

" } }, + "ResourceInUse": { + "base": null, + "refs": { + } + }, "Restrictions": { "base": "

A complex type that identifies ways in which you want to restrict distribution of your content.

", "refs": { @@ -888,7 +899,7 @@ "SSLSupportMethod": { "base": null, "refs": { - "ViewerCertificate$SSLSupportMethod": "

If you specify a value for ACMCertificateArn or for IAMCertificateId, you must also specify how you want CloudFront to serve HTTPS requests: using a method that works for all clients or one that works for most clients:

Do not specify a value for SSLSupportMethod if you specified <CloudFrontDefaultCertificate>true<CloudFrontDefaultCertificate>.

For more information, see Using Alternate Domain Names and HTTPS in the Amazon CloudFront Developer Guide.

" + "ViewerCertificate$SSLSupportMethod": "

If you specify a value for ViewerCertificate$ACMCertificateArn or for ViewerCertificate$IAMCertificateId, you must also specify how you want CloudFront to serve HTTPS requests: using a method that works for all clients or one that works for most clients:

Don't specify a value for SSLSupportMethod if you specified <CloudFrontDefaultCertificate>true<CloudFrontDefaultCertificate>.

For more information, see Using Alternate Domain Names and HTTPS in the Amazon CloudFront Developer Guide.

" } }, "Signer": { @@ -1106,7 +1117,7 @@ } }, "TrustedSignerDoesNotExist": { - "base": "

One or more of your trusted signers do not exist.

", + "base": "

One or more of your trusted signers don't exist.

", "refs": { } }, @@ -1155,7 +1166,7 @@ } }, "ViewerCertificate": { - "base": "

A complex type that specifies the following:

For more information, see Using an HTTPS Connection to Access Your Objects in the Amazon Amazon CloudFront Developer Guide.

", + "base": "

A complex type that specifies the following:

You must specify only one of the following values:

Don't specify false for CloudFrontDefaultCertificate.

If you want viewers to use HTTP instead of HTTPS to request your objects: Specify the following value:

<CloudFrontDefaultCertificate>true<CloudFrontDefaultCertificate>

In addition, specify allow-all for ViewerProtocolPolicy for all of your cache behaviors.

If you want viewers to use HTTPS to request your objects: Choose the type of certificate that you want to use based on whether you're using an alternate domain name for your objects or the CloudFront domain name:

If you want viewers to use HTTPS, you must also specify one of the following values in your cache behaviors:

You can also optionally require that CloudFront use HTTPS to communicate with your origin by specifying one of the following values for the applicable origins:

For more information, see Using Alternate Domain Names and HTTPS in the Amazon CloudFront Developer Guide.

", "refs": { "DistributionConfig$ViewerCertificate": null, "DistributionSummary$ViewerCertificate": null @@ -1178,20 +1189,20 @@ "DefaultCacheBehavior$SmoothStreaming": "

Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify true; if not, specify false. If you specify true for SmoothStreaming, you can still distribute other content using this cache behavior if the content matches the value of PathPattern.

", "DefaultCacheBehavior$Compress": "

Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide.

", "DistributionConfig$Enabled": "

From this field, you can enable or disable the selected distribution.

If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.

", - "DistributionConfig$IsIPV6Enabled": "

If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify true. If you specify false, CloudFront responds to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.

In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the IpAddress parameter to restrict the IP addresses that can access your content, do not enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see Creating a Signed URL Using a Custom Policy in the Amazon CloudFront Developer Guide.

If you're using an Amazon Route 53 alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true:

For more information, see Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name in the Amazon Route 53 Developer Guide.

If you created a CNAME resource record set, either with Amazon Route 53 or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request.

", + "DistributionConfig$IsIPV6Enabled": "

If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify true. If you specify false, CloudFront responds to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.

In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the IpAddress parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see Creating a Signed URL Using a Custom Policy in the Amazon CloudFront Developer Guide.

If you're using an Amazon Route 53 alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true:

For more information, see Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name in the Amazon Route 53 Developer Guide.

If you created a CNAME resource record set, either with Amazon Route 53 or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request.

", "DistributionList$IsTruncated": "

A flag that indicates whether more distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more distributions in the list.

", "DistributionSummary$Enabled": "

Whether the distribution is enabled to accept user requests for content.

", "DistributionSummary$IsIPV6Enabled": "

Whether CloudFront responds to IPv6 DNS requests with an IPv6 address for your distribution.

", "ForwardedValues$QueryString": "

Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of QueryString and on the values that you specify for QueryStringCacheKeys, if any:

If you specify true for QueryString and you don't specify any values for QueryStringCacheKeys, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin.

If you specify true for QueryString and you specify one or more values for QueryStringCacheKeys, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify.

If you specify false for QueryString, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters.

For more information, see Configuring CloudFront to Cache Based on Query String Parameters in the Amazon CloudFront Developer Guide.

", "InvalidationList$IsTruncated": "

A flag that indicates whether more invalidation batch requests remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more invalidation batches in the list.

", - "LoggingConfig$Enabled": "

Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket, prefix, and IncludeCookies, the values are automatically deleted.

", - "LoggingConfig$IncludeCookies": "

Specifies whether you want CloudFront to include cookies in access logs, specify true for IncludeCookies. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you do not want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify false for IncludeCookies.

", + "LoggingConfig$Enabled": "

Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket, prefix, and IncludeCookies, the values are automatically deleted.

", + "LoggingConfig$IncludeCookies": "

Specifies whether you want CloudFront to include cookies in access logs, specify true for IncludeCookies. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify false for IncludeCookies.

", "StreamingDistributionConfig$Enabled": "

Whether the streaming distribution is enabled to accept user requests for content.

", "StreamingDistributionList$IsTruncated": "

A flag that indicates whether more streaming distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more distributions in the list.

", "StreamingDistributionSummary$Enabled": "

Whether the distribution is enabled to accept end user requests for content.

", - "StreamingLoggingConfig$Enabled": "

Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.

", + "StreamingLoggingConfig$Enabled": "

Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.

", "TrustedSigners$Enabled": "

Specifies whether you want to require viewers to use signed URLs to access the files specified by PathPattern and TargetOriginId.

", - "ViewerCertificate$CloudFrontDefaultCertificate": null + "ViewerCertificate$CloudFrontDefaultCertificate": "

For information about how and when to use CloudFrontDefaultCertificate, see ViewerCertificate.

" } }, "integer": { @@ -1216,7 +1227,7 @@ "DistributionList$MaxItems": "

The value you provided for the MaxItems request parameter.

", "DistributionList$Quantity": "

The number of distributions that were created by the current AWS account.

", "GeoRestriction$Quantity": "

When geo restriction is enabled, this is the number of countries in your whitelist or blacklist. Otherwise, when it is not enabled, Quantity is 0, and you can omit Items.

", - "Headers$Quantity": "

The number of different headers that you want CloudFront to forward to the origin for this cache behavior. You can configure each cache behavior in a web distribution to do one of the following:

", + "Headers$Quantity": "

The number of different headers that you want CloudFront to base caching on for this cache behavior. You can configure each cache behavior in a web distribution to do one of the following:

Regardless of which option you choose, CloudFront forwards headers to your origin based on whether the origin is an S3 bucket or a custom origin. See the following documentation:

", "InvalidationList$MaxItems": "

The value that you provided for the MaxItems request parameter.

", "InvalidationList$Quantity": "

The number of invalidation batches that were created by the current AWS account.

", "KeyPairIds$Quantity": "

The number of active CloudFront key pairs for AwsAccountNumber.

For more information, see ActiveTrustedSigners.

", @@ -1252,7 +1263,7 @@ "CNAMEAlreadyExists$Message": null, "CacheBehavior$PathPattern": "

The pattern (for example, images/*.jpg) that specifies which requests to apply the behavior to. When CloudFront receives a viewer request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution.

You can optionally include a slash (/) at the beginning of the path pattern. For example, /images/*.jpg. CloudFront behavior is the same with or without the leading /.

The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior.

For more information, see Path Pattern in the Amazon CloudFront Developer Guide.

", "CacheBehavior$TargetOriginId": "

The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.

", - "CloudFrontOriginAccessIdentity$Id": "

The ID for the origin access identity. For example: E74FTE3AJFJ256A.

", + "CloudFrontOriginAccessIdentity$Id": "

The ID for the origin access identity, for example, E74FTE3AJFJ256A.

", "CloudFrontOriginAccessIdentity$S3CanonicalUserId": "

The Amazon S3 canonical user ID for the origin access identity, used when giving the origin access identity read permission to an object in Amazon S3.

", "CloudFrontOriginAccessIdentityAlreadyExists$Message": null, "CloudFrontOriginAccessIdentityConfig$CallerReference": "

A unique number that ensures the request can't be replayed.

If the CallerReference is new (no matter the content of the CloudFrontOriginAccessIdentityConfig object), a new origin access identity is created.

If the CallerReference is a value already sent in a previous identity request, and the content of the CloudFrontOriginAccessIdentityConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request.

If the CallerReference is a value you already sent in a previous request to create an identity, but the content of the CloudFrontOriginAccessIdentityConfig is different from the original request, CloudFront returns a CloudFrontOriginAccessIdentityAlreadyExists error.

", @@ -1283,15 +1294,16 @@ "DeleteCloudFrontOriginAccessIdentityRequest$IfMatch": "

The value of the ETag header you received from a previous GET or PUT request. For example: E2QWRUHAPOMQZL.

", "DeleteDistributionRequest$Id": "

The distribution ID.

", "DeleteDistributionRequest$IfMatch": "

The value of the ETag header that you received when you disabled the distribution. For example: E2QWRUHAPOMQZL.

", + "DeleteServiceLinkedRoleRequest$RoleName": null, "DeleteStreamingDistributionRequest$Id": "

The distribution ID.

", "DeleteStreamingDistributionRequest$IfMatch": "

The value of the ETag header that you received when you disabled the streaming distribution. For example: E2QWRUHAPOMQZL.

", "Distribution$Id": "

The identifier for the distribution. For example: EDFDVBD632BHDS5.

", "Distribution$ARN": "

The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.

", "Distribution$Status": "

This response element indicates the current status of the distribution. When the status is Deployed, the distribution's information is fully propagated to all CloudFront edge locations.

", - "Distribution$DomainName": "

The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.

", + "Distribution$DomainName": "

The domain name corresponding to the distribution, for example, d111111abcdef8.cloudfront.net.

", "DistributionAlreadyExists$Message": null, "DistributionConfig$CallerReference": "

A unique value (for example, a date-time stamp) that ensures that the request can't be replayed.

If the value of CallerReference is new (regardless of the content of the DistributionConfig object), CloudFront creates a new distribution.

If CallerReference is a value you already sent in a previous request to create a distribution, and if the content of the DistributionConfig is identical to the original request (ignoring white space), CloudFront returns the same the response that it returned to the original request.

If CallerReference is a value you already sent in a previous request to create a distribution but the content of the DistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.

", - "DistributionConfig$DefaultRootObject": "

The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/product-description.html). Specifying a default root object avoids exposing the contents of your distribution.

Specify only the object name, for example, index.html. Do not add a / before the object name.

If you don't want to specify a default root object when you create a distribution, include an empty DefaultRootObject element.

To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element.

To replace the default root object, update the distribution configuration and specify the new object.

For more information about the default root object, see Creating a Default Root Object in the Amazon CloudFront Developer Guide.

", + "DistributionConfig$DefaultRootObject": "

The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/product-description.html). Specifying a default root object avoids exposing the contents of your distribution.

Specify only the object name, for example, index.html. Don't add a / before the object name.

If you don't want to specify a default root object when you create a distribution, include an empty DefaultRootObject element.

To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element.

To replace the default root object, update the distribution configuration and specify the new object.

For more information about the default root object, see Creating a Default Root Object in the Amazon CloudFront Developer Guide.

", "DistributionConfig$Comment": "

Any comments you want to include about the distribution.

If you don't want to specify a comment, include an empty Comment element.

To delete an existing comment, update the distribution configuration and include an empty Comment element.

To add or change a comment, update the distribution configuration and specify the new comment.

", "DistributionConfig$WebACLId": "

A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution.

AWS WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about AWS WAF, see the AWS WAF Developer Guide.

", "DistributionList$Marker": "

The value you provided for the Marker request parameter.

", @@ -1300,7 +1312,7 @@ "DistributionSummary$Id": "

The identifier for the distribution. For example: EDFDVBD632BHDS5.

", "DistributionSummary$ARN": "

The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.

", "DistributionSummary$Status": "

The current status of the distribution. When the status is Deployed, the distribution's information is propagated to all CloudFront edge locations.

", - "DistributionSummary$DomainName": "

The domain name that corresponds to the distribution. For example: d604721fxaaqy9.cloudfront.net.

", + "DistributionSummary$DomainName": "

The domain name that corresponds to the distribution, for example, d111111abcdef8.cloudfront.net.

", "DistributionSummary$Comment": "

The comment originally specified when this distribution was created.

", "DistributionSummary$WebACLId": "

The Web ACL Id (if any) associated with the distribution.

", "GetCloudFrontOriginAccessIdentityConfigRequest$Id": "

The identity's ID.

", @@ -1351,7 +1363,7 @@ "InvalidationSummary$Id": "

The unique ID for an invalidation request.

", "InvalidationSummary$Status": "

The status of an invalidation request.

", "KeyPairIdList$member": null, - "LambdaFunctionAssociation$LambdaFunctionARN": "

The ARN of the Lambda function.

", + "LambdaFunctionAssociation$LambdaFunctionARN": "

The ARN of the Lambda function. You must specify the ARN of a function version; you can't specify a Lambda alias or $LATEST.

", "ListCloudFrontOriginAccessIdentitiesRequest$Marker": "

Use this when paginating results to indicate where to begin in your list of origin access identities. The results include identities in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last identity on that page).

", "ListCloudFrontOriginAccessIdentitiesRequest$MaxItems": "

The maximum number of origin access identities you want in the response body.

", "ListDistributionsByWebACLIdRequest$Marker": "

Use Marker and MaxItems to control pagination of results. If you have more than MaxItems distributions that satisfy the request, the response includes a NextMarker element. To get the next page of results, submit another request. For the value of Marker, specify the value of NextMarker from the last response. (For the first request, omit Marker.)

", @@ -1366,7 +1378,7 @@ "ListStreamingDistributionsRequest$MaxItems": "

The value that you provided for the MaxItems request parameter.

", "LocationList$member": null, "LoggingConfig$Bucket": "

The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.

", - "LoggingConfig$Prefix": "

An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.

", + "LoggingConfig$Prefix": "

An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty Prefix element in the Logging element.

", "MissingBody$Message": null, "NoSuchCloudFrontOriginAccessIdentity$Message": null, "NoSuchDistribution$Message": null, @@ -1375,13 +1387,14 @@ "NoSuchResource$Message": null, "NoSuchStreamingDistribution$Message": null, "Origin$Id": "

A unique identifier for the origin. The value of Id must be unique within the distribution.

When you specify the value of TargetOriginId for the default cache behavior or for another cache behavior, you indicate the origin to which you want the cache behavior to route requests by specifying the value of the Id element for that origin. When a request matches the path pattern for that cache behavior, CloudFront routes the request to the specified origin. For more information, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.

", - "Origin$DomainName": "

Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com.

Constraints for Amazon S3 origins:

Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com.

Constraints for custom origins:

", + "Origin$DomainName": "

Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com.

Constraints for Amazon S3 origins:

Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com.

Constraints for custom origins:

", "Origin$OriginPath": "

An optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin. When you include the OriginPath element, specify the directory name, beginning with a /. CloudFront appends the directory name to the value of DomainName, for example, example.com/production. Do not include a / at the end of the directory name.

For example, suppose you've specified the following values for your distribution:

When a user enters example.com/index.html in a browser, CloudFront sends a request to Amazon S3 for myawsbucket/production/index.html.

When a user enters example.com/acme/index.html in a browser, CloudFront sends a request to Amazon S3 for myawsbucket/production/acme/index.html.

", "OriginCustomHeader$HeaderName": "

The name of a header that you want CloudFront to forward to your origin. For more information, see Forwarding Custom Headers to Your Origin (Web Distributions Only) in the Amazon Amazon CloudFront Developer Guide.

", "OriginCustomHeader$HeaderValue": "

The value for the header that you specified in the HeaderName field.

", "PathList$member": null, "PreconditionFailed$Message": null, "QueryStringCacheKeysList$member": null, + "ResourceInUse$Message": null, "S3Origin$DomainName": "

The DNS name of the Amazon S3 origin.

", "S3Origin$OriginAccessIdentity": "

The CloudFront origin access identity to associate with the RTMP distribution. Use an origin access identity to configure the distribution so that end users can only access objects in an Amazon S3 bucket through CloudFront.

If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element.

To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element.

To replace the origin access identity, update the distribution configuration and specify the new origin access identity.

For more information, see Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content in the Amazon Amazon CloudFront Developer Guide.

", "S3OriginConfig$OriginAccessIdentity": "

The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can only access objects in an Amazon S3 bucket through CloudFront. The format of the value is:

origin-access-identity/cloudfront/ID-of-origin-access-identity

where ID-of-origin-access-identity is the value that CloudFront returned in the ID element when you created the origin access identity.

If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element.

To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element.

To replace the origin access identity, update the distribution configuration and specify the new origin access identity.

For more information about the origin access identity, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide.

", @@ -1389,20 +1402,20 @@ "StreamingDistribution$Id": "

The identifier for the RTMP distribution. For example: EGTXBD79EXAMPLE.

", "StreamingDistribution$ARN": null, "StreamingDistribution$Status": "

The current status of the RTMP distribution. When the status is Deployed, the distribution's information is propagated to all CloudFront edge locations.

", - "StreamingDistribution$DomainName": "

The domain name that corresponds to the streaming distribution. For example: s5c39gqb8ow64r.cloudfront.net.

", + "StreamingDistribution$DomainName": "

The domain name that corresponds to the streaming distribution, for example, s5c39gqb8ow64r.cloudfront.net.

", "StreamingDistributionAlreadyExists$Message": null, "StreamingDistributionConfig$CallerReference": "

A unique number that ensures that the request can't be replayed. If the CallerReference is new (no matter the content of the StreamingDistributionConfig object), a new streaming distribution is created. If the CallerReference is a value that you already sent in a previous request to create a streaming distribution, and the content of the StreamingDistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value that you already sent in a previous request to create a streaming distribution but the content of the StreamingDistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.

", "StreamingDistributionConfig$Comment": "

Any comments you want to include about the streaming distribution.

", "StreamingDistributionList$Marker": "

The value you provided for the Marker request parameter.

", "StreamingDistributionList$NextMarker": "

If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your RTMP distributions where they left off.

", "StreamingDistributionNotDisabled$Message": null, - "StreamingDistributionSummary$Id": "

The identifier for the distribution. For example: EDFDVBD632BHDS5.

", + "StreamingDistributionSummary$Id": "

The identifier for the distribution, for example, EDFDVBD632BHDS5.

", "StreamingDistributionSummary$ARN": "

The ARN (Amazon Resource Name) for the streaming distribution. For example: arn:aws:cloudfront::123456789012:streaming-distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID.

", "StreamingDistributionSummary$Status": "

Indicates the current status of the distribution. When the status is Deployed, the distribution's information is fully propagated throughout the Amazon CloudFront system.

", - "StreamingDistributionSummary$DomainName": "

The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.

", + "StreamingDistributionSummary$DomainName": "

The domain name corresponding to the distribution, for example, d111111abcdef8.cloudfront.net.

", "StreamingDistributionSummary$Comment": "

The comment originally specified when this distribution was created.

", "StreamingLoggingConfig$Bucket": "

The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.

", - "StreamingLoggingConfig$Prefix": "

An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.

", + "StreamingLoggingConfig$Prefix": "

An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, myprefix/. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty Prefix element in the Logging element.

", "TooManyCacheBehaviors$Message": null, "TooManyCertificates$Message": null, "TooManyCloudFrontOriginAccessIdentities$Message": null, @@ -1429,9 +1442,9 @@ "UpdateStreamingDistributionRequest$Id": "

The streaming distribution's id.

", "UpdateStreamingDistributionRequest$IfMatch": "

The value of the ETag header that you received when retrieving the streaming distribution's configuration. For example: E2QWRUHAPOMQZL.

", "UpdateStreamingDistributionResult$ETag": "

The current version of the configuration. For example: E2QWRUHAPOMQZL.

", - "ViewerCertificate$IAMCertificateId": null, - "ViewerCertificate$ACMCertificateArn": null, - "ViewerCertificate$Certificate": "

Include one of these values to specify the following:

You must specify one (and only one) of the three values. Do not specify false for CloudFrontDefaultCertificate.

If you want viewers to use HTTP to request your objects: Specify the following value:

<CloudFrontDefaultCertificate>true<CloudFrontDefaultCertificate>

In addition, specify allow-all for ViewerProtocolPolicy for all of your cache behaviors.

If you want viewers to use HTTPS to request your objects: Choose the type of certificate that you want to use based on whether you're using an alternate domain name for your objects or the CloudFront domain name:

" + "ViewerCertificate$IAMCertificateId": "

For information about how and when to use IAMCertificateId, see ViewerCertificate.

", + "ViewerCertificate$ACMCertificateArn": "

For information about how and when to use ACMCertificateArn, see ViewerCertificate.

", + "ViewerCertificate$Certificate": "

This field has been deprecated. Use one of the following fields instead:

" } }, "timestamp": { diff --git a/models/apis/cloudhsm/2014-05-30/api-2.json b/models/apis/cloudhsm/2014-05-30/api-2.json index 5cc5def58c9..3b36a5b42d7 100644 --- a/models/apis/cloudhsm/2014-05-30/api-2.json +++ b/models/apis/cloudhsm/2014-05-30/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"CloudHSM", "serviceFullName":"Amazon CloudHSM", + "serviceId":"CloudHSM", "signatureVersion":"v4", "targetPrefix":"CloudHsmFrontendService", "uid":"cloudhsm-2014-05-30" diff --git a/models/apis/cloudhsm/2014-05-30/docs-2.json b/models/apis/cloudhsm/2014-05-30/docs-2.json index 2a4f88482e6..998867beda2 100644 --- a/models/apis/cloudhsm/2014-05-30/docs-2.json +++ b/models/apis/cloudhsm/2014-05-30/docs-2.json @@ -1,27 +1,27 @@ { "version": "2.0", - "service": "AWS CloudHSM Service", + "service": "AWS CloudHSM Service

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

", "operations": { - "AddTagsToResource": "

Adds or overwrites one or more tags for the specified AWS CloudHSM resource.

Each tag consists of a key and a value. Tag keys must be unique to each resource.

", - "CreateHapg": "

Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs.

", - "CreateHsm": "

Creates an uninitialized HSM instance.

There is an upfront fee charged for each HSM instance that you create with the CreateHsm operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the DeleteHsm operation, go to the AWS Support Center, create a new case, and select Account and Billing Support.

It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the DescribeHsm operation. The HSM is ready to be initialized when the status changes to RUNNING.

", - "CreateLunaClient": "

Creates an HSM client.

", - "DeleteHapg": "

Deletes a high-availability partition group.

", - "DeleteHsm": "

Deletes an HSM. After completion, this operation cannot be undone and your key material cannot be recovered.

", - "DeleteLunaClient": "

Deletes a client.

", - "DescribeHapg": "

Retrieves information about a high-availability partition group.

", - "DescribeHsm": "

Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number.

", - "DescribeLunaClient": "

Retrieves information about an HSM client.

", - "GetConfig": "

Gets the configuration files necessary to connect to all high availability partition groups the client is associated with.

", - "ListAvailableZones": "

Lists the Availability Zones that have available AWS CloudHSM capacity.

", - "ListHapgs": "

Lists the high-availability partition groups for the account.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHapgs to retrieve the next set of items.

", - "ListHsms": "

Retrieves the identifiers of all of the HSMs provisioned for the current customer.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHsms to retrieve the next set of items.

", - "ListLunaClients": "

Lists all of the clients.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListLunaClients to retrieve the next set of items.

", - "ListTagsForResource": "

Returns a list of all tags for the specified AWS CloudHSM resource.

", - "ModifyHapg": "

Modifies an existing high-availability partition group.

", - "ModifyHsm": "

Modifies an HSM.

This operation can result in the HSM being offline for up to 15 minutes while the AWS CloudHSM service is reconfigured. If you are modifying a production HSM, you should ensure that your AWS CloudHSM service is configured for high availability, and consider executing this operation during a maintenance window.

", - "ModifyLunaClient": "

Modifies the certificate used by the client.

This action can potentially start a workflow to install the new certificate on the client's HSMs.

", - "RemoveTagsFromResource": "

Removes one or more tags from the specified AWS CloudHSM resource.

To remove a tag, specify only the tag key to remove (not the value). To overwrite the value for an existing tag, use AddTagsToResource.

" + "AddTagsToResource": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Adds or overwrites one or more tags for the specified AWS CloudHSM resource.

Each tag consists of a key and a value. Tag keys must be unique to each resource.

", + "CreateHapg": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs.

", + "CreateHsm": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Creates an uninitialized HSM instance.

There is an upfront fee charged for each HSM instance that you create with the CreateHsm operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the DeleteHsm operation, go to the AWS Support Center, create a new case, and select Account and Billing Support.

It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the DescribeHsm operation. The HSM is ready to be initialized when the status changes to RUNNING.

", + "CreateLunaClient": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Creates an HSM client.

", + "DeleteHapg": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Deletes a high-availability partition group.

", + "DeleteHsm": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Deletes an HSM. After completion, this operation cannot be undone and your key material cannot be recovered.

", + "DeleteLunaClient": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Deletes a client.

", + "DescribeHapg": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Retrieves information about a high-availability partition group.

", + "DescribeHsm": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number.

", + "DescribeLunaClient": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Retrieves information about an HSM client.

", + "GetConfig": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Gets the configuration files necessary to connect to all high availability partition groups the client is associated with.

", + "ListAvailableZones": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Lists the Availability Zones that have available AWS CloudHSM capacity.

", + "ListHapgs": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Lists the high-availability partition groups for the account.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHapgs to retrieve the next set of items.

", + "ListHsms": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Retrieves the identifiers of all of the HSMs provisioned for the current customer.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHsms to retrieve the next set of items.

", + "ListLunaClients": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Lists all of the clients.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListLunaClients to retrieve the next set of items.

", + "ListTagsForResource": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Returns a list of all tags for the specified AWS CloudHSM resource.

", + "ModifyHapg": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Modifies an existing high-availability partition group.

", + "ModifyHsm": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Modifies an HSM.

This operation can result in the HSM being offline for up to 15 minutes while the AWS CloudHSM service is reconfigured. If you are modifying a production HSM, you should ensure that your AWS CloudHSM service is configured for high availability, and consider executing this operation during a maintenance window.

", + "ModifyLunaClient": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Modifies the certificate used by the client.

This action can potentially start a workflow to install the new certificate on the client's HSMs.

", + "RemoveTagsFromResource": "

This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.

For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.

Removes one or more tags from the specified AWS CloudHSM resource.

To remove a tag, specify only the tag key to remove (not the value). To overwrite the value for an existing tag, use AddTagsToResource.

" }, "shapes": { "AZ": { @@ -132,12 +132,12 @@ } }, "CreateHsmRequest": { - "base": "

Contains the inputs for the CreateHsm operation.

", + "base": "

Contains the inputs for the CreateHsm operation.

", "refs": { } }, "CreateHsmResponse": { - "base": "

Contains the output of the CreateHsm operation.

", + "base": "

Contains the output of the CreateHsm operation.

", "refs": { } }, @@ -192,7 +192,7 @@ } }, "DescribeHsmRequest": { - "base": "

Contains the inputs for the DescribeHsm operation.

", + "base": "

Contains the inputs for the DescribeHsm operation.

", "refs": { } }, @@ -220,7 +220,7 @@ "ExternalId": { "base": null, "refs": { - "CreateHsmRequest$ExternalId": "

The external ID from IamRoleArn, if present.

", + "CreateHsmRequest$ExternalId": "

The external ID from IamRoleArn, if present.

", "ModifyHsmRequest$ExternalId": "

The new external ID.

" } }, @@ -258,7 +258,7 @@ "refs": { "CreateHsmResponse$HsmArn": "

The ARN of the HSM.

", "DeleteHsmRequest$HsmArn": "

The ARN of the HSM to delete.

", - "DescribeHsmRequest$HsmArn": "

The ARN of the HSM. Either the HsmArn or the SerialNumber parameter must be specified.

", + "DescribeHsmRequest$HsmArn": "

The ARN of the HSM. Either the HsmArn or the SerialNumber parameter must be specified.

", "DescribeHsmResponse$HsmArn": "

The ARN of the HSM.

", "HsmList$member": null, "ModifyHsmRequest$HsmArn": "

The ARN of the HSM to modify.

", @@ -268,16 +268,16 @@ "HsmList": { "base": "

Contains a list of ARNs that identify the HSMs.

", "refs": { - "DescribeHapgResponse$HsmsLastActionFailed": null, - "DescribeHapgResponse$HsmsPendingDeletion": null, - "DescribeHapgResponse$HsmsPendingRegistration": null, + "DescribeHapgResponse$HsmsLastActionFailed": "

", + "DescribeHapgResponse$HsmsPendingDeletion": "

", + "DescribeHapgResponse$HsmsPendingRegistration": "

", "ListHsmsResponse$HsmList": "

The list of ARNs that identify the HSMs.

" } }, "HsmSerialNumber": { "base": null, "refs": { - "DescribeHsmRequest$HsmSerialNumber": "

The serial number of the HSM. Either the HsmArn or the HsmSerialNumber parameter must be specified.

", + "DescribeHsmRequest$HsmSerialNumber": "

The serial number of the HSM. Either the HsmArn or the HsmSerialNumber parameter must be specified.

", "DescribeHsmResponse$SerialNumber": "

The serial number of the HSM.

" } }, @@ -345,7 +345,7 @@ } }, "ListHsmsResponse": { - "base": "

Contains the output of the ListHsms operation.

", + "base": "

Contains the output of the ListHsms operation.

", "refs": { } }, @@ -402,12 +402,12 @@ "PaginationToken": { "base": null, "refs": { - "ListHapgsRequest$NextToken": "

The NextToken value from a previous call to ListHapgs. Pass null if this is the first call.

", - "ListHapgsResponse$NextToken": "

If not null, more results are available. Pass this value to ListHapgs to retrieve the next set of items.

", - "ListHsmsRequest$NextToken": "

The NextToken value from a previous call to ListHsms. Pass null if this is the first call.

", - "ListHsmsResponse$NextToken": "

If not null, more results are available. Pass this value to ListHsms to retrieve the next set of items.

", - "ListLunaClientsRequest$NextToken": "

The NextToken value from a previous call to ListLunaClients. Pass null if this is the first call.

", - "ListLunaClientsResponse$NextToken": "

If not null, more results are available. Pass this to ListLunaClients to retrieve the next set of items.

" + "ListHapgsRequest$NextToken": "

The NextToken value from a previous call to ListHapgs. Pass null if this is the first call.

", + "ListHapgsResponse$NextToken": "

If not null, more results are available. Pass this value to ListHapgs to retrieve the next set of items.

", + "ListHsmsRequest$NextToken": "

The NextToken value from a previous call to ListHsms. Pass null if this is the first call.

", + "ListHsmsResponse$NextToken": "

If not null, more results are available. Pass this value to ListHsms to retrieve the next set of items.

", + "ListLunaClientsRequest$NextToken": "

The NextToken value from a previous call to ListLunaClients. Pass null if this is the first call.

", + "ListLunaClientsResponse$NextToken": "

If not null, more results are available. Pass this to ListLunaClients to retrieve the next set of items.

" } }, "PartitionArn": { @@ -484,7 +484,7 @@ } }, "SubscriptionType": { - "base": "

Specifies the type of subscription for the HSM.

", + "base": "

Specifies the type of subscription for the HSM.

", "refs": { "CreateHsmRequest$SubscriptionType": null, "DescribeHsmResponse$SubscriptionType": null diff --git a/models/apis/cloudhsm/2014-05-30/paginators-1.json b/models/apis/cloudhsm/2014-05-30/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/cloudhsm/2014-05-30/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/cloudhsmv2/2017-04-28/api-2.json b/models/apis/cloudhsmv2/2017-04-28/api-2.json new file mode 100644 index 00000000000..2ad3d434c4e --- /dev/null +++ b/models/apis/cloudhsmv2/2017-04-28/api-2.json @@ -0,0 +1,604 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-04-28", + "endpointPrefix":"cloudhsmv2", + "jsonVersion":"1.1", + "protocol":"json", + "serviceAbbreviation":"CloudHSM V2", + "serviceFullName":"AWS CloudHSM V2", + "signatureVersion":"v4", + "signingName":"cloudhsm", + "targetPrefix":"BaldrApiService", + "uid":"cloudhsmv2-2017-04-28" + }, + "operations":{ + "CreateCluster":{ + "name":"CreateCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateClusterRequest"}, + "output":{"shape":"CreateClusterResponse"}, + "errors":[ + {"shape":"CloudHsmInternalFailureException"}, + {"shape":"CloudHsmServiceException"}, + {"shape":"CloudHsmResourceNotFoundException"}, + {"shape":"CloudHsmInvalidRequestException"}, + {"shape":"CloudHsmAccessDeniedException"} + ] + }, + "CreateHsm":{ + "name":"CreateHsm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateHsmRequest"}, + "output":{"shape":"CreateHsmResponse"}, + "errors":[ + {"shape":"CloudHsmInternalFailureException"}, + {"shape":"CloudHsmServiceException"}, + {"shape":"CloudHsmInvalidRequestException"}, + {"shape":"CloudHsmResourceNotFoundException"}, + {"shape":"CloudHsmAccessDeniedException"} + ] + }, + "DeleteCluster":{ + "name":"DeleteCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteClusterRequest"}, + "output":{"shape":"DeleteClusterResponse"}, + "errors":[ + {"shape":"CloudHsmInternalFailureException"}, + {"shape":"CloudHsmServiceException"}, + {"shape":"CloudHsmResourceNotFoundException"}, + {"shape":"CloudHsmInvalidRequestException"}, + {"shape":"CloudHsmAccessDeniedException"} + ] + }, + "DeleteHsm":{ + "name":"DeleteHsm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteHsmRequest"}, + "output":{"shape":"DeleteHsmResponse"}, + "errors":[ + {"shape":"CloudHsmInternalFailureException"}, + {"shape":"CloudHsmServiceException"}, + {"shape":"CloudHsmResourceNotFoundException"}, + {"shape":"CloudHsmInvalidRequestException"}, + {"shape":"CloudHsmAccessDeniedException"} + ] + }, + "DescribeBackups":{ + "name":"DescribeBackups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeBackupsRequest"}, + "output":{"shape":"DescribeBackupsResponse"}, + "errors":[ + {"shape":"CloudHsmInternalFailureException"}, + {"shape":"CloudHsmServiceException"}, + {"shape":"CloudHsmResourceNotFoundException"}, + {"shape":"CloudHsmInvalidRequestException"}, + {"shape":"CloudHsmAccessDeniedException"} + ] + }, + "DescribeClusters":{ + "name":"DescribeClusters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClustersRequest"}, + "output":{"shape":"DescribeClustersResponse"}, + "errors":[ + {"shape":"CloudHsmInternalFailureException"}, + {"shape":"CloudHsmServiceException"}, + {"shape":"CloudHsmInvalidRequestException"}, + {"shape":"CloudHsmAccessDeniedException"} + ] + }, + "InitializeCluster":{ + "name":"InitializeCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"InitializeClusterRequest"}, + "output":{"shape":"InitializeClusterResponse"}, + "errors":[ + {"shape":"CloudHsmInternalFailureException"}, + {"shape":"CloudHsmServiceException"}, + {"shape":"CloudHsmResourceNotFoundException"}, + {"shape":"CloudHsmInvalidRequestException"}, + {"shape":"CloudHsmAccessDeniedException"} + ] + }, + "ListTags":{ + "name":"ListTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsRequest"}, + "output":{"shape":"ListTagsResponse"}, + "errors":[ + {"shape":"CloudHsmInternalFailureException"}, + {"shape":"CloudHsmServiceException"}, + {"shape":"CloudHsmResourceNotFoundException"}, + {"shape":"CloudHsmInvalidRequestException"}, + {"shape":"CloudHsmAccessDeniedException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"CloudHsmInternalFailureException"}, + {"shape":"CloudHsmServiceException"}, + {"shape":"CloudHsmResourceNotFoundException"}, + {"shape":"CloudHsmInvalidRequestException"}, + {"shape":"CloudHsmAccessDeniedException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"CloudHsmInternalFailureException"}, + {"shape":"CloudHsmServiceException"}, + {"shape":"CloudHsmResourceNotFoundException"}, + {"shape":"CloudHsmInvalidRequestException"}, + {"shape":"CloudHsmAccessDeniedException"} + ] + } + }, + "shapes":{ + "Backup":{ + "type":"structure", + "required":["BackupId"], + "members":{ + "BackupId":{"shape":"BackupId"}, + "BackupState":{"shape":"BackupState"}, + "ClusterId":{"shape":"ClusterId"}, + "CreateTimestamp":{"shape":"Timestamp"} + } + }, + "BackupId":{ + "type":"string", + "pattern":"backup-[2-7a-zA-Z]{11,16}" + }, + "BackupPolicy":{ + "type":"string", + "enum":["DEFAULT"] + }, + "BackupState":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "READY", + "DELETED" + ] + }, + "Backups":{ + "type":"list", + "member":{"shape":"Backup"} + }, + "Cert":{ + "type":"string", + "max":5000, + "pattern":"[a-zA-Z0-9+-/=\\s]*" + }, + "Certificates":{ + "type":"structure", + "members":{ + "ClusterCsr":{"shape":"Cert"}, + "HsmCertificate":{"shape":"Cert"}, + "AwsHardwareCertificate":{"shape":"Cert"}, + "ManufacturerHardwareCertificate":{"shape":"Cert"}, + "ClusterCertificate":{"shape":"Cert"} + } + }, + "CloudHsmAccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true + }, + "CloudHsmInternalFailureException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true, + "fault":true + }, + "CloudHsmInvalidRequestException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true + }, + "CloudHsmResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true + }, + "CloudHsmServiceException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true + }, + "Cluster":{ + "type":"structure", + "members":{ + "BackupPolicy":{"shape":"BackupPolicy"}, + "ClusterId":{"shape":"ClusterId"}, + "CreateTimestamp":{"shape":"Timestamp"}, + "Hsms":{"shape":"Hsms"}, + "HsmType":{"shape":"HsmType"}, + "PreCoPassword":{"shape":"PreCoPassword"}, + "SecurityGroup":{"shape":"SecurityGroup"}, + "SourceBackupId":{"shape":"BackupId"}, + "State":{"shape":"ClusterState"}, + "StateMessage":{"shape":"StateMessage"}, + "SubnetMapping":{"shape":"ExternalSubnetMapping"}, + "VpcId":{"shape":"VpcId"}, + "Certificates":{"shape":"Certificates"} + } + }, + "ClusterId":{ + "type":"string", + "pattern":"cluster-[2-7a-zA-Z]{11,16}" + }, + "ClusterState":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "UNINITIALIZED", + "INITIALIZE_IN_PROGRESS", + "INITIALIZED", + "ACTIVE", + "UPDATE_IN_PROGRESS", + "DELETE_IN_PROGRESS", + "DELETED", + "DEGRADED" + ] + }, + "Clusters":{ + "type":"list", + "member":{"shape":"Cluster"} + }, + "CreateClusterRequest":{ + "type":"structure", + "required":[ + "SubnetIds", + "HsmType" + ], + "members":{ + "SubnetIds":{"shape":"SubnetIds"}, + "HsmType":{"shape":"HsmType"}, + "SourceBackupId":{"shape":"BackupId"} + } + }, + "CreateClusterResponse":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "CreateHsmRequest":{ + "type":"structure", + "required":[ + "ClusterId", + "AvailabilityZone" + ], + "members":{ + "ClusterId":{"shape":"ClusterId"}, + "AvailabilityZone":{"shape":"ExternalAz"}, + "IpAddress":{"shape":"IpAddress"} + } + }, + "CreateHsmResponse":{ + "type":"structure", + "members":{ + "Hsm":{"shape":"Hsm"} + } + }, + "DeleteClusterRequest":{ + "type":"structure", + "required":["ClusterId"], + "members":{ + "ClusterId":{"shape":"ClusterId"} + } + }, + "DeleteClusterResponse":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "DeleteHsmRequest":{ + "type":"structure", + "required":["ClusterId"], + "members":{ + "ClusterId":{"shape":"ClusterId"}, + "HsmId":{"shape":"HsmId"}, + "EniId":{"shape":"EniId"}, + "EniIp":{"shape":"IpAddress"} + } + }, + "DeleteHsmResponse":{ + "type":"structure", + "members":{ + "HsmId":{"shape":"HsmId"} + } + }, + "DescribeBackupsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxSize"}, + "Filters":{"shape":"Filters"} + } + }, + "DescribeBackupsResponse":{ + "type":"structure", + "members":{ + "Backups":{"shape":"Backups"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeClustersRequest":{ + "type":"structure", + "members":{ + "Filters":{"shape":"Filters"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxSize"} + } + }, + "DescribeClustersResponse":{ + "type":"structure", + "members":{ + "Clusters":{"shape":"Clusters"}, + "NextToken":{"shape":"NextToken"} + } + }, + "EniId":{ + "type":"string", + "pattern":"eni-[0-9a-fA-F]{8}" + }, + "ExternalAz":{ + "type":"string", + "pattern":"[a-z]{2}(-(gov|isob|iso))?-(east|west|north|south|central){1,2}-\\d[a-z]" + }, + "ExternalSubnetMapping":{ + "type":"map", + "key":{"shape":"ExternalAz"}, + "value":{"shape":"SubnetId"} + }, + "Field":{ + "type":"string", + "pattern":"[a-zA-Z0-9_-]+" + }, + "Filters":{ + "type":"map", + "key":{"shape":"Field"}, + "value":{"shape":"Strings"} + }, + "Hsm":{ + "type":"structure", + "required":["HsmId"], + "members":{ + "AvailabilityZone":{"shape":"ExternalAz"}, + "ClusterId":{"shape":"ClusterId"}, + "SubnetId":{"shape":"SubnetId"}, + "EniId":{"shape":"EniId"}, + "EniIp":{"shape":"IpAddress"}, + "HsmId":{"shape":"HsmId"}, + "State":{"shape":"HsmState"}, + "StateMessage":{"shape":"String"} + } + }, + "HsmId":{ + "type":"string", + "pattern":"hsm-[2-7a-zA-Z]{11,16}" + }, + "HsmState":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "ACTIVE", + "DEGRADED", + "DELETE_IN_PROGRESS", + "DELETED" + ] + }, + "HsmType":{ + "type":"string", + "pattern":"(hsm1\\.medium)" + }, + "Hsms":{ + "type":"list", + "member":{"shape":"Hsm"} + }, + "InitializeClusterRequest":{ + "type":"structure", + "required":[ + "ClusterId", + "SignedCert", + "TrustAnchor" + ], + "members":{ + "ClusterId":{"shape":"ClusterId"}, + "SignedCert":{"shape":"Cert"}, + "TrustAnchor":{"shape":"Cert"} + } + }, + "InitializeClusterResponse":{ + "type":"structure", + "members":{ + "State":{"shape":"ClusterState"}, + "StateMessage":{"shape":"StateMessage"} + } + }, + "IpAddress":{ + "type":"string", + "pattern":"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" + }, + "ListTagsRequest":{ + "type":"structure", + "required":["ResourceId"], + "members":{ + "ResourceId":{"shape":"ClusterId"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxSize"} + } + }, + "ListTagsResponse":{ + "type":"structure", + "required":["TagList"], + "members":{ + "TagList":{"shape":"TagList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "MaxSize":{ + "type":"integer", + "max":100, + "min":1 + }, + "NextToken":{ + "type":"string", + "max":256, + "pattern":".*" + }, + "PreCoPassword":{ + "type":"string", + "max":32, + "min":7 + }, + "SecurityGroup":{ + "type":"string", + "pattern":"sg-[0-9a-fA-F]" + }, + "StateMessage":{ + "type":"string", + "max":300, + "pattern":".*" + }, + "String":{"type":"string"}, + "Strings":{ + "type":"list", + "member":{"shape":"String"} + }, + "SubnetId":{ + "type":"string", + "pattern":"subnet-[0-9a-fA-F]{8}" + }, + "SubnetIds":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "max":10, + "min":1 + }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceId", + "TagList" + ], + "members":{ + "ResourceId":{"shape":"ClusterId"}, + "TagList":{"shape":"TagList"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "Timestamp":{"type":"timestamp"}, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceId", + "TagKeyList" + ], + "members":{ + "ResourceId":{"shape":"ClusterId"}, + "TagKeyList":{"shape":"TagKeyList"} + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "VpcId":{ + "type":"string", + "pattern":"vpc-[0-9a-fA-F]" + }, + "errorMessage":{"type":"string"} + } +} diff --git a/models/apis/cloudhsmv2/2017-04-28/docs-2.json b/models/apis/cloudhsmv2/2017-04-28/docs-2.json new file mode 100644 index 00000000000..4eb35830851 --- /dev/null +++ b/models/apis/cloudhsmv2/2017-04-28/docs-2.json @@ -0,0 +1,425 @@ +{ + "version": "2.0", + "service": "

For more information about AWS CloudHSM, see AWS CloudHSM and the AWS CloudHSM User Guide.

", + "operations": { + "CreateCluster": "

Creates a new AWS CloudHSM cluster.

", + "CreateHsm": "

Creates a new hardware security module (HSM) in the specified AWS CloudHSM cluster.

", + "DeleteCluster": "

Deletes the specified AWS CloudHSM cluster. Before you can delete a cluster, you must delete all HSMs in the cluster. To see if the cluster contains any HSMs, use DescribeClusters. To delete an HSM, use DeleteHsm.

", + "DeleteHsm": "

Deletes the specified HSM. To specify an HSM, you can use its identifier (ID), the IP address of the HSM's elastic network interface (ENI), or the ID of the HSM's ENI. You need to specify only one of these values. To find these values, use DescribeClusters.

", + "DescribeBackups": "

Gets information about backups of AWS CloudHSM clusters.

This is a paginated operation, which means that each response might contain only a subset of all the backups. When the response contains only a subset of backups, it includes a NextToken value. Use this value in a subsequent DescribeBackups request to get more backups. When you receive a response with no NextToken (or an empty or null value), that means there are no more backups to get.

", + "DescribeClusters": "

Gets information about AWS CloudHSM clusters.

This is a paginated operation, which means that each response might contain only a subset of all the clusters. When the response contains only a subset of clusters, it includes a NextToken value. Use this value in a subsequent DescribeClusters request to get more clusters. When you receive a response with no NextToken (or an empty or null value), that means there are no more clusters to get.

", + "InitializeCluster": "

Claims an AWS CloudHSM cluster by submitting the cluster certificate issued by your issuing certificate authority (CA) and the CA's root certificate. Before you can claim a cluster, you must sign the cluster's certificate signing request (CSR) with your issuing CA. To get the cluster's CSR, use DescribeClusters.

", + "ListTags": "

Gets a list of tags for the specified AWS CloudHSM cluster.

This is a paginated operation, which means that each response might contain only a subset of all the tags. When the response contains only a subset of tags, it includes a NextToken value. Use this value in a subsequent ListTags request to get more tags. When you receive a response with no NextToken (or an empty or null value), that means there are no more tags to get.

", + "TagResource": "

Adds or overwrites one or more tags for the specified AWS CloudHSM cluster.

", + "UntagResource": "

Removes the specified tag or tags from the specified AWS CloudHSM cluster.

" + }, + "shapes": { + "Backup": { + "base": "

Contains information about a backup of an AWS CloudHSM cluster.

", + "refs": { + "Backups$member": null + } + }, + "BackupId": { + "base": null, + "refs": { + "Backup$BackupId": "

The identifier (ID) of the backup.

", + "Cluster$SourceBackupId": "

The identifier (ID) of the backup used to create the cluster. This value exists only when the cluster was created from a backup.

", + "CreateClusterRequest$SourceBackupId": "

The identifier (ID) of the cluster backup to restore. Use this value to restore the cluster from a backup instead of creating a new cluster. To find the backup ID, use DescribeBackups.

" + } + }, + "BackupPolicy": { + "base": null, + "refs": { + "Cluster$BackupPolicy": "

The cluster's backup policy.

" + } + }, + "BackupState": { + "base": null, + "refs": { + "Backup$BackupState": "

The state of the backup.

" + } + }, + "Backups": { + "base": null, + "refs": { + "DescribeBackupsResponse$Backups": "

A list of backups.

" + } + }, + "Cert": { + "base": null, + "refs": { + "Certificates$ClusterCsr": "

The cluster's certificate signing request (CSR). The CSR exists only when the cluster's state is UNINITIALIZED.

", + "Certificates$HsmCertificate": "

The HSM certificate issued (signed) by the HSM hardware.

", + "Certificates$AwsHardwareCertificate": "

The HSM hardware certificate issued (signed) by AWS CloudHSM.

", + "Certificates$ManufacturerHardwareCertificate": "

The HSM hardware certificate issued (signed) by the hardware manufacturer.

", + "Certificates$ClusterCertificate": "

The cluster certificate issued (signed) by the issuing certificate authority (CA) of the cluster's owner.

", + "InitializeClusterRequest$SignedCert": "

The cluster certificate issued (signed) by your issuing certificate authority (CA). The certificate must be in PEM format and can contain a maximum of 5000 characters.

", + "InitializeClusterRequest$TrustAnchor": "

The issuing certificate of the issuing certificate authority (CA) that issued (signed) the cluster certificate. This can be a root (self-signed) certificate or a certificate chain that begins with the certificate that issued the cluster certificate and ends with a root certificate. The certificate or certificate chain must be in PEM format and can contain a maximum of 5000 characters.

" + } + }, + "Certificates": { + "base": "

Contains one or more certificates or a certificate signing request (CSR).

", + "refs": { + "Cluster$Certificates": "

Contains one or more certificates or a certificate signing request (CSR).

" + } + }, + "CloudHsmAccessDeniedException": { + "base": "

The request was rejected because the requester does not have permission to perform the requested operation.

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

The request was rejected because of an AWS CloudHSM internal failure. The request can be retried.

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

The request was rejected because it is not a valid request.

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

The request was rejected because it refers to a resource that cannot be found.

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

The request was rejected because an error occurred.

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

Contains information about an AWS CloudHSM cluster.

", + "refs": { + "Clusters$member": null, + "CreateClusterResponse$Cluster": "

Information about the cluster that was created.

", + "DeleteClusterResponse$Cluster": "

Information about the cluster that was deleted.

" + } + }, + "ClusterId": { + "base": null, + "refs": { + "Backup$ClusterId": "

The identifier (ID) of the cluster that was backed up.

", + "Cluster$ClusterId": "

The cluster's identifier (ID).

", + "CreateHsmRequest$ClusterId": "

The identifier (ID) of the HSM's cluster. To find the cluster ID, use DescribeClusters.

", + "DeleteClusterRequest$ClusterId": "

The identifier (ID) of the cluster that you are deleting. To find the cluster ID, use DescribeClusters.

", + "DeleteHsmRequest$ClusterId": "

The identifier (ID) of the cluster that contains the HSM that you are deleting.

", + "Hsm$ClusterId": "

The identifier (ID) of the cluster that contains the HSM.

", + "InitializeClusterRequest$ClusterId": "

The identifier (ID) of the cluster that you are claiming. To find the cluster ID, use DescribeClusters.

", + "ListTagsRequest$ResourceId": "

The cluster identifier (ID) for the cluster whose tags you are getting. To find the cluster ID, use DescribeClusters.

", + "TagResourceRequest$ResourceId": "

The cluster identifier (ID) for the cluster that you are tagging. To find the cluster ID, use DescribeClusters.

", + "UntagResourceRequest$ResourceId": "

The cluster identifier (ID) for the cluster whose tags you are removing. To find the cluster ID, use DescribeClusters.

" + } + }, + "ClusterState": { + "base": null, + "refs": { + "Cluster$State": "

The cluster's state.

", + "InitializeClusterResponse$State": "

The cluster's state.

" + } + }, + "Clusters": { + "base": null, + "refs": { + "DescribeClustersResponse$Clusters": "

A list of clusters.

" + } + }, + "CreateClusterRequest": { + "base": null, + "refs": { + } + }, + "CreateClusterResponse": { + "base": null, + "refs": { + } + }, + "CreateHsmRequest": { + "base": null, + "refs": { + } + }, + "CreateHsmResponse": { + "base": null, + "refs": { + } + }, + "DeleteClusterRequest": { + "base": null, + "refs": { + } + }, + "DeleteClusterResponse": { + "base": null, + "refs": { + } + }, + "DeleteHsmRequest": { + "base": null, + "refs": { + } + }, + "DeleteHsmResponse": { + "base": null, + "refs": { + } + }, + "DescribeBackupsRequest": { + "base": null, + "refs": { + } + }, + "DescribeBackupsResponse": { + "base": null, + "refs": { + } + }, + "DescribeClustersRequest": { + "base": null, + "refs": { + } + }, + "DescribeClustersResponse": { + "base": null, + "refs": { + } + }, + "EniId": { + "base": null, + "refs": { + "DeleteHsmRequest$EniId": "

The identifier (ID) of the elastic network interface (ENI) of the HSM that you are deleting.

", + "Hsm$EniId": "

The identifier (ID) of the HSM's elastic network interface (ENI).

" + } + }, + "ExternalAz": { + "base": null, + "refs": { + "CreateHsmRequest$AvailabilityZone": "

The Availability Zone where you are creating the HSM. To find the cluster's Availability Zones, use DescribeClusters.

", + "ExternalSubnetMapping$key": null, + "Hsm$AvailabilityZone": "

The Availability Zone that contains the HSM.

" + } + }, + "ExternalSubnetMapping": { + "base": null, + "refs": { + "Cluster$SubnetMapping": "

A map of the cluster's subnets and their corresponding Availability Zones.

" + } + }, + "Field": { + "base": null, + "refs": { + "Filters$key": null + } + }, + "Filters": { + "base": null, + "refs": { + "DescribeBackupsRequest$Filters": "

One or more filters to limit the items returned in the response.

Use the backupIds filter to return only the specified backups. Specify backups by their backup identifier (ID).

Use the clusterIds filter to return only the backups for the specified clusters. Specify clusters by their cluster identifier (ID).

Use the states filter to return only backups that match the specified state.

", + "DescribeClustersRequest$Filters": "

One or more filters to limit the items returned in the response.

Use the clusterIds filter to return only the specified clusters. Specify clusters by their cluster identifier (ID).

Use the vpcIds filter to return only the clusters in the specified virtual private clouds (VPCs). Specify VPCs by their VPC identifier (ID).

Use the states filter to return only clusters that match the specified state.

" + } + }, + "Hsm": { + "base": "

Contains information about a hardware security module (HSM) in an AWS CloudHSM cluster.

", + "refs": { + "CreateHsmResponse$Hsm": "

Information about the HSM that was created.

", + "Hsms$member": null + } + }, + "HsmId": { + "base": null, + "refs": { + "DeleteHsmRequest$HsmId": "

The identifier (ID) of the HSM that you are deleting.

", + "DeleteHsmResponse$HsmId": "

The identifier (ID) of the HSM that was deleted.

", + "Hsm$HsmId": "

The HSM's identifier (ID).

" + } + }, + "HsmState": { + "base": null, + "refs": { + "Hsm$State": "

The HSM's state.

" + } + }, + "HsmType": { + "base": null, + "refs": { + "Cluster$HsmType": "

The type of HSM that the cluster contains.

", + "CreateClusterRequest$HsmType": "

The type of HSM to use in the cluster. Currently the only allowed value is hsm1.medium.

" + } + }, + "Hsms": { + "base": null, + "refs": { + "Cluster$Hsms": "

Contains information about the HSMs in the cluster.

" + } + }, + "InitializeClusterRequest": { + "base": null, + "refs": { + } + }, + "InitializeClusterResponse": { + "base": null, + "refs": { + } + }, + "IpAddress": { + "base": null, + "refs": { + "CreateHsmRequest$IpAddress": "

The HSM's IP address. If you specify an IP address, use an available address from the subnet that maps to the Availability Zone where you are creating the HSM. If you don't specify an IP address, one is chosen for you from that subnet.

", + "DeleteHsmRequest$EniIp": "

The IP address of the elastic network interface (ENI) of the HSM that you are deleting.

", + "Hsm$EniIp": "

The IP address of the HSM's elastic network interface (ENI).

" + } + }, + "ListTagsRequest": { + "base": null, + "refs": { + } + }, + "ListTagsResponse": { + "base": null, + "refs": { + } + }, + "MaxSize": { + "base": null, + "refs": { + "DescribeBackupsRequest$MaxResults": "

The maximum number of backups to return in the response. When there are more backups than the number you specify, the response contains a NextToken value.

", + "DescribeClustersRequest$MaxResults": "

The maximum number of clusters to return in the response. When there are more clusters than the number you specify, the response contains a NextToken value.

", + "ListTagsRequest$MaxResults": "

The maximum number of tags to return in the response. When there are more tags than the number you specify, the response contains a NextToken value.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "DescribeBackupsRequest$NextToken": "

The NextToken value that you received in the previous response. Use this value to get more backups.

", + "DescribeBackupsResponse$NextToken": "

An opaque string that indicates that the response contains only a subset of backups. Use this value in a subsequent DescribeBackups request to get more backups.

", + "DescribeClustersRequest$NextToken": "

The NextToken value that you received in the previous response. Use this value to get more clusters.

", + "DescribeClustersResponse$NextToken": "

An opaque string that indicates that the response contains only a subset of clusters. Use this value in a subsequent DescribeClusters request to get more clusters.

", + "ListTagsRequest$NextToken": "

The NextToken value that you received in the previous response. Use this value to get more tags.

", + "ListTagsResponse$NextToken": "

An opaque string that indicates that the response contains only a subset of tags. Use this value in a subsequent ListTags request to get more tags.

" + } + }, + "PreCoPassword": { + "base": null, + "refs": { + "Cluster$PreCoPassword": "

The default password for the cluster's Pre-Crypto Officer (PRECO) user.

" + } + }, + "SecurityGroup": { + "base": null, + "refs": { + "Cluster$SecurityGroup": "

The identifier (ID) of the cluster's security group.

" + } + }, + "StateMessage": { + "base": null, + "refs": { + "Cluster$StateMessage": "

A description of the cluster's state.

", + "InitializeClusterResponse$StateMessage": "

A description of the cluster's state.

" + } + }, + "String": { + "base": null, + "refs": { + "Hsm$StateMessage": "

A description of the HSM's state.

", + "Strings$member": null + } + }, + "Strings": { + "base": null, + "refs": { + "Filters$value": null + } + }, + "SubnetId": { + "base": null, + "refs": { + "ExternalSubnetMapping$value": null, + "Hsm$SubnetId": "

The subnet that contains the HSM's elastic network interface (ENI).

", + "SubnetIds$member": null + } + }, + "SubnetIds": { + "base": null, + "refs": { + "CreateClusterRequest$SubnetIds": "

The identifiers (IDs) of the subnets where you are creating the cluster. You must specify at least one subnet. If you specify multiple subnets, they must meet the following criteria:

" + } + }, + "Tag": { + "base": "

Contains a tag. A tag is a key-value pair.

", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The key of the tag.

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$TagKeyList": "

A list of one or more tag keys for the tags that you are removing. Specify only the tag keys, not the tag values.

" + } + }, + "TagList": { + "base": null, + "refs": { + "ListTagsResponse$TagList": "

A list of tags.

", + "TagResourceRequest$TagList": "

A list of one or more tags.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The value of the tag.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "Backup$CreateTimestamp": "

The date and time when the backup was created.

", + "Cluster$CreateTimestamp": "

The date and time when the cluster was created.

" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "VpcId": { + "base": null, + "refs": { + "Cluster$VpcId": "

The identifier (ID) of the virtual private cloud (VPC) that contains the cluster.

" + } + }, + "errorMessage": { + "base": null, + "refs": { + "CloudHsmAccessDeniedException$Message": null, + "CloudHsmInternalFailureException$Message": null, + "CloudHsmInvalidRequestException$Message": null, + "CloudHsmResourceNotFoundException$Message": null, + "CloudHsmServiceException$Message": null + } + } + } +} diff --git a/models/apis/cloudhsmv2/2017-04-28/examples-1.json b/models/apis/cloudhsmv2/2017-04-28/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/cloudhsmv2/2017-04-28/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/cloudhsmv2/2017-04-28/paginators-1.json b/models/apis/cloudhsmv2/2017-04-28/paginators-1.json new file mode 100644 index 00000000000..c0e07e74057 --- /dev/null +++ b/models/apis/cloudhsmv2/2017-04-28/paginators-1.json @@ -0,0 +1,19 @@ +{ + "pagination": { + "DescribeBackups": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "DescribeClusters": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListTags": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/codebuild/2016-10-06/api-2.json b/models/apis/codebuild/2016-10-06/api-2.json index c10569b63f9..c13cb71d3ca 100644 --- a/models/apis/codebuild/2016-10-06/api-2.json +++ b/models/apis/codebuild/2016-10-06/api-2.json @@ -11,6 +11,18 @@ "uid":"codebuild-2016-10-06" }, "operations":{ + "BatchDeleteBuilds":{ + "name":"BatchDeleteBuilds", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDeleteBuildsInput"}, + "output":{"shape":"BatchDeleteBuildsOutput"}, + "errors":[ + {"shape":"InvalidInputException"} + ] + }, "BatchGetBuilds":{ "name":"BatchGetBuilds", "http":{ @@ -49,6 +61,21 @@ {"shape":"AccountLimitExceededException"} ] }, + "CreateWebhook":{ + "name":"CreateWebhook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateWebhookInput"}, + "output":{"shape":"CreateWebhookOutput"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"OAuthProviderException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "DeleteProject":{ "name":"DeleteProject", "http":{ @@ -61,6 +88,33 @@ {"shape":"InvalidInputException"} ] }, + "DeleteWebhook":{ + "name":"DeleteWebhook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteWebhookInput"}, + "output":{"shape":"DeleteWebhookOutput"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OAuthProviderException"} + ] + }, + "InvalidateProjectCache":{ + "name":"InvalidateProjectCache", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"InvalidateProjectCacheInput"}, + "output":{"shape":"InvalidateProjectCacheOutput"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "ListBuilds":{ "name":"ListBuilds", "http":{ @@ -177,6 +231,20 @@ "NO_ARTIFACTS" ] }, + "BatchDeleteBuildsInput":{ + "type":"structure", + "required":["ids"], + "members":{ + "ids":{"shape":"BuildIds"} + } + }, + "BatchDeleteBuildsOutput":{ + "type":"structure", + "members":{ + "buildsDeleted":{"shape":"BuildIds"}, + "buildsNotDeleted":{"shape":"BuildsNotDeleted"} + } + }, "BatchGetBuildsInput":{ "type":"structure", "required":["ids"], @@ -220,11 +288,14 @@ "phases":{"shape":"BuildPhases"}, "source":{"shape":"ProjectSource"}, "artifacts":{"shape":"BuildArtifacts"}, + "cache":{"shape":"ProjectCache"}, "environment":{"shape":"ProjectEnvironment"}, "logs":{"shape":"LogsLocation"}, "timeoutInMinutes":{"shape":"WrapperInt"}, "buildComplete":{"shape":"Boolean"}, - "initiator":{"shape":"String"} + "initiator":{"shape":"String"}, + "vpcConfig":{"shape":"VpcConfig"}, + "networkInterface":{"shape":"NetworkInterface"} } }, "BuildArtifacts":{ @@ -241,6 +312,13 @@ "max":100, "min":1 }, + "BuildNotDeleted":{ + "type":"structure", + "members":{ + "id":{"shape":"NonEmptyString"}, + "statusCode":{"shape":"String"} + } + }, "BuildPhase":{ "type":"structure", "members":{ @@ -275,6 +353,17 @@ "type":"list", "member":{"shape":"Build"} }, + "BuildsNotDeleted":{ + "type":"list", + "member":{"shape":"BuildNotDeleted"} + }, + "CacheType":{ + "type":"string", + "enum":[ + "NO_CACHE", + "S3" + ] + }, "ComputeType":{ "type":"string", "enum":[ @@ -296,11 +385,14 @@ "description":{"shape":"ProjectDescription"}, "source":{"shape":"ProjectSource"}, "artifacts":{"shape":"ProjectArtifacts"}, + "cache":{"shape":"ProjectCache"}, "environment":{"shape":"ProjectEnvironment"}, "serviceRole":{"shape":"NonEmptyString"}, "timeoutInMinutes":{"shape":"TimeOut"}, "encryptionKey":{"shape":"NonEmptyString"}, - "tags":{"shape":"TagList"} + "tags":{"shape":"TagList"}, + "vpcConfig":{"shape":"VpcConfig"}, + "badgeEnabled":{"shape":"WrapperBoolean"} } }, "CreateProjectOutput":{ @@ -309,6 +401,19 @@ "project":{"shape":"Project"} } }, + "CreateWebhookInput":{ + "type":"structure", + "required":["projectName"], + "members":{ + "projectName":{"shape":"ProjectName"} + } + }, + "CreateWebhookOutput":{ + "type":"structure", + "members":{ + "webhook":{"shape":"Webhook"} + } + }, "DeleteProjectInput":{ "type":"structure", "required":["name"], @@ -321,6 +426,18 @@ "members":{ } }, + "DeleteWebhookInput":{ + "type":"structure", + "required":["projectName"], + "members":{ + "projectName":{"shape":"ProjectName"} + } + }, + "DeleteWebhookOutput":{ + "type":"structure", + "members":{ + } + }, "EnvironmentImage":{ "type":"structure", "members":{ @@ -366,9 +483,17 @@ ], "members":{ "name":{"shape":"NonEmptyString"}, - "value":{"shape":"String"} + "value":{"shape":"String"}, + "type":{"shape":"EnvironmentVariableType"} } }, + "EnvironmentVariableType":{ + "type":"string", + "enum":[ + "PLAINTEXT", + "PARAMETER_STORE" + ] + }, "EnvironmentVariables":{ "type":"list", "member":{"shape":"EnvironmentVariable"} @@ -379,6 +504,18 @@ }, "exception":true }, + "InvalidateProjectCacheInput":{ + "type":"structure", + "required":["projectName"], + "members":{ + "projectName":{"shape":"NonEmptyString"} + } + }, + "InvalidateProjectCacheOutput":{ + "type":"structure", + "members":{ + } + }, "KeyInput":{ "type":"string", "max":127, @@ -395,6 +532,7 @@ "GOLANG", "DOCKER", "ANDROID", + "DOTNET", "BASE" ] }, @@ -462,10 +600,23 @@ "deepLink":{"shape":"String"} } }, + "NetworkInterface":{ + "type":"structure", + "members":{ + "subnetId":{"shape":"NonEmptyString"}, + "networkInterfaceId":{"shape":"NonEmptyString"} + } + }, "NonEmptyString":{ "type":"string", "min":1 }, + "OAuthProviderException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "PhaseContext":{ "type":"structure", "members":{ @@ -493,13 +644,17 @@ "description":{"shape":"ProjectDescription"}, "source":{"shape":"ProjectSource"}, "artifacts":{"shape":"ProjectArtifacts"}, + "cache":{"shape":"ProjectCache"}, "environment":{"shape":"ProjectEnvironment"}, "serviceRole":{"shape":"NonEmptyString"}, "timeoutInMinutes":{"shape":"TimeOut"}, "encryptionKey":{"shape":"NonEmptyString"}, "tags":{"shape":"TagList"}, "created":{"shape":"Timestamp"}, - "lastModified":{"shape":"Timestamp"} + "lastModified":{"shape":"Timestamp"}, + "webhook":{"shape":"Webhook"}, + "vpcConfig":{"shape":"VpcConfig"}, + "badge":{"shape":"ProjectBadge"} } }, "ProjectArtifacts":{ @@ -514,6 +669,21 @@ "packaging":{"shape":"ArtifactPackaging"} } }, + "ProjectBadge":{ + "type":"structure", + "members":{ + "badgeEnabled":{"shape":"Boolean"}, + "badgeRequestUrl":{"shape":"String"} + } + }, + "ProjectCache":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{"shape":"CacheType"}, + "location":{"shape":"String"} + } + }, "ProjectDescription":{ "type":"string", "max":255, @@ -580,6 +750,11 @@ }, "exception":true }, + "SecurityGroupIds":{ + "type":"list", + "member":{"shape":"NonEmptyString"}, + "max":5 + }, "SortOrderType":{ "type":"string", "enum":[ @@ -605,7 +780,8 @@ "CODECOMMIT", "CODEPIPELINE", "GITHUB", - "S3" + "S3", + "BITBUCKET" ] }, "StartBuildInput":{ @@ -651,6 +827,11 @@ } }, "String":{"type":"string"}, + "Subnets":{ + "type":"list", + "member":{"shape":"NonEmptyString"}, + "max":16 + }, "Tag":{ "type":"structure", "members":{ @@ -678,11 +859,14 @@ "description":{"shape":"ProjectDescription"}, "source":{"shape":"ProjectSource"}, "artifacts":{"shape":"ProjectArtifacts"}, + "cache":{"shape":"ProjectCache"}, "environment":{"shape":"ProjectEnvironment"}, "serviceRole":{"shape":"NonEmptyString"}, "timeoutInMinutes":{"shape":"TimeOut"}, "encryptionKey":{"shape":"NonEmptyString"}, - "tags":{"shape":"TagList"} + "tags":{"shape":"TagList"}, + "vpcConfig":{"shape":"VpcConfig"}, + "badgeEnabled":{"shape":"WrapperBoolean"} } }, "UpdateProjectOutput":{ @@ -697,6 +881,20 @@ "min":1, "pattern":"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=@+\\\\-]*)$" }, + "VpcConfig":{ + "type":"structure", + "members":{ + "vpcId":{"shape":"NonEmptyString"}, + "subnets":{"shape":"Subnets"}, + "securityGroupIds":{"shape":"SecurityGroupIds"} + } + }, + "Webhook":{ + "type":"structure", + "members":{ + "url":{"shape":"NonEmptyString"} + } + }, "WrapperBoolean":{"type":"boolean"}, "WrapperInt":{"type":"integer"}, "WrapperLong":{"type":"long"} diff --git a/models/apis/codebuild/2016-10-06/docs-2.json b/models/apis/codebuild/2016-10-06/docs-2.json index 801df5a87e0..5b9890105f8 100644 --- a/models/apis/codebuild/2016-10-06/docs-2.json +++ b/models/apis/codebuild/2016-10-06/docs-2.json @@ -1,11 +1,15 @@ { "version": "2.0", - "service": "AWS CodeBuild

AWS CodeBuild is a fully managed build service in the cloud. AWS CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. AWS CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for the most popular programming languages and build tools, such as Apach Maven, Gradle, and more. You can also fully customize build environments in AWS CodeBuild to use your own build tools. AWS CodeBuild scales automatically to meet peak build requests, and you pay only for the build time you consume. For more information about AWS CodeBuild, see the AWS CodeBuild User Guide.

AWS CodeBuild supports these operations:

", + "service": "AWS CodeBuild

AWS CodeBuild is a fully managed build service in the cloud. AWS CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. AWS CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for the most popular programming languages and build tools, such as Apache Maven, Gradle, and more. You can also fully customize build environments in AWS CodeBuild to use your own build tools. AWS CodeBuild scales automatically to meet peak build requests, and you pay only for the build time you consume. For more information about AWS CodeBuild, see the AWS CodeBuild User Guide.

AWS CodeBuild supports these operations:

", "operations": { + "BatchDeleteBuilds": "

Deletes one or more builds.

", "BatchGetBuilds": "

Gets information about builds.

", "BatchGetProjects": "

Gets information about build projects.

", "CreateProject": "

Creates a build project.

", + "CreateWebhook": "

For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository.

If you enable webhooks for an AWS CodeBuild project, and the project is used as a build step in AWS CodePipeline, then two identical builds will be created for each commit. One build is triggered through webhooks, and one through AWS CodePipeline. Because billing is on a per-build basis, you will be billed for both builds. Therefore, if you are using AWS CodePipeline, we recommend that you disable webhooks in CodeBuild. In the AWS CodeBuild console, clear the Webhook box. For more information, see step 9 in Change a Build Project’s Settings.

", "DeleteProject": "

Deletes a build project.

", + "DeleteWebhook": "

For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, stops AWS CodeBuild from automatically rebuilding the source code every time a code change is pushed to the repository.

", + "InvalidateProjectCache": "

Resets the cache for a project.

", "ListBuilds": "

Gets a list of build IDs, with each build ID representing a single build.

", "ListBuildsForProject": "

Gets a list of build IDs for the specified build project, with each build ID representing a single build.

", "ListCuratedEnvironmentImages": "

Gets information about Docker images that are managed by AWS CodeBuild.

", @@ -38,6 +42,16 @@ "ProjectArtifacts$type": "

The type of build output artifact. Valid values include:

" } }, + "BatchDeleteBuildsInput": { + "base": null, + "refs": { + } + }, + "BatchDeleteBuildsOutput": { + "base": null, + "refs": { + } + }, "BatchGetBuildsInput": { "base": null, "refs": { @@ -61,7 +75,8 @@ "Boolean": { "base": null, "refs": { - "Build$buildComplete": "

Whether the build has finished. True if completed; otherwise, false.

" + "Build$buildComplete": "

Whether the build has finished. True if completed; otherwise, false.

", + "ProjectBadge$badgeEnabled": "

Set this to true to generate a publicly-accessible URL for your project's build badge.

" } }, "Build": { @@ -81,12 +96,20 @@ "BuildIds": { "base": null, "refs": { + "BatchDeleteBuildsInput$ids": "

The IDs of the builds to delete.

", + "BatchDeleteBuildsOutput$buildsDeleted": "

The IDs of the builds that were successfully deleted.

", "BatchGetBuildsInput$ids": "

The IDs of the builds.

", "BatchGetBuildsOutput$buildsNotFound": "

The IDs of builds for which information could not be found.

", "ListBuildsForProjectOutput$ids": "

A list of build IDs for the specified build project, with each build ID representing a single build.

", "ListBuildsOutput$ids": "

A list of build IDs, with each build ID representing a single build.

" } }, + "BuildNotDeleted": { + "base": "

Information about a build that could not be successfully deleted.

", + "refs": { + "BuildsNotDeleted$member": null + } + }, "BuildPhase": { "base": "

Information about a stage for a build.

", "refs": { @@ -111,6 +134,18 @@ "BatchGetBuildsOutput$builds": "

Information about the requested builds.

" } }, + "BuildsNotDeleted": { + "base": null, + "refs": { + "BatchDeleteBuildsOutput$buildsNotDeleted": "

Information about any builds that could not be successfully deleted.

" + } + }, + "CacheType": { + "base": null, + "refs": { + "ProjectCache$type": "

The type of cache used by the build project. Valid values include:

" + } + }, "ComputeType": { "base": null, "refs": { @@ -127,6 +162,16 @@ "refs": { } }, + "CreateWebhookInput": { + "base": null, + "refs": { + } + }, + "CreateWebhookOutput": { + "base": null, + "refs": { + } + }, "DeleteProjectInput": { "base": null, "refs": { @@ -137,6 +182,16 @@ "refs": { } }, + "DeleteWebhookInput": { + "base": null, + "refs": { + } + }, + "DeleteWebhookOutput": { + "base": null, + "refs": { + } + }, "EnvironmentImage": { "base": "

Information about a Docker image that is managed by AWS CodeBuild.

", "refs": { @@ -185,6 +240,12 @@ "EnvironmentVariables$member": null } }, + "EnvironmentVariableType": { + "base": null, + "refs": { + "EnvironmentVariable$type": "

The type of environment variable. Valid values include:

" + } + }, "EnvironmentVariables": { "base": null, "refs": { @@ -197,6 +258,16 @@ "refs": { } }, + "InvalidateProjectCacheInput": { + "base": null, + "refs": { + } + }, + "InvalidateProjectCacheOutput": { + "base": null, + "refs": { + } + }, "KeyInput": { "base": null, "refs": { @@ -255,6 +326,12 @@ "Build$logs": "

Information about the build's logs in Amazon CloudWatch Logs.

" } }, + "NetworkInterface": { + "base": "

Describes a network interface.

", + "refs": { + "Build$networkInterface": "

Describes a network interface.

" + } + }, "NonEmptyString": { "base": null, "refs": { @@ -263,21 +340,34 @@ "Build$sourceVersion": "

Any version identifier for the version of the source code to be built.

", "Build$projectName": "

The name of the build project.

", "BuildIds$member": null, + "BuildNotDeleted$id": "

The ID of the build that could not be successfully deleted.

", "CreateProjectInput$serviceRole": "

The ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.

", "CreateProjectInput$encryptionKey": "

The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts.

You can specify either the CMK's Amazon Resource Name (ARN) or, if available, the CMK's alias (using the format alias/alias-name ).

", "DeleteProjectInput$name": "

The name of the build project.

", "EnvironmentVariable$name": "

The name or key of the environment variable.

", + "InvalidateProjectCacheInput$projectName": "

The name of the build project that the cache will be reset for.

", "ListBuildsForProjectInput$projectName": "

The name of the build project.

", "ListProjectsInput$nextToken": "

During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.

", + "NetworkInterface$subnetId": "

The ID of the subnet.

", + "NetworkInterface$networkInterfaceId": "

The ID of the network interface.

", "Project$serviceRole": "

The ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.

", "Project$encryptionKey": "

The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts.

This is expressed either as the CMK's Amazon Resource Name (ARN) or, if specified, the CMK's alias (using the format alias/alias-name ).

", "ProjectEnvironment$image": "

The ID of the Docker image to use for this build project.

", "ProjectNames$member": null, + "SecurityGroupIds$member": null, "StartBuildInput$projectName": "

The name of the build project to start running a build.

", "StopBuildInput$id": "

The ID of the build.

", + "Subnets$member": null, "UpdateProjectInput$name": "

The name of the build project.

You cannot change a build project's name.

", "UpdateProjectInput$serviceRole": "

The replacement ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.

", - "UpdateProjectInput$encryptionKey": "

The replacement AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts.

You can specify either the CMK's Amazon Resource Name (ARN) or, if available, the CMK's alias (using the format alias/alias-name ).

" + "UpdateProjectInput$encryptionKey": "

The replacement AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts.

You can specify either the CMK's Amazon Resource Name (ARN) or, if available, the CMK's alias (using the format alias/alias-name ).

", + "VpcConfig$vpcId": "

The ID of the Amazon VPC.

", + "Webhook$url": "

The URL to the webhook.

" + } + }, + "OAuthProviderException": { + "base": "

There was a problem with the underlying OAuth provider.

", + "refs": { } }, "PhaseContext": { @@ -315,6 +405,21 @@ "UpdateProjectInput$artifacts": "

Information to be changed about the build output artifacts for the build project.

" } }, + "ProjectBadge": { + "base": "

Information about the build badge for the build project.

", + "refs": { + "Project$badge": "

Information about the build badge for the build project.

" + } + }, + "ProjectCache": { + "base": "

Information about the cache for the build project.

", + "refs": { + "Build$cache": "

Information about the cache for the build.

", + "CreateProjectInput$cache": "

Stores recently used information so that it can be quickly accessed at a later time.

", + "Project$cache": "

Information about the cache for the build project.

", + "UpdateProjectInput$cache": "

Stores recently used information so that it can be quickly accessed at a later time.

" + } + }, "ProjectDescription": { "base": null, "refs": { @@ -336,6 +441,8 @@ "base": null, "refs": { "CreateProjectInput$name": "

The name of the build project.

", + "CreateWebhookInput$projectName": "

The name of the build project.

", + "DeleteWebhookInput$projectName": "

The name of the build project.

", "Project$name": "

The name of the build project.

" } }, @@ -378,6 +485,12 @@ "refs": { } }, + "SecurityGroupIds": { + "base": null, + "refs": { + "VpcConfig$securityGroupIds": "

A list of one or more security groups IDs in your Amazon VPC.

" + } + }, "SortOrderType": { "base": null, "refs": { @@ -387,9 +500,9 @@ } }, "SourceAuth": { - "base": "

Information about the authorization settings for AWS CodeBuild to access the source code to be built.

This information is for the AWS CodeBuild console's use only. Your code should not get or set this information directly (unless the build project's source type value is GITHUB).

", + "base": "

Information about the authorization settings for AWS CodeBuild to access the source code to be built.

This information is for the AWS CodeBuild console's use only. Your code should not get or set this information directly (unless the build project's source type value is BITBUCKET or GITHUB).

", "refs": { - "ProjectSource$auth": "

Information about the authorization settings for AWS CodeBuild to access the source code to be built.

This information is for the AWS CodeBuild console's use only. Your code should not get or set this information directly (unless the build project's source type value is GITHUB).

" + "ProjectSource$auth": "

Information about the authorization settings for AWS CodeBuild to access the source code to be built.

This information is for the AWS CodeBuild console's use only. Your code should not get or set this information directly (unless the build project's source type value is BITBUCKET or GITHUB).

" } }, "SourceAuthType": { @@ -401,7 +514,7 @@ "SourceType": { "base": null, "refs": { - "ProjectSource$type": "

The type of repository that contains the source code to be built. Valid values include:

" + "ProjectSource$type": "

The type of repository that contains the source code to be built. Valid values include:

" } }, "StartBuildInput": { @@ -439,6 +552,7 @@ "BuildArtifacts$location": "

Information about the location of the build artifacts.

", "BuildArtifacts$sha256sum": "

The SHA-256 hash of the build artifact.

You can use this hash along with a checksum tool to confirm both file integrity and authenticity.

This value is available only if the build project's packaging value is set to ZIP.

", "BuildArtifacts$md5sum": "

The MD5 hash of the build artifact.

You can use this hash along with a checksum tool to confirm both file integrity and authenticity.

This value is available only if the build project's packaging value is set to ZIP.

", + "BuildNotDeleted$statusCode": "

Additional information about the build that could not be successfully deleted.

", "EnvironmentImage$name": "

The name of the Docker image.

", "EnvironmentImage$description": "

The description of the Docker image.

", "EnvironmentVariable$value": "

The value of the environment variable.

We strongly discourage using environment variables to store sensitive values, especially AWS secret key IDs and secret access keys. Environment variables can be displayed in plain text using tools such as the AWS CodeBuild console and the AWS Command Line Interface (AWS CLI).

", @@ -456,13 +570,21 @@ "ProjectArtifacts$location": "

Information about the build output artifact location, as follows:

", "ProjectArtifacts$path": "

Along with namespaceType and name, the pattern that AWS CodeBuild will use to name and store the output artifact, as follows:

For example, if path is set to MyArtifacts, namespaceType is set to NONE, and name is set to MyArtifact.zip, then the output artifact would be stored in the output bucket at MyArtifacts/MyArtifact.zip.

", "ProjectArtifacts$name": "

Along with path and namespaceType, the pattern that AWS CodeBuild will use to name and store the output artifact, as follows:

For example, if path is set to MyArtifacts, namespaceType is set to BUILD_ID, and name is set to MyArtifact.zip, then the output artifact would be stored in MyArtifacts/build-ID/MyArtifact.zip.

", - "ProjectSource$location": "

Information about the location of the source code to be built. Valid values include:

", + "ProjectBadge$badgeRequestUrl": "

The publicly-accessible URL through which you can access the build badge for your project.

", + "ProjectCache$location": "

Information about the cache location, as follows:

", + "ProjectSource$location": "

Information about the location of the source code to be built. Valid values include:

", "ProjectSource$buildspec": "

The build spec declaration to use for the builds in this build project.

If this value is not specified, a build spec must be included along with the source code to be built.

", "SourceAuth$resource": "

The resource value that applies to the specified authorization type.

", - "StartBuildInput$sourceVersion": "

A version of the build input to be built, for this build only. If not specified, the latest version will be used. If specified, must be one of:

", + "StartBuildInput$sourceVersion": "

A version of the build input to be built, for this build only. If not specified, the latest version will be used. If specified, must be one of:

", "StartBuildInput$buildspecOverride": "

A build spec declaration that overrides, for this build only, the latest one already defined in the build project.

" } }, + "Subnets": { + "base": null, + "refs": { + "VpcConfig$subnets": "

A list of one or more subnet IDs in your Amazon VPC.

" + } + }, "Tag": { "base": "

A tag, consisting of a key and a value.

This tag is available for use by AWS services that support tags in AWS CodeBuild.

", "refs": { @@ -513,10 +635,28 @@ "Tag$value": "

The tag's value.

" } }, + "VpcConfig": { + "base": "

If your AWS CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID.

", + "refs": { + "Build$vpcConfig": "

If your AWS CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID.

", + "CreateProjectInput$vpcConfig": "

VpcConfig enables AWS CodeBuild to access resources in an Amazon VPC.

", + "Project$vpcConfig": "

If your AWS CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID.

", + "UpdateProjectInput$vpcConfig": "

VpcConfig enables AWS CodeBuild to access resources in an Amazon VPC.

" + } + }, + "Webhook": { + "base": "

Information about a webhook in GitHub that connects repository events to a build project in AWS CodeBuild.

", + "refs": { + "CreateWebhookOutput$webhook": "

Information about a webhook in GitHub that connects repository events to a build project in AWS CodeBuild.

", + "Project$webhook": "

Information about a webhook in GitHub that connects repository events to a build project in AWS CodeBuild.

" + } + }, "WrapperBoolean": { "base": null, "refs": { - "ProjectEnvironment$privilegedMode": "

If set to true, enables running the Docker daemon inside a Docker container; otherwise, false or not specified (the default). This value must be set to true only if this build project will be used to build Docker images, and the specified build environment image is not one provided by AWS CodeBuild with Docker support. Otherwise, all associated builds that attempt to interact with the Docker daemon will fail. Note that you must also start the Docker daemon so that your builds can interact with it as needed. One way to do this is to initialize the Docker daemon in the install phase of your build spec by running the following build commands. (Do not run the following build commands if the specified build environment image is provided by AWS CodeBuild with Docker support.)

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=vfs& - timeout -t 15 sh -c \"until docker info; do echo .; sleep 1; done\"

" + "CreateProjectInput$badgeEnabled": "

Set this to true to generate a publicly-accessible URL for your project's build badge.

", + "ProjectEnvironment$privilegedMode": "

If set to true, enables running the Docker daemon inside a Docker container; otherwise, false or not specified (the default). This value must be set to true only if this build project will be used to build Docker images, and the specified build environment image is not one provided by AWS CodeBuild with Docker support. Otherwise, all associated builds that attempt to interact with the Docker daemon will fail. Note that you must also start the Docker daemon so that your builds can interact with it as needed. One way to do this is to initialize the Docker daemon in the install phase of your build spec by running the following build commands. (Do not run the following build commands if the specified build environment image is provided by AWS CodeBuild with Docker support.)

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay& - timeout -t 15 sh -c \"until docker info; do echo .; sleep 1; done\"

", + "UpdateProjectInput$badgeEnabled": "

Set this to true to generate a publicly-accessible URL for your project's build badge.

" } }, "WrapperInt": { diff --git a/models/apis/codebuild/2016-10-06/examples-1.json b/models/apis/codebuild/2016-10-06/examples-1.json index 0ea7e3b0bbe..a5fb660e25d 100644 --- a/models/apis/codebuild/2016-10-06/examples-1.json +++ b/models/apis/codebuild/2016-10-06/examples-1.json @@ -1,5 +1,281 @@ { "version": "1.0", "examples": { + "BatchGetBuilds": [ + { + "input": { + "ids": [ + "codebuild-demo-project:9b0ac37f-d19e-4254-9079-f47e9a389eEX", + "codebuild-demo-project:b79a46f7-1473-4636-a23f-da9c45c208EX" + ] + }, + "output": { + "builds": [ + { + "arn": "arn:aws:codebuild:us-east-1:123456789012:build/codebuild-demo-project:9b0ac37f-d19e-4254-9079-f47e9a389eEX", + "artifacts": { + "location": "arn:aws:s3:::codebuild-123456789012-output-bucket/codebuild-demo-project" + }, + "buildComplete": true, + "buildStatus": "SUCCEEDED", + "currentPhase": "COMPLETED", + "endTime": 1479832474.764, + "environment": { + "type": "LINUX_CONTAINER", + "computeType": "BUILD_GENERAL1_SMALL", + "environmentVariables": [ + + ], + "image": "aws/codebuild/java:openjdk-8", + "privilegedMode": false + }, + "id": "codebuild-demo-project:9b0ac37f-d19e-4254-9079-f47e9a389eEX", + "initiator": "MyDemoUser", + "logs": { + "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=9b0ac37f-d19e-4254-9079-f47e9a389eEX", + "groupName": "/aws/codebuild/codebuild-demo-project", + "streamName": "9b0ac37f-d19e-4254-9079-f47e9a389eEX" + }, + "phases": [ + { + "durationInSeconds": 0, + "endTime": 1479832342.23, + "phaseStatus": "SUCCEEDED", + "phaseType": "SUBMITTED", + "startTime": 1479832341.854 + }, + { + "contexts": [ + + ], + "durationInSeconds": 72, + "endTime": 1479832415.064, + "phaseStatus": "SUCCEEDED", + "phaseType": "PROVISIONING", + "startTime": 1479832342.23 + }, + { + "contexts": [ + + ], + "durationInSeconds": 46, + "endTime": 1479832461.261, + "phaseStatus": "SUCCEEDED", + "phaseType": "DOWNLOAD_SOURCE", + "startTime": 1479832415.064 + }, + { + "contexts": [ + + ], + "durationInSeconds": 0, + "endTime": 1479832461.354, + "phaseStatus": "SUCCEEDED", + "phaseType": "INSTALL", + "startTime": 1479832461.261 + }, + { + "contexts": [ + + ], + "durationInSeconds": 0, + "endTime": 1479832461.448, + "phaseStatus": "SUCCEEDED", + "phaseType": "PRE_BUILD", + "startTime": 1479832461.354 + }, + { + "contexts": [ + + ], + "durationInSeconds": 9, + "endTime": 1479832471.115, + "phaseStatus": "SUCCEEDED", + "phaseType": "BUILD", + "startTime": 1479832461.448 + }, + { + "contexts": [ + + ], + "durationInSeconds": 0, + "endTime": 1479832471.224, + "phaseStatus": "SUCCEEDED", + "phaseType": "POST_BUILD", + "startTime": 1479832471.115 + }, + { + "contexts": [ + + ], + "durationInSeconds": 0, + "endTime": 1479832471.791, + "phaseStatus": "SUCCEEDED", + "phaseType": "UPLOAD_ARTIFACTS", + "startTime": 1479832471.224 + }, + { + "contexts": [ + + ], + "durationInSeconds": 2, + "endTime": 1479832474.764, + "phaseStatus": "SUCCEEDED", + "phaseType": "FINALIZING", + "startTime": 1479832471.791 + }, + { + "phaseType": "COMPLETED", + "startTime": 1479832474.764 + } + ], + "projectName": "codebuild-demo-project", + "source": { + "type": "S3", + "buildspec": "", + "location": "arn:aws:s3:::codebuild-123456789012-input-bucket/MessageUtil.zip" + }, + "startTime": 1479832341.854, + "timeoutInMinutes": 60 + }, + { + "arn": "arn:aws:codebuild:us-east-1:123456789012:build/codebuild-demo-project:b79a46f7-1473-4636-a23f-da9c45c208EX", + "artifacts": { + "location": "arn:aws:s3:::codebuild-123456789012-output-bucket/codebuild-demo-project" + }, + "buildComplete": true, + "buildStatus": "SUCCEEDED", + "currentPhase": "COMPLETED", + "endTime": 1479401214.239, + "environment": { + "type": "LINUX_CONTAINER", + "computeType": "BUILD_GENERAL1_SMALL", + "environmentVariables": [ + + ], + "image": "aws/codebuild/java:openjdk-8", + "privilegedMode": false + }, + "id": "codebuild-demo-project:b79a46f7-1473-4636-a23f-da9c45c208EX", + "initiator": "MyDemoUser", + "logs": { + "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=b79a46f7-1473-4636-a23f-da9c45c208EX", + "groupName": "/aws/codebuild/codebuild-demo-project", + "streamName": "b79a46f7-1473-4636-a23f-da9c45c208EX" + }, + "phases": [ + { + "durationInSeconds": 0, + "endTime": 1479401082.342, + "phaseStatus": "SUCCEEDED", + "phaseType": "SUBMITTED", + "startTime": 1479401081.869 + }, + { + "contexts": [ + + ], + "durationInSeconds": 71, + "endTime": 1479401154.129, + "phaseStatus": "SUCCEEDED", + "phaseType": "PROVISIONING", + "startTime": 1479401082.342 + }, + { + "contexts": [ + + ], + "durationInSeconds": 45, + "endTime": 1479401199.136, + "phaseStatus": "SUCCEEDED", + "phaseType": "DOWNLOAD_SOURCE", + "startTime": 1479401154.129 + }, + { + "contexts": [ + + ], + "durationInSeconds": 0, + "endTime": 1479401199.236, + "phaseStatus": "SUCCEEDED", + "phaseType": "INSTALL", + "startTime": 1479401199.136 + }, + { + "contexts": [ + + ], + "durationInSeconds": 0, + "endTime": 1479401199.345, + "phaseStatus": "SUCCEEDED", + "phaseType": "PRE_BUILD", + "startTime": 1479401199.236 + }, + { + "contexts": [ + + ], + "durationInSeconds": 9, + "endTime": 1479401208.68, + "phaseStatus": "SUCCEEDED", + "phaseType": "BUILD", + "startTime": 1479401199.345 + }, + { + "contexts": [ + + ], + "durationInSeconds": 0, + "endTime": 1479401208.783, + "phaseStatus": "SUCCEEDED", + "phaseType": "POST_BUILD", + "startTime": 1479401208.68 + }, + { + "contexts": [ + + ], + "durationInSeconds": 0, + "endTime": 1479401209.463, + "phaseStatus": "SUCCEEDED", + "phaseType": "UPLOAD_ARTIFACTS", + "startTime": 1479401208.783 + }, + { + "contexts": [ + + ], + "durationInSeconds": 4, + "endTime": 1479401214.239, + "phaseStatus": "SUCCEEDED", + "phaseType": "FINALIZING", + "startTime": 1479401209.463 + }, + { + "phaseType": "COMPLETED", + "startTime": 1479401214.239 + } + ], + "projectName": "codebuild-demo-project", + "source": { + "type": "S3", + "location": "arn:aws:s3:::codebuild-123456789012-input-bucket/MessageUtil.zip" + }, + "startTime": 1479401081.869, + "timeoutInMinutes": 60 + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example gets information about builds with the specified build IDs.", + "id": "to-get-information-about-builds-1501187184588", + "title": "To get information about builds" + } + ] } } diff --git a/models/apis/codecommit/2015-04-13/api-2.json b/models/apis/codecommit/2015-04-13/api-2.json index fb4f9d36ba8..81f8127365a 100644 --- a/models/apis/codecommit/2015-04-13/api-2.json +++ b/models/apis/codecommit/2015-04-13/api-2.json @@ -55,6 +55,42 @@ {"shape":"EncryptionKeyUnavailableException"} ] }, + "CreatePullRequest":{ + "name":"CreatePullRequest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePullRequestInput"}, + "output":{"shape":"CreatePullRequestOutput"}, + "errors":[ + {"shape":"RepositoryNameRequiredException"}, + {"shape":"InvalidRepositoryNameException"}, + {"shape":"RepositoryDoesNotExistException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"}, + {"shape":"ClientRequestTokenRequiredException"}, + {"shape":"InvalidClientRequestTokenException"}, + {"shape":"IdempotencyParameterMismatchException"}, + {"shape":"ReferenceNameRequiredException"}, + {"shape":"InvalidReferenceNameException"}, + {"shape":"ReferenceDoesNotExistException"}, + {"shape":"ReferenceTypeNotSupportedException"}, + {"shape":"TitleRequiredException"}, + {"shape":"InvalidTitleException"}, + {"shape":"InvalidDescriptionException"}, + {"shape":"TargetsRequiredException"}, + {"shape":"InvalidTargetsException"}, + {"shape":"TargetRequiredException"}, + {"shape":"InvalidTargetException"}, + {"shape":"MultipleRepositoriesInPullRequestException"}, + {"shape":"MaximumOpenPullRequestsExceededException"}, + {"shape":"SourceAndDestinationAreSameException"} + ] + }, "CreateRepository":{ "name":"CreateRepository", "http":{ @@ -76,6 +112,43 @@ {"shape":"EncryptionKeyUnavailableException"} ] }, + "DeleteBranch":{ + "name":"DeleteBranch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteBranchInput"}, + "output":{"shape":"DeleteBranchOutput"}, + "errors":[ + {"shape":"RepositoryNameRequiredException"}, + {"shape":"RepositoryDoesNotExistException"}, + {"shape":"InvalidRepositoryNameException"}, + {"shape":"BranchNameRequiredException"}, + {"shape":"InvalidBranchNameException"}, + {"shape":"DefaultBranchCannotBeDeletedException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"} + ] + }, + "DeleteCommentContent":{ + "name":"DeleteCommentContent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCommentContentInput"}, + "output":{"shape":"DeleteCommentContentOutput"}, + "errors":[ + {"shape":"CommentDoesNotExistException"}, + {"shape":"CommentIdRequiredException"}, + {"shape":"InvalidCommentIdException"}, + {"shape":"CommentDeletedException"} + ] + }, "DeleteRepository":{ "name":"DeleteRepository", "http":{ @@ -94,6 +167,30 @@ {"shape":"EncryptionKeyUnavailableException"} ] }, + "DescribePullRequestEvents":{ + "name":"DescribePullRequestEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribePullRequestEventsInput"}, + "output":{"shape":"DescribePullRequestEventsOutput"}, + "errors":[ + {"shape":"PullRequestDoesNotExistException"}, + {"shape":"InvalidPullRequestIdException"}, + {"shape":"PullRequestIdRequiredException"}, + {"shape":"InvalidPullRequestEventTypeException"}, + {"shape":"InvalidActorArnException"}, + {"shape":"ActorDoesNotExistException"}, + {"shape":"InvalidMaxResultsException"}, + {"shape":"InvalidContinuationTokenException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"} + ] + }, "GetBlob":{ "name":"GetBlob", "http":{ @@ -139,6 +236,73 @@ {"shape":"EncryptionKeyUnavailableException"} ] }, + "GetComment":{ + "name":"GetComment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCommentInput"}, + "output":{"shape":"GetCommentOutput"}, + "errors":[ + {"shape":"CommentDoesNotExistException"}, + {"shape":"CommentIdRequiredException"}, + {"shape":"InvalidCommentIdException"}, + {"shape":"CommentDeletedException"} + ] + }, + "GetCommentsForComparedCommit":{ + "name":"GetCommentsForComparedCommit", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCommentsForComparedCommitInput"}, + "output":{"shape":"GetCommentsForComparedCommitOutput"}, + "errors":[ + {"shape":"RepositoryNameRequiredException"}, + {"shape":"RepositoryDoesNotExistException"}, + {"shape":"InvalidRepositoryNameException"}, + {"shape":"CommitIdRequiredException"}, + {"shape":"InvalidCommitIdException"}, + {"shape":"CommitDoesNotExistException"}, + {"shape":"InvalidMaxResultsException"}, + {"shape":"InvalidContinuationTokenException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"} + ] + }, + "GetCommentsForPullRequest":{ + "name":"GetCommentsForPullRequest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCommentsForPullRequestInput"}, + "output":{"shape":"GetCommentsForPullRequestOutput"}, + "errors":[ + {"shape":"PullRequestIdRequiredException"}, + {"shape":"PullRequestDoesNotExistException"}, + {"shape":"InvalidPullRequestIdException"}, + {"shape":"RepositoryNameRequiredException"}, + {"shape":"RepositoryDoesNotExistException"}, + {"shape":"InvalidRepositoryNameException"}, + {"shape":"CommitIdRequiredException"}, + {"shape":"InvalidCommitIdException"}, + {"shape":"CommitDoesNotExistException"}, + {"shape":"InvalidMaxResultsException"}, + {"shape":"InvalidContinuationTokenException"}, + {"shape":"RepositoryNotAssociatedWithPullRequestException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"} + ] + }, "GetCommit":{ "name":"GetCommit", "http":{ @@ -188,6 +352,52 @@ {"shape":"EncryptionKeyUnavailableException"} ] }, + "GetMergeConflicts":{ + "name":"GetMergeConflicts", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetMergeConflictsInput"}, + "output":{"shape":"GetMergeConflictsOutput"}, + "errors":[ + {"shape":"RepositoryNameRequiredException"}, + {"shape":"InvalidRepositoryNameException"}, + {"shape":"RepositoryDoesNotExistException"}, + {"shape":"MergeOptionRequiredException"}, + {"shape":"InvalidMergeOptionException"}, + {"shape":"InvalidDestinationCommitSpecifierException"}, + {"shape":"InvalidSourceCommitSpecifierException"}, + {"shape":"CommitRequiredException"}, + {"shape":"CommitDoesNotExistException"}, + {"shape":"InvalidCommitException"}, + {"shape":"TipsDivergenceExceededException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"} + ] + }, + "GetPullRequest":{ + "name":"GetPullRequest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPullRequestInput"}, + "output":{"shape":"GetPullRequestOutput"}, + "errors":[ + {"shape":"PullRequestDoesNotExistException"}, + {"shape":"InvalidPullRequestIdException"}, + {"shape":"PullRequestIdRequiredException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"} + ] + }, "GetRepository":{ "name":"GetRepository", "http":{ @@ -246,6 +456,30 @@ {"shape":"InvalidContinuationTokenException"} ] }, + "ListPullRequests":{ + "name":"ListPullRequests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPullRequestsInput"}, + "output":{"shape":"ListPullRequestsOutput"}, + "errors":[ + {"shape":"InvalidPullRequestStatusException"}, + {"shape":"InvalidAuthorArnException"}, + {"shape":"AuthorDoesNotExistException"}, + {"shape":"RepositoryNameRequiredException"}, + {"shape":"InvalidRepositoryNameException"}, + {"shape":"RepositoryDoesNotExistException"}, + {"shape":"InvalidMaxResultsException"}, + {"shape":"InvalidContinuationTokenException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"} + ] + }, "ListRepositories":{ "name":"ListRepositories", "http":{ @@ -260,6 +494,128 @@ {"shape":"InvalidContinuationTokenException"} ] }, + "MergePullRequestByFastForward":{ + "name":"MergePullRequestByFastForward", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"MergePullRequestByFastForwardInput"}, + "output":{"shape":"MergePullRequestByFastForwardOutput"}, + "errors":[ + {"shape":"ManualMergeRequiredException"}, + {"shape":"PullRequestAlreadyClosedException"}, + {"shape":"PullRequestDoesNotExistException"}, + {"shape":"InvalidPullRequestIdException"}, + {"shape":"PullRequestIdRequiredException"}, + {"shape":"TipOfSourceReferenceIsDifferentException"}, + {"shape":"ReferenceDoesNotExistException"}, + {"shape":"InvalidCommitIdException"}, + {"shape":"RepositoryNameRequiredException"}, + {"shape":"InvalidRepositoryNameException"}, + {"shape":"RepositoryDoesNotExistException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"} + ] + }, + "PostCommentForComparedCommit":{ + "name":"PostCommentForComparedCommit", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PostCommentForComparedCommitInput"}, + "output":{"shape":"PostCommentForComparedCommitOutput"}, + "errors":[ + {"shape":"RepositoryNameRequiredException"}, + {"shape":"RepositoryDoesNotExistException"}, + {"shape":"InvalidRepositoryNameException"}, + {"shape":"ClientRequestTokenRequiredException"}, + {"shape":"InvalidClientRequestTokenException"}, + {"shape":"IdempotencyParameterMismatchException"}, + {"shape":"CommentContentRequiredException"}, + {"shape":"CommentContentSizeLimitExceededException"}, + {"shape":"InvalidFileLocationException"}, + {"shape":"InvalidRelativeFileVersionEnumException"}, + {"shape":"PathRequiredException"}, + {"shape":"InvalidFilePositionException"}, + {"shape":"CommitIdRequiredException"}, + {"shape":"InvalidCommitIdException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"}, + {"shape":"BeforeCommitIdAndAfterCommitIdAreSameException"}, + {"shape":"CommitDoesNotExistException"}, + {"shape":"InvalidPathException"}, + {"shape":"PathDoesNotExistException"} + ], + "idempotent":true + }, + "PostCommentForPullRequest":{ + "name":"PostCommentForPullRequest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PostCommentForPullRequestInput"}, + "output":{"shape":"PostCommentForPullRequestOutput"}, + "errors":[ + {"shape":"PullRequestDoesNotExistException"}, + {"shape":"InvalidPullRequestIdException"}, + {"shape":"PullRequestIdRequiredException"}, + {"shape":"RepositoryNotAssociatedWithPullRequestException"}, + {"shape":"RepositoryNameRequiredException"}, + {"shape":"RepositoryDoesNotExistException"}, + {"shape":"InvalidRepositoryNameException"}, + {"shape":"ClientRequestTokenRequiredException"}, + {"shape":"InvalidClientRequestTokenException"}, + {"shape":"IdempotencyParameterMismatchException"}, + {"shape":"CommentContentRequiredException"}, + {"shape":"CommentContentSizeLimitExceededException"}, + {"shape":"InvalidFileLocationException"}, + {"shape":"InvalidRelativeFileVersionEnumException"}, + {"shape":"PathRequiredException"}, + {"shape":"InvalidFilePositionException"}, + {"shape":"CommitIdRequiredException"}, + {"shape":"InvalidCommitIdException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"}, + {"shape":"CommitDoesNotExistException"}, + {"shape":"InvalidPathException"}, + {"shape":"PathDoesNotExistException"}, + {"shape":"PathRequiredException"}, + {"shape":"BeforeCommitIdAndAfterCommitIdAreSameException"} + ], + "idempotent":true + }, + "PostCommentReply":{ + "name":"PostCommentReply", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PostCommentReplyInput"}, + "output":{"shape":"PostCommentReplyOutput"}, + "errors":[ + {"shape":"ClientRequestTokenRequiredException"}, + {"shape":"InvalidClientRequestTokenException"}, + {"shape":"IdempotencyParameterMismatchException"}, + {"shape":"CommentContentRequiredException"}, + {"shape":"CommentContentSizeLimitExceededException"}, + {"shape":"CommentDoesNotExistException"}, + {"shape":"CommentIdRequiredException"}, + {"shape":"InvalidCommentIdException"} + ], + "idempotent":true + }, "PutRepositoryTriggers":{ "name":"PutRepositoryTriggers", "http":{ @@ -324,6 +680,24 @@ {"shape":"EncryptionKeyUnavailableException"} ] }, + "UpdateComment":{ + "name":"UpdateComment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateCommentInput"}, + "output":{"shape":"UpdateCommentOutput"}, + "errors":[ + {"shape":"CommentContentRequiredException"}, + {"shape":"CommentContentSizeLimitExceededException"}, + {"shape":"CommentDoesNotExistException"}, + {"shape":"CommentIdRequiredException"}, + {"shape":"InvalidCommentIdException"}, + {"shape":"CommentNotCreatedByCallerException"}, + {"shape":"CommentDeletedException"} + ] + }, "UpdateDefaultBranch":{ "name":"UpdateDefaultBranch", "http":{ @@ -345,6 +719,61 @@ {"shape":"EncryptionKeyUnavailableException"} ] }, + "UpdatePullRequestDescription":{ + "name":"UpdatePullRequestDescription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdatePullRequestDescriptionInput"}, + "output":{"shape":"UpdatePullRequestDescriptionOutput"}, + "errors":[ + {"shape":"PullRequestDoesNotExistException"}, + {"shape":"InvalidPullRequestIdException"}, + {"shape":"PullRequestIdRequiredException"}, + {"shape":"InvalidDescriptionException"}, + {"shape":"PullRequestAlreadyClosedException"} + ] + }, + "UpdatePullRequestStatus":{ + "name":"UpdatePullRequestStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdatePullRequestStatusInput"}, + "output":{"shape":"UpdatePullRequestStatusOutput"}, + "errors":[ + {"shape":"PullRequestDoesNotExistException"}, + {"shape":"InvalidPullRequestIdException"}, + {"shape":"PullRequestIdRequiredException"}, + {"shape":"InvalidPullRequestStatusUpdateException"}, + {"shape":"InvalidPullRequestStatusException"}, + {"shape":"PullRequestStatusRequiredException"}, + {"shape":"EncryptionIntegrityChecksFailedException"}, + {"shape":"EncryptionKeyAccessDeniedException"}, + {"shape":"EncryptionKeyDisabledException"}, + {"shape":"EncryptionKeyNotFoundException"}, + {"shape":"EncryptionKeyUnavailableException"} + ] + }, + "UpdatePullRequestTitle":{ + "name":"UpdatePullRequestTitle", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdatePullRequestTitleInput"}, + "output":{"shape":"UpdatePullRequestTitleOutput"}, + "errors":[ + {"shape":"PullRequestDoesNotExistException"}, + {"shape":"InvalidPullRequestIdException"}, + {"shape":"PullRequestIdRequiredException"}, + {"shape":"TitleRequiredException"}, + {"shape":"InvalidTitleException"}, + {"shape":"PullRequestAlreadyClosedException"} + ] + }, "UpdateRepositoryDescription":{ "name":"UpdateRepositoryDescription", "http":{ @@ -381,8 +810,20 @@ }, "shapes":{ "AccountId":{"type":"string"}, + "ActorDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "AdditionalData":{"type":"string"}, "Arn":{"type":"string"}, + "AuthorDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "BatchGetRepositoriesInput":{ "type":"structure", "required":["repositoryNames"], @@ -397,19 +838,25 @@ "repositoriesNotFound":{"shape":"RepositoryNotFoundList"} } }, - "BlobIdDoesNotExistException":{ + "BeforeCommitIdAndAfterCommitIdAreSameException":{ "type":"structure", "members":{ }, "exception":true }, - "BlobIdRequiredException":{ + "BlobIdDoesNotExistException":{ "type":"structure", "members":{ }, "exception":true }, - "BlobMetadata":{ + "BlobIdRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "BlobMetadata":{ "type":"structure", "members":{ "blobId":{"shape":"ObjectId"}, @@ -432,7 +879,7 @@ }, "BranchName":{ "type":"string", - "max":100, + "max":256, "min":1 }, "BranchNameExistsException":{ @@ -459,11 +906,106 @@ "D" ] }, + "ClientRequestToken":{"type":"string"}, + "ClientRequestTokenRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "CloneUrlHttp":{"type":"string"}, "CloneUrlSsh":{"type":"string"}, + "Comment":{ + "type":"structure", + "members":{ + "commentId":{"shape":"CommentId"}, + "content":{"shape":"Content"}, + "inReplyTo":{"shape":"CommentId"}, + "creationDate":{"shape":"CreationDate"}, + "lastModifiedDate":{"shape":"LastModifiedDate"}, + "authorArn":{"shape":"Arn"}, + "deleted":{"shape":"IsCommentDeleted"}, + "clientRequestToken":{"shape":"ClientRequestToken"} + } + }, + "CommentContentRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "CommentContentSizeLimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "CommentDeletedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "CommentDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "CommentId":{"type":"string"}, + "CommentIdRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "CommentNotCreatedByCallerException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Comments":{ + "type":"list", + "member":{"shape":"Comment"} + }, + "CommentsForComparedCommit":{ + "type":"structure", + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "beforeCommitId":{"shape":"CommitId"}, + "afterCommitId":{"shape":"CommitId"}, + "beforeBlobId":{"shape":"ObjectId"}, + "afterBlobId":{"shape":"ObjectId"}, + "location":{"shape":"Location"}, + "comments":{"shape":"Comments"} + } + }, + "CommentsForComparedCommitData":{ + "type":"list", + "member":{"shape":"CommentsForComparedCommit"} + }, + "CommentsForPullRequest":{ + "type":"structure", + "members":{ + "pullRequestId":{"shape":"PullRequestId"}, + "repositoryName":{"shape":"RepositoryName"}, + "beforeCommitId":{"shape":"CommitId"}, + "afterCommitId":{"shape":"CommitId"}, + "beforeBlobId":{"shape":"ObjectId"}, + "afterBlobId":{"shape":"ObjectId"}, + "location":{"shape":"Location"}, + "comments":{"shape":"Comments"} + } + }, + "CommentsForPullRequestData":{ + "type":"list", + "member":{"shape":"CommentsForPullRequest"} + }, "Commit":{ "type":"structure", "members":{ + "commitId":{"shape":"ObjectId"}, "treeId":{"shape":"ObjectId"}, "parents":{"shape":"ParentList"}, "message":{"shape":"Message"}, @@ -498,6 +1040,7 @@ }, "exception":true }, + "Content":{"type":"string"}, "CreateBranchInput":{ "type":"structure", "required":[ @@ -511,6 +1054,29 @@ "commitId":{"shape":"CommitId"} } }, + "CreatePullRequestInput":{ + "type":"structure", + "required":[ + "title", + "targets" + ], + "members":{ + "title":{"shape":"Title"}, + "description":{"shape":"Description"}, + "targets":{"shape":"TargetList"}, + "clientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "CreatePullRequestOutput":{ + "type":"structure", + "required":["pullRequest"], + "members":{ + "pullRequest":{"shape":"PullRequest"} + } + }, "CreateRepositoryInput":{ "type":"structure", "required":["repositoryName"], @@ -527,6 +1093,42 @@ }, "CreationDate":{"type":"timestamp"}, "Date":{"type":"string"}, + "DefaultBranchCannotBeDeletedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeleteBranchInput":{ + "type":"structure", + "required":[ + "repositoryName", + "branchName" + ], + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "branchName":{"shape":"BranchName"} + } + }, + "DeleteBranchOutput":{ + "type":"structure", + "members":{ + "deletedBranch":{"shape":"BranchInfo"} + } + }, + "DeleteCommentContentInput":{ + "type":"structure", + "required":["commentId"], + "members":{ + "commentId":{"shape":"CommentId"} + } + }, + "DeleteCommentContentOutput":{ + "type":"structure", + "members":{ + "comment":{"shape":"Comment"} + } + }, "DeleteRepositoryInput":{ "type":"structure", "required":["repositoryName"], @@ -540,6 +1142,29 @@ "repositoryId":{"shape":"RepositoryId"} } }, + "DescribePullRequestEventsInput":{ + "type":"structure", + "required":["pullRequestId"], + "members":{ + "pullRequestId":{"shape":"PullRequestId"}, + "pullRequestEventType":{"shape":"PullRequestEventType"}, + "actorArn":{"shape":"Arn"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "DescribePullRequestEventsOutput":{ + "type":"structure", + "required":["pullRequestEvents"], + "members":{ + "pullRequestEvents":{"shape":"PullRequestEventList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "Description":{ + "type":"string", + "max":10240 + }, "Difference":{ "type":"structure", "members":{ @@ -584,6 +1209,7 @@ }, "exception":true }, + "EventDate":{"type":"timestamp"}, "FileTooLargeException":{ "type":"structure", "members":{ @@ -621,6 +1247,59 @@ "branch":{"shape":"BranchInfo"} } }, + "GetCommentInput":{ + "type":"structure", + "required":["commentId"], + "members":{ + "commentId":{"shape":"CommentId"} + } + }, + "GetCommentOutput":{ + "type":"structure", + "members":{ + "comment":{"shape":"Comment"} + } + }, + "GetCommentsForComparedCommitInput":{ + "type":"structure", + "required":[ + "repositoryName", + "afterCommitId" + ], + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "beforeCommitId":{"shape":"CommitId"}, + "afterCommitId":{"shape":"CommitId"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "GetCommentsForComparedCommitOutput":{ + "type":"structure", + "members":{ + "commentsForComparedCommitData":{"shape":"CommentsForComparedCommitData"}, + "nextToken":{"shape":"NextToken"} + } + }, + "GetCommentsForPullRequestInput":{ + "type":"structure", + "required":["pullRequestId"], + "members":{ + "pullRequestId":{"shape":"PullRequestId"}, + "repositoryName":{"shape":"RepositoryName"}, + "beforeCommitId":{"shape":"CommitId"}, + "afterCommitId":{"shape":"CommitId"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "GetCommentsForPullRequestOutput":{ + "type":"structure", + "members":{ + "commentsForPullRequestData":{"shape":"CommentsForPullRequestData"}, + "nextToken":{"shape":"NextToken"} + } + }, "GetCommitInput":{ "type":"structure", "required":[ @@ -662,6 +1341,48 @@ "NextToken":{"shape":"NextToken"} } }, + "GetMergeConflictsInput":{ + "type":"structure", + "required":[ + "repositoryName", + "destinationCommitSpecifier", + "sourceCommitSpecifier", + "mergeOption" + ], + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "destinationCommitSpecifier":{"shape":"CommitName"}, + "sourceCommitSpecifier":{"shape":"CommitName"}, + "mergeOption":{"shape":"MergeOptionTypeEnum"} + } + }, + "GetMergeConflictsOutput":{ + "type":"structure", + "required":[ + "mergeable", + "destinationCommitId", + "sourceCommitId" + ], + "members":{ + "mergeable":{"shape":"IsMergeable"}, + "destinationCommitId":{"shape":"CommitId"}, + "sourceCommitId":{"shape":"CommitId"} + } + }, + "GetPullRequestInput":{ + "type":"structure", + "required":["pullRequestId"], + "members":{ + "pullRequestId":{"shape":"PullRequestId"} + } + }, + "GetPullRequestOutput":{ + "type":"structure", + "required":["pullRequest"], + "members":{ + "pullRequest":{"shape":"PullRequest"} + } + }, "GetRepositoryInput":{ "type":"structure", "required":["repositoryName"], @@ -689,190 +1410,600 @@ "triggers":{"shape":"RepositoryTriggersList"} } }, - "InvalidBlobIdException":{ + "IdempotencyParameterMismatchException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidBranchNameException":{ + "InvalidActorArnException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidCommitException":{ + "InvalidAuthorArnException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidCommitIdException":{ + "InvalidBlobIdException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidContinuationTokenException":{ + "InvalidBranchNameException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidMaxResultsException":{ + "InvalidClientRequestTokenException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidOrderException":{ + "InvalidCommentIdException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidPathException":{ + "InvalidCommitException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidRepositoryDescriptionException":{ + "InvalidCommitIdException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidRepositoryNameException":{ + "InvalidContinuationTokenException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidRepositoryTriggerBranchNameException":{ + "InvalidDescriptionException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidRepositoryTriggerCustomDataException":{ + "InvalidDestinationCommitSpecifierException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidRepositoryTriggerDestinationArnException":{ + "InvalidFileLocationException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidRepositoryTriggerEventsException":{ + "InvalidFilePositionException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidRepositoryTriggerNameException":{ + "InvalidMaxResultsException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidRepositoryTriggerRegionException":{ + "InvalidMergeOptionException":{ "type":"structure", "members":{ }, "exception":true }, - "InvalidSortByException":{ + "InvalidOrderException":{ "type":"structure", "members":{ }, "exception":true }, - "LastModifiedDate":{"type":"timestamp"}, - "Limit":{ - "type":"integer", - "box":true - }, - "ListBranchesInput":{ + "InvalidPathException":{ "type":"structure", - "required":["repositoryName"], "members":{ - "repositoryName":{"shape":"RepositoryName"}, - "nextToken":{"shape":"NextToken"} - } + }, + "exception":true }, - "ListBranchesOutput":{ + "InvalidPullRequestEventTypeException":{ "type":"structure", "members":{ - "branches":{"shape":"BranchNameList"}, - "nextToken":{"shape":"NextToken"} - } + }, + "exception":true }, - "ListRepositoriesInput":{ + "InvalidPullRequestIdException":{ "type":"structure", "members":{ - "nextToken":{"shape":"NextToken"}, - "sortBy":{"shape":"SortByEnum"}, - "order":{"shape":"OrderEnum"} - } + }, + "exception":true }, - "ListRepositoriesOutput":{ + "InvalidPullRequestStatusException":{ "type":"structure", "members":{ - "repositories":{"shape":"RepositoryNameIdPairList"}, - "nextToken":{"shape":"NextToken"} - } + }, + "exception":true }, - "MaximumBranchesExceededException":{ + "InvalidPullRequestStatusUpdateException":{ "type":"structure", "members":{ }, "exception":true }, - "MaximumRepositoryNamesExceededException":{ + "InvalidReferenceNameException":{ "type":"structure", "members":{ }, "exception":true }, - "MaximumRepositoryTriggersExceededException":{ + "InvalidRelativeFileVersionEnumException":{ "type":"structure", "members":{ }, "exception":true }, - "Message":{"type":"string"}, - "Mode":{"type":"string"}, - "Name":{"type":"string"}, - "NextToken":{"type":"string"}, - "ObjectId":{"type":"string"}, - "OrderEnum":{ - "type":"string", - "enum":[ - "ascending", - "descending" - ] - }, - "ParentList":{ - "type":"list", - "member":{"shape":"ObjectId"} + "InvalidRepositoryDescriptionException":{ + "type":"structure", + "members":{ + }, + "exception":true }, - "Path":{"type":"string"}, - "PathDoesNotExistException":{ + "InvalidRepositoryNameException":{ "type":"structure", "members":{ }, "exception":true }, - "PutRepositoryTriggersInput":{ + "InvalidRepositoryTriggerBranchNameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidRepositoryTriggerCustomDataException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidRepositoryTriggerDestinationArnException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidRepositoryTriggerEventsException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidRepositoryTriggerNameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidRepositoryTriggerRegionException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidSortByException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidSourceCommitSpecifierException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidTargetException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidTargetsException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidTitleException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "IsCommentDeleted":{"type":"boolean"}, + "IsMergeable":{"type":"boolean"}, + "IsMerged":{"type":"boolean"}, + "LastModifiedDate":{"type":"timestamp"}, + "Limit":{ + "type":"integer", + "box":true + }, + "ListBranchesInput":{ + "type":"structure", + "required":["repositoryName"], + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListBranchesOutput":{ + "type":"structure", + "members":{ + "branches":{"shape":"BranchNameList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListPullRequestsInput":{ + "type":"structure", + "required":["repositoryName"], + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "authorArn":{"shape":"Arn"}, + "pullRequestStatus":{"shape":"PullRequestStatusEnum"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "ListPullRequestsOutput":{ + "type":"structure", + "required":["pullRequestIds"], + "members":{ + "pullRequestIds":{"shape":"PullRequestIdList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListRepositoriesInput":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"}, + "sortBy":{"shape":"SortByEnum"}, + "order":{"shape":"OrderEnum"} + } + }, + "ListRepositoriesOutput":{ + "type":"structure", + "members":{ + "repositories":{"shape":"RepositoryNameIdPairList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "Location":{ + "type":"structure", + "members":{ + "filePath":{"shape":"Path"}, + "filePosition":{"shape":"Position"}, + "relativeFileVersion":{"shape":"RelativeFileVersionEnum"} + } + }, + "ManualMergeRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "MaxResults":{"type":"integer"}, + "MaximumBranchesExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "MaximumOpenPullRequestsExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "MaximumRepositoryNamesExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "MaximumRepositoryTriggersExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "MergeMetadata":{ + "type":"structure", + "members":{ + "isMerged":{"shape":"IsMerged"}, + "mergedBy":{"shape":"Arn"} + } + }, + "MergeOptionRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "MergeOptionTypeEnum":{ + "type":"string", + "enum":["FAST_FORWARD_MERGE"] + }, + "MergePullRequestByFastForwardInput":{ + "type":"structure", + "required":[ + "pullRequestId", + "repositoryName" + ], + "members":{ + "pullRequestId":{"shape":"PullRequestId"}, + "repositoryName":{"shape":"RepositoryName"}, + "sourceCommitId":{"shape":"CommitId"} + } + }, + "MergePullRequestByFastForwardOutput":{ + "type":"structure", + "members":{ + "pullRequest":{"shape":"PullRequest"} + } + }, + "Message":{"type":"string"}, + "Mode":{"type":"string"}, + "MultipleRepositoriesInPullRequestException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Name":{"type":"string"}, + "NextToken":{"type":"string"}, + "ObjectId":{"type":"string"}, + "OrderEnum":{ + "type":"string", + "enum":[ + "ascending", + "descending" + ] + }, + "ParentList":{ + "type":"list", + "member":{"shape":"ObjectId"} + }, + "Path":{"type":"string"}, + "PathDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "PathRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Position":{"type":"long"}, + "PostCommentForComparedCommitInput":{ + "type":"structure", + "required":[ + "repositoryName", + "afterCommitId", + "content" + ], + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "beforeCommitId":{"shape":"CommitId"}, + "afterCommitId":{"shape":"CommitId"}, + "location":{"shape":"Location"}, + "content":{"shape":"Content"}, + "clientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "PostCommentForComparedCommitOutput":{ + "type":"structure", + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "beforeCommitId":{"shape":"CommitId"}, + "afterCommitId":{"shape":"CommitId"}, + "beforeBlobId":{"shape":"ObjectId"}, + "afterBlobId":{"shape":"ObjectId"}, + "location":{"shape":"Location"}, + "comment":{"shape":"Comment"} + } + }, + "PostCommentForPullRequestInput":{ + "type":"structure", + "required":[ + "pullRequestId", + "repositoryName", + "beforeCommitId", + "afterCommitId", + "content" + ], + "members":{ + "pullRequestId":{"shape":"PullRequestId"}, + "repositoryName":{"shape":"RepositoryName"}, + "beforeCommitId":{"shape":"CommitId"}, + "afterCommitId":{"shape":"CommitId"}, + "location":{"shape":"Location"}, + "content":{"shape":"Content"}, + "clientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "PostCommentForPullRequestOutput":{ "type":"structure", - "required":[ - "repositoryName", - "triggers" - ], + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "pullRequestId":{"shape":"PullRequestId"}, + "beforeCommitId":{"shape":"CommitId"}, + "afterCommitId":{"shape":"CommitId"}, + "beforeBlobId":{"shape":"ObjectId"}, + "afterBlobId":{"shape":"ObjectId"}, + "location":{"shape":"Location"}, + "comment":{"shape":"Comment"} + } + }, + "PostCommentReplyInput":{ + "type":"structure", + "required":[ + "inReplyTo", + "content" + ], + "members":{ + "inReplyTo":{"shape":"CommentId"}, + "clientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + }, + "content":{"shape":"Content"} + } + }, + "PostCommentReplyOutput":{ + "type":"structure", + "members":{ + "comment":{"shape":"Comment"} + } + }, + "PullRequest":{ + "type":"structure", + "members":{ + "pullRequestId":{"shape":"PullRequestId"}, + "title":{"shape":"Title"}, + "description":{"shape":"Description"}, + "lastActivityDate":{"shape":"LastModifiedDate"}, + "creationDate":{"shape":"CreationDate"}, + "pullRequestStatus":{"shape":"PullRequestStatusEnum"}, + "authorArn":{"shape":"Arn"}, + "pullRequestTargets":{"shape":"PullRequestTargetList"}, + "clientRequestToken":{"shape":"ClientRequestToken"} + } + }, + "PullRequestAlreadyClosedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "PullRequestDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "PullRequestEvent":{ + "type":"structure", + "members":{ + "pullRequestId":{"shape":"PullRequestId"}, + "eventDate":{"shape":"EventDate"}, + "pullRequestEventType":{"shape":"PullRequestEventType"}, + "actorArn":{"shape":"Arn"}, + "pullRequestStatusChangedEventMetadata":{"shape":"PullRequestStatusChangedEventMetadata"}, + "pullRequestSourceReferenceUpdatedEventMetadata":{"shape":"PullRequestSourceReferenceUpdatedEventMetadata"}, + "pullRequestMergedStateChangedEventMetadata":{"shape":"PullRequestMergedStateChangedEventMetadata"} + } + }, + "PullRequestEventList":{ + "type":"list", + "member":{"shape":"PullRequestEvent"} + }, + "PullRequestEventType":{ + "type":"string", + "enum":[ + "PULL_REQUEST_CREATED", + "PULL_REQUEST_STATUS_CHANGED", + "PULL_REQUEST_SOURCE_REFERENCE_UPDATED", + "PULL_REQUEST_MERGE_STATE_CHANGED" + ] + }, + "PullRequestId":{"type":"string"}, + "PullRequestIdList":{ + "type":"list", + "member":{"shape":"PullRequestId"} + }, + "PullRequestIdRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "PullRequestMergedStateChangedEventMetadata":{ + "type":"structure", + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "destinationReference":{"shape":"ReferenceName"}, + "mergeMetadata":{"shape":"MergeMetadata"} + } + }, + "PullRequestSourceReferenceUpdatedEventMetadata":{ + "type":"structure", + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "beforeCommitId":{"shape":"CommitId"}, + "afterCommitId":{"shape":"CommitId"} + } + }, + "PullRequestStatusChangedEventMetadata":{ + "type":"structure", + "members":{ + "pullRequestStatus":{"shape":"PullRequestStatusEnum"} + } + }, + "PullRequestStatusEnum":{ + "type":"string", + "enum":[ + "OPEN", + "CLOSED" + ] + }, + "PullRequestStatusRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "PullRequestTarget":{ + "type":"structure", + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "sourceReference":{"shape":"ReferenceName"}, + "destinationReference":{"shape":"ReferenceName"}, + "destinationCommit":{"shape":"CommitId"}, + "sourceCommit":{"shape":"CommitId"}, + "mergeMetadata":{"shape":"MergeMetadata"} + } + }, + "PullRequestTargetList":{ + "type":"list", + "member":{"shape":"PullRequestTarget"} + }, + "PutRepositoryTriggersInput":{ + "type":"structure", + "required":[ + "repositoryName", + "triggers" + ], "members":{ "repositoryName":{"shape":"RepositoryName"}, "triggers":{"shape":"RepositoryTriggersList"} @@ -884,6 +2015,32 @@ "configurationId":{"shape":"RepositoryTriggersConfigurationId"} } }, + "ReferenceDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ReferenceName":{"type":"string"}, + "ReferenceNameRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ReferenceTypeNotSupportedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "RelativeFileVersionEnum":{ + "type":"string", + "enum":[ + "BEFORE", + "AFTER" + ] + }, "RepositoryDescription":{ "type":"string", "max":1000 @@ -959,6 +2116,12 @@ }, "exception":true }, + "RepositoryNotAssociatedWithPullRequestException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "RepositoryNotFoundList":{ "type":"list", "member":{"shape":"RepositoryName"} @@ -1051,6 +2214,40 @@ "lastModifiedDate" ] }, + "SourceAndDestinationAreSameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Target":{ + "type":"structure", + "required":[ + "repositoryName", + "sourceReference" + ], + "members":{ + "repositoryName":{"shape":"RepositoryName"}, + "sourceReference":{"shape":"ReferenceName"}, + "destinationReference":{"shape":"ReferenceName"} + } + }, + "TargetList":{ + "type":"list", + "member":{"shape":"Target"} + }, + "TargetRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "TargetsRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "TestRepositoryTriggersInput":{ "type":"structure", "required":[ @@ -1069,6 +2266,45 @@ "failedExecutions":{"shape":"RepositoryTriggerExecutionFailureList"} } }, + "TipOfSourceReferenceIsDifferentException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "TipsDivergenceExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Title":{ + "type":"string", + "max":150 + }, + "TitleRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "UpdateCommentInput":{ + "type":"structure", + "required":[ + "commentId", + "content" + ], + "members":{ + "commentId":{"shape":"CommentId"}, + "content":{"shape":"Content"} + } + }, + "UpdateCommentOutput":{ + "type":"structure", + "members":{ + "comment":{"shape":"Comment"} + } + }, "UpdateDefaultBranchInput":{ "type":"structure", "required":[ @@ -1080,6 +2316,60 @@ "defaultBranchName":{"shape":"BranchName"} } }, + "UpdatePullRequestDescriptionInput":{ + "type":"structure", + "required":[ + "pullRequestId", + "description" + ], + "members":{ + "pullRequestId":{"shape":"PullRequestId"}, + "description":{"shape":"Description"} + } + }, + "UpdatePullRequestDescriptionOutput":{ + "type":"structure", + "required":["pullRequest"], + "members":{ + "pullRequest":{"shape":"PullRequest"} + } + }, + "UpdatePullRequestStatusInput":{ + "type":"structure", + "required":[ + "pullRequestId", + "pullRequestStatus" + ], + "members":{ + "pullRequestId":{"shape":"PullRequestId"}, + "pullRequestStatus":{"shape":"PullRequestStatusEnum"} + } + }, + "UpdatePullRequestStatusOutput":{ + "type":"structure", + "required":["pullRequest"], + "members":{ + "pullRequest":{"shape":"PullRequest"} + } + }, + "UpdatePullRequestTitleInput":{ + "type":"structure", + "required":[ + "pullRequestId", + "title" + ], + "members":{ + "pullRequestId":{"shape":"PullRequestId"}, + "title":{"shape":"Title"} + } + }, + "UpdatePullRequestTitleOutput":{ + "type":"structure", + "required":["pullRequest"], + "members":{ + "pullRequest":{"shape":"PullRequest"} + } + }, "UpdateRepositoryDescriptionInput":{ "type":"structure", "required":["repositoryName"], diff --git a/models/apis/codecommit/2015-04-13/docs-2.json b/models/apis/codecommit/2015-04-13/docs-2.json index b58b35ec7c7..9fd962b0c7b 100644 --- a/models/apis/codecommit/2015-04-13/docs-2.json +++ b/models/apis/codecommit/2015-04-13/docs-2.json @@ -1,22 +1,40 @@ { "version": "2.0", - "service": "AWS CodeCommit

This is the AWS CodeCommit API Reference. This reference provides descriptions of the operations and data types for AWS CodeCommit API along with usage examples.

You can use the AWS CodeCommit API to work with the following objects:

Repositories, by calling the following:

Branches, by calling the following:

Information about committed code in a repository, by calling the following:

Triggers, by calling the following:

For information about how to use AWS CodeCommit, see the AWS CodeCommit User Guide.

", + "service": "AWS CodeCommit

This is the AWS CodeCommit API Reference. This reference provides descriptions of the operations and data types for AWS CodeCommit API along with usage examples.

You can use the AWS CodeCommit API to work with the following objects:

Repositories, by calling the following:

Branches, by calling the following:

Information about committed code in a repository, by calling the following:

Pull requests, by calling the following:

Information about comments in a repository, by calling the following:

Triggers, by calling the following:

For information about how to use AWS CodeCommit, see the AWS CodeCommit User Guide.

", "operations": { "BatchGetRepositories": "

Returns information about one or more repositories.

The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a web page could expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a web page.

", "CreateBranch": "

Creates a new branch in a repository and points the branch to a commit.

Calling the create branch operation does not set a repository's default branch. To do this, call the update default branch operation.

", + "CreatePullRequest": "

Creates a pull request in the specified repository.

", "CreateRepository": "

Creates a new, empty repository.

", - "DeleteRepository": "

Deletes a repository. If a specified repository was already deleted, a null repository ID will be returned.

Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository will fail.

", + "DeleteBranch": "

Deletes a branch from a repository, unless that branch is the default branch for the repository.

", + "DeleteCommentContent": "

Deletes the content of a comment made on a change, file, or commit in a repository.

", + "DeleteRepository": "

Deletes a repository. If a specified repository was already deleted, a null repository ID will be returned.

Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository will fail.

", + "DescribePullRequestEvents": "

Returns information about one or more pull request events.

", "GetBlob": "

Returns the base-64 encoded content of an individual blob within a repository.

", "GetBranch": "

Returns information about a repository branch, including its name and the last commit ID.

", + "GetComment": "

Returns the content of a comment made on a change, file, or commit in a repository.

", + "GetCommentsForComparedCommit": "

Returns information about comments made on the comparison between two commits.

", + "GetCommentsForPullRequest": "

Returns comments made on a pull request.

", "GetCommit": "

Returns information about a commit, including commit message and committer information.

", "GetDifferences": "

Returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID or other fully qualified reference). Results can be limited to a specified path.

", + "GetMergeConflicts": "

Returns information about merge conflicts between the before and after commit IDs for a pull request in a repository.

", + "GetPullRequest": "

Gets information about a pull request in a specified repository.

", "GetRepository": "

Returns information about a repository.

The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a web page could expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a web page.

", "GetRepositoryTriggers": "

Gets information about triggers configured for a repository.

", "ListBranches": "

Gets information about one or more branches in a repository.

", + "ListPullRequests": "

Returns a list of pull requests for a specified repository. The return list can be refined by pull request status or pull request author ARN.

", "ListRepositories": "

Gets information about one or more repositories.

", + "MergePullRequestByFastForward": "

Closes a pull request and attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the fast-forward merge option.

", + "PostCommentForComparedCommit": "

Posts a comment on the comparison between two commits.

", + "PostCommentForPullRequest": "

Posts a comment on a pull request.

", + "PostCommentReply": "

Posts a comment in reply to an existing comment on a comparison between commits or a pull request.

", "PutRepositoryTriggers": "

Replaces all triggers for a repository. This can be used to create or delete triggers.

", "TestRepositoryTriggers": "

Tests the functionality of repository triggers by sending information to the trigger target. If real data is available in the repository, the test will send data from the last commit. If no data is available, sample data will be generated.

", + "UpdateComment": "

Replaces the contents of a comment.

", "UpdateDefaultBranch": "

Sets or changes the default branch name for the specified repository.

If you use this operation to change the default branch name to the current default branch name, a success message is returned even though the default branch did not change.

", + "UpdatePullRequestDescription": "

Replaces the contents of the description of a pull request.

", + "UpdatePullRequestStatus": "

Updates the status of a pull request.

", + "UpdatePullRequestTitle": "

Replaces the title of a pull request.

", "UpdateRepositoryDescription": "

Sets or changes the comment or description for a repository.

The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a web page could expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a web page.

", "UpdateRepositoryName": "

Renames a repository. The repository name must be unique across the calling AWS account. In addition, repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. The suffix \".git\" is prohibited. For a full description of the limits on repository names, see Limits in the AWS CodeCommit User Guide.

" }, @@ -27,6 +45,11 @@ "RepositoryMetadata$accountId": "

The ID of the AWS account associated with the repository.

" } }, + "ActorDoesNotExistException": { + "base": "

The specified Amazon Resource Name (ARN) does not exist in the AWS account.

", + "refs": { + } + }, "AdditionalData": { "base": null, "refs": { @@ -36,10 +59,21 @@ "Arn": { "base": null, "refs": { + "Comment$authorArn": "

The Amazon Resource Name (ARN) of the person who posted the comment.

", + "DescribePullRequestEventsInput$actorArn": "

The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with additional commits or changing the status of a pull request.

", + "ListPullRequestsInput$authorArn": "

Optional. The Amazon Resource Name (ARN) of the user who created the pull request. If used, this filters the results to pull requests created by that user.

", + "MergeMetadata$mergedBy": "

The Amazon Resource Name (ARN) of the user who merged the branches.

", + "PullRequest$authorArn": "

The Amazon Resource Name (ARN) of the user who created the pull request.

", + "PullRequestEvent$actorArn": "

The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with additional commits or changing the status of a pull request.

", "RepositoryMetadata$Arn": "

The Amazon Resource Name (ARN) of the repository.

", "RepositoryTrigger$destinationArn": "

The ARN of the resource that is the target for a trigger. For example, the ARN of a topic in Amazon Simple Notification Service (SNS).

" } }, + "AuthorDoesNotExistException": { + "base": "

The specified Amazon Resource Name (ARN) does not exist in the AWS account.

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

Represents the input of a batch get repositories operation.

", "refs": { @@ -50,6 +84,11 @@ "refs": { } }, + "BeforeCommitIdAndAfterCommitIdAreSameException": { + "base": "

The before commit ID and the after commit ID are the same, which is not valid. The before commit ID and the after commit ID must be different commit IDs.

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

The specified blob does not exist.

", "refs": { @@ -75,6 +114,7 @@ "BranchInfo": { "base": "

Returns information about a branch.

", "refs": { + "DeleteBranchOutput$deletedBranch": "

Information about the branch deleted by the operation, including the branch name and the commit ID that was the tip of the branch.

", "GetBranchOutput$branch": "

The name of the branch.

" } }, @@ -84,6 +124,7 @@ "BranchInfo$branchName": "

The name of the branch.

", "BranchNameList$member": null, "CreateBranchInput$branchName": "

The name of the new branch to create.

", + "DeleteBranchInput$branchName": "

The name of the branch to delete.

", "GetBranchInput$branchName": "

The name of the branch for which you want to retrieve information.

", "RepositoryMetadata$defaultBranch": "

The repository's default branch name.

", "UpdateDefaultBranchInput$defaultBranchName": "

The name of the branch to set as the default.

" @@ -98,7 +139,7 @@ "base": null, "refs": { "ListBranchesOutput$branches": "

The list of branch names.

", - "RepositoryTrigger$branches": "

The branches that will be included in the trigger configuration. If no branches are specified, the trigger will apply to all branches.

" + "RepositoryTrigger$branches": "

The branches that will be included in the trigger configuration. If you specify an empty array, the trigger will apply to all branches.

While no content is required in the array, you must include the array itself.

" } }, "BranchNameRequiredException": { @@ -112,6 +153,22 @@ "Difference$changeType": "

Whether the change type of the difference is an addition (A), deletion (D), or modification (M).

" } }, + "ClientRequestToken": { + "base": null, + "refs": { + "Comment$clientRequestToken": "

A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.

", + "CreatePullRequestInput$clientRequestToken": "

A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.

The AWS SDKs prepopulate client request tokens. If using an AWS SDK, you do not have to generate an idempotency token, as this will be done for you.

", + "PostCommentForComparedCommitInput$clientRequestToken": "

A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.

", + "PostCommentForPullRequestInput$clientRequestToken": "

A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.

", + "PostCommentReplyInput$clientRequestToken": "

A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.

", + "PullRequest$clientRequestToken": "

A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.

" + } + }, + "ClientRequestTokenRequiredException": { + "base": "

A client request token is required. A client request token is an unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.

", + "refs": { + } + }, "CloneUrlHttp": { "base": null, "refs": { @@ -124,6 +181,90 @@ "RepositoryMetadata$cloneUrlSsh": "

The URL to use for cloning the repository over SSH.

" } }, + "Comment": { + "base": "

Returns information about a specific comment.

", + "refs": { + "Comments$member": null, + "DeleteCommentContentOutput$comment": "

Information about the comment you just deleted.

", + "GetCommentOutput$comment": "

The contents of the comment.

", + "PostCommentForComparedCommitOutput$comment": "

The content of the comment you posted.

", + "PostCommentForPullRequestOutput$comment": "

The content of the comment you posted.

", + "PostCommentReplyOutput$comment": "

Information about the reply to a comment.

", + "UpdateCommentOutput$comment": "

Information about the updated comment.

" + } + }, + "CommentContentRequiredException": { + "base": "

The comment is empty. You must provide some content for a comment. The content cannot be null.

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

The comment is too large. Comments are limited to 1,000 characters.

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

This comment has already been deleted. You cannot edit or delete a deleted comment.

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

No comment exists with the provided ID. Verify that you have provided the correct ID, and then try again.

", + "refs": { + } + }, + "CommentId": { + "base": null, + "refs": { + "Comment$commentId": "

The system-generated comment ID.

", + "Comment$inReplyTo": "

The ID of the comment for which this comment is a reply, if any.

", + "DeleteCommentContentInput$commentId": "

The unique, system-generated ID of the comment. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest.

", + "GetCommentInput$commentId": "

The unique, system-generated ID of the comment. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest.

", + "PostCommentReplyInput$inReplyTo": "

The system-generated ID of the comment to which you want to reply. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest.

", + "UpdateCommentInput$commentId": "

The system-generated ID of the comment you want to update. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest.

" + } + }, + "CommentIdRequiredException": { + "base": "

The comment ID is missing or null. A comment ID is required.

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

You cannot modify or delete this comment. Only comment authors can modify or delete their comments.

", + "refs": { + } + }, + "Comments": { + "base": null, + "refs": { + "CommentsForComparedCommit$comments": "

An array of comment objects. Each comment object contains information about a comment on the comparison between commits.

", + "CommentsForPullRequest$comments": "

An array of comment objects. Each comment object contains information about a comment on the pull request.

" + } + }, + "CommentsForComparedCommit": { + "base": "

Returns information about comments on the comparison between two commits.

", + "refs": { + "CommentsForComparedCommitData$member": null + } + }, + "CommentsForComparedCommitData": { + "base": null, + "refs": { + "GetCommentsForComparedCommitOutput$commentsForComparedCommitData": "

A list of comment objects on the compared commit.

" + } + }, + "CommentsForPullRequest": { + "base": "

Returns information about comments on a pull request.

", + "refs": { + "CommentsForPullRequestData$member": null + } + }, + "CommentsForPullRequestData": { + "base": null, + "refs": { + "GetCommentsForPullRequestOutput$commentsForPullRequestData": "

An array of comment objects on the pull request.

" + } + }, "Commit": { "base": "

Returns information about a specific commit.

", "refs": { @@ -139,7 +280,30 @@ "base": null, "refs": { "BranchInfo$commitId": "

The ID of the last commit made to the branch.

", - "CreateBranchInput$commitId": "

The ID of the commit to point the new branch to.

" + "CommentsForComparedCommit$beforeCommitId": "

The full commit ID of the commit used to establish the 'before' of the comparison.

", + "CommentsForComparedCommit$afterCommitId": "

The full commit ID of the commit used to establish the 'after' of the comparison.

", + "CommentsForPullRequest$beforeCommitId": "

The full commit ID of the commit that was the tip of the destination branch when the pull request was created. This commit will be superceded by the after commit in the source branch when and if you merge the source branch into the destination branch.

", + "CommentsForPullRequest$afterCommitId": "

he full commit ID of the commit that was the tip of the source branch at the time the comment was made.

", + "CreateBranchInput$commitId": "

The ID of the commit to point the new branch to.

", + "GetCommentsForComparedCommitInput$beforeCommitId": "

To establish the directionality of the comparison, the full commit ID of the 'before' commit.

", + "GetCommentsForComparedCommitInput$afterCommitId": "

To establish the directionality of the comparison, the full commit ID of the 'after' commit.

", + "GetCommentsForPullRequestInput$beforeCommitId": "

The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created.

", + "GetCommentsForPullRequestInput$afterCommitId": "

The full commit ID of the commit in the source branch that was the tip of the branch at the time the comment was made.

", + "GetMergeConflictsOutput$destinationCommitId": "

The commit ID of the destination commit specifier that was used in the merge evaluation.

", + "GetMergeConflictsOutput$sourceCommitId": "

The commit ID of the source commit specifier that was used in the merge evaluation.

", + "MergePullRequestByFastForwardInput$sourceCommitId": "

The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID.

", + "PostCommentForComparedCommitInput$beforeCommitId": "

To establish the directionality of the comparison, the full commit ID of the 'before' commit.

", + "PostCommentForComparedCommitInput$afterCommitId": "

To establish the directionality of the comparison, the full commit ID of the 'after' commit.

", + "PostCommentForComparedCommitOutput$beforeCommitId": "

In the directionality you established, the full commit ID of the 'before' commit.

", + "PostCommentForComparedCommitOutput$afterCommitId": "

In the directionality you established, the full commit ID of the 'after' commit.

", + "PostCommentForPullRequestInput$beforeCommitId": "

The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created.

", + "PostCommentForPullRequestInput$afterCommitId": "

The full commit ID of the commit in the source branch that is the current tip of the branch for the pull request when you post the comment.

", + "PostCommentForPullRequestOutput$beforeCommitId": "

The full commit ID of the commit in the source branch used to create the pull request, or in the case of an updated pull request, the full commit ID of the commit used to update the pull request.

", + "PostCommentForPullRequestOutput$afterCommitId": "

The full commit ID of the commit in the destination branch where the pull request will be merged.

", + "PullRequestSourceReferenceUpdatedEventMetadata$beforeCommitId": "

The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was updated.

", + "PullRequestSourceReferenceUpdatedEventMetadata$afterCommitId": "

The full commit ID of the commit in the source branch that was the tip of the branch at the time the pull request was updated.

", + "PullRequestTarget$destinationCommit": "

The full commit ID that is the tip of the destination branch. This is the commit where the pull request was or will be merged.

", + "PullRequestTarget$sourceCommit": "

The full commit ID of the tip of the source branch used to create the pull request. If the pull request branch is updated by a push while the pull request is open, the commit ID will change to reflect the new tip of the branch.

" } }, "CommitIdDoesNotExistException": { @@ -156,7 +320,9 @@ "base": null, "refs": { "GetDifferencesInput$beforeCommitSpecifier": "

The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, the full commit ID. Optional. If not specified, all changes prior to the afterCommitSpecifier value will be shown. If you do not use beforeCommitSpecifier in your request, consider limiting the results with maxResults.

", - "GetDifferencesInput$afterCommitSpecifier": "

The branch, tag, HEAD, or other fully qualified reference used to identify a commit.

" + "GetDifferencesInput$afterCommitSpecifier": "

The branch, tag, HEAD, or other fully qualified reference used to identify a commit.

", + "GetMergeConflictsInput$destinationCommitSpecifier": "

The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, a branch name or a full commit ID.

", + "GetMergeConflictsInput$sourceCommitSpecifier": "

The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, a branch name or a full commit ID.

" } }, "CommitRequiredException": { @@ -164,11 +330,31 @@ "refs": { } }, + "Content": { + "base": null, + "refs": { + "Comment$content": "

The content of the comment.

", + "PostCommentForComparedCommitInput$content": "

The content of the comment you want to make.

", + "PostCommentForPullRequestInput$content": "

The content of your comment on the change.

", + "PostCommentReplyInput$content": "

The contents of your reply to a comment.

", + "UpdateCommentInput$content": "

The updated content with which you want to replace the existing content of the comment.

" + } + }, "CreateBranchInput": { "base": "

Represents the input of a create branch operation.

", "refs": { } }, + "CreatePullRequestInput": { + "base": null, + "refs": { + } + }, + "CreatePullRequestOutput": { + "base": null, + "refs": { + } + }, "CreateRepositoryInput": { "base": "

Represents the input of a create repository operation.

", "refs": { @@ -182,6 +368,8 @@ "CreationDate": { "base": null, "refs": { + "Comment$creationDate": "

The date and time the comment was created, in timestamp format.

", + "PullRequest$creationDate": "

The date and time the pull request was originally created, in timestamp format.

", "RepositoryMetadata$creationDate": "

The date and time the repository was created, in timestamp format.

" } }, @@ -191,6 +379,31 @@ "UserInfo$date": "

The date when the specified commit was pushed to the repository.

" } }, + "DefaultBranchCannotBeDeletedException": { + "base": "

The specified branch is the default branch for the repository, and cannot be deleted. To delete this branch, you must first set another branch as the default branch.

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

Represents the input of a delete branch operation.

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

Represents the output of a delete branch operation.

", + "refs": { + } + }, + "DeleteCommentContentInput": { + "base": null, + "refs": { + } + }, + "DeleteCommentContentOutput": { + "base": null, + "refs": { + } + }, "DeleteRepositoryInput": { "base": "

Represents the input of a delete repository operation.

", "refs": { @@ -201,6 +414,24 @@ "refs": { } }, + "DescribePullRequestEventsInput": { + "base": null, + "refs": { + } + }, + "DescribePullRequestEventsOutput": { + "base": null, + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "CreatePullRequestInput$description": "

A description of the pull request.

", + "PullRequest$description": "

The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.

", + "UpdatePullRequestDescriptionInput$description": "

The updated content of the description for the pull request. This content will replace the existing description.

" + } + }, "Difference": { "base": "

Returns information about a set of differences for a commit specifier.

", "refs": { @@ -244,6 +475,12 @@ "refs": { } }, + "EventDate": { + "base": null, + "refs": { + "PullRequestEvent$eventDate": "

The day and time of the pull request event, in timestamp format.

" + } + }, "FileTooLargeException": { "base": "

The specified file exceeds the file size limit for AWS CodeCommit. For more information about limits in AWS CodeCommit, see AWS CodeCommit User Guide.

", "refs": { @@ -269,6 +506,36 @@ "refs": { } }, + "GetCommentInput": { + "base": null, + "refs": { + } + }, + "GetCommentOutput": { + "base": null, + "refs": { + } + }, + "GetCommentsForComparedCommitInput": { + "base": null, + "refs": { + } + }, + "GetCommentsForComparedCommitOutput": { + "base": null, + "refs": { + } + }, + "GetCommentsForPullRequestInput": { + "base": null, + "refs": { + } + }, + "GetCommentsForPullRequestOutput": { + "base": null, + "refs": { + } + }, "GetCommitInput": { "base": "

Represents the input of a get commit operation.

", "refs": { @@ -289,6 +556,26 @@ "refs": { } }, + "GetMergeConflictsInput": { + "base": null, + "refs": { + } + }, + "GetMergeConflictsOutput": { + "base": null, + "refs": { + } + }, + "GetPullRequestInput": { + "base": null, + "refs": { + } + }, + "GetPullRequestOutput": { + "base": null, + "refs": { + } + }, "GetRepositoryInput": { "base": "

Represents the input of a get repository operation.

", "refs": { @@ -309,13 +596,38 @@ "refs": { } }, + "IdempotencyParameterMismatchException": { + "base": "

The client request token is not valid. Either the token is not in a valid format, or the token has been used in a previous request and cannot be re-used.

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

The Amazon Resource Name (ARN) is not valid. Make sure that you have provided the full ARN for the user who initiated the change for the pull request, and then try again.

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

The Amazon Resource Name (ARN) is not valid. Make sure that you have provided the full ARN for the author of the pull request, and then try again.

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

The specified blob is not valid.

", "refs": { } }, "InvalidBranchNameException": { - "base": "

The specified branch name is not valid.

", + "base": "

The specified reference name is not valid.

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

The client request token is not valid.

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

The comment ID is not in a valid format. Make sure that you have provided the full comment ID.

", "refs": { } }, @@ -334,11 +646,36 @@ "refs": { } }, + "InvalidDescriptionException": { + "base": "

The pull request description is not valid. Descriptions are limited to 1,000 characters in length.

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

The destination commit specifier is not valid. You must provide a valid branch name, tag, or full commit ID.

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

The location of the file is not valid. Make sure that you include the extension of the file as well as the file name.

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

The position is not valid. Make sure that the line number exists in the version of the file you want to comment on.

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

The specified number of maximum results is not valid.

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

The specified merge option is not valid. The only valid value is FAST_FORWARD_MERGE.

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

The specified sort order is not valid.

", "refs": { @@ -349,6 +686,36 @@ "refs": { } }, + "InvalidPullRequestEventTypeException": { + "base": "

The pull request event type is not valid.

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

The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.

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

The pull request status is not valid. The only valid values are OPEN and CLOSED.

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

The pull request status update is not valid. The only valid update is from OPEN to CLOSED.

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

The specified reference name format is not valid. Reference names must conform to the Git references format, for example refs/heads/master. For more information, see Git Internals - Git References or consult your Git documentation.

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

Either the enum is not in a valid format, or the specified file version enum is not valid in respect to the current file version.

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

The specified repository description is not valid.

", "refs": { @@ -394,9 +761,49 @@ "refs": { } }, + "InvalidSourceCommitSpecifierException": { + "base": "

The source commit specifier is not valid. You must provide a valid branch name, tag, or full commit ID.

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

The target for the pull request is not valid. A target must contain the full values for the repository name, source branch, and destination branch for the pull request.

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

The targets for the pull request is not valid or not in a valid format. Targets are a list of target objects. Each target object must contain the full values for the repository name, source branch, and destination branch for a pull request.

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

The title of the pull request is not valid. Pull request titles cannot exceed 100 characters in length.

", + "refs": { + } + }, + "IsCommentDeleted": { + "base": null, + "refs": { + "Comment$deleted": "

A Boolean value indicating whether the comment has been deleted.

" + } + }, + "IsMergeable": { + "base": null, + "refs": { + "GetMergeConflictsOutput$mergeable": "

A Boolean value that indicates whether the code is mergable by the specified merge option.

" + } + }, + "IsMerged": { + "base": null, + "refs": { + "MergeMetadata$isMerged": "

A Boolean value indicating whether the merge has been made.

" + } + }, "LastModifiedDate": { "base": null, "refs": { + "Comment$lastModifiedDate": "

The date and time the comment was most recently modified, in timestamp format.

", + "PullRequest$lastActivityDate": "

The day and time of the last user or system activity on the pull request, in timestamp format.

", "RepositoryMetadata$lastModifiedDate": "

The date and time the repository was last modified, in timestamp format.

" } }, @@ -416,6 +823,16 @@ "refs": { } }, + "ListPullRequestsInput": { + "base": null, + "refs": { + } + }, + "ListPullRequestsOutput": { + "base": null, + "refs": { + } + }, "ListRepositoriesInput": { "base": "

Represents the input of a list repositories operation.

", "refs": { @@ -426,11 +843,41 @@ "refs": { } }, + "Location": { + "base": "

Returns information about the location of a change or comment in the comparison between two commits or a pull request.

", + "refs": { + "CommentsForComparedCommit$location": "

Location information about the comment on the comparison, including the file name, line number, and whether the version of the file where the comment was made is 'BEFORE' or 'AFTER'.

", + "CommentsForPullRequest$location": "

Location information about the comment on the pull request, including the file name, line number, and whether the version of the file where the comment was made is 'BEFORE' (destination branch) or 'AFTER' (source branch).

", + "PostCommentForComparedCommitInput$location": "

The location of the comparison where you want to comment.

", + "PostCommentForComparedCommitOutput$location": "

The location of the comment in the comparison between the two commits.

", + "PostCommentForPullRequestInput$location": "

The location of the change where you want to post your comment. If no location is provided, the comment will be posted as a general comment on the pull request difference between the before commit ID and the after commit ID.

", + "PostCommentForPullRequestOutput$location": "

The location of the change where you posted your comment.

" + } + }, + "ManualMergeRequiredException": { + "base": "

The pull request cannot be merged automatically into the destination branch. You must manually merge the branches and resolve any conflicts.

", + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "DescribePullRequestEventsInput$maxResults": "

A non-negative integer used to limit the number of returned results. The default is 100 events, which is also the maximum number of events that can be returned in a result.

", + "GetCommentsForComparedCommitInput$maxResults": "

A non-negative integer used to limit the number of returned results. The default is 100 comments, and is configurable up to 500.

", + "GetCommentsForPullRequestInput$maxResults": "

A non-negative integer used to limit the number of returned results. The default is 100 comments. You can return up to 500 comments with a single request.

", + "ListPullRequestsInput$maxResults": "

A non-negative integer used to limit the number of returned results.

" + } + }, "MaximumBranchesExceededException": { "base": "

The number of branches for the trigger was exceeded.

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

You cannot create the pull request because the repository has too many open pull requests. The maximum number of open pull requests for a repository is 1,000. Close one or more open pull requests, and then try again.

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

The maximum number of allowed repository names was exceeded. Currently, this number is 25.

", "refs": { @@ -441,6 +888,34 @@ "refs": { } }, + "MergeMetadata": { + "base": "

Returns information about a merge or potential merge between a source reference and a destination reference in a pull request.

", + "refs": { + "PullRequestMergedStateChangedEventMetadata$mergeMetadata": "

Information about the merge state change event.

", + "PullRequestTarget$mergeMetadata": "

Returns metadata about the state of the merge, including whether the merge has been made.

" + } + }, + "MergeOptionRequiredException": { + "base": "

A merge option or stategy is required, and none was provided.

", + "refs": { + } + }, + "MergeOptionTypeEnum": { + "base": null, + "refs": { + "GetMergeConflictsInput$mergeOption": "

The merge option or strategy you want to use to merge the code. The only valid value is FAST_FORWARD_MERGE.

" + } + }, + "MergePullRequestByFastForwardInput": { + "base": null, + "refs": { + } + }, + "MergePullRequestByFastForwardOutput": { + "base": null, + "refs": { + } + }, "Message": { "base": null, "refs": { @@ -453,6 +928,11 @@ "BlobMetadata$mode": "

The file mode permissions of the blob. File mode permission codes include:

" } }, + "MultipleRepositoriesInPullRequestException": { + "base": "

You cannot include more than one repository in a pull request. Make sure you have specified only one repository name in your request, and then try again.

", + "refs": { + } + }, "Name": { "base": null, "refs": { @@ -462,10 +942,18 @@ "NextToken": { "base": null, "refs": { + "DescribePullRequestEventsInput$nextToken": "

An enumeration token that when provided in a request, returns the next batch of the results.

", + "DescribePullRequestEventsOutput$nextToken": "

An enumeration token that can be used in a request to return the next batch of the results.

", + "GetCommentsForComparedCommitInput$nextToken": "

An enumeration token that when provided in a request, returns the next batch of the results.

", + "GetCommentsForComparedCommitOutput$nextToken": "

An enumeration token that can be used in a request to return the next batch of the results.

", + "GetCommentsForPullRequestInput$nextToken": "

An enumeration token that when provided in a request, returns the next batch of the results.

", + "GetCommentsForPullRequestOutput$nextToken": "

An enumeration token that can be used in a request to return the next batch of the results.

", "GetDifferencesInput$NextToken": "

An enumeration token that when provided in a request, returns the next batch of the results.

", "GetDifferencesOutput$NextToken": "

An enumeration token that can be used in a request to return the next batch of the results.

", "ListBranchesInput$nextToken": "

An enumeration token that allows the operation to batch the results.

", "ListBranchesOutput$nextToken": "

An enumeration token that returns the batch of the results.

", + "ListPullRequestsInput$nextToken": "

An enumeration token that when provided in a request, returns the next batch of the results.

", + "ListPullRequestsOutput$nextToken": "

An enumeration token that when provided in a request, returns the next batch of the results.

", "ListRepositoriesInput$nextToken": "

An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.

", "ListRepositoriesOutput$nextToken": "

An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.

" } @@ -474,10 +962,19 @@ "base": null, "refs": { "BlobMetadata$blobId": "

The full ID of the blob.

", + "CommentsForComparedCommit$beforeBlobId": "

The full blob ID of the commit used to establish the 'before' of the comparison.

", + "CommentsForComparedCommit$afterBlobId": "

The full blob ID of the commit used to establish the 'after' of the comparison.

", + "CommentsForPullRequest$beforeBlobId": "

The full blob ID of the file on which you want to comment on the destination commit.

", + "CommentsForPullRequest$afterBlobId": "

The full blob ID of the file on which you want to comment on the source commit.

", + "Commit$commitId": "

The full SHA of the specified commit.

", "Commit$treeId": "

Tree information for the specified commit.

", "GetBlobInput$blobId": "

The ID of the blob, which is its SHA-1 pointer.

", - "GetCommitInput$commitId": "

The commit ID.

", - "ParentList$member": null + "GetCommitInput$commitId": "

The commit ID. Commit IDs are the full SHA of the commit.

", + "ParentList$member": null, + "PostCommentForComparedCommitOutput$beforeBlobId": "

In the directionality you established, the blob ID of the 'before' blob.

", + "PostCommentForComparedCommitOutput$afterBlobId": "

In the directionality you established, the blob ID of the 'after' blob.

", + "PostCommentForPullRequestOutput$beforeBlobId": "

In the directionality of the pull request, the blob ID of the 'before' blob.

", + "PostCommentForPullRequestOutput$afterBlobId": "

In the directionality of the pull request, the blob ID of the 'after' blob.

" } }, "OrderEnum": { @@ -497,7 +994,8 @@ "refs": { "BlobMetadata$path": "

The path to the blob and any associated file name, if any.

", "GetDifferencesInput$beforePath": "

The file path in which to check for differences. Limits the results to this path. Can also be used to specify the previous name of a directory or folder. If beforePath and afterPath are not specified, differences will be shown for all paths.

", - "GetDifferencesInput$afterPath": "

The file path in which to check differences. Limits the results to this path. Can also be used to specify the changed name of a directory or folder, if it has changed. If not specified, differences will be shown for all paths.

" + "GetDifferencesInput$afterPath": "

The file path in which to check differences. Limits the results to this path. Can also be used to specify the changed name of a directory or folder, if it has changed. If not specified, differences will be shown for all paths.

", + "Location$filePath": "

The name of the file being compared, including its extension and subdirectory, if any.

" } }, "PathDoesNotExistException": { @@ -505,6 +1003,160 @@ "refs": { } }, + "PathRequiredException": { + "base": "

The filePath for a location cannot be empty or null.

", + "refs": { + } + }, + "Position": { + "base": null, + "refs": { + "Location$filePosition": "

The position of a change within a compared file, in line number format.

" + } + }, + "PostCommentForComparedCommitInput": { + "base": null, + "refs": { + } + }, + "PostCommentForComparedCommitOutput": { + "base": null, + "refs": { + } + }, + "PostCommentForPullRequestInput": { + "base": null, + "refs": { + } + }, + "PostCommentForPullRequestOutput": { + "base": null, + "refs": { + } + }, + "PostCommentReplyInput": { + "base": null, + "refs": { + } + }, + "PostCommentReplyOutput": { + "base": null, + "refs": { + } + }, + "PullRequest": { + "base": "

Returns information about a pull request.

", + "refs": { + "CreatePullRequestOutput$pullRequest": "

Information about the newly created pull request.

", + "GetPullRequestOutput$pullRequest": "

Information about the specified pull request.

", + "MergePullRequestByFastForwardOutput$pullRequest": "

Information about the specified pull request, including information about the merge.

", + "UpdatePullRequestDescriptionOutput$pullRequest": "

Information about the updated pull request.

", + "UpdatePullRequestStatusOutput$pullRequest": "

Information about the pull request.

", + "UpdatePullRequestTitleOutput$pullRequest": "

Information about the updated pull request.

" + } + }, + "PullRequestAlreadyClosedException": { + "base": "

The pull request status cannot be updated because it is already closed.

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

The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.

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

Returns information about a pull request event.

", + "refs": { + "PullRequestEventList$member": null + } + }, + "PullRequestEventList": { + "base": null, + "refs": { + "DescribePullRequestEventsOutput$pullRequestEvents": "

Information about the pull request events.

" + } + }, + "PullRequestEventType": { + "base": null, + "refs": { + "DescribePullRequestEventsInput$pullRequestEventType": "

Optional. The pull request event type about which you want to return information.

", + "PullRequestEvent$pullRequestEventType": "

The type of the pull request event, for example a status change event (PULL_REQUEST_STATUS_CHANGED) or update event (PULL_REQUEST_SOURCE_REFERENCE_UPDATED).

" + } + }, + "PullRequestId": { + "base": null, + "refs": { + "CommentsForPullRequest$pullRequestId": "

The system-generated ID of the pull request.

", + "DescribePullRequestEventsInput$pullRequestId": "

The system-generated ID of the pull request. To get this ID, use ListPullRequests.

", + "GetCommentsForPullRequestInput$pullRequestId": "

The system-generated ID of the pull request. To get this ID, use ListPullRequests.

", + "GetPullRequestInput$pullRequestId": "

The system-generated ID of the pull request. To get this ID, use ListPullRequests.

", + "MergePullRequestByFastForwardInput$pullRequestId": "

The system-generated ID of the pull request. To get this ID, use ListPullRequests.

", + "PostCommentForPullRequestInput$pullRequestId": "

The system-generated ID of the pull request. To get this ID, use ListPullRequests.

", + "PostCommentForPullRequestOutput$pullRequestId": "

The system-generated ID of the pull request.

", + "PullRequest$pullRequestId": "

The system-generated ID of the pull request.

", + "PullRequestEvent$pullRequestId": "

The system-generated ID of the pull request.

", + "PullRequestIdList$member": null, + "UpdatePullRequestDescriptionInput$pullRequestId": "

The system-generated ID of the pull request. To get this ID, use ListPullRequests.

", + "UpdatePullRequestStatusInput$pullRequestId": "

The system-generated ID of the pull request. To get this ID, use ListPullRequests.

", + "UpdatePullRequestTitleInput$pullRequestId": "

The system-generated ID of the pull request. To get this ID, use ListPullRequests.

" + } + }, + "PullRequestIdList": { + "base": null, + "refs": { + "ListPullRequestsOutput$pullRequestIds": "

The system-generated IDs of the pull requests.

" + } + }, + "PullRequestIdRequiredException": { + "base": "

A pull request ID is required, but none was provided.

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

Returns information about the change in the merge state for a pull request event.

", + "refs": { + "PullRequestEvent$pullRequestMergedStateChangedEventMetadata": "

Information about the change in mergability state for the pull request event.

" + } + }, + "PullRequestSourceReferenceUpdatedEventMetadata": { + "base": "

Information about an update to the source branch of a pull request.

", + "refs": { + "PullRequestEvent$pullRequestSourceReferenceUpdatedEventMetadata": "

Information about the updated source branch for the pull request event.

" + } + }, + "PullRequestStatusChangedEventMetadata": { + "base": "

Information about a change to the status of a pull request.

", + "refs": { + "PullRequestEvent$pullRequestStatusChangedEventMetadata": "

Information about the change in status for the pull request event.

" + } + }, + "PullRequestStatusEnum": { + "base": null, + "refs": { + "ListPullRequestsInput$pullRequestStatus": "

Optional. The status of the pull request. If used, this refines the results to the pull requests that match the specified status.

", + "PullRequest$pullRequestStatus": "

The status of the pull request. Pull request status can only change from OPEN to CLOSED.

", + "PullRequestStatusChangedEventMetadata$pullRequestStatus": "

The changed status of the pull request.

", + "UpdatePullRequestStatusInput$pullRequestStatus": "

The status of the pull request. The only valid operations are to update the status from OPEN to OPEN, OPEN to CLOSED or from from CLOSED to CLOSED.

" + } + }, + "PullRequestStatusRequiredException": { + "base": "

A pull request status is required, but none was provided.

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

Returns information about a pull request target.

", + "refs": { + "PullRequestTargetList$member": null + } + }, + "PullRequestTargetList": { + "base": null, + "refs": { + "PullRequest$pullRequestTargets": "

The targets of the pull request, including the source branch and destination branch for the pull request.

" + } + }, "PutRepositoryTriggersInput": { "base": "

Represents the input ofa put repository triggers operation.

", "refs": { @@ -515,6 +1167,37 @@ "refs": { } }, + "ReferenceDoesNotExistException": { + "base": "

The specified reference does not exist. You must provide a full commit ID.

", + "refs": { + } + }, + "ReferenceName": { + "base": null, + "refs": { + "PullRequestMergedStateChangedEventMetadata$destinationReference": "

The name of the branch that the pull request will be merged into.

", + "PullRequestTarget$sourceReference": "

The branch of the repository that contains the changes for the pull request. Also known as the source branch.

", + "PullRequestTarget$destinationReference": "

The branch of the repository where the pull request changes will be merged into. Also known as the destination branch.

", + "Target$sourceReference": "

The branch of the repository that contains the changes for the pull request. Also known as the source branch.

", + "Target$destinationReference": "

The branch of the repository where the pull request changes will be merged into. Also known as the destination branch.

" + } + }, + "ReferenceNameRequiredException": { + "base": "

A reference name is required, but none was provided.

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

The specified reference is not a supported type.

", + "refs": { + } + }, + "RelativeFileVersionEnum": { + "base": null, + "refs": { + "Location$relativeFileVersion": "

In a comparison of commits or a pull request, whether the change is in the 'before' or 'after' of that comparison.

" + } + }, "RepositoryDescription": { "base": null, "refs": { @@ -558,21 +1241,37 @@ "RepositoryName": { "base": null, "refs": { + "CommentsForComparedCommit$repositoryName": "

The name of the repository that contains the compared commits.

", + "CommentsForPullRequest$repositoryName": "

The name of the repository that contains the pull request.

", "CreateBranchInput$repositoryName": "

The name of the repository in which you want to create the new branch.

", "CreateRepositoryInput$repositoryName": "

The name of the new repository to be created.

The repository name must be unique across the calling AWS account. In addition, repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. For a full description of the limits on repository names, see Limits in the AWS CodeCommit User Guide. The suffix \".git\" is prohibited.

", + "DeleteBranchInput$repositoryName": "

The name of the repository that contains the branch to be deleted.

", "DeleteRepositoryInput$repositoryName": "

The name of the repository to delete.

", "GetBlobInput$repositoryName": "

The name of the repository that contains the blob.

", "GetBranchInput$repositoryName": "

The name of the repository that contains the branch for which you want to retrieve information.

", + "GetCommentsForComparedCommitInput$repositoryName": "

The name of the repository where you want to compare commits.

", + "GetCommentsForPullRequestInput$repositoryName": "

The name of the repository that contains the pull request.

", "GetCommitInput$repositoryName": "

The name of the repository to which the commit was made.

", "GetDifferencesInput$repositoryName": "

The name of the repository where you want to get differences.

", + "GetMergeConflictsInput$repositoryName": "

The name of the repository where the pull request was created.

", "GetRepositoryInput$repositoryName": "

The name of the repository to get information about.

", "GetRepositoryTriggersInput$repositoryName": "

The name of the repository for which the trigger is configured.

", "ListBranchesInput$repositoryName": "

The name of the repository that contains the branches.

", + "ListPullRequestsInput$repositoryName": "

The name of the repository for which you want to list pull requests.

", + "MergePullRequestByFastForwardInput$repositoryName": "

The name of the repository where the pull request was created.

", + "PostCommentForComparedCommitInput$repositoryName": "

The name of the repository where you want to post a comment on the comparison between commits.

", + "PostCommentForComparedCommitOutput$repositoryName": "

The name of the repository where you posted a comment on the comparison between commits.

", + "PostCommentForPullRequestInput$repositoryName": "

The name of the repository where you want to post a comment on a pull request.

", + "PostCommentForPullRequestOutput$repositoryName": "

The name of the repository where you posted a comment on a pull request.

", + "PullRequestMergedStateChangedEventMetadata$repositoryName": "

The name of the repository where the pull request was created.

", + "PullRequestSourceReferenceUpdatedEventMetadata$repositoryName": "

The name of the repository where the pull request was updated.

", + "PullRequestTarget$repositoryName": "

The name of the repository that contains the pull request source and destination branches.

", "PutRepositoryTriggersInput$repositoryName": "

The name of the repository where you want to create or update the trigger.

", "RepositoryMetadata$repositoryName": "

The repository's name.

", "RepositoryNameIdPair$repositoryName": "

The name associated with the repository.

", "RepositoryNameList$member": null, "RepositoryNotFoundList$member": null, + "Target$repositoryName": "

The name of the repository that contains the pull request.

", "TestRepositoryTriggersInput$repositoryName": "

The name of the repository in which to test the triggers.

", "UpdateDefaultBranchInput$repositoryName": "

The name of the repository to set or change the default branch for.

", "UpdateRepositoryDescriptionInput$repositoryName": "

The name of the repository to set or change the comment or description for.

", @@ -613,6 +1312,11 @@ "refs": { } }, + "RepositoryNotAssociatedWithPullRequestException": { + "base": "

The repository does not contain any pull requests with that pull request ID. Check to make sure you have provided the correct repository name for the pull request.

", + "refs": { + } + }, "RepositoryNotFoundList": { "base": null, "refs": { @@ -721,6 +1425,33 @@ "ListRepositoriesInput$sortBy": "

The criteria used to sort the results of a list repositories operation.

" } }, + "SourceAndDestinationAreSameException": { + "base": "

The source branch and the destination branch for the pull request are the same. You must specify different branches for the source and destination.

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

Returns information about a target for a pull request.

", + "refs": { + "TargetList$member": null + } + }, + "TargetList": { + "base": null, + "refs": { + "CreatePullRequestInput$targets": "

The targets for the pull request, including the source of the code to be reviewed (the source branch), and the destination where the creator of the pull request intends the code to be merged after the pull request is closed (the destination branch).

" + } + }, + "TargetRequiredException": { + "base": "

A pull request target is required. It cannot be empty or null. A pull request target must contain the full values for the repository name, source branch, and destination branch for the pull request.

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

An array of target objects is required. It cannot be empty or null.

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

Represents the input of a test repository triggers operation.

", "refs": { @@ -731,11 +1462,74 @@ "refs": { } }, + "TipOfSourceReferenceIsDifferentException": { + "base": "

The tip of the source branch in the destination repository does not match the tip of the source branch specified in your request. The pull request might have been updated. Make sure that you have the latest changes.

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

The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using git diff or a diff tool.

", + "refs": { + } + }, + "Title": { + "base": null, + "refs": { + "CreatePullRequestInput$title": "

The title of the pull request. This title will be used to identify the pull request to other users in the repository.

", + "PullRequest$title": "

The user-defined title of the pull request. This title is displayed in the list of pull requests to other users of the repository.

", + "UpdatePullRequestTitleInput$title": "

The updated title of the pull request. This will replace the existing title.

" + } + }, + "TitleRequiredException": { + "base": "

A pull request title is required. It cannot be empty or null.

", + "refs": { + } + }, + "UpdateCommentInput": { + "base": null, + "refs": { + } + }, + "UpdateCommentOutput": { + "base": null, + "refs": { + } + }, "UpdateDefaultBranchInput": { "base": "

Represents the input of an update default branch operation.

", "refs": { } }, + "UpdatePullRequestDescriptionInput": { + "base": null, + "refs": { + } + }, + "UpdatePullRequestDescriptionOutput": { + "base": null, + "refs": { + } + }, + "UpdatePullRequestStatusInput": { + "base": null, + "refs": { + } + }, + "UpdatePullRequestStatusOutput": { + "base": null, + "refs": { + } + }, + "UpdatePullRequestTitleInput": { + "base": null, + "refs": { + } + }, + "UpdatePullRequestTitleOutput": { + "base": null, + "refs": { + } + }, "UpdateRepositoryDescriptionInput": { "base": "

Represents the input of an update repository description operation.

", "refs": { diff --git a/models/apis/codecommit/2015-04-13/paginators-1.json b/models/apis/codecommit/2015-04-13/paginators-1.json index 8cbda7d8a69..fc672cb442f 100644 --- a/models/apis/codecommit/2015-04-13/paginators-1.json +++ b/models/apis/codecommit/2015-04-13/paginators-1.json @@ -1,5 +1,20 @@ { "pagination": { + "DescribePullRequestEvents": { + "input_token": "nextToken", + "limit_key": "maxResults", + "output_token": "nextToken" + }, + "GetCommentsForComparedCommit": { + "input_token": "nextToken", + "limit_key": "maxResults", + "output_token": "nextToken" + }, + "GetCommentsForPullRequest": { + "input_token": "nextToken", + "limit_key": "maxResults", + "output_token": "nextToken" + }, "GetDifferences": { "input_token": "NextToken", "limit_key": "MaxResults", @@ -10,6 +25,11 @@ "output_token": "nextToken", "result_key": "branches" }, + "ListPullRequests": { + "input_token": "nextToken", + "limit_key": "maxResults", + "output_token": "nextToken" + }, "ListRepositories": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/models/apis/codedeploy/2014-10-06/api-2.json b/models/apis/codedeploy/2014-10-06/api-2.json index ae064d4ab15..35b14d6b959 100644 --- a/models/apis/codedeploy/2014-10-06/api-2.json +++ b/models/apis/codedeploy/2014-10-06/api-2.json @@ -229,7 +229,10 @@ {"shape":"InvalidAutoRollbackConfigException"}, {"shape":"InvalidLoadBalancerInfoException"}, {"shape":"InvalidDeploymentStyleException"}, - {"shape":"InvalidBlueGreenDeploymentConfigurationException"} + {"shape":"InvalidBlueGreenDeploymentConfigurationException"}, + {"shape":"InvalidEC2TagCombinationException"}, + {"shape":"InvalidOnPremisesTagCombinationException"}, + {"shape":"TagSetListLimitExceededException"} ] }, "DeleteApplication":{ @@ -646,7 +649,10 @@ {"shape":"InvalidAutoRollbackConfigException"}, {"shape":"InvalidLoadBalancerInfoException"}, {"shape":"InvalidDeploymentStyleException"}, - {"shape":"InvalidBlueGreenDeploymentConfigurationException"} + {"shape":"InvalidBlueGreenDeploymentConfigurationException"}, + {"shape":"InvalidEC2TagCombinationException"}, + {"shape":"InvalidOnPremisesTagCombinationException"}, + {"shape":"TagSetListLimitExceededException"} ] } }, @@ -929,7 +935,10 @@ }, "CreateDeploymentConfigInput":{ "type":"structure", - "required":["deploymentConfigName"], + "required":[ + "deploymentConfigName", + "minimumHealthyHosts" + ], "members":{ "deploymentConfigName":{"shape":"DeploymentConfigName"}, "minimumHealthyHosts":{"shape":"MinimumHealthyHosts"} @@ -961,7 +970,9 @@ "autoRollbackConfiguration":{"shape":"AutoRollbackConfiguration"}, "deploymentStyle":{"shape":"DeploymentStyle"}, "blueGreenDeploymentConfiguration":{"shape":"BlueGreenDeploymentConfiguration"}, - "loadBalancerInfo":{"shape":"LoadBalancerInfo"} + "loadBalancerInfo":{"shape":"LoadBalancerInfo"}, + "ec2TagSet":{"shape":"EC2TagSet"}, + "onPremisesTagSet":{"shape":"OnPremisesTagSet"} } }, "CreateDeploymentGroupOutput":{ @@ -1124,7 +1135,9 @@ "blueGreenDeploymentConfiguration":{"shape":"BlueGreenDeploymentConfiguration"}, "loadBalancerInfo":{"shape":"LoadBalancerInfo"}, "lastSuccessfulDeployment":{"shape":"LastDeploymentInfo"}, - "lastAttemptedDeployment":{"shape":"LastDeploymentInfo"} + "lastAttemptedDeployment":{"shape":"LastDeploymentInfo"}, + "ec2TagSet":{"shape":"EC2TagSet"}, + "onPremisesTagSet":{"shape":"OnPremisesTagSet"} } }, "DeploymentGroupInfoList":{ @@ -1321,6 +1334,16 @@ "KEY_AND_VALUE" ] }, + "EC2TagSet":{ + "type":"structure", + "members":{ + "ec2TagSetList":{"shape":"EC2TagSetList"} + } + }, + "EC2TagSetList":{ + "type":"list", + "member":{"shape":"EC2TagFilterList"} + }, "ELBInfo":{ "type":"structure", "members":{ @@ -1735,6 +1758,12 @@ }, "exception":true }, + "InvalidEC2TagCombinationException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "InvalidEC2TagException":{ "type":"structure", "members":{ @@ -1801,6 +1830,12 @@ }, "exception":true }, + "InvalidOnPremisesTagCombinationException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "InvalidOperationException":{ "type":"structure", "members":{ @@ -2056,7 +2091,8 @@ "LoadBalancerInfo":{ "type":"structure", "members":{ - "elbInfoList":{"shape":"ELBInfoList"} + "elbInfoList":{"shape":"ELBInfoList"}, + "targetGroupInfoList":{"shape":"TargetGroupInfoList"} } }, "LogTail":{"type":"string"}, @@ -2084,6 +2120,16 @@ }, "NextToken":{"type":"string"}, "NullableBoolean":{"type":"boolean"}, + "OnPremisesTagSet":{ + "type":"structure", + "members":{ + "onPremisesTagSetList":{"shape":"OnPremisesTagSetList"} + } + }, + "OnPremisesTagSetList":{ + "type":"list", + "member":{"shape":"TagFilterList"} + }, "RegisterApplicationRevisionInput":{ "type":"structure", "required":[ @@ -2278,11 +2324,29 @@ }, "exception":true }, + "TagSetListLimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "TargetGroupInfo":{ + "type":"structure", + "members":{ + "name":{"shape":"TargetGroupName"} + } + }, + "TargetGroupInfoList":{ + "type":"list", + "member":{"shape":"TargetGroupInfo"} + }, + "TargetGroupName":{"type":"string"}, "TargetInstances":{ "type":"structure", "members":{ "tagFilters":{"shape":"EC2TagFilterList"}, - "autoScalingGroups":{"shape":"AutoScalingGroupNameList"} + "autoScalingGroups":{"shape":"AutoScalingGroupNameList"}, + "ec2TagSet":{"shape":"EC2TagSet"} } }, "TimeRange":{ @@ -2365,7 +2429,9 @@ "autoRollbackConfiguration":{"shape":"AutoRollbackConfiguration"}, "deploymentStyle":{"shape":"DeploymentStyle"}, "blueGreenDeploymentConfiguration":{"shape":"BlueGreenDeploymentConfiguration"}, - "loadBalancerInfo":{"shape":"LoadBalancerInfo"} + "loadBalancerInfo":{"shape":"LoadBalancerInfo"}, + "ec2TagSet":{"shape":"EC2TagSet"}, + "onPremisesTagSet":{"shape":"OnPremisesTagSet"} } }, "UpdateDeploymentGroupOutput":{ diff --git a/models/apis/codedeploy/2014-10-06/docs-2.json b/models/apis/codedeploy/2014-10-06/docs-2.json index 1fa67463c0b..21caee74721 100644 --- a/models/apis/codedeploy/2014-10-06/docs-2.json +++ b/models/apis/codedeploy/2014-10-06/docs-2.json @@ -691,9 +691,10 @@ "EC2TagFilterList": { "base": null, "refs": { - "CreateDeploymentGroupInput$ec2TagFilters": "

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

", - "DeploymentGroupInfo$ec2TagFilters": "

The Amazon EC2 tags on which to filter.

", - "TargetInstances$tagFilters": "

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

", + "CreateDeploymentGroupInput$ec2TagFilters": "

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

", + "DeploymentGroupInfo$ec2TagFilters": "

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

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

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

", "UpdateDeploymentGroupInput$ec2TagFilters": "

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

" } }, @@ -703,8 +704,23 @@ "EC2TagFilter$Type": "

The tag filter type:

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

Information about groups of EC2 instance tags.

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

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

", + "DeploymentGroupInfo$ec2TagSet": "

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

", + "TargetInstances$ec2TagSet": "

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

", + "UpdateDeploymentGroupInput$ec2TagSet": "

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

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

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

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

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

", + "base": "

Information about a load balancer in Elastic Load Balancing to use in a deployment. Instances are registered directly with a load balancer, and traffic is routed to the load balancer.

", "refs": { "ELBInfoList$member": null } @@ -712,13 +728,13 @@ "ELBInfoList": { "base": null, "refs": { - "LoadBalancerInfo$elbInfoList": "

An array containing information about the load balancer in Elastic Load Balancing to use in a deployment.

" + "LoadBalancerInfo$elbInfoList": "

An array containing information about the load balancer to use for load balancing in a deployment. In Elastic Load Balancing, load balancers are used with Classic Load Balancers.

" } }, "ELBName": { "base": null, "refs": { - "ELBInfo$name": "

For blue/green deployments, the name of the load balancer that will be used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re-registered with after the deployment completes.

" + "ELBInfo$name": "

For blue/green deployments, the name of the load balancer that will be used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes.

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

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

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

The tag was specified in an invalid format.

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

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

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

An invalid operation was detected.

", "refs": { @@ -1359,7 +1385,7 @@ } }, "LoadBalancerInfo": { - "base": "

Information about the load balancer used in a deployment.

", + "base": "

Information about the Elastic Load Balancing load balancer or target group used in a deployment.

", "refs": { "CreateDeploymentGroupInput$loadBalancerInfo": "

Information about the load balancer used in a deployment.

", "DeploymentGroupInfo$loadBalancerInfo": "

Information about the load balancer to use in a deployment.

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

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

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

Information about groups of on-premises instance tags.

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

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

", + "DeploymentGroupInfo$onPremisesTagSet": "

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

", + "UpdateDeploymentGroupInput$onPremisesTagSet": "

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

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

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

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

Represents the input of a RegisterApplicationRevision operation.

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

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

", - "DeploymentGroupInfo$onPremisesInstanceTagFilters": "

The on-premises instance tags on which to filter.

", + "CreateDeploymentGroupInput$onPremisesInstanceTagFilters": "

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

", + "DeploymentGroupInfo$onPremisesInstanceTagFilters": "

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

", "ListOnPremisesInstancesInput$tagFilters": "

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

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

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

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

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

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

Information about a target group in Elastic Load Balancing to use in a deployment. Instances are registered as targets in a target group, and traffic is routed to the target group.

", + "refs": { + "TargetGroupInfoList$member": null + } + }, + "TargetGroupInfoList": { + "base": null, + "refs": { + "LoadBalancerInfo$targetGroupInfoList": "

An array containing information about the target group to use for load balancing in a deployment. In Elastic Load Balancing, target groups are used with Application Load Balancers.

" + } + }, + "TargetGroupName": { + "base": null, + "refs": { + "TargetGroupInfo$name": "

For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with. For in-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes.

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

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

", "refs": { diff --git a/models/apis/codepipeline/2015-07-09/api-2.json b/models/apis/codepipeline/2015-07-09/api-2.json index 40fc4c1a983..6d93f1ccf82 100644 --- a/models/apis/codepipeline/2015-07-09/api-2.json +++ b/models/apis/codepipeline/2015-07-09/api-2.json @@ -798,7 +798,11 @@ "type":"string", "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" }, - "ClientToken":{"type":"string"}, + "ClientToken":{ + "type":"string", + "max":256, + "min":1 + }, "Code":{"type":"string"}, "ContinuationToken":{"type":"string"}, "CreateCustomActionTypeInput":{ @@ -1018,7 +1022,8 @@ "GetPipelineOutput":{ "type":"structure", "members":{ - "pipeline":{"shape":"PipelineDeclaration"} + "pipeline":{"shape":"PipelineDeclaration"}, + "metadata":{"shape":"PipelineMetadata"} } }, "GetPipelineStateInput":{ @@ -1255,7 +1260,11 @@ "max":5, "min":0 }, - "NextToken":{"type":"string"}, + "NextToken":{ + "type":"string", + "max":2048, + "min":1 + }, "Nonce":{"type":"string"}, "NotLatestPipelineExecutionException":{ "type":"structure", @@ -1279,6 +1288,10 @@ "max":100, "min":0 }, + "PipelineArn":{ + "type":"string", + "pattern":"arn:aws(-[\\w]+)*:codepipeline:.+:[0-9]{12}:.+" + }, "PipelineContext":{ "type":"structure", "members":{ @@ -1349,6 +1362,14 @@ "type":"list", "member":{"shape":"PipelineSummary"} }, + "PipelineMetadata":{ + "type":"structure", + "members":{ + "pipelineArn":{"shape":"PipelineArn"}, + "created":{"shape":"Timestamp"}, + "updated":{"shape":"Timestamp"} + } + }, "PipelineName":{ "type":"string", "max":100, diff --git a/models/apis/codepipeline/2015-07-09/docs-2.json b/models/apis/codepipeline/2015-07-09/docs-2.json index a4af4c7f3e5..e3d1233202f 100644 --- a/models/apis/codepipeline/2015-07-09/docs-2.json +++ b/models/apis/codepipeline/2015-07-09/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "AWS CodePipeline

Overview

This is the AWS CodePipeline API Reference. This guide provides descriptions of the actions and data types for AWS CodePipeline. Some functionality for your pipeline is only configurable through the API. For additional information, see the AWS CodePipeline User Guide.

You can use the AWS CodePipeline API to work with pipelines, stages, actions, gates, and transitions, as described below.

Pipelines are models of automated release processes. Each pipeline is uniquely named, and consists of actions, gates, and stages.

You can work with pipelines by calling:

Pipelines include stages, which are logical groupings of gates and actions. Each stage contains one or more actions that must complete before the next stage begins. A stage will result in success or failure. If a stage fails, then the pipeline stops at that stage and will remain stopped until either a new version of an artifact appears in the source location, or a user takes action to re-run the most recent artifact through the pipeline. You can call GetPipelineState, which displays the status of a pipeline, including the status of stages in the pipeline, or GetPipeline, which returns the entire structure of the pipeline, including the stages of that pipeline. For more information about the structure of stages and actions, also refer to the AWS CodePipeline Pipeline Structure Reference.

Pipeline stages include actions, which are categorized into categories such as source or build actions performed within a stage of a pipeline. For example, you can use a source action to import artifacts into a pipeline from a source such as Amazon S3. Like stages, you do not work with actions directly in most cases, but you do define and interact with actions when working with pipeline operations such as CreatePipeline and GetPipelineState.

Pipelines also include transitions, which allow the transition of artifacts from one stage to the next in a pipeline after the actions in one stage complete.

You can work with transitions by calling:

Using the API to integrate with AWS CodePipeline

For third-party integrators or developers who want to create their own integrations with AWS CodePipeline, the expected sequence varies from the standard API user. In order to integrate with AWS CodePipeline, developers will need to work with the following items:

Jobs, which are instances of an action. For example, a job for a source action might import a revision of an artifact from a source.

You can work with jobs by calling:

Third party jobs, which are instances of an action created by a partner action and integrated into AWS CodePipeline. Partner actions are created by members of the AWS Partner Network.

You can work with third party jobs by calling:

", + "service": "AWS CodePipeline

Overview

This is the AWS CodePipeline API Reference. This guide provides descriptions of the actions and data types for AWS CodePipeline. Some functionality for your pipeline is only configurable through the API. For additional information, see the AWS CodePipeline User Guide.

You can use the AWS CodePipeline API to work with pipelines, stages, actions, gates, and transitions, as described below.

Pipelines are models of automated release processes. Each pipeline is uniquely named, and consists of actions, gates, and stages.

You can work with pipelines by calling:

Pipelines include stages, which are logical groupings of gates and actions. Each stage contains one or more actions that must complete before the next stage begins. A stage will result in success or failure. If a stage fails, then the pipeline stops at that stage and will remain stopped until either a new version of an artifact appears in the source location, or a user takes action to re-run the most recent artifact through the pipeline. You can call GetPipelineState, which displays the status of a pipeline, including the status of stages in the pipeline, or GetPipeline, which returns the entire structure of the pipeline, including the stages of that pipeline. For more information about the structure of stages and actions, also refer to the AWS CodePipeline Pipeline Structure Reference.

Pipeline stages include actions, which are categorized into categories such as source or build actions performed within a stage of a pipeline. For example, you can use a source action to import artifacts into a pipeline from a source such as Amazon S3. Like stages, you do not work with actions directly in most cases, but you do define and interact with actions when working with pipeline operations such as CreatePipeline and GetPipelineState.

Pipelines also include transitions, which allow the transition of artifacts from one stage to the next in a pipeline after the actions in one stage complete.

You can work with transitions by calling:

Using the API to integrate with AWS CodePipeline

For third-party integrators or developers who want to create their own integrations with AWS CodePipeline, the expected sequence varies from the standard API user. In order to integrate with AWS CodePipeline, developers will need to work with the following items:

Jobs, which are instances of an action. For example, a job for a source action might import a revision of an artifact from a source.

You can work with jobs by calling:

Third party jobs, which are instances of an action created by a partner action and integrated into AWS CodePipeline. Partner actions are created by members of the AWS Partner Network.

You can work with third party jobs by calling:

", "operations": { "AcknowledgeJob": "

Returns information about a specified job and whether that job has been received by the job worker. Only used for custom actions.

", "AcknowledgeThirdPartyJob": "

Confirms a job worker has received the specified job. Only used for partner actions.

", @@ -52,22 +52,22 @@ } }, "AcknowledgeJobInput": { - "base": "

Represents the input of an acknowledge job action.

", + "base": "

Represents the input of an AcknowledgeJob action.

", "refs": { } }, "AcknowledgeJobOutput": { - "base": "

Represents the output of an acknowledge job action.

", + "base": "

Represents the output of an AcknowledgeJob action.

", "refs": { } }, "AcknowledgeThirdPartyJobInput": { - "base": "

Represents the input of an acknowledge third party job action.

", + "base": "

Represents the input of an AcknowledgeThirdPartyJob action.

", "refs": { } }, "AcknowledgeThirdPartyJobOutput": { - "base": "

Represents the output of an acknowledge third party job action.

", + "base": "

Represents the output of an AcknowledgeThirdPartyJob action.

", "refs": { } }, @@ -135,7 +135,7 @@ "ActionContext": { "base": "

Represents the context of an action within the stage of a pipeline to a job worker.

", "refs": { - "PipelineContext$action": "

" + "PipelineContext$action": "

The context of an action to a job worker within the stage of a pipeline.

" } }, "ActionDeclaration": { @@ -342,7 +342,7 @@ "ArtifactStore": { "base": "

The Amazon S3 bucket where artifacts are stored for the pipeline.

", "refs": { - "PipelineDeclaration$artifactStore": "

Represents the context of an action within the stage of a pipeline to a job worker.

" + "PipelineDeclaration$artifactStore": "

Represents information about the Amazon S3 bucket where artifacts are stored for the pipeline.

" } }, "ArtifactStoreLocation": { @@ -381,7 +381,7 @@ "ActionConfigurationProperty$required": "

Whether the configuration property is a required value.

", "ActionConfigurationProperty$key": "

Whether the configuration property is a key.

", "ActionConfigurationProperty$secret": "

Whether the configuration property is secret. Secrets are hidden from all calls except for GetJobDetails, GetThirdPartyJobDetails, PollForJobs, and PollForThirdPartyJobs.

When updating a pipeline, passing * * * * * without changing any other values of the action will preserve the prior value of the secret.

", - "ActionConfigurationProperty$queryable": "

Indicates that the proprety will be used in conjunction with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret.

If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to additional restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens.

", + "ActionConfigurationProperty$queryable": "

Indicates that the property will be used in conjunction with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret.

If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to additional restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens.

", "PutActionRevisionOutput$newRevision": "

Indicates whether the artifact revision was previously used in an execution of the specified pipeline.

" } }, @@ -416,22 +416,22 @@ } }, "CreateCustomActionTypeInput": { - "base": "

Represents the input of a create custom action operation.

", + "base": "

Represents the input of a CreateCustomActionType operation.

", "refs": { } }, "CreateCustomActionTypeOutput": { - "base": "

Represents the output of a create custom action operation.

", + "base": "

Represents the output of a CreateCustomActionType operation.

", "refs": { } }, "CreatePipelineInput": { - "base": "

Represents the input of a create pipeline action.

", + "base": "

Represents the input of a CreatePipeline action.

", "refs": { } }, "CreatePipelineOutput": { - "base": "

Represents the output of a create pipeline action.

", + "base": "

Represents the output of a CreatePipeline action.

", "refs": { } }, @@ -443,12 +443,12 @@ } }, "DeleteCustomActionTypeInput": { - "base": "

Represents the input of a delete custom action operation. The custom action will be marked as deleted.

", + "base": "

Represents the input of a DeleteCustomActionType operation. The custom action will be marked as deleted.

", "refs": { } }, "DeletePipelineInput": { - "base": "

Represents the input of a delete pipeline action.

", + "base": "

Represents the input of a DeletePipeline action.

", "refs": { } }, @@ -459,7 +459,7 @@ } }, "DisableStageTransitionInput": { - "base": "

Represents the input of a disable stage transition input action.

", + "base": "

Represents the input of a DisableStageTransition action.

", "refs": { } }, @@ -471,7 +471,7 @@ } }, "EnableStageTransitionInput": { - "base": "

Represents the input of an enable stage transition action.

", + "base": "

Represents the input of an EnableStageTransition action.

", "refs": { } }, @@ -543,52 +543,52 @@ } }, "GetJobDetailsInput": { - "base": "

Represents the input of a get job details action.

", + "base": "

Represents the input of a GetJobDetails action.

", "refs": { } }, "GetJobDetailsOutput": { - "base": "

Represents the output of a get job details action.

", + "base": "

Represents the output of a GetJobDetails action.

", "refs": { } }, "GetPipelineExecutionInput": { - "base": "

Represents the input of a get pipeline execution action.

", + "base": "

Represents the input of a GetPipelineExecution action.

", "refs": { } }, "GetPipelineExecutionOutput": { - "base": "

Represents the output of a get pipeline execution action.

", + "base": "

Represents the output of a GetPipelineExecution action.

", "refs": { } }, "GetPipelineInput": { - "base": "

Represents the input of a get pipeline action.

", + "base": "

Represents the input of a GetPipeline action.

", "refs": { } }, "GetPipelineOutput": { - "base": "

Represents the output of a get pipeline action.

", + "base": "

Represents the output of a GetPipeline action.

", "refs": { } }, "GetPipelineStateInput": { - "base": "

Represents the input of a get pipeline state action.

", + "base": "

Represents the input of a GetPipelineState action.

", "refs": { } }, "GetPipelineStateOutput": { - "base": "

Represents the output of a get pipeline state action.

", + "base": "

Represents the output of a GetPipelineState action.

", "refs": { } }, "GetThirdPartyJobDetailsInput": { - "base": "

Represents the input of a get third party job details action.

", + "base": "

Represents the input of a GetThirdPartyJobDetails action.

", "refs": { } }, "GetThirdPartyJobDetailsOutput": { - "base": "

Represents the output of a get third party job details action.

", + "base": "

Represents the output of a GetThirdPartyJobDetails action.

", "refs": { } }, @@ -727,32 +727,32 @@ } }, "ListActionTypesInput": { - "base": "

Represents the input of a list action types action.

", + "base": "

Represents the input of a ListActionTypes action.

", "refs": { } }, "ListActionTypesOutput": { - "base": "

Represents the output of a list action types action.

", + "base": "

Represents the output of a ListActionTypes action.

", "refs": { } }, "ListPipelineExecutionsInput": { - "base": "

Represents the input of a list pipeline executions action.

", + "base": "

Represents the input of a ListPipelineExecutions action.

", "refs": { } }, "ListPipelineExecutionsOutput": { - "base": "

Represents the output of a list pipeline executions action.

", + "base": "

Represents the output of a ListPipelineExecutions action.

", "refs": { } }, "ListPipelinesInput": { - "base": "

Represents the input of a list pipelines action.

", + "base": "

Represents the input of a ListPipelines action.

", "refs": { } }, "ListPipelinesOutput": { - "base": "

Represents the output of a list pipelines action.

", + "base": "

Represents the output of a ListPipelines action.

", "refs": { } }, @@ -793,8 +793,8 @@ "refs": { "ListActionTypesInput$nextToken": "

An identifier that was returned from the previous list action types call, which can be used to return the next set of action types in the list.

", "ListActionTypesOutput$nextToken": "

If the amount of returned information is significantly large, an identifier is also returned which can be used in a subsequent list action types call to return the next set of action types in the list.

", - "ListPipelineExecutionsInput$nextToken": "

The token that was returned from the previous list pipeline executions call, which can be used to return the next set of pipeline executions in the list.

", - "ListPipelineExecutionsOutput$nextToken": "

A token that can be used in the next list pipeline executions call to return the next set of pipeline executions. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned.

", + "ListPipelineExecutionsInput$nextToken": "

The token that was returned from the previous ListPipelineExecutions call, which can be used to return the next set of pipeline executions in the list.

", + "ListPipelineExecutionsOutput$nextToken": "

A token that can be used in the next ListPipelineExecutions call. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned.

", "ListPipelinesInput$nextToken": "

An identifier that was returned from the previous list pipelines call, which can be used to return the next set of pipelines in the list.

", "ListPipelinesOutput$nextToken": "

If the amount of returned information is significantly large, an identifier is also returned which can be used in a subsequent list pipelines call to return the next set of pipelines in the list.

" } @@ -832,6 +832,12 @@ "ExecutionDetails$percentComplete": "

The percentage of work completed on the action, represented on a scale of zero to one hundred percent.

" } }, + "PipelineArn": { + "base": null, + "refs": { + "PipelineMetadata$pipelineArn": "

The Amazon Resource Name (ARN) of the pipeline.

" + } + }, "PipelineContext": { "base": "

Represents information about a pipeline to a job worker.

", "refs": { @@ -876,8 +882,8 @@ "PipelineExecutionStatus": { "base": null, "refs": { - "PipelineExecution$status": "

The status of the pipeline execution.

", - "PipelineExecutionSummary$status": "

The status of the pipeline execution.

" + "PipelineExecution$status": "

The status of the pipeline execution.

", + "PipelineExecutionSummary$status": "

The status of the pipeline execution.

" } }, "PipelineExecutionSummary": { @@ -898,6 +904,12 @@ "ListPipelinesOutput$pipelines": "

The list of pipelines.

" } }, + "PipelineMetadata": { + "base": "

Information about a pipeline.

", + "refs": { + "GetPipelineOutput$metadata": "

Represents the pipeline metadata information returned as part of the output of a GetPipeline action.

" + } + }, "PipelineName": { "base": null, "refs": { @@ -957,62 +969,62 @@ } }, "PollForJobsInput": { - "base": "

Represents the input of a poll for jobs action.

", + "base": "

Represents the input of a PollForJobs action.

", "refs": { } }, "PollForJobsOutput": { - "base": "

Represents the output of a poll for jobs action.

", + "base": "

Represents the output of a PollForJobs action.

", "refs": { } }, "PollForThirdPartyJobsInput": { - "base": "

Represents the input of a poll for third party jobs action.

", + "base": "

Represents the input of a PollForThirdPartyJobs action.

", "refs": { } }, "PollForThirdPartyJobsOutput": { - "base": "

Represents the output of a poll for third party jobs action.

", + "base": "

Represents the output of a PollForThirdPartyJobs action.

", "refs": { } }, "PutActionRevisionInput": { - "base": "

Represents the input of a put action revision action.

", + "base": "

Represents the input of a PutActionRevision action.

", "refs": { } }, "PutActionRevisionOutput": { - "base": "

Represents the output of a put action revision action.

", + "base": "

Represents the output of a PutActionRevision action.

", "refs": { } }, "PutApprovalResultInput": { - "base": "

Represents the input of a put approval result action.

", + "base": "

Represents the input of a PutApprovalResult action.

", "refs": { } }, "PutApprovalResultOutput": { - "base": "

Represents the output of a put approval result action.

", + "base": "

Represents the output of a PutApprovalResult action.

", "refs": { } }, "PutJobFailureResultInput": { - "base": "

Represents the input of a put job failure result action.

", + "base": "

Represents the input of a PutJobFailureResult action.

", "refs": { } }, "PutJobSuccessResultInput": { - "base": "

Represents the input of a put job success result action.

", + "base": "

Represents the input of a PutJobSuccessResult action.

", "refs": { } }, "PutThirdPartyJobFailureResultInput": { - "base": "

Represents the input of a third party job failure result action.

", + "base": "

Represents the input of a PutThirdPartyJobFailureResult action.

", "refs": { } }, "PutThirdPartyJobSuccessResultInput": { - "base": "

Represents the input of a put third party job success result action.

", + "base": "

Represents the input of a PutThirdPartyJobSuccessResult action.

", "refs": { } }, @@ -1023,12 +1035,12 @@ } }, "RetryStageExecutionInput": { - "base": "

Represents the input of a retry stage execution action.

", + "base": "

Represents the input of a RetryStageExecution action.

", "refs": { } }, "RetryStageExecutionOutput": { - "base": "

Represents the output of a retry stage execution action.

", + "base": "

Represents the output of a RetryStageExecution action.

", "refs": { } }, @@ -1178,12 +1190,12 @@ } }, "StartPipelineExecutionInput": { - "base": "

Represents the input of a start pipeline execution action.

", + "base": "

Represents the input of a StartPipelineExecution action.

", "refs": { } }, "StartPipelineExecutionOutput": { - "base": "

Represents the output of a start pipeline execution action.

", + "base": "

Represents the output of a StartPipelineExecution action.

", "refs": { } }, @@ -1237,6 +1249,8 @@ "GetPipelineStateOutput$updated": "

The date and time the pipeline was last updated, in timestamp format.

", "PipelineExecutionSummary$startTime": "

The date and time when the pipeline execution began, in timestamp format.

", "PipelineExecutionSummary$lastUpdateTime": "

The date and time of the last change to the pipeline execution, in timestamp format.

", + "PipelineMetadata$created": "

The date and time the pipeline was created, in timestamp format.

", + "PipelineMetadata$updated": "

The date and time the pipeline was last updated, in timestamp format.

", "PipelineSummary$created": "

The date and time the pipeline was created, in timestamp format.

", "PipelineSummary$updated": "

The date and time of the last update to the pipeline, in timestamp format.

", "PutApprovalResultOutput$approvedAt": "

The timestamp showing when the approval or rejection was submitted.

" @@ -1249,12 +1263,12 @@ } }, "UpdatePipelineInput": { - "base": "

Represents the input of an update pipeline action.

", + "base": "

Represents the input of an UpdatePipeline action.

", "refs": { } }, "UpdatePipelineOutput": { - "base": "

Represents the output of an update pipeline action.

", + "base": "

Represents the output of an UpdatePipeline action.

", "refs": { } }, diff --git a/models/apis/codestar/2017-04-19/api-2.json b/models/apis/codestar/2017-04-19/api-2.json index 887b71767e9..172ee63744a 100644 --- a/models/apis/codestar/2017-04-19/api-2.json +++ b/models/apis/codestar/2017-04-19/api-2.json @@ -158,6 +158,20 @@ {"shape":"ValidationException"} ] }, + "ListTagsForProject":{ + "name":"ListTagsForProject", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForProjectRequest"}, + "output":{"shape":"ListTagsForProjectResult"}, + "errors":[ + {"shape":"ProjectNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidNextTokenException"} + ] + }, "ListTeamMembers":{ "name":"ListTeamMembers", "http":{ @@ -185,6 +199,36 @@ {"shape":"ValidationException"} ] }, + "TagProject":{ + "name":"TagProject", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagProjectRequest"}, + "output":{"shape":"TagProjectResult"}, + "errors":[ + {"shape":"ProjectNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"LimitExceededException"}, + {"shape":"ConcurrentModificationException"} + ] + }, + "UntagProject":{ + "name":"UntagProject", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagProjectRequest"}, + "output":{"shape":"UntagProjectResult"}, + "errors":[ + {"shape":"ProjectNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"LimitExceededException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "UpdateProject":{ "name":"UpdateProject", "http":{ @@ -414,7 +458,8 @@ "type":"string", "max":128, "min":3, - "pattern":"^[\\w-.+]+@[\\w-.+]+$" + "pattern":"^[\\w-.+]+@[\\w-.+]+$", + "sensitive":true }, "InvalidNextTokenException":{ "type":"structure", @@ -472,6 +517,25 @@ "nextToken":{"shape":"PaginationToken"} } }, + "ListTagsForProjectRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{"shape":"ProjectId"}, + "nextToken":{"shape":"PaginationToken"}, + "maxResults":{ + "shape":"MaxResults", + "box":true + } + } + }, + "ListTagsForProjectResult":{ + "type":"structure", + "members":{ + "tags":{"shape":"Tags"}, + "nextToken":{"shape":"PaginationToken"} + } + }, "ListTeamMembersRequest":{ "type":"structure", "required":["projectId"], @@ -517,7 +581,7 @@ }, "PaginationToken":{ "type":"string", - "max":256, + "max":512, "min":1, "pattern":"^[\\w/+=]+$" }, @@ -614,6 +678,43 @@ "type":"string", "pattern":"^arn:aws[^:\\s]*:cloudformation:[^:\\s]+:[0-9]{12}:stack\\/[^:\\s]+\\/[^:\\s]+$" }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagProjectRequest":{ + "type":"structure", + "required":[ + "id", + "tags" + ], + "members":{ + "id":{"shape":"ProjectId"}, + "tags":{"shape":"Tags"} + } + }, + "TagProjectResult":{ + "type":"structure", + "members":{ + "tags":{"shape":"Tags"} + } + }, + "TagValue":{ + "type":"string", + "max":256, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "Tags":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, "TeamMember":{ "type":"structure", "required":[ @@ -645,6 +746,22 @@ "type":"list", "member":{"shape":"TeamMember"} }, + "UntagProjectRequest":{ + "type":"structure", + "required":[ + "id", + "tags" + ], + "members":{ + "id":{"shape":"ProjectId"}, + "tags":{"shape":"TagKeys"} + } + }, + "UntagProjectResult":{ + "type":"structure", + "members":{ + } + }, "UpdateProjectRequest":{ "type":"structure", "required":["id"], @@ -712,7 +829,7 @@ "type":"string", "max":95, "min":32, - "pattern":"arn:aws:iam::\\d{12}:user\\/[\\w-]+" + "pattern":"^arn:aws:iam::\\d{12}:user(?:(\\u002F)|(\\u002F[\\u0021-\\u007E]+\\u002F))[\\w+=,.@-]+$" }, "UserProfileAlreadyExistsException":{ "type":"structure", diff --git a/models/apis/codestar/2017-04-19/docs-2.json b/models/apis/codestar/2017-04-19/docs-2.json index 76591736747..017d22d3af3 100644 --- a/models/apis/codestar/2017-04-19/docs-2.json +++ b/models/apis/codestar/2017-04-19/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "AWS CodeStar

This is the API reference for AWS CodeStar. This reference provides descriptions of the operations and data types for the AWS CodeStar API along with usage examples.

You can use the AWS CodeStar API to work with:

Projects and their resources, by calling the following:

Teams and team members, by calling the following:

Users, by calling the following:

", + "service": "AWS CodeStar

This is the API reference for AWS CodeStar. This reference provides descriptions of the operations and data types for the AWS CodeStar API along with usage examples.

You can use the AWS CodeStar API to work with:

Projects and their resources, by calling the following:

Teams and team members, by calling the following:

Users, by calling the following:

", "operations": { "AssociateTeamMember": "

Adds an IAM user to the team for an AWS CodeStar project.

", "CreateProject": "

Reserved for future use. To create a project, use the AWS CodeStar console.

", @@ -12,8 +12,11 @@ "DisassociateTeamMember": "

Removes a user from a project. Removing a user from a project also removes the IAM policies from that user that allowed access to the project and its resources. Disassociating a team member does not remove that user's profile from AWS CodeStar. It does not remove the user from IAM.

", "ListProjects": "

Lists all projects in AWS CodeStar associated with your AWS account.

", "ListResources": "

Lists resources associated with a project in AWS CodeStar.

", + "ListTagsForProject": "

Gets the tags for a project.

", "ListTeamMembers": "

Lists all team members associated with a project.

", "ListUserProfiles": "

Lists all the user profiles configured for your AWS account in AWS CodeStar.

", + "TagProject": "

Adds tags to a project.

", + "UntagProject": "

Removes tags from a project.

", "UpdateProject": "

Updates a project in AWS CodeStar.

", "UpdateTeamMember": "

Updates a team member's attributes in an AWS CodeStar project. For example, you can change a team member's role in the project, or change whether they have remote access to project resources.

", "UpdateUserProfile": "

Updates a user's profile in AWS CodeStar. The user profile is not project-specific. Information in the user profile is displayed wherever the user's information appears to other users in AWS CodeStar.

" @@ -32,8 +35,8 @@ "ClientRequestToken": { "base": null, "refs": { - "AssociateTeamMemberRequest$clientRequestToken": "

A user- or system-generated token that identifies the entity that requested the team member association to the project. This token can be used to repeat the request.

", - "AssociateTeamMemberResult$clientRequestToken": "

The user- or system-generated token from the initial request that can be used to repeat the request.

", + "AssociateTeamMemberRequest$clientRequestToken": "

A user- or system-generated token that identifies the entity that requested the team member association to the project. This token can be used to repeat the request.

", + "AssociateTeamMemberResult$clientRequestToken": "

The user- or system-generated token from the initial request that can be used to repeat the request.

", "CreateProjectRequest$clientRequestToken": "

Reserved for future use.

", "CreateProjectResult$clientRequestToken": "

Reserved for future use.

", "DeleteProjectRequest$clientRequestToken": "

A user- or system-generated token that identifies the entity that requested project deletion. This token can be used to repeat the request.

", @@ -184,6 +187,16 @@ "refs": { } }, + "ListTagsForProjectRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForProjectResult": { + "base": null, + "refs": { + } + }, "ListTeamMembersRequest": { "base": null, "refs": { @@ -208,7 +221,8 @@ "base": null, "refs": { "ListProjectsRequest$maxResults": "

The maximum amount of data that can be contained in a single set of results.

", - "ListResourcesRequest$maxResults": "

he maximum amount of data that can be contained in a single set of results.

", + "ListResourcesRequest$maxResults": "

The maximum amount of data that can be contained in a single set of results.

", + "ListTagsForProjectRequest$maxResults": "

Reserved for future use.

", "ListTeamMembersRequest$maxResults": "

The maximum number of team members you want returned in a response.

", "ListUserProfilesRequest$maxResults": "

The maximum number of results to return in a response.

" } @@ -220,6 +234,8 @@ "ListProjectsResult$nextToken": "

The continuation token to use when requesting the next set of results, if there are more results to be returned.

", "ListResourcesRequest$nextToken": "

The continuation token for the next set of results, if the results cannot be returned in one response.

", "ListResourcesResult$nextToken": "

The continuation token to use when requesting the next set of results, if there are more results to be returned.

", + "ListTagsForProjectRequest$nextToken": "

Reserved for future use.

", + "ListTagsForProjectResult$nextToken": "

Reserved for future use.

", "ListTeamMembersRequest$nextToken": "

The continuation token for the next set of results, if the results cannot be returned in one response.

", "ListTeamMembersResult$nextToken": "

The continuation token to use when requesting the next set of results, if there are more results to be returned.

", "ListUserProfilesRequest$nextToken": "

The continuation token for the next set of results, if the results cannot be returned in one response.

", @@ -269,8 +285,11 @@ "DescribeProjectResult$id": "

The ID of the project.

", "DisassociateTeamMemberRequest$projectId": "

The ID of the AWS CodeStar project from which you want to remove a team member.

", "ListResourcesRequest$projectId": "

The ID of the project.

", + "ListTagsForProjectRequest$id": "

The ID of the project to get tags for.

", "ListTeamMembersRequest$projectId": "

The ID of the project for which you want to list team members.

", "ProjectSummary$projectId": "

The ID of the project.

", + "TagProjectRequest$id": "

The ID of the project you want to add a tag to.

", + "UntagProjectRequest$id": "

The ID of the project to remove tags from.

", "UpdateProjectRequest$id": "

The ID of the project you want to update.

", "UpdateTeamMemberRequest$projectId": "

The ID of the project.

" } @@ -338,8 +357,8 @@ "base": null, "refs": { "AssociateTeamMemberRequest$projectRole": "

The AWS CodeStar project role that will apply to this user. This role determines what actions a user can take in an AWS CodeStar project.

", - "TeamMember$projectRole": "

The role assigned to the user in the project. Project roles have different levels of access. For more information, see Working with Teams in the AWS CodeStar User Guide.

", - "UpdateTeamMemberRequest$projectRole": "

The role assigned to the user in the project. Project roles have different levels of access. For more information, see Working with Teams in the AWS CodeStar User Guide.

", + "TeamMember$projectRole": "

The role assigned to the user in the project. Project roles have different levels of access. For more information, see Working with Teams in the AWS CodeStar User Guide.

", + "UpdateTeamMemberRequest$projectRole": "

The role assigned to the user in the project. Project roles have different levels of access. For more information, see Working with Teams in the AWS CodeStar User Guide.

", "UpdateTeamMemberResult$projectRole": "

The project role granted to the user.

" } }, @@ -361,6 +380,43 @@ "DescribeProjectResult$stackId": "

The ID of the primary stack in AWS CloudFormation used to generate resources for the project.

" } }, + "TagKey": { + "base": null, + "refs": { + "TagKeys$member": null, + "Tags$key": null + } + }, + "TagKeys": { + "base": null, + "refs": { + "UntagProjectRequest$tags": "

The tags to remove from the project.

" + } + }, + "TagProjectRequest": { + "base": null, + "refs": { + } + }, + "TagProjectResult": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tags$value": null + } + }, + "Tags": { + "base": null, + "refs": { + "ListTagsForProjectResult$tags": "

The tags for the project.

", + "TagProjectRequest$tags": "

The tags you want to add to the project.

", + "TagProjectResult$tags": "

The tags for the project.

" + } + }, "TeamMember": { "base": "

Information about a team member in a project.

", "refs": { @@ -383,6 +439,16 @@ "ListTeamMembersResult$teamMembers": "

A list of team member objects for the project.

" } }, + "UntagProjectRequest": { + "base": null, + "refs": { + } + }, + "UntagProjectResult": { + "base": null, + "refs": { + } + }, "UpdateProjectRequest": { "base": null, "refs": { @@ -416,7 +482,7 @@ "UserArn": { "base": null, "refs": { - "AssociateTeamMemberRequest$userArn": "

The Amazon Resource Name (ARN) for the IAM user you want to add to the DevHub project.

", + "AssociateTeamMemberRequest$userArn": "

The Amazon Resource Name (ARN) for the IAM user you want to add to the AWS CodeStar project.

", "CreateUserProfileRequest$userArn": "

The Amazon Resource Name (ARN) of the user in IAM.

", "CreateUserProfileResult$userArn": "

The Amazon Resource Name (ARN) of the user in IAM.

", "DeleteUserProfileRequest$userArn": "

The Amazon Resource Name (ARN) of the user to delete from AWS CodeStar.

", diff --git a/models/apis/cognito-idp/2016-04-18/api-2.json b/models/apis/cognito-idp/2016-04-18/api-2.json index 237e3c01a2e..fa28b78593e 100644 --- a/models/apis/cognito-idp/2016-04-18/api-2.json +++ b/models/apis/cognito-idp/2016-04-18/api-2.json @@ -126,6 +126,24 @@ {"shape":"InternalErrorException"} ] }, + "AdminDisableProviderForUser":{ + "name":"AdminDisableProviderForUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminDisableProviderForUserRequest"}, + "output":{"shape":"AdminDisableProviderForUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"AliasExistsException"}, + {"shape":"InternalErrorException"} + ] + }, "AdminDisableUser":{ "name":"AdminDisableUser", "http":{ @@ -237,6 +255,24 @@ {"shape":"UserNotConfirmedException"} ] }, + "AdminLinkProviderForUser":{ + "name":"AdminLinkProviderForUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminLinkProviderForUserRequest"}, + "output":{"shape":"AdminLinkProviderForUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"AliasExistsException"}, + {"shape":"InternalErrorException"} + ] + }, "AdminListDevices":{ "name":"AdminListDevices", "http":{ @@ -271,6 +307,24 @@ {"shape":"InternalErrorException"} ] }, + "AdminListUserAuthEvents":{ + "name":"AdminListUserAuthEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminListUserAuthEventsRequest"}, + "output":{"shape":"AdminListUserAuthEventsResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"InternalErrorException"} + ] + }, "AdminRemoveUserFromGroup":{ "name":"AdminRemoveUserFromGroup", "http":{ @@ -305,6 +359,9 @@ {"shape":"TooManyRequestsException"}, {"shape":"LimitExceededException"}, {"shape":"UserNotFoundException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, {"shape":"InternalErrorException"} ] }, @@ -335,7 +392,26 @@ {"shape":"AliasExistsException"}, {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, - {"shape":"UserNotConfirmedException"} + {"shape":"UserNotConfirmedException"}, + {"shape":"SoftwareTokenMFANotFoundException"} + ] + }, + "AdminSetUserMFAPreference":{ + "name":"AdminSetUserMFAPreference", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminSetUserMFAPreferenceRequest"}, + "output":{"shape":"AdminSetUserMFAPreferenceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} ] }, "AdminSetUserSettings":{ @@ -354,6 +430,24 @@ {"shape":"InternalErrorException"} ] }, + "AdminUpdateAuthEventFeedback":{ + "name":"AdminUpdateAuthEventFeedback", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminUpdateAuthEventFeedbackRequest"}, + "output":{"shape":"AdminUpdateAuthEventFeedbackResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"InternalErrorException"} + ] + }, "AdminUpdateDeviceStatus":{ "name":"AdminUpdateDeviceStatus", "http":{ @@ -410,6 +504,22 @@ {"shape":"InternalErrorException"} ] }, + "AssociateSoftwareToken":{ + "name":"AssociateSoftwareToken", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateSoftwareTokenRequest"}, + "output":{"shape":"AssociateSoftwareTokenResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"}, + {"shape":"SoftwareTokenMFANotFoundException"} + ] + }, "ChangePassword":{ "name":"ChangePassword", "http":{ @@ -544,6 +654,23 @@ {"shape":"InternalErrorException"} ] }, + "CreateResourceServer":{ + "name":"CreateResourceServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateResourceServerRequest"}, + "output":{"shape":"CreateResourceServerResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalErrorException"} + ] + }, "CreateUserImportJob":{ "name":"CreateUserImportJob", "http":{ @@ -647,6 +774,21 @@ {"shape":"InternalErrorException"} ] }, + "DeleteResourceServer":{ + "name":"DeleteResourceServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteResourceServerRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, "DeleteUser":{ "name":"DeleteUser", "http":{ @@ -748,6 +890,39 @@ {"shape":"InternalErrorException"} ] }, + "DescribeResourceServer":{ + "name":"DescribeResourceServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeResourceServerRequest"}, + "output":{"shape":"DescribeResourceServerResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "DescribeRiskConfiguration":{ + "name":"DescribeRiskConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRiskConfigurationRequest"}, + "output":{"shape":"DescribeRiskConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"InternalErrorException"} + ] + }, "DescribeUserImportJob":{ "name":"DescribeUserImportJob", "http":{ @@ -926,6 +1101,22 @@ {"shape":"InternalErrorException"} ] }, + "GetUICustomization":{ + "name":"GetUICustomization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUICustomizationRequest"}, + "output":{"shape":"GetUICustomizationResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, "GetUser":{ "name":"GetUser", "http":{ @@ -974,6 +1165,22 @@ ], "authtype":"none" }, + "GetUserPoolMfaConfig":{ + "name":"GetUserPoolMfaConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUserPoolMfaConfigRequest"}, + "output":{"shape":"GetUserPoolMfaConfigResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ] + }, "GlobalSignOut":{ "name":"GlobalSignOut", "http":{ @@ -1067,6 +1274,22 @@ {"shape":"InternalErrorException"} ] }, + "ListResourceServers":{ + "name":"ListResourceServers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourceServersRequest"}, + "output":{"shape":"ListResourceServersResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, "ListUserImportJobs":{ "name":"ListUserImportJobs", "http":{ @@ -1199,6 +1422,78 @@ {"shape":"InvalidSmsRoleAccessPolicyException"}, {"shape":"InvalidSmsRoleTrustRelationshipException"}, {"shape":"AliasExistsException"}, + {"shape":"InternalErrorException"}, + {"shape":"SoftwareTokenMFANotFoundException"} + ] + }, + "SetRiskConfiguration":{ + "name":"SetRiskConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetRiskConfigurationRequest"}, + "output":{"shape":"SetRiskConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"CodeDeliveryFailureException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"InternalErrorException"} + ] + }, + "SetUICustomization":{ + "name":"SetUICustomization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetUICustomizationRequest"}, + "output":{"shape":"SetUICustomizationResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "SetUserMFAPreference":{ + "name":"SetUserMFAPreference", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetUserMFAPreferenceRequest"}, + "output":{"shape":"SetUserMFAPreferenceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ] + }, + "SetUserPoolMfaConfig":{ + "name":"SetUserPoolMfaConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetUserPoolMfaConfigRequest"}, + "output":{"shape":"SetUserPoolMfaConfigResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"NotAuthorizedException"}, {"shape":"InternalErrorException"} ] }, @@ -1281,6 +1576,24 @@ {"shape":"NotAuthorizedException"} ] }, + "UpdateAuthEventFeedback":{ + "name":"UpdateAuthEventFeedback", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAuthEventFeedbackRequest"}, + "output":{"shape":"UpdateAuthEventFeedbackResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"InternalErrorException"} + ] + }, "UpdateDeviceStatus":{ "name":"UpdateDeviceStatus", "http":{ @@ -1334,6 +1647,22 @@ {"shape":"InternalErrorException"} ] }, + "UpdateResourceServer":{ + "name":"UpdateResourceServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateResourceServerRequest"}, + "output":{"shape":"UpdateResourceServerResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, "UpdateUserAttributes":{ "name":"UpdateUserAttributes", "http":{ @@ -1397,6 +1726,7 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParameterException"}, + {"shape":"ConcurrentModificationException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, {"shape":"ScopeDoesNotExistException"}, @@ -1404,19 +1734,43 @@ {"shape":"InternalErrorException"} ] }, - "VerifyUserAttribute":{ - "name":"VerifyUserAttribute", + "VerifySoftwareToken":{ + "name":"VerifySoftwareToken", "http":{ "method":"POST", "requestUri":"/" }, - "input":{"shape":"VerifyUserAttributeRequest"}, - "output":{"shape":"VerifyUserAttributeResponse"}, + "input":{"shape":"VerifySoftwareTokenRequest"}, + "output":{"shape":"VerifySoftwareTokenResponse"}, "errors":[ - {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParameterException"}, - {"shape":"CodeMismatchException"}, - {"shape":"ExpiredCodeException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"}, + {"shape":"EnableSoftwareTokenMFAException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"SoftwareTokenMFANotFoundException"}, + {"shape":"CodeMismatchException"} + ] + }, + "VerifyUserAttribute":{ + "name":"VerifyUserAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"VerifyUserAttributeRequest"}, + "output":{"shape":"VerifyUserAttributeResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"CodeMismatchException"}, + {"shape":"ExpiredCodeException"}, {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, {"shape":"LimitExceededException"}, @@ -1430,6 +1784,43 @@ }, "shapes":{ "AWSAccountIdType":{"type":"string"}, + "AccountTakeoverActionNotifyType":{"type":"boolean"}, + "AccountTakeoverActionType":{ + "type":"structure", + "required":[ + "Notify", + "EventAction" + ], + "members":{ + "Notify":{"shape":"AccountTakeoverActionNotifyType"}, + "EventAction":{"shape":"AccountTakeoverEventActionType"} + } + }, + "AccountTakeoverActionsType":{ + "type":"structure", + "members":{ + "LowAction":{"shape":"AccountTakeoverActionType"}, + "MediumAction":{"shape":"AccountTakeoverActionType"}, + "HighAction":{"shape":"AccountTakeoverActionType"} + } + }, + "AccountTakeoverEventActionType":{ + "type":"string", + "enum":[ + "BLOCK", + "MFA_IF_CONFIGURED", + "MFA_REQUIRED", + "NO_ACTION" + ] + }, + "AccountTakeoverRiskConfigurationType":{ + "type":"structure", + "required":["Actions"], + "members":{ + "NotifyConfiguration":{"shape":"NotifyConfigurationType"}, + "Actions":{"shape":"AccountTakeoverActionsType"} + } + }, "AddCustomAttributesRequest":{ "type":"structure", "required":[ @@ -1508,7 +1899,7 @@ }, "AdminCreateUserUnusedAccountValidityDaysType":{ "type":"integer", - "max":90, + "max":365, "min":0 }, "AdminDeleteUserAttributesRequest":{ @@ -1540,6 +1931,22 @@ "Username":{"shape":"UsernameType"} } }, + "AdminDisableProviderForUserRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "User" + ], + "members":{ + "UserPoolId":{"shape":"StringType"}, + "User":{"shape":"ProviderUserIdentifierType"} + } + }, + "AdminDisableProviderForUserResponse":{ + "type":"structure", + "members":{ + } + }, "AdminDisableUserRequest":{ "type":"structure", "required":[ @@ -1626,7 +2033,9 @@ "UserLastModifiedDate":{"shape":"DateType"}, "Enabled":{"shape":"BooleanType"}, "UserStatus":{"shape":"UserStatusType"}, - "MFAOptions":{"shape":"MFAOptionListType"} + "MFAOptions":{"shape":"MFAOptionListType"}, + "PreferredMfaSetting":{"shape":"StringType"}, + "UserMFASettingList":{"shape":"UserMFASettingListType"} } }, "AdminInitiateAuthRequest":{ @@ -1641,7 +2050,9 @@ "ClientId":{"shape":"ClientIdType"}, "AuthFlow":{"shape":"AuthFlowType"}, "AuthParameters":{"shape":"AuthParametersType"}, - "ClientMetadata":{"shape":"ClientMetadataType"} + "ClientMetadata":{"shape":"ClientMetadataType"}, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "ContextData":{"shape":"ContextDataType"} } }, "AdminInitiateAuthResponse":{ @@ -1653,6 +2064,24 @@ "AuthenticationResult":{"shape":"AuthenticationResultType"} } }, + "AdminLinkProviderForUserRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "DestinationUser", + "SourceUser" + ], + "members":{ + "UserPoolId":{"shape":"StringType"}, + "DestinationUser":{"shape":"ProviderUserIdentifierType"}, + "SourceUser":{"shape":"ProviderUserIdentifierType"} + } + }, + "AdminLinkProviderForUserResponse":{ + "type":"structure", + "members":{ + } + }, "AdminListDevicesRequest":{ "type":"structure", "required":[ @@ -1693,6 +2122,26 @@ "NextToken":{"shape":"PaginationKey"} } }, + "AdminListUserAuthEventsRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Username":{"shape":"UsernameType"}, + "MaxResults":{"shape":"QueryLimitType"}, + "NextToken":{"shape":"PaginationKey"} + } + }, + "AdminListUserAuthEventsResponse":{ + "type":"structure", + "members":{ + "AuthEvents":{"shape":"AuthEventsType"}, + "NextToken":{"shape":"PaginationKey"} + } + }, "AdminRemoveUserFromGroupRequest":{ "type":"structure", "required":[ @@ -1734,7 +2183,9 @@ "ClientId":{"shape":"ClientIdType"}, "ChallengeName":{"shape":"ChallengeNameType"}, "ChallengeResponses":{"shape":"ChallengeResponsesType"}, - "Session":{"shape":"SessionType"} + "Session":{"shape":"SessionType"}, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "ContextData":{"shape":"ContextDataType"} } }, "AdminRespondToAuthChallengeResponse":{ @@ -1746,6 +2197,24 @@ "AuthenticationResult":{"shape":"AuthenticationResultType"} } }, + "AdminSetUserMFAPreferenceRequest":{ + "type":"structure", + "required":[ + "Username", + "UserPoolId" + ], + "members":{ + "SMSMfaSettings":{"shape":"SMSMfaSettingsType"}, + "SoftwareTokenMfaSettings":{"shape":"SoftwareTokenMfaSettingsType"}, + "Username":{"shape":"UsernameType"}, + "UserPoolId":{"shape":"UserPoolIdType"} + } + }, + "AdminSetUserMFAPreferenceResponse":{ + "type":"structure", + "members":{ + } + }, "AdminSetUserSettingsRequest":{ "type":"structure", "required":[ @@ -1764,6 +2233,26 @@ "members":{ } }, + "AdminUpdateAuthEventFeedbackRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username", + "EventId", + "FeedbackValue" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Username":{"shape":"UsernameType"}, + "EventId":{"shape":"EventIdType"}, + "FeedbackValue":{"shape":"FeedbackValueType"} + } + }, + "AdminUpdateAuthEventFeedbackResponse":{ + "type":"structure", + "members":{ + } + }, "AdminUpdateDeviceStatusRequest":{ "type":"structure", "required":[ @@ -1817,6 +2306,14 @@ "members":{ } }, + "AdvancedSecurityModeType":{ + "type":"string", + "enum":[ + "OFF", + "AUDIT", + "ENFORCED" + ] + }, "AliasAttributeType":{ "type":"string", "enum":[ @@ -1836,12 +2333,46 @@ }, "exception":true }, + "AnalyticsConfigurationType":{ + "type":"structure", + "required":[ + "ApplicationId", + "RoleArn", + "ExternalId" + ], + "members":{ + "ApplicationId":{"shape":"HexStringType"}, + "RoleArn":{"shape":"ArnType"}, + "ExternalId":{"shape":"StringType"}, + "UserDataShared":{"shape":"BooleanType"} + } + }, + "AnalyticsMetadataType":{ + "type":"structure", + "members":{ + "AnalyticsEndpointId":{"shape":"StringType"} + } + }, "ArnType":{ "type":"string", "max":2048, "min":20, "pattern":"arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?" }, + "AssociateSoftwareTokenRequest":{ + "type":"structure", + "members":{ + "AccessToken":{"shape":"TokenModelType"}, + "Session":{"shape":"SessionType"} + } + }, + "AssociateSoftwareTokenResponse":{ + "type":"structure", + "members":{ + "SecretCode":{"shape":"SecretCodeType"}, + "Session":{"shape":"SessionType"} + } + }, "AttributeDataType":{ "type":"string", "enum":[ @@ -1855,9 +2386,14 @@ "type":"list", "member":{"shape":"AttributeType"} }, + "AttributeMappingKeyType":{ + "type":"string", + "max":32, + "min":1 + }, "AttributeMappingType":{ "type":"map", - "key":{"shape":"CustomAttributeNameType"}, + "key":{"shape":"AttributeMappingKeyType"}, "value":{"shape":"StringType"} }, "AttributeNameListType":{ @@ -1883,6 +2419,23 @@ "max":2048, "sensitive":true }, + "AuthEventType":{ + "type":"structure", + "members":{ + "EventId":{"shape":"StringType"}, + "EventType":{"shape":"EventType"}, + "CreationDate":{"shape":"DateType"}, + "EventResponse":{"shape":"EventResponseType"}, + "EventRisk":{"shape":"EventRiskType"}, + "ChallengeResponses":{"shape":"ChallengeResponseListType"}, + "EventContextData":{"shape":"EventContextDataType"}, + "EventFeedback":{"shape":"EventFeedbackType"} + } + }, + "AuthEventsType":{ + "type":"list", + "member":{"shape":"AuthEventType"} + }, "AuthFlowType":{ "type":"string", "enum":[ @@ -1909,17 +2462,34 @@ "NewDeviceMetadata":{"shape":"NewDeviceMetadataType"} } }, + "BlockedIPRangeListType":{ + "type":"list", + "member":{"shape":"StringType"}, + "max":20 + }, "BooleanType":{"type":"boolean"}, + "CSSType":{"type":"string"}, + "CSSVersionType":{"type":"string"}, "CallbackURLsListType":{ "type":"list", "member":{"shape":"RedirectUrlType"}, "max":100, "min":0 }, + "ChallengeName":{ + "type":"string", + "enum":[ + "Password", + "Mfa" + ] + }, "ChallengeNameType":{ "type":"string", "enum":[ "SMS_MFA", + "SOFTWARE_TOKEN_MFA", + "SELECT_MFA_TYPE", + "MFA_SETUP", "PASSWORD_VERIFIER", "CUSTOM_CHALLENGE", "DEVICE_SRP_AUTH", @@ -1933,6 +2503,24 @@ "key":{"shape":"StringType"}, "value":{"shape":"StringType"} }, + "ChallengeResponse":{ + "type":"string", + "enum":[ + "Success", + "Failure" + ] + }, + "ChallengeResponseListType":{ + "type":"list", + "member":{"shape":"ChallengeResponseType"} + }, + "ChallengeResponseType":{ + "type":"structure", + "members":{ + "ChallengeName":{"shape":"ChallengeName"}, + "ChallengeResponse":{"shape":"ChallengeResponse"} + } + }, "ChallengeResponsesType":{ "type":"map", "key":{"shape":"StringType"}, @@ -2022,6 +2610,28 @@ "min":1, "pattern":"[\\w]+" }, + "CompromisedCredentialsActionsType":{ + "type":"structure", + "required":["EventAction"], + "members":{ + "EventAction":{"shape":"CompromisedCredentialsEventActionType"} + } + }, + "CompromisedCredentialsEventActionType":{ + "type":"string", + "enum":[ + "BLOCK", + "NO_ACTION" + ] + }, + "CompromisedCredentialsRiskConfigurationType":{ + "type":"structure", + "required":["Actions"], + "members":{ + "EventFilter":{"shape":"EventFiltersType"}, + "Actions":{"shape":"CompromisedCredentialsActionsType"} + } + }, "ConcurrentModificationException":{ "type":"structure", "members":{ @@ -2061,7 +2671,9 @@ "SecretHash":{"shape":"SecretHashType"}, "Username":{"shape":"UsernameType"}, "ConfirmationCode":{"shape":"ConfirmationCodeType"}, - "Password":{"shape":"PasswordType"} + "Password":{"shape":"PasswordType"}, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "UserContextData":{"shape":"UserContextDataType"} } }, "ConfirmForgotPasswordResponse":{ @@ -2081,7 +2693,9 @@ "SecretHash":{"shape":"SecretHashType"}, "Username":{"shape":"UsernameType"}, "ConfirmationCode":{"shape":"ConfirmationCodeType"}, - "ForceAliasCreation":{"shape":"ForceAliasCreation"} + "ForceAliasCreation":{"shape":"ForceAliasCreation"}, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "UserContextData":{"shape":"UserContextDataType"} } }, "ConfirmSignUpResponse":{ @@ -2095,6 +2709,22 @@ "min":1, "pattern":"[\\S]+" }, + "ContextDataType":{ + "type":"structure", + "required":[ + "IpAddress", + "ServerName", + "ServerPath", + "HttpHeaders" + ], + "members":{ + "IpAddress":{"shape":"StringType"}, + "ServerName":{"shape":"StringType"}, + "ServerPath":{"shape":"StringType"}, + "HttpHeaders":{"shape":"HttpHeaderList"}, + "EncodedData":{"shape":"StringType"} + } + }, "CreateGroupRequest":{ "type":"structure", "required":[ @@ -2125,7 +2755,7 @@ ], "members":{ "UserPoolId":{"shape":"UserPoolIdType"}, - "ProviderName":{"shape":"ProviderNameType"}, + "ProviderName":{"shape":"ProviderNameTypeV1"}, "ProviderType":{"shape":"IdentityProviderTypeType"}, "ProviderDetails":{"shape":"ProviderDetailsType"}, "AttributeMapping":{"shape":"AttributeMappingType"}, @@ -2139,6 +2769,27 @@ "IdentityProvider":{"shape":"IdentityProviderType"} } }, + "CreateResourceServerRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Identifier", + "Name" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Identifier":{"shape":"ResourceServerIdentifierType"}, + "Name":{"shape":"ResourceServerNameType"}, + "Scopes":{"shape":"ResourceServerScopeListType"} + } + }, + "CreateResourceServerResponse":{ + "type":"structure", + "required":["ResourceServer"], + "members":{ + "ResourceServer":{"shape":"ResourceServerType"} + } + }, "CreateUserImportJobRequest":{ "type":"structure", "required":[ @@ -2178,7 +2829,8 @@ "DefaultRedirectURI":{"shape":"RedirectUrlType"}, "AllowedOAuthFlows":{"shape":"OAuthFlowsType"}, "AllowedOAuthScopes":{"shape":"ScopeListType"}, - "AllowedOAuthFlowsUserPoolClient":{"shape":"BooleanType"} + "AllowedOAuthFlowsUserPoolClient":{"shape":"BooleanType"}, + "AnalyticsConfiguration":{"shape":"AnalyticsConfigurationType"} } }, "CreateUserPoolClientResponse":{ @@ -2212,9 +2864,11 @@ "LambdaConfig":{"shape":"LambdaConfigType"}, "AutoVerifiedAttributes":{"shape":"VerifiedAttributesListType"}, "AliasAttributes":{"shape":"AliasAttributesListType"}, + "UsernameAttributes":{"shape":"UsernameAttributesListType"}, "SmsVerificationMessage":{"shape":"SmsVerificationMessageType"}, "EmailVerificationMessage":{"shape":"EmailVerificationMessageType"}, "EmailVerificationSubject":{"shape":"EmailVerificationSubjectType"}, + "VerificationMessageTemplate":{"shape":"VerificationMessageTemplateType"}, "SmsAuthenticationMessage":{"shape":"SmsVerificationMessageType"}, "MfaConfiguration":{"shape":"UserPoolMfaType"}, "DeviceConfiguration":{"shape":"DeviceConfigurationType"}, @@ -2222,7 +2876,8 @@ "SmsConfiguration":{"shape":"SmsConfigurationType"}, "UserPoolTags":{"shape":"UserPoolTagsType"}, "AdminCreateUserConfig":{"shape":"AdminCreateUserConfigType"}, - "Schema":{"shape":"SchemaAttributesListType"} + "Schema":{"shape":"SchemaAttributesListType"}, + "UserPoolAddOns":{"shape":"UserPoolAddOnsType"} } }, "CreateUserPoolResponse":{ @@ -2244,6 +2899,13 @@ "min":1 }, "DateType":{"type":"timestamp"}, + "DefaultEmailOptionType":{ + "type":"string", + "enum":[ + "CONFIRM_WITH_LINK", + "CONFIRM_WITH_CODE" + ] + }, "DeleteGroupRequest":{ "type":"structure", "required":[ @@ -2266,6 +2928,17 @@ "ProviderName":{"shape":"ProviderNameType"} } }, + "DeleteResourceServerRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Identifier" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Identifier":{"shape":"ResourceServerIdentifierType"} + } + }, "DeleteUserAttributesRequest":{ "type":"structure", "required":[ @@ -2352,6 +3025,39 @@ "IdentityProvider":{"shape":"IdentityProviderType"} } }, + "DescribeResourceServerRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Identifier" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Identifier":{"shape":"ResourceServerIdentifierType"} + } + }, + "DescribeResourceServerResponse":{ + "type":"structure", + "required":["ResourceServer"], + "members":{ + "ResourceServer":{"shape":"ResourceServerType"} + } + }, + "DescribeRiskConfigurationRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ClientId":{"shape":"ClientIdType"} + } + }, + "DescribeRiskConfigurationResponse":{ + "type":"structure", + "required":["RiskConfiguration"], + "members":{ + "RiskConfiguration":{"shape":"RiskConfigurationType"} + } + }, "DescribeUserImportJobRequest":{ "type":"structure", "required":[ @@ -2480,13 +3186,15 @@ "CREATING", "DELETING", "UPDATING", - "ACTIVE" + "ACTIVE", + "FAILED" ] }, "DomainType":{ "type":"string", - "max":1024, - "min":1 + "max":63, + "min":1, + "pattern":"^[a-z0-9](?:[a-z0-9\\-]{0,61}[a-z0-9])?$" }, "DomainVersionType":{ "type":"string", @@ -2511,18 +3219,111 @@ "ReplyToEmailAddress":{"shape":"EmailAddressType"} } }, + "EmailNotificationBodyType":{ + "type":"string", + "max":20000, + "min":6, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]+" + }, + "EmailNotificationSubjectType":{ + "type":"string", + "max":140, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+" + }, + "EmailVerificationMessageByLinkType":{ + "type":"string", + "max":20000, + "min":6, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{##[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*##\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*" + }, "EmailVerificationMessageType":{ "type":"string", "max":20000, "min":6, "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*" }, + "EmailVerificationSubjectByLinkType":{ + "type":"string", + "max":140, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+" + }, "EmailVerificationSubjectType":{ "type":"string", "max":140, "min":1, "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+" }, + "EnableSoftwareTokenMFAException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} + }, + "exception":true + }, + "EventContextDataType":{ + "type":"structure", + "members":{ + "IpAddress":{"shape":"StringType"}, + "DeviceName":{"shape":"StringType"}, + "Timezone":{"shape":"StringType"}, + "City":{"shape":"StringType"}, + "Country":{"shape":"StringType"} + } + }, + "EventFeedbackType":{ + "type":"structure", + "required":[ + "FeedbackValue", + "Provider" + ], + "members":{ + "FeedbackValue":{"shape":"FeedbackValueType"}, + "Provider":{"shape":"StringType"}, + "FeedbackDate":{"shape":"DateType"} + } + }, + "EventFilterType":{ + "type":"string", + "enum":[ + "SIGN_IN", + "PASSWORD_CHANGE", + "SIGN_UP" + ] + }, + "EventFiltersType":{ + "type":"list", + "member":{"shape":"EventFilterType"} + }, + "EventIdType":{ + "type":"string", + "max":50, + "min":1, + "pattern":"[\\w+-]+" + }, + "EventResponseType":{ + "type":"string", + "enum":[ + "Success", + "Failure" + ] + }, + "EventRiskType":{ + "type":"structure", + "members":{ + "RiskDecision":{"shape":"RiskDecisionType"}, + "RiskLevel":{"shape":"RiskLevelType"} + } + }, + "EventType":{ + "type":"string", + "enum":[ + "SignIn", + "SignUp", + "ForgotPassword" + ] + }, "ExpiredCodeException":{ "type":"structure", "members":{ @@ -2541,6 +3342,13 @@ "CUSTOM_AUTH_FLOW_ONLY" ] }, + "FeedbackValueType":{ + "type":"string", + "enum":[ + "Valid", + "Invalid" + ] + }, "ForceAliasCreation":{"type":"boolean"}, "ForgetDeviceRequest":{ "type":"structure", @@ -2559,7 +3367,9 @@ "members":{ "ClientId":{"shape":"ClientIdType"}, "SecretHash":{"shape":"SecretHashType"}, - "Username":{"shape":"UsernameType"} + "UserContextData":{"shape":"UserContextDataType"}, + "Username":{"shape":"UsernameType"}, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"} } }, "ForgotPasswordResponse":{ @@ -2633,6 +3443,21 @@ "IdentityProvider":{"shape":"IdentityProviderType"} } }, + "GetUICustomizationRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ClientId":{"shape":"ClientIdType"} + } + }, + "GetUICustomizationResponse":{ + "type":"structure", + "required":["UICustomization"], + "members":{ + "UICustomization":{"shape":"UICustomizationType"} + } + }, "GetUserAttributeVerificationCodeRequest":{ "type":"structure", "required":[ @@ -2650,6 +3475,21 @@ "CodeDeliveryDetails":{"shape":"CodeDeliveryDetailsType"} } }, + "GetUserPoolMfaConfigRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"} + } + }, + "GetUserPoolMfaConfigResponse":{ + "type":"structure", + "members":{ + "SmsMfaConfiguration":{"shape":"SmsMfaConfigType"}, + "SoftwareTokenMfaConfiguration":{"shape":"SoftwareTokenMfaConfigType"}, + "MfaConfiguration":{"shape":"UserPoolMfaType"} + } + }, "GetUserRequest":{ "type":"structure", "required":["AccessToken"], @@ -2666,7 +3506,9 @@ "members":{ "Username":{"shape":"UsernameType"}, "UserAttributes":{"shape":"AttributeListType"}, - "MFAOptions":{"shape":"MFAOptionListType"} + "MFAOptions":{"shape":"MFAOptionListType"}, + "PreferredMfaSetting":{"shape":"StringType"}, + "UserMFASettingList":{"shape":"UserMFASettingListType"} } }, "GlobalSignOutRequest":{ @@ -2710,6 +3552,21 @@ "CreationDate":{"shape":"DateType"} } }, + "HexStringType":{ + "type":"string", + "pattern":"^[0-9a-fA-F]+$" + }, + "HttpHeader":{ + "type":"structure", + "members":{ + "headerName":{"shape":"StringType"}, + "headerValue":{"shape":"StringType"} + } + }, + "HttpHeaderList":{ + "type":"list", + "member":{"shape":"HttpHeader"} + }, "IdentityProviderType":{ "type":"structure", "members":{ @@ -2725,7 +3582,12 @@ }, "IdentityProviderTypeType":{ "type":"string", - "enum":["SAML"] + "enum":[ + "SAML", + "Facebook", + "Google", + "LoginWithAmazon" + ] }, "IdpIdentifierType":{ "type":"string", @@ -2739,6 +3601,8 @@ "max":50, "min":0 }, + "ImageFileType":{"type":"blob"}, + "ImageUrlType":{"type":"string"}, "InitiateAuthRequest":{ "type":"structure", "required":[ @@ -2749,7 +3613,9 @@ "AuthFlow":{"shape":"AuthFlowType"}, "AuthParameters":{"shape":"AuthParametersType"}, "ClientMetadata":{"shape":"ClientMetadataType"}, - "ClientId":{"shape":"ClientIdType"} + "ClientId":{"shape":"ClientIdType"}, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "UserContextData":{"shape":"UserContextDataType"} } }, "InitiateAuthResponse":{ @@ -2836,7 +3702,8 @@ "PostAuthentication":{"shape":"ArnType"}, "DefineAuthChallenge":{"shape":"ArnType"}, "CreateAuthChallenge":{"shape":"ArnType"}, - "VerifyAuthChallengeResponse":{"shape":"ArnType"} + "VerifyAuthChallengeResponse":{"shape":"ArnType"}, + "PreTokenGeneration":{"shape":"ArnType"} } }, "LimitExceededException":{ @@ -2904,6 +3771,28 @@ "max":60, "min":1 }, + "ListResourceServersLimitType":{ + "type":"integer", + "max":50, + "min":1 + }, + "ListResourceServersRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "MaxResults":{"shape":"ListResourceServersLimitType"}, + "NextToken":{"shape":"PaginationKeyType"} + } + }, + "ListResourceServersResponse":{ + "type":"structure", + "required":["ResourceServers"], + "members":{ + "ResourceServers":{"shape":"ResourceServersListType"}, + "NextToken":{"shape":"PaginationKeyType"} + } + }, "ListUserImportJobsRequest":{ "type":"structure", "required":[ @@ -3047,6 +3936,27 @@ }, "exception":true }, + "NotifyConfigurationType":{ + "type":"structure", + "required":["SourceArn"], + "members":{ + "From":{"shape":"StringType"}, + "ReplyTo":{"shape":"StringType"}, + "SourceArn":{"shape":"ArnType"}, + "BlockEmail":{"shape":"NotifyEmailType"}, + "NoActionEmail":{"shape":"NotifyEmailType"}, + "MfaEmail":{"shape":"NotifyEmailType"} + } + }, + "NotifyEmailType":{ + "type":"structure", + "required":["Subject"], + "members":{ + "Subject":{"shape":"EmailNotificationSubjectType"}, + "HtmlBody":{"shape":"EmailNotificationBodyType"}, + "TextBody":{"shape":"EmailNotificationBodyType"} + } + }, "NumberAttributeConstraintsType":{ "type":"structure", "members":{ @@ -3148,6 +4058,20 @@ "min":1, "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+" }, + "ProviderNameTypeV1":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[^_][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_]+" + }, + "ProviderUserIdentifierType":{ + "type":"structure", + "members":{ + "ProviderName":{"shape":"ProviderNameType"}, + "ProviderAttributeName":{"shape":"StringType"}, + "ProviderAttributeValue":{"shape":"StringType"} + } + }, "ProvidersListType":{ "type":"list", "member":{"shape":"ProviderDescription"}, @@ -3184,7 +4108,9 @@ "members":{ "ClientId":{"shape":"ClientIdType"}, "SecretHash":{"shape":"SecretHashType"}, - "Username":{"shape":"UsernameType"} + "UserContextData":{"shape":"UserContextDataType"}, + "Username":{"shape":"UsernameType"}, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"} } }, "ResendConfirmationCodeResponse":{ @@ -3200,6 +4126,58 @@ }, "exception":true }, + "ResourceServerIdentifierType":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[\\x21\\x23-\\x5B\\x5D-\\x7E]+" + }, + "ResourceServerNameType":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[\\w\\s+=,.@-]+" + }, + "ResourceServerScopeDescriptionType":{ + "type":"string", + "max":256, + "min":1 + }, + "ResourceServerScopeListType":{ + "type":"list", + "member":{"shape":"ResourceServerScopeType"}, + "max":25 + }, + "ResourceServerScopeNameType":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[\\x21\\x23-\\x2E\\x30-\\x5B\\x5D-\\x7E]+" + }, + "ResourceServerScopeType":{ + "type":"structure", + "required":[ + "ScopeName", + "ScopeDescription" + ], + "members":{ + "ScopeName":{"shape":"ResourceServerScopeNameType"}, + "ScopeDescription":{"shape":"ResourceServerScopeDescriptionType"} + } + }, + "ResourceServerType":{ + "type":"structure", + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Identifier":{"shape":"ResourceServerIdentifierType"}, + "Name":{"shape":"ResourceServerNameType"}, + "Scopes":{"shape":"ResourceServerScopeListType"} + } + }, + "ResourceServersListType":{ + "type":"list", + "member":{"shape":"ResourceServerType"} + }, "RespondToAuthChallengeRequest":{ "type":"structure", "required":[ @@ -3210,7 +4188,9 @@ "ClientId":{"shape":"ClientIdType"}, "ChallengeName":{"shape":"ChallengeNameType"}, "Session":{"shape":"SessionType"}, - "ChallengeResponses":{"shape":"ChallengeResponsesType"} + "ChallengeResponses":{"shape":"ChallengeResponsesType"}, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "UserContextData":{"shape":"UserContextDataType"} } }, "RespondToAuthChallengeResponse":{ @@ -3222,12 +4202,53 @@ "AuthenticationResult":{"shape":"AuthenticationResultType"} } }, + "RiskConfigurationType":{ + "type":"structure", + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ClientId":{"shape":"ClientIdType"}, + "CompromisedCredentialsRiskConfiguration":{"shape":"CompromisedCredentialsRiskConfigurationType"}, + "AccountTakeoverRiskConfiguration":{"shape":"AccountTakeoverRiskConfigurationType"}, + "RiskExceptionConfiguration":{"shape":"RiskExceptionConfigurationType"}, + "LastModifiedDate":{"shape":"DateType"} + } + }, + "RiskDecisionType":{ + "type":"string", + "enum":[ + "NoRisk", + "AccountTakeover", + "Block" + ] + }, + "RiskExceptionConfigurationType":{ + "type":"structure", + "members":{ + "BlockedIPRangeList":{"shape":"BlockedIPRangeListType"}, + "SkippedIPRangeList":{"shape":"SkippedIPRangeListType"} + } + }, + "RiskLevelType":{ + "type":"string", + "enum":[ + "Low", + "Medium", + "High" + ] + }, "S3BucketType":{ "type":"string", "max":1024, "min":3, "pattern":"^[0-9A-Za-z\\.\\-_]*(?Adds additional user attributes to the user pool schema.

", "AdminAddUserToGroup": "

Adds the specified user to the specified group.

Requires developer credentials.

", "AdminConfirmSignUp": "

Confirms user registration as an admin without using a confirmation code. Works on any user.

Requires developer credentials.

", - "AdminCreateUser": "

Creates a new user in the specified user pool and sends a welcome message via email or phone (SMS). This message is based on a template that you configured in your call to CreateUserPool or UpdateUserPool. This template includes your custom sign-up instructions and placeholders for user name and temporary password.

Requires developer credentials.

", + "AdminCreateUser": "

Creates a new user in the specified user pool.

If MessageAction is not set, the default is to send a welcome message via email or phone (SMS).

This message is based on a template that you configured in your call to or . This template includes your custom sign-up instructions and placeholders for user name and temporary password.

Alternatively, you can call AdminCreateUser with “SUPPRESS” for the MessageAction parameter, and Amazon Cognito will not send any email.

In either case, the user will be in the FORCE_CHANGE_PASSWORD state until they sign in and change their password.

AdminCreateUser requires developer credentials.

", "AdminDeleteUser": "

Deletes a user as an administrator. Works on any user.

Requires developer credentials.

", "AdminDeleteUserAttributes": "

Deletes the user attributes in a user pool as an administrator. Works on any user.

Requires developer credentials.

", + "AdminDisableProviderForUser": "

Disables the user from signing in with the specified external (SAML or social) identity provider. If the user to disable is a Cognito User Pools native username + password user, they are not permitted to use their password to sign-in. If the user to disable is a linked external IdP user, any link between that user and an existing user is removed. The next time the external user (no longer attached to the previously linked DestinationUser) signs in, they must create a new user account. See .

This action is enabled only for admin access and requires developer credentials.

The ProviderName must match the value specified when creating an IdP for the pool.

To disable a native username + password user, the ProviderName value must be Cognito and the ProviderAttributeName must be Cognito_Subject, with the ProviderAttributeValue being the name that is used in the user pool for the user.

The ProviderAttributeName must always be Cognito_Subject for social identity providers. The ProviderAttributeValue must always be the exact subject that was used when the user was originally linked as a source user.

For de-linking a SAML identity, there are two scenarios. If the linked identity has not yet been used to sign-in, the ProviderAttributeName and ProviderAttributeValue must be the same values that were used for the SourceUser when the identities were originally linked in the call. (If the linking was done with ProviderAttributeName set to Cognito_Subject, the same applies here). However, if the user has already signed in, the ProviderAttributeName must be Cognito_Subject and ProviderAttributeValue must be the subject of the SAML assertion.

", "AdminDisableUser": "

Disables the specified user as an administrator. Works on any user.

Requires developer credentials.

", "AdminEnableUser": "

Enables the specified user as an administrator. Works on any user.

Requires developer credentials.

", "AdminForgetDevice": "

Forgets the device, as an administrator.

Requires developer credentials.

", "AdminGetDevice": "

Gets the device, as an administrator.

Requires developer credentials.

", "AdminGetUser": "

Gets the specified user by user name in a user pool as an administrator. Works on any user.

Requires developer credentials.

", "AdminInitiateAuth": "

Initiates the authentication flow, as an administrator.

Requires developer credentials.

", + "AdminLinkProviderForUser": "

Links an existing user account in a user pool (DestinationUser) to an identity from an external identity provider (SourceUser) based on a specified attribute name and value from the external identity provider. This allows you to create a link from the existing user account to an external federated user identity that has not yet been used to sign in, so that the federated user identity can be used to sign in as the existing user account.

For example, if there is an existing user with a username and password, this API links that user to a federated user identity, so that when the federated user identity is used, the user signs in as the existing user account.

Because this API allows a user with an external federated identity to sign in as an existing user in the user pool, it is critical that it only be used with external identity providers and provider attributes that have been trusted by the application owner.

See also .

This action is enabled only for admin access and requires developer credentials.

", "AdminListDevices": "

Lists devices, as an administrator.

Requires developer credentials.

", "AdminListGroupsForUser": "

Lists the groups that the user belongs to.

Requires developer credentials.

", + "AdminListUserAuthEvents": "

Lists a history of user activity and any risks detected as part of Amazon Cognito advanced security.

", "AdminRemoveUserFromGroup": "

Removes the specified user from the specified group.

Requires developer credentials.

", "AdminResetUserPassword": "

Resets the specified user's password in a user pool as an administrator. Works on any user.

When a developer calls this API, the current password is invalidated, so it must be changed. If a user tries to sign in after the API is called, the app will get a PasswordResetRequiredException exception back and should direct the user down the flow to reset the password, which is the same as the forgot password flow. In addition, if the user pool has phone verification selected and a verified phone number exists for the user, or if email verification is selected and a verified email exists for the user, calling this API will also result in sending a message to the end user with the code to change their password.

Requires developer credentials.

", "AdminRespondToAuthChallenge": "

Responds to an authentication challenge, as an administrator.

Requires developer credentials.

", + "AdminSetUserMFAPreference": "

Sets the user's multi-factor authentication (MFA) preference.

", "AdminSetUserSettings": "

Sets all the user settings for a specified user name. Works on any user.

Requires developer credentials.

", + "AdminUpdateAuthEventFeedback": "

Provides feedback for an authentication event as to whether it was from a valid user. This feedback is used for improving the risk evaluation decision for the user pool as part of Amazon Cognito advanced security.

", "AdminUpdateDeviceStatus": "

Updates the device status as an administrator.

Requires developer credentials.

", "AdminUpdateUserAttributes": "

Updates the specified user's attributes, including developer attributes, as an administrator. Works on any user.

For custom attributes, you must prepend the custom: prefix to the attribute name.

In addition to updating user attributes, this API can also be used to mark phone and email as verified.

Requires developer credentials.

", "AdminUserGlobalSignOut": "

Signs out users from all devices, as an administrator.

Requires developer credentials.

", + "AssociateSoftwareToken": "

Returns a unique generated shared secret key code for the user account. The request takes an access token or a session string, but not both.

", "ChangePassword": "

Changes the password for a specified user in a user pool.

", "ConfirmDevice": "

Confirms tracking of the device. This API call is the call that begins device tracking.

", "ConfirmForgotPassword": "

Allows a user to enter a confirmation code to reset a forgotten password.

", "ConfirmSignUp": "

Confirms registration of a user and handles the existing alias from a previous user.

", "CreateGroup": "

Creates a new group in the specified user pool.

Requires developer credentials.

", "CreateIdentityProvider": "

Creates an identity provider for a user pool.

", + "CreateResourceServer": "

Creates a new OAuth2.0 resource server and defines custom scopes in it.

", "CreateUserImportJob": "

Creates the user import job.

", "CreateUserPool": "

Creates a new Amazon Cognito user pool and sets the password policy for the pool.

", "CreateUserPoolClient": "

Creates the user pool client.

", "CreateUserPoolDomain": "

Creates a new domain for a user pool.

", "DeleteGroup": "

Deletes a group. Currently only groups with no members can be deleted.

Requires developer credentials.

", "DeleteIdentityProvider": "

Deletes an identity provider for a user pool.

", - "DeleteUser": "

Allows a user to delete one's self.

", + "DeleteResourceServer": "

Deletes a resource server.

", + "DeleteUser": "

Allows a user to delete himself or herself.

", "DeleteUserAttributes": "

Deletes the attributes for a user.

", "DeleteUserPool": "

Deletes the specified Amazon Cognito user pool.

", "DeleteUserPoolClient": "

Allows the developer to delete the user pool client.

", "DeleteUserPoolDomain": "

Deletes a domain for a user pool.

", "DescribeIdentityProvider": "

Gets information about a specific identity provider.

", + "DescribeResourceServer": "

Describes a resource server.

", + "DescribeRiskConfiguration": "

Describes the risk configuration.

", "DescribeUserImportJob": "

Describes the user import job.

", "DescribeUserPool": "

Returns the configuration information and metadata of the specified user pool.

", "DescribeUserPoolClient": "

Client method for returning the configuration information and metadata of the specified user pool client.

", "DescribeUserPoolDomain": "

Gets information about a domain.

", "ForgetDevice": "

Forgets the specified device.

", - "ForgotPassword": "

Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. If a verified phone number exists for the user, the confirmation code is sent to the phone number. Otherwise, if a verified email exists, the confirmation code is sent to the email. If neither a verified phone number nor a verified email exists, InvalidParameterException is thrown. To use the confirmation code for resetting the password, call ConfirmForgotPassword.

", + "ForgotPassword": "

Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. If a verified phone number exists for the user, the confirmation code is sent to the phone number. Otherwise, if a verified email exists, the confirmation code is sent to the email. If neither a verified phone number nor a verified email exists, InvalidParameterException is thrown. To use the confirmation code for resetting the password, call .

", "GetCSVHeader": "

Gets the header information for the .csv file to be used as input for the user import job.

", "GetDevice": "

Gets the device.

", "GetGroup": "

Gets a group.

Requires developer credentials.

", "GetIdentityProviderByIdentifier": "

Gets the specified identity provider.

", + "GetUICustomization": "

Gets the UI Customization information for a particular app client's app UI, if there is something set. If nothing is set for the particular client, but there is an existing pool level customization (app clientId will be ALL), then that is returned. If nothing is present, then an empty shape is returned.

", "GetUser": "

Gets the user attributes and metadata for a user.

", "GetUserAttributeVerificationCode": "

Gets the user attribute verification code for the specified attribute name.

", + "GetUserPoolMfaConfig": "

Gets the user pool multi-factor authentication (MFA) configuration.

", "GlobalSignOut": "

Signs out users from all devices.

", "InitiateAuth": "

Initiates the authentication flow.

", "ListDevices": "

Lists the devices.

", "ListGroups": "

Lists the groups associated with a user pool.

Requires developer credentials.

", "ListIdentityProviders": "

Lists information about all identity providers for a user pool.

", + "ListResourceServers": "

Lists the resource servers for a user pool.

", "ListUserImportJobs": "

Lists the user import jobs.

", "ListUserPoolClients": "

Lists the clients that have been created for the specified user pool.

", "ListUserPools": "

Lists the user pools associated with an AWS account.

", @@ -65,16 +78,23 @@ "ListUsersInGroup": "

Lists the users in the specified group.

Requires developer credentials.

", "ResendConfirmationCode": "

Resends the confirmation (for confirmation of registration) to a specific user in the user pool.

", "RespondToAuthChallenge": "

Responds to the authentication challenge.

", + "SetRiskConfiguration": "

Configures actions on detected risks. To delete the risk configuration for UserPoolId or ClientId, pass null values for all four configuration types.

To enable Amazon Cognito advanced security features, update the user pool to include the UserPoolAddOns keyAdvancedSecurityMode.

See .

", + "SetUICustomization": "

Sets the UI customization information for a user pool's built-in app UI.

You can specify app UI customization settings for a single client (with a specific clientId) or for all clients (by setting the clientId to ALL). If you specify ALL, the default configuration will be used for every client that has no UI customization set previously. If you specify UI customization settings for a particular client, it will no longer fall back to the ALL configuration.

To use this API, your user pool must have a domain associated with it. Otherwise, there is no place to host the app's pages, and the service will throw an error.

", + "SetUserMFAPreference": "

Set the user's multi-factor authentication (MFA) method preference.

", + "SetUserPoolMfaConfig": "

Set the user pool MFA configuration.

", "SetUserSettings": "

Sets the user settings like multi-factor authentication (MFA). If MFA is to be removed for a particular attribute pass the attribute with code delivery as null. If null list is passed, all MFA options are removed.

", "SignUp": "

Registers the user in the specified user pool and creates a user name, password, and user attributes.

", "StartUserImportJob": "

Starts the user import.

", "StopUserImportJob": "

Stops the user import job.

", + "UpdateAuthEventFeedback": "

Provides the feedback for an authentication event whether it was from a valid user or not. This feedback is used for improving the risk evaluation decision for the user pool as part of Amazon Cognito advanced security.

", "UpdateDeviceStatus": "

Updates the device status.

", "UpdateGroup": "

Updates the specified group with the specified attributes.

Requires developer credentials.

", "UpdateIdentityProvider": "

Updates identity provider information for a user pool.

", + "UpdateResourceServer": "

Updates the name and scopes of resource server. All other fields are read-only.

", "UpdateUserAttributes": "

Allows a user to update a specific attribute (one at a time).

", "UpdateUserPool": "

Updates the specified user pool with the specified attributes.

", "UpdateUserPoolClient": "

Allows the developer to update the specified user pool client and password policy.

", + "VerifySoftwareToken": "

Use this API to register a user's entered TOTP code and mark the user's software token MFA status as \"verified\" if successful,

", "VerifyUserAttribute": "

Verifies the specified user attributes in the user pool.

" }, "shapes": { @@ -84,6 +104,39 @@ "DomainDescriptionType$AWSAccountId": "

The AWS account ID for the user pool owner.

" } }, + "AccountTakeoverActionNotifyType": { + "base": null, + "refs": { + "AccountTakeoverActionType$Notify": "

Flag specifying whether to send a notification.

" + } + }, + "AccountTakeoverActionType": { + "base": "

Account takeover action type.

", + "refs": { + "AccountTakeoverActionsType$LowAction": "

Action to take for a low risk.

", + "AccountTakeoverActionsType$MediumAction": "

Action to take for a medium risk.

", + "AccountTakeoverActionsType$HighAction": "

Action to take for a high risk.

" + } + }, + "AccountTakeoverActionsType": { + "base": "

Account takeover actions type.

", + "refs": { + "AccountTakeoverRiskConfigurationType$Actions": "

Account takeover risk configuration actions

" + } + }, + "AccountTakeoverEventActionType": { + "base": null, + "refs": { + "AccountTakeoverActionType$EventAction": "

The event action.

" + } + }, + "AccountTakeoverRiskConfigurationType": { + "base": "

Configuration for mitigation actions and notification for different levels of risk detected for a potential account takeover.

", + "refs": { + "RiskConfigurationType$AccountTakeoverRiskConfiguration": "

The account takeover risk configuration object including the NotifyConfiguration object and Actions to take in the case of an account takeover.

", + "SetRiskConfigurationRequest$AccountTakeoverRiskConfiguration": "

The account takeover risk configuration.

" + } + }, "AddCustomAttributesRequest": { "base": "

Represents the request to add custom attributes.

", "refs": { @@ -110,7 +163,7 @@ } }, "AdminCreateUserConfigType": { - "base": "

The type of configuration for creating a new user profile.

", + "base": "

The configuration for creating a new user profile.

", "refs": { "CreateUserPoolRequest$AdminCreateUserConfig": "

The configuration for AdminCreateUser requests.

", "UpdateUserPoolRequest$AdminCreateUserConfig": "

The configuration for AdminCreateUser requests.

", @@ -148,6 +201,16 @@ "refs": { } }, + "AdminDisableProviderForUserRequest": { + "base": null, + "refs": { + } + }, + "AdminDisableProviderForUserResponse": { + "base": null, + "refs": { + } + }, "AdminDisableUserRequest": { "base": "

Represents the request to disable any user as an administrator.

", "refs": { @@ -203,6 +266,16 @@ "refs": { } }, + "AdminLinkProviderForUserRequest": { + "base": null, + "refs": { + } + }, + "AdminLinkProviderForUserResponse": { + "base": null, + "refs": { + } + }, "AdminListDevicesRequest": { "base": "

Represents the request to list devices, as an administrator.

", "refs": { @@ -223,6 +296,16 @@ "refs": { } }, + "AdminListUserAuthEventsRequest": { + "base": null, + "refs": { + } + }, + "AdminListUserAuthEventsResponse": { + "base": null, + "refs": { + } + }, "AdminRemoveUserFromGroupRequest": { "base": null, "refs": { @@ -248,6 +331,16 @@ "refs": { } }, + "AdminSetUserMFAPreferenceRequest": { + "base": null, + "refs": { + } + }, + "AdminSetUserMFAPreferenceResponse": { + "base": null, + "refs": { + } + }, "AdminSetUserSettingsRequest": { "base": "

Represents the request to set user settings as an administrator.

", "refs": { @@ -258,6 +351,16 @@ "refs": { } }, + "AdminUpdateAuthEventFeedbackRequest": { + "base": null, + "refs": { + } + }, + "AdminUpdateAuthEventFeedbackResponse": { + "base": null, + "refs": { + } + }, "AdminUpdateDeviceStatusRequest": { "base": "

The request to update the device status, as an administrator.

", "refs": { @@ -288,6 +391,12 @@ "refs": { } }, + "AdvancedSecurityModeType": { + "base": null, + "refs": { + "UserPoolAddOnsType$AdvancedSecurityMode": "

The advanced security mode.

" + } + }, "AliasAttributeType": { "base": null, "refs": { @@ -306,9 +415,32 @@ "refs": { } }, + "AnalyticsConfigurationType": { + "base": "

The Amazon Pinpoint analytics configuration for collecting metrics for a user pool.

", + "refs": { + "CreateUserPoolClientRequest$AnalyticsConfiguration": "

The Amazon Pinpoint analytics configuration for collecting metrics for this user pool.

", + "UpdateUserPoolClientRequest$AnalyticsConfiguration": "

The Amazon Pinpoint analytics configuration for collecting metrics for this user pool.

", + "UserPoolClientType$AnalyticsConfiguration": "

The Amazon Pinpoint analytics configuration for the user pool client.

" + } + }, + "AnalyticsMetadataType": { + "base": "

An Amazon Pinpoint analytics endpoint.

An endpoint uniquely identifies a mobile device, email address, or phone number that can receive messages from Amazon Pinpoint analytics.

", + "refs": { + "AdminInitiateAuthRequest$AnalyticsMetadata": "

The analytics metadata for collecting Amazon Pinpoint metrics for AdminInitiateAuth calls.

", + "AdminRespondToAuthChallengeRequest$AnalyticsMetadata": "

The analytics metadata for collecting Amazon Pinpoint metrics for AdminRespondToAuthChallenge calls.

", + "ConfirmForgotPasswordRequest$AnalyticsMetadata": "

The Amazon Pinpoint analytics metadata for collecting metrics for ConfirmForgotPassword calls.

", + "ConfirmSignUpRequest$AnalyticsMetadata": "

The Amazon Pinpoint analytics metadata for collecting metrics for ConfirmSignUp calls.

", + "ForgotPasswordRequest$AnalyticsMetadata": "

The Amazon Pinpoint analytics metadata for collecting metrics for ForgotPassword calls.

", + "InitiateAuthRequest$AnalyticsMetadata": "

The Amazon Pinpoint analytics metadata for collecting metrics for InitiateAuth calls.

", + "ResendConfirmationCodeRequest$AnalyticsMetadata": "

The Amazon Pinpoint analytics metadata for collecting metrics for ResendConfirmationCode calls.

", + "RespondToAuthChallengeRequest$AnalyticsMetadata": "

The Amazon Pinpoint analytics metadata for collecting metrics for RespondToAuthChallenge calls.

", + "SignUpRequest$AnalyticsMetadata": "

The Amazon Pinpoint analytics metadata for collecting metrics for SignUp calls.

" + } + }, "ArnType": { "base": null, "refs": { + "AnalyticsConfigurationType$RoleArn": "

The ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics.

", "CreateGroupRequest$RoleArn": "

The role ARN for the group.

", "CreateUserImportJobRequest$CloudWatchLogsRoleArn": "

The role ARN for the Amazon CloudWatch Logging role for the user import job.

", "DomainDescriptionType$CloudFrontDistribution": "

The ARN of the CloudFront distribution.

", @@ -322,11 +454,23 @@ "LambdaConfigType$DefineAuthChallenge": "

Defines the authentication challenge.

", "LambdaConfigType$CreateAuthChallenge": "

Creates an authentication challenge.

", "LambdaConfigType$VerifyAuthChallengeResponse": "

Verifies the authentication challenge response.

", + "LambdaConfigType$PreTokenGeneration": "

A Lambda trigger that is invoked before token generation.

", + "NotifyConfigurationType$SourceArn": "

The Amazon Resource Name (ARN) of the identity that is associated with the sending authorization policy. It permits Amazon Cognito to send for the email address specified in the From parameter.

", "SmsConfigurationType$SnsCallerArn": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller.

", "UpdateGroupRequest$RoleArn": "

The new role ARN for the group. This is used for setting the cognito:roles and cognito:preferred_role claims in the token.

", "UserImportJobType$CloudWatchLogsRoleArn": "

The role ARN for the Amazon CloudWatch Logging role for the user import job. For more information, see \"Creating the CloudWatch Logs IAM Role\" in the Amazon Cognito Developer Guide.

" } }, + "AssociateSoftwareTokenRequest": { + "base": null, + "refs": { + } + }, + "AssociateSoftwareTokenResponse": { + "base": null, + "refs": { + } + }, "AttributeDataType": { "base": null, "refs": { @@ -336,7 +480,7 @@ "AttributeListType": { "base": null, "refs": { - "AdminCreateUserRequest$UserAttributes": "

An array of name-value pairs that contain user attributes and attribute values to be set for the user to be created. You can create a user without specifying any attributes other than Username. However, any attributes that you specify as required (in CreateUserPool or in the Attributes tab of the console) must be supplied either by you (in your call to AdminCreateUser) or by the user (when he or she signs up in response to your welcome message).

For custom attributes, you must prepend the custom: prefix to the attribute name.

To send a message inviting the user to sign up, you must specify the user's email address or phone number. This can be done in your call to AdminCreateUser or in the Users tab of the Amazon Cognito console for managing your user pools.

In your call to AdminCreateUser, you can set the email_verified attribute to True, and you can set the phone_number_verified attribute to True. (You can also do this by calling AdminUpdateUserAttributes.)

", + "AdminCreateUserRequest$UserAttributes": "

An array of name-value pairs that contain user attributes and attribute values to be set for the user to be created. You can create a user without specifying any attributes other than Username. However, any attributes that you specify as required (in or in the Attributes tab of the console) must be supplied either by you (in your call to AdminCreateUser) or by the user (when he or she signs up in response to your welcome message).

For custom attributes, you must prepend the custom: prefix to the attribute name.

To send a message inviting the user to sign up, you must specify the user's email address or phone number. This can be done in your call to AdminCreateUser or in the Users tab of the Amazon Cognito console for managing your user pools.

In your call to AdminCreateUser, you can set the email_verified attribute to True, and you can set the phone_number_verified attribute to True. (You can also do this by calling .)

", "AdminCreateUserRequest$ValidationData": "

The user's validation data. This is an array of name-value pairs that contain user attributes and attribute values that you can use for custom validation, such as restricting the types of user accounts that can be registered. For example, you might choose to allow or disallow user sign-up based on the user's domain.

To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as described in the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses it in the validation process.

The user's validation data is not persisted.

", "AdminGetUserResponse$UserAttributes": "

An array of name-value pairs representing user attributes.

", "AdminUpdateUserAttributesRequest$UserAttributes": "

An array of name-value pairs representing user attributes.

For custom attributes, you must prepend the custom: prefix to the attribute name.

", @@ -348,6 +492,12 @@ "UserType$Attributes": "

A container with information about the user type attributes.

" } }, + "AttributeMappingKeyType": { + "base": null, + "refs": { + "AttributeMappingType$key": null + } + }, "AttributeMappingType": { "base": null, "refs": { @@ -368,7 +518,7 @@ "refs": { "AttributeNameListType$member": null, "AttributeType$Name": "

The name of the attribute.

", - "CodeDeliveryDetailsType$AttributeName": "

The name of the attribute in the code delivery details type.

", + "CodeDeliveryDetailsType$AttributeName": "

The attribute name.

", "GetUserAttributeVerificationCodeRequest$AttributeName": "

The attribute name returned by the server response to get the user attribute verification code.

", "MFAOptionType$AttributeName": "

The attribute name of the MFA option type.

", "SearchedAttributeNamesListType$member": null, @@ -387,22 +537,34 @@ "AttributeType$Value": "

The value of the attribute.

" } }, + "AuthEventType": { + "base": "

The authentication event type.

", + "refs": { + "AuthEventsType$member": null + } + }, + "AuthEventsType": { + "base": null, + "refs": { + "AdminListUserAuthEventsResponse$AuthEvents": "

The response object. It includes the EventID, EventType, CreationDate, EventRisk, and EventResponse.

" + } + }, "AuthFlowType": { "base": null, "refs": { - "AdminInitiateAuthRequest$AuthFlow": "

The authentication flow for this call to execute. The API action will depend on this value. For example:

Valid values include:

", - "InitiateAuthRequest$AuthFlow": "

The authentication flow for this call to execute. The API action will depend on this value. For example:

Valid values include:

ADMIN_NO_SRP_AUTH is not a valid value.

" + "AdminInitiateAuthRequest$AuthFlow": "

The authentication flow for this call to execute. The API action will depend on this value. For example:

Valid values include:

", + "InitiateAuthRequest$AuthFlow": "

The authentication flow for this call to execute. The API action will depend on this value. For example:

Valid values include:

ADMIN_NO_SRP_AUTH is not a valid value.

" } }, "AuthParametersType": { "base": null, "refs": { - "AdminInitiateAuthRequest$AuthParameters": "

The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow:

", - "InitiateAuthRequest$AuthParameters": "

The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow:

" + "AdminInitiateAuthRequest$AuthParameters": "

The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow:

", + "InitiateAuthRequest$AuthParameters": "

The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow:

" } }, "AuthenticationResultType": { - "base": "

The result type of the authentication result.

", + "base": "

The authentication result.

", "refs": { "AdminInitiateAuthResponse$AuthenticationResult": "

The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, ChallengeName, ChallengeParameters, and Session are returned.

", "AdminRespondToAuthChallengeResponse$AuthenticationResult": "

The result returned by the server in response to the authentication request.

", @@ -410,11 +572,18 @@ "RespondToAuthChallengeResponse$AuthenticationResult": "

The result returned by the server in response to the request to respond to the authentication challenge.

" } }, + "BlockedIPRangeListType": { + "base": null, + "refs": { + "RiskExceptionConfigurationType$BlockedIPRangeList": "

Overrides the risk decision to always block the pre-authentication requests. The IP range is in CIDR notation: a compact representation of an IP address and its associated routing prefix.

" + } + }, "BooleanType": { "base": null, "refs": { "AdminCreateUserConfigType$AllowAdminCreateUserOnly": "

Set to True if only the administrator is allowed to create user profiles. Set to False if users can sign themselves up via an app.

", "AdminGetUserResponse$Enabled": "

Indicates that the status is enabled.

", + "AnalyticsConfigurationType$UserDataShared": "

If UserDataShared is true, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics.

", "ConfirmDeviceResponse$UserConfirmationNecessary": "

Indicates whether the user confirmation is necessary to confirm the device response.

", "CreateUserPoolClientRequest$AllowedOAuthFlowsUserPoolClient": "

Set to True if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.

", "DeviceConfigurationType$ChallengeRequiredOnNewDevice": "

Indicates whether a challenge is required on a new device. Only applicable to a new device.

", @@ -423,15 +592,33 @@ "PasswordPolicyType$RequireLowercase": "

In the password policy that you have set, refers to whether you have required users to use at least one lowercase letter in their password.

", "PasswordPolicyType$RequireNumbers": "

In the password policy that you have set, refers to whether you have required users to use at least one number in their password.

", "PasswordPolicyType$RequireSymbols": "

In the password policy that you have set, refers to whether you have required users to use at least one symbol in their password.

", + "SMSMfaSettingsType$Enabled": "

Specifies whether SMS text message MFA is enabled.

", + "SMSMfaSettingsType$PreferredMfa": "

The preferred MFA method.

", "SchemaAttributeType$DeveloperOnlyAttribute": "

Specifies whether the attribute type is developer only.

", "SchemaAttributeType$Mutable": "

Specifies whether the attribute can be changed once it has been created.

", "SchemaAttributeType$Required": "

Specifies whether a user pool attribute is required. If the attribute is required and the user does not provide a value, registration or sign-in will fail.

", "SignUpResponse$UserConfirmed": "

A response from the server indicating that a user registration has been confirmed.

", + "SoftwareTokenMfaConfigType$Enabled": "

Specifies whether software token MFA is enabled.

", + "SoftwareTokenMfaSettingsType$Enabled": "

Specifies whether software token MFA is enabled.

", + "SoftwareTokenMfaSettingsType$PreferredMfa": "

The preferred MFA method.

", "UpdateUserPoolClientRequest$AllowedOAuthFlowsUserPoolClient": "

Set to TRUE if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.

", "UserPoolClientType$AllowedOAuthFlowsUserPoolClient": "

Set to TRUE if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.

", "UserType$Enabled": "

Specifies whether the user is enabled.

" } }, + "CSSType": { + "base": null, + "refs": { + "SetUICustomizationRequest$CSS": "

The CSS values in the UI customization.

", + "UICustomizationType$CSS": "

The CSS values in the UI customization.

" + } + }, + "CSSVersionType": { + "base": null, + "refs": { + "UICustomizationType$CSSVersion": "

The CSS version number.

" + } + }, "CallbackURLsListType": { "base": null, "refs": { @@ -440,24 +627,48 @@ "UserPoolClientType$CallbackURLs": "

A list of allowed callback URLs for the identity providers.

" } }, + "ChallengeName": { + "base": null, + "refs": { + "ChallengeResponseType$ChallengeName": "

The challenge name

" + } + }, "ChallengeNameType": { "base": null, "refs": { "AdminInitiateAuthResponse$ChallengeName": "

The name of the challenge which you are responding to with this call. This is returned to you in the AdminInitiateAuth response if you need to pass another challenge.

", - "AdminRespondToAuthChallengeRequest$ChallengeName": "

The challenge name. For more information, see AdminInitiateAuth.

", - "AdminRespondToAuthChallengeResponse$ChallengeName": "

The name of the challenge. For more information, see AdminInitiateAuth.

", + "AdminRespondToAuthChallengeRequest$ChallengeName": "

The challenge name. For more information, see .

", + "AdminRespondToAuthChallengeResponse$ChallengeName": "

The name of the challenge. For more information, see .

", "InitiateAuthResponse$ChallengeName": "

The name of the challenge which you are responding to with this call. This is returned to you in the AdminInitiateAuth response if you need to pass another challenge.

Valid values include the following. Note that all of these challenges require USERNAME and SECRET_HASH (if applicable) in the parameters.

", - "RespondToAuthChallengeRequest$ChallengeName": "

The challenge name. For more information, see InitiateAuth.

ADMIN_NO_SRP_AUTH is not a valid value.

", - "RespondToAuthChallengeResponse$ChallengeName": "

The challenge name. For more information, see InitiateAuth.

" + "RespondToAuthChallengeRequest$ChallengeName": "

The challenge name. For more information, see .

ADMIN_NO_SRP_AUTH is not a valid value.

", + "RespondToAuthChallengeResponse$ChallengeName": "

The challenge name. For more information, see .

" } }, "ChallengeParametersType": { "base": null, "refs": { "AdminInitiateAuthResponse$ChallengeParameters": "

The challenge parameters. These are returned to you in the AdminInitiateAuth response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (AdminRespondToAuthChallenge).

All challenges require USERNAME and SECRET_HASH (if applicable).

The value of the USER_IF_FOR_SRP attribute will be the user's actual username, not an alias (such as email address or phone number), even if you specified an alias in your call to AdminInitiateAuth. This is because, in the AdminRespondToAuthChallenge API ChallengeResponses, the USERNAME attribute cannot be an alias.

", - "AdminRespondToAuthChallengeResponse$ChallengeParameters": "

The challenge parameters. For more information, see AdminInitiateAuth.

", + "AdminRespondToAuthChallengeResponse$ChallengeParameters": "

The challenge parameters. For more information, see .

", "InitiateAuthResponse$ChallengeParameters": "

The challenge parameters. These are returned to you in the InitiateAuth response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (RespondToAuthChallenge).

All challenges require USERNAME and SECRET_HASH (if applicable).

", - "RespondToAuthChallengeResponse$ChallengeParameters": "

The challenge parameters. For more information, see InitiateAuth.

" + "RespondToAuthChallengeResponse$ChallengeParameters": "

The challenge parameters. For more information, see .

" + } + }, + "ChallengeResponse": { + "base": null, + "refs": { + "ChallengeResponseType$ChallengeResponse": "

The challenge response.

" + } + }, + "ChallengeResponseListType": { + "base": null, + "refs": { + "AuthEventType$ChallengeResponses": "

The challenge responses.

" + } + }, + "ChallengeResponseType": { + "base": "

The challenge response type.

", + "refs": { + "ChallengeResponseListType$member": null } }, "ChallengeResponsesType": { @@ -482,15 +693,21 @@ "refs": { "AdminInitiateAuthRequest$ClientId": "

The app client ID.

", "AdminRespondToAuthChallengeRequest$ClientId": "

The app client ID.

", - "ConfirmForgotPasswordRequest$ClientId": "

The ID of the client associated with the user pool.

", - "ConfirmSignUpRequest$ClientId": "

The ID of the client associated with the user pool.

", - "DeleteUserPoolClientRequest$ClientId": "

The ID of the client associated with the user pool.

", - "DescribeUserPoolClientRequest$ClientId": "

The ID of the client associated with the user pool.

", + "ConfirmForgotPasswordRequest$ClientId": "

The app client ID of the app associated with the user pool.

", + "ConfirmSignUpRequest$ClientId": "

The ID of the app client associated with the user pool.

", + "DeleteUserPoolClientRequest$ClientId": "

The app client ID of the app associated with the user pool.

", + "DescribeRiskConfigurationRequest$ClientId": "

The app client ID.

", + "DescribeUserPoolClientRequest$ClientId": "

The app client ID of the app associated with the user pool.

", "ForgotPasswordRequest$ClientId": "

The ID of the client associated with the user pool.

", + "GetUICustomizationRequest$ClientId": "

The client ID for the client app.

", "InitiateAuthRequest$ClientId": "

The app client ID.

", "ResendConfirmationCodeRequest$ClientId": "

The ID of the client associated with the user pool.

", "RespondToAuthChallengeRequest$ClientId": "

The app client ID.

", + "RiskConfigurationType$ClientId": "

The app client ID.

", + "SetRiskConfigurationRequest$ClientId": "

The app client ID. If ClientId is null, then the risk configuration is mapped to userPoolId. When the client ID is null, the same risk configuration is applied to all the clients in the userPool.

Otherwise, ClientId is mapped to the client. When the client ID is not null, the user pool configuration is overridden and the risk configuration for the client is used instead.

", + "SetUICustomizationRequest$ClientId": "

The client ID for the client app.

", "SignUpRequest$ClientId": "

The ID of the client associated with the user pool.

", + "UICustomizationType$ClientId": "

The client ID for the client app.

", "UpdateUserPoolClientRequest$ClientId": "

The ID of the client associated with the user pool.

", "UserPoolClientDescription$ClientId": "

The ID of the client associated with the user pool.

", "UserPoolClientType$ClientId": "

The ID of the client associated with the user pool.

" @@ -542,7 +759,7 @@ } }, "CodeDeliveryDetailsType": { - "base": "

The type of code delivery details being returned from the server.

", + "base": "

The code delivery details being returned from the server.

", "refs": { "CodeDeliveryDetailsListType$member": null, "ForgotPasswordResponse$CodeDeliveryDetails": "

The code delivery details returned by the server in response to the request to reset a password.

", @@ -567,6 +784,25 @@ "UserImportJobType$CompletionMessage": "

The message returned when the user import job is completed.

" } }, + "CompromisedCredentialsActionsType": { + "base": "

The compromised credentials actions type

", + "refs": { + "CompromisedCredentialsRiskConfigurationType$Actions": "

The compromised credentials risk configuration actions.

" + } + }, + "CompromisedCredentialsEventActionType": { + "base": null, + "refs": { + "CompromisedCredentialsActionsType$EventAction": "

The event action.

" + } + }, + "CompromisedCredentialsRiskConfigurationType": { + "base": "

The compromised credentials risk configuration type.

", + "refs": { + "RiskConfigurationType$CompromisedCredentialsRiskConfiguration": "

The compromised credentials risk configuration object including the EventFilter and the EventAction

", + "SetRiskConfigurationRequest$CompromisedCredentialsRiskConfiguration": "

The compromised credentials risk configuration.

" + } + }, "ConcurrentModificationException": { "base": "

This exception is thrown if two or more modifications are happening concurrently.

", "refs": { @@ -605,11 +841,18 @@ "ConfirmationCodeType": { "base": null, "refs": { - "ConfirmForgotPasswordRequest$ConfirmationCode": "

The confirmation code sent by a user's request to retrieve a forgotten password. For more information, see ForgotPassword

", + "ConfirmForgotPasswordRequest$ConfirmationCode": "

The confirmation code sent by a user's request to retrieve a forgotten password. For more information, see

", "ConfirmSignUpRequest$ConfirmationCode": "

The confirmation code sent by a user's request to confirm registration.

", "VerifyUserAttributeRequest$Code": "

The verification code in the request to verify user attributes.

" } }, + "ContextDataType": { + "base": "

Contextual user data type used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

", + "refs": { + "AdminInitiateAuthRequest$ContextData": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

", + "AdminRespondToAuthChallengeRequest$ContextData": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + } + }, "CreateGroupRequest": { "base": null, "refs": { @@ -630,6 +873,16 @@ "refs": { } }, + "CreateResourceServerRequest": { + "base": null, + "refs": { + } + }, + "CreateResourceServerResponse": { + "base": null, + "refs": { + } + }, "CreateUserImportJobRequest": { "base": "

Represents the request to create the user import job.

", "refs": { @@ -673,7 +926,6 @@ "CustomAttributeNameType": { "base": null, "refs": { - "AttributeMappingType$key": null, "SchemaAttributeType$Name": "

A schema attribute of the name type.

" } }, @@ -688,15 +940,20 @@ "refs": { "AdminGetUserResponse$UserCreateDate": "

The date the user was created.

", "AdminGetUserResponse$UserLastModifiedDate": "

The date the user was last modified.

", + "AuthEventType$CreationDate": "

The creation date

", "DeviceType$DeviceCreateDate": "

The creation date of the device.

", "DeviceType$DeviceLastModifiedDate": "

The last modified date of the device.

", "DeviceType$DeviceLastAuthenticatedDate": "

The date in which the device was last authenticated.

", + "EventFeedbackType$FeedbackDate": "

The event feedback date.

", "GroupType$LastModifiedDate": "

The date the group was last modified.

", "GroupType$CreationDate": "

The date the group was created.

", "IdentityProviderType$LastModifiedDate": "

The date the identity provider was last modified.

", "IdentityProviderType$CreationDate": "

The date the identity provider was created.

", "ProviderDescription$LastModifiedDate": "

The date the provider was last modified.

", "ProviderDescription$CreationDate": "

The date the provider was added to the user pool.

", + "RiskConfigurationType$LastModifiedDate": "

The last modified date.

", + "UICustomizationType$LastModifiedDate": "

The last-modified date for the UI customization.

", + "UICustomizationType$CreationDate": "

The creation date for the UI customization.

", "UserImportJobType$CreationDate": "

The date the user import job was created.

", "UserImportJobType$StartDate": "

The date when the user import job was started.

", "UserImportJobType$CompletionDate": "

The date when the user import job was completed.

", @@ -710,6 +967,12 @@ "UserType$UserLastModifiedDate": "

The last modified date of the user.

" } }, + "DefaultEmailOptionType": { + "base": null, + "refs": { + "VerificationMessageTemplateType$DefaultEmailOption": "

The default email option.

" + } + }, "DeleteGroupRequest": { "base": null, "refs": { @@ -720,6 +983,11 @@ "refs": { } }, + "DeleteResourceServerRequest": { + "base": null, + "refs": { + } + }, "DeleteUserAttributesRequest": { "base": "

Represents the request to delete user attributes.

", "refs": { @@ -779,6 +1047,26 @@ "refs": { } }, + "DescribeResourceServerRequest": { + "base": null, + "refs": { + } + }, + "DescribeResourceServerResponse": { + "base": null, + "refs": { + } + }, + "DescribeRiskConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DescribeRiskConfigurationResponse": { + "base": null, + "refs": { + } + }, "DescribeUserImportJobRequest": { "base": "

Represents the request to describe the user import job.

", "refs": { @@ -828,7 +1116,7 @@ } }, "DeviceConfigurationType": { - "base": "

The type of configuration for the user pool's device tracking.

", + "base": "

The configuration for the user pool's device tracking.

", "refs": { "CreateUserPoolRequest$DeviceConfiguration": "

The device configuration.

", "UpdateUserPoolRequest$DeviceConfiguration": "

Device configuration.

", @@ -918,7 +1206,7 @@ "EmailAddressType": { "base": null, "refs": { - "EmailConfigurationType$ReplyToEmailAddress": "

The REPLY-TO email address.

" + "EmailConfigurationType$ReplyToEmailAddress": "

The destination to which the receiver of the email should reply to.

" } }, "EmailConfigurationType": { @@ -929,13 +1217,39 @@ "UserPoolType$EmailConfiguration": "

The email configuration.

" } }, + "EmailNotificationBodyType": { + "base": null, + "refs": { + "NotifyEmailType$HtmlBody": "

The HTML body.

", + "NotifyEmailType$TextBody": "

The text body.

" + } + }, + "EmailNotificationSubjectType": { + "base": null, + "refs": { + "NotifyEmailType$Subject": "

The subject.

" + } + }, + "EmailVerificationMessageByLinkType": { + "base": null, + "refs": { + "VerificationMessageTemplateType$EmailMessageByLink": "

The email message template for sending a confirmation link to the user.

" + } + }, "EmailVerificationMessageType": { "base": null, "refs": { "CreateUserPoolRequest$EmailVerificationMessage": "

A string representing the email verification message.

", "MessageTemplateType$EmailMessage": "

The message template for email messages.

", "UpdateUserPoolRequest$EmailVerificationMessage": "

The contents of the email verification message.

", - "UserPoolType$EmailVerificationMessage": "

The contents of the email verification message.

" + "UserPoolType$EmailVerificationMessage": "

The contents of the email verification message.

", + "VerificationMessageTemplateType$EmailMessage": "

The email message template.

" + } + }, + "EmailVerificationSubjectByLinkType": { + "base": null, + "refs": { + "VerificationMessageTemplateType$EmailSubjectByLink": "

The subject line for the email message template for sending a confirmation link to the user.

" } }, "EmailVerificationSubjectType": { @@ -944,7 +1258,62 @@ "CreateUserPoolRequest$EmailVerificationSubject": "

A string representing the email verification subject.

", "MessageTemplateType$EmailSubject": "

The subject line for email messages.

", "UpdateUserPoolRequest$EmailVerificationSubject": "

The subject of the email verification message.

", - "UserPoolType$EmailVerificationSubject": "

The subject of the email verification message.

" + "UserPoolType$EmailVerificationSubject": "

The subject of the email verification message.

", + "VerificationMessageTemplateType$EmailSubject": "

The subject line for the email message template.

" + } + }, + "EnableSoftwareTokenMFAException": { + "base": "

This exception is thrown when there is a code mismatch and the service fails to configure the software token TOTP multi-factor authentication (MFA).

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

Specifies the user context data captured at the time of an event request.

", + "refs": { + "AuthEventType$EventContextData": "

The user context data captured at the time of an event request. It provides additional information about the client from which event the request is received.

" + } + }, + "EventFeedbackType": { + "base": "

Specifies the event feedback type.

", + "refs": { + "AuthEventType$EventFeedback": "

A flag specifying the user feedback captured at the time of an event request is good or bad.

" + } + }, + "EventFilterType": { + "base": null, + "refs": { + "EventFiltersType$member": null + } + }, + "EventFiltersType": { + "base": null, + "refs": { + "CompromisedCredentialsRiskConfigurationType$EventFilter": "

Perform the action for these events. The default is to perform all events if no event filter is specified.

" + } + }, + "EventIdType": { + "base": null, + "refs": { + "AdminUpdateAuthEventFeedbackRequest$EventId": "

The authentication event ID.

", + "UpdateAuthEventFeedbackRequest$EventId": "

The event ID.

" + } + }, + "EventResponseType": { + "base": null, + "refs": { + "AuthEventType$EventResponse": "

The event response.

" + } + }, + "EventRiskType": { + "base": "

The event risk type.

", + "refs": { + "AuthEventType$EventRisk": "

The event risk.

" + } + }, + "EventType": { + "base": null, + "refs": { + "AuthEventType$EventType": "

The event type.

" } }, "ExpiredCodeException": { @@ -966,6 +1335,14 @@ "ExplicitAuthFlowsListType$member": null } }, + "FeedbackValueType": { + "base": null, + "refs": { + "AdminUpdateAuthEventFeedbackRequest$FeedbackValue": "

The authentication event feedback value.

", + "EventFeedbackType$FeedbackValue": "

The event feedback value.

", + "UpdateAuthEventFeedbackRequest$FeedbackValue": "

The authentication event feedback value.

" + } + }, "ForceAliasCreation": { "base": null, "refs": { @@ -1034,6 +1411,16 @@ "refs": { } }, + "GetUICustomizationRequest": { + "base": null, + "refs": { + } + }, + "GetUICustomizationResponse": { + "base": null, + "refs": { + } + }, "GetUserAttributeVerificationCodeRequest": { "base": "

Represents the request to get user attribute verification.

", "refs": { @@ -1044,6 +1431,16 @@ "refs": { } }, + "GetUserPoolMfaConfigRequest": { + "base": null, + "refs": { + } + }, + "GetUserPoolMfaConfigResponse": { + "base": null, + "refs": { + } + }, "GetUserRequest": { "base": "

Represents the request to get information about the user.

", "refs": { @@ -1098,6 +1495,24 @@ "UpdateGroupResponse$Group": "

The group object for the group.

" } }, + "HexStringType": { + "base": null, + "refs": { + "AnalyticsConfigurationType$ApplicationId": "

The application ID for an Amazon Pinpoint application.

" + } + }, + "HttpHeader": { + "base": "

The HTTP header.

", + "refs": { + "HttpHeaderList$member": null + } + }, + "HttpHeaderList": { + "base": null, + "refs": { + "ContextDataType$HttpHeaders": "

HttpHeaders received on your server in same order.

" + } + }, "IdentityProviderType": { "base": "

A container for information about an identity provider.

", "refs": { @@ -1130,6 +1545,18 @@ "UpdateIdentityProviderRequest$IdpIdentifiers": "

A list of identity provider identifiers.

" } }, + "ImageFileType": { + "base": null, + "refs": { + "SetUICustomizationRequest$ImageFile": "

The uploaded logo image for the UI customization.

" + } + }, + "ImageUrlType": { + "base": null, + "refs": { + "UICustomizationType$ImageUrl": "

The logo image for the UI customization.

" + } + }, "InitiateAuthRequest": { "base": "

Initiates the authentication request.

", "refs": { @@ -1193,12 +1620,12 @@ } }, "LambdaConfigType": { - "base": "

Specifies the type of configuration for AWS Lambda triggers.

", + "base": "

Specifies the configuration for AWS Lambda triggers.

", "refs": { "CreateUserPoolRequest$LambdaConfig": "

The Lambda trigger configuration information for the new user pool.

", "UpdateUserPoolRequest$LambdaConfig": "

The AWS Lambda configuration information from the request to update the user pool.

", "UserPoolDescriptionType$LambdaConfig": "

The AWS Lambda configuration information in a user pool description.

", - "UserPoolType$LambdaConfig": "

A container for the AWS Lambda triggers associated with a user pool.

" + "UserPoolType$LambdaConfig": "

The AWS Lambda triggers associated with tue user pool.

" } }, "LimitExceededException": { @@ -1248,6 +1675,22 @@ "ListIdentityProvidersRequest$MaxResults": "

The maximum number of identity providers to return.

" } }, + "ListResourceServersLimitType": { + "base": null, + "refs": { + "ListResourceServersRequest$MaxResults": "

The maximum number of resource servers to return.

" + } + }, + "ListResourceServersRequest": { + "base": null, + "refs": { + } + }, + "ListResourceServersResponse": { + "base": null, + "refs": { + } + }, "ListUserImportJobsRequest": { "base": "

Represents the request to list the user import jobs.

", "refs": { @@ -1302,8 +1745,8 @@ "base": null, "refs": { "CreateUserPoolClientRequest$LogoutURLs": "

A list of allowed logout URLs for the identity providers.

", - "UpdateUserPoolClientRequest$LogoutURLs": "

A list ofallowed logout URLs for the identity providers.

", - "UserPoolClientType$LogoutURLs": "

A list ofallowed logout URLs for the identity providers.

" + "UpdateUserPoolClientRequest$LogoutURLs": "

A list of allowed logout URLs for the identity providers.

", + "UserPoolClientType$LogoutURLs": "

A list of allowed logout URLs for the identity providers.

" } }, "LongType": { @@ -1344,7 +1787,7 @@ "MessageTemplateType": { "base": "

The message template structure.

", "refs": { - "AdminCreateUserConfigType$InviteMessageTemplate": "

The message template to be used for the welcome message to new users.

" + "AdminCreateUserConfigType$InviteMessageTemplate": "

The message template to be used for the welcome message to new users.

See also Customizing User Invitation Messages.

" } }, "MessageType": { @@ -1355,6 +1798,7 @@ "CodeMismatchException$message": "

The message provided when the code mismatch exception is thrown.

", "ConcurrentModificationException$message": "

The message provided when the concurrent exception is thrown.

", "DuplicateProviderException$message": null, + "EnableSoftwareTokenMFAException$message": null, "ExpiredCodeException$message": "

The message returned when the expired code exception is thrown.

", "GroupExistsException$message": null, "InternalErrorException$message": "

The message returned when Amazon Cognito throws an internal error exception.

", @@ -1373,6 +1817,7 @@ "PreconditionNotMetException$message": "

The message returned when a precondition is not met.

", "ResourceNotFoundException$message": "

The message returned when the Amazon Cognito service returns a resource not found exception.

", "ScopeDoesNotExistException$message": null, + "SoftwareTokenMFANotFoundException$message": null, "TooManyFailedAttemptsException$message": "

The message returned when the Amazon Cognito service returns a too many failed attempts exception.

", "TooManyRequestsException$message": "

The message returned when the Amazon Cognito service returns a too many requests exception.

", "UnexpectedLambdaException$message": "

The message returned when the Amazon Cognito service returns an unexpected AWS Lambda exception.

", @@ -1382,6 +1827,7 @@ "UserLambdaValidationException$message": "

The message returned when the Amazon Cognito service returns a user validation exception with the AWS Lambda service.

", "UserNotConfirmedException$message": "

The message returned when a user is not confirmed successfully.

", "UserNotFoundException$message": "

The message returned when a user is not found.

", + "UserPoolAddOnNotEnabledException$message": null, "UserPoolTaggingException$message": null, "UsernameExistsException$message": "

The message returned when Amazon Cognito throws a user name exists exception.

" } @@ -1397,6 +1843,20 @@ "refs": { } }, + "NotifyConfigurationType": { + "base": "

The notify configuration type.

", + "refs": { + "AccountTakeoverRiskConfigurationType$NotifyConfiguration": "

The notify configuration used to construct email notifications.

" + } + }, + "NotifyEmailType": { + "base": "

The notify email type.

", + "refs": { + "NotifyConfigurationType$BlockEmail": "

Email template used when a detected risk event is blocked.

", + "NotifyConfigurationType$NoActionEmail": "

The email template used when a detected risk event is allowed.

", + "NotifyConfigurationType$MfaEmail": "

The MFA email template used when MFA is challenged as part of a detected risk.

" + } + }, "NumberAttributeConstraintsType": { "base": "

The minimum and maximum value of an attribute that is of the number data type.

", "refs": { @@ -1422,6 +1882,8 @@ "refs": { "AdminListGroupsForUserRequest$NextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", "AdminListGroupsForUserResponse$NextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", + "AdminListUserAuthEventsRequest$NextToken": "

A pagination token.

", + "AdminListUserAuthEventsResponse$NextToken": "

A pagination token.

", "ListGroupsRequest$NextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", "ListGroupsResponse$NextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", "ListUserPoolClientsRequest$NextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", @@ -1435,6 +1897,8 @@ "refs": { "ListIdentityProvidersRequest$NextToken": "

A pagination token.

", "ListIdentityProvidersResponse$NextToken": "

A pagination token.

", + "ListResourceServersRequest$NextToken": "

A pagination token.

", + "ListResourceServersResponse$NextToken": "

A pagination token.

", "ListUserImportJobsRequest$PaginationToken": "

An identifier that was returned from the previous call to ListUserImportJobs, which can be used to return the next set of import jobs in the list.

", "ListUserImportJobsResponse$PaginationToken": "

An identifier that can be used to return the next set of user import jobs in the list.

", "ListUserPoolsRequest$NextToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", @@ -1450,7 +1914,7 @@ "PasswordPolicyType": { "base": "

The password policy type.

", "refs": { - "UserPoolPolicyType$PasswordPolicy": "

A container for information about the user pool password policy.

" + "UserPoolPolicyType$PasswordPolicy": "

The password policy.

" } }, "PasswordResetRequiredException": { @@ -1462,8 +1926,8 @@ "base": null, "refs": { "AdminCreateUserRequest$TemporaryPassword": "

The user's temporary password. This password must conform to the password policy that you specified when you created the user pool.

The temporary password is valid only once. To complete the Admin Create User flow, the user must enter the temporary password in the sign-in page along with a new password to be used in all future sign-ins.

This parameter is not required. If you do not specify a value, Amazon Cognito generates one for you.

The temporary password can only be used until the user account expiration limit that you specified when you created the user pool. To reset the account after that time limit, you must call AdminCreateUser again, specifying \"RESEND\" for the MessageAction parameter.

", - "ChangePasswordRequest$PreviousPassword": "

The old password in the change password request.

", - "ChangePasswordRequest$ProposedPassword": "

The new password in the change password request.

", + "ChangePasswordRequest$PreviousPassword": "

The old password.

", + "ChangePasswordRequest$ProposedPassword": "

The new password.

", "ConfirmForgotPasswordRequest$Password": "

The password sent by a user's request to retrieve a forgotten password.

", "SignUpRequest$Password": "

The password of the user you wish to register.

" } @@ -1486,7 +1950,7 @@ "refs": { "CreateGroupRequest$Precedence": "

A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. Zero is the highest precedence value. Groups with lower Precedence values take precedence over groups with higher or null Precedence values. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens.

Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim is not set in users' tokens.

The default Precedence value is null.

", "GroupType$Precedence": "

A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. If a user belongs to two or more groups, it is the group with the highest precedence whose role ARN will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens. Groups with higher Precedence values take precedence over groups with lower Precedence values or with null Precedence values.

Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim is not set in users' tokens.

The default Precedence value is null.

", - "UpdateGroupRequest$Precedence": "

The new precedence value for the group. For more information about this parameter, see CreateGroup.

" + "UpdateGroupRequest$Precedence": "

The new precedence value for the group. For more information about this parameter, see .

" } }, "PreconditionNotMetException": { @@ -1511,15 +1975,29 @@ "ProviderNameType": { "base": null, "refs": { - "CreateIdentityProviderRequest$ProviderName": "

The identity provider name.

", "DeleteIdentityProviderRequest$ProviderName": "

The identity provider name.

", "DescribeIdentityProviderRequest$ProviderName": "

The identity provider name.

", "IdentityProviderType$ProviderName": "

The identity provider name.

", "ProviderDescription$ProviderName": "

The identity provider name.

", + "ProviderUserIdentifierType$ProviderName": "

The name of the provider, for example, Facebook, Google, or Login with Amazon.

", "SupportedIdentityProvidersListType$member": null, "UpdateIdentityProviderRequest$ProviderName": "

The identity provider name.

" } }, + "ProviderNameTypeV1": { + "base": null, + "refs": { + "CreateIdentityProviderRequest$ProviderName": "

The identity provider name.

" + } + }, + "ProviderUserIdentifierType": { + "base": "

A container for information about an identity provider for a user pool.

", + "refs": { + "AdminDisableProviderForUserRequest$User": "

The user to be disabled.

", + "AdminLinkProviderForUserRequest$DestinationUser": "

The existing user in the user pool to be linked to the external identity provider user account. Can be a native (Username + Password) Cognito User Pools user or a federated user (for example, a SAML or Facebook user). If the user doesn't exist, an exception is thrown. This is the user that is returned when the new user (with the linked identity provider attribute) signs in.

For a native username + password user, the ProviderAttributeValue for the DestinationUser should be the username in the user pool. For a federated user, it should be the provider-specific user_id.

The ProviderAttributeName of the DestinationUser is ignored.

The ProviderName should be set to Cognito for users in Cognito user pools.

", + "AdminLinkProviderForUserRequest$SourceUser": "

An external identity provider account for a user who does not currently exist yet in the user pool. This user must be a federated user (for example, a SAML or Facebook user), not another native user.

If the SourceUser is a federated social identity provider user (Facebook, Google, or Login with Amazon), you must set the ProviderAttributeName to Cognito_Subject. For social identity providers, the ProviderName will be Facebook, Google, or LoginWithAmazon, and Cognito will automatically parse the Facebook, Google, and Login with Amazon tokens for id, sub, and user_id, respectively. The ProviderAttributeValue for the user must be the same value as the id, sub, or user_id value found in the social identity provider token.

For SAML, the ProviderAttributeName can be any value that matches a claim in the SAML assertion. If you wish to link SAML users based on the subject of the SAML assertion, you should map the subject to a claim through the SAML identity provider and submit that claim name as the ProviderAttributeName. If you set ProviderAttributeName to Cognito_Subject, Cognito will automatically parse the default unique identifier found in the subject from the SAML token.

" + } + }, "ProvidersListType": { "base": null, "refs": { @@ -1537,6 +2015,7 @@ "refs": { "AdminListDevicesRequest$Limit": "

The limit of the devices request.

", "AdminListGroupsForUserRequest$Limit": "

The limit of the request to list groups.

", + "AdminListUserAuthEventsRequest$MaxResults": "

The maximum number of authentication events to return.

", "ListDevicesRequest$Limit": "

The limit of the device request.

", "ListGroupsRequest$Limit": "

The limit of the request to list groups.

", "ListUsersInGroupRequest$Limit": "

The limit of the request to list users.

", @@ -1576,6 +2055,65 @@ "refs": { } }, + "ResourceServerIdentifierType": { + "base": null, + "refs": { + "CreateResourceServerRequest$Identifier": "

A unique resource server identifier for the resource server. This could be an HTTPS endpoint where the resource server is located. For example, https://my-weather-api.example.com.

", + "DeleteResourceServerRequest$Identifier": "

The identifier for the resource server.

", + "DescribeResourceServerRequest$Identifier": "

The identifier for the resource server

", + "ResourceServerType$Identifier": "

The identifier for the resource server.

", + "UpdateResourceServerRequest$Identifier": "

The identifier for the resource server.

" + } + }, + "ResourceServerNameType": { + "base": null, + "refs": { + "CreateResourceServerRequest$Name": "

A friendly name for the resource server.

", + "ResourceServerType$Name": "

The name of the resource server.

", + "UpdateResourceServerRequest$Name": "

The name of the resource server.

" + } + }, + "ResourceServerScopeDescriptionType": { + "base": null, + "refs": { + "ResourceServerScopeType$ScopeDescription": "

A description of the scope.

" + } + }, + "ResourceServerScopeListType": { + "base": null, + "refs": { + "CreateResourceServerRequest$Scopes": "

A list of scopes. Each scope is map, where the keys are name and description.

", + "ResourceServerType$Scopes": "

A list of scopes that are defined for the resource server.

", + "UpdateResourceServerRequest$Scopes": "

The scope values to be set for the resource server.

" + } + }, + "ResourceServerScopeNameType": { + "base": null, + "refs": { + "ResourceServerScopeType$ScopeName": "

The name of the scope.

" + } + }, + "ResourceServerScopeType": { + "base": "

A resource server scope.

", + "refs": { + "ResourceServerScopeListType$member": null + } + }, + "ResourceServerType": { + "base": "

A container for information about a resource server for a user pool.

", + "refs": { + "CreateResourceServerResponse$ResourceServer": "

The newly created resource server.

", + "DescribeResourceServerResponse$ResourceServer": "

The resource server.

", + "ResourceServersListType$member": null, + "UpdateResourceServerResponse$ResourceServer": "

The resource server.

" + } + }, + "ResourceServersListType": { + "base": null, + "refs": { + "ListResourceServersResponse$ResourceServers": "

The resource servers.

" + } + }, "RespondToAuthChallengeRequest": { "base": "

The request to respond to an authentication challenge.

", "refs": { @@ -1586,12 +2124,45 @@ "refs": { } }, + "RiskConfigurationType": { + "base": "

The risk configuration type.

", + "refs": { + "DescribeRiskConfigurationResponse$RiskConfiguration": "

The risk configuration.

", + "SetRiskConfigurationResponse$RiskConfiguration": "

The risk configuration.

" + } + }, + "RiskDecisionType": { + "base": null, + "refs": { + "EventRiskType$RiskDecision": "

The risk decision.

" + } + }, + "RiskExceptionConfigurationType": { + "base": "

The type of the configuration to override the risk decision.

", + "refs": { + "RiskConfigurationType$RiskExceptionConfiguration": "

The configuration to override the risk decision.

", + "SetRiskConfigurationRequest$RiskExceptionConfiguration": "

The configuration to override the risk decision.

" + } + }, + "RiskLevelType": { + "base": null, + "refs": { + "EventRiskType$RiskLevel": "

The risk level.

" + } + }, "S3BucketType": { "base": null, "refs": { "DomainDescriptionType$S3Bucket": "

The S3 bucket where the static files for this domain are stored.

" } }, + "SMSMfaSettingsType": { + "base": "

The SMS multi-factor authentication (MFA) settings type.

", + "refs": { + "AdminSetUserMFAPreferenceRequest$SMSMfaSettings": "

The SMS text message MFA settings.

", + "SetUserMFAPreferenceRequest$SMSMfaSettings": "

The SMS text message multi-factor authentication (MFA) settings.

" + } + }, "SchemaAttributeType": { "base": "

Contains information about the schema attribute.

", "refs": { @@ -1639,7 +2210,13 @@ "SearchedAttributeNamesListType": { "base": null, "refs": { - "ListUsersRequest$AttributesToGet": "

An array of strings, where each string is the name of a user attribute to be returned for each user in the search results. If the array is empty, all attributes are returned.

" + "ListUsersRequest$AttributesToGet": "

An array of strings, where each string is the name of a user attribute to be returned for each user in the search results. If the array is null, all attributes are returned.

" + } + }, + "SecretCodeType": { + "base": null, + "refs": { + "AssociateSoftwareTokenResponse$SecretCode": "

A unique generated shared secret code that is used in the TOTP algorithm to generate a one time code.

" } }, "SecretHashType": { @@ -1657,10 +2234,54 @@ "refs": { "AdminInitiateAuthResponse$Session": "

The session which should be passed both ways in challenge-response calls to the service. If AdminInitiateAuth or AdminRespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next AdminRespondToAuthChallenge API call.

", "AdminRespondToAuthChallengeRequest$Session": "

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

", - "AdminRespondToAuthChallengeResponse$Session": "

The session which should be passed both ways in challenge-response calls to the service. If the InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

", - "InitiateAuthResponse$Session": "

The session which should be passed both ways in challenge-response calls to the service. If the InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

", + "AdminRespondToAuthChallengeResponse$Session": "

The session which should be passed both ways in challenge-response calls to the service. If the or API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

", + "AssociateSoftwareTokenRequest$Session": "

The session which should be passed both ways in challenge-response calls to the service. This allows authentication of the user as part of the MFA setup process.

", + "AssociateSoftwareTokenResponse$Session": "

The session which should be passed both ways in challenge-response calls to the service. This allows authentication of the user as part of the MFA setup process.

", + "InitiateAuthResponse$Session": "

The session which should be passed both ways in challenge-response calls to the service. If the or API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

", "RespondToAuthChallengeRequest$Session": "

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

", - "RespondToAuthChallengeResponse$Session": "

The session which should be passed both ways in challenge-response calls to the service. If the InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

" + "RespondToAuthChallengeResponse$Session": "

The session which should be passed both ways in challenge-response calls to the service. If the or API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

", + "VerifySoftwareTokenRequest$Session": "

The session which should be passed both ways in challenge-response calls to the service.

", + "VerifySoftwareTokenResponse$Session": "

The session which should be passed both ways in challenge-response calls to the service.

" + } + }, + "SetRiskConfigurationRequest": { + "base": null, + "refs": { + } + }, + "SetRiskConfigurationResponse": { + "base": null, + "refs": { + } + }, + "SetUICustomizationRequest": { + "base": null, + "refs": { + } + }, + "SetUICustomizationResponse": { + "base": null, + "refs": { + } + }, + "SetUserMFAPreferenceRequest": { + "base": null, + "refs": { + } + }, + "SetUserMFAPreferenceResponse": { + "base": null, + "refs": { + } + }, + "SetUserPoolMfaConfigRequest": { + "base": null, + "refs": { + } + }, + "SetUserPoolMfaConfigResponse": { + "base": null, + "refs": { } }, "SetUserSettingsRequest": { @@ -1683,24 +2304,67 @@ "refs": { } }, + "SkippedIPRangeListType": { + "base": null, + "refs": { + "RiskExceptionConfigurationType$SkippedIPRangeList": "

Risk detection is not performed on the IP addresses in the range list. The IP range is in CIDR notation.

" + } + }, "SmsConfigurationType": { "base": "

The SMS configuration type.

", "refs": { "CreateUserPoolRequest$SmsConfiguration": "

The SMS configuration.

", + "SmsMfaConfigType$SmsConfiguration": "

The SMS configuration.

", "UpdateUserPoolRequest$SmsConfiguration": "

SMS configuration.

", "UserPoolType$SmsConfiguration": "

The SMS configuration.

" } }, + "SmsMfaConfigType": { + "base": "

The SMS text message multi-factor authentication (MFA) configuration type.

", + "refs": { + "GetUserPoolMfaConfigResponse$SmsMfaConfiguration": "

The SMS text message multi-factor (MFA) configuration.

", + "SetUserPoolMfaConfigRequest$SmsMfaConfiguration": "

The SMS text message MFA configuration.

", + "SetUserPoolMfaConfigResponse$SmsMfaConfiguration": "

The SMS text message MFA configuration.

" + } + }, "SmsVerificationMessageType": { "base": null, "refs": { "CreateUserPoolRequest$SmsVerificationMessage": "

A string representing the SMS verification message.

", "CreateUserPoolRequest$SmsAuthenticationMessage": "

A string representing the SMS authentication message.

", "MessageTemplateType$SMSMessage": "

The message template for SMS messages.

", + "SmsMfaConfigType$SmsAuthenticationMessage": "

The SMS authentication message.

", "UpdateUserPoolRequest$SmsVerificationMessage": "

A container with information about the SMS verification message.

", "UpdateUserPoolRequest$SmsAuthenticationMessage": "

The contents of the SMS authentication message.

", "UserPoolType$SmsVerificationMessage": "

The contents of the SMS verification message.

", - "UserPoolType$SmsAuthenticationMessage": "

The contents of the SMS authentication message.

" + "UserPoolType$SmsAuthenticationMessage": "

The contents of the SMS authentication message.

", + "VerificationMessageTemplateType$SmsMessage": "

The SMS message template.

" + } + }, + "SoftwareTokenMFANotFoundException": { + "base": "

This exception is thrown when the software token TOTP multi-factor authentication (MFA) is not enabled for the user pool.

", + "refs": { + } + }, + "SoftwareTokenMFAUserCodeType": { + "base": null, + "refs": { + "VerifySoftwareTokenRequest$UserCode": "

The one time password computed using the secret code returned by

" + } + }, + "SoftwareTokenMfaConfigType": { + "base": "

The type used for enabling software token MFA at the user pool level.

", + "refs": { + "GetUserPoolMfaConfigResponse$SoftwareTokenMfaConfiguration": "

The software token multi-factor (MFA) configuration.

", + "SetUserPoolMfaConfigRequest$SoftwareTokenMfaConfiguration": "

The software token MFA configuration.

", + "SetUserPoolMfaConfigResponse$SoftwareTokenMfaConfiguration": "

The software token MFA configuration.

" + } + }, + "SoftwareTokenMfaSettingsType": { + "base": "

The type used for enabling software token MFA at the user level.

", + "refs": { + "AdminSetUserMFAPreferenceRequest$SoftwareTokenMfaSettings": "

The time-based one-time password software token MFA settings.

", + "SetUserMFAPreferenceRequest$SoftwareTokenMfaSettings": "

The time-based one-time password software token MFA settings.

" } }, "StartUserImportJobRequest": { @@ -1731,7 +2395,7 @@ } }, "StringAttributeConstraintsType": { - "base": "

The type of constraints associated with an attribute of the string type.

", + "base": "

The constraints associated with a string attribute.

", "refs": { "SchemaAttributeType$StringAttributeConstraints": "

Specifies the constraints for an attribute of the string type.

" } @@ -1739,10 +2403,17 @@ "StringType": { "base": null, "refs": { + "AdminDisableProviderForUserRequest$UserPoolId": "

The user pool ID for the user pool.

", + "AdminGetUserResponse$PreferredMfaSetting": null, + "AdminLinkProviderForUserRequest$UserPoolId": "

The user pool ID for the user pool.

", + "AnalyticsConfigurationType$ExternalId": "

The external ID.

", + "AnalyticsMetadataType$AnalyticsEndpointId": "

The endpoint ID.

", "AttributeMappingType$value": null, + "AuthEventType$EventId": "

The event ID.

", "AuthParametersType$key": null, "AuthParametersType$value": null, - "AuthenticationResultType$TokenType": "

The token type of the authentication result.

", + "AuthenticationResultType$TokenType": "

The token type.

", + "BlockedIPRangeListType$member": null, "ChallengeParametersType$key": null, "ChallengeParametersType$value": null, "ChallengeResponsesType$key": null, @@ -1750,22 +2421,43 @@ "ClientMetadataType$key": null, "ClientMetadataType$value": null, "CodeDeliveryDetailsType$Destination": "

The destination for the code delivery details.

", + "ContextDataType$IpAddress": "

Source IP address of your user.

", + "ContextDataType$ServerName": "

Your server endpoint where this API is invoked.

", + "ContextDataType$ServerPath": "

Your server path where this API is invoked.

", + "ContextDataType$EncodedData": "

Encoded data containing device fingerprinting details, collected using the Amazon Cognito context data collection library.

", "DeviceSecretVerifierConfigType$PasswordVerifier": "

The password verifier.

", "DeviceSecretVerifierConfigType$Salt": "

The salt.

", + "EventContextDataType$IpAddress": "

The user's IP address.

", + "EventContextDataType$DeviceName": "

The user's device name.

", + "EventContextDataType$Timezone": "

The user's time zone.

", + "EventContextDataType$City": "

The user's city.

", + "EventContextDataType$Country": "

The user's country.

", + "EventFeedbackType$Provider": "

The provider.

", + "GetUserResponse$PreferredMfaSetting": null, + "HttpHeader$headerName": "

The header name

", + "HttpHeader$headerValue": "

The header value.

", "ListOfStringTypes$member": null, "NewDeviceMetadataType$DeviceGroupKey": "

The device group key.

", + "NotifyConfigurationType$From": "

The email address that is sending the email. It must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES.

", + "NotifyConfigurationType$ReplyTo": "

The destination to which the receiver of an email should reply to.

", "NumberAttributeConstraintsType$MinValue": "

The minimum value of an attribute that is of the number data type.

", "NumberAttributeConstraintsType$MaxValue": "

The maximum value of an attribute that is of the number data type.

", "ProviderDetailsType$key": null, "ProviderDetailsType$value": null, + "ProviderUserIdentifierType$ProviderAttributeName": "

The name of the provider attribute to link to, for example, NameID.

", + "ProviderUserIdentifierType$ProviderAttributeValue": "

The value of the provider attribute to link to, for example, xxxxx_account.

", "SignUpResponse$UserSub": "

The UUID of the authenticated user. This is not the same as username.

", + "SkippedIPRangeListType$member": null, "SmsConfigurationType$ExternalId": "

The external ID.

", - "StringAttributeConstraintsType$MinLength": "

The minimum length of an attribute value of the string type.

", - "StringAttributeConstraintsType$MaxLength": "

The maximum length of an attribute value of the string type.

", + "StringAttributeConstraintsType$MinLength": "

The minimum length.

", + "StringAttributeConstraintsType$MaxLength": "

The maximum length.

", + "UserContextDataType$EncodedData": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

", + "UserMFASettingListType$member": null, "UserPoolTagsType$key": null, "UserPoolTagsType$value": null, "UserPoolType$SmsConfigurationFailure": "

The reason why the SMS configuration cannot send the messages to your users.

", - "UserPoolType$EmailConfigurationFailure": "

The reason why the email configuration cannot send the messages to your users.

" + "UserPoolType$EmailConfigurationFailure": "

The reason why the email configuration cannot send the messages to your users.

", + "VerifySoftwareTokenRequest$FriendlyDeviceName": "

The friendly device name.

" } }, "SupportedIdentityProvidersListType": { @@ -1779,10 +2471,11 @@ "TokenModelType": { "base": null, "refs": { - "AuthenticationResultType$AccessToken": "

The access token of the authentication result.

", - "AuthenticationResultType$RefreshToken": "

The refresh token of the authentication result.

", - "AuthenticationResultType$IdToken": "

The ID token of the authentication result.

", - "ChangePasswordRequest$AccessToken": "

The access token in the change password request.

", + "AssociateSoftwareTokenRequest$AccessToken": "

The access token.

", + "AuthenticationResultType$AccessToken": "

The access token.

", + "AuthenticationResultType$RefreshToken": "

The refresh token.

", + "AuthenticationResultType$IdToken": "

The ID token.

", + "ChangePasswordRequest$AccessToken": "

The access token.

", "ConfirmDeviceRequest$AccessToken": "

The access token.

", "DeleteUserAttributesRequest$AccessToken": "

The access token used in the request to delete user attributes.

", "DeleteUserRequest$AccessToken": "

The access token from a request to delete a user.

", @@ -1792,9 +2485,12 @@ "GetUserRequest$AccessToken": "

The access token returned by the server response to get information about the user.

", "GlobalSignOutRequest$AccessToken": "

The access token.

", "ListDevicesRequest$AccessToken": "

The access tokens for the request to list devices.

", + "SetUserMFAPreferenceRequest$AccessToken": "

The access token.

", "SetUserSettingsRequest$AccessToken": "

The access token for the set user settings request.

", + "UpdateAuthEventFeedbackRequest$FeedbackToken": "

The feedback token.

", "UpdateDeviceStatusRequest$AccessToken": "

The access token.

", "UpdateUserAttributesRequest$AccessToken": "

The access token for the request to update user attributes.

", + "VerifySoftwareTokenRequest$AccessToken": "

The access token.

", "VerifyUserAttributeRequest$AccessToken": "

Represents the access token of the request to verify user attributes.

" } }, @@ -1808,6 +2504,13 @@ "refs": { } }, + "UICustomizationType": { + "base": "

A container for the UI customization information for a user pool's built-in app UI.

", + "refs": { + "GetUICustomizationResponse$UICustomization": "

The UI customization information.

", + "SetUICustomizationResponse$UICustomization": "

The UI customization information.

" + } + }, "UnexpectedLambdaException": { "base": "

This exception is thrown when the Amazon Cognito service encounters an unexpected exception with the AWS Lambda service.

", "refs": { @@ -1823,6 +2526,16 @@ "refs": { } }, + "UpdateAuthEventFeedbackRequest": { + "base": null, + "refs": { + } + }, + "UpdateAuthEventFeedbackResponse": { + "base": null, + "refs": { + } + }, "UpdateDeviceStatusRequest": { "base": "

Represents the request to update the device status.

", "refs": { @@ -1853,6 +2566,16 @@ "refs": { } }, + "UpdateResourceServerRequest": { + "base": null, + "refs": { + } + }, + "UpdateResourceServerResponse": { + "base": null, + "refs": { + } + }, "UpdateUserAttributesRequest": { "base": "

Represents the request to update user attributes.

", "refs": { @@ -1883,10 +2606,22 @@ "refs": { } }, + "UserContextDataType": { + "base": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

", + "refs": { + "ConfirmForgotPasswordRequest$UserContextData": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

", + "ConfirmSignUpRequest$UserContextData": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

", + "ForgotPasswordRequest$UserContextData": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

", + "InitiateAuthRequest$UserContextData": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

", + "ResendConfirmationCodeRequest$UserContextData": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

", + "RespondToAuthChallengeRequest$UserContextData": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

", + "SignUpRequest$UserContextData": "

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + } + }, "UserFilterType": { "base": null, "refs": { - "ListUsersRequest$Filter": "

A filter string of the form \"AttributeName Filter-Type \"AttributeValue\"\". Quotation marks within the filter string must be escaped using the backslash (\\) character. For example, \"family_name = \\\"Reddy\\\"\".

If the filter string is empty, ListUsers returns all users in the user pool.

You can only search for the following standard attributes:

Custom attributes are not searchable.

For more information, see Searching for Users Using the ListUsers API and Examples of Using the ListUsers API in the Amazon Cognito Developer Guide.

" + "ListUsersRequest$Filter": "

A filter string of the form \"AttributeName Filter-Type \"AttributeValue\"\". Quotation marks within the filter string must be escaped using the backslash (\\) character. For example, \"family_name = \\\"Reddy\\\"\".

If the filter string is empty, ListUsers returns all users in the user pool.

You can only search for the following standard attributes:

Custom attributes are not searchable.

For more information, see Searching for Users Using the ListUsers API and Examples of Using the ListUsers API in the Amazon Cognito Developer Guide.

" } }, "UserImportInProgressException": { @@ -1937,6 +2672,13 @@ "refs": { } }, + "UserMFASettingListType": { + "base": null, + "refs": { + "AdminGetUserResponse$UserMFASettingList": null, + "GetUserResponse$UserMFASettingList": null + } + }, "UserNotConfirmedException": { "base": "

This exception is thrown when a user is not confirmed successfully.

", "refs": { @@ -1947,6 +2689,19 @@ "refs": { } }, + "UserPoolAddOnNotEnabledException": { + "base": "

This exception is thrown when user pool add-ons are not enabled.

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

The user pool add-ons type.

", + "refs": { + "CreateUserPoolRequest$UserPoolAddOns": "

Used to enable advanced security risk detection. Set the key AdvancedSecurityMode to the value \"AUDIT\".

", + "UpdateUserPoolRequest$UserPoolAddOns": "

Used to enable advanced security risk detection. Set the key AdvancedSecurityMode to the value \"AUDIT\".

", + "UserPoolType$UserPoolAddOns": "

The user pool add-ons.

" + } + }, "UserPoolClientDescription": { "base": "

The description of the user pool client.

", "refs": { @@ -1960,7 +2715,7 @@ } }, "UserPoolClientType": { - "base": "

A user pool of the client type.

", + "base": "

Contains information about a user pool client.

", "refs": { "CreateUserPoolClientResponse$UserPoolClient": "

The user pool client that was just created.

", "DescribeUserPoolClientResponse$UserPoolClient": "

The user pool client from a server response to describe the user pool client.

", @@ -1990,24 +2745,31 @@ "AdminInitiateAuthRequest$UserPoolId": "

The ID of the Amazon Cognito user pool.

", "AdminListDevicesRequest$UserPoolId": "

The user pool ID.

", "AdminListGroupsForUserRequest$UserPoolId": "

The user pool ID for the user pool.

", + "AdminListUserAuthEventsRequest$UserPoolId": "

The user pool ID.

", "AdminRemoveUserFromGroupRequest$UserPoolId": "

The user pool ID for the user pool.

", "AdminResetUserPasswordRequest$UserPoolId": "

The user pool ID for the user pool where you want to reset the user's password.

", "AdminRespondToAuthChallengeRequest$UserPoolId": "

The ID of the Amazon Cognito user pool.

", + "AdminSetUserMFAPreferenceRequest$UserPoolId": "

The user pool ID.

", "AdminSetUserSettingsRequest$UserPoolId": "

The user pool ID for the user pool where you want to set the user's settings, such as MFA options.

", + "AdminUpdateAuthEventFeedbackRequest$UserPoolId": "

The user pool ID.

", "AdminUpdateDeviceStatusRequest$UserPoolId": "

The user pool ID.

", "AdminUpdateUserAttributesRequest$UserPoolId": "

The user pool ID for the user pool where you want to update user attributes.

", "AdminUserGlobalSignOutRequest$UserPoolId": "

The user pool ID.

", "CreateGroupRequest$UserPoolId": "

The user pool ID for the user pool.

", "CreateIdentityProviderRequest$UserPoolId": "

The user pool ID.

", + "CreateResourceServerRequest$UserPoolId": "

The user pool ID for the user pool.

", "CreateUserImportJobRequest$UserPoolId": "

The user pool ID for the user pool that the users are being imported into.

", "CreateUserPoolClientRequest$UserPoolId": "

The user pool ID for the user pool where you want to create a user pool client.

", "CreateUserPoolDomainRequest$UserPoolId": "

The user pool ID.

", "DeleteGroupRequest$UserPoolId": "

The user pool ID for the user pool.

", "DeleteIdentityProviderRequest$UserPoolId": "

The user pool ID.

", + "DeleteResourceServerRequest$UserPoolId": "

The user pool ID for the user pool that hosts the resource server.

", "DeleteUserPoolClientRequest$UserPoolId": "

The user pool ID for the user pool where you want to delete the client.

", "DeleteUserPoolDomainRequest$UserPoolId": "

The user pool ID.

", "DeleteUserPoolRequest$UserPoolId": "

The user pool ID for the user pool you want to delete.

", "DescribeIdentityProviderRequest$UserPoolId": "

The user pool ID.

", + "DescribeResourceServerRequest$UserPoolId": "

The user pool ID for the user pool that hosts the resource server.

", + "DescribeRiskConfigurationRequest$UserPoolId": "

The user pool ID.

", "DescribeUserImportJobRequest$UserPoolId": "

The user pool ID for the user pool that the users are being imported into.

", "DescribeUserPoolClientRequest$UserPoolId": "

The user pool ID for the user pool you want to describe.

", "DescribeUserPoolRequest$UserPoolId": "

The user pool ID for the user pool you want to describe.

", @@ -2016,18 +2778,29 @@ "GetCSVHeaderResponse$UserPoolId": "

The user pool ID for the user pool that the users are to be imported into.

", "GetGroupRequest$UserPoolId": "

The user pool ID for the user pool.

", "GetIdentityProviderByIdentifierRequest$UserPoolId": "

The user pool ID.

", + "GetUICustomizationRequest$UserPoolId": "

The user pool ID for the user pool.

", + "GetUserPoolMfaConfigRequest$UserPoolId": "

The user pool ID.

", "GroupType$UserPoolId": "

The user pool ID for the user pool.

", "IdentityProviderType$UserPoolId": "

The user pool ID.

", "ListGroupsRequest$UserPoolId": "

The user pool ID for the user pool.

", "ListIdentityProvidersRequest$UserPoolId": "

The user pool ID.

", + "ListResourceServersRequest$UserPoolId": "

The user pool ID for the user pool.

", "ListUserImportJobsRequest$UserPoolId": "

The user pool ID for the user pool that the users are being imported into.

", "ListUserPoolClientsRequest$UserPoolId": "

The user pool ID for the user pool where you want to list user pool clients.

", "ListUsersInGroupRequest$UserPoolId": "

The user pool ID for the user pool.

", "ListUsersRequest$UserPoolId": "

The user pool ID for the user pool on which the search should be performed.

", + "ResourceServerType$UserPoolId": "

The user pool ID for the user pool that hosts the resource server.

", + "RiskConfigurationType$UserPoolId": "

The user pool ID.

", + "SetRiskConfigurationRequest$UserPoolId": "

The user pool ID.

", + "SetUICustomizationRequest$UserPoolId": "

The user pool ID for the user pool.

", + "SetUserPoolMfaConfigRequest$UserPoolId": "

The user pool ID.

", "StartUserImportJobRequest$UserPoolId": "

The user pool ID for the user pool that the users are being imported into.

", "StopUserImportJobRequest$UserPoolId": "

The user pool ID for the user pool that the users are being imported into.

", + "UICustomizationType$UserPoolId": "

The user pool ID for the user pool.

", + "UpdateAuthEventFeedbackRequest$UserPoolId": "

The user pool ID.

", "UpdateGroupRequest$UserPoolId": "

The user pool ID for the user pool.

", "UpdateIdentityProviderRequest$UserPoolId": "

The user pool ID.

", + "UpdateResourceServerRequest$UserPoolId": "

The user pool ID for the user pool.

", "UpdateUserPoolClientRequest$UserPoolId": "

The user pool ID for the user pool where you want to update the user pool client.

", "UpdateUserPoolRequest$UserPoolId": "

The user pool ID for the user pool you want to update.

", "UserImportJobType$UserPoolId": "

The user pool ID for the user pool that the users are being imported into.

", @@ -2047,6 +2820,9 @@ "base": null, "refs": { "CreateUserPoolRequest$MfaConfiguration": "

Specifies MFA configuration details.

", + "GetUserPoolMfaConfigResponse$MfaConfiguration": "

The multi-factor (MFA) configuration.

", + "SetUserPoolMfaConfigRequest$MfaConfiguration": "

The MFA configuration.

", + "SetUserPoolMfaConfigResponse$MfaConfiguration": "

The MFA configuration.

", "UpdateUserPoolRequest$MfaConfiguration": "

Can be one of the following values:

", "UserPoolType$MfaConfiguration": "

Can be one of the following values:

" } @@ -2060,11 +2836,11 @@ } }, "UserPoolPolicyType": { - "base": "

The type of policy in a user pool.

", + "base": "

The policy associated with a user pool.

", "refs": { "CreateUserPoolRequest$Policies": "

The policies associated with the new user pool.

", "UpdateUserPoolRequest$Policies": "

A container with the policies you wish to update in a user pool.

", - "UserPoolType$Policies": "

A container for the policies associated with a user pool.

" + "UserPoolType$Policies": "

The policies associated with the user pool.

" } }, "UserPoolTaggingException": { @@ -2081,7 +2857,7 @@ } }, "UserPoolType": { - "base": "

A container for information about the user pool type.

", + "base": "

A container for information about the user pool.

", "refs": { "CreateUserPoolResponse$UserPool": "

A container for the user pool details.

", "DescribeUserPoolResponse$UserPool": "

The container of metadata returned by the server to describe the pool.

" @@ -2097,10 +2873,23 @@ "UserType": { "base": "

The user type.

", "refs": { - "AdminCreateUserResponse$User": "

The user returned in the request to create a new user.

", + "AdminCreateUserResponse$User": "

The newly created user.

", "UsersListType$member": null } }, + "UsernameAttributeType": { + "base": null, + "refs": { + "UsernameAttributesListType$member": null + } + }, + "UsernameAttributesListType": { + "base": null, + "refs": { + "CreateUserPoolRequest$UsernameAttributes": "

Specifies whether email addresses or phone numbers can be specified as usernames when a user signs up.

", + "UserPoolType$UsernameAttributes": "

Specifies whether email addresses or phone numbers can be specified as usernames when a user signs up.

" + } + }, "UsernameExistsException": { "base": "

This exception is thrown when Amazon Cognito encounters a user name that already exists in the user pool.

", "refs": { @@ -2122,9 +2911,12 @@ "AdminGetUserResponse$Username": "

The user name of the user about whom you are receiving information.

", "AdminListDevicesRequest$Username": "

The user name.

", "AdminListGroupsForUserRequest$Username": "

The username for the user.

", + "AdminListUserAuthEventsRequest$Username": "

The user pool username.

", "AdminRemoveUserFromGroupRequest$Username": "

The username for the user.

", "AdminResetUserPasswordRequest$Username": "

The user name of the user whose password you wish to reset.

", + "AdminSetUserMFAPreferenceRequest$Username": "

The user pool username.

", "AdminSetUserSettingsRequest$Username": "

The user name of the user for whom you wish to set user settings.

", + "AdminUpdateAuthEventFeedbackRequest$Username": "

The user pool username.

", "AdminUpdateDeviceStatusRequest$Username": "

The user name.

", "AdminUpdateUserAttributesRequest$Username": "

The user name of the user for whom you want to update user attributes.

", "AdminUserGlobalSignOutRequest$Username": "

The user name.

", @@ -2134,6 +2926,7 @@ "GetUserResponse$Username": "

The user name of the user you wish to retrieve from the get user request.

", "ResendConfirmationCodeRequest$Username": "

The user name of the user to whom you wish to resend a confirmation code.

", "SignUpRequest$Username": "

The user name of the user you wish to register.

", + "UpdateAuthEventFeedbackRequest$Username": "

The user pool username.

", "UserType$Username": "

The user name of the user you wish to describe.

" } }, @@ -2144,6 +2937,14 @@ "ListUsersResponse$Users": "

The users returned in the request to list users.

" } }, + "VerificationMessageTemplateType": { + "base": "

The template for verification messages.

", + "refs": { + "CreateUserPoolRequest$VerificationMessageTemplate": "

The template for the verification message that the user sees when the app requests permission to access the user's information.

", + "UpdateUserPoolRequest$VerificationMessageTemplate": "

The template for verification messages.

", + "UserPoolType$VerificationMessageTemplate": "

The template for verification messages.

" + } + }, "VerifiedAttributeType": { "base": null, "refs": { @@ -2158,6 +2959,22 @@ "UserPoolType$AutoVerifiedAttributes": "

Specifies the attributes that are auto-verified in a user pool.

" } }, + "VerifySoftwareTokenRequest": { + "base": null, + "refs": { + } + }, + "VerifySoftwareTokenResponse": { + "base": null, + "refs": { + } + }, + "VerifySoftwareTokenResponseType": { + "base": null, + "refs": { + "VerifySoftwareTokenResponse$Status": "

The status of the verify software token.

" + } + }, "VerifyUserAttributeRequest": { "base": "

Represents the request to verify user attributes.

", "refs": { diff --git a/models/apis/comprehend/2017-11-27/api-2.json b/models/apis/comprehend/2017-11-27/api-2.json new file mode 100644 index 00000000000..2d06ef2c723 --- /dev/null +++ b/models/apis/comprehend/2017-11-27/api-2.json @@ -0,0 +1,685 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-11-27", + "endpointPrefix":"comprehend", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"Amazon Comprehend", + "serviceId":"Comprehend", + "signatureVersion":"v4", + "signingName":"comprehend", + "targetPrefix":"Comprehend_20171127", + "uid":"comprehend-2017-11-27" + }, + "operations":{ + "BatchDetectDominantLanguage":{ + "name":"BatchDetectDominantLanguage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDetectDominantLanguageRequest"}, + "output":{"shape":"BatchDetectDominantLanguageResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"BatchSizeLimitExceededException"}, + {"shape":"InternalServerException"} + ] + }, + "BatchDetectEntities":{ + "name":"BatchDetectEntities", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDetectEntitiesRequest"}, + "output":{"shape":"BatchDetectEntitiesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"UnsupportedLanguageException"}, + {"shape":"BatchSizeLimitExceededException"}, + {"shape":"InternalServerException"} + ] + }, + "BatchDetectKeyPhrases":{ + "name":"BatchDetectKeyPhrases", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDetectKeyPhrasesRequest"}, + "output":{"shape":"BatchDetectKeyPhrasesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"UnsupportedLanguageException"}, + {"shape":"BatchSizeLimitExceededException"}, + {"shape":"InternalServerException"} + ] + }, + "BatchDetectSentiment":{ + "name":"BatchDetectSentiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDetectSentimentRequest"}, + "output":{"shape":"BatchDetectSentimentResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"UnsupportedLanguageException"}, + {"shape":"BatchSizeLimitExceededException"}, + {"shape":"InternalServerException"} + ] + }, + "DescribeTopicsDetectionJob":{ + "name":"DescribeTopicsDetectionJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTopicsDetectionJobRequest"}, + "output":{"shape":"DescribeTopicsDetectionJobResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"JobNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ] + }, + "DetectDominantLanguage":{ + "name":"DetectDominantLanguage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetectDominantLanguageRequest"}, + "output":{"shape":"DetectDominantLanguageResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"InternalServerException"} + ] + }, + "DetectEntities":{ + "name":"DetectEntities", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetectEntitiesRequest"}, + "output":{"shape":"DetectEntitiesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"UnsupportedLanguageException"}, + {"shape":"InternalServerException"} + ] + }, + "DetectKeyPhrases":{ + "name":"DetectKeyPhrases", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetectKeyPhrasesRequest"}, + "output":{"shape":"DetectKeyPhrasesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"UnsupportedLanguageException"}, + {"shape":"InternalServerException"} + ] + }, + "DetectSentiment":{ + "name":"DetectSentiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetectSentimentRequest"}, + "output":{"shape":"DetectSentimentResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"UnsupportedLanguageException"}, + {"shape":"InternalServerException"} + ] + }, + "ListTopicsDetectionJobs":{ + "name":"ListTopicsDetectionJobs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTopicsDetectionJobsRequest"}, + "output":{"shape":"ListTopicsDetectionJobsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidFilterException"}, + {"shape":"InternalServerException"} + ] + }, + "StartTopicsDetectionJob":{ + "name":"StartTopicsDetectionJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartTopicsDetectionJobRequest"}, + "output":{"shape":"StartTopicsDetectionJobResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ] + } + }, + "shapes":{ + "AnyLengthString":{"type":"string"}, + "BatchDetectDominantLanguageItemResult":{ + "type":"structure", + "members":{ + "Index":{"shape":"Integer"}, + "Languages":{"shape":"ListOfDominantLanguages"} + } + }, + "BatchDetectDominantLanguageRequest":{ + "type":"structure", + "required":["TextList"], + "members":{ + "TextList":{"shape":"StringList"} + } + }, + "BatchDetectDominantLanguageResponse":{ + "type":"structure", + "required":[ + "ResultList", + "ErrorList" + ], + "members":{ + "ResultList":{"shape":"ListOfDetectDominantLanguageResult"}, + "ErrorList":{"shape":"BatchItemErrorList"} + } + }, + "BatchDetectEntitiesItemResult":{ + "type":"structure", + "members":{ + "Index":{"shape":"Integer"}, + "Entities":{"shape":"ListOfEntities"} + } + }, + "BatchDetectEntitiesRequest":{ + "type":"structure", + "required":[ + "TextList", + "LanguageCode" + ], + "members":{ + "TextList":{"shape":"StringList"}, + "LanguageCode":{"shape":"String"} + } + }, + "BatchDetectEntitiesResponse":{ + "type":"structure", + "required":[ + "ResultList", + "ErrorList" + ], + "members":{ + "ResultList":{"shape":"ListOfDetectEntitiesResult"}, + "ErrorList":{"shape":"BatchItemErrorList"} + } + }, + "BatchDetectKeyPhrasesItemResult":{ + "type":"structure", + "members":{ + "Index":{"shape":"Integer"}, + "KeyPhrases":{"shape":"ListOfKeyPhrases"} + } + }, + "BatchDetectKeyPhrasesRequest":{ + "type":"structure", + "required":[ + "TextList", + "LanguageCode" + ], + "members":{ + "TextList":{"shape":"StringList"}, + "LanguageCode":{"shape":"String"} + } + }, + "BatchDetectKeyPhrasesResponse":{ + "type":"structure", + "required":[ + "ResultList", + "ErrorList" + ], + "members":{ + "ResultList":{"shape":"ListOfDetectKeyPhrasesResult"}, + "ErrorList":{"shape":"BatchItemErrorList"} + } + }, + "BatchDetectSentimentItemResult":{ + "type":"structure", + "members":{ + "Index":{"shape":"Integer"}, + "Sentiment":{"shape":"SentimentType"}, + "SentimentScore":{"shape":"SentimentScore"} + } + }, + "BatchDetectSentimentRequest":{ + "type":"structure", + "required":[ + "TextList", + "LanguageCode" + ], + "members":{ + "TextList":{"shape":"StringList"}, + "LanguageCode":{"shape":"String"} + } + }, + "BatchDetectSentimentResponse":{ + "type":"structure", + "required":[ + "ResultList", + "ErrorList" + ], + "members":{ + "ResultList":{"shape":"ListOfDetectSentimentResult"}, + "ErrorList":{"shape":"BatchItemErrorList"} + } + }, + "BatchItemError":{ + "type":"structure", + "members":{ + "Index":{"shape":"Integer"}, + "ErrorCode":{"shape":"String"}, + "ErrorMessage":{"shape":"String"} + } + }, + "BatchItemErrorList":{ + "type":"list", + "member":{"shape":"BatchItemError"} + }, + "BatchSizeLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "ClientRequestTokenString":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[a-zA-Z0-9-]+$" + }, + "DescribeTopicsDetectionJobRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{"shape":"JobId"} + } + }, + "DescribeTopicsDetectionJobResponse":{ + "type":"structure", + "members":{ + "TopicsDetectionJobProperties":{"shape":"TopicsDetectionJobProperties"} + } + }, + "DetectDominantLanguageRequest":{ + "type":"structure", + "required":["Text"], + "members":{ + "Text":{"shape":"String"} + } + }, + "DetectDominantLanguageResponse":{ + "type":"structure", + "members":{ + "Languages":{"shape":"ListOfDominantLanguages"} + } + }, + "DetectEntitiesRequest":{ + "type":"structure", + "required":[ + "Text", + "LanguageCode" + ], + "members":{ + "Text":{"shape":"String"}, + "LanguageCode":{"shape":"LanguageCode"} + } + }, + "DetectEntitiesResponse":{ + "type":"structure", + "members":{ + "Entities":{"shape":"ListOfEntities"} + } + }, + "DetectKeyPhrasesRequest":{ + "type":"structure", + "required":[ + "Text", + "LanguageCode" + ], + "members":{ + "Text":{"shape":"String"}, + "LanguageCode":{"shape":"LanguageCode"} + } + }, + "DetectKeyPhrasesResponse":{ + "type":"structure", + "members":{ + "KeyPhrases":{"shape":"ListOfKeyPhrases"} + } + }, + "DetectSentimentRequest":{ + "type":"structure", + "required":[ + "Text", + "LanguageCode" + ], + "members":{ + "Text":{"shape":"String"}, + "LanguageCode":{"shape":"LanguageCode"} + } + }, + "DetectSentimentResponse":{ + "type":"structure", + "members":{ + "Sentiment":{"shape":"SentimentType"}, + "SentimentScore":{"shape":"SentimentScore"} + } + }, + "DominantLanguage":{ + "type":"structure", + "members":{ + "LanguageCode":{"shape":"String"}, + "Score":{"shape":"Float"} + } + }, + "Entity":{ + "type":"structure", + "members":{ + "Score":{"shape":"Float"}, + "Type":{"shape":"EntityType"}, + "Text":{"shape":"String"}, + "BeginOffset":{"shape":"Integer"}, + "EndOffset":{"shape":"Integer"} + } + }, + "EntityType":{ + "type":"string", + "enum":[ + "PERSON", + "LOCATION", + "ORGANIZATION", + "COMMERCIAL_ITEM", + "EVENT", + "DATE", + "QUANTITY", + "TITLE", + "OTHER" + ] + }, + "Float":{"type":"float"}, + "IamRoleArn":{ + "type":"string", + "pattern":"arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+" + }, + "InputDataConfig":{ + "type":"structure", + "required":["S3Uri"], + "members":{ + "S3Uri":{"shape":"S3Uri"}, + "InputFormat":{"shape":"InputFormat"} + } + }, + "InputFormat":{ + "type":"string", + "enum":[ + "ONE_DOC_PER_FILE", + "ONE_DOC_PER_LINE" + ] + }, + "Integer":{"type":"integer"}, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true, + "fault":true + }, + "InvalidFilterException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "InvalidRequestException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "JobId":{ + "type":"string", + "max":32, + "min":1 + }, + "JobName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$" + }, + "JobNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "JobStatus":{ + "type":"string", + "enum":[ + "SUBMITTED", + "IN_PROGRESS", + "COMPLETED", + "FAILED" + ] + }, + "KeyPhrase":{ + "type":"structure", + "members":{ + "Score":{"shape":"Float"}, + "Text":{"shape":"String"}, + "BeginOffset":{"shape":"Integer"}, + "EndOffset":{"shape":"Integer"} + } + }, + "LanguageCode":{ + "type":"string", + "enum":[ + "en", + "es" + ] + }, + "ListOfDetectDominantLanguageResult":{ + "type":"list", + "member":{"shape":"BatchDetectDominantLanguageItemResult"} + }, + "ListOfDetectEntitiesResult":{ + "type":"list", + "member":{"shape":"BatchDetectEntitiesItemResult"} + }, + "ListOfDetectKeyPhrasesResult":{ + "type":"list", + "member":{"shape":"BatchDetectKeyPhrasesItemResult"} + }, + "ListOfDetectSentimentResult":{ + "type":"list", + "member":{"shape":"BatchDetectSentimentItemResult"} + }, + "ListOfDominantLanguages":{ + "type":"list", + "member":{"shape":"DominantLanguage"} + }, + "ListOfEntities":{ + "type":"list", + "member":{"shape":"Entity"} + }, + "ListOfKeyPhrases":{ + "type":"list", + "member":{"shape":"KeyPhrase"} + }, + "ListTopicsDetectionJobsRequest":{ + "type":"structure", + "members":{ + "Filter":{"shape":"TopicsDetectionJobFilter"}, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"MaxResultsInteger"} + } + }, + "ListTopicsDetectionJobsResponse":{ + "type":"structure", + "members":{ + "TopicsDetectionJobPropertiesList":{"shape":"TopicsDetectionJobPropertiesList"}, + "NextToken":{"shape":"String"} + } + }, + "MaxResultsInteger":{ + "type":"integer", + "max":500, + "min":1 + }, + "NumberOfTopicsInteger":{ + "type":"integer", + "max":100, + "min":1 + }, + "OutputDataConfig":{ + "type":"structure", + "required":["S3Uri"], + "members":{ + "S3Uri":{"shape":"S3Uri"} + } + }, + "S3Uri":{ + "type":"string", + "max":1024, + "pattern":"s3://([^/]+)(/.*)?" + }, + "SentimentScore":{ + "type":"structure", + "members":{ + "Positive":{"shape":"Float"}, + "Negative":{"shape":"Float"}, + "Neutral":{"shape":"Float"}, + "Mixed":{"shape":"Float"} + } + }, + "SentimentType":{ + "type":"string", + "enum":[ + "POSITIVE", + "NEGATIVE", + "NEUTRAL", + "MIXED" + ] + }, + "StartTopicsDetectionJobRequest":{ + "type":"structure", + "required":[ + "InputDataConfig", + "OutputDataConfig", + "DataAccessRoleArn" + ], + "members":{ + "InputDataConfig":{"shape":"InputDataConfig"}, + "OutputDataConfig":{"shape":"OutputDataConfig"}, + "DataAccessRoleArn":{"shape":"IamRoleArn"}, + "JobName":{"shape":"JobName"}, + "NumberOfTopics":{"shape":"NumberOfTopicsInteger"}, + "ClientRequestToken":{ + "shape":"ClientRequestTokenString", + "idempotencyToken":true + } + } + }, + "StartTopicsDetectionJobResponse":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"}, + "JobStatus":{"shape":"JobStatus"} + } + }, + "String":{ + "type":"string", + "min":1 + }, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "TextSizeLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "Timestamp":{"type":"timestamp"}, + "TooManyRequestsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "TopicsDetectionJobFilter":{ + "type":"structure", + "members":{ + "JobName":{"shape":"JobName"}, + "JobStatus":{"shape":"JobStatus"}, + "SubmitTimeBefore":{"shape":"Timestamp"}, + "SubmitTimeAfter":{"shape":"Timestamp"} + } + }, + "TopicsDetectionJobProperties":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"}, + "JobName":{"shape":"JobName"}, + "JobStatus":{"shape":"JobStatus"}, + "Message":{"shape":"AnyLengthString"}, + "SubmitTime":{"shape":"Timestamp"}, + "EndTime":{"shape":"Timestamp"}, + "InputDataConfig":{"shape":"InputDataConfig"}, + "OutputDataConfig":{"shape":"OutputDataConfig"}, + "NumberOfTopics":{"shape":"Integer"} + } + }, + "TopicsDetectionJobPropertiesList":{ + "type":"list", + "member":{"shape":"TopicsDetectionJobProperties"} + }, + "UnsupportedLanguageException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + } + } +} diff --git a/models/apis/comprehend/2017-11-27/docs-2.json b/models/apis/comprehend/2017-11-27/docs-2.json new file mode 100644 index 00000000000..429c6eebd5a --- /dev/null +++ b/models/apis/comprehend/2017-11-27/docs-2.json @@ -0,0 +1,472 @@ +{ + "version": "2.0", + "service": "

Amazon Comprehend is an AWS service for gaining insight into the content of documents. Use these actions to determine the topics contained in your documents, the topics they discuss, the predominant sentiment expressed in them, the predominant language used, and more.

", + "operations": { + "BatchDetectDominantLanguage": "

Determines the dominant language of the input text for a batch of documents. For a list of languages that Amazon Comprehend can detect, see Amazon Comprehend Supported Languages.

", + "BatchDetectEntities": "

Inspects the text of a batch of documents and returns information about them. For more information about entities, see how-entities

", + "BatchDetectKeyPhrases": "

Detects the key noun phrases found in a batch of documents.

", + "BatchDetectSentiment": "

Inspects a batch of documents and returns an inference of the prevailing sentiment, POSITIVE, NEUTRAL, MIXED, or NEGATIVE, in each one.

", + "DescribeTopicsDetectionJob": "

Gets the properties associated with a topic detection job. Use this operation to get the status of a detection job.

", + "DetectDominantLanguage": "

Determines the dominant language of the input text. For a list of languages that Amazon Comprehend can detect, see Amazon Comprehend Supported Languages.

", + "DetectEntities": "

Inspects text for entities, and returns information about them. For more information, about entities, see how-entities.

", + "DetectKeyPhrases": "

Detects the key noun phrases found in the text.

", + "DetectSentiment": "

Inspects text and returns an inference of the prevailing sentiment (POSITIVE, NEUTRAL, MIXED, or NEGATIVE).

", + "ListTopicsDetectionJobs": "

Gets a list of the topic detection jobs that you have submitted.

", + "StartTopicsDetectionJob": "

Starts an asynchronous topic detection job. Use the DescribeTopicDetectionJob operation to track the status of a job.

" + }, + "shapes": { + "AnyLengthString": { + "base": null, + "refs": { + "TopicsDetectionJobProperties$Message": "

A description for the status of a job.

" + } + }, + "BatchDetectDominantLanguageItemResult": { + "base": "

The result of calling the operation. The operation returns one object for each document that is successfully processed by the operation.

", + "refs": { + "ListOfDetectDominantLanguageResult$member": null + } + }, + "BatchDetectDominantLanguageRequest": { + "base": null, + "refs": { + } + }, + "BatchDetectDominantLanguageResponse": { + "base": null, + "refs": { + } + }, + "BatchDetectEntitiesItemResult": { + "base": "

The result of calling the operation. The operation returns one object for each document that is successfully processed by the operation.

", + "refs": { + "ListOfDetectEntitiesResult$member": null + } + }, + "BatchDetectEntitiesRequest": { + "base": null, + "refs": { + } + }, + "BatchDetectEntitiesResponse": { + "base": null, + "refs": { + } + }, + "BatchDetectKeyPhrasesItemResult": { + "base": "

The result of calling the operation. The operation returns one object for each document that is successfully processed by the operation.

", + "refs": { + "ListOfDetectKeyPhrasesResult$member": null + } + }, + "BatchDetectKeyPhrasesRequest": { + "base": null, + "refs": { + } + }, + "BatchDetectKeyPhrasesResponse": { + "base": null, + "refs": { + } + }, + "BatchDetectSentimentItemResult": { + "base": "

The result of calling the operation. The operation returns one object for each document that is successfully processed by the operation.

", + "refs": { + "ListOfDetectSentimentResult$member": null + } + }, + "BatchDetectSentimentRequest": { + "base": null, + "refs": { + } + }, + "BatchDetectSentimentResponse": { + "base": null, + "refs": { + } + }, + "BatchItemError": { + "base": "

Describes an error that occurred while processing a document in a batch. The operation returns on BatchItemError object for each document that contained an error.

", + "refs": { + "BatchItemErrorList$member": null + } + }, + "BatchItemErrorList": { + "base": null, + "refs": { + "BatchDetectDominantLanguageResponse$ErrorList": "

A list containing one object for each document that contained an error. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If there are no errors in the batch, the ErrorList is empty.

", + "BatchDetectEntitiesResponse$ErrorList": "

A list containing one object for each document that contained an error. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If there are no errors in the batch, the ErrorList is empty.

", + "BatchDetectKeyPhrasesResponse$ErrorList": "

A list containing one object for each document that contained an error. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If there are no errors in the batch, the ErrorList is empty.

", + "BatchDetectSentimentResponse$ErrorList": "

A list containing one object for each document that contained an error. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If there are no errors in the batch, the ErrorList is empty.

" + } + }, + "BatchSizeLimitExceededException": { + "base": "

The number of documents in the request exceeds the limit of 25. Try your request again with fewer documents.

", + "refs": { + } + }, + "ClientRequestTokenString": { + "base": null, + "refs": { + "StartTopicsDetectionJobRequest$ClientRequestToken": "

A unique identifier for the request. If you do not set the client request token, Amazon Comprehend generates one.

" + } + }, + "DescribeTopicsDetectionJobRequest": { + "base": null, + "refs": { + } + }, + "DescribeTopicsDetectionJobResponse": { + "base": null, + "refs": { + } + }, + "DetectDominantLanguageRequest": { + "base": null, + "refs": { + } + }, + "DetectDominantLanguageResponse": { + "base": null, + "refs": { + } + }, + "DetectEntitiesRequest": { + "base": null, + "refs": { + } + }, + "DetectEntitiesResponse": { + "base": null, + "refs": { + } + }, + "DetectKeyPhrasesRequest": { + "base": null, + "refs": { + } + }, + "DetectKeyPhrasesResponse": { + "base": null, + "refs": { + } + }, + "DetectSentimentRequest": { + "base": null, + "refs": { + } + }, + "DetectSentimentResponse": { + "base": null, + "refs": { + } + }, + "DominantLanguage": { + "base": "

Returns the code for the dominant language in the input text and the level of confidence that Amazon Comprehend has in the accuracy of the detection.

", + "refs": { + "ListOfDominantLanguages$member": null + } + }, + "Entity": { + "base": "

Provides information about an entity.

", + "refs": { + "ListOfEntities$member": null + } + }, + "EntityType": { + "base": null, + "refs": { + "Entity$Type": "

The entity's type.

" + } + }, + "Float": { + "base": null, + "refs": { + "DominantLanguage$Score": "

The level of confidence that Amazon Comprehend has in the accuracy of the detection.

", + "Entity$Score": "

The level of confidence that Amazon Comprehend has in the accuracy of the detection.

", + "KeyPhrase$Score": "

The level of confidence that Amazon Comprehend has in the accuracy of the detection.

", + "SentimentScore$Positive": "

The level of confidence that Amazon Comprehend has in the accuracy of its detection of the POSITIVE sentiment.

", + "SentimentScore$Negative": "

The level of confidence that Amazon Comprehend has in the accuracy of its detection of the NEGATIVE sentiment.

", + "SentimentScore$Neutral": "

The level of confidence that Amazon Comprehend has in the accuracy of its detection of the NEUTRAL sentiment.

", + "SentimentScore$Mixed": "

The level of confidence that Amazon Comprehend has in the accuracy of its detection of the MIXED sentiment.

" + } + }, + "IamRoleArn": { + "base": null, + "refs": { + "StartTopicsDetectionJobRequest$DataAccessRoleArn": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.

" + } + }, + "InputDataConfig": { + "base": "

The input properties for a topic detection job.

", + "refs": { + "StartTopicsDetectionJobRequest$InputDataConfig": "

Specifies the format and location of the input data for the job.

", + "TopicsDetectionJobProperties$InputDataConfig": "

The input data configuration supplied when you created the topic detection job.

" + } + }, + "InputFormat": { + "base": null, + "refs": { + "InputDataConfig$InputFormat": "

Specifies how the text in an input file should be processed:

" + } + }, + "Integer": { + "base": null, + "refs": { + "BatchDetectDominantLanguageItemResult$Index": "

The zero-based index of the document in the input list.

", + "BatchDetectEntitiesItemResult$Index": "

The zero-based index of the document in the input list.

", + "BatchDetectKeyPhrasesItemResult$Index": "

The zero-based index of the document in the input list.

", + "BatchDetectSentimentItemResult$Index": "

The zero-based index of the document in the input list.

", + "BatchItemError$Index": "

The zero-based index of the document in the input list.

", + "Entity$BeginOffset": "

A character offset in the input text that shows where the entity begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.

", + "Entity$EndOffset": "

A character offset in the input text that shows where the entity ends. The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.

", + "KeyPhrase$BeginOffset": "

A character offset in the input text that shows where the key phrase begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.

", + "KeyPhrase$EndOffset": "

A character offset in the input text where the key phrase ends. The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.

", + "TopicsDetectionJobProperties$NumberOfTopics": "

The number of topics to detect supplied when you created the topic detection job. The default is 10.

" + } + }, + "InternalServerException": { + "base": "

An internal server error occurred. Retry your request.

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

The filter specified for the ListTopicDetectionJobs operation is invalid. Specify a different filter.

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

The request is invalid.

", + "refs": { + } + }, + "JobId": { + "base": null, + "refs": { + "DescribeTopicsDetectionJobRequest$JobId": "

The identifier assigned by the user to the detection job.

", + "StartTopicsDetectionJobResponse$JobId": "

The identifier generated for the job. To get the status of the job, use this identifier with the DescribeTopicDetectionJob operation.

", + "TopicsDetectionJobProperties$JobId": "

The identifier assigned to the topic detection job.

" + } + }, + "JobName": { + "base": null, + "refs": { + "StartTopicsDetectionJobRequest$JobName": "

The identifier of the job.

", + "TopicsDetectionJobFilter$JobName": "

", + "TopicsDetectionJobProperties$JobName": "

The name of the topic detection job.

" + } + }, + "JobNotFoundException": { + "base": "

The specified job was not found. Check the job ID and try again.

", + "refs": { + } + }, + "JobStatus": { + "base": null, + "refs": { + "StartTopicsDetectionJobResponse$JobStatus": "

The status of the job:

", + "TopicsDetectionJobFilter$JobStatus": "

Filters the list of topic detection jobs based on job status. Returns only jobs with the specified status.

", + "TopicsDetectionJobProperties$JobStatus": "

The current status of the topic detection job. If the status is Failed, the reason for the failure is shown in the Message field.

" + } + }, + "KeyPhrase": { + "base": "

Describes a key noun phrase.

", + "refs": { + "ListOfKeyPhrases$member": null + } + }, + "LanguageCode": { + "base": null, + "refs": { + "DetectEntitiesRequest$LanguageCode": "

The RFC 5646 language code of the input text. If the request does not specify the language code, the service detects the dominant language. If you specify a language code that the service does not support, it returns UnsupportedLanguageException exception. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site.

", + "DetectKeyPhrasesRequest$LanguageCode": "

The RFC 5646 language code for the input text. If you don't specify a language code, Amazon Comprehend detects the dominant language. If you specify the code for a language that Amazon Comprehend does not support, it returns and UnsupportedLanguageException. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site.

", + "DetectSentimentRequest$LanguageCode": "

The RFC 5646 language code for the input text. If you don't specify a language code, Amazon Comprehend detects the dominant language. If you specify the code for a language that Amazon Comprehend does not support, it returns and UnsupportedLanguageException. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site.

" + } + }, + "ListOfDetectDominantLanguageResult": { + "base": null, + "refs": { + "BatchDetectDominantLanguageResponse$ResultList": "

A list of objects containing the results of the operation. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If all of the documents contain an error, the ResultList is empty.

" + } + }, + "ListOfDetectEntitiesResult": { + "base": null, + "refs": { + "BatchDetectEntitiesResponse$ResultList": "

A list of objects containing the results of the operation. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If all of the documents contain an error, the ResultList is empty.

" + } + }, + "ListOfDetectKeyPhrasesResult": { + "base": null, + "refs": { + "BatchDetectKeyPhrasesResponse$ResultList": "

A list of objects containing the results of the operation. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If all of the documents contain an error, the ResultList is empty.

" + } + }, + "ListOfDetectSentimentResult": { + "base": null, + "refs": { + "BatchDetectSentimentResponse$ResultList": "

A list of objects containing the results of the operation. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If all of the documents contain an error, the ResultList is empty.

" + } + }, + "ListOfDominantLanguages": { + "base": null, + "refs": { + "BatchDetectDominantLanguageItemResult$Languages": "

One or more DominantLanguage objects describing the dominant languages in the document.

", + "DetectDominantLanguageResponse$Languages": "

The languages that Amazon Comprehend detected in the input text. For each language, the response returns the RFC 5646 language code and the level of confidence that Amazon Comprehend has in the accuracy of its inference. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site.

" + } + }, + "ListOfEntities": { + "base": null, + "refs": { + "BatchDetectEntitiesItemResult$Entities": "

One or more Entity objects, one for each entity detected in the document.

", + "DetectEntitiesResponse$Entities": "

A collection of entities identified in the input text. For each entity, the response provides the entity text, entity type, where the entity text begins and ends, and the level of confidence that Amazon Comprehend has in the detection. For a list of entity types, see how-entities.

" + } + }, + "ListOfKeyPhrases": { + "base": null, + "refs": { + "BatchDetectKeyPhrasesItemResult$KeyPhrases": "

One or more KeyPhrase objects, one for each key phrase detected in the document.

", + "DetectKeyPhrasesResponse$KeyPhrases": "

A collection of key phrases that Amazon Comprehend identified in the input text. For each key phrase, the response provides the text of the key phrase, where the key phrase begins and ends, and the level of confidence that Amazon Comprehend has in the accuracy of the detection.

" + } + }, + "ListTopicsDetectionJobsRequest": { + "base": null, + "refs": { + } + }, + "ListTopicsDetectionJobsResponse": { + "base": null, + "refs": { + } + }, + "MaxResultsInteger": { + "base": null, + "refs": { + "ListTopicsDetectionJobsRequest$MaxResults": "

The maximum number of results to return in each page.

" + } + }, + "NumberOfTopicsInteger": { + "base": null, + "refs": { + "StartTopicsDetectionJobRequest$NumberOfTopics": "

The number of topics to detect.

" + } + }, + "OutputDataConfig": { + "base": "

Provides configuration parameters for the output of topic detection jobs.

", + "refs": { + "StartTopicsDetectionJobRequest$OutputDataConfig": "

Specifies where to send the output files.

", + "TopicsDetectionJobProperties$OutputDataConfig": "

The output data configuration supplied when you created the topic detection job.

" + } + }, + "S3Uri": { + "base": null, + "refs": { + "InputDataConfig$S3Uri": "

The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.

For example, if you use the URI S3://bucketName/prefix, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.

", + "OutputDataConfig$S3Uri": "

The Amazon S3 URI where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling.

The service creates an output file called output.tar.gz. It is a compressed archive that contains two files, topic-terms.csv that lists the terms associated with each topic, and doc-topics.csv that lists the documents associated with each topic. For more information, see topic-modeling.

" + } + }, + "SentimentScore": { + "base": "

Describes the level of confidence that Amazon Comprehend has in the accuracy of its detection of sentiments.

", + "refs": { + "BatchDetectSentimentItemResult$SentimentScore": "

The level of confidence that Amazon Comprehend has in the accuracy of its sentiment detection.

", + "DetectSentimentResponse$SentimentScore": "

An object that lists the sentiments, and their corresponding confidence levels.

" + } + }, + "SentimentType": { + "base": null, + "refs": { + "BatchDetectSentimentItemResult$Sentiment": "

The sentiment detected in the document.

", + "DetectSentimentResponse$Sentiment": "

The inferred sentiment that Amazon Comprehend has the highest level of confidence in.

" + } + }, + "StartTopicsDetectionJobRequest": { + "base": null, + "refs": { + } + }, + "StartTopicsDetectionJobResponse": { + "base": null, + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "BatchDetectEntitiesRequest$LanguageCode": "

The language of the input documents. All documents must be in the same language.

", + "BatchDetectKeyPhrasesRequest$LanguageCode": "

The language of the input documents. All documents must be in the same language.

", + "BatchDetectSentimentRequest$LanguageCode": "

The language of the input documents. All documents must be in the same language.

", + "BatchItemError$ErrorCode": "

The numeric error code of the error.

", + "BatchItemError$ErrorMessage": "

A text description of the error.

", + "BatchSizeLimitExceededException$Message": null, + "DetectDominantLanguageRequest$Text": "

A UTF-8 text string. Each string should contain at least 20 characters and must contain fewer that 5,000 bytes of UTF-8 encoded characters.

", + "DetectEntitiesRequest$Text": "

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

", + "DetectKeyPhrasesRequest$Text": "

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

", + "DetectSentimentRequest$Text": "

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

", + "DominantLanguage$LanguageCode": "

The RFC 5646 language code for the dominant language.

", + "Entity$Text": "

The text of the entity.

", + "InternalServerException$Message": null, + "InvalidFilterException$Message": null, + "InvalidRequestException$Message": null, + "JobNotFoundException$Message": null, + "KeyPhrase$Text": "

The text of a key noun phrase.

", + "ListTopicsDetectionJobsRequest$NextToken": "

Identifies the next page of results to return.

", + "ListTopicsDetectionJobsResponse$NextToken": "

Identifies the next page of results to return.

", + "StringList$member": null, + "TextSizeLimitExceededException$Message": null, + "TooManyRequestsException$Message": null, + "UnsupportedLanguageException$Message": null + } + }, + "StringList": { + "base": null, + "refs": { + "BatchDetectDominantLanguageRequest$TextList": "

A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document should contain at least 20 characters and must contain fewer than 5,000 bytes of UTF-8 encoded characters.

", + "BatchDetectEntitiesRequest$TextList": "

A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer than 5,000 bytes of UTF-8 encoded characters.

", + "BatchDetectKeyPhrasesRequest$TextList": "

A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.

", + "BatchDetectSentimentRequest$TextList": "

A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.

" + } + }, + "TextSizeLimitExceededException": { + "base": "

The size of the input text exceeds the limit. Use a smaller document.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "TopicsDetectionJobFilter$SubmitTimeBefore": "

Filters the list of jobs based on the time that the job was submitted for processing. Only returns jobs submitted before the specified time. Jobs are returned in descending order, newest to oldest.

", + "TopicsDetectionJobFilter$SubmitTimeAfter": "

Filters the list of jobs based on the time that the job was submitted for processing. Only returns jobs submitted after the specified time. Jobs are returned in ascending order, oldest to newest.

", + "TopicsDetectionJobProperties$SubmitTime": "

The time that the topic detection job was submitted for processing.

", + "TopicsDetectionJobProperties$EndTime": "

The time that the topic detection job was completed.

" + } + }, + "TooManyRequestsException": { + "base": "

The number of requests exceeds the limit. Resubmit your request later.

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

Provides information for filtering topic detection jobs. For more information, see .

", + "refs": { + "ListTopicsDetectionJobsRequest$Filter": "

Filters the jobs that are returned. Jobs can be filtered on their name, status, or the date and time that they were submitted. You can set only one filter at a time.

" + } + }, + "TopicsDetectionJobProperties": { + "base": "

Provides information about a topic detection job.

", + "refs": { + "DescribeTopicsDetectionJobResponse$TopicsDetectionJobProperties": "

The list of properties for the requested job.

", + "TopicsDetectionJobPropertiesList$member": null + } + }, + "TopicsDetectionJobPropertiesList": { + "base": null, + "refs": { + "ListTopicsDetectionJobsResponse$TopicsDetectionJobPropertiesList": "

A list containing the properties of each job that is returned.

" + } + }, + "UnsupportedLanguageException": { + "base": "

Amazon Comprehend can't process the language of the input text. For all APIs except DetectDominantLanguage, Amazon Comprehend accepts only English or Spanish text. For the DetectDominantLanguage API, Amazon Comprehend detects 100 languages. For a list of languages, see how-languages

", + "refs": { + } + } + } +} diff --git a/models/apis/comprehend/2017-11-27/examples-1.json b/models/apis/comprehend/2017-11-27/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/comprehend/2017-11-27/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/comprehend/2017-11-27/paginators-1.json b/models/apis/comprehend/2017-11-27/paginators-1.json new file mode 100644 index 00000000000..a117c0e2423 --- /dev/null +++ b/models/apis/comprehend/2017-11-27/paginators-1.json @@ -0,0 +1,9 @@ +{ + "pagination": { + "ListTopicsDetectionJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/config/2014-11-12/api-2.json b/models/apis/config/2014-11-12/api-2.json index e91758a05cb..89cf064e77b 100644 --- a/models/apis/config/2014-11-12/api-2.json +++ b/models/apis/config/2014-11-12/api-2.json @@ -222,6 +222,20 @@ {"shape":"InvalidParameterValueException"} ] }, + "GetDiscoveredResourceCounts":{ + "name":"GetDiscoveredResourceCounts", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDiscoveredResourceCountsRequest"}, + "output":{"shape":"GetDiscoveredResourceCountsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InvalidLimitException"}, + {"shape":"InvalidNextTokenException"} + ] + }, "GetResourceConfigHistory":{ "name":"GetResourceConfigHistory", "http":{ @@ -359,6 +373,11 @@ "AllSupported":{"type":"boolean"}, "AvailabilityZone":{"type":"string"}, "AwsRegion":{"type":"string"}, + "BaseResourceId":{ + "type":"string", + "max":768, + "min":1 + }, "Boolean":{"type":"boolean"}, "ChannelName":{ "type":"string", @@ -394,7 +413,7 @@ "type":"structure", "members":{ "ResourceType":{"shape":"StringWithCharLimit256"}, - "ResourceId":{"shape":"StringWithCharLimit256"}, + "ResourceId":{"shape":"BaseResourceId"}, "Compliance":{"shape":"Compliance"} } }, @@ -707,7 +726,7 @@ "type":"structure", "members":{ "ResourceType":{"shape":"StringWithCharLimit256"}, - "ResourceId":{"shape":"StringWithCharLimit256"}, + "ResourceId":{"shape":"BaseResourceId"}, "ComplianceTypes":{"shape":"ComplianceTypes"}, "Limit":{"shape":"Limit"}, "NextToken":{"shape":"NextToken"} @@ -813,7 +832,7 @@ ], "members":{ "ComplianceResourceType":{"shape":"StringWithCharLimit256"}, - "ComplianceResourceId":{"shape":"StringWithCharLimit256"}, + "ComplianceResourceId":{"shape":"BaseResourceId"}, "ComplianceType":{"shape":"ComplianceType"}, "Annotation":{"shape":"StringWithCharLimit256"}, "OrderingTimestamp":{"shape":"OrderingTimestamp"} @@ -842,7 +861,7 @@ "members":{ "ConfigRuleName":{"shape":"StringWithCharLimit64"}, "ResourceType":{"shape":"StringWithCharLimit256"}, - "ResourceId":{"shape":"StringWithCharLimit256"} + "ResourceId":{"shape":"BaseResourceId"} } }, "EvaluationResults":{ @@ -884,7 +903,7 @@ ], "members":{ "ResourceType":{"shape":"StringWithCharLimit256"}, - "ResourceId":{"shape":"StringWithCharLimit256"}, + "ResourceId":{"shape":"BaseResourceId"}, "ComplianceTypes":{"shape":"ComplianceTypes"}, "NextToken":{"shape":"String"} } @@ -914,6 +933,22 @@ "ComplianceSummariesByResourceType":{"shape":"ComplianceSummariesByResourceType"} } }, + "GetDiscoveredResourceCountsRequest":{ + "type":"structure", + "members":{ + "resourceTypes":{"shape":"ResourceTypes"}, + "limit":{"shape":"Limit"}, + "nextToken":{"shape":"NextToken"} + } + }, + "GetDiscoveredResourceCountsResponse":{ + "type":"structure", + "members":{ + "totalDiscoveredResources":{"shape":"Long"}, + "resourceCounts":{"shape":"ResourceCounts"}, + "nextToken":{"shape":"NextToken"} + } + }, "GetResourceConfigHistoryRequest":{ "type":"structure", "required":[ @@ -1054,6 +1089,7 @@ "nextToken":{"shape":"NextToken"} } }, + "Long":{"type":"long"}, "MaxNumberOfConfigRulesExceededException":{ "type":"structure", "members":{ @@ -1225,6 +1261,17 @@ "member":{"shape":"Relationship"} }, "RelationshipName":{"type":"string"}, + "ResourceCount":{ + "type":"structure", + "members":{ + "resourceType":{"shape":"ResourceType"}, + "count":{"shape":"Long"} + } + }, + "ResourceCounts":{ + "type":"list", + "member":{"shape":"ResourceCount"} + }, "ResourceCreationTime":{"type":"timestamp"}, "ResourceDeletionTime":{"type":"timestamp"}, "ResourceId":{"type":"string"}, @@ -1295,7 +1342,14 @@ "AWS::Redshift::ClusterSecurityGroup", "AWS::Redshift::ClusterSubnetGroup", "AWS::Redshift::EventSubscription", - "AWS::CloudWatch::Alarm" + "AWS::CloudWatch::Alarm", + "AWS::CloudFormation::Stack", + "AWS::DynamoDB::Table", + "AWS::AutoScaling::AutoScalingGroup", + "AWS::AutoScaling::LaunchConfiguration", + "AWS::AutoScaling::ScalingPolicy", + "AWS::AutoScaling::ScheduledAction", + "AWS::CodeBuild::Project" ] }, "ResourceTypeList":{ @@ -1319,7 +1373,7 @@ "ComplianceResourceTypes":{"shape":"ComplianceResourceTypes"}, "TagKey":{"shape":"StringWithCharLimit128"}, "TagValue":{"shape":"StringWithCharLimit256"}, - "ComplianceResourceId":{"shape":"StringWithCharLimit256"} + "ComplianceResourceId":{"shape":"BaseResourceId"} } }, "Source":{ diff --git a/models/apis/config/2014-11-12/docs-2.json b/models/apis/config/2014-11-12/docs-2.json index 6412d803106..9df01a32f66 100644 --- a/models/apis/config/2014-11-12/docs-2.json +++ b/models/apis/config/2014-11-12/docs-2.json @@ -19,8 +19,9 @@ "GetComplianceDetailsByResource": "

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

", "GetComplianceSummaryByConfigRule": "

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

", "GetComplianceSummaryByResourceType": "

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

", - "GetResourceConfigHistory": "

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

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

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

", - "ListDiscoveredResources": "

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

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

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

", + "GetDiscoveredResourceCounts": "

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

Example

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

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

  3. AWS Config returns the following:

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

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

    • The total number of all resources (60)

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

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

  • You are a new AWS Config customer

  • You just enabled resource recording

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

", + "GetResourceConfigHistory": "

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

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

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

", + "ListDiscoveredResources": "

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

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

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

", "PutConfigRule": "

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

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

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

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

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

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

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

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

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

", "PutConfigurationRecorder": "

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

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

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

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

", "PutDeliveryChannel": "

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

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

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

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

", @@ -60,6 +61,17 @@ "ConfigurationItem$awsRegion": "

The region where the resource resides.

" } }, + "BaseResourceId": { + "base": null, + "refs": { + "ComplianceByResource$ResourceId": "

The ID of the AWS resource that was evaluated.

", + "DescribeComplianceByResourceRequest$ResourceId": "

The ID of the AWS resource for which you want compliance information. You can specify only one resource ID. If you specify a resource ID, you must also specify a type for ResourceType.

", + "Evaluation$ComplianceResourceId": "

The ID of the AWS resource that was evaluated.

", + "EvaluationResultQualifier$ResourceId": "

The ID of the evaluated AWS resource.

", + "GetComplianceDetailsByResourceRequest$ResourceId": "

The ID of the AWS resource for which you want compliance information.

", + "Scope$ComplianceResourceId": "

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

" + } + }, "Boolean": { "base": null, "refs": { @@ -168,7 +180,7 @@ } }, "ConfigExportDeliveryInfo": { - "base": "

A list that contains the status of the delivery of either the snapshot or the configuration history to the specified Amazon S3 bucket.

", + "base": "

Provides status of the delivery of the snapshot or the configuration history to the specified Amazon S3 bucket. Also provides the status of notifications about the Amazon S3 delivery to the specified Amazon SNS topic.

", "refs": { "DeliveryChannelStatus$configSnapshotDeliveryInfo": "

A list containing the status of the delivery of the snapshot to the specified Amazon S3 bucket.

", "DeliveryChannelStatus$configHistoryDeliveryInfo": "

A list that contains the status of the delivery of the configuration history to the specified Amazon S3 bucket.

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

The input for the GetResourceConfigHistory action.

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

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

", "GetComplianceDetailsByConfigRuleRequest$Limit": "

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

", + "GetDiscoveredResourceCountsRequest$limit": "

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

", "GetResourceConfigHistoryRequest$limit": "

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

", "ListDiscoveredResourcesRequest$limit": "

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

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

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

Example

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

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

  3. AWS Config returns 25 for totalDiscoveredResources.

", + "ResourceCount$count": "

The number of resources.

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

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

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

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

", "GetComplianceDetailsByConfigRuleRequest$NextToken": "

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

", "GetComplianceDetailsByConfigRuleResponse$NextToken": "

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

", + "GetDiscoveredResourceCountsRequest$nextToken": "

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

", + "GetDiscoveredResourceCountsResponse$nextToken": "

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

", "GetResourceConfigHistoryRequest$nextToken": "

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

", "GetResourceConfigHistoryResponse$nextToken": "

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

", "ListDiscoveredResourcesRequest$nextToken": "

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

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

The type of relationship with the related resource.

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

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

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

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

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

The resource type.

", "ListDiscoveredResourcesRequest$resourceType": "

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

", "Relationship$resourceType": "

The resource type of the related resource.

", + "ResourceCount$resourceType": "

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

", "ResourceIdentifier$resourceType": "

The type of resource.

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

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

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

" + "GetComplianceSummaryByResourceTypeRequest$ResourceTypes": "

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

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

", + "GetDiscoveredResourceCountsRequest$resourceTypes": "

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

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

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

" } }, "RuleLimit": { @@ -1040,30 +1086,24 @@ "StringWithCharLimit128": { "base": null, "refs": { - "Scope$TagKey": "

The tag key that is applied to only those AWS resources that you want you want to trigger an evaluation for the rule.

" + "Scope$TagKey": "

The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule.

" } }, "StringWithCharLimit256": { "base": null, "refs": { "ComplianceByResource$ResourceType": "

The type of the AWS resource that was evaluated.

", - "ComplianceByResource$ResourceId": "

The ID of the AWS resource that was evaluated.

", "ComplianceResourceTypes$member": null, "ComplianceSummaryByResourceType$ResourceType": "

The type of AWS resource.

", "DescribeComplianceByResourceRequest$ResourceType": "

The types of AWS resources for which you want compliance information; for example, AWS::EC2::Instance. For this action, you can specify that the resource type is an AWS account by specifying AWS::::Account.

", - "DescribeComplianceByResourceRequest$ResourceId": "

The ID of the AWS resource for which you want compliance information. You can specify only one resource ID. If you specify a resource ID, you must also specify a type for ResourceType.

", "Evaluation$ComplianceResourceType": "

The type of AWS resource that was evaluated.

", - "Evaluation$ComplianceResourceId": "

The ID of the AWS resource that was evaluated.

", "Evaluation$Annotation": "

Supplementary information about how the evaluation determined the compliance.

", "EvaluationResult$Annotation": "

Supplementary information about how the evaluation determined the compliance.

", "EvaluationResultQualifier$ResourceType": "

The type of AWS resource that was evaluated.

", - "EvaluationResultQualifier$ResourceId": "

The ID of the evaluated AWS resource.

", "GetComplianceDetailsByResourceRequest$ResourceType": "

The type of the AWS resource for which you want compliance information.

", - "GetComplianceDetailsByResourceRequest$ResourceId": "

The ID of the AWS resource for which you want compliance information.

", "ResourceTypes$member": null, "Scope$TagValue": "

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

", - "Scope$ComplianceResourceId": "

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

", - "Source$SourceIdentifier": "

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

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

" + "Source$SourceIdentifier": "

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

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

" } }, "StringWithCharLimit64": { diff --git a/models/apis/devicefarm/2015-06-23/api-2.json b/models/apis/devicefarm/2015-06-23/api-2.json index c8684371b87..749342afee6 100644 --- a/models/apis/devicefarm/2015-06-23/api-2.json +++ b/models/apis/devicefarm/2015-06-23/api-2.json @@ -781,6 +781,10 @@ "type":"list", "member":{"shape":"AmazonResourceName"} }, + "AndroidPaths":{ + "type":"list", + "member":{"shape":"String"} + }, "AppPackagesCleanup":{"type":"boolean"}, "ArgumentException":{ "type":"structure", @@ -834,7 +838,9 @@ "EXPLORER_SUMMARY_LOG", "APPLICATION_CRASH_REPORT", "XCTEST_LOG", - "VIDEO" + "VIDEO", + "CUSTOMER_ARTIFACT", + "CUSTOMER_ARTIFACT_LOG" ] }, "Artifacts":{ @@ -857,6 +863,11 @@ "clock":{"shape":"Double"} } }, + "ClientId":{ + "type":"string", + "max":64, + "min":0 + }, "ContentType":{ "type":"string", "max":64, @@ -950,7 +961,10 @@ "members":{ "projectArn":{"shape":"AmazonResourceName"}, "deviceArn":{"shape":"AmazonResourceName"}, + "sshPublicKey":{"shape":"SshPublicKey"}, + "remoteDebugEnabled":{"shape":"Boolean"}, "name":{"shape":"Name"}, + "clientId":{"shape":"ClientId"}, "configuration":{"shape":"CreateRemoteAccessSessionConfiguration"} } }, @@ -984,6 +998,14 @@ "type":"string", "enum":["USD"] }, + "CustomerArtifactPaths":{ + "type":"structure", + "members":{ + "iosPaths":{"shape":"IosPaths"}, + "androidPaths":{"shape":"AndroidPaths"}, + "deviceHostPaths":{"shape":"DeviceHostPaths"} + } + }, "DateTime":{"type":"timestamp"}, "DeleteDevicePoolRequest":{ "type":"structure", @@ -1075,6 +1097,7 @@ "carrier":{"shape":"String"}, "radio":{"shape":"String"}, "remoteAccessEnabled":{"shape":"Boolean"}, + "remoteDebugEnabled":{"shape":"Boolean"}, "fleetType":{"shape":"String"}, "fleetName":{"shape":"String"} } @@ -1087,6 +1110,7 @@ "FORM_FACTOR", "MANUFACTURER", "REMOTE_ACCESS_ENABLED", + "REMOTE_DEBUG_ENABLED", "APPIUM_VERSION" ] }, @@ -1097,6 +1121,10 @@ "TABLET" ] }, + "DeviceHostPaths":{ + "type":"list", + "member":{"shape":"String"} + }, "DeviceMinutes":{ "type":"structure", "members":{ @@ -1170,6 +1198,10 @@ "STOPPED" ] }, + "ExecutionResultCode":{ + "type":"string", + "enum":["PARSING_FAILED"] + }, "ExecutionStatus":{ "type":"string", "enum":[ @@ -1361,6 +1393,10 @@ "upload":{"shape":"Upload"} } }, + "HostAddress":{ + "type":"string", + "max":1024 + }, "IdempotencyException":{ "type":"structure", "members":{ @@ -1397,6 +1433,10 @@ } }, "Integer":{"type":"integer"}, + "IosPaths":{ + "type":"list", + "member":{"shape":"String"} + }, "Job":{ "type":"structure", "members":{ @@ -1919,9 +1959,13 @@ "started":{"shape":"DateTime"}, "stopped":{"shape":"DateTime"}, "device":{"shape":"Device"}, + "remoteDebugEnabled":{"shape":"Boolean"}, + "hostAddress":{"shape":"HostAddress"}, + "clientId":{"shape":"ClientId"}, "billingMethod":{"shape":"BillingMethod"}, "deviceMinutes":{"shape":"DeviceMinutes"}, - "endpoint":{"shape":"String"} + "endpoint":{"shape":"String"}, + "deviceUdid":{"shape":"String"} } }, "RemoteAccessSessions":{ @@ -1989,7 +2033,10 @@ "completedJobs":{"shape":"Integer"}, "billingMethod":{"shape":"BillingMethod"}, "deviceMinutes":{"shape":"DeviceMinutes"}, - "networkProfile":{"shape":"NetworkProfile"} + "networkProfile":{"shape":"NetworkProfile"}, + "parsingResultUrl":{"shape":"String"}, + "resultCode":{"shape":"ExecutionResultCode"}, + "customerArtifactPaths":{"shape":"CustomerArtifactPaths"} } }, "Runs":{ @@ -2037,6 +2084,7 @@ "networkProfileArn":{"shape":"AmazonResourceName"}, "locale":{"shape":"String"}, "location":{"shape":"Location"}, + "customerArtifactPaths":{"shape":"CustomerArtifactPaths"}, "radios":{"shape":"Radios"}, "auxiliaryApps":{"shape":"AmazonResourceNames"}, "billingMethod":{"shape":"BillingMethod"} @@ -2082,6 +2130,11 @@ }, "exception":true }, + "SshPublicKey":{ + "type":"string", + "max":8192, + "min":0 + }, "StopRemoteAccessSessionRequest":{ "type":"structure", "required":["arn"], diff --git a/models/apis/devicefarm/2015-06-23/docs-2.json b/models/apis/devicefarm/2015-06-23/docs-2.json index d65687ff304..a8188e597bc 100644 --- a/models/apis/devicefarm/2015-06-23/docs-2.json +++ b/models/apis/devicefarm/2015-06-23/docs-2.json @@ -145,6 +145,12 @@ "ScheduleRunConfiguration$auxiliaryApps": "

A list of auxiliary apps for the run.

" } }, + "AndroidPaths": { + "base": null, + "refs": { + "CustomerArtifactPaths$androidPaths": "

Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests will be pulled from.

" + } + }, "AppPackagesCleanup": { "base": null, "refs": { @@ -192,12 +198,15 @@ "Boolean": { "base": null, "refs": { + "CreateRemoteAccessSessionRequest$remoteDebugEnabled": "

Set to true if you want to access devices remotely for debugging in your remote access session.

", "Device$remoteAccessEnabled": "

Specifies whether remote access has been enabled for the specified device.

", + "Device$remoteDebugEnabled": "

This flag is set to true if remote debugging is enabled for the device.

", "DevicePoolCompatibilityResult$compatible": "

Whether the result was compatible with the device pool.

", "Radios$wifi": "

True if Wi-Fi is enabled at the beginning of the test; otherwise, false.

", "Radios$bluetooth": "

True if Bluetooth is enabled at the beginning of the test; otherwise, false.

", "Radios$nfc": "

True if NFC is enabled at the beginning of the test; otherwise, false.

", - "Radios$gps": "

True if GPS is enabled at the beginning of the test; otherwise, false.

" + "Radios$gps": "

True if GPS is enabled at the beginning of the test; otherwise, false.

", + "RemoteAccessSession$remoteDebugEnabled": "

This flag is set to true if remote debugging is enabled for the remote access session.

" } }, "CPU": { @@ -206,6 +215,13 @@ "Device$cpu": "

Information about the device's CPU.

" } }, + "ClientId": { + "base": null, + "refs": { + "CreateRemoteAccessSessionRequest$clientId": "

Unique identifier for the client. If you want access to multiple devices on the same client, you should pass the same clientId value in each call to CreateRemoteAccessSession. This is required only if remoteDebugEnabled is set to true true.

", + "RemoteAccessSession$clientId": "

Unique identifier of your client for the remote access session. Only returned if remote debugging is enabled for the remote access session.

" + } + }, "ContentType": { "base": null, "refs": { @@ -284,6 +300,13 @@ "MonetaryAmount$currencyCode": "

The currency code of a monetary amount. For example, USD means \"U.S. dollars.\"

" } }, + "CustomerArtifactPaths": { + "base": "

A JSON object specifying the paths where the artifacts generated by the customer's tests, on the device or in the test environment, will be pulled from.

Specify deviceHostPaths and optionally specify either iosPaths or androidPaths.

For web app tests, you can specify both iosPaths and androidPaths.

", + "refs": { + "Run$customerArtifactPaths": "

Output CustomerArtifactPaths object for the test run.

", + "ScheduleRunConfiguration$customerArtifactPaths": "

Input CustomerArtifactPaths object for the scheduled run configuration.

" + } + }, "DateTime": { "base": null, "refs": { @@ -392,6 +415,12 @@ "Device$formFactor": "

The device's form factor.

Allowed values include:

" } }, + "DeviceHostPaths": { + "base": null, + "refs": { + "CustomerArtifactPaths$deviceHostPaths": "

Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests will be pulled from.

" + } + }, "DeviceMinutes": { "base": "

Represents the total (metered or unmetered) minutes used by the resource to run tests. Contains the sum of minutes consumed by all children.

", "refs": { @@ -484,6 +513,12 @@ "UniqueProblemsByExecutionResultMap$key": null } }, + "ExecutionResultCode": { + "base": null, + "refs": { + "Run$resultCode": "

Supporting field for the result field. Set only if result is SKIPPED. PARSING_FAILED if the result is skipped because of test package parsing failure.

" + } + }, "ExecutionStatus": { "base": null, "refs": { @@ -630,6 +665,12 @@ "refs": { } }, + "HostAddress": { + "base": null, + "refs": { + "RemoteAccessSession$hostAddress": "

IP address of the EC2 host where you need to connect to remotely debug devices. Only returned if remote debugging is enabled for the remote access session.

" + } + }, "IdempotencyException": { "base": "

An entity with the same name already exists.

", "refs": { @@ -678,6 +719,12 @@ "Run$completedJobs": "

The total number of completed jobs.

" } }, + "IosPaths": { + "base": null, + "refs": { + "CustomerArtifactPaths$iosPaths": "

Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests will be pulled from.

" + } + }, "Job": { "base": "

Represents a device.

", "refs": { @@ -1267,7 +1314,7 @@ } }, "Run": { - "base": "

Represents an app on a set of devices with a specific test and configuration.

", + "base": "

Represents a test run on a set of devices with a given app package, test parameters, etc.

", "refs": { "GetRunResult$run": "

The run you wish to get results from.

", "Runs$member": null, @@ -1327,6 +1374,12 @@ "refs": { } }, + "SshPublicKey": { + "base": null, + "refs": { + "CreateRemoteAccessSessionRequest$sshPublicKey": "

The public key of the ssh key pair you want to use for connecting to remote devices in your remote debugging session. This is only required if remoteDebugEnabled is set to true.

" + } + }, "StopRemoteAccessSessionRequest": { "base": "

Represents the request to stop the remote access session.

", "refs": { @@ -1350,6 +1403,7 @@ "String": { "base": null, "refs": { + "AndroidPaths$member": null, "Artifact$extension": "

The artifact's file extension.

", "CPU$frequency": "

The CPU's frequency.

", "CPU$architecture": "

The CPU's architecture, for example x86 or ARM.

", @@ -1361,9 +1415,13 @@ "Device$radio": "

The device's radio.

", "Device$fleetType": "

The type of fleet to which this device belongs. Possible values for fleet type are PRIVATE and PUBLIC.

", "Device$fleetName": "

The name of the fleet to which this device belongs.

", + "DeviceHostPaths$member": null, + "IosPaths$member": null, "MaxSlotMap$key": null, "RemoteAccessSession$endpoint": "

The endpoint for the remote access sesssion.

", + "RemoteAccessSession$deviceUdid": "

Unique device identifier for the remote device. Only returned if remote debugging is enabled for the remote access session.

", "Rule$value": "

The rule's value.

", + "Run$parsingResultUrl": "

Read-only URL for an object in S3 bucket where you can get the parsing results of the test package. If the test package doesn't parse, the reason why it doesn't parse appears in the file that this URL points to.

", "ScheduleRunConfiguration$locale": "

Information about the locale that is used for the run.

", "TestParameters$key": null, "TestParameters$value": null diff --git a/models/apis/directconnect/2012-10-25/api-2.json b/models/apis/directconnect/2012-10-25/api-2.json index 25f276d2468..400e4946552 100644 --- a/models/apis/directconnect/2012-10-25/api-2.json +++ b/models/apis/directconnect/2012-10-25/api-2.json @@ -168,6 +168,32 @@ {"shape":"DirectConnectClientException"} ] }, + "CreateDirectConnectGateway":{ + "name":"CreateDirectConnectGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDirectConnectGatewayRequest"}, + "output":{"shape":"CreateDirectConnectGatewayResult"}, + "errors":[ + {"shape":"DirectConnectServerException"}, + {"shape":"DirectConnectClientException"} + ] + }, + "CreateDirectConnectGatewayAssociation":{ + "name":"CreateDirectConnectGatewayAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDirectConnectGatewayAssociationRequest"}, + "output":{"shape":"CreateDirectConnectGatewayAssociationResult"}, + "errors":[ + {"shape":"DirectConnectServerException"}, + {"shape":"DirectConnectClientException"} + ] + }, "CreateInterconnect":{ "name":"CreateInterconnect", "http":{ @@ -246,6 +272,32 @@ {"shape":"DirectConnectClientException"} ] }, + "DeleteDirectConnectGateway":{ + "name":"DeleteDirectConnectGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDirectConnectGatewayRequest"}, + "output":{"shape":"DeleteDirectConnectGatewayResult"}, + "errors":[ + {"shape":"DirectConnectServerException"}, + {"shape":"DirectConnectClientException"} + ] + }, + "DeleteDirectConnectGatewayAssociation":{ + "name":"DeleteDirectConnectGatewayAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDirectConnectGatewayAssociationRequest"}, + "output":{"shape":"DeleteDirectConnectGatewayAssociationResult"}, + "errors":[ + {"shape":"DirectConnectServerException"}, + {"shape":"DirectConnectClientException"} + ] + }, "DeleteInterconnect":{ "name":"DeleteInterconnect", "http":{ @@ -326,6 +378,45 @@ ], "deprecated":true }, + "DescribeDirectConnectGatewayAssociations":{ + "name":"DescribeDirectConnectGatewayAssociations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDirectConnectGatewayAssociationsRequest"}, + "output":{"shape":"DescribeDirectConnectGatewayAssociationsResult"}, + "errors":[ + {"shape":"DirectConnectServerException"}, + {"shape":"DirectConnectClientException"} + ] + }, + "DescribeDirectConnectGatewayAttachments":{ + "name":"DescribeDirectConnectGatewayAttachments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDirectConnectGatewayAttachmentsRequest"}, + "output":{"shape":"DescribeDirectConnectGatewayAttachmentsResult"}, + "errors":[ + {"shape":"DirectConnectServerException"}, + {"shape":"DirectConnectClientException"} + ] + }, + "DescribeDirectConnectGateways":{ + "name":"DescribeDirectConnectGateways", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDirectConnectGatewaysRequest"}, + "output":{"shape":"DescribeDirectConnectGatewaysResult"}, + "errors":[ + {"shape":"DirectConnectServerException"}, + {"shape":"DirectConnectClientException"} + ] + }, "DescribeHostedConnections":{ "name":"DescribeHostedConnections", "http":{ @@ -653,13 +744,11 @@ }, "ConfirmPrivateVirtualInterfaceRequest":{ "type":"structure", - "required":[ - "virtualInterfaceId", - "virtualGatewayId" - ], + "required":["virtualInterfaceId"], "members":{ "virtualInterfaceId":{"shape":"VirtualInterfaceId"}, - "virtualGatewayId":{"shape":"VirtualGatewayId"} + "virtualGatewayId":{"shape":"VirtualGatewayId"}, + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"} } }, "ConfirmPrivateVirtualInterfaceResponse":{ @@ -751,6 +840,37 @@ "lagId":{"shape":"LagId"} } }, + "CreateDirectConnectGatewayAssociationRequest":{ + "type":"structure", + "required":[ + "directConnectGatewayId", + "virtualGatewayId" + ], + "members":{ + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"}, + "virtualGatewayId":{"shape":"VirtualGatewayId"} + } + }, + "CreateDirectConnectGatewayAssociationResult":{ + "type":"structure", + "members":{ + "directConnectGatewayAssociation":{"shape":"DirectConnectGatewayAssociation"} + } + }, + "CreateDirectConnectGatewayRequest":{ + "type":"structure", + "required":["directConnectGatewayName"], + "members":{ + "directConnectGatewayName":{"shape":"DirectConnectGatewayName"}, + "amazonSideAsn":{"shape":"LongAsn"} + } + }, + "CreateDirectConnectGatewayResult":{ + "type":"structure", + "members":{ + "directConnectGateway":{"shape":"DirectConnectGateway"} + } + }, "CreateInterconnectRequest":{ "type":"structure", "required":[ @@ -825,6 +945,36 @@ "connectionId":{"shape":"ConnectionId"} } }, + "DeleteDirectConnectGatewayAssociationRequest":{ + "type":"structure", + "required":[ + "directConnectGatewayId", + "virtualGatewayId" + ], + "members":{ + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"}, + "virtualGatewayId":{"shape":"VirtualGatewayId"} + } + }, + "DeleteDirectConnectGatewayAssociationResult":{ + "type":"structure", + "members":{ + "directConnectGatewayAssociation":{"shape":"DirectConnectGatewayAssociation"} + } + }, + "DeleteDirectConnectGatewayRequest":{ + "type":"structure", + "required":["directConnectGatewayId"], + "members":{ + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"} + } + }, + "DeleteDirectConnectGatewayResult":{ + "type":"structure", + "members":{ + "directConnectGateway":{"shape":"DirectConnectGateway"} + } + }, "DeleteInterconnectRequest":{ "type":"structure", "required":["interconnectId"], @@ -886,6 +1036,53 @@ "connectionId":{"shape":"ConnectionId"} } }, + "DescribeDirectConnectGatewayAssociationsRequest":{ + "type":"structure", + "members":{ + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"}, + "virtualGatewayId":{"shape":"VirtualGatewayId"}, + "maxResults":{"shape":"MaxResultSetSize"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "DescribeDirectConnectGatewayAssociationsResult":{ + "type":"structure", + "members":{ + "directConnectGatewayAssociations":{"shape":"DirectConnectGatewayAssociationList"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "DescribeDirectConnectGatewayAttachmentsRequest":{ + "type":"structure", + "members":{ + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"}, + "virtualInterfaceId":{"shape":"VirtualInterfaceId"}, + "maxResults":{"shape":"MaxResultSetSize"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "DescribeDirectConnectGatewayAttachmentsResult":{ + "type":"structure", + "members":{ + "directConnectGatewayAttachments":{"shape":"DirectConnectGatewayAttachmentList"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "DescribeDirectConnectGatewaysRequest":{ + "type":"structure", + "members":{ + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"}, + "maxResults":{"shape":"MaxResultSetSize"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "DescribeDirectConnectGatewaysResult":{ + "type":"structure", + "members":{ + "directConnectGateways":{"shape":"DirectConnectGatewayList"}, + "nextToken":{"shape":"PaginationToken"} + } + }, "DescribeHostedConnectionsRequest":{ "type":"structure", "required":["connectionId"], @@ -956,6 +1153,80 @@ }, "exception":true }, + "DirectConnectGateway":{ + "type":"structure", + "members":{ + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"}, + "directConnectGatewayName":{"shape":"DirectConnectGatewayName"}, + "amazonSideAsn":{"shape":"LongAsn"}, + "ownerAccount":{"shape":"OwnerAccount"}, + "directConnectGatewayState":{"shape":"DirectConnectGatewayState"}, + "stateChangeError":{"shape":"StateChangeError"} + } + }, + "DirectConnectGatewayAssociation":{ + "type":"structure", + "members":{ + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"}, + "virtualGatewayId":{"shape":"VirtualGatewayId"}, + "virtualGatewayRegion":{"shape":"VirtualGatewayRegion"}, + "virtualGatewayOwnerAccount":{"shape":"OwnerAccount"}, + "associationState":{"shape":"DirectConnectGatewayAssociationState"}, + "stateChangeError":{"shape":"StateChangeError"} + } + }, + "DirectConnectGatewayAssociationList":{ + "type":"list", + "member":{"shape":"DirectConnectGatewayAssociation"} + }, + "DirectConnectGatewayAssociationState":{ + "type":"string", + "enum":[ + "associating", + "associated", + "disassociating", + "disassociated" + ] + }, + "DirectConnectGatewayAttachment":{ + "type":"structure", + "members":{ + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"}, + "virtualInterfaceId":{"shape":"VirtualInterfaceId"}, + "virtualInterfaceRegion":{"shape":"VirtualInterfaceRegion"}, + "virtualInterfaceOwnerAccount":{"shape":"OwnerAccount"}, + "attachmentState":{"shape":"DirectConnectGatewayAttachmentState"}, + "stateChangeError":{"shape":"StateChangeError"} + } + }, + "DirectConnectGatewayAttachmentList":{ + "type":"list", + "member":{"shape":"DirectConnectGatewayAttachment"} + }, + "DirectConnectGatewayAttachmentState":{ + "type":"string", + "enum":[ + "attaching", + "attached", + "detaching", + "detached" + ] + }, + "DirectConnectGatewayId":{"type":"string"}, + "DirectConnectGatewayList":{ + "type":"list", + "member":{"shape":"DirectConnectGateway"} + }, + "DirectConnectGatewayName":{"type":"string"}, + "DirectConnectGatewayState":{ + "type":"string", + "enum":[ + "pending", + "available", + "deleting", + "deleted" + ] + }, "DirectConnectServerException":{ "type":"structure", "members":{ @@ -1090,6 +1361,11 @@ "locations":{"shape":"LocationList"} } }, + "LongAsn":{"type":"long"}, + "MaxResultSetSize":{ + "type":"integer", + "box":true + }, "NewBGPPeer":{ "type":"structure", "members":{ @@ -1105,8 +1381,7 @@ "required":[ "virtualInterfaceName", "vlan", - "asn", - "virtualGatewayId" + "asn" ], "members":{ "virtualInterfaceName":{"shape":"VirtualInterfaceName"}, @@ -1116,7 +1391,8 @@ "amazonAddress":{"shape":"AmazonAddress"}, "customerAddress":{"shape":"CustomerAddress"}, "addressFamily":{"shape":"AddressFamily"}, - "virtualGatewayId":{"shape":"VirtualGatewayId"} + "virtualGatewayId":{"shape":"VirtualGatewayId"}, + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"} } }, "NewPrivateVirtualInterfaceAllocation":{ @@ -1173,6 +1449,7 @@ } }, "OwnerAccount":{"type":"string"}, + "PaginationToken":{"type":"string"}, "PartnerName":{"type":"string"}, "ProviderName":{"type":"string"}, "Region":{"type":"string"}, @@ -1203,6 +1480,7 @@ "member":{"shape":"RouteFilterPrefix"} }, "RouterConfig":{"type":"string"}, + "StateChangeError":{"type":"string"}, "Tag":{ "type":"structure", "required":["key"], @@ -1292,6 +1570,7 @@ "type":"list", "member":{"shape":"VirtualGateway"} }, + "VirtualGatewayRegion":{"type":"string"}, "VirtualGatewayState":{"type":"string"}, "VirtualGateways":{ "type":"structure", @@ -1310,6 +1589,7 @@ "virtualInterfaceName":{"shape":"VirtualInterfaceName"}, "vlan":{"shape":"VLAN"}, "asn":{"shape":"ASN"}, + "amazonSideAsn":{"shape":"LongAsn"}, "authKey":{"shape":"BGPAuthKey"}, "amazonAddress":{"shape":"AmazonAddress"}, "customerAddress":{"shape":"CustomerAddress"}, @@ -1317,6 +1597,7 @@ "virtualInterfaceState":{"shape":"VirtualInterfaceState"}, "customerRouterConfig":{"shape":"RouterConfig"}, "virtualGatewayId":{"shape":"VirtualGatewayId"}, + "directConnectGatewayId":{"shape":"DirectConnectGatewayId"}, "routeFilterPrefixes":{"shape":"RouteFilterPrefixList"}, "bgpPeers":{"shape":"BGPPeerList"} } @@ -1327,6 +1608,7 @@ "member":{"shape":"VirtualInterface"} }, "VirtualInterfaceName":{"type":"string"}, + "VirtualInterfaceRegion":{"type":"string"}, "VirtualInterfaceState":{ "type":"string", "enum":[ diff --git a/models/apis/directconnect/2012-10-25/docs-2.json b/models/apis/directconnect/2012-10-25/docs-2.json index 5d12265a6cb..b177128855a 100644 --- a/models/apis/directconnect/2012-10-25/docs-2.json +++ b/models/apis/directconnect/2012-10-25/docs-2.json @@ -8,30 +8,37 @@ "AllocatePublicVirtualInterface": "

Provisions a public virtual interface to be owned by a different customer.

The owner of a connection calls this function to provision a public virtual interface which will be owned by another AWS customer.

Virtual interfaces created using this function must be confirmed by the virtual interface owner by calling ConfirmPublicVirtualInterface. Until this step has been completed, the virtual interface will be in 'Confirming' state, and will not be available for handling traffic.

When creating an IPv6 public virtual interface (addressFamily is 'ipv6'), the customer and amazon address fields should be left blank to use auto-assigned IPv6 space. Custom IPv6 Addresses are currently not supported.

", "AssociateConnectionWithLag": "

Associates an existing connection with a link aggregation group (LAG). The connection is interrupted and re-established as a member of the LAG (connectivity to AWS will be interrupted). The connection must be hosted on the same AWS Direct Connect endpoint as the LAG, and its bandwidth must match the bandwidth for the LAG. You can reassociate a connection that's currently associated with a different LAG; however, if removing the connection will cause the original LAG to fall below its setting for minimum number of operational connections, the request fails.

Any virtual interfaces that are directly associated with the connection are automatically re-associated with the LAG. If the connection was originally associated with a different LAG, the virtual interfaces remain associated with the original LAG.

For interconnects, any hosted connections are automatically re-associated with the LAG. If the interconnect was originally associated with a different LAG, the hosted connections remain associated with the original LAG.

", "AssociateHostedConnection": "

Associates a hosted connection and its virtual interfaces with a link aggregation group (LAG) or interconnect. If the target interconnect or LAG has an existing hosted connection with a conflicting VLAN number or IP address, the operation fails. This action temporarily interrupts the hosted connection's connectivity to AWS as it is being migrated.

This is intended for use by AWS Direct Connect partners only.

", - "AssociateVirtualInterface": "

Associates a virtual interface with a specified link aggregation group (LAG) or connection. Connectivity to AWS is temporarily interrupted as the virtual interface is being migrated. If the target connection or LAG has an associated virtual interface with a conflicting VLAN number or a conflicting IP address, the operation fails.

Virtual interfaces associated with a hosted connection cannot be associated with a LAG; hosted connections must be migrated along with their virtual interfaces using AssociateHostedConnection.

Hosted virtual interfaces (an interface for which the owner of the connection is not the owner of physical connection) can only be reassociated by the owner of the physical connection.

", + "AssociateVirtualInterface": "

Associates a virtual interface with a specified link aggregation group (LAG) or connection. Connectivity to AWS is temporarily interrupted as the virtual interface is being migrated. If the target connection or LAG has an associated virtual interface with a conflicting VLAN number or a conflicting IP address, the operation fails.

Virtual interfaces associated with a hosted connection cannot be associated with a LAG; hosted connections must be migrated along with their virtual interfaces using AssociateHostedConnection.

In order to reassociate a virtual interface to a new connection or LAG, the requester must own either the virtual interface itself or the connection to which the virtual interface is currently associated. Additionally, the requester must own the connection or LAG to which the virtual interface will be newly associated.

", "ConfirmConnection": "

Confirm the creation of a hosted connection on an interconnect.

Upon creation, the hosted connection is initially in the 'Ordering' state, and will remain in this state until the owner calls ConfirmConnection to confirm creation of the hosted connection.

", - "ConfirmPrivateVirtualInterface": "

Accept ownership of a private virtual interface created by another customer.

After the virtual interface owner calls this function, the virtual interface will be created and attached to the given virtual private gateway, and will be available for handling traffic.

", + "ConfirmPrivateVirtualInterface": "

Accept ownership of a private virtual interface created by another customer.

After the virtual interface owner calls this function, the virtual interface will be created and attached to the given virtual private gateway or direct connect gateway, and will be available for handling traffic.

", "ConfirmPublicVirtualInterface": "

Accept ownership of a public virtual interface created by another customer.

After the virtual interface owner calls this function, the specified virtual interface will be created and made available for handling traffic.

", "CreateBGPPeer": "

Creates a new BGP peer on a specified virtual interface. The BGP peer cannot be in the same address family (IPv4/IPv6) of an existing BGP peer on the virtual interface.

You must create a BGP peer for the corresponding address family in order to access AWS resources that also use that address family.

When creating a IPv6 BGP peer, the Amazon address and customer address fields must be left blank. IPv6 addresses are automatically assigned from Amazon's pool of IPv6 addresses; you cannot specify custom IPv6 addresses.

For a public virtual interface, the Autonomous System Number (ASN) must be private or already whitelisted for the virtual interface.

", - "CreateConnection": "

Creates a new connection between the customer network and a specific AWS Direct Connect location.

A connection links your internal network to an AWS Direct Connect location over a standard 1 gigabit or 10 gigabit Ethernet fiber-optic cable. One end of the cable is connected to your router, the other to an AWS Direct Connect router. An AWS Direct Connect location provides access to Amazon Web Services in the region it is associated with. You can establish connections with AWS Direct Connect locations in multiple regions, but a connection in one region does not provide connectivity to other regions.

You can automatically add the new connection to a link aggregation group (LAG) by specifying a LAG ID in the request. This ensures that the new connection is allocated on the same AWS Direct Connect endpoint that hosts the specified LAG. If there are no available ports on the endpoint, the request fails and no connection will be created.

", + "CreateConnection": "

Creates a new connection between the customer network and a specific AWS Direct Connect location.

A connection links your internal network to an AWS Direct Connect location over a standard 1 gigabit or 10 gigabit Ethernet fiber-optic cable. One end of the cable is connected to your router, the other to an AWS Direct Connect router. An AWS Direct Connect location provides access to Amazon Web Services in the region it is associated with. You can establish connections with AWS Direct Connect locations in multiple regions, but a connection in one region does not provide connectivity to other regions.

To find the locations for your region, use DescribeLocations.

You can automatically add the new connection to a link aggregation group (LAG) by specifying a LAG ID in the request. This ensures that the new connection is allocated on the same AWS Direct Connect endpoint that hosts the specified LAG. If there are no available ports on the endpoint, the request fails and no connection will be created.

", + "CreateDirectConnectGateway": "

Creates a new direct connect gateway. A direct connect gateway is an intermediate object that enables you to connect a set of virtual interfaces and virtual private gateways. direct connect gateways are global and visible in any AWS region after they are created. The virtual interfaces and virtual private gateways that are connected through a direct connect gateway can be in different regions. This enables you to connect to a VPC in any region, regardless of the region in which the virtual interfaces are located, and pass traffic between them.

", + "CreateDirectConnectGatewayAssociation": "

Creates an association between a direct connect gateway and a virtual private gateway (VGW). The VGW must be attached to a VPC and must not be associated with another direct connect gateway.

", "CreateInterconnect": "

Creates a new interconnect between a AWS Direct Connect partner's network and a specific AWS Direct Connect location.

An interconnect is a connection which is capable of hosting other connections. The AWS Direct Connect partner can use an interconnect to provide sub-1Gbps AWS Direct Connect service to tier 2 customers who do not have their own connections. Like a standard connection, an interconnect links the AWS Direct Connect partner's network to an AWS Direct Connect location over a standard 1 Gbps or 10 Gbps Ethernet fiber-optic cable. One end is connected to the partner's router, the other to an AWS Direct Connect router.

You can automatically add the new interconnect to a link aggregation group (LAG) by specifying a LAG ID in the request. This ensures that the new interconnect is allocated on the same AWS Direct Connect endpoint that hosts the specified LAG. If there are no available ports on the endpoint, the request fails and no interconnect will be created.

For each end customer, the AWS Direct Connect partner provisions a connection on their interconnect by calling AllocateConnectionOnInterconnect. The end customer can then connect to AWS resources by creating a virtual interface on their connection, using the VLAN assigned to them by the AWS Direct Connect partner.

This is intended for use by AWS Direct Connect partners only.

", "CreateLag": "

Creates a new link aggregation group (LAG) with the specified number of bundled physical connections between the customer network and a specific AWS Direct Connect location. A LAG is a logical interface that uses the Link Aggregation Control Protocol (LACP) to aggregate multiple 1 gigabit or 10 gigabit interfaces, allowing you to treat them as a single interface.

All connections in a LAG must use the same bandwidth (for example, 10 Gbps), and must terminate at the same AWS Direct Connect endpoint.

You can have up to 10 connections per LAG. Regardless of this limit, if you request more connections for the LAG than AWS Direct Connect can allocate on a single endpoint, no LAG is created.

You can specify an existing physical connection or interconnect to include in the LAG (which counts towards the total number of connections). Doing so interrupts the current physical connection or hosted connections, and re-establishes them as a member of the LAG. The LAG will be created on the same AWS Direct Connect endpoint to which the connection terminates. Any virtual interfaces associated with the connection are automatically disassociated and re-associated with the LAG. The connection ID does not change.

If the AWS account used to create a LAG is a registered AWS Direct Connect partner, the LAG is automatically enabled to host sub-connections. For a LAG owned by a partner, any associated virtual interfaces cannot be directly configured.

", "CreatePrivateVirtualInterface": "

Creates a new private virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A private virtual interface supports sending traffic to a single virtual private cloud (VPC).

", "CreatePublicVirtualInterface": "

Creates a new public virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A public virtual interface supports sending traffic to public services of AWS such as Amazon Simple Storage Service (Amazon S3).

When creating an IPv6 public virtual interface (addressFamily is 'ipv6'), the customer and amazon address fields should be left blank to use auto-assigned IPv6 space. Custom IPv6 Addresses are currently not supported.

", "DeleteBGPPeer": "

Deletes a BGP peer on the specified virtual interface that matches the specified customer address and ASN. You cannot delete the last BGP peer from a virtual interface.

", "DeleteConnection": "

Deletes the connection.

Deleting a connection only stops the AWS Direct Connect port hour and data transfer charges. You need to cancel separately with the providers any services or charges for cross-connects or network circuits that connect you to the AWS Direct Connect location.

", + "DeleteDirectConnectGateway": "

Deletes a direct connect gateway. You must first delete all virtual interfaces that are attached to the direct connect gateway and disassociate all virtual private gateways that are associated with the direct connect gateway.

", + "DeleteDirectConnectGatewayAssociation": "

Deletes the association between a direct connect gateway and a virtual private gateway.

", "DeleteInterconnect": "

Deletes the specified interconnect.

This is intended for use by AWS Direct Connect partners only.

", "DeleteLag": "

Deletes a link aggregation group (LAG). You cannot delete a LAG if it has active virtual interfaces or hosted connections.

", "DeleteVirtualInterface": "

Deletes a virtual interface.

", "DescribeConnectionLoa": "

Deprecated in favor of DescribeLoa.

Returns the LOA-CFA for a Connection.

The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that your APN partner or service provider uses when establishing your cross connect to AWS at the colocation facility. For more information, see Requesting Cross Connects at AWS Direct Connect Locations in the AWS Direct Connect user guide.

", "DescribeConnections": "

Displays all connections in this region.

If a connection ID is provided, the call returns only that particular connection.

", "DescribeConnectionsOnInterconnect": "

Deprecated in favor of DescribeHostedConnections.

Returns a list of connections that have been provisioned on the given interconnect.

This is intended for use by AWS Direct Connect partners only.

", + "DescribeDirectConnectGatewayAssociations": "

Returns a list of all direct connect gateway and virtual private gateway (VGW) associations. Either a direct connect gateway ID or a VGW ID must be provided in the request. If a direct connect gateway ID is provided, the response returns all VGWs associated with the direct connect gateway. If a VGW ID is provided, the response returns all direct connect gateways associated with the VGW. If both are provided, the response only returns the association that matches both the direct connect gateway and the VGW.

", + "DescribeDirectConnectGatewayAttachments": "

Returns a list of all direct connect gateway and virtual interface (VIF) attachments. Either a direct connect gateway ID or a VIF ID must be provided in the request. If a direct connect gateway ID is provided, the response returns all VIFs attached to the direct connect gateway. If a VIF ID is provided, the response returns all direct connect gateways attached to the VIF. If both are provided, the response only returns the attachment that matches both the direct connect gateway and the VIF.

", + "DescribeDirectConnectGateways": "

Returns a list of direct connect gateways in your account. Deleted direct connect gateways are not returned. You can provide a direct connect gateway ID in the request to return information about the specific direct connect gateway only. Otherwise, if a direct connect gateway ID is not provided, information about all of your direct connect gateways is returned.

", "DescribeHostedConnections": "

Returns a list of hosted connections that have been provisioned on the given interconnect or link aggregation group (LAG).

This is intended for use by AWS Direct Connect partners only.

", "DescribeInterconnectLoa": "

Deprecated in favor of DescribeLoa.

Returns the LOA-CFA for an Interconnect.

The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that is used when establishing your cross connect to AWS at the colocation facility. For more information, see Requesting Cross Connects at AWS Direct Connect Locations in the AWS Direct Connect user guide.

", "DescribeInterconnects": "

Returns a list of interconnects owned by the AWS account.

If an interconnect ID is provided, it will only return this particular interconnect.

", "DescribeLags": "

Describes the link aggregation groups (LAGs) in your account.

If a LAG ID is provided, only information about the specified LAG is returned.

", "DescribeLoa": "

Returns the LOA-CFA for a connection, interconnect, or link aggregation group (LAG).

The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that is used when establishing your cross connect to AWS at the colocation facility. For more information, see Requesting Cross Connects at AWS Direct Connect Locations in the AWS Direct Connect user guide.

", - "DescribeLocations": "

Returns the list of AWS Direct Connect locations in the current AWS region. These are the locations that may be selected when calling CreateConnection or CreateInterconnect.

", + "DescribeLocations": "

Returns the list of AWS Direct Connect locations in the current AWS region. These are the locations that may be selected when calling CreateConnection or CreateInterconnect.

", "DescribeTags": "

Describes the tags associated with the specified Direct Connect resources.

", "DescribeVirtualGateways": "

Returns a list of virtual private gateways owned by the AWS account.

You can create one or more AWS Direct Connect private virtual interfaces linking to a virtual private gateway. A virtual private gateway can be managed via Amazon Virtual Private Cloud (VPC) console or the EC2 CreateVpnGateway action.

", "DescribeVirtualInterfaces": "

Displays all virtual interfaces for an AWS account. Virtual interfaces deleted fewer than 15 minutes before you make the request are also returned. If you specify a connection ID, only the virtual interfaces associated with the connection are returned. If you specify a virtual interface ID, then only a single virtual interface is returned.

A virtual interface (VLAN) transmits the traffic between the AWS Direct Connect location and the customer.

", @@ -295,6 +302,26 @@ "refs": { } }, + "CreateDirectConnectGatewayAssociationRequest": { + "base": "

Container for the parameters to the CreateDirectConnectGatewayAssociation operation.

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

Container for the response from the CreateDirectConnectGatewayAssociation API call

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

Container for the parameters to the CreateDirectConnectGateway operation.

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

Container for the response from the CreateDirectConnectGateway API call

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

Container for the parameters to the CreateInterconnect operation.

", "refs": { @@ -343,6 +370,26 @@ "refs": { } }, + "DeleteDirectConnectGatewayAssociationRequest": { + "base": "

Container for the parameters to the DeleteDirectConnectGatewayAssociation operation.

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

Container for the response from the DeleteDirectConnectGatewayAssociation API call

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

Container for the parameters to the DeleteDirectConnectGateway operation.

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

Container for the response from the DeleteDirectConnectGateway API call

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

Container for the parameters to the DeleteInterconnect operation.

", "refs": { @@ -388,6 +435,36 @@ "refs": { } }, + "DescribeDirectConnectGatewayAssociationsRequest": { + "base": "

Container for the parameters to the DescribeDirectConnectGatewayAssociations operation.

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

Container for the response from the DescribeDirectConnectGatewayAssociations API call

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

Container for the parameters to the DescribeDirectConnectGatewayAttachments operation.

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

Container for the response from the DescribeDirectConnectGatewayAttachments API call

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

Container for the parameters to the DescribeDirectConnectGateways operation.

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

Container for the response from the DescribeDirectConnectGateways API call

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

Container for the parameters to the DescribeHostedConnections operation.

", "refs": { @@ -438,6 +515,88 @@ "refs": { } }, + "DirectConnectGateway": { + "base": "

A direct connect gateway is an intermediate object that enables you to connect virtual interfaces and virtual private gateways.

", + "refs": { + "CreateDirectConnectGatewayResult$directConnectGateway": "

The direct connect gateway to be created.

", + "DeleteDirectConnectGatewayResult$directConnectGateway": "

The direct connect gateway to be deleted.

", + "DirectConnectGatewayList$member": null + } + }, + "DirectConnectGatewayAssociation": { + "base": "

The association between a direct connect gateway and virtual private gateway.

", + "refs": { + "CreateDirectConnectGatewayAssociationResult$directConnectGatewayAssociation": "

The direct connect gateway association to be created.

", + "DeleteDirectConnectGatewayAssociationResult$directConnectGatewayAssociation": "

The direct connect gateway association to be deleted.

", + "DirectConnectGatewayAssociationList$member": null + } + }, + "DirectConnectGatewayAssociationList": { + "base": "

A list of direct connect gateway associations.

", + "refs": { + "DescribeDirectConnectGatewayAssociationsResult$directConnectGatewayAssociations": "

Information about the direct connect gateway associations.

" + } + }, + "DirectConnectGatewayAssociationState": { + "base": "

State of the direct connect gateway association.

", + "refs": { + "DirectConnectGatewayAssociation$associationState": null + } + }, + "DirectConnectGatewayAttachment": { + "base": "

The association between a direct connect gateway and virtual interface.

", + "refs": { + "DirectConnectGatewayAttachmentList$member": null + } + }, + "DirectConnectGatewayAttachmentList": { + "base": "

A list of direct connect gateway attachments.

", + "refs": { + "DescribeDirectConnectGatewayAttachmentsResult$directConnectGatewayAttachments": "

Information about the direct connect gateway attachments.

" + } + }, + "DirectConnectGatewayAttachmentState": { + "base": "

State of the direct connect gateway attachment.

", + "refs": { + "DirectConnectGatewayAttachment$attachmentState": null + } + }, + "DirectConnectGatewayId": { + "base": "

The ID of the direct connect gateway.

Example: \"abcd1234-dcba-5678-be23-cdef9876ab45\"

", + "refs": { + "ConfirmPrivateVirtualInterfaceRequest$directConnectGatewayId": "

ID of the direct connect gateway that will be attached to the virtual interface.

A direct connect gateway can be managed via the AWS Direct Connect console or the CreateDirectConnectGateway action.

Default: None

", + "CreateDirectConnectGatewayAssociationRequest$directConnectGatewayId": "

The ID of the direct connect gateway.

Example: \"abcd1234-dcba-5678-be23-cdef9876ab45\"

Default: None

", + "DeleteDirectConnectGatewayAssociationRequest$directConnectGatewayId": "

The ID of the direct connect gateway.

Example: \"abcd1234-dcba-5678-be23-cdef9876ab45\"

Default: None

", + "DeleteDirectConnectGatewayRequest$directConnectGatewayId": "

The ID of the direct connect gateway.

Example: \"abcd1234-dcba-5678-be23-cdef9876ab45\"

Default: None

", + "DescribeDirectConnectGatewayAssociationsRequest$directConnectGatewayId": "

The ID of the direct connect gateway.

Example: \"abcd1234-dcba-5678-be23-cdef9876ab45\"

Default: None

", + "DescribeDirectConnectGatewayAttachmentsRequest$directConnectGatewayId": "

The ID of the direct connect gateway.

Example: \"abcd1234-dcba-5678-be23-cdef9876ab45\"

Default: None

", + "DescribeDirectConnectGatewaysRequest$directConnectGatewayId": "

The ID of the direct connect gateway.

Example: \"abcd1234-dcba-5678-be23-cdef9876ab45\"

Default: None

", + "DirectConnectGateway$directConnectGatewayId": null, + "DirectConnectGatewayAssociation$directConnectGatewayId": null, + "DirectConnectGatewayAttachment$directConnectGatewayId": null, + "NewPrivateVirtualInterface$directConnectGatewayId": null, + "VirtualInterface$directConnectGatewayId": null + } + }, + "DirectConnectGatewayList": { + "base": "

A list of direct connect gateways.

", + "refs": { + "DescribeDirectConnectGatewaysResult$directConnectGateways": "

Information about the direct connect gateways.

" + } + }, + "DirectConnectGatewayName": { + "base": "

The name of the direct connect gateway.

Example: \"My direct connect gateway\"

Default: None

", + "refs": { + "CreateDirectConnectGatewayRequest$directConnectGatewayName": "

The name of the direct connect gateway.

Example: \"My direct connect gateway\"

Default: None

", + "DirectConnectGateway$directConnectGatewayName": null + } + }, + "DirectConnectGatewayState": { + "base": "

State of the direct connect gateway.

", + "refs": { + "DirectConnectGateway$directConnectGatewayState": null + } + }, "DirectConnectServerException": { "base": "

A server-side error occurred during the API call. The error message will contain additional details about the cause.

", "refs": { @@ -613,6 +772,22 @@ "refs": { } }, + "LongAsn": { + "base": null, + "refs": { + "CreateDirectConnectGatewayRequest$amazonSideAsn": "

The autonomous system number (ASN) for Border Gateway Protocol (BGP) to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294

Example: 65200

Default: 64512

", + "DirectConnectGateway$amazonSideAsn": "

The autonomous system number (ASN) for the Amazon side of the connection.

", + "VirtualInterface$amazonSideAsn": "

The autonomous system number (ASN) for the Amazon side of the connection.

" + } + }, + "MaxResultSetSize": { + "base": "

Maximum number of objects to return per page.

", + "refs": { + "DescribeDirectConnectGatewayAssociationsRequest$maxResults": "

The maximum number of direct connect gateway associations to return per page.

Example: 15

Default: None

", + "DescribeDirectConnectGatewayAttachmentsRequest$maxResults": "

The maximum number of direct connect gateway attachments to return per page.

Example: 15

Default: None

", + "DescribeDirectConnectGatewaysRequest$maxResults": "

The maximum number of direct connect gateways to return per page.

Example: 15

Default: None

" + } + }, "NewBGPPeer": { "base": "

A structure containing information about a new BGP peer.

", "refs": { @@ -651,10 +826,24 @@ "AllocatePrivateVirtualInterfaceRequest$ownerAccount": "

The AWS account that will own the new private virtual interface.

Default: None

", "AllocatePublicVirtualInterfaceRequest$ownerAccount": "

The AWS account that will own the new public virtual interface.

Default: None

", "Connection$ownerAccount": "

The AWS account that will own the new connection.

", + "DirectConnectGateway$ownerAccount": "

The AWS account ID of the owner of the direct connect gateway.

", + "DirectConnectGatewayAssociation$virtualGatewayOwnerAccount": "

The AWS account ID of the owner of the virtual private gateway.

", + "DirectConnectGatewayAttachment$virtualInterfaceOwnerAccount": "

The AWS account ID of the owner of the virtual interface.

", "Lag$ownerAccount": "

The owner of the LAG.

", "VirtualInterface$ownerAccount": "

The AWS account that will own the new virtual interface.

" } }, + "PaginationToken": { + "base": "

Token to retrieve the next page of the result.

", + "refs": { + "DescribeDirectConnectGatewayAssociationsRequest$nextToken": "

The token provided in the previous describe result to retrieve the next page of the result.

Default: None

", + "DescribeDirectConnectGatewayAssociationsResult$nextToken": null, + "DescribeDirectConnectGatewayAttachmentsRequest$nextToken": "

The token provided in the previous describe result to retrieve the next page of the result.

Default: None

", + "DescribeDirectConnectGatewayAttachmentsResult$nextToken": null, + "DescribeDirectConnectGatewaysRequest$nextToken": "

The token provided in the previous describe result to retrieve the next page of the result.

Default: None

", + "DescribeDirectConnectGatewaysResult$nextToken": null + } + }, "PartnerName": { "base": null, "refs": { @@ -724,6 +913,14 @@ "VirtualInterface$customerRouterConfig": "

Information for generating the customer router configuration.

" } }, + "StateChangeError": { + "base": "

Error message when the state of an object fails to advance.

", + "refs": { + "DirectConnectGateway$stateChangeError": null, + "DirectConnectGatewayAssociation$stateChangeError": null, + "DirectConnectGatewayAttachment$stateChangeError": null + } + }, "Tag": { "base": "

Information about a tag.

", "refs": { @@ -809,6 +1006,10 @@ "base": "

The ID of the virtual private gateway to a VPC. This only applies to private virtual interfaces.

Example: vgw-123er56

", "refs": { "ConfirmPrivateVirtualInterfaceRequest$virtualGatewayId": "

ID of the virtual private gateway that will be attached to the virtual interface.

A virtual private gateway can be managed via the Amazon Virtual Private Cloud (VPC) console or the EC2 CreateVpnGateway action.

Default: None

", + "CreateDirectConnectGatewayAssociationRequest$virtualGatewayId": "

The ID of the virtual private gateway.

Example: \"vgw-abc123ef\"

Default: None

", + "DeleteDirectConnectGatewayAssociationRequest$virtualGatewayId": "

The ID of the virtual private gateway.

Example: \"vgw-abc123ef\"

Default: None

", + "DescribeDirectConnectGatewayAssociationsRequest$virtualGatewayId": "

The ID of the virtual private gateway.

Example: \"vgw-abc123ef\"

Default: None

", + "DirectConnectGatewayAssociation$virtualGatewayId": null, "NewPrivateVirtualInterface$virtualGatewayId": null, "VirtualGateway$virtualGatewayId": null, "VirtualInterface$virtualGatewayId": null @@ -820,6 +1021,12 @@ "VirtualGateways$virtualGateways": "

A list of virtual private gateways.

" } }, + "VirtualGatewayRegion": { + "base": "

The region in which the virtual private gateway is located.

Example: us-east-1

", + "refs": { + "DirectConnectGatewayAssociation$virtualGatewayRegion": null + } + }, "VirtualGatewayState": { "base": "

State of the virtual private gateway.

", "refs": { @@ -848,7 +1055,9 @@ "CreateBGPPeerRequest$virtualInterfaceId": "

The ID of the virtual interface on which the BGP peer will be provisioned.

Example: dxvif-456abc78

Default: None

", "DeleteBGPPeerRequest$virtualInterfaceId": "

The ID of the virtual interface from which the BGP peer will be deleted.

Example: dxvif-456abc78

Default: None

", "DeleteVirtualInterfaceRequest$virtualInterfaceId": null, + "DescribeDirectConnectGatewayAttachmentsRequest$virtualInterfaceId": "

The ID of the virtual interface.

Example: \"dxvif-abc123ef\"

Default: None

", "DescribeVirtualInterfacesRequest$virtualInterfaceId": null, + "DirectConnectGatewayAttachment$virtualInterfaceId": null, "VirtualInterface$virtualInterfaceId": null } }, @@ -868,6 +1077,12 @@ "VirtualInterface$virtualInterfaceName": null } }, + "VirtualInterfaceRegion": { + "base": "

The region in which the virtual interface is located.

Example: us-east-1

", + "refs": { + "DirectConnectGatewayAttachment$virtualInterfaceRegion": null + } + }, "VirtualInterfaceState": { "base": "

State of the virtual interface.

", "refs": { diff --git a/models/apis/discovery/2015-11-01/api-2.json b/models/apis/discovery/2015-11-01/api-2.json index f0115dfcdc7..a06dfc6893b 100644 --- a/models/apis/discovery/2015-11-01/api-2.json +++ b/models/apis/discovery/2015-11-01/api-2.json @@ -594,6 +594,7 @@ "type":"structure", "members":{ "exportIds":{"shape":"ExportIds"}, + "filters":{"shape":"ExportFilters"}, "maxResults":{"shape":"Integer"}, "nextToken":{"shape":"NextToken"} } @@ -653,6 +654,23 @@ "type":"list", "member":{"shape":"ExportDataFormat"} }, + "ExportFilter":{ + "type":"structure", + "required":[ + "name", + "values", + "condition" + ], + "members":{ + "name":{"shape":"FilterName"}, + "values":{"shape":"FilterValues"}, + "condition":{"shape":"Condition"} + } + }, + "ExportFilters":{ + "type":"list", + "member":{"shape":"ExportFilter"} + }, "ExportIds":{ "type":"list", "member":{"shape":"ConfigurationsExportId"} @@ -670,7 +688,10 @@ "exportStatus":{"shape":"ExportStatus"}, "statusMessage":{"shape":"ExportStatusMessage"}, "configurationsDownloadUrl":{"shape":"ConfigurationsDownloadUrl"}, - "exportRequestTime":{"shape":"ExportRequestTime"} + "exportRequestTime":{"shape":"ExportRequestTime"}, + "isTruncated":{"shape":"Boolean"}, + "requestedStartTime":{"shape":"TimeStamp"}, + "requestedEndTime":{"shape":"TimeStamp"} } }, "ExportRequestTime":{"type":"timestamp"}, @@ -854,7 +875,10 @@ "StartExportTaskRequest":{ "type":"structure", "members":{ - "exportDataFormat":{"shape":"ExportDataFormats"} + "exportDataFormat":{"shape":"ExportDataFormats"}, + "filters":{"shape":"ExportFilters"}, + "startTime":{"shape":"TimeStamp"}, + "endTime":{"shape":"TimeStamp"} } }, "StartExportTaskResponse":{ diff --git a/models/apis/discovery/2015-11-01/docs-2.json b/models/apis/discovery/2015-11-01/docs-2.json index df6d3ed2c4d..469abd04d06 100644 --- a/models/apis/discovery/2015-11-01/docs-2.json +++ b/models/apis/discovery/2015-11-01/docs-2.json @@ -18,7 +18,7 @@ "ListConfigurations": "

Retrieves a list of configuration items according to criteria that you specify in a filter. The filter criteria identifies the relationship requirements.

", "ListServerNeighbors": "

Retrieves a list of servers that are one network hop away from a specified server.

", "StartDataCollectionByAgentIds": "

Instructs the specified agents or connectors to start collecting data.

", - "StartExportTask": "

Export the configuration data about discovered configuration items and relationships to an S3 bucket in a specified format.

", + "StartExportTask": "

Begins the export of discovered data to an S3 bucket.

If you specify agentId in a filter, the task exports up to 72 hours of detailed data collected by the identified Application Discovery Agent, including network, process, and performance details. A time range for exported agent data may be set by using startTime and endTime. Export of detailed agent data is limited to five concurrently running exports.

If you do not include an agentId filter, summary data is exported that includes both AWS Agentless Discovery Connector data and summary data from AWS Discovery Agents. Export of summary data is limited to two exports per day.

", "StopDataCollectionByAgentIds": "

Instructs the specified agents or connectors to stop collecting data.

", "UpdateApplication": "

Updates metadata about an application.

" }, @@ -115,6 +115,7 @@ "base": null, "refs": { "AgentConfigurationStatus$operationSucceeded": "

Information about the status of the StartDataCollection and StopDataCollection operations. The system has recorded the data collection operation. The agent/connector receives this command the next time it polls for a new command.

", + "ExportInfo$isTruncated": "

If true, the export of agent information exceeded the size limit for a single export and the exported data is incomplete for the requested time range. To address this, select a smaller time range for the export by using startDate and endDate.

", "ListServerNeighborsRequest$portInformationNeeded": "

Flag to indicate if port and protocol information is needed as part of the response.

" } }, @@ -127,6 +128,7 @@ "Condition": { "base": null, "refs": { + "ExportFilter$condition": "

Supported condition: EQUALS

", "Filter$condition": "

A conditional operator. The following operators are valid: EQUALS, NOT_EQUALS, CONTAINS, NOT_CONTAINS. If you specify multiple filters, the system utilizes all filters as though concatenated by AND. If you specify multiple values for a particular filter, the system differentiates the values using OR. Calling either DescribeConfigurations or ListConfigurations returns attributes of matching configuration items.

" } }, @@ -185,7 +187,7 @@ "ConfigurationsDownloadUrl": { "base": null, "refs": { - "ExportInfo$configurationsDownloadUrl": "

A URL for an Amazon S3 bucket where you can review the configuration data. The URL is displayed only if the export succeeded.

" + "ExportInfo$configurationsDownloadUrl": "

A URL for an Amazon S3 bucket where you can review the exported data. The URL is displayed only if the export succeeded.

" } }, "ConfigurationsExportId": { @@ -193,8 +195,8 @@ "refs": { "ExportConfigurationsResponse$exportId": "

A unique identifier that you can use to query the export status.

", "ExportIds$member": null, - "ExportInfo$exportId": "

A unique identifier that you can use to query the export.

", - "StartExportTaskResponse$exportId": "

A unique identifier used to query the status of an export request.

" + "ExportInfo$exportId": "

A unique identifier used to query an export.

", + "StartExportTaskResponse$exportId": "

A unique identifier used to query the status of an export request.

" } }, "CreateApplicationRequest": { @@ -338,6 +340,19 @@ "StartExportTaskRequest$exportDataFormat": "

The file format for the returned export data. Default value is CSV.

" } }, + "ExportFilter": { + "base": "

Used to select which agent's data is to be exported. A single agent ID may be selected for export using the StartExportTask action.

", + "refs": { + "ExportFilters$member": null + } + }, + "ExportFilters": { + "base": null, + "refs": { + "DescribeExportTasksRequest$filters": "

One or more filters.

", + "StartExportTaskRequest$filters": "

If a filter is present, it selects the single agentId of the Application Discovery Agent for which data is exported. The agentId can be found in the results of the DescribeAgents API or CLI. If no filter is present, startTime and endTime are ignored and exported data includes both Agentless Discovery Connector data and summary data from Application Discovery agents.

" + } + }, "ExportIds": { "base": null, "refs": { @@ -346,7 +361,7 @@ } }, "ExportInfo": { - "base": "

Information regarding the export status of the discovered data. The value is an array of objects.

", + "base": "

Information regarding the export status of discovered data. The value is an array of objects.

", "refs": { "ExportsInfo$member": null } @@ -354,19 +369,19 @@ "ExportRequestTime": { "base": null, "refs": { - "ExportInfo$exportRequestTime": "

The time that the configuration data export was initiated.

" + "ExportInfo$exportRequestTime": "

The time that the data export was initiated.

" } }, "ExportStatus": { "base": null, "refs": { - "ExportInfo$exportStatus": "

The status of the configuration data export. The status can succeed, fail, or be in-progress.

" + "ExportInfo$exportStatus": "

The status of the data export job.

" } }, "ExportStatusMessage": { "base": null, "refs": { - "ExportInfo$statusMessage": "

Helpful status messages for API callers. For example: Too many exports in the last 6 hours. Export in progress. Export was successful.

" + "ExportInfo$statusMessage": "

A status message provided for API callers.

" } }, "ExportsInfo": { @@ -385,6 +400,7 @@ "FilterName": { "base": null, "refs": { + "ExportFilter$name": "

A single ExportFilter name. Supported filters: agentId.

", "TagFilter$name": "

A name of the tag filter.

" } }, @@ -397,6 +413,7 @@ "FilterValues": { "base": null, "refs": { + "ExportFilter$values": "

A single agentId for a Discovery Agent. An agentId can be found using the DescribeAgents action. Typically an ADS agentId is in the form o-0123456789abcdef0.

", "Filter$values": "

A string value on which to filter. For example, if you choose the destinationServer.osVersion filter name, you could specify Ubuntu for the value.

", "TagFilter$values": "

Values for the tag filter.

" } @@ -651,7 +668,11 @@ "TimeStamp": { "base": null, "refs": { - "ConfigurationTag$timeOfCreation": "

The time the configuration tag was created in Coordinated Universal Time (UTC).

" + "ConfigurationTag$timeOfCreation": "

The time the configuration tag was created in Coordinated Universal Time (UTC).

", + "ExportInfo$requestedStartTime": "

The value of startTime parameter in the StartExportTask request. If no startTime was requested, this result does not appear in ExportInfo.

", + "ExportInfo$requestedEndTime": "

The endTime used in the StartExportTask request. If no endTime was requested, this result does not appear in ExportInfo.

", + "StartExportTaskRequest$startTime": "

The start timestamp for exported data from the single Application Discovery Agent selected in the filters. If no value is specified, data is exported starting from the first data collected by the agent.

", + "StartExportTaskRequest$endTime": "

The end timestamp for exported data from the single Application Discovery Agent selected in the filters. If no value is specified, exported data includes the most recent data collected by the agent.

" } }, "UpdateApplicationRequest": { diff --git a/models/apis/dms/2016-01-01/api-2.json b/models/apis/dms/2016-01-01/api-2.json index e2d759ad952..85d4af7420e 100644 --- a/models/apis/dms/2016-01-01/api-2.json +++ b/models/apis/dms/2016-01-01/api-2.json @@ -6,6 +6,7 @@ "jsonVersion":"1.1", "protocol":"json", "serviceFullName":"AWS Database Migration Service", + "serviceId":"Database Migration Service", "signatureVersion":"v4", "targetPrefix":"AmazonDMSv20160101", "uid":"dms-2016-01-01" @@ -319,6 +320,18 @@ {"shape":"ResourceNotFoundFault"} ] }, + "DescribeReplicationTaskAssessmentResults":{ + "name":"DescribeReplicationTaskAssessmentResults", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReplicationTaskAssessmentResultsMessage"}, + "output":{"shape":"DescribeReplicationTaskAssessmentResultsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundFault"} + ] + }, "DescribeReplicationTasks":{ "name":"DescribeReplicationTasks", "http":{ @@ -515,6 +528,19 @@ {"shape":"InvalidResourceStateFault"} ] }, + "StartReplicationTaskAssessment":{ + "name":"StartReplicationTaskAssessment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartReplicationTaskAssessmentMessage"}, + "output":{"shape":"StartReplicationTaskAssessmentResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"}, + {"shape":"ResourceNotFoundFault"} + ] + }, "StopReplicationTask":{ "name":"StopReplicationTask", "http":{ @@ -562,10 +588,7 @@ }, "AccountQuotaList":{ "type":"list", - "member":{ - "shape":"AccountQuota", - "locationName":"AccountQuota" - } + "member":{"shape":"AccountQuota"} }, "AddTagsToResourceMessage":{ "type":"structure", @@ -623,10 +646,7 @@ }, "CertificateList":{ "type":"list", - "member":{ - "shape":"Certificate", - "locationName":"Certificate" - } + "member":{"shape":"Certificate"} }, "CertificateWallet":{"type":"blob"}, "CompressionTypeValue":{ @@ -649,10 +669,7 @@ }, "ConnectionList":{ "type":"list", - "member":{ - "shape":"Connection", - "locationName":"Connection" - } + "member":{"shape":"Connection"} }, "CreateEndpointMessage":{ "type":"structure", @@ -1039,6 +1056,22 @@ "ReplicationSubnetGroups":{"shape":"ReplicationSubnetGroups"} } }, + "DescribeReplicationTaskAssessmentResultsMessage":{ + "type":"structure", + "members":{ + "ReplicationTaskArn":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeReplicationTaskAssessmentResultsResponse":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "BucketName":{"shape":"String"}, + "ReplicationTaskAssessmentResults":{"shape":"ReplicationTaskAssessmentResultList"} + } + }, "DescribeReplicationTasksMessage":{ "type":"structure", "members":{ @@ -1076,7 +1109,8 @@ "members":{ "ReplicationTaskArn":{"shape":"String"}, "MaxRecords":{"shape":"IntegerOptional"}, - "Marker":{"shape":"String"} + "Marker":{"shape":"String"}, + "Filters":{"shape":"FilterList"} } }, "DescribeTableStatisticsResponse":{ @@ -1127,10 +1161,7 @@ }, "EndpointList":{ "type":"list", - "member":{ - "shape":"Endpoint", - "locationName":"Endpoint" - } + "member":{"shape":"Endpoint"} }, "Event":{ "type":"structure", @@ -1144,10 +1175,7 @@ }, "EventCategoriesList":{ "type":"list", - "member":{ - "shape":"String", - "locationName":"EventCategory" - } + "member":{"shape":"String"} }, "EventCategoryGroup":{ "type":"structure", @@ -1158,17 +1186,11 @@ }, "EventCategoryGroupList":{ "type":"list", - "member":{ - "shape":"EventCategoryGroup", - "locationName":"EventCategoryGroup" - } + "member":{"shape":"EventCategoryGroup"} }, "EventList":{ "type":"list", - "member":{ - "shape":"Event", - "locationName":"Event" - } + "member":{"shape":"Event"} }, "EventSubscription":{ "type":"structure", @@ -1186,10 +1208,7 @@ }, "EventSubscriptionsList":{ "type":"list", - "member":{ - "shape":"EventSubscription", - "locationName":"EventSubscription" - } + "member":{"shape":"EventSubscription"} }, "ExceptionMessage":{"type":"string"}, "Filter":{ @@ -1205,17 +1224,11 @@ }, "FilterList":{ "type":"list", - "member":{ - "shape":"Filter", - "locationName":"Filter" - } + "member":{"shape":"Filter"} }, "FilterValueList":{ "type":"list", - "member":{ - "shape":"String", - "locationName":"Value" - } + "member":{"shape":"String"} }, "ImportCertificateMessage":{ "type":"structure", @@ -1436,10 +1449,7 @@ }, "OrderableReplicationInstanceList":{ "type":"list", - "member":{ - "shape":"OrderableReplicationInstance", - "locationName":"OrderableReplicationInstance" - } + "member":{"shape":"OrderableReplicationInstance"} }, "RefreshSchemasMessage":{ "type":"structure", @@ -1550,10 +1560,7 @@ }, "ReplicationInstanceList":{ "type":"list", - "member":{ - "shape":"ReplicationInstance", - "locationName":"ReplicationInstance" - } + "member":{"shape":"ReplicationInstance"} }, "ReplicationInstancePrivateIpAddressList":{ "type":"list", @@ -1591,10 +1598,7 @@ }, "ReplicationSubnetGroups":{ "type":"list", - "member":{ - "shape":"ReplicationSubnetGroup", - "locationName":"ReplicationSubnetGroup" - } + "member":{"shape":"ReplicationSubnetGroup"} }, "ReplicationTask":{ "type":"structure", @@ -1615,12 +1619,25 @@ "ReplicationTaskStats":{"shape":"ReplicationTaskStats"} } }, + "ReplicationTaskAssessmentResult":{ + "type":"structure", + "members":{ + "ReplicationTaskIdentifier":{"shape":"String"}, + "ReplicationTaskArn":{"shape":"String"}, + "ReplicationTaskLastAssessmentDate":{"shape":"TStamp"}, + "AssessmentStatus":{"shape":"String"}, + "AssessmentResultsFile":{"shape":"String"}, + "AssessmentResults":{"shape":"String"}, + "S3ObjectUrl":{"shape":"String"} + } + }, + "ReplicationTaskAssessmentResultList":{ + "type":"list", + "member":{"shape":"ReplicationTaskAssessmentResult"} + }, "ReplicationTaskList":{ "type":"list", - "member":{ - "shape":"ReplicationTask", - "locationName":"ReplicationTask" - } + "member":{"shape":"ReplicationTask"} }, "ReplicationTaskStats":{ "type":"structure", @@ -1690,15 +1707,25 @@ }, "SourceIdsList":{ "type":"list", - "member":{ - "shape":"String", - "locationName":"SourceId" - } + "member":{"shape":"String"} }, "SourceType":{ "type":"string", "enum":["replication-instance"] }, + "StartReplicationTaskAssessmentMessage":{ + "type":"structure", + "required":["ReplicationTaskArn"], + "members":{ + "ReplicationTaskArn":{"shape":"String"} + } + }, + "StartReplicationTaskAssessmentResponse":{ + "type":"structure", + "members":{ + "ReplicationTask":{"shape":"ReplicationTask"} + } + }, "StartReplicationTaskMessage":{ "type":"structure", "required":[ @@ -1763,17 +1790,11 @@ }, "SubnetIdentifierList":{ "type":"list", - "member":{ - "shape":"String", - "locationName":"SubnetIdentifier" - } + "member":{"shape":"String"} }, "SubnetList":{ "type":"list", - "member":{ - "shape":"Subnet", - "locationName":"Subnet" - } + "member":{"shape":"Subnet"} }, "SupportedEndpointType":{ "type":"structure", @@ -1785,10 +1806,7 @@ }, "SupportedEndpointTypeList":{ "type":"list", - "member":{ - "shape":"SupportedEndpointType", - "locationName":"SupportedEndpointType" - } + "member":{"shape":"SupportedEndpointType"} }, "TStamp":{"type":"timestamp"}, "TableListToReload":{ @@ -1808,7 +1826,11 @@ "FullLoadCondtnlChkFailedRows":{"shape":"Long"}, "FullLoadErrorRows":{"shape":"Long"}, "LastUpdateTime":{"shape":"TStamp"}, - "TableState":{"shape":"String"} + "TableState":{"shape":"String"}, + "ValidationPendingRecords":{"shape":"Long"}, + "ValidationFailedRecords":{"shape":"Long"}, + "ValidationSuspendedRecords":{"shape":"Long"}, + "ValidationState":{"shape":"String"} } }, "TableStatisticsList":{ @@ -1831,10 +1853,7 @@ }, "TagList":{ "type":"list", - "member":{ - "shape":"Tag", - "locationName":"Tag" - } + "member":{"shape":"Tag"} }, "TestConnectionMessage":{ "type":"structure", @@ -1862,10 +1881,7 @@ }, "VpcSecurityGroupIdList":{ "type":"list", - "member":{ - "shape":"String", - "locationName":"VpcSecurityGroupId" - } + "member":{"shape":"String"} }, "VpcSecurityGroupMembership":{ "type":"structure", @@ -1876,10 +1892,7 @@ }, "VpcSecurityGroupMembershipList":{ "type":"list", - "member":{ - "shape":"VpcSecurityGroupMembership", - "locationName":"VpcSecurityGroupMembership" - } + "member":{"shape":"VpcSecurityGroupMembership"} } } } diff --git a/models/apis/dms/2016-01-01/docs-2.json b/models/apis/dms/2016-01-01/docs-2.json index 9c2edf2c68c..baeffa87dbe 100644 --- a/models/apis/dms/2016-01-01/docs-2.json +++ b/models/apis/dms/2016-01-01/docs-2.json @@ -26,9 +26,10 @@ "DescribeRefreshSchemasStatus": "

Returns the status of the RefreshSchemas operation.

", "DescribeReplicationInstances": "

Returns information about replication instances for your account in the current region.

", "DescribeReplicationSubnetGroups": "

Returns information about the replication subnet groups.

", + "DescribeReplicationTaskAssessmentResults": "

Returns the task assessment results from Amazon S3. This action always returns the latest results.

", "DescribeReplicationTasks": "

Returns information about replication tasks for your account in the current region.

", "DescribeSchemas": "

Returns information about the schema for the specified endpoint.

", - "DescribeTableStatistics": "

Returns table statistics on the database migration task, including table name, rows inserted, rows updated, and rows deleted.

", + "DescribeTableStatistics": "

Returns table statistics on the database migration task, including table name, rows inserted, rows updated, and rows deleted.

Note that the \"last updated\" column the DMS console only indicates the time that AWS DMS last updated the table statistics record for a table. It does not indicate the time of the last update to the table.

", "ImportCertificate": "

Uploads the specified certificate.

", "ListTagsForResource": "

Lists all tags for an AWS DMS resource.

", "ModifyEndpoint": "

Modifies the specified endpoint.

", @@ -40,6 +41,7 @@ "ReloadTables": "

Reloads the target database table with the source data.

", "RemoveTagsFromResource": "

Removes metadata tags from a DMS resource.

", "StartReplicationTask": "

Starts the replication task.

For more information about AWS DMS tasks, see the AWS DMS user guide at Working with Migration Tasks

", + "StartReplicationTaskAssessment": "

Starts the replication task assessment for unsupported data types in the source database.

", "StopReplicationTask": "

Stops the replication task.

", "TestConnection": "

Tests the connection between the replication instance and the endpoint.

" }, @@ -384,6 +386,16 @@ "refs": { } }, + "DescribeReplicationTaskAssessmentResultsMessage": { + "base": "

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

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

", "refs": { @@ -533,7 +545,8 @@ "DescribeEventsMessage$Filters": "

Filters applied to the action.

", "DescribeReplicationInstancesMessage$Filters": "

Filters applied to the describe action.

Valid filter names: replication-instance-arn | replication-instance-id | replication-instance-class | engine-version

", "DescribeReplicationSubnetGroupsMessage$Filters": "

Filters applied to the describe action.

", - "DescribeReplicationTasksMessage$Filters": "

Filters applied to the describe action.

Valid filter names: replication-task-arn | replication-task-id | migration-type | endpoint-arn | replication-instance-arn

" + "DescribeReplicationTasksMessage$Filters": "

Filters applied to the describe action.

Valid filter names: replication-task-arn | replication-task-id | migration-type | endpoint-arn | replication-instance-arn

", + "DescribeTableStatisticsMessage$Filters": "

Filters applied to the describe table statistics action.

Valid filter names: schema-name | table-name | table-state

A combination of filters creates an AND condition where each record matches all specified filters.

" } }, "FilterValueList": { @@ -588,9 +601,10 @@ "DescribeOrderableReplicationInstancesMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

", "DescribeReplicationInstancesMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

", "DescribeReplicationSubnetGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

", + "DescribeReplicationTaskAssessmentResultsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

", "DescribeReplicationTasksMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

", "DescribeSchemasMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

", - "DescribeTableStatisticsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

", + "DescribeTableStatisticsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 500.

", "Endpoint$Port": "

The port value used to access the endpoint.

", "ModifyEndpointMessage$Port": "

The port used by the endpoint database.

", "ModifyReplicationInstanceMessage$AllocatedStorage": "

The amount of storage (in gigabytes) to be allocated for the replication instance.

", @@ -646,7 +660,10 @@ "TableStatistics$Ddls": "

The Data Definition Language (DDL) used to build and modify the structure of your tables.

", "TableStatistics$FullLoadRows": "

The number of rows added during the Full Load operation.

", "TableStatistics$FullLoadCondtnlChkFailedRows": "

The number of rows that failed conditional checks during the Full Load operation (valid only for DynamoDB as a target migrations).

", - "TableStatistics$FullLoadErrorRows": "

The number of rows that failed to load during the Full Load operation (valid only for DynamoDB as a target migrations).

" + "TableStatistics$FullLoadErrorRows": "

The number of rows that failed to load during the Full Load operation (valid only for DynamoDB as a target migrations).

", + "TableStatistics$ValidationPendingRecords": "

The number of records that have yet to be validated.

", + "TableStatistics$ValidationFailedRecords": "

The number of records that failed validation.

", + "TableStatistics$ValidationSuspendedRecords": "

The number of records that could not be validated.

" } }, "MigrationTypeValue": { @@ -845,10 +862,23 @@ "DeleteReplicationTaskResponse$ReplicationTask": "

The deleted replication task.

", "ModifyReplicationTaskResponse$ReplicationTask": "

The replication task that was modified.

", "ReplicationTaskList$member": null, + "StartReplicationTaskAssessmentResponse$ReplicationTask": "

The assessed replication task.

", "StartReplicationTaskResponse$ReplicationTask": "

The replication task started.

", "StopReplicationTaskResponse$ReplicationTask": "

The replication task stopped.

" } }, + "ReplicationTaskAssessmentResult": { + "base": "

The task assessment report in JSON format.

", + "refs": { + "ReplicationTaskAssessmentResultList$member": null + } + }, + "ReplicationTaskAssessmentResultList": { + "base": null, + "refs": { + "DescribeReplicationTaskAssessmentResultsResponse$ReplicationTaskAssessmentResults": "

The task assessment report.

" + } + }, "ReplicationTaskList": { "base": null, "refs": { @@ -922,6 +952,16 @@ "Event$SourceType": "

The type of AWS DMS resource that generates events.

Valid values: replication-instance | endpoint | migration-task

" } }, + "StartReplicationTaskAssessmentMessage": { + "base": "

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

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

", "refs": { @@ -977,7 +1017,7 @@ "CreateEndpointMessage$DatabaseName": "

The name of the endpoint database.

", "CreateEndpointMessage$ExtraConnectionAttributes": "

Additional attributes associated with the connection.

", "CreateEndpointMessage$KmsKeyId": "

The KMS key identifier that will be used to encrypt the connection parameters. If you do not specify a value for the KmsKeyId parameter, then AWS DMS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region.

", - "CreateEndpointMessage$CertificateArn": "

The Amazon Resource Number (ARN) for the certificate.

", + "CreateEndpointMessage$CertificateArn": "

The Amazon Resource Name (ARN) for the certificate.

", "CreateEventSubscriptionMessage$SubscriptionName": "

The name of the DMS event notification subscription.

Constraints: The name must be less than 255 characters.

", "CreateEventSubscriptionMessage$SnsTopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.

", "CreateEventSubscriptionMessage$SourceType": "

The type of AWS DMS resource that generates the events. For example, if you want to be notified of events generated by a replication instance, you set this parameter to replication-instance. If this value is not specified, all events are returned.

Valid values: replication-instance | migration-task

", @@ -1024,6 +1064,10 @@ "DescribeReplicationInstancesResponse$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeReplicationSubnetGroupsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeReplicationSubnetGroupsResponse$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeReplicationTaskAssessmentResultsMessage$ReplicationTaskArn": "

- The Amazon Resource Name (ARN) string that uniquely identifies the task. When this input parameter is specified the API will return only one result and ignore the values of the max-records and marker parameters.

", + "DescribeReplicationTaskAssessmentResultsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeReplicationTaskAssessmentResultsResponse$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeReplicationTaskAssessmentResultsResponse$BucketName": "

- The Amazon S3 bucket where the task assessment report is located.

", "DescribeReplicationTasksMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeReplicationTasksResponse$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeSchemasMessage$EndpointArn": "

The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.

", @@ -1067,7 +1111,7 @@ "ModifyEndpointMessage$Username": "

The user name to be used to login to the endpoint database.

", "ModifyEndpointMessage$ServerName": "

The name of the server where the endpoint database resides.

", "ModifyEndpointMessage$DatabaseName": "

The name of the endpoint database.

", - "ModifyEndpointMessage$ExtraConnectionAttributes": "

Additional attributes associated with the connection.

", + "ModifyEndpointMessage$ExtraConnectionAttributes": "

Additional attributes associated with the connection. To reset this parameter, pass the empty string (\"\") as an argument.

", "ModifyEndpointMessage$CertificateArn": "

The Amazon Resource Name (ARN) of the certificate used for SSL connection.

", "ModifyEventSubscriptionMessage$SubscriptionName": "

The name of the AWS DMS event notification subscription to be modified.

", "ModifyEventSubscriptionMessage$SnsTopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.

", @@ -1129,6 +1173,12 @@ "ReplicationTask$LastFailureMessage": "

The last error (failure) message generated for the replication instance.

", "ReplicationTask$StopReason": "

The reason the replication task was stopped.

", "ReplicationTask$ReplicationTaskArn": "

The Amazon Resource Name (ARN) of the replication task.

", + "ReplicationTaskAssessmentResult$ReplicationTaskIdentifier": "

The replication task identifier of the task on which the task assessment was run.

", + "ReplicationTaskAssessmentResult$ReplicationTaskArn": "

The Amazon Resource Name (ARN) of the replication task.

", + "ReplicationTaskAssessmentResult$AssessmentStatus": "

The status of the task assessment.

", + "ReplicationTaskAssessmentResult$AssessmentResultsFile": "

The file containing the results of the task assessment.

", + "ReplicationTaskAssessmentResult$AssessmentResults": "

The task assessment results in JSON format.

", + "ReplicationTaskAssessmentResult$S3ObjectUrl": "

The URL of the S3 object containing the task assessment results.

", "S3Settings$ServiceAccessRoleArn": "

The Amazon Resource Name (ARN) used by the service access IAM role.

", "S3Settings$ExternalTableDefinition": "

", "S3Settings$CsvRowDelimiter": "

The delimiter used to separate rows in the source files. The default is a carriage return (\\n).

", @@ -1137,15 +1187,17 @@ "S3Settings$BucketName": "

The name of the S3 bucket.

", "SchemaList$member": null, "SourceIdsList$member": null, - "StartReplicationTaskMessage$ReplicationTaskArn": "

The Amazon Resource Number (ARN) of the replication task to be started.

", - "StopReplicationTaskMessage$ReplicationTaskArn": "

The Amazon Resource Number(ARN) of the replication task to be stopped.

", + "StartReplicationTaskAssessmentMessage$ReplicationTaskArn": "

The Amazon Resource Name (ARN) of the replication task.

", + "StartReplicationTaskMessage$ReplicationTaskArn": "

The Amazon Resource Name (ARN) of the replication task to be started.

", + "StopReplicationTaskMessage$ReplicationTaskArn": "

The Amazon Resource Name(ARN) of the replication task to be stopped.

", "Subnet$SubnetIdentifier": "

The subnet identifier.

", "Subnet$SubnetStatus": "

The status of the subnet.

", "SubnetIdentifierList$member": null, "SupportedEndpointType$EngineName": "

The database engine name. Valid values, depending on the EndPointType, include MYSQL, ORACLE, POSTGRES, MARIADB, AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, MONGODB, and SQLSERVER.

", "TableStatistics$SchemaName": "

The schema name.

", "TableStatistics$TableName": "

The name of the table.

", - "TableStatistics$TableState": "

The state of the table.

", + "TableStatistics$TableState": "

The state of the tables described.

Valid states: Table does not exist | Before load | Full load | Table completed | Table cancelled | Table error | Table all | Table updates | Table is being reloaded

", + "TableStatistics$ValidationState": "

The validation state of the table.

The parameter can have the following values

", "TableToReload$SchemaName": "

The schema name of the table to be reloaded.

", "TableToReload$TableName": "

The table name of the table to be reloaded.

", "Tag$Key": "

A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and cannot be prefixed with \"aws:\" or \"dms:\". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

", @@ -1208,6 +1260,7 @@ "ReplicationInstance$InstanceCreateTime": "

The time the replication instance was created.

", "ReplicationTask$ReplicationTaskCreationDate": "

The date the replication task was created.

", "ReplicationTask$ReplicationTaskStartDate": "

The date the replication task is scheduled to start.

", + "ReplicationTaskAssessmentResult$ReplicationTaskLastAssessmentDate": "

The date the task assessment was completed.

", "StartReplicationTaskMessage$CdcStartTime": "

The start time for the Change Data Capture (CDC) operation.

", "TableStatistics$LastUpdateTime": "

The last time the table was updated.

" } diff --git a/models/apis/dms/2016-01-01/paginators-1.json b/models/apis/dms/2016-01-01/paginators-1.json index dd79c6163f6..e6ef7945d8c 100644 --- a/models/apis/dms/2016-01-01/paginators-1.json +++ b/models/apis/dms/2016-01-01/paginators-1.json @@ -45,6 +45,11 @@ "output_token": "Marker", "limit_key": "MaxRecords" }, + "DescribeReplicationTaskAssessmentResults": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords" + }, "DescribeReplicationTasks": { "input_token": "Marker", "output_token": "Marker", diff --git a/models/apis/ds/2015-04-16/api-2.json b/models/apis/ds/2015-04-16/api-2.json index 9eb831a320b..2bde9f4b063 100644 --- a/models/apis/ds/2015-04-16/api-2.json +++ b/models/apis/ds/2015-04-16/api-2.json @@ -302,6 +302,23 @@ {"shape":"ServiceException"} ] }, + "DescribeDomainControllers":{ + "name":"DescribeDomainControllers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDomainControllersRequest"}, + "output":{"shape":"DescribeDomainControllersResult"}, + "errors":[ + {"shape":"EntityDoesNotExistException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"}, + {"shape":"UnsupportedOperationException"} + ] + }, "DescribeEventTopics":{ "name":"DescribeEventTopics", "http":{ @@ -582,6 +599,24 @@ {"shape":"ServiceException"} ] }, + "UpdateNumberOfDomainControllers":{ + "name":"UpdateNumberOfDomainControllers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateNumberOfDomainControllersRequest"}, + "output":{"shape":"UpdateNumberOfDomainControllersResult"}, + "errors":[ + {"shape":"EntityDoesNotExistException"}, + {"shape":"DirectoryUnavailableException"}, + {"shape":"DomainControllerLimitExceededException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ] + }, "UpdateRadius":{ "name":"UpdateRadius", "http":{ @@ -1025,6 +1060,23 @@ "NextToken":{"shape":"NextToken"} } }, + "DescribeDomainControllersRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "DomainControllerIds":{"shape":"DomainControllerIds"}, + "NextToken":{"shape":"NextToken"}, + "Limit":{"shape":"Limit"} + } + }, + "DescribeDomainControllersResult":{ + "type":"structure", + "members":{ + "DomainControllers":{"shape":"DomainControllers"}, + "NextToken":{"shape":"NextToken"} + } + }, "DescribeEventTopicsRequest":{ "type":"structure", "members":{ @@ -1076,6 +1128,10 @@ "min":0, "pattern":"^([a-zA-Z0-9_])[\\\\a-zA-Z0-9_@#%*+=:?./!\\s-]*$" }, + "DesiredNumberOfDomainControllers":{ + "type":"integer", + "min":2 + }, "DirectoryConnectSettings":{ "type":"structure", "required":[ @@ -1122,7 +1178,8 @@ "RadiusSettings":{"shape":"RadiusSettings"}, "RadiusStatus":{"shape":"RadiusStatus"}, "StageReason":{"shape":"StageReason"}, - "SsoEnabled":{"shape":"SsoEnabled"} + "SsoEnabled":{"shape":"SsoEnabled"}, + "DesiredNumberOfDomainControllers":{"shape":"DesiredNumberOfDomainControllers"} } }, "DirectoryDescriptions":{ @@ -1256,6 +1313,54 @@ "type":"list", "member":{"shape":"IpAddr"} }, + "DomainController":{ + "type":"structure", + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "DomainControllerId":{"shape":"DomainControllerId"}, + "DnsIpAddr":{"shape":"IpAddr"}, + "VpcId":{"shape":"VpcId"}, + "SubnetId":{"shape":"SubnetId"}, + "AvailabilityZone":{"shape":"AvailabilityZone"}, + "Status":{"shape":"DomainControllerStatus"}, + "StatusReason":{"shape":"DomainControllerStatusReason"}, + "LaunchTime":{"shape":"LaunchTime"}, + "StatusLastUpdatedDateTime":{"shape":"LastUpdatedDateTime"} + } + }, + "DomainControllerId":{ + "type":"string", + "pattern":"^dc-[0-9a-f]{10}$" + }, + "DomainControllerIds":{ + "type":"list", + "member":{"shape":"DomainControllerId"} + }, + "DomainControllerLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "DomainControllerStatus":{ + "type":"string", + "enum":[ + "Creating", + "Active", + "Impaired", + "Restoring", + "Deleting", + "Deleted", + "Failed" + ] + }, + "DomainControllerStatusReason":{"type":"string"}, + "DomainControllers":{ + "type":"list", + "member":{"shape":"DomainController"} + }, "EnableRadiusRequest":{ "type":"structure", "required":[ @@ -1928,6 +2033,22 @@ "members":{ } }, + "UpdateNumberOfDomainControllersRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "DesiredNumber" + ], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "DesiredNumber":{"shape":"DesiredNumberOfDomainControllers"} + } + }, + "UpdateNumberOfDomainControllersResult":{ + "type":"structure", + "members":{ + } + }, "UpdateRadiusRequest":{ "type":"structure", "required":[ diff --git a/models/apis/ds/2015-04-16/docs-2.json b/models/apis/ds/2015-04-16/docs-2.json index 90cce4638c1..81e33240dcc 100644 --- a/models/apis/ds/2015-04-16/docs-2.json +++ b/models/apis/ds/2015-04-16/docs-2.json @@ -20,6 +20,7 @@ "DeregisterEventTopic": "

Removes the specified directory as a publisher to the specified SNS topic.

", "DescribeConditionalForwarders": "

Obtains information about the conditional forwarders for this account.

If no input parameters are provided for RemoteDomainNames, this request describes all conditional forwarders for the specified directory ID.

", "DescribeDirectories": "

Obtains information about the directories that belong to this account.

You can retrieve information about specific directories by passing the directory identifiers in the DirectoryIds parameter. Otherwise, all directories that belong to the current account are returned.

This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the DescribeDirectoriesResult.NextToken member contains a token that you pass in the next call to DescribeDirectories to retrieve the next set of items.

You can also specify a maximum number of return results with the Limit parameter.

", + "DescribeDomainControllers": "

Provides information about any domain controllers in your directory.

", "DescribeEventTopics": "

Obtains information about which SNS topics receive status messages from the specified directory.

If no input parameters are provided, such as DirectoryId or TopicName, this request describes all of the associations in the account.

", "DescribeSnapshots": "

Obtains information about the directory snapshots that belong to this account.

This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the DescribeSnapshots.NextToken member contains a token that you pass in the next call to DescribeSnapshots to retrieve the next set of items.

You can also specify a maximum number of return results with the Limit parameter.

", "DescribeTrusts": "

Obtains information about the trust relationships for this account.

If no input parameters are provided, such as DirectoryId or TrustIds, this request describes all the trust relationships belonging to the account.

", @@ -38,6 +39,7 @@ "RestoreFromSnapshot": "

Restores a directory using an existing directory snapshot.

When you restore a directory from a snapshot, any changes made to the directory after the snapshot date are overwritten.

This action returns as soon as the restore operation is initiated. You can monitor the progress of the restore operation by calling the DescribeDirectories operation with the directory identifier. When the DirectoryDescription.Stage value changes to Active, the restore operation is complete.

", "StartSchemaExtension": "

Applies a schema extension to a Microsoft AD directory.

", "UpdateConditionalForwarder": "

Updates a conditional forwarder that has been set up for your AWS directory.

", + "UpdateNumberOfDomainControllers": "

Adds or removes domain controllers to or from the directory. Based on the difference between current value and new value (provided through this API call), domain controllers will be added or removed. It may take up to 45 minutes for any new domain controllers to become fully active once the requested number of domain controllers is updated. During this time, you cannot make another update request.

", "UpdateRadius": "

Updates the Remote Authentication Dial In User Service (RADIUS) server information for an AD Connector directory.

", "VerifyTrust": "

AWS Directory Service for Microsoft Active Directory allows you to configure and verify trust relationships.

This action verifies a trust relationship between your Microsoft AD in the AWS cloud and an external domain.

" }, @@ -115,7 +117,8 @@ "AvailabilityZone": { "base": null, "refs": { - "AvailabilityZones$member": null + "AvailabilityZones$member": null, + "DomainController$AvailabilityZone": "

The Availability Zone where the domain controller is located.

" } }, "AvailabilityZones": { @@ -375,6 +378,16 @@ "refs": { } }, + "DescribeDomainControllersRequest": { + "base": null, + "refs": { + } + }, + "DescribeDomainControllersResult": { + "base": null, + "refs": { + } + }, "DescribeEventTopicsRequest": { "base": "

Describes event topics.

", "refs": { @@ -418,6 +431,13 @@ "StartSchemaExtensionRequest$Description": "

A description of the schema extension.

" } }, + "DesiredNumberOfDomainControllers": { + "base": null, + "refs": { + "DirectoryDescription$DesiredNumberOfDomainControllers": "

The desired number of domain controllers in the directory if the directory is Microsoft AD.

", + "UpdateNumberOfDomainControllersRequest$DesiredNumber": "

The number of domain controllers desired in the directory.

" + } + }, "DirectoryConnectSettings": { "base": "

Contains information for the ConnectDirectory operation when an AD Connector directory is being created.

", "refs": { @@ -461,6 +481,7 @@ "DeleteDirectoryResult$DirectoryId": "

The directory identifier.

", "DeregisterEventTopicRequest$DirectoryId": "

The Directory ID to remove as a publisher. This directory will no longer send messages to the specified SNS topic.

", "DescribeConditionalForwardersRequest$DirectoryId": "

The directory ID for which to get the list of associated conditional forwarders.

", + "DescribeDomainControllersRequest$DirectoryId": "

Identifier of the directory for which to retrieve the domain controller information.

", "DescribeEventTopicsRequest$DirectoryId": "

The Directory ID for which to get the list of associated SNS topics. If this member is null, associations for all Directory IDs are returned.

", "DescribeSnapshotsRequest$DirectoryId": "

The identifier of the directory for which to retrieve snapshot information.

", "DescribeTrustsRequest$DirectoryId": "

The Directory ID of the AWS directory that is a part of the requested trust relationship.

", @@ -468,6 +489,7 @@ "DirectoryIds$member": null, "DisableRadiusRequest$DirectoryId": "

The identifier of the directory for which to disable MFA.

", "DisableSsoRequest$DirectoryId": "

The identifier of the directory for which to disable single-sign on.

", + "DomainController$DirectoryId": "

Identifier of the directory where the domain controller resides.

", "EnableRadiusRequest$DirectoryId": "

The identifier of the directory for which to enable MFA.

", "EnableSsoRequest$DirectoryId": "

The identifier of the directory for which to enable single-sign on.

", "EventTopic$DirectoryId": "

The Directory ID of an AWS Directory Service directory that will publish status messages to an SNS topic.

", @@ -482,6 +504,7 @@ "StartSchemaExtensionRequest$DirectoryId": "

The identifier of the directory for which the schema extension will be applied to.

", "Trust$DirectoryId": "

The Directory ID of the AWS directory involved in the trust relationship.

", "UpdateConditionalForwarderRequest$DirectoryId": "

The directory ID of the AWS directory for which to update the conditional forwarder.

", + "UpdateNumberOfDomainControllersRequest$DirectoryId": "

Identifier of the directory to which the domain controllers will be added or removed.

", "UpdateRadiusRequest$DirectoryId": "

The identifier of the directory for which to update the RADIUS server information.

" } }, @@ -549,7 +572,7 @@ "base": "

Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.

", "refs": { "CreateDirectoryRequest$VpcSettings": "

A DirectoryVpcSettings object that contains additional information for the operation.

", - "CreateMicrosoftADRequest$VpcSettings": null + "CreateMicrosoftADRequest$VpcSettings": "

Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.

" } }, "DirectoryVpcSettingsDescription": { @@ -589,6 +612,48 @@ "UpdateConditionalForwarderRequest$DnsIpAddrs": "

The updated IP addresses of the remote DNS server associated with the conditional forwarder.

" } }, + "DomainController": { + "base": "

Contains information about the domain controllers for a specified directory.

", + "refs": { + "DomainControllers$member": null + } + }, + "DomainControllerId": { + "base": null, + "refs": { + "DomainController$DomainControllerId": "

Identifies a specific domain controller in the directory.

", + "DomainControllerIds$member": null + } + }, + "DomainControllerIds": { + "base": null, + "refs": { + "DescribeDomainControllersRequest$DomainControllerIds": "

A list of identifiers for the domain controllers whose information will be provided.

" + } + }, + "DomainControllerLimitExceededException": { + "base": "

The maximum allowed number of domain controllers per directory was exceeded. The default limit per directory is 20 domain controllers.

", + "refs": { + } + }, + "DomainControllerStatus": { + "base": null, + "refs": { + "DomainController$Status": "

The status of the domain controller.

" + } + }, + "DomainControllerStatusReason": { + "base": null, + "refs": { + "DomainController$StatusReason": "

A description of the domain controller state.

" + } + }, + "DomainControllers": { + "base": null, + "refs": { + "DescribeDomainControllersResult$DomainControllers": "

List of the DomainController objects that were retrieved.

" + } + }, "EnableRadiusRequest": { "base": "

Contains the inputs for the EnableRadius operation.

", "refs": { @@ -644,6 +709,7 @@ "ClientException$Message": null, "DirectoryLimitExceededException$Message": null, "DirectoryUnavailableException$Message": null, + "DomainControllerLimitExceededException$Message": null, "EntityAlreadyExistsException$Message": null, "EntityDoesNotExistException$Message": null, "InsufficientPermissionsException$Message": null, @@ -695,6 +761,7 @@ "base": null, "refs": { "DnsIpAddrs$member": null, + "DomainController$DnsIpAddr": "

The IP address of the domain controller.

", "IpAddrs$member": null } }, @@ -749,13 +816,15 @@ "base": null, "refs": { "DirectoryDescription$StageLastUpdatedDateTime": "

The date and time that the stage was last updated.

", + "DomainController$StatusLastUpdatedDateTime": "

The date and time that the status was last updated.

", "Trust$LastUpdatedDateTime": "

The date and time that the trust relationship was last updated.

" } }, "LaunchTime": { "base": null, "refs": { - "DirectoryDescription$LaunchTime": "

Specifies when the directory was created.

" + "DirectoryDescription$LaunchTime": "

Specifies when the directory was created.

", + "DomainController$LaunchTime": "

Specifies when the domain controller was created.

" } }, "LdifContent": { @@ -768,6 +837,7 @@ "base": null, "refs": { "DescribeDirectoriesRequest$Limit": "

The maximum number of items to return. If this value is zero, the maximum number of items is specified by the limitations of the operation.

", + "DescribeDomainControllersRequest$Limit": "

The maximum number of items to return.

", "DescribeSnapshotsRequest$Limit": "

The maximum number of objects to return.

", "DescribeTrustsRequest$Limit": "

The maximum number of objects to return.

", "DirectoryLimits$CloudOnlyDirectoriesLimit": "

The maximum number of cloud directories allowed in the region.

", @@ -824,6 +894,8 @@ "refs": { "DescribeDirectoriesRequest$NextToken": "

The DescribeDirectoriesResult.NextToken value from a previous call to DescribeDirectories. Pass null if this is the first call.

", "DescribeDirectoriesResult$NextToken": "

If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to DescribeDirectories to retrieve the next set of items.

", + "DescribeDomainControllersRequest$NextToken": "

The DescribeDomainControllers.NextToken value from a previous call to DescribeDomainControllers. Pass null if this is the first call.

", + "DescribeDomainControllersResult$NextToken": "

If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to DescribeDomainControllers retrieve the next set of items.

", "DescribeSnapshotsRequest$NextToken": "

The DescribeSnapshotsResult.NextToken value from a previous call to DescribeSnapshots. Pass null if this is the first call.

", "DescribeSnapshotsResult$NextToken": "

If not null, more results are available. Pass this value in the NextToken member of a subsequent call to DescribeSnapshots.

", "DescribeTrustsRequest$NextToken": "

The DescribeTrustsResult.NextToken value from a previous call to DescribeTrusts. Pass null if this is the first call.

", @@ -960,6 +1032,7 @@ "ClientException$RequestId": null, "DirectoryLimitExceededException$RequestId": null, "DirectoryUnavailableException$RequestId": null, + "DomainControllerLimitExceededException$RequestId": null, "EntityAlreadyExistsException$RequestId": null, "EntityDoesNotExistException$RequestId": null, "InsufficientPermissionsException$RequestId": null, @@ -1154,6 +1227,7 @@ "SubnetId": { "base": null, "refs": { + "DomainController$SubnetId": "

Identifier of the subnet in the VPC that contains the domain controller.

", "SubnetIds$member": null } }, @@ -1307,6 +1381,16 @@ "refs": { } }, + "UpdateNumberOfDomainControllersRequest": { + "base": null, + "refs": { + } + }, + "UpdateNumberOfDomainControllersResult": { + "base": null, + "refs": { + } + }, "UpdateRadiusRequest": { "base": "

Contains the inputs for the UpdateRadius operation.

", "refs": { @@ -1354,7 +1438,8 @@ "DirectoryConnectSettings$VpcId": "

The identifier of the VPC in which the AD Connector is created.

", "DirectoryConnectSettingsDescription$VpcId": "

The identifier of the VPC that the AD Connector is in.

", "DirectoryVpcSettings$VpcId": "

The identifier of the VPC in which to create the directory.

", - "DirectoryVpcSettingsDescription$VpcId": "

The identifier of the VPC that the directory is in.

" + "DirectoryVpcSettingsDescription$VpcId": "

The identifier of the VPC that the directory is in.

", + "DomainController$VpcId": "

The identifier of the VPC that contains the domain controller.

" } } } diff --git a/models/apis/ds/2015-04-16/paginators-1.json b/models/apis/ds/2015-04-16/paginators-1.json new file mode 100644 index 00000000000..da0b8729d69 --- /dev/null +++ b/models/apis/ds/2015-04-16/paginators-1.json @@ -0,0 +1,9 @@ +{ + "pagination": { + "DescribeDomainControllers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "Limit" + } + } +} diff --git a/models/apis/dynamodb/2011-12-05/api-2.json b/models/apis/dynamodb/2011-12-05/api-2.json index 3f676776608..e2f86cf4bb3 100644 --- a/models/apis/dynamodb/2011-12-05/api-2.json +++ b/models/apis/dynamodb/2011-12-05/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"DynamoDB", "serviceFullName":"Amazon DynamoDB", + "serviceId":"DynamoDB", "signatureVersion":"v4", "targetPrefix":"DynamoDB_20111205", "uid":"dynamodb-2011-12-05" diff --git a/models/apis/dynamodb/2012-08-10/api-2.json b/models/apis/dynamodb/2012-08-10/api-2.json index e15b1f26d5f..9694584045e 100644 --- a/models/apis/dynamodb/2012-08-10/api-2.json +++ b/models/apis/dynamodb/2012-08-10/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"DynamoDB", "serviceFullName":"Amazon DynamoDB", + "serviceId":"DynamoDB", "signatureVersion":"v4", "targetPrefix":"DynamoDB_20120810", "uid":"dynamodb-2012-08-10" @@ -41,6 +42,38 @@ {"shape":"InternalServerError"} ] }, + "CreateBackup":{ + "name":"CreateBackup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateBackupInput"}, + "output":{"shape":"CreateBackupOutput"}, + "errors":[ + {"shape":"TableNotFoundException"}, + {"shape":"TableInUseException"}, + {"shape":"ContinuousBackupsUnavailableException"}, + {"shape":"BackupInUseException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerError"} + ] + }, + "CreateGlobalTable":{ + "name":"CreateGlobalTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGlobalTableInput"}, + "output":{"shape":"CreateGlobalTableOutput"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"InternalServerError"}, + {"shape":"GlobalTableAlreadyExistsException"}, + {"shape":"TableNotFoundException"} + ] + }, "CreateTable":{ "name":"CreateTable", "http":{ @@ -55,6 +88,21 @@ {"shape":"InternalServerError"} ] }, + "DeleteBackup":{ + "name":"DeleteBackup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteBackupInput"}, + "output":{"shape":"DeleteBackupOutput"}, + "errors":[ + {"shape":"BackupNotFoundException"}, + {"shape":"BackupInUseException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerError"} + ] + }, "DeleteItem":{ "name":"DeleteItem", "http":{ @@ -86,6 +134,45 @@ {"shape":"InternalServerError"} ] }, + "DescribeBackup":{ + "name":"DescribeBackup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeBackupInput"}, + "output":{"shape":"DescribeBackupOutput"}, + "errors":[ + {"shape":"BackupNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, + "DescribeContinuousBackups":{ + "name":"DescribeContinuousBackups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeContinuousBackupsInput"}, + "output":{"shape":"DescribeContinuousBackupsOutput"}, + "errors":[ + {"shape":"TableNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, + "DescribeGlobalTable":{ + "name":"DescribeGlobalTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeGlobalTableInput"}, + "output":{"shape":"DescribeGlobalTableOutput"}, + "errors":[ + {"shape":"InternalServerError"}, + {"shape":"GlobalTableNotFoundException"} + ] + }, "DescribeLimits":{ "name":"DescribeLimits", "http":{ @@ -138,6 +225,30 @@ {"shape":"InternalServerError"} ] }, + "ListBackups":{ + "name":"ListBackups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListBackupsInput"}, + "output":{"shape":"ListBackupsOutput"}, + "errors":[ + {"shape":"InternalServerError"} + ] + }, + "ListGlobalTables":{ + "name":"ListGlobalTables", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGlobalTablesInput"}, + "output":{"shape":"ListGlobalTablesOutput"}, + "errors":[ + {"shape":"InternalServerError"} + ] + }, "ListTables":{ "name":"ListTables", "http":{ @@ -193,6 +304,23 @@ {"shape":"InternalServerError"} ] }, + "RestoreTableFromBackup":{ + "name":"RestoreTableFromBackup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreTableFromBackupInput"}, + "output":{"shape":"RestoreTableFromBackupOutput"}, + "errors":[ + {"shape":"TableAlreadyExistsException"}, + {"shape":"TableInUseException"}, + {"shape":"BackupNotFoundException"}, + {"shape":"BackupInUseException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerError"} + ] + }, "Scan":{ "name":"Scan", "http":{ @@ -235,6 +363,22 @@ {"shape":"ResourceInUseException"} ] }, + "UpdateGlobalTable":{ + "name":"UpdateGlobalTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGlobalTableInput"}, + "output":{"shape":"UpdateGlobalTableOutput"}, + "errors":[ + {"shape":"InternalServerError"}, + {"shape":"GlobalTableNotFoundException"}, + {"shape":"ReplicaAlreadyExistsException"}, + {"shape":"ReplicaNotFoundException"}, + {"shape":"TableNotFoundException"} + ] + }, "UpdateItem":{ "name":"UpdateItem", "http":{ @@ -352,6 +496,89 @@ } }, "Backfilling":{"type":"boolean"}, + "BackupArn":{ + "type":"string", + "max":1024, + "min":37 + }, + "BackupCreationDateTime":{"type":"timestamp"}, + "BackupDescription":{ + "type":"structure", + "members":{ + "BackupDetails":{"shape":"BackupDetails"}, + "SourceTableDetails":{"shape":"SourceTableDetails"}, + "SourceTableFeatureDetails":{"shape":"SourceTableFeatureDetails"} + } + }, + "BackupDetails":{ + "type":"structure", + "required":[ + "BackupArn", + "BackupName", + "BackupStatus", + "BackupCreationDateTime" + ], + "members":{ + "BackupArn":{"shape":"BackupArn"}, + "BackupName":{"shape":"BackupName"}, + "BackupSizeBytes":{"shape":"BackupSizeBytes"}, + "BackupStatus":{"shape":"BackupStatus"}, + "BackupCreationDateTime":{"shape":"BackupCreationDateTime"} + } + }, + "BackupInUseException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "BackupName":{ + "type":"string", + "max":255, + "min":3 + }, + "BackupNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "BackupSizeBytes":{ + "type":"long", + "min":0 + }, + "BackupStatus":{ + "type":"string", + "enum":[ + "CREATING", + "DELETED", + "AVAILABLE" + ] + }, + "BackupSummaries":{ + "type":"list", + "member":{"shape":"BackupSummary"} + }, + "BackupSummary":{ + "type":"structure", + "members":{ + "TableName":{"shape":"TableName"}, + "TableId":{"shape":"TableId"}, + "TableArn":{"shape":"TableArn"}, + "BackupArn":{"shape":"BackupArn"}, + "BackupName":{"shape":"BackupName"}, + "BackupCreationDateTime":{"shape":"BackupCreationDateTime"}, + "BackupStatus":{"shape":"BackupStatus"}, + "BackupSizeBytes":{"shape":"BackupSizeBytes"} + } + }, + "BackupsInputLimit":{ + "type":"integer", + "max":100, + "min":1 + }, "BatchGetItemInput":{ "type":"structure", "required":["RequestItems"], @@ -474,6 +701,44 @@ "member":{"shape":"ConsumedCapacity"} }, "ConsumedCapacityUnits":{"type":"double"}, + "ContinuousBackupsDescription":{ + "type":"structure", + "required":["ContinuousBackupsStatus"], + "members":{ + "ContinuousBackupsStatus":{"shape":"ContinuousBackupsStatus"} + } + }, + "ContinuousBackupsStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "ContinuousBackupsUnavailableException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "CreateBackupInput":{ + "type":"structure", + "required":[ + "TableName", + "BackupName" + ], + "members":{ + "TableName":{"shape":"TableName"}, + "BackupName":{"shape":"BackupName"} + } + }, + "CreateBackupOutput":{ + "type":"structure", + "members":{ + "BackupDetails":{"shape":"BackupDetails"} + } + }, "CreateGlobalSecondaryIndexAction":{ "type":"structure", "required":[ @@ -489,6 +754,30 @@ "ProvisionedThroughput":{"shape":"ProvisionedThroughput"} } }, + "CreateGlobalTableInput":{ + "type":"structure", + "required":[ + "GlobalTableName", + "ReplicationGroup" + ], + "members":{ + "GlobalTableName":{"shape":"TableName"}, + "ReplicationGroup":{"shape":"ReplicaList"} + } + }, + "CreateGlobalTableOutput":{ + "type":"structure", + "members":{ + "GlobalTableDescription":{"shape":"GlobalTableDescription"} + } + }, + "CreateReplicaAction":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "RegionName":{"shape":"RegionName"} + } + }, "CreateTableInput":{ "type":"structure", "required":[ @@ -514,6 +803,19 @@ } }, "Date":{"type":"timestamp"}, + "DeleteBackupInput":{ + "type":"structure", + "required":["BackupArn"], + "members":{ + "BackupArn":{"shape":"BackupArn"} + } + }, + "DeleteBackupOutput":{ + "type":"structure", + "members":{ + "BackupDescription":{"shape":"BackupDescription"} + } + }, "DeleteGlobalSecondaryIndexAction":{ "type":"structure", "required":["IndexName"], @@ -548,6 +850,13 @@ "ItemCollectionMetrics":{"shape":"ItemCollectionMetrics"} } }, + "DeleteReplicaAction":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "RegionName":{"shape":"RegionName"} + } + }, "DeleteRequest":{ "type":"structure", "required":["Key"], @@ -568,6 +877,45 @@ "TableDescription":{"shape":"TableDescription"} } }, + "DescribeBackupInput":{ + "type":"structure", + "required":["BackupArn"], + "members":{ + "BackupArn":{"shape":"BackupArn"} + } + }, + "DescribeBackupOutput":{ + "type":"structure", + "members":{ + "BackupDescription":{"shape":"BackupDescription"} + } + }, + "DescribeContinuousBackupsInput":{ + "type":"structure", + "required":["TableName"], + "members":{ + "TableName":{"shape":"TableName"} + } + }, + "DescribeContinuousBackupsOutput":{ + "type":"structure", + "members":{ + "ContinuousBackupsDescription":{"shape":"ContinuousBackupsDescription"} + } + }, + "DescribeGlobalTableInput":{ + "type":"structure", + "required":["GlobalTableName"], + "members":{ + "GlobalTableName":{"shape":"TableName"} + } + }, + "DescribeGlobalTableOutput":{ + "type":"structure", + "members":{ + "GlobalTableDescription":{"shape":"GlobalTableDescription"} + } + }, "DescribeLimitsInput":{ "type":"structure", "members":{ @@ -696,6 +1044,15 @@ "type":"list", "member":{"shape":"GlobalSecondaryIndexDescription"} }, + "GlobalSecondaryIndexInfo":{ + "type":"structure", + "members":{ + "IndexName":{"shape":"IndexName"}, + "KeySchema":{"shape":"KeySchema"}, + "Projection":{"shape":"Projection"}, + "ProvisionedThroughput":{"shape":"ProvisionedThroughput"} + } + }, "GlobalSecondaryIndexList":{ "type":"list", "member":{"shape":"GlobalSecondaryIndex"} @@ -712,6 +1069,55 @@ "type":"list", "member":{"shape":"GlobalSecondaryIndexUpdate"} }, + "GlobalSecondaryIndexes":{ + "type":"list", + "member":{"shape":"GlobalSecondaryIndexInfo"} + }, + "GlobalTable":{ + "type":"structure", + "members":{ + "GlobalTableName":{"shape":"TableName"}, + "ReplicationGroup":{"shape":"ReplicaList"} + } + }, + "GlobalTableAlreadyExistsException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "GlobalTableArnString":{"type":"string"}, + "GlobalTableDescription":{ + "type":"structure", + "members":{ + "ReplicationGroup":{"shape":"ReplicaDescriptionList"}, + "GlobalTableArn":{"shape":"GlobalTableArnString"}, + "CreationDateTime":{"shape":"Date"}, + "GlobalTableStatus":{"shape":"GlobalTableStatus"}, + "GlobalTableName":{"shape":"TableName"} + } + }, + "GlobalTableList":{ + "type":"list", + "member":{"shape":"GlobalTable"} + }, + "GlobalTableNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "GlobalTableStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "DELETING", + "UPDATING" + ] + }, "IndexName":{ "type":"string", "max":255, @@ -769,6 +1175,10 @@ }, "exception":true }, + "ItemCount":{ + "type":"long", + "min":0 + }, "ItemList":{ "type":"list", "member":{"shape":"AttributeMap"} @@ -841,6 +1251,38 @@ "type":"list", "member":{"shape":"AttributeValue"} }, + "ListBackupsInput":{ + "type":"structure", + "members":{ + "TableName":{"shape":"TableName"}, + "Limit":{"shape":"BackupsInputLimit"}, + "TimeRangeLowerBound":{"shape":"TimeRangeLowerBound"}, + "TimeRangeUpperBound":{"shape":"TimeRangeUpperBound"}, + "ExclusiveStartBackupArn":{"shape":"BackupArn"} + } + }, + "ListBackupsOutput":{ + "type":"structure", + "members":{ + "BackupSummaries":{"shape":"BackupSummaries"}, + "LastEvaluatedBackupArn":{"shape":"BackupArn"} + } + }, + "ListGlobalTablesInput":{ + "type":"structure", + "members":{ + "ExclusiveStartGlobalTableName":{"shape":"TableName"}, + "Limit":{"shape":"PositiveIntegerObject"}, + "RegionName":{"shape":"RegionName"} + } + }, + "ListGlobalTablesOutput":{ + "type":"structure", + "members":{ + "GlobalTables":{"shape":"GlobalTableList"}, + "LastEvaluatedGlobalTableName":{"shape":"TableName"} + } + }, "ListTablesInput":{ "type":"structure", "members":{ @@ -903,10 +1345,22 @@ "type":"list", "member":{"shape":"LocalSecondaryIndexDescription"} }, + "LocalSecondaryIndexInfo":{ + "type":"structure", + "members":{ + "IndexName":{"shape":"IndexName"}, + "KeySchema":{"shape":"KeySchema"}, + "Projection":{"shape":"Projection"} + } + }, "LocalSecondaryIndexList":{ "type":"list", "member":{"shape":"LocalSecondaryIndex"} }, + "LocalSecondaryIndexes":{ + "type":"list", + "member":{"shape":"LocalSecondaryIndexInfo"} + }, "Long":{"type":"long"}, "MapAttributeValue":{ "type":"map", @@ -1055,6 +1509,52 @@ "ConsumedCapacity":{"shape":"ConsumedCapacity"} } }, + "RegionName":{"type":"string"}, + "Replica":{ + "type":"structure", + "members":{ + "RegionName":{"shape":"RegionName"} + } + }, + "ReplicaAlreadyExistsException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ReplicaDescription":{ + "type":"structure", + "members":{ + "RegionName":{"shape":"RegionName"} + } + }, + "ReplicaDescriptionList":{ + "type":"list", + "member":{"shape":"ReplicaDescription"} + }, + "ReplicaList":{ + "type":"list", + "member":{"shape":"Replica"} + }, + "ReplicaNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ReplicaUpdate":{ + "type":"structure", + "members":{ + "Create":{"shape":"CreateReplicaAction"}, + "Delete":{"shape":"DeleteReplicaAction"} + } + }, + "ReplicaUpdateList":{ + "type":"list", + "member":{"shape":"ReplicaUpdate"} + }, "ResourceArnString":{ "type":"string", "max":1283, @@ -1074,6 +1574,38 @@ }, "exception":true }, + "RestoreDateTime":{"type":"timestamp"}, + "RestoreInProgress":{"type":"boolean"}, + "RestoreSummary":{ + "type":"structure", + "required":[ + "RestoreDateTime", + "RestoreInProgress" + ], + "members":{ + "SourceBackupArn":{"shape":"BackupArn"}, + "SourceTableArn":{"shape":"TableArn"}, + "RestoreDateTime":{"shape":"RestoreDateTime"}, + "RestoreInProgress":{"shape":"RestoreInProgress"} + } + }, + "RestoreTableFromBackupInput":{ + "type":"structure", + "required":[ + "TargetTableName", + "BackupArn" + ], + "members":{ + "TargetTableName":{"shape":"TableName"}, + "BackupArn":{"shape":"BackupArn"} + } + }, + "RestoreTableFromBackupOutput":{ + "type":"structure", + "members":{ + "TableDescription":{"shape":"TableDescription"} + } + }, "ReturnConsumedCapacity":{ "type":"string", "enum":[ @@ -1163,6 +1695,35 @@ "COUNT" ] }, + "SourceTableDetails":{ + "type":"structure", + "required":[ + "TableName", + "TableId", + "KeySchema", + "TableCreationDateTime", + "ProvisionedThroughput" + ], + "members":{ + "TableName":{"shape":"TableName"}, + "TableId":{"shape":"TableId"}, + "TableArn":{"shape":"TableArn"}, + "TableSizeBytes":{"shape":"Long"}, + "KeySchema":{"shape":"KeySchema"}, + "TableCreationDateTime":{"shape":"TableCreationDateTime"}, + "ProvisionedThroughput":{"shape":"ProvisionedThroughput"}, + "ItemCount":{"shape":"ItemCount"} + } + }, + "SourceTableFeatureDetails":{ + "type":"structure", + "members":{ + "LocalSecondaryIndexes":{"shape":"LocalSecondaryIndexes"}, + "GlobalSecondaryIndexes":{"shape":"GlobalSecondaryIndexes"}, + "StreamDescription":{"shape":"StreamSpecification"}, + "TimeToLiveDescription":{"shape":"TimeToLiveDescription"} + } + }, "StreamArn":{ "type":"string", "max":1024, @@ -1191,6 +1752,15 @@ "type":"list", "member":{"shape":"StringAttributeValue"} }, + "TableAlreadyExistsException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "TableArn":{"type":"string"}, + "TableCreationDateTime":{"type":"timestamp"}, "TableDescription":{ "type":"structure", "members":{ @@ -1203,13 +1773,26 @@ "TableSizeBytes":{"shape":"Long"}, "ItemCount":{"shape":"Long"}, "TableArn":{"shape":"String"}, + "TableId":{"shape":"TableId"}, "LocalSecondaryIndexes":{"shape":"LocalSecondaryIndexDescriptionList"}, "GlobalSecondaryIndexes":{"shape":"GlobalSecondaryIndexDescriptionList"}, "StreamSpecification":{"shape":"StreamSpecification"}, "LatestStreamLabel":{"shape":"String"}, - "LatestStreamArn":{"shape":"StreamArn"} + "LatestStreamArn":{"shape":"StreamArn"}, + "RestoreSummary":{"shape":"RestoreSummary"} } }, + "TableId":{ + "type":"string", + "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "TableInUseException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "TableName":{ "type":"string", "max":255, @@ -1220,6 +1803,13 @@ "type":"list", "member":{"shape":"TableName"} }, + "TableNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "TableStatus":{ "type":"string", "enum":[ @@ -1269,6 +1859,8 @@ "max":256, "min":0 }, + "TimeRangeLowerBound":{"type":"timestamp"}, + "TimeRangeUpperBound":{"type":"timestamp"}, "TimeToLiveAttributeName":{ "type":"string", "max":255, @@ -1325,6 +1917,23 @@ "ProvisionedThroughput":{"shape":"ProvisionedThroughput"} } }, + "UpdateGlobalTableInput":{ + "type":"structure", + "required":[ + "GlobalTableName", + "ReplicaUpdates" + ], + "members":{ + "GlobalTableName":{"shape":"TableName"}, + "ReplicaUpdates":{"shape":"ReplicaUpdateList"} + } + }, + "UpdateGlobalTableOutput":{ + "type":"structure", + "members":{ + "GlobalTableDescription":{"shape":"GlobalTableDescription"} + } + }, "UpdateItemInput":{ "type":"structure", "required":[ diff --git a/models/apis/dynamodb/2012-08-10/docs-2.json b/models/apis/dynamodb/2012-08-10/docs-2.json index f657f013436..757f2535bef 100644 --- a/models/apis/dynamodb/2012-08-10/docs-2.json +++ b/models/apis/dynamodb/2012-08-10/docs-2.json @@ -4,23 +4,33 @@ "operations": { "BatchGetItem": "

The BatchGetItem operation returns the attributes of one or more items from one or more tables. You identify requested items by primary key.

A single operation can retrieve up to 16 MB of data, which can contain as many as 100 items. BatchGetItem will return a partial result if the response size limit is exceeded, the table's provisioned throughput is exceeded, or an internal processing failure occurs. If a partial result is returned, the operation returns a value for UnprocessedKeys. You can use this value to retry the operation starting with the next item to get.

If you request more than 100 items BatchGetItem will return a ValidationException with the message \"Too many items requested for the BatchGetItem call\".

For example, if you ask to retrieve 100 items, but each individual item is 300 KB in size, the system returns 52 items (so as not to exceed the 16 MB limit). It also returns an appropriate UnprocessedKeys value so you can get the next page of results. If desired, your application can include its own logic to assemble the pages of results into one data set.

If none of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then BatchGetItem will return a ProvisionedThroughputExceededException. If at least one of the items is successfully processed, then BatchGetItem completes successfully, while returning the keys of the unread items in UnprocessedKeys.

If DynamoDB returns any unprocessed items, you should retry the batch operation on those items. However, we strongly recommend that you use an exponential backoff algorithm. If you retry the batch operation immediately, the underlying read or write requests can still fail due to throttling on the individual tables. If you delay the batch operation using exponential backoff, the individual requests in the batch are much more likely to succeed.

For more information, see Batch Operations and Error Handling in the Amazon DynamoDB Developer Guide.

By default, BatchGetItem performs eventually consistent reads on every table in the request. If you want strongly consistent reads instead, you can set ConsistentRead to true for any or all tables.

In order to minimize response latency, BatchGetItem retrieves items in parallel.

When designing your application, keep in mind that DynamoDB does not return items in any particular order. To help parse the response by item, include the primary key values for the items in your request in the ProjectionExpression parameter.

If a requested item does not exist, it is not returned in the result. Requests for nonexistent items consume the minimum read capacity units according to the type of read. For more information, see Capacity Units Calculations in the Amazon DynamoDB Developer Guide.

", "BatchWriteItem": "

The BatchWriteItem operation puts or deletes multiple items in one or more tables. A single call to BatchWriteItem can write up to 16 MB of data, which can comprise as many as 25 put or delete requests. Individual items to be written can be as large as 400 KB.

BatchWriteItem cannot update items. To update items, use the UpdateItem action.

The individual PutItem and DeleteItem operations specified in BatchWriteItem are atomic; however BatchWriteItem as a whole is not. If any requested operations fail because the table's provisioned throughput is exceeded or an internal processing failure occurs, the failed operations are returned in the UnprocessedItems response parameter. You can investigate and optionally resend the requests. Typically, you would call BatchWriteItem in a loop. Each iteration would check for unprocessed items and submit a new BatchWriteItem request with those unprocessed items until all items have been processed.

Note that if none of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then BatchWriteItem will return a ProvisionedThroughputExceededException.

If DynamoDB returns any unprocessed items, you should retry the batch operation on those items. However, we strongly recommend that you use an exponential backoff algorithm. If you retry the batch operation immediately, the underlying read or write requests can still fail due to throttling on the individual tables. If you delay the batch operation using exponential backoff, the individual requests in the batch are much more likely to succeed.

For more information, see Batch Operations and Error Handling in the Amazon DynamoDB Developer Guide.

With BatchWriteItem, you can efficiently write or delete large amounts of data, such as from Amazon Elastic MapReduce (EMR), or copy data from another database into DynamoDB. In order to improve performance with these large-scale operations, BatchWriteItem does not behave in the same way as individual PutItem and DeleteItem calls would. For example, you cannot specify conditions on individual put and delete requests, and BatchWriteItem does not return deleted items in the response.

If you use a programming language that supports concurrency, you can use threads to write items in parallel. Your application must include the necessary logic to manage the threads. With languages that don't support threading, you must update or delete the specified items one at a time. In both situations, BatchWriteItem performs the specified put and delete operations in parallel, giving you the power of the thread pool approach without having to introduce complexity into your application.

Parallel processing reduces latency, but each specified put and delete request consumes the same number of write capacity units whether it is processed in parallel or not. Delete operations on nonexistent items consume one write capacity unit.

If one or more of the following is true, DynamoDB rejects the entire batch write operation:

", + "CreateBackup": "

Creates a backup for an existing table.

Each time you create an On-Demand Backup, the entire table data is backed up. There is no limit to the number of on-demand backups that can be taken.

You can call CreateBackup at a maximum rate of 50 times per second.

All backups in DynamoDB work without consuming any provisioned throughput on the table. This results in a fast, low-cost, and scalable backup process. In general, the larger the table, the more time it takes to back up. The backup is stored in an S3 data store that is maintained and managed by DynamoDB.

Backups incorporate all writes (delete, put, update) that were completed within the last minute before the backup request was initiated. Backups might include some writes (delete, put, update) that were completed before the backup request was finished.

For example, if you submit the backup request on 2018-12-14 at 14:25:00, the backup is guaranteed to contain all data committed to the table up to 14:24:00, and data committed after 14:26:00 will not be. The backup may or may not contain data modifications made between 14:24:00 and 14:26:00. On-Demand Backup does not support causal consistency.

Along with data, the following are also included on the backups:

", + "CreateGlobalTable": "

Creates a global table from an existing table. A global table creates a replication relationship between two or more DynamoDB tables with the same table name in the provided regions.

Tables can only be added as the replicas of a global table group under the following conditions:

", "CreateTable": "

The CreateTable operation adds a new table to your account. In an AWS account, table names must be unique within each region. That is, you can have two tables with same name if you create the tables in different regions.

CreateTable is an asynchronous operation. Upon receiving a CreateTable request, DynamoDB immediately returns a response with a TableStatus of CREATING. After the table is created, DynamoDB sets the TableStatus to ACTIVE. You can perform read and write operations only on an ACTIVE table.

You can optionally define secondary indexes on the new table, as part of the CreateTable operation. If you want to create multiple tables with secondary indexes on them, you must create the tables sequentially. Only one table with secondary indexes can be in the CREATING state at any given time.

You can use the DescribeTable action to check the table status.

", + "DeleteBackup": "

Deletes an existing backup of a table.

You can call DeleteBackup at a maximum rate of 10 times per second.

", "DeleteItem": "

Deletes a single item in a table by primary key. You can perform a conditional delete operation that deletes the item if it exists, or if it has an expected attribute value.

In addition to deleting an item, you can also return the item's attribute values in the same operation, using the ReturnValues parameter.

Unless you specify conditions, the DeleteItem is an idempotent operation; running it multiple times on the same item or attribute does not result in an error response.

Conditional deletes are useful for deleting items only if specific conditions are met. If those conditions are met, DynamoDB performs the delete. Otherwise, the item is not deleted.

", "DeleteTable": "

The DeleteTable operation deletes a table and all of its items. After a DeleteTable request, the specified table is in the DELETING state until DynamoDB completes the deletion. If the table is in the ACTIVE state, you can delete it. If a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException. If the specified table does not exist, DynamoDB returns a ResourceNotFoundException. If table is already in the DELETING state, no error is returned.

DynamoDB might continue to accept data read and write operations, such as GetItem and PutItem, on a table in the DELETING state until the table deletion is complete.

When you delete a table, any indexes on that table are also deleted.

If you have DynamoDB Streams enabled on the table, then the corresponding stream on that table goes into the DISABLED state, and the stream is automatically deleted after 24 hours.

Use the DescribeTable action to check the status of the table.

", + "DescribeBackup": "

Describes an existing backup of a table.

You can call DescribeBackup at a maximum rate of 10 times per second.

", + "DescribeContinuousBackups": "

Checks the status of the backup restore settings on the specified table. If backups are enabled, ContinuousBackupsStatus will bet set to ENABLED.

You can call DescribeContinuousBackups at a maximum rate of 10 times per second.

", + "DescribeGlobalTable": "

Returns information about the global table.

", "DescribeLimits": "

Returns the current provisioned-capacity limits for your AWS account in a region, both for the region as a whole and for any one DynamoDB table that you create there.

When you establish an AWS account, the account has initial limits on the maximum read capacity units and write capacity units that you can provision across all of your DynamoDB tables in a given region. Also, there are per-table limits that apply when you create a table there. For more information, see Limits page in the Amazon DynamoDB Developer Guide.

Although you can increase these limits by filing a case at AWS Support Center, obtaining the increase is not instantaneous. The DescribeLimits action lets you write code to compare the capacity you are currently using to those limits imposed by your account so that you have enough time to apply for an increase before you hit a limit.

For example, you could use one of the AWS SDKs to do the following:

  1. Call DescribeLimits for a particular region to obtain your current account limits on provisioned capacity there.

  2. Create a variable to hold the aggregate read capacity units provisioned for all your tables in that region, and one to hold the aggregate write capacity units. Zero them both.

  3. Call ListTables to obtain a list of all your DynamoDB tables.

  4. For each table name listed by ListTables, do the following:

    • Call DescribeTable with the table name.

    • Use the data returned by DescribeTable to add the read capacity units and write capacity units provisioned for the table itself to your variables.

    • If the table has one or more global secondary indexes (GSIs), loop over these GSIs and add their provisioned capacity values to your variables as well.

  5. Report the account limits for that region returned by DescribeLimits, along with the total current provisioned capacity levels you have calculated.

This will let you see whether you are getting close to your account-level limits.

The per-table limits apply only when you are creating a new table. They restrict the sum of the provisioned capacity of the new table itself and all its global secondary indexes.

For existing tables and their GSIs, DynamoDB will not let you increase provisioned capacity extremely rapidly, but the only upper limit that applies is that the aggregate provisioned capacity over all your tables and GSIs cannot exceed either of the per-account limits.

DescribeLimits should only be called periodically. You can expect throttling errors if you call it more than once in a minute.

The DescribeLimits Request element has no content.

", "DescribeTable": "

Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table.

If you issue a DescribeTable request immediately after a CreateTable request, DynamoDB might return a ResourceNotFoundException. This is because DescribeTable uses an eventually consistent query, and the metadata for your table might not be available at that moment. Wait for a few seconds, and then try the DescribeTable request again.

", "DescribeTimeToLive": "

Gives a description of the Time to Live (TTL) status on the specified table.

", "GetItem": "

The GetItem operation returns a set of attributes for the item with the given primary key. If there is no matching item, GetItem does not return any data and there will be no Item element in the response.

GetItem provides an eventually consistent read by default. If your application requires a strongly consistent read, set ConsistentRead to true. Although a strongly consistent read might take more time than an eventually consistent read, it always returns the last updated value.

", + "ListBackups": "

List backups associated with an AWS account. To list backups for a given table, specify TableName. ListBackups returns a paginated list of results with at most 1MB worth of items in a page. You can also specify a limit for the maximum number of entries to be returned in a page.

In the request, start time is inclusive but end time is exclusive. Note that these limits are for the time at which the original backup was requested.

You can call ListBackups a maximum of 5 times per second.

", + "ListGlobalTables": "

Lists all the global tables. Only those global tables that have replicas in the region specified as input are returned.

", "ListTables": "

Returns an array of table names associated with the current account and endpoint. The output from ListTables is paginated, with each page returning a maximum of 100 table names.

", "ListTagsOfResource": "

List all tags on an Amazon DynamoDB resource. You can call ListTagsOfResource up to 10 times per second, per account.

For an overview on tagging DynamoDB resources, see Tagging for DynamoDB in the Amazon DynamoDB Developer Guide.

", - "PutItem": "

Creates a new item, or replaces an old item with a new item. If an item that has the same primary key as the new item already exists in the specified table, the new item completely replaces the existing item. You can perform a conditional put operation (add a new item if one with the specified primary key doesn't exist), or replace an existing item if it has certain attribute values.

In addition to putting an item, you can also return the item's attribute values in the same operation, using the ReturnValues parameter.

When you add an item, the primary key attribute(s) are the only required attributes. Attribute values cannot be null. String and Binary type attributes must have lengths greater than zero. Set type attributes cannot be empty. Requests with empty values will be rejected with a ValidationException exception.

To prevent a new item from replacing an existing item, use a conditional expression that contains the attribute_not_exists function with the name of the attribute being used as the partition key for the table. Since every record must contain that attribute, the attribute_not_exists function will only succeed if no matching item exists.

For more information about PutItem, see Working with Items in the Amazon DynamoDB Developer Guide.

", - "Query": "

A Query operation uses the primary key of a table or a secondary index to directly access items from that table or index.

Use the KeyConditionExpression parameter to provide a specific value for the partition key. The Query operation will return all of the items from the table or index with that partition key value. You can optionally narrow the scope of the Query operation by specifying a sort key value and a comparison operator in KeyConditionExpression. You can use the ScanIndexForward parameter to get results in forward or reverse order, by sort key.

Queries that do not return results consume the minimum number of read capacity units for that type of read operation.

If the total number of items meeting the query criteria exceeds the result set size limit of 1 MB, the query stops and results are returned to the user with the LastEvaluatedKey element to continue the query in a subsequent operation. Unlike a Scan operation, a Query operation never returns both an empty result set and a LastEvaluatedKey value. LastEvaluatedKey is only provided if you have used the Limit parameter, or if the result set exceeds 1 MB (prior to applying a filter).

You can query a table, a local secondary index, or a global secondary index. For a query on a table or on a local secondary index, you can set the ConsistentRead parameter to true and obtain a strongly consistent result. Global secondary indexes support eventually consistent reads only, so do not specify ConsistentRead when querying a global secondary index.

", - "Scan": "

The Scan operation returns one or more items and item attributes by accessing every item in a table or a secondary index. To have DynamoDB return fewer items, you can provide a FilterExpression operation.

If the total number of scanned items exceeds the maximum data set size limit of 1 MB, the scan stops and results are returned to the user as a LastEvaluatedKey value to continue the scan in a subsequent operation. The results also include the number of items exceeding the limit. A scan can result in no table data meeting the filter criteria.

By default, Scan operations proceed sequentially; however, for faster performance on a large table or secondary index, applications can request a parallel Scan operation by providing the Segment and TotalSegments parameters. For more information, see Parallel Scan in the Amazon DynamoDB Developer Guide.

By default, Scan uses eventually consistent reads when accessing the data in a table; therefore, the result set might not include the changes to data in the table immediately before the operation began. If you need a consistent copy of the data, as of the time that the Scan begins, you can set the ConsistentRead parameter to true.

", + "PutItem": "

Creates a new item, or replaces an old item with a new item. If an item that has the same primary key as the new item already exists in the specified table, the new item completely replaces the existing item. You can perform a conditional put operation (add a new item if one with the specified primary key doesn't exist), or replace an existing item if it has certain attribute values. You can return the item's attribute values in the same operation, using the ReturnValues parameter.

This topic provides general information about the PutItem API.

For information on how to call the PutItem API using the AWS SDK in specific languages, see the following:

When you add an item, the primary key attribute(s) are the only required attributes. Attribute values cannot be null. String and Binary type attributes must have lengths greater than zero. Set type attributes cannot be empty. Requests with empty values will be rejected with a ValidationException exception.

To prevent a new item from replacing an existing item, use a conditional expression that contains the attribute_not_exists function with the name of the attribute being used as the partition key for the table. Since every record must contain that attribute, the attribute_not_exists function will only succeed if no matching item exists.

For more information about PutItem, see Working with Items in the Amazon DynamoDB Developer Guide.

", + "Query": "

The Query operation finds items based on primary key values. You can query any table or secondary index that has a composite primary key (a partition key and a sort key).

Use the KeyConditionExpression parameter to provide a specific value for the partition key. The Query operation will return all of the items from the table or index with that partition key value. You can optionally narrow the scope of the Query operation by specifying a sort key value and a comparison operator in KeyConditionExpression. To further refine the Query results, you can optionally provide a FilterExpression. A FilterExpression determines which items within the results should be returned to you. All of the other results are discarded.

A Query operation always returns a result set. If no matching items are found, the result set will be empty. Queries that do not return results consume the minimum number of read capacity units for that type of read operation.

DynamoDB calculates the number of read capacity units consumed based on item size, not on the amount of data that is returned to an application. The number of capacity units consumed will be the same whether you request all of the attributes (the default behavior) or just some of them (using a projection expression). The number will also be the same whether or not you use a FilterExpression.

Query results are always sorted by the sort key value. If the data type of the sort key is Number, the results are returned in numeric order; otherwise, the results are returned in order of UTF-8 bytes. By default, the sort order is ascending. To reverse the order, set the ScanIndexForward parameter to false.

A single Query operation will read up to the maximum number of items set (if using the Limit parameter) or a maximum of 1 MB of data and then apply any filtering to the results using FilterExpression. If LastEvaluatedKey is present in the response, you will need to paginate the result set. For more information, see Paginating the Results in the Amazon DynamoDB Developer Guide.

FilterExpression is applied after a Query finishes, but before the results are returned. A FilterExpression cannot contain partition key or sort key attributes. You need to specify those attributes in the KeyConditionExpression.

A Query operation can return an empty result set and a LastEvaluatedKey if all the items read for the page of results are filtered out.

You can query a table, a local secondary index, or a global secondary index. For a query on a table or on a local secondary index, you can set the ConsistentRead parameter to true and obtain a strongly consistent result. Global secondary indexes support eventually consistent reads only, so do not specify ConsistentRead when querying a global secondary index.

", + "RestoreTableFromBackup": "

Creates a new table from an existing backup. Any number of users can execute up to 10 concurrent restores in a given account.

You can call RestoreTableFromBackup at a maximum rate of 10 times per second.

You must manually set up the following on the restored table:

", + "Scan": "

The Scan operation returns one or more items and item attributes by accessing every item in a table or a secondary index. To have DynamoDB return fewer items, you can provide a FilterExpression operation.

If the total number of scanned items exceeds the maximum data set size limit of 1 MB, the scan stops and results are returned to the user as a LastEvaluatedKey value to continue the scan in a subsequent operation. The results also include the number of items exceeding the limit. A scan can result in no table data meeting the filter criteria.

A single Scan operation will read up to the maximum number of items set (if using the Limit parameter) or a maximum of 1 MB of data and then apply any filtering to the results using FilterExpression. If LastEvaluatedKey is present in the response, you will need to paginate the result set. For more information, see Paginating the Results in the Amazon DynamoDB Developer Guide.

Scan operations proceed sequentially; however, for faster performance on a large table or secondary index, applications can request a parallel Scan operation by providing the Segment and TotalSegments parameters. For more information, see Parallel Scan in the Amazon DynamoDB Developer Guide.

Scan uses eventually consistent reads when accessing the data in a table; therefore, the result set might not include the changes to data in the table immediately before the operation began. If you need a consistent copy of the data, as of the time that the Scan begins, you can set the ConsistentRead parameter to true.

", "TagResource": "

Associate a set of tags with an Amazon DynamoDB resource. You can then activate these user-defined tags so that they appear on the Billing and Cost Management console for cost allocation tracking. You can call TagResource up to 5 times per second, per account.

For an overview on tagging DynamoDB resources, see Tagging for DynamoDB in the Amazon DynamoDB Developer Guide.

", "UntagResource": "

Removes the association of tags from an Amazon DynamoDB resource. You can call UntagResource up to 5 times per second, per account.

For an overview on tagging DynamoDB resources, see Tagging for DynamoDB in the Amazon DynamoDB Developer Guide.

", + "UpdateGlobalTable": "

Adds or removes replicas to the specified global table. The global table should already exist to be able to use this operation. Currently, the replica to be added should be empty.

", "UpdateItem": "

Edits an existing item's attributes, or adds a new item to the table if it does not already exist. You can put, delete, or add attribute values. You can also perform a conditional update on an existing item (insert a new attribute name-value pair if it doesn't exist, or replace an existing name-value pair if it has certain expected attribute values).

You can also return the item's attribute values in the same UpdateItem operation using the ReturnValues parameter.

", "UpdateTable": "

Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.

You can only perform one of the following operations at once:

UpdateTable is an asynchronous operation; while it is executing, the table status changes from ACTIVE to UPDATING. While it is UPDATING, you cannot issue another UpdateTable request. When the table returns to the ACTIVE state, the UpdateTable operation is complete.

", - "UpdateTimeToLive": "

Specify the lifetime of individual table items. The database automatically removes the item at the expiration of the item. The UpdateTimeToLive method will enable or disable TTL for the specified table. A successful UpdateTimeToLive call returns the current TimeToLiveSpecification; it may take up to one hour for the change to fully process.

TTL compares the current time in epoch time format to the time stored in the TTL attribute of an item. If the epoch time value stored in the attribute is less than the current time, the item is marked as expired and subsequently deleted.

The epoch time format is the number of seconds elapsed since 12:00:00 AM January 1st, 1970 UTC.

DynamoDB deletes expired items on a best-effort basis to ensure availability of throughput for other data operations.

DynamoDB typically deletes expired items within two days of expiration. The exact duration within which an item gets deleted after expiration is specific to the nature of the workload. Items that have expired and not been deleted will still show up in reads, queries, and scans.

As items are deleted, they are removed from any Local Secondary Index and Global Secondary Index immediately in the same eventually consistent way as a standard delete operation.

For more information, see Time To Live in the Amazon DynamoDB Developer Guide.

" + "UpdateTimeToLive": "

The UpdateTimeToLive method will enable or disable TTL for the specified table. A successful UpdateTimeToLive call returns the current TimeToLiveSpecification; it may take up to one hour for the change to fully process. Any additional UpdateTimeToLive calls for the same table during this one hour duration result in a ValidationException.

TTL compares the current time in epoch time format to the time stored in the TTL attribute of an item. If the epoch time value stored in the attribute is less than the current time, the item is marked as expired and subsequently deleted.

The epoch time format is the number of seconds elapsed since 12:00:00 AM January 1st, 1970 UTC.

DynamoDB deletes expired items on a best-effort basis to ensure availability of throughput for other data operations.

DynamoDB typically deletes expired items within two days of expiration. The exact duration within which an item gets deleted after expiration is specific to the nature of the workload. Items that have expired and not been deleted will still show up in reads, queries, and scans.

As items are deleted, they are removed from any Local Secondary Index and Global Secondary Index immediately in the same eventually consistent way as a standard delete operation.

For more information, see Time To Live in the Amazon DynamoDB Developer Guide.

" }, "shapes": { "AttributeAction": { @@ -50,7 +60,7 @@ "GetItemOutput$Item": "

A map of attribute names to AttributeValue objects, as specified by ProjectionExpression.

", "ItemList$member": null, "PutItemOutput$Attributes": "

The attribute values as they appeared before the PutItem operation, but only if ReturnValues is specified as ALL_OLD in the request. Each element consists of an attribute name and an attribute value.

", - "UpdateItemOutput$Attributes": "

A map of attribute values as they appeared before the UpdateItem operation. This map only appears if ReturnValues was specified as something other than NONE in the request. Each element represents one attribute.

" + "UpdateItemOutput$Attributes": "

A map of attribute values as they appear before or after the UpdateItem operation, as determined by the ReturnValues parameter.

The Attributes map is only present if ReturnValues was specified as something other than NONE in the request. Each element represents one attribute.

" } }, "AttributeName": { @@ -118,6 +128,90 @@ "GlobalSecondaryIndexDescription$Backfilling": "

Indicates whether the index is currently backfilling. Backfilling is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and Backfilling is false.

For indexes that were created during a CreateTable operation, the Backfilling attribute does not appear in the DescribeTable output.

" } }, + "BackupArn": { + "base": null, + "refs": { + "BackupDetails$BackupArn": "

ARN associated with the backup.

", + "BackupSummary$BackupArn": "

ARN associated with the backup.

", + "DeleteBackupInput$BackupArn": "

The ARN associated with the backup.

", + "DescribeBackupInput$BackupArn": "

The ARN associated with the backup.

", + "ListBackupsInput$ExclusiveStartBackupArn": "

LastEvaluatedBackupARN returned by the previous ListBackups call.

", + "ListBackupsOutput$LastEvaluatedBackupArn": "

Last evaluated BackupARN.

", + "RestoreSummary$SourceBackupArn": "

ARN of the backup from which the table was restored.

", + "RestoreTableFromBackupInput$BackupArn": "

The ARN associated with the backup.

" + } + }, + "BackupCreationDateTime": { + "base": null, + "refs": { + "BackupDetails$BackupCreationDateTime": "

Time at which the backup was created. This is the request time of the backup.

", + "BackupSummary$BackupCreationDateTime": "

Time at which the backup was created.

" + } + }, + "BackupDescription": { + "base": "

Contains the description of the backup created for the table.

", + "refs": { + "DeleteBackupOutput$BackupDescription": "

Contains the description of the backup created for the table.

", + "DescribeBackupOutput$BackupDescription": "

Contains the description of the backup created for the table.

" + } + }, + "BackupDetails": { + "base": "

Contains the details of the backup created for the table.

", + "refs": { + "BackupDescription$BackupDetails": "

Contains the details of the backup created for the table.

", + "CreateBackupOutput$BackupDetails": "

Contains the details of the backup created for the table.

" + } + }, + "BackupInUseException": { + "base": "

There is another ongoing conflicting backup control plane operation on the table. The backups is either being created, deleted or restored to a table.

", + "refs": { + } + }, + "BackupName": { + "base": null, + "refs": { + "BackupDetails$BackupName": "

Name of the requested backup.

", + "BackupSummary$BackupName": "

Name of the specified backup.

", + "CreateBackupInput$BackupName": "

Specified name for the backup.

" + } + }, + "BackupNotFoundException": { + "base": "

Backup not found for the given BackupARN.

", + "refs": { + } + }, + "BackupSizeBytes": { + "base": null, + "refs": { + "BackupDetails$BackupSizeBytes": "

Size of the backup in bytes.

", + "BackupSummary$BackupSizeBytes": "

Size of the backup in bytes.

" + } + }, + "BackupStatus": { + "base": null, + "refs": { + "BackupDetails$BackupStatus": "

Backup can be in one of the following states: CREATING, ACTIVE, DELETED.

", + "BackupSummary$BackupStatus": "

Backup can be in one of the following states: CREATING, ACTIVE, DELETED.

" + } + }, + "BackupSummaries": { + "base": null, + "refs": { + "ListBackupsOutput$BackupSummaries": "

List of BackupSummary objects.

" + } + }, + "BackupSummary": { + "base": "

Contains details for the backup.

", + "refs": { + "BackupSummaries$member": null + } + }, + "BackupsInputLimit": { + "base": null, + "refs": { + "ListBackupsInput$Limit": "

Maximum number of backups to return at once.

" + } + }, "BatchGetItemInput": { "base": "

Represents the input of a BatchGetItem operation.

", "refs": { @@ -154,7 +248,7 @@ "BatchWriteItemRequestMap": { "base": null, "refs": { - "BatchWriteItemInput$RequestItems": "

A map of one or more table names and, for each table, a list of operations to be performed (DeleteRequest or PutRequest). Each element in the map consists of the following:

", + "BatchWriteItemInput$RequestItems": "

A map of one or more table names and, for each table, a list of operations to be performed (DeleteRequest or PutRequest). Each element in the map consists of the following:

", "BatchWriteItemOutput$UnprocessedItems": "

A map of tables and requests against those tables that were not processed. The UnprocessedItems value is in the same form as RequestItems, so you can provide this value directly to a subsequent BatchGetItem operation. For more information, see RequestItems in the Request Parameters section.

Each UnprocessedItems entry consists of a table name and, for that table, a list of operations to perform (DeleteRequest or PutRequest).

If there are no unprocessed items remaining, the response contains an empty UnprocessedItems map.

" } }, @@ -265,12 +359,55 @@ "ConsumedCapacity$CapacityUnits": "

The total number of capacity units consumed by the operation.

" } }, + "ContinuousBackupsDescription": { + "base": "

Represents the backup and restore settings on the table when the backup was created.

", + "refs": { + "DescribeContinuousBackupsOutput$ContinuousBackupsDescription": "

ContinuousBackupsDescription can be one of the following : ENABLED, DISABLED.

" + } + }, + "ContinuousBackupsStatus": { + "base": null, + "refs": { + "ContinuousBackupsDescription$ContinuousBackupsStatus": "

ContinuousBackupsStatus can be one of the following states : ENABLED, DISABLED

" + } + }, + "ContinuousBackupsUnavailableException": { + "base": "

Backups have not yet been enabled for this table.

", + "refs": { + } + }, + "CreateBackupInput": { + "base": null, + "refs": { + } + }, + "CreateBackupOutput": { + "base": null, + "refs": { + } + }, "CreateGlobalSecondaryIndexAction": { "base": "

Represents a new global secondary index to be added to an existing table.

", "refs": { "GlobalSecondaryIndexUpdate$Create": "

The parameters required for creating a global secondary index on an existing table:

" } }, + "CreateGlobalTableInput": { + "base": null, + "refs": { + } + }, + "CreateGlobalTableOutput": { + "base": null, + "refs": { + } + }, + "CreateReplicaAction": { + "base": "

Represents a replica to be added.

", + "refs": { + "ReplicaUpdate$Create": "

The parameters required for creating a replica on an existing global table.

" + } + }, "CreateTableInput": { "base": "

Represents the input of a CreateTable operation.

", "refs": { @@ -284,11 +421,22 @@ "Date": { "base": null, "refs": { + "GlobalTableDescription$CreationDateTime": "

The creation time of the global table.

", "ProvisionedThroughputDescription$LastIncreaseDateTime": "

The date and time of the last provisioned throughput increase for this table.

", "ProvisionedThroughputDescription$LastDecreaseDateTime": "

The date and time of the last provisioned throughput decrease for this table.

", "TableDescription$CreationDateTime": "

The date and time when the table was created, in UNIX epoch time format.

" } }, + "DeleteBackupInput": { + "base": null, + "refs": { + } + }, + "DeleteBackupOutput": { + "base": null, + "refs": { + } + }, "DeleteGlobalSecondaryIndexAction": { "base": "

Represents a global secondary index to be deleted from an existing table.

", "refs": { @@ -305,6 +453,12 @@ "refs": { } }, + "DeleteReplicaAction": { + "base": "

Represents a replica to be removed.

", + "refs": { + "ReplicaUpdate$Delete": "

The name of the existing replica to be removed.

" + } + }, "DeleteRequest": { "base": "

Represents a request to perform a DeleteItem operation on an item.

", "refs": { @@ -321,6 +475,36 @@ "refs": { } }, + "DescribeBackupInput": { + "base": null, + "refs": { + } + }, + "DescribeBackupOutput": { + "base": null, + "refs": { + } + }, + "DescribeContinuousBackupsInput": { + "base": null, + "refs": { + } + }, + "DescribeContinuousBackupsOutput": { + "base": null, + "refs": { + } + }, + "DescribeGlobalTableInput": { + "base": null, + "refs": { + } + }, + "DescribeGlobalTableOutput": { + "base": null, + "refs": { + } + }, "DescribeLimitsInput": { "base": "

Represents the input of a DescribeLimits operation. Has no content.

", "refs": { @@ -354,21 +538,31 @@ "ErrorMessage": { "base": null, "refs": { + "BackupInUseException$message": null, + "BackupNotFoundException$message": null, "ConditionalCheckFailedException$message": "

The conditional request failed.

", + "ContinuousBackupsUnavailableException$message": null, + "GlobalTableAlreadyExistsException$message": null, + "GlobalTableNotFoundException$message": null, "InternalServerError$message": "

The server encountered an internal error trying to fulfill the request.

", "ItemCollectionSizeLimitExceededException$message": "

The total size of an item collection has exceeded the maximum limit of 10 gigabytes.

", "LimitExceededException$message": "

Too many operations for a given subscriber.

", "ProvisionedThroughputExceededException$message": "

You exceeded your maximum allowed provisioned throughput.

", + "ReplicaAlreadyExistsException$message": null, + "ReplicaNotFoundException$message": null, "ResourceInUseException$message": "

The resource which is being attempted to be changed is in use.

", - "ResourceNotFoundException$message": "

The resource which is being requested does not exist.

" + "ResourceNotFoundException$message": "

The resource which is being requested does not exist.

", + "TableAlreadyExistsException$message": null, + "TableInUseException$message": null, + "TableNotFoundException$message": null } }, "ExpectedAttributeMap": { "base": null, "refs": { - "DeleteItemInput$Expected": "

This is a legacy parameter. Use ConditionExpresssion instead. For more information, see Expected in the Amazon DynamoDB Developer Guide.

", - "PutItemInput$Expected": "

This is a legacy parameter. Use ConditionExpresssion instead. For more information, see Expected in the Amazon DynamoDB Developer Guide.

", - "UpdateItemInput$Expected": "

This is a legacy parameter. Use ConditionExpresssion instead. For more information, see Expected in the Amazon DynamoDB Developer Guide.

" + "DeleteItemInput$Expected": "

This is a legacy parameter. Use ConditionExpression instead. For more information, see Expected in the Amazon DynamoDB Developer Guide.

", + "PutItemInput$Expected": "

This is a legacy parameter. Use ConditionExpression instead. For more information, see Expected in the Amazon DynamoDB Developer Guide.

", + "UpdateItemInput$Expected": "

This is a legacy parameter. Use ConditionExpression instead. For more information, see Expected in the Amazon DynamoDB Developer Guide.

" } }, "ExpectedAttributeValue": { @@ -446,6 +640,12 @@ "TableDescription$GlobalSecondaryIndexes": "

The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:

If the table is in the DELETING state, no information about indexes will be returned.

" } }, + "GlobalSecondaryIndexInfo": { + "base": "

Represents the properties of a global secondary index for the table when the backup was created.

", + "refs": { + "GlobalSecondaryIndexes$member": null + } + }, "GlobalSecondaryIndexList": { "base": null, "refs": { @@ -464,6 +664,54 @@ "UpdateTableInput$GlobalSecondaryIndexUpdates": "

An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:

For more information, see Managing Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

" } }, + "GlobalSecondaryIndexes": { + "base": null, + "refs": { + "SourceTableFeatureDetails$GlobalSecondaryIndexes": "

Represents the GSI properties for the table when the backup was created. It includes the IndexName, KeySchema, Projection and ProvisionedThroughput for the GSIs on the table at the time of backup.

" + } + }, + "GlobalTable": { + "base": "

Represents the properties of a global table.

", + "refs": { + "GlobalTableList$member": null + } + }, + "GlobalTableAlreadyExistsException": { + "base": "

The specified global table already exists.

", + "refs": { + } + }, + "GlobalTableArnString": { + "base": null, + "refs": { + "GlobalTableDescription$GlobalTableArn": "

The unique identifier of the global table.

" + } + }, + "GlobalTableDescription": { + "base": "

Contains details about the global table.

", + "refs": { + "CreateGlobalTableOutput$GlobalTableDescription": "

Contains the details of the global table.

", + "DescribeGlobalTableOutput$GlobalTableDescription": "

Contains the details of the global table.

", + "UpdateGlobalTableOutput$GlobalTableDescription": "

Contains the details of the global table.

" + } + }, + "GlobalTableList": { + "base": null, + "refs": { + "ListGlobalTablesOutput$GlobalTables": "

List of global table names.

" + } + }, + "GlobalTableNotFoundException": { + "base": "

The specified global table does not exist.

", + "refs": { + } + }, + "GlobalTableStatus": { + "base": null, + "refs": { + "GlobalTableDescription$GlobalTableStatus": "

The current state of the global table:

" + } + }, "IndexName": { "base": null, "refs": { @@ -471,8 +719,10 @@ "DeleteGlobalSecondaryIndexAction$IndexName": "

The name of the global secondary index to be deleted.

", "GlobalSecondaryIndex$IndexName": "

The name of the global secondary index. The name must be unique among all other indexes on this table.

", "GlobalSecondaryIndexDescription$IndexName": "

The name of the global secondary index.

", + "GlobalSecondaryIndexInfo$IndexName": "

The name of the global secondary index.

", "LocalSecondaryIndex$IndexName": "

The name of the local secondary index. The name must be unique among all other indexes on this table.

", "LocalSecondaryIndexDescription$IndexName": "

Represents the name of the local secondary index.

", + "LocalSecondaryIndexInfo$IndexName": "

Represents the name of the local secondary index.

", "QueryInput$IndexName": "

The name of an index to query. This index can be any local secondary index or global secondary index on the table. Note that if you use the IndexName parameter, you must also provide TableName.

", "ScanInput$IndexName": "

The name of a secondary index to scan. This index can be any local secondary index or global secondary index. Note that if you use the IndexName parameter, you must also provide TableName.

", "SecondaryIndexesCapacityMap$key": null, @@ -508,10 +758,10 @@ "ItemCollectionMetrics": { "base": "

Information about item collections, if any, that were affected by the operation. ItemCollectionMetrics is only returned if the request asked for it. If the table does not have any local secondary indexes, this information is not returned in the response.

", "refs": { - "DeleteItemOutput$ItemCollectionMetrics": "

Information about item collections, if any, that were affected by the DeleteItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.

Each ItemCollectionMetrics element consists of:

", + "DeleteItemOutput$ItemCollectionMetrics": "

Information about item collections, if any, that were affected by the DeleteItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.

Each ItemCollectionMetrics element consists of:

", "ItemCollectionMetricsMultiple$member": null, - "PutItemOutput$ItemCollectionMetrics": "

Information about item collections, if any, that were affected by the PutItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.

Each ItemCollectionMetrics element consists of:

", - "UpdateItemOutput$ItemCollectionMetrics": "

Information about item collections, if any, that were affected by the UpdateItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.

Each ItemCollectionMetrics element consists of:

" + "PutItemOutput$ItemCollectionMetrics": "

Information about item collections, if any, that were affected by the PutItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.

Each ItemCollectionMetrics element consists of:

", + "UpdateItemOutput$ItemCollectionMetrics": "

Information about item collections, if any, that were affected by the UpdateItem operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.

Each ItemCollectionMetrics element consists of:

" } }, "ItemCollectionMetricsMultiple": { @@ -523,7 +773,7 @@ "ItemCollectionMetricsPerTable": { "base": null, "refs": { - "BatchWriteItemOutput$ItemCollectionMetrics": "

A list of tables that were processed by BatchWriteItem and, for each table, information about any item collections that were affected by individual DeleteItem or PutItem operations.

Each entry consists of the following subelements:

" + "BatchWriteItemOutput$ItemCollectionMetrics": "

A list of tables that were processed by BatchWriteItem and, for each table, information about any item collections that were affected by individual DeleteItem or PutItem operations.

Each entry consists of the following subelements:

" } }, "ItemCollectionSizeEstimateBound": { @@ -543,6 +793,12 @@ "refs": { } }, + "ItemCount": { + "base": null, + "refs": { + "SourceTableDetails$ItemCount": "

Number of items in the table. Please note this is an approximate value.

" + } + }, "ItemList": { "base": null, "refs": { @@ -590,8 +846,11 @@ "CreateTableInput$KeySchema": "

Specifies the attributes that make up the primary key for a table or an index. The attributes in KeySchema must also be defined in the AttributeDefinitions array. For more information, see Data Model in the Amazon DynamoDB Developer Guide.

Each KeySchemaElement in the array is composed of:

The partition key of an item is also known as its hash attribute. The term \"hash attribute\" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.

The sort key of an item is also known as its range attribute. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.

For a simple primary key (partition key), you must provide exactly one element with a KeyType of HASH.

For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a KeyType of HASH, and the second element must have a KeyType of RANGE.

For more information, see Specifying the Primary Key in the Amazon DynamoDB Developer Guide.

", "GlobalSecondaryIndex$KeySchema": "

The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:

The partition key of an item is also known as its hash attribute. The term \"hash attribute\" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.

The sort key of an item is also known as its range attribute. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.

", "GlobalSecondaryIndexDescription$KeySchema": "

The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:

The partition key of an item is also known as its hash attribute. The term \"hash attribute\" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.

The sort key of an item is also known as its range attribute. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.

", + "GlobalSecondaryIndexInfo$KeySchema": "

The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:

The partition key of an item is also known as its hash attribute. The term \"hash attribute\" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.

The sort key of an item is also known as its range attribute. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.

", "LocalSecondaryIndex$KeySchema": "

The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types:

The partition key of an item is also known as its hash attribute. The term \"hash attribute\" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.

The sort key of an item is also known as its range attribute. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.

", "LocalSecondaryIndexDescription$KeySchema": "

The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types:

The partition key of an item is also known as its hash attribute. The term \"hash attribute\" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.

The sort key of an item is also known as its range attribute. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.

", + "LocalSecondaryIndexInfo$KeySchema": "

The complete key schema for a local secondary index, which consists of one or more pairs of attribute names and key types:

The partition key of an item is also known as its hash attribute. The term \"hash attribute\" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.

The sort key of an item is also known as its range attribute. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.

", + "SourceTableDetails$KeySchema": "

Schema of the table.

", "TableDescription$KeySchema": "

The primary key structure for the table. Each KeySchemaElement consists of:

For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.

" } }, @@ -631,6 +890,26 @@ "AttributeValue$L": "

An attribute of type List. For example:

\"L\": [\"Cookies\", \"Coffee\", 3.14159]

" } }, + "ListBackupsInput": { + "base": null, + "refs": { + } + }, + "ListBackupsOutput": { + "base": null, + "refs": { + } + }, + "ListGlobalTablesInput": { + "base": null, + "refs": { + } + }, + "ListGlobalTablesOutput": { + "base": null, + "refs": { + } + }, "ListTablesInput": { "base": "

Represents the input of a ListTables operation.

", "refs": { @@ -675,12 +954,24 @@ "TableDescription$LocalSecondaryIndexes": "

Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:

If the table is in the DELETING state, no information about indexes will be returned.

" } }, + "LocalSecondaryIndexInfo": { + "base": "

Represents the properties of a local secondary index for the table when the backup was created.

", + "refs": { + "LocalSecondaryIndexes$member": null + } + }, "LocalSecondaryIndexList": { "base": null, "refs": { "CreateTableInput$LocalSecondaryIndexes": "

One or more local secondary indexes (the maximum is five) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.

Each local secondary index in the array includes the following:

" } }, + "LocalSecondaryIndexes": { + "base": null, + "refs": { + "SourceTableFeatureDetails$LocalSecondaryIndexes": "

Represents the LSI properties for the table when the backup was created. It includes the IndexName, KeySchema and Projection for the LSIs on the table at the time of backup.

" + } + }, "Long": { "base": null, "refs": { @@ -688,6 +979,7 @@ "GlobalSecondaryIndexDescription$ItemCount": "

The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

", "LocalSecondaryIndexDescription$IndexSizeBytes": "

The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

", "LocalSecondaryIndexDescription$ItemCount": "

The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

", + "SourceTableDetails$TableSizeBytes": "

Size of the table in bytes. Please note this is an approximate value.

", "TableDescription$TableSizeBytes": "

The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

", "TableDescription$ItemCount": "

The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

" } @@ -739,6 +1031,7 @@ "PositiveIntegerObject": { "base": null, "refs": { + "ListGlobalTablesInput$Limit": "

The maximum number of table names to return.

", "QueryInput$Limit": "

The maximum number of items to evaluate (not necessarily the number of matching items). If DynamoDB processes the number of items up to the limit while processing the results, it stops the operation and returns the matching values up to that point, and a key in LastEvaluatedKey to apply in a subsequent operation, so that you can pick up where you left off. Also, if the processed data set size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation and returns the matching values up to the limit, and a key in LastEvaluatedKey to apply in a subsequent operation to continue the operation. For more information, see Query and Scan in the Amazon DynamoDB Developer Guide.

", "ScanInput$Limit": "

The maximum number of items to evaluate (not necessarily the number of matching items). If DynamoDB processes the number of items up to the limit while processing the results, it stops the operation and returns the matching values up to that point, and a key in LastEvaluatedKey to apply in a subsequent operation, so that you can pick up where you left off. Also, if the processed data set size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation and returns the matching values up to the limit, and a key in LastEvaluatedKey to apply in a subsequent operation to continue the operation. For more information, see Query and Scan in the Amazon DynamoDB Developer Guide.

" } @@ -763,8 +1056,10 @@ "CreateGlobalSecondaryIndexAction$Projection": "

Represents attributes that are copied (projected) from the table into an index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

", "GlobalSecondaryIndex$Projection": "

Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

", "GlobalSecondaryIndexDescription$Projection": "

Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

", + "GlobalSecondaryIndexInfo$Projection": "

Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

", "LocalSecondaryIndex$Projection": "

Represents attributes that are copied (projected) from the table into the local secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

", - "LocalSecondaryIndexDescription$Projection": "

Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

" + "LocalSecondaryIndexDescription$Projection": "

Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

", + "LocalSecondaryIndexInfo$Projection": "

Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

" } }, "ProjectionExpression": { @@ -788,6 +1083,8 @@ "CreateGlobalSecondaryIndexAction$ProvisionedThroughput": "

Represents the provisioned throughput settings for the specified global secondary index.

For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide.

", "CreateTableInput$ProvisionedThroughput": "

Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the UpdateTable operation.

For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide.

", "GlobalSecondaryIndex$ProvisionedThroughput": "

Represents the provisioned throughput settings for the specified global secondary index.

For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide.

", + "GlobalSecondaryIndexInfo$ProvisionedThroughput": "

Represents the provisioned throughput settings for the specified global secondary index.

", + "SourceTableDetails$ProvisionedThroughput": "

Read IOPs and Write IOPS on the table when the backup was created.

", "UpdateGlobalSecondaryIndexAction$ProvisionedThroughput": "

Represents the provisioned throughput settings for the specified global secondary index.

For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide.

", "UpdateTableInput$ProvisionedThroughput": "

The new provisioned throughput settings for the specified table or index.

" } @@ -837,6 +1134,63 @@ "refs": { } }, + "RegionName": { + "base": null, + "refs": { + "CreateReplicaAction$RegionName": "

The region of the replica to be added.

", + "DeleteReplicaAction$RegionName": "

The region of the replica to be removed.

", + "ListGlobalTablesInput$RegionName": "

Lists the global tables in a specific region.

", + "Replica$RegionName": "

The region where the replica needs to be created.

", + "ReplicaDescription$RegionName": "

The name of the region.

" + } + }, + "Replica": { + "base": "

Represents the properties of a replica.

", + "refs": { + "ReplicaList$member": null + } + }, + "ReplicaAlreadyExistsException": { + "base": "

The specified replica is already part of the global table.

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

Contains the details of the replica.

", + "refs": { + "ReplicaDescriptionList$member": null + } + }, + "ReplicaDescriptionList": { + "base": null, + "refs": { + "GlobalTableDescription$ReplicationGroup": "

The regions where the global table has replicas.

" + } + }, + "ReplicaList": { + "base": null, + "refs": { + "CreateGlobalTableInput$ReplicationGroup": "

The regions where the global table needs to be created.

", + "GlobalTable$ReplicationGroup": "

The regions where the global table has replicas.

" + } + }, + "ReplicaNotFoundException": { + "base": "

The specified replica is no longer part of the global table.

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

Represents one of the following:

", + "refs": { + "ReplicaUpdateList$member": null + } + }, + "ReplicaUpdateList": { + "base": null, + "refs": { + "UpdateGlobalTableInput$ReplicaUpdates": "

A list of regions that should be added or removed from the global table.

" + } + }, "ResourceArnString": { "base": null, "refs": { @@ -855,6 +1209,34 @@ "refs": { } }, + "RestoreDateTime": { + "base": null, + "refs": { + "RestoreSummary$RestoreDateTime": "

Point in time or source backup time.

" + } + }, + "RestoreInProgress": { + "base": null, + "refs": { + "RestoreSummary$RestoreInProgress": "

Indicates if a restore is in progress or not.

" + } + }, + "RestoreSummary": { + "base": "

Contains details for the restore.

", + "refs": { + "TableDescription$RestoreSummary": "

Contains details for the restore.

" + } + }, + "RestoreTableFromBackupInput": { + "base": null, + "refs": { + } + }, + "RestoreTableFromBackupOutput": { + "base": null, + "refs": { + } + }, "ReturnConsumedCapacity": { "base": "

Determines the level of detail about provisioned throughput consumption that is returned in the response:

", "refs": { @@ -882,7 +1264,7 @@ "refs": { "DeleteItemInput$ReturnValues": "

Use ReturnValues if you want to get the item attributes as they appeared before they were deleted. For DeleteItem, the valid values are:

The ReturnValues parameter is used by several DynamoDB operations; however, DeleteItem does not recognize any values other than NONE or ALL_OLD.

", "PutItemInput$ReturnValues": "

Use ReturnValues if you want to get the item attributes as they appeared before they were updated with the PutItem request. For PutItem, the valid values are:

The ReturnValues parameter is used by several DynamoDB operations; however, PutItem does not recognize any values other than NONE or ALL_OLD.

", - "UpdateItemInput$ReturnValues": "

Use ReturnValues if you want to get the item attributes as they appeared either before or after they were updated. For UpdateItem, the valid values are:

There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No Read Capacity Units are consumed.

Values returned are strongly consistent

" + "UpdateItemInput$ReturnValues": "

Use ReturnValues if you want to get the item attributes as they appear before or after they are updated. For UpdateItem, the valid values are:

There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.

The values returned are strongly consistent.

" } }, "ScalarAttributeType": { @@ -927,6 +1309,18 @@ "ScanInput$Select": "

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.

If neither Select nor AttributesToGet are specified, DynamoDB defaults to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when accessing an index. You cannot use both Select and AttributesToGet together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying AttributesToGet without any value for Select.)

If you use the ProjectionExpression parameter, then the value for Select can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an error.

" } }, + "SourceTableDetails": { + "base": "

Contains the details of the table when the backup was created.

", + "refs": { + "BackupDescription$SourceTableDetails": "

Contains the details of the table when the backup was created.

" + } + }, + "SourceTableFeatureDetails": { + "base": "

Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL.

", + "refs": { + "BackupDescription$SourceTableFeatureDetails": "

Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL.

" + } + }, "StreamArn": { "base": null, "refs": { @@ -943,6 +1337,7 @@ "base": "

Represents the DynamoDB Streams configuration for a table in DynamoDB.

", "refs": { "CreateTableInput$StreamSpecification": "

The settings for DynamoDB Streams on the table. These settings consist of:

", + "SourceTableFeatureDetails$StreamDescription": "

Stream settings on the table when the backup was created.

", "TableDescription$StreamSpecification": "

The current DynamoDB Streams configuration for the table.

", "UpdateTableInput$StreamSpecification": "

Represents the DynamoDB Streams configuration for the table.

You will receive a ResourceInUseException if you attempt to enable a stream on a table that already has a stream, or if you attempt to disable a stream on a table which does not have a stream.

" } @@ -975,36 +1370,82 @@ "AttributeValue$SS": "

An attribute of type String Set. For example:

\"SS\": [\"Giraffe\", \"Hippo\" ,\"Zebra\"]

" } }, + "TableAlreadyExistsException": { + "base": "

A table with the name already exists.

", + "refs": { + } + }, + "TableArn": { + "base": null, + "refs": { + "BackupSummary$TableArn": "

ARN associated with the table.

", + "RestoreSummary$SourceTableArn": "

ARN of the source table of the backup that is being restored.

", + "SourceTableDetails$TableArn": "

ARN of the table for which backup was created.

" + } + }, + "TableCreationDateTime": { + "base": null, + "refs": { + "SourceTableDetails$TableCreationDateTime": "

Time when the source table was created.

" + } + }, "TableDescription": { "base": "

Represents the properties of a table.

", "refs": { "CreateTableOutput$TableDescription": "

Represents the properties of the table.

", "DeleteTableOutput$TableDescription": "

Represents the properties of a table.

", "DescribeTableOutput$Table": "

The properties of the table.

", + "RestoreTableFromBackupOutput$TableDescription": "

The description of the table created from an existing backup.

", "UpdateTableOutput$TableDescription": "

Represents the properties of the table.

" } }, + "TableId": { + "base": null, + "refs": { + "BackupSummary$TableId": "

Unique identifier for the table.

", + "SourceTableDetails$TableId": "

Unique identifier for the table for which the backup was created.

", + "TableDescription$TableId": "

Unique identifier for the table for which the backup was created.

" + } + }, + "TableInUseException": { + "base": "

A table by that name is either being created or deleted.

", + "refs": { + } + }, "TableName": { "base": null, "refs": { + "BackupSummary$TableName": "

Name of the table.

", "BatchGetRequestMap$key": null, "BatchGetResponseMap$key": null, "BatchWriteItemRequestMap$key": null, "ConsumedCapacity$TableName": "

The name of the table that was affected by the operation.

", + "CreateBackupInput$TableName": "

The name of the table.

", + "CreateGlobalTableInput$GlobalTableName": "

The global table name.

", "CreateTableInput$TableName": "

The name of the table to create.

", "DeleteItemInput$TableName": "

The name of the table from which to delete the item.

", "DeleteTableInput$TableName": "

The name of the table to delete.

", + "DescribeContinuousBackupsInput$TableName": "

Name of the table for which the customer wants to check the backup and restore settings.

", + "DescribeGlobalTableInput$GlobalTableName": "

The name of the global table.

", "DescribeTableInput$TableName": "

The name of the table to describe.

", "DescribeTimeToLiveInput$TableName": "

The name of the table to be described.

", "GetItemInput$TableName": "

The name of the table containing the requested item.

", + "GlobalTable$GlobalTableName": "

The global table name.

", + "GlobalTableDescription$GlobalTableName": "

The global table name.

", "ItemCollectionMetricsPerTable$key": null, + "ListBackupsInput$TableName": "

The backups from the table specified by TableName are listed.

", + "ListGlobalTablesInput$ExclusiveStartGlobalTableName": "

The first global table name that this operation will evaluate.

", + "ListGlobalTablesOutput$LastEvaluatedGlobalTableName": "

Last evaluated global table name.

", "ListTablesInput$ExclusiveStartTableName": "

The first table name that this operation will evaluate. Use the value that was returned for LastEvaluatedTableName in a previous operation, so that you can obtain the next page of results.

", "ListTablesOutput$LastEvaluatedTableName": "

The name of the last table in the current page of results. Use this value as the ExclusiveStartTableName in a new request to obtain the next page of results, until all the table names are returned.

If you do not receive a LastEvaluatedTableName value in the response, this means that there are no more table names to be retrieved.

", "PutItemInput$TableName": "

The name of the table to contain the item.

", "QueryInput$TableName": "

The name of the table containing the requested items.

", + "RestoreTableFromBackupInput$TargetTableName": "

The name of the new table to which the backup must be restored.

", "ScanInput$TableName": "

The name of the table containing the requested items; or, if you provide IndexName, the name of the table to which that index belongs.

", + "SourceTableDetails$TableName": "

The name of the table for which the backup was created.

", "TableDescription$TableName": "

The name of the table.

", "TableNameList$member": null, + "UpdateGlobalTableInput$GlobalTableName": "

The global table name.

", "UpdateItemInput$TableName": "

The name of the table containing the item to update.

", "UpdateTableInput$TableName": "

The name of the table to be updated.

", "UpdateTimeToLiveInput$TableName": "

The name of the table to be configured.

" @@ -1016,6 +1457,11 @@ "ListTablesOutput$TableNames": "

The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.

If LastEvaluatedTableName also appears in the output, you can use this value as the ExclusiveStartTableName parameter in a subsequent ListTables request and obtain the next page of results.

" } }, + "TableNotFoundException": { + "base": "

A table with the name TableName does not currently exist within the subscriber's account.

", + "refs": { + } + }, "TableStatus": { "base": null, "refs": { @@ -1059,6 +1505,18 @@ "Tag$Value": "

The value of the tag. Tag values are case-sensitive and can be null.

" } }, + "TimeRangeLowerBound": { + "base": null, + "refs": { + "ListBackupsInput$TimeRangeLowerBound": "

Only backups created after this time are listed. TimeRangeLowerBound is inclusive.

" + } + }, + "TimeRangeUpperBound": { + "base": null, + "refs": { + "ListBackupsInput$TimeRangeUpperBound": "

Only backups created before this time are listed. TimeRangeUpperBound is exclusive.

" + } + }, "TimeToLiveAttributeName": { "base": null, "refs": { @@ -1069,7 +1527,8 @@ "TimeToLiveDescription": { "base": "

The description of the Time to Live (TTL) status on the specified table.

", "refs": { - "DescribeTimeToLiveOutput$TimeToLiveDescription": "

" + "DescribeTimeToLiveOutput$TimeToLiveDescription": "

", + "SourceTableFeatureDetails$TimeToLiveDescription": "

Time to Live settings on the table when the backup was created.

" } }, "TimeToLiveEnabled": { @@ -1108,6 +1567,16 @@ "GlobalSecondaryIndexUpdate$Update": "

The name of an existing global secondary index, along with new provisioned throughput settings to be applied to that index.

" } }, + "UpdateGlobalTableInput": { + "base": null, + "refs": { + } + }, + "UpdateGlobalTableOutput": { + "base": null, + "refs": { + } + }, "UpdateItemInput": { "base": "

Represents the input of an UpdateItem operation.

", "refs": { diff --git a/models/apis/dynamodb/2012-08-10/examples-1.json b/models/apis/dynamodb/2012-08-10/examples-1.json index e66e704b052..5b6ad0f624e 100644 --- a/models/apis/dynamodb/2012-08-10/examples-1.json +++ b/models/apis/dynamodb/2012-08-10/examples-1.json @@ -548,13 +548,16 @@ "output": { "Attributes": { "AlbumTitle": { - "S": "Songs About Life" + "S": "Louder Than Ever" }, "Artist": { "S": "Acme Band" }, "SongTitle": { "S": "Happy Day" + }, + "Year": { + "N": "2015" } } }, diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index d0eeb178b3c..b2970345a60 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -6,6 +6,7 @@ "protocol":"ec2", "serviceAbbreviation":"Amazon EC2", "serviceFullName":"Amazon Elastic Compute Cloud", + "serviceId":"EC2", "signatureVersion":"v4", "uid":"ec2-2016-11-15", "xmlNamespace":"http://ec2.amazonaws.com/doc/2016-11-15" @@ -20,6 +21,15 @@ "input":{"shape":"AcceptReservedInstancesExchangeQuoteRequest"}, "output":{"shape":"AcceptReservedInstancesExchangeQuoteResult"} }, + "AcceptVpcEndpointConnections":{ + "name":"AcceptVpcEndpointConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AcceptVpcEndpointConnectionsRequest"}, + "output":{"shape":"AcceptVpcEndpointConnectionsResult"} + }, "AcceptVpcPeeringConnection":{ "name":"AcceptVpcPeeringConnection", "http":{ @@ -256,6 +266,15 @@ "input":{"shape":"ConfirmProductInstanceRequest"}, "output":{"shape":"ConfirmProductInstanceResult"} }, + "CopyFpgaImage":{ + "name":"CopyFpgaImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopyFpgaImageRequest"}, + "output":{"shape":"CopyFpgaImageResult"} + }, "CopyImage":{ "name":"CopyImage", "http":{ @@ -283,6 +302,24 @@ "input":{"shape":"CreateCustomerGatewayRequest"}, "output":{"shape":"CreateCustomerGatewayResult"} }, + "CreateDefaultSubnet":{ + "name":"CreateDefaultSubnet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDefaultSubnetRequest"}, + "output":{"shape":"CreateDefaultSubnetResult"} + }, + "CreateDefaultVpc":{ + "name":"CreateDefaultVpc", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDefaultVpcRequest"}, + "output":{"shape":"CreateDefaultVpcResult"} + }, "CreateDhcpOptions":{ "name":"CreateDhcpOptions", "http":{ @@ -355,6 +392,24 @@ "input":{"shape":"CreateKeyPairRequest"}, "output":{"shape":"KeyPair"} }, + "CreateLaunchTemplate":{ + "name":"CreateLaunchTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLaunchTemplateRequest"}, + "output":{"shape":"CreateLaunchTemplateResult"} + }, + "CreateLaunchTemplateVersion":{ + "name":"CreateLaunchTemplateVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLaunchTemplateVersionRequest"}, + "output":{"shape":"CreateLaunchTemplateVersionResult"} + }, "CreateNatGateway":{ "name":"CreateNatGateway", "http":{ @@ -390,6 +445,15 @@ "input":{"shape":"CreateNetworkInterfaceRequest"}, "output":{"shape":"CreateNetworkInterfaceResult"} }, + "CreateNetworkInterfacePermission":{ + "name":"CreateNetworkInterfacePermission", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNetworkInterfacePermissionRequest"}, + "output":{"shape":"CreateNetworkInterfacePermissionResult"} + }, "CreatePlacementGroup":{ "name":"CreatePlacementGroup", "http":{ @@ -496,6 +560,24 @@ "input":{"shape":"CreateVpcEndpointRequest"}, "output":{"shape":"CreateVpcEndpointResult"} }, + "CreateVpcEndpointConnectionNotification":{ + "name":"CreateVpcEndpointConnectionNotification", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcEndpointConnectionNotificationRequest"}, + "output":{"shape":"CreateVpcEndpointConnectionNotificationResult"} + }, + "CreateVpcEndpointServiceConfiguration":{ + "name":"CreateVpcEndpointServiceConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcEndpointServiceConfigurationRequest"}, + "output":{"shape":"CreateVpcEndpointServiceConfigurationResult"} + }, "CreateVpcPeeringConnection":{ "name":"CreateVpcPeeringConnection", "http":{ @@ -565,6 +647,15 @@ "input":{"shape":"DeleteFlowLogsRequest"}, "output":{"shape":"DeleteFlowLogsResult"} }, + "DeleteFpgaImage":{ + "name":"DeleteFpgaImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteFpgaImageRequest"}, + "output":{"shape":"DeleteFpgaImageResult"} + }, "DeleteInternetGateway":{ "name":"DeleteInternetGateway", "http":{ @@ -581,6 +672,24 @@ }, "input":{"shape":"DeleteKeyPairRequest"} }, + "DeleteLaunchTemplate":{ + "name":"DeleteLaunchTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLaunchTemplateRequest"}, + "output":{"shape":"DeleteLaunchTemplateResult"} + }, + "DeleteLaunchTemplateVersions":{ + "name":"DeleteLaunchTemplateVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLaunchTemplateVersionsRequest"}, + "output":{"shape":"DeleteLaunchTemplateVersionsResult"} + }, "DeleteNatGateway":{ "name":"DeleteNatGateway", "http":{ @@ -614,6 +723,15 @@ }, "input":{"shape":"DeleteNetworkInterfaceRequest"} }, + "DeleteNetworkInterfacePermission":{ + "name":"DeleteNetworkInterfacePermission", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNetworkInterfacePermissionRequest"}, + "output":{"shape":"DeleteNetworkInterfacePermissionResult"} + }, "DeletePlacementGroup":{ "name":"DeletePlacementGroup", "http":{ @@ -694,6 +812,24 @@ }, "input":{"shape":"DeleteVpcRequest"} }, + "DeleteVpcEndpointConnectionNotifications":{ + "name":"DeleteVpcEndpointConnectionNotifications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcEndpointConnectionNotificationsRequest"}, + "output":{"shape":"DeleteVpcEndpointConnectionNotificationsResult"} + }, + "DeleteVpcEndpointServiceConfigurations":{ + "name":"DeleteVpcEndpointServiceConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcEndpointServiceConfigurationsRequest"}, + "output":{"shape":"DeleteVpcEndpointServiceConfigurationsResult"} + }, "DeleteVpcEndpoints":{ "name":"DeleteVpcEndpoints", "http":{ @@ -825,6 +961,15 @@ "input":{"shape":"DescribeEgressOnlyInternetGatewaysRequest"}, "output":{"shape":"DescribeEgressOnlyInternetGatewaysResult"} }, + "DescribeElasticGpus":{ + "name":"DescribeElasticGpus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeElasticGpusRequest"}, + "output":{"shape":"DescribeElasticGpusResult"} + }, "DescribeExportTasks":{ "name":"DescribeExportTasks", "http":{ @@ -843,6 +988,15 @@ "input":{"shape":"DescribeFlowLogsRequest"}, "output":{"shape":"DescribeFlowLogsResult"} }, + "DescribeFpgaImageAttribute":{ + "name":"DescribeFpgaImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFpgaImageAttributeRequest"}, + "output":{"shape":"DescribeFpgaImageAttributeResult"} + }, "DescribeFpgaImages":{ "name":"DescribeFpgaImages", "http":{ @@ -951,6 +1105,15 @@ "input":{"shape":"DescribeInstanceAttributeRequest"}, "output":{"shape":"InstanceAttribute"} }, + "DescribeInstanceCreditSpecifications":{ + "name":"DescribeInstanceCreditSpecifications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstanceCreditSpecificationsRequest"}, + "output":{"shape":"DescribeInstanceCreditSpecificationsResult"} + }, "DescribeInstanceStatus":{ "name":"DescribeInstanceStatus", "http":{ @@ -987,6 +1150,24 @@ "input":{"shape":"DescribeKeyPairsRequest"}, "output":{"shape":"DescribeKeyPairsResult"} }, + "DescribeLaunchTemplateVersions":{ + "name":"DescribeLaunchTemplateVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLaunchTemplateVersionsRequest"}, + "output":{"shape":"DescribeLaunchTemplateVersionsResult"} + }, + "DescribeLaunchTemplates":{ + "name":"DescribeLaunchTemplates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLaunchTemplatesRequest"}, + "output":{"shape":"DescribeLaunchTemplatesResult"} + }, "DescribeMovingAddresses":{ "name":"DescribeMovingAddresses", "http":{ @@ -1023,6 +1204,15 @@ "input":{"shape":"DescribeNetworkInterfaceAttributeRequest"}, "output":{"shape":"DescribeNetworkInterfaceAttributeResult"} }, + "DescribeNetworkInterfacePermissions":{ + "name":"DescribeNetworkInterfacePermissions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeNetworkInterfacePermissionsRequest"}, + "output":{"shape":"DescribeNetworkInterfacePermissionsResult"} + }, "DescribeNetworkInterfaces":{ "name":"DescribeNetworkInterfaces", "http":{ @@ -1302,6 +1492,42 @@ "input":{"shape":"DescribeVpcClassicLinkDnsSupportRequest"}, "output":{"shape":"DescribeVpcClassicLinkDnsSupportResult"} }, + "DescribeVpcEndpointConnectionNotifications":{ + "name":"DescribeVpcEndpointConnectionNotifications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcEndpointConnectionNotificationsRequest"}, + "output":{"shape":"DescribeVpcEndpointConnectionNotificationsResult"} + }, + "DescribeVpcEndpointConnections":{ + "name":"DescribeVpcEndpointConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcEndpointConnectionsRequest"}, + "output":{"shape":"DescribeVpcEndpointConnectionsResult"} + }, + "DescribeVpcEndpointServiceConfigurations":{ + "name":"DescribeVpcEndpointServiceConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcEndpointServiceConfigurationsRequest"}, + "output":{"shape":"DescribeVpcEndpointServiceConfigurationsResult"} + }, + "DescribeVpcEndpointServicePermissions":{ + "name":"DescribeVpcEndpointServicePermissions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcEndpointServicePermissionsRequest"}, + "output":{"shape":"DescribeVpcEndpointServicePermissionsResult"} + }, "DescribeVpcEndpointServices":{ "name":"DescribeVpcEndpointServices", "http":{ @@ -1528,6 +1754,15 @@ "input":{"shape":"GetHostReservationPurchasePreviewRequest"}, "output":{"shape":"GetHostReservationPurchasePreviewResult"} }, + "GetLaunchTemplateData":{ + "name":"GetLaunchTemplateData", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLaunchTemplateDataRequest"}, + "output":{"shape":"GetLaunchTemplateDataResult"} + }, "GetPasswordData":{ "name":"GetPasswordData", "http":{ @@ -1591,6 +1826,15 @@ "input":{"shape":"ImportVolumeRequest"}, "output":{"shape":"ImportVolumeResult"} }, + "ModifyFpgaImageAttribute":{ + "name":"ModifyFpgaImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyFpgaImageAttributeRequest"}, + "output":{"shape":"ModifyFpgaImageAttributeResult"} + }, "ModifyHosts":{ "name":"ModifyHosts", "http":{ @@ -1632,6 +1876,15 @@ }, "input":{"shape":"ModifyInstanceAttributeRequest"} }, + "ModifyInstanceCreditSpecification":{ + "name":"ModifyInstanceCreditSpecification", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyInstanceCreditSpecificationRequest"}, + "output":{"shape":"ModifyInstanceCreditSpecificationResult"} + }, "ModifyInstancePlacement":{ "name":"ModifyInstancePlacement", "http":{ @@ -1641,6 +1894,15 @@ "input":{"shape":"ModifyInstancePlacementRequest"}, "output":{"shape":"ModifyInstancePlacementResult"} }, + "ModifyLaunchTemplate":{ + "name":"ModifyLaunchTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyLaunchTemplateRequest"}, + "output":{"shape":"ModifyLaunchTemplateResult"} + }, "ModifyNetworkInterfaceAttribute":{ "name":"ModifyNetworkInterfaceAttribute", "http":{ @@ -1717,6 +1979,33 @@ "input":{"shape":"ModifyVpcEndpointRequest"}, "output":{"shape":"ModifyVpcEndpointResult"} }, + "ModifyVpcEndpointConnectionNotification":{ + "name":"ModifyVpcEndpointConnectionNotification", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVpcEndpointConnectionNotificationRequest"}, + "output":{"shape":"ModifyVpcEndpointConnectionNotificationResult"} + }, + "ModifyVpcEndpointServiceConfiguration":{ + "name":"ModifyVpcEndpointServiceConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVpcEndpointServiceConfigurationRequest"}, + "output":{"shape":"ModifyVpcEndpointServiceConfigurationResult"} + }, + "ModifyVpcEndpointServicePermissions":{ + "name":"ModifyVpcEndpointServicePermissions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVpcEndpointServicePermissionsRequest"}, + "output":{"shape":"ModifyVpcEndpointServicePermissionsResult"} + }, "ModifyVpcPeeringConnectionOptions":{ "name":"ModifyVpcPeeringConnectionOptions", "http":{ @@ -1726,6 +2015,15 @@ "input":{"shape":"ModifyVpcPeeringConnectionOptionsRequest"}, "output":{"shape":"ModifyVpcPeeringConnectionOptionsResult"} }, + "ModifyVpcTenancy":{ + "name":"ModifyVpcTenancy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVpcTenancyRequest"}, + "output":{"shape":"ModifyVpcTenancyResult"} + }, "MonitorInstances":{ "name":"MonitorInstances", "http":{ @@ -1788,6 +2086,15 @@ "input":{"shape":"RegisterImageRequest"}, "output":{"shape":"RegisterImageResult"} }, + "RejectVpcEndpointConnections":{ + "name":"RejectVpcEndpointConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RejectVpcEndpointConnectionsRequest"}, + "output":{"shape":"RejectVpcEndpointConnectionsResult"} + }, "RejectVpcPeeringConnection":{ "name":"RejectVpcPeeringConnection", "http":{ @@ -1883,6 +2190,15 @@ "input":{"shape":"RequestSpotInstancesRequest"}, "output":{"shape":"RequestSpotInstancesResult"} }, + "ResetFpgaImageAttribute":{ + "name":"ResetFpgaImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetFpgaImageAttributeRequest"}, + "output":{"shape":"ResetFpgaImageAttributeResult"} + }, "ResetImageAttribute":{ "name":"ResetImageAttribute", "http":{ @@ -2010,6 +2326,24 @@ }, "input":{"shape":"UnmonitorInstancesRequest"}, "output":{"shape":"UnmonitorInstancesResult"} + }, + "UpdateSecurityGroupRuleDescriptionsEgress":{ + "name":"UpdateSecurityGroupRuleDescriptionsEgress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSecurityGroupRuleDescriptionsEgressRequest"}, + "output":{"shape":"UpdateSecurityGroupRuleDescriptionsEgressResult"} + }, + "UpdateSecurityGroupRuleDescriptionsIngress":{ + "name":"UpdateSecurityGroupRuleDescriptionsIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSecurityGroupRuleDescriptionsIngressRequest"}, + "output":{"shape":"UpdateSecurityGroupRuleDescriptionsIngressResult"} } }, "shapes":{ @@ -2037,6 +2371,30 @@ } } }, + "AcceptVpcEndpointConnectionsRequest":{ + "type":"structure", + "required":[ + "ServiceId", + "VpcEndpointIds" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ServiceId":{"shape":"String"}, + "VpcEndpointIds":{ + "shape":"ValueStringList", + "locationName":"VpcEndpointId" + } + } + }, + "AcceptVpcEndpointConnectionsResult":{ + "type":"structure", + "members":{ + "Unsuccessful":{ + "shape":"UnsuccessfulItemSet", + "locationName":"unsuccessful" + } + } + }, "AcceptVpcPeeringConnectionRequest":{ "type":"structure", "members":{ @@ -2201,6 +2559,7 @@ "type":"structure", "members":{ "Domain":{"shape":"DomainType"}, + "Address":{"shape":"String"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -2287,6 +2646,26 @@ "diversified" ] }, + "AllowedPrincipal":{ + "type":"structure", + "members":{ + "PrincipalType":{ + "shape":"PrincipalType", + "locationName":"principalType" + }, + "Principal":{ + "shape":"String", + "locationName":"principal" + } + } + }, + "AllowedPrincipalSet":{ + "type":"list", + "member":{ + "shape":"AllowedPrincipal", + "locationName":"item" + } + }, "ArchitectureValues":{ "type":"string", "enum":[ @@ -2483,6 +2862,7 @@ "shape":"Boolean", "locationName":"amazonProvidedIpv6CidrBlock" }, + "CidrBlock":{"shape":"String"}, "VpcId":{ "shape":"String", "locationName":"vpcId" @@ -2496,6 +2876,10 @@ "shape":"VpcIpv6CidrBlockAssociation", "locationName":"ipv6CidrBlockAssociation" }, + "CidrBlockAssociation":{ + "shape":"VpcCidrBlockAssociation", + "locationName":"cidrBlockAssociation" + }, "VpcId":{ "shape":"String", "locationName":"vpcId" @@ -3231,6 +3615,22 @@ "locationName":"item" } }, + "CidrBlock":{ + "type":"structure", + "members":{ + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + } + } + }, + "CidrBlockSet":{ + "type":"list", + "member":{ + "shape":"CidrBlock", + "locationName":"item" + } + }, "ClassicLinkDnsSupport":{ "type":"structure", "members":{ @@ -3279,6 +3679,35 @@ "locationName":"item" } }, + "ClassicLoadBalancer":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"String", + "locationName":"name" + } + } + }, + "ClassicLoadBalancers":{ + "type":"list", + "member":{ + "shape":"ClassicLoadBalancer", + "locationName":"item" + }, + "max":5, + "min":1 + }, + "ClassicLoadBalancersConfig":{ + "type":"structure", + "required":["ClassicLoadBalancers"], + "members":{ + "ClassicLoadBalancers":{ + "shape":"ClassicLoadBalancers", + "locationName":"classicLoadBalancers" + } + } + }, "ClientData":{ "type":"structure", "members":{ @@ -3316,11 +3745,62 @@ } } }, - "ContainerFormat":{ - "type":"string", - "enum":["ova"] - }, - "ConversionIdStringList":{ + "ConnectionNotification":{ + "type":"structure", + "members":{ + "ConnectionNotificationId":{ + "shape":"String", + "locationName":"connectionNotificationId" + }, + "ServiceId":{ + "shape":"String", + "locationName":"serviceId" + }, + "VpcEndpointId":{ + "shape":"String", + "locationName":"vpcEndpointId" + }, + "ConnectionNotificationType":{ + "shape":"ConnectionNotificationType", + "locationName":"connectionNotificationType" + }, + "ConnectionNotificationArn":{ + "shape":"String", + "locationName":"connectionNotificationArn" + }, + "ConnectionEvents":{ + "shape":"ValueStringList", + "locationName":"connectionEvents" + }, + "ConnectionNotificationState":{ + "shape":"ConnectionNotificationState", + "locationName":"connectionNotificationState" + } + } + }, + "ConnectionNotificationSet":{ + "type":"list", + "member":{ + "shape":"ConnectionNotification", + "locationName":"item" + } + }, + "ConnectionNotificationState":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "ConnectionNotificationType":{ + "type":"string", + "enum":["Topic"] + }, + "ContainerFormat":{ + "type":"string", + "enum":["ova"] + }, + "ConversionIdStringList":{ "type":"list", "member":{ "shape":"String", @@ -3373,6 +3853,30 @@ "completed" ] }, + "CopyFpgaImageRequest":{ + "type":"structure", + "required":[ + "SourceFpgaImageId", + "SourceRegion" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "SourceFpgaImageId":{"shape":"String"}, + "Description":{"shape":"String"}, + "Name":{"shape":"String"}, + "SourceRegion":{"shape":"String"}, + "ClientToken":{"shape":"String"} + } + }, + "CopyFpgaImageResult":{ + "type":"structure", + "members":{ + "FpgaImageId":{ + "shape":"String", + "locationName":"fpgaImageId" + } + } + }, "CopyImageRequest":{ "type":"structure", "required":[ @@ -3479,6 +3983,38 @@ } } }, + "CreateDefaultSubnetRequest":{ + "type":"structure", + "required":["AvailabilityZone"], + "members":{ + "AvailabilityZone":{"shape":"String"}, + "DryRun":{"shape":"Boolean"} + } + }, + "CreateDefaultSubnetResult":{ + "type":"structure", + "members":{ + "Subnet":{ + "shape":"Subnet", + "locationName":"subnet" + } + } + }, + "CreateDefaultVpcRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"} + } + }, + "CreateDefaultVpcResult":{ + "type":"structure", + "members":{ + "Vpc":{ + "shape":"Vpc", + "locationName":"vpc" + } + } + }, "CreateDhcpOptionsRequest":{ "type":"structure", "required":["DhcpConfigurations"], @@ -3689,6 +4225,51 @@ } } }, + "CreateLaunchTemplateRequest":{ + "type":"structure", + "required":[ + "LaunchTemplateName", + "LaunchTemplateData" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ClientToken":{"shape":"String"}, + "LaunchTemplateName":{"shape":"LaunchTemplateName"}, + "VersionDescription":{"shape":"VersionDescription"}, + "LaunchTemplateData":{"shape":"RequestLaunchTemplateData"} + } + }, + "CreateLaunchTemplateResult":{ + "type":"structure", + "members":{ + "LaunchTemplate":{ + "shape":"LaunchTemplate", + "locationName":"launchTemplate" + } + } + }, + "CreateLaunchTemplateVersionRequest":{ + "type":"structure", + "required":["LaunchTemplateData"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ClientToken":{"shape":"String"}, + "LaunchTemplateId":{"shape":"String"}, + "LaunchTemplateName":{"shape":"LaunchTemplateName"}, + "SourceVersion":{"shape":"String"}, + "VersionDescription":{"shape":"VersionDescription"}, + "LaunchTemplateData":{"shape":"RequestLaunchTemplateData"} + } + }, + "CreateLaunchTemplateVersionResult":{ + "type":"structure", + "members":{ + "LaunchTemplateVersion":{ + "shape":"LaunchTemplateVersion", + "locationName":"launchTemplateVersion" + } + } + }, "CreateNatGatewayRequest":{ "type":"structure", "required":[ @@ -3789,6 +4370,29 @@ } } }, + "CreateNetworkInterfacePermissionRequest":{ + "type":"structure", + "required":[ + "NetworkInterfaceId", + "Permission" + ], + "members":{ + "NetworkInterfaceId":{"shape":"String"}, + "AwsAccountId":{"shape":"String"}, + "AwsService":{"shape":"String"}, + "Permission":{"shape":"InterfacePermissionType"}, + "DryRun":{"shape":"Boolean"} + } + }, + "CreateNetworkInterfacePermissionResult":{ + "type":"structure", + "members":{ + "InterfacePermission":{ + "shape":"NetworkInterfacePermission", + "locationName":"interfacePermission" + } + } + }, "CreateNetworkInterfaceRequest":{ "type":"structure", "required":["SubnetId"], @@ -4140,34 +4744,98 @@ } } }, + "CreateVpcEndpointConnectionNotificationRequest":{ + "type":"structure", + "required":[ + "ConnectionNotificationArn", + "ConnectionEvents" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ServiceId":{"shape":"String"}, + "VpcEndpointId":{"shape":"String"}, + "ConnectionNotificationArn":{"shape":"String"}, + "ConnectionEvents":{"shape":"ValueStringList"}, + "ClientToken":{"shape":"String"} + } + }, + "CreateVpcEndpointConnectionNotificationResult":{ + "type":"structure", + "members":{ + "ConnectionNotification":{ + "shape":"ConnectionNotification", + "locationName":"connectionNotification" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + } + } + }, "CreateVpcEndpointRequest":{ "type":"structure", "required":[ - "ServiceName", - "VpcId" + "VpcId", + "ServiceName" ], "members":{ - "ClientToken":{"shape":"String"}, "DryRun":{"shape":"Boolean"}, + "VpcEndpointType":{"shape":"VpcEndpointType"}, + "VpcId":{"shape":"String"}, + "ServiceName":{"shape":"String"}, "PolicyDocument":{"shape":"String"}, "RouteTableIds":{ "shape":"ValueStringList", "locationName":"RouteTableId" }, - "ServiceName":{"shape":"String"}, - "VpcId":{"shape":"String"} + "SubnetIds":{ + "shape":"ValueStringList", + "locationName":"SubnetId" + }, + "SecurityGroupIds":{ + "shape":"ValueStringList", + "locationName":"SecurityGroupId" + }, + "ClientToken":{"shape":"String"}, + "PrivateDnsEnabled":{"shape":"Boolean"} } }, "CreateVpcEndpointResult":{ "type":"structure", "members":{ + "VpcEndpoint":{ + "shape":"VpcEndpoint", + "locationName":"vpcEndpoint" + }, "ClientToken":{ "shape":"String", "locationName":"clientToken" + } + } + }, + "CreateVpcEndpointServiceConfigurationRequest":{ + "type":"structure", + "required":["NetworkLoadBalancerArns"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "AcceptanceRequired":{"shape":"Boolean"}, + "NetworkLoadBalancerArns":{ + "shape":"ValueStringList", + "locationName":"NetworkLoadBalancerArn" }, - "VpcEndpoint":{ - "shape":"VpcEndpoint", - "locationName":"vpcEndpoint" + "ClientToken":{"shape":"String"} + } + }, + "CreateVpcEndpointServiceConfigurationResult":{ + "type":"structure", + "members":{ + "ServiceConfiguration":{ + "shape":"ServiceConfiguration", + "locationName":"serviceConfiguration" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" } } }, @@ -4189,7 +4857,8 @@ "VpcId":{ "shape":"String", "locationName":"vpcId" - } + }, + "PeerRegion":{"shape":"String"} } }, "CreateVpcPeeringConnectionResult":{ @@ -4276,6 +4945,7 @@ "members":{ "AvailabilityZone":{"shape":"String"}, "Type":{"shape":"GatewayType"}, + "AmazonSideAsn":{"shape":"Long"}, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -4291,6 +4961,22 @@ } } }, + "CreditSpecification":{ + "type":"structure", + "members":{ + "CpuCredits":{ + "shape":"String", + "locationName":"cpuCredits" + } + } + }, + "CreditSpecificationRequest":{ + "type":"structure", + "required":["CpuCredits"], + "members":{ + "CpuCredits":{"shape":"String"} + } + }, "CurrencyCodeValues":{ "type":"string", "enum":["USD"] @@ -4404,6 +5090,23 @@ } } }, + "DeleteFpgaImageRequest":{ + "type":"structure", + "required":["FpgaImageId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "FpgaImageId":{"shape":"String"} + } + }, + "DeleteFpgaImageResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, "DeleteInternetGatewayRequest":{ "type":"structure", "required":["InternetGatewayId"], @@ -4429,6 +5132,101 @@ } } }, + "DeleteLaunchTemplateRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "LaunchTemplateId":{"shape":"String"}, + "LaunchTemplateName":{"shape":"LaunchTemplateName"} + } + }, + "DeleteLaunchTemplateResult":{ + "type":"structure", + "members":{ + "LaunchTemplate":{ + "shape":"LaunchTemplate", + "locationName":"launchTemplate" + } + } + }, + "DeleteLaunchTemplateVersionsRequest":{ + "type":"structure", + "required":["Versions"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "LaunchTemplateId":{"shape":"String"}, + "LaunchTemplateName":{"shape":"LaunchTemplateName"}, + "Versions":{ + "shape":"VersionStringList", + "locationName":"LaunchTemplateVersion" + } + } + }, + "DeleteLaunchTemplateVersionsResponseErrorItem":{ + "type":"structure", + "members":{ + "LaunchTemplateId":{ + "shape":"String", + "locationName":"launchTemplateId" + }, + "LaunchTemplateName":{ + "shape":"String", + "locationName":"launchTemplateName" + }, + "VersionNumber":{ + "shape":"Long", + "locationName":"versionNumber" + }, + "ResponseError":{ + "shape":"ResponseError", + "locationName":"responseError" + } + } + }, + "DeleteLaunchTemplateVersionsResponseErrorSet":{ + "type":"list", + "member":{ + "shape":"DeleteLaunchTemplateVersionsResponseErrorItem", + "locationName":"item" + } + }, + "DeleteLaunchTemplateVersionsResponseSuccessItem":{ + "type":"structure", + "members":{ + "LaunchTemplateId":{ + "shape":"String", + "locationName":"launchTemplateId" + }, + "LaunchTemplateName":{ + "shape":"String", + "locationName":"launchTemplateName" + }, + "VersionNumber":{ + "shape":"Long", + "locationName":"versionNumber" + } + } + }, + "DeleteLaunchTemplateVersionsResponseSuccessSet":{ + "type":"list", + "member":{ + "shape":"DeleteLaunchTemplateVersionsResponseSuccessItem", + "locationName":"item" + } + }, + "DeleteLaunchTemplateVersionsResult":{ + "type":"structure", + "members":{ + "SuccessfullyDeletedLaunchTemplateVersions":{ + "shape":"DeleteLaunchTemplateVersionsResponseSuccessSet", + "locationName":"successfullyDeletedLaunchTemplateVersionSet" + }, + "UnsuccessfullyDeletedLaunchTemplateVersions":{ + "shape":"DeleteLaunchTemplateVersionsResponseErrorSet", + "locationName":"unsuccessfullyDeletedLaunchTemplateVersionSet" + } + } + }, "DeleteNatGatewayRequest":{ "type":"structure", "required":["NatGatewayId"], @@ -4485,13 +5283,31 @@ } } }, - "DeleteNetworkInterfaceRequest":{ + "DeleteNetworkInterfacePermissionRequest":{ "type":"structure", - "required":["NetworkInterfaceId"], + "required":["NetworkInterfacePermissionId"], "members":{ - "DryRun":{ - "shape":"Boolean", - "locationName":"dryRun" + "NetworkInterfacePermissionId":{"shape":"String"}, + "Force":{"shape":"Boolean"}, + "DryRun":{"shape":"Boolean"} + } + }, + "DeleteNetworkInterfacePermissionResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "DeleteNetworkInterfaceRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" }, "NetworkInterfaceId":{ "shape":"String", @@ -4620,6 +5436,46 @@ } } }, + "DeleteVpcEndpointConnectionNotificationsRequest":{ + "type":"structure", + "required":["ConnectionNotificationIds"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ConnectionNotificationIds":{ + "shape":"ValueStringList", + "locationName":"ConnectionNotificationId" + } + } + }, + "DeleteVpcEndpointConnectionNotificationsResult":{ + "type":"structure", + "members":{ + "Unsuccessful":{ + "shape":"UnsuccessfulItemSet", + "locationName":"unsuccessful" + } + } + }, + "DeleteVpcEndpointServiceConfigurationsRequest":{ + "type":"structure", + "required":["ServiceIds"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ServiceIds":{ + "shape":"ValueStringList", + "locationName":"ServiceId" + } + } + }, + "DeleteVpcEndpointServiceConfigurationsResult":{ + "type":"structure", + "members":{ + "Unsuccessful":{ + "shape":"UnsuccessfulItemSet", + "locationName":"unsuccessful" + } + } + }, "DeleteVpcEndpointsRequest":{ "type":"structure", "required":["VpcEndpointIds"], @@ -4966,6 +5822,39 @@ } } }, + "DescribeElasticGpusRequest":{ + "type":"structure", + "members":{ + "ElasticGpuIds":{ + "shape":"ElasticGpuIdSet", + "locationName":"ElasticGpuId" + }, + "DryRun":{"shape":"Boolean"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "DescribeElasticGpusResult":{ + "type":"structure", + "members":{ + "ElasticGpuSet":{ + "shape":"ElasticGpuSet", + "locationName":"elasticGpuSet" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, "DescribeExportTasksRequest":{ "type":"structure", "members":{ @@ -5009,6 +5898,27 @@ } } }, + "DescribeFpgaImageAttributeRequest":{ + "type":"structure", + "required":[ + "FpgaImageId", + "Attribute" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "FpgaImageId":{"shape":"String"}, + "Attribute":{"shape":"FpgaImageAttributeName"} + } + }, + "DescribeFpgaImageAttributeResult":{ + "type":"structure", + "members":{ + "FpgaImageAttribute":{ + "shape":"FpgaImageAttribute", + "locationName":"fpgaImageAttribute" + } + } + }, "DescribeFpgaImagesRequest":{ "type":"structure", "members":{ @@ -5310,6 +6220,35 @@ } } }, + "DescribeInstanceCreditSpecificationsRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "DescribeInstanceCreditSpecificationsResult":{ + "type":"structure", + "members":{ + "InstanceCreditSpecifications":{ + "shape":"InstanceCreditSpecificationList", + "locationName":"instanceCreditSpecificationSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, "DescribeInstanceStatusRequest":{ "type":"structure", "members":{ @@ -5436,6 +6375,72 @@ } } }, + "DescribeLaunchTemplateVersionsRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "LaunchTemplateId":{"shape":"String"}, + "LaunchTemplateName":{"shape":"LaunchTemplateName"}, + "Versions":{ + "shape":"VersionStringList", + "locationName":"LaunchTemplateVersion" + }, + "MinVersion":{"shape":"String"}, + "MaxVersion":{"shape":"String"}, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeLaunchTemplateVersionsResult":{ + "type":"structure", + "members":{ + "LaunchTemplateVersions":{ + "shape":"LaunchTemplateVersionSet", + "locationName":"launchTemplateVersionSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeLaunchTemplatesRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "LaunchTemplateIds":{ + "shape":"ValueStringList", + "locationName":"LaunchTemplateId" + }, + "LaunchTemplateNames":{ + "shape":"LaunchTemplateNameStringList", + "locationName":"LaunchTemplateName" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"} + } + }, + "DescribeLaunchTemplatesResult":{ + "type":"structure", + "members":{ + "LaunchTemplates":{ + "shape":"LaunchTemplateSet", + "locationName":"launchTemplates" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, "DescribeMovingAddressesRequest":{ "type":"structure", "members":{ @@ -5568,6 +6573,34 @@ } } }, + "DescribeNetworkInterfacePermissionsRequest":{ + "type":"structure", + "members":{ + "NetworkInterfacePermissionIds":{ + "shape":"NetworkInterfacePermissionIdList", + "locationName":"NetworkInterfacePermissionId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"} + } + }, + "DescribeNetworkInterfacePermissionsResult":{ + "type":"structure", + "members":{ + "NetworkInterfacePermissions":{ + "shape":"NetworkInterfacePermissionList", + "locationName":"networkInterfacePermissions" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, "DescribeNetworkInterfacesRequest":{ "type":"structure", "members":{ @@ -5940,7 +6973,9 @@ "DryRun":{ "shape":"Boolean", "locationName":"dryRun" - } + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"} } }, "DescribeSecurityGroupsResult":{ @@ -5949,6 +6984,10 @@ "SecurityGroups":{ "shape":"SecurityGroupList", "locationName":"securityGroupInfo" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" } } }, @@ -6560,28 +7599,33 @@ } } }, - "DescribeVpcEndpointServicesRequest":{ + "DescribeVpcEndpointConnectionNotificationsRequest":{ "type":"structure", "members":{ "DryRun":{"shape":"Boolean"}, + "ConnectionNotificationId":{"shape":"String"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, "MaxResults":{"shape":"Integer"}, "NextToken":{"shape":"String"} } }, - "DescribeVpcEndpointServicesResult":{ + "DescribeVpcEndpointConnectionNotificationsResult":{ "type":"structure", "members":{ + "ConnectionNotificationSet":{ + "shape":"ConnectionNotificationSet", + "locationName":"connectionNotificationSet" + }, "NextToken":{ "shape":"String", "locationName":"nextToken" - }, - "ServiceNames":{ - "shape":"ValueStringList", - "locationName":"serviceNameSet" } } }, - "DescribeVpcEndpointsRequest":{ + "DescribeVpcEndpointConnectionsRequest":{ "type":"structure", "members":{ "DryRun":{"shape":"Boolean"}, @@ -6590,89 +7634,203 @@ "locationName":"Filter" }, "MaxResults":{"shape":"Integer"}, - "NextToken":{"shape":"String"}, - "VpcEndpointIds":{ - "shape":"ValueStringList", - "locationName":"VpcEndpointId" - } + "NextToken":{"shape":"String"} } }, - "DescribeVpcEndpointsResult":{ + "DescribeVpcEndpointConnectionsResult":{ "type":"structure", "members":{ + "VpcEndpointConnections":{ + "shape":"VpcEndpointConnectionSet", + "locationName":"vpcEndpointConnectionSet" + }, "NextToken":{ "shape":"String", "locationName":"nextToken" - }, - "VpcEndpoints":{ - "shape":"VpcEndpointSet", - "locationName":"vpcEndpointSet" } } }, - "DescribeVpcPeeringConnectionsRequest":{ + "DescribeVpcEndpointServiceConfigurationsRequest":{ "type":"structure", "members":{ + "DryRun":{"shape":"Boolean"}, + "ServiceIds":{ + "shape":"ValueStringList", + "locationName":"ServiceId" + }, "Filters":{ "shape":"FilterList", "locationName":"Filter" }, - "DryRun":{ - "shape":"Boolean", - "locationName":"dryRun" - }, - "VpcPeeringConnectionIds":{ - "shape":"ValueStringList", - "locationName":"VpcPeeringConnectionId" - } + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} } }, - "DescribeVpcPeeringConnectionsResult":{ + "DescribeVpcEndpointServiceConfigurationsResult":{ "type":"structure", "members":{ - "VpcPeeringConnections":{ - "shape":"VpcPeeringConnectionList", - "locationName":"vpcPeeringConnectionSet" + "ServiceConfigurations":{ + "shape":"ServiceConfigurationSet", + "locationName":"serviceConfigurationSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" } } }, - "DescribeVpcsRequest":{ + "DescribeVpcEndpointServicePermissionsRequest":{ "type":"structure", + "required":["ServiceId"], "members":{ + "DryRun":{"shape":"Boolean"}, + "ServiceId":{"shape":"String"}, "Filters":{ "shape":"FilterList", "locationName":"Filter" }, - "VpcIds":{ - "shape":"VpcIdStringList", - "locationName":"VpcId" - }, - "DryRun":{ - "shape":"Boolean", - "locationName":"dryRun" - } + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} } }, - "DescribeVpcsResult":{ + "DescribeVpcEndpointServicePermissionsResult":{ "type":"structure", "members":{ - "Vpcs":{ - "shape":"VpcList", - "locationName":"vpcSet" + "AllowedPrincipals":{ + "shape":"AllowedPrincipalSet", + "locationName":"allowedPrincipals" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" } } }, - "DescribeVpnConnectionsRequest":{ + "DescribeVpcEndpointServicesRequest":{ "type":"structure", "members":{ + "DryRun":{"shape":"Boolean"}, + "ServiceNames":{ + "shape":"ValueStringList", + "locationName":"ServiceName" + }, "Filters":{ "shape":"FilterList", "locationName":"Filter" }, - "VpnConnectionIds":{ - "shape":"VpnConnectionIdStringList", - "locationName":"VpnConnectionId" - }, + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "DescribeVpcEndpointServicesResult":{ + "type":"structure", + "members":{ + "ServiceNames":{ + "shape":"ValueStringList", + "locationName":"serviceNameSet" + }, + "ServiceDetails":{ + "shape":"ServiceDetailSet", + "locationName":"serviceDetailSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeVpcEndpointsRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "VpcEndpointIds":{ + "shape":"ValueStringList", + "locationName":"VpcEndpointId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "DescribeVpcEndpointsResult":{ + "type":"structure", + "members":{ + "VpcEndpoints":{ + "shape":"VpcEndpointSet", + "locationName":"vpcEndpointSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeVpcPeeringConnectionsRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcPeeringConnectionIds":{ + "shape":"ValueStringList", + "locationName":"VpcPeeringConnectionId" + } + } + }, + "DescribeVpcPeeringConnectionsResult":{ + "type":"structure", + "members":{ + "VpcPeeringConnections":{ + "shape":"VpcPeeringConnectionList", + "locationName":"vpcPeeringConnectionSet" + } + } + }, + "DescribeVpcsRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "VpcIds":{ + "shape":"VpcIdStringList", + "locationName":"VpcId" + }, + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "DescribeVpcsResult":{ + "type":"structure", + "members":{ + "Vpcs":{ + "shape":"VpcList", + "locationName":"vpcSet" + } + } + }, + "DescribeVpnConnectionsRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "VpnConnectionIds":{ + "shape":"VpnConnectionIdStringList", + "locationName":"VpnConnectionId" + }, "DryRun":{ "shape":"Boolean", "locationName":"dryRun" @@ -7007,6 +8165,10 @@ "shape":"VpcIpv6CidrBlockAssociation", "locationName":"ipv6CidrBlockAssociation" }, + "CidrBlockAssociation":{ + "shape":"VpcCidrBlockAssociation", + "locationName":"cidrBlockAssociation" + }, "VpcId":{ "shape":"String", "locationName":"vpcId" @@ -7095,6 +8257,26 @@ } } }, + "DnsEntry":{ + "type":"structure", + "members":{ + "DnsName":{ + "shape":"String", + "locationName":"dnsName" + }, + "HostedZoneId":{ + "shape":"String", + "locationName":"hostedZoneId" + } + } + }, + "DnsEntrySet":{ + "type":"list", + "member":{ + "shape":"DnsEntry", + "locationName":"item" + } + }, "DomainType":{ "type":"string", "enum":[ @@ -7118,6 +8300,7 @@ "shape":"Integer", "locationName":"iops" }, + "KmsKeyId":{"shape":"String"}, "SnapshotId":{ "shape":"String", "locationName":"snapshotId" @@ -7194,6 +8377,134 @@ "locationName":"item" } }, + "ElasticGpuAssociation":{ + "type":"structure", + "members":{ + "ElasticGpuId":{ + "shape":"String", + "locationName":"elasticGpuId" + }, + "ElasticGpuAssociationId":{ + "shape":"String", + "locationName":"elasticGpuAssociationId" + }, + "ElasticGpuAssociationState":{ + "shape":"String", + "locationName":"elasticGpuAssociationState" + }, + "ElasticGpuAssociationTime":{ + "shape":"String", + "locationName":"elasticGpuAssociationTime" + } + } + }, + "ElasticGpuAssociationList":{ + "type":"list", + "member":{ + "shape":"ElasticGpuAssociation", + "locationName":"item" + } + }, + "ElasticGpuHealth":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"ElasticGpuStatus", + "locationName":"status" + } + } + }, + "ElasticGpuIdSet":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "ElasticGpuSet":{ + "type":"list", + "member":{ + "shape":"ElasticGpus", + "locationName":"item" + } + }, + "ElasticGpuSpecification":{ + "type":"structure", + "required":["Type"], + "members":{ + "Type":{"shape":"String"} + } + }, + "ElasticGpuSpecificationList":{ + "type":"list", + "member":{ + "shape":"ElasticGpuSpecification", + "locationName":"ElasticGpuSpecification" + } + }, + "ElasticGpuSpecificationResponse":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"String", + "locationName":"type" + } + } + }, + "ElasticGpuSpecificationResponseList":{ + "type":"list", + "member":{ + "shape":"ElasticGpuSpecificationResponse", + "locationName":"item" + } + }, + "ElasticGpuSpecifications":{ + "type":"list", + "member":{ + "shape":"ElasticGpuSpecification", + "locationName":"item" + } + }, + "ElasticGpuState":{ + "type":"string", + "enum":["ATTACHED"] + }, + "ElasticGpuStatus":{ + "type":"string", + "enum":[ + "OK", + "IMPAIRED" + ] + }, + "ElasticGpus":{ + "type":"structure", + "members":{ + "ElasticGpuId":{ + "shape":"String", + "locationName":"elasticGpuId" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "ElasticGpuType":{ + "shape":"String", + "locationName":"elasticGpuType" + }, + "ElasticGpuHealth":{ + "shape":"ElasticGpuHealth", + "locationName":"elasticGpuHealth" + }, + "ElasticGpuState":{ + "shape":"ElasticGpuState", + "locationName":"elasticGpuState" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + } + } + }, "EnableVgwRoutePropagationRequest":{ "type":"structure", "required":[ @@ -7425,6 +8736,23 @@ "locationName":"Filter" } }, + "FleetLaunchTemplateSpecification":{ + "type":"structure", + "members":{ + "LaunchTemplateId":{ + "shape":"String", + "locationName":"launchTemplateId" + }, + "LaunchTemplateName":{ + "shape":"LaunchTemplateName", + "locationName":"launchTemplateName" + }, + "Version":{ + "shape":"String", + "locationName":"version" + } + } + }, "FleetType":{ "type":"string", "enum":[ @@ -7543,9 +8871,47 @@ "Tags":{ "shape":"TagList", "locationName":"tags" + }, + "Public":{ + "shape":"Boolean", + "locationName":"public" } } }, + "FpgaImageAttribute":{ + "type":"structure", + "members":{ + "FpgaImageId":{ + "shape":"String", + "locationName":"fpgaImageId" + }, + "Name":{ + "shape":"String", + "locationName":"name" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "LoadPermissions":{ + "shape":"LoadPermissionList", + "locationName":"loadPermissions" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + } + } + }, + "FpgaImageAttributeName":{ + "type":"string", + "enum":[ + "description", + "name", + "loadPermission", + "productCodes" + ] + }, "FpgaImageIdList":{ "type":"list", "member":{ @@ -7668,14 +9034,31 @@ } } }, - "GetPasswordDataRequest":{ + "GetLaunchTemplateDataRequest":{ "type":"structure", "required":["InstanceId"], "members":{ - "InstanceId":{"shape":"String"}, - "DryRun":{ - "shape":"Boolean", - "locationName":"dryRun" + "DryRun":{"shape":"Boolean"}, + "InstanceId":{"shape":"String"} + } + }, + "GetLaunchTemplateDataResult":{ + "type":"structure", + "members":{ + "LaunchTemplateData":{ + "shape":"ResponseLaunchTemplateData", + "locationName":"launchTemplateData" + } + } + }, + "GetPasswordDataRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{"shape":"String"}, + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" } } }, @@ -7779,6 +9162,13 @@ "locationName":"item" } }, + "GroupIdentifierSet":{ + "type":"list", + "member":{ + "shape":"SecurityGroupIdentifier", + "locationName":"item" + } + }, "GroupIds":{ "type":"list", "member":{ @@ -7925,7 +9315,10 @@ }, "HostOfferingSet":{ "type":"list", - "member":{"shape":"HostOffering"} + "member":{ + "shape":"HostOffering", + "locationName":"item" + } }, "HostProperties":{ "type":"structure", @@ -8014,7 +9407,10 @@ }, "HostReservationSet":{ "type":"list", - "member":{"shape":"HostReservation"} + "member":{ + "shape":"HostReservation", + "locationName":"item" + } }, "HostTenancy":{ "type":"string", @@ -8890,6 +10286,10 @@ "shape":"InstanceLifecycleType", "locationName":"instanceLifecycle" }, + "ElasticGpuAssociations":{ + "shape":"ElasticGpuAssociationList", + "locationName":"elasticGpuAssociationSet" + }, "NetworkInterfaces":{ "shape":"InstanceNetworkInterfaceList", "locationName":"networkInterfaceSet" @@ -9101,6 +10501,40 @@ "locationName":"item" } }, + "InstanceCreditSpecification":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "CpuCredits":{ + "shape":"String", + "locationName":"cpuCredits" + } + } + }, + "InstanceCreditSpecificationList":{ + "type":"list", + "member":{ + "shape":"InstanceCreditSpecification", + "locationName":"item" + } + }, + "InstanceCreditSpecificationListRequest":{ + "type":"list", + "member":{ + "shape":"InstanceCreditSpecificationRequest", + "locationName":"item" + } + }, + "InstanceCreditSpecificationRequest":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"String"}, + "CpuCredits":{"shape":"String"} + } + }, "InstanceExportDetails":{ "type":"structure", "members":{ @@ -9135,6 +10569,14 @@ "locationName":"InstanceId" } }, + "InstanceInterruptionBehavior":{ + "type":"string", + "enum":[ + "hibernate", + "stop", + "terminate" + ] + }, "InstanceIpv6Address":{ "type":"structure", "members":{ @@ -9151,6 +10593,19 @@ "locationName":"item" } }, + "InstanceIpv6AddressListRequest":{ + "type":"list", + "member":{ + "shape":"InstanceIpv6AddressRequest", + "locationName":"InstanceIpv6Address" + } + }, + "InstanceIpv6AddressRequest":{ + "type":"structure", + "members":{ + "Ipv6Address":{"shape":"String"} + } + }, "InstanceLifecycleType":{ "type":"string", "enum":[ @@ -9165,6 +10620,13 @@ "locationName":"item" } }, + "InstanceMarketOptionsRequest":{ + "type":"structure", + "members":{ + "MarketType":{"shape":"MarketType"}, + "SpotOptions":{"shape":"SpotMarketOptions"} + } + }, "InstanceMonitoring":{ "type":"structure", "members":{ @@ -9580,6 +11042,12 @@ "r4.16xlarge", "x1.16xlarge", "x1.32xlarge", + "x1e.xlarge", + "x1e.2xlarge", + "x1e.4xlarge", + "x1e.8xlarge", + "x1e.16xlarge", + "x1e.32xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", @@ -9604,20 +11072,42 @@ "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", + "c5.large", + "c5.xlarge", + "c5.2xlarge", + "c5.4xlarge", + "c5.9xlarge", + "c5.18xlarge", "cc1.4xlarge", "cc2.8xlarge", "g2.2xlarge", "g2.8xlarge", + "g3.4xlarge", + "g3.8xlarge", + "g3.16xlarge", "cg1.4xlarge", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", + "p3.2xlarge", + "p3.8xlarge", + "p3.16xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "f1.2xlarge", - "f1.16xlarge" + "f1.16xlarge", + "m5.large", + "m5.xlarge", + "m5.2xlarge", + "m5.4xlarge", + "m5.12xlarge", + "m5.24xlarge", + "h1.2xlarge", + "h1.4xlarge", + "h1.8xlarge", + "h1.16xlarge" ] }, "InstanceTypeList":{ @@ -9625,6 +11115,13 @@ "member":{"shape":"InstanceType"} }, "Integer":{"type":"integer"}, + "InterfacePermissionType":{ + "type":"string", + "enum":[ + "INSTANCE-ATTACH", + "EIP-ASSOCIATE" + ] + }, "InternetGateway":{ "type":"structure", "members":{ @@ -9715,6 +11212,10 @@ "CidrIp":{ "shape":"String", "locationName":"cidrIp" + }, + "Description":{ + "shape":"String", + "locationName":"description" } } }, @@ -9762,6 +11263,10 @@ "CidrIpv6":{ "shape":"String", "locationName":"cidrIpv6" + }, + "Description":{ + "shape":"String", + "locationName":"description" } } }, @@ -9913,142 +11418,744 @@ "member":{ "shape":"SpotFleetLaunchSpecification", "locationName":"item" - }, - "min":1 - }, - "ListingState":{ - "type":"string", - "enum":[ - "available", - "sold", - "cancelled", - "pending" - ] - }, - "ListingStatus":{ - "type":"string", - "enum":[ - "active", - "pending", - "cancelled", - "closed" - ] - }, - "Long":{"type":"long"}, - "MaxResults":{ - "type":"integer", - "max":255, - "min":5 + } }, - "ModifyHostsRequest":{ + "LaunchTemplate":{ "type":"structure", - "required":[ - "AutoPlacement", - "HostIds" - ], "members":{ - "AutoPlacement":{ - "shape":"AutoPlacement", - "locationName":"autoPlacement" + "LaunchTemplateId":{ + "shape":"String", + "locationName":"launchTemplateId" }, - "HostIds":{ - "shape":"RequestHostIdList", - "locationName":"hostId" + "LaunchTemplateName":{ + "shape":"LaunchTemplateName", + "locationName":"launchTemplateName" + }, + "CreateTime":{ + "shape":"DateTime", + "locationName":"createTime" + }, + "CreatedBy":{ + "shape":"String", + "locationName":"createdBy" + }, + "DefaultVersionNumber":{ + "shape":"Long", + "locationName":"defaultVersionNumber" + }, + "LatestVersionNumber":{ + "shape":"Long", + "locationName":"latestVersionNumber" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" } } }, - "ModifyHostsResult":{ + "LaunchTemplateBlockDeviceMapping":{ "type":"structure", "members":{ - "Successful":{ - "shape":"ResponseHostIdList", - "locationName":"successful" + "DeviceName":{ + "shape":"String", + "locationName":"deviceName" }, - "Unsuccessful":{ - "shape":"UnsuccessfulItemList", - "locationName":"unsuccessful" + "VirtualName":{ + "shape":"String", + "locationName":"virtualName" + }, + "Ebs":{ + "shape":"LaunchTemplateEbsBlockDevice", + "locationName":"ebs" + }, + "NoDevice":{ + "shape":"String", + "locationName":"noDevice" } } }, - "ModifyIdFormatRequest":{ + "LaunchTemplateBlockDeviceMappingList":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateBlockDeviceMapping", + "locationName":"item" + } + }, + "LaunchTemplateBlockDeviceMappingRequest":{ "type":"structure", - "required":[ - "Resource", - "UseLongIds" - ], "members":{ - "Resource":{"shape":"String"}, - "UseLongIds":{"shape":"Boolean"} + "DeviceName":{"shape":"String"}, + "VirtualName":{"shape":"String"}, + "Ebs":{"shape":"LaunchTemplateEbsBlockDeviceRequest"}, + "NoDevice":{"shape":"String"} } }, - "ModifyIdentityIdFormatRequest":{ + "LaunchTemplateBlockDeviceMappingRequestList":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateBlockDeviceMappingRequest", + "locationName":"BlockDeviceMapping" + } + }, + "LaunchTemplateConfig":{ "type":"structure", - "required":[ - "PrincipalArn", - "Resource", - "UseLongIds" - ], "members":{ - "PrincipalArn":{ - "shape":"String", - "locationName":"principalArn" + "LaunchTemplateSpecification":{ + "shape":"FleetLaunchTemplateSpecification", + "locationName":"launchTemplateSpecification" }, - "Resource":{ - "shape":"String", - "locationName":"resource" - }, - "UseLongIds":{ - "shape":"Boolean", - "locationName":"useLongIds" + "Overrides":{ + "shape":"LaunchTemplateOverridesList", + "locationName":"overrides" } } }, - "ModifyImageAttributeRequest":{ + "LaunchTemplateConfigList":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateConfig", + "locationName":"item" + } + }, + "LaunchTemplateEbsBlockDevice":{ "type":"structure", - "required":["ImageId"], "members":{ - "Attribute":{"shape":"String"}, - "Description":{"shape":"AttributeValue"}, - "ImageId":{"shape":"String"}, - "LaunchPermission":{"shape":"LaunchPermissionModifications"}, - "OperationType":{"shape":"OperationType"}, - "ProductCodes":{ - "shape":"ProductCodeStringList", - "locationName":"ProductCode" + "Encrypted":{ + "shape":"Boolean", + "locationName":"encrypted" }, - "UserGroups":{ - "shape":"UserGroupStringList", - "locationName":"UserGroup" + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" }, - "UserIds":{ - "shape":"UserIdStringList", - "locationName":"UserId" + "Iops":{ + "shape":"Integer", + "locationName":"iops" }, - "Value":{"shape":"String"}, - "DryRun":{ - "shape":"Boolean", - "locationName":"dryRun" + "KmsKeyId":{ + "shape":"String", + "locationName":"kmsKeyId" + }, + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "VolumeSize":{ + "shape":"Integer", + "locationName":"volumeSize" + }, + "VolumeType":{ + "shape":"VolumeType", + "locationName":"volumeType" } } }, - "ModifyInstanceAttributeRequest":{ + "LaunchTemplateEbsBlockDeviceRequest":{ "type":"structure", - "required":["InstanceId"], "members":{ - "SourceDestCheck":{"shape":"AttributeBooleanValue"}, - "Attribute":{ - "shape":"InstanceAttributeName", - "locationName":"attribute" - }, - "BlockDeviceMappings":{ - "shape":"InstanceBlockDeviceMappingSpecificationList", - "locationName":"blockDeviceMapping" - }, - "DisableApiTermination":{ - "shape":"AttributeBooleanValue", - "locationName":"disableApiTermination" - }, - "DryRun":{ + "Encrypted":{"shape":"Boolean"}, + "DeleteOnTermination":{"shape":"Boolean"}, + "Iops":{"shape":"Integer"}, + "KmsKeyId":{"shape":"String"}, + "SnapshotId":{"shape":"String"}, + "VolumeSize":{"shape":"Integer"}, + "VolumeType":{"shape":"VolumeType"} + } + }, + "LaunchTemplateErrorCode":{ + "type":"string", + "enum":[ + "launchTemplateIdDoesNotExist", + "launchTemplateIdMalformed", + "launchTemplateNameDoesNotExist", + "launchTemplateNameMalformed", + "launchTemplateVersionDoesNotExist", + "unexpectedError" + ] + }, + "LaunchTemplateIamInstanceProfileSpecification":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "locationName":"arn" + }, + "Name":{ + "shape":"String", + "locationName":"name" + } + } + }, + "LaunchTemplateIamInstanceProfileSpecificationRequest":{ + "type":"structure", + "members":{ + "Arn":{"shape":"String"}, + "Name":{"shape":"String"} + } + }, + "LaunchTemplateInstanceMarketOptions":{ + "type":"structure", + "members":{ + "MarketType":{ + "shape":"MarketType", + "locationName":"marketType" + }, + "SpotOptions":{ + "shape":"LaunchTemplateSpotMarketOptions", + "locationName":"spotOptions" + } + } + }, + "LaunchTemplateInstanceMarketOptionsRequest":{ + "type":"structure", + "members":{ + "MarketType":{"shape":"MarketType"}, + "SpotOptions":{"shape":"LaunchTemplateSpotMarketOptionsRequest"} + } + }, + "LaunchTemplateInstanceNetworkInterfaceSpecification":{ + "type":"structure", + "members":{ + "AssociatePublicIpAddress":{ + "shape":"Boolean", + "locationName":"associatePublicIpAddress" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "DeviceIndex":{ + "shape":"Integer", + "locationName":"deviceIndex" + }, + "Groups":{ + "shape":"GroupIdStringList", + "locationName":"groupSet" + }, + "Ipv6AddressCount":{ + "shape":"Integer", + "locationName":"ipv6AddressCount" + }, + "Ipv6Addresses":{ + "shape":"InstanceIpv6AddressList", + "locationName":"ipv6AddressesSet" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PrivateIpAddresses":{ + "shape":"PrivateIpAddressSpecificationList", + "locationName":"privateIpAddressesSet" + }, + "SecondaryPrivateIpAddressCount":{ + "shape":"Integer", + "locationName":"secondaryPrivateIpAddressCount" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + } + } + }, + "LaunchTemplateInstanceNetworkInterfaceSpecificationList":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateInstanceNetworkInterfaceSpecification", + "locationName":"item" + } + }, + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest":{ + "type":"structure", + "members":{ + "AssociatePublicIpAddress":{"shape":"Boolean"}, + "DeleteOnTermination":{"shape":"Boolean"}, + "Description":{"shape":"String"}, + "DeviceIndex":{"shape":"Integer"}, + "Groups":{ + "shape":"SecurityGroupIdStringList", + "locationName":"SecurityGroupId" + }, + "Ipv6AddressCount":{"shape":"Integer"}, + "Ipv6Addresses":{"shape":"InstanceIpv6AddressListRequest"}, + "NetworkInterfaceId":{"shape":"String"}, + "PrivateIpAddress":{"shape":"String"}, + "PrivateIpAddresses":{"shape":"PrivateIpAddressSpecificationList"}, + "SecondaryPrivateIpAddressCount":{"shape":"Integer"}, + "SubnetId":{"shape":"String"} + } + }, + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateInstanceNetworkInterfaceSpecificationRequest", + "locationName":"InstanceNetworkInterfaceSpecification" + } + }, + "LaunchTemplateName":{ + "type":"string", + "max":128, + "min":3, + "pattern":"[a-zA-Z0-9\\(\\)\\.-/_]+" + }, + "LaunchTemplateNameStringList":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateName", + "locationName":"item" + } + }, + "LaunchTemplateOverrides":{ + "type":"structure", + "members":{ + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "SpotPrice":{ + "shape":"String", + "locationName":"spotPrice" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "WeightedCapacity":{ + "shape":"Double", + "locationName":"weightedCapacity" + } + } + }, + "LaunchTemplateOverridesList":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateOverrides", + "locationName":"item" + } + }, + "LaunchTemplatePlacement":{ + "type":"structure", + "members":{ + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Affinity":{ + "shape":"String", + "locationName":"affinity" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "HostId":{ + "shape":"String", + "locationName":"hostId" + }, + "Tenancy":{ + "shape":"Tenancy", + "locationName":"tenancy" + }, + "SpreadDomain":{ + "shape":"String", + "locationName":"spreadDomain" + } + } + }, + "LaunchTemplatePlacementRequest":{ + "type":"structure", + "members":{ + "AvailabilityZone":{"shape":"String"}, + "Affinity":{"shape":"String"}, + "GroupName":{"shape":"String"}, + "HostId":{"shape":"String"}, + "Tenancy":{"shape":"Tenancy"}, + "SpreadDomain":{"shape":"String"} + } + }, + "LaunchTemplateSet":{ + "type":"list", + "member":{ + "shape":"LaunchTemplate", + "locationName":"item" + } + }, + "LaunchTemplateSpecification":{ + "type":"structure", + "members":{ + "LaunchTemplateId":{"shape":"String"}, + "LaunchTemplateName":{"shape":"String"}, + "Version":{"shape":"String"} + } + }, + "LaunchTemplateSpotMarketOptions":{ + "type":"structure", + "members":{ + "MaxPrice":{ + "shape":"String", + "locationName":"maxPrice" + }, + "SpotInstanceType":{ + "shape":"SpotInstanceType", + "locationName":"spotInstanceType" + }, + "BlockDurationMinutes":{ + "shape":"Integer", + "locationName":"blockDurationMinutes" + }, + "ValidUntil":{ + "shape":"DateTime", + "locationName":"validUntil" + }, + "InstanceInterruptionBehavior":{ + "shape":"InstanceInterruptionBehavior", + "locationName":"instanceInterruptionBehavior" + } + } + }, + "LaunchTemplateSpotMarketOptionsRequest":{ + "type":"structure", + "members":{ + "MaxPrice":{"shape":"String"}, + "SpotInstanceType":{"shape":"SpotInstanceType"}, + "BlockDurationMinutes":{"shape":"Integer"}, + "ValidUntil":{"shape":"DateTime"}, + "InstanceInterruptionBehavior":{"shape":"InstanceInterruptionBehavior"} + } + }, + "LaunchTemplateTagSpecification":{ + "type":"structure", + "members":{ + "ResourceType":{ + "shape":"ResourceType", + "locationName":"resourceType" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "LaunchTemplateTagSpecificationList":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateTagSpecification", + "locationName":"item" + } + }, + "LaunchTemplateTagSpecificationRequest":{ + "type":"structure", + "members":{ + "ResourceType":{"shape":"ResourceType"}, + "Tags":{ + "shape":"TagList", + "locationName":"Tag" + } + } + }, + "LaunchTemplateTagSpecificationRequestList":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateTagSpecificationRequest", + "locationName":"LaunchTemplateTagSpecificationRequest" + } + }, + "LaunchTemplateVersion":{ + "type":"structure", + "members":{ + "LaunchTemplateId":{ + "shape":"String", + "locationName":"launchTemplateId" + }, + "LaunchTemplateName":{ + "shape":"LaunchTemplateName", + "locationName":"launchTemplateName" + }, + "VersionNumber":{ + "shape":"Long", + "locationName":"versionNumber" + }, + "VersionDescription":{ + "shape":"VersionDescription", + "locationName":"versionDescription" + }, + "CreateTime":{ + "shape":"DateTime", + "locationName":"createTime" + }, + "CreatedBy":{ + "shape":"String", + "locationName":"createdBy" + }, + "DefaultVersion":{ + "shape":"Boolean", + "locationName":"defaultVersion" + }, + "LaunchTemplateData":{ + "shape":"ResponseLaunchTemplateData", + "locationName":"launchTemplateData" + } + } + }, + "LaunchTemplateVersionSet":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateVersion", + "locationName":"item" + } + }, + "LaunchTemplatesMonitoring":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "locationName":"enabled" + } + } + }, + "LaunchTemplatesMonitoringRequest":{ + "type":"structure", + "members":{ + "Enabled":{"shape":"Boolean"} + } + }, + "ListingState":{ + "type":"string", + "enum":[ + "available", + "sold", + "cancelled", + "pending" + ] + }, + "ListingStatus":{ + "type":"string", + "enum":[ + "active", + "pending", + "cancelled", + "closed" + ] + }, + "LoadBalancersConfig":{ + "type":"structure", + "members":{ + "ClassicLoadBalancersConfig":{ + "shape":"ClassicLoadBalancersConfig", + "locationName":"classicLoadBalancersConfig" + }, + "TargetGroupsConfig":{ + "shape":"TargetGroupsConfig", + "locationName":"targetGroupsConfig" + } + } + }, + "LoadPermission":{ + "type":"structure", + "members":{ + "UserId":{ + "shape":"String", + "locationName":"userId" + }, + "Group":{ + "shape":"PermissionGroup", + "locationName":"group" + } + } + }, + "LoadPermissionList":{ + "type":"list", + "member":{ + "shape":"LoadPermission", + "locationName":"item" + } + }, + "LoadPermissionListRequest":{ + "type":"list", + "member":{ + "shape":"LoadPermissionRequest", + "locationName":"item" + } + }, + "LoadPermissionModifications":{ + "type":"structure", + "members":{ + "Add":{"shape":"LoadPermissionListRequest"}, + "Remove":{"shape":"LoadPermissionListRequest"} + } + }, + "LoadPermissionRequest":{ + "type":"structure", + "members":{ + "Group":{"shape":"PermissionGroup"}, + "UserId":{"shape":"String"} + } + }, + "Long":{"type":"long"}, + "MarketType":{ + "type":"string", + "enum":["spot"] + }, + "MaxResults":{ + "type":"integer", + "max":255, + "min":5 + }, + "ModifyFpgaImageAttributeRequest":{ + "type":"structure", + "required":["FpgaImageId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "FpgaImageId":{"shape":"String"}, + "Attribute":{"shape":"FpgaImageAttributeName"}, + "OperationType":{"shape":"OperationType"}, + "UserIds":{ + "shape":"UserIdStringList", + "locationName":"UserId" + }, + "UserGroups":{ + "shape":"UserGroupStringList", + "locationName":"UserGroup" + }, + "ProductCodes":{ + "shape":"ProductCodeStringList", + "locationName":"ProductCode" + }, + "LoadPermission":{"shape":"LoadPermissionModifications"}, + "Description":{"shape":"String"}, + "Name":{"shape":"String"} + } + }, + "ModifyFpgaImageAttributeResult":{ + "type":"structure", + "members":{ + "FpgaImageAttribute":{ + "shape":"FpgaImageAttribute", + "locationName":"fpgaImageAttribute" + } + } + }, + "ModifyHostsRequest":{ + "type":"structure", + "required":[ + "AutoPlacement", + "HostIds" + ], + "members":{ + "AutoPlacement":{ + "shape":"AutoPlacement", + "locationName":"autoPlacement" + }, + "HostIds":{ + "shape":"RequestHostIdList", + "locationName":"hostId" + } + } + }, + "ModifyHostsResult":{ + "type":"structure", + "members":{ + "Successful":{ + "shape":"ResponseHostIdList", + "locationName":"successful" + }, + "Unsuccessful":{ + "shape":"UnsuccessfulItemList", + "locationName":"unsuccessful" + } + } + }, + "ModifyIdFormatRequest":{ + "type":"structure", + "required":[ + "Resource", + "UseLongIds" + ], + "members":{ + "Resource":{"shape":"String"}, + "UseLongIds":{"shape":"Boolean"} + } + }, + "ModifyIdentityIdFormatRequest":{ + "type":"structure", + "required":[ + "PrincipalArn", + "Resource", + "UseLongIds" + ], + "members":{ + "PrincipalArn":{ + "shape":"String", + "locationName":"principalArn" + }, + "Resource":{ + "shape":"String", + "locationName":"resource" + }, + "UseLongIds":{ + "shape":"Boolean", + "locationName":"useLongIds" + } + } + }, + "ModifyImageAttributeRequest":{ + "type":"structure", + "required":["ImageId"], + "members":{ + "Attribute":{"shape":"String"}, + "Description":{"shape":"AttributeValue"}, + "ImageId":{"shape":"String"}, + "LaunchPermission":{"shape":"LaunchPermissionModifications"}, + "OperationType":{"shape":"OperationType"}, + "ProductCodes":{ + "shape":"ProductCodeStringList", + "locationName":"ProductCode" + }, + "UserGroups":{ + "shape":"UserGroupStringList", + "locationName":"UserGroup" + }, + "UserIds":{ + "shape":"UserIdStringList", + "locationName":"UserId" + }, + "Value":{"shape":"String"}, + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "ModifyInstanceAttributeRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "SourceDestCheck":{"shape":"AttributeBooleanValue"}, + "Attribute":{ + "shape":"InstanceAttributeName", + "locationName":"attribute" + }, + "BlockDeviceMappings":{ + "shape":"InstanceBlockDeviceMappingSpecificationList", + "locationName":"blockDeviceMapping" + }, + "DisableApiTermination":{ + "shape":"AttributeBooleanValue", + "locationName":"disableApiTermination" + }, + "DryRun":{ "shape":"Boolean", "locationName":"dryRun" }, @@ -10098,6 +12205,31 @@ } } }, + "ModifyInstanceCreditSpecificationRequest":{ + "type":"structure", + "required":["InstanceCreditSpecifications"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ClientToken":{"shape":"String"}, + "InstanceCreditSpecifications":{ + "shape":"InstanceCreditSpecificationListRequest", + "locationName":"InstanceCreditSpecification" + } + } + }, + "ModifyInstanceCreditSpecificationResult":{ + "type":"structure", + "members":{ + "SuccessfulInstanceCreditSpecifications":{ + "shape":"SuccessfulInstanceCreditSpecificationSet", + "locationName":"successfulInstanceCreditSpecificationSet" + }, + "UnsuccessfulInstanceCreditSpecifications":{ + "shape":"UnsuccessfulInstanceCreditSpecificationSet", + "locationName":"unsuccessfulInstanceCreditSpecificationSet" + } + } + }, "ModifyInstancePlacementRequest":{ "type":"structure", "required":["InstanceId"], @@ -10129,6 +12261,28 @@ } } }, + "ModifyLaunchTemplateRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "ClientToken":{"shape":"String"}, + "LaunchTemplateId":{"shape":"String"}, + "LaunchTemplateName":{"shape":"LaunchTemplateName"}, + "DefaultVersion":{ + "shape":"String", + "locationName":"SetDefaultVersion" + } + } + }, + "ModifyLaunchTemplateResult":{ + "type":"structure", + "members":{ + "LaunchTemplate":{ + "shape":"LaunchTemplate", + "locationName":"launchTemplate" + } + } + }, "ModifyNetworkInterfaceAttributeRequest":{ "type":"structure", "required":["NetworkInterfaceId"], @@ -10294,22 +12448,58 @@ } } }, + "ModifyVpcEndpointConnectionNotificationRequest":{ + "type":"structure", + "required":["ConnectionNotificationId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ConnectionNotificationId":{"shape":"String"}, + "ConnectionNotificationArn":{"shape":"String"}, + "ConnectionEvents":{"shape":"ValueStringList"} + } + }, + "ModifyVpcEndpointConnectionNotificationResult":{ + "type":"structure", + "members":{ + "ReturnValue":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, "ModifyVpcEndpointRequest":{ "type":"structure", "required":["VpcEndpointId"], "members":{ + "DryRun":{"shape":"Boolean"}, + "VpcEndpointId":{"shape":"String"}, + "ResetPolicy":{"shape":"Boolean"}, + "PolicyDocument":{"shape":"String"}, "AddRouteTableIds":{ "shape":"ValueStringList", "locationName":"AddRouteTableId" }, - "DryRun":{"shape":"Boolean"}, - "PolicyDocument":{"shape":"String"}, "RemoveRouteTableIds":{ "shape":"ValueStringList", "locationName":"RemoveRouteTableId" }, - "ResetPolicy":{"shape":"Boolean"}, - "VpcEndpointId":{"shape":"String"} + "AddSubnetIds":{ + "shape":"ValueStringList", + "locationName":"AddSubnetId" + }, + "RemoveSubnetIds":{ + "shape":"ValueStringList", + "locationName":"RemoveSubnetId" + }, + "AddSecurityGroupIds":{ + "shape":"ValueStringList", + "locationName":"AddSecurityGroupId" + }, + "RemoveSecurityGroupIds":{ + "shape":"ValueStringList", + "locationName":"RemoveSecurityGroupId" + }, + "PrivateDnsEnabled":{"shape":"Boolean"} } }, "ModifyVpcEndpointResult":{ @@ -10321,6 +12511,51 @@ } } }, + "ModifyVpcEndpointServiceConfigurationRequest":{ + "type":"structure", + "required":["ServiceId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ServiceId":{"shape":"String"}, + "AcceptanceRequired":{"shape":"Boolean"}, + "AddNetworkLoadBalancerArns":{ + "shape":"ValueStringList", + "locationName":"addNetworkLoadBalancerArn" + }, + "RemoveNetworkLoadBalancerArns":{ + "shape":"ValueStringList", + "locationName":"removeNetworkLoadBalancerArn" + } + } + }, + "ModifyVpcEndpointServiceConfigurationResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "ModifyVpcEndpointServicePermissionsRequest":{ + "type":"structure", + "required":["ServiceId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ServiceId":{"shape":"String"}, + "AddAllowedPrincipals":{"shape":"ValueStringList"}, + "RemoveAllowedPrincipals":{"shape":"ValueStringList"} + } + }, + "ModifyVpcEndpointServicePermissionsResult":{ + "type":"structure", + "members":{ + "ReturnValue":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, "ModifyVpcPeeringConnectionOptionsRequest":{ "type":"structure", "required":["VpcPeeringConnectionId"], @@ -10344,6 +12579,27 @@ } } }, + "ModifyVpcTenancyRequest":{ + "type":"structure", + "required":[ + "VpcId", + "InstanceTenancy" + ], + "members":{ + "VpcId":{"shape":"String"}, + "InstanceTenancy":{"shape":"VpcTenancy"}, + "DryRun":{"shape":"Boolean"} + } + }, + "ModifyVpcTenancyResult":{ + "type":"structure", + "members":{ + "ReturnValue":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, "MonitorInstancesRequest":{ "type":"structure", "required":["InstanceIds"], @@ -10481,6 +12737,10 @@ "VpcId":{ "shape":"String", "locationName":"vpcId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" } } }, @@ -10814,20 +13074,82 @@ } } }, - "NetworkInterfaceIpv6AddressesList":{ + "NetworkInterfaceIpv6AddressesList":{ + "type":"list", + "member":{ + "shape":"NetworkInterfaceIpv6Address", + "locationName":"item" + } + }, + "NetworkInterfaceList":{ + "type":"list", + "member":{ + "shape":"NetworkInterface", + "locationName":"item" + } + }, + "NetworkInterfacePermission":{ + "type":"structure", + "members":{ + "NetworkInterfacePermissionId":{ + "shape":"String", + "locationName":"networkInterfacePermissionId" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "AwsAccountId":{ + "shape":"String", + "locationName":"awsAccountId" + }, + "AwsService":{ + "shape":"String", + "locationName":"awsService" + }, + "Permission":{ + "shape":"InterfacePermissionType", + "locationName":"permission" + }, + "PermissionState":{ + "shape":"NetworkInterfacePermissionState", + "locationName":"permissionState" + } + } + }, + "NetworkInterfacePermissionIdList":{ "type":"list", - "member":{ - "shape":"NetworkInterfaceIpv6Address", - "locationName":"item" - } + "member":{"shape":"String"} }, - "NetworkInterfaceList":{ + "NetworkInterfacePermissionList":{ "type":"list", "member":{ - "shape":"NetworkInterface", + "shape":"NetworkInterfacePermission", "locationName":"item" } }, + "NetworkInterfacePermissionState":{ + "type":"structure", + "members":{ + "State":{ + "shape":"NetworkInterfacePermissionStateCode", + "locationName":"state" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + } + } + }, + "NetworkInterfacePermissionStateCode":{ + "type":"string", + "enum":[ + "pending", + "granted", + "revoking", + "revoked" + ] + }, "NetworkInterfacePrivateIpAddress":{ "type":"structure", "members":{ @@ -11057,7 +13379,10 @@ }, "PlacementStrategy":{ "type":"string", - "enum":["cluster"] + "enum":[ + "cluster", + "spread" + ] }, "PlatformValues":{ "type":"string", @@ -11096,6 +13421,10 @@ "PrefixListId":{ "type":"structure", "members":{ + "Description":{ + "shape":"String", + "locationName":"description" + }, "PrefixListId":{ "shape":"String", "locationName":"prefixListId" @@ -11195,6 +13524,17 @@ "locationName":"item" } }, + "PrincipalType":{ + "type":"string", + "enum":[ + "All", + "Service", + "OrganizationUnit", + "Account", + "User", + "Role" + ] + }, "PrivateIpAddressConfigSet":{ "type":"list", "member":{ @@ -11465,7 +13805,10 @@ }, "PurchaseSet":{ "type":"list", - "member":{"shape":"Purchase"} + "member":{ + "shape":"Purchase", + "locationName":"item" + } }, "PurchasedScheduledInstanceSet":{ "type":"list", @@ -11619,6 +13962,30 @@ } } }, + "RejectVpcEndpointConnectionsRequest":{ + "type":"structure", + "required":[ + "ServiceId", + "VpcEndpointIds" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "ServiceId":{"shape":"String"}, + "VpcEndpointIds":{ + "shape":"ValueStringList", + "locationName":"VpcEndpointId" + } + } + }, + "RejectVpcEndpointConnectionsResult":{ + "type":"structure", + "members":{ + "Unsuccessful":{ + "shape":"UnsuccessfulItemSet", + "locationName":"unsuccessful" + } + } + }, "RejectVpcPeeringConnectionRequest":{ "type":"structure", "required":["VpcPeeringConnectionId"], @@ -11927,6 +14294,49 @@ "locationName":"item" } }, + "RequestLaunchTemplateData":{ + "type":"structure", + "members":{ + "KernelId":{"shape":"String"}, + "EbsOptimized":{"shape":"Boolean"}, + "IamInstanceProfile":{"shape":"LaunchTemplateIamInstanceProfileSpecificationRequest"}, + "BlockDeviceMappings":{ + "shape":"LaunchTemplateBlockDeviceMappingRequestList", + "locationName":"BlockDeviceMapping" + }, + "NetworkInterfaces":{ + "shape":"LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList", + "locationName":"NetworkInterface" + }, + "ImageId":{"shape":"String"}, + "InstanceType":{"shape":"InstanceType"}, + "KeyName":{"shape":"String"}, + "Monitoring":{"shape":"LaunchTemplatesMonitoringRequest"}, + "Placement":{"shape":"LaunchTemplatePlacementRequest"}, + "RamDiskId":{"shape":"String"}, + "DisableApiTermination":{"shape":"Boolean"}, + "InstanceInitiatedShutdownBehavior":{"shape":"ShutdownBehavior"}, + "UserData":{"shape":"String"}, + "TagSpecifications":{ + "shape":"LaunchTemplateTagSpecificationRequestList", + "locationName":"TagSpecification" + }, + "ElasticGpuSpecifications":{ + "shape":"ElasticGpuSpecificationList", + "locationName":"ElasticGpuSpecification" + }, + "SecurityGroupIds":{ + "shape":"SecurityGroupIdStringList", + "locationName":"SecurityGroupId" + }, + "SecurityGroups":{ + "shape":"SecurityGroupStringList", + "locationName":"SecurityGroup" + }, + "InstanceMarketOptions":{"shape":"LaunchTemplateInstanceMarketOptionsRequest"}, + "CreditSpecification":{"shape":"CreditSpecificationRequest"} + } + }, "RequestSpotFleetRequest":{ "type":"structure", "required":["SpotFleetRequestConfig"], @@ -11953,7 +14363,6 @@ }, "RequestSpotInstancesRequest":{ "type":"structure", - "required":["SpotPrice"], "members":{ "AvailabilityZoneGroup":{ "shape":"String", @@ -11995,7 +14404,8 @@ "ValidUntil":{ "shape":"DateTime", "locationName":"validUntil" - } + }, + "InstanceInterruptionBehavior":{"shape":"InstanceInterruptionBehavior"} } }, "RequestSpotInstancesResult":{ @@ -12525,6 +14935,28 @@ "locationName":"item" } }, + "ResetFpgaImageAttributeName":{ + "type":"string", + "enum":["loadPermission"] + }, + "ResetFpgaImageAttributeRequest":{ + "type":"structure", + "required":["FpgaImageId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "FpgaImageId":{"shape":"String"}, + "Attribute":{"shape":"ResetFpgaImageAttributeName"} + } + }, + "ResetFpgaImageAttributeResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, "ResetImageAttributeName":{ "type":"string", "enum":["launchPermission"] @@ -12624,6 +15056,19 @@ "vpn-gateway" ] }, + "ResponseError":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"LaunchTemplateErrorCode", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, "ResponseHostIdList":{ "type":"list", "member":{ @@ -12638,6 +15083,91 @@ "locationName":"item" } }, + "ResponseLaunchTemplateData":{ + "type":"structure", + "members":{ + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "EbsOptimized":{ + "shape":"Boolean", + "locationName":"ebsOptimized" + }, + "IamInstanceProfile":{ + "shape":"LaunchTemplateIamInstanceProfileSpecification", + "locationName":"iamInstanceProfile" + }, + "BlockDeviceMappings":{ + "shape":"LaunchTemplateBlockDeviceMappingList", + "locationName":"blockDeviceMappingSet" + }, + "NetworkInterfaces":{ + "shape":"LaunchTemplateInstanceNetworkInterfaceSpecificationList", + "locationName":"networkInterfaceSet" + }, + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "Monitoring":{ + "shape":"LaunchTemplatesMonitoring", + "locationName":"monitoring" + }, + "Placement":{ + "shape":"LaunchTemplatePlacement", + "locationName":"placement" + }, + "RamDiskId":{ + "shape":"String", + "locationName":"ramDiskId" + }, + "DisableApiTermination":{ + "shape":"Boolean", + "locationName":"disableApiTermination" + }, + "InstanceInitiatedShutdownBehavior":{ + "shape":"ShutdownBehavior", + "locationName":"instanceInitiatedShutdownBehavior" + }, + "UserData":{ + "shape":"String", + "locationName":"userData" + }, + "TagSpecifications":{ + "shape":"LaunchTemplateTagSpecificationList", + "locationName":"tagSpecificationSet" + }, + "ElasticGpuSpecifications":{ + "shape":"ElasticGpuSpecificationResponseList", + "locationName":"elasticGpuSpecificationSet" + }, + "SecurityGroupIds":{ + "shape":"ValueStringList", + "locationName":"securityGroupIdSet" + }, + "SecurityGroups":{ + "shape":"ValueStringList", + "locationName":"securityGroupSet" + }, + "InstanceMarketOptions":{ + "shape":"LaunchTemplateInstanceMarketOptions", + "locationName":"instanceMarketOptions" + }, + "CreditSpecification":{ + "shape":"CreditSpecification", + "locationName":"creditSpecification" + } + } + }, "RestorableByStringList":{ "type":"list", "member":{"shape":"String"} @@ -12888,7 +15418,6 @@ "RunInstancesRequest":{ "type":"structure", "required":[ - "ImageId", "MaxCount", "MinCount" ], @@ -12957,10 +15486,14 @@ "shape":"String", "locationName":"privateIpAddress" }, + "ElasticGpuSpecification":{"shape":"ElasticGpuSpecifications"}, "TagSpecifications":{ "shape":"TagSpecificationList", "locationName":"TagSpecification" - } + }, + "LaunchTemplate":{"shape":"LaunchTemplateSpecification"}, + "InstanceMarketOptions":{"shape":"InstanceMarketOptionsRequest"}, + "CreditSpecification":{"shape":"CreditSpecificationRequest"} } }, "RunScheduledInstancesRequest":{ @@ -13372,6 +15905,19 @@ "locationName":"SecurityGroupId" } }, + "SecurityGroupIdentifier":{ + "type":"structure", + "members":{ + "GroupId":{ + "shape":"String", + "locationName":"groupId" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + } + } + }, "SecurityGroupList":{ "type":"list", "member":{ @@ -13403,15 +15949,140 @@ "SecurityGroupReferences":{ "type":"list", "member":{ - "shape":"SecurityGroupReference", + "shape":"SecurityGroupReference", + "locationName":"item" + } + }, + "SecurityGroupStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SecurityGroup" + } + }, + "ServiceConfiguration":{ + "type":"structure", + "members":{ + "ServiceType":{ + "shape":"ServiceTypeDetailSet", + "locationName":"serviceType" + }, + "ServiceId":{ + "shape":"String", + "locationName":"serviceId" + }, + "ServiceName":{ + "shape":"String", + "locationName":"serviceName" + }, + "ServiceState":{ + "shape":"ServiceState", + "locationName":"serviceState" + }, + "AvailabilityZones":{ + "shape":"ValueStringList", + "locationName":"availabilityZoneSet" + }, + "AcceptanceRequired":{ + "shape":"Boolean", + "locationName":"acceptanceRequired" + }, + "NetworkLoadBalancerArns":{ + "shape":"ValueStringList", + "locationName":"networkLoadBalancerArnSet" + }, + "BaseEndpointDnsNames":{ + "shape":"ValueStringList", + "locationName":"baseEndpointDnsNameSet" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + } + } + }, + "ServiceConfigurationSet":{ + "type":"list", + "member":{ + "shape":"ServiceConfiguration", + "locationName":"item" + } + }, + "ServiceDetail":{ + "type":"structure", + "members":{ + "ServiceName":{ + "shape":"String", + "locationName":"serviceName" + }, + "ServiceType":{ + "shape":"ServiceTypeDetailSet", + "locationName":"serviceType" + }, + "AvailabilityZones":{ + "shape":"ValueStringList", + "locationName":"availabilityZoneSet" + }, + "Owner":{ + "shape":"String", + "locationName":"owner" + }, + "BaseEndpointDnsNames":{ + "shape":"ValueStringList", + "locationName":"baseEndpointDnsNameSet" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "VpcEndpointPolicySupported":{ + "shape":"Boolean", + "locationName":"vpcEndpointPolicySupported" + }, + "AcceptanceRequired":{ + "shape":"Boolean", + "locationName":"acceptanceRequired" + } + } + }, + "ServiceDetailSet":{ + "type":"list", + "member":{ + "shape":"ServiceDetail", "locationName":"item" } }, - "SecurityGroupStringList":{ + "ServiceState":{ + "type":"string", + "enum":[ + "Pending", + "Available", + "Deleting", + "Deleted", + "Failed" + ] + }, + "ServiceType":{ + "type":"string", + "enum":[ + "Interface", + "Gateway" + ] + }, + "ServiceTypeDetail":{ + "type":"structure", + "members":{ + "ServiceType":{ + "shape":"ServiceType", + "locationName":"serviceType" + } + } + }, + "ServiceTypeDetailSet":{ "type":"list", "member":{ - "shape":"String", - "locationName":"SecurityGroup" + "shape":"ServiceTypeDetail", + "locationName":"item" } }, "ShutdownBehavior":{ @@ -13726,6 +16397,10 @@ "WeightedCapacity":{ "shape":"Double", "locationName":"weightedCapacity" + }, + "TagSpecifications":{ + "shape":"SpotFleetTagSpecificationList", + "locationName":"tagSpecificationSet" } } }, @@ -13773,8 +16448,6 @@ "type":"structure", "required":[ "IamFleetRole", - "LaunchSpecifications", - "SpotPrice", "TargetCapacity" ], "members":{ @@ -13802,6 +16475,10 @@ "shape":"LaunchSpecsList", "locationName":"launchSpecifications" }, + "LaunchTemplateConfigs":{ + "shape":"LaunchTemplateConfigList", + "locationName":"launchTemplateConfigs" + }, "SpotPrice":{ "shape":"String", "locationName":"spotPrice" @@ -13829,6 +16506,14 @@ "ReplaceUnhealthyInstances":{ "shape":"Boolean", "locationName":"replaceUnhealthyInstances" + }, + "InstanceInterruptionBehavior":{ + "shape":"InstanceInterruptionBehavior", + "locationName":"instanceInterruptionBehavior" + }, + "LoadBalancersConfig":{ + "shape":"LoadBalancersConfig", + "locationName":"loadBalancersConfig" } } }, @@ -13839,6 +16524,26 @@ "locationName":"item" } }, + "SpotFleetTagSpecification":{ + "type":"structure", + "members":{ + "ResourceType":{ + "shape":"ResourceType", + "locationName":"resourceType" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tag" + } + } + }, + "SpotFleetTagSpecificationList":{ + "type":"list", + "member":{ + "shape":"SpotFleetTagSpecification", + "locationName":"item" + } + }, "SpotInstanceRequest":{ "type":"structure", "members":{ @@ -13913,6 +16618,10 @@ "ValidUntil":{ "shape":"DateTime", "locationName":"validUntil" + }, + "InstanceInterruptionBehavior":{ + "shape":"InstanceInterruptionBehavior", + "locationName":"instanceInterruptionBehavior" } } }, @@ -13977,6 +16686,16 @@ "persistent" ] }, + "SpotMarketOptions":{ + "type":"structure", + "members":{ + "MaxPrice":{"shape":"String"}, + "SpotInstanceType":{"shape":"SpotInstanceType"}, + "BlockDurationMinutes":{"shape":"Integer"}, + "ValidUntil":{"shape":"DateTime"}, + "InstanceInterruptionBehavior":{"shape":"InstanceInterruptionBehavior"} + } + }, "SpotPlacement":{ "type":"structure", "members":{ @@ -14129,10 +16848,14 @@ "State":{ "type":"string", "enum":[ + "PendingAcceptance", "Pending", "Available", "Deleting", - "Deleted" + "Deleted", + "Rejected", + "Failed", + "Expired" ] }, "StateReason":{ @@ -14328,6 +17051,22 @@ "available" ] }, + "SuccessfulInstanceCreditSpecificationItem":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + } + } + }, + "SuccessfulInstanceCreditSpecificationSet":{ + "type":"list", + "member":{ + "shape":"SuccessfulInstanceCreditSpecificationItem", + "locationName":"item" + } + }, "SummaryStatus":{ "type":"string", "enum":[ @@ -14434,6 +17173,35 @@ "locationName":"TargetConfigurationRequest" } }, + "TargetGroup":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"String", + "locationName":"arn" + } + } + }, + "TargetGroups":{ + "type":"list", + "member":{ + "shape":"TargetGroup", + "locationName":"item" + }, + "max":5, + "min":1 + }, + "TargetGroupsConfig":{ + "type":"structure", + "required":["TargetGroups"], + "members":{ + "TargetGroups":{ + "shape":"TargetGroups", + "locationName":"targetGroups" + } + } + }, "TargetReservationValue":{ "type":"structure", "members":{ @@ -14500,6 +17268,13 @@ "ALL" ] }, + "TunnelOptionsList":{ + "type":"list", + "member":{ + "shape":"VpnTunnelOptionsSpecification", + "locationName":"item" + } + }, "UnassignIpv6AddressesRequest":{ "type":"structure", "required":[ @@ -14570,6 +17345,48 @@ } } }, + "UnsuccessfulInstanceCreditSpecificationErrorCode":{ + "type":"string", + "enum":[ + "InvalidInstanceID.Malformed", + "InvalidInstanceID.NotFound", + "IncorrectInstanceState", + "InstanceCreditSpecification.NotSupported" + ] + }, + "UnsuccessfulInstanceCreditSpecificationItem":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Error":{ + "shape":"UnsuccessfulInstanceCreditSpecificationItemError", + "locationName":"error" + } + } + }, + "UnsuccessfulInstanceCreditSpecificationItemError":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"UnsuccessfulInstanceCreditSpecificationErrorCode", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "UnsuccessfulInstanceCreditSpecificationSet":{ + "type":"list", + "member":{ + "shape":"UnsuccessfulInstanceCreditSpecificationItem", + "locationName":"item" + } + }, "UnsuccessfulItem":{ "type":"structure", "required":["Error"], @@ -14615,6 +17432,44 @@ "locationName":"item" } }, + "UpdateSecurityGroupRuleDescriptionsEgressRequest":{ + "type":"structure", + "required":["IpPermissions"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "GroupId":{"shape":"String"}, + "GroupName":{"shape":"String"}, + "IpPermissions":{"shape":"IpPermissionList"} + } + }, + "UpdateSecurityGroupRuleDescriptionsEgressResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "UpdateSecurityGroupRuleDescriptionsIngressRequest":{ + "type":"structure", + "required":["IpPermissions"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "GroupId":{"shape":"String"}, + "GroupName":{"shape":"String"}, + "IpPermissions":{"shape":"IpPermissionList"} + } + }, + "UpdateSecurityGroupRuleDescriptionsIngressResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, "UserBucket":{ "type":"structure", "members":{ @@ -14654,6 +17509,10 @@ "UserIdGroupPair":{ "type":"structure", "members":{ + "Description":{ + "shape":"String", + "locationName":"description" + }, "GroupId":{ "shape":"String", "locationName":"groupId" @@ -14708,6 +17567,17 @@ "locationName":"item" } }, + "VersionDescription":{ + "type":"string", + "max":255 + }, + "VersionStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, "VgwTelemetry":{ "type":"structure", "members":{ @@ -14842,7 +17712,8 @@ "attaching", "attached", "detaching", - "detached" + "detached", + "busy" ] }, "VolumeAttributeName":{ @@ -15133,6 +18004,10 @@ "shape":"VpcIpv6CidrBlockAssociationSet", "locationName":"ipv6CidrBlockAssociationSet" }, + "CidrBlockAssociationSet":{ + "shape":"VpcCidrBlockAssociationSet", + "locationName":"cidrBlockAssociationSet" + }, "IsDefault":{ "shape":"Boolean", "locationName":"isDefault" @@ -15170,6 +18045,30 @@ "enableDnsHostnames" ] }, + "VpcCidrBlockAssociation":{ + "type":"structure", + "members":{ + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "CidrBlockState":{ + "shape":"VpcCidrBlockState", + "locationName":"cidrBlockState" + } + } + }, + "VpcCidrBlockAssociationSet":{ + "type":"list", + "member":{ + "shape":"VpcCidrBlockAssociation", + "locationName":"item" + } + }, "VpcCidrBlockState":{ "type":"structure", "members":{ @@ -15228,17 +18127,17 @@ "VpcEndpoint":{ "type":"structure", "members":{ - "CreationTimestamp":{ - "shape":"DateTime", - "locationName":"creationTimestamp" - }, - "PolicyDocument":{ + "VpcEndpointId":{ "shape":"String", - "locationName":"policyDocument" + "locationName":"vpcEndpointId" }, - "RouteTableIds":{ - "shape":"ValueStringList", - "locationName":"routeTableIdSet" + "VpcEndpointType":{ + "shape":"VpcEndpointType", + "locationName":"vpcEndpointType" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" }, "ServiceName":{ "shape":"String", @@ -15248,16 +18147,72 @@ "shape":"State", "locationName":"state" }, + "PolicyDocument":{ + "shape":"String", + "locationName":"policyDocument" + }, + "RouteTableIds":{ + "shape":"ValueStringList", + "locationName":"routeTableIdSet" + }, + "SubnetIds":{ + "shape":"ValueStringList", + "locationName":"subnetIdSet" + }, + "Groups":{ + "shape":"GroupIdentifierSet", + "locationName":"groupSet" + }, + "PrivateDnsEnabled":{ + "shape":"Boolean", + "locationName":"privateDnsEnabled" + }, + "NetworkInterfaceIds":{ + "shape":"ValueStringList", + "locationName":"networkInterfaceIdSet" + }, + "DnsEntries":{ + "shape":"DnsEntrySet", + "locationName":"dnsEntrySet" + }, + "CreationTimestamp":{ + "shape":"DateTime", + "locationName":"creationTimestamp" + } + } + }, + "VpcEndpointConnection":{ + "type":"structure", + "members":{ + "ServiceId":{ + "shape":"String", + "locationName":"serviceId" + }, "VpcEndpointId":{ "shape":"String", "locationName":"vpcEndpointId" }, - "VpcId":{ + "VpcEndpointOwner":{ "shape":"String", - "locationName":"vpcId" + "locationName":"vpcEndpointOwner" + }, + "VpcEndpointState":{ + "shape":"State", + "locationName":"vpcEndpointState" + }, + "CreationTimestamp":{ + "shape":"DateTime", + "locationName":"creationTimestamp" } } }, + "VpcEndpointConnectionSet":{ + "type":"list", + "member":{ + "shape":"VpcEndpointConnection", + "locationName":"item" + } + }, "VpcEndpointSet":{ "type":"list", "member":{ @@ -15265,6 +18220,13 @@ "locationName":"item" } }, + "VpcEndpointType":{ + "type":"string", + "enum":[ + "Interface", + "Gateway" + ] + }, "VpcIdStringList":{ "type":"list", "member":{ @@ -15394,6 +18356,10 @@ "shape":"Ipv6CidrBlockSet", "locationName":"ipv6CidrBlockSet" }, + "CidrBlockSet":{ + "shape":"CidrBlockSet", + "locationName":"cidrBlockSet" + }, "OwnerId":{ "shape":"String", "locationName":"ownerId" @@ -15405,6 +18371,10 @@ "VpcId":{ "shape":"String", "locationName":"vpcId" + }, + "Region":{ + "shape":"String", + "locationName":"region" } } }, @@ -15415,6 +18385,10 @@ "available" ] }, + "VpcTenancy":{ + "type":"string", + "enum":["default"] + }, "VpnConnection":{ "type":"structure", "members":{ @@ -15426,6 +18400,10 @@ "shape":"String", "locationName":"customerGatewayId" }, + "Category":{ + "shape":"String", + "locationName":"category" + }, "State":{ "shape":"VpnState", "locationName":"state" @@ -15489,7 +18467,8 @@ "StaticRoutesOnly":{ "shape":"Boolean", "locationName":"staticRoutesOnly" - } + }, + "TunnelOptions":{"shape":"TunnelOptionsList"} } }, "VpnGateway":{ @@ -15515,6 +18494,10 @@ "shape":"String", "locationName":"vpnGatewayId" }, + "AmazonSideAsn":{ + "shape":"Long", + "locationName":"amazonSideAsn" + }, "Tags":{ "shape":"TagList", "locationName":"tagSet" @@ -15572,6 +18555,13 @@ "type":"string", "enum":["Static"] }, + "VpnTunnelOptionsSpecification":{ + "type":"structure", + "members":{ + "TunnelInsideCidr":{"shape":"String"}, + "PreSharedKey":{"shape":"String"} + } + }, "ZoneNameStringList":{ "type":"list", "member":{ diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index 4b7aea32421..42cb4eea35a 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -3,8 +3,9 @@ "service": "Amazon Elastic Compute Cloud

Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity in the Amazon Web Services (AWS) cloud. Using Amazon EC2 eliminates your need to invest in hardware up front, so you can develop and deploy applications faster.

", "operations": { "AcceptReservedInstancesExchangeQuote": "

Accepts the Convertible Reserved Instance exchange quote described in the GetReservedInstancesExchangeQuote call.

", - "AcceptVpcPeeringConnection": "

Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the pending-acceptance state, and you must be the owner of the peer VPC. Use DescribeVpcPeeringConnections to view your outstanding VPC peering connection requests.

", - "AllocateAddress": "

Acquires an Elastic IP address.

An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

", + "AcceptVpcEndpointConnections": "

Accepts one or more interface VPC endpoint connection requests to your VPC endpoint service.

", + "AcceptVpcPeeringConnection": "

Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the pending-acceptance state, and you must be the owner of the peer VPC. Use DescribeVpcPeeringConnections to view your outstanding VPC peering connection requests.

For an inter-region VPC peering connection request, you must accept the VPC peering connection in the region of the accepter VPC.

", + "AllocateAddress": "

Allocates an Elastic IP address.

An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. By default, you can allocate 5 Elastic IP addresses for EC2-Classic per region and 5 Elastic IP addresses for EC2-VPC per region.

If you release an Elastic IP address for use in a VPC, you might be able to recover it. To recover an Elastic IP address that you released, specify it in the Address parameter. Note that you cannot recover an Elastic IP address that you released after it is allocated to another AWS account.

For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

", "AllocateHosts": "

Allocates a Dedicated Host to your account. At minimum you need to specify the instance size type, Availability Zone, and quantity of hosts you want to allocate.

", "AssignIpv6Addresses": "

Assigns one or more IPv6 addresses to the specified network interface. You can specify one or more specific IPv6 addresses, or you can specify the number of IPv6 addresses to be automatically assigned from within the subnet's IPv6 CIDR block range. You can assign as many IPv6 addresses to a network interface as you can assign private IPv4 addresses, and the limit varies per instance type. For information, see IP Addresses Per Network Interface Per Instance Type in the Amazon Elastic Compute Cloud User Guide.

", "AssignPrivateIpAddresses": "

Assigns one or more secondary private IP addresses to the specified network interface. You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

AssignPrivateIpAddresses is available only in EC2-VPC.

", @@ -13,26 +14,29 @@ "AssociateIamInstanceProfile": "

Associates an IAM instance profile with a running or stopped instance. You cannot associate more than one IAM instance profile with an instance.

", "AssociateRouteTable": "

Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. The action returns an association ID, which you need in order to disassociate the route table from the subnet later. A route table can be associated with multiple subnets.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "AssociateSubnetCidrBlock": "

Associates a CIDR block with your subnet. You can only associate a single IPv6 CIDR block with your subnet. An IPv6 CIDR block must have a prefix length of /64.

", - "AssociateVpcCidrBlock": "

Associates a CIDR block with your VPC. You can only associate a single Amazon-provided IPv6 CIDR block with your VPC. The IPv6 CIDR block size is fixed at /56.

", + "AssociateVpcCidrBlock": "

Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block, or you can associate an Amazon-provided IPv6 CIDR block. The IPv6 CIDR block size is fixed at /56.

For more information about associating CIDR blocks with your VPC and applicable restrictions, see VPC and Subnet Sizing in the Amazon Virtual Private Cloud User Guide.

", "AttachClassicLinkVpc": "

Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You can only link an instance that's in the running state. An instance is automatically unlinked from a VPC when it's stopped - you can link it to the VPC again when you restart it.

After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again.

Linking your instance to a VPC is sometimes referred to as attaching your instance.

", "AttachInternetGateway": "

Attaches an Internet gateway to a VPC, enabling connectivity between the Internet and the VPC. For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.

", "AttachNetworkInterface": "

Attaches a network interface to an instance.

", "AttachVolume": "

Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name.

Encrypted EBS volumes may only be attached to instances that support Amazon EBS encryption. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

For a list of supported device names, see Attaching an EBS Volume to an Instance. Any device names that aren't reserved for instance store volumes can be used for EBS volumes. For more information, see Amazon EC2 Instance Store in the Amazon Elastic Compute Cloud User Guide.

If a volume has an AWS Marketplace product code:

For an overview of the AWS Marketplace, see Introducing AWS Marketplace.

For more information about EBS volumes, see Attaching Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.

", - "AttachVpnGateway": "

Attaches a virtual private gateway to a VPC. You can attach one virtual private gateway to one VPC at a time.

For more information, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", - "AuthorizeSecurityGroupEgress": "

[EC2-VPC only] Adds one or more egress rules to a security group for use with a VPC. Specifically, this action permits instances to send traffic to one or more destination IPv4 or IPv6 CIDR address ranges, or to one or more destination security groups for the same VPC. This action doesn't apply to security groups for use in EC2-Classic. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide. For more information about security group limits, see Amazon VPC Limits.

Each rule consists of the protocol (for example, TCP), plus either a CIDR range or a source group. For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes.

Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.

", - "AuthorizeSecurityGroupIngress": "

Adds one or more ingress rules to a security group.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

[EC2-Classic] This action gives one or more IPv4 CIDR address ranges permission to access a security group in your account, or gives one or more security groups (called the source groups) permission to access a security group for your account. A source group can be for your own AWS account, or another. You can have up to 100 rules per group.

[EC2-VPC] This action gives one or more IPv4 or IPv6 CIDR address ranges permission to access a security group in your VPC, or gives one or more other security groups (called the source groups) permission to access a security group for your VPC. The security groups must all be for the same VPC or a peer VPC in a VPC peering connection. For more information about VPC security group limits, see Amazon VPC Limits.

", + "AttachVpnGateway": "

Attaches a virtual private gateway to a VPC. You can attach one virtual private gateway to one VPC at a time.

For more information, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide.

", + "AuthorizeSecurityGroupEgress": "

[EC2-VPC only] Adds one or more egress rules to a security group for use with a VPC. Specifically, this action permits instances to send traffic to one or more destination IPv4 or IPv6 CIDR address ranges, or to one or more destination security groups for the same VPC. This action doesn't apply to security groups for use in EC2-Classic. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide. For more information about security group limits, see Amazon VPC Limits.

Each rule consists of the protocol (for example, TCP), plus either a CIDR range or a source group. For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes. You can optionally specify a description for the rule.

Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.

", + "AuthorizeSecurityGroupIngress": "

Adds one or more ingress rules to a security group.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

[EC2-Classic] This action gives one or more IPv4 CIDR address ranges permission to access a security group in your account, or gives one or more security groups (called the source groups) permission to access a security group for your account. A source group can be for your own AWS account, or another. You can have up to 100 rules per group.

[EC2-VPC] This action gives one or more IPv4 or IPv6 CIDR address ranges permission to access a security group in your VPC, or gives one or more other security groups (called the source groups) permission to access a security group for your VPC. The security groups must all be for the same VPC or a peer VPC in a VPC peering connection. For more information about VPC security group limits, see Amazon VPC Limits.

You can optionally specify a description for the security group rule.

", "BundleInstance": "

Bundles an Amazon instance store-backed Windows instance.

During bundling, only the root device volume (C:\\) is bundled. Data on other instance store volumes is not preserved.

This action is not applicable for Linux/Unix instances or Windows instances that are backed by Amazon EBS.

For more information, see Creating an Instance Store-Backed Windows AMI.

", "CancelBundleTask": "

Cancels a bundling operation for an instance store-backed Windows instance.

", "CancelConversionTask": "

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

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

", "CancelExportTask": "

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

", "CancelImportTask": "

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

", "CancelReservedInstancesListing": "

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

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", - "CancelSpotFleetRequests": "

Cancels the specified Spot fleet requests.

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

", - "CancelSpotInstanceRequests": "

Cancels one or more Spot instance requests. Spot instances are instances that Amazon EC2 starts on your behalf when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

Canceling a Spot instance request does not terminate running Spot instances associated with the request.

", - "ConfirmProductInstance": "

Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner needs to verify whether another user's instance is eligible for support.

", + "CancelSpotFleetRequests": "

Cancels the specified Spot Fleet requests.

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

", + "CancelSpotInstanceRequests": "

Cancels one or more Spot Instance requests. Spot Instances are instances that Amazon EC2 starts on your behalf when the maximum price that you specify exceeds the current Spot price. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

Canceling a Spot Instance request does not terminate running Spot Instances associated with the request.

", + "ConfirmProductInstance": "

Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner must verify whether another user's instance is eligible for support.

", + "CopyFpgaImage": "

Copies the specified Amazon FPGA Image (AFI) to the current region.

", "CopyImage": "

Initiates the copy of an AMI from the specified source region to the current region. You specify the destination region by using its endpoint when making the request.

For more information about the prerequisites and limits when copying an AMI, see Copying an AMI in the Amazon Elastic Compute Cloud User Guide.

", "CopySnapshot": "

Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy the snapshot within the same region or from one region to another. You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs). The snapshot is copied to the regional endpoint that you send the HTTP request to.

Copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless the Encrypted flag is specified during the snapshot copy operation. By default, encrypted snapshot copies use the default AWS Key Management Service (AWS KMS) customer master key (CMK); however, you can specify a non-default CMK with the KmsKeyId parameter.

To copy an encrypted snapshot that has been shared from another account, you must have permissions for the CMK used to encrypt the snapshot.

Snapshots created by the CopySnapshot action have an arbitrary volume ID that should not be used for any purpose.

For more information, see Copying an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.

", - "CreateCustomerGateway": "

Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You must provide the Internet-routable IP address of the customer gateway's external interface. The IP address must be static and may be behind a device performing network address translation (NAT).

For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN (in the 64512 - 65534 range).

Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is reserved in the us-east-1 region, and 9059, which is reserved in the eu-west-1 region.

For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

You cannot create more than one customer gateway with the same VPN type, IP address, and BGP ASN parameter values. If you run an identical request more than one time, the first request creates the customer gateway, and subsequent requests return information about the existing customer gateway. The subsequent requests do not create new customer gateway resources.

", + "CreateCustomerGateway": "

Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You must provide the Internet-routable IP address of the customer gateway's external interface. The IP address must be static and may be behind a device performing network address translation (NAT).

For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN (in the 64512 - 65534 range).

Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is reserved in the us-east-1 region, and 9059, which is reserved in the eu-west-1 region.

For more information about VPN customer gateways, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide.

You cannot create more than one customer gateway with the same VPN type, IP address, and BGP ASN parameter values. If you run an identical request more than one time, the first request creates the customer gateway, and subsequent requests return information about the existing customer gateway. The subsequent requests do not create new customer gateway resources.

", + "CreateDefaultSubnet": "

Creates a default subnet with a size /20 IPv4 CIDR block in the specified Availability Zone in your default VPC. You can have only one default subnet per Availability Zone. For more information, see Creating a Default Subnet in the Amazon Virtual Private Cloud User Guide.

", + "CreateDefaultVpc": "

Creates a default VPC with a size /16 IPv4 CIDR block and a default subnet in each Availability Zone. For more information about the components of a default VPC, see Default VPC and Default Subnets in the Amazon Virtual Private Cloud User Guide. You cannot specify the components of the default VPC yourself.

You can create a default VPC if you deleted your previous default VPC. You cannot have more than one default VPC per region.

If your account supports EC2-Classic, you cannot use this action to create a default VPC in a region that supports EC2-Classic. If you want a default VPC in a region that supports EC2-Classic, see \"I really want a default VPC for my existing EC2 account. Is that possible?\" in the Default VPCs FAQ.

", "CreateDhcpOptions": "

Creates a set of DHCP options for your VPC. After creating the set, you must associate it with the VPC, causing all existing and new instances that you launch in the VPC to use this set of DHCP options. The following are the individual DHCP options you can specify. For more information about the options, see RFC 2132.

Your VPC automatically starts out with a set of DHCP options that includes only a DNS server that we provide (AmazonProvidedDNS). If you create a set of options, and if your VPC has an Internet gateway, make sure to set the domain-name-servers option either to AmazonProvidedDNS or to a domain name server of your choice. For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", "CreateEgressOnlyInternetGateway": "

[IPv6 only] Creates an egress-only Internet gateway for your VPC. An egress-only Internet gateway is used to enable outbound communication over IPv6 from instances in your VPC to the Internet, and prevents hosts outside of your VPC from initiating an IPv6 connection with your instance.

", "CreateFlowLogs": "

Creates one or more flow logs to capture IP traffic for a specific network interface, subnet, or VPC. Flow logs are delivered to a specified log group in Amazon CloudWatch Logs. If you specify a VPC or subnet in the request, a log stream is created in CloudWatch Logs for each network interface in the subnet or VPC. Log streams can include information about accepted and rejected traffic to a network interface. You can view the data in your log streams using Amazon CloudWatch Logs.

In your request, you must also specify an IAM role that has permission to publish logs to CloudWatch Logs.

", @@ -40,64 +44,77 @@ "CreateImage": "

Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.

If you customized your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes.

For more information, see Creating Amazon EBS-Backed Linux AMIs in the Amazon Elastic Compute Cloud User Guide.

", "CreateInstanceExportTask": "

Exports a running or stopped instance to an S3 bucket.

For information about the supported operating systems, image formats, and known limitations for the types of instances you can export, see Exporting an Instance as a VM Using VM Import/Export in the VM Import/Export User Guide.

", "CreateInternetGateway": "

Creates an Internet gateway for use with a VPC. After creating the Internet gateway, you attach it to a VPC using AttachInternetGateway.

For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.

", - "CreateKeyPair": "

Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#8 private key. If a key with the specified name already exists, Amazon EC2 returns an error.

You can have up to five thousand key pairs per region.

The key pair returned to you is available only in the region in which you create it. To create a key pair that is available in all regions, use ImportKeyPair.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", + "CreateKeyPair": "

Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#1 private key. If a key with the specified name already exists, Amazon EC2 returns an error.

You can have up to five thousand key pairs per region.

The key pair returned to you is available only in the region in which you create it. If you prefer, you can create your own key pair using a third-party tool and upload it to any region using ImportKeyPair.

For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", + "CreateLaunchTemplate": "

Creates a launch template. A launch template contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify a launch template instead of providing the launch parameters in the request.

", + "CreateLaunchTemplateVersion": "

Creates a new version for a launch template. You can specify an existing version of launch template from which to base the new version.

Launch template versions are numbered in the order in which they are created. You cannot specify, change, or replace the numbering of launch template versions.

", "CreateNatGateway": "

Creates a NAT gateway in the specified subnet. A NAT gateway can be used to enable instances in a private subnet to connect to the Internet. This action creates a network interface in the specified subnet with a private IP address from the IP address range of the subnet. For more information, see NAT Gateways in the Amazon Virtual Private Cloud User Guide.

", "CreateNetworkAcl": "

Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", "CreateNetworkAclEntry": "

Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules.

We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules.

After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", "CreateNetworkInterface": "

Creates a network interface in the specified subnet.

For more information about network interfaces, see Elastic Network Interfaces in the Amazon Virtual Private Cloud User Guide.

", - "CreatePlacementGroup": "

Creates a placement group that you launch cluster instances into. You must give the group a name that's unique within the scope of your account.

For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", + "CreateNetworkInterfacePermission": "

Grants an AWS authorized partner account permission to attach the specified network interface to an instance in their account.

You can grant permission to a single AWS account only, and only one account at a time.

", + "CreatePlacementGroup": "

Creates a placement group in which to launch instances. The strategy of the placement group determines how the instances are organized within the group.

A cluster placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A spread placement group places instances on distinct hardware.

For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide.

", "CreateReservedInstancesListing": "

Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the Reserved Instance Marketplace. You can submit one Standard Reserved Instance listing at a time. To get a list of your Standard Reserved Instances, you can use the DescribeReservedInstances operation.

Only Standard Reserved Instances with a capacity reservation can be sold in the Reserved Instance Marketplace. Convertible Reserved Instances and Standard Reserved Instances with a regional benefit cannot be sold.

The Reserved Instance Marketplace matches sellers who want to resell Standard Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances.

To sell your Standard Reserved Instances, you must first register as a seller in the Reserved Instance Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of some or all of your Standard Reserved Instances, and specify the upfront price to receive for them. Your Standard Reserved Instance listings then become available for purchase. To view the details of your Standard Reserved Instance listing, you can use the DescribeReservedInstancesListings operation.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", "CreateRoute": "

Creates a route in a route table within a VPC.

You must specify one of the following targets: Internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, network interface, or egress-only Internet gateway.

When determining how to route traffic, we use the route with the most specific match. For example, traffic is destined for the IPv4 address 192.0.2.3, and the route table includes the following two IPv4 routes:

Both routes apply to the traffic destined for 192.0.2.3. However, the second route in the list covers a smaller number of IP addresses and is therefore more specific, so we use that route to determine where to target the traffic.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "CreateRouteTable": "

Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "CreateSecurityGroup": "

Creates a security group.

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

EC2-Classic: You can have up to 500 security groups.

EC2-VPC: You can create up to 500 security groups per VPC.

When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name.

You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other.

You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress.

", "CreateSnapshot": "

Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance.

When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are propagated to the snapshot.

You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your EBS volume at the time the snapshot command is issued; this may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

To create a snapshot for EBS volumes that serve as root devices, you should stop the instance before taking the snapshot.

Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected.

For more information, see Amazon Elastic Block Store and Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", - "CreateSpotDatafeedSubscription": "

Creates a data feed for Spot instances, enabling you to view Spot instance usage logs. You can create one data feed per AWS account. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", - "CreateSubnet": "

Creates a subnet in an existing VPC.

When you create each subnet, you provide the VPC ID and the CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The subnet's IPv4 CIDR block can be the same as the VPC's IPv4 CIDR block (assuming you want only a single subnet in the VPC), or a subset of the VPC's IPv4 CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses).

If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length.

AWS reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use.

If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle.

If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", + "CreateSpotDatafeedSubscription": "

Creates a data feed for Spot Instances, enabling you to view Spot Instance usage logs. You can create one data feed per AWS account. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", + "CreateSubnet": "

Creates a subnet in an existing VPC.

When you create each subnet, you provide the VPC ID and the IPv4 CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The size of the subnet's IPv4 CIDR block can be the same as a VPC's IPv4 CIDR block, or a subset of a VPC's IPv4 CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses).

If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length.

AWS reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use.

If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle.

If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", "CreateTags": "

Adds or overwrites one or more tags for the specified Amazon EC2 resource or resources. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide. For more information about creating IAM policies that control users' access to resources based on tags, see Supported Resource-Level Permissions for Amazon EC2 API Actions in the Amazon Elastic Compute Cloud User Guide.

", "CreateVolume": "

Creates an EBS volume that can be attached to an instance in the same Availability Zone. The volume is created in the regional endpoint that you send the HTTP request to. For more information see Regions and Endpoints.

You can create a new empty volume or restore a volume from an EBS snapshot. Any AWS Marketplace product codes from the snapshot are propagated to the volume.

You can create encrypted volumes with the Encrypted parameter. Encrypted volumes may only be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically encrypted. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

You can tag your volumes during creation. For more information, see Tagging Your Amazon EC2 Resources.

For more information, see Creating an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.

", "CreateVpc": "

Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). To help you decide how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

You can optionally request an Amazon-provided IPv6 CIDR block for the VPC. The IPv6 CIDR block uses a /56 prefix length, and is allocated from Amazon's pool of IPv6 addresses. You cannot choose the IPv6 range for your VPC.

By default, each instance you launch in the VPC has the default DHCP options, which includes only a default DNS server that we provide (AmazonProvidedDNS). For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see Dedicated Instances in the Amazon Elastic Compute Cloud User Guide.

", - "CreateVpcEndpoint": "

Creates a VPC endpoint for a specified AWS service. An endpoint enables you to create a private connection between your VPC and another AWS service in your account. You can specify an endpoint policy to attach to the endpoint that will control access to the service from your VPC. You can also specify the VPC route tables that use the endpoint.

Use DescribeVpcEndpointServices to get a list of supported AWS services.

", - "CreateVpcPeeringConnection": "

Requests a VPC peering connection between two VPCs: a requester VPC that you own and a peer VPC with which to create the connection. The peer VPC can belong to another AWS account. The requester VPC and peer VPC cannot have overlapping CIDR blocks.

The owner of the peer VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected.

If you try to create a VPC peering connection between VPCs that have overlapping CIDR blocks, the VPC peering connection status goes to failed.

", - "CreateVpnConnection": "

Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only supported connection type is ipsec.1.

The response includes information that you need to give to your network administrator to configure your customer gateway.

We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway.

If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", - "CreateVpnConnectionRoute": "

Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", - "CreateVpnGateway": "

Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.

For more information about virtual private gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpcEndpoint": "

Creates a VPC endpoint for a specified service. An endpoint enables you to create a private connection between your VPC and the service. The service may be provided by AWS, an AWS Marketplace partner, or another AWS account. For more information, see VPC Endpoints in the Amazon Virtual Private Cloud User Guide.

A gateway endpoint serves as a target for a route in your route table for traffic destined for the AWS service. You can specify an endpoint policy to attach to the endpoint that will control access to the service from your VPC. You can also specify the VPC route tables that use the endpoint.

An interface endpoint is a network interface in your subnet that serves as an endpoint for communicating with the specified service. You can specify the subnets in which to create an endpoint, and the security groups to associate with the endpoint network interface.

Use DescribeVpcEndpointServices to get a list of supported services.

", + "CreateVpcEndpointConnectionNotification": "

Creates a connection notification for a specified VPC endpoint or VPC endpoint service. A connection notification notifies you of specific endpoint events. You must create an SNS topic to receive notifications. For more information, see Create a Topic in the Amazon Simple Notification Service Developer Guide.

You can create a connection notification for interface endpoints only.

", + "CreateVpcEndpointServiceConfiguration": "

Creates a VPC endpoint service configuration to which service consumers (AWS accounts, IAM users, and IAM roles) can connect. Service consumers can create an interface VPC endpoint to connect to your service.

To create an endpoint service configuration, you must first create a Network Load Balancer for your service. For more information, see VPC Endpoint Services in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpcPeeringConnection": "

Requests a VPC peering connection between two VPCs: a requester VPC that you own and an accepter VPC with which to create the connection. The accepter VPC can belong to another AWS account and can be in a different region to the requester VPC. The requester VPC and accepter VPC cannot have overlapping CIDR blocks.

The owner of the accepter VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected.

If you create a VPC peering connection request between VPCs with overlapping CIDR blocks, the VPC peering connection has a status of failed.

", + "CreateVpnConnection": "

Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only supported connection type is ipsec.1.

The response includes information that you need to give to your network administrator to configure your customer gateway.

We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway.

If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

For more information, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpnConnectionRoute": "

Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.

For more information about VPN connections, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpnGateway": "

Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.

For more information about virtual private gateways, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide.

", "DeleteCustomerGateway": "

Deletes the specified customer gateway. You must delete the VPN connection before you can delete the customer gateway.

", "DeleteDhcpOptions": "

Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of options with the VPC.

", "DeleteEgressOnlyInternetGateway": "

Deletes an egress-only Internet gateway.

", "DeleteFlowLogs": "

Deletes one or more flow logs.

", + "DeleteFpgaImage": "

Deletes the specified Amazon FPGA Image (AFI).

", "DeleteInternetGateway": "

Deletes the specified Internet gateway. You must detach the Internet gateway from the VPC before you can delete it.

", "DeleteKeyPair": "

Deletes the specified key pair, by removing the public key from Amazon EC2.

", + "DeleteLaunchTemplate": "

Deletes a launch template. Deleting a launch template deletes all of its versions.

", + "DeleteLaunchTemplateVersions": "

Deletes one or more versions of a launch template. You cannot delete the default version of a launch template; you must first assign a different version as the default. If the default version is the only version for the launch template, you must delete the entire launch template using DeleteLaunchTemplate.

", "DeleteNatGateway": "

Deletes the specified NAT gateway. Deleting a NAT gateway disassociates its Elastic IP address, but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway routes in your route tables.

", "DeleteNetworkAcl": "

Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete the default network ACL.

", "DeleteNetworkAclEntry": "

Deletes the specified ingress or egress entry (rule) from the specified network ACL.

", "DeleteNetworkInterface": "

Deletes the specified network interface. You must detach the network interface before you can delete it.

", - "DeletePlacementGroup": "

Deletes the specified placement group. You must terminate all instances in the placement group before you can delete the placement group. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteNetworkInterfacePermission": "

Deletes a permission for a network interface. By default, you cannot delete the permission if the account for which you're removing the permission has attached the network interface to an instance. However, you can force delete the permission, regardless of any attachment.

", + "DeletePlacementGroup": "

Deletes the specified placement group. You must terminate all instances in the placement group before you can delete the placement group. For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide.

", "DeleteRoute": "

Deletes the specified route from the specified route table.

", "DeleteRouteTable": "

Deletes the specified route table. You must disassociate the route table from any subnets before you can delete it. You can't delete the main route table.

", "DeleteSecurityGroup": "

Deletes a security group.

If you attempt to delete a security group that is associated with an instance, or is referenced by another security group, the operation fails with InvalidGroup.InUse in EC2-Classic or DependencyViolation in EC2-VPC.

", "DeleteSnapshot": "

Deletes the specified snapshot.

When you make periodic snapshots of a volume, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the volume.

You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first de-register the AMI before you can delete the snapshot.

For more information, see Deleting an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.

", - "DeleteSpotDatafeedSubscription": "

Deletes the data feed for Spot instances.

", + "DeleteSpotDatafeedSubscription": "

Deletes the data feed for Spot Instances.

", "DeleteSubnet": "

Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the subnet.

", - "DeleteTags": "

Deletes the specified set of tags from the specified set of resources. This call is designed to follow a DescribeTags request.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteTags": "

Deletes the specified set of tags from the specified set of resources.

To list the current tags, use DescribeTags. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

", "DeleteVolume": "

Deletes the specified EBS volume. The volume must be in the available state (not attached to an instance).

The volume may remain in the deleting state for several minutes.

For more information, see Deleting an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.

", "DeleteVpc": "

Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on.

", - "DeleteVpcEndpoints": "

Deletes one or more specified VPC endpoints. Deleting the endpoint also deletes the endpoint routes in the route tables that were associated with the endpoint.

", - "DeleteVpcPeeringConnection": "

Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the peer VPC can delete the VPC peering connection if it's in the active state. The owner of the requester VPC can delete a VPC peering connection in the pending-acceptance state.

", + "DeleteVpcEndpointConnectionNotifications": "

Deletes one or more VPC endpoint connection notifications.

", + "DeleteVpcEndpointServiceConfigurations": "

Deletes one or more VPC endpoint service configurations in your account. Before you delete the endpoint service configuration, you must reject any Available or PendingAcceptance interface endpoint connections that are attached to the service.

", + "DeleteVpcEndpoints": "

Deletes one or more specified VPC endpoints. Deleting a gateway endpoint also deletes the endpoint routes in the route tables that were associated with the endpoint. Deleting an interface endpoint deletes the endpoint network interfaces.

", + "DeleteVpcPeeringConnection": "

Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the accepter VPC can delete the VPC peering connection if it's in the active state. The owner of the requester VPC can delete a VPC peering connection in the pending-acceptance state.

", "DeleteVpnConnection": "

Deletes the specified VPN connection.

If you're deleting the VPC and its associated components, we recommend that you detach the virtual private gateway from the VPC and delete the VPC before deleting the VPN connection. If you believe that the tunnel credentials for your VPN connection have been compromised, you can delete the VPN connection and create a new one that has new keys, without needing to delete the VPC or virtual private gateway. If you create a new VPN connection, you must reconfigure the customer gateway using the new configuration information returned with the new VPN connection ID.

", "DeleteVpnConnectionRoute": "

Deletes the specified static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.

", "DeleteVpnGateway": "

Deletes the specified virtual private gateway. We recommend that before you delete a virtual private gateway, you detach it from the VPC and delete the VPN connection. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network.

", - "DeregisterImage": "

Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances.

This command does not delete the AMI.

", + "DeregisterImage": "

Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances; however, it doesn't affect any instances that you've already launched from the AMI. You'll continue to incur usage costs for those instances until you terminate them.

When you deregister an Amazon EBS-backed AMI, it doesn't affect the snapshot that was created for the root volume of the instance during the AMI creation process. When you deregister an instance store-backed AMI, it doesn't affect the files that you uploaded to Amazon S3 when you created the AMI.

", "DescribeAccountAttributes": "

Describes attributes of your AWS account. The following are the supported account attributes:

", "DescribeAddresses": "

Describes one or more of your Elastic IP addresses.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

", "DescribeAvailabilityZones": "

Describes one or more of the Availability Zones that are available to you. The results include zones only for the region you're currently using. If there is an event impacting an Availability Zone, you can use this request to view the state and any provided message for that Availability Zone.

For more information, see Regions and Availability Zones in the Amazon Elastic Compute Cloud User Guide.

", "DescribeBundleTasks": "

Describes one or more of your bundling tasks.

Completed bundle tasks are listed for only a limited time. If your bundle task is no longer in the list, you can still register an AMI from it. Just use RegisterImage with the Amazon S3 bucket name and image manifest name you provided to the bundle task.

", "DescribeClassicLinkInstances": "

Describes one or more of your linked EC2-Classic instances. This request only returns information about EC2-Classic instances linked to a VPC through ClassicLink; you cannot use this request to return information about other instances.

", "DescribeConversionTasks": "

Describes one or more of your conversion tasks. For more information, see the VM Import/Export User Guide.

For information about the import manifest referenced by this API action, see VM Import Manifest.

", - "DescribeCustomerGateways": "

Describes one or more of your VPN customer gateways.

For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DescribeCustomerGateways": "

Describes one or more of your VPN customer gateways.

For more information about VPN customer gateways, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide.

", "DescribeDhcpOptions": "

Describes one or more of your DHCP options sets.

For more information about DHCP options sets, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", "DescribeEgressOnlyInternetGateways": "

Describes one or more of your egress-only Internet gateways.

", + "DescribeElasticGpus": "

Describes the Elastic GPUs associated with your instances. For more information about Elastic GPUs, see Amazon EC2 Elastic GPUs.

", "DescribeExportTasks": "

Describes one or more of your export tasks.

", "DescribeFlowLogs": "

Describes one or more flow logs. To view the information in your flow logs (the log streams for the network interfaces), you must use the CloudWatch Logs console or the CloudWatch Logs API.

", + "DescribeFpgaImageAttribute": "

Describes the specified attribute of the specified Amazon FPGA Image (AFI).

", "DescribeFpgaImages": "

Describes one or more available Amazon FPGA Images (AFIs). These include public AFIs, private AFIs that you own, and AFIs owned by other AWS accounts for which you have load permissions.

", "DescribeHostReservationOfferings": "

Describes the Dedicated Host Reservations that are available to purchase.

The results describe all the Dedicated Host Reservation offerings, including offerings that may not match the instance family and region of your Dedicated Hosts. When purchasing an offering, ensure that the the instance family and region of the offering matches that of the Dedicated Host/s it will be associated with. For an overview of supported instance types, see Dedicated Hosts Overview in the Amazon Elastic Compute Cloud User Guide.

", "DescribeHostReservations": "

Describes Dedicated Host Reservations which are associated with Dedicated Hosts in your account.

", @@ -110,17 +127,21 @@ "DescribeImportImageTasks": "

Displays details about an import virtual machine or import snapshot tasks that are already created.

", "DescribeImportSnapshotTasks": "

Describes your import snapshot tasks.

", "DescribeInstanceAttribute": "

Describes the specified attribute of the specified instance. You can specify only one attribute at a time. Valid attribute values are: instanceType | kernel | ramdisk | userData | disableApiTermination | instanceInitiatedShutdownBehavior | rootDeviceName | blockDeviceMapping | productCodes | sourceDestCheck | groupSet | ebsOptimized | sriovNetSupport

", - "DescribeInstanceStatus": "

Describes the status of one or more instances. By default, only running instances are described, unless specified otherwise.

Instance status includes the following components:

", + "DescribeInstanceCreditSpecifications": "

Describes the credit option for CPU usage of one or more of your T2 instances. The credit options are standard and unlimited.

If you do not specify an instance ID, Amazon EC2 returns only the T2 instances with the unlimited credit option. If you specify one or more instance IDs, Amazon EC2 returns the credit option (standard or unlimited) of those instances. If you specify an instance ID that is not valid, such as an instance that is not a T2 instance, an error is returned.

Recently terminated instances might appear in the returned results. This interval is usually less than one hour.

If an Availability Zone is experiencing a service disruption and you specify instance IDs in the affected zone, or do not specify any instance IDs at all, the call fails. If you specify only instance IDs in an unaffected zone, the call works normally.

For more information, see T2 Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeInstanceStatus": "

Describes the status of one or more instances. By default, only running instances are described, unless you specifically indicate to return the status of all instances.

Instance status includes the following components:

", "DescribeInstances": "

Describes one or more of your instances.

If you specify one or more instance IDs, Amazon EC2 returns information for those instances. If you do not specify instance IDs, Amazon EC2 returns information for all relevant instances. If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in the returned results.

Recently terminated instances might appear in the returned results. This interval is usually less than one hour.

If you describe instances in the rare case where an Availability Zone is experiencing a service disruption and you specify instance IDs that are in the affected zone, or do not specify any instance IDs at all, the call fails. If you describe instances and specify only instance IDs that are in an unaffected zone, the call works normally.

", "DescribeInternetGateways": "

Describes one or more of your Internet gateways.

", "DescribeKeyPairs": "

Describes one or more of your key pairs.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeLaunchTemplateVersions": "

Describes one or more versions of a specified launch template. You can describe all versions, individual versions, or a range of versions.

", + "DescribeLaunchTemplates": "

Describes one or more launch templates.

", "DescribeMovingAddresses": "

Describes your Elastic IP addresses that are being moved to the EC2-VPC platform, or that are being restored to the EC2-Classic platform. This request does not return information about any other Elastic IP addresses in your account.

", "DescribeNatGateways": "

Describes one or more of the your NAT gateways.

", "DescribeNetworkAcls": "

Describes one or more of your network ACLs.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", "DescribeNetworkInterfaceAttribute": "

Describes a network interface attribute. You can specify only one attribute at a time.

", + "DescribeNetworkInterfacePermissions": "

Describes the permissions for your network interfaces.

", "DescribeNetworkInterfaces": "

Describes one or more of your network interfaces.

", - "DescribePlacementGroups": "

Describes one or more of your placement groups. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", - "DescribePrefixLists": "

Describes available AWS services in a prefix list format, which includes the prefix list name and prefix list ID of the service and the IP address range for the service. A prefix list ID is required for creating an outbound security group rule that allows traffic from a VPC to access an AWS service through a VPC endpoint.

", + "DescribePlacementGroups": "

Describes one or more of your placement groups. For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide.

", + "DescribePrefixLists": "

Describes available AWS services in a prefix list format, which includes the prefix list name and prefix list ID of the service and the IP address range for the service. A prefix list ID is required for creating an outbound security group rule that allows traffic from a VPC to access an AWS service through a gateway VPC endpoint.

", "DescribeRegions": "

Describes one or more regions that are currently available to you.

For a list of the regions supported by Amazon EC2, see Regions and Endpoints.

", "DescribeReservedInstances": "

Describes one or more of the Reserved Instances that you purchased.

For more information about Reserved Instances, see Reserved Instances in the Amazon Elastic Compute Cloud User Guide.

", "DescribeReservedInstancesListings": "

Describes your account's Reserved Instance listings in the Reserved Instance Marketplace.

The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances.

As a seller, you choose to list some or all of your Reserved Instances, and you specify the upfront price to receive for them. Your Reserved Instances are then listed in the Reserved Instance Marketplace and are available for purchase.

As a buyer, you specify the configuration of the Reserved Instance to purchase, and the Marketplace matches what you're searching for with what's available. The Marketplace first sells the lowest priced Reserved Instances to you, and continues to sell available Reserved Instance listings to you until your demand is met. You are charged based on the total price of all of the listings that you purchase.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", @@ -133,11 +154,11 @@ "DescribeSecurityGroups": "

Describes one or more of your security groups.

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

", "DescribeSnapshotAttribute": "

Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time.

For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.

", "DescribeSnapshots": "

Describes one or more of the EBS snapshots available to you. Available snapshots include public snapshots available for any AWS account to launch, private snapshots that you own, and private snapshots owned by another AWS account but for which you've been given explicit create volume permissions.

The create volume permissions fall into the following categories:

The list of snapshots returned can be modified by specifying snapshot IDs, snapshot owners, or AWS accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions.

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results.

If you specify one or more snapshot owners using the OwnerIds option, only snapshots from the specified owners and for which you have access are returned. The results can include the AWS account IDs of the specified owners, amazon for snapshots owned by Amazon, or self for snapshots that you own.

If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify AWS account IDs (if you own the snapshots), self for snapshots for which you own or have explicit permissions, or all for public snapshots.

If you are describing a long list of snapshots, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeSnapshots request to retrieve the remaining results.

For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.

", - "DescribeSpotDatafeedSubscription": "

Describes the data feed for Spot instances. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", - "DescribeSpotFleetInstances": "

Describes the running instances for the specified Spot fleet.

", - "DescribeSpotFleetRequestHistory": "

Describes the events for the specified Spot fleet request during the specified time.

Spot fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event.

", - "DescribeSpotFleetRequests": "

Describes your Spot fleet requests.

Spot fleet requests are deleted 48 hours after they are canceled and their instances are terminated.

", - "DescribeSpotInstanceRequests": "

Describes the Spot instance requests that belong to your account. Spot instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

You can use DescribeSpotInstanceRequests to find a running Spot instance by examining the response. If the status of the Spot instance is fulfilled, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to look for instances where the instance lifecycle is spot.

Spot instance requests are deleted 4 hours after they are canceled and their instances are terminated.

", + "DescribeSpotDatafeedSubscription": "

Describes the data feed for Spot Instances. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeSpotFleetInstances": "

Describes the running instances for the specified Spot Fleet.

", + "DescribeSpotFleetRequestHistory": "

Describes the events for the specified Spot Fleet request during the specified time.

Spot Fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event.

", + "DescribeSpotFleetRequests": "

Describes your Spot Fleet requests.

Spot Fleet requests are deleted 48 hours after they are canceled and their instances are terminated.

", + "DescribeSpotInstanceRequests": "

Describes the Spot Instance requests that belong to your account. Spot Instances are instances that Amazon EC2 launches when the Spot price that you specify exceeds the current Spot price. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

You can use DescribeSpotInstanceRequests to find a running Spot Instance by examining the response. If the status of the Spot Instance is fulfilled, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to look for instances where the instance lifecycle is spot.

Spot Instance requests are deleted 4 hours after they are canceled and their instances are terminated.

", "DescribeSpotPriceHistory": "

Describes the Spot price history. For more information, see Spot Instance Pricing History in the Amazon Elastic Compute Cloud User Guide.

When you specify a start and end time, this operation returns the prices of the instance types within the time range that you specified and the time when the price changed. The price is valid within the time period that you specified; the response merely indicates the last time that the price changed.

", "DescribeStaleSecurityGroups": "

[EC2-VPC only] Describes the stale security group rules for security groups in a specified VPC. Rules are stale when they reference a deleted security group in a peer VPC, or a security group in a peer VPC for which the VPC peering connection has been deleted.

", "DescribeSubnets": "

Describes one or more of your subnets.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", @@ -149,12 +170,16 @@ "DescribeVpcAttribute": "

Describes the specified attribute of the specified VPC. You can specify only one attribute at a time.

", "DescribeVpcClassicLink": "

Describes the ClassicLink status of one or more VPCs.

", "DescribeVpcClassicLinkDnsSupport": "

Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", - "DescribeVpcEndpointServices": "

Describes all supported AWS services that can be specified when creating a VPC endpoint.

", + "DescribeVpcEndpointConnectionNotifications": "

Describes the connection notifications for VPC endpoints and VPC endpoint services.

", + "DescribeVpcEndpointConnections": "

Describes the VPC endpoint connections to your VPC endpoint services, including any endpoints that are pending your acceptance.

", + "DescribeVpcEndpointServiceConfigurations": "

Describes the VPC endpoint service configurations in your account (your services).

", + "DescribeVpcEndpointServicePermissions": "

Describes the principals (service consumers) that are permitted to discover your VPC endpoint service.

", + "DescribeVpcEndpointServices": "

Describes available services to which you can create a VPC endpoint.

", "DescribeVpcEndpoints": "

Describes one or more of your VPC endpoints.

", "DescribeVpcPeeringConnections": "

Describes one or more of your VPC peering connections.

", "DescribeVpcs": "

Describes one or more of your VPCs.

", - "DescribeVpnConnections": "

Describes one or more of your VPN connections.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", - "DescribeVpnGateways": "

Describes one or more of your virtual private gateways.

For more information about virtual private gateways, see Adding an IPsec Hardware VPN to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DescribeVpnConnections": "

Describes one or more of your VPN connections.

For more information about VPN connections, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide.

", + "DescribeVpnGateways": "

Describes one or more of your virtual private gateways.

For more information about virtual private gateways, see AWS Managed VPN Connections in the Amazon Virtual Private Cloud User Guide.

", "DetachClassicLinkVpc": "

Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, the VPC security groups are no longer associated with it. An instance is automatically unlinked from a VPC when it's stopped.

", "DetachInternetGateway": "

Detaches an Internet gateway from a VPC, disabling connectivity between the Internet and the VPC. The VPC must not contain any running instances with Elastic IP addresses or public IPv4 addresses.

", "DetachNetworkInterface": "

Detaches a network interface from an instance.

", @@ -167,37 +192,45 @@ "DisassociateIamInstanceProfile": "

Disassociates an IAM instance profile from a running or stopped instance.

Use DescribeIamInstanceProfileAssociations to get the association ID.

", "DisassociateRouteTable": "

Disassociates a subnet from a route table.

After you perform this action, the subnet no longer uses the routes in the route table. Instead, it uses the routes in the VPC's main route table. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "DisassociateSubnetCidrBlock": "

Disassociates a CIDR block from a subnet. Currently, you can disassociate an IPv6 CIDR block only. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.

", - "DisassociateVpcCidrBlock": "

Disassociates a CIDR block from a VPC. Currently, you can disassociate an IPv6 CIDR block only. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.

", + "DisassociateVpcCidrBlock": "

Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you must specify its association ID. You can get the association ID by using DescribeVpcs. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.

You cannot disassociate the CIDR block with which you originally created the VPC (the primary CIDR block).

", "EnableVgwRoutePropagation": "

Enables a virtual private gateway (VGW) to propagate routes to the specified route table of a VPC.

", "EnableVolumeIO": "

Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was potentially inconsistent.

", "EnableVpcClassicLink": "

Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC's route tables have existing routes for address ranges within the 10.0.0.0/8 IP address range, excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address ranges. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", "EnableVpcClassicLinkDnsSupport": "

Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information about ClassicLink, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", - "GetConsoleOutput": "

Gets the console output for the specified instance.

Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface.

Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output which is available for at least one hour after the most recent post.

For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it.

For Windows instances, the instance console output includes output from the EC2Config service.

", + "GetConsoleOutput": "

Gets the console output for the specified instance.

Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface.

Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output, which is available for at least one hour after the most recent post.

For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it.

For Windows instances, the instance console output includes output from the EC2Config service.

", "GetConsoleScreenshot": "

Retrieve a JPG-format screenshot of a running instance to help with troubleshooting.

The returned content is Base64-encoded.

", "GetHostReservationPurchasePreview": "

Preview a reservation purchase with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation.

This is a preview of the PurchaseHostReservation action and does not result in the offering being purchased.

", - "GetPasswordData": "

Retrieves the encrypted administrator password for an instance running Windows.

The Windows password is generated at boot if the EC2Config service plugin, Ec2SetPassword, is enabled. This usually only happens the first time an AMI is launched, and then Ec2SetPassword is automatically disabled. The password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling.

The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file.

Password generation and encryption takes a few moments. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.

", - "GetReservedInstancesExchangeQuote": "

Returns details about the values and term of your specified Convertible Reserved Instances. When a target configuration is specified, it returns information about whether the exchange is valid and can be performed.

", + "GetLaunchTemplateData": "

Retrieves the configuration data of the specified instance. You can use this data to create a launch template.

", + "GetPasswordData": "

Retrieves the encrypted administrator password for a running Windows instance.

The Windows password is generated at boot by the EC2Config service or EC2Launch scripts (Windows Server 2016 and later). This usually only happens the first time an instance is launched. For more information, see EC2Config and EC2Launch in the Amazon Elastic Compute Cloud User Guide.

For the EC2Config service, the password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling.

The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file.

When you launch an instance, password generation and encryption may take a few minutes. If you try to retrieve the password before it's available, the output returns an empty string. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.

", + "GetReservedInstancesExchangeQuote": "

Returns a quote and exchange information for exchanging one or more specified Convertible Reserved Instances for a new Convertible Reserved Instance. If the exchange cannot be performed, the reason is returned in the response. Use AcceptReservedInstancesExchangeQuote to perform the exchange.

", "ImportImage": "

Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI). For more information, see Importing a VM as an Image Using VM Import/Export in the VM Import/Export User Guide.

", "ImportInstance": "

Creates an import instance task using metadata from the specified disk image. ImportInstance only supports single-volume VMs. To import multi-volume VMs, use ImportImage. For more information, see Importing a Virtual Machine Using the Amazon EC2 CLI.

For information about the import manifest referenced by this API action, see VM Import Manifest.

", "ImportKeyPair": "

Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with CreateKeyPair, in which AWS creates the key pair and gives the keys to you (AWS keeps a copy of the public key). With ImportKeyPair, you create the key pair and give AWS just the public key. The private key is never transferred between you and AWS.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", "ImportSnapshot": "

Imports a disk into an EBS snapshot.

", "ImportVolume": "

Creates an import volume task using metadata from the specified disk image.For more information, see Importing Disks to Amazon EBS.

For information about the import manifest referenced by this API action, see VM Import Manifest.

", + "ModifyFpgaImageAttribute": "

Modifies the specified attribute of the specified Amazon FPGA Image (AFI).

", "ModifyHosts": "

Modify the auto-placement setting of a Dedicated Host. When auto-placement is enabled, AWS will place instances that you launch with a tenancy of host, but without targeting a specific host ID, onto any available Dedicated Host in your account which has auto-placement enabled. When auto-placement is disabled, you need to provide a host ID if you want the instance to launch onto a specific host. If no host ID is provided, the instance will be launched onto a suitable host which has auto-placement enabled.

", "ModifyIdFormat": "

Modifies the ID format for the specified resource on a per-region basis. You can specify that resources should receive longer IDs (17-character IDs) when they are created. The following resource types support longer IDs: instance | reservation | snapshot | volume.

This setting applies to the IAM user who makes the request; it does not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user. If you're using this action as the root user, then these settings apply to the entire account, unless an IAM user explicitly overrides these settings for themselves. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.

Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.

", "ModifyIdentityIdFormat": "

Modifies the ID format of a resource for a specified IAM user, IAM role, or the root user for an account; or all IAM users, IAM roles, and the root user for an account. You can specify that resources should receive longer IDs (17-character IDs) when they are created.

The following resource types support longer IDs: instance | reservation | snapshot | volume. For more information, see Resource IDs in the Amazon Elastic Compute Cloud User Guide.

This setting applies to the principal specified in the request; it does not apply to the principal that makes the request.

Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant Describe command for the resource type.

", - "ModifyImageAttribute": "

Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time.

AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made public.

The SriovNetSupport enhanced networking attribute cannot be changed using this command. Instead, enable SriovNetSupport on an instance and create an AMI from the instance. This will result in an image with SriovNetSupport enabled.

", + "ModifyImageAttribute": "

Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time. You can use the Attribute parameter to specify the attribute or one of the following parameters: Description, LaunchPermission, or ProductCode.

AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made public.

To enable the SriovNetSupport enhanced networking attribute of an image, enable SriovNetSupport on an instance and create an AMI from the instance.

", "ModifyInstanceAttribute": "

Modifies the specified attribute of the specified instance. You can specify only one attribute at a time.

To modify some attributes, the instance must be stopped. For more information, see Modifying Attributes of a Stopped Instance in the Amazon Elastic Compute Cloud User Guide.

", + "ModifyInstanceCreditSpecification": "

Modifies the credit option for CPU usage on a running or stopped T2 instance. The credit options are standard and unlimited.

For more information, see T2 Instances in the Amazon Elastic Compute Cloud User Guide.

", "ModifyInstancePlacement": "

Set the instance affinity value for a specific stopped instance and modify the instance tenancy setting.

Instance affinity is disabled by default. When instance affinity is host and it is not associated with a specific Dedicated Host, the next time it is launched it will automatically be associated with the host it lands on. This relationship will persist if the instance is stopped/started, or rebooted.

You can modify the host ID associated with a stopped instance. If a stopped instance has a new host ID association, the instance will target that host when restarted.

You can modify the tenancy of a stopped instance with a tenancy of host or dedicated.

Affinity, hostID, and tenancy are not required parameters, but at least one of them must be specified in the request. Affinity and tenancy can be modified in the same request, but tenancy can only be modified on instances that are stopped.

", + "ModifyLaunchTemplate": "

Modifies a launch template. You can specify which version of the launch template to set as the default version. When launching an instance, the default version applies when a launch template version is not specified.

", "ModifyNetworkInterfaceAttribute": "

Modifies the specified network interface attribute. You can specify only one attribute at a time.

", - "ModifyReservedInstances": "

Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Standard Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type.

For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.

", + "ModifyReservedInstances": "

Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type.

For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.

", "ModifySnapshotAttribute": "

Adds or removes permission settings for the specified snapshot. You may add or remove specified AWS account IDs from a snapshot's list of create volume permissions, but you cannot do both in a single API call. If you need to both add and remove account IDs for a snapshot, you must use multiple API calls.

Encrypted snapshots and snapshots with AWS Marketplace product codes cannot be made public. Snapshots encrypted with your default CMK cannot be shared with other accounts.

For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.

", - "ModifySpotFleetRequest": "

Modifies the specified Spot fleet request.

While the Spot fleet request is being modified, it is in the modifying state.

To scale up your Spot fleet, increase its target capacity. The Spot fleet launches the additional Spot instances according to the allocation strategy for the Spot fleet request. If the allocation strategy is lowestPrice, the Spot fleet launches instances using the Spot pool with the lowest price. If the allocation strategy is diversified, the Spot fleet distributes the instances across the Spot pools.

To scale down your Spot fleet, decrease its target capacity. First, the Spot fleet cancels any open bids that exceed the new target capacity. You can request that the Spot fleet terminate Spot instances until the size of the fleet no longer exceeds the new target capacity. If the allocation strategy is lowestPrice, the Spot fleet terminates the instances with the highest price per unit. If the allocation strategy is diversified, the Spot fleet terminates instances across the Spot pools. Alternatively, you can request that the Spot fleet keep the fleet at its current size, but not replace any Spot instances that are interrupted or that you terminate manually.

", + "ModifySpotFleetRequest": "

Modifies the specified Spot Fleet request.

While the Spot Fleet request is being modified, it is in the modifying state.

To scale up your Spot Fleet, increase its target capacity. The Spot Fleet launches the additional Spot Instances according to the allocation strategy for the Spot Fleet request. If the allocation strategy is lowestPrice, the Spot Fleet launches instances using the Spot pool with the lowest price. If the allocation strategy is diversified, the Spot Fleet distributes the instances across the Spot pools.

To scale down your Spot Fleet, decrease its target capacity. First, the Spot Fleet cancels any open requests that exceed the new target capacity. You can request that the Spot Fleet terminate Spot Instances until the size of the fleet no longer exceeds the new target capacity. If the allocation strategy is lowestPrice, the Spot Fleet terminates the instances with the highest price per unit. If the allocation strategy is diversified, the Spot Fleet terminates instances across the Spot pools. Alternatively, you can request that the Spot Fleet keep the fleet at its current size, but not replace any Spot Instances that are interrupted or that you terminate manually.

If you are finished with your Spot Fleet for now, but will use it again later, you can set the target capacity to 0.

", "ModifySubnetAttribute": "

Modifies a subnet attribute. You can only modify one attribute at a time.

", "ModifyVolume": "

You can modify several parameters of an existing EBS volume, including volume size, volume type, and IOPS capacity. If your EBS volume is attached to a current-generation EC2 instance type, you may be able to apply these changes without stopping the instance or detaching the volume from it. For more information about modifying an EBS volume running Linux, see Modifying the Size, IOPS, or Type of an EBS Volume on Linux. For more information about modifying an EBS volume running Windows, see Modifying the Size, IOPS, or Type of an EBS Volume on Windows.

When you complete a resize operation on your volume, you need to extend the volume's file-system size to take advantage of the new storage capacity. For information about extending a Linux file system, see Extending a Linux File System. For information about extending a Windows file system, see Extending a Windows File System.

You can use CloudWatch Events to check the status of a modification to an EBS volume. For information about CloudWatch Events, see the Amazon CloudWatch Events User Guide. You can also track the status of a modification using the DescribeVolumesModifications API. For information about tracking status changes using either method, see Monitoring Volume Modifications.

With previous-generation instance types, resizing an EBS volume may require detaching and reattaching the volume or stopping and restarting the instance. For more information about modifying an EBS volume running Linux, see Modifying the Size, IOPS, or Type of an EBS Volume on Linux. For more information about modifying an EBS volume running Windows, see Modifying the Size, IOPS, or Type of an EBS Volume on Windows.

If you reach the maximum volume modification rate per volume limit, you will need to wait at least six hours before applying further modifications to the affected EBS volume.

", "ModifyVolumeAttribute": "

Modifies a volume attribute.

By default, all I/O operations for the volume are suspended when the data on the volume is determined to be potentially inconsistent, to prevent undetectable, latent data corruption. The I/O access to the volume can be resumed by first enabling I/O access and then checking the data consistency on your volume.

You can change the default behavior to resume I/O operations. We recommend that you change this only for boot volumes or for volumes that are stateless or disposable.

", "ModifyVpcAttribute": "

Modifies the specified attribute of the specified VPC.

", - "ModifyVpcEndpoint": "

Modifies attributes of a specified VPC endpoint. You can modify the policy associated with the endpoint, and you can add and remove route tables associated with the endpoint.

", + "ModifyVpcEndpoint": "

Modifies attributes of a specified VPC endpoint. The attributes that you can modify depend on the type of VPC endpoint (interface or gateway). For more information, see VPC Endpoints in the Amazon Virtual Private Cloud User Guide.

", + "ModifyVpcEndpointConnectionNotification": "

Modifies a connection notification for VPC endpoint or VPC endpoint service. You can change the SNS topic for the notification, or the events for which to be notified.

", + "ModifyVpcEndpointServiceConfiguration": "

Modifies the attributes of your VPC endpoint service configuration. You can change the Network Load Balancers for your service, and you can specify whether acceptance is required for requests to connect to your endpoint service through an interface VPC endpoint.

", + "ModifyVpcEndpointServicePermissions": "

Modifies the permissions for your VPC endpoint service. You can add or remove permissions for service consumers (IAM users, IAM roles, and AWS accounts) to discover your endpoint service.

", "ModifyVpcPeeringConnectionOptions": "

Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following:

If the peered VPCs are in different accounts, each owner must initiate a separate request to modify the peering connection options, depending on whether their VPC was the requester or accepter for the VPC peering connection. If the peered VPCs are in the same account, you can modify the requester and accepter options in the same request. To confirm which VPC is the accepter and requester for a VPC peering connection, use the DescribeVpcPeeringConnections command.

", + "ModifyVpcTenancy": "

Modifies the instance tenancy attribute of the specified VPC. You can change the instance tenancy attribute of a VPC to default only. You cannot change the instance tenancy attribute to dedicated.

After you modify the tenancy of the VPC, any new instances that you launch into the VPC have a tenancy of default, unless you specify otherwise during launch. The tenancy of any existing instances in the VPC is not affected.

For more information about Dedicated Instances, see Dedicated Instances in the Amazon Elastic Compute Cloud User Guide.

", "MonitorInstances": "

Enables detailed monitoring for a running instance. Otherwise, basic monitoring is enabled. For more information, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.

To disable detailed monitoring, see .

", "MoveAddressToVpc": "

Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform. The Elastic IP address must be allocated to your account for more than 24 hours, and it must not be associated with an instance. After the Elastic IP address is moved, it is no longer available for use in the EC2-Classic platform, unless you move it back using the RestoreAddressToClassic request. You cannot move an Elastic IP address that was originally allocated for use in the EC2-VPC platform to the EC2-Classic platform.

", "PurchaseHostReservation": "

Purchase a reservation with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation. This action results in the specified reservation being purchased and charged to your account.

", @@ -205,8 +238,9 @@ "PurchaseScheduledInstances": "

Purchases one or more Scheduled Instances with the specified schedule.

Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the hour for a one-year term. Before you can purchase a Scheduled Instance, you must call DescribeScheduledInstanceAvailability to check for available schedules and obtain a purchase token. After you purchase a Scheduled Instance, you must call RunScheduledInstances during each scheduled time period.

After you purchase a Scheduled Instance, you can't cancel, modify, or resell your purchase.

", "RebootInstances": "

Requests a reboot of one or more instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored.

If an instance does not cleanly shut down within four minutes, Amazon EC2 performs a hard reboot.

For more information about troubleshooting, see Getting Console Output and Rebooting Instances in the Amazon Elastic Compute Cloud User Guide.

", "RegisterImage": "

Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an instance from the AMI. For more information about creating AMIs, see Creating Your Own AMIs in the Amazon Elastic Compute Cloud User Guide.

For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself.

You can also use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. You specify the snapshot using the block device mapping. For more information, see Launching a Linux Instance from a Backup in the Amazon Elastic Compute Cloud User Guide.

You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes.

Some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the EC2 billing product code associated with an AMI to verify the subscription status for package updates. Creating an AMI from an EBS snapshot does not maintain this billing code, and subsequent instances launched from such an AMI will not be able to connect to package update infrastructure. To create an AMI that must retain billing codes, see CreateImage.

If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.

", + "RejectVpcEndpointConnections": "

Rejects one or more VPC endpoint connection requests to your VPC endpoint service.

", "RejectVpcPeeringConnection": "

Rejects a VPC peering connection request. The VPC peering connection must be in the pending-acceptance state. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests. To delete an active VPC peering connection, or to delete a VPC peering connection request that you initiated, use DeleteVpcPeeringConnection.

", - "ReleaseAddress": "

Releases the specified Elastic IP address.

After releasing an Elastic IP address, it is released to the IP address pool and might be unavailable to you. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an AuthFailure error if the address is already allocated to another AWS account.

[EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress.

[Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you try to release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse).

", + "ReleaseAddress": "

Releases the specified Elastic IP address.

[EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress.

[Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you can release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse).

After releasing an Elastic IP address, it is released to the IP address pool. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an AuthFailure error if the address is already allocated to another AWS account.

[EC2-VPC] After you release an Elastic IP address for use in a VPC, you might be able to recover it. For more information, see AllocateAddress.

", "ReleaseHosts": "

When you no longer want to use an On-Demand Dedicated Host it can be released. On-Demand billing is stopped and the host goes into released state. The host ID of Dedicated Hosts that have been released can no longer be specified in another request, e.g., ModifyHosts. You must stop or terminate all instances on a host before it can be released.

When Dedicated Hosts are released, it make take some time for them to stop counting toward your limit and you may receive capacity errors when trying to allocate new Dedicated hosts. Try waiting a few minutes, and then try again.

Released hosts will still appear in a DescribeHosts response.

", "ReplaceIamInstanceProfileAssociation": "

Replaces an IAM instance profile for the specified running instance. You can use this action to change the IAM instance profile that's associated with an instance without having to disassociate the existing IAM instance profile first.

Use DescribeIamInstanceProfileAssociations to get the association ID.

", "ReplaceNetworkAclAssociation": "

Changes which network ACL a subnet is associated with. By default when you create a subnet, it's automatically associated with the default network ACL. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", @@ -214,23 +248,26 @@ "ReplaceRoute": "

Replaces an existing route within a route table in a VPC. You must provide only one of the following: Internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, network interface, or egress-only Internet gateway.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "ReplaceRouteTableAssociation": "

Changes the route table associated with a given subnet in a VPC. After the operation completes, the subnet uses the routes in the new route table it's associated with. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

You can also use ReplaceRouteTableAssociation to change which table is the main route table in the VPC. You just specify the main route table's association ID and the route table to be the new main route table.

", "ReportInstanceStatus": "

Submits feedback about the status of an instance. The instance must be in the running state. If your experience with the instance differs from the instance status returned by DescribeInstanceStatus, use ReportInstanceStatus to report your experience with the instance. Amazon EC2 collects this information to improve the accuracy of status checks.

Use of this action does not change the value returned by DescribeInstanceStatus.

", - "RequestSpotFleet": "

Creates a Spot fleet request.

You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet.

By default, the Spot fleet requests Spot instances in the Spot pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload.

Alternatively, you can specify that the Spot fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot instances in your Spot fleet are in different Spot pools, you can improve the availability of your fleet.

For more information, see Spot Fleet Requests in the Amazon Elastic Compute Cloud User Guide.

", - "RequestSpotInstances": "

Creates a Spot instance request. Spot instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot Instance capacity and current Spot instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

", + "RequestSpotFleet": "

Creates a Spot Fleet request.

You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet.

By default, the Spot Fleet requests Spot Instances in the Spot pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload.

Alternatively, you can specify that the Spot Fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot Instances in your Spot Fleet are in different Spot pools, you can improve the availability of your fleet.

You can specify tags for the Spot Instances. You cannot tag other resource types in a Spot Fleet request; only the instance resource type is supported.

For more information, see Spot Fleet Requests in the Amazon Elastic Compute Cloud User Guide.

", + "RequestSpotInstances": "

Creates a Spot Instance request. Spot Instances are instances that Amazon EC2 launches when the maximum price that you specify exceeds the current Spot price. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

", + "ResetFpgaImageAttribute": "

Resets the specified attribute of the specified Amazon FPGA Image (AFI) to its default value. You can only reset the load permission attribute.

", "ResetImageAttribute": "

Resets an attribute of an AMI to its default value.

The productCodes attribute can't be reset.

", "ResetInstanceAttribute": "

Resets an attribute of an instance to its default value. To reset the kernel or ramdisk, the instance must be in a stopped state. To reset the sourceDestCheck, the instance can be either running or stopped.

The sourceDestCheck attribute controls whether source/destination checking is enabled. The default value is true, which means checking is enabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", "ResetNetworkInterfaceAttribute": "

Resets a network interface attribute. You can specify only one attribute at a time.

", "ResetSnapshotAttribute": "

Resets permission settings for the specified snapshot.

For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.

", "RestoreAddressToClassic": "

Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.

", - "RevokeSecurityGroupEgress": "

[EC2-VPC only] Removes one or more egress rules from a security group for EC2-VPC. This action doesn't apply to security groups for use in EC2-Classic. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be revoked.

Each rule consists of the protocol and the IPv4 or IPv6 CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", - "RevokeSecurityGroupIngress": "

Removes one or more ingress rules from a security group. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be removed.

Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", - "RunInstances": "

Launches the specified number of instances using an AMI for which you have permissions.

You can specify a number of options, or leave the default options. The following rules apply:

To ensure faster instance launches, break up large requests into smaller batches. For example, create 5 separate launch requests for 100 instances each instead of 1 launch request for 500 instances.

An instance is ready for you to use when it's in the running state. You can check the state of your instance using DescribeInstances. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see CreateTags and Tagging Your Amazon EC2 Resources.

Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

For troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide.

", + "RevokeSecurityGroupEgress": "

[EC2-VPC only] Removes one or more egress rules from a security group for EC2-VPC. This action doesn't apply to security groups for use in EC2-Classic. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly.

Each rule consists of the protocol and the IPv4 or IPv6 CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not have to specify the description to revoke the rule.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", + "RevokeSecurityGroupIngress": "

Removes one or more ingress rules from a security group. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly.

[EC2-Classic security groups only] If the values you specify do not match the existing rule's values, no error is returned. Use DescribeSecurityGroups to verify that the rule has been removed.

Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not have to specify the description to revoke the rule.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", + "RunInstances": "

Launches the specified number of instances using an AMI for which you have permissions.

You can specify a number of options, or leave the default options. The following rules apply:

You can create a launch template, which is a resource that contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify the launch template instead of specifying the launch parameters.

To ensure faster instance launches, break up large requests into smaller batches. For example, create five separate launch requests for 100 instances each instead of one launch request for 500 instances.

An instance is ready for you to use when it's in the running state. You can check the state of your instance using DescribeInstances. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see CreateTags and Tagging Your Amazon EC2 Resources.

Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

For troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide.

", "RunScheduledInstances": "

Launches the specified Scheduled Instances.

Before you can launch a Scheduled Instance, you must purchase it and obtain an identifier using PurchaseScheduledInstances.

You must launch a Scheduled Instance during its scheduled time period. You can't stop or reboot a Scheduled Instance, but you can terminate it as needed. If you terminate a Scheduled Instance before the current scheduled time period ends, you can launch it again after a few minutes. For more information, see Scheduled Instances in the Amazon Elastic Compute Cloud User Guide.

", - "StartInstances": "

Starts an Amazon EBS-backed AMI that you've previously stopped.

Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for hourly instance usage. However, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.

Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Performing this operation on an instance that uses an instance store as its root device returns an error.

For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide.

", - "StopInstances": "

Stops an Amazon EBS-backed instance.

We don't charge hourly usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.

You can't start or stop Spot instances, and you can't stop instance store-backed instances.

When you stop an instance, we shut it down. You can restart your instance at any time. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Stopping an instance is different to rebooting or terminating it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide.

", + "StartInstances": "

Starts an Amazon EBS-backed instance that you've previously stopped.

Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for instance usage. However, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Every time you start your Windows instance, Amazon EC2 charges you for a full instance hour. If you stop and restart your Windows instance, a new instance hour begins and Amazon EC2 charges you for another full instance hour even if you are still within the same 60-minute period when it was stopped. Every time you start your Linux instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage.

Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Performing this operation on an instance that uses an instance store as its root device returns an error.

For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide.

", + "StopInstances": "

Stops an Amazon EBS-backed instance.

We don't charge usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. Every time you start your Windows instance, Amazon EC2 charges you for a full instance hour. If you stop and restart your Windows instance, a new instance hour begins and Amazon EC2 charges you for another full instance hour even if you are still within the same 60-minute period when it was stopped. Every time you start your Linux instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage.

You can't start or stop Spot Instances, and you can't stop instance store-backed instances.

When you stop an instance, we shut it down. You can restart your instance at any time. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Stopping an instance is different to rebooting or terminating it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide.

", "TerminateInstances": "

Shuts down one or more instances. This operation is idempotent; if you terminate an instance more than once, each call succeeds.

If you specify multiple instances and the request fails (for example, because of a single incorrect instance ID), none of the instances are terminated.

Terminated instances remain visible after termination (for approximately one hour).

By default, Amazon EC2 deletes all EBS volumes that were attached when the instance launched. Volumes attached after instance launch continue running.

You can stop, start, and terminate EBS-backed instances. You can only terminate instance store-backed instances. What happens to an instance differs if you stop it or terminate it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, any attached EBS volumes with the DeleteOnTermination block device mapping parameter set to true are automatically deleted. For more information about the differences between stopping and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

For more information about troubleshooting, see Troubleshooting Terminating Your Instance in the Amazon Elastic Compute Cloud User Guide.

", "UnassignIpv6Addresses": "

Unassigns one or more IPv6 addresses from a network interface.

", "UnassignPrivateIpAddresses": "

Unassigns one or more secondary private IP addresses from a network interface.

", - "UnmonitorInstances": "

Disables detailed monitoring for a running instance. For more information, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.

" + "UnmonitorInstances": "

Disables detailed monitoring for a running instance. For more information, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.

", + "UpdateSecurityGroupRuleDescriptionsEgress": "

[EC2-VPC only] Updates the description of an egress (outbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously.

You specify the description as part of the IP permissions structure. You can remove a description for a security group rule by omitting the description parameter in the request.

", + "UpdateSecurityGroupRuleDescriptionsIngress": "

Updates the description of an ingress (inbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously.

You specify the description as part of the IP permissions structure. You can remove a description for a security group rule by omitting the description parameter in the request.

" }, "shapes": { "AcceptReservedInstancesExchangeQuoteRequest": { @@ -243,6 +280,16 @@ "refs": { } }, + "AcceptVpcEndpointConnectionsRequest": { + "base": null, + "refs": { + } + }, + "AcceptVpcEndpointConnectionsResult": { + "base": null, + "refs": { + } + }, "AcceptVpcPeeringConnectionRequest": { "base": "

Contains the parameters for AcceptVpcPeeringConnection.

", "refs": { @@ -290,7 +337,7 @@ } }, "ActiveInstance": { - "base": "

Describes a running instance in a Spot fleet.

", + "base": "

Describes a running instance in a Spot Fleet.

", "refs": { "ActiveInstanceSet$member": null } @@ -304,7 +351,7 @@ "ActivityStatus": { "base": null, "refs": { - "SpotFleetRequestConfig$ActivityStatus": "

The progress of the Spot fleet request. If there is an error, the status is error. After all bids are placed, the status is pending_fulfillment. If the size of the fleet is equal to or greater than its target capacity, the status is fulfilled. If the size of the fleet is decreased, the status is pending_termination while Spot instances are terminating.

" + "SpotFleetRequestConfig$ActivityStatus": "

The progress of the Spot Fleet request. If there is an error, the status is error. After all requests are placed, the status is pending_fulfillment. If the size of the fleet is equal to or greater than its target capacity, the status is fulfilled. If the size of the fleet is decreased, the status is pending_termination while Spot Instances are terminating.

" } }, "Address": { @@ -360,7 +407,19 @@ "AllocationStrategy": { "base": null, "refs": { - "SpotFleetRequestConfigData$AllocationStrategy": "

Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice.

" + "SpotFleetRequestConfigData$AllocationStrategy": "

Indicates how to allocate the target capacity across the Spot pools specified by the Spot Fleet request. The default is lowestPrice.

" + } + }, + "AllowedPrincipal": { + "base": "

Describes a principal.

", + "refs": { + "AllowedPrincipalSet$member": null + } + }, + "AllowedPrincipalSet": { + "base": null, + "refs": { + "DescribeVpcEndpointServicePermissionsResult$AllowedPrincipals": "

Information about one or more allowed principals.

" } }, "ArchitectureValues": { @@ -507,11 +566,11 @@ "DescribeVpcAttributeResult$EnableDnsSupport": "

Indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.

", "InstanceAttribute$DisableApiTermination": "

If the value is true, you can't terminate the instance through the Amazon EC2 console, CLI, or API; otherwise, you can.

", "InstanceAttribute$EnaSupport": "

Indicates whether enhanced networking with ENA is enabled.

", - "InstanceAttribute$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O.

", - "InstanceAttribute$SourceDestCheck": "

Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT.

", - "ModifyInstanceAttributeRequest$SourceDestCheck": "

Specifies whether source/destination checking is enabled. A value of true means that checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT.

", - "ModifyInstanceAttributeRequest$DisableApiTermination": "

If the value is true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this paramater for Spot Instances.

", - "ModifyInstanceAttributeRequest$EbsOptimized": "

Specifies whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", + "InstanceAttribute$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O.

", + "InstanceAttribute$SourceDestCheck": "

Indicates whether source/destination checking is enabled. A value of true means that checking is enabled, and false means that checking is disabled. This value must be false for a NAT instance to perform NAT.

", + "ModifyInstanceAttributeRequest$SourceDestCheck": "

Specifies whether source/destination checking is enabled. A value of true means that checking is enabled, and false means that checking is disabled. This value must be false for a NAT instance to perform NAT.

", + "ModifyInstanceAttributeRequest$DisableApiTermination": "

If the value is true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this parameter for Spot Instances.

", + "ModifyInstanceAttributeRequest$EbsOptimized": "

Specifies whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", "ModifyInstanceAttributeRequest$EnaSupport": "

Set to true to enable enhanced networking with ENA for the instance.

This option is supported only for HVM instances. Specifying this option with a PV instance can make it unreachable.

", "ModifyNetworkInterfaceAttributeRequest$SourceDestCheck": "

Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", "ModifySubnetAttributeRequest$AssignIpv6AddressOnCreation": "

Specify true to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address. This includes a network interface that's created when launching an instance into the subnet (the instance therefore receives an IPv6 address).

If you enable the IPv6 addressing feature for your subnet, your network interface or instance only receives an IPv6 address if it's created using version 2016-11-15 or later of the Amazon EC2 API.

", @@ -534,10 +593,10 @@ "InstanceAttribute$InstanceType": "

The instance type.

", "InstanceAttribute$KernelId": "

The kernel ID.

", "InstanceAttribute$RamdiskId": "

The RAM disk ID.

", - "InstanceAttribute$RootDeviceName": "

The name of the root device (for example, /dev/sda1 or /dev/xvda).

", + "InstanceAttribute$RootDeviceName": "

The device name of the root device volume (for example, /dev/sda1).

", "InstanceAttribute$SriovNetSupport": "

Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.

", "InstanceAttribute$UserData": "

The user data.

", - "ModifyImageAttributeRequest$Description": "

A description for the AMI.

", + "ModifyImageAttributeRequest$Description": "

A new description for the AMI.

", "ModifyInstanceAttributeRequest$InstanceInitiatedShutdownBehavior": "

Specifies whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

", "ModifyInstanceAttributeRequest$InstanceType": "

Changes the instance type to the specified value. For more information, see Instance Types. If the instance type is not valid, the error returned is InvalidInstanceAttributeValue.

", "ModifyInstanceAttributeRequest$Kernel": "

Changes the instance's kernel to the specified value. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

", @@ -609,9 +668,9 @@ "BatchState": { "base": null, "refs": { - "CancelSpotFleetRequestsSuccessItem$CurrentSpotFleetRequestState": "

The current state of the Spot fleet request.

", - "CancelSpotFleetRequestsSuccessItem$PreviousSpotFleetRequestState": "

The previous state of the Spot fleet request.

", - "SpotFleetRequestConfig$SpotFleetRequestState": "

The state of the Spot fleet request.

" + "CancelSpotFleetRequestsSuccessItem$CurrentSpotFleetRequestState": "

The current state of the Spot Fleet request.

", + "CancelSpotFleetRequestsSuccessItem$PreviousSpotFleetRequestState": "

The previous state of the Spot Fleet request.

", + "SpotFleetRequestConfig$SpotFleetRequestState": "

The state of the Spot Fleet request.

" } }, "BillingProductList": { @@ -631,7 +690,7 @@ "BlobAttributeValue": { "base": null, "refs": { - "ModifyInstanceAttributeRequest$UserData": "

Changes the instance's user data to the specified value. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.

" + "ModifyInstanceAttributeRequest$UserData": "

Changes the instance's user data to the specified value. If you are using an AWS SDK or command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text.

" } }, "BlockDeviceMapping": { @@ -646,9 +705,9 @@ "refs": { "Image$BlockDeviceMappings": "

Any block device mapping entries.

", "ImageAttribute$BlockDeviceMappings": "

One or more block device mapping entries.

", - "LaunchSpecification$BlockDeviceMappings": "

One or more block device mapping entries.

Although you can specify encrypted EBS volumes in this block device mapping for your Spot Instances, these volumes are not encrypted.

", - "RequestSpotLaunchSpecification$BlockDeviceMappings": "

One or more block device mapping entries.

Although you can specify encrypted EBS volumes in this block device mapping for your Spot Instances, these volumes are not encrypted.

", - "SpotFleetLaunchSpecification$BlockDeviceMappings": "

One or more block device mapping entries.

" + "LaunchSpecification$BlockDeviceMappings": "

One or more block device mapping entries.

", + "RequestSpotLaunchSpecification$BlockDeviceMappings": "

One or more block device mapping entries. You can't specify both a snapshot ID and an encryption value. This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status.

", + "SpotFleetLaunchSpecification$BlockDeviceMappings": "

One or more block device mapping entries. You can't specify both a snapshot ID and an encryption value. This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status.

" } }, "BlockDeviceMappingRequestList": { @@ -656,13 +715,14 @@ "refs": { "CreateImageRequest$BlockDeviceMappings": "

Information about one or more block device mappings.

", "RegisterImageRequest$BlockDeviceMappings": "

One or more block device mapping entries.

", - "RunInstancesRequest$BlockDeviceMappings": "

The block device mapping.

Supplying both a snapshot ID and an encryption value as arguments for block-device mapping results in an error. This is because only blank volumes can be encrypted on start, and these are not created from a snapshot. If a snapshot is the basis for the volume, it contains data by definition and its encryption status cannot be changed using this action.

" + "RunInstancesRequest$BlockDeviceMappings": "

One or more block device mapping entries. You can't specify both a snapshot ID and an encryption value. This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status.

" } }, "Boolean": { "base": null, "refs": { "AcceptReservedInstancesExchangeQuoteRequest$DryRun": "

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

", + "AcceptVpcEndpointConnectionsRequest$DryRun": "

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

", "AcceptVpcPeeringConnectionRequest$DryRun": "

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

", "AllocateAddressRequest$DryRun": "

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

", "AssignPrivateIpAddressesRequest$AllowReassignment": "

Indicates whether to allow an IP address that is already assigned to another network interface or instance to be reassigned to the specified network interface.

", @@ -685,16 +745,19 @@ "CancelConversionRequest$DryRun": "

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

", "CancelImportTaskRequest$DryRun": "

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

", "CancelSpotFleetRequestsRequest$DryRun": "

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

", - "CancelSpotFleetRequestsRequest$TerminateInstances": "

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

", + "CancelSpotFleetRequestsRequest$TerminateInstances": "

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

", "CancelSpotInstanceRequestsRequest$DryRun": "

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

", "ClassicLinkDnsSupport$ClassicLinkDnsSupported": "

Indicates whether ClassicLink DNS support is enabled for the VPC.

", "ConfirmProductInstanceRequest$DryRun": "

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

", "ConfirmProductInstanceResult$Return": "

The return value of the request. Returns true if the specified product code is owned by the requester and associated with the specified instance.

", + "CopyFpgaImageRequest$DryRun": "

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

", "CopyImageRequest$Encrypted": "

Specifies whether the destination snapshots of the copied image should be encrypted. The default CMK for EBS is used unless a non-default AWS Key Management Service (AWS KMS) CMK is specified with KmsKeyId. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", "CopyImageRequest$DryRun": "

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

", "CopySnapshotRequest$Encrypted": "

Specifies whether the destination snapshot should be encrypted. You can encrypt a copy of an unencrypted snapshot using this flag, but you cannot use it to create an unencrypted copy from an encrypted snapshot. Your default CMK for EBS is used unless a non-default AWS Key Management Service (AWS KMS) CMK is specified with KmsKeyId. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", "CopySnapshotRequest$DryRun": "

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

", "CreateCustomerGatewayRequest$DryRun": "

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

", + "CreateDefaultSubnetRequest$DryRun": "

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

", + "CreateDefaultVpcRequest$DryRun": "

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

", "CreateDhcpOptionsRequest$DryRun": "

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

", "CreateEgressOnlyInternetGatewayRequest$DryRun": "

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

", "CreateFpgaImageRequest$DryRun": "

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

", @@ -702,9 +765,12 @@ "CreateImageRequest$NoReboot": "

By default, Amazon EC2 attempts to shut down and reboot the instance before creating the image. If the 'No Reboot' option is set, Amazon EC2 doesn't shut down the instance before creating the image. When this option is used, file system integrity on the created image can't be guaranteed.

", "CreateInternetGatewayRequest$DryRun": "

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

", "CreateKeyPairRequest$DryRun": "

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

", + "CreateLaunchTemplateRequest$DryRun": "

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

", + "CreateLaunchTemplateVersionRequest$DryRun": "

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

", "CreateNetworkAclEntryRequest$DryRun": "

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

", "CreateNetworkAclEntryRequest$Egress": "

Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).

", "CreateNetworkAclRequest$DryRun": "

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

", + "CreateNetworkInterfacePermissionRequest$DryRun": "

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

", "CreateNetworkInterfaceRequest$DryRun": "

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

", "CreatePlacementGroupRequest$DryRun": "

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

", "CreateRouteRequest$DryRun": "

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

", @@ -717,7 +783,11 @@ "CreateTagsRequest$DryRun": "

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

", "CreateVolumeRequest$Encrypted": "

Specifies whether the volume should be encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are automatically encrypted. There is no way to create an encrypted volume from an unencrypted snapshot or vice versa. If your AMI uses encrypted volumes, you can only launch it on supported instance types. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", "CreateVolumeRequest$DryRun": "

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

", + "CreateVpcEndpointConnectionNotificationRequest$DryRun": "

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

", "CreateVpcEndpointRequest$DryRun": "

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

", + "CreateVpcEndpointRequest$PrivateDnsEnabled": "

(Interface endpoint) Indicate whether to associate a private hosted zone with the specified VPC. The private hosted zone contains a record set for the default public DNS name for the service for the region (for example, kinesis.us-east-1.amazonaws.com) which resolves to the private IP addresses of the endpoint network interfaces in the VPC. This enables you to make requests to the default public DNS name for the service instead of the public DNS names that are automatically generated by the VPC endpoint service.

To use a private hosted zone, you must set the following VPC attributes to true: enableDnsHostnames and enableDnsSupport. Use ModifyVpcAttribute to set the VPC attributes.

Default: true

", + "CreateVpcEndpointServiceConfigurationRequest$DryRun": "

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

", + "CreateVpcEndpointServiceConfigurationRequest$AcceptanceRequired": "

Indicate whether requests from service consumers to create an endpoint to your service must be accepted. To accept a request, use AcceptVpcEndpointConnections.

", "CreateVpcPeeringConnectionRequest$DryRun": "

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

", "CreateVpcRequest$AmazonProvidedIpv6CidrBlock": "

Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block.

", "CreateVpcRequest$DryRun": "

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

", @@ -727,11 +797,18 @@ "DeleteDhcpOptionsRequest$DryRun": "

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

", "DeleteEgressOnlyInternetGatewayRequest$DryRun": "

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

", "DeleteEgressOnlyInternetGatewayResult$ReturnCode": "

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

", + "DeleteFpgaImageRequest$DryRun": "

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

", + "DeleteFpgaImageResult$Return": "

Is true if the request succeeds, and an error otherwise.

", "DeleteInternetGatewayRequest$DryRun": "

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

", "DeleteKeyPairRequest$DryRun": "

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

", + "DeleteLaunchTemplateRequest$DryRun": "

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

", + "DeleteLaunchTemplateVersionsRequest$DryRun": "

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

", "DeleteNetworkAclEntryRequest$DryRun": "

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

", "DeleteNetworkAclEntryRequest$Egress": "

Indicates whether the rule is an egress rule.

", "DeleteNetworkAclRequest$DryRun": "

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

", + "DeleteNetworkInterfacePermissionRequest$Force": "

Specify true to remove the permission even if the network interface is attached to an instance.

", + "DeleteNetworkInterfacePermissionRequest$DryRun": "

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

", + "DeleteNetworkInterfacePermissionResult$Return": "

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

", "DeleteNetworkInterfaceRequest$DryRun": "

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

", "DeletePlacementGroupRequest$DryRun": "

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

", "DeleteRouteRequest$DryRun": "

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

", @@ -742,6 +819,8 @@ "DeleteSubnetRequest$DryRun": "

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

", "DeleteTagsRequest$DryRun": "

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

", "DeleteVolumeRequest$DryRun": "

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

", + "DeleteVpcEndpointConnectionNotificationsRequest$DryRun": "

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

", + "DeleteVpcEndpointServiceConfigurationsRequest$DryRun": "

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

", "DeleteVpcEndpointsRequest$DryRun": "

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

", "DeleteVpcPeeringConnectionRequest$DryRun": "

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

", "DeleteVpcPeeringConnectionResult$Return": "

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

", @@ -758,17 +837,22 @@ "DescribeCustomerGatewaysRequest$DryRun": "

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

", "DescribeDhcpOptionsRequest$DryRun": "

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

", "DescribeEgressOnlyInternetGatewaysRequest$DryRun": "

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

", + "DescribeElasticGpusRequest$DryRun": "

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

", + "DescribeFpgaImageAttributeRequest$DryRun": "

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

", "DescribeFpgaImagesRequest$DryRun": "

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

", "DescribeImageAttributeRequest$DryRun": "

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

", "DescribeImagesRequest$DryRun": "

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

", "DescribeImportImageTasksRequest$DryRun": "

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

", "DescribeImportSnapshotTasksRequest$DryRun": "

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

", "DescribeInstanceAttributeRequest$DryRun": "

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

", + "DescribeInstanceCreditSpecificationsRequest$DryRun": "

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

", "DescribeInstanceStatusRequest$DryRun": "

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

", "DescribeInstanceStatusRequest$IncludeAllInstances": "

When true, includes the health status for all instances. When false, includes the health status for running instances only.

Default: false

", "DescribeInstancesRequest$DryRun": "

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

", "DescribeInternetGatewaysRequest$DryRun": "

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

", "DescribeKeyPairsRequest$DryRun": "

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

", + "DescribeLaunchTemplateVersionsRequest$DryRun": "

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

", + "DescribeLaunchTemplatesRequest$DryRun": "

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

", "DescribeMovingAddressesRequest$DryRun": "

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

", "DescribeNetworkAclsRequest$DryRun": "

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

", "DescribeNetworkInterfaceAttributeRequest$DryRun": "

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

", @@ -801,6 +885,10 @@ "DescribeVolumesRequest$DryRun": "

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

", "DescribeVpcAttributeRequest$DryRun": "

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

", "DescribeVpcClassicLinkRequest$DryRun": "

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

", + "DescribeVpcEndpointConnectionNotificationsRequest$DryRun": "

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

", + "DescribeVpcEndpointConnectionsRequest$DryRun": "

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

", + "DescribeVpcEndpointServiceConfigurationsRequest$DryRun": "

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

", + "DescribeVpcEndpointServicePermissionsRequest$DryRun": "

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

", "DescribeVpcEndpointServicesRequest$DryRun": "

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

", "DescribeVpcEndpointsRequest$DryRun": "

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

", "DescribeVpcPeeringConnectionsRequest$DryRun": "

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

", @@ -820,7 +908,7 @@ "DisableVpcClassicLinkResult$Return": "

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

", "DisassociateAddressRequest$DryRun": "

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

", "DisassociateRouteTableRequest$DryRun": "

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

", - "EbsBlockDevice$Encrypted": "

Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption.

", + "EbsBlockDevice$Encrypted": "

Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value. This is because only blank volumes can be encrypted on creation.

", "EbsBlockDevice$DeleteOnTermination": "

Indicates whether the EBS volume is deleted on instance termination.

", "EbsInstanceBlockDevice$DeleteOnTermination": "

Indicates whether the volume is deleted on instance termination.

", "EbsInstanceBlockDeviceSpecification$DeleteOnTermination": "

Indicates whether the volume is deleted on instance termination.

", @@ -828,9 +916,11 @@ "EnableVpcClassicLinkDnsSupportResult$Return": "

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

", "EnableVpcClassicLinkRequest$DryRun": "

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

", "EnableVpcClassicLinkResult$Return": "

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

", + "FpgaImage$Public": "

Indicates whether the AFI is public.

", "GetConsoleOutputRequest$DryRun": "

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

", "GetConsoleScreenshotRequest$DryRun": "

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

", "GetConsoleScreenshotRequest$WakeUp": "

When set to true, acts as keystroke input and wakes up an instance that's in standby or \"sleep\" mode.

", + "GetLaunchTemplateDataRequest$DryRun": "

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

", "GetPasswordDataRequest$DryRun": "

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

", "GetReservedInstancesExchangeQuoteRequest$DryRun": "

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

", "GetReservedInstancesExchangeQuoteResult$IsValidExchange": "

If true, the exchange is valid. If false, the exchange cannot be completed.

", @@ -843,29 +933,53 @@ "ImportKeyPairRequest$DryRun": "

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

", "ImportSnapshotRequest$DryRun": "

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

", "ImportVolumeRequest$DryRun": "

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

", - "Instance$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", + "Instance$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", "Instance$EnaSupport": "

Specifies whether enhanced networking with ENA is enabled.

", - "Instance$SourceDestCheck": "

Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", + "Instance$SourceDestCheck": "

Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", "InstanceNetworkInterface$SourceDestCheck": "

Indicates whether to validate network traffic to or from this network interface.

", "InstanceNetworkInterfaceAttachment$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", "InstanceNetworkInterfaceSpecification$AssociatePublicIpAddress": "

Indicates whether to assign a public IPv4 address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true.

", "InstanceNetworkInterfaceSpecification$DeleteOnTermination": "

If set to true, the interface is deleted when the instance is terminated. You can specify true only if creating a new network interface when launching an instance.

", "InstancePrivateIpAddress$Primary": "

Indicates whether this IPv4 address is the primary private IP address of the network interface.

", "LaunchSpecification$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

Default: false

", + "LaunchTemplateEbsBlockDevice$Encrypted": "

Indicates whether the EBS volume is encrypted.

", + "LaunchTemplateEbsBlockDevice$DeleteOnTermination": "

Indicates whether the EBS volume is deleted on instance termination.

", + "LaunchTemplateEbsBlockDeviceRequest$Encrypted": "

Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value.

", + "LaunchTemplateEbsBlockDeviceRequest$DeleteOnTermination": "

Indicates whether the EBS volume is deleted on instance termination.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$AssociatePublicIpAddress": "

Indicates whether to associate a public IPv4 address with eth0 for a new network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$AssociatePublicIpAddress": "

Associates a public IPv4 address with eth0 for a new network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", + "LaunchTemplateVersion$DefaultVersion": "

Indicates whether the version is the default version.

", + "LaunchTemplatesMonitoring$Enabled": "

Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.

", + "LaunchTemplatesMonitoringRequest$Enabled": "

Specify true to enable detailed monitoring. Otherwise, basic monitoring is enabled.

", + "ModifyFpgaImageAttributeRequest$DryRun": "

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

", "ModifyIdFormatRequest$UseLongIds": "

Indicate whether the resource should use longer IDs (17-character IDs).

", "ModifyIdentityIdFormatRequest$UseLongIds": "

Indicates whether the resource should use longer IDs (17-character IDs)

", "ModifyImageAttributeRequest$DryRun": "

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

", "ModifyInstanceAttributeRequest$DryRun": "

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

", + "ModifyInstanceCreditSpecificationRequest$DryRun": "

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

", "ModifyInstancePlacementResult$Return": "

Is true if the request succeeds, and an error otherwise.

", + "ModifyLaunchTemplateRequest$DryRun": "

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

", "ModifyNetworkInterfaceAttributeRequest$DryRun": "

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

", "ModifySnapshotAttributeRequest$DryRun": "

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

", "ModifySpotFleetRequestResponse$Return": "

Is true if the request succeeds, and an error otherwise.

", "ModifyVolumeAttributeRequest$DryRun": "

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

", "ModifyVolumeRequest$DryRun": "

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

", + "ModifyVpcEndpointConnectionNotificationRequest$DryRun": "

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

", + "ModifyVpcEndpointConnectionNotificationResult$ReturnValue": "

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

", "ModifyVpcEndpointRequest$DryRun": "

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

", - "ModifyVpcEndpointRequest$ResetPolicy": "

Specify true to reset the policy document to the default policy. The default policy allows access to the service.

", + "ModifyVpcEndpointRequest$ResetPolicy": "

(Gateway endpoint) Specify true to reset the policy document to the default policy. The default policy allows full access to the service.

", + "ModifyVpcEndpointRequest$PrivateDnsEnabled": "

(Interface endpoint) Indicate whether a private hosted zone is associated with the VPC.

", "ModifyVpcEndpointResult$Return": "

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

", + "ModifyVpcEndpointServiceConfigurationRequest$DryRun": "

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

", + "ModifyVpcEndpointServiceConfigurationRequest$AcceptanceRequired": "

Indicate whether requests to create an endpoint to your service must be accepted.

", + "ModifyVpcEndpointServiceConfigurationResult$Return": "

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

", + "ModifyVpcEndpointServicePermissionsRequest$DryRun": "

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

", + "ModifyVpcEndpointServicePermissionsResult$ReturnValue": "

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

", "ModifyVpcPeeringConnectionOptionsRequest$DryRun": "

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

", + "ModifyVpcTenancyRequest$DryRun": "

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

", + "ModifyVpcTenancyResult$ReturnValue": "

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

", "MonitorInstancesRequest$DryRun": "

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

", "MoveAddressToVpcRequest$DryRun": "

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

", "NetworkAcl$IsDefault": "

Indicates whether this is the default network ACL for the VPC.

", @@ -888,6 +1002,7 @@ "RebootInstancesRequest$DryRun": "

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

", "RegisterImageRequest$DryRun": "

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

", "RegisterImageRequest$EnaSupport": "

Set to true to enable enhanced networking with ENA for the AMI and any instances that you launch from the AMI.

This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.

", + "RejectVpcEndpointConnectionsRequest$DryRun": "

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

", "RejectVpcPeeringConnectionRequest$DryRun": "

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

", "RejectVpcPeeringConnectionResult$Return": "

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

", "ReleaseAddressRequest$DryRun": "

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

", @@ -897,14 +1012,20 @@ "ReplaceRouteRequest$DryRun": "

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

", "ReplaceRouteTableAssociationRequest$DryRun": "

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

", "ReportInstanceStatusRequest$DryRun": "

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

", + "RequestLaunchTemplateData$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.

", + "RequestLaunchTemplateData$DisableApiTermination": "

If set to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API. To change this attribute to false after launch, use ModifyInstanceAttribute.

", "RequestSpotFleetRequest$DryRun": "

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

", "RequestSpotInstancesRequest$DryRun": "

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

", "RequestSpotLaunchSpecification$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

Default: false

", "ReservedInstancesOffering$Marketplace": "

Indicates whether the offering is available through the Reserved Instance Marketplace (resale) or AWS. If it's a Reserved Instance Marketplace offering, this is true.

", + "ResetFpgaImageAttributeRequest$DryRun": "

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

", + "ResetFpgaImageAttributeResult$Return": "

Is true if the request succeeds, and an error otherwise.

", "ResetImageAttributeRequest$DryRun": "

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

", "ResetInstanceAttributeRequest$DryRun": "

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

", "ResetNetworkInterfaceAttributeRequest$DryRun": "

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

", "ResetSnapshotAttributeRequest$DryRun": "

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

", + "ResponseLaunchTemplateData$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O.

", + "ResponseLaunchTemplateData$DisableApiTermination": "

If set to true, indicates that the instance cannot be terminated using the Amazon EC2 console, command line tool, or API.

", "RestoreAddressToClassicRequest$DryRun": "

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

", "RevokeSecurityGroupEgressRequest$DryRun": "

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

", "RevokeSecurityGroupIngressRequest$DryRun": "

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

", @@ -912,7 +1033,7 @@ "RunInstancesMonitoringEnabled$Enabled": "

Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.

", "RunInstancesRequest$DisableApiTermination": "

If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute to false after launch, use ModifyInstanceAttribute. Alternatively, if you set InstanceInitiatedShutdownBehavior to terminate, you can terminate the instance by running the shutdown command from the instance.

Default: false

", "RunInstancesRequest$DryRun": "

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

", - "RunInstancesRequest$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.

Default: false

", + "RunInstancesRequest$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.

Default: false

", "RunScheduledInstancesRequest$DryRun": "

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

", "ScheduledInstanceRecurrence$OccurrenceRelativeToEnd": "

Indicates whether the occurrence is relative to the end of the specified week or month.

", "ScheduledInstanceRecurrenceRequest$OccurrenceRelativeToEnd": "

Indicates whether the occurrence is relative to the end of the specified week or month. You can't specify this value with a daily schedule.

", @@ -923,11 +1044,14 @@ "ScheduledInstancesNetworkInterface$AssociatePublicIpAddress": "

Indicates whether to assign a public IPv4 address to instances launched in a VPC. The public IPv4 address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true.

", "ScheduledInstancesNetworkInterface$DeleteOnTermination": "

Indicates whether to delete the interface when the instance is terminated.

", "ScheduledInstancesPrivateIpAddressConfig$Primary": "

Indicates whether this is a primary IPv4 address. Otherwise, this is a secondary IPv4 address.

", + "ServiceConfiguration$AcceptanceRequired": "

Indicates whether requests from other AWS accounts to create an endpoint to the service must first be accepted.

", + "ServiceDetail$VpcEndpointPolicySupported": "

Indicates whether the service supports endpoint policies.

", + "ServiceDetail$AcceptanceRequired": "

Indicates whether VPC endpoint connection requests to the service must be accepted by the service owner.

", "Snapshot$Encrypted": "

Indicates whether the snapshot is encrypted.

", "SpotFleetLaunchSpecification$EbsOptimized": "

Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

Default: false

", "SpotFleetMonitoring$Enabled": "

Enables monitoring for the instance.

Default: false

", - "SpotFleetRequestConfigData$TerminateInstancesWithExpiration": "

Indicates whether running Spot instances should be terminated when the Spot fleet request expires.

", - "SpotFleetRequestConfigData$ReplaceUnhealthyInstances": "

Indicates whether Spot fleet should replace unhealthy instances.

", + "SpotFleetRequestConfigData$TerminateInstancesWithExpiration": "

Indicates whether running Spot Instances should be terminated when the Spot Fleet request expires.

", + "SpotFleetRequestConfigData$ReplaceUnhealthyInstances": "

Indicates whether Spot Fleet should replace unhealthy instances.

", "StartInstancesRequest$DryRun": "

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

", "StopInstancesRequest$DryRun": "

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

", "StopInstancesRequest$Force": "

Forces the instances to stop. The instances do not have an opportunity to flush file system caches or file system metadata. If you use this option, you must perform file system check and repair procedures. This option is not recommended for Windows instances.

Default: false

", @@ -936,15 +1060,20 @@ "Subnet$AssignIpv6AddressOnCreation": "

Indicates whether a network interface created in this subnet (including a network interface created by RunInstances) receives an IPv6 address.

", "TerminateInstancesRequest$DryRun": "

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

", "UnmonitorInstancesRequest$DryRun": "

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

", + "UpdateSecurityGroupRuleDescriptionsEgressRequest$DryRun": "

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

", + "UpdateSecurityGroupRuleDescriptionsEgressResult$Return": "

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

", + "UpdateSecurityGroupRuleDescriptionsIngressRequest$DryRun": "

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

", + "UpdateSecurityGroupRuleDescriptionsIngressResult$Return": "

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

", "Volume$Encrypted": "

Indicates whether the volume will be encrypted.

", "VolumeAttachment$DeleteOnTermination": "

Indicates whether the EBS volume is deleted on instance termination.

", "Vpc$IsDefault": "

Indicates whether the VPC is the default VPC.

", "VpcClassicLink$ClassicLinkEnabled": "

Indicates whether the VPC is enabled for ClassicLink.

", + "VpcEndpoint$PrivateDnsEnabled": "

(Interface endpoint) Indicates whether the VPC is associated with a private hosted zone.

", "VpcPeeringConnectionOptionsDescription$AllowDnsResolutionFromRemoteVpc": "

Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC.

", "VpcPeeringConnectionOptionsDescription$AllowEgressFromLocalClassicLinkToRemoteVpc": "

Indicates whether a local ClassicLink connection can communicate with the peer VPC over the VPC peering connection.

", "VpcPeeringConnectionOptionsDescription$AllowEgressFromLocalVpcToRemoteClassicLink": "

Indicates whether a local VPC can communicate with a ClassicLink connection in the peer VPC over the VPC peering connection.

", "VpnConnectionOptions$StaticRoutesOnly": "

Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.

", - "VpnConnectionOptionsSpecification$StaticRoutesOnly": "

Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.

" + "VpnConnectionOptionsSpecification$StaticRoutesOnly": "

Indicate whether the VPN connection uses static routes only. If you are creating a VPN connection for a device that does not support BGP, you must specify true.

Default: false

" } }, "BundleIdStringList": { @@ -1036,13 +1165,13 @@ } }, "CancelSpotFleetRequestsError": { - "base": "

Describes a Spot fleet error.

", + "base": "

Describes a Spot Fleet error.

", "refs": { "CancelSpotFleetRequestsErrorItem$Error": "

The error.

" } }, "CancelSpotFleetRequestsErrorItem": { - "base": "

Describes a Spot fleet request that was not successfully canceled.

", + "base": "

Describes a Spot Fleet request that was not successfully canceled.

", "refs": { "CancelSpotFleetRequestsErrorSet$member": null } @@ -1050,7 +1179,7 @@ "CancelSpotFleetRequestsErrorSet": { "base": null, "refs": { - "CancelSpotFleetRequestsResponse$UnsuccessfulFleetRequests": "

Information about the Spot fleet requests that are not successfully canceled.

" + "CancelSpotFleetRequestsResponse$UnsuccessfulFleetRequests": "

Information about the Spot Fleet requests that are not successfully canceled.

" } }, "CancelSpotFleetRequestsRequest": { @@ -1064,7 +1193,7 @@ } }, "CancelSpotFleetRequestsSuccessItem": { - "base": "

Describes a Spot fleet request that was successfully canceled.

", + "base": "

Describes a Spot Fleet request that was successfully canceled.

", "refs": { "CancelSpotFleetRequestsSuccessSet$member": null } @@ -1072,13 +1201,13 @@ "CancelSpotFleetRequestsSuccessSet": { "base": null, "refs": { - "CancelSpotFleetRequestsResponse$SuccessfulFleetRequests": "

Information about the Spot fleet requests that are successfully canceled.

" + "CancelSpotFleetRequestsResponse$SuccessfulFleetRequests": "

Information about the Spot Fleet requests that are successfully canceled.

" } }, "CancelSpotInstanceRequestState": { "base": null, "refs": { - "CancelledSpotInstanceRequest$State": "

The state of the Spot instance request.

" + "CancelledSpotInstanceRequest$State": "

The state of the Spot Instance request.

" } }, "CancelSpotInstanceRequestsRequest": { @@ -1092,7 +1221,7 @@ } }, "CancelledSpotInstanceRequest": { - "base": "

Describes a request to cancel a Spot instance.

", + "base": "

Describes a request to cancel a Spot Instance.

", "refs": { "CancelledSpotInstanceRequestList$member": null } @@ -1100,7 +1229,19 @@ "CancelledSpotInstanceRequestList": { "base": null, "refs": { - "CancelSpotInstanceRequestsResult$CancelledSpotInstanceRequests": "

One or more Spot instance requests.

" + "CancelSpotInstanceRequestsResult$CancelledSpotInstanceRequests": "

One or more Spot Instance requests.

" + } + }, + "CidrBlock": { + "base": "

Describes an IPv4 CIDR block.

", + "refs": { + "CidrBlockSet$member": null + } + }, + "CidrBlockSet": { + "base": null, + "refs": { + "VpcPeeringConnectionVpcInfo$CidrBlockSet": "

Information about the IPv4 CIDR blocks for the VPC.

" } }, "ClassicLinkDnsSupport": { @@ -1127,6 +1268,24 @@ "DescribeClassicLinkInstancesResult$Instances": "

Information about one or more linked EC2-Classic instances.

" } }, + "ClassicLoadBalancer": { + "base": "

Describes a Classic Load Balancer.

", + "refs": { + "ClassicLoadBalancers$member": null + } + }, + "ClassicLoadBalancers": { + "base": null, + "refs": { + "ClassicLoadBalancersConfig$ClassicLoadBalancers": "

One or more Classic Load Balancers.

" + } + }, + "ClassicLoadBalancersConfig": { + "base": "

Describes the Classic Load Balancers to attach to a Spot Fleet. Spot Fleet registers the running Spot Instances with these Classic Load Balancers.

", + "refs": { + "LoadBalancersConfig$ClassicLoadBalancersConfig": "

The Classic Load Balancers.

" + } + }, "ClientData": { "base": "

Describes the client-specific data.

", "refs": { @@ -1144,6 +1303,31 @@ "refs": { } }, + "ConnectionNotification": { + "base": "

Describes a connection notification for a VPC endpoint or VPC endpoint service.

", + "refs": { + "ConnectionNotificationSet$member": null, + "CreateVpcEndpointConnectionNotificationResult$ConnectionNotification": "

Information about the notification.

" + } + }, + "ConnectionNotificationSet": { + "base": null, + "refs": { + "DescribeVpcEndpointConnectionNotificationsResult$ConnectionNotificationSet": "

One or more notifications.

" + } + }, + "ConnectionNotificationState": { + "base": null, + "refs": { + "ConnectionNotification$ConnectionNotificationState": "

The state of the notification.

" + } + }, + "ConnectionNotificationType": { + "base": null, + "refs": { + "ConnectionNotification$ConnectionNotificationType": "

The type of notification.

" + } + }, "ContainerFormat": { "base": null, "refs": { @@ -1171,6 +1355,16 @@ "ConversionTask$State": "

The state of the conversion task.

" } }, + "CopyFpgaImageRequest": { + "base": null, + "refs": { + } + }, + "CopyFpgaImageResult": { + "base": null, + "refs": { + } + }, "CopyImageRequest": { "base": "

Contains the parameters for CopyImage.

", "refs": { @@ -1201,6 +1395,26 @@ "refs": { } }, + "CreateDefaultSubnetRequest": { + "base": null, + "refs": { + } + }, + "CreateDefaultSubnetResult": { + "base": null, + "refs": { + } + }, + "CreateDefaultVpcRequest": { + "base": "

Contains the parameters for CreateDefaultVpc.

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

Contains the output of CreateDefaultVpc.

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

Contains the parameters for CreateDhcpOptions.

", "refs": { @@ -1276,6 +1490,26 @@ "refs": { } }, + "CreateLaunchTemplateRequest": { + "base": null, + "refs": { + } + }, + "CreateLaunchTemplateResult": { + "base": null, + "refs": { + } + }, + "CreateLaunchTemplateVersionRequest": { + "base": null, + "refs": { + } + }, + "CreateLaunchTemplateVersionResult": { + "base": null, + "refs": { + } + }, "CreateNatGatewayRequest": { "base": "

Contains the parameters for CreateNatGateway.

", "refs": { @@ -1301,6 +1535,16 @@ "refs": { } }, + "CreateNetworkInterfacePermissionRequest": { + "base": "

Contains the parameters for CreateNetworkInterfacePermission.

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

Contains the output of CreateNetworkInterfacePermission.

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

Contains the parameters for CreateNetworkInterface.

", "refs": { @@ -1411,6 +1655,16 @@ "refs": { } }, + "CreateVpcEndpointConnectionNotificationRequest": { + "base": null, + "refs": { + } + }, + "CreateVpcEndpointConnectionNotificationResult": { + "base": null, + "refs": { + } + }, "CreateVpcEndpointRequest": { "base": "

Contains the parameters for CreateVpcEndpoint.

", "refs": { @@ -1421,6 +1675,16 @@ "refs": { } }, + "CreateVpcEndpointServiceConfigurationRequest": { + "base": null, + "refs": { + } + }, + "CreateVpcEndpointServiceConfigurationResult": { + "base": null, + "refs": { + } + }, "CreateVpcPeeringConnectionRequest": { "base": "

Contains the parameters for CreateVpcPeeringConnection.

", "refs": { @@ -1466,6 +1730,19 @@ "refs": { } }, + "CreditSpecification": { + "base": "

Describes the credit option for CPU usage of a T2 instance.

", + "refs": { + "ResponseLaunchTemplateData$CreditSpecification": "

The credit option for CPU usage of the instance.

" + } + }, + "CreditSpecificationRequest": { + "base": "

The credit option for CPU usage of a T2 instance.

", + "refs": { + "RequestLaunchTemplateData$CreditSpecification": "

The credit option for CPU usage of the instance. Valid for T2 instances only.

", + "RunInstancesRequest$CreditSpecification": "

The credit option for CPU usage of the instance. Valid values are standard and unlimited. To change this attribute after launch, use ModifyInstanceCreditSpecification. For more information, see T2 Instances in the Amazon Elastic Compute Cloud User Guide.

Default: standard

" + } + }, "CurrencyCodeValues": { "base": null, "refs": { @@ -1504,7 +1781,7 @@ "DatafeedSubscriptionState": { "base": null, "refs": { - "SpotDatafeedSubscription$State": "

The state of the Spot instance data feed subscription.

" + "SpotDatafeedSubscription$State": "

The state of the Spot Instance data feed subscription.

" } }, "DateTime": { @@ -1536,6 +1813,10 @@ "InstanceStatusDetails$ImpairedSince": "

The time when a status check failed. For an instance that was launched and impaired, this is the time when the instance was launched.

", "InstanceStatusEvent$NotAfter": "

The latest scheduled end time for the event.

", "InstanceStatusEvent$NotBefore": "

The earliest scheduled start time for the event.

", + "LaunchTemplate$CreateTime": "

The time launch template was created.

", + "LaunchTemplateSpotMarketOptions$ValidUntil": "

The end date of the request. For a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached.

", + "LaunchTemplateSpotMarketOptionsRequest$ValidUntil": "

The end date of the request. For a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached. The default end date is 7 days from the current date.

", + "LaunchTemplateVersion$CreateTime": "

The time the version was created.

", "NatGateway$CreateTime": "

The date and time the NAT gateway was created.

", "NatGateway$DeleteTime": "

The date and time the NAT gateway was deleted, if applicable.

", "NetworkInterfaceAttachment$AttachTime": "

The timestamp indicating when the attachment initiated.

", @@ -1543,8 +1824,8 @@ "ProvisionedBandwidth$RequestTime": "

Reserved. If you need to sustain traffic greater than the documented limits, contact us through the Support Center.

", "ReportInstanceStatusRequest$EndTime": "

The time at which the reported instance health state ended.

", "ReportInstanceStatusRequest$StartTime": "

The time at which the reported instance health state began.

", - "RequestSpotInstancesRequest$ValidFrom": "

The start date of the request. If this is a one-time request, the request becomes active at this date and time and remains active until all instances launch, the request expires, or the request is canceled. If the request is persistent, the request becomes active at this date and time and remains active until it expires or is canceled.

Default: The request is effective indefinitely.

", - "RequestSpotInstancesRequest$ValidUntil": "

The end date of the request. If this is a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached.

Default: The request is effective indefinitely.

", + "RequestSpotInstancesRequest$ValidFrom": "

The start date of the request. If this is a one-time request, the request becomes active at this date and time and remains active until all instances launch, the request expires, or the request is canceled. If the request is persistent, the request becomes active at this date and time and remains active until it expires or is canceled.

", + "RequestSpotInstancesRequest$ValidUntil": "

The end date of the request. If this is a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached. The default end date is 7 days from the current date.

", "ReservedInstances$End": "

The time when the Reserved Instance expires.

", "ReservedInstances$Start": "

The date and time the Reserved Instance started.

", "ReservedInstancesListing$CreateDate": "

The time the listing was created.

", @@ -1565,11 +1846,12 @@ "Snapshot$StartTime": "

The time stamp when the snapshot was initiated.

", "SpotFleetRequestConfig$CreateTime": "

The creation date and time of the request.

", "SpotFleetRequestConfigData$ValidFrom": "

The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.

", - "SpotFleetRequestConfigData$ValidUntil": "

The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.

", - "SpotInstanceRequest$CreateTime": "

The date and time when the Spot instance request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "SpotFleetRequestConfigData$ValidUntil": "

The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot Instance requests are placed or able to fulfill the request. The default end date is 7 days from the current date.

", + "SpotInstanceRequest$CreateTime": "

The date and time when the Spot Instance request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", "SpotInstanceRequest$ValidFrom": "

The start date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The request becomes active at this date and time.

", - "SpotInstanceRequest$ValidUntil": "

The end date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). If this is a one-time request, it remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached.

", + "SpotInstanceRequest$ValidUntil": "

The end date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). If this is a one-time request, it remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached. The default end date is 7 days from the current date.

", "SpotInstanceStatus$UpdateTime": "

The date and time of the most recent status update, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "SpotMarketOptions$ValidUntil": "

The end date of the request. For a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached. The default end date is 7 days from the current date.

", "SpotPrice$Timestamp": "

The date and time the request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", "VgwTelemetry$LastStatusChange": "

The date and time of the last change in status.

", "Volume$CreateTime": "

The time stamp when volume creation was initiated.

", @@ -1579,6 +1861,7 @@ "VolumeStatusEvent$NotAfter": "

The latest end time of the event.

", "VolumeStatusEvent$NotBefore": "

The earliest start time of the event.

", "VpcEndpoint$CreationTimestamp": "

The date and time the VPC endpoint was created.

", + "VpcEndpointConnection$CreationTimestamp": "

The date and time the VPC endpoint was created.

", "VpcPeeringConnection$ExpirationTime": "

The time that an unaccepted VPC peering connection will expire.

" } }, @@ -1612,6 +1895,16 @@ "refs": { } }, + "DeleteFpgaImageRequest": { + "base": null, + "refs": { + } + }, + "DeleteFpgaImageResult": { + "base": null, + "refs": { + } + }, "DeleteInternetGatewayRequest": { "base": "

Contains the parameters for DeleteInternetGateway.

", "refs": { @@ -1622,6 +1915,50 @@ "refs": { } }, + "DeleteLaunchTemplateRequest": { + "base": null, + "refs": { + } + }, + "DeleteLaunchTemplateResult": { + "base": null, + "refs": { + } + }, + "DeleteLaunchTemplateVersionsRequest": { + "base": null, + "refs": { + } + }, + "DeleteLaunchTemplateVersionsResponseErrorItem": { + "base": "

Describes a launch template version that could not be deleted.

", + "refs": { + "DeleteLaunchTemplateVersionsResponseErrorSet$member": null + } + }, + "DeleteLaunchTemplateVersionsResponseErrorSet": { + "base": null, + "refs": { + "DeleteLaunchTemplateVersionsResult$UnsuccessfullyDeletedLaunchTemplateVersions": "

Information about the launch template versions that could not be deleted.

" + } + }, + "DeleteLaunchTemplateVersionsResponseSuccessItem": { + "base": "

Describes a launch template version that was successfully deleted.

", + "refs": { + "DeleteLaunchTemplateVersionsResponseSuccessSet$member": null + } + }, + "DeleteLaunchTemplateVersionsResponseSuccessSet": { + "base": null, + "refs": { + "DeleteLaunchTemplateVersionsResult$SuccessfullyDeletedLaunchTemplateVersions": "

Information about the launch template versions that were successfully deleted.

" + } + }, + "DeleteLaunchTemplateVersionsResult": { + "base": null, + "refs": { + } + }, "DeleteNatGatewayRequest": { "base": "

Contains the parameters for DeleteNatGateway.

", "refs": { @@ -1642,6 +1979,16 @@ "refs": { } }, + "DeleteNetworkInterfacePermissionRequest": { + "base": "

Contains the parameters for DeleteNetworkInterfacePermission.

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

Contains the output for DeleteNetworkInterfacePermission.

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

Contains the parameters for DeleteNetworkInterface.

", "refs": { @@ -1692,6 +2039,26 @@ "refs": { } }, + "DeleteVpcEndpointConnectionNotificationsRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpcEndpointConnectionNotificationsResult": { + "base": null, + "refs": { + } + }, + "DeleteVpcEndpointServiceConfigurationsRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpcEndpointServiceConfigurationsResult": { + "base": null, + "refs": { + } + }, "DeleteVpcEndpointsRequest": { "base": "

Contains the parameters for DeleteVpcEndpoints.

", "refs": { @@ -1833,6 +2200,16 @@ "refs": { } }, + "DescribeElasticGpusRequest": { + "base": null, + "refs": { + } + }, + "DescribeElasticGpusResult": { + "base": null, + "refs": { + } + }, "DescribeExportTasksRequest": { "base": "

Contains the parameters for DescribeExportTasks.

", "refs": { @@ -1853,6 +2230,16 @@ "refs": { } }, + "DescribeFpgaImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeFpgaImageAttributeResult": { + "base": null, + "refs": { + } + }, "DescribeFpgaImagesRequest": { "base": null, "refs": { @@ -1963,6 +2350,16 @@ "refs": { } }, + "DescribeInstanceCreditSpecificationsRequest": { + "base": null, + "refs": { + } + }, + "DescribeInstanceCreditSpecificationsResult": { + "base": null, + "refs": { + } + }, "DescribeInstanceStatusRequest": { "base": "

Contains the parameters for DescribeInstanceStatus.

", "refs": { @@ -2003,6 +2400,26 @@ "refs": { } }, + "DescribeLaunchTemplateVersionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeLaunchTemplateVersionsResult": { + "base": null, + "refs": { + } + }, + "DescribeLaunchTemplatesRequest": { + "base": null, + "refs": { + } + }, + "DescribeLaunchTemplatesResult": { + "base": null, + "refs": { + } + }, "DescribeMovingAddressesRequest": { "base": "

Contains the parameters for DescribeMovingAddresses.

", "refs": { @@ -2043,6 +2460,16 @@ "refs": { } }, + "DescribeNetworkInterfacePermissionsRequest": { + "base": "

Contains the parameters for DescribeNetworkInterfacePermissions.

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

Contains the output for DescribeNetworkInterfacePermissions.

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

Contains the parameters for DescribeNetworkInterfaces.

", "refs": { @@ -2353,6 +2780,46 @@ "refs": { } }, + "DescribeVpcEndpointConnectionNotificationsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointConnectionNotificationsResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointConnectionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointConnectionsResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointServiceConfigurationsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointServiceConfigurationsResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointServicePermissionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointServicePermissionsResult": { + "base": null, + "refs": { + } + }, "DescribeVpcEndpointServicesRequest": { "base": "

Contains the parameters for DescribeVpcEndpointServices.

", "refs": { @@ -2594,18 +3061,31 @@ "ImportVolumeTaskDetails$Volume": "

The volume.

" } }, - "DomainType": { - "base": null, + "DnsEntry": { + "base": "

Describes a DNS entry.

", "refs": { - "Address$Domain": "

Indicates whether this Elastic IP address is for use with instances in EC2-Classic (standard) or instances in a VPC (vpc).

", - "AllocateAddressRequest$Domain": "

Set to vpc to allocate the address for use with instances in a VPC.

Default: The address is for use with instances in EC2-Classic.

", - "AllocateAddressResult$Domain": "

Indicates whether this Elastic IP address is for use with instances in EC2-Classic (standard) or instances in a VPC (vpc).

" + "DnsEntrySet$member": null + } + }, + "DnsEntrySet": { + "base": null, + "refs": { + "VpcEndpoint$DnsEntries": "

(Interface endpoint) The DNS entries for the endpoint.

" + } + }, + "DomainType": { + "base": null, + "refs": { + "Address$Domain": "

Indicates whether this Elastic IP address is for use with instances in EC2-Classic (standard) or instances in a VPC (vpc).

", + "AllocateAddressRequest$Domain": "

Set to vpc to allocate the address for use with instances in a VPC.

Default: The address is for use with instances in EC2-Classic.

", + "AllocateAddressResult$Domain": "

Indicates whether this Elastic IP address is for use with instances in EC2-Classic (standard) or instances in a VPC (vpc).

" } }, "Double": { "base": null, "refs": { "ClientData$UploadSize": "

The size of the uploaded disk image, in GiB.

", + "LaunchTemplateOverrides$WeightedCapacity": "

The number of units provided by the specified instance type.

", "PriceSchedule$Price": "

The fixed price for the term.

", "PriceScheduleSpecification$Price": "

The fixed price for the term.

", "PricingDetail$Price": "

The price per instance.

", @@ -2662,6 +3142,85 @@ "DescribeEgressOnlyInternetGatewaysResult$EgressOnlyInternetGateways": "

Information about the egress-only Internet gateways.

" } }, + "ElasticGpuAssociation": { + "base": "

Describes the association between an instance and an Elastic GPU.

", + "refs": { + "ElasticGpuAssociationList$member": null + } + }, + "ElasticGpuAssociationList": { + "base": null, + "refs": { + "Instance$ElasticGpuAssociations": "

The Elastic GPU associated with the instance.

" + } + }, + "ElasticGpuHealth": { + "base": "

Describes the status of an Elastic GPU.

", + "refs": { + "ElasticGpus$ElasticGpuHealth": "

The status of the Elastic GPU.

" + } + }, + "ElasticGpuIdSet": { + "base": null, + "refs": { + "DescribeElasticGpusRequest$ElasticGpuIds": "

One or more Elastic GPU IDs.

" + } + }, + "ElasticGpuSet": { + "base": null, + "refs": { + "DescribeElasticGpusResult$ElasticGpuSet": "

Information about the Elastic GPUs.

" + } + }, + "ElasticGpuSpecification": { + "base": "

A specification for an Elastic GPU.

", + "refs": { + "ElasticGpuSpecificationList$member": null, + "ElasticGpuSpecifications$member": null + } + }, + "ElasticGpuSpecificationList": { + "base": null, + "refs": { + "RequestLaunchTemplateData$ElasticGpuSpecifications": "

An elastic GPU to associate with the instance.

" + } + }, + "ElasticGpuSpecificationResponse": { + "base": "

Describes an elastic GPU.

", + "refs": { + "ElasticGpuSpecificationResponseList$member": null + } + }, + "ElasticGpuSpecificationResponseList": { + "base": null, + "refs": { + "ResponseLaunchTemplateData$ElasticGpuSpecifications": "

The elastic GPU specification.

" + } + }, + "ElasticGpuSpecifications": { + "base": null, + "refs": { + "RunInstancesRequest$ElasticGpuSpecification": "

An elastic GPU to associate with the instance.

" + } + }, + "ElasticGpuState": { + "base": null, + "refs": { + "ElasticGpus$ElasticGpuState": "

The state of the Elastic GPU.

" + } + }, + "ElasticGpuStatus": { + "base": null, + "refs": { + "ElasticGpuHealth$Status": "

The health status.

" + } + }, + "ElasticGpus": { + "base": "

Describes an Elastic GPU.

", + "refs": { + "ElasticGpuSet$member": null + } + }, "EnableVgwRoutePropagationRequest": { "base": "

Contains the parameters for EnableVgwRoutePropagation.

", "refs": { @@ -2699,7 +3258,7 @@ } }, "EventInformation": { - "base": "

Describes a Spot fleet event.

", + "base": "

Describes a Spot Fleet event.

", "refs": { "HistoryRecord$EventInformation": "

Information about the event.

" } @@ -2708,14 +3267,14 @@ "base": null, "refs": { "DescribeSpotFleetRequestHistoryRequest$EventType": "

The type of events to describe. By default, all events are described.

", - "HistoryRecord$EventType": "

The event type.

" + "HistoryRecord$EventType": "

The event type.

" } }, "ExcessCapacityTerminationPolicy": { "base": null, "refs": { - "ModifySpotFleetRequestRequest$ExcessCapacityTerminationPolicy": "

Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.

", - "SpotFleetRequestConfigData$ExcessCapacityTerminationPolicy": "

Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.

" + "ModifySpotFleetRequestRequest$ExcessCapacityTerminationPolicy": "

Indicates whether running Spot Instances should be terminated if the target capacity of the Spot Fleet request is decreased below the current size of the Spot Fleet.

", + "SpotFleetRequestConfigData$ExcessCapacityTerminationPolicy": "

Indicates whether running Spot Instances should be terminated if the target capacity of the Spot Fleet request is decreased below the current size of the Spot Fleet.

" } }, "ExecutableByStringList": { @@ -2783,24 +3342,29 @@ "DescribeClassicLinkInstancesRequest$Filters": "

One or more filters.

", "DescribeCustomerGatewaysRequest$Filters": "

One or more filters.

", "DescribeDhcpOptionsRequest$Filters": "

One or more filters.

", + "DescribeElasticGpusRequest$Filters": "

One or more filters.

", "DescribeFlowLogsRequest$Filter": "

One or more filters.

", "DescribeFpgaImagesRequest$Filters": "

One or more filters.

", "DescribeHostReservationOfferingsRequest$Filter": "

One or more filters.

", "DescribeHostReservationsRequest$Filter": "

One or more filters.

", "DescribeHostsRequest$Filter": "

One or more filters.

", "DescribeIamInstanceProfileAssociationsRequest$Filters": "

One or more filters.

", - "DescribeImagesRequest$Filters": "

One or more filters.

", + "DescribeImagesRequest$Filters": "

One or more filters.

", "DescribeImportImageTasksRequest$Filters": "

Filter tasks using the task-state filter and one of the following values: active, completed, deleting, deleted.

", "DescribeImportSnapshotTasksRequest$Filters": "

One or more filters.

", + "DescribeInstanceCreditSpecificationsRequest$Filters": "

One or more filters.

", "DescribeInstanceStatusRequest$Filters": "

One or more filters.

", - "DescribeInstancesRequest$Filters": "

One or more filters.

", + "DescribeInstancesRequest$Filters": "

One or more filters.

", "DescribeInternetGatewaysRequest$Filters": "

One or more filters.

", "DescribeKeyPairsRequest$Filters": "

One or more filters.

", + "DescribeLaunchTemplateVersionsRequest$Filters": "

One or more filters.

", + "DescribeLaunchTemplatesRequest$Filters": "

One or more filters.

", "DescribeMovingAddressesRequest$Filters": "

One or more filters.

", - "DescribeNatGatewaysRequest$Filter": "

One or more filters.

", + "DescribeNatGatewaysRequest$Filter": "

One or more filters.

", "DescribeNetworkAclsRequest$Filters": "

One or more filters.

", + "DescribeNetworkInterfacePermissionsRequest$Filters": "

One or more filters.

", "DescribeNetworkInterfacesRequest$Filters": "

One or more filters.

", - "DescribePlacementGroupsRequest$Filters": "

One or more filters.

", + "DescribePlacementGroupsRequest$Filters": "

One or more filters.

", "DescribePrefixListsRequest$Filters": "

One or more filters.

", "DescribeRegionsRequest$Filters": "

One or more filters.

", "DescribeReservedInstancesListingsRequest$Filters": "

One or more filters.

", @@ -2810,27 +3374,38 @@ "DescribeRouteTablesRequest$Filters": "

One or more filters.

", "DescribeScheduledInstanceAvailabilityRequest$Filters": "

One or more filters.

", "DescribeScheduledInstancesRequest$Filters": "

One or more filters.

", - "DescribeSecurityGroupsRequest$Filters": "

One or more filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters.

", - "DescribeSnapshotsRequest$Filters": "

One or more filters.

", - "DescribeSpotInstanceRequestsRequest$Filters": "

One or more filters.

", + "DescribeSecurityGroupsRequest$Filters": "

One or more filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters.

", + "DescribeSnapshotsRequest$Filters": "

One or more filters.

", + "DescribeSpotInstanceRequestsRequest$Filters": "

One or more filters.

", "DescribeSpotPriceHistoryRequest$Filters": "

One or more filters.

", "DescribeSubnetsRequest$Filters": "

One or more filters.

", "DescribeTagsRequest$Filters": "

One or more filters.

", "DescribeVolumeStatusRequest$Filters": "

One or more filters.

", "DescribeVolumesModificationsRequest$Filters": "

One or more filters. Supported filters: volume-id, modification-state, target-size, target-iops, target-volume-type, original-size, original-iops, original-volume-type, start-time.

", - "DescribeVolumesRequest$Filters": "

One or more filters.

", + "DescribeVolumesRequest$Filters": "

One or more filters.

", "DescribeVpcClassicLinkRequest$Filters": "

One or more filters.

", - "DescribeVpcEndpointsRequest$Filters": "

One or more filters.

", - "DescribeVpcPeeringConnectionsRequest$Filters": "

One or more filters.

", - "DescribeVpcsRequest$Filters": "

One or more filters.

", + "DescribeVpcEndpointConnectionNotificationsRequest$Filters": "

One or more filters.

", + "DescribeVpcEndpointConnectionsRequest$Filters": "

One or more filters.

", + "DescribeVpcEndpointServiceConfigurationsRequest$Filters": "

One or more filters.

", + "DescribeVpcEndpointServicePermissionsRequest$Filters": "

One or more filters.

", + "DescribeVpcEndpointServicesRequest$Filters": "

One or more filters.

", + "DescribeVpcEndpointsRequest$Filters": "

One or more filters.

", + "DescribeVpcPeeringConnectionsRequest$Filters": "

One or more filters.

", + "DescribeVpcsRequest$Filters": "

One or more filters.

", "DescribeVpnConnectionsRequest$Filters": "

One or more filters.

", - "DescribeVpnGatewaysRequest$Filters": "

One or more filters.

" + "DescribeVpnGatewaysRequest$Filters": "

One or more filters.

" + } + }, + "FleetLaunchTemplateSpecification": { + "base": "

Describes a launch template.

", + "refs": { + "LaunchTemplateConfig$LaunchTemplateSpecification": "

The launch template.

" } }, "FleetType": { "base": null, "refs": { - "SpotFleetRequestConfigData$Type": "

The type of request. Indicates whether the fleet will only request the target capacity or also attempt to maintain it. When you request a certain target capacity, the fleet will only place the required bids. It will not attempt to replenish Spot instances if capacity is diminished, nor will it submit bids in alternative Spot pools if capacity is not available. When you want to maintain a certain target capacity, fleet will place the required bids to meet this target capacity. It will also automatically replenish any interrupted instances. Default: maintain.

" + "SpotFleetRequestConfigData$Type": "

The type of request. Indicates whether the fleet will only request the target capacity or also attempt to maintain it. When you request a certain target capacity, the fleet will only place the required requests. It will not attempt to replenish Spot Instances if capacity is diminished, nor will it submit requests in alternative Spot pools if capacity is not available. When you want to maintain a certain target capacity, fleet will place the required requests to meet this target capacity. It will also automatically replenish any interrupted instances. Default: maintain.

" } }, "Float": { @@ -2866,6 +3441,20 @@ "FpgaImageList$member": null } }, + "FpgaImageAttribute": { + "base": "

Describes an Amazon FPGA image (AFI) attribute.

", + "refs": { + "DescribeFpgaImageAttributeResult$FpgaImageAttribute": "

Information about the attribute.

", + "ModifyFpgaImageAttributeResult$FpgaImageAttribute": "

Information about the attribute.

" + } + }, + "FpgaImageAttributeName": { + "base": null, + "refs": { + "DescribeFpgaImageAttributeRequest$Attribute": "

The AFI attribute.

", + "ModifyFpgaImageAttributeRequest$Attribute": "

The name of the attribute.

" + } + }, "FpgaImageIdList": { "base": null, "refs": { @@ -2929,6 +3518,16 @@ "refs": { } }, + "GetLaunchTemplateDataRequest": { + "base": null, + "refs": { + } + }, + "GetLaunchTemplateDataResult": { + "base": null, + "refs": { + } + }, "GetPasswordDataRequest": { "base": "

Contains the parameters for GetPasswordData.

", "refs": { @@ -2954,6 +3553,7 @@ "refs": { "AttachClassicLinkVpcRequest$Groups": "

The ID of one or more of the VPC's security groups. You cannot specify security groups from a different VPC.

", "DescribeSecurityGroupsRequest$GroupIds": "

One or more security group IDs. Required for security groups in a nondefault VPC.

Default: Describes all your security groups.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$Groups": "

The IDs of one or more security groups.

", "ModifyInstanceAttributeRequest$Groups": "

[EC2-VPC] Changes the security groups of the instance. You must specify at least one security group, even if it's just the default security group for the VPC. You must specify the security group ID, not the security group name.

" } }, @@ -2977,6 +3577,12 @@ "SpotFleetLaunchSpecification$SecurityGroups": "

One or more security groups. When requesting instances in a VPC, you must specify the IDs of the security groups. When requesting instances in EC2-Classic, you can specify the names or the IDs of the security groups.

" } }, + "GroupIdentifierSet": { + "base": null, + "refs": { + "VpcEndpoint$Groups": "

(Interface endpoint) Information about the security groups associated with the network interface.

" + } + }, "GroupIds": { "base": null, "refs": { @@ -2991,7 +3597,7 @@ } }, "HistoryRecord": { - "base": "

Describes an event in the history of the Spot fleet request.

", + "base": "

Describes an event in the history of the Spot Fleet request.

", "refs": { "HistoryRecords$member": null } @@ -2999,7 +3605,7 @@ "HistoryRecords": { "base": null, "refs": { - "DescribeSpotFleetRequestHistoryResponse$HistoryRecords": "

Information about the events in the history of the Spot fleet request.

" + "DescribeSpotFleetRequestHistoryResponse$HistoryRecords": "

Information about the events in the history of the Spot Fleet request.

" } }, "Host": { @@ -3361,6 +3967,30 @@ "ReservedInstancesListing$InstanceCounts": "

The number of instances in this state.

" } }, + "InstanceCreditSpecification": { + "base": "

Describes the credit option for CPU usage of a T2 instance.

", + "refs": { + "InstanceCreditSpecificationList$member": null + } + }, + "InstanceCreditSpecificationList": { + "base": null, + "refs": { + "DescribeInstanceCreditSpecificationsResult$InstanceCreditSpecifications": "

Information about the credit option for CPU usage of an instance.

" + } + }, + "InstanceCreditSpecificationListRequest": { + "base": null, + "refs": { + "ModifyInstanceCreditSpecificationRequest$InstanceCreditSpecifications": "

Information about the credit option for CPU usage.

" + } + }, + "InstanceCreditSpecificationRequest": { + "base": "

Describes the credit option for CPU usage of a T2 instance.

", + "refs": { + "InstanceCreditSpecificationListRequest$member": null + } + }, "InstanceExportDetails": { "base": "

Describes an instance to export.

", "refs": { @@ -3383,6 +4013,7 @@ "base": null, "refs": { "DescribeClassicLinkInstancesRequest$InstanceIds": "

One or more instance IDs. Must be instances linked to a VPC through ClassicLink.

", + "DescribeInstanceCreditSpecificationsRequest$InstanceIds": "

One or more instance IDs.

Default: Describes all your instances.

Constraints: Maximum 1000 explicitly specified instance IDs.

", "DescribeInstanceStatusRequest$InstanceIds": "

One or more instance IDs.

Default: Describes all your instances.

Constraints: Maximum 100 explicitly specified instance IDs.

", "DescribeInstancesRequest$InstanceIds": "

One or more instance IDs.

Default: Describes all your instances.

", "MonitorInstancesRequest$InstanceIds": "

One or more instance IDs.

", @@ -3394,6 +4025,17 @@ "UnmonitorInstancesRequest$InstanceIds": "

One or more instance IDs.

" } }, + "InstanceInterruptionBehavior": { + "base": null, + "refs": { + "LaunchTemplateSpotMarketOptions$InstanceInterruptionBehavior": "

The behavior when a Spot Instance is interrupted.

", + "LaunchTemplateSpotMarketOptionsRequest$InstanceInterruptionBehavior": "

The behavior when a Spot Instance is interrupted. The default is terminate.

", + "RequestSpotInstancesRequest$InstanceInterruptionBehavior": "

The behavior when a Spot Instance is interrupted. The default is terminate.

", + "SpotFleetRequestConfigData$InstanceInterruptionBehavior": "

The behavior when a Spot Instance is interrupted. The default is terminate.

", + "SpotInstanceRequest$InstanceInterruptionBehavior": "

The behavior when a Spot Instance is interrupted.

", + "SpotMarketOptions$InstanceInterruptionBehavior": "

The behavior when a Spot Instance is interrupted. The default is terminate.

" + } + }, "InstanceIpv6Address": { "base": "

Describes an IPv6 address.

", "refs": { @@ -3406,13 +4048,26 @@ "CreateNetworkInterfaceRequest$Ipv6Addresses": "

One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses.

", "InstanceNetworkInterface$Ipv6Addresses": "

One or more IPv6 addresses associated with the network interface.

", "InstanceNetworkInterfaceSpecification$Ipv6Addresses": "

One or more IPv6 addresses to assign to the network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$Ipv6Addresses": "

The IPv6 addresses for the network interface.

", "RunInstancesRequest$Ipv6Addresses": "

[EC2-VPC] Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch.

" } }, + "InstanceIpv6AddressListRequest": { + "base": null, + "refs": { + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$Ipv6Addresses": "

One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses.

" + } + }, + "InstanceIpv6AddressRequest": { + "base": "

Describes an IPv6 address.

", + "refs": { + "InstanceIpv6AddressListRequest$member": null + } + }, "InstanceLifecycleType": { "base": null, "refs": { - "Instance$InstanceLifecycle": "

Indicates whether this is a Spot instance or a Scheduled Instance.

" + "Instance$InstanceLifecycle": "

Indicates whether this is a Spot Instance or a Scheduled Instance.

" } }, "InstanceList": { @@ -3421,6 +4076,12 @@ "Reservation$Instances": "

One or more instances.

" } }, + "InstanceMarketOptionsRequest": { + "base": "

Describes the market (purchasing) option for the instances.

", + "refs": { + "RunInstancesRequest$InstanceMarketOptions": "

The market (purchasing) option for the instances.

" + } + }, "InstanceMonitoring": { "base": "

Describes the monitoring of an instance.

", "refs": { @@ -3566,19 +4227,22 @@ "Instance$InstanceType": "

The instance type.

", "InstanceTypeList$member": null, "LaunchSpecification$InstanceType": "

The instance type.

", + "LaunchTemplateOverrides$InstanceType": "

The instance type.

", + "RequestLaunchTemplateData$InstanceType": "

The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

", "RequestSpotLaunchSpecification$InstanceType": "

The instance type.

", "ReservedInstances$InstanceType": "

The instance type on which the Reserved Instance can be used.

", "ReservedInstancesConfiguration$InstanceType": "

The instance type for the modified Reserved Instances.

", "ReservedInstancesOffering$InstanceType": "

The instance type on which the Reserved Instance can be used.

", + "ResponseLaunchTemplateData$InstanceType": "

The instance type.

", "RunInstancesRequest$InstanceType": "

The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

Default: m1.small

", - "SpotFleetLaunchSpecification$InstanceType": "

The instance type. Note that T2 and HS1 instance types are not supported.

", - "SpotPrice$InstanceType": "

The instance type. Note that T2 and HS1 instance types are not supported.

" + "SpotFleetLaunchSpecification$InstanceType": "

The instance type.

", + "SpotPrice$InstanceType": "

The instance type.

" } }, "InstanceTypeList": { "base": null, "refs": { - "DescribeSpotPriceHistoryRequest$InstanceTypes": "

Filters the results by the specified instance types. Note that T2 and HS1 instance types are not supported.

" + "DescribeSpotPriceHistoryRequest$InstanceTypes": "

Filters the results by the specified instance types.

" } }, "Integer": { @@ -3588,10 +4252,10 @@ "AssignIpv6AddressesRequest$Ipv6AddressCount": "

The number of IPv6 addresses to assign to the network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses.

", "AssignPrivateIpAddressesRequest$SecondaryPrivateIpAddressCount": "

The number of secondary IP addresses to assign to the network interface. You can't specify this parameter when also specifying private IP addresses.

", "AttachNetworkInterfaceRequest$DeviceIndex": "

The index of the device for the network interface attachment.

", - "AuthorizeSecurityGroupEgressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.

", - "AuthorizeSecurityGroupEgressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.

", - "AuthorizeSecurityGroupIngressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. For the ICMP/ICMPv6 type number, use -1 to specify all types.

", - "AuthorizeSecurityGroupIngressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code number. For the ICMP/ICMPv6 code number, use -1 to specify all codes.

", + "AuthorizeSecurityGroupEgressRequest$FromPort": "

Not supported. Use a set of IP permissions to specify the port.

", + "AuthorizeSecurityGroupEgressRequest$ToPort": "

Not supported. Use a set of IP permissions to specify the port.

", + "AuthorizeSecurityGroupIngressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. For the ICMP/ICMPv6 type number, use -1 to specify all types. If you specify all ICMP/ICMPv6 types, you must specify all codes.

", + "AuthorizeSecurityGroupIngressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code number. For the ICMP/ICMPv6 code number, use -1 to specify all codes. If you specify all ICMP/ICMPv6 types, you must specify all codes.

", "AvailableCapacity$AvailableVCpus": "

The number of vCPUs available on the Dedicated Host.

", "CreateCustomerGatewayRequest$BgpAsn": "

For devices that support BGP, the customer gateway's BGP ASN.

Default: 65000

", "CreateNetworkAclEntryRequest$RuleNumber": "

The rule number for the entry (for example, 100). ACL entries are processed in ascending order by rule number.

Constraints: Positive integer from 1 to 32766. The range 32767 to 65535 is reserved for internal use.

", @@ -3603,6 +4267,8 @@ "DeleteNetworkAclEntryRequest$RuleNumber": "

The rule number of the entry to delete.

", "DescribeClassicLinkInstancesRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the instance IDs parameter in the same request.

Constraint: If the value is greater than 1000, we return only 1000 items.

", "DescribeEgressOnlyInternetGatewaysRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned.

", + "DescribeElasticGpusRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000.

", + "DescribeElasticGpusResult$MaxResults": "

The total number of items to return. If the total number of items available is more than the value specified in max-items then a Next-Token will be provided in the output that you can use to resume pagination.

", "DescribeFlowLogsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the flow log IDs parameter in the same request.

", "DescribeHostReservationOfferingsRequest$MaxDuration": "

This is the maximum duration of the reservation you'd like to purchase, specified in seconds. Reservations are available in one-year and three-year terms. The number of seconds specified must be the number of seconds in a year (365x24x60x60) times one of the supported durations (1 or 3). For example, specify 94608000 for three years.

", "DescribeHostReservationOfferingsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500; if maxResults is given a larger value than 500, you will receive an error.

", @@ -3611,10 +4277,14 @@ "DescribeHostsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned nextToken value. This value can be between 5 and 500; if maxResults is given a larger value than 500, you will receive an error. You cannot specify this parameter and the host IDs parameter in the same request.

", "DescribeImportImageTasksRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

", "DescribeImportSnapshotTasksRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

", + "DescribeInstanceCreditSpecificationsRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter in the same call.

", "DescribeInstanceStatusRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter in the same call.

", "DescribeInstancesRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter or tag filters in the same call.

", + "DescribeLaunchTemplateVersionsRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000.

", + "DescribeLaunchTemplatesRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000.

", "DescribeMovingAddressesRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value outside of this range, an error is returned.

Default: If no value is provided, the default is 1000.

", "DescribeNatGatewaysRequest$MaxResults": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

Constraint: If the value specified is greater than 1000, we return only 1000 items.

", + "DescribeNetworkInterfacePermissionsRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. If this parameter is not specified, up to 50 results are returned by default.

", "DescribePrefixListsRequest$MaxResults": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

Constraint: If the value specified is greater than 1000, we return only 1000 items.

", "DescribeReservedInstancesOfferingsRequest$MaxInstanceCount": "

The maximum number of instances to filter when searching for offerings.

Default: 20

", "DescribeReservedInstancesOfferingsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. The maximum is 100.

Default: 100

", @@ -3622,6 +4292,7 @@ "DescribeScheduledInstanceAvailabilityRequest$MaxSlotDurationInHours": "

The maximum available duration, in hours. This value must be greater than MinSlotDurationInHours and less than 1,720.

", "DescribeScheduledInstanceAvailabilityRequest$MinSlotDurationInHours": "

The minimum available duration, in hours. The minimum required duration is 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours.

", "DescribeScheduledInstancesRequest$MaxResults": "

The maximum number of results to return in a single call. This value can be between 5 and 300. The default value is 100. To retrieve the remaining results, make another call with the returned NextToken value.

", + "DescribeSecurityGroupsRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned NextToken value. This value can be between 5 and 1000.

", "DescribeSnapshotsRequest$MaxResults": "

The maximum number of snapshot results returned by DescribeSnapshots in paginated output. When this parameter is used, DescribeSnapshots only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another DescribeSnapshots request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeSnapshots returns all results. You cannot specify this parameter and the snapshot IDs parameter in the same request.

", "DescribeSpotFleetInstancesRequest$MaxResults": "

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", "DescribeSpotFleetRequestHistoryRequest$MaxResults": "

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", @@ -3631,6 +4302,10 @@ "DescribeVolumeStatusRequest$MaxResults": "

The maximum number of volume results returned by DescribeVolumeStatus in paginated output. When this parameter is used, the request only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeVolumeStatus returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.

", "DescribeVolumesModificationsRequest$MaxResults": "

The maximum number of results (up to a limit of 500) to be returned in a paginated request.

", "DescribeVolumesRequest$MaxResults": "

The maximum number of volume results returned by DescribeVolumes in paginated output. When this parameter is used, DescribeVolumes only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another DescribeVolumes request with the returned NextToken value. This value can be between 5 and 500; if MaxResults is given a value larger than 500, only 500 results are returned. If this parameter is not used, then DescribeVolumes returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.

", + "DescribeVpcEndpointConnectionNotificationsRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned NextToken value.

", + "DescribeVpcEndpointConnectionsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned.

", + "DescribeVpcEndpointServiceConfigurationsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned.

", + "DescribeVpcEndpointServicePermissionsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned.

", "DescribeVpcEndpointServicesRequest$MaxResults": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

Constraint: If the value is greater than 1000, we return only 1000 items.

", "DescribeVpcEndpointsRequest$MaxResults": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

Constraint: If the value is greater than 1000, we return only 1000 items.

", "EbsBlockDevice$Iops": "

The number of I/O operations per second (IOPS) that the volume supports. For io1, this represents the number of IOPS that are provisioned for the volume. For gp2, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide.

Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for gp2 volumes.

Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes.

", @@ -3652,8 +4327,20 @@ "InstanceNetworkInterfaceSpecification$Ipv6AddressCount": "

A number of IPv6 addresses to assign to the network interface. Amazon EC2 chooses the IPv6 addresses from the range of the subnet. You cannot specify this option and the option to assign specific IPv6 addresses in the same request. You can specify this option if you've specified a minimum number of instances to launch.

", "InstanceNetworkInterfaceSpecification$SecondaryPrivateIpAddressCount": "

The number of secondary private IPv4 addresses. You can't specify this option and specify more than one private IP address using the private IP addresses option. You cannot specify this option if you're launching more than one instance in a RunInstances request.

", "InstanceState$Code": "

The low byte represents the state. The high byte is an opaque internal value and should be ignored.

", - "IpPermission$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types.

", - "IpPermission$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes for the specified ICMP type.

", + "IpPermission$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.

", + "IpPermission$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes for the specified ICMP type. If you specify all ICMP/ICMPv6 types, you must specify all codes.

", + "LaunchTemplateEbsBlockDevice$Iops": "

The number of I/O operations per second (IOPS) that the volume supports.

", + "LaunchTemplateEbsBlockDevice$VolumeSize": "

The size of the volume, in GiB.

", + "LaunchTemplateEbsBlockDeviceRequest$Iops": "

The number of I/O operations per second (IOPS) that the volume supports. For io1, this represents the number of IOPS that are provisioned for the volume. For gp2, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide.

Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes.

", + "LaunchTemplateEbsBlockDeviceRequest$VolumeSize": "

The size of the volume, in GiB.

Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$DeviceIndex": "

The device index for the network interface attachment.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$Ipv6AddressCount": "

The number of IPv6 addresses for the network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$SecondaryPrivateIpAddressCount": "

The number of secondary private IPv4 addresses for the network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$DeviceIndex": "

The device index for the network interface attachment.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$Ipv6AddressCount": "

The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$SecondaryPrivateIpAddressCount": "

The number of secondary private IPv4 addresses to assign to a network interface.

", + "LaunchTemplateSpotMarketOptions$BlockDurationMinutes": "

The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).

", + "LaunchTemplateSpotMarketOptionsRequest$BlockDurationMinutes": "

The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).

", "ModifySpotFleetRequestRequest$TargetCapacity": "

The size of the fleet.

", "ModifyVolumeRequest$Size": "

Target size in GiB of the volume to be modified. Target volume size must be greater than or equal to than the existing size of the volume. For information about available EBS volume sizes, see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html.

Default: If no size is specified, the existing size is retained.

", "ModifyVolumeRequest$Iops": "

Target IOPS rate of the volume to be modified.

Only valid for Provisioned IOPS SSD (io1) volumes. For more information about io1 IOPS configuration, see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops.

Default: If no IOPS value is specified, the existing value is retained.

", @@ -3668,12 +4355,12 @@ "PurchaseRequest$InstanceCount": "

The number of instances.

", "PurchaseReservedInstancesOfferingRequest$InstanceCount": "

The number of Reserved Instances to purchase.

", "ReplaceNetworkAclEntryRequest$RuleNumber": "

The rule number of the entry to replace.

", - "RequestSpotInstancesRequest$BlockDurationMinutes": "

The required duration for the Spot instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).

The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.

Note that you can't specify an Availability Zone group or a launch group if you specify a duration.

", - "RequestSpotInstancesRequest$InstanceCount": "

The maximum number of Spot instances to launch.

Default: 1

", + "RequestSpotInstancesRequest$BlockDurationMinutes": "

The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).

The duration period starts as soon as your Spot Instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two-minute warning before it terminates.

Note that you can't specify an Availability Zone group or a launch group if you specify a duration.

", + "RequestSpotInstancesRequest$InstanceCount": "

The maximum number of Spot Instances to launch.

Default: 1

", "ReservedInstances$InstanceCount": "

The number of reservations purchased.

", "ReservedInstancesConfiguration$InstanceCount": "

The number of modified Reserved Instances.

", - "RevokeSecurityGroupEgressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.

", - "RevokeSecurityGroupEgressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.

", + "RevokeSecurityGroupEgressRequest$FromPort": "

Not supported. Use a set of IP permissions to specify the port.

", + "RevokeSecurityGroupEgressRequest$ToPort": "

Not supported. Use a set of IP permissions to specify the port.

", "RevokeSecurityGroupIngressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.

", "RevokeSecurityGroupIngressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.

", "RunInstancesRequest$Ipv6AddressCount": "

[EC2-VPC] A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. You cannot specify this option and the option to assign specific IPv6 addresses in the same request. You can specify this option if you've specified a minimum number of instances to launch.

", @@ -3696,8 +4383,9 @@ "ScheduledInstancesNetworkInterface$Ipv6AddressCount": "

The number of IPv6 addresses to assign to the network interface. The IPv6 addresses are automatically selected from the subnet range.

", "ScheduledInstancesNetworkInterface$SecondaryPrivateIpAddressCount": "

The number of secondary private IPv4 addresses.

", "Snapshot$VolumeSize": "

The size of the volume, in GiB.

", - "SpotFleetRequestConfigData$TargetCapacity": "

The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O.

", - "SpotInstanceRequest$BlockDurationMinutes": "

The duration for the Spot instance, in minutes.

", + "SpotFleetRequestConfigData$TargetCapacity": "

The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is maintain, you can specify a target capacity of 0 and add capacity later.

", + "SpotInstanceRequest$BlockDurationMinutes": "

The duration for the Spot Instance, in minutes.

", + "SpotMarketOptions$BlockDurationMinutes": "

The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).

", "StaleIpPermission$FromPort": "

The start of the port range for the TCP and UDP protocols, or an ICMP type number. A value of -1 indicates all ICMP types.

", "StaleIpPermission$ToPort": "

The end of the port range for the TCP and UDP protocols, or an ICMP type number. A value of -1 indicates all ICMP types.

", "Subnet$AvailableIpAddressCount": "

The number of unused private IPv4 addresses in the subnet. Note that the IPv4 addresses for any stopped instances are considered unavailable.

", @@ -3712,6 +4400,13 @@ "VolumeModification$OriginalIops": "

Original IOPS rate of the volume being modified.

" } }, + "InterfacePermissionType": { + "base": null, + "refs": { + "CreateNetworkInterfacePermissionRequest$Permission": "

The type of permission to grant.

", + "NetworkInterfacePermission$Permission": "

The type of permission.

" + } + }, "InternetGateway": { "base": "

Describes an Internet gateway.

", "refs": { @@ -3739,7 +4434,7 @@ } }, "IpPermission": { - "base": "

Describes a security group rule.

", + "base": "

Describes a set of permissions for a security group rule.

", "refs": { "IpPermissionList$member": null } @@ -3747,12 +4442,14 @@ "IpPermissionList": { "base": null, "refs": { - "AuthorizeSecurityGroupEgressRequest$IpPermissions": "

A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.

", - "AuthorizeSecurityGroupIngressRequest$IpPermissions": "

A set of IP permissions. Can be used to specify multiple rules in a single command.

", - "RevokeSecurityGroupEgressRequest$IpPermissions": "

A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.

", - "RevokeSecurityGroupIngressRequest$IpPermissions": "

A set of IP permissions. You can't specify a source security group and a CIDR IP address range.

", + "AuthorizeSecurityGroupEgressRequest$IpPermissions": "

One or more sets of IP permissions. You can't specify a destination security group and a CIDR IP address range in the same set of permissions.

", + "AuthorizeSecurityGroupIngressRequest$IpPermissions": "

One or more sets of IP permissions. Can be used to specify multiple rules in a single command.

", + "RevokeSecurityGroupEgressRequest$IpPermissions": "

One or more sets of IP permissions. You can't specify a destination security group and a CIDR IP address range in the same set of permissions.

", + "RevokeSecurityGroupIngressRequest$IpPermissions": "

One or more sets of IP permissions. You can't specify a source security group and a CIDR IP address range in the same set of permissions.

", "SecurityGroup$IpPermissions": "

One or more inbound rules associated with the security group.

", - "SecurityGroup$IpPermissionsEgress": "

[EC2-VPC] One or more outbound rules associated with the security group.

" + "SecurityGroup$IpPermissionsEgress": "

[EC2-VPC] One or more outbound rules associated with the security group.

", + "UpdateSecurityGroupRuleDescriptionsEgressRequest$IpPermissions": "

The IP permissions for the security group rule.

", + "UpdateSecurityGroupRuleDescriptionsIngressRequest$IpPermissions": "

The IP permissions for the security group rule.

" } }, "IpRange": { @@ -3841,47 +4538,316 @@ "LaunchPermissionList$member": null } }, - "LaunchPermissionList": { + "LaunchPermissionList": { + "base": null, + "refs": { + "ImageAttribute$LaunchPermissions": "

One or more launch permissions.

", + "LaunchPermissionModifications$Add": "

The AWS account ID to add to the list of launch permissions for the AMI.

", + "LaunchPermissionModifications$Remove": "

The AWS account ID to remove from the list of launch permissions for the AMI.

" + } + }, + "LaunchPermissionModifications": { + "base": "

Describes a launch permission modification.

", + "refs": { + "ModifyImageAttributeRequest$LaunchPermission": "

A new launch permission for the AMI.

" + } + }, + "LaunchSpecification": { + "base": "

Describes the launch specification for an instance.

", + "refs": { + "SpotInstanceRequest$LaunchSpecification": "

Additional information for launching instances.

" + } + }, + "LaunchSpecsList": { + "base": null, + "refs": { + "SpotFleetRequestConfigData$LaunchSpecifications": "

The launch specifications for the Spot Fleet request.

" + } + }, + "LaunchTemplate": { + "base": "

Describes a launch template.

", + "refs": { + "CreateLaunchTemplateResult$LaunchTemplate": "

Information about the launch template.

", + "DeleteLaunchTemplateResult$LaunchTemplate": "

Information about the launch template.

", + "LaunchTemplateSet$member": null, + "ModifyLaunchTemplateResult$LaunchTemplate": "

Information about the launch template.

" + } + }, + "LaunchTemplateBlockDeviceMapping": { + "base": "

Describes a block device mapping.

", + "refs": { + "LaunchTemplateBlockDeviceMappingList$member": null + } + }, + "LaunchTemplateBlockDeviceMappingList": { + "base": null, + "refs": { + "ResponseLaunchTemplateData$BlockDeviceMappings": "

The block device mappings.

" + } + }, + "LaunchTemplateBlockDeviceMappingRequest": { + "base": "

Describes a block device mapping.

", + "refs": { + "LaunchTemplateBlockDeviceMappingRequestList$member": null + } + }, + "LaunchTemplateBlockDeviceMappingRequestList": { + "base": null, + "refs": { + "RequestLaunchTemplateData$BlockDeviceMappings": "

The block device mapping.

Supplying both a snapshot ID and an encryption value as arguments for block-device mapping results in an error. This is because only blank volumes can be encrypted on start, and these are not created from a snapshot. If a snapshot is the basis for the volume, it contains data by definition and its encryption status cannot be changed using this action.

" + } + }, + "LaunchTemplateConfig": { + "base": "

Describes a launch template and overrides.

", + "refs": { + "LaunchTemplateConfigList$member": null + } + }, + "LaunchTemplateConfigList": { + "base": null, + "refs": { + "SpotFleetRequestConfigData$LaunchTemplateConfigs": "

The launch template and overrides.

" + } + }, + "LaunchTemplateEbsBlockDevice": { + "base": "

Describes a block device for an EBS volume.

", + "refs": { + "LaunchTemplateBlockDeviceMapping$Ebs": "

Information about the block device for an EBS volume.

" + } + }, + "LaunchTemplateEbsBlockDeviceRequest": { + "base": "

The parameters for a block device for an EBS volume.

", + "refs": { + "LaunchTemplateBlockDeviceMappingRequest$Ebs": "

Parameters used to automatically set up EBS volumes when the instance is launched.

" + } + }, + "LaunchTemplateErrorCode": { + "base": null, + "refs": { + "ResponseError$Code": "

The error code.

" + } + }, + "LaunchTemplateIamInstanceProfileSpecification": { + "base": "

Describes an IAM instance profile.

", + "refs": { + "ResponseLaunchTemplateData$IamInstanceProfile": "

The IAM instance profile.

" + } + }, + "LaunchTemplateIamInstanceProfileSpecificationRequest": { + "base": "

An IAM instance profile.

", + "refs": { + "RequestLaunchTemplateData$IamInstanceProfile": "

The IAM instance profile.

" + } + }, + "LaunchTemplateInstanceMarketOptions": { + "base": "

The market (purchasing) option for the instances.

", + "refs": { + "ResponseLaunchTemplateData$InstanceMarketOptions": "

The market (purchasing) option for the instances.

" + } + }, + "LaunchTemplateInstanceMarketOptionsRequest": { + "base": "

The market (purchasing) option for the instances.

", + "refs": { + "RequestLaunchTemplateData$InstanceMarketOptions": "

The market (purchasing) option for the instances.

" + } + }, + "LaunchTemplateInstanceNetworkInterfaceSpecification": { + "base": "

Describes a network interface.

", + "refs": { + "LaunchTemplateInstanceNetworkInterfaceSpecificationList$member": null + } + }, + "LaunchTemplateInstanceNetworkInterfaceSpecificationList": { + "base": null, + "refs": { + "ResponseLaunchTemplateData$NetworkInterfaces": "

The network interfaces.

" + } + }, + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest": { + "base": "

The parameters for a network interface.

", + "refs": { + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList$member": null + } + }, + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList": { + "base": null, + "refs": { + "RequestLaunchTemplateData$NetworkInterfaces": "

One or more network interfaces.

" + } + }, + "LaunchTemplateName": { + "base": null, + "refs": { + "CreateLaunchTemplateRequest$LaunchTemplateName": "

A name for the launch template.

", + "CreateLaunchTemplateVersionRequest$LaunchTemplateName": "

The name of the launch template. You must specify either the launch template ID or launch template name in the request.

", + "DeleteLaunchTemplateRequest$LaunchTemplateName": "

The name of the launch template. You must specify either the launch template ID or launch template name in the request.

", + "DeleteLaunchTemplateVersionsRequest$LaunchTemplateName": "

The name of the launch template. You must specify either the launch template ID or launch template name in the request.

", + "DescribeLaunchTemplateVersionsRequest$LaunchTemplateName": "

The name of the launch template. You must specify either the launch template ID or launch template name in the request.

", + "FleetLaunchTemplateSpecification$LaunchTemplateName": "

The name of the launch template. You must specify either a template name or a template ID.

", + "LaunchTemplate$LaunchTemplateName": "

The name of the launch template.

", + "LaunchTemplateNameStringList$member": null, + "LaunchTemplateVersion$LaunchTemplateName": "

The name of the launch template.

", + "ModifyLaunchTemplateRequest$LaunchTemplateName": "

The name of the launch template. You must specify either the launch template ID or launch template name in the request.

" + } + }, + "LaunchTemplateNameStringList": { + "base": null, + "refs": { + "DescribeLaunchTemplatesRequest$LaunchTemplateNames": "

One or more launch template names.

" + } + }, + "LaunchTemplateOverrides": { + "base": "

Describes overrides for a launch template.

", + "refs": { + "LaunchTemplateOverridesList$member": null + } + }, + "LaunchTemplateOverridesList": { + "base": null, + "refs": { + "LaunchTemplateConfig$Overrides": "

Any parameters that you specify override the same parameters in the launch template.

" + } + }, + "LaunchTemplatePlacement": { + "base": "

Describes the placement of an instance.

", + "refs": { + "ResponseLaunchTemplateData$Placement": "

The placement of the instance.

" + } + }, + "LaunchTemplatePlacementRequest": { + "base": "

The placement for the instance.

", + "refs": { + "RequestLaunchTemplateData$Placement": "

The placement for the instance.

" + } + }, + "LaunchTemplateSet": { + "base": null, + "refs": { + "DescribeLaunchTemplatesResult$LaunchTemplates": "

Information about the launch templates.

" + } + }, + "LaunchTemplateSpecification": { + "base": "

The launch template to use. You must specify either the launch template ID or launch template name in the request.

", + "refs": { + "RunInstancesRequest$LaunchTemplate": "

The launch template to use to launch the instances. Any parameters that you specify in RunInstances override the same parameters in the launch template.

" + } + }, + "LaunchTemplateSpotMarketOptions": { + "base": "

The options for Spot Instances.

", + "refs": { + "LaunchTemplateInstanceMarketOptions$SpotOptions": "

The options for Spot Instances.

" + } + }, + "LaunchTemplateSpotMarketOptionsRequest": { + "base": "

The options for Spot Instances.

", + "refs": { + "LaunchTemplateInstanceMarketOptionsRequest$SpotOptions": "

The options for Spot Instances.

" + } + }, + "LaunchTemplateTagSpecification": { + "base": "

The tag specification for the launch template.

", + "refs": { + "LaunchTemplateTagSpecificationList$member": null + } + }, + "LaunchTemplateTagSpecificationList": { + "base": null, + "refs": { + "ResponseLaunchTemplateData$TagSpecifications": "

The tags.

" + } + }, + "LaunchTemplateTagSpecificationRequest": { + "base": "

The tags specification for the launch template.

", + "refs": { + "LaunchTemplateTagSpecificationRequestList$member": null + } + }, + "LaunchTemplateTagSpecificationRequestList": { + "base": null, + "refs": { + "RequestLaunchTemplateData$TagSpecifications": "

The tags to apply to the resources during launch. You can tag instances and volumes. The specified tags are applied to all instances or volumes that are created during launch.

" + } + }, + "LaunchTemplateVersion": { + "base": "

Describes a launch template version.

", + "refs": { + "CreateLaunchTemplateVersionResult$LaunchTemplateVersion": "

Information about the launch template version.

", + "LaunchTemplateVersionSet$member": null + } + }, + "LaunchTemplateVersionSet": { + "base": null, + "refs": { + "DescribeLaunchTemplateVersionsResult$LaunchTemplateVersions": "

Information about the launch template versions.

" + } + }, + "LaunchTemplatesMonitoring": { + "base": "

Describes the monitoring for the instance.

", + "refs": { + "ResponseLaunchTemplateData$Monitoring": "

The monitoring for the instance.

" + } + }, + "LaunchTemplatesMonitoringRequest": { + "base": "

Describes the monitoring for the instance.

", + "refs": { + "RequestLaunchTemplateData$Monitoring": "

The monitoring for the instance.

" + } + }, + "ListingState": { + "base": null, + "refs": { + "InstanceCount$State": "

The states of the listed Reserved Instances.

" + } + }, + "ListingStatus": { "base": null, "refs": { - "ImageAttribute$LaunchPermissions": "

One or more launch permissions.

", - "LaunchPermissionModifications$Add": "

The AWS account ID to add to the list of launch permissions for the AMI.

", - "LaunchPermissionModifications$Remove": "

The AWS account ID to remove from the list of launch permissions for the AMI.

" + "ReservedInstancesListing$Status": "

The status of the Reserved Instance listing.

" } }, - "LaunchPermissionModifications": { - "base": "

Describes a launch permission modification.

", + "LoadBalancersConfig": { + "base": "

Describes the Classic Load Balancers and target groups to attach to a Spot Fleet request.

", "refs": { - "ModifyImageAttributeRequest$LaunchPermission": "

A launch permission modification.

" + "SpotFleetRequestConfigData$LoadBalancersConfig": "

One or more Classic Load Balancers and target groups to attach to the Spot Fleet request. Spot Fleet registers the running Spot Instances with the specified Classic Load Balancers and target groups.

With Network Load Balancers, Spot Fleet cannot register instances that have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1.

" } }, - "LaunchSpecification": { - "base": "

Describes the launch specification for an instance.

", + "LoadPermission": { + "base": "

Describes a load permission.

", "refs": { - "SpotInstanceRequest$LaunchSpecification": "

Additional information for launching instances.

" + "LoadPermissionList$member": null } }, - "LaunchSpecsList": { + "LoadPermissionList": { "base": null, "refs": { - "SpotFleetRequestConfigData$LaunchSpecifications": "

Information about the launch specifications for the Spot fleet request.

" + "FpgaImageAttribute$LoadPermissions": "

One or more load permissions.

" } }, - "ListingState": { + "LoadPermissionListRequest": { "base": null, "refs": { - "InstanceCount$State": "

The states of the listed Reserved Instances.

" + "LoadPermissionModifications$Add": "

The load permissions to add.

", + "LoadPermissionModifications$Remove": "

The load permissions to remove.

" } }, - "ListingStatus": { - "base": null, + "LoadPermissionModifications": { + "base": "

Describes modifications to the load permissions of an Amazon FPGA image (AFI).

", "refs": { - "ReservedInstancesListing$Status": "

The status of the Reserved Instance listing.

" + "ModifyFpgaImageAttributeRequest$LoadPermission": "

The load permission for the AFI.

" + } + }, + "LoadPermissionRequest": { + "base": "

Describes a load permission.

", + "refs": { + "LoadPermissionListRequest$member": null } }, "Long": { "base": null, "refs": { + "CreateVpnGatewayRequest$AmazonSideAsn": "

A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a 32-bit ASN, it must be in the 4200000000 to 4294967294 range.

Default: 64512

", + "DeleteLaunchTemplateVersionsResponseErrorItem$VersionNumber": "

The version number of the launch template.

", + "DeleteLaunchTemplateVersionsResponseSuccessItem$VersionNumber": "

The version number of the launch template.

", "DescribeReservedInstancesOfferingsRequest$MaxDuration": "

The maximum duration (in seconds) to filter when searching for offerings.

Default: 94608000 (3 years)

", "DescribeReservedInstancesOfferingsRequest$MinDuration": "

The minimum duration (in seconds) to filter when searching for offerings.

Default: 2592000 (1 month)

", "DiskImageDescription$Size": "

The size of the disk image, in GiB.

", @@ -3889,12 +4855,24 @@ "DiskImageVolumeDescription$Size": "

The size of the volume, in GiB.

", "ImportInstanceVolumeDetailItem$BytesConverted": "

The number of bytes converted so far.

", "ImportVolumeTaskDetails$BytesConverted": "

The number of bytes converted so far.

", + "LaunchTemplate$DefaultVersionNumber": "

The version number of the default version of the launch template.

", + "LaunchTemplate$LatestVersionNumber": "

The version number of the latest version of the launch template.

", + "LaunchTemplateVersion$VersionNumber": "

The version number.

", "PriceSchedule$Term": "

The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.

", "PriceScheduleSpecification$Term": "

The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.

", "ReservedInstances$Duration": "

The duration of the Reserved Instance, in seconds.

", "ReservedInstancesOffering$Duration": "

The duration of the Reserved Instance, in seconds.

", "VolumeDetail$Size": "

The size of the volume, in GiB.

", - "VolumeModification$Progress": "

Modification progress from 0 to 100%.

" + "VolumeModification$Progress": "

Modification progress from 0 to 100%.

", + "VpnGateway$AmazonSideAsn": "

The private Autonomous System Number (ASN) for the Amazon side of a BGP session.

" + } + }, + "MarketType": { + "base": null, + "refs": { + "InstanceMarketOptionsRequest$MarketType": "

The market type.

", + "LaunchTemplateInstanceMarketOptions$MarketType": "

The market type.

", + "LaunchTemplateInstanceMarketOptionsRequest$MarketType": "

The market type.

" } }, "MaxResults": { @@ -3906,6 +4884,16 @@ "DescribeVpcClassicLinkDnsSupportRequest$MaxResults": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

" } }, + "ModifyFpgaImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyFpgaImageAttributeResult": { + "base": null, + "refs": { + } + }, "ModifyHostsRequest": { "base": "

Contains the parameters for ModifyHosts.

", "refs": { @@ -3936,6 +4924,16 @@ "refs": { } }, + "ModifyInstanceCreditSpecificationRequest": { + "base": null, + "refs": { + } + }, + "ModifyInstanceCreditSpecificationResult": { + "base": null, + "refs": { + } + }, "ModifyInstancePlacementRequest": { "base": "

Contains the parameters for ModifyInstancePlacement.

", "refs": { @@ -3946,6 +4944,16 @@ "refs": { } }, + "ModifyLaunchTemplateRequest": { + "base": null, + "refs": { + } + }, + "ModifyLaunchTemplateResult": { + "base": null, + "refs": { + } + }, "ModifyNetworkInterfaceAttributeRequest": { "base": "

Contains the parameters for ModifyNetworkInterfaceAttribute.

", "refs": { @@ -4001,13 +5009,43 @@ "refs": { } }, + "ModifyVpcEndpointConnectionNotificationRequest": { + "base": null, + "refs": { + } + }, + "ModifyVpcEndpointConnectionNotificationResult": { + "base": null, + "refs": { + } + }, "ModifyVpcEndpointRequest": { "base": "

Contains the parameters for ModifyVpcEndpoint.

", "refs": { } }, "ModifyVpcEndpointResult": { - "base": "

Contains the output of ModifyVpcEndpoint.

", + "base": null, + "refs": { + } + }, + "ModifyVpcEndpointServiceConfigurationRequest": { + "base": null, + "refs": { + } + }, + "ModifyVpcEndpointServiceConfigurationResult": { + "base": null, + "refs": { + } + }, + "ModifyVpcEndpointServicePermissionsRequest": { + "base": null, + "refs": { + } + }, + "ModifyVpcEndpointServicePermissionsResult": { + "base": null, "refs": { } }, @@ -4021,6 +5059,16 @@ "refs": { } }, + "ModifyVpcTenancyRequest": { + "base": "

Contains the parameters for ModifyVpcTenancy.

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

Contains the output of ModifyVpcTenancy.

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

Contains the parameters for MonitorInstances.

", "refs": { @@ -4197,6 +5245,37 @@ "DescribeNetworkInterfacesResult$NetworkInterfaces": "

Information about one or more network interfaces.

" } }, + "NetworkInterfacePermission": { + "base": "

Describes a permission for a network interface.

", + "refs": { + "CreateNetworkInterfacePermissionResult$InterfacePermission": "

Information about the permission for the network interface.

", + "NetworkInterfacePermissionList$member": null + } + }, + "NetworkInterfacePermissionIdList": { + "base": null, + "refs": { + "DescribeNetworkInterfacePermissionsRequest$NetworkInterfacePermissionIds": "

One or more network interface permission IDs.

" + } + }, + "NetworkInterfacePermissionList": { + "base": null, + "refs": { + "DescribeNetworkInterfacePermissionsResult$NetworkInterfacePermissions": "

The network interface permissions.

" + } + }, + "NetworkInterfacePermissionState": { + "base": "

Describes the state of a network interface permission.

", + "refs": { + "NetworkInterfacePermission$PermissionState": "

Information about the state of the permission.

" + } + }, + "NetworkInterfacePermissionStateCode": { + "base": null, + "refs": { + "NetworkInterfacePermissionState$State": "

The state of the permission.

" + } + }, "NetworkInterfacePrivateIpAddress": { "base": "

Describes the private IPv4 address of a network interface.

", "refs": { @@ -4279,7 +5358,8 @@ "OperationType": { "base": null, "refs": { - "ModifyImageAttributeRequest$OperationType": "

The operation type.

", + "ModifyFpgaImageAttributeRequest$OperationType": "

The operation type.

", + "ModifyImageAttributeRequest$OperationType": "

The operation type. This parameter can be used only when the Attribute parameter is launchPermission.

", "ModifySnapshotAttributeRequest$OperationType": "

The type of operation to perform to the attribute.

" } }, @@ -4323,7 +5403,9 @@ "base": null, "refs": { "CreateVolumePermission$Group": "

The specific group that is to be added or removed from a volume's list of create volume permissions.

", - "LaunchPermission$Group": "

The name of the group.

" + "LaunchPermission$Group": "

The name of the group.

", + "LoadPermission$Group": "

The name of the group.

", + "LoadPermissionRequest$Group": "

The name of the group.

" } }, "Placement": { @@ -4448,6 +5530,12 @@ "ReservedInstancesOffering$PricingDetails": "

The pricing details of the Reserved Instance offering.

" } }, + "PrincipalType": { + "base": null, + "refs": { + "AllowedPrincipal$PrincipalType": "

The type of principal.

" + } + }, "PrivateIpAddressConfigSet": { "base": null, "refs": { @@ -4464,7 +5552,9 @@ "base": null, "refs": { "CreateNetworkInterfaceRequest$PrivateIpAddresses": "

One or more private IPv4 addresses.

", - "InstanceNetworkInterfaceSpecification$PrivateIpAddresses": "

One or more private IPv4 addresses to assign to the network interface. Only one private IPv4 address can be designated as primary. You cannot specify this option if you're launching more than one instance in a RunInstances request.

" + "InstanceNetworkInterfaceSpecification$PrivateIpAddresses": "

One or more private IPv4 addresses to assign to the network interface. Only one private IPv4 address can be designated as primary. You cannot specify this option if you're launching more than one instance in a RunInstances request.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$PrivateIpAddresses": "

One or more private IPv4 addresses.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$PrivateIpAddresses": "

One or more private IPv4 addresses.

" } }, "PrivateIpAddressStringList": { @@ -4486,6 +5576,7 @@ "DescribeSnapshotAttributeResult$ProductCodes": "

A list of product codes.

", "DescribeVolumeAttributeResult$ProductCodes": "

A list of product codes.

", "FpgaImage$ProductCodes": "

The product codes for the AFI.

", + "FpgaImageAttribute$ProductCodes": "

One or more product codes.

", "Image$ProductCodes": "

Any product codes associated with the AMI.

", "ImageAttribute$ProductCodes": "

One or more product codes.

", "Instance$ProductCodes": "

The product codes attached to this instance, if applicable.

", @@ -4495,7 +5586,8 @@ "ProductCodeStringList": { "base": null, "refs": { - "ModifyImageAttributeRequest$ProductCodes": "

One or more product codes. After you add a product code to an AMI, it can't be removed. This is only valid when modifying the productCodes attribute.

" + "ModifyFpgaImageAttributeRequest$ProductCodes": "

One or more product codes. After you add a product code to an AFI, it can't be removed. This parameter is valid only when modifying the productCodes attribute.

", + "ModifyImageAttributeRequest$ProductCodes": "

One or more DevPay product codes. After you add a product code to an AMI, it can't be removed.

" } }, "ProductCodeValues": { @@ -4601,14 +5693,14 @@ "DescribeReservedInstancesOfferingsRequest$ProductDescription": "

The Reserved Instance product platform description. Instances that include (Amazon VPC) in the description are for use with Amazon VPC.

", "ReservedInstances$ProductDescription": "

The Reserved Instance product platform description.

", "ReservedInstancesOffering$ProductDescription": "

The Reserved Instance product platform description.

", - "SpotInstanceRequest$ProductDescription": "

The product description associated with the Spot instance.

", + "SpotInstanceRequest$ProductDescription": "

The product description associated with the Spot Instance.

", "SpotPrice$ProductDescription": "

A general description of the AMI.

" } }, "ReasonCodesList": { "base": null, "refs": { - "ReportInstanceStatusRequest$ReasonCodes": "

One or more reason codes that describes the health state of your instance.

" + "ReportInstanceStatusRequest$ReasonCodes": "

One or more reason codes that describe the health state of your instance.

" } }, "RebootInstancesRequest": { @@ -4663,6 +5755,16 @@ "refs": { } }, + "RejectVpcEndpointConnectionsRequest": { + "base": null, + "refs": { + } + }, + "RejectVpcEndpointConnectionsResult": { + "base": null, + "refs": { + } + }, "RejectVpcPeeringConnectionRequest": { "base": "

Contains the parameters for RejectVpcPeeringConnection.

", "refs": { @@ -4760,6 +5862,13 @@ "PurchaseHostReservationRequest$HostIdSet": "

The ID/s of the Dedicated Host/s that the reservation will be associated with.

" } }, + "RequestLaunchTemplateData": { + "base": "

The information to include in the launch template.

", + "refs": { + "CreateLaunchTemplateRequest$LaunchTemplateData": "

The information for the launch template.

", + "CreateLaunchTemplateVersionRequest$LaunchTemplateData": "

The information for the launch template.

" + } + }, "RequestSpotFleetRequest": { "base": "

Contains the parameters for RequestSpotFleet.

", "refs": { @@ -4816,7 +5925,7 @@ "ReservedInstanceIdSet": { "base": null, "refs": { - "AcceptReservedInstancesExchangeQuoteRequest$ReservedInstanceIds": "

The IDs of the Convertible Reserved Instances to exchange for other Convertible Reserved Instances of the same or higher value.

", + "AcceptReservedInstancesExchangeQuoteRequest$ReservedInstanceIds": "

The IDs of the Convertible Reserved Instances to exchange for another Convertible Reserved Instance of the same or higher value.

", "GetReservedInstancesExchangeQuoteRequest$ReservedInstanceIds": "

The IDs of the Convertible Reserved Instances to exchange.

" } }, @@ -4950,6 +6059,22 @@ "ReservedInstancesModification$ReservedInstancesIds": "

The IDs of one or more Reserved Instances.

" } }, + "ResetFpgaImageAttributeName": { + "base": null, + "refs": { + "ResetFpgaImageAttributeRequest$Attribute": "

The attribute.

" + } + }, + "ResetFpgaImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "ResetFpgaImageAttributeResult": { + "base": null, + "refs": { + } + }, "ResetImageAttributeName": { "base": null, "refs": { @@ -4980,16 +6105,25 @@ "base": null, "refs": { "CreateTagsRequest$Resources": "

The IDs of one or more resources to tag. For example, ami-1a2b3c4d.

", - "DeleteTagsRequest$Resources": "

The ID of the resource. For example, ami-1a2b3c4d. You can specify more than one resource ID.

" + "DeleteTagsRequest$Resources": "

The IDs of one or more resources.

" } }, "ResourceType": { "base": null, "refs": { + "LaunchTemplateTagSpecification$ResourceType": "

The type of resource.

", + "LaunchTemplateTagSpecificationRequest$ResourceType": "

The type of resource to tag. Currently, the resource types that support tagging on creation are instance and volume.

", + "SpotFleetTagSpecification$ResourceType": "

The type of resource. Currently, the only resource type that is supported is instance.

", "TagDescription$ResourceType": "

The resource type.

", "TagSpecification$ResourceType": "

The type of resource to tag. Currently, the resource types that support tagging on creation are instance and volume.

" } }, + "ResponseError": { + "base": "

Describes the error that's returned when you cannot delete a launch template version.

", + "refs": { + "DeleteLaunchTemplateVersionsResponseErrorItem$ResponseError": "

Information about the error.

" + } + }, "ResponseHostIdList": { "base": null, "refs": { @@ -5005,6 +6139,13 @@ "Purchase$HostIdSet": "

The IDs of the Dedicated Hosts associated with the reservation.

" } }, + "ResponseLaunchTemplateData": { + "base": "

The information for a launch template.

", + "refs": { + "GetLaunchTemplateDataResult$LaunchTemplateData": "

The instance data.

", + "LaunchTemplateVersion$LaunchTemplateData": "

Information about the launch template.

" + } + }, "RestorableByStringList": { "base": null, "refs": { @@ -5252,10 +6393,18 @@ "CreateNetworkInterfaceRequest$Groups": "

The IDs of one or more security groups.

", "ImportInstanceLaunchSpecification$GroupIds": "

One or more security group IDs.

", "InstanceNetworkInterfaceSpecification$Groups": "

The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$Groups": "

The IDs of one or more security groups.

", "ModifyNetworkInterfaceAttributeRequest$Groups": "

Changes the security groups for the network interface. The new set of groups you specify replaces the current set. You must specify at least one group, even if it's just the default security group in the VPC. You must specify the ID of the security group, not the name.

", + "RequestLaunchTemplateData$SecurityGroupIds": "

One or more security group IDs. You can create a security group using CreateSecurityGroup. You cannot specify both a security group ID and security name in the same request.

", "RunInstancesRequest$SecurityGroupIds": "

One or more security group IDs. You can create a security group using CreateSecurityGroup.

Default: Amazon EC2 uses the default security group.

" } }, + "SecurityGroupIdentifier": { + "base": "

Describes a security group.

", + "refs": { + "GroupIdentifierSet$member": null + } + }, "SecurityGroupList": { "base": null, "refs": { @@ -5278,13 +6427,66 @@ "base": null, "refs": { "ImportInstanceLaunchSpecification$GroupNames": "

One or more security group names.

", + "RequestLaunchTemplateData$SecurityGroups": "

[EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead. You cannot specify both a security group ID and security name in the same request.

", "RunInstancesRequest$SecurityGroups": "

[EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead.

Default: Amazon EC2 uses the default security group.

" } }, + "ServiceConfiguration": { + "base": "

Describes a service configuration for a VPC endpoint service.

", + "refs": { + "CreateVpcEndpointServiceConfigurationResult$ServiceConfiguration": "

Information about the service configuration.

", + "ServiceConfigurationSet$member": null + } + }, + "ServiceConfigurationSet": { + "base": null, + "refs": { + "DescribeVpcEndpointServiceConfigurationsResult$ServiceConfigurations": "

Information about one or more services.

" + } + }, + "ServiceDetail": { + "base": "

Describes a VPC endpoint service.

", + "refs": { + "ServiceDetailSet$member": null + } + }, + "ServiceDetailSet": { + "base": null, + "refs": { + "DescribeVpcEndpointServicesResult$ServiceDetails": "

Information about the service.

" + } + }, + "ServiceState": { + "base": null, + "refs": { + "ServiceConfiguration$ServiceState": "

The service state.

" + } + }, + "ServiceType": { + "base": null, + "refs": { + "ServiceTypeDetail$ServiceType": "

The type of service.

" + } + }, + "ServiceTypeDetail": { + "base": "

Describes the type of service for a VPC endpoint.

", + "refs": { + "ServiceTypeDetailSet$member": null + } + }, + "ServiceTypeDetailSet": { + "base": null, + "refs": { + "ServiceConfiguration$ServiceType": "

The type of service.

", + "ServiceDetail$ServiceType": "

The type of service.

" + } + }, "ShutdownBehavior": { "base": null, "refs": { "ImportInstanceLaunchSpecification$InstanceInitiatedShutdownBehavior": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

", + "RequestLaunchTemplateData$InstanceInitiatedShutdownBehavior": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

Default: stop

", + "ResponseLaunchTemplateData$InstanceInitiatedShutdownBehavior": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

", "RunInstancesRequest$InstanceInitiatedShutdownBehavior": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

Default: stop

" } }, @@ -5359,14 +6561,14 @@ } }, "SpotDatafeedSubscription": { - "base": "

Describes the data feed for a Spot instance.

", + "base": "

Describes the data feed for a Spot Instance.

", "refs": { - "CreateSpotDatafeedSubscriptionResult$SpotDatafeedSubscription": "

The Spot instance data feed subscription.

", - "DescribeSpotDatafeedSubscriptionResult$SpotDatafeedSubscription": "

The Spot instance data feed subscription.

" + "CreateSpotDatafeedSubscriptionResult$SpotDatafeedSubscription": "

The Spot Instance data feed subscription.

", + "DescribeSpotDatafeedSubscriptionResult$SpotDatafeedSubscription": "

The Spot Instance data feed subscription.

" } }, "SpotFleetLaunchSpecification": { - "base": "

Describes the launch specification for one or more Spot instances.

", + "base": "

Describes the launch specification for one or more Spot Instances.

", "refs": { "LaunchSpecsList$member": null } @@ -5378,26 +6580,38 @@ } }, "SpotFleetRequestConfig": { - "base": "

Describes a Spot fleet request.

", + "base": "

Describes a Spot Fleet request.

", "refs": { "SpotFleetRequestConfigSet$member": null } }, "SpotFleetRequestConfigData": { - "base": "

Describes the configuration of a Spot fleet request.

", + "base": "

Describes the configuration of a Spot Fleet request.

", "refs": { - "RequestSpotFleetRequest$SpotFleetRequestConfig": "

The configuration for the Spot fleet request.

", - "SpotFleetRequestConfig$SpotFleetRequestConfig": "

Information about the configuration of the Spot fleet request.

" + "RequestSpotFleetRequest$SpotFleetRequestConfig": "

The configuration for the Spot Fleet request.

", + "SpotFleetRequestConfig$SpotFleetRequestConfig": "

The configuration of the Spot Fleet request.

" } }, "SpotFleetRequestConfigSet": { "base": null, "refs": { - "DescribeSpotFleetRequestsResponse$SpotFleetRequestConfigs": "

Information about the configuration of your Spot fleet.

" + "DescribeSpotFleetRequestsResponse$SpotFleetRequestConfigs": "

Information about the configuration of your Spot Fleet.

" + } + }, + "SpotFleetTagSpecification": { + "base": "

The tags for a Spot Fleet resource.

", + "refs": { + "SpotFleetTagSpecificationList$member": null + } + }, + "SpotFleetTagSpecificationList": { + "base": null, + "refs": { + "SpotFleetLaunchSpecification$TagSpecifications": "

The tags to apply during creation.

" } }, "SpotInstanceRequest": { - "base": "

Describes a Spot instance request.

", + "base": "

Describes a Spot Instance request.

", "refs": { "SpotInstanceRequestList$member": null } @@ -5405,45 +6619,54 @@ "SpotInstanceRequestIdList": { "base": null, "refs": { - "CancelSpotInstanceRequestsRequest$SpotInstanceRequestIds": "

One or more Spot instance request IDs.

", - "DescribeSpotInstanceRequestsRequest$SpotInstanceRequestIds": "

One or more Spot instance request IDs.

" + "CancelSpotInstanceRequestsRequest$SpotInstanceRequestIds": "

One or more Spot Instance request IDs.

", + "DescribeSpotInstanceRequestsRequest$SpotInstanceRequestIds": "

One or more Spot Instance request IDs.

" } }, "SpotInstanceRequestList": { "base": null, "refs": { - "DescribeSpotInstanceRequestsResult$SpotInstanceRequests": "

One or more Spot instance requests.

", - "RequestSpotInstancesResult$SpotInstanceRequests": "

One or more Spot instance requests.

" + "DescribeSpotInstanceRequestsResult$SpotInstanceRequests": "

One or more Spot Instance requests.

", + "RequestSpotInstancesResult$SpotInstanceRequests": "

One or more Spot Instance requests.

" } }, "SpotInstanceState": { "base": null, "refs": { - "SpotInstanceRequest$State": "

The state of the Spot instance request. Spot bid status information can help you track your Spot instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide.

" + "SpotInstanceRequest$State": "

The state of the Spot Instance request. Spot status information can help you track your Spot Instance requests. For more information, see Spot Status in the Amazon Elastic Compute Cloud User Guide.

" } }, "SpotInstanceStateFault": { - "base": "

Describes a Spot instance state change.

", + "base": "

Describes a Spot Instance state change.

", "refs": { - "SpotDatafeedSubscription$Fault": "

The fault codes for the Spot instance request, if any.

", - "SpotInstanceRequest$Fault": "

The fault codes for the Spot instance request, if any.

" + "SpotDatafeedSubscription$Fault": "

The fault codes for the Spot Instance request, if any.

", + "SpotInstanceRequest$Fault": "

The fault codes for the Spot Instance request, if any.

" } }, "SpotInstanceStatus": { - "base": "

Describes the status of a Spot instance request.

", + "base": "

Describes the status of a Spot Instance request.

", "refs": { - "SpotInstanceRequest$Status": "

The status code and status message describing the Spot instance request.

" + "SpotInstanceRequest$Status": "

The status code and status message describing the Spot Instance request.

" } }, "SpotInstanceType": { "base": null, "refs": { - "RequestSpotInstancesRequest$Type": "

The Spot instance request type.

Default: one-time

", - "SpotInstanceRequest$Type": "

The Spot instance request type.

" + "LaunchTemplateSpotMarketOptions$SpotInstanceType": "

The Spot Instance request type.

", + "LaunchTemplateSpotMarketOptionsRequest$SpotInstanceType": "

The Spot Instance request type.

", + "RequestSpotInstancesRequest$Type": "

The Spot Instance request type.

Default: one-time

", + "SpotInstanceRequest$Type": "

The Spot Instance request type.

", + "SpotMarketOptions$SpotInstanceType": "

The Spot Instance request type.

" + } + }, + "SpotMarketOptions": { + "base": "

The options for Spot Instances.

", + "refs": { + "InstanceMarketOptionsRequest$SpotOptions": "

The options for Spot Instances.

" } }, "SpotPlacement": { - "base": "

Describes Spot instance placement.

", + "base": "

Describes Spot Instance placement.

", "refs": { "LaunchSpecification$Placement": "

The placement information for the instance.

", "RequestSpotLaunchSpecification$Placement": "

The placement information for the instance.

", @@ -5451,7 +6674,7 @@ } }, "SpotPrice": { - "base": "

Describes the maximum hourly price (bid) for any Spot instance launched to fulfill the request.

", + "base": "

Describes the maximum price per hour that you are willing to pay for a Spot Instance.

", "refs": { "SpotPriceHistoryList$member": null } @@ -5500,7 +6723,8 @@ "State": { "base": null, "refs": { - "VpcEndpoint$State": "

The state of the VPC endpoint.

" + "VpcEndpoint$State": "

The state of the VPC endpoint.

", + "VpcEndpointConnection$VpcEndpointState": "

The state of the VPC endpoint.

" } }, "StateReason": { @@ -5557,12 +6781,13 @@ "base": null, "refs": { "AcceptReservedInstancesExchangeQuoteResult$ExchangeId": "

The ID of the successful exchange.

", - "AcceptVpcPeeringConnectionRequest$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "AcceptVpcEndpointConnectionsRequest$ServiceId": "

The ID of the endpoint service.

", + "AcceptVpcPeeringConnectionRequest$VpcPeeringConnectionId": "

The ID of the VPC peering connection. You must specify this parameter in the request.

", "AccountAttribute$AttributeName": "

The name of the account attribute.

", "AccountAttributeValue$AttributeValue": "

The value of the attribute.

", "ActiveInstance$InstanceId": "

The ID of the instance.

", "ActiveInstance$InstanceType": "

The instance type.

", - "ActiveInstance$SpotInstanceRequestId": "

The ID of the Spot instance request.

", + "ActiveInstance$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", "Address$InstanceId": "

The ID of the instance that the address is associated with (if any).

", "Address$PublicIp": "

The Elastic IP address.

", "Address$AllocationId": "

The ID representing the allocation of the address for use with EC2-VPC.

", @@ -5570,12 +6795,14 @@ "Address$NetworkInterfaceId": "

The ID of the network interface.

", "Address$NetworkInterfaceOwnerId": "

The ID of the AWS account that owns the network interface.

", "Address$PrivateIpAddress": "

The private IP address associated with the Elastic IP address.

", + "AllocateAddressRequest$Address": "

[EC2-VPC] The Elastic IP address to recover.

", "AllocateAddressResult$PublicIp": "

The Elastic IP address.

", "AllocateAddressResult$AllocationId": "

[EC2-VPC] The ID that AWS assigns to represent the allocation of the Elastic IP address for use with instances in a VPC.

", "AllocateHostsRequest$AvailabilityZone": "

The Availability Zone for the Dedicated Hosts.

", "AllocateHostsRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.

", "AllocateHostsRequest$InstanceType": "

Specify the instance type that you want your Dedicated Hosts to be configured for. When you specify the instance type, that is the only instance type that you can launch onto that host.

", "AllocationIdList$member": null, + "AllowedPrincipal$Principal": "

The Amazon Resource Name (ARN) of the principal.

", "AssignIpv6AddressesRequest$NetworkInterfaceId": "

The ID of the network interface.

", "AssignIpv6AddressesResult$NetworkInterfaceId": "

The ID of the network interface.

", "AssignPrivateIpAddressesRequest$NetworkInterfaceId": "

The ID of the network interface.

", @@ -5594,6 +6821,7 @@ "AssociateSubnetCidrBlockRequest$Ipv6CidrBlock": "

The IPv6 CIDR block for your subnet. The subnet must have a /64 prefix length.

", "AssociateSubnetCidrBlockRequest$SubnetId": "

The ID of your subnet.

", "AssociateSubnetCidrBlockResult$SubnetId": "

The ID of the subnet.

", + "AssociateVpcCidrBlockRequest$CidrBlock": "

An IPv4 CIDR block to associate with the VPC.

", "AssociateVpcCidrBlockRequest$VpcId": "

The ID of the VPC.

", "AssociateVpcCidrBlockResult$VpcId": "

The ID of the VPC.

", "AssociationIdList$member": null, @@ -5604,28 +6832,28 @@ "AttachNetworkInterfaceRequest$InstanceId": "

The ID of the instance.

", "AttachNetworkInterfaceRequest$NetworkInterfaceId": "

The ID of the network interface.

", "AttachNetworkInterfaceResult$AttachmentId": "

The ID of the network interface attachment.

", - "AttachVolumeRequest$Device": "

The device name to expose to the instance (for example, /dev/sdh or xvdh).

", + "AttachVolumeRequest$Device": "

The device name (for example, /dev/sdh or xvdh).

", "AttachVolumeRequest$InstanceId": "

The ID of the instance.

", "AttachVolumeRequest$VolumeId": "

The ID of the EBS volume. The volume and instance must be within the same Availability Zone.

", "AttachVpnGatewayRequest$VpcId": "

The ID of the VPC.

", "AttachVpnGatewayRequest$VpnGatewayId": "

The ID of the virtual private gateway.

", "AttributeValue$Value": "

The attribute value. Note that the value is case-sensitive.

", "AuthorizeSecurityGroupEgressRequest$GroupId": "

The ID of the security group.

", - "AuthorizeSecurityGroupEgressRequest$CidrIp": "

The CIDR IPv4 address range. We recommend that you specify the CIDR range in a set of IP permissions instead.

", - "AuthorizeSecurityGroupEgressRequest$IpProtocol": "

The IP protocol name or number. We recommend that you specify the protocol in a set of IP permissions instead.

", - "AuthorizeSecurityGroupEgressRequest$SourceSecurityGroupName": "

The name of a destination security group. To authorize outbound access to a destination security group, we recommend that you use a set of IP permissions instead.

", - "AuthorizeSecurityGroupEgressRequest$SourceSecurityGroupOwnerId": "

The AWS account number for a destination security group. To authorize outbound access to a destination security group, we recommend that you use a set of IP permissions instead.

", + "AuthorizeSecurityGroupEgressRequest$CidrIp": "

Not supported. Use a set of IP permissions to specify the CIDR.

", + "AuthorizeSecurityGroupEgressRequest$IpProtocol": "

Not supported. Use a set of IP permissions to specify the protocol name or number.

", + "AuthorizeSecurityGroupEgressRequest$SourceSecurityGroupName": "

Not supported. Use a set of IP permissions to specify a destination security group.

", + "AuthorizeSecurityGroupEgressRequest$SourceSecurityGroupOwnerId": "

Not supported. Use a set of IP permissions to specify a destination security group.

", "AuthorizeSecurityGroupIngressRequest$CidrIp": "

The CIDR IPv4 address range. You can't specify this parameter when specifying a source security group.

", - "AuthorizeSecurityGroupIngressRequest$GroupId": "

The ID of the security group. Required for a nondefault VPC.

", - "AuthorizeSecurityGroupIngressRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group.

", + "AuthorizeSecurityGroupIngressRequest$GroupId": "

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

", + "AuthorizeSecurityGroupIngressRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

", "AuthorizeSecurityGroupIngressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). (VPC only) Use -1 to specify all protocols. If you specify -1, or a protocol number other than tcp, udp, icmp, or 58 (ICMPv6), traffic on all ports is allowed, regardless of any ports you specify. For tcp, udp, and icmp, you must specify a port range. For protocol 58 (ICMPv6), you can optionally specify a port range; if you don't, traffic for all types and codes is allowed.

", "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, the IP protocol, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead. For EC2-VPC, the source security group must be in the same VPC.

", - "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupOwnerId": "

[EC2-Classic] The AWS account number for the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead.

", + "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupOwnerId": "

[EC2-Classic] The AWS account ID for the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead.

", "AvailabilityZone$RegionName": "

The name of the region.

", "AvailabilityZone$ZoneName": "

The name of the Availability Zone.

", "AvailabilityZoneMessage$Message": "

The message about the Availability Zone.

", "BillingProductList$member": null, - "BlockDeviceMapping$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", + "BlockDeviceMapping$DeviceName": "

The device name (for example, /dev/sdh or xvdh).

", "BlockDeviceMapping$VirtualName": "

The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1.The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.

Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.

", "BlockDeviceMapping$NoDevice": "

Suppresses the specified device included in the block device mapping of the AMI.

", "BundleIdStringList$member": null, @@ -5646,20 +6874,32 @@ "CancelImportTaskResult$State": "

The current state of the task being canceled.

", "CancelReservedInstancesListingRequest$ReservedInstancesListingId": "

The ID of the Reserved Instance listing.

", "CancelSpotFleetRequestsError$Message": "

The description for the error code.

", - "CancelSpotFleetRequestsErrorItem$SpotFleetRequestId": "

The ID of the Spot fleet request.

", - "CancelSpotFleetRequestsSuccessItem$SpotFleetRequestId": "

The ID of the Spot fleet request.

", - "CancelledSpotInstanceRequest$SpotInstanceRequestId": "

The ID of the Spot instance request.

", + "CancelSpotFleetRequestsErrorItem$SpotFleetRequestId": "

The ID of the Spot Fleet request.

", + "CancelSpotFleetRequestsSuccessItem$SpotFleetRequestId": "

The ID of the Spot Fleet request.

", + "CancelledSpotInstanceRequest$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", + "CidrBlock$CidrBlock": "

The IPv4 CIDR block.

", "ClassicLinkDnsSupport$VpcId": "

The ID of the VPC.

", "ClassicLinkInstance$InstanceId": "

The ID of the instance.

", "ClassicLinkInstance$VpcId": "

The ID of the VPC.

", + "ClassicLoadBalancer$Name": "

The name of the load balancer.

", "ClientData$Comment": "

A user-defined comment about the disk upload.

", "ConfirmProductInstanceRequest$InstanceId": "

The ID of the instance.

", "ConfirmProductInstanceRequest$ProductCode": "

The product code. This must be a product code that you own.

", "ConfirmProductInstanceResult$OwnerId": "

The AWS account ID of the instance owner. This is only present if the product code is attached to the instance.

", + "ConnectionNotification$ConnectionNotificationId": "

The ID of the notification.

", + "ConnectionNotification$ServiceId": "

The ID of the endpoint service.

", + "ConnectionNotification$VpcEndpointId": "

The ID of the VPC endpoint.

", + "ConnectionNotification$ConnectionNotificationArn": "

The ARN of the SNS topic for the notification.

", "ConversionIdStringList$member": null, "ConversionTask$ConversionTaskId": "

The ID of the conversion task.

", "ConversionTask$ExpirationTime": "

The time when the task expires. If the upload isn't complete before the expiration time, we automatically cancel the task.

", "ConversionTask$StatusMessage": "

The status message related to the conversion task.

", + "CopyFpgaImageRequest$SourceFpgaImageId": "

The ID of the source AFI.

", + "CopyFpgaImageRequest$Description": "

The description for the new AFI.

", + "CopyFpgaImageRequest$Name": "

The name for the new AFI. The default is the name of the source AFI.

", + "CopyFpgaImageRequest$SourceRegion": "

The region that contains the source AFI.

", + "CopyFpgaImageRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", + "CopyFpgaImageResult$FpgaImageId": "

The ID of the new AFI.

", "CopyImageRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.

", "CopyImageRequest$Description": "

A description for the new AMI in the destination region.

", "CopyImageRequest$KmsKeyId": "

The full ARN of the AWS Key Management Service (AWS KMS) CMK to use when encrypting the snapshots of an image during a copy operation. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. The ARN contains the arn:aws:kms namespace, followed by the region of the CMK, the AWS account ID of the CMK owner, the key namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. The specified CMK must exist in the region that the snapshot is being copied to. If a KmsKeyId is specified, the Encrypted flag must also be set.

", @@ -5675,6 +6915,7 @@ "CopySnapshotRequest$SourceSnapshotId": "

The ID of the EBS snapshot to copy.

", "CopySnapshotResult$SnapshotId": "

The ID of the new snapshot.

", "CreateCustomerGatewayRequest$PublicIp": "

The Internet-routable IP address for the customer gateway's outside interface. The address must be static.

", + "CreateDefaultSubnetRequest$AvailabilityZone": "

The Availability Zone in which to create the default subnet.

", "CreateEgressOnlyInternetGatewayRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", "CreateEgressOnlyInternetGatewayRequest$VpcId": "

The ID of the VPC for which to create the egress-only Internet gateway.

", "CreateEgressOnlyInternetGatewayResult$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request.

", @@ -5694,6 +6935,10 @@ "CreateInstanceExportTaskRequest$Description": "

A description for the conversion task or the resource being exported. The maximum length is 255 bytes.

", "CreateInstanceExportTaskRequest$InstanceId": "

The ID of the instance.

", "CreateKeyPairRequest$KeyName": "

A unique name for the key pair.

Constraints: Up to 255 ASCII characters

", + "CreateLaunchTemplateRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", + "CreateLaunchTemplateVersionRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", + "CreateLaunchTemplateVersionRequest$LaunchTemplateId": "

The ID of the launch template. You must specify either the launch template ID or launch template name in the request.

", + "CreateLaunchTemplateVersionRequest$SourceVersion": "

The version number of the launch template version on which to base the new version. The new version inherits the same launch parameters as the source version, except for parameters that you specify in LaunchTemplateData.

", "CreateNatGatewayRequest$AllocationId": "

The allocation ID of an Elastic IP address to associate with the NAT gateway. If the Elastic IP address is associated with another resource, you must first disassociate it.

", "CreateNatGatewayRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

Constraint: Maximum 64 ASCII characters.

", "CreateNatGatewayRequest$SubnetId": "

The subnet in which to create the NAT gateway.

", @@ -5703,10 +6948,13 @@ "CreateNetworkAclEntryRequest$NetworkAclId": "

The ID of the network ACL.

", "CreateNetworkAclEntryRequest$Protocol": "

The protocol. A value of -1 or all means all protocols. If you specify all, -1, or a protocol number other than tcp, udp, or icmp, traffic on all ports is allowed, regardless of any ports or ICMP types or codes you specify. If you specify protocol 58 (ICMPv6) and specify an IPv4 CIDR block, traffic for all ICMP types and codes allowed, regardless of any that you specify. If you specify protocol 58 (ICMPv6) and specify an IPv6 CIDR block, you must specify an ICMP type and code.

", "CreateNetworkAclRequest$VpcId": "

The ID of the VPC.

", + "CreateNetworkInterfacePermissionRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "CreateNetworkInterfacePermissionRequest$AwsAccountId": "

The AWS account ID.

", + "CreateNetworkInterfacePermissionRequest$AwsService": "

The AWS service. Currently not supported.

", "CreateNetworkInterfaceRequest$Description": "

A description for the network interface.

", "CreateNetworkInterfaceRequest$PrivateIpAddress": "

The primary private IPv4 address of the network interface. If you don't specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 CIDR range. If you specify an IP address, you cannot indicate any IP addresses specified in privateIpAddresses as primary (only one IP address can be designated as primary).

", "CreateNetworkInterfaceRequest$SubnetId": "

The ID of the subnet to associate with the network interface.

", - "CreatePlacementGroupRequest$GroupName": "

A name for the placement group.

Constraints: Up to 255 ASCII characters

", + "CreatePlacementGroupRequest$GroupName": "

A name for the placement group. Must be unique within the scope of your account for the region.

Constraints: Up to 255 ASCII characters

", "CreateReservedInstancesListingRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see Ensuring Idempotency.

", "CreateReservedInstancesListingRequest$ReservedInstancesId": "

The ID of the active Standard Reserved Instance.

", "CreateRouteRequest$DestinationCidrBlock": "

The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match.

", @@ -5725,7 +6973,7 @@ "CreateSecurityGroupResult$GroupId": "

The ID of the security group.

", "CreateSnapshotRequest$Description": "

A description for the snapshot.

", "CreateSnapshotRequest$VolumeId": "

The ID of the EBS volume.

", - "CreateSpotDatafeedSubscriptionRequest$Bucket": "

The Amazon S3 bucket in which to store the Spot instance data feed.

", + "CreateSpotDatafeedSubscriptionRequest$Bucket": "

The Amazon S3 bucket in which to store the Spot Instance data feed.

", "CreateSpotDatafeedSubscriptionRequest$Prefix": "

A prefix for the data feed file names.

", "CreateSubnetRequest$AvailabilityZone": "

The Availability Zone for the subnet.

Default: AWS selects one for you. If you create more than one subnet in your VPC, we may not necessarily select a different zone for each subnet.

", "CreateSubnetRequest$CidrBlock": "

The IPv4 network range for the subnet, in CIDR notation. For example, 10.0.0.0/24.

", @@ -5735,14 +6983,22 @@ "CreateVolumeRequest$AvailabilityZone": "

The Availability Zone in which to create the volume. Use DescribeAvailabilityZones to list the Availability Zones that are currently available to you.

", "CreateVolumeRequest$KmsKeyId": "

The full ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. The ARN contains the arn:aws:kms namespace, followed by the region of the CMK, the AWS account ID of the CMK owner, the key namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If a KmsKeyId is specified, the Encrypted flag must also be set.

", "CreateVolumeRequest$SnapshotId": "

The snapshot from which to create the volume.

", - "CreateVpcEndpointRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", - "CreateVpcEndpointRequest$PolicyDocument": "

A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format. If this parameter is not specified, we attach a default policy that allows full access to the service.

", - "CreateVpcEndpointRequest$ServiceName": "

The AWS service name, in the form com.amazonaws.region.service . To get a list of available services, use the DescribeVpcEndpointServices request.

", + "CreateVpcEndpointConnectionNotificationRequest$ServiceId": "

The ID of the endpoint service.

", + "CreateVpcEndpointConnectionNotificationRequest$VpcEndpointId": "

The ID of the endpoint.

", + "CreateVpcEndpointConnectionNotificationRequest$ConnectionNotificationArn": "

The ARN of the SNS topic for the notifications.

", + "CreateVpcEndpointConnectionNotificationRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "CreateVpcEndpointConnectionNotificationResult$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request.

", "CreateVpcEndpointRequest$VpcId": "

The ID of the VPC in which the endpoint will be used.

", + "CreateVpcEndpointRequest$ServiceName": "

The service name. To get a list of available services, use the DescribeVpcEndpointServices request.

", + "CreateVpcEndpointRequest$PolicyDocument": "

(Gateway endpoint) A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format. If this parameter is not specified, we attach a default policy that allows full access to the service.

", + "CreateVpcEndpointRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", "CreateVpcEndpointResult$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request.

", - "CreateVpcPeeringConnectionRequest$PeerOwnerId": "

The AWS account ID of the owner of the peer VPC.

Default: Your AWS account ID

", - "CreateVpcPeeringConnectionRequest$PeerVpcId": "

The ID of the VPC with which you are creating the VPC peering connection.

", - "CreateVpcPeeringConnectionRequest$VpcId": "

The ID of the requester VPC.

", + "CreateVpcEndpointServiceConfigurationRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "CreateVpcEndpointServiceConfigurationResult$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request.

", + "CreateVpcPeeringConnectionRequest$PeerOwnerId": "

The AWS account ID of the owner of the accepter VPC.

Default: Your AWS account ID

", + "CreateVpcPeeringConnectionRequest$PeerVpcId": "

The ID of the VPC with which you are creating the VPC peering connection. You must specify this parameter in the request.

", + "CreateVpcPeeringConnectionRequest$VpcId": "

The ID of the requester VPC. You must specify this parameter in the request.

", + "CreateVpcPeeringConnectionRequest$PeerRegion": "

The region code for the accepter VPC, if the accepter VPC is located in a region other than the region in which you make the request.

Default: The region in which you make the request.

", "CreateVpcRequest$CidrBlock": "

The IPv4 network range for the VPC, in CIDR notation. For example, 10.0.0.0/16.

", "CreateVpnConnectionRequest$CustomerGatewayId": "

The ID of the customer gateway.

", "CreateVpnConnectionRequest$Type": "

The type of VPN connection (ipsec.1).

", @@ -5750,6 +7006,8 @@ "CreateVpnConnectionRouteRequest$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer network.

", "CreateVpnConnectionRouteRequest$VpnConnectionId": "

The ID of the VPN connection.

", "CreateVpnGatewayRequest$AvailabilityZone": "

The Availability Zone for the virtual private gateway.

", + "CreditSpecification$CpuCredits": "

The credit option for CPU usage of a T2 instance.

", + "CreditSpecificationRequest$CpuCredits": "

The credit option for CPU usage of a T2 instance. Valid values are standard and unlimited.

", "CustomerGateway$BgpAsn": "

The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

", "CustomerGateway$CustomerGatewayId": "

The ID of the customer gateway.

", "CustomerGateway$IpAddress": "

The Internet-routable IP address of the customer gateway's outside interface.

", @@ -5758,12 +7016,20 @@ "CustomerGatewayIdStringList$member": null, "DeleteCustomerGatewayRequest$CustomerGatewayId": "

The ID of the customer gateway.

", "DeleteDhcpOptionsRequest$DhcpOptionsId": "

The ID of the DHCP options set.

", + "DeleteFpgaImageRequest$FpgaImageId": "

The ID of the AFI.

", "DeleteInternetGatewayRequest$InternetGatewayId": "

The ID of the Internet gateway.

", "DeleteKeyPairRequest$KeyName": "

The name of the key pair.

", + "DeleteLaunchTemplateRequest$LaunchTemplateId": "

The ID of the launch template. You must specify either the launch template ID or launch template name in the request.

", + "DeleteLaunchTemplateVersionsRequest$LaunchTemplateId": "

The ID of the launch template. You must specify either the launch template ID or launch template name in the request.

", + "DeleteLaunchTemplateVersionsResponseErrorItem$LaunchTemplateId": "

The ID of the launch template.

", + "DeleteLaunchTemplateVersionsResponseErrorItem$LaunchTemplateName": "

The name of the launch template.

", + "DeleteLaunchTemplateVersionsResponseSuccessItem$LaunchTemplateId": "

The ID of the launch template.

", + "DeleteLaunchTemplateVersionsResponseSuccessItem$LaunchTemplateName": "

The name of the launch template.

", "DeleteNatGatewayRequest$NatGatewayId": "

The ID of the NAT gateway.

", "DeleteNatGatewayResult$NatGatewayId": "

The ID of the NAT gateway.

", "DeleteNetworkAclEntryRequest$NetworkAclId": "

The ID of the network ACL.

", "DeleteNetworkAclRequest$NetworkAclId": "

The ID of the network ACL.

", + "DeleteNetworkInterfacePermissionRequest$NetworkInterfacePermissionId": "

The ID of the network interface permission.

", "DeleteNetworkInterfaceRequest$NetworkInterfaceId": "

The ID of the network interface.

", "DeletePlacementGroupRequest$GroupName": "

The name of the placement group.

", "DeleteRouteRequest$DestinationCidrBlock": "

The IPv4 CIDR range for the route. The value you specify must match the CIDR for the route exactly.

", @@ -5786,8 +7052,11 @@ "DescribeClassicLinkInstancesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeEgressOnlyInternetGatewaysRequest$NextToken": "

The token to retrieve the next page of results.

", "DescribeEgressOnlyInternetGatewaysResult$NextToken": "

The token to use to retrieve the next page of results.

", + "DescribeElasticGpusRequest$NextToken": "

The token to request the next page of results.

", + "DescribeElasticGpusResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeFlowLogsRequest$NextToken": "

The token to retrieve the next page of results.

", "DescribeFlowLogsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeFpgaImageAttributeRequest$FpgaImageId": "

The ID of the AFI.

", "DescribeHostReservationOfferingsRequest$NextToken": "

The token to use to retrieve the next page of results.

", "DescribeHostReservationOfferingsRequest$OfferingId": "

The ID of the reservation offering.

", "DescribeHostReservationOfferingsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", @@ -5804,16 +7073,27 @@ "DescribeImportSnapshotTasksRequest$NextToken": "

A token that indicates the next page of results.

", "DescribeImportSnapshotTasksResult$NextToken": "

The token to use to get the next page of results. This value is null when there are no more results to return.

", "DescribeInstanceAttributeRequest$InstanceId": "

The ID of the instance.

", + "DescribeInstanceCreditSpecificationsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeInstanceCreditSpecificationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeInstanceStatusRequest$NextToken": "

The token to retrieve the next page of results.

", "DescribeInstanceStatusResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeInstancesRequest$NextToken": "

The token to request the next page of results.

", "DescribeInstancesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeLaunchTemplateVersionsRequest$LaunchTemplateId": "

The ID of the launch template. You must specify either the launch template ID or launch template name in the request.

", + "DescribeLaunchTemplateVersionsRequest$MinVersion": "

The version number after which to describe launch template versions.

", + "DescribeLaunchTemplateVersionsRequest$MaxVersion": "

The version number up to which to describe launch template versions.

", + "DescribeLaunchTemplateVersionsRequest$NextToken": "

The token to request the next page of results.

", + "DescribeLaunchTemplateVersionsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeLaunchTemplatesRequest$NextToken": "

The token to request the next page of results.

", + "DescribeLaunchTemplatesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeMovingAddressesRequest$NextToken": "

The token to use to retrieve the next page of results.

", "DescribeMovingAddressesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeNatGatewaysRequest$NextToken": "

The token to retrieve the next page of results.

", "DescribeNatGatewaysResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeNetworkInterfaceAttributeRequest$NetworkInterfaceId": "

The ID of the network interface.

", "DescribeNetworkInterfaceAttributeResult$NetworkInterfaceId": "

The ID of the network interface.

", + "DescribeNetworkInterfacePermissionsRequest$NextToken": "

The token to request the next page of results.

", + "DescribeNetworkInterfacePermissionsResult$NextToken": "

The token to use to retrieve the next page of results.

", "DescribePrefixListsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a prior call.)

", "DescribePrefixListsResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", "DescribeReservedInstancesListingsRequest$ReservedInstancesId": "

One or more Reserved Instance IDs.

", @@ -5827,18 +7107,20 @@ "DescribeScheduledInstanceAvailabilityResult$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", "DescribeScheduledInstancesRequest$NextToken": "

The token for the next set of results.

", "DescribeScheduledInstancesResult$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", + "DescribeSecurityGroupsRequest$NextToken": "

The token to request the next page of results.

", + "DescribeSecurityGroupsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeSnapshotAttributeRequest$SnapshotId": "

The ID of the EBS snapshot.

", "DescribeSnapshotAttributeResult$SnapshotId": "

The ID of the EBS snapshot.

", "DescribeSnapshotsRequest$NextToken": "

The NextToken value returned from a previous paginated DescribeSnapshots request where MaxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the NextToken value. This value is null when there are no more results to return.

", "DescribeSnapshotsResult$NextToken": "

The NextToken value to include in a future DescribeSnapshots request. When the results of a DescribeSnapshots request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeSpotFleetInstancesRequest$NextToken": "

The token for the next set of results.

", - "DescribeSpotFleetInstancesRequest$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "DescribeSpotFleetInstancesRequest$SpotFleetRequestId": "

The ID of the Spot Fleet request.

", "DescribeSpotFleetInstancesResponse$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", - "DescribeSpotFleetInstancesResponse$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "DescribeSpotFleetInstancesResponse$SpotFleetRequestId": "

The ID of the Spot Fleet request.

", "DescribeSpotFleetRequestHistoryRequest$NextToken": "

The token for the next set of results.

", - "DescribeSpotFleetRequestHistoryRequest$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "DescribeSpotFleetRequestHistoryRequest$SpotFleetRequestId": "

The ID of the Spot Fleet request.

", "DescribeSpotFleetRequestHistoryResponse$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", - "DescribeSpotFleetRequestHistoryResponse$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "DescribeSpotFleetRequestHistoryResponse$SpotFleetRequestId": "

The ID of the Spot Fleet request.

", "DescribeSpotFleetRequestsRequest$NextToken": "

The token for the next set of results.

", "DescribeSpotFleetRequestsResponse$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", "DescribeSpotPriceHistoryRequest$AvailabilityZone": "

Filters the results by the specified Availability Zone.

", @@ -5858,6 +7140,16 @@ "DescribeVolumesResult$NextToken": "

The NextToken value to include in a future DescribeVolumes request. When the results of a DescribeVolumes request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeVpcAttributeRequest$VpcId": "

The ID of the VPC.

", "DescribeVpcAttributeResult$VpcId": "

The ID of the VPC.

", + "DescribeVpcEndpointConnectionNotificationsRequest$ConnectionNotificationId": "

The ID of the notification.

", + "DescribeVpcEndpointConnectionNotificationsRequest$NextToken": "

The token to request the next page of results.

", + "DescribeVpcEndpointConnectionNotificationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeVpcEndpointConnectionsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeVpcEndpointConnectionsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeVpcEndpointServiceConfigurationsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeVpcEndpointServiceConfigurationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeVpcEndpointServicePermissionsRequest$ServiceId": "

The ID of the service.

", + "DescribeVpcEndpointServicePermissionsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeVpcEndpointServicePermissionsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeVpcEndpointServicesRequest$NextToken": "

The token for the next set of items to return. (You received this token from a prior call.)

", "DescribeVpcEndpointServicesResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", "DescribeVpcEndpointsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a prior call.)

", @@ -5892,16 +7184,30 @@ "DiskImageDescription$ImportManifestUrl": "

A presigned URL for the import manifest stored in Amazon S3. For information about creating a presigned URL for an Amazon S3 object, read the \"Query String Request Authentication Alternative\" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer Guide.

For information about the import manifest referenced by this API action, see VM Import Manifest.

", "DiskImageDetail$ImportManifestUrl": "

A presigned URL for the import manifest stored in Amazon S3 and presented here as an Amazon S3 presigned URL. For information about creating a presigned URL for an Amazon S3 object, read the \"Query String Request Authentication Alternative\" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer Guide.

For information about the import manifest referenced by this API action, see VM Import Manifest.

", "DiskImageVolumeDescription$Id": "

The volume identifier.

", + "DnsEntry$DnsName": "

The DNS name.

", + "DnsEntry$HostedZoneId": "

The ID of the private hosted zone.

", + "EbsBlockDevice$KmsKeyId": "

ID for a user-managed CMK under which the EBS volume is encrypted.

Note: This parameter is only supported on BlockDeviceMapping objects called by RunInstances, RequestSpotFleet, and RequestSpotInstances.

", "EbsBlockDevice$SnapshotId": "

The ID of the snapshot.

", "EbsInstanceBlockDevice$VolumeId": "

The ID of the EBS volume.

", "EbsInstanceBlockDeviceSpecification$VolumeId": "

The ID of the EBS volume.

", + "ElasticGpuAssociation$ElasticGpuId": "

The ID of the Elastic GPU.

", + "ElasticGpuAssociation$ElasticGpuAssociationId": "

The ID of the association.

", + "ElasticGpuAssociation$ElasticGpuAssociationState": "

The state of the association between the instance and the Elastic GPU.

", + "ElasticGpuAssociation$ElasticGpuAssociationTime": "

The time the Elastic GPU was associated with the instance.

", + "ElasticGpuIdSet$member": null, + "ElasticGpuSpecification$Type": "

The type of Elastic GPU.

", + "ElasticGpuSpecificationResponse$Type": "

The elastic GPU type.

", + "ElasticGpus$ElasticGpuId": "

The ID of the Elastic GPU.

", + "ElasticGpus$AvailabilityZone": "

The Availability Zone in the which the Elastic GPU resides.

", + "ElasticGpus$ElasticGpuType": "

The type of Elastic GPU.

", + "ElasticGpus$InstanceId": "

The ID of the instance to which the Elastic GPU is attached.

", "EnableVgwRoutePropagationRequest$GatewayId": "

The ID of the virtual private gateway.

", "EnableVgwRoutePropagationRequest$RouteTableId": "

The ID of the route table.

", "EnableVolumeIORequest$VolumeId": "

The ID of the volume.

", "EnableVpcClassicLinkDnsSupportRequest$VpcId": "

The ID of the VPC.

", "EnableVpcClassicLinkRequest$VpcId": "

The ID of the VPC.

", "EventInformation$EventDescription": "

The description of the event.

", - "EventInformation$EventSubType": "

The event.

The following are the error events.

The following are the fleetRequestChange events.

The following are the instanceChange events.

", + "EventInformation$EventSubType": "

The event.

The following are the error events:

The following are the fleetRequestChange events:

The following are the instanceChange events:

The following are the Information events:

", "EventInformation$InstanceId": "

The ID of the instance. This information is available only for instanceChange events.

", "ExecutableByStringList$member": null, "ExportTask$Description": "

A description of the resource being exported.

", @@ -5913,6 +7219,8 @@ "ExportToS3TaskSpecification$S3Bucket": "

The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account vm-import-export@amazon.com.

", "ExportToS3TaskSpecification$S3Prefix": "

The image is written to a single object in the S3 bucket at the S3 key s3prefix + exportTaskId + '.' + diskImageFormat.

", "Filter$Name": "

The name of the filter. Filter names are case-sensitive.

", + "FleetLaunchTemplateSpecification$LaunchTemplateId": "

The ID of the launch template. You must specify either a template ID or a template name.

", + "FleetLaunchTemplateSpecification$Version": "

The version number. By default, the default version of the launch template is used.

", "FlowLog$DeliverLogsErrorMessage": "

Information about the error that occurred. Rate limited indicates that CloudWatch logs throttling has been applied for one or more network interfaces, or that you've reached the limit on the number of CloudWatch Logs log groups that you can create. Access error indicates that the IAM role associated with the flow log does not have sufficient permissions to publish to CloudWatch Logs. Unknown error indicates an internal error.

", "FlowLog$DeliverLogsPermissionArn": "

The ARN of the IAM role that posts logs to CloudWatch Logs.

", "FlowLog$DeliverLogsStatus": "

The status of the logs delivery (SUCCESS | FAILED).

", @@ -5927,6 +7235,9 @@ "FpgaImage$ShellVersion": "

The version of the AWS Shell that was used to create the bitstream.

", "FpgaImage$OwnerId": "

The AWS account ID of the AFI owner.

", "FpgaImage$OwnerAlias": "

The alias of the AFI owner. Possible values include self, amazon, and aws-marketplace.

", + "FpgaImageAttribute$FpgaImageId": "

The ID of the AFI.

", + "FpgaImageAttribute$Name": "

The name of the AFI.

", + "FpgaImageAttribute$Description": "

The description of the AFI.

", "FpgaImageIdList$member": null, "FpgaImageState$Message": "

If the state is failed, this is the error message.

", "GetConsoleOutputRequest$InstanceId": "

The ID of the instance.

", @@ -5938,9 +7249,10 @@ "GetHostReservationPurchasePreviewRequest$OfferingId": "

The offering ID of the reservation.

", "GetHostReservationPurchasePreviewResult$TotalHourlyPrice": "

The potential total hourly price of the reservation per hour.

", "GetHostReservationPurchasePreviewResult$TotalUpfrontPrice": "

The potential total upfront price. This is billed immediately.

", + "GetLaunchTemplateDataRequest$InstanceId": "

The ID of the instance.

", "GetPasswordDataRequest$InstanceId": "

The ID of the Windows instance.

", "GetPasswordDataResult$InstanceId": "

The ID of the Windows instance.

", - "GetPasswordDataResult$PasswordData": "

The password of the instance.

", + "GetPasswordDataResult$PasswordData": "

The password of the instance. Returns an empty string if the password is not available.

", "GetReservedInstancesExchangeQuoteResult$CurrencyCode": "

The currency of the transaction.

", "GetReservedInstancesExchangeQuoteResult$PaymentDue": "

The total true upfront charge for the exchange.

", "GetReservedInstancesExchangeQuoteResult$ValidationFailureReason": "

Describes the reason why the exchange cannot be completed.

", @@ -5982,7 +7294,7 @@ "Image$Description": "

The description of the AMI that was provided during image creation.

", "Image$ImageOwnerAlias": "

The AWS account alias (for example, amazon, self) or the AWS account ID of the AMI owner.

", "Image$Name": "

The name of the AMI that was provided during image creation.

", - "Image$RootDeviceName": "

The device name of the root device (for example, /dev/sda1 or /dev/xvda).

", + "Image$RootDeviceName": "

The device name of the root device volume (for example, /dev/sda1).

", "Image$SriovNetSupport": "

Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.

", "ImageAttribute$ImageId": "

The ID of the AMI.

", "ImageDiskContainer$Description": "

The description of the disk image.

", @@ -6047,7 +7359,7 @@ "Instance$InstanceId": "

The ID of the instance.

", "Instance$KernelId": "

The kernel associated with this instance, if applicable.

", "Instance$KeyName": "

The name of the key pair, if this instance was launched with an associated key pair.

", - "Instance$PrivateDnsName": "

(IPv4 only) The private DNS hostname name assigned to the instance. This DNS hostname can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state.

[EC2-VPC] The Amazon-provided DNS server will resolve Amazon-provided private DNS hostnames if you've enabled DNS resolution and DNS hostnames in your VPC. If you are not using the Amazon-provided DNS server in your VPC, your custom domain name servers must resolve the hostname as appropriate.

", + "Instance$PrivateDnsName": "

(IPv4 only) The private DNS hostname name assigned to the instance. This DNS hostname can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state.

[EC2-VPC] The Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if you've enabled DNS resolution and DNS hostnames in your VPC. If you are not using the Amazon-provided DNS server in your VPC, your custom domain name servers must resolve the hostname as appropriate.

", "Instance$PrivateIpAddress": "

The private IPv4 address assigned to the instance.

", "Instance$PublicDnsName": "

(IPv4 only) The public DNS name assigned to the instance. This name is not available until the instance enters the running state. For EC2-VPC, this name is only available if you've enabled DNS hostnames for your VPC.

", "Instance$PublicIpAddress": "

The public IPv4 address assigned to the instance, if applicable.

", @@ -6056,19 +7368,24 @@ "Instance$SubnetId": "

[EC2-VPC] The ID of the subnet in which the instance is running.

", "Instance$VpcId": "

[EC2-VPC] The ID of the VPC in which the instance is running.

", "Instance$ClientToken": "

The idempotency token you provided when you launched the instance, if applicable.

", - "Instance$RootDeviceName": "

The root device name (for example, /dev/sda1 or /dev/xvda).

", - "Instance$SpotInstanceRequestId": "

If the request is a Spot instance request, the ID of the request.

", + "Instance$RootDeviceName": "

The device name of the root device volume (for example, /dev/sda1).

", + "Instance$SpotInstanceRequestId": "

If the request is a Spot Instance request, the ID of the request.

", "Instance$SriovNetSupport": "

Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.

", "InstanceAttribute$InstanceId": "

The ID of the instance.

", - "InstanceBlockDeviceMapping$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", - "InstanceBlockDeviceMappingSpecification$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", + "InstanceBlockDeviceMapping$DeviceName": "

The device name (for example, /dev/sdh or xvdh).

", + "InstanceBlockDeviceMappingSpecification$DeviceName": "

The device name (for example, /dev/sdh or xvdh).

", "InstanceBlockDeviceMappingSpecification$NoDevice": "

suppress the specified device included in the block device mapping.

", "InstanceBlockDeviceMappingSpecification$VirtualName": "

The virtual device name.

", "InstanceCapacity$InstanceType": "

The instance type size supported by the Dedicated Host.

", + "InstanceCreditSpecification$InstanceId": "

The ID of the instance.

", + "InstanceCreditSpecification$CpuCredits": "

The credit option for CPU usage of the instance. Valid values are standard and unlimited.

", + "InstanceCreditSpecificationRequest$InstanceId": "

The ID of the instance.

", + "InstanceCreditSpecificationRequest$CpuCredits": "

The credit option for CPU usage of the instance. Valid values are standard and unlimited.

", "InstanceExportDetails$InstanceId": "

The ID of the resource being exported.

", "InstanceIdSet$member": null, "InstanceIdStringList$member": null, "InstanceIpv6Address$Ipv6Address": "

The IPv6 address.

", + "InstanceIpv6AddressRequest$Ipv6Address": "

The IPv6 address.

", "InstanceMonitoring$InstanceId": "

The ID of the instance.

", "InstanceNetworkInterface$Description": "

The description.

", "InstanceNetworkInterface$MacAddress": "

The MAC address.

", @@ -6095,11 +7412,13 @@ "InternetGateway$InternetGatewayId": "

The ID of the Internet gateway.

", "InternetGatewayAttachment$VpcId": "

The ID of the VPC.

", "IpPermission$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers).

[EC2-VPC only] Use -1 to specify all protocols. When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or 58 (ICMPv6) allows traffic on all ports, regardless of any port range you specify. For tcp, udp, and icmp, you must specify a port range. For 58 (ICMPv6), you can optionally specify a port range; if you don't, traffic for all types and codes is allowed when authorizing rules.

", - "IpRange$CidrIp": "

The IPv4 CIDR range. You can either specify a CIDR range or a source security group, not both. To specify a single IPv4 address, use the /32 prefix.

", + "IpRange$CidrIp": "

The IPv4 CIDR range. You can either specify a CIDR range or a source security group, not both. To specify a single IPv4 address, use the /32 prefix length.

", + "IpRange$Description": "

A description for the security group rule that references this IPv4 address range.

Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*

", "IpRanges$member": null, "Ipv6AddressList$member": null, "Ipv6CidrBlock$Ipv6CidrBlock": "

The IPv6 CIDR block.

", - "Ipv6Range$CidrIpv6": "

The IPv6 CIDR range. You can either specify a CIDR range or a source security group, not both. To specify a single IPv6 address, use the /128 prefix.

", + "Ipv6Range$CidrIpv6": "

The IPv6 CIDR range. You can either specify a CIDR range or a source security group, not both. To specify a single IPv6 address, use the /128 prefix length.

", + "Ipv6Range$Description": "

A description for the security group rule that references this IPv6 address range.

Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*

", "KeyNameStringList$member": null, "KeyPair$KeyFingerprint": "

The SHA-1 digest of the DER encoded private key.

", "KeyPair$KeyMaterial": "

An unencrypted PEM encoded RSA private key.

", @@ -6114,28 +7433,86 @@ "LaunchSpecification$KeyName": "

The name of the key pair.

", "LaunchSpecification$RamdiskId": "

The ID of the RAM disk.

", "LaunchSpecification$SubnetId": "

The ID of the subnet in which to launch the instance.

", + "LaunchTemplate$LaunchTemplateId": "

The ID of the launch template.

", + "LaunchTemplate$CreatedBy": "

The principal that created the launch template.

", + "LaunchTemplateBlockDeviceMapping$DeviceName": "

The device name.

", + "LaunchTemplateBlockDeviceMapping$VirtualName": "

The virtual device name (ephemeralN).

", + "LaunchTemplateBlockDeviceMapping$NoDevice": "

Suppresses the specified device included in the block device mapping of the AMI.

", + "LaunchTemplateBlockDeviceMappingRequest$DeviceName": "

The device name (for example, /dev/sdh or xvdh).

", + "LaunchTemplateBlockDeviceMappingRequest$VirtualName": "

The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.

", + "LaunchTemplateBlockDeviceMappingRequest$NoDevice": "

Suppresses the specified device included in the block device mapping of the AMI.

", + "LaunchTemplateEbsBlockDevice$KmsKeyId": "

The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption.

", + "LaunchTemplateEbsBlockDevice$SnapshotId": "

The ID of the snapshot.

", + "LaunchTemplateEbsBlockDeviceRequest$KmsKeyId": "

The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption.

", + "LaunchTemplateEbsBlockDeviceRequest$SnapshotId": "

The ID of the snapshot.

", + "LaunchTemplateIamInstanceProfileSpecification$Arn": "

The Amazon Resource Name (ARN) of the instance profile.

", + "LaunchTemplateIamInstanceProfileSpecification$Name": "

The name of the instance profile.

", + "LaunchTemplateIamInstanceProfileSpecificationRequest$Arn": "

The Amazon Resource Name (ARN) of the instance profile.

", + "LaunchTemplateIamInstanceProfileSpecificationRequest$Name": "

The name of the instance profile.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$Description": "

A description for the network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$NetworkInterfaceId": "

The ID of the network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$PrivateIpAddress": "

The primary private IPv4 address of the network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecification$SubnetId": "

The ID of the subnet for the network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$Description": "

A description for the network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$PrivateIpAddress": "

The primary private IPv4 address of the network interface.

", + "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest$SubnetId": "

The ID of the subnet for the network interface.

", + "LaunchTemplateOverrides$SpotPrice": "

The maximum price per unit hour that you are willing to pay for a Spot Instance.

", + "LaunchTemplateOverrides$SubnetId": "

The ID of the subnet in which to launch the instances.

", + "LaunchTemplateOverrides$AvailabilityZone": "

The Availability Zone in which to launch the instances.

", + "LaunchTemplatePlacement$AvailabilityZone": "

The Availability Zone of the instance.

", + "LaunchTemplatePlacement$Affinity": "

The affinity setting for the instance on the Dedicated Host.

", + "LaunchTemplatePlacement$GroupName": "

The name of the placement group for the instance.

", + "LaunchTemplatePlacement$HostId": "

The ID of the Dedicated Host for the instance.

", + "LaunchTemplatePlacement$SpreadDomain": "

Reserved for future use.

", + "LaunchTemplatePlacementRequest$AvailabilityZone": "

The Availability Zone for the instance.

", + "LaunchTemplatePlacementRequest$Affinity": "

The affinity setting for an instance on a Dedicated Host.

", + "LaunchTemplatePlacementRequest$GroupName": "

The name of the placement group for the instance.

", + "LaunchTemplatePlacementRequest$HostId": "

The ID of the Dedicated Host for the instance.

", + "LaunchTemplatePlacementRequest$SpreadDomain": "

Reserved for future use.

", + "LaunchTemplateSpecification$LaunchTemplateId": "

The ID of the launch template.

", + "LaunchTemplateSpecification$LaunchTemplateName": "

The name of the launch template.

", + "LaunchTemplateSpecification$Version": "

The version number of the launch template.

Default: The default version for the launch template.

", + "LaunchTemplateSpotMarketOptions$MaxPrice": "

The maximum hourly price you're willing to pay for the Spot Instances.

", + "LaunchTemplateSpotMarketOptionsRequest$MaxPrice": "

The maximum hourly price you're willing to pay for the Spot Instances.

", + "LaunchTemplateVersion$LaunchTemplateId": "

The ID of the launch template.

", + "LaunchTemplateVersion$CreatedBy": "

The principal that created the version.

", + "LoadPermission$UserId": "

The AWS account ID.

", + "LoadPermissionRequest$UserId": "

The AWS account ID.

", + "ModifyFpgaImageAttributeRequest$FpgaImageId": "

The ID of the AFI.

", + "ModifyFpgaImageAttributeRequest$Description": "

A description for the AFI.

", + "ModifyFpgaImageAttributeRequest$Name": "

A name for the AFI.

", "ModifyIdFormatRequest$Resource": "

The type of resource: instance | reservation | snapshot | volume

", "ModifyIdentityIdFormatRequest$PrincipalArn": "

The ARN of the principal, which can be an IAM user, IAM role, or the root user. Specify all to modify the ID format for all IAM users, IAM roles, and the root user of the account.

", "ModifyIdentityIdFormatRequest$Resource": "

The type of resource: instance | reservation | snapshot | volume

", - "ModifyImageAttributeRequest$Attribute": "

The name of the attribute to modify.

", + "ModifyImageAttributeRequest$Attribute": "

The name of the attribute to modify. The valid values are description, launchPermission, and productCodes.

", "ModifyImageAttributeRequest$ImageId": "

The ID of the AMI.

", - "ModifyImageAttributeRequest$Value": "

The value of the attribute being modified. This is only valid when modifying the description attribute.

", + "ModifyImageAttributeRequest$Value": "

The value of the attribute being modified. This parameter can be used only when the Attribute parameter is description or productCodes.

", "ModifyInstanceAttributeRequest$InstanceId": "

The ID of the instance.

", "ModifyInstanceAttributeRequest$Value": "

A new value for the attribute. Use only with the kernel, ramdisk, userData, disableApiTermination, or instanceInitiatedShutdownBehavior attribute.

", + "ModifyInstanceCreditSpecificationRequest$ClientToken": "

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", "ModifyInstancePlacementRequest$HostId": "

The ID of the Dedicated Host that the instance will have affinity with.

", "ModifyInstancePlacementRequest$InstanceId": "

The ID of the instance that you are modifying.

", + "ModifyLaunchTemplateRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", + "ModifyLaunchTemplateRequest$LaunchTemplateId": "

The ID of the launch template. You must specify either the launch template ID or launch template name in the request.

", + "ModifyLaunchTemplateRequest$DefaultVersion": "

The version number of the launch template to set as the default version.

", "ModifyNetworkInterfaceAttributeRequest$NetworkInterfaceId": "

The ID of the network interface.

", "ModifyReservedInstancesRequest$ClientToken": "

A unique, case-sensitive token you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", "ModifyReservedInstancesResult$ReservedInstancesModificationId": "

The ID for the modification.

", "ModifySnapshotAttributeRequest$SnapshotId": "

The ID of the snapshot.

", - "ModifySpotFleetRequestRequest$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "ModifySpotFleetRequestRequest$SpotFleetRequestId": "

The ID of the Spot Fleet request.

", "ModifySubnetAttributeRequest$SubnetId": "

The ID of the subnet.

", "ModifyVolumeAttributeRequest$VolumeId": "

The ID of the volume.

", "ModifyVolumeRequest$VolumeId": null, "ModifyVpcAttributeRequest$VpcId": "

The ID of the VPC.

", - "ModifyVpcEndpointRequest$PolicyDocument": "

A policy document to attach to the endpoint. The policy must be in valid JSON format.

", + "ModifyVpcEndpointConnectionNotificationRequest$ConnectionNotificationId": "

The ID of the notification.

", + "ModifyVpcEndpointConnectionNotificationRequest$ConnectionNotificationArn": "

The ARN for the SNS topic for the notification.

", "ModifyVpcEndpointRequest$VpcEndpointId": "

The ID of the endpoint.

", + "ModifyVpcEndpointRequest$PolicyDocument": "

(Gateway endpoint) A policy document to attach to the endpoint. The policy must be in valid JSON format.

", + "ModifyVpcEndpointServiceConfigurationRequest$ServiceId": "

The ID of the service.

", + "ModifyVpcEndpointServicePermissionsRequest$ServiceId": "

The ID of the service.

", "ModifyVpcPeeringConnectionOptionsRequest$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "ModifyVpcTenancyRequest$VpcId": "

The ID of the VPC.

", "MoveAddressToVpcRequest$PublicIp": "

The Elastic IP address.

", "MoveAddressToVpcResult$AllocationId": "

The allocation ID for the Elastic IP address.

", "MovingAddressStatus$PublicIp": "

The Elastic IP address.

", @@ -6177,6 +7554,12 @@ "NetworkInterfaceAttachmentChanges$AttachmentId": "

The ID of the network interface attachment.

", "NetworkInterfaceIdList$member": null, "NetworkInterfaceIpv6Address$Ipv6Address": "

The IPv6 address.

", + "NetworkInterfacePermission$NetworkInterfacePermissionId": "

The ID of the network interface permission.

", + "NetworkInterfacePermission$NetworkInterfaceId": "

The ID of the network interface.

", + "NetworkInterfacePermission$AwsAccountId": "

The AWS account ID.

", + "NetworkInterfacePermission$AwsService": "

The AWS service.

", + "NetworkInterfacePermissionIdList$member": null, + "NetworkInterfacePermissionState$StatusMessage": "

A status message, if applicable.

", "NetworkInterfacePrivateIpAddress$PrivateDnsName": "

The private DNS name.

", "NetworkInterfacePrivateIpAddress$PrivateIpAddress": "

The private IPv4 address.

", "NewDhcpConfiguration$Key": null, @@ -6194,6 +7577,7 @@ "PlacementGroupStringList$member": null, "PrefixList$PrefixListId": "

The ID of the prefix.

", "PrefixList$PrefixListName": "

The name of the prefix.

", + "PrefixListId$Description": "

A description for the security group rule that references this prefix list ID.

Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*

", "PrefixListId$PrefixListId": "

The ID of the prefix.

", "PrefixListIdSet$member": null, "PrivateIpAddressSpecification$PrivateIpAddress": "

The private IPv4 addresses.

", @@ -6228,10 +7612,11 @@ "RegisterImageRequest$KernelId": "

The ID of the kernel.

", "RegisterImageRequest$Name": "

A name for your AMI.

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)

", "RegisterImageRequest$RamdiskId": "

The ID of the RAM disk.

", - "RegisterImageRequest$RootDeviceName": "

The name of the root device (for example, /dev/sda1, or /dev/xvda).

", + "RegisterImageRequest$RootDeviceName": "

The device name of the root device volume (for example, /dev/sda1).

", "RegisterImageRequest$SriovNetSupport": "

Set to simple to enable enhanced networking with the Intel 82599 Virtual Function interface for the AMI and any instances that you launch from the AMI.

There is no way to disable sriovNetSupport at this time.

This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.

", - "RegisterImageRequest$VirtualizationType": "

The type of virtualization.

Default: paravirtual

", + "RegisterImageRequest$VirtualizationType": "

The type of virtualization (hvm | paravirtual).

Default: paravirtual

", "RegisterImageResult$ImageId": "

The ID of the newly registered AMI.

", + "RejectVpcEndpointConnectionsRequest$ServiceId": "

The ID of the service.

", "RejectVpcPeeringConnectionRequest$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", "ReleaseAddressRequest$AllocationId": "

[EC2-VPC] The allocation ID. Required for EC2-VPC.

", "ReleaseAddressRequest$PublicIp": "

[EC2-Classic] The Elastic IP address. Required for EC2-Classic.

", @@ -6258,11 +7643,16 @@ "ReportInstanceStatusRequest$Description": "

Descriptive text about the health state of your instance.

", "RequestHostIdList$member": null, "RequestHostIdSet$member": null, - "RequestSpotFleetResponse$SpotFleetRequestId": "

The ID of the Spot fleet request.

", - "RequestSpotInstancesRequest$AvailabilityZoneGroup": "

The user-specified name for a logical grouping of bids.

When you specify an Availability Zone group in a Spot Instance request, all Spot instances in the request are launched in the same Availability Zone. Instance proximity is maintained with this parameter, but the choice of Availability Zone is not. The group applies only to bids for Spot Instances of the same instance type. Any additional Spot instance requests that are specified with the same Availability Zone group name are launched in that same Availability Zone, as long as at least one instance from the group is still active.

If there is no active instance running in the Availability Zone group that you specify for a new Spot instance request (all instances are terminated, the bid is expired, or the bid falls below current market), then Amazon EC2 launches the instance in any Availability Zone where the constraint can be met. Consequently, the subsequent set of Spot instances could be placed in a different zone from the original request, even if you specified the same Availability Zone group.

Default: Instances are launched in any available Availability Zone.

", + "RequestLaunchTemplateData$KernelId": "

The ID of the kernel.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User Provided Kernels in the Amazon Elastic Compute Cloud User Guide.

", + "RequestLaunchTemplateData$ImageId": "

The ID of the AMI, which you can get by using DescribeImages.

", + "RequestLaunchTemplateData$KeyName": "

The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair.

If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.

", + "RequestLaunchTemplateData$RamDiskId": "

The ID of the RAM disk.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User Provided Kernels in the Amazon Elastic Compute Cloud User Guide.

", + "RequestLaunchTemplateData$UserData": "

The user data to make available to the instance. For more information, see Running Commands on Your Linux Instance at Launch (Linux) and Adding User Data (Windows). If you are using a command line tool, base64-encoding is performed for you and you can load the text from a file. Otherwise, you must provide base64-encoded text.

", + "RequestSpotFleetResponse$SpotFleetRequestId": "

The ID of the Spot Fleet request.

", + "RequestSpotInstancesRequest$AvailabilityZoneGroup": "

The user-specified name for a logical grouping of requests.

When you specify an Availability Zone group in a Spot Instance request, all Spot Instances in the request are launched in the same Availability Zone. Instance proximity is maintained with this parameter, but the choice of Availability Zone is not. The group applies only to requests for Spot Instances of the same instance type. Any additional Spot Instance requests that are specified with the same Availability Zone group name are launched in that same Availability Zone, as long as at least one instance from the group is still active.

If there is no active instance running in the Availability Zone group that you specify for a new Spot Instance request (all instances are terminated, the request is expired, or the maximum price you specified falls below current Spot price), then Amazon EC2 launches the instance in any Availability Zone where the constraint can be met. Consequently, the subsequent set of Spot Instances could be placed in a different zone from the original request, even if you specified the same Availability Zone group.

Default: Instances are launched in any available Availability Zone.

", "RequestSpotInstancesRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.

", - "RequestSpotInstancesRequest$LaunchGroup": "

The instance launch group. Launch groups are Spot instances that launch together and terminate together.

Default: Instances are launched and terminated individually

", - "RequestSpotInstancesRequest$SpotPrice": "

The maximum hourly price (bid) for any Spot instance launched to fulfill the request.

", + "RequestSpotInstancesRequest$LaunchGroup": "

The instance launch group. Launch groups are Spot Instances that launch together and terminate together.

Default: Instances are launched and terminated individually

", + "RequestSpotInstancesRequest$SpotPrice": "

The maximum price per hour that you are willing to pay for a Spot Instance. The default is the On-Demand price.

", "RequestSpotLaunchSpecification$AddressingType": "

Deprecated.

", "RequestSpotLaunchSpecification$ImageId": "

The ID of the AMI.

", "RequestSpotLaunchSpecification$KernelId": "

The ID of the kernel.

", @@ -6297,25 +7687,32 @@ "ReservedInstancesOffering$AvailabilityZone": "

The Availability Zone in which the Reserved Instance can be used.

", "ReservedInstancesOffering$ReservedInstancesOfferingId": "

The ID of the Reserved Instance offering. This is the offering ID used in GetReservedInstancesExchangeQuote to confirm that an exchange can be made.

", "ReservedInstancesOfferingIdStringList$member": null, + "ResetFpgaImageAttributeRequest$FpgaImageId": "

The ID of the AFI.

", "ResetImageAttributeRequest$ImageId": "

The ID of the AMI.

", "ResetInstanceAttributeRequest$InstanceId": "

The ID of the instance.

", "ResetNetworkInterfaceAttributeRequest$NetworkInterfaceId": "

The ID of the network interface.

", "ResetNetworkInterfaceAttributeRequest$SourceDestCheck": "

The source/destination checking attribute. Resets the value to true.

", "ResetSnapshotAttributeRequest$SnapshotId": "

The ID of the snapshot.

", "ResourceIdList$member": null, + "ResponseError$Message": "

The error message, if applicable.

", "ResponseHostIdList$member": null, "ResponseHostIdSet$member": null, + "ResponseLaunchTemplateData$KernelId": "

The ID of the kernel, if applicable.

", + "ResponseLaunchTemplateData$ImageId": "

The ID of the AMI that was used to launch the instance.

", + "ResponseLaunchTemplateData$KeyName": "

The name of the key pair.

", + "ResponseLaunchTemplateData$RamDiskId": "

The ID of the RAM disk, if applicable.

", + "ResponseLaunchTemplateData$UserData": "

The user data for the instance.

", "RestorableByStringList$member": null, "RestoreAddressToClassicRequest$PublicIp": "

The Elastic IP address.

", "RestoreAddressToClassicResult$PublicIp": "

The Elastic IP address.

", "RevokeSecurityGroupEgressRequest$GroupId": "

The ID of the security group.

", - "RevokeSecurityGroupEgressRequest$CidrIp": "

The CIDR IP address range. We recommend that you specify the CIDR range in a set of IP permissions instead.

", - "RevokeSecurityGroupEgressRequest$IpProtocol": "

The IP protocol name or number. We recommend that you specify the protocol in a set of IP permissions instead.

", - "RevokeSecurityGroupEgressRequest$SourceSecurityGroupName": "

The name of a destination security group. To revoke outbound access to a destination security group, we recommend that you use a set of IP permissions instead.

", - "RevokeSecurityGroupEgressRequest$SourceSecurityGroupOwnerId": "

The AWS account number for a destination security group. To revoke outbound access to a destination security group, we recommend that you use a set of IP permissions instead.

", + "RevokeSecurityGroupEgressRequest$CidrIp": "

Not supported. Use a set of IP permissions to specify the CIDR.

", + "RevokeSecurityGroupEgressRequest$IpProtocol": "

Not supported. Use a set of IP permissions to specify the protocol name or number.

", + "RevokeSecurityGroupEgressRequest$SourceSecurityGroupName": "

Not supported. Use a set of IP permissions to specify a destination security group.

", + "RevokeSecurityGroupEgressRequest$SourceSecurityGroupOwnerId": "

Not supported. Use a set of IP permissions to specify a destination security group.

", "RevokeSecurityGroupIngressRequest$CidrIp": "

The CIDR IP address range. You can't specify this parameter when specifying a source security group.

", - "RevokeSecurityGroupIngressRequest$GroupId": "

The ID of the security group. Required for a security group in a nondefault VPC.

", - "RevokeSecurityGroupIngressRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group.

", + "RevokeSecurityGroupIngressRequest$GroupId": "

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

", + "RevokeSecurityGroupIngressRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

", "RevokeSecurityGroupIngressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). Use -1 to specify all.

", "RevokeSecurityGroupIngressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, the IP protocol, and the end of the port range. For EC2-VPC, the source security group must be in the same VPC. To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead.

", "RevokeSecurityGroupIngressRequest$SourceSecurityGroupOwnerId": "

[EC2-Classic] The AWS account ID of the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead.

", @@ -6339,7 +7736,7 @@ "RunInstancesRequest$KeyName": "

The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair.

If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.

", "RunInstancesRequest$RamdiskId": "

The ID of the RAM disk.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide.

", "RunInstancesRequest$SubnetId": "

[EC2-VPC] The ID of the subnet to launch the instance into.

", - "RunInstancesRequest$UserData": "

The user data to make available to the instance. For more information, see Running Commands on Your Linux Instance at Launch (Linux) and Adding User Data (Windows). If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.

", + "RunInstancesRequest$UserData": "

The user data to make available to the instance. For more information, see Running Commands on Your Linux Instance at Launch (Linux) and Adding User Data (Windows). If you are using a command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text.

", "RunInstancesRequest$AdditionalInfo": "

Reserved.

", "RunInstancesRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraints: Maximum 64 ASCII characters

", "RunInstancesRequest$PrivateIpAddress": "

[EC2-VPC] The primary IPv4 address. You must specify a value from the IPv4 address range of the subnet.

Only one private IP address can be designated as primary. You can't specify this option if you've specified the option to designate a private IP address as the primary IP address in a network interface specification. You cannot specify this option if you're launching more than one instance in the request.

", @@ -6366,9 +7763,9 @@ "ScheduledInstanceRecurrence$OccurrenceUnit": "

The unit for occurrenceDaySet (DayOfWeek or DayOfMonth).

", "ScheduledInstanceRecurrenceRequest$Frequency": "

The frequency (Daily, Weekly, or Monthly).

", "ScheduledInstanceRecurrenceRequest$OccurrenceUnit": "

The unit for OccurrenceDays (DayOfWeek or DayOfMonth). This value is required for a monthly schedule. You can't specify DayOfWeek with a weekly schedule. You can't specify this value with a daily schedule.

", - "ScheduledInstancesBlockDeviceMapping$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", + "ScheduledInstancesBlockDeviceMapping$DeviceName": "

The device name (for example, /dev/sdh or xvdh).

", "ScheduledInstancesBlockDeviceMapping$NoDevice": "

Suppresses the specified device included in the block device mapping of the AMI.

", - "ScheduledInstancesBlockDeviceMapping$VirtualName": "

The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with two available instance store volumes can specify mappings for ephemeral0 and ephemeral1.The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.

Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.

", + "ScheduledInstancesBlockDeviceMapping$VirtualName": "

The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with two available instance store volumes can specify mappings for ephemeral0 and ephemeral1. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.

Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.

", "ScheduledInstancesEbs$SnapshotId": "

The ID of the snapshot.

", "ScheduledInstancesEbs$VolumeType": "

The volume type. gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, Throughput Optimized HDD for st1, Cold HDD for sc1, or standard for Magnetic.

Default: standard

", "ScheduledInstancesIamInstanceProfile$Arn": "

The Amazon Resource Name (ARN).

", @@ -6394,10 +7791,18 @@ "SecurityGroup$GroupId": "

The ID of the security group.

", "SecurityGroup$VpcId": "

[EC2-VPC] The ID of the VPC for the security group.

", "SecurityGroupIdStringList$member": null, + "SecurityGroupIdentifier$GroupId": "

The ID of the security group.

", + "SecurityGroupIdentifier$GroupName": "

The name of the security group.

", "SecurityGroupReference$GroupId": "

The ID of your security group.

", "SecurityGroupReference$ReferencingVpcId": "

The ID of the VPC with the referencing security group.

", "SecurityGroupReference$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", "SecurityGroupStringList$member": null, + "ServiceConfiguration$ServiceId": "

The ID of the service.

", + "ServiceConfiguration$ServiceName": "

The name of the service.

", + "ServiceConfiguration$PrivateDnsName": "

The private DNS name for the service.

", + "ServiceDetail$ServiceName": "

The Amazon Resource Name (ARN) of the service.

", + "ServiceDetail$Owner": "

The AWS account ID of the service owner.

", + "ServiceDetail$PrivateDnsName": "

The private DNS name for the service.

", "Snapshot$DataEncryptionKeyId": "

The data encryption key identifier for the snapshot. This value is a unique identifier that corresponds to the data encryption key that was used to encrypt the original volume or snapshot copy. Because data encryption keys are inherited by volumes created from snapshots, and vice versa, if snapshots share the same data encryption key identifier, then they belong to the same volume/snapshot lineage. This parameter is only returned by the DescribeSnapshots API operation.

", "Snapshot$Description": "

The description for the snapshot.

", "Snapshot$KmsKeyId": "

The full ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the volume encryption key for the parent volume.

", @@ -6426,7 +7831,7 @@ "SnapshotTaskDetail$Status": "

A brief status for the import snapshot task.

", "SnapshotTaskDetail$StatusMessage": "

A detailed status message for the import snapshot task.

", "SnapshotTaskDetail$Url": "

The URL of the disk image from which the snapshot is created.

", - "SpotDatafeedSubscription$Bucket": "

The Amazon S3 bucket where the Spot instance data feed is located.

", + "SpotDatafeedSubscription$Bucket": "

The Amazon S3 bucket where the Spot Instance data feed is located.

", "SpotDatafeedSubscription$OwnerId": "

The AWS account ID of the account.

", "SpotDatafeedSubscription$Prefix": "

The prefix that is prepended to data feed files.

", "SpotFleetLaunchSpecification$AddressingType": "

Deprecated.

", @@ -6434,29 +7839,30 @@ "SpotFleetLaunchSpecification$KernelId": "

The ID of the kernel.

", "SpotFleetLaunchSpecification$KeyName": "

The name of the key pair.

", "SpotFleetLaunchSpecification$RamdiskId": "

The ID of the RAM disk.

", - "SpotFleetLaunchSpecification$SpotPrice": "

The bid price per unit hour for the specified instance type. If this value is not specified, the default is the Spot bid price specified for the fleet. To determine the bid price per unit hour, divide the Spot bid price by the value of WeightedCapacity.

", + "SpotFleetLaunchSpecification$SpotPrice": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. If this value is not specified, the default is the Spot price specified for the fleet. To determine the Spot price per unit hour, divide the Spot price by the value of WeightedCapacity.

", "SpotFleetLaunchSpecification$SubnetId": "

The ID of the subnet in which to launch the instances. To specify multiple subnets, separate them using commas; for example, \"subnet-a61dafcf, subnet-65ea5f08\".

", "SpotFleetLaunchSpecification$UserData": "

The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.

", - "SpotFleetRequestConfig$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "SpotFleetRequestConfig$SpotFleetRequestId": "

The ID of the Spot Fleet request.

", "SpotFleetRequestConfigData$ClientToken": "

A unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see Ensuring Idempotency.

", - "SpotFleetRequestConfigData$IamFleetRole": "

Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.

", - "SpotFleetRequestConfigData$SpotPrice": "

The bid price per unit hour.

", - "SpotInstanceRequest$ActualBlockHourlyPrice": "

If you specified a duration and your Spot instance request was fulfilled, this is the fixed hourly price in effect for the Spot instance while it runs.

", - "SpotInstanceRequest$AvailabilityZoneGroup": "

The Availability Zone group. If you specify the same Availability Zone group for all Spot instance requests, all Spot instances are launched in the same Availability Zone.

", - "SpotInstanceRequest$InstanceId": "

The instance ID, if an instance has been launched to fulfill the Spot instance request.

", - "SpotInstanceRequest$LaunchGroup": "

The instance launch group. Launch groups are Spot instances that launch together and terminate together.

", - "SpotInstanceRequest$LaunchedAvailabilityZone": "

The Availability Zone in which the bid is launched.

", - "SpotInstanceRequest$SpotInstanceRequestId": "

The ID of the Spot instance request.

", - "SpotInstanceRequest$SpotPrice": "

The maximum hourly price (bid) for the Spot instance launched to fulfill the request.

", + "SpotFleetRequestConfigData$IamFleetRole": "

Grants the Spot Fleet permission to terminate Spot Instances on your behalf when you cancel its Spot Fleet request using CancelSpotFleetRequests or when the Spot Fleet request expires, if you set terminateInstancesWithExpiration.

", + "SpotFleetRequestConfigData$SpotPrice": "

The maximum price per unit hour that you are willing to pay for a Spot Instance. The default is the On-Demand price.

", + "SpotInstanceRequest$ActualBlockHourlyPrice": "

If you specified a duration and your Spot Instance request was fulfilled, this is the fixed hourly price in effect for the Spot Instance while it runs.

", + "SpotInstanceRequest$AvailabilityZoneGroup": "

The Availability Zone group. If you specify the same Availability Zone group for all Spot Instance requests, all Spot Instances are launched in the same Availability Zone.

", + "SpotInstanceRequest$InstanceId": "

The instance ID, if an instance has been launched to fulfill the Spot Instance request.

", + "SpotInstanceRequest$LaunchGroup": "

The instance launch group. Launch groups are Spot Instances that launch together and terminate together.

", + "SpotInstanceRequest$LaunchedAvailabilityZone": "

The Availability Zone in which the request is launched.

", + "SpotInstanceRequest$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", + "SpotInstanceRequest$SpotPrice": "

The maximum price per hour that you are willing to pay for a Spot Instance.

", "SpotInstanceRequestIdList$member": null, - "SpotInstanceStateFault$Code": "

The reason code for the Spot instance state change.

", - "SpotInstanceStateFault$Message": "

The message for the Spot instance state change.

", - "SpotInstanceStatus$Code": "

The status code. For a list of status codes, see Spot Bid Status Codes in the Amazon Elastic Compute Cloud User Guide.

", + "SpotInstanceStateFault$Code": "

The reason code for the Spot Instance state change.

", + "SpotInstanceStateFault$Message": "

The message for the Spot Instance state change.

", + "SpotInstanceStatus$Code": "

The status code. For a list of status codes, see Spot Status Codes in the Amazon Elastic Compute Cloud User Guide.

", "SpotInstanceStatus$Message": "

The description for the status code.

", - "SpotPlacement$AvailabilityZone": "

The Availability Zone.

[Spot fleet only] To specify multiple Availability Zones, separate them using commas; for example, \"us-west-2a, us-west-2b\".

", - "SpotPlacement$GroupName": "

The name of the placement group (for cluster instances).

", + "SpotMarketOptions$MaxPrice": "

The maximum hourly price you're willing to pay for the Spot Instances. The default is the On-Demand price.

", + "SpotPlacement$AvailabilityZone": "

The Availability Zone.

[Spot Fleet only] To specify multiple Availability Zones, separate them using commas; for example, \"us-west-2a, us-west-2b\".

", + "SpotPlacement$GroupName": "

The name of the placement group.

", "SpotPrice$AvailabilityZone": "

The Availability Zone.

", - "SpotPrice$SpotPrice": "

The maximum price (bid) that you are willing to pay for a Spot instance.

", + "SpotPrice$SpotPrice": "

The maximum price per hour that you are willing to pay for a Spot Instance.

", "StaleIpPermission$IpProtocol": "

The IP protocol name (for tcp, udp, and icmp) or number (see Protocol Numbers).

", "StaleSecurityGroup$Description": "

The description of the security group.

", "StaleSecurityGroup$GroupId": "

The ID of the security group.

", @@ -6464,7 +7870,7 @@ "StaleSecurityGroup$VpcId": "

The ID of the VPC for the security group.

", "StartInstancesRequest$AdditionalInfo": "

Reserved.

", "StateReason$Code": "

The reason code for the state change.

", - "StateReason$Message": "

The message for the state change.

", + "StateReason$Message": "

The message for the state change.

", "StorageLocation$Bucket": "

The name of the S3 bucket.

", "StorageLocation$Key": "

The key.

", "Subnet$AvailabilityZone": "

The Availability Zone of the subnet.

", @@ -6475,6 +7881,7 @@ "SubnetIdStringList$member": null, "SubnetIpv6CidrBlockAssociation$AssociationId": "

The association ID for the CIDR block.

", "SubnetIpv6CidrBlockAssociation$Ipv6CidrBlock": "

The IPv6 CIDR block.

", + "SuccessfulInstanceCreditSpecificationItem$InstanceId": "

The ID of the instance.

", "Tag$Key": "

The key of the tag.

Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with aws:

", "Tag$Value": "

The value of the tag.

Constraints: Tag values are case-sensitive and accept a maximum of 255 Unicode characters.

", "TagDescription$Key": "

The tag key.

", @@ -6482,18 +7889,26 @@ "TagDescription$Value": "

The tag value.

", "TargetConfiguration$OfferingId": "

The ID of the Convertible Reserved Instance offering.

", "TargetConfigurationRequest$OfferingId": "

The Convertible Reserved Instance offering ID.

", + "TargetGroup$Arn": "

The Amazon Resource Name (ARN) of the target group.

", "UnassignIpv6AddressesRequest$NetworkInterfaceId": "

The ID of the network interface.

", "UnassignIpv6AddressesResult$NetworkInterfaceId": "

The ID of the network interface.

", "UnassignPrivateIpAddressesRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "UnsuccessfulInstanceCreditSpecificationItem$InstanceId": "

The ID of the instance.

", + "UnsuccessfulInstanceCreditSpecificationItemError$Message": "

The applicable error message.

", "UnsuccessfulItem$ResourceId": "

The ID of the resource.

", "UnsuccessfulItemError$Code": "

The error code.

", "UnsuccessfulItemError$Message": "

The error message accompanying the error code.

", + "UpdateSecurityGroupRuleDescriptionsEgressRequest$GroupId": "

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

", + "UpdateSecurityGroupRuleDescriptionsEgressRequest$GroupName": "

[Default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

", + "UpdateSecurityGroupRuleDescriptionsIngressRequest$GroupId": "

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

", + "UpdateSecurityGroupRuleDescriptionsIngressRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

", "UserBucket$S3Bucket": "

The name of the S3 bucket where the disk image is located.

", "UserBucket$S3Key": "

The file name of the disk image.

", "UserBucketDetails$S3Bucket": "

The S3 bucket from which the disk image was created.

", "UserBucketDetails$S3Key": "

The file name of the disk image.

", "UserData$Data": "

The user data. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.

", "UserGroupStringList$member": null, + "UserIdGroupPair$Description": "

A description for the security group rule that references this user ID group pair.

Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*

", "UserIdGroupPair$GroupId": "

The ID of the security group.

", "UserIdGroupPair$GroupName": "

The name of the security group. In a request, use this parameter for a security group in EC2-Classic or a default VPC only. For a security group in a nondefault VPC, use the security group ID.

", "UserIdGroupPair$PeeringStatus": "

The status of a VPC peering connection, if applicable.

", @@ -6502,6 +7917,7 @@ "UserIdGroupPair$VpcPeeringConnectionId": "

The ID of the VPC peering connection, if applicable.

", "UserIdStringList$member": null, "ValueStringList$member": null, + "VersionStringList$member": null, "VgwTelemetry$OutsideIpAddress": "

The Internet-routable IP address of the virtual private gateway's outside interface.

", "VgwTelemetry$StatusMessage": "

If an error occurs, a description of the error.

", "Volume$AvailabilityZone": "

The Availability Zone for the volume.

", @@ -6524,17 +7940,22 @@ "VolumeStatusEvent$EventType": "

The type of this event.

", "VolumeStatusItem$AvailabilityZone": "

The Availability Zone of the volume.

", "VolumeStatusItem$VolumeId": "

The volume ID.

", - "Vpc$CidrBlock": "

The IPv4 CIDR block for the VPC.

", + "Vpc$CidrBlock": "

The primary IPv4 CIDR block for the VPC.

", "Vpc$DhcpOptionsId": "

The ID of the set of DHCP options you've associated with the VPC (or default if the default options are associated with the VPC).

", "Vpc$VpcId": "

The ID of the VPC.

", "VpcAttachment$VpcId": "

The ID of the VPC.

", + "VpcCidrBlockAssociation$AssociationId": "

The association ID for the IPv4 CIDR block.

", + "VpcCidrBlockAssociation$CidrBlock": "

The IPv4 CIDR block.

", "VpcCidrBlockState$StatusMessage": "

A message about the status of the CIDR block, if applicable.

", "VpcClassicLink$VpcId": "

The ID of the VPC.

", "VpcClassicLinkIdList$member": null, - "VpcEndpoint$PolicyDocument": "

The policy document associated with the endpoint.

", - "VpcEndpoint$ServiceName": "

The name of the AWS service to which the endpoint is associated.

", "VpcEndpoint$VpcEndpointId": "

The ID of the VPC endpoint.

", "VpcEndpoint$VpcId": "

The ID of the VPC to which the endpoint is associated.

", + "VpcEndpoint$ServiceName": "

The name of the service to which the endpoint is associated.

", + "VpcEndpoint$PolicyDocument": "

The policy document associated with the endpoint, if applicable.

", + "VpcEndpointConnection$ServiceId": "

The ID of the service to which the endpoint is connected.

", + "VpcEndpointConnection$VpcEndpointId": "

The ID of the VPC endpoint.

", + "VpcEndpointConnection$VpcEndpointOwner": "

The AWS account ID of the owner of the VPC endpoint.

", "VpcIdStringList$member": null, "VpcIpv6CidrBlockAssociation$AssociationId": "

The association ID for the IPv6 CIDR block.

", "VpcIpv6CidrBlockAssociation$Ipv6CidrBlock": "

The IPv6 CIDR block.

", @@ -6543,8 +7964,10 @@ "VpcPeeringConnectionVpcInfo$CidrBlock": "

The IPv4 CIDR block for the VPC.

", "VpcPeeringConnectionVpcInfo$OwnerId": "

The AWS account ID of the VPC owner.

", "VpcPeeringConnectionVpcInfo$VpcId": "

The ID of the VPC.

", + "VpcPeeringConnectionVpcInfo$Region": "

The region in which the VPC is located.

", "VpnConnection$CustomerGatewayConfiguration": "

The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the CreateVpnConnection response; however, it's present in the DescribeVpnConnections response only if the VPN connection is in the pending or available state.

", "VpnConnection$CustomerGatewayId": "

The ID of the customer gateway at your end of the VPN connection.

", + "VpnConnection$Category": "

The category of the VPN connection. A value of VPN indicates an AWS VPN connection. A value of VPN-Classic indicates an AWS Classic VPN connection. For more information, see AWS Managed VPN Categories in the Amazon Virtual Private Cloud User Guide.

", "VpnConnection$VpnConnectionId": "

The ID of the VPN connection.

", "VpnConnection$VpnGatewayId": "

The ID of the virtual private gateway at the AWS side of the VPN connection.

", "VpnConnectionIdStringList$member": null, @@ -6552,12 +7975,15 @@ "VpnGateway$VpnGatewayId": "

The ID of the virtual private gateway.

", "VpnGatewayIdStringList$member": null, "VpnStaticRoute$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer data center.

", + "VpnTunnelOptionsSpecification$TunnelInsideCidr": "

The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway.

Constraints: A size /30 CIDR block from the 169.254.0.0/16 range. The following CIDR blocks are reserved and cannot be used:

", + "VpnTunnelOptionsSpecification$PreSharedKey": "

The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway.

Constraints: Allowed characters are alphanumeric characters and ._. Must be between 8 and 64 characters in length and cannot start with zero (0).

", "ZoneNameStringList$member": null } }, "Subnet": { "base": "

Describes a subnet.

", "refs": { + "CreateDefaultSubnetResult$Subnet": "

Information about the subnet.

", "CreateSubnetResult$Subnet": "

Information about the subnet.

", "SubnetList$member": null } @@ -6606,6 +8032,18 @@ "Subnet$State": "

The current state of the subnet.

" } }, + "SuccessfulInstanceCreditSpecificationItem": { + "base": "

Describes the T2 instance whose credit option for CPU usage was successfully modified.

", + "refs": { + "SuccessfulInstanceCreditSpecificationSet$member": null + } + }, + "SuccessfulInstanceCreditSpecificationSet": { + "base": null, + "refs": { + "ModifyInstanceCreditSpecificationResult$SuccessfulInstanceCreditSpecifications": "

Information about the instances whose credit option for CPU usage was successfully modified.

" + } + }, "SummaryStatus": { "base": null, "refs": { @@ -6637,12 +8075,16 @@ "ConversionTask$Tags": "

Any tags assigned to the task.

", "CreateTagsRequest$Tags": "

One or more tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string.

", "CustomerGateway$Tags": "

Any tags assigned to the customer gateway.

", - "DeleteTagsRequest$Tags": "

One or more tags to delete. If you omit the value parameter, we delete the tag regardless of its value. If you specify this parameter with an empty string as the value, we delete the key only if its value is an empty string.

", + "DeleteTagsRequest$Tags": "

One or more tags to delete. If you omit this parameter, we delete all tags for the specified resources. Specify a tag key and an optional tag value to delete specific tags. If you specify a tag key without a tag value, we delete any tag with this key regardless of its value. If you specify a tag key with an empty string as the tag value, we delete the tag only if its value is an empty string.

", "DhcpOptions$Tags": "

Any tags assigned to the DHCP options set.

", "FpgaImage$Tags": "

Any tags assigned to the AFI.

", "Image$Tags": "

Any tags assigned to the image.

", "Instance$Tags": "

Any tags assigned to the instance.

", "InternetGateway$Tags": "

Any tags assigned to the Internet gateway.

", + "LaunchTemplate$Tags": "

The tags for the launch template.

", + "LaunchTemplateTagSpecification$Tags": "

The tags for the resource.

", + "LaunchTemplateTagSpecificationRequest$Tags": "

The tags to apply to the resource.

", + "NatGateway$Tags": "

The tags for the NAT gateway.

", "NetworkAcl$Tags": "

Any tags assigned to the network ACL.

", "NetworkInterface$TagSet": "

Any tags assigned to the network interface.

", "ReservedInstances$Tags": "

Any tags assigned to the resource.

", @@ -6650,6 +8092,7 @@ "RouteTable$Tags": "

Any tags assigned to the route table.

", "SecurityGroup$Tags": "

Any tags assigned to the security group.

", "Snapshot$Tags": "

Any tags assigned to the snapshot.

", + "SpotFleetTagSpecification$Tags": "

The tags.

", "SpotInstanceRequest$Tags": "

Any tags assigned to the resource.

", "Subnet$Tags": "

Any tags assigned to the subnet.

", "TagSpecification$Tags": "

The tags to apply to the resource.

", @@ -6689,8 +8132,26 @@ "TargetConfigurationRequestSet": { "base": null, "refs": { - "AcceptReservedInstancesExchangeQuoteRequest$TargetConfigurations": "

The configurations of the Convertible Reserved Instance offerings that you are purchasing in this exchange.

", - "GetReservedInstancesExchangeQuoteRequest$TargetConfigurations": "

The configuration requirements of the Convertible Reserved Instances to exchange for your current Convertible Reserved Instances.

" + "AcceptReservedInstancesExchangeQuoteRequest$TargetConfigurations": "

The configuration of the target Convertible Reserved Instance to exchange for your current Convertible Reserved Instances.

", + "GetReservedInstancesExchangeQuoteRequest$TargetConfigurations": "

The configuration of the target Convertible Reserved Instance to exchange for your current Convertible Reserved Instances.

" + } + }, + "TargetGroup": { + "base": "

Describes a load balancer target group.

", + "refs": { + "TargetGroups$member": null + } + }, + "TargetGroups": { + "base": null, + "refs": { + "TargetGroupsConfig$TargetGroups": "

One or more target groups.

" + } + }, + "TargetGroupsConfig": { + "base": "

Describes the target groups to attach to a Spot Fleet. Spot Fleet registers the running Spot Instances with these target groups.

", + "refs": { + "LoadBalancersConfig$TargetGroupsConfig": "

The target groups.

" } }, "TargetReservationValue": { @@ -6716,10 +8177,12 @@ "refs": { "CreateVpcRequest$InstanceTenancy": "

The tenancy options for instances launched into the VPC. For default, instances are launched with shared tenancy by default. You can launch instances with any tenancy into a shared tenancy VPC. For dedicated, instances are launched as dedicated tenancy instances by default. You can only launch instances with a tenancy of dedicated or host into a dedicated tenancy VPC.

Important: The host value cannot be used with this parameter. Use the default or dedicated values only.

Default: default

", "DescribeReservedInstancesOfferingsRequest$InstanceTenancy": "

The tenancy of the instances covered by the reservation. A Reserved Instance with a tenancy of dedicated is applied to instances that run in a VPC on single-tenant hardware (i.e., Dedicated Instances).

Important: The host value cannot be used with this parameter. Use the default or dedicated values only.

Default: default

", + "LaunchTemplatePlacement$Tenancy": "

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware.

", + "LaunchTemplatePlacementRequest$Tenancy": "

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware.

", "Placement$Tenancy": "

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the ImportInstance command.

", "ReservedInstances$InstanceTenancy": "

The tenancy of the instance.

", "ReservedInstancesOffering$InstanceTenancy": "

The tenancy of the instance.

", - "SpotPlacement$Tenancy": "

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for Spot instances.

", + "SpotPlacement$Tenancy": "

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for Spot Instances.

", "Vpc$InstanceTenancy": "

The allowed tenancy of instances launched into the VPC.

" } }, @@ -6740,6 +8203,12 @@ "FlowLog$TrafficType": "

The type of traffic captured for the flow log.

" } }, + "TunnelOptionsList": { + "base": null, + "refs": { + "VpnConnectionOptionsSpecification$TunnelOptions": "

The tunnel options for the VPN connection.

" + } + }, "UnassignIpv6AddressesRequest": { "base": null, "refs": { @@ -6765,6 +8234,30 @@ "refs": { } }, + "UnsuccessfulInstanceCreditSpecificationErrorCode": { + "base": null, + "refs": { + "UnsuccessfulInstanceCreditSpecificationItemError$Code": "

The error code.

" + } + }, + "UnsuccessfulInstanceCreditSpecificationItem": { + "base": "

Describes the T2 instance whose credit option for CPU usage was not modified.

", + "refs": { + "UnsuccessfulInstanceCreditSpecificationSet$member": null + } + }, + "UnsuccessfulInstanceCreditSpecificationItemError": { + "base": "

Information about the error for the T2 instance whose credit option for CPU usage was not modified.

", + "refs": { + "UnsuccessfulInstanceCreditSpecificationItem$Error": "

The applicable error for the T2 instance whose credit option for CPU usage was not modified.

" + } + }, + "UnsuccessfulInstanceCreditSpecificationSet": { + "base": null, + "refs": { + "ModifyInstanceCreditSpecificationResult$UnsuccessfulInstanceCreditSpecifications": "

Information about the instances whose credit option for CPU usage was not modified.

" + } + }, "UnsuccessfulItem": { "base": "

Information about items that were not successfully processed in a batch call.

", "refs": { @@ -6788,9 +8281,33 @@ "UnsuccessfulItemSet": { "base": null, "refs": { + "AcceptVpcEndpointConnectionsResult$Unsuccessful": "

Information about the interface endpoints that were not accepted, if applicable.

", "CreateFlowLogsResult$Unsuccessful": "

Information about the flow logs that could not be created successfully.

", "DeleteFlowLogsResult$Unsuccessful": "

Information about the flow logs that could not be deleted successfully.

", - "DeleteVpcEndpointsResult$Unsuccessful": "

Information about the endpoints that were not successfully deleted.

" + "DeleteVpcEndpointConnectionNotificationsResult$Unsuccessful": "

Information about the notifications that could not be deleted successfully.

", + "DeleteVpcEndpointServiceConfigurationsResult$Unsuccessful": "

Information about the service configurations that were not deleted, if applicable.

", + "DeleteVpcEndpointsResult$Unsuccessful": "

Information about the VPC endpoints that were not successfully deleted.

", + "RejectVpcEndpointConnectionsResult$Unsuccessful": "

Information about the endpoints that were not rejected, if applicable.

" + } + }, + "UpdateSecurityGroupRuleDescriptionsEgressRequest": { + "base": "

Contains the parameters for UpdateSecurityGroupRuleDescriptionsEgress.

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

Contains the output of UpdateSecurityGroupRuleDescriptionsEgress.

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

Contains the parameters for UpdateSecurityGroupRuleDescriptionsIngress.

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

Contains the output of UpdateSecurityGroupRuleDescriptionsIngress.

", + "refs": { } }, "UserBucket": { @@ -6816,7 +8333,8 @@ "UserGroupStringList": { "base": null, "refs": { - "ModifyImageAttributeRequest$UserGroups": "

One or more user groups. This is only valid when modifying the launchPermission attribute.

" + "ModifyFpgaImageAttributeRequest$UserGroups": "

One or more user groups. This parameter is valid only when modifying the loadPermission attribute.

", + "ModifyImageAttributeRequest$UserGroups": "

One or more user groups. This parameter can be used only when the Attribute parameter is launchPermission.

" } }, "UserIdGroupPair": { @@ -6841,38 +8359,84 @@ "UserIdStringList": { "base": null, "refs": { - "ModifyImageAttributeRequest$UserIds": "

One or more AWS account IDs. This is only valid when modifying the launchPermission attribute.

", + "ModifyFpgaImageAttributeRequest$UserIds": "

One or more AWS account IDs. This parameter is valid only when modifying the loadPermission attribute.

", + "ModifyImageAttributeRequest$UserIds": "

One or more AWS account IDs. This parameter can be used only when the Attribute parameter is launchPermission.

", "ModifySnapshotAttributeRequest$UserIds": "

The account ID to modify for the snapshot.

" } }, "ValueStringList": { "base": null, "refs": { - "CancelSpotFleetRequestsRequest$SpotFleetRequestIds": "

The IDs of the Spot fleet requests.

", + "AcceptVpcEndpointConnectionsRequest$VpcEndpointIds": "

The IDs of one or more interface VPC endpoints.

", + "CancelSpotFleetRequestsRequest$SpotFleetRequestIds": "

The IDs of the Spot Fleet requests.

", + "ConnectionNotification$ConnectionEvents": "

The events for the notification. Valid values are Accept, Connect, Delete, and Reject.

", "CreateFlowLogsRequest$ResourceIds": "

One or more subnet, network interface, or VPC IDs.

Constraints: Maximum of 1000 resources

", "CreateFlowLogsResult$FlowLogIds": "

The IDs of the flow logs.

", - "CreateVpcEndpointRequest$RouteTableIds": "

One or more route table IDs.

", + "CreateVpcEndpointConnectionNotificationRequest$ConnectionEvents": "

One or more endpoint events for which to receive notifications. Valid values are Accept, Connect, Delete, and Reject.

", + "CreateVpcEndpointRequest$RouteTableIds": "

(Gateway endpoint) One or more route table IDs.

", + "CreateVpcEndpointRequest$SubnetIds": "

(Interface endpoint) The ID of one or more subnets in which to create an endpoint network interface.

", + "CreateVpcEndpointRequest$SecurityGroupIds": "

(Interface endpoint) The ID of one or more security groups to associate with the endpoint network interface.

", + "CreateVpcEndpointServiceConfigurationRequest$NetworkLoadBalancerArns": "

The Amazon Resource Names (ARNs) of one or more Network Load Balancers for your service.

", "DeleteFlowLogsRequest$FlowLogIds": "

One or more flow log IDs.

", - "DeleteVpcEndpointsRequest$VpcEndpointIds": "

One or more endpoint IDs.

", + "DeleteVpcEndpointConnectionNotificationsRequest$ConnectionNotificationIds": "

One or more notification IDs.

", + "DeleteVpcEndpointServiceConfigurationsRequest$ServiceIds": "

The IDs of one or more services.

", + "DeleteVpcEndpointsRequest$VpcEndpointIds": "

One or more VPC endpoint IDs.

", "DescribeFlowLogsRequest$FlowLogIds": "

One or more flow log IDs.

", "DescribeInternetGatewaysRequest$InternetGatewayIds": "

One or more Internet gateway IDs.

Default: Describes all your Internet gateways.

", + "DescribeLaunchTemplatesRequest$LaunchTemplateIds": "

One or more launch template IDs.

", "DescribeMovingAddressesRequest$PublicIps": "

One or more Elastic IP addresses.

", "DescribeNatGatewaysRequest$NatGatewayIds": "

One or more NAT gateway IDs.

", "DescribeNetworkAclsRequest$NetworkAclIds": "

One or more network ACL IDs.

Default: Describes all your network ACLs.

", "DescribePrefixListsRequest$PrefixListIds": "

One or more prefix list IDs.

", "DescribeRouteTablesRequest$RouteTableIds": "

One or more route table IDs.

Default: Describes all your route tables.

", - "DescribeSpotFleetRequestsRequest$SpotFleetRequestIds": "

The IDs of the Spot fleet requests.

", - "DescribeVpcEndpointServicesResult$ServiceNames": "

A list of supported AWS services.

", + "DescribeSpotFleetRequestsRequest$SpotFleetRequestIds": "

The IDs of the Spot Fleet requests.

", + "DescribeVpcEndpointServiceConfigurationsRequest$ServiceIds": "

The IDs of one or more services.

", + "DescribeVpcEndpointServicesRequest$ServiceNames": "

One or more service names.

", + "DescribeVpcEndpointServicesResult$ServiceNames": "

A list of supported services.

", "DescribeVpcEndpointsRequest$VpcEndpointIds": "

One or more endpoint IDs.

", "DescribeVpcPeeringConnectionsRequest$VpcPeeringConnectionIds": "

One or more VPC peering connection IDs.

Default: Describes all your VPC peering connections.

", "Filter$Values": "

One or more filter values. Filter values are case-sensitive.

", - "ModifyVpcEndpointRequest$AddRouteTableIds": "

One or more route tables IDs to associate with the endpoint.

", - "ModifyVpcEndpointRequest$RemoveRouteTableIds": "

One or more route table IDs to disassociate from the endpoint.

", + "ModifyVpcEndpointConnectionNotificationRequest$ConnectionEvents": "

One or more events for the endpoint. Valid values are Accept, Connect, Delete, and Reject.

", + "ModifyVpcEndpointRequest$AddRouteTableIds": "

(Gateway endpoint) One or more route tables IDs to associate with the endpoint.

", + "ModifyVpcEndpointRequest$RemoveRouteTableIds": "

(Gateway endpoint) One or more route table IDs to disassociate from the endpoint.

", + "ModifyVpcEndpointRequest$AddSubnetIds": "

(Interface endpoint) One or more subnet IDs in which to serve the endpoint.

", + "ModifyVpcEndpointRequest$RemoveSubnetIds": "

(Interface endpoint) One or more subnets IDs in which to remove the endpoint.

", + "ModifyVpcEndpointRequest$AddSecurityGroupIds": "

(Interface endpoint) One or more security group IDs to associate with the network interface.

", + "ModifyVpcEndpointRequest$RemoveSecurityGroupIds": "

(Interface endpoint) One or more security group IDs to disassociate from the network interface.

", + "ModifyVpcEndpointServiceConfigurationRequest$AddNetworkLoadBalancerArns": "

The Amazon Resource Names (ARNs) of Network Load Balancers to add to your service configuration.

", + "ModifyVpcEndpointServiceConfigurationRequest$RemoveNetworkLoadBalancerArns": "

The Amazon Resource Names (ARNs) of Network Load Balancers to remove from your service configuration.

", + "ModifyVpcEndpointServicePermissionsRequest$AddAllowedPrincipals": "

One or more Amazon Resource Names (ARNs) of principals for which to allow permission. Specify * to allow all principals.

", + "ModifyVpcEndpointServicePermissionsRequest$RemoveAllowedPrincipals": "

One or more Amazon Resource Names (ARNs) of principals for which to remove permission.

", "NewDhcpConfiguration$Values": null, "PrefixList$Cidrs": "

The IP address range of the AWS service.

", + "RejectVpcEndpointConnectionsRequest$VpcEndpointIds": "

The IDs of one or more VPC endpoints.

", "RequestSpotLaunchSpecification$SecurityGroupIds": "

One or more security group IDs.

", "RequestSpotLaunchSpecification$SecurityGroups": "

One or more security groups. When requesting instances in a VPC, you must specify the IDs of the security groups. When requesting instances in EC2-Classic, you can specify the names or the IDs of the security groups.

", - "VpcEndpoint$RouteTableIds": "

One or more route tables associated with the endpoint.

" + "ResponseLaunchTemplateData$SecurityGroupIds": "

The security group IDs.

", + "ResponseLaunchTemplateData$SecurityGroups": "

The security group names.

", + "ServiceConfiguration$AvailabilityZones": "

In the Availability Zones in which the service is available.

", + "ServiceConfiguration$NetworkLoadBalancerArns": "

The Amazon Resource Names (ARNs) of the Network Load Balancers for the service.

", + "ServiceConfiguration$BaseEndpointDnsNames": "

The DNS names for the service.

", + "ServiceDetail$AvailabilityZones": "

The Availability Zones in which the service is available.

", + "ServiceDetail$BaseEndpointDnsNames": "

The DNS names for the service.

", + "VpcEndpoint$RouteTableIds": "

(Gateway endpoint) One or more route tables associated with the endpoint.

", + "VpcEndpoint$SubnetIds": "

(Interface endpoint) One or more subnets in which the endpoint is located.

", + "VpcEndpoint$NetworkInterfaceIds": "

(Interface endpoint) One or more network interfaces for the endpoint.

" + } + }, + "VersionDescription": { + "base": null, + "refs": { + "CreateLaunchTemplateRequest$VersionDescription": "

A description for the first version of the launch template.

", + "CreateLaunchTemplateVersionRequest$VersionDescription": "

A description for the version of the launch template.

", + "LaunchTemplateVersion$VersionDescription": "

The description for the version.

" + } + }, + "VersionStringList": { + "base": null, + "refs": { + "DeleteLaunchTemplateVersionsRequest$Versions": "

The version numbers of one or more launch template versions to delete.

", + "DescribeLaunchTemplateVersionsRequest$Versions": "

One or more versions of the launch template.

" } }, "VgwTelemetry": { @@ -7041,6 +8605,8 @@ "refs": { "CreateVolumeRequest$VolumeType": "

The volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes.

Default: standard

", "EbsBlockDevice$VolumeType": "

The volume type: gp2, io1, st1, sc1, or standard.

Default: standard

", + "LaunchTemplateEbsBlockDevice$VolumeType": "

The volume type.

", + "LaunchTemplateEbsBlockDeviceRequest$VolumeType": "

The volume type.

", "ModifyVolumeRequest$VolumeType": "

Target EBS volume type of the volume to be modified

The API does not support modifications for volume type standard. You also cannot change the type of a volume to standard.

Default: If no type is specified, the existing type is retained.

", "Volume$VolumeType": "

The volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes.

", "VolumeModification$TargetVolumeType": "

Target EBS volume type of the volume being modified.

", @@ -7050,6 +8616,7 @@ "Vpc": { "base": "

Describes a VPC.

", "refs": { + "CreateDefaultVpcResult$Vpc": "

Information about the VPC.

", "CreateVpcResult$Vpc": "

Information about the VPC.

", "VpcList$member": null } @@ -7073,9 +8640,24 @@ "DescribeVpcAttributeRequest$Attribute": "

The VPC attribute.

" } }, + "VpcCidrBlockAssociation": { + "base": "

Describes an IPv4 CIDR block associated with a VPC.

", + "refs": { + "AssociateVpcCidrBlockResult$CidrBlockAssociation": "

Information about the IPv4 CIDR block association.

", + "DisassociateVpcCidrBlockResult$CidrBlockAssociation": "

Information about the IPv4 CIDR block association.

", + "VpcCidrBlockAssociationSet$member": null + } + }, + "VpcCidrBlockAssociationSet": { + "base": null, + "refs": { + "Vpc$CidrBlockAssociationSet": "

Information about the IPv4 CIDR blocks associated with the VPC.

" + } + }, "VpcCidrBlockState": { "base": "

Describes the state of a CIDR block.

", "refs": { + "VpcCidrBlockAssociation$CidrBlockState": "

Information about the state of the CIDR block.

", "VpcIpv6CidrBlockAssociation$Ipv6CidrBlockState": "

Information about the state of the CIDR block.

" } }, @@ -7111,12 +8693,31 @@ "VpcEndpointSet$member": null } }, + "VpcEndpointConnection": { + "base": "

Describes a VPC endpoint connection to a service.

", + "refs": { + "VpcEndpointConnectionSet$member": null + } + }, + "VpcEndpointConnectionSet": { + "base": null, + "refs": { + "DescribeVpcEndpointConnectionsResult$VpcEndpointConnections": "

Information about one or more VPC endpoint connections.

" + } + }, "VpcEndpointSet": { "base": null, "refs": { "DescribeVpcEndpointsResult$VpcEndpoints": "

Information about the endpoints.

" } }, + "VpcEndpointType": { + "base": null, + "refs": { + "CreateVpcEndpointRequest$VpcEndpointType": "

The type of endpoint.

Default: Gateway

", + "VpcEndpoint$VpcEndpointType": "

The type of endpoint.

" + } + }, "VpcIdStringList": { "base": null, "refs": { @@ -7188,6 +8789,12 @@ "Vpc$State": "

The current state of the VPC.

" } }, + "VpcTenancy": { + "base": null, + "refs": { + "ModifyVpcTenancyRequest$InstanceTenancy": "

The instance tenancy attribute for the VPC.

" + } + }, "VpnConnection": { "base": "

Describes a VPN connection.

", "refs": { @@ -7216,7 +8823,7 @@ "VpnConnectionOptionsSpecification": { "base": "

Describes VPN connection options.

", "refs": { - "CreateVpnConnectionRequest$Options": "

Indicates whether the VPN connection requires static routes. If you are creating a VPN connection for a device that does not support BGP, you must specify true.

Default: false

" + "CreateVpnConnectionRequest$Options": "

The options for the VPN connection.

" } }, "VpnGateway": { @@ -7264,6 +8871,12 @@ "VpnStaticRoute$Source": "

Indicates how the routes were provided.

" } }, + "VpnTunnelOptionsSpecification": { + "base": "

The tunnel options for a VPN connection.

", + "refs": { + "TunnelOptionsList$member": null + } + }, "ZoneNameStringList": { "base": null, "refs": { diff --git a/models/apis/ec2/2016-11-15/smoke.json b/models/apis/ec2/2016-11-15/smoke.json new file mode 100644 index 00000000000..509d86a51da --- /dev/null +++ b/models/apis/ec2/2016-11-15/smoke.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "defaultRegion": "us-west-2", + "testCases": [ + { + "operationName": "DescribeRegions", + "input": {}, + "errorExpectedFromService": false + }, + { + "operationName": "DescribeInstances", + "input": { + "InstanceIds": [ + "i-12345678" + ] + }, + "errorExpectedFromService": true + } + ] +} diff --git a/models/apis/ec2/2016-11-15/waiters-2.json b/models/apis/ec2/2016-11-15/waiters-2.json index 7d8b7cdcd36..33ea7b04716 100755 --- a/models/apis/ec2/2016-11-15/waiters-2.json +++ b/models/apis/ec2/2016-11-15/waiters-2.json @@ -390,6 +390,12 @@ "argument": "SpotInstanceRequests[].Status.Code", "expected": "fulfilled" }, + { + "state": "success", + "matcher": "pathAll", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "request-canceled-and-instance-running" + }, { "state": "failure", "matcher": "pathAny", @@ -413,6 +419,11 @@ "matcher": "pathAny", "argument": "SpotInstanceRequests[].Status.Code", "expected": "system-error" + }, + { + "state": "retry", + "matcher": "error", + "expected": "InvalidSpotInstanceRequestID.NotFound" } ] }, diff --git a/models/apis/ecr/2015-09-21/api-2.json b/models/apis/ecr/2015-09-21/api-2.json index 09ed32ad41d..53e34126607 100644 --- a/models/apis/ecr/2015-09-21/api-2.json +++ b/models/apis/ecr/2015-09-21/api-2.json @@ -1,7 +1,6 @@ { "version":"2.0", "metadata":{ - "uid":"ecr-2015-09-21", "apiVersion":"2015-09-21", "endpointPrefix":"ecr", "jsonVersion":"1.1", @@ -9,7 +8,8 @@ "serviceAbbreviation":"Amazon ECR", "serviceFullName":"Amazon EC2 Container Registry", "signatureVersion":"v4", - "targetPrefix":"AmazonEC2ContainerRegistry_V20150921" + "targetPrefix":"AmazonEC2ContainerRegistry_V20150921", + "uid":"ecr-2015-09-21" }, "operations":{ "BatchCheckLayerAvailability":{ @@ -88,6 +88,21 @@ {"shape":"LimitExceededException"} ] }, + "DeleteLifecyclePolicy":{ + "name":"DeleteLifecyclePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLifecyclePolicyRequest"}, + "output":{"shape":"DeleteLifecyclePolicyResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"RepositoryNotFoundException"}, + {"shape":"LifecyclePolicyNotFoundException"} + ] + }, "DeleteRepository":{ "name":"DeleteRepository", "http":{ @@ -176,6 +191,36 @@ {"shape":"RepositoryNotFoundException"} ] }, + "GetLifecyclePolicy":{ + "name":"GetLifecyclePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLifecyclePolicyRequest"}, + "output":{"shape":"GetLifecyclePolicyResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"RepositoryNotFoundException"}, + {"shape":"LifecyclePolicyNotFoundException"} + ] + }, + "GetLifecyclePolicyPreview":{ + "name":"GetLifecyclePolicyPreview", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLifecyclePolicyPreviewRequest"}, + "output":{"shape":"GetLifecyclePolicyPreviewResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"RepositoryNotFoundException"}, + {"shape":"LifecyclePolicyPreviewNotFoundException"} + ] + }, "GetRepositoryPolicy":{ "name":"GetRepositoryPolicy", "http":{ @@ -236,6 +281,20 @@ {"shape":"LimitExceededException"} ] }, + "PutLifecyclePolicy":{ + "name":"PutLifecyclePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutLifecyclePolicyRequest"}, + "output":{"shape":"PutLifecyclePolicyResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"RepositoryNotFoundException"} + ] + }, "SetRepositoryPolicy":{ "name":"SetRepositoryPolicy", "http":{ @@ -250,6 +309,22 @@ {"shape":"RepositoryNotFoundException"} ] }, + "StartLifecyclePolicyPreview":{ + "name":"StartLifecyclePolicyPreview", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartLifecyclePolicyPreviewRequest"}, + "output":{"shape":"StartLifecyclePolicyPreviewResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"RepositoryNotFoundException"}, + {"shape":"LifecyclePolicyNotFoundException"}, + {"shape":"LifecyclePolicyPreviewInProgressException"} + ] + }, "UploadLayerPart":{ "name":"UploadLayerPart", "http":{ @@ -392,6 +467,23 @@ } }, "CreationTimestamp":{"type":"timestamp"}, + "DeleteLifecyclePolicyRequest":{ + "type":"structure", + "required":["repositoryName"], + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryName":{"shape":"RepositoryName"} + } + }, + "DeleteLifecyclePolicyResponse":{ + "type":"structure", + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryName":{"shape":"RepositoryName"}, + "lifecyclePolicyText":{"shape":"LifecyclePolicyText"}, + "lastEvaluatedAt":{"shape":"EvaluationTimestamp"} + } + }, "DeleteRepositoryPolicyRequest":{ "type":"structure", "required":["repositoryName"], @@ -471,6 +563,7 @@ }, "exception":true }, + "EvaluationTimestamp":{"type":"timestamp"}, "ExceptionMessage":{"type":"string"}, "ExpirationTimestamp":{"type":"timestamp"}, "ForceFlag":{"type":"boolean"}, @@ -511,6 +604,47 @@ "layerDigest":{"shape":"LayerDigest"} } }, + "GetLifecyclePolicyPreviewRequest":{ + "type":"structure", + "required":["repositoryName"], + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryName":{"shape":"RepositoryName"}, + "imageIds":{"shape":"ImageIdentifierList"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"}, + "filter":{"shape":"LifecyclePolicyPreviewFilter"} + } + }, + "GetLifecyclePolicyPreviewResponse":{ + "type":"structure", + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryName":{"shape":"RepositoryName"}, + "lifecyclePolicyText":{"shape":"LifecyclePolicyText"}, + "status":{"shape":"LifecyclePolicyPreviewStatus"}, + "nextToken":{"shape":"NextToken"}, + "previewResults":{"shape":"LifecyclePolicyPreviewResultList"}, + "summary":{"shape":"LifecyclePolicyPreviewSummary"} + } + }, + "GetLifecyclePolicyRequest":{ + "type":"structure", + "required":["repositoryName"], + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryName":{"shape":"RepositoryName"} + } + }, + "GetLifecyclePolicyResponse":{ + "type":"structure", + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryName":{"shape":"RepositoryName"}, + "lifecyclePolicyText":{"shape":"LifecyclePolicyText"}, + "lastEvaluatedAt":{"shape":"EvaluationTimestamp"} + } + }, "GetRepositoryPolicyRequest":{ "type":"structure", "required":["repositoryName"], @@ -536,6 +670,10 @@ "imageManifest":{"shape":"ImageManifest"} } }, + "ImageActionType":{ + "type":"string", + "enum":["EXPIRE"] + }, "ImageAlreadyExistsException":{ "type":"structure", "members":{ @@ -543,6 +681,10 @@ }, "exception":true }, + "ImageCount":{ + "type":"integer", + "min":0 + }, "ImageDetail":{ "type":"structure", "members":{ @@ -733,6 +875,77 @@ }, "exception":true }, + "LifecyclePolicyNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, + "LifecyclePolicyPreviewFilter":{ + "type":"structure", + "members":{ + "tagStatus":{"shape":"TagStatus"} + } + }, + "LifecyclePolicyPreviewInProgressException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, + "LifecyclePolicyPreviewNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, + "LifecyclePolicyPreviewResult":{ + "type":"structure", + "members":{ + "imageTags":{"shape":"ImageTagList"}, + "imageDigest":{"shape":"ImageDigest"}, + "imagePushedAt":{"shape":"PushTimestamp"}, + "action":{"shape":"LifecyclePolicyRuleAction"}, + "appliedRulePriority":{"shape":"LifecyclePolicyRulePriority"} + } + }, + "LifecyclePolicyPreviewResultList":{ + "type":"list", + "member":{"shape":"LifecyclePolicyPreviewResult"} + }, + "LifecyclePolicyPreviewStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "COMPLETE", + "EXPIRED", + "FAILED" + ] + }, + "LifecyclePolicyPreviewSummary":{ + "type":"structure", + "members":{ + "expiringImageTotalCount":{"shape":"ImageCount"} + } + }, + "LifecyclePolicyRuleAction":{ + "type":"structure", + "members":{ + "type":{"shape":"ImageActionType"} + } + }, + "LifecyclePolicyRulePriority":{ + "type":"integer", + "min":1 + }, + "LifecyclePolicyText":{ + "type":"string", + "max":10240, + "min":100 + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -769,10 +982,7 @@ "max":100, "min":1 }, - "MediaType":{ - "type":"string", - "pattern":"\\w{1,127}\\/[-+.\\w]{1,127}" - }, + "MediaType":{"type":"string"}, "MediaTypeList":{ "type":"list", "member":{"shape":"MediaType"}, @@ -805,6 +1015,26 @@ "image":{"shape":"Image"} } }, + "PutLifecyclePolicyRequest":{ + "type":"structure", + "required":[ + "repositoryName", + "lifecyclePolicyText" + ], + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryName":{"shape":"RepositoryName"}, + "lifecyclePolicyText":{"shape":"LifecyclePolicyText"} + } + }, + "PutLifecyclePolicyResponse":{ + "type":"structure", + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryName":{"shape":"RepositoryName"}, + "lifecyclePolicyText":{"shape":"LifecyclePolicyText"} + } + }, "RegistryId":{ "type":"string", "pattern":"[0-9]{12}" @@ -897,6 +1127,24 @@ "policyText":{"shape":"RepositoryPolicyText"} } }, + "StartLifecyclePolicyPreviewRequest":{ + "type":"structure", + "required":["repositoryName"], + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryName":{"shape":"RepositoryName"}, + "lifecyclePolicyText":{"shape":"LifecyclePolicyText"} + } + }, + "StartLifecyclePolicyPreviewResponse":{ + "type":"structure", + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryName":{"shape":"RepositoryName"}, + "lifecyclePolicyText":{"shape":"LifecyclePolicyText"}, + "status":{"shape":"LifecyclePolicyPreviewStatus"} + } + }, "TagStatus":{ "type":"string", "enum":[ diff --git a/models/apis/ecr/2015-09-21/docs-2.json b/models/apis/ecr/2015-09-21/docs-2.json index fae137f8b33..656365699cb 100644 --- a/models/apis/ecr/2015-09-21/docs-2.json +++ b/models/apis/ecr/2015-09-21/docs-2.json @@ -1,30 +1,35 @@ { "version": "2.0", - "service": "

Amazon EC2 Container Registry (Amazon ECR) is a managed AWS Docker registry service. Customers can use the familiar Docker CLI to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry. Amazon ECR supports private Docker repositories with resource-based permissions using AWS IAM so that specific users or Amazon EC2 instances can access repositories and images. Developers can use the Docker CLI to author and manage images.

", + "service": "

Amazon EC2 Container Registry (Amazon ECR) is a managed Docker registry service. Customers can use the familiar Docker CLI to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry. Amazon ECR supports private Docker repositories with resource-based permissions using IAM so that specific users or Amazon EC2 instances can access repositories and images. Developers can use the Docker CLI to author and manage images.

", "operations": { "BatchCheckLayerAvailability": "

Check the availability of multiple image layers in a specified registry and repository.

This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

", "BatchDeleteImage": "

Deletes a list of specified images within a specified repository. Images are specified with either imageTag or imageDigest.

You can remove a tag from an image by specifying the image's tag in your request. When you remove the last tag from an image, the image is deleted from your repository.

You can completely delete an image (and all of its tags) by specifying the image's digest in your request.

", "BatchGetImage": "

Gets detailed information for specified images within a specified repository. Images are specified with either imageTag or imageDigest.

", - "CompleteLayerUpload": "

Inform Amazon ECR that the image layer upload for a specified registry, repository name, and upload ID, has completed. You can optionally provide a sha256 digest of the image layer for data validation purposes.

This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

", + "CompleteLayerUpload": "

Informs Amazon ECR that the image layer upload has completed for a specified registry, repository name, and upload ID. You can optionally provide a sha256 digest of the image layer for data validation purposes.

This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

", "CreateRepository": "

Creates an image repository.

", + "DeleteLifecyclePolicy": "

Deletes the specified lifecycle policy.

", "DeleteRepository": "

Deletes an existing image repository. If a repository contains images, you must use the force option to delete it.

", "DeleteRepositoryPolicy": "

Deletes the repository policy from a specified repository.

", "DescribeImages": "

Returns metadata about the images in a repository, including image size, image tags, and creation date.

Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the docker images command shows the uncompressed image size, so it may return a larger image size than the image sizes returned by DescribeImages.

", "DescribeRepositories": "

Describes image repositories in a registry.

", "GetAuthorizationToken": "

Retrieves a token that is valid for a specified registry for 12 hours. This command allows you to use the docker CLI to push and pull images with Amazon ECR. If you do not specify a registry, the default registry is assumed.

The authorizationToken returned for each registry specified is a base64 encoded string that can be decoded and used in a docker login command to authenticate to a registry. The AWS CLI offers an aws ecr get-login command that simplifies the login process.

", "GetDownloadUrlForLayer": "

Retrieves the pre-signed Amazon S3 download URL corresponding to an image layer. You can only get URLs for image layers that are referenced in an image.

This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

", + "GetLifecyclePolicy": "

Retrieves the specified lifecycle policy.

", + "GetLifecyclePolicyPreview": "

Retrieves the results of the specified lifecycle policy preview request.

", "GetRepositoryPolicy": "

Retrieves the repository policy for a specified repository.

", "InitiateLayerUpload": "

Notify Amazon ECR that you intend to upload an image layer.

This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

", "ListImages": "

Lists all the image IDs for a given repository.

You can filter images based on whether or not they are tagged by setting the tagStatus parameter to TAGGED or UNTAGGED. For example, you can filter your results to return only UNTAGGED images and then pipe that result to a BatchDeleteImage operation to delete them. Or, you can filter your results to return only TAGGED images to list all of the tags in your repository.

", "PutImage": "

Creates or updates the image manifest and tags associated with an image.

This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

", + "PutLifecyclePolicy": "

Creates or updates a lifecycle policy.

", "SetRepositoryPolicy": "

Applies a repository policy on a specified repository to control access permissions.

", + "StartLifecyclePolicyPreview": "

Starts a preview of the specified lifecycle policy. This allows you to see the results before creating the lifecycle policy.

", "UploadLayerPart": "

Uploads an image layer part to Amazon ECR.

This operation is used by the Amazon ECR proxy, and it is not intended for general use by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

" }, "shapes": { "Arn": { "base": null, "refs": { - "Repository$repositoryArn": "

The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the arn:aws:ecr namespace, followed by the region of the repository, the AWS account ID of the repository owner, the repository namespace, and then the repository name. For example, arn:aws:ecr:region:012345678910:repository/test.

" + "Repository$repositoryArn": "

The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the arn:aws:ecr namespace, followed by the region of the repository, AWS account ID of the repository owner, repository namespace, and repository name. For example, arn:aws:ecr:region:012345678910:repository/test.

" } }, "AuthorizationData": { @@ -111,7 +116,17 @@ "CreationTimestamp": { "base": null, "refs": { - "Repository$createdAt": "

The date and time, in JavaScript date/time format, when the repository was created.

" + "Repository$createdAt": "

The date and time, in JavaScript date format, when the repository was created.

" + } + }, + "DeleteLifecyclePolicyRequest": { + "base": null, + "refs": { + } + }, + "DeleteLifecyclePolicyResponse": { + "base": null, + "refs": { } }, "DeleteRepositoryPolicyRequest": { @@ -165,6 +180,13 @@ "refs": { } }, + "EvaluationTimestamp": { + "base": null, + "refs": { + "DeleteLifecyclePolicyResponse$lastEvaluatedAt": "

The time stamp of the last time that the lifecycle policy was run.

", + "GetLifecyclePolicyResponse$lastEvaluatedAt": "

The time stamp of the last time that the lifecycle policy was run.

" + } + }, "ExceptionMessage": { "base": null, "refs": { @@ -178,6 +200,9 @@ "LayerInaccessibleException$message": "

The error message associated with the exception.

", "LayerPartTooSmallException$message": "

The error message associated with the exception.

", "LayersNotFoundException$message": "

The error message associated with the exception.

", + "LifecyclePolicyNotFoundException$message": null, + "LifecyclePolicyPreviewInProgressException$message": null, + "LifecyclePolicyPreviewNotFoundException$message": null, "LimitExceededException$message": "

The error message associated with the exception.

", "RepositoryAlreadyExistsException$message": "

The error message associated with the exception.

", "RepositoryNotEmptyException$message": "

The error message associated with the exception.

", @@ -196,7 +221,7 @@ "ForceFlag": { "base": null, "refs": { - "DeleteRepositoryRequest$force": "

Force the deletion of the repository if it contains images.

", + "DeleteRepositoryRequest$force": "

If a repository contains images, forces the deletion.

", "SetRepositoryPolicyRequest$force": "

If the policy you are attempting to set on a repository policy would prevent you from setting another policy in the future, you must force the SetRepositoryPolicy operation. This is intended to prevent accidental repository lock outs.

" } }, @@ -226,6 +251,26 @@ "refs": { } }, + "GetLifecyclePolicyPreviewRequest": { + "base": null, + "refs": { + } + }, + "GetLifecyclePolicyPreviewResponse": { + "base": null, + "refs": { + } + }, + "GetLifecyclePolicyRequest": { + "base": null, + "refs": { + } + }, + "GetLifecyclePolicyResponse": { + "base": null, + "refs": { + } + }, "GetRepositoryPolicyRequest": { "base": null, "refs": { @@ -243,9 +288,21 @@ "PutImageResponse$image": "

Details of the image uploaded.

" } }, + "ImageActionType": { + "base": null, + "refs": { + "LifecyclePolicyRuleAction$type": "

The type of action to be taken.

" + } + }, "ImageAlreadyExistsException": { - "base": "

The specified image has already been pushed, and there are no changes to the manifest or image tag since the last push.

", + "base": "

The specified image has already been pushed, and there were no changes to the manifest or image tag after the last push.

", + "refs": { + } + }, + "ImageCount": { + "base": null, "refs": { + "LifecyclePolicyPreviewSummary$expiringImageTotalCount": "

The number of expiring images.

" } }, "ImageDetail": { @@ -264,7 +321,8 @@ "base": null, "refs": { "ImageDetail$imageDigest": "

The sha256 digest of the image manifest.

", - "ImageIdentifier$imageDigest": "

The sha256 digest of the image manifest.

" + "ImageIdentifier$imageDigest": "

The sha256 digest of the image manifest.

", + "LifecyclePolicyPreviewResult$imageDigest": "

The sha256 digest of the image manifest.

" } }, "ImageFailure": { @@ -307,6 +365,7 @@ "BatchDeleteImageResponse$imageIds": "

The image IDs of the deleted images.

", "BatchGetImageRequest$imageIds": "

A list of image ID references that correspond to images to describe. The format of the imageIds reference is imageTag=tag or imageDigest=digest.

", "DescribeImagesRequest$imageIds": "

The list of image IDs for the requested repository.

", + "GetLifecyclePolicyPreviewRequest$imageIds": "

The list of imageIDs to be included.

", "ListImagesResponse$imageIds": "

The list of image IDs for the requested repository.

" } }, @@ -345,7 +404,8 @@ "ImageTagList": { "base": null, "refs": { - "ImageDetail$imageTags": "

The list of tags associated with this image.

" + "ImageDetail$imageTags": "

The list of tags associated with this image.

", + "LifecyclePolicyPreviewResult$imageTags": "

The list of tags associated with this image.

" } }, "InitiateLayerUploadRequest": { @@ -463,6 +523,76 @@ "refs": { } }, + "LifecyclePolicyNotFoundException": { + "base": "

The lifecycle policy could not be found, and no policy is set to the repository.

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

The filter for the lifecycle policy preview.

", + "refs": { + "GetLifecyclePolicyPreviewRequest$filter": "

An optional parameter that filters results based on image tag status and all tags, if tagged.

" + } + }, + "LifecyclePolicyPreviewInProgressException": { + "base": "

The previous lifecycle policy preview request has not completed. Please try again later.

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

There is no dry run for this repository.

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

The result of the lifecycle policy preview.

", + "refs": { + "LifecyclePolicyPreviewResultList$member": null + } + }, + "LifecyclePolicyPreviewResultList": { + "base": null, + "refs": { + "GetLifecyclePolicyPreviewResponse$previewResults": "

The results of the lifecycle policy preview request.

" + } + }, + "LifecyclePolicyPreviewStatus": { + "base": null, + "refs": { + "GetLifecyclePolicyPreviewResponse$status": "

The status of the lifecycle policy preview request.

", + "StartLifecyclePolicyPreviewResponse$status": "

The status of the lifecycle policy preview request.

" + } + }, + "LifecyclePolicyPreviewSummary": { + "base": "

The summary of the lifecycle policy preview request.

", + "refs": { + "GetLifecyclePolicyPreviewResponse$summary": "

The list of images that is returned as a result of the action.

" + } + }, + "LifecyclePolicyRuleAction": { + "base": "

The type of action to be taken.

", + "refs": { + "LifecyclePolicyPreviewResult$action": "

The type of action to be taken.

" + } + }, + "LifecyclePolicyRulePriority": { + "base": null, + "refs": { + "LifecyclePolicyPreviewResult$appliedRulePriority": "

The priority of the applied rule.

" + } + }, + "LifecyclePolicyText": { + "base": null, + "refs": { + "DeleteLifecyclePolicyResponse$lifecyclePolicyText": "

The JSON repository policy text.

", + "GetLifecyclePolicyPreviewResponse$lifecyclePolicyText": "

The JSON repository policy text.

", + "GetLifecyclePolicyResponse$lifecyclePolicyText": "

The JSON repository policy text.

", + "PutLifecyclePolicyRequest$lifecyclePolicyText": "

The JSON repository policy text to apply to the repository.

", + "PutLifecyclePolicyResponse$lifecyclePolicyText": "

The JSON repository policy text.

", + "StartLifecyclePolicyPreviewRequest$lifecyclePolicyText": "

The policy to be evaluated against. If you do not specify a policy, the current policy for the repository is used.

", + "StartLifecyclePolicyPreviewResponse$lifecyclePolicyText": "

The JSON repository policy text.

" + } + }, "LimitExceededException": { "base": "

The operation did not succeed because it would have exceeded a service limit for your account. For more information, see Amazon ECR Default Service Limits in the Amazon EC2 Container Registry User Guide.

", "refs": { @@ -489,6 +619,7 @@ "refs": { "DescribeImagesRequest$maxResults": "

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

", "DescribeRepositoriesRequest$maxResults": "

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

", + "GetLifecyclePolicyPreviewRequest$maxResults": "

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

", "ListImagesRequest$maxResults": "

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

" } }, @@ -512,6 +643,8 @@ "DescribeImagesResponse$nextToken": "

The nextToken value to include in a future DescribeImages request. When the results of a DescribeImages request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeRepositoriesRequest$nextToken": "

The nextToken value returned from a previous paginated DescribeRepositories request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "DescribeRepositoriesResponse$nextToken": "

The nextToken value to include in a future DescribeRepositories request. When the results of a DescribeRepositories request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "GetLifecyclePolicyPreviewRequest$nextToken": "

The nextToken value returned from a previous paginated
 GetLifecyclePolicyPreviewRequest request where maxResults was used and the
 results exceeded the value of that parameter. Pagination continues from the end of the
 previous results that returned the nextToken value. This value is
 null when there are no more results to return.

", + "GetLifecyclePolicyPreviewResponse$nextToken": "

The nextToken value to include in a future GetLifecyclePolicyPreview request. When the results of a GetLifecyclePolicyPreview request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListImagesRequest$nextToken": "

The nextToken value returned from a previous paginated ListImages request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListImagesResponse$nextToken": "

The nextToken value to include in a future ListImages request. When the results of a ListImages request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

" } @@ -535,7 +668,8 @@ "PushTimestamp": { "base": null, "refs": { - "ImageDetail$imagePushedAt": "

The date and time, expressed in standard JavaScript date format, at which the current image was pushed to the repository.

" + "ImageDetail$imagePushedAt": "

The date and time, expressed in standard JavaScript date format, at which the current image was pushed to the repository.

", + "LifecyclePolicyPreviewResult$imagePushedAt": "

The date and time, expressed in standard JavaScript date format, at which the current image was pushed to the repository.

" } }, "PutImageRequest": { @@ -548,6 +682,16 @@ "refs": { } }, + "PutLifecyclePolicyRequest": { + "base": null, + "refs": { + } + }, + "PutLifecyclePolicyResponse": { + "base": null, + "refs": { + } + }, "RegistryId": { "base": null, "refs": { @@ -556,6 +700,8 @@ "BatchGetImageRequest$registryId": "

The AWS account ID associated with the registry that contains the images to describe. If you do not specify a registry, the default registry is assumed.

", "CompleteLayerUploadRequest$registryId": "

The AWS account ID associated with the registry to which to upload layers. If you do not specify a registry, the default registry is assumed.

", "CompleteLayerUploadResponse$registryId": "

The registry ID associated with the request.

", + "DeleteLifecyclePolicyRequest$registryId": "

The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.

", + "DeleteLifecyclePolicyResponse$registryId": "

The registry ID associated with the request.

", "DeleteRepositoryPolicyRequest$registryId": "

The AWS account ID associated with the registry that contains the repository policy to delete. If you do not specify a registry, the default registry is assumed.

", "DeleteRepositoryPolicyResponse$registryId": "

The registry ID associated with the request.

", "DeleteRepositoryRequest$registryId": "

The AWS account ID associated with the registry that contains the repository to delete. If you do not specify a registry, the default registry is assumed.

", @@ -563,18 +709,26 @@ "DescribeRepositoriesRequest$registryId": "

The AWS account ID associated with the registry that contains the repositories to be described. If you do not specify a registry, the default registry is assumed.

", "GetAuthorizationTokenRegistryIdList$member": null, "GetDownloadUrlForLayerRequest$registryId": "

The AWS account ID associated with the registry that contains the image layer to download. If you do not specify a registry, the default registry is assumed.

", + "GetLifecyclePolicyPreviewRequest$registryId": "

The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.

", + "GetLifecyclePolicyPreviewResponse$registryId": "

The registry ID associated with the request.

", + "GetLifecyclePolicyRequest$registryId": "

The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.

", + "GetLifecyclePolicyResponse$registryId": "

The registry ID associated with the request.

", "GetRepositoryPolicyRequest$registryId": "

The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.

", "GetRepositoryPolicyResponse$registryId": "

The registry ID associated with the request.

", "Image$registryId": "

The AWS account ID associated with the registry containing the image.

", "ImageDetail$registryId": "

The AWS account ID associated with the registry to which this image belongs.

", - "InitiateLayerUploadRequest$registryId": "

The AWS account ID associated with the registry that you intend to upload layers to. If you do not specify a registry, the default registry is assumed.

", + "InitiateLayerUploadRequest$registryId": "

The AWS account ID associated with the registry to which you intend to upload layers. If you do not specify a registry, the default registry is assumed.

", "InvalidLayerPartException$registryId": "

The registry ID associated with the exception.

", - "ListImagesRequest$registryId": "

The AWS account ID associated with the registry that contains the repository to list images in. If you do not specify a registry, the default registry is assumed.

", + "ListImagesRequest$registryId": "

The AWS account ID associated with the registry that contains the repository in which to list images. If you do not specify a registry, the default registry is assumed.

", "PutImageRequest$registryId": "

The AWS account ID associated with the registry that contains the repository in which to put the image. If you do not specify a registry, the default registry is assumed.

", + "PutLifecyclePolicyRequest$registryId": "

The AWS account ID associated with the registry that contains the repository. If you do
 not specify a registry, the default registry is assumed.

", + "PutLifecyclePolicyResponse$registryId": "

The registry ID associated with the request.

", "Repository$registryId": "

The AWS account ID associated with the registry that contains the repository.

", "SetRepositoryPolicyRequest$registryId": "

The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.

", "SetRepositoryPolicyResponse$registryId": "

The registry ID associated with the request.

", - "UploadLayerPartRequest$registryId": "

The AWS account ID associated with the registry that you are uploading layer parts to. If you do not specify a registry, the default registry is assumed.

", + "StartLifecyclePolicyPreviewRequest$registryId": "

The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.

", + "StartLifecyclePolicyPreviewResponse$registryId": "

The registry ID associated with the request.

", + "UploadLayerPartRequest$registryId": "

The AWS account ID associated with the registry to which you are uploading layer parts. If you do not specify a registry, the default registry is assumed.

", "UploadLayerPartResponse$registryId": "

The registry ID associated with the request.

" } }, @@ -606,24 +760,34 @@ "CompleteLayerUploadRequest$repositoryName": "

The name of the repository to associate with the image layer.

", "CompleteLayerUploadResponse$repositoryName": "

The repository name associated with the request.

", "CreateRepositoryRequest$repositoryName": "

The name to use for the repository. The repository name may be specified on its own (such as nginx-web-app) or it can be prepended with a namespace to group the repository into a category (such as project-a/nginx-web-app).

", + "DeleteLifecyclePolicyRequest$repositoryName": "

The name of the repository that is associated with the repository policy to
 delete.

", + "DeleteLifecyclePolicyResponse$repositoryName": "

The repository name associated with the request.

", "DeleteRepositoryPolicyRequest$repositoryName": "

The name of the repository that is associated with the repository policy to delete.

", "DeleteRepositoryPolicyResponse$repositoryName": "

The repository name associated with the request.

", "DeleteRepositoryRequest$repositoryName": "

The name of the repository to delete.

", "DescribeImagesRequest$repositoryName": "

A list of repositories to describe. If this parameter is omitted, then all repositories in a registry are described.

", "GetDownloadUrlForLayerRequest$repositoryName": "

The name of the repository that is associated with the image layer to download.

", - "GetRepositoryPolicyRequest$repositoryName": "

The name of the repository whose policy you want to retrieve.

", + "GetLifecyclePolicyPreviewRequest$repositoryName": "

The name of the repository with the policy to retrieve.

", + "GetLifecyclePolicyPreviewResponse$repositoryName": "

The repository name associated with the request.

", + "GetLifecyclePolicyRequest$repositoryName": "

The name of the repository with the policy to retrieve.

", + "GetLifecyclePolicyResponse$repositoryName": "

The repository name associated with the request.

", + "GetRepositoryPolicyRequest$repositoryName": "

The name of the repository with the policy to retrieve.

", "GetRepositoryPolicyResponse$repositoryName": "

The repository name associated with the request.

", "Image$repositoryName": "

The name of the repository associated with the image.

", "ImageDetail$repositoryName": "

The name of the repository to which this image belongs.

", - "InitiateLayerUploadRequest$repositoryName": "

The name of the repository that you intend to upload layers to.

", + "InitiateLayerUploadRequest$repositoryName": "

The name of the repository to which you intend to upload layers.

", "InvalidLayerPartException$repositoryName": "

The repository name associated with the exception.

", - "ListImagesRequest$repositoryName": "

The repository whose image IDs are to be listed.

", + "ListImagesRequest$repositoryName": "

The repository with image IDs to be listed.

", "PutImageRequest$repositoryName": "

The name of the repository in which to put the image.

", + "PutLifecyclePolicyRequest$repositoryName": "

The name of the repository to receive the policy.

", + "PutLifecyclePolicyResponse$repositoryName": "

The repository name associated with the request.

", "Repository$repositoryName": "

The name of the repository.

", "RepositoryNameList$member": null, "SetRepositoryPolicyRequest$repositoryName": "

The name of the repository to receive the policy.

", "SetRepositoryPolicyResponse$repositoryName": "

The repository name associated with the request.

", - "UploadLayerPartRequest$repositoryName": "

The name of the repository that you are uploading layer parts to.

", + "StartLifecyclePolicyPreviewRequest$repositoryName": "

The name of the repository to be evaluated.

", + "StartLifecyclePolicyPreviewResponse$repositoryName": "

The repository name associated with the request.

", + "UploadLayerPartRequest$repositoryName": "

The name of the repository to which you are uploading layer parts.

", "UploadLayerPartResponse$repositoryName": "

The repository name associated with the request.

" } }, @@ -672,10 +836,21 @@ "refs": { } }, + "StartLifecyclePolicyPreviewRequest": { + "base": null, + "refs": { + } + }, + "StartLifecyclePolicyPreviewResponse": { + "base": null, + "refs": { + } + }, "TagStatus": { "base": null, "refs": { "DescribeImagesFilter$tagStatus": "

The tag status with which to filter your DescribeImages results. You can filter results based on whether they are TAGGED or UNTAGGED.

", + "LifecyclePolicyPreviewFilter$tagStatus": "

The tag status of the image.

", "ListImagesFilter$tagStatus": "

The tag status with which to filter your ListImages results. You can filter results based on whether they are TAGGED or UNTAGGED.

" } }, @@ -709,7 +884,7 @@ "base": null, "refs": { "GetDownloadUrlForLayerResponse$downloadUrl": "

The pre-signed Amazon S3 download URL for the requested layer.

", - "Repository$repositoryUri": "

The URI for the repository. You can use this URI for Docker push and pull operations.

" + "Repository$repositoryUri": "

The URI for the repository. You can use this URI for Docker push or pull operations.

" } } } diff --git a/models/apis/ecr/2015-09-21/paginators-1.json b/models/apis/ecr/2015-09-21/paginators-1.json index dad0647fb35..f7a7f102ddd 100644 --- a/models/apis/ecr/2015-09-21/paginators-1.json +++ b/models/apis/ecr/2015-09-21/paginators-1.json @@ -1,22 +1,22 @@ { "pagination": { - "ListImages": { - "input_token": "nextToken", - "output_token": "nextToken", - "limit_key": "maxResults", - "result_key": "imageIds" - }, "DescribeImages": { "input_token": "nextToken", - "output_token": "nextToken", "limit_key": "maxResults", + "output_token": "nextToken", "result_key": "imageDetails" }, "DescribeRepositories": { "input_token": "nextToken", - "output_token": "nextToken", "limit_key": "maxResults", + "output_token": "nextToken", "result_key": "repositories" + }, + "ListImages": { + "input_token": "nextToken", + "limit_key": "maxResults", + "output_token": "nextToken", + "result_key": "imageIds" } } -} +} \ No newline at end of file diff --git a/models/apis/ecs/2014-11-13/api-2.json b/models/apis/ecs/2014-11-13/api-2.json index 1adc48d4880..30dad7b936b 100644 --- a/models/apis/ecs/2014-11-13/api-2.json +++ b/models/apis/ecs/2014-11-13/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"Amazon ECS", "serviceFullName":"Amazon EC2 Container Service", + "serviceId":"ECS", "signatureVersion":"v4", "targetPrefix":"AmazonEC2ContainerServiceV20141113", "uid":"ecs-2014-11-13" @@ -38,7 +39,11 @@ {"shape":"ServerException"}, {"shape":"ClientException"}, {"shape":"InvalidParameterException"}, - {"shape":"ClusterNotFoundException"} + {"shape":"ClusterNotFoundException"}, + {"shape":"UnsupportedFeatureException"}, + {"shape":"PlatformUnknownException"}, + {"shape":"PlatformTaskDefinitionIncompatibilityException"}, + {"shape":"AccessDeniedException"} ] }, "DeleteAttributes":{ @@ -69,7 +74,8 @@ {"shape":"InvalidParameterException"}, {"shape":"ClusterNotFoundException"}, {"shape":"ClusterContainsContainerInstancesException"}, - {"shape":"ClusterContainsServicesException"} + {"shape":"ClusterContainsServicesException"}, + {"shape":"ClusterContainsTasksException"} ] }, "DeleteService":{ @@ -329,7 +335,8 @@ "output":{"shape":"RegisterContainerInstanceResponse"}, "errors":[ {"shape":"ServerException"}, - {"shape":"ClientException"} + {"shape":"ClientException"}, + {"shape":"InvalidParameterException"} ] }, "RegisterTaskDefinition":{ @@ -358,7 +365,12 @@ {"shape":"ServerException"}, {"shape":"ClientException"}, {"shape":"InvalidParameterException"}, - {"shape":"ClusterNotFoundException"} + {"shape":"ClusterNotFoundException"}, + {"shape":"UnsupportedFeatureException"}, + {"shape":"PlatformUnknownException"}, + {"shape":"PlatformTaskDefinitionIncompatibilityException"}, + {"shape":"AccessDeniedException"}, + {"shape":"BlockedException"} ] }, "StartTask":{ @@ -401,7 +413,8 @@ "output":{"shape":"SubmitContainerStateChangeResponse"}, "errors":[ {"shape":"ServerException"}, - {"shape":"ClientException"} + {"shape":"ClientException"}, + {"shape":"AccessDeniedException"} ] }, "SubmitTaskStateChange":{ @@ -414,7 +427,8 @@ "output":{"shape":"SubmitTaskStateChangeResponse"}, "errors":[ {"shape":"ServerException"}, - {"shape":"ClientException"} + {"shape":"ClientException"}, + {"shape":"AccessDeniedException"} ] }, "UpdateContainerAgent":{ @@ -464,11 +478,20 @@ {"shape":"InvalidParameterException"}, {"shape":"ClusterNotFoundException"}, {"shape":"ServiceNotFoundException"}, - {"shape":"ServiceNotActiveException"} + {"shape":"ServiceNotActiveException"}, + {"shape":"PlatformUnknownException"}, + {"shape":"PlatformTaskDefinitionIncompatibilityException"}, + {"shape":"AccessDeniedException"} ] } }, "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "AgentUpdateStatus":{ "type":"string", "enum":[ @@ -480,6 +503,45 @@ "FAILED" ] }, + "AssignPublicIp":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "Attachment":{ + "type":"structure", + "members":{ + "id":{"shape":"String"}, + "type":{"shape":"String"}, + "status":{"shape":"String"}, + "details":{"shape":"AttachmentDetails"} + } + }, + "AttachmentDetails":{ + "type":"list", + "member":{"shape":"KeyValuePair"} + }, + "AttachmentStateChange":{ + "type":"structure", + "required":[ + "attachmentArn", + "status" + ], + "members":{ + "attachmentArn":{"shape":"String"}, + "status":{"shape":"String"} + } + }, + "AttachmentStateChanges":{ + "type":"list", + "member":{"shape":"AttachmentStateChange"} + }, + "Attachments":{ + "type":"list", + "member":{"shape":"Attachment"} + }, "Attribute":{ "type":"structure", "required":["name"], @@ -500,6 +562,21 @@ "type":"list", "member":{"shape":"Attribute"} }, + "AwsVpcConfiguration":{ + "type":"structure", + "required":["subnets"], + "members":{ + "subnets":{"shape":"StringList"}, + "securityGroups":{"shape":"StringList"}, + "assignPublicIp":{"shape":"AssignPublicIp"} + } + }, + "BlockedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "Boolean":{"type":"boolean"}, "BoxedBoolean":{ "type":"boolean", @@ -525,7 +602,8 @@ "registeredContainerInstancesCount":{"shape":"Integer"}, "runningTasksCount":{"shape":"Integer"}, "pendingTasksCount":{"shape":"Integer"}, - "activeServicesCount":{"shape":"Integer"} + "activeServicesCount":{"shape":"Integer"}, + "statistics":{"shape":"Statistics"} } }, "ClusterContainsContainerInstancesException":{ @@ -540,6 +618,20 @@ }, "exception":true }, + "ClusterContainsTasksException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ClusterField":{ + "type":"string", + "enum":["STATISTICS"] + }, + "ClusterFieldList":{ + "type":"list", + "member":{"shape":"ClusterField"} + }, "ClusterNotFoundException":{ "type":"structure", "members":{ @@ -550,6 +642,24 @@ "type":"list", "member":{"shape":"Cluster"} }, + "Compatibility":{ + "type":"string", + "enum":[ + "EC2", + "FARGATE" + ] + }, + "CompatibilityList":{ + "type":"list", + "member":{"shape":"Compatibility"} + }, + "Connectivity":{ + "type":"string", + "enum":[ + "CONNECTED", + "DISCONNECTED" + ] + }, "Container":{ "type":"structure", "members":{ @@ -559,7 +669,8 @@ "lastStatus":{"shape":"String"}, "exitCode":{"shape":"BoxedInteger"}, "reason":{"shape":"String"}, - "networkBindings":{"shape":"NetworkBindings"} + "networkBindings":{"shape":"NetworkBindings"}, + "networkInterfaces":{"shape":"NetworkInterfaces"} } }, "ContainerDefinition":{ @@ -578,6 +689,7 @@ "environment":{"shape":"EnvironmentVariables"}, "mountPoints":{"shape":"MountPointList"}, "volumesFrom":{"shape":"VolumeFromList"}, + "linuxParameters":{"shape":"LinuxParameters"}, "hostname":{"shape":"String"}, "user":{"shape":"String"}, "workingDirectory":{"shape":"String"}, @@ -612,7 +724,8 @@ "pendingTasksCount":{"shape":"Integer"}, "agentUpdateStatus":{"shape":"AgentUpdateStatus"}, "attributes":{"shape":"Attributes"}, - "registeredAt":{"shape":"Timestamp"} + "registeredAt":{"shape":"Timestamp"}, + "attachments":{"shape":"Attachments"} } }, "ContainerInstanceStatus":{ @@ -641,6 +754,20 @@ "type":"list", "member":{"shape":"ContainerOverride"} }, + "ContainerStateChange":{ + "type":"structure", + "members":{ + "containerName":{"shape":"String"}, + "exitCode":{"shape":"BoxedInteger"}, + "networkBindings":{"shape":"NetworkBindings"}, + "reason":{"shape":"String"}, + "status":{"shape":"String"} + } + }, + "ContainerStateChanges":{ + "type":"list", + "member":{"shape":"ContainerStateChange"} + }, "Containers":{ "type":"list", "member":{"shape":"Container"} @@ -671,10 +798,13 @@ "loadBalancers":{"shape":"LoadBalancers"}, "desiredCount":{"shape":"BoxedInteger"}, "clientToken":{"shape":"String"}, + "launchType":{"shape":"LaunchType"}, + "platformVersion":{"shape":"String"}, "role":{"shape":"String"}, "deploymentConfiguration":{"shape":"DeploymentConfiguration"}, "placementConstraints":{"shape":"PlacementConstraints"}, - "placementStrategy":{"shape":"PlacementStrategies"} + "placementStrategy":{"shape":"PlacementStrategies"}, + "networkConfiguration":{"shape":"NetworkConfiguration"} } }, "CreateServiceResponse":{ @@ -734,7 +864,10 @@ "pendingCount":{"shape":"Integer"}, "runningCount":{"shape":"Integer"}, "createdAt":{"shape":"Timestamp"}, - "updatedAt":{"shape":"Timestamp"} + "updatedAt":{"shape":"Timestamp"}, + "launchType":{"shape":"LaunchType"}, + "platformVersion":{"shape":"String"}, + "networkConfiguration":{"shape":"NetworkConfiguration"} } }, "DeploymentConfiguration":{ @@ -779,7 +912,8 @@ "DescribeClustersRequest":{ "type":"structure", "members":{ - "clusters":{"shape":"StringList"} + "clusters":{"shape":"StringList"}, + "include":{"shape":"ClusterFieldList"} } }, "DescribeClustersResponse":{ @@ -855,6 +989,31 @@ "STOPPED" ] }, + "Device":{ + "type":"structure", + "required":["hostPath"], + "members":{ + "hostPath":{"shape":"String"}, + "containerPath":{"shape":"String"}, + "permissions":{"shape":"DeviceCgroupPermissions"} + } + }, + "DeviceCgroupPermission":{ + "type":"string", + "enum":[ + "read", + "write", + "mknod" + ] + }, + "DeviceCgroupPermissions":{ + "type":"list", + "member":{"shape":"DeviceCgroupPermission"} + }, + "DevicesList":{ + "type":"list", + "member":{"shape":"Device"} + }, "DiscoverPollEndpointRequest":{ "type":"structure", "members":{ @@ -918,6 +1077,13 @@ }, "exception":true }, + "KernelCapabilities":{ + "type":"structure", + "members":{ + "add":{"shape":"StringList"}, + "drop":{"shape":"StringList"} + } + }, "KeyValuePair":{ "type":"structure", "members":{ @@ -925,6 +1091,21 @@ "value":{"shape":"String"} } }, + "LaunchType":{ + "type":"string", + "enum":[ + "EC2", + "FARGATE" + ] + }, + "LinuxParameters":{ + "type":"structure", + "members":{ + "capabilities":{"shape":"KernelCapabilities"}, + "devices":{"shape":"DevicesList"}, + "initProcessEnabled":{"shape":"BoxedBoolean"} + } + }, "ListAttributesRequest":{ "type":"structure", "required":["targetType"], @@ -980,7 +1161,8 @@ "members":{ "cluster":{"shape":"String"}, "nextToken":{"shape":"String"}, - "maxResults":{"shape":"BoxedInteger"} + "maxResults":{"shape":"BoxedInteger"}, + "launchType":{"shape":"LaunchType"} } }, "ListServicesResponse":{ @@ -1033,7 +1215,8 @@ "maxResults":{"shape":"BoxedInteger"}, "startedBy":{"shape":"String"}, "serviceName":{"shape":"String"}, - "desiredStatus":{"shape":"DesiredStatus"} + "desiredStatus":{"shape":"DesiredStatus"}, + "launchType":{"shape":"LaunchType"} } }, "ListTasksResponse":{ @@ -1113,11 +1296,30 @@ "type":"list", "member":{"shape":"NetworkBinding"} }, + "NetworkConfiguration":{ + "type":"structure", + "members":{ + "awsvpcConfiguration":{"shape":"AwsVpcConfiguration"} + } + }, + "NetworkInterface":{ + "type":"structure", + "members":{ + "attachmentId":{"shape":"String"}, + "privateIpv4Address":{"shape":"String"}, + "ipv6Address":{"shape":"String"} + } + }, + "NetworkInterfaces":{ + "type":"list", + "member":{"shape":"NetworkInterface"} + }, "NetworkMode":{ "type":"string", "enum":[ "bridge", "host", + "awsvpc", "none" ] }, @@ -1164,6 +1366,18 @@ "binpack" ] }, + "PlatformTaskDefinitionIncompatibilityException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "PlatformUnknownException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "PortMapping":{ "type":"structure", "members":{ @@ -1217,10 +1431,14 @@ "members":{ "family":{"shape":"String"}, "taskRoleArn":{"shape":"String"}, + "executionRoleArn":{"shape":"String"}, "networkMode":{"shape":"NetworkMode"}, "containerDefinitions":{"shape":"ContainerDefinitions"}, "volumes":{"shape":"VolumeList"}, - "placementConstraints":{"shape":"TaskDefinitionPlacementConstraints"} + "placementConstraints":{"shape":"TaskDefinitionPlacementConstraints"}, + "requiresCompatibilities":{"shape":"CompatibilityList"}, + "cpu":{"shape":"String"}, + "memory":{"shape":"String"} } }, "RegisterTaskDefinitionResponse":{ @@ -1259,7 +1477,10 @@ "startedBy":{"shape":"String"}, "group":{"shape":"String"}, "placementConstraints":{"shape":"PlacementConstraints"}, - "placementStrategy":{"shape":"PlacementStrategies"} + "placementStrategy":{"shape":"PlacementStrategies"}, + "launchType":{"shape":"LaunchType"}, + "platformVersion":{"shape":"String"}, + "networkConfiguration":{"shape":"NetworkConfiguration"} } }, "RunTaskResponse":{ @@ -1288,6 +1509,8 @@ "desiredCount":{"shape":"Integer"}, "runningCount":{"shape":"Integer"}, "pendingCount":{"shape":"Integer"}, + "launchType":{"shape":"LaunchType"}, + "platformVersion":{"shape":"String"}, "taskDefinition":{"shape":"String"}, "deploymentConfiguration":{"shape":"DeploymentConfiguration"}, "deployments":{"shape":"Deployments"}, @@ -1295,7 +1518,8 @@ "events":{"shape":"ServiceEvents"}, "createdAt":{"shape":"Timestamp"}, "placementConstraints":{"shape":"PlacementConstraints"}, - "placementStrategy":{"shape":"PlacementStrategies"} + "placementStrategy":{"shape":"PlacementStrategies"}, + "networkConfiguration":{"shape":"NetworkConfiguration"} } }, "ServiceEvent":{ @@ -1345,7 +1569,8 @@ "overrides":{"shape":"TaskOverride"}, "containerInstances":{"shape":"StringList"}, "startedBy":{"shape":"String"}, - "group":{"shape":"String"} + "group":{"shape":"String"}, + "networkConfiguration":{"shape":"NetworkConfiguration"} } }, "StartTaskResponse":{ @@ -1355,6 +1580,10 @@ "failures":{"shape":"Failures"} } }, + "Statistics":{ + "type":"list", + "member":{"shape":"KeyValuePair"} + }, "StopTaskRequest":{ "type":"structure", "required":["task"], @@ -1399,7 +1628,12 @@ "cluster":{"shape":"String"}, "task":{"shape":"String"}, "status":{"shape":"String"}, - "reason":{"shape":"String"} + "reason":{"shape":"String"}, + "containers":{"shape":"ContainerStateChanges"}, + "attachments":{"shape":"AttachmentStateChanges"}, + "pullStartedAt":{"shape":"Timestamp"}, + "pullStoppedAt":{"shape":"Timestamp"}, + "executionStoppedAt":{"shape":"Timestamp"} } }, "SubmitTaskStateChangeResponse":{ @@ -1428,14 +1662,25 @@ "overrides":{"shape":"TaskOverride"}, "lastStatus":{"shape":"String"}, "desiredStatus":{"shape":"String"}, + "cpu":{"shape":"String"}, + "memory":{"shape":"String"}, "containers":{"shape":"Containers"}, "startedBy":{"shape":"String"}, "version":{"shape":"Long"}, "stoppedReason":{"shape":"String"}, + "connectivity":{"shape":"Connectivity"}, + "connectivityAt":{"shape":"Timestamp"}, + "pullStartedAt":{"shape":"Timestamp"}, + "pullStoppedAt":{"shape":"Timestamp"}, + "executionStoppedAt":{"shape":"Timestamp"}, "createdAt":{"shape":"Timestamp"}, "startedAt":{"shape":"Timestamp"}, + "stoppingAt":{"shape":"Timestamp"}, "stoppedAt":{"shape":"Timestamp"}, - "group":{"shape":"String"} + "group":{"shape":"String"}, + "launchType":{"shape":"LaunchType"}, + "platformVersion":{"shape":"String"}, + "attachments":{"shape":"Attachments"} } }, "TaskDefinition":{ @@ -1445,12 +1690,17 @@ "containerDefinitions":{"shape":"ContainerDefinitions"}, "family":{"shape":"String"}, "taskRoleArn":{"shape":"String"}, + "executionRoleArn":{"shape":"String"}, "networkMode":{"shape":"NetworkMode"}, "revision":{"shape":"Integer"}, "volumes":{"shape":"VolumeList"}, "status":{"shape":"TaskDefinitionStatus"}, "requiresAttributes":{"shape":"RequiresAttributes"}, - "placementConstraints":{"shape":"TaskDefinitionPlacementConstraints"} + "placementConstraints":{"shape":"TaskDefinitionPlacementConstraints"}, + "compatibilities":{"shape":"CompatibilityList"}, + "requiresCompatibilities":{"shape":"CompatibilityList"}, + "cpu":{"shape":"String"}, + "memory":{"shape":"String"} } }, "TaskDefinitionFamilyStatus":{ @@ -1487,7 +1737,8 @@ "type":"structure", "members":{ "containerOverrides":{"shape":"ContainerOverrides"}, - "taskRoleArn":{"shape":"String"} + "taskRoleArn":{"shape":"String"}, + "executionRoleArn":{"shape":"String"} } }, "Tasks":{ @@ -1539,6 +1790,12 @@ "stack" ] }, + "UnsupportedFeatureException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "UpdateContainerAgentRequest":{ "type":"structure", "required":["containerInstance"], @@ -1586,7 +1843,10 @@ "service":{"shape":"String"}, "desiredCount":{"shape":"BoxedInteger"}, "taskDefinition":{"shape":"String"}, - "deploymentConfiguration":{"shape":"DeploymentConfiguration"} + "deploymentConfiguration":{"shape":"DeploymentConfiguration"}, + "networkConfiguration":{"shape":"NetworkConfiguration"}, + "platformVersion":{"shape":"String"}, + "forceNewDeployment":{"shape":"Boolean"} } }, "UpdateServiceResponse":{ diff --git a/models/apis/ecs/2014-11-13/docs-2.json b/models/apis/ecs/2014-11-13/docs-2.json index b624b3f3c7d..49f2b22609e 100644 --- a/models/apis/ecs/2014-11-13/docs-2.json +++ b/models/apis/ecs/2014-11-13/docs-2.json @@ -1,48 +1,90 @@ { "version": "2.0", - "service": "

Amazon EC2 Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster of EC2 instances. Amazon ECS lets you launch and stop container-enabled applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features like security groups, Amazon EBS volumes, and IAM roles.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon EC2 Container Service eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure.

", + "service": "

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster. You can host your cluster on a serverless infrastructure that is managed by Amazon ECS by launching your services or tasks using the Fargate launch type. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances that you manage by using the EC2 launch type. For more information about launch types, see Amazon ECS Launch Types.

Amazon ECS lets you launch and stop container-based applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon ECS eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure.

", "operations": { - "CreateCluster": "

Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action.

", - "CreateService": "

Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below desiredCount, Amazon ECS spawns another copy of the task in the specified cluster. To update an existing service, see UpdateService.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind a load balancer. The load balancer distributes traffic across the tasks that are associated with the service. For more information, see Service Load Balancing in the Amazon EC2 Container Service Developer Guide.

You can optionally specify a deployment configuration for your service. During a deployment (which is triggered by changing the task definition or the desired count of a service with an UpdateService operation), the service scheduler uses the minimumHealthyPercent and maximumPercent parameters to determine the deployment strategy.

The minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the scheduler can stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they are in the RUNNING state. Tasks for services that do use a load balancer are considered healthy if they are in the RUNNING state and the container instance they are hosted on is reported as healthy by the load balancer. The default value for minimumHealthyPercent is 50% in the console and 100% for the AWS CLI, the AWS SDKs, and the APIs.

The maximumPercent parameter represents an upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service has a desiredCount of four tasks and a maximumPercent value of 200%, the scheduler can start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximumPercent is 200%.

When the service scheduler launches new tasks, it determines task placement in your cluster using the following logic:

", + "CreateCluster": "

Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action.

When you call the CreateCluster API operation, Amazon ECS attempts to create the service-linked role for your account so that required resources in other AWS services can be managed on your behalf. However, if the IAM user that makes the call does not have permissions to create the service-linked role, it is not created. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

", + "CreateService": "

Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below desiredCount, Amazon ECS spawns another copy of the task in the specified cluster. To update an existing service, see UpdateService.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind a load balancer. The load balancer distributes traffic across the tasks that are associated with the service. For more information, see Service Load Balancing in the Amazon Elastic Container Service Developer Guide.

You can optionally specify a deployment configuration for your service. During a deployment, the service scheduler uses the minimumHealthyPercent and maximumPercent parameters to determine the deployment strategy. The deployment is triggered by changing the task definition or the desired count of a service with an UpdateService operation.

The minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the scheduler can stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they are in the RUNNING state. Tasks for services that do use a load balancer are considered healthy if they are in the RUNNING state and the container instance they are hosted on is reported as healthy by the load balancer. The default value for minimumHealthyPercent is 50% in the console and 100% for the AWS CLI, the AWS SDKs, and the APIs.

The maximumPercent parameter represents an upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service has a desiredCount of four tasks and a maximumPercent value of 200%, the scheduler can start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximumPercent is 200%.

When the service scheduler launches new tasks, it determines task placement in your cluster using the following logic:

", "DeleteAttributes": "

Deletes one or more custom attributes from an Amazon ECS resource.

", "DeleteCluster": "

Deletes the specified cluster. You must deregister all container instances from this cluster before you may delete it. You can list the container instances in a cluster with ListContainerInstances and deregister them with DeregisterContainerInstance.

", - "DeleteService": "

Deletes a specified service within a cluster. You can delete a service if you have no running tasks in it and the desired task count is zero. If the service is actively maintaining tasks, you cannot delete it, and you must update the service to a desired task count of zero. For more information, see UpdateService.

When you delete a service, if there are still running tasks that require cleanup, the service status moves from ACTIVE to DRAINING, and the service is no longer visible in the console or in ListServices API operations. After the tasks have stopped, then the service status moves from DRAINING to INACTIVE. Services in the DRAINING or INACTIVE status can still be viewed with DescribeServices API operations; however, in the future, INACTIVE services may be cleaned up and purged from Amazon ECS record keeping, and DescribeServices API operations on those services will return a ServiceNotFoundException error.

", - "DeregisterContainerInstance": "

Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer available to run tasks.

If you intend to use the container instance for some other purpose after deregistration, you should stop all of the tasks running on the container instance before deregistration to avoid any orphaned tasks from consuming resources.

Deregistering a container instance removes the instance from a cluster, but it does not terminate the EC2 instance; if you are finished using the instance, be sure to terminate it in the Amazon EC2 console to stop billing.

If you terminate a running container instance, Amazon ECS automatically deregisters the instance from your cluster (stopped container instances or instances with disconnected agents are not automatically deregistered when terminated).

", - "DeregisterTaskDefinition": "

Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as INACTIVE. Existing tasks and services that reference an INACTIVE task definition continue to run without disruption. Existing services that reference an INACTIVE task definition can still scale up or down by modifying the service's desired count.

You cannot use an INACTIVE task definition to run new tasks or create new services, and you cannot update an existing service to reference an INACTIVE task definition (although there may be up to a 10 minute window following deregistration where these restrictions have not yet taken effect).

At this time, INACTIVE task definitions remain discoverable in your account indefinitely; however, this behavior is subject to change in the future, so you should not rely on INACTIVE task definitions persisting beyond the life cycle of any associated tasks and services.

", + "DeleteService": "

Deletes a specified service within a cluster. You can delete a service if you have no running tasks in it and the desired task count is zero. If the service is actively maintaining tasks, you cannot delete it, and you must update the service to a desired task count of zero. For more information, see UpdateService.

When you delete a service, if there are still running tasks that require cleanup, the service status moves from ACTIVE to DRAINING, and the service is no longer visible in the console or in ListServices API operations. After the tasks have stopped, then the service status moves from DRAINING to INACTIVE. Services in the DRAINING or INACTIVE status can still be viewed with DescribeServices API operations. However, in the future, INACTIVE services may be cleaned up and purged from Amazon ECS record keeping, and DescribeServices API operations on those services return a ServiceNotFoundException error.

", + "DeregisterContainerInstance": "

Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer available to run tasks.

If you intend to use the container instance for some other purpose after deregistration, you should stop all of the tasks running on the container instance before deregistration. That prevents any orphaned tasks from consuming resources.

Deregistering a container instance removes the instance from a cluster, but it does not terminate the EC2 instance; if you are finished using the instance, be sure to terminate it in the Amazon EC2 console to stop billing.

If you terminate a running container instance, Amazon ECS automatically deregisters the instance from your cluster (stopped container instances or instances with disconnected agents are not automatically deregistered when terminated).

", + "DeregisterTaskDefinition": "

Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as INACTIVE. Existing tasks and services that reference an INACTIVE task definition continue to run without disruption. Existing services that reference an INACTIVE task definition can still scale up or down by modifying the service's desired count.

You cannot use an INACTIVE task definition to run new tasks or create new services, and you cannot update an existing service to reference an INACTIVE task definition (although there may be up to a 10-minute window following deregistration where these restrictions have not yet taken effect).

At this time, INACTIVE task definitions remain discoverable in your account indefinitely; however, this behavior is subject to change in the future, so you should not rely on INACTIVE task definitions persisting beyond the lifecycle of any associated tasks and services.

", "DescribeClusters": "

Describes one or more of your clusters.

", - "DescribeContainerInstances": "

Describes Amazon EC2 Container Service container instances. Returns metadata about registered and remaining resources on each container instance requested.

", + "DescribeContainerInstances": "

Describes Amazon Elastic Container Service container instances. Returns metadata about registered and remaining resources on each container instance requested.

", "DescribeServices": "

Describes the specified services running in your cluster.

", "DescribeTaskDefinition": "

Describes a task definition. You can specify a family and revision to find information about a specific task definition, or you can simply specify the family to find the latest ACTIVE revision in that family.

You can only describe INACTIVE task definitions while an active task or service references them.

", "DescribeTasks": "

Describes a specified task or tasks.

", - "DiscoverPollEndpoint": "

This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent.

Returns an endpoint for the Amazon EC2 Container Service agent to poll for updates.

", + "DiscoverPollEndpoint": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Returns an endpoint for the Amazon ECS agent to poll for updates.

", "ListAttributes": "

Lists the attributes for Amazon ECS resources within a specified target type and cluster. When you specify a target type and cluster, ListAttributes returns a list of attribute objects, one for each attribute on each resource. You can filter the list of results to a single attribute name to only return results that have that name. You can also filter the results by attribute name and value, for example, to see which container instances in a cluster are running a Linux AMI (ecs.os-type=linux).

", "ListClusters": "

Returns a list of existing clusters.

", - "ListContainerInstances": "

Returns a list of container instances in a specified cluster. You can filter the results of a ListContainerInstances operation with cluster query language statements inside the filter parameter. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.

", + "ListContainerInstances": "

Returns a list of container instances in a specified cluster. You can filter the results of a ListContainerInstances operation with cluster query language statements inside the filter parameter. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

", "ListServices": "

Lists the services that are running in a specified cluster.

", "ListTaskDefinitionFamilies": "

Returns a list of task definition families that are registered to your account (which may include task definition families that no longer have any ACTIVE task definition revisions).

You can filter out task definition families that do not contain any ACTIVE task definition revisions by setting the status parameter to ACTIVE. You can also filter the results with the familyPrefix parameter.

", "ListTaskDefinitions": "

Returns a list of task definitions that are registered to your account. You can filter the results by family name with the familyPrefix parameter or by status with the status parameter.

", - "ListTasks": "

Returns a list of tasks for a specified cluster. You can filter the results by family name, by a particular container instance, or by the desired status of the task with the family, containerInstance, and desiredStatus parameters.

Recently-stopped tasks might appear in the returned results. Currently, stopped tasks appear in the returned results for at least one hour.

", - "PutAttributes": "

Create or update an attribute on an Amazon ECS resource. If the attribute does not exist, it is created. If the attribute exists, its value is replaced with the specified value. To delete an attribute, use DeleteAttributes. For more information, see Attributes in the Amazon EC2 Container Service Developer Guide.

", - "RegisterContainerInstance": "

This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent.

Registers an EC2 instance into the specified cluster. This instance becomes available to place containers on.

", - "RegisterTaskDefinition": "

Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide.

You can specify an IAM role for your task with the taskRoleArn parameter. When you specify an IAM role for a task, its containers can then use the latest versions of the AWS CLI or SDKs to make API requests to the AWS services that are specified in the IAM policy associated with the role. For more information, see IAM Roles for Tasks in the Amazon EC2 Container Service Developer Guide.

You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. The available network modes correspond to those described in Network settings in the Docker run reference.

", - "RunTask": "

Starts a new task using the specified task definition.

You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon EC2 Container Service Developer Guide.

Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances.

", - "StartTask": "

Starts a new task from the specified task definition on the specified container instance or instances.

Alternatively, you can use RunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon EC2 Container Service Developer Guide.

", - "StopTask": "

Stops a running task.

When StopTask is called on a task, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a default 30-second timeout, after which SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent.

The default 30-second timeout can be configured on the Amazon ECS container agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide.

", - "SubmitContainerStateChange": "

This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent.

Sent to acknowledge that a container changed states.

", - "SubmitTaskStateChange": "

This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent.

Sent to acknowledge that a task changed states.

", - "UpdateContainerAgent": "

Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container agent does not interrupt running tasks or services on the container instance. The process for updating the agent differs depending on whether your container instance was launched with the Amazon ECS-optimized AMI or another operating system.

UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux with the ecs-init service installed and running. For help updating the Amazon ECS container agent on other operating systems, see Manually Updating the Amazon ECS Container Agent in the Amazon EC2 Container Service Developer Guide.

", - "UpdateContainerInstancesState": "

Modifies the status of an Amazon ECS container instance.

You can change the status of a container instance to DRAINING to manually remove an instance from a cluster, for example to perform system updates, update the Docker daemon, or scale down the cluster size.

When you set a container instance to DRAINING, Amazon ECS prevents new tasks from being scheduled for placement on the container instance and replacement service tasks are started on other container instances in the cluster if the resources are available. Service tasks on the container instance that are in the PENDING state are stopped immediately.

Service tasks on the container instance that are in the RUNNING state are stopped and replaced according the service's deployment configuration parameters, minimumHealthyPercent and maximumPercent. Note that you can change the deployment configuration of your service using UpdateService.

Any PENDING or RUNNING tasks that do not belong to a service are not affected; you must wait for them to finish or stop them manually.

A container instance has completed draining when it has no more RUNNING tasks. You can verify this using ListTasks.

When you set a container instance to ACTIVE, the Amazon ECS scheduler can begin scheduling tasks on the instance again.

", - "UpdateService": "

Modifies the desired count, deployment configuration, or task definition used in a service.

You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter.

You can use UpdateService to modify your task definition and deploy a new version of your service.

You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent, to determine the deployment strategy.

When UpdateService stops a task during a deployment, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a 30-second timeout, after which SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent.

When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic:

When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:

" + "ListTasks": "

Returns a list of tasks for a specified cluster. You can filter the results by family name, by a particular container instance, or by the desired status of the task with the family, containerInstance, and desiredStatus parameters.

Recently stopped tasks might appear in the returned results. Currently, stopped tasks appear in the returned results for at least one hour.

", + "PutAttributes": "

Create or update an attribute on an Amazon ECS resource. If the attribute does not exist, it is created. If the attribute exists, its value is replaced with the specified value. To delete an attribute, use DeleteAttributes. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

", + "RegisterContainerInstance": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Registers an EC2 instance into the specified cluster. This instance becomes available to place containers on.

", + "RegisterTaskDefinition": "

Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

You can specify an IAM role for your task with the taskRoleArn parameter. When you specify an IAM role for a task, its containers can then use the latest versions of the AWS CLI or SDKs to make API requests to the AWS services that are specified in the IAM policy associated with the role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. The available network modes correspond to those described in Network settings in the Docker run reference. If you specify the awsvpc network mode, the task is allocated an Elastic Network Interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

", + "RunTask": "

Starts a new task using the specified task definition.

You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances.

", + "StartTask": "

Starts a new task from the specified task definition on the specified container instance or instances.

Alternatively, you can use RunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

", + "StopTask": "

Stops a running task.

When StopTask is called on a task, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a default 30-second timeout, after which SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent.

The default 30-second timeout can be configured on the Amazon ECS container agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.

", + "SubmitContainerStateChange": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Sent to acknowledge that a container changed states.

", + "SubmitTaskStateChange": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Sent to acknowledge that a task changed states.

", + "UpdateContainerAgent": "

Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container agent does not interrupt running tasks or services on the container instance. The process for updating the agent differs depending on whether your container instance was launched with the Amazon ECS-optimized AMI or another operating system.

UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux with the ecs-init service installed and running. For help updating the Amazon ECS container agent on other operating systems, see Manually Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide.

", + "UpdateContainerInstancesState": "

Modifies the status of an Amazon ECS container instance.

You can change the status of a container instance to DRAINING to manually remove an instance from a cluster, for example to perform system updates, update the Docker daemon, or scale down the cluster size.

When you set a container instance to DRAINING, Amazon ECS prevents new tasks from being scheduled for placement on the container instance and replacement service tasks are started on other container instances in the cluster if the resources are available. Service tasks on the container instance that are in the PENDING state are stopped immediately.

Service tasks on the container instance that are in the RUNNING state are stopped and replaced according to the service's deployment configuration parameters, minimumHealthyPercent and maximumPercent. You can change the deployment configuration of your service using UpdateService.

Any PENDING or RUNNING tasks that do not belong to a service are not affected; you must wait for them to finish or stop them manually.

A container instance has completed draining when it has no more RUNNING tasks. You can verify this using ListTasks.

When you set a container instance to ACTIVE, the Amazon ECS scheduler can begin scheduling tasks on the instance again.

", + "UpdateService": "

Modifies the desired count, deployment configuration, network configuration, or task definition used in a service.

You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter.

You can use UpdateService to modify your task definition and deploy a new version of your service.

You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent, to determine the deployment strategy.

When UpdateService stops a task during a deployment, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a 30-second timeout, after which SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent.

When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic:

When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:

" }, "shapes": { + "AccessDeniedException": { + "base": "

You do not have authorization to perform the requested action.

", + "refs": { + } + }, "AgentUpdateStatus": { "base": null, "refs": { "ContainerInstance$agentUpdateStatus": "

The status of the most recent agent update. If an update has never been requested, this value is NULL.

" } }, + "AssignPublicIp": { + "base": null, + "refs": { + "AwsVpcConfiguration$assignPublicIp": "

Specifies whether or not the task's elastic network interface receives a public IP address.

" + } + }, + "Attachment": { + "base": "

An object representing a container instance or task attachment.

", + "refs": { + "Attachments$member": null + } + }, + "AttachmentDetails": { + "base": null, + "refs": { + "Attachment$details": "

Details of the attachment. For Elastic Network Interfaces, this includes the network interface ID, the MAC address, the subnet ID, and the private IPv4 address.

" + } + }, + "AttachmentStateChange": { + "base": "

An object representing a change in state for a task attachment.

", + "refs": { + "AttachmentStateChanges$member": null + } + }, + "AttachmentStateChanges": { + "base": null, + "refs": { + "SubmitTaskStateChangeRequest$attachments": "

Any attachments associated with the state change request.

" + } + }, + "Attachments": { + "base": null, + "refs": { + "ContainerInstance$attachments": "

The Elastic Network Interfaces associated with the container instance.

", + "Task$attachments": "

The Elastic Network Adapter associated with the task if the task uses the awsvpc network mode.

" + } + }, "Attribute": { - "base": "

An attribute is a name-value pair associated with an Amazon ECS object. Attributes enable you to extend the Amazon ECS data model by adding custom metadata to your resources. For more information, see Attributes in the Amazon EC2 Container Service Developer Guide.

", + "base": "

An attribute is a name-value pair associated with an Amazon ECS object. Attributes enable you to extend the Amazon ECS data model by adding custom metadata to your resources. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

", "refs": { "Attributes$member": null, "RequiresAttributes$member": null @@ -65,20 +107,33 @@ "RegisterContainerInstanceRequest$attributes": "

The container instance attributes that this container instance supports.

" } }, + "AwsVpcConfiguration": { + "base": "

An object representing the networking details for a task or service.

", + "refs": { + "NetworkConfiguration$awsvpcConfiguration": "

The VPC subnets and security groups associated with a task.

" + } + }, + "BlockedException": { + "base": "

Your AWS account has been blocked. Contact AWS Customer Support for more information.

", + "refs": { + } + }, "Boolean": { "base": null, "refs": { - "ContainerInstance$agentConnected": "

This parameter returns true if the agent is actually connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return false, and instances without a connected agent cannot accept placement requests.

" + "ContainerInstance$agentConnected": "

This parameter returns true if the agent is connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return false. Instances without a connected agent can't accept placement requests.

", + "UpdateServiceRequest$forceNewDeployment": "

Whether or not to force a new deployment of the service.

" } }, "BoxedBoolean": { "base": null, "refs": { - "ContainerDefinition$essential": "

If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the essential parameter of a container is marked as false, then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential.

All tasks must have at least one essential container. If you have an application that is composed of multiple containers, you should group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see Application Architecture in the Amazon EC2 Container Service Developer Guide.

", - "ContainerDefinition$disableNetworking": "

When this parameter is true, networking is disabled within the container. This parameter maps to NetworkDisabled in the Create a container section of the Docker Remote API.

", - "ContainerDefinition$privileged": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run.

", - "ContainerDefinition$readonlyRootFilesystem": "

When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the --read-only option to docker run.

", - "DeregisterContainerInstanceRequest$force": "

Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the force option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible.

Any containers in orphaned service tasks that are registered with a Classic load balancer or an Application load balancer target group are deregistered, and they will begin connection draining according to the settings on the load balancer or target group.

", + "ContainerDefinition$essential": "

If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the essential parameter of a container is marked as false, then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential.

All tasks must have at least one essential container. If you have an application that is composed of multiple containers, you should group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see Application Architecture in the Amazon Elastic Container Service Developer Guide.

", + "ContainerDefinition$disableNetworking": "

When this parameter is true, networking is disabled within the container. This parameter maps to NetworkDisabled in the Create a container section of the Docker Remote API.

", + "ContainerDefinition$privileged": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run.

", + "ContainerDefinition$readonlyRootFilesystem": "

When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the --read-only option to docker run.

", + "DeregisterContainerInstanceRequest$force": "

Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the force option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible.

Any containers in orphaned service tasks that are registered with a Classic Load Balancer or an Application Load Balancer target group are deregistered. They begin connection draining according to the settings on the load balancer or target group.

", + "LinuxParameters$initProcessEnabled": "

Run an init process inside the container that forwards signals and reaps processes. This parameter maps to the --init option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

", "MountPoint$readOnly": "

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

", "VolumeFrom$readOnly": "

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

" } @@ -87,33 +142,34 @@ "base": null, "refs": { "Container$exitCode": "

The exit code returned from the container.

", - "ContainerDefinition$memory": "

The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

You must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used.

The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers.

", - "ContainerDefinition$memoryReservation": "

The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit; however, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to MemoryReservation in the Create a container section of the Docker Remote API and the --memory-reservation option to docker run.

You must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used.

For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation of 128 MiB, and a memory hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.

", + "ContainerDefinition$memory": "

The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

If your containers will be part of a task using the Fargate launch type, this field is optional and the only requirement is that the total amount of memory reserved for all containers within a task be lower than the task memory value.

For containers that will be part of a task using the EC2 launch type, you must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used.

The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers.

", + "ContainerDefinition$memoryReservation": "

The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit; however, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to MemoryReservation in the Create a container section of the Docker Remote API and the --memory-reservation option to docker run.

You must specify a non-zero integer for one or both of memory or memoryReservation in container definitions. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of memory is used.

For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation of 128 MiB, and a memory hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.

", "ContainerOverride$cpu": "

The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name.

", "ContainerOverride$memory": "

The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name.

", "ContainerOverride$memoryReservation": "

The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. You must also specify a container name.

", + "ContainerStateChange$exitCode": "

The exit code for the container, if the state change is a result of the container exiting.

", "CreateServiceRequest$desiredCount": "

The number of instantiations of the specified task definition to place and keep running on your cluster.

", "DeploymentConfiguration$maximumPercent": "

The upper limit (as a percentage of the service's desiredCount) of the number of tasks that are allowed in the RUNNING or PENDING state in a service during a deployment. The maximum number of tasks during a deployment is the desiredCount multiplied by maximumPercent/100, rounded down to the nearest integer value.

", - "DeploymentConfiguration$minimumHealthyPercent": "

The lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain in the RUNNING state in a service during a deployment. The minimum healthy tasks during a deployment is the desiredCount multiplied by minimumHealthyPercent/100, rounded up to the nearest integer value.

", + "DeploymentConfiguration$minimumHealthyPercent": "

The lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain in the RUNNING state in a service during a deployment. The minimum number of healthy tasks during a deployment is the desiredCount multiplied by minimumHealthyPercent/100, rounded up to the nearest integer value.

", "ListAttributesRequest$maxResults": "

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

", "ListClustersRequest$maxResults": "

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

", "ListContainerInstancesRequest$maxResults": "

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

", - "ListServicesRequest$maxResults": "

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

", + "ListServicesRequest$maxResults": "

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

", "ListTaskDefinitionFamiliesRequest$maxResults": "

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

", "ListTaskDefinitionsRequest$maxResults": "

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

", "ListTasksRequest$maxResults": "

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

", "LoadBalancer$containerPort": "

The port on the container to associate with the load balancer. This port must correspond to a containerPort in the service's task definition. Your container instances must allow ingress traffic on the hostPort of the port mapping.

", - "NetworkBinding$containerPort": "

The port number on the container that is be used with the network binding.

", + "NetworkBinding$containerPort": "

The port number on the container that is used with the network binding.

", "NetworkBinding$hostPort": "

The port number on the host that is used with the network binding.

", - "PortMapping$containerPort": "

The port number on the container that is bound to the user-specified or automatically assigned host port. If you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range (for more information, see hostPort). Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.

", - "PortMapping$hostPort": "

The port number on the container instance to reserve for your container. You can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under /proc/sys/net/ipv4/ip_local_port_range; if this kernel parameter is unavailable, the default ephemeral port range of 49153 to 65535 is used. You should not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default ephemeral port range of 49153 to 65535 will always be used for Docker versions prior to 1.6.0.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678 and 51679. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released).The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output, and a container instance may have up to 100 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward the 100 reserved ports limit).

", + "PortMapping$containerPort": "

The port number on the container that is bound to the user-specified or automatically assigned host port.

If using containers in a task with the Fargate launch type, exposed ports should be specified using containerPort.

If using containers in a task with the EC2 launch type and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range (for more information, see hostPort). Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.

", + "PortMapping$hostPort": "

The port number on the container instance to reserve for your container.

If using containers in a task with the Fargate launch type, the hostPort can either be left blank or needs to be the same value as the containerPort.

If using containers in a task with the EC2 launch type, you can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under /proc/sys/net/ipv4/ip_local_port_range; if this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used. You should not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default ephemeral port range from 49153 through 65535 is always used for Docker versions before 1.6.0.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678 and 51679. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released). The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output, and a container instance may have up to 100 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward the 100 reserved ports limit).

", "RunTaskRequest$count": "

The number of instantiations of the specified task to place on your cluster. You can specify up to 10 tasks per call.

", "SubmitContainerStateChangeRequest$exitCode": "

The exit code returned for the state change request.

", "UpdateServiceRequest$desiredCount": "

The number of instantiations of the task to place and keep running in your service.

" } }, "ClientException": { - "base": "

These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permission to use the action or resource, or specifying an identifier that is not valid.

", + "base": "

These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permissions to use the action or resource, or specifying an identifier that is not valid.

", "refs": { } }, @@ -135,6 +191,23 @@ "refs": { } }, + "ClusterContainsTasksException": { + "base": "

You cannot delete a cluster that has active tasks.

", + "refs": { + } + }, + "ClusterField": { + "base": null, + "refs": { + "ClusterFieldList$member": null + } + }, + "ClusterFieldList": { + "base": null, + "refs": { + "DescribeClustersRequest$include": "

Additional information about your clusters to be separated by launch type, including:

" + } + }, "ClusterNotFoundException": { "base": "

The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.

", "refs": { @@ -146,6 +219,26 @@ "DescribeClustersResponse$clusters": "

The list of clusters.

" } }, + "Compatibility": { + "base": null, + "refs": { + "CompatibilityList$member": null + } + }, + "CompatibilityList": { + "base": null, + "refs": { + "RegisterTaskDefinitionRequest$requiresCompatibilities": "

The launch type required by the task. If no value is specified, it defaults to EC2.

", + "TaskDefinition$compatibilities": "

The launch type to use with your task. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", + "TaskDefinition$requiresCompatibilities": "

The launch type the task is using.

" + } + }, + "Connectivity": { + "base": null, + "refs": { + "Task$connectivity": "

The connectivity status of a task.

" + } + }, "Container": { "base": "

A Docker container that is part of a task.

", "refs": { @@ -162,7 +255,7 @@ "base": null, "refs": { "RegisterTaskDefinitionRequest$containerDefinitions": "

A list of container definitions in JSON format that describe the different containers that make up your task.

", - "TaskDefinition$containerDefinitions": "

A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide.

" + "TaskDefinition$containerDefinitions": "

A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

" } }, "ContainerInstance": { @@ -200,6 +293,18 @@ "TaskOverride$containerOverrides": "

One or more container overrides sent to a task.

" } }, + "ContainerStateChange": { + "base": "

An object representing a change in state for a container.

", + "refs": { + "ContainerStateChanges$member": null + } + }, + "ContainerStateChanges": { + "base": null, + "refs": { + "SubmitTaskStateChangeRequest$containers": "

Any containers associated with the state change request.

" + } + }, "Containers": { "base": null, "refs": { @@ -349,7 +454,31 @@ "DesiredStatus": { "base": null, "refs": { - "ListTasksRequest$desiredStatus": "

The task desired status with which to filter the ListTasks results. Specifying a desiredStatus of STOPPED limits the results to tasks that ECS has set the desired status to STOPPED, which can be useful for debugging tasks that are not starting properly or have died or finished. The default status filter is RUNNING, which shows tasks that ECS has set the desired status to RUNNING.

Although you can filter results based on a desired status of PENDING, this will not return any results because ECS never sets the desired status of a task to that value (only a task's lastStatus may have a value of PENDING).

" + "ListTasksRequest$desiredStatus": "

The task desired status with which to filter the ListTasks results. Specifying a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has set the desired status to STOPPED, which can be useful for debugging tasks that are not starting properly or have died or finished. The default status filter is RUNNING, which shows tasks that Amazon ECS has set the desired status to RUNNING.

Although you can filter results based on a desired status of PENDING, this does not return any results because Amazon ECS never sets the desired status of a task to that value (only a task's lastStatus may have a value of PENDING).

" + } + }, + "Device": { + "base": "

An object representing a container instance host device.

", + "refs": { + "DevicesList$member": null + } + }, + "DeviceCgroupPermission": { + "base": null, + "refs": { + "DeviceCgroupPermissions$member": null + } + }, + "DeviceCgroupPermissions": { + "base": null, + "refs": { + "Device$permissions": "

The explicit permissions to provide to the container for the device. By default, the container has permissions for read, write, and mknod for the device.

" + } + }, + "DevicesList": { + "base": null, + "refs": { + "LinuxParameters$devices": "

Any host devices to expose to the container. This parameter maps to Devices in the Create a container section of the Docker Remote API and the --device option to docker run.

" } }, "DiscoverPollEndpointRequest": { @@ -365,7 +494,7 @@ "DockerLabelsMap": { "base": null, "refs": { - "ContainerDefinition$dockerLabels": "

A key/value map of labels to add to the container. This parameter maps to Labels in the Create a container section of the Docker Remote API and the --label option to docker run. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" + "ContainerDefinition$dockerLabels": "

A key/value map of labels to add to the container. This parameter maps to Labels in the Create a container section of the Docker Remote API and the --label option to docker run. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

" } }, "Double": { @@ -377,7 +506,7 @@ "EnvironmentVariables": { "base": null, "refs": { - "ContainerDefinition$environment": "

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We do not recommend using plain text environment variables for sensitive information, such as credential data.

", + "ContainerDefinition$environment": "

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We do not recommend using plaintext environment variables for sensitive information, such as credential data.

", "ContainerOverride$environment": "

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name.

" } }, @@ -408,13 +537,13 @@ "HostEntryList": { "base": null, "refs": { - "ContainerDefinition$extraHosts": "

A list of hostnames and IP address mappings to append to the /etc/hosts file on the container. This parameter maps to ExtraHosts in the Create a container section of the Docker Remote API and the --add-host option to docker run.

" + "ContainerDefinition$extraHosts": "

A list of hostnames and IP address mappings to append to the /etc/hosts file on the container. If using the Fargate launch type, this may be used to list non-Fargate hosts you want the container to talk to. This parameter maps to ExtraHosts in the Create a container section of the Docker Remote API and the --add-host option to docker run.

" } }, "HostVolumeProperties": { "base": "

Details on a container instance host volume.

", "refs": { - "Volume$host": "

The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running.

" + "Volume$host": "

The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running.

If you are using the Fargate launch type, the host parameter is not supported.

" } }, "Integer": { @@ -424,7 +553,7 @@ "Cluster$runningTasksCount": "

The number of tasks in the cluster that are in the RUNNING state.

", "Cluster$pendingTasksCount": "

The number of tasks in the cluster that are in the PENDING state.

", "Cluster$activeServicesCount": "

The number of services that are running on the cluster in an ACTIVE state. You can view these services with ListServices.

", - "ContainerDefinition$cpu": "

The number of cpu units reserved for the container. A container instance has 1,024 cpu units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run.

You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the Amazon EC2 Instances detail page by 1,024.

For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units.

The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see CPU share constraint in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version:

", + "ContainerDefinition$cpu": "

The number of cpu units reserved for the container. If your containers will be part of a task using the Fargate launch type, this field is optional and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task cpu value.

For containers that will be part of a task using the EC2 launch type, a container instance has 1,024 cpu units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run.

You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the Amazon EC2 Instances detail page by 1,024.

For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units.

The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see CPU share constraint in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version:

", "ContainerInstance$runningTasksCount": "

The number of tasks on the container instance that are in the RUNNING status.

", "ContainerInstance$pendingTasksCount": "

The number of tasks on the container instance that are in the PENDING status.

", "Deployment$desiredCount": "

The most recent desired count of tasks that was specified for the service to deploy or maintain.

", @@ -444,10 +573,36 @@ "refs": { } }, + "KernelCapabilities": { + "base": "

The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker. For more information on the default capabilities and the non-default available capabilities, see Runtime privilege and Linux capabilities in the Docker run reference. For more detailed information on these Linux capabilities, see the capabilities(7) Linux manual page.

", + "refs": { + "LinuxParameters$capabilities": "

The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.

" + } + }, "KeyValuePair": { "base": "

A key and value pair object.

", "refs": { - "EnvironmentVariables$member": null + "AttachmentDetails$member": null, + "EnvironmentVariables$member": null, + "Statistics$member": null + } + }, + "LaunchType": { + "base": null, + "refs": { + "CreateServiceRequest$launchType": "

The launch type on which to run your service.

", + "Deployment$launchType": "

The launch type on which your service is running.

", + "ListServicesRequest$launchType": "

The launch type for services you want to list.

", + "ListTasksRequest$launchType": "

The launch type for services you want to list.

", + "RunTaskRequest$launchType": "

The launch type on which to run your task.

", + "Service$launchType": "

The launch type on which your service is running.

", + "Task$launchType": "

The launch type on which your task is running.

" + } + }, + "LinuxParameters": { + "base": "

Linux-specific options that are applied to the container, such as Linux KernelCapabilities.

", + "refs": { + "ContainerDefinition$linuxParameters": "

Linux-specific modifications that are applied to the container, such as Linux KernelCapabilities. This field is not valid for containers in tasks using the Fargate launch type.

" } }, "ListAttributesRequest": { @@ -529,34 +684,34 @@ "LoadBalancers": { "base": null, "refs": { - "CreateServiceRequest$loadBalancers": "

A load balancer object representing the load balancer to use with your service. Currently, you are limited to one load balancer or target group per service. After you create a service, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable.

For Elastic Load Balancing Classic load balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here.

For Elastic Load Balancing Application load balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here.

", + "CreateServiceRequest$loadBalancers": "

A load balancer object representing the load balancer to use with your service. Currently, you are limited to one load balancer or target group per service. After you create a service, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable.

For Classic Load Balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here.

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here.

", "Service$loadBalancers": "

A list of Elastic Load Balancing load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.

" } }, "LogConfiguration": { "base": "

Log configuration options to send to a custom log driver for the container.

", "refs": { - "ContainerDefinition$logConfiguration": "

The log configuration specification for the container. This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses; however the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers may be available in future releases of the Amazon ECS container agent.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide.

" + "ContainerDefinition$logConfiguration": "

The log configuration specification for the container.

If using the Fargate launch type, the only supported value is awslogs.

This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses; however the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers may be available in future releases of the Amazon ECS container agent.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.

" } }, "LogConfigurationOptionsMap": { "base": null, "refs": { - "LogConfiguration$options": "

The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" + "LogConfiguration$options": "

The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

" } }, "LogDriver": { "base": null, "refs": { - "LogConfiguration$logDriver": "

The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default.

If you have a custom driver that is not listed above that you would like to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that is available on GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, Amazon Web Services does not currently provide support for running modified copies of this software.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" + "LogConfiguration$logDriver": "

The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. If using the Fargate launch type, the only supported value is awslogs. For more information about using the awslogs driver, see Using the awslogs Log Driver in the Amazon Elastic Container Service Developer Guide.

If you have a custom driver that is not listed above that you would like to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that is available on GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, Amazon Web Services does not currently support running modified copies of this software.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

" } }, "Long": { "base": null, "refs": { - "ContainerInstance$version": "

The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch events for the container instance (inside the detail object) to verify that the version in your event stream is current.

", + "ContainerInstance$version": "

The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch Events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch Events for the container instance (inside the detail object) to verify that the version in your event stream is current.

", "Resource$longValue": "

When the longValue type is set, the value of the resource must be an extended precision floating-point type.

", - "Task$version": "

The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch events, you can compare the version of a task reported by the Amazon ECS APIs with the version reported in CloudWatch events for the task (inside the detail object) to verify that the version in your event stream is current.

" + "Task$version": "

The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch Events, you can compare the version of a task reported by the Amazon ECS APIs with the version reported in CloudWatch Events for the task (inside the detail object) to verify that the version in your event stream is current.

" } }, "MissingVersionException": { @@ -573,7 +728,7 @@ "MountPointList": { "base": null, "refs": { - "ContainerDefinition$mountPoints": "

The mount points for data volumes in your container. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

" + "ContainerDefinition$mountPoints": "

The mount points for data volumes in your container.

If using the Fargate launch type, the sourceVolume parameter is not supported.

This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

" } }, "NetworkBinding": { @@ -586,14 +741,38 @@ "base": null, "refs": { "Container$networkBindings": "

The network bindings associated with the container.

", + "ContainerStateChange$networkBindings": "

Any network bindings associated with the container.

", "SubmitContainerStateChangeRequest$networkBindings": "

The network bindings of the container.

" } }, + "NetworkConfiguration": { + "base": "

An object representing the network configuration for a task or service.

", + "refs": { + "CreateServiceRequest$networkConfiguration": "

The network configuration for the service. This parameter is required for task definitions that use the awsvpc network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

", + "Deployment$networkConfiguration": "

The VPC subnet and security group configuration for tasks that receive their own Elastic Network Interface by using the awsvpc networking mode.

", + "RunTaskRequest$networkConfiguration": "

The network configuration for the task. This parameter is required for task definitions that use the awsvpc network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

", + "Service$networkConfiguration": "

The VPC subnet and security group configuration for tasks that receive their own Elastic Network Interface by using the awsvpc networking mode.

", + "StartTaskRequest$networkConfiguration": "

The VPC subnet and security group configuration for tasks that receive their own Elastic Network Interface by using the awsvpc networking mode.

", + "UpdateServiceRequest$networkConfiguration": "

The network configuration for the service. This parameter is required for task definitions that use the awsvpc network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

Updating a service to add a subnet to a list of existing subnets does not trigger a service deployment. For example, if your network configuration change is to keep the existing subnets and simply add another subnet to the network configuration, this does not trigger a new service deployment.

" + } + }, + "NetworkInterface": { + "base": "

An object representing the Elastic Network Interface for tasks that use the awsvpc network mode.

", + "refs": { + "NetworkInterfaces$member": null + } + }, + "NetworkInterfaces": { + "base": null, + "refs": { + "Container$networkInterfaces": "

The network interfaces associated with the container.

" + } + }, "NetworkMode": { "base": null, "refs": { - "RegisterTaskDefinitionRequest$networkMode": "

The Docker networking mode to use for the containers in the task. The valid values are none, bridge, and host.

The default Docker network mode is bridge. If the network mode is set to none, you cannot specify port mappings in your container definitions, and the task's containers do not have external connectivity. The host network mode offers the highest networking performance for containers because they use the host network stack instead of the virtualized network stack provided by the bridge mode; however, exposed container ports are mapped directly to the corresponding host port, so you cannot take advantage of dynamic host port mappings or run multiple instantiations of the same task on a single container instance if port mappings are used.

For more information, see Network settings in the Docker run reference.

", - "TaskDefinition$networkMode": "

The Docker networking mode to use for the containers in the task. The valid values are none, bridge, and host.

If the network mode is none, the containers do not have external connectivity. The default Docker network mode is bridge. The host network mode offers the highest networking performance for containers because it uses the host network stack instead of the virtualized network stack provided by the bridge mode.

For more information, see Network settings in the Docker run reference.

" + "RegisterTaskDefinitionRequest$networkMode": "

The Docker networking mode to use for the containers in the task. The valid values are none, bridge, awsvpc, and host. The default Docker network mode is bridge. If using the Fargate launch type, the awsvpc network mode is required. If using the EC2 launch type, any network mode can be used. If the network mode is set to none, you can't specify port mappings in your container definitions, and the task's containers do not have external connectivity. The host and awsvpc network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the bridge mode.

With the host and awsvpc network modes, exposed container ports are mapped directly to the corresponding host port (for the host network mode) or the attached elastic network interface port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings.

If the network mode is awsvpc, the task is allocated an Elastic Network Interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

If the network mode is host, you can't run multiple instantiations of the same task on a single container instance when port mappings are used.

For more information, see Network settings in the Docker run reference.

", + "TaskDefinition$networkMode": "

The Docker networking mode to use for the containers in the task. The valid values are none, bridge, awsvpc, and host. The default Docker network mode is bridge. If using the Fargate launch type, the awsvpc network mode is required. If using the EC2 launch type, any network mode can be used. If the network mode is set to none, you can't specify port mappings in your container definitions, and the task's containers do not have external connectivity. The host and awsvpc network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the bridge mode.

With the host and awsvpc network modes, exposed container ports are mapped directly to the corresponding host port (for the host network mode) or the attached elastic network interface port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings.

If the network mode is awsvpc, the task is allocated an Elastic Network Interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

If the network mode is host, you can't run multiple instantiations of the same task on a single container instance when port mappings are used.

For more information, see Network settings in the Docker run reference.

" } }, "NoUpdateAvailableException": { @@ -602,7 +781,7 @@ } }, "PlacementConstraint": { - "base": "

An object representing a constraint on task placement. For more information, see Task Placement Constraints in the Amazon EC2 Container Service Developer Guide.

", + "base": "

An object representing a constraint on task placement. For more information, see Task Placement Constraints in the Amazon Elastic Container Service Developer Guide.

", "refs": { "PlacementConstraints$member": null } @@ -610,7 +789,7 @@ "PlacementConstraintType": { "base": null, "refs": { - "PlacementConstraint$type": "

The type of constraint. Use distinctInstance to ensure that each task in a particular group is running on a different container instance. Use memberOf to restrict selection to a group of valid candidates. Note that distinctInstance is not supported in task definitions.

" + "PlacementConstraint$type": "

The type of constraint. Use distinctInstance to ensure that each task in a particular group is running on a different container instance. Use memberOf to restrict the selection to a group of valid candidates. The value distinctInstance is not supported in task definitions.

" } }, "PlacementConstraints": { @@ -624,13 +803,13 @@ "PlacementStrategies": { "base": null, "refs": { - "CreateServiceRequest$placementStrategy": "

The placement strategy objects to use for tasks in your service. You can specify a maximum of 5 strategy rules per service.

", - "RunTaskRequest$placementStrategy": "

The placement strategy objects to use for the task. You can specify a maximum of 5 strategy rules per task.

", + "CreateServiceRequest$placementStrategy": "

The placement strategy objects to use for tasks in your service. You can specify a maximum of five strategy rules per service.

", + "RunTaskRequest$placementStrategy": "

The placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task.

", "Service$placementStrategy": "

The placement strategy that determines how tasks for the service are placed.

" } }, "PlacementStrategy": { - "base": "

The task placement strategy for a task or service. For more information, see Task Placement Strategies in the Amazon EC2 Container Service Developer Guide.

", + "base": "

The task placement strategy for a task or service. For more information, see Task Placement Strategies in the Amazon Elastic Container Service Developer Guide.

", "refs": { "PlacementStrategies$member": null } @@ -641,8 +820,18 @@ "PlacementStrategy$type": "

The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task).

" } }, + "PlatformTaskDefinitionIncompatibilityException": { + "base": "

The specified platform version does not satisfy the task definition’s required capabilities.

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

The specified platform version does not exist.

", + "refs": { + } + }, "PortMapping": { - "base": "

Port mappings allow containers to access ports on the host container instance to send or receive traffic. Port mappings are specified as part of the container definition. After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the networkBindings section of DescribeTasks API responses.

", + "base": "

Port mappings allow containers to access ports on the host container instance to send or receive traffic. Port mappings are specified as part of the container definition.

If using containers in a task with the Fargate launch type, exposed ports should be specified using containerPort. The hostPort can be left blank or it must be the same value as the containerPort.

After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the networkBindings section of DescribeTasks API responses.

", "refs": { "PortMappingList$member": null } @@ -650,7 +839,7 @@ "PortMappingList": { "base": null, "refs": { - "ContainerDefinition$portMappings": "

The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. This parameter maps to PortBindings in the Create a container section of the Docker Remote API and the --publish option to docker run. If the network mode of a task definition is set to none, then you cannot specify port mappings. If the network mode of a task definition is set to host, then host ports must either be undefined or they must match the container port in the port mapping.

After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the Network Bindings section of a container description of a selected task in the Amazon ECS console, or the networkBindings section DescribeTasks responses.

" + "ContainerDefinition$portMappings": "

The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic.

If using containers in a task with the Fargate, exposed ports should be specified using containerPort. The hostPort can be left blank or it must be the same value as the containerPort.

This parameter maps to PortBindings in the Create a container section of the Docker Remote API and the --publish option to docker run. If the network mode of a task definition is set to none, then you can't specify port mappings. If the network mode of a task definition is set to host, then host ports must either be undefined or they must match the container port in the port mapping.

After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the Network Bindings section of a container description for a selected task in the Amazon ECS console, or the networkBindings section DescribeTasks responses.

" } }, "PutAttributesRequest": { @@ -686,7 +875,7 @@ "RequiresAttributes": { "base": null, "refs": { - "TaskDefinition$requiresAttributes": "

The container instance attributes required by your task.

" + "TaskDefinition$requiresAttributes": "

The container instance attributes required by your task. This field is not valid if using the Fargate launch type for your task.

" } }, "Resource": { @@ -740,7 +929,7 @@ } }, "ServiceNotActiveException": { - "base": "

The specified service is not active. You cannot update a service that is not active. If you have previously deleted a service, you can re-create it with CreateService.

", + "base": "

The specified service is not active. You can't update a service that is inactive. If you have previously deleted a service, you can re-create it with CreateService.

", "refs": { } }, @@ -771,6 +960,12 @@ "refs": { } }, + "Statistics": { + "base": null, + "refs": { + "Cluster$statistics": "

Additional information about your clusters that are separated by launch type, including:

" + } + }, "StopTaskRequest": { "base": null, "refs": { @@ -784,6 +979,11 @@ "String": { "base": null, "refs": { + "Attachment$id": "

The unique identifier for the attachment.

", + "Attachment$type": "

The type of the attachment, such as an ElasticNetworkInterface.

", + "Attachment$status": "

The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING, ATTACHED, DETACHING, DETACHED, and DELETED.

", + "AttachmentStateChange$attachmentArn": "

The Amazon Resource Name (ARN) of the attachment.

", + "AttachmentStateChange$status": "

The status of the attachment.

", "Attribute$name": "

The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers, hyphens, underscores, and periods are allowed.

", "Attribute$value": "

The value of the attribute. Up to 128 letters (uppercase and lowercase), numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons, and spaces are allowed.

", "Attribute$targetId": "

The ID of the target. You can specify the short form ID for a resource or the full Amazon Resource Name (ARN).

", @@ -792,25 +992,29 @@ "Cluster$clusterName": "

A user-generated string that you use to identify your cluster.

", "Cluster$status": "

The status of the cluster. The valid values are ACTIVE or INACTIVE. ACTIVE indicates that you can register container instances with the cluster and the associated instances can accept tasks.

", "Container$containerArn": "

The Amazon Resource Name (ARN) of the container.

", - "Container$taskArn": "

The Amazon Resource Name (ARN) of the task.

", + "Container$taskArn": "

The ARN of the task.

", "Container$name": "

The name of the container.

", "Container$lastStatus": "

The last known status of the container.

", "Container$reason": "

A short (255 max characters) human-readable string to provide additional details about a running or stopped container.

", - "ContainerDefinition$name": "

The name of a container. If you are linking multiple containers together in a task definition, the name of one container can be entered in the links of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This parameter maps to name in the Create a container section of the Docker Remote API and the --name option to docker run.

", - "ContainerDefinition$image": "

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

", - "ContainerDefinition$hostname": "

The hostname to use for your container. This parameter maps to Hostname in the Create a container section of the Docker Remote API and the --hostname option to docker run.

", - "ContainerDefinition$user": "

The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run.

", - "ContainerDefinition$workingDirectory": "

The working directory in which to run commands inside the container. This parameter maps to WorkingDir in the Create a container section of the Docker Remote API and the --workdir option to docker run.

", + "ContainerDefinition$name": "

The name of a container. If you are linking multiple containers together in a task definition, the name of one container can be entered in the links of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This parameter maps to name in the Create a container section of the Docker Remote API and the --name option to docker run.

", + "ContainerDefinition$image": "

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either repository-url/image:tag or repository-url/image@digest . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

", + "ContainerDefinition$hostname": "

The hostname to use for your container. This parameter maps to Hostname in the Create a container section of the Docker Remote API and the --hostname option to docker run.

", + "ContainerDefinition$user": "

The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run.

", + "ContainerDefinition$workingDirectory": "

The working directory in which to run commands inside the container. This parameter maps to WorkingDir in the Create a container section of the Docker Remote API and the --workdir option to docker run.

", "ContainerInstance$containerInstanceArn": "

The Amazon Resource Name (ARN) of the container instance. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID .

", "ContainerInstance$ec2InstanceId": "

The EC2 instance ID of the container instance.

", - "ContainerInstance$status": "

The status of the container instance. The valid values are ACTIVE, INACTIVE, or DRAINING. ACTIVE indicates that the container instance can accept tasks. DRAINING indicates that new tasks are not placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see Container Instance Draining in the Amazon EC2 Container Service Developer Guide.

", + "ContainerInstance$status": "

The status of the container instance. The valid values are ACTIVE, INACTIVE, or DRAINING. ACTIVE indicates that the container instance can accept tasks. DRAINING indicates that new tasks are not placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see Container Instance Draining in the Amazon Elastic Container Service Developer Guide.

", "ContainerOverride$name": "

The name of the container that receives the override. This parameter is required if any override is specified.

", + "ContainerStateChange$containerName": "

The name of the container.

", + "ContainerStateChange$reason": "

The reason for the state change.

", + "ContainerStateChange$status": "

The status of the container.

", "CreateClusterRequest$clusterName": "

The name of your cluster. If you do not specify a name for your cluster, you create a cluster named default. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

", "CreateServiceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster on which to run your service. If you do not specify a cluster, the default cluster is assumed.

", "CreateServiceRequest$serviceName": "

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a region or across multiple regions.

", - "CreateServiceRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used.

", + "CreateServiceRequest$taskDefinition": "

The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used.

", "CreateServiceRequest$clientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. Up to 32 ASCII characters are allowed.

", - "CreateServiceRequest$role": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service. If you specify the role parameter, you must also specify a load balancer object with the loadBalancers parameter.

If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/ then you would specify /foo/bar as the role name. For more information, see Friendly Names and Paths in the IAM User Guide.

", + "CreateServiceRequest$platformVersion": "

The platform version on which to run your service. If one is not specified, the latest version is used by default.

", + "CreateServiceRequest$role": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is only permitted if you are using a load balancer with your service and your task definition does not use the awsvpc network mode. If you specify the role parameter, you must also specify a load balancer object with the loadBalancers parameter.

If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. The service-linked role is required if your task definition uses the awsvpc network mode, in which case you should not specify a role here. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/ then you would specify /foo/bar as the role name. For more information, see Friendly Names and Paths in the IAM User Guide.

", "DeleteAttributesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to delete attributes. If you do not specify a cluster, the default cluster is assumed.

", "DeleteClusterRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster to delete.

", "DeleteServiceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to delete. If you do not specify a cluster, the default cluster is assumed.

", @@ -818,14 +1022,17 @@ "Deployment$id": "

The ID of the deployment.

", "Deployment$status": "

The status of the deployment. Valid values are PRIMARY (for the most recent deployment), ACTIVE (for previous deployments that still have tasks running, but are being replaced with the PRIMARY deployment), and INACTIVE (for deployments that have been completely replaced).

", "Deployment$taskDefinition": "

The most recent task definition that was specified for the service to use.

", + "Deployment$platformVersion": "

The platform version on which your service is running.

", "DeregisterContainerInstanceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to deregister. If you do not specify a cluster, the default cluster is assumed.

", - "DeregisterContainerInstanceRequest$containerInstance": "

The container instance ID or full Amazon Resource Name (ARN) of the container instance to deregister. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID .

", + "DeregisterContainerInstanceRequest$containerInstance": "

The container instance ID or full ARN of the container instance to deregister. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID .

", "DeregisterTaskDefinitionRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to deregister. You must specify a revision.

", "DescribeContainerInstancesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to describe. If you do not specify a cluster, the default cluster is assumed.

", "DescribeServicesRequest$cluster": "

The short name or full Amazon Resource Name (ARN)the cluster that hosts the service to describe. If you do not specify a cluster, the default cluster is assumed.

", "DescribeTaskDefinitionRequest$taskDefinition": "

The family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, or full Amazon Resource Name (ARN) of the task definition to describe.

", "DescribeTasksRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to describe. If you do not specify a cluster, the default cluster is assumed.

", - "DiscoverPollEndpointRequest$containerInstance": "

The container instance ID or full Amazon Resource Name (ARN) of the container instance. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID .

", + "Device$hostPath": "

The path for the device on the host container instance.

", + "Device$containerPath": "

The path inside the container at which to expose the host device.

", + "DiscoverPollEndpointRequest$containerInstance": "

The container instance ID or full ARN of the container instance. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID .

", "DiscoverPollEndpointRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that the container instance belongs to.

", "DiscoverPollEndpointResponse$endpoint": "

The endpoint for the Amazon ECS agent to poll.

", "DiscoverPollEndpointResponse$telemetryEndpoint": "

The telemetry endpoint for the Amazon ECS agent.

", @@ -835,107 +1042,123 @@ "Failure$reason": "

The reason for the failure.

", "HostEntry$hostname": "

The hostname to use in the /etc/hosts entry.

", "HostEntry$ipAddress": "

The IP address to use in the /etc/hosts entry.

", - "HostVolumeProperties$sourcePath": "

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

", + "HostVolumeProperties$sourcePath": "

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

If you are using the Fargate launch type, the host parameter is not supported.

", "KeyValuePair$name": "

The name of the key value pair. For environment variables, this is the name of the environment variable.

", "KeyValuePair$value": "

The value of the key value pair. For environment variables, this is the value of the environment variable.

", "ListAttributesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster to list attributes. If you do not specify a cluster, the default cluster is assumed.

", "ListAttributesRequest$attributeName": "

The name of the attribute with which to filter the results.

", "ListAttributesRequest$attributeValue": "

The value of the attribute with which to filter results. You must also specify an attribute name to use this parameter.

", - "ListAttributesRequest$nextToken": "

The nextToken value returned from a previous paginated ListAttributes request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "ListAttributesRequest$nextToken": "

The nextToken value returned from a previous paginated ListAttributes request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListAttributesResponse$nextToken": "

The nextToken value to include in a future ListAttributes request. When the results of a ListAttributes request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", - "ListClustersRequest$nextToken": "

The nextToken value returned from a previous paginated ListClusters request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "ListClustersRequest$nextToken": "

The nextToken value returned from a previous paginated ListClusters request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListClustersResponse$nextToken": "

The nextToken value to include in a future ListClusters request. When the results of a ListClusters request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListContainerInstancesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to list. If you do not specify a cluster, the default cluster is assumed.

", - "ListContainerInstancesRequest$filter": "

You can filter the results of a ListContainerInstances operation with cluster query language statements. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.

", - "ListContainerInstancesRequest$nextToken": "

The nextToken value returned from a previous paginated ListContainerInstances request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "ListContainerInstancesRequest$filter": "

You can filter the results of a ListContainerInstances operation with cluster query language statements. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

", + "ListContainerInstancesRequest$nextToken": "

The nextToken value returned from a previous paginated ListContainerInstances request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListContainerInstancesResponse$nextToken": "

The nextToken value to include in a future ListContainerInstances request. When the results of a ListContainerInstances request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListServicesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the services to list. If you do not specify a cluster, the default cluster is assumed.

", - "ListServicesRequest$nextToken": "

The nextToken value returned from a previous paginated ListServices request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "ListServicesRequest$nextToken": "

The nextToken value returned from a previous paginated ListServices request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListServicesResponse$nextToken": "

The nextToken value to include in a future ListServices request. When the results of a ListServices request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListTaskDefinitionFamiliesRequest$familyPrefix": "

The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies. If you specify a familyPrefix, only task definition family names that begin with the familyPrefix string are returned.

", - "ListTaskDefinitionFamiliesRequest$nextToken": "

The nextToken value returned from a previous paginated ListTaskDefinitionFamilies request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "ListTaskDefinitionFamiliesRequest$nextToken": "

The nextToken value returned from a previous paginated ListTaskDefinitionFamilies request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListTaskDefinitionFamiliesResponse$nextToken": "

The nextToken value to include in a future ListTaskDefinitionFamilies request. When the results of a ListTaskDefinitionFamilies request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListTaskDefinitionsRequest$familyPrefix": "

The full family name with which to filter the ListTaskDefinitions results. Specifying a familyPrefix limits the listed task definitions to task definition revisions that belong to that family.

", - "ListTaskDefinitionsRequest$nextToken": "

The nextToken value returned from a previous paginated ListTaskDefinitions request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "ListTaskDefinitionsRequest$nextToken": "

The nextToken value returned from a previous paginated ListTaskDefinitions request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListTaskDefinitionsResponse$nextToken": "

The nextToken value to include in a future ListTaskDefinitions request. When the results of a ListTaskDefinitions request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListTasksRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the tasks to list. If you do not specify a cluster, the default cluster is assumed.

", - "ListTasksRequest$containerInstance": "

The container instance ID or full Amazon Resource Name (ARN) of the container instance with which to filter the ListTasks results. Specifying a containerInstance limits the results to tasks that belong to that container instance.

", + "ListTasksRequest$containerInstance": "

The container instance ID or full ARN of the container instance with which to filter the ListTasks results. Specifying a containerInstance limits the results to tasks that belong to that container instance.

", "ListTasksRequest$family": "

The name of the family with which to filter the ListTasks results. Specifying a family limits the results to tasks that belong to that family.

", - "ListTasksRequest$nextToken": "

The nextToken value returned from a previous paginated ListTasks request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "ListTasksRequest$nextToken": "

The nextToken value returned from a previous paginated ListTasks request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "ListTasksRequest$startedBy": "

The startedBy value with which to filter the task results. Specifying a startedBy value limits the results to tasks that were started with that value.

", "ListTasksRequest$serviceName": "

The name of the service with which to filter the ListTasks results. Specifying a serviceName limits the results to tasks that belong to that service.

", "ListTasksResponse$nextToken": "

The nextToken value to include in a future ListTasks request. When the results of a ListTasks request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "LoadBalancer$targetGroupArn": "

The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group associated with a service.

", - "LoadBalancer$loadBalancerName": "

The name of a Classic load balancer.

", + "LoadBalancer$loadBalancerName": "

The name of a load balancer.

", "LoadBalancer$containerName": "

The name of the container (as it appears in a container definition) to associate with the load balancer.

", "LogConfigurationOptionsMap$key": null, "LogConfigurationOptionsMap$value": null, - "MountPoint$sourceVolume": "

The name of the volume to mount.

", + "MountPoint$sourceVolume": "

The name of the volume to mount. If using the Fargate launch type, the sourceVolume parameter is not supported.

", "MountPoint$containerPath": "

The path on the container to mount the host volume at.

", "NetworkBinding$bindIP": "

The IP address that the container is bound to on the container instance.

", - "PlacementConstraint$expression": "

A cluster query language expression to apply to the constraint. Note you cannot specify an expression if the constraint type is distinctInstance. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.

", + "NetworkInterface$attachmentId": "

The attachment ID for the network interface.

", + "NetworkInterface$privateIpv4Address": "

The private IPv4 address for the network interface.

", + "NetworkInterface$ipv6Address": "

The private IPv6 address for the network interface.

", + "PlacementConstraint$expression": "

A cluster query language expression to apply to the constraint. Note you cannot specify an expression if the constraint type is distinctInstance. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

", "PlacementStrategy$field": "

The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used.

", "PutAttributesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply attributes. If you do not specify a cluster, the default cluster is assumed.

", "RegisterContainerInstanceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster with which to register your container instance. If you do not specify a cluster, the default cluster is assumed.

", "RegisterContainerInstanceRequest$instanceIdentityDocument": "

The instance identity document for the EC2 instance to register. This document can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/

", "RegisterContainerInstanceRequest$instanceIdentityDocumentSignature": "

The instance identity document signature for the EC2 instance to register. This signature can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/signature/

", - "RegisterContainerInstanceRequest$containerInstanceArn": "

The Amazon Resource Name (ARN) of the container instance (if it was previously registered).

", + "RegisterContainerInstanceRequest$containerInstanceArn": "

The ARN of the container instance (if it was previously registered).

", "RegisterTaskDefinitionRequest$family": "

You must specify a family for a task definition, which allows you to track multiple versions of the same task definition. The family is used as a name for your task definition. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

", - "RegisterTaskDefinitionRequest$taskRoleArn": "

The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see IAM Roles for Tasks in the Amazon EC2 Container Service Developer Guide.

", + "RegisterTaskDefinitionRequest$taskRoleArn": "

The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

", + "RegisterTaskDefinitionRequest$executionRoleArn": "

The Amazon Resource Name (ARN) of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.

", + "RegisterTaskDefinitionRequest$cpu": "

The number of cpu units used by the task. If using the EC2 launch type, this field is optional and any value can be used. If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter:

", + "RegisterTaskDefinitionRequest$memory": "

The amount (in MiB) of memory used by the task. If using the EC2 launch type, this field is optional and any value can be used. If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter:

", "Resource$name": "

The name of the resource, such as cpu, memory, ports, or a user-defined resource.

", "Resource$type": "

The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.

", "RunTaskRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster on which to run your task. If you do not specify a cluster, the default cluster is assumed.

", - "RunTaskRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to run. If a revision is not specified, the latest ACTIVE revision is used.

", + "RunTaskRequest$taskDefinition": "

The family and revision (family:revision) or full ARN of the task definition to run. If a revision is not specified, the latest ACTIVE revision is used.

", "RunTaskRequest$startedBy": "

An optional tag specified when a task is started. For example if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the startedBy parameter. You can then identify which tasks belong to that job by filtering the results of a ListTasks call with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

If a task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it.

", "RunTaskRequest$group": "

The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).

", + "RunTaskRequest$platformVersion": "

The platform version on which to run your task. If one is not specified, the latest version is used by default.

", "ServerException$message": null, - "Service$serviceArn": "

The Amazon Resource Name (ARN) that identifies the service. The ARN contains the arn:aws:ecs namespace, followed by the region of the service, the AWS account ID of the service owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service .

", + "Service$serviceArn": "

The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace, followed by the region of the service, the AWS account ID of the service owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service .

", "Service$serviceName": "

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a region or across multiple regions.

", "Service$clusterArn": "

The Amazon Resource Name (ARN) of the cluster that hosts the service.

", "Service$status": "

The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.

", + "Service$platformVersion": "

The platform version on which your task is running. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

", "Service$taskDefinition": "

The task definition to use for tasks in the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService.

", - "Service$roleArn": "

The Amazon Resource Name (ARN) of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.

", + "Service$roleArn": "

The ARN of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.

", "ServiceEvent$id": "

The ID string of the event.

", "ServiceEvent$message": "

The event message.

", "StartTaskRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster on which to start your task. If you do not specify a cluster, the default cluster is assumed.

", - "StartTaskRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to start. If a revision is not specified, the latest ACTIVE revision is used.

", + "StartTaskRequest$taskDefinition": "

The family and revision (family:revision) or full ARN of the task definition to start. If a revision is not specified, the latest ACTIVE revision is used.

", "StartTaskRequest$startedBy": "

An optional tag specified when a task is started. For example if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the startedBy parameter. You can then identify which tasks belong to that job by filtering the results of a ListTasks call with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

If a task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it.

", "StartTaskRequest$group": "

The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).

", "StopTaskRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to stop. If you do not specify a cluster, the default cluster is assumed.

", - "StopTaskRequest$task": "

The task ID or full Amazon Resource Name (ARN) entry of the task to stop.

", - "StopTaskRequest$reason": "

An optional message specified when a task is stopped. For example, if you are using a custom scheduler, you can use this parameter to specify the reason for stopping the task here, and the message will appear in subsequent DescribeTasks API operations on this task. Up to 255 characters are allowed in this message.

", + "StopTaskRequest$task": "

The task ID or full ARN entry of the task to stop.

", + "StopTaskRequest$reason": "

An optional message specified when a task is stopped. For example, if you are using a custom scheduler, you can use this parameter to specify the reason for stopping the task here, and the message appears in subsequent DescribeTasks API operations on this task. Up to 255 characters are allowed in this message.

", "StringList$member": null, - "SubmitContainerStateChangeRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container.

", + "SubmitContainerStateChangeRequest$cluster": "

The short name or full ARN of the cluster that hosts the container.

", "SubmitContainerStateChangeRequest$task": "

The task ID or full Amazon Resource Name (ARN) of the task that hosts the container.

", "SubmitContainerStateChangeRequest$containerName": "

The name of the container.

", "SubmitContainerStateChangeRequest$status": "

The status of the state change request.

", "SubmitContainerStateChangeRequest$reason": "

The reason for the state change request.

", "SubmitContainerStateChangeResponse$acknowledgment": "

Acknowledgement of the state change.

", "SubmitTaskStateChangeRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task.

", - "SubmitTaskStateChangeRequest$task": "

The task ID or full Amazon Resource Name (ARN) of the task in the state change request.

", + "SubmitTaskStateChangeRequest$task": "

The task ID or full ARN of the task in the state change request.

", "SubmitTaskStateChangeRequest$status": "

The status of the state change request.

", "SubmitTaskStateChangeRequest$reason": "

The reason for the state change request.

", "SubmitTaskStateChangeResponse$acknowledgment": "

Acknowledgement of the state change.

", "Task$taskArn": "

The Amazon Resource Name (ARN) of the task.

", - "Task$clusterArn": "

The Amazon Resource Name (ARN) of the cluster that hosts the task.

", - "Task$taskDefinitionArn": "

The Amazon Resource Name (ARN) of the task definition that creates the task.

", - "Task$containerInstanceArn": "

The Amazon Resource Name (ARN) of the container instances that host the task.

", + "Task$clusterArn": "

The ARN of the cluster that hosts the task.

", + "Task$taskDefinitionArn": "

The ARN of the task definition that creates the task.

", + "Task$containerInstanceArn": "

The ARN of the container instances that host the task.

", "Task$lastStatus": "

The last known status of the task.

", "Task$desiredStatus": "

The desired status of the task.

", + "Task$cpu": "

The number of cpu units used by the task. If using the EC2 launch type, this field is optional and any value can be used. If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter:

", + "Task$memory": "

The amount (in MiB) of memory used by the task. If using the EC2 launch type, this field is optional and any value can be used. If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter:

", "Task$startedBy": "

The tag specified when a task is started. If the task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it.

", "Task$stoppedReason": "

The reason the task was stopped.

", "Task$group": "

The name of the task group associated with the task.

", + "Task$platformVersion": "

The platform version on which your task is running. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

", "TaskDefinition$taskDefinitionArn": "

The full Amazon Resource Name (ARN) of the task definition.

", "TaskDefinition$family": "

The family of your task definition, used as the definition name.

", - "TaskDefinition$taskRoleArn": "

The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.

", - "TaskDefinitionPlacementConstraint$expression": "

A cluster query language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.

", + "TaskDefinition$taskRoleArn": "

The ARN of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.

", + "TaskDefinition$executionRoleArn": "

The Amazon Resource Name (ARN) of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.

", + "TaskDefinition$cpu": "

The number of cpu units used by the task. If using the EC2 launch type, this field is optional and any value can be used. If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter:

", + "TaskDefinition$memory": "

The amount (in MiB) of memory used by the task. If using the EC2 launch type, this field is optional and any value can be used. If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter:

", + "TaskDefinitionPlacementConstraint$expression": "

A cluster query language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

", "TaskOverride$taskRoleArn": "

The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.

", + "TaskOverride$executionRoleArn": "

The Amazon Resource Name (ARN) of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.

", "UpdateContainerAgentRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is running on. If you do not specify a cluster, the default cluster is assumed.

", - "UpdateContainerAgentRequest$containerInstance": "

The container instance ID or full Amazon Resource Name (ARN) entries for the container instance on which you would like to update the Amazon ECS container agent.

", + "UpdateContainerAgentRequest$containerInstance": "

The container instance ID or full ARN entries for the container instance on which you would like to update the Amazon ECS container agent.

", "UpdateContainerInstancesStateRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to update. If you do not specify a cluster, the default cluster is assumed.

", "UpdateServiceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that your service is running on. If you do not specify a cluster, the default cluster is assumed.

", "UpdateServiceRequest$service": "

The name of the service to update.

", - "UpdateServiceRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used. If you modify the task definition with UpdateService, Amazon ECS spawns a task with the new version of the task definition and then stops an old task after the new version is running.

", + "UpdateServiceRequest$taskDefinition": "

The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used. If you modify the task definition with UpdateService, Amazon ECS spawns a task with the new version of the task definition and then stops an old task after the new version is running.

", + "UpdateServiceRequest$platformVersion": "

The platform version you want to update your service to run.

", "VersionInfo$agentVersion": "

The version number of the Amazon ECS container agent.

", "VersionInfo$agentHash": "

The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent GitHub repository.

", "VersionInfo$dockerVersion": "

The Docker version running on the container instance.

", @@ -946,26 +1169,30 @@ "StringList": { "base": null, "refs": { - "ContainerDefinition$links": "

The link parameter allows containers to communicate with each other without the need for port mappings, using the name parameter and optionally, an alias for the link. This construct is analogous to name:alias in Docker links. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each name and alias. For more information on linking Docker containers, see https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/. This parameter maps to Links in the Create a container section of the Docker Remote API and the --link option to docker run.

Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.

", - "ContainerDefinition$entryPoint": "

Early versions of the Amazon ECS container agent do not properly handle entryPoint parameters. If you have problems using entryPoint, update your container agent or enter your commands and arguments as command array items instead.

The entry point that is passed to the container. This parameter maps to Entrypoint in the Create a container section of the Docker Remote API and the --entrypoint option to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

", - "ContainerDefinition$command": "

The command that is passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd.

", - "ContainerDefinition$dnsServers": "

A list of DNS servers that are presented to the container. This parameter maps to Dns in the Create a container section of the Docker Remote API and the --dns option to docker run.

", - "ContainerDefinition$dnsSearchDomains": "

A list of DNS search domains that are presented to the container. This parameter maps to DnsSearch in the Create a container section of the Docker Remote API and the --dns-search option to docker run.

", - "ContainerDefinition$dockerSecurityOptions": "

A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This parameter maps to SecurityOpt in the Create a container section of the Docker Remote API and the --security-opt option to docker run.

The Amazon ECS container agent running on a container instance must register with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide.

", + "AwsVpcConfiguration$subnets": "

The subnets associated with the task or service.

", + "AwsVpcConfiguration$securityGroups": "

The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used.

", + "ContainerDefinition$links": "

The link parameter allows containers to communicate with each other without the need for port mappings, using the name parameter and optionally, an alias for the link. This construct is analogous to name:alias in Docker links. This field is not valid for containers in tasks using the Fargate launch type. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each name and alias. For more information on linking Docker containers, see https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/. This parameter maps to Links in the Create a container section of the Docker Remote API and the --link option to docker run.

Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.

", + "ContainerDefinition$entryPoint": "

Early versions of the Amazon ECS container agent do not properly handle entryPoint parameters. If you have problems using entryPoint, update your container agent or enter your commands and arguments as command array items instead.

The entry point that is passed to the container. This parameter maps to Entrypoint in the Create a container section of the Docker Remote API and the --entrypoint option to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

", + "ContainerDefinition$command": "

The command that is passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd.

", + "ContainerDefinition$dnsServers": "

A list of DNS servers that are presented to the container. This parameter maps to Dns in the Create a container section of the Docker Remote API and the --dns option to docker run.

", + "ContainerDefinition$dnsSearchDomains": "

A list of DNS search domains that are presented to the container. This parameter maps to DnsSearch in the Create a container section of the Docker Remote API and the --dns-search option to docker run.

", + "ContainerDefinition$dockerSecurityOptions": "

A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This field is not valid for containers in tasks using the Fargate launch type.

This parameter maps to SecurityOpt in the Create a container section of the Docker Remote API and the --security-opt option to docker run.

The Amazon ECS container agent running on a container instance must register with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.

", "ContainerOverride$command": "

The command to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.

", "DescribeClustersRequest$clusters": "

A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed.

", - "DescribeContainerInstancesRequest$containerInstances": "

A list of container instance IDs or full Amazon Resource Name (ARN) entries.

", + "DescribeContainerInstancesRequest$containerInstances": "

A list of container instance IDs or full ARN entries.

", "DescribeServicesRequest$services": "

A list of services to describe. You may specify up to 10 services to describe in a single operation.

", - "DescribeTasksRequest$tasks": "

A list of up to 100 task IDs or full Amazon Resource Name (ARN) entries.

", + "DescribeTasksRequest$tasks": "

A list of up to 100 task IDs or full ARN entries.

", + "KernelCapabilities$add": "

The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to CapAdd in the Create a container section of the Docker Remote API and the --cap-add option to docker run.

Valid values: \"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"

", + "KernelCapabilities$drop": "

The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to CapDrop in the Create a container section of the Docker Remote API and the --cap-drop option to docker run.

Valid values: \"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"

", "ListClustersResponse$clusterArns": "

The list of full Amazon Resource Name (ARN) entries for each cluster associated with your account.

", - "ListContainerInstancesResponse$containerInstanceArns": "

The list of container instances with full Amazon Resource Name (ARN) entries for each container instance associated with the specified cluster.

", - "ListServicesResponse$serviceArns": "

The list of full Amazon Resource Name (ARN) entries for each service associated with the specified cluster.

", + "ListContainerInstancesResponse$containerInstanceArns": "

The list of container instances with full ARN entries for each container instance associated with the specified cluster.

", + "ListServicesResponse$serviceArns": "

The list of full ARN entries for each service associated with the specified cluster.

", "ListTaskDefinitionFamiliesResponse$families": "

The list of task definition family names that match the ListTaskDefinitionFamilies request.

", "ListTaskDefinitionsResponse$taskDefinitionArns": "

The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions request.

", - "ListTasksResponse$taskArns": "

The list of task Amazon Resource Name (ARN) entries for the ListTasks request.

", + "ListTasksResponse$taskArns": "

The list of task ARN entries for the ListTasks request.

", "Resource$stringSetValue": "

When the stringSetValue type is set, the value of the resource must be a string type.

", - "StartTaskRequest$containerInstances": "

The container instance IDs or full Amazon Resource Name (ARN) entries for the container instances on which you would like to place your task. You can specify up to 10 container instances.

", - "UpdateContainerInstancesStateRequest$containerInstances": "

A list of container instance IDs or full Amazon Resource Name (ARN) entries.

" + "StartTaskRequest$containerInstances": "

The container instance IDs or full ARN entries for the container instances on which you would like to place your task. You can specify up to 10 container instances.

", + "UpdateContainerInstancesStateRequest$containerInstances": "

A list of container instance IDs or full ARN entries.

" } }, "SubmitContainerStateChangeRequest": { @@ -996,7 +1223,7 @@ "TargetType": { "base": null, "refs": { - "Attribute$targetType": "

The type of the target with which to attach the attribute. This parameter is required if you use the short form ID for a resource instead of the full Amazon Resource Name (ARN).

", + "Attribute$targetType": "

The type of the target with which to attach the attribute. This parameter is required if you use the short form ID for a resource instead of the full ARN.

", "ListAttributesRequest$targetType": "

The type of the target with which to list attributes.

" } }, @@ -1022,7 +1249,7 @@ } }, "TaskDefinitionPlacementConstraint": { - "base": "

An object representing a constraint on task placement in the task definition. For more information, see Task Placement Constraints in the Amazon EC2 Container Service Developer Guide.

", + "base": "

An object representing a constraint on task placement in the task definition.

If you are using the Fargate launch type, task placement contraints are not supported.

For more information, see Task Placement Constraints in the Amazon Elastic Container Service Developer Guide.

", "refs": { "TaskDefinitionPlacementConstraints$member": null } @@ -1037,7 +1264,7 @@ "base": null, "refs": { "RegisterTaskDefinitionRequest$placementConstraints": "

An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at run time).

", - "TaskDefinition$placementConstraints": "

An array of placement constraint objects to use for tasks.

" + "TaskDefinition$placementConstraints": "

An array of placement constraint objects to use for tasks. This field is not valid if using the Fargate launch type for your task.

" } }, "TaskDefinitionStatus": { @@ -1059,21 +1286,29 @@ "base": null, "refs": { "DescribeTasksResponse$tasks": "

The list of tasks.

", - "RunTaskResponse$tasks": "

A full description of the tasks that were run. Each task that was successfully placed on your cluster are described here.

", - "StartTaskResponse$tasks": "

A full description of the tasks that were started. Each task that was successfully placed on your container instances are described here.

" + "RunTaskResponse$tasks": "

A full description of the tasks that were run. The tasks that were successfully placed on your cluster are described here.

", + "StartTaskResponse$tasks": "

A full description of the tasks that were started. Each task that was successfully placed on your container instances is described.

" } }, "Timestamp": { "base": null, "refs": { - "ContainerInstance$registeredAt": "

The Unix timestamp for when the container instance was registered.

", - "Deployment$createdAt": "

The Unix timestamp for when the service was created.

", - "Deployment$updatedAt": "

The Unix timestamp for when the service was last updated.

", - "Service$createdAt": "

The Unix timestamp for when the service was created.

", - "ServiceEvent$createdAt": "

The Unix timestamp for when the event was triggered.

", - "Task$createdAt": "

The Unix timestamp for when the task was created (the task entered the PENDING state).

", - "Task$startedAt": "

The Unix timestamp for when the task was started (the task transitioned from the PENDING state to the RUNNING state).

", - "Task$stoppedAt": "

The Unix timestamp for when the task was stopped (the task transitioned from the RUNNING state to the STOPPED state).

" + "ContainerInstance$registeredAt": "

The Unix time stamp for when the container instance was registered.

", + "Deployment$createdAt": "

The Unix time stamp for when the service was created.

", + "Deployment$updatedAt": "

The Unix time stamp for when the service was last updated.

", + "Service$createdAt": "

The Unix time stamp for when the service was created.

", + "ServiceEvent$createdAt": "

The Unix time stamp for when the event was triggered.

", + "SubmitTaskStateChangeRequest$pullStartedAt": "

The Unix time stamp for when the container image pull began.

", + "SubmitTaskStateChangeRequest$pullStoppedAt": "

The Unix time stamp for when the container image pull completed.

", + "SubmitTaskStateChangeRequest$executionStoppedAt": "

The Unix timestamp for when the task execution stopped.

", + "Task$connectivityAt": "

The Unix time stamp for when the task last went into CONNECTED status.

", + "Task$pullStartedAt": "

The Unix time stamp for when the container image pull began.

", + "Task$pullStoppedAt": "

The Unix time stamp for when the container image pull completed.

", + "Task$executionStoppedAt": "

The Unix timestamp for when the task execution stopped.

", + "Task$createdAt": "

The Unix time stamp for when the task was created (the task entered the PENDING state).

", + "Task$startedAt": "

The Unix time stamp for when the task started (the task transitioned from the PENDING state to the RUNNING state).

", + "Task$stoppingAt": "

The Unix time stamp for when the task will stop (the task transitioned from the RUNNING state to the STOPPED state).

", + "Task$stoppedAt": "

The Unix time stamp for when the task was stopped (the task transitioned from the RUNNING state to the STOPPED state).

" } }, "TransportProtocol": { @@ -1092,7 +1327,7 @@ "UlimitList": { "base": null, "refs": { - "ContainerDefinition$ulimits": "

A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" + "ContainerDefinition$ulimits": "

A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

" } }, "UlimitName": { @@ -1101,6 +1336,11 @@ "Ulimit$name": "

The type of the ulimit.

" } }, + "UnsupportedFeatureException": { + "base": "

The specified task is not supported in this region.

", + "refs": { + } + }, "UpdateContainerAgentRequest": { "base": null, "refs": { @@ -1158,14 +1398,14 @@ "VolumeFromList": { "base": null, "refs": { - "ContainerDefinition$volumesFrom": "

Data volumes to mount from another container. This parameter maps to VolumesFrom in the Create a container section of the Docker Remote API and the --volumes-from option to docker run.

" + "ContainerDefinition$volumesFrom": "

Data volumes to mount from another container. This parameter maps to VolumesFrom in the Create a container section of the Docker Remote API and the --volumes-from option to docker run.

" } }, "VolumeList": { "base": null, "refs": { "RegisterTaskDefinitionRequest$volumes": "

A list of volume definitions in JSON format that containers in your task may use.

", - "TaskDefinition$volumes": "

The list of volumes in a task. For more information about volume definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide.

" + "TaskDefinition$volumes": "

The list of volumes in a task.

If you are using the Fargate launch type, the host and sourcePath parameters are not supported.

For more information about volume definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

" } } } diff --git a/models/apis/elasticache/2015-02-02/api-2.json b/models/apis/elasticache/2015-02-02/api-2.json index e3a4a942fbb..381dc1e4db4 100644 --- a/models/apis/elasticache/2015-02-02/api-2.json +++ b/models/apis/elasticache/2015-02-02/api-2.json @@ -621,6 +621,29 @@ {"shape":"InvalidParameterCombinationException"} ] }, + "ModifyReplicationGroupShardConfiguration":{ + "name":"ModifyReplicationGroupShardConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyReplicationGroupShardConfigurationMessage"}, + "output":{ + "shape":"ModifyReplicationGroupShardConfigurationResult", + "resultWrapper":"ModifyReplicationGroupShardConfigurationResult" + }, + "errors":[ + {"shape":"ReplicationGroupNotFoundFault"}, + {"shape":"InvalidReplicationGroupStateFault"}, + {"shape":"InvalidCacheClusterStateFault"}, + {"shape":"InvalidVPCNetworkStateFault"}, + {"shape":"InsufficientCacheClusterCapacityFault"}, + {"shape":"NodeGroupsPerReplicationGroupQuotaExceededFault"}, + {"shape":"NodeQuotaForCustomerExceededFault"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidParameterCombinationException"} + ] + }, "PurchaseReservedCacheNodesOffering":{ "name":"PurchaseReservedCacheNodesOffering", "http":{ @@ -861,7 +884,10 @@ "SecurityGroups":{"shape":"SecurityGroupMembershipList"}, "ReplicationGroupId":{"shape":"String"}, "SnapshotRetentionLimit":{"shape":"IntegerOptional"}, - "SnapshotWindow":{"shape":"String"} + "SnapshotWindow":{"shape":"String"}, + "AuthTokenEnabled":{"shape":"BooleanOptional"}, + "TransitEncryptionEnabled":{"shape":"BooleanOptional"}, + "AtRestEncryptionEnabled":{"shape":"BooleanOptional"} }, "wrapper":true }, @@ -1386,7 +1412,9 @@ "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, "SnapshotRetentionLimit":{"shape":"IntegerOptional"}, "SnapshotWindow":{"shape":"String"}, - "AuthToken":{"shape":"String"} + "AuthToken":{"shape":"String"}, + "TransitEncryptionEnabled":{"shape":"BooleanOptional"}, + "AtRestEncryptionEnabled":{"shape":"BooleanOptional"} } }, "CreateReplicationGroupResult":{ @@ -1891,6 +1919,27 @@ "ReplicationGroup":{"shape":"ReplicationGroup"} } }, + "ModifyReplicationGroupShardConfigurationMessage":{ + "type":"structure", + "required":[ + "ReplicationGroupId", + "NodeGroupCount", + "ApplyImmediately" + ], + "members":{ + "ReplicationGroupId":{"shape":"String"}, + "NodeGroupCount":{"shape":"Integer"}, + "ApplyImmediately":{"shape":"Boolean"}, + "ReshardingConfiguration":{"shape":"ReshardingConfigurationList"}, + "NodeGroupsToRemove":{"shape":"NodeGroupsToRemoveList"} + } + }, + "ModifyReplicationGroupShardConfigurationResult":{ + "type":"structure", + "members":{ + "ReplicationGroup":{"shape":"ReplicationGroup"} + } + }, "NodeGroup":{ "type":"structure", "members":{ @@ -1963,6 +2012,13 @@ }, "exception":true }, + "NodeGroupsToRemoveList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"NodeGroupToRemove" + } + }, "NodeQuotaForClusterExceededFault":{ "type":"structure", "members":{ @@ -2147,7 +2203,10 @@ "SnapshotRetentionLimit":{"shape":"IntegerOptional"}, "SnapshotWindow":{"shape":"String"}, "ClusterEnabled":{"shape":"BooleanOptional"}, - "CacheNodeType":{"shape":"String"} + "CacheNodeType":{"shape":"String"}, + "AuthTokenEnabled":{"shape":"BooleanOptional"}, + "TransitEncryptionEnabled":{"shape":"BooleanOptional"}, + "AtRestEncryptionEnabled":{"shape":"BooleanOptional"} }, "wrapper":true }, @@ -2191,7 +2250,8 @@ "type":"structure", "members":{ "PrimaryClusterId":{"shape":"String"}, - "AutomaticFailoverStatus":{"shape":"PendingAutomaticFailoverStatus"} + "AutomaticFailoverStatus":{"shape":"PendingAutomaticFailoverStatus"}, + "Resharding":{"shape":"ReshardingStatus"} } }, "ReservedCacheNode":{ @@ -2307,6 +2367,25 @@ "ParameterNameValues":{"shape":"ParameterNameValueList"} } }, + "ReshardingConfiguration":{ + "type":"structure", + "members":{ + "PreferredAvailabilityZones":{"shape":"AvailabilityZonesList"} + } + }, + "ReshardingConfigurationList":{ + "type":"list", + "member":{ + "shape":"ReshardingConfiguration", + "locationName":"ReshardingConfiguration" + } + }, + "ReshardingStatus":{ + "type":"structure", + "members":{ + "SlotMigration":{"shape":"SlotMigration"} + } + }, "RevokeCacheSecurityGroupIngressMessage":{ "type":"structure", "required":[ @@ -2344,6 +2423,12 @@ "type":"list", "member":{"shape":"SecurityGroupMembership"} }, + "SlotMigration":{ + "type":"structure", + "members":{ + "ProgressPercentage":{"shape":"Double"} + } + }, "Snapshot":{ "type":"structure", "members":{ diff --git a/models/apis/elasticache/2015-02-02/docs-2.json b/models/apis/elasticache/2015-02-02/docs-2.json index bd45c2fba06..16ff240cba0 100644 --- a/models/apis/elasticache/2015-02-02/docs-2.json +++ b/models/apis/elasticache/2015-02-02/docs-2.json @@ -5,38 +5,39 @@ "AddTagsToResource": "

Adds up to 50 cost allocation tags to the named resource. A cost allocation tag is a key-value pair where the key and value are case-sensitive. You can use cost allocation tags to categorize and track your AWS costs.

When you apply tags to your ElastiCache resources, AWS generates a cost allocation report as a comma-separated value (CSV) file with your usage and costs aggregated by your tags. You can apply tags that represent business categories (such as cost centers, application names, or owners) to organize your costs across multiple services. For more information, see Using Cost Allocation Tags in Amazon ElastiCache in the ElastiCache User Guide.

", "AuthorizeCacheSecurityGroupIngress": "

Allows network ingress to a cache security group. Applications using ElastiCache must be running on Amazon EC2, and Amazon EC2 security groups are used as the authorization mechanism.

You cannot authorize ingress from an Amazon EC2 security group in one region to an ElastiCache cluster in another region.

", "CopySnapshot": "

Makes a copy of an existing snapshot.

This operation is valid for Redis only.

Users or groups that have permissions to use the CopySnapshot operation can create their own Amazon S3 buckets and copy snapshots to it. To control access to your snapshots, use an IAM policy to control who has the ability to use the CopySnapshot operation. For more information about using IAM to control the use of ElastiCache operations, see Exporting Snapshots and Authentication & Access Control.

You could receive the following error messages.

Error Messages

", - "CreateCacheCluster": "

Creates a cache cluster. All nodes in the cache cluster run the same protocol-compliant cache engine software, either Memcached or Redis.

Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups.

", - "CreateCacheParameterGroup": "

Creates a new Amazon ElastiCache cache parameter group. An ElastiCache cache parameter group is a collection of parameters and their values that are applied to all of the nodes in any cache cluster or replication group using the CacheParameterGroup.

A newly created CacheParameterGroup is an exact duplicate of the default parameter group for the CacheParameterGroupFamily. To customize the newly created CacheParameterGroup you can change the values of specific parameters. For more information, see:

", - "CreateCacheSecurityGroup": "

Creates a new cache security group. Use a cache security group to control access to one or more cache clusters.

Cache security groups are only used when you are creating a cache cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). If you are creating a cache cluster inside of a VPC, use a cache subnet group instead. For more information, see CreateCacheSubnetGroup.

", + "CreateCacheCluster": "

Creates a cluster. All nodes in the cluster run the same protocol-compliant cache engine software, either Memcached or Redis.

Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups.

", + "CreateCacheParameterGroup": "

Creates a new Amazon ElastiCache cache parameter group. An ElastiCache cache parameter group is a collection of parameters and their values that are applied to all of the nodes in any cluster or replication group using the CacheParameterGroup.

A newly created CacheParameterGroup is an exact duplicate of the default parameter group for the CacheParameterGroupFamily. To customize the newly created CacheParameterGroup you can change the values of specific parameters. For more information, see:

", + "CreateCacheSecurityGroup": "

Creates a new cache security group. Use a cache security group to control access to one or more clusters.

Cache security groups are only used when you are creating a cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). If you are creating a cluster inside of a VPC, use a cache subnet group instead. For more information, see CreateCacheSubnetGroup.

", "CreateCacheSubnetGroup": "

Creates a new cache subnet group.

Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC).

", - "CreateReplicationGroup": "

Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group.

A Redis (cluster mode disabled) replication group is a collection of cache clusters, where one of the cache clusters is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas.

A Redis (cluster mode enabled) replication group is a collection of 1 to 15 node groups (shards). Each node group (shard) has one read/write primary node and up to 5 read-only replica nodes. Writes to the primary are asynchronously propagated to the replicas. Redis (cluster mode enabled) replication groups partition the data across node groups (shards).

When a Redis (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. You cannot alter a Redis (cluster mode enabled) replication group after it has been created. However, if you need to increase or decrease the number of node groups (console: shards), you can avail yourself of ElastiCache for Redis' enhanced backup and restore. For more information, see Restoring From a Backup with Cluster Resizing in the ElastiCache User Guide.

This operation is valid for Redis only.

", - "CreateSnapshot": "

Creates a copy of an entire cache cluster or replication group at a specific moment in time.

This operation is valid for Redis only.

", - "DeleteCacheCluster": "

Deletes a previously provisioned cache cluster. DeleteCacheCluster deletes all associated cache nodes, node endpoints and the cache cluster itself. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the cache cluster; you cannot cancel or revert this operation.

This operation cannot be used to delete a cache cluster that is the last read replica of a replication group or node group (shard) that has Multi-AZ mode enabled or a cache cluster from a Redis (cluster mode enabled) replication group.

Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups.

", + "CreateReplicationGroup": "

Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group.

A Redis (cluster mode disabled) replication group is a collection of clusters, where one of the clusters is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas.

A Redis (cluster mode enabled) replication group is a collection of 1 to 15 node groups (shards). Each node group (shard) has one read/write primary node and up to 5 read-only replica nodes. Writes to the primary are asynchronously propagated to the replicas. Redis (cluster mode enabled) replication groups partition the data across node groups (shards).

When a Redis (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. You cannot alter a Redis (cluster mode enabled) replication group after it has been created. However, if you need to increase or decrease the number of node groups (console: shards), you can avail yourself of ElastiCache for Redis' enhanced backup and restore. For more information, see Restoring From a Backup with Cluster Resizing in the ElastiCache User Guide.

This operation is valid for Redis only.

", + "CreateSnapshot": "

Creates a copy of an entire cluster or replication group at a specific moment in time.

This operation is valid for Redis only.

", + "DeleteCacheCluster": "

Deletes a previously provisioned cluster. DeleteCacheCluster deletes all associated cache nodes, node endpoints and the cluster itself. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the cluster; you cannot cancel or revert this operation.

This operation cannot be used to delete a cluster that is the last read replica of a replication group or node group (shard) that has Multi-AZ mode enabled or a cluster from a Redis (cluster mode enabled) replication group.

Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups.

", "DeleteCacheParameterGroup": "

Deletes the specified cache parameter group. You cannot delete a cache parameter group if it is associated with any cache clusters.

", - "DeleteCacheSecurityGroup": "

Deletes a cache security group.

You cannot delete a cache security group if it is associated with any cache clusters.

", - "DeleteCacheSubnetGroup": "

Deletes a cache subnet group.

You cannot delete a cache subnet group if it is associated with any cache clusters.

", + "DeleteCacheSecurityGroup": "

Deletes a cache security group.

You cannot delete a cache security group if it is associated with any clusters.

", + "DeleteCacheSubnetGroup": "

Deletes a cache subnet group.

You cannot delete a cache subnet group if it is associated with any clusters.

", "DeleteReplicationGroup": "

Deletes an existing replication group. By default, this operation deletes the entire replication group, including the primary/primaries and all of the read replicas. If the replication group has only one primary, you can optionally delete only the read replicas, while retaining the primary by setting RetainPrimaryCluster=true.

When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources; you cannot cancel or revert this operation.

This operation is valid for Redis only.

", "DeleteSnapshot": "

Deletes an existing snapshot. When you receive a successful response from this operation, ElastiCache immediately begins deleting the snapshot; you cannot cancel or revert this operation.

This operation is valid for Redis only.

", - "DescribeCacheClusters": "

Returns information about all provisioned cache clusters if no cache cluster identifier is specified, or about a specific cache cluster if a cache cluster identifier is supplied.

By default, abbreviated information about the cache clusters is returned. You can use the optional ShowCacheNodeInfo flag to retrieve detailed information about the cache nodes associated with the cache clusters. These details include the DNS address and port for the cache node endpoint.

If the cluster is in the creating state, only cluster-level information is displayed until all of the nodes are successfully provisioned.

If the cluster is in the deleting state, only cluster-level information is displayed.

If cache nodes are currently being added to the cache cluster, node endpoint information and creation time for the additional nodes are not displayed until they are completely provisioned. When the cache cluster state is available, the cluster is ready for use.

If cache nodes are currently being removed from the cache cluster, no endpoint information for the removed nodes is displayed.

", + "DescribeCacheClusters": "

Returns information about all provisioned clusters if no cluster identifier is specified, or about a specific cache cluster if a cluster identifier is supplied.

By default, abbreviated information about the clusters is returned. You can use the optional ShowCacheNodeInfo flag to retrieve detailed information about the cache nodes associated with the clusters. These details include the DNS address and port for the cache node endpoint.

If the cluster is in the creating state, only cluster-level information is displayed until all of the nodes are successfully provisioned.

If the cluster is in the deleting state, only cluster-level information is displayed.

If cache nodes are currently being added to the cluster, node endpoint information and creation time for the additional nodes are not displayed until they are completely provisioned. When the cluster state is available, the cluster is ready for use.

If cache nodes are currently being removed from the cluster, no endpoint information for the removed nodes is displayed.

", "DescribeCacheEngineVersions": "

Returns a list of the available cache engines and their versions.

", "DescribeCacheParameterGroups": "

Returns a list of cache parameter group descriptions. If a cache parameter group name is specified, the list contains only the descriptions for that group.

", "DescribeCacheParameters": "

Returns the detailed parameter list for a particular cache parameter group.

", "DescribeCacheSecurityGroups": "

Returns a list of cache security group descriptions. If a cache security group name is specified, the list contains only the description of that group.

", "DescribeCacheSubnetGroups": "

Returns a list of cache subnet group descriptions. If a subnet group name is specified, the list contains only the description of that group.

", "DescribeEngineDefaultParameters": "

Returns the default engine and system parameter information for the specified cache engine.

", - "DescribeEvents": "

Returns events related to cache clusters, cache security groups, and cache parameter groups. You can obtain events specific to a particular cache cluster, cache security group, or cache parameter group by providing the name as a parameter.

By default, only the events occurring within the last hour are returned; however, you can retrieve up to 14 days' worth of events if necessary.

", + "DescribeEvents": "

Returns events related to clusters, cache security groups, and cache parameter groups. You can obtain events specific to a particular cluster, cache security group, or cache parameter group by providing the name as a parameter.

By default, only the events occurring within the last hour are returned; however, you can retrieve up to 14 days' worth of events if necessary.

", "DescribeReplicationGroups": "

Returns information about a particular replication group. If no identifier is specified, DescribeReplicationGroups returns information about all replication groups.

This operation is valid for Redis only.

", "DescribeReservedCacheNodes": "

Returns information about reserved cache nodes for this account, or about a specified reserved cache node.

", "DescribeReservedCacheNodesOfferings": "

Lists available reserved cache node offerings.

", - "DescribeSnapshots": "

Returns information about cache cluster or replication group snapshots. By default, DescribeSnapshots lists all of your snapshots; it can optionally describe a single snapshot, or just the snapshots associated with a particular cache cluster.

This operation is valid for Redis only.

", + "DescribeSnapshots": "

Returns information about cluster or replication group snapshots. By default, DescribeSnapshots lists all of your snapshots; it can optionally describe a single snapshot, or just the snapshots associated with a particular cache cluster.

This operation is valid for Redis only.

", "ListAllowedNodeTypeModifications": "

Lists all available node types that you can scale your Redis cluster's or replication group's current node type up to.

When you use the ModifyCacheCluster or ModifyReplicationGroup operations to scale up your cluster or replication group, the value of the CacheNodeType parameter must be one of the node types returned by this operation.

", "ListTagsForResource": "

Lists all cost allocation tags currently on the named resource. A cost allocation tag is a key-value pair where the key is case-sensitive and the value is optional. You can use cost allocation tags to categorize and track your AWS costs.

You can have a maximum of 50 cost allocation tags on an ElastiCache resource. For more information, see Using Cost Allocation Tags in Amazon ElastiCache.

", - "ModifyCacheCluster": "

Modifies the settings for a cache cluster. You can use this operation to change one or more cluster configuration parameters by specifying the parameters and the new values.

", + "ModifyCacheCluster": "

Modifies the settings for a cluster. You can use this operation to change one or more cluster configuration parameters by specifying the parameters and the new values.

", "ModifyCacheParameterGroup": "

Modifies the parameters of a cache parameter group. You can modify up to 20 parameters in a single request by submitting a list parameter name and value pairs.

", "ModifyCacheSubnetGroup": "

Modifies an existing cache subnet group.

", "ModifyReplicationGroup": "

Modifies the settings for a replication group.

Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups.

This operation is valid for Redis only.

", + "ModifyReplicationGroupShardConfiguration": "

Performs horizontal scaling on a Redis (cluster mode enabled) cluster with no downtime. Requires Redis engine version 3.2.10 or newer. For information on upgrading your engine to a newer version, see Upgrading Engine Versions in the Amazon ElastiCache User Guide.

For more information on ElastiCache for Redis online horizontal scaling, see ElastiCache for Redis Horizontal Scaling

", "PurchaseReservedCacheNodesOffering": "

Allows you to purchase a reserved cache node offering.

", - "RebootCacheCluster": "

Reboots some, or all, of the cache nodes within a provisioned cache cluster. This operation applies any modified cache parameter groups to the cache cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cache cluster. During the reboot, the cache cluster status is set to REBOOTING.

The reboot causes the contents of the cache (for each cache node being rebooted) to be lost.

When the reboot is complete, a cache cluster event is created.

", + "RebootCacheCluster": "

Reboots some, or all, of the cache nodes within a provisioned cluster. This operation applies any modified cache parameter groups to the cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cluster. During the reboot, the cluster status is set to REBOOTING.

The reboot causes the contents of the cache (for each cache node being rebooted) to be lost.

When the reboot is complete, a cluster event is created.

Rebooting a cluster is currently supported on Memcached and Redis (cluster mode disabled) clusters. Rebooting is not supported on Redis (cluster mode enabled) clusters.

If you make changes to parameters that require a Redis (cluster mode enabled) cluster reboot for the changes to be applied, see Rebooting a Cluster for an alternate process.

", "RemoveTagsFromResource": "

Removes the tags identified by the TagKeys list from the named resource.

", "ResetCacheParameterGroup": "

Modifies the parameters of a cache parameter group to the engine or system default value. You can reset specific parameters by submitting a list of parameter names. To reset the entire cache parameter group, specify the ResetAllParameters and CacheParameterGroupName parameters.

", "RevokeCacheSecurityGroupIngress": "

Revokes ingress from a cache security group. Use this operation to disallow access from an Amazon EC2 security group that had been previously authorized.

", @@ -51,8 +52,8 @@ "AZMode": { "base": null, "refs": { - "CreateCacheClusterMessage$AZMode": "

Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region.

This parameter is only supported for Memcached cache clusters.

If the AZMode and PreferredAvailabilityZones are not specified, ElastiCache assumes single-az mode.

", - "ModifyCacheClusterMessage$AZMode": "

Specifies whether the new nodes in this Memcached cache cluster are all created in a single Availability Zone or created across multiple Availability Zones.

Valid values: single-az | cross-az.

This option is only supported for Memcached cache clusters.

You cannot specify single-az if the Memcached cache cluster already has cache nodes in different Availability Zones. If cross-az is specified, existing Memcached nodes remain in their current Availability Zone.

Only newly created nodes are located in different Availability Zones. For instructions on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of Cache Node Considerations for Memcached.

" + "CreateCacheClusterMessage$AZMode": "

Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region.

This parameter is only supported for Memcached clusters.

If the AZMode and PreferredAvailabilityZones are not specified, ElastiCache assumes single-az mode.

", + "ModifyCacheClusterMessage$AZMode": "

Specifies whether the new nodes in this Memcached cluster are all created in a single Availability Zone or created across multiple Availability Zones.

Valid values: single-az | cross-az.

This option is only supported for Memcached clusters.

You cannot specify single-az if the Memcached cluster already has cache nodes in different Availability Zones. If cross-az is specified, existing Memcached nodes remain in their current Availability Zone.

Only newly created nodes are located in different Availability Zones. For instructions on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of Cache Node Considerations for Memcached.

" } }, "AddTagsToResourceMessage": { @@ -61,7 +62,7 @@ } }, "AllowedNodeTypeModificationsMessage": { - "base": "

Represents the allowed node types you can use to modify your cache cluster or replication group.

", + "base": "

Represents the allowed node types you can use to modify your cluster or replication group.

", "refs": { } }, @@ -88,12 +89,12 @@ "AutomaticFailoverStatus": { "base": null, "refs": { - "ReplicationGroup$AutomaticFailover": "

Indicates the status of Multi-AZ for this replication group.

ElastiCache Multi-AZ replication groups are not supported on:

  • Redis versions earlier than 2.8.6.

  • Redis (cluster mode disabled):T1 and T2 cache node types.

    Redis (cluster mode enabled): T1 node types.

", - "Snapshot$AutomaticFailover": "

Indicates the status of Multi-AZ for the source replication group.

ElastiCache Multi-AZ replication groups are not supported on:

  • Redis versions earlier than 2.8.6.

  • Redis (cluster mode disabled):T1 and T2 cache node types.

    Redis (cluster mode enabled): T1 node types.

" + "ReplicationGroup$AutomaticFailover": "

Indicates the status of Multi-AZ with automatic failover for this Redis replication group.

Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:

", + "Snapshot$AutomaticFailover": "

Indicates the status of Multi-AZ with automatic failover for the source Redis replication group.

Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:

" } }, "AvailabilityZone": { - "base": "

Describes an Availability Zone in which the cache cluster is launched.

", + "base": "

Describes an Availability Zone in which the cluster is launched.

", "refs": { "Subnet$SubnetAvailabilityZone": "

The Availability Zone associated with the subnet.

" } @@ -101,8 +102,9 @@ "AvailabilityZonesList": { "base": null, "refs": { - "CreateReplicationGroupMessage$PreferredCacheClusterAZs": "

A list of EC2 Availability Zones in which the replication group's cache clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list.

This parameter is not used if there is more than one node group (shard). You should use NodeGroupConfiguration instead.

If you are creating your replication group in an Amazon VPC (recommended), you can only locate cache clusters in Availability Zones associated with the subnets in the selected subnet group.

The number of Availability Zones listed must equal the value of NumCacheClusters.

Default: system chosen Availability Zones.

", - "NodeGroupConfiguration$ReplicaAvailabilityZones": "

A list of Availability Zones to be used for the read replicas. The number of Availability Zones in this list must match the value of ReplicaCount or ReplicasPerNodeGroup if not specified.

" + "CreateReplicationGroupMessage$PreferredCacheClusterAZs": "

A list of EC2 Availability Zones in which the replication group's clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list.

This parameter is not used if there is more than one node group (shard). You should use NodeGroupConfiguration instead.

If you are creating your replication group in an Amazon VPC (recommended), you can only locate clusters in Availability Zones associated with the subnets in the selected subnet group.

The number of Availability Zones listed must equal the value of NumCacheClusters.

Default: system chosen Availability Zones.

", + "NodeGroupConfiguration$ReplicaAvailabilityZones": "

A list of Availability Zones to be used for the read replicas. The number of Availability Zones in this list must match the value of ReplicaCount or ReplicasPerNodeGroup if not specified.

", + "ReshardingConfiguration$PreferredAvailabilityZones": "

A list of preferred availability zones for the nodes in this cluster.

" } }, "AwsQueryErrorMessage": { @@ -118,8 +120,9 @@ "CacheCluster$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", "CacheNodeTypeSpecificParameter$IsModifiable": "

Indicates whether (true) or not (false) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.

", "DescribeCacheEngineVersionsMessage$DefaultOnly": "

If true, specifies that only the default version of the specified engine or engine and major version combination is to be returned.

", - "ModifyCacheClusterMessage$ApplyImmediately": "

If true, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the PreferredMaintenanceWindow setting for the cache cluster.

If false, changes to the cache cluster are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first.

If you perform a ModifyCacheCluster before a pending modification is applied, the pending modification is replaced by the newer modification.

Valid values: true | false

Default: false

", + "ModifyCacheClusterMessage$ApplyImmediately": "

If true, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the PreferredMaintenanceWindow setting for the cluster.

If false, changes to the cluster are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first.

If you perform a ModifyCacheCluster before a pending modification is applied, the pending modification is replaced by the newer modification.

Valid values: true | false

Default: false

", "ModifyReplicationGroupMessage$ApplyImmediately": "

If true, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the PreferredMaintenanceWindow setting for the replication group.

If false, changes to the nodes in the replication group are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first.

Valid values: true | false

Default: false

", + "ModifyReplicationGroupShardConfigurationMessage$ApplyImmediately": "

Indicates that the shard reconfiguration process begins immediately. At present, the only permitted value for this parameter is true.

Value: true

", "Parameter$IsModifiable": "

Indicates whether (true) or not (false) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.

", "ResetCacheParameterGroupMessage$ResetAllParameters": "

If true, all parameters in the cache parameter group are reset to their default values. If false, only the parameters listed by ParameterNameValues are reset to their default values.

Valid values: true | false

", "Snapshot$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

" @@ -128,21 +131,29 @@ "BooleanOptional": { "base": null, "refs": { + "CacheCluster$AuthTokenEnabled": "

A flag that enables using an AuthToken (password) when issuing Redis commands.

Default: false

", + "CacheCluster$TransitEncryptionEnabled": "

A flag that enables in-transit encryption when set to true.

You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster.

Default: false

", + "CacheCluster$AtRestEncryptionEnabled": "

A flag that enables encryption at-rest when set to true.

You cannot modify the value of AtRestEncryptionEnabled after the cluster is created. To enable at-rest encryption on a cluster you must set AtRestEncryptionEnabled to true when you create a cluster.

Default: false

", "CreateCacheClusterMessage$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", - "CreateReplicationGroupMessage$AutomaticFailoverEnabled": "

Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails.

If true, Multi-AZ is enabled for this replication group. If false, Multi-AZ is disabled for this replication group.

AutomaticFailoverEnabled must be enabled for Redis (cluster mode enabled) replication groups.

Default: false

ElastiCache Multi-AZ replication groups is not supported on:

  • Redis versions earlier than 2.8.6.

  • Redis (cluster mode disabled): T1 and T2 node types.

    Redis (cluster mode enabled): T2 node types.

", + "CreateReplicationGroupMessage$AutomaticFailoverEnabled": "

Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails.

If true, Multi-AZ is enabled for this replication group. If false, Multi-AZ is disabled for this replication group.

AutomaticFailoverEnabled must be enabled for Redis (cluster mode enabled) replication groups.

Default: false

Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:

", "CreateReplicationGroupMessage$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", + "CreateReplicationGroupMessage$TransitEncryptionEnabled": "

A flag that enables in-transit encryption when set to true.

You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster.

This parameter is valid only if the Engine parameter is redis, the EngineVersion parameter is 3.2.4 or later, and the cluster is being created in an Amazon VPC.

If you enable in-transit encryption, you must also specify a value for CacheSubnetGroup.

Default: false

", + "CreateReplicationGroupMessage$AtRestEncryptionEnabled": "

A flag that enables encryption at rest when set to true.

You cannot modify the value of AtRestEncryptionEnabled after the replication group is created. To enable encryption at rest on a replication group you must set AtRestEncryptionEnabled to true when you create the replication group.

This parameter is valid only if the Engine parameter is redis and the cluster is being created in an Amazon VPC.

Default: false

", "DeleteReplicationGroupMessage$RetainPrimaryCluster": "

If set to true, all of the read replicas are deleted, but the primary node is retained.

", "DescribeCacheClustersMessage$ShowCacheNodeInfo": "

An optional flag that can be included in the DescribeCacheCluster request to retrieve information about the individual cache nodes.

", "DescribeCacheClustersMessage$ShowCacheClustersNotInReplicationGroups": "

An optional flag that can be included in the DescribeCacheCluster request to show only nodes (API/CLI: clusters) that are not members of a replication group. In practice, this mean Memcached and single node Redis clusters.

", "DescribeSnapshotsMessage$ShowNodeGroupConfig": "

A Boolean value which if true, the node group (shard) configuration is included in the snapshot description.

", "ModifyCacheClusterMessage$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", - "ModifyReplicationGroupMessage$AutomaticFailoverEnabled": "

Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure.

Valid values: true | false

ElastiCache Multi-AZ replication groups are not supported on:

  • Redis versions earlier than 2.8.6.

  • Redis (cluster mode disabled):T1 and T2 cache node types.

    Redis (cluster mode enabled): T1 node types.

", + "ModifyReplicationGroupMessage$AutomaticFailoverEnabled": "

Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure.

Valid values: true | false

Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:

", "ModifyReplicationGroupMessage$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", - "ReplicationGroup$ClusterEnabled": "

A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups).

Valid values: true | false

" + "ReplicationGroup$ClusterEnabled": "

A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups).

Valid values: true | false

", + "ReplicationGroup$AuthTokenEnabled": "

A flag that enables using an AuthToken (password) when issuing Redis commands.

Default: false

", + "ReplicationGroup$TransitEncryptionEnabled": "

A flag that enables in-transit encryption when set to true.

You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster.

Default: false

", + "ReplicationGroup$AtRestEncryptionEnabled": "

A flag that enables encryption at-rest when set to true.

You cannot modify the value of AtRestEncryptionEnabled after the cluster is created. To enable encryption at-rest on a cluster you must set AtRestEncryptionEnabled to true when you create a cluster.

Default: false

" } }, "CacheCluster": { - "base": "

Contains all of the attributes of a specific cache cluster.

", + "base": "

Contains all of the attributes of a specific cluster.

", "refs": { "CacheClusterList$member": null, "CreateCacheClusterResult$CacheCluster": null, @@ -152,14 +163,14 @@ } }, "CacheClusterAlreadyExistsFault": { - "base": "

You already have a cache cluster with the given identifier.

", + "base": "

You already have a cluster with the given identifier.

", "refs": { } }, "CacheClusterList": { "base": null, "refs": { - "CacheClusterMessage$CacheClusters": "

A list of cache clusters. Each item in the list contains detailed information about one cache cluster.

" + "CacheClusterMessage$CacheClusters": "

A list of clusters. Each item in the list contains detailed information about one cluster.

" } }, "CacheClusterMessage": { @@ -168,7 +179,7 @@ } }, "CacheClusterNotFoundFault": { - "base": "

The requested cache cluster ID does not refer to an existing cache cluster.

", + "base": "

The requested cluster ID does not refer to an existing cluster.

", "refs": { } }, @@ -190,7 +201,7 @@ } }, "CacheNode": { - "base": "

Represents an individual cache node within a cache cluster. Each cache node runs its own instance of the cluster's protocol-compliant caching software - either Memcached or Redis.

Valid node types are as follows:

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "base": "

Represents an individual cache node within a cluster. Each cache node runs its own instance of the cluster's protocol-compliant caching software - either Memcached or Redis.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", "refs": { "CacheNodeList$member": null } @@ -199,19 +210,19 @@ "base": null, "refs": { "CacheParameterGroupStatus$CacheNodeIdsToReboot": "

A list of the cache node IDs which need to be rebooted for parameter changes to be applied. A node ID is a numeric identifier (0001, 0002, etc.).

", - "ModifyCacheClusterMessage$CacheNodeIdsToRemove": "

A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, etc.). This parameter is only valid when NumCacheNodes is less than the existing number of cache nodes. The number of cache node IDs supplied in this parameter must match the difference between the existing number of cache nodes in the cluster or pending cache nodes, whichever is greater, and the value of NumCacheNodes in the request.

For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number of cache nodes in this ModifyCacheCluser call is 5, you must list 2 (7 - 5) cache node IDs to remove.

", - "PendingModifiedValues$CacheNodeIdsToRemove": "

A list of cache node IDs that are being removed (or will be removed) from the cache cluster. A node ID is a numeric identifier (0001, 0002, etc.).

", - "RebootCacheClusterMessage$CacheNodeIdsToReboot": "

A list of cache node IDs to reboot. A node ID is a numeric identifier (0001, 0002, etc.). To reboot an entire cache cluster, specify all of the cache node IDs.

" + "ModifyCacheClusterMessage$CacheNodeIdsToRemove": "

A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, etc.). This parameter is only valid when NumCacheNodes is less than the existing number of cache nodes. The number of cache node IDs supplied in this parameter must match the difference between the existing number of cache nodes in the cluster or pending cache nodes, whichever is greater, and the value of NumCacheNodes in the request.

For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number of cache nodes in this ModifyCacheCluster call is 5, you must list 2 (7 - 5) cache node IDs to remove.

", + "PendingModifiedValues$CacheNodeIdsToRemove": "

A list of cache node IDs that are being removed (or will be removed) from the cluster. A node ID is a numeric identifier (0001, 0002, etc.).

", + "RebootCacheClusterMessage$CacheNodeIdsToReboot": "

A list of cache node IDs to reboot. A node ID is a numeric identifier (0001, 0002, etc.). To reboot an entire cluster, specify all of the cache node IDs.

" } }, "CacheNodeList": { "base": null, "refs": { - "CacheCluster$CacheNodes": "

A list of cache nodes that are members of the cache cluster.

" + "CacheCluster$CacheNodes": "

A list of cache nodes that are members of the cluster.

" } }, "CacheNodeTypeSpecificParameter": { - "base": "

A parameter that has a different value for each cache node type it is applied to. For example, in a Redis cache cluster, a cache.m1.large cache node type would have a larger maxmemory value than a cache.m1.small type.

", + "base": "

A parameter that has a different value for each cache node type it is applied to. For example, in a Redis cluster, a cache.m1.large cache node type would have a larger maxmemory value than a cache.m1.small type.

", "refs": { "CacheNodeTypeSpecificParametersList$member": null } @@ -276,7 +287,7 @@ "CacheParameterGroupStatus": { "base": "

Status of the cache parameter group.

", "refs": { - "CacheCluster$CacheParameterGroup": null + "CacheCluster$CacheParameterGroup": "

Status of the cache parameter group.

" } }, "CacheParameterGroupsMessage": { @@ -299,7 +310,7 @@ } }, "CacheSecurityGroupMembership": { - "base": "

Represents a cache cluster's status within a particular cache security group.

", + "base": "

Represents a cluster's status within a particular cache security group.

", "refs": { "CacheSecurityGroupMembershipList$member": null } @@ -318,10 +329,10 @@ "CacheSecurityGroupNameList": { "base": null, "refs": { - "CreateCacheClusterMessage$CacheSecurityGroupNames": "

A list of security group names to associate with this cache cluster.

Use this parameter only when you are creating a cache cluster outside of an Amazon Virtual Private Cloud (Amazon VPC).

", + "CreateCacheClusterMessage$CacheSecurityGroupNames": "

A list of security group names to associate with this cluster.

Use this parameter only when you are creating a cluster outside of an Amazon Virtual Private Cloud (Amazon VPC).

", "CreateReplicationGroupMessage$CacheSecurityGroupNames": "

A list of cache security group names to associate with this replication group.

", - "ModifyCacheClusterMessage$CacheSecurityGroupNames": "

A list of cache security group names to authorize on this cache cluster. This change is asynchronously applied as soon as possible.

You can use this parameter only with clusters that are created outside of an Amazon Virtual Private Cloud (Amazon VPC).

Constraints: Must contain no more than 255 alphanumeric characters. Must not be \"Default\".

", - "ModifyReplicationGroupMessage$CacheSecurityGroupNames": "

A list of cache security group names to authorize for the clusters in this replication group. This change is asynchronously applied as soon as possible.

This parameter can be used only with replication group containing cache clusters running outside of an Amazon Virtual Private Cloud (Amazon VPC).

Constraints: Must contain no more than 255 alphanumeric characters. Must not be Default.

" + "ModifyCacheClusterMessage$CacheSecurityGroupNames": "

A list of cache security group names to authorize on this cluster. This change is asynchronously applied as soon as possible.

You can use this parameter only with clusters that are created outside of an Amazon Virtual Private Cloud (Amazon VPC).

Constraints: Must contain no more than 255 alphanumeric characters. Must not be \"Default\".

", + "ModifyReplicationGroupMessage$CacheSecurityGroupNames": "

A list of cache security group names to authorize for the clusters in this replication group. This change is asynchronously applied as soon as possible.

This parameter can be used only with replication group containing clusters running outside of an Amazon Virtual Private Cloud (Amazon VPC).

Constraints: Must contain no more than 255 alphanumeric characters. Must not be Default.

" } }, "CacheSecurityGroupNotFoundFault": { @@ -394,11 +405,11 @@ "ClusterIdList": { "base": null, "refs": { - "ReplicationGroup$MemberClusters": "

The names of all the cache clusters that are part of this replication group.

" + "ReplicationGroup$MemberClusters": "

The identifiers of all the nodes that are part of this replication group.

" } }, "ClusterQuotaForCustomerExceededFault": { - "base": "

The request cannot be processed because it would exceed the allowed number of cache clusters per customer.

", + "base": "

The request cannot be processed because it would exceed the allowed number of clusters per customer.

", "refs": { } }, @@ -594,7 +605,8 @@ "ReservedCacheNode$FixedPrice": "

The fixed price charged for this reserved cache node.

", "ReservedCacheNode$UsagePrice": "

The hourly price charged for this reserved cache node.

", "ReservedCacheNodesOffering$FixedPrice": "

The fixed price charged for this offering.

", - "ReservedCacheNodesOffering$UsagePrice": "

The hourly price charged for this offering.

" + "ReservedCacheNodesOffering$UsagePrice": "

The hourly price charged for this offering.

", + "SlotMigration$ProgressPercentage": "

The percentage of the slot migration that is complete.

" } }, "EC2SecurityGroup": { @@ -616,7 +628,7 @@ "CacheNode$Endpoint": "

The hostname for connecting to this cache node.

", "NodeGroup$PrimaryEndpoint": "

The endpoint of the primary node in this node group (shard).

", "NodeGroupMember$ReadEndpoint": null, - "ReplicationGroup$ConfigurationEndpoint": "

The configuration endpoint for this replicaiton group. Use the configuration endpoint to connect to this replication group.

" + "ReplicationGroup$ConfigurationEndpoint": "

The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.

" } }, "EngineDefaults": { @@ -626,7 +638,7 @@ } }, "Event": { - "base": "

Represents a single occurrence of something interesting within the system. Some examples of events are creating a cache cluster, adding or removing a cache node, or rebooting a node.

", + "base": "

Represents a single occurrence of something interesting within the system. Some examples of events are creating a cluster, adding or removing a cache node, or rebooting a node.

", "refs": { "EventList$member": null } @@ -651,6 +663,7 @@ "base": null, "refs": { "Endpoint$Port": "

The port number that the cache engine is listening on.

", + "ModifyReplicationGroupShardConfigurationMessage$NodeGroupCount": "

The number of node groups (shards) that results from the modification of the shard configuration.

", "ReservedCacheNode$Duration": "

The duration of the reservation in seconds.

", "ReservedCacheNode$CacheNodeCount": "

The number of cache nodes that have been reserved.

", "ReservedCacheNodesOffering$Duration": "

The duration of the offering. in seconds.

" @@ -659,16 +672,16 @@ "IntegerOptional": { "base": null, "refs": { - "CacheCluster$NumCacheNodes": "

The number of cache nodes in the cache cluster.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

", - "CacheCluster$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", - "CreateCacheClusterMessage$NumCacheNodes": "

The initial number of cache nodes that the cache cluster has.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

If you need more than 20 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at http://aws.amazon.com/contact-us/elasticache-node-limit-request/.

", + "CacheCluster$NumCacheNodes": "

The number of cache nodes in the cluster.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

", + "CacheCluster$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", + "CreateCacheClusterMessage$NumCacheNodes": "

The initial number of cache nodes that the cluster has.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

If you need more than 20 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at http://aws.amazon.com/contact-us/elasticache-node-limit-request/.

", "CreateCacheClusterMessage$Port": "

The port number on which each of the cache nodes accepts connections.

", - "CreateCacheClusterMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot taken today is retained for 5 days before being deleted.

This parameter is only valid if the Engine parameter is redis.

Default: 0 (i.e., automatic backups are disabled for this cache cluster).

", + "CreateCacheClusterMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot taken today is retained for 5 days before being deleted.

This parameter is only valid if the Engine parameter is redis.

Default: 0 (i.e., automatic backups are disabled for this cluster).

", "CreateReplicationGroupMessage$NumCacheClusters": "

The number of clusters this replication group initially has.

This parameter is not used if there is more than one node group (shard). You should use ReplicasPerNodeGroup instead.

If AutomaticFailoverEnabled is true, the value of this parameter must be at least 2. If AutomaticFailoverEnabled is false you can omit this parameter (it will default to 1), or you can explicitly set it to a value between 2 and 6.

The maximum permitted value for NumCacheClusters is 6 (primary plus 5 replicas).

", "CreateReplicationGroupMessage$NumNodeGroups": "

An optional parameter that specifies the number of node groups (shards) for this Redis (cluster mode enabled) replication group. For Redis (cluster mode disabled) either omit this parameter or set it to 1.

Default: 1

", "CreateReplicationGroupMessage$ReplicasPerNodeGroup": "

An optional parameter that specifies the number of replica nodes in each node group (shard). Valid values are 0 to 5.

", "CreateReplicationGroupMessage$Port": "

The port number on which each member of the replication group accepts connections.

", - "CreateReplicationGroupMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

This parameter is only valid if the Engine parameter is redis.

Default: 0 (i.e., automatic backups are disabled for this cache cluster).

", + "CreateReplicationGroupMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

Default: 0 (i.e., automatic backups are disabled for this cluster).

", "DescribeCacheClustersMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", "DescribeCacheEngineVersionsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", "DescribeCacheParameterGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", @@ -682,16 +695,16 @@ "DescribeReservedCacheNodesMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", "DescribeReservedCacheNodesOfferingsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", "DescribeSnapshotsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 50

Constraints: minimum 20; maximum 50.

", - "ModifyCacheClusterMessage$NumCacheNodes": "

The number of cache nodes that the cache cluster should have. If the value for NumCacheNodes is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), more nodes are added. If the value is less than the number of existing cache nodes, nodes are removed. If the value is equal to the number of current cache nodes, any pending add or remove requests are canceled.

If you are removing cache nodes, you must use the CacheNodeIdsToRemove parameter to provide the IDs of the specific cache nodes to remove.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

Adding or removing Memcached cache nodes can be applied immediately or as a pending operation (see ApplyImmediately).

A pending operation to modify the number of cache nodes in a cluster during its maintenance window, whether by adding or removing nodes in accordance with the scale out architecture, is not queued. The customer's latest request to add or remove nodes to the cluster overrides any previous pending operations to modify the number of cache nodes in the cluster. For example, a request to remove 2 nodes would override a previous pending operation to remove 3 nodes. Similarly, a request to add 2 nodes would override a previous pending operation to remove 3 nodes and vice versa. As Memcached cache nodes may now be provisioned in different Availability Zones with flexible cache node placement, a request to add nodes does not automatically override a previous pending operation to add nodes. The customer can modify the previous pending operation to add more nodes or explicitly cancel the pending request and retry the new request. To cancel pending operations to modify the number of cache nodes in a cluster, use the ModifyCacheCluster request and set NumCacheNodes equal to the number of cache nodes currently in the cache cluster.

", - "ModifyCacheClusterMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", + "ModifyCacheClusterMessage$NumCacheNodes": "

The number of cache nodes that the cluster should have. If the value for NumCacheNodes is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), more nodes are added. If the value is less than the number of existing cache nodes, nodes are removed. If the value is equal to the number of current cache nodes, any pending add or remove requests are canceled.

If you are removing cache nodes, you must use the CacheNodeIdsToRemove parameter to provide the IDs of the specific cache nodes to remove.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

Adding or removing Memcached cache nodes can be applied immediately or as a pending operation (see ApplyImmediately).

A pending operation to modify the number of cache nodes in a cluster during its maintenance window, whether by adding or removing nodes in accordance with the scale out architecture, is not queued. The customer's latest request to add or remove nodes to the cluster overrides any previous pending operations to modify the number of cache nodes in the cluster. For example, a request to remove 2 nodes would override a previous pending operation to remove 3 nodes. Similarly, a request to add 2 nodes would override a previous pending operation to remove 3 nodes and vice versa. As Memcached cache nodes may now be provisioned in different Availability Zones with flexible cache node placement, a request to add nodes does not automatically override a previous pending operation to add nodes. The customer can modify the previous pending operation to add more nodes or explicitly cancel the pending request and retry the new request. To cancel pending operations to modify the number of cache nodes in a cluster, use the ModifyCacheCluster request and set NumCacheNodes equal to the number of cache nodes currently in the cluster.

", + "ModifyCacheClusterMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", "ModifyReplicationGroupMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic node group (shard) snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

Important If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", "NodeGroupConfiguration$ReplicaCount": "

The number of read replica nodes in this node group (shard).

", - "PendingModifiedValues$NumCacheNodes": "

The new number of cache nodes for the cache cluster.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

", + "PendingModifiedValues$NumCacheNodes": "

The new number of cache nodes for the cluster.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

", "PurchaseReservedCacheNodesOfferingMessage$CacheNodeCount": "

The number of cache node instances to reserve.

Default: 1

", - "ReplicationGroup$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", - "Snapshot$NumCacheNodes": "

The number of cache nodes in the source cache cluster.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

", - "Snapshot$Port": "

The port number used by each cache nodes in the source cache cluster.

", - "Snapshot$SnapshotRetentionLimit": "

For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it.

For manual snapshots, this field reflects the SnapshotRetentionLimit for the source cache cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the DeleteSnapshot operation.

Important If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", + "ReplicationGroup$SnapshotRetentionLimit": "

The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", + "Snapshot$NumCacheNodes": "

The number of cache nodes in the source cluster.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

", + "Snapshot$Port": "

The port number used by each cache nodes in the source cluster.

", + "Snapshot$SnapshotRetentionLimit": "

For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it.

For manual snapshots, this field reflects the SnapshotRetentionLimit for the source cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the DeleteSnapshot operation.

Important If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", "Snapshot$NumNodeGroups": "

The number of node groups (shards) in this snapshot. When restoring from a snapshot, the number of node groups (shards) in the snapshot and in the restored replication group must be the same.

" } }, @@ -701,7 +714,7 @@ } }, "InvalidCacheClusterStateFault": { - "base": "

The requested cache cluster is not in the available state.

", + "base": "

The requested cluster is not in the available state.

", "refs": { } }, @@ -796,6 +809,16 @@ "refs": { } }, + "ModifyReplicationGroupShardConfigurationMessage": { + "base": "

Represents the input for a ModifyReplicationGroupShardConfiguration operation.

", + "refs": { + } + }, + "ModifyReplicationGroupShardConfigurationResult": { + "base": null, + "refs": { + } + }, "NodeGroup": { "base": "

Represents a collection of cache nodes in a replication group. One node in the node group is the read/write primary node. All the other nodes are read-only Replica nodes.

", "refs": { @@ -803,7 +826,7 @@ } }, "NodeGroupConfiguration": { - "base": "

node group (shard) configuration options. Each node group (shard) configuration has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount.

", + "base": "

Node group (shard) configuration options. Each node group (shard) configuration has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount.

", "refs": { "NodeGroupConfigurationList$member": null, "NodeSnapshot$NodeGroupConfiguration": "

The configuration for the source node group (shard).

" @@ -818,7 +841,7 @@ "NodeGroupList": { "base": null, "refs": { - "ReplicationGroup$NodeGroups": "

A single element list with information about the nodes in the replication group.

" + "ReplicationGroup$NodeGroups": "

A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).

" } }, "NodeGroupMember": { @@ -839,12 +862,18 @@ } }, "NodeGroupsPerReplicationGroupQuotaExceededFault": { - "base": "

The request cannot be processed because it would exceed the maximum of 15 node groups (shards) in a single replication group.

", + "base": "

The request cannot be processed because it would exceed the maximum allowed number of node groups (shards) in a single replication group. The default maximum is 15

", + "refs": { + } + }, + "NodeGroupsToRemoveList": { + "base": null, "refs": { + "ModifyReplicationGroupShardConfigurationMessage$NodeGroupsToRemove": "

If the value of NodeGroupCount is less than the current number of node groups (shards), NodeGroupsToRemove is a required list of node group ids to remove from the cluster.

" } }, "NodeQuotaForClusterExceededFault": { - "base": "

The request cannot be processed because it would exceed the allowed number of cache nodes in a single cache cluster.

", + "base": "

The request cannot be processed because it would exceed the allowed number of cache nodes in a single cluster.

", "refs": { } }, @@ -854,7 +883,7 @@ } }, "NodeSnapshot": { - "base": "

Represents an individual cache node in a snapshot of a cache cluster.

", + "base": "

Represents an individual cache node in a snapshot of a cluster.

", "refs": { "NodeSnapshotList$member": null } @@ -862,19 +891,19 @@ "NodeSnapshotList": { "base": null, "refs": { - "Snapshot$NodeSnapshots": "

A list of the cache nodes in the source cache cluster.

" + "Snapshot$NodeSnapshots": "

A list of the cache nodes in the source cluster.

" } }, "NodeTypeList": { "base": null, "refs": { - "AllowedNodeTypeModificationsMessage$ScaleUpModifications": "

A string list, each element of which specifies a cache node type which you can use to scale your cache cluster or replication group.

When scaling up a Redis cluster or replication group using ModifyCacheCluster or ModifyReplicationGroup, use a value from this list for the CacheNodeType parameter.

" + "AllowedNodeTypeModificationsMessage$ScaleUpModifications": "

A string list, each element of which specifies a cache node type which you can use to scale your cluster or replication group.

When scaling up a Redis cluster or replication group using ModifyCacheCluster or ModifyReplicationGroup, use a value from this list for the CacheNodeType parameter.

" } }, "NotificationConfiguration": { "base": "

Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS).

", "refs": { - "CacheCluster$NotificationConfiguration": null + "CacheCluster$NotificationConfiguration": "

Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS).

" } }, "Parameter": { @@ -906,11 +935,11 @@ "PendingAutomaticFailoverStatus": { "base": null, "refs": { - "ReplicationGroupPendingModifiedValues$AutomaticFailoverStatus": "

Indicates the status of Multi-AZ for this Redis replication group.

ElastiCache Multi-AZ replication groups are not supported on:

  • Redis versions earlier than 2.8.6.

  • Redis (cluster mode disabled):T1 and T2 cache node types.

    Redis (cluster mode enabled): T1 node types.

" + "ReplicationGroupPendingModifiedValues$AutomaticFailoverStatus": "

Indicates the status of Multi-AZ with automatic failover for this Redis replication group.

Amazon ElastiCache for Redis does not support Multi-AZ with automatic failover on:

" } }, "PendingModifiedValues": { - "base": "

A group of settings that are applied to the cache cluster in the future, or that are currently being applied.

", + "base": "

A group of settings that are applied to the cluster in the future, or that are currently being applied.

", "refs": { "CacheCluster$PendingModifiedValues": null } @@ -918,7 +947,7 @@ "PreferredAvailabilityZoneList": { "base": null, "refs": { - "CreateCacheClusterMessage$PreferredAvailabilityZones": "

A list of the Availability Zones in which cache nodes are created. The order of the zones in the list is not important.

This option is only supported on Memcached.

If you are creating your cache cluster in an Amazon VPC (recommended) you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group.

The number of Availability Zones listed must equal the value of NumCacheNodes.

If you want all the nodes in the same Availability Zone, use PreferredAvailabilityZone instead, or repeat the Availability Zone multiple times in the list.

Default: System chosen Availability Zones.

", + "CreateCacheClusterMessage$PreferredAvailabilityZones": "

A list of the Availability Zones in which cache nodes are created. The order of the zones in the list is not important.

This option is only supported on Memcached.

If you are creating your cluster in an Amazon VPC (recommended) you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group.

The number of Availability Zones listed must equal the value of NumCacheNodes.

If you want all the nodes in the same Availability Zone, use PreferredAvailabilityZone instead, or repeat the Availability Zone multiple times in the list.

Default: System chosen Availability Zones.

", "ModifyCacheClusterMessage$NewAvailabilityZones": "

The list of Availability Zones where the new Memcached cache nodes are created.

This parameter is only valid when NumCacheNodes in the request is greater than the sum of the number of active cache nodes and the number of cache nodes pending creation (which may be zero). The number of Availability Zones supplied in this list must match the cache nodes being added in this request.

This option is only supported on Memcached clusters.

Scenarios:

The Availability Zone placement of nodes pending creation cannot be modified. If you wish to cancel any nodes pending creation, add 0 nodes by setting NumCacheNodes to the number of current nodes.

If cross-az is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes can be located in different Availability Zones. For guidance on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of Cache Node Considerations for Memcached.

Impact of new add/remove requests upon pending requests

" } }, @@ -966,6 +995,7 @@ "CreateReplicationGroupResult$ReplicationGroup": null, "DeleteReplicationGroupResult$ReplicationGroup": null, "ModifyReplicationGroupResult$ReplicationGroup": null, + "ModifyReplicationGroupShardConfigurationResult$ReplicationGroup": null, "ReplicationGroupList$member": null, "TestFailoverResult$ReplicationGroup": null } @@ -1057,6 +1087,24 @@ "refs": { } }, + "ReshardingConfiguration": { + "base": "

A list of PreferredAvailabilityZones objects that specifies the configuration of a node group in the resharded cluster.

", + "refs": { + "ReshardingConfigurationList$member": null + } + }, + "ReshardingConfigurationList": { + "base": null, + "refs": { + "ModifyReplicationGroupShardConfigurationMessage$ReshardingConfiguration": "

Specifies the preferred availability zones for each node group in the cluster. If the value of NodeGroupCount is greater than the current number of node groups (shards), you can use this parameter to specify the preferred availability zones of the cluster's shards. If you omit this parameter ElastiCache selects availability zones for you.

You can specify this parameter only if the value of NodeGroupCount is greater than the current number of node groups (shards).

" + } + }, + "ReshardingStatus": { + "base": "

The status of an online resharding operation.

", + "refs": { + "ReplicationGroupPendingModifiedValues$Resharding": "

The status of an online resharding operation.

" + } + }, "RevokeCacheSecurityGroupIngressMessage": { "base": "

Represents the input of a RevokeCacheSecurityGroupIngress operation.

", "refs": { @@ -1070,10 +1118,10 @@ "SecurityGroupIdsList": { "base": null, "refs": { - "CreateCacheClusterMessage$SecurityGroupIds": "

One or more VPC security groups associated with the cache cluster.

Use this parameter only when you are creating a cache cluster in an Amazon Virtual Private Cloud (Amazon VPC).

", + "CreateCacheClusterMessage$SecurityGroupIds": "

One or more VPC security groups associated with the cluster.

Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC).

", "CreateReplicationGroupMessage$SecurityGroupIds": "

One or more Amazon VPC security groups associated with this replication group.

Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud (Amazon VPC).

", - "ModifyCacheClusterMessage$SecurityGroupIds": "

Specifies the VPC Security Groups associated with the cache cluster.

This parameter can be used only with clusters that are created in an Amazon Virtual Private Cloud (Amazon VPC).

", - "ModifyReplicationGroupMessage$SecurityGroupIds": "

Specifies the VPC Security Groups associated with the cache clusters in the replication group.

This parameter can be used only with replication group containing cache clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

" + "ModifyCacheClusterMessage$SecurityGroupIds": "

Specifies the VPC Security Groups associated with the cluster.

This parameter can be used only with clusters that are created in an Amazon Virtual Private Cloud (Amazon VPC).

", + "ModifyReplicationGroupMessage$SecurityGroupIds": "

Specifies the VPC Security Groups associated with the clusters in the replication group.

This parameter can be used only with replication group containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).

" } }, "SecurityGroupMembership": { @@ -1085,11 +1133,17 @@ "SecurityGroupMembershipList": { "base": null, "refs": { - "CacheCluster$SecurityGroups": "

A list of VPC Security Groups associated with the cache cluster.

" + "CacheCluster$SecurityGroups": "

A list of VPC Security Groups associated with the cluster.

" + } + }, + "SlotMigration": { + "base": "

Represents the progress of an online resharding operation.

", + "refs": { + "ReshardingStatus$SlotMigration": "

Represents the progress of an online resharding operation.

" } }, "Snapshot": { - "base": "

Represents a copy of an entire Redis cache cluster as of the time when the snapshot was taken.

", + "base": "

Represents a copy of an entire Redis cluster as of the time when the snapshot was taken.

", "refs": { "CopySnapshotResult$Snapshot": null, "CreateSnapshotResult$Snapshot": null, @@ -1106,11 +1160,11 @@ "base": null, "refs": { "CreateCacheClusterMessage$SnapshotArns": "

A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot file is used to populate the node group (shard). The Amazon S3 object name in the ARN cannot contain any commas.

This parameter is only valid if the Engine parameter is redis.

Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb

", - "CreateReplicationGroupMessage$SnapshotArns": "

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new replication group. The Amazon S3 object name in the ARN cannot contain any commas. The new replication group will have the number of node groups (console: shards) specified by the parameter NumNodeGroups or the number of node groups configured by NodeGroupConfiguration regardless of the number of ARNs specified here.

This parameter is only valid if the Engine parameter is redis.

Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb

" + "CreateReplicationGroupMessage$SnapshotArns": "

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new replication group. The Amazon S3 object name in the ARN cannot contain any commas. The new replication group will have the number of node groups (console: shards) specified by the parameter NumNodeGroups or the number of node groups configured by NodeGroupConfiguration regardless of the number of ARNs specified here.

Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb

" } }, "SnapshotFeatureNotSupportedFault": { - "base": "

You attempted one of the following operations:

Neither of these are supported by ElastiCache.

", + "base": "

You attempted one of the following operations:

Neither of these are supported by ElastiCache.

", "refs": { } }, @@ -1134,29 +1188,29 @@ "base": null, "refs": { "DescribeEventsMessage$SourceType": "

The event source to retrieve events for. If no value is specified, all events are returned.

", - "Event$SourceType": "

Specifies the origin of this event - a cache cluster, a parameter group, a security group, etc.

" + "Event$SourceType": "

Specifies the origin of this event - a cluster, a parameter group, a security group, etc.

" } }, "String": { "base": null, "refs": { - "AddTagsToResourceMessage$ResourceName": "

The Amazon Resource Name (ARN) of the resource to which the tags are to be added, for example arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster or arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot.

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", + "AddTagsToResourceMessage$ResourceName": "

The Amazon Resource Name (ARN) of the resource to which the tags are to be added, for example arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster or arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot. ElastiCache resources are cluster and snapshot.

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", "AuthorizeCacheSecurityGroupIngressMessage$CacheSecurityGroupName": "

The cache security group that allows network ingress.

", "AuthorizeCacheSecurityGroupIngressMessage$EC2SecurityGroupName": "

The Amazon EC2 security group to be authorized for ingress to the cache security group.

", "AuthorizeCacheSecurityGroupIngressMessage$EC2SecurityGroupOwnerId": "

The AWS account number of the Amazon EC2 security group owner. Note that this is not the same thing as an AWS access key ID - you must provide a valid AWS account number for this parameter.

", "AvailabilityZone$Name": "

The name of the Availability Zone.

", "AvailabilityZonesList$member": null, - "CacheCluster$CacheClusterId": "

The user-supplied identifier of the cache cluster. This identifier is a unique key that identifies a cache cluster.

", + "CacheCluster$CacheClusterId": "

The user-supplied identifier of the cluster. This identifier is a unique key that identifies a cluster.

", "CacheCluster$ClientDownloadLandingPage": "

The URL of the web page where you can download the latest ElastiCache client library.

", - "CacheCluster$CacheNodeType": "

The name of the compute and memory capacity node type for the cache cluster.

Valid node types are as follows:

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", - "CacheCluster$Engine": "

The name of the cache engine (memcached or redis) to be used for this cache cluster.

", - "CacheCluster$EngineVersion": "

The version of the cache engine that is used in this cache cluster.

", - "CacheCluster$CacheClusterStatus": "

The current state of this cache cluster, one of the following values: available, creating, deleted, deleting, incompatible-network, modifying, rebooting cache cluster nodes, restore-failed, or snapshotting.

", - "CacheCluster$PreferredAvailabilityZone": "

The name of the Availability Zone in which the cache cluster is located or \"Multiple\" if the cache nodes are located in different Availability Zones.

", + "CacheCluster$CacheNodeType": "

The name of the compute and memory capacity node type for the cluster.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "CacheCluster$Engine": "

The name of the cache engine (memcached or redis) to be used for this cluster.

", + "CacheCluster$EngineVersion": "

The version of the cache engine that is used in this cluster.

", + "CacheCluster$CacheClusterStatus": "

The current state of this cluster, one of the following values: available, creating, deleted, deleting, incompatible-network, modifying, rebooting cluster nodes, restore-failed, or snapshotting.

", + "CacheCluster$PreferredAvailabilityZone": "

The name of the Availability Zone in which the cluster is located or \"Multiple\" if the cache nodes are located in different Availability Zones.

", "CacheCluster$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

Example: sun:23:00-mon:01:30

", - "CacheCluster$CacheSubnetGroupName": "

The name of the cache subnet group associated with the cache cluster.

", - "CacheCluster$ReplicationGroupId": "

The replication group to which this cache cluster belongs. If this field is empty, the cache cluster is not associated with any replication group.

", - "CacheCluster$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cache cluster.

Example: 05:00-09:00

", + "CacheCluster$CacheSubnetGroupName": "

The name of the cache subnet group associated with the cluster.

", + "CacheCluster$ReplicationGroupId": "

The replication group to which this cluster belongs. If this field is empty, the cluster is not associated with any replication group.

", + "CacheCluster$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster.

Example: 05:00-09:00

", "CacheClusterMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", "CacheEngineVersion$Engine": "

The name of the cache engine.

", "CacheEngineVersion$EngineVersion": "

The version number of the cache engine.

", @@ -1167,7 +1221,7 @@ "CacheNode$CacheNodeId": "

The cache node identifier. A node ID is a numeric identifier (0001, 0002, etc.). The combination of cluster ID and node ID uniquely identifies every cache node used in a customer's AWS account.

", "CacheNode$CacheNodeStatus": "

The current state of this cache node.

", "CacheNode$ParameterGroupStatus": "

The status of the parameter group applied to this cache node.

", - "CacheNode$SourceCacheNodeId": "

The ID of the primary node to which this read replica node is synchronized. If this field is empty, this node is not associated with a primary cache cluster.

", + "CacheNode$SourceCacheNodeId": "

The ID of the primary node to which this read replica node is synchronized. If this field is empty, this node is not associated with a primary cluster.

", "CacheNode$CustomerAvailabilityZone": "

The Availability Zone where this node was created and now resides.

", "CacheNodeIdsList$member": null, "CacheNodeTypeSpecificParameter$ParameterName": "

The name of the parameter.

", @@ -1190,7 +1244,7 @@ "CacheSecurityGroup$CacheSecurityGroupName": "

The name of the cache security group.

", "CacheSecurityGroup$Description": "

The description of the cache security group.

", "CacheSecurityGroupMembership$CacheSecurityGroupName": "

The name of the cache security group.

", - "CacheSecurityGroupMembership$Status": "

The membership status in the cache security group. The status changes when a cache security group is modified, or when the cache security groups assigned to a cache cluster are modified.

", + "CacheSecurityGroupMembership$Status": "

The membership status in the cache security group. The status changes when a cache security group is modified, or when the cache security groups assigned to a cluster are modified.

", "CacheSecurityGroupMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", "CacheSecurityGroupNameList$member": null, "CacheSubnetGroup$CacheSubnetGroupName": "

The name of the cache subnet group.

", @@ -1202,18 +1256,18 @@ "CopySnapshotMessage$TargetSnapshotName": "

A name for the snapshot copy. ElastiCache does not permit overwriting a snapshot, therefore this name must be unique within its context - ElastiCache or an Amazon S3 bucket if exporting.

", "CopySnapshotMessage$TargetBucket": "

The Amazon S3 bucket to which the snapshot is exported. This parameter is used only when exporting a snapshot for external access.

When using this parameter to export a snapshot, be sure Amazon ElastiCache has the needed permissions to this S3 bucket. For more information, see Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket in the Amazon ElastiCache User Guide.

For more information, see Exporting a Snapshot in the Amazon ElastiCache User Guide.

", "CreateCacheClusterMessage$CacheClusterId": "

The node group (shard) identifier. This parameter is stored as a lowercase string.

Constraints:

", - "CreateCacheClusterMessage$ReplicationGroupId": "

Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups.

The ID of the replication group to which this cache cluster should belong. If this parameter is specified, the cache cluster is added to the specified replication group as a read replica; otherwise, the cache cluster is a standalone primary that is not part of any replication group.

If the specified replication group is Multi-AZ enabled and the Availability Zone is not specified, the cache cluster is created in Availability Zones that provide the best spread of read replicas across Availability Zones.

This parameter is only valid if the Engine parameter is redis.

", - "CreateCacheClusterMessage$PreferredAvailabilityZone": "

The EC2 Availability Zone in which the cache cluster is created.

All nodes belonging to this Memcached cache cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use PreferredAvailabilityZones.

Default: System chosen Availability Zone.

", - "CreateCacheClusterMessage$CacheNodeType": "

The compute and memory capacity of the nodes in the node group (shard).

Valid node types are as follows:

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", - "CreateCacheClusterMessage$Engine": "

The name of the cache engine to be used for this cache cluster.

Valid values for this parameter are: memcached | redis

", - "CreateCacheClusterMessage$EngineVersion": "

The version number of the cache engine to be used for this cache cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation.

Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster or replication group and create it anew with the earlier engine version.

", - "CreateCacheClusterMessage$CacheParameterGroupName": "

The name of the parameter group to associate with this cache cluster. If this argument is omitted, the default parameter group for the specified engine is used. You cannot use any parameter group which has cluster-enabled='yes' when creating a cluster.

", - "CreateCacheClusterMessage$CacheSubnetGroupName": "

The name of the subnet group to be used for the cache cluster.

Use this parameter only when you are creating a cache cluster in an Amazon Virtual Private Cloud (Amazon VPC).

If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see Subnets and Subnet Groups.

", + "CreateCacheClusterMessage$ReplicationGroupId": "

Due to current limitations on Redis (cluster mode disabled), this operation or parameter is not supported on Redis (cluster mode enabled) replication groups.

The ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group.

If the specified replication group is Multi-AZ enabled and the Availability Zone is not specified, the cluster is created in Availability Zones that provide the best spread of read replicas across Availability Zones.

This parameter is only valid if the Engine parameter is redis.

", + "CreateCacheClusterMessage$PreferredAvailabilityZone": "

The EC2 Availability Zone in which the cluster is created.

All nodes belonging to this Memcached cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use PreferredAvailabilityZones.

Default: System chosen Availability Zone.

", + "CreateCacheClusterMessage$CacheNodeType": "

The compute and memory capacity of the nodes in the node group (shard).

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "CreateCacheClusterMessage$Engine": "

The name of the cache engine to be used for this cluster.

Valid values for this parameter are: memcached | redis

", + "CreateCacheClusterMessage$EngineVersion": "

The version number of the cache engine to be used for this cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation.

Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version.

", + "CreateCacheClusterMessage$CacheParameterGroupName": "

The name of the parameter group to associate with this cluster. If this argument is omitted, the default parameter group for the specified engine is used. You cannot use any parameter group which has cluster-enabled='yes' when creating a cluster.

", + "CreateCacheClusterMessage$CacheSubnetGroupName": "

The name of the subnet group to be used for the cluster.

Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC).

If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see Subnets and Subnet Groups.

", "CreateCacheClusterMessage$SnapshotName": "

The name of a Redis snapshot from which to restore data into the new node group (shard). The snapshot status changes to restoring while the new node group (shard) is being created.

This parameter is only valid if the Engine parameter is redis.

", - "CreateCacheClusterMessage$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are:

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

Example: sun:23:00-mon:01:30

", - "CreateCacheClusterMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.

The Amazon SNS topic owner must be the same as the cache cluster owner.

", - "CreateCacheClusterMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).

Example: 05:00-09:00

If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.

Note: This parameter is only valid if the Engine parameter is redis.

", - "CreateCacheClusterMessage$AuthToken": "

Reserved parameter. The password used to access a password protected server.

Password constraints:

For more information, see AUTH password at Redis.

", + "CreateCacheClusterMessage$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are:

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

Example: sun:23:00-mon:01:30

", + "CreateCacheClusterMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.

The Amazon SNS topic owner must be the same as the cluster owner.

", + "CreateCacheClusterMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).

Example: 05:00-09:00

If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.

This parameter is only valid if the Engine parameter is redis.

", + "CreateCacheClusterMessage$AuthToken": "

Reserved parameter. The password used to access a password protected server.

This parameter is valid only if:

Password constraints:

For more information, see AUTH password at http://redis.io/commands/AUTH.

", "CreateCacheParameterGroupMessage$CacheParameterGroupName": "

A user-specified name for the cache parameter group.

", "CreateCacheParameterGroupMessage$CacheParameterGroupFamily": "

The name of the cache parameter group family that the cache parameter group can be used with.

Valid values are: memcached1.4 | redis2.6 | redis2.8 | redis3.2

", "CreateCacheParameterGroupMessage$Description": "

A user-specified description for the cache parameter group.

", @@ -1223,29 +1277,29 @@ "CreateCacheSubnetGroupMessage$CacheSubnetGroupDescription": "

A description for the cache subnet group.

", "CreateReplicationGroupMessage$ReplicationGroupId": "

The replication group identifier. This parameter is stored as a lowercase string.

Constraints:

", "CreateReplicationGroupMessage$ReplicationGroupDescription": "

A user-created description for the replication group.

", - "CreateReplicationGroupMessage$PrimaryClusterId": "

The identifier of the cache cluster that serves as the primary for this replication group. This cache cluster must already exist and have a status of available.

This parameter is not required if NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup is specified.

", - "CreateReplicationGroupMessage$CacheNodeType": "

The compute and memory capacity of the nodes in the node group (shard).

Valid node types are as follows:

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", - "CreateReplicationGroupMessage$Engine": "

The name of the cache engine to be used for the cache clusters in this replication group.

", - "CreateReplicationGroupMessage$EngineVersion": "

The version number of the cache engine to be used for the cache clusters in this replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation.

Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version) in the ElastiCache User Guide, but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster or replication group and create it anew with the earlier engine version.

", + "CreateReplicationGroupMessage$PrimaryClusterId": "

The identifier of the cluster that serves as the primary for this replication group. This cluster must already exist and have a status of available.

This parameter is not required if NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup is specified.

", + "CreateReplicationGroupMessage$CacheNodeType": "

The compute and memory capacity of the nodes in the node group (shard).

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "CreateReplicationGroupMessage$Engine": "

The name of the cache engine to be used for the clusters in this replication group.

", + "CreateReplicationGroupMessage$EngineVersion": "

The version number of the cache engine to be used for the clusters in this replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation.

Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version) in the ElastiCache User Guide, but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version.

", "CreateReplicationGroupMessage$CacheParameterGroupName": "

The name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used.

If you are running Redis version 3.2.4 or later, only one node group (shard), and want to use a default parameter group, we recommend that you specify the parameter group by name.

", "CreateReplicationGroupMessage$CacheSubnetGroupName": "

The name of the cache subnet group to be used for the replication group.

If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see Subnets and Subnet Groups.

", - "CreateReplicationGroupMessage$SnapshotName": "

The name of a snapshot from which to restore data into the new replication group. The snapshot status changes to restoring while the new replication group is being created.

This parameter is only valid if the Engine parameter is redis.

", - "CreateReplicationGroupMessage$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are:

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

Example: sun:23:00-mon:01:30

", - "CreateReplicationGroupMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.

The Amazon SNS topic owner must be the same as the cache cluster owner.

", - "CreateReplicationGroupMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).

Example: 05:00-09:00

If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.

This parameter is only valid if the Engine parameter is redis.

", - "CreateReplicationGroupMessage$AuthToken": "

Reserved parameter. The password used to access a password protected server.

Password constraints:

For more information, see AUTH password at Redis.

", + "CreateReplicationGroupMessage$SnapshotName": "

The name of a snapshot from which to restore data into the new replication group. The snapshot status changes to restoring while the new replication group is being created.

", + "CreateReplicationGroupMessage$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are:

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

Example: sun:23:00-mon:01:30

", + "CreateReplicationGroupMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.

The Amazon SNS topic owner must be the same as the cluster owner.

", + "CreateReplicationGroupMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).

Example: 05:00-09:00

If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.

", + "CreateReplicationGroupMessage$AuthToken": "

Reserved parameter. The password used to access a password protected server.

This parameter is valid only if:

Password constraints:

For more information, see AUTH password at http://redis.io/commands/AUTH.

", "CreateSnapshotMessage$ReplicationGroupId": "

The identifier of an existing replication group. The snapshot is created from this replication group.

", - "CreateSnapshotMessage$CacheClusterId": "

The identifier of an existing cache cluster. The snapshot is created from this cache cluster.

", + "CreateSnapshotMessage$CacheClusterId": "

The identifier of an existing cluster. The snapshot is created from this cluster.

", "CreateSnapshotMessage$SnapshotName": "

A name for the snapshot being created.

", - "DeleteCacheClusterMessage$CacheClusterId": "

The cache cluster identifier for the cluster to be deleted. This parameter is not case sensitive.

", - "DeleteCacheClusterMessage$FinalSnapshotIdentifier": "

The user-supplied name of a final cache cluster snapshot. This is the unique name that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the cache cluster immediately afterward.

", - "DeleteCacheParameterGroupMessage$CacheParameterGroupName": "

The name of the cache parameter group to delete.

The specified cache security group must not be associated with any cache clusters.

", + "DeleteCacheClusterMessage$CacheClusterId": "

The cluster identifier for the cluster to be deleted. This parameter is not case sensitive.

", + "DeleteCacheClusterMessage$FinalSnapshotIdentifier": "

The user-supplied name of a final cluster snapshot. This is the unique name that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the cluster immediately afterward.

", + "DeleteCacheParameterGroupMessage$CacheParameterGroupName": "

The name of the cache parameter group to delete.

The specified cache security group must not be associated with any clusters.

", "DeleteCacheSecurityGroupMessage$CacheSecurityGroupName": "

The name of the cache security group to delete.

You cannot delete the default security group.

", "DeleteCacheSubnetGroupMessage$CacheSubnetGroupName": "

The name of the cache subnet group to delete.

Constraints: Must contain no more than 255 alphanumeric characters or hyphens.

", "DeleteReplicationGroupMessage$ReplicationGroupId": "

The identifier for the cluster to be deleted. This parameter is not case sensitive.

", "DeleteReplicationGroupMessage$FinalSnapshotIdentifier": "

The name of a final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster, rather than one of the replicas; this is to ensure that it captures the freshest data. After the final snapshot is taken, the replication group is immediately deleted.

", "DeleteSnapshotMessage$SnapshotName": "

The name of the snapshot to be deleted.

", - "DescribeCacheClustersMessage$CacheClusterId": "

The user-supplied cluster identifier. If this parameter is specified, only information about that specific cache cluster is returned. This parameter isn't case sensitive.

", + "DescribeCacheClustersMessage$CacheClusterId": "

The user-supplied cluster identifier. If this parameter is specified, only information about that specific cluster is returned. This parameter isn't case sensitive.

", "DescribeCacheClustersMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeCacheEngineVersionsMessage$Engine": "

The cache engine to return. Valid values: memcached | redis

", "DescribeCacheEngineVersionsMessage$EngineVersion": "

The cache engine version to return.

Example: 1.4.14

", @@ -1268,20 +1322,20 @@ "DescribeReplicationGroupsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeReservedCacheNodesMessage$ReservedCacheNodeId": "

The reserved cache node identifier filter value. Use this parameter to show only the reservation that matches the specified reservation ID.

", "DescribeReservedCacheNodesMessage$ReservedCacheNodesOfferingId": "

The offering identifier filter value. Use this parameter to show only purchased reservations matching the specified offering identifier.

", - "DescribeReservedCacheNodesMessage$CacheNodeType": "

The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type.

Valid node types are as follows:

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "DescribeReservedCacheNodesMessage$CacheNodeType": "

The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", "DescribeReservedCacheNodesMessage$Duration": "

The duration filter value, specified in years or seconds. Use this parameter to show only reservations for this duration.

Valid Values: 1 | 3 | 31536000 | 94608000

", "DescribeReservedCacheNodesMessage$ProductDescription": "

The product description filter value. Use this parameter to show only those reservations matching the specified product description.

", "DescribeReservedCacheNodesMessage$OfferingType": "

The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type.

Valid values: \"Light Utilization\"|\"Medium Utilization\"|\"Heavy Utilization\"

", "DescribeReservedCacheNodesMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeReservedCacheNodesOfferingsMessage$ReservedCacheNodesOfferingId": "

The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier.

Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706

", - "DescribeReservedCacheNodesOfferingsMessage$CacheNodeType": "

The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type.

Valid node types are as follows:

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "DescribeReservedCacheNodesOfferingsMessage$CacheNodeType": "

The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", "DescribeReservedCacheNodesOfferingsMessage$Duration": "

Duration filter value, specified in years or seconds. Use this parameter to show only reservations for a given duration.

Valid Values: 1 | 3 | 31536000 | 94608000

", "DescribeReservedCacheNodesOfferingsMessage$ProductDescription": "

The product description filter value. Use this parameter to show only the available offerings matching the specified product description.

", "DescribeReservedCacheNodesOfferingsMessage$OfferingType": "

The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type.

Valid Values: \"Light Utilization\"|\"Medium Utilization\"|\"Heavy Utilization\"

", "DescribeReservedCacheNodesOfferingsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeSnapshotsListMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeSnapshotsMessage$ReplicationGroupId": "

A user-supplied replication group identifier. If this parameter is specified, only snapshots associated with that specific replication group are described.

", - "DescribeSnapshotsMessage$CacheClusterId": "

A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cache cluster are described.

", + "DescribeSnapshotsMessage$CacheClusterId": "

A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cluster are described.

", "DescribeSnapshotsMessage$SnapshotName": "

A user-supplied name of the snapshot. If this parameter is specified, only this snapshot are described.

", "DescribeSnapshotsMessage$SnapshotSource": "

If set to system, the output shows snapshots that were automatically created by ElastiCache. If set to user the output shows snapshots that were manually created. If omitted, the output shows both automatically and manually created snapshots.

", "DescribeSnapshotsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", @@ -1291,48 +1345,50 @@ "Endpoint$Address": "

The DNS hostname of the cache node.

", "EngineDefaults$CacheParameterGroupFamily": "

Specifies the name of the cache parameter group family to which the engine default parameters apply.

Valid values are: memcached1.4 | redis2.6 | redis2.8 | redis3.2

", "EngineDefaults$Marker": "

Provides an identifier to allow retrieval of paginated results.

", - "Event$SourceIdentifier": "

The identifier for the source of the event. For example, if the event occurred at the cache cluster level, the identifier would be the name of the cache cluster.

", + "Event$SourceIdentifier": "

The identifier for the source of the event. For example, if the event occurred at the cluster level, the identifier would be the name of the cluster.

", "Event$Message": "

The text of the event.

", "EventsMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", "KeyList$member": null, - "ListAllowedNodeTypeModificationsMessage$CacheClusterId": "

The name of the cache cluster you want to scale up to a larger node instanced type. ElastiCache uses the cluster id to identify the current node type of this cluster and from that to create a list of node types you can scale up to.

You must provide a value for either the CacheClusterId or the ReplicationGroupId.

", + "ListAllowedNodeTypeModificationsMessage$CacheClusterId": "

The name of the cluster you want to scale up to a larger node instanced type. ElastiCache uses the cluster id to identify the current node type of this cluster and from that to create a list of node types you can scale up to.

You must provide a value for either the CacheClusterId or the ReplicationGroupId.

", "ListAllowedNodeTypeModificationsMessage$ReplicationGroupId": "

The name of the replication group want to scale up to a larger node type. ElastiCache uses the replication group id to identify the current node type being used by this replication group, and from that to create a list of node types you can scale up to.

You must provide a value for either the CacheClusterId or the ReplicationGroupId.

", "ListTagsForResourceMessage$ResourceName": "

The Amazon Resource Name (ARN) of the resource for which you want the list of tags, for example arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster or arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot.

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", - "ModifyCacheClusterMessage$CacheClusterId": "

The cache cluster identifier. This value is stored as a lowercase string.

", + "ModifyCacheClusterMessage$CacheClusterId": "

The cluster identifier. This value is stored as a lowercase string.

", "ModifyCacheClusterMessage$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

Example: sun:23:00-mon:01:30

", - "ModifyCacheClusterMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are sent.

The Amazon SNS topic owner must be same as the cache cluster owner.

", - "ModifyCacheClusterMessage$CacheParameterGroupName": "

The name of the cache parameter group to apply to this cache cluster. This change is asynchronously applied as soon as possible for parameters when the ApplyImmediately parameter is specified as true for this request.

", + "ModifyCacheClusterMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are sent.

The Amazon SNS topic owner must be same as the cluster owner.

", + "ModifyCacheClusterMessage$CacheParameterGroupName": "

The name of the cache parameter group to apply to this cluster. This change is asynchronously applied as soon as possible for parameters when the ApplyImmediately parameter is specified as true for this request.

", "ModifyCacheClusterMessage$NotificationTopicStatus": "

The status of the Amazon SNS notification topic. Notifications are sent only if the status is active.

Valid values: active | inactive

", - "ModifyCacheClusterMessage$EngineVersion": "

The upgraded version of the cache engine to be run on the cache nodes.

Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster and create it anew with the earlier engine version.

", - "ModifyCacheClusterMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cache cluster.

", - "ModifyCacheClusterMessage$CacheNodeType": "

A valid cache node type that you want to scale this cache cluster up to.

", + "ModifyCacheClusterMessage$EngineVersion": "

The upgraded version of the cache engine to be run on the cache nodes.

Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster and create it anew with the earlier engine version.

", + "ModifyCacheClusterMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster.

", + "ModifyCacheClusterMessage$CacheNodeType": "

A valid cache node type that you want to scale this cluster up to.

", "ModifyCacheParameterGroupMessage$CacheParameterGroupName": "

The name of the cache parameter group to modify.

", "ModifyCacheSubnetGroupMessage$CacheSubnetGroupName": "

The name for the cache subnet group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 alphanumeric characters or hyphens.

Example: mysubnetgroup

", "ModifyCacheSubnetGroupMessage$CacheSubnetGroupDescription": "

A description of the cache subnet group.

", "ModifyReplicationGroupMessage$ReplicationGroupId": "

The identifier of the replication group to modify.

", "ModifyReplicationGroupMessage$ReplicationGroupDescription": "

A description for the replication group. Maximum length is 255 characters.

", "ModifyReplicationGroupMessage$PrimaryClusterId": "

For replication groups with a single primary, if this parameter is specified, ElastiCache promotes the specified cluster in the specified replication group to the primary role. The nodes of all other clusters in the replication group are read replicas.

", - "ModifyReplicationGroupMessage$SnapshottingClusterId": "

The cache cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups.

", + "ModifyReplicationGroupMessage$SnapshottingClusterId": "

The cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups.

", "ModifyReplicationGroupMessage$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

Example: sun:23:00-mon:01:30

", "ModifyReplicationGroupMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are sent.

The Amazon SNS topic owner must be same as the replication group owner.

", "ModifyReplicationGroupMessage$CacheParameterGroupName": "

The name of the cache parameter group to apply to all of the clusters in this replication group. This change is asynchronously applied as soon as possible for parameters when the ApplyImmediately parameter is specified as true for this request.

", "ModifyReplicationGroupMessage$NotificationTopicStatus": "

The status of the Amazon SNS notification topic for the replication group. Notifications are sent only if the status is active.

Valid values: active | inactive

", - "ModifyReplicationGroupMessage$EngineVersion": "

The upgraded version of the cache engine to be run on the cache clusters in the replication group.

Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version.

", + "ModifyReplicationGroupMessage$EngineVersion": "

The upgraded version of the cache engine to be run on the clusters in the replication group.

Important: You can upgrade to a newer engine version (see Selecting a Cache Engine and Version), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version.

", "ModifyReplicationGroupMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of the node group (shard) specified by SnapshottingClusterId.

Example: 05:00-09:00

If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.

", "ModifyReplicationGroupMessage$CacheNodeType": "

A valid cache node type that you want to scale this replication group to.

", "ModifyReplicationGroupMessage$NodeGroupId": "

The name of the Node Group (called shard in the console).

", + "ModifyReplicationGroupShardConfigurationMessage$ReplicationGroupId": "

The name of the Redis (cluster mode enabled) cluster (replication group) on which the shards are to be configured.

", "NodeGroup$NodeGroupId": "

The identifier for the node group (shard). A Redis (cluster mode disabled) replication group contains only 1 node group; therefore, the node group ID is 0001. A Redis (cluster mode enabled) replication group contains 1 to 15 node groups numbered 0001 to 0015.

", "NodeGroup$Status": "

The current state of this replication group - creating, available, etc.

", "NodeGroup$Slots": "

The keyspace for this node group (shard).

", "NodeGroupConfiguration$Slots": "

A string that specifies the keyspace for a particular node group. Keyspaces range from 0 to 16,383. The string is in the format startkey-endkey.

Example: \"0-3999\"

", "NodeGroupConfiguration$PrimaryAvailabilityZone": "

The Availability Zone where the primary node of this node group (shard) is launched.

", - "NodeGroupMember$CacheClusterId": "

The ID of the cache cluster to which the node belongs.

", - "NodeGroupMember$CacheNodeId": "

The ID of the node within its cache cluster. A node ID is a numeric identifier (0001, 0002, etc.).

", + "NodeGroupMember$CacheClusterId": "

The ID of the cluster to which the node belongs.

", + "NodeGroupMember$CacheNodeId": "

The ID of the node within its cluster. A node ID is a numeric identifier (0001, 0002, etc.).

", "NodeGroupMember$PreferredAvailabilityZone": "

The name of the Availability Zone in which the node is located.

", "NodeGroupMember$CurrentRole": "

The role that is currently assigned to the node - primary or replica.

", - "NodeSnapshot$CacheClusterId": "

A unique identifier for the source cache cluster.

", + "NodeGroupsToRemoveList$member": null, + "NodeSnapshot$CacheClusterId": "

A unique identifier for the source cluster.

", "NodeSnapshot$NodeGroupId": "

A unique identifier for the source node group (shard).

", - "NodeSnapshot$CacheNodeId": "

The cache node identifier for the node in the source cache cluster.

", + "NodeSnapshot$CacheNodeId": "

The cache node identifier for the node in the source cluster.

", "NodeSnapshot$CacheSize": "

The size of the cache on the source cache node.

", "NodeTypeList$member": null, "NotificationConfiguration$TopicArn": "

The Amazon Resource Name (ARN) that identifies the topic.

", @@ -1346,31 +1402,31 @@ "Parameter$MinimumEngineVersion": "

The earliest cache engine version to which the parameter can apply.

", "ParameterNameValue$ParameterName": "

The name of the parameter.

", "ParameterNameValue$ParameterValue": "

The value of the parameter.

", - "PendingModifiedValues$EngineVersion": "

The new cache engine version that the cache cluster runs.

", - "PendingModifiedValues$CacheNodeType": "

The cache node type that this cache cluster or replication group is scaled to.

", + "PendingModifiedValues$EngineVersion": "

The new cache engine version that the cluster runs.

", + "PendingModifiedValues$CacheNodeType": "

The cache node type that this cluster or replication group is scaled to.

", "PreferredAvailabilityZoneList$member": null, "PurchaseReservedCacheNodesOfferingMessage$ReservedCacheNodesOfferingId": "

The ID of the reserved cache node offering to purchase.

Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706

", "PurchaseReservedCacheNodesOfferingMessage$ReservedCacheNodeId": "

A customer-specified identifier to track this reservation.

The Reserved Cache Node ID is an unique customer-specified identifier to track this reservation. If this parameter is not specified, ElastiCache automatically generates an identifier for the reservation.

Example: myreservationID

", - "RebootCacheClusterMessage$CacheClusterId": "

The cache cluster identifier. This parameter is stored as a lowercase string.

", + "RebootCacheClusterMessage$CacheClusterId": "

The cluster identifier. This parameter is stored as a lowercase string.

", "RecurringCharge$RecurringChargeFrequency": "

The frequency of the recurring charge.

", "RemoveTagsFromResourceMessage$ResourceName": "

The Amazon Resource Name (ARN) of the resource from which you want the tags removed, for example arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster or arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot.

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

", "ReplicationGroup$ReplicationGroupId": "

The identifier for the replication group.

", - "ReplicationGroup$Description": "

The description of the replication group.

", + "ReplicationGroup$Description": "

The user supplied description of the replication group.

", "ReplicationGroup$Status": "

The current state of this replication group - creating, available, modifying, deleting, create-failed, snapshotting.

", - "ReplicationGroup$SnapshottingClusterId": "

The cache cluster ID that is used as the daily snapshot source for the replication group.

", - "ReplicationGroup$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).

Example: 05:00-09:00

If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.

Note: This parameter is only valid if the Engine parameter is redis.

", + "ReplicationGroup$SnapshottingClusterId": "

The cluster ID that is used as the daily snapshot source for the replication group.

", + "ReplicationGroup$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).

Example: 05:00-09:00

If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.

This parameter is only valid if the Engine parameter is redis.

", "ReplicationGroup$CacheNodeType": "

The name of the compute and memory capacity node type for each node in the replication group.

", "ReplicationGroupMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", "ReplicationGroupPendingModifiedValues$PrimaryClusterId": "

The primary cluster ID that is applied immediately (if --apply-immediately was specified), or during the next maintenance window.

", "ReservedCacheNode$ReservedCacheNodeId": "

The unique identifier for the reservation.

", "ReservedCacheNode$ReservedCacheNodesOfferingId": "

The offering identifier.

", - "ReservedCacheNode$CacheNodeType": "

The cache node type for the reserved cache nodes.

Valid node types are as follows:

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "ReservedCacheNode$CacheNodeType": "

The cache node type for the reserved cache nodes.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", "ReservedCacheNode$ProductDescription": "

The description of the reserved cache node.

", "ReservedCacheNode$OfferingType": "

The offering type of this reserved cache node.

", "ReservedCacheNode$State": "

The state of the reserved cache node.

", "ReservedCacheNodeMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", "ReservedCacheNodesOffering$ReservedCacheNodesOfferingId": "

A unique identifier for the reserved cache node offering.

", - "ReservedCacheNodesOffering$CacheNodeType": "

The cache node type for the reserved cache node.

Valid node types are as follows:

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "ReservedCacheNodesOffering$CacheNodeType": "

The cache node type for the reserved cache node.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", "ReservedCacheNodesOffering$ProductDescription": "

The cache engine used by the offering.

", "ReservedCacheNodesOffering$OfferingType": "

The offering type.

", "ReservedCacheNodesOfferingMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", @@ -1380,23 +1436,23 @@ "RevokeCacheSecurityGroupIngressMessage$EC2SecurityGroupOwnerId": "

The AWS account number of the Amazon EC2 security group owner. Note that this is not the same thing as an AWS access key ID - you must provide a valid AWS account number for this parameter.

", "SecurityGroupIdsList$member": null, "SecurityGroupMembership$SecurityGroupId": "

The identifier of the cache security group.

", - "SecurityGroupMembership$Status": "

The status of the cache security group membership. The status changes whenever a cache security group is modified, or when the cache security groups assigned to a cache cluster are modified.

", + "SecurityGroupMembership$Status": "

The status of the cache security group membership. The status changes whenever a cache security group is modified, or when the cache security groups assigned to a cluster are modified.

", "Snapshot$SnapshotName": "

The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is the user-provided name.

", "Snapshot$ReplicationGroupId": "

The unique identifier of the source replication group.

", "Snapshot$ReplicationGroupDescription": "

A description of the source replication group.

", - "Snapshot$CacheClusterId": "

The user-supplied identifier of the source cache cluster.

", + "Snapshot$CacheClusterId": "

The user-supplied identifier of the source cluster.

", "Snapshot$SnapshotStatus": "

The status of the snapshot. Valid values: creating | available | restoring | copying | deleting.

", "Snapshot$SnapshotSource": "

Indicates whether the snapshot is from an automatic backup (automated) or was created manually (manual).

", - "Snapshot$CacheNodeType": "

The name of the compute and memory capacity node type for the source cache cluster.

Valid node types are as follows:

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", - "Snapshot$Engine": "

The name of the cache engine (memcached or redis) used by the source cache cluster.

", - "Snapshot$EngineVersion": "

The version of the cache engine version that is used by the source cache cluster.

", - "Snapshot$PreferredAvailabilityZone": "

The name of the Availability Zone in which the source cache cluster is located.

", + "Snapshot$CacheNodeType": "

The name of the compute and memory capacity node type for the source cluster.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

Notes:

For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "Snapshot$Engine": "

The name of the cache engine (memcached or redis) used by the source cluster.

", + "Snapshot$EngineVersion": "

The version of the cache engine version that is used by the source cluster.

", + "Snapshot$PreferredAvailabilityZone": "

The name of the Availability Zone in which the source cluster is located.

", "Snapshot$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

Example: sun:23:00-mon:01:30

", - "Snapshot$TopicArn": "

The Amazon Resource Name (ARN) for the topic used by the source cache cluster for publishing notifications.

", - "Snapshot$CacheParameterGroupName": "

The cache parameter group that is associated with the source cache cluster.

", - "Snapshot$CacheSubnetGroupName": "

The name of the cache subnet group associated with the source cache cluster.

", - "Snapshot$VpcId": "

The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cache cluster.

", - "Snapshot$SnapshotWindow": "

The daily time range during which ElastiCache takes daily snapshots of the source cache cluster.

", + "Snapshot$TopicArn": "

The Amazon Resource Name (ARN) for the topic used by the source cluster for publishing notifications.

", + "Snapshot$CacheParameterGroupName": "

The cache parameter group that is associated with the source cluster.

", + "Snapshot$CacheSubnetGroupName": "

The name of the cache subnet group associated with the source cluster.

", + "Snapshot$VpcId": "

The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cluster.

", + "Snapshot$SnapshotWindow": "

The daily time range during which ElastiCache takes daily snapshots of the source cluster.

", "SnapshotArnsList$member": null, "Subnet$SubnetIdentifier": "

The unique identifier for the subnet.

", "SubnetIdentifierList$member": null, @@ -1407,7 +1463,7 @@ } }, "Subnet": { - "base": "

Represents the subnet associated with a cache cluster. This parameter refers to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with ElastiCache.

", + "base": "

Represents the subnet associated with a cluster. This parameter refers to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with ElastiCache.

", "refs": { "SubnetList$member": null } @@ -1433,15 +1489,15 @@ "TStamp": { "base": null, "refs": { - "CacheCluster$CacheClusterCreateTime": "

The date and time when the cache cluster was created.

", + "CacheCluster$CacheClusterCreateTime": "

The date and time when the cluster was created.

", "CacheNode$CacheNodeCreateTime": "

The date and time when the cache node was created.

", "DescribeEventsMessage$StartTime": "

The beginning of the time interval to retrieve events for, specified in ISO 8601 format.

Example: 2017-03-30T07:03:49.555Z

", "DescribeEventsMessage$EndTime": "

The end of the time interval for which to retrieve events, specified in ISO 8601 format.

Example: 2017-03-30T07:03:49.555Z

", "Event$Date": "

The date and time when the event occurred.

", - "NodeSnapshot$CacheNodeCreateTime": "

The date and time when the cache node was created in the source cache cluster.

", + "NodeSnapshot$CacheNodeCreateTime": "

The date and time when the cache node was created in the source cluster.

", "NodeSnapshot$SnapshotCreateTime": "

The date and time when the source node's metadata and cache data set was obtained for the snapshot.

", "ReservedCacheNode$StartTime": "

The time the reservation started.

", - "Snapshot$CacheClusterCreateTime": "

The date and time when the source cache cluster was created.

" + "Snapshot$CacheClusterCreateTime": "

The date and time when the source cluster was created.

" } }, "Tag": { @@ -1454,8 +1510,8 @@ "base": null, "refs": { "AddTagsToResourceMessage$Tags": "

A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value.

", - "CreateCacheClusterMessage$Tags": "

A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value.

", - "CreateReplicationGroupMessage$Tags": "

A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value.

", + "CreateCacheClusterMessage$Tags": "

A list of cost allocation tags to be added to this resource.

", + "CreateReplicationGroupMessage$Tags": "

A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key does not have to be accompanied by a tag value.

", "TagListMessage$TagList": "

A list of cost allocation tags as key-value pairs.

" } }, diff --git a/models/apis/elasticache/2015-02-02/examples-1.json b/models/apis/elasticache/2015-02-02/examples-1.json index 81eb013fb37..f1d21bd7ff6 100644 --- a/models/apis/elasticache/2015-02-02/examples-1.json +++ b/models/apis/elasticache/2015-02-02/examples-1.json @@ -448,31 +448,33 @@ "SnapshotName": "snapshot-2" }, "output": { - "AutoMinorVersionUpgrade": true, - "CacheClusterCreateTime": "2017-02-03T15:43:36.278Z", - "CacheClusterId": "threenoderedis-001", - "CacheNodeType": "cache.m3.medium", - "CacheParameterGroupName": "default.redis3.2", - "CacheSubnetGroupName": "default", - "Engine": "redis", - "EngineVersion": "3.2.4", - "NodeSnapshots": [ - { - "CacheNodeCreateTime": "2017-02-03T15:43:36.278Z", - "CacheNodeId": "0001", - "CacheSize": "" - } - ], - "NumCacheNodes": 1, - "Port": 6379, - "PreferredAvailabilityZone": "us-west-2c", - "PreferredMaintenanceWindow": "sat:08:00-sat:09:00", - "SnapshotName": "snapshot-2", - "SnapshotRetentionLimit": 1, - "SnapshotSource": "manual", - "SnapshotStatus": "creating", - "SnapshotWindow": "00:00-01:00", - "VpcId": "vpc-73c3cd17" + "Snapshot": { + "AutoMinorVersionUpgrade": true, + "CacheClusterCreateTime": "2017-02-03T15:43:36.278Z", + "CacheClusterId": "threenoderedis-001", + "CacheNodeType": "cache.m3.medium", + "CacheParameterGroupName": "default.redis3.2", + "CacheSubnetGroupName": "default", + "Engine": "redis", + "EngineVersion": "3.2.4", + "NodeSnapshots": [ + { + "CacheNodeCreateTime": "2017-02-03T15:43:36.278Z", + "CacheNodeId": "0001", + "CacheSize": "" + } + ], + "NumCacheNodes": 1, + "Port": 6379, + "PreferredAvailabilityZone": "us-west-2c", + "PreferredMaintenanceWindow": "sat:08:00-sat:09:00", + "SnapshotName": "snapshot-2", + "SnapshotRetentionLimit": 1, + "SnapshotSource": "manual", + "SnapshotStatus": "creating", + "SnapshotWindow": "00:00-01:00", + "VpcId": "vpc-73c3cd17" + } }, "comments": { "input": { @@ -490,34 +492,36 @@ "SnapshotName": "snapshot-2x5" }, "output": { - "AutoMinorVersionUpgrade": true, - "AutomaticFailover": "enabled", - "CacheNodeType": "cache.m3.medium", - "CacheParameterGroupName": "default.redis3.2.cluster.on", - "CacheSubnetGroupName": "default", - "Engine": "redis", - "EngineVersion": "3.2.4", - "NodeSnapshots": [ - { - "CacheSize": "", - "NodeGroupId": "0001" - }, - { - "CacheSize": "", - "NodeGroupId": "0002" - } - ], - "NumNodeGroups": 2, - "Port": 6379, - "PreferredMaintenanceWindow": "mon:09:30-mon:10:30", - "ReplicationGroupDescription": "Redis cluster with 2 shards.", - "ReplicationGroupId": "clusteredredis", - "SnapshotName": "snapshot-2x5", - "SnapshotRetentionLimit": 1, - "SnapshotSource": "manual", - "SnapshotStatus": "creating", - "SnapshotWindow": "12:00-13:00", - "VpcId": "vpc-73c3cd17" + "Snapshot": { + "AutoMinorVersionUpgrade": true, + "AutomaticFailover": "enabled", + "CacheNodeType": "cache.m3.medium", + "CacheParameterGroupName": "default.redis3.2.cluster.on", + "CacheSubnetGroupName": "default", + "Engine": "redis", + "EngineVersion": "3.2.4", + "NodeSnapshots": [ + { + "CacheSize": "", + "NodeGroupId": "0001" + }, + { + "CacheSize": "", + "NodeGroupId": "0002" + } + ], + "NumNodeGroups": 2, + "Port": 6379, + "PreferredMaintenanceWindow": "mon:09:30-mon:10:30", + "ReplicationGroupDescription": "Redis cluster with 2 shards.", + "ReplicationGroupId": "clusteredredis", + "SnapshotName": "snapshot-2x5", + "SnapshotRetentionLimit": 1, + "SnapshotSource": "manual", + "SnapshotStatus": "creating", + "SnapshotWindow": "12:00-13:00", + "VpcId": "vpc-73c3cd17" + } }, "comments": { "input": { diff --git a/models/apis/elasticbeanstalk/2010-12-01/api-2.json b/models/apis/elasticbeanstalk/2010-12-01/api-2.json index 8b59a010b8b..01d61180107 100644 --- a/models/apis/elasticbeanstalk/2010-12-01/api-2.json +++ b/models/apis/elasticbeanstalk/2010-12-01/api-2.json @@ -426,6 +426,23 @@ {"shape":"ElasticBeanstalkServiceException"} ] }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceMessage"}, + "output":{ + "shape":"ResourceTagsDescriptionMessage", + "resultWrapper":"ListTagsForResourceResult" + }, + "errors":[ + {"shape":"InsufficientPrivilegesException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceTypeNotSupportedException"} + ] + }, "RebuildEnvironment":{ "name":"RebuildEnvironment", "http":{ @@ -559,6 +576,21 @@ {"shape":"TooManyBucketsException"} ] }, + "UpdateTagsForResource":{ + "name":"UpdateTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTagsForResourceMessage"}, + "errors":[ + {"shape":"InsufficientPrivilegesException"}, + {"shape":"OperationInProgressException"}, + {"shape":"TooManyTagsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceTypeNotSupportedException"} + ] + }, "ValidateConfigurationSettings":{ "name":"ValidateConfigurationSettings", "http":{ @@ -1225,7 +1257,9 @@ "EnvironmentIds":{"shape":"EnvironmentIdList"}, "EnvironmentNames":{"shape":"EnvironmentNamesList"}, "IncludeDeleted":{"shape":"IncludeDeleted"}, - "IncludedDeletedBackTo":{"shape":"IncludeDeletedBackTo"} + "IncludedDeletedBackTo":{"shape":"IncludeDeletedBackTo"}, + "MaxRecords":{"shape":"MaxRecords"}, + "NextToken":{"shape":"Token"} } }, "DescribeEventsMessage":{ @@ -1287,6 +1321,7 @@ "exception":true }, "EndpointURL":{"type":"string"}, + "EnvironmentArn":{"type":"string"}, "EnvironmentDescription":{ "type":"structure", "members":{ @@ -1308,7 +1343,8 @@ "HealthStatus":{"shape":"EnvironmentHealthStatus"}, "Resources":{"shape":"EnvironmentResourcesDescription"}, "Tier":{"shape":"EnvironmentTier"}, - "EnvironmentLinks":{"shape":"EnvironmentLinks"} + "EnvironmentLinks":{"shape":"EnvironmentLinks"}, + "EnvironmentArn":{"shape":"EnvironmentArn"} } }, "EnvironmentDescriptionsList":{ @@ -1318,7 +1354,8 @@ "EnvironmentDescriptionsMessage":{ "type":"structure", "members":{ - "Environments":{"shape":"EnvironmentDescriptionsList"} + "Environments":{"shape":"EnvironmentDescriptionsList"}, + "NextToken":{"shape":"Token"} } }, "EnvironmentHealth":{ @@ -1633,6 +1670,13 @@ "NextToken":{"shape":"Token"} } }, + "ListTagsForResourceMessage":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{"shape":"ResourceArn"} + } + }, "Listener":{ "type":"structure", "members":{ @@ -1929,12 +1973,42 @@ } }, "RequestId":{"type":"string"}, + "ResourceArn":{"type":"string"}, "ResourceId":{"type":"string"}, "ResourceName":{ "type":"string", "max":256, "min":1 }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ResourceNotFoundException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ResourceTagsDescriptionMessage":{ + "type":"structure", + "members":{ + "ResourceArn":{"shape":"ResourceArn"}, + "ResourceTags":{"shape":"TagList"} + } + }, + "ResourceTypeNotSupportedException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ResourceTypeNotSupportedException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "RestartAppServerMessage":{ "type":"structure", "members":{ @@ -2121,6 +2195,14 @@ "max":128, "min":1 }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"} + }, "TagValue":{ "type":"string", "max":256, @@ -2206,6 +2288,17 @@ }, "exception":true }, + "TooManyTagsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyTagsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "Trigger":{ "type":"structure", "members":{ @@ -2279,6 +2372,15 @@ "OptionsToRemove":{"shape":"OptionsSpecifierList"} } }, + "UpdateTagsForResourceMessage":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{"shape":"ResourceArn"}, + "TagsToAdd":{"shape":"TagList"}, + "TagsToRemove":{"shape":"TagKeyList"} + } + }, "UserDefinedOption":{"type":"boolean"}, "ValidateConfigurationSettingsMessage":{ "type":"structure", diff --git a/models/apis/elasticbeanstalk/2010-12-01/docs-2.json b/models/apis/elasticbeanstalk/2010-12-01/docs-2.json index 2cabdf3b5ee..27dc440e32a 100644 --- a/models/apis/elasticbeanstalk/2010-12-01/docs-2.json +++ b/models/apis/elasticbeanstalk/2010-12-01/docs-2.json @@ -31,6 +31,7 @@ "DescribePlatformVersion": "

Describes the version of the platform.

", "ListAvailableSolutionStacks": "

Returns a list of the available solution stack names, with the public version first and then in reverse chronological order.

", "ListPlatformVersions": "

Lists the available platforms.

", + "ListTagsForResource": "

Returns the tags applied to an AWS Elastic Beanstalk resource. The response contains a list of tag key-value pairs.

Currently, Elastic Beanstalk only supports tagging Elastic Beanstalk environments.

", "RebuildEnvironment": "

Deletes and recreates all of the AWS resources (for example: the Auto Scaling group, load balancer, etc.) for a specified environment and forces a restart.

", "RequestEnvironmentInfo": "

Initiates a request to compile the specified type of information of the deployed environment.

Setting the InfoType to tail compiles the last lines from the application server log files of every Amazon EC2 instance in your environment.

Setting the InfoType to bundle compresses the application server log files for every Amazon EC2 instance into a .zip file. Legacy and .NET containers do not support bundle logs.

Use RetrieveEnvironmentInfo to obtain the set of logs.

Related Topics

", "RestartAppServer": "

Causes the environment to restart the application container server running on each Amazon EC2 instance.

", @@ -42,6 +43,7 @@ "UpdateApplicationVersion": "

Updates the specified application version to have the specified properties.

If a property (for example, description) is not provided, the value remains unchanged. To clear properties, specify an empty string.

", "UpdateConfigurationTemplate": "

Updates the specified configuration template to have the specified properties or configuration option values.

If a property (for example, ApplicationName) is not provided, its value remains unchanged. To clear such properties, specify an empty string.

Related Topics

", "UpdateEnvironment": "

Updates the environment description, deploys a new application version, updates the configuration settings to an entirely new configuration template, or updates select configuration option values in the running environment.

Attempting to update both the release and configuration is not allowed and AWS Elastic Beanstalk returns an InvalidParameterCombination error.

When updating the configuration settings to a new template or individual settings, a draft configuration is created and DescribeConfigurationSettings for this environment returns two setting descriptions with different DeploymentStatus values.

", + "UpdateTagsForResource": "

Update the list of tags applied to an AWS Elastic Beanstalk resource. Two lists can be passed: TagsToAdd for tags to add or update, and TagsToRemove.

Currently, Elastic Beanstalk only supports tagging of Elastic Beanstalk environments.

", "ValidateConfigurationSettings": "

Takes a set of configuration settings and either a configuration template or environment, and determines whether those values are valid.

This action returns a list of messages indicating any errors or warnings associated with the selection of option values.

" }, "shapes": { @@ -576,7 +578,7 @@ "DeploymentTimestamp": { "base": null, "refs": { - "Deployment$DeploymentTime": "

For in-progress deployments, the time that the deloyment started.

For completed deployments, the time that the deployment ended.

" + "Deployment$DeploymentTime": "

For in-progress deployments, the time that the deployment started.

For completed deployments, the time that the deployment ended.

" } }, "DescribeApplicationVersionsMessage": { @@ -699,6 +701,12 @@ "EnvironmentDescription$EndpointURL": "

For load-balanced, autoscaling environments, the URL to the LoadBalancer. For single-instance environments, the IP address of the instance.

" } }, + "EnvironmentArn": { + "base": null, + "refs": { + "EnvironmentDescription$EnvironmentArn": "

The environment's Amazon Resource Name (ARN), which can be used in other API reuqests that require an ARN.

" + } + }, "EnvironmentDescription": { "base": "

Describes the properties of an environment.

", "refs": { @@ -806,7 +814,7 @@ "refs": { "AbortEnvironmentUpdateMessage$EnvironmentName": "

This specifies the name of the environment with the in-progress update that you want to cancel.

", "ConfigurationSettingsDescription$EnvironmentName": "

If not null, the name of the environment for this configuration set.

", - "CreateEnvironmentMessage$EnvironmentName": "

A unique name for the deployment environment. Used in the application URL.

Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It cannot start or end with a hyphen. This name must be unique in your account. If the specified name already exists, AWS Elastic Beanstalk returns an InvalidParameterValue error.

Default: If the CNAME parameter is not specified, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application.

", + "CreateEnvironmentMessage$EnvironmentName": "

A unique name for the deployment environment. Used in the application URL.

Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It cannot start or end with a hyphen. This name must be unique within a region in your account. If the specified name already exists in the region, AWS Elastic Beanstalk returns an InvalidParameterValue error.

Default: If the CNAME parameter is not specified, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application.

", "CreatePlatformVersionRequest$EnvironmentName": "

The name of the builder environment.

", "DeleteEnvironmentConfigurationMessage$EnvironmentName": "

The name of the environment to delete the draft configuration from.

", "DescribeConfigurationOptionsMessage$EnvironmentName": "

The name of the environment whose configuration options you want to describe.

", @@ -1053,6 +1061,11 @@ "refs": { } }, + "ListTagsForResourceMessage": { + "base": null, + "refs": { + } + }, "Listener": { "base": "

Describes the properties of a Listener for the LoadBalancer.

", "refs": { @@ -1145,7 +1158,8 @@ "MaxRecords": { "base": null, "refs": { - "DescribeApplicationVersionsMessage$MaxRecords": "

Specify a maximum number of application versions to paginate in the request.

", + "DescribeApplicationVersionsMessage$MaxRecords": "

For a paginated request. Specify a maximum number of application versions to include in each response.

If no MaxRecords is specified, all available application versions are retrieved in a single response.

", + "DescribeEnvironmentsMessage$MaxRecords": "

For a paginated request. Specify a maximum number of environments to include in each response.

If no MaxRecords is specified, all available environments are retrieved in a single response.

", "DescribeEventsMessage$MaxRecords": "

Specifies the maximum number of events that can be returned, beginning with the most recent event.

" } }, @@ -1283,16 +1297,16 @@ "PlatformArn": { "base": null, "refs": { - "ConfigurationOptionsDescription$PlatformArn": "

The ARN of the custom platform.

", - "ConfigurationSettingsDescription$PlatformArn": "

The ARN of the custom platform.

", + "ConfigurationOptionsDescription$PlatformArn": "

The ARN of the platform.

", + "ConfigurationSettingsDescription$PlatformArn": "

The ARN of the platform.

", "CreateConfigurationTemplateMessage$PlatformArn": "

The ARN of the custome platform.

", - "CreateEnvironmentMessage$PlatformArn": "

The ARN of the custom platform.

", + "CreateEnvironmentMessage$PlatformArn": "

The ARN of the platform.

", "DeletePlatformVersionRequest$PlatformArn": "

The ARN of the version of the custom platform.

", "DescribeConfigurationOptionsMessage$PlatformArn": "

The ARN of the custom platform.

", "DescribeEventsMessage$PlatformArn": "

The ARN of the version of the custom platform.

", "DescribePlatformVersionRequest$PlatformArn": "

The ARN of the version of the platform.

", - "EnvironmentDescription$PlatformArn": "

The ARN of the custom platform.

", - "EventDescription$PlatformArn": "

The ARN of the custom platform.

", + "EnvironmentDescription$PlatformArn": "

The ARN of the platform.

", + "EventDescription$PlatformArn": "

The ARN of the platform.

", "PlatformDescription$PlatformArn": "

The ARN of the platform.

", "PlatformSummary$PlatformArn": "

The ARN of the platform.

", "UpdateEnvironmentMessage$PlatformArn": "

The ARN of the platform, if used.

" @@ -1478,6 +1492,14 @@ "EventDescription$RequestId": "

The web service request ID for the activity of this event.

" } }, + "ResourceArn": { + "base": null, + "refs": { + "ListTagsForResourceMessage$ResourceArn": "

The Amazon Resource Name (ARN) of the resouce for which a tag list is requested.

Must be the ARN of an Elastic Beanstalk environment.

", + "ResourceTagsDescriptionMessage$ResourceArn": "

The Amazon Resource Name (ARN) of the resouce for which a tag list was requested.

", + "UpdateTagsForResourceMessage$ResourceArn": "

The Amazon Resource Name (ARN) of the resouce to be updated.

Must be the ARN of an Elastic Beanstalk environment.

" + } + }, "ResourceId": { "base": null, "refs": { @@ -1495,6 +1517,21 @@ "OptionSpecification$ResourceName": "

A unique resource name for a time-based scaling configuration option.

" } }, + "ResourceNotFoundException": { + "base": "

A resource doesn't exist for the specified Amazon Resource Name (ARN).

", + "refs": { + } + }, + "ResourceTagsDescriptionMessage": { + "base": null, + "refs": { + } + }, + "ResourceTypeNotSupportedException": { + "base": "

The type of the specified Amazon Resource Name (ARN) isn't supported for this operation.

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

", "refs": { @@ -1707,13 +1744,28 @@ "Tag": { "base": "

Describes a tag applied to a resource in an environment.

", "refs": { + "TagList$member": null, "Tags$member": null } }, "TagKey": { "base": null, "refs": { - "Tag$Key": "

The key of the tag.

" + "Tag$Key": "

The key of the tag.

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UpdateTagsForResourceMessage$TagsToRemove": "

A list of tag keys to remove.

If a tag key doesn't exist, it is silently ignored.

" + } + }, + "TagList": { + "base": null, + "refs": { + "ResourceTagsDescriptionMessage$ResourceTags": "

A list of tag key-value pairs.

", + "UpdateTagsForResourceMessage$TagsToAdd": "

A list of tags to add or update.

If a key of an existing tag is added, the tag's value is updated.

" } }, "TagValue": { @@ -1768,9 +1820,11 @@ "Token": { "base": null, "refs": { - "ApplicationVersionDescriptionsMessage$NextToken": "

For a paginated request, the token that you can pass in a subsequent request to get the next page.

", - "DescribeApplicationVersionsMessage$NextToken": "

Specify a next token to retrieve the next page in a paginated request.

", + "ApplicationVersionDescriptionsMessage$NextToken": "

In a paginated request, the token that you can pass in a subsequent request to get the next response page.

", + "DescribeApplicationVersionsMessage$NextToken": "

For a paginated request. Specify a token from a previous response page to retrieve the next response page. All other parameter values must be identical to the ones specified in the initial request.

If no NextToken is specified, the first page is retrieved.

", + "DescribeEnvironmentsMessage$NextToken": "

For a paginated request. Specify a token from a previous response page to retrieve the next response page. All other parameter values must be identical to the ones specified in the initial request.

If no NextToken is specified, the first page is retrieved.

", "DescribeEventsMessage$NextToken": "

Pagination token. If specified, the events return the next batch of results.

", + "EnvironmentDescriptionsMessage$NextToken": "

In a paginated request, the token that you can pass in a subsequent request to get the next response page.

", "EventDescriptionsMessage$NextToken": "

If returned, this indicates that there are more results to obtain. Use this token in the next DescribeEvents call to get the next batch of events.

", "ListPlatformVersionsRequest$NextToken": "

The starting index into the remaining list of platforms. Use the NextToken value from a previous ListPlatformVersion call.

", "ListPlatformVersionsResult$NextToken": "

The starting index into the remaining list of platforms. if this value is not null, you can use it in a subsequent ListPlatformVersion call.

" @@ -1806,6 +1860,11 @@ "refs": { } }, + "TooManyTagsException": { + "base": "

The number of tags in the resource would exceed the number of tags that each resource can have.

To calculate this, the operation considers both the number of tags the resource already has and the tags this operation would add if it succeeded.

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

Describes a trigger.

", "refs": { @@ -1853,6 +1912,11 @@ "refs": { } }, + "UpdateTagsForResourceMessage": { + "base": null, + "refs": { + } + }, "UserDefinedOption": { "base": null, "refs": { diff --git a/models/apis/elasticfilesystem/2015-02-01/api-2.json b/models/apis/elasticfilesystem/2015-02-01/api-2.json index ee0a4d4f45a..530c6b7940b 100644 --- a/models/apis/elasticfilesystem/2015-02-01/api-2.json +++ b/models/apis/elasticfilesystem/2015-02-01/api-2.json @@ -205,7 +205,9 @@ "required":["CreationToken"], "members":{ "CreationToken":{"shape":"CreationToken"}, - "PerformanceMode":{"shape":"PerformanceMode"} + "PerformanceMode":{"shape":"PerformanceMode"}, + "Encrypted":{"shape":"Encrypted"}, + "KmsKeyId":{"shape":"KmsKeyId"} } }, "CreateMountTargetRequest":{ @@ -402,6 +404,7 @@ "NextMarker":{"shape":"Marker"} } }, + "Encrypted":{"type":"boolean"}, "ErrorCode":{ "type":"string", "min":1 @@ -442,7 +445,9 @@ "Name":{"shape":"TagValue"}, "NumberOfMountTargets":{"shape":"MountTargetCount"}, "SizeInBytes":{"shape":"FileSystemSize"}, - "PerformanceMode":{"shape":"PerformanceMode"} + "PerformanceMode":{"shape":"PerformanceMode"}, + "Encrypted":{"shape":"Encrypted"}, + "KmsKeyId":{"shape":"KmsKeyId"} } }, "FileSystemDescriptions":{ @@ -533,6 +538,11 @@ "error":{"httpStatusCode":409}, "exception":true }, + "KmsKeyId":{ + "type":"string", + "max":2048, + "min":1 + }, "LifeCycleState":{ "type":"string", "enum":[ diff --git a/models/apis/elasticfilesystem/2015-02-01/docs-2.json b/models/apis/elasticfilesystem/2015-02-01/docs-2.json index a116bafc208..eea383838a8 100644 --- a/models/apis/elasticfilesystem/2015-02-01/docs-2.json +++ b/models/apis/elasticfilesystem/2015-02-01/docs-2.json @@ -110,6 +110,13 @@ "refs": { } }, + "Encrypted": { + "base": null, + "refs": { + "CreateFileSystemRequest$Encrypted": "

A boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying a CreateFileSystemRequest$KmsKeyId for an existing AWS Key Management Service (AWS KMS) customer master key (CMK). If you don't specify a CMK, then the default CMK for Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted file system.

", + "FileSystemDescription$Encrypted": "

A boolean value that, if true, indicates that the file system is encrypted.

" + } + }, "ErrorCode": { "base": null, "refs": { @@ -242,6 +249,13 @@ "refs": { } }, + "KmsKeyId": { + "base": null, + "refs": { + "CreateFileSystemRequest$KmsKeyId": "

The id of the AWS KMS CMK that will be used to protect the encrypted file system. This parameter is only required if you want to use a non-default CMK. If this parameter is not specified, the default CMK for Amazon EFS is used. This id can be in one of the following formats:

Note that if the KmsKeyId is specified, the CreateFileSystemRequest$Encrypted parameter must be set to true.

", + "FileSystemDescription$KmsKeyId": "

The id of an AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the encrypted file system.

" + } + }, "LifeCycleState": { "base": null, "refs": { @@ -414,7 +428,7 @@ } }, "UnsupportedAvailabilityZone": { - "base": "

", + "base": "

", "refs": { } } diff --git a/models/apis/elasticfilesystem/2015-02-01/paginators-1.json b/models/apis/elasticfilesystem/2015-02-01/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/elasticfilesystem/2015-02-01/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json index 4d3ea63fe45..9825058bc8b 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json @@ -6,11 +6,29 @@ "protocol":"query", "serviceAbbreviation":"Elastic Load Balancing v2", "serviceFullName":"Elastic Load Balancing", + "serviceId":"Elastic Load Balancing v2", "signatureVersion":"v4", "uid":"elasticloadbalancingv2-2015-12-01", "xmlNamespace":"http://elasticloadbalancing.amazonaws.com/doc/2015-12-01/" }, "operations":{ + "AddListenerCertificates":{ + "name":"AddListenerCertificates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddListenerCertificatesInput"}, + "output":{ + "shape":"AddListenerCertificatesOutput", + "resultWrapper":"AddListenerCertificatesResult" + }, + "errors":[ + {"shape":"ListenerNotFoundException"}, + {"shape":"TooManyCertificatesException"}, + {"shape":"CertificateNotFoundException"} + ] + }, "AddTags":{ "name":"AddTags", "http":{ @@ -52,7 +70,8 @@ {"shape":"SSLPolicyNotFoundException"}, {"shape":"CertificateNotFoundException"}, {"shape":"UnsupportedProtocolException"}, - {"shape":"TooManyRegistrationsForTargetIdException"} + {"shape":"TooManyRegistrationsForTargetIdException"}, + {"shape":"TooManyTargetsException"} ] }, "CreateLoadBalancer":{ @@ -75,7 +94,10 @@ {"shape":"InvalidSecurityGroupException"}, {"shape":"InvalidSchemeException"}, {"shape":"TooManyTagsException"}, - {"shape":"DuplicateTagKeysException"} + {"shape":"DuplicateTagKeysException"}, + {"shape":"ResourceInUseException"}, + {"shape":"AllocationIdNotFoundException"}, + {"shape":"AvailabilityZoneNotSupportedException"} ] }, "CreateRule":{ @@ -94,10 +116,12 @@ {"shape":"TooManyTargetGroupsException"}, {"shape":"TooManyRulesException"}, {"shape":"TargetGroupAssociationLimitException"}, + {"shape":"IncompatibleProtocolsException"}, {"shape":"ListenerNotFoundException"}, {"shape":"TargetGroupNotFoundException"}, {"shape":"InvalidConfigurationRequestException"}, - {"shape":"TooManyRegistrationsForTargetIdException"} + {"shape":"TooManyRegistrationsForTargetIdException"}, + {"shape":"TooManyTargetsException"} ] }, "CreateTargetGroup":{ @@ -113,7 +137,8 @@ }, "errors":[ {"shape":"DuplicateTargetGroupNameException"}, - {"shape":"TooManyTargetGroupsException"} + {"shape":"TooManyTargetGroupsException"}, + {"shape":"InvalidConfigurationRequestException"} ] }, "DeleteListener":{ @@ -144,7 +169,8 @@ }, "errors":[ {"shape":"LoadBalancerNotFoundException"}, - {"shape":"OperationNotPermittedException"} + {"shape":"OperationNotPermittedException"}, + {"shape":"ResourceInUseException"} ] }, "DeleteRule":{ @@ -206,6 +232,21 @@ "resultWrapper":"DescribeAccountLimitsResult" } }, + "DescribeListenerCertificates":{ + "name":"DescribeListenerCertificates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeListenerCertificatesInput"}, + "output":{ + "shape":"DescribeListenerCertificatesOutput", + "resultWrapper":"DescribeListenerCertificatesResult" + }, + "errors":[ + {"shape":"ListenerNotFoundException"} + ] + }, "DescribeListeners":{ "name":"DescribeListeners", "http":{ @@ -372,7 +413,8 @@ {"shape":"CertificateNotFoundException"}, {"shape":"InvalidConfigurationRequestException"}, {"shape":"UnsupportedProtocolException"}, - {"shape":"TooManyRegistrationsForTargetIdException"} + {"shape":"TooManyRegistrationsForTargetIdException"}, + {"shape":"TooManyTargetsException"} ] }, "ModifyLoadBalancerAttributes":{ @@ -404,6 +446,7 @@ }, "errors":[ {"shape":"TargetGroupAssociationLimitException"}, + {"shape":"IncompatibleProtocolsException"}, {"shape":"RuleNotFoundException"}, {"shape":"OperationNotPermittedException"}, {"shape":"TooManyRegistrationsForTargetIdException"}, @@ -423,7 +466,8 @@ "resultWrapper":"ModifyTargetGroupResult" }, "errors":[ - {"shape":"TargetGroupNotFoundException"} + {"shape":"TargetGroupNotFoundException"}, + {"shape":"InvalidConfigurationRequestException"} ] }, "ModifyTargetGroupAttributes":{ @@ -438,7 +482,8 @@ "resultWrapper":"ModifyTargetGroupAttributesResult" }, "errors":[ - {"shape":"TargetGroupNotFoundException"} + {"shape":"TargetGroupNotFoundException"}, + {"shape":"InvalidConfigurationRequestException"} ] }, "RegisterTargets":{ @@ -459,6 +504,22 @@ {"shape":"TooManyRegistrationsForTargetIdException"} ] }, + "RemoveListenerCertificates":{ + "name":"RemoveListenerCertificates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveListenerCertificatesInput"}, + "output":{ + "shape":"RemoveListenerCertificatesOutput", + "resultWrapper":"RemoveListenerCertificatesResult" + }, + "errors":[ + {"shape":"ListenerNotFoundException"}, + {"shape":"OperationNotPermittedException"} + ] + }, "RemoveTags":{ "name":"RemoveTags", "http":{ @@ -544,7 +605,9 @@ {"shape":"LoadBalancerNotFoundException"}, {"shape":"InvalidConfigurationRequestException"}, {"shape":"SubnetNotFoundException"}, - {"shape":"InvalidSubnetException"} + {"shape":"InvalidSubnetException"}, + {"shape":"AllocationIdNotFoundException"}, + {"shape":"AvailabilityZoneNotSupportedException"} ] } }, @@ -568,6 +631,23 @@ "type":"list", "member":{"shape":"Action"} }, + "AddListenerCertificatesInput":{ + "type":"structure", + "required":[ + "ListenerArn", + "Certificates" + ], + "members":{ + "ListenerArn":{"shape":"ListenerArn"}, + "Certificates":{"shape":"CertificateList"} + } + }, + "AddListenerCertificatesOutput":{ + "type":"structure", + "members":{ + "Certificates":{"shape":"CertificateList"} + } + }, "AddTagsInput":{ "type":"structure", "required":[ @@ -584,13 +664,37 @@ "members":{ } }, + "AllocationId":{"type":"string"}, + "AllocationIdNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AllocationIdNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "AvailabilityZone":{ "type":"structure", "members":{ "ZoneName":{"shape":"ZoneName"}, - "SubnetId":{"shape":"SubnetId"} + "SubnetId":{"shape":"SubnetId"}, + "LoadBalancerAddresses":{"shape":"LoadBalancerAddresses"} } }, + "AvailabilityZoneNotSupportedException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AvailabilityZoneNotSupported", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "AvailabilityZones":{ "type":"list", "member":{"shape":"AvailabilityZone"} @@ -599,7 +703,8 @@ "Certificate":{ "type":"structure", "members":{ - "CertificateArn":{"shape":"CertificateArn"} + "CertificateArn":{"shape":"CertificateArn"}, + "IsDefault":{"shape":"Default"} } }, "CertificateArn":{"type":"string"}, @@ -660,16 +765,15 @@ }, "CreateLoadBalancerInput":{ "type":"structure", - "required":[ - "Name", - "Subnets" - ], + "required":["Name"], "members":{ "Name":{"shape":"LoadBalancerName"}, "Subnets":{"shape":"Subnets"}, + "SubnetMappings":{"shape":"SubnetMappings"}, "SecurityGroups":{"shape":"SecurityGroups"}, "Scheme":{"shape":"LoadBalancerSchemeEnum"}, "Tags":{"shape":"TagList"}, + "Type":{"shape":"LoadBalancerTypeEnum"}, "IpAddressType":{"shape":"IpAddressType"} } }, @@ -720,7 +824,8 @@ "HealthCheckTimeoutSeconds":{"shape":"HealthCheckTimeoutSeconds"}, "HealthyThresholdCount":{"shape":"HealthCheckThresholdCount"}, "UnhealthyThresholdCount":{"shape":"HealthCheckThresholdCount"}, - "Matcher":{"shape":"Matcher"} + "Matcher":{"shape":"Matcher"}, + "TargetType":{"shape":"TargetTypeEnum"} } }, "CreateTargetGroupOutput":{ @@ -731,6 +836,7 @@ }, "CreatedTime":{"type":"timestamp"}, "DNSName":{"type":"string"}, + "Default":{"type":"boolean"}, "DeleteListenerInput":{ "type":"structure", "required":["ListenerArn"], @@ -809,6 +915,22 @@ "NextMarker":{"shape":"Marker"} } }, + "DescribeListenerCertificatesInput":{ + "type":"structure", + "required":["ListenerArn"], + "members":{ + "ListenerArn":{"shape":"ListenerArn"}, + "Marker":{"shape":"Marker"}, + "PageSize":{"shape":"PageSize"} + } + }, + "DescribeListenerCertificatesOutput":{ + "type":"structure", + "members":{ + "Certificates":{"shape":"CertificateList"}, + "NextMarker":{"shape":"Marker"} + } + }, "DescribeListenersInput":{ "type":"structure", "members":{ @@ -1080,6 +1202,7 @@ }, "exception":true }, + "IpAddress":{"type":"string"}, "IpAddressType":{ "type":"string", "enum":[ @@ -1152,6 +1275,17 @@ "IpAddressType":{"shape":"IpAddressType"} } }, + "LoadBalancerAddress":{ + "type":"structure", + "members":{ + "IpAddress":{"shape":"IpAddress"}, + "AllocationId":{"shape":"AllocationId"} + } + }, + "LoadBalancerAddresses":{ + "type":"list", + "member":{"shape":"LoadBalancerAddress"} + }, "LoadBalancerArn":{"type":"string"}, "LoadBalancerArns":{ "type":"list", @@ -1213,12 +1347,16 @@ "enum":[ "active", "provisioning", + "active_impaired", "failed" ] }, "LoadBalancerTypeEnum":{ "type":"string", - "enum":["application"] + "enum":[ + "application", + "network" + ] }, "LoadBalancers":{ "type":"list", @@ -1363,7 +1501,8 @@ "type":"string", "enum":[ "HTTP", - "HTTPS" + "HTTPS", + "TCP" ] }, "RegisterTargetsInput":{ @@ -1382,6 +1521,22 @@ "members":{ } }, + "RemoveListenerCertificatesInput":{ + "type":"structure", + "required":[ + "ListenerArn", + "Certificates" + ], + "members":{ + "ListenerArn":{"shape":"ListenerArn"}, + "Certificates":{"shape":"CertificateList"} + } + }, + "RemoveListenerCertificatesOutput":{ + "type":"structure", + "members":{ + } + }, "RemoveTagsInput":{ "type":"structure", "required":[ @@ -1453,7 +1608,7 @@ }, "RulePriority":{ "type":"integer", - "max":99999, + "max":50000, "min":1 }, "RulePriorityList":{ @@ -1542,7 +1697,8 @@ ], "members":{ "LoadBalancerArn":{"shape":"LoadBalancerArn"}, - "Subnets":{"shape":"Subnets"} + "Subnets":{"shape":"Subnets"}, + "SubnetMappings":{"shape":"SubnetMappings"} } }, "SetSubnetsOutput":{ @@ -1577,6 +1733,17 @@ "String":{"type":"string"}, "StringValue":{"type":"string"}, "SubnetId":{"type":"string"}, + "SubnetMapping":{ + "type":"structure", + "members":{ + "SubnetId":{"shape":"SubnetId"}, + "AllocationId":{"shape":"AllocationId"} + } + }, + "SubnetMappings":{ + "type":"list", + "member":{"shape":"SubnetMapping"} + }, "SubnetNotFoundException":{ "type":"structure", "members":{ @@ -1637,7 +1804,8 @@ "required":["Id"], "members":{ "Id":{"shape":"TargetId"}, - "Port":{"shape":"Port"} + "Port":{"shape":"Port"}, + "AvailabilityZone":{"shape":"ZoneName"} } }, "TargetDescriptions":{ @@ -1660,7 +1828,8 @@ "UnhealthyThresholdCount":{"shape":"HealthCheckThresholdCount"}, "HealthCheckPath":{"shape":"Path"}, "Matcher":{"shape":"Matcher"}, - "LoadBalancerArns":{"shape":"LoadBalancerArns"} + "LoadBalancerArns":{"shape":"LoadBalancerArns"}, + "TargetType":{"shape":"TargetTypeEnum"} } }, "TargetGroupArn":{"type":"string"}, @@ -1748,6 +1917,7 @@ "Target.NotInUse", "Target.DeregistrationInProgress", "Target.InvalidState", + "Target.IpUnusable", "Elb.InternalError" ] }, @@ -1758,10 +1928,18 @@ "healthy", "unhealthy", "unused", - "draining" + "draining", + "unavailable" ] }, "TargetId":{"type":"string"}, + "TargetTypeEnum":{ + "type":"string", + "enum":[ + "instance", + "ip" + ] + }, "TooManyCertificatesException":{ "type":"structure", "members":{ diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json index 4c09965eb2a..3823173168b 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json @@ -1,38 +1,41 @@ { "version": "2.0", - "service": "Elastic Load Balancing

A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets.

Elastic Load Balancing supports two types of load balancers: Classic Load Balancers and Application Load Balancers. A Classic Load Balancer makes routing and load balancing decisions either at the transport layer (TCP/SSL) or the application layer (HTTP/HTTPS), and supports either EC2-Classic or a VPC. An Application Load Balancer makes routing and load balancing decisions at the application layer (HTTP/HTTPS), supports path-based routing, and can route requests to one or more ports on each EC2 instance or container instance in your virtual private cloud (VPC). For more information, see the Elastic Load Balancing User Guide.

This reference covers the 2015-12-01 API, which supports Application Load Balancers. The 2012-06-01 API supports Classic Load Balancers.

To get started, complete the following tasks:

  1. Create an Application Load Balancer using CreateLoadBalancer.

  2. Create a target group using CreateTargetGroup.

  3. Register targets for the target group using RegisterTargets.

  4. Create one or more listeners for your load balancer using CreateListener.

  5. (Optional) Create one or more rules for content routing based on URL using CreateRule.

To delete an Application Load Balancer and its related resources, complete the following tasks:

  1. Delete the load balancer using DeleteLoadBalancer.

  2. Delete the target group using DeleteTargetGroup.

All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds.

", + "service": "Elastic Load Balancing

A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets.

Elastic Load Balancing supports the following types of load balancers: Application Load Balancers, Network Load Balancers, and Classic Load Balancers.

An Application Load Balancer makes routing and load balancing decisions at the application layer (HTTP/HTTPS). A Network Load Balancer makes routing and load balancing decisions at the transport layer (TCP). Both Application Load Balancers and Network Load Balancers can route requests to one or more ports on each EC2 instance or container instance in your virtual private cloud (VPC).

A Classic Load Balancer makes routing and load balancing decisions either at the transport layer (TCP/SSL) or the application layer (HTTP/HTTPS), and supports either EC2-Classic or a VPC. For more information, see the Elastic Load Balancing User Guide.

This reference covers the 2015-12-01 API, which supports Application Load Balancers and Network Load Balancers. The 2012-06-01 API supports Classic Load Balancers.

To get started, complete the following tasks:

  1. Create a load balancer using CreateLoadBalancer.

  2. Create a target group using CreateTargetGroup.

  3. Register targets for the target group using RegisterTargets.

  4. Create one or more listeners for your load balancer using CreateListener.

To delete a load balancer and its related resources, complete the following tasks:

  1. Delete the load balancer using DeleteLoadBalancer.

  2. Delete the target group using DeleteTargetGroup.

All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds.

", "operations": { - "AddTags": "

Adds the specified tags to the specified resource. You can tag your Application Load Balancers and your target groups.

Each tag consists of a key and an optional value. If a resource already has a tag with the same key, AddTags updates its value.

To list the current tags for your resources, use DescribeTags. To remove tags from your resources, use RemoveTags.

", - "CreateListener": "

Creates a listener for the specified Application Load Balancer.

You can create up to 10 listeners per load balancer.

To update a listener, use ModifyListener. When you are finished with a listener, you can delete it using DeleteListener. If you are finished with both the listener and the load balancer, you can delete them both using DeleteLoadBalancer.

For more information, see Listeners for Your Application Load Balancers in the Application Load Balancers Guide.

", - "CreateLoadBalancer": "

Creates an Application Load Balancer.

When you create a load balancer, you can specify security groups, subnets, IP address type, and tags. Otherwise, you could do so later using SetSecurityGroups, SetSubnets, SetIpAddressType, and AddTags.

To create listeners for your load balancer, use CreateListener. To describe your current load balancers, see DescribeLoadBalancers. When you are finished with a load balancer, you can delete it using DeleteLoadBalancer.

You can create up to 20 load balancers per region per account. You can request an increase for the number of load balancers for your account. For more information, see Limits for Your Application Load Balancer in the Application Load Balancers Guide.

For more information, see Application Load Balancers in the Application Load Balancers Guide.

", - "CreateRule": "

Creates a rule for the specified listener.

Each rule can have one action and one condition. Rules are evaluated in priority order, from the lowest value to the highest value. When the condition for a rule is met, the specified action is taken. If no conditions are met, the default action for the default rule is taken. For more information, see Listener Rules in the Application Load Balancers Guide.

To view your current rules, use DescribeRules. To update a rule, use ModifyRule. To set the priorities of your rules, use SetRulePriorities. To delete a rule, use DeleteRule.

", - "CreateTargetGroup": "

Creates a target group.

To register targets with the target group, use RegisterTargets. To update the health check settings for the target group, use ModifyTargetGroup. To monitor the health of targets in the target group, use DescribeTargetHealth.

To route traffic to the targets in a target group, specify the target group in an action using CreateListener or CreateRule.

To delete a target group, use DeleteTargetGroup.

For more information, see Target Groups for Your Application Load Balancers in the Application Load Balancers Guide.

", + "AddListenerCertificates": "

Adds the specified certificate to the specified secure listener.

If the certificate was already added, the call is successful but the certificate is not added again.

To list the certificates for your listener, use DescribeListenerCertificates. To remove certificates from your listener, use RemoveListenerCertificates.

", + "AddTags": "

Adds the specified tags to the specified Elastic Load Balancing resource. You can tag your Application Load Balancers, Network Load Balancers, and your target groups.

Each tag consists of a key and an optional value. If a resource already has a tag with the same key, AddTags updates its value.

To list the current tags for your resources, use DescribeTags. To remove tags from your resources, use RemoveTags.

", + "CreateListener": "

Creates a listener for the specified Application Load Balancer or Network Load Balancer.

To update a listener, use ModifyListener. When you are finished with a listener, you can delete it using DeleteListener. If you are finished with both the listener and the load balancer, you can delete them both using DeleteLoadBalancer.

This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple listeners with the same settings, each call succeeds.

For more information, see Listeners for Your Application Load Balancers in the Application Load Balancers Guide and Listeners for Your Network Load Balancers in the Network Load Balancers Guide.

", + "CreateLoadBalancer": "

Creates an Application Load Balancer or a Network Load Balancer.

When you create a load balancer, you can specify security groups, subnets, IP address type, and tags. Otherwise, you could do so later using SetSecurityGroups, SetSubnets, SetIpAddressType, and AddTags.

To create listeners for your load balancer, use CreateListener. To describe your current load balancers, see DescribeLoadBalancers. When you are finished with a load balancer, you can delete it using DeleteLoadBalancer.

For limit information, see Limits for Your Application Load Balancer in the Application Load Balancers Guide and Limits for Your Network Load Balancer in the Network Load Balancers Guide.

This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple load balancers with the same settings, each call succeeds.

For more information, see Application Load Balancers in the Application Load Balancers Guide and Network Load Balancers in the Network Load Balancers Guide.

", + "CreateRule": "

Creates a rule for the specified listener. The listener must be associated with an Application Load Balancer.

Rules are evaluated in priority order, from the lowest value to the highest value. When the condition for a rule is met, the specified action is taken. If no conditions are met, the action for the default rule is taken. For more information, see Listener Rules in the Application Load Balancers Guide.

To view your current rules, use DescribeRules. To update a rule, use ModifyRule. To set the priorities of your rules, use SetRulePriorities. To delete a rule, use DeleteRule.

", + "CreateTargetGroup": "

Creates a target group.

To register targets with the target group, use RegisterTargets. To update the health check settings for the target group, use ModifyTargetGroup. To monitor the health of targets in the target group, use DescribeTargetHealth.

To route traffic to the targets in a target group, specify the target group in an action using CreateListener or CreateRule.

To delete a target group, use DeleteTargetGroup.

This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple target groups with the same settings, each call succeeds.

For more information, see Target Groups for Your Application Load Balancers in the Application Load Balancers Guide or Target Groups for Your Network Load Balancers in the Network Load Balancers Guide.

", "DeleteListener": "

Deletes the specified listener.

Alternatively, your listener is deleted when you delete the load balancer it is attached to using DeleteLoadBalancer.

", - "DeleteLoadBalancer": "

Deletes the specified Application Load Balancer and its attached listeners.

You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds.

Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them.

", + "DeleteLoadBalancer": "

Deletes the specified Application Load Balancer or Network Load Balancer and its attached listeners.

You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds.

Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them.

", "DeleteRule": "

Deletes the specified rule.

", "DeleteTargetGroup": "

Deletes the specified target group.

You can delete a target group if it is not referenced by any actions. Deleting a target group also deletes any associated health checks.

", "DeregisterTargets": "

Deregisters the specified targets from the specified target group. After the targets are deregistered, they no longer receive traffic from the load balancer.

", - "DescribeAccountLimits": "

Describes the current Elastic Load Balancing resource limits for your AWS account.

For more information, see Limits for Your Application Load Balancer in the Application Load Balancer Guide.

", - "DescribeListeners": "

Describes the specified listeners or the listeners for the specified Application Load Balancer. You must specify either a load balancer or one or more listeners.

", - "DescribeLoadBalancerAttributes": "

Describes the attributes for the specified Application Load Balancer.

", - "DescribeLoadBalancers": "

Describes the specified Application Load Balancers or all of your Application Load Balancers.

To describe the listeners for a load balancer, use DescribeListeners. To describe the attributes for a load balancer, use DescribeLoadBalancerAttributes.

", + "DescribeAccountLimits": "

Describes the current Elastic Load Balancing resource limits for your AWS account.

For more information, see Limits for Your Application Load Balancers in the Application Load Balancer Guide or Limits for Your Network Load Balancers in the Network Load Balancers Guide.

", + "DescribeListenerCertificates": "

Describes the certificates for the specified secure listener.

", + "DescribeListeners": "

Describes the specified listeners or the listeners for the specified Application Load Balancer or Network Load Balancer. You must specify either a load balancer or one or more listeners.

", + "DescribeLoadBalancerAttributes": "

Describes the attributes for the specified Application Load Balancer or Network Load Balancer.

", + "DescribeLoadBalancers": "

Describes the specified load balancers or all of your load balancers.

To describe the listeners for a load balancer, use DescribeListeners. To describe the attributes for a load balancer, use DescribeLoadBalancerAttributes.

", "DescribeRules": "

Describes the specified rules or the rules for the specified listener. You must specify either a listener or one or more rules.

", "DescribeSSLPolicies": "

Describes the specified policies or all policies used for SSL negotiation.

For more information, see Security Policies in the Application Load Balancers Guide.

", - "DescribeTags": "

Describes the tags for the specified resources. You can describe the tags for one or more Application Load Balancers and target groups.

", + "DescribeTags": "

Describes the tags for the specified resources. You can describe the tags for one or more Application Load Balancers, Network Load Balancers, and target groups.

", "DescribeTargetGroupAttributes": "

Describes the attributes for the specified target group.

", "DescribeTargetGroups": "

Describes the specified target groups or all of your target groups. By default, all target groups are described. Alternatively, you can specify one of the following to filter the results: the ARN of the load balancer, the names of one or more target groups, or the ARNs of one or more target groups.

To describe the targets for a target group, use DescribeTargetHealth. To describe the attributes of a target group, use DescribeTargetGroupAttributes.

", "DescribeTargetHealth": "

Describes the health of the specified targets or all of your targets.

", "ModifyListener": "

Modifies the specified properties of the specified listener.

Any properties that you do not specify retain their current values. However, changing the protocol from HTTPS to HTTP removes the security policy and SSL certificate properties. If you change the protocol from HTTP to HTTPS, you must add the security policy and server certificate.

", - "ModifyLoadBalancerAttributes": "

Modifies the specified attributes of the specified Application Load Balancer.

If any of the specified attributes can't be modified as requested, the call fails. Any existing attributes that you do not modify retain their current values.

", + "ModifyLoadBalancerAttributes": "

Modifies the specified attributes of the specified Application Load Balancer or Network Load Balancer.

If any of the specified attributes can't be modified as requested, the call fails. Any existing attributes that you do not modify retain their current values.

", "ModifyRule": "

Modifies the specified rule.

Any existing properties that you do not modify retain their current values.

To modify the default action, use ModifyListener.

", "ModifyTargetGroup": "

Modifies the health checks used when evaluating the health state of the targets in the specified target group.

To monitor the health of the targets, use DescribeTargetHealth.

", "ModifyTargetGroupAttributes": "

Modifies the specified attributes of the specified target group.

", - "RegisterTargets": "

Registers the specified targets with the specified target group.

By default, the load balancer routes requests to registered targets using the protocol and port number for the target group. Alternatively, you can override the port for a target when you register it.

The target must be in the virtual private cloud (VPC) that you specified for the target group. If the target is an EC2 instance, it must be in the running state when you register it.

To remove a target from a target group, use DeregisterTargets.

", - "RemoveTags": "

Removes the specified tags from the specified resource.

To list the current tags for your resources, use DescribeTags.

", - "SetIpAddressType": "

Sets the type of IP addresses used by the subnets of the specified Application Load Balancer.

", + "RegisterTargets": "

Registers the specified targets with the specified target group.

You can register targets by instance ID or by IP address. If the target is an EC2 instance, it must be in the running state when you register it.

By default, the load balancer routes requests to registered targets using the protocol and port for the target group. Alternatively, you can override the port for a target when you register it. You can register each EC2 instance or IP address with the same target group multiple times using different ports.

With a Network Load Balancer, you cannot register instances by instance ID if they have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of these types by IP address.

To remove a target from a target group, use DeregisterTargets.

", + "RemoveListenerCertificates": "

Removes the specified certificate from the specified secure listener.

You can't remove the default certificate for a listener. To replace the default certificate, call ModifyListener.

To list the certificates for your listener, use DescribeListenerCertificates.

", + "RemoveTags": "

Removes the specified tags from the specified Elastic Load Balancing resource.

To list the current tags for your resources, use DescribeTags.

", + "SetIpAddressType": "

Sets the type of IP addresses used by the subnets of the specified Application Load Balancer or Network Load Balancer.

Note that Network Load Balancers must use ipv4.

", "SetRulePriorities": "

Sets the priorities of the specified rules.

You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that you do not specify retain their current priority.

", - "SetSecurityGroups": "

Associates the specified security groups with the specified load balancer. The specified security groups override the previously associated security groups.

", - "SetSubnets": "

Enables the Availability Zone for the specified subnets for the specified load balancer. The specified subnets replace the previously enabled subnets.

" + "SetSecurityGroups": "

Associates the specified security groups with the specified Application Load Balancer. The specified security groups override the previously associated security groups.

Note that you can't specify a security group for a Network Load Balancer.

", + "SetSubnets": "

Enables the Availability Zone for the specified subnets for the specified Application Load Balancer. The specified subnets replace the previously enabled subnets.

Note that you can't change the subnets for a Network Load Balancer.

" }, "shapes": { "Action": { @@ -50,14 +53,24 @@ "Actions": { "base": null, "refs": { - "CreateListenerInput$DefaultActions": "

The default action for the listener.

", + "CreateListenerInput$DefaultActions": "

The default action for the listener. For Application Load Balancers, the protocol of the specified target group must be HTTP or HTTPS. For Network Load Balancers, the protocol of the specified target group must be TCP.

", "CreateRuleInput$Actions": "

An action. Each action has the type forward and specifies a target group.

", "Listener$DefaultActions": "

The default actions for the listener.

", - "ModifyListenerInput$DefaultActions": "

The default actions.

", - "ModifyRuleInput$Actions": "

The actions.

", + "ModifyListenerInput$DefaultActions": "

The default action. For Application Load Balancers, the protocol of the specified target group must be HTTP or HTTPS. For Network Load Balancers, the protocol of the specified target group must be TCP.

", + "ModifyRuleInput$Actions": "

The actions. The target group must use the HTTP or HTTPS protocol.

", "Rule$Actions": "

The actions.

" } }, + "AddListenerCertificatesInput": { + "base": null, + "refs": { + } + }, + "AddListenerCertificatesOutput": { + "base": null, + "refs": { + } + }, "AddTagsInput": { "base": null, "refs": { @@ -68,12 +81,29 @@ "refs": { } }, + "AllocationId": { + "base": null, + "refs": { + "LoadBalancerAddress$AllocationId": "

[Network Load Balancers] The allocation ID of the Elastic IP address.

", + "SubnetMapping$AllocationId": "

[Network Load Balancers] The allocation ID of the Elastic IP address.

" + } + }, + "AllocationIdNotFoundException": { + "base": "

The specified allocation ID does not exist.

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

Information about an Availability Zone.

", "refs": { "AvailabilityZones$member": null } }, + "AvailabilityZoneNotSupportedException": { + "base": "

The specified Availability Zone is not supported.

", + "refs": { + } + }, "AvailabilityZones": { "base": null, "refs": { @@ -88,7 +118,7 @@ } }, "Certificate": { - "base": "

Information about an SSL server certificate deployed on a load balancer.

", + "base": "

Information about an SSL server certificate.

", "refs": { "CertificateList$member": null } @@ -102,9 +132,13 @@ "CertificateList": { "base": null, "refs": { - "CreateListenerInput$Certificates": "

The SSL server certificate. You must provide exactly one certificate if the protocol is HTTPS.

", + "AddListenerCertificatesInput$Certificates": "

The certificate to add. You can specify one certificate per call.

", + "AddListenerCertificatesOutput$Certificates": "

Information about the certificates.

", + "CreateListenerInput$Certificates": "

[HTTPS listeners] The SSL server certificate. You must provide exactly one certificate.

", + "DescribeListenerCertificatesOutput$Certificates": "

Information about the certificates.

", "Listener$Certificates": "

The SSL server certificate. You must provide a certificate if the protocol is HTTPS.

", - "ModifyListenerInput$Certificates": "

The SSL server certificate.

" + "ModifyListenerInput$Certificates": "

The default SSL server certificate.

", + "RemoveListenerCertificatesInput$Certificates": "

The certificate to remove. You can specify one certificate per call.

" } }, "CertificateNotFoundException": { @@ -194,6 +228,12 @@ "LoadBalancer$DNSName": "

The public DNS name of the load balancer.

" } }, + "Default": { + "base": null, + "refs": { + "Certificate$IsDefault": "

Indicates whether the certificate is the default certificate.

" + } + }, "DeleteListenerInput": { "base": null, "refs": { @@ -254,6 +294,16 @@ "refs": { } }, + "DescribeListenerCertificatesInput": { + "base": null, + "refs": { + } + }, + "DescribeListenerCertificatesOutput": { + "base": null, + "refs": { + } + }, "DescribeListenersInput": { "base": null, "refs": { @@ -373,16 +423,16 @@ "HealthCheckIntervalSeconds": { "base": null, "refs": { - "CreateTargetGroupInput$HealthCheckIntervalSeconds": "

The approximate amount of time, in seconds, between health checks of an individual target. The default is 30 seconds.

", - "ModifyTargetGroupInput$HealthCheckIntervalSeconds": "

The approximate amount of time, in seconds, between health checks of an individual target.

", + "CreateTargetGroupInput$HealthCheckIntervalSeconds": "

The approximate amount of time, in seconds, between health checks of an individual target. For Application Load Balancers, the range is 5 to 300 seconds. For Network Load Balancers, the supported values are 10 or 30 seconds. The default is 30 seconds.

", + "ModifyTargetGroupInput$HealthCheckIntervalSeconds": "

The approximate amount of time, in seconds, between health checks of an individual target. For Application Load Balancers, the range is 5 to 300 seconds. For Network Load Balancers, the supported values are 10 or 30 seconds.

", "TargetGroup$HealthCheckIntervalSeconds": "

The approximate amount of time, in seconds, between health checks of an individual target.

" } }, "HealthCheckPort": { "base": null, "refs": { - "CreateTargetGroupInput$HealthCheckPort": "

The port the load balancer uses when performing health checks on targets. The default is traffic-port, which indicates the port on which each target receives traffic from the load balancer.

", - "ModifyTargetGroupInput$HealthCheckPort": "

The port to use to connect with the target.

", + "CreateTargetGroupInput$HealthCheckPort": "

The port the load balancer uses when performing health checks on targets. The default is traffic-port, which is the port on which each target receives traffic from the load balancer.

", + "ModifyTargetGroupInput$HealthCheckPort": "

The port the load balancer uses when performing health checks on targets.

", "TargetGroup$HealthCheckPort": "

The port to use to connect with the target.

", "TargetHealthDescription$HealthCheckPort": "

The port to use to connect with the target.

" } @@ -390,10 +440,10 @@ "HealthCheckThresholdCount": { "base": null, "refs": { - "CreateTargetGroupInput$HealthyThresholdCount": "

The number of consecutive health checks successes required before considering an unhealthy target healthy. The default is 5.

", - "CreateTargetGroupInput$UnhealthyThresholdCount": "

The number of consecutive health check failures required before considering a target unhealthy. The default is 2.

", + "CreateTargetGroupInput$HealthyThresholdCount": "

The number of consecutive health checks successes required before considering an unhealthy target healthy. For Application Load Balancers, the default is 5. For Network Load Balancers, the default is 3.

", + "CreateTargetGroupInput$UnhealthyThresholdCount": "

The number of consecutive health check failures required before considering a target unhealthy. For Application Load Balancers, the default is 2. For Network Load Balancers, this value must be the same as the healthy threshold count.

", "ModifyTargetGroupInput$HealthyThresholdCount": "

The number of consecutive health checks successes required before considering an unhealthy target healthy.

", - "ModifyTargetGroupInput$UnhealthyThresholdCount": "

The number of consecutive health check failures required before considering the target unhealthy.

", + "ModifyTargetGroupInput$UnhealthyThresholdCount": "

The number of consecutive health check failures required before considering the target unhealthy. For Network Load Balancers, this value must be the same as the healthy threshold count.

", "TargetGroup$HealthyThresholdCount": "

The number of consecutive health checks successes required before considering an unhealthy target healthy.

", "TargetGroup$UnhealthyThresholdCount": "

The number of consecutive health check failures required before considering the target unhealthy.

" } @@ -401,8 +451,8 @@ "HealthCheckTimeoutSeconds": { "base": null, "refs": { - "CreateTargetGroupInput$HealthCheckTimeoutSeconds": "

The amount of time, in seconds, during which no response from a target means a failed health check. The default is 5 seconds.

", - "ModifyTargetGroupInput$HealthCheckTimeoutSeconds": "

The amount of time, in seconds, during which no response means a failed health check.

", + "CreateTargetGroupInput$HealthCheckTimeoutSeconds": "

The amount of time, in seconds, during which no response from a target means a failed health check. For Application Load Balancers, the range is 2 to 60 seconds and the default is 5 seconds. For Network Load Balancers, this is 10 seconds for TCP and HTTPS health checks and 6 seconds for HTTP health checks.

", + "ModifyTargetGroupInput$HealthCheckTimeoutSeconds": "

[HTTP/HTTPS health checks] The amount of time, in seconds, during which no response means a failed health check.

", "TargetGroup$HealthCheckTimeoutSeconds": "

The amount of time, in seconds, during which no response means a failed health check.

" } }, @@ -414,7 +464,7 @@ "HttpCode": { "base": null, "refs": { - "Matcher$HttpCode": "

The HTTP codes. You can specify values between 200 and 499. The default value is 200. You can specify multiple values (for example, \"200,202\") or a range of values (for example, \"200-299\").

" + "Matcher$HttpCode": "

The HTTP codes.

For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values (for example, \"200,202\") or a range of values (for example, \"200-299\").

For Network Load Balancers, this is 200 to 399.

" } }, "IncompatibleProtocolsException": { @@ -443,14 +493,20 @@ } }, "InvalidTargetException": { - "base": "

The specified target does not exist or is not in the same VPC as the target group.

", + "base": "

The specified target does not exist, is not in the same VPC as the target group, or has an unsupported instance type.

", "refs": { } }, + "IpAddress": { + "base": null, + "refs": { + "LoadBalancerAddress$IpAddress": "

The static IP address.

" + } + }, "IpAddressType": { "base": null, "refs": { - "CreateLoadBalancerInput$IpAddressType": "

The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses). Internal load balancers must use ipv4.

", + "CreateLoadBalancerInput$IpAddressType": "

[Application Load Balancers] The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses). Internal load balancers must use ipv4.

", "LoadBalancer$IpAddressType": "

The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses).

", "SetIpAddressTypeInput$IpAddressType": "

The IP address type. The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses). Internal load balancers must use ipv4.

", "SetIpAddressTypeOutput$IpAddressType": "

The IP address type.

" @@ -489,12 +545,15 @@ "ListenerArn": { "base": null, "refs": { + "AddListenerCertificatesInput$ListenerArn": "

The Amazon Resource Name (ARN) of the listener.

", "CreateRuleInput$ListenerArn": "

The Amazon Resource Name (ARN) of the listener.

", "DeleteListenerInput$ListenerArn": "

The Amazon Resource Name (ARN) of the listener.

", + "DescribeListenerCertificatesInput$ListenerArn": "

The Amazon Resource Names (ARN) of the listener.

", "DescribeRulesInput$ListenerArn": "

The Amazon Resource Name (ARN) of the listener.

", "Listener$ListenerArn": "

The Amazon Resource Name (ARN) of the listener.

", "ListenerArns$member": null, - "ModifyListenerInput$ListenerArn": "

The Amazon Resource Name (ARN) of the listener.

" + "ModifyListenerInput$ListenerArn": "

The Amazon Resource Name (ARN) of the listener.

", + "RemoveListenerCertificatesInput$ListenerArn": "

The Amazon Resource Name (ARN) of the listener.

" } }, "ListenerArns": { @@ -522,6 +581,18 @@ "LoadBalancers$member": null } }, + "LoadBalancerAddress": { + "base": "

Information about a static IP address for a load balancer.

", + "refs": { + "LoadBalancerAddresses$member": null + } + }, + "LoadBalancerAddresses": { + "base": null, + "refs": { + "AvailabilityZone$LoadBalancerAddresses": "

[Network Load Balancers] The static IP address.

" + } + }, "LoadBalancerArn": { "base": null, "refs": { @@ -555,7 +626,7 @@ "LoadBalancerAttributeKey": { "base": null, "refs": { - "LoadBalancerAttribute$Key": "

The name of the attribute.

" + "LoadBalancerAttribute$Key": "

The name of the attribute.

" } }, "LoadBalancerAttributeValue": { @@ -613,6 +684,7 @@ "LoadBalancerTypeEnum": { "base": null, "refs": { + "CreateLoadBalancerInput$Type": "

The type of load balancer to create. The default is application.

", "LoadBalancer$Type": "

The type of load balancer.

" } }, @@ -628,6 +700,8 @@ "refs": { "DescribeAccountLimitsInput$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", "DescribeAccountLimitsOutput$NextMarker": "

The marker to use when requesting the next set of results. If there are no additional results, the string is empty.

", + "DescribeListenerCertificatesInput$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", + "DescribeListenerCertificatesOutput$NextMarker": "

The marker to use when requesting the next set of results. If there are no additional results, the string is empty.

", "DescribeListenersInput$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", "DescribeListenersOutput$NextMarker": "

The marker to use when requesting the next set of results. If there are no additional results, the string is empty.

", "DescribeLoadBalancersInput$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", @@ -643,8 +717,8 @@ "Matcher": { "base": "

Information to use when checking for a successful response from a target.

", "refs": { - "CreateTargetGroupInput$Matcher": "

The HTTP codes to use when checking for a successful response from a target. The default is 200.

", - "ModifyTargetGroupInput$Matcher": "

The HTTP codes to use when checking for a successful response from a target.

", + "CreateTargetGroupInput$Matcher": "

[HTTP/HTTPS health checks] The HTTP codes to use when checking for a successful response from a target.

", + "ModifyTargetGroupInput$Matcher": "

[HTTP/HTTPS health checks] The HTTP codes to use when checking for a successful response from a target.

", "TargetGroup$Matcher": "

The HTTP codes to use when checking for a successful response from a target.

" } }, @@ -707,7 +781,7 @@ "Name": { "base": null, "refs": { - "Limit$Name": "

The name of the limit. The possible values are:

" + "Limit$Name": "

The name of the limit. The possible values are:

" } }, "OperationNotPermittedException": { @@ -719,6 +793,7 @@ "base": null, "refs": { "DescribeAccountLimitsInput$PageSize": "

The maximum number of results to return with this call.

", + "DescribeListenerCertificatesInput$PageSize": "

The maximum number of results to return with this call.

", "DescribeListenersInput$PageSize": "

The maximum number of results to return with this call.

", "DescribeLoadBalancersInput$PageSize": "

The maximum number of results to return with this call.

", "DescribeRulesInput$PageSize": "

The maximum number of results to return with this call.

", @@ -729,8 +804,8 @@ "Path": { "base": null, "refs": { - "CreateTargetGroupInput$HealthCheckPath": "

The ping path that is the destination on the targets for health checks. The default is /.

", - "ModifyTargetGroupInput$HealthCheckPath": "

The ping path that is the destination for the health check request.

", + "CreateTargetGroupInput$HealthCheckPath": "

[HTTP/HTTPS health checks] The ping path that is the destination on the targets for health checks. The default is /.

", + "ModifyTargetGroupInput$HealthCheckPath": "

[HTTP/HTTPS health checks] The ping path that is the destination for the health check request.

", "TargetGroup$HealthCheckPath": "

The destination for the health check request.

" } }, @@ -753,12 +828,12 @@ "ProtocolEnum": { "base": null, "refs": { - "CreateListenerInput$Protocol": "

The protocol for connections from clients to the load balancer.

", - "CreateTargetGroupInput$Protocol": "

The protocol to use for routing traffic to the targets.

", - "CreateTargetGroupInput$HealthCheckProtocol": "

The protocol the load balancer uses when performing health checks on targets. The default is the HTTP protocol.

", + "CreateListenerInput$Protocol": "

The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocol is TCP.

", + "CreateTargetGroupInput$Protocol": "

The protocol to use for routing traffic to the targets. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocol is TCP.

", + "CreateTargetGroupInput$HealthCheckProtocol": "

The protocol the load balancer uses when performing health checks on targets. The TCP protocol is supported only if the protocol of the target group is TCP. For Application Load Balancers, the default is HTTP. For Network Load Balancers, the default is TCP.

", "Listener$Protocol": "

The protocol for connections from clients to the load balancer.

", - "ModifyListenerInput$Protocol": "

The protocol for connections from clients to the load balancer.

", - "ModifyTargetGroupInput$HealthCheckProtocol": "

The protocol to use to connect with the target.

", + "ModifyListenerInput$Protocol": "

The protocol for connections from clients to the load balancer. Application Load Balancers support HTTP and HTTPS and Network Load Balancers support TCP.

", + "ModifyTargetGroupInput$HealthCheckProtocol": "

The protocol the load balancer uses when performing health checks on targets. The TCP protocol is supported only if the protocol of the target group is TCP.

", "TargetGroup$Protocol": "

The protocol to use for routing traffic to the targets.

", "TargetGroup$HealthCheckProtocol": "

The protocol to use to connect with the target.

" } @@ -773,6 +848,16 @@ "refs": { } }, + "RemoveListenerCertificatesInput": { + "base": null, + "refs": { + } + }, + "RemoveListenerCertificatesOutput": { + "base": null, + "refs": { + } + }, "RemoveTagsInput": { "base": null, "refs": { @@ -834,7 +919,7 @@ "RuleConditionList": { "base": null, "refs": { - "CreateRuleInput$Conditions": "

A condition. Each condition specifies a field name and a single value.

If the field name is host-header, you can specify a single host name (for example, my.example.com). A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters. Note that you can include up to three wildcard characters.

If the field name is path-pattern, you can specify a single path pattern. A path pattern is case sensitive, can be up to 128 characters in length, and can contain any of the following characters. Note that you can include up to three wildcard characters.

", + "CreateRuleInput$Conditions": "

The conditions. Each condition specifies a field name and a single value.

If the field name is host-header, you can specify a single host name (for example, my.example.com). A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters. Note that you can include up to three wildcard characters.

If the field name is path-pattern, you can specify a single path pattern. A path pattern is case sensitive, can be up to 128 characters in length, and can contain any of the following characters. Note that you can include up to three wildcard characters.

", "ModifyRuleInput$Conditions": "

The conditions.

", "Rule$Conditions": "

The conditions.

" } @@ -886,7 +971,7 @@ "SecurityGroups": { "base": null, "refs": { - "CreateLoadBalancerInput$SecurityGroups": "

The IDs of the security groups to assign to the load balancer.

", + "CreateLoadBalancerInput$SecurityGroups": "

[Application Load Balancers] The IDs of the security groups to assign to the load balancer.

", "LoadBalancer$SecurityGroups": "

The IDs of the security groups for the load balancer.

", "SetSecurityGroupsInput$SecurityGroups": "

The IDs of the security groups.

", "SetSecurityGroupsOutput$SecurityGroupIds": "

The IDs of the security groups associated with the load balancer.

" @@ -947,7 +1032,7 @@ "SslPolicyName": { "base": null, "refs": { - "CreateListenerInput$SslPolicy": "

The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy.

", + "CreateListenerInput$SslPolicy": "

[HTTPS listeners] The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy.

", "Listener$SslPolicy": "

The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy.

", "ModifyListenerInput$SslPolicy": "

The security policy that defines which protocols and ciphers are supported. For more information, see Security Policies in the Application Load Balancers Guide.

", "SslPolicy$Name": "

The name of the policy.

", @@ -994,9 +1079,23 @@ "base": null, "refs": { "AvailabilityZone$SubnetId": "

The ID of the subnet.

", + "SubnetMapping$SubnetId": "

The ID of the subnet.

", "Subnets$member": null } }, + "SubnetMapping": { + "base": "

Information about a subnet mapping.

", + "refs": { + "SubnetMappings$member": null + } + }, + "SubnetMappings": { + "base": null, + "refs": { + "CreateLoadBalancerInput$SubnetMappings": "

The IDs of the subnets to attach to the load balancer. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings.

[Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.

[Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet.

", + "SetSubnetsInput$SubnetMappings": "

The IDs of the subnets. You must specify subnets from at least two Availability Zones. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings.

You cannot specify Elastic IP addresses for your subnets.

" + } + }, "SubnetNotFoundException": { "base": "

The specified subnet does not exist.

", "refs": { @@ -1005,8 +1104,8 @@ "Subnets": { "base": null, "refs": { - "CreateLoadBalancerInput$Subnets": "

The IDs of the subnets to attach to the load balancer. You can specify only one subnet per Availability Zone. You must specify subnets from at least two Availability Zones.

", - "SetSubnetsInput$Subnets": "

The IDs of the subnets. You must specify at least two subnets. You can add only one subnet per Availability Zone.

" + "CreateLoadBalancerInput$Subnets": "

The IDs of the subnets to attach to the load balancer. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings.

[Application Load Balancers] You must specify subnets from at least two Availability Zones.

[Network Load Balancers] You can specify subnets from one or more Availability Zones.

", + "SetSubnetsInput$Subnets": "

The IDs of the subnets. You must specify subnets from at least two Availability Zones. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings.

" } }, "Tag": { @@ -1066,7 +1165,7 @@ "refs": { "DeregisterTargetsInput$Targets": "

The targets. If you specified a port override when you registered a target, you must specify both the target ID and the port when you deregister it.

", "DescribeTargetHealthInput$Targets": "

The targets.

", - "RegisterTargetsInput$Targets": "

The targets. The default port for a target is the port for the target group. You can specify a port override. If a target is already registered, you can register it again using a different port.

" + "RegisterTargetsInput$Targets": "

The targets.

" } }, "TargetGroup": { @@ -1110,7 +1209,7 @@ "TargetGroupAttributeKey": { "base": null, "refs": { - "TargetGroupAttribute$Key": "

The name of the attribute.

" + "TargetGroupAttribute$Key": "

The name of the attribute.

" } }, "TargetGroupAttributeValue": { @@ -1175,7 +1274,7 @@ "TargetHealthReasonEnum": { "base": null, "refs": { - "TargetHealth$Reason": "

The reason code. If the target state is healthy, a reason code is not provided.

If the target state is initial, the reason code can be one of the following values:

If the target state is unhealthy, the reason code can be one of the following values:

If the target state is unused, the reason code can be one of the following values:

If the target state is draining, the reason code can be the following value:

" + "TargetHealth$Reason": "

The reason code. If the target state is healthy, a reason code is not provided.

If the target state is initial, the reason code can be one of the following values:

If the target state is unhealthy, the reason code can be one of the following values:

If the target state is unused, the reason code can be one of the following values:

If the target state is draining, the reason code can be the following value:

" } }, "TargetHealthStateEnum": { @@ -1187,11 +1286,18 @@ "TargetId": { "base": null, "refs": { - "TargetDescription$Id": "

The ID of the target.

" + "TargetDescription$Id": "

The ID of the target. If the target type of the target group is instance, specify an instance ID. If the target type is ip, specify an IP address.

" + } + }, + "TargetTypeEnum": { + "base": null, + "refs": { + "CreateTargetGroupInput$TargetType": "

The type of target that you must specify when registering targets with this target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address). The default is instance. Note that you can't specify targets for a target group using both instance IDs and IP addresses.

If the target type is ip, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can't specify publicly routable IP addresses.

", + "TargetGroup$TargetType": "

The type of target that you must specify when registering targets with this target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address).

" } }, "TooManyCertificatesException": { - "base": "

You've reached the limit on the number of certificates per listener.

", + "base": "

You've reached the limit on the number of certificates per load balancer.

", "refs": { } }, @@ -1246,7 +1352,8 @@ "ZoneName": { "base": null, "refs": { - "AvailabilityZone$ZoneName": "

The name of the Availability Zone.

" + "AvailabilityZone$ZoneName": "

The name of the Availability Zone.

", + "TargetDescription$AvailabilityZone": "

An Availability Zone or all. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer.

This parameter is not supported if the target type of the target group is instance. If the IP address is in a subnet of the VPC for the target group, the Availability Zone is automatically detected and this parameter is optional. If the IP address is outside the VPC, this parameter is required.

With an Application Load Balancer, if the IP address is outside the VPC for the target group, the only supported value is all.

" } } } diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/waiters-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/waiters-2.json index b4e85719c60..9f3d77d828f 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/waiters-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/waiters-2.json @@ -59,6 +59,42 @@ "state": "success" } ] + }, + "TargetInService":{ + "delay":15, + "maxAttempts":40, + "operation":"DescribeTargetHealth", + "acceptors":[ + { + "argument":"TargetHealthDescriptions[].TargetHealth.State", + "expected":"healthy", + "matcher":"pathAll", + "state":"success" + }, + { + "matcher": "error", + "expected": "InvalidInstance", + "state": "retry" + } + ] + }, + "TargetDeregistered": { + "delay": 15, + "maxAttempts": 40, + "operation": "DescribeTargetHealth", + "acceptors": [ + { + "matcher": "error", + "expected": "InvalidTarget", + "state": "success" + }, + { + "argument":"TargetHealthDescriptions[].TargetHealth.State", + "expected":"unused", + "matcher":"pathAll", + "state":"success" + } + ] } } } diff --git a/models/apis/elasticmapreduce/2009-03-31/api-2.json b/models/apis/elasticmapreduce/2009-03-31/api-2.json index d8e03048f1c..ae9511c48d4 100644 --- a/models/apis/elasticmapreduce/2009-03-31/api-2.json +++ b/models/apis/elasticmapreduce/2009-03-31/api-2.json @@ -599,7 +599,11 @@ "Configurations":{"shape":"ConfigurationList"}, "SecurityConfiguration":{"shape":"XmlString"}, "AutoScalingRole":{"shape":"XmlString"}, - "ScaleDownBehavior":{"shape":"ScaleDownBehavior"} + "ScaleDownBehavior":{"shape":"ScaleDownBehavior"}, + "CustomAmiId":{"shape":"XmlStringMaxLen256"}, + "EbsRootVolumeSize":{"shape":"Integer"}, + "RepoUpgradeOnBoot":{"shape":"RepoUpgradeOnBoot"}, + "KerberosAttributes":{"shape":"KerberosAttributes"} } }, "ClusterId":{"type":"string"}, @@ -628,6 +632,7 @@ "INTERNAL_ERROR", "VALIDATION_ERROR", "INSTANCE_FAILURE", + "INSTANCE_FLEET_TIMEOUT", "BOOTSTRAP_FAILURE", "USER_REQUEST", "STEP_FAILURE", @@ -1412,6 +1417,20 @@ "HadoopVersion":{"shape":"XmlStringMaxLen256"} } }, + "KerberosAttributes":{ + "type":"structure", + "required":[ + "Realm", + "KdcAdminPassword" + ], + "members":{ + "Realm":{"shape":"XmlStringMaxLen256"}, + "KdcAdminPassword":{"shape":"XmlStringMaxLen256"}, + "CrossRealmTrustPrincipalPassword":{"shape":"XmlStringMaxLen256"}, + "ADDomainJoinUser":{"shape":"XmlStringMaxLen256"}, + "ADDomainJoinPassword":{"shape":"XmlStringMaxLen256"} + } + }, "KeyValue":{ "type":"structure", "members":{ @@ -1639,6 +1658,13 @@ "members":{ } }, + "RepoUpgradeOnBoot":{ + "type":"string", + "enum":[ + "SECURITY", + "NONE" + ] + }, "ResourceId":{"type":"string"}, "RunJobFlowInput":{ "type":"structure", @@ -1665,7 +1691,11 @@ "Tags":{"shape":"TagList"}, "SecurityConfiguration":{"shape":"XmlString"}, "AutoScalingRole":{"shape":"XmlString"}, - "ScaleDownBehavior":{"shape":"ScaleDownBehavior"} + "ScaleDownBehavior":{"shape":"ScaleDownBehavior"}, + "CustomAmiId":{"shape":"XmlStringMaxLen256"}, + "EbsRootVolumeSize":{"shape":"Integer"}, + "RepoUpgradeOnBoot":{"shape":"RepoUpgradeOnBoot"}, + "KerberosAttributes":{"shape":"KerberosAttributes"} } }, "RunJobFlowOutput":{ diff --git a/models/apis/elasticmapreduce/2009-03-31/docs-2.json b/models/apis/elasticmapreduce/2009-03-31/docs-2.json index 7fbc4ebda9a..b677b13aa61 100644 --- a/models/apis/elasticmapreduce/2009-03-31/docs-2.json +++ b/models/apis/elasticmapreduce/2009-03-31/docs-2.json @@ -4,8 +4,8 @@ "operations": { "AddInstanceFleet": "

Adds an instance fleet to a running cluster.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x.

", "AddInstanceGroups": "

Adds one or more instance groups to a running cluster.

", - "AddJobFlowSteps": "

AddJobFlowSteps adds new steps to a running cluster. A maximum of 256 steps are allowed in each job flow.

If your cluster is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using SSH to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop. For more information on how to do this, see Add More than 256 Steps to a Cluster in the Amazon EMR Management Guide.

A step specifies the location of a JAR file stored either on the master node of the cluster or in Amazon S3. Each step is performed by the main function of the main class of the JAR file. The main class can be specified either in the manifest of the JAR or by using the MainFunction parameter of the step.

Amazon EMR executes each step in the order listed. For a step to be considered complete, the main function must exit with a zero exit code and all Hadoop jobs started while the step was running must have completed and run successfully.

You can only add steps to a cluster that is in one of the following states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING.

", - "AddTags": "

Adds tags to an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tagging Amazon EMR Resources.

", + "AddJobFlowSteps": "

AddJobFlowSteps adds new steps to a running cluster. A maximum of 256 steps are allowed in each job flow.

If your cluster is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using SSH to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop. For more information on how to do this, see Add More than 256 Steps to a Cluster in the Amazon EMR Management Guide.

A step specifies the location of a JAR file stored either on the master node of the cluster or in Amazon S3. Each step is performed by the main function of the main class of the JAR file. The main class can be specified either in the manifest of the JAR or by using the MainFunction parameter of the step.

Amazon EMR executes each step in the order listed. For a step to be considered complete, the main function must exit with a zero exit code and all Hadoop jobs started while the step was running must have completed and run successfully.

You can only add steps to a cluster that is in one of the following states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING.

", + "AddTags": "

Adds tags to an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tag Clusters.

", "CancelSteps": "

Cancels a pending step or steps in a running cluster. Available only in Amazon EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous; it does not guarantee a step will be canceled, even if the request is successfully submitted. You can only cancel steps that are in a PENDING state.

", "CreateSecurityConfiguration": "

Creates a security configuration, which is stored in the service and can be specified when a cluster is created.

", "DeleteSecurityConfiguration": "

Deletes a security configuration.

", @@ -17,15 +17,15 @@ "ListClusters": "

Provides the status of all clusters visible to this AWS account. Allows you to filter the list of clusters based on certain criteria; for example, filtering by cluster creation date and time or by status. This call returns a maximum of 50 clusters per call, but returns a marker to track the paging of the cluster list across multiple ListClusters calls.

", "ListInstanceFleets": "

Lists all available details about the instance fleets in a cluster.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.

", "ListInstanceGroups": "

Provides all available details about the instance groups in a cluster.

", - "ListInstances": "

Provides information about the cluster instances that Amazon EMR provisions on behalf of a user when it creates the cluster. For example, this operation indicates when the EC2 instances reach the Ready state, when instances become available to Amazon EMR to use for jobs, and the IP addresses for cluster instances, etc.

", + "ListInstances": "

Provides information for all active EC2 instances and EC2 instances terminated in the last 30 days, up to a maximum of 2,000. EC2 instances in any of the following states are considered active: AWAITING_FULFILLMENT, PROVISIONING, BOOTSTRAPPING, RUNNING.

", "ListSecurityConfigurations": "

Lists all the security configurations visible to this account, providing their creation dates and times, and their names. This call returns a maximum of 50 clusters per call, but returns a marker to track the paging of the cluster list across multiple ListSecurityConfigurations calls.

", "ListSteps": "

Provides a list of steps for the cluster in reverse order unless you specify stepIds with the request.

", "ModifyInstanceFleet": "

Modifies the target On-Demand and target Spot capacities for the instance fleet with the specified InstanceFleetID within the cluster specified using ClusterID. The call either succeeds or fails atomically.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.

", "ModifyInstanceGroups": "

ModifyInstanceGroups modifies the number of nodes and configuration settings of an instance group. The input parameters include the new target instance count for the group and the instance group ID. The call will either succeed or fail atomically.

", "PutAutoScalingPolicy": "

Creates or updates an automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric.

", "RemoveAutoScalingPolicy": "

Removes an automatic scaling policy from a specified instance group within an EMR cluster.

", - "RemoveTags": "

Removes tags from an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tagging Amazon EMR Resources.

The following example removes the stack tag with value Prod from a cluster:

", - "RunJobFlow": "

RunJobFlow creates and starts running a new cluster (job flow). The cluster runs the steps specified. After the steps complete, the cluster stops and the HDFS partition is lost. To prevent loss of data, configure the last step of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the cluster transitions to the WAITING state rather than shutting down after the steps have completed.

For additional protection, you can set the JobFlowInstancesConfig TerminationProtected parameter to TRUE to lock the cluster and prevent it from being terminated by API call, user intervention, or in the event of a job flow error.

A maximum of 256 steps are allowed in each job flow.

If your cluster is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using the SSH shell to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop. For more information on how to do this, see Add More than 256 Steps to a Cluster in the Amazon EMR Management Guide.

For long running clusters, we recommend that you periodically store your results.

The instance fleets configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain InstanceFleets parameters or InstanceGroups parameters, but not both.

", + "RemoveTags": "

Removes tags from an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tag Clusters.

The following example removes the stack tag with value Prod from a cluster:

", + "RunJobFlow": "

RunJobFlow creates and starts running a new cluster (job flow). The cluster runs the steps specified. After the steps complete, the cluster stops and the HDFS partition is lost. To prevent loss of data, configure the last step of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the cluster transitions to the WAITING state rather than shutting down after the steps have completed.

For additional protection, you can set the JobFlowInstancesConfig TerminationProtected parameter to TRUE to lock the cluster and prevent it from being terminated by API call, user intervention, or in the event of a job flow error.

A maximum of 256 steps are allowed in each job flow.

If your cluster is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using the SSH shell to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop. For more information on how to do this, see Add More than 256 Steps to a Cluster in the Amazon EMR Management Guide.

For long running clusters, we recommend that you periodically store your results.

The instance fleets configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain InstanceFleets parameters or InstanceGroups parameters, but not both.

", "SetTerminationProtection": "

SetTerminationProtection locks a cluster (job flow) so the EC2 instances in the cluster cannot be terminated by user intervention, an API call, or in the event of a job-flow error. The cluster still terminates upon successful completion of the job flow. Calling SetTerminationProtection on a cluster is similar to calling the Amazon EC2 DisableAPITermination API on all EC2 instances in a cluster.

SetTerminationProtection is used to prevent accidental termination of a cluster and to ensure that in the event of an error, the instances persist so that you can recover any data stored in their ephemeral instance storage.

To terminate a cluster that has been locked by setting SetTerminationProtection to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection in which you set the value to false.

For more information, seeManaging Cluster Termination in the Amazon EMR Management Guide.

", "SetVisibleToAllUsers": "

Sets whether all AWS Identity and Access Management (IAM) users under your account can access the specified clusters (job flows). This action works on running clusters. You can also set the visibility of a cluster when you launch it using the VisibleToAllUsers parameter of RunJobFlow. The SetVisibleToAllUsers action can be called only by an IAM user who created the cluster or the AWS account that owns the cluster.

", "TerminateJobFlows": "

TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow is shut down, any step not yet completed is canceled and the EC2 instances on which the cluster is running are stopped. Any log files not already saved are uploaded to Amazon S3 if a LogUri was specified when the cluster was created.

The maximum number of clusters allowed is 10. The call to TerminateJobFlows is asynchronous. Depending on the configuration of the cluster, it may take up to 1-5 minutes for the cluster to completely terminate and release allocated resources, such as Amazon EC2 instances.

" @@ -82,11 +82,11 @@ "AdjustmentType": { "base": null, "refs": { - "SimpleScalingPolicyConfiguration$AdjustmentType": "

The way in which EC2 instances are added (if ScalingAdjustment is a positive number) or terminated (if ScalingAdjustment is a negative number) each time the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY indicates that the EC2 instance count increments or decrements by ScalingAdjustment, which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates the instance count increments or decrements by the percentage specified by ScalingAdjustment, which should be expressed as a decimal. For example, 0.20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY indicates the scaling activity results in an instance group with the number of EC2 instances specified by ScalingAdjustment, which should be expressed as a positive integer.

" + "SimpleScalingPolicyConfiguration$AdjustmentType": "

The way in which EC2 instances are added (if ScalingAdjustment is a positive number) or terminated (if ScalingAdjustment is a negative number) each time the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY indicates that the EC2 instance count increments or decrements by ScalingAdjustment, which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates the instance count increments or decrements by the percentage specified by ScalingAdjustment, which should be expressed as an integer. For example, 20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY indicates the scaling activity results in an instance group with the number of EC2 instances specified by ScalingAdjustment, which should be expressed as a positive integer.

" } }, "Application": { - "base": "

An application is any Amazon or third-party software that you can add to the cluster. This structure contains a list of strings that indicates the software to use with the cluster and accepts a user argument list. Amazon EMR accepts and forwards the argument list to the corresponding installation script as bootstrap action argument. For more information, see Using the MapR Distribution for Hadoop. Currently supported values are:

In Amazon EMR releases 4.0 and greater, the only accepted parameter is the application name. To pass arguments to applications, you supply a configuration for each application.

", + "base": "

An application is any Amazon or third-party software that you can add to the cluster. This structure contains a list of strings that indicates the software to use with the cluster and accepts a user argument list. Amazon EMR accepts and forwards the argument list to the corresponding installation script as bootstrap action argument. For more information, see Using the MapR Distribution for Hadoop. Currently supported values are:

In Amazon EMR releases 4.x and later, the only accepted parameter is the application name. To pass arguments to applications, you supply a configuration for each application.

", "refs": { "ApplicationList$member": null } @@ -95,7 +95,7 @@ "base": null, "refs": { "Cluster$Applications": "

The applications installed on this cluster.

", - "RunJobFlowInput$Applications": "

Amazon EMR releases 4.x or later.

A list of applications for the cluster. Valid values are: \"Hadoop\", \"Hive\", \"Mahout\", \"Pig\", and \"Spark.\" They are case insensitive.

" + "RunJobFlowInput$Applications": "

For Amazon EMR releases 4.0 and later. A list of applications for the cluster. Valid values are: \"Hadoop\", \"Hive\", \"Mahout\", \"Pig\", and \"Spark.\" They are case insensitive.

" } }, "AutoScalingPolicy": { @@ -321,13 +321,13 @@ "ConfigurationList": { "base": null, "refs": { - "Cluster$Configurations": "

Amazon EMR releases 4.x or later.

The list of Configurations supplied to the EMR cluster.

", + "Cluster$Configurations": "

Applies only to Amazon EMR releases 4.x and later. The list of Configurations supplied to the EMR cluster.

", "Configuration$Configurations": "

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

", "InstanceGroup$Configurations": "

Amazon EMR releases 4.x or later.

The list of configurations supplied for an EMR cluster instance group. You can specify a separate configuration for each instance group (master, core, and task).

", "InstanceGroupConfig$Configurations": "

Amazon EMR releases 4.x or later.

The list of configurations supplied for an EMR cluster instance group. You can specify a separate configuration for each instance group (master, core, and task).

", "InstanceTypeConfig$Configurations": "

A configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster.

", "InstanceTypeSpecification$Configurations": "

A configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software bundled with Amazon EMR.

", - "RunJobFlowInput$Configurations": "

Amazon EMR releases 4.x or later.

The list of configurations supplied for the EMR cluster you are creating.

" + "RunJobFlowInput$Configurations": "

For Amazon EMR releases 4.0 and later. The list of configurations supplied for the EMR cluster you are creating.

" } }, "CreateSecurityConfigurationInput": { @@ -586,7 +586,7 @@ "InstanceFleetState": { "base": null, "refs": { - "InstanceFleetStatus$State": "

A code representing the instance fleet status.

" + "InstanceFleetStatus$State": "

A code representing the instance fleet status.

" } }, "InstanceFleetStateChangeReason": { @@ -840,6 +840,7 @@ "CloudWatchAlarmDefinition$EvaluationPeriods": "

The number of periods, expressed in seconds using Period, during which the alarm condition must exist before the alarm triggers automatic scaling activity. The default value is 1.

", "CloudWatchAlarmDefinition$Period": "

The period, in seconds, over which the statistic is applied. EMR CloudWatch metrics are emitted every five minutes (300 seconds), so if an EMR CloudWatch metric is specified, specify 300.

", "Cluster$NormalizedInstanceHours": "

An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

", + "Cluster$EbsRootVolumeSize": "

The size, in GiB, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.

", "ClusterSummary$NormalizedInstanceHours": "

An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

", "EbsBlockDeviceConfig$VolumesPerInstance": "

Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group

", "InstanceGroup$RequestedInstanceCount": "

The target number of instances for the instance group.

", @@ -852,10 +853,11 @@ "JobFlowInstancesConfig$InstanceCount": "

The number of EC2 instances in the cluster.

", "JobFlowInstancesDetail$InstanceCount": "

The number of Amazon EC2 instances in the cluster. If the value is 1, the same instance serves as both the master and slave node. If the value is greater than 1, one instance is the master node and all others are slave nodes.

", "JobFlowInstancesDetail$NormalizedInstanceHours": "

An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour that an m1.small runs. Larger instances are weighted more, so an Amazon EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

", + "RunJobFlowInput$EbsRootVolumeSize": "

The size, in GiB, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.

", "ScalingConstraints$MinCapacity": "

The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink. Scale-in activities will not terminate instances below this boundary.

", "ScalingConstraints$MaxCapacity": "

The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow. Scale-out activities will not add instances beyond this boundary.

", "ShrinkPolicy$DecommissionTimeout": "

The desired timeout for decommissioning an instance. Overrides the default YARN decommissioning timeout.

", - "SimpleScalingPolicyConfiguration$ScalingAdjustment": "

The amount by which to scale in or scale out, based on the specified AdjustmentType. A positive value adds to the instance group's EC2 instance count while a negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY, the number should only be a positive integer. If AdjustmentType is set to PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as a decimal. For example, -0.20 indicates a decrease in 20% increments of cluster capacity.

", + "SimpleScalingPolicyConfiguration$ScalingAdjustment": "

The amount by which to scale in or scale out, based on the specified AdjustmentType. A positive value adds to the instance group's EC2 instance count while a negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY, the number should only be a positive integer. If AdjustmentType is set to PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as an integer. For example, -20 indicates a decrease in 20% increments of cluster capacity.

", "SimpleScalingPolicyConfiguration$CoolDown": "

The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start. The default value is 0.

", "VolumeSpecification$Iops": "

The number of I/O operations per second (IOPS) that the volume supports.

", "VolumeSpecification$SizeInGB": "

The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.

" @@ -919,6 +921,13 @@ "JobFlowDetail$Instances": "

Describes the Amazon EC2 instances of the job flow.

" } }, + "KerberosAttributes": { + "base": "

Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see Use Kerberos Authentication in the EMR Management Guide.

", + "refs": { + "Cluster$KerberosAttributes": "

Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see Use Kerberos Authentication in the EMR Management Guide.

", + "RunJobFlowInput$KerberosAttributes": "

Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see Use Kerberos Authentication in the EMR Management Guide.

" + } + }, "KeyValue": { "base": "

A key value pair.

", "refs": { @@ -1055,14 +1064,14 @@ "NewSupportedProductsList": { "base": null, "refs": { - "RunJobFlowInput$NewSupportedProducts": "

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and greater, use Applications.

A list of strings that indicates third-party software to use with the job flow that accepts a user argument list. EMR accepts and forwards the argument list to the corresponding installation script as bootstrap action arguments. For more information, see \"Launch a Job Flow on the MapR Distribution for Hadoop\" in the Amazon EMR Developer Guide. Supported values are:

" + "RunJobFlowInput$NewSupportedProducts": "

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later, use Applications.

A list of strings that indicates third-party software to use with the job flow that accepts a user argument list. EMR accepts and forwards the argument list to the corresponding installation script as bootstrap action arguments. For more information, see \"Launch a Job Flow on the MapR Distribution for Hadoop\" in the Amazon EMR Developer Guide. Supported values are:

" } }, "NonNegativeDouble": { "base": null, "refs": { "CloudWatchAlarmDefinition$Threshold": "

The value against which the specified statistic is compared.

", - "InstanceTypeConfig$BidPriceAsPercentageOfOnDemandPrice": "

The bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by InstanceType. Expressed as a number between 0 and 1000 (for example, 20 specifies 20%). If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.

", + "InstanceTypeConfig$BidPriceAsPercentageOfOnDemandPrice": "

The bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by InstanceType. Expressed as a number (for example, 20 specifies 20%). If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.

", "InstanceTypeSpecification$BidPriceAsPercentageOfOnDemandPrice": "

The bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by InstanceType. Expressed as a number (for example, 20 specifies 20%).

" } }, @@ -1103,6 +1112,13 @@ "refs": { } }, + "RepoUpgradeOnBoot": { + "base": null, + "refs": { + "Cluster$RepoUpgradeOnBoot": "

Applies only when CustomAmiID is used. Specifies the type of updates that are applied from the Amazon Linux AMI package repositories when an instance boots using the AMI.

", + "RunJobFlowInput$RepoUpgradeOnBoot": "

Applies only when CustomAmiID is used. Specifies which updates from the Amazon Linux AMI package repositories to apply automatically when the instance boots using the AMI. If omitted, the default is SECURITY, which indicates that only security updates are applied. If NONE is specified, no updates are applied, and all updates must be applied manually.

" + } + }, "ResourceId": { "base": null, "refs": { @@ -1217,7 +1233,7 @@ "SpotProvisioningTimeoutAction": { "base": null, "refs": { - "SpotProvisioningSpecification$TimeoutAction": "

The action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired. Spot instances are not uprovisioned within the Spot provisioining timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND to fulfill the remaining capacity.

" + "SpotProvisioningSpecification$TimeoutAction": "

The action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired. Spot instances are not uprovisioned within the Spot provisioining timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.

" } }, "Statistic": { @@ -1349,15 +1365,15 @@ "Cluster$LogUri": "

The path to the Amazon S3 location where logs for this cluster are stored.

", "Cluster$RequestedAmiVersion": "

The AMI version requested for this cluster.

", "Cluster$RunningAmiVersion": "

The AMI version running on this cluster.

", - "Cluster$ReleaseLabel": "

The release label for the Amazon EMR release. For Amazon EMR 3.x and 2.x AMIs, use amiVersion instead instead of ReleaseLabel.

", + "Cluster$ReleaseLabel": "

The release label for the Amazon EMR release.

", "Cluster$ServiceRole": "

The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.

", - "Cluster$MasterPublicDnsName": "

The public DNS name of the master EC2 instance.

", + "Cluster$MasterPublicDnsName": "

The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.

", "ClusterStateChangeReason$Message": "

The descriptive message for the state change reason.

", "ClusterSummary$Name": "

The name of the cluster.

", "Command$Name": "

The name of the command.

", "Command$ScriptPath": "

The Amazon S3 location of the command script.

", "Configuration$Classification": "

The classification within a configuration.

", - "CreateSecurityConfigurationInput$SecurityConfiguration": "

The security configuration details in JSON format.

", + "CreateSecurityConfigurationInput$SecurityConfiguration": "

The security configuration details in JSON format. For JSON parameters and examples, see Use Security Configurations to Set Up Cluster Security in the Amazon EMR Management Guide.

", "DescribeSecurityConfigurationOutput$SecurityConfiguration": "

The security configuration details in JSON format.

", "EbsBlockDevice$Device": "

The device name that is exposed to the instance, such as /dev/sdh.

", "EbsVolume$Device": "

The device name that is exposed to the instance, such as /dev/sdh.

", @@ -1394,8 +1410,8 @@ "StringList$member": null, "StringMap$key": null, "StringMap$value": null, - "Tag$Key": "

A user-defined key, which is the minimum required information for a valid tag. For more information, see Tagging Amazon EMR Resources.

", - "Tag$Value": "

A user-defined value, which is optional in a tag. For more information, see Tagging Amazon EMR Resources.

", + "Tag$Key": "

A user-defined key, which is the minimum required information for a valid tag. For more information, see Tag .

", + "Tag$Value": "

A user-defined value, which is optional in a tag. For more information, see Tag Clusters.

", "VolumeSpecification$VolumeType": "

The volume type. Volume types supported are gp2, io1, standard.

" } }, @@ -1428,11 +1444,11 @@ "base": null, "refs": { "JobFlowDetail$SupportedProducts": "

A list of strings set by third party software when the job flow is launched. If you are not using third party software to manage the job flow this value is empty.

", - "RunJobFlowInput$SupportedProducts": "

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and greater, use Applications.

A list of strings that indicates third-party software to use. For more information, see Use Third Party Applications with Amazon EMR. Currently supported values are:

" + "RunJobFlowInput$SupportedProducts": "

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later, use Applications.

A list of strings that indicates third-party software to use. For more information, see the Amazon EMR Developer Guide. Currently supported values are:

" } }, "Tag": { - "base": "

A key/value pair containing user-defined metadata that you can associate with an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tagging Amazon EMR Resources.

", + "base": "

A key/value pair containing user-defined metadata that you can associate with an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tag Clusters.

", "refs": { "TagList$member": null } @@ -1474,7 +1490,7 @@ "InstanceFleetConfig$TargetSpotCapacity": "

The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision. When the instance fleet launches, Amazon EMR tries to provision Spot instances as specified by InstanceTypeConfig. Each instance configuration has a specified WeightedCapacity. When a Spot instance is provisioned, the WeightedCapacity units count toward the target capacity. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a WeightedCapacity of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units.

If not specified or set to 0, only On-Demand instances are provisioned for the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified, and its value must be 1.

", "InstanceFleetModifyConfig$TargetOnDemandCapacity": "

The target capacity of On-Demand units for the instance fleet. For more information see InstanceFleetConfig$TargetOnDemandCapacity.

", "InstanceFleetModifyConfig$TargetSpotCapacity": "

The target capacity of Spot units for the instance fleet. For more information, see InstanceFleetConfig$TargetSpotCapacity.

", - "InstanceTypeConfig$WeightedCapacity": "

The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in InstanceFleetConfig. This value is 1 for a master instance fleet, and must be greater than 0 for core and task instance fleets.

", + "InstanceTypeConfig$WeightedCapacity": "

The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in InstanceFleetConfig. This value is 1 for a master instance fleet, and must be 1 or greater for core and task instance fleets. Defaults to 1 if not specified.

", "InstanceTypeSpecification$WeightedCapacity": "

The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in InstanceFleetConfig. Capacity values represent performance characteristics such as vCPUs, memory, or I/O. If not specified, the default value is 1.

", "SpotProvisioningSpecification$TimeoutDurationMinutes": "

The spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.

", "SpotProvisioningSpecification$BlockDurationMinutes": "

The defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.

" @@ -1498,7 +1514,7 @@ "JobFlowDetail$ServiceRole": "

The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.

", "JobFlowDetail$AutoScalingRole": "

An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides a way for the automatic scaling feature to get the required permissions it needs to launch and terminate EC2 instances in an instance group.

", "JobFlowExecutionStatusDetail$LastStateChangeReason": "

Description of the job flow last changed state.

", - "JobFlowInstancesDetail$MasterPublicDnsName": "

The DNS name of the master node.

", + "JobFlowInstancesDetail$MasterPublicDnsName": "

The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.

", "JobFlowInstancesDetail$MasterInstanceId": "

The Amazon EC2 instance identifier of the master node.

", "KeyValue$Key": "

The unique identifier of a key value pair.

", "KeyValue$Value": "

The value part of the identified key.

", @@ -1538,6 +1554,7 @@ "AddJobFlowStepsInput$JobFlowId": "

A string that uniquely identifies the job flow. This identifier is returned by RunJobFlow and can also be obtained from ListClusters.

", "BootstrapActionConfig$Name": "

The name of the bootstrap action.

", "CancelStepsInput$ClusterId": "

The ClusterID for which specified steps will be canceled. Use RunJobFlow and ListClusters to get ClusterIDs.

", + "Cluster$CustomAmiId": "

Available only in Amazon EMR version 5.7.0 and later. The ID of a custom Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.

", "InstanceFleet$Name": "

A friendly name for the instance fleet.

", "InstanceFleetConfig$Name": "

The friendly name of the instance fleet.

", "InstanceGroupConfig$Name": "

Friendly name given to the instance group.

", @@ -1551,7 +1568,7 @@ "InstanceTypeSpecification$BidPrice": "

The bid price for each EC2 Spot instance type as defined by InstanceType. Expressed in USD.

", "JobFlowDetail$JobFlowId": "

The job flow identifier.

", "JobFlowDetail$Name": "

The name of the job flow.

", - "JobFlowDetail$AmiVersion": "

The version of the AMI used to initialize Amazon EC2 instances in the job flow. For a list of AMI versions currently supported by Amazon EMR, see AMI Versions Supported in EMR in the Amazon EMR Developer Guide.

", + "JobFlowDetail$AmiVersion": "

Used only for version 2.x and 3.x of Amazon EMR. The version of the AMI used to initialize Amazon EC2 instances in the job flow. For a list of AMI versions supported by Amazon EMR, see AMI Versions Supported in EMR in the Amazon EMR Developer Guide.

", "JobFlowInstancesConfig$Ec2KeyName": "

The name of the EC2 key pair that can be used to ssh to the master node as the user called \"hadoop.\"

", "JobFlowInstancesConfig$HadoopVersion": "

The Hadoop version for the cluster. Valid inputs are \"0.18\" (deprecated), \"0.20\" (deprecated), \"0.20.205\" (deprecated), \"1.0.3\", \"2.2.0\", or \"2.4.0\". If you do not set this value, the default of 0.18 is used, unless the AmiVersion parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.

", "JobFlowInstancesConfig$Ec2SubnetId": "

Applies to clusters that use the uniform instance group configuration. To launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier of the Amazon VPC subnet where you want the cluster to launch. If you do not specify this value, the cluster launches in the normal Amazon Web Services cloud, outside of an Amazon VPC, if the account launching the cluster supports EC2 Classic networks in the region where the cluster launches.

Amazon VPC currently does not support cluster compute quadruple extra large (cc1.4xlarge) instances. Thus you cannot specify the cc1.4xlarge instance type for clusters launched in an Amazon VPC.

", @@ -1561,9 +1578,15 @@ "JobFlowInstancesDetail$Ec2KeyName": "

The name of an Amazon EC2 key pair that can be used to ssh to the master node.

", "JobFlowInstancesDetail$Ec2SubnetId": "

For clusters launched within Amazon Virtual Private Cloud, this is the identifier of the subnet where the cluster was launched.

", "JobFlowInstancesDetail$HadoopVersion": "

The Hadoop version for the cluster.

", + "KerberosAttributes$Realm": "

The name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL.

", + "KerberosAttributes$KdcAdminPassword": "

The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster.

", + "KerberosAttributes$CrossRealmTrustPrincipalPassword": "

Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms.

", + "KerberosAttributes$ADDomainJoinUser": "

Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain.

", + "KerberosAttributes$ADDomainJoinPassword": "

The Active Directory password for ADDomainJoinUser.

", "RunJobFlowInput$Name": "

The name of the job flow.

", - "RunJobFlowInput$AmiVersion": "

For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and greater, use ReleaseLabel.

The version of the Amazon Machine Image (AMI) to use when launching Amazon EC2 instances in the job flow. The following values are valid:

If the AMI supports multiple versions of Hadoop (for example, AMI 1.0 supports both Hadoop 0.18 and 0.20) you can use the JobFlowInstancesConfig HadoopVersion parameter to modify the version of Hadoop from the defaults shown above.

For details about the AMI versions currently supported by Amazon Elastic MapReduce, see AMI Versions Supported in Elastic MapReduce in the Amazon Elastic MapReduce Developer Guide.

Previously, the EMR AMI version API parameter options allowed you to use latest for the latest AMI version rather than specify a numerical value. Some regions no longer support this deprecated option as they only have a newer release label version of EMR, which requires you to specify an EMR release label release (EMR 4.x or later).

", - "RunJobFlowInput$ReleaseLabel": "

Amazon EMR releases 4.x or later.

The release label for the Amazon EMR release. For Amazon EMR 3.x and 2.x AMIs, use amiVersion instead instead of ReleaseLabel.

", + "RunJobFlowInput$AmiVersion": "

For Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases 4.0 and later, the Linux AMI is determined by the ReleaseLabel specified or by CustomAmiID. The version of the Amazon Machine Image (AMI) to use when launching Amazon EC2 instances in the job flow. For details about the AMI versions currently supported in EMR version 3.x and 2.x, see AMI Versions Supported in EMR in the Amazon EMR Developer Guide.

If the AMI supports multiple versions of Hadoop (for example, AMI 1.0 supports both Hadoop 0.18 and 0.20), you can use the JobFlowInstancesConfig HadoopVersion parameter to modify the version of Hadoop from the defaults shown above.

Previously, the EMR AMI version API parameter options allowed you to use latest for the latest AMI version rather than specify a numerical value. Some regions no longer support this deprecated option as they only have a newer release label version of EMR, which requires you to specify an EMR release label release (EMR 4.x or later).

", + "RunJobFlowInput$ReleaseLabel": "

The release label for the Amazon EMR release. For Amazon EMR 3.x and 2.x AMIs, use AmiVersion instead.

", + "RunJobFlowInput$CustomAmiId": "

Available only in Amazon EMR version 5.7.0 and later. The ID of a custom Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it launches cluster EC2 instances. For more information about custom AMIs in Amazon EMR, see Using a Custom AMI in the Amazon EMR Management Guide. If omitted, the cluster uses the base Linux AMI for the ReleaseLabel specified. For Amazon EMR versions 2.x and 3.x, use AmiVersion instead.

For information about creating a custom AMI, see Creating an Amazon EBS-Backed Linux AMI in the Amazon Elastic Compute Cloud User Guide for Linux Instances. For information about finding an AMI ID, see Finding a Linux AMI.

", "RunJobFlowOutput$JobFlowId": "

An unique identifier for the job flow.

", "SecurityGroupsList$member": null, "StepConfig$Name": "

The name of the step.

", @@ -1576,8 +1599,8 @@ "XmlStringMaxLen256List": { "base": null, "refs": { - "Ec2InstanceAttributes$RequestedEc2SubnetIds": "

Applies to clusters configured with the instance fleets option. Specifies the unique identifier of one or more Amazon EC2 subnets in which to launch EC2 cluster instances. Amazon EMR chooses the EC2 subnet with the best performance and cost characteristics from among the list of RequestedEc2SubnetIds and launches all cluster instances within that subnet. If this value is not specified, and the account supports EC2-Classic networks, the cluster launches instances in the EC2-Classic network and uses Requested

", - "Ec2InstanceAttributes$RequestedEc2AvailabilityZones": "

Applies to clusters configured with the The list of availability zones to choose from. The service will choose the availability zone with the best mix of available capacity and lowest cost to launch the cluster. If you do not specify this value, the cluster is launched in any availability zone that the customer account has access to.

", + "Ec2InstanceAttributes$RequestedEc2SubnetIds": "

Applies to clusters configured with the instance fleets option. Specifies the unique identifier of one or more Amazon EC2 subnets in which to launch EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR chooses the EC2 subnet with the best fit from among the list of RequestedEc2SubnetIds, and then launches all cluster instances within that Subnet. If this value is not specified, and the account and region support EC2-Classic networks, the cluster launches instances in the EC2-Classic network and uses RequestedEc2AvailabilityZones instead of this setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR chooses the subnet for you. RequestedEc2SubnetIDs and RequestedEc2AvailabilityZones cannot be specified together.

", + "Ec2InstanceAttributes$RequestedEc2AvailabilityZones": "

Applies to clusters configured with the instance fleets option. Specifies one or more Availability Zones in which to launch EC2 cluster instances when the EC2-Classic network configuration is supported. Amazon EMR chooses the Availability Zone with the best fit from among the list of RequestedEc2AvailabilityZones, and then launches all cluster instances within that Availability Zone. If you do not specify this value, Amazon EMR chooses the Availability Zone for you. RequestedEc2SubnetIDs and RequestedEc2AvailabilityZones cannot be specified together.

", "JobFlowInstancesConfig$Ec2SubnetIds": "

Applies to clusters that use the instance fleet configuration. When multiple EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances in the optimal subnet.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.

", "PlacementType$AvailabilityZones": "

When multiple Availability Zones are specified, Amazon EMR evaluates them and launches instances in the optimal Availability Zone. AvailabilityZones is used for instance fleets, while AvailabilityZone (singular) is used for uniform instance groups.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.

" } diff --git a/models/apis/email/2010-12-01/api-2.json b/models/apis/email/2010-12-01/api-2.json index 1a70d54509a..205313cc811 100644 --- a/models/apis/email/2010-12-01/api-2.json +++ b/models/apis/email/2010-12-01/api-2.json @@ -1,14 +1,15 @@ { "version":"2.0", "metadata":{ - "uid":"email-2010-12-01", "apiVersion":"2010-12-01", "endpointPrefix":"email", "protocol":"query", "serviceAbbreviation":"Amazon SES", "serviceFullName":"Amazon Simple Email Service", + "serviceId":"SES", "signatureVersion":"v4", "signingName":"ses", + "uid":"email-2010-12-01", "xmlNamespace":"http://ses.amazonaws.com/doc/2010-12-01/" }, "operations":{ @@ -62,9 +63,27 @@ {"shape":"EventDestinationAlreadyExistsException"}, {"shape":"InvalidCloudWatchDestinationException"}, {"shape":"InvalidFirehoseDestinationException"}, + {"shape":"InvalidSNSDestinationException"}, {"shape":"LimitExceededException"} ] }, + "CreateConfigurationSetTrackingOptions":{ + "name":"CreateConfigurationSetTrackingOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateConfigurationSetTrackingOptionsRequest"}, + "output":{ + "shape":"CreateConfigurationSetTrackingOptionsResponse", + "resultWrapper":"CreateConfigurationSetTrackingOptionsResult" + }, + "errors":[ + {"shape":"ConfigurationSetDoesNotExistException"}, + {"shape":"TrackingOptionsAlreadyExistsException"}, + {"shape":"InvalidTrackingOptionsException"} + ] + }, "CreateReceiptFilter":{ "name":"CreateReceiptFilter", "http":{ @@ -118,6 +137,23 @@ {"shape":"LimitExceededException"} ] }, + "CreateTemplate":{ + "name":"CreateTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTemplateRequest"}, + "output":{ + "shape":"CreateTemplateResponse", + "resultWrapper":"CreateTemplateResult" + }, + "errors":[ + {"shape":"AlreadyExistsException"}, + {"shape":"InvalidTemplateException"}, + {"shape":"LimitExceededException"} + ] + }, "DeleteConfigurationSet":{ "name":"DeleteConfigurationSet", "http":{ @@ -149,6 +185,22 @@ {"shape":"EventDestinationDoesNotExistException"} ] }, + "DeleteConfigurationSetTrackingOptions":{ + "name":"DeleteConfigurationSetTrackingOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteConfigurationSetTrackingOptionsRequest"}, + "output":{ + "shape":"DeleteConfigurationSetTrackingOptionsResponse", + "resultWrapper":"DeleteConfigurationSetTrackingOptionsResult" + }, + "errors":[ + {"shape":"ConfigurationSetDoesNotExistException"}, + {"shape":"TrackingOptionsDoesNotExistException"} + ] + }, "DeleteIdentity":{ "name":"DeleteIdentity", "http":{ @@ -215,6 +267,18 @@ {"shape":"CannotDeleteException"} ] }, + "DeleteTemplate":{ + "name":"DeleteTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTemplateRequest"}, + "output":{ + "shape":"DeleteTemplateResponse", + "resultWrapper":"DeleteTemplateResult" + } + }, "DeleteVerifiedEmailAddress":{ "name":"DeleteVerifiedEmailAddress", "http":{ @@ -281,6 +345,17 @@ {"shape":"RuleSetDoesNotExistException"} ] }, + "GetAccountSendingEnabled":{ + "name":"GetAccountSendingEnabled", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"GetAccountSendingEnabledResponse", + "resultWrapper":"GetAccountSendingEnabledResult" + } + }, "GetIdentityDkimAttributes":{ "name":"GetIdentityDkimAttributes", "http":{ @@ -363,6 +438,21 @@ "resultWrapper":"GetSendStatisticsResult" } }, + "GetTemplate":{ + "name":"GetTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTemplateRequest"}, + "output":{ + "shape":"GetTemplateResponse", + "resultWrapper":"GetTemplateResult" + }, + "errors":[ + {"shape":"TemplateDoesNotExistException"} + ] + }, "ListConfigurationSets":{ "name":"ListConfigurationSets", "http":{ @@ -423,6 +513,18 @@ "resultWrapper":"ListReceiptRuleSetsResult" } }, + "ListTemplates":{ + "name":"ListTemplates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTemplatesRequest"}, + "output":{ + "shape":"ListTemplatesResponse", + "resultWrapper":"ListTemplatesResult" + } + }, "ListVerifiedEmailAddresses":{ "name":"ListVerifiedEmailAddresses", "http":{ @@ -480,6 +582,26 @@ {"shape":"MessageRejected"} ] }, + "SendBulkTemplatedEmail":{ + "name":"SendBulkTemplatedEmail", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendBulkTemplatedEmailRequest"}, + "output":{ + "shape":"SendBulkTemplatedEmailResponse", + "resultWrapper":"SendBulkTemplatedEmailResult" + }, + "errors":[ + {"shape":"MessageRejected"}, + {"shape":"MailFromDomainNotVerifiedException"}, + {"shape":"ConfigurationSetDoesNotExistException"}, + {"shape":"TemplateDoesNotExistException"}, + {"shape":"ConfigurationSetSendingPausedException"}, + {"shape":"AccountSendingPausedException"} + ] + }, "SendEmail":{ "name":"SendEmail", "http":{ @@ -494,7 +616,9 @@ "errors":[ {"shape":"MessageRejected"}, {"shape":"MailFromDomainNotVerifiedException"}, - {"shape":"ConfigurationSetDoesNotExistException"} + {"shape":"ConfigurationSetDoesNotExistException"}, + {"shape":"ConfigurationSetSendingPausedException"}, + {"shape":"AccountSendingPausedException"} ] }, "SendRawEmail":{ @@ -511,7 +635,29 @@ "errors":[ {"shape":"MessageRejected"}, {"shape":"MailFromDomainNotVerifiedException"}, - {"shape":"ConfigurationSetDoesNotExistException"} + {"shape":"ConfigurationSetDoesNotExistException"}, + {"shape":"ConfigurationSetSendingPausedException"}, + {"shape":"AccountSendingPausedException"} + ] + }, + "SendTemplatedEmail":{ + "name":"SendTemplatedEmail", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendTemplatedEmailRequest"}, + "output":{ + "shape":"SendTemplatedEmailResponse", + "resultWrapper":"SendTemplatedEmailResult" + }, + "errors":[ + {"shape":"MessageRejected"}, + {"shape":"MailFromDomainNotVerifiedException"}, + {"shape":"ConfigurationSetDoesNotExistException"}, + {"shape":"TemplateDoesNotExistException"}, + {"shape":"ConfigurationSetSendingPausedException"}, + {"shape":"AccountSendingPausedException"} ] }, "SetActiveReceiptRuleSet":{ @@ -605,6 +751,31 @@ {"shape":"RuleDoesNotExistException"} ] }, + "TestRenderTemplate":{ + "name":"TestRenderTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TestRenderTemplateRequest"}, + "output":{ + "shape":"TestRenderTemplateResponse", + "resultWrapper":"TestRenderTemplateResult" + }, + "errors":[ + {"shape":"TemplateDoesNotExistException"}, + {"shape":"InvalidRenderingParameterException"}, + {"shape":"MissingRenderingAttributeException"} + ] + }, + "UpdateAccountSendingEnabled":{ + "name":"UpdateAccountSendingEnabled", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAccountSendingEnabledRequest"} + }, "UpdateConfigurationSetEventDestination":{ "name":"UpdateConfigurationSetEventDestination", "http":{ @@ -620,7 +791,47 @@ {"shape":"ConfigurationSetDoesNotExistException"}, {"shape":"EventDestinationDoesNotExistException"}, {"shape":"InvalidCloudWatchDestinationException"}, - {"shape":"InvalidFirehoseDestinationException"} + {"shape":"InvalidFirehoseDestinationException"}, + {"shape":"InvalidSNSDestinationException"} + ] + }, + "UpdateConfigurationSetReputationMetricsEnabled":{ + "name":"UpdateConfigurationSetReputationMetricsEnabled", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateConfigurationSetReputationMetricsEnabledRequest"}, + "errors":[ + {"shape":"ConfigurationSetDoesNotExistException"} + ] + }, + "UpdateConfigurationSetSendingEnabled":{ + "name":"UpdateConfigurationSetSendingEnabled", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateConfigurationSetSendingEnabledRequest"}, + "errors":[ + {"shape":"ConfigurationSetDoesNotExistException"} + ] + }, + "UpdateConfigurationSetTrackingOptions":{ + "name":"UpdateConfigurationSetTrackingOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateConfigurationSetTrackingOptionsRequest"}, + "output":{ + "shape":"UpdateConfigurationSetTrackingOptionsResponse", + "resultWrapper":"UpdateConfigurationSetTrackingOptionsResult" + }, + "errors":[ + {"shape":"ConfigurationSetDoesNotExistException"}, + {"shape":"TrackingOptionsDoesNotExistException"}, + {"shape":"InvalidTrackingOptionsException"} ] }, "UpdateReceiptRule":{ @@ -643,6 +854,22 @@ {"shape":"LimitExceededException"} ] }, + "UpdateTemplate":{ + "name":"UpdateTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTemplateRequest"}, + "output":{ + "shape":"UpdateTemplateResponse", + "resultWrapper":"UpdateTemplateResult" + }, + "errors":[ + {"shape":"TemplateDoesNotExistException"}, + {"shape":"InvalidTemplateException"} + ] + }, "VerifyDomainDkim":{ "name":"VerifyDomainDkim", "http":{ @@ -689,6 +916,17 @@ } }, "shapes":{ + "AccountSendingPausedException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AccountSendingPausedException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "AddHeaderAction":{ "type":"structure", "required":[ @@ -776,6 +1014,50 @@ "type":"list", "member":{"shape":"BouncedRecipientInfo"} }, + "BulkEmailDestination":{ + "type":"structure", + "required":["Destination"], + "members":{ + "Destination":{"shape":"Destination"}, + "ReplacementTags":{"shape":"MessageTagList"}, + "ReplacementTemplateData":{"shape":"TemplateData"} + } + }, + "BulkEmailDestinationList":{ + "type":"list", + "member":{"shape":"BulkEmailDestination"} + }, + "BulkEmailDestinationStatus":{ + "type":"structure", + "members":{ + "Status":{"shape":"BulkEmailStatus"}, + "Error":{"shape":"Error"}, + "MessageId":{"shape":"MessageId"} + } + }, + "BulkEmailDestinationStatusList":{ + "type":"list", + "member":{"shape":"BulkEmailDestinationStatus"} + }, + "BulkEmailStatus":{ + "type":"string", + "enum":[ + "Success", + "MessageRejected", + "MailFromDomainNotVerified", + "ConfigurationSetDoesNotExist", + "TemplateDoesNotExist", + "AccountSuspended", + "AccountThrottled", + "AccountDailyQuotaExceeded", + "InvalidSendingPoolName", + "AccountSendingPaused", + "ConfigurationSetSendingPaused", + "InvalidParameterValue", + "TransientFailure", + "Failed" + ] + }, "CannotDeleteException":{ "type":"structure", "members":{ @@ -851,7 +1133,11 @@ }, "ConfigurationSetAttribute":{ "type":"string", - "enum":["eventDestinations"] + "enum":[ + "eventDestinations", + "trackingOptions", + "reputationOptions" + ] }, "ConfigurationSetAttributeList":{ "type":"list", @@ -870,6 +1156,18 @@ "exception":true }, "ConfigurationSetName":{"type":"string"}, + "ConfigurationSetSendingPausedException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"} + }, + "error":{ + "code":"ConfigurationSetSendingPausedException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "ConfigurationSets":{ "type":"list", "member":{"shape":"ConfigurationSet"} @@ -911,6 +1209,22 @@ "members":{ } }, + "CreateConfigurationSetTrackingOptionsRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "TrackingOptions" + ], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "TrackingOptions":{"shape":"TrackingOptions"} + } + }, + "CreateConfigurationSetTrackingOptionsResponse":{ + "type":"structure", + "members":{ + } + }, "CreateReceiptFilterRequest":{ "type":"structure", "required":["Filter"], @@ -952,6 +1266,18 @@ "members":{ } }, + "CreateTemplateRequest":{ + "type":"structure", + "required":["Template"], + "members":{ + "Template":{"shape":"Template"} + } + }, + "CreateTemplateResponse":{ + "type":"structure", + "members":{ + } + }, "CustomMailFromStatus":{ "type":"string", "enum":[ @@ -961,6 +1287,7 @@ "TemporaryFailure" ] }, + "CustomRedirectDomain":{"type":"string"}, "DefaultDimensionValue":{"type":"string"}, "DeleteConfigurationSetEventDestinationRequest":{ "type":"structure", @@ -990,6 +1317,18 @@ "members":{ } }, + "DeleteConfigurationSetTrackingOptionsRequest":{ + "type":"structure", + "required":["ConfigurationSetName"], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"} + } + }, + "DeleteConfigurationSetTrackingOptionsResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteIdentityPolicyRequest":{ "type":"structure", "required":[ @@ -1058,6 +1397,18 @@ "members":{ } }, + "DeleteTemplateRequest":{ + "type":"structure", + "required":["TemplateName"], + "members":{ + "TemplateName":{"shape":"TemplateName"} + } + }, + "DeleteTemplateResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteVerifiedEmailAddressRequest":{ "type":"structure", "required":["EmailAddress"], @@ -1089,7 +1440,9 @@ "type":"structure", "members":{ "ConfigurationSet":{"shape":"ConfigurationSet"}, - "EventDestinations":{"shape":"EventDestinations"} + "EventDestinations":{"shape":"EventDestinations"}, + "TrackingOptions":{"shape":"TrackingOptions"}, + "ReputationOptions":{"shape":"ReputationOptions"} } }, "DescribeReceiptRuleRequest":{ @@ -1137,7 +1490,8 @@ "type":"string", "enum":[ "messageTag", - "emailHeader" + "emailHeader", + "linkTag" ] }, "DkimAttributes":{ @@ -1158,6 +1512,7 @@ }, "DsnStatus":{"type":"string"}, "Enabled":{"type":"boolean"}, + "Error":{"type":"string"}, "EventDestination":{ "type":"structure", "required":[ @@ -1169,7 +1524,8 @@ "Enabled":{"shape":"Enabled"}, "MatchingEventTypes":{"shape":"EventTypes"}, "KinesisFirehoseDestination":{"shape":"KinesisFirehoseDestination"}, - "CloudWatchDestination":{"shape":"CloudWatchDestination"} + "CloudWatchDestination":{"shape":"CloudWatchDestination"}, + "SNSDestination":{"shape":"SNSDestination"} } }, "EventDestinationAlreadyExistsException":{ @@ -1210,7 +1566,10 @@ "reject", "bounce", "complaint", - "delivery" + "delivery", + "open", + "click", + "renderingFailure" ] }, "EventTypes":{ @@ -1235,6 +1594,12 @@ }, "ExtensionFieldName":{"type":"string"}, "ExtensionFieldValue":{"type":"string"}, + "GetAccountSendingEnabledResponse":{ + "type":"structure", + "members":{ + "Enabled":{"shape":"Enabled"} + } + }, "GetIdentityDkimAttributesRequest":{ "type":"structure", "required":["Identities"], @@ -1323,8 +1688,22 @@ "SendDataPoints":{"shape":"SendDataPointList"} } }, + "GetTemplateRequest":{ + "type":"structure", + "required":["TemplateName"], + "members":{ + "TemplateName":{"shape":"TemplateName"} + } + }, + "GetTemplateResponse":{ + "type":"structure", + "members":{ + "Template":{"shape":"Template"} + } + }, "HeaderName":{"type":"string"}, "HeaderValue":{"type":"string"}, + "HtmlPart":{"type":"string"}, "Identity":{"type":"string"}, "IdentityDkimAttributes":{ "type":"structure", @@ -1448,6 +1827,18 @@ }, "exception":true }, + "InvalidRenderingParameterException":{ + "type":"structure", + "members":{ + "TemplateName":{"shape":"TemplateName"} + }, + "error":{ + "code":"InvalidRenderingParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidS3ConfigurationException":{ "type":"structure", "members":{ @@ -1460,6 +1851,19 @@ }, "exception":true }, + "InvalidSNSDestinationException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "EventDestinationName":{"shape":"EventDestinationName"} + }, + "error":{ + "code":"InvalidSNSDestination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidSnsTopicException":{ "type":"structure", "members":{ @@ -1472,6 +1876,29 @@ }, "exception":true }, + "InvalidTemplateException":{ + "type":"structure", + "members":{ + "TemplateName":{"shape":"TemplateName"} + }, + "error":{ + "code":"InvalidTemplate", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidTrackingOptionsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidTrackingOptions", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvocationType":{ "type":"string", "enum":[ @@ -1500,6 +1927,7 @@ } }, "LastAttemptDate":{"type":"timestamp"}, + "LastFreshStart":{"type":"timestamp"}, "LimitExceededException":{ "type":"structure", "members":{ @@ -1579,6 +2007,20 @@ "NextToken":{"shape":"NextToken"} } }, + "ListTemplatesRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxItems":{"shape":"MaxItems"} + } + }, + "ListTemplatesResponse":{ + "type":"structure", + "members":{ + "TemplatesMetadata":{"shape":"TemplateMetadataList"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListVerifiedEmailAddressesResponse":{ "type":"structure", "members":{ @@ -1655,6 +2097,18 @@ }, "MessageTagName":{"type":"string"}, "MessageTagValue":{"type":"string"}, + "MissingRenderingAttributeException":{ + "type":"structure", + "members":{ + "TemplateName":{"shape":"TemplateName"} + }, + "error":{ + "code":"MissingRenderingAttribute", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "NextToken":{"type":"string"}, "NotificationAttributes":{ "type":"map", @@ -1819,6 +2273,7 @@ "member":{"shape":"Recipient"} }, "RemoteMta":{"type":"string"}, + "RenderedTemplate":{"type":"string"}, "ReorderReceiptRuleSetRequest":{ "type":"structure", "required":[ @@ -1836,6 +2291,14 @@ } }, "ReportingMta":{"type":"string"}, + "ReputationOptions":{ + "type":"structure", + "members":{ + "SendingEnabled":{"shape":"Enabled"}, + "ReputationMetricsEnabled":{"shape":"Enabled"}, + "LastFreshStart":{"shape":"LastFreshStart"} + } + }, "RuleDoesNotExistException":{ "type":"structure", "members":{ @@ -1888,6 +2351,13 @@ "Base64" ] }, + "SNSDestination":{ + "type":"structure", + "required":["TopicARN"], + "members":{ + "TopicARN":{"shape":"AmazonResourceName"} + } + }, "SendBounceRequest":{ "type":"structure", "required":[ @@ -1910,6 +2380,34 @@ "MessageId":{"shape":"MessageId"} } }, + "SendBulkTemplatedEmailRequest":{ + "type":"structure", + "required":[ + "Source", + "Template", + "Destinations" + ], + "members":{ + "Source":{"shape":"Address"}, + "SourceArn":{"shape":"AmazonResourceName"}, + "ReplyToAddresses":{"shape":"AddressList"}, + "ReturnPath":{"shape":"Address"}, + "ReturnPathArn":{"shape":"AmazonResourceName"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "DefaultTags":{"shape":"MessageTagList"}, + "Template":{"shape":"TemplateName"}, + "TemplateArn":{"shape":"AmazonResourceName"}, + "DefaultTemplateData":{"shape":"TemplateData"}, + "Destinations":{"shape":"BulkEmailDestinationList"} + } + }, + "SendBulkTemplatedEmailResponse":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{"shape":"BulkEmailDestinationStatusList"} + } + }, "SendDataPoint":{ "type":"structure", "members":{ @@ -1971,6 +2469,35 @@ "MessageId":{"shape":"MessageId"} } }, + "SendTemplatedEmailRequest":{ + "type":"structure", + "required":[ + "Source", + "Destination", + "Template", + "TemplateData" + ], + "members":{ + "Source":{"shape":"Address"}, + "Destination":{"shape":"Destination"}, + "ReplyToAddresses":{"shape":"AddressList"}, + "ReturnPath":{"shape":"Address"}, + "SourceArn":{"shape":"AmazonResourceName"}, + "ReturnPathArn":{"shape":"AmazonResourceName"}, + "Tags":{"shape":"MessageTagList"}, + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "Template":{"shape":"TemplateName"}, + "TemplateArn":{"shape":"AmazonResourceName"}, + "TemplateData":{"shape":"TemplateData"} + } + }, + "SendTemplatedEmailResponse":{ + "type":"structure", + "required":["MessageId"], + "members":{ + "MessageId":{"shape":"MessageId"} + } + }, "SentLast24Hours":{"type":"double"}, "SetActiveReceiptRuleSetRequest":{ "type":"structure", @@ -2093,6 +2620,63 @@ "type":"string", "enum":["RuleSet"] }, + "SubjectPart":{"type":"string"}, + "Template":{ + "type":"structure", + "required":["TemplateName"], + "members":{ + "TemplateName":{"shape":"TemplateName"}, + "SubjectPart":{"shape":"SubjectPart"}, + "TextPart":{"shape":"TextPart"}, + "HtmlPart":{"shape":"HtmlPart"} + } + }, + "TemplateData":{ + "type":"string", + "max":262144 + }, + "TemplateDoesNotExistException":{ + "type":"structure", + "members":{ + "TemplateName":{"shape":"TemplateName"} + }, + "error":{ + "code":"TemplateDoesNotExist", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TemplateMetadata":{ + "type":"structure", + "members":{ + "Name":{"shape":"TemplateName"}, + "CreatedTimestamp":{"shape":"Timestamp"} + } + }, + "TemplateMetadataList":{ + "type":"list", + "member":{"shape":"TemplateMetadata"} + }, + "TemplateName":{"type":"string"}, + "TestRenderTemplateRequest":{ + "type":"structure", + "required":[ + "TemplateName", + "TemplateData" + ], + "members":{ + "TemplateName":{"shape":"TemplateName"}, + "TemplateData":{"shape":"TemplateData"} + } + }, + "TestRenderTemplateResponse":{ + "type":"structure", + "members":{ + "RenderedTemplate":{"shape":"RenderedTemplate"} + } + }, + "TextPart":{"type":"string"}, "Timestamp":{"type":"timestamp"}, "TlsPolicy":{ "type":"string", @@ -2101,6 +2685,42 @@ "Optional" ] }, + "TrackingOptions":{ + "type":"structure", + "members":{ + "CustomRedirectDomain":{"shape":"CustomRedirectDomain"} + } + }, + "TrackingOptionsAlreadyExistsException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"} + }, + "error":{ + "code":"TrackingOptionsAlreadyExistsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TrackingOptionsDoesNotExistException":{ + "type":"structure", + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"} + }, + "error":{ + "code":"TrackingOptionsDoesNotExistException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UpdateAccountSendingEnabledRequest":{ + "type":"structure", + "members":{ + "Enabled":{"shape":"Enabled"} + } + }, "UpdateConfigurationSetEventDestinationRequest":{ "type":"structure", "required":[ @@ -2117,6 +2737,44 @@ "members":{ } }, + "UpdateConfigurationSetReputationMetricsEnabledRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "Enabled" + ], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "Enabled":{"shape":"Enabled"} + } + }, + "UpdateConfigurationSetSendingEnabledRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "Enabled" + ], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "Enabled":{"shape":"Enabled"} + } + }, + "UpdateConfigurationSetTrackingOptionsRequest":{ + "type":"structure", + "required":[ + "ConfigurationSetName", + "TrackingOptions" + ], + "members":{ + "ConfigurationSetName":{"shape":"ConfigurationSetName"}, + "TrackingOptions":{"shape":"TrackingOptions"} + } + }, + "UpdateConfigurationSetTrackingOptionsResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateReceiptRuleRequest":{ "type":"structure", "required":[ @@ -2133,6 +2791,18 @@ "members":{ } }, + "UpdateTemplateRequest":{ + "type":"structure", + "required":["Template"], + "members":{ + "Template":{"shape":"Template"} + } + }, + "UpdateTemplateResponse":{ + "type":"structure", + "members":{ + } + }, "VerificationAttributes":{ "type":"map", "key":{"shape":"Identity"}, diff --git a/models/apis/email/2010-12-01/docs-2.json b/models/apis/email/2010-12-01/docs-2.json index 30903441b89..d351fcb9196 100644 --- a/models/apis/email/2010-12-01/docs-2.json +++ b/models/apis/email/2010-12-01/docs-2.json @@ -1,58 +1,78 @@ { "version": "2.0", - "service": "Amazon Simple Email Service

This is the API Reference for Amazon Simple Email Service (Amazon SES). This documentation is intended to be used in conjunction with the Amazon SES Developer Guide.

For a list of Amazon SES endpoints to use in service requests, see Regions and Amazon SES in the Amazon SES Developer Guide.

", + "service": "Amazon Simple Email Service

This is the API Reference for Amazon Simple Email Service (Amazon SES). This documentation is intended to be used in conjunction with the Amazon SES Developer Guide.

For a list of Amazon SES endpoints to use in service requests, see Regions and Amazon SES in the Amazon SES Developer Guide.

", "operations": { - "CloneReceiptRuleSet": "

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

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

This action is throttled at one request per second.

", - "CreateConfigurationSet": "

Creates a configuration set.

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

This action is throttled at one request per second.

", - "CreateConfigurationSetEventDestination": "

Creates a configuration set event destination.

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

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

This action is throttled at one request per second.

", - "CreateReceiptFilter": "

Creates a new IP address filter.

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

This action is throttled at one request per second.

", - "CreateReceiptRule": "

Creates a receipt rule.

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

This action is throttled at one request per second.

", - "CreateReceiptRuleSet": "

Creates an empty receipt rule set.

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

This action is throttled at one request per second.

", - "DeleteConfigurationSet": "

Deletes a configuration set.

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

This action is throttled at one request per second.

", - "DeleteConfigurationSetEventDestination": "

Deletes a configuration set event destination.

Configuration set event destinations are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

This action is throttled at one request per second.

", - "DeleteIdentity": "

Deletes the specified identity (an email address or a domain) from the list of verified identities.

This action is throttled at one request per second.

", - "DeleteIdentityPolicy": "

Deletes the specified sending authorization policy for the given identity (an email address or a domain). This API returns successfully even if a policy with the specified name does not exist.

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

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

This action is throttled at one request per second.

", - "DeleteReceiptFilter": "

Deletes the specified IP address filter.

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

This action is throttled at one request per second.

", - "DeleteReceiptRule": "

Deletes the specified receipt rule.

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

This action is throttled at one request per second.

", - "DeleteReceiptRuleSet": "

Deletes the specified receipt rule set and all of the receipt rules it contains.

The currently active rule set cannot be deleted.

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

This action is throttled at one request per second.

", - "DeleteVerifiedEmailAddress": "

Deletes the specified email address from the list of verified addresses.

The DeleteVerifiedEmailAddress action is deprecated as of the May 15, 2012 release of Domain Verification. The DeleteIdentity action is now preferred.

This action is throttled at one request per second.

", - "DescribeActiveReceiptRuleSet": "

Returns the metadata and receipt rules for the receipt rule set that is currently active.

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

This action is throttled at one request per second.

", - "DescribeConfigurationSet": "

Returns the details of the specified configuration set.

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

This action is throttled at one request per second.

", - "DescribeReceiptRule": "

Returns the details of the specified receipt rule.

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

This action is throttled at one request per second.

", - "DescribeReceiptRuleSet": "

Returns the details of the specified receipt rule set.

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

This action is throttled at one request per second.

", - "GetIdentityDkimAttributes": "

Returns the current status of Easy DKIM signing for an entity. For domain name identities, this action also returns the DKIM tokens that are required for Easy DKIM signing, and whether Amazon SES has successfully verified that these tokens have been published.

This action takes a list of identities as input and returns the following information for each:

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

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

", - "GetIdentityMailFromDomainAttributes": "

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

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

", - "GetIdentityNotificationAttributes": "

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

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

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

", - "GetIdentityPolicies": "

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

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

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

This action is throttled at one request per second.

", - "GetIdentityVerificationAttributes": "

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

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

", - "GetSendQuota": "

Returns the user's current sending limits.

This action is throttled at one request per second.

", - "GetSendStatistics": "

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

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

This action is throttled at one request per second.

", - "ListConfigurationSets": "

Lists the configuration sets associated with your AWS account.

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

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

", - "ListIdentities": "

Returns a list containing all of the identities (email addresses and domains) for your AWS account, regardless of verification status.

This action is throttled at one request per second.

", - "ListIdentityPolicies": "

Returns a list of sending authorization policies that are attached to the given identity (an email address or a domain). This API returns only a list. If you want the actual policy content, you can use GetIdentityPolicies.

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

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

This action is throttled at one request per second.

", - "ListReceiptFilters": "

Lists the IP address filters associated with your AWS account.

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

This action is throttled at one request per second.

", - "ListReceiptRuleSets": "

Lists the receipt rule sets that exist under your AWS account. If there are additional receipt rule sets to be retrieved, you will receive a NextToken that you can provide to the next call to ListReceiptRuleSets to retrieve the additional entries.

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

This action is throttled at one request per second.

", - "ListVerifiedEmailAddresses": "

Returns a list containing all of the email addresses that have been verified.

The ListVerifiedEmailAddresses action is deprecated as of the May 15, 2012 release of Domain Verification. The ListIdentities action is now preferred.

This action is throttled at one request per second.

", - "PutIdentityPolicy": "

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

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

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

This action is throttled at one request per second.

", - "ReorderReceiptRuleSet": "

Reorders the receipt rules within a receipt rule set.

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

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

This action is throttled at one request per second.

", - "SendBounce": "

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

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

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

This action is throttled at one request per second.

", - "SendEmail": "

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

There are several important points to know about SendEmail:

", - "SendRawEmail": "

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

There are several important points to know about SendRawEmail:

", - "SetActiveReceiptRuleSet": "

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

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

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

This action is throttled at one request per second.

", - "SetIdentityDkimEnabled": "

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

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

This action is throttled at one request per second.

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

", - "SetIdentityFeedbackForwardingEnabled": "

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

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

This action is throttled at one request per second.

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

", - "SetIdentityHeadersInNotificationsEnabled": "

Given an identity (an email address or a domain), sets whether Amazon SES includes the original email headers in the Amazon Simple Notification Service (Amazon SNS) notifications of a specified type.

This action is throttled at one request per second.

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

", - "SetIdentityMailFromDomain": "

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

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

This action is throttled at one request per second.

", - "SetIdentityNotificationTopic": "

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

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

This action is throttled at one request per second.

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

", - "SetReceiptRulePosition": "

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

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

This action is throttled at one request per second.

", - "UpdateConfigurationSetEventDestination": "

Updates the event destination of a configuration set.

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

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

This action is throttled at one request per second.

", - "UpdateReceiptRule": "

Updates a receipt rule.

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

This action is throttled at one request per second.

", - "VerifyDomainDkim": "

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

This action is throttled at one request per second.

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

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

", - "VerifyDomainIdentity": "

Verifies a domain.

This action is throttled at one request per second.

", - "VerifyEmailAddress": "

Verifies an email address. This action causes a confirmation email message to be sent to the specified address.

The VerifyEmailAddress action is deprecated as of the May 15, 2012 release of Domain Verification. The VerifyEmailIdentity action is now preferred.

This action is throttled at one request per second.

", - "VerifyEmailIdentity": "

Verifies an email address. This action causes a confirmation email message to be sent to the specified address.

This action is throttled at one request per second.

" + "CloneReceiptRuleSet": "

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

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

You can execute this operation no more than once per second.

", + "CreateConfigurationSet": "

Creates a configuration set.

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

You can execute this operation no more than once per second.

", + "CreateConfigurationSetEventDestination": "

Creates a configuration set event destination.

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

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

You can execute this operation no more than once per second.

", + "CreateConfigurationSetTrackingOptions": "

Creates an association between a configuration set and a custom domain for open and click event tracking.

By default, images and links used for tracking open and click events are hosted on domains operated by Amazon SES. You can configure a subdomain of your own to handle these events. For information about using configuration sets, see Configuring Custom Domains to Handle Open and Click Tracking in the Amazon SES Developer Guide.

", + "CreateReceiptFilter": "

Creates a new IP address filter.

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

You can execute this operation no more than once per second.

", + "CreateReceiptRule": "

Creates a receipt rule.

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

You can execute this operation no more than once per second.

", + "CreateReceiptRuleSet": "

Creates an empty receipt rule set.

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

You can execute this operation no more than once per second.

", + "CreateTemplate": "

Creates an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation. For more information, see the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

", + "DeleteConfigurationSet": "

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

You can execute this operation no more than once per second.

", + "DeleteConfigurationSetEventDestination": "

Deletes a configuration set event destination. Configuration set event destinations are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

", + "DeleteConfigurationSetTrackingOptions": "

Deletes an association between a configuration set and a custom domain for open and click event tracking.

By default, images and links used for tracking open and click events are hosted on domains operated by Amazon SES. You can configure a subdomain of your own to handle these events. For information about using configuration sets, see Configuring Custom Domains to Handle Open and Click Tracking in the Amazon SES Developer Guide.

Deleting this kind of association will result in emails sent using the specified configuration set to capture open and click events using the standard, Amazon SES-operated domains.

", + "DeleteIdentity": "

Deletes the specified identity (an email address or a domain) from the list of verified identities.

You can execute this operation no more than once per second.

", + "DeleteIdentityPolicy": "

Deletes the specified sending authorization policy for the given identity (an email address or a domain). This API returns successfully even if a policy with the specified name does not exist.

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

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

You can execute this operation no more than once per second.

", + "DeleteReceiptFilter": "

Deletes the specified IP address filter.

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

You can execute this operation no more than once per second.

", + "DeleteReceiptRule": "

Deletes the specified receipt rule.

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

You can execute this operation no more than once per second.

", + "DeleteReceiptRuleSet": "

Deletes the specified receipt rule set and all of the receipt rules it contains.

The currently active rule set cannot be deleted.

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

You can execute this operation no more than once per second.

", + "DeleteTemplate": "

Deletes an email template.

You can execute this operation no more than once per second.

", + "DeleteVerifiedEmailAddress": "

Deprecated. Use the DeleteIdentity operation to delete email addresses and domains.

", + "DescribeActiveReceiptRuleSet": "

Returns the metadata and receipt rules for the receipt rule set that is currently active.

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

You can execute this operation no more than once per second.

", + "DescribeConfigurationSet": "

Returns the details of the specified configuration set. For information about using configuration sets, see the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

", + "DescribeReceiptRule": "

Returns the details of the specified receipt rule.

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

You can execute this operation no more than once per second.

", + "DescribeReceiptRuleSet": "

Returns the details of the specified receipt rule set.

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

You can execute this operation no more than once per second.

", + "GetAccountSendingEnabled": "

Returns the email sending status of the Amazon SES account.

You can execute this operation no more than once per second.

", + "GetIdentityDkimAttributes": "

Returns the current status of Easy DKIM signing for an entity. For domain name identities, this operation also returns the DKIM tokens that are required for Easy DKIM signing, and whether Amazon SES has successfully verified that these tokens have been published.

This operation takes a list of identities as input and returns the following information for each:

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

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

", + "GetIdentityMailFromDomainAttributes": "

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

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

", + "GetIdentityNotificationAttributes": "

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

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

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

", + "GetIdentityPolicies": "

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

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

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

You can execute this operation no more than once per second.

", + "GetIdentityVerificationAttributes": "

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

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

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

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

", + "GetSendQuota": "

Provides the sending limits for the Amazon SES account.

You can execute this operation no more than once per second.

", + "GetSendStatistics": "

Provides sending statistics for the Amazon SES account. The result is a list of data points, representing the last two weeks of sending activity. Each data point in the list contains statistics for a 15-minute period of time.

You can execute this operation no more than once per second.

", + "GetTemplate": "

Displays the template object (which includes the Subject line, HTML part and text part) for the template you specify.

You can execute this operation no more than once per second.

", + "ListConfigurationSets": "

Provides a list of the configuration sets associated with your Amazon SES account. For information about using configuration sets, see Monitoring Your Amazon SES Sending Activity in the Amazon SES Developer Guide.

You can execute this operation no more than once per second. This operation will return up to 1,000 configuration sets each time it is run. If your Amazon SES account has more than 1,000 configuration sets, this operation will also return a NextToken element. You can then execute the ListConfigurationSets operation again, passing the NextToken parameter and the value of the NextToken element to retrieve additional results.

", + "ListIdentities": "

Returns a list containing all of the identities (email addresses and domains) for your AWS account, regardless of verification status.

You can execute this operation no more than once per second.

", + "ListIdentityPolicies": "

Returns a list of sending authorization policies that are attached to the given identity (an email address or a domain). This API returns only a list. If you want the actual policy content, you can use GetIdentityPolicies.

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

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

You can execute this operation no more than once per second.

", + "ListReceiptFilters": "

Lists the IP address filters associated with your AWS account.

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

You can execute this operation no more than once per second.

", + "ListReceiptRuleSets": "

Lists the receipt rule sets that exist under your AWS account. If there are additional receipt rule sets to be retrieved, you will receive a NextToken that you can provide to the next call to ListReceiptRuleSets to retrieve the additional entries.

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

You can execute this operation no more than once per second.

", + "ListTemplates": "

Lists the email templates present in your Amazon SES account.

You can execute this operation no more than once per second.

", + "ListVerifiedEmailAddresses": "

Deprecated. Use the ListIdentities operation to list the email addresses and domains associated with your account.

", + "PutIdentityPolicy": "

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

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

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

You can execute this operation no more than once per second.

", + "ReorderReceiptRuleSet": "

Reorders the receipt rules within a receipt rule set.

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

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

You can execute this operation no more than once per second.

", + "SendBounce": "

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

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

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

You can execute this operation no more than once per second.

", + "SendBulkTemplatedEmail": "

Composes an email message to multiple destinations. The message body is created using an email template.

In order to send email using the SendBulkTemplatedEmail operation, your call to the API must meet the following requirements:

", + "SendEmail": "

Composes an email message and immediately queues it for sending. In order to send email using the SendEmail operation, your message must meet the following requirements:

For every message that you send, the total number of recipients (including each recipient in the To:, CC: and BCC: fields) is counted against the maximum number of emails you can send in a 24-hour period (your sending quota). For more information about sending quotas in Amazon SES, see Managing Your Amazon SES Sending Limits in the Amazon SES Developer Guide.

", + "SendRawEmail": "

Composes an email message and immediately queues it for sending. When calling this operation, you may specify the message headers as well as the content. The SendRawEmail operation is particularly useful for sending multipart MIME emails (such as those that contain both a plain-text and an HTML version).

In order to send email using the SendRawEmail operation, your message must meet the following requirements:

For every message that you send, the total number of recipients (including each recipient in the To:, CC: and BCC: fields) is counted against the maximum number of emails you can send in a 24-hour period (your sending quota). For more information about sending quotas in Amazon SES, see Managing Your Amazon SES Sending Limits in the Amazon SES Developer Guide.

Additionally, keep the following considerations in mind when using the SendRawEmail operation:

", + "SendTemplatedEmail": "

Composes an email message using an email template and immediately queues it for sending.

In order to send email using the SendTemplatedEmail operation, your call to the API must meet the following requirements:

", + "SetActiveReceiptRuleSet": "

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

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

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

You can execute this operation no more than once per second.

", + "SetIdentityDkimEnabled": "

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

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

You can execute this operation no more than once per second.

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

", + "SetIdentityFeedbackForwardingEnabled": "

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

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

You can execute this operation no more than once per second.

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

", + "SetIdentityHeadersInNotificationsEnabled": "

Given an identity (an email address or a domain), sets whether Amazon SES includes the original email headers in the Amazon Simple Notification Service (Amazon SNS) notifications of a specified type.

You can execute this operation no more than once per second.

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

", + "SetIdentityMailFromDomain": "

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

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

You can execute this operation no more than once per second.

", + "SetIdentityNotificationTopic": "

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

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

You can execute this operation no more than once per second.

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

", + "SetReceiptRulePosition": "

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

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

You can execute this operation no more than once per second.

", + "TestRenderTemplate": "

Creates a preview of the MIME content of an email when provided with a template and a set of replacement data.

You can execute this operation no more than once per second.

", + "UpdateAccountSendingEnabled": "

Enables or disables email sending across your entire Amazon SES account. You can use this operation in conjunction with Amazon CloudWatch alarms to temporarily pause email sending across your Amazon SES account when reputation metrics (such as your bounce on complaint rate) reach certain thresholds.

You can execute this operation no more than once per second.

", + "UpdateConfigurationSetEventDestination": "

Updates the event destination of a configuration set. Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). For information about using configuration sets, see Monitoring Your Amazon SES Sending Activity in the Amazon SES Developer Guide.

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

You can execute this operation no more than once per second.

", + "UpdateConfigurationSetReputationMetricsEnabled": "

Enables or disables the publishing of reputation metrics for emails sent using a specific configuration set. Reputation metrics include bounce and complaint rates. These metrics are published to Amazon CloudWatch. By using Amazon CloudWatch, you can create alarms when bounce or complaint rates exceed a certain threshold.

You can execute this operation no more than once per second.

", + "UpdateConfigurationSetSendingEnabled": "

Enables or disables email sending for messages sent using a specific configuration set. You can use this operation in conjunction with Amazon CloudWatch alarms to temporarily pause email sending for a configuration set when the reputation metrics for that configuration set (such as your bounce on complaint rate) reach certain thresholds.

You can execute this operation no more than once per second.

", + "UpdateConfigurationSetTrackingOptions": "

Modifies an association between a configuration set and a custom domain for open and click event tracking.

By default, images and links used for tracking open and click events are hosted on domains operated by Amazon SES. You can configure a subdomain of your own to handle these events. For information about using configuration sets, see Configuring Custom Domains to Handle Open and Click Tracking in the Amazon SES Developer Guide.

", + "UpdateReceiptRule": "

Updates a receipt rule.

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

You can execute this operation no more than once per second.

", + "UpdateTemplate": "

Updates an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation. For more information, see the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

", + "VerifyDomainDkim": "

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

You can execute this operation no more than once per second.

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

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

", + "VerifyDomainIdentity": "

Adds a domain to the list of identities for your Amazon SES account and attempts to verify it. For more information about verifying domains, see Verifying Email Addresses and Domains in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

", + "VerifyEmailAddress": "

Deprecated. Use the VerifyEmailIdentity operation to verify a new email address.

", + "VerifyEmailIdentity": "

Adds an email address to the list of identities for your Amazon SES account and attempts to verify it. This operation causes a confirmation email message to be sent to the specified address.

You can execute this operation no more than once per second.

" }, "shapes": { + "AccountSendingPausedException": { + "base": "

Indicates that email sending is disabled for your entire Amazon SES account.

You can enable or disable email sending for your Amazon SES account using UpdateAccountSendingEnabled.

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

When included in a receipt rule, this action adds a header to the received email.

For information about adding a header using a receipt rule, see the Amazon SES Developer Guide.

", "refs": { @@ -66,11 +86,15 @@ "BounceAction$Sender": "

The email address of the sender of the bounced email. This is the address from which the bounce message will be sent.

", "BouncedRecipientInfo$Recipient": "

The email address of the recipient of the bounced email.

", "DeleteVerifiedEmailAddressRequest$EmailAddress": "

An email address to be removed from the list of verified addresses.

", - "RecipientDsnFields$FinalRecipient": "

The email address to which the message was ultimately delivered. This corresponds to the Final-Recipient in the DSN. If not specified, FinalRecipient will be set to the Recipient specified in the BouncedRecipientInfo structure. Either FinalRecipient or the recipient in BouncedRecipientInfo must be a recipient of the original bounced message.

Do not prepend the FinalRecipient email address with rfc 822;, as described in RFC 3798.

", + "RecipientDsnFields$FinalRecipient": "

The email address that the message was ultimately delivered to. This corresponds to the Final-Recipient in the DSN. If not specified, FinalRecipient will be set to the Recipient specified in the BouncedRecipientInfo structure. Either FinalRecipient or the recipient in BouncedRecipientInfo must be a recipient of the original bounced message.

Do not prepend the FinalRecipient email address with rfc 822;, as described in RFC 3798.

", "SendBounceRequest$BounceSender": "

The address to use in the \"From\" header of the bounce message. This must be an identity that you have verified with Amazon SES.

", - "SendEmailRequest$Source": "

The email address that is sending the email. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. For information about verifying identities, see the Amazon SES Developer Guide.

If you are sending on behalf of another user and have been permitted to do so by a sending authorization policy, then you must also specify the SourceArn parameter. For more information about sending authorization, see the Amazon SES Developer Guide.

In all cases, the email address must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

", - "SendEmailRequest$ReturnPath": "

The email address to which bounces and complaints are to be forwarded when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the ReturnPath parameter. The ReturnPath parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES.

", - "SendRawEmailRequest$Source": "

The identity's email address. If you do not provide a value for this parameter, you must specify a \"From\" address in the raw text of the message. (You can also specify both.)

By default, the string must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

If you specify the Source parameter and have feedback forwarding enabled, then bounces and complaints will be sent to this email address. This takes precedence over any Return-Path header that you might include in the raw text of the message.

", + "SendBulkTemplatedEmailRequest$Source": "

The email address that is sending the email. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. For information about verifying identities, see the Amazon SES Developer Guide.

If you are sending on behalf of another user and have been permitted to do so by a sending authorization policy, then you must also specify the SourceArn parameter. For more information about sending authorization, see the Amazon SES Developer Guide.

In all cases, the email address must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

", + "SendBulkTemplatedEmailRequest$ReturnPath": "

The email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the ReturnPath parameter. The ReturnPath parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES.

", + "SendEmailRequest$Source": "

The email address that is sending the email. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. For information about verifying identities, see the Amazon SES Developer Guide.

If you are sending on behalf of another user and have been permitted to do so by a sending authorization policy, then you must also specify the SourceArn parameter. For more information about sending authorization, see the Amazon SES Developer Guide.

In all cases, the email address must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

", + "SendEmailRequest$ReturnPath": "

The email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the ReturnPath parameter. The ReturnPath parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES.

", + "SendRawEmailRequest$Source": "

The identity's email address. If you do not provide a value for this parameter, you must specify a \"From\" address in the raw text of the message. (You can also specify both.)

By default, the string must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

If you specify the Source parameter and have feedback forwarding enabled, then bounces and complaints will be sent to this email address. This takes precedence over any Return-Path header that you might include in the raw text of the message.

", + "SendTemplatedEmailRequest$Source": "

The email address that is sending the email. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. For information about verifying identities, see the Amazon SES Developer Guide.

If you are sending on behalf of another user and have been permitted to do so by a sending authorization policy, then you must also specify the SourceArn parameter. For more information about sending authorization, see the Amazon SES Developer Guide.

In all cases, the email address must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

", + "SendTemplatedEmailRequest$ReturnPath": "

The email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the ReturnPath parameter. The ReturnPath parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES.

", "VerifyEmailAddressRequest$EmailAddress": "

The email address to be verified.

", "VerifyEmailIdentityRequest$EmailAddress": "

The email address to be verified.

" } @@ -82,8 +106,10 @@ "Destination$CcAddresses": "

The CC: field(s) of the message.

", "Destination$BccAddresses": "

The BCC: field(s) of the message.

", "ListVerifiedEmailAddressesResponse$VerifiedEmailAddresses": "

A list of email addresses that have been verified.

", + "SendBulkTemplatedEmailRequest$ReplyToAddresses": "

The reply-to email address(es) for the message. If the recipient replies to the message, each reply-to address will receive the reply.

", "SendEmailRequest$ReplyToAddresses": "

The reply-to email address(es) for the message. If the recipient replies to the message, each reply-to address will receive the reply.

", - "SendRawEmailRequest$Destinations": "

A list of destinations for the message, consisting of To:, CC:, and BCC: addresses.

" + "SendRawEmailRequest$Destinations": "

A list of destinations for the message, consisting of To:, CC:, and BCC: addresses.

", + "SendTemplatedEmailRequest$ReplyToAddresses": "

The reply-to email address(es) for the message. If the recipient replies to the message, each reply-to address will receive the reply.

" } }, "AlreadyExistsException": { @@ -96,21 +122,28 @@ "refs": { "BounceAction$TopicArn": "

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

", "BouncedRecipientInfo$RecipientArn": "

This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to receive email for the recipient of the bounced email. For more information about sending authorization, see the Amazon SES Developer Guide.

", - "InvalidLambdaFunctionException$FunctionArn": null, - "InvalidSnsTopicException$Topic": null, + "InvalidLambdaFunctionException$FunctionArn": "

Indicates that the ARN of the function was not found.

", + "InvalidSnsTopicException$Topic": "

Indicates that the topic does not exist.

", "KinesisFirehoseDestination$IAMRoleARN": "

The ARN of the IAM role under which Amazon SES publishes email sending events to the Amazon Kinesis Firehose stream.

", - "KinesisFirehoseDestination$DeliveryStreamARN": "

The ARN of the Amazon Kinesis Firehose stream to which to publish email sending events.

", + "KinesisFirehoseDestination$DeliveryStreamARN": "

The ARN of the Amazon Kinesis Firehose stream that email sending events should be published to.

", "LambdaAction$TopicArn": "

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

", "LambdaAction$FunctionArn": "

The Amazon Resource Name (ARN) of the AWS Lambda function. An example of an AWS Lambda function ARN is arn:aws:lambda:us-west-2:account-id:function:MyFunction. For more information about AWS Lambda, see the AWS Lambda Developer Guide.

", "S3Action$TopicArn": "

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

", - "S3Action$KmsKeyArn": "

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

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

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

", + "S3Action$KmsKeyArn": "

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

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

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

", "SNSAction$TopicArn": "

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

", + "SNSDestination$TopicARN": "

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

", "SendBounceRequest$BounceSenderArn": "

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

", - "SendEmailRequest$SourceArn": "

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

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

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

", - "SendEmailRequest$ReturnPathArn": "

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

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

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

", + "SendBulkTemplatedEmailRequest$SourceArn": "

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

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

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

", + "SendBulkTemplatedEmailRequest$ReturnPathArn": "

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

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

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

", + "SendBulkTemplatedEmailRequest$TemplateArn": "

The ARN of the template to use when sending this email.

", + "SendEmailRequest$SourceArn": "

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

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

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

", + "SendEmailRequest$ReturnPathArn": "

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

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

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

", "SendRawEmailRequest$FromArn": "

This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to specify a particular \"From\" address in the header of the raw email.

Instead of using this parameter, you can use the X-header X-SES-FROM-ARN in the raw message of the email. If you use both the FromArn parameter and the corresponding X-header, Amazon SES uses the value of the FromArn parameter.

For information about when to use this parameter, see the description of SendRawEmail in this guide, or see the Amazon SES Developer Guide.

", "SendRawEmailRequest$SourceArn": "

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

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

Instead of using this parameter, you can use the X-header X-SES-SOURCE-ARN in the raw message of the email. If you use both the SourceArn parameter and the corresponding X-header, Amazon SES uses the value of the SourceArn parameter.

For information about when to use this parameter, see the description of SendRawEmail in this guide, or see the Amazon SES Developer Guide.

", "SendRawEmailRequest$ReturnPathArn": "

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

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

Instead of using this parameter, you can use the X-header X-SES-RETURN-PATH-ARN in the raw message of the email. If you use both the ReturnPathArn parameter and the corresponding X-header, Amazon SES uses the value of the ReturnPathArn parameter.

For information about when to use this parameter, see the description of SendRawEmail in this guide, or see the Amazon SES Developer Guide.

", + "SendTemplatedEmailRequest$SourceArn": "

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

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

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

", + "SendTemplatedEmailRequest$ReturnPathArn": "

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

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

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

", + "SendTemplatedEmailRequest$TemplateArn": "

The ARN of the template to use when sending this email.

", "StopAction$TopicArn": "

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

", "WorkmailAction$TopicArn": "

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

", "WorkmailAction$OrganizationArn": "

The ARN of the Amazon WorkMail organization. An example of an Amazon WorkMail organization ARN is arn:aws:workmail:us-west-2:123456789012:organization/m-68755160c4cb4e29a2b2f8fb58f359d7. For information about Amazon WorkMail organizations, see the Amazon WorkMail Administrator Guide.

" @@ -177,6 +210,36 @@ "SendBounceRequest$BouncedRecipientInfoList": "

A list of recipients of the bounced message, including the information required to create the Delivery Status Notifications (DSNs) for the recipients. You must specify at least one BouncedRecipientInfo in the list.

" } }, + "BulkEmailDestination": { + "base": "

An array that contains one or more Destinations, as well as the tags and replacement data associated with each of those Destinations.

", + "refs": { + "BulkEmailDestinationList$member": null + } + }, + "BulkEmailDestinationList": { + "base": null, + "refs": { + "SendBulkTemplatedEmailRequest$Destinations": "

One or more Destination objects. All of the recipients in a Destination will receive the same version of the email. You can specify up to 50 Destination objects within a Destinations array.

" + } + }, + "BulkEmailDestinationStatus": { + "base": "

An object that contains the response from the SendBulkTemplatedEmail operation.

", + "refs": { + "BulkEmailDestinationStatusList$member": null + } + }, + "BulkEmailDestinationStatusList": { + "base": null, + "refs": { + "SendBulkTemplatedEmailResponse$Status": "

The unique message identifier returned from the SendBulkTemplatedEmail action.

" + } + }, + "BulkEmailStatus": { + "base": null, + "refs": { + "BulkEmailDestinationStatus$Status": "

The status of a message sent using the SendBulkTemplatedEmail operation.

Possible values for this parameter include:

" + } + }, "CannotDeleteException": { "base": "

Indicates that the delete operation could not be completed.

", "refs": { @@ -223,7 +286,7 @@ } }, "ConfigurationSet": { - "base": "

The name of the configuration set.

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

", + "base": "

The name of the configuration set.

Configuration sets let you create groups of rules that you can apply to the emails you send using Amazon SES. For more information about using configuration sets, see Using Amazon SES Configuration Sets in the Amazon SES Developer Guide.

", "refs": { "ConfigurationSets$member": null, "CreateConfigurationSetRequest$ConfigurationSet": "

A data structure that contains the name of the configuration set.

", @@ -255,20 +318,36 @@ "ConfigurationSetName": { "base": null, "refs": { - "ConfigurationSet$Name": "

The name of the configuration set. The name must:

", - "ConfigurationSetAlreadyExistsException$ConfigurationSetName": null, - "ConfigurationSetDoesNotExistException$ConfigurationSetName": null, - "CreateConfigurationSetEventDestinationRequest$ConfigurationSetName": "

The name of the configuration set to which to apply the event destination.

", + "ConfigurationSet$Name": "

The name of the configuration set. The name must meet the following requirements:

", + "ConfigurationSetAlreadyExistsException$ConfigurationSetName": "

Indicates that the configuration set does not exist.

", + "ConfigurationSetDoesNotExistException$ConfigurationSetName": "

Indicates that the configuration set does not exist.

", + "ConfigurationSetSendingPausedException$ConfigurationSetName": "

The name of the configuration set for which email sending is disabled.

", + "CreateConfigurationSetEventDestinationRequest$ConfigurationSetName": "

The name of the configuration set that the event destination should be associated with.

", + "CreateConfigurationSetTrackingOptionsRequest$ConfigurationSetName": "

The name of the configuration set that the tracking options should be associated with.

", "DeleteConfigurationSetEventDestinationRequest$ConfigurationSetName": "

The name of the configuration set from which to delete the event destination.

", "DeleteConfigurationSetRequest$ConfigurationSetName": "

The name of the configuration set to delete.

", + "DeleteConfigurationSetTrackingOptionsRequest$ConfigurationSetName": "

The name of the configuration set from which you want to delete the tracking options.

", "DescribeConfigurationSetRequest$ConfigurationSetName": "

The name of the configuration set to describe.

", - "EventDestinationAlreadyExistsException$ConfigurationSetName": null, - "EventDestinationDoesNotExistException$ConfigurationSetName": null, - "InvalidCloudWatchDestinationException$ConfigurationSetName": null, - "InvalidFirehoseDestinationException$ConfigurationSetName": null, + "EventDestinationAlreadyExistsException$ConfigurationSetName": "

Indicates that the configuration set does not exist.

", + "EventDestinationDoesNotExistException$ConfigurationSetName": "

Indicates that the configuration set does not exist.

", + "InvalidCloudWatchDestinationException$ConfigurationSetName": "

Indicates that the configuration set does not exist.

", + "InvalidFirehoseDestinationException$ConfigurationSetName": "

Indicates that the configuration set does not exist.

", + "InvalidSNSDestinationException$ConfigurationSetName": "

Indicates that the configuration set does not exist.

", + "SendBulkTemplatedEmailRequest$ConfigurationSetName": "

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

", "SendEmailRequest$ConfigurationSetName": "

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

", "SendRawEmailRequest$ConfigurationSetName": "

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

", - "UpdateConfigurationSetEventDestinationRequest$ConfigurationSetName": "

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

" + "SendTemplatedEmailRequest$ConfigurationSetName": "

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

", + "TrackingOptionsAlreadyExistsException$ConfigurationSetName": "

Indicates that a TrackingOptions object already exists in the specified configuration set.

", + "TrackingOptionsDoesNotExistException$ConfigurationSetName": "

Indicates that a TrackingOptions object does not exist in the specified configuration set.

", + "UpdateConfigurationSetEventDestinationRequest$ConfigurationSetName": "

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

", + "UpdateConfigurationSetReputationMetricsEnabledRequest$ConfigurationSetName": "

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

", + "UpdateConfigurationSetSendingEnabledRequest$ConfigurationSetName": "

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

", + "UpdateConfigurationSetTrackingOptionsRequest$ConfigurationSetName": "

The name of the configuration set for which you want to update the custom tracking domain.

" + } + }, + "ConfigurationSetSendingPausedException": { + "base": "

Indicates that email sending is disabled for the configuration set.

You can enable or disable email sending for a configuration set using UpdateConfigurationSetSendingEnabled.

", + "refs": { } }, "ConfigurationSets": { @@ -314,6 +393,16 @@ "refs": { } }, + "CreateConfigurationSetTrackingOptionsRequest": { + "base": "

Represents a request to create an open and click tracking option object in a configuration set.

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

An empty element returned on a successful request.

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

Represents a request to create a new IP address filter. You use IP address filters when you receive email with Amazon SES. For more information, see the Amazon SES Developer Guide.

", "refs": { @@ -344,12 +433,28 @@ "refs": { } }, + "CreateTemplateRequest": { + "base": "

Represents a request to create an email template. For more information, see the Amazon SES Developer Guide.

", + "refs": { + } + }, + "CreateTemplateResponse": { + "base": null, + "refs": { + } + }, "CustomMailFromStatus": { "base": null, "refs": { "IdentityMailFromDomainAttributes$MailFromDomainStatus": "

The state that indicates whether Amazon SES has successfully read the MX record required for custom MAIL FROM domain setup. If the state is Success, Amazon SES uses the specified custom MAIL FROM domain when the verified identity sends an email. All other states indicate that Amazon SES takes the action described by BehaviorOnMXFailure.

" } }, + "CustomRedirectDomain": { + "base": null, + "refs": { + "TrackingOptions$CustomRedirectDomain": "

The custom subdomain that will be used to redirect email recipients to the Amazon SES event tracking domain.

" + } + }, "DefaultDimensionValue": { "base": null, "refs": { @@ -376,6 +481,16 @@ "refs": { } }, + "DeleteConfigurationSetTrackingOptionsRequest": { + "base": "

Represents a request to delete open and click tracking options in a configuration set.

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

An empty element returned on a successful request.

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

Represents a request to delete a sending authorization policy for an identity. Sending authorization is an Amazon SES feature that enables you to authorize other senders to use your identities. For information, see the Amazon SES Developer Guide.

", "refs": { @@ -426,6 +541,16 @@ "refs": { } }, + "DeleteTemplateRequest": { + "base": "

Represents a request to delete an email template. For more information, see the Amazon SES Developer Guide.

", + "refs": { + } + }, + "DeleteTemplateResponse": { + "base": null, + "refs": { + } + }, "DeleteVerifiedEmailAddressRequest": { "base": "

Represents a request to delete an email address from the list of email addresses you have attempted to verify under your AWS account.

", "refs": { @@ -472,9 +597,11 @@ } }, "Destination": { - "base": "

Represents the destination of the message, consisting of To:, CC:, and BCC: fields.

By default, the string must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

", + "base": "

Represents the destination of the message, consisting of To:, CC:, and BCC: fields.

By default, the string must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

", "refs": { - "SendEmailRequest$Destination": "

The destination for this email, composed of To:, CC:, and BCC: fields.

" + "BulkEmailDestination$Destination": null, + "SendEmailRequest$Destination": "

The destination for this email, composed of To:, CC:, and BCC: fields.

", + "SendTemplatedEmailRequest$Destination": "

The destination for this email, composed of To:, CC:, and BCC: fields. A Destination can include up to 50 recipients across these three fields.

" } }, "DiagnosticCode": { @@ -524,22 +651,34 @@ "base": null, "refs": { "EventDestination$Enabled": "

Sets whether Amazon SES publishes events to this destination when you send an email with the associated configuration set. Set to true to enable publishing to this destination; set to false to prevent publishing to this destination. The default value is false.

", + "GetAccountSendingEnabledResponse$Enabled": "

Describes whether email sending is enabled or disabled for your Amazon SES account.

", "IdentityDkimAttributes$DkimEnabled": "

True if DKIM signing is enabled for email sent from the identity; false otherwise. The default value is true.

", "IdentityNotificationAttributes$ForwardingEnabled": "

Describes whether Amazon SES will forward bounce and complaint notifications as email. true indicates that Amazon SES will forward bounce and complaint notifications as email, while false indicates that bounce and complaint notifications will be published only to the specified bounce and complaint Amazon SNS topics.

", "IdentityNotificationAttributes$HeadersInBounceNotificationsEnabled": "

Describes whether Amazon SES includes the original email headers in Amazon SNS notifications of type Bounce. A value of true specifies that Amazon SES will include headers in bounce notifications, and a value of false specifies that Amazon SES will not include headers in bounce notifications.

", "IdentityNotificationAttributes$HeadersInComplaintNotificationsEnabled": "

Describes whether Amazon SES includes the original email headers in Amazon SNS notifications of type Complaint. A value of true specifies that Amazon SES will include headers in complaint notifications, and a value of false specifies that Amazon SES will not include headers in complaint notifications.

", "IdentityNotificationAttributes$HeadersInDeliveryNotificationsEnabled": "

Describes whether Amazon SES includes the original email headers in Amazon SNS notifications of type Delivery. A value of true specifies that Amazon SES will include headers in delivery notifications, and a value of false specifies that Amazon SES will not include headers in delivery notifications.

", "ReceiptRule$Enabled": "

If true, the receipt rule is active. The default value is false.

", - "ReceiptRule$ScanEnabled": "

If true, then messages to which this receipt rule applies are scanned for spam and viruses. The default value is false.

", + "ReceiptRule$ScanEnabled": "

If true, then messages that this receipt rule applies to are scanned for spam and viruses. The default value is false.

", + "ReputationOptions$SendingEnabled": "

Describes whether email sending is enabled or disabled for the configuration set. If the value is true, then Amazon SES will send emails that use the configuration set. If the value is false, Amazon SES will not send emails that use the configuration set. The default value is true. You can change this setting using UpdateConfigurationSetSendingEnabled.

", + "ReputationOptions$ReputationMetricsEnabled": "

Describes whether or not Amazon SES publishes reputation metrics for the configuration set, such as bounce and complaint rates, to Amazon CloudWatch.

If the value is true, reputation metrics are published. If the value is false, reputation metrics are not published. The default value is false.

", "SetIdentityDkimEnabledRequest$DkimEnabled": "

Sets whether DKIM signing is enabled for an identity. Set to true to enable DKIM signing for this identity; false to disable it.

", "SetIdentityFeedbackForwardingEnabledRequest$ForwardingEnabled": "

Sets whether Amazon SES will forward bounce and complaint notifications as email. true specifies that Amazon SES will forward bounce and complaint notifications as email, in addition to any Amazon SNS topic publishing otherwise specified. false specifies that Amazon SES will publish bounce and complaint notifications only through Amazon SNS. This value can only be set to false when Amazon SNS topics are set for both Bounce and Complaint notification types.

", - "SetIdentityHeadersInNotificationsEnabledRequest$Enabled": "

Sets whether Amazon SES includes the original email headers in Amazon SNS notifications of the specified notification type. A value of true specifies that Amazon SES will include headers in notifications, and a value of false specifies that Amazon SES will not include headers in notifications.

This value can only be set when NotificationType is already set to use a particular Amazon SNS topic.

" + "SetIdentityHeadersInNotificationsEnabledRequest$Enabled": "

Sets whether Amazon SES includes the original email headers in Amazon SNS notifications of the specified notification type. A value of true specifies that Amazon SES will include headers in notifications, and a value of false specifies that Amazon SES will not include headers in notifications.

This value can only be set when NotificationType is already set to use a particular Amazon SNS topic.

", + "UpdateAccountSendingEnabledRequest$Enabled": "

Describes whether email sending is enabled or disabled for your Amazon SES account.

", + "UpdateConfigurationSetReputationMetricsEnabledRequest$Enabled": "

Describes whether or not Amazon SES will publish reputation metrics for the configuration set, such as bounce and complaint rates, to Amazon CloudWatch.

", + "UpdateConfigurationSetSendingEnabledRequest$Enabled": "

Describes whether email sending is enabled or disabled for the configuration set.

" + } + }, + "Error": { + "base": null, + "refs": { + "BulkEmailDestinationStatus$Error": "

A description of an error that prevented a message being sent using the SendBulkTemplatedEmail operation.

" } }, "EventDestination": { - "base": "

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

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

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

", + "base": "

Contains information about the event destination that the specified email sending events will be published to.

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

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

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

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

", + "CreateConfigurationSetEventDestinationRequest$EventDestination": "

An object that describes the AWS service that email sending event information will be published to.

", "EventDestinations$member": null, "UpdateConfigurationSetEventDestinationRequest$EventDestination": "

The event destination object that you want to apply to the specified configuration set.

" } @@ -559,10 +698,11 @@ "refs": { "DeleteConfigurationSetEventDestinationRequest$EventDestinationName": "

The name of the event destination to delete.

", "EventDestination$Name": "

The name of the event destination. The name must:

", - "EventDestinationAlreadyExistsException$EventDestinationName": null, - "EventDestinationDoesNotExistException$EventDestinationName": null, - "InvalidCloudWatchDestinationException$EventDestinationName": null, - "InvalidFirehoseDestinationException$EventDestinationName": null + "EventDestinationAlreadyExistsException$EventDestinationName": "

Indicates that the event destination does not exist.

", + "EventDestinationDoesNotExistException$EventDestinationName": "

Indicates that the event destination does not exist.

", + "InvalidCloudWatchDestinationException$EventDestinationName": "

Indicates that the event destination does not exist.

", + "InvalidFirehoseDestinationException$EventDestinationName": "

Indicates that the event destination does not exist.

", + "InvalidSNSDestinationException$EventDestinationName": "

Indicates that the event destination does not exist.

" } }, "EventDestinations": { @@ -614,6 +754,11 @@ "ExtensionField$Value": "

The value of the header to add. Must be less than 2048 characters, and must not contain newline characters (\"\\r\" or \"\\n\").

" } }, + "GetAccountSendingEnabledResponse": { + "base": "

Represents a request to return the email sending status for your Amazon SES account.

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

Represents a request for the status of Amazon SES Easy DKIM signing for an identity. For domain identities, this request also returns the DKIM tokens that are required for Easy DKIM signing, and whether Amazon SES successfully verified that these tokens were published. For more information about Easy DKIM, see the Amazon SES Developer Guide.

", "refs": { @@ -674,6 +819,16 @@ "refs": { } }, + "GetTemplateRequest": { + "base": null, + "refs": { + } + }, + "GetTemplateResponse": { + "base": null, + "refs": { + } + }, "HeaderName": { "base": null, "refs": { @@ -686,6 +841,12 @@ "AddHeaderAction$HeaderValue": "

Must be less than 2048 characters, and must not contain newline characters (\"\\r\" or \"\\n\").

" } }, + "HtmlPart": { + "base": null, + "refs": { + "Template$HtmlPart": "

The HTML body of the email.

" + } + }, "Identity": { "base": null, "refs": { @@ -697,7 +858,7 @@ "ListIdentityPoliciesRequest$Identity": "

The identity that is associated with the policy for which the policies will be listed. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com.

To successfully call this API, you must own the identity.

", "MailFromDomainAttributes$key": null, "NotificationAttributes$key": null, - "PutIdentityPolicyRequest$Identity": "

The identity to which the policy will apply. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com.

To successfully call this API, you must own the identity.

", + "PutIdentityPolicyRequest$Identity": "

The identity that the policy will apply to. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com.

To successfully call this API, you must own the identity.

", "SetIdentityDkimEnabledRequest$Identity": "

The identity for which DKIM signing should be enabled or disabled.

", "SetIdentityFeedbackForwardingEnabledRequest$Identity": "

The identity for which to set bounce and complaint notification forwarding. Examples: user@example.com, example.com.

", "SetIdentityHeadersInNotificationsEnabledRequest$Identity": "

The identity for which to enable or disable headers in notifications. Examples: user@example.com, example.com.

", @@ -771,16 +932,36 @@ "refs": { } }, + "InvalidRenderingParameterException": { + "base": "

Indicates that one or more of the replacement values you provided is invalid. This error may occur when the TemplateData object contains invalid JSON.

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

Indicates that the provided Amazon S3 bucket or AWS KMS encryption key is invalid, or that Amazon SES could not publish to the bucket, possibly due to permissions issues. For information about giving permissions, see the Amazon SES Developer Guide.

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

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

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

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

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

Indicates that a template could not be created because it contained invalid JSON.

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

Indicates that the custom domain to be used for open and click tracking redirects is invalid. This error appears most often in the following situations:

", + "refs": { + } + }, "InvocationType": { "base": null, "refs": { @@ -805,6 +986,12 @@ "RecipientDsnFields$LastAttemptDate": "

The time the final delivery attempt was made, in RFC 822 date-time format.

" } }, + "LastFreshStart": { + "base": null, + "refs": { + "ReputationOptions$LastFreshStart": "

The date and time at which the reputation metrics for the configuration set were last reset. Resetting these metrics is known as a fresh start.

When you disable email sending for a configuration set using UpdateConfigurationSetSendingEnabled and later re-enable it, the reputation metrics for the configuration set (but not for the entire Amazon SES account) are reset.

If email sending for the configuration set has never been disabled and later re-enabled, the value of this attribute is null.

" + } + }, "LimitExceededException": { "base": "

Indicates that a resource could not be created because of service limits. For a list of Amazon SES limits, see the Amazon SES Developer Guide.

", "refs": { @@ -860,6 +1047,16 @@ "refs": { } }, + "ListTemplatesRequest": { + "base": null, + "refs": { + } + }, + "ListTemplatesResponse": { + "base": null, + "refs": { + } + }, "ListVerifiedEmailAddressesResponse": { "base": "

A list of email addresses that you have verified with Amazon SES under your AWS account.

", "refs": { @@ -893,7 +1090,8 @@ "base": null, "refs": { "ListConfigurationSetsRequest$MaxItems": "

The number of configuration sets to return.

", - "ListIdentitiesRequest$MaxItems": "

The maximum number of identities per page. Possible values are 1-1000 inclusive.

" + "ListIdentitiesRequest$MaxItems": "

The maximum number of identities per page. Possible values are 1-1000 inclusive.

", + "ListTemplatesRequest$MaxItems": "

The maximum number of templates to return. This value must be at least 1 and less than or equal to 10. If you do not specify a value, or if you specify a value less than 1 or greater than 10, the operation will return up to 10 results.

" } }, "MaxSendRate": { @@ -923,10 +1121,12 @@ "MessageId": { "base": null, "refs": { + "BulkEmailDestinationStatus$MessageId": "

The unique message identifier returned from the SendBulkTemplatedEmail operation.

", "SendBounceRequest$OriginalMessageId": "

The message ID of the message to be bounced.

", "SendBounceResponse$MessageId": "

The message ID of the bounce message.

", "SendEmailResponse$MessageId": "

The unique message identifier returned from the SendEmail action.

", - "SendRawEmailResponse$MessageId": "

The unique message identifier returned from the SendRawEmail action.

" + "SendRawEmailResponse$MessageId": "

The unique message identifier returned from the SendRawEmail action.

", + "SendTemplatedEmailResponse$MessageId": "

The unique message identifier returned from the SendTemplatedEmail action.

" } }, "MessageRejected": { @@ -943,8 +1143,11 @@ "MessageTagList": { "base": null, "refs": { + "BulkEmailDestination$ReplacementTags": "

A list of tags, in the form of name/value pairs, to apply to an email that you send using SendBulkTemplatedEmail. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

", + "SendBulkTemplatedEmailRequest$DefaultTags": "

A list of tags, in the form of name/value pairs, to apply to an email that you send to a destination using SendBulkTemplatedEmail.

", "SendEmailRequest$Tags": "

A list of tags, in the form of name/value pairs, to apply to an email that you send using SendEmail. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

", - "SendRawEmailRequest$Tags": "

A list of tags, in the form of name/value pairs, to apply to an email that you send using SendRawEmail. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

" + "SendRawEmailRequest$Tags": "

A list of tags, in the form of name/value pairs, to apply to an email that you send using SendRawEmail. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

", + "SendTemplatedEmailRequest$Tags": "

A list of tags, in the form of name/value pairs, to apply to an email that you send using SendTemplatedEmail. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

" } }, "MessageTagName": { @@ -959,6 +1162,11 @@ "MessageTag$Value": "

The value of the tag. The value must:

" } }, + "MissingRenderingAttributeException": { + "base": "

Indicates that one or more of the replacement values for the specified template was not specified. Ensure that the TemplateData object contains references to all of the replacement tags in the specified template.

", + "refs": { + } + }, "NextToken": { "base": null, "refs": { @@ -967,7 +1175,9 @@ "ListIdentitiesRequest$NextToken": "

The token to use for pagination.

", "ListIdentitiesResponse$NextToken": "

The token used for pagination.

", "ListReceiptRuleSetsRequest$NextToken": "

A token returned from a previous call to ListReceiptRuleSets to indicate the position in the receipt rule set list.

", - "ListReceiptRuleSetsResponse$NextToken": "

A token indicating that there are additional receipt rule sets available to be listed. Pass this token to successive calls of ListReceiptRuleSets to retrieve up to 100 receipt rule sets at a time.

" + "ListReceiptRuleSetsResponse$NextToken": "

A token indicating that there are additional receipt rule sets available to be listed. Pass this token to successive calls of ListReceiptRuleSets to retrieve up to 100 receipt rule sets at a time.

", + "ListTemplatesRequest$NextToken": "

The token to use for pagination.

", + "ListTemplatesResponse$NextToken": "

The token to use for pagination.

" } }, "NotificationAttributes": { @@ -1034,13 +1244,13 @@ "RawMessage": { "base": "

Represents the raw data of the message.

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

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

" + "SendRawEmailRequest$RawMessage": "

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

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

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

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

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

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

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

" + "RawMessage$Data": "

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

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

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

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

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

" } }, "ReceiptAction": { @@ -1088,7 +1298,7 @@ } }, "ReceiptRule": { - "base": "

Receipt rules enable you to specify which actions Amazon SES should take when it receives mail on behalf of one or more email addresses or domains that you own.

Each receipt rule defines a set of email addresses or domains to which it applies. If the email addresses or domains match at least one recipient address of the message, Amazon SES executes all of the receipt rule's actions on the message.

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

", + "base": "

Receipt rules enable you to specify which actions Amazon SES should take when it receives mail on behalf of one or more email addresses or domains that you own.

Each receipt rule defines a set of email addresses or domains that it applies to. If the email addresses or domains match at least one recipient address of the message, Amazon SES executes all of the receipt rule's actions on the message.

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

", "refs": { "CreateReceiptRuleRequest$Rule": "

A data structure that contains the specified rule's name, actions, recipients, domains, enabled status, scan status, and TLS policy.

", "DescribeReceiptRuleResponse$Rule": "

A data structure that contains the specified receipt rule's name, actions, recipients, domains, enabled status, scan status, and Transport Layer Security (TLS) policy.

", @@ -1127,17 +1337,17 @@ "refs": { "CloneReceiptRuleSetRequest$RuleSetName": "

The name of the rule set to create. The name must:

", "CloneReceiptRuleSetRequest$OriginalRuleSetName": "

The name of the rule set to clone.

", - "CreateReceiptRuleRequest$RuleSetName": "

The name of the rule set to which to add the rule.

", + "CreateReceiptRuleRequest$RuleSetName": "

The name of the rule set that the receipt rule will be added to.

", "CreateReceiptRuleSetRequest$RuleSetName": "

The name of the rule set to create. The name must:

", "DeleteReceiptRuleRequest$RuleSetName": "

The name of the receipt rule set that contains the receipt rule to delete.

", "DeleteReceiptRuleSetRequest$RuleSetName": "

The name of the receipt rule set to delete.

", - "DescribeReceiptRuleRequest$RuleSetName": "

The name of the receipt rule set to which the receipt rule belongs.

", + "DescribeReceiptRuleRequest$RuleSetName": "

The name of the receipt rule set that the receipt rule belongs to.

", "DescribeReceiptRuleSetRequest$RuleSetName": "

The name of the receipt rule set to describe.

", "ReceiptRuleSetMetadata$Name": "

The name of the receipt rule set. The name must:

", "ReorderReceiptRuleSetRequest$RuleSetName": "

The name of the receipt rule set to reorder.

", "SetActiveReceiptRuleSetRequest$RuleSetName": "

The name of the receipt rule set to make active. Setting this value to null disables all email receiving.

", "SetReceiptRulePositionRequest$RuleSetName": "

The name of the receipt rule set that contains the receipt rule to reposition.

", - "UpdateReceiptRuleRequest$RuleSetName": "

The name of the receipt rule set to which the receipt rule belongs.

" + "UpdateReceiptRuleRequest$RuleSetName": "

The name of the receipt rule set that the receipt rule belongs to.

" } }, "ReceiptRuleSetsLists": { @@ -1168,7 +1378,7 @@ "RecipientsList": { "base": null, "refs": { - "ReceiptRule$Recipients": "

The recipient domains and email addresses to which the receipt rule applies. If this field is not specified, this rule will match all recipients under all verified domains.

" + "ReceiptRule$Recipients": "

The recipient domains and email addresses that the receipt rule applies to. If this field is not specified, this rule will match all recipients under all verified domains.

" } }, "RemoteMta": { @@ -1177,6 +1387,12 @@ "RecipientDsnFields$RemoteMta": "

The MTA to which the remote MTA attempted to deliver the message, formatted as specified in RFC 3464 (mta-name-type; mta-name). This parameter typically applies only to propagating synchronous bounces.

" } }, + "RenderedTemplate": { + "base": null, + "refs": { + "TestRenderTemplateResponse$RenderedTemplate": "

The complete MIME message rendered by applying the data in the TemplateData parameter to the template specified in the TemplateName parameter.

" + } + }, "ReorderReceiptRuleSetRequest": { "base": "

Represents a request to reorder the receipt rules within a receipt rule set. You use receipt rule sets to receive email with Amazon SES. For more information, see the Amazon SES Developer Guide.

", "refs": { @@ -1193,6 +1409,12 @@ "MessageDsn$ReportingMta": "

The reporting MTA that attempted to deliver the message, formatted as specified in RFC 3464 (mta-name-type; mta-name). The default value is dns; inbound-smtp.[region].amazonaws.com.

" } }, + "ReputationOptions": { + "base": "

Contains information about the reputation settings for a configuration set.

", + "refs": { + "DescribeConfigurationSetResponse$ReputationOptions": "

An object that represents the reputation settings for the configuration set.

" + } + }, "RuleDoesNotExistException": { "base": "

Indicates that the provided receipt rule does not exist.

", "refs": { @@ -1201,10 +1423,10 @@ "RuleOrRuleSetName": { "base": null, "refs": { - "AlreadyExistsException$Name": null, - "CannotDeleteException$Name": null, - "RuleDoesNotExistException$Name": null, - "RuleSetDoesNotExistException$Name": null + "AlreadyExistsException$Name": "

Indicates that a resource could not be created because the resource name already exists.

", + "CannotDeleteException$Name": "

Indicates that a resource could not be deleted because no resource with the specified name exists.

", + "RuleDoesNotExistException$Name": "

Indicates that the named receipt rule does not exist.

", + "RuleSetDoesNotExistException$Name": "

Indicates that the named receipt rule set does not exist.

" } }, "RuleSetDoesNotExistException": { @@ -1221,8 +1443,8 @@ "S3BucketName": { "base": null, "refs": { - "InvalidS3ConfigurationException$Bucket": null, - "S3Action$BucketName": "

The name of the Amazon S3 bucket to which to save the received email.

" + "InvalidS3ConfigurationException$Bucket": "

Indicated that the S3 Bucket was not found.

", + "S3Action$BucketName": "

The name of the Amazon S3 bucket that incoming email will be saved to.

" } }, "S3KeyPrefix": { @@ -1243,6 +1465,12 @@ "SNSAction$Encoding": "

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

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

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

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

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

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

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

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

", "refs": { @@ -1253,6 +1481,16 @@ "refs": { } }, + "SendBulkTemplatedEmailRequest": { + "base": "

Represents a request to send a templated email to multiple destinations using Amazon SES. For more information, see the Amazon SES Developer Guide.

", + "refs": { + } + }, + "SendBulkTemplatedEmailResponse": { + "base": null, + "refs": { + } + }, "SendDataPoint": { "base": "

Represents sending statistics data. Each SendDataPoint contains statistics for a 15-minute period of sending activity.

", "refs": { @@ -1285,6 +1523,16 @@ "refs": { } }, + "SendTemplatedEmailRequest": { + "base": "

Represents a request to send a templated email using Amazon SES. For more information, see the Amazon SES Developer Guide.

", + "refs": { + } + }, + "SendTemplatedEmailResponse": { + "base": null, + "refs": { + } + }, "SentLast24Hours": { "base": null, "refs": { @@ -1370,14 +1618,87 @@ "StopScope": { "base": null, "refs": { - "StopAction$Scope": "

The scope to which the Stop action applies. That is, what is being stopped.

" + "StopAction$Scope": "

The name of the RuleSet that is being stopped.

" + } + }, + "SubjectPart": { + "base": null, + "refs": { + "Template$SubjectPart": "

The subject line of the email.

" + } + }, + "Template": { + "base": "

The content of the email, composed of a subject line, an HTML part, and a text-only part.

", + "refs": { + "CreateTemplateRequest$Template": "

The content of the email, composed of a subject line, an HTML part, and a text-only part.

", + "GetTemplateResponse$Template": null, + "UpdateTemplateRequest$Template": null + } + }, + "TemplateData": { + "base": null, + "refs": { + "BulkEmailDestination$ReplacementTemplateData": "

A list of replacement values to apply to the template. This parameter is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template.

", + "SendBulkTemplatedEmailRequest$DefaultTemplateData": "

A list of replacement values to apply to the template when replacement data is not specified in a Destination object. These values act as a default or fallback option when no other data is available.

The template data is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template.

", + "SendTemplatedEmailRequest$TemplateData": "

A list of replacement values to apply to the template. This parameter is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template.

", + "TestRenderTemplateRequest$TemplateData": "

A list of replacement values to apply to the template. This parameter is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template.

" + } + }, + "TemplateDoesNotExistException": { + "base": "

Indicates that the Template object you specified does not exist in your Amazon SES account.

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

Information about an email template.

", + "refs": { + "TemplateMetadataList$member": null + } + }, + "TemplateMetadataList": { + "base": null, + "refs": { + "ListTemplatesResponse$TemplatesMetadata": "

An array the contains the name of creation time stamp for each template in your Amazon SES account.

" + } + }, + "TemplateName": { + "base": null, + "refs": { + "DeleteTemplateRequest$TemplateName": "

The name of the template to be deleted.

", + "GetTemplateRequest$TemplateName": "

The name of the template you want to retrieve.

", + "InvalidRenderingParameterException$TemplateName": null, + "InvalidTemplateException$TemplateName": null, + "MissingRenderingAttributeException$TemplateName": null, + "SendBulkTemplatedEmailRequest$Template": "

The template to use when sending this email.

", + "SendTemplatedEmailRequest$Template": "

The template to use when sending this email.

", + "Template$TemplateName": "

The name of the template. You will refer to this name when you send email using the SendTemplatedEmail or SendBulkTemplatedEmail operations.

", + "TemplateDoesNotExistException$TemplateName": null, + "TemplateMetadata$Name": "

The name of the template.

", + "TestRenderTemplateRequest$TemplateName": "

The name of the template that you want to render.

" + } + }, + "TestRenderTemplateRequest": { + "base": null, + "refs": { + } + }, + "TestRenderTemplateResponse": { + "base": null, + "refs": { + } + }, + "TextPart": { + "base": null, + "refs": { + "Template$TextPart": "

The email body that will be visible to recipients whose email clients do not display HTML.

" } }, "Timestamp": { "base": null, "refs": { "ReceiptRuleSetMetadata$CreatedTimestamp": "

The date and time the receipt rule set was created.

", - "SendDataPoint$Timestamp": "

Time of the data point.

" + "SendDataPoint$Timestamp": "

Time of the data point.

", + "TemplateMetadata$CreatedTimestamp": "

The time and date the template was created.

" } }, "TlsPolicy": { @@ -1386,6 +1707,29 @@ "ReceiptRule$TlsPolicy": "

Specifies whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security (TLS). If this parameter is set to Require, Amazon SES will bounce emails that are not received over TLS. The default is Optional.

" } }, + "TrackingOptions": { + "base": "

A domain that is used to redirect email recipients to an Amazon SES-operated domain. This domain captures open and click events generated by Amazon SES emails.

For more information, see Configuring Custom Domains to Handle Open and Click Tracking in the Amazon SES Developer Guide.

", + "refs": { + "CreateConfigurationSetTrackingOptionsRequest$TrackingOptions": null, + "DescribeConfigurationSetResponse$TrackingOptions": "

The name of the custom open and click tracking domain associated with the configuration set.

", + "UpdateConfigurationSetTrackingOptionsRequest$TrackingOptions": null + } + }, + "TrackingOptionsAlreadyExistsException": { + "base": "

Indicates that the configuration set you specified already contains a TrackingOptions object.

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

Indicates that the TrackingOptions object you specified does not exist.

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

Represents a request to enable or disable the email sending capabilities for your entire Amazon SES account.

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

Represents a request to update the event destination of a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the Amazon SES Developer Guide.

", "refs": { @@ -1396,6 +1740,26 @@ "refs": { } }, + "UpdateConfigurationSetReputationMetricsEnabledRequest": { + "base": "

Represents a request to modify the reputation metric publishing settings for a configuration set.

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

Represents a request to enable or disable the email sending capabilities for a specific configuration set.

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

Represents a request to update the tracking options for a configuration set.

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

An empty element returned on a successful request.

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

Represents a request to update a receipt rule. You use receipt rules to receive email with Amazon SES. For more information, see the Amazon SES Developer Guide.

", "refs": { @@ -1406,6 +1770,16 @@ "refs": { } }, + "UpdateTemplateRequest": { + "base": null, + "refs": { + } + }, + "UpdateTemplateResponse": { + "base": null, + "refs": { + } + }, "VerificationAttributes": { "base": null, "refs": { @@ -1424,7 +1798,7 @@ "refs": { "IdentityVerificationAttributes$VerificationToken": "

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

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

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

" + "VerifyDomainIdentityResponse$VerificationToken": "

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

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

" } }, "VerificationTokenList": { diff --git a/models/apis/email/2010-12-01/examples-1.json b/models/apis/email/2010-12-01/examples-1.json index 88555294c71..e56903308d1 100644 --- a/models/apis/email/2010-12-01/examples-1.json +++ b/models/apis/email/2010-12-01/examples-1.json @@ -293,6 +293,22 @@ "title": "DescribeReceiptRuleSet" } ], + "GetAccountSendingEnabled": [ + { + "output": { + "Enabled": true + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example returns if sending status for an account is enabled. (true / false):", + "id": "getaccountsendingenabled-1469047741333", + "title": "GetAccountSendingEnabled" + } + ], "GetIdentityDkimAttributes": [ { "input": { @@ -367,6 +383,8 @@ "NotificationAttributes": { "example.com": { "BounceTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:ExampleTopic", + "ComplaintTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:ExampleTopic", + "DeliveryTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:ExampleTopic", "ForwardingEnabled": true, "HeadersInBounceNotificationsEnabled": false, "HeadersInComplaintNotificationsEnabled": false, @@ -845,6 +863,56 @@ "title": "SetReceiptRulePosition" } ], + "UpdateAccountSendingEnabled": [ + { + "input": { + "Enabled": true + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example updated the sending status for this account.", + "id": "updateaccountsendingenabled-1469047741333", + "title": "UpdateAccountSendingEnabled" + } + ], + "UpdateConfigurationSetReputationMetricsEnabled": [ + { + "input": { + "ConfigurationSetName": "foo", + "Enabled": true + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "Set the reputationMetricsEnabled flag for a specific configuration set.", + "id": "updateconfigurationsetreputationmetricsenabled-2362747741333", + "title": "UpdateConfigurationSetReputationMetricsEnabled" + } + ], + "UpdateConfigurationSetSendingEnabled": [ + { + "input": { + "ConfigurationSetName": "foo", + "Enabled": true + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "Set the sending enabled flag for a specific configuration set.", + "id": "updateconfigurationsetsendingenabled-2362747741333", + "title": "UpdateConfigurationSetReputationMetricsEnabled" + } + ], "UpdateReceiptRule": [ { "input": { diff --git a/models/apis/email/2010-12-01/paginators-1.json b/models/apis/email/2010-12-01/paginators-1.json index e12811f5e13..8a21098f84f 100644 --- a/models/apis/email/2010-12-01/paginators-1.json +++ b/models/apis/email/2010-12-01/paginators-1.json @@ -2,12 +2,12 @@ "pagination": { "ListIdentities": { "input_token": "NextToken", - "output_token": "NextToken", "limit_key": "MaxItems", + "output_token": "NextToken", "result_key": "Identities" }, "ListVerifiedEmailAddresses": { "result_key": "VerifiedEmailAddresses" } } -} +} \ No newline at end of file diff --git a/models/apis/es/2015-01-01/api-2.json b/models/apis/es/2015-01-01/api-2.json index ffc6e0086b1..b97d829b093 100644 --- a/models/apis/es/2015-01-01/api-2.json +++ b/models/apis/es/2015-01-01/api-2.json @@ -56,6 +56,18 @@ {"shape":"ValidationException"} ] }, + "DeleteElasticsearchServiceRole":{ + "name":"DeleteElasticsearchServiceRole", + "http":{ + "method":"DELETE", + "requestUri":"/2015-01-01/es/role" + }, + "errors":[ + {"shape":"BaseException"}, + {"shape":"InternalException"}, + {"shape":"ValidationException"} + ] + }, "DescribeElasticsearchDomain":{ "name":"DescribeElasticsearchDomain", "http":{ @@ -264,6 +276,7 @@ "exception":true }, "Boolean":{"type":"boolean"}, + "CloudWatchLogsLogGroupArn":{"type":"string"}, "CreateElasticsearchDomainRequest":{ "type":"structure", "required":["DomainName"], @@ -274,7 +287,9 @@ "EBSOptions":{"shape":"EBSOptions"}, "AccessPolicies":{"shape":"PolicyDocument"}, "SnapshotOptions":{"shape":"SnapshotOptions"}, - "AdvancedOptions":{"shape":"AdvancedOptions"} + "VPCOptions":{"shape":"VPCOptions"}, + "AdvancedOptions":{"shape":"AdvancedOptions"}, + "LogPublishingOptions":{"shape":"LogPublishingOptions"} } }, "CreateElasticsearchDomainResponse":{ @@ -468,7 +483,13 @@ "r4.2xlarge.elasticsearch", "r4.4xlarge.elasticsearch", "r4.8xlarge.elasticsearch", - "r4.16xlarge.elasticsearch" + "r4.16xlarge.elasticsearch", + "i3.large.elasticsearch", + "i3.xlarge.elasticsearch", + "i3.2xlarge.elasticsearch", + "i3.4xlarge.elasticsearch", + "i3.8xlarge.elasticsearch", + "i3.16xlarge.elasticsearch" ] }, "ElasticsearchClusterConfig":{ @@ -501,7 +522,9 @@ "EBSOptions":{"shape":"EBSOptionsStatus"}, "AccessPolicies":{"shape":"AccessPoliciesStatus"}, "SnapshotOptions":{"shape":"SnapshotOptionsStatus"}, - "AdvancedOptions":{"shape":"AdvancedOptionsStatus"} + "VPCOptions":{"shape":"VPCDerivedInfoStatus"}, + "AdvancedOptions":{"shape":"AdvancedOptionsStatus"}, + "LogPublishingOptions":{"shape":"LogPublishingOptionsStatus"} } }, "ElasticsearchDomainStatus":{ @@ -519,13 +542,16 @@ "Created":{"shape":"Boolean"}, "Deleted":{"shape":"Boolean"}, "Endpoint":{"shape":"ServiceUrl"}, + "Endpoints":{"shape":"EndpointsMap"}, "Processing":{"shape":"Boolean"}, "ElasticsearchVersion":{"shape":"ElasticsearchVersionString"}, "ElasticsearchClusterConfig":{"shape":"ElasticsearchClusterConfig"}, "EBSOptions":{"shape":"EBSOptions"}, "AccessPolicies":{"shape":"PolicyDocument"}, "SnapshotOptions":{"shape":"SnapshotOptions"}, - "AdvancedOptions":{"shape":"AdvancedOptions"} + "VPCOptions":{"shape":"VPCDerivedInfo"}, + "AdvancedOptions":{"shape":"AdvancedOptions"}, + "LogPublishingOptions":{"shape":"LogPublishingOptions"} } }, "ElasticsearchDomainStatusList":{ @@ -552,6 +578,11 @@ } }, "ElasticsearchVersionString":{"type":"string"}, + "EndpointsMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"ServiceUrl"} + }, "ErrorMessage":{"type":"string"}, "InstanceCountLimits":{ "type":"structure", @@ -686,6 +717,32 @@ "TagList":{"shape":"TagList"} } }, + "LogPublishingOption":{ + "type":"structure", + "members":{ + "CloudWatchLogsLogGroupArn":{"shape":"CloudWatchLogsLogGroupArn"}, + "Enabled":{"shape":"Boolean"} + } + }, + "LogPublishingOptions":{ + "type":"map", + "key":{"shape":"LogType"}, + "value":{"shape":"LogPublishingOption"} + }, + "LogPublishingOptionsStatus":{ + "type":"structure", + "members":{ + "Options":{"shape":"LogPublishingOptions"}, + "Status":{"shape":"OptionStatus"} + } + }, + "LogType":{ + "type":"string", + "enum":[ + "INDEX_SLOW_LOGS", + "SEARCH_SLOW_LOGS" + ] + }, "MaxResults":{ "type":"integer", "max":100 @@ -831,8 +888,10 @@ "ElasticsearchClusterConfig":{"shape":"ElasticsearchClusterConfig"}, "EBSOptions":{"shape":"EBSOptions"}, "SnapshotOptions":{"shape":"SnapshotOptions"}, + "VPCOptions":{"shape":"VPCOptions"}, "AdvancedOptions":{"shape":"AdvancedOptions"}, - "AccessPolicies":{"shape":"PolicyDocument"} + "AccessPolicies":{"shape":"PolicyDocument"}, + "LogPublishingOptions":{"shape":"LogPublishingOptions"} } }, "UpdateElasticsearchDomainConfigResponse":{ @@ -843,6 +902,33 @@ } }, "UpdateTimestamp":{"type":"timestamp"}, + "VPCDerivedInfo":{ + "type":"structure", + "members":{ + "VPCId":{"shape":"String"}, + "SubnetIds":{"shape":"StringList"}, + "AvailabilityZones":{"shape":"StringList"}, + "SecurityGroupIds":{"shape":"StringList"} + } + }, + "VPCDerivedInfoStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{"shape":"VPCDerivedInfo"}, + "Status":{"shape":"OptionStatus"} + } + }, + "VPCOptions":{ + "type":"structure", + "members":{ + "SubnetIds":{"shape":"StringList"}, + "SecurityGroupIds":{"shape":"StringList"} + } + }, "ValidationException":{ "type":"structure", "members":{ diff --git a/models/apis/es/2015-01-01/docs-2.json b/models/apis/es/2015-01-01/docs-2.json index 0d460bbd126..82ee4031bc9 100644 --- a/models/apis/es/2015-01-01/docs-2.json +++ b/models/apis/es/2015-01-01/docs-2.json @@ -5,6 +5,7 @@ "AddTags": "

Attaches tags to an existing Elasticsearch domain. Tags are a set of case-sensitive key value pairs. An Elasticsearch domain may have up to 10 tags. See Tagging Amazon Elasticsearch Service Domains for more information.

", "CreateElasticsearchDomain": "

Creates a new Elasticsearch domain. For more information, see Creating Elasticsearch Domains in the Amazon Elasticsearch Service Developer Guide.

", "DeleteElasticsearchDomain": "

Permanently deletes the specified Elasticsearch domain and all of its data. Once a domain is deleted, it cannot be recovered.

", + "DeleteElasticsearchServiceRole": "

Deletes the service-linked role that Elasticsearch Service uses to manage and maintain VPC domains. Role deletion will fail if any existing VPC domains use the role. You must delete any such Elasticsearch domains before deleting the role. See Deleting Elasticsearch Service Role in VPC Endpoints for Amazon Elasticsearch Service Domains.

", "DescribeElasticsearchDomain": "

Returns domain configuration information about the specified Elasticsearch domain, including the domain ID, domain endpoint, and domain ARN.

", "DescribeElasticsearchDomainConfig": "

Provides cluster configuration information about the specified Elasticsearch domain, such as the state, creation date, update version, and update date for cluster options.

", "DescribeElasticsearchDomains": "

Returns domain configuration information about the specified Elasticsearch domains, including the domain ID, domain endpoint, and domain ARN.

", @@ -78,9 +79,16 @@ "ElasticsearchDomainStatus$Created": "

The domain creation status. True if the creation of an Elasticsearch domain is complete. False if domain creation is still in progress.

", "ElasticsearchDomainStatus$Deleted": "

The domain deletion status. True if a delete request has been received for the domain but resource cleanup is still in progress. False if the domain has not been deleted. Once domain deletion is complete, the status of the domain is no longer returned.

", "ElasticsearchDomainStatus$Processing": "

The status of the Elasticsearch domain configuration. True if Amazon Elasticsearch Service is processing configuration changes. False if the configuration is active.

", + "LogPublishingOption$Enabled": "

Specifies whether given log publishing option is enabled or not.

", "OptionStatus$PendingDeletion": "

Indicates whether the Elasticsearch domain is being deleted.

" } }, + "CloudWatchLogsLogGroupArn": { + "base": "

ARN of the Cloudwatch log group to which log needs to be published.

", + "refs": { + "LogPublishingOption$CloudWatchLogsLogGroupArn": null + } + }, "CreateElasticsearchDomainRequest": { "base": null, "refs": { @@ -275,6 +283,12 @@ "ListElasticsearchInstanceTypesRequest$ElasticsearchVersion": "

Version of Elasticsearch for which list of supported elasticsearch instance types are needed.

" } }, + "EndpointsMap": { + "base": null, + "refs": { + "ElasticsearchDomainStatus$Endpoints": "

Map containing the Elasticsearch domain endpoints used to submit index and search requests. Example key, value: 'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'.

" + } + }, "ErrorMessage": { "base": null, "refs": { @@ -391,6 +405,33 @@ "refs": { } }, + "LogPublishingOption": { + "base": "

Log Publishing option that is set for given domain.
Attributes and their details:

", + "refs": { + "LogPublishingOptions$value": null + } + }, + "LogPublishingOptions": { + "base": null, + "refs": { + "CreateElasticsearchDomainRequest$LogPublishingOptions": "

Map of LogType and LogPublishingOption, each containing options to publish a given type of Elasticsearch log.

", + "ElasticsearchDomainStatus$LogPublishingOptions": "

Log publishing options for the given domain.

", + "LogPublishingOptionsStatus$Options": "

The log publishing options configured for the Elasticsearch domain.

", + "UpdateElasticsearchDomainConfigRequest$LogPublishingOptions": "

Map of LogType and LogPublishingOption, each containing options to publish a given type of Elasticsearch log.

" + } + }, + "LogPublishingOptionsStatus": { + "base": "

The configured log publishing options for the domain and their current status.

", + "refs": { + "ElasticsearchDomainConfig$LogPublishingOptions": "

Log publishing options for the given domain.

" + } + }, + "LogType": { + "base": "

Type of Log File, it can be one of the following:

", + "refs": { + "LogPublishingOptions$key": null + } + }, "MaxResults": { "base": "

Set this value to limit the number of results returned.

", "refs": { @@ -433,7 +474,9 @@ "EBSOptionsStatus$Status": "

Specifies the status of the EBS options for the specified Elasticsearch domain.

", "ElasticsearchClusterConfigStatus$Status": "

Specifies the status of the configuration for the specified Elasticsearch domain.

", "ElasticsearchVersionStatus$Status": "

Specifies the status of the Elasticsearch version options for the specified Elasticsearch domain.

", - "SnapshotOptionsStatus$Status": "

Specifies the status of a daily automated snapshot.

" + "LogPublishingOptionsStatus$Status": "

The status of the log publishing options for the Elasticsearch domain. See OptionStatus for the status information that's included.

", + "SnapshotOptionsStatus$Status": "

Specifies the status of a daily automated snapshot.

", + "VPCDerivedInfoStatus$Status": "

Specifies the status of the VPC options for the specified Elasticsearch domain.

" } }, "PolicyDocument": { @@ -463,7 +506,8 @@ "ServiceUrl": { "base": "

The endpoint to which service requests are submitted. For example, search-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.es.amazonaws.com or doc-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.es.amazonaws.com.

", "refs": { - "ElasticsearchDomainStatus$Endpoint": "

The Elasticsearch domain endpoint that you use to submit index and search requests.

" + "ElasticsearchDomainStatus$Endpoint": "

The Elasticsearch domain endpoint that you use to submit index and search requests.

", + "EndpointsMap$value": null } }, "SnapshotOptions": { @@ -522,13 +566,20 @@ "refs": { "AdvancedOptions$key": null, "AdvancedOptions$value": null, - "StringList$member": null + "EndpointsMap$key": null, + "StringList$member": null, + "VPCDerivedInfo$VPCId": "

The VPC Id for the Elasticsearch domain. Exists only if the domain was created with VPCOptions.

" } }, "StringList": { "base": null, "refs": { - "RemoveTagsRequest$TagKeys": "

Specifies the TagKey list which you want to remove from the Elasticsearch domain.

" + "RemoveTagsRequest$TagKeys": "

Specifies the TagKey list which you want to remove from the Elasticsearch domain.

", + "VPCDerivedInfo$SubnetIds": "

Specifies the subnets for VPC endpoint.

", + "VPCDerivedInfo$AvailabilityZones": "

The availability zones for the Elasticsearch domain. Exists only if the domain was created with VPCOptions.

", + "VPCDerivedInfo$SecurityGroupIds": "

Specifies the security groups for VPC endpoint.

", + "VPCOptions$SubnetIds": "

Specifies the subnets for VPC endpoint.

", + "VPCOptions$SecurityGroupIds": "

Specifies the security groups for VPC endpoint.

" } }, "Tag": { @@ -579,6 +630,26 @@ "OptionStatus$UpdateDate": "

Timestamp which tells the last updated time for the entity.

" } }, + "VPCDerivedInfo": { + "base": "

Options to specify the subnets and security groups for VPC endpoint. For more information, see VPC Endpoints for Amazon Elasticsearch Service Domains.

", + "refs": { + "ElasticsearchDomainStatus$VPCOptions": "

The VPCOptions for the specified domain. For more information, see VPC Endpoints for Amazon Elasticsearch Service Domains.

", + "VPCDerivedInfoStatus$Options": "

Specifies the VPC options for the specified Elasticsearch domain.

" + } + }, + "VPCDerivedInfoStatus": { + "base": "

Status of the VPC options for the specified Elasticsearch domain.

", + "refs": { + "ElasticsearchDomainConfig$VPCOptions": "

The VPCOptions for the specified domain. For more information, see VPC Endpoints for Amazon Elasticsearch Service Domains.

" + } + }, + "VPCOptions": { + "base": "

Options to specify the subnets and security groups for VPC endpoint. For more information, see VPC Endpoints for Amazon Elasticsearch Service Domains.

", + "refs": { + "CreateElasticsearchDomainRequest$VPCOptions": "

Options to specify the subnets and security groups for VPC endpoint. For more information, see Creating a VPC in VPC Endpoints for Amazon Elasticsearch Service Domains

", + "UpdateElasticsearchDomainConfigRequest$VPCOptions": "

Options to specify the subnets and security groups for VPC endpoint. For more information, see Creating a VPC in VPC Endpoints for Amazon Elasticsearch Service Domains

" + } + }, "ValidationException": { "base": "

An exception for missing / invalid input fields. Gives http status code of 400.

", "refs": { diff --git a/models/apis/events/2015-10-07/api-2.json b/models/apis/events/2015-10-07/api-2.json index 16fdb89dea1..acfd4b24c24 100644 --- a/models/apis/events/2015-10-07/api-2.json +++ b/models/apis/events/2015-10-07/api-2.json @@ -134,7 +134,8 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"PolicyLengthExceededException"}, - {"shape":"InternalException"} + {"shape":"InternalException"}, + {"shape":"ConcurrentModificationException"} ] }, "PutRule":{ @@ -176,7 +177,8 @@ "input":{"shape":"RemovePermissionRequest"}, "errors":[ {"shape":"ResourceNotFoundException"}, - {"shape":"InternalException"} + {"shape":"InternalException"}, + {"shape":"ConcurrentModificationException"} ] }, "RemoveTargets":{ diff --git a/models/apis/events/2015-10-07/docs-2.json b/models/apis/events/2015-10-07/docs-2.json index 31c8073e102..9a02593a1db 100644 --- a/models/apis/events/2015-10-07/docs-2.json +++ b/models/apis/events/2015-10-07/docs-2.json @@ -11,9 +11,9 @@ "ListRules": "

Lists your Amazon CloudWatch Events rules. You can either list all the rules or you can provide a prefix to match to the rule names.

", "ListTargetsByRule": "

Lists the targets assigned to the specified rule.

", "PutEvents": "

Sends custom events to Amazon CloudWatch Events so that they can be matched to rules.

", - "PutPermission": "

Running PutPermission permits the specified AWS account to put events to your account's default event bus. CloudWatch Events rules in your account are triggered by these events arriving to your default event bus.

For another account to send events to your account, that external account must have a CloudWatch Events rule with your account's default event bus as a target.

To enable multiple AWS accounts to put events to your default event bus, run PutPermission once for each of these accounts.

", + "PutPermission": "

Running PutPermission permits the specified AWS account to put events to your account's default event bus. CloudWatch Events rules in your account are triggered by these events arriving to your default event bus.

For another account to send events to your account, that external account must have a CloudWatch Events rule with your account's default event bus as a target.

To enable multiple AWS accounts to put events to your default event bus, run PutPermission once for each of these accounts.

The permission policy on the default event bus cannot exceed 10KB in size.

", "PutRule": "

Creates or updates the specified rule. Rules are enabled by default, or based on value of the state. You can disable a rule using DisableRule.

When you create or update a rule, incoming events might not immediately start matching to new or updated rules. Please allow a short period of time for changes to take effect.

A rule must contain at least an EventPattern or ScheduleExpression. Rules with EventPatterns are triggered when a matching event is observed. Rules with ScheduleExpressions self-trigger based on the given schedule. A rule can have both an EventPattern and a ScheduleExpression, in which case the rule triggers on matching events as well as on a schedule.

Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, CloudWatch Events uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match.

", - "PutTargets": "

Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule.

Targets are the resources that are invoked when a rule is triggered.

You can configure the following as targets for CloudWatch Events:

Note that creating rules with built-in targets is supported only in the AWS Management Console.

For some target types, PutTargets provides target-specific parameters. If the target is an Amazon Kinesis stream, you can optionally specify which shard the event goes to by using the KinesisParameters argument. To invoke a command on multiple EC2 instances with one rule, you can use the RunCommandParameters field.

To be able to make API calls against the resources that you own, Amazon CloudWatch Events needs the appropriate permissions. For AWS Lambda and Amazon SNS resources, CloudWatch Events relies on resource-based policies. For EC2 instances, Amazon Kinesis streams, and AWS Step Functions state machines, CloudWatch Events relies on IAM roles that you specify in the RoleARN argument in PutTargets. For more information, see Authentication and Access Control in the Amazon CloudWatch Events User Guide.

If another AWS account is in the same region and has granted you permission (using PutPermission), you can set that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the Arn when you run PutTargets. For more information about enabling cross-account events, see PutPermission.

Input, InputPath and InputTransformer are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event:

When you specify Input, InputPath, or InputTransformer, you must use JSON dot notation, not bracket notation.

When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Please allow a short period of time for changes to take effect.

This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code.

", + "PutTargets": "

Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule.

Targets are the resources that are invoked when a rule is triggered.

You can configure the following as targets for CloudWatch Events:

Note that creating rules with built-in targets is supported only in the AWS Management Console.

For some target types, PutTargets provides target-specific parameters. If the target is an Amazon Kinesis stream, you can optionally specify which shard the event goes to by using the KinesisParameters argument. To invoke a command on multiple EC2 instances with one rule, you can use the RunCommandParameters field.

To be able to make API calls against the resources that you own, Amazon CloudWatch Events needs the appropriate permissions. For AWS Lambda and Amazon SNS resources, CloudWatch Events relies on resource-based policies. For EC2 instances, Amazon Kinesis streams, and AWS Step Functions state machines, CloudWatch Events relies on IAM roles that you specify in the RoleARN argument in PutTargets. For more information, see Authentication and Access Control in the Amazon CloudWatch Events User Guide.

If another AWS account is in the same region and has granted you permission (using PutPermission), you can send events to that account by setting that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the Arn when you run PutTargets. If your account sends events to another account, your account is charged for each sent event. Each event sent to antoher account is charged as a custom event. The account receiving the event is not charged. For more information on pricing, see Amazon CloudWatch Pricing.

For more information about enabling cross-account events, see PutPermission.

Input, InputPath and InputTransformer are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event:

When you specify Input, InputPath, or InputTransformer, you must use JSON dot notation, not bracket notation.

When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Please allow a short period of time for changes to take effect.

This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code.

", "RemovePermission": "

Revokes the permission of another AWS account to be able to put events to your default event bus. Specify the account to revoke by the StatementId value that you associated with the account when you granted it permission with PutPermission. You can find the StatementId by using DescribeEventBus.

", "RemoveTargets": "

Removes the specified targets from the specified rule. When the rule is triggered, those targets are no longer be invoked.

When you remove a target, when the associated rule triggers, removed targets might continue to be invoked. Please allow a short period of time for changes to take effect.

This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code.

", "TestEventPattern": "

Tests whether the specified event pattern matches the provided event.

Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, CloudWatch Events uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match.

" diff --git a/models/apis/firehose/2015-08-04/api-2.json b/models/apis/firehose/2015-08-04/api-2.json index 2e21535ca1c..81a975699cc 100644 --- a/models/apis/firehose/2015-08-04/api-2.json +++ b/models/apis/firehose/2015-08-04/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"Firehose", "serviceFullName":"Amazon Kinesis Firehose", + "serviceId":"Firehose", "signatureVersion":"v4", "targetPrefix":"Firehose_20150804", "uid":"firehose-2015-08-04" @@ -169,13 +170,16 @@ "required":["DeliveryStreamName"], "members":{ "DeliveryStreamName":{"shape":"DeliveryStreamName"}, + "DeliveryStreamType":{"shape":"DeliveryStreamType"}, + "KinesisStreamSourceConfiguration":{"shape":"KinesisStreamSourceConfiguration"}, "S3DestinationConfiguration":{ "shape":"S3DestinationConfiguration", "deprecated":true }, "ExtendedS3DestinationConfiguration":{"shape":"ExtendedS3DestinationConfiguration"}, "RedshiftDestinationConfiguration":{"shape":"RedshiftDestinationConfiguration"}, - "ElasticsearchDestinationConfiguration":{"shape":"ElasticsearchDestinationConfiguration"} + "ElasticsearchDestinationConfiguration":{"shape":"ElasticsearchDestinationConfiguration"}, + "SplunkDestinationConfiguration":{"shape":"SplunkDestinationConfiguration"} } }, "CreateDeliveryStreamOutput":{ @@ -206,6 +210,7 @@ "members":{ } }, + "DeliveryStartTimestamp":{"type":"timestamp"}, "DeliveryStreamARN":{ "type":"string", "max":512, @@ -218,6 +223,7 @@ "DeliveryStreamName", "DeliveryStreamARN", "DeliveryStreamStatus", + "DeliveryStreamType", "VersionId", "Destinations", "HasMoreDestinations" @@ -226,9 +232,11 @@ "DeliveryStreamName":{"shape":"DeliveryStreamName"}, "DeliveryStreamARN":{"shape":"DeliveryStreamARN"}, "DeliveryStreamStatus":{"shape":"DeliveryStreamStatus"}, + "DeliveryStreamType":{"shape":"DeliveryStreamType"}, "VersionId":{"shape":"DeliveryStreamVersionId"}, "CreateTimestamp":{"shape":"Timestamp"}, "LastUpdateTimestamp":{"shape":"Timestamp"}, + "Source":{"shape":"SourceDescription"}, "Destinations":{"shape":"DestinationDescriptionList"}, "HasMoreDestinations":{"shape":"BooleanObject"} } @@ -251,6 +259,13 @@ "ACTIVE" ] }, + "DeliveryStreamType":{ + "type":"string", + "enum":[ + "DirectPut", + "KinesisStreamAsSource" + ] + }, "DeliveryStreamVersionId":{ "type":"string", "max":50, @@ -286,7 +301,8 @@ "S3DestinationDescription":{"shape":"S3DestinationDescription"}, "ExtendedS3DestinationDescription":{"shape":"ExtendedS3DestinationDescription"}, "RedshiftDestinationDescription":{"shape":"RedshiftDestinationDescription"}, - "ElasticsearchDestinationDescription":{"shape":"ElasticsearchDestinationDescription"} + "ElasticsearchDestinationDescription":{"shape":"ElasticsearchDestinationDescription"}, + "SplunkDestinationDescription":{"shape":"SplunkDestinationDescription"} } }, "DestinationDescriptionList":{ @@ -478,6 +494,20 @@ "S3BackupUpdate":{"shape":"S3DestinationUpdate"} } }, + "HECAcknowledgmentTimeoutInSeconds":{ + "type":"integer", + "max":600, + "min":180 + }, + "HECEndpoint":{"type":"string"}, + "HECEndpointType":{ + "type":"string", + "enum":[ + "Raw", + "Event" + ] + }, + "HECToken":{"type":"string"}, "IntervalInSeconds":{ "type":"integer", "max":900, @@ -497,6 +527,31 @@ "AWSKMSKeyARN":{"shape":"AWSKMSKeyARN"} } }, + "KinesisStreamARN":{ + "type":"string", + "max":512, + "min":1, + "pattern":"arn:.*" + }, + "KinesisStreamSourceConfiguration":{ + "type":"structure", + "required":[ + "KinesisStreamARN", + "RoleARN" + ], + "members":{ + "KinesisStreamARN":{"shape":"KinesisStreamARN"}, + "RoleARN":{"shape":"RoleARN"} + } + }, + "KinesisStreamSourceDescription":{ + "type":"structure", + "members":{ + "KinesisStreamARN":{"shape":"KinesisStreamARN"}, + "RoleARN":{"shape":"RoleARN"}, + "DeliveryStartTimestamp":{"shape":"DeliveryStartTimestamp"} + } + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -508,6 +563,7 @@ "type":"structure", "members":{ "Limit":{"shape":"ListDeliveryStreamsInputLimit"}, + "DeliveryStreamType":{"shape":"DeliveryStreamType"}, "ExclusiveStartDeliveryStreamName":{"shape":"DeliveryStreamName"} } }, @@ -581,7 +637,10 @@ "type":"string", "enum":[ "LambdaArn", - "NumberOfRetries" + "NumberOfRetries", + "RoleArn", + "BufferSizeInMBs", + "BufferIntervalInSeconds" ] }, "ProcessorParameterValue":{ @@ -831,6 +890,78 @@ "max":128, "min":1 }, + "SourceDescription":{ + "type":"structure", + "members":{ + "KinesisStreamSourceDescription":{"shape":"KinesisStreamSourceDescription"} + } + }, + "SplunkDestinationConfiguration":{ + "type":"structure", + "required":[ + "HECEndpoint", + "HECEndpointType", + "HECToken", + "S3Configuration" + ], + "members":{ + "HECEndpoint":{"shape":"HECEndpoint"}, + "HECEndpointType":{"shape":"HECEndpointType"}, + "HECToken":{"shape":"HECToken"}, + "HECAcknowledgmentTimeoutInSeconds":{"shape":"HECAcknowledgmentTimeoutInSeconds"}, + "RetryOptions":{"shape":"SplunkRetryOptions"}, + "S3BackupMode":{"shape":"SplunkS3BackupMode"}, + "S3Configuration":{"shape":"S3DestinationConfiguration"}, + "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, + "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"} + } + }, + "SplunkDestinationDescription":{ + "type":"structure", + "members":{ + "HECEndpoint":{"shape":"HECEndpoint"}, + "HECEndpointType":{"shape":"HECEndpointType"}, + "HECToken":{"shape":"HECToken"}, + "HECAcknowledgmentTimeoutInSeconds":{"shape":"HECAcknowledgmentTimeoutInSeconds"}, + "RetryOptions":{"shape":"SplunkRetryOptions"}, + "S3BackupMode":{"shape":"SplunkS3BackupMode"}, + "S3DestinationDescription":{"shape":"S3DestinationDescription"}, + "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, + "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"} + } + }, + "SplunkDestinationUpdate":{ + "type":"structure", + "members":{ + "HECEndpoint":{"shape":"HECEndpoint"}, + "HECEndpointType":{"shape":"HECEndpointType"}, + "HECToken":{"shape":"HECToken"}, + "HECAcknowledgmentTimeoutInSeconds":{"shape":"HECAcknowledgmentTimeoutInSeconds"}, + "RetryOptions":{"shape":"SplunkRetryOptions"}, + "S3BackupMode":{"shape":"SplunkS3BackupMode"}, + "S3Update":{"shape":"S3DestinationUpdate"}, + "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, + "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"} + } + }, + "SplunkRetryDurationInSeconds":{ + "type":"integer", + "max":7200, + "min":0 + }, + "SplunkRetryOptions":{ + "type":"structure", + "members":{ + "DurationInSeconds":{"shape":"SplunkRetryDurationInSeconds"} + } + }, + "SplunkS3BackupMode":{ + "type":"string", + "enum":[ + "FailedEventsOnly", + "AllEvents" + ] + }, "Timestamp":{"type":"timestamp"}, "UpdateDestinationInput":{ "type":"structure", @@ -849,7 +980,8 @@ }, "ExtendedS3DestinationUpdate":{"shape":"ExtendedS3DestinationUpdate"}, "RedshiftDestinationUpdate":{"shape":"RedshiftDestinationUpdate"}, - "ElasticsearchDestinationUpdate":{"shape":"ElasticsearchDestinationUpdate"} + "ElasticsearchDestinationUpdate":{"shape":"ElasticsearchDestinationUpdate"}, + "SplunkDestinationUpdate":{"shape":"SplunkDestinationUpdate"} } }, "UpdateDestinationOutput":{ diff --git a/models/apis/firehose/2015-08-04/docs-2.json b/models/apis/firehose/2015-08-04/docs-2.json index c06142063b2..a20bcb3f3d0 100644 --- a/models/apis/firehose/2015-08-04/docs-2.json +++ b/models/apis/firehose/2015-08-04/docs-2.json @@ -1,14 +1,14 @@ { "version": "2.0", - "service": "Amazon Kinesis Firehose API Reference

Amazon Kinesis Firehose is a fully-managed service that delivers real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon Elasticsearch Service (Amazon ES), and Amazon Redshift.

", + "service": "Amazon Kinesis Firehose API Reference

Amazon Kinesis Firehose is a fully managed service that delivers real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon Elasticsearch Service (Amazon ES), and Amazon Redshift.

", "operations": { - "CreateDeliveryStream": "

Creates a delivery stream.

By default, you can create up to 20 delivery streams per region.

This is an asynchronous operation that immediately returns. The initial status of the delivery stream is CREATING. After the delivery stream is created, its status is ACTIVE and it now accepts data. Attempts to send data to a delivery stream that is not in the ACTIVE state cause an exception. To check the state of a delivery stream, use DescribeDeliveryStream.

A delivery stream is configured with a single destination: Amazon S3, Amazon Elasticsearch Service, or Amazon Redshift. You must specify only one of the following destination configuration parameters: ExtendedS3DestinationConfiguration, S3DestinationConfiguration, ElasticsearchDestinationConfiguration, or RedshiftDestinationConfiguration.

When you specify S3DestinationConfiguration, you can also provide the following optional values: BufferingHints, EncryptionConfiguration, and CompressionFormat. By default, if no BufferingHints value is provided, Firehose buffers data up to 5 MB or for 5 minutes, whichever condition is satisfied first. Note that BufferingHints is a hint, so there are some cases where the service cannot adhere to these conditions strictly; for example, record boundaries are such that the size is a little over or under the configured buffering size. By default, no encryption is performed. We strongly recommend that you enable encryption to ensure secure data storage in Amazon S3.

A few notes about Amazon Redshift as a destination:

Firehose assumes the IAM role that is configured as part of the destination. The role should allow the Firehose principal to assume the role, and the role should have permissions that allows the service to deliver the data. For more information, see Amazon S3 Bucket Access in the Amazon Kinesis Firehose Developer Guide.

", + "CreateDeliveryStream": "

Creates a delivery stream.

By default, you can create up to 20 delivery streams per region.

This is an asynchronous operation that immediately returns. The initial status of the delivery stream is CREATING. After the delivery stream is created, its status is ACTIVE and it now accepts data. Attempts to send data to a delivery stream that is not in the ACTIVE state cause an exception. To check the state of a delivery stream, use DescribeDeliveryStream.

A Kinesis Firehose delivery stream can be configured to receive records directly from providers using PutRecord or PutRecordBatch, or it can be configured to use an existing Kinesis stream as its source. To specify a Kinesis stream as input, set the DeliveryStreamType parameter to KinesisStreamAsSource, and provide the Kinesis stream ARN and role ARN in the KinesisStreamSourceConfiguration parameter.

A delivery stream is configured with a single destination: Amazon S3, Amazon ES, or Amazon Redshift. You must specify only one of the following destination configuration parameters: ExtendedS3DestinationConfiguration, S3DestinationConfiguration, ElasticsearchDestinationConfiguration, or RedshiftDestinationConfiguration.

When you specify S3DestinationConfiguration, you can also provide the following optional values: BufferingHints, EncryptionConfiguration, and CompressionFormat. By default, if no BufferingHints value is provided, Kinesis Firehose buffers data up to 5 MB or for 5 minutes, whichever condition is satisfied first. Note that BufferingHints is a hint, so there are some cases where the service cannot adhere to these conditions strictly; for example, record boundaries are such that the size is a little over or under the configured buffering size. By default, no encryption is performed. We strongly recommend that you enable encryption to ensure secure data storage in Amazon S3.

A few notes about Amazon Redshift as a destination:

Kinesis Firehose assumes the IAM role that is configured as part of the destination. The role should allow the Kinesis Firehose principal to assume the role, and the role should have permissions that allow the service to deliver the data. For more information, see Amazon S3 Bucket Access in the Amazon Kinesis Firehose Developer Guide.

", "DeleteDeliveryStream": "

Deletes a delivery stream and its data.

You can delete a delivery stream only if it is in ACTIVE or DELETING state, and not in the CREATING state. While the deletion request is in process, the delivery stream is in the DELETING state.

To check the state of a delivery stream, use DescribeDeliveryStream.

While the delivery stream is DELETING state, the service may continue to accept the records, but the service doesn't make any guarantees with respect to delivering the data. Therefore, as a best practice, you should first stop any applications that are sending records before deleting a delivery stream.

", "DescribeDeliveryStream": "

Describes the specified delivery stream and gets the status. For example, after your delivery stream is created, call DescribeDeliveryStream to see if the delivery stream is ACTIVE and therefore ready for data to be sent to it.

", "ListDeliveryStreams": "

Lists your delivery streams.

The number of delivery streams might be too large to return using a single call to ListDeliveryStreams. You can limit the number of delivery streams returned, using the Limit parameter. To determine whether there are more delivery streams to list, check the value of HasMoreDeliveryStreams in the output. If there are more delivery streams to list, you can request them by specifying the name of the last delivery stream returned in the call in the ExclusiveStartDeliveryStreamName parameter of a subsequent call.

", - "PutRecord": "

Writes a single data record into an Amazon Kinesis Firehose delivery stream. To write multiple data records into a delivery stream, use PutRecordBatch. Applications using these operations are referred to as producers.

By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. Note that if you use PutRecord and PutRecordBatch, the limits are an aggregate across these two operations for each delivery stream. For more information about limits and how to request an increase, see Amazon Kinesis Firehose Limits.

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data, for example, a segment from a log file, geographic location data, web site clickstream data, etc.

Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\\n) or some other character unique within the data. This allows the consumer application(s) to parse individual data items when reading the data from the destination.

The PutRecord operation returns a RecordId, which is a unique string assigned to each record. Producer applications can use this ID for purposes such as auditability and investigation.

If the PutRecord operation throws a ServiceUnavailableException, back off and retry. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream.

Data records sent to Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available.

", - "PutRecordBatch": "

Writes multiple data records into a delivery stream in a single call, which can achieve higher throughput per producer than when writing single records. To write single data records into a delivery stream, use PutRecord. Applications using these operations are referred to as producers.

By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. Note that if you use PutRecord and PutRecordBatch, the limits are an aggregate across these two operations for each delivery stream. For more information about limits, see Amazon Kinesis Firehose Limits.

Each PutRecordBatch request supports up to 500 records. Each record in the request can be as large as 1,000 KB (before 64-bit encoding), up to a limit of 4 MB for the entire request. These limits cannot be changed.

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data, for example, a segment from a log file, geographic location data, web site clickstream data, and so on.

Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\\n) or some other character unique within the data. This allows the consumer application(s) to parse individual data items when reading the data from the destination.

The PutRecordBatch response includes a count of failed records, FailedPutCount, and an array of responses, RequestResponses. Each entry in the RequestResponses array provides additional information about the processed record, and directly correlates with a record in the request array using the same ordering, from the top to the bottom. The response array always includes the same number of records as the request array. RequestResponses includes both successfully and unsuccessfully processed records. Firehose attempts to process all records in each PutRecordBatch request. A single record failure does not stop the processing of subsequent records.

A successfully processed record includes a RecordId value, which is unique for the record. An unsuccessfully processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error, and is one of the following values: ServiceUnavailable or InternalFailure. ErrorMessage provides more detailed information about the error.

If there is an internal server error or a timeout, the write might have completed or it might have failed. If FailedPutCount is greater than 0, retry the request, resending only those records that might have failed processing. This minimizes the possible duplicate records and also reduces the total bytes sent (and corresponding charges). We recommend that you handle any duplicates at the destination.

If PutRecordBatch throws ServiceUnavailableException, back off and retry. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream.

Data records sent to Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available.

", - "UpdateDestination": "

Updates the specified destination of the specified delivery stream.

You can use this operation to change the destination type (for example, to replace the Amazon S3 destination with Amazon Redshift) or change the parameters associated with a destination (for example, to change the bucket name of the Amazon S3 destination). The update might not occur immediately. The target delivery stream remains active while the configurations are updated, so data writes to the delivery stream can continue during this process. The updated configurations are usually effective within a few minutes.

Note that switching between Amazon ES and other services is not supported. For an Amazon ES destination, you can only update to another Amazon ES destination.

If the destination type is the same, Firehose merges the configuration parameters specified with the destination configuration that already exists on the delivery stream. If any of the parameters are not specified in the call, the existing values are retained. For example, in the Amazon S3 destination, if EncryptionConfiguration is not specified then the existing EncryptionConfiguration is maintained on the destination.

If the destination type is not the same, for example, changing the destination from Amazon S3 to Amazon Redshift, Firehose does not merge any parameters. In this case, all parameters must be specified.

Firehose uses CurrentDeliveryStreamVersionId to avoid race conditions and conflicting merges. This is a required field, and the service updates the configuration only if the existing configuration has a version ID that matches. After the update is applied successfully, the version ID is updated, and can be retrieved using DescribeDeliveryStream. You should use the new version ID to set CurrentDeliveryStreamVersionId in the next call.

" + "PutRecord": "

Writes a single data record into an Amazon Kinesis Firehose delivery stream. To write multiple data records into a delivery stream, use PutRecordBatch. Applications using these operations are referred to as producers.

By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. Note that if you use PutRecord and PutRecordBatch, the limits are an aggregate across these two operations for each delivery stream. For more information about limits and how to request an increase, see Amazon Kinesis Firehose Limits.

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data, for example, a segment from a log file, geographic location data, website clickstream data, and so on.

Kinesis Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\\n) or some other character unique within the data. This allows the consumer application to parse individual data items when reading the data from the destination.

The PutRecord operation returns a RecordId, which is a unique string assigned to each record. Producer applications can use this ID for purposes such as auditability and investigation.

If the PutRecord operation throws a ServiceUnavailableException, back off and retry. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream.

Data records sent to Kinesis Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available.

", + "PutRecordBatch": "

Writes multiple data records into a delivery stream in a single call, which can achieve higher throughput per producer than when writing single records. To write single data records into a delivery stream, use PutRecord. Applications using these operations are referred to as producers.

By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. If you use PutRecord and PutRecordBatch, the limits are an aggregate across these two operations for each delivery stream. For more information about limits, see Amazon Kinesis Firehose Limits.

Each PutRecordBatch request supports up to 500 records. Each record in the request can be as large as 1,000 KB (before 64-bit encoding), up to a limit of 4 MB for the entire request. These limits cannot be changed.

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data. For example, it could be a segment from a log file, geographic location data, web site clickstream data, and so on.

Kinesis Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (\\n) or some other character unique within the data. This allows the consumer application to parse individual data items when reading the data from the destination.

The PutRecordBatch response includes a count of failed records, FailedPutCount, and an array of responses, RequestResponses. Each entry in the RequestResponses array provides additional information about the processed record. It directly correlates with a record in the request array using the same ordering, from the top to the bottom. The response array always includes the same number of records as the request array. RequestResponses includes both successfully and unsuccessfully processed records. Kinesis Firehose attempts to process all records in each PutRecordBatch request. A single record failure does not stop the processing of subsequent records.

A successfully processed record includes a RecordId value, which is unique for the record. An unsuccessfully processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error, and is one of the following values: ServiceUnavailable or InternalFailure. ErrorMessage provides more detailed information about the error.

If there is an internal server error or a timeout, the write might have completed or it might have failed. If FailedPutCount is greater than 0, retry the request, resending only those records that might have failed processing. This minimizes the possible duplicate records and also reduces the total bytes sent (and corresponding charges). We recommend that you handle any duplicates at the destination.

If PutRecordBatch throws ServiceUnavailableException, back off and retry. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream.

Data records sent to Kinesis Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available.

", + "UpdateDestination": "

Updates the specified destination of the specified delivery stream.

You can use this operation to change the destination type (for example, to replace the Amazon S3 destination with Amazon Redshift) or change the parameters associated with a destination (for example, to change the bucket name of the Amazon S3 destination). The update might not occur immediately. The target delivery stream remains active while the configurations are updated, so data writes to the delivery stream can continue during this process. The updated configurations are usually effective within a few minutes.

Note that switching between Amazon ES and other services is not supported. For an Amazon ES destination, you can only update to another Amazon ES destination.

If the destination type is the same, Kinesis Firehose merges the configuration parameters specified with the destination configuration that already exists on the delivery stream. If any of the parameters are not specified in the call, the existing values are retained. For example, in the Amazon S3 destination, if EncryptionConfiguration is not specified, then the existing EncryptionConfiguration is maintained on the destination.

If the destination type is not the same, for example, changing the destination from Amazon S3 to Amazon Redshift, Kinesis Firehose does not merge any parameters. In this case, all parameters must be specified.

Kinesis Firehose uses CurrentDeliveryStreamVersionId to avoid race conditions and conflicting merges. This is a required field, and the service updates the configuration only if the existing configuration has a version ID that matches. After the update is applied successfully, the version ID is updated, and can be retrieved using DescribeDeliveryStream. Use the new version ID to set CurrentDeliveryStreamVersionId in the next call.

" }, "shapes": { "AWSKMSKeyARN": { @@ -38,7 +38,7 @@ } }, "BufferingHints": { - "base": "

Describes hints for the buffering to perform before delivering data to the destination. Please note that these options are treated as hints, and therefore Firehose may choose to use different values when it is optimal.

", + "base": "

Describes hints for the buffering to perform before delivering data to the destination. Please note that these options are treated as hints, and therefore Kinesis Firehose may choose to use different values when it is optimal.

", "refs": { "ExtendedS3DestinationConfiguration$BufferingHints": "

The buffering option.

", "ExtendedS3DestinationDescription$BufferingHints": "

The buffering option.

", @@ -49,7 +49,7 @@ } }, "CloudWatchLoggingOptions": { - "base": "

Describes the CloudWatch logging options for your delivery stream.

", + "base": "

Describes the Amazon CloudWatch logging options for your delivery stream.

", "refs": { "ElasticsearchDestinationConfiguration$CloudWatchLoggingOptions": "

The CloudWatch logging options for your delivery stream.

", "ElasticsearchDestinationDescription$CloudWatchLoggingOptions": "

The CloudWatch logging options.

", @@ -62,7 +62,10 @@ "RedshiftDestinationUpdate$CloudWatchLoggingOptions": "

The CloudWatch logging options for your delivery stream.

", "S3DestinationConfiguration$CloudWatchLoggingOptions": "

The CloudWatch logging options for your delivery stream.

", "S3DestinationDescription$CloudWatchLoggingOptions": "

The CloudWatch logging options for your delivery stream.

", - "S3DestinationUpdate$CloudWatchLoggingOptions": "

The CloudWatch logging options for your delivery stream.

" + "S3DestinationUpdate$CloudWatchLoggingOptions": "

The CloudWatch logging options for your delivery stream.

", + "SplunkDestinationConfiguration$CloudWatchLoggingOptions": "

The CloudWatch logging options for your delivery stream.

", + "SplunkDestinationDescription$CloudWatchLoggingOptions": "

The CloudWatch logging options for your delivery stream.

", + "SplunkDestinationUpdate$CloudWatchLoggingOptions": "

The CloudWatch logging options for your delivery stream.

" } }, "ClusterJDBCURL": { @@ -100,7 +103,7 @@ "CopyOptions": { "base": null, "refs": { - "CopyCommand$CopyOptions": "

Optional parameters to use with the Amazon Redshift COPY command. For more information, see the \"Optional Parameters\" section of Amazon Redshift COPY command. Some possible examples that would apply to Firehose are as follows:

delimiter '\\t' lzop; - fields are delimited with \"\\t\" (TAB character) and compressed using lzop.

delimiter '| - fields are delimited with \"|\" (this is the default delimiter).

delimiter '|' escape - the delimiter should be escaped.

fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6' - fields are fixed width in the source, with each width specified after every column in the table.

JSON 's3://mybucket/jsonpaths.txt' - data is in JSON format, and the path specified is the format of the data.

For more examples, see Amazon Redshift COPY command examples.

" + "CopyCommand$CopyOptions": "

Optional parameters to use with the Amazon Redshift COPY command. For more information, see the \"Optional Parameters\" section of Amazon Redshift COPY command. Some possible examples that would apply to Kinesis Firehose are as follows:

delimiter '\\t' lzop; - fields are delimited with \"\\t\" (TAB character) and compressed using lzop.

delimiter '|' - fields are delimited with \"|\" (this is the default delimiter).

delimiter '|' escape - the delimiter should be escaped.

fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6' - fields are fixed width in the source, with each width specified after every column in the table.

JSON 's3://mybucket/jsonpaths.txt' - data is in JSON format, and the path specified is the format of the data.

For more examples, see Amazon Redshift COPY command examples.

" } }, "CreateDeliveryStreamInput": { @@ -141,6 +144,12 @@ "refs": { } }, + "DeliveryStartTimestamp": { + "base": null, + "refs": { + "KinesisStreamSourceDescription$DeliveryStartTimestamp": "

Kinesis Firehose starts retrieving records from the Kinesis stream starting with this time stamp.

" + } + }, "DeliveryStreamARN": { "base": null, "refs": { @@ -157,7 +166,7 @@ "DeliveryStreamName": { "base": null, "refs": { - "CreateDeliveryStreamInput$DeliveryStreamName": "

The name of the delivery stream. This name must be unique per AWS account in the same region. You can have multiple delivery streams with the same name if they are in different accounts or different regions.

", + "CreateDeliveryStreamInput$DeliveryStreamName": "

The name of the delivery stream. This name must be unique per AWS account in the same region. If the delivery streams are in different accounts or different regions, you can have multiple delivery streams with the same name.

", "DeleteDeliveryStreamInput$DeliveryStreamName": "

The name of the delivery stream.

", "DeliveryStreamDescription$DeliveryStreamName": "

The name of the delivery stream.

", "DeliveryStreamNameList$member": null, @@ -180,11 +189,19 @@ "DeliveryStreamDescription$DeliveryStreamStatus": "

The status of the delivery stream.

" } }, + "DeliveryStreamType": { + "base": null, + "refs": { + "CreateDeliveryStreamInput$DeliveryStreamType": "

The delivery stream type. This parameter can be one of the following values:

", + "DeliveryStreamDescription$DeliveryStreamType": "

The delivery stream type. This can be one of the following values:

", + "ListDeliveryStreamsInput$DeliveryStreamType": "

The delivery stream type. This can be one of the following values:

This parameter is optional. If this parameter is omitted, delivery streams of all types are returned.

" + } + }, "DeliveryStreamVersionId": { "base": null, "refs": { "DeliveryStreamDescription$VersionId": "

Each time the destination is updated for a delivery stream, the version ID is changed, and the current version ID is required when updating the destination. This is so that the service knows it is applying the changes to the correct version of the delivery stream.

", - "UpdateDestinationInput$CurrentDeliveryStreamVersionId": "

Obtain this value from the VersionId result of DeliveryStreamDescription. This value is required, and helps the service to perform conditional operations. For example, if there is a interleaving update and this value is null, then the update destination fails. After the update is successful, the VersionId value is updated. The service then performs a merge of the old configuration with the new configuration.

" + "UpdateDestinationInput$CurrentDeliveryStreamVersionId": "

Obtain this value from the VersionId result of DeliveryStreamDescription. This value is required, and helps the service to perform conditional operations. For example, if there is an interleaving update and this value is null, then the update destination fails. After the update is successful, the VersionId value is updated. The service then performs a merge of the old configuration with the new configuration.

" } }, "DescribeDeliveryStreamInput": { @@ -218,7 +235,7 @@ "DestinationId": { "base": null, "refs": { - "DescribeDeliveryStreamInput$ExclusiveStartDestinationId": "

The ID of the destination to start returning the destination information. Currently Firehose supports one destination per delivery stream.

", + "DescribeDeliveryStreamInput$ExclusiveStartDestinationId": "

The ID of the destination to start returning the destination information. Currently, Kinesis Firehose supports one destination per delivery stream.

", "DestinationDescription$DestinationId": "

The ID of the destination.

", "UpdateDestinationInput$DestinationId": "

The ID of the destination.

" } @@ -280,29 +297,29 @@ "ElasticsearchIndexRotationPeriod": { "base": null, "refs": { - "ElasticsearchDestinationConfiguration$IndexRotationPeriod": "

The Elasticsearch index rotation period. Index rotation appends a timestamp to the IndexName to facilitate expiration of old data. For more information, see Index Rotation for Amazon Elasticsearch Service Destination. The default value is OneDay.

", + "ElasticsearchDestinationConfiguration$IndexRotationPeriod": "

The Elasticsearch index rotation period. Index rotation appends a time stamp to the IndexName to facilitate the expiration of old data. For more information, see Index Rotation for Amazon Elasticsearch Service Destination. The default value is OneDay.

", "ElasticsearchDestinationDescription$IndexRotationPeriod": "

The Elasticsearch index rotation period

", - "ElasticsearchDestinationUpdate$IndexRotationPeriod": "

The Elasticsearch index rotation period. Index rotation appends a timestamp to IndexName to facilitate the expiration of old data. For more information, see Index Rotation for Amazon Elasticsearch Service Destination. Default value is OneDay.

" + "ElasticsearchDestinationUpdate$IndexRotationPeriod": "

The Elasticsearch index rotation period. Index rotation appends a time stamp to IndexName to facilitate the expiration of old data. For more information, see Index Rotation for Amazon Elasticsearch Service Destination. Default value is OneDay.

" } }, "ElasticsearchRetryDurationInSeconds": { "base": null, "refs": { - "ElasticsearchRetryOptions$DurationInSeconds": "

After an initial failure to deliver to Amazon ES, the total amount of time during which Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.

" + "ElasticsearchRetryOptions$DurationInSeconds": "

After an initial failure to deliver to Amazon ES, the total amount of time during which Kinesis Firehose re-attempts delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.

" } }, "ElasticsearchRetryOptions": { - "base": "

Configures retry behavior in the event that Firehose is unable to deliver documents to Amazon ES.

", + "base": "

Configures retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon ES.

", "refs": { - "ElasticsearchDestinationConfiguration$RetryOptions": "

The retry behavior in the event that Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).

", + "ElasticsearchDestinationConfiguration$RetryOptions": "

The retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).

", "ElasticsearchDestinationDescription$RetryOptions": "

The Amazon ES retry options.

", - "ElasticsearchDestinationUpdate$RetryOptions": "

The retry behavior in the event that Firehose is unable to deliver documents to Amazon ES. Default value is 300 (5 minutes).

" + "ElasticsearchDestinationUpdate$RetryOptions": "

The retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).

" } }, "ElasticsearchS3BackupMode": { "base": null, "refs": { - "ElasticsearchDestinationConfiguration$S3BackupMode": "

Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with elasticsearch-failed/ appended to the key prefix. When set to AllDocuments, Firehose delivers all incoming records to Amazon S3, and also writes failed documents with elasticsearch-failed/ appended to the prefix. For more information, see Amazon S3 Backup for Amazon Elasticsearch Service Destination. Default value is FailedDocumentsOnly.

", + "ElasticsearchDestinationConfiguration$S3BackupMode": "

Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Kinesis Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with elasticsearch-failed/ appended to the key prefix. When set to AllDocuments, Kinesis Firehose delivers all incoming records to Amazon S3, and also writes failed documents with elasticsearch-failed/ appended to the prefix. For more information, see Amazon S3 Backup for Amazon Elasticsearch Service Destination. Default value is FailedDocumentsOnly.

", "ElasticsearchDestinationDescription$S3BackupMode": "

The Amazon S3 backup mode.

" } }, @@ -361,6 +378,38 @@ "UpdateDestinationInput$ExtendedS3DestinationUpdate": "

Describes an update for a destination in Amazon S3.

" } }, + "HECAcknowledgmentTimeoutInSeconds": { + "base": null, + "refs": { + "SplunkDestinationConfiguration$HECAcknowledgmentTimeoutInSeconds": "

The amount of time that Kinesis Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period Kinesis Firehose either tries to send the data again or considers it an error, based on your retry settings.

", + "SplunkDestinationDescription$HECAcknowledgmentTimeoutInSeconds": "

The amount of time that Kinesis Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period Kinesis Firehose either tries to send the data again or considers it an error, based on your retry settings.

", + "SplunkDestinationUpdate$HECAcknowledgmentTimeoutInSeconds": "

The amount of time that Kinesis Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period Kinesis Firehose either tries to send the data again or considers it an error, based on your retry settings.

" + } + }, + "HECEndpoint": { + "base": null, + "refs": { + "SplunkDestinationConfiguration$HECEndpoint": "

The HTTP Event Collector (HEC) endpoint to which Kinesis Firehose sends your data.

", + "SplunkDestinationDescription$HECEndpoint": "

The HTTP Event Collector (HEC) endpoint to which Kinesis Firehose sends your data.

", + "SplunkDestinationUpdate$HECEndpoint": "

The HTTP Event Collector (HEC) endpoint to which Kinesis Firehose sends your data.

" + } + }, + "HECEndpointType": { + "base": null, + "refs": { + "SplunkDestinationConfiguration$HECEndpointType": "

This type can be either \"Raw\" or \"Event\".

", + "SplunkDestinationDescription$HECEndpointType": "

This type can be either \"Raw\" or \"Event\".

", + "SplunkDestinationUpdate$HECEndpointType": "

This type can be either \"Raw\" or \"Event\".

" + } + }, + "HECToken": { + "base": null, + "refs": { + "SplunkDestinationConfiguration$HECToken": "

This is a GUID you obtain from your Splunk cluster when you create a new HEC endpoint.

", + "SplunkDestinationDescription$HECToken": "

This is a GUID you obtain from your Splunk cluster when you create a new HEC endpoint.

", + "SplunkDestinationUpdate$HECToken": "

This is a GUID you obtain from your Splunk cluster when you create a new HEC endpoint.

" + } + }, "IntervalInSeconds": { "base": null, "refs": { @@ -368,7 +417,7 @@ } }, "InvalidArgumentException": { - "base": "

The specified input parameter has an value that is not valid.

", + "base": "

The specified input parameter has a value that is not valid.

", "refs": { } }, @@ -378,6 +427,25 @@ "EncryptionConfiguration$KMSEncryptionConfig": "

The encryption key.

" } }, + "KinesisStreamARN": { + "base": null, + "refs": { + "KinesisStreamSourceConfiguration$KinesisStreamARN": "

The ARN of the source Kinesis stream.

", + "KinesisStreamSourceDescription$KinesisStreamARN": "

The ARN of the source Kinesis stream.

" + } + }, + "KinesisStreamSourceConfiguration": { + "base": "

The stream and role ARNs for a Kinesis stream used as the source for a delivery stream.

", + "refs": { + "CreateDeliveryStreamInput$KinesisStreamSourceConfiguration": "

When a Kinesis stream is used as the source for the delivery stream, a KinesisStreamSourceConfiguration containing the Kinesis stream ARN and the role ARN for the source stream.

" + } + }, + "KinesisStreamSourceDescription": { + "base": "

Details about a Kinesis stream used as the source for a Kinesis Firehose delivery stream.

", + "refs": { + "SourceDescription$KinesisStreamSourceDescription": "

The KinesisStreamSourceDescription value for the source Kinesis stream.

" + } + }, "LimitExceededException": { "base": "

You have already reached the limit for a requested resource.

", "refs": { @@ -391,7 +459,7 @@ "ListDeliveryStreamsInputLimit": { "base": null, "refs": { - "ListDeliveryStreamsInput$Limit": "

The maximum number of delivery streams to list.

" + "ListDeliveryStreamsInput$Limit": "

The maximum number of delivery streams to list. The default value is 10.

" } }, "ListDeliveryStreamsOutput": { @@ -414,7 +482,7 @@ "NoEncryptionConfig": { "base": null, "refs": { - "EncryptionConfiguration$NoEncryptionConfig": "

Specifically override existing encryption information to ensure no encryption is used.

" + "EncryptionConfiguration$NoEncryptionConfig": "

Specifically override existing encryption information to ensure that no encryption is used.

" } }, "NonNegativeIntegerObject": { @@ -433,12 +501,12 @@ "Prefix": { "base": null, "refs": { - "ExtendedS3DestinationConfiguration$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

", - "ExtendedS3DestinationDescription$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

", - "ExtendedS3DestinationUpdate$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

", - "S3DestinationConfiguration$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

", - "S3DestinationDescription$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

", - "S3DestinationUpdate$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

" + "ExtendedS3DestinationConfiguration$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

", + "ExtendedS3DestinationDescription$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

", + "ExtendedS3DestinationUpdate$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

", + "S3DestinationConfiguration$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

", + "S3DestinationDescription$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

", + "S3DestinationUpdate$Prefix": "

The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. If the prefix ends with a slash, it appears as a folder in the S3 bucket. For more information, see Amazon S3 Object Name Format in the Amazon Kinesis Firehose Developer Guide.

" } }, "ProcessingConfiguration": { @@ -452,7 +520,10 @@ "ExtendedS3DestinationUpdate$ProcessingConfiguration": "

The data processing configuration.

", "RedshiftDestinationConfiguration$ProcessingConfiguration": "

The data processing configuration.

", "RedshiftDestinationDescription$ProcessingConfiguration": "

The data processing configuration.

", - "RedshiftDestinationUpdate$ProcessingConfiguration": "

The data processing configuration.

" + "RedshiftDestinationUpdate$ProcessingConfiguration": "

The data processing configuration.

", + "SplunkDestinationConfiguration$ProcessingConfiguration": "

The data processing configuration.

", + "SplunkDestinationDescription$ProcessingConfiguration": "

The data processing configuration.

", + "SplunkDestinationUpdate$ProcessingConfiguration": "

The data processing configuration.

" } }, "Processor": { @@ -570,15 +641,15 @@ "RedshiftRetryDurationInSeconds": { "base": null, "refs": { - "RedshiftRetryOptions$DurationInSeconds": "

The length of time during which Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Firehose does not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer than the current value.

" + "RedshiftRetryOptions$DurationInSeconds": "

The length of time during which Kinesis Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Kinesis Firehose does not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer than the current value.

" } }, "RedshiftRetryOptions": { - "base": "

Configures retry behavior in the event that Firehose is unable to deliver documents to Amazon Redshift.

", + "base": "

Configures retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon Redshift.

", "refs": { - "RedshiftDestinationConfiguration$RetryOptions": "

The retry behavior in the event that Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

", - "RedshiftDestinationDescription$RetryOptions": "

The retry behavior in the event that Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

", - "RedshiftDestinationUpdate$RetryOptions": "

The retry behavior in the event that Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

" + "RedshiftDestinationConfiguration$RetryOptions": "

The retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

", + "RedshiftDestinationDescription$RetryOptions": "

The retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

", + "RedshiftDestinationUpdate$RetryOptions": "

The retry behavior in case Kinesis Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).

" } }, "RedshiftS3BackupMode": { @@ -602,12 +673,14 @@ "RoleARN": { "base": null, "refs": { - "ElasticsearchDestinationConfiguration$RoleARN": "

The ARN of the IAM role to be assumed by Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Amazon S3 Bucket Access.

", + "ElasticsearchDestinationConfiguration$RoleARN": "

The ARN of the IAM role to be assumed by Kinesis Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Amazon S3 Bucket Access.

", "ElasticsearchDestinationDescription$RoleARN": "

The ARN of the AWS credentials.

", - "ElasticsearchDestinationUpdate$RoleARN": "

The ARN of the IAM role to be assumed by Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Amazon S3 Bucket Access.

", + "ElasticsearchDestinationUpdate$RoleARN": "

The ARN of the IAM role to be assumed by Kinesis Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Amazon S3 Bucket Access.

", "ExtendedS3DestinationConfiguration$RoleARN": "

The ARN of the AWS credentials.

", "ExtendedS3DestinationDescription$RoleARN": "

The ARN of the AWS credentials.

", "ExtendedS3DestinationUpdate$RoleARN": "

The ARN of the AWS credentials.

", + "KinesisStreamSourceConfiguration$RoleARN": "

The ARN of the role that provides access to the source Kinesis stream.

", + "KinesisStreamSourceDescription$RoleARN": "

The ARN of the role used by the source Kinesis stream.

", "RedshiftDestinationConfiguration$RoleARN": "

The ARN of the AWS credentials.

", "RedshiftDestinationDescription$RoleARN": "

The ARN of the AWS credentials.

", "RedshiftDestinationUpdate$RoleARN": "

The ARN of the AWS credentials.

", @@ -628,10 +701,11 @@ "base": "

Describes the configuration of a destination in Amazon S3.

", "refs": { "CreateDeliveryStreamInput$S3DestinationConfiguration": "

[Deprecated] The destination in Amazon S3. You can specify only one destination.

", - "ElasticsearchDestinationConfiguration$S3Configuration": "

The configuration for the intermediate Amazon S3 location from which Amazon ES obtains data.

", + "ElasticsearchDestinationConfiguration$S3Configuration": "

The configuration for the backup Amazon S3 location.

", "ExtendedS3DestinationConfiguration$S3BackupConfiguration": "

The configuration for backup in Amazon S3.

", "RedshiftDestinationConfiguration$S3Configuration": "

The configuration for the intermediate Amazon S3 location from which Amazon Redshift obtains data. Restrictions are described in the topic for CreateDeliveryStream.

The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration because the Amazon Redshift COPY operation that reads from the S3 bucket doesn't support these compression formats.

", - "RedshiftDestinationConfiguration$S3BackupConfiguration": "

The configuration for backup in Amazon S3.

" + "RedshiftDestinationConfiguration$S3BackupConfiguration": "

The configuration for backup in Amazon S3.

", + "SplunkDestinationConfiguration$S3Configuration": "

The configuration for the backup Amazon S3 location.

" } }, "S3DestinationDescription": { @@ -641,7 +715,8 @@ "ElasticsearchDestinationDescription$S3DestinationDescription": "

The Amazon S3 destination.

", "ExtendedS3DestinationDescription$S3BackupDescription": "

The configuration for backup in Amazon S3.

", "RedshiftDestinationDescription$S3DestinationDescription": "

The Amazon S3 destination.

", - "RedshiftDestinationDescription$S3BackupDescription": "

The configuration for backup in Amazon S3.

" + "RedshiftDestinationDescription$S3BackupDescription": "

The configuration for backup in Amazon S3.

", + "SplunkDestinationDescription$S3DestinationDescription": "

The Amazon S3 destination.>

" } }, "S3DestinationUpdate": { @@ -651,6 +726,7 @@ "ExtendedS3DestinationUpdate$S3BackupUpdate": "

The Amazon S3 destination for backup.

", "RedshiftDestinationUpdate$S3Update": "

The Amazon S3 destination.

The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationUpdate.S3Update because the Amazon Redshift COPY operation that reads from the S3 bucket doesn't support these compression formats.

", "RedshiftDestinationUpdate$S3BackupUpdate": "

The Amazon S3 destination for backup.

", + "SplunkDestinationUpdate$S3Update": "

Your update to the configuration of the backup Amazon S3 location.

", "UpdateDestinationInput$S3DestinationUpdate": "

[Deprecated] Describes an update for a destination in Amazon S3.

" } }, @@ -665,6 +741,52 @@ "BufferingHints$SizeInMBs": "

Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5.

We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.

" } }, + "SourceDescription": { + "base": "

Details about a Kinesis stream used as the source for a Kinesis Firehose delivery stream.

", + "refs": { + "DeliveryStreamDescription$Source": "

If the DeliveryStreamType parameter is KinesisStreamAsSource, a SourceDescription object describing the source Kinesis stream.

" + } + }, + "SplunkDestinationConfiguration": { + "base": "

Describes the configuration of a destination in Splunk.

", + "refs": { + "CreateDeliveryStreamInput$SplunkDestinationConfiguration": "

The destination in Splunk. You can specify only one destination.

" + } + }, + "SplunkDestinationDescription": { + "base": "

Describes a destination in Splunk.

", + "refs": { + "DestinationDescription$SplunkDestinationDescription": "

The destination in Splunk.

" + } + }, + "SplunkDestinationUpdate": { + "base": "

Describes an update for a destination in Splunk.

", + "refs": { + "UpdateDestinationInput$SplunkDestinationUpdate": "

Describes an update for a destination in Splunk.

" + } + }, + "SplunkRetryDurationInSeconds": { + "base": null, + "refs": { + "SplunkRetryOptions$DurationInSeconds": "

The total amount of time that Kinesis Firehose spends on retries. This duration starts after the initial attempt to send data to Splunk fails and doesn't include the periods during which Kinesis Firehose waits for acknowledgment from Splunk after each attempt.

" + } + }, + "SplunkRetryOptions": { + "base": "

Configures retry behavior in case Kinesis Firehose is unable to deliver documents to Splunk or if it doesn't receive an acknowledgment from Splunk.

", + "refs": { + "SplunkDestinationConfiguration$RetryOptions": "

The retry behavior in case Kinesis Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.

", + "SplunkDestinationDescription$RetryOptions": "

The retry behavior in case Kinesis Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.

", + "SplunkDestinationUpdate$RetryOptions": "

The retry behavior in case Kinesis Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.

" + } + }, + "SplunkS3BackupMode": { + "base": null, + "refs": { + "SplunkDestinationConfiguration$S3BackupMode": "

Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Kinesis Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllDocuments, Kinesis Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. Default value is FailedDocumentsOnly.

", + "SplunkDestinationDescription$S3BackupMode": "

Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Kinesis Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllDocuments, Kinesis Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. Default value is FailedDocumentsOnly.

", + "SplunkDestinationUpdate$S3BackupMode": "

Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly, Kinesis Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to AllDocuments, Kinesis Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. Default value is FailedDocumentsOnly.

" + } + }, "Timestamp": { "base": null, "refs": { diff --git a/models/apis/firehose/2015-08-04/paginators-1.json b/models/apis/firehose/2015-08-04/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/firehose/2015-08-04/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/gamelift/2015-10-01/api-2.json b/models/apis/gamelift/2015-10-01/api-2.json index 6d47ede80da..1b6f23c7b47 100644 --- a/models/apis/gamelift/2015-10-01/api-2.json +++ b/models/apis/gamelift/2015-10-01/api-2.json @@ -11,6 +11,21 @@ "uid":"gamelift-2015-10-01" }, "operations":{ + "AcceptMatch":{ + "name":"AcceptMatch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AcceptMatchInput"}, + "output":{"shape":"AcceptMatchOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"UnsupportedRegionException"} + ] + }, "CreateAlias":{ "name":"CreateAlias", "http":{ @@ -95,6 +110,36 @@ {"shape":"LimitExceededException"} ] }, + "CreateMatchmakingConfiguration":{ + "name":"CreateMatchmakingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateMatchmakingConfigurationInput"}, + "output":{"shape":"CreateMatchmakingConfigurationOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"LimitExceededException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"UnsupportedRegionException"} + ] + }, + "CreateMatchmakingRuleSet":{ + "name":"CreateMatchmakingRuleSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateMatchmakingRuleSetInput"}, + "output":{"shape":"CreateMatchmakingRuleSetOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"UnsupportedRegionException"} + ] + }, "CreatePlayerSession":{ "name":"CreatePlayerSession", "http":{ @@ -131,6 +176,36 @@ {"shape":"NotFoundException"} ] }, + "CreateVpcPeeringAuthorization":{ + "name":"CreateVpcPeeringAuthorization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcPeeringAuthorizationInput"}, + "output":{"shape":"CreateVpcPeeringAuthorizationOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"} + ] + }, + "CreateVpcPeeringConnection":{ + "name":"CreateVpcPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcPeeringConnectionInput"}, + "output":{"shape":"CreateVpcPeeringConnectionOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"} + ] + }, "DeleteAlias":{ "name":"DeleteAlias", "http":{ @@ -189,6 +264,21 @@ {"shape":"UnauthorizedException"} ] }, + "DeleteMatchmakingConfiguration":{ + "name":"DeleteMatchmakingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteMatchmakingConfigurationInput"}, + "output":{"shape":"DeleteMatchmakingConfigurationOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"UnsupportedRegionException"} + ] + }, "DeleteScalingPolicy":{ "name":"DeleteScalingPolicy", "http":{ @@ -203,6 +293,36 @@ {"shape":"NotFoundException"} ] }, + "DeleteVpcPeeringAuthorization":{ + "name":"DeleteVpcPeeringAuthorization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcPeeringAuthorizationInput"}, + "output":{"shape":"DeleteVpcPeeringAuthorizationOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"} + ] + }, + "DeleteVpcPeeringConnection":{ + "name":"DeleteVpcPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcPeeringConnectionInput"}, + "output":{"shape":"DeleteVpcPeeringConnectionOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"} + ] + }, "DescribeAlias":{ "name":"DescribeAlias", "http":{ @@ -399,6 +519,49 @@ {"shape":"InternalServiceException"} ] }, + "DescribeMatchmaking":{ + "name":"DescribeMatchmaking", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMatchmakingInput"}, + "output":{"shape":"DescribeMatchmakingOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"UnsupportedRegionException"} + ] + }, + "DescribeMatchmakingConfigurations":{ + "name":"DescribeMatchmakingConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMatchmakingConfigurationsInput"}, + "output":{"shape":"DescribeMatchmakingConfigurationsOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"UnsupportedRegionException"} + ] + }, + "DescribeMatchmakingRuleSets":{ + "name":"DescribeMatchmakingRuleSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMatchmakingRuleSetsInput"}, + "output":{"shape":"DescribeMatchmakingRuleSetsOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"NotFoundException"}, + {"shape":"UnsupportedRegionException"} + ] + }, "DescribePlayerSessions":{ "name":"DescribePlayerSessions", "http":{ @@ -444,6 +607,35 @@ {"shape":"NotFoundException"} ] }, + "DescribeVpcPeeringAuthorizations":{ + "name":"DescribeVpcPeeringAuthorizations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcPeeringAuthorizationsInput"}, + "output":{"shape":"DescribeVpcPeeringAuthorizationsOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceException"} + ] + }, + "DescribeVpcPeeringConnections":{ + "name":"DescribeVpcPeeringConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcPeeringConnectionsInput"}, + "output":{"shape":"DescribeVpcPeeringConnectionsOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"} + ] + }, "GetGameSessionLogUrl":{ "name":"GetGameSessionLogUrl", "http":{ @@ -594,6 +786,21 @@ {"shape":"UnauthorizedException"} ] }, + "StartMatchmaking":{ + "name":"StartMatchmaking", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartMatchmakingInput"}, + "output":{"shape":"StartMatchmakingOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"UnsupportedRegionException"} + ] + }, "StopGameSessionPlacement":{ "name":"StopGameSessionPlacement", "http":{ @@ -609,6 +816,21 @@ {"shape":"UnauthorizedException"} ] }, + "StopMatchmaking":{ + "name":"StopMatchmaking", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopMatchmakingInput"}, + "output":{"shape":"StopMatchmakingOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"UnsupportedRegionException"} + ] + }, "UpdateAlias":{ "name":"UpdateAlias", "http":{ @@ -725,6 +947,21 @@ {"shape":"UnauthorizedException"} ] }, + "UpdateMatchmakingConfiguration":{ + "name":"UpdateMatchmakingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateMatchmakingConfigurationInput"}, + "output":{"shape":"UpdateMatchmakingConfigurationOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"UnsupportedRegionException"} + ] + }, "UpdateRuntimeConfiguration":{ "name":"UpdateRuntimeConfiguration", "http":{ @@ -740,9 +977,48 @@ {"shape":"InvalidRequestException"}, {"shape":"InvalidFleetStatusException"} ] + }, + "ValidateMatchmakingRuleSet":{ + "name":"ValidateMatchmakingRuleSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ValidateMatchmakingRuleSetInput"}, + "output":{"shape":"ValidateMatchmakingRuleSetOutput"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"UnsupportedRegionException"}, + {"shape":"InvalidRequestException"} + ] } }, "shapes":{ + "AcceptMatchInput":{ + "type":"structure", + "required":[ + "TicketId", + "PlayerIds", + "AcceptanceType" + ], + "members":{ + "TicketId":{"shape":"MatchmakingIdStringModel"}, + "PlayerIds":{"shape":"MatchmakingPlayerIdList"}, + "AcceptanceType":{"shape":"AcceptanceType"} + } + }, + "AcceptMatchOutput":{ + "type":"structure", + "members":{ + } + }, + "AcceptanceType":{ + "type":"string", + "enum":[ + "ACCEPT", + "REJECT" + ] + }, "Alias":{ "type":"structure", "members":{ @@ -769,6 +1045,15 @@ "min":1, "pattern":"[a-zA-Z0-9:/-]+" }, + "AttributeValue":{ + "type":"structure", + "members":{ + "S":{"shape":"NonZeroAndMaxString"}, + "N":{"shape":"DoubleObject"}, + "SL":{"shape":"StringList"}, + "SDM":{"shape":"StringDoubleMap"} + } + }, "AwsCredentials":{ "type":"structure", "members":{ @@ -778,6 +1063,7 @@ }, "sensitive":true }, + "Boolean":{"type":"boolean"}, "Build":{ "type":"structure", "members":{ @@ -876,7 +1162,9 @@ "NewGameSessionProtectionPolicy":{"shape":"ProtectionPolicy"}, "RuntimeConfiguration":{"shape":"RuntimeConfiguration"}, "ResourceCreationLimitPolicy":{"shape":"ResourceCreationLimitPolicy"}, - "MetricGroups":{"shape":"MetricGroupList"} + "MetricGroups":{"shape":"MetricGroupList"}, + "PeerVpcAwsAccountId":{"shape":"NonZeroAndMaxString"}, + "PeerVpcId":{"shape":"NonZeroAndMaxString"} } }, "CreateFleetOutput":{ @@ -896,7 +1184,8 @@ "GameProperties":{"shape":"GamePropertyList"}, "CreatorId":{"shape":"NonZeroAndMaxString"}, "GameSessionId":{"shape":"IdStringModel"}, - "IdempotencyToken":{"shape":"IdStringModel"} + "IdempotencyToken":{"shape":"IdStringModel"}, + "GameSessionData":{"shape":"GameSessionData"} } }, "CreateGameSessionOutput":{ @@ -921,6 +1210,54 @@ "GameSessionQueue":{"shape":"GameSessionQueue"} } }, + "CreateMatchmakingConfigurationInput":{ + "type":"structure", + "required":[ + "Name", + "GameSessionQueueArns", + "RequestTimeoutSeconds", + "AcceptanceRequired", + "RuleSetName" + ], + "members":{ + "Name":{"shape":"MatchmakingIdStringModel"}, + "Description":{"shape":"NonZeroAndMaxString"}, + "GameSessionQueueArns":{"shape":"QueueArnsList"}, + "RequestTimeoutSeconds":{"shape":"MatchmakingRequestTimeoutInteger"}, + "AcceptanceTimeoutSeconds":{"shape":"MatchmakingAcceptanceTimeoutInteger"}, + "AcceptanceRequired":{"shape":"Boolean"}, + "RuleSetName":{"shape":"MatchmakingIdStringModel"}, + "NotificationTarget":{"shape":"SnsArnStringModel"}, + "AdditionalPlayerCount":{"shape":"WholeNumber"}, + "CustomEventData":{"shape":"CustomEventData"}, + "GameProperties":{"shape":"GamePropertyList"}, + "GameSessionData":{"shape":"GameSessionData"} + } + }, + "CreateMatchmakingConfigurationOutput":{ + "type":"structure", + "members":{ + "Configuration":{"shape":"MatchmakingConfiguration"} + } + }, + "CreateMatchmakingRuleSetInput":{ + "type":"structure", + "required":[ + "Name", + "RuleSetBody" + ], + "members":{ + "Name":{"shape":"MatchmakingIdStringModel"}, + "RuleSetBody":{"shape":"RuleSetBody"} + } + }, + "CreateMatchmakingRuleSetOutput":{ + "type":"structure", + "required":["RuleSet"], + "members":{ + "RuleSet":{"shape":"MatchmakingRuleSet"} + } + }, "CreatePlayerSessionInput":{ "type":"structure", "required":[ @@ -957,6 +1294,46 @@ "PlayerSessions":{"shape":"PlayerSessionList"} } }, + "CreateVpcPeeringAuthorizationInput":{ + "type":"structure", + "required":[ + "GameLiftAwsAccountId", + "PeerVpcId" + ], + "members":{ + "GameLiftAwsAccountId":{"shape":"NonZeroAndMaxString"}, + "PeerVpcId":{"shape":"NonZeroAndMaxString"} + } + }, + "CreateVpcPeeringAuthorizationOutput":{ + "type":"structure", + "members":{ + "VpcPeeringAuthorization":{"shape":"VpcPeeringAuthorization"} + } + }, + "CreateVpcPeeringConnectionInput":{ + "type":"structure", + "required":[ + "FleetId", + "PeerVpcAwsAccountId", + "PeerVpcId" + ], + "members":{ + "FleetId":{"shape":"FleetId"}, + "PeerVpcAwsAccountId":{"shape":"NonZeroAndMaxString"}, + "PeerVpcId":{"shape":"NonZeroAndMaxString"} + } + }, + "CreateVpcPeeringConnectionOutput":{ + "type":"structure", + "members":{ + } + }, + "CustomEventData":{ + "type":"string", + "max":256, + "min":0 + }, "DeleteAliasInput":{ "type":"structure", "required":["AliasId"], @@ -990,6 +1367,18 @@ "members":{ } }, + "DeleteMatchmakingConfigurationInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"MatchmakingIdStringModel"} + } + }, + "DeleteMatchmakingConfigurationOutput":{ + "type":"structure", + "members":{ + } + }, "DeleteScalingPolicyInput":{ "type":"structure", "required":[ @@ -1001,6 +1390,38 @@ "FleetId":{"shape":"FleetId"} } }, + "DeleteVpcPeeringAuthorizationInput":{ + "type":"structure", + "required":[ + "GameLiftAwsAccountId", + "PeerVpcId" + ], + "members":{ + "GameLiftAwsAccountId":{"shape":"NonZeroAndMaxString"}, + "PeerVpcId":{"shape":"NonZeroAndMaxString"} + } + }, + "DeleteVpcPeeringAuthorizationOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteVpcPeeringConnectionInput":{ + "type":"structure", + "required":[ + "FleetId", + "VpcPeeringConnectionId" + ], + "members":{ + "FleetId":{"shape":"FleetId"}, + "VpcPeeringConnectionId":{"shape":"NonZeroAndMaxString"} + } + }, + "DeleteVpcPeeringConnectionOutput":{ + "type":"structure", + "members":{ + } + }, "DescribeAliasInput":{ "type":"structure", "required":["AliasId"], @@ -1196,6 +1617,51 @@ "NextToken":{"shape":"NonZeroAndMaxString"} } }, + "DescribeMatchmakingConfigurationsInput":{ + "type":"structure", + "members":{ + "Names":{"shape":"MatchmakingIdList"}, + "RuleSetName":{"shape":"MatchmakingIdStringModel"}, + "Limit":{"shape":"PositiveInteger"}, + "NextToken":{"shape":"NonZeroAndMaxString"} + } + }, + "DescribeMatchmakingConfigurationsOutput":{ + "type":"structure", + "members":{ + "Configurations":{"shape":"MatchmakingConfigurationList"}, + "NextToken":{"shape":"NonZeroAndMaxString"} + } + }, + "DescribeMatchmakingInput":{ + "type":"structure", + "required":["TicketIds"], + "members":{ + "TicketIds":{"shape":"MatchmakingIdList"} + } + }, + "DescribeMatchmakingOutput":{ + "type":"structure", + "members":{ + "TicketList":{"shape":"MatchmakingTicketList"} + } + }, + "DescribeMatchmakingRuleSetsInput":{ + "type":"structure", + "members":{ + "Names":{"shape":"MatchmakingRuleSetNameList"}, + "Limit":{"shape":"RuleSetLimit"}, + "NextToken":{"shape":"NonZeroAndMaxString"} + } + }, + "DescribeMatchmakingRuleSetsOutput":{ + "type":"structure", + "required":["RuleSets"], + "members":{ + "RuleSets":{"shape":"MatchmakingRuleSetList"}, + "NextToken":{"shape":"NonZeroAndMaxString"} + } + }, "DescribePlayerSessionsInput":{ "type":"structure", "members":{ @@ -1244,6 +1710,29 @@ "NextToken":{"shape":"NonZeroAndMaxString"} } }, + "DescribeVpcPeeringAuthorizationsInput":{ + "type":"structure", + "members":{ + } + }, + "DescribeVpcPeeringAuthorizationsOutput":{ + "type":"structure", + "members":{ + "VpcPeeringAuthorizations":{"shape":"VpcPeeringAuthorizationList"} + } + }, + "DescribeVpcPeeringConnectionsInput":{ + "type":"structure", + "members":{ + "FleetId":{"shape":"FleetId"} + } + }, + "DescribeVpcPeeringConnectionsOutput":{ + "type":"structure", + "members":{ + "VpcPeeringConnections":{"shape":"VpcPeeringConnectionList"} + } + }, "DesiredPlayerSession":{ "type":"structure", "members":{ @@ -1256,6 +1745,7 @@ "member":{"shape":"DesiredPlayerSession"} }, "Double":{"type":"double"}, + "DoubleObject":{"type":"double"}, "EC2InstanceCounts":{ "type":"structure", "members":{ @@ -1302,6 +1792,12 @@ "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", + "r4.large", + "r4.xlarge", + "r4.2xlarge", + "r4.4xlarge", + "r4.8xlarge", + "r4.16xlarge", "m3.medium", "m3.large", "m3.xlarge", @@ -1355,7 +1851,10 @@ "GAME_SESSION_ACTIVATION_TIMEOUT", "FLEET_CREATION_EXTRACTING_BUILD", "FLEET_CREATION_RUNNING_INSTALLER", - "FLEET_CREATION_VALIDATING_RUNTIME_CONFIG" + "FLEET_CREATION_VALIDATING_RUNTIME_CONFIG", + "FLEET_VPC_PEERING_SUCCEEDED", + "FLEET_VPC_PEERING_FAILED", + "FLEET_VPC_PEERING_DELETED" ] }, "EventList":{ @@ -1483,7 +1982,8 @@ "IpAddress":{"shape":"IpAddress"}, "Port":{"shape":"PortNumber"}, "PlayerSessionCreationPolicy":{"shape":"PlayerSessionCreationPolicy"}, - "CreatorId":{"shape":"NonZeroAndMaxString"} + "CreatorId":{"shape":"NonZeroAndMaxString"}, + "GameSessionData":{"shape":"GameSessionData"} } }, "GameSessionActivationTimeoutSeconds":{ @@ -1491,6 +1991,20 @@ "max":600, "min":1 }, + "GameSessionConnectionInfo":{ + "type":"structure", + "members":{ + "GameSessionArn":{"shape":"ArnStringModel"}, + "IpAddress":{"shape":"StringModel"}, + "Port":{"shape":"PositiveInteger"}, + "MatchedPlayerSessions":{"shape":"MatchedPlayerSessionList"} + } + }, + "GameSessionData":{ + "type":"string", + "max":4096, + "min":1 + }, "GameSessionDetail":{ "type":"structure", "members":{ @@ -1530,7 +2044,8 @@ "EndTime":{"shape":"Timestamp"}, "IpAddress":{"shape":"IpAddress"}, "Port":{"shape":"PortNumber"}, - "PlacedPlayerSessions":{"shape":"PlacedPlayerSessionList"} + "PlacedPlayerSessions":{"shape":"PlacedPlayerSessionList"}, + "GameSessionData":{"shape":"GameSessionData"} } }, "GameSessionPlacementState":{ @@ -1733,6 +2248,11 @@ "UDP" ] }, + "LatencyMap":{ + "type":"map", + "key":{"shape":"NonEmptyString"}, + "value":{"shape":"PositiveInteger"} + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -1786,6 +2306,114 @@ "NextToken":{"shape":"NonZeroAndMaxString"} } }, + "MatchedPlayerSession":{ + "type":"structure", + "members":{ + "PlayerId":{"shape":"NonZeroAndMaxString"}, + "PlayerSessionId":{"shape":"PlayerSessionId"} + } + }, + "MatchedPlayerSessionList":{ + "type":"list", + "member":{"shape":"MatchedPlayerSession"} + }, + "MatchmakingAcceptanceTimeoutInteger":{ + "type":"integer", + "max":600, + "min":1 + }, + "MatchmakingConfiguration":{ + "type":"structure", + "members":{ + "Name":{"shape":"MatchmakingIdStringModel"}, + "Description":{"shape":"NonZeroAndMaxString"}, + "GameSessionQueueArns":{"shape":"QueueArnsList"}, + "RequestTimeoutSeconds":{"shape":"MatchmakingRequestTimeoutInteger"}, + "AcceptanceTimeoutSeconds":{"shape":"MatchmakingAcceptanceTimeoutInteger"}, + "AcceptanceRequired":{"shape":"Boolean"}, + "RuleSetName":{"shape":"MatchmakingIdStringModel"}, + "NotificationTarget":{"shape":"SnsArnStringModel"}, + "AdditionalPlayerCount":{"shape":"WholeNumber"}, + "CustomEventData":{"shape":"CustomEventData"}, + "CreationTime":{"shape":"Timestamp"}, + "GameProperties":{"shape":"GamePropertyList"}, + "GameSessionData":{"shape":"GameSessionData"} + } + }, + "MatchmakingConfigurationList":{ + "type":"list", + "member":{"shape":"MatchmakingConfiguration"} + }, + "MatchmakingConfigurationStatus":{ + "type":"string", + "enum":[ + "CANCELLED", + "COMPLETED", + "FAILED", + "PLACING", + "QUEUED", + "REQUIRES_ACCEPTANCE", + "SEARCHING", + "TIMED_OUT" + ] + }, + "MatchmakingIdList":{ + "type":"list", + "member":{"shape":"MatchmakingIdStringModel"} + }, + "MatchmakingIdStringModel":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9-\\.]+" + }, + "MatchmakingPlayerIdList":{ + "type":"list", + "member":{"shape":"PlayerIdStringModel"} + }, + "MatchmakingRequestTimeoutInteger":{ + "type":"integer", + "max":43200, + "min":1 + }, + "MatchmakingRuleSet":{ + "type":"structure", + "required":["RuleSetBody"], + "members":{ + "RuleSetName":{"shape":"MatchmakingIdStringModel"}, + "RuleSetBody":{"shape":"RuleSetBody"}, + "CreationTime":{"shape":"Timestamp"} + } + }, + "MatchmakingRuleSetList":{ + "type":"list", + "member":{"shape":"MatchmakingRuleSet"} + }, + "MatchmakingRuleSetNameList":{ + "type":"list", + "member":{"shape":"MatchmakingIdStringModel"}, + "max":10, + "min":1 + }, + "MatchmakingTicket":{ + "type":"structure", + "members":{ + "TicketId":{"shape":"MatchmakingIdStringModel"}, + "ConfigurationName":{"shape":"MatchmakingIdStringModel"}, + "Status":{"shape":"MatchmakingConfigurationStatus"}, + "StatusReason":{"shape":"StringModel"}, + "StatusMessage":{"shape":"StringModel"}, + "StartTime":{"shape":"Timestamp"}, + "EndTime":{"shape":"Timestamp"}, + "Players":{"shape":"PlayerList"}, + "GameSessionConnectionInfo":{"shape":"GameSessionConnectionInfo"}, + "EstimatedWaitTime":{"shape":"WholeNumber"} + } + }, + "MatchmakingTicketList":{ + "type":"list", + "member":{"shape":"MatchmakingTicket"} + }, "MaxConcurrentGameSessionActivations":{ "type":"integer", "max":2147483647, @@ -1861,6 +2489,20 @@ "type":"list", "member":{"shape":"PlacedPlayerSession"} }, + "Player":{ + "type":"structure", + "members":{ + "PlayerId":{"shape":"PlayerIdStringModel"}, + "PlayerAttributes":{"shape":"PlayerAttributeMap"}, + "Team":{"shape":"NonZeroAndMaxString"}, + "LatencyInMs":{"shape":"LatencyMap"} + } + }, + "PlayerAttributeMap":{ + "type":"map", + "key":{"shape":"NonZeroAndMaxString"}, + "value":{"shape":"AttributeValue"} + }, "PlayerData":{ "type":"string", "max":2048, @@ -1877,6 +2519,12 @@ "max":25, "min":1 }, + "PlayerIdStringModel":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9-\\.]+" + }, "PlayerLatency":{ "type":"structure", "members":{ @@ -1900,6 +2548,10 @@ "type":"list", "member":{"shape":"PlayerLatencyPolicy"} }, + "PlayerList":{ + "type":"list", + "member":{"shape":"Player"} + }, "PlayerSession":{ "type":"structure", "members":{ @@ -1988,6 +2640,10 @@ "Name":{"shape":"NonZeroAndMaxString"} } }, + "QueueArnsList":{ + "type":"list", + "member":{"shape":"ArnStringModel"} + }, "RequestUploadCredentialsInput":{ "type":"structure", "required":["BuildId"], @@ -2037,6 +2693,16 @@ "TERMINAL" ] }, + "RuleSetBody":{ + "type":"string", + "max":65535, + "min":1 + }, + "RuleSetLimit":{ + "type":"integer", + "max":10, + "min":1 + }, "RuntimeConfiguration":{ "type":"structure", "members":{ @@ -2127,6 +2793,12 @@ "max":50, "min":1 }, + "SnsArnStringModel":{ + "type":"string", + "max":300, + "min":0, + "pattern":"[a-zA-Z0-9:_/-]*" + }, "StartGameSessionPlacementInput":{ "type":"structure", "required":[ @@ -2141,7 +2813,8 @@ "MaximumPlayerSessionCount":{"shape":"WholeNumber"}, "GameSessionName":{"shape":"NonZeroAndMaxString"}, "PlayerLatencies":{"shape":"PlayerLatencyList"}, - "DesiredPlayerSessions":{"shape":"DesiredPlayerSessionList"} + "DesiredPlayerSessions":{"shape":"DesiredPlayerSessionList"}, + "GameSessionData":{"shape":"GameSessionData"} } }, "StartGameSessionPlacementOutput":{ @@ -2150,6 +2823,24 @@ "GameSessionPlacement":{"shape":"GameSessionPlacement"} } }, + "StartMatchmakingInput":{ + "type":"structure", + "required":[ + "ConfigurationName", + "Players" + ], + "members":{ + "TicketId":{"shape":"MatchmakingIdStringModel"}, + "ConfigurationName":{"shape":"MatchmakingIdStringModel"}, + "Players":{"shape":"PlayerList"} + } + }, + "StartMatchmakingOutput":{ + "type":"structure", + "members":{ + "MatchmakingTicket":{"shape":"MatchmakingTicket"} + } + }, "StopGameSessionPlacementInput":{ "type":"structure", "required":["PlacementId"], @@ -2163,10 +2854,28 @@ "GameSessionPlacement":{"shape":"GameSessionPlacement"} } }, + "StopMatchmakingInput":{ + "type":"structure", + "required":["TicketId"], + "members":{ + "TicketId":{"shape":"MatchmakingIdStringModel"} + } + }, + "StopMatchmakingOutput":{ + "type":"structure", + "members":{ + } + }, + "StringDoubleMap":{ + "type":"map", + "key":{"shape":"NonZeroAndMaxString"}, + "value":{"shape":"DoubleObject"} + }, "StringList":{ "type":"list", "member":{"shape":"NonZeroAndMaxString"} }, + "StringModel":{"type":"string"}, "TerminalRoutingStrategyException":{ "type":"structure", "members":{ @@ -2182,6 +2891,13 @@ }, "exception":true }, + "UnsupportedRegionException":{ + "type":"structure", + "members":{ + "Message":{"shape":"NonEmptyString"} + }, + "exception":true + }, "UpdateAliasInput":{ "type":"structure", "required":["AliasId"], @@ -2295,6 +3011,30 @@ "GameSessionQueue":{"shape":"GameSessionQueue"} } }, + "UpdateMatchmakingConfigurationInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"MatchmakingIdStringModel"}, + "Description":{"shape":"NonZeroAndMaxString"}, + "GameSessionQueueArns":{"shape":"QueueArnsList"}, + "RequestTimeoutSeconds":{"shape":"MatchmakingRequestTimeoutInteger"}, + "AcceptanceTimeoutSeconds":{"shape":"MatchmakingAcceptanceTimeoutInteger"}, + "AcceptanceRequired":{"shape":"Boolean"}, + "RuleSetName":{"shape":"MatchmakingIdStringModel"}, + "NotificationTarget":{"shape":"SnsArnStringModel"}, + "AdditionalPlayerCount":{"shape":"WholeNumber"}, + "CustomEventData":{"shape":"CustomEventData"}, + "GameProperties":{"shape":"GamePropertyList"}, + "GameSessionData":{"shape":"GameSessionData"} + } + }, + "UpdateMatchmakingConfigurationOutput":{ + "type":"structure", + "members":{ + "Configuration":{"shape":"MatchmakingConfiguration"} + } + }, "UpdateRuntimeConfigurationInput":{ "type":"structure", "required":[ @@ -2312,6 +3052,55 @@ "RuntimeConfiguration":{"shape":"RuntimeConfiguration"} } }, + "ValidateMatchmakingRuleSetInput":{ + "type":"structure", + "required":["RuleSetBody"], + "members":{ + "RuleSetBody":{"shape":"RuleSetBody"} + } + }, + "ValidateMatchmakingRuleSetOutput":{ + "type":"structure", + "members":{ + "Valid":{"shape":"Boolean"} + } + }, + "VpcPeeringAuthorization":{ + "type":"structure", + "members":{ + "GameLiftAwsAccountId":{"shape":"NonZeroAndMaxString"}, + "PeerVpcAwsAccountId":{"shape":"NonZeroAndMaxString"}, + "PeerVpcId":{"shape":"NonZeroAndMaxString"}, + "CreationTime":{"shape":"Timestamp"}, + "ExpirationTime":{"shape":"Timestamp"} + } + }, + "VpcPeeringAuthorizationList":{ + "type":"list", + "member":{"shape":"VpcPeeringAuthorization"} + }, + "VpcPeeringConnection":{ + "type":"structure", + "members":{ + "FleetId":{"shape":"FleetId"}, + "IpV4CidrBlock":{"shape":"NonZeroAndMaxString"}, + "VpcPeeringConnectionId":{"shape":"NonZeroAndMaxString"}, + "Status":{"shape":"VpcPeeringConnectionStatus"}, + "PeerVpcId":{"shape":"NonZeroAndMaxString"}, + "GameLiftVpcId":{"shape":"NonZeroAndMaxString"} + } + }, + "VpcPeeringConnectionList":{ + "type":"list", + "member":{"shape":"VpcPeeringConnection"} + }, + "VpcPeeringConnectionStatus":{ + "type":"structure", + "members":{ + "Code":{"shape":"NonZeroAndMaxString"}, + "Message":{"shape":"NonZeroAndMaxString"} + } + }, "WholeNumber":{ "type":"integer", "min":0 diff --git a/models/apis/gamelift/2015-10-01/docs-2.json b/models/apis/gamelift/2015-10-01/docs-2.json index d627cf26b78..e247689fd13 100644 --- a/models/apis/gamelift/2015-10-01/docs-2.json +++ b/models/apis/gamelift/2015-10-01/docs-2.json @@ -1,19 +1,27 @@ { "version": "2.0", - "service": "Amazon GameLift Service

Amazon GameLift is a managed service for developers who need a scalable, dedicated server solution for their multiplayer games. Amazon GameLift provides tools for the following tasks: (1) acquire computing resources and deploy game servers, (2) scale game server capacity to meet player demand, (3) host game sessions and manage player access, and (4) track in-depth metrics on player usage and server performance.

The Amazon GameLift service API includes two important function sets:

This reference guide describes the low-level service API for Amazon GameLift. You can use the API functionality with these tools:

MORE RESOURCES

API SUMMARY

This list offers a functional overview of the Amazon GameLift service API.

Managing Games and Players

These actions allow you to start new game sessions, find existing game sessions, track status and other game session information, and enable access for players to join game sessions.

Setting Up and Managing Game Servers

When setting up Amazon GameLift resources for your game, you first create a game build and upload it to Amazon GameLift. You can then use these actions to configure and manage a fleet of resources to run your game servers, scale capacity to meet player demand, access performance and utilization metrics, and more.

", + "service": "Amazon GameLift Service

Amazon GameLift is a managed service for developers who need a scalable, dedicated server solution for their multiplayer games. Amazon GameLift provides tools for the following tasks: (1) acquire computing resources and deploy game servers, (2) scale game server capacity to meet player demand, (3) host game sessions and manage player access, and (4) track in-depth metrics on player usage and server performance.

The Amazon GameLift service API includes two important function sets:

This reference guide describes the low-level service API for Amazon GameLift. You can use the API functionality with these tools:

MORE RESOURCES

API SUMMARY

This list offers a functional overview of the Amazon GameLift service API.

Managing Games and Players

Use these actions to start new game sessions, find existing game sessions, track game session status and other information, and enable player access to game sessions.

Setting Up and Managing Game Servers

When setting up Amazon GameLift resources for your game, you first create a game build and upload it to Amazon GameLift. You can then use these actions to configure and manage a fleet of resources to run your game servers, scale capacity to meet player demand, access performance and utilization metrics, and more.

", "operations": { + "AcceptMatch": "

Registers a player's acceptance or rejection of a proposed FlexMatch match. A matchmaking configuration may require player acceptance; if so, then matches built with that configuration cannot be completed unless all players accept the proposed match within a specified time limit.

When FlexMatch builds a match, all the matchmaking tickets involved in the proposed match are placed into status REQUIRES_ACCEPTANCE. This is a trigger for your game to get acceptance from all players in the ticket. Acceptances are only valid for tickets when they are in this status; all other acceptances result in an error.

To register acceptance, specify the ticket ID, a response, and one or more players. Once all players have registered acceptance, the matchmaking tickets advance to status PLACING, where a new game session is created for the match.

If any player rejects the match, or if acceptances are not received before a specified timeout, the proposed match is dropped. The matchmaking tickets are then handled in one of two ways: For tickets where all players accepted the match, the ticket status is returned to SEARCHING to find a new match. For tickets where one or more players failed to accept the match, the ticket status is set to FAILED, and processing is terminated. A new matchmaking request for these players can be submitted as needed.

Matchmaking-related operations include:

", "CreateAlias": "

Creates an alias for a fleet. In most situations, you can use an alias ID in place of a fleet ID. By using a fleet alias instead of a specific fleet ID, you can switch gameplay and players to a new fleet without changing your game client or other game components. For example, for games in production, using an alias allows you to seamlessly redirect your player base to a new game server update.

Amazon GameLift supports two types of routing strategies for aliases: simple and terminal. A simple alias points to an active fleet. A terminal alias is used to display messaging or link to a URL instead of routing players to an active fleet. For example, you might use a terminal alias when a game version is no longer supported and you want to direct players to an upgrade site.

To create a fleet alias, specify an alias name, routing strategy, and optional description. Each simple alias can point to only one fleet, but a fleet can have multiple aliases. If successful, a new alias record is returned, including an alias ID, which you can reference when creating a game session. You can reassign an alias to another fleet by calling UpdateAlias.

Alias-related operations include:

", "CreateBuild": "

Creates a new Amazon GameLift build from a set of game server binary files stored in an Amazon Simple Storage Service (Amazon S3) location. To use this API call, create a .zip file containing all of the files for the build and store it in an Amazon S3 bucket under your AWS account. For help on packaging your build files and creating a build, see Uploading Your Game to Amazon GameLift.

Use this API action ONLY if you are storing your game build files in an Amazon S3 bucket. To create a build using files stored locally, use the CLI command upload-build , which uploads the build files from a file location you specify.

To create a new build using CreateBuild, identify the storage location and operating system of your game build. You also have the option of specifying a build name and version. If successful, this action creates a new build record with an unique build ID and in INITIALIZED status. Use the API call DescribeBuild to check the status of your build. A build must be in READY status before it can be used to create fleets to host your game.

Build-related operations include:

", - "CreateFleet": "

Creates a new fleet to run your game servers. A fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances, each of which can run multiple server processes to host game sessions. You configure a fleet to create instances with certain hardware specifications (see Amazon EC2 Instance Types for more information), and deploy a specified game build to each instance. A newly created fleet passes through several statuses; once it reaches the ACTIVE status, it can begin hosting game sessions.

To create a new fleet, you must specify the following: (1) fleet name, (2) build ID of an uploaded game build, (3) an EC2 instance type, and (4) a run-time configuration that describes which server processes to run on each instance in the fleet. (Although the run-time configuration is not a required parameter, the fleet cannot be successfully activated without it.)

You can also configure the new fleet with the following settings:

If you use Amazon CloudWatch for metrics, you can add the new fleet to a metric group. This allows you to view aggregated metrics for a set of fleets. Once you specify a metric group, the new fleet's metrics are included in the metric group's data.

If the CreateFleet call is successful, Amazon GameLift performs the following tasks:

Fleet-related operations include:

", - "CreateGameSession": "

Creates a multiplayer game session for players. This action creates a game session record and assigns an available server process in the specified fleet to host the game session. A fleet must have an ACTIVE status before a game session can be created in it.

To create a game session, specify either fleet ID or alias ID and indicate a maximum number of players to allow in the game session. You can also provide a name and game-specific properties for this game session. If successful, a GameSession object is returned containing game session properties, including a game session ID with the custom string you provided.

Idempotency tokens. You can add a token that uniquely identifies game session requests. This is useful for ensuring that game session requests are idempotent. Multiple requests with the same idempotency token are processed only once; subsequent requests return the original result. All response values are the same with the exception of game session status, which may change.

Resource creation limits. If you are creating a game session on a fleet with a resource creation limit policy in force, then you must specify a creator ID. Without this ID, Amazon GameLift has no way to evaluate the policy for this new game session request.

By default, newly created game sessions allow new players to join. Use UpdateGameSession to change the game session's player session creation policy.

Available in Amazon GameLift Local.

Game-session-related operations include:

", + "CreateFleet": "

Creates a new fleet to run your game servers. A fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances, each of which can run multiple server processes to host game sessions. You configure a fleet to create instances with certain hardware specifications (see Amazon EC2 Instance Types for more information), and deploy a specified game build to each instance. A newly created fleet passes through several statuses; once it reaches the ACTIVE status, it can begin hosting game sessions.

To create a new fleet, you must specify the following: (1) fleet name, (2) build ID of an uploaded game build, (3) an EC2 instance type, and (4) a run-time configuration that describes which server processes to run on each instance in the fleet. (Although the run-time configuration is not a required parameter, the fleet cannot be successfully activated without it.)

You can also configure the new fleet with the following settings:

If you use Amazon CloudWatch for metrics, you can add the new fleet to a metric group. This allows you to view aggregated metrics for a set of fleets. Once you specify a metric group, the new fleet's metrics are included in the metric group's data.

You have the option of creating a VPC peering connection with the new fleet. For more information, see VPC Peering with Amazon GameLift Fleets.

If the CreateFleet call is successful, Amazon GameLift performs the following tasks:

Fleet-related operations include:

", + "CreateGameSession": "

Creates a multiplayer game session for players. This action creates a game session record and assigns an available server process in the specified fleet to host the game session. A fleet must have an ACTIVE status before a game session can be created in it.

To create a game session, specify either fleet ID or alias ID and indicate a maximum number of players to allow in the game session. You can also provide a name and game-specific properties for this game session. If successful, a GameSession object is returned containing the game session properties and other settings you specified.

Idempotency tokens. You can add a token that uniquely identifies game session requests. This is useful for ensuring that game session requests are idempotent. Multiple requests with the same idempotency token are processed only once; subsequent requests return the original result. All response values are the same with the exception of game session status, which may change.

Resource creation limits. If you are creating a game session on a fleet with a resource creation limit policy in force, then you must specify a creator ID. Without this ID, Amazon GameLift has no way to evaluate the policy for this new game session request.

Player acceptance policy. By default, newly created game sessions are open to new players. You can restrict new player access by using UpdateGameSession to change the game session's player session creation policy.

Game session logs. Logs are retained for all active game sessions for 14 days. To access the logs, call GetGameSessionLogUrl to download the log files.

Available in Amazon GameLift Local.

Game-session-related operations include:

", "CreateGameSessionQueue": "

Establishes a new queue for processing requests to place new game sessions. A queue identifies where new game sessions can be hosted -- by specifying a list of destinations (fleets or aliases) -- and how long requests can wait in the queue before timing out. You can set up a queue to try to place game sessions on fleets in multiple regions. To add placement requests to a queue, call StartGameSessionPlacement and reference the queue name.

Destination order. When processing a request for a game session, Amazon GameLift tries each destination in order until it finds one with available resources to host the new game session. A queue's default order is determined by how destinations are listed. The default order is overridden when a game session placement request provides player latency information. Player latency information enables Amazon GameLift to prioritize destinations where players report the lowest average latency, as a result placing the new game session where the majority of players will have the best possible gameplay experience.

Player latency policies. For placement requests containing player latency information, use player latency policies to protect individual players from very high latencies. With a latency cap, even when a destination can deliver a low latency for most players, the game is not placed where any individual player is reporting latency higher than a policy's maximum. A queue can have multiple latency policies, which are enforced consecutively starting with the policy with the lowest latency cap. Use multiple policies to gradually relax latency controls; for example, you might set a policy with a low latency cap for the first 60 seconds, a second policy with a higher cap for the next 60 seconds, etc.

To create a new queue, provide a name, timeout value, a list of destinations and, if desired, a set of latency policies. If successful, a new queue object is returned.

Queue-related operations include:

", + "CreateMatchmakingConfiguration": "

Defines a new matchmaking configuration for use with FlexMatch. A matchmaking configuration sets out guidelines for matching players and getting the matches into games. You can set up multiple matchmaking configurations to handle the scenarios needed for your game. Each matchmaking request (StartMatchmaking) specifies a configuration for the match and provides player attributes to support the configuration being used.

To create a matchmaking configuration, at a minimum you must specify the following: configuration name; a rule set that governs how to evaluate players and find acceptable matches; a game session queue to use when placing a new game session for the match; and the maximum time allowed for a matchmaking attempt.

Player acceptance -- In each configuration, you have the option to require that all players accept participation in a proposed match. To enable this feature, set AcceptanceRequired to true and specify a time limit for player acceptance. Players have the option to accept or reject a proposed match, and a match does not move ahead to game session placement unless all matched players accept.

Matchmaking status notification -- There are two ways to track the progress of matchmaking tickets: (1) polling ticket status with DescribeMatchmaking; or (2) receiving notifications with Amazon Simple Notification Service (SNS). To use notifications, you first need to set up an SNS topic to receive the notifications, and provide the topic ARN in the matchmaking configuration (see Setting up Notifications for Matchmaking). Since notifications promise only \"best effort\" delivery, we recommend calling DescribeMatchmaking if no notifications are received within 30 seconds.

Operations related to match configurations and rule sets include:

", + "CreateMatchmakingRuleSet": "

Creates a new rule set for FlexMatch matchmaking. A rule set describes the type of match to create, such as the number and size of teams, and sets the parameters for acceptable player matches, such as minimum skill level or character type. Rule sets are used in matchmaking configurations, which define how matchmaking requests are handled. Each MatchmakingConfiguration uses one rule set; you can set up multiple rule sets to handle the scenarios that suit your game (such as for different game modes), and create a separate matchmaking configuration for each rule set. See additional information on rule set content in the MatchmakingRuleSet structure. For help creating rule sets, including useful examples, see the topic Adding FlexMatch to Your Game.

Once created, matchmaking rule sets cannot be changed or deleted, so we recommend checking the rule set syntax using ValidateMatchmakingRuleSetbefore creating the rule set.

To create a matchmaking rule set, provide the set of rules and a unique name. Rule sets must be defined in the same region as the matchmaking configuration they will be used with. Rule sets cannot be edited or deleted. If you need to change a rule set, create a new one with the necessary edits and then update matchmaking configurations to use the new rule set.

Operations related to match configurations and rule sets include:

", "CreatePlayerSession": "

Adds a player to a game session and creates a player session record. Before a player can be added, a game session must have an ACTIVE status, have a creation policy of ALLOW_ALL, and have an open player slot. To add a group of players to a game session, use CreatePlayerSessions.

To create a player session, specify a game session ID, player ID, and optionally a string of player data. If successful, the player is added to the game session and a new PlayerSession object is returned. Player sessions cannot be updated.

Available in Amazon GameLift Local.

Player-session-related operations include:

", "CreatePlayerSessions": "

Adds a group of players to a game session. This action is useful with a team matching feature. Before players can be added, a game session must have an ACTIVE status, have a creation policy of ALLOW_ALL, and have an open player slot. To add a single player to a game session, use CreatePlayerSession.

To create player sessions, specify a game session ID, a list of player IDs, and optionally a set of player data strings. If successful, the players are added to the game session and a set of new PlayerSession objects is returned. Player sessions cannot be updated.

Available in Amazon GameLift Local.

Player-session-related operations include:

", + "CreateVpcPeeringAuthorization": "

Requests authorization to create or delete a peer connection between the VPC for your Amazon GameLift fleet and a virtual private cloud (VPC) in your AWS account. VPC peering enables the game servers on your fleet to communicate directly with other AWS resources. Once you've received authorization, call CreateVpcPeeringConnection to establish the peering connection. For more information, see VPC Peering with Amazon GameLift Fleets.

You can peer with VPCs that are owned by any AWS account you have access to, including the account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different regions.

To request authorization to create a connection, call this operation from the AWS account with the VPC that you want to peer to your Amazon GameLift fleet. For example, to enable your game servers to retrieve data from a DynamoDB table, use the account that manages that DynamoDB resource. Identify the following values: (1) The ID of the VPC that you want to peer with, and (2) the ID of the AWS account that you use to manage Amazon GameLift. If successful, VPC peering is authorized for the specified VPC.

To request authorization to delete a connection, call this operation from the AWS account with the VPC that is peered with your Amazon GameLift fleet. Identify the following values: (1) VPC ID that you want to delete the peering connection for, and (2) ID of the AWS account that you use to manage Amazon GameLift.

The authorization remains valid for 24 hours unless it is canceled by a call to DeleteVpcPeeringAuthorization. You must create or delete the peering connection while the authorization is valid.

VPC peering connection operations include:

", + "CreateVpcPeeringConnection": "

Establishes a VPC peering connection between a virtual private cloud (VPC) in an AWS account with the VPC for your Amazon GameLift fleet. VPC peering enables the game servers on your fleet to communicate directly with other AWS resources. You can peer with VPCs in any AWS account that you have access to, including the account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different regions. For more information, see VPC Peering with Amazon GameLift Fleets.

Before calling this operation to establish the peering connection, you first need to call CreateVpcPeeringAuthorization and identify the VPC you want to peer with. Once the authorization for the specified VPC is issued, you have 24 hours to establish the connection. These two operations handle all tasks necessary to peer the two VPCs, including acceptance, updating routing tables, etc.

To establish the connection, call this operation from the AWS account that is used to manage the Amazon GameLift fleets. Identify the following values: (1) The ID of the fleet you want to be enable a VPC peering connection for; (2) The AWS account with the VPC that you want to peer with; and (3) The ID of the VPC you want to peer with. This operation is asynchronous. If successful, a VpcPeeringConnection request is created. You can use continuous polling to track the request's status using DescribeVpcPeeringConnections, or by monitoring fleet events for success or failure using DescribeFleetEvents.

VPC peering connection operations include:

", "DeleteAlias": "

Deletes an alias. This action removes all record of the alias. Game clients attempting to access a server process using the deleted alias receive an error. To delete an alias, specify the alias ID to be deleted.

Alias-related operations include:

", "DeleteBuild": "

Deletes a build. This action permanently deletes the build record and any uploaded build files.

To delete a build, specify its ID. Deleting a build does not affect the status of any active fleets using the build, but you can no longer create new fleets with the deleted build.

Build-related operations include:

", "DeleteFleet": "

Deletes everything related to a fleet. Before deleting a fleet, you must set the fleet's desired capacity to zero. See UpdateFleetCapacity.

This action removes the fleet's resources and the fleet record. Once a fleet is deleted, you can no longer use that fleet.

Fleet-related operations include:

", "DeleteGameSessionQueue": "

Deletes a game session queue. This action means that any StartGameSessionPlacement requests that reference this queue will fail. To delete a queue, specify the queue name.

Queue-related operations include:

", + "DeleteMatchmakingConfiguration": "

Permanently removes a FlexMatch matchmaking configuration. To delete, specify the configuration name. A matchmaking configuration cannot be deleted if it is being used in any active matchmaking tickets.

Operations related to match configurations and rule sets include:

", "DeleteScalingPolicy": "

Deletes a fleet scaling policy. This action means that the policy is no longer in force and removes all record of it. To delete a scaling policy, specify both the scaling policy name and the fleet ID it is associated with.

Fleet-related operations include:

", + "DeleteVpcPeeringAuthorization": "

Cancels a pending VPC peering authorization for the specified VPC. If the authorization has already been used to create a peering connection, call DeleteVpcPeeringConnection to remove the connection.

VPC peering connection operations include:

", + "DeleteVpcPeeringConnection": "

Removes a VPC peering connection. To delete the connection, you must have a valid authorization for the VPC peering connection that you want to delete. You can check for an authorization by calling DescribeVpcPeeringAuthorizations or request a new one using CreateVpcPeeringAuthorization.

Once a valid authorization exists, call this operation from the AWS account that is used to manage the Amazon GameLift fleets. Identify the connection to delete by the connection ID and fleet ID. If successful, the connection is removed.

VPC peering connection operations include:

", "DescribeAlias": "

Retrieves properties for an alias. This operation returns all alias metadata and settings. To get an alias's target fleet ID only, use ResolveAlias.

To get alias properties, specify the alias ID. If successful, the requested alias record is returned.

Alias-related operations include:

", "DescribeBuild": "

Retrieves properties for a build. To get a build record, specify a build ID. If successful, an object containing the build properties is returned.

Build-related operations include:

", "DescribeEC2InstanceLimits": "

Retrieves the following information for the specified EC2 instance type:

Service limits vary depending on region. Available regions for Amazon GameLift can be found in the AWS Management Console for Amazon GameLift (see the drop-down list in the upper right corner).

Fleet-related operations include:

", @@ -27,10 +35,15 @@ "DescribeGameSessionQueues": "

Retrieves the properties for one or more game session queues. When requesting multiple queues, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a GameSessionQueue object is returned for each requested queue. When specifying a list of queues, objects are returned only for queues that currently exist in the region.

Queue-related operations include:

", "DescribeGameSessions": "

Retrieves a set of one or more game sessions. Request a specific game session or request all game sessions on a fleet. Alternatively, use SearchGameSessions to request a set of active game sessions that are filtered by certain criteria. To retrieve protection policy settings for game sessions, use DescribeGameSessionDetails.

To get game sessions, specify one of the following: game session ID, fleet ID, or alias ID. You can filter this request by game session status. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a GameSession object is returned for each game session matching the request.

Available in Amazon GameLift Local.

Game-session-related operations include:

", "DescribeInstances": "

Retrieves information about a fleet's instances, including instance IDs. Use this action to get details on all instances in the fleet or get details on one specific instance.

To get a specific instance, specify fleet ID and instance ID. To get all instances in a fleet, specify a fleet ID only. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, an Instance object is returned for each result.

", + "DescribeMatchmaking": "

Retrieves a set of one or more matchmaking tickets. Use this operation to retrieve ticket information, including status and--once a successful match is made--acquire connection information for the resulting new game session.

You can use this operation to track the progress of matchmaking requests (through polling) as an alternative to using event notifications. See more details on tracking matchmaking requests through polling or notifications in StartMatchmaking.

You can request data for a one or a list of ticket IDs. If the request is successful, a ticket object is returned for each requested ID. When specifying a list of ticket IDs, objects are returned only for tickets that currently exist.

Matchmaking-related operations include:

", + "DescribeMatchmakingConfigurations": "

Retrieves the details of FlexMatch matchmaking configurations. with this operation, you have the following options: (1) retrieve all existing configurations, (2) provide the names of one or more configurations to retrieve, or (3) retrieve all configurations that use a specified rule set name. When requesting multiple items, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a configuration is returned for each requested name. When specifying a list of names, only configurations that currently exist are returned.

Operations related to match configurations and rule sets include:

", + "DescribeMatchmakingRuleSets": "

Retrieves the details for FlexMatch matchmaking rule sets. You can request all existing rule sets for the region, or provide a list of one or more rule set names. When requesting multiple items, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a rule set is returned for each requested name.

Operations related to match configurations and rule sets include:

", "DescribePlayerSessions": "

Retrieves properties for one or more player sessions. This action can be used in several ways: (1) provide a PlayerSessionId to request properties for a specific player session; (2) provide a GameSessionId to request properties for all player sessions in the specified game session; (3) provide a PlayerId to request properties for all player sessions of a specified player.

To get game session record(s), specify only one of the following: a player session ID, a game session ID, or a player ID. You can filter this request by player session status. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a PlayerSession object is returned for each session matching the request.

Available in Amazon GameLift Local.

Player-session-related operations include:

", "DescribeRuntimeConfiguration": "

Retrieves the current run-time configuration for the specified fleet. The run-time configuration tells Amazon GameLift how to launch server processes on instances in the fleet.

Fleet-related operations include:

", "DescribeScalingPolicies": "

Retrieves all scaling policies applied to a fleet.

To get a fleet's scaling policies, specify the fleet ID. You can filter this request by policy status, such as to retrieve only active scaling policies. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, set of ScalingPolicy objects is returned for the fleet.

Fleet-related operations include:

", - "GetGameSessionLogUrl": "

Retrieves the location of stored game session logs for a specified game session. When a game session is terminated, Amazon GameLift automatically stores the logs in Amazon S3. Use this URL to download the logs.

See the AWS Service Limits page for maximum log file sizes. Log files that exceed this limit are not saved.

Game-session-related operations include:

", + "DescribeVpcPeeringAuthorizations": "

Retrieves valid VPC peering authorizations that are pending for the AWS account. This operation returns all VPC peering authorizations and requests for peering. This includes those initiated and received by this account.

VPC peering connection operations include:

", + "DescribeVpcPeeringConnections": "

Retrieves information on VPC peering connections. Use this operation to get peering information for all fleets or for one specific fleet ID.

To retrieve connection information, call this operation from the AWS account that is used to manage the Amazon GameLift fleets. Specify a fleet ID or leave the parameter empty to retrieve all connection records. If successful, the retrieved information includes both active and pending connections. Active connections identify the IpV4 CIDR block that the VPC uses to connect.

VPC peering connection operations include:

", + "GetGameSessionLogUrl": "

Retrieves the location of stored game session logs for a specified game session. When a game session is terminated, Amazon GameLift automatically stores the logs in Amazon S3 and retains them for 14 days. Use this URL to download the logs.

See the AWS Service Limits page for maximum log file sizes. Log files that exceed this limit are not saved.

Game-session-related operations include:

", "GetInstanceAccess": "

Requests remote access to a fleet instance. Remote access is useful for debugging, gathering benchmarking data, or watching activity in real time.

Access requires credentials that match the operating system of the instance. For a Windows instance, Amazon GameLift returns a user name and password as strings for use with a Windows Remote Desktop client. For a Linux instance, Amazon GameLift returns a user name and RSA private key, also as strings, for use with an SSH client. The private key must be saved in the proper format to a .pem file before using. If you're making this request using the AWS CLI, saving the secret can be handled as part of the GetInstanceAccess request. (See the example later in this topic). For more information on remote access, see Remotely Accessing an Instance.

To request access to a specific instance, specify the IDs of the instance and the fleet it belongs to. If successful, an InstanceAccess object is returned containing the instance's IP address and a set of credentials.

", "ListAliases": "

Retrieves all aliases for this AWS account. You can filter the result set by alias name and/or routing strategy type. Use the pagination parameters to retrieve results in sequential pages.

Returned aliases are not listed in any particular order.

Alias-related operations include:

", "ListBuilds": "

Retrieves build records for all builds associated with the AWS account in use. You can limit results to builds that are in a specific status by using the Status parameter. Use the pagination parameters to retrieve results in a set of sequential pages.

Build records are not listed in any particular order.

Build-related operations include:

", @@ -39,8 +52,10 @@ "RequestUploadCredentials": "

This API call is not currently in use. Retrieves a fresh set of upload credentials and the assigned Amazon S3 storage location for a specific build. Valid credentials are required to upload your game build files to Amazon S3.

", "ResolveAlias": "

Retrieves the fleet ID that a specified alias is currently pointing to.

Alias-related operations include:

", "SearchGameSessions": "

Retrieves a set of game sessions that match a set of search criteria and sorts them in a specified order. A game session search is limited to a single fleet. Search results include only game sessions that are in ACTIVE status. If you need to retrieve game sessions with a status other than active, use DescribeGameSessions. If you need to retrieve the protection policy for each game session, use DescribeGameSessionDetails.

You can search or sort by the following game session attributes:

To search or sort, specify either a fleet ID or an alias ID, and provide a search filter expression, a sort expression, or both. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a collection of GameSession objects matching the request is returned.

Returned values for playerSessionCount and hasAvailablePlayerSessions change quickly as players join sessions and others drop out. Results should be considered a snapshot in time. Be sure to refresh search results often, and handle sessions that fill up before a player can join.

Game-session-related operations include:

", - "StartGameSessionPlacement": "

Places a request for a new game session in a queue (see CreateGameSessionQueue). When processing a placement request, Amazon GameLift searches for available resources on the queue's destinations, scanning each until it finds resources or the placement request times out.

A game session placement request can also request player sessions. When a new game session is successfully created, Amazon GameLift creates a player session for each player included in the request.

When placing a game session, by default Amazon GameLift tries each fleet in the order they are listed in the queue configuration. Ideally, a queue's destinations are listed in preference order.

Alternatively, when requesting a game session with players, you can also provide latency data for each player in relevant regions. Latency data indicates the performance lag a player experiences when connected to a fleet in the region. Amazon GameLift uses latency data to reorder the list of destinations to place the game session in a region with minimal lag. If latency data is provided for multiple players, Amazon GameLift calculates each region's average lag for all players and reorders to get the best game play across all players.

To place a new game session request, specify the following:

If successful, a new game session placement is created.

To track the status of a placement request, call DescribeGameSessionPlacement and check the request's status. If the status is Fulfilled, a new game session has been created and a game session ARN and region are referenced. If the placement request times out, you can resubmit the request or retry it with a different queue.

Game-session-related operations include:

", - "StopGameSessionPlacement": "

Cancels a game session placement that is in Pending status. To stop a placement, provide the placement ID values. If successful, the placement is moved to Cancelled status.

Game-session-related operations include:

", + "StartGameSessionPlacement": "

Places a request for a new game session in a queue (see CreateGameSessionQueue). When processing a placement request, Amazon GameLift searches for available resources on the queue's destinations, scanning each until it finds resources or the placement request times out.

A game session placement request can also request player sessions. When a new game session is successfully created, Amazon GameLift creates a player session for each player included in the request.

When placing a game session, by default Amazon GameLift tries each fleet in the order they are listed in the queue configuration. Ideally, a queue's destinations are listed in preference order.

Alternatively, when requesting a game session with players, you can also provide latency data for each player in relevant regions. Latency data indicates the performance lag a player experiences when connected to a fleet in the region. Amazon GameLift uses latency data to reorder the list of destinations to place the game session in a region with minimal lag. If latency data is provided for multiple players, Amazon GameLift calculates each region's average lag for all players and reorders to get the best game play across all players.

To place a new game session request, specify the following:

If successful, a new game session placement is created.

To track the status of a placement request, call DescribeGameSessionPlacement and check the request's status. If the status is FULFILLED, a new game session has been created and a game session ARN and region are referenced. If the placement request times out, you can resubmit the request or retry it with a different queue.

Game-session-related operations include:

", + "StartMatchmaking": "

Uses FlexMatch to create a game match for a group of players based on custom matchmaking rules, and starts a new game for the matched players. Each matchmaking request specifies the type of match to build (team configuration, rules for an acceptable match, etc.). The request also specifies the players to find a match for and where to host the new game session for optimal performance. A matchmaking request might start with a single player or a group of players who want to play together. FlexMatch finds additional players as needed to fill the match. Match type, rules, and the queue used to place a new game session are defined in a MatchmakingConfiguration. For complete information on setting up and using FlexMatch, see the topic Adding FlexMatch to Your Game.

To start matchmaking, provide a unique ticket ID, specify a matchmaking configuration, and include the players to be matched. You must also include a set of player attributes relevant for the matchmaking configuration. If successful, a matchmaking ticket is returned with status set to QUEUED. Track the status of the ticket to respond as needed and acquire game session connection information for successfully completed matches.

Tracking ticket status -- A couple of options are available for tracking the status of matchmaking requests:

Processing a matchmaking request -- FlexMatch handles a matchmaking request as follows:

  1. Your client code submits a StartMatchmaking request for one or more players and tracks the status of the request ticket.

  2. FlexMatch uses this ticket and others in process to build an acceptable match. When a potential match is identified, all tickets in the proposed match are advanced to the next status.

  3. If the match requires player acceptance (set in the matchmaking configuration), the tickets move into status REQUIRES_ACCEPTANCE. This status triggers your client code to solicit acceptance from all players in every ticket involved in the match, and then call AcceptMatch for each player. If any player rejects or fails to accept the match before a specified timeout, the proposed match is dropped (see AcceptMatch for more details).

  4. Once a match is proposed and accepted, the matchmaking tickets move into status PLACING. FlexMatch locates resources for a new game session using the game session queue (set in the matchmaking configuration) and creates the game session based on the match data.

  5. When the match is successfully placed, the matchmaking tickets move into COMPLETED status. Connection information (including game session endpoint and player session) is added to the matchmaking tickets. Matched players can use the connection information to join the game.

Matchmaking-related operations include:

", + "StopGameSessionPlacement": "

Cancels a game session placement that is in PENDING status. To stop a placement, provide the placement ID values. If successful, the placement is moved to CANCELLED status.

Game-session-related operations include:

", + "StopMatchmaking": "

Cancels a matchmaking ticket that is currently being processed. To stop the matchmaking operation, specify the ticket ID. If successful, work on the ticket is stopped, and the ticket status is changed to CANCELLED.

Matchmaking-related operations include:

", "UpdateAlias": "

Updates properties for an alias. To update properties, specify the alias ID to be updated and provide the information to be changed. To reassign an alias to another fleet, provide an updated routing strategy. If successful, the updated alias record is returned.

Alias-related operations include:

", "UpdateBuild": "

Updates metadata in a build record, including the build name and version. To update the metadata, specify the build ID to update and provide the new values. If successful, a build object containing the updated metadata is returned.

Build-related operations include:

", "UpdateFleetAttributes": "

Updates fleet properties, including name and description, for a fleet. To update metadata, specify the fleet ID and the property values that you want to change. If successful, the fleet ID for the updated fleet is returned.

Fleet-related operations include:

", @@ -48,9 +63,27 @@ "UpdateFleetPortSettings": "

Updates port settings for a fleet. To update settings, specify the fleet ID to be updated and list the permissions you want to update. List the permissions you want to add in InboundPermissionAuthorizations, and permissions you want to remove in InboundPermissionRevocations. Permissions to be removed must match existing fleet permissions. If successful, the fleet ID for the updated fleet is returned.

Fleet-related operations include:

", "UpdateGameSession": "

Updates game session properties. This includes the session name, maximum player count, protection policy, which controls whether or not an active game session can be terminated during a scale-down event, and the player session creation policy, which controls whether or not new players can join the session. To update a game session, specify the game session ID and the values you want to change. If successful, an updated GameSession object is returned.

Game-session-related operations include:

", "UpdateGameSessionQueue": "

Updates settings for a game session queue, which determines how new game session requests in the queue are processed. To update settings, specify the queue name to be updated and provide the new settings. When updating destinations, provide a complete list of destinations.

Queue-related operations include:

", - "UpdateRuntimeConfiguration": "

Updates the current run-time configuration for the specified fleet, which tells Amazon GameLift how to launch server processes on instances in the fleet. You can update a fleet's run-time configuration at any time after the fleet is created; it does not need to be in an ACTIVE status.

To update run-time configuration, specify the fleet ID and provide a RuntimeConfiguration object with the updated collection of server process configurations.

Each instance in a Amazon GameLift fleet checks regularly for an updated run-time configuration and changes how it launches server processes to comply with the latest version. Existing server processes are not affected by the update; they continue to run until they end, while Amazon GameLift simply adds new server processes to fit the current run-time configuration. As a result, the run-time configuration changes are applied gradually as existing processes shut down and new processes are launched in Amazon GameLift's normal process recycling activity.

Fleet-related operations include:

" + "UpdateMatchmakingConfiguration": "

Updates settings for a FlexMatch matchmaking configuration. To update settings, specify the configuration name to be updated and provide the new settings.

Operations related to match configurations and rule sets include:

", + "UpdateRuntimeConfiguration": "

Updates the current run-time configuration for the specified fleet, which tells Amazon GameLift how to launch server processes on instances in the fleet. You can update a fleet's run-time configuration at any time after the fleet is created; it does not need to be in an ACTIVE status.

To update run-time configuration, specify the fleet ID and provide a RuntimeConfiguration object with the updated collection of server process configurations.

Each instance in a Amazon GameLift fleet checks regularly for an updated run-time configuration and changes how it launches server processes to comply with the latest version. Existing server processes are not affected by the update; they continue to run until they end, while Amazon GameLift simply adds new server processes to fit the current run-time configuration. As a result, the run-time configuration changes are applied gradually as existing processes shut down and new processes are launched in Amazon GameLift's normal process recycling activity.

Fleet-related operations include:

", + "ValidateMatchmakingRuleSet": "

Validates the syntax of a matchmaking rule or rule set. This operation checks that the rule set uses syntactically correct JSON and that it conforms to allowed property expressions. To validate syntax, provide a rule set string.

Operations related to match configurations and rule sets include:

" }, "shapes": { + "AcceptMatchInput": { + "base": "

Represents the input for a request action.

", + "refs": { + } + }, + "AcceptMatchOutput": { + "base": null, + "refs": { + } + }, + "AcceptanceType": { + "base": null, + "refs": { + "AcceptMatchInput$AcceptanceType": "

Player response to the proposed match.

" + } + }, "Alias": { "base": "

Properties describing a fleet alias.

Alias-related operations include:

", "refs": { @@ -90,19 +123,36 @@ "DescribeGameSessionsInput$GameSessionId": "

Unique identifier for the game session to retrieve. You can use either a GameSessionId or GameSessionArn value.

", "DescribePlayerSessionsInput$GameSessionId": "

Unique identifier for the game session to retrieve player sessions for.

", "FleetAttributes$FleetArn": "

Identifier for a fleet that is unique across all regions.

", + "GameSessionConnectionInfo$GameSessionArn": "

Amazon Resource Name (ARN) that is assigned to a game session and uniquely identifies it.

", "GameSessionQueue$GameSessionQueueArn": "

Amazon Resource Name (ARN) that is assigned to a game session queue and uniquely identifies it. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

", "GameSessionQueueDestination$DestinationArn": "

Amazon Resource Name (ARN) assigned to fleet or fleet alias. ARNs, which include a fleet ID or alias ID and a region name, provide a unique identifier across all regions.

", "GetGameSessionLogUrlInput$GameSessionId": "

Unique identifier for the game session to get logs for.

", + "QueueArnsList$member": null, "UpdateGameSessionInput$GameSessionId": "

Unique identifier for the game session to update.

" } }, + "AttributeValue": { + "base": "

Values for use in Player attribute type:value pairs. This object lets you specify an attribute value using any of the valid data types: string, number, string array or data map. Each AttributeValue object can use only one of the available properties.

", + "refs": { + "PlayerAttributeMap$value": null + } + }, "AwsCredentials": { - "base": "

AWS access credentials sometimes used for uploading game build files to Amazon GameLift. They are valid for a limited time. If they expire before you upload your game build, get a new set by calling RequestUploadCredentials.

", + "base": "

Temporary access credentials used for uploading game build files to Amazon GameLift. They are valid for a limited time. If they expire before you upload your game build, get a new set by calling RequestUploadCredentials.

", "refs": { "CreateBuildOutput$UploadCredentials": "

This element is not currently in use.

", "RequestUploadCredentialsOutput$UploadCredentials": "

AWS credentials required when uploading a game build to the storage location. These credentials have a limited lifespan and are valid only for the build they were issued for.

" } }, + "Boolean": { + "base": null, + "refs": { + "CreateMatchmakingConfigurationInput$AcceptanceRequired": "

Flag that determines whether or not a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE.

", + "MatchmakingConfiguration$AcceptanceRequired": "

Flag that determines whether or not a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE.

", + "UpdateMatchmakingConfigurationInput$AcceptanceRequired": "

Flag that determines whether or not a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE.

", + "ValidateMatchmakingRuleSetOutput$Valid": "

Response indicating whether or not the rule set is valid.

" + } + }, "Build": { "base": "

Properties describing a game build.

Build-related operations include:

", "refs": { @@ -134,8 +184,8 @@ "BuildStatus": { "base": null, "refs": { - "Build$Status": "

Current status of the build.

Possible build statuses include the following:

", - "ListBuildsInput$Status": "

Build status to filter results by. To retrieve all builds, leave this parameter empty.

Possible build statuses include the following:

" + "Build$Status": "

Current status of the build.

Possible build statuses include the following:

", + "ListBuildsInput$Status": "

Build status to filter results by. To retrieve all builds, leave this parameter empty.

Possible build statuses include the following:

" } }, "ComparisonOperatorType": { @@ -200,6 +250,26 @@ "refs": { } }, + "CreateMatchmakingConfigurationInput": { + "base": "

Represents the input for a request action.

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

Represents the returned data in response to a request action.

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

Represents the input for a request action.

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

Represents the returned data in response to a request action.

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

Represents the input for a request action.

", "refs": { @@ -220,6 +290,34 @@ "refs": { } }, + "CreateVpcPeeringAuthorizationInput": { + "base": "

Represents the input for a request action.

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

Represents the returned data in response to a request action.

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

Represents the input for a request action.

", + "refs": { + } + }, + "CreateVpcPeeringConnectionOutput": { + "base": null, + "refs": { + } + }, + "CustomEventData": { + "base": null, + "refs": { + "CreateMatchmakingConfigurationInput$CustomEventData": "

Information to attached to all events related to the matchmaking configuration.

", + "MatchmakingConfiguration$CustomEventData": "

Information to attached to all events related to the matchmaking configuration.

", + "UpdateMatchmakingConfigurationInput$CustomEventData": "

Information to attached to all events related to the matchmaking configuration.

" + } + }, "DeleteAliasInput": { "base": "

Represents the input for a request action.

", "refs": { @@ -245,11 +343,41 @@ "refs": { } }, + "DeleteMatchmakingConfigurationInput": { + "base": "

Represents the input for a request action.

", + "refs": { + } + }, + "DeleteMatchmakingConfigurationOutput": { + "base": null, + "refs": { + } + }, "DeleteScalingPolicyInput": { "base": "

Represents the input for a request action.

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

Represents the input for a request action.

", + "refs": { + } + }, + "DeleteVpcPeeringAuthorizationOutput": { + "base": null, + "refs": { + } + }, + "DeleteVpcPeeringConnectionInput": { + "base": "

Represents the input for a request action.

", + "refs": { + } + }, + "DeleteVpcPeeringConnectionOutput": { + "base": null, + "refs": { + } + }, "DescribeAliasInput": { "base": "

Represents the input for a request action.

", "refs": { @@ -380,6 +508,36 @@ "refs": { } }, + "DescribeMatchmakingConfigurationsInput": { + "base": "

Represents the input for a request action.

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

Represents the returned data in response to a request action.

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

Represents the input for a request action.

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

Represents the returned data in response to a request action.

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

Represents the input for a request action.

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

Represents the returned data in response to a request action.

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

Represents the input for a request action.

", "refs": { @@ -410,6 +568,26 @@ "refs": { } }, + "DescribeVpcPeeringAuthorizationsInput": { + "base": null, + "refs": { + } + }, + "DescribeVpcPeeringAuthorizationsOutput": { + "base": null, + "refs": { + } + }, + "DescribeVpcPeeringConnectionsInput": { + "base": "

Represents the input for a request action.

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

Represents the returned data in response to a request action.

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

Player information for use when creating player sessions using a game session placement request with StartGameSessionPlacement.

", "refs": { @@ -429,6 +607,13 @@ "ScalingPolicy$Threshold": "

Metric value used to trigger a scaling event.

" } }, + "DoubleObject": { + "base": null, + "refs": { + "AttributeValue$N": "

For number values, expressed as double.

", + "StringDoubleMap$value": null + } + }, "EC2InstanceCounts": { "base": "

Current status of fleet capacity. The number of active instances should match or be in the process of matching the number of desired instances. Pending and terminating counts are non-zero only if fleet capacity is adjusting to an UpdateFleetCapacity request, or if access to resources is temporarily affected.

Fleet-related operations include:

", "refs": { @@ -466,7 +651,7 @@ "EventCode": { "base": null, "refs": { - "Event$EventCode": "

Type of event being logged. The following events are currently in use:

" + "Event$EventCode": "

Type of event being logged. The following events are currently in use:

General events:

Fleet creation events:

VPC peering events:

Other fleet events:

" } }, "EventList": { @@ -509,8 +694,10 @@ "base": null, "refs": { "CreateGameSessionInput$FleetId": "

Unique identifier for a fleet to create a game session in. Each request must reference either a fleet ID or alias ID, but not both.

", + "CreateVpcPeeringConnectionInput$FleetId": "

Unique identifier for a fleet. This tells Amazon GameLift which GameLift VPC to peer with.

", "DeleteFleetInput$FleetId": "

Unique identifier for a fleet to be deleted.

", "DeleteScalingPolicyInput$FleetId": "

Unique identifier for a fleet to be deleted.

", + "DeleteVpcPeeringConnectionInput$FleetId": "

Unique identifier for a fleet. This value must match the fleet ID referenced in the VPC peering connection record.

", "DescribeFleetEventsInput$FleetId": "

Unique identifier for a fleet to get event logs for.

", "DescribeFleetPortSettingsInput$FleetId": "

Unique identifier for a fleet to retrieve port settings for.

", "DescribeGameSessionDetailsInput$FleetId": "

Unique identifier for a fleet to retrieve all game sessions active on the fleet.

", @@ -518,11 +705,12 @@ "DescribeInstancesInput$FleetId": "

Unique identifier for a fleet to retrieve instance information for.

", "DescribeRuntimeConfigurationInput$FleetId": "

Unique identifier for a fleet to get the run-time configuration for.

", "DescribeScalingPoliciesInput$FleetId": "

Unique identifier for a fleet to retrieve scaling policies for.

", + "DescribeVpcPeeringConnectionsInput$FleetId": "

Unique identifier for a fleet.

", "FleetAttributes$FleetId": "

Unique identifier for a fleet.

", "FleetCapacity$FleetId": "

Unique identifier for a fleet.

", "FleetIdList$member": null, "FleetUtilization$FleetId": "

Unique identifier for a fleet.

", - "GameSession$FleetId": "

Unique identifier for a fleet the game session is running on.

", + "GameSession$FleetId": "

Unique identifier for a fleet that the game session is running on.

", "GetInstanceAccessInput$FleetId": "

Unique identifier for a fleet that contains the instance you want access to. The fleet can be in any of the following statuses: ACTIVATING, ACTIVE, or ERROR. Fleets with an ERROR status may be accessible for a short time before they are deleted.

", "Instance$FleetId": "

Unique identifier for a fleet that the instance is in.

", "InstanceAccess$FleetId": "

Unique identifier for a fleet containing the instance being accessed.

", @@ -538,7 +726,8 @@ "UpdateFleetCapacityOutput$FleetId": "

Unique identifier for a fleet that was updated.

", "UpdateFleetPortSettingsInput$FleetId": "

Unique identifier for a fleet to update port settings for.

", "UpdateFleetPortSettingsOutput$FleetId": "

Unique identifier for a fleet that was updated.

", - "UpdateRuntimeConfigurationInput$FleetId": "

Unique identifier for a fleet to update run-time configuration for.

" + "UpdateRuntimeConfigurationInput$FleetId": "

Unique identifier for a fleet to update run-time configuration for.

", + "VpcPeeringConnection$FleetId": "

Unique identifier for a fleet. This ID determines the ID of the Amazon GameLift VPC for your fleet.

" } }, "FleetIdList": { @@ -553,7 +742,7 @@ "FleetStatus": { "base": null, "refs": { - "FleetAttributes$Status": "

Current status of the fleet.

Possible fleet statuses include the following:

" + "FleetAttributes$Status": "

Current status of the fleet.

Possible fleet statuses include the following:

" } }, "FleetUtilization": { @@ -584,7 +773,7 @@ } }, "GameProperty": { - "base": "

Set of key-value pairs containing information a server process requires to set up a game session. This object allows you to pass in any set of data needed for your game. For more information, see the Amazon GameLift Developer Guide.

", + "base": "

Set of key-value pairs that contain information about a game session. When included in a game session request, these properties communicate details to be used when setting up the new game session, such as to specify a game mode, level, or map. Game properties are passed to the game server process when initiating a new game session; the server process uses the properties as appropriate. For more information, see the Amazon GameLift Developer Guide.

", "refs": { "GamePropertyList$member": null } @@ -592,26 +781,29 @@ "GamePropertyKey": { "base": null, "refs": { - "GameProperty$Key": "

TBD

" + "GameProperty$Key": "

Game property identifier.

" } }, "GamePropertyList": { "base": null, "refs": { - "CreateGameSessionInput$GameProperties": "

Set of developer-defined properties for a game session. These properties are passed to the server process hosting the game session.

", - "GameSession$GameProperties": "

Set of developer-defined properties for a game session. These properties are passed to the server process hosting the game session.

", - "GameSessionPlacement$GameProperties": "

Set of developer-defined properties for a game session. These properties are passed to the server process hosting the game session.

", - "StartGameSessionPlacementInput$GameProperties": "

Set of developer-defined properties for a game session. These properties are passed to the server process hosting the game session.

" + "CreateGameSessionInput$GameProperties": "

Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session).

", + "CreateMatchmakingConfigurationInput$GameProperties": "

Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match.

", + "GameSession$GameProperties": "

Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session).

", + "GameSessionPlacement$GameProperties": "

Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session).

", + "MatchmakingConfiguration$GameProperties": "

Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match.

", + "StartGameSessionPlacementInput$GameProperties": "

Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session).

", + "UpdateMatchmakingConfigurationInput$GameProperties": "

Set of developer-defined properties for a game session, formatted as a set of type:value pairs. These properties are included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match.

" } }, "GamePropertyValue": { "base": null, "refs": { - "GameProperty$Value": "

TBD

" + "GameProperty$Value": "

Game property value.

" } }, "GameSession": { - "base": "

Properties describing a game session.

Game-session-related operations include:

", + "base": "

Properties describing a game session.

A game session in ACTIVE status can host players. When a game session ends, its status is set to TERMINATED.

Once the session ends, the game session object is retained for 30 days. This means you can reuse idempotency token values after this time. Game session logs are retained for 14 days.

Game-session-related operations include:

", "refs": { "CreateGameSessionOutput$GameSession": "

Object that describes the newly created game session record.

", "GameSessionDetail$GameSession": "

Object that describes a game session.

", @@ -625,6 +817,24 @@ "RuntimeConfiguration$GameSessionActivationTimeoutSeconds": "

Maximum amount of time (in seconds) that a game session can remain in status ACTIVATING. If the game session is not active before the timeout, activation is terminated and the game session status is changed to TERMINATED.

" } }, + "GameSessionConnectionInfo": { + "base": "

Connection information for the new game session that is created with matchmaking. (with StartMatchmaking). Once a match is set, the FlexMatch engine places the match and creates a new game session for it. This information, including the game session endpoint and player sessions for each player in the original matchmaking request, is added to the MatchmakingTicket, which can be retrieved by calling DescribeMatchmaking.

", + "refs": { + "MatchmakingTicket$GameSessionConnectionInfo": "

Identifier and connection information of the game session created for the match. This information is added to the ticket only after the matchmaking request has been successfully completed.

" + } + }, + "GameSessionData": { + "base": null, + "refs": { + "CreateGameSessionInput$GameSessionData": "

Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session).

", + "CreateMatchmakingConfigurationInput$GameSessionData": "

Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match.

", + "GameSession$GameSessionData": "

Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session).

", + "GameSessionPlacement$GameSessionData": "

Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session).

", + "MatchmakingConfiguration$GameSessionData": "

Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match.

", + "StartGameSessionPlacementInput$GameSessionData": "

Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session).

", + "UpdateMatchmakingConfigurationInput$GameSessionData": "

Set of developer-defined game session properties, formatted as a single string value. This data is included in the GameSession object, which is passed to the game server with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match.

" + } + }, "GameSessionDetail": { "base": "

A game session's properties plus the protection policy currently in force.

", "refs": { @@ -654,17 +864,17 @@ "refs": { "DescribeGameSessionPlacementOutput$GameSessionPlacement": "

Object that describes the requested game session placement.

", "StartGameSessionPlacementOutput$GameSessionPlacement": "

Object that describes the newly created game session placement. This object includes all the information provided in the request, as well as start/end time stamps and placement status.

", - "StopGameSessionPlacementOutput$GameSessionPlacement": "

Object that describes the canceled game session placement, with Cancelled status and an end time stamp.

" + "StopGameSessionPlacementOutput$GameSessionPlacement": "

Object that describes the canceled game session placement, with CANCELLED status and an end time stamp.

" } }, "GameSessionPlacementState": { "base": null, "refs": { - "GameSessionPlacement$Status": "

Current status of the game session placement request.

" + "GameSessionPlacement$Status": "

Current status of the game session placement request.

" } }, "GameSessionQueue": { - "base": "

Configuration of a queue that is used to process game session placement requests. The queue configuration identifies several game features:

Queue-related operations include:

Queue-related operations include the following:

", + "base": "

Configuration of a queue that is used to process game session placement requests. The queue configuration identifies several game features:

Queue-related operations include:

", "refs": { "CreateGameSessionQueueOutput$GameSessionQueue": "

Object that describes the newly created game session queue.

", "GameSessionQueueList$member": null, @@ -694,13 +904,13 @@ "GameSessionQueueName": { "base": null, "refs": { - "CreateGameSessionQueueInput$Name": "

Descriptive label that is associated with queue. Queue names must be unique within each region.

", - "DeleteGameSessionQueueInput$Name": "

Descriptive label that is associated with queue. Queue names must be unique within each region.

", - "GameSessionPlacement$GameSessionQueueName": "

Descriptive label that is associated with queue. Queue names must be unique within each region.

", - "GameSessionQueue$Name": "

Descriptive label that is associated with queue. Queue names must be unique within each region.

", + "CreateGameSessionQueueInput$Name": "

Descriptive label that is associated with game session queue. Queue names must be unique within each region.

", + "DeleteGameSessionQueueInput$Name": "

Descriptive label that is associated with game session queue. Queue names must be unique within each region.

", + "GameSessionPlacement$GameSessionQueueName": "

Descriptive label that is associated with game session queue. Queue names must be unique within each region.

", + "GameSessionQueue$Name": "

Descriptive label that is associated with game session queue. Queue names must be unique within each region.

", "GameSessionQueueNameList$member": null, "StartGameSessionPlacementInput$GameSessionQueueName": "

Name of the queue to use to place the new game session.

", - "UpdateGameSessionQueueInput$Name": "

Descriptive label that is associated with queue. Queue names must be unique within each region.

" + "UpdateGameSessionQueueInput$Name": "

Descriptive label that is associated with game session queue. Queue names must be unique within each region.

" } }, "GameSessionQueueNameList": { @@ -738,8 +948,8 @@ "IdStringModel": { "base": null, "refs": { - "CreateGameSessionInput$GameSessionId": "

This parameter is no longer preferred. Please use IdempotencyToken instead. Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID. (A game session ID has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.)

", - "CreateGameSessionInput$IdempotencyToken": "

Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID. (A game session ID has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.)

", + "CreateGameSessionInput$GameSessionId": "

This parameter is no longer preferred. Please use IdempotencyToken instead. Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID. (A game session ARN has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.)

", + "CreateGameSessionInput$IdempotencyToken": "

Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID. (A game session ARN has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.) Idempotency tokens remain in use for 30 days after a game session has ended; game session objects are retained for this time period and then deleted.

", "DescribeGameSessionPlacementInput$PlacementId": "

Unique identifier for a game session placement to retrieve.

", "GameSessionPlacement$PlacementId": "

Unique identifier for a game session placement.

", "StartGameSessionPlacementInput$PlacementId": "

Unique identifier to assign to the new game session placement. This value is developer-defined. The value must be unique across all regions and cannot be reused unless you are resubmitting a canceled or timed-out placement request.

", @@ -752,7 +962,7 @@ } }, "Instance": { - "base": "

Properties that describe an instance of a virtual computing resource that hosts one or more game servers. A fleet contains zero or more instances.

", + "base": "

Properties that describe an instance of a virtual computing resource that hosts one or more game servers. A fleet may contain zero or more instances.

", "refs": { "InstanceList$member": null } @@ -787,7 +997,7 @@ "InstanceStatus": { "base": null, "refs": { - "Instance$Status": "

Current status of the instance. Possible statuses include the following:

" + "Instance$Status": "

Current status of the instance. Possible statuses include the following:

" } }, "Integer": { @@ -821,7 +1031,7 @@ "base": null, "refs": { "GameSession$IpAddress": "

IP address of the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number.

", - "GameSessionPlacement$IpAddress": "

IP address of the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is Fulfilled).

", + "GameSessionPlacement$IpAddress": "

IP address of the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is FULFILLED).

", "Instance$IpAddress": "

IP address assigned to the instance.

", "InstanceAccess$IpAddress": "

IP address assigned to the instance.

", "PlayerSession$IpAddress": "

IP address of the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number.

" @@ -848,6 +1058,12 @@ "IpPermission$Protocol": "

Network communication protocol used by the fleet.

" } }, + "LatencyMap": { + "base": null, + "refs": { + "Player$LatencyInMs": "

Set of values, expressed in milliseconds, indicating the amount of latency that a player experiences when connected to AWS regions. If this property is present, FlexMatch considers placing the match only in regions for which latency is reported.

If a matchmaker has a rule that evaluates player latency, players must report latency in order to be matched. If no latency is reported in this scenario, FlexMatch assumes that no regions are available to the player and the ticket is not matchable.

" + } + }, "LimitExceededException": { "base": "

The requested operation would cause the resource to exceed the allowed service limit. Resolve the issue before retrying.

", "refs": { @@ -883,6 +1099,122 @@ "refs": { } }, + "MatchedPlayerSession": { + "base": "

Represents a new player session that is created as a result of a successful FlexMatch match. A successful match automatically creates new player sessions for every player ID in the original matchmaking request.

When players connect to the match's game session, they must include both player ID and player session ID in order to claim their assigned player slot.

", + "refs": { + "MatchedPlayerSessionList$member": null + } + }, + "MatchedPlayerSessionList": { + "base": null, + "refs": { + "GameSessionConnectionInfo$MatchedPlayerSessions": "

Collection of player session IDs, one for each player ID that was included in the original matchmaking request.

" + } + }, + "MatchmakingAcceptanceTimeoutInteger": { + "base": null, + "refs": { + "CreateMatchmakingConfigurationInput$AcceptanceTimeoutSeconds": "

Length of time (in seconds) to wait for players to accept a proposed match. If any player rejects the match or fails to accept before the timeout, the ticket continues to look for an acceptable match.

", + "MatchmakingConfiguration$AcceptanceTimeoutSeconds": "

Length of time (in seconds) to wait for players to accept a proposed match. If any player rejects the match or fails to accept before the timeout, the ticket continues to look for an acceptable match.

", + "UpdateMatchmakingConfigurationInput$AcceptanceTimeoutSeconds": "

Length of time (in seconds) to wait for players to accept a proposed match. If any player rejects the match or fails to accept before the timeout, the ticket continues to look for an acceptable match.

" + } + }, + "MatchmakingConfiguration": { + "base": "

Guidelines for use with FlexMatch to match players into games. All matchmaking requests must specify a matchmaking configuration.

", + "refs": { + "CreateMatchmakingConfigurationOutput$Configuration": "

Object that describes the newly created matchmaking configuration.

", + "MatchmakingConfigurationList$member": null, + "UpdateMatchmakingConfigurationOutput$Configuration": "

Object that describes the updated matchmaking configuration.

" + } + }, + "MatchmakingConfigurationList": { + "base": null, + "refs": { + "DescribeMatchmakingConfigurationsOutput$Configurations": "

Collection of requested matchmaking configuration objects.

" + } + }, + "MatchmakingConfigurationStatus": { + "base": null, + "refs": { + "MatchmakingTicket$Status": "

Current status of the matchmaking request.

" + } + }, + "MatchmakingIdList": { + "base": null, + "refs": { + "DescribeMatchmakingConfigurationsInput$Names": "

Unique identifier for a matchmaking configuration(s) to retrieve. To request all existing configurations, leave this parameter empty.

", + "DescribeMatchmakingInput$TicketIds": "

Unique identifier for a matchmaking ticket. To request all existing tickets, leave this parameter empty.

" + } + }, + "MatchmakingIdStringModel": { + "base": null, + "refs": { + "AcceptMatchInput$TicketId": "

Unique identifier for a matchmaking ticket. The ticket must be in status REQUIRES_ACCEPTANCE; otherwise this request will fail.

", + "CreateMatchmakingConfigurationInput$Name": "

Unique identifier for a matchmaking configuration. This name is used to identify the configuration associated with a matchmaking request or ticket.

", + "CreateMatchmakingConfigurationInput$RuleSetName": "

Unique identifier for a matchmaking rule set to use with this configuration. A matchmaking configuration can only use rule sets that are defined in the same region.

", + "CreateMatchmakingRuleSetInput$Name": "

Unique identifier for a matchmaking rule set. This name is used to identify the rule set associated with a matchmaking configuration.

", + "DeleteMatchmakingConfigurationInput$Name": "

Unique identifier for a matchmaking configuration

", + "DescribeMatchmakingConfigurationsInput$RuleSetName": "

Unique identifier for a matchmaking rule set. Use this parameter to retrieve all matchmaking configurations that use this rule set.

", + "MatchmakingConfiguration$Name": "

Unique identifier for a matchmaking configuration. This name is used to identify the configuration associated with a matchmaking request or ticket.

", + "MatchmakingConfiguration$RuleSetName": "

Unique identifier for a matchmaking rule set to use with this configuration. A matchmaking configuration can only use rule sets that are defined in the same region.

", + "MatchmakingIdList$member": null, + "MatchmakingRuleSet$RuleSetName": "

Unique identifier for a matchmaking rule set

", + "MatchmakingRuleSetNameList$member": null, + "MatchmakingTicket$TicketId": "

Unique identifier for a matchmaking ticket.

", + "MatchmakingTicket$ConfigurationName": "

Name of the MatchmakingConfiguration that is used with this ticket. Matchmaking configurations determine how players are grouped into a match and how a new game session is created for the match.

", + "StartMatchmakingInput$TicketId": "

Unique identifier for a matchmaking ticket. Use this identifier to track the matchmaking ticket status and retrieve match results.

", + "StartMatchmakingInput$ConfigurationName": "

Name of the matchmaking configuration to use for this request. Matchmaking configurations must exist in the same region as this request.

", + "StopMatchmakingInput$TicketId": "

Unique identifier for a matchmaking ticket.

", + "UpdateMatchmakingConfigurationInput$Name": "

Unique identifier for a matchmaking configuration to update.

", + "UpdateMatchmakingConfigurationInput$RuleSetName": "

Unique identifier for a matchmaking rule set to use with this configuration. A matchmaking configuration can only use rule sets that are defined in the same region.

" + } + }, + "MatchmakingPlayerIdList": { + "base": null, + "refs": { + "AcceptMatchInput$PlayerIds": "

Unique identifier for a player delivering the response. This parameter can include one or multiple player IDs.

" + } + }, + "MatchmakingRequestTimeoutInteger": { + "base": null, + "refs": { + "CreateMatchmakingConfigurationInput$RequestTimeoutSeconds": "

Maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that time out can be resubmitted as needed.

", + "MatchmakingConfiguration$RequestTimeoutSeconds": "

Maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that time out can be resubmitted as needed.

", + "UpdateMatchmakingConfigurationInput$RequestTimeoutSeconds": "

Maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that time out can be resubmitted as needed.

" + } + }, + "MatchmakingRuleSet": { + "base": "

Set of rule statements, used with FlexMatch, that determine how to build a certain kind of player match. Each rule set describes a type of group to be created and defines the parameters for acceptable player matches. Rule sets are used in MatchmakingConfiguration objects.

A rule set may define the following elements for a match. For detailed information and examples showing how to construct a rule set, see Create Matchmaking Rules for Your Game.

", + "refs": { + "CreateMatchmakingRuleSetOutput$RuleSet": "

Object that describes the newly created matchmaking rule set.

", + "MatchmakingRuleSetList$member": null + } + }, + "MatchmakingRuleSetList": { + "base": null, + "refs": { + "DescribeMatchmakingRuleSetsOutput$RuleSets": "

Collection of requested matchmaking rule set objects.

" + } + }, + "MatchmakingRuleSetNameList": { + "base": null, + "refs": { + "DescribeMatchmakingRuleSetsInput$Names": "

Unique identifier for a matchmaking rule set. This name is used to identify the rule set associated with a matchmaking configuration.

" + } + }, + "MatchmakingTicket": { + "base": "

Ticket generated to track the progress of a matchmaking request. Each ticket is uniquely identified by a ticket ID, supplied by the requester, when creating a matchmaking request with StartMatchmaking. Tickets can be retrieved by calling DescribeMatchmaking with the ticket ID.

", + "refs": { + "MatchmakingTicketList$member": null, + "StartMatchmakingOutput$MatchmakingTicket": "

Ticket representing the matchmaking request. This object include the information included in the request, ticket status, and match results as generated during the matchmaking process.

" + } + }, + "MatchmakingTicketList": { + "base": null, + "refs": { + "DescribeMatchmakingOutput$TicketList": "

Collection of existing matchmaking ticket objects matching the request.

" + } + }, "MaxConcurrentGameSessionActivations": { "base": null, "refs": { @@ -906,8 +1238,8 @@ "MetricName": { "base": null, "refs": { - "PutScalingPolicyInput$MetricName": "

Name of the Amazon GameLift-defined metric that is used to trigger an adjustment.

", - "ScalingPolicy$MetricName": "

Name of the Amazon GameLift-defined metric that is used to trigger an adjustment.

" + "PutScalingPolicyInput$MetricName": "

Name of the Amazon GameLift-defined metric that is used to trigger an adjustment.

", + "ScalingPolicy$MetricName": "

Name of the Amazon GameLift-defined metric that is used to trigger an adjustment.

" } }, "NonBlankAndLengthConstraintString": { @@ -927,9 +1259,9 @@ "NonEmptyString": { "base": null, "refs": { - "AwsCredentials$AccessKeyId": "

Access key for an AWS account.

", - "AwsCredentials$SecretAccessKey": "

Secret key for an AWS account.

", - "AwsCredentials$SessionToken": "

Token specific to a build ID.

", + "AwsCredentials$AccessKeyId": "

Temporary key allowing access to the Amazon GameLift S3 account.

", + "AwsCredentials$SecretAccessKey": "

Temporary secret key allowing access to the Amazon GameLift S3 account.

", + "AwsCredentials$SessionToken": "

Token used to associate a specific build ID with the files uploaded using these credentials.

", "ConflictException$Message": null, "Event$Message": "

Additional information related to the event.

", "FleetCapacityExceededException$Message": null, @@ -941,23 +1273,26 @@ "InvalidFleetStatusException$Message": null, "InvalidGameSessionStatusException$Message": null, "InvalidRequestException$Message": null, + "LatencyMap$key": null, "LimitExceededException$Message": null, "ListAliasesInput$Name": "

Descriptive label that is associated with an alias. Alias names do not need to be unique.

", - "ListAliasesInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

", + "ListAliasesInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", "ListAliasesOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", - "ListBuildsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

", + "ListBuildsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", "ListBuildsOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", "NotFoundException$Message": null, "S3Location$Bucket": "

Amazon S3 bucket identifier. This is the name of your S3 bucket.

", "S3Location$Key": "

Name of the zip file containing your build files.

", "S3Location$RoleArn": "

Amazon Resource Name (ARN) for the access role that allows Amazon GameLift to access your S3 bucket.

", "TerminalRoutingStrategyException$Message": null, - "UnauthorizedException$Message": null + "UnauthorizedException$Message": null, + "UnsupportedRegionException$Message": null } }, "NonZeroAndMaxString": { "base": null, "refs": { + "AttributeValue$S": "

For single string values. Maximum string length is 100 characters.

", "CreateAliasInput$Description": "

Human-readable description of an alias.

", "CreateBuildInput$Name": "

Descriptive label that is associated with a build. Build names do not need to be unique. You can use UpdateBuild to change this value later.

", "CreateBuildInput$Version": "

Version that is associated with this build. Version strings do not need to be unique. You can use UpdateBuild to change this value later.

", @@ -965,53 +1300,71 @@ "CreateFleetInput$Description": "

Human-readable description of a fleet.

", "CreateFleetInput$ServerLaunchPath": "

This parameter is no longer used. Instead, specify a server launch path using the RuntimeConfiguration parameter. (Requests that specify a server launch path and launch parameters instead of a run-time configuration will continue to work.)

", "CreateFleetInput$ServerLaunchParameters": "

This parameter is no longer used. Instead, specify server launch parameters in the RuntimeConfiguration parameter. (Requests that specify a server launch path and launch parameters instead of a run-time configuration will continue to work.)

", + "CreateFleetInput$PeerVpcAwsAccountId": "

Unique identifier for the AWS account with the VPC that you want to peer your Amazon GameLift fleet with. You can find your Account ID in the AWS Management Console under account settings.

", + "CreateFleetInput$PeerVpcId": "

Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console.

", "CreateGameSessionInput$Name": "

Descriptive label that is associated with a game session. Session names do not need to be unique.

", "CreateGameSessionInput$CreatorId": "

Unique identifier for a player or entity creating the game session. This ID is used to enforce a resource protection policy (if one exists) that limits the number of concurrent active game sessions one player can have.

", + "CreateMatchmakingConfigurationInput$Description": "

Meaningful description of the matchmaking configuration.

", "CreatePlayerSessionInput$PlayerId": "

Unique identifier for a player. Player IDs are developer-defined.

", + "CreateVpcPeeringAuthorizationInput$GameLiftAwsAccountId": "

Unique identifier for the AWS account that you use to manage your Amazon GameLift fleet. You can find your Account ID in the AWS Management Console under account settings.

", + "CreateVpcPeeringAuthorizationInput$PeerVpcId": "

Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console.

", + "CreateVpcPeeringConnectionInput$PeerVpcAwsAccountId": "

Unique identifier for the AWS account with the VPC that you want to peer your Amazon GameLift fleet with. You can find your Account ID in the AWS Management Console under account settings.

", + "CreateVpcPeeringConnectionInput$PeerVpcId": "

Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console.

", "DeleteScalingPolicyInput$Name": "

Descriptive label that is associated with a scaling policy. Policy names do not need to be unique.

", - "DescribeFleetAttributesInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.

", + "DeleteVpcPeeringAuthorizationInput$GameLiftAwsAccountId": "

Unique identifier for the AWS account that you use to manage your Amazon GameLift fleet. You can find your Account ID in the AWS Management Console under account settings.

", + "DeleteVpcPeeringAuthorizationInput$PeerVpcId": "

Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console.

", + "DeleteVpcPeeringConnectionInput$VpcPeeringConnectionId": "

Unique identifier for a VPC peering connection. This value is included in the VpcPeeringConnection object, which can be retrieved by calling DescribeVpcPeeringConnections.

", + "DescribeFleetAttributesInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.

", "DescribeFleetAttributesOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", - "DescribeFleetCapacityInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.

", + "DescribeFleetCapacityInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.

", "DescribeFleetCapacityOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", - "DescribeFleetEventsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

", + "DescribeFleetEventsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", "DescribeFleetEventsOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", - "DescribeFleetUtilizationInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.

", + "DescribeFleetUtilizationInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.

", "DescribeFleetUtilizationOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", "DescribeGameSessionDetailsInput$StatusFilter": "

Game session status to filter results on. Possible game session statuses include ACTIVE, TERMINATED, ACTIVATING and TERMINATING (the last two are transitory).

", - "DescribeGameSessionDetailsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

", + "DescribeGameSessionDetailsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", "DescribeGameSessionDetailsOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", - "DescribeGameSessionQueuesInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

", + "DescribeGameSessionQueuesInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", "DescribeGameSessionQueuesOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", "DescribeGameSessionsInput$StatusFilter": "

Game session status to filter results on. Possible game session statuses include ACTIVE, TERMINATED, ACTIVATING, and TERMINATING (the last two are transitory).

", - "DescribeGameSessionsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

", + "DescribeGameSessionsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", "DescribeGameSessionsOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", - "DescribeInstancesInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

", + "DescribeInstancesInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", "DescribeInstancesOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", + "DescribeMatchmakingConfigurationsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", + "DescribeMatchmakingConfigurationsOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", + "DescribeMatchmakingRuleSetsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", + "DescribeMatchmakingRuleSetsOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", "DescribePlayerSessionsInput$PlayerId": "

Unique identifier for a player to retrieve player sessions for.

", - "DescribePlayerSessionsInput$PlayerSessionStatusFilter": "

Player session status to filter results on.

Possible player session statuses include the following:

", - "DescribePlayerSessionsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value. If a player session ID is specified, this parameter is ignored.

", + "DescribePlayerSessionsInput$PlayerSessionStatusFilter": "

Player session status to filter results on.

Possible player session statuses include the following:

", + "DescribePlayerSessionsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value. If a player session ID is specified, this parameter is ignored.

", "DescribePlayerSessionsOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", - "DescribeScalingPoliciesInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

", + "DescribeScalingPoliciesInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", "DescribeScalingPoliciesOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", "DesiredPlayerSession$PlayerId": "

Unique identifier for a player to associate with the player session.

", "Event$EventId": "

Unique identifier for a fleet event.

", "Event$ResourceId": "

Unique identifier for an event resource, such as a fleet ID.

", - "Event$PreSignedLogUrl": "

Location of stored logs with additional detail related to the event, useful for debugging issues. The URL is valid for 15 minutes. Fleet creation logs can also be accessed through the Amazon GameLift console.

", + "Event$PreSignedLogUrl": "

Location of stored logs with additional detail that is related to the event. This is useful for debugging issues. The URL is valid for 15 minutes. You can also access fleet creation logs through the Amazon GameLift console.

", "FleetAttributes$Description": "

Human-readable description of the fleet.

", "FleetAttributes$Name": "

Descriptive label that is associated with a fleet. Fleet names do not need to be unique.

", "FleetAttributes$ServerLaunchPath": "

Path to a game server executable in the fleet's build, specified for fleets created before 2016-08-04 (or AWS SDK v. 0.12.16). Server launch paths for fleets created after this date are specified in the fleet's RuntimeConfiguration.

", "FleetAttributes$ServerLaunchParameters": "

Game server launch parameters specified for fleets created before 2016-08-04 (or AWS SDK v. 0.12.16). Server launch parameters for fleets created after this date are specified in the fleet's RuntimeConfiguration.

", - "GameSession$GameSessionId": "

Unique identifier for the game session. A game session ID has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.

", + "GameSession$GameSessionId": "

Unique identifier for the game session. A game session ARN has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>.

", "GameSession$Name": "

Descriptive label that is associated with a game session. Session names do not need to be unique.

", "GameSession$CreatorId": "

Unique identifier for a player. This ID is used to enforce a resource protection policy (if one exists), that limits the number of game sessions a player can create.

", "GameSessionPlacement$GameSessionName": "

Descriptive label that is associated with a game session. Session names do not need to be unique.

", - "GameSessionPlacement$GameSessionId": "

Unique identifier for the game session. This value is set once the new game session is placed (placement status is Fulfilled).

", - "GameSessionPlacement$GameSessionArn": "

Identifier for the game session created by this placement request. This value is set once the new game session is placed (placement status is Fulfilled). This identifier is unique across all regions. You can use this value as a GameSessionId value as needed.

", - "GameSessionPlacement$GameSessionRegion": "

Name of the region where the game session created by this placement request is running. This value is set once the new game session is placed (placement status is Fulfilled).

", + "GameSessionPlacement$GameSessionId": "

Unique identifier for the game session. This value is set once the new game session is placed (placement status is FULFILLED).

", + "GameSessionPlacement$GameSessionArn": "

Identifier for the game session created by this placement request. This value is set once the new game session is placed (placement status is FULFILLED). This identifier is unique across all regions. You can use this value as a GameSessionId value as needed.

", + "GameSessionPlacement$GameSessionRegion": "

Name of the region where the game session created by this placement request is running. This value is set once the new game session is placed (placement status is FULFILLED).

", "GetGameSessionLogUrlOutput$PreSignedUrl": "

Location of the requested game session logs, available for download.

", - "ListFleetsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

", + "ListFleetsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", "ListFleetsOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", + "MatchedPlayerSession$PlayerId": "

Unique identifier for a player

", + "MatchmakingConfiguration$Description": "

Descriptive label that is associated with matchmaking configuration.

", "PlacedPlayerSession$PlayerId": "

Unique identifier for a player that is associated with this player session.

", + "Player$Team": "

Name of the team that the player is assigned to in a match. Team names are defined in a matchmaking rule set.

", + "PlayerAttributeMap$key": null, "PlayerDataMap$key": null, "PlayerIdList$member": null, "PlayerLatency$PlayerId": "

Unique identifier for a player associated with the latency data.

", @@ -1023,18 +1376,29 @@ "ScalingPolicy$Name": "

Descriptive label that is associated with a scaling policy. Policy names do not need to be unique.

", "SearchGameSessionsInput$FilterExpression": "

String containing the search criteria for the session search. If no filter expression is included, the request returns results for all game sessions in the fleet that are in ACTIVE status.

A filter expression can contain one or multiple conditions. Each condition consists of the following:

To chain multiple conditions in a single expression, use the logical keywords AND, OR, and NOT and parentheses as needed. For example: x AND y AND NOT z, NOT (x OR y).

Session search evaluates conditions from left to right using the following precedence rules:

  1. =, <>, <, >, <=, >=

  2. Parentheses

  3. NOT

  4. AND

  5. OR

For example, this filter expression retrieves game sessions hosting at least ten players that have an open player slot: \"maximumSessions>=10 AND hasAvailablePlayerSessions=true\".

", "SearchGameSessionsInput$SortExpression": "

Instructions on how to sort the search results. If no sort expression is included, the request returns results in random order. A sort expression consists of the following elements:

For example, this sort expression returns the oldest active sessions first: \"SortExpression\": \"creationTimeMillis ASC\". Results with a null value for the sort operand are returned at the end of the list.

", - "SearchGameSessionsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

", + "SearchGameSessionsInput$NextToken": "

Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To start at the beginning of the result set, do not specify a value.

", "SearchGameSessionsOutput$NextToken": "

Token that indicates where to resume retrieving results on the next call to this action. If no token is returned, these results represent the end of the list.

", "ServerProcess$LaunchPath": "

Location of the server executable in a game build. All game builds are installed on instances at the root : for Windows instances C:\\game, and for Linux instances /local/game. A Windows game build with an executable file located at MyGame\\latest\\server.exe must have a launch path of \"C:\\game\\MyGame\\latest\\server.exe\". A Linux game build with an executable file located at MyGame/latest/server.exe must have a launch path of \"/local/game/MyGame/latest/server.exe\".

", "ServerProcess$Parameters": "

Optional list of parameters to pass to the server executable on launch.

", "StartGameSessionPlacementInput$GameSessionName": "

Descriptive label that is associated with a game session. Session names do not need to be unique.

", + "StringDoubleMap$key": null, "StringList$member": null, "UpdateAliasInput$Description": "

Human-readable description of an alias.

", "UpdateBuildInput$Name": "

Descriptive label that is associated with a build. Build names do not need to be unique.

", "UpdateBuildInput$Version": "

Version that is associated with this build. Version strings do not need to be unique.

", "UpdateFleetAttributesInput$Name": "

Descriptive label that is associated with a fleet. Fleet names do not need to be unique.

", "UpdateFleetAttributesInput$Description": "

Human-readable description of a fleet.

", - "UpdateGameSessionInput$Name": "

Descriptive label that is associated with a game session. Session names do not need to be unique.

" + "UpdateGameSessionInput$Name": "

Descriptive label that is associated with a game session. Session names do not need to be unique.

", + "UpdateMatchmakingConfigurationInput$Description": "

Descriptive label that is associated with matchmaking configuration.

", + "VpcPeeringAuthorization$GameLiftAwsAccountId": "

Unique identifier for the AWS account that you use to manage your Amazon GameLift fleet. You can find your Account ID in the AWS Management Console under account settings.

", + "VpcPeeringAuthorization$PeerVpcAwsAccountId": "

", + "VpcPeeringAuthorization$PeerVpcId": "

Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console.

", + "VpcPeeringConnection$IpV4CidrBlock": "

CIDR block of IPv4 addresses assigned to the VPC peering connection for the GameLift VPC. The peered VPC also has an IPv4 CIDR block associated with it; these blocks cannot overlap or the peering connection cannot be created.

", + "VpcPeeringConnection$VpcPeeringConnectionId": "

Unique identifier that is automatically assigned to the connection record. This ID is referenced in VPC peering connection events, and is used when deleting a connection with DeleteVpcPeeringConnection.

", + "VpcPeeringConnection$PeerVpcId": "

Unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same region where your fleet is deployed. To get VPC information, including IDs, use the Virtual Private Cloud service tools, including the VPC Dashboard in the AWS Management Console.

", + "VpcPeeringConnection$GameLiftVpcId": "

Unique identifier for the VPC that contains the Amazon GameLift fleet for this connection. This VPC is managed by Amazon GameLift and does not appear in your AWS account.

", + "VpcPeeringConnectionStatus$Code": "

Code indicating the status of a VPC peering connection.

", + "VpcPeeringConnectionStatus$Message": "

Additional messaging associated with the connection status.

" } }, "NotFoundException": { @@ -1061,7 +1425,19 @@ "PlacedPlayerSessionList": { "base": null, "refs": { - "GameSessionPlacement$PlacedPlayerSessions": "

Collection of information on player sessions created in response to the game session placement request. These player sessions are created only once a new game session is successfully placed (placement status is Fulfilled). This information includes the player ID (as provided in the placement request) and the corresponding player session ID. Retrieve full player sessions by calling DescribePlayerSessions with the player session ID.

" + "GameSessionPlacement$PlacedPlayerSessions": "

Collection of information on player sessions created in response to the game session placement request. These player sessions are created only once a new game session is successfully placed (placement status is FULFILLED). This information includes the player ID (as provided in the placement request) and the corresponding player session ID. Retrieve full player sessions by calling DescribePlayerSessions with the player session ID.

" + } + }, + "Player": { + "base": "

Represents a player in matchmaking. When starting a matchmaking request, a player has a player ID, attributes, and may have latency data. Team information is added after a match has been successfully completed.

", + "refs": { + "PlayerList$member": null + } + }, + "PlayerAttributeMap": { + "base": null, + "refs": { + "Player$PlayerAttributes": "

Collection of name:value pairs containing player information for use in matchmaking. Player attribute names need to match playerAttributes names in the rule set being used. Example: \"PlayerAttributes\": {\"skill\": {\"N\": \"23\"}, \"gameMode\": {\"S\": \"deathmatch\"}}.

" } }, "PlayerData": { @@ -1085,6 +1461,13 @@ "CreatePlayerSessionsInput$PlayerIds": "

List of unique identifiers for the players to be added.

" } }, + "PlayerIdStringModel": { + "base": null, + "refs": { + "MatchmakingPlayerIdList$member": null, + "Player$PlayerId": "

Unique identifier for a player

" + } + }, "PlayerLatency": { "base": "

Regional latency information for a player, used when requesting a new game session with StartGameSessionPlacement. This value indicates the amount of time lag that exists when the player is connected to a fleet in the specified region. The relative difference between a player's latency values for multiple regions are used to determine which fleets are best suited to place a new game session for the player.

", "refs": { @@ -1094,8 +1477,8 @@ "PlayerLatencyList": { "base": null, "refs": { - "GameSessionPlacement$PlayerLatencies": "

Set of values, expressed in milliseconds, indicating the amount of latency that players are experiencing when connected to AWS regions.

", - "StartGameSessionPlacementInput$PlayerLatencies": "

Set of values, expressed in milliseconds, indicating the amount of latency that players are experiencing when connected to AWS regions. This information is used to try to place the new game session where it can offer the best possible gameplay experience for the players.

" + "GameSessionPlacement$PlayerLatencies": "

Set of values, expressed in milliseconds, indicating the amount of latency that a player experiences when connected to AWS regions.

", + "StartGameSessionPlacementInput$PlayerLatencies": "

Set of values, expressed in milliseconds, indicating the amount of latency that a player experiences when connected to AWS regions. This information is used to try to place the new game session where it can offer the best possible gameplay experience for the players.

" } }, "PlayerLatencyPolicy": { @@ -1112,8 +1495,15 @@ "UpdateGameSessionQueueInput$PlayerLatencyPolicies": "

Collection of latency policies to apply when processing game sessions placement requests with player latency information. Multiple policies are evaluated in order of the maximum latency value, starting with the lowest latency values. With just one policy, it is enforced at the start of the game session placement for the duration period. With multiple policies, each policy is enforced consecutively for its duration period. For example, a queue might enforce a 60-second policy followed by a 120-second policy, and then no policy for the remainder of the placement. When updating policies, provide a complete collection of policies.

" } }, + "PlayerList": { + "base": null, + "refs": { + "MatchmakingTicket$Players": "

A set of Player objects, each representing a player to find matches for. Players are identified by a unique player ID and may include latency data for use during matchmaking. If the ticket is in status COMPLETED, the Player objects include the team the players were assigned to in the resulting match.

", + "StartMatchmakingInput$Players": "

Information on each player to be matched. This information must include a player ID, and may contain player attributes and latency data to be used in the matchmaking process. After a successful match, Player objects contain the name of the team the player is assigned to.

" + } + }, "PlayerSession": { - "base": "

Properties describing a player session. A player session represents either a player reservation for a game session or actual player activity in a game session. A player session object (including player data) is automatically passed to a game session when the player connects to the game session and is validated.

Player-session-related operations include:

", + "base": "

Properties describing a player session. Player session objects are created either by creating a player session for a specific game session, or as part of a game session placement. A player session represents either a player reservation for a game session (status RESERVED) or actual player activity in a game session (status ACTIVE). A player session object (including player data) is automatically passed to a game session when the player connects to the game session and is validated.

When a player disconnects, the player session status changes to COMPLETED. Once the session ends, the player session object is retained for 30 days and then removed.

Player-session-related operations include:

", "refs": { "CreatePlayerSessionOutput$PlayerSession": "

Object that describes the newly created player session record.

", "PlayerSessionList$member": null @@ -1130,6 +1520,7 @@ "base": null, "refs": { "DescribePlayerSessionsInput$PlayerSessionId": "

Unique identifier for a player session to retrieve.

", + "MatchedPlayerSession$PlayerSessionId": "

Unique identifier for a player session

", "PlacedPlayerSession$PlayerSessionId": "

Unique identifier for a player session.

", "PlayerSession$PlayerSessionId": "

Unique identifier for a player session.

" } @@ -1144,14 +1535,14 @@ "PlayerSessionStatus": { "base": null, "refs": { - "PlayerSession$Status": "

Current status of the player session.

Possible player session statuses include the following:

" + "PlayerSession$Status": "

Current status of the player session.

Possible player session statuses include the following:

" } }, "PortNumber": { "base": null, "refs": { "GameSession$Port": "

Port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number.

", - "GameSessionPlacement$Port": "

Port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is Fulfilled).

", + "GameSessionPlacement$Port": "

Port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is FULFILLED).

", "IpPermission$FromPort": "

Starting value for a range of allowed port numbers.

", "IpPermission$ToPort": "

Ending value for a range of allowed port numbers. Port numbers are end-inclusive. This value must be higher than FromPort.

", "PlayerSession$Port": "

Port number for the game session. To connect to a Amazon GameLift server process, an app needs both the IP address and port number.

" @@ -1168,8 +1559,11 @@ "DescribeGameSessionQueuesInput$Limit": "

Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

", "DescribeGameSessionsInput$Limit": "

Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

", "DescribeInstancesInput$Limit": "

Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

", + "DescribeMatchmakingConfigurationsInput$Limit": "

Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. This parameter is limited to 10.

", "DescribePlayerSessionsInput$Limit": "

Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. If a player session ID is specified, this parameter is ignored.

", "DescribeScalingPoliciesInput$Limit": "

Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

", + "GameSessionConnectionInfo$Port": "

Port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number.

", + "LatencyMap$value": null, "ListAliasesInput$Limit": "

Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

", "ListBuildsInput$Limit": "

Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

", "ListFleetsInput$Limit": "

Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

", @@ -1188,11 +1582,11 @@ "ProtectionPolicy": { "base": null, "refs": { - "CreateFleetInput$NewGameSessionProtectionPolicy": "

Game session protection policy to apply to all instances in this fleet. If this parameter is not set, instances in this fleet default to no protection. You can change a fleet's protection policy using UpdateFleetAttributes, but this change will only affect sessions created after the policy change. You can also set protection for individual instances using UpdateGameSession.

", - "FleetAttributes$NewGameSessionProtectionPolicy": "

Type of game session protection to set for all new instances started in the fleet.

", - "GameSessionDetail$ProtectionPolicy": "

Current status of protection for the game session.

", - "UpdateFleetAttributesInput$NewGameSessionProtectionPolicy": "

Game session protection policy to apply to all new instances created in this fleet. Instances that already exist are not affected. You can set protection for individual instances using UpdateGameSession.

", - "UpdateGameSessionInput$ProtectionPolicy": "

Game session protection policy to apply to this game session only.

" + "CreateFleetInput$NewGameSessionProtectionPolicy": "

Game session protection policy to apply to all instances in this fleet. If this parameter is not set, instances in this fleet default to no protection. You can change a fleet's protection policy using UpdateFleetAttributes, but this change will only affect sessions created after the policy change. You can also set protection for individual instances using UpdateGameSession.

", + "FleetAttributes$NewGameSessionProtectionPolicy": "

Type of game session protection to set for all new instances started in the fleet.

", + "GameSessionDetail$ProtectionPolicy": "

Current status of protection for the game session.

", + "UpdateFleetAttributesInput$NewGameSessionProtectionPolicy": "

Game session protection policy to apply to all new instances created in this fleet. Instances that already exist are not affected. You can set protection for individual instances using UpdateGameSession.

", + "UpdateGameSessionInput$ProtectionPolicy": "

Game session protection policy to apply to this game session only.

" } }, "PutScalingPolicyInput": { @@ -1205,6 +1599,14 @@ "refs": { } }, + "QueueArnsList": { + "base": null, + "refs": { + "CreateMatchmakingConfigurationInput$GameSessionQueueArns": "

Amazon Resource Name (ARN) that is assigned to a game session queue and uniquely identifies it. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. These queues are used when placing game sessions for matches that are created with this matchmaking configuration. Queues can be located in any region.

", + "MatchmakingConfiguration$GameSessionQueueArns": "

Amazon Resource Name (ARN) that is assigned to a game session queue and uniquely identifies it. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. These queues are used when placing game sessions for matches that are created with this matchmaking configuration. Queues can be located in any region.

", + "UpdateMatchmakingConfigurationInput$GameSessionQueueArns": "

Amazon Resource Name (ARN) that is assigned to a game session queue and uniquely identifies it. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. These queues are used when placing game sessions for matches that are created with this matchmaking configuration. Queues can be located in any region.

" + } + }, "RequestUploadCredentialsInput": { "base": "

Represents the input for a request action.

", "refs": { @@ -1244,12 +1646,26 @@ "RoutingStrategyType": { "base": null, "refs": { - "ListAliasesInput$RoutingStrategyType": "

Type of routing to filter results on. Use this parameter to retrieve only aliases of a certain type. To retrieve all aliases, leave this parameter empty.

Possible routing types include the following:

", - "RoutingStrategy$Type": "

Type of routing strategy.

Possible routing types include the following:

" + "ListAliasesInput$RoutingStrategyType": "

Type of routing to filter results on. Use this parameter to retrieve only aliases of a certain type. To retrieve all aliases, leave this parameter empty.

Possible routing types include the following:

", + "RoutingStrategy$Type": "

Type of routing strategy.

Possible routing types include the following:

" + } + }, + "RuleSetBody": { + "base": null, + "refs": { + "CreateMatchmakingRuleSetInput$RuleSetBody": "

Collection of matchmaking rules, formatted as a JSON string. (Note that comments are not allowed in JSON, but most elements support a description field.)

", + "MatchmakingRuleSet$RuleSetBody": "

Collection of matchmaking rules, formatted as a JSON string. (Note that comments14 are not allowed in JSON, but most elements support a description field.)

", + "ValidateMatchmakingRuleSetInput$RuleSetBody": "

Collection of matchmaking rules to validate, formatted as a JSON string.

" + } + }, + "RuleSetLimit": { + "base": null, + "refs": { + "DescribeMatchmakingRuleSetsInput$Limit": "

Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

" } }, "RuntimeConfiguration": { - "base": "

A collection of server process configurations that describe what processes to run on each instance in a fleet. All fleets must have a runtime configuration. Each instance in the fleet launches the server processes specified in the run-time configuration and launches new ones as existing processes end. Each instance regularly checks for an updated run-time configuration and follows the new instructions.

The run-time configuration enables the instances in a fleet to run multiple processes simultaneously. Potential scenarios are as follows: (1) Run multiple processes of a single game server executable to maximize usage of your hosting resources. (2) Run one or more processes of different build executables, such as your game server executable and a related program, or two or more different versions of a game server. (3) Run multiple processes of a single game server but with different launch parameters, for example to run one process on each instance in debug mode.

A Amazon GameLift instance is limited to 50 processes running simultaneously. A run-time configuration must specify fewer than this limit. To calculate the total number of processes specified in a run-time configuration, add the values of the ConcurrentExecutions parameter for each ServerProcess object in the run-time configuration.

Fleet-related operations include:

", + "base": "

A collection of server process configurations that describe what processes to run on each instance in a fleet. All fleets must have a run-time configuration. Each instance in the fleet launches the server processes specified in the run-time configuration and launches new ones as existing processes end. Each instance regularly checks for an updated run-time configuration and follows the new instructions.

The run-time configuration enables the instances in a fleet to run multiple processes simultaneously. Potential scenarios are as follows: (1) Run multiple processes of a single game server executable to maximize usage of your hosting resources. (2) Run one or more processes of different build executables, such as your game server executable and a related program, or two or more different versions of a game server. (3) Run multiple processes of a single game server but with different launch parameters, for example to run one process on each instance in debug mode.

A Amazon GameLift instance is limited to 50 processes running simultaneously. A run-time configuration must specify fewer than this limit. To calculate the total number of processes specified in a run-time configuration, add the values of the ConcurrentExecutions parameter for each ServerProcess object in the run-time configuration.

Fleet-related operations include:

", "refs": { "CreateFleetInput$RuntimeConfiguration": "

Instructions for launching server processes on each instance in the fleet. The run-time configuration for a fleet has a collection of server process configurations, one for each type of server process to run on an instance. A server process configuration specifies the location of the server executable, launch parameters, and the number of concurrent processes with that configuration to maintain on each instance. A CreateFleet request must include a run-time configuration with at least one server process configuration; otherwise the request fails with an invalid request exception. (This parameter replaces the parameters ServerLaunchPath and ServerLaunchParameters; requests that contain values for these parameters instead of a run-time configuration will continue to work.)

", "DescribeRuntimeConfigurationOutput$RuntimeConfiguration": "

Instructions describing how server processes should be launched and maintained on each instance in the fleet.

", @@ -1268,8 +1684,8 @@ "ScalingAdjustmentType": { "base": null, "refs": { - "PutScalingPolicyInput$ScalingAdjustmentType": "

Type of adjustment to make to a fleet's instance count (see FleetCapacity):

", - "ScalingPolicy$ScalingAdjustmentType": "

Type of adjustment to make to a fleet's instance count (see FleetCapacity):

" + "PutScalingPolicyInput$ScalingAdjustmentType": "

Type of adjustment to make to a fleet's instance count (see FleetCapacity):

", + "ScalingPolicy$ScalingAdjustmentType": "

Type of adjustment to make to a fleet's instance count (see FleetCapacity):

" } }, "ScalingPolicy": { @@ -1287,8 +1703,8 @@ "ScalingStatusType": { "base": null, "refs": { - "DescribeScalingPoliciesInput$StatusFilter": "

Scaling policy status to filter results on. A scaling policy is only in force when in an ACTIVE status.

", - "ScalingPolicy$Status": "

Current status of the scaling policy. The scaling policy is only in force when in an ACTIVE status.

" + "DescribeScalingPoliciesInput$StatusFilter": "

Scaling policy status to filter results on. A scaling policy is only in force when in an ACTIVE status.

", + "ScalingPolicy$Status": "

Current status of the scaling policy. The scaling policy is only in force when in an ACTIVE status.

" } }, "SearchGameSessionsInput": { @@ -1313,6 +1729,14 @@ "RuntimeConfiguration$ServerProcesses": "

Collection of server process configurations that describe which server processes to run on each instance in a fleet.

" } }, + "SnsArnStringModel": { + "base": null, + "refs": { + "CreateMatchmakingConfigurationInput$NotificationTarget": "

SNS topic ARN that is set up to receive matchmaking notifications.

", + "MatchmakingConfiguration$NotificationTarget": "

SNS topic ARN that is set up to receive matchmaking notifications.

", + "UpdateMatchmakingConfigurationInput$NotificationTarget": "

SNS topic ARN that is set up to receive matchmaking notifications. See Setting up Notifications for Matchmaking for more information.

" + } + }, "StartGameSessionPlacementInput": { "base": "

Represents the input for a request action.

", "refs": { @@ -1323,6 +1747,16 @@ "refs": { } }, + "StartMatchmakingInput": { + "base": "

Represents the input for a request action.

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

Represents the returned data in response to a request action.

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

Represents the input for a request action.

", "refs": { @@ -1333,13 +1767,38 @@ "refs": { } }, + "StopMatchmakingInput": { + "base": "

Represents the input for a request action.

", + "refs": { + } + }, + "StopMatchmakingOutput": { + "base": null, + "refs": { + } + }, + "StringDoubleMap": { + "base": null, + "refs": { + "AttributeValue$SDM": "

For a map of up to 10 type:value pairs. Maximum length for each string value is 100 characters.

" + } + }, "StringList": { "base": null, "refs": { + "AttributeValue$SL": "

For a list of up to 10 strings. Maximum length for each string is 100 characters. Duplicate values are not recognized; all occurrences of the repeated value after the first of a repeated value are ignored.

", "CreateFleetInput$LogPaths": "

This parameter is no longer used. Instead, to specify where Amazon GameLift should store log files once a server process shuts down, use the Amazon GameLift server API ProcessReady() and specify one or more directory paths in logParameters. See more information in the Server API Reference.

", "FleetAttributes$LogPaths": "

Location of default log files. When a server process is shut down, Amazon GameLift captures and stores any log files in this location. These logs are in addition to game session logs; see more on game session logs in the Amazon GameLift Developer Guide. If no default log path for a fleet is specified, Amazon GameLift automatically uploads logs that are stored on each instance at C:\\game\\logs (for Windows) or /local/game/logs (for Linux). Use the Amazon GameLift console to access stored logs.

" } }, + "StringModel": { + "base": null, + "refs": { + "GameSessionConnectionInfo$IpAddress": "

IP address of the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number.

", + "MatchmakingTicket$StatusReason": "

Code to explain the current status. For example, a status reason may indicate when a ticket has returned to SEARCHING status after a proposed match fails to receive player acceptances.

", + "MatchmakingTicket$StatusMessage": "

Additional information about the current status.

" + } + }, "TerminalRoutingStrategyException": { "base": "

The service is unable to resolve the routing for a particular alias because it has a terminal RoutingStrategy associated with it. The message returned in this exception is the message defined in the routing strategy itself. Such requests should only be retried if the routing strategy for the specified alias is modified.

", "refs": { @@ -1361,8 +1820,14 @@ "GameSessionPlacement$StartTime": "

Time stamp indicating when this request was placed in the queue. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

", "GameSessionPlacement$EndTime": "

Time stamp indicating when this request was completed, canceled, or timed out.

", "Instance$CreationTime": "

Time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

", + "MatchmakingConfiguration$CreationTime": "

Time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

", + "MatchmakingRuleSet$CreationTime": "

Time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

", + "MatchmakingTicket$StartTime": "

Time stamp indicating when this matchmaking request was received. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

", + "MatchmakingTicket$EndTime": "

Time stamp indicating when the matchmaking request stopped being processed due to successful completion, timeout, or cancellation. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

", "PlayerSession$CreationTime": "

Time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

", - "PlayerSession$TerminationTime": "

Time stamp indicating when this data object was terminated. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" + "PlayerSession$TerminationTime": "

Time stamp indicating when this data object was terminated. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

", + "VpcPeeringAuthorization$CreationTime": "

Time stamp indicating when this authorization was issued. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

", + "VpcPeeringAuthorization$ExpirationTime": "

Time stamp indicating when this authorization expires (24 hours after issuance). Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" } }, "UnauthorizedException": { @@ -1370,6 +1835,11 @@ "refs": { } }, + "UnsupportedRegionException": { + "base": "

The requested operation is not supported in the region specified.

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

Represents the input for a request action.

", "refs": { @@ -1440,6 +1910,16 @@ "refs": { } }, + "UpdateMatchmakingConfigurationInput": { + "base": "

Represents the input for a request action.

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

Represents the returned data in response to a request action.

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

Represents the input for a request action.

", "refs": { @@ -1450,11 +1930,53 @@ "refs": { } }, + "ValidateMatchmakingRuleSetInput": { + "base": "

Represents the input for a request action.

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

Represents the returned data in response to a request action.

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

Represents an authorization for a VPC peering connection between the VPC for an Amazon GameLift fleet and another VPC on an account you have access to. This authorization must exist and be valid for the peering connection to be established. Authorizations are valid for 24 hours after they are issued.

VPC peering connection operations include:

", + "refs": { + "CreateVpcPeeringAuthorizationOutput$VpcPeeringAuthorization": "

Details on the requested VPC peering authorization, including expiration.

", + "VpcPeeringAuthorizationList$member": null + } + }, + "VpcPeeringAuthorizationList": { + "base": null, + "refs": { + "DescribeVpcPeeringAuthorizationsOutput$VpcPeeringAuthorizations": "

Collection of objects that describe all valid VPC peering operations for the current AWS account.

" + } + }, + "VpcPeeringConnection": { + "base": "

Represents a peering connection between a VPC on one of your AWS accounts and the VPC for your Amazon GameLift fleets. This record may be for an active peering connection or a pending connection that has not yet been established.

VPC peering connection operations include:

", + "refs": { + "VpcPeeringConnectionList$member": null + } + }, + "VpcPeeringConnectionList": { + "base": null, + "refs": { + "DescribeVpcPeeringConnectionsOutput$VpcPeeringConnections": "

Collection of VPC peering connection records that match the request.

" + } + }, + "VpcPeeringConnectionStatus": { + "base": "

Represents status information for a VPC peering connection. Status is associated with a VpcPeeringConnection object. Status codes and messages are provided from EC2 (). Connection status information is also communicated as a fleet Event.

", + "refs": { + "VpcPeeringConnection$Status": "

Object that contains status information about the connection. Status indicates if a connection is pending, successful, or failed.

" + } + }, "WholeNumber": { "base": null, "refs": { "CreateGameSessionInput$MaximumPlayerSessionCount": "

Maximum number of players that can be connected simultaneously to the game session.

", - "CreateGameSessionQueueInput$TimeoutInSeconds": "

Maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status.

", + "CreateGameSessionQueueInput$TimeoutInSeconds": "

Maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status.

", + "CreateMatchmakingConfigurationInput$AdditionalPlayerCount": "

Number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match.

", "EC2InstanceCounts$DESIRED": "

Ideal number of active instances in the fleet.

", "EC2InstanceCounts$MINIMUM": "

Minimum value allowed for the fleet's instance count.

", "EC2InstanceCounts$MAXIMUM": "

Maximum value allowed for the fleet's instance count.

", @@ -1471,7 +1993,9 @@ "GameSession$CurrentPlayerSessionCount": "

Number of players currently in the game session.

", "GameSession$MaximumPlayerSessionCount": "

Maximum number of players that can be connected simultaneously to the game session.

", "GameSessionPlacement$MaximumPlayerSessionCount": "

Maximum number of players that can be connected simultaneously to the game session.

", - "GameSessionQueue$TimeoutInSeconds": "

Maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status.

", + "GameSessionQueue$TimeoutInSeconds": "

Maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status.

", + "MatchmakingConfiguration$AdditionalPlayerCount": "

Number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match.

", + "MatchmakingTicket$EstimatedWaitTime": "

Average amount of time (in seconds) that players are currently waiting for a match. If there is not enough recent data, this property may be empty.

", "PlayerLatencyPolicy$MaximumIndividualPlayerLatencyMilliseconds": "

The maximum latency value that is allowed for any player, in milliseconds. All policies must have a value set for this property.

", "PlayerLatencyPolicy$PolicyDurationSeconds": "

The length of time, in seconds, that the policy is enforced while placing a new game session. A null value for this property means that the policy is enforced until the queue times out.

", "ResourceCreationLimitPolicy$NewGameSessionsPerCreator": "

Maximum number of game sessions that an individual can create during the policy period.

", @@ -1481,7 +2005,8 @@ "UpdateFleetCapacityInput$MinSize": "

Minimum value allowed for the fleet's instance count. Default if not set is 0.

", "UpdateFleetCapacityInput$MaxSize": "

Maximum value allowed for the fleet's instance count. Default if not set is 1.

", "UpdateGameSessionInput$MaximumPlayerSessionCount": "

Maximum number of players that can be connected simultaneously to the game session.

", - "UpdateGameSessionQueueInput$TimeoutInSeconds": "

Maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status.

" + "UpdateGameSessionQueueInput$TimeoutInSeconds": "

Maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status.

", + "UpdateMatchmakingConfigurationInput$AdditionalPlayerCount": "

Number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match.

" } } } diff --git a/models/apis/glacier/2012-06-01/api-2.json b/models/apis/glacier/2012-06-01/api-2.json index 66b4a4d5b8a..98117acc892 100644 --- a/models/apis/glacier/2012-06-01/api-2.json +++ b/models/apis/glacier/2012-06-01/api-2.json @@ -561,11 +561,16 @@ } } }, + "AccessControlPolicyList":{ + "type":"list", + "member":{"shape":"Grant"} + }, "ActionCode":{ "type":"string", "enum":[ "ArchiveRetrieval", - "InventoryRetrieval" + "InventoryRetrieval", + "Select" ] }, "AddTagsToVaultInput":{ @@ -608,6 +613,39 @@ } } }, + "CSVInput":{ + "type":"structure", + "members":{ + "FileHeaderInfo":{"shape":"FileHeaderInfo"}, + "Comments":{"shape":"string"}, + "QuoteEscapeCharacter":{"shape":"string"}, + "RecordDelimiter":{"shape":"string"}, + "FieldDelimiter":{"shape":"string"}, + "QuoteCharacter":{"shape":"string"} + } + }, + "CSVOutput":{ + "type":"structure", + "members":{ + "QuoteFields":{"shape":"QuoteFields"}, + "QuoteEscapeCharacter":{"shape":"string"}, + "RecordDelimiter":{"shape":"string"}, + "FieldDelimiter":{"shape":"string"}, + "QuoteCharacter":{"shape":"string"} + } + }, + "CannedACL":{ + "type":"string", + "enum":[ + "private", + "public-read", + "public-read-write", + "aws-exec-read", + "authenticated-read", + "bucket-owner-read", + "bucket-owner-full-control" + ] + }, "CompleteMultipartUploadInput":{ "type":"structure", "required":[ @@ -852,6 +890,33 @@ "SizeInBytes":{"shape":"long"} } }, + "Encryption":{ + "type":"structure", + "members":{ + "EncryptionType":{"shape":"EncryptionType"}, + "KMSKeyId":{"shape":"string"}, + "KMSContext":{"shape":"string"} + } + }, + "EncryptionType":{ + "type":"string", + "enum":[ + "aws:kms", + "AES256" + ] + }, + "ExpressionType":{ + "type":"string", + "enum":["SQL"] + }, + "FileHeaderInfo":{ + "type":"string", + "enum":[ + "USE", + "IGNORE", + "NONE" + ] + }, "GetDataRetrievalPolicyInput":{ "type":"structure", "required":["accountId"], @@ -1035,7 +1100,28 @@ "ArchiveSHA256TreeHash":{"shape":"string"}, "RetrievalByteRange":{"shape":"string"}, "Tier":{"shape":"string"}, - "InventoryRetrievalParameters":{"shape":"InventoryRetrievalJobDescription"} + "InventoryRetrievalParameters":{"shape":"InventoryRetrievalJobDescription"}, + "JobOutputPath":{"shape":"string"}, + "SelectParameters":{"shape":"SelectParameters"}, + "OutputLocation":{"shape":"OutputLocation"} + } + }, + "Grant":{ + "type":"structure", + "members":{ + "Grantee":{"shape":"Grantee"}, + "Permission":{"shape":"Permission"} + } + }, + "Grantee":{ + "type":"structure", + "required":["Type"], + "members":{ + "Type":{"shape":"Type"}, + "DisplayName":{"shape":"string"}, + "URI":{"shape":"string"}, + "ID":{"shape":"string"}, + "EmailAddress":{"shape":"string"} } }, "InitiateJobInput":{ @@ -1071,6 +1157,11 @@ "shape":"string", "location":"header", "locationName":"x-amz-job-id" + }, + "jobOutputPath":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-job-output-path" } } }, @@ -1149,6 +1240,12 @@ } } }, + "InputSerialization":{ + "type":"structure", + "members":{ + "csv":{"shape":"CSVInput"} + } + }, "InsufficientCapacityException":{ "type":"structure", "members":{ @@ -1202,7 +1299,9 @@ "SNSTopic":{"shape":"string"}, "RetrievalByteRange":{"shape":"string"}, "Tier":{"shape":"string"}, - "InventoryRetrievalParameters":{"shape":"InventoryRetrievalJobInput"} + "InventoryRetrievalParameters":{"shape":"InventoryRetrievalJobInput"}, + "SelectParameters":{"shape":"SelectParameters"}, + "OutputLocation":{"shape":"OutputLocation"} } }, "LimitExceededException":{ @@ -1429,6 +1528,18 @@ "member":{"shape":"string"} }, "NullableLong":{"type":"long"}, + "OutputLocation":{ + "type":"structure", + "members":{ + "S3":{"shape":"S3Location"} + } + }, + "OutputSerialization":{ + "type":"structure", + "members":{ + "csv":{"shape":"CSVOutput"} + } + }, "PartList":{ "type":"list", "member":{"shape":"PartListElement"} @@ -1440,6 +1551,16 @@ "SHA256TreeHash":{"shape":"string"} } }, + "Permission":{ + "type":"string", + "enum":[ + "FULL_CONTROL", + "WRITE", + "WRITE_ACP", + "READ", + "READ_ACP" + ] + }, "PolicyEnforcedException":{ "type":"structure", "members":{ @@ -1483,6 +1604,13 @@ } } }, + "QuoteFields":{ + "type":"string", + "enum":[ + "ALWAYS", + "ASNEEDED" + ] + }, "RemoveTagsFromVaultInput":{ "type":"structure", "required":[ @@ -1523,6 +1651,28 @@ "error":{"httpStatusCode":404}, "exception":true }, + "S3Location":{ + "type":"structure", + "members":{ + "BucketName":{"shape":"string"}, + "Prefix":{"shape":"string"}, + "Encryption":{"shape":"Encryption"}, + "CannedACL":{"shape":"CannedACL"}, + "AccessControlList":{"shape":"AccessControlPolicyList"}, + "Tagging":{"shape":"hashmap"}, + "UserMetadata":{"shape":"hashmap"}, + "StorageClass":{"shape":"StorageClass"} + } + }, + "SelectParameters":{ + "type":"structure", + "members":{ + "InputSerialization":{"shape":"InputSerialization"}, + "ExpressionType":{"shape":"ExpressionType"}, + "Expression":{"shape":"string"}, + "OutputSerialization":{"shape":"OutputSerialization"} + } + }, "ServiceUnavailableException":{ "type":"structure", "members":{ @@ -1596,6 +1746,14 @@ "Failed" ] }, + "StorageClass":{ + "type":"string", + "enum":[ + "STANDARD", + "REDUCED_REDUNDANCY", + "STANDARD_IA" + ] + }, "Stream":{ "type":"blob", "streaming":true @@ -1611,6 +1769,14 @@ "value":{"shape":"TagValue"} }, "TagValue":{"type":"string"}, + "Type":{ + "type":"string", + "enum":[ + "AmazonCustomerByEmail", + "CanonicalUser", + "Group" + ] + }, "UploadArchiveInput":{ "type":"structure", "required":[ @@ -1727,6 +1893,11 @@ } }, "boolean":{"type":"boolean"}, + "hashmap":{ + "type":"map", + "key":{"shape":"string"}, + "value":{"shape":"string"} + }, "httpstatus":{"type":"integer"}, "long":{"type":"long"}, "string":{"type":"string"} diff --git a/models/apis/glacier/2012-06-01/docs-2.json b/models/apis/glacier/2012-06-01/docs-2.json index 07eb8305bac..b86618c1b8b 100644 --- a/models/apis/glacier/2012-06-01/docs-2.json +++ b/models/apis/glacier/2012-06-01/docs-2.json @@ -12,23 +12,23 @@ "DeleteVault": "

This operation deletes a vault. Amazon Glacier will delete a vault only if there are no archives in the vault as of the last inventory and there have been no writes to the vault since the last inventory. If either of these conditions is not satisfied, the vault deletion fails (that is, the vault is not removed) and Amazon Glacier returns an error. You can use DescribeVault to return the number of archives in a vault, and you can use Initiate a Job (POST jobs) to initiate a new inventory retrieval for a vault. The inventory contains the archive IDs you use to delete archives using Delete Archive (DELETE archive).

This operation is idempotent.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, see Deleting a Vault in Amazon Glacier and Delete Vault in the Amazon Glacier Developer Guide.

", "DeleteVaultAccessPolicy": "

This operation deletes the access policy associated with the specified vault. The operation is eventually consistent; that is, it might take some time for Amazon Glacier to completely remove the access policy, and you might still see the effect of the policy for a short time after you send the delete request.

This operation is idempotent. You can invoke delete multiple times, even if there is no policy associated with the vault. For more information about vault access policies, see Amazon Glacier Access Control with Vault Access Policies.

", "DeleteVaultNotifications": "

This operation deletes the notification configuration set for a vault. The operation is eventually consistent; that is, it might take some time for Amazon Glacier to completely disable the notifications and you might still receive some notifications for a short time after you send the delete request.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, see Configuring Vault Notifications in Amazon Glacier and Delete Vault Notification Configuration in the Amazon Glacier Developer Guide.

", - "DescribeJob": "

This operation returns information about a job you previously initiated, including the job initiation date, the user who initiated the job, the job status code/message and the Amazon SNS topic to notify after Amazon Glacier completes the job. For more information about initiating a job, see InitiateJob.

This operation enables you to check the status of your job. However, it is strongly recommended that you set up an Amazon SNS topic and specify it in your initiate job request so that Amazon Glacier can notify the topic after it completes the job.

A job ID will not expire for at least 24 hours after Amazon Glacier completes the job.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For information about the underlying REST API, see Working with Archives in Amazon Glacier in the Amazon Glacier Developer Guide.

", + "DescribeJob": "

This operation returns information about a job you previously initiated, including the job initiation date, the user who initiated the job, the job status code/message and the Amazon SNS topic to notify after Amazon Glacier completes the job. For more information about initiating a job, see InitiateJob.

This operation enables you to check the status of your job. However, it is strongly recommended that you set up an Amazon SNS topic and specify it in your initiate job request so that Amazon Glacier can notify the topic after it completes the job.

A job ID will not expire for at least 24 hours after Amazon Glacier completes the job.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For more information about using this operation, see the documentation for the underlying REST API Describe Job in the Amazon Glacier Developer Guide.

", "DescribeVault": "

This operation returns information about a vault, including the vault's Amazon Resource Name (ARN), the date the vault was created, the number of archives it contains, and the total size of all the archives in the vault. The number of archives and their total size are as of the last inventory generation. This means that if you add or remove an archive from a vault, and then immediately use Describe Vault, the change in contents will not be immediately reflected. If you want to retrieve the latest inventory of the vault, use InitiateJob. Amazon Glacier generates vault inventories approximately daily. For more information, see Downloading a Vault Inventory in Amazon Glacier.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, see Retrieving Vault Metadata in Amazon Glacier and Describe Vault in the Amazon Glacier Developer Guide.

", "GetDataRetrievalPolicy": "

This operation returns the current data retrieval policy for the account and region specified in the GET request. For more information about data retrieval policies, see Amazon Glacier Data Retrieval Policies.

", "GetJobOutput": "

This operation downloads the output of the job you initiated using InitiateJob. Depending on the job type you specified when you initiated the job, the output will be either the content of an archive or a vault inventory.

You can download all the job output or download a portion of the output by specifying a byte range. In the case of an archive retrieval job, depending on the byte range you specify, Amazon Glacier returns the checksum for the portion of the data. You can compute the checksum on the client and verify that the values match to ensure the portion you downloaded is the correct data.

A job ID will not expire for at least 24 hours after Amazon Glacier completes the job. That a byte range. For both archive and inventory retrieval jobs, you should verify the downloaded size against the size returned in the headers from the Get Job Output response.

For archive retrieval jobs, you should also verify that the size is what you expected. If you download a portion of the output, the expected size is based on the range of bytes you specified. For example, if you specify a range of bytes=0-1048575, you should verify your download size is 1,048,576 bytes. If you download an entire archive, the expected size is the size of the archive when you uploaded it to Amazon Glacier The expected size is also returned in the headers from the Get Job Output response.

In the case of an archive retrieval job, depending on the byte range you specify, Amazon Glacier returns the checksum for the portion of the data. To ensure the portion you downloaded is the correct data, compute the checksum on the client, verify that the values match, and verify that the size is what you expected.

A job ID does not expire for at least 24 hours after Amazon Glacier completes the job. That is, you can download the job output within the 24 hours period after Amazon Glacier completes the job.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and the underlying REST API, see Downloading a Vault Inventory, Downloading an Archive, and Get Job Output

", "GetVaultAccessPolicy": "

This operation retrieves the access-policy subresource set on the vault; for more information on setting this subresource, see Set Vault Access Policy (PUT access-policy). If there is no access policy set on the vault, the operation returns a 404 Not found error. For more information about vault access policies, see Amazon Glacier Access Control with Vault Access Policies.

", "GetVaultLock": "

This operation retrieves the following attributes from the lock-policy subresource set on the specified vault:

A vault lock is put into the InProgress state by calling InitiateVaultLock. A vault lock is put into the Locked state by calling CompleteVaultLock. You can abort the vault locking process by calling AbortVaultLock. For more information about the vault locking process, Amazon Glacier Vault Lock.

If there is no vault lock policy set on the vault, the operation returns a 404 Not found error. For more information about vault lock policies, Amazon Glacier Access Control with Vault Lock Policies.

", "GetVaultNotifications": "

This operation retrieves the notification-configuration subresource of the specified vault.

For information about setting a notification configuration on a vault, see SetVaultNotifications. If a notification configuration for a vault is not set, the operation returns a 404 Not Found error. For more information about vault notifications, see Configuring Vault Notifications in Amazon Glacier.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, see Configuring Vault Notifications in Amazon Glacier and Get Vault Notification Configuration in the Amazon Glacier Developer Guide.

", - "InitiateJob": "

This operation initiates a job of the specified type. In this release, you can initiate a job to retrieve either an archive or a vault inventory (a list of archives in a vault).

Retrieving data from Amazon Glacier is a two-step process:

  1. Initiate a retrieval job.

    A data retrieval policy can cause your initiate retrieval job request to fail with a PolicyEnforcedException exception. For more information about data retrieval policies, see Amazon Glacier Data Retrieval Policies. For more information about the PolicyEnforcedException exception, see Error Responses.

  2. After the job completes, download the bytes.

The retrieval request is executed asynchronously. When you initiate a retrieval job, Amazon Glacier creates a job and returns a job ID in the response. When Amazon Glacier completes the job, you can get the job output (archive or inventory data). For information about getting job output, see GetJobOutput operation.

The job must complete before you can get its output. To determine when a job is complete, you have the following options:

The information you get via notification is same that you get by calling DescribeJob.

If for a specific event, you add both the notification configuration on the vault and also specify an SNS topic in your initiate job request, Amazon Glacier sends both notifications. For more information, see SetVaultNotifications.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

About the Vault Inventory

Amazon Glacier prepares an inventory for each vault periodically, every 24 hours. When you initiate a job for a vault inventory, Amazon Glacier returns the last inventory for the vault. The inventory data you get might be up to a day or two days old. Also, the initiate inventory job might take some time to complete before you can download the vault inventory. So you do not want to retrieve a vault inventory for each vault operation. However, in some scenarios, you might find the vault inventory useful. For example, when you upload an archive, you can provide an archive description but not an archive name. Amazon Glacier provides you a unique archive ID, an opaque string of characters. So, you might maintain your own database that maps archive names to their corresponding Amazon Glacier assigned archive IDs. You might find the vault inventory useful in the event you need to reconcile information in your database with the actual vault inventory.

Range Inventory Retrieval

You can limit the number of inventory items retrieved by filtering on the archive creation date or by setting a limit.

Filtering by Archive Creation Date

You can retrieve inventory items for archives created between StartDate and EndDate by specifying values for these parameters in the InitiateJob request. Archives created on or after the StartDate and before the EndDate will be returned. If you only provide the StartDate without the EndDate, you will retrieve the inventory for all archives created on or after the StartDate. If you only provide the EndDate without the StartDate, you will get back the inventory for all archives created before the EndDate.

Limiting Inventory Items per Retrieval

You can limit the number of inventory items returned by setting the Limit parameter in the InitiateJob request. The inventory job output will contain inventory items up to the specified Limit. If there are more inventory items available, the result is paginated. After a job is complete you can use the DescribeJob operation to get a marker that you use in a subsequent InitiateJob request. The marker will indicate the starting point to retrieve the next set of inventory items. You can page through your entire inventory by repeatedly making InitiateJob requests with the marker from the previous DescribeJob output, until you get a marker from DescribeJob that returns null, indicating that there are no more inventory items available.

You can use the Limit parameter together with the date range parameters.

About Ranged Archive Retrieval

You can initiate an archive retrieval for the whole archive or a range of the archive. In the case of ranged archive retrieval, you specify a byte range to return or the whole archive. The range specified must be megabyte (MB) aligned, that is the range start value must be divisible by 1 MB and range end value plus 1 must be divisible by 1 MB or equal the end of the archive. If the ranged archive retrieval is not megabyte aligned, this operation returns a 400 response. Furthermore, to ensure you get checksum values for data you download using Get Job Output API, the range must be tree hash aligned.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and the underlying REST API, see Initiate a Job and Downloading a Vault Inventory

Expedited and Bulk Archive Retrievals

When retrieving an archive, you can specify one of the following options in the Tier field of the request body:

For more information about expedited and bulk retrievals, see Retrieving Amazon Glacier Archives.

", + "InitiateJob": "

This operation initiates a job of the specified type, which can be a select, an archival retrieval, or a vault retrieval. For more information about using this operation, see the documentation for the underlying REST API Initiate a Job.

", "InitiateMultipartUpload": "

This operation initiates a multipart upload. Amazon Glacier creates a multipart upload resource and returns its ID in the response. The multipart upload ID is used in subsequent requests to upload parts of an archive (see UploadMultipartPart).

When you initiate a multipart upload, you specify the part size in number of bytes. The part size must be a megabyte (1024 KB) multiplied by a power of 2-for example, 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB.

Every part you upload to this resource (see UploadMultipartPart), except the last one, must have the same size. The last one can be the same size or smaller. For example, suppose you want to upload a 16.2 MB file. If you initiate the multipart upload with a part size of 4 MB, you will upload four parts of 4 MB each and one part of 0.2 MB.

You don't need to know the size of the archive when you start a multipart upload because Amazon Glacier does not require you to specify the overall archive size.

After you complete the multipart upload, Amazon Glacier removes the multipart upload resource referenced by the ID. Amazon Glacier also removes the multipart upload resource if you cancel the multipart upload or it may be removed if there is no activity for a period of 24 hours.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, see Uploading Large Archives in Parts (Multipart Upload) and Initiate Multipart Upload in the Amazon Glacier Developer Guide.

", "InitiateVaultLock": "

This operation initiates the vault locking process by doing the following:

You can set one vault lock policy for each vault and this policy can be up to 20 KB in size. For more information about vault lock policies, see Amazon Glacier Access Control with Vault Lock Policies.

You must complete the vault locking process within 24 hours after the vault lock enters the InProgress state. After the 24 hour window ends, the lock ID expires, the vault automatically exits the InProgress state, and the vault lock policy is removed from the vault. You call CompleteVaultLock to complete the vault locking process by setting the state of the vault lock to Locked.

After a vault lock is in the Locked state, you cannot initiate a new vault lock for the vault.

You can abort the vault locking process by calling AbortVaultLock. You can get the state of the vault lock by calling GetVaultLock. For more information about the vault locking process, Amazon Glacier Vault Lock.

If this operation is called when the vault lock is in the InProgress state, the operation returns an AccessDeniedException error. When the vault lock is in the InProgress state you must call AbortVaultLock before you can initiate a new vault lock policy.

", - "ListJobs": "

This operation lists jobs for a vault, including jobs that are in-progress and jobs that have recently finished.

Amazon Glacier retains recently completed jobs for a period before deleting them; however, it eventually removes completed jobs. The output of completed jobs can be retrieved. Retaining completed jobs for a period of time after they have completed enables you to get a job output in the event you miss the job completion notification or your first attempt to download it fails. For example, suppose you start an archive retrieval job to download an archive. After the job completes, you start to download the archive but encounter a network error. In this scenario, you can retry and download the archive while the job exists.

To retrieve an archive or retrieve a vault inventory from Amazon Glacier, you first initiate a job, and after the job completes, you download the data. For an archive retrieval, the output is the archive data. For an inventory retrieval, it is the inventory list. The List Job operation returns a list of these jobs sorted by job initiation time.

The List Jobs operation supports pagination. You should always check the response Marker field. If there are no more jobs to list, the Marker field is set to null. If there are more jobs to list, the Marker field is set to a non-null value, which you can use to continue the pagination of the list. To return a list of jobs that begins at a specific job, set the marker request parameter to the Marker value for that job that you obtained from a previous List Jobs request.

You can set a maximum limit for the number of jobs returned in the response by specifying the limit parameter in the request. The default limit is 1000. The number of jobs returned might be fewer than the limit, but the number of returned jobs never exceeds the limit.

Additionally, you can filter the jobs list returned by specifying the optional statuscode parameter or completed parameter, or both. Using the statuscode parameter, you can specify to return only jobs that match either the InProgress, Succeeded, or Failed status. Using the completed parameter, you can specify to return only jobs that were completed (true) or jobs that were not completed (false).

For the underlying REST API, see List Jobs.

", + "ListJobs": "

This operation lists jobs for a vault, including jobs that are in-progress and jobs that have recently finished. The List Job operation returns a list of these jobs sorted by job initiation time.

Amazon Glacier retains recently completed jobs for a period before deleting them; however, it eventually removes completed jobs. The output of completed jobs can be retrieved. Retaining completed jobs for a period of time after they have completed enables you to get a job output in the event you miss the job completion notification or your first attempt to download it fails. For example, suppose you start an archive retrieval job to download an archive. After the job completes, you start to download the archive but encounter a network error. In this scenario, you can retry and download the archive while the job exists.

The List Jobs operation supports pagination. You should always check the response Marker field. If there are no more jobs to list, the Marker field is set to null. If there are more jobs to list, the Marker field is set to a non-null value, which you can use to continue the pagination of the list. To return a list of jobs that begins at a specific job, set the marker request parameter to the Marker value for that job that you obtained from a previous List Jobs request.

You can set a maximum limit for the number of jobs returned in the response by specifying the limit parameter in the request. The default limit is 1000. The number of jobs returned might be fewer than the limit, but the number of returned jobs never exceeds the limit.

Additionally, you can filter the jobs list returned by specifying the optional statuscode parameter or completed parameter, or both. Using the statuscode parameter, you can specify to return only jobs that match either the InProgress, Succeeded, or Failed status. Using the completed parameter, you can specify to return only jobs that were completed (true) or jobs that were not completed (false).

For more information about using this operation, see the documentation for the underlying REST API List Jobs.

", "ListMultipartUploads": "

This operation lists in-progress multipart uploads for the specified vault. An in-progress multipart upload is a multipart upload that has been initiated by an InitiateMultipartUpload request, but has not yet been completed or aborted. The list returned in the List Multipart Upload response has no guaranteed order.

The List Multipart Uploads operation supports pagination. By default, this operation returns up to 1,000 multipart uploads in the response. You should always check the response for a marker at which to continue the list; if there are no more items the marker is null. To return a list of multipart uploads that begins at a specific upload, set the marker request parameter to the value you obtained from a previous List Multipart Upload request. You can also limit the number of uploads returned in the response by specifying the limit parameter in the request.

Note the difference between this operation and listing parts (ListParts). The List Multipart Uploads operation lists all multipart uploads for a vault and does not require a multipart upload ID. The List Parts operation requires a multipart upload ID since parts are associated with a single upload.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and the underlying REST API, see Working with Archives in Amazon Glacier and List Multipart Uploads in the Amazon Glacier Developer Guide.

", "ListParts": "

This operation lists the parts of an archive that have been uploaded in a specific multipart upload. You can make this request at any time during an in-progress multipart upload before you complete the upload (see CompleteMultipartUpload. List Parts returns an error for completed uploads. The list returned in the List Parts response is sorted by part range.

The List Parts operation supports pagination. By default, this operation returns up to 1,000 uploaded parts in the response. You should always check the response for a marker at which to continue the list; if there are no more items the marker is null. To return a list of parts that begins at a specific part, set the marker request parameter to the value you obtained from a previous List Parts request. You can also limit the number of parts returned in the response by specifying the limit parameter in the request.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and the underlying REST API, see Working with Archives in Amazon Glacier and List Parts in the Amazon Glacier Developer Guide.

", - "ListProvisionedCapacity": "

This operation lists the provisioned capacity for the specified AWS account.

", + "ListProvisionedCapacity": "

This operation lists the provisioned capacity units for the specified AWS account.

", "ListTagsForVault": "

This operation lists all the tags attached to a vault. The operation returns an empty map if there are no tags. For more information about tags, see Tagging Amazon Glacier Resources.

", "ListVaults": "

This operation lists all vaults owned by the calling user's account. The list returned in the response is ASCII-sorted by vault name.

By default, this operation returns up to 1,000 items. If there are more vaults to list, the response marker field contains the vault Amazon Resource Name (ARN) at which to continue the list with a new List Vaults request; otherwise, the marker field is null. To return a list of vaults that begins at a specific vault, set the marker request parameter to the vault ARN you obtained from a previous List Vaults request. You can also limit the number of vaults returned in the response by specifying the limit parameter in the request.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, see Retrieving Vault Metadata in Amazon Glacier and List Vaults in the Amazon Glacier Developer Guide.

", - "PurchaseProvisionedCapacity": "

This operation purchases a provisioned capacity unit for an AWS account.

", + "PurchaseProvisionedCapacity": "

This operation purchases a provisioned capacity unit for an AWS account.

", "RemoveTagsFromVault": "

This operation removes one or more tags from the set of tags attached to a vault. For more information about tags, see Tagging Amazon Glacier Resources. This operation is idempotent. The operation will be successful, even if there are no tags attached to the vault.

", "SetDataRetrievalPolicy": "

This operation sets and then enacts a data retrieval policy in the region specified in the PUT request. You can set one policy per region for an AWS account. The policy is enacted within a few minutes of a successful PUT operation.

The set policy operation does not affect retrieval jobs that were in progress before the policy was enacted. For more information about data retrieval policies, see Amazon Glacier Data Retrieval Policies.

", "SetVaultAccessPolicy": "

This operation configures an access policy for a vault and will overwrite an existing policy. To configure a vault access policy, send a PUT request to the access-policy subresource of the vault. An access policy is specific to a vault and is also called a vault subresource. You can set one access policy per vault and the policy can be up to 20 KB in size. For more information about vault access policies, see Amazon Glacier Access Control with Vault Access Policies.

", @@ -47,10 +47,16 @@ "refs": { } }, + "AccessControlPolicyList": { + "base": null, + "refs": { + "S3Location$AccessControlList": "

A list of grants that control access to the staged results.

" + } + }, "ActionCode": { "base": null, "refs": { - "GlacierJobDescription$Action": "

The job type. It is either ArchiveRetrieval or InventoryRetrieval.

" + "GlacierJobDescription$Action": "

The job type. This value is either ArchiveRetrieval, InventoryRetrieval, or Select.

" } }, "AddTagsToVaultInput": { @@ -63,6 +69,24 @@ "refs": { } }, + "CSVInput": { + "base": "

Contains information about the comma-separated value (CSV) file to select from.

", + "refs": { + "InputSerialization$csv": "

Describes the serialization of a CSV-encoded object.

" + } + }, + "CSVOutput": { + "base": "

Contains information about the comma-separated value (CSV) file that the job results are stored in.

", + "refs": { + "OutputSerialization$csv": "

Describes the serialization of CSV-encoded query results.

" + } + }, + "CannedACL": { + "base": null, + "refs": { + "S3Location$CannedACL": "

The canned ACL to apply to the restore results.

" + } + }, "CompleteMultipartUploadInput": { "base": "

Provides options to complete a multipart upload operation. This informs Amazon Glacier that all the archive parts have been uploaded and Amazon Glacier can now assemble the archive from the uploaded parts. After assembling and saving the archive to the vault, Amazon Glacier returns the URI path of the newly created archive resource.

", "refs": { @@ -145,6 +169,30 @@ "VaultList$member": null } }, + "Encryption": { + "base": "

Contains information about the encryption used to store the job results in Amazon S3.

", + "refs": { + "S3Location$Encryption": "

Contains information about the encryption used to store the job results in Amazon S3.

" + } + }, + "EncryptionType": { + "base": null, + "refs": { + "Encryption$EncryptionType": "

The server-side encryption algorithm used when storing job results in Amazon S3, for example AES256 or aws:kms.

" + } + }, + "ExpressionType": { + "base": null, + "refs": { + "SelectParameters$ExpressionType": "

The type of the provided expression, for example SQL.

" + } + }, + "FileHeaderInfo": { + "base": null, + "refs": { + "CSVInput$FileHeaderInfo": "

Describes the first line of input. Valid values are None, Ignore, and Use.

" + } + }, "GetDataRetrievalPolicyInput": { "base": "

Input for GetDataRetrievalPolicy.

", "refs": { @@ -196,11 +244,23 @@ } }, "GlacierJobDescription": { - "base": "

Describes an Amazon Glacier job.

", + "base": "

Contains the description of an Amazon Glacier job.

", "refs": { "JobList$member": null } }, + "Grant": { + "base": "

Contains information about a grant.

", + "refs": { + "AccessControlPolicyList$member": null + } + }, + "Grantee": { + "base": "

Contains information about the grantee.

", + "refs": { + "Grant$Grantee": "

The grantee.

" + } + }, "InitiateJobInput": { "base": "

Provides options for initiating an Amazon Glacier job.

", "refs": { @@ -231,6 +291,12 @@ "refs": { } }, + "InputSerialization": { + "base": "

Describes how the archive is serialized.

", + "refs": { + "SelectParameters$InputSerialization": "

Describes the serialization format of the object.

" + } + }, "InsufficientCapacityException": { "base": "

Returned if there is insufficient capacity to process this expedited request. This error only applies to expedited retrievals and not to standard or bulk retrievals.

", "refs": { @@ -347,6 +413,19 @@ "DataRetrievalRule$BytesPerHour": "

The maximum number of bytes that can be retrieved in an hour.

This field is required only if the value of the Strategy field is BytesPerHour. Your PUT operation will be rejected if the Strategy field is not set to BytesPerHour and you set this field.

" } }, + "OutputLocation": { + "base": "

Contains information about the location where the select job results are stored.

", + "refs": { + "GlacierJobDescription$OutputLocation": "

Contains the location where the data from the select job is stored.

", + "JobParameters$OutputLocation": "

Contains information about the location where the select job results are stored.

" + } + }, + "OutputSerialization": { + "base": "

Describes how the select output is serialized.

", + "refs": { + "SelectParameters$OutputSerialization": "

Describes how the results of the select job are serialized.

" + } + }, "PartList": { "base": null, "refs": { @@ -359,6 +438,12 @@ "PartList$member": null } }, + "Permission": { + "base": null, + "refs": { + "Grant$Permission": "

Specifies the permission given to the grantee.

" + } + }, "PolicyEnforcedException": { "base": "

Returned if a retrieval job would exceed the current data policy's retrieval rate limit. For more information about data retrieval policies,

", "refs": { @@ -386,6 +471,12 @@ "refs": { } }, + "QuoteFields": { + "base": null, + "refs": { + "CSVOutput$QuoteFields": "

A value that indicates whether all output fields should be contained within quotation marks.

" + } + }, "RemoveTagsFromVaultInput": { "base": "

The input value for RemoveTagsFromVaultInput.

", "refs": { @@ -401,6 +492,19 @@ "refs": { } }, + "S3Location": { + "base": "

Contains information about the location in Amazon S3 where the select job results are stored.

", + "refs": { + "OutputLocation$S3": "

Describes an S3 location that will receive the results of the restore request.

" + } + }, + "SelectParameters": { + "base": "

Contains information about the parameters used for a select.

", + "refs": { + "GlacierJobDescription$SelectParameters": "

Contains the parameters that define a select job.

", + "JobParameters$SelectParameters": "

Contains the parameters that define a job.

" + } + }, "ServiceUnavailableException": { "base": "

Returned if the service cannot complete the request.

", "refs": { @@ -424,14 +528,20 @@ "Size": { "base": null, "refs": { - "GlacierJobDescription$ArchiveSizeInBytes": "

For an ArchiveRetrieval job, this is the size in bytes of the archive being requested for download. For the InventoryRetrieval job, the value is null.

", - "GlacierJobDescription$InventorySizeInBytes": "

For an InventoryRetrieval job, this is the size in bytes of the inventory requested for download. For the ArchiveRetrieval job, the value is null.

" + "GlacierJobDescription$ArchiveSizeInBytes": "

For an archive retrieval job, this value is the size in bytes of the archive being requested for download. For an inventory retrieval or select job, this value is null.

", + "GlacierJobDescription$InventorySizeInBytes": "

For an inventory retrieval job, this value is the size in bytes of the inventory requested for download. For an archive retrieval or select job, this value is null.

" } }, "StatusCode": { "base": null, "refs": { - "GlacierJobDescription$StatusCode": "

The status code can be InProgress, Succeeded, or Failed, and indicates the status of the job.

" + "GlacierJobDescription$StatusCode": "

The status code can be InProgress, Succeeded, or Failed, and indicates the status of the job.

" + } + }, + "StorageClass": { + "base": null, + "refs": { + "S3Location$StorageClass": "

The storage class used to store the restore results.

" } }, "Stream": { @@ -467,6 +577,12 @@ "TagMap$value": null } }, + "Type": { + "base": null, + "refs": { + "Grantee$Type": "

Type of grantee

" + } + }, "UploadArchiveInput": { "base": "

Provides options to add an archive to a vault.

", "refs": { @@ -523,7 +639,14 @@ "boolean": { "base": null, "refs": { - "GlacierJobDescription$Completed": "

The job status. When a job is completed, you get the job's output.

" + "GlacierJobDescription$Completed": "

The job status. When a job is completed, you get the job's output using Get Job Output (GET output).

" + } + }, + "hashmap": { + "base": null, + "refs": { + "S3Location$Tagging": "

The tag-set that is applied to the restore results.

", + "S3Location$UserMetadata": "

A map of metadata to store with the restore results in Amazon S3.

" } }, "httpstatus": { @@ -554,6 +677,15 @@ "ArchiveCreationOutput$location": "

The relative URI path of the newly added archive resource.

", "ArchiveCreationOutput$checksum": "

The checksum of the archive computed by Amazon Glacier.

", "ArchiveCreationOutput$archiveId": "

The ID of the archive. This value is also included as part of the location.

", + "CSVInput$Comments": "

A single character used to indicate that a row should be ignored when the character is present at the start of that row.

", + "CSVInput$QuoteEscapeCharacter": "

A single character used for escaping the quotation-mark character inside an already escaped value.

", + "CSVInput$RecordDelimiter": "

A value used to separate individual records from each other.

", + "CSVInput$FieldDelimiter": "

A value used to separate individual fields from each other within a record.

", + "CSVInput$QuoteCharacter": "

A value used as an escape character where the field delimiter is part of the value.

", + "CSVOutput$QuoteEscapeCharacter": "

A single character used for escaping the quotation-mark character inside an already escaped value.

", + "CSVOutput$RecordDelimiter": "

A value used to separate individual records from each other.

", + "CSVOutput$FieldDelimiter": "

A value used to separate individual fields from each other within a record.

", + "CSVOutput$QuoteCharacter": "

A value used as an escape character where the field delimiter is part of the value.

", "CompleteMultipartUploadInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.

", "CompleteMultipartUploadInput$vaultName": "

The name of the vault.

", "CompleteMultipartUploadInput$uploadId": "

The upload ID of the multipart upload.

", @@ -584,6 +716,8 @@ "DescribeVaultOutput$VaultName": "

The name of the vault.

", "DescribeVaultOutput$CreationDate": "

The Universal Coordinated Time (UTC) date when the vault was created. This value should be a string in the ISO 8601 date format, for example 2012-03-20T17:03:43.221Z.

", "DescribeVaultOutput$LastInventoryDate": "

The Universal Coordinated Time (UTC) date when Amazon Glacier completed the last vault inventory. This value should be a string in the ISO 8601 date format, for example 2012-03-20T17:03:43.221Z.

", + "Encryption$KMSKeyId": "

The AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS fail if not made by using Secure Sockets Layer (SSL) or Signature Version 4.

", + "Encryption$KMSContext": "

Optional. If the encryption type is aws:kms, you can use this value to specify the encryption context for the restore results.

", "GetDataRetrievalPolicyInput$accountId": "

The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID.

", "GetJobOutputInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.

", "GetJobOutputInput$vaultName": "

The name of the vault.

", @@ -605,21 +739,27 @@ "GetVaultNotificationsInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.

", "GetVaultNotificationsInput$vaultName": "

The name of the vault.

", "GlacierJobDescription$JobId": "

An opaque string that identifies an Amazon Glacier job.

", - "GlacierJobDescription$JobDescription": "

The job description you provided when you initiated the job.

", - "GlacierJobDescription$ArchiveId": "

For an ArchiveRetrieval job, this is the archive ID requested for download. Otherwise, this field is null.

", - "GlacierJobDescription$VaultARN": "

The Amazon Resource Name (ARN) of the vault from which the archive retrieval was requested.

", - "GlacierJobDescription$CreationDate": "

The UTC date when the job was created. A string representation of ISO 8601 date format, for example, \"2012-03-20T17:03:43.221Z\".

", + "GlacierJobDescription$JobDescription": "

The job description provided when initiating the job.

", + "GlacierJobDescription$ArchiveId": "

The archive ID requested for a select job or archive retrieval. Otherwise, this field is null.

", + "GlacierJobDescription$VaultARN": "

The Amazon Resource Name (ARN) of the vault from which an archive retrieval was requested.

", + "GlacierJobDescription$CreationDate": "

The UTC date when the job was created. This value is a string representation of ISO 8601 date format, for example \"2012-03-20T17:03:43.221Z\".

", "GlacierJobDescription$StatusMessage": "

A friendly message that describes the job status.

", - "GlacierJobDescription$SNSTopic": "

An Amazon Simple Notification Service (Amazon SNS) topic that receives notification.

", - "GlacierJobDescription$CompletionDate": "

The UTC time that the archive retrieval request completed. While the job is in progress, the value will be null.

", - "GlacierJobDescription$SHA256TreeHash": "

For an ArchiveRetrieval job, it is the checksum of the archive. Otherwise, the value is null.

The SHA256 tree hash value for the requested range of an archive. If the Initiate a Job request for an archive specified a tree-hash aligned range, then this field returns a value.

For the specific case when the whole archive is retrieved, this value is the same as the ArchiveSHA256TreeHash value.

This field is null in the following situations:

", - "GlacierJobDescription$ArchiveSHA256TreeHash": "

The SHA256 tree hash of the entire archive for an archive retrieval. For inventory retrieval jobs, this field is null.

", - "GlacierJobDescription$RetrievalByteRange": "

The retrieved byte range for archive retrieval jobs in the form \"StartByteValue-EndByteValue\" If no range was specified in the archive retrieval, then the whole archive is retrieved and StartByteValue equals 0 and EndByteValue equals the size of the archive minus 1. For inventory retrieval jobs this field is null.

", + "GlacierJobDescription$SNSTopic": "

An Amazon SNS topic that receives notification.

", + "GlacierJobDescription$CompletionDate": "

The UTC time that the job request completed. While the job is in progress, the value is null.

", + "GlacierJobDescription$SHA256TreeHash": "

For an archive retrieval job, this value is the checksum of the archive. Otherwise, this value is null.

The SHA256 tree hash value for the requested range of an archive. If the InitiateJob request for an archive specified a tree-hash aligned range, then this field returns a value.

If the whole archive is retrieved, this value is the same as the ArchiveSHA256TreeHash value.

This field is null for the following:

", + "GlacierJobDescription$ArchiveSHA256TreeHash": "

The SHA256 tree hash of the entire archive for an archive retrieval. For inventory retrieval or select jobs, this field is null.

", + "GlacierJobDescription$RetrievalByteRange": "

The retrieved byte range for archive retrieval jobs in the form StartByteValue-EndByteValue. If no range was specified in the archive retrieval, then the whole archive is retrieved. In this case, StartByteValue equals 0 and EndByteValue equals the size of the archive minus 1. For inventory retrieval or select jobs, this field is null.

", "GlacierJobDescription$Tier": "

The retrieval option to use for the archive retrieval. Valid values are Expedited, Standard, or Bulk. Standard is the default.

", + "GlacierJobDescription$JobOutputPath": "

Contains the job output location.

", + "Grantee$DisplayName": "

Screen name of the grantee.

", + "Grantee$URI": "

URI of the grantee group.

", + "Grantee$ID": "

The canonical user ID of the grantee.

", + "Grantee$EmailAddress": "

Email address of the grantee.

", "InitiateJobInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.

", "InitiateJobInput$vaultName": "

The name of the vault.

", "InitiateJobOutput$location": "

The relative URI path of the job.

", "InitiateJobOutput$jobId": "

The ID of the job.

", + "InitiateJobOutput$jobOutputPath": "

The path to the location of where the select results are stored.

", "InitiateMultipartUploadInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.

", "InitiateMultipartUploadInput$vaultName": "

The name of the vault.

", "InitiateMultipartUploadInput$archiveDescription": "

The archive description that you are uploading in parts.

The part size must be a megabyte (1024 KB) multiplied by a power of 2, for example 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB (4096 MB).

", @@ -643,12 +783,12 @@ "InventoryRetrievalJobInput$Limit": "

Specifies the maximum number of inventory items returned per vault inventory retrieval request. Valid values are greater than or equal to 1.

", "InventoryRetrievalJobInput$Marker": "

An opaque string that represents where to continue pagination of the vault inventory retrieval results. You use the marker in a new InitiateJob request to obtain additional inventory items. If there are no more inventory items, this value is null.

", "JobParameters$Format": "

When initiating a job to retrieve a vault inventory, you can optionally add this parameter to your request to specify the output format. If you are initiating an inventory job and do not specify a Format field, JSON is the default format. Valid values are \"CSV\" and \"JSON\".

", - "JobParameters$Type": "

The job type. You can initiate a job to retrieve an archive or get an inventory of a vault. Valid values are \"archive-retrieval\" and \"inventory-retrieval\".

", - "JobParameters$ArchiveId": "

The ID of the archive that you want to retrieve. This field is required only if Type is set to archive-retrieval. An error occurs if you specify this request parameter for an inventory retrieval job request.

", + "JobParameters$Type": "

The job type. You can initiate a job to perform a select query on an archive, retrieve an archive, or get an inventory of a vault. Valid values are \"select\", \"archive-retrieval\" and \"inventory-retrieval\".

", + "JobParameters$ArchiveId": "

The ID of the archive that you want to retrieve. This field is required only if Type is set to select or archive-retrievalcode>. An error occurs if you specify this request parameter for an inventory retrieval job request.

", "JobParameters$Description": "

The optional description for the job. The description must be less than or equal to 1,024 bytes. The allowable characters are 7-bit ASCII without control codes-specifically, ASCII values 32-126 decimal or 0x20-0x7E hexadecimal.

", "JobParameters$SNSTopic": "

The Amazon SNS topic ARN to which Amazon Glacier sends a notification when the job is completed and the output is ready for you to download. The specified topic publishes the notification to its subscribers. The SNS topic must exist.

", "JobParameters$RetrievalByteRange": "

The byte range to retrieve for an archive retrieval. in the form \"StartByteValue-EndByteValue\" If not specified, the whole archive is retrieved. If specified, the byte range must be megabyte (1024*1024) aligned which means that StartByteValue must be divisible by 1 MB and EndByteValue plus 1 must be divisible by 1 MB or be the end of the archive specified as the archive byte size value minus 1. If RetrievalByteRange is not megabyte aligned, this operation returns a 400 response.

An error occurs if you specify this field for an inventory retrieval job request.

", - "JobParameters$Tier": "

The retrieval option to use for the archive retrieval. Valid values are Expedited, Standard, or Bulk. Standard is the default.

", + "JobParameters$Tier": "

The retrieval option to use for a select or archive retrieval job. Valid values are Expedited, Standard, or Bulk. Standard is the default.

", "LimitExceededException$type": "

Client

", "LimitExceededException$code": "

400 Bad Request

", "LimitExceededException$message": "

Returned if the request results in a vault limit or tags limit being exceeded.

", @@ -674,7 +814,7 @@ "ListPartsOutput$ArchiveDescription": "

The description of the archive that was specified in the Initiate Multipart Upload request.

", "ListPartsOutput$CreationDate": "

The UTC time at which the multipart upload was initiated.

", "ListPartsOutput$Marker": "

An opaque string that represents where to continue pagination of the results. You use the marker in a new List Parts request to obtain more jobs in the list. If there are no more parts, this value is null.

", - "ListProvisionedCapacityInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, don't include any hyphens ('-') in the ID.

", + "ListProvisionedCapacityInput$accountId": "

The AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, don't include any hyphens ('-') in the ID.

", "ListTagsForVaultInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.

", "ListTagsForVaultInput$vaultName": "

The name of the vault.

", "ListVaultsInput$accountId": "

The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID.

", @@ -703,6 +843,9 @@ "ResourceNotFoundException$type": "

Client

", "ResourceNotFoundException$code": "

404 Not Found

", "ResourceNotFoundException$message": "

Returned if the specified resource (such as a vault, upload ID, or job ID) doesn't exist.

", + "S3Location$BucketName": "

The name of the bucket where the restore results are stored.

", + "S3Location$Prefix": "

The prefix that is prepended to the restore results for this request.

", + "SelectParameters$Expression": "

The expression that is used to select the object.

", "ServiceUnavailableException$type": "

Server

", "ServiceUnavailableException$code": "

500 Internal Server Error

", "ServiceUnavailableException$message": "

Returned if the service cannot complete the request.

", @@ -728,7 +871,9 @@ "UploadMultipartPartOutput$checksum": "

The SHA256 tree hash that Amazon Glacier computed for the uploaded part.

", "VaultAccessPolicy$Policy": "

The vault access policy.

", "VaultLockPolicy$Policy": "

The vault lock policy.

", - "VaultNotificationConfig$SNSTopic": "

The Amazon Simple Notification Service (Amazon SNS) topic Amazon Resource Name (ARN).

" + "VaultNotificationConfig$SNSTopic": "

The Amazon Simple Notification Service (Amazon SNS) topic Amazon Resource Name (ARN).

", + "hashmap$key": null, + "hashmap$value": null } } } diff --git a/models/apis/glue/2017-03-31/api-2.json b/models/apis/glue/2017-03-31/api-2.json new file mode 100644 index 00000000000..f743b6ce443 --- /dev/null +++ b/models/apis/glue/2017-03-31/api-2.json @@ -0,0 +1,3696 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-03-31", + "endpointPrefix":"glue", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"AWS Glue", + "signatureVersion":"v4", + "targetPrefix":"AWSGlue", + "uid":"glue-2017-03-31" + }, + "operations":{ + "BatchCreatePartition":{ + "name":"BatchCreatePartition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchCreatePartitionRequest"}, + "output":{"shape":"BatchCreatePartitionResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"ResourceNumberLimitExceededException"}, + {"shape":"InternalServiceException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "BatchDeleteConnection":{ + "name":"BatchDeleteConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDeleteConnectionRequest"}, + "output":{"shape":"BatchDeleteConnectionResponse"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "BatchDeletePartition":{ + "name":"BatchDeletePartition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDeletePartitionRequest"}, + "output":{"shape":"BatchDeletePartitionResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "BatchDeleteTable":{ + "name":"BatchDeleteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDeleteTableRequest"}, + "output":{"shape":"BatchDeleteTableResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "BatchGetPartition":{ + "name":"BatchGetPartition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetPartitionRequest"}, + "output":{"shape":"BatchGetPartitionResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ] + }, + "BatchStopJobRun":{ + "name":"BatchStopJobRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchStopJobRunRequest"}, + "output":{"shape":"BatchStopJobRunResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "CreateClassifier":{ + "name":"CreateClassifier", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateClassifierRequest"}, + "output":{"shape":"CreateClassifierResponse"}, + "errors":[ + {"shape":"AlreadyExistsException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "CreateConnection":{ + "name":"CreateConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateConnectionRequest"}, + "output":{"shape":"CreateConnectionResponse"}, + "errors":[ + {"shape":"AlreadyExistsException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "CreateCrawler":{ + "name":"CreateCrawler", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCrawlerRequest"}, + "output":{"shape":"CreateCrawlerResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"ResourceNumberLimitExceededException"} + ] + }, + "CreateDatabase":{ + "name":"CreateDatabase", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDatabaseRequest"}, + "output":{"shape":"CreateDatabaseResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"ResourceNumberLimitExceededException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "CreateDevEndpoint":{ + "name":"CreateDevEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDevEndpointRequest"}, + "output":{"shape":"CreateDevEndpointResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InvalidInputException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNumberLimitExceededException"} + ] + }, + "CreateJob":{ + "name":"CreateJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateJobRequest"}, + "output":{"shape":"CreateJobResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"ResourceNumberLimitExceededException"} + ] + }, + "CreatePartition":{ + "name":"CreatePartition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePartitionRequest"}, + "output":{"shape":"CreatePartitionResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"ResourceNumberLimitExceededException"}, + {"shape":"InternalServiceException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "CreateScript":{ + "name":"CreateScript", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateScriptRequest"}, + "output":{"shape":"CreateScriptResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "CreateTable":{ + "name":"CreateTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTableRequest"}, + "output":{"shape":"CreateTableResponse"}, + "errors":[ + {"shape":"AlreadyExistsException"}, + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"ResourceNumberLimitExceededException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "CreateTrigger":{ + "name":"CreateTrigger", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTriggerRequest"}, + "output":{"shape":"CreateTriggerResponse"}, + "errors":[ + {"shape":"AlreadyExistsException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"ResourceNumberLimitExceededException"} + ] + }, + "CreateUserDefinedFunction":{ + "name":"CreateUserDefinedFunction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserDefinedFunctionRequest"}, + "output":{"shape":"CreateUserDefinedFunctionResponse"}, + "errors":[ + {"shape":"AlreadyExistsException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "DeleteClassifier":{ + "name":"DeleteClassifier", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteClassifierRequest"}, + "output":{"shape":"DeleteClassifierResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "DeleteConnection":{ + "name":"DeleteConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteConnectionRequest"}, + "output":{"shape":"DeleteConnectionResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "DeleteCrawler":{ + "name":"DeleteCrawler", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCrawlerRequest"}, + "output":{"shape":"DeleteCrawlerResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"CrawlerRunningException"}, + {"shape":"SchedulerTransitioningException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "DeleteDatabase":{ + "name":"DeleteDatabase", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDatabaseRequest"}, + "output":{"shape":"DeleteDatabaseResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "DeleteDevEndpoint":{ + "name":"DeleteDevEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDevEndpointRequest"}, + "output":{"shape":"DeleteDevEndpointResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InvalidInputException"} + ] + }, + "DeleteJob":{ + "name":"DeleteJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteJobRequest"}, + "output":{"shape":"DeleteJobResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "DeletePartition":{ + "name":"DeletePartition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeletePartitionRequest"}, + "output":{"shape":"DeletePartitionResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "DeleteTable":{ + "name":"DeleteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTableRequest"}, + "output":{"shape":"DeleteTableResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "DeleteTrigger":{ + "name":"DeleteTrigger", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTriggerRequest"}, + "output":{"shape":"DeleteTriggerResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "DeleteUserDefinedFunction":{ + "name":"DeleteUserDefinedFunction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserDefinedFunctionRequest"}, + "output":{"shape":"DeleteUserDefinedFunctionResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetCatalogImportStatus":{ + "name":"GetCatalogImportStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCatalogImportStatusRequest"}, + "output":{"shape":"GetCatalogImportStatusResponse"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetClassifier":{ + "name":"GetClassifier", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetClassifierRequest"}, + "output":{"shape":"GetClassifierResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetClassifiers":{ + "name":"GetClassifiers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetClassifiersRequest"}, + "output":{"shape":"GetClassifiersResponse"}, + "errors":[ + {"shape":"OperationTimeoutException"} + ] + }, + "GetConnection":{ + "name":"GetConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetConnectionRequest"}, + "output":{"shape":"GetConnectionResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetConnections":{ + "name":"GetConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetConnectionsRequest"}, + "output":{"shape":"GetConnectionsResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetCrawler":{ + "name":"GetCrawler", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCrawlerRequest"}, + "output":{"shape":"GetCrawlerResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetCrawlerMetrics":{ + "name":"GetCrawlerMetrics", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCrawlerMetricsRequest"}, + "output":{"shape":"GetCrawlerMetricsResponse"}, + "errors":[ + {"shape":"OperationTimeoutException"} + ] + }, + "GetCrawlers":{ + "name":"GetCrawlers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCrawlersRequest"}, + "output":{"shape":"GetCrawlersResponse"}, + "errors":[ + {"shape":"OperationTimeoutException"} + ] + }, + "GetDatabase":{ + "name":"GetDatabase", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDatabaseRequest"}, + "output":{"shape":"GetDatabaseResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetDatabases":{ + "name":"GetDatabases", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDatabasesRequest"}, + "output":{"shape":"GetDatabasesResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetDataflowGraph":{ + "name":"GetDataflowGraph", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDataflowGraphRequest"}, + "output":{"shape":"GetDataflowGraphResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetDevEndpoint":{ + "name":"GetDevEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDevEndpointRequest"}, + "output":{"shape":"GetDevEndpointResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InvalidInputException"} + ] + }, + "GetDevEndpoints":{ + "name":"GetDevEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDevEndpointsRequest"}, + "output":{"shape":"GetDevEndpointsResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InvalidInputException"} + ] + }, + "GetJob":{ + "name":"GetJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetJobRequest"}, + "output":{"shape":"GetJobResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetJobRun":{ + "name":"GetJobRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetJobRunRequest"}, + "output":{"shape":"GetJobRunResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetJobRuns":{ + "name":"GetJobRuns", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetJobRunsRequest"}, + "output":{"shape":"GetJobRunsResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetJobs":{ + "name":"GetJobs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetJobsRequest"}, + "output":{"shape":"GetJobsResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetMapping":{ + "name":"GetMapping", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetMappingRequest"}, + "output":{"shape":"GetMappingResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"EntityNotFoundException"} + ] + }, + "GetPartition":{ + "name":"GetPartition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPartitionRequest"}, + "output":{"shape":"GetPartitionResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetPartitions":{ + "name":"GetPartitions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPartitionsRequest"}, + "output":{"shape":"GetPartitionsResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ] + }, + "GetPlan":{ + "name":"GetPlan", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPlanRequest"}, + "output":{"shape":"GetPlanResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetTable":{ + "name":"GetTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTableRequest"}, + "output":{"shape":"GetTableResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetTableVersions":{ + "name":"GetTableVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTableVersionsRequest"}, + "output":{"shape":"GetTableVersionsResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetTables":{ + "name":"GetTables", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTablesRequest"}, + "output":{"shape":"GetTablesResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ] + }, + "GetTrigger":{ + "name":"GetTrigger", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTriggerRequest"}, + "output":{"shape":"GetTriggerResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetTriggers":{ + "name":"GetTriggers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTriggersRequest"}, + "output":{"shape":"GetTriggersResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetUserDefinedFunction":{ + "name":"GetUserDefinedFunction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUserDefinedFunctionRequest"}, + "output":{"shape":"GetUserDefinedFunctionResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "GetUserDefinedFunctions":{ + "name":"GetUserDefinedFunctions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUserDefinedFunctionsRequest"}, + "output":{"shape":"GetUserDefinedFunctionsResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ] + }, + "ImportCatalogToGlue":{ + "name":"ImportCatalogToGlue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportCatalogToGlueRequest"}, + "output":{"shape":"ImportCatalogToGlueResponse"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "ResetJobBookmark":{ + "name":"ResetJobBookmark", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetJobBookmarkRequest"}, + "output":{"shape":"ResetJobBookmarkResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "StartCrawler":{ + "name":"StartCrawler", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartCrawlerRequest"}, + "output":{"shape":"StartCrawlerResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"CrawlerRunningException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "StartCrawlerSchedule":{ + "name":"StartCrawlerSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartCrawlerScheduleRequest"}, + "output":{"shape":"StartCrawlerScheduleResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"SchedulerRunningException"}, + {"shape":"SchedulerTransitioningException"}, + {"shape":"NoScheduleException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "StartJobRun":{ + "name":"StartJobRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartJobRunRequest"}, + "output":{"shape":"StartJobRunResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"ResourceNumberLimitExceededException"}, + {"shape":"ConcurrentRunsExceededException"} + ] + }, + "StartTrigger":{ + "name":"StartTrigger", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartTriggerRequest"}, + "output":{"shape":"StartTriggerResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"ResourceNumberLimitExceededException"}, + {"shape":"ConcurrentRunsExceededException"} + ] + }, + "StopCrawler":{ + "name":"StopCrawler", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopCrawlerRequest"}, + "output":{"shape":"StopCrawlerResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"CrawlerNotRunningException"}, + {"shape":"CrawlerStoppingException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "StopCrawlerSchedule":{ + "name":"StopCrawlerSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopCrawlerScheduleRequest"}, + "output":{"shape":"StopCrawlerScheduleResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"SchedulerNotRunningException"}, + {"shape":"SchedulerTransitioningException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "StopTrigger":{ + "name":"StopTrigger", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopTriggerRequest"}, + "output":{"shape":"StopTriggerResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "UpdateClassifier":{ + "name":"UpdateClassifier", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateClassifierRequest"}, + "output":{"shape":"UpdateClassifierResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"VersionMismatchException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "UpdateConnection":{ + "name":"UpdateConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateConnectionRequest"}, + "output":{"shape":"UpdateConnectionResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "UpdateCrawler":{ + "name":"UpdateCrawler", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateCrawlerRequest"}, + "output":{"shape":"UpdateCrawlerResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"VersionMismatchException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"CrawlerRunningException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "UpdateCrawlerSchedule":{ + "name":"UpdateCrawlerSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateCrawlerScheduleRequest"}, + "output":{"shape":"UpdateCrawlerScheduleResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"VersionMismatchException"}, + {"shape":"SchedulerTransitioningException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "UpdateDatabase":{ + "name":"UpdateDatabase", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDatabaseRequest"}, + "output":{"shape":"UpdateDatabaseResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "UpdateDevEndpoint":{ + "name":"UpdateDevEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDevEndpointRequest"}, + "output":{"shape":"UpdateDevEndpointResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InvalidInputException"}, + {"shape":"ValidationException"} + ] + }, + "UpdateJob":{ + "name":"UpdateJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateJobRequest"}, + "output":{"shape":"UpdateJobResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "UpdatePartition":{ + "name":"UpdatePartition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdatePartitionRequest"}, + "output":{"shape":"UpdatePartitionResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "UpdateTable":{ + "name":"UpdateTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTableRequest"}, + "output":{"shape":"UpdateTableResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"ConcurrentModificationException"} + ] + }, + "UpdateTrigger":{ + "name":"UpdateTrigger", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTriggerRequest"}, + "output":{"shape":"UpdateTriggerResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"} + ] + }, + "UpdateUserDefinedFunction":{ + "name":"UpdateUserDefinedFunction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUserDefinedFunctionRequest"}, + "output":{"shape":"UpdateUserDefinedFunctionResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "Action":{ + "type":"structure", + "members":{ + "JobName":{"shape":"NameString"}, + "Arguments":{"shape":"GenericMap"} + } + }, + "ActionList":{ + "type":"list", + "member":{"shape":"Action"} + }, + "AlreadyExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "AttemptCount":{"type":"integer"}, + "BatchCreatePartitionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableName", + "PartitionInputList" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"}, + "PartitionInputList":{"shape":"PartitionInputList"} + } + }, + "BatchCreatePartitionResponse":{ + "type":"structure", + "members":{ + "Errors":{"shape":"PartitionErrors"} + } + }, + "BatchDeleteConnectionRequest":{ + "type":"structure", + "required":["ConnectionNameList"], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "ConnectionNameList":{"shape":"DeleteConnectionNameList"} + } + }, + "BatchDeleteConnectionResponse":{ + "type":"structure", + "members":{ + "Succeeded":{"shape":"NameStringList"}, + "Errors":{"shape":"ErrorByName"} + } + }, + "BatchDeletePartitionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableName", + "PartitionsToDelete" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"}, + "PartitionsToDelete":{"shape":"BatchDeletePartitionValueList"} + } + }, + "BatchDeletePartitionResponse":{ + "type":"structure", + "members":{ + "Errors":{"shape":"PartitionErrors"} + } + }, + "BatchDeletePartitionValueList":{ + "type":"list", + "member":{"shape":"PartitionValueList"}, + "max":25, + "min":0 + }, + "BatchDeleteTableNameList":{ + "type":"list", + "member":{"shape":"NameString"}, + "max":100, + "min":0 + }, + "BatchDeleteTableRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TablesToDelete" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TablesToDelete":{"shape":"BatchDeleteTableNameList"} + } + }, + "BatchDeleteTableResponse":{ + "type":"structure", + "members":{ + "Errors":{"shape":"TableErrors"} + } + }, + "BatchGetPartitionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableName", + "PartitionsToGet" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"}, + "PartitionsToGet":{"shape":"BatchGetPartitionValueList"} + } + }, + "BatchGetPartitionResponse":{ + "type":"structure", + "members":{ + "Partitions":{"shape":"PartitionList"}, + "UnprocessedKeys":{"shape":"BatchGetPartitionValueList"} + } + }, + "BatchGetPartitionValueList":{ + "type":"list", + "member":{"shape":"PartitionValueList"}, + "max":1000, + "min":0 + }, + "BatchStopJobRunError":{ + "type":"structure", + "members":{ + "JobName":{"shape":"NameString"}, + "JobRunId":{"shape":"IdString"}, + "ErrorDetail":{"shape":"ErrorDetail"} + } + }, + "BatchStopJobRunErrorList":{ + "type":"list", + "member":{"shape":"BatchStopJobRunError"} + }, + "BatchStopJobRunJobRunIdList":{ + "type":"list", + "member":{"shape":"IdString"}, + "max":25, + "min":1 + }, + "BatchStopJobRunRequest":{ + "type":"structure", + "required":[ + "JobName", + "JobRunIds" + ], + "members":{ + "JobName":{"shape":"NameString"}, + "JobRunIds":{"shape":"BatchStopJobRunJobRunIdList"} + } + }, + "BatchStopJobRunResponse":{ + "type":"structure", + "members":{ + "SuccessfulSubmissions":{"shape":"BatchStopJobRunSuccessfulSubmissionList"}, + "Errors":{"shape":"BatchStopJobRunErrorList"} + } + }, + "BatchStopJobRunSuccessfulSubmission":{ + "type":"structure", + "members":{ + "JobName":{"shape":"NameString"}, + "JobRunId":{"shape":"IdString"} + } + }, + "BatchStopJobRunSuccessfulSubmissionList":{ + "type":"list", + "member":{"shape":"BatchStopJobRunSuccessfulSubmission"} + }, + "Boolean":{"type":"boolean"}, + "BooleanValue":{"type":"boolean"}, + "BoundedPartitionValueList":{ + "type":"list", + "member":{"shape":"ValueString"}, + "max":100, + "min":0 + }, + "CatalogEntries":{ + "type":"list", + "member":{"shape":"CatalogEntry"} + }, + "CatalogEntry":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableName" + ], + "members":{ + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"} + } + }, + "CatalogIdString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "CatalogImportStatus":{ + "type":"structure", + "members":{ + "ImportCompleted":{"shape":"Boolean"}, + "ImportTime":{"shape":"Timestamp"}, + "ImportedBy":{"shape":"NameString"} + } + }, + "Classification":{"type":"string"}, + "Classifier":{ + "type":"structure", + "members":{ + "GrokClassifier":{"shape":"GrokClassifier"}, + "XMLClassifier":{"shape":"XMLClassifier"} + } + }, + "ClassifierList":{ + "type":"list", + "member":{"shape":"Classifier"} + }, + "ClassifierNameList":{ + "type":"list", + "member":{"shape":"NameString"} + }, + "CodeGenArgName":{"type":"string"}, + "CodeGenArgValue":{"type":"string"}, + "CodeGenEdge":{ + "type":"structure", + "required":[ + "Source", + "Target" + ], + "members":{ + "Source":{"shape":"CodeGenIdentifier"}, + "Target":{"shape":"CodeGenIdentifier"}, + "TargetParameter":{"shape":"CodeGenArgName"} + } + }, + "CodeGenIdentifier":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[A-Za-z_][A-Za-z0-9_]*" + }, + "CodeGenNode":{ + "type":"structure", + "required":[ + "Id", + "NodeType", + "Args" + ], + "members":{ + "Id":{"shape":"CodeGenIdentifier"}, + "NodeType":{"shape":"CodeGenNodeType"}, + "Args":{"shape":"CodeGenNodeArgs"}, + "LineNumber":{"shape":"Integer"} + } + }, + "CodeGenNodeArg":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{"shape":"CodeGenArgName"}, + "Value":{"shape":"CodeGenArgValue"}, + "Param":{"shape":"Boolean"} + } + }, + "CodeGenNodeArgs":{ + "type":"list", + "member":{"shape":"CodeGenNodeArg"}, + "max":50, + "min":0 + }, + "CodeGenNodeType":{"type":"string"}, + "Column":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"}, + "Type":{"shape":"ColumnTypeString"}, + "Comment":{"shape":"CommentString"} + } + }, + "ColumnList":{ + "type":"list", + "member":{"shape":"Column"} + }, + "ColumnTypeString":{ + "type":"string", + "max":131072, + "min":0, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "ColumnValueStringList":{ + "type":"list", + "member":{"shape":"ColumnValuesString"} + }, + "ColumnValuesString":{"type":"string"}, + "CommentString":{ + "type":"string", + "max":255, + "min":0, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "ConcurrentModificationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "ConcurrentRunsExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "Condition":{ + "type":"structure", + "members":{ + "LogicalOperator":{"shape":"LogicalOperator"}, + "JobName":{"shape":"NameString"}, + "State":{"shape":"JobRunState"} + } + }, + "ConditionList":{ + "type":"list", + "member":{"shape":"Condition"} + }, + "Connection":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"}, + "Description":{"shape":"DescriptionString"}, + "ConnectionType":{"shape":"ConnectionType"}, + "MatchCriteria":{"shape":"MatchCriteria"}, + "ConnectionProperties":{"shape":"ConnectionProperties"}, + "PhysicalConnectionRequirements":{"shape":"PhysicalConnectionRequirements"}, + "CreationTime":{"shape":"Timestamp"}, + "LastUpdatedTime":{"shape":"Timestamp"}, + "LastUpdatedBy":{"shape":"NameString"} + } + }, + "ConnectionInput":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"}, + "Description":{"shape":"DescriptionString"}, + "ConnectionType":{"shape":"ConnectionType"}, + "MatchCriteria":{"shape":"MatchCriteria"}, + "ConnectionProperties":{"shape":"ConnectionProperties"}, + "PhysicalConnectionRequirements":{"shape":"PhysicalConnectionRequirements"} + } + }, + "ConnectionList":{ + "type":"list", + "member":{"shape":"Connection"} + }, + "ConnectionName":{"type":"string"}, + "ConnectionProperties":{ + "type":"map", + "key":{"shape":"ConnectionPropertyKey"}, + "value":{"shape":"ValueString"}, + "max":100, + "min":0 + }, + "ConnectionPropertyKey":{ + "type":"string", + "enum":[ + "HOST", + "PORT", + "USERNAME", + "PASSWORD", + "JDBC_DRIVER_JAR_URI", + "JDBC_DRIVER_CLASS_NAME", + "JDBC_ENGINE", + "JDBC_ENGINE_VERSION", + "CONFIG_FILES", + "INSTANCE_ID", + "JDBC_CONNECTION_URL" + ] + }, + "ConnectionType":{ + "type":"string", + "enum":[ + "JDBC", + "SFTP" + ] + }, + "ConnectionsList":{ + "type":"structure", + "members":{ + "Connections":{"shape":"StringList"} + } + }, + "Crawler":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"}, + "Role":{"shape":"Role"}, + "Targets":{"shape":"CrawlerTargets"}, + "DatabaseName":{"shape":"DatabaseName"}, + "Description":{"shape":"DescriptionString"}, + "Classifiers":{"shape":"ClassifierNameList"}, + "SchemaChangePolicy":{"shape":"SchemaChangePolicy"}, + "State":{"shape":"CrawlerState"}, + "TablePrefix":{"shape":"TablePrefix"}, + "Schedule":{"shape":"Schedule"}, + "CrawlElapsedTime":{"shape":"MillisecondsCount"}, + "CreationTime":{"shape":"Timestamp"}, + "LastUpdated":{"shape":"Timestamp"}, + "LastCrawl":{"shape":"LastCrawlInfo"}, + "Version":{"shape":"VersionId"}, + "Configuration":{"shape":"CrawlerConfiguration"} + } + }, + "CrawlerConfiguration":{"type":"string"}, + "CrawlerList":{ + "type":"list", + "member":{"shape":"Crawler"} + }, + "CrawlerMetrics":{ + "type":"structure", + "members":{ + "CrawlerName":{"shape":"NameString"}, + "TimeLeftSeconds":{"shape":"NonNegativeDouble"}, + "StillEstimating":{"shape":"Boolean"}, + "LastRuntimeSeconds":{"shape":"NonNegativeDouble"}, + "MedianRuntimeSeconds":{"shape":"NonNegativeDouble"}, + "TablesCreated":{"shape":"NonNegativeInteger"}, + "TablesUpdated":{"shape":"NonNegativeInteger"}, + "TablesDeleted":{"shape":"NonNegativeInteger"} + } + }, + "CrawlerMetricsList":{ + "type":"list", + "member":{"shape":"CrawlerMetrics"} + }, + "CrawlerNameList":{ + "type":"list", + "member":{"shape":"NameString"}, + "max":100, + "min":0 + }, + "CrawlerNotRunningException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "CrawlerRunningException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "CrawlerState":{ + "type":"string", + "enum":[ + "READY", + "RUNNING", + "STOPPING" + ] + }, + "CrawlerStoppingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "CrawlerTargets":{ + "type":"structure", + "members":{ + "S3Targets":{"shape":"S3TargetList"}, + "JdbcTargets":{"shape":"JdbcTargetList"} + } + }, + "CreateClassifierRequest":{ + "type":"structure", + "members":{ + "GrokClassifier":{"shape":"CreateGrokClassifierRequest"}, + "XMLClassifier":{"shape":"CreateXMLClassifierRequest"} + } + }, + "CreateClassifierResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateConnectionRequest":{ + "type":"structure", + "required":["ConnectionInput"], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "ConnectionInput":{"shape":"ConnectionInput"} + } + }, + "CreateConnectionResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateCrawlerRequest":{ + "type":"structure", + "required":[ + "Name", + "Role", + "DatabaseName", + "Targets" + ], + "members":{ + "Name":{"shape":"NameString"}, + "Role":{"shape":"Role"}, + "DatabaseName":{"shape":"DatabaseName"}, + "Description":{"shape":"DescriptionString"}, + "Targets":{"shape":"CrawlerTargets"}, + "Schedule":{"shape":"CronExpression"}, + "Classifiers":{"shape":"ClassifierNameList"}, + "TablePrefix":{"shape":"TablePrefix"}, + "SchemaChangePolicy":{"shape":"SchemaChangePolicy"}, + "Configuration":{"shape":"CrawlerConfiguration"} + } + }, + "CreateCrawlerResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateDatabaseRequest":{ + "type":"structure", + "required":["DatabaseInput"], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseInput":{"shape":"DatabaseInput"} + } + }, + "CreateDatabaseResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateDevEndpointRequest":{ + "type":"structure", + "required":[ + "EndpointName", + "RoleArn", + "PublicKey" + ], + "members":{ + "EndpointName":{"shape":"GenericString"}, + "RoleArn":{"shape":"RoleArn"}, + "SecurityGroupIds":{"shape":"StringList"}, + "SubnetId":{"shape":"GenericString"}, + "PublicKey":{"shape":"GenericString"}, + "NumberOfNodes":{"shape":"IntegerValue"}, + "ExtraPythonLibsS3Path":{"shape":"GenericString"}, + "ExtraJarsS3Path":{"shape":"GenericString"} + } + }, + "CreateDevEndpointResponse":{ + "type":"structure", + "members":{ + "EndpointName":{"shape":"GenericString"}, + "Status":{"shape":"GenericString"}, + "SecurityGroupIds":{"shape":"StringList"}, + "SubnetId":{"shape":"GenericString"}, + "RoleArn":{"shape":"RoleArn"}, + "YarnEndpointAddress":{"shape":"GenericString"}, + "ZeppelinRemoteSparkInterpreterPort":{"shape":"IntegerValue"}, + "NumberOfNodes":{"shape":"IntegerValue"}, + "AvailabilityZone":{"shape":"GenericString"}, + "VpcId":{"shape":"GenericString"}, + "ExtraPythonLibsS3Path":{"shape":"GenericString"}, + "ExtraJarsS3Path":{"shape":"GenericString"}, + "FailureReason":{"shape":"GenericString"}, + "CreatedTimestamp":{"shape":"TimestampValue"} + } + }, + "CreateGrokClassifierRequest":{ + "type":"structure", + "required":[ + "Classification", + "Name", + "GrokPattern" + ], + "members":{ + "Classification":{"shape":"Classification"}, + "Name":{"shape":"NameString"}, + "GrokPattern":{"shape":"GrokPattern"}, + "CustomPatterns":{"shape":"CustomPatterns"} + } + }, + "CreateJobRequest":{ + "type":"structure", + "required":[ + "Name", + "Role", + "Command" + ], + "members":{ + "Name":{"shape":"NameString"}, + "Description":{"shape":"DescriptionString"}, + "LogUri":{"shape":"UriString"}, + "Role":{"shape":"RoleString"}, + "ExecutionProperty":{"shape":"ExecutionProperty"}, + "Command":{"shape":"JobCommand"}, + "DefaultArguments":{"shape":"GenericMap"}, + "Connections":{"shape":"ConnectionsList"}, + "MaxRetries":{"shape":"MaxRetries"}, + "AllocatedCapacity":{"shape":"IntegerValue"} + } + }, + "CreateJobResponse":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"} + } + }, + "CreatePartitionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableName", + "PartitionInput" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"}, + "PartitionInput":{"shape":"PartitionInput"} + } + }, + "CreatePartitionResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateScriptRequest":{ + "type":"structure", + "members":{ + "DagNodes":{"shape":"DagNodes"}, + "DagEdges":{"shape":"DagEdges"} + } + }, + "CreateScriptResponse":{ + "type":"structure", + "members":{ + "PythonScript":{"shape":"PythonScript"} + } + }, + "CreateTableRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableInput" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableInput":{"shape":"TableInput"} + } + }, + "CreateTableResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateTriggerRequest":{ + "type":"structure", + "required":[ + "Name", + "Type", + "Actions" + ], + "members":{ + "Name":{"shape":"NameString"}, + "Type":{"shape":"TriggerType"}, + "Schedule":{"shape":"GenericString"}, + "Predicate":{"shape":"Predicate"}, + "Actions":{"shape":"ActionList"}, + "Description":{"shape":"DescriptionString"} + } + }, + "CreateTriggerResponse":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"} + } + }, + "CreateUserDefinedFunctionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "FunctionInput" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "FunctionInput":{"shape":"UserDefinedFunctionInput"} + } + }, + "CreateUserDefinedFunctionResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateXMLClassifierRequest":{ + "type":"structure", + "required":[ + "Classification", + "Name" + ], + "members":{ + "Classification":{"shape":"Classification"}, + "Name":{"shape":"NameString"}, + "RowTag":{"shape":"RowTag"} + } + }, + "CronExpression":{"type":"string"}, + "CustomPatterns":{ + "type":"string", + "max":16000, + "min":0, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "DagEdges":{ + "type":"list", + "member":{"shape":"CodeGenEdge"} + }, + "DagNodes":{ + "type":"list", + "member":{"shape":"CodeGenNode"} + }, + "Database":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"}, + "Description":{"shape":"DescriptionString"}, + "LocationUri":{"shape":"URI"}, + "Parameters":{"shape":"ParametersMap"}, + "CreateTime":{"shape":"Timestamp"} + } + }, + "DatabaseInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"}, + "Description":{"shape":"DescriptionString"}, + "LocationUri":{"shape":"URI"}, + "Parameters":{"shape":"ParametersMap"} + } + }, + "DatabaseList":{ + "type":"list", + "member":{"shape":"Database"} + }, + "DatabaseName":{"type":"string"}, + "DeleteBehavior":{ + "type":"string", + "enum":[ + "LOG", + "DELETE_FROM_DATABASE", + "DEPRECATE_IN_DATABASE" + ] + }, + "DeleteClassifierRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"} + } + }, + "DeleteClassifierResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteConnectionNameList":{ + "type":"list", + "member":{"shape":"NameString"}, + "max":25, + "min":0 + }, + "DeleteConnectionRequest":{ + "type":"structure", + "required":["ConnectionName"], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "ConnectionName":{"shape":"NameString"} + } + }, + "DeleteConnectionResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteCrawlerRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"} + } + }, + "DeleteCrawlerResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteDatabaseRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "Name":{"shape":"NameString"} + } + }, + "DeleteDatabaseResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteDevEndpointRequest":{ + "type":"structure", + "required":["EndpointName"], + "members":{ + "EndpointName":{"shape":"GenericString"} + } + }, + "DeleteDevEndpointResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteJobRequest":{ + "type":"structure", + "required":["JobName"], + "members":{ + "JobName":{"shape":"NameString"} + } + }, + "DeleteJobResponse":{ + "type":"structure", + "members":{ + "JobName":{"shape":"NameString"} + } + }, + "DeletePartitionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableName", + "PartitionValues" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"}, + "PartitionValues":{"shape":"ValueStringList"} + } + }, + "DeletePartitionResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteTableRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "Name" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "Name":{"shape":"NameString"} + } + }, + "DeleteTableResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteTriggerRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"} + } + }, + "DeleteTriggerResponse":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"} + } + }, + "DeleteUserDefinedFunctionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "FunctionName" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "FunctionName":{"shape":"NameString"} + } + }, + "DeleteUserDefinedFunctionResponse":{ + "type":"structure", + "members":{ + } + }, + "DescriptionString":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "DescriptionStringRemovable":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "DevEndpoint":{ + "type":"structure", + "members":{ + "EndpointName":{"shape":"GenericString"}, + "RoleArn":{"shape":"RoleArn"}, + "SecurityGroupIds":{"shape":"StringList"}, + "SubnetId":{"shape":"GenericString"}, + "YarnEndpointAddress":{"shape":"GenericString"}, + "ZeppelinRemoteSparkInterpreterPort":{"shape":"IntegerValue"}, + "PublicAddress":{"shape":"GenericString"}, + "Status":{"shape":"GenericString"}, + "NumberOfNodes":{"shape":"IntegerValue"}, + "AvailabilityZone":{"shape":"GenericString"}, + "VpcId":{"shape":"GenericString"}, + "ExtraPythonLibsS3Path":{"shape":"GenericString"}, + "ExtraJarsS3Path":{"shape":"GenericString"}, + "FailureReason":{"shape":"GenericString"}, + "LastUpdateStatus":{"shape":"GenericString"}, + "CreatedTimestamp":{"shape":"TimestampValue"}, + "LastModifiedTimestamp":{"shape":"TimestampValue"}, + "PublicKey":{"shape":"GenericString"} + } + }, + "DevEndpointCustomLibraries":{ + "type":"structure", + "members":{ + "ExtraPythonLibsS3Path":{"shape":"GenericString"}, + "ExtraJarsS3Path":{"shape":"GenericString"} + } + }, + "DevEndpointList":{ + "type":"list", + "member":{"shape":"DevEndpoint"} + }, + "EntityNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "ErrorByName":{ + "type":"map", + "key":{"shape":"NameString"}, + "value":{"shape":"ErrorDetail"} + }, + "ErrorDetail":{ + "type":"structure", + "members":{ + "ErrorCode":{"shape":"NameString"}, + "ErrorMessage":{"shape":"DescriptionString"} + } + }, + "ErrorString":{"type":"string"}, + "ExecutionProperty":{ + "type":"structure", + "members":{ + "MaxConcurrentRuns":{"shape":"MaxConcurrentRuns"} + } + }, + "FieldType":{"type":"string"}, + "FilterString":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "FormatString":{ + "type":"string", + "max":128, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "GenericMap":{ + "type":"map", + "key":{"shape":"GenericString"}, + "value":{"shape":"GenericString"} + }, + "GenericString":{"type":"string"}, + "GetCatalogImportStatusRequest":{ + "type":"structure", + "members":{ + "CatalogId":{"shape":"CatalogIdString"} + } + }, + "GetCatalogImportStatusResponse":{ + "type":"structure", + "members":{ + "ImportStatus":{"shape":"CatalogImportStatus"} + } + }, + "GetClassifierRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"} + } + }, + "GetClassifierResponse":{ + "type":"structure", + "members":{ + "Classifier":{"shape":"Classifier"} + } + }, + "GetClassifiersRequest":{ + "type":"structure", + "members":{ + "MaxResults":{"shape":"PageSize"}, + "NextToken":{"shape":"Token"} + } + }, + "GetClassifiersResponse":{ + "type":"structure", + "members":{ + "Classifiers":{"shape":"ClassifierList"}, + "NextToken":{"shape":"Token"} + } + }, + "GetConnectionRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "Name":{"shape":"NameString"} + } + }, + "GetConnectionResponse":{ + "type":"structure", + "members":{ + "Connection":{"shape":"Connection"} + } + }, + "GetConnectionsFilter":{ + "type":"structure", + "members":{ + "MatchCriteria":{"shape":"MatchCriteria"}, + "ConnectionType":{"shape":"ConnectionType"} + } + }, + "GetConnectionsRequest":{ + "type":"structure", + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "Filter":{"shape":"GetConnectionsFilter"}, + "NextToken":{"shape":"Token"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetConnectionsResponse":{ + "type":"structure", + "members":{ + "ConnectionList":{"shape":"ConnectionList"}, + "NextToken":{"shape":"Token"} + } + }, + "GetCrawlerMetricsRequest":{ + "type":"structure", + "members":{ + "CrawlerNameList":{"shape":"CrawlerNameList"}, + "MaxResults":{"shape":"PageSize"}, + "NextToken":{"shape":"Token"} + } + }, + "GetCrawlerMetricsResponse":{ + "type":"structure", + "members":{ + "CrawlerMetricsList":{"shape":"CrawlerMetricsList"}, + "NextToken":{"shape":"Token"} + } + }, + "GetCrawlerRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"} + } + }, + "GetCrawlerResponse":{ + "type":"structure", + "members":{ + "Crawler":{"shape":"Crawler"} + } + }, + "GetCrawlersRequest":{ + "type":"structure", + "members":{ + "MaxResults":{"shape":"PageSize"}, + "NextToken":{"shape":"Token"} + } + }, + "GetCrawlersResponse":{ + "type":"structure", + "members":{ + "Crawlers":{"shape":"CrawlerList"}, + "NextToken":{"shape":"Token"} + } + }, + "GetDatabaseRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "Name":{"shape":"NameString"} + } + }, + "GetDatabaseResponse":{ + "type":"structure", + "members":{ + "Database":{"shape":"Database"} + } + }, + "GetDatabasesRequest":{ + "type":"structure", + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "NextToken":{"shape":"Token"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetDatabasesResponse":{ + "type":"structure", + "required":["DatabaseList"], + "members":{ + "DatabaseList":{"shape":"DatabaseList"}, + "NextToken":{"shape":"Token"} + } + }, + "GetDataflowGraphRequest":{ + "type":"structure", + "members":{ + "PythonScript":{"shape":"PythonScript"} + } + }, + "GetDataflowGraphResponse":{ + "type":"structure", + "members":{ + "DagNodes":{"shape":"DagNodes"}, + "DagEdges":{"shape":"DagEdges"} + } + }, + "GetDevEndpointRequest":{ + "type":"structure", + "required":["EndpointName"], + "members":{ + "EndpointName":{"shape":"GenericString"} + } + }, + "GetDevEndpointResponse":{ + "type":"structure", + "members":{ + "DevEndpoint":{"shape":"DevEndpoint"} + } + }, + "GetDevEndpointsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{"shape":"PageSize"}, + "NextToken":{"shape":"GenericString"} + } + }, + "GetDevEndpointsResponse":{ + "type":"structure", + "members":{ + "DevEndpoints":{"shape":"DevEndpointList"}, + "NextToken":{"shape":"GenericString"} + } + }, + "GetJobRequest":{ + "type":"structure", + "required":["JobName"], + "members":{ + "JobName":{"shape":"NameString"} + } + }, + "GetJobResponse":{ + "type":"structure", + "members":{ + "Job":{"shape":"Job"} + } + }, + "GetJobRunRequest":{ + "type":"structure", + "required":[ + "JobName", + "RunId" + ], + "members":{ + "JobName":{"shape":"NameString"}, + "RunId":{"shape":"IdString"}, + "PredecessorsIncluded":{"shape":"BooleanValue"} + } + }, + "GetJobRunResponse":{ + "type":"structure", + "members":{ + "JobRun":{"shape":"JobRun"} + } + }, + "GetJobRunsRequest":{ + "type":"structure", + "required":["JobName"], + "members":{ + "JobName":{"shape":"NameString"}, + "NextToken":{"shape":"GenericString"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetJobRunsResponse":{ + "type":"structure", + "members":{ + "JobRuns":{"shape":"JobRunList"}, + "NextToken":{"shape":"GenericString"} + } + }, + "GetJobsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"GenericString"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetJobsResponse":{ + "type":"structure", + "members":{ + "Jobs":{"shape":"JobList"}, + "NextToken":{"shape":"GenericString"} + } + }, + "GetMappingRequest":{ + "type":"structure", + "required":["Source"], + "members":{ + "Source":{"shape":"CatalogEntry"}, + "Sinks":{"shape":"CatalogEntries"}, + "Location":{"shape":"Location"} + } + }, + "GetMappingResponse":{ + "type":"structure", + "required":["Mapping"], + "members":{ + "Mapping":{"shape":"MappingList"} + } + }, + "GetPartitionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableName", + "PartitionValues" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"}, + "PartitionValues":{"shape":"ValueStringList"} + } + }, + "GetPartitionResponse":{ + "type":"structure", + "members":{ + "Partition":{"shape":"Partition"} + } + }, + "GetPartitionsRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableName" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"}, + "Expression":{"shape":"PredicateString"}, + "NextToken":{"shape":"Token"}, + "Segment":{"shape":"Segment"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetPartitionsResponse":{ + "type":"structure", + "members":{ + "Partitions":{"shape":"PartitionList"}, + "NextToken":{"shape":"Token"} + } + }, + "GetPlanRequest":{ + "type":"structure", + "required":[ + "Mapping", + "Source" + ], + "members":{ + "Mapping":{"shape":"MappingList"}, + "Source":{"shape":"CatalogEntry"}, + "Sinks":{"shape":"CatalogEntries"}, + "Location":{"shape":"Location"} + } + }, + "GetPlanResponse":{ + "type":"structure", + "members":{ + "PythonScript":{"shape":"PythonScript"} + } + }, + "GetTableRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "Name" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "Name":{"shape":"NameString"} + } + }, + "GetTableResponse":{ + "type":"structure", + "members":{ + "Table":{"shape":"Table"} + } + }, + "GetTableVersionsList":{ + "type":"list", + "member":{"shape":"TableVersion"} + }, + "GetTableVersionsRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableName" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"}, + "NextToken":{"shape":"Token"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetTableVersionsResponse":{ + "type":"structure", + "members":{ + "TableVersions":{"shape":"GetTableVersionsList"}, + "NextToken":{"shape":"Token"} + } + }, + "GetTablesRequest":{ + "type":"structure", + "required":["DatabaseName"], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "Expression":{"shape":"FilterString"}, + "NextToken":{"shape":"Token"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetTablesResponse":{ + "type":"structure", + "members":{ + "TableList":{"shape":"TableList"}, + "NextToken":{"shape":"Token"} + } + }, + "GetTriggerRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"} + } + }, + "GetTriggerResponse":{ + "type":"structure", + "members":{ + "Trigger":{"shape":"Trigger"} + } + }, + "GetTriggersRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"GenericString"}, + "DependentJobName":{"shape":"NameString"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetTriggersResponse":{ + "type":"structure", + "members":{ + "Triggers":{"shape":"TriggerList"}, + "NextToken":{"shape":"GenericString"} + } + }, + "GetUserDefinedFunctionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "FunctionName" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "FunctionName":{"shape":"NameString"} + } + }, + "GetUserDefinedFunctionResponse":{ + "type":"structure", + "members":{ + "UserDefinedFunction":{"shape":"UserDefinedFunction"} + } + }, + "GetUserDefinedFunctionsRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "Pattern" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "Pattern":{"shape":"NameString"}, + "NextToken":{"shape":"Token"}, + "MaxResults":{"shape":"PageSize"} + } + }, + "GetUserDefinedFunctionsResponse":{ + "type":"structure", + "members":{ + "UserDefinedFunctions":{"shape":"UserDefinedFunctionList"}, + "NextToken":{"shape":"Token"} + } + }, + "GrokClassifier":{ + "type":"structure", + "required":[ + "Name", + "Classification", + "GrokPattern" + ], + "members":{ + "Name":{"shape":"NameString"}, + "Classification":{"shape":"Classification"}, + "CreationTime":{"shape":"Timestamp"}, + "LastUpdated":{"shape":"Timestamp"}, + "Version":{"shape":"VersionId"}, + "GrokPattern":{"shape":"GrokPattern"}, + "CustomPatterns":{"shape":"CustomPatterns"} + } + }, + "GrokPattern":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\t]*" + }, + "IdString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "IdempotentParameterMismatchException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "ImportCatalogToGlueRequest":{ + "type":"structure", + "members":{ + "CatalogId":{"shape":"CatalogIdString"} + } + }, + "ImportCatalogToGlueResponse":{ + "type":"structure", + "members":{ + } + }, + "Integer":{"type":"integer"}, + "IntegerFlag":{ + "type":"integer", + "max":1, + "min":0 + }, + "IntegerValue":{"type":"integer"}, + "InternalServiceException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true, + "fault":true + }, + "InvalidInputException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "JdbcTarget":{ + "type":"structure", + "members":{ + "ConnectionName":{"shape":"ConnectionName"}, + "Path":{"shape":"Path"}, + "Exclusions":{"shape":"PathList"} + } + }, + "JdbcTargetList":{ + "type":"list", + "member":{"shape":"JdbcTarget"} + }, + "Job":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"}, + "Description":{"shape":"DescriptionString"}, + "LogUri":{"shape":"UriString"}, + "Role":{"shape":"RoleString"}, + "CreatedOn":{"shape":"TimestampValue"}, + "LastModifiedOn":{"shape":"TimestampValue"}, + "ExecutionProperty":{"shape":"ExecutionProperty"}, + "Command":{"shape":"JobCommand"}, + "DefaultArguments":{"shape":"GenericMap"}, + "Connections":{"shape":"ConnectionsList"}, + "MaxRetries":{"shape":"MaxRetries"}, + "AllocatedCapacity":{"shape":"IntegerValue"} + } + }, + "JobBookmarkEntry":{ + "type":"structure", + "members":{ + "JobName":{"shape":"JobName"}, + "Version":{"shape":"IntegerValue"}, + "Run":{"shape":"IntegerValue"}, + "Attempt":{"shape":"IntegerValue"}, + "JobBookmark":{"shape":"JsonValue"} + } + }, + "JobCommand":{ + "type":"structure", + "members":{ + "Name":{"shape":"GenericString"}, + "ScriptLocation":{"shape":"ScriptLocationString"} + } + }, + "JobList":{ + "type":"list", + "member":{"shape":"Job"} + }, + "JobName":{"type":"string"}, + "JobRun":{ + "type":"structure", + "members":{ + "Id":{"shape":"IdString"}, + "Attempt":{"shape":"AttemptCount"}, + "PreviousRunId":{"shape":"IdString"}, + "TriggerName":{"shape":"NameString"}, + "JobName":{"shape":"NameString"}, + "StartedOn":{"shape":"TimestampValue"}, + "LastModifiedOn":{"shape":"TimestampValue"}, + "CompletedOn":{"shape":"TimestampValue"}, + "JobRunState":{"shape":"JobRunState"}, + "Arguments":{"shape":"GenericMap"}, + "ErrorMessage":{"shape":"ErrorString"}, + "PredecessorRuns":{"shape":"PredecessorList"}, + "AllocatedCapacity":{"shape":"IntegerValue"} + } + }, + "JobRunList":{ + "type":"list", + "member":{"shape":"JobRun"} + }, + "JobRunState":{ + "type":"string", + "enum":[ + "STARTING", + "RUNNING", + "STOPPING", + "STOPPED", + "SUCCEEDED", + "FAILED" + ] + }, + "JobUpdate":{ + "type":"structure", + "members":{ + "Description":{"shape":"DescriptionString"}, + "LogUri":{"shape":"UriString"}, + "Role":{"shape":"RoleString"}, + "ExecutionProperty":{"shape":"ExecutionProperty"}, + "Command":{"shape":"JobCommand"}, + "DefaultArguments":{"shape":"GenericMap"}, + "Connections":{"shape":"ConnectionsList"}, + "MaxRetries":{"shape":"MaxRetries"}, + "AllocatedCapacity":{"shape":"IntegerValue"} + } + }, + "JsonValue":{"type":"string"}, + "KeyString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "LastCrawlInfo":{ + "type":"structure", + "members":{ + "Status":{"shape":"LastCrawlStatus"}, + "ErrorMessage":{"shape":"DescriptionString"}, + "LogGroup":{"shape":"LogGroup"}, + "LogStream":{"shape":"LogStream"}, + "MessagePrefix":{"shape":"MessagePrefix"}, + "StartTime":{"shape":"Timestamp"} + } + }, + "LastCrawlStatus":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "CANCELLED", + "FAILED" + ] + }, + "Location":{ + "type":"structure", + "members":{ + "Jdbc":{"shape":"CodeGenNodeArgs"}, + "S3":{"shape":"CodeGenNodeArgs"} + } + }, + "LocationMap":{ + "type":"map", + "key":{"shape":"ColumnValuesString"}, + "value":{"shape":"ColumnValuesString"} + }, + "LocationString":{ + "type":"string", + "max":2056, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "LogGroup":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\.\\-_/#A-Za-z0-9]+" + }, + "LogStream":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[^:*]*" + }, + "Logical":{ + "type":"string", + "enum":["AND"] + }, + "LogicalOperator":{ + "type":"string", + "enum":["EQUALS"] + }, + "MappingEntry":{ + "type":"structure", + "members":{ + "SourceTable":{"shape":"TableName"}, + "SourcePath":{"shape":"SchemaPathString"}, + "SourceType":{"shape":"FieldType"}, + "TargetTable":{"shape":"TableName"}, + "TargetPath":{"shape":"SchemaPathString"}, + "TargetType":{"shape":"FieldType"} + } + }, + "MappingList":{ + "type":"list", + "member":{"shape":"MappingEntry"} + }, + "MatchCriteria":{ + "type":"list", + "member":{"shape":"NameString"}, + "max":10, + "min":0 + }, + "MaxConcurrentRuns":{"type":"integer"}, + "MaxRetries":{"type":"integer"}, + "MessagePrefix":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "MessageString":{"type":"string"}, + "MillisecondsCount":{"type":"long"}, + "NameString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "NameStringList":{ + "type":"list", + "member":{"shape":"NameString"} + }, + "NoScheduleException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "NonNegativeDouble":{ + "type":"double", + "min":0.0 + }, + "NonNegativeInteger":{ + "type":"integer", + "min":0 + }, + "OperationTimeoutException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "Order":{ + "type":"structure", + "required":[ + "Column", + "SortOrder" + ], + "members":{ + "Column":{"shape":"NameString"}, + "SortOrder":{"shape":"IntegerFlag"} + } + }, + "OrderList":{ + "type":"list", + "member":{"shape":"Order"} + }, + "PageSize":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ParametersMap":{ + "type":"map", + "key":{"shape":"KeyString"}, + "value":{"shape":"ParametersMapValue"} + }, + "ParametersMapValue":{ + "type":"string", + "max":51200 + }, + "Partition":{ + "type":"structure", + "members":{ + "Values":{"shape":"ValueStringList"}, + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"}, + "CreationTime":{"shape":"Timestamp"}, + "LastAccessTime":{"shape":"Timestamp"}, + "StorageDescriptor":{"shape":"StorageDescriptor"}, + "Parameters":{"shape":"ParametersMap"}, + "LastAnalyzedTime":{"shape":"Timestamp"} + } + }, + "PartitionError":{ + "type":"structure", + "members":{ + "PartitionValues":{"shape":"ValueStringList"}, + "ErrorDetail":{"shape":"ErrorDetail"} + } + }, + "PartitionErrors":{ + "type":"list", + "member":{"shape":"PartitionError"} + }, + "PartitionInput":{ + "type":"structure", + "members":{ + "Values":{"shape":"ValueStringList"}, + "LastAccessTime":{"shape":"Timestamp"}, + "StorageDescriptor":{"shape":"StorageDescriptor"}, + "Parameters":{"shape":"ParametersMap"}, + "LastAnalyzedTime":{"shape":"Timestamp"} + } + }, + "PartitionInputList":{ + "type":"list", + "member":{"shape":"PartitionInput"}, + "max":100, + "min":0 + }, + "PartitionList":{ + "type":"list", + "member":{"shape":"Partition"} + }, + "PartitionValueList":{ + "type":"structure", + "required":["Values"], + "members":{ + "Values":{"shape":"ValueStringList"} + } + }, + "Path":{"type":"string"}, + "PathList":{ + "type":"list", + "member":{"shape":"Path"} + }, + "PhysicalConnectionRequirements":{ + "type":"structure", + "members":{ + "SubnetId":{"shape":"NameString"}, + "SecurityGroupIdList":{"shape":"SecurityGroupIdList"}, + "AvailabilityZone":{"shape":"NameString"} + } + }, + "Predecessor":{ + "type":"structure", + "members":{ + "JobName":{"shape":"NameString"}, + "RunId":{"shape":"IdString"} + } + }, + "PredecessorList":{ + "type":"list", + "member":{"shape":"Predecessor"} + }, + "Predicate":{ + "type":"structure", + "members":{ + "Logical":{"shape":"Logical"}, + "Conditions":{"shape":"ConditionList"} + } + }, + "PredicateString":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "PrincipalType":{ + "type":"string", + "enum":[ + "USER", + "ROLE", + "GROUP" + ] + }, + "PythonScript":{"type":"string"}, + "ResetJobBookmarkRequest":{ + "type":"structure", + "required":["JobName"], + "members":{ + "JobName":{"shape":"JobName"} + } + }, + "ResetJobBookmarkResponse":{ + "type":"structure", + "members":{ + "JobBookmarkEntry":{"shape":"JobBookmarkEntry"} + } + }, + "ResourceNumberLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "ResourceType":{ + "type":"string", + "enum":[ + "JAR", + "FILE", + "ARCHIVE" + ] + }, + "ResourceUri":{ + "type":"structure", + "members":{ + "ResourceType":{"shape":"ResourceType"}, + "Uri":{"shape":"URI"} + } + }, + "ResourceUriList":{ + "type":"list", + "member":{"shape":"ResourceUri"}, + "max":1000, + "min":0 + }, + "Role":{"type":"string"}, + "RoleArn":{ + "type":"string", + "pattern":"arn:aws:iam::\\d{12}:role/.*" + }, + "RoleString":{"type":"string"}, + "RowTag":{"type":"string"}, + "S3Target":{ + "type":"structure", + "members":{ + "Path":{"shape":"Path"}, + "Exclusions":{"shape":"PathList"} + } + }, + "S3TargetList":{ + "type":"list", + "member":{"shape":"S3Target"} + }, + "Schedule":{ + "type":"structure", + "members":{ + "ScheduleExpression":{"shape":"CronExpression"}, + "State":{"shape":"ScheduleState"} + } + }, + "ScheduleState":{ + "type":"string", + "enum":[ + "SCHEDULED", + "NOT_SCHEDULED", + "TRANSITIONING" + ] + }, + "SchedulerNotRunningException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "SchedulerRunningException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "SchedulerTransitioningException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "SchemaChangePolicy":{ + "type":"structure", + "members":{ + "UpdateBehavior":{"shape":"UpdateBehavior"}, + "DeleteBehavior":{"shape":"DeleteBehavior"} + } + }, + "SchemaPathString":{"type":"string"}, + "ScriptLocationString":{"type":"string"}, + "SecurityGroupIdList":{ + "type":"list", + "member":{"shape":"NameString"}, + "max":50, + "min":0 + }, + "Segment":{ + "type":"structure", + "required":[ + "SegmentNumber", + "TotalSegments" + ], + "members":{ + "SegmentNumber":{"shape":"NonNegativeInteger"}, + "TotalSegments":{"shape":"TotalSegmentsInteger"} + } + }, + "SerDeInfo":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"}, + "SerializationLibrary":{"shape":"NameString"}, + "Parameters":{"shape":"ParametersMap"} + } + }, + "SkewedInfo":{ + "type":"structure", + "members":{ + "SkewedColumnNames":{"shape":"NameStringList"}, + "SkewedColumnValues":{"shape":"ColumnValueStringList"}, + "SkewedColumnValueLocationMaps":{"shape":"LocationMap"} + } + }, + "StartCrawlerRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"} + } + }, + "StartCrawlerResponse":{ + "type":"structure", + "members":{ + } + }, + "StartCrawlerScheduleRequest":{ + "type":"structure", + "required":["CrawlerName"], + "members":{ + "CrawlerName":{"shape":"NameString"} + } + }, + "StartCrawlerScheduleResponse":{ + "type":"structure", + "members":{ + } + }, + "StartJobRunRequest":{ + "type":"structure", + "required":["JobName"], + "members":{ + "JobName":{"shape":"NameString"}, + "JobRunId":{"shape":"IdString"}, + "Arguments":{"shape":"GenericMap"}, + "AllocatedCapacity":{"shape":"IntegerValue"} + } + }, + "StartJobRunResponse":{ + "type":"structure", + "members":{ + "JobRunId":{"shape":"IdString"} + } + }, + "StartTriggerRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"} + } + }, + "StartTriggerResponse":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"} + } + }, + "StopCrawlerRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"} + } + }, + "StopCrawlerResponse":{ + "type":"structure", + "members":{ + } + }, + "StopCrawlerScheduleRequest":{ + "type":"structure", + "required":["CrawlerName"], + "members":{ + "CrawlerName":{"shape":"NameString"} + } + }, + "StopCrawlerScheduleResponse":{ + "type":"structure", + "members":{ + } + }, + "StopTriggerRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"} + } + }, + "StopTriggerResponse":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"} + } + }, + "StorageDescriptor":{ + "type":"structure", + "members":{ + "Columns":{"shape":"ColumnList"}, + "Location":{"shape":"LocationString"}, + "InputFormat":{"shape":"FormatString"}, + "OutputFormat":{"shape":"FormatString"}, + "Compressed":{"shape":"Boolean"}, + "NumberOfBuckets":{"shape":"Integer"}, + "SerdeInfo":{"shape":"SerDeInfo"}, + "BucketColumns":{"shape":"NameStringList"}, + "SortColumns":{"shape":"OrderList"}, + "Parameters":{"shape":"ParametersMap"}, + "SkewedInfo":{"shape":"SkewedInfo"}, + "StoredAsSubDirectories":{"shape":"Boolean"} + } + }, + "StringList":{ + "type":"list", + "member":{"shape":"GenericString"} + }, + "Table":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"}, + "DatabaseName":{"shape":"NameString"}, + "Description":{"shape":"DescriptionString"}, + "Owner":{"shape":"NameString"}, + "CreateTime":{"shape":"Timestamp"}, + "UpdateTime":{"shape":"Timestamp"}, + "LastAccessTime":{"shape":"Timestamp"}, + "LastAnalyzedTime":{"shape":"Timestamp"}, + "Retention":{"shape":"NonNegativeInteger"}, + "StorageDescriptor":{"shape":"StorageDescriptor"}, + "PartitionKeys":{"shape":"ColumnList"}, + "ViewOriginalText":{"shape":"ViewTextString"}, + "ViewExpandedText":{"shape":"ViewTextString"}, + "TableType":{"shape":"TableTypeString"}, + "Parameters":{"shape":"ParametersMap"}, + "CreatedBy":{"shape":"NameString"} + } + }, + "TableError":{ + "type":"structure", + "members":{ + "TableName":{"shape":"NameString"}, + "ErrorDetail":{"shape":"ErrorDetail"} + } + }, + "TableErrors":{ + "type":"list", + "member":{"shape":"TableError"} + }, + "TableInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"}, + "Description":{"shape":"DescriptionString"}, + "Owner":{"shape":"NameString"}, + "LastAccessTime":{"shape":"Timestamp"}, + "LastAnalyzedTime":{"shape":"Timestamp"}, + "Retention":{"shape":"NonNegativeInteger"}, + "StorageDescriptor":{"shape":"StorageDescriptor"}, + "PartitionKeys":{"shape":"ColumnList"}, + "ViewOriginalText":{"shape":"ViewTextString"}, + "ViewExpandedText":{"shape":"ViewTextString"}, + "TableType":{"shape":"TableTypeString"}, + "Parameters":{"shape":"ParametersMap"} + } + }, + "TableList":{ + "type":"list", + "member":{"shape":"Table"} + }, + "TableName":{"type":"string"}, + "TablePrefix":{ + "type":"string", + "max":128, + "min":0 + }, + "TableTypeString":{ + "type":"string", + "max":255 + }, + "TableVersion":{ + "type":"structure", + "members":{ + "Table":{"shape":"Table"}, + "VersionId":{"shape":"VersionString"} + } + }, + "Timestamp":{"type":"timestamp"}, + "TimestampValue":{"type":"timestamp"}, + "Token":{"type":"string"}, + "TotalSegmentsInteger":{ + "type":"integer", + "max":10, + "min":1 + }, + "Trigger":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"}, + "Id":{"shape":"IdString"}, + "Type":{"shape":"TriggerType"}, + "State":{"shape":"TriggerState"}, + "Description":{"shape":"DescriptionString"}, + "Schedule":{"shape":"GenericString"}, + "Actions":{"shape":"ActionList"}, + "Predicate":{"shape":"Predicate"} + } + }, + "TriggerList":{ + "type":"list", + "member":{"shape":"Trigger"} + }, + "TriggerState":{ + "type":"string", + "enum":[ + "CREATING", + "CREATED", + "ACTIVATING", + "ACTIVATED", + "DEACTIVATING", + "DEACTIVATED", + "DELETING", + "UPDATING" + ] + }, + "TriggerType":{ + "type":"string", + "enum":[ + "SCHEDULED", + "CONDITIONAL", + "ON_DEMAND" + ] + }, + "TriggerUpdate":{ + "type":"structure", + "members":{ + "Name":{"shape":"NameString"}, + "Description":{"shape":"DescriptionString"}, + "Schedule":{"shape":"GenericString"}, + "Actions":{"shape":"ActionList"}, + "Predicate":{"shape":"Predicate"} + } + }, + "URI":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "UpdateBehavior":{ + "type":"string", + "enum":[ + "LOG", + "UPDATE_IN_DATABASE" + ] + }, + "UpdateClassifierRequest":{ + "type":"structure", + "members":{ + "GrokClassifier":{"shape":"UpdateGrokClassifierRequest"}, + "XMLClassifier":{"shape":"UpdateXMLClassifierRequest"} + } + }, + "UpdateClassifierResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateConnectionRequest":{ + "type":"structure", + "required":[ + "Name", + "ConnectionInput" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "Name":{"shape":"NameString"}, + "ConnectionInput":{"shape":"ConnectionInput"} + } + }, + "UpdateConnectionResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateCrawlerRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"}, + "Role":{"shape":"Role"}, + "DatabaseName":{"shape":"DatabaseName"}, + "Description":{"shape":"DescriptionStringRemovable"}, + "Targets":{"shape":"CrawlerTargets"}, + "Schedule":{"shape":"CronExpression"}, + "Classifiers":{"shape":"ClassifierNameList"}, + "TablePrefix":{"shape":"TablePrefix"}, + "SchemaChangePolicy":{"shape":"SchemaChangePolicy"}, + "Configuration":{"shape":"CrawlerConfiguration"} + } + }, + "UpdateCrawlerResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateCrawlerScheduleRequest":{ + "type":"structure", + "required":["CrawlerName"], + "members":{ + "CrawlerName":{"shape":"NameString"}, + "Schedule":{"shape":"CronExpression"} + } + }, + "UpdateCrawlerScheduleResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateDatabaseRequest":{ + "type":"structure", + "required":[ + "Name", + "DatabaseInput" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "Name":{"shape":"NameString"}, + "DatabaseInput":{"shape":"DatabaseInput"} + } + }, + "UpdateDatabaseResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateDevEndpointRequest":{ + "type":"structure", + "required":["EndpointName"], + "members":{ + "EndpointName":{"shape":"GenericString"}, + "PublicKey":{"shape":"GenericString"}, + "CustomLibraries":{"shape":"DevEndpointCustomLibraries"}, + "UpdateEtlLibraries":{"shape":"BooleanValue"} + } + }, + "UpdateDevEndpointResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateGrokClassifierRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"}, + "Classification":{"shape":"Classification"}, + "GrokPattern":{"shape":"GrokPattern"}, + "CustomPatterns":{"shape":"CustomPatterns"} + } + }, + "UpdateJobRequest":{ + "type":"structure", + "required":[ + "JobName", + "JobUpdate" + ], + "members":{ + "JobName":{"shape":"NameString"}, + "JobUpdate":{"shape":"JobUpdate"} + } + }, + "UpdateJobResponse":{ + "type":"structure", + "members":{ + "JobName":{"shape":"NameString"} + } + }, + "UpdatePartitionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableName", + "PartitionValueList", + "PartitionInput" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableName":{"shape":"NameString"}, + "PartitionValueList":{"shape":"BoundedPartitionValueList"}, + "PartitionInput":{"shape":"PartitionInput"} + } + }, + "UpdatePartitionResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateTableRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "TableInput" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "TableInput":{"shape":"TableInput"} + } + }, + "UpdateTableResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateTriggerRequest":{ + "type":"structure", + "required":[ + "Name", + "TriggerUpdate" + ], + "members":{ + "Name":{"shape":"NameString"}, + "TriggerUpdate":{"shape":"TriggerUpdate"} + } + }, + "UpdateTriggerResponse":{ + "type":"structure", + "members":{ + "Trigger":{"shape":"Trigger"} + } + }, + "UpdateUserDefinedFunctionRequest":{ + "type":"structure", + "required":[ + "DatabaseName", + "FunctionName", + "FunctionInput" + ], + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "DatabaseName":{"shape":"NameString"}, + "FunctionName":{"shape":"NameString"}, + "FunctionInput":{"shape":"UserDefinedFunctionInput"} + } + }, + "UpdateUserDefinedFunctionResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateXMLClassifierRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"NameString"}, + "Classification":{"shape":"Classification"}, + "RowTag":{"shape":"RowTag"} + } + }, + "UriString":{"type":"string"}, + "UserDefinedFunction":{ + "type":"structure", + "members":{ + "FunctionName":{"shape":"NameString"}, + "ClassName":{"shape":"NameString"}, + "OwnerName":{"shape":"NameString"}, + "OwnerType":{"shape":"PrincipalType"}, + "CreateTime":{"shape":"Timestamp"}, + "ResourceUris":{"shape":"ResourceUriList"} + } + }, + "UserDefinedFunctionInput":{ + "type":"structure", + "members":{ + "FunctionName":{"shape":"NameString"}, + "ClassName":{"shape":"NameString"}, + "OwnerName":{"shape":"NameString"}, + "OwnerType":{"shape":"PrincipalType"}, + "ResourceUris":{"shape":"ResourceUriList"} + } + }, + "UserDefinedFunctionList":{ + "type":"list", + "member":{"shape":"UserDefinedFunction"} + }, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "ValueString":{ + "type":"string", + "max":1024 + }, + "ValueStringList":{ + "type":"list", + "member":{"shape":"ValueString"} + }, + "VersionId":{"type":"long"}, + "VersionMismatchException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, + "VersionString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "ViewTextString":{ + "type":"string", + "max":2048 + }, + "XMLClassifier":{ + "type":"structure", + "required":[ + "Name", + "Classification" + ], + "members":{ + "Name":{"shape":"NameString"}, + "Classification":{"shape":"Classification"}, + "CreationTime":{"shape":"Timestamp"}, + "LastUpdated":{"shape":"Timestamp"}, + "Version":{"shape":"VersionId"}, + "RowTag":{"shape":"RowTag"} + } + } + } +} diff --git a/models/apis/glue/2017-03-31/docs-2.json b/models/apis/glue/2017-03-31/docs-2.json new file mode 100644 index 00000000000..e26336ff09e --- /dev/null +++ b/models/apis/glue/2017-03-31/docs-2.json @@ -0,0 +1,2573 @@ +{ + "version": "2.0", + "service": "AWS Glue

Defines the public endpoint for the AWS Glue service.

", + "operations": { + "BatchCreatePartition": "

Creates one or more partitions in a batch operation.

", + "BatchDeleteConnection": "

Deletes a list of connection definitions from the Data Catalog.

", + "BatchDeletePartition": "

Deletes one or more partitions in a batch operation.

", + "BatchDeleteTable": "

Deletes multiple tables at once.

", + "BatchGetPartition": "

Retrieves partitions in a batch request.

", + "BatchStopJobRun": "

Stops a batch of job runs for a given job.

", + "CreateClassifier": "

Creates a classifier in the user's account. This may be either a GrokClassifier or an XMLClassifier.

", + "CreateConnection": "

Creates a connection definition in the Data Catalog.

", + "CreateCrawler": "

Creates a new crawler with specified targets, role, configuration, and optional schedule. At least one crawl target must be specified, in either the s3Targets or the jdbcTargets field.

", + "CreateDatabase": "

Creates a new database in a Data Catalog.

", + "CreateDevEndpoint": "

Creates a new DevEndpoint.

", + "CreateJob": "

Creates a new job.

", + "CreatePartition": "

Creates a new partition.

", + "CreateScript": "

Transforms a directed acyclic graph (DAG) into a Python script.

", + "CreateTable": "

Creates a new table definition in the Data Catalog.

", + "CreateTrigger": "

Creates a new trigger.

", + "CreateUserDefinedFunction": "

Creates a new function definition in the Data Catalog.

", + "DeleteClassifier": "

Removes a classifier from the Data Catalog.

", + "DeleteConnection": "

Deletes a connection from the Data Catalog.

", + "DeleteCrawler": "

Removes a specified crawler from the Data Catalog, unless the crawler state is RUNNING.

", + "DeleteDatabase": "

Removes a specified Database from a Data Catalog.

", + "DeleteDevEndpoint": "

Deletes a specified DevEndpoint.

", + "DeleteJob": "

Deletes a specified job.

", + "DeletePartition": "

Deletes a specified partition.

", + "DeleteTable": "

Removes a table definition from the Data Catalog.

", + "DeleteTrigger": "

Deletes a specified trigger.

", + "DeleteUserDefinedFunction": "

Deletes an existing function definition from the Data Catalog.

", + "GetCatalogImportStatus": "

Retrieves the status of a migration operation.

", + "GetClassifier": "

Retrieve a classifier by name.

", + "GetClassifiers": "

Lists all classifier objects in the Data Catalog.

", + "GetConnection": "

Retrieves a connection definition from the Data Catalog.

", + "GetConnections": "

Retrieves a list of connection definitions from the Data Catalog.

", + "GetCrawler": "

Retrieves metadata for a specified crawler.

", + "GetCrawlerMetrics": "

Retrieves metrics about specified crawlers.

", + "GetCrawlers": "

Retrieves metadata for all crawlers defined in the customer account.

", + "GetDatabase": "

Retrieves the definition of a specified database.

", + "GetDatabases": "

Retrieves all Databases defined in a given Data Catalog.

", + "GetDataflowGraph": "

Transforms a Python script into a directed acyclic graph (DAG).

", + "GetDevEndpoint": "

Retrieves information about a specified DevEndpoint.

", + "GetDevEndpoints": "

Retrieves all the DevEndpoints in this AWS account.

", + "GetJob": "

Retrieves an existing job definition.

", + "GetJobRun": "

Retrieves the metadata for a given job run.

", + "GetJobRuns": "

Retrieves metadata for all runs of a given job.

", + "GetJobs": "

Retrieves all current jobs.

", + "GetMapping": "

Creates mappings.

", + "GetPartition": "

Retrieves information about a specified partition.

", + "GetPartitions": "

Retrieves information about the partitions in a table.

", + "GetPlan": "

Gets a Python script to perform a specified mapping.

", + "GetTable": "

Retrieves the Table definition in a Data Catalog for a specified table.

", + "GetTableVersions": "

Retrieves a list of strings that identify available versions of a specified table.

", + "GetTables": "

Retrieves the definitions of some or all of the tables in a given Database.

", + "GetTrigger": "

Retrieves the definition of a trigger.

", + "GetTriggers": "

Gets all the triggers associated with a job.

", + "GetUserDefinedFunction": "

Retrieves a specified function definition from the Data Catalog.

", + "GetUserDefinedFunctions": "

Retrieves a multiple function definitions from the Data Catalog.

", + "ImportCatalogToGlue": "

Imports an existing Athena Data Catalog to AWS Glue

", + "ResetJobBookmark": "

Resets a bookmark entry.

", + "StartCrawler": "

Starts a crawl using the specified crawler, regardless of what is scheduled. If the crawler is already running, does nothing.

", + "StartCrawlerSchedule": "

Changes the schedule state of the specified crawler to SCHEDULED, unless the crawler is already running or the schedule state is already SCHEDULED.

", + "StartJobRun": "

Runs a job.

", + "StartTrigger": "

Starts an existing trigger.

", + "StopCrawler": "

If the specified crawler is running, stops the crawl.

", + "StopCrawlerSchedule": "

Sets the schedule state of the specified crawler to NOT_SCHEDULED, but does not stop the crawler if it is already running.

", + "StopTrigger": "

Stops a specified trigger.

", + "UpdateClassifier": "

Modifies an existing classifier (either a GrokClassifier or an XMLClassifier).

", + "UpdateConnection": "

Updates a connection definition in the Data Catalog.

", + "UpdateCrawler": "

Updates a crawler. If a crawler is running, you must stop it using StopCrawler before updating it.

", + "UpdateCrawlerSchedule": "

Updates the schedule of a crawler using a cron expression.

", + "UpdateDatabase": "

Updates an existing database definition in a Data Catalog.

", + "UpdateDevEndpoint": "

Updates a specified DevEndpoint.

", + "UpdateJob": "

Updates an existing job definition.

", + "UpdatePartition": "

Updates a partition.

", + "UpdateTable": "

Updates a metadata table in the Data Catalog.

", + "UpdateTrigger": "

Updates a trigger definition.

", + "UpdateUserDefinedFunction": "

Updates an existing function definition in the Data Catalog.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

Access to a resource was denied.

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

Defines an action to be initiated by a trigger.

", + "refs": { + "ActionList$member": null + } + }, + "ActionList": { + "base": null, + "refs": { + "CreateTriggerRequest$Actions": "

The actions initiated by this trigger when it fires.

", + "Trigger$Actions": "

The actions initiated by this trigger.

", + "TriggerUpdate$Actions": "

The actions initiated by this trigger.

" + } + }, + "AlreadyExistsException": { + "base": "

A resource to be created or added already exists.

", + "refs": { + } + }, + "AttemptCount": { + "base": null, + "refs": { + "JobRun$Attempt": "

The number or the attempt to run this job.

" + } + }, + "BatchCreatePartitionRequest": { + "base": null, + "refs": { + } + }, + "BatchCreatePartitionResponse": { + "base": null, + "refs": { + } + }, + "BatchDeleteConnectionRequest": { + "base": null, + "refs": { + } + }, + "BatchDeleteConnectionResponse": { + "base": null, + "refs": { + } + }, + "BatchDeletePartitionRequest": { + "base": null, + "refs": { + } + }, + "BatchDeletePartitionResponse": { + "base": null, + "refs": { + } + }, + "BatchDeletePartitionValueList": { + "base": null, + "refs": { + "BatchDeletePartitionRequest$PartitionsToDelete": "

A list of PartitionInput structures that define the partitions to be deleted.

" + } + }, + "BatchDeleteTableNameList": { + "base": null, + "refs": { + "BatchDeleteTableRequest$TablesToDelete": "

A list of the table to delete.

" + } + }, + "BatchDeleteTableRequest": { + "base": null, + "refs": { + } + }, + "BatchDeleteTableResponse": { + "base": null, + "refs": { + } + }, + "BatchGetPartitionRequest": { + "base": null, + "refs": { + } + }, + "BatchGetPartitionResponse": { + "base": null, + "refs": { + } + }, + "BatchGetPartitionValueList": { + "base": null, + "refs": { + "BatchGetPartitionRequest$PartitionsToGet": "

A list of partition values identifying the partitions to retrieve.

", + "BatchGetPartitionResponse$UnprocessedKeys": "

A list of the partition values in the request for which partions were not returned.

" + } + }, + "BatchStopJobRunError": { + "base": "

Details about the job run and the error that occurred while trying to submit it for stopping.

", + "refs": { + "BatchStopJobRunErrorList$member": null + } + }, + "BatchStopJobRunErrorList": { + "base": null, + "refs": { + "BatchStopJobRunResponse$Errors": "

A list containing the job run Ids and details of the error that occurred for each job run while submitting to stop.

" + } + }, + "BatchStopJobRunJobRunIdList": { + "base": null, + "refs": { + "BatchStopJobRunRequest$JobRunIds": "

A list of job run Ids of the given job to be stopped.

" + } + }, + "BatchStopJobRunRequest": { + "base": null, + "refs": { + } + }, + "BatchStopJobRunResponse": { + "base": null, + "refs": { + } + }, + "BatchStopJobRunSuccessfulSubmission": { + "base": "

Details about the job run which is submitted successfully for stopping.

", + "refs": { + "BatchStopJobRunSuccessfulSubmissionList$member": null + } + }, + "BatchStopJobRunSuccessfulSubmissionList": { + "base": null, + "refs": { + "BatchStopJobRunResponse$SuccessfulSubmissions": "

A list of job runs which are successfully submitted for stopping.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "CatalogImportStatus$ImportCompleted": "

True if the migration has completed, or False otherwise.

", + "CodeGenNodeArg$Param": "

True if the value is used as a parameter.

", + "CrawlerMetrics$StillEstimating": "

True if the crawler is still estimating how long it will take to complete this run.

", + "StorageDescriptor$Compressed": "

True if the data in the table is compressed, or False if not.

", + "StorageDescriptor$StoredAsSubDirectories": "

True if the table data is stored in subdirectories, or False if not.

" + } + }, + "BooleanValue": { + "base": null, + "refs": { + "GetJobRunRequest$PredecessorsIncluded": "

A list of the predecessor runs to return as well.

", + "UpdateDevEndpointRequest$UpdateEtlLibraries": "

True if the list of custom libraries to be loaded in the development endpoint needs to be updated, or False otherwise.

" + } + }, + "BoundedPartitionValueList": { + "base": null, + "refs": { + "UpdatePartitionRequest$PartitionValueList": "

A list of the values defining the partition.

" + } + }, + "CatalogEntries": { + "base": null, + "refs": { + "GetMappingRequest$Sinks": "

A list of target tables.

", + "GetPlanRequest$Sinks": "

The target tables.

" + } + }, + "CatalogEntry": { + "base": "

Specifies a table definition in the Data Catalog.

", + "refs": { + "CatalogEntries$member": null, + "GetMappingRequest$Source": "

Specifies the source table.

", + "GetPlanRequest$Source": "

The source table.

" + } + }, + "CatalogIdString": { + "base": null, + "refs": { + "BatchCreatePartitionRequest$CatalogId": "

The ID of the catalog in which the partion is to be created. Currently, this should be the AWS account ID.

", + "BatchDeleteConnectionRequest$CatalogId": "

The ID of the Data Catalog in which the connections reside. If none is supplied, the AWS account ID is used by default.

", + "BatchDeletePartitionRequest$CatalogId": "

The ID of the Data Catalog where the partition to be deleted resides. If none is supplied, the AWS account ID is used by default.

", + "BatchDeleteTableRequest$CatalogId": "

The ID of the Data Catalog where the table resides. If none is supplied, the AWS account ID is used by default.

", + "BatchGetPartitionRequest$CatalogId": "

The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default.

", + "CreateConnectionRequest$CatalogId": "

The ID of the Data Catalog in which to create the connection. If none is supplied, the AWS account ID is used by default.

", + "CreateDatabaseRequest$CatalogId": "

The ID of the Data Catalog in which to create the database. If none is supplied, the AWS account ID is used by default.

", + "CreatePartitionRequest$CatalogId": "

The ID of the catalog in which the partion is to be created. Currently, this should be the AWS account ID.

", + "CreateTableRequest$CatalogId": "

The ID of the Data Catalog in which to create the Table. If none is supplied, the AWS account ID is used by default.

", + "CreateUserDefinedFunctionRequest$CatalogId": "

The ID of the Data Catalog in which to create the function. If none is supplied, the AWS account ID is used by default.

", + "DeleteConnectionRequest$CatalogId": "

The ID of the Data Catalog in which the connection resides. If none is supplied, the AWS account ID is used by default.

", + "DeleteDatabaseRequest$CatalogId": "

The ID of the Data Catalog in which the database resides. If none is supplied, the AWS account ID is used by default.

", + "DeletePartitionRequest$CatalogId": "

The ID of the Data Catalog where the partition to be deleted resides. If none is supplied, the AWS account ID is used by default.

", + "DeleteTableRequest$CatalogId": "

The ID of the Data Catalog where the table resides. If none is supplied, the AWS account ID is used by default.

", + "DeleteUserDefinedFunctionRequest$CatalogId": "

The ID of the Data Catalog where the function to be deleted is located. If none is supplied, the AWS account ID is used by default.

", + "GetCatalogImportStatusRequest$CatalogId": "

The ID of the catalog to migrate. Currently, this should be the AWS account ID.

", + "GetConnectionRequest$CatalogId": "

The ID of the Data Catalog in which the connection resides. If none is supplied, the AWS account ID is used by default.

", + "GetConnectionsRequest$CatalogId": "

The ID of the Data Catalog in which the connections reside. If none is supplied, the AWS account ID is used by default.

", + "GetDatabaseRequest$CatalogId": "

The ID of the Data Catalog in which the database resides. If none is supplied, the AWS account ID is used by default.

", + "GetDatabasesRequest$CatalogId": "

The ID of the Data Catalog from which to retrieve Databases. If none is supplied, the AWS account ID is used by default.

", + "GetPartitionRequest$CatalogId": "

The ID of the Data Catalog where the partition in question resides. If none is supplied, the AWS account ID is used by default.

", + "GetPartitionsRequest$CatalogId": "

The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default.

", + "GetTableRequest$CatalogId": "

The ID of the Data Catalog where the table resides. If none is supplied, the AWS account ID is used by default.

", + "GetTableVersionsRequest$CatalogId": "

The ID of the Data Catalog where the tables reside. If none is supplied, the AWS account ID is used by default.

", + "GetTablesRequest$CatalogId": "

The ID of the Data Catalog where the tables reside. If none is supplied, the AWS account ID is used by default.

", + "GetUserDefinedFunctionRequest$CatalogId": "

The ID of the Data Catalog where the function to be retrieved is located. If none is supplied, the AWS account ID is used by default.

", + "GetUserDefinedFunctionsRequest$CatalogId": "

The ID of the Data Catalog where the functions to be retrieved are located. If none is supplied, the AWS account ID is used by default.

", + "ImportCatalogToGlueRequest$CatalogId": "

The ID of the catalog to import. Currently, this should be the AWS account ID.

", + "UpdateConnectionRequest$CatalogId": "

The ID of the Data Catalog in which the connection resides. If none is supplied, the AWS account ID is used by default.

", + "UpdateDatabaseRequest$CatalogId": "

The ID of the Data Catalog in which the metadata database resides. If none is supplied, the AWS account ID is used by default.

", + "UpdatePartitionRequest$CatalogId": "

The ID of the Data Catalog where the partition to be updated resides. If none is supplied, the AWS account ID is used by default.

", + "UpdateTableRequest$CatalogId": "

The ID of the Data Catalog where the table resides. If none is supplied, the AWS account ID is used by default.

", + "UpdateUserDefinedFunctionRequest$CatalogId": "

The ID of the Data Catalog where the function to be updated is located. If none is supplied, the AWS account ID is used by default.

" + } + }, + "CatalogImportStatus": { + "base": "

A structure containing migration status information.

", + "refs": { + "GetCatalogImportStatusResponse$ImportStatus": "

The status of the specified catalog migration.

" + } + }, + "Classification": { + "base": null, + "refs": { + "CreateGrokClassifierRequest$Classification": "

An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, Amazon CloudWatch Logs, and so on.

", + "CreateXMLClassifierRequest$Classification": "

An identifier of the data format that the classifier matches.

", + "GrokClassifier$Classification": "

An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, and so on.

", + "UpdateGrokClassifierRequest$Classification": "

An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, Amazon CloudWatch Logs, and so on.

", + "UpdateXMLClassifierRequest$Classification": "

An identifier of the data format that the classifier matches.

", + "XMLClassifier$Classification": "

An identifier of the data format that the classifier matches.

" + } + }, + "Classifier": { + "base": "

Classifiers are written in Python and triggered during a crawl task. You can write your own classifiers to best categorize your data sources and specify the appropriate schemas to use for them. A classifier checks whether a given file is in a format it can handle, and if it is, the classifier creates a schema in the form of a StructType object that matches that data format.

A classifier can be either a grok classifier or an XML classifier, specified in one or the other field of the Classifier object.

", + "refs": { + "ClassifierList$member": null, + "GetClassifierResponse$Classifier": "

The requested classifier.

" + } + }, + "ClassifierList": { + "base": null, + "refs": { + "GetClassifiersResponse$Classifiers": "

The requested list of classifier objects.

" + } + }, + "ClassifierNameList": { + "base": null, + "refs": { + "Crawler$Classifiers": "

A list of custom classifiers associated with the crawler.

", + "CreateCrawlerRequest$Classifiers": "

A list of custom classifiers that the user has registered. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.

", + "UpdateCrawlerRequest$Classifiers": "

A list of custom classifiers that the user has registered. By default, all classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.

" + } + }, + "CodeGenArgName": { + "base": null, + "refs": { + "CodeGenEdge$TargetParameter": "

The target of the edge.

", + "CodeGenNodeArg$Name": "

The name of the argument or property.

" + } + }, + "CodeGenArgValue": { + "base": null, + "refs": { + "CodeGenNodeArg$Value": "

The value of the argument or property.

" + } + }, + "CodeGenEdge": { + "base": "

Represents a directional edge in a directed acyclic graph (DAG).

", + "refs": { + "DagEdges$member": null + } + }, + "CodeGenIdentifier": { + "base": null, + "refs": { + "CodeGenEdge$Source": "

The ID of the node at which the edge starts.

", + "CodeGenEdge$Target": "

The ID of the node at which the edge ends.

", + "CodeGenNode$Id": "

A node identifier that is unique within the node's graph.

" + } + }, + "CodeGenNode": { + "base": "

Represents a node in a directed acyclic graph (DAG)

", + "refs": { + "DagNodes$member": null + } + }, + "CodeGenNodeArg": { + "base": "

An argument or property of a node.

", + "refs": { + "CodeGenNodeArgs$member": null + } + }, + "CodeGenNodeArgs": { + "base": null, + "refs": { + "CodeGenNode$Args": "

Properties of the node, in the form of name-value pairs.

", + "Location$Jdbc": "

A JDBC location.

", + "Location$S3": "

An Amazon S3 location.

" + } + }, + "CodeGenNodeType": { + "base": null, + "refs": { + "CodeGenNode$NodeType": "

The type of node this is.

" + } + }, + "Column": { + "base": "

A column in a Table.

", + "refs": { + "ColumnList$member": null + } + }, + "ColumnList": { + "base": null, + "refs": { + "StorageDescriptor$Columns": "

A list of the Columns in the table.

", + "Table$PartitionKeys": "

A list of columns by which the table is partitioned. Only primitive types are supported as partition keys.

", + "TableInput$PartitionKeys": "

A list of columns by which the table is partitioned. Only primitive types are supported as partition keys.

" + } + }, + "ColumnTypeString": { + "base": null, + "refs": { + "Column$Type": "

The datatype of data in the Column.

" + } + }, + "ColumnValueStringList": { + "base": null, + "refs": { + "SkewedInfo$SkewedColumnValues": "

A list of values that appear so frequently as to be considered skewed.

" + } + }, + "ColumnValuesString": { + "base": null, + "refs": { + "ColumnValueStringList$member": null, + "LocationMap$key": null, + "LocationMap$value": null + } + }, + "CommentString": { + "base": null, + "refs": { + "Column$Comment": "

Free-form text comment.

" + } + }, + "ConcurrentModificationException": { + "base": "

Two processes are trying to modify a resource simultaneously.

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

Too many jobs are being run concurrently.

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

Defines a condition under which a trigger fires.

", + "refs": { + "ConditionList$member": null + } + }, + "ConditionList": { + "base": null, + "refs": { + "Predicate$Conditions": "

A list of the conditions that determine when the trigger will fire.

" + } + }, + "Connection": { + "base": "

Defines a connection to a data source.

", + "refs": { + "ConnectionList$member": null, + "GetConnectionResponse$Connection": "

The requested connection definition.

" + } + }, + "ConnectionInput": { + "base": "

A structure used to specify a connection to create or update.

", + "refs": { + "CreateConnectionRequest$ConnectionInput": "

A ConnectionInput object defining the connection to create.

", + "UpdateConnectionRequest$ConnectionInput": "

A ConnectionInput object that redefines the connection in question.

" + } + }, + "ConnectionList": { + "base": null, + "refs": { + "GetConnectionsResponse$ConnectionList": "

A list of requested connection definitions.

" + } + }, + "ConnectionName": { + "base": null, + "refs": { + "JdbcTarget$ConnectionName": "

The name of the connection to use to connect to the JDBC target.

" + } + }, + "ConnectionProperties": { + "base": null, + "refs": { + "Connection$ConnectionProperties": "

A list of key-value pairs used as parameters for this connection.

", + "ConnectionInput$ConnectionProperties": "

A list of key-value pairs used as parameters for this connection.

" + } + }, + "ConnectionPropertyKey": { + "base": null, + "refs": { + "ConnectionProperties$key": null + } + }, + "ConnectionType": { + "base": null, + "refs": { + "Connection$ConnectionType": "

The type of the connection. Currently, only JDBC is supported; SFTP is not supported.

", + "ConnectionInput$ConnectionType": "

The type of the connection. Currently, only JDBC is supported; SFTP is not supported.

", + "GetConnectionsFilter$ConnectionType": "

The type of connections to return. Currently, only JDBC is supported; SFTP is not supported.

" + } + }, + "ConnectionsList": { + "base": "

Specifies the connections used by a job.

", + "refs": { + "CreateJobRequest$Connections": "

The connections used for this job.

", + "Job$Connections": "

The connections used for this job.

", + "JobUpdate$Connections": "

The connections used for this job.

" + } + }, + "Crawler": { + "base": "

Specifies a crawler program that examines a data source and uses classifiers to try to determine its schema. If successful, the crawler records metadata concerning the data source in the AWS Glue Data Catalog.

", + "refs": { + "CrawlerList$member": null, + "GetCrawlerResponse$Crawler": "

The metadata for the specified crawler.

" + } + }, + "CrawlerConfiguration": { + "base": null, + "refs": { + "Crawler$Configuration": "

Crawler configuration information. This versioned JSON string allows users to specify aspects of a Crawler's behavior.

You can use this field to force partitions to inherit metadata such as classification, input format, output format, serde information, and schema from their parent table, rather than detect this information separately for each partition. Use the following JSON string to specify that behavior:

", + "CreateCrawlerRequest$Configuration": "

Crawler configuration information. This versioned JSON string allows users to specify aspects of a Crawler's behavior.

You can use this field to force partitions to inherit metadata such as classification, input format, output format, serde information, and schema from their parent table, rather than detect this information separately for each partition.

", + "UpdateCrawlerRequest$Configuration": "

Crawler configuration information. This versioned JSON string allows users to specify aspects of a Crawler's behavior.

You can use this field to force partitions to inherit metadata such as classification, input format, output format, serde information, and schema from their parent table, rather than detect this information separately for each partition. Use the following JSON string to specify that behavior:

" + } + }, + "CrawlerList": { + "base": null, + "refs": { + "GetCrawlersResponse$Crawlers": "

A list of crawler metadata.

" + } + }, + "CrawlerMetrics": { + "base": "

Metrics for a specified crawler.

", + "refs": { + "CrawlerMetricsList$member": null + } + }, + "CrawlerMetricsList": { + "base": null, + "refs": { + "GetCrawlerMetricsResponse$CrawlerMetricsList": "

A list of metrics for the specified crawler.

" + } + }, + "CrawlerNameList": { + "base": null, + "refs": { + "GetCrawlerMetricsRequest$CrawlerNameList": "

A list of the names of crawlers about which to retrieve metrics.

" + } + }, + "CrawlerNotRunningException": { + "base": "

The specified crawler is not running.

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

The operation cannot be performed because the crawler is already running.

", + "refs": { + } + }, + "CrawlerState": { + "base": null, + "refs": { + "Crawler$State": "

Indicates whether the crawler is running, or whether a run is pending.

" + } + }, + "CrawlerStoppingException": { + "base": "

The specified crawler is stopping.

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

Specifies data stores to crawl.

", + "refs": { + "Crawler$Targets": "

A collection of targets to crawl.

", + "CreateCrawlerRequest$Targets": "

A list of collection of targets to crawl.

", + "UpdateCrawlerRequest$Targets": "

A list of targets to crawl.

" + } + }, + "CreateClassifierRequest": { + "base": null, + "refs": { + } + }, + "CreateClassifierResponse": { + "base": null, + "refs": { + } + }, + "CreateConnectionRequest": { + "base": null, + "refs": { + } + }, + "CreateConnectionResponse": { + "base": null, + "refs": { + } + }, + "CreateCrawlerRequest": { + "base": null, + "refs": { + } + }, + "CreateCrawlerResponse": { + "base": null, + "refs": { + } + }, + "CreateDatabaseRequest": { + "base": null, + "refs": { + } + }, + "CreateDatabaseResponse": { + "base": null, + "refs": { + } + }, + "CreateDevEndpointRequest": { + "base": null, + "refs": { + } + }, + "CreateDevEndpointResponse": { + "base": null, + "refs": { + } + }, + "CreateGrokClassifierRequest": { + "base": "

Specifies a grok classifier for CreateClassifier to create.

", + "refs": { + "CreateClassifierRequest$GrokClassifier": "

A GrokClassifier object specifying the classifier to create.

" + } + }, + "CreateJobRequest": { + "base": null, + "refs": { + } + }, + "CreateJobResponse": { + "base": null, + "refs": { + } + }, + "CreatePartitionRequest": { + "base": null, + "refs": { + } + }, + "CreatePartitionResponse": { + "base": null, + "refs": { + } + }, + "CreateScriptRequest": { + "base": null, + "refs": { + } + }, + "CreateScriptResponse": { + "base": null, + "refs": { + } + }, + "CreateTableRequest": { + "base": null, + "refs": { + } + }, + "CreateTableResponse": { + "base": null, + "refs": { + } + }, + "CreateTriggerRequest": { + "base": null, + "refs": { + } + }, + "CreateTriggerResponse": { + "base": null, + "refs": { + } + }, + "CreateUserDefinedFunctionRequest": { + "base": null, + "refs": { + } + }, + "CreateUserDefinedFunctionResponse": { + "base": null, + "refs": { + } + }, + "CreateXMLClassifierRequest": { + "base": "

Specifies an XML classifier for CreateClassifier to create.

", + "refs": { + "CreateClassifierRequest$XMLClassifier": "

An XMLClassifier object specifying the classifier to create.

" + } + }, + "CronExpression": { + "base": null, + "refs": { + "CreateCrawlerRequest$Schedule": "

A cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *).

", + "Schedule$ScheduleExpression": "

A cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *).

", + "UpdateCrawlerRequest$Schedule": "

A cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *).

", + "UpdateCrawlerScheduleRequest$Schedule": "

The updated cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *).

" + } + }, + "CustomPatterns": { + "base": null, + "refs": { + "CreateGrokClassifierRequest$CustomPatterns": "

Optional custom grok patterns used by this classifier.

", + "GrokClassifier$CustomPatterns": "

Optional custom grok patterns defined by this classifier. For more information, see custom patterns in Writing Custom Classifers.

", + "UpdateGrokClassifierRequest$CustomPatterns": "

Optional custom grok patterns used by this classifier.

" + } + }, + "DagEdges": { + "base": null, + "refs": { + "CreateScriptRequest$DagEdges": "

A list of the edges in the DAG.

", + "GetDataflowGraphResponse$DagEdges": "

A list of the edges in the resulting DAG.

" + } + }, + "DagNodes": { + "base": null, + "refs": { + "CreateScriptRequest$DagNodes": "

A list of the nodes in the DAG.

", + "GetDataflowGraphResponse$DagNodes": "

A list of the nodes in the resulting DAG.

" + } + }, + "Database": { + "base": "

The Database object represents a logical grouping of tables that may reside in a Hive metastore or an RDBMS.

", + "refs": { + "DatabaseList$member": null, + "GetDatabaseResponse$Database": "

The definition of the specified database in the catalog.

" + } + }, + "DatabaseInput": { + "base": "

The structure used to create or updata a database.

", + "refs": { + "CreateDatabaseRequest$DatabaseInput": "

A DatabaseInput object defining the metadata database to create in the catalog.

", + "UpdateDatabaseRequest$DatabaseInput": "

A DatabaseInput object specifying the new definition of the metadata database in the catalog.

" + } + }, + "DatabaseList": { + "base": null, + "refs": { + "GetDatabasesResponse$DatabaseList": "

A list of Database objects from the specified catalog.

" + } + }, + "DatabaseName": { + "base": null, + "refs": { + "Crawler$DatabaseName": "

The database where metadata is written by this crawler.

", + "CreateCrawlerRequest$DatabaseName": "

The AWS Glue database where results are written, such as: arn:aws:daylight:us-east-1::database/sometable/*.

", + "UpdateCrawlerRequest$DatabaseName": "

The AWS Glue database where results are stored, such as: arn:aws:daylight:us-east-1::database/sometable/*.

" + } + }, + "DeleteBehavior": { + "base": null, + "refs": { + "SchemaChangePolicy$DeleteBehavior": "

The deletion behavior when the crawler finds a deleted object.

" + } + }, + "DeleteClassifierRequest": { + "base": null, + "refs": { + } + }, + "DeleteClassifierResponse": { + "base": null, + "refs": { + } + }, + "DeleteConnectionNameList": { + "base": null, + "refs": { + "BatchDeleteConnectionRequest$ConnectionNameList": "

A list of names of the connections to delete.

" + } + }, + "DeleteConnectionRequest": { + "base": null, + "refs": { + } + }, + "DeleteConnectionResponse": { + "base": null, + "refs": { + } + }, + "DeleteCrawlerRequest": { + "base": null, + "refs": { + } + }, + "DeleteCrawlerResponse": { + "base": null, + "refs": { + } + }, + "DeleteDatabaseRequest": { + "base": null, + "refs": { + } + }, + "DeleteDatabaseResponse": { + "base": null, + "refs": { + } + }, + "DeleteDevEndpointRequest": { + "base": null, + "refs": { + } + }, + "DeleteDevEndpointResponse": { + "base": null, + "refs": { + } + }, + "DeleteJobRequest": { + "base": null, + "refs": { + } + }, + "DeleteJobResponse": { + "base": null, + "refs": { + } + }, + "DeletePartitionRequest": { + "base": null, + "refs": { + } + }, + "DeletePartitionResponse": { + "base": null, + "refs": { + } + }, + "DeleteTableRequest": { + "base": null, + "refs": { + } + }, + "DeleteTableResponse": { + "base": null, + "refs": { + } + }, + "DeleteTriggerRequest": { + "base": null, + "refs": { + } + }, + "DeleteTriggerResponse": { + "base": null, + "refs": { + } + }, + "DeleteUserDefinedFunctionRequest": { + "base": null, + "refs": { + } + }, + "DeleteUserDefinedFunctionResponse": { + "base": null, + "refs": { + } + }, + "DescriptionString": { + "base": null, + "refs": { + "Connection$Description": "

Description of the connection.

", + "ConnectionInput$Description": "

Description of the connection.

", + "Crawler$Description": "

A description of the crawler.

", + "CreateCrawlerRequest$Description": "

A description of the new crawler.

", + "CreateJobRequest$Description": "

Description of the job.

", + "CreateTriggerRequest$Description": "

A description of the new trigger.

", + "Database$Description": "

Description of the database.

", + "DatabaseInput$Description": "

Description of the database

", + "ErrorDetail$ErrorMessage": "

A message describing the error.

", + "Job$Description": "

Description of this job.

", + "JobUpdate$Description": "

Description of the job.

", + "LastCrawlInfo$ErrorMessage": "

If an error occurred, the error information about the last crawl.

", + "Table$Description": "

Description of the table.

", + "TableInput$Description": "

Description of the table.

", + "Trigger$Description": "

A description of this trigger.

", + "TriggerUpdate$Description": "

A description of this trigger.

" + } + }, + "DescriptionStringRemovable": { + "base": null, + "refs": { + "UpdateCrawlerRequest$Description": "

A description of the new crawler.

" + } + }, + "DevEndpoint": { + "base": "

A development endpoint where a developer can remotely debug ETL scripts.

", + "refs": { + "DevEndpointList$member": null, + "GetDevEndpointResponse$DevEndpoint": "

A DevEndpoint definition.

" + } + }, + "DevEndpointCustomLibraries": { + "base": "

Custom libraries to be loaded into a DevEndpoint.

", + "refs": { + "UpdateDevEndpointRequest$CustomLibraries": "

Custom Python or Java libraries to be loaded in the DevEndpoint.

" + } + }, + "DevEndpointList": { + "base": null, + "refs": { + "GetDevEndpointsResponse$DevEndpoints": "

A list of DevEndpoint definitions.

" + } + }, + "EntityNotFoundException": { + "base": "

A specified entity does not exist

", + "refs": { + } + }, + "ErrorByName": { + "base": null, + "refs": { + "BatchDeleteConnectionResponse$Errors": "

A map of the names of connections that were not successfully deleted to error details.

" + } + }, + "ErrorDetail": { + "base": "

Contains details about an error.

", + "refs": { + "BatchStopJobRunError$ErrorDetail": "

The details of the error that occurred.

", + "ErrorByName$value": null, + "PartitionError$ErrorDetail": "

Details about the partition error.

", + "TableError$ErrorDetail": "

Detail about the error.

" + } + }, + "ErrorString": { + "base": null, + "refs": { + "JobRun$ErrorMessage": "

An error message associated with this job run.

" + } + }, + "ExecutionProperty": { + "base": "

An execution property of a job.

", + "refs": { + "CreateJobRequest$ExecutionProperty": "

An ExecutionProperty specifying the maximum number of concurrent runs allowed for this job.

", + "Job$ExecutionProperty": "

An ExecutionProperty specifying the maximum number of concurrent runs allowed for this job.

", + "JobUpdate$ExecutionProperty": "

An ExecutionProperty specifying the maximum number of concurrent runs allowed for this job.

" + } + }, + "FieldType": { + "base": null, + "refs": { + "MappingEntry$SourceType": "

The source type.

", + "MappingEntry$TargetType": "

The target type.

" + } + }, + "FilterString": { + "base": null, + "refs": { + "GetTablesRequest$Expression": "

A regular expression pattern. If present, only those tables whose names match the pattern are returned.

" + } + }, + "FormatString": { + "base": null, + "refs": { + "StorageDescriptor$InputFormat": "

The input format: SequenceFileInputFormat (binary), or TextInputFormat, or a custom format.

", + "StorageDescriptor$OutputFormat": "

The output format: SequenceFileOutputFormat (binary), or IgnoreKeyTextOutputFormat, or a custom format.

" + } + }, + "GenericMap": { + "base": null, + "refs": { + "Action$Arguments": "

Arguments to be passed to the job.

", + "CreateJobRequest$DefaultArguments": "

The default parameters for this job.

", + "Job$DefaultArguments": "

The default parameters for this job.

", + "JobRun$Arguments": "

The job arguments associated with this run.

", + "JobUpdate$DefaultArguments": "

The default parameters for this job.

", + "StartJobRunRequest$Arguments": "

Specific arguments for this job run.

" + } + }, + "GenericString": { + "base": null, + "refs": { + "CreateDevEndpointRequest$EndpointName": "

The name to be assigned to the new DevEndpoint.

", + "CreateDevEndpointRequest$SubnetId": "

The subnet ID for the new DevEndpoint to use.

", + "CreateDevEndpointRequest$PublicKey": "

The public key to use for authentication.

", + "CreateDevEndpointRequest$ExtraPythonLibsS3Path": "

Path(s) to one or more Python libraries in an S3 bucket that should be loaded in your DevEndpoint. Multiple values must be complete paths separated by a comma.

Please note that only pure Python libraries can currently be used on a DevEndpoint. Libraries that rely on C extensions, such as the pandas Python data analysis library, are not yet supported.

", + "CreateDevEndpointRequest$ExtraJarsS3Path": "

Path to one or more Java Jars in an S3 bucket that should be loaded in your DevEndpoint.

", + "CreateDevEndpointResponse$EndpointName": "

The name assigned to the new DevEndpoint.

", + "CreateDevEndpointResponse$Status": "

The current status of the new DevEndpoint.

", + "CreateDevEndpointResponse$SubnetId": "

The subnet ID assigned to the new DevEndpoint.

", + "CreateDevEndpointResponse$YarnEndpointAddress": "

The address of the YARN endpoint used by this DevEndpoint.

", + "CreateDevEndpointResponse$AvailabilityZone": "

The AWS availability zone where this DevEndpoint is located.

", + "CreateDevEndpointResponse$VpcId": "

The ID of the VPC used by this DevEndpoint.

", + "CreateDevEndpointResponse$ExtraPythonLibsS3Path": "

Path(s) to one or more Python libraries in an S3 bucket that will be loaded in your DevEndpoint.

", + "CreateDevEndpointResponse$ExtraJarsS3Path": "

Path to one or more Java Jars in an S3 bucket that will be loaded in your DevEndpoint.

", + "CreateDevEndpointResponse$FailureReason": "

The reason for a current failure in this DevEndpoint.

", + "CreateTriggerRequest$Schedule": "

A cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *).

", + "DeleteDevEndpointRequest$EndpointName": "

The name of the DevEndpoint.

", + "DevEndpoint$EndpointName": "

The name of the DevEndpoint.

", + "DevEndpoint$SubnetId": "

The subnet ID for this DevEndpoint.

", + "DevEndpoint$YarnEndpointAddress": "

The YARN endpoint address used by this DevEndpoint.

", + "DevEndpoint$PublicAddress": "

The public address used by this DevEndpoint.

", + "DevEndpoint$Status": "

The current status of this DevEndpoint.

", + "DevEndpoint$AvailabilityZone": "

The AWS availability zone where this DevEndpoint is located.

", + "DevEndpoint$VpcId": "

The ID of the virtual private cloud (VPC) used by this DevEndpoint.

", + "DevEndpoint$ExtraPythonLibsS3Path": "

Path(s) to one or more Python libraries in an S3 bucket that should be loaded in your DevEndpoint. Multiple values must be complete paths separated by a comma.

Please note that only pure Python libraries can currently be used on a DevEndpoint. Libraries that rely on C extensions, such as the pandas Python data analysis library, are not yet supported.

", + "DevEndpoint$ExtraJarsS3Path": "

Path to one or more Java Jars in an S3 bucket that should be loaded in your DevEndpoint.

Please note that only pure Java/Scala libraries can currently be used on a DevEndpoint.

", + "DevEndpoint$FailureReason": "

The reason for a current failure in this DevEndpoint.

", + "DevEndpoint$LastUpdateStatus": "

The status of the last update.

", + "DevEndpoint$PublicKey": "

The public key to be used by this DevEndpoint for authentication.

", + "DevEndpointCustomLibraries$ExtraPythonLibsS3Path": "

Path(s) to one or more Python libraries in an S3 bucket that should be loaded in your DevEndpoint. Multiple values must be complete paths separated by a comma.

Please note that only pure Python libraries can currently be used on a DevEndpoint. Libraries that rely on C extensions, such as the pandas Python data analysis library, are not yet supported.

", + "DevEndpointCustomLibraries$ExtraJarsS3Path": "

Path to one or more Java Jars in an S3 bucket that should be loaded in your DevEndpoint.

Please note that only pure Java/Scala libraries can currently be used on a DevEndpoint.

", + "GenericMap$key": null, + "GenericMap$value": null, + "GetDevEndpointRequest$EndpointName": "

Name of the DevEndpoint for which to retrieve information.

", + "GetDevEndpointsRequest$NextToken": "

A continuation token, if this is a continuation call.

", + "GetDevEndpointsResponse$NextToken": "

A continuation token, if not all DevEndpoint definitions have yet been returned.

", + "GetJobRunsRequest$NextToken": "

A continuation token, if this is a continuation call.

", + "GetJobRunsResponse$NextToken": "

A continuation token, if not all reequested job runs have been returned.

", + "GetJobsRequest$NextToken": "

A continuation token, if this is a continuation call.

", + "GetJobsResponse$NextToken": "

A continuation token, if not all jobs have yet been returned.

", + "GetTriggersRequest$NextToken": "

A continuation token, if this is a continuation call.

", + "GetTriggersResponse$NextToken": "

A continuation token, if not all the requested triggers have yet been returned.

", + "JobCommand$Name": "

The name of this job command.

", + "StringList$member": null, + "Trigger$Schedule": "

A cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *).

", + "TriggerUpdate$Schedule": "

An updated cron expression used to specify the schedule (see Time-Based Schedules for Jobs and Crawlers. For example, to run something every day at 12:15 UTC, you would specify: cron(15 12 * * ? *).

", + "UpdateDevEndpointRequest$EndpointName": "

The name of the DevEndpoint to be updated.

", + "UpdateDevEndpointRequest$PublicKey": "

The public key for the DevEndpoint to use.

" + } + }, + "GetCatalogImportStatusRequest": { + "base": null, + "refs": { + } + }, + "GetCatalogImportStatusResponse": { + "base": null, + "refs": { + } + }, + "GetClassifierRequest": { + "base": null, + "refs": { + } + }, + "GetClassifierResponse": { + "base": null, + "refs": { + } + }, + "GetClassifiersRequest": { + "base": null, + "refs": { + } + }, + "GetClassifiersResponse": { + "base": null, + "refs": { + } + }, + "GetConnectionRequest": { + "base": null, + "refs": { + } + }, + "GetConnectionResponse": { + "base": null, + "refs": { + } + }, + "GetConnectionsFilter": { + "base": "

Filters the connection definitions returned by the GetConnections API.

", + "refs": { + "GetConnectionsRequest$Filter": "

A filter that controls which connections will be returned.

" + } + }, + "GetConnectionsRequest": { + "base": null, + "refs": { + } + }, + "GetConnectionsResponse": { + "base": null, + "refs": { + } + }, + "GetCrawlerMetricsRequest": { + "base": null, + "refs": { + } + }, + "GetCrawlerMetricsResponse": { + "base": null, + "refs": { + } + }, + "GetCrawlerRequest": { + "base": null, + "refs": { + } + }, + "GetCrawlerResponse": { + "base": null, + "refs": { + } + }, + "GetCrawlersRequest": { + "base": null, + "refs": { + } + }, + "GetCrawlersResponse": { + "base": null, + "refs": { + } + }, + "GetDatabaseRequest": { + "base": null, + "refs": { + } + }, + "GetDatabaseResponse": { + "base": null, + "refs": { + } + }, + "GetDatabasesRequest": { + "base": null, + "refs": { + } + }, + "GetDatabasesResponse": { + "base": null, + "refs": { + } + }, + "GetDataflowGraphRequest": { + "base": null, + "refs": { + } + }, + "GetDataflowGraphResponse": { + "base": null, + "refs": { + } + }, + "GetDevEndpointRequest": { + "base": null, + "refs": { + } + }, + "GetDevEndpointResponse": { + "base": null, + "refs": { + } + }, + "GetDevEndpointsRequest": { + "base": null, + "refs": { + } + }, + "GetDevEndpointsResponse": { + "base": null, + "refs": { + } + }, + "GetJobRequest": { + "base": null, + "refs": { + } + }, + "GetJobResponse": { + "base": null, + "refs": { + } + }, + "GetJobRunRequest": { + "base": null, + "refs": { + } + }, + "GetJobRunResponse": { + "base": null, + "refs": { + } + }, + "GetJobRunsRequest": { + "base": null, + "refs": { + } + }, + "GetJobRunsResponse": { + "base": null, + "refs": { + } + }, + "GetJobsRequest": { + "base": null, + "refs": { + } + }, + "GetJobsResponse": { + "base": null, + "refs": { + } + }, + "GetMappingRequest": { + "base": null, + "refs": { + } + }, + "GetMappingResponse": { + "base": null, + "refs": { + } + }, + "GetPartitionRequest": { + "base": null, + "refs": { + } + }, + "GetPartitionResponse": { + "base": null, + "refs": { + } + }, + "GetPartitionsRequest": { + "base": null, + "refs": { + } + }, + "GetPartitionsResponse": { + "base": null, + "refs": { + } + }, + "GetPlanRequest": { + "base": null, + "refs": { + } + }, + "GetPlanResponse": { + "base": null, + "refs": { + } + }, + "GetTableRequest": { + "base": null, + "refs": { + } + }, + "GetTableResponse": { + "base": null, + "refs": { + } + }, + "GetTableVersionsList": { + "base": null, + "refs": { + "GetTableVersionsResponse$TableVersions": "

A list of strings identifying available versions of the specified table.

" + } + }, + "GetTableVersionsRequest": { + "base": null, + "refs": { + } + }, + "GetTableVersionsResponse": { + "base": null, + "refs": { + } + }, + "GetTablesRequest": { + "base": null, + "refs": { + } + }, + "GetTablesResponse": { + "base": null, + "refs": { + } + }, + "GetTriggerRequest": { + "base": null, + "refs": { + } + }, + "GetTriggerResponse": { + "base": null, + "refs": { + } + }, + "GetTriggersRequest": { + "base": null, + "refs": { + } + }, + "GetTriggersResponse": { + "base": null, + "refs": { + } + }, + "GetUserDefinedFunctionRequest": { + "base": null, + "refs": { + } + }, + "GetUserDefinedFunctionResponse": { + "base": null, + "refs": { + } + }, + "GetUserDefinedFunctionsRequest": { + "base": null, + "refs": { + } + }, + "GetUserDefinedFunctionsResponse": { + "base": null, + "refs": { + } + }, + "GrokClassifier": { + "base": "

A classifier that uses grok patterns.

", + "refs": { + "Classifier$GrokClassifier": "

A GrokClassifier object.

" + } + }, + "GrokPattern": { + "base": null, + "refs": { + "CreateGrokClassifierRequest$GrokPattern": "

The grok pattern used by this classifier.

", + "GrokClassifier$GrokPattern": "

The grok pattern applied to a data store by this classifier. For more information, see built-in patterns in Writing Custom Classifers.

", + "UpdateGrokClassifierRequest$GrokPattern": "

The grok pattern used by this classifier.

" + } + }, + "IdString": { + "base": null, + "refs": { + "BatchStopJobRunError$JobRunId": "

The job run Id.

", + "BatchStopJobRunJobRunIdList$member": null, + "BatchStopJobRunSuccessfulSubmission$JobRunId": "

The job run Id.

", + "GetJobRunRequest$RunId": "

The ID of the job run.

", + "JobRun$Id": "

The ID of this job run.

", + "JobRun$PreviousRunId": "

The ID of the previous run of this job.

", + "Predecessor$RunId": "

The job-run ID of the precessor job run.

", + "StartJobRunRequest$JobRunId": "

The ID of the job run to start.

", + "StartJobRunResponse$JobRunId": "

The ID assigned to this job run.

", + "Trigger$Id": "

The trigger ID.

" + } + }, + "IdempotentParameterMismatchException": { + "base": "

The same unique identifier was associated with two different records.

", + "refs": { + } + }, + "ImportCatalogToGlueRequest": { + "base": null, + "refs": { + } + }, + "ImportCatalogToGlueResponse": { + "base": null, + "refs": { + } + }, + "Integer": { + "base": null, + "refs": { + "CodeGenNode$LineNumber": "

The line number of the node.

", + "StorageDescriptor$NumberOfBuckets": "

Must be specified if the table contains any dimension columns.

" + } + }, + "IntegerFlag": { + "base": null, + "refs": { + "Order$SortOrder": "

Indicates that the column is sorted in ascending order (== 1), or in descending order (==0).

" + } + }, + "IntegerValue": { + "base": null, + "refs": { + "CreateDevEndpointRequest$NumberOfNodes": "

The number of AWS Glue Data Processing Units (DPUs) to allocate to this DevEndpoint.

", + "CreateDevEndpointResponse$ZeppelinRemoteSparkInterpreterPort": "

The Apache Zeppelin port for the remote Apache Spark interpreter.

", + "CreateDevEndpointResponse$NumberOfNodes": "

The number of AWS Glue Data Processing Units (DPUs) allocated to this DevEndpoint.

", + "CreateJobRequest$AllocatedCapacity": "

The number of capacity units allocated to this job.

", + "DevEndpoint$ZeppelinRemoteSparkInterpreterPort": "

The Apache Zeppelin port for the remote Apache Spark interpreter.

", + "DevEndpoint$NumberOfNodes": "

The number of AWS Glue Data Processing Units (DPUs) allocated to this DevEndpoint.

", + "Job$AllocatedCapacity": "

The number of capacity units allocated to this job.

", + "JobBookmarkEntry$Version": "

Version of the job.

", + "JobBookmarkEntry$Run": "

The run ID number.

", + "JobBookmarkEntry$Attempt": "

The attempt ID number.

", + "JobRun$AllocatedCapacity": "

The amount of infrastructure capacity allocated to this job run.

", + "JobUpdate$AllocatedCapacity": "

The number of capacity units allocated to this job.

", + "StartJobRunRequest$AllocatedCapacity": "

The infrastructure capacity to allocate to this job.

" + } + }, + "InternalServiceException": { + "base": "

An internal service error occurred.

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

The input provided was not valid.

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

Specifies a JDBC data store to crawl.

", + "refs": { + "JdbcTargetList$member": null + } + }, + "JdbcTargetList": { + "base": null, + "refs": { + "CrawlerTargets$JdbcTargets": "

Specifies JDBC targets.

" + } + }, + "Job": { + "base": "

Specifies a job in the Data Catalog.

", + "refs": { + "GetJobResponse$Job": "

The requested job definition.

", + "JobList$member": null + } + }, + "JobBookmarkEntry": { + "base": "

Defines a point which a job can resume processing.

", + "refs": { + "ResetJobBookmarkResponse$JobBookmarkEntry": "

The reset bookmark entry.

" + } + }, + "JobCommand": { + "base": "

Specifies code that executes a job.

", + "refs": { + "CreateJobRequest$Command": "

The JobCommand that executes this job.

", + "Job$Command": "

The JobCommand that executes this job.

", + "JobUpdate$Command": "

The JobCommand that executes this job.

" + } + }, + "JobList": { + "base": null, + "refs": { + "GetJobsResponse$Jobs": "

A list of jobs.

" + } + }, + "JobName": { + "base": null, + "refs": { + "JobBookmarkEntry$JobName": "

Name of the job in question.

", + "ResetJobBookmarkRequest$JobName": "

The name of the job in question.

" + } + }, + "JobRun": { + "base": "

Contains information about a job run.

", + "refs": { + "GetJobRunResponse$JobRun": "

The requested job-run metadata.

", + "JobRunList$member": null + } + }, + "JobRunList": { + "base": null, + "refs": { + "GetJobRunsResponse$JobRuns": "

A list of job-run metatdata objects.

" + } + }, + "JobRunState": { + "base": null, + "refs": { + "Condition$State": "

The condition state.

", + "JobRun$JobRunState": "

The current state of the job run.

" + } + }, + "JobUpdate": { + "base": "

Specifies information used to update an existing job.

", + "refs": { + "UpdateJobRequest$JobUpdate": "

Specifies the values with which to update the job.

" + } + }, + "JsonValue": { + "base": null, + "refs": { + "JobBookmarkEntry$JobBookmark": "

The bookmark itself.

" + } + }, + "KeyString": { + "base": null, + "refs": { + "ParametersMap$key": null + } + }, + "LastCrawlInfo": { + "base": "

Status and error information about the most recent crawl.

", + "refs": { + "Crawler$LastCrawl": "

The status of the last crawl, and potentially error information if an error occurred.

" + } + }, + "LastCrawlStatus": { + "base": null, + "refs": { + "LastCrawlInfo$Status": "

Status of the last crawl.

" + } + }, + "Location": { + "base": "

The location of resources.

", + "refs": { + "GetMappingRequest$Location": "

Parameters for the mapping.

", + "GetPlanRequest$Location": "

Parameters for the mapping.

" + } + }, + "LocationMap": { + "base": null, + "refs": { + "SkewedInfo$SkewedColumnValueLocationMaps": "

A mapping of skewed values to the columns that contain them.

" + } + }, + "LocationString": { + "base": null, + "refs": { + "StorageDescriptor$Location": "

The physical location of the table. By default this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.

" + } + }, + "LogGroup": { + "base": null, + "refs": { + "LastCrawlInfo$LogGroup": "

The log group for the last crawl.

" + } + }, + "LogStream": { + "base": null, + "refs": { + "LastCrawlInfo$LogStream": "

The log stream for the last crawl.

" + } + }, + "Logical": { + "base": null, + "refs": { + "Predicate$Logical": "

Currently \"OR\" is not supported.

" + } + }, + "LogicalOperator": { + "base": null, + "refs": { + "Condition$LogicalOperator": "

A logical operator.

" + } + }, + "MappingEntry": { + "base": "

Defines a mapping.

", + "refs": { + "MappingList$member": null + } + }, + "MappingList": { + "base": null, + "refs": { + "GetMappingResponse$Mapping": "

A list of mappings to the specified targets.

", + "GetPlanRequest$Mapping": "

The list of mappings from a source table to target tables.

" + } + }, + "MatchCriteria": { + "base": null, + "refs": { + "Connection$MatchCriteria": "

A list of criteria that can be used in selecting this connection.

", + "ConnectionInput$MatchCriteria": "

A list of criteria that can be used in selecting this connection.

", + "GetConnectionsFilter$MatchCriteria": "

A criteria string that must match the criteria recorded in the connection definition for that connection definition to be returned.

" + } + }, + "MaxConcurrentRuns": { + "base": null, + "refs": { + "ExecutionProperty$MaxConcurrentRuns": "

The maximum number of concurrent runs allowed for a job.

" + } + }, + "MaxRetries": { + "base": null, + "refs": { + "CreateJobRequest$MaxRetries": "

The maximum number of times to retry this job if it fails.

", + "Job$MaxRetries": "

The maximum number of times to retry this job if it fails.

", + "JobUpdate$MaxRetries": "

The maximum number of times to retry this job if it fails.

" + } + }, + "MessagePrefix": { + "base": null, + "refs": { + "LastCrawlInfo$MessagePrefix": "

The prefix for a message about this crawl.

" + } + }, + "MessageString": { + "base": null, + "refs": { + "AccessDeniedException$Message": "

A message describing the problem.

", + "AlreadyExistsException$Message": "

A message describing the problem.

", + "ConcurrentModificationException$Message": "

A message describing the problem.

", + "ConcurrentRunsExceededException$Message": "

A message describing the problem.

", + "CrawlerNotRunningException$Message": "

A message describing the problem.

", + "CrawlerRunningException$Message": "

A message describing the problem.

", + "CrawlerStoppingException$Message": "

A message describing the problem.

", + "EntityNotFoundException$Message": "

A message describing the problem.

", + "IdempotentParameterMismatchException$Message": "

A message describing the problem.

", + "InternalServiceException$Message": "

A message describing the problem.

", + "InvalidInputException$Message": "

A message describing the problem.

", + "NoScheduleException$Message": "

A message describing the problem.

", + "OperationTimeoutException$Message": "

A message describing the problem.

", + "ResourceNumberLimitExceededException$Message": "

A message describing the problem.

", + "SchedulerNotRunningException$Message": "

A message describing the problem.

", + "SchedulerRunningException$Message": "

A message describing the problem.

", + "SchedulerTransitioningException$Message": "

A message describing the problem.

", + "ValidationException$Message": "

A message describing the problem.

", + "VersionMismatchException$Message": "

A message describing the problem.

" + } + }, + "MillisecondsCount": { + "base": null, + "refs": { + "Crawler$CrawlElapsedTime": "

If the crawler is running, contains the total time elapsed since the last crawl began.

" + } + }, + "NameString": { + "base": null, + "refs": { + "Action$JobName": "

The name of a job to be executed.

", + "BatchCreatePartitionRequest$DatabaseName": "

The name of the metadata database in which the partition is to be created.

", + "BatchCreatePartitionRequest$TableName": "

The name of the metadata table in which the partition is to be created.

", + "BatchDeletePartitionRequest$DatabaseName": "

The name of the catalog database in which the table in question resides.

", + "BatchDeletePartitionRequest$TableName": "

The name of the table where the partitions to be deleted is located.

", + "BatchDeleteTableNameList$member": null, + "BatchDeleteTableRequest$DatabaseName": "

The name of the catalog database where the tables to delete reside.

", + "BatchGetPartitionRequest$DatabaseName": "

The name of the catalog database where the partitions reside.

", + "BatchGetPartitionRequest$TableName": "

The name of the partitions' table.

", + "BatchStopJobRunError$JobName": "

The name of the job.

", + "BatchStopJobRunRequest$JobName": "

The name of the job whose job runs are to be stopped.

", + "BatchStopJobRunSuccessfulSubmission$JobName": "

The name of the job.

", + "CatalogEntry$DatabaseName": "

The database in which the table metadata resides.

", + "CatalogEntry$TableName": "

The name of the table in question.

", + "CatalogImportStatus$ImportedBy": "

The name of the person who initiated the migration.

", + "ClassifierNameList$member": null, + "Column$Name": "

The name of the Column.

", + "Condition$JobName": "

The name of the job in question.

", + "Connection$Name": "

The name of the connection definition.

", + "Connection$LastUpdatedBy": "

The user, group or role that last updated this connection definition.

", + "ConnectionInput$Name": "

The name of the connection.

", + "Crawler$Name": "

The crawler name.

", + "CrawlerMetrics$CrawlerName": "

The name of the crawler.

", + "CrawlerNameList$member": null, + "CreateCrawlerRequest$Name": "

Name of the new crawler.

", + "CreateGrokClassifierRequest$Name": "

The name of the new classifier.

", + "CreateJobRequest$Name": "

The name you assign to this job.

", + "CreateJobResponse$Name": "

The unique name of the new job that has been created.

", + "CreatePartitionRequest$DatabaseName": "

The name of the metadata database in which the partition is to be created.

", + "CreatePartitionRequest$TableName": "

The name of the metadata table in which the partition is to be created.

", + "CreateTableRequest$DatabaseName": "

The catalog database in which to create the new table.

", + "CreateTriggerRequest$Name": "

The name to assign to the new trigger.

", + "CreateTriggerResponse$Name": "

The name assigned to the new trigger.

", + "CreateUserDefinedFunctionRequest$DatabaseName": "

The name of the catalog database in which to create the function.

", + "CreateXMLClassifierRequest$Name": "

The name of the classifier.

", + "Database$Name": "

Name of the database.

", + "DatabaseInput$Name": "

Name of the database.

", + "DeleteClassifierRequest$Name": "

Name of the classifier to remove.

", + "DeleteConnectionNameList$member": null, + "DeleteConnectionRequest$ConnectionName": "

The name of the connection to delete.

", + "DeleteCrawlerRequest$Name": "

Name of the crawler to remove.

", + "DeleteDatabaseRequest$Name": "

The name of the Database to delete.

", + "DeleteJobRequest$JobName": "

The name of the job to delete.

", + "DeleteJobResponse$JobName": "

The name of the job that was deleted.

", + "DeletePartitionRequest$DatabaseName": "

The name of the catalog database in which the table in question resides.

", + "DeletePartitionRequest$TableName": "

The name of the table where the partition to be deleted is located.

", + "DeleteTableRequest$DatabaseName": "

The name of the catalog database in which the table resides.

", + "DeleteTableRequest$Name": "

The name of the table to be deleted.

", + "DeleteTriggerRequest$Name": "

The name of the trigger to delete.

", + "DeleteTriggerResponse$Name": "

The name of the trigger that was deleted.

", + "DeleteUserDefinedFunctionRequest$DatabaseName": "

The name of the catalog database where the function is located.

", + "DeleteUserDefinedFunctionRequest$FunctionName": "

The name of the function definition to be deleted.

", + "ErrorByName$key": null, + "ErrorDetail$ErrorCode": "

The code associated with this error.

", + "GetClassifierRequest$Name": "

Name of the classifier to retrieve.

", + "GetConnectionRequest$Name": "

The name of the connection definition to retrieve.

", + "GetCrawlerRequest$Name": "

Name of the crawler to retrieve metadata for.

", + "GetDatabaseRequest$Name": "

The name of the database to retrieve.

", + "GetJobRequest$JobName": "

The name of the job to retrieve.

", + "GetJobRunRequest$JobName": "

Name of the job being run.

", + "GetJobRunsRequest$JobName": "

The name of the job for which to retrieve all job runs.

", + "GetPartitionRequest$DatabaseName": "

The name of the catalog database where the partition resides.

", + "GetPartitionRequest$TableName": "

The name of the partition's table.

", + "GetPartitionsRequest$DatabaseName": "

The name of the catalog database where the partitions reside.

", + "GetPartitionsRequest$TableName": "

The name of the partitions' table.

", + "GetTableRequest$DatabaseName": "

The name of the database in the catalog in which the table resides.

", + "GetTableRequest$Name": "

The name of the table for which to retrieve the definition.

", + "GetTableVersionsRequest$DatabaseName": "

The database in the catalog in which the table resides.

", + "GetTableVersionsRequest$TableName": "

The name of the table.

", + "GetTablesRequest$DatabaseName": "

The database in the catalog whose tables to list.

", + "GetTriggerRequest$Name": "

The name of the trigger to retrieve.

", + "GetTriggersRequest$DependentJobName": "

The name of the job for which to retrieve triggers.

", + "GetUserDefinedFunctionRequest$DatabaseName": "

The name of the catalog database where the function is located.

", + "GetUserDefinedFunctionRequest$FunctionName": "

The name of the function.

", + "GetUserDefinedFunctionsRequest$DatabaseName": "

The name of the catalog database where the functions are located.

", + "GetUserDefinedFunctionsRequest$Pattern": "

An optional function-name pattern string that filters the function definitions returned.

", + "GrokClassifier$Name": "

The name of the classifier.

", + "Job$Name": "

The name you assign to this job.

", + "JobRun$TriggerName": "

The name of the trigger for this job run.

", + "JobRun$JobName": "

The name of the job being run.

", + "MatchCriteria$member": null, + "NameStringList$member": null, + "Order$Column": "

The name of the column.

", + "Partition$DatabaseName": "

The name of the catalog database where the table in question is located.

", + "Partition$TableName": "

The name of the table in question.

", + "PhysicalConnectionRequirements$SubnetId": "

The subnet ID used by the connection.

", + "PhysicalConnectionRequirements$AvailabilityZone": "

The connection's availability zone.

", + "Predecessor$JobName": "

The name of the predecessor job.

", + "SecurityGroupIdList$member": null, + "SerDeInfo$Name": "

Name of the SerDe.

", + "SerDeInfo$SerializationLibrary": "

Usually the class that implements the SerDe. An example is: org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe.

", + "StartCrawlerRequest$Name": "

Name of the crawler to start.

", + "StartCrawlerScheduleRequest$CrawlerName": "

Name of the crawler to schedule.

", + "StartJobRunRequest$JobName": "

The name of the job to start.

", + "StartTriggerRequest$Name": "

The name of the trigger to start.

", + "StartTriggerResponse$Name": "

The name of the trigger that was started.

", + "StopCrawlerRequest$Name": "

Name of the crawler to stop.

", + "StopCrawlerScheduleRequest$CrawlerName": "

Name of the crawler whose schedule state to set.

", + "StopTriggerRequest$Name": "

The name of the trigger to stop.

", + "StopTriggerResponse$Name": "

The name of the trigger that was stopped.

", + "Table$Name": "

Name of the table.

", + "Table$DatabaseName": "

Name of the metadata database where the table metadata resides.

", + "Table$Owner": "

Owner of the table.

", + "Table$CreatedBy": "

Person or entity who created the table.

", + "TableError$TableName": "

Name of the table.

", + "TableInput$Name": "

Name of the table.

", + "TableInput$Owner": "

Owner of the table.

", + "Trigger$Name": "

Name of the trigger.

", + "TriggerUpdate$Name": "

The name of the trigger.

", + "UpdateConnectionRequest$Name": "

The name of the connection definition to update.

", + "UpdateCrawlerRequest$Name": "

Name of the new crawler.

", + "UpdateCrawlerScheduleRequest$CrawlerName": "

Name of the crawler whose schedule to update.

", + "UpdateDatabaseRequest$Name": "

The name of the metadata database to update in the catalog.

", + "UpdateGrokClassifierRequest$Name": "

The name of the GrokClassifier.

", + "UpdateJobRequest$JobName": "

Name of the job definition to update.

", + "UpdateJobResponse$JobName": "

Returns the name of the updated job.

", + "UpdatePartitionRequest$DatabaseName": "

The name of the catalog database in which the table in question resides.

", + "UpdatePartitionRequest$TableName": "

The name of the table where the partition to be updated is located.

", + "UpdateTableRequest$DatabaseName": "

The name of the catalog database in which the table resides.

", + "UpdateTriggerRequest$Name": "

The name of the trigger to update.

", + "UpdateUserDefinedFunctionRequest$DatabaseName": "

The name of the catalog database where the function to be updated is located.

", + "UpdateUserDefinedFunctionRequest$FunctionName": "

The name of the function.

", + "UpdateXMLClassifierRequest$Name": "

The name of the classifier.

", + "UserDefinedFunction$FunctionName": "

The name of the function.

", + "UserDefinedFunction$ClassName": "

The Java class that contains the function code.

", + "UserDefinedFunction$OwnerName": "

The owner of the function.

", + "UserDefinedFunctionInput$FunctionName": "

The name of the function.

", + "UserDefinedFunctionInput$ClassName": "

The Java class that contains the function code.

", + "UserDefinedFunctionInput$OwnerName": "

The owner of the function.

", + "XMLClassifier$Name": "

The name of the classifier.

" + } + }, + "NameStringList": { + "base": null, + "refs": { + "BatchDeleteConnectionResponse$Succeeded": "

A list of names of the connection definitions that were successfully deleted.

", + "SkewedInfo$SkewedColumnNames": "

A list of names of columns that contain skewed values.

", + "StorageDescriptor$BucketColumns": "

A list of reducer grouping columns, clustering columns, and bucketing columns in the table.

" + } + }, + "NoScheduleException": { + "base": "

There is no applicable schedule.

", + "refs": { + } + }, + "NonNegativeDouble": { + "base": null, + "refs": { + "CrawlerMetrics$TimeLeftSeconds": "

The estimated time left to complete a running crawl.

", + "CrawlerMetrics$LastRuntimeSeconds": "

The duration of the crawler's most recent run, in seconds.

", + "CrawlerMetrics$MedianRuntimeSeconds": "

The median duration of this crawler's runs, in seconds.

" + } + }, + "NonNegativeInteger": { + "base": null, + "refs": { + "CrawlerMetrics$TablesCreated": "

The number of tables created by this crawler.

", + "CrawlerMetrics$TablesUpdated": "

The number of tables updated by this crawler.

", + "CrawlerMetrics$TablesDeleted": "

The number of tables deleted by this crawler.

", + "Segment$SegmentNumber": "

The zero-based index number of the this segment. For example, if the total number of segments is 4, SegmentNumber values will range from zero through three.

", + "Table$Retention": "

Retention time for this table.

", + "TableInput$Retention": "

Retention time for this table.

" + } + }, + "OperationTimeoutException": { + "base": "

The operation timed out.

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

Specifies the sort order of a sorted column.

", + "refs": { + "OrderList$member": null + } + }, + "OrderList": { + "base": null, + "refs": { + "StorageDescriptor$SortColumns": "

A list specifying the sort order of each bucket in the table.

" + } + }, + "PageSize": { + "base": null, + "refs": { + "GetClassifiersRequest$MaxResults": "

Size of the list to return (optional).

", + "GetConnectionsRequest$MaxResults": "

The maximum number of connections to return in one response.

", + "GetCrawlerMetricsRequest$MaxResults": "

The maximum size of a list to return.

", + "GetCrawlersRequest$MaxResults": "

The number of crawlers to return on each call.

", + "GetDatabasesRequest$MaxResults": "

The maximum number of databases to return in one response.

", + "GetDevEndpointsRequest$MaxResults": "

The maximum size of information to return.

", + "GetJobRunsRequest$MaxResults": "

The maximum size of the response.

", + "GetJobsRequest$MaxResults": "

The maximum size of the response.

", + "GetPartitionsRequest$MaxResults": "

The maximum number of partitions to return in a single response.

", + "GetTableVersionsRequest$MaxResults": "

The maximum number of table versions to return in one response.

", + "GetTablesRequest$MaxResults": "

The maximum number of tables to return in a single response.

", + "GetTriggersRequest$MaxResults": "

The maximum size of the response.

", + "GetUserDefinedFunctionsRequest$MaxResults": "

The maximum number of functions to return in one response.

" + } + }, + "ParametersMap": { + "base": null, + "refs": { + "Database$Parameters": "

A list of key-value pairs that define parameters and properties of the database.

", + "DatabaseInput$Parameters": "

A list of key-value pairs that define parameters and properties of the database.

", + "Partition$Parameters": "

Partition parameters, in the form of a list of key-value pairs.

", + "PartitionInput$Parameters": "

Partition parameters, in the form of a list of key-value pairs.

", + "SerDeInfo$Parameters": "

A list of initialization parameters for the SerDe, in key-value form.

", + "StorageDescriptor$Parameters": "

User-supplied properties in key-value form.

", + "Table$Parameters": "

Properties associated with this table, as a list of key-value pairs.

", + "TableInput$Parameters": "

Properties associated with this table, as a list of key-value pairs.

" + } + }, + "ParametersMapValue": { + "base": null, + "refs": { + "ParametersMap$value": null + } + }, + "Partition": { + "base": "

Represents a slice of table data.

", + "refs": { + "GetPartitionResponse$Partition": "

The requested information, in the form of a Partition object.

", + "PartitionList$member": null + } + }, + "PartitionError": { + "base": "

Contains information about a partition error.

", + "refs": { + "PartitionErrors$member": null + } + }, + "PartitionErrors": { + "base": null, + "refs": { + "BatchCreatePartitionResponse$Errors": "

Errors encountered when trying to create the requested partitions.

", + "BatchDeletePartitionResponse$Errors": "

Errors encountered when trying to delete the requested partitions.

" + } + }, + "PartitionInput": { + "base": "

The structure used to create and update a partion.

", + "refs": { + "CreatePartitionRequest$PartitionInput": "

A PartitionInput structure defining the partition to be created.

", + "PartitionInputList$member": null, + "UpdatePartitionRequest$PartitionInput": "

The new partition object to which to update the partition.

" + } + }, + "PartitionInputList": { + "base": null, + "refs": { + "BatchCreatePartitionRequest$PartitionInputList": "

A list of PartitionInput structures that define the partitions to be created.

" + } + }, + "PartitionList": { + "base": null, + "refs": { + "BatchGetPartitionResponse$Partitions": "

A list of the requested partitions.

", + "GetPartitionsResponse$Partitions": "

A list of requested partitions.

" + } + }, + "PartitionValueList": { + "base": "

Contains a list of values defining partitions.

", + "refs": { + "BatchDeletePartitionValueList$member": null, + "BatchGetPartitionValueList$member": null + } + }, + "Path": { + "base": null, + "refs": { + "JdbcTarget$Path": "

The path of the JDBC target.

", + "PathList$member": null, + "S3Target$Path": "

The path to the Amazon S3 target.

" + } + }, + "PathList": { + "base": null, + "refs": { + "JdbcTarget$Exclusions": "

A list of glob patterns used to exclude from the crawl. For more information, see Catalog Tables with a Crawler.

", + "S3Target$Exclusions": "

A list of glob patterns used to exclude from the crawl. For more information, see Catalog Tables with a Crawler.

" + } + }, + "PhysicalConnectionRequirements": { + "base": "

Specifies the physical requirements for a connection.

", + "refs": { + "Connection$PhysicalConnectionRequirements": "

A map of physical connection requirements, such as VPC and SecurityGroup, needed for making this connection successfully.

", + "ConnectionInput$PhysicalConnectionRequirements": "

A map of physical connection requirements, such as VPC and SecurityGroup, needed for making this connection successfully.

" + } + }, + "Predecessor": { + "base": "

A job run that preceded this one.

", + "refs": { + "PredecessorList$member": null + } + }, + "PredecessorList": { + "base": null, + "refs": { + "JobRun$PredecessorRuns": "

A list of predecessors to this job run.

" + } + }, + "Predicate": { + "base": "

Defines the predicate of the trigger, which determines when it fires.

", + "refs": { + "CreateTriggerRequest$Predicate": "

A predicate to specify when the new trigger should fire.

", + "Trigger$Predicate": "

The predicate of this trigger.

", + "TriggerUpdate$Predicate": "

The predicate of this trigger, which defines when it will fire.

" + } + }, + "PredicateString": { + "base": null, + "refs": { + "GetPartitionsRequest$Expression": "

An expression filtering the partitions to be returned.

" + } + }, + "PrincipalType": { + "base": null, + "refs": { + "UserDefinedFunction$OwnerType": "

The owner type.

", + "UserDefinedFunctionInput$OwnerType": "

The owner type.

" + } + }, + "PythonScript": { + "base": null, + "refs": { + "CreateScriptResponse$PythonScript": "

The Python script generated from the DAG.

", + "GetDataflowGraphRequest$PythonScript": "

The Python script to transform.

", + "GetPlanResponse$PythonScript": "

A Python script to perform the mapping.

" + } + }, + "ResetJobBookmarkRequest": { + "base": null, + "refs": { + } + }, + "ResetJobBookmarkResponse": { + "base": null, + "refs": { + } + }, + "ResourceNumberLimitExceededException": { + "base": "

A resource numerical limit was exceeded.

", + "refs": { + } + }, + "ResourceType": { + "base": null, + "refs": { + "ResourceUri$ResourceType": "

The type of the resource.

" + } + }, + "ResourceUri": { + "base": "

URIs for function resources.

", + "refs": { + "ResourceUriList$member": null + } + }, + "ResourceUriList": { + "base": null, + "refs": { + "UserDefinedFunction$ResourceUris": "

The resource URIs for the function.

", + "UserDefinedFunctionInput$ResourceUris": "

The resource URIs for the function.

" + } + }, + "Role": { + "base": null, + "refs": { + "Crawler$Role": "

The IAM role (or ARN of an IAM role) used to access customer resources, such as data in Amazon S3.

", + "CreateCrawlerRequest$Role": "

The IAM role (or ARN of an IAM role) used by the new crawler to access customer resources.

", + "UpdateCrawlerRequest$Role": "

The IAM role (or ARN of an IAM role) used by the new crawler to access customer resources.

" + } + }, + "RoleArn": { + "base": null, + "refs": { + "CreateDevEndpointRequest$RoleArn": "

The IAM role for the DevEndpoint.

", + "CreateDevEndpointResponse$RoleArn": "

The AWS ARN of the role assigned to the new DevEndpoint.

", + "DevEndpoint$RoleArn": "

The AWS ARN of the IAM role used in this DevEndpoint.

" + } + }, + "RoleString": { + "base": null, + "refs": { + "CreateJobRequest$Role": "

The role associated with this job.

", + "Job$Role": "

The role associated with this job.

", + "JobUpdate$Role": "

The role associated with this job.

" + } + }, + "RowTag": { + "base": null, + "refs": { + "CreateXMLClassifierRequest$RowTag": "

The XML tag designating the element that contains each record in an XML document being parsed. Note that this cannot be an empty element. It must contain child elements representing fields in the record.

", + "UpdateXMLClassifierRequest$RowTag": "

The XML tag designating the element that contains each record in an XML document being parsed. Note that this cannot be an empty element. It must contain child elements representing fields in the record.

", + "XMLClassifier$RowTag": "

The XML tag designating the element that contains each record in an XML document being parsed. Note that this cannot be an empty element. It must contain child elements representing fields in the record.

" + } + }, + "S3Target": { + "base": "

Specifies a data store in Amazon S3.

", + "refs": { + "S3TargetList$member": null + } + }, + "S3TargetList": { + "base": null, + "refs": { + "CrawlerTargets$S3Targets": "

Specifies Amazon S3 targets.

" + } + }, + "Schedule": { + "base": "

A scheduling object using a cron statement to schedule an event.

", + "refs": { + "Crawler$Schedule": "

For scheduled crawlers, the schedule when the crawler runs.

" + } + }, + "ScheduleState": { + "base": null, + "refs": { + "Schedule$State": "

The state of the schedule.

" + } + }, + "SchedulerNotRunningException": { + "base": "

The specified scheduler is not running.

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

The specified scheduler is already running.

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

The specified scheduler is transitioning.

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

Crawler policy for update and deletion behavior.

", + "refs": { + "Crawler$SchemaChangePolicy": "

Sets the behavior when the crawler finds a changed or deleted object.

", + "CreateCrawlerRequest$SchemaChangePolicy": "

Policy for the crawler's update and deletion behavior.

", + "UpdateCrawlerRequest$SchemaChangePolicy": "

Policy for the crawler's update and deletion behavior.

" + } + }, + "SchemaPathString": { + "base": null, + "refs": { + "MappingEntry$SourcePath": "

The source path.

", + "MappingEntry$TargetPath": "

The target path.

" + } + }, + "ScriptLocationString": { + "base": null, + "refs": { + "JobCommand$ScriptLocation": "

Specifies the location of a script that executes a job.

" + } + }, + "SecurityGroupIdList": { + "base": null, + "refs": { + "PhysicalConnectionRequirements$SecurityGroupIdList": "

The security group ID list used by the connection.

" + } + }, + "Segment": { + "base": "

Defines a non-overlapping region of a table's partitions, allowing multiple requests to be executed in parallel.

", + "refs": { + "GetPartitionsRequest$Segment": "

The segment of the table's partitions to scan in this request.

" + } + }, + "SerDeInfo": { + "base": "

Information about a serialization/deserialization program (SerDe) which serves as an extractor and loader.

", + "refs": { + "StorageDescriptor$SerdeInfo": "

Serialization/deserialization (SerDe) information.

" + } + }, + "SkewedInfo": { + "base": "

Specifies skewed values in a table. Skewed are ones that occur with very high frequency.

", + "refs": { + "StorageDescriptor$SkewedInfo": "

Information about values that appear very frequently in a column (skewed values).

" + } + }, + "StartCrawlerRequest": { + "base": null, + "refs": { + } + }, + "StartCrawlerResponse": { + "base": null, + "refs": { + } + }, + "StartCrawlerScheduleRequest": { + "base": null, + "refs": { + } + }, + "StartCrawlerScheduleResponse": { + "base": null, + "refs": { + } + }, + "StartJobRunRequest": { + "base": null, + "refs": { + } + }, + "StartJobRunResponse": { + "base": null, + "refs": { + } + }, + "StartTriggerRequest": { + "base": null, + "refs": { + } + }, + "StartTriggerResponse": { + "base": null, + "refs": { + } + }, + "StopCrawlerRequest": { + "base": null, + "refs": { + } + }, + "StopCrawlerResponse": { + "base": null, + "refs": { + } + }, + "StopCrawlerScheduleRequest": { + "base": null, + "refs": { + } + }, + "StopCrawlerScheduleResponse": { + "base": null, + "refs": { + } + }, + "StopTriggerRequest": { + "base": null, + "refs": { + } + }, + "StopTriggerResponse": { + "base": null, + "refs": { + } + }, + "StorageDescriptor": { + "base": "

Describes the physical storage of table data.

", + "refs": { + "Partition$StorageDescriptor": "

Provides information about the physical location where the partition is stored.

", + "PartitionInput$StorageDescriptor": "

Provides information about the physical location where the partition is stored.

", + "Table$StorageDescriptor": "

A storage descriptor containing information about the physical storage of this table.

", + "TableInput$StorageDescriptor": "

A storage descriptor containing information about the physical storage of this table.

" + } + }, + "StringList": { + "base": null, + "refs": { + "ConnectionsList$Connections": "

A list of connections used by the job.

", + "CreateDevEndpointRequest$SecurityGroupIds": "

Security group IDs for the security groups to be used by the new DevEndpoint.

", + "CreateDevEndpointResponse$SecurityGroupIds": "

The security groups assigned to the new DevEndpoint.

", + "DevEndpoint$SecurityGroupIds": "

A list of security group identifiers used in this DevEndpoint.

" + } + }, + "Table": { + "base": "

Represents a collection of related data organized in columns and rows.

", + "refs": { + "GetTableResponse$Table": "

The Table object that defines the specified table.

", + "TableList$member": null, + "TableVersion$Table": "

The table in question

" + } + }, + "TableError": { + "base": "

An error record for table operations.

", + "refs": { + "TableErrors$member": null + } + }, + "TableErrors": { + "base": null, + "refs": { + "BatchDeleteTableResponse$Errors": "

A list of errors encountered in attempting to delete the specified tables.

" + } + }, + "TableInput": { + "base": "

Structure used to create or update the table.

", + "refs": { + "CreateTableRequest$TableInput": "

The TableInput object that defines the metadata table to create in the catalog.

", + "UpdateTableRequest$TableInput": "

An updated TableInput object to define the metadata table in the catalog.

" + } + }, + "TableList": { + "base": null, + "refs": { + "GetTablesResponse$TableList": "

A list of the requested Table objects.

" + } + }, + "TableName": { + "base": null, + "refs": { + "MappingEntry$SourceTable": "

The name of the source table.

", + "MappingEntry$TargetTable": "

The target table.

" + } + }, + "TablePrefix": { + "base": null, + "refs": { + "Crawler$TablePrefix": "

The prefix added to the names of tables that are created.

", + "CreateCrawlerRequest$TablePrefix": "

The table prefix used for catalog tables that are created.

", + "UpdateCrawlerRequest$TablePrefix": "

The table prefix used for catalog tables that are created.

" + } + }, + "TableTypeString": { + "base": null, + "refs": { + "Table$TableType": "

The type of this table (EXTERNAL_TABLE, VIRTUAL_VIEW, etc.).

", + "TableInput$TableType": "

The type of this table (EXTERNAL_TABLE, VIRTUAL_VIEW, etc.).

" + } + }, + "TableVersion": { + "base": "

Specifies a version of a table.

", + "refs": { + "GetTableVersionsList$member": null + } + }, + "Timestamp": { + "base": null, + "refs": { + "CatalogImportStatus$ImportTime": "

The time that the migration was started.

", + "Connection$CreationTime": "

The time this connection definition was created.

", + "Connection$LastUpdatedTime": "

The last time this connection definition was updated.

", + "Crawler$CreationTime": "

The time when the crawler was created.

", + "Crawler$LastUpdated": "

The time the crawler was last updated.

", + "Database$CreateTime": "

The time at which the metadata database was created in the catalog.

", + "GrokClassifier$CreationTime": "

The time this classifier was registered.

", + "GrokClassifier$LastUpdated": "

The time this classifier was last updated.

", + "LastCrawlInfo$StartTime": "

The time at which the crawl started.

", + "Partition$CreationTime": "

The time at which the partition was created.

", + "Partition$LastAccessTime": "

The last time at which the partition was accessed.

", + "Partition$LastAnalyzedTime": "

The last time at which column statistics were computed for this partition.

", + "PartitionInput$LastAccessTime": "

The last time at which the partition was accessed.

", + "PartitionInput$LastAnalyzedTime": "

The last time at which column statistics were computed for this partition.

", + "Table$CreateTime": "

Time when the table definition was created in the Data Catalog.

", + "Table$UpdateTime": "

Last time the table was updated.

", + "Table$LastAccessTime": "

Last time the table was accessed. This is usually taken from HDFS, and may not be reliable.

", + "Table$LastAnalyzedTime": "

Last time column statistics were computed for this table.

", + "TableInput$LastAccessTime": "

Last time the table was accessed.

", + "TableInput$LastAnalyzedTime": "

Last time column statistics were computed for this table.

", + "UserDefinedFunction$CreateTime": "

The time at which the function was created.

", + "XMLClassifier$CreationTime": "

The time this classifier was registered.

", + "XMLClassifier$LastUpdated": "

The time this classifier was last updated.

" + } + }, + "TimestampValue": { + "base": null, + "refs": { + "CreateDevEndpointResponse$CreatedTimestamp": "

The point in time at which this DevEndpoint was created.

", + "DevEndpoint$CreatedTimestamp": "

The point in time at which this DevEndpoint was created.

", + "DevEndpoint$LastModifiedTimestamp": "

The point in time at which this DevEndpoint was last modified.

", + "Job$CreatedOn": "

The time and date that this job specification was created.

", + "Job$LastModifiedOn": "

The last point in time when this job specification was modified.

", + "JobRun$StartedOn": "

The date and time at which this job run was started.

", + "JobRun$LastModifiedOn": "

The last time this job run was modified.

", + "JobRun$CompletedOn": "

The date and time this job run completed.

" + } + }, + "Token": { + "base": null, + "refs": { + "GetClassifiersRequest$NextToken": "

An optional continuation token.

", + "GetClassifiersResponse$NextToken": "

A continuation token.

", + "GetConnectionsRequest$NextToken": "

A continuation token, if this is a continuation call.

", + "GetConnectionsResponse$NextToken": "

A continuation token, if the list of connections returned does not include the last of the filtered connections.

", + "GetCrawlerMetricsRequest$NextToken": "

A continuation token, if this is a continuation call.

", + "GetCrawlerMetricsResponse$NextToken": "

A continuation token, if the returned list does not contain the last metric available.

", + "GetCrawlersRequest$NextToken": "

A continuation token, if this is a continuation request.

", + "GetCrawlersResponse$NextToken": "

A continuation token, if the returned list has not reached the end of those defined in this customer account.

", + "GetDatabasesRequest$NextToken": "

A continuation token, if this is a continuation call.

", + "GetDatabasesResponse$NextToken": "

A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.

", + "GetPartitionsRequest$NextToken": "

A continuation token, if this is not the first call to retrieve these partitions.

", + "GetPartitionsResponse$NextToken": "

A continuation token, if the returned list of partitions does not does not include the last one.

", + "GetTableVersionsRequest$NextToken": "

A continuation token, if this is not the first call.

", + "GetTableVersionsResponse$NextToken": "

A continuation token, if the list of available versions does not include the last one.

", + "GetTablesRequest$NextToken": "

A continuation token, included if this is a continuation call.

", + "GetTablesResponse$NextToken": "

A continuation token, present if the current list segment is not the last.

", + "GetUserDefinedFunctionsRequest$NextToken": "

A continuation token, if this is a continuation call.

", + "GetUserDefinedFunctionsResponse$NextToken": "

A continuation token, if the list of functions returned does not include the last requested function.

" + } + }, + "TotalSegmentsInteger": { + "base": null, + "refs": { + "Segment$TotalSegments": "

The total numer of segments.

" + } + }, + "Trigger": { + "base": "

Information about a specific trigger.

", + "refs": { + "GetTriggerResponse$Trigger": "

The requested trigger definition.

", + "TriggerList$member": null, + "UpdateTriggerResponse$Trigger": "

The resulting trigger definition.

" + } + }, + "TriggerList": { + "base": null, + "refs": { + "GetTriggersResponse$Triggers": "

A list of triggers for the specified job.

" + } + }, + "TriggerState": { + "base": null, + "refs": { + "Trigger$State": "

The current state of the trigger.

" + } + }, + "TriggerType": { + "base": null, + "refs": { + "CreateTriggerRequest$Type": "

The type of the new trigger.

", + "Trigger$Type": "

The type of trigger that this is.

" + } + }, + "TriggerUpdate": { + "base": "

A structure used to provide information used to updata a trigger.

", + "refs": { + "UpdateTriggerRequest$TriggerUpdate": "

The new values with which to update the trigger.

" + } + }, + "URI": { + "base": null, + "refs": { + "Database$LocationUri": "

The location of the database (for example, an HDFS path).

", + "DatabaseInput$LocationUri": "

The location of the database (for example, an HDFS path).

", + "ResourceUri$Uri": "

The URI for accessing the resource.

" + } + }, + "UpdateBehavior": { + "base": null, + "refs": { + "SchemaChangePolicy$UpdateBehavior": "

The update behavior when the crawler finds a changed schema.

" + } + }, + "UpdateClassifierRequest": { + "base": null, + "refs": { + } + }, + "UpdateClassifierResponse": { + "base": null, + "refs": { + } + }, + "UpdateConnectionRequest": { + "base": null, + "refs": { + } + }, + "UpdateConnectionResponse": { + "base": null, + "refs": { + } + }, + "UpdateCrawlerRequest": { + "base": null, + "refs": { + } + }, + "UpdateCrawlerResponse": { + "base": null, + "refs": { + } + }, + "UpdateCrawlerScheduleRequest": { + "base": null, + "refs": { + } + }, + "UpdateCrawlerScheduleResponse": { + "base": null, + "refs": { + } + }, + "UpdateDatabaseRequest": { + "base": null, + "refs": { + } + }, + "UpdateDatabaseResponse": { + "base": null, + "refs": { + } + }, + "UpdateDevEndpointRequest": { + "base": null, + "refs": { + } + }, + "UpdateDevEndpointResponse": { + "base": null, + "refs": { + } + }, + "UpdateGrokClassifierRequest": { + "base": "

Specifies a grok classifier to update when passed to UpdateClassifier.

", + "refs": { + "UpdateClassifierRequest$GrokClassifier": "

A GrokClassifier object with updated fields.

" + } + }, + "UpdateJobRequest": { + "base": null, + "refs": { + } + }, + "UpdateJobResponse": { + "base": null, + "refs": { + } + }, + "UpdatePartitionRequest": { + "base": null, + "refs": { + } + }, + "UpdatePartitionResponse": { + "base": null, + "refs": { + } + }, + "UpdateTableRequest": { + "base": null, + "refs": { + } + }, + "UpdateTableResponse": { + "base": null, + "refs": { + } + }, + "UpdateTriggerRequest": { + "base": null, + "refs": { + } + }, + "UpdateTriggerResponse": { + "base": null, + "refs": { + } + }, + "UpdateUserDefinedFunctionRequest": { + "base": null, + "refs": { + } + }, + "UpdateUserDefinedFunctionResponse": { + "base": null, + "refs": { + } + }, + "UpdateXMLClassifierRequest": { + "base": "

Specifies an XML classifier to be updated.

", + "refs": { + "UpdateClassifierRequest$XMLClassifier": "

An XMLClassifier object with updated fields.

" + } + }, + "UriString": { + "base": null, + "refs": { + "CreateJobRequest$LogUri": "

This field is reserved for future use.

", + "Job$LogUri": "

This field is reserved for future use.

", + "JobUpdate$LogUri": "

This field is reserved for future use.

" + } + }, + "UserDefinedFunction": { + "base": "

Represents the equivalent of a Hive user-defined function (UDF) definition.

", + "refs": { + "GetUserDefinedFunctionResponse$UserDefinedFunction": "

The requested function definition.

", + "UserDefinedFunctionList$member": null + } + }, + "UserDefinedFunctionInput": { + "base": "

A structure used to create or updata a user-defined function.

", + "refs": { + "CreateUserDefinedFunctionRequest$FunctionInput": "

A FunctionInput object that defines the function to create in the Data Catalog.

", + "UpdateUserDefinedFunctionRequest$FunctionInput": "

A FunctionInput object that re-defines the function in the Data Catalog.

" + } + }, + "UserDefinedFunctionList": { + "base": null, + "refs": { + "GetUserDefinedFunctionsResponse$UserDefinedFunctions": "

A list of requested function definitions.

" + } + }, + "ValidationException": { + "base": "

A value could not be validated.

", + "refs": { + } + }, + "ValueString": { + "base": null, + "refs": { + "BoundedPartitionValueList$member": null, + "ConnectionProperties$value": null, + "ValueStringList$member": null + } + }, + "ValueStringList": { + "base": null, + "refs": { + "DeletePartitionRequest$PartitionValues": "

The values that define the partition.

", + "GetPartitionRequest$PartitionValues": "

The values that define the partition.

", + "Partition$Values": "

The values of the partition.

", + "PartitionError$PartitionValues": "

The values that define the partition.

", + "PartitionInput$Values": "

The values of the partition.

", + "PartitionValueList$Values": "

The list of values.

" + } + }, + "VersionId": { + "base": null, + "refs": { + "Crawler$Version": "

The version of the crawler.

", + "GrokClassifier$Version": "

The version of this classifier.

", + "XMLClassifier$Version": "

The version of this classifier.

" + } + }, + "VersionMismatchException": { + "base": "

There was a version conflict.

", + "refs": { + } + }, + "VersionString": { + "base": null, + "refs": { + "TableVersion$VersionId": "

The ID value that identifies this table version.

" + } + }, + "ViewTextString": { + "base": null, + "refs": { + "Table$ViewOriginalText": "

If the table is a view, the original text of the view; otherwise null.

", + "Table$ViewExpandedText": "

If the table is a view, the expanded text of the view; otherwise null.

", + "TableInput$ViewOriginalText": "

If the table is a view, the original text of the view; otherwise null.

", + "TableInput$ViewExpandedText": "

If the table is a view, the expanded text of the view; otherwise null.

" + } + }, + "XMLClassifier": { + "base": "

A classifier for XML content.

", + "refs": { + "Classifier$XMLClassifier": "

An XMLClassifier object.

" + } + } + } +} diff --git a/models/apis/glue/2017-03-31/examples-1.json b/models/apis/glue/2017-03-31/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/glue/2017-03-31/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/glue/2017-03-31/paginators-1.json b/models/apis/glue/2017-03-31/paginators-1.json new file mode 100644 index 00000000000..aecd4ce619c --- /dev/null +++ b/models/apis/glue/2017-03-31/paginators-1.json @@ -0,0 +1,69 @@ +{ + "pagination": { + "GetClassifiers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetConnections": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetCrawlerMetrics": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetCrawlers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetDatabases": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetDevEndpoints": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetJobRuns": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetPartitions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetTableVersions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetTables": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetTriggers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetUserDefinedFunctions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/greengrass/2017-06-07/api-2.json b/models/apis/greengrass/2017-06-07/api-2.json index fca40b45a2f..5e7643ac98a 100644 --- a/models/apis/greengrass/2017-06-07/api-2.json +++ b/models/apis/greengrass/2017-06-07/api-2.json @@ -254,6 +254,59 @@ "shape" : "BadRequestException" } ] }, + "CreateResourceDefinition" : { + "name" : "CreateResourceDefinition", + "http" : { + "method" : "POST", + "requestUri" : "/greengrass/definition/resources", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateResourceDefinitionRequest" + }, + "output" : { + "shape" : "CreateResourceDefinitionResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + } ] + }, + "CreateResourceDefinitionVersion" : { + "name" : "CreateResourceDefinitionVersion", + "http" : { + "method" : "POST", + "requestUri" : "/greengrass/definition/resources/{ResourceDefinitionId}/versions", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateResourceDefinitionVersionRequest" + }, + "output" : { + "shape" : "CreateResourceDefinitionVersionResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + } ] + }, + "CreateSoftwareUpdateJob" : { + "name" : "CreateSoftwareUpdateJob", + "http" : { + "method" : "POST", + "requestUri" : "/greengrass/updates", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateSoftwareUpdateJobRequest" + }, + "output" : { + "shape" : "CreateSoftwareUpdateJobResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + } ] + }, "CreateSubscriptionDefinition" : { "name" : "CreateSubscriptionDefinition", "http" : { @@ -373,6 +426,23 @@ "shape" : "BadRequestException" } ] }, + "DeleteResourceDefinition" : { + "name" : "DeleteResourceDefinition", + "http" : { + "method" : "DELETE", + "requestUri" : "/greengrass/definition/resources/{ResourceDefinitionId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteResourceDefinitionRequest" + }, + "output" : { + "shape" : "DeleteResourceDefinitionResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + } ] + }, "DeleteSubscriptionDefinition" : { "name" : "DeleteSubscriptionDefinition", "http" : { @@ -689,6 +759,40 @@ "shape" : "BadRequestException" } ] }, + "GetResourceDefinition" : { + "name" : "GetResourceDefinition", + "http" : { + "method" : "GET", + "requestUri" : "/greengrass/definition/resources/{ResourceDefinitionId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetResourceDefinitionRequest" + }, + "output" : { + "shape" : "GetResourceDefinitionResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + } ] + }, + "GetResourceDefinitionVersion" : { + "name" : "GetResourceDefinitionVersion", + "http" : { + "method" : "GET", + "requestUri" : "/greengrass/definition/resources/{ResourceDefinitionId}/versions/{ResourceDefinitionVersionId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetResourceDefinitionVersionRequest" + }, + "output" : { + "shape" : "GetResourceDefinitionVersionResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + } ] + }, "GetServiceRoleForAccount" : { "name" : "GetServiceRoleForAccount", "http" : { @@ -936,6 +1040,38 @@ }, "errors" : [ ] }, + "ListResourceDefinitionVersions" : { + "name" : "ListResourceDefinitionVersions", + "http" : { + "method" : "GET", + "requestUri" : "/greengrass/definition/resources/{ResourceDefinitionId}/versions", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListResourceDefinitionVersionsRequest" + }, + "output" : { + "shape" : "ListResourceDefinitionVersionsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + } ] + }, + "ListResourceDefinitions" : { + "name" : "ListResourceDefinitions", + "http" : { + "method" : "GET", + "requestUri" : "/greengrass/definition/resources", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListResourceDefinitionsRequest" + }, + "output" : { + "shape" : "ListResourceDefinitionsResponse" + }, + "errors" : [ ] + }, "ListSubscriptionDefinitionVersions" : { "name" : "ListSubscriptionDefinitionVersions", "http" : { @@ -968,6 +1104,23 @@ }, "errors" : [ ] }, + "ResetDeployments" : { + "name" : "ResetDeployments", + "http" : { + "method" : "POST", + "requestUri" : "/greengrass/groups/{GroupId}/deployments/$reset", + "responseCode" : 200 + }, + "input" : { + "shape" : "ResetDeploymentsRequest" + }, + "output" : { + "shape" : "ResetDeploymentsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + } ] + }, "UpdateConnectivityInfo" : { "name" : "UpdateConnectivityInfo", "http" : { @@ -1091,6 +1244,23 @@ "shape" : "BadRequestException" } ] }, + "UpdateResourceDefinition" : { + "name" : "UpdateResourceDefinition", + "http" : { + "method" : "PUT", + "requestUri" : "/greengrass/definition/resources/{ResourceDefinitionId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateResourceDefinitionRequest" + }, + "output" : { + "shape" : "UpdateResourceDefinitionResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + } ] + }, "UpdateSubscriptionDefinition" : { "name" : "UpdateSubscriptionDefinition", "http" : { @@ -1566,6 +1736,9 @@ "LoggerDefinitionVersionArn" : { "shape" : "__string" }, + "ResourceDefinitionVersionArn" : { + "shape" : "__string" + }, "SubscriptionDefinitionVersionArn" : { "shape" : "__string" } @@ -1667,6 +1840,123 @@ } } }, + "CreateResourceDefinitionRequest" : { + "type" : "structure", + "members" : { + "AmznClientToken" : { + "shape" : "__string", + "location" : "header", + "locationName" : "X-Amzn-Client-Token" + }, + "InitialVersion" : { + "shape" : "ResourceDefinitionVersion" + }, + "Name" : { + "shape" : "__string" + } + } + }, + "CreateResourceDefinitionResponse" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string" + }, + "CreationTimestamp" : { + "shape" : "__string" + }, + "Id" : { + "shape" : "__string" + }, + "LastUpdatedTimestamp" : { + "shape" : "__string" + }, + "LatestVersion" : { + "shape" : "__string" + }, + "LatestVersionArn" : { + "shape" : "__string" + }, + "Name" : { + "shape" : "__string" + } + } + }, + "CreateResourceDefinitionVersionRequest" : { + "type" : "structure", + "members" : { + "AmznClientToken" : { + "shape" : "__string", + "location" : "header", + "locationName" : "X-Amzn-Client-Token" + }, + "ResourceDefinitionId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "ResourceDefinitionId" + }, + "Resources" : { + "shape" : "ListOfResource" + } + }, + "required" : [ "ResourceDefinitionId" ] + }, + "CreateResourceDefinitionVersionResponse" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string" + }, + "CreationTimestamp" : { + "shape" : "__string" + }, + "Id" : { + "shape" : "__string" + }, + "Version" : { + "shape" : "__string" + } + } + }, + "CreateSoftwareUpdateJobRequest" : { + "type" : "structure", + "members" : { + "AmznClientToken" : { + "shape" : "__string", + "location" : "header", + "locationName" : "X-Amzn-Client-Token" + }, + "S3UrlSignerRole" : { + "shape" : "S3UrlSignerRole" + }, + "SoftwareToUpdate" : { + "shape" : "SoftwareToUpdate" + }, + "UpdateAgentLogLevel" : { + "shape" : "UpdateAgentLogLevel" + }, + "UpdateTargets" : { + "shape" : "UpdateTargets" + }, + "UpdateTargetsArchitecture" : { + "shape" : "UpdateTargetsArchitecture" + }, + "UpdateTargetsOperatingSystem" : { + "shape" : "UpdateTargetsOperatingSystem" + } + } + }, + "CreateSoftwareUpdateJobResponse" : { + "type" : "structure", + "members" : { + "IotJobArn" : { + "shape" : "__string" + }, + "IotJobId" : { + "shape" : "__string" + } + } + }, "CreateSubscriptionDefinitionRequest" : { "type" : "structure", "members" : { @@ -1846,6 +2136,21 @@ "type" : "structure", "members" : { } }, + "DeleteResourceDefinitionRequest" : { + "type" : "structure", + "members" : { + "ResourceDefinitionId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "ResourceDefinitionId" + } + }, + "required" : [ "ResourceDefinitionId" ] + }, + "DeleteResourceDefinitionResponse" : { + "type" : "structure", + "members" : { } + }, "DeleteSubscriptionDefinitionRequest" : { "type" : "structure", "members" : { @@ -1873,6 +2178,9 @@ "DeploymentId" : { "shape" : "__string" }, + "DeploymentType" : { + "shape" : "DeploymentType" + }, "GroupArn" : { "shape" : "__string" } @@ -1880,7 +2188,7 @@ }, "DeploymentType" : { "type" : "string", - "enum" : [ "NewDeployment", "Redeployment" ] + "enum" : [ "NewDeployment", "Redeployment", "ResetDeployment", "ForceResetDeployment" ] }, "Deployments" : { "type" : "list", @@ -2005,6 +2313,12 @@ "FunctionConfigurationEnvironment" : { "type" : "structure", "members" : { + "AccessSysfs" : { + "shape" : "__boolean" + }, + "ResourceAccessPolicies" : { + "shape" : "ListOfResourceAccessPolicy" + }, "Variables" : { "shape" : "MapOf__string" } @@ -2169,6 +2483,12 @@ "DeploymentStatus" : { "shape" : "__string" }, + "DeploymentType" : { + "shape" : "DeploymentType" + }, + "ErrorDetails" : { + "shape" : "ErrorDetails" + }, "ErrorMessage" : { "shape" : "__string" }, @@ -2524,6 +2844,79 @@ } } }, + "GetResourceDefinitionRequest" : { + "type" : "structure", + "members" : { + "ResourceDefinitionId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "ResourceDefinitionId" + } + }, + "required" : [ "ResourceDefinitionId" ] + }, + "GetResourceDefinitionResponse" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string" + }, + "CreationTimestamp" : { + "shape" : "__string" + }, + "Id" : { + "shape" : "__string" + }, + "LastUpdatedTimestamp" : { + "shape" : "__string" + }, + "LatestVersion" : { + "shape" : "__string" + }, + "LatestVersionArn" : { + "shape" : "__string" + }, + "Name" : { + "shape" : "__string" + } + } + }, + "GetResourceDefinitionVersionRequest" : { + "type" : "structure", + "members" : { + "ResourceDefinitionId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "ResourceDefinitionId" + }, + "ResourceDefinitionVersionId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "ResourceDefinitionVersionId" + } + }, + "required" : [ "ResourceDefinitionVersionId", "ResourceDefinitionId" ] + }, + "GetResourceDefinitionVersionResponse" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string" + }, + "CreationTimestamp" : { + "shape" : "__string" + }, + "Definition" : { + "shape" : "ResourceDefinitionVersion" + }, + "Id" : { + "shape" : "__string" + }, + "Version" : { + "shape" : "__string" + } + } + }, "GetServiceRoleForAccountRequest" : { "type" : "structure", "members" : { } @@ -2663,6 +3056,17 @@ } } }, + "GroupOwnerSetting" : { + "type" : "structure", + "members" : { + "AutoAddGroupOwner" : { + "shape" : "__boolean" + }, + "GroupOwner" : { + "shape" : "__string" + } + } + }, "GroupVersion" : { "type" : "structure", "members" : { @@ -2678,6 +3082,9 @@ "LoggerDefinitionVersionArn" : { "shape" : "__string" }, + "ResourceDefinitionVersionArn" : { + "shape" : "__string" + }, "SubscriptionDefinitionVersionArn" : { "shape" : "__string" } @@ -3098,6 +3505,18 @@ "shape" : "Logger" } }, + "ListOfResource" : { + "type" : "list", + "member" : { + "shape" : "Resource" + } + }, + "ListOfResourceAccessPolicy" : { + "type" : "list", + "member" : { + "shape" : "ResourceAccessPolicy" + } + }, "ListOfSubscription" : { "type" : "list", "member" : { @@ -3110,6 +3529,64 @@ "shape" : "VersionInformation" } }, + "ListResourceDefinitionVersionsRequest" : { + "type" : "structure", + "members" : { + "MaxResults" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "MaxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "NextToken" + }, + "ResourceDefinitionId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "ResourceDefinitionId" + } + }, + "required" : [ "ResourceDefinitionId" ] + }, + "ListResourceDefinitionVersionsResponse" : { + "type" : "structure", + "members" : { + "NextToken" : { + "shape" : "__string" + }, + "Versions" : { + "shape" : "ListOfVersionInformation" + } + } + }, + "ListResourceDefinitionsRequest" : { + "type" : "structure", + "members" : { + "MaxResults" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "MaxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "NextToken" + } + } + }, + "ListResourceDefinitionsResponse" : { + "type" : "structure", + "members" : { + "Definitions" : { + "shape" : "ListOfDefinitionInformation" + }, + "NextToken" : { + "shape" : "__string" + } + } + }, "ListSubscriptionDefinitionVersionsRequest" : { "type" : "structure", "members" : { @@ -3179,6 +3656,31 @@ } } }, + "LocalDeviceResourceData" : { + "type" : "structure", + "members" : { + "GroupOwnerSetting" : { + "shape" : "GroupOwnerSetting" + }, + "SourcePath" : { + "shape" : "__string" + } + } + }, + "LocalVolumeResourceData" : { + "type" : "structure", + "members" : { + "DestinationPath" : { + "shape" : "__string" + }, + "GroupOwnerSetting" : { + "shape" : "GroupOwnerSetting" + }, + "SourcePath" : { + "shape" : "__string" + } + } + }, "Logger" : { "type" : "structure", "members" : { @@ -3228,6 +3730,91 @@ "shape" : "__string" } }, + "Permission" : { + "type" : "string", + "enum" : [ "ro", "rw" ] + }, + "ResetDeploymentsRequest" : { + "type" : "structure", + "members" : { + "AmznClientToken" : { + "shape" : "__string", + "location" : "header", + "locationName" : "X-Amzn-Client-Token" + }, + "Force" : { + "shape" : "__boolean" + }, + "GroupId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "GroupId" + } + }, + "required" : [ "GroupId" ] + }, + "ResetDeploymentsResponse" : { + "type" : "structure", + "members" : { + "DeploymentArn" : { + "shape" : "__string" + }, + "DeploymentId" : { + "shape" : "__string" + } + } + }, + "Resource" : { + "type" : "structure", + "members" : { + "Id" : { + "shape" : "__string" + }, + "Name" : { + "shape" : "__string" + }, + "ResourceDataContainer" : { + "shape" : "ResourceDataContainer" + } + } + }, + "ResourceAccessPolicy" : { + "type" : "structure", + "members" : { + "Permission" : { + "shape" : "Permission" + }, + "ResourceId" : { + "shape" : "__string" + } + } + }, + "ResourceDataContainer" : { + "type" : "structure", + "members" : { + "LocalDeviceResourceData" : { + "shape" : "LocalDeviceResourceData" + }, + "LocalVolumeResourceData" : { + "shape" : "LocalVolumeResourceData" + } + } + }, + "ResourceDefinitionVersion" : { + "type" : "structure", + "members" : { + "Resources" : { + "shape" : "ListOfResource" + } + } + }, + "S3UrlSignerRole" : { + "type" : "string" + }, + "SoftwareToUpdate" : { + "type" : "string", + "enum" : [ "core", "ota_agent" ] + }, "Subscription" : { "type" : "structure", "members" : { @@ -3253,6 +3840,10 @@ } } }, + "UpdateAgentLogLevel" : { + "type" : "string", + "enum" : [ "NONE", "TRACE", "DEBUG", "VERBOSE", "INFO", "WARN", "ERROR", "FATAL" ] + }, "UpdateConnectivityInfoRequest" : { "type" : "structure", "members" : { @@ -3397,6 +3988,24 @@ "type" : "structure", "members" : { } }, + "UpdateResourceDefinitionRequest" : { + "type" : "structure", + "members" : { + "Name" : { + "shape" : "__string" + }, + "ResourceDefinitionId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "ResourceDefinitionId" + } + }, + "required" : [ "ResourceDefinitionId" ] + }, + "UpdateResourceDefinitionResponse" : { + "type" : "structure", + "members" : { } + }, "UpdateSubscriptionDefinitionRequest" : { "type" : "structure", "members" : { @@ -3415,6 +4024,20 @@ "type" : "structure", "members" : { } }, + "UpdateTargets" : { + "type" : "list", + "member" : { + "shape" : "__string" + } + }, + "UpdateTargetsArchitecture" : { + "type" : "string", + "enum" : [ "armv7l", "x86_64", "aarch64" ] + }, + "UpdateTargetsOperatingSystem" : { + "type" : "string", + "enum" : [ "ubuntu", "raspbian", "amazon_linux" ] + }, "VersionInformation" : { "type" : "structure", "members" : { @@ -3448,4 +4071,4 @@ "type" : "timestamp" } } -} \ No newline at end of file +} diff --git a/models/apis/greengrass/2017-06-07/docs-2.json b/models/apis/greengrass/2017-06-07/docs-2.json index 30bff0a380f..f4894f03547 100644 --- a/models/apis/greengrass/2017-06-07/docs-2.json +++ b/models/apis/greengrass/2017-06-07/docs-2.json @@ -1,5 +1,5 @@ { - "version" : "1.0", + "version" : "2.0", "service" : "AWS Greengrass seamlessly extends AWS onto physical devices so they can act locally on the data they generate, while still using the cloud for management, analytics, and durable storage. AWS Greengrass ensures your devices can respond quickly to local events and operate with intermittent connectivity. AWS Greengrass minimizes the cost of transmitting data to the cloud by allowing you to author AWS Lambda functions that execute locally.", "operations" : { "AssociateRoleToGroup" : "Associates a role with a group. The role will be used by the AWS Greengrass core in order to access AWS cloud services. The role's permissions will allow Greengrass core Lambda functions to perform actions against the cloud.", @@ -16,6 +16,9 @@ "CreateGroupVersion" : "Creates a version of a group which has already been defined.", "CreateLoggerDefinition" : "Creates a logger definition. You may optionally provide the initial version of the logger definition or use ``CreateLoggerDefinitionVersion`` at a later time.", "CreateLoggerDefinitionVersion" : "Creates a version of a logger definition that has already been defined.", + "CreateResourceDefinition" : "Creates a resource definition which contains a list of resources to be used in a group. You can create an initial version of the definition by providing a list of resources now, or use ``CreateResourceDefinitionVersion`` later.", + "CreateResourceDefinitionVersion" : "Create a version of a resource definition that has already been defined.", + "CreateSoftwareUpdateJob" : "Creates an Iot Job that will trigger your Greengrass Cores to update the software they are running.", "CreateSubscriptionDefinition" : "Creates a subscription definition. You may optionally provide the initial version of the subscription definition or use ``CreateSubscriptionDefinitionVersion`` at a later time.", "CreateSubscriptionDefinitionVersion" : "Creates a version of a subscription definition which has already been defined.", "DeleteCoreDefinition" : "Deletes a core definition. The core definition must not have been used in a deployment.", @@ -23,6 +26,7 @@ "DeleteFunctionDefinition" : "Deletes a Lambda function definition. The Lambda function definition must not have been used in a deployment.", "DeleteGroup" : "Deletes a group. The group must not have been used in deployment.", "DeleteLoggerDefinition" : "Deletes a logger definition. The logger definition must not have been used in a deployment.", + "DeleteResourceDefinition" : "Deletes a resource definition.", "DeleteSubscriptionDefinition" : "Deletes a subscription definition. The subscription definition must not have been used in a deployment.", "DisassociateRoleFromGroup" : "Disassociates the role from a group.", "DisassociateServiceRoleFromAccount" : "Disassociates the service role from the account. Without a service role, deployments will not work.", @@ -41,6 +45,8 @@ "GetGroupVersion" : "Retrieves information about a group version.", "GetLoggerDefinition" : "Retrieves information about a logger definition.", "GetLoggerDefinitionVersion" : "Retrieves information about a logger definition version.", + "GetResourceDefinition" : "Retrieves information about a resource definition, such as its creation time and latest version.", + "GetResourceDefinitionVersion" : "Retrieves information about a resource definition version, such as which resources are included in the version.", "GetServiceRoleForAccount" : "Retrieves the service role that is attached to the account.", "GetSubscriptionDefinition" : "Retrieves information about a subscription definition.", "GetSubscriptionDefinitionVersion" : "Retrieves information about a subscription definition version.", @@ -56,8 +62,11 @@ "ListGroups" : "Retrieves a list of groups.", "ListLoggerDefinitionVersions" : "Lists the versions of a logger definition.", "ListLoggerDefinitions" : "Retrieves a list of logger definitions.", + "ListResourceDefinitionVersions" : "Lists the versions of a resource definition.", + "ListResourceDefinitions" : "Retrieves a list of resource definitions.", "ListSubscriptionDefinitionVersions" : "Lists the versions of a subscription definition.", "ListSubscriptionDefinitions" : "Retrieves a list of subscription definitions.", + "ResetDeployments" : "Resets a group's deployments.", "UpdateConnectivityInfo" : "Updates the connectivity information for the core. Any devices that belong to the group which has this core will receive this information in order to find the location of the core and connect to it.", "UpdateCoreDefinition" : "Updates a core definition.", "UpdateDeviceDefinition" : "Updates a device definition.", @@ -65,6 +74,7 @@ "UpdateGroup" : "Updates a group.", "UpdateGroupCertificateConfiguration" : "Updates the Cert expiry time for a group.", "UpdateLoggerDefinition" : "Updates a logger definition.", + "UpdateResourceDefinition" : "Updates a resource definition.", "UpdateSubscriptionDefinition" : "Updates a subscription definition." }, "shapes" : { @@ -91,8 +101,8 @@ "ConnectivityInfo" : { "base" : "Connectivity Info", "refs" : { - "GetConnectivityInfoResponse$ConnectivityInfo" : "Connectivity info array", - "UpdateConnectivityInfoRequest$ConnectivityInfo" : "Connectivity info array" + "GetConnectivityInfoResponse$ConnectivityInfo" : "Connectivity info list", + "UpdateConnectivityInfoRequest$ConnectivityInfo" : "Connectivity info list" } }, "Core" : { @@ -119,6 +129,14 @@ "base" : null, "refs" : { } }, + "CreateSoftwareUpdateJobRequest" : { + "base" : "Request for the CreateSoftwareUpdateJob API", + "refs" : { } + }, + "CreateSoftwareUpdateJobResponse" : { + "base" : null, + "refs" : { } + }, "DefinitionInformation" : { "base" : "Information on the Definition", "refs" : { @@ -134,13 +152,15 @@ "DeploymentType" : { "base" : null, "refs" : { - "CreateDeploymentRequest$DeploymentType" : "Type of deployment" + "CreateDeploymentRequest$DeploymentType" : "Type of deployment. When used in CreateDeployment, only NewDeployment and Redeployment are valid. ", + "Deployment$DeploymentType" : "The type of deployment.", + "GetDeploymentStatusResponse$DeploymentType" : "The type of the deployment." } }, "Deployments" : { "base" : null, "refs" : { - "ListDeploymentsResponse$Deployments" : "Information on deployments" + "ListDeploymentsResponse$Deployments" : "List of deployments for the requested groups" } }, "Device" : { @@ -176,7 +196,8 @@ "ErrorDetails" : { "base" : "Error Details", "refs" : { - "GeneralError$ErrorDetails" : "Error Details" + "GeneralError$ErrorDetails" : "Error Details", + "GetDeploymentStatusResponse$ErrorDetails" : "The error Details" } }, "Function" : { @@ -200,7 +221,7 @@ "FunctionDefinitionVersion" : { "base" : "Information on the function definition version", "refs" : { - "GetFunctionDefinitionVersionResponse$Definition" : "Information on the definition" + "GetFunctionDefinitionVersionResponse$Definition" : "Information on the definition." } }, "GeneralError" : { @@ -243,6 +264,10 @@ "base" : "Information on logger definition version response", "refs" : { } }, + "GetResourceDefinitionVersionResponse" : { + "base" : "Information on resource definition version response", + "refs" : { } + }, "GetServiceRoleForAccountResponse" : { "base" : null, "refs" : { } @@ -262,11 +287,18 @@ "refs" : { } }, "GroupInformation" : { - "base" : "Information of a group", + "base" : "Information on the group", "refs" : { "ListGroupsResponse$Groups" : "Groups" } }, + "GroupOwnerSetting" : { + "base" : "Group owner related settings for local resources.", + "refs" : { + "LocalDeviceResourceData$GroupOwnerSetting" : "Group owner related settings for local resources.", + "LocalVolumeResourceData$GroupOwnerSetting" : "Group owner related settings for local resources." + } + }, "GroupVersion" : { "base" : "Information on group version", "refs" : { @@ -274,11 +306,11 @@ } }, "InternalServerErrorException" : { - "base" : "This request was invalid.", + "base" : "The server encountered an unexpected error.", "refs" : { } }, "ListDefinitionsResponse" : { - "base" : "List of definition response", + "base" : "List of definition responses", "refs" : { } }, "ListDeploymentsResponse" : { @@ -325,6 +357,14 @@ "base" : null, "refs" : { } }, + "ListOfResource" : { + "base" : null, + "refs" : { } + }, + "ListOfResourceAccessPolicy" : { + "base" : null, + "refs" : { } + }, "ListOfSubscription" : { "base" : null, "refs" : { } @@ -337,6 +377,18 @@ "base" : "List of versions response", "refs" : { } }, + "LocalDeviceResourceData" : { + "base" : "Attributes that define the Local Device Resource.", + "refs" : { + "ResourceDataContainer$LocalDeviceResourceData" : "Attributes that define the Local Device Resource." + } + }, + "LocalVolumeResourceData" : { + "base" : "Attributes that define the Local Volume Resource.", + "refs" : { + "ResourceDataContainer$LocalVolumeResourceData" : "Attributes that define the Local Volume Resource." + } + }, "Logger" : { "base" : "Information on the Logger", "refs" : { @@ -371,6 +423,56 @@ "base" : null, "refs" : { } }, + "Permission" : { + "base" : "Type of permissions a function could have to access a resource.", + "refs" : { + "ResourceAccessPolicy$Permission" : "The function's access permission to the resource." + } + }, + "ResetDeploymentsRequest" : { + "base" : "Information needed to perform a reset of a group's deployments.", + "refs" : { } + }, + "ResetDeploymentsResponse" : { + "base" : null, + "refs" : { } + }, + "Resource" : { + "base" : "Information on the resource.", + "refs" : { + "ResourceDefinitionVersion$Resources" : "List of resources." + } + }, + "ResourceAccessPolicy" : { + "base" : "Policy for the function to access a resource.", + "refs" : { + "FunctionConfigurationEnvironment$ResourceAccessPolicies" : "Policies for the function to access resources." + } + }, + "ResourceDataContainer" : { + "base" : "A container of data for all resource types.", + "refs" : { + "Resource$ResourceDataContainer" : "A container of data for all resource types." + } + }, + "ResourceDefinitionVersion" : { + "base" : "Information on resource definition version", + "refs" : { + "GetResourceDefinitionVersionResponse$Definition" : "Information on definition." + } + }, + "S3UrlSignerRole" : { + "base" : "The IAM Role that Greengrass will use to create pre-signed URLs pointing towards the update artifact.", + "refs" : { + "CreateSoftwareUpdateJobRequest$S3UrlSignerRole" : null + } + }, + "SoftwareToUpdate" : { + "base" : "The piece of software on the Greengrass Core that will be updated.", + "refs" : { + "CreateSoftwareUpdateJobRequest$SoftwareToUpdate" : null + } + }, "Subscription" : { "base" : "Information on subscription", "refs" : { @@ -383,6 +485,12 @@ "GetSubscriptionDefinitionVersionResponse$Definition" : "Information on the definition" } }, + "UpdateAgentLogLevel" : { + "base" : "The minimum level of log statements that should be logged by the OTA Agent during an update.", + "refs" : { + "CreateSoftwareUpdateJobRequest$UpdateAgentLogLevel" : null + } + }, "UpdateConnectivityInfoRequest" : { "base" : "Information on connectivity info", "refs" : { } @@ -395,6 +503,24 @@ "base" : null, "refs" : { } }, + "UpdateTargets" : { + "base" : "The target arns that this update will be applied to.", + "refs" : { + "CreateSoftwareUpdateJobRequest$UpdateTargets" : null + } + }, + "UpdateTargetsArchitecture" : { + "base" : "The architecture of the Cores in the targets of an update", + "refs" : { + "CreateSoftwareUpdateJobRequest$UpdateTargetsArchitecture" : null + } + }, + "UpdateTargetsOperatingSystem" : { + "base" : "The operating system of the Cores in the targets of an update", + "refs" : { + "CreateSoftwareUpdateJobRequest$UpdateTargetsOperatingSystem" : null + } + }, "VersionInformation" : { "base" : "Information on the version", "refs" : { @@ -406,7 +532,10 @@ "refs" : { "Core$SyncShadow" : "If true, the local shadow value automatically syncs with the cloud's shadow state.", "Device$SyncShadow" : "If true, the local shadow value automatically syncs with the cloud's shadow state.", - "FunctionConfiguration$Pinned" : "Whether the function is pinned or not. Pinned means the function is long-lived and starts when the core starts." + "FunctionConfiguration$Pinned" : "Whether the function is pinned or not. Pinned means the function is long-lived and starts when the core starts.", + "FunctionConfigurationEnvironment$AccessSysfs" : "Flag to allow lambda access sys filesystem.", + "GroupOwnerSetting$AutoAddGroupOwner" : "Eanble the auto added group owner.", + "ResetDeploymentsRequest$Force" : "When set to true, perform a best-effort only core reset." } }, "__integer" : { @@ -433,9 +562,11 @@ "Core$ThingArn" : "Thing arn of the core.", "CreateDeploymentRequest$DeploymentId" : "Id of the deployment if you wish to redeploy a previous deployment.", "CreateDeploymentRequest$GroupVersionId" : "Group Version you wish to deploy.", - "CreateDeploymentResponse$DeploymentArn" : "Arn of the deployment.", - "CreateDeploymentResponse$DeploymentId" : "Id of the deployment.", + "CreateDeploymentResponse$DeploymentArn" : "The arn of the deployment.", + "CreateDeploymentResponse$DeploymentId" : "The id of the deployment.", "CreateGroupCertificateAuthorityResponse$GroupCertificateAuthorityArn" : "Arn of the group certificate authority.", + "CreateSoftwareUpdateJobResponse$IotJobArn" : "The Iot Job Arn corresponding to this update.", + "CreateSoftwareUpdateJobResponse$IotJobId" : "The Iot Job Id corresponding to this update.", "DefinitionInformation$Arn" : "Arn of the definition.", "DefinitionInformation$CreationTimestamp" : "Timestamp of when the definition was created.", "DefinitionInformation$Id" : "Id of the definition.", @@ -458,10 +589,10 @@ "Function$Id" : "Id of the function in this version.", "FunctionConfiguration$ExecArgs" : "Execution Arguments", "FunctionConfiguration$Executable" : "Executable", - "GeneralError$Message" : "Message", + "GeneralError$Message" : "Message containing information about the error", "GetAssociatedRoleResponse$AssociatedAt" : "Time when the role was associated for the group.", "GetAssociatedRoleResponse$RoleArn" : "Arn of the role that is associated with the group.", - "GetConnectivityInfoResponse$message" : "Response Text", + "GetConnectivityInfoResponse$Message" : "Response Text", "GetCoreDefinitionVersionResponse$Arn" : "Arn of the core definition version.", "GetCoreDefinitionVersionResponse$CreationTimestamp" : "Timestamp of when the core definition version was created.", "GetCoreDefinitionVersionResponse$Id" : "Id of the core definition the version belongs to.", @@ -488,6 +619,10 @@ "GetLoggerDefinitionVersionResponse$CreationTimestamp" : "Timestamp of when the logger definition version was created.", "GetLoggerDefinitionVersionResponse$Id" : "Id of the logger definition the version belongs to.", "GetLoggerDefinitionVersionResponse$Version" : "Version of the logger definition version.", + "GetResourceDefinitionVersionResponse$Arn" : "Arn of the resource definition version.", + "GetResourceDefinitionVersionResponse$CreationTimestamp" : "Timestamp of when the resource definition version was created.", + "GetResourceDefinitionVersionResponse$Id" : "Id of the resource definition the version belongs to.", + "GetResourceDefinitionVersionResponse$Version" : "Version of the resource definition version.", "GetServiceRoleForAccountResponse$AssociatedAt" : "Time when the service role was associated to the account.", "GetServiceRoleForAccountResponse$RoleArn" : "Role arn which is associated to the account.", "GetSubscriptionDefinitionVersionResponse$Arn" : "Arn of the subscription definition version.", @@ -506,22 +641,32 @@ "GroupInformation$LatestVersion" : "Last version of the group.", "GroupInformation$LatestVersionArn" : "Latest version arn of the group.", "GroupInformation$Name" : "Name of a group.", + "GroupOwnerSetting$GroupOwner" : "Name of the group owner.", "GroupVersion$CoreDefinitionVersionArn" : "Core definition version arn for this group.", "GroupVersion$DeviceDefinitionVersionArn" : "Device definition version arn for this group.", "GroupVersion$FunctionDefinitionVersionArn" : "Function definition version arn for this group.", - "GroupVersion$LoggerDefinitionVersionArn" : "Logger definitionv ersion arn for this group.", + "GroupVersion$LoggerDefinitionVersionArn" : "Logger definition version arn for this group.", + "GroupVersion$ResourceDefinitionVersionArn" : "Resource definition version arn for this group.", "GroupVersion$SubscriptionDefinitionVersionArn" : "Subscription definition version arn for this group.", "ListDefinitionsResponse$NextToken" : "The token for the next set of results, or ''null'' if there are no additional results.", "ListDeploymentsResponse$NextToken" : "The token for the next set of results, or ''null'' if there are no additional results.", "ListGroupsResponse$NextToken" : "The token for the next set of results, or ''null'' if there are no additional results.", "ListVersionsResponse$NextToken" : "The token for the next set of results, or ''null'' if there are no additional results.", + "LocalDeviceResourceData$SourcePath" : "Local source path of the resource.", + "LocalVolumeResourceData$DestinationPath" : "Local destination path of the resource.", + "LocalVolumeResourceData$SourcePath" : "Local source path of the resource.", "Logger$Id" : "Element Id for this entry in the list.", + "ResetDeploymentsResponse$DeploymentArn" : "The arn of the reset deployment.", + "ResetDeploymentsResponse$DeploymentId" : "The id of the reset deployment.", + "Resource$Id" : "Resource Id.", + "Resource$Name" : "A descriptive resource name.", + "ResourceAccessPolicy$ResourceId" : "Id of the resource. A reference to the resource definiton.", "Subscription$Id" : "Element Id for this entry in the list.", "Subscription$Source" : "Source of the subscription. Can be a thing arn, lambda arn or word 'cloud'", "Subscription$Subject" : "Subject of the message.", "Subscription$Target" : "Where the message is sent to. Can be a thing arn, lambda arn or word 'cloud'.", + "UpdateConnectivityInfoResponse$Message" : "Response Text", "UpdateConnectivityInfoResponse$Version" : "New Version", - "UpdateConnectivityInfoResponse$message" : "Response Text", "UpdateGroupCertificateConfigurationRequest$CertificateExpiryInMilliseconds" : "Amount of time when the certificate expires in milliseconds.", "VersionInformation$Arn" : "Arn of the version.", "VersionInformation$CreationTimestamp" : "Timestamp of when the version was created.", diff --git a/models/apis/iam/2010-05-08/api-2.json b/models/apis/iam/2010-05-08/api-2.json index 43d608e1fdb..e3bb8b76fa9 100644 --- a/models/apis/iam/2010-05-08/api-2.json +++ b/models/apis/iam/2010-05-08/api-2.json @@ -65,6 +65,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"LimitExceededException"}, {"shape":"InvalidInputException"}, + {"shape":"PolicyNotAttachableException"}, {"shape":"ServiceFailureException"} ] }, @@ -80,6 +81,7 @@ {"shape":"LimitExceededException"}, {"shape":"InvalidInputException"}, {"shape":"UnmodifiableEntityException"}, + {"shape":"PolicyNotAttachableException"}, {"shape":"ServiceFailureException"} ] }, @@ -94,6 +96,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"LimitExceededException"}, {"shape":"InvalidInputException"}, + {"shape":"PolicyNotAttachableException"}, {"shape":"ServiceFailureException"} ] }, @@ -578,6 +581,23 @@ {"shape":"ServiceFailureException"} ] }, + "DeleteServiceLinkedRole":{ + "name":"DeleteServiceLinkedRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteServiceLinkedRoleRequest"}, + "output":{ + "shape":"DeleteServiceLinkedRoleResponse", + "resultWrapper":"DeleteServiceLinkedRoleResult" + }, + "errors":[ + {"shape":"NoSuchEntityException"}, + {"shape":"LimitExceededException"}, + {"shape":"ServiceFailureException"} + ] + }, "DeleteServiceSpecificCredential":{ "name":"DeleteServiceSpecificCredential", "http":{ @@ -1020,6 +1040,23 @@ {"shape":"ServiceFailureException"} ] }, + "GetServiceLinkedRoleDeletionStatus":{ + "name":"GetServiceLinkedRoleDeletionStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetServiceLinkedRoleDeletionStatusRequest"}, + "output":{ + "shape":"GetServiceLinkedRoleDeletionStatusResponse", + "resultWrapper":"GetServiceLinkedRoleDeletionStatusResult" + }, + "errors":[ + {"shape":"NoSuchEntityException"}, + {"shape":"InvalidInputException"}, + {"shape":"ServiceFailureException"} + ] + }, "GetUser":{ "name":"GetUser", "http":{ @@ -1926,6 +1963,10 @@ "UserName":{"shape":"existingUserNameType"} } }, + "ArnListType":{ + "type":"list", + "member":{"shape":"arnType"} + }, "AttachGroupPolicyRequest":{ "type":"structure", "required":[ @@ -2421,6 +2462,20 @@ "ServerCertificateName":{"shape":"serverCertificateNameType"} } }, + "DeleteServiceLinkedRoleRequest":{ + "type":"structure", + "required":["RoleName"], + "members":{ + "RoleName":{"shape":"roleNameType"} + } + }, + "DeleteServiceLinkedRoleResponse":{ + "type":"structure", + "required":["DeletionTaskId"], + "members":{ + "DeletionTaskId":{"shape":"DeletionTaskIdType"} + } + }, "DeleteServiceSpecificCredentialRequest":{ "type":"structure", "required":["ServiceSpecificCredentialId"], @@ -2462,6 +2517,27 @@ "SerialNumber":{"shape":"serialNumberType"} } }, + "DeletionTaskFailureReasonType":{ + "type":"structure", + "members":{ + "Reason":{"shape":"ReasonType"}, + "RoleUsageList":{"shape":"RoleUsageListType"} + } + }, + "DeletionTaskIdType":{ + "type":"string", + "max":1000, + "min":1 + }, + "DeletionTaskStatusType":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "IN_PROGRESS", + "FAILED", + "NOT_STARTED" + ] + }, "DetachGroupPolicyRequest":{ "type":"structure", "required":[ @@ -2887,6 +2963,21 @@ "ServerCertificate":{"shape":"ServerCertificate"} } }, + "GetServiceLinkedRoleDeletionStatusRequest":{ + "type":"structure", + "required":["DeletionTaskId"], + "members":{ + "DeletionTaskId":{"shape":"DeletionTaskIdType"} + } + }, + "GetServiceLinkedRoleDeletionStatusResponse":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{"shape":"DeletionTaskStatusType"}, + "Reason":{"shape":"DeletionTaskFailureReasonType"} + } + }, "GetUserPolicyRequest":{ "type":"structure", "required":[ @@ -3659,6 +3750,18 @@ "member":{"shape":"PolicyGroup"} }, "PolicyIdentifierType":{"type":"string"}, + "PolicyNotAttachableException":{ + "type":"structure", + "members":{ + "message":{"shape":"policyNotAttachableMessage"} + }, + "error":{ + "code":"PolicyNotAttachable", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "PolicyRole":{ "type":"structure", "members":{ @@ -3748,6 +3851,15 @@ "PolicyDocument":{"shape":"policyDocumentType"} } }, + "ReasonType":{ + "type":"string", + "max":1000 + }, + "RegionNameType":{ + "type":"string", + "max":100, + "min":1 + }, "RemoveClientIDFromOpenIDConnectProviderRequest":{ "type":"structure", "required":[ @@ -3889,6 +4001,17 @@ "AttachedManagedPolicies":{"shape":"attachedPoliciesListType"} } }, + "RoleUsageListType":{ + "type":"list", + "member":{"shape":"RoleUsageType"} + }, + "RoleUsageType":{ + "type":"structure", + "members":{ + "Region":{"shape":"RegionNameType"}, + "Resources":{"shape":"ArnListType"} + } + }, "SAMLMetadataDocumentType":{ "type":"string", "max":10000000, @@ -4655,6 +4778,7 @@ "min":1, "pattern":"[\\w+=,.@-]+" }, + "policyNotAttachableMessage":{"type":"string"}, "policyPathType":{ "type":"string", "pattern":"((/[A-Za-z0-9\\.,\\+@=_-]+)*)/" diff --git a/models/apis/iam/2010-05-08/docs-2.json b/models/apis/iam/2010-05-08/docs-2.json index fc004a1297d..e0b6fc45f82 100644 --- a/models/apis/iam/2010-05-08/docs-2.json +++ b/models/apis/iam/2010-05-08/docs-2.json @@ -39,6 +39,7 @@ "DeleteSAMLProvider": "

Deletes a SAML provider resource in IAM.

Deleting the provider resource from IAM does not update any roles that reference the SAML provider resource's ARN as a principal in their trust policies. Any attempt to assume a role that references a non-existent provider resource ARN fails.

This operation requires Signature Version 4.

", "DeleteSSHPublicKey": "

Deletes the specified SSH public key.

The SSH public key deleted by this action is used only for authenticating the associated IAM user to an AWS CodeCommit repository. For more information about using SSH keys to authenticate to an AWS CodeCommit repository, see Set up AWS CodeCommit for SSH Connections in the AWS CodeCommit User Guide.

", "DeleteServerCertificate": "

Deletes the specified server certificate.

For more information about working with server certificates, including a list of AWS services that can use the server certificates that you manage with IAM, go to Working with Server Certificates in the IAM User Guide.

If you are using a server certificate with Elastic Load Balancing, deleting the certificate could have implications for your application. If Elastic Load Balancing doesn't detect the deletion of bound certificates, it may continue to use the certificates. This could cause Elastic Load Balancing to stop accepting traffic. We recommend that you remove the reference to the certificate from Elastic Load Balancing before using this command to delete the certificate. For more information, go to DeleteLoadBalancerListeners in the Elastic Load Balancing API Reference.

", + "DeleteServiceLinkedRole": "

Submits a service-linked role deletion request and returns a DeletionTaskId, which you can use to check the status of the deletion. Before you call this operation, confirm that the role has no active sessions and that any resources used by the role in the linked service are deleted. If you call this operation more than once for the same service-linked role and an earlier deletion task is not complete, then the DeletionTaskId of the earlier request is returned.

If you submit a deletion request for a service-linked role whose linked service is still accessing a resource, then the deletion task fails. If it fails, the GetServiceLinkedRoleDeletionStatus API operation returns the reason for the failure, including the resources that must be deleted. To delete the service-linked role, you must first remove those resources from the linked service and then submit the deletion request again. Resources are specific to the service that is linked to the role. For more information about removing resources from a service, see the AWS documentation for your service.

For more information about service-linked roles, see Roles Terms and Concepts: AWS Service-Linked Role in the IAM User Guide.

", "DeleteServiceSpecificCredential": "

Deletes the specified service-specific credential.

", "DeleteSigningCertificate": "

Deletes a signing certificate associated with the specified IAM user.

If you do not specify a user name, IAM determines the user name implicitly based on the AWS access key ID signing the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated IAM users.

", "DeleteUser": "

Deletes the specified IAM user. The user must not belong to any groups or have any access keys, signing certificates, or attached policies.

", @@ -68,6 +69,7 @@ "GetSAMLProvider": "

Returns the SAML provider metadocument that was uploaded when the IAM SAML provider resource object was created or updated.

This operation requires Signature Version 4.

", "GetSSHPublicKey": "

Retrieves the specified SSH public key, including metadata about the key.

The SSH public key retrieved by this action is used only for authenticating the associated IAM user to an AWS CodeCommit repository. For more information about using SSH keys to authenticate to an AWS CodeCommit repository, see Set up AWS CodeCommit for SSH Connections in the AWS CodeCommit User Guide.

", "GetServerCertificate": "

Retrieves information about the specified server certificate stored in IAM.

For more information about working with server certificates, including a list of AWS services that can use the server certificates that you manage with IAM, go to Working with Server Certificates in the IAM User Guide.

", + "GetServiceLinkedRoleDeletionStatus": "

Retrieves the status of your service-linked role deletion. After you use the DeleteServiceLinkedRole API operation to submit a service-linked role for deletion, you can use the DeletionTaskId parameter in GetServiceLinkedRoleDeletionStatus to check the status of the deletion. If the deletion fails, this operation returns the reason that it failed.

", "GetUser": "

Retrieves information about the specified IAM user, including the user's creation date, path, unique ID, and ARN.

If you do not specify a user name, IAM determines the user name implicitly based on the AWS access key ID used to sign the request to this API.

", "GetUserPolicy": "

Retrieves the specified inline policy document that is embedded in the specified IAM user.

Policies returned by this API are URL-encoded compliant with RFC 3986. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the decode method of the java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs provide similar functionality.

An IAM user can also have managed policies attached to it. To retrieve a managed policy document that is attached to a user, use GetPolicy to determine the policy's default version, then use GetPolicyVersion to retrieve the policy document.

For more information about policies, see Managed Policies and Inline Policies in the IAM User Guide.

", "ListAccessKeys": "

Returns information about the access key IDs associated with the specified IAM user. If there are none, the action returns an empty list.

Although each user is limited to a small number of keys, you can still paginate the results using the MaxItems and Marker parameters.

If the UserName field is not specified, the UserName is determined implicitly based on the AWS access key ID used to sign the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users.

To ensure the security of your AWS account, the secret access key is accessible only during key and user creation.

", @@ -171,6 +173,12 @@ "refs": { } }, + "ArnListType": { + "base": null, + "refs": { + "RoleUsageType$Resources": "

The name of the resource that is using the service-linked role.

" + } + }, "AttachGroupPolicyRequest": { "base": null, "refs": { @@ -486,6 +494,16 @@ "refs": { } }, + "DeleteServiceLinkedRoleRequest": { + "base": null, + "refs": { + } + }, + "DeleteServiceLinkedRoleResponse": { + "base": null, + "refs": { + } + }, "DeleteServiceSpecificCredentialRequest": { "base": null, "refs": { @@ -511,6 +529,25 @@ "refs": { } }, + "DeletionTaskFailureReasonType": { + "base": "

The reason that the service-linked role deletion failed.

This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus operation.

", + "refs": { + "GetServiceLinkedRoleDeletionStatusResponse$Reason": "

An object that contains details about the reason the deletion failed.

" + } + }, + "DeletionTaskIdType": { + "base": null, + "refs": { + "DeleteServiceLinkedRoleResponse$DeletionTaskId": "

The deletion task identifier that you can use to check the status of the deletion. This identifier is returned in the format task/aws-service-role/<service-principal-name>/<role-name>/<task-uuid>.

", + "GetServiceLinkedRoleDeletionStatusRequest$DeletionTaskId": "

The deletion task identifier. This identifier is returned by the DeleteServiceLinkedRole operation in the format task/aws-service-role/<service-principal-name>/<role-name>/<task-uuid>.

" + } + }, + "DeletionTaskStatusType": { + "base": null, + "refs": { + "GetServiceLinkedRoleDeletionStatusResponse$Status": "

The status of the deletion.

" + } + }, "DetachGroupPolicyRequest": { "base": null, "refs": { @@ -758,6 +795,16 @@ "refs": { } }, + "GetServiceLinkedRoleDeletionStatusRequest": { + "base": null, + "refs": { + } + }, + "GetServiceLinkedRoleDeletionStatusResponse": { + "base": null, + "refs": { + } + }, "GetUserPolicyRequest": { "base": null, "refs": { @@ -1190,7 +1237,7 @@ } }, "PolicyEvaluationException": { - "base": "

The request failed because a provided policy could not be successfully evaluated. An additional detail message indicates the source of the failure.

", + "base": "

The request failed because a provided policy could not be successfully evaluated. An additional detailed message indicates the source of the failure.

", "refs": { } }, @@ -1212,6 +1259,11 @@ "Statement$SourcePolicyId": "

The identifier of the policy that was provided as an input.

" } }, + "PolicyNotAttachableException": { + "base": "

The request failed because AWS service role policies can only be attached to the service-linked role for that service.

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

Contains information about a role that a managed policy is attached to.

This data type is used as a response element in the ListEntitiesForPolicy action.

For more information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", "refs": { @@ -1272,6 +1324,18 @@ "refs": { } }, + "ReasonType": { + "base": null, + "refs": { + "DeletionTaskFailureReasonType$Reason": "

A short description of the reason that the service-linked role deletion failed.

" + } + }, + "RegionNameType": { + "base": null, + "refs": { + "RoleUsageType$Region": "

The name of the region where the service-linked role is being used.

" + } + }, "RemoveClientIDFromOpenIDConnectProviderRequest": { "base": null, "refs": { @@ -1380,6 +1444,18 @@ "roleDetailListType$member": null } }, + "RoleUsageListType": { + "base": null, + "refs": { + "DeletionTaskFailureReasonType$RoleUsageList": "

A list of objects that contains details about the service-linked role deletion failure. If the service-linked role has active sessions or if any resources that were used by the role have not been deleted from the linked service, the role can't be deleted. This parameter includes a list of the resources that are associated with the role and the region in which the resources are being used.

" + } + }, + "RoleUsageType": { + "base": "

An object that contains details about how a service-linked role is used.

This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus operation.

", + "refs": { + "RoleUsageListType$member": null + } + }, "SAMLMetadataDocumentType": { "base": null, "refs": { @@ -1694,6 +1770,7 @@ "base": "

The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.

For more information about ARNs, go to Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

", "refs": { "AddClientIDToOpenIDConnectProviderRequest$OpenIDConnectProviderArn": "

The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider resource to add the client ID to. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders action.

", + "ArnListType$member": null, "AttachGroupPolicyRequest$PolicyArn": "

The Amazon Resource Name (ARN) of the IAM policy you want to attach.

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

", "AttachRolePolicyRequest$PolicyArn": "

The Amazon Resource Name (ARN) of the IAM policy you want to attach.

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

", "AttachUserPolicyRequest$PolicyArn": "

The Amazon Resource Name (ARN) of the IAM policy you want to attach.

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

", @@ -1926,7 +2003,7 @@ "ServiceSpecificCredentialMetadata$CreateDate": "

The date and time, in ISO 8601 date-time format, when the service-specific credential were created.

", "SigningCertificate$UploadDate": "

The date when the signing certificate was uploaded.

", "User$CreateDate": "

The date and time, in ISO 8601 date-time format, when the user was created.

", - "User$PasswordLastUsed": "

The date and time, in ISO 8601 date-time format, when the user's password was last used to sign in to an AWS website. For a list of AWS websites that capture a user's last sign-in time, see the Credential Reports topic in the Using IAM guide. If a password is used more than once in a five-minute span, only the first use is returned in this field. This field is null (not present) when:

This value is returned only in the GetUser and ListUsers actions.

", + "User$PasswordLastUsed": "

The date and time, in ISO 8601 date-time format, when the user's password was last used to sign in to an AWS website. For a list of AWS websites that capture a user's last sign-in time, see the Credential Reports topic in the Using IAM guide. If a password is used more than once in a five-minute span, only the first use is returned in this field. If the field is null (no value) then it indicates that they never signed in with a password. This can be because:

A null does not mean that the user never had a password. Also, if the user does not currently have a password, but had one in the past, then this field contains the date and time the most recent password was used.

This value is returned only in the GetUser and ListUsers actions.

", "UserDetail$CreateDate": "

The date and time, in ISO 8601 date-time format, when the user was created.

", "VirtualMFADevice$EnableDate": "

The date and time on which the virtual MFA device was enabled.

" } @@ -2365,7 +2442,7 @@ "policyNameListType": { "base": "

Contains a list of policy names.

This data type is used as a response element in the ListPolicies action.

", "refs": { - "ListGroupPoliciesResponse$PolicyNames": "

A list of policy names.

", + "ListGroupPoliciesResponse$PolicyNames": "

A list of policy names.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", "ListRolePoliciesResponse$PolicyNames": "

A list of policy names.

", "ListUserPoliciesResponse$PolicyNames": "

A list of policy names.

" } @@ -2374,25 +2451,31 @@ "base": null, "refs": { "AttachedPolicy$PolicyName": "

The friendly name of the attached policy.

", - "CreatePolicyRequest$PolicyName": "

The friendly name of the policy.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-

", - "DeleteGroupPolicyRequest$PolicyName": "

The name identifying the policy document to delete.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-

", - "DeleteRolePolicyRequest$PolicyName": "

The name of the inline policy to delete from the specified IAM role.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-

", - "DeleteUserPolicyRequest$PolicyName": "

The name identifying the policy document to delete.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-

", - "GetGroupPolicyRequest$PolicyName": "

The name of the policy document to get.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-

", + "CreatePolicyRequest$PolicyName": "

The friendly name of the policy.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", + "DeleteGroupPolicyRequest$PolicyName": "

The name identifying the policy document to delete.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", + "DeleteRolePolicyRequest$PolicyName": "

The name of the inline policy to delete from the specified IAM role.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", + "DeleteUserPolicyRequest$PolicyName": "

The name identifying the policy document to delete.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", + "GetGroupPolicyRequest$PolicyName": "

The name of the policy document to get.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", "GetGroupPolicyResponse$PolicyName": "

The name of the policy.

", - "GetRolePolicyRequest$PolicyName": "

The name of the policy document to get.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-

", + "GetRolePolicyRequest$PolicyName": "

The name of the policy document to get.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", "GetRolePolicyResponse$PolicyName": "

The name of the policy.

", - "GetUserPolicyRequest$PolicyName": "

The name of the policy document to get.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-

", + "GetUserPolicyRequest$PolicyName": "

The name of the policy document to get.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", "GetUserPolicyResponse$PolicyName": "

The name of the policy.

", "ManagedPolicyDetail$PolicyName": "

The friendly name (not ARN) identifying the policy.

", "Policy$PolicyName": "

The friendly name (not ARN) identifying the policy.

", "PolicyDetail$PolicyName": "

The name of the policy.

", - "PutGroupPolicyRequest$PolicyName": "

The name of the policy document.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-

", - "PutRolePolicyRequest$PolicyName": "

The name of the policy document.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-

", - "PutUserPolicyRequest$PolicyName": "

The name of the policy document.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-

", + "PutGroupPolicyRequest$PolicyName": "

The name of the policy document.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", + "PutRolePolicyRequest$PolicyName": "

The name of the policy document.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", + "PutUserPolicyRequest$PolicyName": "

The name of the policy document.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@-+

", "policyNameListType$member": null } }, + "policyNotAttachableMessage": { + "base": null, + "refs": { + "PolicyNotAttachableException$message": null + } + }, "policyPathType": { "base": null, "refs": { @@ -2481,6 +2564,7 @@ "CreateRoleRequest$RoleName": "

The name of the role to create.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-

Role names are not distinguished by case. For example, you cannot create roles named both \"PRODROLE\" and \"prodrole\".

", "DeleteRolePolicyRequest$RoleName": "

The name (friendly name, not ARN) identifying the role that the policy is embedded in.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-

", "DeleteRoleRequest$RoleName": "

The name of the role to delete.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-

", + "DeleteServiceLinkedRoleRequest$RoleName": "

The name of the service-linked role to be deleted.

", "DetachRolePolicyRequest$RoleName": "

The name (friendly name, not ARN) of the IAM role to detach the policy from.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-

", "GetRolePolicyRequest$RoleName": "

The name of the role associated with the policy.

This parameter allows (per its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-

", "GetRolePolicyResponse$RoleName": "

The role the policy is associated with.

", diff --git a/models/apis/inspector/2016-02-16/api-2.json b/models/apis/inspector/2016-02-16/api-2.json index 425f3a75111..b24199e766d 100644 --- a/models/apis/inspector/2016-02-16/api-2.json +++ b/models/apis/inspector/2016-02-16/api-2.json @@ -819,7 +819,8 @@ "FAILED", "ERROR", "COMPLETED", - "COMPLETED_WITH_ERRORS" + "COMPLETED_WITH_ERRORS", + "CANCELED" ] }, "AssessmentRunStateChange":{ @@ -1894,11 +1895,19 @@ "assessmentRunArn":{"shape":"Arn"} } }, + "StopAction":{ + "type":"string", + "enum":[ + "START_EVALUATION", + "SKIP_EVALUATION" + ] + }, "StopAssessmentRunRequest":{ "type":"structure", "required":["assessmentRunArn"], "members":{ - "assessmentRunArn":{"shape":"Arn"} + "assessmentRunArn":{"shape":"Arn"}, + "stopAction":{"shape":"StopAction"} } }, "SubscribeToEventRequest":{ diff --git a/models/apis/inspector/2016-02-16/docs-2.json b/models/apis/inspector/2016-02-16/docs-2.json index 71869284322..59f2134e271 100644 --- a/models/apis/inspector/2016-02-16/docs-2.json +++ b/models/apis/inspector/2016-02-16/docs-2.json @@ -1107,6 +1107,12 @@ "refs": { } }, + "StopAction": { + "base": null, + "refs": { + "StopAssessmentRunRequest$stopAction": "

An input option that can be set to either START_EVALUATION or SKIP_EVALUATION. START_EVALUATION (the default value), stops the AWS agent from collecting data and begins the results evaluation and the findings generation process. SKIP_EVALUATION cancels the assessment run immediately, after which no findings are generated.

" + } + }, "StopAssessmentRunRequest": { "base": null, "refs": { @@ -1241,7 +1247,7 @@ "AddAttributesToFindingsRequest$attributes": "

The array of attributes that you want to assign to specified findings.

", "AssessmentRun$userAttributesForFindings": "

The user-defined attributes that are assigned to every generated finding.

", "AssessmentTemplate$userAttributesForFindings": "

The user-defined attributes that are assigned to every generated finding from the assessment run that uses this assessment template.

", - "CreateAssessmentTemplateRequest$userAttributesForFindings": "

The user-defined attributes that are assigned to every finding that is generated by the assessment run that uses this assessment template.

", + "CreateAssessmentTemplateRequest$userAttributesForFindings": "

The user-defined attributes that are assigned to every finding that is generated by the assessment run that uses this assessment template. An attribute is a key and value pair (an Attribute object). Within an assessment template, each key must be unique.

", "Finding$userAttributes": "

The user-defined attributes that are assigned to the finding.

" } }, diff --git a/models/apis/inspector/2016-02-16/paginators-1.json b/models/apis/inspector/2016-02-16/paginators-1.json index 5677bd8e4a2..0f2aaeeb2f5 100644 --- a/models/apis/inspector/2016-02-16/paginators-1.json +++ b/models/apis/inspector/2016-02-16/paginators-1.json @@ -1,4 +1,44 @@ { "pagination": { + "ListAssessmentRunAgents": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListAssessmentRuns": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListAssessmentTargets": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListAssessmentTemplates": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListEventSubscriptions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListFindings": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListRulesPackages": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "PreviewAgents": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } } } diff --git a/models/apis/iot-jobs-data/2017-09-29/api-2.json b/models/apis/iot-jobs-data/2017-09-29/api-2.json new file mode 100644 index 00000000000..07ed81ca434 --- /dev/null +++ b/models/apis/iot-jobs-data/2017-09-29/api-2.json @@ -0,0 +1,339 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-09-29", + "endpointPrefix":"data.jobs.iot", + "protocol":"rest-json", + "serviceFullName":"AWS IoT Jobs Data Plane", + "signatureVersion":"v4", + "signingName":"iot-jobs-data", + "uid":"iot-jobs-data-2017-09-29" + }, + "operations":{ + "DescribeJobExecution":{ + "name":"DescribeJobExecution", + "http":{ + "method":"GET", + "requestUri":"/things/{thingName}/jobs/{jobId}" + }, + "input":{"shape":"DescribeJobExecutionRequest"}, + "output":{"shape":"DescribeJobExecutionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"CertificateValidationException"}, + {"shape":"TerminalStateException"} + ] + }, + "GetPendingJobExecutions":{ + "name":"GetPendingJobExecutions", + "http":{ + "method":"GET", + "requestUri":"/things/{thingName}/jobs" + }, + "input":{"shape":"GetPendingJobExecutionsRequest"}, + "output":{"shape":"GetPendingJobExecutionsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"CertificateValidationException"} + ] + }, + "StartNextPendingJobExecution":{ + "name":"StartNextPendingJobExecution", + "http":{ + "method":"PUT", + "requestUri":"/things/{thingName}/jobs/$next" + }, + "input":{"shape":"StartNextPendingJobExecutionRequest"}, + "output":{"shape":"StartNextPendingJobExecutionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"CertificateValidationException"} + ] + }, + "UpdateJobExecution":{ + "name":"UpdateJobExecution", + "http":{ + "method":"POST", + "requestUri":"/things/{thingName}/jobs/{jobId}" + }, + "input":{"shape":"UpdateJobExecutionRequest"}, + "output":{"shape":"UpdateJobExecutionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"CertificateValidationException"}, + {"shape":"InvalidStateTransitionException"} + ] + } + }, + "shapes":{ + "CertificateValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "DescribeJobExecutionJobId":{ + "type":"string", + "pattern":"[a-zA-Z0-9_-]+|^\\$next" + }, + "DescribeJobExecutionRequest":{ + "type":"structure", + "required":[ + "jobId", + "thingName" + ], + "members":{ + "jobId":{ + "shape":"DescribeJobExecutionJobId", + "location":"uri", + "locationName":"jobId" + }, + "thingName":{ + "shape":"ThingName", + "location":"uri", + "locationName":"thingName" + }, + "includeJobDocument":{ + "shape":"IncludeJobDocument", + "location":"querystring", + "locationName":"includeJobDocument" + }, + "executionNumber":{ + "shape":"ExecutionNumber", + "location":"querystring", + "locationName":"executionNumber" + } + } + }, + "DescribeJobExecutionResponse":{ + "type":"structure", + "members":{ + "execution":{"shape":"JobExecution"} + } + }, + "DetailsKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, + "DetailsMap":{ + "type":"map", + "key":{"shape":"DetailsKey"}, + "value":{"shape":"DetailsValue"} + }, + "DetailsValue":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[^\\p{C}]*+" + }, + "ExecutionNumber":{"type":"long"}, + "ExpectedVersion":{"type":"long"}, + "GetPendingJobExecutionsRequest":{ + "type":"structure", + "required":["thingName"], + "members":{ + "thingName":{ + "shape":"ThingName", + "location":"uri", + "locationName":"thingName" + } + } + }, + "GetPendingJobExecutionsResponse":{ + "type":"structure", + "members":{ + "inProgressJobs":{"shape":"JobExecutionSummaryList"}, + "queuedJobs":{"shape":"JobExecutionSummaryList"} + } + }, + "IncludeExecutionState":{"type":"boolean"}, + "IncludeJobDocument":{"type":"boolean"}, + "InvalidRequestException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidStateTransitionException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "JobDocument":{ + "type":"string", + "max":32768 + }, + "JobExecution":{ + "type":"structure", + "members":{ + "jobId":{"shape":"JobId"}, + "thingName":{"shape":"ThingName"}, + "status":{"shape":"JobExecutionStatus"}, + "statusDetails":{"shape":"DetailsMap"}, + "queuedAt":{"shape":"QueuedAt"}, + "startedAt":{"shape":"StartedAt"}, + "lastUpdatedAt":{"shape":"LastUpdatedAt"}, + "versionNumber":{"shape":"VersionNumber"}, + "executionNumber":{"shape":"ExecutionNumber"}, + "jobDocument":{"shape":"JobDocument"} + } + }, + "JobExecutionState":{ + "type":"structure", + "members":{ + "status":{"shape":"JobExecutionStatus"}, + "statusDetails":{"shape":"DetailsMap"}, + "versionNumber":{"shape":"VersionNumber"} + } + }, + "JobExecutionStatus":{ + "type":"string", + "enum":[ + "QUEUED", + "IN_PROGRESS", + "SUCCEEDED", + "FAILED", + "REJECTED", + "REMOVED", + "CANCELED" + ] + }, + "JobExecutionSummary":{ + "type":"structure", + "members":{ + "jobId":{"shape":"JobId"}, + "queuedAt":{"shape":"QueuedAt"}, + "startedAt":{"shape":"StartedAt"}, + "lastUpdatedAt":{"shape":"LastUpdatedAt"}, + "versionNumber":{"shape":"VersionNumber"}, + "executionNumber":{"shape":"ExecutionNumber"} + } + }, + "JobExecutionSummaryList":{ + "type":"list", + "member":{"shape":"JobExecutionSummary"} + }, + "JobId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9_-]+" + }, + "LastUpdatedAt":{"type":"long"}, + "QueuedAt":{"type":"long"}, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":503}, + "exception":true, + "fault":true + }, + "StartNextPendingJobExecutionRequest":{ + "type":"structure", + "required":["thingName"], + "members":{ + "thingName":{ + "shape":"ThingName", + "location":"uri", + "locationName":"thingName" + }, + "statusDetails":{"shape":"DetailsMap"} + } + }, + "StartNextPendingJobExecutionResponse":{ + "type":"structure", + "members":{ + "execution":{"shape":"JobExecution"} + } + }, + "StartedAt":{"type":"long"}, + "TerminalStateException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":410}, + "exception":true + }, + "ThingName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "UpdateJobExecutionRequest":{ + "type":"structure", + "required":[ + "jobId", + "thingName", + "status" + ], + "members":{ + "jobId":{ + "shape":"JobId", + "location":"uri", + "locationName":"jobId" + }, + "thingName":{ + "shape":"ThingName", + "location":"uri", + "locationName":"thingName" + }, + "status":{"shape":"JobExecutionStatus"}, + "statusDetails":{"shape":"DetailsMap"}, + "expectedVersion":{"shape":"ExpectedVersion"}, + "includeJobExecutionState":{"shape":"IncludeExecutionState"}, + "includeJobDocument":{"shape":"IncludeJobDocument"}, + "executionNumber":{"shape":"ExecutionNumber"} + } + }, + "UpdateJobExecutionResponse":{ + "type":"structure", + "members":{ + "executionState":{"shape":"JobExecutionState"}, + "jobDocument":{"shape":"JobDocument"} + } + }, + "VersionNumber":{"type":"long"}, + "errorMessage":{"type":"string"} + } +} diff --git a/models/apis/iot-jobs-data/2017-09-29/docs-2.json b/models/apis/iot-jobs-data/2017-09-29/docs-2.json new file mode 100644 index 00000000000..9084f333c7d --- /dev/null +++ b/models/apis/iot-jobs-data/2017-09-29/docs-2.json @@ -0,0 +1,242 @@ +{ + "version": "2.0", + "service": "

AWS IoT Jobs is a service that allows you to define a set of jobs — remote operations that are sent to and executed on one or more devices connected to AWS IoT. For example, you can define a job that instructs a set of devices to download and install application or firmware updates, reboot, rotate certificates, or perform remote troubleshooting operations.

To create a job, you make a job document which is a description of the remote operations to be performed, and you specify a list of targets that should perform the operations. The targets can be individual things, thing groups or both.

AWS IoT Jobs sends a message to inform the targets that a job is available. The target starts the execution of the job by downloading the job document, performing the operations it specifies, and reporting its progress to AWS IoT. The Jobs service provides commands to track the progress of a job on a specific target and for all the targets of the job

", + "operations": { + "DescribeJobExecution": "

Gets details of a job execution.

", + "GetPendingJobExecutions": "

Gets the list of all jobs for a thing that are not in a terminal status.

", + "StartNextPendingJobExecution": "

Gets and starts the next pending (status IN_PROGRESS or QUEUED) job execution for a thing.

", + "UpdateJobExecution": "

Updates the status of a job execution.

" + }, + "shapes": { + "CertificateValidationException": { + "base": "

The certificate is invalid.

", + "refs": { + } + }, + "DescribeJobExecutionJobId": { + "base": null, + "refs": { + "DescribeJobExecutionRequest$jobId": "

The unique identifier assigned to this job when it was created.

" + } + }, + "DescribeJobExecutionRequest": { + "base": null, + "refs": { + } + }, + "DescribeJobExecutionResponse": { + "base": null, + "refs": { + } + }, + "DetailsKey": { + "base": null, + "refs": { + "DetailsMap$key": null + } + }, + "DetailsMap": { + "base": null, + "refs": { + "JobExecution$statusDetails": "

A collection of name/value pairs that describe the status of the job execution.

", + "JobExecutionState$statusDetails": "

A collection of name/value pairs that describe the status of the job execution.

", + "StartNextPendingJobExecutionRequest$statusDetails": "

A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged.

", + "UpdateJobExecutionRequest$statusDetails": "

Optional. A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged.

" + } + }, + "DetailsValue": { + "base": null, + "refs": { + "DetailsMap$value": null + } + }, + "ExecutionNumber": { + "base": null, + "refs": { + "DescribeJobExecutionRequest$executionNumber": "

Optional. A number that identifies a particular job execution on a particular device. If not specified, the latest job execution is returned.

", + "JobExecution$executionNumber": "

A number that identifies a particular job execution on a particular device. It can be used later in commands that return or update job execution information.

", + "JobExecutionSummary$executionNumber": "

A number that identifies a particular job execution on a particular device.

", + "UpdateJobExecutionRequest$executionNumber": "

Optional. A number that identifies a particular job execution on a particular device.

" + } + }, + "ExpectedVersion": { + "base": null, + "refs": { + "UpdateJobExecutionRequest$expectedVersion": "

Optional. The expected current version of the job execution. Each time you update the job execution, its version is incremented. If the version of the job execution stored in Jobs does not match, the update is rejected with a VersionMismatch error, and an ErrorResponse that contains the current job execution status data is returned. (This makes it unnecessary to perform a separate DescribeJobExecution request in order to obtain the job execution status data.)

" + } + }, + "GetPendingJobExecutionsRequest": { + "base": null, + "refs": { + } + }, + "GetPendingJobExecutionsResponse": { + "base": null, + "refs": { + } + }, + "IncludeExecutionState": { + "base": null, + "refs": { + "UpdateJobExecutionRequest$includeJobExecutionState": "

Optional. When included and set to true, the response contains the JobExecutionState data. The default is false.

" + } + }, + "IncludeJobDocument": { + "base": null, + "refs": { + "DescribeJobExecutionRequest$includeJobDocument": "

Optional. When set to true, the response contains the job document. The default is false.

", + "UpdateJobExecutionRequest$includeJobDocument": "

Optional. When set to true, the response contains the job document. The default is false.

" + } + }, + "InvalidRequestException": { + "base": "

The contents of the request were invalid. For example, this code is returned when an UpdateJobExecution request contains invalid status details. The message contains details about the error.

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

An update attempted to change the job execution to a state that is invalid because of the job execution's current state (for example, an attempt to change a request in state SUCCESS to state IN_PROGRESS). In this case, the body of the error message also contains the executionState field.

", + "refs": { + } + }, + "JobDocument": { + "base": null, + "refs": { + "JobExecution$jobDocument": "

The content of the job document.

", + "UpdateJobExecutionResponse$jobDocument": "

The contents of the Job Documents.

" + } + }, + "JobExecution": { + "base": "

Contains data about a job execution.

", + "refs": { + "DescribeJobExecutionResponse$execution": "

Contains data about a job execution.

", + "StartNextPendingJobExecutionResponse$execution": "

A JobExecution object.

" + } + }, + "JobExecutionState": { + "base": "

Contains data about the state of a job execution.

", + "refs": { + "UpdateJobExecutionResponse$executionState": "

A JobExecutionState object.

" + } + }, + "JobExecutionStatus": { + "base": null, + "refs": { + "JobExecution$status": "

The status of the job execution. Can be one of: \"QUEUED\", \"IN_PROGRESS\", \"FAILED\", \"SUCCESS\", \"CANCELED\", \"REJECTED\", or \"REMOVED\".

", + "JobExecutionState$status": "

The status of the job execution. Can be one of: \"QUEUED\", \"IN_PROGRESS\", \"FAILED\", \"SUCCESS\", \"CANCELED\", \"REJECTED\", or \"REMOVED\".

", + "UpdateJobExecutionRequest$status": "

The new status for the job execution (IN_PROGRESS, FAILED, SUCCESS, or REJECTED). This must be specified on every update.

" + } + }, + "JobExecutionSummary": { + "base": "

Contains a subset of information about a job execution.

", + "refs": { + "JobExecutionSummaryList$member": null + } + }, + "JobExecutionSummaryList": { + "base": null, + "refs": { + "GetPendingJobExecutionsResponse$inProgressJobs": "

A list of JobExecutionSummary objects with status IN_PROGRESS.

", + "GetPendingJobExecutionsResponse$queuedJobs": "

A list of JobExecutionSummary objects with status QUEUED.

" + } + }, + "JobId": { + "base": null, + "refs": { + "JobExecution$jobId": "

The unique identifier you assigned to this job when it was created.

", + "JobExecutionSummary$jobId": "

The unique identifier you assigned to this job when it was created.

", + "UpdateJobExecutionRequest$jobId": "

The unique identifier assigned to this job when it was created.

" + } + }, + "LastUpdatedAt": { + "base": null, + "refs": { + "JobExecution$lastUpdatedAt": "

The time, in milliseconds since the epoch, when the job execution was last updated.

", + "JobExecutionSummary$lastUpdatedAt": "

The time, in milliseconds since the epoch, when the job execution was last updated.

" + } + }, + "QueuedAt": { + "base": null, + "refs": { + "JobExecution$queuedAt": "

The time, in milliseconds since the epoch, when the job execution was enqueued.

", + "JobExecutionSummary$queuedAt": "

The time, in milliseconds since the epoch, when the job execution was enqueued.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified resource does not exist.

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

The service is temporarily unavailable.

", + "refs": { + } + }, + "StartNextPendingJobExecutionRequest": { + "base": null, + "refs": { + } + }, + "StartNextPendingJobExecutionResponse": { + "base": null, + "refs": { + } + }, + "StartedAt": { + "base": null, + "refs": { + "JobExecution$startedAt": "

The time, in milliseconds since the epoch, when the job execution was started.

", + "JobExecutionSummary$startedAt": "

The time, in milliseconds since the epoch, when the job execution started.

" + } + }, + "TerminalStateException": { + "base": "

The job is in a terminal state.

", + "refs": { + } + }, + "ThingName": { + "base": null, + "refs": { + "DescribeJobExecutionRequest$thingName": "

The thing name associated with the device the job execution is running on.

", + "GetPendingJobExecutionsRequest$thingName": "

The name of the thing that is executing the job.

", + "JobExecution$thingName": "

The name of the thing that is executing the job.

", + "StartNextPendingJobExecutionRequest$thingName": "

The name of the thing associated with the device.

", + "UpdateJobExecutionRequest$thingName": "

The name of the thing associated with the device.

" + } + }, + "ThrottlingException": { + "base": "

The rate exceeds the limit.

", + "refs": { + } + }, + "UpdateJobExecutionRequest": { + "base": null, + "refs": { + } + }, + "UpdateJobExecutionResponse": { + "base": null, + "refs": { + } + }, + "VersionNumber": { + "base": null, + "refs": { + "JobExecution$versionNumber": "

The version of the job execution. Job execution versions are incremented each time they are updated by a device.

", + "JobExecutionState$versionNumber": "

The version of the job execution. Job execution versions are incremented each time they are updated by a device.

", + "JobExecutionSummary$versionNumber": "

The version of the job execution. Job execution versions are incremented each time AWS IoT Jobs receives an update from a device.

" + } + }, + "errorMessage": { + "base": null, + "refs": { + "CertificateValidationException$message": "

Additional information about the exception.

", + "InvalidRequestException$message": "

The message for the exception.

", + "InvalidStateTransitionException$message": null, + "ResourceNotFoundException$message": "

The message for the exception.

", + "ServiceUnavailableException$message": "

The message for the exception.

", + "TerminalStateException$message": null, + "ThrottlingException$message": "

The message for the exception.

" + } + } + } +} diff --git a/models/apis/iot-jobs-data/2017-09-29/examples-1.json b/models/apis/iot-jobs-data/2017-09-29/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/iot-jobs-data/2017-09-29/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/iot-jobs-data/2017-09-29/paginators-1.json b/models/apis/iot-jobs-data/2017-09-29/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/iot-jobs-data/2017-09-29/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/iot/2015-05-28/api-2.json b/models/apis/iot/2015-05-28/api-2.json index 6f20cfdfe08..ec1f13b3109 100644 --- a/models/apis/iot/2015-05-28/api-2.json +++ b/models/apis/iot/2015-05-28/api-2.json @@ -5,6 +5,7 @@ "endpointPrefix":"iot", "protocol":"rest-json", "serviceFullName":"AWS IoT", + "serviceId":"IoT", "signatureVersion":"v4", "signingName":"execute-api", "uid":"iot-2015-05-28" @@ -27,6 +28,54 @@ {"shape":"InternalFailureException"} ] }, + "AddThingToThingGroup":{ + "name":"AddThingToThingGroup", + "http":{ + "method":"PUT", + "requestUri":"/thing-groups/addThingToThingGroup" + }, + "input":{"shape":"AddThingToThingGroupRequest"}, + "output":{"shape":"AddThingToThingGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "AssociateTargetsWithJob":{ + "name":"AssociateTargetsWithJob", + "http":{ + "method":"POST", + "requestUri":"/jobs/{jobId}/targets" + }, + "input":{"shape":"AssociateTargetsWithJobRequest"}, + "output":{"shape":"AssociateTargetsWithJobResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"} + ] + }, + "AttachPolicy":{ + "name":"AttachPolicy", + "http":{ + "method":"PUT", + "requestUri":"/target-policies/{policyName}" + }, + "input":{"shape":"AttachPolicyRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"} + ] + }, "AttachPrincipalPolicy":{ "name":"AttachPrincipalPolicy", "http":{ @@ -42,7 +91,8 @@ {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"}, {"shape":"LimitExceededException"} - ] + ], + "deprecated":true }, "AttachThingPrincipal":{ "name":"AttachThingPrincipal", @@ -78,6 +128,56 @@ {"shape":"InternalFailureException"} ] }, + "CancelJob":{ + "name":"CancelJob", + "http":{ + "method":"PUT", + "requestUri":"/jobs/{jobId}/cancel" + }, + "input":{"shape":"CancelJobRequest"}, + "output":{"shape":"CancelJobResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"} + ] + }, + "ClearDefaultAuthorizer":{ + "name":"ClearDefaultAuthorizer", + "http":{ + "method":"DELETE", + "requestUri":"/default-authorizer" + }, + "input":{"shape":"ClearDefaultAuthorizerRequest"}, + "output":{"shape":"ClearDefaultAuthorizerResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, + "CreateAuthorizer":{ + "name":"CreateAuthorizer", + "http":{ + "method":"POST", + "requestUri":"/authorizer/{authorizerName}" + }, + "input":{"shape":"CreateAuthorizerRequest"}, + "output":{"shape":"CreateAuthorizerResponse"}, + "errors":[ + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"InvalidRequestException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "CreateCertificateFromCsr":{ "name":"CreateCertificateFromCsr", "http":{ @@ -94,6 +194,23 @@ {"shape":"InternalFailureException"} ] }, + "CreateJob":{ + "name":"CreateJob", + "http":{ + "method":"PUT", + "requestUri":"/jobs/{jobId}" + }, + "input":{"shape":"CreateJobRequest"}, + "output":{"shape":"CreateJobResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "CreateKeysAndCertificate":{ "name":"CreateKeysAndCertificate", "http":{ @@ -147,6 +264,24 @@ {"shape":"InternalFailureException"} ] }, + "CreateRoleAlias":{ + "name":"CreateRoleAlias", + "http":{ + "method":"POST", + "requestUri":"/role-aliases/{roleAlias}" + }, + "input":{"shape":"CreateRoleAliasRequest"}, + "output":{"shape":"CreateRoleAliasResponse"}, + "errors":[ + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"InvalidRequestException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "CreateThing":{ "name":"CreateThing", "http":{ @@ -165,6 +300,21 @@ {"shape":"ResourceNotFoundException"} ] }, + "CreateThingGroup":{ + "name":"CreateThingGroup", + "http":{ + "method":"POST", + "requestUri":"/thing-groups/{thingGroupName}" + }, + "input":{"shape":"CreateThingGroupRequest"}, + "output":{"shape":"CreateThingGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ] + }, "CreateThingType":{ "name":"CreateThingType", "http":{ @@ -197,6 +347,24 @@ {"shape":"ServiceUnavailableException"} ] }, + "DeleteAuthorizer":{ + "name":"DeleteAuthorizer", + "http":{ + "method":"DELETE", + "requestUri":"/authorizer/{authorizerName}" + }, + "input":{"shape":"DeleteAuthorizerRequest"}, + "output":{"shape":"DeleteAuthorizerResponse"}, + "errors":[ + {"shape":"DeleteConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "DeleteCACertificate":{ "name":"DeleteCACertificate", "http":{ @@ -283,6 +451,24 @@ {"shape":"InternalFailureException"} ] }, + "DeleteRoleAlias":{ + "name":"DeleteRoleAlias", + "http":{ + "method":"DELETE", + "requestUri":"/role-aliases/{roleAlias}" + }, + "input":{"shape":"DeleteRoleAliasRequest"}, + "output":{"shape":"DeleteRoleAliasResponse"}, + "errors":[ + {"shape":"DeleteConflictException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "DeleteThing":{ "name":"DeleteThing", "http":{ @@ -301,6 +487,21 @@ {"shape":"InternalFailureException"} ] }, + "DeleteThingGroup":{ + "name":"DeleteThingGroup", + "http":{ + "method":"DELETE", + "requestUri":"/thing-groups/{thingGroupName}" + }, + "input":{"shape":"DeleteThingGroupRequest"}, + "output":{"shape":"DeleteThingGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"VersionConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ] + }, "DeleteThingType":{ "name":"DeleteThingType", "http":{ @@ -332,6 +533,19 @@ {"shape":"UnauthorizedException"} ] }, + "DeleteV2LoggingLevel":{ + "name":"DeleteV2LoggingLevel", + "http":{ + "method":"DELETE", + "requestUri":"/v2LoggingLevel" + }, + "input":{"shape":"DeleteV2LoggingLevelRequest"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "DeprecateThingType":{ "name":"DeprecateThingType", "http":{ @@ -349,6 +563,23 @@ {"shape":"InternalFailureException"} ] }, + "DescribeAuthorizer":{ + "name":"DescribeAuthorizer", + "http":{ + "method":"GET", + "requestUri":"/authorizer/{authorizerName}" + }, + "input":{"shape":"DescribeAuthorizerRequest"}, + "output":{"shape":"DescribeAuthorizerResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "DescribeCACertificate":{ "name":"DescribeCACertificate", "http":{ @@ -383,6 +614,23 @@ {"shape":"ResourceNotFoundException"} ] }, + "DescribeDefaultAuthorizer":{ + "name":"DescribeDefaultAuthorizer", + "http":{ + "method":"GET", + "requestUri":"/default-authorizer" + }, + "input":{"shape":"DescribeDefaultAuthorizerRequest"}, + "output":{"shape":"DescribeDefaultAuthorizerResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "DescribeEndpoint":{ "name":"DescribeEndpoint", "http":{ @@ -393,68 +641,96 @@ "output":{"shape":"DescribeEndpointResponse"}, "errors":[ {"shape":"InternalFailureException"}, + {"shape":"InvalidRequestException"}, {"shape":"UnauthorizedException"}, {"shape":"ThrottlingException"} ] }, - "DescribeThing":{ - "name":"DescribeThing", + "DescribeEventConfigurations":{ + "name":"DescribeEventConfigurations", "http":{ "method":"GET", - "requestUri":"/things/{thingName}" + "requestUri":"/event-configurations" }, - "input":{"shape":"DescribeThingRequest"}, - "output":{"shape":"DescribeThingResponse"}, + "input":{"shape":"DescribeEventConfigurationsRequest"}, + "output":{"shape":"DescribeEventConfigurationsResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ThrottlingException"} + ] + }, + "DescribeIndex":{ + "name":"DescribeIndex", + "http":{ + "method":"GET", + "requestUri":"/indices/{indexName}" + }, + "input":{"shape":"DescribeIndexRequest"}, + "output":{"shape":"DescribeIndexResponse"}, "errors":[ - {"shape":"ResourceNotFoundException"}, {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, - {"shape":"InternalFailureException"} + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} ] }, - "DescribeThingType":{ - "name":"DescribeThingType", + "DescribeJob":{ + "name":"DescribeJob", "http":{ "method":"GET", - "requestUri":"/thing-types/{thingTypeName}" + "requestUri":"/jobs/{jobId}" }, - "input":{"shape":"DescribeThingTypeRequest"}, - "output":{"shape":"DescribeThingTypeResponse"}, + "input":{"shape":"DescribeJobRequest"}, + "output":{"shape":"DescribeJobResponse"}, "errors":[ - {"shape":"ResourceNotFoundException"}, {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"UnauthorizedException"}, - {"shape":"ServiceUnavailableException"}, - {"shape":"InternalFailureException"} + {"shape":"ServiceUnavailableException"} ] }, - "DetachPrincipalPolicy":{ - "name":"DetachPrincipalPolicy", + "DescribeJobExecution":{ + "name":"DescribeJobExecution", "http":{ - "method":"DELETE", - "requestUri":"/principal-policies/{policyName}" + "method":"GET", + "requestUri":"/things/{thingName}/jobs/{jobId}" }, - "input":{"shape":"DetachPrincipalPolicyRequest"}, + "input":{"shape":"DescribeJobExecutionRequest"}, + "output":{"shape":"DescribeJobExecutionResponse"}, "errors":[ + {"shape":"InvalidRequestException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"} + ] + }, + "DescribeRoleAlias":{ + "name":"DescribeRoleAlias", + "http":{ + "method":"GET", + "requestUri":"/role-aliases/{roleAlias}" + }, + "input":{"shape":"DescribeRoleAliasRequest"}, + "output":{"shape":"DescribeRoleAliasResponse"}, + "errors":[ {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, - {"shape":"InternalFailureException"} + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} ] }, - "DetachThingPrincipal":{ - "name":"DetachThingPrincipal", + "DescribeThing":{ + "name":"DescribeThing", "http":{ - "method":"DELETE", - "requestUri":"/things/{thingName}/principals" + "method":"GET", + "requestUri":"/things/{thingName}" }, - "input":{"shape":"DetachThingPrincipalRequest"}, - "output":{"shape":"DetachThingPrincipalResponse"}, + "input":{"shape":"DescribeThingRequest"}, + "output":{"shape":"DescribeThingResponse"}, "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidRequestException"}, @@ -464,33 +740,180 @@ {"shape":"InternalFailureException"} ] }, - "DisableTopicRule":{ - "name":"DisableTopicRule", + "DescribeThingGroup":{ + "name":"DescribeThingGroup", "http":{ - "method":"POST", - "requestUri":"/rules/{ruleName}/disable" + "method":"GET", + "requestUri":"/thing-groups/{thingGroupName}" }, - "input":{"shape":"DisableTopicRuleRequest"}, + "input":{"shape":"DescribeThingGroupRequest"}, + "output":{"shape":"DescribeThingGroupResponse"}, "errors":[ - {"shape":"InternalException"}, {"shape":"InvalidRequestException"}, - {"shape":"ServiceUnavailableException"}, - {"shape":"UnauthorizedException"} + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} ] }, - "EnableTopicRule":{ - "name":"EnableTopicRule", + "DescribeThingRegistrationTask":{ + "name":"DescribeThingRegistrationTask", "http":{ - "method":"POST", - "requestUri":"/rules/{ruleName}/enable" + "method":"GET", + "requestUri":"/thing-registration-tasks/{taskId}" }, - "input":{"shape":"EnableTopicRuleRequest"}, + "input":{"shape":"DescribeThingRegistrationTaskRequest"}, + "output":{"shape":"DescribeThingRegistrationTaskResponse"}, "errors":[ - {"shape":"InternalException"}, {"shape":"InvalidRequestException"}, - {"shape":"ServiceUnavailableException"}, - {"shape":"UnauthorizedException"} - ] + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "DescribeThingType":{ + "name":"DescribeThingType", + "http":{ + "method":"GET", + "requestUri":"/thing-types/{thingTypeName}" + }, + "input":{"shape":"DescribeThingTypeRequest"}, + "output":{"shape":"DescribeThingTypeResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, + "DetachPolicy":{ + "name":"DetachPolicy", + "http":{ + "method":"POST", + "requestUri":"/target-policies/{policyName}" + }, + "input":{"shape":"DetachPolicyRequest"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"} + ] + }, + "DetachPrincipalPolicy":{ + "name":"DetachPrincipalPolicy", + "http":{ + "method":"DELETE", + "requestUri":"/principal-policies/{policyName}" + }, + "input":{"shape":"DetachPrincipalPolicyRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ], + "deprecated":true + }, + "DetachThingPrincipal":{ + "name":"DetachThingPrincipal", + "http":{ + "method":"DELETE", + "requestUri":"/things/{thingName}/principals" + }, + "input":{"shape":"DetachThingPrincipalRequest"}, + "output":{"shape":"DetachThingPrincipalResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, + "DisableTopicRule":{ + "name":"DisableTopicRule", + "http":{ + "method":"POST", + "requestUri":"/rules/{ruleName}/disable" + }, + "input":{"shape":"DisableTopicRuleRequest"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"} + ] + }, + "EnableTopicRule":{ + "name":"EnableTopicRule", + "http":{ + "method":"POST", + "requestUri":"/rules/{ruleName}/enable" + }, + "input":{"shape":"EnableTopicRuleRequest"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"} + ] + }, + "GetEffectivePolicies":{ + "name":"GetEffectivePolicies", + "http":{ + "method":"POST", + "requestUri":"/effective-policies" + }, + "input":{"shape":"GetEffectivePoliciesRequest"}, + "output":{"shape":"GetEffectivePoliciesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"} + ] + }, + "GetIndexingConfiguration":{ + "name":"GetIndexingConfiguration", + "http":{ + "method":"GET", + "requestUri":"/indexing/config" + }, + "input":{"shape":"GetIndexingConfigurationRequest"}, + "output":{"shape":"GetIndexingConfigurationResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, + "GetJobDocument":{ + "name":"GetJobDocument", + "http":{ + "method":"GET", + "requestUri":"/jobs/{jobId}/job-document" + }, + "input":{"shape":"GetJobDocumentRequest"}, + "output":{"shape":"GetJobDocumentResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"} + ] }, "GetLoggingOptions":{ "name":"GetLoggingOptions", @@ -571,6 +994,54 @@ {"shape":"UnauthorizedException"} ] }, + "GetV2LoggingOptions":{ + "name":"GetV2LoggingOptions", + "http":{ + "method":"GET", + "requestUri":"/v2LoggingOptions" + }, + "input":{"shape":"GetV2LoggingOptionsRequest"}, + "output":{"shape":"GetV2LoggingOptionsResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ServiceUnavailableException"} + ] + }, + "ListAttachedPolicies":{ + "name":"ListAttachedPolicies", + "http":{ + "method":"POST", + "requestUri":"/attached-policies/{target}" + }, + "input":{"shape":"ListAttachedPoliciesRequest"}, + "output":{"shape":"ListAttachedPoliciesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"} + ] + }, + "ListAuthorizers":{ + "name":"ListAuthorizers", + "http":{ + "method":"GET", + "requestUri":"/authorizers/" + }, + "input":{"shape":"ListAuthorizersRequest"}, + "output":{"shape":"ListAuthorizersResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "ListCACertificates":{ "name":"ListCACertificates", "http":{ @@ -619,6 +1090,67 @@ {"shape":"InternalFailureException"} ] }, + "ListIndices":{ + "name":"ListIndices", + "http":{ + "method":"GET", + "requestUri":"/indices" + }, + "input":{"shape":"ListIndicesRequest"}, + "output":{"shape":"ListIndicesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, + "ListJobExecutionsForJob":{ + "name":"ListJobExecutionsForJob", + "http":{ + "method":"GET", + "requestUri":"/jobs/{jobId}/things" + }, + "input":{"shape":"ListJobExecutionsForJobRequest"}, + "output":{"shape":"ListJobExecutionsForJobResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"} + ] + }, + "ListJobExecutionsForThing":{ + "name":"ListJobExecutionsForThing", + "http":{ + "method":"GET", + "requestUri":"/things/{thingName}/jobs" + }, + "input":{"shape":"ListJobExecutionsForThingRequest"}, + "output":{"shape":"ListJobExecutionsForThingResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"} + ] + }, + "ListJobs":{ + "name":"ListJobs", + "http":{ + "method":"GET", + "requestUri":"/jobs" + }, + "input":{"shape":"ListJobsRequest"}, + "output":{"shape":"ListJobsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "ListOutgoingCertificates":{ "name":"ListOutgoingCertificates", "http":{ @@ -666,7 +1198,8 @@ {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"} - ] + ], + "deprecated":true }, "ListPolicyVersions":{ "name":"ListPolicyVersions", @@ -700,7 +1233,8 @@ {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"} - ] + ], + "deprecated":true }, "ListPrincipalThings":{ "name":"ListPrincipalThings", @@ -719,77 +1253,198 @@ {"shape":"ResourceNotFoundException"} ] }, - "ListThingPrincipals":{ - "name":"ListThingPrincipals", + "ListRoleAliases":{ + "name":"ListRoleAliases", "http":{ "method":"GET", - "requestUri":"/things/{thingName}/principals" + "requestUri":"/role-aliases" }, - "input":{"shape":"ListThingPrincipalsRequest"}, - "output":{"shape":"ListThingPrincipalsResponse"}, + "input":{"shape":"ListRoleAliasesRequest"}, + "output":{"shape":"ListRoleAliasesResponse"}, "errors":[ {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, - {"shape":"InternalFailureException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"InternalFailureException"} ] }, - "ListThingTypes":{ - "name":"ListThingTypes", + "ListTargetsForPolicy":{ + "name":"ListTargetsForPolicy", "http":{ - "method":"GET", - "requestUri":"/thing-types" + "method":"POST", + "requestUri":"/policy-targets/{policyName}" }, - "input":{"shape":"ListThingTypesRequest"}, - "output":{"shape":"ListThingTypesResponse"}, + "input":{"shape":"ListTargetsForPolicyRequest"}, + "output":{"shape":"ListTargetsForPolicyResponse"}, "errors":[ + {"shape":"ResourceNotFoundException"}, {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, - {"shape":"InternalFailureException"} + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"} ] }, - "ListThings":{ - "name":"ListThings", + "ListThingGroups":{ + "name":"ListThingGroups", "http":{ "method":"GET", - "requestUri":"/things" + "requestUri":"/thing-groups" }, - "input":{"shape":"ListThingsRequest"}, - "output":{"shape":"ListThingsResponse"}, + "input":{"shape":"ListThingGroupsRequest"}, + "output":{"shape":"ListThingGroupsResponse"}, "errors":[ {"shape":"InvalidRequestException"}, - {"shape":"ThrottlingException"}, - {"shape":"UnauthorizedException"}, - {"shape":"ServiceUnavailableException"}, - {"shape":"InternalFailureException"} + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} ] }, - "ListTopicRules":{ - "name":"ListTopicRules", + "ListThingGroupsForThing":{ + "name":"ListThingGroupsForThing", "http":{ "method":"GET", - "requestUri":"/rules" + "requestUri":"/things/{thingName}/thing-groups" }, - "input":{"shape":"ListTopicRulesRequest"}, - "output":{"shape":"ListTopicRulesResponse"}, + "input":{"shape":"ListThingGroupsForThingRequest"}, + "output":{"shape":"ListThingGroupsForThingResponse"}, "errors":[ - {"shape":"InternalException"}, {"shape":"InvalidRequestException"}, - {"shape":"ServiceUnavailableException"} + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} ] }, - "RegisterCACertificate":{ - "name":"RegisterCACertificate", + "ListThingPrincipals":{ + "name":"ListThingPrincipals", "http":{ - "method":"POST", - "requestUri":"/cacertificate" + "method":"GET", + "requestUri":"/things/{thingName}/principals" }, - "input":{"shape":"RegisterCACertificateRequest"}, - "output":{"shape":"RegisterCACertificateResponse"}, + "input":{"shape":"ListThingPrincipalsRequest"}, + "output":{"shape":"ListThingPrincipalsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListThingRegistrationTaskReports":{ + "name":"ListThingRegistrationTaskReports", + "http":{ + "method":"GET", + "requestUri":"/thing-registration-tasks/{taskId}/reports" + }, + "input":{"shape":"ListThingRegistrationTaskReportsRequest"}, + "output":{"shape":"ListThingRegistrationTaskReportsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "ListThingRegistrationTasks":{ + "name":"ListThingRegistrationTasks", + "http":{ + "method":"GET", + "requestUri":"/thing-registration-tasks" + }, + "input":{"shape":"ListThingRegistrationTasksRequest"}, + "output":{"shape":"ListThingRegistrationTasksResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "ListThingTypes":{ + "name":"ListThingTypes", + "http":{ + "method":"GET", + "requestUri":"/thing-types" + }, + "input":{"shape":"ListThingTypesRequest"}, + "output":{"shape":"ListThingTypesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, + "ListThings":{ + "name":"ListThings", + "http":{ + "method":"GET", + "requestUri":"/things" + }, + "input":{"shape":"ListThingsRequest"}, + "output":{"shape":"ListThingsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, + "ListThingsInThingGroup":{ + "name":"ListThingsInThingGroup", + "http":{ + "method":"GET", + "requestUri":"/thing-groups/{thingGroupName}/things" + }, + "input":{"shape":"ListThingsInThingGroupRequest"}, + "output":{"shape":"ListThingsInThingGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListTopicRules":{ + "name":"ListTopicRules", + "http":{ + "method":"GET", + "requestUri":"/rules" + }, + "input":{"shape":"ListTopicRulesRequest"}, + "output":{"shape":"ListTopicRulesResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ServiceUnavailableException"} + ] + }, + "ListV2LoggingLevels":{ + "name":"ListV2LoggingLevels", + "http":{ + "method":"GET", + "requestUri":"/v2LoggingLevel" + }, + "input":{"shape":"ListV2LoggingLevelsRequest"}, + "output":{"shape":"ListV2LoggingLevelsResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"NotConfiguredException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ServiceUnavailableException"} + ] + }, + "RegisterCACertificate":{ + "name":"RegisterCACertificate", + "http":{ + "method":"POST", + "requestUri":"/cacertificate" + }, + "input":{"shape":"RegisterCACertificateRequest"}, + "output":{"shape":"RegisterCACertificateResponse"}, "errors":[ {"shape":"ResourceAlreadyExistsException"}, {"shape":"RegistrationCodeValidationException"}, @@ -822,6 +1477,24 @@ {"shape":"InternalFailureException"} ] }, + "RegisterThing":{ + "name":"RegisterThing", + "http":{ + "method":"POST", + "requestUri":"/things" + }, + "input":{"shape":"RegisterThingRequest"}, + "output":{"shape":"RegisterThingResponse"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictingResourceUpdateException"}, + {"shape":"ResourceRegistrationFailureException"} + ] + }, "RejectCertificateTransfer":{ "name":"RejectCertificateTransfer", "http":{ @@ -839,6 +1512,21 @@ {"shape":"InternalFailureException"} ] }, + "RemoveThingFromThingGroup":{ + "name":"RemoveThingFromThingGroup", + "http":{ + "method":"PUT", + "requestUri":"/thing-groups/removeThingFromThingGroup" + }, + "input":{"shape":"RemoveThingFromThingGroupRequest"}, + "output":{"shape":"RemoveThingFromThingGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "ReplaceTopicRule":{ "name":"ReplaceTopicRule", "http":{ @@ -854,6 +1542,42 @@ {"shape":"UnauthorizedException"} ] }, + "SearchIndex":{ + "name":"SearchIndex", + "http":{ + "method":"POST", + "requestUri":"/indices/search" + }, + "input":{"shape":"SearchIndexRequest"}, + "output":{"shape":"SearchIndexResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidQueryException"}, + {"shape":"IndexNotReadyException"} + ] + }, + "SetDefaultAuthorizer":{ + "name":"SetDefaultAuthorizer", + "http":{ + "method":"POST", + "requestUri":"/default-authorizer" + }, + "input":{"shape":"SetDefaultAuthorizerRequest"}, + "output":{"shape":"SetDefaultAuthorizerResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "SetDefaultPolicyVersion":{ "name":"SetDefaultPolicyVersion", "http":{ @@ -883,6 +1607,100 @@ {"shape":"ServiceUnavailableException"} ] }, + "SetV2LoggingLevel":{ + "name":"SetV2LoggingLevel", + "http":{ + "method":"POST", + "requestUri":"/v2LoggingLevel" + }, + "input":{"shape":"SetV2LoggingLevelRequest"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"NotConfiguredException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ServiceUnavailableException"} + ] + }, + "SetV2LoggingOptions":{ + "name":"SetV2LoggingOptions", + "http":{ + "method":"POST", + "requestUri":"/v2LoggingOptions" + }, + "input":{"shape":"SetV2LoggingOptionsRequest"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ServiceUnavailableException"} + ] + }, + "StartThingRegistrationTask":{ + "name":"StartThingRegistrationTask", + "http":{ + "method":"POST", + "requestUri":"/thing-registration-tasks" + }, + "input":{"shape":"StartThingRegistrationTaskRequest"}, + "output":{"shape":"StartThingRegistrationTaskResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"} + ] + }, + "StopThingRegistrationTask":{ + "name":"StopThingRegistrationTask", + "http":{ + "method":"PUT", + "requestUri":"/thing-registration-tasks/{taskId}/cancel" + }, + "input":{"shape":"StopThingRegistrationTaskRequest"}, + "output":{"shape":"StopThingRegistrationTaskResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "TestAuthorization":{ + "name":"TestAuthorization", + "http":{ + "method":"POST", + "requestUri":"/test-authorization" + }, + "input":{"shape":"TestAuthorizationRequest"}, + "output":{"shape":"TestAuthorizationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"} + ] + }, + "TestInvokeAuthorizer":{ + "name":"TestInvokeAuthorizer", + "http":{ + "method":"POST", + "requestUri":"/authorizer/{authorizerName}/test" + }, + "input":{"shape":"TestInvokeAuthorizerRequest"}, + "output":{"shape":"TestInvokeAuthorizerResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"InvalidResponseException"} + ] + }, "TransferCertificate":{ "name":"TransferCertificate", "http":{ @@ -902,6 +1720,24 @@ {"shape":"InternalFailureException"} ] }, + "UpdateAuthorizer":{ + "name":"UpdateAuthorizer", + "http":{ + "method":"PUT", + "requestUri":"/authorizer/{authorizerName}" + }, + "input":{"shape":"UpdateAuthorizerRequest"}, + "output":{"shape":"UpdateAuthorizerResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, "UpdateCACertificate":{ "name":"UpdateCACertificate", "http":{ @@ -935,35 +1771,113 @@ {"shape":"InternalFailureException"} ] }, - "UpdateThing":{ - "name":"UpdateThing", + "UpdateEventConfigurations":{ + "name":"UpdateEventConfigurations", "http":{ "method":"PATCH", - "requestUri":"/things/{thingName}" + "requestUri":"/event-configurations" }, - "input":{"shape":"UpdateThingRequest"}, - "output":{"shape":"UpdateThingResponse"}, + "input":{"shape":"UpdateEventConfigurationsRequest"}, + "output":{"shape":"UpdateEventConfigurationsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalFailureException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateIndexingConfiguration":{ + "name":"UpdateIndexingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/indexing/config" + }, + "input":{"shape":"UpdateIndexingConfigurationRequest"}, + "output":{"shape":"UpdateIndexingConfigurationResponse"}, "errors":[ {"shape":"InvalidRequestException"}, - {"shape":"VersionConflictException"}, {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, - {"shape":"InternalFailureException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"InternalFailureException"} ] - } - }, - "shapes":{ - "AcceptCertificateTransferRequest":{ - "type":"structure", - "required":["certificateId"], - "members":{ - "certificateId":{ - "shape":"CertificateId", - "location":"uri", - "locationName":"certificateId" - }, + }, + "UpdateRoleAlias":{ + "name":"UpdateRoleAlias", + "http":{ + "method":"PUT", + "requestUri":"/role-aliases/{roleAlias}" + }, + "input":{"shape":"UpdateRoleAliasRequest"}, + "output":{"shape":"UpdateRoleAliasResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"} + ] + }, + "UpdateThing":{ + "name":"UpdateThing", + "http":{ + "method":"PATCH", + "requestUri":"/things/{thingName}" + }, + "input":{"shape":"UpdateThingRequest"}, + "output":{"shape":"UpdateThingResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"VersionConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "UpdateThingGroup":{ + "name":"UpdateThingGroup", + "http":{ + "method":"PATCH", + "requestUri":"/thing-groups/{thingGroupName}" + }, + "input":{"shape":"UpdateThingGroupRequest"}, + "output":{"shape":"UpdateThingGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"VersionConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "UpdateThingGroupsForThing":{ + "name":"UpdateThingGroupsForThing", + "http":{ + "method":"PUT", + "requestUri":"/thing-groups/updateThingGroupsForThing" + }, + "input":{"shape":"UpdateThingGroupsForThingRequest"}, + "output":{"shape":"UpdateThingGroupsForThingResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"} + ] + } + }, + "shapes":{ + "AcceptCertificateTransferRequest":{ + "type":"structure", + "required":["certificateId"], + "members":{ + "certificateId":{ + "shape":"CertificateId", + "location":"uri", + "locationName":"certificateId" + }, "setAsActive":{ "shape":"SetAsActive", "location":"querystring", @@ -995,9 +1909,77 @@ "max":10, "min":0 }, + "ActionType":{ + "type":"string", + "enum":[ + "PUBLISH", + "SUBSCRIBE", + "RECEIVE", + "CONNECT" + ] + }, + "AddThingToThingGroupRequest":{ + "type":"structure", + "members":{ + "thingGroupName":{"shape":"ThingGroupName"}, + "thingGroupArn":{"shape":"ThingGroupArn"}, + "thingName":{"shape":"ThingName"}, + "thingArn":{"shape":"ThingArn"} + } + }, + "AddThingToThingGroupResponse":{ + "type":"structure", + "members":{ + } + }, "AlarmName":{"type":"string"}, "AllowAutoRegistration":{"type":"boolean"}, + "Allowed":{ + "type":"structure", + "members":{ + "policies":{"shape":"Policies"} + } + }, "AscendingOrder":{"type":"boolean"}, + "AssociateTargetsWithJobRequest":{ + "type":"structure", + "required":[ + "targets", + "jobId" + ], + "members":{ + "targets":{"shape":"JobTargets"}, + "jobId":{ + "shape":"JobId", + "location":"uri", + "locationName":"jobId" + }, + "comment":{"shape":"Comment"} + } + }, + "AssociateTargetsWithJobResponse":{ + "type":"structure", + "members":{ + "jobArn":{"shape":"JobArn"}, + "jobId":{"shape":"JobId"}, + "description":{"shape":"JobDescription"} + } + }, + "AttachPolicyRequest":{ + "type":"structure", + "required":[ + "policyName", + "target" + ], + "members":{ + "policyName":{ + "shape":"PolicyName", + "location":"uri", + "locationName":"policyName" + }, + "target":{"shape":"PolicyTarget"} + } + }, "AttachPrincipalPolicyRequest":{ "type":"structure", "required":[ @@ -1063,6 +2045,80 @@ "key":{"shape":"AttributeName"}, "value":{"shape":"AttributeValue"} }, + "AuthDecision":{ + "type":"string", + "enum":[ + "ALLOWED", + "EXPLICIT_DENY", + "IMPLICIT_DENY" + ] + }, + "AuthInfo":{ + "type":"structure", + "members":{ + "actionType":{"shape":"ActionType"}, + "resources":{"shape":"Resources"} + } + }, + "AuthInfos":{ + "type":"list", + "member":{"shape":"AuthInfo"}, + "max":10, + "min":1 + }, + "AuthResult":{ + "type":"structure", + "members":{ + "authInfo":{"shape":"AuthInfo"}, + "allowed":{"shape":"Allowed"}, + "denied":{"shape":"Denied"}, + "authDecision":{"shape":"AuthDecision"}, + "missingContextValues":{"shape":"MissingContextValues"} + } + }, + "AuthResults":{ + "type":"list", + "member":{"shape":"AuthResult"} + }, + "AuthorizerArn":{"type":"string"}, + "AuthorizerDescription":{ + "type":"structure", + "members":{ + "authorizerName":{"shape":"AuthorizerName"}, + "authorizerArn":{"shape":"AuthorizerArn"}, + "authorizerFunctionArn":{"shape":"AuthorizerFunctionArn"}, + "tokenKeyName":{"shape":"TokenKeyName"}, + "tokenSigningPublicKeys":{"shape":"PublicKeyMap"}, + "status":{"shape":"AuthorizerStatus"}, + "creationDate":{"shape":"DateType"}, + "lastModifiedDate":{"shape":"DateType"} + } + }, + "AuthorizerFunctionArn":{"type":"string"}, + "AuthorizerName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w=,@-]+" + }, + "AuthorizerStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "INACTIVE" + ] + }, + "AuthorizerSummary":{ + "type":"structure", + "members":{ + "authorizerName":{"shape":"AuthorizerName"}, + "authorizerArn":{"shape":"AuthorizerArn"} + } + }, + "Authorizers":{ + "type":"list", + "member":{"shape":"AuthorizerSummary"} + }, "AutoRegistrationStatus":{ "type":"string", "enum":[ @@ -1121,6 +2177,27 @@ } } }, + "CancelJobRequest":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"JobId", + "location":"uri", + "locationName":"jobId" + }, + "comment":{"shape":"Comment"} + } + }, + "CancelJobResponse":{ + "type":"structure", + "members":{ + "jobArn":{"shape":"JobArn"}, + "jobId":{"shape":"JobId"}, + "description":{"shape":"JobDescription"} + } + }, + "CanceledThings":{"type":"integer"}, "CannedAccessControlList":{ "type":"string", "enum":[ @@ -1213,6 +2290,16 @@ "type":"list", "member":{"shape":"Certificate"} }, + "ClearDefaultAuthorizerRequest":{ + "type":"structure", + "members":{ + } + }, + "ClearDefaultAuthorizerResponse":{ + "type":"structure", + "members":{ + } + }, "ClientId":{"type":"string"}, "CloudwatchAlarmAction":{ "type":"structure", @@ -1247,6 +2334,54 @@ "metricTimestamp":{"shape":"MetricTimestamp"} } }, + "CognitoIdentityPoolId":{"type":"string"}, + "Comment":{ + "type":"string", + "max":2028, + "pattern":"[^\\p{C}]+" + }, + "Configuration":{ + "type":"structure", + "members":{ + "Enabled":{"shape":"Enabled"} + } + }, + "ConflictingResourceUpdateException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "Count":{"type":"integer"}, + "CreateAuthorizerRequest":{ + "type":"structure", + "required":[ + "authorizerName", + "authorizerFunctionArn", + "tokenKeyName", + "tokenSigningPublicKeys" + ], + "members":{ + "authorizerName":{ + "shape":"AuthorizerName", + "location":"uri", + "locationName":"authorizerName" + }, + "authorizerFunctionArn":{"shape":"AuthorizerFunctionArn"}, + "tokenKeyName":{"shape":"TokenKeyName"}, + "tokenSigningPublicKeys":{"shape":"PublicKeyMap"}, + "status":{"shape":"AuthorizerStatus"} + } + }, + "CreateAuthorizerResponse":{ + "type":"structure", + "members":{ + "authorizerName":{"shape":"AuthorizerName"}, + "authorizerArn":{"shape":"AuthorizerArn"} + } + }, "CreateCertificateFromCsrRequest":{ "type":"structure", "required":["certificateSigningRequest"], @@ -1267,6 +2402,36 @@ "certificatePem":{"shape":"CertificatePem"} } }, + "CreateJobRequest":{ + "type":"structure", + "required":[ + "jobId", + "targets" + ], + "members":{ + "jobId":{ + "shape":"JobId", + "location":"uri", + "locationName":"jobId" + }, + "targets":{"shape":"JobTargets"}, + "documentSource":{"shape":"JobDocumentSource"}, + "document":{"shape":"JobDocument"}, + "description":{"shape":"JobDescription"}, + "presignedUrlConfig":{"shape":"PresignedUrlConfig"}, + "targetSelection":{"shape":"TargetSelection"}, + "jobExecutionsRolloutConfig":{"shape":"JobExecutionsRolloutConfig"}, + "documentParameters":{"shape":"JobDocumentParameters"} + } + }, + "CreateJobResponse":{ + "type":"structure", + "members":{ + "jobArn":{"shape":"JobArn"}, + "jobId":{"shape":"JobId"}, + "description":{"shape":"JobDescription"} + } + }, "CreateKeysAndCertificateRequest":{ "type":"structure", "members":{ @@ -1339,6 +2504,50 @@ "isDefaultVersion":{"shape":"IsDefaultVersion"} } }, + "CreateRoleAliasRequest":{ + "type":"structure", + "required":[ + "roleAlias", + "roleArn" + ], + "members":{ + "roleAlias":{ + "shape":"RoleAlias", + "location":"uri", + "locationName":"roleAlias" + }, + "roleArn":{"shape":"RoleArn"}, + "credentialDurationSeconds":{"shape":"CredentialDurationSeconds"} + } + }, + "CreateRoleAliasResponse":{ + "type":"structure", + "members":{ + "roleAlias":{"shape":"RoleAlias"}, + "roleAliasArn":{"shape":"RoleAliasArn"} + } + }, + "CreateThingGroupRequest":{ + "type":"structure", + "required":["thingGroupName"], + "members":{ + "thingGroupName":{ + "shape":"ThingGroupName", + "location":"uri", + "locationName":"thingGroupName" + }, + "parentGroupName":{"shape":"ThingGroupName"}, + "thingGroupProperties":{"shape":"ThingGroupProperties"} + } + }, + "CreateThingGroupResponse":{ + "type":"structure", + "members":{ + "thingGroupName":{"shape":"ThingGroupName"}, + "thingGroupArn":{"shape":"ThingGroupArn"}, + "thingGroupId":{"shape":"ThingGroupId"} + } + }, "CreateThingRequest":{ "type":"structure", "required":["thingName"], @@ -1356,7 +2565,8 @@ "type":"structure", "members":{ "thingName":{"shape":"ThingName"}, - "thingArn":{"shape":"ThingArn"} + "thingArn":{"shape":"ThingArn"}, + "thingId":{"shape":"ThingId"} } }, "CreateThingTypeRequest":{ @@ -1375,7 +2585,8 @@ "type":"structure", "members":{ "thingTypeName":{"shape":"ThingTypeName"}, - "thingTypeArn":{"shape":"ThingTypeArn"} + "thingTypeArn":{"shape":"ThingTypeArn"}, + "thingTypeId":{"shape":"ThingTypeId"} } }, "CreateTopicRuleRequest":{ @@ -1396,7 +2607,28 @@ }, "CreatedAtDate":{"type":"timestamp"}, "CreationDate":{"type":"timestamp"}, + "CredentialDurationSeconds":{ + "type":"integer", + "max":3600, + "min":900 + }, "DateType":{"type":"timestamp"}, + "DeleteAuthorizerRequest":{ + "type":"structure", + "required":["authorizerName"], + "members":{ + "authorizerName":{ + "shape":"AuthorizerName", + "location":"uri", + "locationName":"authorizerName" + } + } + }, + "DeleteAuthorizerResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteCACertificateRequest":{ "type":"structure", "required":["certificateId"], @@ -1421,6 +2653,11 @@ "shape":"CertificateId", "location":"uri", "locationName":"certificateId" + }, + "forceDelete":{ + "shape":"ForceDelete", + "location":"querystring", + "locationName":"forceDelete" } } }, @@ -1472,14 +2709,30 @@ "members":{ } }, - "DeleteThingRequest":{ + "DeleteRoleAliasRequest":{ "type":"structure", - "required":["thingName"], + "required":["roleAlias"], "members":{ - "thingName":{ - "shape":"ThingName", + "roleAlias":{ + "shape":"RoleAlias", "location":"uri", - "locationName":"thingName" + "locationName":"roleAlias" + } + } + }, + "DeleteRoleAliasResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteThingGroupRequest":{ + "type":"structure", + "required":["thingGroupName"], + "members":{ + "thingGroupName":{ + "shape":"ThingGroupName", + "location":"uri", + "locationName":"thingGroupName" }, "expectedVersion":{ "shape":"OptionalVersion", @@ -1488,12 +2741,33 @@ } } }, - "DeleteThingResponse":{ + "DeleteThingGroupResponse":{ "type":"structure", "members":{ } }, - "DeleteThingTypeRequest":{ + "DeleteThingRequest":{ + "type":"structure", + "required":["thingName"], + "members":{ + "thingName":{ + "shape":"ThingName", + "location":"uri", + "locationName":"thingName" + }, + "expectedVersion":{ + "shape":"OptionalVersion", + "location":"querystring", + "locationName":"expectedVersion" + } + } + }, + "DeleteThingResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteThingTypeRequest":{ "type":"structure", "required":["thingTypeName"], "members":{ @@ -1520,7 +2794,33 @@ } } }, + "DeleteV2LoggingLevelRequest":{ + "type":"structure", + "required":[ + "targetType", + "targetName" + ], + "members":{ + "targetType":{ + "shape":"LogTargetType", + "location":"querystring", + "locationName":"targetType" + }, + "targetName":{ + "shape":"LogTargetName", + "location":"querystring", + "locationName":"targetName" + } + } + }, "DeliveryStreamName":{"type":"string"}, + "Denied":{ + "type":"structure", + "members":{ + "implicitDeny":{"shape":"ImplicitDeny"}, + "explicitDeny":{"shape":"ExplicitDeny"} + } + }, "DeprecateThingTypeRequest":{ "type":"structure", "required":["thingTypeName"], @@ -1539,6 +2839,23 @@ } }, "DeprecationDate":{"type":"timestamp"}, + "DescribeAuthorizerRequest":{ + "type":"structure", + "required":["authorizerName"], + "members":{ + "authorizerName":{ + "shape":"AuthorizerName", + "location":"uri", + "locationName":"authorizerName" + } + } + }, + "DescribeAuthorizerResponse":{ + "type":"structure", + "members":{ + "authorizerDescription":{"shape":"AuthorizerDescription"} + } + }, "DescribeCACertificateRequest":{ "type":"structure", "required":["certificateId"], @@ -1553,7 +2870,8 @@ "DescribeCACertificateResponse":{ "type":"structure", "members":{ - "certificateDescription":{"shape":"CACertificateDescription"} + "certificateDescription":{"shape":"CACertificateDescription"}, + "registrationConfig":{"shape":"RegistrationConfig"} } }, "DescribeCertificateRequest":{ @@ -1573,9 +2891,25 @@ "certificateDescription":{"shape":"CertificateDescription"} } }, + "DescribeDefaultAuthorizerRequest":{ + "type":"structure", + "members":{ + } + }, + "DescribeDefaultAuthorizerResponse":{ + "type":"structure", + "members":{ + "authorizerDescription":{"shape":"AuthorizerDescription"} + } + }, "DescribeEndpointRequest":{ "type":"structure", "members":{ + "endpointType":{ + "shape":"EndpointType", + "location":"querystring", + "locationName":"endpointType" + } } }, "DescribeEndpointResponse":{ @@ -1584,6 +2918,153 @@ "endpointAddress":{"shape":"EndpointAddress"} } }, + "DescribeEventConfigurationsRequest":{ + "type":"structure", + "members":{ + } + }, + "DescribeEventConfigurationsResponse":{ + "type":"structure", + "members":{ + "eventConfigurations":{"shape":"EventConfigurations"}, + "creationDate":{"shape":"CreationDate"}, + "lastModifiedDate":{"shape":"LastModifiedDate"} + } + }, + "DescribeIndexRequest":{ + "type":"structure", + "required":["indexName"], + "members":{ + "indexName":{ + "shape":"IndexName", + "location":"uri", + "locationName":"indexName" + } + } + }, + "DescribeIndexResponse":{ + "type":"structure", + "members":{ + "indexName":{"shape":"IndexName"}, + "indexStatus":{"shape":"IndexStatus"}, + "schema":{"shape":"IndexSchema"} + } + }, + "DescribeJobExecutionRequest":{ + "type":"structure", + "required":[ + "jobId", + "thingName" + ], + "members":{ + "jobId":{ + "shape":"JobId", + "location":"uri", + "locationName":"jobId" + }, + "thingName":{ + "shape":"ThingName", + "location":"uri", + "locationName":"thingName" + }, + "executionNumber":{ + "shape":"ExecutionNumber", + "location":"querystring", + "locationName":"executionNumber" + } + } + }, + "DescribeJobExecutionResponse":{ + "type":"structure", + "members":{ + "execution":{"shape":"JobExecution"} + } + }, + "DescribeJobRequest":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"JobId", + "location":"uri", + "locationName":"jobId" + } + } + }, + "DescribeJobResponse":{ + "type":"structure", + "members":{ + "documentSource":{"shape":"JobDocumentSource"}, + "job":{"shape":"Job"} + } + }, + "DescribeRoleAliasRequest":{ + "type":"structure", + "required":["roleAlias"], + "members":{ + "roleAlias":{ + "shape":"RoleAlias", + "location":"uri", + "locationName":"roleAlias" + } + } + }, + "DescribeRoleAliasResponse":{ + "type":"structure", + "members":{ + "roleAliasDescription":{"shape":"RoleAliasDescription"} + } + }, + "DescribeThingGroupRequest":{ + "type":"structure", + "required":["thingGroupName"], + "members":{ + "thingGroupName":{ + "shape":"ThingGroupName", + "location":"uri", + "locationName":"thingGroupName" + } + } + }, + "DescribeThingGroupResponse":{ + "type":"structure", + "members":{ + "thingGroupName":{"shape":"ThingGroupName"}, + "thingGroupId":{"shape":"ThingGroupId"}, + "thingGroupArn":{"shape":"ThingGroupArn"}, + "version":{"shape":"Version"}, + "thingGroupProperties":{"shape":"ThingGroupProperties"}, + "thingGroupMetadata":{"shape":"ThingGroupMetadata"} + } + }, + "DescribeThingRegistrationTaskRequest":{ + "type":"structure", + "required":["taskId"], + "members":{ + "taskId":{ + "shape":"TaskId", + "location":"uri", + "locationName":"taskId" + } + } + }, + "DescribeThingRegistrationTaskResponse":{ + "type":"structure", + "members":{ + "taskId":{"shape":"TaskId"}, + "creationDate":{"shape":"CreationDate"}, + "lastModifiedDate":{"shape":"LastModifiedDate"}, + "templateBody":{"shape":"TemplateBody"}, + "inputFileBucket":{"shape":"RegistryS3BucketName"}, + "inputFileKey":{"shape":"RegistryS3KeyName"}, + "roleArn":{"shape":"RoleArn"}, + "status":{"shape":"Status"}, + "message":{"shape":"ErrorMessage"}, + "successCount":{"shape":"Count"}, + "failureCount":{"shape":"Count"}, + "percentageProgress":{"shape":"Percentage"} + } + }, "DescribeThingRequest":{ "type":"structure", "required":["thingName"], @@ -1600,6 +3081,8 @@ "members":{ "defaultClientId":{"shape":"ClientId"}, "thingName":{"shape":"ThingName"}, + "thingId":{"shape":"ThingId"}, + "thingArn":{"shape":"ThingArn"}, "thingTypeName":{"shape":"ThingTypeName"}, "attributes":{"shape":"Attributes"}, "version":{"shape":"Version"} @@ -1620,11 +3103,28 @@ "type":"structure", "members":{ "thingTypeName":{"shape":"ThingTypeName"}, + "thingTypeId":{"shape":"ThingTypeId"}, + "thingTypeArn":{"shape":"ThingTypeArn"}, "thingTypeProperties":{"shape":"ThingTypeProperties"}, "thingTypeMetadata":{"shape":"ThingTypeMetadata"} } }, "Description":{"type":"string"}, + "DetachPolicyRequest":{ + "type":"structure", + "required":[ + "policyName", + "target" + ], + "members":{ + "policyName":{ + "shape":"PolicyName", + "location":"uri", + "locationName":"policyName" + }, + "target":{"shape":"PolicyTarget"} + } + }, "DetachPrincipalPolicyRequest":{ "type":"structure", "required":[ @@ -1668,6 +3168,24 @@ "members":{ } }, + "DetailsKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, + "DetailsMap":{ + "type":"map", + "key":{"shape":"DetailsKey"}, + "value":{"shape":"DetailsValue"} + }, + "DetailsValue":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[^\\p{C}]*+" + }, + "DisableAllLogs":{"type":"boolean"}, "DisableTopicRuleRequest":{ "type":"structure", "required":["ruleName"], @@ -1715,6 +3233,18 @@ ] }, "DynamoOperation":{"type":"string"}, + "EffectivePolicies":{ + "type":"list", + "member":{"shape":"EffectivePolicy"} + }, + "EffectivePolicy":{ + "type":"structure", + "members":{ + "policyName":{"shape":"PolicyName"}, + "policyArn":{"shape":"PolicyArn"}, + "policyDocument":{"shape":"PolicyDocument"} + } + }, "ElasticsearchAction":{ "type":"structure", "required":[ @@ -1750,7 +3280,44 @@ } } }, + "Enabled":{"type":"boolean"}, "EndpointAddress":{"type":"string"}, + "EndpointType":{"type":"string"}, + "ErrorMessage":{ + "type":"string", + "max":2048 + }, + "EventConfigurations":{ + "type":"map", + "key":{"shape":"EventType"}, + "value":{"shape":"Configuration"} + }, + "EventType":{ + "type":"string", + "enum":[ + "THING", + "THING_GROUP", + "THING_TYPE", + "THING_GROUP_MEMBERSHIP", + "THING_GROUP_HIERARCHY", + "THING_TYPE_ASSOCIATION", + "JOB", + "JOB_EXECUTION" + ] + }, + "ExecutionNumber":{"type":"long"}, + "ExpiresInSec":{ + "type":"long", + "max":3600, + "min":60 + }, + "ExplicitDeny":{ + "type":"structure", + "members":{ + "policies":{"shape":"Policies"} + } + }, + "FailedThings":{"type":"integer"}, "FirehoseAction":{ "type":"structure", "required":[ @@ -1768,7 +3335,59 @@ "pattern":"([\\n\\t])|(\\r\\n)|(,)" }, "Flag":{"type":"boolean"}, + "ForceDelete":{"type":"boolean"}, "FunctionArn":{"type":"string"}, + "GEMaxResults":{ + "type":"integer", + "max":10000, + "min":1 + }, + "GetEffectivePoliciesRequest":{ + "type":"structure", + "members":{ + "principal":{"shape":"Principal"}, + "cognitoIdentityPoolId":{"shape":"CognitoIdentityPoolId"}, + "thingName":{ + "shape":"ThingName", + "location":"querystring", + "locationName":"thingName" + } + } + }, + "GetEffectivePoliciesResponse":{ + "type":"structure", + "members":{ + "effectivePolicies":{"shape":"EffectivePolicies"} + } + }, + "GetIndexingConfigurationRequest":{ + "type":"structure", + "members":{ + } + }, + "GetIndexingConfigurationResponse":{ + "type":"structure", + "members":{ + "thingIndexingConfiguration":{"shape":"ThingIndexingConfiguration"} + } + }, + "GetJobDocumentRequest":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"JobId", + "location":"uri", + "locationName":"jobId" + } + } + }, + "GetJobDocumentResponse":{ + "type":"structure", + "members":{ + "document":{"shape":"JobDocument"} + } + }, "GetLoggingOptionsRequest":{ "type":"structure", "members":{ @@ -1859,8 +3478,62 @@ "rule":{"shape":"TopicRule"} } }, + "GetV2LoggingOptionsRequest":{ + "type":"structure", + "members":{ + } + }, + "GetV2LoggingOptionsResponse":{ + "type":"structure", + "members":{ + "roleArn":{"shape":"AwsArn"}, + "defaultLogLevel":{"shape":"LogLevel"}, + "disableAllLogs":{"shape":"DisableAllLogs"} + } + }, + "GroupNameAndArn":{ + "type":"structure", + "members":{ + "groupName":{"shape":"ThingGroupName"}, + "groupArn":{"shape":"ThingGroupArn"} + } + }, "HashKeyField":{"type":"string"}, "HashKeyValue":{"type":"string"}, + "ImplicitDeny":{ + "type":"structure", + "members":{ + "policies":{"shape":"Policies"} + } + }, + "InProgressThings":{"type":"integer"}, + "IndexName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, + "IndexNamesList":{ + "type":"list", + "member":{"shape":"IndexName"} + }, + "IndexNotReadyException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "IndexSchema":{"type":"string"}, + "IndexStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "BUILDING", + "REBUILDING" + ] + }, "InternalException":{ "type":"structure", "members":{ @@ -1879,6 +3552,14 @@ "exception":true, "fault":true }, + "InvalidQueryException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, "InvalidRequestException":{ "type":"structure", "members":{ @@ -1887,16 +3568,194 @@ "error":{"httpStatusCode":400}, "exception":true }, - "IsDefaultVersion":{"type":"boolean"}, - "IsDisabled":{"type":"boolean"}, - "Key":{"type":"string"}, - "KeyPair":{ + "InvalidResponseException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "IsAuthenticated":{"type":"boolean"}, + "IsDefaultVersion":{"type":"boolean"}, + "IsDisabled":{"type":"boolean"}, + "Job":{ + "type":"structure", + "members":{ + "jobArn":{"shape":"JobArn"}, + "jobId":{"shape":"JobId"}, + "targetSelection":{"shape":"TargetSelection"}, + "status":{"shape":"JobStatus"}, + "comment":{"shape":"Comment"}, + "targets":{"shape":"JobTargets"}, + "description":{"shape":"JobDescription"}, + "presignedUrlConfig":{"shape":"PresignedUrlConfig"}, + "jobExecutionsRolloutConfig":{"shape":"JobExecutionsRolloutConfig"}, + "createdAt":{"shape":"DateType"}, + "lastUpdatedAt":{"shape":"DateType"}, + "completedAt":{"shape":"DateType"}, + "jobProcessDetails":{"shape":"JobProcessDetails"}, + "documentParameters":{"shape":"JobDocumentParameters"} + } + }, + "JobArn":{"type":"string"}, + "JobDescription":{ + "type":"string", + "max":2028, + "pattern":"[^\\p{C}]+" + }, + "JobDocument":{ + "type":"string", + "max":32768 + }, + "JobDocumentParameters":{ + "type":"map", + "key":{"shape":"ParameterKey"}, + "value":{"shape":"ParameterValue"}, + "max":10 + }, + "JobDocumentSource":{ + "type":"string", + "max":1350, + "min":1 + }, + "JobExecution":{ + "type":"structure", + "members":{ + "jobId":{"shape":"JobId"}, + "status":{"shape":"JobExecutionStatus"}, + "statusDetails":{"shape":"JobExecutionStatusDetails"}, + "thingArn":{"shape":"ThingArn"}, + "queuedAt":{"shape":"DateType"}, + "startedAt":{"shape":"DateType"}, + "lastUpdatedAt":{"shape":"DateType"}, + "executionNumber":{"shape":"ExecutionNumber"} + } + }, + "JobExecutionStatus":{ + "type":"string", + "enum":[ + "QUEUED", + "IN_PROGRESS", + "SUCCEEDED", + "FAILED", + "REJECTED", + "REMOVED", + "CANCELED" + ] + }, + "JobExecutionStatusDetails":{ + "type":"structure", + "members":{ + "detailsMap":{"shape":"DetailsMap"} + } + }, + "JobExecutionSummary":{ + "type":"structure", + "members":{ + "status":{"shape":"JobExecutionStatus"}, + "queuedAt":{"shape":"DateType"}, + "startedAt":{"shape":"DateType"}, + "lastUpdatedAt":{"shape":"DateType"}, + "executionNumber":{"shape":"ExecutionNumber"} + } + }, + "JobExecutionSummaryForJob":{ + "type":"structure", + "members":{ + "thingArn":{"shape":"ThingArn"}, + "jobExecutionSummary":{"shape":"JobExecutionSummary"} + } + }, + "JobExecutionSummaryForJobList":{ + "type":"list", + "member":{"shape":"JobExecutionSummaryForJob"} + }, + "JobExecutionSummaryForThing":{ + "type":"structure", + "members":{ + "jobId":{"shape":"JobId"}, + "jobExecutionSummary":{"shape":"JobExecutionSummary"} + } + }, + "JobExecutionSummaryForThingList":{ + "type":"list", + "member":{"shape":"JobExecutionSummaryForThing"} + }, + "JobExecutionsRolloutConfig":{ + "type":"structure", + "members":{ + "maximumPerMinute":{"shape":"MaxJobExecutionsPerMin"} + } + }, + "JobId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9_-]+" + }, + "JobProcessDetails":{ + "type":"structure", + "members":{ + "processingTargets":{"shape":"ProcessingTargetNameList"}, + "numberOfCanceledThings":{"shape":"CanceledThings"}, + "numberOfSucceededThings":{"shape":"SucceededThings"}, + "numberOfFailedThings":{"shape":"FailedThings"}, + "numberOfRejectedThings":{"shape":"RejectedThings"}, + "numberOfQueuedThings":{"shape":"QueuedThings"}, + "numberOfInProgressThings":{"shape":"InProgressThings"}, + "numberOfRemovedThings":{"shape":"RemovedThings"} + } + }, + "JobStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "CANCELED", + "COMPLETED" + ] + }, + "JobSummary":{ + "type":"structure", + "members":{ + "jobArn":{"shape":"JobArn"}, + "jobId":{"shape":"JobId"}, + "thingGroupId":{"shape":"ThingGroupId"}, + "targetSelection":{"shape":"TargetSelection"}, + "status":{"shape":"JobStatus"}, + "createdAt":{"shape":"DateType"}, + "lastUpdatedAt":{"shape":"DateType"}, + "completedAt":{"shape":"DateType"} + } + }, + "JobSummaryList":{ + "type":"list", + "member":{"shape":"JobSummary"} + }, + "JobTargets":{ + "type":"list", + "member":{"shape":"TargetArn"}, + "min":1 + }, + "JsonDocument":{"type":"string"}, + "Key":{"type":"string"}, + "KeyName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, + "KeyPair":{ "type":"structure", "members":{ "PublicKey":{"shape":"PublicKey"}, "PrivateKey":{"shape":"PrivateKey"} } }, + "KeyValue":{ + "type":"string", + "max":5120 + }, "KinesisAction":{ "type":"structure", "required":[ @@ -1916,6 +3775,12 @@ "functionArn":{"shape":"FunctionArn"} } }, + "LaserMaxResults":{ + "type":"integer", + "max":250, + "min":1 + }, + "LastModifiedDate":{"type":"timestamp"}, "LimitExceededException":{ "type":"structure", "members":{ @@ -1924,6 +3789,71 @@ "error":{"httpStatusCode":410}, "exception":true }, + "ListAttachedPoliciesRequest":{ + "type":"structure", + "required":["target"], + "members":{ + "target":{ + "shape":"PolicyTarget", + "location":"uri", + "locationName":"target" + }, + "recursive":{ + "shape":"Recursive", + "location":"querystring", + "locationName":"recursive" + }, + "marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"marker" + }, + "pageSize":{ + "shape":"PageSize", + "location":"querystring", + "locationName":"pageSize" + } + } + }, + "ListAttachedPoliciesResponse":{ + "type":"structure", + "members":{ + "policies":{"shape":"Policies"}, + "nextMarker":{"shape":"Marker"} + } + }, + "ListAuthorizersRequest":{ + "type":"structure", + "members":{ + "pageSize":{ + "shape":"PageSize", + "location":"querystring", + "locationName":"pageSize" + }, + "marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"marker" + }, + "ascendingOrder":{ + "shape":"AscendingOrder", + "location":"querystring", + "locationName":"isAscendingOrder" + }, + "status":{ + "shape":"AuthorizerStatus", + "location":"querystring", + "locationName":"status" + } + } + }, + "ListAuthorizersResponse":{ + "type":"structure", + "members":{ + "authorizers":{"shape":"Authorizers"}, + "nextMarker":{"shape":"Marker"} + } + }, "ListCACertificatesRequest":{ "type":"structure", "members":{ @@ -2007,11 +3937,306 @@ "ListCertificatesResponse":{ "type":"structure", "members":{ - "certificates":{"shape":"Certificates"}, - "nextMarker":{"shape":"Marker"} + "certificates":{"shape":"Certificates"}, + "nextMarker":{"shape":"Marker"} + } + }, + "ListIndicesRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"QueryMaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListIndicesResponse":{ + "type":"structure", + "members":{ + "indexNames":{"shape":"IndexNamesList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListJobExecutionsForJobRequest":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"JobId", + "location":"uri", + "locationName":"jobId" + }, + "status":{ + "shape":"JobExecutionStatus", + "location":"querystring", + "locationName":"status" + }, + "maxResults":{ + "shape":"LaserMaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListJobExecutionsForJobResponse":{ + "type":"structure", + "members":{ + "executionSummaries":{"shape":"JobExecutionSummaryForJobList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListJobExecutionsForThingRequest":{ + "type":"structure", + "required":["thingName"], + "members":{ + "thingName":{ + "shape":"ThingName", + "location":"uri", + "locationName":"thingName" + }, + "status":{ + "shape":"JobExecutionStatus", + "location":"querystring", + "locationName":"status" + }, + "maxResults":{ + "shape":"LaserMaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListJobExecutionsForThingResponse":{ + "type":"structure", + "members":{ + "executionSummaries":{"shape":"JobExecutionSummaryForThingList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListJobsRequest":{ + "type":"structure", + "members":{ + "status":{ + "shape":"JobStatus", + "location":"querystring", + "locationName":"status" + }, + "targetSelection":{ + "shape":"TargetSelection", + "location":"querystring", + "locationName":"targetSelection" + }, + "maxResults":{ + "shape":"LaserMaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "thingGroupName":{ + "shape":"ThingGroupName", + "location":"querystring", + "locationName":"thingGroupName" + }, + "thingGroupId":{ + "shape":"ThingGroupId", + "location":"querystring", + "locationName":"thingGroupId" + } + } + }, + "ListJobsResponse":{ + "type":"structure", + "members":{ + "jobs":{"shape":"JobSummaryList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListOutgoingCertificatesRequest":{ + "type":"structure", + "members":{ + "pageSize":{ + "shape":"PageSize", + "location":"querystring", + "locationName":"pageSize" + }, + "marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"marker" + }, + "ascendingOrder":{ + "shape":"AscendingOrder", + "location":"querystring", + "locationName":"isAscendingOrder" + } + } + }, + "ListOutgoingCertificatesResponse":{ + "type":"structure", + "members":{ + "outgoingCertificates":{"shape":"OutgoingCertificates"}, + "nextMarker":{"shape":"Marker"} + } + }, + "ListPoliciesRequest":{ + "type":"structure", + "members":{ + "marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"marker" + }, + "pageSize":{ + "shape":"PageSize", + "location":"querystring", + "locationName":"pageSize" + }, + "ascendingOrder":{ + "shape":"AscendingOrder", + "location":"querystring", + "locationName":"isAscendingOrder" + } + } + }, + "ListPoliciesResponse":{ + "type":"structure", + "members":{ + "policies":{"shape":"Policies"}, + "nextMarker":{"shape":"Marker"} + } + }, + "ListPolicyPrincipalsRequest":{ + "type":"structure", + "required":["policyName"], + "members":{ + "policyName":{ + "shape":"PolicyName", + "location":"header", + "locationName":"x-amzn-iot-policy" + }, + "marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"marker" + }, + "pageSize":{ + "shape":"PageSize", + "location":"querystring", + "locationName":"pageSize" + }, + "ascendingOrder":{ + "shape":"AscendingOrder", + "location":"querystring", + "locationName":"isAscendingOrder" + } + } + }, + "ListPolicyPrincipalsResponse":{ + "type":"structure", + "members":{ + "principals":{"shape":"Principals"}, + "nextMarker":{"shape":"Marker"} + } + }, + "ListPolicyVersionsRequest":{ + "type":"structure", + "required":["policyName"], + "members":{ + "policyName":{ + "shape":"PolicyName", + "location":"uri", + "locationName":"policyName" + } + } + }, + "ListPolicyVersionsResponse":{ + "type":"structure", + "members":{ + "policyVersions":{"shape":"PolicyVersions"} + } + }, + "ListPrincipalPoliciesRequest":{ + "type":"structure", + "required":["principal"], + "members":{ + "principal":{ + "shape":"Principal", + "location":"header", + "locationName":"x-amzn-iot-principal" + }, + "marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"marker" + }, + "pageSize":{ + "shape":"PageSize", + "location":"querystring", + "locationName":"pageSize" + }, + "ascendingOrder":{ + "shape":"AscendingOrder", + "location":"querystring", + "locationName":"isAscendingOrder" + } + } + }, + "ListPrincipalPoliciesResponse":{ + "type":"structure", + "members":{ + "policies":{"shape":"Policies"}, + "nextMarker":{"shape":"Marker"} + } + }, + "ListPrincipalThingsRequest":{ + "type":"structure", + "required":["principal"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"RegistryMaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "principal":{ + "shape":"Principal", + "location":"header", + "locationName":"x-amzn-principal" + } + } + }, + "ListPrincipalThingsResponse":{ + "type":"structure", + "members":{ + "things":{"shape":"ThingNameList"}, + "nextToken":{"shape":"NextToken"} } }, - "ListOutgoingCertificatesRequest":{ + "ListRoleAliasesRequest":{ "type":"structure", "members":{ "pageSize":{ @@ -2031,16 +4256,22 @@ } } }, - "ListOutgoingCertificatesResponse":{ + "ListRoleAliasesResponse":{ "type":"structure", "members":{ - "outgoingCertificates":{"shape":"OutgoingCertificates"}, + "roleAliases":{"shape":"RoleAliases"}, "nextMarker":{"shape":"Marker"} } }, - "ListPoliciesRequest":{ + "ListTargetsForPolicyRequest":{ "type":"structure", + "required":["policyName"], "members":{ + "policyName":{ + "shape":"PolicyName", + "location":"uri", + "locationName":"policyName" + }, "marker":{ "shape":"Marker", "location":"querystring", @@ -2050,107 +4281,137 @@ "shape":"PageSize", "location":"querystring", "locationName":"pageSize" + } + } + }, + "ListTargetsForPolicyResponse":{ + "type":"structure", + "members":{ + "targets":{"shape":"PolicyTargets"}, + "nextMarker":{"shape":"Marker"} + } + }, + "ListThingGroupsForThingRequest":{ + "type":"structure", + "required":["thingName"], + "members":{ + "thingName":{ + "shape":"ThingName", + "location":"uri", + "locationName":"thingName" }, - "ascendingOrder":{ - "shape":"AscendingOrder", + "nextToken":{ + "shape":"NextToken", "location":"querystring", - "locationName":"isAscendingOrder" + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"RegistryMaxResults", + "location":"querystring", + "locationName":"maxResults" } } }, - "ListPoliciesResponse":{ + "ListThingGroupsForThingResponse":{ "type":"structure", "members":{ - "policies":{"shape":"Policies"}, - "nextMarker":{"shape":"Marker"} + "thingGroups":{"shape":"ThingGroupNameAndArnList"}, + "nextToken":{"shape":"NextToken"} } }, - "ListPolicyPrincipalsRequest":{ + "ListThingGroupsRequest":{ "type":"structure", - "required":["policyName"], "members":{ - "policyName":{ - "shape":"PolicyName", - "location":"header", - "locationName":"x-amzn-iot-policy" + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" }, - "marker":{ - "shape":"Marker", + "maxResults":{ + "shape":"RegistryMaxResults", "location":"querystring", - "locationName":"marker" + "locationName":"maxResults" }, - "pageSize":{ - "shape":"PageSize", + "parentGroup":{ + "shape":"ThingGroupName", "location":"querystring", - "locationName":"pageSize" + "locationName":"parentGroup" }, - "ascendingOrder":{ - "shape":"AscendingOrder", + "namePrefixFilter":{ + "shape":"ThingGroupName", "location":"querystring", - "locationName":"isAscendingOrder" + "locationName":"namePrefixFilter" + }, + "recursive":{ + "shape":"RecursiveWithoutDefault", + "location":"querystring", + "locationName":"recursive" } } }, - "ListPolicyPrincipalsResponse":{ + "ListThingGroupsResponse":{ "type":"structure", "members":{ - "principals":{"shape":"Principals"}, - "nextMarker":{"shape":"Marker"} + "thingGroups":{"shape":"ThingGroupNameAndArnList"}, + "nextToken":{"shape":"NextToken"} } }, - "ListPolicyVersionsRequest":{ + "ListThingPrincipalsRequest":{ "type":"structure", - "required":["policyName"], + "required":["thingName"], "members":{ - "policyName":{ - "shape":"PolicyName", + "thingName":{ + "shape":"ThingName", "location":"uri", - "locationName":"policyName" + "locationName":"thingName" } } }, - "ListPolicyVersionsResponse":{ + "ListThingPrincipalsResponse":{ "type":"structure", "members":{ - "policyVersions":{"shape":"PolicyVersions"} + "principals":{"shape":"Principals"} } }, - "ListPrincipalPoliciesRequest":{ + "ListThingRegistrationTaskReportsRequest":{ "type":"structure", - "required":["principal"], + "required":[ + "taskId", + "reportType" + ], "members":{ - "principal":{ - "shape":"Principal", - "location":"header", - "locationName":"x-amzn-iot-principal" + "taskId":{ + "shape":"TaskId", + "location":"uri", + "locationName":"taskId" }, - "marker":{ - "shape":"Marker", + "reportType":{ + "shape":"ReportType", "location":"querystring", - "locationName":"marker" + "locationName":"reportType" }, - "pageSize":{ - "shape":"PageSize", + "nextToken":{ + "shape":"NextToken", "location":"querystring", - "locationName":"pageSize" + "locationName":"nextToken" }, - "ascendingOrder":{ - "shape":"AscendingOrder", + "maxResults":{ + "shape":"RegistryMaxResults", "location":"querystring", - "locationName":"isAscendingOrder" + "locationName":"maxResults" } } }, - "ListPrincipalPoliciesResponse":{ + "ListThingRegistrationTaskReportsResponse":{ "type":"structure", "members":{ - "policies":{"shape":"Policies"}, - "nextMarker":{"shape":"Marker"} + "resourceLinks":{"shape":"S3FileUrlList"}, + "reportType":{"shape":"ReportType"}, + "nextToken":{"shape":"NextToken"} } }, - "ListPrincipalThingsRequest":{ + "ListThingRegistrationTasksRequest":{ "type":"structure", - "required":["principal"], "members":{ "nextToken":{ "shape":"NextToken", @@ -2162,40 +4423,61 @@ "location":"querystring", "locationName":"maxResults" }, - "principal":{ - "shape":"Principal", - "location":"header", - "locationName":"x-amzn-principal" + "status":{ + "shape":"Status", + "location":"querystring", + "locationName":"status" } } }, - "ListPrincipalThingsResponse":{ + "ListThingRegistrationTasksResponse":{ "type":"structure", "members":{ - "things":{"shape":"ThingNameList"}, + "taskIds":{"shape":"TaskIdList"}, "nextToken":{"shape":"NextToken"} } }, - "ListThingPrincipalsRequest":{ + "ListThingTypesRequest":{ "type":"structure", - "required":["thingName"], "members":{ - "thingName":{ - "shape":"ThingName", - "location":"uri", - "locationName":"thingName" + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"RegistryMaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "thingTypeName":{ + "shape":"ThingTypeName", + "location":"querystring", + "locationName":"thingTypeName" } } }, - "ListThingPrincipalsResponse":{ + "ListThingTypesResponse":{ "type":"structure", "members":{ - "principals":{"shape":"Principals"} + "thingTypes":{"shape":"ThingTypeList"}, + "nextToken":{"shape":"NextToken"} } }, - "ListThingTypesRequest":{ + "ListThingsInThingGroupRequest":{ "type":"structure", + "required":["thingGroupName"], "members":{ + "thingGroupName":{ + "shape":"ThingGroupName", + "location":"uri", + "locationName":"thingGroupName" + }, + "recursive":{ + "shape":"Recursive", + "location":"querystring", + "locationName":"recursive" + }, "nextToken":{ "shape":"NextToken", "location":"querystring", @@ -2205,18 +4487,13 @@ "shape":"RegistryMaxResults", "location":"querystring", "locationName":"maxResults" - }, - "thingTypeName":{ - "shape":"ThingTypeName", - "location":"querystring", - "locationName":"thingTypeName" } } }, - "ListThingTypesResponse":{ + "ListThingsInThingGroupResponse":{ "type":"structure", "members":{ - "thingTypes":{"shape":"ThingTypeList"}, + "things":{"shape":"ThingNameList"}, "nextToken":{"shape":"NextToken"} } }, @@ -2266,7 +4543,7 @@ "locationName":"topic" }, "maxResults":{ - "shape":"MaxResults", + "shape":"GEMaxResults", "location":"querystring", "locationName":"maxResults" }, @@ -2289,6 +4566,33 @@ "nextToken":{"shape":"NextToken"} } }, + "ListV2LoggingLevelsRequest":{ + "type":"structure", + "members":{ + "targetType":{ + "shape":"LogTargetType", + "location":"querystring", + "locationName":"targetType" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"SkyfallMaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListV2LoggingLevelsResponse":{ + "type":"structure", + "members":{ + "logTargetConfigurations":{"shape":"LogTargetConfigurations"}, + "nextToken":{"shape":"NextToken"} + } + }, "LogLevel":{ "type":"string", "enum":[ @@ -2299,6 +4603,33 @@ "DISABLED" ] }, + "LogTarget":{ + "type":"structure", + "required":["targetType"], + "members":{ + "targetType":{"shape":"LogTargetType"}, + "targetName":{"shape":"LogTargetName"} + } + }, + "LogTargetConfiguration":{ + "type":"structure", + "members":{ + "logTarget":{"shape":"LogTarget"}, + "logLevel":{"shape":"LogLevel"} + } + }, + "LogTargetConfigurations":{ + "type":"list", + "member":{"shape":"LogTargetConfiguration"} + }, + "LogTargetName":{"type":"string"}, + "LogTargetType":{ + "type":"string", + "enum":[ + "DEFAULT", + "THING_GROUP" + ] + }, "LoggingOptionsPayload":{ "type":"structure", "required":["roleArn"], @@ -2315,10 +4646,13 @@ "error":{"httpStatusCode":400}, "exception":true }, - "Marker":{"type":"string"}, - "MaxResults":{ + "Marker":{ + "type":"string", + "pattern":"[A-Za-z0-9+/]+={0,2}" + }, + "MaxJobExecutionsPerMin":{ "type":"integer", - "max":10000, + "max":1000, "min":1 }, "Message":{ @@ -2337,7 +4671,20 @@ "MetricTimestamp":{"type":"string"}, "MetricUnit":{"type":"string"}, "MetricValue":{"type":"string"}, + "MissingContextValue":{"type":"string"}, + "MissingContextValues":{ + "type":"list", + "member":{"shape":"MissingContextValue"} + }, "NextToken":{"type":"string"}, + "NotConfiguredException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, "OptionalVersion":{"type":"long"}, "OutgoingCertificate":{ "type":"structure", @@ -2359,8 +4706,31 @@ "max":250, "min":1 }, + "Parameter":{"type":"string"}, + "ParameterKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, + "ParameterValue":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[^\\p{C}]+" + }, + "Parameters":{ + "type":"map", + "key":{"shape":"Parameter"}, + "value":{"shape":"Value"} + }, "PartitionKey":{"type":"string"}, "PayloadField":{"type":"string"}, + "Percentage":{ + "type":"integer", + "max":100, + "min":0 + }, "Policies":{ "type":"list", "member":{"shape":"Policy"} @@ -2374,12 +4744,25 @@ }, "PolicyArn":{"type":"string"}, "PolicyDocument":{"type":"string"}, + "PolicyDocuments":{ + "type":"list", + "member":{"shape":"PolicyDocument"} + }, "PolicyName":{ "type":"string", "max":128, "min":1, "pattern":"[\\w+=,.@-]+" }, + "PolicyNames":{ + "type":"list", + "member":{"shape":"PolicyName"} + }, + "PolicyTarget":{"type":"string"}, + "PolicyTargets":{ + "type":"list", + "member":{"shape":"PolicyTarget"} + }, "PolicyVersion":{ "type":"structure", "members":{ @@ -2396,8 +4779,21 @@ "type":"list", "member":{"shape":"PolicyVersion"} }, + "PresignedUrlConfig":{ + "type":"structure", + "members":{ + "roleArn":{"shape":"RoleArn"}, + "expiresInSec":{"shape":"ExpiresInSec"} + } + }, "Principal":{"type":"string"}, "PrincipalArn":{"type":"string"}, + "PrincipalId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9]+" + }, "Principals":{ "type":"list", "member":{"shape":"PrincipalArn"} @@ -2407,10 +4803,20 @@ "min":1, "sensitive":true }, + "ProcessingTargetName":{"type":"string"}, + "ProcessingTargetNameList":{ + "type":"list", + "member":{"shape":"ProcessingTargetName"} + }, "PublicKey":{ "type":"string", "min":1 }, + "PublicKeyMap":{ + "type":"map", + "key":{"shape":"KeyName"}, + "value":{"shape":"KeyValue"} + }, "PutItemInput":{ "type":"structure", "required":["tableName"], @@ -2418,9 +4824,23 @@ "tableName":{"shape":"TableName"} } }, + "QueryMaxResults":{ + "type":"integer", + "max":500, + "min":1 + }, + "QueryString":{ + "type":"string", + "max":1000, + "min":1 + }, + "QueryVersion":{"type":"string"}, "QueueUrl":{"type":"string"}, + "QueuedThings":{"type":"integer"}, "RangeKeyField":{"type":"string"}, "RangeKeyValue":{"type":"string"}, + "Recursive":{"type":"boolean"}, + "RecursiveWithoutDefault":{"type":"boolean"}, "RegisterCACertificateRequest":{ "type":"structure", "required":[ @@ -2439,7 +4859,8 @@ "shape":"AllowAutoRegistration", "location":"querystring", "locationName":"allowAutoRegistration" - } + }, + "registrationConfig":{"shape":"RegistrationConfig"} } }, "RegisterCACertificateResponse":{ @@ -2471,6 +4892,21 @@ "certificateId":{"shape":"CertificateId"} } }, + "RegisterThingRequest":{ + "type":"structure", + "required":["templateBody"], + "members":{ + "templateBody":{"shape":"TemplateBody"}, + "parameters":{"shape":"Parameters"} + } + }, + "RegisterThingResponse":{ + "type":"structure", + "members":{ + "certificatePem":{"shape":"CertificatePem"}, + "resourceArns":{"shape":"ResourceArns"} + } + }, "RegistrationCode":{ "type":"string", "max":64, @@ -2485,11 +4921,30 @@ "error":{"httpStatusCode":400}, "exception":true }, + "RegistrationConfig":{ + "type":"structure", + "members":{ + "templateBody":{"shape":"TemplateBody"}, + "roleArn":{"shape":"RoleArn"} + } + }, "RegistryMaxResults":{ "type":"integer", "max":250, "min":1 }, + "RegistryS3BucketName":{ + "type":"string", + "max":256, + "min":3, + "pattern":"[a-zA-Z0-9._-]+" + }, + "RegistryS3KeyName":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[a-zA-Z0-9!_.*'()-\\/]+" + }, "RejectCertificateTransferRequest":{ "type":"structure", "required":["certificateId"], @@ -2502,7 +4957,24 @@ "rejectReason":{"shape":"Message"} } }, + "RejectedThings":{"type":"integer"}, + "RemoveAutoRegistration":{"type":"boolean"}, + "RemoveThingFromThingGroupRequest":{ + "type":"structure", + "members":{ + "thingGroupName":{"shape":"ThingGroupName"}, + "thingGroupArn":{"shape":"ThingGroupArn"}, + "thingName":{"shape":"ThingName"}, + "thingArn":{"shape":"ThingArn"} + } + }, + "RemoveThingFromThingGroupResponse":{ + "type":"structure", + "members":{ + } + }, "RemoveThingType":{"type":"boolean"}, + "RemovedThings":{"type":"integer"}, "ReplaceTopicRuleRequest":{ "type":"structure", "required":[ @@ -2519,6 +4991,13 @@ }, "payload":"topicRulePayload" }, + "ReportType":{ + "type":"string", + "enum":[ + "ERRORS", + "RESULTS" + ] + }, "RepublishAction":{ "type":"structure", "required":[ @@ -2530,6 +5009,7 @@ "topic":{"shape":"TopicPattern"} } }, + "Resource":{"type":"string"}, "ResourceAlreadyExistsException":{ "type":"structure", "members":{ @@ -2540,6 +5020,13 @@ "error":{"httpStatusCode":409}, "exception":true }, + "ResourceArn":{"type":"string"}, + "ResourceArns":{ + "type":"map", + "key":{"shape":"ResourceLogicalId"}, + "value":{"shape":"ResourceArn"} + }, + "ResourceLogicalId":{"type":"string"}, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -2548,6 +5035,45 @@ "error":{"httpStatusCode":404}, "exception":true }, + "ResourceRegistrationFailureException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Resources":{ + "type":"list", + "member":{"shape":"Resource"} + }, + "RoleAlias":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w=,@-]+" + }, + "RoleAliasArn":{"type":"string"}, + "RoleAliasDescription":{ + "type":"structure", + "members":{ + "roleAlias":{"shape":"RoleAlias"}, + "roleArn":{"shape":"RoleArn"}, + "owner":{"shape":"AwsAccountId"}, + "credentialDurationSeconds":{"shape":"CredentialDurationSeconds"}, + "creationDate":{"shape":"DateType"}, + "lastModifiedDate":{"shape":"DateType"} + } + }, + "RoleAliases":{ + "type":"list", + "member":{"shape":"RoleAlias"} + }, + "RoleArn":{ + "type":"string", + "max":2048, + "min":20 + }, "RuleArn":{"type":"string"}, "RuleName":{ "type":"string", @@ -2569,6 +5095,14 @@ "cannedAcl":{"shape":"CannedAccessControlList"} } }, + "S3FileUrl":{ + "type":"string", + "max":65535 + }, + "S3FileUrlList":{ + "type":"list", + "member":{"shape":"S3FileUrl"} + }, "SQL":{"type":"string"}, "SalesforceAction":{ "type":"structure", @@ -2590,10 +5124,29 @@ "type":"string", "min":40 }, + "SearchIndexRequest":{ + "type":"structure", + "required":["queryString"], + "members":{ + "indexName":{"shape":"IndexName"}, + "queryString":{"shape":"QueryString"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"QueryMaxResults"}, + "queryVersion":{"shape":"QueryVersion"} + } + }, + "SearchIndexResponse":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"}, + "things":{"shape":"ThingDocumentList"} + } + }, "SearchableAttributes":{ "type":"list", "member":{"shape":"AttributeName"} }, + "Seconds":{"type":"integer"}, "ServiceUnavailableException":{ "type":"structure", "members":{ @@ -2606,6 +5159,20 @@ "SetAsActive":{"type":"boolean"}, "SetAsActiveFlag":{"type":"boolean"}, "SetAsDefault":{"type":"boolean"}, + "SetDefaultAuthorizerRequest":{ + "type":"structure", + "required":["authorizerName"], + "members":{ + "authorizerName":{"shape":"AuthorizerName"} + } + }, + "SetDefaultAuthorizerResponse":{ + "type":"structure", + "members":{ + "authorizerName":{"shape":"AuthorizerName"}, + "authorizerArn":{"shape":"AuthorizerArn"} + } + }, "SetDefaultPolicyVersionRequest":{ "type":"structure", "required":[ @@ -2633,6 +5200,30 @@ }, "payload":"loggingOptionsPayload" }, + "SetV2LoggingLevelRequest":{ + "type":"structure", + "required":[ + "logTarget", + "logLevel" + ], + "members":{ + "logTarget":{"shape":"LogTarget"}, + "logLevel":{"shape":"LogLevel"} + } + }, + "SetV2LoggingOptionsRequest":{ + "type":"structure", + "members":{ + "roleArn":{"shape":"AwsArn"}, + "defaultLogLevel":{"shape":"LogLevel"}, + "disableAllLogs":{"shape":"DisableAllLogs"} + } + }, + "SkyfallMaxResults":{ + "type":"integer", + "max":250, + "min":1 + }, "SnsAction":{ "type":"structure", "required":[ @@ -2665,16 +5256,131 @@ "useBase64":{"shape":"UseBase64"} } }, + "StartThingRegistrationTaskRequest":{ + "type":"structure", + "required":[ + "templateBody", + "inputFileBucket", + "inputFileKey", + "roleArn" + ], + "members":{ + "templateBody":{"shape":"TemplateBody"}, + "inputFileBucket":{"shape":"RegistryS3BucketName"}, + "inputFileKey":{"shape":"RegistryS3KeyName"}, + "roleArn":{"shape":"RoleArn"} + } + }, + "StartThingRegistrationTaskResponse":{ + "type":"structure", + "members":{ + "taskId":{"shape":"TaskId"} + } + }, "StateReason":{"type":"string"}, "StateValue":{"type":"string"}, + "Status":{ + "type":"string", + "enum":[ + "InProgress", + "Completed", + "Failed", + "Cancelled", + "Cancelling" + ] + }, + "StopThingRegistrationTaskRequest":{ + "type":"structure", + "required":["taskId"], + "members":{ + "taskId":{ + "shape":"TaskId", + "location":"uri", + "locationName":"taskId" + } + } + }, + "StopThingRegistrationTaskResponse":{ + "type":"structure", + "members":{ + } + }, "StreamName":{"type":"string"}, + "SucceededThings":{"type":"integer"}, "TableName":{"type":"string"}, + "TargetArn":{"type":"string"}, + "TargetSelection":{ + "type":"string", + "enum":[ + "CONTINUOUS", + "SNAPSHOT" + ] + }, + "TaskId":{ + "type":"string", + "max":40 + }, + "TaskIdList":{ + "type":"list", + "member":{"shape":"TaskId"} + }, + "TemplateBody":{"type":"string"}, + "TestAuthorizationRequest":{ + "type":"structure", + "required":["authInfos"], + "members":{ + "principal":{"shape":"Principal"}, + "cognitoIdentityPoolId":{"shape":"CognitoIdentityPoolId"}, + "authInfos":{"shape":"AuthInfos"}, + "clientId":{ + "shape":"ClientId", + "location":"querystring", + "locationName":"clientId" + }, + "policyNamesToAdd":{"shape":"PolicyNames"}, + "policyNamesToSkip":{"shape":"PolicyNames"} + } + }, + "TestAuthorizationResponse":{ + "type":"structure", + "members":{ + "authResults":{"shape":"AuthResults"} + } + }, + "TestInvokeAuthorizerRequest":{ + "type":"structure", + "required":[ + "authorizerName", + "token", + "tokenSignature" + ], + "members":{ + "authorizerName":{ + "shape":"AuthorizerName", + "location":"uri", + "locationName":"authorizerName" + }, + "token":{"shape":"Token"}, + "tokenSignature":{"shape":"TokenSignature"} + } + }, + "TestInvokeAuthorizerResponse":{ + "type":"structure", + "members":{ + "isAuthenticated":{"shape":"IsAuthenticated"}, + "principalId":{"shape":"PrincipalId"}, + "policyDocuments":{"shape":"PolicyDocuments"}, + "refreshAfterInSeconds":{"shape":"Seconds"}, + "disconnectAfterInSeconds":{"shape":"Seconds"} + } + }, "ThingArn":{"type":"string"}, "ThingAttribute":{ "type":"structure", "members":{ "thingName":{"shape":"ThingName"}, "thingTypeName":{"shape":"ThingTypeName"}, + "thingArn":{"shape":"ThingArn"}, "attributes":{"shape":"Attributes"}, "version":{"shape":"Version"} } @@ -2683,6 +5389,81 @@ "type":"list", "member":{"shape":"ThingAttribute"} }, + "ThingDocument":{ + "type":"structure", + "members":{ + "thingName":{"shape":"ThingName"}, + "thingId":{"shape":"ThingId"}, + "thingTypeName":{"shape":"ThingTypeName"}, + "thingGroupNames":{"shape":"ThingGroupNameList"}, + "attributes":{"shape":"Attributes"}, + "shadow":{"shape":"JsonDocument"} + } + }, + "ThingDocumentList":{ + "type":"list", + "member":{"shape":"ThingDocument"} + }, + "ThingGroupArn":{"type":"string"}, + "ThingGroupDescription":{ + "type":"string", + "max":2028, + "pattern":"[\\p{Graph}\\x20]*" + }, + "ThingGroupId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9\\-]+" + }, + "ThingGroupList":{ + "type":"list", + "member":{"shape":"ThingGroupName"} + }, + "ThingGroupMetadata":{ + "type":"structure", + "members":{ + "parentGroupName":{"shape":"ThingGroupName"}, + "rootToParentThingGroups":{"shape":"ThingGroupNameAndArnList"}, + "creationDate":{"shape":"CreationDate"} + } + }, + "ThingGroupName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, + "ThingGroupNameAndArnList":{ + "type":"list", + "member":{"shape":"GroupNameAndArn"} + }, + "ThingGroupNameList":{ + "type":"list", + "member":{"shape":"ThingGroupName"} + }, + "ThingGroupProperties":{ + "type":"structure", + "members":{ + "thingGroupDescription":{"shape":"ThingGroupDescription"}, + "attributePayload":{"shape":"AttributePayload"} + } + }, + "ThingId":{"type":"string"}, + "ThingIndexingConfiguration":{ + "type":"structure", + "members":{ + "thingIndexingMode":{"shape":"ThingIndexingMode"} + } + }, + "ThingIndexingMode":{ + "type":"string", + "enum":[ + "OFF", + "REGISTRY", + "REGISTRY_AND_SHADOW" + ] + }, "ThingName":{ "type":"string", "max":128, @@ -2698,6 +5479,7 @@ "type":"structure", "members":{ "thingTypeName":{"shape":"ThingTypeName"}, + "thingTypeArn":{"shape":"ThingTypeArn"}, "thingTypeProperties":{"shape":"ThingTypeProperties"}, "thingTypeMetadata":{"shape":"ThingTypeMetadata"} } @@ -2707,6 +5489,7 @@ "max":2028, "pattern":"[\\p{Graph}\\x20]*" }, + "ThingTypeId":{"type":"string"}, "ThingTypeList":{ "type":"list", "member":{"shape":"ThingTypeDefinition"} @@ -2740,6 +5523,23 @@ "error":{"httpStatusCode":429}, "exception":true }, + "Token":{ + "type":"string", + "max":1024, + "min":1 + }, + "TokenKeyName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9_-]+" + }, + "TokenSignature":{ + "type":"string", + "max":2560, + "min":1, + "pattern":"[A-Za-z0-9+/]+={0,2}" + }, "Topic":{"type":"string"}, "TopicPattern":{"type":"string"}, "TopicRule":{ @@ -2843,6 +5643,28 @@ "exception":true }, "UndoDeprecate":{"type":"boolean"}, + "UpdateAuthorizerRequest":{ + "type":"structure", + "required":["authorizerName"], + "members":{ + "authorizerName":{ + "shape":"AuthorizerName", + "location":"uri", + "locationName":"authorizerName" + }, + "authorizerFunctionArn":{"shape":"AuthorizerFunctionArn"}, + "tokenKeyName":{"shape":"TokenKeyName"}, + "tokenSigningPublicKeys":{"shape":"PublicKeyMap"}, + "status":{"shape":"AuthorizerStatus"} + } + }, + "UpdateAuthorizerResponse":{ + "type":"structure", + "members":{ + "authorizerName":{"shape":"AuthorizerName"}, + "authorizerArn":{"shape":"AuthorizerArn"} + } + }, "UpdateCACertificateRequest":{ "type":"structure", "required":["certificateId"], @@ -2861,7 +5683,9 @@ "shape":"AutoRegistrationStatus", "location":"querystring", "locationName":"newAutoRegistrationStatus" - } + }, + "registrationConfig":{"shape":"RegistrationConfig"}, + "removeAutoRegistration":{"shape":"RemoveAutoRegistration"} } }, "UpdateCertificateRequest":{ @@ -2883,6 +5707,83 @@ } } }, + "UpdateEventConfigurationsRequest":{ + "type":"structure", + "members":{ + "eventConfigurations":{"shape":"EventConfigurations"} + } + }, + "UpdateEventConfigurationsResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateIndexingConfigurationRequest":{ + "type":"structure", + "members":{ + "thingIndexingConfiguration":{"shape":"ThingIndexingConfiguration"} + } + }, + "UpdateIndexingConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateRoleAliasRequest":{ + "type":"structure", + "required":["roleAlias"], + "members":{ + "roleAlias":{ + "shape":"RoleAlias", + "location":"uri", + "locationName":"roleAlias" + }, + "roleArn":{"shape":"RoleArn"}, + "credentialDurationSeconds":{"shape":"CredentialDurationSeconds"} + } + }, + "UpdateRoleAliasResponse":{ + "type":"structure", + "members":{ + "roleAlias":{"shape":"RoleAlias"}, + "roleAliasArn":{"shape":"RoleAliasArn"} + } + }, + "UpdateThingGroupRequest":{ + "type":"structure", + "required":[ + "thingGroupName", + "thingGroupProperties" + ], + "members":{ + "thingGroupName":{ + "shape":"ThingGroupName", + "location":"uri", + "locationName":"thingGroupName" + }, + "thingGroupProperties":{"shape":"ThingGroupProperties"}, + "expectedVersion":{"shape":"OptionalVersion"} + } + }, + "UpdateThingGroupResponse":{ + "type":"structure", + "members":{ + "version":{"shape":"Version"} + } + }, + "UpdateThingGroupsForThingRequest":{ + "type":"structure", + "members":{ + "thingName":{"shape":"ThingName"}, + "thingGroupsToAdd":{"shape":"ThingGroupList"}, + "thingGroupsToRemove":{"shape":"ThingGroupList"} + } + }, + "UpdateThingGroupsForThingResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateThingRequest":{ "type":"structure", "required":["thingName"], @@ -2904,6 +5805,7 @@ } }, "UseBase64":{"type":"boolean"}, + "Value":{"type":"string"}, "Version":{"type":"long"}, "VersionConflictException":{ "type":"structure", diff --git a/models/apis/iot/2015-05-28/docs-2.json b/models/apis/iot/2015-05-28/docs-2.json index 46c5106bc14..cb51c6fe3cc 100644 --- a/models/apis/iot/2015-05-28/docs-2.json +++ b/models/apis/iot/2015-05-28/docs-2.json @@ -3,62 +3,119 @@ "service": "AWS IoT

AWS IoT provides secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the AWS cloud. You can discover your custom IoT-Data endpoint to communicate with, configure rules for data processing and integration with other services, organize resources associated with each thing (Thing Registry), configure logging, and create and manage policies and credentials to authenticate things.

For more information about how AWS IoT works, see the Developer Guide.

", "operations": { "AcceptCertificateTransfer": "

Accepts a pending certificate transfer. The default state of the certificate is INACTIVE.

To check for pending certificate transfers, call ListCertificates to enumerate your certificates.

", - "AttachPrincipalPolicy": "

Attaches the specified policy to the specified principal (certificate or other credential).

", + "AddThingToThingGroup": "

Adds a thing to a thing group.

", + "AssociateTargetsWithJob": "

Associates a group with a continuous job. The following criteria must be met:

", + "AttachPolicy": "

Attaches a policy to the specified target.

", + "AttachPrincipalPolicy": "

Attaches the specified policy to the specified principal (certificate or other credential).

Note: This API is deprecated. Please use AttachPolicy instead.

", "AttachThingPrincipal": "

Attaches the specified principal to the specified thing.

", "CancelCertificateTransfer": "

Cancels a pending transfer for the specified certificate.

Note Only the transfer source account can use this operation to cancel a transfer. (Transfer destinations can use RejectCertificateTransfer instead.) After transfer, AWS IoT returns the certificate to the source account in the INACTIVE state. After the destination account has accepted the transfer, the transfer cannot be cancelled.

After a certificate transfer is cancelled, the status of the certificate changes from PENDING_TRANSFER to INACTIVE.

", + "CancelJob": "

Cancels a job.

", + "ClearDefaultAuthorizer": "

Clears the default authorizer.

", + "CreateAuthorizer": "

Creates an authorizer.

", "CreateCertificateFromCsr": "

Creates an X.509 certificate using the specified certificate signing request.

Note: The CSR must include a public key that is either an RSA key with a length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384 curves.

Note: Reusing the same certificate signing request (CSR) results in a distinct certificate.

You can create multiple certificates in a batch by creating a directory, copying multiple .csr files into that directory, and then specifying that directory on the command line. The following commands show how to create a batch of certificates given a batch of CSRs.

Assuming a set of CSRs are located inside of the directory my-csr-directory:

On Linux and OS X, the command is:

$ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}

This command lists all of the CSRs in my-csr-directory and pipes each CSR file name to the aws iot create-certificate-from-csr AWS CLI command to create a certificate for the corresponding CSR.

The aws iot create-certificate-from-csr part of the command can also be run in parallel to speed up the certificate creation process:

$ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}

On Windows PowerShell, the command to create certificates for all CSRs in my-csr-directory is:

> ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/$_}

On a Windows command prompt, the command to create certificates for all CSRs in my-csr-directory is:

> forfiles /p my-csr-directory /c \"cmd /c aws iot create-certificate-from-csr --certificate-signing-request file://@path\"

", + "CreateJob": "

Creates a job.

", "CreateKeysAndCertificate": "

Creates a 2048-bit RSA key pair and issues an X.509 certificate using the issued public key.

Note This is the only time AWS IoT issues the private key for this certificate, so it is important to keep it in a secure location.

", "CreatePolicy": "

Creates an AWS IoT policy.

The created policy is the default version for the policy. This operation creates a policy version with a version identifier of 1 and sets 1 as the policy's default version.

", "CreatePolicyVersion": "

Creates a new version of the specified AWS IoT policy. To update a policy, create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must use DeletePolicyVersion to delete an existing version before you create a new one.

Optionally, you can set the new version as the policy's default version. The default version is the operative version (that is, the version that is in effect for the certificates to which the policy is attached).

", + "CreateRoleAlias": "

Creates a role alias.

", "CreateThing": "

Creates a thing record in the thing registry.

", + "CreateThingGroup": "

Create a thing group.

", "CreateThingType": "

Creates a new thing type.

", "CreateTopicRule": "

Creates a rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule.

", + "DeleteAuthorizer": "

Deletes an authorizer.

", "DeleteCACertificate": "

Deletes a registered CA certificate.

", "DeleteCertificate": "

Deletes the specified certificate.

A certificate cannot be deleted if it has a policy attached to it or if its status is set to ACTIVE. To delete a certificate, first use the DetachPrincipalPolicy API to detach all policies. Next, use the UpdateCertificate API to set the certificate to the INACTIVE status.

", "DeletePolicy": "

Deletes the specified policy.

A policy cannot be deleted if it has non-default versions or it is attached to any certificate.

To delete a policy, use the DeletePolicyVersion API to delete all non-default versions of the policy; use the DetachPrincipalPolicy API to detach the policy from any certificate; and then use the DeletePolicy API to delete the policy.

When a policy is deleted using DeletePolicy, its default version is deleted with it.

", "DeletePolicyVersion": "

Deletes the specified version of the specified policy. You cannot delete the default version of a policy using this API. To delete the default version of a policy, use DeletePolicy. To find out which version of a policy is marked as the default version, use ListPolicyVersions.

", "DeleteRegistrationCode": "

Deletes a CA certificate registration code.

", + "DeleteRoleAlias": "

Deletes a role alias

", "DeleteThing": "

Deletes the specified thing.

", + "DeleteThingGroup": "

Deletes a thing group.

", "DeleteThingType": "

Deletes the specified thing type . You cannot delete a thing type if it has things associated with it. To delete a thing type, first mark it as deprecated by calling DeprecateThingType, then remove any associated things by calling UpdateThing to change the thing type on any associated thing, and finally use DeleteThingType to delete the thing type.

", - "DeleteTopicRule": "

Deletes the specified rule.

", + "DeleteTopicRule": "

Deletes the rule.

", + "DeleteV2LoggingLevel": "

Deletes a logging level.

", "DeprecateThingType": "

Deprecates a thing type. You can not associate new things with deprecated thing type.

", + "DescribeAuthorizer": "

Describes an authorizer.

", "DescribeCACertificate": "

Describes a registered CA certificate.

", - "DescribeCertificate": "

Gets information about the specified certificate.

", + "DescribeCertificate": "

Gets information about the specified certificate. You may specify the certificate using either its ID or PEM.

", + "DescribeDefaultAuthorizer": "

Describes the default authorizer.

", "DescribeEndpoint": "

Returns a unique endpoint specific to the AWS account making the call.

", + "DescribeEventConfigurations": "

Describes event configurations.

", + "DescribeIndex": "

Describes a search index.

", + "DescribeJob": "

Describes a job.

", + "DescribeJobExecution": "

Describes a job execution.

", + "DescribeRoleAlias": "

Describes a role alias.

", "DescribeThing": "

Gets information about the specified thing.

", + "DescribeThingGroup": "

Describe a thing group.

", + "DescribeThingRegistrationTask": "

Describes a bulk thing provisioning task.

", "DescribeThingType": "

Gets information about the specified thing type.

", - "DetachPrincipalPolicy": "

Removes the specified policy from the specified certificate.

", + "DetachPolicy": "

Detaches a policy from the specified target.

", + "DetachPrincipalPolicy": "

Removes the specified policy from the specified certificate.

Note: This API is deprecated. Please use DetachPolicy instead.

", "DetachThingPrincipal": "

Detaches the specified principal from the specified thing.

", - "DisableTopicRule": "

Disables the specified rule.

", - "EnableTopicRule": "

Enables the specified rule.

", + "DisableTopicRule": "

Disables the rule.

", + "EnableTopicRule": "

Enables the rule.

", + "GetEffectivePolicies": "

Gets effective policies.

", + "GetIndexingConfiguration": "

Gets the search configuration.

", + "GetJobDocument": "

Gets a job document.

", "GetLoggingOptions": "

Gets the logging options.

", "GetPolicy": "

Gets information about the specified policy with the policy document of the default version.

", "GetPolicyVersion": "

Gets information about the specified policy version.

", "GetRegistrationCode": "

Gets a registration code used to register a CA certificate with AWS IoT.

", - "GetTopicRule": "

Gets information about the specified rule.

", + "GetTopicRule": "

Gets information about the rule.

", + "GetV2LoggingOptions": "

Gets the fine grained logging options.

", + "ListAttachedPolicies": "

Lists the policies attached to the specified thing group.

", + "ListAuthorizers": "

Lists the authorizers registered in your account.

", "ListCACertificates": "

Lists the CA certificates registered for your AWS account.

The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results.

", "ListCertificates": "

Lists the certificates registered in your AWS account.

The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results.

", "ListCertificatesByCA": "

List the device certificates signed by the specified CA certificate.

", - "ListOutgoingCertificates": "

Lists certificates that are being transfered but not yet accepted.

", + "ListIndices": "

Lists the search indices.

", + "ListJobExecutionsForJob": "

Lists the job executions for a job.

", + "ListJobExecutionsForThing": "

Lists the job executions for the specified thing.

", + "ListJobs": "

Lists jobs.

", + "ListOutgoingCertificates": "

Lists certificates that are being transferred but not yet accepted.

", "ListPolicies": "

Lists your policies.

", - "ListPolicyPrincipals": "

Lists the principals associated with the specified policy.

", + "ListPolicyPrincipals": "

Lists the principals associated with the specified policy.

Note: This API is deprecated. Please use ListTargetsForPolicy instead.

", "ListPolicyVersions": "

Lists the versions of the specified policy and identifies the default version.

", - "ListPrincipalPolicies": "

Lists the policies attached to the specified principal. If you use an Cognito identity, the ID must be in AmazonCognito Identity format.

", + "ListPrincipalPolicies": "

Lists the policies attached to the specified principal. If you use an Cognito identity, the ID must be in AmazonCognito Identity format.

Note: This API is deprecated. Please use ListAttachedPolicies instead.

", "ListPrincipalThings": "

Lists the things associated with the specified principal.

", + "ListRoleAliases": "

Lists the role aliases registered in your account.

", + "ListTargetsForPolicy": "

List targets for the specified policy.

", + "ListThingGroups": "

List the thing groups in your account.

", + "ListThingGroupsForThing": "

List the thing groups to which the specified thing belongs.

", "ListThingPrincipals": "

Lists the principals associated with the specified thing.

", + "ListThingRegistrationTaskReports": "

Information about the thing registration tasks.

", + "ListThingRegistrationTasks": "

List bulk thing provisioning tasks.

", "ListThingTypes": "

Lists the existing thing types.

", "ListThings": "

Lists your things. Use the attributeName and attributeValue parameters to filter your things. For example, calling ListThings with attributeName=Color and attributeValue=Red retrieves all things in the registry that contain an attribute Color with the value Red.

", + "ListThingsInThingGroup": "

Lists the things in the specified group.

", "ListTopicRules": "

Lists the rules for the specific topic.

", + "ListV2LoggingLevels": "

Lists logging levels.

", "RegisterCACertificate": "

Registers a CA certificate with AWS IoT. This CA certificate can then be used to sign device certificates, which can be then registered with AWS IoT. You can register up to 10 CA certificates per AWS account that have the same subject field. This enables you to have up to 10 certificate authorities sign your device certificates. If you have more than one CA certificate registered, make sure you pass the CA certificate when you register your device certificates with the RegisterCertificate API.

", "RegisterCertificate": "

Registers a device certificate with AWS IoT. If you have more than one CA certificate that has the same subject field, you must specify the CA certificate that was used to sign the device certificate being registered.

", + "RegisterThing": "

Provisions a thing.

", "RejectCertificateTransfer": "

Rejects a pending certificate transfer. After AWS IoT rejects a certificate transfer, the certificate status changes from PENDING_TRANSFER to INACTIVE.

To check for pending certificate transfers, call ListCertificates to enumerate your certificates.

This operation can only be called by the transfer destination. After it is called, the certificate will be returned to the source's account in the INACTIVE state.

", - "ReplaceTopicRule": "

Replaces the specified rule. You must specify all parameters for the new rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule.

", + "RemoveThingFromThingGroup": "

Remove the specified thing from the specified group.

", + "ReplaceTopicRule": "

Replaces the rule. You must specify all parameters for the new rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule.

", + "SearchIndex": "

The query search index.

", + "SetDefaultAuthorizer": "

Sets the default authorizer. This will be used if a websocket connection is made without specifying an authorizer.

", "SetDefaultPolicyVersion": "

Sets the specified version of the specified policy as the policy's default (operative) version. This action affects all certificates to which the policy is attached. To list the principals the policy is attached to, use the ListPrincipalPolicy API.

", "SetLoggingOptions": "

Sets the logging options.

", + "SetV2LoggingLevel": "

Sets the logging level.

", + "SetV2LoggingOptions": "

Sets the logging options for the V2 logging service.

", + "StartThingRegistrationTask": "

Creates a bulk thing provisioning task.

", + "StopThingRegistrationTask": "

Cancels a bulk thing provisioning task.

", + "TestAuthorization": "

Test custom authorization.

", + "TestInvokeAuthorizer": "

Invoke the specified custom authorizer for testing purposes.

", "TransferCertificate": "

Transfers the specified certificate to the specified AWS account.

You can cancel the transfer until it is acknowledged by the recipient.

No notification is sent to the transfer destination's account. It is up to the caller to notify the transfer target.

The certificate being transferred must not be in the ACTIVE state. You can use the UpdateCertificate API to deactivate it.

The certificate must not have any policies attached to it. You can use the DetachPrincipalPolicy API to detach them.

", + "UpdateAuthorizer": "

Updates an authorizer.

", "UpdateCACertificate": "

Updates a registered CA certificate.

", "UpdateCertificate": "

Updates the status of the specified certificate. This operation is idempotent.

Moving a certificate from the ACTIVE state (including REVOKED) will not disconnect currently connected devices, but these devices will be unable to reconnect.

The ACTIVE state is required to authenticate devices connecting to AWS IoT using a certificate.

", - "UpdateThing": "

Updates the data for a thing.

" + "UpdateEventConfigurations": "

Updates the event configurations.

", + "UpdateIndexingConfiguration": "

Updates the search configuration.

", + "UpdateRoleAlias": "

Updates a role alias.

", + "UpdateThing": "

Updates the data for a thing.

", + "UpdateThingGroup": "

Update a thing group.

", + "UpdateThingGroupsForThing": "

Updates the groups to which the thing belongs.

" }, "shapes": { "AcceptCertificateTransferRequest": { @@ -79,6 +136,22 @@ "TopicRulePayload$actions": "

The actions associated with the rule.

" } }, + "ActionType": { + "base": null, + "refs": { + "AuthInfo$actionType": "

The type of action for which the principal is being authorized.

" + } + }, + "AddThingToThingGroupRequest": { + "base": null, + "refs": { + } + }, + "AddThingToThingGroupResponse": { + "base": null, + "refs": { + } + }, "AlarmName": { "base": null, "refs": { @@ -91,16 +164,39 @@ "RegisterCACertificateRequest$allowAutoRegistration": "

Allows this CA certificate to be used for auto registration of device certificates.

" } }, + "Allowed": { + "base": "

Contains information that allowed the authorization.

", + "refs": { + "AuthResult$allowed": "

The policies and statements that allowed the specified action.

" + } + }, "AscendingOrder": { "base": null, "refs": { + "ListAuthorizersRequest$ascendingOrder": "

Return the list of authorizers in ascending alphabetical order.

", "ListCACertificatesRequest$ascendingOrder": "

Determines the order of the results.

", "ListCertificatesByCARequest$ascendingOrder": "

Specifies the order for results. If True, the results are returned in ascending order, based on the creation date.

", "ListCertificatesRequest$ascendingOrder": "

Specifies the order for results. If True, the results are returned in ascending order, based on the creation date.

", "ListOutgoingCertificatesRequest$ascendingOrder": "

Specifies the order for results. If True, the results are returned in ascending order, based on the creation date.

", "ListPoliciesRequest$ascendingOrder": "

Specifies the order for results. If true, the results are returned in ascending creation order.

", "ListPolicyPrincipalsRequest$ascendingOrder": "

Specifies the order for results. If true, the results are returned in ascending creation order.

", - "ListPrincipalPoliciesRequest$ascendingOrder": "

Specifies the order for results. If true, results are returned in ascending creation order.

" + "ListPrincipalPoliciesRequest$ascendingOrder": "

Specifies the order for results. If true, results are returned in ascending creation order.

", + "ListRoleAliasesRequest$ascendingOrder": "

Return the list of role aliases in ascending alphabetical order.

" + } + }, + "AssociateTargetsWithJobRequest": { + "base": null, + "refs": { + } + }, + "AssociateTargetsWithJobResponse": { + "base": null, + "refs": { + } + }, + "AttachPolicyRequest": { + "base": null, + "refs": { } }, "AttachPrincipalPolicyRequest": { @@ -130,11 +226,12 @@ "base": "

The attribute payload.

", "refs": { "CreateThingRequest$attributePayload": "

The attribute payload, which consists of up to three name/value pairs in a JSON document. For example:

{\\\"attributes\\\":{\\\"string1\\\":\\\"string2\\\"}}

", + "ThingGroupProperties$attributePayload": "

The thing group attributes in JSON format.

", "UpdateThingRequest$attributePayload": "

A list of thing attributes, a JSON string containing name-value pairs. For example:

{\\\"attributes\\\":{\\\"name1\\\":\\\"value2\\\"}}

This data is used to add new attributes or update existing attributes.

" } }, "AttributeValue": { - "base": "An attribute value for an Thing. An empty or null value in Update means that existing value for that attribute should be deleted. Empty and null values in create are ignored.", + "base": null, "refs": { "Attributes$value": null, "ListThingsRequest$attributeValue": "

The attribute value used to search for things.

" @@ -145,7 +242,101 @@ "refs": { "AttributePayload$attributes": "

A JSON string containing up to three key-value pair in JSON format. For example:

{\\\"attributes\\\":{\\\"string1\\\":\\\"string2\\\"}}

", "DescribeThingResponse$attributes": "

The thing attributes.

", - "ThingAttribute$attributes": "

A list of thing attributes which are name-value pairs.

" + "ThingAttribute$attributes": "

A list of thing attributes which are name-value pairs.

", + "ThingDocument$attributes": "

The attributes.

" + } + }, + "AuthDecision": { + "base": null, + "refs": { + "AuthResult$authDecision": "

The final authorization decision of this scenario. Multiple statements are taken into account when determining the authorization decision. An explicit deny statement can override multiple allow statements.

" + } + }, + "AuthInfo": { + "base": "

A collection of authorization information.

", + "refs": { + "AuthInfos$member": null, + "AuthResult$authInfo": "

Authorization information.

" + } + }, + "AuthInfos": { + "base": null, + "refs": { + "TestAuthorizationRequest$authInfos": "

A list of authorization info objects. Simulating authorization will create a response for each authInfo object in the list.

" + } + }, + "AuthResult": { + "base": "

The authorizer result.

", + "refs": { + "AuthResults$member": null + } + }, + "AuthResults": { + "base": null, + "refs": { + "TestAuthorizationResponse$authResults": "

The authentication results.

" + } + }, + "AuthorizerArn": { + "base": null, + "refs": { + "AuthorizerDescription$authorizerArn": "

The authorizer ARN.

", + "AuthorizerSummary$authorizerArn": "

The authorizer ARN.

", + "CreateAuthorizerResponse$authorizerArn": "

The authorizer ARN.

", + "SetDefaultAuthorizerResponse$authorizerArn": "

The authorizer ARN.

", + "UpdateAuthorizerResponse$authorizerArn": "

The authorizer ARN.

" + } + }, + "AuthorizerDescription": { + "base": "

The authorizer description.

", + "refs": { + "DescribeAuthorizerResponse$authorizerDescription": "

The authorizer description.

", + "DescribeDefaultAuthorizerResponse$authorizerDescription": "

The default authorizer's description.

" + } + }, + "AuthorizerFunctionArn": { + "base": null, + "refs": { + "AuthorizerDescription$authorizerFunctionArn": "

The authorizer's Lambda function ARN.

", + "CreateAuthorizerRequest$authorizerFunctionArn": "

The ARN of the authorizer's Lambda function.

", + "UpdateAuthorizerRequest$authorizerFunctionArn": "

The ARN of the authorizer's Lambda function.

" + } + }, + "AuthorizerName": { + "base": null, + "refs": { + "AuthorizerDescription$authorizerName": "

The authorizer name.

", + "AuthorizerSummary$authorizerName": "

The authorizer name.

", + "CreateAuthorizerRequest$authorizerName": "

The authorizer name.

", + "CreateAuthorizerResponse$authorizerName": "

The authorizer's name.

", + "DeleteAuthorizerRequest$authorizerName": "

The name of the authorizer to delete.

", + "DescribeAuthorizerRequest$authorizerName": "

The name of the authorizer to describe.

", + "SetDefaultAuthorizerRequest$authorizerName": "

The authorizer name.

", + "SetDefaultAuthorizerResponse$authorizerName": "

The authorizer name.

", + "TestInvokeAuthorizerRequest$authorizerName": "

The custom authorizer name.

", + "UpdateAuthorizerRequest$authorizerName": "

The authorizer name.

", + "UpdateAuthorizerResponse$authorizerName": "

The authorizer name.

" + } + }, + "AuthorizerStatus": { + "base": null, + "refs": { + "AuthorizerDescription$status": "

The status of the authorizer.

", + "CreateAuthorizerRequest$status": "

The status of the create authorizer request.

", + "ListAuthorizersRequest$status": "

The status of the list authorizers request.

", + "UpdateAuthorizerRequest$status": "

The status of the update authorizer request.

" + } + }, + "AuthorizerSummary": { + "base": "

The authorizer summary.

", + "refs": { + "Authorizers$member": null + } + }, + "Authorizers": { + "base": null, + "refs": { + "ListAuthorizersResponse$authorizers": "

The authorizers.

" } }, "AutoRegistrationStatus": { @@ -162,6 +353,7 @@ "CertificateDescription$ownedBy": "

The ID of the AWS account that owns the certificate.

", "CertificateDescription$previousOwnedBy": "

The ID of the AWS account of the previous owner of the certificate.

", "OutgoingCertificate$transferredTo": "

The AWS account to which the transfer was made.

", + "RoleAliasDescription$owner": "

The role alias owner.

", "TransferCertificateRequest$targetAwsAccount": "

The AWS account.

" } }, @@ -173,12 +365,14 @@ "DynamoDBAction$roleArn": "

The ARN of the IAM role that grants access to the DynamoDB table.

", "DynamoDBv2Action$roleArn": "

The ARN of the IAM role that grants access to the DynamoDB table.

", "ElasticsearchAction$roleArn": "

The IAM role ARN that has access to Elasticsearch.

", - "FirehoseAction$roleArn": "

The IAM role that grants access to the Amazon Kinesis Firehost stream.

", + "FirehoseAction$roleArn": "

The IAM role that grants access to the Amazon Kinesis Firehose stream.

", "GetLoggingOptionsResponse$roleArn": "

The ARN of the IAM role that grants access.

", + "GetV2LoggingOptionsResponse$roleArn": "

The IAM role ARN AWS IoT uses to write to your CloudWatch logs.

", "KinesisAction$roleArn": "

The ARN of the IAM role that grants access to the Amazon Kinesis stream.

", "LoggingOptionsPayload$roleArn": "

The ARN of the IAM role that grants access.

", "RepublishAction$roleArn": "

The ARN of the IAM role that grants access.

", "S3Action$roleArn": "

The ARN of the IAM role that grants access.

", + "SetV2LoggingOptionsRequest$roleArn": "

The role ARN that allows IoT to write to Cloudwatch logs.

", "SnsAction$targetArn": "

The ARN of the SNS topic.

", "SnsAction$roleArn": "

The ARN of the IAM role that grants access.

", "SqsAction$roleArn": "

The ARN of the IAM role that grants access.

" @@ -234,6 +428,22 @@ "refs": { } }, + "CancelJobRequest": { + "base": null, + "refs": { + } + }, + "CancelJobResponse": { + "base": null, + "refs": { + } + }, + "CanceledThings": { + "base": null, + "refs": { + "JobProcessDetails$numberOfCanceledThings": "

The number of things that cancelled the job.

" + } + }, "CannedAccessControlList": { "base": null, "refs": { @@ -299,7 +509,7 @@ } }, "CertificatePem": { - "base": null, + "base": "

The PEM of a certificate.

", "refs": { "CACertificateDescription$certificatePem": "

The CA certificate data, in PEM format.

", "CertificateDescription$certificatePem": "

The certificate data, in PEM format.

", @@ -308,7 +518,8 @@ "RegisterCACertificateRequest$caCertificate": "

The CA certificate.

", "RegisterCACertificateRequest$verificationCertificate": "

The private key verification certificate.

", "RegisterCertificateRequest$certificatePem": "

The certificate data, in PEM format.

", - "RegisterCertificateRequest$caCertificatePem": "

The CA certificate used to sign the device certificate being registered.

" + "RegisterCertificateRequest$caCertificatePem": "

The CA certificate used to sign the device certificate being registered.

", + "RegisterThingResponse$certificatePem": null } }, "CertificateSigningRequest": { @@ -343,10 +554,21 @@ "ListCertificatesResponse$certificates": "

The descriptions of the certificates.

" } }, + "ClearDefaultAuthorizerRequest": { + "base": null, + "refs": { + } + }, + "ClearDefaultAuthorizerResponse": { + "base": null, + "refs": { + } + }, "ClientId": { "base": null, "refs": { - "DescribeThingResponse$defaultClientId": "

The default client ID.

" + "DescribeThingResponse$defaultClientId": "

The default client ID.

", + "TestAuthorizationRequest$clientId": "

The MQTT client ID.

" } }, "CloudwatchAlarmAction": { @@ -361,6 +583,49 @@ "Action$cloudwatchMetric": "

Capture a CloudWatch metric.

" } }, + "CognitoIdentityPoolId": { + "base": null, + "refs": { + "GetEffectivePoliciesRequest$cognitoIdentityPoolId": "

The Cognito identity pool ID.

", + "TestAuthorizationRequest$cognitoIdentityPoolId": "

The Cognito identity pool ID.

" + } + }, + "Comment": { + "base": null, + "refs": { + "AssociateTargetsWithJobRequest$comment": "

An optional comment string describing why the job was associated with the targets.

", + "CancelJobRequest$comment": "

An optional comment string describing why the job was canceled.

", + "Job$comment": "

If the job was updated, describes the reason for the update.

" + } + }, + "Configuration": { + "base": "

Configuration.

", + "refs": { + "EventConfigurations$value": null + } + }, + "ConflictingResourceUpdateException": { + "base": "

A conflicting resource update exception. This exception is thrown when two pending updates cause a conflict.

", + "refs": { + } + }, + "Count": { + "base": null, + "refs": { + "DescribeThingRegistrationTaskResponse$successCount": "

The number of things successfully provisioned.

", + "DescribeThingRegistrationTaskResponse$failureCount": "

The number of things that failed to be provisioned.

" + } + }, + "CreateAuthorizerRequest": { + "base": null, + "refs": { + } + }, + "CreateAuthorizerResponse": { + "base": null, + "refs": { + } + }, "CreateCertificateFromCsrRequest": { "base": "

The input for the CreateCertificateFromCsr operation.

", "refs": { @@ -371,6 +636,16 @@ "refs": { } }, + "CreateJobRequest": { + "base": null, + "refs": { + } + }, + "CreateJobResponse": { + "base": null, + "refs": { + } + }, "CreateKeysAndCertificateRequest": { "base": "

The input for the CreateKeysAndCertificate operation.

", "refs": { @@ -401,6 +676,26 @@ "refs": { } }, + "CreateRoleAliasRequest": { + "base": null, + "refs": { + } + }, + "CreateRoleAliasResponse": { + "base": null, + "refs": { + } + }, + "CreateThingGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateThingGroupResponse": { + "base": null, + "refs": { + } + }, "CreateThingRequest": { "base": "

The input for the CreateThing operation.

", "refs": { @@ -436,25 +731,62 @@ "CreationDate": { "base": null, "refs": { + "DescribeEventConfigurationsResponse$creationDate": "

The creation date of the event configuration.

", + "DescribeThingRegistrationTaskResponse$creationDate": "

The task creation date.

", + "ThingGroupMetadata$creationDate": "

The UNIX timestamp of when the thing group was created.

", "ThingTypeMetadata$creationDate": "

The date and time when the thing type was created.

" } }, + "CredentialDurationSeconds": { + "base": null, + "refs": { + "CreateRoleAliasRequest$credentialDurationSeconds": "

How long (in seconds) the credentials will be valid.

", + "RoleAliasDescription$credentialDurationSeconds": "

The number of seconds for which the credential is valid.

", + "UpdateRoleAliasRequest$credentialDurationSeconds": "

The number of seconds the credential will be valid.

" + } + }, "DateType": { "base": null, "refs": { + "AuthorizerDescription$creationDate": "

The UNIX timestamp of when the authorizer was created.

", + "AuthorizerDescription$lastModifiedDate": "

The UNIX timestamp of when the authorizer was last updated.

", "CACertificate$creationDate": "

The date the CA certificate was created.

", "CACertificateDescription$creationDate": "

The date the CA certificate was created.

", "Certificate$creationDate": "

The date and time the certificate was created.

", "CertificateDescription$creationDate": "

The date and time the certificate was created.

", "CertificateDescription$lastModifiedDate": "

The date and time the certificate was last modified.

", + "Job$createdAt": "

The time, in milliseconds since the epoch, when the job was created.

", + "Job$lastUpdatedAt": "

The time, in milliseconds since the epoch, when the job was last updated.

", + "Job$completedAt": "

The time, in milliseconds since the epoch, when the job was completed.

", + "JobExecution$queuedAt": "

The time, in milliseconds since the epoch, when the job execution was queued.

", + "JobExecution$startedAt": "

The time, in milliseconds since the epoch, when the job execution started.

", + "JobExecution$lastUpdatedAt": "

The time, in milliseconds since the epoch, when the job execution was last updated.

", + "JobExecutionSummary$queuedAt": "

The time, in milliseconds since the epoch, when the job execution was queued.

", + "JobExecutionSummary$startedAt": "

The time, in milliseconds since the epoch, when the job execution started.

", + "JobExecutionSummary$lastUpdatedAt": "

The time, in milliseconds since the epoch, when the job execution was last updated.

", + "JobSummary$createdAt": "

The time, in milliseconds since the epoch, when the job was created.

", + "JobSummary$lastUpdatedAt": "

The time, in milliseconds since the epoch, when the job was last updated.

", + "JobSummary$completedAt": "

The time, in milliseconds since the epoch, when the job completed.

", "OutgoingCertificate$transferDate": "

The date the transfer was initiated.

", "OutgoingCertificate$creationDate": "

The certificate creation date.

", "PolicyVersion$createDate": "

The date and time the policy was created.

", + "RoleAliasDescription$creationDate": "

The UNIX timestamp of when the role alias was created.

", + "RoleAliasDescription$lastModifiedDate": "

The UNIX timestamp of when the role alias was last modified.

", "TransferData$transferDate": "

The date the transfer took place.

", "TransferData$acceptDate": "

The date the transfer was accepted.

", "TransferData$rejectDate": "

The date the transfer was rejected.

" } }, + "DeleteAuthorizerRequest": { + "base": null, + "refs": { + } + }, + "DeleteAuthorizerResponse": { + "base": null, + "refs": { + } + }, "DeleteCACertificateRequest": { "base": "

Input for the DeleteCACertificate operation.

", "refs": { @@ -495,6 +827,26 @@ "refs": { } }, + "DeleteRoleAliasRequest": { + "base": null, + "refs": { + } + }, + "DeleteRoleAliasResponse": { + "base": null, + "refs": { + } + }, + "DeleteThingGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteThingGroupResponse": { + "base": null, + "refs": { + } + }, "DeleteThingRequest": { "base": "

The input for the DeleteThing operation.

", "refs": { @@ -520,12 +872,23 @@ "refs": { } }, + "DeleteV2LoggingLevelRequest": { + "base": null, + "refs": { + } + }, "DeliveryStreamName": { "base": null, "refs": { "FirehoseAction$deliveryStreamName": "

The delivery stream name.

" } }, + "Denied": { + "base": "

Contains information that denied the authorization.

", + "refs": { + "AuthResult$denied": "

The policies and statements that denied the specified action.

" + } + }, "DeprecateThingTypeRequest": { "base": "

The input for the DeprecateThingType operation.

", "refs": { @@ -542,6 +905,16 @@ "ThingTypeMetadata$deprecationDate": "

The date and time when the thing type was deprecated.

" } }, + "DescribeAuthorizerRequest": { + "base": null, + "refs": { + } + }, + "DescribeAuthorizerResponse": { + "base": null, + "refs": { + } + }, "DescribeCACertificateRequest": { "base": "

The input for the DescribeCACertificate operation.

", "refs": { @@ -562,129 +935,308 @@ "refs": { } }, - "DescribeEndpointRequest": { - "base": "

The input for the DescribeEndpoint operation.

", + "DescribeDefaultAuthorizerRequest": { + "base": null, "refs": { } }, - "DescribeEndpointResponse": { - "base": "

The output from the DescribeEndpoint operation.

", + "DescribeDefaultAuthorizerResponse": { + "base": null, "refs": { } }, - "DescribeThingRequest": { - "base": "

The input for the DescribeThing operation.

", + "DescribeEndpointRequest": { + "base": "

The input for the DescribeEndpoint operation.

", "refs": { } }, - "DescribeThingResponse": { - "base": "

The output from the DescribeThing operation.

", + "DescribeEndpointResponse": { + "base": "

The output from the DescribeEndpoint operation.

", "refs": { } }, - "DescribeThingTypeRequest": { - "base": "

The input for the DescribeThingType operation.

", + "DescribeEventConfigurationsRequest": { + "base": null, "refs": { } }, - "DescribeThingTypeResponse": { - "base": "

The output for the DescribeThingType operation.

", + "DescribeEventConfigurationsResponse": { + "base": null, "refs": { } }, - "Description": { + "DescribeIndexRequest": { "base": null, "refs": { - "TopicRule$description": "

The description of the rule.

", - "TopicRulePayload$description": "

The description of the rule.

" } }, - "DetachPrincipalPolicyRequest": { - "base": "

The input for the DetachPrincipalPolicy operation.

", + "DescribeIndexResponse": { + "base": null, "refs": { } }, - "DetachThingPrincipalRequest": { - "base": "

The input for the DetachThingPrincipal operation.

", + "DescribeJobExecutionRequest": { + "base": null, "refs": { } }, - "DetachThingPrincipalResponse": { - "base": "

The output from the DetachThingPrincipal operation.

", + "DescribeJobExecutionResponse": { + "base": null, "refs": { } }, - "DisableTopicRuleRequest": { - "base": "

The input for the DisableTopicRuleRequest operation.

", + "DescribeJobRequest": { + "base": null, "refs": { } }, - "DynamoDBAction": { - "base": "

Describes an action to write to a DynamoDB table.

The tableName, hashKeyField, and rangeKeyField values must match the values used when you created the table.

The hashKeyValue and rangeKeyvalue fields use a substitution template syntax. These templates provide data at runtime. The syntax is as follows: ${sql-expression}.

You can specify any valid expression in a WHERE or SELECT clause, including JSON properties, comparisons, calculations, and functions. For example, the following field uses the third level of the topic:

\"hashKeyValue\": \"${topic(3)}\"

The following field uses the timestamp:

\"rangeKeyValue\": \"${timestamp()}\"

", + "DescribeJobResponse": { + "base": null, "refs": { - "Action$dynamoDB": "

Write to a DynamoDB table.

" } }, - "DynamoDBv2Action": { - "base": "

Describes an action to write to a DynamoDB table.

This DynamoDB action writes each attribute in the message payload into it's own column in the DynamoDB table.

", + "DescribeRoleAliasRequest": { + "base": null, "refs": { - "Action$dynamoDBv2": "

Write to a DynamoDB table. This is a new version of the DynamoDB action. It allows you to write each attribute in an MQTT message payload into a separate DynamoDB column.

" } }, - "DynamoKeyType": { + "DescribeRoleAliasResponse": { "base": null, "refs": { - "DynamoDBAction$hashKeyType": "

The hash key type. Valid values are \"STRING\" or \"NUMBER\"

", - "DynamoDBAction$rangeKeyType": "

The range key type. Valid values are \"STRING\" or \"NUMBER\"

" } }, - "DynamoOperation": { + "DescribeThingGroupRequest": { "base": null, "refs": { - "DynamoDBAction$operation": "

The type of operation to be performed. This follows the substitution template, so it can be ${operation}, but the substitution must result in one of the following: INSERT, UPDATE, or DELETE.

" } }, - "ElasticsearchAction": { - "base": "

Describes an action that writes data to an Amazon Elasticsearch Service domain.

", + "DescribeThingGroupResponse": { + "base": null, "refs": { - "Action$elasticsearch": "

Write data to an Amazon Elasticsearch Service domain.

" } }, - "ElasticsearchEndpoint": { + "DescribeThingRegistrationTaskRequest": { "base": null, "refs": { - "ElasticsearchAction$endpoint": "

The endpoint of your Elasticsearch domain.

" } }, - "ElasticsearchId": { + "DescribeThingRegistrationTaskResponse": { "base": null, "refs": { - "ElasticsearchAction$id": "

The unique identifier for the document you are storing.

" } }, - "ElasticsearchIndex": { - "base": null, + "DescribeThingRequest": { + "base": "

The input for the DescribeThing operation.

", "refs": { - "ElasticsearchAction$index": "

The Elasticsearch index where you want to store your data.

" } }, - "ElasticsearchType": { - "base": null, + "DescribeThingResponse": { + "base": "

The output from the DescribeThing operation.

", "refs": { - "ElasticsearchAction$type": "

The type of document you are storing.

" } }, - "EnableTopicRuleRequest": { - "base": "

The input for the EnableTopicRuleRequest operation.

", + "DescribeThingTypeRequest": { + "base": "

The input for the DescribeThingType operation.

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

The output for the DescribeThingType operation.

", + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "TopicRule$description": "

The description of the rule.

", + "TopicRulePayload$description": "

The description of the rule.

" + } + }, + "DetachPolicyRequest": { + "base": null, + "refs": { + } + }, + "DetachPrincipalPolicyRequest": { + "base": "

The input for the DetachPrincipalPolicy operation.

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

The input for the DetachThingPrincipal operation.

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

The output from the DetachThingPrincipal operation.

", + "refs": { + } + }, + "DetailsKey": { + "base": null, + "refs": { + "DetailsMap$key": null + } + }, + "DetailsMap": { + "base": null, + "refs": { + "JobExecutionStatusDetails$detailsMap": "

The job execution status.

" + } + }, + "DetailsValue": { + "base": null, + "refs": { + "DetailsMap$value": null + } + }, + "DisableAllLogs": { + "base": null, + "refs": { + "GetV2LoggingOptionsResponse$disableAllLogs": "

Disables all logs.

", + "SetV2LoggingOptionsRequest$disableAllLogs": "

Set to true to disable all logs, otherwise set to false.

" + } + }, + "DisableTopicRuleRequest": { + "base": "

The input for the DisableTopicRuleRequest operation.

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

Describes an action to write to a DynamoDB table.

The tableName, hashKeyField, and rangeKeyField values must match the values used when you created the table.

The hashKeyValue and rangeKeyvalue fields use a substitution template syntax. These templates provide data at runtime. The syntax is as follows: ${sql-expression}.

You can specify any valid expression in a WHERE or SELECT clause, including JSON properties, comparisons, calculations, and functions. For example, the following field uses the third level of the topic:

\"hashKeyValue\": \"${topic(3)}\"

The following field uses the timestamp:

\"rangeKeyValue\": \"${timestamp()}\"

", + "refs": { + "Action$dynamoDB": "

Write to a DynamoDB table.

" + } + }, + "DynamoDBv2Action": { + "base": "

Describes an action to write to a DynamoDB table.

This DynamoDB action writes each attribute in the message payload into it's own column in the DynamoDB table.

", + "refs": { + "Action$dynamoDBv2": "

Write to a DynamoDB table. This is a new version of the DynamoDB action. It allows you to write each attribute in an MQTT message payload into a separate DynamoDB column.

" + } + }, + "DynamoKeyType": { + "base": null, + "refs": { + "DynamoDBAction$hashKeyType": "

The hash key type. Valid values are \"STRING\" or \"NUMBER\"

", + "DynamoDBAction$rangeKeyType": "

The range key type. Valid values are \"STRING\" or \"NUMBER\"

" + } + }, + "DynamoOperation": { + "base": null, + "refs": { + "DynamoDBAction$operation": "

The type of operation to be performed. This follows the substitution template, so it can be ${operation}, but the substitution must result in one of the following: INSERT, UPDATE, or DELETE.

" + } + }, + "EffectivePolicies": { + "base": null, + "refs": { + "GetEffectivePoliciesResponse$effectivePolicies": "

The effective policies.

" + } + }, + "EffectivePolicy": { + "base": "

The policy that has the effect on the authorization results.

", + "refs": { + "EffectivePolicies$member": null + } + }, + "ElasticsearchAction": { + "base": "

Describes an action that writes data to an Amazon Elasticsearch Service domain.

", + "refs": { + "Action$elasticsearch": "

Write data to an Amazon Elasticsearch Service domain.

" + } + }, + "ElasticsearchEndpoint": { + "base": null, + "refs": { + "ElasticsearchAction$endpoint": "

The endpoint of your Elasticsearch domain.

" + } + }, + "ElasticsearchId": { + "base": null, + "refs": { + "ElasticsearchAction$id": "

The unique identifier for the document you are storing.

" + } + }, + "ElasticsearchIndex": { + "base": null, + "refs": { + "ElasticsearchAction$index": "

The Elasticsearch index where you want to store your data.

" + } + }, + "ElasticsearchType": { + "base": null, + "refs": { + "ElasticsearchAction$type": "

The type of document you are storing.

" + } + }, + "EnableTopicRuleRequest": { + "base": "

The input for the EnableTopicRuleRequest operation.

", + "refs": { + } + }, + "Enabled": { + "base": null, + "refs": { + "Configuration$Enabled": "

True to enable the configuration.

" + } + }, "EndpointAddress": { "base": null, "refs": { "DescribeEndpointResponse$endpointAddress": "

The endpoint. The format of the endpoint is as follows: identifier.iot.region.amazonaws.com.

" } }, + "EndpointType": { + "base": null, + "refs": { + "DescribeEndpointRequest$endpointType": "

The endpoint type.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "DescribeThingRegistrationTaskResponse$message": "

The message.

" + } + }, + "EventConfigurations": { + "base": null, + "refs": { + "DescribeEventConfigurationsResponse$eventConfigurations": "

The event configurations.

", + "UpdateEventConfigurationsRequest$eventConfigurations": "

The new event configuration values.

" + } + }, + "EventType": { + "base": null, + "refs": { + "EventConfigurations$key": null + } + }, + "ExecutionNumber": { + "base": null, + "refs": { + "DescribeJobExecutionRequest$executionNumber": "

A string (consisting of the digits \"0\" through \"9\" which is used to specify a particular job execution on a particular device.

", + "JobExecution$executionNumber": "

A string (consisting of the digits \"0\" through \"9\") which identifies this particular job execution on this particular device. It can be used in commands which return or update job execution information.

", + "JobExecutionSummary$executionNumber": "

A string (consisting of the digits \"0\" through \"9\") which identifies this particular job execution on this particular device. It can be used later in commands which return or update job execution information.

" + } + }, + "ExpiresInSec": { + "base": null, + "refs": { + "PresignedUrlConfig$expiresInSec": "

How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 3600 seconds. Pre-signed URLs are generated when Jobs receives an MQTT request for the job document.

" + } + }, + "ExplicitDeny": { + "base": "

Information that explicitly denies authorization.

", + "refs": { + "Denied$explicitDeny": "

Information that explicitly denies the authorization.

" + } + }, + "FailedThings": { + "base": null, + "refs": { + "JobProcessDetails$numberOfFailedThings": "

The number of things that failed executing the job.

" + } + }, "FirehoseAction": { "base": "

Describes an action that writes data to an Amazon Kinesis Firehose stream.

", "refs": { @@ -703,12 +1255,54 @@ "AttributePayload$merge": "

Specifies whether the list of attributes provided in the AttributePayload is merged with the attributes stored in the registry, instead of overwriting them.

To remove an attribute, call UpdateThing with an empty attribute value.

The merge attribute is only valid when calling UpdateThing.

" } }, + "ForceDelete": { + "base": null, + "refs": { + "DeleteCertificateRequest$forceDelete": "

Forces a certificate request to be deleted.

" + } + }, "FunctionArn": { "base": null, "refs": { "LambdaAction$functionArn": "

The ARN of the Lambda function.

" } }, + "GEMaxResults": { + "base": null, + "refs": { + "ListTopicRulesRequest$maxResults": "

The maximum number of results to return.

" + } + }, + "GetEffectivePoliciesRequest": { + "base": null, + "refs": { + } + }, + "GetEffectivePoliciesResponse": { + "base": null, + "refs": { + } + }, + "GetIndexingConfigurationRequest": { + "base": null, + "refs": { + } + }, + "GetIndexingConfigurationResponse": { + "base": null, + "refs": { + } + }, + "GetJobDocumentRequest": { + "base": null, + "refs": { + } + }, + "GetJobDocumentResponse": { + "base": null, + "refs": { + } + }, "GetLoggingOptionsRequest": { "base": "

The input for the GetLoggingOptions operation.

", "refs": { @@ -759,6 +1353,22 @@ "refs": { } }, + "GetV2LoggingOptionsRequest": { + "base": null, + "refs": { + } + }, + "GetV2LoggingOptionsResponse": { + "base": null, + "refs": { + } + }, + "GroupNameAndArn": { + "base": "

The name and ARN of a group.

", + "refs": { + "ThingGroupNameAndArnList$member": null + } + }, "HashKeyField": { "base": null, "refs": { @@ -771,6 +1381,50 @@ "DynamoDBAction$hashKeyValue": "

The hash key value.

" } }, + "ImplicitDeny": { + "base": "

Information that implicitly denies authorization. When policy doesn't explicitly deny or allow an action on a resource it is considered an implicit deny.

", + "refs": { + "Denied$implicitDeny": "

Information that implicitly denies the authorization. When a policy doesn't explicitly deny or allow an action on a resource it is considered an implicit deny.

" + } + }, + "InProgressThings": { + "base": null, + "refs": { + "JobProcessDetails$numberOfInProgressThings": "

The number of things currently executing the job.

" + } + }, + "IndexName": { + "base": null, + "refs": { + "DescribeIndexRequest$indexName": "

The index name.

", + "DescribeIndexResponse$indexName": "

The index name.

", + "IndexNamesList$member": null, + "SearchIndexRequest$indexName": "

The search index name.

" + } + }, + "IndexNamesList": { + "base": null, + "refs": { + "ListIndicesResponse$indexNames": "

The index names.

" + } + }, + "IndexNotReadyException": { + "base": "

The index is not ready.

", + "refs": { + } + }, + "IndexSchema": { + "base": null, + "refs": { + "DescribeIndexResponse$schema": "

Contains a value that specifies the type of indexing performed. Valid values are:

  1. REGISTRY – Your thing index will contain only registry data.

  2. REGISTRY_AND_SHADOW - Your thing index will contain registry and shadow data.

" + } + }, + "IndexStatus": { + "base": null, + "refs": { + "DescribeIndexResponse$indexStatus": "

The index status.

" + } + }, "InternalException": { "base": "

An unexpected error has occurred.

", "refs": { @@ -781,11 +1435,27 @@ "refs": { } }, + "InvalidQueryException": { + "base": "

The query is invalid.

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

The request is not valid.

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

The response is invalid.

", + "refs": { + } + }, + "IsAuthenticated": { + "base": null, + "refs": { + "TestInvokeAuthorizerResponse$isAuthenticated": "

True if the token is authenticated, otherwise false.

" + } + }, "IsDefaultVersion": { "base": null, "refs": { @@ -803,18 +1473,195 @@ "TopicRulePayload$ruleDisabled": "

Specifies whether the rule is disabled.

" } }, + "Job": { + "base": "

The Job object contains details about a job.

", + "refs": { + "DescribeJobResponse$job": "

Information about the job.

" + } + }, + "JobArn": { + "base": null, + "refs": { + "AssociateTargetsWithJobResponse$jobArn": "

An ARN identifying the job.

", + "CancelJobResponse$jobArn": "

The job ARN.

", + "CreateJobResponse$jobArn": "

The job ARN.

", + "Job$jobArn": "

An ARN identifying the job with format \"arn:aws:iot:region:account:job/jobId\".

", + "JobSummary$jobArn": "

The job ARN.

" + } + }, + "JobDescription": { + "base": null, + "refs": { + "AssociateTargetsWithJobResponse$description": "

A short text description of the job.

", + "CancelJobResponse$description": "

A short text description of the job.

", + "CreateJobRequest$description": "

A short text description of the job.

", + "CreateJobResponse$description": "

The job description.

", + "Job$description": "

A short text description of the job.

" + } + }, + "JobDocument": { + "base": null, + "refs": { + "CreateJobRequest$document": "

The job document.

", + "GetJobDocumentResponse$document": "

The job document content.

" + } + }, + "JobDocumentParameters": { + "base": null, + "refs": { + "CreateJobRequest$documentParameters": "

Parameters for the job document.

", + "Job$documentParameters": "

The parameters specified for the job document.

" + } + }, + "JobDocumentSource": { + "base": null, + "refs": { + "CreateJobRequest$documentSource": "

An S3 link to the job document.

", + "DescribeJobResponse$documentSource": "

An S3 link to the job document.

" + } + }, + "JobExecution": { + "base": "

The job execution object represents the execution of a job on a particular device.

", + "refs": { + "DescribeJobExecutionResponse$execution": "

Information about the job execution.

" + } + }, + "JobExecutionStatus": { + "base": null, + "refs": { + "JobExecution$status": "

The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCESS, CANCELED, or REJECTED).

", + "JobExecutionSummary$status": "

The status of the job execution.

", + "ListJobExecutionsForJobRequest$status": "

The status of the job.

", + "ListJobExecutionsForThingRequest$status": "

An optional filter that lets you search for jobs that have the specified status.

" + } + }, + "JobExecutionStatusDetails": { + "base": "

Details of the job execution status.

", + "refs": { + "JobExecution$statusDetails": "

A collection of name/value pairs that describe the status of the job execution.

" + } + }, + "JobExecutionSummary": { + "base": "

The job execution summary.

", + "refs": { + "JobExecutionSummaryForJob$jobExecutionSummary": "

Contains a subset of information about a job execution.

", + "JobExecutionSummaryForThing$jobExecutionSummary": "

Contains a subset of information about a job execution.

" + } + }, + "JobExecutionSummaryForJob": { + "base": "

Contains a summary of information about job executions for a specific job.

", + "refs": { + "JobExecutionSummaryForJobList$member": null + } + }, + "JobExecutionSummaryForJobList": { + "base": null, + "refs": { + "ListJobExecutionsForJobResponse$executionSummaries": "

A list of job execution summaries.

" + } + }, + "JobExecutionSummaryForThing": { + "base": "

The job execution summary for a thing.

", + "refs": { + "JobExecutionSummaryForThingList$member": null + } + }, + "JobExecutionSummaryForThingList": { + "base": null, + "refs": { + "ListJobExecutionsForThingResponse$executionSummaries": "

A list of job execution summaries.

" + } + }, + "JobExecutionsRolloutConfig": { + "base": "

Allows you to create a staged rollout of a job.

", + "refs": { + "CreateJobRequest$jobExecutionsRolloutConfig": "

Allows you to create a staged rollout of the job.

", + "Job$jobExecutionsRolloutConfig": "

Allows you to create a staged rollout of a job.

" + } + }, + "JobId": { + "base": null, + "refs": { + "AssociateTargetsWithJobRequest$jobId": "

The unique identifier you assigned to this job when it was created.

", + "AssociateTargetsWithJobResponse$jobId": "

The unique identifier you assigned to this job when it was created.

", + "CancelJobRequest$jobId": "

The unique identifier you assigned to this job when it was created.

", + "CancelJobResponse$jobId": "

The unique identifier you assigned to this job when it was created.

", + "CreateJobRequest$jobId": "

A job identifier which must be unique for your AWS account. We recommend using a UUID. Alpha-numeric characters, \"-\" and \"_\" are valid for use here.

", + "CreateJobResponse$jobId": "

The unique identifier you assigned to this job.

", + "DescribeJobExecutionRequest$jobId": "

The unique identifier you assigned to this job when it was created.

", + "DescribeJobRequest$jobId": "

The unique identifier you assigned to this job when it was created.

", + "GetJobDocumentRequest$jobId": "

The unique identifier you assigned to this job when it was created.

", + "Job$jobId": "

The unique identifier you assigned to this job when it was created.

", + "JobExecution$jobId": "

The unique identifier you assigned to the job when it was created.

", + "JobExecutionSummaryForThing$jobId": "

The unique identifier you assigned to this job when it was created.

", + "JobSummary$jobId": "

The unique identifier you assigned to this job when it was created.

", + "ListJobExecutionsForJobRequest$jobId": "

The unique identifier you assigned to this job when it was created.

" + } + }, + "JobProcessDetails": { + "base": "

The job process details.

", + "refs": { + "Job$jobProcessDetails": "

Details about the job process.

" + } + }, + "JobStatus": { + "base": null, + "refs": { + "Job$status": "

The status of the job, one of IN_PROGRESS, CANCELED, or COMPLETED.

", + "JobSummary$status": "

The job summary status.

", + "ListJobsRequest$status": "

An optional filter that lets you search for jobs that have the specified status.

" + } + }, + "JobSummary": { + "base": "

The job summary.

", + "refs": { + "JobSummaryList$member": null + } + }, + "JobSummaryList": { + "base": null, + "refs": { + "ListJobsResponse$jobs": "

A list of jobs.

" + } + }, + "JobTargets": { + "base": null, + "refs": { + "AssociateTargetsWithJobRequest$targets": "

A list of thing group ARNs that define the targets of the job.

", + "CreateJobRequest$targets": "

A list of things and thing groups to which the job should be sent.

", + "Job$targets": "

A list of IoT things and thing groups to which the job should be sent.

" + } + }, + "JsonDocument": { + "base": null, + "refs": { + "ThingDocument$shadow": "

The thing shadow.

" + } + }, "Key": { "base": null, "refs": { "S3Action$key": "

The object key.

" } }, + "KeyName": { + "base": null, + "refs": { + "PublicKeyMap$key": null + } + }, "KeyPair": { "base": "

Describes a key pair.

", "refs": { "CreateKeysAndCertificateResponse$keyPair": "

The generated key pair.

" } }, + "KeyValue": { + "base": null, + "refs": { + "PublicKeyMap$value": null + } + }, "KinesisAction": { "base": "

Describes an action to write data to an Amazon Kinesis stream.

", "refs": { @@ -827,11 +1674,46 @@ "Action$lambda": "

Invoke a Lambda function.

" } }, + "LaserMaxResults": { + "base": null, + "refs": { + "ListJobExecutionsForJobRequest$maxResults": "

The maximum number of results to be returned per request.

", + "ListJobExecutionsForThingRequest$maxResults": "

The maximum number of results to be returned per request.

", + "ListJobsRequest$maxResults": "

The maximum number of results to return per request.

" + } + }, + "LastModifiedDate": { + "base": null, + "refs": { + "DescribeEventConfigurationsResponse$lastModifiedDate": "

The date the event configurations were last modified.

", + "DescribeThingRegistrationTaskResponse$lastModifiedDate": "

The date when the task was last modified.

" + } + }, "LimitExceededException": { "base": "

The number of attached entities exceeds the limit.

", "refs": { } }, + "ListAttachedPoliciesRequest": { + "base": null, + "refs": { + } + }, + "ListAttachedPoliciesResponse": { + "base": null, + "refs": { + } + }, + "ListAuthorizersRequest": { + "base": null, + "refs": { + } + }, + "ListAuthorizersResponse": { + "base": null, + "refs": { + } + }, "ListCACertificatesRequest": { "base": "

Input for the ListCACertificates operation.

", "refs": { @@ -862,6 +1744,46 @@ "refs": { } }, + "ListIndicesRequest": { + "base": null, + "refs": { + } + }, + "ListIndicesResponse": { + "base": null, + "refs": { + } + }, + "ListJobExecutionsForJobRequest": { + "base": null, + "refs": { + } + }, + "ListJobExecutionsForJobResponse": { + "base": null, + "refs": { + } + }, + "ListJobExecutionsForThingRequest": { + "base": null, + "refs": { + } + }, + "ListJobExecutionsForThingResponse": { + "base": null, + "refs": { + } + }, + "ListJobsRequest": { + "base": null, + "refs": { + } + }, + "ListJobsResponse": { + "base": null, + "refs": { + } + }, "ListOutgoingCertificatesRequest": { "base": "

The input to the ListOutgoingCertificates operation.

", "refs": { @@ -882,53 +1804,113 @@ "refs": { } }, - "ListPolicyPrincipalsRequest": { - "base": "

The input for the ListPolicyPrincipals operation.

", + "ListPolicyPrincipalsRequest": { + "base": "

The input for the ListPolicyPrincipals operation.

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

The output from the ListPolicyPrincipals operation.

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

The input for the ListPolicyVersions operation.

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

The output from the ListPolicyVersions operation.

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

The input for the ListPrincipalPolicies operation.

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

The output from the ListPrincipalPolicies operation.

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

The input for the ListPrincipalThings operation.

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

The output from the ListPrincipalThings operation.

", + "refs": { + } + }, + "ListRoleAliasesRequest": { + "base": null, + "refs": { + } + }, + "ListRoleAliasesResponse": { + "base": null, + "refs": { + } + }, + "ListTargetsForPolicyRequest": { + "base": null, + "refs": { + } + }, + "ListTargetsForPolicyResponse": { + "base": null, + "refs": { + } + }, + "ListThingGroupsForThingRequest": { + "base": null, "refs": { } }, - "ListPolicyPrincipalsResponse": { - "base": "

The output from the ListPolicyPrincipals operation.

", + "ListThingGroupsForThingResponse": { + "base": null, "refs": { } }, - "ListPolicyVersionsRequest": { - "base": "

The input for the ListPolicyVersions operation.

", + "ListThingGroupsRequest": { + "base": null, "refs": { } }, - "ListPolicyVersionsResponse": { - "base": "

The output from the ListPolicyVersions operation.

", + "ListThingGroupsResponse": { + "base": null, "refs": { } }, - "ListPrincipalPoliciesRequest": { - "base": "

The input for the ListPrincipalPolicies operation.

", + "ListThingPrincipalsRequest": { + "base": "

The input for the ListThingPrincipal operation.

", "refs": { } }, - "ListPrincipalPoliciesResponse": { - "base": "

The output from the ListPrincipalPolicies operation.

", + "ListThingPrincipalsResponse": { + "base": "

The output from the ListThingPrincipals operation.

", "refs": { } }, - "ListPrincipalThingsRequest": { - "base": "

The input for the ListPrincipalThings operation.

", + "ListThingRegistrationTaskReportsRequest": { + "base": null, "refs": { } }, - "ListPrincipalThingsResponse": { - "base": "

The output from the ListPrincipalThings operation.

", + "ListThingRegistrationTaskReportsResponse": { + "base": null, "refs": { } }, - "ListThingPrincipalsRequest": { - "base": "

The input for the ListThingPrincipal operation.

", + "ListThingRegistrationTasksRequest": { + "base": null, "refs": { } }, - "ListThingPrincipalsResponse": { - "base": "

The output from the ListThingPrincipals operation.

", + "ListThingRegistrationTasksResponse": { + "base": null, "refs": { } }, @@ -942,6 +1924,16 @@ "refs": { } }, + "ListThingsInThingGroupRequest": { + "base": null, + "refs": { + } + }, + "ListThingsInThingGroupResponse": { + "base": null, + "refs": { + } + }, "ListThingsRequest": { "base": "

The input for the ListThings operation.

", "refs": { @@ -962,11 +1954,59 @@ "refs": { } }, + "ListV2LoggingLevelsRequest": { + "base": null, + "refs": { + } + }, + "ListV2LoggingLevelsResponse": { + "base": null, + "refs": { + } + }, "LogLevel": { "base": null, "refs": { "GetLoggingOptionsResponse$logLevel": "

The logging level.

", - "LoggingOptionsPayload$logLevel": "

The logging level.

" + "GetV2LoggingOptionsResponse$defaultLogLevel": "

The default log level.

", + "LogTargetConfiguration$logLevel": "

The logging level.

", + "LoggingOptionsPayload$logLevel": "

The log level.

", + "SetV2LoggingLevelRequest$logLevel": "

The log level.

", + "SetV2LoggingOptionsRequest$defaultLogLevel": "

The default logging level.

" + } + }, + "LogTarget": { + "base": "

A log target.

", + "refs": { + "LogTargetConfiguration$logTarget": "

A log target

", + "SetV2LoggingLevelRequest$logTarget": "

The log target.

" + } + }, + "LogTargetConfiguration": { + "base": "

The target configuration.

", + "refs": { + "LogTargetConfigurations$member": null + } + }, + "LogTargetConfigurations": { + "base": null, + "refs": { + "ListV2LoggingLevelsResponse$logTargetConfigurations": "

The logging configuration for a target.

" + } + }, + "LogTargetName": { + "base": null, + "refs": { + "DeleteV2LoggingLevelRequest$targetName": "

The name of the resource for which you are configuring logging.

", + "LogTarget$targetName": "

The target name.

" + } + }, + "LogTargetType": { + "base": null, + "refs": { + "DeleteV2LoggingLevelRequest$targetType": "

The type of resource for which you are configuring logging. Must be THING_Group.

", + "ListV2LoggingLevelsRequest$targetType": "

The type of resource for which you are configuring logging. Must be THING_Group.

", + "LogTarget$targetType": "

The target type.

" } }, "LoggingOptionsPayload": { @@ -983,6 +2023,10 @@ "Marker": { "base": null, "refs": { + "ListAttachedPoliciesRequest$marker": "

The token to retrieve the next set of results.

", + "ListAttachedPoliciesResponse$nextMarker": "

The token to retrieve the next set of results, or ``null`` if there are no more results.

", + "ListAuthorizersRequest$marker": "

A marker used to get the next set of results.

", + "ListAuthorizersResponse$nextMarker": "

A marker used to get the next set of results.

", "ListCACertificatesRequest$marker": "

The marker for the next set of results.

", "ListCACertificatesResponse$nextMarker": "

The current position within the list of CA certificates.

", "ListCertificatesByCARequest$marker": "

The marker for the next set of results.

", @@ -996,13 +2040,17 @@ "ListPolicyPrincipalsRequest$marker": "

The marker for the next set of results.

", "ListPolicyPrincipalsResponse$nextMarker": "

The marker for the next set of results, or null if there are no additional results.

", "ListPrincipalPoliciesRequest$marker": "

The marker for the next set of results.

", - "ListPrincipalPoliciesResponse$nextMarker": "

The marker for the next set of results, or null if there are no additional results.

" + "ListPrincipalPoliciesResponse$nextMarker": "

The marker for the next set of results, or null if there are no additional results.

", + "ListRoleAliasesRequest$marker": "

A marker used to get the next set of results.

", + "ListRoleAliasesResponse$nextMarker": "

A marker used to get the next set of results.

", + "ListTargetsForPolicyRequest$marker": "

A marker used to get the next set of results.

", + "ListTargetsForPolicyResponse$nextMarker": "

A marker used to get the next set of results.

" } }, - "MaxResults": { + "MaxJobExecutionsPerMin": { "base": null, "refs": { - "ListTopicRulesRequest$maxResults": "

The maximum number of results to return.

" + "JobExecutionsRolloutConfig$maximumPerMinute": "

The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout.

" } }, "Message": { @@ -1051,28 +2099,69 @@ "CloudwatchMetricAction$metricValue": "

The CloudWatch metric value.

" } }, + "MissingContextValue": { + "base": null, + "refs": { + "MissingContextValues$member": null + } + }, + "MissingContextValues": { + "base": null, + "refs": { + "AuthResult$missingContextValues": "

Contains any missing context values found while evaluating policy.

" + } + }, "NextToken": { "base": null, "refs": { - "ListPrincipalThingsRequest$nextToken": "

The token for the next set of results, or null if there are no additional results.

", - "ListPrincipalThingsResponse$nextToken": "

The token for the next set of results, or null if there are no additional results.

", + "ListIndicesRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListIndicesResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListJobExecutionsForJobRequest$nextToken": "

The token to retrieve the next set of results.

", + "ListJobExecutionsForJobResponse$nextToken": "

The token for the next set of results, or null if there are no additional results.

", + "ListJobExecutionsForThingRequest$nextToken": "

The token to retrieve the next set of results.

", + "ListJobExecutionsForThingResponse$nextToken": "

The token for the next set of results, or null if there are no additional results.

", + "ListJobsRequest$nextToken": "

The token to retrieve the next set of results.

", + "ListJobsResponse$nextToken": "

The token for the next set of results, or null if there are no additional results.

", + "ListPrincipalThingsRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListPrincipalThingsResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListThingGroupsForThingRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListThingGroupsForThingResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListThingGroupsRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListThingGroupsResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListThingRegistrationTaskReportsRequest$nextToken": "

The token to retrieve the next set of results.

", + "ListThingRegistrationTaskReportsResponse$nextToken": "

The token to retrieve the next set of results.

", + "ListThingRegistrationTasksRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListThingRegistrationTasksResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", "ListThingTypesRequest$nextToken": "

The token for the next set of results, or null if there are no additional results.

", "ListThingTypesResponse$nextToken": "

The token for the next set of results, or null if there are no additional results.

", - "ListThingsRequest$nextToken": "

The token for the next set of results, or null if there are no additional results.

", - "ListThingsResponse$nextToken": "

The token for the next set of results, or null if there are no additional results.

", + "ListThingsInThingGroupRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListThingsInThingGroupResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListThingsRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListThingsResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", "ListTopicRulesRequest$nextToken": "

A token used to retrieve the next value.

", - "ListTopicRulesResponse$nextToken": "

A token used to retrieve the next value.

" + "ListTopicRulesResponse$nextToken": "

A token used to retrieve the next value.

", + "ListV2LoggingLevelsRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "ListV2LoggingLevelsResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "SearchIndexRequest$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

", + "SearchIndexResponse$nextToken": "

The token used to get the next set of results, or null if there are no additional results.

" + } + }, + "NotConfiguredException": { + "base": "

The resource is not configured.

", + "refs": { } }, "OptionalVersion": { "base": null, "refs": { + "DeleteThingGroupRequest$expectedVersion": "

The expected version of the thing group to delete.

", "DeleteThingRequest$expectedVersion": "

The expected version of the thing record in the registry. If the version of the record in the registry does not match the expected version specified in the request, the DeleteThing request is rejected with a VersionConflictException.

", + "UpdateThingGroupRequest$expectedVersion": "

The expected version of the thing group. If this does not match the version of the thing group being updated, the update will fail.

", "UpdateThingRequest$expectedVersion": "

The expected version of the thing record in the registry. If the version of the record in the registry does not match the expected version specified in the request, the UpdateThing request is rejected with a VersionConflictException.

" } }, "OutgoingCertificate": { - "base": "

A certificate that has been transfered but not yet accepted.

", + "base": "

A certificate that has been transferred but not yet accepted.

", "refs": { "OutgoingCertificates$member": null } @@ -1080,19 +2169,47 @@ "OutgoingCertificates": { "base": null, "refs": { - "ListOutgoingCertificatesResponse$outgoingCertificates": "

The certificates that are being transfered but not yet accepted.

" + "ListOutgoingCertificatesResponse$outgoingCertificates": "

The certificates that are being transferred but not yet accepted.

" } }, "PageSize": { "base": null, "refs": { + "ListAttachedPoliciesRequest$pageSize": "

The maximum number of results to be returned per request.

", + "ListAuthorizersRequest$pageSize": "

The maximum number of results to return at one time.

", "ListCACertificatesRequest$pageSize": "

The result page size.

", "ListCertificatesByCARequest$pageSize": "

The result page size.

", "ListCertificatesRequest$pageSize": "

The result page size.

", "ListOutgoingCertificatesRequest$pageSize": "

The result page size.

", "ListPoliciesRequest$pageSize": "

The result page size.

", "ListPolicyPrincipalsRequest$pageSize": "

The result page size.

", - "ListPrincipalPoliciesRequest$pageSize": "

The result page size.

" + "ListPrincipalPoliciesRequest$pageSize": "

The result page size.

", + "ListRoleAliasesRequest$pageSize": "

The maximum number of results to return at one time.

", + "ListTargetsForPolicyRequest$pageSize": "

The maximum number of results to return at one time.

" + } + }, + "Parameter": { + "base": null, + "refs": { + "Parameters$key": null + } + }, + "ParameterKey": { + "base": null, + "refs": { + "JobDocumentParameters$key": null + } + }, + "ParameterValue": { + "base": null, + "refs": { + "JobDocumentParameters$value": null + } + }, + "Parameters": { + "base": null, + "refs": { + "RegisterThingRequest$parameters": "

The parameters for provisioning a thing.

" } }, "PartitionKey": { @@ -1107,9 +2224,19 @@ "DynamoDBAction$payloadField": "

The action payload. This name can be customized.

" } }, + "Percentage": { + "base": null, + "refs": { + "DescribeThingRegistrationTaskResponse$percentageProgress": "

The progress of the bulk provisioning task expressed as a percentage.

" + } + }, "Policies": { "base": null, "refs": { + "Allowed$policies": "

A list of policies that allowed the authentication.

", + "ExplicitDeny$policies": "

The policies that denied the authorization.

", + "ImplicitDeny$policies": "

Policies that don't contain a matching allow or deny statement for the specified action on the specified resource.

", + "ListAttachedPoliciesResponse$policies": "

The policies.

", "ListPoliciesResponse$policies": "

The descriptions of the policies.

", "ListPrincipalPoliciesResponse$policies": "

The policies.

" } @@ -1125,6 +2252,7 @@ "refs": { "CreatePolicyResponse$policyArn": "

The policy ARN.

", "CreatePolicyVersionResponse$policyArn": "

The policy ARN.

", + "EffectivePolicy$policyArn": "

The policy ARN.

", "GetPolicyResponse$policyArn": "

The policy ARN.

", "GetPolicyVersionResponse$policyArn": "

The policy ARN.

", "Policy$policyArn": "

The policy ARN.

" @@ -1135,32 +2263,67 @@ "refs": { "CreatePolicyRequest$policyDocument": "

The JSON document that describes the policy. policyDocument must have a minimum length of 1, with a maximum length of 2048, excluding whitespace.

", "CreatePolicyResponse$policyDocument": "

The JSON document that describes the policy.

", - "CreatePolicyVersionRequest$policyDocument": "

The JSON document that describes the policy. Minimum length of 1. Maximum length of 2048, excluding whitespaces

", + "CreatePolicyVersionRequest$policyDocument": "

The JSON document that describes the policy. Minimum length of 1. Maximum length of 2048, excluding whitespace.

", "CreatePolicyVersionResponse$policyDocument": "

The JSON document that describes the policy.

", + "EffectivePolicy$policyDocument": "

The IAM policy document.

", "GetPolicyResponse$policyDocument": "

The JSON document that describes the policy.

", - "GetPolicyVersionResponse$policyDocument": "

The JSON document that describes the policy.

" + "GetPolicyVersionResponse$policyDocument": "

The JSON document that describes the policy.

", + "PolicyDocuments$member": null + } + }, + "PolicyDocuments": { + "base": null, + "refs": { + "TestInvokeAuthorizerResponse$policyDocuments": "

IAM policy documents.

" } }, "PolicyName": { "base": null, "refs": { + "AttachPolicyRequest$policyName": "

The name of the policy to attach.

", "AttachPrincipalPolicyRequest$policyName": "

The policy name.

", "CreatePolicyRequest$policyName": "

The policy name.

", "CreatePolicyResponse$policyName": "

The policy name.

", "CreatePolicyVersionRequest$policyName": "

The policy name.

", "DeletePolicyRequest$policyName": "

The name of the policy to delete.

", "DeletePolicyVersionRequest$policyName": "

The name of the policy.

", + "DetachPolicyRequest$policyName": "

The policy to detach.

", "DetachPrincipalPolicyRequest$policyName": "

The name of the policy to detach.

", + "EffectivePolicy$policyName": "

The policy name.

", "GetPolicyRequest$policyName": "

The name of the policy.

", "GetPolicyResponse$policyName": "

The policy name.

", "GetPolicyVersionRequest$policyName": "

The name of the policy.

", "GetPolicyVersionResponse$policyName": "

The policy name.

", "ListPolicyPrincipalsRequest$policyName": "

The policy name.

", "ListPolicyVersionsRequest$policyName": "

The policy name.

", + "ListTargetsForPolicyRequest$policyName": "

The policy name.

", "Policy$policyName": "

The policy name.

", + "PolicyNames$member": null, "SetDefaultPolicyVersionRequest$policyName": "

The policy name.

" } }, + "PolicyNames": { + "base": null, + "refs": { + "TestAuthorizationRequest$policyNamesToAdd": "

When testing custom authorization, the policies specified here are treated as if they are attached to the principal being authorized.

", + "TestAuthorizationRequest$policyNamesToSkip": "

When testing custom authorization, the policies specified here are treated as if they are not attached to the principal being authorized.

" + } + }, + "PolicyTarget": { + "base": null, + "refs": { + "AttachPolicyRequest$target": "

The identity to which the policy is attached.

", + "DetachPolicyRequest$target": "

The target from which the policy will be detached.

", + "ListAttachedPoliciesRequest$target": "

The group for which the policies will be listed.

", + "PolicyTargets$member": null + } + }, + "PolicyTargets": { + "base": null, + "refs": { + "ListTargetsForPolicyResponse$targets": "

The policy targets.

" + } + }, "PolicyVersion": { "base": "

Describes a policy version.

", "refs": { @@ -1186,6 +2349,13 @@ "ListPolicyVersionsResponse$policyVersions": "

The policy versions.

" } }, + "PresignedUrlConfig": { + "base": "

Configuration for pre-signed S3 URLs.

", + "refs": { + "CreateJobRequest$presignedUrlConfig": "

Configuration information for pre-signed S3 URLs.

", + "Job$presignedUrlConfig": "

Configuration for pre-signed S3 URLs.

" + } + }, "Principal": { "base": null, "refs": { @@ -1193,8 +2363,10 @@ "AttachThingPrincipalRequest$principal": "

The principal, such as a certificate or other credential.

", "DetachPrincipalPolicyRequest$principal": "

The principal.

If the principal is a certificate, specify the certificate ARN. If the principal is an Amazon Cognito identity, specify the identity ID.

", "DetachThingPrincipalRequest$principal": "

If the principal is a certificate, this value must be ARN of the certificate. If the principal is an Amazon Cognito identity, this value must be the ID of the Amazon Cognito identity.

", + "GetEffectivePoliciesRequest$principal": "

The principal.

", "ListPrincipalPoliciesRequest$principal": "

The principal.

", - "ListPrincipalThingsRequest$principal": "

The principal.

" + "ListPrincipalThingsRequest$principal": "

The principal.

", + "TestAuthorizationRequest$principal": "

The principal.

" } }, "PrincipalArn": { @@ -1203,6 +2375,12 @@ "Principals$member": null } }, + "PrincipalId": { + "base": null, + "refs": { + "TestInvokeAuthorizerResponse$principalId": "

The principal ID.

" + } + }, "Principals": { "base": null, "refs": { @@ -1216,24 +2394,69 @@ "KeyPair$PrivateKey": "

The private key.

" } }, + "ProcessingTargetName": { + "base": null, + "refs": { + "ProcessingTargetNameList$member": null + } + }, + "ProcessingTargetNameList": { + "base": null, + "refs": { + "JobProcessDetails$processingTargets": "

The devices on which the job is executing.

" + } + }, "PublicKey": { "base": null, "refs": { "KeyPair$PublicKey": "

The public key.

" } }, + "PublicKeyMap": { + "base": null, + "refs": { + "AuthorizerDescription$tokenSigningPublicKeys": "

The public keys used to validate the token signature returned by your custom authentication service.

", + "CreateAuthorizerRequest$tokenSigningPublicKeys": "

The public keys used to verify the digital signature returned by your custom authentication service.

", + "UpdateAuthorizerRequest$tokenSigningPublicKeys": "

The public keys used to verify the token signature.

" + } + }, "PutItemInput": { "base": "

The input for the DynamoActionVS action that specifies the DynamoDB table to which the message data will be written.

", "refs": { "DynamoDBv2Action$putItem": "

Specifies the DynamoDB table to which the message data will be written. For example:

{ \"dynamoDBv2\": { \"roleArn\": \"aws:iam:12341251:my-role\" \"putItem\": { \"tableName\": \"my-table\" } } }

Each attribute in the message payload will be written to a separate column in the DynamoDB database.

" } }, + "QueryMaxResults": { + "base": null, + "refs": { + "ListIndicesRequest$maxResults": "

The maximum number of results to return at one time.

", + "SearchIndexRequest$maxResults": "

The maximum number of results to return at one time.

" + } + }, + "QueryString": { + "base": null, + "refs": { + "SearchIndexRequest$queryString": "

The search query string.

" + } + }, + "QueryVersion": { + "base": null, + "refs": { + "SearchIndexRequest$queryVersion": "

The query version.

" + } + }, "QueueUrl": { "base": null, "refs": { "SqsAction$queueUrl": "

The URL of the Amazon SQS queue.

" } }, + "QueuedThings": { + "base": null, + "refs": { + "JobProcessDetails$numberOfQueuedThings": "

The number of things that are awaiting execution of the job.

" + } + }, "RangeKeyField": { "base": null, "refs": { @@ -1246,6 +2469,19 @@ "DynamoDBAction$rangeKeyValue": "

The range key value.

" } }, + "Recursive": { + "base": null, + "refs": { + "ListAttachedPoliciesRequest$recursive": "

When true, recursively list attached policies.

", + "ListThingsInThingGroupRequest$recursive": "

When true, list things in this thing group and in all child groups as well.

" + } + }, + "RecursiveWithoutDefault": { + "base": null, + "refs": { + "ListThingGroupsRequest$recursive": "

If true, return child groups as well.

" + } + }, "RegisterCACertificateRequest": { "base": "

The input to the RegisterCACertificate operation.

", "refs": { @@ -1256,65 +2492,216 @@ "refs": { } }, - "RegisterCertificateRequest": { - "base": "

The input to the RegisterCertificate operation.

", + "RegisterCertificateRequest": { + "base": "

The input to the RegisterCertificate operation.

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

The output from the RegisterCertificate operation.

", + "refs": { + } + }, + "RegisterThingRequest": { + "base": null, + "refs": { + } + }, + "RegisterThingResponse": { + "base": null, + "refs": { + } + }, + "RegistrationCode": { + "base": null, + "refs": { + "GetRegistrationCodeResponse$registrationCode": "

The CA certificate registration code.

" + } + }, + "RegistrationCodeValidationException": { + "base": "

The registration code is invalid.

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

The registration configuration.

", + "refs": { + "DescribeCACertificateResponse$registrationConfig": "

Information about the registration configuration.

", + "RegisterCACertificateRequest$registrationConfig": "

Information about the registration configuration.

", + "UpdateCACertificateRequest$registrationConfig": "

Information about the registration configuration.

" + } + }, + "RegistryMaxResults": { + "base": null, + "refs": { + "ListPrincipalThingsRequest$maxResults": "

The maximum number of results to return in this operation.

", + "ListThingGroupsForThingRequest$maxResults": "

The maximum number of results to return at one time.

", + "ListThingGroupsRequest$maxResults": "

The maximum number of results to return at one time.

", + "ListThingRegistrationTaskReportsRequest$maxResults": "

The maximum number of results to return per request.

", + "ListThingRegistrationTasksRequest$maxResults": "

The maximum number of results to return at one time.

", + "ListThingTypesRequest$maxResults": "

The maximum number of results to return in this operation.

", + "ListThingsInThingGroupRequest$maxResults": "

The maximum number of results to return at one time.

", + "ListThingsRequest$maxResults": "

The maximum number of results to return in this operation.

" + } + }, + "RegistryS3BucketName": { + "base": null, + "refs": { + "DescribeThingRegistrationTaskResponse$inputFileBucket": "

The S3 bucket that contains the input file.

", + "StartThingRegistrationTaskRequest$inputFileBucket": "

The S3 bucket that contains the input file.

" + } + }, + "RegistryS3KeyName": { + "base": null, + "refs": { + "DescribeThingRegistrationTaskResponse$inputFileKey": "

The input file key.

", + "StartThingRegistrationTaskRequest$inputFileKey": "

The name of input file within the S3 bucket. This file contains a newline delimited JSON file. Each line contains the parameter values to provision one device (thing).

" + } + }, + "RejectCertificateTransferRequest": { + "base": "

The input for the RejectCertificateTransfer operation.

", + "refs": { + } + }, + "RejectedThings": { + "base": null, + "refs": { + "JobProcessDetails$numberOfRejectedThings": "

The number of things that rejected the job.

" + } + }, + "RemoveAutoRegistration": { + "base": null, + "refs": { + "UpdateCACertificateRequest$removeAutoRegistration": "

If true, remove auto registration.

" + } + }, + "RemoveThingFromThingGroupRequest": { + "base": null, + "refs": { + } + }, + "RemoveThingFromThingGroupResponse": { + "base": null, + "refs": { + } + }, + "RemoveThingType": { + "base": null, + "refs": { + "UpdateThingRequest$removeThingType": "

Remove a thing type association. If true, the association is removed.

" + } + }, + "RemovedThings": { + "base": null, + "refs": { + "JobProcessDetails$numberOfRemovedThings": "

The number of things that are no longer scheduled to execute the job because they have been deleted or have been removed from the group that was a target of the job.

" + } + }, + "ReplaceTopicRuleRequest": { + "base": "

The input for the ReplaceTopicRule operation.

", + "refs": { + } + }, + "ReportType": { + "base": null, + "refs": { + "ListThingRegistrationTaskReportsRequest$reportType": "

The type of task report.

", + "ListThingRegistrationTaskReportsResponse$reportType": "

The type of task report.

" + } + }, + "RepublishAction": { + "base": "

Describes an action to republish to another topic.

", + "refs": { + "Action$republish": "

Publish to another MQTT topic.

" + } + }, + "Resource": { + "base": null, + "refs": { + "Resources$member": null + } + }, + "ResourceAlreadyExistsException": { + "base": "

The resource already exists.

", + "refs": { + } + }, + "ResourceArn": { + "base": null, "refs": { + "ResourceArns$value": null } }, - "RegisterCertificateResponse": { - "base": "

The output from the RegisterCertificate operation.

", + "ResourceArns": { + "base": null, "refs": { + "RegisterThingResponse$resourceArns": "

ARNs for the generated resources.

" } }, - "RegistrationCode": { + "ResourceLogicalId": { "base": null, "refs": { - "GetRegistrationCodeResponse$registrationCode": "

The CA certificate registration code.

" + "ResourceArns$key": null } }, - "RegistrationCodeValidationException": { - "base": "

The registration code is invalid.

", + "ResourceNotFoundException": { + "base": "

The specified resource does not exist.

", "refs": { } }, - "RegistryMaxResults": { - "base": null, + "ResourceRegistrationFailureException": { + "base": "

The resource registration failed.

", "refs": { - "ListPrincipalThingsRequest$maxResults": "

The maximum number of results to return in this operation.

", - "ListThingTypesRequest$maxResults": "

The maximum number of results to return in this operation.

", - "ListThingsRequest$maxResults": "

The maximum number of results to return in this operation.

" } }, - "RejectCertificateTransferRequest": { - "base": "

The input for the RejectCertificateTransfer operation.

", + "Resources": { + "base": null, "refs": { + "AuthInfo$resources": "

The resources for which the principal is being authorized to perform the specified action.

" } }, - "RemoveThingType": { + "RoleAlias": { "base": null, "refs": { - "UpdateThingRequest$removeThingType": "

Remove a thing type association. If true, the assocation is removed.

" + "CreateRoleAliasRequest$roleAlias": "

The role alias that points to a role ARN. This allows you to change the role without having to update the device.

", + "CreateRoleAliasResponse$roleAlias": "

The role alias.

", + "DeleteRoleAliasRequest$roleAlias": "

The role alias to delete.

", + "DescribeRoleAliasRequest$roleAlias": "

The role alias to describe.

", + "RoleAliasDescription$roleAlias": "

The role alias.

", + "RoleAliases$member": null, + "UpdateRoleAliasRequest$roleAlias": "

The role alias to update.

", + "UpdateRoleAliasResponse$roleAlias": "

The role alias.

" } }, - "ReplaceTopicRuleRequest": { - "base": "

The input for the ReplaceTopicRule operation.

", + "RoleAliasArn": { + "base": null, "refs": { + "CreateRoleAliasResponse$roleAliasArn": "

The role alias ARN.

", + "UpdateRoleAliasResponse$roleAliasArn": "

The role alias ARN.

" } }, - "RepublishAction": { - "base": "

Describes an action to republish to another topic.

", + "RoleAliasDescription": { + "base": "

Role alias description.

", "refs": { - "Action$republish": "

Publish to another MQTT topic.

" + "DescribeRoleAliasResponse$roleAliasDescription": "

The role alias description.

" } }, - "ResourceAlreadyExistsException": { - "base": "

The resource already exists.

", + "RoleAliases": { + "base": null, "refs": { + "ListRoleAliasesResponse$roleAliases": "

The role aliases.

" } }, - "ResourceNotFoundException": { - "base": "

The specified resource does not exist.

", + "RoleArn": { + "base": null, "refs": { + "CreateRoleAliasRequest$roleArn": "

The role ARN.

", + "DescribeThingRegistrationTaskResponse$roleArn": "

The role ARN that grants access to the input file bucket.

", + "PresignedUrlConfig$roleArn": "

The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.

", + "RegistrationConfig$roleArn": "

The ARN of the role.

", + "RoleAliasDescription$roleArn": "

The role ARN.

", + "StartThingRegistrationTaskRequest$roleArn": "

The IAM role ARN that grants permission the input file.

", + "UpdateRoleAliasRequest$roleArn": "

The role ARN.

" } }, "RuleArn": { @@ -1343,6 +2730,18 @@ "Action$s3": "

Write to an Amazon S3 bucket.

" } }, + "S3FileUrl": { + "base": null, + "refs": { + "S3FileUrlList$member": null + } + }, + "S3FileUrlList": { + "base": null, + "refs": { + "ListThingRegistrationTaskReportsResponse$resourceLinks": "

Links to the task resources.

" + } + }, "SQL": { "base": null, "refs": { @@ -1368,12 +2767,29 @@ "SalesforceAction$token": "

The token used to authenticate access to the Salesforce IoT Cloud Input Stream. The token is available from the Salesforce IoT Cloud platform after creation of the Input Stream.

" } }, + "SearchIndexRequest": { + "base": null, + "refs": { + } + }, + "SearchIndexResponse": { + "base": null, + "refs": { + } + }, "SearchableAttributes": { "base": null, "refs": { "ThingTypeProperties$searchableAttributes": "

A list of searchable thing attribute names.

" } }, + "Seconds": { + "base": null, + "refs": { + "TestInvokeAuthorizerResponse$refreshAfterInSeconds": "

The number of seconds after which the temporary credentials are refreshed.

", + "TestInvokeAuthorizerResponse$disconnectAfterInSeconds": "

The number of seconds after which the connection is terminated.

" + } + }, "ServiceUnavailableException": { "base": "

The service is temporarily unavailable.

", "refs": { @@ -1400,6 +2816,16 @@ "CreatePolicyVersionRequest$setAsDefault": "

Specifies whether the policy version is set as the default. When this parameter is true, the new policy version becomes the operative version (that is, the version that is in effect for the certificates to which the policy is attached).

" } }, + "SetDefaultAuthorizerRequest": { + "base": null, + "refs": { + } + }, + "SetDefaultAuthorizerResponse": { + "base": null, + "refs": { + } + }, "SetDefaultPolicyVersionRequest": { "base": "

The input for the SetDefaultPolicyVersion operation.

", "refs": { @@ -1410,6 +2836,22 @@ "refs": { } }, + "SetV2LoggingLevelRequest": { + "base": null, + "refs": { + } + }, + "SetV2LoggingOptionsRequest": { + "base": null, + "refs": { + } + }, + "SkyfallMaxResults": { + "base": null, + "refs": { + "ListV2LoggingLevelsRequest$maxResults": "

The maximum number of results to return at one time.

" + } + }, "SnsAction": { "base": "

Describes an action to publish to an Amazon SNS topic.

", "refs": { @@ -1427,6 +2869,16 @@ "Action$sqs": "

Publish to an Amazon SQS queue.

" } }, + "StartThingRegistrationTaskRequest": { + "base": null, + "refs": { + } + }, + "StartThingRegistrationTaskResponse": { + "base": null, + "refs": { + } + }, "StateReason": { "base": null, "refs": { @@ -1439,12 +2891,35 @@ "CloudwatchAlarmAction$stateValue": "

The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.

" } }, + "Status": { + "base": null, + "refs": { + "DescribeThingRegistrationTaskResponse$status": "

The status of the bulk thing provisioning task.

", + "ListThingRegistrationTasksRequest$status": "

The status of the bulk thing provisioning task.

" + } + }, + "StopThingRegistrationTaskRequest": { + "base": null, + "refs": { + } + }, + "StopThingRegistrationTaskResponse": { + "base": null, + "refs": { + } + }, "StreamName": { "base": null, "refs": { "KinesisAction$streamName": "

The name of the Amazon Kinesis stream.

" } }, + "SucceededThings": { + "base": null, + "refs": { + "JobProcessDetails$numberOfSucceededThings": "

The number of things which successfully completed the job.

" + } + }, "TableName": { "base": null, "refs": { @@ -1452,10 +2927,77 @@ "PutItemInput$tableName": "

The table where the message data will be written

" } }, + "TargetArn": { + "base": null, + "refs": { + "JobTargets$member": null + } + }, + "TargetSelection": { + "base": null, + "refs": { + "CreateJobRequest$targetSelection": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a thing when the thing is added to a target group, even after the job was completed by all things originally in the group.

", + "Job$targetSelection": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a device when the thing representing the device is added to a target group, even after the job was completed by all things originally in the group.

", + "JobSummary$targetSelection": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a thing when the thing is added to a target group, even after the job was completed by all things originally in the group.

", + "ListJobsRequest$targetSelection": "

Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a thing when the thing is added to a target group, even after the job was completed by all things originally in the group.

" + } + }, + "TaskId": { + "base": null, + "refs": { + "DescribeThingRegistrationTaskRequest$taskId": "

The task ID.

", + "DescribeThingRegistrationTaskResponse$taskId": "

The task ID.

", + "ListThingRegistrationTaskReportsRequest$taskId": "

The id of the task.

", + "StartThingRegistrationTaskResponse$taskId": "

The bulk thing provisioning task ID.

", + "StopThingRegistrationTaskRequest$taskId": "

The bulk thing provisioning task ID.

", + "TaskIdList$member": null + } + }, + "TaskIdList": { + "base": null, + "refs": { + "ListThingRegistrationTasksResponse$taskIds": "

A list of bulk thing provisioning task IDs.

" + } + }, + "TemplateBody": { + "base": null, + "refs": { + "DescribeThingRegistrationTaskResponse$templateBody": "

The task's template.

", + "RegisterThingRequest$templateBody": "

The provisioning template.

", + "RegistrationConfig$templateBody": "

The template body.

", + "StartThingRegistrationTaskRequest$templateBody": "

The provisioning template.

" + } + }, + "TestAuthorizationRequest": { + "base": null, + "refs": { + } + }, + "TestAuthorizationResponse": { + "base": null, + "refs": { + } + }, + "TestInvokeAuthorizerRequest": { + "base": null, + "refs": { + } + }, + "TestInvokeAuthorizerResponse": { + "base": null, + "refs": { + } + }, "ThingArn": { "base": null, "refs": { - "CreateThingResponse$thingArn": "

The ARN of the new thing.

" + "AddThingToThingGroupRequest$thingArn": "

The ARN of the thing to add to a group.

", + "CreateThingResponse$thingArn": "

The ARN of the new thing.

", + "DescribeThingResponse$thingArn": "

The ARN of the thing to describe.

", + "JobExecution$thingArn": "

The ARN of the thing on which the job execution is running.

", + "JobExecutionSummaryForJob$thingArn": "

The ARN of the thing on which the job execution is running.

", + "RemoveThingFromThingGroupRequest$thingArn": "

The ARN of the thing to remove from the group.

", + "ThingAttribute$thingArn": "

The thing ARN.

" } }, "ThingAttribute": { @@ -1470,32 +3012,158 @@ "ListThingsResponse$things": "

The things.

" } }, + "ThingDocument": { + "base": "

The thing search index document.

", + "refs": { + "ThingDocumentList$member": null + } + }, + "ThingDocumentList": { + "base": null, + "refs": { + "SearchIndexResponse$things": "

The things that match the search query.

" + } + }, + "ThingGroupArn": { + "base": null, + "refs": { + "AddThingToThingGroupRequest$thingGroupArn": "

The ARN of the group to which you are adding a thing.

", + "CreateThingGroupResponse$thingGroupArn": "

The thing group ARN.

", + "DescribeThingGroupResponse$thingGroupArn": "

The thing group ARN.

", + "GroupNameAndArn$groupArn": "

The group ARN.

", + "RemoveThingFromThingGroupRequest$thingGroupArn": "

The group ARN.

" + } + }, + "ThingGroupDescription": { + "base": null, + "refs": { + "ThingGroupProperties$thingGroupDescription": "

The thing group description.

" + } + }, + "ThingGroupId": { + "base": null, + "refs": { + "CreateThingGroupResponse$thingGroupId": "

The thing group ID.

", + "DescribeThingGroupResponse$thingGroupId": "

The thing group ID.

", + "JobSummary$thingGroupId": "

The ID of the thing group.

", + "ListJobsRequest$thingGroupId": "

A filter that limits the returned jobs to those for the specified group.

" + } + }, + "ThingGroupList": { + "base": null, + "refs": { + "UpdateThingGroupsForThingRequest$thingGroupsToAdd": "

The groups to which the thing will be added.

", + "UpdateThingGroupsForThingRequest$thingGroupsToRemove": "

The groups from which the thing will be removed.

" + } + }, + "ThingGroupMetadata": { + "base": "

Thing group metadata.

", + "refs": { + "DescribeThingGroupResponse$thingGroupMetadata": "

Thing group metadata.

" + } + }, + "ThingGroupName": { + "base": null, + "refs": { + "AddThingToThingGroupRequest$thingGroupName": "

The name of the group to which you are adding a thing.

", + "CreateThingGroupRequest$thingGroupName": "

The thing group name to create.

", + "CreateThingGroupRequest$parentGroupName": "

The name of the parent thing group.

", + "CreateThingGroupResponse$thingGroupName": "

The thing group name.

", + "DeleteThingGroupRequest$thingGroupName": "

The name of the thing group to delete.

", + "DescribeThingGroupRequest$thingGroupName": "

The name of the thing group.

", + "DescribeThingGroupResponse$thingGroupName": "

The name of the thing group.

", + "GroupNameAndArn$groupName": "

The group name.

", + "ListJobsRequest$thingGroupName": "

A filter that limits the returned jobs to those for the specified group.

", + "ListThingGroupsRequest$parentGroup": "

A filter that limits the results to those with the specified parent group.

", + "ListThingGroupsRequest$namePrefixFilter": "

A filter that limits the results to those with the specified name prefix.

", + "ListThingsInThingGroupRequest$thingGroupName": "

The thing group name.

", + "RemoveThingFromThingGroupRequest$thingGroupName": "

The group name.

", + "ThingGroupList$member": null, + "ThingGroupMetadata$parentGroupName": "

The parent thing group name.

", + "ThingGroupNameList$member": null, + "UpdateThingGroupRequest$thingGroupName": "

The thing group to update.

" + } + }, + "ThingGroupNameAndArnList": { + "base": null, + "refs": { + "ListThingGroupsForThingResponse$thingGroups": "

The thing groups.

", + "ListThingGroupsResponse$thingGroups": "

The thing groups.

", + "ThingGroupMetadata$rootToParentThingGroups": "

The root parent thing group.

" + } + }, + "ThingGroupNameList": { + "base": null, + "refs": { + "ThingDocument$thingGroupNames": "

Thing group names.

" + } + }, + "ThingGroupProperties": { + "base": "

Thing group properties.

", + "refs": { + "CreateThingGroupRequest$thingGroupProperties": "

The thing group properties.

", + "DescribeThingGroupResponse$thingGroupProperties": "

The thing group properties.

", + "UpdateThingGroupRequest$thingGroupProperties": "

The thing group properties.

" + } + }, + "ThingId": { + "base": null, + "refs": { + "CreateThingResponse$thingId": "

The thing ID.

", + "DescribeThingResponse$thingId": "

The ID of the thing to describe.

", + "ThingDocument$thingId": "

The thing ID.

" + } + }, + "ThingIndexingConfiguration": { + "base": "

Thing indexing configuration.

", + "refs": { + "GetIndexingConfigurationResponse$thingIndexingConfiguration": "

Thing indexing configuration.

", + "UpdateIndexingConfigurationRequest$thingIndexingConfiguration": "

Thing indexing configuration.

" + } + }, + "ThingIndexingMode": { + "base": null, + "refs": { + "ThingIndexingConfiguration$thingIndexingMode": "

Thing indexing mode. Valid values are:

" + } + }, "ThingName": { "base": null, "refs": { + "AddThingToThingGroupRequest$thingName": "

The name of the thing to add to a group.

", "AttachThingPrincipalRequest$thingName": "

The name of the thing.

", "CreateThingRequest$thingName": "

The name of the thing to create.

", "CreateThingResponse$thingName": "

The name of the new thing.

", "DeleteThingRequest$thingName": "

The name of the thing to delete.

", + "DescribeJobExecutionRequest$thingName": "

The name of the thing on which the job execution is running.

", "DescribeThingRequest$thingName": "

The name of the thing.

", "DescribeThingResponse$thingName": "

The name of the thing.

", "DetachThingPrincipalRequest$thingName": "

The name of the thing.

", + "GetEffectivePoliciesRequest$thingName": "

The thing name.

", + "ListJobExecutionsForThingRequest$thingName": "

The thing name.

", + "ListThingGroupsForThingRequest$thingName": "

The thing name.

", "ListThingPrincipalsRequest$thingName": "

The name of the thing.

", + "RemoveThingFromThingGroupRequest$thingName": "

The name of the thing to remove from the group.

", "ThingAttribute$thingName": "

The name of the thing.

", + "ThingDocument$thingName": "

The thing name.

", "ThingNameList$member": null, + "UpdateThingGroupsForThingRequest$thingName": "

The thing whose group memberships will be updated.

", "UpdateThingRequest$thingName": "

The name of the thing to update.

" } }, "ThingNameList": { "base": null, "refs": { - "ListPrincipalThingsResponse$things": "

The things.

" + "ListPrincipalThingsResponse$things": "

The things.

", + "ListThingsInThingGroupResponse$things": "

The things in the specified thing group.

" } }, "ThingTypeArn": { "base": null, "refs": { - "CreateThingTypeResponse$thingTypeArn": "

The Amazon Resource Name (ARN) of the thing type.

" + "CreateThingTypeResponse$thingTypeArn": "

The Amazon Resource Name (ARN) of the thing type.

", + "DescribeThingTypeResponse$thingTypeArn": "

The thing type ARN.

", + "ThingTypeDefinition$thingTypeArn": "

The thing type ARN.

" } }, "ThingTypeDefinition": { @@ -1510,6 +3178,13 @@ "ThingTypeProperties$thingTypeDescription": "

The description of the thing type.

" } }, + "ThingTypeId": { + "base": null, + "refs": { + "CreateThingTypeResponse$thingTypeId": "

The thing type ID.

", + "DescribeThingTypeResponse$thingTypeId": "

The thing type ID.

" + } + }, "ThingTypeList": { "base": null, "refs": { @@ -1537,6 +3212,7 @@ "ListThingTypesRequest$thingTypeName": "

The name of the thing type.

", "ListThingsRequest$thingTypeName": "

The name of the thing type used to search for things.

", "ThingAttribute$thingTypeName": "

The name of the thing type, if the thing has been associated with a type.

", + "ThingDocument$thingTypeName": "

The thing type name.

", "ThingTypeDefinition$thingTypeName": "

The name of the thing type.

", "UpdateThingRequest$thingTypeName": "

The name of the thing type.

" } @@ -1554,6 +3230,26 @@ "refs": { } }, + "Token": { + "base": null, + "refs": { + "TestInvokeAuthorizerRequest$token": "

The token returned by your custom authentication service.

" + } + }, + "TokenKeyName": { + "base": null, + "refs": { + "AuthorizerDescription$tokenKeyName": "

The key used to extract the token from the HTTP headers.

", + "CreateAuthorizerRequest$tokenKeyName": "

The name of the token key used to extract the token from the HTTP headers.

", + "UpdateAuthorizerRequest$tokenKeyName": "

The key used to extract the token from the HTTP headers.

" + } + }, + "TokenSignature": { + "base": null, + "refs": { + "TestInvokeAuthorizerRequest$tokenSignature": "

The signature made with the token and your custom authentication service's private key.

" + } + }, "Topic": { "base": null, "refs": { @@ -1629,6 +3325,16 @@ "DeprecateThingTypeRequest$undoDeprecate": "

Whether to undeprecate a deprecated thing type. If true, the thing type will not be deprecated anymore and you can associate it with things.

" } }, + "UpdateAuthorizerRequest": { + "base": null, + "refs": { + } + }, + "UpdateAuthorizerResponse": { + "base": null, + "refs": { + } + }, "UpdateCACertificateRequest": { "base": "

The input to the UpdateCACertificate operation.

", "refs": { @@ -1639,6 +3345,56 @@ "refs": { } }, + "UpdateEventConfigurationsRequest": { + "base": null, + "refs": { + } + }, + "UpdateEventConfigurationsResponse": { + "base": null, + "refs": { + } + }, + "UpdateIndexingConfigurationRequest": { + "base": null, + "refs": { + } + }, + "UpdateIndexingConfigurationResponse": { + "base": null, + "refs": { + } + }, + "UpdateRoleAliasRequest": { + "base": null, + "refs": { + } + }, + "UpdateRoleAliasResponse": { + "base": null, + "refs": { + } + }, + "UpdateThingGroupRequest": { + "base": null, + "refs": { + } + }, + "UpdateThingGroupResponse": { + "base": null, + "refs": { + } + }, + "UpdateThingGroupsForThingRequest": { + "base": null, + "refs": { + } + }, + "UpdateThingGroupsForThingResponse": { + "base": null, + "refs": { + } + }, "UpdateThingRequest": { "base": "

The input for the UpdateThing operation.

", "refs": { @@ -1655,11 +3411,19 @@ "SqsAction$useBase64": "

Specifies whether to use Base64 encoding.

" } }, + "Value": { + "base": null, + "refs": { + "Parameters$value": null + } + }, "Version": { "base": null, "refs": { + "DescribeThingGroupResponse$version": "

The version of the thing group.

", "DescribeThingResponse$version": "

The current version of the thing record in the registry.

To avoid unintentional changes to the information in the registry, you can pass the version information in the expectedVersion parameter of the UpdateThing and DeleteThing calls.

", - "ThingAttribute$version": "

The version of the thing record in the registry.

" + "ThingAttribute$version": "

The version of the thing record in the registry.

", + "UpdateThingGroupResponse$version": "

The version of the updated thing group.

" } }, "VersionConflictException": { @@ -1678,15 +3442,21 @@ "CertificateConflictException$message": "

The message for the exception.

", "CertificateStateException$message": "

The message for the exception.

", "CertificateValidationException$message": "

Additional information about the exception.

", + "ConflictingResourceUpdateException$message": null, "DeleteConflictException$message": "

The message for the exception.

", + "IndexNotReadyException$message": null, "InternalException$message": "

The message for the exception.

", "InternalFailureException$message": "

The message for the exception.

", + "InvalidQueryException$message": null, "InvalidRequestException$message": "

The message for the exception.

", + "InvalidResponseException$message": null, "LimitExceededException$message": "

The message for the exception.

", "MalformedPolicyException$message": "

The message for the exception.

", + "NotConfiguredException$message": null, "RegistrationCodeValidationException$message": "

Additional information about the exception.

", "ResourceAlreadyExistsException$message": "

The message for the exception.

", "ResourceNotFoundException$message": "

The message for the exception.

", + "ResourceRegistrationFailureException$message": null, "ServiceUnavailableException$message": "

The message for the exception.

", "SqlParseException$message": "

The message for the exception.

", "ThrottlingException$message": "

The message for the exception.

", diff --git a/models/apis/kinesis-video-archived-media/2017-09-30/api-2.json b/models/apis/kinesis-video-archived-media/2017-09-30/api-2.json new file mode 100644 index 00000000000..e166165a1cd --- /dev/null +++ b/models/apis/kinesis-video-archived-media/2017-09-30/api-2.json @@ -0,0 +1,200 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-09-30", + "endpointPrefix":"kinesisvideo", + "protocol":"rest-json", + "serviceAbbreviation":"Kinesis Video Archived Media", + "serviceFullName":"Amazon Kinesis Video Streams Archived Media", + "serviceId":"Kinesis Video Archived Media", + "signatureVersion":"v4", + "uid":"kinesis-video-archived-media-2017-09-30" + }, + "operations":{ + "GetMediaForFragmentList":{ + "name":"GetMediaForFragmentList", + "http":{ + "method":"POST", + "requestUri":"/getMediaForFragmentList" + }, + "input":{"shape":"GetMediaForFragmentListInput"}, + "output":{"shape":"GetMediaForFragmentListOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"NotAuthorizedException"} + ] + }, + "ListFragments":{ + "name":"ListFragments", + "http":{ + "method":"POST", + "requestUri":"/listFragments" + }, + "input":{"shape":"ListFragmentsInput"}, + "output":{"shape":"ListFragmentsOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"NotAuthorizedException"} + ] + } + }, + "shapes":{ + "ClientLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ContentType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[a-zA-Z0-9_\\.\\-]+$" + }, + "ErrorMessage":{"type":"string"}, + "Fragment":{ + "type":"structure", + "members":{ + "FragmentNumber":{"shape":"String"}, + "FragmentSizeInBytes":{"shape":"Long"}, + "ProducerTimestamp":{"shape":"Timestamp"}, + "ServerTimestamp":{"shape":"Timestamp"}, + "FragmentLengthInMilliseconds":{"shape":"Long"} + } + }, + "FragmentList":{ + "type":"list", + "member":{"shape":"Fragment"} + }, + "FragmentNumberList":{ + "type":"list", + "member":{"shape":"FragmentNumberString"} + }, + "FragmentNumberString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[0-9]+$" + }, + "FragmentSelector":{ + "type":"structure", + "required":[ + "FragmentSelectorType", + "TimestampRange" + ], + "members":{ + "FragmentSelectorType":{"shape":"FragmentSelectorType"}, + "TimestampRange":{"shape":"TimestampRange"} + } + }, + "FragmentSelectorType":{ + "type":"string", + "enum":[ + "PRODUCER_TIMESTAMP", + "SERVER_TIMESTAMP" + ] + }, + "GetMediaForFragmentListInput":{ + "type":"structure", + "required":[ + "StreamName", + "Fragments" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "Fragments":{"shape":"FragmentNumberList"} + } + }, + "GetMediaForFragmentListOutput":{ + "type":"structure", + "members":{ + "ContentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + }, + "Payload":{"shape":"Payload"} + }, + "payload":"Payload" + }, + "InvalidArgumentException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ListFragmentsInput":{ + "type":"structure", + "required":["StreamName"], + "members":{ + "StreamName":{"shape":"StreamName"}, + "MaxResults":{"shape":"PageLimit"}, + "NextToken":{"shape":"String"}, + "FragmentSelector":{"shape":"FragmentSelector"} + } + }, + "ListFragmentsOutput":{ + "type":"structure", + "members":{ + "Fragments":{"shape":"FragmentList"}, + "NextToken":{"shape":"String"} + } + }, + "Long":{"type":"long"}, + "NotAuthorizedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":401}, + "exception":true + }, + "PageLimit":{ + "type":"long", + "max":1000, + "min":1 + }, + "Payload":{ + "type":"blob", + "streaming":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "StreamName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "String":{ + "type":"string", + "min":1 + }, + "Timestamp":{"type":"timestamp"}, + "TimestampRange":{ + "type":"structure", + "required":[ + "StartTimestamp", + "EndTimestamp" + ], + "members":{ + "StartTimestamp":{"shape":"Timestamp"}, + "EndTimestamp":{"shape":"Timestamp"} + } + } + } +} diff --git a/models/apis/kinesis-video-archived-media/2017-09-30/docs-2.json b/models/apis/kinesis-video-archived-media/2017-09-30/docs-2.json new file mode 100644 index 00000000000..783eae5b5a1 --- /dev/null +++ b/models/apis/kinesis-video-archived-media/2017-09-30/docs-2.json @@ -0,0 +1,150 @@ +{ + "version": "2.0", + "service": "

", + "operations": { + "GetMediaForFragmentList": "

Gets media for a list of fragments (specified by fragment number) from the archived data in a Kinesis video stream.

This operation is only available for the AWS SDK for Java. It is not supported in AWS SDKs for other languages.

The following limits apply when using the GetMediaForFragmentList API:

", + "ListFragments": "

Returns a list of Fragment objects from the specified stream and start location within the archived data.

" + }, + "shapes": { + "ClientLimitExceededException": { + "base": "

Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.

", + "refs": { + } + }, + "ContentType": { + "base": null, + "refs": { + "GetMediaForFragmentListOutput$ContentType": "

The content type of the requested media.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "ClientLimitExceededException$Message": null, + "InvalidArgumentException$Message": null, + "NotAuthorizedException$Message": null, + "ResourceNotFoundException$Message": null + } + }, + "Fragment": { + "base": "

Represents a segment of video or other time-delimited data.

", + "refs": { + "FragmentList$member": null + } + }, + "FragmentList": { + "base": null, + "refs": { + "ListFragmentsOutput$Fragments": "

A list of fragment numbers that correspond to the time stamp range provided.

" + } + }, + "FragmentNumberList": { + "base": null, + "refs": { + "GetMediaForFragmentListInput$Fragments": "

A list of the numbers of fragments for which to retrieve media. You retrieve these values with ListFragments.

" + } + }, + "FragmentNumberString": { + "base": null, + "refs": { + "FragmentNumberList$member": null + } + }, + "FragmentSelector": { + "base": "

Describes the time stamp range and time stamp origin of a range of fragments.

", + "refs": { + "ListFragmentsInput$FragmentSelector": "

Describes the time stamp range and time stamp origin for the range of fragments to return.

" + } + }, + "FragmentSelectorType": { + "base": null, + "refs": { + "FragmentSelector$FragmentSelectorType": "

The origin of the time stamps to use (Server or Producer).

" + } + }, + "GetMediaForFragmentListInput": { + "base": null, + "refs": { + } + }, + "GetMediaForFragmentListOutput": { + "base": null, + "refs": { + } + }, + "InvalidArgumentException": { + "base": "

A specified parameter exceeds its restrictions, is not supported, or can't be used.

", + "refs": { + } + }, + "ListFragmentsInput": { + "base": null, + "refs": { + } + }, + "ListFragmentsOutput": { + "base": null, + "refs": { + } + }, + "Long": { + "base": null, + "refs": { + "Fragment$FragmentSizeInBytes": "

The total fragment size, including information about the fragment and contained media data.

", + "Fragment$FragmentLengthInMilliseconds": "

The playback duration or other time value associated with the fragment.

" + } + }, + "NotAuthorizedException": { + "base": "

Status Code: 403, The caller is not authorized to perform an operation on the given stream, or the token has expired.

", + "refs": { + } + }, + "PageLimit": { + "base": null, + "refs": { + "ListFragmentsInput$MaxResults": "

The total number of fragments to return. If the total number of fragments available is more than the value specified in max-results, then a ListFragmentsOutput$NextToken is provided in the output that you can use to resume pagination.

" + } + }, + "Payload": { + "base": null, + "refs": { + "GetMediaForFragmentListOutput$Payload": "

The payload that Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information about the chunks, see PutMedia. The chunks that Kinesis Video Streams returns in the GetMediaForFragmentList call also include the following additional Matroska (MKV) tags:

The following tags will be included if an exception occurs:

" + } + }, + "ResourceNotFoundException": { + "base": "

Kinesis Video Streams can't find the stream that you specified.

", + "refs": { + } + }, + "StreamName": { + "base": null, + "refs": { + "GetMediaForFragmentListInput$StreamName": "

The name of the stream from which to retrieve fragment media.

", + "ListFragmentsInput$StreamName": "

The name of the stream from which to retrieve a fragment list.

" + } + }, + "String": { + "base": null, + "refs": { + "Fragment$FragmentNumber": "

The index value of the fragment.

", + "ListFragmentsInput$NextToken": "

A token to specify where to start paginating. This is the ListFragmentsOutput$NextToken from a previously truncated response.

", + "ListFragmentsOutput$NextToken": "

If the returned list is truncated, the operation returns this token to use to retrieve the next page of results. This value is null when there are no more results to return.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "Fragment$ProducerTimestamp": "

The time stamp from the producer corresponding to the fragment.

", + "Fragment$ServerTimestamp": "

The time stamp from the AWS server corresponding to the fragment.

", + "TimestampRange$StartTimestamp": "

The starting time stamp in the range of time stamps for which to return fragments.

", + "TimestampRange$EndTimestamp": "

The ending time stamp in the range of time stamps for which to return fragments.

" + } + }, + "TimestampRange": { + "base": "

The range of time stamps for which to return fragments.

", + "refs": { + "FragmentSelector$TimestampRange": "

The range of time stamps to return.

" + } + } + } +} diff --git a/models/apis/kinesis-video-archived-media/2017-09-30/examples-1.json b/models/apis/kinesis-video-archived-media/2017-09-30/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/kinesis-video-archived-media/2017-09-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/kinesis-video-archived-media/2017-09-30/paginators-1.json b/models/apis/kinesis-video-archived-media/2017-09-30/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/kinesis-video-archived-media/2017-09-30/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/kinesis-video-media/2017-09-30/api-2.json b/models/apis/kinesis-video-media/2017-09-30/api-2.json new file mode 100644 index 00000000000..258ff2bdcde --- /dev/null +++ b/models/apis/kinesis-video-media/2017-09-30/api-2.json @@ -0,0 +1,160 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-09-30", + "endpointPrefix":"kinesisvideo", + "protocol":"rest-json", + "serviceAbbreviation":"Kinesis Video Media", + "serviceFullName":"Amazon Kinesis Video Streams Media", + "serviceId":"Kinesis Video Media", + "signatureVersion":"v4", + "uid":"kinesis-video-media-2017-09-30" + }, + "operations":{ + "GetMedia":{ + "name":"GetMedia", + "http":{ + "method":"POST", + "requestUri":"/getMedia" + }, + "input":{"shape":"GetMediaInput"}, + "output":{"shape":"GetMediaOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidEndpointException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"ConnectionLimitExceededException"}, + {"shape":"InvalidArgumentException"} + ] + } + }, + "shapes":{ + "ClientLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ConnectionLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ContentType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[a-zA-Z0-9_\\.\\-]+$" + }, + "ContinuationToken":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[a-zA-Z0-9_\\.\\-]+$" + }, + "ErrorMessage":{"type":"string"}, + "FragmentNumberString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[0-9]+$" + }, + "GetMediaInput":{ + "type":"structure", + "required":["StartSelector"], + "members":{ + "StreamName":{"shape":"StreamName"}, + "StreamARN":{"shape":"ResourceARN"}, + "StartSelector":{"shape":"StartSelector"} + } + }, + "GetMediaOutput":{ + "type":"structure", + "members":{ + "ContentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + }, + "Payload":{"shape":"Payload"} + }, + "payload":"Payload" + }, + "InvalidArgumentException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidEndpointException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "NotAuthorizedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":401}, + "exception":true + }, + "Payload":{ + "type":"blob", + "streaming":true + }, + "ResourceARN":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "StartSelector":{ + "type":"structure", + "required":["StartSelectorType"], + "members":{ + "StartSelectorType":{"shape":"StartSelectorType"}, + "AfterFragmentNumber":{"shape":"FragmentNumberString"}, + "StartTimestamp":{"shape":"Timestamp"}, + "ContinuationToken":{"shape":"ContinuationToken"} + } + }, + "StartSelectorType":{ + "type":"string", + "enum":[ + "FRAGMENT_NUMBER", + "SERVER_TIMESTAMP", + "PRODUCER_TIMESTAMP", + "NOW", + "EARLIEST", + "CONTINUATION_TOKEN" + ] + }, + "StreamName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "Timestamp":{"type":"timestamp"} + } +} diff --git a/models/apis/kinesis-video-media/2017-09-30/docs-2.json b/models/apis/kinesis-video-media/2017-09-30/docs-2.json new file mode 100644 index 00000000000..45a8c1fd497 --- /dev/null +++ b/models/apis/kinesis-video-media/2017-09-30/docs-2.json @@ -0,0 +1,114 @@ +{ + "version": "2.0", + "service": "

", + "operations": { + "GetMedia": "

Use this API to retrieve media content from a Kinesis video stream. In the request, you identify stream name or stream Amazon Resource Name (ARN), and the starting chunk. Kinesis Video Streams then returns a stream of chunks in order by fragment number.

You must first call the GetDataEndpoint API to get an endpoint to which you can then send the GetMedia requests.

When you put media data (fragments) on a stream, Kinesis Video Streams stores each incoming fragment and related metadata in what is called a \"chunk.\" For more information, see . The GetMedia API returns a stream of these chunks starting from the chunk that you specify in the request.

The following limits apply when using the GetMedia API:

" + }, + "shapes": { + "ClientLimitExceededException": { + "base": "

Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.

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

Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client connections.

", + "refs": { + } + }, + "ContentType": { + "base": null, + "refs": { + "GetMediaOutput$ContentType": "

The content type of the requested media.

" + } + }, + "ContinuationToken": { + "base": null, + "refs": { + "StartSelector$ContinuationToken": "

Continuation token that Kinesis Video Streams returned in the previous GetMedia response. The GetMedia API then starts with the chunk identified by the continuation token.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "ClientLimitExceededException$Message": null, + "ConnectionLimitExceededException$Message": null, + "InvalidArgumentException$Message": null, + "InvalidEndpointException$Message": null, + "NotAuthorizedException$Message": null, + "ResourceNotFoundException$Message": null + } + }, + "FragmentNumberString": { + "base": null, + "refs": { + "StartSelector$AfterFragmentNumber": "

Specifies the fragment number from where you want the GetMedia API to start returning the fragments.

" + } + }, + "GetMediaInput": { + "base": null, + "refs": { + } + }, + "GetMediaOutput": { + "base": null, + "refs": { + } + }, + "InvalidArgumentException": { + "base": "

The value for this input parameter is invalid.

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

Status Code: 400, Caller used wrong endpoint to write data to a stream. On receiving such an exception, the user must call GetDataEndpoint with AccessMode set to \"READ\" and use the endpoint Kinesis Video returns in the next GetMedia call.

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

Status Code: 403, The caller is not authorized to perform an operation on the given stream, or the token has expired.

", + "refs": { + } + }, + "Payload": { + "base": null, + "refs": { + "GetMediaOutput$Payload": "

The payload Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information about the chunks, see . The chunks that Kinesis Video Streams returns in the GetMedia call also include the following additional Matroska (MKV) tags:

The following tags will be present if an error occurs:

The error codes are as follows:

" + } + }, + "ResourceARN": { + "base": null, + "refs": { + "GetMediaInput$StreamARN": "

The ARN of the stream from where you want to get the media content. If you don't specify the streamARN, you must specify the streamName.

" + } + }, + "ResourceNotFoundException": { + "base": "

Status Code: 404, The stream with the given name does not exist.

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

Identifies the chunk on the Kinesis video stream where you want the GetMedia API to start returning media data. You have the following options to identify the starting chunk:

", + "refs": { + "GetMediaInput$StartSelector": "

Identifies the starting chunk to get from the specified stream.

" + } + }, + "StartSelectorType": { + "base": null, + "refs": { + "StartSelector$StartSelectorType": "

Identifies the fragment on the Kinesis video stream where you want to start getting the data from.

If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the startSelectorType, you don't provide any additional information in the startSelector.

" + } + }, + "StreamName": { + "base": null, + "refs": { + "GetMediaInput$StreamName": "

The Kinesis video stream name from where you want to get the media content. If you don't specify the streamName, you must specify the streamARN.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "StartSelector$StartTimestamp": "

A time stamp value. This value is required if you choose the PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the startSelectorType. The GetMedia API then starts with the chunk containing the fragment that has the specified time stamp.

" + } + } + } +} diff --git a/models/apis/kinesis-video-media/2017-09-30/examples-1.json b/models/apis/kinesis-video-media/2017-09-30/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/kinesis-video-media/2017-09-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/kinesis-video-media/2017-09-30/paginators-1.json b/models/apis/kinesis-video-media/2017-09-30/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/kinesis-video-media/2017-09-30/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/kinesis/2013-12-02/api-2.json b/models/apis/kinesis/2013-12-02/api-2.json index 31eaf9519c5..aacb9f8a983 100644 --- a/models/apis/kinesis/2013-12-02/api-2.json +++ b/models/apis/kinesis/2013-12-02/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"Kinesis", "serviceFullName":"Amazon Kinesis", + "serviceId":"Kinesis", "signatureVersion":"v4", "targetPrefix":"Kinesis_20131202", "uid":"kinesis-2013-12-02" @@ -89,6 +90,19 @@ {"shape":"LimitExceededException"} ] }, + "DescribeStreamSummary":{ + "name":"DescribeStreamSummary", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStreamSummaryInput"}, + "output":{"shape":"DescribeStreamSummaryOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"} + ] + }, "DisableEnhancedMonitoring":{ "name":"DisableEnhancedMonitoring", "http":{ @@ -131,7 +145,13 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidArgumentException"}, {"shape":"ProvisionedThroughputExceededException"}, - {"shape":"ExpiredIteratorException"} + {"shape":"ExpiredIteratorException"}, + {"shape":"KMSDisabledException"}, + {"shape":"KMSInvalidStateException"}, + {"shape":"KMSAccessDeniedException"}, + {"shape":"KMSNotFoundException"}, + {"shape":"KMSOptInRequired"}, + {"shape":"KMSThrottlingException"} ] }, "GetShardIterator":{ @@ -212,7 +232,13 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidArgumentException"}, - {"shape":"ProvisionedThroughputExceededException"} + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"KMSDisabledException"}, + {"shape":"KMSInvalidStateException"}, + {"shape":"KMSAccessDeniedException"}, + {"shape":"KMSNotFoundException"}, + {"shape":"KMSOptInRequired"}, + {"shape":"KMSThrottlingException"} ] }, "PutRecords":{ @@ -226,7 +252,13 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidArgumentException"}, - {"shape":"ProvisionedThroughputExceededException"} + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"KMSDisabledException"}, + {"shape":"KMSInvalidStateException"}, + {"shape":"KMSAccessDeniedException"}, + {"shape":"KMSNotFoundException"}, + {"shape":"KMSOptInRequired"}, + {"shape":"KMSThrottlingException"} ] }, "RemoveTagsFromStream":{ @@ -257,6 +289,40 @@ {"shape":"LimitExceededException"} ] }, + "StartStreamEncryption":{ + "name":"StartStreamEncryption", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartStreamEncryptionInput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"KMSDisabledException"}, + {"shape":"KMSInvalidStateException"}, + {"shape":"KMSAccessDeniedException"}, + {"shape":"KMSNotFoundException"}, + {"shape":"KMSOptInRequired"}, + {"shape":"KMSThrottlingException"} + ] + }, + "StopStreamEncryption":{ + "name":"StopStreamEncryption", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopStreamEncryptionInput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "UpdateShardCount":{ "name":"UpdateShardCount", "http":{ @@ -357,6 +423,20 @@ "StreamDescription":{"shape":"StreamDescription"} } }, + "DescribeStreamSummaryInput":{ + "type":"structure", + "required":["StreamName"], + "members":{ + "StreamName":{"shape":"StreamName"} + } + }, + "DescribeStreamSummaryOutput":{ + "type":"structure", + "required":["StreamDescriptionSummary"], + "members":{ + "StreamDescriptionSummary":{"shape":"StreamDescriptionSummary"} + } + }, "DisableEnhancedMonitoringInput":{ "type":"structure", "required":[ @@ -379,6 +459,13 @@ "ShardLevelMetrics":{"shape":"MetricsNameList"} } }, + "EncryptionType":{ + "type":"string", + "enum":[ + "NONE", + "KMS" + ] + }, "EnhancedMetrics":{ "type":"structure", "members":{ @@ -482,6 +569,53 @@ }, "exception":true }, + "KMSAccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "KMSDisabledException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "KMSInvalidStateException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "KMSNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "KMSOptInRequired":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "KMSThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "KeyId":{ + "type":"string", + "max":2048, + "min":1 + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -613,7 +747,8 @@ ], "members":{ "ShardId":{"shape":"ShardId"}, - "SequenceNumber":{"shape":"SequenceNumber"} + "SequenceNumber":{"shape":"SequenceNumber"}, + "EncryptionType":{"shape":"EncryptionType"} } }, "PutRecordsInput":{ @@ -632,7 +767,8 @@ "required":["Records"], "members":{ "FailedRecordCount":{"shape":"PositiveIntegerObject"}, - "Records":{"shape":"PutRecordsResultEntryList"} + "Records":{"shape":"PutRecordsResultEntryList"}, + "EncryptionType":{"shape":"EncryptionType"} } }, "PutRecordsRequestEntry":{ @@ -679,7 +815,8 @@ "SequenceNumber":{"shape":"SequenceNumber"}, "ApproximateArrivalTimestamp":{"shape":"Timestamp"}, "Data":{"shape":"Data"}, - "PartitionKey":{"shape":"PartitionKey"} + "PartitionKey":{"shape":"PartitionKey"}, + "EncryptionType":{"shape":"EncryptionType"} } }, "RecordList":{ @@ -785,6 +922,32 @@ "NewStartingHashKey":{"shape":"HashKey"} } }, + "StartStreamEncryptionInput":{ + "type":"structure", + "required":[ + "StreamName", + "EncryptionType", + "KeyId" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "EncryptionType":{"shape":"EncryptionType"}, + "KeyId":{"shape":"KeyId"} + } + }, + "StopStreamEncryptionInput":{ + "type":"structure", + "required":[ + "StreamName", + "EncryptionType", + "KeyId" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "EncryptionType":{"shape":"EncryptionType"}, + "KeyId":{"shape":"KeyId"} + } + }, "StreamARN":{"type":"string"}, "StreamDescription":{ "type":"structure", @@ -806,7 +969,32 @@ "HasMoreShards":{"shape":"BooleanObject"}, "RetentionPeriodHours":{"shape":"PositiveIntegerObject"}, "StreamCreationTimestamp":{"shape":"Timestamp"}, - "EnhancedMonitoring":{"shape":"EnhancedMonitoringList"} + "EnhancedMonitoring":{"shape":"EnhancedMonitoringList"}, + "EncryptionType":{"shape":"EncryptionType"}, + "KeyId":{"shape":"KeyId"} + } + }, + "StreamDescriptionSummary":{ + "type":"structure", + "required":[ + "StreamName", + "StreamARN", + "StreamStatus", + "RetentionPeriodHours", + "StreamCreationTimestamp", + "EnhancedMonitoring", + "OpenShardCount" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "StreamARN":{"shape":"StreamARN"}, + "StreamStatus":{"shape":"StreamStatus"}, + "RetentionPeriodHours":{"shape":"PositiveIntegerObject"}, + "StreamCreationTimestamp":{"shape":"Timestamp"}, + "EnhancedMonitoring":{"shape":"EnhancedMonitoringList"}, + "EncryptionType":{"shape":"EncryptionType"}, + "KeyId":{"shape":"KeyId"}, + "OpenShardCount":{"shape":"ShardCountObject"} } }, "StreamName":{ diff --git a/models/apis/kinesis/2013-12-02/docs-2.json b/models/apis/kinesis/2013-12-02/docs-2.json index c81ef01dad0..30013852caa 100644 --- a/models/apis/kinesis/2013-12-02/docs-2.json +++ b/models/apis/kinesis/2013-12-02/docs-2.json @@ -2,25 +2,28 @@ "version": "2.0", "service": "Amazon Kinesis Streams Service API Reference

Amazon Kinesis Streams is a managed service that scales elastically for real time processing of streaming big data.

", "operations": { - "AddTagsToStream": "

Adds or updates tags for the specified Amazon Kinesis stream. Each stream can have up to 10 tags.

If tags have already been assigned to the stream, AddTagsToStream overwrites any existing tags that correspond to the specified tag keys.

", - "CreateStream": "

Creates an Amazon Kinesis stream. A stream captures and transports data records that are continuously emitted from different data sources or producers. Scale-out within a stream is explicitly supported by means of shards, which are uniquely identified groups of data records in a stream.

You specify and control the number of shards that a stream is composed of. Each shard can support reads up to 5 transactions per second, up to a maximum data read total of 2 MB per second. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second. You can add shards to a stream if the amount of data input increases and you can remove shards if the amount of data input decreases.

The stream name identifies the stream. The name is scoped to the AWS account used by the application. It is also scoped by region. That is, two streams in two different accounts can have the same name, and two streams in the same account, but in two different regions, can have the same name.

CreateStream is an asynchronous operation. Upon receiving a CreateStream request, Amazon Kinesis immediately returns and sets the stream status to CREATING. After the stream is created, Amazon Kinesis sets the stream status to ACTIVE. You should perform read and write operations only on an ACTIVE stream.

You receive a LimitExceededException when making a CreateStream request if you try to do one of the following:

For the default shard limit for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. If you need to increase this limit, contact AWS Support.

You can use DescribeStream to check the stream status, which is returned in StreamStatus.

CreateStream has a limit of 5 transactions per second per account.

", - "DecreaseStreamRetentionPeriod": "

Decreases the Amazon Kinesis stream's retention period, which is the length of time data records are accessible after they are added to the stream. The minimum value of a stream's retention period is 24 hours.

This operation may result in lost data. For example, if the stream's retention period is 48 hours and is decreased to 24 hours, any data already in the stream that is older than 24 hours is inaccessible.

", - "DeleteStream": "

Deletes an Amazon Kinesis stream and all its shards and data. You must shut down any applications that are operating on the stream before you delete the stream. If an application attempts to operate on a deleted stream, it will receive the exception ResourceNotFoundException.

If the stream is in the ACTIVE state, you can delete it. After a DeleteStream request, the specified stream is in the DELETING state until Amazon Kinesis completes the deletion.

Note: Amazon Kinesis might continue to accept data read and write operations, such as PutRecord, PutRecords, and GetRecords, on a stream in the DELETING state until the stream deletion is complete.

When you delete a stream, any shards in that stream are also deleted, and any tags are dissociated from the stream.

You can use the DescribeStream operation to check the state of the stream, which is returned in StreamStatus.

DeleteStream has a limit of 5 transactions per second per account.

", + "AddTagsToStream": "

Adds or updates tags for the specified Kinesis stream. Each stream can have up to 10 tags.

If tags have already been assigned to the stream, AddTagsToStream overwrites any existing tags that correspond to the specified tag keys.

", + "CreateStream": "

Creates a Kinesis stream. A stream captures and transports data records that are continuously emitted from different data sources or producers. Scale-out within a stream is explicitly supported by means of shards, which are uniquely identified groups of data records in a stream.

You specify and control the number of shards that a stream is composed of. Each shard can support reads up to 5 transactions per second, up to a maximum data read total of 2 MB per second. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second. I the amount of data input increases or decreases, you can add or remove shards.

The stream name identifies the stream. The name is scoped to the AWS account used by the application. It is also scoped by region. That is, two streams in two different accounts can have the same name, and two streams in the same account, but in two different regions, can have the same name.

CreateStream is an asynchronous operation. Upon receiving a CreateStream request, Kinesis Streams immediately returns and sets the stream status to CREATING. After the stream is created, Kinesis Streams sets the stream status to ACTIVE. You should perform read and write operations only on an ACTIVE stream.

You receive a LimitExceededException when making a CreateStream request when you try to do one of the following:

For the default shard limit for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. To increase this limit, contact AWS Support.

You can use DescribeStream to check the stream status, which is returned in StreamStatus.

CreateStream has a limit of 5 transactions per second per account.

", + "DecreaseStreamRetentionPeriod": "

Decreases the Kinesis stream's retention period, which is the length of time data records are accessible after they are added to the stream. The minimum value of a stream's retention period is 24 hours.

This operation may result in lost data. For example, if the stream's retention period is 48 hours and is decreased to 24 hours, any data already in the stream that is older than 24 hours is inaccessible.

", + "DeleteStream": "

Deletes a Kinesis stream and all its shards and data. You must shut down any applications that are operating on the stream before you delete the stream. If an application attempts to operate on a deleted stream, it receives the exception ResourceNotFoundException.

If the stream is in the ACTIVE state, you can delete it. After a DeleteStream request, the specified stream is in the DELETING state until Kinesis Streams completes the deletion.

Note: Kinesis Streams might continue to accept data read and write operations, such as PutRecord, PutRecords, and GetRecords, on a stream in the DELETING state until the stream deletion is complete.

When you delete a stream, any shards in that stream are also deleted, and any tags are dissociated from the stream.

You can use the DescribeStream operation to check the state of the stream, which is returned in StreamStatus.

DeleteStream has a limit of 5 transactions per second per account.

", "DescribeLimits": "

Describes the shard limits and usage for the account.

If you update your account limits, the old limits might be returned for a few minutes.

This operation has a limit of 1 transaction per second per account.

", - "DescribeStream": "

Describes the specified Amazon Kinesis stream.

The information returned includes the stream name, Amazon Resource Name (ARN), creation time, enhanced metric configuration, and shard map. The shard map is an array of shard objects. For each shard object, there is the hash key and sequence number ranges that the shard spans, and the IDs of any earlier shards that played in a role in creating the shard. Every record ingested in the stream is identified by a sequence number, which is assigned when the record is put into the stream.

You can limit the number of shards returned by each call. For more information, see Retrieving Shards from a Stream in the Amazon Kinesis Streams Developer Guide.

There are no guarantees about the chronological order shards returned. To process shards in chronological order, use the ID of the parent shard to track the lineage to the oldest shard.

This operation has a limit of 10 transactions per second per account.

", + "DescribeStream": "

Describes the specified Kinesis stream.

The information returned includes the stream name, Amazon Resource Name (ARN), creation time, enhanced metric configuration, and shard map. The shard map is an array of shard objects. For each shard object, there is the hash key and sequence number ranges that the shard spans, and the IDs of any earlier shards that played in a role in creating the shard. Every record ingested in the stream is identified by a sequence number, which is assigned when the record is put into the stream.

You can limit the number of shards returned by each call. For more information, see Retrieving Shards from a Stream in the Amazon Kinesis Streams Developer Guide.

There are no guarantees about the chronological order shards returned. To process shards in chronological order, use the ID of the parent shard to track the lineage to the oldest shard.

This operation has a limit of 10 transactions per second per account.

", + "DescribeStreamSummary": "

Provides a summarized description of the specified Kinesis stream without the shard list.

The information returned includes the stream name, Amazon Resource Name (ARN), status, record retention period, approximate creation time, monitoring, encryption details, and open shard count.

", "DisableEnhancedMonitoring": "

Disables enhanced monitoring.

", - "EnableEnhancedMonitoring": "

Enables enhanced Amazon Kinesis stream monitoring for shard-level metrics.

", - "GetRecords": "

Gets data records from an Amazon Kinesis stream's shard.

Specify a shard iterator using the ShardIterator parameter. The shard iterator specifies the position in the shard from which you want to start reading data records sequentially. If there are no records available in the portion of the shard that the iterator points to, GetRecords returns an empty list. Note that it might take multiple calls to get to a portion of the shard that contains records.

You can scale by provisioning multiple shards per stream while considering service limits (for more information, see Streams Limits in the Amazon Kinesis Streams Developer Guide). Your application should have one thread per shard, each reading continuously from its stream. To read from a stream continually, call GetRecords in a loop. Use GetShardIterator to get the shard iterator to specify in the first GetRecords call. GetRecords returns a new shard iterator in NextShardIterator. Specify the shard iterator returned in NextShardIterator in subsequent calls to GetRecords. Note that if the shard has been closed, the shard iterator can't return more data and GetRecords returns null in NextShardIterator. You can terminate the loop when the shard is closed, or when the shard iterator reaches the record with the sequence number or other attribute that marks it as the last record to process.

Each data record can be up to 1 MB in size, and each shard can read up to 2 MB per second. You can ensure that your calls don't exceed the maximum supported size or throughput by using the Limit parameter to specify the maximum number of records that GetRecords can return. Consider your average record size when determining this limit.

The size of the data returned by GetRecords varies depending on the utilization of the shard. The maximum size of data that GetRecords can return is 10 MB. If a call returns this amount of data, subsequent calls made within the next 5 seconds throw ProvisionedThroughputExceededException. If there is insufficient provisioned throughput on the shard, subsequent calls made within the next 1 second throw ProvisionedThroughputExceededException. Note that GetRecords won't return any data when it throws an exception. For this reason, we recommend that you wait one second between calls to GetRecords; however, it's possible that the application will get exceptions for longer than 1 second.

To detect whether the application is falling behind in processing, you can use the MillisBehindLatest response attribute. You can also monitor the stream using CloudWatch metrics and other mechanisms (see Monitoring in the Amazon Kinesis Streams Developer Guide).

Each Amazon Kinesis record includes a value, ApproximateArrivalTimestamp, that is set when a stream successfully receives and stores a record. This is commonly referred to as a server-side timestamp, whereas a client-side timestamp is set when a data producer creates or sends the record to a stream (a data producer is any data source putting data records into a stream, for example with PutRecords). The timestamp has millisecond precision. There are no guarantees about the timestamp accuracy, or that the timestamp is always increasing. For example, records in a shard or across a stream might have timestamps that are out of order.

", - "GetShardIterator": "

Gets an Amazon Kinesis shard iterator. A shard iterator expires five minutes after it is returned to the requester.

A shard iterator specifies the shard position from which to start reading data records sequentially. The position is specified using the sequence number of a data record in a shard. A sequence number is the identifier associated with every record ingested in the stream, and is assigned when a record is put into the stream. Each stream has one or more shards.

You must specify the shard iterator type. For example, you can set the ShardIteratorType parameter to read exactly from the position denoted by a specific sequence number by using the AT_SEQUENCE_NUMBER shard iterator type, or right after the sequence number by using the AFTER_SEQUENCE_NUMBER shard iterator type, using sequence numbers returned by earlier calls to PutRecord, PutRecords, GetRecords, or DescribeStream. In the request, you can specify the shard iterator type AT_TIMESTAMP to read records from an arbitrary point in time, TRIM_HORIZON to cause ShardIterator to point to the last untrimmed record in the shard in the system (the oldest data record in the shard), or LATEST so that you always read the most recent data in the shard.

When you read repeatedly from a stream, use a GetShardIterator request to get the first shard iterator for use in your first GetRecords request and for subsequent reads use the shard iterator returned by the GetRecords request in NextShardIterator. A new shard iterator is returned by every GetRecords request in NextShardIterator, which you use in the ShardIterator parameter of the next GetRecords request.

If a GetShardIterator request is made too often, you receive a ProvisionedThroughputExceededException. For more information about throughput limits, see GetRecords, and Streams Limits in the Amazon Kinesis Streams Developer Guide.

If the shard is closed, GetShardIterator returns a valid iterator for the last sequence number of the shard. Note that a shard can be closed as a result of using SplitShard or MergeShards.

GetShardIterator has a limit of 5 transactions per second per account per open shard.

", - "IncreaseStreamRetentionPeriod": "

Increases the Amazon Kinesis stream's retention period, which is the length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 168 hours (7 days).

Upon choosing a longer stream retention period, this operation will increase the time period records are accessible that have not yet expired. However, it will not make previous data that has expired (older than the stream's previous retention period) accessible after the operation has been called. For example, if a stream's retention period is set to 24 hours and is increased to 168 hours, any data that is older than 24 hours will remain inaccessible to consumer applications.

", - "ListStreams": "

Lists your Amazon Kinesis streams.

The number of streams may be too large to return from a single call to ListStreams. You can limit the number of returned streams using the Limit parameter. If you do not specify a value for the Limit parameter, Amazon Kinesis uses the default limit, which is currently 10.

You can detect if there are more streams available to list by using the HasMoreStreams flag from the returned output. If there are more streams available, you can request more streams by using the name of the last stream returned by the ListStreams request in the ExclusiveStartStreamName parameter in a subsequent request to ListStreams. The group of stream names returned by the subsequent request is then added to the list. You can continue this process until all the stream names have been collected in the list.

ListStreams has a limit of 5 transactions per second per account.

", - "ListTagsForStream": "

Lists the tags for the specified Amazon Kinesis stream.

", - "MergeShards": "

Merges two adjacent shards in an Amazon Kinesis stream and combines them into a single shard to reduce the stream's capacity to ingest and transport data. Two shards are considered adjacent if the union of the hash key ranges for the two shards form a contiguous set with no gaps. For example, if you have two shards, one with a hash key range of 276...381 and the other with a hash key range of 382...454, then you could merge these two shards into a single shard that would have a hash key range of 276...454. After the merge, the single child shard receives data for all hash key values covered by the two parent shards.

MergeShards is called when there is a need to reduce the overall capacity of a stream because of excess capacity that is not being used. You must specify the shard to be merged and the adjacent shard for a stream. For more information about merging shards, see Merge Two Shards in the Amazon Kinesis Streams Developer Guide.

If the stream is in the ACTIVE state, you can call MergeShards. If a stream is in the CREATING, UPDATING, or DELETING state, MergeShards returns a ResourceInUseException. If the specified stream does not exist, MergeShards returns a ResourceNotFoundException.

You can use DescribeStream to check the state of the stream, which is returned in StreamStatus.

MergeShards is an asynchronous operation. Upon receiving a MergeShards request, Amazon Kinesis immediately returns a response and sets the StreamStatus to UPDATING. After the operation is completed, Amazon Kinesis sets the StreamStatus to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state.

You use DescribeStream to determine the shard IDs that are specified in the MergeShards request.

If you try to operate on too many streams in parallel using CreateStream, DeleteStream, MergeShards or SplitShard, you will receive a LimitExceededException.

MergeShards has limit of 5 transactions per second per account.

", - "PutRecord": "

Writes a single data record into an Amazon Kinesis stream. Call PutRecord to send data into the stream for real-time ingestion and subsequent processing, one record at a time. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second.

You must specify the name of the stream that captures, stores, and transports the data; a partition key; and the data blob itself.

The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on.

The partition key is used by Amazon Kinesis to distribute data across shards. Amazon Kinesis segregates the data records that belong to a stream into multiple shards, using the partition key associated with each data record to determine which shard a given data record belongs to.

Partition keys are Unicode strings, with a maximum length limit of 256 characters for each key. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards using the hash key ranges of the shards. You can override hashing the partition key to determine the shard by explicitly specifying a hash value using the ExplicitHashKey parameter. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide.

PutRecord returns the shard ID of where the data record was placed and the sequence number that was assigned to the data record.

Sequence numbers increase over time and are specific to a shard within a stream, not across all shards within a stream. To guarantee strictly increasing ordering, write serially to a shard and use the SequenceNumberForOrdering parameter. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide.

If a PutRecord request cannot be processed because of insufficient provisioned throughput on the shard involved in the request, PutRecord throws ProvisionedThroughputExceededException.

Data records are accessible for only 24 hours from the time that they are added to a stream.

", - "PutRecords": "

Writes multiple data records into an Amazon Kinesis stream in a single call (also referred to as a PutRecords request). Use this operation to send data into the stream for data ingestion and processing.

Each PutRecords request can support up to 500 records. Each record in the request can be as large as 1 MB, up to a limit of 5 MB for the entire request, including partition keys. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second.

You must specify the name of the stream that captures, stores, and transports the data; and an array of request Records, with each record in the array requiring a partition key and data blob. The record size limit applies to the total size of the partition key and data blob.

The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on.

The partition key is used by Amazon Kinesis as input to a hash function that maps the partition key and associated data to a specific shard. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide.

Each record in the Records array may include an optional parameter, ExplicitHashKey, which overrides the partition key to shard mapping. This parameter allows a data producer to determine explicitly the shard where the record is stored. For more information, see Adding Multiple Records with PutRecords in the Amazon Kinesis Streams Developer Guide.

The PutRecords response includes an array of response Records. Each record in the response array directly correlates with a record in the request array using natural ordering, from the top to the bottom of the request and response. The response Records array always includes the same number of records as the request array.

The response Records array includes both successfully and unsuccessfully processed records. Amazon Kinesis attempts to process all records in each PutRecords request. A single record failure does not stop the processing of subsequent records.

A successfully-processed record includes ShardId and SequenceNumber values. The ShardId parameter identifies the shard in the stream where the record is stored. The SequenceNumber parameter is an identifier assigned to the put record, unique to all records in the stream.

An unsuccessfully-processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error and can be one of the following values: ProvisionedThroughputExceededException or InternalFailure. ErrorMessage provides more detailed information about the ProvisionedThroughputExceededException exception including the account ID, stream name, and shard ID of the record that was throttled. For more information about partially successful responses, see Adding Multiple Records with PutRecords in the Amazon Kinesis Streams Developer Guide.

By default, data records are accessible for only 24 hours from the time that they are added to an Amazon Kinesis stream. This retention period can be modified using the DecreaseStreamRetentionPeriod and IncreaseStreamRetentionPeriod operations.

", - "RemoveTagsFromStream": "

Removes tags from the specified Amazon Kinesis stream. Removed tags are deleted and cannot be recovered after this operation successfully completes.

If you specify a tag that does not exist, it is ignored.

", - "SplitShard": "

Splits a shard into two new shards in the Amazon Kinesis stream to increase the stream's capacity to ingest and transport data. SplitShard is called when there is a need to increase the overall capacity of a stream because of an expected increase in the volume of data records being ingested.

You can also use SplitShard when a shard appears to be approaching its maximum utilization; for example, the producers sending data into the specific shard are suddenly sending more than previously anticipated. You can also call SplitShard to increase stream capacity, so that more Amazon Kinesis applications can simultaneously read data from the stream for real-time processing.

You must specify the shard to be split and the new hash key, which is the position in the shard where the shard gets split in two. In many cases, the new hash key might simply be the average of the beginning and ending hash key, but it can be any hash key value in the range being mapped into the shard. For more information about splitting shards, see Split a Shard in the Amazon Kinesis Streams Developer Guide.

You can use DescribeStream to determine the shard ID and hash key values for the ShardToSplit and NewStartingHashKey parameters that are specified in the SplitShard request.

SplitShard is an asynchronous operation. Upon receiving a SplitShard request, Amazon Kinesis immediately returns a response and sets the stream status to UPDATING. After the operation is completed, Amazon Kinesis sets the stream status to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state.

You can use DescribeStream to check the status of the stream, which is returned in StreamStatus. If the stream is in the ACTIVE state, you can call SplitShard. If a stream is in CREATING or UPDATING or DELETING states, DescribeStream returns a ResourceInUseException.

If the specified stream does not exist, DescribeStream returns a ResourceNotFoundException. If you try to create more shards than are authorized for your account, you receive a LimitExceededException.

For the default shard limit for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. If you need to increase this limit, contact AWS Support.

If you try to operate on too many streams simultaneously using CreateStream, DeleteStream, MergeShards, and/or SplitShard, you receive a LimitExceededException.

SplitShard has limit of 5 transactions per second per account.

", - "UpdateShardCount": "

Updates the shard count of the specified stream to the specified number of shards.

Updating the shard count is an asynchronous operation. Upon receiving the request, Amazon Kinesis returns immediately and sets the status of the stream to UPDATING. After the update is complete, Amazon Kinesis sets the status of the stream back to ACTIVE. Depending on the size of the stream, the scaling action could take a few minutes to complete. You can continue to read and write data to your stream while its status is UPDATING.

To update the shard count, Amazon Kinesis performs splits and merges and individual shards. This can cause short-lived shards to be created, in addition to the final shards. We recommend that you double or halve the shard count, as this results in the fewest number of splits or merges.

This operation has a rate limit of twice per rolling 24 hour period. You cannot scale above double your current shard count, scale below half your current shard count, or exceed the shard limits for your account.

For the default limits for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. If you need to increase a limit, contact AWS Support.

" + "EnableEnhancedMonitoring": "

Enables enhanced Kinesis stream monitoring for shard-level metrics.

", + "GetRecords": "

Gets data records from a Kinesis stream's shard.

Specify a shard iterator using the ShardIterator parameter. The shard iterator specifies the position in the shard from which you want to start reading data records sequentially. If there are no records available in the portion of the shard that the iterator points to, GetRecords returns an empty list. It might take multiple calls to get to a portion of the shard that contains records.

You can scale by provisioning multiple shards per stream while considering service limits (for more information, see Streams Limits in the Amazon Kinesis Streams Developer Guide). Your application should have one thread per shard, each reading continuously from its stream. To read from a stream continually, call GetRecords in a loop. Use GetShardIterator to get the shard iterator to specify in the first GetRecords call. GetRecords returns a new shard iterator in NextShardIterator. Specify the shard iterator returned in NextShardIterator in subsequent calls to GetRecords. If the shard has been closed, the shard iterator can't return more data and GetRecords returns null in NextShardIterator. You can terminate the loop when the shard is closed, or when the shard iterator reaches the record with the sequence number or other attribute that marks it as the last record to process.

Each data record can be up to 1 MB in size, and each shard can read up to 2 MB per second. You can ensure that your calls don't exceed the maximum supported size or throughput by using the Limit parameter to specify the maximum number of records that GetRecords can return. Consider your average record size when determining this limit.

The size of the data returned by GetRecords varies depending on the utilization of the shard. The maximum size of data that GetRecords can return is 10 MB. If a call returns this amount of data, subsequent calls made within the next 5 seconds throw ProvisionedThroughputExceededException. If there is insufficient provisioned throughput on the shard, subsequent calls made within the next 1 second throw ProvisionedThroughputExceededException. GetRecords won't return any data when it throws an exception. For this reason, we recommend that you wait one second between calls to GetRecords; however, it's possible that the application will get exceptions for longer than 1 second.

To detect whether the application is falling behind in processing, you can use the MillisBehindLatest response attribute. You can also monitor the stream using CloudWatch metrics and other mechanisms (see Monitoring in the Amazon Kinesis Streams Developer Guide).

Each Amazon Kinesis record includes a value, ApproximateArrivalTimestamp, that is set when a stream successfully receives and stores a record. This is commonly referred to as a server-side time stamp, whereas a client-side time stamp is set when a data producer creates or sends the record to a stream (a data producer is any data source putting data records into a stream, for example with PutRecords). The time stamp has millisecond precision. There are no guarantees about the time stamp accuracy, or that the time stamp is always increasing. For example, records in a shard or across a stream might have time stamps that are out of order.

", + "GetShardIterator": "

Gets an Amazon Kinesis shard iterator. A shard iterator expires five minutes after it is returned to the requester.

A shard iterator specifies the shard position from which to start reading data records sequentially. The position is specified using the sequence number of a data record in a shard. A sequence number is the identifier associated with every record ingested in the stream, and is assigned when a record is put into the stream. Each stream has one or more shards.

You must specify the shard iterator type. For example, you can set the ShardIteratorType parameter to read exactly from the position denoted by a specific sequence number by using the AT_SEQUENCE_NUMBER shard iterator type. Alternatively, the parameter can read right after the sequence number by using the AFTER_SEQUENCE_NUMBER shard iterator type, using sequence numbers returned by earlier calls to PutRecord, PutRecords, GetRecords, or DescribeStream. In the request, you can specify the shard iterator type AT_TIMESTAMP to read records from an arbitrary point in time, TRIM_HORIZON to cause ShardIterator to point to the last untrimmed record in the shard in the system (the oldest data record in the shard), or LATEST so that you always read the most recent data in the shard.

When you read repeatedly from a stream, use a GetShardIterator request to get the first shard iterator for use in your first GetRecords request and for subsequent reads use the shard iterator returned by the GetRecords request in NextShardIterator. A new shard iterator is returned by every GetRecords request in NextShardIterator, which you use in the ShardIterator parameter of the next GetRecords request.

If a GetShardIterator request is made too often, you receive a ProvisionedThroughputExceededException. For more information about throughput limits, see GetRecords, and Streams Limits in the Amazon Kinesis Streams Developer Guide.

If the shard is closed, GetShardIterator returns a valid iterator for the last sequence number of the shard. A shard can be closed as a result of using SplitShard or MergeShards.

GetShardIterator has a limit of 5 transactions per second per account per open shard.

", + "IncreaseStreamRetentionPeriod": "

Increases the Amazon Kinesis stream's retention period, which is the length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 168 hours (7 days).

If you choose a longer stream retention period, this operation increases the time period during which records that have not yet expired are accessible. However, it does not make previous, expired data (older than the stream's previous retention period) accessible after the operation has been called. For example, if a stream's retention period is set to 24 hours and is increased to 168 hours, any data that is older than 24 hours remains inaccessible to consumer applications.

", + "ListStreams": "

Lists your Kinesis streams.

The number of streams may be too large to return from a single call to ListStreams. You can limit the number of returned streams using the Limit parameter. If you do not specify a value for the Limit parameter, Kinesis Streams uses the default limit, which is currently 10.

You can detect if there are more streams available to list by using the HasMoreStreams flag from the returned output. If there are more streams available, you can request more streams by using the name of the last stream returned by the ListStreams request in the ExclusiveStartStreamName parameter in a subsequent request to ListStreams. The group of stream names returned by the subsequent request is then added to the list. You can continue this process until all the stream names have been collected in the list.

ListStreams has a limit of 5 transactions per second per account.

", + "ListTagsForStream": "

Lists the tags for the specified Kinesis stream.

", + "MergeShards": "

Merges two adjacent shards in a Kinesis stream and combines them into a single shard to reduce the stream's capacity to ingest and transport data. Two shards are considered adjacent if the union of the hash key ranges for the two shards form a contiguous set with no gaps. For example, if you have two shards, one with a hash key range of 276...381 and the other with a hash key range of 382...454, then you could merge these two shards into a single shard that would have a hash key range of 276...454. After the merge, the single child shard receives data for all hash key values covered by the two parent shards.

MergeShards is called when there is a need to reduce the overall capacity of a stream because of excess capacity that is not being used. You must specify the shard to be merged and the adjacent shard for a stream. For more information about merging shards, see Merge Two Shards in the Amazon Kinesis Streams Developer Guide.

If the stream is in the ACTIVE state, you can call MergeShards. If a stream is in the CREATING, UPDATING, or DELETING state, MergeShards returns a ResourceInUseException. If the specified stream does not exist, MergeShards returns a ResourceNotFoundException.

You can use DescribeStream to check the state of the stream, which is returned in StreamStatus.

MergeShards is an asynchronous operation. Upon receiving a MergeShards request, Amazon Kinesis immediately returns a response and sets the StreamStatus to UPDATING. After the operation is completed, Amazon Kinesis sets the StreamStatus to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state.

You use DescribeStream to determine the shard IDs that are specified in the MergeShards request.

If you try to operate on too many streams in parallel using CreateStream, DeleteStream, MergeShards or SplitShard, you will receive a LimitExceededException.

MergeShards has a limit of 5 transactions per second per account.

", + "PutRecord": "

Writes a single data record into an Amazon Kinesis stream. Call PutRecord to send data into the stream for real-time ingestion and subsequent processing, one record at a time. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second.

You must specify the name of the stream that captures, stores, and transports the data; a partition key; and the data blob itself.

The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on.

The partition key is used by Kinesis Streams to distribute data across shards. Kinesis Streams segregates the data records that belong to a stream into multiple shards, using the partition key associated with each data record to determine the shard to which a given data record belongs.

Partition keys are Unicode strings, with a maximum length limit of 256 characters for each key. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards using the hash key ranges of the shards. You can override hashing the partition key to determine the shard by explicitly specifying a hash value using the ExplicitHashKey parameter. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide.

PutRecord returns the shard ID of where the data record was placed and the sequence number that was assigned to the data record.

Sequence numbers increase over time and are specific to a shard within a stream, not across all shards within a stream. To guarantee strictly increasing ordering, write serially to a shard and use the SequenceNumberForOrdering parameter. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide.

If a PutRecord request cannot be processed because of insufficient provisioned throughput on the shard involved in the request, PutRecord throws ProvisionedThroughputExceededException.

By default, data records are accessible for 24 hours from the time that they are added to a stream. You can use IncreaseStreamRetentionPeriod or DecreaseStreamRetentionPeriod to modify this retention period.

", + "PutRecords": "

Writes multiple data records into a Kinesis stream in a single call (also referred to as a PutRecords request). Use this operation to send data into the stream for data ingestion and processing.

Each PutRecords request can support up to 500 records. Each record in the request can be as large as 1 MB, up to a limit of 5 MB for the entire request, including partition keys. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MB per second.

You must specify the name of the stream that captures, stores, and transports the data; and an array of request Records, with each record in the array requiring a partition key and data blob. The record size limit applies to the total size of the partition key and data blob.

The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on.

The partition key is used by Kinesis Streams as input to a hash function that maps the partition key and associated data to a specific shard. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream. For more information, see Adding Data to a Stream in the Amazon Kinesis Streams Developer Guide.

Each record in the Records array may include an optional parameter, ExplicitHashKey, which overrides the partition key to shard mapping. This parameter allows a data producer to determine explicitly the shard where the record is stored. For more information, see Adding Multiple Records with PutRecords in the Amazon Kinesis Streams Developer Guide.

The PutRecords response includes an array of response Records. Each record in the response array directly correlates with a record in the request array using natural ordering, from the top to the bottom of the request and response. The response Records array always includes the same number of records as the request array.

The response Records array includes both successfully and unsuccessfully processed records. Amazon Kinesis attempts to process all records in each PutRecords request. A single record failure does not stop the processing of subsequent records.

A successfully processed record includes ShardId and SequenceNumber values. The ShardId parameter identifies the shard in the stream where the record is stored. The SequenceNumber parameter is an identifier assigned to the put record, unique to all records in the stream.

An unsuccessfully processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error and can be one of the following values: ProvisionedThroughputExceededException or InternalFailure. ErrorMessage provides more detailed information about the ProvisionedThroughputExceededException exception including the account ID, stream name, and shard ID of the record that was throttled. For more information about partially successful responses, see Adding Multiple Records with PutRecords in the Amazon Kinesis Streams Developer Guide.

By default, data records are accessible for 24 hours from the time that they are added to a stream. You can use IncreaseStreamRetentionPeriod or DecreaseStreamRetentionPeriod to modify this retention period.

", + "RemoveTagsFromStream": "

Removes tags from the specified Kinesis stream. Removed tags are deleted and cannot be recovered after this operation successfully completes.

If you specify a tag that does not exist, it is ignored.

", + "SplitShard": "

Splits a shard into two new shards in the Kinesis stream, to increase the stream's capacity to ingest and transport data. SplitShard is called when there is a need to increase the overall capacity of a stream because of an expected increase in the volume of data records being ingested.

You can also use SplitShard when a shard appears to be approaching its maximum utilization; for example, the producers sending data into the specific shard are suddenly sending more than previously anticipated. You can also call SplitShard to increase stream capacity, so that more Kinesis Streams applications can simultaneously read data from the stream for real-time processing.

You must specify the shard to be split and the new hash key, which is the position in the shard where the shard gets split in two. In many cases, the new hash key might be the average of the beginning and ending hash key, but it can be any hash key value in the range being mapped into the shard. For more information, see Split a Shard in the Amazon Kinesis Streams Developer Guide.

You can use DescribeStream to determine the shard ID and hash key values for the ShardToSplit and NewStartingHashKey parameters that are specified in the SplitShard request.

SplitShard is an asynchronous operation. Upon receiving a SplitShard request, Kinesis Streams immediately returns a response and sets the stream status to UPDATING. After the operation is completed, Kinesis Streams sets the stream status to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state.

You can use DescribeStream to check the status of the stream, which is returned in StreamStatus. If the stream is in the ACTIVE state, you can call SplitShard. If a stream is in CREATING or UPDATING or DELETING states, DescribeStream returns a ResourceInUseException.

If the specified stream does not exist, DescribeStream returns a ResourceNotFoundException. If you try to create more shards than are authorized for your account, you receive a LimitExceededException.

For the default shard limit for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. To increase this limit, contact AWS Support.

If you try to operate on too many streams simultaneously using CreateStream, DeleteStream, MergeShards, and/or SplitShard, you receive a LimitExceededException.

SplitShard has a limit of 5 transactions per second per account.

", + "StartStreamEncryption": "

Enables or updates server-side encryption using an AWS KMS key for a specified stream.

Starting encryption is an asynchronous operation. Upon receiving the request, Kinesis Streams returns immediately and sets the status of the stream to UPDATING. After the update is complete, Kinesis Streams sets the status of the stream back to ACTIVE. Updating or applying encryption normally takes a few seconds to complete, but it can take minutes. You can continue to read and write data to your stream while its status is UPDATING. Once the status of the stream is ACTIVE, encryption begins for records written to the stream.

API Limits: You can successfully apply a new AWS KMS key for server-side encryption 25 times in a rolling 24-hour period.

Note: It can take up to five seconds after the stream is in an ACTIVE status before all records written to the stream are encrypted. After you enable encryption, you can verify that encryption is applied by inspecting the API response from PutRecord or PutRecords.

", + "StopStreamEncryption": "

Disables server-side encryption for a specified stream.

Stopping encryption is an asynchronous operation. Upon receiving the request, Kinesis Streams returns immediately and sets the status of the stream to UPDATING. After the update is complete, Kinesis Streams sets the status of the stream back to ACTIVE. Stopping encryption normally takes a few seconds to complete, but it can take minutes. You can continue to read and write data to your stream while its status is UPDATING. Once the status of the stream is ACTIVE, records written to the stream are no longer encrypted by Kinesis Streams.

API Limits: You can successfully disable server-side encryption 25 times in a rolling 24-hour period.

Note: It can take up to five seconds after the stream is in an ACTIVE status before all records written to the stream are no longer subject to encryption. After you disabled encryption, you can verify that encryption is not applied by inspecting the API response from PutRecord or PutRecords.

", + "UpdateShardCount": "

Updates the shard count of the specified stream to the specified number of shards.

Updating the shard count is an asynchronous operation. Upon receiving the request, Kinesis Streams returns immediately and sets the status of the stream to UPDATING. After the update is complete, Kinesis Streams sets the status of the stream back to ACTIVE. Depending on the size of the stream, the scaling action could take a few minutes to complete. You can continue to read and write data to your stream while its status is UPDATING.

To update the shard count, Kinesis Streams performs splits or merges on individual shards. This can cause short-lived shards to be created, in addition to the final shards. We recommend that you double or halve the shard count, as this results in the fewest number of splits or merges.

This operation has the following limits, which are per region per account unless otherwise noted. You cannot:

For the default limits for an AWS account, see Streams Limits in the Amazon Kinesis Streams Developer Guide. To increase a limit, contact AWS Support.

" }, "shapes": { "AddTagsToStreamInput": { @@ -46,7 +49,7 @@ "refs": { "PutRecordInput$Data": "

The data blob to put into the record, which is base64-encoded when the blob is serialized. When the data blob (the payload before base64-encoding) is added to the partition key size, the total size must not exceed the maximum record size (1 MB).

", "PutRecordsRequestEntry$Data": "

The data blob to put into the record, which is base64-encoded when the blob is serialized. When the data blob (the payload before base64-encoding) is added to the partition key size, the total size must not exceed the maximum record size (1 MB).

", - "Record$Data": "

The data blob. The data in the blob is both opaque and immutable to the Amazon Kinesis service, which does not inspect, interpret, or change the data in the blob in any way. When the data blob (the payload before base64-encoding) is added to the partition key size, the total size must not exceed the maximum record size (1 MB).

" + "Record$Data": "

The data blob. The data in the blob is both opaque and immutable to Kinesis Streams, which does not inspect, interpret, or change the data in the blob in any way. When the data blob (the payload before base64-encoding) is added to the partition key size, the total size must not exceed the maximum record size (1 MB).

" } }, "DecreaseStreamRetentionPeriodInput": { @@ -85,6 +88,16 @@ "refs": { } }, + "DescribeStreamSummaryInput": { + "base": null, + "refs": { + } + }, + "DescribeStreamSummaryOutput": { + "base": null, + "refs": { + } + }, "DisableEnhancedMonitoringInput": { "base": "

Represents the input for DisableEnhancedMonitoring.

", "refs": { @@ -95,6 +108,18 @@ "refs": { } }, + "EncryptionType": { + "base": null, + "refs": { + "PutRecordOutput$EncryptionType": "

The encryption type to use on the record. This parameter can be one of the following values:

", + "PutRecordsOutput$EncryptionType": "

The encryption type used on the records. This parameter can be one of the following values:

", + "Record$EncryptionType": "

The encryption type used on the record. This parameter can be one of the following values:

", + "StartStreamEncryptionInput$EncryptionType": "

The encryption type to use. The only valid value is KMS.

", + "StopStreamEncryptionInput$EncryptionType": "

The encryption type. The only valid value is KMS.

", + "StreamDescription$EncryptionType": "

The server-side encryption type used on the stream. This parameter can be one of the following values:

", + "StreamDescriptionSummary$EncryptionType": "

The encryption type used. This value is one of the following:

" + } + }, "EnhancedMetrics": { "base": "

Represents enhanced metrics types.

", "refs": { @@ -104,7 +129,8 @@ "EnhancedMonitoringList": { "base": null, "refs": { - "StreamDescription$EnhancedMonitoring": "

Represents the current enhanced monitoring settings of the stream.

" + "StreamDescription$EnhancedMonitoring": "

Represents the current enhanced monitoring settings of the stream.

", + "StreamDescriptionSummary$EnhancedMonitoring": "

Represents the current enhanced monitoring settings of the stream.

" } }, "EnhancedMonitoringOutput": { @@ -123,6 +149,12 @@ "refs": { "ExpiredIteratorException$message": "

A message that provides information about the error.

", "InvalidArgumentException$message": "

A message that provides information about the error.

", + "KMSAccessDeniedException$message": "

A message that provides information about the error.

", + "KMSDisabledException$message": "

A message that provides information about the error.

", + "KMSInvalidStateException$message": "

A message that provides information about the error.

", + "KMSNotFoundException$message": "

A message that provides information about the error.

", + "KMSOptInRequired$message": "

A message that provides information about the error.

", + "KMSThrottlingException$message": "

A message that provides information about the error.

", "LimitExceededException$message": "

A message that provides information about the error.

", "ProvisionedThroughputExceededException$message": "

A message that provides information about the error.

", "PutRecordsResultEntry$ErrorMessage": "

The error message for an individual record result. An ErrorCode value of ProvisionedThroughputExceededException has an error message that includes the account ID, stream name, and shard ID. An ErrorCode value of InternalFailure has the error message \"Internal Service Failure\".

", @@ -187,8 +219,47 @@ "refs": { } }, + "KMSAccessDeniedException": { + "base": "

The ciphertext references a key that doesn't exist or that you don't have access to.

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

The request was rejected because the specified customer master key (CMK) isn't enabled.

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

The request was rejected because the state of the specified resource isn't valid for this request. For more information, see How Key State Affects Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

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

The request was rejected because the specified entity or resource can't be found.

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

The AWS access key ID needs a subscription for the service.

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

The request was denied due to request throttling. For more information about throttling, see Limits in the AWS Key Management Service Developer Guide.

", + "refs": { + } + }, + "KeyId": { + "base": null, + "refs": { + "StartStreamEncryptionInput$KeyId": "

The GUID for the customer-managed KMS key to use for encryption. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".You can also use a master key owned by Kinesis Streams by specifying the alias aws/kinesis.

", + "StopStreamEncryptionInput$KeyId": "

The GUID for the customer-managed KMS key to use for encryption. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".You can also use a master key owned by Kinesis Streams by specifying the alias aws/kinesis.

", + "StreamDescription$KeyId": "

The GUID for the customer-managed KMS key to use for encryption. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".You can also use a master key owned by Kinesis Streams by specifying the alias aws/kinesis.

", + "StreamDescriptionSummary$KeyId": "

The GUID for the customer-managed KMS key to use for encryption. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".You can also use a master key owned by Kinesis Streams by specifying the alias aws/kinesis.

" + } + }, "LimitExceededException": { - "base": "

The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).

", + "base": "

The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed.

", "refs": { } }, @@ -248,7 +319,7 @@ "MillisBehindLatest": { "base": null, "refs": { - "GetRecordsOutput$MillisBehindLatest": "

The number of milliseconds the GetRecords response is from the tip of the stream, indicating how far behind current time the consumer is. A value of zero indicates record processing is caught up, and there are no new records to process at this moment.

" + "GetRecordsOutput$MillisBehindLatest": "

The number of milliseconds the GetRecords response is from the tip of the stream, indicating how far behind current time the consumer is. A value of zero indicates that record processing is caught up, and there are no new records to process at this moment.

" } }, "PartitionKey": { @@ -267,6 +338,7 @@ "IncreaseStreamRetentionPeriodInput$RetentionPeriodHours": "

The new retention period of the stream, in hours. Must be more than the current retention period.

", "PutRecordsOutput$FailedRecordCount": "

The number of unsuccessfully processed records in a PutRecords request.

", "StreamDescription$RetentionPeriodHours": "

The current retention period, in hours.

", + "StreamDescriptionSummary$RetentionPeriodHours": "

The current retention period, in hours.

", "UpdateShardCountInput$TargetShardCount": "

The new number of shards.

", "UpdateShardCountOutput$CurrentShardCount": "

The current number of shards.

", "UpdateShardCountOutput$TargetShardCount": "

The updated number of shards.

" @@ -322,7 +394,7 @@ } }, "Record": { - "base": "

The unit of data of the Amazon Kinesis stream, which is composed of a sequence number, a partition key, and a data blob.

", + "base": "

The unit of data of the Kinesis stream, which is composed of a sequence number, a partition key, and a data blob.

", "refs": { "RecordList$member": null } @@ -339,7 +411,7 @@ } }, "ResourceInUseException": { - "base": "

The resource is not available for this operation. For successful operation, the resource needs to be in the ACTIVE state.

", + "base": "

The resource is not available for this operation. For successful operation, the resource must be in the ACTIVE state.

", "refs": { } }, @@ -358,10 +430,10 @@ "base": null, "refs": { "GetShardIteratorInput$StartingSequenceNumber": "

The sequence number of the data record in the shard from which to start reading. Used with shard iterator type AT_SEQUENCE_NUMBER and AFTER_SEQUENCE_NUMBER.

", - "PutRecordInput$SequenceNumberForOrdering": "

Guarantees strictly increasing sequence numbers, for puts from the same client and to the same partition key. Usage: set the SequenceNumberForOrdering of record n to the sequence number of record n-1 (as returned in the result when putting record n-1). If this parameter is not set, records will be coarsely ordered based on arrival time.

", + "PutRecordInput$SequenceNumberForOrdering": "

Guarantees strictly increasing sequence numbers, for puts from the same client and to the same partition key. Usage: set the SequenceNumberForOrdering of record n to the sequence number of record n-1 (as returned in the result when putting record n-1). If this parameter is not set, records are coarsely ordered based on arrival time.

", "PutRecordOutput$SequenceNumber": "

The sequence number identifier that was assigned to the put data record. The sequence number for the record is unique across all records in the stream. A sequence number is the identifier associated with every record put into the stream.

", "PutRecordsResultEntry$SequenceNumber": "

The sequence number for an individual record result.

", - "Record$SequenceNumber": "

The unique identifier of the record in the stream.

", + "Record$SequenceNumber": "

The unique identifier of the record within its shard.

", "SequenceNumberRange$StartingSequenceNumber": "

The starting sequence number for the range.

", "SequenceNumberRange$EndingSequenceNumber": "

The ending sequence number for the range. Shards that are in the OPEN state have an ending sequence number of null.

" } @@ -373,7 +445,7 @@ } }, "Shard": { - "base": "

A uniquely identified group of data records in an Amazon Kinesis stream.

", + "base": "

A uniquely identified group of data records in a Kinesis stream.

", "refs": { "ShardList$member": null } @@ -382,14 +454,15 @@ "base": null, "refs": { "DescribeLimitsOutput$ShardLimit": "

The maximum number of shards.

", - "DescribeLimitsOutput$OpenShardCount": "

The number of open shards.

" + "DescribeLimitsOutput$OpenShardCount": "

The number of open shards.

", + "StreamDescriptionSummary$OpenShardCount": "

The number of open shards in the stream.

" } }, "ShardId": { "base": null, "refs": { "DescribeStreamInput$ExclusiveStartShardId": "

The shard ID of the shard to start with.

", - "GetShardIteratorInput$ShardId": "

The shard ID of the Amazon Kinesis shard to get the iterator for.

", + "GetShardIteratorInput$ShardId": "

The shard ID of the Kinesis Streams shard to get the iterator for.

", "MergeShardsInput$ShardToMerge": "

The shard ID of the shard to combine with the adjacent shard for the merge.

", "MergeShardsInput$AdjacentShardToMerge": "

The shard ID of the adjacent shard for the merge.

", "PutRecordOutput$ShardId": "

The shard ID of the shard where the data record was placed.

", @@ -404,14 +477,14 @@ "base": null, "refs": { "GetRecordsInput$ShardIterator": "

The position in the shard from which you want to start sequentially reading data records. A shard iterator specifies this position using the sequence number of a data record in the shard.

", - "GetRecordsOutput$NextShardIterator": "

The next position in the shard from which to start sequentially reading data records. If set to null, the shard has been closed and the requested iterator will not return any more data.

", + "GetRecordsOutput$NextShardIterator": "

The next position in the shard from which to start sequentially reading data records. If set to null, the shard has been closed and the requested iterator does not return any more data.

", "GetShardIteratorOutput$ShardIterator": "

The position in the shard from which to start reading data records sequentially. A shard iterator specifies this position using the sequence number of a data record in a shard.

" } }, "ShardIteratorType": { "base": null, "refs": { - "GetShardIteratorInput$ShardIteratorType": "

Determines how the shard iterator is used to start reading data records from the shard.

The following are the valid Amazon Kinesis shard iterator types:

" + "GetShardIteratorInput$ShardIteratorType": "

Determines how the shard iterator is used to start reading data records from the shard.

The following are the valid Amazon Kinesis shard iterator types:

" } }, "ShardList": { @@ -425,10 +498,21 @@ "refs": { } }, + "StartStreamEncryptionInput": { + "base": null, + "refs": { + } + }, + "StopStreamEncryptionInput": { + "base": null, + "refs": { + } + }, "StreamARN": { "base": null, "refs": { - "StreamDescription$StreamARN": "

The Amazon Resource Name (ARN) for the stream being described.

" + "StreamDescription$StreamARN": "

The Amazon Resource Name (ARN) for the stream being described.

", + "StreamDescriptionSummary$StreamARN": "

The Amazon Resource Name (ARN) for the stream being described.

" } }, "StreamDescription": { @@ -437,17 +521,24 @@ "DescribeStreamOutput$StreamDescription": "

The current status of the stream, the stream ARN, an array of shard objects that comprise the stream, and whether there are more shards available.

" } }, + "StreamDescriptionSummary": { + "base": "

Represents the output for DescribeStreamSummary

", + "refs": { + "DescribeStreamSummaryOutput$StreamDescriptionSummary": "

A StreamDescriptionSummary containing information about the stream.

" + } + }, "StreamName": { "base": null, "refs": { "AddTagsToStreamInput$StreamName": "

The name of the stream.

", - "CreateStreamInput$StreamName": "

A name to identify the stream. The stream name is scoped to the AWS account used by the application that creates the stream. It is also scoped by region. That is, two streams in two different AWS accounts can have the same name, and two streams in the same AWS account but in two different regions can have the same name.

", + "CreateStreamInput$StreamName": "

A name to identify the stream. The stream name is scoped to the AWS account used by the application that creates the stream. It is also scoped by region. That is, two streams in two different AWS accounts can have the same name. Two streams in the same AWS account but in two different regions can also have the same name.

", "DecreaseStreamRetentionPeriodInput$StreamName": "

The name of the stream to modify.

", "DeleteStreamInput$StreamName": "

The name of the stream to delete.

", "DescribeStreamInput$StreamName": "

The name of the stream to describe.

", - "DisableEnhancedMonitoringInput$StreamName": "

The name of the Amazon Kinesis stream for which to disable enhanced monitoring.

", + "DescribeStreamSummaryInput$StreamName": "

The name of the stream to describe.

", + "DisableEnhancedMonitoringInput$StreamName": "

The name of the Kinesis stream for which to disable enhanced monitoring.

", "EnableEnhancedMonitoringInput$StreamName": "

The name of the stream for which to enable enhanced monitoring.

", - "EnhancedMonitoringOutput$StreamName": "

The name of the Amazon Kinesis stream.

", + "EnhancedMonitoringOutput$StreamName": "

The name of the Kinesis stream.

", "GetShardIteratorInput$StreamName": "

The name of the Amazon Kinesis stream.

", "IncreaseStreamRetentionPeriodInput$StreamName": "

The name of the stream to modify.

", "ListStreamsInput$ExclusiveStartStreamName": "

The name of the stream to start the list with.

", @@ -457,7 +548,10 @@ "PutRecordsInput$StreamName": "

The stream name associated with the request.

", "RemoveTagsFromStreamInput$StreamName": "

The name of the stream.

", "SplitShardInput$StreamName": "

The name of the stream for the shard split.

", + "StartStreamEncryptionInput$StreamName": "

The name of the stream for which to start encrypting records.

", + "StopStreamEncryptionInput$StreamName": "

The name of the stream on which to stop encrypting records.

", "StreamDescription$StreamName": "

The name of the stream being described.

", + "StreamDescriptionSummary$StreamName": "

The name of the stream being described.

", "StreamNameList$member": null, "UpdateShardCountInput$StreamName": "

The name of the stream.

", "UpdateShardCountOutput$StreamName": "

The name of the stream.

" @@ -472,7 +566,8 @@ "StreamStatus": { "base": null, "refs": { - "StreamDescription$StreamStatus": "

The current status of the stream being described. The stream status is one of the following states:

" + "StreamDescription$StreamStatus": "

The current status of the stream being described. The stream status is one of the following states:

", + "StreamDescriptionSummary$StreamStatus": "

The current status of the stream being described. The stream status is one of the following states:

" } }, "Tag": { @@ -518,9 +613,10 @@ "Timestamp": { "base": null, "refs": { - "GetShardIteratorInput$Timestamp": "

The timestamp of the data record from which to start reading. Used with shard iterator type AT_TIMESTAMP. A timestamp is the Unix epoch date with precision in milliseconds. For example, 2016-04-04T19:58:46.480-00:00 or 1459799926.480. If a record with this exact timestamp does not exist, the iterator returned is for the next (later) record. If the timestamp is older than the current trim horizon, the iterator returned is for the oldest untrimmed data record (TRIM_HORIZON).

", + "GetShardIteratorInput$Timestamp": "

The time stamp of the data record from which to start reading. Used with shard iterator type AT_TIMESTAMP. A time stamp is the Unix epoch date with precision in milliseconds. For example, 2016-04-04T19:58:46.480-00:00 or 1459799926.480. If a record with this exact time stamp does not exist, the iterator returned is for the next (later) record. If the time stamp is older than the current trim horizon, the iterator returned is for the oldest untrimmed data record (TRIM_HORIZON).

", "Record$ApproximateArrivalTimestamp": "

The approximate time that the record was inserted into the stream.

", - "StreamDescription$StreamCreationTimestamp": "

The approximate time that the stream was created.

" + "StreamDescription$StreamCreationTimestamp": "

The approximate time that the stream was created.

", + "StreamDescriptionSummary$StreamCreationTimestamp": "

The approximate time that the stream was created.

" } }, "UpdateShardCountInput": { diff --git a/models/apis/kinesisanalytics/2015-08-14/api-2.json b/models/apis/kinesisanalytics/2015-08-14/api-2.json index bb891d3a9bb..b9513c73c17 100644 --- a/models/apis/kinesisanalytics/2015-08-14/api-2.json +++ b/models/apis/kinesisanalytics/2015-08-14/api-2.json @@ -36,6 +36,22 @@ }, "input":{"shape":"AddApplicationInputRequest"}, "output":{"shape":"AddApplicationInputResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"CodeValidationException"} + ] + }, + "AddApplicationInputProcessingConfiguration":{ + "name":"AddApplicationInputProcessingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddApplicationInputProcessingConfigurationRequest"}, + "output":{"shape":"AddApplicationInputProcessingConfigurationResponse"}, "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"ResourceInUseException"}, @@ -117,6 +133,21 @@ {"shape":"ConcurrentModificationException"} ] }, + "DeleteApplicationInputProcessingConfiguration":{ + "name":"DeleteApplicationInputProcessingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteApplicationInputProcessingConfigurationRequest"}, + "output":{"shape":"DeleteApplicationInputProcessingConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "DeleteApplicationOutput":{ "name":"DeleteApplicationOutput", "http":{ @@ -170,7 +201,8 @@ "errors":[ {"shape":"InvalidArgumentException"}, {"shape":"UnableToDetectSchemaException"}, - {"shape":"ResourceProvisionedThroughputExceededException"} + {"shape":"ResourceProvisionedThroughputExceededException"}, + {"shape":"ServiceUnavailableException"} ] }, "ListApplications":{ @@ -246,6 +278,26 @@ "members":{ } }, + "AddApplicationInputProcessingConfigurationRequest":{ + "type":"structure", + "required":[ + "ApplicationName", + "CurrentApplicationVersionId", + "InputId", + "InputProcessingConfiguration" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "CurrentApplicationVersionId":{"shape":"ApplicationVersionId"}, + "InputId":{"shape":"Id"}, + "InputProcessingConfiguration":{"shape":"InputProcessingConfiguration"} + } + }, + "AddApplicationInputProcessingConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "AddApplicationInputRequest":{ "type":"structure", "required":[ @@ -495,6 +547,24 @@ "members":{ } }, + "DeleteApplicationInputProcessingConfigurationRequest":{ + "type":"structure", + "required":[ + "ApplicationName", + "CurrentApplicationVersionId", + "InputId" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "CurrentApplicationVersionId":{"shape":"ApplicationVersionId"}, + "InputId":{"shape":"Id"} + } + }, + "DeleteApplicationInputProcessingConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteApplicationOutputRequest":{ "type":"structure", "required":[ @@ -569,15 +639,12 @@ }, "DiscoverInputSchemaRequest":{ "type":"structure", - "required":[ - "ResourceARN", - "RoleARN", - "InputStartingPositionConfiguration" - ], "members":{ "ResourceARN":{"shape":"ResourceARN"}, "RoleARN":{"shape":"RoleARN"}, - "InputStartingPositionConfiguration":{"shape":"InputStartingPositionConfiguration"} + "InputStartingPositionConfiguration":{"shape":"InputStartingPositionConfiguration"}, + "S3Configuration":{"shape":"S3Configuration"}, + "InputProcessingConfiguration":{"shape":"InputProcessingConfiguration"} } }, "DiscoverInputSchemaResponse":{ @@ -585,11 +652,16 @@ "members":{ "InputSchema":{"shape":"SourceSchema"}, "ParsedInputRecords":{"shape":"ParsedInputRecords"}, + "ProcessedInputRecords":{"shape":"ProcessedInputRecords"}, "RawInputRecords":{"shape":"RawInputRecords"} } }, "ErrorMessage":{"type":"string"}, - "FileKey":{"type":"string"}, + "FileKey":{ + "type":"string", + "max":1024, + "min":1 + }, "Id":{ "type":"string", "max":50, @@ -620,6 +692,7 @@ ], "members":{ "NamePrefix":{"shape":"InAppStreamName"}, + "InputProcessingConfiguration":{"shape":"InputProcessingConfiguration"}, "KinesisStreamsInput":{"shape":"KinesisStreamsInput"}, "KinesisFirehoseInput":{"shape":"KinesisFirehoseInput"}, "InputParallelism":{"shape":"InputParallelism"}, @@ -647,6 +720,7 @@ "InputId":{"shape":"Id"}, "NamePrefix":{"shape":"InAppStreamName"}, "InAppStreamNames":{"shape":"InAppStreamNames"}, + "InputProcessingConfigurationDescription":{"shape":"InputProcessingConfigurationDescription"}, "KinesisStreamsInputDescription":{"shape":"KinesisStreamsInputDescription"}, "KinesisFirehoseInputDescription":{"shape":"KinesisFirehoseInputDescription"}, "InputSchema":{"shape":"SourceSchema"}, @@ -658,6 +732,31 @@ "type":"list", "member":{"shape":"InputDescription"} }, + "InputLambdaProcessor":{ + "type":"structure", + "required":[ + "ResourceARN", + "RoleARN" + ], + "members":{ + "ResourceARN":{"shape":"ResourceARN"}, + "RoleARN":{"shape":"RoleARN"} + } + }, + "InputLambdaProcessorDescription":{ + "type":"structure", + "members":{ + "ResourceARN":{"shape":"ResourceARN"}, + "RoleARN":{"shape":"RoleARN"} + } + }, + "InputLambdaProcessorUpdate":{ + "type":"structure", + "members":{ + "ResourceARNUpdate":{"shape":"ResourceARN"}, + "RoleARNUpdate":{"shape":"RoleARN"} + } + }, "InputParallelism":{ "type":"structure", "members":{ @@ -666,7 +765,7 @@ }, "InputParallelismCount":{ "type":"integer", - "max":10, + "max":64, "min":1 }, "InputParallelismUpdate":{ @@ -675,6 +774,26 @@ "CountUpdate":{"shape":"InputParallelismCount"} } }, + "InputProcessingConfiguration":{ + "type":"structure", + "required":["InputLambdaProcessor"], + "members":{ + "InputLambdaProcessor":{"shape":"InputLambdaProcessor"} + } + }, + "InputProcessingConfigurationDescription":{ + "type":"structure", + "members":{ + "InputLambdaProcessorDescription":{"shape":"InputLambdaProcessorDescription"} + } + }, + "InputProcessingConfigurationUpdate":{ + "type":"structure", + "required":["InputLambdaProcessorUpdate"], + "members":{ + "InputLambdaProcessorUpdate":{"shape":"InputLambdaProcessorUpdate"} + } + }, "InputSchemaUpdate":{ "type":"structure", "members":{ @@ -703,6 +822,7 @@ "members":{ "InputId":{"shape":"Id"}, "NamePrefixUpdate":{"shape":"InAppStreamName"}, + "InputProcessingConfigurationUpdate":{"shape":"InputProcessingConfigurationUpdate"}, "KinesisStreamsInputUpdate":{"shape":"KinesisStreamsInputUpdate"}, "KinesisFirehoseInputUpdate":{"shape":"KinesisFirehoseInputUpdate"}, "InputSchemaUpdate":{"shape":"InputSchemaUpdate"}, @@ -936,6 +1056,11 @@ "type":"list", "member":{"shape":"ParsedInputRecord"} }, + "ProcessedInputRecord":{"type":"string"}, + "ProcessedInputRecords":{ + "type":"list", + "member":{"shape":"ProcessedInputRecord"} + }, "RawInputRecord":{"type":"string"}, "RawInputRecords":{ "type":"list", @@ -960,9 +1085,12 @@ "RecordColumnMapping":{"type":"string"}, "RecordColumnName":{ "type":"string", - "pattern":"[a-zA-Z][a-zA-Z0-9_]+" + "pattern":"[a-zA-Z_][a-zA-Z0-9_]*" + }, + "RecordColumnSqlType":{ + "type":"string", + "min":1 }, - "RecordColumnSqlType":{"type":"string"}, "RecordColumns":{ "type":"list", "member":{"shape":"RecordColumn"}, @@ -992,7 +1120,10 @@ "type":"string", "min":1 }, - "RecordRowPath":{"type":"string"}, + "RecordRowPath":{ + "type":"string", + "min":1 + }, "ReferenceDataSource":{ "type":"structure", "required":[ @@ -1041,7 +1172,7 @@ "type":"string", "max":2048, "min":1, - "pattern":"arn:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:\\d{12}:[a-zA-Z_0-9+=,.@\\-_/:]+" + "pattern":"arn:.*" }, "ResourceInUseException":{ "type":"structure", @@ -1070,6 +1201,19 @@ "min":1, "pattern":"arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+" }, + "S3Configuration":{ + "type":"structure", + "required":[ + "RoleARN", + "BucketARN", + "FileKey" + ], + "members":{ + "RoleARN":{"shape":"RoleARN"}, + "BucketARN":{"shape":"BucketARN"}, + "FileKey":{"shape":"FileKey"} + } + }, "S3ReferenceDataSource":{ "type":"structure", "required":[ @@ -1104,6 +1248,14 @@ "ReferenceRoleARNUpdate":{"shape":"RoleARN"} } }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, "SourceSchema":{ "type":"structure", "required":[ @@ -1149,7 +1301,8 @@ "type":"structure", "members":{ "message":{"shape":"ErrorMessage"}, - "RawInputRecords":{"shape":"RawInputRecords"} + "RawInputRecords":{"shape":"RawInputRecords"}, + "ProcessedInputRecords":{"shape":"ProcessedInputRecords"} }, "exception":true }, diff --git a/models/apis/kinesisanalytics/2015-08-14/docs-2.json b/models/apis/kinesisanalytics/2015-08-14/docs-2.json index 06e6949c069..b2f5dbd8969 100644 --- a/models/apis/kinesisanalytics/2015-08-14/docs-2.json +++ b/models/apis/kinesisanalytics/2015-08-14/docs-2.json @@ -2,13 +2,15 @@ "version": "2.0", "service": null, "operations": { - "AddApplicationCloudWatchLoggingOption": "

Adds a CloudWatch log stream to monitor application configuration errors. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Monitoring Configuration Errors.

", + "AddApplicationCloudWatchLoggingOption": "

Adds a CloudWatch log stream to monitor application configuration errors. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Working with Amazon CloudWatch Logs.

", "AddApplicationInput": "

Adds a streaming source to your Amazon Kinesis application. For conceptual information, see Configuring Application Input.

You can add a streaming source either when you create an application or you can use this operation to add a streaming source after you create an application. For more information, see CreateApplication.

Any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the DescribeApplication operation to find the current application version.

This operation requires permissions to perform the kinesisanalytics:AddApplicationInput action.

", + "AddApplicationInputProcessingConfiguration": "

Adds an InputProcessingConfiguration to an application. An input processor preprocesses records on the input stream before the application's SQL code executes. Currently, the only input processor available is AWS Lambda.

", "AddApplicationOutput": "

Adds an external destination to your Amazon Kinesis Analytics application.

If you want Amazon Kinesis Analytics to deliver data from an in-application stream within your application to an external destination (such as an Amazon Kinesis stream or a Firehose delivery stream), you add the relevant configuration to your application using this operation. You can configure one or more outputs for your application. Each output configuration maps an in-application stream and an external destination.

You can use one of the output configurations to deliver data from your in-application error stream to an external destination so that you can analyze the errors. For conceptual information, see Understanding Application Output (Destination).

Note that any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the DescribeApplication operation to find the current application version.

For the limits on the number of application inputs and outputs you can configure, see Limits.

This operation requires permissions to perform the kinesisanalytics:AddApplicationOutput action.

", "AddApplicationReferenceDataSource": "

Adds a reference data source to an existing application.

Amazon Kinesis Analytics reads reference data (that is, an Amazon S3 object) and creates an in-application table within your application. In the request, you provide the source (S3 bucket name and object key name), name of the in-application table to create, and the necessary mapping information that describes how data in Amazon S3 object maps to columns in the resulting in-application table.

For conceptual information, see Configuring Application Input. For the limits on data sources you can add to your application, see Limits.

This operation requires permissions to perform the kinesisanalytics:AddApplicationOutput action.

", "CreateApplication": "

Creates an Amazon Kinesis Analytics application. You can configure each application with one streaming source as input, application code to process the input, and up to five streaming destinations where you want Amazon Kinesis Analytics to write the output data from your application. For an overview, see How it Works.

In the input configuration, you map the streaming source to an in-application stream, which you can think of as a constantly updating table. In the mapping, you must provide a schema for the in-application stream and map each data column in the in-application stream to a data element in the streaming source.

Your application code is one or more SQL statements that read input data, transform it, and generate output. Your application code can create one or more SQL artifacts like SQL streams or pumps.

In the output configuration, you can configure the application to write data from in-application streams created in your applications to up to five streaming destinations.

To read data from your source stream or write data to destination streams, Amazon Kinesis Analytics needs your permissions. You grant these permissions by creating IAM roles. This operation requires permissions to perform the kinesisanalytics:CreateApplication action.

For introductory exercises to create an Amazon Kinesis Analytics application, see Getting Started.

", "DeleteApplication": "

Deletes the specified application. Amazon Kinesis Analytics halts application execution and deletes the application, including any application artifacts (such as in-application streams, reference table, and application code).

This operation requires permissions to perform the kinesisanalytics:DeleteApplication action.

", - "DeleteApplicationCloudWatchLoggingOption": "

Deletes a CloudWatch log stream from an application. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Monitoring Configuration Errors.

", + "DeleteApplicationCloudWatchLoggingOption": "

Deletes a CloudWatch log stream from an application. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Working with Amazon CloudWatch Logs.

", + "DeleteApplicationInputProcessingConfiguration": "

Deletes an InputProcessingConfiguration from an input.

", "DeleteApplicationOutput": "

Deletes output destination configuration from your application configuration. Amazon Kinesis Analytics will no longer write data from the corresponding in-application stream to the external output destination.

This operation requires permissions to perform the kinesisanalytics:DeleteApplicationOutput action.

", "DeleteApplicationReferenceDataSource": "

Deletes a reference data source configuration from the specified application configuration.

If the application is running, Amazon Kinesis Analytics immediately removes the in-application table that you created using the AddApplicationReferenceDataSource operation.

This operation requires permissions to perform the kinesisanalytics.DeleteApplicationReferenceDataSource action.

", "DescribeApplication": "

Returns information about a specific Amazon Kinesis Analytics application.

If you want to retrieve a list of all applications in your account, use the ListApplications operation.

This operation requires permissions to perform the kinesisanalytics:DescribeApplication action. You can use DescribeApplication to get the current application versionId, which you need to call other operations such as Update.

", @@ -29,6 +31,16 @@ "refs": { } }, + "AddApplicationInputProcessingConfigurationRequest": { + "base": null, + "refs": { + } + }, + "AddApplicationInputProcessingConfigurationResponse": { + "base": null, + "refs": { + } + }, "AddApplicationInputRequest": { "base": "

", "refs": { @@ -83,14 +95,16 @@ "ApplicationName": { "base": null, "refs": { - "AddApplicationCloudWatchLoggingOptionRequest$ApplicationName": "

The Amazon Kinesis Analytics application name.

", + "AddApplicationCloudWatchLoggingOptionRequest$ApplicationName": "

The Kinesis Analytics application name.

", + "AddApplicationInputProcessingConfigurationRequest$ApplicationName": "

Name of the application to which you want to add the input processing configuration.

", "AddApplicationInputRequest$ApplicationName": "

Name of your existing Amazon Kinesis Analytics application to which you want to add the streaming source.

", "AddApplicationOutputRequest$ApplicationName": "

Name of the application to which you want to add the output configuration.

", "AddApplicationReferenceDataSourceRequest$ApplicationName": "

Name of an existing application.

", "ApplicationDetail$ApplicationName": "

Name of the application.

", "ApplicationSummary$ApplicationName": "

Name of the application.

", "CreateApplicationRequest$ApplicationName": "

Name of your Amazon Kinesis Analytics application (for example, sample-app).

", - "DeleteApplicationCloudWatchLoggingOptionRequest$ApplicationName": "

The Amazon Kinesis Analytics application name.

", + "DeleteApplicationCloudWatchLoggingOptionRequest$ApplicationName": "

The Kinesis Analytics application name.

", + "DeleteApplicationInputProcessingConfigurationRequest$ApplicationName": "

The Kinesis Analytics application name.

", "DeleteApplicationOutputRequest$ApplicationName": "

Amazon Kinesis Analytics application name.

", "DeleteApplicationReferenceDataSourceRequest$ApplicationName": "

Name of an existing application.

", "DeleteApplicationRequest$ApplicationName": "

Name of the Amazon Kinesis Analytics application to delete.

", @@ -130,12 +144,14 @@ "ApplicationVersionId": { "base": null, "refs": { - "AddApplicationCloudWatchLoggingOptionRequest$CurrentApplicationVersionId": "

The version ID of the Amazon Kinesis Analytics application.

", + "AddApplicationCloudWatchLoggingOptionRequest$CurrentApplicationVersionId": "

The version ID of the Kinesis Analytics application.

", + "AddApplicationInputProcessingConfigurationRequest$CurrentApplicationVersionId": "

Version of the application to which you want to add the input processing configuration. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "AddApplicationInputRequest$CurrentApplicationVersionId": "

Current version of your Amazon Kinesis Analytics application. You can use the DescribeApplication operation to find the current application version.

", "AddApplicationOutputRequest$CurrentApplicationVersionId": "

Version of the application to which you want add the output configuration. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "AddApplicationReferenceDataSourceRequest$CurrentApplicationVersionId": "

Version of the application for which you are adding the reference data source. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "ApplicationDetail$ApplicationVersionId": "

Provides the current application version.

", - "DeleteApplicationCloudWatchLoggingOptionRequest$CurrentApplicationVersionId": "

The version ID of the Amazon Kinesis Analytics application.

", + "DeleteApplicationCloudWatchLoggingOptionRequest$CurrentApplicationVersionId": "

The version ID of the Kinesis Analytics application.

", + "DeleteApplicationInputProcessingConfigurationRequest$CurrentApplicationVersionId": "

The version ID of the Kinesis Analytics application.

", "DeleteApplicationOutputRequest$CurrentApplicationVersionId": "

Amazon Kinesis Analytics application version. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "DeleteApplicationReferenceDataSourceRequest$CurrentApplicationVersionId": "

Version of the application. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationException is returned.

", "UpdateApplicationRequest$CurrentApplicationVersionId": "

The current application version ID. You can use the DescribeApplication operation to get this value.

" @@ -150,6 +166,7 @@ "BucketARN": { "base": null, "refs": { + "S3Configuration$BucketARN": null, "S3ReferenceDataSource$BucketARN": "

Amazon Resource Name (ARN) of the S3 bucket.

", "S3ReferenceDataSourceDescription$BucketARN": "

Amazon Resource Name (ARN) of the S3 bucket.

", "S3ReferenceDataSourceUpdate$BucketARNUpdate": "

Amazon Resource Name (ARN) of the S3 bucket.

" @@ -162,9 +179,9 @@ } }, "CloudWatchLoggingOption": { - "base": "

Provides a description of CloudWatch logging options, including the log stream ARN and the role ARN.

", + "base": "

Provides a description of CloudWatch logging options, including the log stream Amazon Resource Name (ARN) and the role ARN.

", "refs": { - "AddApplicationCloudWatchLoggingOptionRequest$CloudWatchLoggingOption": "

Provide the CloudWatch log stream ARN and the IAM role ARN. Note: To write application messages to CloudWatch, the IAM role used must have the PutLogEvents policy action enabled.

", + "AddApplicationCloudWatchLoggingOptionRequest$CloudWatchLoggingOption": "

Provides the CloudWatch log stream Amazon Resource Name (ARN) and the IAM role ARN. Note: To write application messages to CloudWatch, the IAM role that is used must have the PutLogEvents policy action enabled.

", "CloudWatchLoggingOptions$member": null } }, @@ -177,7 +194,7 @@ "CloudWatchLoggingOptionDescriptions": { "base": null, "refs": { - "ApplicationDetail$CloudWatchLoggingOptionDescriptions": "

Describes the CloudWatch log streams configured to receive application messages. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Monitoring Configuration Errors.

" + "ApplicationDetail$CloudWatchLoggingOptionDescriptions": "

Describes the CloudWatch log streams that are configured to receive application messages. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see Working with Amazon CloudWatch Logs.

" } }, "CloudWatchLoggingOptionUpdate": { @@ -195,7 +212,7 @@ "CloudWatchLoggingOptions": { "base": null, "refs": { - "CreateApplicationRequest$CloudWatchLoggingOptions": "

Use this parameter to configure a CloudWatch log stream to monitor application configuration errors. For more information, see Monitoring Configuration Errors.

" + "CreateApplicationRequest$CloudWatchLoggingOptions": "

Use this parameter to configure a CloudWatch log stream to monitor application configuration errors. For more information, see Working with Amazon CloudWatch Logs.

" } }, "CodeValidationException": { @@ -228,6 +245,16 @@ "refs": { } }, + "DeleteApplicationInputProcessingConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DeleteApplicationInputProcessingConfigurationResponse": { + "base": null, + "refs": { + } + }, "DeleteApplicationOutputRequest": { "base": "

", "refs": { @@ -277,7 +304,7 @@ } }, "DiscoverInputSchemaRequest": { - "base": "

", + "base": null, "refs": { } }, @@ -297,12 +324,14 @@ "ResourceInUseException$message": "

", "ResourceNotFoundException$message": "

", "ResourceProvisionedThroughputExceededException$message": null, + "ServiceUnavailableException$message": null, "UnableToDetectSchemaException$message": null } }, "FileKey": { "base": null, "refs": { + "S3Configuration$FileKey": null, "S3ReferenceDataSource$FileKey": "

Object key name containing reference data.

", "S3ReferenceDataSourceDescription$FileKey": "

Amazon S3 object key name.

", "S3ReferenceDataSourceUpdate$FileKeyUpdate": "

Object key name.

" @@ -311,9 +340,11 @@ "Id": { "base": null, "refs": { + "AddApplicationInputProcessingConfigurationRequest$InputId": "

The ID of the input configuration to which to add the input configuration. You can get a list of the input IDs for an application using the DescribeApplication operation.

", "CloudWatchLoggingOptionDescription$CloudWatchLoggingOptionId": "

ID of the CloudWatch logging option description.

", "CloudWatchLoggingOptionUpdate$CloudWatchLoggingOptionId": "

ID of the CloudWatch logging option to update

", "DeleteApplicationCloudWatchLoggingOptionRequest$CloudWatchLoggingOptionId": "

The CloudWatchLoggingOptionId of the CloudWatch logging option to delete. You can use the DescribeApplication operation to get the CloudWatchLoggingOptionId.

", + "DeleteApplicationInputProcessingConfigurationRequest$InputId": "

The ID of the input configuration from which to delete the input configuration. You can get a list of the input IDs for an application using the DescribeApplication operation.

", "DeleteApplicationOutputRequest$OutputId": "

The ID of the configuration to delete. Each output configuration that is added to the application, either when the application is created or later using the AddApplicationOutput operation, has a unique ID. You need to provide the ID to uniquely identify the output configuration that you want to delete from the application configuration. You can use the DescribeApplication operation to get the specific OutputId.

", "DeleteApplicationReferenceDataSourceRequest$ReferenceId": "

ID of the reference data source. When you add a reference data source to your application using the AddApplicationReferenceDataSource, Amazon Kinesis Analytics assigns an ID. You can use the DescribeApplication operation to get the reference ID.

", "InputConfiguration$Id": "

Input source ID. You can get this ID by calling the DescribeApplication operation.

", @@ -354,7 +385,7 @@ "Input": { "base": "

When you configure the application input, you specify the streaming source, the in-application stream name that is created, and the mapping between the two. For more information, see Configuring Application Input.

", "refs": { - "AddApplicationInputRequest$Input": "

", + "AddApplicationInputRequest$Input": "

The Input to add.

", "Inputs$member": null } }, @@ -382,6 +413,24 @@ "ApplicationDetail$InputDescriptions": "

Describes the application input configuration. For more information, see Configuring Application Input.

" } }, + "InputLambdaProcessor": { + "base": "

An object that contains the ARN of the AWS Lambda function that is used to preprocess records in the stream, and the ARN of the IAM role used to access the AWS Lambda function.

", + "refs": { + "InputProcessingConfiguration$InputLambdaProcessor": "

The InputLambdaProcessor that is used to preprocess the records in the stream prior to being processed by your application code.

" + } + }, + "InputLambdaProcessorDescription": { + "base": "

An object that contains the ARN of the AWS Lambda function that is used to preprocess records in the stream, and the ARN of the IAM role used to access the AWS Lambda expression.

", + "refs": { + "InputProcessingConfigurationDescription$InputLambdaProcessorDescription": "

Provides configuration information about the associated InputLambdaProcessorDescription.

" + } + }, + "InputLambdaProcessorUpdate": { + "base": "

Represents an update to the InputLambdaProcessor that is used to preprocess the records in the stream.

", + "refs": { + "InputProcessingConfigurationUpdate$InputLambdaProcessorUpdate": "

Provides update information for an InputLambdaProcessor.

" + } + }, "InputParallelism": { "base": "

Describes the number of in-application streams to create for a given streaming source. For information about parallelism, see Configuring Application Input.

", "refs": { @@ -402,8 +451,28 @@ "InputUpdate$InputParallelismUpdate": "

Describes the parallelism updates (the number in-application streams Amazon Kinesis Analytics creates for the specific streaming source).

" } }, + "InputProcessingConfiguration": { + "base": "

Provides a description of a processor that is used to preprocess the records in the stream prior to being processed by your application code. Currently, the only input processor available is AWS Lambda.

", + "refs": { + "AddApplicationInputProcessingConfigurationRequest$InputProcessingConfiguration": "

The InputProcessingConfiguration to add to the application.

", + "DiscoverInputSchemaRequest$InputProcessingConfiguration": "

The InputProcessingConfiguration to use to preprocess the records before discovering the schema of the records.

", + "Input$InputProcessingConfiguration": "

The InputProcessingConfiguration for the Input. An input processor transforms records as they are received from the stream, before the application's SQL code executes. Currently, the only input processing configuration available is InputLambdaProcessor.

" + } + }, + "InputProcessingConfigurationDescription": { + "base": "

Provides configuration information about an input processor. Currently, the only input processor available is AWS Lambda.

", + "refs": { + "InputDescription$InputProcessingConfigurationDescription": "

The description of the preprocessor that executes on records in this input before the application's code is run.

" + } + }, + "InputProcessingConfigurationUpdate": { + "base": "

Describes updates to an InputProcessingConfiguration.

", + "refs": { + "InputUpdate$InputProcessingConfigurationUpdate": "

Describes updates for an input processing configuration.

" + } + }, "InputSchemaUpdate": { - "base": "

Describes updates for the application's input schema.

", + "base": "

Describes updates for the application's input schema.

", "refs": { "InputUpdate$InputSchemaUpdate": "

Describes the data format on the streaming source, and how record elements on the streaming source map to columns of the in-application stream that is created.

" } @@ -459,7 +528,7 @@ "KinesisFirehoseInput": { "base": "

Identifies an Amazon Kinesis Firehose delivery stream as the streaming source. You provide the Firehose delivery stream's Amazon Resource Name (ARN) and an IAM role ARN that enables Amazon Kinesis Analytics to access the stream on your behalf.

", "refs": { - "Input$KinesisFirehoseInput": "

If the streaming source is an Amazon Kinesis Firehose delivery stream, identifies the Firehose delivery stream's ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf.

" + "Input$KinesisFirehoseInput": "

If the streaming source is an Amazon Kinesis Firehose delivery stream, identifies the Firehose delivery stream's ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf.

Note: Either KinesisStreamsInput or KinesisFirehoseInput is required.

" } }, "KinesisFirehoseInputDescription": { @@ -495,7 +564,7 @@ "KinesisStreamsInput": { "base": "

Identifies an Amazon Kinesis stream as the streaming source. You provide the stream's ARN and an IAM role ARN that enables Amazon Kinesis Analytics to access the stream on your behalf.

", "refs": { - "Input$KinesisStreamsInput": "

If the streaming source is an Amazon Kinesis stream, identifies the stream's Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf.

" + "Input$KinesisStreamsInput": "

If the streaming source is an Amazon Kinesis stream, identifies the stream's Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf.

Note: Either KinesisStreamsInput or KinesisFirehoseInput is required.

" } }, "KinesisStreamsInputDescription": { @@ -618,6 +687,19 @@ "DiscoverInputSchemaResponse$ParsedInputRecords": "

An array of elements, where each element corresponds to a row in a stream record (a stream record can have more than one row).

" } }, + "ProcessedInputRecord": { + "base": null, + "refs": { + "ProcessedInputRecords$member": null + } + }, + "ProcessedInputRecords": { + "base": null, + "refs": { + "DiscoverInputSchemaResponse$ProcessedInputRecords": "

Stream data that was modified by the processor specified in the InputProcessingConfiguration parameter.

", + "UnableToDetectSchemaException$ProcessedInputRecords": null + } + }, "RawInputRecord": { "base": null, "refs": { @@ -698,7 +780,7 @@ "RecordRowPath": { "base": null, "refs": { - "JSONMappingParameters$RecordRowPath": "

Path to the top-level parent that contains the records.

For example, consider the following JSON record:

In the RecordRowPath, \"$\" refers to the root and path \"$.vehicle.Model\" refers to the specific \"Model\" key in the JSON.

" + "JSONMappingParameters$RecordRowPath": "

Path to the top-level parent that contains the records.

" } }, "ReferenceDataSource": { @@ -737,6 +819,9 @@ "ApplicationDetail$ApplicationARN": "

ARN of the application.

", "ApplicationSummary$ApplicationARN": "

ARN of the application.

", "DiscoverInputSchemaRequest$ResourceARN": "

Amazon Resource Name (ARN) of the streaming source.

", + "InputLambdaProcessor$ResourceARN": "

The ARN of the AWS Lambda function that operates on records in the stream.

", + "InputLambdaProcessorDescription$ResourceARN": "

The ARN of the AWS Lambda function that is used to preprocess the records in the stream.

", + "InputLambdaProcessorUpdate$ResourceARNUpdate": "

The ARN of the new AWS Lambda function that is used to preprocess the records in the stream.

", "KinesisFirehoseInput$ResourceARN": "

ARN of the input Firehose delivery stream.

", "KinesisFirehoseInputDescription$ResourceARN": "

Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery stream.

", "KinesisFirehoseInputUpdate$ResourceARNUpdate": "

ARN of the input Amazon Kinesis Firehose delivery stream to read.

", @@ -769,10 +854,13 @@ "RoleARN": { "base": null, "refs": { - "CloudWatchLoggingOption$RoleARN": "

IAM ARN of the role to use to send application messages. Note: To write application messages to CloudWatch, the IAM role used must have the PutLogEvents policy action enabled.

", + "CloudWatchLoggingOption$RoleARN": "

IAM ARN of the role to use to send application messages. Note: To write application messages to CloudWatch, the IAM role that is used must have the PutLogEvents policy action enabled.

", "CloudWatchLoggingOptionDescription$RoleARN": "

IAM ARN of the role to use to send application messages. Note: To write application messages to CloudWatch, the IAM role used must have the PutLogEvents policy action enabled.

", "CloudWatchLoggingOptionUpdate$RoleARNUpdate": "

IAM ARN of the role to use to send application messages. Note: To write application messages to CloudWatch, the IAM role used must have the PutLogEvents policy action enabled.

", "DiscoverInputSchemaRequest$RoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf.

", + "InputLambdaProcessor$RoleARN": "

The ARN of the IAM role used to access the AWS Lambda function.

", + "InputLambdaProcessorDescription$RoleARN": "

The ARN of the IAM role used to access the AWS Lambda function.

", + "InputLambdaProcessorUpdate$RoleARNUpdate": "

The ARN of the new IAM role used to access the AWS Lambda function.

", "KinesisFirehoseInput$RoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to make sure the role has necessary permissions to access the stream.

", "KinesisFirehoseInputDescription$RoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics assumes to access the stream.

", "KinesisFirehoseInputUpdate$RoleARNUpdate": "

Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant necessary permissions to this role.

", @@ -785,11 +873,18 @@ "KinesisStreamsOutput$RoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to write to the destination stream on your behalf. You need to grant the necessary permissions to this role.

", "KinesisStreamsOutputDescription$RoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream.

", "KinesisStreamsOutputUpdate$RoleARNUpdate": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant the necessary permissions to this role.

", + "S3Configuration$RoleARN": null, "S3ReferenceDataSource$ReferenceRoleARN": "

ARN of the IAM role that the service can assume to read data on your behalf. This role must have permission for the s3:GetObject action on the object and trust policy that allows Amazon Kinesis Analytics service principal to assume this role.

", "S3ReferenceDataSourceDescription$ReferenceRoleARN": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object on your behalf to populate the in-application reference table.

", "S3ReferenceDataSourceUpdate$ReferenceRoleARNUpdate": "

ARN of the IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object and populate the in-application.

" } }, + "S3Configuration": { + "base": null, + "refs": { + "DiscoverInputSchemaRequest$S3Configuration": null + } + }, "S3ReferenceDataSource": { "base": "

Identifies the S3 bucket and object that contains the reference data. Also identifies the IAM role Amazon Kinesis Analytics can assume to read this object on your behalf.

An Amazon Kinesis Analytics application loads reference data only once. If the data changes, you call the UpdateApplication operation to trigger reloading of data into your application.

", "refs": { @@ -808,12 +903,17 @@ "ReferenceDataSourceUpdate$S3ReferenceDataSourceUpdate": "

Describes the S3 bucket name, object key name, and IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object on your behalf and populate the in-application reference table.

" } }, + "ServiceUnavailableException": { + "base": "

The service is unavailable, back off and retry the operation.

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

Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in-application stream.

", "refs": { "DiscoverInputSchemaResponse$InputSchema": "

Schema inferred from the streaming source. It identifies the format of the data in the streaming source and how each data element maps to corresponding columns in the in-application stream that you can create.

", "Input$InputSchema": "

Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created.

Also used to describe the format of the reference data source.

", - "InputDescription$InputSchema": null, + "InputDescription$InputSchema": "

Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created.

", "ReferenceDataSource$ReferenceSchema": null, "ReferenceDataSourceDescription$ReferenceSchema": null, "ReferenceDataSourceUpdate$ReferenceSchemaUpdate": null diff --git a/models/apis/kinesisvideo/2017-09-30/api-2.json b/models/apis/kinesisvideo/2017-09-30/api-2.json new file mode 100644 index 00000000000..487e95cd549 --- /dev/null +++ b/models/apis/kinesisvideo/2017-09-30/api-2.json @@ -0,0 +1,548 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-09-30", + "endpointPrefix":"kinesisvideo", + "protocol":"rest-json", + "serviceAbbreviation":"Kinesis Video", + "serviceFullName":"Amazon Kinesis Video Streams", + "serviceId":"Kinesis Video", + "signatureVersion":"v4", + "uid":"kinesisvideo-2017-09-30" + }, + "operations":{ + "CreateStream":{ + "name":"CreateStream", + "http":{ + "method":"POST", + "requestUri":"/createStream" + }, + "input":{"shape":"CreateStreamInput"}, + "output":{"shape":"CreateStreamOutput"}, + "errors":[ + {"shape":"AccountStreamLimitExceededException"}, + {"shape":"DeviceStreamLimitExceededException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidDeviceException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ClientLimitExceededException"} + ] + }, + "DeleteStream":{ + "name":"DeleteStream", + "http":{ + "method":"POST", + "requestUri":"/deleteStream" + }, + "input":{"shape":"DeleteStreamInput"}, + "output":{"shape":"DeleteStreamOutput"}, + "errors":[ + {"shape":"ClientLimitExceededException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"} + ] + }, + "DescribeStream":{ + "name":"DescribeStream", + "http":{ + "method":"POST", + "requestUri":"/describeStream" + }, + "input":{"shape":"DescribeStreamInput"}, + "output":{"shape":"DescribeStreamOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"NotAuthorizedException"} + ] + }, + "GetDataEndpoint":{ + "name":"GetDataEndpoint", + "http":{ + "method":"POST", + "requestUri":"/getDataEndpoint" + }, + "input":{"shape":"GetDataEndpointInput"}, + "output":{"shape":"GetDataEndpointOutput"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ClientLimitExceededException"}, + {"shape":"NotAuthorizedException"} + ] + }, + "ListStreams":{ + "name":"ListStreams", + "http":{ + "method":"POST", + "requestUri":"/listStreams" + }, + "input":{"shape":"ListStreamsInput"}, + "output":{"shape":"ListStreamsOutput"}, + "errors":[ + {"shape":"ClientLimitExceededException"}, + {"shape":"InvalidArgumentException"} + ] + }, + "ListTagsForStream":{ + "name":"ListTagsForStream", + "http":{ + "method":"POST", + "requestUri":"/listTagsForStream" + }, + "input":{"shape":"ListTagsForStreamInput"}, + "output":{"shape":"ListTagsForStreamOutput"}, + "errors":[ + {"shape":"ClientLimitExceededException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidResourceFormatException"} + ] + }, + "TagStream":{ + "name":"TagStream", + "http":{ + "method":"POST", + "requestUri":"/tagStream" + }, + "input":{"shape":"TagStreamInput"}, + "output":{"shape":"TagStreamOutput"}, + "errors":[ + {"shape":"ClientLimitExceededException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidResourceFormatException"}, + {"shape":"TagsPerResourceExceededLimitException"} + ] + }, + "UntagStream":{ + "name":"UntagStream", + "http":{ + "method":"POST", + "requestUri":"/untagStream" + }, + "input":{"shape":"UntagStreamInput"}, + "output":{"shape":"UntagStreamOutput"}, + "errors":[ + {"shape":"ClientLimitExceededException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidResourceFormatException"} + ] + }, + "UpdateDataRetention":{ + "name":"UpdateDataRetention", + "http":{ + "method":"POST", + "requestUri":"/updateDataRetention" + }, + "input":{"shape":"UpdateDataRetentionInput"}, + "output":{"shape":"UpdateDataRetentionOutput"}, + "errors":[ + {"shape":"ClientLimitExceededException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"VersionMismatchException"} + ] + }, + "UpdateStream":{ + "name":"UpdateStream", + "http":{ + "method":"POST", + "requestUri":"/updateStream" + }, + "input":{"shape":"UpdateStreamInput"}, + "output":{"shape":"UpdateStreamOutput"}, + "errors":[ + {"shape":"ClientLimitExceededException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"VersionMismatchException"} + ] + } + }, + "shapes":{ + "APIName":{ + "type":"string", + "enum":[ + "PUT_MEDIA", + "GET_MEDIA", + "LIST_FRAGMENTS", + "GET_MEDIA_FOR_FRAGMENT_LIST" + ] + }, + "AccountStreamLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ClientLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ComparisonOperator":{ + "type":"string", + "enum":["BEGINS_WITH"] + }, + "CreateStreamInput":{ + "type":"structure", + "required":["StreamName"], + "members":{ + "DeviceName":{"shape":"DeviceName"}, + "StreamName":{"shape":"StreamName"}, + "MediaType":{"shape":"MediaType"}, + "KmsKeyId":{"shape":"KmsKeyId"}, + "DataRetentionInHours":{"shape":"DataRetentionInHours"} + } + }, + "CreateStreamOutput":{ + "type":"structure", + "members":{ + "StreamARN":{"shape":"ResourceARN"} + } + }, + "DataEndpoint":{"type":"string"}, + "DataRetentionChangeInHours":{ + "type":"integer", + "min":1 + }, + "DataRetentionInHours":{ + "type":"integer", + "min":0 + }, + "DeleteStreamInput":{ + "type":"structure", + "required":["StreamARN"], + "members":{ + "StreamARN":{"shape":"ResourceARN"}, + "CurrentVersion":{"shape":"Version"} + } + }, + "DeleteStreamOutput":{ + "type":"structure", + "members":{ + } + }, + "DescribeStreamInput":{ + "type":"structure", + "members":{ + "StreamName":{"shape":"StreamName"}, + "StreamARN":{"shape":"ResourceARN"} + } + }, + "DescribeStreamOutput":{ + "type":"structure", + "members":{ + "StreamInfo":{"shape":"StreamInfo"} + } + }, + "DeviceName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "DeviceStreamLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ErrorMessage":{"type":"string"}, + "GetDataEndpointInput":{ + "type":"structure", + "required":["APIName"], + "members":{ + "StreamName":{"shape":"StreamName"}, + "StreamARN":{"shape":"ResourceARN"}, + "APIName":{"shape":"APIName"} + } + }, + "GetDataEndpointOutput":{ + "type":"structure", + "members":{ + "DataEndpoint":{"shape":"DataEndpoint"} + } + }, + "InvalidArgumentException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidDeviceException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidResourceFormatException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "KmsKeyId":{ + "type":"string", + "max":2048, + "min":1 + }, + "ListStreamsInput":{ + "type":"structure", + "members":{ + "MaxResults":{"shape":"ListStreamsInputLimit"}, + "NextToken":{"shape":"NextToken"}, + "StreamNameCondition":{"shape":"StreamNameCondition"} + } + }, + "ListStreamsInputLimit":{ + "type":"integer", + "max":10000, + "min":1 + }, + "ListStreamsOutput":{ + "type":"structure", + "members":{ + "StreamInfoList":{"shape":"StreamInfoList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListTagsForStreamInput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "StreamARN":{"shape":"ResourceARN"}, + "StreamName":{"shape":"StreamName"} + } + }, + "ListTagsForStreamOutput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "Tags":{"shape":"ResourceTags"} + } + }, + "MediaType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w\\-\\.\\+]+/[\\w\\-\\.\\+]+" + }, + "NextToken":{ + "type":"string", + "max":512, + "min":0 + }, + "NotAuthorizedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":401}, + "exception":true + }, + "ResourceARN":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+" + }, + "ResourceInUseException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "ResourceTags":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":1 + }, + "Status":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING" + ] + }, + "StreamInfo":{ + "type":"structure", + "members":{ + "DeviceName":{"shape":"DeviceName"}, + "StreamName":{"shape":"StreamName"}, + "StreamARN":{"shape":"ResourceARN"}, + "MediaType":{"shape":"MediaType"}, + "KmsKeyId":{"shape":"KmsKeyId"}, + "Version":{"shape":"Version"}, + "Status":{"shape":"Status"}, + "CreationTime":{"shape":"Timestamp"}, + "DataRetentionInHours":{"shape":"DataRetentionInHours"} + } + }, + "StreamInfoList":{ + "type":"list", + "member":{"shape":"StreamInfo"} + }, + "StreamName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "StreamNameCondition":{ + "type":"structure", + "members":{ + "ComparisonOperator":{"shape":"ComparisonOperator"}, + "ComparisonValue":{"shape":"StreamName"} + } + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1 + }, + "TagStreamInput":{ + "type":"structure", + "required":["Tags"], + "members":{ + "StreamARN":{"shape":"ResourceARN"}, + "StreamName":{"shape":"StreamName"}, + "Tags":{"shape":"ResourceTags"} + } + }, + "TagStreamOutput":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "TagsPerResourceExceededLimitException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Timestamp":{"type":"timestamp"}, + "UntagStreamInput":{ + "type":"structure", + "required":["TagKeyList"], + "members":{ + "StreamARN":{"shape":"ResourceARN"}, + "StreamName":{"shape":"StreamName"}, + "TagKeyList":{"shape":"TagKeyList"} + } + }, + "UntagStreamOutput":{ + "type":"structure", + "members":{ + } + }, + "UpdateDataRetentionInput":{ + "type":"structure", + "required":[ + "CurrentVersion", + "Operation", + "DataRetentionChangeInHours" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "StreamARN":{"shape":"ResourceARN"}, + "CurrentVersion":{"shape":"Version"}, + "Operation":{"shape":"UpdateDataRetentionOperation"}, + "DataRetentionChangeInHours":{"shape":"DataRetentionChangeInHours"} + } + }, + "UpdateDataRetentionOperation":{ + "type":"string", + "enum":[ + "INCREASE_DATA_RETENTION", + "DECREASE_DATA_RETENTION" + ] + }, + "UpdateDataRetentionOutput":{ + "type":"structure", + "members":{ + } + }, + "UpdateStreamInput":{ + "type":"structure", + "required":["CurrentVersion"], + "members":{ + "StreamName":{"shape":"StreamName"}, + "StreamARN":{"shape":"ResourceARN"}, + "CurrentVersion":{"shape":"Version"}, + "DeviceName":{"shape":"DeviceName"}, + "MediaType":{"shape":"MediaType"} + } + }, + "UpdateStreamOutput":{ + "type":"structure", + "members":{ + } + }, + "Version":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9]+" + }, + "VersionMismatchException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + } + } +} diff --git a/models/apis/kinesisvideo/2017-09-30/docs-2.json b/models/apis/kinesisvideo/2017-09-30/docs-2.json new file mode 100644 index 00000000000..1ed86e3e4e7 --- /dev/null +++ b/models/apis/kinesisvideo/2017-09-30/docs-2.json @@ -0,0 +1,360 @@ +{ + "version": "2.0", + "service": "

", + "operations": { + "CreateStream": "

Creates a new Kinesis video stream.

When you create a new stream, Kinesis Video Streams assigns it a version number. When you change the stream's metadata, Kinesis Video Streams updates the version.

CreateStream is an asynchronous operation.

For information about how the service works, see How it Works.

You must have permissions for the KinesisVideo:CreateStream action.

", + "DeleteStream": "

Deletes a Kinesis video stream and the data contained in the stream.

This method marks the stream for deletion, and makes the data in the stream inaccessible immediately.

To ensure that you have the latest version of the stream before deleting it, you can specify the stream version. Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams assigns a new version number. To get the latest stream version, use the DescribeStream API.

This operation requires permission for the KinesisVideo:DeleteStream action.

", + "DescribeStream": "

Returns the most current information about the specified stream. You must specify either the StreamName or the StreamARN.

", + "GetDataEndpoint": "

Gets an endpoint for a specified stream for either reading or writing. Use this endpoint in your application to read from the specified stream (using the GetMedia or GetMediaForFragmentList operations) or write to it (using the PutMedia operation).

The returned endpoint does not have the API name appended. The client needs to add the API name to the returned endpoint.

In the request, specify the stream either by StreamName or StreamARN.

", + "ListStreams": "

Returns an array of StreamInfo objects. Each object describes a stream. To retrieve only streams that satisfy a specific condition, you can specify a StreamNameCondition.

", + "ListTagsForStream": "

Returns a list of tags associated with the specified stream.

In the request, you must specify either the StreamName or the StreamARN.

", + "TagStream": "

Adds one or more tags to a stream. A tag is a key-value pair (the value is optional) that you can define and assign to AWS resources. If you specify a tag that already exists, the tag value is replaced with the value that you specify in the request. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

You must provide either the StreamName or the StreamARN.

This operation requires permission for the KinesisVideo:TagStream action.

Kinesis video streams support up to 50 tags.

", + "UntagStream": "

Removes one or more tags from a stream. In the request, specify only a tag key or keys; don't specify the value. If you specify a tag key that does not exist, it's ignored.

In the request, you must provide the StreamName or StreamARN.

", + "UpdateDataRetention": "

Increases or decreases the stream's data retention period by the value that you specify. To indicate whether you want to increase or decrease the data retention period, specify the Operation parameter in the request body. In the request, you must specify either the StreamName or the StreamARN.

The retention period that you specify replaces the current value.

This operation requires permission for the KinesisVideo:UpdateDataRetention action.

Changing the data retention period affects the data in the stream as follows:

", + "UpdateStream": "

Updates stream metadata, such as the device name and media type.

You must provide the stream name or the Amazon Resource Name (ARN) of the stream.

To make sure that you have the latest version of the stream before updating it, you can specify the stream version. Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams assigns a new version number. To get the latest stream version, use the DescribeStream API.

UpdateStream is an asynchronous operation, and takes time to complete.

" + }, + "shapes": { + "APIName": { + "base": null, + "refs": { + "GetDataEndpointInput$APIName": "

The name of the API action for which to get an endpoint.

" + } + }, + "AccountStreamLimitExceededException": { + "base": "

The number of streams created for the account is too high.

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

Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.

", + "refs": { + } + }, + "ComparisonOperator": { + "base": null, + "refs": { + "StreamNameCondition$ComparisonOperator": "

A comparison operator. Currently, you can specify only the BEGINS_WITH operator, which finds streams whose names start with a given prefix.

" + } + }, + "CreateStreamInput": { + "base": null, + "refs": { + } + }, + "CreateStreamOutput": { + "base": null, + "refs": { + } + }, + "DataEndpoint": { + "base": null, + "refs": { + "GetDataEndpointOutput$DataEndpoint": "

The endpoint value. To read data from the stream or to write data to it, specify this endpoint in your application.

" + } + }, + "DataRetentionChangeInHours": { + "base": null, + "refs": { + "UpdateDataRetentionInput$DataRetentionChangeInHours": "

The retention period, in hours. The value you specify replaces the current value.

" + } + }, + "DataRetentionInHours": { + "base": null, + "refs": { + "CreateStreamInput$DataRetentionInHours": "

The number of hours that you want to retain the data in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream.

The default value is 0, indicating that the stream does not persist data.

", + "StreamInfo$DataRetentionInHours": "

How long the stream retains data, in hours.

" + } + }, + "DeleteStreamInput": { + "base": null, + "refs": { + } + }, + "DeleteStreamOutput": { + "base": null, + "refs": { + } + }, + "DescribeStreamInput": { + "base": null, + "refs": { + } + }, + "DescribeStreamOutput": { + "base": null, + "refs": { + } + }, + "DeviceName": { + "base": null, + "refs": { + "CreateStreamInput$DeviceName": "

The name of the device that is writing to the stream.

In the current implementation, Kinesis Video Streams does not use this name.

", + "StreamInfo$DeviceName": "

The name of the device that is associated with the stream.

", + "UpdateStreamInput$DeviceName": "

The name of the device that is writing to the stream.

In the current implementation, Kinesis Video Streams does not use this name.

" + } + }, + "DeviceStreamLimitExceededException": { + "base": "

Not implemented.

", + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AccountStreamLimitExceededException$Message": null, + "ClientLimitExceededException$Message": null, + "DeviceStreamLimitExceededException$Message": null, + "InvalidArgumentException$Message": null, + "InvalidDeviceException$Message": null, + "InvalidResourceFormatException$Message": null, + "NotAuthorizedException$Message": null, + "ResourceInUseException$Message": null, + "ResourceNotFoundException$Message": null, + "TagsPerResourceExceededLimitException$Message": null, + "VersionMismatchException$Message": null + } + }, + "GetDataEndpointInput": { + "base": null, + "refs": { + } + }, + "GetDataEndpointOutput": { + "base": null, + "refs": { + } + }, + "InvalidArgumentException": { + "base": "

The value for this input parameter is invalid.

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

Not implemented.

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

The format of the StreamARN is invalid.

", + "refs": { + } + }, + "KmsKeyId": { + "base": null, + "refs": { + "CreateStreamInput$KmsKeyId": "

The ID of the AWS Key Management Service (AWS KMS) key that you want Kinesis Video Streams to use to encrypt stream data.

If no key ID is specified, the default, Kinesis Video-managed key (aws/kinesisvideo) is used.

For more information, see DescribeKey.

", + "StreamInfo$KmsKeyId": "

The ID of the AWS Key Management Service (AWS KMS) key that Kinesis Video Streams uses to encrypt data on the stream.

" + } + }, + "ListStreamsInput": { + "base": null, + "refs": { + } + }, + "ListStreamsInputLimit": { + "base": null, + "refs": { + "ListStreamsInput$MaxResults": "

The maximum number of streams to return in the response. The default is 10,000.

" + } + }, + "ListStreamsOutput": { + "base": null, + "refs": { + } + }, + "ListTagsForStreamInput": { + "base": null, + "refs": { + } + }, + "ListTagsForStreamOutput": { + "base": null, + "refs": { + } + }, + "MediaType": { + "base": null, + "refs": { + "CreateStreamInput$MediaType": "

The media type of the stream. Consumers of the stream can use this information when processing the stream. For more information about media types, see Media Types. If you choose to specify the MediaType, see Naming Requirements for guidelines.

To play video on the console, the media must be H.264 encoded, and you need to specify this video type in this parameter as video/h264.

This parameter is optional; the default value is null (or empty in JSON).

", + "StreamInfo$MediaType": "

The MediaType of the stream.

", + "UpdateStreamInput$MediaType": "

The stream's media type. Use MediaType to specify the type of content that the stream contains to the consumers of the stream. For more information about media types, see Media Types. If you choose to specify the MediaType, see Naming Requirements.

To play video on the console, you must specify the correct video type. For example, if the video in the stream is H.264, specify video/h264 as the MediaType.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListStreamsInput$NextToken": "

If you specify this parameter, when the result of a ListStreams operation is truncated, the call returns the NextToken in the response. To get another batch of streams, provide this token in your next request.

", + "ListStreamsOutput$NextToken": "

If the response is truncated, the call returns this element with a token. To get the next batch of streams, use this token in your next request.

", + "ListTagsForStreamInput$NextToken": "

If you specify this parameter and the result of a ListTagsForStream call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags.

", + "ListTagsForStreamOutput$NextToken": "

If you specify this parameter and the result of a ListTags call is truncated, the response includes a token that you can use in the next request to fetch the next set of tags.

" + } + }, + "NotAuthorizedException": { + "base": "

The caller is not authorized to perform this operation.

", + "refs": { + } + }, + "ResourceARN": { + "base": null, + "refs": { + "CreateStreamOutput$StreamARN": "

The Amazon Resource Name (ARN) of the stream.

", + "DeleteStreamInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream that you want to delete.

", + "DescribeStreamInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream.

", + "GetDataEndpointInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamName in the request.

", + "ListTagsForStreamInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream that you want to list tags for.

", + "StreamInfo$StreamARN": "

The Amazon Resource Name (ARN) of the stream.

", + "TagStreamInput$StreamARN": "

The Amazon Resource Name (ARN) of the resource that you want to add the tag or tags to.

", + "UntagStreamInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream that you want to remove tags from.

", + "UpdateDataRetentionInput$StreamARN": "

The Amazon Resource Name (ARN) of the stream whose retention period you want to change.

", + "UpdateStreamInput$StreamARN": "

The ARN of the stream whose metadata you want to update.

" + } + }, + "ResourceInUseException": { + "base": "

The stream is currently not available for this operation.

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

Amazon Kinesis Video Streams can't find the stream that you specified.

", + "refs": { + } + }, + "ResourceTags": { + "base": null, + "refs": { + "ListTagsForStreamOutput$Tags": "

A map of tag keys and values associated with the specified stream.

", + "TagStreamInput$Tags": "

A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional).

" + } + }, + "Status": { + "base": null, + "refs": { + "StreamInfo$Status": "

The status of the stream.

" + } + }, + "StreamInfo": { + "base": "

An object describing a Kinesis video stream.

", + "refs": { + "DescribeStreamOutput$StreamInfo": "

An object that describes the stream.

", + "StreamInfoList$member": null + } + }, + "StreamInfoList": { + "base": null, + "refs": { + "ListStreamsOutput$StreamInfoList": "

An array of StreamInfo objects.

" + } + }, + "StreamName": { + "base": null, + "refs": { + "CreateStreamInput$StreamName": "

A name for the stream that you are creating.

The stream name is an identifier for the stream, and must be unique for each account and region.

", + "DescribeStreamInput$StreamName": "

The name of the stream.

", + "GetDataEndpointInput$StreamName": "

The name of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamARN in the request.

", + "ListTagsForStreamInput$StreamName": "

The name of the stream that you want to list tags for.

", + "StreamInfo$StreamName": "

The name of the stream.

", + "StreamNameCondition$ComparisonValue": "

A value to compare.

", + "TagStreamInput$StreamName": "

The name of the stream that you want to add the tag or tags to.

", + "UntagStreamInput$StreamName": "

The name of the stream that you want to remove tags from.

", + "UpdateDataRetentionInput$StreamName": "

The name of the stream whose retention period you want to change.

", + "UpdateStreamInput$StreamName": "

The name of the stream whose metadata you want to update.

The stream name is an identifier for the stream, and must be unique for each account and region.

" + } + }, + "StreamNameCondition": { + "base": "

Specifies the condition that streams must satisfy to be returned when you list streams (see the ListStreams API). A condition has a comparison operation and a value. Currently, you can specify only the BEGINS_WITH operator, which finds streams whose names start with a given prefix.

", + "refs": { + "ListStreamsInput$StreamNameCondition": "

Optional: Returns only streams that satisfy a specific condition. Currently, you can specify only the prefix of a stream name as a condition.

" + } + }, + "TagKey": { + "base": null, + "refs": { + "ResourceTags$key": null, + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagStreamInput$TagKeyList": "

A list of the keys of the tags that you want to remove.

" + } + }, + "TagStreamInput": { + "base": null, + "refs": { + } + }, + "TagStreamOutput": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "ResourceTags$value": null + } + }, + "TagsPerResourceExceededLimitException": { + "base": "

You have exceeded the limit of tags that you can associate with the resource. Kinesis video streams support up to 50 tags.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "StreamInfo$CreationTime": "

A time stamp that indicates when the stream was created.

" + } + }, + "UntagStreamInput": { + "base": null, + "refs": { + } + }, + "UntagStreamOutput": { + "base": null, + "refs": { + } + }, + "UpdateDataRetentionInput": { + "base": null, + "refs": { + } + }, + "UpdateDataRetentionOperation": { + "base": null, + "refs": { + "UpdateDataRetentionInput$Operation": "

Indicates whether you want to increase or decrease the retention period.

" + } + }, + "UpdateDataRetentionOutput": { + "base": null, + "refs": { + } + }, + "UpdateStreamInput": { + "base": null, + "refs": { + } + }, + "UpdateStreamOutput": { + "base": null, + "refs": { + } + }, + "Version": { + "base": null, + "refs": { + "DeleteStreamInput$CurrentVersion": "

Optional: The version of the stream that you want to delete.

Specify the version as a safeguard to ensure that your are deleting the correct stream. To get the stream version, use the DescribeStream API.

If not specified, only the CreationTime is checked before deleting the stream.

", + "StreamInfo$Version": "

The version of the stream.

", + "UpdateDataRetentionInput$CurrentVersion": "

The version of the stream whose retention period you want to change. To get the version, call either the DescribeStream or the ListStreams API.

", + "UpdateStreamInput$CurrentVersion": "

The version of the stream whose metadata you want to update.

" + } + }, + "VersionMismatchException": { + "base": "

The stream version that you specified is not the latest version. To get the latest version, use the DescribeStream API.

", + "refs": { + } + } + } +} diff --git a/models/apis/kinesisvideo/2017-09-30/examples-1.json b/models/apis/kinesisvideo/2017-09-30/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/kinesisvideo/2017-09-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/kinesisvideo/2017-09-30/paginators-1.json b/models/apis/kinesisvideo/2017-09-30/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/kinesisvideo/2017-09-30/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/kms/2014-11-01/api-2.json b/models/apis/kms/2014-11-01/api-2.json index 5e3f38f0dc3..604eb051c00 100644 --- a/models/apis/kms/2014-11-01/api-2.json +++ b/models/apis/kms/2014-11-01/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"KMS", "serviceFullName":"AWS Key Management Service", + "serviceId":"KMS", "signatureVersion":"v4", "targetPrefix":"TrentService", "uid":"kms-2014-11-01" @@ -665,7 +666,8 @@ "type":"structure", "required":[ "KeyId", - "GranteePrincipal" + "GranteePrincipal", + "Operations" ], "members":{ "KeyId":{"shape":"KeyIdType"}, @@ -1122,6 +1124,13 @@ "KeyArn":{"shape":"ArnType"} } }, + "KeyManagerType":{ + "type":"string", + "enum":[ + "AWS", + "CUSTOMER" + ] + }, "KeyMetadata":{ "type":"structure", "required":["KeyId"], @@ -1137,7 +1146,8 @@ "DeletionDate":{"shape":"DateType"}, "ValidTo":{"shape":"DateType"}, "Origin":{"shape":"OriginType"}, - "ExpirationModel":{"shape":"ExpirationModelType"} + "ExpirationModel":{"shape":"ExpirationModelType"}, + "KeyManager":{"shape":"KeyManagerType"} } }, "KeyState":{ @@ -1272,7 +1282,7 @@ }, "MarkerType":{ "type":"string", - "max":320, + "max":1024, "min":1, "pattern":"[\\u0020-\\u00FF]*" }, diff --git a/models/apis/kms/2014-11-01/docs-2.json b/models/apis/kms/2014-11-01/docs-2.json index e1fd0221585..935845654db 100644 --- a/models/apis/kms/2014-11-01/docs-2.json +++ b/models/apis/kms/2014-11-01/docs-2.json @@ -2,41 +2,41 @@ "version": "2.0", "service": "AWS Key Management Service

AWS Key Management Service (AWS KMS) is an encryption and key management web service. This guide describes the AWS KMS operations that you can call programmatically. For general information about AWS KMS, see the AWS Key Management Service Developer Guide.

AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, iOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to AWS KMS and other AWS services. For example, the SDKs take care of tasks such as signing requests (see below), managing errors, and retrying requests automatically. For more information about the AWS SDKs, including how to download and install them, see Tools for Amazon Web Services.

We recommend that you use the AWS SDKs to make programmatic API calls to AWS KMS.

Clients must support TLS (Transport Layer Security) 1.0. We recommend TLS 1.2. Clients must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes.

Signing Requests

Requests must be signed by using an access key ID and a secret access key. We strongly recommend that you do not use your AWS account (root) access key ID and secret key for everyday work with AWS KMS. Instead, use the access key ID and secret access key for an IAM user, or you can use the AWS Security Token Service to generate temporary security credentials that you can use to sign requests.

All AWS KMS operations require Signature Version 4.

Logging API Requests

AWS KMS supports AWS CloudTrail, a service that logs AWS API calls and related events for your AWS account and delivers them to an Amazon S3 bucket that you specify. By using the information collected by CloudTrail, you can determine what requests were made to AWS KMS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

Additional Resources

For more information about credentials and request signing, see the following:

Commonly Used APIs

Of the APIs discussed in this guide, the following will prove the most useful for most applications. You will likely perform actions other than these, such as creating keys and assigning policies, by using the console.

", "operations": { - "CancelKeyDeletion": "

Cancels the deletion of a customer master key (CMK). When this operation is successful, the CMK is set to the Disabled state. To enable a CMK, use EnableKey.

For more information about scheduling and canceling deletion of a CMK, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide.

", - "CreateAlias": "

Creates a display name for a customer master key. An alias can be used to identify a key and should be unique. The console enforces a one-to-one mapping between the alias and a key. An alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). An alias must start with the word \"alias\" followed by a forward slash (alias/). An alias that begins with \"aws\" after the forward slash (alias/aws...) is reserved by Amazon Web Services (AWS).

The alias and the key it is mapped to must be in the same AWS account and the same region.

To map an alias to a different key, call UpdateAlias.

", - "CreateGrant": "

Adds a grant to a key to specify who can use the key and under what conditions. Grants are alternate permission mechanisms to key policies.

For more information about grants, see Grants in the AWS Key Management Service Developer Guide.

", - "CreateKey": "

Creates a customer master key (CMK).

You can use a CMK to encrypt small amounts of data (4 KiB or less) directly, but CMKs are more commonly used to encrypt data encryption keys (DEKs), which are used to encrypt raw data. For more information about DEKs and the difference between CMKs and DEKs, see the following:

", - "Decrypt": "

Decrypts ciphertext. Ciphertext is plaintext that has been previously encrypted by using any of the following functions:

Note that if a caller has been granted access permissions to all keys (through, for example, IAM user policies that grant Decrypt permission on all resources), then ciphertext encrypted by using keys in other accounts where the key grants access to the caller can be decrypted. To remedy this, we recommend that you do not grant Decrypt access in an IAM user policy. Instead grant Decrypt access only in key policies. If you must grant Decrypt access in an IAM user policy, you should scope the resource to specific keys or to specific trusted accounts.

", - "DeleteAlias": "

Deletes the specified alias. To map an alias to a different key, call UpdateAlias.

", - "DeleteImportedKeyMaterial": "

Deletes key material that you previously imported and makes the specified customer master key (CMK) unusable. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide.

When the specified CMK is in the PendingDeletion state, this operation does not change the CMK's state. Otherwise, it changes the CMK's state to PendingImport.

After you delete key material, you can use ImportKeyMaterial to reimport the same key material into the CMK.

", - "DescribeKey": "

Provides detailed information about the specified customer master key.

", - "DisableKey": "

Sets the state of a customer master key (CMK) to disabled, thereby preventing its use for cryptographic operations. For more information about how key state affects the use of a CMK, see How Key State Affects the Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", - "DisableKeyRotation": "

Disables rotation of the specified key.

", - "EnableKey": "

Marks a key as enabled, thereby permitting its use.

", - "EnableKeyRotation": "

Enables rotation of the specified customer master key.

", - "Encrypt": "

Encrypts plaintext into ciphertext by using a customer master key. The Encrypt function has two primary use cases:

Unless you are moving encrypted data from one region to another, you don't use this function to encrypt a generated data key within a region. You retrieve data keys already encrypted by calling the GenerateDataKey or GenerateDataKeyWithoutPlaintext function. Data keys don't need to be encrypted again by calling Encrypt.

If you want to encrypt data locally in your application, you can use the GenerateDataKey function to return a plaintext data encryption key and a copy of the key encrypted under the customer master key (CMK) of your choosing.

", - "GenerateDataKey": "

Returns a data encryption key that you can use in your application to encrypt data locally.

You must specify the customer master key (CMK) under which to generate the data key. You must also specify the length of the data key using either the KeySpec or NumberOfBytes field. You must specify one field or the other, but not both. For common key lengths (128-bit and 256-bit symmetric keys), we recommend that you use KeySpec.

This operation returns a plaintext copy of the data key in the Plaintext field of the response, and an encrypted copy of the data key in the CiphertextBlob field. The data key is encrypted under the CMK specified in the KeyId field of the request.

We recommend that you use the following pattern to encrypt data locally in your application:

  1. Use this operation (GenerateDataKey) to retrieve a data encryption key.

  2. Use the plaintext data encryption key (returned in the Plaintext field of the response) to encrypt data locally, then erase the plaintext data key from memory.

  3. Store the encrypted data key (returned in the CiphertextBlob field of the response) alongside the locally encrypted data.

To decrypt data locally:

  1. Use the Decrypt operation to decrypt the encrypted data key into a plaintext copy of the data key.

  2. Use the plaintext data key to decrypt data locally, then erase the plaintext data key from memory.

To return only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To return a random byte string that is cryptographically secure, use GenerateRandom.

If you use the optional EncryptionContext field, you must store at least enough information to be able to reconstruct the full encryption context when you later send the ciphertext to the Decrypt operation. It is a good practice to choose an encryption context that you can reconstruct on the fly to better secure the ciphertext. For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", - "GenerateDataKeyWithoutPlaintext": "

Returns a data encryption key encrypted under a customer master key (CMK). This operation is identical to GenerateDataKey but returns only the encrypted copy of the data key.

This operation is useful in a system that has multiple components with different degrees of trust. For example, consider a system that stores encrypted data in containers. Each container stores the encrypted data and an encrypted copy of the data key. One component of the system, called the control plane, creates new containers. When it creates a new container, it uses this operation (GenerateDataKeyWithoutPlaintext) to get an encrypted data key and then stores it in the container. Later, a different component of the system, called the data plane, puts encrypted data into the containers. To do this, it passes the encrypted data key to the Decrypt operation, then uses the returned plaintext data key to encrypt data, and finally stores the encrypted data in the container. In this system, the control plane never sees the plaintext data key.

", + "CancelKeyDeletion": "

Cancels the deletion of a customer master key (CMK). When this operation is successful, the CMK is set to the Disabled state. To enable a CMK, use EnableKey. You cannot perform this operation on a CMK in a different AWS account.

For more information about scheduling and canceling deletion of a CMK, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide.

", + "CreateAlias": "

Creates a display name for a customer master key (CMK). You can use an alias to identify a CMK in selected operations, such as Encrypt and GenerateDataKey.

Each CMK can have multiple aliases, but each alias points to only one CMK. The alias name must be unique in the AWS account and region. To simplify code that runs in multiple regions, use the same alias name, but point it to a different CMK in each region.

Because an alias is not a property of a CMK, you can delete and change the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs, use the ListAliases operation.

An alias must start with the word alias followed by a forward slash (alias/). The alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). Alias names cannot begin with aws; that alias name prefix is reserved by Amazon Web Services (AWS).

The alias and the CMK it is mapped to must be in the same AWS account and the same region. You cannot perform this operation on an alias in a different AWS account.

To map an existing alias to a different CMK, call UpdateAlias.

", + "CreateGrant": "

Adds a grant to a customer master key (CMK). The grant specifies who can use the CMK and under what conditions. When setting permissions, grants are an alternative to key policies.

To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter. For more information about grants, see Grants in the AWS Key Management Service Developer Guide.

", + "CreateKey": "

Creates a customer master key (CMK) in the caller's AWS account.

You can use a CMK to encrypt small amounts of data (4 KiB or less) directly, but CMKs are more commonly used to encrypt data encryption keys (DEKs), which are used to encrypt raw data. For more information about DEKs and the difference between CMKs and DEKs, see the following:

You cannot use this operation to create a CMK in a different AWS account.

", + "Decrypt": "

Decrypts ciphertext. Ciphertext is plaintext that has been previously encrypted by using any of the following operations:

Note that if a caller has been granted access permissions to all keys (through, for example, IAM user policies that grant Decrypt permission on all resources), then ciphertext encrypted by using keys in other accounts where the key grants access to the caller can be decrypted. To remedy this, we recommend that you do not grant Decrypt access in an IAM user policy. Instead grant Decrypt access only in key policies. If you must grant Decrypt access in an IAM user policy, you should scope the resource to specific keys or to specific trusted accounts.

", + "DeleteAlias": "

Deletes the specified alias. You cannot perform this operation on an alias in a different AWS account.

Because an alias is not a property of a CMK, you can delete and change the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs, use the ListAliases operation.

Each CMK can have multiple aliases. To change the alias of a CMK, use DeleteAlias to delete the current alias and CreateAlias to create a new alias. To associate an existing alias with a different customer master key (CMK), call UpdateAlias.

", + "DeleteImportedKeyMaterial": "

Deletes key material that you previously imported. This operation makes the specified customer master key (CMK) unusable. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide. You cannot perform this operation on a CMK in a different AWS account.

When the specified CMK is in the PendingDeletion state, this operation does not change the CMK's state. Otherwise, it changes the CMK's state to PendingImport.

After you delete key material, you can use ImportKeyMaterial to reimport the same key material into the CMK.

", + "DescribeKey": "

Provides detailed information about the specified customer master key (CMK).

To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter.

", + "DisableKey": "

Sets the state of a customer master key (CMK) to disabled, thereby preventing its use for cryptographic operations. You cannot perform this operation on a CMK in a different AWS account.

For more information about how key state affects the use of a CMK, see How Key State Affects the Use of a Customer Master Key in the AWS Key Management Service Developer Guide.

", + "DisableKeyRotation": "

Disables automatic rotation of the key material for the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

", + "EnableKey": "

Sets the state of a customer master key (CMK) to enabled, thereby permitting its use for cryptographic operations. You cannot perform this operation on a CMK in a different AWS account.

", + "EnableKeyRotation": "

Enables automatic rotation of the key material for the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

", + "Encrypt": "

Encrypts plaintext into ciphertext by using a customer master key (CMK). The Encrypt operation has two primary use cases:

To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Unless you are moving encrypted data from one region to another, you don't use this operation to encrypt a generated data key within a region. To get data keys that are already encrypted, call the GenerateDataKey or GenerateDataKeyWithoutPlaintext operation. Data keys don't need to be encrypted again by calling Encrypt.

To encrypt data locally in your application, use the GenerateDataKey operation to return a plaintext data encryption key and a copy of the key encrypted under the CMK of your choosing.

", + "GenerateDataKey": "

Returns a data encryption key that you can use in your application to encrypt data locally.

You must specify the customer master key (CMK) under which to generate the data key. You must also specify the length of the data key using either the KeySpec or NumberOfBytes field. You must specify one field or the other, but not both. For common key lengths (128-bit and 256-bit symmetric keys), we recommend that you use KeySpec. To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter.

This operation returns a plaintext copy of the data key in the Plaintext field of the response, and an encrypted copy of the data key in the CiphertextBlob field. The data key is encrypted under the CMK specified in the KeyId field of the request.

We recommend that you use the following pattern to encrypt data locally in your application:

  1. Use this operation (GenerateDataKey) to get a data encryption key.

  2. Use the plaintext data encryption key (returned in the Plaintext field of the response) to encrypt data locally, then erase the plaintext data key from memory.

  3. Store the encrypted data key (returned in the CiphertextBlob field of the response) alongside the locally encrypted data.

To decrypt data locally:

  1. Use the Decrypt operation to decrypt the encrypted data key into a plaintext copy of the data key.

  2. Use the plaintext data key to decrypt data locally, then erase the plaintext data key from memory.

To return only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To return a random byte string that is cryptographically secure, use GenerateRandom.

If you use the optional EncryptionContext field, you must store at least enough information to be able to reconstruct the full encryption context when you later send the ciphertext to the Decrypt operation. It is a good practice to choose an encryption context that you can reconstruct on the fly to better secure the ciphertext. For more information, see Encryption Context in the AWS Key Management Service Developer Guide.

", + "GenerateDataKeyWithoutPlaintext": "

Returns a data encryption key encrypted under a customer master key (CMK). This operation is identical to GenerateDataKey but returns only the encrypted copy of the data key.

To perform this operation on a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the KeyId parameter.

This operation is useful in a system that has multiple components with different degrees of trust. For example, consider a system that stores encrypted data in containers. Each container stores the encrypted data and an encrypted copy of the data key. One component of the system, called the control plane, creates new containers. When it creates a new container, it uses this operation (GenerateDataKeyWithoutPlaintext) to get an encrypted data key and then stores it in the container. Later, a different component of the system, called the data plane, puts encrypted data into the containers. To do this, it passes the encrypted data key to the Decrypt operation, then uses the returned plaintext data key to encrypt data, and finally stores the encrypted data in the container. In this system, the control plane never sees the plaintext data key.

", "GenerateRandom": "

Returns a random byte string that is cryptographically secure.

For more information about entropy and random number generation, see the AWS Key Management Service Cryptographic Details whitepaper.

", - "GetKeyPolicy": "

Retrieves a policy attached to the specified key.

", - "GetKeyRotationStatus": "

Retrieves a Boolean value that indicates whether key rotation is enabled for the specified key.

", - "GetParametersForImport": "

Returns the items you need in order to import key material into AWS KMS from your existing key management infrastructure. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide.

You must specify the key ID of the customer master key (CMK) into which you will import key material. This CMK's Origin must be EXTERNAL. You must also specify the wrapping algorithm and type of wrapping key (public key) that you will use to encrypt the key material.

This operation returns a public key and an import token. Use the public key to encrypt the key material. Store the import token to send with a subsequent ImportKeyMaterial request. The public key and import token from the same response must be used together. These items are valid for 24 hours, after which they cannot be used for a subsequent ImportKeyMaterial request. To retrieve new ones, send another GetParametersForImport request.

", - "ImportKeyMaterial": "

Imports key material into an AWS KMS customer master key (CMK) from your existing key management infrastructure. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide.

You must specify the key ID of the CMK to import the key material into. This CMK's Origin must be EXTERNAL. You must also send an import token and the encrypted key material. Send the import token that you received in the same GetParametersForImport response that contained the public key that you used to encrypt the key material. You must also specify whether the key material expires and if so, when. When the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. To use the CMK again, you can reimport the same key material. If you set an expiration date, you can change it only by reimporting the same key material and specifying a new expiration date.

When this operation is successful, the specified CMK's key state changes to Enabled, and you can use the CMK.

After you successfully import key material into a CMK, you can reimport the same key material into that CMK, but you cannot import different key material.

", - "ListAliases": "

Lists all of the key aliases in the account.

", - "ListGrants": "

List the grants for a specified key.

", - "ListKeyPolicies": "

Retrieves a list of policies attached to a key.

", - "ListKeys": "

Lists the customer master keys.

", - "ListResourceTags": "

Returns a list of all tags for the specified customer master key (CMK).

", + "GetKeyPolicy": "

Gets a key policy attached to the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

", + "GetKeyRotationStatus": "

Gets a Boolean value that indicates whether automatic rotation of the key material is enabled for the specified customer master key (CMK).

To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter.

", + "GetParametersForImport": "

Returns the items you need in order to import key material into AWS KMS from your existing key management infrastructure. For more information about importing key material into AWS KMS, see Importing Key Material in the AWS Key Management Service Developer Guide.

You must specify the key ID of the customer master key (CMK) into which you will import key material. This CMK's Origin must be EXTERNAL. You must also specify the wrapping algorithm and type of wrapping key (public key) that you will use to encrypt the key material. You cannot perform this operation on a CMK in a different AWS account.

This operation returns a public key and an import token. Use the public key to encrypt the key material. Store the import token to send with a subsequent ImportKeyMaterial request. The public key and import token from the same response must be used together. These items are valid for 24 hours. When they expire, they cannot be used for a subsequent ImportKeyMaterial request. To get new ones, send another GetParametersForImport request.

", + "ImportKeyMaterial": "

Imports key material into an existing AWS KMS customer master key (CMK) that was created without key material. You cannot perform this operation on a CMK in a different AWS account. For more information about creating CMKs with no key material and then importing key material, see Importing Key Material in the AWS Key Management Service Developer Guide.

Before using this operation, call GetParametersForImport. Its response includes a public key and an import token. Use the public key to encrypt the key material. Then, submit the import token from the same GetParametersForImport response.

When calling this operation, you must specify the following values:

When this operation is successful, the CMK's key state changes from PendingImport to Enabled, and you can use the CMK. After you successfully import key material into a CMK, you can reimport the same key material into that CMK, but you cannot import different key material.

", + "ListAliases": "

Gets a list of all aliases in the caller's AWS account and region. You cannot list aliases in other accounts. For more information about aliases, see CreateAlias.

The response might include several aliases that do not have a TargetKeyId field because they are not associated with a CMK. These are predefined aliases that are reserved for CMKs managed by AWS services. If an alias is not associated with a CMK, the alias does not count against the alias limit for your account.

", + "ListGrants": "

Gets a list of all grants for the specified customer master key (CMK).

To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter.

", + "ListKeyPolicies": "

Gets the names of the key policies that are attached to a customer master key (CMK). This operation is designed to get policy names that you can use in a GetKeyPolicy operation. However, the only valid policy name is default. You cannot perform this operation on a CMK in a different AWS account.

", + "ListKeys": "

Gets a list of all customer master keys (CMKs) in the caller's AWS account and region.

", + "ListResourceTags": "

Returns a list of all tags for the specified customer master key (CMK).

You cannot perform this operation on a CMK in a different AWS account.

", "ListRetirableGrants": "

Returns a list of all grants for which the grant's RetiringPrincipal matches the one specified.

A typical use is to list all grants that you are able to retire. To retire a grant, use RetireGrant.

", - "PutKeyPolicy": "

Attaches a key policy to the specified customer master key (CMK).

For more information about key policies, see Key Policies in the AWS Key Management Service Developer Guide.

", - "ReEncrypt": "

Encrypts data on the server side with a new customer master key (CMK) without exposing the plaintext of the data on the client side. The data is first decrypted and then reencrypted. You can also use this operation to change the encryption context of a ciphertext.

Unlike other operations, ReEncrypt is authorized twice, once as ReEncryptFrom on the source CMK and once as ReEncryptTo on the destination CMK. We recommend that you include the \"kms:ReEncrypt*\" permission in your key policies to permit reencryption from or to the CMK. This permission is automatically included in the key policy when you create a CMK through the console, but you must include it manually when you create a CMK programmatically or when you set a key policy with the PutKeyPolicy operation.

", + "PutKeyPolicy": "

Attaches a key policy to the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

For more information about key policies, see Key Policies in the AWS Key Management Service Developer Guide.

", + "ReEncrypt": "

Encrypts data on the server side with a new customer master key (CMK) without exposing the plaintext of the data on the client side. The data is first decrypted and then reencrypted. You can also use this operation to change the encryption context of a ciphertext.

You can reencrypt data using CMKs in different AWS accounts.

Unlike other operations, ReEncrypt is authorized twice, once as ReEncryptFrom on the source CMK and once as ReEncryptTo on the destination CMK. We recommend that you include the \"kms:ReEncrypt*\" permission in your key policies to permit reencryption from or to the CMK. This permission is automatically included in the key policy when you create a CMK through the console, but you must include it manually when you create a CMK programmatically or when you set a key policy with the PutKeyPolicy operation.

", "RetireGrant": "

Retires a grant. To clean up, you can retire a grant when you're done using it. You should revoke a grant when you intend to actively deny operations that depend on it. The following are permitted to call this API:

You must identify the grant to retire by its grant token or by a combination of the grant ID and the Amazon Resource Name (ARN) of the customer master key (CMK). A grant token is a unique variable-length base64-encoded string. A grant ID is a 64 character unique identifier of a grant. The CreateGrant operation returns both.

", - "RevokeGrant": "

Revokes a grant. You can revoke a grant to actively deny operations that depend on it.

", - "ScheduleKeyDeletion": "

Schedules the deletion of a customer master key (CMK). You may provide a waiting period, specified in days, before deletion occurs. If you do not provide a waiting period, the default period of 30 days is used. When this operation is successful, the state of the CMK changes to PendingDeletion. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the CMK. After the waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with it, including all aliases that refer to it.

Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is deleted, all data that was encrypted under the CMK is rendered unrecoverable. To restrict the use of a CMK without deleting it, use DisableKey.

For more information about scheduling a CMK for deletion, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide.

", - "TagResource": "

Adds or overwrites one or more tags for the specified customer master key (CMK).

Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.

You cannot use the same tag key more than once per CMK. For example, consider a CMK with one tag whose tag key is Purpose and tag value is Test. If you send a TagResource request for this CMK with a tag key of Purpose and a tag value of Prod, it does not create a second tag. Instead, the original tag is overwritten with the new tag value.

", - "UntagResource": "

Removes the specified tag or tags from the specified customer master key (CMK).

To remove a tag, you specify the tag key for each tag to remove. You do not specify the tag value. To overwrite the tag value for an existing tag, use TagResource.

", - "UpdateAlias": "

Updates an alias to map it to a different key.

An alias is not a property of a key. Therefore, an alias can be mapped to and unmapped from an existing key without changing the properties of the key.

An alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). An alias must start with the word \"alias\" followed by a forward slash (alias/). An alias that begins with \"aws\" after the forward slash (alias/aws...) is reserved by Amazon Web Services (AWS).

The alias and the key it is mapped to must be in the same AWS account and the same region.

", - "UpdateKeyDescription": "

Updates the description of a customer master key (CMK).

" + "RevokeGrant": "

Revokes the specified grant for the specified customer master key (CMK). You can revoke a grant to actively deny operations that depend on it.

To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the KeyId parameter.

", + "ScheduleKeyDeletion": "

Schedules the deletion of a customer master key (CMK). You may provide a waiting period, specified in days, before deletion occurs. If you do not provide a waiting period, the default period of 30 days is used. When this operation is successful, the state of the CMK changes to PendingDeletion. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the CMK. After the waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with it, including all aliases that refer to it.

You cannot perform this operation on a CMK in a different AWS account.

Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is deleted, all data that was encrypted under the CMK is rendered unrecoverable. To restrict the use of a CMK without deleting it, use DisableKey.

For more information about scheduling a CMK for deletion, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide.

", + "TagResource": "

Adds or overwrites one or more tags for the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.

You cannot use the same tag key more than once per CMK. For example, consider a CMK with one tag whose tag key is Purpose and tag value is Test. If you send a TagResource request for this CMK with a tag key of Purpose and a tag value of Prod, it does not create a second tag. Instead, the original tag is overwritten with the new tag value.

For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the AWS Billing and Cost Management User Guide.

", + "UntagResource": "

Removes the specified tag or tags from the specified customer master key (CMK). You cannot perform this operation on a CMK in a different AWS account.

To remove a tag, you specify the tag key for each tag to remove. You do not specify the tag value. To overwrite the tag value for an existing tag, use TagResource.

", + "UpdateAlias": "

Associates an existing alias with a different customer master key (CMK). Each CMK can have multiple aliases, but the aliases must be unique within the account and region. You cannot perform this operation on an alias in a different AWS account.

This operation works only on existing aliases. To change the alias of a CMK to a new value, use CreateAlias to create a new alias and DeleteAlias to delete the old alias.

Because an alias is not a property of a CMK, you can create, update, and delete the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all CMKs in the account, use the ListAliases operation.

An alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). An alias must start with the word alias followed by a forward slash (alias/). The alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). Alias names cannot begin with aws; that alias name prefix is reserved by Amazon Web Services (AWS).

", + "UpdateKeyDescription": "

Updates the description of a customer master key (CMK). To see the decription of a CMK, use DescribeKey.

You cannot perform this operation on a CMK in a different AWS account.

" }, "shapes": { "AWSAccountIdType": { @@ -54,7 +54,7 @@ "AliasList": { "base": null, "refs": { - "ListAliasesResponse$Aliases": "

A list of key aliases in the user's account.

" + "ListAliasesResponse$Aliases": "

A list of aliases.

" } }, "AliasListEntry": { @@ -68,7 +68,7 @@ "refs": { "AliasListEntry$AliasName": "

String that contains the alias.

", "CreateAliasRequest$AliasName": "

String that contains the display name. The name must start with the word \"alias\" followed by a forward slash (alias/). Aliases that begin with \"alias/AWS\" are reserved.

", - "DeleteAliasRequest$AliasName": "

The alias to be deleted. The name must start with the word \"alias\" followed by a forward slash (alias/). Aliases that begin with \"alias/AWS\" are reserved.

", + "DeleteAliasRequest$AliasName": "

The alias to be deleted. The name must start with the word \"alias\" followed by a forward slash (alias/). Aliases that begin with \"alias/aws\" are reserved.

", "UpdateAliasRequest$AliasName": "

String that contains the name of the alias to be modified. The name must start with the word \"alias\" followed by a forward slash (alias/). Aliases that begin with \"alias/aws\" are reserved.

" } }, @@ -91,11 +91,11 @@ "CreateKeyRequest$BypassPolicyLockoutSafetyCheck": "

A flag to indicate whether to bypass the key policy lockout safety check.

Setting this value to true increases the likelihood that the CMK becomes unmanageable. Do not set this value to true indiscriminately.

For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide.

Use this parameter only when you include a policy in the request and you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the CMK.

The default value is false.

", "GetKeyRotationStatusResponse$KeyRotationEnabled": "

A Boolean value that specifies whether key rotation is enabled.

", "KeyMetadata$Enabled": "

Specifies whether the CMK is enabled. When KeyState is Enabled this value is true, otherwise it is false.

", - "ListAliasesResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To retrieve more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.

", - "ListGrantsResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To retrieve more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.

", - "ListKeyPoliciesResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To retrieve more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.

", - "ListKeysResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To retrieve more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.

", - "ListResourceTagsResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To retrieve more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.

", + "ListAliasesResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.

", + "ListGrantsResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.

", + "ListKeyPoliciesResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.

", + "ListKeysResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.

", + "ListResourceTagsResponse$Truncated": "

A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.

", "PutKeyPolicyRequest$BypassPolicyLockoutSafetyCheck": "

A flag to indicate whether to bypass the key policy lockout safety check.

Setting this value to true increases the likelihood that the CMK becomes unmanageable. Do not set this value to true indiscriminately.

For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide.

Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the CMK.

The default value is false.

" } }, @@ -113,14 +113,14 @@ "base": null, "refs": { "DecryptRequest$CiphertextBlob": "

Ciphertext to be decrypted. The blob includes metadata.

", - "EncryptResponse$CiphertextBlob": "

The encrypted plaintext. If you are using the CLI, the value is Base64 encoded. Otherwise, it is not encoded.

", - "GenerateDataKeyResponse$CiphertextBlob": "

The encrypted data encryption key.

", - "GenerateDataKeyWithoutPlaintextResponse$CiphertextBlob": "

The encrypted data encryption key.

", + "EncryptResponse$CiphertextBlob": "

The encrypted plaintext. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

", + "GenerateDataKeyResponse$CiphertextBlob": "

The encrypted data encryption key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

", + "GenerateDataKeyWithoutPlaintextResponse$CiphertextBlob": "

The encrypted data encryption key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

", "GetParametersForImportResponse$ImportToken": "

The import token to send in a subsequent ImportKeyMaterial request.

", "ImportKeyMaterialRequest$ImportToken": "

The import token that you received in the response to a previous GetParametersForImport request. It must be from the same response that contained the public key that you used to encrypt the key material.

", "ImportKeyMaterialRequest$EncryptedKeyMaterial": "

The encrypted key material to import. It must be encrypted with the public key that you received in the response to a previous GetParametersForImport request, using the wrapping algorithm that you specified in that request.

", "ReEncryptRequest$CiphertextBlob": "

Ciphertext of the data to reencrypt.

", - "ReEncryptResponse$CiphertextBlob": "

The reencrypted data.

" + "ReEncryptResponse$CiphertextBlob": "

The reencrypted data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

" } }, "CreateAliasRequest": { @@ -158,7 +158,7 @@ "DateType": { "base": null, "refs": { - "GetParametersForImportResponse$ParametersValidTo": "

The time at which the import token and public key are no longer valid. After this time, you cannot use them to make an ImportKeyMaterial request and you must send another GetParametersForImport request to retrieve new ones.

", + "GetParametersForImportResponse$ParametersValidTo": "

The time at which the import token and public key are no longer valid. After this time, you cannot use them to make an ImportKeyMaterial request and you must send another GetParametersForImport request to get new ones.

", "GrantListEntry$CreationDate": "

The date and time when the grant was created.

", "ImportKeyMaterialRequest$ValidTo": "

The time at which the imported key material expires. When the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. You must omit this parameter when the ExpirationModel parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE. Otherwise it is required.

", "KeyMetadata$CreationDate": "

The date and time when the CMK was created.

", @@ -304,7 +304,7 @@ } }, "ExpiredImportTokenException": { - "base": "

The request was rejected because the provided import token is expired. Use GetParametersForImport to retrieve a new import token and public key, use the new public key to encrypt the key material, and then try the request again.

", + "base": "

The request was rejected because the provided import token is expired. Use GetParametersForImport to get a new import token and public key, use the new public key to encrypt the key material, and then try the request again.

", "refs": { } }, @@ -462,7 +462,7 @@ } }, "InvalidCiphertextException": { - "base": "

The request was rejected because the specified ciphertext has been corrupted or is otherwise invalid.

", + "base": "

The request was rejected because the specified ciphertext, or additional authenticated data incorporated into the ciphertext, such as the encryption context, is corrupted, missing, or otherwise invalid.

", "refs": { } }, @@ -505,52 +505,52 @@ "base": null, "refs": { "AliasListEntry$TargetKeyId": "

String that contains the key identifier referred to by the alias.

", - "CancelKeyDeletionRequest$KeyId": "

The unique identifier for the customer master key (CMK) for which to cancel deletion.

To specify this value, use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples:

To obtain the unique key ID and key ARN for a given CMK, use ListKeys or DescribeKey.

", + "CancelKeyDeletionRequest$KeyId": "

The unique identifier for the customer master key (CMK) for which to cancel deletion.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "CancelKeyDeletionResponse$KeyId": "

The unique identifier of the master key for which deletion is canceled.

", - "CreateAliasRequest$TargetKeyId": "

An identifier of the key for which you are creating the alias. This value cannot be another alias but can be a globally unique identifier or a fully specified ARN to a key.

", - "CreateGrantRequest$KeyId": "

The unique identifier for the customer master key (CMK) that the grant applies to.

To specify this value, use the globally unique key ID or the Amazon Resource Name (ARN) of the key. Examples:

", + "CreateAliasRequest$TargetKeyId": "

Identifies the CMK for which you are creating the alias. This value cannot be an alias.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "CreateGrantRequest$KeyId": "

The unique identifier for the customer master key (CMK) that the grant applies to.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "DecryptResponse$KeyId": "

ARN of the key used to perform the decryption. This value is returned if no errors are encountered during the operation.

", - "DeleteImportedKeyMaterialRequest$KeyId": "

The identifier of the CMK whose key material to delete. The CMK's Origin must be EXTERNAL.

A valid identifier is the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples:

", - "DescribeKeyRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".

", - "DisableKeyRequest$KeyId": "

A unique identifier for the CMK.

Use the CMK's unique identifier or its Amazon Resource Name (ARN). For example:

", - "DisableKeyRotationRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

", - "EnableKeyRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

", - "EnableKeyRotationRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

", - "EncryptRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".

", + "DeleteImportedKeyMaterialRequest$KeyId": "

The identifier of the CMK whose key material to delete. The CMK's Origin must be EXTERNAL.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "DescribeKeyRequest$KeyId": "

A unique identifier for the customer master key (CMK).

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", + "DisableKeyRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "DisableKeyRotationRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "EnableKeyRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "EnableKeyRotationRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "EncryptRequest$KeyId": "

A unique identifier for the customer master key (CMK).

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "EncryptResponse$KeyId": "

The ID of the key used during encryption.

", - "GenerateDataKeyRequest$KeyId": "

The identifier of the CMK under which to generate and encrypt the data encryption key.

A valid identifier is the unique key ID or the Amazon Resource Name (ARN) of the CMK, or the alias name or ARN of an alias that refers to the CMK. Examples:

", + "GenerateDataKeyRequest$KeyId": "

The identifier of the CMK under which to generate and encrypt the data encryption key.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "GenerateDataKeyResponse$KeyId": "

The identifier of the CMK under which the data encryption key was generated and encrypted.

", - "GenerateDataKeyWithoutPlaintextRequest$KeyId": "

The identifier of the CMK under which to generate and encrypt the data encryption key.

A valid identifier is the unique key ID or the Amazon Resource Name (ARN) of the CMK, or the alias name or ARN of an alias that refers to the CMK. Examples:

", + "GenerateDataKeyWithoutPlaintextRequest$KeyId": "

The identifier of the customer master key (CMK) under which to generate and encrypt the data encryption key.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "GenerateDataKeyWithoutPlaintextResponse$KeyId": "

The identifier of the CMK under which the data encryption key was generated and encrypted.

", - "GetKeyPolicyRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

", - "GetKeyRotationStatusRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

", - "GetParametersForImportRequest$KeyId": "

The identifier of the CMK into which you will import key material. The CMK's Origin must be EXTERNAL.

A valid identifier is the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples:

", + "GetKeyPolicyRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "GetKeyRotationStatusRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "GetParametersForImportRequest$KeyId": "

The identifier of the CMK into which you will import key material. The CMK's Origin must be EXTERNAL.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "GetParametersForImportResponse$KeyId": "

The identifier of the CMK to use in a subsequent ImportKeyMaterial request. This is the same CMK specified in the GetParametersForImport request.

", "GrantListEntry$KeyId": "

The unique identifier for the customer master key (CMK) to which the grant applies.

", - "ImportKeyMaterialRequest$KeyId": "

The identifier of the CMK to import the key material into. The CMK's Origin must be EXTERNAL.

A valid identifier is the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples:

", + "ImportKeyMaterialRequest$KeyId": "

The identifier of the CMK to import the key material into. The CMK's Origin must be EXTERNAL.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "KeyListEntry$KeyId": "

Unique identifier of the key.

", "KeyMetadata$KeyId": "

The globally unique identifier for the CMK.

", - "ListGrantsRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

", - "ListKeyPoliciesRequest$KeyId": "

A unique identifier for the customer master key (CMK). You can use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples:

", - "ListResourceTagsRequest$KeyId": "

A unique identifier for the CMK whose tags you are listing. You can use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples:

", - "PutKeyPolicyRequest$KeyId": "

A unique identifier for the CMK.

Use the CMK's unique identifier or its Amazon Resource Name (ARN). For example:

", - "ReEncryptRequest$DestinationKeyId": "

A unique identifier for the CMK to use to reencrypt the data. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".

", + "ListGrantsRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "ListKeyPoliciesRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "ListResourceTagsRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "PutKeyPolicyRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "ReEncryptRequest$DestinationKeyId": "

A unique identifier for the CMK that is used to reencrypt the data.

To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. When using an alias name, prefix it with \"alias/\". To specify a CMK in a different AWS account, you must use the key ARN or alias ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To get the alias name and alias ARN, use ListAliases.

", "ReEncryptResponse$SourceKeyId": "

Unique identifier of the CMK used to originally encrypt the data.

", "ReEncryptResponse$KeyId": "

Unique identifier of the CMK used to reencrypt the data.

", - "RetireGrantRequest$KeyId": "

The Amazon Resource Name of the CMK associated with the grant. Example:

", - "RevokeGrantRequest$KeyId": "

A unique identifier for the customer master key associated with the grant. This value can be a globally unique identifier or the fully specified ARN to a key.

", - "ScheduleKeyDeletionRequest$KeyId": "

The unique identifier for the customer master key (CMK) to delete.

To specify this value, use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples:

To obtain the unique key ID and key ARN for a given CMK, use ListKeys or DescribeKey.

", + "RetireGrantRequest$KeyId": "

The Amazon Resource Name (ARN) of the CMK associated with the grant.

For example: arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab

", + "RevokeGrantRequest$KeyId": "

A unique identifier for the customer master key associated with the grant.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "ScheduleKeyDeletionRequest$KeyId": "

The unique identifier of the customer master key (CMK) to delete.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", "ScheduleKeyDeletionResponse$KeyId": "

The unique identifier of the customer master key (CMK) for which deletion is scheduled.

", - "TagResourceRequest$KeyId": "

A unique identifier for the CMK you are tagging. You can use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples:

", - "UntagResourceRequest$KeyId": "

A unique identifier for the CMK from which you are removing tags. You can use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples:

", - "UpdateAliasRequest$TargetKeyId": "

Unique identifier of the customer master key to be mapped to the alias. This value can be a globally unique identifier or the fully specified ARN of a key.

You can call ListAliases to verify that the alias is mapped to the correct TargetKeyId.

", - "UpdateKeyDescriptionRequest$KeyId": "

A unique identifier for the CMK. This value can be a globally unique identifier or the fully specified ARN to a key.

" + "TagResourceRequest$KeyId": "

A unique identifier for the CMK you are tagging.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "UntagResourceRequest$KeyId": "

A unique identifier for the CMK from which you are removing tags.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

", + "UpdateAliasRequest$TargetKeyId": "

Unique identifier of the customer master key to be mapped to the alias.

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

To verify that the alias is mapped to the correct CMK, use ListAliases.

", + "UpdateKeyDescriptionRequest$KeyId": "

A unique identifier for the customer master key (CMK).

Specify the key ID or the Amazon Resource Name (ARN) of the CMK.

For example:

To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.

" } }, "KeyList": { "base": null, "refs": { - "ListKeysResponse$Keys": "

A list of keys.

" + "ListKeysResponse$Keys": "

A list of customer master keys (CMKs).

" } }, "KeyListEntry": { @@ -559,6 +559,12 @@ "KeyList$member": null } }, + "KeyManagerType": { + "base": null, + "refs": { + "KeyMetadata$KeyManager": "

The CMK's manager. CMKs are either customer-managed or AWS-managed. For more information about the difference, see Customer Master Keys in the AWS Key Management Service Developer Guide.

" + } + }, "KeyMetadata": { "base": "

Contains metadata about a customer master key (CMK).

This data type is used as a response element for the CreateKey and DescribeKey operations.

", "refs": { @@ -705,10 +711,10 @@ "PlaintextType": { "base": null, "refs": { - "DecryptResponse$Plaintext": "

Decrypted plaintext data. This value may not be returned if the customer master key is not available or if you didn't have permission to use it.

", + "DecryptResponse$Plaintext": "

Decrypted plaintext data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

", "EncryptRequest$Plaintext": "

Data to be encrypted.

", - "GenerateDataKeyResponse$Plaintext": "

The data encryption key. Use this data key for local encryption and decryption, then remove it from memory as soon as possible.

", - "GenerateRandomResponse$Plaintext": "

The random byte string.

", + "GenerateDataKeyResponse$Plaintext": "

The data encryption key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded. Use this data key for local encryption and decryption, then remove it from memory as soon as possible.

", + "GenerateRandomResponse$Plaintext": "

The random byte string. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not encoded.

", "GetParametersForImportResponse$PublicKey": "

The public key to use to encrypt the key material before importing it with ImportKeyMaterial.

" } }, @@ -721,17 +727,17 @@ "PolicyNameType": { "base": null, "refs": { - "GetKeyPolicyRequest$PolicyName": "

String that contains the name of the policy. Currently, this must be \"default\". Policy names can be discovered by calling ListKeyPolicies.

", + "GetKeyPolicyRequest$PolicyName": "

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

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

The name of the key policy.

This value must be default.

" + "PutKeyPolicyRequest$PolicyName": "

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

" } }, "PolicyType": { "base": null, "refs": { - "CreateKeyRequest$Policy": "

The key policy to attach to the CMK.

If you specify a policy and do not set BypassPolicyLockoutSafetyCheck to true, the policy must meet the following criteria:

If you do not specify a policy, AWS KMS attaches a default key policy to the CMK. For more information, see Default Key Policy in the AWS Key Management Service Developer Guide.

The policy size limit is 32 KiB (32768 bytes).

", + "CreateKeyRequest$Policy": "

The key policy to attach to the CMK.

If you specify a policy and do not set BypassPolicyLockoutSafetyCheck to true, the policy must meet the following criteria:

If you do not specify a policy, AWS KMS attaches a default key policy to the CMK. For more information, see Default Key Policy in the AWS Key Management Service Developer Guide.

The policy size limit is 32 kilobytes (32768 bytes).

", "GetKeyPolicyResponse$Policy": "

A policy document in JSON format.

", - "PutKeyPolicyRequest$Policy": "

The key policy to attach to the CMK.

If you do not set BypassPolicyLockoutSafetyCheck to true, the policy must meet the following criteria:

The policy size limit is 32 KiB (32768 bytes).

" + "PutKeyPolicyRequest$Policy": "

The key policy to attach to the CMK.

If you do not set BypassPolicyLockoutSafetyCheck to true, the policy must meet the following criteria:

The policy size limit is 32 kilobytes (32768 bytes).

" } }, "PrincipalIdType": { @@ -781,7 +787,7 @@ } }, "Tag": { - "base": "

A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.

", + "base": "

A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.

For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the AWS Billing and Cost Management User Guide.

", "refs": { "TagList$member": null } diff --git a/models/apis/kms/2014-11-01/examples-1.json b/models/apis/kms/2014-11-01/examples-1.json index 39ffbeec24d..b0a17a5bec4 100644 --- a/models/apis/kms/2014-11-01/examples-1.json +++ b/models/apis/kms/2014-11-01/examples-1.json @@ -83,10 +83,11 @@ "KeyMetadata": { "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", - "CreationDate": "2017-01-09T12:00:07-08:00", + "CreationDate": "2017-07-05T14:04:55-07:00", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_KMS" @@ -166,11 +167,12 @@ "output": { "KeyMetadata": { "AWSAccountId": "111122223333", - "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", - "CreationDate": "2015-10-12T11:45:07-07:00", + "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "CreationDate": "2017-07-05T14:04:55-07:00", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", + "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_KMS" diff --git a/models/apis/lambda/2015-03-31/api-2.json b/models/apis/lambda/2015-03-31/api-2.json index 1977669a173..23de3557546 100644 --- a/models/apis/lambda/2015-03-31/api-2.json +++ b/models/apis/lambda/2015-03-31/api-2.json @@ -125,6 +125,21 @@ {"shape":"ResourceConflictException"} ] }, + "DeleteFunctionConcurrency":{ + "name":"DeleteFunctionConcurrency", + "http":{ + "method":"DELETE", + "requestUri":"/2017-10-31/functions/{FunctionName}/concurrency", + "responseCode":204 + }, + "input":{"shape":"DeleteFunctionConcurrencyRequest"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidParameterValueException"} + ] + }, "GetAccountSettings":{ "name":"GetAccountSettings", "http":{ @@ -310,7 +325,8 @@ "output":{"shape":"ListFunctionsResponse"}, "errors":[ {"shape":"ServiceException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidParameterValueException"} ] }, "ListTags":{ @@ -361,6 +377,22 @@ {"shape":"CodeStorageExceededException"} ] }, + "PutFunctionConcurrency":{ + "name":"PutFunctionConcurrency", + "http":{ + "method":"PUT", + "requestUri":"/2017-10-31/functions/{FunctionName}/concurrency", + "responseCode":200 + }, + "input":{"shape":"PutFunctionConcurrencyRequest"}, + "output":{"shape":"Concurrency"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"} + ] + }, "RemovePermission":{ "name":"RemovePermission", "http":{ @@ -481,7 +513,8 @@ "TotalCodeSize":{"shape":"Long"}, "CodeSizeUnzipped":{"shape":"Long"}, "CodeSizeZipped":{"shape":"Long"}, - "ConcurrentExecutions":{"shape":"Integer"} + "ConcurrentExecutions":{"shape":"Integer"}, + "UnreservedConcurrentExecutions":{"shape":"UnreservedConcurrentExecutions"} } }, "AccountUsage":{ @@ -528,6 +561,17 @@ "Statement":{"shape":"String"} } }, + "AdditionalVersion":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[0-9]+" + }, + "AdditionalVersionWeights":{ + "type":"map", + "key":{"shape":"AdditionalVersion"}, + "value":{"shape":"Weight"} + }, "Alias":{ "type":"string", "max":128, @@ -540,13 +584,20 @@ "AliasArn":{"shape":"FunctionArn"}, "Name":{"shape":"Alias"}, "FunctionVersion":{"shape":"Version"}, - "Description":{"shape":"Description"} + "Description":{"shape":"Description"}, + "RoutingConfig":{"shape":"AliasRoutingConfiguration"} } }, "AliasList":{ "type":"list", "member":{"shape":"AliasConfiguration"} }, + "AliasRoutingConfiguration":{ + "type":"structure", + "members":{ + "AdditionalVersionWeights":{"shape":"AdditionalVersionWeights"} + } + }, "Arn":{ "type":"string", "pattern":"arn:aws:([a-zA-Z0-9\\-])+:([a-z]{2}-[a-z]+-\\d{1})?:(\\d{12})?:(.*)" @@ -574,6 +625,12 @@ "error":{"httpStatusCode":400}, "exception":true }, + "Concurrency":{ + "type":"structure", + "members":{ + "ReservedConcurrentExecutions":{"shape":"ReservedConcurrentExecutions"} + } + }, "CreateAliasRequest":{ "type":"structure", "required":[ @@ -589,7 +646,8 @@ }, "Name":{"shape":"Alias"}, "FunctionVersion":{"shape":"Version"}, - "Description":{"shape":"Description"} + "Description":{"shape":"Description"}, + "RoutingConfig":{"shape":"AliasRoutingConfiguration"} } }, "CreateEventSourceMappingRequest":{ @@ -672,6 +730,17 @@ } } }, + "DeleteFunctionConcurrencyRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + } + } + }, "DeleteFunctionRequest":{ "type":"structure", "required":["FunctionName"], @@ -820,8 +889,8 @@ "FunctionConfiguration":{ "type":"structure", "members":{ - "FunctionName":{"shape":"FunctionName"}, - "FunctionArn":{"shape":"FunctionArn"}, + "FunctionName":{"shape":"NamespacedFunctionName"}, + "FunctionArn":{"shape":"NameSpacedFunctionArn"}, "Runtime":{"shape":"Runtime"}, "Role":{"shape":"RoleArn"}, "Handler":{"shape":"Handler"}, @@ -836,7 +905,8 @@ "DeadLetterConfig":{"shape":"DeadLetterConfig"}, "Environment":{"shape":"EnvironmentResponse"}, "KMSKeyArn":{"shape":"KMSKeyArn"}, - "TracingConfig":{"shape":"TracingConfigResponse"} + "TracingConfig":{"shape":"TracingConfigResponse"}, + "MasterArn":{"shape":"FunctionArn"} } }, "FunctionList":{ @@ -849,6 +919,10 @@ "min":1, "pattern":"(arn:aws:lambda:)?([a-z]{2}-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?" }, + "FunctionVersion":{ + "type":"string", + "enum":["ALL"] + }, "GetAccountSettingsRequest":{ "type":"structure", "members":{ @@ -896,7 +970,7 @@ "required":["FunctionName"], "members":{ "FunctionName":{ - "shape":"FunctionName", + "shape":"NamespacedFunctionName", "location":"uri", "locationName":"FunctionName" }, @@ -912,7 +986,7 @@ "required":["FunctionName"], "members":{ "FunctionName":{ - "shape":"FunctionName", + "shape":"NamespacedFunctionName", "location":"uri", "locationName":"FunctionName" }, @@ -928,7 +1002,8 @@ "members":{ "Configuration":{"shape":"FunctionConfiguration"}, "Code":{"shape":"FunctionCodeLocation"}, - "Tags":{"shape":"Tags"} + "Tags":{"shape":"Tags"}, + "Concurrency":{"shape":"Concurrency"} } }, "GetPolicyRequest":{ @@ -936,7 +1011,7 @@ "required":["FunctionName"], "members":{ "FunctionName":{ - "shape":"FunctionName", + "shape":"NamespacedFunctionName", "location":"uri", "locationName":"FunctionName" }, @@ -1019,7 +1094,7 @@ "required":["FunctionName"], "members":{ "FunctionName":{ - "shape":"FunctionName", + "shape":"NamespacedFunctionName", "location":"uri", "locationName":"FunctionName" }, @@ -1064,7 +1139,12 @@ "location":"header", "locationName":"X-Amz-Log-Result" }, - "Payload":{"shape":"Blob"} + "Payload":{"shape":"Blob"}, + "ExecutedVersion":{ + "shape":"Version", + "location":"header", + "locationName":"X-Amz-Executed-Version" + } }, "payload":"Payload" }, @@ -1084,7 +1164,7 @@ ], "members":{ "FunctionName":{ - "shape":"FunctionName", + "shape":"NamespacedFunctionName", "location":"uri", "locationName":"FunctionName" }, @@ -1211,6 +1291,16 @@ "ListFunctionsRequest":{ "type":"structure", "members":{ + "MasterRegion":{ + "shape":"MasterRegion", + "location":"querystring", + "locationName":"MasterRegion" + }, + "FunctionVersion":{ + "shape":"FunctionVersion", + "location":"querystring", + "locationName":"FunctionVersion" + }, "Marker":{ "shape":"String", "location":"querystring", @@ -1252,7 +1342,7 @@ "required":["FunctionName"], "members":{ "FunctionName":{ - "shape":"FunctionName", + "shape":"NamespacedFunctionName", "location":"uri", "locationName":"FunctionName" }, @@ -1283,6 +1373,10 @@ ] }, "Long":{"type":"long"}, + "MasterRegion":{ + "type":"string", + "pattern":"ALL|[a-z]{2}(-gov)?-[a-z]+-\\d{1}" + }, "MaxListItems":{ "type":"integer", "max":10000, @@ -1290,9 +1384,25 @@ }, "MemorySize":{ "type":"integer", - "max":1536, + "max":3008, "min":128 }, + "NameSpacedFunctionArn":{ + "type":"string", + "pattern":"arn:aws:lambda:[a-z]{2}-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?" + }, + "NamespacedFunctionName":{ + "type":"string", + "max":170, + "min":1, + "pattern":"(arn:aws:lambda:)?([a-z]{2}-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_\\.]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?" + }, + "NamespacedStatementId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"([a-zA-Z0-9-_.]+)" + }, "PolicyLengthExceededException":{ "type":"structure", "members":{ @@ -1319,6 +1429,21 @@ "Description":{"shape":"Description"} } }, + "PutFunctionConcurrencyRequest":{ + "type":"structure", + "required":[ + "FunctionName", + "ReservedConcurrentExecutions" + ], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "ReservedConcurrentExecutions":{"shape":"ReservedConcurrentExecutions"} + } + }, "Qualifier":{ "type":"string", "max":128, @@ -1338,7 +1463,7 @@ "locationName":"FunctionName" }, "StatementId":{ - "shape":"StatementId", + "shape":"NamespacedStatementId", "location":"uri", "locationName":"StatementId" }, @@ -1358,6 +1483,10 @@ "error":{"httpStatusCode":413}, "exception":true }, + "ReservedConcurrentExecutions":{ + "type":"integer", + "min":0 + }, "ResourceArn":{ "type":"string", "pattern":"(arn:aws:[a-z0-9-.]+:.*)|()" @@ -1489,6 +1618,8 @@ "enum":[ "ConcurrentInvocationLimitExceeded", "FunctionInvocationRateLimitExceeded", + "ReservedFunctionConcurrentInvocationLimitExceeded", + "ReservedFunctionInvocationRateLimitExceeded", "CallerRateLimitExceeded" ] }, @@ -1531,6 +1662,10 @@ "PassThrough" ] }, + "UnreservedConcurrentExecutions":{ + "type":"integer", + "min":0 + }, "UnsupportedMediaTypeException":{ "type":"structure", "members":{ @@ -1577,7 +1712,8 @@ "locationName":"Name" }, "FunctionVersion":{"shape":"Version"}, - "Description":{"shape":"Description"} + "Description":{"shape":"Description"}, + "RoutingConfig":{"shape":"AliasRoutingConfiguration"} } }, "UpdateEventSourceMappingRequest":{ @@ -1654,6 +1790,11 @@ "VpcId":{"shape":"VpcId"} } }, - "VpcId":{"type":"string"} + "VpcId":{"type":"string"}, + "Weight":{ + "type":"double", + "max":1.0, + "min":0.0 + } } } diff --git a/models/apis/lambda/2015-03-31/docs-2.json b/models/apis/lambda/2015-03-31/docs-2.json index 3c2d2a15f41..adfaf69ca72 100644 --- a/models/apis/lambda/2015-03-31/docs-2.json +++ b/models/apis/lambda/2015-03-31/docs-2.json @@ -9,6 +9,7 @@ "DeleteAlias": "

Deletes the specified Lambda function alias. For more information, see Introduction to AWS Lambda Aliases.

This requires permission for the lambda:DeleteAlias action.

", "DeleteEventSourceMapping": "

Removes an event source mapping. This means AWS Lambda will no longer invoke the function for events in the associated source.

This operation requires permission for the lambda:DeleteEventSourceMapping action.

", "DeleteFunction": "

Deletes the specified Lambda function code and configuration.

If you are using the versioning feature and you don't specify a function version in your DeleteFunction request, AWS Lambda will delete the function, including all its versions, and any aliases pointing to the function versions. To delete a specific function version, you must provide the function version via the Qualifier parameter. For information about function versioning, see AWS Lambda Function Versioning and Aliases.

When you delete a function the associated resource policy is also deleted. You will need to delete the event source mappings explicitly.

This operation requires permission for the lambda:DeleteFunction action.

", + "DeleteFunctionConcurrency": "

Removes concurrent execution limits from this function.

", "GetAccountSettings": "

Returns a customer's account settings.

You can use this operation to retrieve Lambda limits information, such as code size and concurrency limits. For more information about limits, see AWS Lambda Limits. You can also retrieve resource usage statistics, such as code storage usage and function count.

", "GetAlias": "

Returns the specified alias information such as the alias ARN, description, and function version it is pointing to. For more information, see Introduction to AWS Lambda Aliases.

This requires permission for the lambda:GetAlias action.

", "GetEventSourceMapping": "

Returns configuration information for the specified event source mapping (see CreateEventSourceMapping).

This operation requires permission for the lambda:GetEventSourceMapping action.

", @@ -19,10 +20,11 @@ "InvokeAsync": "

This API is deprecated. We recommend you use Invoke API (see Invoke).

Submits an invocation request to AWS Lambda. Upon receiving the request, Lambda executes the specified function asynchronously. To see the logs generated by the Lambda function execution, see the CloudWatch Logs console.

This operation requires permission for the lambda:InvokeFunction action.

", "ListAliases": "

Returns list of aliases created for a Lambda function. For each alias, the response includes information such as the alias ARN, description, alias name, and the function version to which it points. For more information, see Introduction to AWS Lambda Aliases.

This requires permission for the lambda:ListAliases action.

", "ListEventSourceMappings": "

Returns a list of event source mappings you created using the CreateEventSourceMapping (see CreateEventSourceMapping).

For each mapping, the API returns configuration information. You can optionally specify filters to retrieve specific event source mappings.

If you are using the versioning feature, you can get list of event source mappings for a specific Lambda function version or an alias as described in the FunctionName parameter. For information about the versioning feature, see AWS Lambda Function Versioning and Aliases.

This operation requires permission for the lambda:ListEventSourceMappings action.

", - "ListFunctions": "

Returns a list of your Lambda functions. For each function, the response includes the function configuration information. You must use GetFunction to retrieve the code for your function.

This operation requires permission for the lambda:ListFunctions action.

If you are using versioning feature, the response returns list of $LATEST versions of your functions. For information about the versioning feature, see AWS Lambda Function Versioning and Aliases.

", + "ListFunctions": "

Returns a list of your Lambda functions. For each function, the response includes the function configuration information. You must use GetFunction to retrieve the code for your function.

This operation requires permission for the lambda:ListFunctions action.

If you are using the versioning feature, you can list all of your functions or only $LATEST versions. For information about the versioning feature, see AWS Lambda Function Versioning and Aliases.

", "ListTags": "

Returns a list of tags assigned to a function when supplied the function ARN (Amazon Resource Name).

", "ListVersionsByFunction": "

List all versions of a function. For information about the versioning feature, see AWS Lambda Function Versioning and Aliases.

", "PublishVersion": "

Publishes a version of your function from the current snapshot of $LATEST. That is, AWS Lambda takes a snapshot of the function code and configuration information from $LATEST and publishes a new version. The code and configuration cannot be modified after publication. For information about the versioning feature, see AWS Lambda Function Versioning and Aliases.

", + "PutFunctionConcurrency": "

Sets a limit on the number of concurrent executions available to this function. It is a subset of your account's total concurrent execution limit per region. Note that Lambda automatically reserves a buffer of 100 concurrent executions for functions without any reserved concurrency limit. This means if your account limit is 1000, you have a total of 900 available to allocate to individual functions.

", "RemovePermission": "

You can remove individual permissions from an resource policy associated with a Lambda function by providing a statement ID that you provided when you added the permission.

If you are using versioning, the permissions you remove are specific to the Lambda function version or alias you specify in the AddPermission request via the Qualifier parameter. For more information about versioning, see AWS Lambda Function Versioning and Aliases.

Note that removal of a permission will cause an active event source to lose permission to the function.

You need permission for the lambda:RemovePermission action.

", "TagResource": "

Creates a list of tags (key-value pairs) on the Lambda function. Requires the Lambda function ARN (Amazon Resource Name). If a key is specified without a value, Lambda creates a tag with the specified key and a value of null.

", "UntagResource": "

Removes tags from a Lambda function. Requires the function ARN (Amazon Resource Name).

", @@ -60,6 +62,18 @@ "refs": { } }, + "AdditionalVersion": { + "base": null, + "refs": { + "AdditionalVersionWeights$key": null + } + }, + "AdditionalVersionWeights": { + "base": null, + "refs": { + "AliasRoutingConfiguration$AdditionalVersionWeights": "

Set this property value to dictate what percentage of traffic will invoke the updated function version. If set to an empty string, 100 percent of traffic will invoke function-version.

" + } + }, "Alias": { "base": null, "refs": { @@ -82,6 +96,14 @@ "ListAliasesResponse$Aliases": "

A list of aliases.

" } }, + "AliasRoutingConfiguration": { + "base": "

The parent object that implements what percentage of traffic will invoke each function version. For more information, see lambda-traffic-shifting-using-aliases.

", + "refs": { + "AliasConfiguration$RoutingConfig": "

Specifies an additional function versions the alias points to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see lambda-traffic-shifting-using-aliases.

", + "CreateAliasRequest$RoutingConfig": "

Specifies an additional version your alias can point to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see lambda-traffic-shifting-using-aliases.

", + "UpdateAliasRequest$RoutingConfig": "

Specifies an additional version your alias can point to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see lambda-traffic-shifting-using-aliases.

" + } + }, "Arn": { "base": null, "refs": { @@ -119,7 +141,7 @@ "refs": { "CreateFunctionRequest$Publish": "

This boolean parameter can be used to request AWS Lambda to create the Lambda function and publish a version as an atomic operation.

", "UpdateFunctionCodeRequest$Publish": "

This boolean parameter can be used to request AWS Lambda to update the Lambda function and publish a version as an atomic operation.

", - "UpdateFunctionCodeRequest$DryRun": "

This boolean parameter can be used to test your request to AWS Lambda to update the Lambda function and publish a version as an atomic operation. It will do all necessary computation and validation of your code but will not upload it or a publish a version. Each time this operation is invoked, the CodeSha256 hash value the provided code will also be computed and returned in the response.

" + "UpdateFunctionCodeRequest$DryRun": "

This boolean parameter can be used to test your request to AWS Lambda to update the Lambda function and publish a version as an atomic operation. It will do all necessary computation and validation of your code but will not upload it or a publish a version. Each time this operation is invoked, the CodeSha256 hash value of the provided code will also be computed and returned in the response.

" } }, "CodeStorageExceededException": { @@ -127,6 +149,12 @@ "refs": { } }, + "Concurrency": { + "base": null, + "refs": { + "GetFunctionResponse$Concurrency": "

The concurrent execution limit set for this function.

" + } + }, "CreateAliasRequest": { "base": null, "refs": { @@ -167,6 +195,11 @@ "refs": { } }, + "DeleteFunctionConcurrencyRequest": { + "base": null, + "refs": { + } + }, "DeleteFunctionRequest": { "base": null, "refs": { @@ -278,7 +311,7 @@ "refs": { "AliasConfiguration$AliasArn": "

Lambda function ARN that is qualified using the alias name as the suffix. For example, if you create an alias called BETA that points to a helloworld function version, the ARN is arn:aws:lambda:aws-regions:acct-id:function:helloworld:BETA.

", "EventSourceMappingConfiguration$FunctionArn": "

The Lambda function to invoke when AWS Lambda detects an event on the stream.

", - "FunctionConfiguration$FunctionArn": "

The Amazon Resource Name (ARN) assigned to the function.

", + "FunctionConfiguration$MasterArn": "

Returns the ARN (Amazon Resource Name) of the master function.

", "ListTagsRequest$Resource": "

The ARN (Amazon Resource Name) of the function.

", "TagResourceRequest$Resource": "

The ARN (Amazon Resource Name) of the Lambda function.

", "UntagResourceRequest$Resource": "

The ARN (Amazon Resource Name) of the function.

" @@ -318,18 +351,13 @@ "CreateEventSourceMappingRequest$FunctionName": "

The Lambda function to invoke when AWS Lambda detects an event on the stream.

You can specify the function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail).

If you are using versioning, you can also provide a qualified function ARN (ARN that is qualified with function version or alias name as suffix). For more information about versioning, see AWS Lambda Function Versioning and Aliases

AWS Lambda also allows you to specify only the function name with the account ID qualifier (for example, account-id:Thumbnail).

Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", "CreateFunctionRequest$FunctionName": "

The name you want to assign to the function you are uploading. The function names appear in the console and are returned in the ListFunctions API. Function names are used to specify functions to other AWS Lambda API operations, such as Invoke. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", "DeleteAliasRequest$FunctionName": "

The Lambda function name for which the alias is created. Deleting an alias does not delete the function version to which it is pointing. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "DeleteFunctionConcurrencyRequest$FunctionName": "

The name of the function you are removing concurrent execution limits from.

", "DeleteFunctionRequest$FunctionName": "

The Lambda function to delete.

You can specify the function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). If you are using versioning, you can also provide a qualified function ARN (ARN that is qualified with function version or alias name as suffix). AWS Lambda also allows you to specify only the function name with the account ID qualifier (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", - "FunctionConfiguration$FunctionName": "

The name of the function. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", "GetAliasRequest$FunctionName": "

Function name for which the alias is created. An alias is a subresource that exists only in the context of an existing Lambda function so you must specify the function name. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", - "GetFunctionConfigurationRequest$FunctionName": "

The name of the Lambda function for which you want to retrieve the configuration information.

You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", - "GetFunctionRequest$FunctionName": "

The Lambda function name.

You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", - "GetPolicyRequest$FunctionName": "

Function name whose resource policy you want to retrieve.

You can specify the function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). If you are using versioning, you can also provide a qualified function ARN (ARN that is qualified with function version or alias name as suffix). AWS Lambda also allows you to specify only the function name with the account ID qualifier (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", - "InvocationRequest$FunctionName": "

The Lambda function name.

You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", - "InvokeAsyncRequest$FunctionName": "

The Lambda function name. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", "ListAliasesRequest$FunctionName": "

Lambda function name for which the alias is created. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", "ListEventSourceMappingsRequest$FunctionName": "

The name of the Lambda function.

You can specify the function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). If you are using versioning, you can also provide a qualified function ARN (ARN that is qualified with function version or alias name as suffix). AWS Lambda also allows you to specify only the function name with the account ID qualifier (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", - "ListVersionsByFunctionRequest$FunctionName": "

Function name whose versions to list. You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", "PublishVersionRequest$FunctionName": "

The Lambda function name. You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "PutFunctionConcurrencyRequest$FunctionName": "

The name of the function you are setting concurrent execution limits on.

", "RemovePermissionRequest$FunctionName": "

Lambda function whose resource policy you want to remove a permission from.

You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", "UpdateAliasRequest$FunctionName": "

The function name for which the alias is created. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", "UpdateEventSourceMappingRequest$FunctionName": "

The Lambda function to which you want the stream records sent.

You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

If you are using versioning, you can also provide a qualified function ARN (ARN that is qualified with function version or alias name as suffix). For more information about versioning, see AWS Lambda Function Versioning and Aliases

Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", @@ -337,6 +365,12 @@ "UpdateFunctionConfigurationRequest$FunctionName": "

The name of the Lambda function.

You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

" } }, + "FunctionVersion": { + "base": null, + "refs": { + "ListFunctionsRequest$FunctionVersion": "

Optional string. If not specified, only the unqualified functions ARNs (Amazon Resource Names) will be returned.

Valid value:

ALL: Will return all versions, including $LATEST which will have fully qualified ARNs (Amazon Resource Names).

" + } + }, "GetAccountSettingsRequest": { "base": null, "refs": { @@ -399,12 +433,12 @@ "Integer": { "base": null, "refs": { - "AccountLimit$ConcurrentExecutions": "

Number of simultaneous executions of your function per region. For more information or to request a limit increase for concurrent executions, see Lambda Function Concurrent Executions. The default limit is 100.

", + "AccountLimit$ConcurrentExecutions": "

Number of simultaneous executions of your function per region. For more information or to request a limit increase for concurrent executions, see Lambda Function Concurrent Executions. The default limit is 1000.

", "InvocationResponse$StatusCode": "

The HTTP status code will be in the 200 range for successful request. For the RequestResponse invocation type this status code will be 200. For the Event invocation type this status code will be 202. For the DryRun invocation type the status code will be 204.

" } }, "InvalidParameterValueException": { - "base": "

One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception. You will also get this exception if you have selected a deprecated runtime, such as Node v0.10.42.

", + "base": "

One of the parameters in the request is invalid. For example, if you provided an IAM role for AWS Lambda to assume in the CreateFunction or the UpdateFunctionConfiguration API, that AWS Lambda is unable to assume you will get this exception.

", "refs": { } }, @@ -554,6 +588,12 @@ "FunctionConfiguration$CodeSize": "

The size, in bytes, of the function .zip file you uploaded.

" } }, + "MasterRegion": { + "base": null, + "refs": { + "ListFunctionsRequest$MasterRegion": "

Optional string. If not specified, will return only regular function versions (i.e., non-replicated versions).

Valid values are:

The region from which the functions are replicated. For example, if you specify us-east-1, only functions replicated from that region will be returned.

ALL: Will return all functions from any region. If specified, you also must specify a valid FunctionVersion parameter.

" + } + }, "MaxListItems": { "base": null, "refs": { @@ -571,6 +611,30 @@ "UpdateFunctionConfigurationRequest$MemorySize": "

The amount of memory, in MB, your Lambda function is given. AWS Lambda uses this memory size to infer the amount of CPU allocated to your function. Your function use-case determines your CPU and memory requirements. For example, a database operation might need less memory compared to an image processing function. The default value is 128 MB. The value must be a multiple of 64 MB.

" } }, + "NameSpacedFunctionArn": { + "base": null, + "refs": { + "FunctionConfiguration$FunctionArn": "

The Amazon Resource Name (ARN) assigned to the function.

" + } + }, + "NamespacedFunctionName": { + "base": null, + "refs": { + "FunctionConfiguration$FunctionName": "

The name of the function. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "GetFunctionConfigurationRequest$FunctionName": "

The name of the Lambda function for which you want to retrieve the configuration information.

You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "GetFunctionRequest$FunctionName": "

The Lambda function name.

You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "GetPolicyRequest$FunctionName": "

Function name whose resource policy you want to retrieve.

You can specify the function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). If you are using versioning, you can also provide a qualified function ARN (ARN that is qualified with function version or alias name as suffix). AWS Lambda also allows you to specify only the function name with the account ID qualifier (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "InvocationRequest$FunctionName": "

The Lambda function name.

You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "InvokeAsyncRequest$FunctionName": "

The Lambda function name. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "ListVersionsByFunctionRequest$FunctionName": "

Function name whose versions to list. You can specify a function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, arn:aws:lambda:us-west-2:account-id:function:ThumbNail). AWS Lambda also allows you to specify a partial ARN (for example, account-id:Thumbnail). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.

" + } + }, + "NamespacedStatementId": { + "base": null, + "refs": { + "RemovePermissionRequest$StatementId": "

Statement ID of the permission to remove.

" + } + }, "PolicyLengthExceededException": { "base": "

Lambda function access policy is limited to 20 KB.

", "refs": { @@ -587,13 +651,18 @@ "refs": { } }, + "PutFunctionConcurrencyRequest": { + "base": null, + "refs": { + } + }, "Qualifier": { "base": null, "refs": { "AddPermissionRequest$Qualifier": "

You can use this optional query parameter to describe a qualified ARN using a function version or an alias name. The permission will then apply to the specific qualified ARN. For example, if you specify function version 2 as the qualifier, then permission applies only when request is made using qualified function ARN:

arn:aws:lambda:aws-region:acct-id:function:function-name:2

If you specify an alias name, for example PROD, then the permission is valid only for requests made using the alias ARN:

arn:aws:lambda:aws-region:acct-id:function:function-name:PROD

If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN.

arn:aws:lambda:aws-region:acct-id:function:function-name

", "DeleteFunctionRequest$Qualifier": "

Using this optional parameter you can specify a function version (but not the $LATEST version) to direct AWS Lambda to delete a specific function version. If the function version has one or more aliases pointing to it, you will get an error because you cannot have aliases pointing to it. You can delete any function version but not the $LATEST, that is, you cannot specify $LATEST as the value of this parameter. The $LATEST version can be deleted only when you want to delete all the function versions and aliases.

You can only specify a function version, not an alias name, using this parameter. You cannot delete a function version using its alias.

If you don't specify this parameter, AWS Lambda will delete the function, including all of its versions and aliases.

", "GetFunctionConfigurationRequest$Qualifier": "

Using this optional parameter you can specify a function version or an alias name. If you specify function version, the API uses qualified function ARN and returns information about the specific function version. If you specify an alias name, the API uses the alias ARN and returns information about the function version to which the alias points.

If you don't specify this parameter, the API uses unqualified function ARN, and returns information about the $LATEST function version.

", - "GetFunctionRequest$Qualifier": "

Using this optional parameter to specify a function version or an alias name. If you specify function version, the API uses qualified function ARN for the request and returns information about the specific Lambda function version. If you specify an alias name, the API uses the alias ARN and returns information about the function version to which the alias points. If you don't provide this parameter, the API uses unqualified function ARN and returns information about the $LATEST version of the Lambda function.

", + "GetFunctionRequest$Qualifier": "

Use this optional parameter to specify a function version or an alias name. If you specify function version, the API uses qualified function ARN for the request and returns information about the specific Lambda function version. If you specify an alias name, the API uses the alias ARN and returns information about the function version to which the alias points. If you don't provide this parameter, the API uses unqualified function ARN and returns information about the $LATEST version of the Lambda function.

", "GetPolicyRequest$Qualifier": "

You can specify this optional query parameter to specify a function version or an alias name in which case this API will return all permissions associated with the specific qualified ARN. If you don't provide this parameter, the API will return permissions that apply to the unqualified function ARN.

", "InvocationRequest$Qualifier": "

You can use this optional parameter to specify a Lambda function version or alias name. If you specify a function version, the API uses the qualified function ARN to invoke a specific Lambda function. If you specify an alias name, the API uses the alias ARN to invoke the Lambda function version to which the alias points.

If you don't provide this parameter, then the API uses unqualified function ARN which results in invocation of the $LATEST version.

", "RemovePermissionRequest$Qualifier": "

You can specify this optional parameter to remove permission associated with a specific function version or function alias. If you don't specify this parameter, the API removes permission associated with the unqualified function ARN.

" @@ -609,6 +678,13 @@ "refs": { } }, + "ReservedConcurrentExecutions": { + "base": null, + "refs": { + "Concurrency$ReservedConcurrentExecutions": "

The number of concurrent executions reserved for this function.

", + "PutFunctionConcurrencyRequest$ReservedConcurrentExecutions": "

The concurrent execution limit reserved for this function.

" + } + }, "ResourceArn": { "base": null, "refs": { @@ -636,9 +712,9 @@ "Runtime": { "base": null, "refs": { - "CreateFunctionRequest$Runtime": "

The runtime environment for the Lambda function you are uploading.

To use the Python runtime v3.6, set the value to \"python3.6\". To use the Python runtime v2.7, set the value to \"python2.7\". To use the Node.js runtime v6.10, set the value to \"nodejs6.10\". To use the Node.js runtime v4.3, set the value to \"nodejs4.3\".

Node v0.10.42 is currently marked as deprecated. You must migrate existing functions to the newer Node.js runtime versions available on AWS Lambda (nodejs4.3 or nodejs6.10) as soon as possible. You can request a one-time extension until June 30, 2017 by going to the Lambda console and following the instructions provided. Failure to do so will result in an invalid parmaeter error being returned. Note that you will have to follow this procedure for each region that contains functions written in the Node v0.10.42 runtime.

", + "CreateFunctionRequest$Runtime": "

The runtime environment for the Lambda function you are uploading.

To use the Python runtime v3.6, set the value to \"python3.6\". To use the Python runtime v2.7, set the value to \"python2.7\". To use the Node.js runtime v6.10, set the value to \"nodejs6.10\". To use the Node.js runtime v4.3, set the value to \"nodejs4.3\".

Node v0.10.42 is currently marked as deprecated. You must migrate existing functions to the newer Node.js runtime versions available on AWS Lambda (nodejs4.3 or nodejs6.10) as soon as possible. Failure to do so will result in an invalid parmaeter error being returned. Note that you will have to follow this procedure for each region that contains functions written in the Node v0.10.42 runtime.

", "FunctionConfiguration$Runtime": "

The runtime environment for the Lambda function.

", - "UpdateFunctionConfigurationRequest$Runtime": "

The runtime environment for the Lambda function.

To use the Python runtime v3.6, set the value to \"python3.6\". To use the Python runtime v2.7, set the value to \"python2.7\". To use the Node.js runtime v6.10, set the value to \"nodejs6.10\". To use the Node.js runtime v4.3, set the value to \"nodejs4.3\". To use the Python runtime v3.6, set the value to \"python3.6\". To use the Python runtime v2.7, set the value to \"python2.7\".

Node v0.10.42 is currently marked as deprecated. You must migrate existing functions to the newer Node.js runtime versions available on AWS Lambda (nodejs4.3 or nodejs6.10) as soon as possible. You can request a one-time extension until June 30, 2017 by going to the Lambda console and following the instructions provided. Failure to do so will result in an invalid parameter value error being returned. Note that you will have to follow this procedure for each region that contains functions written in the Node v0.10.42 runtime.

" + "UpdateFunctionConfigurationRequest$Runtime": "

The runtime environment for the Lambda function.

To use the Python runtime v3.6, set the value to \"python3.6\". To use the Python runtime v2.7, set the value to \"python2.7\". To use the Node.js runtime v6.10, set the value to \"nodejs6.10\". To use the Node.js runtime v4.3, set the value to \"nodejs4.3\". To use the Python runtime v3.6, set the value to \"python3.6\".

Node v0.10.42 is currently marked as deprecated. You must migrate existing functions to the newer Node.js runtime versions available on AWS Lambda (nodejs4.3 or nodejs6.10) as soon as possible. Failure to do so will result in an invalid parameter error being returned. Note that you will have to follow this procedure for each region that contains functions written in the Node v0.10.42 runtime.

" } }, "S3Bucket": { @@ -695,8 +771,7 @@ "StatementId": { "base": null, "refs": { - "AddPermissionRequest$StatementId": "

A unique statement identifier.

", - "RemovePermissionRequest$StatementId": "

Statement ID of the permission to remove.

" + "AddPermissionRequest$StatementId": "

A unique statement identifier.

" } }, "String": { @@ -737,7 +812,7 @@ "InvalidSubnetIDException$Message": null, "InvalidZipFileException$Type": null, "InvalidZipFileException$Message": null, - "InvocationRequest$ClientContext": "

Using the ClientContext you can pass client-specific information to the Lambda function you are invoking. You can then process the client information in your Lambda function as you choose through the context variable. For an example of a ClientContext JSON, see PutEvents in the Amazon Mobile Analytics API Reference and User Guide.

The ClientContext JSON must be base64-encoded.

", + "InvocationRequest$ClientContext": "

Using the ClientContext you can pass client-specific information to the Lambda function you are invoking. You can then process the client information in your Lambda function as you choose through the context variable. For an example of a ClientContext JSON, see PutEvents in the Amazon Mobile Analytics API Reference and User Guide.

The ClientContext JSON must be base64-encoded and has a maximum size of 3583 bytes.

", "InvocationResponse$FunctionError": "

Indicates whether an error occurred while executing the Lambda function. If an error occurred this field will have one of two values; Handled or Unhandled. Handled errors are errors that are reported by the function while the Unhandled errors are those detected and reported by AWS Lambda. Unhandled errors include out of memory errors and function timeouts. For information about how to report an Handled error, see Programming Model.

", "InvocationResponse$LogResult": "

It is the base64-encoded logs for the Lambda function invocation. This is present only if the invocation type is RequestResponse and the logs were requested.

", "KMSAccessDeniedException$Type": null, @@ -758,7 +833,7 @@ "ListVersionsByFunctionResponse$NextMarker": "

A string, present if there are more function versions.

", "PolicyLengthExceededException$Type": null, "PolicyLengthExceededException$message": null, - "PublishVersionRequest$CodeSha256": "

The SHA256 hash of the deployment package you want to publish. This provides validation on the code you are publishing. If you provide this parameter value must match the SHA256 of the $LATEST version for the publication to succeed.

", + "PublishVersionRequest$CodeSha256": "

The SHA256 hash of the deployment package you want to publish. This provides validation on the code you are publishing. If you provide this parameter, the value must match the SHA256 of the $LATEST version for the publication to succeed. You can use the DryRun parameter of UpdateFunctionCode to verify the hash value that will be returned before publishing your new version.

", "RequestTooLargeException$Type": null, "RequestTooLargeException$message": null, "ResourceConflictException$Type": "

", @@ -849,7 +924,7 @@ } }, "TooManyRequestsException": { - "base": "

", + "base": "

You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded is returned if you have no functions with reserved-concurrency and have exceeded your account concurrent limit or if a function without reserved concurrency exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded is returned when a function with reserved concurrency exceeds its configured concurrent limit. CallerRateLimitExceeded is returned when your account limit is exceeded and you have not reserved concurrency on any function. For more information, see concurrent-executions

", "refs": { } }, @@ -873,6 +948,12 @@ "TracingConfigResponse$Mode": "

The tracing mode associated with your Lambda function.

" } }, + "UnreservedConcurrentExecutions": { + "base": null, + "refs": { + "AccountLimit$UnreservedConcurrentExecutions": "

The number of concurrent executions available to functions that do not have concurrency limits set.

" + } + }, "UnsupportedMediaTypeException": { "base": "

The content type of the Invoke request body is not JSON.

", "refs": { @@ -909,6 +990,7 @@ "AliasConfiguration$FunctionVersion": "

Function version to which the alias points.

", "CreateAliasRequest$FunctionVersion": "

Lambda function version for which you are creating the alias.

", "FunctionConfiguration$Version": "

The version of the Lambda function.

", + "InvocationResponse$ExecutedVersion": "

The function version that has been executed. This value is returned only if the invocation type is RequestResponse.

", "ListAliasesRequest$FunctionVersion": "

If you specify this optional parameter, the API returns only the aliases that are pointing to the specific Lambda function version, otherwise the API returns all of the aliases created for the Lambda function.

", "UpdateAliasRequest$FunctionVersion": "

Using this parameter you can change the Lambda function version to which the alias points.

" } @@ -931,6 +1013,12 @@ "refs": { "VpcConfigResponse$VpcId": "

The VPC ID associated with you Lambda function.

" } + }, + "Weight": { + "base": null, + "refs": { + "AdditionalVersionWeights$value": null + } } } } diff --git a/models/apis/lex-models/2017-04-19/api-2.json b/models/apis/lex-models/2017-04-19/api-2.json index 94bf9ae184c..7c1620e1a58 100644 --- a/models/apis/lex-models/2017-04-19/api-2.json +++ b/models/apis/lex-models/2017-04-19/api-2.json @@ -371,6 +371,22 @@ {"shape":"BadRequestException"} ] }, + "GetExport":{ + "name":"GetExport", + "http":{ + "method":"GET", + "requestUri":"/exports/", + "responseCode":200 + }, + "input":{"shape":"GetExportRequest"}, + "output":{"shape":"GetExportResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalFailureException"}, + {"shape":"BadRequestException"} + ] + }, "GetIntent":{ "name":"GetIntent", "http":{ @@ -677,7 +693,8 @@ "key":{"shape":"String"}, "value":{"shape":"String"}, "max":10, - "min":1 + "min":1, + "sensitive":true }, "ChannelType":{ "type":"string", @@ -804,7 +821,8 @@ "lastUpdatedDate":{"shape":"Timestamp"}, "createdDate":{"shape":"Timestamp"}, "version":{"shape":"Version"}, - "checksum":{"shape":"String"} + "checksum":{"shape":"String"}, + "valueSelectionStrategy":{"shape":"SlotValueSelectionStrategy"} } }, "CustomOrBuiltinSlotTypeName":{ @@ -975,7 +993,8 @@ "type":"structure", "required":["value"], "members":{ - "value":{"shape":"Value"} + "value":{"shape":"Value"}, + "synonyms":{"shape":"SynonymList"} } }, "EnumerationValues":{ @@ -984,6 +1003,18 @@ "max":10000, "min":1 }, + "ExportStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "READY", + "FAILED" + ] + }, + "ExportType":{ + "type":"string", + "enum":["ALEXA_SKILLS_KIT"] + }, "FollowUpPrompt":{ "type":"structure", "required":[ @@ -1329,6 +1360,49 @@ "nextToken":{"shape":"NextToken"} } }, + "GetExportRequest":{ + "type":"structure", + "required":[ + "name", + "version", + "resourceType", + "exportType" + ], + "members":{ + "name":{ + "shape":"Name", + "location":"querystring", + "locationName":"name" + }, + "version":{ + "shape":"NumericalVersion", + "location":"querystring", + "locationName":"version" + }, + "resourceType":{ + "shape":"ResourceType", + "location":"querystring", + "locationName":"resourceType" + }, + "exportType":{ + "shape":"ExportType", + "location":"querystring", + "locationName":"exportType" + } + } + }, + "GetExportResponse":{ + "type":"structure", + "members":{ + "name":{"shape":"Name"}, + "version":{"shape":"NumericalVersion"}, + "resourceType":{"shape":"ResourceType"}, + "exportType":{"shape":"ExportType"}, + "exportStatus":{"shape":"ExportStatus"}, + "failureReason":{"shape":"String"}, + "url":{"shape":"String"} + } + }, "GetIntentRequest":{ "type":"structure", "required":[ @@ -1451,7 +1525,8 @@ "lastUpdatedDate":{"shape":"Timestamp"}, "createdDate":{"shape":"Timestamp"}, "version":{"shape":"Version"}, - "checksum":{"shape":"String"} + "checksum":{"shape":"String"}, + "valueSelectionStrategy":{"shape":"SlotValueSelectionStrategy"} } }, "GetSlotTypeVersionsRequest":{ @@ -1554,9 +1629,7 @@ }, "IntentList":{ "type":"list", - "member":{"shape":"Intent"}, - "max":100, - "min":1 + "member":{"shape":"Intent"} }, "IntentMetadata":{ "type":"structure", @@ -1660,7 +1733,7 @@ "type":"string", "max":64, "min":1, - "pattern":"[a-zA-Z]+" + "pattern":"[a-zA-Z_]+" }, "NextToken":{"type":"string"}, "NotFoundException":{ @@ -1847,7 +1920,8 @@ }, "description":{"shape":"Description"}, "enumerationValues":{"shape":"EnumerationValues"}, - "checksum":{"shape":"String"} + "checksum":{"shape":"String"}, + "valueSelectionStrategy":{"shape":"SlotValueSelectionStrategy"} } }, "PutSlotTypeResponse":{ @@ -1859,7 +1933,8 @@ "lastUpdatedDate":{"shape":"Timestamp"}, "createdDate":{"shape":"Timestamp"}, "version":{"shape":"Version"}, - "checksum":{"shape":"String"} + "checksum":{"shape":"String"}, + "valueSelectionStrategy":{"shape":"SlotValueSelectionStrategy"} } }, "ReferenceType":{ @@ -1887,6 +1962,10 @@ "version":{"shape":"Version"} } }, + "ResourceType":{ + "type":"string", + "enum":["BOT"] + }, "ResponseCard":{ "type":"string", "max":50000, @@ -1960,6 +2039,13 @@ "max":10, "min":0 }, + "SlotValueSelectionStrategy":{ + "type":"string", + "enum":[ + "ORIGINAL_VALUE", + "TOP_RESOLUTION" + ] + }, "Statement":{ "type":"structure", "required":["messages"], @@ -1985,6 +2071,10 @@ ] }, "String":{"type":"string"}, + "SynonymList":{ + "type":"list", + "member":{"shape":"Value"} + }, "Timestamp":{"type":"timestamp"}, "UserId":{ "type":"string", diff --git a/models/apis/lex-models/2017-04-19/docs-2.json b/models/apis/lex-models/2017-04-19/docs-2.json index 94d1f22bdd3..54fe1e7d8a9 100644 --- a/models/apis/lex-models/2017-04-19/docs-2.json +++ b/models/apis/lex-models/2017-04-19/docs-2.json @@ -5,16 +5,16 @@ "CreateBotVersion": "

Creates a new version of the bot based on the $LATEST version. If the $LATEST version of this resource hasn't changed since you created the last version, Amazon Lex doesn't create a new version. It returns the last created version.

You can update only the $LATEST version of the bot. You can't update the numbered versions that you create with the CreateBotVersion operation.

When you create the first version of a bot, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see versioning-intro.

This operation requires permission for the lex:CreateBotVersion action.

", "CreateIntentVersion": "

Creates a new version of an intent based on the $LATEST version of the intent. If the $LATEST version of this intent hasn't changed since you last updated it, Amazon Lex doesn't create a new version. It returns the last version you created.

You can update only the $LATEST version of the intent. You can't update the numbered versions that you create with the CreateIntentVersion operation.

When you create a version of an intent, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see versioning-intro.

This operation requires permissions to perform the lex:CreateIntentVersion action.

", "CreateSlotTypeVersion": "

Creates a new version of a slot type based on the $LATEST version of the specified slot type. If the $LATEST version of this resource has not changed since the last version that you created, Amazon Lex doesn't create a new version. It returns the last version that you created.

You can update only the $LATEST version of a slot type. You can't update the numbered versions that you create with the CreateSlotTypeVersion operation.

When you create a version of a slot type, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see versioning-intro.

This operation requires permissions for the lex:CreateSlotTypeVersion action.

", - "DeleteBot": "

Deletes all versions of the bot, including the $LATEST version. To delete a specific version of the bot, use the operation.

If a bot has an alias, you can't delete it. Instead, the DeleteBot operation returns a ResourceInUseException exception that includes a reference to the alias that refers to the bot. To remove the reference to the bot, delete the alias. If you get the same exception again, delete the referring alias until the DeleteBot operation is successful.

This operation requires permissions for the lex:DeleteBot action.

", + "DeleteBot": "

Deletes all versions of the bot, including the $LATEST version. To delete a specific version of the bot, use the DeleteBotVersion operation.

If a bot has an alias, you can't delete it. Instead, the DeleteBot operation returns a ResourceInUseException exception that includes a reference to the alias that refers to the bot. To remove the reference to the bot, delete the alias. If you get the same exception again, delete the referring alias until the DeleteBot operation is successful.

This operation requires permissions for the lex:DeleteBot action.

", "DeleteBotAlias": "

Deletes an alias for the specified bot.

You can't delete an alias that is used in the association between a bot and a messaging channel. If an alias is used in a channel association, the DeleteBot operation returns a ResourceInUseException exception that includes a reference to the channel association that refers to the bot. You can remove the reference to the alias by deleting the channel association. If you get the same exception again, delete the referring association until the DeleteBotAlias operation is successful.

", "DeleteBotChannelAssociation": "

Deletes the association between an Amazon Lex bot and a messaging platform.

This operation requires permission for the lex:DeleteBotChannelAssociation action.

", - "DeleteBotVersion": "

Deletes a specific version of a bot. To delete all versions of a bot, use the operation.

This operation requires permissions for the lex:DeleteBotVersion action.

", - "DeleteIntent": "

Deletes all versions of the intent, including the $LATEST version. To delete a specific version of the intent, use the operation.

You can delete a version of an intent only if it is not referenced. To delete an intent that is referred to in one or more bots (see how-it-works), you must remove those references first.

If you get the ResourceInUseException exception, it provides an example reference that shows where the intent is referenced. To remove the reference to the intent, either update the bot or delete it. If you get the same exception when you attempt to delete the intent again, repeat until the intent has no references and the call to DeleteIntent is successful.

This operation requires permission for the lex:DeleteIntent action.

", - "DeleteIntentVersion": "

Deletes a specific version of an intent. To delete all versions of a intent, use the operation.

This operation requires permissions for the lex:DeleteIntentVersion action.

", - "DeleteSlotType": "

Deletes all versions of the slot type, including the $LATEST version. To delete a specific version of the slot type, use the operation.

You can delete a version of a slot type only if it is not referenced. To delete a slot type that is referred to in one or more intents, you must remove those references first.

If you get the ResourceInUseException exception, the exception provides an example reference that shows the intent where the slot type is referenced. To remove the reference to the slot type, either update the intent or delete it. If you get the same exception when you attempt to delete the slot type again, repeat until the slot type has no references and the DeleteSlotType call is successful.

This operation requires permission for the lex:DeleteSlotType action.

", - "DeleteSlotTypeVersion": "

Deletes a specific version of a slot type. To delete all versions of a slot type, use the operation.

This operation requires permissions for the lex:DeleteSlotTypeVersion action.

", - "DeleteUtterances": "

Deletes stored utterances.

Amazon Lex stores the utterances that users send to your bot unless the childDirected field in the bot is set to true. Utterances are stored for 15 days for use with the operation, and then stored indefinately for use in improving the ability of your bot to respond to user input.

Use the DeleteStoredUtterances operation to manually delete stored utterances for a specific user.

This operation requires permissions for the lex:DeleteUtterances action.

", - "GetBot": "

Returns metadata information for a specific bot. You must provide the bot name and the bot version or alias.

The GetBot operation requires permissions for the lex:GetBot action.

", + "DeleteBotVersion": "

Deletes a specific version of a bot. To delete all versions of a bot, use the DeleteBot operation.

This operation requires permissions for the lex:DeleteBotVersion action.

", + "DeleteIntent": "

Deletes all versions of the intent, including the $LATEST version. To delete a specific version of the intent, use the DeleteIntentVersion operation.

You can delete a version of an intent only if it is not referenced. To delete an intent that is referred to in one or more bots (see how-it-works), you must remove those references first.

If you get the ResourceInUseException exception, it provides an example reference that shows where the intent is referenced. To remove the reference to the intent, either update the bot or delete it. If you get the same exception when you attempt to delete the intent again, repeat until the intent has no references and the call to DeleteIntent is successful.

This operation requires permission for the lex:DeleteIntent action.

", + "DeleteIntentVersion": "

Deletes a specific version of an intent. To delete all versions of a intent, use the DeleteIntent operation.

This operation requires permissions for the lex:DeleteIntentVersion action.

", + "DeleteSlotType": "

Deletes all versions of the slot type, including the $LATEST version. To delete a specific version of the slot type, use the DeleteSlotTypeVersion operation.

You can delete a version of a slot type only if it is not referenced. To delete a slot type that is referred to in one or more intents, you must remove those references first.

If you get the ResourceInUseException exception, the exception provides an example reference that shows the intent where the slot type is referenced. To remove the reference to the slot type, either update the intent or delete it. If you get the same exception when you attempt to delete the slot type again, repeat until the slot type has no references and the DeleteSlotType call is successful.

This operation requires permission for the lex:DeleteSlotType action.

", + "DeleteSlotTypeVersion": "

Deletes a specific version of a slot type. To delete all versions of a slot type, use the DeleteSlotType operation.

This operation requires permissions for the lex:DeleteSlotTypeVersion action.

", + "DeleteUtterances": "

Deletes stored utterances.

Amazon Lex stores the utterances that users send to your bot unless the childDirected field in the bot is set to true. Utterances are stored for 15 days for use with the GetUtterancesView operation, and then stored indefinately for use in improving the ability of your bot to respond to user input.

Use the DeleteStoredUtterances operation to manually delete stored utterances for a specific user.

This operation requires permissions for the lex:DeleteUtterances action.

", + "GetBot": "

Returns metadata information for a specific bot. You must provide the bot name and the bot version or alias.

This operation requires permissions for the lex:GetBot action.

", "GetBotAlias": "

Returns information about an Amazon Lex bot alias. For more information about aliases, see versioning-aliases.

This operation requires permissions for the lex:GetBotAlias action.

", "GetBotAliases": "

Returns a list of aliases for a specified Amazon Lex bot.

This operation requires permissions for the lex:GetBotAliases action.

", "GetBotChannelAssociation": "

Returns information about the association between an Amazon Lex bot and a messaging platform.

This operation requires permissions for the lex:GetBotChannelAssociation action.

", @@ -24,14 +24,15 @@ "GetBuiltinIntent": "

Returns information about a built-in intent.

This operation requires permission for the lex:GetBuiltinIntent action.

", "GetBuiltinIntents": "

Gets a list of built-in intents that meet the specified criteria.

This operation requires permission for the lex:GetBuiltinIntents action.

", "GetBuiltinSlotTypes": "

Gets a list of built-in slot types that meet the specified criteria.

For a list of built-in slot types, see Slot Type Reference in the Alexa Skills Kit.

This operation requires permission for the lex:GetBuiltInSlotTypes action.

", + "GetExport": "

Exports the contents of a Amazon Lex resource in a specified format.

", "GetIntent": "

Returns information about an intent. In addition to the intent name, you must specify the intent version.

This operation requires permissions to perform the lex:GetIntent action.

", "GetIntentVersions": "

Gets information about all of the versions of an intent.

The GetIntentVersions operation returns an IntentMetadata object for each version of an intent. For example, if an intent has three numbered versions, the GetIntentVersions operation returns four IntentMetadata objects in the response, one for each numbered version and one for the $LATEST version.

The GetIntentVersions operation always returns at least one version, the $LATEST version.

This operation requires permissions for the lex:GetIntentVersions action.

", "GetIntents": "

Returns intent information as follows:

The operation requires permission for the lex:GetIntents action.

", "GetSlotType": "

Returns information about a specific version of a slot type. In addition to specifying the slot type name, you must specify the slot type version.

This operation requires permissions for the lex:GetSlotType action.

", "GetSlotTypeVersions": "

Gets information about all versions of a slot type.

The GetSlotTypeVersions operation returns a SlotTypeMetadata object for each version of a slot type. For example, if a slot type has three numbered versions, the GetSlotTypeVersions operation returns four SlotTypeMetadata objects in the response, one for each numbered version and one for the $LATEST version.

The GetSlotTypeVersions operation always returns at least one version, the $LATEST version.

This operation requires permissions for the lex:GetSlotTypeVersions action.

", "GetSlotTypes": "

Returns slot type information as follows:

The operation requires permission for the lex:GetSlotTypes action.

", - "GetUtterancesView": "

Use the GetUtterancesView operation to get information about the utterances that your users have made to your bot. You can use this list to tune the utterances that your bot responds to.

For example, say that you have created a bot to order flowers. After your users have used your bot for a while, use the GetUtterancesView operation to see the requests that they have made and whether they have been successful. You might find that the utterance \"I want flowers\" is not being recognized. You could add this utterance to the OrderFlowers intent so that your bot recognizes that utterance.

After you publish a new version of a bot, you can get information about the old version and the new so that you can compare the performance across the two versions.

Data is available for the last 15 days. You can request information for up to 5 versions in each request. The response contains information about a maximum of 100 utterances for each version.

If the bot's childDirected field is set to true, utterances for the bot are not stored and cannot be retrieved with the GetUtterancesView operation. For more information, see .

This operation requires permissions for the lex:GetUtterancesView action.

", - "PutBot": "

Creates an Amazon Lex conversational bot or replaces an existing bot. When you create or update a bot you only required to specify a name. You can use this to add intents later, or to remove intents from an existing bot. When you create a bot with a name only, the bot is created or updated but Amazon Lex returns the response FAILED. You can build the bot after you add one or more intents. For more information about Amazon Lex bots, see how-it-works.

If you specify the name of an existing bot, the fields in the request replace the existing values in the $LATEST version of the bot. Amazon Lex removes any fields that you don't provide values for in the request, except for the idleTTLInSeconds and privacySettings fields, which are set to their default values. If you don't specify values for required fields, Amazon Lex throws an exception.

This operation requires permissions for the lex:PutBot action. For more information, see auth-and-access-control.

", + "GetUtterancesView": "

Use the GetUtterancesView operation to get information about the utterances that your users have made to your bot. You can use this list to tune the utterances that your bot responds to.

For example, say that you have created a bot to order flowers. After your users have used your bot for a while, use the GetUtterancesView operation to see the requests that they have made and whether they have been successful. You might find that the utterance \"I want flowers\" is not being recognized. You could add this utterance to the OrderFlowers intent so that your bot recognizes that utterance.

After you publish a new version of a bot, you can get information about the old version and the new so that you can compare the performance across the two versions.

Data is available for the last 15 days. You can request information for up to 5 versions in each request. The response contains information about a maximum of 100 utterances for each version.

If the bot's childDirected field is set to true, utterances for the bot are not stored and cannot be retrieved with the GetUtterancesView operation. For more information, see PutBot.

This operation requires permissions for the lex:GetUtterancesView action.

", + "PutBot": "

Creates an Amazon Lex conversational bot or replaces an existing bot. When you create or update a bot you are only required to specify a name. You can use this to add intents later, or to remove intents from an existing bot. When you create a bot with a name only, the bot is created or updated but Amazon Lex returns the response FAILED. You can build the bot after you add one or more intents. For more information about Amazon Lex bots, see how-it-works.

If you specify the name of an existing bot, the fields in the request replace the existing values in the $LATEST version of the bot. Amazon Lex removes any fields that you don't provide values for in the request, except for the idleTTLInSeconds and privacySettings fields, which are set to their default values. If you don't specify values for required fields, Amazon Lex throws an exception.

This operation requires permissions for the lex:PutBot action. For more information, see auth-and-access-control.

", "PutBotAlias": "

Creates an alias for the specified version of the bot or replaces an alias for the specified bot. To change the version of the bot that the alias points to, replace the alias. For more information about aliases, see versioning-aliases.

This operation requires permissions for the lex:PutBotAlias action.

", "PutIntent": "

Creates an intent or replaces an existing intent.

To define the interaction between the user and your bot, you use one or more intents. For a pizza ordering bot, for example, you would create an OrderPizza intent.

To create an intent or replace an existing intent, you must provide the following:

  • Intent name. For example, OrderPizza.

  • Sample utterances. For example, \"Can I order a pizza, please.\" and \"I want to order a pizza.\"

  • Information to be gathered. You specify slot types for the information that your bot will request from the user. You can specify standard slot types, such as a date or a time, or custom slot types such as the size and crust of a pizza.

  • How the intent will be fulfilled. You can provide a Lambda function or configure the intent to return the intent information to the client application. If you use a Lambda function, when all of the intent information is available, Amazon Lex invokes your Lambda function. If you configure your intent to return the intent information to the client application.

You can specify other optional information in the request, such as:

  • A confirmation prompt to ask the user to confirm an intent. For example, \"Shall I order your pizza?\"

  • A conclusion statement to send to the user after the intent has been fulfilled. For example, \"I placed your pizza order.\"

  • A follow-up prompt that asks the user for additional activity. For example, asking \"Do you want to order a drink with your pizza?\"

If you specify an existing intent name to update the intent, Amazon Lex replaces the values in the $LATEST version of the slot type with the values in the request. Amazon Lex removes fields that you don't provide in the request. If you don't specify the required fields, Amazon Lex throws an exception.

For more information, see how-it-works.

This operation requires permissions for the lex:PutIntent action.

", "PutSlotType": "

Creates a custom slot type or replaces an existing custom slot type.

To create a custom slot type, specify a name for the slot type and a set of enumeration values, which are the values that a slot of this type can assume. For more information, see how-it-works.

If you specify the name of an existing slot type, the fields in the request replace the existing values in the $LATEST version of the slot type. Amazon Lex removes the fields that you don't provide in the request. If you don't specify required fields, Amazon Lex throws an exception.

This operation requires permissions for the lex:PutSlotType action.

" @@ -230,7 +231,7 @@ "refs": { "CreateIntentVersionResponse$dialogCodeHook": "

If defined, Amazon Lex invokes this Lambda function for each user input.

", "FulfillmentActivity$codeHook": "

A description of the Lambda function that is run to fulfill the intent.

", - "GetIntentResponse$dialogCodeHook": "

If defined in the bot, Amazon Amazon Lex invokes this Lambda function for each user input. For more information, see .

", + "GetIntentResponse$dialogCodeHook": "

If defined in the bot, Amazon Amazon Lex invokes this Lambda function for each user input. For more information, see PutIntent.

", "PutIntentRequest$dialogCodeHook": "

Specifies a Lambda function to invoke for each user input. You can invoke this Lambda function to personalize user interaction.

For example, suppose your bot determines that the user is John. Your Lambda function might retrieve John's information from a backend database and prepopulate some of the values. For example, if you find that John is gluten intolerant, you might set the corresponding intent slot, GlutenIntolerant, to true. You might find John's phone number and set the corresponding session attribute.

", "PutIntentResponse$dialogCodeHook": "

If defined in the intent, Amazon Lex invokes this Lambda function for each user input.

" } @@ -378,16 +379,29 @@ "refs": { "CreateSlotTypeVersionResponse$enumerationValues": "

A list of EnumerationValue objects that defines the values that the slot type can take.

", "GetSlotTypeResponse$enumerationValues": "

A list of EnumerationValue objects that defines the values that the slot type can take.

", - "PutSlotTypeRequest$enumerationValues": "

A list of EnumerationValue objects that defines the values that the slot type can take.

", + "PutSlotTypeRequest$enumerationValues": "

A list of EnumerationValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, which are additional values that help train the machine learning model about the values that it resolves for a slot.

When Amazon Lex resolves a slot value, it generates a resolution list that contains up to five possible values for the slot. If you are using a Lambda function, this resolution list is passed to the function. If you are not using a Lambda function you can choose to return the value that the user entered or the first value in the resolution list as the slot value. The valueSelectionStrategy field indicates the option to use.

", "PutSlotTypeResponse$enumerationValues": "

A list of EnumerationValue objects that defines the values that the slot type can take.

" } }, + "ExportStatus": { + "base": null, + "refs": { + "GetExportResponse$exportStatus": "

The status of the export.

  • IN_PROGRESS - The export is in progress.

  • READY - The export is complete.

  • FAILED - The export could not be completed.

" + } + }, + "ExportType": { + "base": null, + "refs": { + "GetExportRequest$exportType": "

The format of the exported data.

", + "GetExportResponse$exportType": "

The format of the exported data.

" + } + }, "FollowUpPrompt": { - "base": "

After an intent is fulfilled, you might prompt the user for additional activity. For example, after the OrderPizza intent is fulfilled (the pizza order is placed with a pizzeria), you might prompt the user to find out whether the user wants to order drinks (another intent you defined in your bot).

", + "base": "

A prompt for additional activity after an intent is fulfilled. For example, after the OrderPizza intent is fulfilled, you might prompt the user to find out whether the user wants to order drinks.

", "refs": { "CreateIntentVersionResponse$followUpPrompt": "

If defined, Amazon Lex uses this prompt to solicit additional user activity after the intent is fulfilled.

", - "GetIntentResponse$followUpPrompt": "

If defined in the bot, Amazon Lex uses this prompt to solicit additional user activity after the intent is fulfilled. For more information, see .

", - "PutIntentRequest$followUpPrompt": "

A user prompt for additional activity after an intent is fulfilled. For example, after the OrderPizza intent is fulfilled (your Lambda function placed an order with a pizzeria), you might prompt the user to find if they want to order a drink (assuming that you have defined an OrderDrink intent in your bot).

The followUpPrompt and conclusionStatement are mutually exclusive. You can specify only one. For example, your bot may not solicit both the following:

Follow up prompt - \"$session.FirstName, your pizza order has been placed. Would you like to order a drink or a dessert?\"

Conclusion statement - \"$session.FirstName, your pizza order has been placed.\"

", + "GetIntentResponse$followUpPrompt": "

If defined in the bot, Amazon Lex uses this prompt to solicit additional user activity after the intent is fulfilled. For more information, see PutIntent.

", + "PutIntentRequest$followUpPrompt": "

Amazon Lex uses this prompt to solicit additional activity after fulfilling an intent. For example, after the OrderPizza intent is fulfilled, you might prompt the user to order a drink.

The action that Amazon Lex takes depends on the user's response, as follows:

  • If the user says \"Yes\" it responds with the clarification prompt that is configured for the bot.

  • if the user says \"Yes\" and continues with an utterance that triggers an intent it starts a conversation for the intent.

  • If the user says \"No\" it responds with the rejection statement configured for the the follow-up prompt.

  • If it doesn't recognize the utterance it repeats the follow-up prompt again.

The followUpPrompt field and the conclusionStatement field are mutually exclusive. You can specify only one.

", "PutIntentResponse$followUpPrompt": "

If defined in the intent, Amazon Lex uses this prompt to solicit additional user activity after the intent is fulfilled.

" } }, @@ -395,8 +409,8 @@ "base": "

Describes how the intent is fulfilled after the user provides all of the information required for the intent. You can provide a Lambda function to process the intent, or you can return the intent information to the client application. We recommend that you use a Lambda function so that the relevant logic lives in the Cloud and limit the client-side code primarily to presentation. If you need to update the logic, you only update the Lambda function; you don't need to upgrade your client application.

Consider the following examples:

  • In a pizza ordering application, after the user provides all of the information for placing an order, you use a Lambda function to place an order with a pizzeria.

  • In a gaming application, when a user says \"pick up a rock,\" this information must go back to the client application so that it can perform the operation and update the graphics. In this case, you want Amazon Lex to return the intent data to the client.

", "refs": { "CreateIntentVersionResponse$fulfillmentActivity": "

Describes how the intent is fulfilled.

", - "GetIntentResponse$fulfillmentActivity": "

Describes how the intent is fulfilled. For more information, see .

", - "PutIntentRequest$fulfillmentActivity": "

Describes how the intent is fulfilled. For example, after a user provides all of the information for a pizza order, fulfillmentActivity defines how the bot places an order with a local pizza store.

You might configure Amazon Lex to return all of the intent information to the client application, or direct it to invoke a Lambda function that can process the intent (for example, place an order with a pizzeria).

", + "GetIntentResponse$fulfillmentActivity": "

Describes how the intent is fulfilled. For more information, see PutIntent.

", + "PutIntentRequest$fulfillmentActivity": "

Required. Describes how the intent is fulfilled. For example, after a user provides all of the information for a pizza order, fulfillmentActivity defines how the bot places an order with a local pizza store.

You might configure Amazon Lex to return all of the intent information to the client application, or direct it to invoke a Lambda function that can process the intent (for example, place an order with a pizzeria).

", "PutIntentResponse$fulfillmentActivity": "

If defined in the intent, Amazon Lex invokes this Lambda function to fulfill the intent after the user provides all of the information required by the intent.

" } }, @@ -506,6 +520,16 @@ "refs": { } }, + "GetExportRequest": { + "base": null, + "refs": { + } + }, + "GetExportResponse": { + "base": null, + "refs": { + } + }, "GetIntentRequest": { "base": null, "refs": { @@ -585,10 +609,10 @@ "IntentList": { "base": null, "refs": { - "CreateBotVersionResponse$intents": "

An array of Intent objects. For more information, see .

", - "GetBotResponse$intents": "

An array of intent objects. For more information, see .

", + "CreateBotVersionResponse$intents": "

An array of Intent objects. For more information, see PutBot.

", + "GetBotResponse$intents": "

An array of intent objects. For more information, see PutBot.

", "PutBotRequest$intents": "

An array of Intent objects. Each intent represents a command that a user can express. For example, a pizza ordering bot might support an OrderPizza intent. For more information, see how-it-works.

", - "PutBotResponse$intents": "

An array of Intent objects. For more information, see .

" + "PutBotResponse$intents": "

An array of Intent objects. For more information, see PutBot.

" } }, "IntentMetadata": { @@ -601,7 +625,7 @@ "base": null, "refs": { "GetIntentVersionsResponse$intents": "

An array of IntentMetadata objects, one for each numbered version of the intent plus one for the $LATEST version.

", - "GetIntentsResponse$intents": "

An array of Intent objects. For more information, see .

" + "GetIntentsResponse$intents": "

An array of Intent objects. For more information, see PutBot.

" } }, "IntentName": { @@ -649,13 +673,13 @@ "ListOfUtterance": { "base": null, "refs": { - "UtteranceList$utterances": "

One or more objects that contain information about the utterances that have been made to a bot. The maximum number of object is 100.

" + "UtteranceList$utterances": "

One or more UtteranceData objects that contain information about the utterances that have been made to a bot. The maximum number of object is 100.

" } }, "ListsOfUtterances": { "base": null, "refs": { - "GetUtterancesViewResponse$utterances": "

An array of objects, each containing a list of objects describing the utterances that were processed by your bot. The response contains a maximum of 100 UtteranceData objects for each version.

" + "GetUtterancesViewResponse$utterances": "

An array of UtteranceList objects, each containing a list of UtteranceData objects describing the utterances that were processed by your bot. The response contains a maximum of 100 UtteranceData objects for each version.

" } }, "Locale": { @@ -715,6 +739,8 @@ "Name": { "base": null, "refs": { + "GetExportRequest$name": "

The name of the bot to export.

", + "GetExportResponse$name": "

The name of the bot being exported.

", "ResourceReference$name": "

The name of the resource that is using the resource that you are trying to delete.

" } }, @@ -751,9 +777,11 @@ "NumericalVersion": { "base": null, "refs": { - "DeleteBotVersionRequest$version": "

The version of the bot to delete. You cannot delete the $LATEST version of the bot. To delete the $LATEST version, use the operation.

", - "DeleteIntentVersionRequest$version": "

The version of the intent to delete. You cannot delete the $LATEST version of the intent. To delete the $LATEST version, use the operation.

", - "DeleteSlotTypeVersionRequest$version": "

The version of the slot type to delete. You cannot delete the $LATEST version of the slot type. To delete the $LATEST version, use the operation.

" + "DeleteBotVersionRequest$version": "

The version of the bot to delete. You cannot delete the $LATEST version of the bot. To delete the $LATEST version, use the DeleteBot operation.

", + "DeleteIntentVersionRequest$version": "

The version of the intent to delete. You cannot delete the $LATEST version of the intent. To delete the $LATEST version, use the DeleteIntent operation.

", + "DeleteSlotTypeVersionRequest$version": "

The version of the slot type to delete. You cannot delete the $LATEST version of the slot type. To delete the $LATEST version, use the DeleteSlotType operation.

", + "GetExportRequest$version": "

The version of the bot to export.

", + "GetExportResponse$version": "

The version of the bot being exported.

" } }, "PreconditionFailedException": { @@ -776,13 +804,13 @@ "Prompt": { "base": "

Obtains information from the user. To define a prompt, provide one or more messages and specify the number of attempts to get information from the user. If you provide more than one message, Amazon Lex chooses one of the messages to use to prompt the user. For more information, see how-it-works.

", "refs": { - "CreateBotVersionResponse$clarificationPrompt": "

The message that Amazon Lex uses when it doesn't understand the user's request. For more information, see .

", + "CreateBotVersionResponse$clarificationPrompt": "

The message that Amazon Lex uses when it doesn't understand the user's request. For more information, see PutBot.

", "CreateIntentVersionResponse$confirmationPrompt": "

If defined, the prompt that Amazon Lex uses to confirm the user's intent before fulfilling it.

", - "FollowUpPrompt$prompt": "

Obtains information from the user.

", - "GetBotResponse$clarificationPrompt": "

The message Amazon Lex uses when it doesn't understand the user's request. For more information, see .

", - "GetIntentResponse$confirmationPrompt": "

If defined in the bot, Amazon Lex uses prompt to confirm the intent before fulfilling the user's request. For more information, see .

", - "PutBotRequest$clarificationPrompt": "

When Amazon Lex doesn't understand the user's intent, it uses one of these messages to get clarification. For example, \"Sorry, I didn't understand. Please repeat.\" Amazon Lex repeats the clarification prompt the number of times specified in maxAttempts. If Amazon Lex still can't understand, it sends the message specified in abortStatement.

", - "PutBotResponse$clarificationPrompt": "

The prompts that Amazon Lex uses when it doesn't understand the user's intent. For more information, see .

", + "FollowUpPrompt$prompt": "

Prompts for information from the user.

", + "GetBotResponse$clarificationPrompt": "

The message Amazon Lex uses when it doesn't understand the user's request. For more information, see PutBot.

", + "GetIntentResponse$confirmationPrompt": "

If defined in the bot, Amazon Lex uses prompt to confirm the intent before fulfilling the user's request. For more information, see PutIntent.

", + "PutBotRequest$clarificationPrompt": "

When Amazon Lex doesn't understand the user's intent, it uses this message to get clarification. To specify how many times Amazon Lex should repeate the clarification prompt, use the maxAttempts field. If Amazon Lex still doesn't understand, it sends the message in the abortStatement field.

When you create a clarification prompt, make sure that it suggests the correct response from the user. for example, for a bot that orders pizza and drinks, you might create this clarification prompt: \"What would you like to do? You can say 'Order a pizza' or 'Order a drink.'\"

", + "PutBotResponse$clarificationPrompt": "

The prompts that Amazon Lex uses when it doesn't understand the user's intent. For more information, see PutBot.

", "PutIntentRequest$confirmationPrompt": "

Prompts the user to confirm the intent. This question should have a yes or no answer.

Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the OrderPizza intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information.

You you must provide both the rejectionStatement and the confirmationPrompt, or neither.

", "PutIntentResponse$confirmationPrompt": "

If defined in the intent, Amazon Lex prompts the user to confirm the intent before fulfilling it.

", "Slot$valueElicitationPrompt": "

The prompt that Amazon Lex uses to elicit the slot value from the user.

" @@ -851,21 +879,28 @@ "ResourceInUseException$exampleReference": null } }, + "ResourceType": { + "base": null, + "refs": { + "GetExportRequest$resourceType": "

The type of resource to export.

", + "GetExportResponse$resourceType": "

The type of the exported resource.

" + } + }, "ResponseCard": { "base": null, "refs": { "Prompt$responseCard": "

A response card. Amazon Lex uses this prompt at runtime, in the PostText API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see ex-resp-card.

", "Slot$responseCard": "

A set of possible responses for the slot type used by text-based clients. A user chooses an option from the response card, instead of using text to reply.

", - "Statement$responseCard": "

At runtime, if the client is using the API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card.

" + "Statement$responseCard": "

At runtime, if the client is using the PostText API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card.

" } }, "SessionTTL": { "base": null, "refs": { - "CreateBotVersionResponse$idleSessionTTLInSeconds": "

The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. For more information, see .

", - "GetBotResponse$idleSessionTTLInSeconds": "

The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. For more information, see .

", + "CreateBotVersionResponse$idleSessionTTLInSeconds": "

The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. For more information, see PutBot.

", + "GetBotResponse$idleSessionTTLInSeconds": "

The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. For more information, see PutBot.

", "PutBotRequest$idleSessionTTLInSeconds": "

The maximum time in seconds that Amazon Lex retains the data gathered in a conversation.

A user interaction session remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Lex deletes any data provided before the timeout.

For example, suppose that a user chooses the OrderPizza intent, but gets sidetracked halfway through placing an order. If the user doesn't complete the order within the specified time, Amazon Lex discards the slot information that it gathered, and the user must start over.

If you don't include the idleSessionTTLInSeconds element in a PutBot operation request, Amazon Lex uses the default value. This is also true if the request replaces an existing bot.

The default is 300 seconds (5 minutes).

", - "PutBotResponse$idleSessionTTLInSeconds": "

The maximum length of time that Amazon Lex retains the data gathered in a conversation. For more information, see .

" + "PutBotResponse$idleSessionTTLInSeconds": "

The maximum length of time that Amazon Lex retains the data gathered in a conversation. For more information, see PutBot.

" } }, "Slot": { @@ -885,7 +920,7 @@ "refs": { "CreateIntentVersionResponse$slots": "

An array of slot types that defines the information required to fulfill the intent.

", "GetIntentResponse$slots": "

An array of intent slots configured for the intent.

", - "PutIntentRequest$slots": "

An array of intent slots. At runtime, Amazon Lex elicits required slot values from the user using prompts defined in the slots. For more information, see <xref linkend=\"how-it-works\"/>.

", + "PutIntentRequest$slots": "

An array of intent slots. At runtime, Amazon Lex elicits required slot values from the user using prompts defined in the slots. For more information, see how-it-works.

", "PutIntentResponse$slots": "

An array of intent slots that are configured for the intent.

" } }, @@ -930,18 +965,27 @@ "Slot$sampleUtterances": "

If you know a specific pattern with which users might respond to an Amazon Lex request for a slot value, you can provide those utterances to improve accuracy. This is optional. In most cases, Amazon Lex is capable of understanding user utterances.

" } }, + "SlotValueSelectionStrategy": { + "base": null, + "refs": { + "CreateSlotTypeVersionResponse$valueSelectionStrategy": "

The strategy that Amazon Lex uses to determine the value of the slot. For more information, see PutSlotType.

", + "GetSlotTypeResponse$valueSelectionStrategy": "

The strategy that Amazon Lex uses to determine the value of the slot. For more information, see PutSlotType.

", + "PutSlotTypeRequest$valueSelectionStrategy": "

Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values:

  • ORIGINAL_VALUE - Returns the value entered by the user, if the user value is similar to the slot value.

  • TOP_RESOLUTION - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned.

If you don't specify the valueSelectionStrategy, the default is ORIGINAL_VALUE.

", + "PutSlotTypeResponse$valueSelectionStrategy": "

The slot resolution strategy that Amazon Lex uses to determine the value of the slot. For more information, see PutSlotType.

" + } + }, "Statement": { "base": "

A collection of messages that convey information to the user. At runtime, Amazon Lex selects the message to convey.

", "refs": { - "CreateBotVersionResponse$abortStatement": "

The message that Amazon Lex uses to abort a conversation. For more information, see .

", + "CreateBotVersionResponse$abortStatement": "

The message that Amazon Lex uses to abort a conversation. For more information, see PutBot.

", "CreateIntentVersionResponse$rejectionStatement": "

If the user answers \"no\" to the question defined in confirmationPrompt, Amazon Lex responds with this statement to acknowledge that the intent was canceled.

", "CreateIntentVersionResponse$conclusionStatement": "

After the Lambda function specified in the fulfillmentActivity field fulfills the intent, Amazon Lex conveys this statement to the user.

", - "FollowUpPrompt$rejectionStatement": "

If the user answers \"no\" to the question defined in confirmationPrompt, Amazon Lex responds with this statement to acknowledge that the intent was canceled.

", - "GetBotResponse$abortStatement": "

The message that Amazon Lex returns when the user elects to end the conversation without completing it. For more information, see .

", + "FollowUpPrompt$rejectionStatement": "

If the user answers \"no\" to the question defined in the prompt field, Amazon Lex responds with this statement to acknowledge that the intent was canceled.

", + "GetBotResponse$abortStatement": "

The message that Amazon Lex returns when the user elects to end the conversation without completing it. For more information, see PutBot.

", "GetIntentResponse$rejectionStatement": "

If the user answers \"no\" to the question defined in confirmationPrompt, Amazon Lex responds with this statement to acknowledge that the intent was canceled.

", "GetIntentResponse$conclusionStatement": "

After the Lambda function specified in the fulfillmentActivity element fulfills the intent, Amazon Lex conveys this statement to the user.

", "PutBotRequest$abortStatement": "

When Amazon Lex can't understand the user's input in context, it tries to elicit the information a few times. After that, Amazon Lex sends the message defined in abortStatement to the user, and then aborts the conversation. To set the number of retries, use the valueElicitationPrompt field for the slot type.

For example, in a pizza ordering bot, Amazon Lex might ask a user \"What type of crust would you like?\" If the user's response is not one of the expected responses (for example, \"thin crust, \"deep dish,\" etc.), Amazon Lex tries to elicit a correct response a few more times.

For example, in a pizza ordering application, OrderPizza might be one of the intents. This intent might require the CrustType slot. You specify the valueElicitationPrompt field when you create the CrustType slot.

", - "PutBotResponse$abortStatement": "

The message that Amazon Lex uses to abort a conversation. For more information, see .

", + "PutBotResponse$abortStatement": "

The message that Amazon Lex uses to abort a conversation. For more information, see PutBot.

", "PutIntentRequest$rejectionStatement": "

When the user answers \"no\" to the question defined in confirmationPrompt, Amazon Lex responds with this statement to acknowledge that the intent was canceled.

You must provide both the rejectionStatement and the confirmationPrompt, or neither.

", "PutIntentRequest$conclusionStatement": "

The statement that you want Amazon Lex to convey to the user after the intent is successfully fulfilled by the Lambda function.

This element is relevant only if you provide a Lambda function in the fulfillmentActivity. If you return the intent to the client application, you can't specify this element.

The followUpPrompt and conclusionStatement are mutually exclusive. You can specify only one.

", "PutIntentResponse$rejectionStatement": "

If the user answers \"no\" to the question defined in confirmationPrompt Amazon Lex responds with this statement to acknowledge that the intent was canceled.

", @@ -983,10 +1027,12 @@ "GetBotAliasResponse$checksum": "

Checksum of the bot alias.

", "GetBotRequest$versionOrAlias": "

The version or alias of the bot.

", "GetBotResponse$failureReason": "

If status is FAILED, Amazon Lex explains why it failed to build the bot.

", - "GetBotResponse$voiceId": "

The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see .

", + "GetBotResponse$voiceId": "

The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see PutBot.

", "GetBotResponse$checksum": "

Checksum of the bot used to identify a specific revision of the bot's $LATEST version.

", "GetBuiltinIntentsRequest$signatureContains": "

Substring to match in built-in intent signatures. An intent will be returned if any part of its signature matches the substring. For example, \"xyz\" matches both \"xyzabc\" and \"abcxyz.\" To find the signature for an intent, see Standard Built-in Intents in the Alexa Skills Kit.

", "GetBuiltinSlotTypesRequest$signatureContains": "

Substring to match in built-in slot type signatures. A slot type will be returned if any part of its signature matches the substring. For example, \"xyz\" matches both \"xyzabc\" and \"abcxyz.\"

", + "GetExportResponse$failureReason": "

If status is FAILED, Amazon Lex provides the reason that it failed to export the resource.

", + "GetExportResponse$url": "

An S3 pre-signed URL that provides the location of the exported resource. The exported resource is a ZIP archive that contains the exported resource in JSON format. The structure of the archive may change. Your code should not rely on the archive structure.

", "GetIntentResponse$checksum": "

Checksum of the intent.

", "GetSlotTypeResponse$checksum": "

Checksum of the $LATEST version of the slot type.

", "InternalFailureException$message": null, @@ -996,10 +1042,10 @@ "PreconditionFailedException$message": null, "PutBotAliasRequest$checksum": "

Identifies a specific revision of the $LATEST version.

When you create a new bot alias, leave the checksum field blank. If you specify a checksum you get a BadRequestException exception.

When you want to update a bot alias, set the checksum field to the checksum of the most recent revision of the $LATEST version. If you don't specify the checksum field, or if the checksum does not match the $LATEST version, you get a PreconditionFailedException exception.

", "PutBotAliasResponse$checksum": "

The checksum for the current version of the alias.

", - "PutBotRequest$voiceId": "

The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions with the user. The locale configured for the voice must match the locale of the bot. For more information, see Voice in the Amazon Polly Developer Guide.

", + "PutBotRequest$voiceId": "

The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions with the user. The locale configured for the voice must match the locale of the bot. For more information, see Available Voices in the Amazon Polly Developer Guide.

", "PutBotRequest$checksum": "

Identifies a specific revision of the $LATEST version.

When you create a new bot, leave the checksum field blank. If you specify a checksum you get a BadRequestException exception.

When you want to update a bot, set the checksum field to the checksum of the most recent revision of the $LATEST version. If you don't specify the checksum field, or if the checksum does not match the $LATEST version, you get a PreconditionFailedException exception.

", "PutBotResponse$failureReason": "

If status is FAILED, Amazon Lex provides the reason that it failed to build the bot.

", - "PutBotResponse$voiceId": "

The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see .

", + "PutBotResponse$voiceId": "

The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see PutBot.

", "PutBotResponse$checksum": "

Checksum of the bot that you created.

", "PutIntentRequest$checksum": "

Identifies a specific revision of the $LATEST version.

When you create a new intent, leave the checksum field blank. If you specify a checksum you get a BadRequestException exception.

When you want to update a intent, set the checksum field to the checksum of the most recent revision of the $LATEST version. If you don't specify the checksum field, or if the checksum does not match the $LATEST version, you get a PreconditionFailedException exception.

", "PutIntentResponse$checksum": "

Checksum of the $LATESTversion of the intent created or updated.

", @@ -1007,6 +1053,12 @@ "PutSlotTypeResponse$checksum": "

Checksum of the $LATEST version of the slot type.

" } }, + "SynonymList": { + "base": null, + "refs": { + "EnumerationValue$synonyms": "

Additional values related to the slot type value.

" + } + }, "Timestamp": { "base": null, "refs": { @@ -1049,7 +1101,7 @@ "UserId": { "base": null, "refs": { - "DeleteUtterancesRequest$userId": "

The unique identifier for the user that made the utterances. This is the user ID that was sent in the or operation request that contained the utterance.

" + "DeleteUtterancesRequest$userId": "

The unique identifier for the user that made the utterances. This is the user ID that was sent in the PostContent or PostText operation request that contained the utterance.

" } }, "Utterance": { @@ -1080,7 +1132,8 @@ "Value": { "base": null, "refs": { - "EnumerationValue$value": "

The value of the slot type.

" + "EnumerationValue$value": "

The value of the slot type.

", + "SynonymList$member": null } }, "Version": { diff --git a/models/apis/lightsail/2016-11-28/api-2.json b/models/apis/lightsail/2016-11-28/api-2.json index 21544f699f6..382915569f5 100644 --- a/models/apis/lightsail/2016-11-28/api-2.json +++ b/models/apis/lightsail/2016-11-28/api-2.json @@ -6,6 +6,7 @@ "jsonVersion":"1.1", "protocol":"json", "serviceFullName":"Amazon Lightsail", + "serviceId":"Lightsail", "signatureVersion":"v4", "targetPrefix":"Lightsail_20161128", "uid":"lightsail-2016-11-28" @@ -29,6 +30,60 @@ {"shape":"UnauthenticatedException"} ] }, + "AttachDisk":{ + "name":"AttachDisk", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachDiskRequest"}, + "output":{"shape":"AttachDiskResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "AttachInstancesToLoadBalancer":{ + "name":"AttachInstancesToLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachInstancesToLoadBalancerRequest"}, + "output":{"shape":"AttachInstancesToLoadBalancerResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "AttachLoadBalancerTlsCertificate":{ + "name":"AttachLoadBalancerTlsCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachLoadBalancerTlsCertificateRequest"}, + "output":{"shape":"AttachLoadBalancerTlsCertificateResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, "AttachStaticIp":{ "name":"AttachStaticIp", "http":{ @@ -65,6 +120,60 @@ {"shape":"UnauthenticatedException"} ] }, + "CreateDisk":{ + "name":"CreateDisk", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDiskRequest"}, + "output":{"shape":"CreateDiskResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "CreateDiskFromSnapshot":{ + "name":"CreateDiskFromSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDiskFromSnapshotRequest"}, + "output":{"shape":"CreateDiskFromSnapshotResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "CreateDiskSnapshot":{ + "name":"CreateDiskSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDiskSnapshotRequest"}, + "output":{"shape":"CreateDiskSnapshotResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, "CreateDomain":{ "name":"CreateDomain", "http":{ @@ -173,6 +282,78 @@ {"shape":"UnauthenticatedException"} ] }, + "CreateLoadBalancer":{ + "name":"CreateLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLoadBalancerRequest"}, + "output":{"shape":"CreateLoadBalancerResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "CreateLoadBalancerTlsCertificate":{ + "name":"CreateLoadBalancerTlsCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLoadBalancerTlsCertificateRequest"}, + "output":{"shape":"CreateLoadBalancerTlsCertificateResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "DeleteDisk":{ + "name":"DeleteDisk", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDiskRequest"}, + "output":{"shape":"DeleteDiskResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "DeleteDiskSnapshot":{ + "name":"DeleteDiskSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDiskSnapshotRequest"}, + "output":{"shape":"DeleteDiskSnapshotResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, "DeleteDomain":{ "name":"DeleteDomain", "http":{ @@ -263,6 +444,78 @@ {"shape":"UnauthenticatedException"} ] }, + "DeleteLoadBalancer":{ + "name":"DeleteLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLoadBalancerRequest"}, + "output":{"shape":"DeleteLoadBalancerResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "DeleteLoadBalancerTlsCertificate":{ + "name":"DeleteLoadBalancerTlsCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLoadBalancerTlsCertificateRequest"}, + "output":{"shape":"DeleteLoadBalancerTlsCertificateResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "DetachDisk":{ + "name":"DetachDisk", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachDiskRequest"}, + "output":{"shape":"DetachDiskResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "DetachInstancesFromLoadBalancer":{ + "name":"DetachInstancesFromLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachInstancesFromLoadBalancerRequest"}, + "output":{"shape":"DetachInstancesFromLoadBalancerResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, "DetachStaticIp":{ "name":"DetachStaticIp", "http":{ @@ -353,6 +606,78 @@ {"shape":"UnauthenticatedException"} ] }, + "GetDisk":{ + "name":"GetDisk", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDiskRequest"}, + "output":{"shape":"GetDiskResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "GetDiskSnapshot":{ + "name":"GetDiskSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDiskSnapshotRequest"}, + "output":{"shape":"GetDiskSnapshotResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "GetDiskSnapshots":{ + "name":"GetDiskSnapshots", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDiskSnapshotsRequest"}, + "output":{"shape":"GetDiskSnapshotsResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "GetDisks":{ + "name":"GetDisks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDisksRequest"}, + "output":{"shape":"GetDisksResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, "GetDomain":{ "name":"GetDomain", "http":{ @@ -569,6 +894,78 @@ {"shape":"UnauthenticatedException"} ] }, + "GetLoadBalancer":{ + "name":"GetLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLoadBalancerRequest"}, + "output":{"shape":"GetLoadBalancerResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "GetLoadBalancerMetricData":{ + "name":"GetLoadBalancerMetricData", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLoadBalancerMetricDataRequest"}, + "output":{"shape":"GetLoadBalancerMetricDataResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "GetLoadBalancerTlsCertificates":{ + "name":"GetLoadBalancerTlsCertificates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLoadBalancerTlsCertificatesRequest"}, + "output":{"shape":"GetLoadBalancerTlsCertificatesResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, + "GetLoadBalancers":{ + "name":"GetLoadBalancers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLoadBalancersRequest"}, + "output":{"shape":"GetLoadBalancersResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] + }, "GetOperation":{ "name":"GetOperation", "http":{ @@ -874,6 +1271,24 @@ {"shape":"AccountSetupInProgressException"}, {"shape":"UnauthenticatedException"} ] + }, + "UpdateLoadBalancerAttribute":{ + "name":"UpdateLoadBalancerAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateLoadBalancerAttributeRequest"}, + "output":{"shape":"UpdateLoadBalancerAttributeResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ] } }, "shapes":{ @@ -917,6 +1332,59 @@ "operations":{"shape":"OperationList"} } }, + "AttachDiskRequest":{ + "type":"structure", + "required":[ + "diskName", + "instanceName", + "diskPath" + ], + "members":{ + "diskName":{"shape":"ResourceName"}, + "instanceName":{"shape":"ResourceName"}, + "diskPath":{"shape":"NonEmptyString"} + } + }, + "AttachDiskResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "AttachInstancesToLoadBalancerRequest":{ + "type":"structure", + "required":[ + "loadBalancerName", + "instanceNames" + ], + "members":{ + "loadBalancerName":{"shape":"ResourceName"}, + "instanceNames":{"shape":"ResourceNameList"} + } + }, + "AttachInstancesToLoadBalancerResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "AttachLoadBalancerTlsCertificateRequest":{ + "type":"structure", + "required":[ + "loadBalancerName", + "certificateName" + ], + "members":{ + "loadBalancerName":{"shape":"ResourceName"}, + "certificateName":{"shape":"ResourceName"} + } + }, + "AttachLoadBalancerTlsCertificateResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, "AttachStaticIpRequest":{ "type":"structure", "required":[ @@ -934,6 +1402,11 @@ "operations":{"shape":"OperationList"} } }, + "AttachedDiskMap":{ + "type":"map", + "key":{"shape":"ResourceName"}, + "value":{"shape":"DiskMapList"} + }, "AvailabilityZone":{ "type":"structure", "members":{ @@ -959,7 +1432,8 @@ "version":{"shape":"string"}, "versionCode":{"shape":"string"}, "productUrl":{"shape":"string"}, - "licenseUrl":{"shape":"string"} + "licenseUrl":{"shape":"string"}, + "platform":{"shape":"InstancePlatform"} } }, "BlueprintList":{ @@ -985,7 +1459,8 @@ "name":{"shape":"string"}, "power":{"shape":"integer"}, "ramSizeInGb":{"shape":"float"}, - "transferPerMonthInGb":{"shape":"integer"} + "transferPerMonthInGb":{"shape":"integer"}, + "supportedPlatforms":{"shape":"InstancePlatformList"} } }, "BundleList":{ @@ -1009,6 +1484,63 @@ "operation":{"shape":"Operation"} } }, + "CreateDiskFromSnapshotRequest":{ + "type":"structure", + "required":[ + "diskName", + "diskSnapshotName", + "availabilityZone", + "sizeInGb" + ], + "members":{ + "diskName":{"shape":"ResourceName"}, + "diskSnapshotName":{"shape":"ResourceName"}, + "availabilityZone":{"shape":"NonEmptyString"}, + "sizeInGb":{"shape":"integer"} + } + }, + "CreateDiskFromSnapshotResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "CreateDiskRequest":{ + "type":"structure", + "required":[ + "diskName", + "availabilityZone", + "sizeInGb" + ], + "members":{ + "diskName":{"shape":"ResourceName"}, + "availabilityZone":{"shape":"NonEmptyString"}, + "sizeInGb":{"shape":"integer"} + } + }, + "CreateDiskResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "CreateDiskSnapshotRequest":{ + "type":"structure", + "required":[ + "diskName", + "diskSnapshotName" + ], + "members":{ + "diskName":{"shape":"ResourceName"}, + "diskSnapshotName":{"shape":"ResourceName"} + } + }, + "CreateDiskSnapshotResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, "CreateDomainEntryRequest":{ "type":"structure", "required":[ @@ -1066,6 +1598,7 @@ ], "members":{ "instanceNames":{"shape":"StringList"}, + "attachedDiskMapping":{"shape":"AttachedDiskMap"}, "availabilityZone":{"shape":"string"}, "instanceSnapshotName":{"shape":"ResourceName"}, "bundleId":{"shape":"NonEmptyString"}, @@ -1122,6 +1655,73 @@ "operation":{"shape":"Operation"} } }, + "CreateLoadBalancerRequest":{ + "type":"structure", + "required":[ + "loadBalancerName", + "instancePort" + ], + "members":{ + "loadBalancerName":{"shape":"ResourceName"}, + "instancePort":{"shape":"Port"}, + "healthCheckPath":{"shape":"string"}, + "certificateName":{"shape":"ResourceName"}, + "certificateDomainName":{"shape":"DomainName"}, + "certificateAlternativeNames":{"shape":"DomainNameList"} + } + }, + "CreateLoadBalancerResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "CreateLoadBalancerTlsCertificateRequest":{ + "type":"structure", + "required":[ + "loadBalancerName", + "certificateName", + "certificateDomainName" + ], + "members":{ + "loadBalancerName":{"shape":"ResourceName"}, + "certificateName":{"shape":"ResourceName"}, + "certificateDomainName":{"shape":"DomainName"}, + "certificateAlternativeNames":{"shape":"DomainNameList"} + } + }, + "CreateLoadBalancerTlsCertificateResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "DeleteDiskRequest":{ + "type":"structure", + "required":["diskName"], + "members":{ + "diskName":{"shape":"ResourceName"} + } + }, + "DeleteDiskResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "DeleteDiskSnapshotRequest":{ + "type":"structure", + "required":["diskSnapshotName"], + "members":{ + "diskSnapshotName":{"shape":"ResourceName"} + } + }, + "DeleteDiskSnapshotResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, "DeleteDomainEntryRequest":{ "type":"structure", "required":[ @@ -1191,20 +1791,122 @@ "operation":{"shape":"Operation"} } }, - "DetachStaticIpRequest":{ - "type":"structure", - "required":["staticIpName"], - "members":{ - "staticIpName":{"shape":"ResourceName"} - } + "DeleteLoadBalancerRequest":{ + "type":"structure", + "required":["loadBalancerName"], + "members":{ + "loadBalancerName":{"shape":"ResourceName"} + } + }, + "DeleteLoadBalancerResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "DeleteLoadBalancerTlsCertificateRequest":{ + "type":"structure", + "required":[ + "loadBalancerName", + "certificateName" + ], + "members":{ + "loadBalancerName":{"shape":"ResourceName"}, + "certificateName":{"shape":"ResourceName"}, + "force":{"shape":"boolean"} + } + }, + "DeleteLoadBalancerTlsCertificateResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "DetachDiskRequest":{ + "type":"structure", + "required":["diskName"], + "members":{ + "diskName":{"shape":"ResourceName"} + } + }, + "DetachDiskResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "DetachInstancesFromLoadBalancerRequest":{ + "type":"structure", + "required":[ + "loadBalancerName", + "instanceNames" + ], + "members":{ + "loadBalancerName":{"shape":"ResourceName"}, + "instanceNames":{"shape":"ResourceNameList"} + } + }, + "DetachInstancesFromLoadBalancerResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "DetachStaticIpRequest":{ + "type":"structure", + "required":["staticIpName"], + "members":{ + "staticIpName":{"shape":"ResourceName"} + } + }, + "DetachStaticIpResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, + "Disk":{ + "type":"structure", + "members":{ + "name":{"shape":"ResourceName"}, + "arn":{"shape":"NonEmptyString"}, + "supportCode":{"shape":"string"}, + "createdAt":{"shape":"IsoDate"}, + "location":{"shape":"ResourceLocation"}, + "resourceType":{"shape":"ResourceType"}, + "sizeInGb":{"shape":"integer"}, + "isSystemDisk":{"shape":"boolean"}, + "iops":{"shape":"integer"}, + "path":{"shape":"string"}, + "state":{"shape":"DiskState"}, + "attachedTo":{"shape":"ResourceName"}, + "isAttached":{"shape":"boolean"}, + "attachmentState":{ + "shape":"string", + "deprecated":true + }, + "gbInUse":{ + "shape":"integer", + "deprecated":true + } + } + }, + "DiskList":{ + "type":"list", + "member":{"shape":"Disk"} }, - "DetachStaticIpResult":{ + "DiskMap":{ "type":"structure", "members":{ - "operations":{"shape":"OperationList"} + "originalDiskPath":{"shape":"NonEmptyString"}, + "newDiskName":{"shape":"ResourceName"} } }, - "Disk":{ + "DiskMapList":{ + "type":"list", + "member":{"shape":"DiskMap"} + }, + "DiskSnapshot":{ "type":"structure", "members":{ "name":{"shape":"ResourceName"}, @@ -1214,18 +1916,34 @@ "location":{"shape":"ResourceLocation"}, "resourceType":{"shape":"ResourceType"}, "sizeInGb":{"shape":"integer"}, - "gbInUse":{"shape":"integer"}, - "isSystemDisk":{"shape":"boolean"}, - "iops":{"shape":"integer"}, - "path":{"shape":"string"}, - "attachedTo":{"shape":"string"}, - "isAttached":{"shape":"boolean"}, - "attachmentState":{"shape":"string"} + "state":{"shape":"DiskSnapshotState"}, + "progress":{"shape":"string"}, + "fromDiskName":{"shape":"ResourceName"}, + "fromDiskArn":{"shape":"NonEmptyString"} } }, - "DiskList":{ + "DiskSnapshotList":{ "type":"list", - "member":{"shape":"Disk"} + "member":{"shape":"DiskSnapshot"} + }, + "DiskSnapshotState":{ + "type":"string", + "enum":[ + "pending", + "completed", + "error", + "unknown" + ] + }, + "DiskState":{ + "type":"string", + "enum":[ + "pending", + "error", + "available", + "in-use", + "unknown" + ] }, "Domain":{ "type":"structure", @@ -1245,8 +1963,12 @@ "id":{"shape":"NonEmptyString"}, "name":{"shape":"DomainName"}, "target":{"shape":"string"}, + "isAlias":{"shape":"boolean"}, "type":{"shape":"DomainEntryType"}, - "options":{"shape":"DomainEntryOptions"} + "options":{ + "shape":"DomainEntryOptions", + "deprecated":true + } } }, "DomainEntryList":{ @@ -1265,6 +1987,10 @@ "member":{"shape":"Domain"} }, "DomainName":{"type":"string"}, + "DomainNameList":{ + "type":"list", + "member":{"shape":"DomainName"} + }, "DownloadDefaultKeyPairRequest":{ "type":"structure", "members":{ @@ -1318,6 +2044,58 @@ "nextPageToken":{"shape":"string"} } }, + "GetDiskRequest":{ + "type":"structure", + "required":["diskName"], + "members":{ + "diskName":{"shape":"ResourceName"} + } + }, + "GetDiskResult":{ + "type":"structure", + "members":{ + "disk":{"shape":"Disk"} + } + }, + "GetDiskSnapshotRequest":{ + "type":"structure", + "required":["diskSnapshotName"], + "members":{ + "diskSnapshotName":{"shape":"ResourceName"} + } + }, + "GetDiskSnapshotResult":{ + "type":"structure", + "members":{ + "diskSnapshot":{"shape":"DiskSnapshot"} + } + }, + "GetDiskSnapshotsRequest":{ + "type":"structure", + "members":{ + "pageToken":{"shape":"string"} + } + }, + "GetDiskSnapshotsResult":{ + "type":"structure", + "members":{ + "diskSnapshots":{"shape":"DiskSnapshotList"}, + "nextPageToken":{"shape":"string"} + } + }, + "GetDisksRequest":{ + "type":"structure", + "members":{ + "pageToken":{"shape":"string"} + } + }, + "GetDisksResult":{ + "type":"structure", + "members":{ + "disks":{"shape":"DiskList"}, + "nextPageToken":{"shape":"string"} + } + }, "GetDomainRequest":{ "type":"structure", "required":["domainName"], @@ -1490,6 +2268,73 @@ "nextPageToken":{"shape":"string"} } }, + "GetLoadBalancerMetricDataRequest":{ + "type":"structure", + "required":[ + "loadBalancerName", + "metricName", + "period", + "startTime", + "endTime", + "unit", + "statistics" + ], + "members":{ + "loadBalancerName":{"shape":"ResourceName"}, + "metricName":{"shape":"LoadBalancerMetricName"}, + "period":{"shape":"MetricPeriod"}, + "startTime":{"shape":"timestamp"}, + "endTime":{"shape":"timestamp"}, + "unit":{"shape":"MetricUnit"}, + "statistics":{"shape":"MetricStatisticList"} + } + }, + "GetLoadBalancerMetricDataResult":{ + "type":"structure", + "members":{ + "metricName":{"shape":"LoadBalancerMetricName"}, + "metricData":{"shape":"MetricDatapointList"} + } + }, + "GetLoadBalancerRequest":{ + "type":"structure", + "required":["loadBalancerName"], + "members":{ + "loadBalancerName":{"shape":"ResourceName"} + } + }, + "GetLoadBalancerResult":{ + "type":"structure", + "members":{ + "loadBalancer":{"shape":"LoadBalancer"} + } + }, + "GetLoadBalancerTlsCertificatesRequest":{ + "type":"structure", + "required":["loadBalancerName"], + "members":{ + "loadBalancerName":{"shape":"ResourceName"} + } + }, + "GetLoadBalancerTlsCertificatesResult":{ + "type":"structure", + "members":{ + "tlsCertificates":{"shape":"LoadBalancerTlsCertificateList"} + } + }, + "GetLoadBalancersRequest":{ + "type":"structure", + "members":{ + "pageToken":{"shape":"string"} + } + }, + "GetLoadBalancersResult":{ + "type":"structure", + "members":{ + "loadBalancers":{"shape":"LoadBalancerList"}, + "nextPageToken":{"shape":"string"} + } + }, "GetOperationRequest":{ "type":"structure", "required":["operationId"], @@ -1620,6 +2465,7 @@ "expiresAt":{"shape":"IsoDate"}, "ipAddress":{"shape":"IpAddress"}, "password":{"shape":"string"}, + "passwordData":{"shape":"PasswordData"}, "privateKey":{"shape":"string"}, "protocol":{"shape":"InstanceAccessProtocol"}, "instanceName":{"shape":"ResourceName"}, @@ -1641,6 +2487,45 @@ "ramSizeInGb":{"shape":"float"} } }, + "InstanceHealthReason":{ + "type":"string", + "enum":[ + "Lb.RegistrationInProgress", + "Lb.InitialHealthChecking", + "Lb.InternalError", + "Instance.ResponseCodeMismatch", + "Instance.Timeout", + "Instance.FailedHealthChecks", + "Instance.NotRegistered", + "Instance.NotInUse", + "Instance.DeregistrationInProgress", + "Instance.InvalidState", + "Instance.IpUnusable" + ] + }, + "InstanceHealthState":{ + "type":"string", + "enum":[ + "initial", + "healthy", + "unhealthy", + "unused", + "draining", + "unavailable" + ] + }, + "InstanceHealthSummary":{ + "type":"structure", + "members":{ + "instanceName":{"shape":"ResourceName"}, + "instanceHealth":{"shape":"InstanceHealthState"}, + "instanceHealthReason":{"shape":"InstanceHealthReason"} + } + }, + "InstanceHealthSummaryList":{ + "type":"list", + "member":{"shape":"InstanceHealthSummary"} + }, "InstanceList":{ "type":"list", "member":{"shape":"Instance"} @@ -1663,6 +2548,17 @@ "ports":{"shape":"InstancePortInfoList"} } }, + "InstancePlatform":{ + "type":"string", + "enum":[ + "LINUX_UNIX", + "WINDOWS" + ] + }, + "InstancePlatformList":{ + "type":"list", + "member":{"shape":"InstancePlatform"} + }, "InstancePortInfo":{ "type":"structure", "members":{ @@ -1703,6 +2599,7 @@ "resourceType":{"shape":"ResourceType"}, "state":{"shape":"InstanceSnapshotState"}, "progress":{"shape":"string"}, + "fromAttachedDisks":{"shape":"DiskList"}, "fromInstanceName":{"shape":"ResourceName"}, "fromInstanceArn":{"shape":"NonEmptyString"}, "fromBlueprintId":{"shape":"string"}, @@ -1775,6 +2672,208 @@ "type":"list", "member":{"shape":"KeyPair"} }, + "LoadBalancer":{ + "type":"structure", + "members":{ + "name":{"shape":"ResourceName"}, + "arn":{"shape":"NonEmptyString"}, + "supportCode":{"shape":"string"}, + "createdAt":{"shape":"IsoDate"}, + "location":{"shape":"ResourceLocation"}, + "resourceType":{"shape":"ResourceType"}, + "dnsName":{"shape":"NonEmptyString"}, + "state":{"shape":"LoadBalancerState"}, + "protocol":{"shape":"LoadBalancerProtocol"}, + "publicPorts":{"shape":"PortList"}, + "healthCheckPath":{"shape":"NonEmptyString"}, + "instancePort":{"shape":"integer"}, + "instanceHealthSummary":{"shape":"InstanceHealthSummaryList"}, + "tlsCertificateSummaries":{"shape":"LoadBalancerTlsCertificateSummaryList"}, + "configurationOptions":{"shape":"LoadBalancerConfigurationOptions"} + } + }, + "LoadBalancerAttributeName":{ + "type":"string", + "enum":[ + "HealthCheckPath", + "SessionStickinessEnabled", + "SessionStickiness_LB_CookieDurationSeconds" + ] + }, + "LoadBalancerConfigurationOptions":{ + "type":"map", + "key":{"shape":"LoadBalancerAttributeName"}, + "value":{"shape":"string"} + }, + "LoadBalancerList":{ + "type":"list", + "member":{"shape":"LoadBalancer"} + }, + "LoadBalancerMetricName":{ + "type":"string", + "enum":[ + "ClientTLSNegotiationErrorCount", + "HealthyHostCount", + "UnhealthyHostCount", + "HTTPCode_LB_4XX_Count", + "HTTPCode_LB_5XX_Count", + "HTTPCode_Instance_2XX_Count", + "HTTPCode_Instance_3XX_Count", + "HTTPCode_Instance_4XX_Count", + "HTTPCode_Instance_5XX_Count", + "InstanceResponseTime", + "RejectedConnectionCount", + "RequestCount" + ] + }, + "LoadBalancerProtocol":{ + "type":"string", + "enum":[ + "HTTP_HTTPS", + "HTTP" + ] + }, + "LoadBalancerState":{ + "type":"string", + "enum":[ + "active", + "provisioning", + "active_impaired", + "failed", + "unknown" + ] + }, + "LoadBalancerTlsCertificate":{ + "type":"structure", + "members":{ + "name":{"shape":"ResourceName"}, + "arn":{"shape":"NonEmptyString"}, + "supportCode":{"shape":"string"}, + "createdAt":{"shape":"IsoDate"}, + "location":{"shape":"ResourceLocation"}, + "resourceType":{"shape":"ResourceType"}, + "loadBalancerName":{"shape":"ResourceName"}, + "isAttached":{"shape":"boolean"}, + "status":{"shape":"LoadBalancerTlsCertificateStatus"}, + "domainName":{"shape":"DomainName"}, + "domainValidationRecords":{"shape":"LoadBalancerTlsCertificateDomainValidationRecordList"}, + "failureReason":{"shape":"LoadBalancerTlsCertificateFailureReason"}, + "issuedAt":{"shape":"IsoDate"}, + "issuer":{"shape":"NonEmptyString"}, + "keyAlgorithm":{"shape":"NonEmptyString"}, + "notAfter":{"shape":"IsoDate"}, + "notBefore":{"shape":"IsoDate"}, + "renewalSummary":{"shape":"LoadBalancerTlsCertificateRenewalSummary"}, + "revocationReason":{"shape":"LoadBalancerTlsCertificateRevocationReason"}, + "revokedAt":{"shape":"IsoDate"}, + "serial":{"shape":"NonEmptyString"}, + "signatureAlgorithm":{"shape":"NonEmptyString"}, + "subject":{"shape":"NonEmptyString"}, + "subjectAlternativeNames":{"shape":"StringList"} + } + }, + "LoadBalancerTlsCertificateDomainStatus":{ + "type":"string", + "enum":[ + "PENDING_VALIDATION", + "FAILED", + "SUCCESS" + ] + }, + "LoadBalancerTlsCertificateDomainValidationOption":{ + "type":"structure", + "members":{ + "domainName":{"shape":"DomainName"}, + "validationStatus":{"shape":"LoadBalancerTlsCertificateDomainStatus"} + } + }, + "LoadBalancerTlsCertificateDomainValidationOptionList":{ + "type":"list", + "member":{"shape":"LoadBalancerTlsCertificateDomainValidationOption"} + }, + "LoadBalancerTlsCertificateDomainValidationRecord":{ + "type":"structure", + "members":{ + "name":{"shape":"NonEmptyString"}, + "type":{"shape":"NonEmptyString"}, + "value":{"shape":"NonEmptyString"}, + "validationStatus":{"shape":"LoadBalancerTlsCertificateDomainStatus"}, + "domainName":{"shape":"DomainName"} + } + }, + "LoadBalancerTlsCertificateDomainValidationRecordList":{ + "type":"list", + "member":{"shape":"LoadBalancerTlsCertificateDomainValidationRecord"} + }, + "LoadBalancerTlsCertificateFailureReason":{ + "type":"string", + "enum":[ + "NO_AVAILABLE_CONTACTS", + "ADDITIONAL_VERIFICATION_REQUIRED", + "DOMAIN_NOT_ALLOWED", + "INVALID_PUBLIC_DOMAIN", + "OTHER" + ] + }, + "LoadBalancerTlsCertificateList":{ + "type":"list", + "member":{"shape":"LoadBalancerTlsCertificate"} + }, + "LoadBalancerTlsCertificateRenewalStatus":{ + "type":"string", + "enum":[ + "PENDING_AUTO_RENEWAL", + "PENDING_VALIDATION", + "SUCCESS", + "FAILED" + ] + }, + "LoadBalancerTlsCertificateRenewalSummary":{ + "type":"structure", + "members":{ + "renewalStatus":{"shape":"LoadBalancerTlsCertificateRenewalStatus"}, + "domainValidationOptions":{"shape":"LoadBalancerTlsCertificateDomainValidationOptionList"} + } + }, + "LoadBalancerTlsCertificateRevocationReason":{ + "type":"string", + "enum":[ + "UNSPECIFIED", + "KEY_COMPROMISE", + "CA_COMPROMISE", + "AFFILIATION_CHANGED", + "SUPERCEDED", + "CESSATION_OF_OPERATION", + "CERTIFICATE_HOLD", + "REMOVE_FROM_CRL", + "PRIVILEGE_WITHDRAWN", + "A_A_COMPROMISE" + ] + }, + "LoadBalancerTlsCertificateStatus":{ + "type":"string", + "enum":[ + "PENDING_VALIDATION", + "ISSUED", + "INACTIVE", + "EXPIRED", + "VALIDATION_TIMED_OUT", + "REVOKED", + "FAILED", + "UNKNOWN" + ] + }, + "LoadBalancerTlsCertificateSummary":{ + "type":"structure", + "members":{ + "name":{"shape":"ResourceName"}, + "isAttached":{"shape":"boolean"} + } + }, + "LoadBalancerTlsCertificateSummaryList":{ + "type":"list", + "member":{"shape":"LoadBalancerTlsCertificateSummary"} + }, "MetricDatapoint":{ "type":"structure", "members":{ @@ -1948,9 +3047,31 @@ "DeleteDomain", "CreateInstanceSnapshot", "DeleteInstanceSnapshot", - "CreateInstancesFromSnapshot" + "CreateInstancesFromSnapshot", + "CreateLoadBalancer", + "DeleteLoadBalancer", + "AttachInstancesToLoadBalancer", + "DetachInstancesFromLoadBalancer", + "UpdateLoadBalancerAttribute", + "CreateLoadBalancerTlsCertificate", + "DeleteLoadBalancerTlsCertificate", + "AttachLoadBalancerTlsCertificate", + "CreateDisk", + "DeleteDisk", + "AttachDisk", + "DetachDisk", + "CreateDiskSnapshot", + "DeleteDiskSnapshot", + "CreateDiskFromSnapshot" ] }, + "PasswordData":{ + "type":"structure", + "members":{ + "ciphertext":{"shape":"string"}, + "keyPairName":{"shape":"ResourceName"} + } + }, "PeerVpcRequest":{ "type":"structure", "members":{ @@ -1986,6 +3107,10 @@ "type":"list", "member":{"shape":"PortInfo"} }, + "PortList":{ + "type":"list", + "member":{"shape":"Port"} + }, "PortState":{ "type":"string", "enum":[ @@ -2077,6 +3202,10 @@ "type":"string", "pattern":"\\w[\\w\\-]*\\w" }, + "ResourceNameList":{ + "type":"list", + "member":{"shape":"ResourceName"} + }, "ResourceType":{ "type":"string", "enum":[ @@ -2085,7 +3214,11 @@ "KeyPair", "InstanceSnapshot", "Domain", - "PeeredVpc" + "PeeredVpc", + "LoadBalancer", + "LoadBalancerTlsCertificate", + "Disk", + "DiskSnapshot" ] }, "ServiceException":{ @@ -2134,7 +3267,8 @@ "type":"structure", "required":["instanceName"], "members":{ - "instanceName":{"shape":"ResourceName"} + "instanceName":{"shape":"ResourceName"}, + "force":{"shape":"boolean"} } }, "StopInstanceResult":{ @@ -2147,6 +3281,11 @@ "type":"list", "member":{"shape":"string"} }, + "StringMax256":{ + "type":"string", + "max":256, + "min":1 + }, "UnauthenticatedException":{ "type":"structure", "members":{ @@ -2185,6 +3324,25 @@ "operations":{"shape":"OperationList"} } }, + "UpdateLoadBalancerAttributeRequest":{ + "type":"structure", + "required":[ + "loadBalancerName", + "attributeName", + "attributeValue" + ], + "members":{ + "loadBalancerName":{"shape":"ResourceName"}, + "attributeName":{"shape":"LoadBalancerAttributeName"}, + "attributeValue":{"shape":"StringMax256"} + } + }, + "UpdateLoadBalancerAttributeResult":{ + "type":"structure", + "members":{ + "operations":{"shape":"OperationList"} + } + }, "boolean":{"type":"boolean"}, "double":{"type":"double"}, "float":{"type":"float"}, diff --git a/models/apis/lightsail/2016-11-28/docs-2.json b/models/apis/lightsail/2016-11-28/docs-2.json index feb8545a643..18dc674b427 100644 --- a/models/apis/lightsail/2016-11-28/docs-2.json +++ b/models/apis/lightsail/2016-11-28/docs-2.json @@ -3,24 +3,42 @@ "service": "

Amazon Lightsail is the easiest way to get started with AWS for developers who just need virtual private servers. Lightsail includes everything you need to launch your project quickly - a virtual machine, SSD-based storage, data transfer, DNS management, and a static IP - for a low, predictable price. You manage those Lightsail servers through the Lightsail console or by using the API or command-line interface (CLI).

For more information about Lightsail concepts and tasks, see the Lightsail Dev Guide.

To use the Lightsail API or the CLI, you will need to use AWS Identity and Access Management (IAM) to generate access keys. For details about how to set this up, see the Lightsail Dev Guide.

", "operations": { "AllocateStaticIp": "

Allocates a static IP address.

", + "AttachDisk": "

Attaches a block storage disk to a running or stopped Lightsail instance and exposes it to the instance with the specified disk name.

", + "AttachInstancesToLoadBalancer": "

Attaches one or more Lightsail instances to a load balancer.

", + "AttachLoadBalancerTlsCertificate": "

Attaches a Transport Layer Security (TLS) certificate to your load balancer.

TLS is just an updated, more secure version of Secure Socket Layer (SSL).

", "AttachStaticIp": "

Attaches a static IP address to a specific Amazon Lightsail instance.

", "CloseInstancePublicPorts": "

Closes the public ports on a specific Amazon Lightsail instance.

", + "CreateDisk": "

Creates a block storage disk that can be attached to a Lightsail instance in the same Availability Zone (e.g., us-east-2a). The disk is created in the regional endpoint that you send the HTTP request to. For more information, see Regions and Availability Zones in Lightsail.

", + "CreateDiskFromSnapshot": "

Creates a block storage disk from a disk snapshot that can be attached to a Lightsail instance in the same Availability Zone (e.g., us-east-2a). The disk is created in the regional endpoint that you send the HTTP request to. For more information, see Regions and Availability Zones in Lightsail.

", + "CreateDiskSnapshot": "

Creates a snapshot of a block storage disk. You can use snapshots for backups, to make copies of disks, and to save data before shutting down a Lightsail instance.

You can take a snapshot of an attached disk that is in use; however, snapshots only capture data that has been written to your disk at the time the snapshot command is issued. This may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the disk long enough to take a snapshot, your snapshot should be complete. Nevertheless, if you cannot pause all file writes to the disk, you should unmount the disk from within the Lightsail instance, issue the create disk snapshot command, and then remount the disk to ensure a consistent and complete snapshot. You may remount and use your disk while the snapshot status is pending.

", "CreateDomain": "

Creates a domain resource for the specified domain (e.g., example.com).

", "CreateDomainEntry": "

Creates one of the following entry records associated with the domain: A record, CNAME record, TXT record, or MX record.

", "CreateInstanceSnapshot": "

Creates a snapshot of a specific virtual private server, or instance. You can use a snapshot to create a new instance that is based on that snapshot.

", "CreateInstances": "

Creates one or more Amazon Lightsail virtual private servers, or instances.

", "CreateInstancesFromSnapshot": "

Uses a specific snapshot as a blueprint for creating one or more new instances that are based on that identical configuration.

", "CreateKeyPair": "

Creates sn SSH key pair.

", + "CreateLoadBalancer": "

Creates a Lightsail load balancer.

When you create a load balancer, you can specify certificates and port settings. You can create up to 5 load balancers per AWS Region in your account.

", + "CreateLoadBalancerTlsCertificate": "

Creates a Lightsail load balancer TLS certificate.

TLS is just an updated, more secure version of Secure Socket Layer (SSL).

", + "DeleteDisk": "

Deletes the specified block storage disk. The disk must be in the available state (not attached to a Lightsail instance).

The disk may remain in the deleting state for several minutes.

", + "DeleteDiskSnapshot": "

Deletes the specified disk snapshot.

When you make periodic snapshots of a disk, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the disk.

", "DeleteDomain": "

Deletes the specified domain recordset and all of its domain records.

", "DeleteDomainEntry": "

Deletes a specific domain entry.

", "DeleteInstance": "

Deletes a specific Amazon Lightsail virtual private server, or instance.

", "DeleteInstanceSnapshot": "

Deletes a specific snapshot of a virtual private server (or instance).

", "DeleteKeyPair": "

Deletes a specific SSH key pair.

", + "DeleteLoadBalancer": "

Deletes a Lightsail load balancer.

", + "DeleteLoadBalancerTlsCertificate": "

Deletes a TLS/SSL certificate associated with a Lightsail load balancer.

", + "DetachDisk": "

Detaches a stopped block storage disk from a Lightsail instance. Make sure to unmount any file systems on the device within your operating system before stopping the instance and detaching the disk.

", + "DetachInstancesFromLoadBalancer": "

Detaches the specified instances from a Lightsail load balancer.

", "DetachStaticIp": "

Detaches a static IP from the Amazon Lightsail instance to which it is attached.

", "DownloadDefaultKeyPair": "

Downloads the default SSH key pair from the user's account.

", "GetActiveNames": "

Returns the names of all active (not deleted) resources.

", "GetBlueprints": "

Returns the list of available instance images, or blueprints. You can use a blueprint to create a new virtual private server already running a specific operating system, as well as a preinstalled app or development stack. The software each instance is running depends on the blueprint image you choose.

", "GetBundles": "

Returns the list of bundles that are available for purchase. A bundle describes the specs for your virtual private server (or instance).

", + "GetDisk": "

Returns information about a specific block storage disk.

", + "GetDiskSnapshot": "

Returns information about a specific block storage disk snapshot.

", + "GetDiskSnapshots": "

Returns information about all block storage disk snapshots in your AWS account and region.

If you are describing a long list of disk snapshots, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list.

", + "GetDisks": "

Returns information about all block storage disks in your AWS account and region.

If you are describing a long list of disks, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list.

", "GetDomain": "

Returns information about a specific domain recordset.

", "GetDomains": "

Returns a list of all domains in the user's account.

", "GetInstance": "

Returns information about a specific Amazon Lightsail instance, which is a virtual private server.

", @@ -33,6 +51,10 @@ "GetInstances": "

Returns information about all Amazon Lightsail virtual private servers, or instances.

", "GetKeyPair": "

Returns information about a specific key pair.

", "GetKeyPairs": "

Returns information about all key pairs in the user's account.

", + "GetLoadBalancer": "

Returns information about the specified Lightsail load balancer.

", + "GetLoadBalancerMetricData": "

Returns information about health metrics for your Lightsail load balancer.

", + "GetLoadBalancerTlsCertificates": "

Returns information about the TLS certificates that are associated with the specified Lightsail load balancer.

TLS is just an updated, more secure version of Secure Socket Layer (SSL).

", + "GetLoadBalancers": "

Returns information about all load balancers in an account.

If you are describing a long list of load balancers, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list.

", "GetOperation": "

Returns information about a specific operation. Operations include events such as when you create an instance, allocate a static IP, attach a static IP, and so on.

", "GetOperations": "

Returns information about all operations.

Results are returned from oldest to newest, up to a maximum of 200. Results can be paged by making each subsequent call to GetOperations use the maximum (last) statusChangedAt value from the previous request.

", "GetOperationsForResource": "

Gets operations for a specific resource (e.g., an instance or a static IP).

", @@ -49,7 +71,8 @@ "StartInstance": "

Starts a specific Amazon Lightsail instance from a stopped state. To restart an instance, use the reboot instance operation.

", "StopInstance": "

Stops a specific Amazon Lightsail instance that is currently running.

", "UnpeerVpc": "

Attempts to unpeer the Lightsail VPC from the user's default VPC.

", - "UpdateDomainEntry": "

Updates a domain recordset after it is created.

" + "UpdateDomainEntry": "

Updates a domain recordset after it is created.

", + "UpdateLoadBalancerAttribute": "

Updates the specified attribute for a load balancer.

" }, "shapes": { "AccessDeniedException": { @@ -78,6 +101,36 @@ "refs": { } }, + "AttachDiskRequest": { + "base": null, + "refs": { + } + }, + "AttachDiskResult": { + "base": null, + "refs": { + } + }, + "AttachInstancesToLoadBalancerRequest": { + "base": null, + "refs": { + } + }, + "AttachInstancesToLoadBalancerResult": { + "base": null, + "refs": { + } + }, + "AttachLoadBalancerTlsCertificateRequest": { + "base": null, + "refs": { + } + }, + "AttachLoadBalancerTlsCertificateResult": { + "base": null, + "refs": { + } + }, "AttachStaticIpRequest": { "base": null, "refs": { @@ -88,6 +141,12 @@ "refs": { } }, + "AttachedDiskMap": { + "base": null, + "refs": { + "CreateInstancesFromSnapshotRequest$attachedDiskMapping": "

An object containing information about one or more disk mappings.

" + } + }, "AvailabilityZone": { "base": "

Describes an Availability Zone.

", "refs": { @@ -97,7 +156,7 @@ "AvailabilityZoneList": { "base": null, "refs": { - "Region$availabilityZones": "

The Availability Zones. Follows the format us-east-1a (case-sensitive).

" + "Region$availabilityZones": "

The Availability Zones. Follows the format us-east-2a (case-sensitive).

" } }, "Base64": { @@ -151,6 +210,36 @@ "refs": { } }, + "CreateDiskFromSnapshotRequest": { + "base": null, + "refs": { + } + }, + "CreateDiskFromSnapshotResult": { + "base": null, + "refs": { + } + }, + "CreateDiskRequest": { + "base": null, + "refs": { + } + }, + "CreateDiskResult": { + "base": null, + "refs": { + } + }, + "CreateDiskSnapshotRequest": { + "base": null, + "refs": { + } + }, + "CreateDiskSnapshotResult": { + "base": null, + "refs": { + } + }, "CreateDomainEntryRequest": { "base": null, "refs": { @@ -211,6 +300,46 @@ "refs": { } }, + "CreateLoadBalancerRequest": { + "base": null, + "refs": { + } + }, + "CreateLoadBalancerResult": { + "base": null, + "refs": { + } + }, + "CreateLoadBalancerTlsCertificateRequest": { + "base": null, + "refs": { + } + }, + "CreateLoadBalancerTlsCertificateResult": { + "base": null, + "refs": { + } + }, + "DeleteDiskRequest": { + "base": null, + "refs": { + } + }, + "DeleteDiskResult": { + "base": null, + "refs": { + } + }, + "DeleteDiskSnapshotRequest": { + "base": null, + "refs": { + } + }, + "DeleteDiskSnapshotResult": { + "base": null, + "refs": { + } + }, "DeleteDomainEntryRequest": { "base": null, "refs": { @@ -261,6 +390,46 @@ "refs": { } }, + "DeleteLoadBalancerRequest": { + "base": null, + "refs": { + } + }, + "DeleteLoadBalancerResult": { + "base": null, + "refs": { + } + }, + "DeleteLoadBalancerTlsCertificateRequest": { + "base": null, + "refs": { + } + }, + "DeleteLoadBalancerTlsCertificateResult": { + "base": null, + "refs": { + } + }, + "DetachDiskRequest": { + "base": null, + "refs": { + } + }, + "DetachDiskResult": { + "base": null, + "refs": { + } + }, + "DetachInstancesFromLoadBalancerRequest": { + "base": null, + "refs": { + } + }, + "DetachInstancesFromLoadBalancerResult": { + "base": null, + "refs": { + } + }, "DetachStaticIpRequest": { "base": null, "refs": { @@ -272,15 +441,55 @@ } }, "Disk": { - "base": "

Describes the hard disk (an SSD).

", + "base": "

Describes a system disk or an block storage disk.

", "refs": { - "DiskList$member": null + "DiskList$member": null, + "GetDiskResult$disk": "

An object containing information about the disk.

" } }, "DiskList": { "base": null, "refs": { - "InstanceHardware$disks": "

The disks attached to the instance.

" + "GetDisksResult$disks": "

An array of objects containing information about all block storage disks.

", + "InstanceHardware$disks": "

The disks attached to the instance.

", + "InstanceSnapshot$fromAttachedDisks": "

An array of disk objects containing information about all block storage disks.

" + } + }, + "DiskMap": { + "base": "

Describes a block storage disk mapping.

", + "refs": { + "DiskMapList$member": null + } + }, + "DiskMapList": { + "base": null, + "refs": { + "AttachedDiskMap$value": null + } + }, + "DiskSnapshot": { + "base": "

Describes a block storage disk snapshot.

", + "refs": { + "DiskSnapshotList$member": null, + "GetDiskSnapshotResult$diskSnapshot": "

An object containing information about the disk snapshot.

" + } + }, + "DiskSnapshotList": { + "base": null, + "refs": { + "GetDiskSnapshotsResult$diskSnapshots": "

An array of objects containing information about all block storage disk snapshots.

" + } + }, + "DiskSnapshotState": { + "base": null, + "refs": { + "DiskSnapshot$state": "

The status of the disk snapshot operation.

" + } + }, + "DiskState": { + "base": null, + "refs": { + "Disk$state": "

Describes the status of the disk.

" } }, "Domain": { @@ -308,7 +517,7 @@ "DomainEntryOptions": { "base": null, "refs": { - "DomainEntry$options": "

The options for the domain entry.

" + "DomainEntry$options": "

(Deprecated) The options for the domain entry.

In releases prior to November 29, 2017, this parameter was not included in the API response. It is now deprecated.

" } }, "DomainEntryOptionsKeys": { @@ -334,13 +543,26 @@ "refs": { "CreateDomainEntryRequest$domainName": "

The domain name (e.g., example.com) for which you want to create the domain entry.

", "CreateDomainRequest$domainName": "

The domain name to manage (e.g., example.com).

You cannot register a new domain name using Lightsail. You must register a domain name using Amazon Route 53 or another domain name registrar. If you have already registered your domain, you can enter its name in this parameter to manage the DNS records for that domain.

", + "CreateLoadBalancerRequest$certificateDomainName": "

The domain name with which your certificate is associated (e.g., example.com).

If you specify certificateDomainName, then certificateName is required (and vice-versa).

", + "CreateLoadBalancerTlsCertificateRequest$certificateDomainName": "

The domain name (e.g., example.com) for your TLS/SSL certificate.

", "DeleteDomainEntryRequest$domainName": "

The name of the domain entry to delete.

", "DeleteDomainRequest$domainName": "

The specific domain name to delete.

", "DomainEntry$name": "

The name of the domain.

", + "DomainNameList$member": null, "GetDomainRequest$domainName": "

The domain name for which your want to return information about.

", + "LoadBalancerTlsCertificate$domainName": "

The domain name for your TLS/SSL certificate.

", + "LoadBalancerTlsCertificateDomainValidationOption$domainName": "

A fully qualified domain name in the certificate request.

", + "LoadBalancerTlsCertificateDomainValidationRecord$domainName": "

The domain name against which your TLS/SSL certificate was validated.

", "UpdateDomainEntryRequest$domainName": "

The name of the domain recordset to update.

" } }, + "DomainNameList": { + "base": null, + "refs": { + "CreateLoadBalancerRequest$certificateAlternativeNames": "

The alternative domain names to use with your TLS/SSL certificate (e.g., www.example.com, www.ejemplo.com, ejemplo.com).

", + "CreateLoadBalancerTlsCertificateRequest$certificateAlternativeNames": "

An array of strings listing alternative domain names for your TLS/SSL certificate.

" + } + }, "DownloadDefaultKeyPairRequest": { "base": null, "refs": { @@ -381,6 +603,46 @@ "refs": { } }, + "GetDiskRequest": { + "base": null, + "refs": { + } + }, + "GetDiskResult": { + "base": null, + "refs": { + } + }, + "GetDiskSnapshotRequest": { + "base": null, + "refs": { + } + }, + "GetDiskSnapshotResult": { + "base": null, + "refs": { + } + }, + "GetDiskSnapshotsRequest": { + "base": null, + "refs": { + } + }, + "GetDiskSnapshotsResult": { + "base": null, + "refs": { + } + }, + "GetDisksRequest": { + "base": null, + "refs": { + } + }, + "GetDisksResult": { + "base": null, + "refs": { + } + }, "GetDomainRequest": { "base": null, "refs": { @@ -501,6 +763,46 @@ "refs": { } }, + "GetLoadBalancerMetricDataRequest": { + "base": null, + "refs": { + } + }, + "GetLoadBalancerMetricDataResult": { + "base": null, + "refs": { + } + }, + "GetLoadBalancerRequest": { + "base": null, + "refs": { + } + }, + "GetLoadBalancerResult": { + "base": null, + "refs": { + } + }, + "GetLoadBalancerTlsCertificatesRequest": { + "base": null, + "refs": { + } + }, + "GetLoadBalancerTlsCertificatesResult": { + "base": null, + "refs": { + } + }, + "GetLoadBalancersRequest": { + "base": null, + "refs": { + } + }, + "GetLoadBalancersResult": { + "base": null, + "refs": { + } + }, "GetOperationRequest": { "base": null, "refs": { @@ -597,6 +899,30 @@ "Instance$hardware": "

The size of the vCPU and the amount of RAM for the instance.

" } }, + "InstanceHealthReason": { + "base": null, + "refs": { + "InstanceHealthSummary$instanceHealthReason": "

More information about the instance health. Valid values are below.

" + } + }, + "InstanceHealthState": { + "base": null, + "refs": { + "InstanceHealthSummary$instanceHealth": "

Describes the overall instance health. Valid values are below.

" + } + }, + "InstanceHealthSummary": { + "base": "

Describes information about the health of the instance.

", + "refs": { + "InstanceHealthSummaryList$member": null + } + }, + "InstanceHealthSummaryList": { + "base": null, + "refs": { + "LoadBalancer$instanceHealthSummary": "

An array of InstanceHealthSummary objects describing the health of the load balancer.

" + } + }, "InstanceList": { "base": null, "refs": { @@ -607,7 +933,7 @@ "base": null, "refs": { "GetInstanceMetricDataRequest$metricName": "

The metric name to get data about.

", - "GetInstanceMetricDataResult$metricName": "

The metric name to return data for.

" + "GetInstanceMetricDataResult$metricName": "

The metric name to return data for.

" } }, "InstanceNetworking": { @@ -616,6 +942,19 @@ "Instance$networking": "

Information about the public ports and monthly data transfer rates for the instance.

" } }, + "InstancePlatform": { + "base": null, + "refs": { + "Blueprint$platform": "

The operating system platform (either Linux/Unix-based or Windows Server-based) of the blueprint.

", + "InstancePlatformList$member": null + } + }, + "InstancePlatformList": { + "base": null, + "refs": { + "Bundle$supportedPlatforms": "

The operating system platform (Linux/Unix-based or Windows Server-based) that the bundle supports. You can only launch a WINDOWS bundle on a blueprint that supports the WINDOWS platform. LINUX_UNIX blueprints require a LINUX_UNIX bundle.

" + } + }, "InstancePortInfo": { "base": "

Describes information about the instance ports.

", "refs": { @@ -700,11 +1039,18 @@ "base": null, "refs": { "Disk$createdAt": "

The date when the disk was created.

", + "DiskSnapshot$createdAt": "

The date when the disk snapshot was created.

", "Domain$createdAt": "

The date when the domain recordset was created.

", "Instance$createdAt": "

The timestamp when the instance was created (e.g., 1479734909.17).

", "InstanceAccessDetails$expiresAt": "

For SSH access, the date on which the temporary keys expire.

", "InstanceSnapshot$createdAt": "

The timestamp when the snapshot was created (e.g., 1479907467.024).

", "KeyPair$createdAt": "

The timestamp when the key pair was created (e.g., 1479816991.349).

", + "LoadBalancer$createdAt": "

The date when your load balancer was created.

", + "LoadBalancerTlsCertificate$createdAt": "

The time when you created your TLS/SSL certificate.

", + "LoadBalancerTlsCertificate$issuedAt": "

The time when the TLS/SSL certificate was issued.

", + "LoadBalancerTlsCertificate$notAfter": "

The timestamp when the TLS/SSL certificate expires.

", + "LoadBalancerTlsCertificate$notBefore": "

The timestamp when the TLS/SSL certificate is first valid.

", + "LoadBalancerTlsCertificate$revokedAt": "

The timestamp when the TLS/SSL certificate was revoked.

", "Operation$createdAt": "

The timestamp when the operation was initialized (e.g., 1479816991.349).

", "Operation$statusChangedAt": "

The timestamp when the status was changed (e.g., 1479816991.349).

", "StaticIp$createdAt": "

The timestamp when the static IP was created (e.g., 1479735304.222).

" @@ -724,6 +1070,136 @@ "GetKeyPairsResult$keyPairs": "

An array of key-value pairs containing information about the key pairs.

" } }, + "LoadBalancer": { + "base": "

Describes the Lightsail load balancer.

", + "refs": { + "GetLoadBalancerResult$loadBalancer": "

An object containing information about your load balancer.

", + "LoadBalancerList$member": null + } + }, + "LoadBalancerAttributeName": { + "base": null, + "refs": { + "LoadBalancerConfigurationOptions$key": null, + "UpdateLoadBalancerAttributeRequest$attributeName": "

The name of the attribute you want to update. Valid values are below.

" + } + }, + "LoadBalancerConfigurationOptions": { + "base": null, + "refs": { + "LoadBalancer$configurationOptions": "

A string to string map of the configuration options for your load balancer. Valid values are listed below.

" + } + }, + "LoadBalancerList": { + "base": null, + "refs": { + "GetLoadBalancersResult$loadBalancers": "

An array of LoadBalancer objects describing your load balancers.

" + } + }, + "LoadBalancerMetricName": { + "base": null, + "refs": { + "GetLoadBalancerMetricDataRequest$metricName": "

The metric about which you want to return information. Valid values are listed below, along with the most useful statistics to include in your request.

  • ClientTLSNegotiationErrorCount - The number of TLS connections initiated by the client that did not establish a session with the load balancer. Possible causes include a mismatch of ciphers or protocols.

    Statistics: The most useful statistic is Sum.

  • HealthyHostCount - The number of target instances that are considered healthy.

    Statistics: The most useful statistic are Average, Minimum, and Maximum.

  • UnhealthyHostCount - The number of target instances that are considered unhealthy.

    Statistics: The most useful statistic are Average, Minimum, and Maximum.

  • HTTPCode_LB_4XX_Count - The number of HTTP 4XX client error codes that originate from the load balancer. Client errors are generated when requests are malformed or incomplete. These requests have not been received by the target instance. This count does not include any response codes generated by the target instances.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

  • HTTPCode_LB_5XX_Count - The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes generated by the target instances.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1. Note that Minimum, Maximum, and Average all return 1.

  • HTTPCode_Instance_2XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

  • HTTPCode_Instance_3XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

  • HTTPCode_Instance_4XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

  • HTTPCode_Instance_5XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

  • InstanceResponseTime - The time elapsed, in seconds, after the request leaves the load balancer until a response from the target instance is received.

    Statistics: The most useful statistic is Average.

  • RejectedConnectionCount - The number of connections that were rejected because the load balancer had reached its maximum number of connections.

    Statistics: The most useful statistic is Sum.

  • RequestCount - The number of requests processed over IPv4. This count includes only the requests with a response generated by a target instance of the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

", + "GetLoadBalancerMetricDataResult$metricName": "

The metric about which you are receiving information. Valid values are listed below.

" + } + }, + "LoadBalancerProtocol": { + "base": null, + "refs": { + "LoadBalancer$protocol": "

The protocol you have enabled for your load balancer. Valid values are below.

" + } + }, + "LoadBalancerState": { + "base": null, + "refs": { + "LoadBalancer$state": "

The status of your load balancer. Valid values are below.

" + } + }, + "LoadBalancerTlsCertificate": { + "base": "

Describes a load balancer TLS/SSL certificate.

TLS is just an updated, more secure version of Secure Socket Layer (SSL).

", + "refs": { + "LoadBalancerTlsCertificateList$member": null + } + }, + "LoadBalancerTlsCertificateDomainStatus": { + "base": null, + "refs": { + "LoadBalancerTlsCertificateDomainValidationOption$validationStatus": "

The status of the domain validation. Valid values are listed below.

", + "LoadBalancerTlsCertificateDomainValidationRecord$validationStatus": "

The validation status. Valid values are listed below.

" + } + }, + "LoadBalancerTlsCertificateDomainValidationOption": { + "base": "

Contains information about the domain names on a TLS/SSL certificate that you will use to validate domain ownership.

", + "refs": { + "LoadBalancerTlsCertificateDomainValidationOptionList$member": null + } + }, + "LoadBalancerTlsCertificateDomainValidationOptionList": { + "base": null, + "refs": { + "LoadBalancerTlsCertificateRenewalSummary$domainValidationOptions": "

Contains information about the validation of each domain name in the certificate, as it pertains to Lightsail's managed renewal. This is different from the initial validation that occurs as a result of the RequestCertificate request.

" + } + }, + "LoadBalancerTlsCertificateDomainValidationRecord": { + "base": "

Describes the validation record of each domain name in the TLS/SSL certificate.

", + "refs": { + "LoadBalancerTlsCertificateDomainValidationRecordList$member": null + } + }, + "LoadBalancerTlsCertificateDomainValidationRecordList": { + "base": null, + "refs": { + "LoadBalancerTlsCertificate$domainValidationRecords": "

An array of LoadBalancerTlsCertificateDomainValidationRecord objects describing the records.

" + } + }, + "LoadBalancerTlsCertificateFailureReason": { + "base": null, + "refs": { + "LoadBalancerTlsCertificate$failureReason": "

The reason for the TLS/SSL certificate validation failure.

" + } + }, + "LoadBalancerTlsCertificateList": { + "base": null, + "refs": { + "GetLoadBalancerTlsCertificatesResult$tlsCertificates": "

An array of LoadBalancerTlsCertificate objects describing your TLS/SSL certificates.

" + } + }, + "LoadBalancerTlsCertificateRenewalStatus": { + "base": null, + "refs": { + "LoadBalancerTlsCertificateRenewalSummary$renewalStatus": "

The status of Lightsail's managed renewal of the certificate. Valid values are listed below.

" + } + }, + "LoadBalancerTlsCertificateRenewalSummary": { + "base": "

Contains information about the status of Lightsail's managed renewal for the certificate.

", + "refs": { + "LoadBalancerTlsCertificate$renewalSummary": "

An object containing information about the status of Lightsail's managed renewal for the certificate.

" + } + }, + "LoadBalancerTlsCertificateRevocationReason": { + "base": null, + "refs": { + "LoadBalancerTlsCertificate$revocationReason": "

The reason the certificate was revoked. Valid values are below.

" + } + }, + "LoadBalancerTlsCertificateStatus": { + "base": null, + "refs": { + "LoadBalancerTlsCertificate$status": "

The status of the TLS/SSL certificate. Valid values are below.

" + } + }, + "LoadBalancerTlsCertificateSummary": { + "base": "

Provides a summary of TLS/SSL certificate metadata.

", + "refs": { + "LoadBalancerTlsCertificateSummaryList$member": null + } + }, + "LoadBalancerTlsCertificateSummaryList": { + "base": null, + "refs": { + "LoadBalancer$tlsCertificateSummaries": "

An array of LoadBalancerTlsCertificateSummary objects that provide additional information about the TLS/SSL certificates.

" + } + }, "MetricDatapoint": { "base": "

Describes the metric data point.

", "refs": { @@ -733,13 +1209,15 @@ "MetricDatapointList": { "base": null, "refs": { - "GetInstanceMetricDataResult$metricData": "

An array of key-value pairs containing information about the results of your get instance metric data request.

" + "GetInstanceMetricDataResult$metricData": "

An array of key-value pairs containing information about the results of your get instance metric data request.

", + "GetLoadBalancerMetricDataResult$metricData": "

An array of metric datapoint objects.

" } }, "MetricPeriod": { "base": null, "refs": { - "GetInstanceMetricDataRequest$period": "

The time period for which you are requesting data.

" + "GetInstanceMetricDataRequest$period": "

The time period for which you are requesting data.

", + "GetLoadBalancerMetricDataRequest$period": "

The time period duration for your health data request.

" } }, "MetricStatistic": { @@ -751,13 +1229,15 @@ "MetricStatisticList": { "base": null, "refs": { - "GetInstanceMetricDataRequest$statistics": "

The instance statistics.

" + "GetInstanceMetricDataRequest$statistics": "

The instance statistics.

", + "GetLoadBalancerMetricDataRequest$statistics": "

An array of statistics that you want to request metrics for. Valid values are listed below.

" } }, "MetricUnit": { "base": null, "refs": { "GetInstanceMetricDataRequest$unit": "

The unit. The list of valid values is below.

", + "GetLoadBalancerMetricDataRequest$unit": "

The unit for the time period request. Valid values are listed below.

", "MetricDatapoint$unit": "

The unit.

" } }, @@ -778,28 +1258,46 @@ "NonEmptyString": { "base": null, "refs": { - "AvailabilityZone$zoneName": "

The name of the Availability Zone. The format is us-east-1a (case-sensitive).

", + "AttachDiskRequest$diskPath": "

The disk path to expose to the instance (e.g., /dev/xvdf).

", + "AvailabilityZone$zoneName": "

The name of the Availability Zone. The format is us-east-2a (case-sensitive).

", "AvailabilityZone$state": "

The state of the Availability Zone.

", "Blueprint$blueprintId": "

The ID for the virtual private server image (e.g., app_wordpress_4_4 or app_lamp_7_0).

", "Blueprint$group": "

The group name of the blueprint (e.g., amazon-linux).

", "Bundle$bundleId": "

The bundle ID (e.g., micro_1_0).

", + "CreateDiskFromSnapshotRequest$availabilityZone": "

The Availability Zone where you want to create the disk (e.g., us-east-2a). Choose the same Availability Zone as the Lightsail instance where you want to create the disk.

Use the GetRegions operation to list the Availability Zones where Lightsail is currently available.

", + "CreateDiskRequest$availabilityZone": "

The Availability Zone where you want to create the disk (e.g., us-east-2a). Choose the same Availability Zone as the Lightsail instance where you want to create the disk.

Use the GetRegions operation to list the Availability Zones where Lightsail is currently available.

", "CreateInstancesFromSnapshotRequest$bundleId": "

The bundle of specification information for your virtual private server (or instance), including the pricing plan (e.g., micro_1_0).

", "CreateInstancesRequest$blueprintId": "

The ID for a virtual private server image (e.g., app_wordpress_4_4 or app_lamp_7_0). Use the get blueprints operation to return a list of available images (or blueprints).

", "CreateInstancesRequest$bundleId": "

The bundle of specification information for your virtual private server (or instance), including the pricing plan (e.g., micro_1_0).

", "Disk$arn": "

The Amazon Resource Name (ARN) of the disk.

", + "DiskMap$originalDiskPath": "

The original disk path exposed to the instance (for example, /dev/sdh).

", + "DiskSnapshot$arn": "

The Amazon Resource Name (ARN) of the disk snapshot.

", + "DiskSnapshot$fromDiskArn": "

The Amazon Resource Name (ARN) of the source disk from which you are creating the disk snapshot.

", "Domain$arn": "

The Amazon Resource Name (ARN) of the domain recordset (e.g., arn:aws:lightsail:global:123456789101:Domain/824cede0-abc7-4f84-8dbc-12345EXAMPLE).

", "DomainEntry$id": "

The ID of the domain recordset entry.

", "GetOperationRequest$operationId": "

A GUID used to identify the operation.

", - "Instance$arn": "

The Amazon Resource Name (ARN) of the instance (e.g., arn:aws:lightsail:us-east-1:123456789101:Instance/244ad76f-8aad-4741-809f-12345EXAMPLE).

", + "Instance$arn": "

The Amazon Resource Name (ARN) of the instance (e.g., arn:aws:lightsail:us-east-2:123456789101:Instance/244ad76f-8aad-4741-809f-12345EXAMPLE).

", "Instance$blueprintId": "

The blueprint ID (e.g., os_amlinux_2016_03).

", "Instance$blueprintName": "

The friendly name of the blueprint (e.g., Amazon Linux).

", "Instance$bundleId": "

The bundle for the instance (e.g., micro_1_0).

", "Instance$username": "

The user name for connecting to the instance (e.g., ec2-user).

", - "InstanceSnapshot$arn": "

The Amazon Resource Name (ARN) of the snapshot (e.g., arn:aws:lightsail:us-east-1:123456789101:InstanceSnapshot/d23b5706-3322-4d83-81e5-12345EXAMPLE).

", - "InstanceSnapshot$fromInstanceArn": "

The Amazon Resource Name (ARN) of the instance from which the snapshot was created (e.g., arn:aws:lightsail:us-east-1:123456789101:Instance/64b8404c-ccb1-430b-8daf-12345EXAMPLE).

", - "KeyPair$arn": "

The Amazon Resource Name (ARN) of the key pair (e.g., arn:aws:lightsail:us-east-1:123456789101:KeyPair/05859e3d-331d-48ba-9034-12345EXAMPLE).

", + "InstanceSnapshot$arn": "

The Amazon Resource Name (ARN) of the snapshot (e.g., arn:aws:lightsail:us-east-2:123456789101:InstanceSnapshot/d23b5706-3322-4d83-81e5-12345EXAMPLE).

", + "InstanceSnapshot$fromInstanceArn": "

The Amazon Resource Name (ARN) of the instance from which the snapshot was created (e.g., arn:aws:lightsail:us-east-2:123456789101:Instance/64b8404c-ccb1-430b-8daf-12345EXAMPLE).

", + "KeyPair$arn": "

The Amazon Resource Name (ARN) of the key pair (e.g., arn:aws:lightsail:us-east-2:123456789101:KeyPair/05859e3d-331d-48ba-9034-12345EXAMPLE).

", + "LoadBalancer$arn": "

The Amazon Resource Name (ARN) of the load balancer.

", + "LoadBalancer$dnsName": "

The DNS name of your Lightsail load balancer.

", + "LoadBalancer$healthCheckPath": "

The path you specified to perform your health checks. If no path is specified, the load balancer tries to make a request to the default (root) page.

", + "LoadBalancerTlsCertificate$arn": "

The Amazon Resource Name (ARN) of the TLS/SSL certificate.

", + "LoadBalancerTlsCertificate$issuer": "

The issuer of the certificate.

", + "LoadBalancerTlsCertificate$keyAlgorithm": "

The algorithm that was used to generate the key pair (the public and private key).

", + "LoadBalancerTlsCertificate$serial": "

The serial number of the certificate.

", + "LoadBalancerTlsCertificate$signatureAlgorithm": "

The algorithm that was used to sign the certificate.

", + "LoadBalancerTlsCertificate$subject": "

The name of the entity that is associated with the public key contained in the certificate.

", + "LoadBalancerTlsCertificateDomainValidationRecord$name": "

A fully qualified domain name in the certificate. For example, example.com.

", + "LoadBalancerTlsCertificateDomainValidationRecord$type": "

The type of validation record. For example, CNAME for domain validation.

", + "LoadBalancerTlsCertificateDomainValidationRecord$value": "

The value for that type.

", "Operation$id": "

The ID of the operation.

", - "StaticIp$arn": "

The Amazon Resource Name (ARN) of the static IP (e.g., arn:aws:lightsail:us-east-1:123456789101:StaticIp/9cbb4a9e-f8e3-4dfe-b57e-12345EXAMPLE).

" + "StaticIp$arn": "

The Amazon Resource Name (ARN) of the static IP (e.g., arn:aws:lightsail:us-east-2:123456789101:StaticIp/9cbb4a9e-f8e3-4dfe-b57e-12345EXAMPLE).

" } }, "NotFoundException": { @@ -845,12 +1343,26 @@ "base": null, "refs": { "AllocateStaticIpResult$operations": "

An array of key-value pairs containing information about the static IP address you allocated.

", + "AttachDiskResult$operations": "

An object describing the API operations.

", + "AttachInstancesToLoadBalancerResult$operations": "

An object representing the API operations.

", + "AttachLoadBalancerTlsCertificateResult$operations": "

An object representing the API operations.

", "AttachStaticIpResult$operations": "

An array of key-value pairs containing information about your API operations.

", + "CreateDiskFromSnapshotResult$operations": "

An object describing the API operations.

", + "CreateDiskResult$operations": "

An object describing the API operations.

", + "CreateDiskSnapshotResult$operations": "

An object describing the API operations.

", "CreateInstanceSnapshotResult$operations": "

An array of key-value pairs containing information about the results of your create instances snapshot request.

", "CreateInstancesFromSnapshotResult$operations": "

An array of key-value pairs containing information about the results of your create instances from snapshot request.

", "CreateInstancesResult$operations": "

An array of key-value pairs containing information about the results of your create instances request.

", + "CreateLoadBalancerResult$operations": "

An object containing information about the API operations.

", + "CreateLoadBalancerTlsCertificateResult$operations": "

An object containing information about the API operations.

", + "DeleteDiskResult$operations": "

An object describing the API operations.

", + "DeleteDiskSnapshotResult$operations": "

An object describing the API operations.

", "DeleteInstanceResult$operations": "

An array of key-value pairs containing information about the results of your delete instance request.

", "DeleteInstanceSnapshotResult$operations": "

An array of key-value pairs containing information about the results of your delete instance snapshot request.

", + "DeleteLoadBalancerResult$operations": "

An object describing the API operations.

", + "DeleteLoadBalancerTlsCertificateResult$operations": "

An object describing the API operations.

", + "DetachDiskResult$operations": "

An object describing the API operations.

", + "DetachInstancesFromLoadBalancerResult$operations": "

An object describing the API operations.

", "DetachStaticIpResult$operations": "

An array of key-value pairs containing information about the results of your detach static IP request.

", "GetOperationsForResourceResult$operations": "

An array of key-value pairs containing information about the results of your get operations for resource request.

", "GetOperationsResult$operations": "

An array of key-value pairs containing information about the results of your get operations request.

", @@ -858,7 +1370,8 @@ "ReleaseStaticIpResult$operations": "

An array of key-value pairs containing information about the request operation.

", "StartInstanceResult$operations": "

An array of key-value pairs containing information about the request operation.

", "StopInstanceResult$operations": "

An array of key-value pairs containing information about the request operation.

", - "UpdateDomainEntryResult$operations": "

An array of key-value pairs containing information about the request operation.

" + "UpdateDomainEntryResult$operations": "

An array of key-value pairs containing information about the request operation.

", + "UpdateLoadBalancerAttributeResult$operations": "

An object describing the API operations.

" } }, "OperationStatus": { @@ -873,6 +1386,12 @@ "Operation$operationType": "

The type of operation.

" } }, + "PasswordData": { + "base": "

The password data for the Windows Server-based instance, including the ciphertext and the key pair name.

", + "refs": { + "InstanceAccessDetails$passwordData": "

For a Windows Server-based instance, an object with the data you can use to retrieve your password. This is only needed if password is empty and the instance is not new (and therefore the password is not ready yet). When you create an instance, it can take up to 15 minutes for the instance to be ready.

" + } + }, "PeerVpcRequest": { "base": null, "refs": { @@ -886,12 +1405,14 @@ "Port": { "base": null, "refs": { + "CreateLoadBalancerRequest$instancePort": "

The instance port where you're creating your load balancer.

", "InstancePortInfo$fromPort": "

The first port in the range.

", "InstancePortInfo$toPort": "

The last port in the range.

", "InstancePortState$fromPort": "

The first port in the range.

", "InstancePortState$toPort": "

The last port in the range.

", "PortInfo$fromPort": "

The first port in the range.

", - "PortInfo$toPort": "

The last port in the range.

" + "PortInfo$toPort": "

The last port in the range.

", + "PortList$member": null } }, "PortAccessType": { @@ -914,6 +1435,12 @@ "PutInstancePublicPortsRequest$portInfos": "

Specifies information about the public port(s).

" } }, + "PortList": { + "base": null, + "refs": { + "LoadBalancer$publicPorts": "

An array of public port settings for your load balancer.

" + } + }, "PortState": { "base": null, "refs": { @@ -955,7 +1482,7 @@ "RegionName": { "base": null, "refs": { - "Region$name": "

The region name (e.g., us-east-1).

", + "Region$name": "

The region name (e.g., us-east-2).

", "ResourceLocation$regionName": "

The AWS Region name.

" } }, @@ -972,11 +1499,14 @@ "ResourceLocation": { "base": "

Describes the resource location.

", "refs": { - "Disk$location": "

The region and Availability Zone where the disk is located.

", + "Disk$location": "

The AWS Region and Availability Zone where the disk is located.

", + "DiskSnapshot$location": "

The AWS Region and Availability Zone where the disk snapshot was created.

", "Domain$location": "

The AWS Region and Availability Zones where the domain recordset was created.

", "Instance$location": "

The region name and availability zone where the instance is located.

", "InstanceSnapshot$location": "

The region name and availability zone where you created the snapshot.

", "KeyPair$location": "

The region name and Availability Zone where the key pair was created.

", + "LoadBalancer$location": "

The AWS Region and Availability Zone where your load balancer was created (e.g., us-east-2a).

", + "LoadBalancerTlsCertificate$location": "

The AWS Region and Availability Zone where you created your certificate.

", "Operation$location": "

The region and Availability Zone.

", "StaticIp$location": "

The region and Availability Zone where the static IP was created.

" } @@ -985,10 +1515,21 @@ "base": null, "refs": { "AllocateStaticIpRequest$staticIpName": "

The name of the static IP address.

", + "AttachDiskRequest$diskName": "

The unique Lightsail disk name (e.g., my-disk).

", + "AttachDiskRequest$instanceName": "

The name of the Lightsail instance where you want to utilize the storage disk.

", + "AttachInstancesToLoadBalancerRequest$loadBalancerName": "

The name of the load balancer.

", + "AttachLoadBalancerTlsCertificateRequest$loadBalancerName": "

The name of the load balancer to which you want to associate the TLS/SSL certificate.

", + "AttachLoadBalancerTlsCertificateRequest$certificateName": "

The name of your TLS/SSL certificate.

", "AttachStaticIpRequest$staticIpName": "

The name of the static IP.

", "AttachStaticIpRequest$instanceName": "

The instance name to which you want to attach the static IP address.

", + "AttachedDiskMap$key": null, "Blueprint$name": "

The friendly name of the blueprint (e.g., Amazon Linux).

", "CloseInstancePublicPortsRequest$instanceName": "

The name of the instance on which you're attempting to close the public ports.

", + "CreateDiskFromSnapshotRequest$diskName": "

The unique Lightsail disk name (e.g., my-disk).

", + "CreateDiskFromSnapshotRequest$diskSnapshotName": "

The name of the disk snapshot (e.g., my-snapshot) from which to create the new storage disk.

", + "CreateDiskRequest$diskName": "

The unique Lightsail disk name (e.g., my-disk).

", + "CreateDiskSnapshotRequest$diskName": "

The unique name of the source disk (e.g., my-source-disk).

", + "CreateDiskSnapshotRequest$diskSnapshotName": "

The name of the destination disk snapshot (e.g., my-disk-snapshot) based on the source disk.

", "CreateInstanceSnapshotRequest$instanceSnapshotName": "

The name for your new snapshot.

", "CreateInstanceSnapshotRequest$instanceName": "

The Lightsail instance on which to base your snapshot.

", "CreateInstancesFromSnapshotRequest$instanceSnapshotName": "

The name of the instance snapshot on which you are basing your new instances. Use the get instance snapshots operation to return information about your existing snapshots.

", @@ -996,12 +1537,29 @@ "CreateInstancesRequest$customImageName": "

(Deprecated) The name for your custom image.

In releases prior to June 12, 2017, this parameter was ignored by the API. It is now deprecated.

", "CreateInstancesRequest$keyPairName": "

The name of your key pair.

", "CreateKeyPairRequest$keyPairName": "

The name for your new key pair.

", + "CreateLoadBalancerRequest$loadBalancerName": "

The name of your load balancer.

", + "CreateLoadBalancerRequest$certificateName": "

The name of the TLS/SSL certificate.

If you specify certificateName, then certificateDomainName is required (and vice-versa).

", + "CreateLoadBalancerTlsCertificateRequest$loadBalancerName": "

The load balancer name where you want to create the TLS/SSL certificate.

", + "CreateLoadBalancerTlsCertificateRequest$certificateName": "

The TLS/SSL certificate name.

", + "DeleteDiskRequest$diskName": "

The unique name of the disk you want to delete (e.g., my-disk).

", + "DeleteDiskSnapshotRequest$diskSnapshotName": "

The name of the disk snapshot you want to delete (e.g., my-disk-snapshot).

", "DeleteInstanceRequest$instanceName": "

The name of the instance to delete.

", "DeleteInstanceSnapshotRequest$instanceSnapshotName": "

The name of the snapshot to delete.

", "DeleteKeyPairRequest$keyPairName": "

The name of the key pair to delete.

", + "DeleteLoadBalancerRequest$loadBalancerName": "

The name of the load balancer you want to delete.

", + "DeleteLoadBalancerTlsCertificateRequest$loadBalancerName": "

The load balancer name.

", + "DeleteLoadBalancerTlsCertificateRequest$certificateName": "

The TLS/SSL certificate name.

", + "DetachDiskRequest$diskName": "

The unique name of the disk you want to detach from your instance (e.g., my-disk).

", + "DetachInstancesFromLoadBalancerRequest$loadBalancerName": "

The name of the Lightsail load balancer.

", "DetachStaticIpRequest$staticIpName": "

The name of the static IP to detach from the instance.

", - "Disk$name": "

The name of the disk.

", + "Disk$name": "

The unique name of the disk.

", + "Disk$attachedTo": "

The resources to which the disk is attached.

", + "DiskMap$newDiskName": "

The new disk name (e.g., my-new-disk).

", + "DiskSnapshot$name": "

The name of the disk snapshot (e.g., my-disk-snapshot).

", + "DiskSnapshot$fromDiskName": "

The unique name of the source disk from which you are creating the disk snapshot.

", "Domain$name": "

The name of the domain.

", + "GetDiskRequest$diskName": "

The name of the disk (e.g., my-disk).

", + "GetDiskSnapshotRequest$diskSnapshotName": "

The name of the disk snapshot (e.g., my-disk-snapshot).

", "GetInstanceAccessDetailsRequest$instanceName": "

The name of the instance to access.

", "GetInstanceMetricDataRequest$instanceName": "

The name of the instance for which you want to get metrics data.

", "GetInstancePortStatesRequest$instanceName": "

The name of the instance.

", @@ -1009,34 +1567,55 @@ "GetInstanceSnapshotRequest$instanceSnapshotName": "

The name of the snapshot for which you are requesting information.

", "GetInstanceStateRequest$instanceName": "

The name of the instance to get state information about.

", "GetKeyPairRequest$keyPairName": "

The name of the key pair for which you are requesting information.

", + "GetLoadBalancerMetricDataRequest$loadBalancerName": "

The name of the load balancer.

", + "GetLoadBalancerRequest$loadBalancerName": "

The name of the load balancer.

", + "GetLoadBalancerTlsCertificatesRequest$loadBalancerName": "

The name of the load balancer where you stored your TLS/SSL certificate.

", "GetOperationsForResourceRequest$resourceName": "

The name of the resource for which you are requesting information.

", "GetStaticIpRequest$staticIpName": "

The name of the static IP in Lightsail.

", "ImportKeyPairRequest$keyPairName": "

The name of the key pair for which you want to import the public key.

", - "Instance$name": "

The name the user gave the instance (e.g., Amazon_Linux-1GB-Virginia-1).

", + "Instance$name": "

The name the user gave the instance (e.g., Amazon_Linux-1GB-Ohio-1).

", "Instance$sshKeyName": "

The name of the SSH key being used to connect to the instance (e.g., LightsailDefaultKeyPair).

", "InstanceAccessDetails$instanceName": "

The name of this Amazon Lightsail instance.

", + "InstanceHealthSummary$instanceName": "

The name of the Lightsail instance for which you are requesting health check data.

", "InstanceSnapshot$name": "

The name of the snapshot.

", "InstanceSnapshot$fromInstanceName": "

The instance from which the snapshot was created.

", "KeyPair$name": "

The friendly name of the SSH key pair.

", + "LoadBalancer$name": "

The name of the load balancer (e.g., my-load-balancer).

", + "LoadBalancerTlsCertificate$name": "

The name of the TLS/SSL certificate (e.g., my-certificate).

", + "LoadBalancerTlsCertificate$loadBalancerName": "

The load balancer name where your TLS/SSL certificate is attached.

", + "LoadBalancerTlsCertificateSummary$name": "

The name of the TLS/SSL certificate.

", "OpenInstancePublicPortsRequest$instanceName": "

The name of the instance for which you want to open the public ports.

", "Operation$resourceName": "

The resource name.

", + "PasswordData$keyPairName": "

The name of the key pair that you used when creating your instance. If no key pair name was specified when creating the instance, Lightsail uses the default key pair (LightsailDefaultKeyPair).

If you are using a custom key pair, you need to use your own means of decrypting your password using the ciphertext. Lightsail creates the ciphertext by encrypting your password with the public key part of this key pair.

", "PutInstancePublicPortsRequest$instanceName": "

The Lightsail instance name of the public port(s) you are setting.

", "RebootInstanceRequest$instanceName": "

The name of the instance to reboot.

", "ReleaseStaticIpRequest$staticIpName": "

The name of the static IP to delete.

", + "ResourceNameList$member": null, "StartInstanceRequest$instanceName": "

The name of the instance (a virtual private server) to start.

", - "StaticIp$name": "

The name of the static IP (e.g., StaticIP-Virginia-EXAMPLE).

", - "StaticIp$attachedTo": "

The instance where the static IP is attached (e.g., Amazon_Linux-1GB-Virginia-1).

", - "StopInstanceRequest$instanceName": "

The name of the instance (a virtual private server) to stop.

" + "StaticIp$name": "

The name of the static IP (e.g., StaticIP-Ohio-EXAMPLE).

", + "StaticIp$attachedTo": "

The instance where the static IP is attached (e.g., Amazon_Linux-1GB-Ohio-1).

", + "StopInstanceRequest$instanceName": "

The name of the instance (a virtual private server) to stop.

", + "UpdateLoadBalancerAttributeRequest$loadBalancerName": "

The name of the load balancer that you want to modify.

" + } + }, + "ResourceNameList": { + "base": null, + "refs": { + "AttachInstancesToLoadBalancerRequest$instanceNames": "

An array of strings representing the instance name(s) you want to attach to your load balancer.

", + "DetachInstancesFromLoadBalancerRequest$instanceNames": "

An array of strings containing the names of the instances you want to detach from the load balancer.

" } }, "ResourceType": { "base": null, "refs": { - "Disk$resourceType": "

The resource type of the disk.

", + "Disk$resourceType": "

The Lightsail resource type (e.g., Disk).

", + "DiskSnapshot$resourceType": "

The Lightsail resource type (e.g., DiskSnapshot).

", "Domain$resourceType": "

The resource type.

", "Instance$resourceType": "

The type of resource (usually Instance).

", "InstanceSnapshot$resourceType": "

The type of resource (usually InstanceSnapshot).

", "KeyPair$resourceType": "

The resource type (usually KeyPair).

", + "LoadBalancer$resourceType": "

The resource type (e.g., LoadBalancer.

", + "LoadBalancerTlsCertificate$resourceType": "

The resource type (e.g., LoadBalancerTlsCertificate.

", "Operation$resourceType": "

The resource type.

", "StaticIp$resourceType": "

The resource type (usually StaticIp).

" } @@ -1084,7 +1663,14 @@ "refs": { "CreateInstancesFromSnapshotRequest$instanceNames": "

The names for your new instances.

", "CreateInstancesRequest$instanceNames": "

The names to use for your new Lightsail instances. Separate multiple values using quotation marks and commas, for example: [\"MyFirstInstance\",\"MySecondInstance\"]

", - "GetActiveNamesResult$activeNames": "

The list of active names returned by the get active names request.

" + "GetActiveNamesResult$activeNames": "

The list of active names returned by the get active names request.

", + "LoadBalancerTlsCertificate$subjectAlternativeNames": "

One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website.

" + } + }, + "StringMax256": { + "base": null, + "refs": { + "UpdateLoadBalancerAttributeRequest$attributeValue": "

The value that you want to specify for the attribute name.

" } }, "UnauthenticatedException": { @@ -1112,20 +1698,35 @@ "refs": { } }, + "UpdateLoadBalancerAttributeRequest": { + "base": null, + "refs": { + } + }, + "UpdateLoadBalancerAttributeResult": { + "base": null, + "refs": { + } + }, "boolean": { "base": null, "refs": { "Blueprint$isActive": "

A Boolean value indicating whether the blueprint is active. When you update your blueprints, you will inactivate old blueprints and keep the most recent versions active.

", "Bundle$isActive": "

A Boolean value indicating whether the bundle is active.

", + "DeleteLoadBalancerTlsCertificateRequest$force": "

When true, forces the deletion of a TLS/SSL certificate.

", "Disk$isSystemDisk": "

A Boolean value indicating whether this disk is a system disk (has an operating system loaded on it).

", "Disk$isAttached": "

A Boolean value indicating whether the disk is attached.

", + "DomainEntry$isAlias": "

When true, specifies whether the domain entry is an alias used by the Lightsail load balancer.

", "GetBlueprintsRequest$includeInactive": "

A Boolean value indicating whether to include inactive results in your request.

", "GetBundlesRequest$includeInactive": "

A Boolean value that indicates whether to include inactive bundle results in your request.

", - "GetRegionsRequest$includeAvailabilityZones": "

A Boolean value indicating whether to also include Availability Zones in your get regions request. Availability Zones are indicated with a letter: e.g., us-east-1a.

", + "GetRegionsRequest$includeAvailabilityZones": "

A Boolean value indicating whether to also include Availability Zones in your get regions request. Availability Zones are indicated with a letter: e.g., us-east-2a.

", "Instance$isStaticIp": "

A Boolean value indicating whether this instance has a static IP assigned to it.

", "IsVpcPeeredResult$isPeered": "

Returns true if the Lightsail VPC is peered; otherwise, false.

", + "LoadBalancerTlsCertificate$isAttached": "

When true, the TLS/SSL certificate is attached to the Lightsail load balancer.

", + "LoadBalancerTlsCertificateSummary$isAttached": "

When true, the TLS/SSL certificate is attached to the Lightsail load balancer.

", "Operation$isTerminal": "

A Boolean value indicating whether the operation is terminal.

", - "StaticIp$isAttached": "

A Boolean value indicating whether the static IP is attached.

" + "StaticIp$isAttached": "

A Boolean value indicating whether the static IP is attached.

", + "StopInstanceRequest$force": "

When set to True, forces a Lightsail instance that is stuck in a stopping state to stop.

Only use the force parameter if your instance is stuck in the stopping state. In any other state, your instance should stop normally without adding this parameter to your API request.

" } }, "double": { @@ -1149,17 +1750,21 @@ "integer": { "base": null, "refs": { - "Blueprint$minPower": "

The minimum machine size required to run this blueprint. 0 indicates that the blueprint runs on all instances.

", + "Blueprint$minPower": "

The minimum bundle power required to run this blueprint. For example, you need a bundle with a power value of 500 or more to create an instance that uses a blueprint with a minimum power value of 500. 0 indicates that the blueprint runs on all instance sizes.

", "Bundle$cpuCount": "

The number of vCPUs included in the bundle (e.g., 2).

", "Bundle$diskSizeInGb": "

The size of the SSD (e.g., 30).

", - "Bundle$power": "

The power of the bundle (e.g., 500).

", + "Bundle$power": "

A numeric value that represents the power of the bundle (e.g., 500). You can use the bundle's power value in conjunction with a blueprint's minimum power value to determine whether the blueprint will run on the bundle. For example, you need a bundle with a power value of 500 or more to create an instance that uses a blueprint with a minimum power value of 500.

", "Bundle$transferPerMonthInGb": "

The data transfer rate per month in GB (e.g., 2000).

", + "CreateDiskFromSnapshotRequest$sizeInGb": "

The size of the disk in GB (e.g., 32).

", + "CreateDiskRequest$sizeInGb": "

The size of the disk in GB (e.g., 32).

", "Disk$sizeInGb": "

The size of the disk in GB.

", - "Disk$gbInUse": "

The number of GB in use by the disk.

", "Disk$iops": "

The input/output operations per second (IOPS) of the disk.

", + "Disk$gbInUse": "

(Deprecated) The number of GB in use by the disk.

In releases prior to November 14, 2017, this parameter was not included in the API response. It is now deprecated.

", + "DiskSnapshot$sizeInGb": "

The size of the disk in GB.

", "InstanceHardware$cpuCount": "

The number of vCPUs the instance has.

", "InstanceSnapshot$sizeInGb": "

The size in GB of the SSD.

", "InstanceState$code": "

The status code for the instance.

", + "LoadBalancer$instancePort": "

The instance port where the load balancer is listening.

", "MonthlyTransfer$gbPerMonthAllocated": "

The amount allocated per month (in GB).

" } }, @@ -1181,14 +1786,16 @@ "Blueprint$licenseUrl": "

The end-user license agreement URL for the image or blueprint.

", "Bundle$instanceType": "

The Amazon EC2 instance type (e.g., t2.micro).

", "Bundle$name": "

A friendly name for the bundle (e.g., Micro).

", - "CreateInstancesFromSnapshotRequest$availabilityZone": "

The Availability Zone where you want to create your instances. Use the following formatting: us-east-1a (case sensitive). You can get a list of availability zones by using the get regions operation. Be sure to add the include availability zones parameter to your request.

", - "CreateInstancesFromSnapshotRequest$userData": "

You can create a launch script that configures a server with additional user data. For example, apt-get –y update.

Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use yum, Debian and Ubuntu use apt-get, and FreeBSD uses pkg. For a complete list, see the Dev Guide.

", - "CreateInstancesRequest$availabilityZone": "

The Availability Zone in which to create your instance. Use the following format: us-east-1a (case sensitive). You can get a list of availability zones by using the get regions operation. Be sure to add the include availability zones parameter to your request.

", - "CreateInstancesRequest$userData": "

A launch script you can create that configures a server with additional user data. For example, you might want to run apt-get –y update.

Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use yum, Debian and Ubuntu use apt-get, and FreeBSD uses pkg. For a complete list, see the Dev Guide.

", + "CreateInstancesFromSnapshotRequest$availabilityZone": "

The Availability Zone where you want to create your instances. Use the following formatting: us-east-2a (case sensitive). You can get a list of availability zones by using the get regions operation. Be sure to add the include availability zones parameter to your request.

", + "CreateInstancesFromSnapshotRequest$userData": "

You can create a launch script that configures a server with additional user data. For example, apt-get -y update.

Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use yum, Debian and Ubuntu use apt-get, and FreeBSD uses pkg. For a complete list, see the Dev Guide.

", + "CreateInstancesRequest$availabilityZone": "

The Availability Zone in which to create your instance. Use the following format: us-east-2a (case sensitive). You can get a list of availability zones by using the get regions operation. Be sure to add the include availability zones parameter to your request.

", + "CreateInstancesRequest$userData": "

A launch script you can create that configures a server with additional user data. For example, you might want to run apt-get -y update.

Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use yum, Debian and Ubuntu use apt-get, and FreeBSD uses pkg. For a complete list, see the Dev Guide.

", + "CreateLoadBalancerRequest$healthCheckPath": "

The path you provided to perform the load balancer health check. If you didn't specify a health check path, Lightsail uses the root path of your website (e.g., \"/\").

", "Disk$supportCode": "

The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.

", "Disk$path": "

The disk path.

", - "Disk$attachedTo": "

The resources to which the disk is attached.

", - "Disk$attachmentState": "

The attachment state of the disk.

", + "Disk$attachmentState": "

(Deprecated) The attachment state of the disk.

In releases prior to November 14, 2017, this parameter returned attached for system disks in the API response. It is now deprecated, but still included in the response. Use isAttached instead.

", + "DiskSnapshot$supportCode": "

The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.

", + "DiskSnapshot$progress": "

The progress of the disk snapshot operation.

", "Domain$supportCode": "

The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.

", "DomainEntry$target": "

The target AWS name server (e.g., ns-111.awsdns-22.com.).

", "DomainEntryOptions$value": null, @@ -1198,6 +1805,10 @@ "GetBlueprintsResult$nextPageToken": "

A token used for advancing to the next page of results from your get blueprints request.

", "GetBundlesRequest$pageToken": "

A token used for advancing to the next page of results from your get bundles request.

", "GetBundlesResult$nextPageToken": "

A token used for advancing to the next page of results from your get active names request.

", + "GetDiskSnapshotsRequest$pageToken": "

A token used for advancing to the next page of results from your GetDiskSnapshots request.

", + "GetDiskSnapshotsResult$nextPageToken": "

A token used for advancing to the next page of results from your GetDiskSnapshots request.

", + "GetDisksRequest$pageToken": "

A token used for advancing to the next page of results from your GetDisks request.

", + "GetDisksResult$nextPageToken": "

A token used for advancing to the next page of results from your GetDisks request.

", "GetDomainsRequest$pageToken": "

A token used for advancing to the next page of results from your get domains request.

", "GetDomainsResult$nextPageToken": "

A token used for advancing to the next page of results from your get active names request.

", "GetInstanceSnapshotsRequest$pageToken": "

A token used for advancing to the next page of results from your get instance snapshots request.

", @@ -1206,6 +1817,8 @@ "GetInstancesResult$nextPageToken": "

A token used for advancing to the next page of results from your get instances request.

", "GetKeyPairsRequest$pageToken": "

A token used for advancing to the next page of results from your get key pairs request.

", "GetKeyPairsResult$nextPageToken": "

A token used for advancing to the next page of results from your get key pairs request.

", + "GetLoadBalancersRequest$pageToken": "

A token used for paginating the results from your GetLoadBalancers request.

", + "GetLoadBalancersResult$nextPageToken": "

A token used for advancing to the next page of results from your GetLoadBalancers request.

", "GetOperationsForResourceRequest$pageToken": "

A token used for advancing to the next page of results from your get operations for resource request.

", "GetOperationsForResourceResult$nextPageCount": "

(Deprecated) Returns the number of pages of results that remain.

In releases prior to June 12, 2017, this parameter returned null by the API. It is now deprecated, and the API returns the nextPageToken parameter instead.

", "GetOperationsForResourceResult$nextPageToken": "

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

", @@ -1215,7 +1828,7 @@ "GetStaticIpsResult$nextPageToken": "

A token used for advancing to the next page of results from your get static IPs request.

", "Instance$supportCode": "

The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.

", "InstanceAccessDetails$certKey": "

For SSH access, the public key to use when accessing your instance For OpenSSH clients (e.g., command line SSH), you should save this value to tempkey-cert.pub.

", - "InstanceAccessDetails$password": "

For RDP access, the temporary password of the Amazon EC2 instance.

", + "InstanceAccessDetails$password": "

For RDP access, the password for your Amazon Lightsail instance. Password will be an empty string if the password for your new instance is not ready yet. When you create an instance, it can take up to 15 minutes for the instance to be ready.

If you create an instance using any key pair other than the default (LightsailDefaultKeyPair), password will always be an empty string.

If you change the Administrator password on the instance, Lightsail will continue to return the original password value. When accessing the instance using RDP, you need to manually enter the Administrator password after changing it from the default.

", "InstanceAccessDetails$privateKey": "

For SSH access, the temporary private key. For OpenSSH clients (e.g., command line SSH), you should save this value to tempkey).

", "InstanceAccessDetails$username": "

The user name to use when logging in to the Amazon Lightsail instance.

", "InstancePortInfo$accessFrom": "

The location from which access is allowed (e.g., Anywhere (0.0.0.0/0)).

", @@ -1230,21 +1843,25 @@ "InvalidInputException$message": null, "InvalidInputException$tip": null, "KeyPair$supportCode": "

The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.

", + "LoadBalancer$supportCode": "

The support code. Include this code in your email to support when you have questions about your Lightsail load balancer. This code enables our support team to look up your Lightsail information more easily.

", + "LoadBalancerConfigurationOptions$value": null, + "LoadBalancerTlsCertificate$supportCode": "

The support code. Include this code in your email to support when you have questions about your Lightsail load balancer or TLS/SSL certificate. This code enables our support team to look up your Lightsail information more easily.

", "NotFoundException$code": null, "NotFoundException$docs": null, "NotFoundException$message": null, "NotFoundException$tip": null, - "Operation$operationDetails": "

Details about the operation (e.g., Debian-1GB-Virginia-1).

", + "Operation$operationDetails": "

Details about the operation (e.g., Debian-1GB-Ohio-1).

", "Operation$errorCode": "

The error code.

", "Operation$errorDetails": "

The error details.

", "OperationFailureException$code": null, "OperationFailureException$docs": null, "OperationFailureException$message": null, "OperationFailureException$tip": null, + "PasswordData$ciphertext": "

The encrypted password. Ciphertext will be an empty string if access to your new instance is not ready yet. When you create an instance, it can take up to 15 minutes for the instance to be ready.

If you use the default key pair (LightsailDefaultKeyPair), the decrypted password will be available in the password field.

If you are using a custom key pair, you need to use your own means of decryption.

If you change the Administrator password on the instance, Lightsail will continue to return the original ciphertext value. When accessing the instance using RDP, you need to manually enter the Administrator password after changing it from the default.

", "Region$continentCode": "

The continent code (e.g., NA, meaning North America).

", "Region$description": "

The description of the AWS Region (e.g., This region is recommended to serve users in the eastern United States and eastern Canada).

", - "Region$displayName": "

The display name (e.g., Virginia).

", - "ResourceLocation$availabilityZone": "

The Availability Zone. Follows the format us-east-1a (case-sensitive).

", + "Region$displayName": "

The display name (e.g., Ohio).

", + "ResourceLocation$availabilityZone": "

The Availability Zone. Follows the format us-east-2a (case-sensitive).

", "ServiceException$code": null, "ServiceException$docs": null, "ServiceException$message": null, @@ -1262,6 +1879,8 @@ "refs": { "GetInstanceMetricDataRequest$startTime": "

The start time of the time period.

", "GetInstanceMetricDataRequest$endTime": "

The end time of the time period.

", + "GetLoadBalancerMetricDataRequest$startTime": "

The start time of the period.

", + "GetLoadBalancerMetricDataRequest$endTime": "

The end time of the period.

", "MetricDatapoint$timestamp": "

The timestamp (e.g., 1479816991.349).

" } } diff --git a/models/apis/logs/2014-03-28/api-2.json b/models/apis/logs/2014-03-28/api-2.json index 7fbc9874a41..ddc47eaa9b2 100644 --- a/models/apis/logs/2014-03-28/api-2.json +++ b/models/apis/logs/2014-03-28/api-2.json @@ -11,6 +11,20 @@ "uid":"logs-2014-03-28" }, "operations":{ + "AssociateKmsKey":{ + "name":"AssociateKmsKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateKmsKeyRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationAbortedException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "CancelExportTask":{ "name":"CancelExportTask", "http":{ @@ -127,6 +141,19 @@ {"shape":"ServiceUnavailableException"} ] }, + "DeleteResourcePolicy":{ + "name":"DeleteResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteResourcePolicyRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "DeleteRetentionPolicy":{ "name":"DeleteRetentionPolicy", "http":{ @@ -222,6 +249,19 @@ {"shape":"ServiceUnavailableException"} ] }, + "DescribeResourcePolicies":{ + "name":"DescribeResourcePolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeResourcePoliciesRequest"}, + "output":{"shape":"DescribeResourcePoliciesResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "DescribeSubscriptionFilters":{ "name":"DescribeSubscriptionFilters", "http":{ @@ -236,6 +276,20 @@ {"shape":"ServiceUnavailableException"} ] }, + "DisassociateKmsKey":{ + "name":"DisassociateKmsKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateKmsKeyRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationAbortedException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "FilterLogEvents":{ "name":"FilterLogEvents", "http":{ @@ -335,6 +389,20 @@ {"shape":"ServiceUnavailableException"} ] }, + "PutResourcePolicy":{ + "name":"PutResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutResourcePolicyRequest"}, + "output":{"shape":"PutResourcePolicyResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "PutRetentionPolicy":{ "name":"PutRetentionPolicy", "http":{ @@ -407,6 +475,17 @@ "min":1 }, "Arn":{"type":"string"}, + "AssociateKmsKeyRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "kmsKeyId" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "kmsKeyId":{"shape":"KmsKeyId"} + } + }, "CancelExportTaskRequest":{ "type":"structure", "required":["taskId"], @@ -443,6 +522,7 @@ "required":["logGroupName"], "members":{ "logGroupName":{"shape":"LogGroupName"}, + "kmsKeyId":{"shape":"KmsKeyId"}, "tags":{"shape":"Tags"} } }, @@ -502,6 +582,12 @@ "filterName":{"shape":"FilterName"} } }, + "DeleteResourcePolicyRequest":{ + "type":"structure", + "members":{ + "policyName":{"shape":"PolicyName"} + } + }, "DeleteRetentionPolicyRequest":{ "type":"structure", "required":["logGroupName"], @@ -609,6 +695,20 @@ "nextToken":{"shape":"NextToken"} } }, + "DescribeResourcePoliciesRequest":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"}, + "limit":{"shape":"DescribeLimit"} + } + }, + "DescribeResourcePoliciesResponse":{ + "type":"structure", + "members":{ + "resourcePolicies":{"shape":"ResourcePolicies"}, + "nextToken":{"shape":"NextToken"} + } + }, "DescribeSubscriptionFiltersRequest":{ "type":"structure", "required":["logGroupName"], @@ -651,6 +751,13 @@ "type":"list", "member":{"shape":"Destination"} }, + "DisassociateKmsKeyRequest":{ + "type":"structure", + "required":["logGroupName"], + "members":{ + "logGroupName":{"shape":"LogGroupName"} + } + }, "Distribution":{ "type":"string", "enum":[ @@ -849,6 +956,10 @@ }, "exception":true }, + "KmsKeyId":{ + "type":"string", + "max":256 + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -877,7 +988,8 @@ "retentionInDays":{"shape":"Days"}, "metricFilterCount":{"shape":"FilterCount"}, "arn":{"shape":"Arn"}, - "storedBytes":{"shape":"StoredBytes"} + "storedBytes":{"shape":"StoredBytes"}, + "kmsKeyId":{"shape":"KmsKeyId"} } }, "LogGroupName":{ @@ -1003,6 +1115,12 @@ "type":"list", "member":{"shape":"OutputLogEvent"} }, + "PolicyDocument":{ + "type":"string", + "max":5120, + "min":1 + }, + "PolicyName":{"type":"string"}, "PutDestinationPolicyRequest":{ "type":"structure", "required":[ @@ -1069,6 +1187,19 @@ "metricTransformations":{"shape":"MetricTransformations"} } }, + "PutResourcePolicyRequest":{ + "type":"structure", + "members":{ + "policyName":{"shape":"PolicyName"}, + "policyDocument":{"shape":"PolicyDocument"} + } + }, + "PutResourcePolicyResponse":{ + "type":"structure", + "members":{ + "resourcePolicy":{"shape":"ResourcePolicy"} + } + }, "PutRetentionPolicyRequest":{ "type":"structure", "required":[ @@ -1117,6 +1248,18 @@ }, "exception":true }, + "ResourcePolicies":{ + "type":"list", + "member":{"shape":"ResourcePolicy"} + }, + "ResourcePolicy":{ + "type":"structure", + "members":{ + "policyName":{"shape":"PolicyName"}, + "policyDocument":{"shape":"PolicyDocument"}, + "lastUpdatedTime":{"shape":"Timestamp"} + } + }, "RoleArn":{ "type":"string", "min":1 diff --git a/models/apis/logs/2014-03-28/docs-2.json b/models/apis/logs/2014-03-28/docs-2.json index 4b5fc5670d8..0ae429da051 100644 --- a/models/apis/logs/2014-03-28/docs-2.json +++ b/models/apis/logs/2014-03-28/docs-2.json @@ -1,32 +1,37 @@ { "version": "2.0", - "service": "

You can use Amazon CloudWatch Logs to monitor, store, and access your log files from EC2 instances, Amazon CloudTrail, or other sources. You can then retrieve the associated log data from CloudWatch Logs using the Amazon CloudWatch console, the CloudWatch Logs commands in the AWS CLI, the CloudWatch Logs API, or the CloudWatch Logs SDK.

You can use CloudWatch Logs to:

  • Monitor Logs from Amazon EC2 Instances in Real-time: You can use CloudWatch Logs to monitor applications and systems using log data. For example, CloudWatch Logs can track the number of errors that occur in your application logs and send you a notification whenever the rate of errors exceeds a threshold you specify. CloudWatch Logs uses your log data for monitoring; so, no code changes are required. For example, you can monitor application logs for specific literal terms (such as \"NullReferenceException\") or count the number of occurrences of a literal term at a particular position in log data (such as \"404\" status codes in an Apache access log). When the term you are searching for is found, CloudWatch Logs reports the data to a Amazon CloudWatch metric that you specify.

  • Monitor Amazon CloudTrail Logged Events: You can create alarms in Amazon CloudWatch and receive notifications of particular API activity as captured by CloudTrail and use the notification to perform troubleshooting.

  • Archive Log Data: You can use CloudWatch Logs to store your log data in highly durable storage. You can change the log retention setting so that any log events older than this setting are automatically deleted. The CloudWatch Logs agent makes it easy to quickly send both rotated and non-rotated log data off of a host and into the log service. You can then access the raw log data when you need it.

", + "service": "

You can use Amazon CloudWatch Logs to monitor, store, and access your log files from Amazon EC2 instances, AWS CloudTrail, or other sources. You can then retrieve the associated log data from CloudWatch Logs using the CloudWatch console, CloudWatch Logs commands in the AWS CLI, CloudWatch Logs API, or CloudWatch Logs SDK.

You can use CloudWatch Logs to:

  • Monitor logs from EC2 instances in real-time: You can use CloudWatch Logs to monitor applications and systems using log data. For example, CloudWatch Logs can track the number of errors that occur in your application logs and send you a notification whenever the rate of errors exceeds a threshold that you specify. CloudWatch Logs uses your log data for monitoring; so, no code changes are required. For example, you can monitor application logs for specific literal terms (such as \"NullReferenceException\") or count the number of occurrences of a literal term at a particular position in log data (such as \"404\" status codes in an Apache access log). When the term you are searching for is found, CloudWatch Logs reports the data to a CloudWatch metric that you specify.

  • Monitor AWS CloudTrail logged events: You can create alarms in CloudWatch and receive notifications of particular API activity as captured by CloudTrail and use the notification to perform troubleshooting.

  • Archive log data: You can use CloudWatch Logs to store your log data in highly durable storage. You can change the log retention setting so that any log events older than this setting are automatically deleted. The CloudWatch Logs agent makes it easy to quickly send both rotated and non-rotated log data off of a host and into the log service. You can then access the raw log data when you need it.

", "operations": { + "AssociateKmsKey": "

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

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

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

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

", "CancelExportTask": "

Cancels the specified export task.

The task must be in the PENDING or RUNNING state.

", - "CreateExportTask": "

Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket.

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

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

", - "CreateLogGroup": "

Creates a log group with the specified name.

You can create up to 5000 log groups per account.

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

  • Log group names must be unique within a region for an AWS account.

  • Log group names can be between 1 and 512 characters long.

  • Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period).

", + "CreateExportTask": "

Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket.

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

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

", + "CreateLogGroup": "

Creates a log group with the specified name.

You can create up to 5000 log groups per account.

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

  • Log group names must be unique within a region for an AWS account.

  • Log group names can be between 1 and 512 characters long.

  • Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period).

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

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

", "CreateLogStream": "

Creates a log stream for the specified log group.

There is no limit on the number of log streams that you can create for a log group.

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

  • Log stream names must be unique within the log group.

  • Log stream names can be between 1 and 512 characters long.

  • The ':' (colon) and '*' (asterisk) characters are not allowed.

", "DeleteDestination": "

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

", "DeleteLogGroup": "

Deletes the specified log group and permanently deletes all the archived log events associated with the log group.

", "DeleteLogStream": "

Deletes the specified log stream and permanently deletes all the archived log events associated with the log stream.

", "DeleteMetricFilter": "

Deletes the specified metric filter.

", + "DeleteResourcePolicy": "

Deletes a resource policy from this account. This revokes the access of the identities in that policy to put log events to this account.

", "DeleteRetentionPolicy": "

Deletes the specified retention policy.

Log events do not expire if they belong to log groups without a retention policy.

", "DeleteSubscriptionFilter": "

Deletes the specified subscription filter.

", "DescribeDestinations": "

Lists all your destinations. The results are ASCII-sorted by destination name.

", "DescribeExportTasks": "

Lists the specified export tasks. You can list all your export tasks or filter the results based on task ID or task status.

", "DescribeLogGroups": "

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

", "DescribeLogStreams": "

Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered.

This operation has a limit of five transactions per second, after which transactions are throttled.

", - "DescribeMetricFilters": "

Lists the specified metric filters. You can list all the metric filters or filter the results by log name, prefix, metric name, and metric namespace. The results are ASCII-sorted by filter name.

", + "DescribeMetricFilters": "

Lists the specified metric filters. You can list all the metric filters or filter the results by log name, prefix, metric name, or metric namespace. The results are ASCII-sorted by filter name.

", + "DescribeResourcePolicies": "

Lists the resource policies in this account.

", "DescribeSubscriptionFilters": "

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

", - "FilterLogEvents": "

Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream.

By default, this operation returns as many log events as can fit in 1MB (up to 10,000 log events), or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call.

", - "GetLogEvents": "

Lists log events from the specified log stream. You can list all the log events or filter using a time range.

By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). If the results include tokens, there are more log events available. You can get additional log events by specifying one of the tokens in a subsequent call.

", - "ListTagsLogGroup": "

Lists the tags for the specified log group.

To add tags, use TagLogGroup. To remove tags, use UntagLogGroup.

", - "PutDestination": "

Creates or updates a destination. A destination encapsulates a physical resource (such as a Kinesis stream) and enables you to subscribe to a real-time stream of log events of a different account, ingested using PutLogEvents. Currently, the only supported physical resource is a Amazon Kinesis stream belonging to the same account as the destination.

A destination controls what is written to its Amazon Kinesis stream through an access policy. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination.

", + "DisassociateKmsKey": "

Disassociates the associated AWS Key Management Service (AWS KMS) customer master key (CMK) from the specified log group.

After the AWS KMS CMK is disassociated from the log group, AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires permissions for the CMK whenever the encrypted data is requested.

Note that it can take up to 5 minutes for this operation to take effect.

", + "FilterLogEvents": "

Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream.

By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events), or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call.

", + "GetLogEvents": "

Lists log events from the specified log stream. You can list all the log events or filter using a time range.

By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call.

", + "ListTagsLogGroup": "

Lists the tags for the specified log group.

", + "PutDestination": "

Creates or updates a destination. A destination encapsulates a physical resource (such as an Amazon Kinesis stream) and enables you to subscribe to a real-time stream of log events for a different account, ingested using PutLogEvents. Currently, the only supported physical resource is a Kinesis stream belonging to the same account as the destination.

Through an access policy, a destination controls what is written to its Kinesis stream. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination.

", "PutDestinationPolicy": "

Creates or updates an access policy associated with an existing destination. An access policy is an IAM policy document that is used to authorize claims to register a subscription filter against a given destination.

", - "PutLogEvents": "

Uploads a batch of log events to the specified log stream.

You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token using DescribeLogStreams.

The batch of events must satisfy the following constraints:

  • The maximum batch size is 1,048,576 bytes, and this size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event.

  • None of the log events in the batch can be more than 2 hours in the future.

  • None of the log events in the batch can be older than 14 days or the retention period of the log group.

  • The log events in the batch must be in chronological ordered by their timestamp (the time the event occurred, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC).

  • The maximum number of log events in a batch is 10,000.

  • A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails.

", + "PutLogEvents": "

Uploads a batch of log events to the specified log stream.

You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token using DescribeLogStreams. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls may be successful, or one may be rejected.

The batch of events must satisfy the following constraints:

  • The maximum batch size is 1,048,576 bytes, and this size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event.

  • None of the log events in the batch can be more than 2 hours in the future.

  • None of the log events in the batch can be older than 14 days or the retention period of the log group.

  • The log events in the batch must be in chronological ordered by their time stamp (the time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC).

  • The maximum number of log events in a batch is 10,000.

  • A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails.

", "PutMetricFilter": "

Creates or updates a metric filter and associates it with the specified log group. Metric filters allow you to configure rules to extract metric data from log events ingested through PutLogEvents.

The maximum number of metric filters that can be associated with a log group is 100.

", - "PutRetentionPolicy": "

Sets the retention of the specified log group. A retention policy allows you to configure the number of days you want to retain log events in the specified log group.

", - "PutSubscriptionFilter": "

Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. Currently, the supported destinations are:

  • An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery.

  • A logical destination that belongs to a different account, for cross-account delivery.

  • An Amazon Kinesis Firehose stream that belongs to the same account as the subscription filter, for same-account delivery.

  • An AWS Lambda function that belongs to the same account as the subscription filter, for same-account delivery.

There can only be one subscription filter associated with a log group. If you are updating an existing filter, you must specify the correct name in filterName. Otherwise, the call will fail because you cannot associate a second filter with a log group.

", + "PutResourcePolicy": "

Creates or updates a resource policy allowing other AWS services to put log events to this account, such as Amazon Route 53. An account can have up to 50 resource policies per region.

", + "PutRetentionPolicy": "

Sets the retention of the specified log group. A retention policy allows you to configure the number of days for which to retain log events in the specified log group.

", + "PutSubscriptionFilter": "

Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. Currently, the supported destinations are:

  • An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery.

  • A logical destination that belongs to a different account, for cross-account delivery.

  • An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.

  • An AWS Lambda function that belongs to the same account as the subscription filter, for same-account delivery.

There can only be one subscription filter associated with a log group. If you are updating an existing filter, you must specify the correct name in filterName. Otherwise, the call fails because you cannot associate a second filter with a log group.

", "TagLogGroup": "

Adds or updates the specified tags for the specified log group.

To list the tags for a log group, use ListTagsLogGroup. To remove tags, use UntagLogGroup.

For more information about tags, see Tag Log Groups in Amazon CloudWatch Logs in the Amazon CloudWatch Logs User Guide.

", "TestMetricFilter": "

Tests the filter pattern of a metric filter against a sample of log event messages. You can use this operation to validate the correctness of a metric filter pattern.

", "UntagLogGroup": "

Removes the specified tags from the specified log group.

To list the tags for a log group, use ListTagsLogGroup. To add tags, use UntagLogGroup.

" @@ -47,6 +52,11 @@ "LogStream$arn": "

The Amazon Resource Name (ARN) of the log stream.

" } }, + "AssociateKmsKeyRequest": { + "base": null, + "refs": { + } + }, "CancelExportTaskRequest": { "base": null, "refs": { @@ -110,6 +120,11 @@ "refs": { } }, + "DeleteResourcePolicyRequest": { + "base": null, + "refs": { + } + }, "DeleteRetentionPolicyRequest": { "base": null, "refs": { @@ -154,6 +169,7 @@ "DescribeLogGroupsRequest$limit": "

The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

", "DescribeLogStreamsRequest$limit": "

The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

", "DescribeMetricFiltersRequest$limit": "

The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

", + "DescribeResourcePoliciesRequest$limit": "

The maximum number of resource policies to be displayed with one call of this API.

", "DescribeSubscriptionFiltersRequest$limit": "

The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

" } }, @@ -187,6 +203,16 @@ "refs": { } }, + "DescribeResourcePoliciesRequest": { + "base": null, + "refs": { + } + }, + "DescribeResourcePoliciesResponse": { + "base": null, + "refs": { + } + }, "DescribeSubscriptionFiltersRequest": { "base": null, "refs": { @@ -207,7 +233,7 @@ "DestinationArn": { "base": null, "refs": { - "PutSubscriptionFilterRequest$destinationArn": "

The ARN of the destination to deliver matching log events to. Currently, the supported destinations are:

  • An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery.

  • A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery.

  • An Amazon Kinesis Firehose stream belonging to the same account as the subscription filter, for same-account delivery.

  • An AWS Lambda function belonging to the same account as the subscription filter, for same-account delivery.

", + "PutSubscriptionFilterRequest$destinationArn": "

The ARN of the destination to deliver matching log events to. Currently, the supported destinations are:

  • An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery.

  • A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery.

  • An Amazon Kinesis Firehose delivery stream belonging to the same account as the subscription filter, for same-account delivery.

  • An AWS Lambda function belonging to the same account as the subscription filter, for same-account delivery.

", "SubscriptionFilter$destinationArn": "

The Amazon Resource Name (ARN) of the destination.

" } }, @@ -227,11 +253,16 @@ "DescribeDestinationsResponse$destinations": "

The destinations.

" } }, - "Distribution": { + "DisassociateKmsKeyRequest": { "base": null, "refs": { - "PutSubscriptionFilterRequest$distribution": "

The method used to distribute log data to the destination, when the destination is an Amazon Kinesis stream. By default, log data is grouped by log stream. For a more even distribution, you can group log data randomly.

", - "SubscriptionFilter$distribution": "

The method used to distribute log data to the destination, when the destination is an Amazon Kinesis stream.

" + } + }, + "Distribution": { + "base": "

The method used to distribute log data to the destination, which can be either random or grouped by log stream.

", + "refs": { + "PutSubscriptionFilterRequest$distribution": "

The method used to distribute log data to the destination. By default log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream.

", + "SubscriptionFilter$distribution": null } }, "EventId": { @@ -260,7 +291,7 @@ "base": null, "refs": { "FilterLogEventsRequest$limit": "

The maximum number of events to return. The default is 10,000 events.

", - "GetLogEventsRequest$limit": "

The maximum number of log events returned. If you don't specify a value, the maximum is as many log events as can fit in a response size of 1MB, up to 10,000 log events.

" + "GetLogEventsRequest$limit": "

The maximum number of log events returned. If you don't specify a value, the maximum is as many log events as can fit in a response size of 1 MB, up to 10,000 log events.

" } }, "ExportDestinationBucket": { @@ -361,12 +392,12 @@ "DescribeSubscriptionFiltersRequest$filterNamePrefix": "

The prefix to match. If you don't specify a value, no prefix filter is applied.

", "MetricFilter$filterName": "

The name of the metric filter.

", "PutMetricFilterRequest$filterName": "

A name for the metric filter.

", - "PutSubscriptionFilterRequest$filterName": "

A name for the subscription filter. If you are updating an existing filter, you must specify the correct name in filterName. Otherwise, the call will fail because you cannot associate a second filter with a log group. To find the name of the filter currently associated with a log group, use DescribeSubscriptionFilters.

", + "PutSubscriptionFilterRequest$filterName": "

A name for the subscription filter. If you are updating an existing filter, you must specify the correct name in filterName. Otherwise, the call fails because you cannot associate a second filter with a log group. To find the name of the filter currently associated with a log group, use DescribeSubscriptionFilters.

", "SubscriptionFilter$filterName": "

The name of the subscription filter.

" } }, "FilterPattern": { - "base": "

A symbolic description of how CloudWatch Logs should interpret the data in each log event. For example, a log event may contain timestamps, IP addresses, strings, and so on. You use the filter pattern to specify what to look for in the log event message.

", + "base": "

A symbolic description of how CloudWatch Logs should interpret the data in each log event. For example, a log event may contain time stamps, IP addresses, strings, and so on. You use the filter pattern to specify what to look for in the log event message.

", "refs": { "FilterLogEventsRequest$filterPattern": "

The filter pattern to use. If not provided, all the events are matched.

", "MetricFilter$filterPattern": null, @@ -419,7 +450,7 @@ "Interleaved": { "base": null, "refs": { - "FilterLogEventsRequest$interleaved": "

If the value is true, the operation makes a best effort to provide responses that contain events from multiple log streams within the log group interleaved in a single response. If the value is false all the matched log events in the first log stream are searched first, then those in the next log stream, and so on. The default is false.

" + "FilterLogEventsRequest$interleaved": "

If the value is true, the operation makes a best effort to provide responses that contain events from multiple log streams within the log group, interleaved in a single response. If the value is false, all the matched log events in the first log stream are searched first, then those in the next log stream, and so on. The default is false.

" } }, "InvalidOperationException": { @@ -437,6 +468,14 @@ "refs": { } }, + "KmsKeyId": { + "base": null, + "refs": { + "AssociateKmsKeyRequest$kmsKeyId": "

The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. For more information, see Amazon Resource Names - AWS Key Management Service (AWS KMS).

", + "CreateLogGroupRequest$kmsKeyId": "

The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. For more information, see Amazon Resource Names - AWS Key Management Service (AWS KMS).

", + "LogGroup$kmsKeyId": "

The Amazon Resource Name (ARN) of the CMK to use when encrypting log data.

" + } + }, "LimitExceededException": { "base": "

You have reached the maximum number of resources that can be created.

", "refs": { @@ -469,6 +508,7 @@ "LogGroupName": { "base": null, "refs": { + "AssociateKmsKeyRequest$logGroupName": "

The name of the log group.

", "CreateExportTaskRequest$logGroupName": "

The name of the log group.

", "CreateLogGroupRequest$logGroupName": "

The name of the log group.

", "CreateLogStreamRequest$logGroupName": "

The name of the log group.

", @@ -481,6 +521,7 @@ "DescribeLogStreamsRequest$logGroupName": "

The name of the log group.

", "DescribeMetricFiltersRequest$logGroupName": "

The name of the log group.

", "DescribeSubscriptionFiltersRequest$logGroupName": "

The name of the log group.

", + "DisassociateKmsKeyRequest$logGroupName": "

The name of the log group.

", "ExportTask$logGroupName": "

The name of the log group from which logs data was exported.

", "FilterLogEventsRequest$logGroupName": "

The name of the log group.

", "GetLogEventsRequest$logGroupName": "

The name of the log group.

", @@ -514,7 +555,7 @@ "CreateExportTaskRequest$logStreamNamePrefix": "

Export only log streams that match the provided prefix. If you don't specify a value, no prefix filter is applied.

", "CreateLogStreamRequest$logStreamName": "

The name of the log stream.

", "DeleteLogStreamRequest$logStreamName": "

The name of the log stream.

", - "DescribeLogStreamsRequest$logStreamNamePrefix": "

The prefix to match.

You cannot specify this parameter if orderBy is LastEventTime.

", + "DescribeLogStreamsRequest$logStreamNamePrefix": "

The prefix to match.

iIf orderBy is LastEventTime,you cannot specify this parameter.

", "FilteredLogEvent$logStreamName": "

The name of the log stream this event belongs to.

", "GetLogEventsRequest$logStreamName": "

The name of the log stream.

", "InputLogStreamNames$member": null, @@ -562,7 +603,7 @@ "MetricName": { "base": "

The name of the CloudWatch metric to which the monitored log information should be published. For example, you may publish to a metric called ErrorCount.

", "refs": { - "DescribeMetricFiltersRequest$metricName": "

The name of the CloudWatch metric.

", + "DescribeMetricFiltersRequest$metricName": null, "MetricTransformation$metricName": "

The name of the CloudWatch metric.

" } }, @@ -574,7 +615,7 @@ } }, "MetricTransformation": { - "base": "

Indicates how to transform ingested log events into metric data in a CloudWatch metric.

", + "base": "

Indicates how to transform ingested log events in to metric data in a CloudWatch metric.

", "refs": { "MetricTransformations$member": null } @@ -583,7 +624,7 @@ "base": null, "refs": { "MetricFilter$metricTransformations": "

The metric transformations.

", - "PutMetricFilterRequest$metricTransformations": "

A collection of information needed to define how metric data gets emitted.

" + "PutMetricFilterRequest$metricTransformations": "

A collection of information that defines how metric data gets emitted.

" } }, "MetricValue": { @@ -605,6 +646,8 @@ "DescribeLogStreamsResponse$nextToken": null, "DescribeMetricFiltersRequest$nextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", "DescribeMetricFiltersResponse$nextToken": null, + "DescribeResourcePoliciesRequest$nextToken": null, + "DescribeResourcePoliciesResponse$nextToken": null, "DescribeSubscriptionFiltersRequest$nextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", "DescribeSubscriptionFiltersResponse$nextToken": null, "FilterLogEventsRequest$nextToken": "

The token for the next set of events to return. (You received this token from a previous call.)

", @@ -622,7 +665,7 @@ "OrderBy": { "base": null, "refs": { - "DescribeLogStreamsRequest$orderBy": "

If the value is LogStreamName, the results are ordered by log stream name. If the value is LastEventTime, the results are ordered by the event time. The default value is LogStreamName.

If you order the results by event time, you cannot specify the logStreamNamePrefix parameter.

lastEventTimestamp represents the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. lastEventTimeStamp updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but may take longer in some rare situations.

" + "DescribeLogStreamsRequest$orderBy": "

If the value is LogStreamName, the results are ordered by log stream name. If the value is LastEventTime, the results are ordered by the event time. The default value is LogStreamName.

If you order the results by event time, you cannot specify the logStreamNamePrefix parameter.

lastEventTimestamp represents the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. lastEventTimeStamp updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but may take longer in some rare situations.

" } }, "OutputLogEvent": { @@ -637,6 +680,21 @@ "GetLogEventsResponse$events": "

The events.

" } }, + "PolicyDocument": { + "base": null, + "refs": { + "PutResourcePolicyRequest$policyDocument": "

Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string.

The following example creates a resource policy enabling the Route 53 service to put DNS query logs in to the specified log group. Replace \"logArn\" with the ARN of your CloudWatch Logs resource, such as a log group or log stream.

{ \"Version\": \"2012-10-17\" \"Statement\": [ { \"Sid\": \"Route53LogsToCloudWatchLogs\", \"Effect\": \"Allow\", \"Principal\": { \"Service\": [ \"route53.amazonaws.com\" ] }, \"Action\":\"logs:PutLogEvents\", \"Resource\": logArn } ] }

", + "ResourcePolicy$policyDocument": "

The details of the policy.

" + } + }, + "PolicyName": { + "base": null, + "refs": { + "DeleteResourcePolicyRequest$policyName": "

The name of the policy to be revoked. This parameter is required.

", + "PutResourcePolicyRequest$policyName": "

Name of the new policy. This parameter is required.

", + "ResourcePolicy$policyName": "

The name of the resource policy.

" + } + }, "PutDestinationPolicyRequest": { "base": null, "refs": { @@ -667,6 +725,16 @@ "refs": { } }, + "PutResourcePolicyRequest": { + "base": null, + "refs": { + } + }, + "PutResourcePolicyResponse": { + "base": null, + "refs": { + } + }, "PutRetentionPolicyRequest": { "base": null, "refs": { @@ -693,11 +761,24 @@ "refs": { } }, + "ResourcePolicies": { + "base": null, + "refs": { + "DescribeResourcePoliciesResponse$resourcePolicies": "

The resource policies that exist in this account.

" + } + }, + "ResourcePolicy": { + "base": "

A policy enabling one or more entities to put logs to a log group in this account.

", + "refs": { + "PutResourcePolicyResponse$resourcePolicy": "

The new policy.

", + "ResourcePolicies$member": null + } + }, "RoleArn": { "base": null, "refs": { "Destination$roleArn": "

A role for impersonation, used when delivering log events to the target.

", - "PutDestinationRequest$roleArn": "

The ARN of an IAM role that grants CloudWatch Logs permissions to call Amazon Kinesis PutRecord on the destination stream.

", + "PutDestinationRequest$roleArn": "

The ARN of an IAM role that grants CloudWatch Logs permissions to call the Amazon Kinesis PutRecord operation on the destination stream.

", "PutSubscriptionFilterRequest$roleArn": "

The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery.

", "SubscriptionFilter$roleArn": "

" } @@ -720,7 +801,7 @@ "DataAlreadyAcceptedException$expectedSequenceToken": null, "InvalidSequenceTokenException$expectedSequenceToken": null, "LogStream$uploadSequenceToken": "

The sequence token.

", - "PutLogEventsRequest$sequenceToken": "

The sequence token.

", + "PutLogEventsRequest$sequenceToken": "

The sequence token obtained from the response of the previous PutLogEvents call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token using DescribeLogStreams. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls may be successful, or one may be rejected.

", "PutLogEventsResponse$nextSequenceToken": "

The next sequence token.

" } }, @@ -782,15 +863,15 @@ "base": null, "refs": { "CreateLogGroupRequest$tags": "

The key-value pairs to use for the tags.

", - "ListTagsLogGroupResponse$tags": "

The tags.

", + "ListTagsLogGroupResponse$tags": "

The tags for the log group.

", "TagLogGroupRequest$tags": "

The key-value pairs to use for the tags.

" } }, "TargetArn": { "base": null, "refs": { - "Destination$targetArn": "

The Amazon Resource Name (ARN) of the physical target where the log events will be delivered (for example, a Kinesis stream).

", - "PutDestinationRequest$targetArn": "

The ARN of an Amazon Kinesis stream to deliver matching log events to.

" + "Destination$targetArn": "

The Amazon Resource Name (ARN) of the physical target to where the log events are delivered (for example, a Kinesis stream).

", + "PutDestinationRequest$targetArn": "

The ARN of an Amazon Kinesis stream to which to deliver matching log events.

" } }, "TestEventMessages": { @@ -812,29 +893,30 @@ "Timestamp": { "base": null, "refs": { - "CreateExportTaskRequest$from": "

The start time of the range for the request, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp earlier than this time are not exported.

", - "CreateExportTaskRequest$to": "

The end time of the range for the request, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported.

", - "Destination$creationTime": "

The creation time of the destination, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "ExportTask$from": "

The start time, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp prior to this time are not exported.

", - "ExportTask$to": "

The end time, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported.

", - "ExportTaskExecutionInfo$creationTime": "

The creation time of the export task, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "ExportTaskExecutionInfo$completionTime": "

The completion time of the export task, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "FilterLogEventsRequest$startTime": "

The start of the time range, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp prior to this time are not returned.

", - "FilterLogEventsRequest$endTime": "

The end of the time range, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not returned.

", - "FilteredLogEvent$timestamp": "

The time the event occurred, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "FilteredLogEvent$ingestionTime": "

The time the event was ingested, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "GetLogEventsRequest$startTime": "

The start of the time range, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp earlier than this time are not included.

", - "GetLogEventsRequest$endTime": "

The end of the time range, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not included.

", - "InputLogEvent$timestamp": "

The time the event occurred, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "LogGroup$creationTime": "

The creation time of the log group, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "LogStream$creationTime": "

The creation time of the stream, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "LogStream$firstEventTimestamp": "

The time of the first event, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "LogStream$lastEventTimestamp": "

the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. lastEventTime updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but may take longer in some rare situations.

", - "LogStream$lastIngestionTime": "

The ingestion time, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "MetricFilter$creationTime": "

The creation time of the metric filter, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "OutputLogEvent$timestamp": "

The time the event occurred, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "OutputLogEvent$ingestionTime": "

The time the event was ingested, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", - "SubscriptionFilter$creationTime": "

The creation time of the subscription filter, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

" + "CreateExportTaskRequest$from": "

The start time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp earlier than this time are not exported.

", + "CreateExportTaskRequest$to": "

The end time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp later than this time are not exported.

", + "Destination$creationTime": "

The creation time of the destination, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "ExportTask$from": "

The start time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp before this time are not exported.

", + "ExportTask$to": "

The end time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp later than this time are not exported.

", + "ExportTaskExecutionInfo$creationTime": "

The creation time of the export task, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "ExportTaskExecutionInfo$completionTime": "

The completion time of the export task, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "FilterLogEventsRequest$startTime": "

The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp before this time are not returned.

", + "FilterLogEventsRequest$endTime": "

The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp later than this time are not returned.

", + "FilteredLogEvent$timestamp": "

The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "FilteredLogEvent$ingestionTime": "

The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "GetLogEventsRequest$startTime": "

The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp earlier than this time are not included.

", + "GetLogEventsRequest$endTime": "

The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a time stamp later than this time are not included.

", + "InputLogEvent$timestamp": "

The time the event occurred, expressed as the number of milliseconds fter Jan 1, 1970 00:00:00 UTC.

", + "LogGroup$creationTime": "

The creation time of the log group, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "LogStream$creationTime": "

The creation time of the stream, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "LogStream$firstEventTimestamp": "

The time of the first event, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "LogStream$lastEventTimestamp": "

the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. lastEventTime updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but may take longer in some rare situations.

", + "LogStream$lastIngestionTime": "

The ingestion time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "MetricFilter$creationTime": "

The creation time of the metric filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "OutputLogEvent$timestamp": "

The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "OutputLogEvent$ingestionTime": "

The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "ResourcePolicy$lastUpdatedTime": "

Time stamp showing when this policy was last updated, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

", + "SubscriptionFilter$creationTime": "

The creation time of the subscription filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" } }, "Token": { diff --git a/models/apis/marketplacecommerceanalytics/2015-07-01/docs-2.json b/models/apis/marketplacecommerceanalytics/2015-07-01/docs-2.json index e2eee6fa38c..f466257b1af 100644 --- a/models/apis/marketplacecommerceanalytics/2015-07-01/docs-2.json +++ b/models/apis/marketplacecommerceanalytics/2015-07-01/docs-2.json @@ -29,7 +29,7 @@ "DataSetType": { "base": null, "refs": { - "GenerateDataSetRequest$dataSetType": "

The desired data set type.

  • customer_subscriber_hourly_monthly_subscriptions - Available daily by 5:00 PM Pacific Time since 2014-07-21.
  • customer_subscriber_annual_subscriptions - Available daily by 5:00 PM Pacific Time since 2014-07-21.
  • daily_business_usage_by_instance_type - Available daily by 5:00 PM Pacific Time since 2015-01-26.
  • daily_business_fees - Available daily by 5:00 PM Pacific Time since 2015-01-26.
  • daily_business_free_trial_conversions - Available daily by 5:00 PM Pacific Time since 2015-01-26.
  • daily_business_new_instances - Available daily by 5:00 PM Pacific Time since 2015-01-26.
  • daily_business_new_product_subscribers - Available daily by 5:00 PM Pacific Time since 2015-01-26.
  • daily_business_canceled_product_subscribers - Available daily by 5:00 PM Pacific Time since 2015-01-26.
  • monthly_revenue_billing_and_revenue_data - Available monthly on the 4th day of the month by 5:00 PM Pacific Time since 2015-02.
  • monthly_revenue_annual_subscriptions - Available monthly on the 4th day of the month by 5:00 PM Pacific Time since 2015-02.
  • disbursed_amount_by_product - Available every 30 days by 5:00 PM Pacific Time since 2015-01-26.
  • disbursed_amount_by_product_with_uncollected_funds -This data set is only available from 2012-04-19 until 2015-01-25. After 2015-01-25, this data set was split into three data sets: disbursed_amount_by_product, disbursed_amount_by_age_of_uncollected_funds, and disbursed_amount_by_age_of_disbursed_funds.
  • disbursed_amount_by_instance_hours - Available every 30 days by 5:00 PM Pacific Time since 2012-09-04.
  • disbursed_amount_by_customer_geo - Available every 30 days by 5:00 PM Pacific Time since 2012-04-19.
  • disbursed_amount_by_age_of_uncollected_funds - Available every 30 days by 5:00 PM Pacific Time since 2015-01-26.
  • disbursed_amount_by_age_of_disbursed_funds - Available every 30 days by 5:00 PM Pacific Time since 2015-01-26.
  • customer_profile_by_industry - Available daily by 5:00 PM Pacific Time from 2015-10-01 to 2017-06-29. After 2017-06-29 this data set will no longer be published.
  • customer_profile_by_revenue - Available daily by 5:00 PM Pacific Time from 2015-10-01 to 2017-06-29. After 2017-06-29 this data set will no longer be published.
  • customer_profile_by_geography - Available daily by 5:00 PM Pacific Time from 2015-10-01 to 2017-06-29. After 2017-06-29 this data set will no longer be published.
  • sales_compensation_billed_revenue - Available monthly on the 4th day of the month by 5:00 PM Pacific Time since 2016-12.
  • us_sales_and_use_tax_records - Available monthly on the 15th day of the month by 5:00 PM Pacific Time since 2017-02-15.

" + "GenerateDataSetRequest$dataSetType": "

The desired data set type.

  • customer_subscriber_hourly_monthly_subscriptions

    From 2014-07-21 to present: Available daily by 5:00 PM Pacific Time.

  • customer_subscriber_annual_subscriptions

    From 2014-07-21 to present: Available daily by 5:00 PM Pacific Time.

  • daily_business_usage_by_instance_type

    From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time.

  • daily_business_fees

    From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time.

  • daily_business_free_trial_conversions

    From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time.

  • daily_business_new_instances

    From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time.

  • daily_business_new_product_subscribers

    From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time.

  • daily_business_canceled_product_subscribers

    From 2015-01-26 to present: Available daily by 5:00 PM Pacific Time.

  • monthly_revenue_billing_and_revenue_data

    From 2015-02 to 2017-06: Available monthly on the 4th day of the month by 5:00pm Pacific Time. Data includes metered transactions (e.g. hourly) from two months prior.

    From 2017-07 to present: Available monthly on the 15th day of the month by 5:00pm Pacific Time. Data includes metered transactions (e.g. hourly) from one month prior.

  • monthly_revenue_annual_subscriptions

    From 2015-02 to 2017-06: Available monthly on the 4th day of the month by 5:00pm Pacific Time. Data includes up-front software charges (e.g. annual) from one month prior.

    From 2017-07 to present: Available monthly on the 15th day of the month by 5:00pm Pacific Time. Data includes up-front software charges (e.g. annual) from one month prior.

  • disbursed_amount_by_product

    From 2015-01-26 to present: Available every 30 days by 5:00 PM Pacific Time.

  • disbursed_amount_by_product_with_uncollected_funds

    From 2012-04-19 to 2015-01-25: Available every 30 days by 5:00 PM Pacific Time.

    From 2015-01-26 to present: This data set was split into three data sets: disbursed_amount_by_product, disbursed_amount_by_age_of_uncollected_funds, and disbursed_amount_by_age_of_disbursed_funds.

  • disbursed_amount_by_instance_hours

    From 2012-09-04 to present: Available every 30 days by 5:00 PM Pacific Time.

  • disbursed_amount_by_customer_geo

    From 2012-04-19 to present: Available every 30 days by 5:00 PM Pacific Time.

  • disbursed_amount_by_age_of_uncollected_funds

    From 2015-01-26 to present: Available every 30 days by 5:00 PM Pacific Time.

  • disbursed_amount_by_age_of_disbursed_funds

    From 2015-01-26 to present: Available every 30 days by 5:00 PM Pacific Time.

  • customer_profile_by_industry

    From 2015-10-01 to 2017-06-29: Available daily by 5:00 PM Pacific Time.

    From 2017-06-30 to present: This data set is no longer available.

  • customer_profile_by_revenue

    From 2015-10-01 to 2017-06-29: Available daily by 5:00 PM Pacific Time.

    From 2017-06-30 to present: This data set is no longer available.

  • customer_profile_by_geography

    From 2015-10-01 to 2017-06-29: Available daily by 5:00 PM Pacific Time.

    From 2017-06-30 to present: This data set is no longer available.

  • sales_compensation_billed_revenue

    From 2016-12 to 2017-06: Available monthly on the 4th day of the month by 5:00pm Pacific Time. Data includes metered transactions (e.g. hourly) from two months prior, and up-front software charges (e.g. annual) from one month prior.

    From 2017-06 to present: Available monthly on the 15th day of the month by 5:00pm Pacific Time. Data includes metered transactions (e.g. hourly) from one month prior, and up-front software charges (e.g. annual) from one month prior.

  • us_sales_and_use_tax_records

    From 2017-02-15 to present: Available monthly on the 15th day of the month by 5:00 PM Pacific Time.

" } }, "DestinationS3BucketName": { diff --git a/models/apis/mediaconvert/2017-08-29/api-2.json b/models/apis/mediaconvert/2017-08-29/api-2.json new file mode 100644 index 00000000000..52d6856735f --- /dev/null +++ b/models/apis/mediaconvert/2017-08-29/api-2.json @@ -0,0 +1,6149 @@ +{ + "metadata": { + "apiVersion": "2017-08-29", + "endpointPrefix": "mediaconvert", + "signingName": "mediaconvert", + "serviceFullName": "AWS Elemental MediaConvert", + "serviceId": "MediaConvert", + "protocol": "rest-json", + "jsonVersion": "1.1", + "uid": "mediaconvert-2017-08-29", + "signatureVersion": "v4", + "serviceAbbreviation": "MediaConvert" + }, + "operations": { + "CancelJob": { + "name": "CancelJob", + "http": { + "method": "DELETE", + "requestUri": "/2017-08-29/jobs/{id}", + "responseCode": 202 + }, + "input": { + "shape": "CancelJobRequest" + }, + "output": { + "shape": "CancelJobResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "CreateJob": { + "name": "CreateJob", + "http": { + "method": "POST", + "requestUri": "/2017-08-29/jobs", + "responseCode": 201 + }, + "input": { + "shape": "CreateJobRequest" + }, + "output": { + "shape": "CreateJobResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "CreateJobTemplate": { + "name": "CreateJobTemplate", + "http": { + "method": "POST", + "requestUri": "/2017-08-29/jobTemplates", + "responseCode": 201 + }, + "input": { + "shape": "CreateJobTemplateRequest" + }, + "output": { + "shape": "CreateJobTemplateResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "CreatePreset": { + "name": "CreatePreset", + "http": { + "method": "POST", + "requestUri": "/2017-08-29/presets", + "responseCode": 201 + }, + "input": { + "shape": "CreatePresetRequest" + }, + "output": { + "shape": "CreatePresetResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "CreateQueue": { + "name": "CreateQueue", + "http": { + "method": "POST", + "requestUri": "/2017-08-29/queues", + "responseCode": 201 + }, + "input": { + "shape": "CreateQueueRequest" + }, + "output": { + "shape": "CreateQueueResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "DeleteJobTemplate": { + "name": "DeleteJobTemplate", + "http": { + "method": "DELETE", + "requestUri": "/2017-08-29/jobTemplates/{name}", + "responseCode": 202 + }, + "input": { + "shape": "DeleteJobTemplateRequest" + }, + "output": { + "shape": "DeleteJobTemplateResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "DeletePreset": { + "name": "DeletePreset", + "http": { + "method": "DELETE", + "requestUri": "/2017-08-29/presets/{name}", + "responseCode": 202 + }, + "input": { + "shape": "DeletePresetRequest" + }, + "output": { + "shape": "DeletePresetResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "DeleteQueue": { + "name": "DeleteQueue", + "http": { + "method": "DELETE", + "requestUri": "/2017-08-29/queues/{name}", + "responseCode": 202 + }, + "input": { + "shape": "DeleteQueueRequest" + }, + "output": { + "shape": "DeleteQueueResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "DescribeEndpoints": { + "name": "DescribeEndpoints", + "http": { + "method": "POST", + "requestUri": "/2017-08-29/endpoints", + "responseCode": 200 + }, + "input": { + "shape": "DescribeEndpointsRequest" + }, + "output": { + "shape": "DescribeEndpointsResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "GetJob": { + "name": "GetJob", + "http": { + "method": "GET", + "requestUri": "/2017-08-29/jobs/{id}", + "responseCode": 200 + }, + "input": { + "shape": "GetJobRequest" + }, + "output": { + "shape": "GetJobResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "GetJobTemplate": { + "name": "GetJobTemplate", + "http": { + "method": "GET", + "requestUri": "/2017-08-29/jobTemplates/{name}", + "responseCode": 200 + }, + "input": { + "shape": "GetJobTemplateRequest" + }, + "output": { + "shape": "GetJobTemplateResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "GetPreset": { + "name": "GetPreset", + "http": { + "method": "GET", + "requestUri": "/2017-08-29/presets/{name}", + "responseCode": 200 + }, + "input": { + "shape": "GetPresetRequest" + }, + "output": { + "shape": "GetPresetResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "GetQueue": { + "name": "GetQueue", + "http": { + "method": "GET", + "requestUri": "/2017-08-29/queues/{name}", + "responseCode": 200 + }, + "input": { + "shape": "GetQueueRequest" + }, + "output": { + "shape": "GetQueueResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "ListJobTemplates": { + "name": "ListJobTemplates", + "http": { + "method": "GET", + "requestUri": "/2017-08-29/jobTemplates", + "responseCode": 200 + }, + "input": { + "shape": "ListJobTemplatesRequest" + }, + "output": { + "shape": "ListJobTemplatesResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "ListJobs": { + "name": "ListJobs", + "http": { + "method": "GET", + "requestUri": "/2017-08-29/jobs", + "responseCode": 200 + }, + "input": { + "shape": "ListJobsRequest" + }, + "output": { + "shape": "ListJobsResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "ListPresets": { + "name": "ListPresets", + "http": { + "method": "GET", + "requestUri": "/2017-08-29/presets", + "responseCode": 200 + }, + "input": { + "shape": "ListPresetsRequest" + }, + "output": { + "shape": "ListPresetsResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "ListQueues": { + "name": "ListQueues", + "http": { + "method": "GET", + "requestUri": "/2017-08-29/queues", + "responseCode": 200 + }, + "input": { + "shape": "ListQueuesRequest" + }, + "output": { + "shape": "ListQueuesResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "UpdateJobTemplate": { + "name": "UpdateJobTemplate", + "http": { + "method": "PUT", + "requestUri": "/2017-08-29/jobTemplates/{name}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateJobTemplateRequest" + }, + "output": { + "shape": "UpdateJobTemplateResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "UpdatePreset": { + "name": "UpdatePreset", + "http": { + "method": "PUT", + "requestUri": "/2017-08-29/presets/{name}", + "responseCode": 200 + }, + "input": { + "shape": "UpdatePresetRequest" + }, + "output": { + "shape": "UpdatePresetResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "UpdateQueue": { + "name": "UpdateQueue", + "http": { + "method": "PUT", + "requestUri": "/2017-08-29/queues/{name}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateQueueRequest" + }, + "output": { + "shape": "UpdateQueueResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + } + }, + "shapes": { + "AacAudioDescriptionBroadcasterMix": { + "type": "string", + "enum": [ + "BROADCASTER_MIXED_AD", + "NORMAL" + ] + }, + "AacCodecProfile": { + "type": "string", + "enum": [ + "LC", + "HEV1", + "HEV2" + ] + }, + "AacCodingMode": { + "type": "string", + "enum": [ + "AD_RECEIVER_MIX", + "CODING_MODE_1_0", + "CODING_MODE_1_1", + "CODING_MODE_2_0", + "CODING_MODE_5_1" + ] + }, + "AacRateControlMode": { + "type": "string", + "enum": [ + "CBR", + "VBR" + ] + }, + "AacRawFormat": { + "type": "string", + "enum": [ + "LATM_LOAS", + "NONE" + ] + }, + "AacSettings": { + "type": "structure", + "members": { + "AudioDescriptionBroadcasterMix": { + "shape": "AacAudioDescriptionBroadcasterMix", + "locationName": "audioDescriptionBroadcasterMix" + }, + "Bitrate": { + "shape": "__integer", + "locationName": "bitrate" + }, + "CodecProfile": { + "shape": "AacCodecProfile", + "locationName": "codecProfile" + }, + "CodingMode": { + "shape": "AacCodingMode", + "locationName": "codingMode" + }, + "RateControlMode": { + "shape": "AacRateControlMode", + "locationName": "rateControlMode" + }, + "RawFormat": { + "shape": "AacRawFormat", + "locationName": "rawFormat" + }, + "SampleRate": { + "shape": "__integer", + "locationName": "sampleRate" + }, + "Specification": { + "shape": "AacSpecification", + "locationName": "specification" + }, + "VbrQuality": { + "shape": "AacVbrQuality", + "locationName": "vbrQuality" + } + } + }, + "AacSpecification": { + "type": "string", + "enum": [ + "MPEG2", + "MPEG4" + ] + }, + "AacVbrQuality": { + "type": "string", + "enum": [ + "LOW", + "MEDIUM_LOW", + "MEDIUM_HIGH", + "HIGH" + ] + }, + "Ac3BitstreamMode": { + "type": "string", + "enum": [ + "COMPLETE_MAIN", + "COMMENTARY", + "DIALOGUE", + "EMERGENCY", + "HEARING_IMPAIRED", + "MUSIC_AND_EFFECTS", + "VISUALLY_IMPAIRED", + "VOICE_OVER" + ] + }, + "Ac3CodingMode": { + "type": "string", + "enum": [ + "CODING_MODE_1_0", + "CODING_MODE_1_1", + "CODING_MODE_2_0", + "CODING_MODE_3_2_LFE" + ] + }, + "Ac3DynamicRangeCompressionProfile": { + "type": "string", + "enum": [ + "FILM_STANDARD", + "NONE" + ] + }, + "Ac3LfeFilter": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "Ac3MetadataControl": { + "type": "string", + "enum": [ + "FOLLOW_INPUT", + "USE_CONFIGURED" + ] + }, + "Ac3Settings": { + "type": "structure", + "members": { + "Bitrate": { + "shape": "__integer", + "locationName": "bitrate" + }, + "BitstreamMode": { + "shape": "Ac3BitstreamMode", + "locationName": "bitstreamMode" + }, + "CodingMode": { + "shape": "Ac3CodingMode", + "locationName": "codingMode" + }, + "Dialnorm": { + "shape": "__integer", + "locationName": "dialnorm" + }, + "DynamicRangeCompressionProfile": { + "shape": "Ac3DynamicRangeCompressionProfile", + "locationName": "dynamicRangeCompressionProfile" + }, + "LfeFilter": { + "shape": "Ac3LfeFilter", + "locationName": "lfeFilter" + }, + "MetadataControl": { + "shape": "Ac3MetadataControl", + "locationName": "metadataControl" + }, + "SampleRate": { + "shape": "__integer", + "locationName": "sampleRate" + } + } + }, + "AfdSignaling": { + "type": "string", + "enum": [ + "NONE", + "AUTO", + "FIXED" + ] + }, + "AiffSettings": { + "type": "structure", + "members": { + "BitDepth": { + "shape": "__integer", + "locationName": "bitDepth" + }, + "Channels": { + "shape": "__integer", + "locationName": "channels" + }, + "SampleRate": { + "shape": "__integer", + "locationName": "sampleRate" + } + } + }, + "AncillarySourceSettings": { + "type": "structure", + "members": { + "SourceAncillaryChannelNumber": { + "shape": "__integer", + "locationName": "sourceAncillaryChannelNumber" + } + } + }, + "AntiAlias": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "AudioCodec": { + "type": "string", + "enum": [ + "AAC", + "MP2", + "WAV", + "AIFF", + "AC3", + "EAC3", + "PASSTHROUGH" + ] + }, + "AudioCodecSettings": { + "type": "structure", + "members": { + "AacSettings": { + "shape": "AacSettings", + "locationName": "aacSettings" + }, + "Ac3Settings": { + "shape": "Ac3Settings", + "locationName": "ac3Settings" + }, + "AiffSettings": { + "shape": "AiffSettings", + "locationName": "aiffSettings" + }, + "Codec": { + "shape": "AudioCodec", + "locationName": "codec" + }, + "Eac3Settings": { + "shape": "Eac3Settings", + "locationName": "eac3Settings" + }, + "Mp2Settings": { + "shape": "Mp2Settings", + "locationName": "mp2Settings" + }, + "WavSettings": { + "shape": "WavSettings", + "locationName": "wavSettings" + } + } + }, + "AudioDefaultSelection": { + "type": "string", + "enum": [ + "DEFAULT", + "NOT_DEFAULT" + ] + }, + "AudioDescription": { + "type": "structure", + "members": { + "AudioNormalizationSettings": { + "shape": "AudioNormalizationSettings", + "locationName": "audioNormalizationSettings" + }, + "AudioSourceName": { + "shape": "__string", + "locationName": "audioSourceName" + }, + "AudioType": { + "shape": "__integer", + "locationName": "audioType" + }, + "AudioTypeControl": { + "shape": "AudioTypeControl", + "locationName": "audioTypeControl" + }, + "CodecSettings": { + "shape": "AudioCodecSettings", + "locationName": "codecSettings" + }, + "LanguageCode": { + "shape": "LanguageCode", + "locationName": "languageCode" + }, + "LanguageCodeControl": { + "shape": "AudioLanguageCodeControl", + "locationName": "languageCodeControl" + }, + "RemixSettings": { + "shape": "RemixSettings", + "locationName": "remixSettings" + }, + "StreamName": { + "shape": "__string", + "locationName": "streamName" + } + } + }, + "AudioLanguageCodeControl": { + "type": "string", + "enum": [ + "FOLLOW_INPUT", + "USE_CONFIGURED" + ] + }, + "AudioNormalizationAlgorithm": { + "type": "string", + "enum": [ + "ITU_BS_1770_1", + "ITU_BS_1770_2" + ] + }, + "AudioNormalizationAlgorithmControl": { + "type": "string", + "enum": [ + "CORRECT_AUDIO", + "MEASURE_ONLY" + ] + }, + "AudioNormalizationLoudnessLogging": { + "type": "string", + "enum": [ + "LOG", + "DONT_LOG" + ] + }, + "AudioNormalizationPeakCalculation": { + "type": "string", + "enum": [ + "TRUE_PEAK", + "NONE" + ] + }, + "AudioNormalizationSettings": { + "type": "structure", + "members": { + "Algorithm": { + "shape": "AudioNormalizationAlgorithm", + "locationName": "algorithm" + }, + "AlgorithmControl": { + "shape": "AudioNormalizationAlgorithmControl", + "locationName": "algorithmControl" + }, + "CorrectionGateLevel": { + "shape": "__integer", + "locationName": "correctionGateLevel" + }, + "LoudnessLogging": { + "shape": "AudioNormalizationLoudnessLogging", + "locationName": "loudnessLogging" + }, + "PeakCalculation": { + "shape": "AudioNormalizationPeakCalculation", + "locationName": "peakCalculation" + }, + "TargetLkfs": { + "shape": "__double", + "locationName": "targetLkfs" + } + } + }, + "AudioSelector": { + "type": "structure", + "members": { + "DefaultSelection": { + "shape": "AudioDefaultSelection", + "locationName": "defaultSelection" + }, + "ExternalAudioFileInput": { + "shape": "__string", + "locationName": "externalAudioFileInput" + }, + "LanguageCode": { + "shape": "LanguageCode", + "locationName": "languageCode" + }, + "Offset": { + "shape": "__integer", + "locationName": "offset" + }, + "Pids": { + "shape": "ListOf__integer", + "locationName": "pids" + }, + "ProgramSelection": { + "shape": "__integer", + "locationName": "programSelection" + }, + "RemixSettings": { + "shape": "RemixSettings", + "locationName": "remixSettings" + }, + "SelectorType": { + "shape": "AudioSelectorType", + "locationName": "selectorType" + }, + "Tracks": { + "shape": "ListOf__integer", + "locationName": "tracks" + } + } + }, + "AudioSelectorGroup": { + "type": "structure", + "members": { + "AudioSelectorNames": { + "shape": "ListOf__string", + "locationName": "audioSelectorNames" + } + } + }, + "AudioSelectorType": { + "type": "string", + "enum": [ + "PID", + "TRACK", + "LANGUAGE_CODE" + ] + }, + "AudioTypeControl": { + "type": "string", + "enum": [ + "FOLLOW_INPUT", + "USE_CONFIGURED" + ] + }, + "AvailBlanking": { + "type": "structure", + "members": { + "AvailBlankingImage": { + "shape": "__string", + "locationName": "availBlankingImage" + } + } + }, + "BadRequestException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 400 + } + }, + "BurninDestinationSettings": { + "type": "structure", + "members": { + "Alignment": { + "shape": "BurninSubtitleAlignment", + "locationName": "alignment" + }, + "BackgroundColor": { + "shape": "BurninSubtitleBackgroundColor", + "locationName": "backgroundColor" + }, + "BackgroundOpacity": { + "shape": "__integer", + "locationName": "backgroundOpacity" + }, + "FontColor": { + "shape": "BurninSubtitleFontColor", + "locationName": "fontColor" + }, + "FontOpacity": { + "shape": "__integer", + "locationName": "fontOpacity" + }, + "FontResolution": { + "shape": "__integer", + "locationName": "fontResolution" + }, + "FontSize": { + "shape": "__integer", + "locationName": "fontSize" + }, + "OutlineColor": { + "shape": "BurninSubtitleOutlineColor", + "locationName": "outlineColor" + }, + "OutlineSize": { + "shape": "__integer", + "locationName": "outlineSize" + }, + "ShadowColor": { + "shape": "BurninSubtitleShadowColor", + "locationName": "shadowColor" + }, + "ShadowOpacity": { + "shape": "__integer", + "locationName": "shadowOpacity" + }, + "ShadowXOffset": { + "shape": "__integer", + "locationName": "shadowXOffset" + }, + "ShadowYOffset": { + "shape": "__integer", + "locationName": "shadowYOffset" + }, + "TeletextSpacing": { + "shape": "BurninSubtitleTeletextSpacing", + "locationName": "teletextSpacing" + }, + "XPosition": { + "shape": "__integer", + "locationName": "xPosition" + }, + "YPosition": { + "shape": "__integer", + "locationName": "yPosition" + } + } + }, + "BurninSubtitleAlignment": { + "type": "string", + "enum": [ + "CENTERED", + "LEFT" + ] + }, + "BurninSubtitleBackgroundColor": { + "type": "string", + "enum": [ + "NONE", + "BLACK", + "WHITE" + ] + }, + "BurninSubtitleFontColor": { + "type": "string", + "enum": [ + "WHITE", + "BLACK", + "YELLOW", + "RED", + "GREEN", + "BLUE" + ] + }, + "BurninSubtitleOutlineColor": { + "type": "string", + "enum": [ + "BLACK", + "WHITE", + "YELLOW", + "RED", + "GREEN", + "BLUE" + ] + }, + "BurninSubtitleShadowColor": { + "type": "string", + "enum": [ + "NONE", + "BLACK", + "WHITE" + ] + }, + "BurninSubtitleTeletextSpacing": { + "type": "string", + "enum": [ + "FIXED_GRID", + "PROPORTIONAL" + ] + }, + "CancelJobRequest": { + "type": "structure", + "members": { + "Id": { + "shape": "__string", + "locationName": "id", + "location": "uri" + } + }, + "required": [ + "Id" + ] + }, + "CancelJobResponse": { + "type": "structure", + "members": { + } + }, + "CaptionDescription": { + "type": "structure", + "members": { + "CaptionSelectorName": { + "shape": "__string", + "locationName": "captionSelectorName" + }, + "DestinationSettings": { + "shape": "CaptionDestinationSettings", + "locationName": "destinationSettings" + }, + "LanguageCode": { + "shape": "LanguageCode", + "locationName": "languageCode" + }, + "LanguageDescription": { + "shape": "__string", + "locationName": "languageDescription" + } + } + }, + "CaptionDescriptionPreset": { + "type": "structure", + "members": { + "DestinationSettings": { + "shape": "CaptionDestinationSettings", + "locationName": "destinationSettings" + }, + "LanguageCode": { + "shape": "LanguageCode", + "locationName": "languageCode" + }, + "LanguageDescription": { + "shape": "__string", + "locationName": "languageDescription" + } + } + }, + "CaptionDestinationSettings": { + "type": "structure", + "members": { + "BurninDestinationSettings": { + "shape": "BurninDestinationSettings", + "locationName": "burninDestinationSettings" + }, + "DestinationType": { + "shape": "CaptionDestinationType", + "locationName": "destinationType" + }, + "DvbSubDestinationSettings": { + "shape": "DvbSubDestinationSettings", + "locationName": "dvbSubDestinationSettings" + }, + "SccDestinationSettings": { + "shape": "SccDestinationSettings", + "locationName": "sccDestinationSettings" + }, + "TeletextDestinationSettings": { + "shape": "TeletextDestinationSettings", + "locationName": "teletextDestinationSettings" + }, + "TtmlDestinationSettings": { + "shape": "TtmlDestinationSettings", + "locationName": "ttmlDestinationSettings" + } + } + }, + "CaptionDestinationType": { + "type": "string", + "enum": [ + "BURN_IN", + "DVB_SUB", + "EMBEDDED", + "SCC", + "SRT", + "TELETEXT", + "TTML", + "WEBVTT" + ] + }, + "CaptionSelector": { + "type": "structure", + "members": { + "LanguageCode": { + "shape": "LanguageCode", + "locationName": "languageCode" + }, + "SourceSettings": { + "shape": "CaptionSourceSettings", + "locationName": "sourceSettings" + } + } + }, + "CaptionSourceSettings": { + "type": "structure", + "members": { + "AncillarySourceSettings": { + "shape": "AncillarySourceSettings", + "locationName": "ancillarySourceSettings" + }, + "DvbSubSourceSettings": { + "shape": "DvbSubSourceSettings", + "locationName": "dvbSubSourceSettings" + }, + "EmbeddedSourceSettings": { + "shape": "EmbeddedSourceSettings", + "locationName": "embeddedSourceSettings" + }, + "FileSourceSettings": { + "shape": "FileSourceSettings", + "locationName": "fileSourceSettings" + }, + "SourceType": { + "shape": "CaptionSourceType", + "locationName": "sourceType" + }, + "TeletextSourceSettings": { + "shape": "TeletextSourceSettings", + "locationName": "teletextSourceSettings" + } + } + }, + "CaptionSourceType": { + "type": "string", + "enum": [ + "ANCILLARY", + "DVB_SUB", + "EMBEDDED", + "SCC", + "TTML", + "STL", + "SRT", + "TELETEXT", + "NULL_SOURCE" + ] + }, + "ChannelMapping": { + "type": "structure", + "members": { + "OutputChannels": { + "shape": "ListOfOutputChannelMapping", + "locationName": "outputChannels" + } + } + }, + "ColorCorrector": { + "type": "structure", + "members": { + "Brightness": { + "shape": "__integer", + "locationName": "brightness" + }, + "ColorSpaceConversion": { + "shape": "ColorSpaceConversion", + "locationName": "colorSpaceConversion" + }, + "Contrast": { + "shape": "__integer", + "locationName": "contrast" + }, + "Hdr10Metadata": { + "shape": "Hdr10Metadata", + "locationName": "hdr10Metadata" + }, + "Hue": { + "shape": "__integer", + "locationName": "hue" + }, + "Saturation": { + "shape": "__integer", + "locationName": "saturation" + } + } + }, + "ColorMetadata": { + "type": "string", + "enum": [ + "IGNORE", + "INSERT" + ] + }, + "ColorSpace": { + "type": "string", + "enum": [ + "FOLLOW", + "REC_601", + "REC_709", + "HDR10", + "HLG_2020" + ] + }, + "ColorSpaceConversion": { + "type": "string", + "enum": [ + "NONE", + "FORCE_601", + "FORCE_709", + "FORCE_HDR10", + "FORCE_HLG_2020" + ] + }, + "ColorSpaceUsage": { + "type": "string", + "enum": [ + "FORCE", + "FALLBACK" + ] + }, + "ConflictException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 409 + } + }, + "ContainerSettings": { + "type": "structure", + "members": { + "Container": { + "shape": "ContainerType", + "locationName": "container" + }, + "F4vSettings": { + "shape": "F4vSettings", + "locationName": "f4vSettings" + }, + "M2tsSettings": { + "shape": "M2tsSettings", + "locationName": "m2tsSettings" + }, + "M3u8Settings": { + "shape": "M3u8Settings", + "locationName": "m3u8Settings" + }, + "MovSettings": { + "shape": "MovSettings", + "locationName": "movSettings" + }, + "Mp4Settings": { + "shape": "Mp4Settings", + "locationName": "mp4Settings" + } + } + }, + "ContainerType": { + "type": "string", + "enum": [ + "F4V", + "ISMV", + "M2TS", + "M3U8", + "MOV", + "MP4", + "MPD", + "MXF", + "RAW" + ] + }, + "CreateJobRequest": { + "type": "structure", + "members": { + "ClientRequestToken": { + "shape": "__string", + "locationName": "clientRequestToken", + "idempotencyToken": true + }, + "JobTemplate": { + "shape": "__string", + "locationName": "jobTemplate" + }, + "Queue": { + "shape": "__string", + "locationName": "queue" + }, + "Role": { + "shape": "__string", + "locationName": "role" + }, + "Settings": { + "shape": "JobSettings", + "locationName": "settings" + }, + "UserMetadata": { + "shape": "MapOf__string", + "locationName": "userMetadata" + } + } + }, + "CreateJobResponse": { + "type": "structure", + "members": { + "Job": { + "shape": "Job", + "locationName": "job" + } + } + }, + "CreateJobTemplateRequest": { + "type": "structure", + "members": { + "Category": { + "shape": "__string", + "locationName": "category" + }, + "Description": { + "shape": "__string", + "locationName": "description" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "Queue": { + "shape": "__string", + "locationName": "queue" + }, + "Settings": { + "shape": "JobTemplateSettings", + "locationName": "settings" + } + } + }, + "CreateJobTemplateResponse": { + "type": "structure", + "members": { + "JobTemplate": { + "shape": "JobTemplate", + "locationName": "jobTemplate" + } + } + }, + "CreatePresetRequest": { + "type": "structure", + "members": { + "Category": { + "shape": "__string", + "locationName": "category" + }, + "Description": { + "shape": "__string", + "locationName": "description" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "Settings": { + "shape": "PresetSettings", + "locationName": "settings" + } + } + }, + "CreatePresetResponse": { + "type": "structure", + "members": { + "Preset": { + "shape": "Preset", + "locationName": "preset" + } + } + }, + "CreateQueueRequest": { + "type": "structure", + "members": { + "Description": { + "shape": "__string", + "locationName": "description" + }, + "Name": { + "shape": "__string", + "locationName": "name" + } + } + }, + "CreateQueueResponse": { + "type": "structure", + "members": { + "Queue": { + "shape": "Queue", + "locationName": "queue" + } + } + }, + "DashIsoEncryptionSettings": { + "type": "structure", + "members": { + "SpekeKeyProvider": { + "shape": "SpekeKeyProvider", + "locationName": "spekeKeyProvider" + } + } + }, + "DashIsoGroupSettings": { + "type": "structure", + "members": { + "BaseUrl": { + "shape": "__string", + "locationName": "baseUrl" + }, + "Destination": { + "shape": "__string", + "locationName": "destination" + }, + "Encryption": { + "shape": "DashIsoEncryptionSettings", + "locationName": "encryption" + }, + "FragmentLength": { + "shape": "__integer", + "locationName": "fragmentLength" + }, + "HbbtvCompliance": { + "shape": "DashIsoHbbtvCompliance", + "locationName": "hbbtvCompliance" + }, + "MinBufferTime": { + "shape": "__integer", + "locationName": "minBufferTime" + }, + "SegmentControl": { + "shape": "DashIsoSegmentControl", + "locationName": "segmentControl" + }, + "SegmentLength": { + "shape": "__integer", + "locationName": "segmentLength" + } + } + }, + "DashIsoHbbtvCompliance": { + "type": "string", + "enum": [ + "HBBTV_1_5", + "NONE" + ] + }, + "DashIsoSegmentControl": { + "type": "string", + "enum": [ + "SINGLE_FILE", + "SEGMENTED_FILES" + ] + }, + "DeinterlaceAlgorithm": { + "type": "string", + "enum": [ + "INTERPOLATE", + "INTERPOLATE_TICKER", + "BLEND", + "BLEND_TICKER" + ] + }, + "Deinterlacer": { + "type": "structure", + "members": { + "Algorithm": { + "shape": "DeinterlaceAlgorithm", + "locationName": "algorithm" + }, + "Control": { + "shape": "DeinterlacerControl", + "locationName": "control" + }, + "Mode": { + "shape": "DeinterlacerMode", + "locationName": "mode" + } + } + }, + "DeinterlacerControl": { + "type": "string", + "enum": [ + "FORCE_ALL_FRAMES", + "NORMAL" + ] + }, + "DeinterlacerMode": { + "type": "string", + "enum": [ + "DEINTERLACE", + "INVERSE_TELECINE", + "ADAPTIVE" + ] + }, + "DeleteJobTemplateRequest": { + "type": "structure", + "members": { + "Name": { + "shape": "__string", + "locationName": "name", + "location": "uri" + } + }, + "required": [ + "Name" + ] + }, + "DeleteJobTemplateResponse": { + "type": "structure", + "members": { + } + }, + "DeletePresetRequest": { + "type": "structure", + "members": { + "Name": { + "shape": "__string", + "locationName": "name", + "location": "uri" + } + }, + "required": [ + "Name" + ] + }, + "DeletePresetResponse": { + "type": "structure", + "members": { + } + }, + "DeleteQueueRequest": { + "type": "structure", + "members": { + "Name": { + "shape": "__string", + "locationName": "name", + "location": "uri" + } + }, + "required": [ + "Name" + ] + }, + "DeleteQueueResponse": { + "type": "structure", + "members": { + } + }, + "DescribeEndpointsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "shape": "__integer", + "locationName": "maxResults" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "DescribeEndpointsResponse": { + "type": "structure", + "members": { + "Endpoints": { + "shape": "ListOfEndpoint", + "locationName": "endpoints" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "DropFrameTimecode": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "DvbNitSettings": { + "type": "structure", + "members": { + "NetworkId": { + "shape": "__integer", + "locationName": "networkId" + }, + "NetworkName": { + "shape": "__string", + "locationName": "networkName" + }, + "NitInterval": { + "shape": "__integer", + "locationName": "nitInterval" + } + } + }, + "DvbSdtSettings": { + "type": "structure", + "members": { + "OutputSdt": { + "shape": "OutputSdt", + "locationName": "outputSdt" + }, + "SdtInterval": { + "shape": "__integer", + "locationName": "sdtInterval" + }, + "ServiceName": { + "shape": "__string", + "locationName": "serviceName" + }, + "ServiceProviderName": { + "shape": "__string", + "locationName": "serviceProviderName" + } + } + }, + "DvbSubDestinationSettings": { + "type": "structure", + "members": { + "Alignment": { + "shape": "DvbSubtitleAlignment", + "locationName": "alignment" + }, + "BackgroundColor": { + "shape": "DvbSubtitleBackgroundColor", + "locationName": "backgroundColor" + }, + "BackgroundOpacity": { + "shape": "__integer", + "locationName": "backgroundOpacity" + }, + "FontColor": { + "shape": "DvbSubtitleFontColor", + "locationName": "fontColor" + }, + "FontOpacity": { + "shape": "__integer", + "locationName": "fontOpacity" + }, + "FontResolution": { + "shape": "__integer", + "locationName": "fontResolution" + }, + "FontSize": { + "shape": "__integer", + "locationName": "fontSize" + }, + "OutlineColor": { + "shape": "DvbSubtitleOutlineColor", + "locationName": "outlineColor" + }, + "OutlineSize": { + "shape": "__integer", + "locationName": "outlineSize" + }, + "ShadowColor": { + "shape": "DvbSubtitleShadowColor", + "locationName": "shadowColor" + }, + "ShadowOpacity": { + "shape": "__integer", + "locationName": "shadowOpacity" + }, + "ShadowXOffset": { + "shape": "__integer", + "locationName": "shadowXOffset" + }, + "ShadowYOffset": { + "shape": "__integer", + "locationName": "shadowYOffset" + }, + "TeletextSpacing": { + "shape": "DvbSubtitleTeletextSpacing", + "locationName": "teletextSpacing" + }, + "XPosition": { + "shape": "__integer", + "locationName": "xPosition" + }, + "YPosition": { + "shape": "__integer", + "locationName": "yPosition" + } + } + }, + "DvbSubSourceSettings": { + "type": "structure", + "members": { + "Pid": { + "shape": "__integer", + "locationName": "pid" + } + } + }, + "DvbSubtitleAlignment": { + "type": "string", + "enum": [ + "CENTERED", + "LEFT" + ] + }, + "DvbSubtitleBackgroundColor": { + "type": "string", + "enum": [ + "NONE", + "BLACK", + "WHITE" + ] + }, + "DvbSubtitleFontColor": { + "type": "string", + "enum": [ + "WHITE", + "BLACK", + "YELLOW", + "RED", + "GREEN", + "BLUE" + ] + }, + "DvbSubtitleOutlineColor": { + "type": "string", + "enum": [ + "BLACK", + "WHITE", + "YELLOW", + "RED", + "GREEN", + "BLUE" + ] + }, + "DvbSubtitleShadowColor": { + "type": "string", + "enum": [ + "NONE", + "BLACK", + "WHITE" + ] + }, + "DvbSubtitleTeletextSpacing": { + "type": "string", + "enum": [ + "FIXED_GRID", + "PROPORTIONAL" + ] + }, + "DvbTdtSettings": { + "type": "structure", + "members": { + "TdtInterval": { + "shape": "__integer", + "locationName": "tdtInterval" + } + } + }, + "Eac3AttenuationControl": { + "type": "string", + "enum": [ + "ATTENUATE_3_DB", + "NONE" + ] + }, + "Eac3BitstreamMode": { + "type": "string", + "enum": [ + "COMPLETE_MAIN", + "COMMENTARY", + "EMERGENCY", + "HEARING_IMPAIRED", + "VISUALLY_IMPAIRED" + ] + }, + "Eac3CodingMode": { + "type": "string", + "enum": [ + "CODING_MODE_1_0", + "CODING_MODE_2_0", + "CODING_MODE_3_2" + ] + }, + "Eac3DcFilter": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "Eac3DynamicRangeCompressionLine": { + "type": "string", + "enum": [ + "NONE", + "FILM_STANDARD", + "FILM_LIGHT", + "MUSIC_STANDARD", + "MUSIC_LIGHT", + "SPEECH" + ] + }, + "Eac3DynamicRangeCompressionRf": { + "type": "string", + "enum": [ + "NONE", + "FILM_STANDARD", + "FILM_LIGHT", + "MUSIC_STANDARD", + "MUSIC_LIGHT", + "SPEECH" + ] + }, + "Eac3LfeControl": { + "type": "string", + "enum": [ + "LFE", + "NO_LFE" + ] + }, + "Eac3LfeFilter": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "Eac3MetadataControl": { + "type": "string", + "enum": [ + "FOLLOW_INPUT", + "USE_CONFIGURED" + ] + }, + "Eac3PassthroughControl": { + "type": "string", + "enum": [ + "WHEN_POSSIBLE", + "NO_PASSTHROUGH" + ] + }, + "Eac3PhaseControl": { + "type": "string", + "enum": [ + "SHIFT_90_DEGREES", + "NO_SHIFT" + ] + }, + "Eac3Settings": { + "type": "structure", + "members": { + "AttenuationControl": { + "shape": "Eac3AttenuationControl", + "locationName": "attenuationControl" + }, + "Bitrate": { + "shape": "__integer", + "locationName": "bitrate" + }, + "BitstreamMode": { + "shape": "Eac3BitstreamMode", + "locationName": "bitstreamMode" + }, + "CodingMode": { + "shape": "Eac3CodingMode", + "locationName": "codingMode" + }, + "DcFilter": { + "shape": "Eac3DcFilter", + "locationName": "dcFilter" + }, + "Dialnorm": { + "shape": "__integer", + "locationName": "dialnorm" + }, + "DynamicRangeCompressionLine": { + "shape": "Eac3DynamicRangeCompressionLine", + "locationName": "dynamicRangeCompressionLine" + }, + "DynamicRangeCompressionRf": { + "shape": "Eac3DynamicRangeCompressionRf", + "locationName": "dynamicRangeCompressionRf" + }, + "LfeControl": { + "shape": "Eac3LfeControl", + "locationName": "lfeControl" + }, + "LfeFilter": { + "shape": "Eac3LfeFilter", + "locationName": "lfeFilter" + }, + "LoRoCenterMixLevel": { + "shape": "__double", + "locationName": "loRoCenterMixLevel" + }, + "LoRoSurroundMixLevel": { + "shape": "__double", + "locationName": "loRoSurroundMixLevel" + }, + "LtRtCenterMixLevel": { + "shape": "__double", + "locationName": "ltRtCenterMixLevel" + }, + "LtRtSurroundMixLevel": { + "shape": "__double", + "locationName": "ltRtSurroundMixLevel" + }, + "MetadataControl": { + "shape": "Eac3MetadataControl", + "locationName": "metadataControl" + }, + "PassthroughControl": { + "shape": "Eac3PassthroughControl", + "locationName": "passthroughControl" + }, + "PhaseControl": { + "shape": "Eac3PhaseControl", + "locationName": "phaseControl" + }, + "SampleRate": { + "shape": "__integer", + "locationName": "sampleRate" + }, + "StereoDownmix": { + "shape": "Eac3StereoDownmix", + "locationName": "stereoDownmix" + }, + "SurroundExMode": { + "shape": "Eac3SurroundExMode", + "locationName": "surroundExMode" + }, + "SurroundMode": { + "shape": "Eac3SurroundMode", + "locationName": "surroundMode" + } + } + }, + "Eac3StereoDownmix": { + "type": "string", + "enum": [ + "NOT_INDICATED", + "LO_RO", + "LT_RT", + "DPL2" + ] + }, + "Eac3SurroundExMode": { + "type": "string", + "enum": [ + "NOT_INDICATED", + "ENABLED", + "DISABLED" + ] + }, + "Eac3SurroundMode": { + "type": "string", + "enum": [ + "NOT_INDICATED", + "ENABLED", + "DISABLED" + ] + }, + "EmbeddedConvert608To708": { + "type": "string", + "enum": [ + "UPCONVERT", + "DISABLED" + ] + }, + "EmbeddedSourceSettings": { + "type": "structure", + "members": { + "Convert608To708": { + "shape": "EmbeddedConvert608To708", + "locationName": "convert608To708" + }, + "Source608ChannelNumber": { + "shape": "__integer", + "locationName": "source608ChannelNumber" + }, + "Source608TrackNumber": { + "shape": "__integer", + "locationName": "source608TrackNumber" + } + } + }, + "Endpoint": { + "type": "structure", + "members": { + "Url": { + "shape": "__string", + "locationName": "url" + } + } + }, + "ExceptionBody": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + } + }, + "F4vMoovPlacement": { + "type": "string", + "enum": [ + "PROGRESSIVE_DOWNLOAD", + "NORMAL" + ] + }, + "F4vSettings": { + "type": "structure", + "members": { + "MoovPlacement": { + "shape": "F4vMoovPlacement", + "locationName": "moovPlacement" + } + } + }, + "FileGroupSettings": { + "type": "structure", + "members": { + "Destination": { + "shape": "__string", + "locationName": "destination" + } + } + }, + "FileSourceConvert608To708": { + "type": "string", + "enum": [ + "UPCONVERT", + "DISABLED" + ] + }, + "FileSourceSettings": { + "type": "structure", + "members": { + "Convert608To708": { + "shape": "FileSourceConvert608To708", + "locationName": "convert608To708" + }, + "SourceFile": { + "shape": "__string", + "locationName": "sourceFile" + }, + "TimeDelta": { + "shape": "__integer", + "locationName": "timeDelta" + } + } + }, + "ForbiddenException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 403 + } + }, + "FrameCaptureSettings": { + "type": "structure", + "members": { + "FramerateDenominator": { + "shape": "__integer", + "locationName": "framerateDenominator" + }, + "FramerateNumerator": { + "shape": "__integer", + "locationName": "framerateNumerator" + }, + "MaxCaptures": { + "shape": "__integer", + "locationName": "maxCaptures" + }, + "Quality": { + "shape": "__integer", + "locationName": "quality" + } + } + }, + "GetJobRequest": { + "type": "structure", + "members": { + "Id": { + "shape": "__string", + "locationName": "id", + "location": "uri" + } + }, + "required": [ + "Id" + ] + }, + "GetJobResponse": { + "type": "structure", + "members": { + "Job": { + "shape": "Job", + "locationName": "job" + } + } + }, + "GetJobTemplateRequest": { + "type": "structure", + "members": { + "Name": { + "shape": "__string", + "locationName": "name", + "location": "uri" + } + }, + "required": [ + "Name" + ] + }, + "GetJobTemplateResponse": { + "type": "structure", + "members": { + "JobTemplate": { + "shape": "JobTemplate", + "locationName": "jobTemplate" + } + } + }, + "GetPresetRequest": { + "type": "structure", + "members": { + "Name": { + "shape": "__string", + "locationName": "name", + "location": "uri" + } + }, + "required": [ + "Name" + ] + }, + "GetPresetResponse": { + "type": "structure", + "members": { + "Preset": { + "shape": "Preset", + "locationName": "preset" + } + } + }, + "GetQueueRequest": { + "type": "structure", + "members": { + "Name": { + "shape": "__string", + "locationName": "name", + "location": "uri" + } + }, + "required": [ + "Name" + ] + }, + "GetQueueResponse": { + "type": "structure", + "members": { + "Queue": { + "shape": "Queue", + "locationName": "queue" + } + } + }, + "H264AdaptiveQuantization": { + "type": "string", + "enum": [ + "OFF", + "LOW", + "MEDIUM", + "HIGH", + "HIGHER", + "MAX" + ] + }, + "H264CodecLevel": { + "type": "string", + "enum": [ + "AUTO", + "LEVEL_1", + "LEVEL_1_1", + "LEVEL_1_2", + "LEVEL_1_3", + "LEVEL_2", + "LEVEL_2_1", + "LEVEL_2_2", + "LEVEL_3", + "LEVEL_3_1", + "LEVEL_3_2", + "LEVEL_4", + "LEVEL_4_1", + "LEVEL_4_2", + "LEVEL_5", + "LEVEL_5_1", + "LEVEL_5_2" + ] + }, + "H264CodecProfile": { + "type": "string", + "enum": [ + "BASELINE", + "HIGH", + "HIGH_10BIT", + "HIGH_422", + "HIGH_422_10BIT", + "MAIN" + ] + }, + "H264EntropyEncoding": { + "type": "string", + "enum": [ + "CABAC", + "CAVLC" + ] + }, + "H264FieldEncoding": { + "type": "string", + "enum": [ + "PAFF", + "FORCE_FIELD" + ] + }, + "H264FlickerAdaptiveQuantization": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264FramerateControl": { + "type": "string", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "H264FramerateConversionAlgorithm": { + "type": "string", + "enum": [ + "DUPLICATE_DROP", + "INTERPOLATE" + ] + }, + "H264GopBReference": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264GopSizeUnits": { + "type": "string", + "enum": [ + "FRAMES", + "SECONDS" + ] + }, + "H264InterlaceMode": { + "type": "string", + "enum": [ + "PROGRESSIVE", + "TOP_FIELD", + "BOTTOM_FIELD", + "FOLLOW_TOP_FIELD", + "FOLLOW_BOTTOM_FIELD" + ] + }, + "H264ParControl": { + "type": "string", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "H264QualityTuningLevel": { + "type": "string", + "enum": [ + "SINGLE_PASS", + "SINGLE_PASS_HQ", + "MULTI_PASS_HQ" + ] + }, + "H264RateControlMode": { + "type": "string", + "enum": [ + "VBR", + "CBR" + ] + }, + "H264RepeatPps": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264SceneChangeDetect": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264Settings": { + "type": "structure", + "members": { + "AdaptiveQuantization": { + "shape": "H264AdaptiveQuantization", + "locationName": "adaptiveQuantization" + }, + "Bitrate": { + "shape": "__integer", + "locationName": "bitrate" + }, + "CodecLevel": { + "shape": "H264CodecLevel", + "locationName": "codecLevel" + }, + "CodecProfile": { + "shape": "H264CodecProfile", + "locationName": "codecProfile" + }, + "EntropyEncoding": { + "shape": "H264EntropyEncoding", + "locationName": "entropyEncoding" + }, + "FieldEncoding": { + "shape": "H264FieldEncoding", + "locationName": "fieldEncoding" + }, + "FlickerAdaptiveQuantization": { + "shape": "H264FlickerAdaptiveQuantization", + "locationName": "flickerAdaptiveQuantization" + }, + "FramerateControl": { + "shape": "H264FramerateControl", + "locationName": "framerateControl" + }, + "FramerateConversionAlgorithm": { + "shape": "H264FramerateConversionAlgorithm", + "locationName": "framerateConversionAlgorithm" + }, + "FramerateDenominator": { + "shape": "__integer", + "locationName": "framerateDenominator" + }, + "FramerateNumerator": { + "shape": "__integer", + "locationName": "framerateNumerator" + }, + "GopBReference": { + "shape": "H264GopBReference", + "locationName": "gopBReference" + }, + "GopClosedCadence": { + "shape": "__integer", + "locationName": "gopClosedCadence" + }, + "GopSize": { + "shape": "__double", + "locationName": "gopSize" + }, + "GopSizeUnits": { + "shape": "H264GopSizeUnits", + "locationName": "gopSizeUnits" + }, + "HrdBufferInitialFillPercentage": { + "shape": "__integer", + "locationName": "hrdBufferInitialFillPercentage" + }, + "HrdBufferSize": { + "shape": "__integer", + "locationName": "hrdBufferSize" + }, + "InterlaceMode": { + "shape": "H264InterlaceMode", + "locationName": "interlaceMode" + }, + "MaxBitrate": { + "shape": "__integer", + "locationName": "maxBitrate" + }, + "MinIInterval": { + "shape": "__integer", + "locationName": "minIInterval" + }, + "NumberBFramesBetweenReferenceFrames": { + "shape": "__integer", + "locationName": "numberBFramesBetweenReferenceFrames" + }, + "NumberReferenceFrames": { + "shape": "__integer", + "locationName": "numberReferenceFrames" + }, + "ParControl": { + "shape": "H264ParControl", + "locationName": "parControl" + }, + "ParDenominator": { + "shape": "__integer", + "locationName": "parDenominator" + }, + "ParNumerator": { + "shape": "__integer", + "locationName": "parNumerator" + }, + "QualityTuningLevel": { + "shape": "H264QualityTuningLevel", + "locationName": "qualityTuningLevel" + }, + "RateControlMode": { + "shape": "H264RateControlMode", + "locationName": "rateControlMode" + }, + "RepeatPps": { + "shape": "H264RepeatPps", + "locationName": "repeatPps" + }, + "SceneChangeDetect": { + "shape": "H264SceneChangeDetect", + "locationName": "sceneChangeDetect" + }, + "Slices": { + "shape": "__integer", + "locationName": "slices" + }, + "SlowPal": { + "shape": "H264SlowPal", + "locationName": "slowPal" + }, + "Softness": { + "shape": "__integer", + "locationName": "softness" + }, + "SpatialAdaptiveQuantization": { + "shape": "H264SpatialAdaptiveQuantization", + "locationName": "spatialAdaptiveQuantization" + }, + "Syntax": { + "shape": "H264Syntax", + "locationName": "syntax" + }, + "Telecine": { + "shape": "H264Telecine", + "locationName": "telecine" + }, + "TemporalAdaptiveQuantization": { + "shape": "H264TemporalAdaptiveQuantization", + "locationName": "temporalAdaptiveQuantization" + }, + "UnregisteredSeiTimecode": { + "shape": "H264UnregisteredSeiTimecode", + "locationName": "unregisteredSeiTimecode" + } + } + }, + "H264SlowPal": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264SpatialAdaptiveQuantization": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264Syntax": { + "type": "string", + "enum": [ + "DEFAULT", + "RP2027" + ] + }, + "H264Telecine": { + "type": "string", + "enum": [ + "NONE", + "SOFT", + "HARD" + ] + }, + "H264TemporalAdaptiveQuantization": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264UnregisteredSeiTimecode": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H265AdaptiveQuantization": { + "type": "string", + "enum": [ + "OFF", + "LOW", + "MEDIUM", + "HIGH", + "HIGHER", + "MAX" + ] + }, + "H265AlternateTransferFunctionSei": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H265CodecLevel": { + "type": "string", + "enum": [ + "AUTO", + "LEVEL_1", + "LEVEL_2", + "LEVEL_2_1", + "LEVEL_3", + "LEVEL_3_1", + "LEVEL_4", + "LEVEL_4_1", + "LEVEL_5", + "LEVEL_5_1", + "LEVEL_5_2", + "LEVEL_6", + "LEVEL_6_1", + "LEVEL_6_2" + ] + }, + "H265CodecProfile": { + "type": "string", + "enum": [ + "MAIN_MAIN", + "MAIN_HIGH", + "MAIN10_MAIN", + "MAIN10_HIGH", + "MAIN_422_8BIT_MAIN", + "MAIN_422_8BIT_HIGH", + "MAIN_422_10BIT_MAIN", + "MAIN_422_10BIT_HIGH" + ] + }, + "H265FlickerAdaptiveQuantization": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H265FramerateControl": { + "type": "string", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "H265FramerateConversionAlgorithm": { + "type": "string", + "enum": [ + "DUPLICATE_DROP", + "INTERPOLATE" + ] + }, + "H265GopBReference": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H265GopSizeUnits": { + "type": "string", + "enum": [ + "FRAMES", + "SECONDS" + ] + }, + "H265InterlaceMode": { + "type": "string", + "enum": [ + "PROGRESSIVE", + "TOP_FIELD", + "BOTTOM_FIELD", + "FOLLOW_TOP_FIELD", + "FOLLOW_BOTTOM_FIELD" + ] + }, + "H265ParControl": { + "type": "string", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "H265QualityTuningLevel": { + "type": "string", + "enum": [ + "SINGLE_PASS", + "SINGLE_PASS_HQ", + "MULTI_PASS_HQ" + ] + }, + "H265RateControlMode": { + "type": "string", + "enum": [ + "VBR", + "CBR" + ] + }, + "H265SampleAdaptiveOffsetFilterMode": { + "type": "string", + "enum": [ + "DEFAULT", + "ADAPTIVE", + "OFF" + ] + }, + "H265SceneChangeDetect": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H265Settings": { + "type": "structure", + "members": { + "AdaptiveQuantization": { + "shape": "H265AdaptiveQuantization", + "locationName": "adaptiveQuantization" + }, + "AlternateTransferFunctionSei": { + "shape": "H265AlternateTransferFunctionSei", + "locationName": "alternateTransferFunctionSei" + }, + "Bitrate": { + "shape": "__integer", + "locationName": "bitrate" + }, + "CodecLevel": { + "shape": "H265CodecLevel", + "locationName": "codecLevel" + }, + "CodecProfile": { + "shape": "H265CodecProfile", + "locationName": "codecProfile" + }, + "FlickerAdaptiveQuantization": { + "shape": "H265FlickerAdaptiveQuantization", + "locationName": "flickerAdaptiveQuantization" + }, + "FramerateControl": { + "shape": "H265FramerateControl", + "locationName": "framerateControl" + }, + "FramerateConversionAlgorithm": { + "shape": "H265FramerateConversionAlgorithm", + "locationName": "framerateConversionAlgorithm" + }, + "FramerateDenominator": { + "shape": "__integer", + "locationName": "framerateDenominator" + }, + "FramerateNumerator": { + "shape": "__integer", + "locationName": "framerateNumerator" + }, + "GopBReference": { + "shape": "H265GopBReference", + "locationName": "gopBReference" + }, + "GopClosedCadence": { + "shape": "__integer", + "locationName": "gopClosedCadence" + }, + "GopSize": { + "shape": "__double", + "locationName": "gopSize" + }, + "GopSizeUnits": { + "shape": "H265GopSizeUnits", + "locationName": "gopSizeUnits" + }, + "HrdBufferInitialFillPercentage": { + "shape": "__integer", + "locationName": "hrdBufferInitialFillPercentage" + }, + "HrdBufferSize": { + "shape": "__integer", + "locationName": "hrdBufferSize" + }, + "InterlaceMode": { + "shape": "H265InterlaceMode", + "locationName": "interlaceMode" + }, + "MaxBitrate": { + "shape": "__integer", + "locationName": "maxBitrate" + }, + "MinIInterval": { + "shape": "__integer", + "locationName": "minIInterval" + }, + "NumberBFramesBetweenReferenceFrames": { + "shape": "__integer", + "locationName": "numberBFramesBetweenReferenceFrames" + }, + "NumberReferenceFrames": { + "shape": "__integer", + "locationName": "numberReferenceFrames" + }, + "ParControl": { + "shape": "H265ParControl", + "locationName": "parControl" + }, + "ParDenominator": { + "shape": "__integer", + "locationName": "parDenominator" + }, + "ParNumerator": { + "shape": "__integer", + "locationName": "parNumerator" + }, + "QualityTuningLevel": { + "shape": "H265QualityTuningLevel", + "locationName": "qualityTuningLevel" + }, + "RateControlMode": { + "shape": "H265RateControlMode", + "locationName": "rateControlMode" + }, + "SampleAdaptiveOffsetFilterMode": { + "shape": "H265SampleAdaptiveOffsetFilterMode", + "locationName": "sampleAdaptiveOffsetFilterMode" + }, + "SceneChangeDetect": { + "shape": "H265SceneChangeDetect", + "locationName": "sceneChangeDetect" + }, + "Slices": { + "shape": "__integer", + "locationName": "slices" + }, + "SlowPal": { + "shape": "H265SlowPal", + "locationName": "slowPal" + }, + "SpatialAdaptiveQuantization": { + "shape": "H265SpatialAdaptiveQuantization", + "locationName": "spatialAdaptiveQuantization" + }, + "Telecine": { + "shape": "H265Telecine", + "locationName": "telecine" + }, + "TemporalAdaptiveQuantization": { + "shape": "H265TemporalAdaptiveQuantization", + "locationName": "temporalAdaptiveQuantization" + }, + "TemporalIds": { + "shape": "H265TemporalIds", + "locationName": "temporalIds" + }, + "Tiles": { + "shape": "H265Tiles", + "locationName": "tiles" + }, + "UnregisteredSeiTimecode": { + "shape": "H265UnregisteredSeiTimecode", + "locationName": "unregisteredSeiTimecode" + } + } + }, + "H265SlowPal": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H265SpatialAdaptiveQuantization": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H265Telecine": { + "type": "string", + "enum": [ + "NONE", + "SOFT", + "HARD" + ] + }, + "H265TemporalAdaptiveQuantization": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H265TemporalIds": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H265Tiles": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H265UnregisteredSeiTimecode": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "Hdr10Metadata": { + "type": "structure", + "members": { + "BluePrimaryX": { + "shape": "__integer", + "locationName": "bluePrimaryX" + }, + "BluePrimaryY": { + "shape": "__integer", + "locationName": "bluePrimaryY" + }, + "GreenPrimaryX": { + "shape": "__integer", + "locationName": "greenPrimaryX" + }, + "GreenPrimaryY": { + "shape": "__integer", + "locationName": "greenPrimaryY" + }, + "MaxContentLightLevel": { + "shape": "__integer", + "locationName": "maxContentLightLevel" + }, + "MaxFrameAverageLightLevel": { + "shape": "__integer", + "locationName": "maxFrameAverageLightLevel" + }, + "MaxLuminance": { + "shape": "__integer", + "locationName": "maxLuminance" + }, + "MinLuminance": { + "shape": "__integer", + "locationName": "minLuminance" + }, + "RedPrimaryX": { + "shape": "__integer", + "locationName": "redPrimaryX" + }, + "RedPrimaryY": { + "shape": "__integer", + "locationName": "redPrimaryY" + }, + "WhitePointX": { + "shape": "__integer", + "locationName": "whitePointX" + }, + "WhitePointY": { + "shape": "__integer", + "locationName": "whitePointY" + } + } + }, + "HlsAdMarkers": { + "type": "string", + "enum": [ + "ELEMENTAL", + "ELEMENTAL_SCTE35" + ] + }, + "HlsAudioTrackType": { + "type": "string", + "enum": [ + "ALTERNATE_AUDIO_AUTO_SELECT_DEFAULT", + "ALTERNATE_AUDIO_AUTO_SELECT", + "ALTERNATE_AUDIO_NOT_AUTO_SELECT", + "AUDIO_ONLY_VARIANT_STREAM" + ] + }, + "HlsCaptionLanguageMapping": { + "type": "structure", + "members": { + "CaptionChannel": { + "shape": "__integer", + "locationName": "captionChannel" + }, + "LanguageCode": { + "shape": "LanguageCode", + "locationName": "languageCode" + }, + "LanguageDescription": { + "shape": "__string", + "locationName": "languageDescription" + } + } + }, + "HlsCaptionLanguageSetting": { + "type": "string", + "enum": [ + "INSERT", + "OMIT", + "NONE" + ] + }, + "HlsClientCache": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "HlsCodecSpecification": { + "type": "string", + "enum": [ + "RFC_6381", + "RFC_4281" + ] + }, + "HlsDirectoryStructure": { + "type": "string", + "enum": [ + "SINGLE_DIRECTORY", + "SUBDIRECTORY_PER_STREAM" + ] + }, + "HlsEncryptionSettings": { + "type": "structure", + "members": { + "ConstantInitializationVector": { + "shape": "__string", + "locationName": "constantInitializationVector" + }, + "EncryptionMethod": { + "shape": "HlsEncryptionType", + "locationName": "encryptionMethod" + }, + "InitializationVectorInManifest": { + "shape": "HlsInitializationVectorInManifest", + "locationName": "initializationVectorInManifest" + }, + "SpekeKeyProvider": { + "shape": "SpekeKeyProvider", + "locationName": "spekeKeyProvider" + }, + "StaticKeyProvider": { + "shape": "StaticKeyProvider", + "locationName": "staticKeyProvider" + }, + "Type": { + "shape": "HlsKeyProviderType", + "locationName": "type" + } + } + }, + "HlsEncryptionType": { + "type": "string", + "enum": [ + "AES128", + "SAMPLE_AES" + ] + }, + "HlsGroupSettings": { + "type": "structure", + "members": { + "AdMarkers": { + "shape": "ListOfHlsAdMarkers", + "locationName": "adMarkers" + }, + "BaseUrl": { + "shape": "__string", + "locationName": "baseUrl" + }, + "CaptionLanguageMappings": { + "shape": "ListOfHlsCaptionLanguageMapping", + "locationName": "captionLanguageMappings" + }, + "CaptionLanguageSetting": { + "shape": "HlsCaptionLanguageSetting", + "locationName": "captionLanguageSetting" + }, + "ClientCache": { + "shape": "HlsClientCache", + "locationName": "clientCache" + }, + "CodecSpecification": { + "shape": "HlsCodecSpecification", + "locationName": "codecSpecification" + }, + "Destination": { + "shape": "__string", + "locationName": "destination" + }, + "DirectoryStructure": { + "shape": "HlsDirectoryStructure", + "locationName": "directoryStructure" + }, + "Encryption": { + "shape": "HlsEncryptionSettings", + "locationName": "encryption" + }, + "ManifestCompression": { + "shape": "HlsManifestCompression", + "locationName": "manifestCompression" + }, + "ManifestDurationFormat": { + "shape": "HlsManifestDurationFormat", + "locationName": "manifestDurationFormat" + }, + "MinSegmentLength": { + "shape": "__integer", + "locationName": "minSegmentLength" + }, + "OutputSelection": { + "shape": "HlsOutputSelection", + "locationName": "outputSelection" + }, + "ProgramDateTime": { + "shape": "HlsProgramDateTime", + "locationName": "programDateTime" + }, + "ProgramDateTimePeriod": { + "shape": "__integer", + "locationName": "programDateTimePeriod" + }, + "SegmentControl": { + "shape": "HlsSegmentControl", + "locationName": "segmentControl" + }, + "SegmentLength": { + "shape": "__integer", + "locationName": "segmentLength" + }, + "SegmentsPerSubdirectory": { + "shape": "__integer", + "locationName": "segmentsPerSubdirectory" + }, + "StreamInfResolution": { + "shape": "HlsStreamInfResolution", + "locationName": "streamInfResolution" + }, + "TimedMetadataId3Frame": { + "shape": "HlsTimedMetadataId3Frame", + "locationName": "timedMetadataId3Frame" + }, + "TimedMetadataId3Period": { + "shape": "__integer", + "locationName": "timedMetadataId3Period" + }, + "TimestampDeltaMilliseconds": { + "shape": "__integer", + "locationName": "timestampDeltaMilliseconds" + } + } + }, + "HlsIFrameOnlyManifest": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ] + }, + "HlsInitializationVectorInManifest": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ] + }, + "HlsKeyProviderType": { + "type": "string", + "enum": [ + "SPEKE", + "STATIC_KEY" + ] + }, + "HlsManifestCompression": { + "type": "string", + "enum": [ + "GZIP", + "NONE" + ] + }, + "HlsManifestDurationFormat": { + "type": "string", + "enum": [ + "FLOATING_POINT", + "INTEGER" + ] + }, + "HlsOutputSelection": { + "type": "string", + "enum": [ + "MANIFESTS_AND_SEGMENTS", + "SEGMENTS_ONLY" + ] + }, + "HlsProgramDateTime": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ] + }, + "HlsSegmentControl": { + "type": "string", + "enum": [ + "SINGLE_FILE", + "SEGMENTED_FILES" + ] + }, + "HlsSettings": { + "type": "structure", + "members": { + "AudioGroupId": { + "shape": "__string", + "locationName": "audioGroupId" + }, + "AudioRenditionSets": { + "shape": "__string", + "locationName": "audioRenditionSets" + }, + "AudioTrackType": { + "shape": "HlsAudioTrackType", + "locationName": "audioTrackType" + }, + "IFrameOnlyManifest": { + "shape": "HlsIFrameOnlyManifest", + "locationName": "iFrameOnlyManifest" + }, + "SegmentModifier": { + "shape": "__string", + "locationName": "segmentModifier" + } + } + }, + "HlsStreamInfResolution": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ] + }, + "HlsTimedMetadataId3Frame": { + "type": "string", + "enum": [ + "NONE", + "PRIV", + "TDRL" + ] + }, + "Id3Insertion": { + "type": "structure", + "members": { + "Id3": { + "shape": "__string", + "locationName": "id3" + }, + "Timecode": { + "shape": "__string", + "locationName": "timecode" + } + } + }, + "ImageInserter": { + "type": "structure", + "members": { + "InsertableImages": { + "shape": "ListOfInsertableImage", + "locationName": "insertableImages" + } + } + }, + "Input": { + "type": "structure", + "members": { + "AudioSelectorGroups": { + "shape": "MapOfAudioSelectorGroup", + "locationName": "audioSelectorGroups" + }, + "AudioSelectors": { + "shape": "MapOfAudioSelector", + "locationName": "audioSelectors" + }, + "CaptionSelectors": { + "shape": "MapOfCaptionSelector", + "locationName": "captionSelectors" + }, + "DeblockFilter": { + "shape": "InputDeblockFilter", + "locationName": "deblockFilter" + }, + "DenoiseFilter": { + "shape": "InputDenoiseFilter", + "locationName": "denoiseFilter" + }, + "FileInput": { + "shape": "__string", + "locationName": "fileInput" + }, + "FilterEnable": { + "shape": "InputFilterEnable", + "locationName": "filterEnable" + }, + "FilterStrength": { + "shape": "__integer", + "locationName": "filterStrength" + }, + "InputClippings": { + "shape": "ListOfInputClipping", + "locationName": "inputClippings" + }, + "ProgramNumber": { + "shape": "__integer", + "locationName": "programNumber" + }, + "PsiControl": { + "shape": "InputPsiControl", + "locationName": "psiControl" + }, + "TimecodeSource": { + "shape": "InputTimecodeSource", + "locationName": "timecodeSource" + }, + "VideoSelector": { + "shape": "VideoSelector", + "locationName": "videoSelector" + } + } + }, + "InputClipping": { + "type": "structure", + "members": { + "EndTimecode": { + "shape": "__string", + "locationName": "endTimecode" + }, + "StartTimecode": { + "shape": "__string", + "locationName": "startTimecode" + } + } + }, + "InputDeblockFilter": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "InputDenoiseFilter": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "InputFilterEnable": { + "type": "string", + "enum": [ + "AUTO", + "DISABLE", + "FORCE" + ] + }, + "InputPsiControl": { + "type": "string", + "enum": [ + "IGNORE_PSI", + "USE_PSI" + ] + }, + "InputTemplate": { + "type": "structure", + "members": { + "AudioSelectorGroups": { + "shape": "MapOfAudioSelectorGroup", + "locationName": "audioSelectorGroups" + }, + "AudioSelectors": { + "shape": "MapOfAudioSelector", + "locationName": "audioSelectors" + }, + "CaptionSelectors": { + "shape": "MapOfCaptionSelector", + "locationName": "captionSelectors" + }, + "DeblockFilter": { + "shape": "InputDeblockFilter", + "locationName": "deblockFilter" + }, + "DenoiseFilter": { + "shape": "InputDenoiseFilter", + "locationName": "denoiseFilter" + }, + "FilterEnable": { + "shape": "InputFilterEnable", + "locationName": "filterEnable" + }, + "FilterStrength": { + "shape": "__integer", + "locationName": "filterStrength" + }, + "InputClippings": { + "shape": "ListOfInputClipping", + "locationName": "inputClippings" + }, + "ProgramNumber": { + "shape": "__integer", + "locationName": "programNumber" + }, + "PsiControl": { + "shape": "InputPsiControl", + "locationName": "psiControl" + }, + "TimecodeSource": { + "shape": "InputTimecodeSource", + "locationName": "timecodeSource" + }, + "VideoSelector": { + "shape": "VideoSelector", + "locationName": "videoSelector" + } + } + }, + "InputTimecodeSource": { + "type": "string", + "enum": [ + "EMBEDDED", + "ZEROBASED", + "SPECIFIEDSTART" + ] + }, + "InsertableImage": { + "type": "structure", + "members": { + "Duration": { + "shape": "__integer", + "locationName": "duration" + }, + "FadeIn": { + "shape": "__integer", + "locationName": "fadeIn" + }, + "FadeOut": { + "shape": "__integer", + "locationName": "fadeOut" + }, + "Height": { + "shape": "__integer", + "locationName": "height" + }, + "ImageInserterInput": { + "shape": "__string", + "locationName": "imageInserterInput" + }, + "ImageX": { + "shape": "__integer", + "locationName": "imageX" + }, + "ImageY": { + "shape": "__integer", + "locationName": "imageY" + }, + "Layer": { + "shape": "__integer", + "locationName": "layer" + }, + "Opacity": { + "shape": "__integer", + "locationName": "opacity" + }, + "StartTime": { + "shape": "__string", + "locationName": "startTime" + }, + "Width": { + "shape": "__integer", + "locationName": "width" + } + } + }, + "InternalServerErrorException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 500 + } + }, + "Job": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "CreatedAt": { + "shape": "__timestamp", + "locationName": "createdAt" + }, + "ErrorCode": { + "shape": "__integer", + "locationName": "errorCode" + }, + "ErrorMessage": { + "shape": "__string", + "locationName": "errorMessage" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "JobTemplate": { + "shape": "__string", + "locationName": "jobTemplate" + }, + "OutputGroupDetails": { + "shape": "ListOfOutputGroupDetail", + "locationName": "outputGroupDetails" + }, + "Queue": { + "shape": "__string", + "locationName": "queue" + }, + "Role": { + "shape": "__string", + "locationName": "role" + }, + "Settings": { + "shape": "JobSettings", + "locationName": "settings" + }, + "Status": { + "shape": "JobStatus", + "locationName": "status" + }, + "Timing": { + "shape": "Timing", + "locationName": "timing" + }, + "UserMetadata": { + "shape": "MapOf__string", + "locationName": "userMetadata" + } + } + }, + "JobSettings": { + "type": "structure", + "members": { + "AdAvailOffset": { + "shape": "__integer", + "locationName": "adAvailOffset" + }, + "AvailBlanking": { + "shape": "AvailBlanking", + "locationName": "availBlanking" + }, + "Inputs": { + "shape": "ListOfInput", + "locationName": "inputs" + }, + "NielsenConfiguration": { + "shape": "NielsenConfiguration", + "locationName": "nielsenConfiguration" + }, + "OutputGroups": { + "shape": "ListOfOutputGroup", + "locationName": "outputGroups" + }, + "TimecodeConfig": { + "shape": "TimecodeConfig", + "locationName": "timecodeConfig" + }, + "TimedMetadataInsertion": { + "shape": "TimedMetadataInsertion", + "locationName": "timedMetadataInsertion" + } + } + }, + "JobStatus": { + "type": "string", + "enum": [ + "SUBMITTED", + "PROGRESSING", + "COMPLETE", + "CANCELED", + "ERROR" + ] + }, + "JobTemplate": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "Category": { + "shape": "__string", + "locationName": "category" + }, + "CreatedAt": { + "shape": "__timestamp", + "locationName": "createdAt" + }, + "Description": { + "shape": "__string", + "locationName": "description" + }, + "LastUpdated": { + "shape": "__timestamp", + "locationName": "lastUpdated" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "Queue": { + "shape": "__string", + "locationName": "queue" + }, + "Settings": { + "shape": "JobTemplateSettings", + "locationName": "settings" + }, + "Type": { + "shape": "Type", + "locationName": "type" + } + } + }, + "JobTemplateListBy": { + "type": "string", + "enum": [ + "NAME", + "CREATION_DATE", + "SYSTEM" + ] + }, + "JobTemplateSettings": { + "type": "structure", + "members": { + "AdAvailOffset": { + "shape": "__integer", + "locationName": "adAvailOffset" + }, + "AvailBlanking": { + "shape": "AvailBlanking", + "locationName": "availBlanking" + }, + "Inputs": { + "shape": "ListOfInputTemplate", + "locationName": "inputs" + }, + "NielsenConfiguration": { + "shape": "NielsenConfiguration", + "locationName": "nielsenConfiguration" + }, + "OutputGroups": { + "shape": "ListOfOutputGroup", + "locationName": "outputGroups" + }, + "TimecodeConfig": { + "shape": "TimecodeConfig", + "locationName": "timecodeConfig" + }, + "TimedMetadataInsertion": { + "shape": "TimedMetadataInsertion", + "locationName": "timedMetadataInsertion" + } + } + }, + "LanguageCode": { + "type": "string", + "enum": [ + "ENG", + "SPA", + "FRA", + "DEU", + "GER", + "ZHO", + "ARA", + "HIN", + "JPN", + "RUS", + "POR", + "ITA", + "URD", + "VIE", + "KOR", + "PAN", + "ABK", + "AAR", + "AFR", + "AKA", + "SQI", + "AMH", + "ARG", + "HYE", + "ASM", + "AVA", + "AVE", + "AYM", + "AZE", + "BAM", + "BAK", + "EUS", + "BEL", + "BEN", + "BIH", + "BIS", + "BOS", + "BRE", + "BUL", + "MYA", + "CAT", + "KHM", + "CHA", + "CHE", + "NYA", + "CHU", + "CHV", + "COR", + "COS", + "CRE", + "HRV", + "CES", + "DAN", + "DIV", + "NLD", + "DZO", + "ENM", + "EPO", + "EST", + "EWE", + "FAO", + "FIJ", + "FIN", + "FRM", + "FUL", + "GLA", + "GLG", + "LUG", + "KAT", + "ELL", + "GRN", + "GUJ", + "HAT", + "HAU", + "HEB", + "HER", + "HMO", + "HUN", + "ISL", + "IDO", + "IBO", + "IND", + "INA", + "ILE", + "IKU", + "IPK", + "GLE", + "JAV", + "KAL", + "KAN", + "KAU", + "KAS", + "KAZ", + "KIK", + "KIN", + "KIR", + "KOM", + "KON", + "KUA", + "KUR", + "LAO", + "LAT", + "LAV", + "LIM", + "LIN", + "LIT", + "LUB", + "LTZ", + "MKD", + "MLG", + "MSA", + "MAL", + "MLT", + "GLV", + "MRI", + "MAR", + "MAH", + "MON", + "NAU", + "NAV", + "NDE", + "NBL", + "NDO", + "NEP", + "SME", + "NOR", + "NOB", + "NNO", + "OCI", + "OJI", + "ORI", + "ORM", + "OSS", + "PLI", + "FAS", + "POL", + "PUS", + "QUE", + "QAA", + "RON", + "ROH", + "RUN", + "SMO", + "SAG", + "SAN", + "SRD", + "SRB", + "SNA", + "III", + "SND", + "SIN", + "SLK", + "SLV", + "SOM", + "SOT", + "SUN", + "SWA", + "SSW", + "SWE", + "TGL", + "TAH", + "TGK", + "TAM", + "TAT", + "TEL", + "THA", + "BOD", + "TIR", + "TON", + "TSO", + "TSN", + "TUR", + "TUK", + "TWI", + "UIG", + "UKR", + "UZB", + "VEN", + "VOL", + "WLN", + "CYM", + "FRY", + "WOL", + "XHO", + "YID", + "YOR", + "ZHA", + "ZUL", + "ORJ", + "QPC", + "TNG" + ] + }, + "ListJobTemplatesRequest": { + "type": "structure", + "members": { + "Category": { + "shape": "__string", + "locationName": "category", + "location": "querystring" + }, + "ListBy": { + "shape": "JobTemplateListBy", + "locationName": "listBy", + "location": "querystring" + }, + "MaxResults": { + "shape": "__integer", + "locationName": "maxResults", + "location": "querystring" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken", + "location": "querystring" + }, + "Order": { + "shape": "Order", + "locationName": "order", + "location": "querystring" + } + } + }, + "ListJobTemplatesResponse": { + "type": "structure", + "members": { + "JobTemplates": { + "shape": "ListOfJobTemplate", + "locationName": "jobTemplates" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListJobsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "shape": "__integer", + "locationName": "maxResults", + "location": "querystring" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken", + "location": "querystring" + }, + "Order": { + "shape": "Order", + "locationName": "order", + "location": "querystring" + }, + "Queue": { + "shape": "__string", + "locationName": "queue", + "location": "querystring" + }, + "Status": { + "shape": "JobStatus", + "locationName": "status", + "location": "querystring" + } + } + }, + "ListJobsResponse": { + "type": "structure", + "members": { + "Jobs": { + "shape": "ListOfJob", + "locationName": "jobs" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListOfAudioDescription": { + "type": "list", + "member": { + "shape": "AudioDescription" + } + }, + "ListOfCaptionDescription": { + "type": "list", + "member": { + "shape": "CaptionDescription" + } + }, + "ListOfCaptionDescriptionPreset": { + "type": "list", + "member": { + "shape": "CaptionDescriptionPreset" + } + }, + "ListOfEndpoint": { + "type": "list", + "member": { + "shape": "Endpoint" + } + }, + "ListOfHlsAdMarkers": { + "type": "list", + "member": { + "shape": "HlsAdMarkers" + } + }, + "ListOfHlsCaptionLanguageMapping": { + "type": "list", + "member": { + "shape": "HlsCaptionLanguageMapping" + } + }, + "ListOfId3Insertion": { + "type": "list", + "member": { + "shape": "Id3Insertion" + } + }, + "ListOfInput": { + "type": "list", + "member": { + "shape": "Input" + } + }, + "ListOfInputClipping": { + "type": "list", + "member": { + "shape": "InputClipping" + } + }, + "ListOfInputTemplate": { + "type": "list", + "member": { + "shape": "InputTemplate" + } + }, + "ListOfInsertableImage": { + "type": "list", + "member": { + "shape": "InsertableImage" + } + }, + "ListOfJob": { + "type": "list", + "member": { + "shape": "Job" + } + }, + "ListOfJobTemplate": { + "type": "list", + "member": { + "shape": "JobTemplate" + } + }, + "ListOfOutput": { + "type": "list", + "member": { + "shape": "Output" + } + }, + "ListOfOutputChannelMapping": { + "type": "list", + "member": { + "shape": "OutputChannelMapping" + } + }, + "ListOfOutputDetail": { + "type": "list", + "member": { + "shape": "OutputDetail" + } + }, + "ListOfOutputGroup": { + "type": "list", + "member": { + "shape": "OutputGroup" + } + }, + "ListOfOutputGroupDetail": { + "type": "list", + "member": { + "shape": "OutputGroupDetail" + } + }, + "ListOfPreset": { + "type": "list", + "member": { + "shape": "Preset" + } + }, + "ListOfQueue": { + "type": "list", + "member": { + "shape": "Queue" + } + }, + "ListOf__integer": { + "type": "list", + "member": { + "shape": "__integer" + } + }, + "ListOf__string": { + "type": "list", + "member": { + "shape": "__string" + } + }, + "ListPresetsRequest": { + "type": "structure", + "members": { + "Category": { + "shape": "__string", + "locationName": "category", + "location": "querystring" + }, + "ListBy": { + "shape": "PresetListBy", + "locationName": "listBy", + "location": "querystring" + }, + "MaxResults": { + "shape": "__integer", + "locationName": "maxResults", + "location": "querystring" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken", + "location": "querystring" + }, + "Order": { + "shape": "Order", + "locationName": "order", + "location": "querystring" + } + } + }, + "ListPresetsResponse": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + }, + "Presets": { + "shape": "ListOfPreset", + "locationName": "presets" + } + } + }, + "ListQueuesRequest": { + "type": "structure", + "members": { + "ListBy": { + "shape": "QueueListBy", + "locationName": "listBy", + "location": "querystring" + }, + "MaxResults": { + "shape": "__integer", + "locationName": "maxResults", + "location": "querystring" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken", + "location": "querystring" + }, + "Order": { + "shape": "Order", + "locationName": "order", + "location": "querystring" + } + } + }, + "ListQueuesResponse": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + }, + "Queues": { + "shape": "ListOfQueue", + "locationName": "queues" + } + } + }, + "M2tsAudioBufferModel": { + "type": "string", + "enum": [ + "DVB", + "ATSC" + ] + }, + "M2tsBufferModel": { + "type": "string", + "enum": [ + "MULTIPLEX", + "NONE" + ] + }, + "M2tsEbpAudioInterval": { + "type": "string", + "enum": [ + "VIDEO_AND_FIXED_INTERVALS", + "VIDEO_INTERVAL" + ] + }, + "M2tsEbpPlacement": { + "type": "string", + "enum": [ + "VIDEO_AND_AUDIO_PIDS", + "VIDEO_PID" + ] + }, + "M2tsEsRateInPes": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ] + }, + "M2tsPcrControl": { + "type": "string", + "enum": [ + "PCR_EVERY_PES_PACKET", + "CONFIGURED_PCR_PERIOD" + ] + }, + "M2tsRateMode": { + "type": "string", + "enum": [ + "VBR", + "CBR" + ] + }, + "M2tsScte35Source": { + "type": "string", + "enum": [ + "PASSTHROUGH", + "NONE" + ] + }, + "M2tsSegmentationMarkers": { + "type": "string", + "enum": [ + "NONE", + "RAI_SEGSTART", + "RAI_ADAPT", + "PSI_SEGSTART", + "EBP", + "EBP_LEGACY" + ] + }, + "M2tsSegmentationStyle": { + "type": "string", + "enum": [ + "MAINTAIN_CADENCE", + "RESET_CADENCE" + ] + }, + "M2tsSettings": { + "type": "structure", + "members": { + "AudioBufferModel": { + "shape": "M2tsAudioBufferModel", + "locationName": "audioBufferModel" + }, + "AudioFramesPerPes": { + "shape": "__integer", + "locationName": "audioFramesPerPes" + }, + "AudioPids": { + "shape": "ListOf__integer", + "locationName": "audioPids" + }, + "Bitrate": { + "shape": "__integer", + "locationName": "bitrate" + }, + "BufferModel": { + "shape": "M2tsBufferModel", + "locationName": "bufferModel" + }, + "DvbNitSettings": { + "shape": "DvbNitSettings", + "locationName": "dvbNitSettings" + }, + "DvbSdtSettings": { + "shape": "DvbSdtSettings", + "locationName": "dvbSdtSettings" + }, + "DvbSubPids": { + "shape": "ListOf__integer", + "locationName": "dvbSubPids" + }, + "DvbTdtSettings": { + "shape": "DvbTdtSettings", + "locationName": "dvbTdtSettings" + }, + "DvbTeletextPid": { + "shape": "__integer", + "locationName": "dvbTeletextPid" + }, + "EbpAudioInterval": { + "shape": "M2tsEbpAudioInterval", + "locationName": "ebpAudioInterval" + }, + "EbpPlacement": { + "shape": "M2tsEbpPlacement", + "locationName": "ebpPlacement" + }, + "EsRateInPes": { + "shape": "M2tsEsRateInPes", + "locationName": "esRateInPes" + }, + "FragmentTime": { + "shape": "__double", + "locationName": "fragmentTime" + }, + "MaxPcrInterval": { + "shape": "__integer", + "locationName": "maxPcrInterval" + }, + "MinEbpInterval": { + "shape": "__integer", + "locationName": "minEbpInterval" + }, + "NullPacketBitrate": { + "shape": "__double", + "locationName": "nullPacketBitrate" + }, + "PatInterval": { + "shape": "__integer", + "locationName": "patInterval" + }, + "PcrControl": { + "shape": "M2tsPcrControl", + "locationName": "pcrControl" + }, + "PcrPid": { + "shape": "__integer", + "locationName": "pcrPid" + }, + "PmtInterval": { + "shape": "__integer", + "locationName": "pmtInterval" + }, + "PmtPid": { + "shape": "__integer", + "locationName": "pmtPid" + }, + "PrivateMetadataPid": { + "shape": "__integer", + "locationName": "privateMetadataPid" + }, + "ProgramNumber": { + "shape": "__integer", + "locationName": "programNumber" + }, + "RateMode": { + "shape": "M2tsRateMode", + "locationName": "rateMode" + }, + "Scte35Pid": { + "shape": "__integer", + "locationName": "scte35Pid" + }, + "Scte35Source": { + "shape": "M2tsScte35Source", + "locationName": "scte35Source" + }, + "SegmentationMarkers": { + "shape": "M2tsSegmentationMarkers", + "locationName": "segmentationMarkers" + }, + "SegmentationStyle": { + "shape": "M2tsSegmentationStyle", + "locationName": "segmentationStyle" + }, + "SegmentationTime": { + "shape": "__double", + "locationName": "segmentationTime" + }, + "TransportStreamId": { + "shape": "__integer", + "locationName": "transportStreamId" + }, + "VideoPid": { + "shape": "__integer", + "locationName": "videoPid" + } + } + }, + "M3u8PcrControl": { + "type": "string", + "enum": [ + "PCR_EVERY_PES_PACKET", + "CONFIGURED_PCR_PERIOD" + ] + }, + "M3u8Scte35Source": { + "type": "string", + "enum": [ + "PASSTHROUGH", + "NONE" + ] + }, + "M3u8Settings": { + "type": "structure", + "members": { + "AudioFramesPerPes": { + "shape": "__integer", + "locationName": "audioFramesPerPes" + }, + "AudioPids": { + "shape": "ListOf__integer", + "locationName": "audioPids" + }, + "PatInterval": { + "shape": "__integer", + "locationName": "patInterval" + }, + "PcrControl": { + "shape": "M3u8PcrControl", + "locationName": "pcrControl" + }, + "PcrPid": { + "shape": "__integer", + "locationName": "pcrPid" + }, + "PmtInterval": { + "shape": "__integer", + "locationName": "pmtInterval" + }, + "PmtPid": { + "shape": "__integer", + "locationName": "pmtPid" + }, + "PrivateMetadataPid": { + "shape": "__integer", + "locationName": "privateMetadataPid" + }, + "ProgramNumber": { + "shape": "__integer", + "locationName": "programNumber" + }, + "Scte35Pid": { + "shape": "__integer", + "locationName": "scte35Pid" + }, + "Scte35Source": { + "shape": "M3u8Scte35Source", + "locationName": "scte35Source" + }, + "TimedMetadata": { + "shape": "TimedMetadata", + "locationName": "timedMetadata" + }, + "TimedMetadataPid": { + "shape": "__integer", + "locationName": "timedMetadataPid" + }, + "TransportStreamId": { + "shape": "__integer", + "locationName": "transportStreamId" + }, + "VideoPid": { + "shape": "__integer", + "locationName": "videoPid" + } + } + }, + "MapOfAudioSelector": { + "type": "map", + "key": { + "shape": "__string" + }, + "value": { + "shape": "AudioSelector" + } + }, + "MapOfAudioSelectorGroup": { + "type": "map", + "key": { + "shape": "__string" + }, + "value": { + "shape": "AudioSelectorGroup" + } + }, + "MapOfCaptionSelector": { + "type": "map", + "key": { + "shape": "__string" + }, + "value": { + "shape": "CaptionSelector" + } + }, + "MapOf__string": { + "type": "map", + "key": { + "shape": "__string" + }, + "value": { + "shape": "__string" + } + }, + "MovClapAtom": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ] + }, + "MovCslgAtom": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ] + }, + "MovMpeg2FourCCControl": { + "type": "string", + "enum": [ + "XDCAM", + "MPEG" + ] + }, + "MovPaddingControl": { + "type": "string", + "enum": [ + "OMNEON", + "NONE" + ] + }, + "MovReference": { + "type": "string", + "enum": [ + "SELF_CONTAINED", + "EXTERNAL" + ] + }, + "MovSettings": { + "type": "structure", + "members": { + "ClapAtom": { + "shape": "MovClapAtom", + "locationName": "clapAtom" + }, + "CslgAtom": { + "shape": "MovCslgAtom", + "locationName": "cslgAtom" + }, + "Mpeg2FourCCControl": { + "shape": "MovMpeg2FourCCControl", + "locationName": "mpeg2FourCCControl" + }, + "PaddingControl": { + "shape": "MovPaddingControl", + "locationName": "paddingControl" + }, + "Reference": { + "shape": "MovReference", + "locationName": "reference" + } + } + }, + "Mp2Settings": { + "type": "structure", + "members": { + "Bitrate": { + "shape": "__integer", + "locationName": "bitrate" + }, + "Channels": { + "shape": "__integer", + "locationName": "channels" + }, + "SampleRate": { + "shape": "__integer", + "locationName": "sampleRate" + } + } + }, + "Mp4CslgAtom": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ] + }, + "Mp4FreeSpaceBox": { + "type": "string", + "enum": [ + "INCLUDE", + "EXCLUDE" + ] + }, + "Mp4MoovPlacement": { + "type": "string", + "enum": [ + "PROGRESSIVE_DOWNLOAD", + "NORMAL" + ] + }, + "Mp4Settings": { + "type": "structure", + "members": { + "CslgAtom": { + "shape": "Mp4CslgAtom", + "locationName": "cslgAtom" + }, + "FreeSpaceBox": { + "shape": "Mp4FreeSpaceBox", + "locationName": "freeSpaceBox" + }, + "MoovPlacement": { + "shape": "Mp4MoovPlacement", + "locationName": "moovPlacement" + }, + "Mp4MajorBrand": { + "shape": "__string", + "locationName": "mp4MajorBrand" + } + } + }, + "Mpeg2AdaptiveQuantization": { + "type": "string", + "enum": [ + "OFF", + "LOW", + "MEDIUM", + "HIGH" + ] + }, + "Mpeg2CodecLevel": { + "type": "string", + "enum": [ + "AUTO", + "LOW", + "MAIN", + "HIGH1440", + "HIGH" + ] + }, + "Mpeg2CodecProfile": { + "type": "string", + "enum": [ + "MAIN", + "PROFILE_422" + ] + }, + "Mpeg2FramerateControl": { + "type": "string", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "Mpeg2FramerateConversionAlgorithm": { + "type": "string", + "enum": [ + "DUPLICATE_DROP", + "INTERPOLATE" + ] + }, + "Mpeg2GopSizeUnits": { + "type": "string", + "enum": [ + "FRAMES", + "SECONDS" + ] + }, + "Mpeg2InterlaceMode": { + "type": "string", + "enum": [ + "PROGRESSIVE", + "TOP_FIELD", + "BOTTOM_FIELD", + "FOLLOW_TOP_FIELD", + "FOLLOW_BOTTOM_FIELD" + ] + }, + "Mpeg2IntraDcPrecision": { + "type": "string", + "enum": [ + "AUTO", + "INTRA_DC_PRECISION_8", + "INTRA_DC_PRECISION_9", + "INTRA_DC_PRECISION_10", + "INTRA_DC_PRECISION_11" + ] + }, + "Mpeg2ParControl": { + "type": "string", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "Mpeg2QualityTuningLevel": { + "type": "string", + "enum": [ + "SINGLE_PASS", + "MULTI_PASS" + ] + }, + "Mpeg2RateControlMode": { + "type": "string", + "enum": [ + "VBR", + "CBR" + ] + }, + "Mpeg2SceneChangeDetect": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "Mpeg2Settings": { + "type": "structure", + "members": { + "AdaptiveQuantization": { + "shape": "Mpeg2AdaptiveQuantization", + "locationName": "adaptiveQuantization" + }, + "Bitrate": { + "shape": "__integer", + "locationName": "bitrate" + }, + "CodecLevel": { + "shape": "Mpeg2CodecLevel", + "locationName": "codecLevel" + }, + "CodecProfile": { + "shape": "Mpeg2CodecProfile", + "locationName": "codecProfile" + }, + "FramerateControl": { + "shape": "Mpeg2FramerateControl", + "locationName": "framerateControl" + }, + "FramerateConversionAlgorithm": { + "shape": "Mpeg2FramerateConversionAlgorithm", + "locationName": "framerateConversionAlgorithm" + }, + "FramerateDenominator": { + "shape": "__integer", + "locationName": "framerateDenominator" + }, + "FramerateNumerator": { + "shape": "__integer", + "locationName": "framerateNumerator" + }, + "GopClosedCadence": { + "shape": "__integer", + "locationName": "gopClosedCadence" + }, + "GopSize": { + "shape": "__double", + "locationName": "gopSize" + }, + "GopSizeUnits": { + "shape": "Mpeg2GopSizeUnits", + "locationName": "gopSizeUnits" + }, + "HrdBufferInitialFillPercentage": { + "shape": "__integer", + "locationName": "hrdBufferInitialFillPercentage" + }, + "HrdBufferSize": { + "shape": "__integer", + "locationName": "hrdBufferSize" + }, + "InterlaceMode": { + "shape": "Mpeg2InterlaceMode", + "locationName": "interlaceMode" + }, + "IntraDcPrecision": { + "shape": "Mpeg2IntraDcPrecision", + "locationName": "intraDcPrecision" + }, + "MaxBitrate": { + "shape": "__integer", + "locationName": "maxBitrate" + }, + "MinIInterval": { + "shape": "__integer", + "locationName": "minIInterval" + }, + "NumberBFramesBetweenReferenceFrames": { + "shape": "__integer", + "locationName": "numberBFramesBetweenReferenceFrames" + }, + "ParControl": { + "shape": "Mpeg2ParControl", + "locationName": "parControl" + }, + "ParDenominator": { + "shape": "__integer", + "locationName": "parDenominator" + }, + "ParNumerator": { + "shape": "__integer", + "locationName": "parNumerator" + }, + "QualityTuningLevel": { + "shape": "Mpeg2QualityTuningLevel", + "locationName": "qualityTuningLevel" + }, + "RateControlMode": { + "shape": "Mpeg2RateControlMode", + "locationName": "rateControlMode" + }, + "SceneChangeDetect": { + "shape": "Mpeg2SceneChangeDetect", + "locationName": "sceneChangeDetect" + }, + "SlowPal": { + "shape": "Mpeg2SlowPal", + "locationName": "slowPal" + }, + "Softness": { + "shape": "__integer", + "locationName": "softness" + }, + "SpatialAdaptiveQuantization": { + "shape": "Mpeg2SpatialAdaptiveQuantization", + "locationName": "spatialAdaptiveQuantization" + }, + "Syntax": { + "shape": "Mpeg2Syntax", + "locationName": "syntax" + }, + "Telecine": { + "shape": "Mpeg2Telecine", + "locationName": "telecine" + }, + "TemporalAdaptiveQuantization": { + "shape": "Mpeg2TemporalAdaptiveQuantization", + "locationName": "temporalAdaptiveQuantization" + } + } + }, + "Mpeg2SlowPal": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "Mpeg2SpatialAdaptiveQuantization": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "Mpeg2Syntax": { + "type": "string", + "enum": [ + "DEFAULT", + "D_10" + ] + }, + "Mpeg2Telecine": { + "type": "string", + "enum": [ + "NONE", + "SOFT", + "HARD" + ] + }, + "Mpeg2TemporalAdaptiveQuantization": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "MsSmoothAudioDeduplication": { + "type": "string", + "enum": [ + "COMBINE_DUPLICATE_STREAMS", + "NONE" + ] + }, + "MsSmoothEncryptionSettings": { + "type": "structure", + "members": { + "SpekeKeyProvider": { + "shape": "SpekeKeyProvider", + "locationName": "spekeKeyProvider" + } + } + }, + "MsSmoothGroupSettings": { + "type": "structure", + "members": { + "AudioDeduplication": { + "shape": "MsSmoothAudioDeduplication", + "locationName": "audioDeduplication" + }, + "Destination": { + "shape": "__string", + "locationName": "destination" + }, + "Encryption": { + "shape": "MsSmoothEncryptionSettings", + "locationName": "encryption" + }, + "FragmentLength": { + "shape": "__integer", + "locationName": "fragmentLength" + }, + "ManifestEncoding": { + "shape": "MsSmoothManifestEncoding", + "locationName": "manifestEncoding" + } + } + }, + "MsSmoothManifestEncoding": { + "type": "string", + "enum": [ + "UTF8", + "UTF16" + ] + }, + "NielsenConfiguration": { + "type": "structure", + "members": { + "BreakoutCode": { + "shape": "__integer", + "locationName": "breakoutCode" + }, + "DistributorId": { + "shape": "__string", + "locationName": "distributorId" + } + } + }, + "NoiseReducer": { + "type": "structure", + "members": { + "Filter": { + "shape": "NoiseReducerFilter", + "locationName": "filter" + }, + "FilterSettings": { + "shape": "NoiseReducerFilterSettings", + "locationName": "filterSettings" + }, + "SpatialFilterSettings": { + "shape": "NoiseReducerSpatialFilterSettings", + "locationName": "spatialFilterSettings" + } + } + }, + "NoiseReducerFilter": { + "type": "string", + "enum": [ + "BILATERAL", + "MEAN", + "GAUSSIAN", + "LANCZOS", + "SHARPEN", + "CONSERVE", + "SPATIAL" + ] + }, + "NoiseReducerFilterSettings": { + "type": "structure", + "members": { + "Strength": { + "shape": "__integer", + "locationName": "strength" + } + } + }, + "NoiseReducerSpatialFilterSettings": { + "type": "structure", + "members": { + "PostFilterSharpenStrength": { + "shape": "__integer", + "locationName": "postFilterSharpenStrength" + }, + "Speed": { + "shape": "__integer", + "locationName": "speed" + }, + "Strength": { + "shape": "__integer", + "locationName": "strength" + } + } + }, + "NotFoundException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 404 + } + }, + "Order": { + "type": "string", + "enum": [ + "ASCENDING", + "DESCENDING" + ] + }, + "Output": { + "type": "structure", + "members": { + "AudioDescriptions": { + "shape": "ListOfAudioDescription", + "locationName": "audioDescriptions" + }, + "CaptionDescriptions": { + "shape": "ListOfCaptionDescription", + "locationName": "captionDescriptions" + }, + "ContainerSettings": { + "shape": "ContainerSettings", + "locationName": "containerSettings" + }, + "Extension": { + "shape": "__string", + "locationName": "extension" + }, + "NameModifier": { + "shape": "__string", + "locationName": "nameModifier" + }, + "OutputSettings": { + "shape": "OutputSettings", + "locationName": "outputSettings" + }, + "Preset": { + "shape": "__string", + "locationName": "preset" + }, + "VideoDescription": { + "shape": "VideoDescription", + "locationName": "videoDescription" + } + } + }, + "OutputChannelMapping": { + "type": "structure", + "members": { + "InputChannels": { + "shape": "ListOf__integer", + "locationName": "inputChannels" + } + } + }, + "OutputDetail": { + "type": "structure", + "members": { + "DurationInMs": { + "shape": "__integer", + "locationName": "durationInMs" + }, + "VideoDetails": { + "shape": "VideoDetail", + "locationName": "videoDetails" + } + } + }, + "OutputGroup": { + "type": "structure", + "members": { + "CustomName": { + "shape": "__string", + "locationName": "customName" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "OutputGroupSettings": { + "shape": "OutputGroupSettings", + "locationName": "outputGroupSettings" + }, + "Outputs": { + "shape": "ListOfOutput", + "locationName": "outputs" + } + } + }, + "OutputGroupDetail": { + "type": "structure", + "members": { + "OutputDetails": { + "shape": "ListOfOutputDetail", + "locationName": "outputDetails" + } + } + }, + "OutputGroupSettings": { + "type": "structure", + "members": { + "DashIsoGroupSettings": { + "shape": "DashIsoGroupSettings", + "locationName": "dashIsoGroupSettings" + }, + "FileGroupSettings": { + "shape": "FileGroupSettings", + "locationName": "fileGroupSettings" + }, + "HlsGroupSettings": { + "shape": "HlsGroupSettings", + "locationName": "hlsGroupSettings" + }, + "MsSmoothGroupSettings": { + "shape": "MsSmoothGroupSettings", + "locationName": "msSmoothGroupSettings" + }, + "Type": { + "shape": "OutputGroupType", + "locationName": "type" + } + } + }, + "OutputGroupType": { + "type": "string", + "enum": [ + "HLS_GROUP_SETTINGS", + "DASH_ISO_GROUP_SETTINGS", + "FILE_GROUP_SETTINGS", + "MS_SMOOTH_GROUP_SETTINGS" + ] + }, + "OutputSdt": { + "type": "string", + "enum": [ + "SDT_FOLLOW", + "SDT_FOLLOW_IF_PRESENT", + "SDT_MANUAL", + "SDT_NONE" + ] + }, + "OutputSettings": { + "type": "structure", + "members": { + "HlsSettings": { + "shape": "HlsSettings", + "locationName": "hlsSettings" + } + } + }, + "Preset": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "Category": { + "shape": "__string", + "locationName": "category" + }, + "CreatedAt": { + "shape": "__timestamp", + "locationName": "createdAt" + }, + "Description": { + "shape": "__string", + "locationName": "description" + }, + "LastUpdated": { + "shape": "__timestamp", + "locationName": "lastUpdated" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "Settings": { + "shape": "PresetSettings", + "locationName": "settings" + }, + "Type": { + "shape": "Type", + "locationName": "type" + } + } + }, + "PresetListBy": { + "type": "string", + "enum": [ + "NAME", + "CREATION_DATE", + "SYSTEM" + ] + }, + "PresetSettings": { + "type": "structure", + "members": { + "AudioDescriptions": { + "shape": "ListOfAudioDescription", + "locationName": "audioDescriptions" + }, + "CaptionDescriptions": { + "shape": "ListOfCaptionDescriptionPreset", + "locationName": "captionDescriptions" + }, + "ContainerSettings": { + "shape": "ContainerSettings", + "locationName": "containerSettings" + }, + "VideoDescription": { + "shape": "VideoDescription", + "locationName": "videoDescription" + } + } + }, + "ProresCodecProfile": { + "type": "string", + "enum": [ + "APPLE_PRORES_422", + "APPLE_PRORES_422_HQ", + "APPLE_PRORES_422_LT", + "APPLE_PRORES_422_PROXY" + ] + }, + "ProresFramerateControl": { + "type": "string", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "ProresFramerateConversionAlgorithm": { + "type": "string", + "enum": [ + "DUPLICATE_DROP", + "INTERPOLATE" + ] + }, + "ProresInterlaceMode": { + "type": "string", + "enum": [ + "PROGRESSIVE", + "TOP_FIELD", + "BOTTOM_FIELD", + "FOLLOW_TOP_FIELD", + "FOLLOW_BOTTOM_FIELD" + ] + }, + "ProresParControl": { + "type": "string", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "ProresSettings": { + "type": "structure", + "members": { + "CodecProfile": { + "shape": "ProresCodecProfile", + "locationName": "codecProfile" + }, + "FramerateControl": { + "shape": "ProresFramerateControl", + "locationName": "framerateControl" + }, + "FramerateConversionAlgorithm": { + "shape": "ProresFramerateConversionAlgorithm", + "locationName": "framerateConversionAlgorithm" + }, + "FramerateDenominator": { + "shape": "__integer", + "locationName": "framerateDenominator" + }, + "FramerateNumerator": { + "shape": "__integer", + "locationName": "framerateNumerator" + }, + "InterlaceMode": { + "shape": "ProresInterlaceMode", + "locationName": "interlaceMode" + }, + "ParControl": { + "shape": "ProresParControl", + "locationName": "parControl" + }, + "ParDenominator": { + "shape": "__integer", + "locationName": "parDenominator" + }, + "ParNumerator": { + "shape": "__integer", + "locationName": "parNumerator" + }, + "SlowPal": { + "shape": "ProresSlowPal", + "locationName": "slowPal" + }, + "Telecine": { + "shape": "ProresTelecine", + "locationName": "telecine" + } + } + }, + "ProresSlowPal": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "ProresTelecine": { + "type": "string", + "enum": [ + "NONE", + "HARD" + ] + }, + "Queue": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "CreatedAt": { + "shape": "__timestamp", + "locationName": "createdAt" + }, + "Description": { + "shape": "__string", + "locationName": "description" + }, + "LastUpdated": { + "shape": "__timestamp", + "locationName": "lastUpdated" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "Status": { + "shape": "QueueStatus", + "locationName": "status" + }, + "Type": { + "shape": "Type", + "locationName": "type" + } + } + }, + "QueueListBy": { + "type": "string", + "enum": [ + "NAME", + "CREATION_DATE" + ] + }, + "QueueStatus": { + "type": "string", + "enum": [ + "ACTIVE", + "PAUSED" + ] + }, + "Rectangle": { + "type": "structure", + "members": { + "Height": { + "shape": "__integer", + "locationName": "height" + }, + "Width": { + "shape": "__integer", + "locationName": "width" + }, + "X": { + "shape": "__integer", + "locationName": "x" + }, + "Y": { + "shape": "__integer", + "locationName": "y" + } + } + }, + "RemixSettings": { + "type": "structure", + "members": { + "ChannelMapping": { + "shape": "ChannelMapping", + "locationName": "channelMapping" + }, + "ChannelsIn": { + "shape": "__integer", + "locationName": "channelsIn" + }, + "ChannelsOut": { + "shape": "__integer", + "locationName": "channelsOut" + } + } + }, + "RespondToAfd": { + "type": "string", + "enum": [ + "NONE", + "RESPOND", + "PASSTHROUGH" + ] + }, + "ScalingBehavior": { + "type": "string", + "enum": [ + "DEFAULT", + "STRETCH_TO_OUTPUT" + ] + }, + "SccDestinationFramerate": { + "type": "string", + "enum": [ + "FRAMERATE_23_97", + "FRAMERATE_24", + "FRAMERATE_29_97_DROPFRAME", + "FRAMERATE_29_97_NON_DROPFRAME" + ] + }, + "SccDestinationSettings": { + "type": "structure", + "members": { + "Framerate": { + "shape": "SccDestinationFramerate", + "locationName": "framerate" + } + } + }, + "SpekeKeyProvider": { + "type": "structure", + "members": { + "ResourceId": { + "shape": "__string", + "locationName": "resourceId" + }, + "SystemIds": { + "shape": "ListOf__string", + "locationName": "systemIds" + }, + "Url": { + "shape": "__string", + "locationName": "url" + } + } + }, + "StaticKeyProvider": { + "type": "structure", + "members": { + "KeyFormat": { + "shape": "__string", + "locationName": "keyFormat" + }, + "KeyFormatVersions": { + "shape": "__string", + "locationName": "keyFormatVersions" + }, + "StaticKeyValue": { + "shape": "__string", + "locationName": "staticKeyValue" + }, + "Url": { + "shape": "__string", + "locationName": "url" + } + } + }, + "TeletextDestinationSettings": { + "type": "structure", + "members": { + "PageNumber": { + "shape": "__string", + "locationName": "pageNumber" + } + } + }, + "TeletextSourceSettings": { + "type": "structure", + "members": { + "PageNumber": { + "shape": "__string", + "locationName": "pageNumber" + } + } + }, + "TimecodeBurnin": { + "type": "structure", + "members": { + "FontSize": { + "shape": "__integer", + "locationName": "fontSize" + }, + "Position": { + "shape": "TimecodeBurninPosition", + "locationName": "position" + }, + "Prefix": { + "shape": "__string", + "locationName": "prefix" + } + } + }, + "TimecodeBurninPosition": { + "type": "string", + "enum": [ + "TOP_CENTER", + "TOP_LEFT", + "TOP_RIGHT", + "MIDDLE_LEFT", + "MIDDLE_CENTER", + "MIDDLE_RIGHT", + "BOTTOM_LEFT", + "BOTTOM_CENTER", + "BOTTOM_RIGHT" + ] + }, + "TimecodeConfig": { + "type": "structure", + "members": { + "Anchor": { + "shape": "__string", + "locationName": "anchor" + }, + "Source": { + "shape": "TimecodeSource", + "locationName": "source" + }, + "Start": { + "shape": "__string", + "locationName": "start" + }, + "TimestampOffset": { + "shape": "__string", + "locationName": "timestampOffset" + } + } + }, + "TimecodeSource": { + "type": "string", + "enum": [ + "EMBEDDED", + "ZEROBASED", + "SPECIFIEDSTART" + ] + }, + "TimedMetadata": { + "type": "string", + "enum": [ + "PASSTHROUGH", + "NONE" + ] + }, + "TimedMetadataInsertion": { + "type": "structure", + "members": { + "Id3Insertions": { + "shape": "ListOfId3Insertion", + "locationName": "id3Insertions" + } + } + }, + "Timing": { + "type": "structure", + "members": { + "FinishTime": { + "shape": "__timestamp", + "locationName": "finishTime" + }, + "StartTime": { + "shape": "__timestamp", + "locationName": "startTime" + }, + "SubmitTime": { + "shape": "__timestamp", + "locationName": "submitTime" + } + } + }, + "TooManyRequestsException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 429 + } + }, + "TtmlDestinationSettings": { + "type": "structure", + "members": { + "StylePassthrough": { + "shape": "TtmlStylePassthrough", + "locationName": "stylePassthrough" + } + } + }, + "TtmlStylePassthrough": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "Type": { + "type": "string", + "enum": [ + "SYSTEM", + "CUSTOM" + ] + }, + "UpdateJobTemplateRequest": { + "type": "structure", + "members": { + "Category": { + "shape": "__string", + "locationName": "category" + }, + "Description": { + "shape": "__string", + "locationName": "description" + }, + "Name": { + "shape": "__string", + "locationName": "name", + "location": "uri" + }, + "Queue": { + "shape": "__string", + "locationName": "queue" + }, + "Settings": { + "shape": "JobTemplateSettings", + "locationName": "settings" + } + }, + "required": [ + "Name" + ] + }, + "UpdateJobTemplateResponse": { + "type": "structure", + "members": { + "JobTemplate": { + "shape": "JobTemplate", + "locationName": "jobTemplate" + } + } + }, + "UpdatePresetRequest": { + "type": "structure", + "members": { + "Category": { + "shape": "__string", + "locationName": "category" + }, + "Description": { + "shape": "__string", + "locationName": "description" + }, + "Name": { + "shape": "__string", + "locationName": "name", + "location": "uri" + }, + "Settings": { + "shape": "PresetSettings", + "locationName": "settings" + } + }, + "required": [ + "Name" + ] + }, + "UpdatePresetResponse": { + "type": "structure", + "members": { + "Preset": { + "shape": "Preset", + "locationName": "preset" + } + } + }, + "UpdateQueueRequest": { + "type": "structure", + "members": { + "Description": { + "shape": "__string", + "locationName": "description" + }, + "Name": { + "shape": "__string", + "locationName": "name", + "location": "uri" + }, + "Status": { + "shape": "QueueStatus", + "locationName": "status" + } + }, + "required": [ + "Name" + ] + }, + "UpdateQueueResponse": { + "type": "structure", + "members": { + "Queue": { + "shape": "Queue", + "locationName": "queue" + } + } + }, + "VideoCodec": { + "type": "string", + "enum": [ + "FRAME_CAPTURE", + "H_264", + "H_265", + "MPEG2", + "PRORES" + ] + }, + "VideoCodecSettings": { + "type": "structure", + "members": { + "Codec": { + "shape": "VideoCodec", + "locationName": "codec" + }, + "FrameCaptureSettings": { + "shape": "FrameCaptureSettings", + "locationName": "frameCaptureSettings" + }, + "H264Settings": { + "shape": "H264Settings", + "locationName": "h264Settings" + }, + "H265Settings": { + "shape": "H265Settings", + "locationName": "h265Settings" + }, + "Mpeg2Settings": { + "shape": "Mpeg2Settings", + "locationName": "mpeg2Settings" + }, + "ProresSettings": { + "shape": "ProresSettings", + "locationName": "proresSettings" + } + } + }, + "VideoDescription": { + "type": "structure", + "members": { + "AfdSignaling": { + "shape": "AfdSignaling", + "locationName": "afdSignaling" + }, + "AntiAlias": { + "shape": "AntiAlias", + "locationName": "antiAlias" + }, + "CodecSettings": { + "shape": "VideoCodecSettings", + "locationName": "codecSettings" + }, + "ColorMetadata": { + "shape": "ColorMetadata", + "locationName": "colorMetadata" + }, + "Crop": { + "shape": "Rectangle", + "locationName": "crop" + }, + "DropFrameTimecode": { + "shape": "DropFrameTimecode", + "locationName": "dropFrameTimecode" + }, + "FixedAfd": { + "shape": "__integer", + "locationName": "fixedAfd" + }, + "Height": { + "shape": "__integer", + "locationName": "height" + }, + "Position": { + "shape": "Rectangle", + "locationName": "position" + }, + "RespondToAfd": { + "shape": "RespondToAfd", + "locationName": "respondToAfd" + }, + "ScalingBehavior": { + "shape": "ScalingBehavior", + "locationName": "scalingBehavior" + }, + "Sharpness": { + "shape": "__integer", + "locationName": "sharpness" + }, + "TimecodeInsertion": { + "shape": "VideoTimecodeInsertion", + "locationName": "timecodeInsertion" + }, + "VideoPreprocessors": { + "shape": "VideoPreprocessor", + "locationName": "videoPreprocessors" + }, + "Width": { + "shape": "__integer", + "locationName": "width" + } + } + }, + "VideoDetail": { + "type": "structure", + "members": { + "HeightInPx": { + "shape": "__integer", + "locationName": "heightInPx" + }, + "WidthInPx": { + "shape": "__integer", + "locationName": "widthInPx" + } + } + }, + "VideoPreprocessor": { + "type": "structure", + "members": { + "ColorCorrector": { + "shape": "ColorCorrector", + "locationName": "colorCorrector" + }, + "Deinterlacer": { + "shape": "Deinterlacer", + "locationName": "deinterlacer" + }, + "ImageInserter": { + "shape": "ImageInserter", + "locationName": "imageInserter" + }, + "NoiseReducer": { + "shape": "NoiseReducer", + "locationName": "noiseReducer" + }, + "TimecodeBurnin": { + "shape": "TimecodeBurnin", + "locationName": "timecodeBurnin" + } + } + }, + "VideoSelector": { + "type": "structure", + "members": { + "ColorSpace": { + "shape": "ColorSpace", + "locationName": "colorSpace" + }, + "ColorSpaceUsage": { + "shape": "ColorSpaceUsage", + "locationName": "colorSpaceUsage" + }, + "Hdr10Metadata": { + "shape": "Hdr10Metadata", + "locationName": "hdr10Metadata" + }, + "Pid": { + "shape": "__integer", + "locationName": "pid" + }, + "ProgramNumber": { + "shape": "__integer", + "locationName": "programNumber" + } + } + }, + "VideoTimecodeInsertion": { + "type": "string", + "enum": [ + "DISABLED", + "PIC_TIMING_SEI" + ] + }, + "WavSettings": { + "type": "structure", + "members": { + "BitDepth": { + "shape": "__integer", + "locationName": "bitDepth" + }, + "Channels": { + "shape": "__integer", + "locationName": "channels" + }, + "SampleRate": { + "shape": "__integer", + "locationName": "sampleRate" + } + } + }, + "__boolean": { + "type": "boolean" + }, + "__double": { + "type": "double" + }, + "__integer": { + "type": "integer" + }, + "__string": { + "type": "string" + }, + "__timestamp": { + "type": "timestamp" + } + } +} \ No newline at end of file diff --git a/models/apis/mediaconvert/2017-08-29/docs-2.json b/models/apis/mediaconvert/2017-08-29/docs-2.json new file mode 100644 index 00000000000..e309077bf8d --- /dev/null +++ b/models/apis/mediaconvert/2017-08-29/docs-2.json @@ -0,0 +1,2558 @@ +{ + "version": "2.0", + "service": "AWS Elemental MediaConvert", + "operations": { + "CancelJob": "Permanently remove a job from a queue. Once you have canceled a job, you can't start it again. You can't delete a running job.", + "CreateJob": "Create a new transcoding job. For information about jobs and job settings, see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", + "CreateJobTemplate": "Create a new job template. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", + "CreatePreset": "Create a new preset. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", + "CreateQueue": "Create a new transcoding queue. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", + "DeleteJobTemplate": "Permanently delete a job template you have created.", + "DeletePreset": "Permanently delete a preset you have created.", + "DeleteQueue": "Permanently delete a queue you have created.", + "DescribeEndpoints": "Send an request with an empty body to the regional API endpoint to get your account API endpoint.", + "GetJob": "Retrieve the JSON for a specific completed transcoding job.", + "GetJobTemplate": "Retrieve the JSON for a specific job template.", + "GetPreset": "Retrieve the JSON for a specific preset.", + "GetQueue": "Retrieve the JSON for a specific queue.", + "ListJobTemplates": "Retrieve a JSON array of up to twenty of your job templates. This will return the templates themselves, not just a list of them. To retrieve the next twenty templates, use the nextToken string returned with the array", + "ListJobs": "Retrieve a JSON array of up to twenty of your most recently created jobs. This array includes in-process, completed, and errored jobs. This will return the jobs themselves, not just a list of the jobs. To retrieve the twenty next most recent jobs, use the nextToken string returned with the array.", + "ListPresets": "Retrieve a JSON array of up to twenty of your presets. This will return the presets themselves, not just a list of them. To retrieve the next twenty presets, use the nextToken string returned with the array.", + "ListQueues": "Retrieve a JSON array of up to twenty of your queues. This will return the queues themselves, not just a list of them. To retrieve the next twenty queues, use the nextToken string returned with the array.", + "UpdateJobTemplate": "Modify one of your existing job templates.", + "UpdatePreset": "Modify one of your existing presets.", + "UpdateQueue": "Modify one of your existing queues." + }, + "shapes": { + "AacAudioDescriptionBroadcasterMix": { + "base": "Choose BROADCASTER_MIXED_AD when the input contains pre-mixed main audio + audio description (AD) as a stereo pair. The value for AudioType will be set to 3, which signals to downstream systems that this stream contains \"broadcaster mixed AD\". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. When you choose BROADCASTER_MIXED_AD, the encoder ignores any values you provide in AudioType and FollowInputAudioType. Choose NORMAL when the input does not contain pre-mixed audio + audio description (AD). In this case, the encoder will use any values you provide for AudioType and FollowInputAudioType.", + "refs": { + "AacSettings$AudioDescriptionBroadcasterMix": null + } + }, + "AacCodecProfile": { + "base": "AAC Profile.", + "refs": { + "AacSettings$CodecProfile": null + } + }, + "AacCodingMode": { + "base": "Mono (Audio Description), Mono, Stereo, or 5.1 channel layout. Valid values depend on rate control mode and profile. \"1.0 - Audio Description (Receiver Mix)\" setting receives a stereo description plus control track and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E.", + "refs": { + "AacSettings$CodingMode": null + } + }, + "AacRateControlMode": { + "base": "Rate Control Mode.", + "refs": { + "AacSettings$RateControlMode": null + } + }, + "AacRawFormat": { + "base": "Enables LATM/LOAS AAC output. Note that if you use LATM/LOAS AAC in an output, you must choose \"No container\" for the output container.", + "refs": { + "AacSettings$RawFormat": null + } + }, + "AacSettings": { + "base": "Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value AAC.", + "refs": { + "AudioCodecSettings$AacSettings": null + } + }, + "AacSpecification": { + "base": "Use MPEG-2 AAC instead of MPEG-4 AAC audio for raw or MPEG-2 Transport Stream containers.", + "refs": { + "AacSettings$Specification": null + } + }, + "AacVbrQuality": { + "base": "VBR Quality Level - Only used if rate_control_mode is VBR.", + "refs": { + "AacSettings$VbrQuality": null + } + }, + "Ac3BitstreamMode": { + "base": "Specifies the \"Bitstream Mode\" (bsmod) for the emitted AC-3 stream. See ATSC A/52-2012 for background on these values.", + "refs": { + "Ac3Settings$BitstreamMode": null + } + }, + "Ac3CodingMode": { + "base": "Dolby Digital coding mode. Determines number of channels.", + "refs": { + "Ac3Settings$CodingMode": null + } + }, + "Ac3DynamicRangeCompressionProfile": { + "base": "If set to FILM_STANDARD, adds dynamic range compression signaling to the output bitstream as defined in the Dolby Digital specification.", + "refs": { + "Ac3Settings$DynamicRangeCompressionProfile": null + } + }, + "Ac3LfeFilter": { + "base": "Applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with 3_2_LFE coding mode.", + "refs": { + "Ac3Settings$LfeFilter": null + } + }, + "Ac3MetadataControl": { + "base": "When set to FOLLOW_INPUT, encoder metadata will be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied from one of these streams, then the static metadata settings will be used.", + "refs": { + "Ac3Settings$MetadataControl": null + } + }, + "Ac3Settings": { + "base": "Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value AC3.", + "refs": { + "AudioCodecSettings$Ac3Settings": null + } + }, + "AfdSignaling": { + "base": "This setting only applies to H.264 and MPEG2 outputs. Use Insert AFD signaling (AfdSignaling) to whether there are AFD values in the output video data and what those values are. * Choose None to remove all AFD values from this output. * Choose Fixed to ignore input AFD values and instead encode the value specified in the job. * Choose Auto to calculate output AFD values based on the input AFD scaler data.", + "refs": { + "VideoDescription$AfdSignaling": null + } + }, + "AiffSettings": { + "base": "Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value AIFF.", + "refs": { + "AudioCodecSettings$AiffSettings": null + } + }, + "AncillarySourceSettings": { + "base": "Settings for ancillary captions source.", + "refs": { + "CaptionSourceSettings$AncillarySourceSettings": null + } + }, + "AntiAlias": { + "base": "Enable Anti-alias (AntiAlias) to enhance sharp edges in video output when your input resolution is much larger than your output resolution. Default is enabled.", + "refs": { + "VideoDescription$AntiAlias": null + } + }, + "AudioCodec": { + "base": "Type of Audio codec.", + "refs": { + "AudioCodecSettings$Codec": null + } + }, + "AudioCodecSettings": { + "base": "Audio codec settings (CodecSettings) under (AudioDescriptions) contains the group of settings related to audio encoding. The settings in this group vary depending on the value you choose for Audio codec (Codec). For each codec enum you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * AAC, AacSettings * MP2, Mp2Settings * WAV, WavSettings * AIFF, AiffSettings * AC3, Ac3Settings * EAC3, Eac3Settings", + "refs": { + "AudioDescription$CodecSettings": null + } + }, + "AudioDefaultSelection": { + "base": "When an \"Audio Description\":#audio_description specifies an AudioSelector or AudioSelectorGroup for which no matching source is found in the input, then the audio selector marked as DEFAULT will be used. If none are marked as default, silence will be inserted for the duration of the input.", + "refs": { + "AudioSelector$DefaultSelection": null + } + }, + "AudioDescription": { + "base": "Description of audio output", + "refs": { + "ListOfAudioDescription$member": null + } + }, + "AudioLanguageCodeControl": { + "base": "Choosing FOLLOW_INPUT will cause the ISO 639 language code of the output to follow the ISO 639 language code of the input. The language specified for languageCode' will be used when USE_CONFIGURED is selected or when FOLLOW_INPUT is selected but there is no ISO 639 language code specified by the input.", + "refs": { + "AudioDescription$LanguageCodeControl": null + } + }, + "AudioNormalizationAlgorithm": { + "base": "Audio normalization algorithm to use. 1770-1 conforms to the CALM Act specification, 1770-2 conforms to the EBU R-128 specification.", + "refs": { + "AudioNormalizationSettings$Algorithm": null + } + }, + "AudioNormalizationAlgorithmControl": { + "base": "When enabled the output audio is corrected using the chosen algorithm. If disabled, the audio will be measured but not adjusted.", + "refs": { + "AudioNormalizationSettings$AlgorithmControl": null + } + }, + "AudioNormalizationLoudnessLogging": { + "base": "If set to LOG, log each output's audio track loudness to a CSV file.", + "refs": { + "AudioNormalizationSettings$LoudnessLogging": null + } + }, + "AudioNormalizationPeakCalculation": { + "base": "If set to TRUE_PEAK, calculate and log the TruePeak for each output's audio track loudness.", + "refs": { + "AudioNormalizationSettings$PeakCalculation": null + } + }, + "AudioNormalizationSettings": { + "base": "Advanced audio normalization settings.", + "refs": { + "AudioDescription$AudioNormalizationSettings": "Settings for Audio Normalization" + } + }, + "AudioSelector": { + "base": "Selector for Audio", + "refs": { + "MapOfAudioSelector$member": null + } + }, + "AudioSelectorGroup": { + "base": "Group of Audio Selectors", + "refs": { + "MapOfAudioSelectorGroup$member": null + } + }, + "AudioSelectorType": { + "base": "Specifies the type of the audio selector.", + "refs": { + "AudioSelector$SelectorType": null + } + }, + "AudioTypeControl": { + "base": "When set to FOLLOW_INPUT, if the input contains an ISO 639 audio_type, then that value is passed through to the output. If the input contains no ISO 639 audio_type, the value in Audio Type is included in the output. Otherwise the value in Audio Type is included in the output. Note that this field and audioType are both ignored if audioDescriptionBroadcasterMix is set to BROADCASTER_MIXED_AD.", + "refs": { + "AudioDescription$AudioTypeControl": null + } + }, + "AvailBlanking": { + "base": "Settings for Avail Blanking", + "refs": { + "JobSettings$AvailBlanking": "Settings for ad avail blanking. Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.", + "JobTemplateSettings$AvailBlanking": "Settings for ad avail blanking. Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails." + } + }, + "BadRequestException": { + "base": null, + "refs": { + } + }, + "BurninDestinationSettings": { + "base": "Burn-In Destination Settings.", + "refs": { + "CaptionDestinationSettings$BurninDestinationSettings": null + } + }, + "BurninSubtitleAlignment": { + "base": "If no explicit x_position or y_position is provided, setting alignment to centered will place the captions at the bottom center of the output. Similarly, setting a left alignment will align captions to the bottom left of the output. If x and y positions are given in conjunction with the alignment parameter, the font will be justified (either left or centered) relative to those coordinates. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "refs": { + "BurninDestinationSettings$Alignment": null + } + }, + "BurninSubtitleBackgroundColor": { + "base": "Specifies the color of the rectangle behind the captions.\nAll burn-in and DVB-Sub font settings must match.", + "refs": { + "BurninDestinationSettings$BackgroundColor": null + } + }, + "BurninSubtitleFontColor": { + "base": "Specifies the color of the burned-in captions. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "refs": { + "BurninDestinationSettings$FontColor": null + } + }, + "BurninSubtitleOutlineColor": { + "base": "Specifies font outline color. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "refs": { + "BurninDestinationSettings$OutlineColor": null + } + }, + "BurninSubtitleShadowColor": { + "base": "Specifies the color of the shadow cast by the captions.\nAll burn-in and DVB-Sub font settings must match.", + "refs": { + "BurninDestinationSettings$ShadowColor": null + } + }, + "BurninSubtitleTeletextSpacing": { + "base": "Controls whether a fixed grid size or proportional font spacing will be used to generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in outputs.", + "refs": { + "BurninDestinationSettings$TeletextSpacing": null + } + }, + "CancelJobRequest": { + "base": "Cancel a job by sending a request with the job ID", + "refs": { + } + }, + "CancelJobResponse": { + "base": "A cancel job request will receive a response with an empty body.", + "refs": { + } + }, + "CaptionDescription": { + "base": "Description of Caption output", + "refs": { + "ListOfCaptionDescription$member": null + } + }, + "CaptionDescriptionPreset": { + "base": "Caption Description for preset", + "refs": { + "ListOfCaptionDescriptionPreset$member": null + } + }, + "CaptionDestinationSettings": { + "base": "Specific settings required by destination type. Note that burnin_destination_settings are not available if the source of the caption data is Embedded or Teletext.", + "refs": { + "CaptionDescription$DestinationSettings": null, + "CaptionDescriptionPreset$DestinationSettings": null + } + }, + "CaptionDestinationType": { + "base": null, + "refs": { + "CaptionDestinationSettings$DestinationType": "Type of Caption output, including Burn-In, Embedded, SCC, SRT, TTML, WebVTT, DVB-Sub, Teletext." + } + }, + "CaptionSelector": { + "base": "Caption inputs to be mapped to caption outputs.", + "refs": { + "MapOfCaptionSelector$member": null + } + }, + "CaptionSourceSettings": { + "base": "Source settings (SourceSettings) contains the group of settings for captions in the input.", + "refs": { + "CaptionSelector$SourceSettings": null + } + }, + "CaptionSourceType": { + "base": "Use Source (SourceType) to identify the format of your input captions. The service cannot auto-detect caption format.", + "refs": { + "CaptionSourceSettings$SourceType": null + } + }, + "ChannelMapping": { + "base": "Channel mapping (ChannelMapping) contains the group of fields that hold the remixing value for each channel. Units are in dB. Acceptable values are within the range from -60 (mute) through 6. A setting of 0 passes the input channel unchanged to the output channel (no attenuation or amplification).", + "refs": { + "RemixSettings$ChannelMapping": null + } + }, + "ColorCorrector": { + "base": "Settings for color correction.", + "refs": { + "VideoPreprocessor$ColorCorrector": "Enable the Color corrector (ColorCorrector) feature if necessary. Enable or disable this feature for each output individually. This setting is disabled by default." + } + }, + "ColorMetadata": { + "base": "Enable Insert color metadata (ColorMetadata) to include color metadata in this output. This setting is enabled by default.", + "refs": { + "VideoDescription$ColorMetadata": null + } + }, + "ColorSpace": { + "base": "Specifies the colorspace of an input. This setting works in tandem with \"Color Corrector\":#color_corrector > color_space_conversion to determine if any conversion will be performed.", + "refs": { + "VideoSelector$ColorSpace": null + } + }, + "ColorSpaceConversion": { + "base": "Determines if colorspace conversion will be performed. If set to _None_, no conversion will be performed. If _Force 601_ or _Force 709_ are selected, conversion will be performed for inputs with differing colorspaces. An input's colorspace can be specified explicitly in the \"Video Selector\":#inputs-video_selector if necessary.", + "refs": { + "ColorCorrector$ColorSpaceConversion": null + } + }, + "ColorSpaceUsage": { + "base": "There are two sources for color metadata, the input file and the job configuration. This enum controls which takes precedence. FORCE: System will use color metadata supplied by user, if any. If the user does not supply color metadata the system will use data from the source. FALLBACK: System will use color metadata from the source. If source has no color metadata, the system will use user-supplied color metadata values if available.", + "refs": { + "VideoSelector$ColorSpaceUsage": null + } + }, + "ConflictException": { + "base": null, + "refs": { + } + }, + "ContainerSettings": { + "base": "Container specific settings.", + "refs": { + "Output$ContainerSettings": null, + "PresetSettings$ContainerSettings": null + } + }, + "ContainerType": { + "base": "Container for this output. Some containers require a container settings object. If not specified, the default object will be created.", + "refs": { + "ContainerSettings$Container": null + } + }, + "CreateJobRequest": { + "base": "Send your create job request with your job settings and IAM role. Optionally, include user metadata and the ARN for the queue.", + "refs": { + } + }, + "CreateJobResponse": { + "base": "Successful create job requests will return the job JSON.", + "refs": { + } + }, + "CreateJobTemplateRequest": { + "base": "Send your create job template request with the name of the template and the JSON for the template. The template JSON should include everything in a valid job, except for input location and filename, IAM role, and user metadata.", + "refs": { + } + }, + "CreateJobTemplateResponse": { + "base": "Successful create job template requests will return the template JSON.", + "refs": { + } + }, + "CreatePresetRequest": { + "base": "Send your create preset request with the name of the preset and the JSON for the output settings specified by the preset.", + "refs": { + } + }, + "CreatePresetResponse": { + "base": "Successful create preset requests will return the preset JSON.", + "refs": { + } + }, + "CreateQueueRequest": { + "base": "Send your create queue request with the name of the queue.", + "refs": { + } + }, + "CreateQueueResponse": { + "base": "Successful create queue requests will return the name of the queue you just created and information about it.", + "refs": { + } + }, + "DashIsoEncryptionSettings": { + "base": "Specifies DRM settings for DASH outputs.", + "refs": { + "DashIsoGroupSettings$Encryption": "DRM settings." + } + }, + "DashIsoGroupSettings": { + "base": "Required when you set (Type) under (OutputGroups)>(OutputGroupSettings) to DASH_ISO_GROUP_SETTINGS.", + "refs": { + "OutputGroupSettings$DashIsoGroupSettings": null + } + }, + "DashIsoHbbtvCompliance": { + "base": "Supports HbbTV specification as indicated", + "refs": { + "DashIsoGroupSettings$HbbtvCompliance": null + } + }, + "DashIsoSegmentControl": { + "base": "When set to SINGLE_FILE, a single output file is generated, which is internally segmented using the Fragment Length and Segment Length. When set to SEGMENTED_FILES, separate segment files will be created.", + "refs": { + "DashIsoGroupSettings$SegmentControl": null + } + }, + "DeinterlaceAlgorithm": { + "base": "Only applies when you set Deinterlacer (DeinterlaceMode) to Deinterlace (DEINTERLACE) or Adaptive (ADAPTIVE). Motion adaptive interpolate (INTERPOLATE) produces sharper pictures, while blend (BLEND) produces smoother motion. Use (INTERPOLATE_TICKER) OR (BLEND_TICKER) if your source file includes a ticker, such as a scrolling headline at the bottom of the frame.", + "refs": { + "Deinterlacer$Algorithm": null + } + }, + "Deinterlacer": { + "base": "Settings for deinterlacer", + "refs": { + "VideoPreprocessor$Deinterlacer": "Use Deinterlacer (Deinterlacer) to produce smoother motion and a clearer picture." + } + }, + "DeinterlacerControl": { + "base": "- When set to NORMAL (default), the deinterlacer does not convert frames that are tagged in metadata as progressive. It will only convert those that are tagged as some other type. - When set to FORCE_ALL_FRAMES, the deinterlacer converts every frame to progressive - even those that are already tagged as progressive. Turn Force mode on only if there is a good chance that the metadata has tagged frames as progressive when they are not progressive. Do not turn on otherwise; processing frames that are already progressive into progressive will probably result in lower quality video.", + "refs": { + "Deinterlacer$Control": null + } + }, + "DeinterlacerMode": { + "base": "Use Deinterlacer (DeinterlaceMode) to choose how the service will do deinterlacing. Default is Deinterlace. - Deinterlace converts interlaced to progressive. - Inverse telecine converts Hard Telecine 29.97i to progressive 23.976p. - Adaptive auto-detects and converts to progressive.", + "refs": { + "Deinterlacer$Mode": null + } + }, + "DeleteJobTemplateRequest": { + "base": "Delete a job template by sending a request with the job template name", + "refs": { + } + }, + "DeleteJobTemplateResponse": { + "base": "Delete job template requests will return an OK message or error message with an empty body.", + "refs": { + } + }, + "DeletePresetRequest": { + "base": "Delete a preset by sending a request with the preset name", + "refs": { + } + }, + "DeletePresetResponse": { + "base": "Delete preset requests will return an OK message or error message with an empty body.", + "refs": { + } + }, + "DeleteQueueRequest": { + "base": "Delete a queue by sending a request with the queue name", + "refs": { + } + }, + "DeleteQueueResponse": { + "base": "Delete queue requests will return an OK message or error message with an empty body.", + "refs": { + } + }, + "DescribeEndpointsRequest": { + "base": "Send an request with an empty body to the regional API endpoint to get your account API endpoint.", + "refs": { + } + }, + "DescribeEndpointsResponse": { + "base": "Successful describe endpoints requests will return your account API endpoint.", + "refs": { + } + }, + "DropFrameTimecode": { + "base": "Applies only to 29.97 fps outputs. When this feature is enabled, the service will use drop-frame timecode on outputs. If it is not possible to use drop-frame timecode, the system will fall back to non-drop-frame. This setting is enabled by default when Timecode insertion (TimecodeInsertion) is enabled.", + "refs": { + "VideoDescription$DropFrameTimecode": null + } + }, + "DvbNitSettings": { + "base": "Inserts DVB Network Information Table (NIT) at the specified table repetition interval.", + "refs": { + "M2tsSettings$DvbNitSettings": null + } + }, + "DvbSdtSettings": { + "base": "Inserts DVB Service Description Table (NIT) at the specified table repetition interval.", + "refs": { + "M2tsSettings$DvbSdtSettings": null + } + }, + "DvbSubDestinationSettings": { + "base": "DVB-Sub Destination Settings", + "refs": { + "CaptionDestinationSettings$DvbSubDestinationSettings": null + } + }, + "DvbSubSourceSettings": { + "base": "DVB Sub Source Settings", + "refs": { + "CaptionSourceSettings$DvbSubSourceSettings": null + } + }, + "DvbSubtitleAlignment": { + "base": "If no explicit x_position or y_position is provided, setting alignment to centered will place the captions at the bottom center of the output. Similarly, setting a left alignment will align captions to the bottom left of the output. If x and y positions are given in conjunction with the alignment parameter, the font will be justified (either left or centered) relative to those coordinates. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "refs": { + "DvbSubDestinationSettings$Alignment": null + } + }, + "DvbSubtitleBackgroundColor": { + "base": "Specifies the color of the rectangle behind the captions.\nAll burn-in and DVB-Sub font settings must match.", + "refs": { + "DvbSubDestinationSettings$BackgroundColor": null + } + }, + "DvbSubtitleFontColor": { + "base": "Specifies the color of the burned-in captions. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "refs": { + "DvbSubDestinationSettings$FontColor": null + } + }, + "DvbSubtitleOutlineColor": { + "base": "Specifies font outline color. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "refs": { + "DvbSubDestinationSettings$OutlineColor": null + } + }, + "DvbSubtitleShadowColor": { + "base": "Specifies the color of the shadow cast by the captions.\nAll burn-in and DVB-Sub font settings must match.", + "refs": { + "DvbSubDestinationSettings$ShadowColor": null + } + }, + "DvbSubtitleTeletextSpacing": { + "base": "Controls whether a fixed grid size or proportional font spacing will be used to generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in outputs.", + "refs": { + "DvbSubDestinationSettings$TeletextSpacing": null + } + }, + "DvbTdtSettings": { + "base": "Inserts DVB Time and Date Table (TDT) at the specified table repetition interval.", + "refs": { + "M2tsSettings$DvbTdtSettings": null + } + }, + "Eac3AttenuationControl": { + "base": "If set to ATTENUATE_3_DB, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode.", + "refs": { + "Eac3Settings$AttenuationControl": null + } + }, + "Eac3BitstreamMode": { + "base": "Specifies the \"Bitstream Mode\" (bsmod) for the emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.", + "refs": { + "Eac3Settings$BitstreamMode": null + } + }, + "Eac3CodingMode": { + "base": "Dolby Digital Plus coding mode. Determines number of channels.", + "refs": { + "Eac3Settings$CodingMode": null + } + }, + "Eac3DcFilter": { + "base": "Activates a DC highpass filter for all input channels.", + "refs": { + "Eac3Settings$DcFilter": null + } + }, + "Eac3DynamicRangeCompressionLine": { + "base": "Enables Dynamic Range Compression that restricts the absolute peak level for a signal.", + "refs": { + "Eac3Settings$DynamicRangeCompressionLine": null + } + }, + "Eac3DynamicRangeCompressionRf": { + "base": "Enables Heavy Dynamic Range Compression, ensures that the instantaneous signal peaks do not exceed specified levels.", + "refs": { + "Eac3Settings$DynamicRangeCompressionRf": null + } + }, + "Eac3LfeControl": { + "base": "When encoding 3/2 audio, controls whether the LFE channel is enabled", + "refs": { + "Eac3Settings$LfeControl": null + } + }, + "Eac3LfeFilter": { + "base": "Applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with 3_2_LFE coding mode.", + "refs": { + "Eac3Settings$LfeFilter": null + } + }, + "Eac3MetadataControl": { + "base": "When set to FOLLOW_INPUT, encoder metadata will be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied from one of these streams, then the static metadata settings will be used.", + "refs": { + "Eac3Settings$MetadataControl": null + } + }, + "Eac3PassthroughControl": { + "base": "When set to WHEN_POSSIBLE, input DD+ audio will be passed through if it is present on the input. this detection is dynamic over the life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the system alternates between passthrough and encoding.", + "refs": { + "Eac3Settings$PassthroughControl": null + } + }, + "Eac3PhaseControl": { + "base": "Controls the amount of phase-shift applied to the surround channels. Only used for 3/2 coding mode.", + "refs": { + "Eac3Settings$PhaseControl": null + } + }, + "Eac3Settings": { + "base": "Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value EAC3.", + "refs": { + "AudioCodecSettings$Eac3Settings": null + } + }, + "Eac3StereoDownmix": { + "base": "Stereo downmix preference. Only used for 3/2 coding mode.", + "refs": { + "Eac3Settings$StereoDownmix": null + } + }, + "Eac3SurroundExMode": { + "base": "When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels.", + "refs": { + "Eac3Settings$SurroundExMode": null + } + }, + "Eac3SurroundMode": { + "base": "When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the two channels.", + "refs": { + "Eac3Settings$SurroundMode": null + } + }, + "EmbeddedConvert608To708": { + "base": "When set to UPCONVERT, 608 data is both passed through via the \"608 compatibility bytes\" fields of the 708 wrapper as well as translated into 708. 708 data present in the source content will be discarded.", + "refs": { + "EmbeddedSourceSettings$Convert608To708": null + } + }, + "EmbeddedSourceSettings": { + "base": "Settings for embedded captions Source", + "refs": { + "CaptionSourceSettings$EmbeddedSourceSettings": null + } + }, + "Endpoint": { + "base": "Describes account specific API endpoint", + "refs": { + "ListOfEndpoint$member": null + } + }, + "ExceptionBody": { + "base": null, + "refs": { + } + }, + "F4vMoovPlacement": { + "base": "If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end.", + "refs": { + "F4vSettings$MoovPlacement": null + } + }, + "F4vSettings": { + "base": "Settings for F4v container", + "refs": { + "ContainerSettings$F4vSettings": null + } + }, + "FileGroupSettings": { + "base": "Required when you set (Type) under (OutputGroups)>(OutputGroupSettings) to FILE_GROUP_SETTINGS.", + "refs": { + "OutputGroupSettings$FileGroupSettings": null + } + }, + "FileSourceConvert608To708": { + "base": "If set to UPCONVERT, 608 caption data is both passed through via the \"608 compatibility bytes\" fields of the 708 wrapper as well as translated into 708. 708 data present in the source content will be discarded.", + "refs": { + "FileSourceSettings$Convert608To708": null + } + }, + "FileSourceSettings": { + "base": "Settings for File-based Captions in Source", + "refs": { + "CaptionSourceSettings$FileSourceSettings": null + } + }, + "ForbiddenException": { + "base": null, + "refs": { + } + }, + "FrameCaptureSettings": { + "base": "Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value FRAME_CAPTURE.", + "refs": { + "VideoCodecSettings$FrameCaptureSettings": null + } + }, + "GetJobRequest": { + "base": "Query a job by sending a request with the job ID.", + "refs": { + } + }, + "GetJobResponse": { + "base": "Successful get job requests will return an OK message and the job JSON.", + "refs": { + } + }, + "GetJobTemplateRequest": { + "base": "Query a job template by sending a request with the job template name.", + "refs": { + } + }, + "GetJobTemplateResponse": { + "base": "Successful get job template requests will return an OK message and the job template JSON.", + "refs": { + } + }, + "GetPresetRequest": { + "base": "Query a preset by sending a request with the preset name.", + "refs": { + } + }, + "GetPresetResponse": { + "base": "Successful get preset requests will return an OK message and the preset JSON.", + "refs": { + } + }, + "GetQueueRequest": { + "base": "Query a queue by sending a request with the queue name.", + "refs": { + } + }, + "GetQueueResponse": { + "base": "Successful get queue requests will return an OK message and the queue JSON.", + "refs": { + } + }, + "H264AdaptiveQuantization": { + "base": "Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality.", + "refs": { + "H264Settings$AdaptiveQuantization": null + } + }, + "H264CodecLevel": { + "base": "H.264 Level.", + "refs": { + "H264Settings$CodecLevel": null + } + }, + "H264CodecProfile": { + "base": "H.264 Profile. High 4:2:2 and 10-bit profiles are only available with the AVC-I License.", + "refs": { + "H264Settings$CodecProfile": null + } + }, + "H264EntropyEncoding": { + "base": "Entropy encoding mode. Use CABAC (must be in Main or High profile) or CAVLC.", + "refs": { + "H264Settings$EntropyEncoding": null + } + }, + "H264FieldEncoding": { + "base": "Choosing FORCE_FIELD disables PAFF encoding for interlaced outputs.", + "refs": { + "H264Settings$FieldEncoding": null + } + }, + "H264FlickerAdaptiveQuantization": { + "base": "Adjust quantization within each frame to reduce flicker or 'pop' on I-frames.", + "refs": { + "H264Settings$FlickerAdaptiveQuantization": null + } + }, + "H264FramerateControl": { + "base": "Using the API, set FramerateControl to INITIALIZE_FROM_SOURCE if you want the service to use the framerate from the input. Using the console, do this by choosing INITIALIZE_FROM_SOURCE for Framerate.", + "refs": { + "H264Settings$FramerateControl": null + } + }, + "H264FramerateConversionAlgorithm": { + "base": "When set to INTERPOLATE, produces smoother motion during framerate conversion.", + "refs": { + "H264Settings$FramerateConversionAlgorithm": null + } + }, + "H264GopBReference": { + "base": "If enable, use reference B frames for GOP structures that have B frames > 1.", + "refs": { + "H264Settings$GopBReference": null + } + }, + "H264GopSizeUnits": { + "base": "Indicates if the GOP Size in H264 is specified in frames or seconds. If seconds the system will convert the GOP Size into a frame count at run time.", + "refs": { + "H264Settings$GopSizeUnits": null + } + }, + "H264InterlaceMode": { + "base": "Use Interlace mode (InterlaceMode) to choose the scan line type for the output. * Top Field First (TOP_FIELD) and Bottom Field First (BOTTOM_FIELD) produce interlaced output with the entire output having the same field polarity (top or bottom first). * Follow, Default Top (FOLLOw_TOP_FIELD) and Follow, Default Bottom (FOLLOW_BOTTOM_FIELD) use the same field polarity as the source. Therefore, behavior depends on the input scan type. - If the source is interlaced, the output will be interlaced with the same polarity as the source (it will follow the source). The output could therefore be a mix of \"top field first\" and \"bottom field first\". - If the source is progressive, the output will be interlaced with \"top field first\" or \"bottom field first\" polarity, depending on which of the Follow options you chose.", + "refs": { + "H264Settings$InterlaceMode": null + } + }, + "H264ParControl": { + "base": "Using the API, enable ParFollowSource if you want the service to use the pixel aspect ratio from the input. Using the console, do this by choosing Follow source for Pixel aspect ratio.", + "refs": { + "H264Settings$ParControl": null + } + }, + "H264QualityTuningLevel": { + "base": "Use Quality tuning level (H264QualityTuningLevel) to specifiy whether to use fast single-pass, high-quality singlepass, or high-quality multipass video encoding.", + "refs": { + "H264Settings$QualityTuningLevel": null + } + }, + "H264RateControlMode": { + "base": "Rate control mode. CQ uses constant quantizer (qp), ABR (average bitrate) does not write HRD parameters.", + "refs": { + "H264Settings$RateControlMode": null + } + }, + "H264RepeatPps": { + "base": "Places a PPS header on each encoded picture, even if repeated.", + "refs": { + "H264Settings$RepeatPps": null + } + }, + "H264SceneChangeDetect": { + "base": "Scene change detection (inserts I-frames on scene changes).", + "refs": { + "H264Settings$SceneChangeDetect": null + } + }, + "H264Settings": { + "base": "Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value H_264.", + "refs": { + "VideoCodecSettings$H264Settings": null + } + }, + "H264SlowPal": { + "base": "Enables Slow PAL rate conversion. 23.976fps and 24fps input is relabeled as 25fps, and audio is sped up correspondingly.", + "refs": { + "H264Settings$SlowPal": null + } + }, + "H264SpatialAdaptiveQuantization": { + "base": "Adjust quantization within each frame based on spatial variation of content complexity.", + "refs": { + "H264Settings$SpatialAdaptiveQuantization": null + } + }, + "H264Syntax": { + "base": "Produces a bitstream compliant with SMPTE RP-2027.", + "refs": { + "H264Settings$Syntax": null + } + }, + "H264Telecine": { + "base": "This field applies only if the Streams > Advanced > Framerate (framerate) field is set to 29.970. This field works with the Streams > Advanced > Preprocessors > Deinterlacer field (deinterlace_mode) and the Streams > Advanced > Interlaced Mode field (interlace_mode) to identify the scan type for the output: Progressive, Interlaced, Hard Telecine or Soft Telecine. - Hard: produces 29.97i output from 23.976 input. - Soft: produces 23.976; the player converts this output to 29.97i.", + "refs": { + "H264Settings$Telecine": null + } + }, + "H264TemporalAdaptiveQuantization": { + "base": "Adjust quantization within each frame based on temporal variation of content complexity.", + "refs": { + "H264Settings$TemporalAdaptiveQuantization": null + } + }, + "H264UnregisteredSeiTimecode": { + "base": "Inserts timecode for each frame as 4 bytes of an unregistered SEI message.", + "refs": { + "H264Settings$UnregisteredSeiTimecode": null + } + }, + "H265AdaptiveQuantization": { + "base": "Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality.", + "refs": { + "H265Settings$AdaptiveQuantization": null + } + }, + "H265AlternateTransferFunctionSei": { + "base": "Enables Alternate Transfer Function SEI message for outputs using Hybrid Log Gamma (HLG) Electro-Optical Transfer Function (EOTF).", + "refs": { + "H265Settings$AlternateTransferFunctionSei": null + } + }, + "H265CodecLevel": { + "base": "H.265 Level.", + "refs": { + "H265Settings$CodecLevel": null + } + }, + "H265CodecProfile": { + "base": "Represents the Profile and Tier, per the HEVC (H.265) specification. Selections are grouped as [Profile] / [Tier], so \"Main/High\" represents Main Profile with High Tier. 4:2:2 profiles are only available with the HEVC 4:2:2 License.", + "refs": { + "H265Settings$CodecProfile": null + } + }, + "H265FlickerAdaptiveQuantization": { + "base": "Adjust quantization within each frame to reduce flicker or 'pop' on I-frames.", + "refs": { + "H265Settings$FlickerAdaptiveQuantization": null + } + }, + "H265FramerateControl": { + "base": "Using the API, set FramerateControl to INITIALIZE_FROM_SOURCE if you want the service to use the framerate from the input. Using the console, do this by choosing INITIALIZE_FROM_SOURCE for Framerate.", + "refs": { + "H265Settings$FramerateControl": null + } + }, + "H265FramerateConversionAlgorithm": { + "base": "When set to INTERPOLATE, produces smoother motion during framerate conversion.", + "refs": { + "H265Settings$FramerateConversionAlgorithm": null + } + }, + "H265GopBReference": { + "base": "If enable, use reference B frames for GOP structures that have B frames > 1.", + "refs": { + "H265Settings$GopBReference": null + } + }, + "H265GopSizeUnits": { + "base": "Indicates if the GOP Size in H265 is specified in frames or seconds. If seconds the system will convert the GOP Size into a frame count at run time.", + "refs": { + "H265Settings$GopSizeUnits": null + } + }, + "H265InterlaceMode": { + "base": "Use Interlace mode (InterlaceMode) to choose the scan line type for the output. * Top Field First (TOP_FIELD) and Bottom Field First (BOTTOM_FIELD) produce interlaced output with the entire output having the same field polarity (top or bottom first). * Follow, Default Top (FOLLOw_TOP_FIELD) and Follow, Default Bottom (FOLLOW_BOTTOM_FIELD) use the same field polarity as the source. Therefore, behavior depends on the input scan type. - If the source is interlaced, the output will be interlaced with the same polarity as the source (it will follow the source). The output could therefore be a mix of \"top field first\" and \"bottom field first\". - If the source is progressive, the output will be interlaced with \"top field first\" or \"bottom field first\" polarity, depending on which of the Follow options you chose.", + "refs": { + "H265Settings$InterlaceMode": null + } + }, + "H265ParControl": { + "base": "Using the API, enable ParFollowSource if you want the service to use the pixel aspect ratio from the input. Using the console, do this by choosing Follow source for Pixel aspect ratio.", + "refs": { + "H265Settings$ParControl": null + } + }, + "H265QualityTuningLevel": { + "base": "Use Quality tuning level (H265QualityTuningLevel) to specifiy whether to use fast single-pass, high-quality singlepass, or high-quality multipass video encoding.", + "refs": { + "H265Settings$QualityTuningLevel": null + } + }, + "H265RateControlMode": { + "base": "Rate control mode. CQ uses constant quantizer (qp), ABR (average bitrate) does not write HRD parameters.", + "refs": { + "H265Settings$RateControlMode": null + } + }, + "H265SampleAdaptiveOffsetFilterMode": { + "base": "Specify Sample Adaptive Offset (SAO) filter strength. Adaptive mode dynamically selects best strength based on content", + "refs": { + "H265Settings$SampleAdaptiveOffsetFilterMode": null + } + }, + "H265SceneChangeDetect": { + "base": "Scene change detection (inserts I-frames on scene changes).", + "refs": { + "H265Settings$SceneChangeDetect": null + } + }, + "H265Settings": { + "base": "Settings for H265 codec", + "refs": { + "VideoCodecSettings$H265Settings": null + } + }, + "H265SlowPal": { + "base": "Enables Slow PAL rate conversion. 23.976fps and 24fps input is relabeled as 25fps, and audio is sped up correspondingly.", + "refs": { + "H265Settings$SlowPal": null + } + }, + "H265SpatialAdaptiveQuantization": { + "base": "Adjust quantization within each frame based on spatial variation of content complexity.", + "refs": { + "H265Settings$SpatialAdaptiveQuantization": null + } + }, + "H265Telecine": { + "base": "This field applies only if the Streams > Advanced > Framerate (framerate) field is set to 29.970. This field works with the Streams > Advanced > Preprocessors > Deinterlacer field (deinterlace_mode) and the Streams > Advanced > Interlaced Mode field (interlace_mode) to identify the scan type for the output: Progressive, Interlaced, Hard Telecine or Soft Telecine. - Hard: produces 29.97i output from 23.976 input. - Soft: produces 23.976; the player converts this output to 29.97i.", + "refs": { + "H265Settings$Telecine": null + } + }, + "H265TemporalAdaptiveQuantization": { + "base": "Adjust quantization within each frame based on temporal variation of content complexity.", + "refs": { + "H265Settings$TemporalAdaptiveQuantization": null + } + }, + "H265TemporalIds": { + "base": "Enables temporal layer identifiers in the encoded bitstream. Up to 3 layers are supported depending on GOP structure: I- and P-frames form one layer, reference B-frames can form a second layer and non-reference b-frames can form a third layer. Decoders can optionally decode only the lower temporal layers to generate a lower frame rate output. For example, given a bitstream with temporal IDs and with b-frames = 1 (i.e. IbPbPb display order), a decoder could decode all the frames for full frame rate output or only the I and P frames (lowest temporal layer) for a half frame rate output.", + "refs": { + "H265Settings$TemporalIds": null + } + }, + "H265Tiles": { + "base": "Enable use of tiles, allowing horizontal as well as vertical subdivision of the encoded pictures.", + "refs": { + "H265Settings$Tiles": null + } + }, + "H265UnregisteredSeiTimecode": { + "base": "Inserts timecode for each frame as 4 bytes of an unregistered SEI message.", + "refs": { + "H265Settings$UnregisteredSeiTimecode": null + } + }, + "Hdr10Metadata": { + "base": "Use the HDR master display (Hdr10Metadata) settings to provide values for HDR color. These values vary depending on the input video and must be provided by a color grader. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.", + "refs": { + "ColorCorrector$Hdr10Metadata": null, + "VideoSelector$Hdr10Metadata": null + } + }, + "HlsAdMarkers": { + "base": null, + "refs": { + "ListOfHlsAdMarkers$member": null + } + }, + "HlsAudioTrackType": { + "base": "Four types of audio-only tracks are supported: Audio-Only Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO", + "refs": { + "HlsSettings$AudioTrackType": null + } + }, + "HlsCaptionLanguageMapping": { + "base": "Caption Language Mapping", + "refs": { + "ListOfHlsCaptionLanguageMapping$member": null + } + }, + "HlsCaptionLanguageSetting": { + "base": "Applies only to 608 Embedded output captions. Insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to specify the languages in the order in which they appear in the original source (if the source is embedded format) or the order of the caption selectors (if the source is other than embedded). Otherwise, languages in the manifest will not match up properly with the output captions. None: Include CLOSED-CAPTIONS=NONE line in the manifest. Omit: Omit any CLOSED-CAPTIONS line from the manifest.", + "refs": { + "HlsGroupSettings$CaptionLanguageSetting": null + } + }, + "HlsClientCache": { + "base": "When set to ENABLED, sets #EXT-X-ALLOW-CACHE:no tag, which prevents client from saving media segments for later replay.", + "refs": { + "HlsGroupSettings$ClientCache": null + } + }, + "HlsCodecSpecification": { + "base": "Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.", + "refs": { + "HlsGroupSettings$CodecSpecification": null + } + }, + "HlsDirectoryStructure": { + "base": "Indicates whether segments should be placed in subdirectories.", + "refs": { + "HlsGroupSettings$DirectoryStructure": null + } + }, + "HlsEncryptionSettings": { + "base": "Settings for HLS encryption", + "refs": { + "HlsGroupSettings$Encryption": "DRM settings." + } + }, + "HlsEncryptionType": { + "base": "Encrypts the segments with the given encryption scheme. Leave blank to disable. Selecting 'Disabled' in the web interface also disables encryption.", + "refs": { + "HlsEncryptionSettings$EncryptionMethod": null + } + }, + "HlsGroupSettings": { + "base": "Required when you set (Type) under (OutputGroups)>(OutputGroupSettings) to HLS_GROUP_SETTINGS.", + "refs": { + "OutputGroupSettings$HlsGroupSettings": null + } + }, + "HlsIFrameOnlyManifest": { + "base": "When set to INCLUDE, writes I-Frame Only Manifest in addition to the HLS manifest", + "refs": { + "HlsSettings$IFrameOnlyManifest": null + } + }, + "HlsInitializationVectorInManifest": { + "base": "The Initialization Vector is a 128-bit number used in conjunction with the key for encrypting blocks. If set to INCLUDE, Initialization Vector is listed in the manifest. Otherwise Initialization Vector is not in the manifest.", + "refs": { + "HlsEncryptionSettings$InitializationVectorInManifest": null + } + }, + "HlsKeyProviderType": { + "base": "Indicates which type of key provider is used for encryption.", + "refs": { + "HlsEncryptionSettings$Type": null + } + }, + "HlsManifestCompression": { + "base": "When set to GZIP, compresses HLS playlist.", + "refs": { + "HlsGroupSettings$ManifestCompression": null + } + }, + "HlsManifestDurationFormat": { + "base": "Indicates whether the output manifest should use floating point values for segment duration.", + "refs": { + "HlsGroupSettings$ManifestDurationFormat": null + } + }, + "HlsOutputSelection": { + "base": "Indicates whether the .m3u8 manifest file should be generated for this HLS output group.", + "refs": { + "HlsGroupSettings$OutputSelection": null + } + }, + "HlsProgramDateTime": { + "base": "Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated as follows: either the program date and time are initialized using the input timecode source, or the time is initialized using the input timecode source and the date is initialized using the timestamp_offset.", + "refs": { + "HlsGroupSettings$ProgramDateTime": null + } + }, + "HlsSegmentControl": { + "base": "When set to SINGLE_FILE, emits program as a single media resource (.ts) file, uses #EXT-X-BYTERANGE tags to index segment for playback.", + "refs": { + "HlsGroupSettings$SegmentControl": null + } + }, + "HlsSettings": { + "base": "Settings for HLS output groups", + "refs": { + "OutputSettings$HlsSettings": null + } + }, + "HlsStreamInfResolution": { + "base": "Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest.", + "refs": { + "HlsGroupSettings$StreamInfResolution": null + } + }, + "HlsTimedMetadataId3Frame": { + "base": "Indicates ID3 frame that has the timecode.", + "refs": { + "HlsGroupSettings$TimedMetadataId3Frame": null + } + }, + "Id3Insertion": { + "base": "To insert ID3 tags in your output, specify two values. Use ID3 tag (Id3) to specify the base 64 encoded string and use Timecode (TimeCode) to specify the time when the tag should be inserted. To insert multiple ID3 tags in your output, create mulitple instances of ID3 insertion (Id3Insertion).", + "refs": { + "ListOfId3Insertion$member": null + } + }, + "ImageInserter": { + "base": "Enable the Image inserter (ImageInserter) feature to include a graphic overlay on your video. Enable or disable this feature for each output individually. This setting is disabled by default.", + "refs": { + "VideoPreprocessor$ImageInserter": "Enable the Image inserter (ImageInserter) feature to include a graphic overlay on your video. Enable or disable this feature for each output individually. This setting is disabled by default." + } + }, + "Input": { + "base": "Specifies media input", + "refs": { + "ListOfInput$member": null + } + }, + "InputClipping": { + "base": "Include one instance of (InputClipping) for each input clip.", + "refs": { + "ListOfInputClipping$member": null + } + }, + "InputDeblockFilter": { + "base": "Enable Deblock (InputDeblockFilter) to produce smoother motion in the output. Default is disabled. Only manaully controllable for MPEG2 and uncompressed video inputs.", + "refs": { + "Input$DeblockFilter": null, + "InputTemplate$DeblockFilter": null + } + }, + "InputDenoiseFilter": { + "base": "Enable Denoise (InputDenoiseFilter) to filter noise from the input. Default is disabled. Only applicable to MPEG2, H.264, H.265, and uncompressed video inputs.", + "refs": { + "Input$DenoiseFilter": null, + "InputTemplate$DenoiseFilter": null + } + }, + "InputFilterEnable": { + "base": "Use Filter enable (InputFilterEnable) to specify how the transcoding service applies the denoise and deblock filters. You must also enable the filters separately, with Denoise (InputDenoiseFilter) and Deblock (InputDeblockFilter). * Auto - The transcoding service determines whether to apply filtering, depending on input type and quality. * Disable - The input is not filtered. This is true even if you use the API to enable them in (InputDeblockFilter) and (InputDeblockFilter). * Force - The in put is filtered regardless of input type.", + "refs": { + "Input$FilterEnable": null, + "InputTemplate$FilterEnable": null + } + }, + "InputPsiControl": { + "base": "Set PSI control (InputPsiControl) for transport stream inputs to specify which data the demux process to scans. * Ignore PSI - Scan all PIDs for audio and video. * Use PSI - Scan only PSI data.", + "refs": { + "Input$PsiControl": null, + "InputTemplate$PsiControl": null + } + }, + "InputTemplate": { + "base": "Specified video input in a template.", + "refs": { + "ListOfInputTemplate$member": null + } + }, + "InputTimecodeSource": { + "base": "Use Timecode source (InputTimecodeSource) to specify how timecode information from your input is adjusted and encoded in all outputs for the job. Default is embedded. Set to Embedded (EMBEDDED) to use the timecode that is in the input video. If no embedded timecode is in the source, will set the timecode for the first frame to 00:00:00:00. Set to Start at 0 (ZEROBASED) to set the timecode of the initial frame to 00:00:00:00. Set to Specified start (SPECIFIEDSTART) to provide the initial timecode yourself the setting (Start).", + "refs": { + "Input$TimecodeSource": null, + "InputTemplate$TimecodeSource": null + } + }, + "InsertableImage": { + "base": "Settings for Insertable Image", + "refs": { + "ListOfInsertableImage$member": null + } + }, + "InternalServerErrorException": { + "base": null, + "refs": { + } + }, + "Job": { + "base": "Each job converts an input file into an output file or files. For more information, see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", + "refs": { + "CreateJobResponse$Job": null, + "GetJobResponse$Job": null, + "ListOfJob$member": null + } + }, + "JobSettings": { + "base": "JobSettings contains all the transcode settings for a job.", + "refs": { + "CreateJobRequest$Settings": null, + "Job$Settings": null + } + }, + "JobStatus": { + "base": "A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.", + "refs": { + "Job$Status": null, + "ListJobsRequest$Status": null + } + }, + "JobTemplate": { + "base": "A job template is a pre-made set of encoding instructions that you can use to quickly create a job.", + "refs": { + "CreateJobTemplateResponse$JobTemplate": null, + "GetJobTemplateResponse$JobTemplate": null, + "ListOfJobTemplate$member": null, + "UpdateJobTemplateResponse$JobTemplate": null + } + }, + "JobTemplateListBy": { + "base": "Optional. When you request a list of job templates, you can choose to list them alphabetically by NAME or chronologically by CREATION_DATE. If you don't specify, the service will list them by name.", + "refs": { + "ListJobTemplatesRequest$ListBy": null + } + }, + "JobTemplateSettings": { + "base": "JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.", + "refs": { + "CreateJobTemplateRequest$Settings": null, + "JobTemplate$Settings": null, + "UpdateJobTemplateRequest$Settings": null + } + }, + "LanguageCode": { + "base": "Code to specify the language, following the specification \"ISO 639-2 three-digit code\":http://www.loc.gov/standards/iso639-2/", + "refs": { + "AudioDescription$LanguageCode": "Indicates the language of the audio output track. The ISO 639 language specified in the 'Language Code' drop down will be used when 'Follow Input Language Code' is not selected or when 'Follow Input Language Code' is selected but there is no ISO 639 language code specified by the input.", + "AudioSelector$LanguageCode": "Selects a specific language code from within an audio source.", + "CaptionDescription$LanguageCode": "Indicates the language of the caption output track.", + "CaptionDescriptionPreset$LanguageCode": "Indicates the language of the caption output track.", + "CaptionSelector$LanguageCode": "The specific language to extract from source. If input is SCTE-27, complete this field and/or PID to select the caption language to extract. If input is DVB-Sub and output is Burn-in or SMPTE-TT, complete this field and/or PID to select the caption language to extract. If input is DVB-Sub that is being passed through, omit this field (and PID field); there is no way to extract a specific language with pass-through captions.", + "HlsCaptionLanguageMapping$LanguageCode": null + } + }, + "ListJobTemplatesRequest": { + "base": "You can send list job templates requests with an empty body. Optionally, you can filter the response by category by specifying it in your request body. You can also optionally specify the maximum number, up to twenty, of job templates to be returned.", + "refs": { + } + }, + "ListJobTemplatesResponse": { + "base": "Successful list job templates requests return a JSON array of job templates. If you do not specify how they are ordered, you will receive them in alphabetical order by name.", + "refs": { + } + }, + "ListJobsRequest": { + "base": "You can send list jobs requests with an empty body. Optionally, you can filter the response by queue and/or job status by specifying them in your request body. You can also optionally specify the maximum number, up to twenty, of jobs to be returned.", + "refs": { + } + }, + "ListJobsResponse": { + "base": "Successful list jobs requests return a JSON array of jobs. If you do not specify how they are ordered, you will receive the most recently created first.", + "refs": { + } + }, + "ListOfAudioDescription": { + "base": null, + "refs": { + "Output$AudioDescriptions": "(AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings.", + "PresetSettings$AudioDescriptions": "(AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings." + } + }, + "ListOfCaptionDescription": { + "base": null, + "refs": { + "Output$CaptionDescriptions": "(CaptionDescriptions) contains groups of captions settings. For each output that has captions, include one instance of (CaptionDescriptions). (CaptionDescriptions) can contain multiple groups of captions settings." + } + }, + "ListOfCaptionDescriptionPreset": { + "base": null, + "refs": { + "PresetSettings$CaptionDescriptions": "Caption settings for this preset. There can be multiple caption settings in a single output." + } + }, + "ListOfEndpoint": { + "base": null, + "refs": { + "DescribeEndpointsResponse$Endpoints": "List of endpoints" + } + }, + "ListOfHlsAdMarkers": { + "base": null, + "refs": { + "HlsGroupSettings$AdMarkers": "Choose one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs." + } + }, + "ListOfHlsCaptionLanguageMapping": { + "base": null, + "refs": { + "HlsGroupSettings$CaptionLanguageMappings": "Language to be used on Caption outputs" + } + }, + "ListOfId3Insertion": { + "base": null, + "refs": { + "TimedMetadataInsertion$Id3Insertions": "Id3Insertions contains the array of Id3Insertion instances." + } + }, + "ListOfInput": { + "base": null, + "refs": { + "JobSettings$Inputs": "Use Inputs (inputs) to define source file used in the transcode job. There can be multiple inputs add in a job. These inputs will be concantenated together to create the output." + } + }, + "ListOfInputClipping": { + "base": null, + "refs": { + "Input$InputClippings": "(InputClippings) contains sets of start and end times that together specify a portion of the input to be used in the outputs. If you provide only a start time, the clip will be the entire input from that point to the end. If you provide only an end time, it will be the entire input up to that point. When you specify more than one input clip, the transcoding service creates the job outputs by stringing the clips together in the order you specify them.", + "InputTemplate$InputClippings": "(InputClippings) contains sets of start and end times that together specify a portion of the input to be used in the outputs. If you provide only a start time, the clip will be the entire input from that point to the end. If you provide only an end time, it will be the entire input up to that point. When you specify more than one input clip, the transcoding service creates the job outputs by stringing the clips together in the order you specify them." + } + }, + "ListOfInputTemplate": { + "base": null, + "refs": { + "JobTemplateSettings$Inputs": "Use Inputs (inputs) to define the source file used in the transcode job. There can only be one input in a job template. Using the API, you can include multiple inputs when referencing a job template." + } + }, + "ListOfInsertableImage": { + "base": null, + "refs": { + "ImageInserter$InsertableImages": "Image to insert. Must be 32 bit windows BMP, PNG, or TGA file. Must not be larger than the output frames." + } + }, + "ListOfJob": { + "base": null, + "refs": { + "ListJobsResponse$Jobs": "List of jobs" + } + }, + "ListOfJobTemplate": { + "base": null, + "refs": { + "ListJobTemplatesResponse$JobTemplates": "List of Job templates." + } + }, + "ListOfOutput": { + "base": null, + "refs": { + "OutputGroup$Outputs": "This object holds groups of encoding settings, one group of settings per output." + } + }, + "ListOfOutputChannelMapping": { + "base": null, + "refs": { + "ChannelMapping$OutputChannels": "List of output channels" + } + }, + "ListOfOutputDetail": { + "base": null, + "refs": { + "OutputGroupDetail$OutputDetails": "Details about the output" + } + }, + "ListOfOutputGroup": { + "base": null, + "refs": { + "JobSettings$OutputGroups": "**!!**(OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings", + "JobTemplateSettings$OutputGroups": "**!!**(OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings" + } + }, + "ListOfOutputGroupDetail": { + "base": null, + "refs": { + "Job$OutputGroupDetails": "List of output group details" + } + }, + "ListOfPreset": { + "base": null, + "refs": { + "ListPresetsResponse$Presets": "List of presets" + } + }, + "ListOfQueue": { + "base": null, + "refs": { + "ListQueuesResponse$Queues": "List of queues" + } + }, + "ListOf__integer": { + "base": null, + "refs": { + "AudioSelector$Pids": "Selects a specific PID from within an audio source (e.g. 257 selects PID 0x101).", + "AudioSelector$Tracks": "Identify the channel to include in this selector by entering the 1-based track index. To combine several tracks, enter a comma-separated list, e.g. \"1,2,3\" for tracks 1-3.", + "M2tsSettings$AudioPids": "Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.", + "M2tsSettings$DvbSubPids": "Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.", + "M3u8Settings$AudioPids": "Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.", + "OutputChannelMapping$InputChannels": "List of input channels" + } + }, + "ListOf__string": { + "base": null, + "refs": { + "AudioSelectorGroup$AudioSelectorNames": "Name of an \"Audio Selector\":#inputs-audio_selector within the same input to include in the group. Audio selector names are standardized, based on their order within the input (e.g. \"Audio Selector 1\"). The audio_selector_name parameter can be repeated to add any number of audio selectors to the group.", + "SpekeKeyProvider$SystemIds": "Relates to SPEKE implementation. DRM system identifiers. DASH output groups support a max of two system ids. Other group types support one system id." + } + }, + "ListPresetsRequest": { + "base": "You can send list presets requests with an empty body. Optionally, you can filter the response by category by specifying it in your request body. You can also optionally specify the maximum number, up to twenty, of queues to be returned.", + "refs": { + } + }, + "ListPresetsResponse": { + "base": "Successful list presets requests return a JSON array of presets. If you do not specify how they are ordered, you will receive them alphabetically by name.", + "refs": { + } + }, + "ListQueuesRequest": { + "base": "You can send list queues requests with an empty body. You can optionally specify the maximum number, up to twenty, of queues to be returned.", + "refs": { + } + }, + "ListQueuesResponse": { + "base": "Successful list queues return a JSON array of queues. If you do not specify how they are ordered, you will receive them alphabetically by name.", + "refs": { + } + }, + "M2tsAudioBufferModel": { + "base": "Selects between the DVB and ATSC buffer models for Dolby Digital audio.", + "refs": { + "M2tsSettings$AudioBufferModel": null + } + }, + "M2tsBufferModel": { + "base": "Controls what buffer model to use for accurate interleaving. If set to MULTIPLEX, use multiplex buffer model. If set to NONE, this can lead to lower latency, but low-memory devices may not be able to play back the stream without interruptions.", + "refs": { + "M2tsSettings$BufferModel": null + } + }, + "M2tsEbpAudioInterval": { + "base": "When set to VIDEO_AND_FIXED_INTERVALS, audio EBP markers will be added to partitions 3 and 4. The interval between these additional markers will be fixed, and will be slightly shorter than the video EBP marker interval. When set to VIDEO_INTERVAL, these additional markers will not be inserted. Only applicable when EBP segmentation markers are is selected (segmentationMarkers is EBP or EBP_LEGACY).", + "refs": { + "M2tsSettings$EbpAudioInterval": null + } + }, + "M2tsEbpPlacement": { + "base": "Selects which PIDs to place EBP markers on. They can either be placed only on the video PID, or on both the video PID and all audio PIDs. Only applicable when EBP segmentation markers are is selected (segmentationMarkers is EBP or EBP_LEGACY).", + "refs": { + "M2tsSettings$EbpPlacement": null + } + }, + "M2tsEsRateInPes": { + "base": "Controls whether to include the ES Rate field in the PES header.", + "refs": { + "M2tsSettings$EsRateInPes": null + } + }, + "M2tsPcrControl": { + "base": "When set to PCR_EVERY_PES_PACKET, a Program Clock Reference value is inserted for every Packetized Elementary Stream (PES) header. This is effective only when the PCR PID is the same as the video or audio elementary stream.", + "refs": { + "M2tsSettings$PcrControl": null + } + }, + "M2tsRateMode": { + "base": "When set to CBR, inserts null packets into transport stream to fill specified bitrate. When set to VBR, the bitrate setting acts as the maximum bitrate, but the output will not be padded up to that bitrate.", + "refs": { + "M2tsSettings$RateMode": null + } + }, + "M2tsScte35Source": { + "base": "Enables SCTE-35 passthrough (scte35Source) to pass any SCTE-35 signals from input to output. This is only available for certain containers.", + "refs": { + "M2tsSettings$Scte35Source": null + } + }, + "M2tsSegmentationMarkers": { + "base": "Inserts segmentation markers at each segmentation_time period. rai_segstart sets the Random Access Indicator bit in the adaptation field. rai_adapt sets the RAI bit and adds the current timecode in the private data bytes. psi_segstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebp_legacy adds Encoder Boundary Point information to the adaptation field using a legacy proprietary format.", + "refs": { + "M2tsSettings$SegmentationMarkers": null + } + }, + "M2tsSegmentationStyle": { + "base": "The segmentation style parameter controls how segmentation markers are inserted into the transport stream. With avails, it is possible that segments may be truncated, which can influence where future segmentation markers are inserted. When a segmentation style of \"reset_cadence\" is selected and a segment is truncated due to an avail, we will reset the segmentation cadence. This means the subsequent segment will have a duration of of $segmentation_time seconds. When a segmentation style of \"maintain_cadence\" is selected and a segment is truncated due to an avail, we will not reset the segmentation cadence. This means the subsequent segment will likely be truncated as well. However, all segments after that will have a duration of $segmentation_time seconds. Note that EBP lookahead is a slight exception to this rule.", + "refs": { + "M2tsSettings$SegmentationStyle": null + } + }, + "M2tsSettings": { + "base": "Settings for M2TS Container.", + "refs": { + "ContainerSettings$M2tsSettings": null + } + }, + "M3u8PcrControl": { + "base": "When set to PCR_EVERY_PES_PACKET a Program Clock Reference value is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream.", + "refs": { + "M3u8Settings$PcrControl": null + } + }, + "M3u8Scte35Source": { + "base": "Enables SCTE-35 passthrough (scte35Source) to pass any SCTE-35 signals from input to output. This is only available for certain containers.", + "refs": { + "M3u8Settings$Scte35Source": null + } + }, + "M3u8Settings": { + "base": "Settings for TS segments in HLS", + "refs": { + "ContainerSettings$M3u8Settings": null + } + }, + "MapOfAudioSelector": { + "base": null, + "refs": { + "Input$AudioSelectors": "Use Audio selectors (AudioSelectors) to specify a track or set of tracks from the input that you will use in your outputs. You can use mutiple Audio selectors per input.", + "InputTemplate$AudioSelectors": "Use Audio selectors (AudioSelectors) to specify a track or set of tracks from the input that you will use in your outputs. You can use mutiple Audio selectors per input." + } + }, + "MapOfAudioSelectorGroup": { + "base": null, + "refs": { + "Input$AudioSelectorGroups": "Specifies set of audio selectors within an input to combine. An input may have multiple audio selector groups. See \"Audio Selector Group\":#inputs-audio_selector_group for more information.", + "InputTemplate$AudioSelectorGroups": "Specifies set of audio selectors within an input to combine. An input may have multiple audio selector groups. See \"Audio Selector Group\":#inputs-audio_selector_group for more information." + } + }, + "MapOfCaptionSelector": { + "base": null, + "refs": { + "Input$CaptionSelectors": "Use Captions selectors (CaptionSelectors) to specify the captions data from the input that you will use in your outputs. You can use mutiple captions selectors per input.", + "InputTemplate$CaptionSelectors": "Use Captions selectors (CaptionSelectors) to specify the captions data from the input that you will use in your outputs. You can use mutiple captions selectors per input." + } + }, + "MapOf__string": { + "base": null, + "refs": { + "CreateJobRequest$UserMetadata": "User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs.", + "Job$UserMetadata": "User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs." + } + }, + "MovClapAtom": { + "base": "When enabled, include 'clap' atom if appropriate for the video output settings.", + "refs": { + "MovSettings$ClapAtom": null + } + }, + "MovCslgAtom": { + "base": "When enabled, file composition times will start at zero, composition times in the 'ctts' (composition time to sample) box for B-frames will be negative, and a 'cslg' (composition shift least greatest) box will be included per 14496-1 amendment 1. This improves compatibility with Apple players and tools.", + "refs": { + "MovSettings$CslgAtom": null + } + }, + "MovMpeg2FourCCControl": { + "base": "When set to XDCAM, writes MPEG2 video streams into the QuickTime file using XDCAM fourcc codes. This increases compatibility with Apple editors and players, but may decrease compatibility with other players. Only applicable when the video codec is MPEG2.", + "refs": { + "MovSettings$Mpeg2FourCCControl": null + } + }, + "MovPaddingControl": { + "base": "If set to OMNEON, inserts Omneon-compatible padding", + "refs": { + "MovSettings$PaddingControl": null + } + }, + "MovReference": { + "base": "A value of 'external' creates separate media files and the wrapper file (.mov) contains references to these media files. A value of 'self_contained' creates only a wrapper (.mov) file and this file contains all of the media.", + "refs": { + "MovSettings$Reference": null + } + }, + "MovSettings": { + "base": "Settings for MOV Container.", + "refs": { + "ContainerSettings$MovSettings": null + } + }, + "Mp2Settings": { + "base": "Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value MP2.", + "refs": { + "AudioCodecSettings$Mp2Settings": null + } + }, + "Mp4CslgAtom": { + "base": "When enabled, file composition times will start at zero, composition times in the 'ctts' (composition time to sample) box for B-frames will be negative, and a 'cslg' (composition shift least greatest) box will be included per 14496-1 amendment 1. This improves compatibility with Apple players and tools.", + "refs": { + "Mp4Settings$CslgAtom": null + } + }, + "Mp4FreeSpaceBox": { + "base": "Inserts a free-space box immediately after the moov box.", + "refs": { + "Mp4Settings$FreeSpaceBox": null + } + }, + "Mp4MoovPlacement": { + "base": "If set to PROGRESSIVE_DOWNLOAD, the MOOV atom is relocated to the beginning of the archive as required for progressive downloading. Otherwise it is placed normally at the end.", + "refs": { + "Mp4Settings$MoovPlacement": null + } + }, + "Mp4Settings": { + "base": "Settings for MP4 Container", + "refs": { + "ContainerSettings$Mp4Settings": null + } + }, + "Mpeg2AdaptiveQuantization": { + "base": "Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality.", + "refs": { + "Mpeg2Settings$AdaptiveQuantization": null + } + }, + "Mpeg2CodecLevel": { + "base": "Use Level (Mpeg2CodecLevel) to set the MPEG-2 level for the video output.", + "refs": { + "Mpeg2Settings$CodecLevel": null + } + }, + "Mpeg2CodecProfile": { + "base": "Use Profile (Mpeg2CodecProfile) to set the MPEG-2 profile for the video output.", + "refs": { + "Mpeg2Settings$CodecProfile": null + } + }, + "Mpeg2FramerateControl": { + "base": "Using the API, set FramerateControl to INITIALIZE_FROM_SOURCE if you want the service to use the framerate from the input. Using the console, do this by choosing INITIALIZE_FROM_SOURCE for Framerate.", + "refs": { + "Mpeg2Settings$FramerateControl": null + } + }, + "Mpeg2FramerateConversionAlgorithm": { + "base": "When set to INTERPOLATE, produces smoother motion during framerate conversion.", + "refs": { + "Mpeg2Settings$FramerateConversionAlgorithm": null + } + }, + "Mpeg2GopSizeUnits": { + "base": "Indicates if the GOP Size in MPEG2 is specified in frames or seconds. If seconds the system will convert the GOP Size into a frame count at run time.", + "refs": { + "Mpeg2Settings$GopSizeUnits": null + } + }, + "Mpeg2InterlaceMode": { + "base": "Use Interlace mode (InterlaceMode) to choose the scan line type for the output. * Top Field First (TOP_FIELD) and Bottom Field First (BOTTOM_FIELD) produce interlaced output with the entire output having the same field polarity (top or bottom first). * Follow, Default Top (FOLLOw_TOP_FIELD) and Follow, Default Bottom (FOLLOW_BOTTOM_FIELD) use the same field polarity as the source. Therefore, behavior depends on the input scan type. - If the source is interlaced, the output will be interlaced with the same polarity as the source (it will follow the source). The output could therefore be a mix of \"top field first\" and \"bottom field first\". - If the source is progressive, the output will be interlaced with \"top field first\" or \"bottom field first\" polarity, depending on which of the Follow options you chose.", + "refs": { + "Mpeg2Settings$InterlaceMode": null + } + }, + "Mpeg2IntraDcPrecision": { + "base": "Use Intra DC precision (Mpeg2IntraDcPrecision) to set quantization precision for intra-block DC coefficients. If you choose the value auto, the service will automatically select the precision based on the per-frame compression ratio.", + "refs": { + "Mpeg2Settings$IntraDcPrecision": null + } + }, + "Mpeg2ParControl": { + "base": "Using the API, enable ParFollowSource if you want the service to use the pixel aspect ratio from the input. Using the console, do this by choosing Follow source for Pixel aspect ratio.", + "refs": { + "Mpeg2Settings$ParControl": null + } + }, + "Mpeg2QualityTuningLevel": { + "base": "Use Quality tuning level (Mpeg2QualityTuningLevel) to specifiy whether to use single-pass or multipass video encoding.", + "refs": { + "Mpeg2Settings$QualityTuningLevel": null + } + }, + "Mpeg2RateControlMode": { + "base": "Use Rate control mode (Mpeg2RateControlMode) to specifiy whether the bitrate is variable (vbr) or constant (cbr).", + "refs": { + "Mpeg2Settings$RateControlMode": null + } + }, + "Mpeg2SceneChangeDetect": { + "base": "Scene change detection (inserts I-frames on scene changes).", + "refs": { + "Mpeg2Settings$SceneChangeDetect": null + } + }, + "Mpeg2Settings": { + "base": "Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value MPEG2.", + "refs": { + "VideoCodecSettings$Mpeg2Settings": null + } + }, + "Mpeg2SlowPal": { + "base": "Enables Slow PAL rate conversion. 23.976fps and 24fps input is relabeled as 25fps, and audio is sped up correspondingly.", + "refs": { + "Mpeg2Settings$SlowPal": null + } + }, + "Mpeg2SpatialAdaptiveQuantization": { + "base": "Adjust quantization within each frame based on spatial variation of content complexity.", + "refs": { + "Mpeg2Settings$SpatialAdaptiveQuantization": null + } + }, + "Mpeg2Syntax": { + "base": "Produces a Type D-10 compatible bitstream (SMPTE 356M-2001).", + "refs": { + "Mpeg2Settings$Syntax": null + } + }, + "Mpeg2Telecine": { + "base": "Only use Telecine (Mpeg2Telecine) when you set Framerate (Framerate) to 29.970. Set Telecine (Mpeg2Telecine) to Hard (hard) to produce a 29.97i output from a 23.976 input. Set it to Soft (soft) to produce 23.976 output and leave converstion to the player.", + "refs": { + "Mpeg2Settings$Telecine": null + } + }, + "Mpeg2TemporalAdaptiveQuantization": { + "base": "Adjust quantization within each frame based on temporal variation of content complexity.", + "refs": { + "Mpeg2Settings$TemporalAdaptiveQuantization": null + } + }, + "MsSmoothAudioDeduplication": { + "base": "COMBINE_DUPLICATE_STREAMS combines identical audio encoding settings across a Microsoft Smooth output group into a single audio stream.", + "refs": { + "MsSmoothGroupSettings$AudioDeduplication": null + } + }, + "MsSmoothEncryptionSettings": { + "base": "If you are using DRM, set DRM System (MsSmoothEncryptionSettings) to specify the value SpekeKeyProvider.", + "refs": { + "MsSmoothGroupSettings$Encryption": null + } + }, + "MsSmoothGroupSettings": { + "base": "Required when you set (Type) under (OutputGroups)>(OutputGroupSettings) to MS_SMOOTH_GROUP_SETTINGS.", + "refs": { + "OutputGroupSettings$MsSmoothGroupSettings": null + } + }, + "MsSmoothManifestEncoding": { + "base": "Use Manifest encoding (MsSmoothManifestEncoding) to specify the encoding format for the server and client manifest. Valid options are utf8 and utf16.", + "refs": { + "MsSmoothGroupSettings$ManifestEncoding": null + } + }, + "NielsenConfiguration": { + "base": "Settings for Nielsen Configuration", + "refs": { + "JobSettings$NielsenConfiguration": null, + "JobTemplateSettings$NielsenConfiguration": null + } + }, + "NoiseReducer": { + "base": "Enable the Noise reducer (NoiseReducer) feature to remove noise from your video output if necessary. Enable or disable this feature for each output individually. This setting is disabled by default. When you enable Noise reducer (NoiseReducer), you must also select a value for Noise reducer filter (NoiseReducerFilter).", + "refs": { + "VideoPreprocessor$NoiseReducer": "Enable the Noise reducer (NoiseReducer) feature to remove noise from your video output if necessary. Enable or disable this feature for each output individually. This setting is disabled by default." + } + }, + "NoiseReducerFilter": { + "base": "Use Noise reducer filter (NoiseReducerFilter) to select one of the following spatial image filtering functions. To use this setting, you must also enable Noise reducer (NoiseReducer). * Bilateral is an edge preserving noise reduction filter * Mean (softest), Gaussian, Lanczos, and Sharpen (sharpest) are convolution filters * Conserve is a min/max noise reduction filter * Spatial is frequency-domain filter based on JND principles.", + "refs": { + "NoiseReducer$Filter": null + } + }, + "NoiseReducerFilterSettings": { + "base": "Settings for a noise reducer filter", + "refs": { + "NoiseReducer$FilterSettings": null + } + }, + "NoiseReducerSpatialFilterSettings": { + "base": "Noise reducer filter settings for spatial filter.", + "refs": { + "NoiseReducer$SpatialFilterSettings": null + } + }, + "NotFoundException": { + "base": null, + "refs": { + } + }, + "Order": { + "base": "When you request lists of resources, you can optionally specify whether they are sorted in ASCENDING or DESCENDING order. Default varies by resource.", + "refs": { + "ListJobTemplatesRequest$Order": null, + "ListJobsRequest$Order": null, + "ListPresetsRequest$Order": null, + "ListQueuesRequest$Order": null + } + }, + "Output": { + "base": "An output object describes the settings for a single output file or stream in an output group.", + "refs": { + "ListOfOutput$member": null + } + }, + "OutputChannelMapping": { + "base": "OutputChannel mapping settings.", + "refs": { + "ListOfOutputChannelMapping$member": null + } + }, + "OutputDetail": { + "base": "Details regarding output", + "refs": { + "ListOfOutputDetail$member": null + } + }, + "OutputGroup": { + "base": "Group of outputs", + "refs": { + "ListOfOutputGroup$member": null + } + }, + "OutputGroupDetail": { + "base": "Contains details about the output groups specified in the job settings.", + "refs": { + "ListOfOutputGroupDetail$member": null + } + }, + "OutputGroupSettings": { + "base": "Output Group settings, including type", + "refs": { + "OutputGroup$OutputGroupSettings": null + } + }, + "OutputGroupType": { + "base": null, + "refs": { + "OutputGroupSettings$Type": "Type of output group (File group, Apple HLS, DASH ISO, Microsoft Smooth Streaming)" + } + }, + "OutputSdt": { + "base": "Selects method of inserting SDT information into output stream. \"Follow input SDT\" copies SDT information from input stream to output stream. \"Follow input SDT if present\" copies SDT information from input stream to output stream if SDT information is present in the input, otherwise it will fall back on the user-defined values. Enter \"SDT Manually\" means user will enter the SDT information. \"No SDT\" means output stream will not contain SDT information.", + "refs": { + "DvbSdtSettings$OutputSdt": null + } + }, + "OutputSettings": { + "base": "Specific settings for this type of output.", + "refs": { + "Output$OutputSettings": null + } + }, + "Preset": { + "base": "A preset is a collection of preconfigured media conversion settings that you want MediaConvert to apply to the output during the conversion process.", + "refs": { + "CreatePresetResponse$Preset": null, + "GetPresetResponse$Preset": null, + "ListOfPreset$member": null, + "UpdatePresetResponse$Preset": null + } + }, + "PresetListBy": { + "base": "Optional. When you request a list of presets, you can choose to list them alphabetically by NAME or chronologically by CREATION_DATE. If you don't specify, the service will list them by name.", + "refs": { + "ListPresetsRequest$ListBy": null + } + }, + "PresetSettings": { + "base": "Settings for preset", + "refs": { + "CreatePresetRequest$Settings": null, + "Preset$Settings": null, + "UpdatePresetRequest$Settings": null + } + }, + "ProresCodecProfile": { + "base": "Use Profile (ProResCodecProfile) to specifiy the type of Apple ProRes codec to use for this output.", + "refs": { + "ProresSettings$CodecProfile": null + } + }, + "ProresFramerateControl": { + "base": "Using the API, set FramerateControl to INITIALIZE_FROM_SOURCE if you want the service to use the framerate from the input. Using the console, do this by choosing INITIALIZE_FROM_SOURCE for Framerate.", + "refs": { + "ProresSettings$FramerateControl": null + } + }, + "ProresFramerateConversionAlgorithm": { + "base": "When set to INTERPOLATE, produces smoother motion during framerate conversion.", + "refs": { + "ProresSettings$FramerateConversionAlgorithm": null + } + }, + "ProresInterlaceMode": { + "base": "Use Interlace mode (InterlaceMode) to choose the scan line type for the output. * Top Field First (TOP_FIELD) and Bottom Field First (BOTTOM_FIELD) produce interlaced output with the entire output having the same field polarity (top or bottom first). * Follow, Default Top (FOLLOw_TOP_FIELD) and Follow, Default Bottom (FOLLOW_BOTTOM_FIELD) use the same field polarity as the source. Therefore, behavior depends on the input scan type. - If the source is interlaced, the output will be interlaced with the same polarity as the source (it will follow the source). The output could therefore be a mix of \"top field first\" and \"bottom field first\". - If the source is progressive, the output will be interlaced with \"top field first\" or \"bottom field first\" polarity, depending on which of the Follow options you chose.", + "refs": { + "ProresSettings$InterlaceMode": null + } + }, + "ProresParControl": { + "base": "Use (ProresParControl) to specify how the service determines the pixel aspect ratio. Set to Follow source (INITIALIZE_FROM_SOURCE) to use the pixel aspect ratio from the input. To specify a different pixel aspect ratio: Using the console, choose it from the dropdown menu. Using the API, set ProresParControl to (SPECIFIED) and provide for (ParNumerator) and (ParDenominator).", + "refs": { + "ProresSettings$ParControl": null + } + }, + "ProresSettings": { + "base": "Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value PRORES.", + "refs": { + "VideoCodecSettings$ProresSettings": null + } + }, + "ProresSlowPal": { + "base": "Enables Slow PAL rate conversion. 23.976fps and 24fps input is relabeled as 25fps, and audio is sped up correspondingly.", + "refs": { + "ProresSettings$SlowPal": null + } + }, + "ProresTelecine": { + "base": "Only use Telecine (ProresTelecine) when you set Framerate (Framerate) to 29.970. Set Telecine (ProresTelecine) to Hard (hard) to produce a 29.97i output from a 23.976 input. Set it to Soft (soft) to produce 23.976 output and leave converstion to the player.", + "refs": { + "ProresSettings$Telecine": null + } + }, + "Queue": { + "base": "MediaConvert jobs are submitted to a queue. Unless specified otherwise jobs are submitted to a built-in default queue. User can create additional queues to separate the jobs of different categories or priority.", + "refs": { + "CreateQueueResponse$Queue": null, + "GetQueueResponse$Queue": null, + "ListOfQueue$member": null, + "UpdateQueueResponse$Queue": null + } + }, + "QueueListBy": { + "base": "Optional. When you request a list of queues, you can choose to list them alphabetically by NAME or chronologically by CREATION_DATE. If you don't specify, the service will list them by creation date.", + "refs": { + "ListQueuesRequest$ListBy": null + } + }, + "QueueStatus": { + "base": "Queues can be ACTIVE or PAUSED. If you pause a queue, jobs in that queue will not begin. Jobs running when a queue is paused continue to run until they finish or error out.", + "refs": { + "Queue$Status": null, + "UpdateQueueRequest$Status": null + } + }, + "Rectangle": { + "base": "Use Rectangle to identify a specific area of the video frame.", + "refs": { + "VideoDescription$Crop": "Applies only if your input aspect ratio is different from your output aspect ratio. Use Input cropping rectangle (Crop) to specify the video area the service will include in the output. This will crop the input source, causing video pixels to be removed on encode. Do not use this setting if you have enabled Stretch to output (stretchToOutput) in your output settings.", + "VideoDescription$Position": "Use Position (Position) to point to a rectangle object to define your position. This setting overrides any other aspect ratio." + } + }, + "RemixSettings": { + "base": "Use Manual audio remixing (RemixSettings) to adjust audio levels for each output channel. With audio remixing, you can output more or fewer audio channels than your input audio source provides.", + "refs": { + "AudioDescription$RemixSettings": "Advanced audio remixing settings.", + "AudioSelector$RemixSettings": "Advanced audio remixing settings." + } + }, + "RespondToAfd": { + "base": "Use Respond to AFD (RespondToAfd) to specify how the service changes the video itself in response to AFD values in the input. * Choose Respond to clip the input video frame according to the AFD value, input display aspect ratio, and output display aspect ratio. * Choose Passthrough to include the input AFD values. Do not choose this when AfdSignaling is set to (NONE). A preferred implementation of this workflow is to set RespondToAfd to (NONE) and set AfdSignaling to (AUTO). * Choose None to remove all input AFD values from this output.", + "refs": { + "VideoDescription$RespondToAfd": null + } + }, + "ScalingBehavior": { + "base": "Applies only if your input aspect ratio is different from your output aspect ratio. Enable Stretch to output (StretchToOutput) to have the service stretch your video image to fit. Leave this setting disabled to allow the service to letterbox your video instead. This setting overrides any positioning value you specify elsewhere in the job.", + "refs": { + "VideoDescription$ScalingBehavior": null + } + }, + "SccDestinationFramerate": { + "base": "Set Framerate (SccDestinationFramerate) to make sure that the captions and the video are synchronized in the output. Specify a framerate that matches the framerate of the associated video. If the video framerate is 29.97, choose 29.97 dropframe (FRAMERATE_29_97_DROPFRAME) only if the video has video_insertion=true and drop_frame_timecode=true; otherwise, choose 29.97 non-dropframe (FRAMERATE_29_97_NON_DROPFRAME).", + "refs": { + "SccDestinationSettings$Framerate": null + } + }, + "SccDestinationSettings": { + "base": "Settings for SCC caption output.", + "refs": { + "CaptionDestinationSettings$SccDestinationSettings": null + } + }, + "SpekeKeyProvider": { + "base": "Settings for use with a SPEKE key provider", + "refs": { + "DashIsoEncryptionSettings$SpekeKeyProvider": null, + "HlsEncryptionSettings$SpekeKeyProvider": null, + "MsSmoothEncryptionSettings$SpekeKeyProvider": null + } + }, + "StaticKeyProvider": { + "base": "Settings for use with a SPEKE key provider.", + "refs": { + "HlsEncryptionSettings$StaticKeyProvider": null + } + }, + "TeletextDestinationSettings": { + "base": "Settings for Teletext caption output", + "refs": { + "CaptionDestinationSettings$TeletextDestinationSettings": null + } + }, + "TeletextSourceSettings": { + "base": "Settings specific to Teletext caption sources, including Page number.", + "refs": { + "CaptionSourceSettings$TeletextSourceSettings": null + } + }, + "TimecodeBurnin": { + "base": "Timecode burn-in (TimecodeBurnIn)--Burns the output timecode and specified prefix into the output.", + "refs": { + "VideoPreprocessor$TimecodeBurnin": "Timecode burn-in (TimecodeBurnIn)--Burns the output timecode and specified prefix into the output." + } + }, + "TimecodeBurninPosition": { + "base": "Use Position (Position) under under Timecode burn-in (TimecodeBurnIn) to specify the location the burned-in timecode on output video.", + "refs": { + "TimecodeBurnin$Position": null + } + }, + "TimecodeConfig": { + "base": "Contains settings used to acquire and adjust timecode information from inputs.", + "refs": { + "JobSettings$TimecodeConfig": "Contains settings used to acquire and adjust timecode information from inputs.", + "JobTemplateSettings$TimecodeConfig": "Contains settings used to acquire and adjust timecode information from inputs." + } + }, + "TimecodeSource": { + "base": "Use Timecode source (TimecodeSource) to set how timecodes are handled within this input. To make sure that your video, audio, captions, and markers are synchronized and that time-based features, such as image inserter, work correctly, choose the Timecode source option that matches your assets. All timecodes are in a 24-hour format with frame number (HH:MM:SS:FF). * Embedded (EMBEDDED) - Use the timecode that is in the input video. If no embedded timecode is in the source, the service will use Start at 0 (ZEROBASED) instead. * Start at 0 (ZEROBASED) - Set the timecode of the initial frame to 00:00:00:00. * Specified Start (SPECIFIEDSTART) - Set the timecode of the initial frame to a value other than zero. You use Start timecode (Start) to provide this value.", + "refs": { + "TimecodeConfig$Source": null + } + }, + "TimedMetadata": { + "base": "If PASSTHROUGH, inserts ID3 timed metadata from the timed_metadata REST command into this output. Only available for certain containers.", + "refs": { + "M3u8Settings$TimedMetadata": null + } + }, + "TimedMetadataInsertion": { + "base": "Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in your job. To include timed metadata, you must enable it here, enable it in each output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) objects.", + "refs": { + "JobSettings$TimedMetadataInsertion": null, + "JobTemplateSettings$TimedMetadataInsertion": null + } + }, + "Timing": { + "base": "Information about when jobs are submitted, started, and finished is specified in Unix epoch format in seconds.", + "refs": { + "Job$Timing": null + } + }, + "TooManyRequestsException": { + "base": null, + "refs": { + } + }, + "TtmlDestinationSettings": { + "base": "Settings for TTML caption output", + "refs": { + "CaptionDestinationSettings$TtmlDestinationSettings": "Settings specific to TTML caption outputs, including Pass style information (TtmlStylePassthrough)." + } + }, + "TtmlStylePassthrough": { + "base": "Pass through style and position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML output.", + "refs": { + "TtmlDestinationSettings$StylePassthrough": null + } + }, + "Type": { + "base": null, + "refs": { + "JobTemplate$Type": "A job template can be of two types: system or custom. System or built-in job templates can’t be modified or deleted by the user.", + "Preset$Type": "A preset can be of two types: system or custom. System or built-in preset can’t be modified or deleted by the user.", + "Queue$Type": "A queue can be of two types: system or custom. System or built-in queues can’t be modified or deleted by the user." + } + }, + "UpdateJobTemplateRequest": { + "base": "Modify a job template by sending a request with the job template name and any of the following that you wish to change: description, category, and queue.", + "refs": { + } + }, + "UpdateJobTemplateResponse": { + "base": "Successful update job template requests will return the new job template JSON.", + "refs": { + } + }, + "UpdatePresetRequest": { + "base": "Modify a preset by sending a request with the preset name and any of the following that you wish to change: description, category, and transcoding settings.", + "refs": { + } + }, + "UpdatePresetResponse": { + "base": "Successful update preset requests will return the new preset JSON.", + "refs": { + } + }, + "UpdateQueueRequest": { + "base": "Modify a queue by sending a request with the queue name and any of the following that you wish to change - description, status. You pause or activate a queue by changing its status between ACTIVE and PAUSED.", + "refs": { + } + }, + "UpdateQueueResponse": { + "base": "Successful update queue requests will return the new queue JSON.", + "refs": { + } + }, + "VideoCodec": { + "base": "Type of video codec", + "refs": { + "VideoCodecSettings$Codec": null + } + }, + "VideoCodecSettings": { + "base": "Video codec settings, (CodecSettings) under (VideoDescription), contains the group of settings related to video encoding. The settings in this group vary depending on the value you choose for Video codec (Codec). For each codec enum you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * H_264, H264Settings * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings * FRAME_CAPTURE, FrameCaptureSettings", + "refs": { + "VideoDescription$CodecSettings": null + } + }, + "VideoDescription": { + "base": "Settings for video outputs", + "refs": { + "Output$VideoDescription": "(VideoDescription) contains a group of video encoding settings. The specific video settings depend on the video codec you choose when you specify a value for Video codec (codec). Include one instance of (VideoDescription) per output.", + "PresetSettings$VideoDescription": "(VideoDescription) contains a group of video encoding settings. The specific video settings depend on the video codec you choose when you specify a value for Video codec (codec). Include one instance of (VideoDescription) per output." + } + }, + "VideoDetail": { + "base": "Contains details about the output's video stream", + "refs": { + "OutputDetail$VideoDetails": null + } + }, + "VideoPreprocessor": { + "base": "Find additional transcoding features under Preprocessors (VideoPreprocessors). Enable the features at each output individually. These features are disabled by default.", + "refs": { + "VideoDescription$VideoPreprocessors": "Find additional transcoding features under Preprocessors (VideoPreprocessors). Enable the features at each output individually. These features are disabled by default." + } + }, + "VideoSelector": { + "base": "Selector for video.", + "refs": { + "Input$VideoSelector": null, + "InputTemplate$VideoSelector": null + } + }, + "VideoTimecodeInsertion": { + "base": "Enable Timecode insertion to include timecode information in this output. Do this in the API by setting (VideoTimecodeInsertion) to (PIC_TIMING_SEI). To get timecodes to appear correctly in your output, also set up the timecode configuration for your job in the input settings. Only enable Timecode insertion when the input framerate is identical to output framerate. Disable this setting to remove the timecode from the output. Default is disabled.", + "refs": { + "VideoDescription$TimecodeInsertion": null + } + }, + "WavSettings": { + "base": "Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to the value WAV.", + "refs": { + "AudioCodecSettings$WavSettings": null + } + }, + "__double": { + "base": null, + "refs": { + "AudioNormalizationSettings$TargetLkfs": "Target LKFS(loudness) to adjust volume to. If no value is entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.", + "Eac3Settings$LoRoCenterMixLevel": "Left only/Right only center mix level. Only used for 3/2 coding mode.\nValid values: 3.0, 1.5, 0.0, -1.5 -3.0 -4.5 -6.0 -60", + "Eac3Settings$LoRoSurroundMixLevel": "Left only/Right only surround mix level. Only used for 3/2 coding mode.\nValid values: -1.5 -3.0 -4.5 -6.0 -60", + "Eac3Settings$LtRtCenterMixLevel": "Left total/Right total center mix level. Only used for 3/2 coding mode.\nValid values: 3.0, 1.5, 0.0, -1.5 -3.0 -4.5 -6.0 -60", + "Eac3Settings$LtRtSurroundMixLevel": "Left total/Right total surround mix level. Only used for 3/2 coding mode.\nValid values: -1.5 -3.0 -4.5 -6.0 -60", + "H264Settings$GopSize": "GOP Length (keyframe interval) in frames or seconds. Must be greater than zero.", + "H265Settings$GopSize": "GOP Length (keyframe interval) in frames or seconds. Must be greater than zero.", + "M2tsSettings$FragmentTime": "The length in seconds of each fragment. Only used with EBP markers.", + "M2tsSettings$NullPacketBitrate": "Value in bits per second of extra null packets to insert into the transport stream. This can be used if a downstream encryption system requires periodic null packets.", + "M2tsSettings$SegmentationTime": "The length in seconds of each segment. Required unless markers is set to _none_.", + "Mpeg2Settings$GopSize": "GOP Length (keyframe interval) in frames or seconds. Must be greater than zero." + } + }, + "__integer": { + "base": null, + "refs": { + "AacSettings$Bitrate": "Average bitrate in bits/second. Valid values depend on rate control mode and profile.", + "AacSettings$SampleRate": "Sample rate in Hz. Valid values depend on rate control mode and profile.", + "Ac3Settings$Bitrate": "Average bitrate in bits/second. Valid bitrates depend on the coding mode.", + "Ac3Settings$Dialnorm": "Sets the dialnorm for the output. If blank and input audio is Dolby Digital, dialnorm will be passed through.", + "Ac3Settings$SampleRate": "Sample rate in hz. Sample rate is always 48000.", + "AiffSettings$BitDepth": "Specify Bit depth (BitDepth), in bits per sample, to choose the encoding quality for this audio track.", + "AiffSettings$Channels": "Set Channels to specify the number of channels in this output audio track. Choosing Mono in the console will give you 1 output channel; choosing Stereo will give you 2. In the API, valid values are 1 and 2.", + "AiffSettings$SampleRate": "Sample rate in hz.", + "AncillarySourceSettings$SourceAncillaryChannelNumber": "Specifies the 608 channel number in the ancillary data track from which to extract captions. Unused for passthrough.", + "AudioDescription$AudioType": "Applies only if Follow Input Audio Type is unchecked (false). A number between 0 and 255. The following are defined in ISO-IEC 13818-1: 0 = Undefined, 1 = Clean Effects, 2 = Hearing Impaired, 3 = Visually Impaired Commentary, 4-255 = Reserved.", + "AudioNormalizationSettings$CorrectionGateLevel": "Content measuring above this level will be corrected to the target level. Content measuring below this level will not be corrected. Gating only applies when not using real_time_correction.", + "AudioSelector$Offset": "Specifies a time delta in milliseconds to offset the audio from the input video.", + "AudioSelector$ProgramSelection": "Applies only when input streams contain Dolby E. Enter the program ID (according to the metadata in the audio) of the Dolby E program to extract from the specified track. One program extracted per audio selector. To select multiple programs, create multiple selectors with the same Track and different Program numbers. \"All channels\" means to ignore the program IDs and include all the channels in this selector; useful if metadata is known to be incorrect.", + "BurninDestinationSettings$BackgroundOpacity": "Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.", + "BurninDestinationSettings$FontOpacity": "Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent.\nAll burn-in and DVB-Sub font settings must match.", + "BurninDestinationSettings$FontResolution": "Font resolution in DPI (dots per inch); default is 96 dpi.\nAll burn-in and DVB-Sub font settings must match.", + "BurninDestinationSettings$FontSize": "A positive integer indicates the exact font size in points. Set to 0 for automatic font size selection. All burn-in and DVB-Sub font settings must match.", + "BurninDestinationSettings$OutlineSize": "Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "BurninDestinationSettings$ShadowOpacity": "Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.", + "BurninDestinationSettings$ShadowXOffset": "Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match.", + "BurninDestinationSettings$ShadowYOffset": "Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match.", + "BurninDestinationSettings$XPosition": "Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit x_position is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "BurninDestinationSettings$YPosition": "Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit y_position is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "ColorCorrector$Brightness": "Brightness level.", + "ColorCorrector$Contrast": "Contrast level.", + "ColorCorrector$Hue": "Hue in degrees.", + "ColorCorrector$Saturation": "Saturation level.", + "DashIsoGroupSettings$FragmentLength": "Length of fragments to generate (in seconds). Fragment length must be compatible with GOP size and Framerate. Note that fragments will end on the next keyframe after this number of seconds, so actual fragment length may be longer. When Emit Single File is checked, the fragmentation is internal to a single output file and it does not cause the creation of many output files as in other output types.", + "DashIsoGroupSettings$MinBufferTime": "Minimum time of initially buffered media that is needed to ensure smooth playout.", + "DashIsoGroupSettings$SegmentLength": "Length of mpd segments to create (in seconds). Note that segments will end on the next keyframe after this number of seconds, so actual segment length may be longer. When Emit Single File is checked, the segmentation is internal to a single output file and it does not cause the creation of many output files as in other output types.", + "DescribeEndpointsRequest$MaxResults": "Optional. Max number of endpoints, up to twenty, that will be returned at one time.", + "DvbNitSettings$NetworkId": "The numeric value placed in the Network Information Table (NIT).", + "DvbNitSettings$NitInterval": "The number of milliseconds between instances of this table in the output transport stream.", + "DvbSdtSettings$SdtInterval": "The number of milliseconds between instances of this table in the output transport stream.", + "DvbSubDestinationSettings$BackgroundOpacity": "Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$FontOpacity": "Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent.\nAll burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$FontResolution": "Font resolution in DPI (dots per inch); default is 96 dpi.\nAll burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$FontSize": "A positive integer indicates the exact font size in points. Set to 0 for automatic font size selection. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$OutlineSize": "Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$ShadowOpacity": "Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$ShadowXOffset": "Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$ShadowYOffset": "Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$XPosition": "Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit x_position is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$YPosition": "Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit y_position is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "DvbSubSourceSettings$Pid": "When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through, regardless of selectors.", + "DvbTdtSettings$TdtInterval": "The number of milliseconds between instances of this table in the output transport stream.", + "Eac3Settings$Bitrate": "Average bitrate in bits/second. Valid bitrates depend on the coding mode.", + "Eac3Settings$Dialnorm": "Sets the dialnorm for the output. If blank and input audio is Dolby Digital Plus, dialnorm will be passed through.", + "Eac3Settings$SampleRate": "Sample rate in hz. Sample rate is always 48000.", + "EmbeddedSourceSettings$Source608ChannelNumber": "Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough.", + "EmbeddedSourceSettings$Source608TrackNumber": "Specifies the video track index used for extracting captions. The system only supports one input video track, so this should always be set to '1'.", + "FileSourceSettings$TimeDelta": "Specifies a time delta in seconds to offset the captions from the source file.", + "FrameCaptureSettings$FramerateDenominator": "Frame capture will encode the first frame of the output stream, then one frame every framerateDenominator/framerateNumerator seconds. For example, settings of framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per second) will capture the first frame, then 1 frame every 3s. Files will be named as filename.n.jpg where n is the 0-based sequence number of each Capture.", + "FrameCaptureSettings$FramerateNumerator": "Frame capture will encode the first frame of the output stream, then one frame every framerateDenominator/framerateNumerator seconds. For example, settings of framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per second) will capture the first frame, then 1 frame every 3s. Files will be named as filename.NNNNNNN.jpg where N is the 0-based frame sequence number zero padded to 7 decimal places.", + "FrameCaptureSettings$MaxCaptures": "Maximum number of captures (encoded jpg output files).", + "FrameCaptureSettings$Quality": "JPEG Quality - a higher value equals higher quality.", + "H264Settings$Bitrate": "Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.", + "H264Settings$FramerateDenominator": "When you use the API for transcode jobs that use framerate conversion, specify the framerate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of this fraction. In this example, use 1001 for the value of FramerateDenominator. When you use the console for transcode jobs that use framerate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976.", + "H264Settings$FramerateNumerator": "Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.", + "H264Settings$GopClosedCadence": "Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.", + "H264Settings$HrdBufferInitialFillPercentage": "Percentage of the buffer that should initially be filled (HRD buffer model).", + "H264Settings$HrdBufferSize": "Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.", + "H264Settings$MaxBitrate": "Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.", + "H264Settings$MinIInterval": "Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1", + "H264Settings$NumberBFramesBetweenReferenceFrames": "Number of B-frames between reference frames.", + "H264Settings$NumberReferenceFrames": "Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.", + "H264Settings$ParDenominator": "Pixel Aspect Ratio denominator.", + "H264Settings$ParNumerator": "Pixel Aspect Ratio numerator.", + "H264Settings$Slices": "Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures.", + "H264Settings$Softness": "Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image.", + "H265Settings$Bitrate": "Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.", + "H265Settings$FramerateDenominator": "Framerate denominator.", + "H265Settings$FramerateNumerator": "Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.", + "H265Settings$GopClosedCadence": "Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.", + "H265Settings$HrdBufferInitialFillPercentage": "Percentage of the buffer that should initially be filled (HRD buffer model).", + "H265Settings$HrdBufferSize": "Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.", + "H265Settings$MaxBitrate": "Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.", + "H265Settings$MinIInterval": "Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1", + "H265Settings$NumberBFramesBetweenReferenceFrames": "Number of B-frames between reference frames.", + "H265Settings$NumberReferenceFrames": "Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.", + "H265Settings$ParDenominator": "Pixel Aspect Ratio denominator.", + "H265Settings$ParNumerator": "Pixel Aspect Ratio numerator.", + "H265Settings$Slices": "Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures.", + "Hdr10Metadata$BluePrimaryX": "HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.", + "Hdr10Metadata$BluePrimaryY": "HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.", + "Hdr10Metadata$GreenPrimaryX": "HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.", + "Hdr10Metadata$GreenPrimaryY": "HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.", + "Hdr10Metadata$MaxContentLightLevel": "Maximum light level among all samples in the coded video sequence, in units of candelas per square meter.", + "Hdr10Metadata$MaxFrameAverageLightLevel": "Maximum average light level of any frame in the coded video sequence, in units of candelas per square meter.", + "Hdr10Metadata$MaxLuminance": "Nominal maximum mastering display luminance in units of of 0.0001 candelas per square meter.", + "Hdr10Metadata$MinLuminance": "Nominal minimum mastering display luminance in units of of 0.0001 candelas per square meter", + "Hdr10Metadata$RedPrimaryX": "HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.", + "Hdr10Metadata$RedPrimaryY": "HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.", + "Hdr10Metadata$WhitePointX": "HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.", + "Hdr10Metadata$WhitePointY": "HDR Master Display Information comes from the color grader and the color grading tools. Range is 0 to 50,000, each increment represents 0.00002 in CIE1931 color coordinate.", + "HlsCaptionLanguageMapping$CaptionChannel": "Caption channel.", + "HlsGroupSettings$MinSegmentLength": "When set, Minimum Segment Size is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed.", + "HlsGroupSettings$ProgramDateTimePeriod": "Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.", + "HlsGroupSettings$SegmentLength": "Length of MPEG-2 Transport Stream segments to create (in seconds). Note that segments will end on the next keyframe after this number of seconds, so actual segment length may be longer.", + "HlsGroupSettings$SegmentsPerSubdirectory": "Number of segments to write to a subdirectory before starting a new one. directoryStructure must be SINGLE_DIRECTORY for this setting to have an effect.", + "HlsGroupSettings$TimedMetadataId3Period": "Timed Metadata interval in seconds.", + "HlsGroupSettings$TimestampDeltaMilliseconds": "Provides an extra millisecond delta offset to fine tune the timestamps.", + "Input$FilterStrength": "Use Filter strength (FilterStrength) to adjust the magnitude the input filter settings (Deblock and Denoise). The range is -5 to 5. Default is 0.", + "Input$ProgramNumber": "Use Program (programNumber) to select a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported. Default is the first program within the transport stream. If the program you specify doesn't exist, the transcoding service will use this default.", + "InputTemplate$FilterStrength": "Use Filter strength (FilterStrength) to adjust the magnitude the input filter settings (Deblock and Denoise). The range is -5 to 5. Default is 0.", + "InputTemplate$ProgramNumber": "Use Program (programNumber) to select a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported. Default is the first program within the transport stream. If the program you specify doesn't exist, the transcoding service will use this default.", + "InsertableImage$Duration": "Use Duration (Duration) to set the time, in milliseconds, for the image to remain on the output video.", + "InsertableImage$FadeIn": "Use Fade in (FadeIut) to set the length, in milliseconds, of the inserted image fade in. If you don't specify a value for Fade in, the image will appear abruptly at the Start time.", + "InsertableImage$FadeOut": "Use Fade out (FadeOut) to set the length, in milliseconds, of the inserted image fade out. If you don't specify a value for Fade out, the image will disappear abruptly at the end of the inserted image duration.", + "InsertableImage$Height": "Specify the Height (Height) of the inserted image. Use a value that is less than or equal to the video resolution height. Leave this setting blank to use the native height of the image.", + "InsertableImage$ImageX": "Use Left (ImageX) to set the distance, in pixels, between the inserted image and the left edge of the frame. Required for BMP, PNG and TGA input.", + "InsertableImage$ImageY": "Use Top (ImageY) to set the distance, in pixels, between the inserted image and the top edge of the video frame. Required for BMP, PNG and TGA input.", + "InsertableImage$Layer": "Use Layer (Layer) to specify how overlapping inserted images appear. Images with higher values of layer appear on top of images with lower values of layer.", + "InsertableImage$Opacity": "Use Opacity (Opacity) to specify how much of the underlying video shows through the inserted image. 0 is transparent and 100 is fully opaque. Default is 50.", + "InsertableImage$Width": "Specify the Width (Width) of the inserted image. Use a value that is less than or equal to the video resolution width. Leave this setting blank to use the native width of the image.", + "Job$ErrorCode": "Error code for the job", + "JobSettings$AdAvailOffset": "When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.", + "JobTemplateSettings$AdAvailOffset": "When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.", + "ListJobTemplatesRequest$MaxResults": "Optional. Number of job templates, up to twenty, that will be returned at one time.", + "ListJobsRequest$MaxResults": "Optional. Number of jobs, up to twenty, that will be returned at one time.", + "ListOf__integer$member": null, + "ListPresetsRequest$MaxResults": "Optional. Number of presets, up to twenty, that will be returned at one time", + "ListQueuesRequest$MaxResults": "Optional. Number of queues, up to twenty, that will be returned at one time.", + "M2tsSettings$AudioFramesPerPes": "The number of audio frames to insert for each PES packet.", + "M2tsSettings$Bitrate": "The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically determine the appropriate bitrate. Other common values are 3750000, 7500000, and 15000000.", + "M2tsSettings$DvbTeletextPid": "Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or hexadecimal value.", + "M2tsSettings$MaxPcrInterval": "Maximum time in milliseconds between Program Clock References (PCRs) inserted into the transport stream.", + "M2tsSettings$MinEbpInterval": "When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by looking ahead at input video. If another EBP is going to come in within the specified time interval, the current EBP is not emitted, and the segment is \"stretched\" to the next marker. The lookahead value does not add latency to the system. The Live Event must be configured elsewhere to create sufficient latency to make the lookahead accurate.", + "M2tsSettings$PatInterval": "The number of milliseconds between instances of this table in the output transport stream.", + "M2tsSettings$PcrPid": "Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value.", + "M2tsSettings$PmtInterval": "The number of milliseconds between instances of this table in the output transport stream.", + "M2tsSettings$PmtPid": "Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.", + "M2tsSettings$PrivateMetadataPid": "Packet Identifier (PID) of the private metadata stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "M2tsSettings$ProgramNumber": "The value of the program number field in the Program Map Table.", + "M2tsSettings$Scte35Pid": "Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "M2tsSettings$TransportStreamId": "The value of the transport stream ID field in the Program Map Table.", + "M2tsSettings$VideoPid": "Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "M3u8Settings$AudioFramesPerPes": "The number of audio frames to insert for each PES packet.", + "M3u8Settings$PatInterval": "The number of milliseconds between instances of this table in the output transport stream.", + "M3u8Settings$PcrPid": "Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value.", + "M3u8Settings$PmtInterval": "The number of milliseconds between instances of this table in the output transport stream.", + "M3u8Settings$PmtPid": "Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.", + "M3u8Settings$PrivateMetadataPid": "Packet Identifier (PID) of the private metadata stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "M3u8Settings$ProgramNumber": "The value of the program number field in the Program Map Table.", + "M3u8Settings$Scte35Pid": "Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "M3u8Settings$TimedMetadataPid": "Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "M3u8Settings$TransportStreamId": "The value of the transport stream ID field in the Program Map Table.", + "M3u8Settings$VideoPid": "Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "Mp2Settings$Bitrate": "Average bitrate in bits/second.", + "Mp2Settings$Channels": "Set Channels to specify the number of channels in this output audio track. Choosing Mono in the console will give you 1 output channel; choosing Stereo will give you 2. In the API, valid values are 1 and 2.", + "Mp2Settings$SampleRate": "Sample rate in hz.", + "Mpeg2Settings$Bitrate": "Average bitrate in bits/second. Required for VBR, CBR, and ABR. Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.", + "Mpeg2Settings$FramerateDenominator": "Framerate denominator.", + "Mpeg2Settings$FramerateNumerator": "Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.", + "Mpeg2Settings$GopClosedCadence": "Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.", + "Mpeg2Settings$HrdBufferInitialFillPercentage": "Percentage of the buffer that should initially be filled (HRD buffer model).", + "Mpeg2Settings$HrdBufferSize": "Size of buffer (HRD buffer model). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.", + "Mpeg2Settings$MaxBitrate": "Maximum bitrate in bits/second (for VBR mode only). Five megabits can be entered as 5000000 or 5m. Five hundred kilobits can be entered as 500000 or 0.5m.", + "Mpeg2Settings$MinIInterval": "Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. This setting is only used when Scene Change Detect is enabled. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1", + "Mpeg2Settings$NumberBFramesBetweenReferenceFrames": "Number of B-frames between reference frames.", + "Mpeg2Settings$ParDenominator": "Pixel Aspect Ratio denominator.", + "Mpeg2Settings$ParNumerator": "Pixel Aspect Ratio numerator.", + "Mpeg2Settings$Softness": "Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image.", + "MsSmoothGroupSettings$FragmentLength": "Use Fragment length (FragmentLength) to specify the mp4 fragment sizes in seconds. Fragment length must be compatible with GOP size and framerate.", + "NielsenConfiguration$BreakoutCode": "Use Nielsen Configuration (NielsenConfiguration) to set the Nielsen measurement system breakout code. Supported values are 0, 3, 7, and 9.", + "NoiseReducerFilterSettings$Strength": "Relative strength of noise reducing filter. Higher values produce stronger filtering.", + "NoiseReducerSpatialFilterSettings$PostFilterSharpenStrength": "Specify strength of post noise reduction sharpening filter, with 0 disabling the filter and 3 enabling it at maximum strength.", + "NoiseReducerSpatialFilterSettings$Speed": "The speed of the filter, from -2 (lower speed) to 3 (higher speed), with 0 being the nominal value.", + "NoiseReducerSpatialFilterSettings$Strength": "Relative strength of noise reducing filter. Higher values produce stronger filtering.", + "OutputDetail$DurationInMs": "Duration in milliseconds", + "ProresSettings$FramerateDenominator": "Framerate denominator.", + "ProresSettings$FramerateNumerator": "When you use the API for transcode jobs that use framerate conversion, specify the framerate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateNumerator to specify the numerator of this fraction. In this example, use 24000 for the value of FramerateNumerator.", + "ProresSettings$ParDenominator": "Pixel Aspect Ratio denominator.", + "ProresSettings$ParNumerator": "Pixel Aspect Ratio numerator.", + "Rectangle$Height": "Height of rectangle in pixels.", + "Rectangle$Width": "Width of rectangle in pixels.", + "Rectangle$X": "The distance, in pixels, between the rectangle and the left edge of the video frame.", + "Rectangle$Y": "The distance, in pixels, between the rectangle and the top edge of the video frame.", + "RemixSettings$ChannelsIn": "Specify the number of audio channels from your input that you want to use in your output. With remixing, you might combine or split the data in these channels, so the number of channels in your final output might be different.", + "RemixSettings$ChannelsOut": "Specify the number of channels in this output after remixing. Valid values: 1, 2, 4, 6, 8", + "TimecodeBurnin$FontSize": "Use Font Size (FontSize) to set the font size of any burned-in timecode. Valid values are 10, 16, 32, 48.", + "VideoDescription$FixedAfd": "Applies only if you set AFD Signaling(AfdSignaling) to Fixed (FIXED). Use Fixed (FixedAfd) to specify a four-bit AFD value which the service will write on all frames of this video output.", + "VideoDescription$Height": "Use the Height (Height) setting to define the video resolution height for this output. Specify in pixels. If you don't provide a value here, the service will use the input height.", + "VideoDescription$Sharpness": "Use Sharpness (Sharpness)setting to specify the strength of anti-aliasing. This setting changes the width of the anti-alias filter kernel used for scaling. Sharpness only applies if your output resolution is different from your input resolution, and if you set Anti-alias (AntiAlias) to ENABLED. 0 is the softest setting, 100 the sharpest, and 50 recommended for most content.", + "VideoDescription$Width": "Use Width (Width) to define the video resolution width, in pixels, for this output. If you don't provide a value here, the service will use the input width.", + "VideoDetail$HeightInPx": "Height in pixels for the output", + "VideoDetail$WidthInPx": "Width in pixels for the output", + "VideoSelector$Pid": "Use PID (Pid) to select specific video data from an input file. Specify this value as an integer; the system automatically converts it to the hexidecimal value. For example, 257 selects PID 0x101. A PID, or packet identifier, is an identifier for a set of data in an MPEG-2 transport stream container.", + "VideoSelector$ProgramNumber": "Selects a specific program from within a multi-program transport stream. Note that Quad 4K is not currently supported.", + "WavSettings$BitDepth": "Specify Bit depth (BitDepth), in bits per sample, to choose the encoding quality for this audio track.", + "WavSettings$Channels": "Set Channels to specify the number of channels in this output audio track. With WAV, valid values 1, 2, 4, and 8. In the console, these values are Mono, Stereo, 4-Channel, and 8-Channel, respectively.", + "WavSettings$SampleRate": "Sample rate in Hz." + } + }, + "__string": { + "base": null, + "refs": { + "AudioDescription$AudioSourceName": "Specifies which audio data to use from each input. In the simplest case, specify an \"Audio Selector\":#inputs-audio_selector by name based on its order within each input. For example if you specify \"Audio Selector 3\", then the third audio selector will be used from each input. If an input does not have an \"Audio Selector 3\", then the audio selector marked as \"default\" in that input will be used. If there is no audio selector marked as \"default\", silence will be inserted for the duration of that input. Alternatively, an \"Audio Selector Group\":#inputs-audio_selector_group name may be specified, with similar default/silence behavior. If no audio_source_name is specified, then \"Audio Selector 1\" will be chosen automatically.", + "AudioDescription$StreamName": "Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or Director Commentary). Alphanumeric characters, spaces, and underscore are legal.", + "AudioSelector$ExternalAudioFileInput": "Specifies audio data from an external file source. Auto populated when Infer External Filename is checked", + "AvailBlanking$AvailBlankingImage": "Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.", + "CancelJobRequest$Id": "The Job ID of the job to be cancelled.", + "CaptionDescription$CaptionSelectorName": "Specifies which \"Caption Selector\":#inputs-caption_selector to use from each input when generating captions. The name should be of the format \"Caption Selector \", which denotes that the Nth Caption Selector will be used from each input.", + "CaptionDescription$LanguageDescription": "Human readable information to indicate captions available for players (eg. English, or Spanish). Alphanumeric characters, spaces, and underscore are legal.", + "CaptionDescriptionPreset$LanguageDescription": "Human readable information to indicate captions available for players (eg. English, or Spanish). Alphanumeric characters, spaces, and underscore are legal.", + "CreateJobRequest$ClientRequestToken": "Idempotency token for CreateJob operation.", + "CreateJobRequest$JobTemplate": "When you create a job, you can either specify a job template or specify the transcoding settings individually", + "CreateJobRequest$Queue": "Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html.", + "CreateJobRequest$Role": "Required. The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html.", + "CreateJobTemplateRequest$Category": "Optional. A category for the job template you are creating", + "CreateJobTemplateRequest$Description": "Optional. A description of the job template you are creating.", + "CreateJobTemplateRequest$Name": "The name of the job template you are creating.", + "CreateJobTemplateRequest$Queue": "Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue.", + "CreatePresetRequest$Category": "Optional. A category for the preset you are creating.", + "CreatePresetRequest$Description": "Optional. A description of the preset you are creating.", + "CreatePresetRequest$Name": "The name of the preset you are creating.", + "CreateQueueRequest$Description": "Optional. A description of the queue you are creating.", + "CreateQueueRequest$Name": "The name of the queue you are creating.", + "DashIsoGroupSettings$BaseUrl": "A partial URI prefix that will be put in the manifest (.mpd) file at the top level BaseURL element. Can be used if streams are delivered from a different URL than the manifest file.", + "DashIsoGroupSettings$Destination": "Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.", + "DeleteJobTemplateRequest$Name": "The name of the job template to be deleted.", + "DeletePresetRequest$Name": "The name of the preset to be deleted.", + "DeleteQueueRequest$Name": "The name of the queue to be deleted.", + "DescribeEndpointsRequest$NextToken": "Use this string, provided with the response to a previous request, to request the next batch of endpoints.", + "DescribeEndpointsResponse$NextToken": "Use this string to request the next batch of endpoints.", + "DvbNitSettings$NetworkName": "The network name text placed in the network_name_descriptor inside the Network Information Table. Maximum length is 256 characters.", + "DvbSdtSettings$ServiceName": "The service name placed in the service_descriptor in the Service Description Table. Maximum length is 256 characters.", + "DvbSdtSettings$ServiceProviderName": "The service provider name placed in the service_descriptor in the Service Description Table. Maximum length is 256 characters.", + "Endpoint$Url": "URL of endpoint", + "ExceptionBody$Message": null, + "FileGroupSettings$Destination": "Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.", + "FileSourceSettings$SourceFile": "External caption file used for loading captions. Accepted file extensions are 'scc', 'ttml', 'dfxp', 'stl', 'srt', and 'smi'. Auto-populated when Infer External Filename is checked.", + "GetJobRequest$Id": "the job ID of the job.", + "GetJobTemplateRequest$Name": "The name of the job template.", + "GetPresetRequest$Name": "The name of the preset.", + "GetQueueRequest$Name": "The name of the queue.", + "HlsCaptionLanguageMapping$LanguageDescription": "Caption language description.", + "HlsEncryptionSettings$ConstantInitializationVector": "This is a 128-bit, 16-byte hex value represented by a 32-character text string. If this parameter is not set then the Initialization Vector will follow the segment number by default.", + "HlsGroupSettings$BaseUrl": "A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the main .m3u8 file.", + "HlsGroupSettings$Destination": "Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.", + "HlsSettings$AudioGroupId": "Specifies the group to which the audio Rendition belongs.", + "HlsSettings$AudioRenditionSets": "List all the audio groups that are used with the video output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.", + "HlsSettings$SegmentModifier": "String concatenated to end of segment filenames. Accepts \"Format Identifiers\":#format_identifier_parameters.", + "Id3Insertion$Id3": "Use ID3 tag (Id3) to provide a tag value in base64-encode format.", + "Id3Insertion$Timecode": "Provide a Timecode (TimeCode) in HH:MM:SS:FF or HH:MM:SS;FF format.", + "Input$FileInput": "Use Input (fileInput) to define the source file used in the transcode job. There can be multiple inputs in a job. These inputs are concantenated, in the order they are specified in the job, to create the output.", + "InputClipping$EndTimecode": "Set End timecode (EndTimecode) to the end of the portion of the input you are clipping. The frame corresponding to the End timecode value is included in the clip. Start timecode or End timecode may be left blank, but not both. When choosing this value, take into account your setting for Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your clip to begin five minutes into the video, use 01:00:05:00.", + "InputClipping$StartTimecode": "Set Start timecode (StartTimecode) to the beginning of the portion of the input you are clipping. The frame corresponding to the Start timecode value is included in the clip. Start timecode or End timecode may be left blank, but not both. When choosing this value, take into account your setting for Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your clip to begin five minutes into the video, use 01:00:05:00.", + "InsertableImage$ImageInserterInput": "Use Image location (imageInserterInput) to specify the Amazon S3 location of the image to be inserted into the output. Use a 32 bit BMP, PNG, or TGA file that fits inside the video frame.", + "InsertableImage$StartTime": "Use Start time (StartTime) to specify the video timecode when the image is inserted in the output. This must be in timecode format (HH:MM:SS:FF)", + "Job$Arn": "An identifier for this resource that is unique within all of AWS.", + "Job$ErrorMessage": "Error message of Job", + "Job$Id": "A portion of the job's ARN, unique within your AWS Elemental MediaConvert resources", + "Job$JobTemplate": "The job template that the job is created from, if it is created from a job template.", + "Job$Queue": "Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", + "Job$Role": "The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html", + "JobTemplate$Arn": "An identifier for this resource that is unique within all of AWS.", + "JobTemplate$Category": "An optional category you create to organize your job templates.", + "JobTemplate$Description": "An optional description you create for each job template.", + "JobTemplate$Name": "A name you create for each job template. Each name must be unique within your account.", + "JobTemplate$Queue": "Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue.", + "ListJobTemplatesRequest$Category": "Optionally, specify a job template category to limit responses to only job templates from that category.", + "ListJobTemplatesRequest$NextToken": "Use this string, provided with the response to a previous request, to request the next batch of job templates.", + "ListJobTemplatesResponse$NextToken": "Use this string to request the next batch of job templates.", + "ListJobsRequest$NextToken": "Use this string, provided with the response to a previous request, to request the next batch of jobs.", + "ListJobsRequest$Queue": "Provide a queue name to get back only jobs from that queue.", + "ListJobsResponse$NextToken": "Use this string to request the next batch of jobs.", + "ListOf__string$member": null, + "ListPresetsRequest$Category": "Optionally, specify a preset category to limit responses to only presets from that category.", + "ListPresetsRequest$NextToken": "Use this string, provided with the response to a previous request, to request the next batch of presets.", + "ListPresetsResponse$NextToken": "Use this string to request the next batch of presets.", + "ListQueuesRequest$NextToken": "Use this string, provided with the response to a previous request, to request the next batch of queues.", + "ListQueuesResponse$NextToken": "Use this string to request the next batch of queues.", + "MapOf__string$member": null, + "Mp4Settings$Mp4MajorBrand": "Overrides the \"Major Brand\" field in the output file. Usually not necessary to specify.", + "MsSmoothGroupSettings$Destination": "Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file.", + "NielsenConfiguration$DistributorId": "Use Distributor ID (DistributorID) to specify the distributor ID that is assigned to your organization by Neilsen.", + "Output$Extension": "Use Extension (Extension) to specify the file extension for outputs in File output groups. If you do not specify a value, the service will use default extensions by container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF container, mxf * MPEG-4 container, mp4 * No Container, the service will use codec extensions (e.g. AAC, H265, H265, AC3)", + "Output$NameModifier": "Use Name modifier (NameModifier) to have the service add a string to the end of each output filename. You specify the base filename as part of your destination URI. When you create multiple outputs in the same output group, Name modifier is required. Name modifier also accepts format identifiers. For DASH ISO outputs, if you use the format identifiers $Number$ or $Time$ in one output, you must use them in the same way in all outputs of the output group.", + "Output$Preset": "Use Preset (Preset) to specifiy a preset for your transcoding settings. Provide the system or custom preset name. You can specify either Preset (Preset) or Container settings (ContainerSettings), but not both.", + "OutputGroup$CustomName": "Use Custom Group Name (CustomName) to specify a name for the output group. This value is displayed on the console and can make your job settings JSON more human-readable. It does not affect your outputs. Use up to twelve characters that are either letters, numbers, spaces, or underscores.", + "OutputGroup$Name": "Name of the output group", + "Preset$Arn": "An identifier for this resource that is unique within all of AWS.", + "Preset$Category": "An optional category you create to organize your presets.", + "Preset$Description": "An optional description you create for each preset.", + "Preset$Name": "A name you create for each preset. Each name must be unique within your account.", + "Queue$Arn": "An identifier for this resource that is unique within all of AWS.", + "Queue$Description": "An optional description you create for each queue.", + "Queue$Name": "A name you create for each queue. Each name must be unique within your account.", + "SpekeKeyProvider$ResourceId": "The SPEKE-compliant server uses Resource ID (ResourceId) to identify content.", + "SpekeKeyProvider$Url": "Use URL (Url) to specify the SPEKE-compliant server that will provide keys for content.", + "StaticKeyProvider$KeyFormat": "Relates to DRM implementation. Sets the value of the KEYFORMAT attribute. Must be 'identity' or a reverse DNS string. May be omitted to indicate an implicit value of 'identity'.", + "StaticKeyProvider$KeyFormatVersions": "Relates to DRM implementation. Either a single positive integer version value or a slash delimited list of version values (1/2/3).", + "StaticKeyProvider$StaticKeyValue": "Relates to DRM implementation. Use a 32-character hexidecimal string to specify Key Value (StaticKeyValue).", + "StaticKeyProvider$Url": "Relates to DRM implementation. The location of the license server used for protecting content.", + "TeletextDestinationSettings$PageNumber": "Set pageNumber to the Teletext page number for the destination captions for this output. This value must be a three-digit hexadecimal string; strings ending in -FF are invalid. If you are passing through the entire set of Teletext data, do not use this field.", + "TeletextSourceSettings$PageNumber": "Use Page Number (PageNumber) to specify the three-digit hexadecimal page number that will be used for Teletext captions. Do not use this setting if you are passing through teletext from the input source to output.", + "TimecodeBurnin$Prefix": "Use Prefix (Prefix) to place ASCII characters before any burned-in timecode. For example, a prefix of \"EZ-\" will result in the timecode \"EZ-00:00:00:00\". Provide either the characters themselves or the ASCII code equivalents. The supported range of characters is 0x20 through 0x7e. This includes letters, numbers, and all special characters represented on a standard English keyboard.", + "TimecodeConfig$Anchor": "If you use an editing platform that relies on an anchor timecode, use Anchor Timecode (Anchor) to specify a timecode that will match the input video frame to the output video frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF). This setting ignores framerate conversion. System behavior for Anchor Timecode varies depending on your setting for Timecode source (TimecodeSource). * If Timecode source (TimecodeSource) is set to Specified Start (specifiedstart), the first input frame is the specified value in Start Timecode (Start). Anchor Timecode (Anchor) and Start Timecode (Start) are used calculate output timecode. * If Timecode source (TimecodeSource) is set to Start at 0 (zerobased) the first frame is 00:00:00:00. * If Timecode source (TimecodeSource) is set to Embedded (embedded), the first frame is the timecode value on the first input frame of the input.", + "TimecodeConfig$Start": "Only use when you set Timecode Source (TimecodeSource) to Specified Start (SPECIFIEDSTART). Use Start timecode (Start) to specify the timecode for the initial frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF).", + "TimecodeConfig$TimestampOffset": "Only applies to outputs that support program-date-time stamp. Use Time stamp offset (TimestampOffset) to overwrite the timecode date without affecting the time and frame number. Provide the new date as a string in the format \"yyyy-mm-dd\". To use Time stamp offset, you must also enable Insert program-date-time (InsertProgramDateTime) in the output settings.", + "UpdateJobTemplateRequest$Category": "The new category for the job template, if you are changing it.", + "UpdateJobTemplateRequest$Description": "The new description for the job template, if you are changing it.", + "UpdateJobTemplateRequest$Name": "The name of the job template you are modifying", + "UpdateJobTemplateRequest$Queue": "The new queue for the job template, if you are changing it.", + "UpdatePresetRequest$Category": "The new category for the preset, if you are changing it.", + "UpdatePresetRequest$Description": "The new description for the preset, if you are changing it.", + "UpdatePresetRequest$Name": "The name of the preset you are modifying.", + "UpdateQueueRequest$Description": "The new description for the queue, if you are changing it.", + "UpdateQueueRequest$Name": "The name of the queue you are modifying." + } + }, + "__timestamp": { + "base": null, + "refs": { + "Job$CreatedAt": "The time, in Unix epoch format in seconds, when the job got created.", + "JobTemplate$CreatedAt": "The timestamp in epoch seconds for Job template creation.", + "JobTemplate$LastUpdated": "The timestamp in epoch seconds when the Job template was last updated.", + "Preset$CreatedAt": "The timestamp in epoch seconds for preset creation.", + "Preset$LastUpdated": "The timestamp in epoch seconds when the preset was last updated.", + "Queue$CreatedAt": "The timestamp in epoch seconds for queue creation.", + "Queue$LastUpdated": "The timestamp in epoch seconds when the queue was last updated.", + "Timing$FinishTime": "The time, in Unix epoch format, that the transcoding job finished", + "Timing$StartTime": "The time, in Unix epoch format, that transcoding for the job began.", + "Timing$SubmitTime": "The time, in Unix epoch format, that you submitted the job." + } + } + } +} \ No newline at end of file diff --git a/models/apis/medialive/2017-10-14/api-2.json b/models/apis/medialive/2017-10-14/api-2.json new file mode 100644 index 00000000000..91ca93cee42 --- /dev/null +++ b/models/apis/medialive/2017-10-14/api-2.json @@ -0,0 +1,5245 @@ +{ + "metadata": { + "apiVersion": "2017-10-14", + "endpointPrefix": "medialive", + "signingName": "medialive", + "serviceFullName": "AWS Elemental MediaLive", + "serviceId": "MediaLive", + "protocol": "rest-json", + "jsonVersion": "1.1", + "uid": "medialive-2017-10-14", + "signatureVersion": "v4", + "serviceAbbreviation": "MediaLive" + }, + "operations": { + "CreateChannel": { + "name": "CreateChannel", + "http": { + "method": "POST", + "requestUri": "/prod/channels", + "responseCode": 201 + }, + "input": { + "shape": "CreateChannelRequest" + }, + "output": { + "shape": "CreateChannelResponse" + }, + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "CreateInput": { + "name": "CreateInput", + "http": { + "method": "POST", + "requestUri": "/prod/inputs", + "responseCode": 201 + }, + "input": { + "shape": "CreateInputRequest" + }, + "output": { + "shape": "CreateInputResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "CreateInputSecurityGroup": { + "name": "CreateInputSecurityGroup", + "http": { + "method": "POST", + "requestUri": "/prod/inputSecurityGroups", + "responseCode": 200 + }, + "input": { + "shape": "CreateInputSecurityGroupRequest" + }, + "output": { + "shape": "CreateInputSecurityGroupResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "DeleteChannel": { + "name": "DeleteChannel", + "http": { + "method": "DELETE", + "requestUri": "/prod/channels/{channelId}", + "responseCode": 200 + }, + "input": { + "shape": "DeleteChannelRequest" + }, + "output": { + "shape": "DeleteChannelResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "DeleteInput": { + "name": "DeleteInput", + "http": { + "method": "DELETE", + "requestUri": "/prod/inputs/{inputId}", + "responseCode": 200 + }, + "input": { + "shape": "DeleteInputRequest" + }, + "output": { + "shape": "DeleteInputResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "DeleteInputSecurityGroup": { + "name": "DeleteInputSecurityGroup", + "http": { + "method": "DELETE", + "requestUri": "/prod/inputSecurityGroups/{inputSecurityGroupId}", + "responseCode": 200 + }, + "input": { + "shape": "DeleteInputSecurityGroupRequest" + }, + "output": { + "shape": "DeleteInputSecurityGroupResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "DescribeChannel": { + "name": "DescribeChannel", + "http": { + "method": "GET", + "requestUri": "/prod/channels/{channelId}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeChannelRequest" + }, + "output": { + "shape": "DescribeChannelResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "DescribeInput": { + "name": "DescribeInput", + "http": { + "method": "GET", + "requestUri": "/prod/inputs/{inputId}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeInputRequest" + }, + "output": { + "shape": "DescribeInputResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "DescribeInputSecurityGroup": { + "name": "DescribeInputSecurityGroup", + "http": { + "method": "GET", + "requestUri": "/prod/inputSecurityGroups/{inputSecurityGroupId}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeInputSecurityGroupRequest" + }, + "output": { + "shape": "DescribeInputSecurityGroupResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "ListChannels": { + "name": "ListChannels", + "http": { + "method": "GET", + "requestUri": "/prod/channels", + "responseCode": 200 + }, + "input": { + "shape": "ListChannelsRequest" + }, + "output": { + "shape": "ListChannelsResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "ListInputSecurityGroups": { + "name": "ListInputSecurityGroups", + "http": { + "method": "GET", + "requestUri": "/prod/inputSecurityGroups", + "responseCode": 200 + }, + "input": { + "shape": "ListInputSecurityGroupsRequest" + }, + "output": { + "shape": "ListInputSecurityGroupsResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "ListInputs": { + "name": "ListInputs", + "http": { + "method": "GET", + "requestUri": "/prod/inputs", + "responseCode": 200 + }, + "input": { + "shape": "ListInputsRequest" + }, + "output": { + "shape": "ListInputsResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, + "StartChannel": { + "name": "StartChannel", + "http": { + "method": "POST", + "requestUri": "/prod/channels/{channelId}/start", + "responseCode": 200 + }, + "input": { + "shape": "StartChannelRequest" + }, + "output": { + "shape": "StartChannelResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + }, + "StopChannel": { + "name": "StopChannel", + "http": { + "method": "POST", + "requestUri": "/prod/channels/{channelId}/stop", + "responseCode": 200 + }, + "input": { + "shape": "StopChannelRequest" + }, + "output": { + "shape": "StopChannelResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "BadGatewayException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "GatewayTimeoutException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" + } + ] + } + }, + "shapes": { + "AacCodingMode": { + "type": "string", + "enum": [ + "AD_RECEIVER_MIX", + "CODING_MODE_1_0", + "CODING_MODE_1_1", + "CODING_MODE_2_0", + "CODING_MODE_5_1" + ] + }, + "AacInputType": { + "type": "string", + "enum": [ + "BROADCASTER_MIXED_AD", + "NORMAL" + ] + }, + "AacProfile": { + "type": "string", + "enum": [ + "HEV1", + "HEV2", + "LC" + ] + }, + "AacRateControlMode": { + "type": "string", + "enum": [ + "CBR", + "VBR" + ] + }, + "AacRawFormat": { + "type": "string", + "enum": [ + "LATM_LOAS", + "NONE" + ] + }, + "AacSettings": { + "type": "structure", + "members": { + "Bitrate": { + "shape": "__double", + "locationName": "bitrate" + }, + "CodingMode": { + "shape": "AacCodingMode", + "locationName": "codingMode" + }, + "InputType": { + "shape": "AacInputType", + "locationName": "inputType" + }, + "Profile": { + "shape": "AacProfile", + "locationName": "profile" + }, + "RateControlMode": { + "shape": "AacRateControlMode", + "locationName": "rateControlMode" + }, + "RawFormat": { + "shape": "AacRawFormat", + "locationName": "rawFormat" + }, + "SampleRate": { + "shape": "__double", + "locationName": "sampleRate" + }, + "Spec": { + "shape": "AacSpec", + "locationName": "spec" + }, + "VbrQuality": { + "shape": "AacVbrQuality", + "locationName": "vbrQuality" + } + } + }, + "AacSpec": { + "type": "string", + "enum": [ + "MPEG2", + "MPEG4" + ] + }, + "AacVbrQuality": { + "type": "string", + "enum": [ + "HIGH", + "LOW", + "MEDIUM_HIGH", + "MEDIUM_LOW" + ] + }, + "Ac3BitstreamMode": { + "type": "string", + "enum": [ + "COMMENTARY", + "COMPLETE_MAIN", + "DIALOGUE", + "EMERGENCY", + "HEARING_IMPAIRED", + "MUSIC_AND_EFFECTS", + "VISUALLY_IMPAIRED", + "VOICE_OVER" + ] + }, + "Ac3CodingMode": { + "type": "string", + "enum": [ + "CODING_MODE_1_0", + "CODING_MODE_1_1", + "CODING_MODE_2_0", + "CODING_MODE_3_2_LFE" + ] + }, + "Ac3DrcProfile": { + "type": "string", + "enum": [ + "FILM_STANDARD", + "NONE" + ] + }, + "Ac3LfeFilter": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "Ac3MetadataControl": { + "type": "string", + "enum": [ + "FOLLOW_INPUT", + "USE_CONFIGURED" + ] + }, + "Ac3Settings": { + "type": "structure", + "members": { + "Bitrate": { + "shape": "__double", + "locationName": "bitrate" + }, + "BitstreamMode": { + "shape": "Ac3BitstreamMode", + "locationName": "bitstreamMode" + }, + "CodingMode": { + "shape": "Ac3CodingMode", + "locationName": "codingMode" + }, + "Dialnorm": { + "shape": "__integer", + "locationName": "dialnorm" + }, + "DrcProfile": { + "shape": "Ac3DrcProfile", + "locationName": "drcProfile" + }, + "LfeFilter": { + "shape": "Ac3LfeFilter", + "locationName": "lfeFilter" + }, + "MetadataControl": { + "shape": "Ac3MetadataControl", + "locationName": "metadataControl" + } + } + }, + "AccessDenied": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + } + }, + "AfdSignaling": { + "type": "string", + "enum": [ + "AUTO", + "FIXED", + "NONE" + ] + }, + "ArchiveContainerSettings": { + "type": "structure", + "members": { + "M2tsSettings": { + "shape": "M2tsSettings", + "locationName": "m2tsSettings" + } + } + }, + "ArchiveGroupSettings": { + "type": "structure", + "members": { + "Destination": { + "shape": "OutputLocationRef", + "locationName": "destination" + }, + "RolloverInterval": { + "shape": "__integer", + "locationName": "rolloverInterval" + } + } + }, + "ArchiveOutputSettings": { + "type": "structure", + "members": { + "ContainerSettings": { + "shape": "ArchiveContainerSettings", + "locationName": "containerSettings" + }, + "Extension": { + "shape": "__string", + "locationName": "extension" + }, + "NameModifier": { + "shape": "__string", + "locationName": "nameModifier" + } + } + }, + "AribDestinationSettings": { + "type": "structure", + "members": { + } + }, + "AribSourceSettings": { + "type": "structure", + "members": { + } + }, + "AudioChannelMapping": { + "type": "structure", + "members": { + "InputChannelLevels": { + "shape": "ListOfInputChannelLevel", + "locationName": "inputChannelLevels" + }, + "OutputChannel": { + "shape": "__integer", + "locationName": "outputChannel" + } + } + }, + "AudioCodecSettings": { + "type": "structure", + "members": { + "AacSettings": { + "shape": "AacSettings", + "locationName": "aacSettings" + }, + "Ac3Settings": { + "shape": "Ac3Settings", + "locationName": "ac3Settings" + }, + "Eac3Settings": { + "shape": "Eac3Settings", + "locationName": "eac3Settings" + }, + "Mp2Settings": { + "shape": "Mp2Settings", + "locationName": "mp2Settings" + }, + "PassThroughSettings": { + "shape": "PassThroughSettings", + "locationName": "passThroughSettings" + } + } + }, + "AudioDescription": { + "type": "structure", + "members": { + "AudioNormalizationSettings": { + "shape": "AudioNormalizationSettings", + "locationName": "audioNormalizationSettings" + }, + "AudioSelectorName": { + "shape": "__string", + "locationName": "audioSelectorName" + }, + "AudioType": { + "shape": "AudioType", + "locationName": "audioType" + }, + "AudioTypeControl": { + "shape": "AudioDescriptionAudioTypeControl", + "locationName": "audioTypeControl" + }, + "CodecSettings": { + "shape": "AudioCodecSettings", + "locationName": "codecSettings" + }, + "LanguageCode": { + "shape": "__string", + "locationName": "languageCode" + }, + "LanguageCodeControl": { + "shape": "AudioDescriptionLanguageCodeControl", + "locationName": "languageCodeControl" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "RemixSettings": { + "shape": "RemixSettings", + "locationName": "remixSettings" + }, + "StreamName": { + "shape": "__string", + "locationName": "streamName" + } + } + }, + "AudioDescriptionAudioTypeControl": { + "type": "string", + "enum": [ + "FOLLOW_INPUT", + "USE_CONFIGURED" + ] + }, + "AudioDescriptionLanguageCodeControl": { + "type": "string", + "enum": [ + "FOLLOW_INPUT", + "USE_CONFIGURED" + ] + }, + "AudioLanguageSelection": { + "type": "structure", + "members": { + "LanguageCode": { + "shape": "__string", + "locationName": "languageCode" + }, + "LanguageSelectionPolicy": { + "shape": "AudioLanguageSelectionPolicy", + "locationName": "languageSelectionPolicy" + } + } + }, + "AudioLanguageSelectionPolicy": { + "type": "string", + "enum": [ + "LOOSE", + "STRICT" + ] + }, + "AudioNormalizationAlgorithm": { + "type": "string", + "enum": [ + "ITU_1770_1", + "ITU_1770_2" + ] + }, + "AudioNormalizationAlgorithmControl": { + "type": "string", + "enum": [ + "CORRECT_AUDIO" + ] + }, + "AudioNormalizationSettings": { + "type": "structure", + "members": { + "Algorithm": { + "shape": "AudioNormalizationAlgorithm", + "locationName": "algorithm" + }, + "AlgorithmControl": { + "shape": "AudioNormalizationAlgorithmControl", + "locationName": "algorithmControl" + }, + "TargetLkfs": { + "shape": "__double", + "locationName": "targetLkfs" + } + } + }, + "AudioOnlyHlsSettings": { + "type": "structure", + "members": { + "AudioGroupId": { + "shape": "__string", + "locationName": "audioGroupId" + }, + "AudioOnlyImage": { + "shape": "InputLocation", + "locationName": "audioOnlyImage" + }, + "AudioTrackType": { + "shape": "AudioOnlyHlsTrackType", + "locationName": "audioTrackType" + } + } + }, + "AudioOnlyHlsTrackType": { + "type": "string", + "enum": [ + "ALTERNATE_AUDIO_AUTO_SELECT", + "ALTERNATE_AUDIO_AUTO_SELECT_DEFAULT", + "ALTERNATE_AUDIO_NOT_AUTO_SELECT", + "AUDIO_ONLY_VARIANT_STREAM" + ] + }, + "AudioPidSelection": { + "type": "structure", + "members": { + "Pid": { + "shape": "__integer", + "locationName": "pid" + } + } + }, + "AudioSelector": { + "type": "structure", + "members": { + "Name": { + "shape": "__string", + "locationName": "name" + }, + "SelectorSettings": { + "shape": "AudioSelectorSettings", + "locationName": "selectorSettings" + } + } + }, + "AudioSelectorSettings": { + "type": "structure", + "members": { + "AudioLanguageSelection": { + "shape": "AudioLanguageSelection", + "locationName": "audioLanguageSelection" + }, + "AudioPidSelection": { + "shape": "AudioPidSelection", + "locationName": "audioPidSelection" + } + } + }, + "AudioType": { + "type": "string", + "enum": [ + "CLEAN_EFFECTS", + "HEARING_IMPAIRED", + "UNDEFINED", + "VISUAL_IMPAIRED_COMMENTARY" + ] + }, + "AvailBlanking": { + "type": "structure", + "members": { + "AvailBlankingImage": { + "shape": "InputLocation", + "locationName": "availBlankingImage" + }, + "State": { + "shape": "AvailBlankingState", + "locationName": "state" + } + } + }, + "AvailBlankingState": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "AvailConfiguration": { + "type": "structure", + "members": { + "AvailSettings": { + "shape": "AvailSettings", + "locationName": "availSettings" + } + } + }, + "AvailSettings": { + "type": "structure", + "members": { + "Scte35SpliceInsert": { + "shape": "Scte35SpliceInsert", + "locationName": "scte35SpliceInsert" + }, + "Scte35TimeSignalApos": { + "shape": "Scte35TimeSignalApos", + "locationName": "scte35TimeSignalApos" + } + } + }, + "BadGatewayException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 502 + } + }, + "BadRequestException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 400 + } + }, + "BlackoutSlate": { + "type": "structure", + "members": { + "BlackoutSlateImage": { + "shape": "InputLocation", + "locationName": "blackoutSlateImage" + }, + "NetworkEndBlackout": { + "shape": "BlackoutSlateNetworkEndBlackout", + "locationName": "networkEndBlackout" + }, + "NetworkEndBlackoutImage": { + "shape": "InputLocation", + "locationName": "networkEndBlackoutImage" + }, + "NetworkId": { + "shape": "__string", + "locationName": "networkId" + }, + "State": { + "shape": "BlackoutSlateState", + "locationName": "state" + } + } + }, + "BlackoutSlateNetworkEndBlackout": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "BlackoutSlateState": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "BurnInAlignment": { + "type": "string", + "enum": [ + "CENTERED", + "LEFT", + "SMART" + ] + }, + "BurnInBackgroundColor": { + "type": "string", + "enum": [ + "BLACK", + "NONE", + "WHITE" + ] + }, + "BurnInDestinationSettings": { + "type": "structure", + "members": { + "Alignment": { + "shape": "BurnInAlignment", + "locationName": "alignment" + }, + "BackgroundColor": { + "shape": "BurnInBackgroundColor", + "locationName": "backgroundColor" + }, + "BackgroundOpacity": { + "shape": "__integer", + "locationName": "backgroundOpacity" + }, + "Font": { + "shape": "InputLocation", + "locationName": "font" + }, + "FontColor": { + "shape": "BurnInFontColor", + "locationName": "fontColor" + }, + "FontOpacity": { + "shape": "__integer", + "locationName": "fontOpacity" + }, + "FontResolution": { + "shape": "__integer", + "locationName": "fontResolution" + }, + "FontSize": { + "shape": "__string", + "locationName": "fontSize" + }, + "OutlineColor": { + "shape": "BurnInOutlineColor", + "locationName": "outlineColor" + }, + "OutlineSize": { + "shape": "__integer", + "locationName": "outlineSize" + }, + "ShadowColor": { + "shape": "BurnInShadowColor", + "locationName": "shadowColor" + }, + "ShadowOpacity": { + "shape": "__integer", + "locationName": "shadowOpacity" + }, + "ShadowXOffset": { + "shape": "__integer", + "locationName": "shadowXOffset" + }, + "ShadowYOffset": { + "shape": "__integer", + "locationName": "shadowYOffset" + }, + "TeletextGridControl": { + "shape": "BurnInTeletextGridControl", + "locationName": "teletextGridControl" + }, + "XPosition": { + "shape": "__integer", + "locationName": "xPosition" + }, + "YPosition": { + "shape": "__integer", + "locationName": "yPosition" + } + } + }, + "BurnInFontColor": { + "type": "string", + "enum": [ + "BLACK", + "BLUE", + "GREEN", + "RED", + "WHITE", + "YELLOW" + ] + }, + "BurnInOutlineColor": { + "type": "string", + "enum": [ + "BLACK", + "BLUE", + "GREEN", + "RED", + "WHITE", + "YELLOW" + ] + }, + "BurnInShadowColor": { + "type": "string", + "enum": [ + "BLACK", + "NONE", + "WHITE" + ] + }, + "BurnInTeletextGridControl": { + "type": "string", + "enum": [ + "FIXED", + "SCALED" + ] + }, + "CaptionDescription": { + "type": "structure", + "members": { + "CaptionSelectorName": { + "shape": "__string", + "locationName": "captionSelectorName" + }, + "DestinationSettings": { + "shape": "CaptionDestinationSettings", + "locationName": "destinationSettings" + }, + "LanguageCode": { + "shape": "__string", + "locationName": "languageCode" + }, + "LanguageDescription": { + "shape": "__string", + "locationName": "languageDescription" + }, + "Name": { + "shape": "__string", + "locationName": "name" + } + } + }, + "CaptionDestinationSettings": { + "type": "structure", + "members": { + "AribDestinationSettings": { + "shape": "AribDestinationSettings", + "locationName": "aribDestinationSettings" + }, + "BurnInDestinationSettings": { + "shape": "BurnInDestinationSettings", + "locationName": "burnInDestinationSettings" + }, + "DvbSubDestinationSettings": { + "shape": "DvbSubDestinationSettings", + "locationName": "dvbSubDestinationSettings" + }, + "EmbeddedDestinationSettings": { + "shape": "EmbeddedDestinationSettings", + "locationName": "embeddedDestinationSettings" + }, + "EmbeddedPlusScte20DestinationSettings": { + "shape": "EmbeddedPlusScte20DestinationSettings", + "locationName": "embeddedPlusScte20DestinationSettings" + }, + "Scte20PlusEmbeddedDestinationSettings": { + "shape": "Scte20PlusEmbeddedDestinationSettings", + "locationName": "scte20PlusEmbeddedDestinationSettings" + }, + "Scte27DestinationSettings": { + "shape": "Scte27DestinationSettings", + "locationName": "scte27DestinationSettings" + }, + "SmpteTtDestinationSettings": { + "shape": "SmpteTtDestinationSettings", + "locationName": "smpteTtDestinationSettings" + }, + "TeletextDestinationSettings": { + "shape": "TeletextDestinationSettings", + "locationName": "teletextDestinationSettings" + }, + "TtmlDestinationSettings": { + "shape": "TtmlDestinationSettings", + "locationName": "ttmlDestinationSettings" + }, + "WebvttDestinationSettings": { + "shape": "WebvttDestinationSettings", + "locationName": "webvttDestinationSettings" + } + } + }, + "CaptionLanguageMapping": { + "type": "structure", + "members": { + "CaptionChannel": { + "shape": "__integer", + "locationName": "captionChannel" + }, + "LanguageCode": { + "shape": "__string", + "locationName": "languageCode" + }, + "LanguageDescription": { + "shape": "__string", + "locationName": "languageDescription" + } + } + }, + "CaptionSelector": { + "type": "structure", + "members": { + "LanguageCode": { + "shape": "__string", + "locationName": "languageCode" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "SelectorSettings": { + "shape": "CaptionSelectorSettings", + "locationName": "selectorSettings" + } + } + }, + "CaptionSelectorSettings": { + "type": "structure", + "members": { + "AribSourceSettings": { + "shape": "AribSourceSettings", + "locationName": "aribSourceSettings" + }, + "DvbSubSourceSettings": { + "shape": "DvbSubSourceSettings", + "locationName": "dvbSubSourceSettings" + }, + "EmbeddedSourceSettings": { + "shape": "EmbeddedSourceSettings", + "locationName": "embeddedSourceSettings" + }, + "Scte20SourceSettings": { + "shape": "Scte20SourceSettings", + "locationName": "scte20SourceSettings" + }, + "Scte27SourceSettings": { + "shape": "Scte27SourceSettings", + "locationName": "scte27SourceSettings" + }, + "TeletextSourceSettings": { + "shape": "TeletextSourceSettings", + "locationName": "teletextSourceSettings" + } + } + }, + "Channel": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "Destinations": { + "shape": "ListOfOutputDestination", + "locationName": "destinations" + }, + "EgressEndpoints": { + "shape": "ListOfChannelEgressEndpoint", + "locationName": "egressEndpoints" + }, + "EncoderSettings": { + "shape": "EncoderSettings", + "locationName": "encoderSettings" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "InputAttachments": { + "shape": "ListOfInputAttachment", + "locationName": "inputAttachments" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "RoleArn": { + "shape": "__string", + "locationName": "roleArn" + }, + "State": { + "shape": "ChannelState", + "locationName": "state" + } + } + }, + "ChannelConfigurationValidationError": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + }, + "ValidationErrors": { + "shape": "ListOfValidationError", + "locationName": "validationErrors" + } + } + }, + "ChannelEgressEndpoint": { + "type": "structure", + "members": { + "SourceIp": { + "shape": "__string", + "locationName": "sourceIp" + } + } + }, + "ChannelState": { + "type": "string", + "enum": [ + "CREATING", + "CREATE_FAILED", + "IDLE", + "STARTING", + "RUNNING", + "RECOVERING", + "STOPPING", + "DELETING", + "DELETED" + ] + }, + "ChannelSummary": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "Destinations": { + "shape": "ListOfOutputDestination", + "locationName": "destinations" + }, + "EgressEndpoints": { + "shape": "ListOfChannelEgressEndpoint", + "locationName": "egressEndpoints" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "InputAttachments": { + "shape": "ListOfInputAttachment", + "locationName": "inputAttachments" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "RoleArn": { + "shape": "__string", + "locationName": "roleArn" + }, + "State": { + "shape": "ChannelState", + "locationName": "state" + } + } + }, + "ConflictException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 409 + } + }, + "CreateChannel": { + "type": "structure", + "members": { + "Destinations": { + "shape": "ListOfOutputDestination", + "locationName": "destinations" + }, + "EncoderSettings": { + "shape": "EncoderSettings", + "locationName": "encoderSettings" + }, + "InputAttachments": { + "shape": "ListOfInputAttachment", + "locationName": "inputAttachments" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "RequestId": { + "shape": "__string", + "locationName": "requestId", + "idempotencyToken": true + }, + "Reserved": { + "shape": "__string", + "locationName": "reserved" + }, + "RoleArn": { + "shape": "__string", + "locationName": "roleArn" + } + } + }, + "CreateChannelRequest": { + "type": "structure", + "members": { + "Destinations": { + "shape": "ListOfOutputDestination", + "locationName": "destinations" + }, + "EncoderSettings": { + "shape": "EncoderSettings", + "locationName": "encoderSettings" + }, + "InputAttachments": { + "shape": "ListOfInputAttachment", + "locationName": "inputAttachments" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "RequestId": { + "shape": "__string", + "locationName": "requestId", + "idempotencyToken": true + }, + "Reserved": { + "shape": "__string", + "locationName": "reserved" + }, + "RoleArn": { + "shape": "__string", + "locationName": "roleArn" + } + } + }, + "CreateChannelResponse": { + "type": "structure", + "members": { + "Channel": { + "shape": "Channel", + "locationName": "channel" + } + } + }, + "CreateChannelResultModel": { + "type": "structure", + "members": { + "Channel": { + "shape": "Channel", + "locationName": "channel" + } + } + }, + "CreateInput": { + "type": "structure", + "members": { + "Destinations": { + "shape": "ListOfInputDestinationRequest", + "locationName": "destinations" + }, + "InputSecurityGroups": { + "shape": "ListOf__string", + "locationName": "inputSecurityGroups" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "RequestId": { + "shape": "__string", + "locationName": "requestId", + "idempotencyToken": true + }, + "Sources": { + "shape": "ListOfInputSourceRequest", + "locationName": "sources" + }, + "Type": { + "shape": "InputType", + "locationName": "type" + } + } + }, + "CreateInputRequest": { + "type": "structure", + "members": { + "Destinations": { + "shape": "ListOfInputDestinationRequest", + "locationName": "destinations" + }, + "InputSecurityGroups": { + "shape": "ListOf__string", + "locationName": "inputSecurityGroups" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "RequestId": { + "shape": "__string", + "locationName": "requestId", + "idempotencyToken": true + }, + "Sources": { + "shape": "ListOfInputSourceRequest", + "locationName": "sources" + }, + "Type": { + "shape": "InputType", + "locationName": "type" + } + } + }, + "CreateInputResponse": { + "type": "structure", + "members": { + "Input": { + "shape": "Input", + "locationName": "input" + } + } + }, + "CreateInputResultModel": { + "type": "structure", + "members": { + "Input": { + "shape": "Input", + "locationName": "input" + } + } + }, + "CreateInputSecurityGroupRequest": { + "type": "structure", + "members": { + "WhitelistRules": { + "shape": "ListOfInputWhitelistRuleCidr", + "locationName": "whitelistRules" + } + } + }, + "CreateInputSecurityGroupResponse": { + "type": "structure", + "members": { + "SecurityGroup": { + "shape": "InputSecurityGroup", + "locationName": "securityGroup" + } + } + }, + "CreateInputSecurityGroupResultModel": { + "type": "structure", + "members": { + "SecurityGroup": { + "shape": "InputSecurityGroup", + "locationName": "securityGroup" + } + } + }, + "DeleteChannelRequest": { + "type": "structure", + "members": { + "ChannelId": { + "shape": "__string", + "location": "uri", + "locationName": "channelId" + } + }, + "required": [ + "ChannelId" + ] + }, + "DeleteChannelResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "Destinations": { + "shape": "ListOfOutputDestination", + "locationName": "destinations" + }, + "EgressEndpoints": { + "shape": "ListOfChannelEgressEndpoint", + "locationName": "egressEndpoints" + }, + "EncoderSettings": { + "shape": "EncoderSettings", + "locationName": "encoderSettings" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "InputAttachments": { + "shape": "ListOfInputAttachment", + "locationName": "inputAttachments" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "RoleArn": { + "shape": "__string", + "locationName": "roleArn" + }, + "State": { + "shape": "ChannelState", + "locationName": "state" + } + } + }, + "DeleteInputRequest": { + "type": "structure", + "members": { + "InputId": { + "shape": "__string", + "location": "uri", + "locationName": "inputId" + } + }, + "required": [ + "InputId" + ] + }, + "DeleteInputResponse": { + "type": "structure", + "members": { + } + }, + "DeleteInputSecurityGroupRequest": { + "type": "structure", + "members": { + "InputSecurityGroupId": { + "shape": "__string", + "location": "uri", + "locationName": "inputSecurityGroupId" + } + }, + "required": [ + "InputSecurityGroupId" + ] + }, + "DeleteInputSecurityGroupResponse": { + "type": "structure", + "members": { + } + }, + "DescribeChannelRequest": { + "type": "structure", + "members": { + "ChannelId": { + "shape": "__string", + "location": "uri", + "locationName": "channelId" + } + }, + "required": [ + "ChannelId" + ] + }, + "DescribeChannelResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "Destinations": { + "shape": "ListOfOutputDestination", + "locationName": "destinations" + }, + "EgressEndpoints": { + "shape": "ListOfChannelEgressEndpoint", + "locationName": "egressEndpoints" + }, + "EncoderSettings": { + "shape": "EncoderSettings", + "locationName": "encoderSettings" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "InputAttachments": { + "shape": "ListOfInputAttachment", + "locationName": "inputAttachments" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "RoleArn": { + "shape": "__string", + "locationName": "roleArn" + }, + "State": { + "shape": "ChannelState", + "locationName": "state" + } + } + }, + "DescribeInputRequest": { + "type": "structure", + "members": { + "InputId": { + "shape": "__string", + "location": "uri", + "locationName": "inputId" + } + }, + "required": [ + "InputId" + ] + }, + "DescribeInputResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "AttachedChannels": { + "shape": "ListOf__string", + "locationName": "attachedChannels" + }, + "Destinations": { + "shape": "ListOfInputDestination", + "locationName": "destinations" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "SecurityGroups": { + "shape": "ListOf__string", + "locationName": "securityGroups" + }, + "Sources": { + "shape": "ListOfInputSource", + "locationName": "sources" + }, + "State": { + "shape": "InputState", + "locationName": "state" + }, + "Type": { + "shape": "InputType", + "locationName": "type" + } + } + }, + "DescribeInputSecurityGroupRequest": { + "type": "structure", + "members": { + "InputSecurityGroupId": { + "shape": "__string", + "location": "uri", + "locationName": "inputSecurityGroupId" + } + }, + "required": [ + "InputSecurityGroupId" + ] + }, + "DescribeInputSecurityGroupResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "WhitelistRules": { + "shape": "ListOfInputWhitelistRule", + "locationName": "whitelistRules" + } + } + }, + "DvbNitSettings": { + "type": "structure", + "members": { + "NetworkId": { + "shape": "__integer", + "locationName": "networkId" + }, + "NetworkName": { + "shape": "__string", + "locationName": "networkName" + }, + "RepInterval": { + "shape": "__integer", + "locationName": "repInterval" + } + } + }, + "DvbSdtOutputSdt": { + "type": "string", + "enum": [ + "SDT_FOLLOW", + "SDT_FOLLOW_IF_PRESENT", + "SDT_MANUAL", + "SDT_NONE" + ] + }, + "DvbSdtSettings": { + "type": "structure", + "members": { + "OutputSdt": { + "shape": "DvbSdtOutputSdt", + "locationName": "outputSdt" + }, + "RepInterval": { + "shape": "__integer", + "locationName": "repInterval" + }, + "ServiceName": { + "shape": "__string", + "locationName": "serviceName" + }, + "ServiceProviderName": { + "shape": "__string", + "locationName": "serviceProviderName" + } + } + }, + "DvbSubDestinationAlignment": { + "type": "string", + "enum": [ + "CENTERED", + "LEFT", + "SMART" + ] + }, + "DvbSubDestinationBackgroundColor": { + "type": "string", + "enum": [ + "BLACK", + "NONE", + "WHITE" + ] + }, + "DvbSubDestinationFontColor": { + "type": "string", + "enum": [ + "BLACK", + "BLUE", + "GREEN", + "RED", + "WHITE", + "YELLOW" + ] + }, + "DvbSubDestinationOutlineColor": { + "type": "string", + "enum": [ + "BLACK", + "BLUE", + "GREEN", + "RED", + "WHITE", + "YELLOW" + ] + }, + "DvbSubDestinationSettings": { + "type": "structure", + "members": { + "Alignment": { + "shape": "DvbSubDestinationAlignment", + "locationName": "alignment" + }, + "BackgroundColor": { + "shape": "DvbSubDestinationBackgroundColor", + "locationName": "backgroundColor" + }, + "BackgroundOpacity": { + "shape": "__integer", + "locationName": "backgroundOpacity" + }, + "Font": { + "shape": "InputLocation", + "locationName": "font" + }, + "FontColor": { + "shape": "DvbSubDestinationFontColor", + "locationName": "fontColor" + }, + "FontOpacity": { + "shape": "__integer", + "locationName": "fontOpacity" + }, + "FontResolution": { + "shape": "__integer", + "locationName": "fontResolution" + }, + "FontSize": { + "shape": "__string", + "locationName": "fontSize" + }, + "OutlineColor": { + "shape": "DvbSubDestinationOutlineColor", + "locationName": "outlineColor" + }, + "OutlineSize": { + "shape": "__integer", + "locationName": "outlineSize" + }, + "ShadowColor": { + "shape": "DvbSubDestinationShadowColor", + "locationName": "shadowColor" + }, + "ShadowOpacity": { + "shape": "__integer", + "locationName": "shadowOpacity" + }, + "ShadowXOffset": { + "shape": "__integer", + "locationName": "shadowXOffset" + }, + "ShadowYOffset": { + "shape": "__integer", + "locationName": "shadowYOffset" + }, + "TeletextGridControl": { + "shape": "DvbSubDestinationTeletextGridControl", + "locationName": "teletextGridControl" + }, + "XPosition": { + "shape": "__integer", + "locationName": "xPosition" + }, + "YPosition": { + "shape": "__integer", + "locationName": "yPosition" + } + } + }, + "DvbSubDestinationShadowColor": { + "type": "string", + "enum": [ + "BLACK", + "NONE", + "WHITE" + ] + }, + "DvbSubDestinationTeletextGridControl": { + "type": "string", + "enum": [ + "FIXED", + "SCALED" + ] + }, + "DvbSubSourceSettings": { + "type": "structure", + "members": { + "Pid": { + "shape": "__integer", + "locationName": "pid" + } + } + }, + "DvbTdtSettings": { + "type": "structure", + "members": { + "RepInterval": { + "shape": "__integer", + "locationName": "repInterval" + } + } + }, + "Eac3AttenuationControl": { + "type": "string", + "enum": [ + "ATTENUATE_3_DB", + "NONE" + ] + }, + "Eac3BitstreamMode": { + "type": "string", + "enum": [ + "COMMENTARY", + "COMPLETE_MAIN", + "EMERGENCY", + "HEARING_IMPAIRED", + "VISUALLY_IMPAIRED" + ] + }, + "Eac3CodingMode": { + "type": "string", + "enum": [ + "CODING_MODE_1_0", + "CODING_MODE_2_0", + "CODING_MODE_3_2" + ] + }, + "Eac3DcFilter": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "Eac3DrcLine": { + "type": "string", + "enum": [ + "FILM_LIGHT", + "FILM_STANDARD", + "MUSIC_LIGHT", + "MUSIC_STANDARD", + "NONE", + "SPEECH" + ] + }, + "Eac3DrcRf": { + "type": "string", + "enum": [ + "FILM_LIGHT", + "FILM_STANDARD", + "MUSIC_LIGHT", + "MUSIC_STANDARD", + "NONE", + "SPEECH" + ] + }, + "Eac3LfeControl": { + "type": "string", + "enum": [ + "LFE", + "NO_LFE" + ] + }, + "Eac3LfeFilter": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "Eac3MetadataControl": { + "type": "string", + "enum": [ + "FOLLOW_INPUT", + "USE_CONFIGURED" + ] + }, + "Eac3PassthroughControl": { + "type": "string", + "enum": [ + "NO_PASSTHROUGH", + "WHEN_POSSIBLE" + ] + }, + "Eac3PhaseControl": { + "type": "string", + "enum": [ + "NO_SHIFT", + "SHIFT_90_DEGREES" + ] + }, + "Eac3Settings": { + "type": "structure", + "members": { + "AttenuationControl": { + "shape": "Eac3AttenuationControl", + "locationName": "attenuationControl" + }, + "Bitrate": { + "shape": "__double", + "locationName": "bitrate" + }, + "BitstreamMode": { + "shape": "Eac3BitstreamMode", + "locationName": "bitstreamMode" + }, + "CodingMode": { + "shape": "Eac3CodingMode", + "locationName": "codingMode" + }, + "DcFilter": { + "shape": "Eac3DcFilter", + "locationName": "dcFilter" + }, + "Dialnorm": { + "shape": "__integer", + "locationName": "dialnorm" + }, + "DrcLine": { + "shape": "Eac3DrcLine", + "locationName": "drcLine" + }, + "DrcRf": { + "shape": "Eac3DrcRf", + "locationName": "drcRf" + }, + "LfeControl": { + "shape": "Eac3LfeControl", + "locationName": "lfeControl" + }, + "LfeFilter": { + "shape": "Eac3LfeFilter", + "locationName": "lfeFilter" + }, + "LoRoCenterMixLevel": { + "shape": "__double", + "locationName": "loRoCenterMixLevel" + }, + "LoRoSurroundMixLevel": { + "shape": "__double", + "locationName": "loRoSurroundMixLevel" + }, + "LtRtCenterMixLevel": { + "shape": "__double", + "locationName": "ltRtCenterMixLevel" + }, + "LtRtSurroundMixLevel": { + "shape": "__double", + "locationName": "ltRtSurroundMixLevel" + }, + "MetadataControl": { + "shape": "Eac3MetadataControl", + "locationName": "metadataControl" + }, + "PassthroughControl": { + "shape": "Eac3PassthroughControl", + "locationName": "passthroughControl" + }, + "PhaseControl": { + "shape": "Eac3PhaseControl", + "locationName": "phaseControl" + }, + "StereoDownmix": { + "shape": "Eac3StereoDownmix", + "locationName": "stereoDownmix" + }, + "SurroundExMode": { + "shape": "Eac3SurroundExMode", + "locationName": "surroundExMode" + }, + "SurroundMode": { + "shape": "Eac3SurroundMode", + "locationName": "surroundMode" + } + } + }, + "Eac3StereoDownmix": { + "type": "string", + "enum": [ + "DPL2", + "LO_RO", + "LT_RT", + "NOT_INDICATED" + ] + }, + "Eac3SurroundExMode": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "NOT_INDICATED" + ] + }, + "Eac3SurroundMode": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED", + "NOT_INDICATED" + ] + }, + "EmbeddedConvert608To708": { + "type": "string", + "enum": [ + "DISABLED", + "UPCONVERT" + ] + }, + "EmbeddedDestinationSettings": { + "type": "structure", + "members": { + } + }, + "EmbeddedPlusScte20DestinationSettings": { + "type": "structure", + "members": { + } + }, + "EmbeddedScte20Detection": { + "type": "string", + "enum": [ + "AUTO", + "OFF" + ] + }, + "EmbeddedSourceSettings": { + "type": "structure", + "members": { + "Convert608To708": { + "shape": "EmbeddedConvert608To708", + "locationName": "convert608To708" + }, + "Scte20Detection": { + "shape": "EmbeddedScte20Detection", + "locationName": "scte20Detection" + }, + "Source608ChannelNumber": { + "shape": "__integer", + "locationName": "source608ChannelNumber" + }, + "Source608TrackNumber": { + "shape": "__integer", + "locationName": "source608TrackNumber" + } + } + }, + "Empty": { + "type": "structure", + "members": { + } + }, + "EncoderSettings": { + "type": "structure", + "members": { + "AudioDescriptions": { + "shape": "ListOfAudioDescription", + "locationName": "audioDescriptions" + }, + "AvailBlanking": { + "shape": "AvailBlanking", + "locationName": "availBlanking" + }, + "AvailConfiguration": { + "shape": "AvailConfiguration", + "locationName": "availConfiguration" + }, + "BlackoutSlate": { + "shape": "BlackoutSlate", + "locationName": "blackoutSlate" + }, + "CaptionDescriptions": { + "shape": "ListOfCaptionDescription", + "locationName": "captionDescriptions" + }, + "GlobalConfiguration": { + "shape": "GlobalConfiguration", + "locationName": "globalConfiguration" + }, + "OutputGroups": { + "shape": "ListOfOutputGroup", + "locationName": "outputGroups" + }, + "TimecodeConfig": { + "shape": "TimecodeConfig", + "locationName": "timecodeConfig" + }, + "VideoDescriptions": { + "shape": "ListOfVideoDescription", + "locationName": "videoDescriptions" + } + } + }, + "FecOutputIncludeFec": { + "type": "string", + "enum": [ + "COLUMN", + "COLUMN_AND_ROW" + ] + }, + "FecOutputSettings": { + "type": "structure", + "members": { + "ColumnDepth": { + "shape": "__integer", + "locationName": "columnDepth" + }, + "IncludeFec": { + "shape": "FecOutputIncludeFec", + "locationName": "includeFec" + }, + "RowLength": { + "shape": "__integer", + "locationName": "rowLength" + } + } + }, + "FixedAfd": { + "type": "string", + "enum": [ + "AFD_0000", + "AFD_0010", + "AFD_0011", + "AFD_0100", + "AFD_1000", + "AFD_1001", + "AFD_1010", + "AFD_1011", + "AFD_1101", + "AFD_1110", + "AFD_1111" + ] + }, + "ForbiddenException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 403 + } + }, + "GatewayTimeoutException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 504 + } + }, + "GlobalConfiguration": { + "type": "structure", + "members": { + "InitialAudioGain": { + "shape": "__integer", + "locationName": "initialAudioGain" + }, + "InputEndAction": { + "shape": "GlobalConfigurationInputEndAction", + "locationName": "inputEndAction" + }, + "InputLossBehavior": { + "shape": "InputLossBehavior", + "locationName": "inputLossBehavior" + }, + "OutputTimingSource": { + "shape": "GlobalConfigurationOutputTimingSource", + "locationName": "outputTimingSource" + }, + "SupportLowFramerateInputs": { + "shape": "GlobalConfigurationLowFramerateInputs", + "locationName": "supportLowFramerateInputs" + } + } + }, + "GlobalConfigurationInputEndAction": { + "type": "string", + "enum": [ + "NONE", + "SWITCH_AND_LOOP_INPUTS" + ] + }, + "GlobalConfigurationLowFramerateInputs": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "GlobalConfigurationOutputTimingSource": { + "type": "string", + "enum": [ + "INPUT_CLOCK", + "SYSTEM_CLOCK" + ] + }, + "H264AdaptiveQuantization": { + "type": "string", + "enum": [ + "HIGH", + "HIGHER", + "LOW", + "MAX", + "MEDIUM", + "OFF" + ] + }, + "H264ColorMetadata": { + "type": "string", + "enum": [ + "IGNORE", + "INSERT" + ] + }, + "H264EntropyEncoding": { + "type": "string", + "enum": [ + "CABAC", + "CAVLC" + ] + }, + "H264FlickerAq": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264FramerateControl": { + "type": "string", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "H264GopBReference": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264GopSizeUnits": { + "type": "string", + "enum": [ + "FRAMES", + "SECONDS" + ] + }, + "H264Level": { + "type": "string", + "enum": [ + "H264_LEVEL_1", + "H264_LEVEL_1_1", + "H264_LEVEL_1_2", + "H264_LEVEL_1_3", + "H264_LEVEL_2", + "H264_LEVEL_2_1", + "H264_LEVEL_2_2", + "H264_LEVEL_3", + "H264_LEVEL_3_1", + "H264_LEVEL_3_2", + "H264_LEVEL_4", + "H264_LEVEL_4_1", + "H264_LEVEL_4_2", + "H264_LEVEL_5", + "H264_LEVEL_5_1", + "H264_LEVEL_5_2", + "H264_LEVEL_AUTO" + ] + }, + "H264LookAheadRateControl": { + "type": "string", + "enum": [ + "HIGH", + "LOW", + "MEDIUM" + ] + }, + "H264ParControl": { + "type": "string", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "H264Profile": { + "type": "string", + "enum": [ + "BASELINE", + "HIGH", + "HIGH_10BIT", + "HIGH_422", + "HIGH_422_10BIT", + "MAIN" + ] + }, + "H264RateControlMode": { + "type": "string", + "enum": [ + "CBR", + "VBR" + ] + }, + "H264ScanType": { + "type": "string", + "enum": [ + "INTERLACED", + "PROGRESSIVE" + ] + }, + "H264SceneChangeDetect": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264Settings": { + "type": "structure", + "members": { + "AdaptiveQuantization": { + "shape": "H264AdaptiveQuantization", + "locationName": "adaptiveQuantization" + }, + "AfdSignaling": { + "shape": "AfdSignaling", + "locationName": "afdSignaling" + }, + "Bitrate": { + "shape": "__integer", + "locationName": "bitrate" + }, + "BufFillPct": { + "shape": "__integer", + "locationName": "bufFillPct" + }, + "BufSize": { + "shape": "__integer", + "locationName": "bufSize" + }, + "ColorMetadata": { + "shape": "H264ColorMetadata", + "locationName": "colorMetadata" + }, + "EntropyEncoding": { + "shape": "H264EntropyEncoding", + "locationName": "entropyEncoding" + }, + "FixedAfd": { + "shape": "FixedAfd", + "locationName": "fixedAfd" + }, + "FlickerAq": { + "shape": "H264FlickerAq", + "locationName": "flickerAq" + }, + "FramerateControl": { + "shape": "H264FramerateControl", + "locationName": "framerateControl" + }, + "FramerateDenominator": { + "shape": "__integer", + "locationName": "framerateDenominator" + }, + "FramerateNumerator": { + "shape": "__integer", + "locationName": "framerateNumerator" + }, + "GopBReference": { + "shape": "H264GopBReference", + "locationName": "gopBReference" + }, + "GopClosedCadence": { + "shape": "__integer", + "locationName": "gopClosedCadence" + }, + "GopNumBFrames": { + "shape": "__integer", + "locationName": "gopNumBFrames" + }, + "GopSize": { + "shape": "__double", + "locationName": "gopSize" + }, + "GopSizeUnits": { + "shape": "H264GopSizeUnits", + "locationName": "gopSizeUnits" + }, + "Level": { + "shape": "H264Level", + "locationName": "level" + }, + "LookAheadRateControl": { + "shape": "H264LookAheadRateControl", + "locationName": "lookAheadRateControl" + }, + "MaxBitrate": { + "shape": "__integer", + "locationName": "maxBitrate" + }, + "MinIInterval": { + "shape": "__integer", + "locationName": "minIInterval" + }, + "NumRefFrames": { + "shape": "__integer", + "locationName": "numRefFrames" + }, + "ParControl": { + "shape": "H264ParControl", + "locationName": "parControl" + }, + "ParDenominator": { + "shape": "__integer", + "locationName": "parDenominator" + }, + "ParNumerator": { + "shape": "__integer", + "locationName": "parNumerator" + }, + "Profile": { + "shape": "H264Profile", + "locationName": "profile" + }, + "RateControlMode": { + "shape": "H264RateControlMode", + "locationName": "rateControlMode" + }, + "ScanType": { + "shape": "H264ScanType", + "locationName": "scanType" + }, + "SceneChangeDetect": { + "shape": "H264SceneChangeDetect", + "locationName": "sceneChangeDetect" + }, + "Slices": { + "shape": "__integer", + "locationName": "slices" + }, + "Softness": { + "shape": "__integer", + "locationName": "softness" + }, + "SpatialAq": { + "shape": "H264SpatialAq", + "locationName": "spatialAq" + }, + "Syntax": { + "shape": "H264Syntax", + "locationName": "syntax" + }, + "TemporalAq": { + "shape": "H264TemporalAq", + "locationName": "temporalAq" + }, + "TimecodeInsertion": { + "shape": "H264TimecodeInsertionBehavior", + "locationName": "timecodeInsertion" + } + } + }, + "H264SpatialAq": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264Syntax": { + "type": "string", + "enum": [ + "DEFAULT", + "RP2027" + ] + }, + "H264TemporalAq": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "H264TimecodeInsertionBehavior": { + "type": "string", + "enum": [ + "DISABLED", + "PIC_TIMING_SEI" + ] + }, + "HlsAdMarkers": { + "type": "string", + "enum": [ + "ADOBE", + "ELEMENTAL", + "ELEMENTAL_SCTE35" + ] + }, + "HlsAkamaiHttpTransferMode": { + "type": "string", + "enum": [ + "CHUNKED", + "NON_CHUNKED" + ] + }, + "HlsAkamaiSettings": { + "type": "structure", + "members": { + "ConnectionRetryInterval": { + "shape": "__integer", + "locationName": "connectionRetryInterval" + }, + "FilecacheDuration": { + "shape": "__integer", + "locationName": "filecacheDuration" + }, + "HttpTransferMode": { + "shape": "HlsAkamaiHttpTransferMode", + "locationName": "httpTransferMode" + }, + "NumRetries": { + "shape": "__integer", + "locationName": "numRetries" + }, + "RestartDelay": { + "shape": "__integer", + "locationName": "restartDelay" + }, + "Salt": { + "shape": "__string", + "locationName": "salt" + }, + "Token": { + "shape": "__string", + "locationName": "token" + } + } + }, + "HlsBasicPutSettings": { + "type": "structure", + "members": { + "ConnectionRetryInterval": { + "shape": "__integer", + "locationName": "connectionRetryInterval" + }, + "FilecacheDuration": { + "shape": "__integer", + "locationName": "filecacheDuration" + }, + "NumRetries": { + "shape": "__integer", + "locationName": "numRetries" + }, + "RestartDelay": { + "shape": "__integer", + "locationName": "restartDelay" + } + } + }, + "HlsCaptionLanguageSetting": { + "type": "string", + "enum": [ + "INSERT", + "NONE", + "OMIT" + ] + }, + "HlsCdnSettings": { + "type": "structure", + "members": { + "HlsAkamaiSettings": { + "shape": "HlsAkamaiSettings", + "locationName": "hlsAkamaiSettings" + }, + "HlsBasicPutSettings": { + "shape": "HlsBasicPutSettings", + "locationName": "hlsBasicPutSettings" + }, + "HlsMediaStoreSettings": { + "shape": "HlsMediaStoreSettings", + "locationName": "hlsMediaStoreSettings" + }, + "HlsWebdavSettings": { + "shape": "HlsWebdavSettings", + "locationName": "hlsWebdavSettings" + } + } + }, + "HlsClientCache": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "HlsCodecSpecification": { + "type": "string", + "enum": [ + "RFC_4281", + "RFC_6381" + ] + }, + "HlsDirectoryStructure": { + "type": "string", + "enum": [ + "SINGLE_DIRECTORY", + "SUBDIRECTORY_PER_STREAM" + ] + }, + "HlsEncryptionType": { + "type": "string", + "enum": [ + "AES128", + "SAMPLE_AES" + ] + }, + "HlsGroupSettings": { + "type": "structure", + "members": { + "AdMarkers": { + "shape": "ListOfHlsAdMarkers", + "locationName": "adMarkers" + }, + "BaseUrlContent": { + "shape": "__string", + "locationName": "baseUrlContent" + }, + "BaseUrlManifest": { + "shape": "__string", + "locationName": "baseUrlManifest" + }, + "CaptionLanguageMappings": { + "shape": "ListOfCaptionLanguageMapping", + "locationName": "captionLanguageMappings" + }, + "CaptionLanguageSetting": { + "shape": "HlsCaptionLanguageSetting", + "locationName": "captionLanguageSetting" + }, + "ClientCache": { + "shape": "HlsClientCache", + "locationName": "clientCache" + }, + "CodecSpecification": { + "shape": "HlsCodecSpecification", + "locationName": "codecSpecification" + }, + "ConstantIv": { + "shape": "__string", + "locationName": "constantIv" + }, + "Destination": { + "shape": "OutputLocationRef", + "locationName": "destination" + }, + "DirectoryStructure": { + "shape": "HlsDirectoryStructure", + "locationName": "directoryStructure" + }, + "EncryptionType": { + "shape": "HlsEncryptionType", + "locationName": "encryptionType" + }, + "HlsCdnSettings": { + "shape": "HlsCdnSettings", + "locationName": "hlsCdnSettings" + }, + "IndexNSegments": { + "shape": "__integer", + "locationName": "indexNSegments" + }, + "InputLossAction": { + "shape": "InputLossActionForHlsOut", + "locationName": "inputLossAction" + }, + "IvInManifest": { + "shape": "HlsIvInManifest", + "locationName": "ivInManifest" + }, + "IvSource": { + "shape": "HlsIvSource", + "locationName": "ivSource" + }, + "KeepSegments": { + "shape": "__integer", + "locationName": "keepSegments" + }, + "KeyFormat": { + "shape": "__string", + "locationName": "keyFormat" + }, + "KeyFormatVersions": { + "shape": "__string", + "locationName": "keyFormatVersions" + }, + "KeyProviderSettings": { + "shape": "KeyProviderSettings", + "locationName": "keyProviderSettings" + }, + "ManifestCompression": { + "shape": "HlsManifestCompression", + "locationName": "manifestCompression" + }, + "ManifestDurationFormat": { + "shape": "HlsManifestDurationFormat", + "locationName": "manifestDurationFormat" + }, + "MinSegmentLength": { + "shape": "__integer", + "locationName": "minSegmentLength" + }, + "Mode": { + "shape": "HlsMode", + "locationName": "mode" + }, + "OutputSelection": { + "shape": "HlsOutputSelection", + "locationName": "outputSelection" + }, + "ProgramDateTime": { + "shape": "HlsProgramDateTime", + "locationName": "programDateTime" + }, + "ProgramDateTimePeriod": { + "shape": "__integer", + "locationName": "programDateTimePeriod" + }, + "SegmentLength": { + "shape": "__integer", + "locationName": "segmentLength" + }, + "SegmentationMode": { + "shape": "HlsSegmentationMode", + "locationName": "segmentationMode" + }, + "SegmentsPerSubdirectory": { + "shape": "__integer", + "locationName": "segmentsPerSubdirectory" + }, + "StreamInfResolution": { + "shape": "HlsStreamInfResolution", + "locationName": "streamInfResolution" + }, + "TimedMetadataId3Frame": { + "shape": "HlsTimedMetadataId3Frame", + "locationName": "timedMetadataId3Frame" + }, + "TimedMetadataId3Period": { + "shape": "__integer", + "locationName": "timedMetadataId3Period" + }, + "TimestampDeltaMilliseconds": { + "shape": "__integer", + "locationName": "timestampDeltaMilliseconds" + }, + "TsFileMode": { + "shape": "HlsTsFileMode", + "locationName": "tsFileMode" + } + } + }, + "HlsInputSettings": { + "type": "structure", + "members": { + "Bandwidth": { + "shape": "__integer", + "locationName": "bandwidth" + }, + "BufferSegments": { + "shape": "__integer", + "locationName": "bufferSegments" + }, + "Retries": { + "shape": "__integer", + "locationName": "retries" + }, + "RetryInterval": { + "shape": "__integer", + "locationName": "retryInterval" + } + } + }, + "HlsIvInManifest": { + "type": "string", + "enum": [ + "EXCLUDE", + "INCLUDE" + ] + }, + "HlsIvSource": { + "type": "string", + "enum": [ + "EXPLICIT", + "FOLLOWS_SEGMENT_NUMBER" + ] + }, + "HlsManifestCompression": { + "type": "string", + "enum": [ + "GZIP", + "NONE" + ] + }, + "HlsManifestDurationFormat": { + "type": "string", + "enum": [ + "FLOATING_POINT", + "INTEGER" + ] + }, + "HlsMediaStoreSettings": { + "type": "structure", + "members": { + "ConnectionRetryInterval": { + "shape": "__integer", + "locationName": "connectionRetryInterval" + }, + "FilecacheDuration": { + "shape": "__integer", + "locationName": "filecacheDuration" + }, + "MediaStoreStorageClass": { + "shape": "HlsMediaStoreStorageClass", + "locationName": "mediaStoreStorageClass" + }, + "NumRetries": { + "shape": "__integer", + "locationName": "numRetries" + }, + "RestartDelay": { + "shape": "__integer", + "locationName": "restartDelay" + } + } + }, + "HlsMediaStoreStorageClass": { + "type": "string", + "enum": [ + "TEMPORAL" + ] + }, + "HlsMode": { + "type": "string", + "enum": [ + "LIVE", + "VOD" + ] + }, + "HlsOutputSelection": { + "type": "string", + "enum": [ + "MANIFESTS_AND_SEGMENTS", + "SEGMENTS_ONLY" + ] + }, + "HlsOutputSettings": { + "type": "structure", + "members": { + "HlsSettings": { + "shape": "HlsSettings", + "locationName": "hlsSettings" + }, + "NameModifier": { + "shape": "__string", + "locationName": "nameModifier" + }, + "SegmentModifier": { + "shape": "__string", + "locationName": "segmentModifier" + } + } + }, + "HlsProgramDateTime": { + "type": "string", + "enum": [ + "EXCLUDE", + "INCLUDE" + ] + }, + "HlsSegmentationMode": { + "type": "string", + "enum": [ + "USE_INPUT_SEGMENTATION", + "USE_SEGMENT_DURATION" + ] + }, + "HlsSettings": { + "type": "structure", + "members": { + "AudioOnlyHlsSettings": { + "shape": "AudioOnlyHlsSettings", + "locationName": "audioOnlyHlsSettings" + }, + "StandardHlsSettings": { + "shape": "StandardHlsSettings", + "locationName": "standardHlsSettings" + } + } + }, + "HlsStreamInfResolution": { + "type": "string", + "enum": [ + "EXCLUDE", + "INCLUDE" + ] + }, + "HlsTimedMetadataId3Frame": { + "type": "string", + "enum": [ + "NONE", + "PRIV", + "TDRL" + ] + }, + "HlsTsFileMode": { + "type": "string", + "enum": [ + "SEGMENTED_FILES", + "SINGLE_FILE" + ] + }, + "HlsWebdavHttpTransferMode": { + "type": "string", + "enum": [ + "CHUNKED", + "NON_CHUNKED" + ] + }, + "HlsWebdavSettings": { + "type": "structure", + "members": { + "ConnectionRetryInterval": { + "shape": "__integer", + "locationName": "connectionRetryInterval" + }, + "FilecacheDuration": { + "shape": "__integer", + "locationName": "filecacheDuration" + }, + "HttpTransferMode": { + "shape": "HlsWebdavHttpTransferMode", + "locationName": "httpTransferMode" + }, + "NumRetries": { + "shape": "__integer", + "locationName": "numRetries" + }, + "RestartDelay": { + "shape": "__integer", + "locationName": "restartDelay" + } + } + }, + "Input": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "AttachedChannels": { + "shape": "ListOf__string", + "locationName": "attachedChannels" + }, + "Destinations": { + "shape": "ListOfInputDestination", + "locationName": "destinations" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "SecurityGroups": { + "shape": "ListOf__string", + "locationName": "securityGroups" + }, + "Sources": { + "shape": "ListOfInputSource", + "locationName": "sources" + }, + "State": { + "shape": "InputState", + "locationName": "state" + }, + "Type": { + "shape": "InputType", + "locationName": "type" + } + } + }, + "InputAttachment": { + "type": "structure", + "members": { + "InputId": { + "shape": "__string", + "locationName": "inputId" + }, + "InputSettings": { + "shape": "InputSettings", + "locationName": "inputSettings" + } + } + }, + "InputChannelLevel": { + "type": "structure", + "members": { + "Gain": { + "shape": "__integer", + "locationName": "gain" + }, + "InputChannel": { + "shape": "__integer", + "locationName": "inputChannel" + } + } + }, + "InputDeblockFilter": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "InputDenoiseFilter": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "InputDestination": { + "type": "structure", + "members": { + "Ip": { + "shape": "__string", + "locationName": "ip" + }, + "Port": { + "shape": "__string", + "locationName": "port" + }, + "Url": { + "shape": "__string", + "locationName": "url" + } + } + }, + "InputDestinationRequest": { + "type": "structure", + "members": { + "StreamName": { + "shape": "__string", + "locationName": "streamName" + } + } + }, + "InputFilter": { + "type": "string", + "enum": [ + "AUTO", + "DISABLED", + "FORCED" + ] + }, + "InputLocation": { + "type": "structure", + "members": { + "PasswordParam": { + "shape": "__string", + "locationName": "passwordParam" + }, + "Uri": { + "shape": "__string", + "locationName": "uri" + }, + "Username": { + "shape": "__string", + "locationName": "username" + } + } + }, + "InputLossActionForHlsOut": { + "type": "string", + "enum": [ + "EMIT_OUTPUT", + "PAUSE_OUTPUT" + ] + }, + "InputLossActionForMsSmoothOut": { + "type": "string", + "enum": [ + "EMIT_OUTPUT", + "PAUSE_OUTPUT" + ] + }, + "InputLossActionForUdpOut": { + "type": "string", + "enum": [ + "DROP_PROGRAM", + "DROP_TS", + "EMIT_PROGRAM" + ] + }, + "InputLossBehavior": { + "type": "structure", + "members": { + "BlackFrameMsec": { + "shape": "__integer", + "locationName": "blackFrameMsec" + }, + "InputLossImageColor": { + "shape": "__string", + "locationName": "inputLossImageColor" + }, + "InputLossImageSlate": { + "shape": "InputLocation", + "locationName": "inputLossImageSlate" + }, + "InputLossImageType": { + "shape": "InputLossImageType", + "locationName": "inputLossImageType" + }, + "RepeatFrameMsec": { + "shape": "__integer", + "locationName": "repeatFrameMsec" + } + } + }, + "InputLossImageType": { + "type": "string", + "enum": [ + "COLOR", + "SLATE" + ] + }, + "InputSecurityGroup": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "WhitelistRules": { + "shape": "ListOfInputWhitelistRule", + "locationName": "whitelistRules" + } + } + }, + "InputSecurityGroupWhitelistRequest": { + "type": "structure", + "members": { + "WhitelistRules": { + "shape": "ListOfInputWhitelistRuleCidr", + "locationName": "whitelistRules" + } + } + }, + "InputSettings": { + "type": "structure", + "members": { + "AudioSelectors": { + "shape": "ListOfAudioSelector", + "locationName": "audioSelectors" + }, + "CaptionSelectors": { + "shape": "ListOfCaptionSelector", + "locationName": "captionSelectors" + }, + "DeblockFilter": { + "shape": "InputDeblockFilter", + "locationName": "deblockFilter" + }, + "DenoiseFilter": { + "shape": "InputDenoiseFilter", + "locationName": "denoiseFilter" + }, + "FilterStrength": { + "shape": "__integer", + "locationName": "filterStrength" + }, + "InputFilter": { + "shape": "InputFilter", + "locationName": "inputFilter" + }, + "NetworkInputSettings": { + "shape": "NetworkInputSettings", + "locationName": "networkInputSettings" + }, + "SourceEndBehavior": { + "shape": "InputSourceEndBehavior", + "locationName": "sourceEndBehavior" + }, + "VideoSelector": { + "shape": "VideoSelector", + "locationName": "videoSelector" + } + } + }, + "InputSource": { + "type": "structure", + "members": { + "PasswordParam": { + "shape": "__string", + "locationName": "passwordParam" + }, + "Url": { + "shape": "__string", + "locationName": "url" + }, + "Username": { + "shape": "__string", + "locationName": "username" + } + } + }, + "InputSourceEndBehavior": { + "type": "string", + "enum": [ + "CONTINUE", + "LOOP" + ] + }, + "InputSourceRequest": { + "type": "structure", + "members": { + "PasswordParam": { + "shape": "__string", + "locationName": "passwordParam" + }, + "Url": { + "shape": "__string", + "locationName": "url" + }, + "Username": { + "shape": "__string", + "locationName": "username" + } + } + }, + "InputState": { + "type": "string", + "enum": [ + "CREATING", + "DETACHED", + "ATTACHED", + "DELETING", + "DELETED" + ] + }, + "InputType": { + "type": "string", + "enum": [ + "UDP_PUSH", + "RTP_PUSH", + "RTMP_PUSH", + "RTMP_PULL", + "URL_PULL" + ] + }, + "InputWhitelistRule": { + "type": "structure", + "members": { + "Cidr": { + "shape": "__string", + "locationName": "cidr" + } + } + }, + "InputWhitelistRuleCidr": { + "type": "structure", + "members": { + "Cidr": { + "shape": "__string", + "locationName": "cidr" + } + } + }, + "InternalServerErrorException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 500 + } + }, + "InternalServiceError": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + } + }, + "InvalidRequest": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + } + }, + "KeyProviderSettings": { + "type": "structure", + "members": { + "StaticKeySettings": { + "shape": "StaticKeySettings", + "locationName": "staticKeySettings" + } + } + }, + "LimitExceeded": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + } + }, + "ListChannelsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "ListChannelsResponse": { + "type": "structure", + "members": { + "Channels": { + "shape": "ListOfChannelSummary", + "locationName": "channels" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListChannelsResultModel": { + "type": "structure", + "members": { + "Channels": { + "shape": "ListOfChannelSummary", + "locationName": "channels" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListInputSecurityGroupsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "ListInputSecurityGroupsResponse": { + "type": "structure", + "members": { + "InputSecurityGroups": { + "shape": "ListOfInputSecurityGroup", + "locationName": "inputSecurityGroups" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListInputSecurityGroupsResultModel": { + "type": "structure", + "members": { + "InputSecurityGroups": { + "shape": "ListOfInputSecurityGroup", + "locationName": "inputSecurityGroups" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListInputsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "ListInputsResponse": { + "type": "structure", + "members": { + "Inputs": { + "shape": "ListOfInput", + "locationName": "inputs" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListInputsResultModel": { + "type": "structure", + "members": { + "Inputs": { + "shape": "ListOfInput", + "locationName": "inputs" + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + } + } + }, + "ListOfAudioChannelMapping": { + "type": "list", + "member": { + "shape": "AudioChannelMapping" + } + }, + "ListOfAudioDescription": { + "type": "list", + "member": { + "shape": "AudioDescription" + } + }, + "ListOfAudioSelector": { + "type": "list", + "member": { + "shape": "AudioSelector" + } + }, + "ListOfCaptionDescription": { + "type": "list", + "member": { + "shape": "CaptionDescription" + } + }, + "ListOfCaptionLanguageMapping": { + "type": "list", + "member": { + "shape": "CaptionLanguageMapping" + } + }, + "ListOfCaptionSelector": { + "type": "list", + "member": { + "shape": "CaptionSelector" + } + }, + "ListOfChannelEgressEndpoint": { + "type": "list", + "member": { + "shape": "ChannelEgressEndpoint" + } + }, + "ListOfChannelSummary": { + "type": "list", + "member": { + "shape": "ChannelSummary" + } + }, + "ListOfHlsAdMarkers": { + "type": "list", + "member": { + "shape": "HlsAdMarkers" + } + }, + "ListOfInput": { + "type": "list", + "member": { + "shape": "Input" + } + }, + "ListOfInputAttachment": { + "type": "list", + "member": { + "shape": "InputAttachment" + } + }, + "ListOfInputChannelLevel": { + "type": "list", + "member": { + "shape": "InputChannelLevel" + } + }, + "ListOfInputDestination": { + "type": "list", + "member": { + "shape": "InputDestination" + } + }, + "ListOfInputDestinationRequest": { + "type": "list", + "member": { + "shape": "InputDestinationRequest" + } + }, + "ListOfInputSecurityGroup": { + "type": "list", + "member": { + "shape": "InputSecurityGroup" + } + }, + "ListOfInputSource": { + "type": "list", + "member": { + "shape": "InputSource" + } + }, + "ListOfInputSourceRequest": { + "type": "list", + "member": { + "shape": "InputSourceRequest" + } + }, + "ListOfInputWhitelistRule": { + "type": "list", + "member": { + "shape": "InputWhitelistRule" + } + }, + "ListOfInputWhitelistRuleCidr": { + "type": "list", + "member": { + "shape": "InputWhitelistRuleCidr" + } + }, + "ListOfOutput": { + "type": "list", + "member": { + "shape": "Output" + } + }, + "ListOfOutputDestination": { + "type": "list", + "member": { + "shape": "OutputDestination" + } + }, + "ListOfOutputDestinationSettings": { + "type": "list", + "member": { + "shape": "OutputDestinationSettings" + } + }, + "ListOfOutputGroup": { + "type": "list", + "member": { + "shape": "OutputGroup" + } + }, + "ListOfValidationError": { + "type": "list", + "member": { + "shape": "ValidationError" + } + }, + "ListOfVideoDescription": { + "type": "list", + "member": { + "shape": "VideoDescription" + } + }, + "ListOf__string": { + "type": "list", + "member": { + "shape": "__string" + } + }, + "M2tsAbsentInputAudioBehavior": { + "type": "string", + "enum": [ + "DROP", + "ENCODE_SILENCE" + ] + }, + "M2tsArib": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "M2tsAribCaptionsPidControl": { + "type": "string", + "enum": [ + "AUTO", + "USE_CONFIGURED" + ] + }, + "M2tsAudioBufferModel": { + "type": "string", + "enum": [ + "ATSC", + "DVB" + ] + }, + "M2tsAudioInterval": { + "type": "string", + "enum": [ + "VIDEO_AND_FIXED_INTERVALS", + "VIDEO_INTERVAL" + ] + }, + "M2tsAudioStreamType": { + "type": "string", + "enum": [ + "ATSC", + "DVB" + ] + }, + "M2tsBufferModel": { + "type": "string", + "enum": [ + "MULTIPLEX", + "NONE" + ] + }, + "M2tsCcDescriptor": { + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "M2tsEbifControl": { + "type": "string", + "enum": [ + "NONE", + "PASSTHROUGH" + ] + }, + "M2tsEbpPlacement": { + "type": "string", + "enum": [ + "VIDEO_AND_AUDIO_PIDS", + "VIDEO_PID" + ] + }, + "M2tsEsRateInPes": { + "type": "string", + "enum": [ + "EXCLUDE", + "INCLUDE" + ] + }, + "M2tsKlv": { + "type": "string", + "enum": [ + "NONE", + "PASSTHROUGH" + ] + }, + "M2tsPcrControl": { + "type": "string", + "enum": [ + "CONFIGURED_PCR_PERIOD", + "PCR_EVERY_PES_PACKET" + ] + }, + "M2tsRateMode": { + "type": "string", + "enum": [ + "CBR", + "VBR" + ] + }, + "M2tsScte35Control": { + "type": "string", + "enum": [ + "NONE", + "PASSTHROUGH" + ] + }, + "M2tsSegmentationMarkers": { + "type": "string", + "enum": [ + "EBP", + "EBP_LEGACY", + "NONE", + "PSI_SEGSTART", + "RAI_ADAPT", + "RAI_SEGSTART" + ] + }, + "M2tsSegmentationStyle": { + "type": "string", + "enum": [ + "MAINTAIN_CADENCE", + "RESET_CADENCE" + ] + }, + "M2tsSettings": { + "type": "structure", + "members": { + "AbsentInputAudioBehavior": { + "shape": "M2tsAbsentInputAudioBehavior", + "locationName": "absentInputAudioBehavior" + }, + "Arib": { + "shape": "M2tsArib", + "locationName": "arib" + }, + "AribCaptionsPid": { + "shape": "__string", + "locationName": "aribCaptionsPid" + }, + "AribCaptionsPidControl": { + "shape": "M2tsAribCaptionsPidControl", + "locationName": "aribCaptionsPidControl" + }, + "AudioBufferModel": { + "shape": "M2tsAudioBufferModel", + "locationName": "audioBufferModel" + }, + "AudioFramesPerPes": { + "shape": "__integer", + "locationName": "audioFramesPerPes" + }, + "AudioPids": { + "shape": "__string", + "locationName": "audioPids" + }, + "AudioStreamType": { + "shape": "M2tsAudioStreamType", + "locationName": "audioStreamType" + }, + "Bitrate": { + "shape": "__integer", + "locationName": "bitrate" + }, + "BufferModel": { + "shape": "M2tsBufferModel", + "locationName": "bufferModel" + }, + "CcDescriptor": { + "shape": "M2tsCcDescriptor", + "locationName": "ccDescriptor" + }, + "DvbNitSettings": { + "shape": "DvbNitSettings", + "locationName": "dvbNitSettings" + }, + "DvbSdtSettings": { + "shape": "DvbSdtSettings", + "locationName": "dvbSdtSettings" + }, + "DvbSubPids": { + "shape": "__string", + "locationName": "dvbSubPids" + }, + "DvbTdtSettings": { + "shape": "DvbTdtSettings", + "locationName": "dvbTdtSettings" + }, + "DvbTeletextPid": { + "shape": "__string", + "locationName": "dvbTeletextPid" + }, + "Ebif": { + "shape": "M2tsEbifControl", + "locationName": "ebif" + }, + "EbpAudioInterval": { + "shape": "M2tsAudioInterval", + "locationName": "ebpAudioInterval" + }, + "EbpLookaheadMs": { + "shape": "__integer", + "locationName": "ebpLookaheadMs" + }, + "EbpPlacement": { + "shape": "M2tsEbpPlacement", + "locationName": "ebpPlacement" + }, + "EcmPid": { + "shape": "__string", + "locationName": "ecmPid" + }, + "EsRateInPes": { + "shape": "M2tsEsRateInPes", + "locationName": "esRateInPes" + }, + "EtvPlatformPid": { + "shape": "__string", + "locationName": "etvPlatformPid" + }, + "EtvSignalPid": { + "shape": "__string", + "locationName": "etvSignalPid" + }, + "FragmentTime": { + "shape": "__double", + "locationName": "fragmentTime" + }, + "Klv": { + "shape": "M2tsKlv", + "locationName": "klv" + }, + "KlvDataPids": { + "shape": "__string", + "locationName": "klvDataPids" + }, + "NullPacketBitrate": { + "shape": "__double", + "locationName": "nullPacketBitrate" + }, + "PatInterval": { + "shape": "__integer", + "locationName": "patInterval" + }, + "PcrControl": { + "shape": "M2tsPcrControl", + "locationName": "pcrControl" + }, + "PcrPeriod": { + "shape": "__integer", + "locationName": "pcrPeriod" + }, + "PcrPid": { + "shape": "__string", + "locationName": "pcrPid" + }, + "PmtInterval": { + "shape": "__integer", + "locationName": "pmtInterval" + }, + "PmtPid": { + "shape": "__string", + "locationName": "pmtPid" + }, + "ProgramNum": { + "shape": "__integer", + "locationName": "programNum" + }, + "RateMode": { + "shape": "M2tsRateMode", + "locationName": "rateMode" + }, + "Scte27Pids": { + "shape": "__string", + "locationName": "scte27Pids" + }, + "Scte35Control": { + "shape": "M2tsScte35Control", + "locationName": "scte35Control" + }, + "Scte35Pid": { + "shape": "__string", + "locationName": "scte35Pid" + }, + "SegmentationMarkers": { + "shape": "M2tsSegmentationMarkers", + "locationName": "segmentationMarkers" + }, + "SegmentationStyle": { + "shape": "M2tsSegmentationStyle", + "locationName": "segmentationStyle" + }, + "SegmentationTime": { + "shape": "__double", + "locationName": "segmentationTime" + }, + "TimedMetadataBehavior": { + "shape": "M2tsTimedMetadataBehavior", + "locationName": "timedMetadataBehavior" + }, + "TimedMetadataPid": { + "shape": "__string", + "locationName": "timedMetadataPid" + }, + "TransportStreamId": { + "shape": "__integer", + "locationName": "transportStreamId" + }, + "VideoPid": { + "shape": "__string", + "locationName": "videoPid" + } + } + }, + "M2tsTimedMetadataBehavior": { + "type": "string", + "enum": [ + "NO_PASSTHROUGH", + "PASSTHROUGH" + ] + }, + "M3u8PcrControl": { + "type": "string", + "enum": [ + "CONFIGURED_PCR_PERIOD", + "PCR_EVERY_PES_PACKET" + ] + }, + "M3u8Scte35Behavior": { + "type": "string", + "enum": [ + "NO_PASSTHROUGH", + "PASSTHROUGH" + ] + }, + "M3u8Settings": { + "type": "structure", + "members": { + "AudioFramesPerPes": { + "shape": "__integer", + "locationName": "audioFramesPerPes" + }, + "AudioPids": { + "shape": "__string", + "locationName": "audioPids" + }, + "EcmPid": { + "shape": "__string", + "locationName": "ecmPid" + }, + "PatInterval": { + "shape": "__integer", + "locationName": "patInterval" + }, + "PcrControl": { + "shape": "M3u8PcrControl", + "locationName": "pcrControl" + }, + "PcrPeriod": { + "shape": "__integer", + "locationName": "pcrPeriod" + }, + "PcrPid": { + "shape": "__string", + "locationName": "pcrPid" + }, + "PmtInterval": { + "shape": "__integer", + "locationName": "pmtInterval" + }, + "PmtPid": { + "shape": "__string", + "locationName": "pmtPid" + }, + "ProgramNum": { + "shape": "__integer", + "locationName": "programNum" + }, + "Scte35Behavior": { + "shape": "M3u8Scte35Behavior", + "locationName": "scte35Behavior" + }, + "Scte35Pid": { + "shape": "__string", + "locationName": "scte35Pid" + }, + "TimedMetadataBehavior": { + "shape": "M3u8TimedMetadataBehavior", + "locationName": "timedMetadataBehavior" + }, + "TransportStreamId": { + "shape": "__integer", + "locationName": "transportStreamId" + }, + "VideoPid": { + "shape": "__string", + "locationName": "videoPid" + } + } + }, + "M3u8TimedMetadataBehavior": { + "type": "string", + "enum": [ + "NO_PASSTHROUGH", + "PASSTHROUGH" + ] + }, + "MaxResults": { + "type": "integer", + "min": 1, + "max": 1000 + }, + "Mp2CodingMode": { + "type": "string", + "enum": [ + "CODING_MODE_1_0", + "CODING_MODE_2_0" + ] + }, + "Mp2Settings": { + "type": "structure", + "members": { + "Bitrate": { + "shape": "__double", + "locationName": "bitrate" + }, + "CodingMode": { + "shape": "Mp2CodingMode", + "locationName": "codingMode" + }, + "SampleRate": { + "shape": "__double", + "locationName": "sampleRate" + } + } + }, + "MsSmoothGroupSettings": { + "type": "structure", + "members": { + "AcquisitionPointId": { + "shape": "__string", + "locationName": "acquisitionPointId" + }, + "AudioOnlyTimecodeControl": { + "shape": "SmoothGroupAudioOnlyTimecodeControl", + "locationName": "audioOnlyTimecodeControl" + }, + "CertificateMode": { + "shape": "SmoothGroupCertificateMode", + "locationName": "certificateMode" + }, + "ConnectionRetryInterval": { + "shape": "__integer", + "locationName": "connectionRetryInterval" + }, + "Destination": { + "shape": "OutputLocationRef", + "locationName": "destination" + }, + "EventId": { + "shape": "__string", + "locationName": "eventId" + }, + "EventIdMode": { + "shape": "SmoothGroupEventIdMode", + "locationName": "eventIdMode" + }, + "EventStopBehavior": { + "shape": "SmoothGroupEventStopBehavior", + "locationName": "eventStopBehavior" + }, + "FilecacheDuration": { + "shape": "__integer", + "locationName": "filecacheDuration" + }, + "FragmentLength": { + "shape": "__integer", + "locationName": "fragmentLength" + }, + "InputLossAction": { + "shape": "InputLossActionForMsSmoothOut", + "locationName": "inputLossAction" + }, + "NumRetries": { + "shape": "__integer", + "locationName": "numRetries" + }, + "RestartDelay": { + "shape": "__integer", + "locationName": "restartDelay" + }, + "SegmentationMode": { + "shape": "SmoothGroupSegmentationMode", + "locationName": "segmentationMode" + }, + "SendDelayMs": { + "shape": "__integer", + "locationName": "sendDelayMs" + }, + "SparseTrackType": { + "shape": "SmoothGroupSparseTrackType", + "locationName": "sparseTrackType" + }, + "StreamManifestBehavior": { + "shape": "SmoothGroupStreamManifestBehavior", + "locationName": "streamManifestBehavior" + }, + "TimestampOffset": { + "shape": "__string", + "locationName": "timestampOffset" + }, + "TimestampOffsetMode": { + "shape": "SmoothGroupTimestampOffsetMode", + "locationName": "timestampOffsetMode" + } + } + }, + "MsSmoothOutputSettings": { + "type": "structure", + "members": { + "NameModifier": { + "shape": "__string", + "locationName": "nameModifier" + } + } + }, + "NetworkInputServerValidation": { + "type": "string", + "enum": [ + "CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME", + "CHECK_CRYPTOGRAPHY_ONLY" + ] + }, + "NetworkInputSettings": { + "type": "structure", + "members": { + "HlsInputSettings": { + "shape": "HlsInputSettings", + "locationName": "hlsInputSettings" + }, + "ServerValidation": { + "shape": "NetworkInputServerValidation", + "locationName": "serverValidation" + } + } + }, + "NotFoundException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 404 + } + }, + "Output": { + "type": "structure", + "members": { + "AudioDescriptionNames": { + "shape": "ListOf__string", + "locationName": "audioDescriptionNames" + }, + "CaptionDescriptionNames": { + "shape": "ListOf__string", + "locationName": "captionDescriptionNames" + }, + "OutputName": { + "shape": "__string", + "locationName": "outputName" + }, + "OutputSettings": { + "shape": "OutputSettings", + "locationName": "outputSettings" + }, + "VideoDescriptionName": { + "shape": "__string", + "locationName": "videoDescriptionName" + } + } + }, + "OutputDestination": { + "type": "structure", + "members": { + "Id": { + "shape": "__string", + "locationName": "id" + }, + "Settings": { + "shape": "ListOfOutputDestinationSettings", + "locationName": "settings" + } + } + }, + "OutputDestinationSettings": { + "type": "structure", + "members": { + "PasswordParam": { + "shape": "__string", + "locationName": "passwordParam" + }, + "Url": { + "shape": "__string", + "locationName": "url" + }, + "Username": { + "shape": "__string", + "locationName": "username" + } + } + }, + "OutputGroup": { + "type": "structure", + "members": { + "Name": { + "shape": "__string", + "locationName": "name" + }, + "OutputGroupSettings": { + "shape": "OutputGroupSettings", + "locationName": "outputGroupSettings" + }, + "Outputs": { + "shape": "ListOfOutput", + "locationName": "outputs" + } + } + }, + "OutputGroupSettings": { + "type": "structure", + "members": { + "ArchiveGroupSettings": { + "shape": "ArchiveGroupSettings", + "locationName": "archiveGroupSettings" + }, + "HlsGroupSettings": { + "shape": "HlsGroupSettings", + "locationName": "hlsGroupSettings" + }, + "MsSmoothGroupSettings": { + "shape": "MsSmoothGroupSettings", + "locationName": "msSmoothGroupSettings" + }, + "UdpGroupSettings": { + "shape": "UdpGroupSettings", + "locationName": "udpGroupSettings" + } + } + }, + "OutputLocationRef": { + "type": "structure", + "members": { + "DestinationRefId": { + "shape": "__string", + "locationName": "destinationRefId" + } + } + }, + "OutputSettings": { + "type": "structure", + "members": { + "ArchiveOutputSettings": { + "shape": "ArchiveOutputSettings", + "locationName": "archiveOutputSettings" + }, + "HlsOutputSettings": { + "shape": "HlsOutputSettings", + "locationName": "hlsOutputSettings" + }, + "MsSmoothOutputSettings": { + "shape": "MsSmoothOutputSettings", + "locationName": "msSmoothOutputSettings" + }, + "UdpOutputSettings": { + "shape": "UdpOutputSettings", + "locationName": "udpOutputSettings" + } + } + }, + "PassThroughSettings": { + "type": "structure", + "members": { + } + }, + "RemixSettings": { + "type": "structure", + "members": { + "ChannelMappings": { + "shape": "ListOfAudioChannelMapping", + "locationName": "channelMappings" + }, + "ChannelsIn": { + "shape": "__integer", + "locationName": "channelsIn" + }, + "ChannelsOut": { + "shape": "__integer", + "locationName": "channelsOut" + } + } + }, + "ResourceConflict": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + } + }, + "ResourceNotFound": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + } + }, + "Scte20Convert608To708": { + "type": "string", + "enum": [ + "DISABLED", + "UPCONVERT" + ] + }, + "Scte20PlusEmbeddedDestinationSettings": { + "type": "structure", + "members": { + } + }, + "Scte20SourceSettings": { + "type": "structure", + "members": { + "Convert608To708": { + "shape": "Scte20Convert608To708", + "locationName": "convert608To708" + }, + "Source608ChannelNumber": { + "shape": "__integer", + "locationName": "source608ChannelNumber" + } + } + }, + "Scte27DestinationSettings": { + "type": "structure", + "members": { + } + }, + "Scte27SourceSettings": { + "type": "structure", + "members": { + "Pid": { + "shape": "__integer", + "locationName": "pid" + } + } + }, + "Scte35AposNoRegionalBlackoutBehavior": { + "type": "string", + "enum": [ + "FOLLOW", + "IGNORE" + ] + }, + "Scte35AposWebDeliveryAllowedBehavior": { + "type": "string", + "enum": [ + "FOLLOW", + "IGNORE" + ] + }, + "Scte35SpliceInsert": { + "type": "structure", + "members": { + "AdAvailOffset": { + "shape": "__integer", + "locationName": "adAvailOffset" + }, + "NoRegionalBlackoutFlag": { + "shape": "Scte35SpliceInsertNoRegionalBlackoutBehavior", + "locationName": "noRegionalBlackoutFlag" + }, + "WebDeliveryAllowedFlag": { + "shape": "Scte35SpliceInsertWebDeliveryAllowedBehavior", + "locationName": "webDeliveryAllowedFlag" + } + } + }, + "Scte35SpliceInsertNoRegionalBlackoutBehavior": { + "type": "string", + "enum": [ + "FOLLOW", + "IGNORE" + ] + }, + "Scte35SpliceInsertWebDeliveryAllowedBehavior": { + "type": "string", + "enum": [ + "FOLLOW", + "IGNORE" + ] + }, + "Scte35TimeSignalApos": { + "type": "structure", + "members": { + "AdAvailOffset": { + "shape": "__integer", + "locationName": "adAvailOffset" + }, + "NoRegionalBlackoutFlag": { + "shape": "Scte35AposNoRegionalBlackoutBehavior", + "locationName": "noRegionalBlackoutFlag" + }, + "WebDeliveryAllowedFlag": { + "shape": "Scte35AposWebDeliveryAllowedBehavior", + "locationName": "webDeliveryAllowedFlag" + } + } + }, + "SmoothGroupAudioOnlyTimecodeControl": { + "type": "string", + "enum": [ + "PASSTHROUGH", + "USE_CONFIGURED_CLOCK" + ] + }, + "SmoothGroupCertificateMode": { + "type": "string", + "enum": [ + "SELF_SIGNED", + "VERIFY_AUTHENTICITY" + ] + }, + "SmoothGroupEventIdMode": { + "type": "string", + "enum": [ + "NO_EVENT_ID", + "USE_CONFIGURED", + "USE_TIMESTAMP" + ] + }, + "SmoothGroupEventStopBehavior": { + "type": "string", + "enum": [ + "NONE", + "SEND_EOS" + ] + }, + "SmoothGroupSegmentationMode": { + "type": "string", + "enum": [ + "USE_INPUT_SEGMENTATION", + "USE_SEGMENT_DURATION" + ] + }, + "SmoothGroupSparseTrackType": { + "type": "string", + "enum": [ + "NONE", + "SCTE_35" + ] + }, + "SmoothGroupStreamManifestBehavior": { + "type": "string", + "enum": [ + "DO_NOT_SEND", + "SEND" + ] + }, + "SmoothGroupTimestampOffsetMode": { + "type": "string", + "enum": [ + "USE_CONFIGURED_OFFSET", + "USE_EVENT_START_DATE" + ] + }, + "SmpteTtDestinationSettings": { + "type": "structure", + "members": { + } + }, + "StandardHlsSettings": { + "type": "structure", + "members": { + "AudioRenditionSets": { + "shape": "__string", + "locationName": "audioRenditionSets" + }, + "M3u8Settings": { + "shape": "M3u8Settings", + "locationName": "m3u8Settings" + } + } + }, + "StartChannelRequest": { + "type": "structure", + "members": { + "ChannelId": { + "shape": "__string", + "location": "uri", + "locationName": "channelId" + } + }, + "required": [ + "ChannelId" + ] + }, + "StartChannelResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "Destinations": { + "shape": "ListOfOutputDestination", + "locationName": "destinations" + }, + "EgressEndpoints": { + "shape": "ListOfChannelEgressEndpoint", + "locationName": "egressEndpoints" + }, + "EncoderSettings": { + "shape": "EncoderSettings", + "locationName": "encoderSettings" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "InputAttachments": { + "shape": "ListOfInputAttachment", + "locationName": "inputAttachments" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "RoleArn": { + "shape": "__string", + "locationName": "roleArn" + }, + "State": { + "shape": "ChannelState", + "locationName": "state" + } + } + }, + "StaticKeySettings": { + "type": "structure", + "members": { + "KeyProviderServer": { + "shape": "InputLocation", + "locationName": "keyProviderServer" + }, + "StaticKeyValue": { + "shape": "__string", + "locationName": "staticKeyValue" + } + } + }, + "StopChannelRequest": { + "type": "structure", + "members": { + "ChannelId": { + "shape": "__string", + "location": "uri", + "locationName": "channelId" + } + }, + "required": [ + "ChannelId" + ] + }, + "StopChannelResponse": { + "type": "structure", + "members": { + "Arn": { + "shape": "__string", + "locationName": "arn" + }, + "Destinations": { + "shape": "ListOfOutputDestination", + "locationName": "destinations" + }, + "EgressEndpoints": { + "shape": "ListOfChannelEgressEndpoint", + "locationName": "egressEndpoints" + }, + "EncoderSettings": { + "shape": "EncoderSettings", + "locationName": "encoderSettings" + }, + "Id": { + "shape": "__string", + "locationName": "id" + }, + "InputAttachments": { + "shape": "ListOfInputAttachment", + "locationName": "inputAttachments" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "PipelinesRunningCount": { + "shape": "__integer", + "locationName": "pipelinesRunningCount" + }, + "RoleArn": { + "shape": "__string", + "locationName": "roleArn" + }, + "State": { + "shape": "ChannelState", + "locationName": "state" + } + } + }, + "TeletextDestinationSettings": { + "type": "structure", + "members": { + } + }, + "TeletextSourceSettings": { + "type": "structure", + "members": { + "PageNumber": { + "shape": "__string", + "locationName": "pageNumber" + } + } + }, + "TimecodeConfig": { + "type": "structure", + "members": { + "Source": { + "shape": "TimecodeConfigSource", + "locationName": "source" + }, + "SyncThreshold": { + "shape": "__integer", + "locationName": "syncThreshold" + } + } + }, + "TimecodeConfigSource": { + "type": "string", + "enum": [ + "EMBEDDED", + "SYSTEMCLOCK", + "ZEROBASED" + ] + }, + "TooManyRequestsException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + } + }, + "exception": true, + "error": { + "httpStatusCode": 429 + } + }, + "TtmlDestinationSettings": { + "type": "structure", + "members": { + "StyleControl": { + "shape": "TtmlDestinationStyleControl", + "locationName": "styleControl" + } + } + }, + "TtmlDestinationStyleControl": { + "type": "string", + "enum": [ + "PASSTHROUGH", + "USE_CONFIGURED" + ] + }, + "UdpContainerSettings": { + "type": "structure", + "members": { + "M2tsSettings": { + "shape": "M2tsSettings", + "locationName": "m2tsSettings" + } + } + }, + "UdpGroupSettings": { + "type": "structure", + "members": { + "InputLossAction": { + "shape": "InputLossActionForUdpOut", + "locationName": "inputLossAction" + }, + "TimedMetadataId3Frame": { + "shape": "UdpTimedMetadataId3Frame", + "locationName": "timedMetadataId3Frame" + }, + "TimedMetadataId3Period": { + "shape": "__integer", + "locationName": "timedMetadataId3Period" + } + } + }, + "UdpOutputSettings": { + "type": "structure", + "members": { + "BufferMsec": { + "shape": "__integer", + "locationName": "bufferMsec" + }, + "ContainerSettings": { + "shape": "UdpContainerSettings", + "locationName": "containerSettings" + }, + "Destination": { + "shape": "OutputLocationRef", + "locationName": "destination" + }, + "FecOutputSettings": { + "shape": "FecOutputSettings", + "locationName": "fecOutputSettings" + } + } + }, + "UdpTimedMetadataId3Frame": { + "type": "string", + "enum": [ + "NONE", + "PRIV", + "TDRL" + ] + }, + "UnprocessableEntityException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message" + }, + "ValidationErrors": { + "shape": "ListOfValidationError", + "locationName": "validationErrors" + } + }, + "exception": true, + "error": { + "httpStatusCode": 422 + } + }, + "ValidationError": { + "type": "structure", + "members": { + "ElementPath": { + "shape": "__string", + "locationName": "elementPath" + }, + "ErrorMessage": { + "shape": "__string", + "locationName": "errorMessage" + } + } + }, + "VideoCodecSettings": { + "type": "structure", + "members": { + "H264Settings": { + "shape": "H264Settings", + "locationName": "h264Settings" + } + } + }, + "VideoDescription": { + "type": "structure", + "members": { + "CodecSettings": { + "shape": "VideoCodecSettings", + "locationName": "codecSettings" + }, + "Height": { + "shape": "__integer", + "locationName": "height" + }, + "Name": { + "shape": "__string", + "locationName": "name" + }, + "RespondToAfd": { + "shape": "VideoDescriptionRespondToAfd", + "locationName": "respondToAfd" + }, + "ScalingBehavior": { + "shape": "VideoDescriptionScalingBehavior", + "locationName": "scalingBehavior" + }, + "Sharpness": { + "shape": "__integer", + "locationName": "sharpness" + }, + "Width": { + "shape": "__integer", + "locationName": "width" + } + } + }, + "VideoDescriptionRespondToAfd": { + "type": "string", + "enum": [ + "NONE", + "PASSTHROUGH", + "RESPOND" + ] + }, + "VideoDescriptionScalingBehavior": { + "type": "string", + "enum": [ + "DEFAULT", + "STRETCH_TO_OUTPUT" + ] + }, + "VideoSelector": { + "type": "structure", + "members": { + "ColorSpace": { + "shape": "VideoSelectorColorSpace", + "locationName": "colorSpace" + }, + "ColorSpaceUsage": { + "shape": "VideoSelectorColorSpaceUsage", + "locationName": "colorSpaceUsage" + }, + "SelectorSettings": { + "shape": "VideoSelectorSettings", + "locationName": "selectorSettings" + } + } + }, + "VideoSelectorColorSpace": { + "type": "string", + "enum": [ + "FOLLOW", + "REC_601", + "REC_709" + ] + }, + "VideoSelectorColorSpaceUsage": { + "type": "string", + "enum": [ + "FALLBACK", + "FORCE" + ] + }, + "VideoSelectorPid": { + "type": "structure", + "members": { + "Pid": { + "shape": "__integer", + "locationName": "pid" + } + } + }, + "VideoSelectorProgramId": { + "type": "structure", + "members": { + "ProgramId": { + "shape": "__integer", + "locationName": "programId" + } + } + }, + "VideoSelectorSettings": { + "type": "structure", + "members": { + "VideoSelectorPid": { + "shape": "VideoSelectorPid", + "locationName": "videoSelectorPid" + }, + "VideoSelectorProgramId": { + "shape": "VideoSelectorProgramId", + "locationName": "videoSelectorProgramId" + } + } + }, + "WebvttDestinationSettings": { + "type": "structure", + "members": { + } + }, + "__boolean": { + "type": "boolean" + }, + "__double": { + "type": "double" + }, + "__integer": { + "type": "integer" + }, + "__string": { + "type": "string" + }, + "__timestamp": { + "type": "timestamp" + } + } +} diff --git a/models/apis/medialive/2017-10-14/docs-2.json b/models/apis/medialive/2017-10-14/docs-2.json new file mode 100644 index 00000000000..ac15008c7c2 --- /dev/null +++ b/models/apis/medialive/2017-10-14/docs-2.json @@ -0,0 +1,2106 @@ +{ + "version": "2.0", + "service": "API for AWS Elemental MediaLive", + "operations": { + "CreateChannel": "Creates a new channel", + "CreateInput": "Create an input", + "CreateInputSecurityGroup": "Creates a Input Security Group", + "DeleteChannel": "Starts deletion of channel. The associated outputs are also deleted.", + "DeleteInput": "Deletes the input end point", + "DeleteInputSecurityGroup": "Deletes an Input Security Group", + "DescribeChannel": "Gets details about a channel", + "DescribeInput": "Produces details about an input", + "DescribeInputSecurityGroup": "Produces a summary of an Input Security Group", + "ListChannels": "Produces list of channels that have been created", + "ListInputSecurityGroups": "Produces a list of Input Security Groups for an account", + "ListInputs": "Produces list of inputs that have been created", + "StartChannel": "Starts an existing channel", + "StopChannel": "Stops a running channel" + }, + "shapes": { + "AacCodingMode": { + "base": null, + "refs": { + "AacSettings$CodingMode": "Mono, Stereo, or 5.1 channel layout. Valid values depend on rate control mode and profile. The adReceiverMix setting receives a stereo description plus control track and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E." + } + }, + "AacInputType": { + "base": null, + "refs": { + "AacSettings$InputType": "Set to \"broadcasterMixedAd\" when input contains pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3, which signals to downstream systems that this stream contains \"broadcaster mixed AD\". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set to broadcasterMixedAd.\n\nLeave set to \"normal\" when input does not contain pre-mixed audio + AD." + } + }, + "AacProfile": { + "base": null, + "refs": { + "AacSettings$Profile": "AAC Profile." + } + }, + "AacRateControlMode": { + "base": null, + "refs": { + "AacSettings$RateControlMode": "Rate Control Mode." + } + }, + "AacRawFormat": { + "base": null, + "refs": { + "AacSettings$RawFormat": "Sets LATM / LOAS AAC output for raw containers." + } + }, + "AacSettings": { + "base": null, + "refs": { + "AudioCodecSettings$AacSettings": null + } + }, + "AacSpec": { + "base": null, + "refs": { + "AacSettings$Spec": "Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2 Transport Stream containers." + } + }, + "AacVbrQuality": { + "base": null, + "refs": { + "AacSettings$VbrQuality": "VBR Quality Level - Only used if rateControlMode is VBR." + } + }, + "Ac3BitstreamMode": { + "base": null, + "refs": { + "Ac3Settings$BitstreamMode": "Specifies the bitstream mode (bsmod) for the emitted AC-3 stream. See ATSC A/52-2012 for background on these values." + } + }, + "Ac3CodingMode": { + "base": null, + "refs": { + "Ac3Settings$CodingMode": "Dolby Digital coding mode. Determines number of channels." + } + }, + "Ac3DrcProfile": { + "base": null, + "refs": { + "Ac3Settings$DrcProfile": "If set to filmStandard, adds dynamic range compression signaling to the output bitstream as defined in the Dolby Digital specification." + } + }, + "Ac3LfeFilter": { + "base": null, + "refs": { + "Ac3Settings$LfeFilter": "When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid in codingMode32Lfe mode." + } + }, + "Ac3MetadataControl": { + "base": null, + "refs": { + "Ac3Settings$MetadataControl": "When set to \"followInput\", encoder metadata will be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied from one of these streams, then the static metadata settings will be used." + } + }, + "Ac3Settings": { + "base": null, + "refs": { + "AudioCodecSettings$Ac3Settings": null + } + }, + "AccessDenied": { + "base": null, + "refs": { + } + }, + "AfdSignaling": { + "base": null, + "refs": { + "H264Settings$AfdSignaling": "Indicates that AFD values will be written into the output stream. If afdSignaling is \"auto\", the system will try to preserve the input AFD value (in cases where multiple AFD values are valid). If set to \"fixed\", the AFD value will be the value configured in the fixedAfd parameter." + } + }, + "ArchiveContainerSettings": { + "base": null, + "refs": { + "ArchiveOutputSettings$ContainerSettings": "Settings specific to the container type of the file." + } + }, + "ArchiveGroupSettings": { + "base": null, + "refs": { + "OutputGroupSettings$ArchiveGroupSettings": null + } + }, + "ArchiveOutputSettings": { + "base": null, + "refs": { + "OutputSettings$ArchiveOutputSettings": null + } + }, + "AribDestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$AribDestinationSettings": null + } + }, + "AribSourceSettings": { + "base": null, + "refs": { + "CaptionSelectorSettings$AribSourceSettings": null + } + }, + "AudioChannelMapping": { + "base": null, + "refs": { + "ListOfAudioChannelMapping$member": null + } + }, + "AudioCodecSettings": { + "base": null, + "refs": { + "AudioDescription$CodecSettings": "Audio codec settings." + } + }, + "AudioDescription": { + "base": null, + "refs": { + "ListOfAudioDescription$member": null + } + }, + "AudioDescriptionAudioTypeControl": { + "base": null, + "refs": { + "AudioDescription$AudioTypeControl": "Determines how audio type is determined.\n followInput: If the input contains an ISO 639 audioType, then that value is passed through to the output. If the input contains no ISO 639 audioType, the value in Audio Type is included in the output.\n useConfigured: The value in Audio Type is included in the output.\nNote that this field and audioType are both ignored if inputType is broadcasterMixedAd." + } + }, + "AudioDescriptionLanguageCodeControl": { + "base": null, + "refs": { + "AudioDescription$LanguageCodeControl": "Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language code of the input. The languageCode will be used when useConfigured is set, or when followInput is selected but there is no ISO 639 language code specified by the input." + } + }, + "AudioLanguageSelection": { + "base": null, + "refs": { + "AudioSelectorSettings$AudioLanguageSelection": null + } + }, + "AudioLanguageSelectionPolicy": { + "base": null, + "refs": { + "AudioLanguageSelection$LanguageSelectionPolicy": "When set to \"strict\", the transport stream demux strictly identifies audio streams by their language descriptor. If a PMT update occurs such that an audio stream matching the initially selected language is no longer present then mute will be encoded until the language returns. If \"loose\", then on a PMT update the demux will choose another audio stream in the program with the same stream type if it can't find one with the same language." + } + }, + "AudioNormalizationAlgorithm": { + "base": null, + "refs": { + "AudioNormalizationSettings$Algorithm": "Audio normalization algorithm to use. itu17701 conforms to the CALM Act specification, itu17702 conforms to the EBU R-128 specification." + } + }, + "AudioNormalizationAlgorithmControl": { + "base": null, + "refs": { + "AudioNormalizationSettings$AlgorithmControl": "When set to correctAudio the output audio is corrected using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted." + } + }, + "AudioNormalizationSettings": { + "base": null, + "refs": { + "AudioDescription$AudioNormalizationSettings": "Advanced audio normalization settings." + } + }, + "AudioOnlyHlsSettings": { + "base": null, + "refs": { + "HlsSettings$AudioOnlyHlsSettings": null + } + }, + "AudioOnlyHlsTrackType": { + "base": null, + "refs": { + "AudioOnlyHlsSettings$AudioTrackType": "Four types of audio-only tracks are supported:\n\nAudio-Only Variant Stream\nThe client can play back this audio-only stream instead of video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.\n\nAlternate Audio, Auto Select, Default\nAlternate rendition that the client should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES\n\nAlternate Audio, Auto Select, Not Default\nAlternate rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES\n\nAlternate Audio, not Auto Select\nAlternate rendition that the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO" + } + }, + "AudioPidSelection": { + "base": null, + "refs": { + "AudioSelectorSettings$AudioPidSelection": null + } + }, + "AudioSelector": { + "base": null, + "refs": { + "ListOfAudioSelector$member": null + } + }, + "AudioSelectorSettings": { + "base": null, + "refs": { + "AudioSelector$SelectorSettings": "The audio selector settings." + } + }, + "AudioType": { + "base": null, + "refs": { + "AudioDescription$AudioType": "Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC 13818-1." + } + }, + "AvailBlanking": { + "base": null, + "refs": { + "EncoderSettings$AvailBlanking": "Settings for ad avail blanking." + } + }, + "AvailBlankingState": { + "base": null, + "refs": { + "AvailBlanking$State": "When set to enabled, causes video, audio and captions to be blanked when insertion metadata is added." + } + }, + "AvailConfiguration": { + "base": null, + "refs": { + "EncoderSettings$AvailConfiguration": "Event-wide configuration settings for ad avail insertion." + } + }, + "AvailSettings": { + "base": null, + "refs": { + "AvailConfiguration$AvailSettings": "Ad avail settings." + } + }, + "BadRequestException": { + "base": null, + "refs": { + } + }, + "BlackoutSlate": { + "base": null, + "refs": { + "EncoderSettings$BlackoutSlate": "Settings for blackout slate." + } + }, + "BlackoutSlateNetworkEndBlackout": { + "base": null, + "refs": { + "BlackoutSlate$NetworkEndBlackout": "Setting to enabled causes the encoder to blackout the video, audio, and captions, and raise the \"Network Blackout Image\" slate when an SCTE104/35 Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must contain a network ID that matches the value entered in \"Network ID\"." + } + }, + "BlackoutSlateState": { + "base": null, + "refs": { + "BlackoutSlate$State": "When set to enabled, causes video, audio and captions to be blanked when indicated by program metadata." + } + }, + "BurnInAlignment": { + "base": null, + "refs": { + "BurnInDestinationSettings$Alignment": "If no explicit xPosition or yPosition is provided, setting alignment to centered will place the captions at the bottom center of the output. Similarly, setting a left alignment will align captions to the bottom left of the output. If x and y positions are given in conjunction with the alignment parameter, the font will be justified (either left or centered) relative to those coordinates. Selecting \"smart\" justification will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must match." + } + }, + "BurnInBackgroundColor": { + "base": null, + "refs": { + "BurnInDestinationSettings$BackgroundColor": "Specifies the color of the rectangle behind the captions. All burn-in and DVB-Sub font settings must match." + } + }, + "BurnInDestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$BurnInDestinationSettings": null + } + }, + "BurnInFontColor": { + "base": null, + "refs": { + "BurnInDestinationSettings$FontColor": "Specifies the color of the burned-in captions. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match." + } + }, + "BurnInOutlineColor": { + "base": null, + "refs": { + "BurnInDestinationSettings$OutlineColor": "Specifies font outline color. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match." + } + }, + "BurnInShadowColor": { + "base": null, + "refs": { + "BurnInDestinationSettings$ShadowColor": "Specifies the color of the shadow cast by the captions. All burn-in and DVB-Sub font settings must match." + } + }, + "BurnInTeletextGridControl": { + "base": null, + "refs": { + "BurnInDestinationSettings$TeletextGridControl": "Controls whether a fixed grid size will be used to generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in outputs." + } + }, + "CaptionDescription": { + "base": "Output groups for this Live Event. Output groups contain information about where streams should be distributed.", + "refs": { + "ListOfCaptionDescription$member": null + } + }, + "CaptionDestinationSettings": { + "base": null, + "refs": { + "CaptionDescription$DestinationSettings": "Additional settings for captions destination that depend on the destination type." + } + }, + "CaptionLanguageMapping": { + "base": "Maps a caption channel to an ISO 693-2 language code (http://www.loc.gov/standards/iso639-2), with an optional description.", + "refs": { + "ListOfCaptionLanguageMapping$member": null + } + }, + "CaptionSelector": { + "base": "Output groups for this Live Event. Output groups contain information about where streams should be distributed.", + "refs": { + "ListOfCaptionSelector$member": null + } + }, + "CaptionSelectorSettings": { + "base": null, + "refs": { + "CaptionSelector$SelectorSettings": "Caption selector settings." + } + }, + "Channel": { + "base": null, + "refs": { + "CreateChannelResultModel$Channel": null + } + }, + "ChannelConfigurationValidationError": { + "base": null, + "refs": { + } + }, + "ChannelEgressEndpoint": { + "base": null, + "refs": { + "ListOfChannelEgressEndpoint$member": null + } + }, + "ChannelState": { + "base": null, + "refs": { + "Channel$State": null, + "ChannelSummary$State": null + } + }, + "ChannelSummary": { + "base": null, + "refs": { + "ListOfChannelSummary$member": null + } + }, + "ConflictException": { + "base": null, + "refs": { + } + }, + "CreateChannel": { + "base": null, + "refs": { + } + }, + "CreateChannelResultModel": { + "base": null, + "refs": { + } + }, + "CreateInput": { + "base": null, + "refs": { + } + }, + "CreateInputResultModel": { + "base": null, + "refs": { + } + }, + "CreateInputSecurityGroupResultModel": { + "base": null, + "refs": { + } + }, + "DvbNitSettings": { + "base": "DVB Network Information Table (NIT)", + "refs": { + "M2tsSettings$DvbNitSettings": "Inserts DVB Network Information Table (NIT) at the specified table repetition interval." + } + }, + "DvbSdtOutputSdt": { + "base": null, + "refs": { + "DvbSdtSettings$OutputSdt": "Selects method of inserting SDT information into output stream. The sdtFollow setting copies SDT information from input stream to output stream. The sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT information is present in the input, otherwise it will fall back on the user-defined values. The sdtManual setting means user will enter the SDT information. The sdtNone setting means output stream will not contain SDT information." + } + }, + "DvbSdtSettings": { + "base": "DVB Service Description Table (SDT)", + "refs": { + "M2tsSettings$DvbSdtSettings": "Inserts DVB Service Description Table (SDT) at the specified table repetition interval." + } + }, + "DvbSubDestinationAlignment": { + "base": null, + "refs": { + "DvbSubDestinationSettings$Alignment": "If no explicit xPosition or yPosition is provided, setting alignment to centered will place the captions at the bottom center of the output. Similarly, setting a left alignment will align captions to the bottom left of the output. If x and y positions are given in conjunction with the alignment parameter, the font will be justified (either left or centered) relative to those coordinates. Selecting \"smart\" justification will left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid for source captions that are STL or 608/embedded. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match." + } + }, + "DvbSubDestinationBackgroundColor": { + "base": null, + "refs": { + "DvbSubDestinationSettings$BackgroundColor": "Specifies the color of the rectangle behind the captions. All burn-in and DVB-Sub font settings must match." + } + }, + "DvbSubDestinationFontColor": { + "base": null, + "refs": { + "DvbSubDestinationSettings$FontColor": "Specifies the color of the burned-in captions. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match." + } + }, + "DvbSubDestinationOutlineColor": { + "base": null, + "refs": { + "DvbSubDestinationSettings$OutlineColor": "Specifies font outline color. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match." + } + }, + "DvbSubDestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$DvbSubDestinationSettings": null + } + }, + "DvbSubDestinationShadowColor": { + "base": null, + "refs": { + "DvbSubDestinationSettings$ShadowColor": "Specifies the color of the shadow cast by the captions. All burn-in and DVB-Sub font settings must match." + } + }, + "DvbSubDestinationTeletextGridControl": { + "base": null, + "refs": { + "DvbSubDestinationSettings$TeletextGridControl": "Controls whether a fixed grid size will be used to generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in outputs." + } + }, + "DvbSubSourceSettings": { + "base": null, + "refs": { + "CaptionSelectorSettings$DvbSubSourceSettings": null + } + }, + "DvbTdtSettings": { + "base": "DVB Time and Date Table (SDT)", + "refs": { + "M2tsSettings$DvbTdtSettings": "Inserts DVB Time and Date Table (TDT) at the specified table repetition interval." + } + }, + "Eac3AttenuationControl": { + "base": null, + "refs": { + "Eac3Settings$AttenuationControl": "When set to attenuate3Db, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode." + } + }, + "Eac3BitstreamMode": { + "base": null, + "refs": { + "Eac3Settings$BitstreamMode": "Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values." + } + }, + "Eac3CodingMode": { + "base": null, + "refs": { + "Eac3Settings$CodingMode": "Dolby Digital Plus coding mode. Determines number of channels." + } + }, + "Eac3DcFilter": { + "base": null, + "refs": { + "Eac3Settings$DcFilter": "When set to enabled, activates a DC highpass filter for all input channels." + } + }, + "Eac3DrcLine": { + "base": null, + "refs": { + "Eac3Settings$DrcLine": "Sets the Dolby dynamic range compression profile." + } + }, + "Eac3DrcRf": { + "base": null, + "refs": { + "Eac3Settings$DrcRf": "Sets the profile for heavy Dolby dynamic range compression, ensures that the instantaneous signal peaks do not exceed specified levels." + } + }, + "Eac3LfeControl": { + "base": null, + "refs": { + "Eac3Settings$LfeControl": "When encoding 3/2 audio, setting to lfe enables the LFE channel" + } + }, + "Eac3LfeFilter": { + "base": null, + "refs": { + "Eac3Settings$LfeFilter": "When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with codingMode32 coding mode." + } + }, + "Eac3MetadataControl": { + "base": null, + "refs": { + "Eac3Settings$MetadataControl": "When set to followInput, encoder metadata will be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied from one of these streams, then the static metadata settings will be used." + } + }, + "Eac3PassthroughControl": { + "base": null, + "refs": { + "Eac3Settings$PassthroughControl": "When set to whenPossible, input DD+ audio will be passed through if it is present on the input. This detection is dynamic over the life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the system alternates between passthrough and encoding." + } + }, + "Eac3PhaseControl": { + "base": null, + "refs": { + "Eac3Settings$PhaseControl": "When set to shift90Degrees, applies a 90-degree phase shift to the surround channels. Only used for 3/2 coding mode." + } + }, + "Eac3Settings": { + "base": null, + "refs": { + "AudioCodecSettings$Eac3Settings": null + } + }, + "Eac3StereoDownmix": { + "base": null, + "refs": { + "Eac3Settings$StereoDownmix": "Stereo downmix preference. Only used for 3/2 coding mode." + } + }, + "Eac3SurroundExMode": { + "base": null, + "refs": { + "Eac3Settings$SurroundExMode": "When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels." + } + }, + "Eac3SurroundMode": { + "base": null, + "refs": { + "Eac3Settings$SurroundMode": "When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the two channels." + } + }, + "EmbeddedConvert608To708": { + "base": null, + "refs": { + "EmbeddedSourceSettings$Convert608To708": "If upconvert, 608 data is both passed through via the \"608 compatibility bytes\" fields of the 708 wrapper as well as translated into 708. 708 data present in the source content will be discarded." + } + }, + "EmbeddedDestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$EmbeddedDestinationSettings": null + } + }, + "EmbeddedPlusScte20DestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$EmbeddedPlusScte20DestinationSettings": null + } + }, + "EmbeddedScte20Detection": { + "base": null, + "refs": { + "EmbeddedSourceSettings$Scte20Detection": "Set to \"auto\" to handle streams with intermittent and/or non-aligned SCTE-20 and Embedded captions." + } + }, + "EmbeddedSourceSettings": { + "base": null, + "refs": { + "CaptionSelectorSettings$EmbeddedSourceSettings": null + } + }, + "Empty": { + "base": null, + "refs": { + } + }, + "EncoderSettings": { + "base": null, + "refs": { + "Channel$EncoderSettings": null, + "CreateChannel$EncoderSettings": null + } + }, + "FecOutputIncludeFec": { + "base": null, + "refs": { + "FecOutputSettings$IncludeFec": "Enables column only or column and row based FEC" + } + }, + "FecOutputSettings": { + "base": null, + "refs": { + "UdpOutputSettings$FecOutputSettings": "Settings for enabling and adjusting Forward Error Correction on UDP outputs." + } + }, + "FixedAfd": { + "base": null, + "refs": { + "H264Settings$FixedAfd": "Four bit AFD value to write on all frames of video in the output stream. Only valid when afdSignaling is set to 'Fixed'." + } + }, + "ForbiddenException": { + "base": null, + "refs": { + } + }, + "GlobalConfiguration": { + "base": null, + "refs": { + "EncoderSettings$GlobalConfiguration": "Configuration settings that apply to the event as a whole." + } + }, + "GlobalConfigurationInputEndAction": { + "base": null, + "refs": { + "GlobalConfiguration$InputEndAction": "Indicates the action to take when an input completes (e.g. end-of-file.) Options include immediately switching to the next sequential input (via \"switchInput\"), switching to the next input and looping back to the first input when last input ends (via \"switchAndLoopInputs\") or not switching inputs and instead transcoding black / color / slate images per the \"Input Loss Behavior\" configuration until an activateInput REST command is received (via \"none\")." + } + }, + "GlobalConfigurationLowFramerateInputs": { + "base": null, + "refs": { + "GlobalConfiguration$SupportLowFramerateInputs": "Adjusts video input buffer for streams with very low video framerates. This is commonly set to enabled for music channels with less than one video frame per second." + } + }, + "GlobalConfigurationOutputTimingSource": { + "base": null, + "refs": { + "GlobalConfiguration$OutputTimingSource": "Indicates whether the rate of frames emitted by the Live encoder should be paced by its system clock (which optionally may be locked to another source via NTP) or should be locked to the clock of the source that is providing the input stream." + } + }, + "H264AdaptiveQuantization": { + "base": null, + "refs": { + "H264Settings$AdaptiveQuantization": "Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality." + } + }, + "H264ColorMetadata": { + "base": null, + "refs": { + "H264Settings$ColorMetadata": "Includes colorspace metadata in the output." + } + }, + "H264EntropyEncoding": { + "base": null, + "refs": { + "H264Settings$EntropyEncoding": "Entropy encoding mode. Use cabac (must be in Main or High profile) or cavlc." + } + }, + "H264FlickerAq": { + "base": null, + "refs": { + "H264Settings$FlickerAq": "If set to enabled, adjust quantization within each frame to reduce flicker or 'pop' on I-frames." + } + }, + "H264FramerateControl": { + "base": null, + "refs": { + "H264Settings$FramerateControl": "This field indicates how the output video frame rate is specified. If \"specified\" is selected then the output video frame rate is determined by framerateNumerator and framerateDenominator, else if \"initializeFromSource\" is selected then the output video frame rate will be set equal to the input video frame rate of the first input." + } + }, + "H264GopBReference": { + "base": null, + "refs": { + "H264Settings$GopBReference": "If enabled, use reference B frames for GOP structures that have B frames > 1." + } + }, + "H264GopSizeUnits": { + "base": null, + "refs": { + "H264Settings$GopSizeUnits": "Indicates if the gopSize is specified in frames or seconds. If seconds the system will convert the gopSize into a frame count at run time." + } + }, + "H264Level": { + "base": null, + "refs": { + "H264Settings$Level": "H.264 Level." + } + }, + "H264LookAheadRateControl": { + "base": null, + "refs": { + "H264Settings$LookAheadRateControl": "Amount of lookahead. A value of low can decrease latency and memory usage, while high can produce better quality for certain content." + } + }, + "H264ParControl": { + "base": null, + "refs": { + "H264Settings$ParControl": "This field indicates how the output pixel aspect ratio is specified. If \"specified\" is selected then the output video pixel aspect ratio is determined by parNumerator and parDenominator, else if \"initializeFromSource\" is selected then the output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input." + } + }, + "H264Profile": { + "base": null, + "refs": { + "H264Settings$Profile": "H.264 Profile." + } + }, + "H264RateControlMode": { + "base": null, + "refs": { + "H264Settings$RateControlMode": "Rate control mode." + } + }, + "H264ScanType": { + "base": null, + "refs": { + "H264Settings$ScanType": "Sets the scan type of the output to progressive or top-field-first interlaced." + } + }, + "H264SceneChangeDetect": { + "base": null, + "refs": { + "H264Settings$SceneChangeDetect": "Scene change detection. Inserts I-frames on scene changes when enabled." + } + }, + "H264Settings": { + "base": null, + "refs": { + "VideoCodecSettings$H264Settings": null + } + }, + "H264SpatialAq": { + "base": null, + "refs": { + "H264Settings$SpatialAq": "If set to enabled, adjust quantization within each frame based on spatial variation of content complexity." + } + }, + "H264Syntax": { + "base": null, + "refs": { + "H264Settings$Syntax": "Produces a bitstream compliant with SMPTE RP-2027." + } + }, + "H264TemporalAq": { + "base": null, + "refs": { + "H264Settings$TemporalAq": "If set to enabled, adjust quantization within each frame based on temporal variation of content complexity." + } + }, + "H264TimecodeInsertionBehavior": { + "base": null, + "refs": { + "H264Settings$TimecodeInsertion": "Determines how timecodes should be inserted into the video elementary stream.\n- 'disabled': Do not include timecodes\n- 'picTimingSei': Pass through picture timing SEI messages from the source specified in Timecode Config" + } + }, + "HlsAdMarkers": { + "base": null, + "refs": { + "ListOfHlsAdMarkers$member": null + } + }, + "HlsAkamaiHttpTransferMode": { + "base": null, + "refs": { + "HlsAkamaiSettings$HttpTransferMode": "Specify whether or not to use chunked transfer encoding to Akamai. User should contact Akamai to enable this feature." + } + }, + "HlsAkamaiSettings": { + "base": null, + "refs": { + "HlsCdnSettings$HlsAkamaiSettings": null + } + }, + "HlsBasicPutSettings": { + "base": null, + "refs": { + "HlsCdnSettings$HlsBasicPutSettings": null + } + }, + "HlsCaptionLanguageSetting": { + "base": null, + "refs": { + "HlsGroupSettings$CaptionLanguageSetting": "Applies only to 608 Embedded output captions.\ninsert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to specify the languages in the order in which they appear in the original source (if the source is embedded format) or the order of the caption selectors (if the source is other than embedded). Otherwise, languages in the manifest will not match up properly with the output captions.\nnone: Include CLOSED-CAPTIONS=NONE line in the manifest.\nomit: Omit any CLOSED-CAPTIONS line from the manifest." + } + }, + "HlsCdnSettings": { + "base": null, + "refs": { + "HlsGroupSettings$HlsCdnSettings": "Parameters that control interactions with the CDN." + } + }, + "HlsClientCache": { + "base": null, + "refs": { + "HlsGroupSettings$ClientCache": "When set to \"disabled\", sets the #EXT-X-ALLOW-CACHE:no tag in the manifest, which prevents clients from saving media segments for later replay." + } + }, + "HlsCodecSpecification": { + "base": null, + "refs": { + "HlsGroupSettings$CodecSpecification": "Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation." + } + }, + "HlsDirectoryStructure": { + "base": null, + "refs": { + "HlsGroupSettings$DirectoryStructure": "Place segments in subdirectories." + } + }, + "HlsEncryptionType": { + "base": null, + "refs": { + "HlsGroupSettings$EncryptionType": "Encrypts the segments with the given encryption scheme. Exclude this parameter if no encryption is desired." + } + }, + "HlsGroupSettings": { + "base": null, + "refs": { + "OutputGroupSettings$HlsGroupSettings": null + } + }, + "HlsInputSettings": { + "base": null, + "refs": { + "NetworkInputSettings$HlsInputSettings": "Specifies HLS input settings when the uri is for a HLS manifest." + } + }, + "HlsIvInManifest": { + "base": null, + "refs": { + "HlsGroupSettings$IvInManifest": "For use with encryptionType. The IV (Initialization Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If set to \"include\", IV is listed in the manifest, otherwise the IV is not in the manifest." + } + }, + "HlsIvSource": { + "base": null, + "refs": { + "HlsGroupSettings$IvSource": "For use with encryptionType. The IV (Initialization Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is \"followsSegmentNumber\", it will cause the IV to change every segment (to match the segment number). If this is set to \"explicit\", you must enter a constantIv value." + } + }, + "HlsManifestCompression": { + "base": null, + "refs": { + "HlsGroupSettings$ManifestCompression": "When set to gzip, compresses HLS playlist." + } + }, + "HlsManifestDurationFormat": { + "base": null, + "refs": { + "HlsGroupSettings$ManifestDurationFormat": "Indicates whether the output manifest should use floating point or integer values for segment duration." + } + }, + "HlsMediaStoreSettings": { + "base": null, + "refs": { + "HlsCdnSettings$HlsMediaStoreSettings": null + } + }, + "HlsMediaStoreStorageClass": { + "base": null, + "refs": { + "HlsMediaStoreSettings$MediaStoreStorageClass": "When set to temporal, output files are stored in non-persistent memory for faster reading and writing." + } + }, + "HlsMode": { + "base": null, + "refs": { + "HlsGroupSettings$Mode": "If set to \"vod\", keeps and indexes all segments starting with the first segment. If set to \"live\" segments will age out and only the last keepSegments number of segments will be retained." + } + }, + "HlsOutputSelection": { + "base": null, + "refs": { + "HlsGroupSettings$OutputSelection": "Generates the .m3u8 playlist file for this HLS output group. The segmentsOnly option will output segments without the .m3u8 file." + } + }, + "HlsOutputSettings": { + "base": null, + "refs": { + "OutputSettings$HlsOutputSettings": null + } + }, + "HlsProgramDateTime": { + "base": null, + "refs": { + "HlsGroupSettings$ProgramDateTime": "Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated as follows: either the program date and time are initialized using the input timecode source, or the time is initialized using the input timecode source and the date is initialized using the timestampOffset." + } + }, + "HlsSegmentationMode": { + "base": null, + "refs": { + "HlsGroupSettings$SegmentationMode": "When set to useInputSegmentation, the output segment or fragment points are set by the RAI markers from the input streams." + } + }, + "HlsSettings": { + "base": null, + "refs": { + "HlsOutputSettings$HlsSettings": "Settings regarding the underlying stream. These settings are different for audio-only outputs." + } + }, + "HlsStreamInfResolution": { + "base": null, + "refs": { + "HlsGroupSettings$StreamInfResolution": "Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest." + } + }, + "HlsTimedMetadataId3Frame": { + "base": null, + "refs": { + "HlsGroupSettings$TimedMetadataId3Frame": "Indicates ID3 frame that has the timecode." + } + }, + "HlsTsFileMode": { + "base": null, + "refs": { + "HlsGroupSettings$TsFileMode": "When set to \"singleFile\", emits the program as a single media resource (.ts) file, and uses #EXT-X-BYTERANGE tags to index segment for playback. Playback of VOD mode content during event is not guaranteed due to HTTP server caching." + } + }, + "HlsWebdavHttpTransferMode": { + "base": null, + "refs": { + "HlsWebdavSettings$HttpTransferMode": "Specify whether or not to use chunked transfer encoding to WebDAV." + } + }, + "HlsWebdavSettings": { + "base": null, + "refs": { + "HlsCdnSettings$HlsWebdavSettings": null + } + }, + "Input": { + "base": null, + "refs": { + "CreateInputResultModel$Input": null, + "ListOfInput$member": null + } + }, + "InputAttachment": { + "base": null, + "refs": { + "ListOfInputAttachment$member": null + } + }, + "InputChannelLevel": { + "base": null, + "refs": { + "ListOfInputChannelLevel$member": null + } + }, + "InputDeblockFilter": { + "base": null, + "refs": { + "InputSettings$DeblockFilter": "Enable or disable the deblock filter when filtering." + } + }, + "InputDenoiseFilter": { + "base": null, + "refs": { + "InputSettings$DenoiseFilter": "Enable or disable the denoise filter when filtering." + } + }, + "InputDestination": { + "base": "Settings for a PUSH type input", + "refs": { + "ListOfInputDestination$member": null + } + }, + "InputDestinationRequest": { + "base": "Endpoint settings for a PUSH type input", + "refs": { + "ListOfInputDestinationRequest$member": null + } + }, + "InputFilter": { + "base": null, + "refs": { + "InputSettings$InputFilter": "Turns on the filter for this input. MPEG-2 inputs have the deblocking filter enabled by default.\n1) auto - filtering will be applied depending on input type/quality\n2) disabled - no filtering will be applied to the input\n3) forced - filtering will be applied regardless of input type" + } + }, + "InputLocation": { + "base": null, + "refs": { + "AudioOnlyHlsSettings$AudioOnlyImage": "For use with an audio only Stream. Must be a .jpg or .png file. If given, this image will be used as the cover-art for the audio only output. Ideally, it should be formatted for an iPhone screen for two reasons. The iPhone does not resize the image, it crops a centered image on the top/bottom and left/right. Additionally, this image file gets saved bit-for-bit into every 10-second segment file, so will increase bandwidth by {image file size} * {segment count} * {user count.}.", + "AvailBlanking$AvailBlankingImage": "Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.", + "BlackoutSlate$BlackoutSlateImage": "Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.", + "BlackoutSlate$NetworkEndBlackoutImage": "Path to local file to use as Network End Blackout image. Image will be scaled to fill the entire output raster.", + "BurnInDestinationSettings$Font": "External font file used for caption burn-in. File extension must be 'ttf' or 'tte'. Although the user can select output fonts for many different types of input captions, embedded, STL and teletext sources use a strict grid system. Using external fonts with these caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$Font": "External font file used for caption burn-in. File extension must be 'ttf' or 'tte'. Although the user can select output fonts for many different types of input captions, embedded, STL and teletext sources use a strict grid system. Using external fonts with these caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub font settings must match.", + "InputLossBehavior$InputLossImageSlate": "When input loss image type is \"slate\" these fields specify the parameters for accessing the slate.", + "StaticKeySettings$KeyProviderServer": "The URL of the license server used for protecting content." + } + }, + "InputLossActionForHlsOut": { + "base": null, + "refs": { + "HlsGroupSettings$InputLossAction": "Parameter that control output group behavior on input loss." + } + }, + "InputLossActionForMsSmoothOut": { + "base": null, + "refs": { + "MsSmoothGroupSettings$InputLossAction": "Parameter that control output group behavior on input loss." + } + }, + "InputLossActionForUdpOut": { + "base": null, + "refs": { + "UdpGroupSettings$InputLossAction": "Specifies behavior of last resort when input video is lost, and no more backup inputs are available. When dropTs is selected the entire transport stream will stop being emitted. When dropProgram is selected the program can be dropped from the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when emitProgram is chosen the transport stream will continue to be produced normally with repeat frames, black frames, or slate frames substituted for the absent input video." + } + }, + "InputLossBehavior": { + "base": null, + "refs": { + "GlobalConfiguration$InputLossBehavior": "Settings for system actions when input is lost." + } + }, + "InputLossImageType": { + "base": null, + "refs": { + "InputLossBehavior$InputLossImageType": "Indicates whether to substitute a solid color or a slate into the output after input loss exceeds blackFrameMsec." + } + }, + "InputSecurityGroup": { + "base": "An Input Security Group", + "refs": { + "CreateInputSecurityGroupResultModel$SecurityGroup": null, + "ListOfInputSecurityGroup$member": null + } + }, + "InputSecurityGroupWhitelistRequest": { + "base": "Request of IPv4 CIDR addresses to whitelist in a security group.", + "refs": { + } + }, + "InputSettings": { + "base": "Live Event input parameters. There can be multiple inputs in a single Live Event.", + "refs": { + "InputAttachment$InputSettings": "Settings of an input (caption selector, etc.)" + } + }, + "InputSource": { + "base": "Settings for a PULL type input", + "refs": { + "ListOfInputSource$member": null + } + }, + "InputSourceEndBehavior": { + "base": null, + "refs": { + "InputSettings$SourceEndBehavior": "Loop input if it is a file. This allows a file input to be streamed indefinitely." + } + }, + "InputSourceRequest": { + "base": "Settings for for a PULL type input", + "refs": { + "ListOfInputSourceRequest$member": null + } + }, + "InputState": { + "base": null, + "refs": { + "Input$State": null + } + }, + "InputType": { + "base": null, + "refs": { + "CreateInput$Type": null, + "Input$Type": null + } + }, + "InputWhitelistRule": { + "base": "Whitelist rule", + "refs": { + "ListOfInputWhitelistRule$member": null + } + }, + "InputWhitelistRuleCidr": { + "base": "An IPv4 CIDR to whitelist.", + "refs": { + "ListOfInputWhitelistRuleCidr$member": null + } + }, + "InternalServerErrorException": { + "base": null, + "refs": { + } + }, + "InternalServiceError": { + "base": null, + "refs": { + } + }, + "InvalidRequest": { + "base": null, + "refs": { + } + }, + "KeyProviderSettings": { + "base": null, + "refs": { + "HlsGroupSettings$KeyProviderSettings": "The key provider settings." + } + }, + "LimitExceeded": { + "base": null, + "refs": { + } + }, + "ListChannelsResultModel": { + "base": null, + "refs": { + } + }, + "ListInputSecurityGroupsResultModel": { + "base": "Result of input security group list request", + "refs": { + } + }, + "ListInputsResultModel": { + "base": null, + "refs": { + } + }, + "ListOfAudioChannelMapping": { + "base": null, + "refs": { + "RemixSettings$ChannelMappings": "Mapping of input channels to output channels, with appropriate gain adjustments." + } + }, + "ListOfAudioDescription": { + "base": null, + "refs": { + "EncoderSettings$AudioDescriptions": null + } + }, + "ListOfAudioSelector": { + "base": null, + "refs": { + "InputSettings$AudioSelectors": "Used to select the audio stream to decode for inputs that have multiple available." + } + }, + "ListOfCaptionDescription": { + "base": null, + "refs": { + "EncoderSettings$CaptionDescriptions": "Settings for caption decriptions" + } + }, + "ListOfCaptionLanguageMapping": { + "base": null, + "refs": { + "HlsGroupSettings$CaptionLanguageMappings": "Mapping of up to 4 caption channels to caption languages. Is only meaningful if captionLanguageSetting is set to \"insert\"." + } + }, + "ListOfCaptionSelector": { + "base": null, + "refs": { + "InputSettings$CaptionSelectors": "Used to select the caption input to use for inputs that have multiple available." + } + }, + "ListOfChannelEgressEndpoint": { + "base": null, + "refs": { + "Channel$EgressEndpoints": "The endpoints where outgoing connections initiate from", + "ChannelSummary$EgressEndpoints": "The endpoints where outgoing connections initiate from" + } + }, + "ListOfChannelSummary": { + "base": null, + "refs": { + "ListChannelsResultModel$Channels": null + } + }, + "ListOfHlsAdMarkers": { + "base": null, + "refs": { + "HlsGroupSettings$AdMarkers": "Choose one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs." + } + }, + "ListOfInput": { + "base": null, + "refs": { + "ListInputsResultModel$Inputs": null + } + }, + "ListOfInputAttachment": { + "base": null, + "refs": { + "Channel$InputAttachments": "List of input attachments for channel.", + "ChannelSummary$InputAttachments": "List of input attachments for channel.", + "CreateChannel$InputAttachments": "List of input attachments for channel." + } + }, + "ListOfInputChannelLevel": { + "base": null, + "refs": { + "AudioChannelMapping$InputChannelLevels": "Indices and gain values for each input channel that should be remixed into this output channel." + } + }, + "ListOfInputDestination": { + "base": null, + "refs": { + "Input$Destinations": "List of destinations of input (PULL-type)" + } + }, + "ListOfInputDestinationRequest": { + "base": null, + "refs": { + "CreateInput$Destinations": "settings required for PUSH-type inputs; one per redundancy group.\nOnly one of sources and destinations can be specified.\nNote: there are currently no settings required for PUSH-type inputs\n" + } + }, + "ListOfInputSecurityGroup": { + "base": null, + "refs": { + "ListInputSecurityGroupsResultModel$InputSecurityGroups": "List of input security groups" + } + }, + "ListOfInputSource": { + "base": null, + "refs": { + "Input$Sources": "List of sources of input (PULL-type)" + } + }, + "ListOfInputSourceRequest": { + "base": null, + "refs": { + "CreateInput$Sources": "settings required for PULL-type inputs; one per redundancy group\nOnly one of sources and destinations can be specified\n" + } + }, + "ListOfInputWhitelistRule": { + "base": null, + "refs": { + "InputSecurityGroup$WhitelistRules": "Whitelist rules and their sync status" + } + }, + "ListOfInputWhitelistRuleCidr": { + "base": null, + "refs": { + "InputSecurityGroupWhitelistRequest$WhitelistRules": "List of IPv4 CIDR addresses to whitelist" + } + }, + "ListOfOutput": { + "base": null, + "refs": { + "OutputGroup$Outputs": null + } + }, + "ListOfOutputDestination": { + "base": null, + "refs": { + "Channel$Destinations": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager.\n", + "ChannelSummary$Destinations": "A list of destinations of the channel. For UDP outputs, there is one\ndestination per output. For other types (HLS, for example), there is\none destination per packager.\n", + "CreateChannel$Destinations": null + } + }, + "ListOfOutputDestinationSettings": { + "base": null, + "refs": { + "OutputDestination$Settings": "Destination settings for output; one for each redundant encoder." + } + }, + "ListOfOutputGroup": { + "base": null, + "refs": { + "EncoderSettings$OutputGroups": null + } + }, + "ListOfValidationError": { + "base": null, + "refs": { + "ChannelConfigurationValidationError$ValidationErrors": "A collection of validation error responses from attempting to create a channel with a bouquet of settings." + } + }, + "ListOfVideoDescription": { + "base": null, + "refs": { + "EncoderSettings$VideoDescriptions": null + } + }, + "ListOf__string": { + "base": null, + "refs": { + "CreateInput$InputSecurityGroups": "A list of security groups referenced by IDs to attach to the input.", + "Input$AttachedChannels": "List of channel IDs that that input is attached to (currently an input can only be attached to one channel)", + "Input$SecurityGroups": "List of IDs for all the security groups attached to the input.", + "Output$AudioDescriptionNames": "The names of the AudioDescriptions used as audio sources for this output.", + "Output$CaptionDescriptionNames": "The names of the CaptionDescriptions used as caption sources for this output." + } + }, + "M2tsAbsentInputAudioBehavior": { + "base": null, + "refs": { + "M2tsSettings$AbsentInputAudioBehavior": "When set to drop, output audio streams will be removed from the program if the selected input audio stream is removed from the input. This allows the output audio configuration to dynamically change based on input configuration. If this is set to encodeSilence, all output audio streams will output encoded silence when not connected to an active input stream." + } + }, + "M2tsArib": { + "base": null, + "refs": { + "M2tsSettings$Arib": "When set to enabled, uses ARIB-compliant field muxing and removes video descriptor." + } + }, + "M2tsAribCaptionsPidControl": { + "base": null, + "refs": { + "M2tsSettings$AribCaptionsPidControl": "If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the configured pid number." + } + }, + "M2tsAudioBufferModel": { + "base": null, + "refs": { + "M2tsSettings$AudioBufferModel": "When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used." + } + }, + "M2tsAudioInterval": { + "base": null, + "refs": { + "M2tsSettings$EbpAudioInterval": "When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The interval between these additional markers will be fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video interval." + } + }, + "M2tsAudioStreamType": { + "base": null, + "refs": { + "M2tsSettings$AudioStreamType": "When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06." + } + }, + "M2tsBufferModel": { + "base": null, + "refs": { + "M2tsSettings$BufferModel": "If set to multiplex, use multiplex buffer model for accurate interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices may not be able to play back the stream without interruptions." + } + }, + "M2tsCcDescriptor": { + "base": null, + "refs": { + "M2tsSettings$CcDescriptor": "When set to enabled, generates captionServiceDescriptor in PMT." + } + }, + "M2tsEbifControl": { + "base": null, + "refs": { + "M2tsSettings$Ebif": "If set to passthrough, passes any EBIF data from the input source to this output." + } + }, + "M2tsEbpPlacement": { + "base": null, + "refs": { + "M2tsSettings$EbpPlacement": "Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID." + } + }, + "M2tsEsRateInPes": { + "base": null, + "refs": { + "M2tsSettings$EsRateInPes": "Include or exclude the ES Rate field in the PES header." + } + }, + "M2tsKlv": { + "base": null, + "refs": { + "M2tsSettings$Klv": "If set to passthrough, passes any KLV data from the input source to this output." + } + }, + "M2tsPcrControl": { + "base": null, + "refs": { + "M2tsSettings$PcrControl": "When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream." + } + }, + "M2tsRateMode": { + "base": null, + "refs": { + "M2tsSettings$RateMode": "When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set." + } + }, + "M2tsScte35Control": { + "base": null, + "refs": { + "M2tsSettings$Scte35Control": "Optionally pass SCTE-35 signals from the input source to this output." + } + }, + "M2tsSegmentationMarkers": { + "base": null, + "refs": { + "M2tsSettings$SegmentationMarkers": "Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation field using a legacy proprietary format." + } + }, + "M2tsSegmentationStyle": { + "base": null, + "refs": { + "M2tsSettings$SegmentationStyle": "The segmentation style parameter controls how segmentation markers are inserted into the transport stream. With avails, it is possible that segments may be truncated, which can influence where future segmentation markers are inserted.\n\nWhen a segmentation style of \"resetCadence\" is selected and a segment is truncated due to an avail, we will reset the segmentation cadence. This means the subsequent segment will have a duration of $segmentationTime seconds.\n\nWhen a segmentation style of \"maintainCadence\" is selected and a segment is truncated due to an avail, we will not reset the segmentation cadence. This means the subsequent segment will likely be truncated as well. However, all segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule." + } + }, + "M2tsSettings": { + "base": null, + "refs": { + "ArchiveContainerSettings$M2tsSettings": null, + "UdpContainerSettings$M2tsSettings": null + } + }, + "M2tsTimedMetadataBehavior": { + "base": null, + "refs": { + "M2tsSettings$TimedMetadataBehavior": "When set to passthrough, timed metadata will be passed through from input to output." + } + }, + "M3u8PcrControl": { + "base": null, + "refs": { + "M3u8Settings$PcrControl": "When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream." + } + }, + "M3u8Scte35Behavior": { + "base": null, + "refs": { + "M3u8Settings$Scte35Behavior": "If set to passthrough, passes any SCTE-35 signals from the input source to this output." + } + }, + "M3u8Settings": { + "base": "Settings information for the .m3u8 container", + "refs": { + "StandardHlsSettings$M3u8Settings": null + } + }, + "M3u8TimedMetadataBehavior": { + "base": null, + "refs": { + "M3u8Settings$TimedMetadataBehavior": "When set to passthrough, timed metadata is passed through from input to output." + } + }, + "Mp2CodingMode": { + "base": null, + "refs": { + "Mp2Settings$CodingMode": "The MPEG2 Audio coding mode. Valid values are codingMode10 (for mono) or codingMode20 (for stereo)." + } + }, + "Mp2Settings": { + "base": null, + "refs": { + "AudioCodecSettings$Mp2Settings": null + } + }, + "MsSmoothGroupSettings": { + "base": null, + "refs": { + "OutputGroupSettings$MsSmoothGroupSettings": null + } + }, + "MsSmoothOutputSettings": { + "base": null, + "refs": { + "OutputSettings$MsSmoothOutputSettings": null + } + }, + "NetworkInputServerValidation": { + "base": null, + "refs": { + "NetworkInputSettings$ServerValidation": "Check HTTPS server certificates. When set to checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly match the corresponding certificate's wildcard pattern and would otherwise cause the event to error. This setting is ignored for protocols that do not use https." + } + }, + "NetworkInputSettings": { + "base": "Network source to transcode. Must be accessible to the Elemental Live node that is running the live event through a network connection.", + "refs": { + "InputSettings$NetworkInputSettings": "Input settings." + } + }, + "NotFoundException": { + "base": null, + "refs": { + } + }, + "Output": { + "base": "Output settings. There can be multiple outputs within a group.", + "refs": { + "ListOfOutput$member": null + } + }, + "OutputDestination": { + "base": null, + "refs": { + "ListOfOutputDestination$member": null + } + }, + "OutputDestinationSettings": { + "base": null, + "refs": { + "ListOfOutputDestinationSettings$member": null + } + }, + "OutputGroup": { + "base": "Output groups for this Live Event. Output groups contain information about where streams should be distributed.", + "refs": { + "ListOfOutputGroup$member": null + } + }, + "OutputGroupSettings": { + "base": null, + "refs": { + "OutputGroup$OutputGroupSettings": "Settings associated with the output group." + } + }, + "OutputLocationRef": { + "base": "Reference to an OutputDestination ID defined in the channel", + "refs": { + "ArchiveGroupSettings$Destination": "A directory and base filename where archive files should be written. If the base filename portion of the URI is left blank, the base filename of the first input will be automatically inserted.", + "HlsGroupSettings$Destination": "A directory or HTTP destination for the HLS segments, manifest files, and encryption keys (if enabled).", + "MsSmoothGroupSettings$Destination": "Smooth Streaming publish point on an IIS server. Elemental Live acts as a \"Push\" encoder to IIS.", + "UdpOutputSettings$Destination": "Destination address and port number for RTP or UDP packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002)." + } + }, + "OutputSettings": { + "base": null, + "refs": { + "Output$OutputSettings": "Output type-specific settings." + } + }, + "PassThroughSettings": { + "base": null, + "refs": { + "AudioCodecSettings$PassThroughSettings": null + } + }, + "RemixSettings": { + "base": null, + "refs": { + "AudioDescription$RemixSettings": "Settings that control how input audio channels are remixed into the output audio channels." + } + }, + "ResourceConflict": { + "base": null, + "refs": { + } + }, + "ResourceNotFound": { + "base": null, + "refs": { + } + }, + "Scte20Convert608To708": { + "base": null, + "refs": { + "Scte20SourceSettings$Convert608To708": "If upconvert, 608 data is both passed through via the \"608 compatibility bytes\" fields of the 708 wrapper as well as translated into 708. 708 data present in the source content will be discarded." + } + }, + "Scte20PlusEmbeddedDestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$Scte20PlusEmbeddedDestinationSettings": null + } + }, + "Scte20SourceSettings": { + "base": null, + "refs": { + "CaptionSelectorSettings$Scte20SourceSettings": null + } + }, + "Scte27DestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$Scte27DestinationSettings": null + } + }, + "Scte27SourceSettings": { + "base": null, + "refs": { + "CaptionSelectorSettings$Scte27SourceSettings": null + } + }, + "Scte35AposNoRegionalBlackoutBehavior": { + "base": null, + "refs": { + "Scte35TimeSignalApos$NoRegionalBlackoutFlag": "When set to ignore, Segment Descriptors with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates" + } + }, + "Scte35AposWebDeliveryAllowedBehavior": { + "base": null, + "refs": { + "Scte35TimeSignalApos$WebDeliveryAllowedFlag": "When set to ignore, Segment Descriptors with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates" + } + }, + "Scte35SpliceInsert": { + "base": null, + "refs": { + "AvailSettings$Scte35SpliceInsert": null + } + }, + "Scte35SpliceInsertNoRegionalBlackoutBehavior": { + "base": null, + "refs": { + "Scte35SpliceInsert$NoRegionalBlackoutFlag": "When set to ignore, Segment Descriptors with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates" + } + }, + "Scte35SpliceInsertWebDeliveryAllowedBehavior": { + "base": null, + "refs": { + "Scte35SpliceInsert$WebDeliveryAllowedFlag": "When set to ignore, Segment Descriptors with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates" + } + }, + "Scte35TimeSignalApos": { + "base": null, + "refs": { + "AvailSettings$Scte35TimeSignalApos": null + } + }, + "SmoothGroupAudioOnlyTimecodeControl": { + "base": null, + "refs": { + "MsSmoothGroupSettings$AudioOnlyTimecodeControl": "If set to passthrough for an audio-only MS Smooth output, the fragment absolute time will be set to the current timecode. This option does not write timecodes to the audio elementary stream." + } + }, + "SmoothGroupCertificateMode": { + "base": null, + "refs": { + "MsSmoothGroupSettings$CertificateMode": "If set to verifyAuthenticity, verify the https certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed certificates to fail unless those certificates are manually added to the OS trusted keystore." + } + }, + "SmoothGroupEventIdMode": { + "base": null, + "refs": { + "MsSmoothGroupSettings$EventIdMode": "Specifies whether or not to send an event ID to the IIS server. If no event ID is sent and the same Live Event is used without changing the publishing point, clients might see cached video from the previous run.\n\nOptions:\n- \"useConfigured\" - use the value provided in eventId\n- \"useTimestamp\" - generate and send an event ID based on the current timestamp\n- \"noEventId\" - do not send an event ID to the IIS server." + } + }, + "SmoothGroupEventStopBehavior": { + "base": null, + "refs": { + "MsSmoothGroupSettings$EventStopBehavior": "When set to sendEos, send EOS signal to IIS server when stopping the event" + } + }, + "SmoothGroupSegmentationMode": { + "base": null, + "refs": { + "MsSmoothGroupSettings$SegmentationMode": "When set to useInputSegmentation, the output segment or fragment points are set by the RAI markers from the input streams." + } + }, + "SmoothGroupSparseTrackType": { + "base": null, + "refs": { + "MsSmoothGroupSettings$SparseTrackType": "If set to scte35, use incoming SCTE-35 messages to generate a sparse track in this group of MS-Smooth outputs." + } + }, + "SmoothGroupStreamManifestBehavior": { + "base": null, + "refs": { + "MsSmoothGroupSettings$StreamManifestBehavior": "When set to send, send stream manifest so publishing point doesn't start until all streams start." + } + }, + "SmoothGroupTimestampOffsetMode": { + "base": null, + "refs": { + "MsSmoothGroupSettings$TimestampOffsetMode": "Type of timestamp date offset to use.\n- useEventStartDate: Use the date the event was started as the offset\n- useConfiguredOffset: Use an explicitly configured date as the offset" + } + }, + "SmpteTtDestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$SmpteTtDestinationSettings": null + } + }, + "StandardHlsSettings": { + "base": null, + "refs": { + "HlsSettings$StandardHlsSettings": null + } + }, + "StaticKeySettings": { + "base": null, + "refs": { + "KeyProviderSettings$StaticKeySettings": null + } + }, + "TeletextDestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$TeletextDestinationSettings": null + } + }, + "TeletextSourceSettings": { + "base": null, + "refs": { + "CaptionSelectorSettings$TeletextSourceSettings": null + } + }, + "TimecodeConfig": { + "base": null, + "refs": { + "EncoderSettings$TimecodeConfig": "Contains settings used to acquire and adjust timecode information from inputs." + } + }, + "TimecodeConfigSource": { + "base": null, + "refs": { + "TimecodeConfig$Source": "Identifies the source for the timecode that will be associated with the events outputs.\n-Embedded (embedded): Initialize the output timecode with timecode from the the source. If no embedded timecode is detected in the source, the system falls back to using \"Start at 0\" (zerobased).\n-System Clock (systemclock): Use the UTC time.\n-Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00." + } + }, + "TooManyRequestsException": { + "base": null, + "refs": { + } + }, + "TtmlDestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$TtmlDestinationSettings": null + } + }, + "TtmlDestinationStyleControl": { + "base": null, + "refs": { + "TtmlDestinationSettings$StyleControl": "When set to passthrough, passes through style and position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML output." + } + }, + "UdpContainerSettings": { + "base": null, + "refs": { + "UdpOutputSettings$ContainerSettings": null + } + }, + "UdpGroupSettings": { + "base": null, + "refs": { + "OutputGroupSettings$UdpGroupSettings": null + } + }, + "UdpOutputSettings": { + "base": null, + "refs": { + "OutputSettings$UdpOutputSettings": null + } + }, + "UdpTimedMetadataId3Frame": { + "base": null, + "refs": { + "UdpGroupSettings$TimedMetadataId3Frame": "Indicates ID3 frame that has the timecode." + } + }, + "UnprocessableEntityException": { + "base": null, + "refs": { + } + }, + "ValidationError": { + "base": null, + "refs": { + "ListOfValidationError$member": null + } + }, + "VideoCodecSettings": { + "base": null, + "refs": { + "VideoDescription$CodecSettings": "Video codec settings." + } + }, + "VideoDescription": { + "base": "Video settings for this stream.", + "refs": { + "ListOfVideoDescription$member": null + } + }, + "VideoDescriptionRespondToAfd": { + "base": null, + "refs": { + "VideoDescription$RespondToAfd": "Indicates how to respond to the AFD values in the input stream. Setting to \"respond\" causes input video to be clipped, depending on AFD value, input display aspect ratio and output display aspect ratio." + } + }, + "VideoDescriptionScalingBehavior": { + "base": null, + "refs": { + "VideoDescription$ScalingBehavior": "When set to \"stretchToOutput\", automatically configures the output position to stretch the video to the specified output resolution. This option will override any position value." + } + }, + "VideoSelector": { + "base": "Specifies a particular video stream within an input source. An input may have only a single video selector.", + "refs": { + "InputSettings$VideoSelector": "Informs which video elementary stream to decode for input types that have multiple available." + } + }, + "VideoSelectorColorSpace": { + "base": null, + "refs": { + "VideoSelector$ColorSpace": "Specifies the colorspace of an input. This setting works in tandem with colorSpaceConversion to determine if any conversion will be performed." + } + }, + "VideoSelectorColorSpaceUsage": { + "base": null, + "refs": { + "VideoSelector$ColorSpaceUsage": "Applies only if colorSpace is a value other than follow. This field controls how the value in the colorSpace field will be used. fallback means that when the input does include color space data, that data will be used, but when the input has no color space data, the value in colorSpace will be used. Choose fallback if your input is sometimes missing color space data, but when it does have color space data, that data is correct. force means to always use the value in colorSpace. Choose force if your input usually has no color space data or might have unreliable color space data." + } + }, + "VideoSelectorPid": { + "base": null, + "refs": { + "VideoSelectorSettings$VideoSelectorPid": null + } + }, + "VideoSelectorProgramId": { + "base": null, + "refs": { + "VideoSelectorSettings$VideoSelectorProgramId": null + } + }, + "VideoSelectorSettings": { + "base": null, + "refs": { + "VideoSelector$SelectorSettings": "The video selector settings." + } + }, + "WebvttDestinationSettings": { + "base": null, + "refs": { + "CaptionDestinationSettings$WebvttDestinationSettings": null + } + }, + "__double": { + "base": null, + "refs": { + "AacSettings$Bitrate": "Average bitrate in bits/second. Valid values depend on rate control mode and profile.", + "AacSettings$SampleRate": "Sample rate in Hz. Valid values depend on rate control mode and profile.", + "Ac3Settings$Bitrate": "Average bitrate in bits/second. Valid bitrates depend on the coding mode.", + "AudioNormalizationSettings$TargetLkfs": "Target LKFS(loudness) to adjust volume to. If no value is entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.", + "Eac3Settings$Bitrate": "Average bitrate in bits/second. Valid bitrates depend on the coding mode.", + "Eac3Settings$LoRoCenterMixLevel": "Left only/Right only center mix level. Only used for 3/2 coding mode.", + "Eac3Settings$LoRoSurroundMixLevel": "Left only/Right only surround mix level. Only used for 3/2 coding mode.", + "Eac3Settings$LtRtCenterMixLevel": "Left total/Right total center mix level. Only used for 3/2 coding mode.", + "Eac3Settings$LtRtSurroundMixLevel": "Left total/Right total surround mix level. Only used for 3/2 coding mode.", + "H264Settings$GopSize": "GOP size (keyframe interval) in units of either frames or seconds per gopSizeUnits. Must be greater than zero.", + "M2tsSettings$FragmentTime": "The length in seconds of each fragment. Only used with EBP markers.", + "M2tsSettings$NullPacketBitrate": "Value in bits per second of extra null packets to insert into the transport stream. This can be used if a downstream encryption system requires periodic null packets.", + "M2tsSettings$SegmentationTime": "The length in seconds of each segment. Required unless markers is set to None_.", + "Mp2Settings$Bitrate": "Average bitrate in bits/second.", + "Mp2Settings$SampleRate": "Sample rate in Hz." + } + }, + "__integer": { + "base": null, + "refs": { + "Ac3Settings$Dialnorm": "Sets the dialnorm for the output. If excluded and input audio is Dolby Digital, dialnorm will be passed through.", + "ArchiveGroupSettings$RolloverInterval": "Number of seconds to write to archive file before closing and starting a new one.", + "AudioChannelMapping$OutputChannel": "The index of the output channel being produced.", + "AudioPidSelection$Pid": "Selects a specific PID from within a source.", + "BurnInDestinationSettings$BackgroundOpacity": "Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.", + "BurnInDestinationSettings$FontOpacity": "Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.", + "BurnInDestinationSettings$FontResolution": "Font resolution in DPI (dots per inch); default is 96 dpi. All burn-in and DVB-Sub font settings must match.", + "BurnInDestinationSettings$OutlineSize": "Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "BurnInDestinationSettings$ShadowOpacity": "Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.", + "BurnInDestinationSettings$ShadowXOffset": "Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match.", + "BurnInDestinationSettings$ShadowYOffset": "Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match.", + "BurnInDestinationSettings$XPosition": "Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings must match.", + "BurnInDestinationSettings$YPosition": "Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit yPosition is provided, the caption will be positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match.", + "CaptionLanguageMapping$CaptionChannel": "Channel to insert closed captions. Each channel mapping must have a unique channel number (maximum of 4)", + "Channel$PipelinesRunningCount": "The number of currently healthy pipelines.", + "ChannelSummary$PipelinesRunningCount": "The number of currently healthy pipelines.", + "DvbNitSettings$NetworkId": "The numeric value placed in the Network Information Table (NIT).", + "DvbNitSettings$RepInterval": "The number of milliseconds between instances of this table in the output transport stream.", + "DvbSdtSettings$RepInterval": "The number of milliseconds between instances of this table in the output transport stream.", + "DvbSubDestinationSettings$BackgroundOpacity": "Specifies the opacity of the background rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$FontOpacity": "Specifies the opacity of the burned-in captions. 255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$FontResolution": "Font resolution in DPI (dots per inch); default is 96 dpi. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$OutlineSize": "Specifies font outline size in pixels. This option is not valid for source captions that are either 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$ShadowOpacity": "Specifies the opacity of the shadow. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$ShadowXOffset": "Specifies the horizontal offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$ShadowYOffset": "Specifies the vertical offset of the shadow relative to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$XPosition": "Specifies the horizontal position of the caption relative to the left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal caption position will be determined by the alignment parameter. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "DvbSubDestinationSettings$YPosition": "Specifies the vertical position of the caption relative to the top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from the top of the output. If no explicit yPosition is provided, the caption will be positioned towards the bottom of the output. This option is not valid for source captions that are STL, 608/embedded or teletext. These source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.", + "DvbSubSourceSettings$Pid": "When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through, regardless of selectors.", + "DvbTdtSettings$RepInterval": "The number of milliseconds between instances of this table in the output transport stream.", + "Eac3Settings$Dialnorm": "Sets the dialnorm for the output. If blank and input audio is Dolby Digital Plus, dialnorm will be passed through.", + "EmbeddedSourceSettings$Source608ChannelNumber": "Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough.", + "EmbeddedSourceSettings$Source608TrackNumber": "This field is unused and deprecated.", + "FecOutputSettings$ColumnDepth": "Parameter D from SMPTE 2022-1. The height of the FEC protection matrix. The number of transport stream packets per column error correction packet. Must be between 4 and 20, inclusive.", + "FecOutputSettings$RowLength": "Parameter L from SMPTE 2022-1. The width of the FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values increase robustness. If Row FEC is used, then this is the number of transport stream packets per row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.", + "GlobalConfiguration$InitialAudioGain": "Value to set the initial audio gain for the Live Event.", + "H264Settings$Bitrate": "Average bitrate in bits/second. Required for VBR, CBR, and ABR. For MS Smooth outputs, bitrates must be unique when rounded down to the nearest multiple of 1000.", + "H264Settings$BufFillPct": "Percentage of the buffer that should initially be filled (HRD buffer model).", + "H264Settings$BufSize": "Size of buffer (HRD buffer model) in bits/second.", + "H264Settings$FramerateDenominator": "Framerate denominator.", + "H264Settings$FramerateNumerator": "Framerate numerator - framerate is a fraction, e.g. 24000 / 1001 = 23.976 fps.", + "H264Settings$GopClosedCadence": "Frequency of closed GOPs. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0 will break output segmenting.", + "H264Settings$GopNumBFrames": "Number of B-frames between reference frames.", + "H264Settings$MaxBitrate": "Maximum bitrate in bits/second (for VBR mode only).", + "H264Settings$MinIInterval": "Only meaningful if sceneChangeDetect is set to enabled. Enforces separation between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1", + "H264Settings$NumRefFrames": "Number of reference frames to use. The encoder may use more than requested if using B-frames and/or interlaced encoding.", + "H264Settings$ParDenominator": "Pixel Aspect Ratio denominator.", + "H264Settings$ParNumerator": "Pixel Aspect Ratio numerator.", + "H264Settings$Slices": "Number of slices per picture. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures.\nThis field is optional; when no value is specified the encoder will choose the number of slices based on encode resolution.", + "H264Settings$Softness": "Softness. Selects quantizer matrix, larger values reduce high-frequency content in the encoded image.", + "HlsAkamaiSettings$ConnectionRetryInterval": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", + "HlsAkamaiSettings$FilecacheDuration": "Size in seconds of file cache for streaming outputs.", + "HlsAkamaiSettings$NumRetries": "Number of retry attempts that will be made before the Live Event is put into an error state.", + "HlsAkamaiSettings$RestartDelay": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", + "HlsBasicPutSettings$ConnectionRetryInterval": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", + "HlsBasicPutSettings$FilecacheDuration": "Size in seconds of file cache for streaming outputs.", + "HlsBasicPutSettings$NumRetries": "Number of retry attempts that will be made before the Live Event is put into an error state.", + "HlsBasicPutSettings$RestartDelay": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", + "HlsGroupSettings$IndexNSegments": "Number of segments to keep in the playlist (.m3u8) file. mode must be \"vod\" for this setting to have an effect, and this number should be less than or equal to keepSegments.", + "HlsGroupSettings$KeepSegments": "Number of segments to retain in the destination directory. mode must be \"live\" for this setting to have an effect.", + "HlsGroupSettings$MinSegmentLength": "When set, minimumSegmentLength is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed.", + "HlsGroupSettings$ProgramDateTimePeriod": "Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.", + "HlsGroupSettings$SegmentLength": "Length of MPEG-2 Transport Stream segments to create (in seconds). Note that segments will end on the next keyframe after this number of seconds, so actual segment length may be longer.", + "HlsGroupSettings$SegmentsPerSubdirectory": "Number of segments to write to a subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to have an effect.", + "HlsGroupSettings$TimedMetadataId3Period": "Timed Metadata interval in seconds.", + "HlsGroupSettings$TimestampDeltaMilliseconds": "Provides an extra millisecond delta offset to fine tune the timestamps.", + "HlsInputSettings$Bandwidth": "When specified the HLS stream with the m3u8 BANDWIDTH that most closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.", + "HlsInputSettings$BufferSegments": "When specified, reading of the HLS input will begin this many buffer segments from the end (most recently written segment). When not specified, the HLS input will begin with the first segment specified in the m3u8.", + "HlsInputSettings$Retries": "The number of consecutive times that attempts to read a manifest or segment must fail before the input is considered unavailable.", + "HlsInputSettings$RetryInterval": "The number of seconds between retries when an attempt to read a manifest or segment fails.", + "HlsMediaStoreSettings$ConnectionRetryInterval": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", + "HlsMediaStoreSettings$FilecacheDuration": "Size in seconds of file cache for streaming outputs.", + "HlsMediaStoreSettings$NumRetries": "Number of retry attempts that will be made before the Live Event is put into an error state.", + "HlsMediaStoreSettings$RestartDelay": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", + "HlsWebdavSettings$ConnectionRetryInterval": "Number of seconds to wait before retrying connection to the CDN if the connection is lost.", + "HlsWebdavSettings$FilecacheDuration": "Size in seconds of file cache for streaming outputs.", + "HlsWebdavSettings$NumRetries": "Number of retry attempts that will be made before the Live Event is put into an error state.", + "HlsWebdavSettings$RestartDelay": "If a streaming output fails, number of seconds to wait until a restart is initiated. A value of 0 means never restart.", + "InputChannelLevel$Gain": "Remixing value. Units are in dB and acceptable values are within the range from -60 (mute) and 6 dB.", + "InputChannelLevel$InputChannel": "The index of the input channel used as a source.", + "InputLossBehavior$BlackFrameMsec": "On input loss, the number of milliseconds to substitute black into the output before switching to the frame specified by inputLossImageType. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000 will be interpreted as infinite.", + "InputLossBehavior$RepeatFrameMsec": "On input loss, the number of milliseconds to repeat the previous picture before substituting black into the output. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000 will be interpreted as infinite.", + "InputSettings$FilterStrength": "Adjusts the magnitude of filtering from 1 (minimal) to 5 (strongest).", + "M2tsSettings$AudioFramesPerPes": "The number of audio frames to insert for each PES packet.", + "M2tsSettings$Bitrate": "The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.", + "M2tsSettings$EbpLookaheadMs": "When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by looking ahead at input video. If another EBP is going to come in within the specified time interval, the current EBP is not emitted, and the segment is \"stretched\" to the next marker. The lookahead value does not add latency to the system. The Live Event must be configured elsewhere to create sufficient latency to make the lookahead accurate.", + "M2tsSettings$PatInterval": "The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, 10..1000.", + "M2tsSettings$PcrPeriod": "Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream.", + "M2tsSettings$PmtInterval": "The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, 10..1000.", + "M2tsSettings$ProgramNum": "The value of the program number field in the Program Map Table.", + "M2tsSettings$TransportStreamId": "The value of the transport stream ID field in the Program Map Table.", + "M3u8Settings$AudioFramesPerPes": "The number of audio frames to insert for each PES packet.", + "M3u8Settings$PatInterval": "The number of milliseconds between instances of this table in the output transport stream. A value of \\\"0\\\" writes out the PMT once per segment file.", + "M3u8Settings$PcrPeriod": "Maximum time in milliseconds between Program Clock References (PCRs) inserted into the transport stream.", + "M3u8Settings$PmtInterval": "The number of milliseconds between instances of this table in the output transport stream. A value of \\\"0\\\" writes out the PMT once per segment file.", + "M3u8Settings$ProgramNum": "The value of the program number field in the Program Map Table.", + "M3u8Settings$TransportStreamId": "The value of the transport stream ID field in the Program Map Table.", + "MsSmoothGroupSettings$ConnectionRetryInterval": "Number of seconds to wait before retrying connection to the IIS server if the connection is lost. Content will be cached during this time and the cache will be be delivered to the IIS server once the connection is re-established.", + "MsSmoothGroupSettings$FilecacheDuration": "Size in seconds of file cache for streaming outputs.", + "MsSmoothGroupSettings$FragmentLength": "Length of mp4 fragments to generate (in seconds). Fragment length must be compatible with GOP size and framerate.", + "MsSmoothGroupSettings$NumRetries": "Number of retry attempts.", + "MsSmoothGroupSettings$RestartDelay": "Number of seconds before initiating a restart due to output failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.", + "MsSmoothGroupSettings$SendDelayMs": "Outputs that are \"output locked\" can use this delay. Assign a delay to the output that is \"secondary\". Do not assign a delay to the \"primary\" output. The delay means that the primary output will always reach the downstream system before the secondary, which helps ensure that the downstream system always uses the primary output. (If there were no delay, the downstream system might flip-flop between whichever output happens to arrive first.) If the primary fails, the downstream system will switch to the secondary output. When the primary is restarted, the downstream system will switch back to the primary (because once again it is always arriving first)", + "RemixSettings$ChannelsIn": "Number of input channels to be used.", + "RemixSettings$ChannelsOut": "Number of output channels to be produced.\nValid values: 1, 2, 4, 6, 8", + "Scte20SourceSettings$Source608ChannelNumber": "Specifies the 608/708 channel number within the video track from which to extract captions. Unused for passthrough.", + "Scte27SourceSettings$Pid": "The pid field is used in conjunction with the caption selector languageCode field as follows:\n - Specify PID and Language: Extracts captions from that PID; the language is \"informational\".\n - Specify PID and omit Language: Extracts the specified PID.\n - Omit PID and specify Language: Extracts the specified language, whichever PID that happens to be.\n - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all languages will be passed through.", + "Scte35SpliceInsert$AdAvailOffset": "When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply to OOB messages.", + "Scte35TimeSignalApos$AdAvailOffset": "When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply to OOB messages.", + "TimecodeConfig$SyncThreshold": "Threshold in frames beyond which output timecode is resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.", + "UdpGroupSettings$TimedMetadataId3Period": "Timed Metadata interval in seconds.", + "UdpOutputSettings$BufferMsec": "UDP output buffering in milliseconds. Larger values increase latency through the transcoder but simultaneously assist the transcoder in maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input disruptions, picture reordering, etc.", + "VideoDescription$Height": "Output video height (in pixels). Leave blank to use source video height. If left blank, width must also be unspecified.", + "VideoDescription$Sharpness": "Changes the width of the anti-alias filter kernel used for scaling. Only applies if scaling is being performed and antiAlias is set to true. 0 is the softest setting, 100 the sharpest, and 50 recommended for most content.", + "VideoDescription$Width": "Output video width (in pixels). Leave out to use source video width. If left out, height must also be left out. Display aspect ratio is always preserved by letterboxing or pillarboxing when necessary.", + "VideoSelectorPid$Pid": "Selects a specific PID from within a video source.", + "VideoSelectorProgramId$ProgramId": "Selects a specific program from within a multi-program transport stream. If the program doesn't exist, the first program within the transport stream will be selected by default." + } + }, + "__string": { + "base": null, + "refs": { + "AccessDenied$Message": null, + "ArchiveOutputSettings$Extension": "Output file extension. If excluded, this will be auto-selected from the container type.", + "ArchiveOutputSettings$NameModifier": "String concatenated to the end of the destination filename. Required for multiple outputs of the same type.", + "AudioDescription$AudioSelectorName": "The name of the AudioSelector used as the source for this AudioDescription.", + "AudioDescription$LanguageCode": "Indicates the language of the audio output track. Only used if languageControlMode is useConfigured, or there is no ISO 639 language code specified in the input.", + "AudioDescription$Name": "The name of this AudioDescription. Outputs will use this name to uniquely identify this AudioDescription. Description names should be unique within this Live Event.", + "AudioDescription$StreamName": "Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or Director Commentary).", + "AudioLanguageSelection$LanguageCode": "Selects a specific three-letter language code from within an audio source.", + "AudioOnlyHlsSettings$AudioGroupId": "Specifies the group to which the audio Rendition belongs.", + "AudioSelector$Name": "The name of this AudioSelector. AudioDescriptions will use this name to uniquely identify this Selector. Selector names should be unique per input.", + "BlackoutSlate$NetworkId": "Provides Network ID that matches EIDR ID format (e.g., \"10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C\").", + "BurnInDestinationSettings$FontSize": "When set to 'auto' fontSize will scale depending on the size of the output. Giving a positive integer will specify the exact font size in points. All burn-in and DVB-Sub font settings must match.", + "CaptionDescription$CaptionSelectorName": "Specifies which input caption selector to use as a caption source when generating output captions. This field should match a captionSelector name.", + "CaptionDescription$LanguageCode": "ISO 639-2 three-digit code: http://www.loc.gov/standards/iso639-2/", + "CaptionDescription$LanguageDescription": "Human readable information to indicate captions available for players (eg. English, or Spanish).", + "CaptionDescription$Name": "Name of the caption description. Used to associate a caption description with an output. Names must be unique within an event.", + "CaptionLanguageMapping$LanguageCode": "Three character ISO 639-2 language code (see http://www.loc.gov/standards/iso639-2)", + "CaptionLanguageMapping$LanguageDescription": "Textual description of language", + "CaptionSelector$LanguageCode": "When specified this field indicates the three letter language code of the caption track to extract from the source.", + "CaptionSelector$Name": "Name identifier for a caption selector. This name is used to associate this caption selector with one or more caption descriptions. Names must be unique within an event.", + "Channel$Arn": "The unique arn of the channel.", + "Channel$Id": "The unique id of the channel.", + "Channel$Name": "The name of the channel. (user-mutable)", + "Channel$RoleArn": "The Amazon Resource Name (ARN) of the role assumed when running the Channel.", + "ChannelConfigurationValidationError$Message": null, + "ChannelEgressEndpoint$SourceIp": "Public IP of where a channel's output comes from", + "ChannelSummary$Arn": "The unique arn of the channel.", + "ChannelSummary$Id": "The unique id of the channel.", + "ChannelSummary$Name": "The name of the channel. (user-mutable)", + "ChannelSummary$RoleArn": "The Amazon Resource Name (ARN) of the role assumed when running the Channel.", + "CreateChannel$Name": "Name of channel.", + "CreateChannel$RequestId": "Unique request ID to be specified. This is needed to prevent retries from\ncreating multiple resources.\n", + "CreateChannel$Reserved": "Reserved for future use.", + "CreateChannel$RoleArn": "An optional Amazon Resource Name (ARN) of the role to assume when running the Channel.", + "CreateInput$Name": "Name of the input.", + "CreateInput$RequestId": "Unique identifier of the request to ensure the request is handled\nexactly once in case of retries\n", + "DvbNitSettings$NetworkName": "The network name text placed in the networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.", + "DvbSdtSettings$ServiceName": "The service name placed in the serviceDescriptor in the Service Description Table. Maximum length is 256 characters.", + "DvbSdtSettings$ServiceProviderName": "The service provider name placed in the serviceDescriptor in the Service Description Table. Maximum length is 256 characters.", + "DvbSubDestinationSettings$FontSize": "When set to auto fontSize will scale depending on the size of the output. Giving a positive integer will specify the exact font size in points. All burn-in and DVB-Sub font settings must match.", + "HlsAkamaiSettings$Salt": "Salt for authenticated Akamai.", + "HlsAkamaiSettings$Token": "Token parameter for authenticated akamai. If not specified, _gda_ is used.", + "HlsGroupSettings$BaseUrlContent": "A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the main .m3u8 file.", + "HlsGroupSettings$BaseUrlManifest": "A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the main .m3u8 file.", + "HlsGroupSettings$ConstantIv": "For use with encryptionType. This is a 128-bit, 16-byte hex value represented by a 32-character text string. If ivSource is set to \"explicit\" then this parameter is required and is used as the IV for encryption.", + "HlsGroupSettings$KeyFormat": "The value specifies how the key is represented in the resource identified by the URI. If parameter is absent, an implicit value of \"identity\" is used. A reverse DNS string can also be given.", + "HlsGroupSettings$KeyFormatVersions": "Either a single positive integer version value or a slash delimited list of version values (1/2/3).", + "HlsOutputSettings$NameModifier": "String concatenated to the end of the destination filename. Accepts \\\"Format Identifiers\\\":#formatIdentifierParameters.", + "HlsOutputSettings$SegmentModifier": "String concatenated to end of segment filenames.", + "Input$Arn": "Unique ARN of input (generated, immutable)", + "Input$Id": "generated ID of input (unique for user account, immutable)", + "Input$Name": "user-assigned name (mutable)", + "InputAttachment$InputId": "The ID of the input", + "InputDestination$Ip": "system-generated static IP address of endpoint.\nRemains fixed for the lifetime of the input\n", + "InputDestination$Port": "port for input", + "InputDestination$Url": "This represents the endpoint that the customer stream will be\npushed to.\n", + "InputDestinationRequest$StreamName": "A unique name for the location the RTMP stream is being pushed\nto.\n", + "InputLocation$PasswordParam": "key used to extract the password from EC2 Parameter store", + "InputLocation$Uri": "Uniform Resource Identifier - This should be a path to a file accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a rtmpEndpoint should have a uri simliar to: \"rtmp://fmsserver/live\".", + "InputLocation$Username": "Username if credentials are required to access a file or publishing point. This can be either a plaintext username, or a reference to an AWS parameter store name from which the username can be retrieved. AWS Parameter store format: \"ssm://\"", + "InputLossBehavior$InputLossImageColor": "When input loss image type is \"color\" this field specifies the color to use. Value: 6 hex characters representing the values of RGB.", + "InputSecurityGroup$Arn": "Unique ARN of Input Security Group", + "InputSecurityGroup$Id": "The Id of the Input Security Group", + "InputSource$PasswordParam": "key used to extract the password from EC2 Parameter store", + "InputSource$Url": "This represents the customer's source URL where stream is\npulled from.\n", + "InputSource$Username": "username for input source", + "InputSourceRequest$PasswordParam": "key used to extract the password from EC2 Parameter store", + "InputSourceRequest$Url": "This represents the customer's source URL where stream is\npulled from.\n", + "InputSourceRequest$Username": "username for input source", + "InputWhitelistRule$Cidr": "The IPv4 CIDR that's whitelisted.", + "InputWhitelistRuleCidr$Cidr": "The IPv4 CIDR to whitelist", + "InternalServiceError$Message": null, + "InvalidRequest$Message": null, + "LimitExceeded$Message": null, + "ListChannelsResultModel$NextToken": null, + "ListInputSecurityGroupsResultModel$NextToken": null, + "ListInputsResultModel$NextToken": null, + "ListOf__string$member": null, + "M2tsSettings$AribCaptionsPid": "Packet Identifier (PID) for ARIB Captions in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$AudioPids": "Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$DvbSubPids": "Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$DvbTeletextPid": "Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$EcmPid": "Packet Identifier (PID) for ECM in the transport stream. Only enabled when Simulcrypt is enabled. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$EtvPlatformPid": "Packet Identifier (PID) for input source ETV Platform data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$EtvSignalPid": "Packet Identifier (PID) for input source ETV Signal data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$KlvDataPids": "Packet Identifier (PID) for input source KLV data to this output. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$PcrPid": "Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$PmtPid": "Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$Scte27Pids": "Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$Scte35Pid": "Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$TimedMetadataPid": "Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", + "M2tsSettings$VideoPid": "Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).", + "M3u8Settings$AudioPids": "Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.", + "M3u8Settings$EcmPid": "ThePlatform-protected transport streams using 'microsoft' as Target Client include an ECM stream. This ECM stream contains the size, IV, and PTS of every sample in the transport stream. This stream PID is specified here. This PID has no effect on non ThePlatform-protected streams.", + "M3u8Settings$PcrPid": "Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value.", + "M3u8Settings$PmtPid": "Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.", + "M3u8Settings$Scte35Pid": "Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "M3u8Settings$VideoPid": "Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or hexadecimal value.", + "MsSmoothGroupSettings$AcquisitionPointId": "The value of the \"Acquisition Point Identity\" element used in each message placed in the sparse track. Only enabled if sparseTrackType is not \"none\".", + "MsSmoothGroupSettings$EventId": "MS Smooth event ID to be sent to the IIS server.\n\nShould only be specified if eventIdMode is set to useConfigured.", + "MsSmoothGroupSettings$TimestampOffset": "Timestamp offset for the event. Only used if timestampOffsetMode is set to useConfiguredOffset.", + "MsSmoothOutputSettings$NameModifier": "String concatenated to the end of the destination filename. Required for multiple outputs of the same type.", + "Output$OutputName": "The name used to identify an output.", + "Output$VideoDescriptionName": "The name of the VideoDescription used as the source for this output.", + "OutputDestination$Id": "User-specified id. This is used in an output group or an output.", + "OutputDestinationSettings$PasswordParam": "key used to extract the password from EC2 Parameter store", + "OutputDestinationSettings$Url": "A URL specifying a destination", + "OutputDestinationSettings$Username": "username for destination", + "OutputGroup$Name": "Custom output group name optionally defined by the user. Only letters, numbers, and the underscore character allowed; only 32 characters allowed.", + "OutputLocationRef$DestinationRefId": null, + "ResourceConflict$Message": null, + "ResourceNotFound$Message": null, + "StandardHlsSettings$AudioRenditionSets": "List all the audio groups that are used with the video output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.", + "StaticKeySettings$StaticKeyValue": "Static key value as a 32 character hexadecimal string.", + "TeletextSourceSettings$PageNumber": "Specifies the teletext page number within the data stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should be specified as a hexadecimal string with no \"0x\" prefix.", + "ValidationError$ElementPath": null, + "ValidationError$ErrorMessage": null, + "VideoDescription$Name": "The name of this VideoDescription. Outputs will use this name to uniquely identify this Description. Description names should be unique within this Live Event." + } + } + } +} \ No newline at end of file diff --git a/models/apis/medialive/2017-10-14/paginators-1.json b/models/apis/medialive/2017-10-14/paginators-1.json new file mode 100644 index 00000000000..1335d966395 --- /dev/null +++ b/models/apis/medialive/2017-10-14/paginators-1.json @@ -0,0 +1,22 @@ +{ + "pagination": { + "ListInputs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Inputs" + }, + "ListChannels": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Channels" + }, + "ListInputSecurityGroups": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "InputSecurityGroups" + } + } +} diff --git a/models/apis/mediapackage/2017-10-12/api-2.json b/models/apis/mediapackage/2017-10-12/api-2.json new file mode 100644 index 00000000000..8178115dd60 --- /dev/null +++ b/models/apis/mediapackage/2017-10-12/api-2.json @@ -0,0 +1,1485 @@ +{ + "metadata": { + "apiVersion": "2017-10-12", + "endpointPrefix": "mediapackage", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceAbbreviation": "MediaPackage", + "serviceFullName": "AWS Elemental MediaPackage", + "serviceId": "MediaPackage", + "signatureVersion": "v4", + "signingName": "mediapackage", + "uid": "mediapackage-2017-10-12" + }, + "operations": { + "CreateChannel": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "POST", + "requestUri": "/channels", + "responseCode": 200 + }, + "input": { + "shape": "CreateChannelRequest" + }, + "name": "CreateChannel", + "output": { + "shape": "CreateChannelResponse" + } + }, + "CreateOriginEndpoint": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "POST", + "requestUri": "/origin_endpoints", + "responseCode": 200 + }, + "input": { + "shape": "CreateOriginEndpointRequest" + }, + "name": "CreateOriginEndpoint", + "output": { + "shape": "CreateOriginEndpointResponse" + } + }, + "DeleteChannel": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/channels/{id}", + "responseCode": 202 + }, + "input": { + "shape": "DeleteChannelRequest" + }, + "name": "DeleteChannel", + "output": { + "shape": "DeleteChannelResponse" + } + }, + "DeleteOriginEndpoint": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/origin_endpoints/{id}", + "responseCode": 202 + }, + "input": { + "shape": "DeleteOriginEndpointRequest" + }, + "name": "DeleteOriginEndpoint", + "output": { + "shape": "DeleteOriginEndpointResponse" + } + }, + "DescribeChannel": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "GET", + "requestUri": "/channels/{id}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeChannelRequest" + }, + "name": "DescribeChannel", + "output": { + "shape": "DescribeChannelResponse" + } + }, + "DescribeOriginEndpoint": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "GET", + "requestUri": "/origin_endpoints/{id}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeOriginEndpointRequest" + }, + "name": "DescribeOriginEndpoint", + "output": { + "shape": "DescribeOriginEndpointResponse" + } + }, + "ListChannels": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "GET", + "requestUri": "/channels", + "responseCode": 200 + }, + "input": { + "shape": "ListChannelsRequest" + }, + "name": "ListChannels", + "output": { + "shape": "ListChannelsResponse" + } + }, + "ListOriginEndpoints": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "GET", + "requestUri": "/origin_endpoints", + "responseCode": 200 + }, + "input": { + "shape": "ListOriginEndpointsRequest" + }, + "name": "ListOriginEndpoints", + "output": { + "shape": "ListOriginEndpointsResponse" + } + }, + "RotateChannelCredentials": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/channels/{id}/credentials", + "responseCode": 200 + }, + "input": { + "shape": "RotateChannelCredentialsRequest" + }, + "name": "RotateChannelCredentials", + "output": { + "shape": "RotateChannelCredentialsResponse" + } + }, + "UpdateChannel": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/channels/{id}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateChannelRequest" + }, + "name": "UpdateChannel", + "output": { + "shape": "UpdateChannelResponse" + } + }, + "UpdateOriginEndpoint": { + "errors": [ + { + "shape": "UnprocessableEntityException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/origin_endpoints/{id}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateOriginEndpointRequest" + }, + "name": "UpdateOriginEndpoint", + "output": { + "shape": "UpdateOriginEndpointResponse" + } + } + }, + "shapes": { + "AdMarkers": { + "enum": [ + "NONE", + "SCTE35_ENHANCED", + "PASSTHROUGH" + ], + "type": "string" + }, + "Channel": { + "members": { + "Arn": { + "locationName": "arn", + "shape": "__string" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsIngest": { + "locationName": "hlsIngest", + "shape": "HlsIngest" + }, + "Id": { + "locationName": "id", + "shape": "__string" + } + }, + "type": "structure" + }, + "ChannelCreateParameters": { + "members": { + "Description": { + "locationName": "description", + "shape": "__string" + }, + "Id": { + "locationName": "id", + "shape": "__string" + } + }, + "type": "structure" + }, + "ChannelList": { + "members": { + "Channels": { + "locationName": "channels", + "shape": "ListOfChannel" + }, + "NextToken": { + "locationName": "nextToken", + "shape": "__string" + } + }, + "type": "structure" + }, + "ChannelUpdateParameters": { + "members": { + "Description": { + "locationName": "description", + "shape": "__string" + } + }, + "type": "structure" + }, + "CreateChannelRequest": { + "members": { + "Description": { + "locationName": "description", + "shape": "__string" + }, + "Id": { + "locationName": "id", + "shape": "__string" + } + }, + "required": [ + "Id" + ], + "type": "structure" + }, + "CreateChannelResponse": { + "members": { + "Arn": { + "locationName": "arn", + "shape": "__string" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsIngest": { + "locationName": "hlsIngest", + "shape": "HlsIngest" + }, + "Id": { + "locationName": "id", + "shape": "__string" + } + }, + "type": "structure" + }, + "CreateOriginEndpointRequest": { + "members": { + "ChannelId": { + "locationName": "channelId", + "shape": "__string" + }, + "DashPackage": { + "locationName": "dashPackage", + "shape": "DashPackage" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsPackage": { + "locationName": "hlsPackage", + "shape": "HlsPackage" + }, + "Id": { + "locationName": "id", + "shape": "__string" + }, + "ManifestName": { + "locationName": "manifestName", + "shape": "__string" + }, + "MssPackage": { + "locationName": "mssPackage", + "shape": "MssPackage" + }, + "StartoverWindowSeconds": { + "locationName": "startoverWindowSeconds", + "shape": "__integer" + }, + "TimeDelaySeconds": { + "locationName": "timeDelaySeconds", + "shape": "__integer" + }, + "Whitelist": { + "locationName": "whitelist", + "shape": "ListOf__string" + } + }, + "required": [ + "ChannelId", + "Id" + ], + "type": "structure" + }, + "CreateOriginEndpointResponse": { + "members": { + "Arn": { + "locationName": "arn", + "shape": "__string" + }, + "ChannelId": { + "locationName": "channelId", + "shape": "__string" + }, + "DashPackage": { + "locationName": "dashPackage", + "shape": "DashPackage" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsPackage": { + "locationName": "hlsPackage", + "shape": "HlsPackage" + }, + "Id": { + "locationName": "id", + "shape": "__string" + }, + "ManifestName": { + "locationName": "manifestName", + "shape": "__string" + }, + "MssPackage": { + "locationName": "mssPackage", + "shape": "MssPackage" + }, + "StartoverWindowSeconds": { + "locationName": "startoverWindowSeconds", + "shape": "__integer" + }, + "TimeDelaySeconds": { + "locationName": "timeDelaySeconds", + "shape": "__integer" + }, + "Url": { + "locationName": "url", + "shape": "__string" + }, + "Whitelist": { + "locationName": "whitelist", + "shape": "ListOf__string" + } + }, + "type": "structure" + }, + "DashEncryption": { + "members": { + "KeyRotationIntervalSeconds": { + "locationName": "keyRotationIntervalSeconds", + "shape": "__integer" + }, + "SpekeKeyProvider": { + "locationName": "spekeKeyProvider", + "shape": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "structure" + }, + "DashPackage": { + "members": { + "Encryption": { + "locationName": "encryption", + "shape": "DashEncryption" + }, + "ManifestWindowSeconds": { + "locationName": "manifestWindowSeconds", + "shape": "__integer" + }, + "MinBufferTimeSeconds": { + "locationName": "minBufferTimeSeconds", + "shape": "__integer" + }, + "MinUpdatePeriodSeconds": { + "locationName": "minUpdatePeriodSeconds", + "shape": "__integer" + }, + "Profile": { + "locationName": "profile", + "shape": "Profile" + }, + "SegmentDurationSeconds": { + "locationName": "segmentDurationSeconds", + "shape": "__integer" + }, + "StreamSelection": { + "locationName": "streamSelection", + "shape": "StreamSelection" + }, + "SuggestedPresentationDelaySeconds": { + "locationName": "suggestedPresentationDelaySeconds", + "shape": "__integer" + } + }, + "type": "structure" + }, + "DeleteChannelRequest": { + "members": { + "Id": { + "location": "uri", + "locationName": "id", + "shape": "__string" + } + }, + "required": [ + "Id" + ], + "type": "structure" + }, + "DeleteChannelResponse": { + "members": {}, + "type": "structure" + }, + "DeleteOriginEndpointRequest": { + "members": { + "Id": { + "location": "uri", + "locationName": "id", + "shape": "__string" + } + }, + "required": [ + "Id" + ], + "type": "structure" + }, + "DeleteOriginEndpointResponse": { + "members": {}, + "type": "structure" + }, + "DescribeChannelRequest": { + "members": { + "Id": { + "location": "uri", + "locationName": "id", + "shape": "__string" + } + }, + "required": [ + "Id" + ], + "type": "structure" + }, + "DescribeChannelResponse": { + "members": { + "Arn": { + "locationName": "arn", + "shape": "__string" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsIngest": { + "locationName": "hlsIngest", + "shape": "HlsIngest" + }, + "Id": { + "locationName": "id", + "shape": "__string" + } + }, + "type": "structure" + }, + "DescribeOriginEndpointRequest": { + "members": { + "Id": { + "location": "uri", + "locationName": "id", + "shape": "__string" + } + }, + "required": [ + "Id" + ], + "type": "structure" + }, + "DescribeOriginEndpointResponse": { + "members": { + "Arn": { + "locationName": "arn", + "shape": "__string" + }, + "ChannelId": { + "locationName": "channelId", + "shape": "__string" + }, + "DashPackage": { + "locationName": "dashPackage", + "shape": "DashPackage" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsPackage": { + "locationName": "hlsPackage", + "shape": "HlsPackage" + }, + "Id": { + "locationName": "id", + "shape": "__string" + }, + "ManifestName": { + "locationName": "manifestName", + "shape": "__string" + }, + "MssPackage": { + "locationName": "mssPackage", + "shape": "MssPackage" + }, + "StartoverWindowSeconds": { + "locationName": "startoverWindowSeconds", + "shape": "__integer" + }, + "TimeDelaySeconds": { + "locationName": "timeDelaySeconds", + "shape": "__integer" + }, + "Url": { + "locationName": "url", + "shape": "__string" + }, + "Whitelist": { + "locationName": "whitelist", + "shape": "ListOf__string" + } + }, + "type": "structure" + }, + "EncryptionMethod": { + "enum": [ + "AES_128", + "SAMPLE_AES" + ], + "type": "string" + }, + "ForbiddenException": { + "error": { + "httpStatusCode": 403 + }, + "exception": true, + "members": { + "Message": { + "locationName": "message", + "shape": "__string" + } + }, + "type": "structure" + }, + "HlsEncryption": { + "members": { + "ConstantInitializationVector": { + "locationName": "constantInitializationVector", + "shape": "__string" + }, + "EncryptionMethod": { + "locationName": "encryptionMethod", + "shape": "EncryptionMethod" + }, + "KeyRotationIntervalSeconds": { + "locationName": "keyRotationIntervalSeconds", + "shape": "__integer" + }, + "RepeatExtXKey": { + "locationName": "repeatExtXKey", + "shape": "__boolean" + }, + "SpekeKeyProvider": { + "locationName": "spekeKeyProvider", + "shape": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "structure" + }, + "HlsIngest": { + "members": { + "IngestEndpoints": { + "locationName": "ingestEndpoints", + "shape": "ListOfIngestEndpoint" + } + }, + "type": "structure" + }, + "HlsPackage": { + "members": { + "AdMarkers": { + "locationName": "adMarkers", + "shape": "AdMarkers" + }, + "Encryption": { + "locationName": "encryption", + "shape": "HlsEncryption" + }, + "IncludeIframeOnlyStream": { + "locationName": "includeIframeOnlyStream", + "shape": "__boolean" + }, + "PlaylistType": { + "locationName": "playlistType", + "shape": "PlaylistType" + }, + "PlaylistWindowSeconds": { + "locationName": "playlistWindowSeconds", + "shape": "__integer" + }, + "ProgramDateTimeIntervalSeconds": { + "locationName": "programDateTimeIntervalSeconds", + "shape": "__integer" + }, + "SegmentDurationSeconds": { + "locationName": "segmentDurationSeconds", + "shape": "__integer" + }, + "StreamSelection": { + "locationName": "streamSelection", + "shape": "StreamSelection" + }, + "UseAudioRenditionGroup": { + "locationName": "useAudioRenditionGroup", + "shape": "__boolean" + } + }, + "type": "structure" + }, + "IngestEndpoint": { + "members": { + "Password": { + "locationName": "password", + "shape": "__string" + }, + "Url": { + "locationName": "url", + "shape": "__string" + }, + "Username": { + "locationName": "username", + "shape": "__string" + } + }, + "type": "structure" + }, + "InternalServerErrorException": { + "error": { + "httpStatusCode": 500 + }, + "exception": true, + "members": { + "Message": { + "locationName": "message", + "shape": "__string" + } + }, + "type": "structure" + }, + "ListChannelsRequest": { + "members": { + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "__string" + } + }, + "type": "structure" + }, + "ListChannelsResponse": { + "members": { + "Channels": { + "locationName": "channels", + "shape": "ListOfChannel" + }, + "NextToken": { + "locationName": "nextToken", + "shape": "__string" + } + }, + "type": "structure" + }, + "ListOfChannel": { + "member": { + "shape": "Channel" + }, + "type": "list" + }, + "ListOfIngestEndpoint": { + "member": { + "shape": "IngestEndpoint" + }, + "type": "list" + }, + "ListOfOriginEndpoint": { + "member": { + "shape": "OriginEndpoint" + }, + "type": "list" + }, + "ListOf__string": { + "member": { + "shape": "__string" + }, + "type": "list" + }, + "ListOriginEndpointsRequest": { + "members": { + "ChannelId": { + "location": "querystring", + "locationName": "channelId", + "shape": "__string" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "__string" + } + }, + "type": "structure" + }, + "ListOriginEndpointsResponse": { + "members": { + "NextToken": { + "locationName": "nextToken", + "shape": "__string" + }, + "OriginEndpoints": { + "locationName": "originEndpoints", + "shape": "ListOfOriginEndpoint" + } + }, + "type": "structure" + }, + "MaxResults": { + "max": 1000, + "min": 1, + "type": "integer" + }, + "MssEncryption": { + "members": { + "SpekeKeyProvider": { + "locationName": "spekeKeyProvider", + "shape": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "structure" + }, + "MssPackage": { + "members": { + "Encryption": { + "locationName": "encryption", + "shape": "MssEncryption" + }, + "ManifestWindowSeconds": { + "locationName": "manifestWindowSeconds", + "shape": "__integer" + }, + "SegmentDurationSeconds": { + "locationName": "segmentDurationSeconds", + "shape": "__integer" + }, + "StreamSelection": { + "locationName": "streamSelection", + "shape": "StreamSelection" + } + }, + "type": "structure" + }, + "NotFoundException": { + "error": { + "httpStatusCode": 404 + }, + "exception": true, + "members": { + "Message": { + "locationName": "message", + "shape": "__string" + } + }, + "type": "structure" + }, + "OriginEndpoint": { + "members": { + "Arn": { + "locationName": "arn", + "shape": "__string" + }, + "ChannelId": { + "locationName": "channelId", + "shape": "__string" + }, + "DashPackage": { + "locationName": "dashPackage", + "shape": "DashPackage" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsPackage": { + "locationName": "hlsPackage", + "shape": "HlsPackage" + }, + "Id": { + "locationName": "id", + "shape": "__string" + }, + "ManifestName": { + "locationName": "manifestName", + "shape": "__string" + }, + "MssPackage": { + "locationName": "mssPackage", + "shape": "MssPackage" + }, + "StartoverWindowSeconds": { + "locationName": "startoverWindowSeconds", + "shape": "__integer" + }, + "TimeDelaySeconds": { + "locationName": "timeDelaySeconds", + "shape": "__integer" + }, + "Url": { + "locationName": "url", + "shape": "__string" + }, + "Whitelist": { + "locationName": "whitelist", + "shape": "ListOf__string" + } + }, + "type": "structure" + }, + "OriginEndpointCreateParameters": { + "members": { + "ChannelId": { + "locationName": "channelId", + "shape": "__string" + }, + "DashPackage": { + "locationName": "dashPackage", + "shape": "DashPackage" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsPackage": { + "locationName": "hlsPackage", + "shape": "HlsPackage" + }, + "Id": { + "locationName": "id", + "shape": "__string" + }, + "ManifestName": { + "locationName": "manifestName", + "shape": "__string" + }, + "MssPackage": { + "locationName": "mssPackage", + "shape": "MssPackage" + }, + "StartoverWindowSeconds": { + "locationName": "startoverWindowSeconds", + "shape": "__integer" + }, + "TimeDelaySeconds": { + "locationName": "timeDelaySeconds", + "shape": "__integer" + }, + "Whitelist": { + "locationName": "whitelist", + "shape": "ListOf__string" + } + }, + "type": "structure" + }, + "OriginEndpointList": { + "members": { + "NextToken": { + "locationName": "nextToken", + "shape": "__string" + }, + "OriginEndpoints": { + "locationName": "originEndpoints", + "shape": "ListOfOriginEndpoint" + } + }, + "type": "structure" + }, + "OriginEndpointUpdateParameters": { + "members": { + "DashPackage": { + "locationName": "dashPackage", + "shape": "DashPackage" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsPackage": { + "locationName": "hlsPackage", + "shape": "HlsPackage" + }, + "ManifestName": { + "locationName": "manifestName", + "shape": "__string" + }, + "MssPackage": { + "locationName": "mssPackage", + "shape": "MssPackage" + }, + "StartoverWindowSeconds": { + "locationName": "startoverWindowSeconds", + "shape": "__integer" + }, + "TimeDelaySeconds": { + "locationName": "timeDelaySeconds", + "shape": "__integer" + }, + "Whitelist": { + "locationName": "whitelist", + "shape": "ListOf__string" + } + }, + "type": "structure" + }, + "PlaylistType": { + "enum": [ + "NONE", + "EVENT", + "VOD" + ], + "type": "string" + }, + "Profile": { + "enum": [ + "NONE", + "HBBTV_1_5" + ], + "type": "string" + }, + "RotateChannelCredentialsRequest": { + "members": { + "Id": { + "location": "uri", + "locationName": "id", + "shape": "__string" + } + }, + "required": [ + "Id" + ], + "type": "structure" + }, + "RotateChannelCredentialsResponse": { + "members": { + "Arn": { + "locationName": "arn", + "shape": "__string" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsIngest": { + "locationName": "hlsIngest", + "shape": "HlsIngest" + }, + "Id": { + "locationName": "id", + "shape": "__string" + } + }, + "type": "structure" + }, + "ServiceUnavailableException": { + "error": { + "httpStatusCode": 503 + }, + "exception": true, + "members": { + "Message": { + "locationName": "message", + "shape": "__string" + } + }, + "type": "structure" + }, + "SpekeKeyProvider": { + "members": { + "ResourceId": { + "locationName": "resourceId", + "shape": "__string" + }, + "RoleArn": { + "locationName": "roleArn", + "shape": "__string" + }, + "SystemIds": { + "locationName": "systemIds", + "shape": "ListOf__string" + }, + "Url": { + "locationName": "url", + "shape": "__string" + } + }, + "required": [ + "Url", + "ResourceId", + "RoleArn", + "SystemIds" + ], + "type": "structure" + }, + "StreamOrder": { + "enum": [ + "ORIGINAL", + "VIDEO_BITRATE_ASCENDING", + "VIDEO_BITRATE_DESCENDING" + ], + "type": "string" + }, + "StreamSelection": { + "members": { + "MaxVideoBitsPerSecond": { + "locationName": "maxVideoBitsPerSecond", + "shape": "__integer" + }, + "MinVideoBitsPerSecond": { + "locationName": "minVideoBitsPerSecond", + "shape": "__integer" + }, + "StreamOrder": { + "locationName": "streamOrder", + "shape": "StreamOrder" + } + }, + "type": "structure" + }, + "TooManyRequestsException": { + "error": { + "httpStatusCode": 429 + }, + "exception": true, + "members": { + "Message": { + "locationName": "message", + "shape": "__string" + } + }, + "type": "structure" + }, + "UnprocessableEntityException": { + "error": { + "httpStatusCode": 422 + }, + "exception": true, + "members": { + "Message": { + "locationName": "message", + "shape": "__string" + } + }, + "type": "structure" + }, + "UpdateChannelRequest": { + "members": { + "Description": { + "locationName": "description", + "shape": "__string" + }, + "Id": { + "location": "uri", + "locationName": "id", + "shape": "__string" + } + }, + "required": [ + "Id" + ], + "type": "structure" + }, + "UpdateChannelResponse": { + "members": { + "Arn": { + "locationName": "arn", + "shape": "__string" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsIngest": { + "locationName": "hlsIngest", + "shape": "HlsIngest" + }, + "Id": { + "locationName": "id", + "shape": "__string" + } + }, + "type": "structure" + }, + "UpdateOriginEndpointRequest": { + "members": { + "DashPackage": { + "locationName": "dashPackage", + "shape": "DashPackage" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsPackage": { + "locationName": "hlsPackage", + "shape": "HlsPackage" + }, + "Id": { + "location": "uri", + "locationName": "id", + "shape": "__string" + }, + "ManifestName": { + "locationName": "manifestName", + "shape": "__string" + }, + "MssPackage": { + "locationName": "mssPackage", + "shape": "MssPackage" + }, + "StartoverWindowSeconds": { + "locationName": "startoverWindowSeconds", + "shape": "__integer" + }, + "TimeDelaySeconds": { + "locationName": "timeDelaySeconds", + "shape": "__integer" + }, + "Whitelist": { + "locationName": "whitelist", + "shape": "ListOf__string" + } + }, + "required": [ + "Id" + ], + "type": "structure" + }, + "UpdateOriginEndpointResponse": { + "members": { + "Arn": { + "locationName": "arn", + "shape": "__string" + }, + "ChannelId": { + "locationName": "channelId", + "shape": "__string" + }, + "DashPackage": { + "locationName": "dashPackage", + "shape": "DashPackage" + }, + "Description": { + "locationName": "description", + "shape": "__string" + }, + "HlsPackage": { + "locationName": "hlsPackage", + "shape": "HlsPackage" + }, + "Id": { + "locationName": "id", + "shape": "__string" + }, + "ManifestName": { + "locationName": "manifestName", + "shape": "__string" + }, + "MssPackage": { + "locationName": "mssPackage", + "shape": "MssPackage" + }, + "StartoverWindowSeconds": { + "locationName": "startoverWindowSeconds", + "shape": "__integer" + }, + "TimeDelaySeconds": { + "locationName": "timeDelaySeconds", + "shape": "__integer" + }, + "Url": { + "locationName": "url", + "shape": "__string" + }, + "Whitelist": { + "locationName": "whitelist", + "shape": "ListOf__string" + } + }, + "type": "structure" + }, + "__boolean": { + "type": "boolean" + }, + "__double": { + "type": "double" + }, + "__integer": { + "type": "integer" + }, + "__string": { + "type": "string" + }, + "__timestamp": { + "type": "timestamp" + } + } +} \ No newline at end of file diff --git a/models/apis/mediapackage/2017-10-12/docs-2.json b/models/apis/mediapackage/2017-10-12/docs-2.json new file mode 100644 index 00000000000..7f64deaea87 --- /dev/null +++ b/models/apis/mediapackage/2017-10-12/docs-2.json @@ -0,0 +1,248 @@ +{ + "version" : "2.0", + "service" : "AWS Elemental MediaPackage", + "operations" : { + "CreateChannel" : "Creates a new Channel.", + "CreateOriginEndpoint" : "Creates a new OriginEndpoint record.", + "DeleteChannel" : "Deletes an existing Channel.", + "DeleteOriginEndpoint" : "Deletes an existing OriginEndpoint.", + "DescribeChannel" : "Gets details about a Channel.", + "DescribeOriginEndpoint" : "Gets details about an existing OriginEndpoint.", + "ListChannels" : "Returns a collection of Channels.", + "ListOriginEndpoints" : "Returns a collection of OriginEndpoint records.", + "RotateChannelCredentials" : "Changes the Channel ingest username and password.", + "UpdateChannel" : "Updates an existing Channel.", + "UpdateOriginEndpoint" : "Updates an existing OriginEndpoint." + }, + "shapes" : { + "AdMarkers" : { + "base" : null, + "refs" : { + "HlsPackage$AdMarkers" : "This setting controls how ad markers are included in the packaged OriginEndpoint.\n\"NONE\" will omit all SCTE-35 ad markers from the output.\n\"PASSTHROUGH\" causes the manifest to contain a copy of the SCTE-35 ad\nmarkers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest.\n\"SCTE35_ENHANCED\" generates ad markers and blackout tags based on SCTE-35\nmessages in the input source.\n" + } + }, + "Channel" : { + "base" : "A Channel resource configuration.", + "refs" : { + "ListOfChannel$member" : null + } + }, + "ChannelCreateParameters" : { + "base" : "Configuration parameters for a new Channel.", + "refs" : { } + }, + "ChannelList" : { + "base" : "A collection of Channel records.", + "refs" : { } + }, + "ChannelUpdateParameters" : { + "base" : "Configuration parameters for updating an existing Channel.", + "refs" : { } + }, + "DashEncryption" : { + "base" : "A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.", + "refs" : { + "DashPackage$Encryption" : null + } + }, + "DashPackage" : { + "base" : "A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.", + "refs" : { + "OriginEndpoint$DashPackage" : null, + "OriginEndpointCreateParameters$DashPackage" : null, + "OriginEndpointUpdateParameters$DashPackage" : null + } + }, + "EncryptionMethod" : { + "base" : null, + "refs" : { + "HlsEncryption$EncryptionMethod" : "The encryption method to use." + } + }, + "HlsEncryption" : { + "base" : "An HTTP Live Streaming (HLS) encryption configuration.", + "refs" : { + "HlsPackage$Encryption" : null + } + }, + "HlsIngest" : { + "base" : "An HTTP Live Streaming (HLS) ingest resource configuration.", + "refs" : { + "Channel$HlsIngest" : null + } + }, + "HlsPackage" : { + "base" : "An HTTP Live Streaming (HLS) packaging configuration.", + "refs" : { + "OriginEndpoint$HlsPackage" : null, + "OriginEndpointCreateParameters$HlsPackage" : null, + "OriginEndpointUpdateParameters$HlsPackage" : null + } + }, + "IngestEndpoint" : { + "base" : "An endpoint for ingesting source content for a Channel.", + "refs" : { + "ListOfIngestEndpoint$member" : null + } + }, + "ListOfChannel" : { + "base" : null, + "refs" : { + "ChannelList$Channels" : "A list of Channel records." + } + }, + "ListOfIngestEndpoint" : { + "base" : null, + "refs" : { + "HlsIngest$IngestEndpoints" : "A list of endpoints to which the source stream should be sent." + } + }, + "ListOfOriginEndpoint" : { + "base" : null, + "refs" : { + "OriginEndpointList$OriginEndpoints" : "A list of OriginEndpoint records." + } + }, + "ListOf__string" : { + "base" : null, + "refs" : { + "OriginEndpoint$Whitelist" : "A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.", + "OriginEndpointCreateParameters$Whitelist" : "A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.", + "OriginEndpointUpdateParameters$Whitelist" : "A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.", + "SpekeKeyProvider$SystemIds" : "The system IDs to include in key requests." + } + }, + "MssEncryption" : { + "base" : "A Microsoft Smooth Streaming (MSS) encryption configuration.", + "refs" : { + "MssPackage$Encryption" : null + } + }, + "MssPackage" : { + "base" : "A Microsoft Smooth Streaming (MSS) packaging configuration.", + "refs" : { + "OriginEndpoint$MssPackage" : null, + "OriginEndpointCreateParameters$MssPackage" : null, + "OriginEndpointUpdateParameters$MssPackage" : null + } + }, + "OriginEndpoint" : { + "base" : "An OriginEndpoint resource configuration.", + "refs" : { + "ListOfOriginEndpoint$member" : null + } + }, + "OriginEndpointCreateParameters" : { + "base" : "Configuration parameters for a new OriginEndpoint.", + "refs" : { } + }, + "OriginEndpointList" : { + "base" : "A collection of OriginEndpoint records.", + "refs" : { } + }, + "OriginEndpointUpdateParameters" : { + "base" : "Configuration parameters for updating an existing OriginEndpoint.", + "refs" : { } + }, + "PlaylistType" : { + "base" : null, + "refs" : { + "HlsPackage$PlaylistType" : "The HTTP Live Streaming (HLS) playlist type.\nWhen either \"EVENT\" or \"VOD\" is specified, a corresponding EXT-X-PLAYLIST-TYPE\nentry will be included in the media playlist.\n" + } + }, + "Profile" : { + "base" : null, + "refs" : { + "DashPackage$Profile" : "The Dynamic Adaptive Streaming over HTTP (DASH) profile type. When set to \"HBBTV_1_5\", HbbTV 1.5 compliant output is enabled." + } + }, + "SpekeKeyProvider" : { + "base" : "A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.", + "refs" : { + "DashEncryption$SpekeKeyProvider" : null, + "HlsEncryption$SpekeKeyProvider" : null, + "MssEncryption$SpekeKeyProvider" : null + } + }, + "StreamOrder" : { + "base" : null, + "refs" : { + "StreamSelection$StreamOrder" : "A directive that determines the order of streams in the output." + } + }, + "StreamSelection" : { + "base" : "A StreamSelection configuration.", + "refs" : { + "DashPackage$StreamSelection" : null, + "HlsPackage$StreamSelection" : null, + "MssPackage$StreamSelection" : null + } + }, + "__boolean" : { + "base" : null, + "refs" : { + "HlsEncryption$RepeatExtXKey" : "When enabled, the EXT-X-KEY tag will be repeated in output manifests.", + "HlsPackage$IncludeIframeOnlyStream" : "When enabled, an I-Frame only stream will be included in the output.", + "HlsPackage$UseAudioRenditionGroup" : "When enabled, audio streams will be placed in rendition groups in the output." + } + }, + "__integer" : { + "base" : null, + "refs" : { + "DashEncryption$KeyRotationIntervalSeconds" : "Time (in seconds) between each encryption key rotation.", + "DashPackage$ManifestWindowSeconds" : "Time window (in seconds) contained in each manifest.", + "DashPackage$MinBufferTimeSeconds" : "Minimum duration (in seconds) that a player will buffer media before starting the presentation.", + "DashPackage$MinUpdatePeriodSeconds" : "Minimum duration (in seconds) between potential changes to the Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD).", + "DashPackage$SegmentDurationSeconds" : "Duration (in seconds) of each segment. Actual segments will be\nrounded to the nearest multiple of the source segment duration.\n", + "DashPackage$SuggestedPresentationDelaySeconds" : "Duration (in seconds) to delay live content before presentation.", + "HlsEncryption$KeyRotationIntervalSeconds" : "Interval (in seconds) between each encryption key rotation.", + "HlsPackage$PlaylistWindowSeconds" : "Time window (in seconds) contained in each parent manifest.", + "HlsPackage$ProgramDateTimeIntervalSeconds" : "The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag\ninserted into manifests. Additionally, when an interval is specified\nID3Timed Metadata messages will be generated every 5 seconds using the \ningest time of the content.\nIf the interval is not specified, or set to 0, then\nno EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no\nID3Timed Metadata messages will be generated. Note that irrespective\nof this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input,\nit will be passed through to HLS output.\n", + "HlsPackage$SegmentDurationSeconds" : "Duration (in seconds) of each fragment. Actual fragments will be\nrounded to the nearest multiple of the source fragment duration.\n", + "MssPackage$ManifestWindowSeconds" : "The time window (in seconds) contained in each manifest.", + "MssPackage$SegmentDurationSeconds" : "The duration (in seconds) of each segment.", + "OriginEndpoint$StartoverWindowSeconds" : "Maximum duration (seconds) of content to retain for startover playback.\nIf not specified, startover playback will be disabled for the OriginEndpoint.\n", + "OriginEndpoint$TimeDelaySeconds" : "Amount of delay (seconds) to enforce on the playback of live content.\nIf not specified, there will be no time delay in effect for the OriginEndpoint.\n", + "OriginEndpointCreateParameters$StartoverWindowSeconds" : "Maximum duration (seconds) of content to retain for startover playback.\nIf not specified, startover playback will be disabled for the OriginEndpoint.\n", + "OriginEndpointCreateParameters$TimeDelaySeconds" : "Amount of delay (seconds) to enforce on the playback of live content.\nIf not specified, there will be no time delay in effect for the OriginEndpoint.\n", + "OriginEndpointUpdateParameters$StartoverWindowSeconds" : "Maximum duration (in seconds) of content to retain for startover playback.\nIf not specified, startover playback will be disabled for the OriginEndpoint.\n", + "OriginEndpointUpdateParameters$TimeDelaySeconds" : "Amount of delay (in seconds) to enforce on the playback of live content.\nIf not specified, there will be no time delay in effect for the OriginEndpoint.\n", + "StreamSelection$MaxVideoBitsPerSecond" : "The maximum video bitrate (bps) to include in output.", + "StreamSelection$MinVideoBitsPerSecond" : "The minimum video bitrate (bps) to include in output." + } + }, + "__string" : { + "base" : null, + "refs" : { + "Channel$Arn" : "The Amazon Resource Name (ARN) assigned to the Channel.", + "Channel$Description" : "A short text description of the Channel.", + "Channel$Id" : "The ID of the Channel.", + "ChannelCreateParameters$Description" : "A short text description of the Channel.", + "ChannelCreateParameters$Id" : "The ID of the Channel. The ID must be unique within the region and it\ncannot be changed after a Channel is created.\n", + "ChannelList$NextToken" : "A token that can be used to resume pagination from the end of the collection.", + "ChannelUpdateParameters$Description" : "A short text description of the Channel.", + "HlsEncryption$ConstantInitializationVector" : "A constant initialization vector for encryption (optional).\nWhen not specified the initialization vector will be periodically rotated.\n", + "IngestEndpoint$Password" : "The system generated password for ingest authentication.", + "IngestEndpoint$Url" : "The ingest URL to which the source stream should be sent.", + "IngestEndpoint$Username" : "The system generated username for ingest authentication.", + "ListOf__string$member" : null, + "OriginEndpoint$Arn" : "The Amazon Resource Name (ARN) assigned to the OriginEndpoint.", + "OriginEndpoint$ChannelId" : "The ID of the Channel the OriginEndpoint is associated with.", + "OriginEndpoint$Description" : "A short text description of the OriginEndpoint.", + "OriginEndpoint$Id" : "The ID of the OriginEndpoint.", + "OriginEndpoint$ManifestName" : "A short string appended to the end of the OriginEndpoint URL.", + "OriginEndpoint$Url" : "The URL of the packaged OriginEndpoint for consumption.", + "OriginEndpointCreateParameters$ChannelId" : "The ID of the Channel that the OriginEndpoint will be associated with.\nThis cannot be changed after the OriginEndpoint is created.\n", + "OriginEndpointCreateParameters$Description" : "A short text description of the OriginEndpoint.", + "OriginEndpointCreateParameters$Id" : "The ID of the OriginEndpoint. The ID must be unique within the region\nand it cannot be changed after the OriginEndpoint is created.\n", + "OriginEndpointCreateParameters$ManifestName" : "A short string that will be used as the filename of the OriginEndpoint URL (defaults to \"index\").", + "OriginEndpointList$NextToken" : "A token that can be used to resume pagination from the end of the collection.", + "OriginEndpointUpdateParameters$Description" : "A short text description of the OriginEndpoint.", + "OriginEndpointUpdateParameters$ManifestName" : "A short string that will be appended to the end of the Endpoint URL.", + "SpekeKeyProvider$ResourceId" : "The resource ID to include in key requests.", + "SpekeKeyProvider$RoleArn" : "An Amazon Resource Name (ARN) of an IAM role that AWS Elemental\nMediaPackage will assume when accessing the key provider service.\n", + "SpekeKeyProvider$Url" : "The URL of the external key provider service." + } + } + } +} \ No newline at end of file diff --git a/models/apis/mediapackage/2017-10-12/paginators-1.json b/models/apis/mediapackage/2017-10-12/paginators-1.json new file mode 100644 index 00000000000..34eaef1eb7b --- /dev/null +++ b/models/apis/mediapackage/2017-10-12/paginators-1.json @@ -0,0 +1,16 @@ +{ + "pagination": { + "ListChannels": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Channels" + }, + "ListOriginEndpoints": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "OriginEndpoints" + } + } +} diff --git a/models/apis/mediastore-data/2017-09-01/api-2.json b/models/apis/mediastore-data/2017-09-01/api-2.json new file mode 100644 index 00000000000..b6f90339099 --- /dev/null +++ b/models/apis/mediastore-data/2017-09-01/api-2.json @@ -0,0 +1,392 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-09-01", + "endpointPrefix":"data.mediastore", + "protocol":"rest-json", + "serviceAbbreviation":"MediaStore Data", + "serviceFullName":"AWS Elemental MediaStore Data Plane", + "serviceId":"MediaStore Data", + "signatureVersion":"v4", + "signingName":"mediastore", + "uid":"mediastore-data-2017-09-01" + }, + "operations":{ + "DeleteObject":{ + "name":"DeleteObject", + "http":{ + "method":"DELETE", + "requestUri":"/{Path+}" + }, + "input":{"shape":"DeleteObjectRequest"}, + "output":{"shape":"DeleteObjectResponse"}, + "errors":[ + {"shape":"ContainerNotFoundException"}, + {"shape":"ObjectNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, + "DescribeObject":{ + "name":"DescribeObject", + "http":{ + "method":"HEAD", + "requestUri":"/{Path+}" + }, + "input":{"shape":"DescribeObjectRequest"}, + "output":{"shape":"DescribeObjectResponse"}, + "errors":[ + {"shape":"ContainerNotFoundException"}, + {"shape":"ObjectNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, + "GetObject":{ + "name":"GetObject", + "http":{ + "method":"GET", + "requestUri":"/{Path+}" + }, + "input":{"shape":"GetObjectRequest"}, + "output":{"shape":"GetObjectResponse"}, + "errors":[ + {"shape":"ContainerNotFoundException"}, + {"shape":"ObjectNotFoundException"}, + {"shape":"RequestedRangeNotSatisfiableException"}, + {"shape":"InternalServerError"} + ] + }, + "ListItems":{ + "name":"ListItems", + "http":{ + "method":"GET", + "requestUri":"/" + }, + "input":{"shape":"ListItemsRequest"}, + "output":{"shape":"ListItemsResponse"}, + "errors":[ + {"shape":"ContainerNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, + "PutObject":{ + "name":"PutObject", + "http":{ + "method":"PUT", + "requestUri":"/{Path+}" + }, + "input":{"shape":"PutObjectRequest"}, + "output":{"shape":"PutObjectResponse"}, + "errors":[ + {"shape":"ContainerNotFoundException"}, + {"shape":"InternalServerError"} + ], + "authtype":"v4-unsigned-body" + } + }, + "shapes":{ + "ContainerNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "ContentRangePattern":{ + "type":"string", + "pattern":"^bytes=\\d+\\-\\d+/\\d+$" + }, + "ContentType":{ + "type":"string", + "pattern":"^[\\w\\-\\/\\.]{1,255}$" + }, + "DeleteObjectRequest":{ + "type":"structure", + "required":["Path"], + "members":{ + "Path":{ + "shape":"PathNaming", + "location":"uri", + "locationName":"Path" + } + } + }, + "DeleteObjectResponse":{ + "type":"structure", + "members":{ + } + }, + "DescribeObjectRequest":{ + "type":"structure", + "required":["Path"], + "members":{ + "Path":{ + "shape":"PathNaming", + "location":"uri", + "locationName":"Path" + } + } + }, + "DescribeObjectResponse":{ + "type":"structure", + "members":{ + "ETag":{ + "shape":"ETag", + "location":"header", + "locationName":"ETag" + }, + "ContentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + }, + "ContentLength":{ + "shape":"NonNegativeLong", + "location":"header", + "locationName":"Content-Length" + }, + "CacheControl":{ + "shape":"StringPrimitive", + "location":"header", + "locationName":"Cache-Control" + }, + "LastModified":{ + "shape":"TimeStamp", + "location":"header", + "locationName":"Last-Modified" + } + } + }, + "ETag":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[0-9A-Fa-f]+" + }, + "ErrorMessage":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[ \\w:\\.\\?-]+" + }, + "GetObjectRequest":{ + "type":"structure", + "required":["Path"], + "members":{ + "Path":{ + "shape":"PathNaming", + "location":"uri", + "locationName":"Path" + }, + "Range":{ + "shape":"RangePattern", + "location":"header", + "locationName":"Range" + } + } + }, + "GetObjectResponse":{ + "type":"structure", + "required":["StatusCode"], + "members":{ + "Body":{"shape":"PayloadBlob"}, + "CacheControl":{ + "shape":"StringPrimitive", + "location":"header", + "locationName":"Cache-Control" + }, + "ContentRange":{ + "shape":"ContentRangePattern", + "location":"header", + "locationName":"Content-Range" + }, + "ContentLength":{ + "shape":"NonNegativeLong", + "location":"header", + "locationName":"Content-Length" + }, + "ContentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + }, + "ETag":{ + "shape":"ETag", + "location":"header", + "locationName":"ETag" + }, + "LastModified":{ + "shape":"TimeStamp", + "location":"header", + "locationName":"Last-Modified" + }, + "StatusCode":{ + "shape":"statusCode", + "location":"statusCode" + } + }, + "payload":"Body" + }, + "InternalServerError":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "Item":{ + "type":"structure", + "members":{ + "Name":{"shape":"ItemName"}, + "Type":{"shape":"ItemType"}, + "ETag":{"shape":"ETag"}, + "LastModified":{"shape":"TimeStamp"}, + "ContentType":{"shape":"ContentType"}, + "ContentLength":{"shape":"NonNegativeLong"} + } + }, + "ItemList":{ + "type":"list", + "member":{"shape":"Item"} + }, + "ItemName":{ + "type":"string", + "pattern":"[A-Za-z0-9_\\.\\-\\~]+" + }, + "ItemType":{ + "type":"string", + "enum":[ + "OBJECT", + "FOLDER" + ] + }, + "ListItemsRequest":{ + "type":"structure", + "members":{ + "Path":{ + "shape":"ListPathNaming", + "location":"querystring", + "locationName":"Path" + }, + "MaxResults":{ + "shape":"ListLimit", + "location":"querystring", + "locationName":"MaxResults" + }, + "NextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"NextToken" + } + } + }, + "ListItemsResponse":{ + "type":"structure", + "members":{ + "Items":{"shape":"ItemList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListLimit":{ + "type":"integer", + "max":1000, + "min":1 + }, + "ListPathNaming":{ + "type":"string", + "max":900, + "min":0, + "pattern":"/?(?:[A-Za-z0-9_\\.\\-\\~]+/){0,10}(?:[A-Za-z0-9_\\.\\-\\~]+)?/?" + }, + "NonNegativeLong":{ + "type":"long", + "min":0 + }, + "ObjectNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "PaginationToken":{"type":"string"}, + "PathNaming":{ + "type":"string", + "max":900, + "min":1, + "pattern":"(?:[A-Za-z0-9_\\.\\-\\~]+/){0,10}[A-Za-z0-9_\\.\\-\\~]+" + }, + "PayloadBlob":{ + "type":"blob", + "streaming":true + }, + "PutObjectRequest":{ + "type":"structure", + "required":[ + "Body", + "Path" + ], + "members":{ + "Body":{"shape":"PayloadBlob"}, + "Path":{ + "shape":"PathNaming", + "location":"uri", + "locationName":"Path" + }, + "ContentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + }, + "CacheControl":{ + "shape":"StringPrimitive", + "location":"header", + "locationName":"Cache-Control" + }, + "StorageClass":{ + "shape":"StorageClass", + "location":"header", + "locationName":"x-amz-storage-class" + } + }, + "payload":"Body" + }, + "PutObjectResponse":{ + "type":"structure", + "members":{ + "ContentSHA256":{"shape":"SHA256Hash"}, + "ETag":{"shape":"ETag"}, + "StorageClass":{"shape":"StorageClass"} + } + }, + "RangePattern":{ + "type":"string", + "pattern":"^bytes=(?:\\d+\\-\\d*|\\d*\\-\\d+)$" + }, + "RequestedRangeNotSatisfiableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":416}, + "exception":true + }, + "SHA256Hash":{ + "type":"string", + "max":64, + "min":64, + "pattern":"[0-9A-Fa-f]{64}" + }, + "StorageClass":{ + "type":"string", + "enum":["TEMPORAL"], + "max":16, + "min":1 + }, + "StringPrimitive":{"type":"string"}, + "TimeStamp":{"type":"timestamp"}, + "statusCode":{"type":"integer"} + } +} diff --git a/models/apis/mediastore-data/2017-09-01/docs-2.json b/models/apis/mediastore-data/2017-09-01/docs-2.json new file mode 100644 index 00000000000..c3eae0cce5a --- /dev/null +++ b/models/apis/mediastore-data/2017-09-01/docs-2.json @@ -0,0 +1,224 @@ +{ + "version": "2.0", + "service": "

An AWS Elemental MediaStore asset is an object, similar to an object in the Amazon S3 service. Objects are the fundamental entities that are stored in AWS Elemental MediaStore.

", + "operations": { + "DeleteObject": "

Deletes an object at the specified path.

", + "DescribeObject": "

Gets the header for an object at the specified path.

", + "GetObject": "

Downloads the object at the specified path.

", + "ListItems": "

Provides a list of metadata entries about folders and objects in the specified folder.

", + "PutObject": "

Uploads an object to the specified path. Object sizes are limited to 10 MB.

" + }, + "shapes": { + "ContainerNotFoundException": { + "base": "

The specified container was not found for the specified account.

", + "refs": { + } + }, + "ContentRangePattern": { + "base": null, + "refs": { + "GetObjectResponse$ContentRange": "

The range of bytes to retrieve.

" + } + }, + "ContentType": { + "base": null, + "refs": { + "DescribeObjectResponse$ContentType": "

The content type of the object.

", + "GetObjectResponse$ContentType": "

The content type of the object.

", + "Item$ContentType": "

The content type of the item.

", + "PutObjectRequest$ContentType": "

The content type of the object.

" + } + }, + "DeleteObjectRequest": { + "base": null, + "refs": { + } + }, + "DeleteObjectResponse": { + "base": null, + "refs": { + } + }, + "DescribeObjectRequest": { + "base": null, + "refs": { + } + }, + "DescribeObjectResponse": { + "base": null, + "refs": { + } + }, + "ETag": { + "base": null, + "refs": { + "DescribeObjectResponse$ETag": "

The ETag that represents a unique instance of the object.

", + "GetObjectResponse$ETag": "

The ETag that represents a unique instance of the object.

", + "Item$ETag": "

The ETag that represents a unique instance of the item.

", + "PutObjectResponse$ETag": "

Unique identifier of the object in the container.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "ContainerNotFoundException$Message": null, + "InternalServerError$Message": null, + "ObjectNotFoundException$Message": null, + "RequestedRangeNotSatisfiableException$Message": null + } + }, + "GetObjectRequest": { + "base": null, + "refs": { + } + }, + "GetObjectResponse": { + "base": null, + "refs": { + } + }, + "InternalServerError": { + "base": "

The service is temporarily unavailable.

", + "refs": { + } + }, + "Item": { + "base": "

A metadata entry for a folder or object.

", + "refs": { + "ItemList$member": null + } + }, + "ItemList": { + "base": null, + "refs": { + "ListItemsResponse$Items": "

Metadata entries for the folders and objects at the requested path.

" + } + }, + "ItemName": { + "base": null, + "refs": { + "Item$Name": "

The name of the item.

" + } + }, + "ItemType": { + "base": null, + "refs": { + "Item$Type": "

The item type (folder or object).

" + } + }, + "ListItemsRequest": { + "base": null, + "refs": { + } + }, + "ListItemsResponse": { + "base": null, + "refs": { + } + }, + "ListLimit": { + "base": null, + "refs": { + "ListItemsRequest$MaxResults": "

The maximum results to return. The service might return fewer results.

" + } + }, + "ListPathNaming": { + "base": null, + "refs": { + "ListItemsRequest$Path": "

The path in the container from which to retrieve items. Format: <folder name>/<folder name>/<file name>

" + } + }, + "NonNegativeLong": { + "base": null, + "refs": { + "DescribeObjectResponse$ContentLength": "

The length of the object in bytes.

", + "GetObjectResponse$ContentLength": "

The length of the object in bytes.

", + "Item$ContentLength": "

The length of the item in bytes.

" + } + }, + "ObjectNotFoundException": { + "base": "

Could not perform an operation on an object that does not exist.

", + "refs": { + } + }, + "PaginationToken": { + "base": null, + "refs": { + "ListItemsRequest$NextToken": "

The NextToken received in the ListItemsResponse for the same container and path. Tokens expire after 15 minutes.

", + "ListItemsResponse$NextToken": "

The NextToken used to request the next page of results using ListItems.

" + } + }, + "PathNaming": { + "base": null, + "refs": { + "DeleteObjectRequest$Path": "

The path (including the file name) where the object is stored in the container. Format: <folder name>/<folder name>/<file name>

", + "DescribeObjectRequest$Path": "

The path (including the file name) where the object is stored in the container. Format: <folder name>/<folder name>/<file name>

", + "GetObjectRequest$Path": "

The path (including the file name) where the object is stored in the container. Format: <folder name>/<folder name>/<file name>

For example, to upload the file mlaw.avi to the folder path premium\\canada in the container movies, enter the path premium/canada/mlaw.avi.

Do not include the container name in this path.

If the path includes any folders that don't exist yet, the service creates them. For example, suppose you have an existing premium/usa subfolder. If you specify premium/canada, the service creates a canada subfolder in the premium folder. You then have two subfolders, usa and canada, in the premium folder.

There is no correlation between the path to the source and the path (folders) in the container in AWS Elemental MediaStore.

For more information about folders and how they exist in a container, see the AWS Elemental MediaStore User Guide.

The file name is the name that is assigned to the file that you upload. The file can have the same name inside and outside of AWS Elemental MediaStore, or it can have the same name. The file name can include or omit an extension.

", + "PutObjectRequest$Path": "

The path (including the file name) where the object is stored in the container. Format: <folder name>/<folder name>/<file name>

For example, to upload the file mlaw.avi to the folder path premium\\canada in the container movies, enter the path premium/canada/mlaw.avi.

Do not include the container name in this path.

If the path includes any folders that don't exist yet, the service creates them. For example, suppose you have an existing premium/usa subfolder. If you specify premium/canada, the service creates a canada subfolder in the premium folder. You then have two subfolders, usa and canada, in the premium folder.

There is no correlation between the path to the source and the path (folders) in the container in AWS Elemental MediaStore.

For more information about folders and how they exist in a container, see the AWS Elemental MediaStore User Guide.

The file name is the name that is assigned to the file that you upload. The file can have the same name inside and outside of AWS Elemental MediaStore, or it can have the same name. The file name can include or omit an extension.

" + } + }, + "PayloadBlob": { + "base": null, + "refs": { + "GetObjectResponse$Body": "

The path to the file outside of the container. The file name can include or omit an extension.

Example 1: If the file is stored on a remote server that has been mounted to the workstation on which the REST API command is being run, the path could be the absolute path \\mount\\assets\\mlaw.avi or the relative path ..\\..\\mount\\assets\\movies\\premium\\mlaw.avi.

Example 2: If the file is stored on a remote server that is not mounted, the path could be https:\\\\192.0.2.15\\movies\\premium\\mlaw.avi.

", + "PutObjectRequest$Body": "

The path to the file outside of the container. The file name can include or omit an extension.

Example 1: If the file is stored on a remote server that has been mounted to the workstation on which the REST API command is being run, the path could be the absolute path \\mount\\assets\\mlaw.avi or the relative path ..\\..\\mount\\assets\\movies\\premium\\mlaw.avi.

Example 2: If the file is stored on a remote server that is not mounted, the path could be https:\\\\192.0.2.15\\movies\\premium\\mlaw.avi.

" + } + }, + "PutObjectRequest": { + "base": null, + "refs": { + } + }, + "PutObjectResponse": { + "base": null, + "refs": { + } + }, + "RangePattern": { + "base": null, + "refs": { + "GetObjectRequest$Range": "

The range bytes of an object to retrieve. For more information about the Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

" + } + }, + "RequestedRangeNotSatisfiableException": { + "base": "

The requested content range is not valid.

", + "refs": { + } + }, + "SHA256Hash": { + "base": null, + "refs": { + "PutObjectResponse$ContentSHA256": "

The SHA256 digest of the object that is persisted.

" + } + }, + "StorageClass": { + "base": null, + "refs": { + "PutObjectRequest$StorageClass": "

Indicates the storage class of a Put request. Defaults to high-performance temporal storage class, and objects are persisted into durable storage shortly after being received.

", + "PutObjectResponse$StorageClass": "

The storage class where the object was persisted. Should be “Temporal”.

" + } + }, + "StringPrimitive": { + "base": null, + "refs": { + "DescribeObjectResponse$CacheControl": "

An optional CacheControl header that allows the caller to control the object's cache behavior. Headers can be passed in as specified in the HTTP at https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.

Headers with a custom user-defined value are also accepted.

", + "GetObjectResponse$CacheControl": "

An optional CacheControl header that allows the caller to control the object's cache behavior. Headers can be passed in as specified in the HTTP spec at https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.

Headers with a custom user-defined value are also accepted.

", + "PutObjectRequest$CacheControl": "

An optional CacheControl header that allows the caller to control the object's cache behavior. Headers can be passed in as specified in the HTTP at https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.

Headers with a custom user-defined value are also accepted.

" + } + }, + "TimeStamp": { + "base": null, + "refs": { + "DescribeObjectResponse$LastModified": "

The date and time that the object was last modified.

", + "GetObjectResponse$LastModified": "

The date and time that the object was last modified.

", + "Item$LastModified": "

The date and time that the item was last modified.

" + } + }, + "statusCode": { + "base": null, + "refs": { + "GetObjectResponse$StatusCode": "

The HTML status code of the request. Status codes ranging from 200 to 299 indicate success. All other status codes indicate the type of error that occurred.

" + } + } + } +} diff --git a/models/apis/mediastore-data/2017-09-01/examples-1.json b/models/apis/mediastore-data/2017-09-01/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/mediastore-data/2017-09-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/mediastore-data/2017-09-01/paginators-1.json b/models/apis/mediastore-data/2017-09-01/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/mediastore-data/2017-09-01/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/mediastore/2017-09-01/api-2.json b/models/apis/mediastore/2017-09-01/api-2.json new file mode 100644 index 00000000000..ec3d008d710 --- /dev/null +++ b/models/apis/mediastore/2017-09-01/api-2.json @@ -0,0 +1,313 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-09-01", + "endpointPrefix":"mediastore", + "jsonVersion":"1.1", + "protocol":"json", + "serviceAbbreviation":"MediaStore", + "serviceFullName":"AWS Elemental MediaStore", + "serviceId":"MediaStore", + "signatureVersion":"v4", + "signingName":"mediastore", + "targetPrefix":"MediaStore_20170901", + "uid":"mediastore-2017-09-01" + }, + "operations":{ + "CreateContainer":{ + "name":"CreateContainer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateContainerInput"}, + "output":{"shape":"CreateContainerOutput"}, + "errors":[ + {"shape":"ContainerInUseException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalServerError"} + ] + }, + "DeleteContainer":{ + "name":"DeleteContainer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteContainerInput"}, + "output":{"shape":"DeleteContainerOutput"}, + "errors":[ + {"shape":"ContainerInUseException"}, + {"shape":"ContainerNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, + "DeleteContainerPolicy":{ + "name":"DeleteContainerPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteContainerPolicyInput"}, + "output":{"shape":"DeleteContainerPolicyOutput"}, + "errors":[ + {"shape":"ContainerInUseException"}, + {"shape":"ContainerNotFoundException"}, + {"shape":"PolicyNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, + "DescribeContainer":{ + "name":"DescribeContainer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeContainerInput"}, + "output":{"shape":"DescribeContainerOutput"}, + "errors":[ + {"shape":"ContainerNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, + "GetContainerPolicy":{ + "name":"GetContainerPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetContainerPolicyInput"}, + "output":{"shape":"GetContainerPolicyOutput"}, + "errors":[ + {"shape":"ContainerInUseException"}, + {"shape":"ContainerNotFoundException"}, + {"shape":"PolicyNotFoundException"}, + {"shape":"InternalServerError"} + ] + }, + "ListContainers":{ + "name":"ListContainers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListContainersInput"}, + "output":{"shape":"ListContainersOutput"}, + "errors":[ + {"shape":"InternalServerError"} + ] + }, + "PutContainerPolicy":{ + "name":"PutContainerPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutContainerPolicyInput"}, + "output":{"shape":"PutContainerPolicyOutput"}, + "errors":[ + {"shape":"ContainerNotFoundException"}, + {"shape":"ContainerInUseException"}, + {"shape":"InternalServerError"} + ] + } + }, + "shapes":{ + "Container":{ + "type":"structure", + "members":{ + "Endpoint":{"shape":"Endpoint"}, + "CreationTime":{"shape":"TimeStamp"}, + "ARN":{"shape":"ContainerARN"}, + "Name":{"shape":"ContainerName"}, + "Status":{"shape":"ContainerStatus"} + } + }, + "ContainerARN":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"arn:aws:mediastore:[a-z]+-[a-z]+-\\d:\\d{12}:container/\\w{1,255}" + }, + "ContainerInUseException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ContainerList":{ + "type":"list", + "member":{"shape":"Container"} + }, + "ContainerListLimit":{ + "type":"integer", + "max":100, + "min":1 + }, + "ContainerName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"\\w+" + }, + "ContainerNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ContainerPolicy":{ + "type":"string", + "max":8192, + "min":1, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+" + }, + "ContainerStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "CREATING", + "DELETING" + ], + "max":16, + "min":1 + }, + "CreateContainerInput":{ + "type":"structure", + "required":["ContainerName"], + "members":{ + "ContainerName":{"shape":"ContainerName"} + } + }, + "CreateContainerOutput":{ + "type":"structure", + "required":["Container"], + "members":{ + "Container":{"shape":"Container"} + } + }, + "DeleteContainerInput":{ + "type":"structure", + "required":["ContainerName"], + "members":{ + "ContainerName":{"shape":"ContainerName"} + } + }, + "DeleteContainerOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteContainerPolicyInput":{ + "type":"structure", + "required":["ContainerName"], + "members":{ + "ContainerName":{"shape":"ContainerName"} + } + }, + "DeleteContainerPolicyOutput":{ + "type":"structure", + "members":{ + } + }, + "DescribeContainerInput":{ + "type":"structure", + "members":{ + "ContainerName":{"shape":"ContainerName"} + } + }, + "DescribeContainerOutput":{ + "type":"structure", + "members":{ + "Container":{"shape":"Container"} + } + }, + "Endpoint":{ + "type":"string", + "max":255, + "min":1 + }, + "ErrorMessage":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[ \\w:\\.\\?-]+" + }, + "GetContainerPolicyInput":{ + "type":"structure", + "required":["ContainerName"], + "members":{ + "ContainerName":{"shape":"ContainerName"} + } + }, + "GetContainerPolicyOutput":{ + "type":"structure", + "required":["Policy"], + "members":{ + "Policy":{"shape":"ContainerPolicy"} + } + }, + "InternalServerError":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ListContainersInput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"PaginationToken"}, + "MaxResults":{"shape":"ContainerListLimit"} + } + }, + "ListContainersOutput":{ + "type":"structure", + "required":["Containers"], + "members":{ + "Containers":{"shape":"ContainerList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "PaginationToken":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[0-9A-Za-z=/+]+" + }, + "PolicyNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "PutContainerPolicyInput":{ + "type":"structure", + "required":[ + "ContainerName", + "Policy" + ], + "members":{ + "ContainerName":{"shape":"ContainerName"}, + "Policy":{"shape":"ContainerPolicy"} + } + }, + "PutContainerPolicyOutput":{ + "type":"structure", + "members":{ + } + }, + "TimeStamp":{"type":"timestamp"} + } +} diff --git a/models/apis/mediastore/2017-09-01/docs-2.json b/models/apis/mediastore/2017-09-01/docs-2.json new file mode 100644 index 00000000000..0dd360c7abf --- /dev/null +++ b/models/apis/mediastore/2017-09-01/docs-2.json @@ -0,0 +1,190 @@ +{ + "version": "2.0", + "service": "

An AWS Elemental MediaStore container is a namespace that holds folders and objects. You use a container endpoint to create, read, and delete objects.

", + "operations": { + "CreateContainer": "

Creates a storage container to hold objects. A container is similar to a bucket in the Amazon S3 service.

", + "DeleteContainer": "

Deletes the specified container. Before you make a DeleteContainer request, delete any objects in the container or in any folders in the container. You can delete only empty containers.

", + "DeleteContainerPolicy": "

Deletes the access policy that is associated with the specified container.

", + "DescribeContainer": "

Retrieves the properties of the requested container. This returns a single Container object based on ContainerName. To return all Container objects that are associated with a specified AWS account, use ListContainers.

", + "GetContainerPolicy": "

Retrieves the access policy for the specified container. For information about the data that is included in an access policy, see the AWS Identity and Access Management User Guide.

", + "ListContainers": "

Lists the properties of all containers in AWS Elemental MediaStore.

You can query to receive all the containers in one response. Or you can include the MaxResults parameter to receive a limited number of containers in each response. In this case, the response includes a token. To get the next set of containers, send the command again, this time with the NextToken parameter (with the returned token as its value). The next set of responses appears, with a token if there are still more containers to receive.

See also DescribeContainer, which gets the properties of one container.

", + "PutContainerPolicy": "

Creates an access policy for the specified container to restrict the users and clients that can access it. For information about the data that is included in an access policy, see the AWS Identity and Access Management User Guide.

For this release of the REST API, you can create only one policy for a container. If you enter PutContainerPolicy twice, the second command modifies the existing policy.

" + }, + "shapes": { + "Container": { + "base": "

This section describes operations that you can perform on an AWS Elemental MediaStore container.

", + "refs": { + "ContainerList$member": null, + "CreateContainerOutput$Container": "

ContainerARN: The Amazon Resource Name (ARN) of the newly created container. The ARN has the following format: arn:aws:<region>:<account that owns this container>:container/<name of container>. For example: arn:aws:mediastore:us-west-2:111122223333:container/movies

ContainerName: The container name as specified in the request.

CreationTime: Unix timestamp.

Status: The status of container creation or deletion. The status is one of the following: CREATING, ACTIVE, or DELETING. While the service is creating the container, the status is CREATING. When an endpoint is available, the status changes to ACTIVE.

The return value does not include the container's endpoint. To make downstream requests, you must obtain this value by using DescribeContainer or ListContainers.

", + "DescribeContainerOutput$Container": "

The name of the queried container.

" + } + }, + "ContainerARN": { + "base": null, + "refs": { + "Container$ARN": "

The Amazon Resource Name (ARN) of the container. The ARN has the following format:

arn:aws:<region>:<account that owns this container>:container/<name of container>

For example: arn:aws:mediastore:us-west-2:111122223333:container/movies

" + } + }, + "ContainerInUseException": { + "base": "

Resource already exists or is being updated.

", + "refs": { + } + }, + "ContainerList": { + "base": null, + "refs": { + "ListContainersOutput$Containers": "

The names of the containers.

" + } + }, + "ContainerListLimit": { + "base": null, + "refs": { + "ListContainersInput$MaxResults": "

Enter the maximum number of containers in the response. Use from 1 to 255 characters.

" + } + }, + "ContainerName": { + "base": null, + "refs": { + "Container$Name": "

The name of the container.

", + "CreateContainerInput$ContainerName": "

The name for the container. The name must be from 1 to 255 characters. Container names must be unique to your AWS account within a specific region. As an example, you could create a container named movies in every region, as long as you don’t have an existing container with that name.

", + "DeleteContainerInput$ContainerName": "

The name of the container to delete.

", + "DeleteContainerPolicyInput$ContainerName": "

The name of the container that holds the policy.

", + "DescribeContainerInput$ContainerName": "

The name of the container to query.

", + "GetContainerPolicyInput$ContainerName": "

The name of the container.

", + "PutContainerPolicyInput$ContainerName": "

The name of the container.

" + } + }, + "ContainerNotFoundException": { + "base": "

Could not perform an operation on a container that does not exist.

", + "refs": { + } + }, + "ContainerPolicy": { + "base": null, + "refs": { + "GetContainerPolicyOutput$Policy": "

The contents of the access policy.

", + "PutContainerPolicyInput$Policy": "

The contents of the policy, which includes the following:

  • One Version tag

  • One Statement tag that contains the standard tags for the policy.

" + } + }, + "ContainerStatus": { + "base": null, + "refs": { + "Container$Status": "

The status of container creation or deletion. The status is one of the following: CREATING, ACTIVE, or DELETING. While the service is creating the container, the status is CREATING. When the endpoint is available, the status changes to ACTIVE.

" + } + }, + "CreateContainerInput": { + "base": null, + "refs": { + } + }, + "CreateContainerOutput": { + "base": null, + "refs": { + } + }, + "DeleteContainerInput": { + "base": null, + "refs": { + } + }, + "DeleteContainerOutput": { + "base": null, + "refs": { + } + }, + "DeleteContainerPolicyInput": { + "base": null, + "refs": { + } + }, + "DeleteContainerPolicyOutput": { + "base": null, + "refs": { + } + }, + "DescribeContainerInput": { + "base": null, + "refs": { + } + }, + "DescribeContainerOutput": { + "base": null, + "refs": { + } + }, + "Endpoint": { + "base": null, + "refs": { + "Container$Endpoint": "

The DNS endpoint of the container. Use from 1 to 255 characters. Use this endpoint to identify this container when sending requests to the data plane.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "ContainerInUseException$Message": null, + "ContainerNotFoundException$Message": null, + "InternalServerError$Message": null, + "LimitExceededException$Message": null, + "PolicyNotFoundException$Message": null + } + }, + "GetContainerPolicyInput": { + "base": null, + "refs": { + } + }, + "GetContainerPolicyOutput": { + "base": null, + "refs": { + } + }, + "InternalServerError": { + "base": "

The service is temporarily unavailable.

", + "refs": { + } + }, + "LimitExceededException": { + "base": "

A service limit has been exceeded.

", + "refs": { + } + }, + "ListContainersInput": { + "base": null, + "refs": { + } + }, + "ListContainersOutput": { + "base": null, + "refs": { + } + }, + "PaginationToken": { + "base": null, + "refs": { + "ListContainersInput$NextToken": "

Only if you used MaxResults in the first command, enter the token (which was included in the previous response) to obtain the next set of containers. This token is included in a response only if there actually are more containers to list.

", + "ListContainersOutput$NextToken": "

NextToken is the token to use in the next call to ListContainers. This token is returned only if you included the MaxResults tag in the original command, and only if there are still containers to return.

" + } + }, + "PolicyNotFoundException": { + "base": "

Could not perform an operation on a policy that does not exist.

", + "refs": { + } + }, + "PutContainerPolicyInput": { + "base": null, + "refs": { + } + }, + "PutContainerPolicyOutput": { + "base": null, + "refs": { + } + }, + "TimeStamp": { + "base": null, + "refs": { + "Container$CreationTime": "

Unix timestamp.

" + } + } + } +} diff --git a/models/apis/mediastore/2017-09-01/examples-1.json b/models/apis/mediastore/2017-09-01/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/mediastore/2017-09-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/mediastore/2017-09-01/paginators-1.json b/models/apis/mediastore/2017-09-01/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/mediastore/2017-09-01/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/mobile/2017-07-01/api-2.json b/models/apis/mobile/2017-07-01/api-2.json new file mode 100644 index 00000000000..6ef48111b33 --- /dev/null +++ b/models/apis/mobile/2017-07-01/api-2.json @@ -0,0 +1,551 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-07-01", + "endpointPrefix":"mobile", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Mobile", + "signatureVersion":"v4", + "signingName":"AWSMobileHubService", + "uid":"mobile-2017-07-01" + }, + "operations":{ + "CreateProject":{ + "name":"CreateProject", + "http":{ + "method":"POST", + "requestUri":"/projects" + }, + "input":{"shape":"CreateProjectRequest"}, + "output":{"shape":"CreateProjectResult"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"LimitExceededException"} + ] + }, + "DeleteProject":{ + "name":"DeleteProject", + "http":{ + "method":"DELETE", + "requestUri":"/projects/{projectId}" + }, + "input":{"shape":"DeleteProjectRequest"}, + "output":{"shape":"DeleteProjectResult"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotFoundException"} + ] + }, + "DescribeBundle":{ + "name":"DescribeBundle", + "http":{ + "method":"GET", + "requestUri":"/bundles/{bundleId}" + }, + "input":{"shape":"DescribeBundleRequest"}, + "output":{"shape":"DescribeBundleResult"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"} + ] + }, + "DescribeProject":{ + "name":"DescribeProject", + "http":{ + "method":"GET", + "requestUri":"/project" + }, + "input":{"shape":"DescribeProjectRequest"}, + "output":{"shape":"DescribeProjectResult"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"} + ] + }, + "ExportBundle":{ + "name":"ExportBundle", + "http":{ + "method":"POST", + "requestUri":"/bundles/{bundleId}" + }, + "input":{"shape":"ExportBundleRequest"}, + "output":{"shape":"ExportBundleResult"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"} + ] + }, + "ExportProject":{ + "name":"ExportProject", + "http":{ + "method":"POST", + "requestUri":"/exports/{projectId}" + }, + "input":{"shape":"ExportProjectRequest"}, + "output":{"shape":"ExportProjectResult"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"} + ] + }, + "ListBundles":{ + "name":"ListBundles", + "http":{ + "method":"GET", + "requestUri":"/bundles" + }, + "input":{"shape":"ListBundlesRequest"}, + "output":{"shape":"ListBundlesResult"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} + ] + }, + "ListProjects":{ + "name":"ListProjects", + "http":{ + "method":"GET", + "requestUri":"/projects" + }, + "input":{"shape":"ListProjectsRequest"}, + "output":{"shape":"ListProjectsResult"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} + ] + }, + "UpdateProject":{ + "name":"UpdateProject", + "http":{ + "method":"POST", + "requestUri":"/update" + }, + "input":{"shape":"UpdateProjectRequest"}, + "output":{"shape":"UpdateProjectResult"}, + "errors":[ + {"shape":"InternalFailureException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"UnauthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"AccountActionRequiredException"}, + {"shape":"LimitExceededException"} + ] + } + }, + "shapes":{ + "AccountActionRequiredException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "AttributeKey":{"type":"string"}, + "AttributeValue":{"type":"string"}, + "Attributes":{ + "type":"map", + "key":{"shape":"AttributeKey"}, + "value":{"shape":"AttributeValue"} + }, + "BadRequestException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Boolean":{"type":"boolean"}, + "BundleDescription":{"type":"string"}, + "BundleDetails":{ + "type":"structure", + "members":{ + "bundleId":{"shape":"BundleId"}, + "title":{"shape":"BundleTitle"}, + "version":{"shape":"BundleVersion"}, + "description":{"shape":"BundleDescription"}, + "iconUrl":{"shape":"IconUrl"}, + "availablePlatforms":{"shape":"Platforms"} + } + }, + "BundleId":{"type":"string"}, + "BundleList":{ + "type":"list", + "member":{"shape":"BundleDetails"} + }, + "BundleTitle":{"type":"string"}, + "BundleVersion":{"type":"string"}, + "ConsoleUrl":{"type":"string"}, + "Contents":{"type":"blob"}, + "CreateProjectRequest":{ + "type":"structure", + "members":{ + "name":{ + "shape":"ProjectName", + "location":"querystring", + "locationName":"name" + }, + "region":{ + "shape":"ProjectRegion", + "location":"querystring", + "locationName":"region" + }, + "contents":{"shape":"Contents"}, + "snapshotId":{ + "shape":"SnapshotId", + "location":"querystring", + "locationName":"snapshotId" + } + }, + "payload":"contents" + }, + "CreateProjectResult":{ + "type":"structure", + "members":{ + "details":{"shape":"ProjectDetails"} + } + }, + "Date":{"type":"timestamp"}, + "DeleteProjectRequest":{ + "type":"structure", + "required":["projectId"], + "members":{ + "projectId":{ + "shape":"ProjectId", + "location":"uri", + "locationName":"projectId" + } + } + }, + "DeleteProjectResult":{ + "type":"structure", + "members":{ + "deletedResources":{"shape":"Resources"}, + "orphanedResources":{"shape":"Resources"} + } + }, + "DescribeBundleRequest":{ + "type":"structure", + "required":["bundleId"], + "members":{ + "bundleId":{ + "shape":"BundleId", + "location":"uri", + "locationName":"bundleId" + } + } + }, + "DescribeBundleResult":{ + "type":"structure", + "members":{ + "details":{"shape":"BundleDetails"} + } + }, + "DescribeProjectRequest":{ + "type":"structure", + "required":["projectId"], + "members":{ + "projectId":{ + "shape":"ProjectId", + "location":"querystring", + "locationName":"projectId" + }, + "syncFromResources":{ + "shape":"Boolean", + "location":"querystring", + "locationName":"syncFromResources" + } + } + }, + "DescribeProjectResult":{ + "type":"structure", + "members":{ + "details":{"shape":"ProjectDetails"} + } + }, + "DownloadUrl":{"type":"string"}, + "ErrorMessage":{"type":"string"}, + "ExportBundleRequest":{ + "type":"structure", + "required":["bundleId"], + "members":{ + "bundleId":{ + "shape":"BundleId", + "location":"uri", + "locationName":"bundleId" + }, + "projectId":{ + "shape":"ProjectId", + "location":"querystring", + "locationName":"projectId" + }, + "platform":{ + "shape":"Platform", + "location":"querystring", + "locationName":"platform" + } + } + }, + "ExportBundleResult":{ + "type":"structure", + "members":{ + "downloadUrl":{"shape":"DownloadUrl"} + } + }, + "ExportProjectRequest":{ + "type":"structure", + "required":["projectId"], + "members":{ + "projectId":{ + "shape":"ProjectId", + "location":"uri", + "locationName":"projectId" + } + } + }, + "ExportProjectResult":{ + "type":"structure", + "members":{ + "downloadUrl":{"shape":"DownloadUrl"}, + "shareUrl":{"shape":"ShareUrl"}, + "snapshotId":{"shape":"SnapshotId"} + } + }, + "Feature":{"type":"string"}, + "IconUrl":{"type":"string"}, + "InternalFailureException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "retryAfterSeconds":{ + "shape":"ErrorMessage", + "location":"header", + "locationName":"Retry-After" + }, + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "ListBundlesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListBundlesResult":{ + "type":"structure", + "members":{ + "bundleList":{"shape":"BundleList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListProjectsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListProjectsResult":{ + "type":"structure", + "members":{ + "projects":{"shape":"ProjectSummaries"}, + "nextToken":{"shape":"NextToken"} + } + }, + "MaxResults":{"type":"integer"}, + "NextToken":{"type":"string"}, + "NotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "Platform":{ + "type":"string", + "enum":[ + "OSX", + "WINDOWS", + "LINUX", + "OBJC", + "SWIFT", + "ANDROID", + "JAVASCRIPT" + ] + }, + "Platforms":{ + "type":"list", + "member":{"shape":"Platform"} + }, + "ProjectDetails":{ + "type":"structure", + "members":{ + "name":{"shape":"ProjectName"}, + "projectId":{"shape":"ProjectId"}, + "region":{"shape":"ProjectRegion"}, + "state":{"shape":"ProjectState"}, + "createdDate":{"shape":"Date"}, + "lastUpdatedDate":{"shape":"Date"}, + "consoleUrl":{"shape":"ConsoleUrl"}, + "resources":{"shape":"Resources"} + } + }, + "ProjectId":{"type":"string"}, + "ProjectName":{"type":"string"}, + "ProjectRegion":{"type":"string"}, + "ProjectState":{ + "type":"string", + "enum":[ + "NORMAL", + "SYNCING", + "IMPORTING" + ] + }, + "ProjectSummaries":{ + "type":"list", + "member":{"shape":"ProjectSummary"} + }, + "ProjectSummary":{ + "type":"structure", + "members":{ + "name":{"shape":"ProjectName"}, + "projectId":{"shape":"ProjectId"} + } + }, + "Resource":{ + "type":"structure", + "members":{ + "type":{"shape":"ResourceType"}, + "name":{"shape":"ResourceName"}, + "arn":{"shape":"ResourceArn"}, + "feature":{"shape":"Feature"}, + "attributes":{"shape":"Attributes"} + } + }, + "ResourceArn":{"type":"string"}, + "ResourceName":{"type":"string"}, + "ResourceType":{"type":"string"}, + "Resources":{ + "type":"list", + "member":{"shape":"Resource"} + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + "retryAfterSeconds":{ + "shape":"ErrorMessage", + "location":"header", + "locationName":"Retry-After" + }, + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":503}, + "exception":true, + "fault":true + }, + "ShareUrl":{"type":"string"}, + "SnapshotId":{"type":"string"}, + "TooManyRequestsException":{ + "type":"structure", + "members":{ + "retryAfterSeconds":{ + "shape":"ErrorMessage", + "location":"header", + "locationName":"Retry-After" + }, + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "UnauthorizedException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":401}, + "exception":true + }, + "UpdateProjectRequest":{ + "type":"structure", + "required":["projectId"], + "members":{ + "contents":{"shape":"Contents"}, + "projectId":{ + "shape":"ProjectId", + "location":"querystring", + "locationName":"projectId" + } + }, + "payload":"contents" + }, + "UpdateProjectResult":{ + "type":"structure", + "members":{ + "details":{"shape":"ProjectDetails"} + } + } + } +} diff --git a/models/apis/mobile/2017-07-01/docs-2.json b/models/apis/mobile/2017-07-01/docs-2.json new file mode 100644 index 00000000000..d40f070ce92 --- /dev/null +++ b/models/apis/mobile/2017-07-01/docs-2.json @@ -0,0 +1,392 @@ +{ + "version": "2.0", + "service": "

AWS Mobile Service provides mobile app and website developers with capabilities required to configure AWS resources and bootstrap their developer desktop projects with the necessary SDKs, constants, tools and samples to make use of those resources.

", + "operations": { + "CreateProject": "

Creates an AWS Mobile Hub project.

", + "DeleteProject": "

Delets a project in AWS Mobile Hub.

", + "DescribeBundle": "

Get the bundle details for the requested bundle id.

", + "DescribeProject": "

Gets details about a project in AWS Mobile Hub.

", + "ExportBundle": "

Generates customized software development kit (SDK) and or tool packages used to integrate mobile web or mobile app clients with backend AWS resources.

", + "ExportProject": "

Exports project configuration to a snapshot which can be downloaded and shared. Note that mobile app push credentials are encrypted in exported projects, so they can only be shared successfully within the same AWS account.

", + "ListBundles": "

List all available bundles.

", + "ListProjects": "

Lists projects in AWS Mobile Hub.

", + "UpdateProject": "

Update an existing project.

" + }, + "shapes": { + "AccountActionRequiredException": { + "base": "

Account Action is required in order to continue the request.

", + "refs": { + } + }, + "AttributeKey": { + "base": "

Key part of key-value attribute pairs.

", + "refs": { + "Attributes$key": null + } + }, + "AttributeValue": { + "base": "

Value part of key-value attribute pairs.

", + "refs": { + "Attributes$value": null + } + }, + "Attributes": { + "base": "

Key-value attribute pairs.

", + "refs": { + "Resource$attributes": null + } + }, + "BadRequestException": { + "base": "

The request cannot be processed because some parameter is not valid or the project state prevents the operation from being performed.

", + "refs": { + } + }, + "Boolean": { + "base": null, + "refs": { + "DescribeProjectRequest$syncFromResources": "

If set to true, causes AWS Mobile Hub to synchronize information from other services, e.g., update state of AWS CloudFormation stacks in the AWS Mobile Hub project.

" + } + }, + "BundleDescription": { + "base": "

Description of the download bundle.

", + "refs": { + "BundleDetails$description": null + } + }, + "BundleDetails": { + "base": "

The details of the bundle.

", + "refs": { + "BundleList$member": null, + "DescribeBundleResult$details": "

The details of the bundle.

" + } + }, + "BundleId": { + "base": "

Unique bundle identifier.

", + "refs": { + "BundleDetails$bundleId": null, + "DescribeBundleRequest$bundleId": "

Unique bundle identifier.

", + "ExportBundleRequest$bundleId": "

Unique bundle identifier.

" + } + }, + "BundleList": { + "base": "

A list of bundles.

", + "refs": { + "ListBundlesResult$bundleList": "

A list of bundles.

" + } + }, + "BundleTitle": { + "base": "

Title of the download bundle.

", + "refs": { + "BundleDetails$title": null + } + }, + "BundleVersion": { + "base": "

Version of the download bundle.

", + "refs": { + "BundleDetails$version": null + } + }, + "ConsoleUrl": { + "base": null, + "refs": { + "ProjectDetails$consoleUrl": "

Website URL for this project in the AWS Mobile Hub console.

" + } + }, + "Contents": { + "base": "

Binary file data.

", + "refs": { + "CreateProjectRequest$contents": "

ZIP or YAML file which contains configuration settings to be used when creating the project. This may be the contents of the file downloaded from the URL provided in an export project operation.

", + "UpdateProjectRequest$contents": "

ZIP or YAML file which contains project configuration to be updated. This should be the contents of the file downloaded from the URL provided in an export project operation.

" + } + }, + "CreateProjectRequest": { + "base": "

Request structure used to request a project be created.

", + "refs": { + } + }, + "CreateProjectResult": { + "base": "

Result structure used in response to a request to create a project.

", + "refs": { + } + }, + "Date": { + "base": null, + "refs": { + "ProjectDetails$createdDate": "

Date the project was created.

", + "ProjectDetails$lastUpdatedDate": "

Date of the last modification of the project.

" + } + }, + "DeleteProjectRequest": { + "base": "

Request structure used to request a project be deleted.

", + "refs": { + } + }, + "DeleteProjectResult": { + "base": "

Result structure used in response to request to delete a project.

", + "refs": { + } + }, + "DescribeBundleRequest": { + "base": "

Request structure to request the details of a specific bundle.

", + "refs": { + } + }, + "DescribeBundleResult": { + "base": "

Result structure contains the details of the bundle.

", + "refs": { + } + }, + "DescribeProjectRequest": { + "base": "

Request structure used to request details about a project.

", + "refs": { + } + }, + "DescribeProjectResult": { + "base": "

Result structure used for requests of project details.

", + "refs": { + } + }, + "DownloadUrl": { + "base": "

The download Url.

", + "refs": { + "ExportBundleResult$downloadUrl": "

URL which contains the custom-generated SDK and tool packages used to integrate the client mobile app or web app with the AWS resources created by the AWS Mobile Hub project.

", + "ExportProjectResult$downloadUrl": "

URL which can be used to download the exported project configuation file(s).

" + } + }, + "ErrorMessage": { + "base": "

The Exception Error Message.

", + "refs": { + "AccountActionRequiredException$message": null, + "BadRequestException$message": null, + "InternalFailureException$message": null, + "LimitExceededException$retryAfterSeconds": null, + "LimitExceededException$message": null, + "NotFoundException$message": null, + "ServiceUnavailableException$retryAfterSeconds": null, + "ServiceUnavailableException$message": null, + "TooManyRequestsException$retryAfterSeconds": null, + "TooManyRequestsException$message": null, + "UnauthorizedException$message": null + } + }, + "ExportBundleRequest": { + "base": "

Request structure used to request generation of custom SDK and tool packages required to integrate mobile web or app clients with backed AWS resources.

", + "refs": { + } + }, + "ExportBundleResult": { + "base": "

Result structure which contains link to download custom-generated SDK and tool packages used to integrate mobile web or app clients with backed AWS resources.

", + "refs": { + } + }, + "ExportProjectRequest": { + "base": "

Request structure used in requests to export project configuration details.

", + "refs": { + } + }, + "ExportProjectResult": { + "base": "

Result structure used for requests to export project configuration details.

", + "refs": { + } + }, + "Feature": { + "base": "

Identifies which feature in AWS Mobile Hub is associated with this AWS resource.

", + "refs": { + "Resource$feature": null + } + }, + "IconUrl": { + "base": "

Icon for the download bundle.

", + "refs": { + "BundleDetails$iconUrl": null + } + }, + "InternalFailureException": { + "base": "

The service has encountered an unexpected error condition which prevents it from servicing the request.

", + "refs": { + } + }, + "LimitExceededException": { + "base": "

There are too many AWS Mobile Hub projects in the account or the account has exceeded the maximum number of resources in some AWS service. You should create another sub-account using AWS Organizations or remove some resources and retry your request.

", + "refs": { + } + }, + "ListBundlesRequest": { + "base": "

Request structure to request all available bundles.

", + "refs": { + } + }, + "ListBundlesResult": { + "base": "

Result structure contains a list of all available bundles with details.

", + "refs": { + } + }, + "ListProjectsRequest": { + "base": "

Request structure used to request projects list in AWS Mobile Hub.

", + "refs": { + } + }, + "ListProjectsResult": { + "base": "

Result structure used for requests to list projects in AWS Mobile Hub.

", + "refs": { + } + }, + "MaxResults": { + "base": "

Maximum number of records to list in a single response.

", + "refs": { + "ListBundlesRequest$maxResults": "

Maximum number of records to list in a single response.

", + "ListProjectsRequest$maxResults": "

Maximum number of records to list in a single response.

" + } + }, + "NextToken": { + "base": "

Pagination token. Set to null to start listing records from start. If non-null pagination token is returned in a result, then pass its value in here in another request to list more entries.

", + "refs": { + "ListBundlesRequest$nextToken": "

Pagination token. Set to null to start listing bundles from start. If non-null pagination token is returned in a result, then pass its value in here in another request to list more bundles.

", + "ListBundlesResult$nextToken": "

Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries.

", + "ListProjectsRequest$nextToken": "

Pagination token. Set to null to start listing projects from start. If non-null pagination token is returned in a result, then pass its value in here in another request to list more projects.

", + "ListProjectsResult$nextToken": null + } + }, + "NotFoundException": { + "base": "

No entity can be found with the specified identifier.

", + "refs": { + } + }, + "Platform": { + "base": "

Developer desktop or target mobile app or website platform.

", + "refs": { + "ExportBundleRequest$platform": "

Developer desktop or target application platform.

", + "Platforms$member": null + } + }, + "Platforms": { + "base": "

Developer desktop or mobile app or website platforms.

", + "refs": { + "BundleDetails$availablePlatforms": null + } + }, + "ProjectDetails": { + "base": "

Detailed information about an AWS Mobile Hub project.

", + "refs": { + "CreateProjectResult$details": "

Detailed information about the created AWS Mobile Hub project.

", + "DescribeProjectResult$details": null, + "UpdateProjectResult$details": "

Detailed information about the updated AWS Mobile Hub project.

" + } + }, + "ProjectId": { + "base": "

Unique project identifier.

", + "refs": { + "DeleteProjectRequest$projectId": "

Unique project identifier.

", + "DescribeProjectRequest$projectId": "

Unique project identifier.

", + "ExportBundleRequest$projectId": "

Unique project identifier.

", + "ExportProjectRequest$projectId": "

Unique project identifier.

", + "ProjectDetails$projectId": null, + "ProjectSummary$projectId": "

Unique project identifier.

", + "UpdateProjectRequest$projectId": "

Unique project identifier.

" + } + }, + "ProjectName": { + "base": "

Name of the project.

", + "refs": { + "CreateProjectRequest$name": "

Name of the project.

", + "ProjectDetails$name": null, + "ProjectSummary$name": "

Name of the project.

" + } + }, + "ProjectRegion": { + "base": "

Default region to use for AWS resource creation in the AWS Mobile Hub project.

", + "refs": { + "CreateProjectRequest$region": "

Default region where project resources should be created.

", + "ProjectDetails$region": null + } + }, + "ProjectState": { + "base": "

Synchronization state for a project.

", + "refs": { + "ProjectDetails$state": null + } + }, + "ProjectSummaries": { + "base": "

List of projects.

", + "refs": { + "ListProjectsResult$projects": null + } + }, + "ProjectSummary": { + "base": "

Summary information about an AWS Mobile Hub project.

", + "refs": { + "ProjectSummaries$member": null + } + }, + "Resource": { + "base": "

Information about an instance of an AWS resource associated with a project.

", + "refs": { + "Resources$member": null + } + }, + "ResourceArn": { + "base": "

AWS resource name which uniquely identifies the resource in AWS systems.

", + "refs": { + "Resource$arn": null + } + }, + "ResourceName": { + "base": "

Name of the AWS resource (e.g., for an Amazon S3 bucket this is the name of the bucket).

", + "refs": { + "Resource$name": null + } + }, + "ResourceType": { + "base": "

Simplified name for type of AWS resource (e.g., bucket is an Amazon S3 bucket).

", + "refs": { + "Resource$type": null + } + }, + "Resources": { + "base": "

List of AWS resources associated with a project.

", + "refs": { + "DeleteProjectResult$deletedResources": "

Resources which were deleted.

", + "DeleteProjectResult$orphanedResources": "

Resources which were not deleted, due to a risk of losing potentially important data or files.

", + "ProjectDetails$resources": null + } + }, + "ServiceUnavailableException": { + "base": "

The service is temporarily unavailable. The request should be retried after some time delay.

", + "refs": { + } + }, + "ShareUrl": { + "base": "

URL which can be shared to allow other AWS users to create their own project in AWS Mobile Hub with the same configuration as the specified project. This URL pertains to a snapshot in time of the project configuration that is created when this API is called. If you want to share additional changes to your project configuration, then you will need to create and share a new snapshot by calling this method again.

", + "refs": { + "ExportProjectResult$shareUrl": "

URL which can be shared to allow other AWS users to create their own project in AWS Mobile Hub with the same configuration as the specified project. This URL pertains to a snapshot in time of the project configuration that is created when this API is called. If you want to share additional changes to your project configuration, then you will need to create and share a new snapshot by calling this method again.

" + } + }, + "SnapshotId": { + "base": "

Unique identifier for the exported snapshot of the project configuration. This snapshot identifier is included in the share URL.

", + "refs": { + "CreateProjectRequest$snapshotId": "

Unique identifier for an exported snapshot of project configuration. This snapshot identifier is included in the share URL when a project is exported.

", + "ExportProjectResult$snapshotId": "

Unique identifier for the exported snapshot of the project configuration. This snapshot identifier is included in the share URL.

" + } + }, + "TooManyRequestsException": { + "base": "

Too many requests have been received for this AWS account in too short a time. The request should be retried after some time delay.

", + "refs": { + } + }, + "UnauthorizedException": { + "base": "

Credentials of the caller are insufficient to authorize the request.

", + "refs": { + } + }, + "UpdateProjectRequest": { + "base": "

Request structure used for requests to update project configuration.

", + "refs": { + } + }, + "UpdateProjectResult": { + "base": "

Result structure used for requests to updated project configuration.

", + "refs": { + } + } + } +} diff --git a/models/apis/mobile/2017-07-01/examples-1.json b/models/apis/mobile/2017-07-01/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/mobile/2017-07-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/mobile/2017-07-01/paginators-1.json b/models/apis/mobile/2017-07-01/paginators-1.json new file mode 100644 index 00000000000..6dcde776327 --- /dev/null +++ b/models/apis/mobile/2017-07-01/paginators-1.json @@ -0,0 +1,14 @@ +{ + "pagination": { + "ListBundles": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListProjects": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/models/apis/monitoring/2010-08-01/api-2.json b/models/apis/monitoring/2010-08-01/api-2.json index 83ce5c5fed8..0d761e113eb 100644 --- a/models/apis/monitoring/2010-08-01/api-2.json +++ b/models/apis/monitoring/2010-08-01/api-2.json @@ -22,6 +22,23 @@ {"shape":"ResourceNotFound"} ] }, + "DeleteDashboards":{ + "name":"DeleteDashboards", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDashboardsInput"}, + "output":{ + "shape":"DeleteDashboardsOutput", + "resultWrapper":"DeleteDashboardsResult" + }, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"DashboardNotFoundError"}, + {"shape":"InternalServiceFault"} + ] + }, "DescribeAlarmHistory":{ "name":"DescribeAlarmHistory", "http":{ @@ -80,6 +97,23 @@ }, "input":{"shape":"EnableAlarmActionsInput"} }, + "GetDashboard":{ + "name":"GetDashboard", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDashboardInput"}, + "output":{ + "shape":"GetDashboardOutput", + "resultWrapper":"GetDashboardResult" + }, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"DashboardNotFoundError"}, + {"shape":"InternalServiceFault"} + ] + }, "GetMetricStatistics":{ "name":"GetMetricStatistics", "http":{ @@ -98,6 +132,22 @@ {"shape":"InternalServiceFault"} ] }, + "ListDashboards":{ + "name":"ListDashboards", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDashboardsInput"}, + "output":{ + "shape":"ListDashboardsOutput", + "resultWrapper":"ListDashboardsResult" + }, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"InternalServiceFault"} + ] + }, "ListMetrics":{ "name":"ListMetrics", "http":{ @@ -114,6 +164,22 @@ {"shape":"InvalidParameterValueException"} ] }, + "PutDashboard":{ + "name":"PutDashboard", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutDashboardInput"}, + "output":{ + "shape":"PutDashboardOutput", + "resultWrapper":"PutDashboardResult" + }, + "errors":[ + {"shape":"DashboardInvalidInputError"}, + {"shape":"InternalServiceFault"} + ] + }, "PutMetricAlarm":{ "name":"PutMetricAlarm", "http":{ @@ -208,6 +274,65 @@ "LessThanOrEqualToThreshold" ] }, + "DashboardArn":{"type":"string"}, + "DashboardBody":{"type":"string"}, + "DashboardEntries":{ + "type":"list", + "member":{"shape":"DashboardEntry"} + }, + "DashboardEntry":{ + "type":"structure", + "members":{ + "DashboardName":{"shape":"DashboardName"}, + "DashboardArn":{"shape":"DashboardArn"}, + "LastModified":{"shape":"LastModified"}, + "Size":{"shape":"Size"} + } + }, + "DashboardErrorMessage":{"type":"string"}, + "DashboardInvalidInputError":{ + "type":"structure", + "members":{ + "message":{"shape":"DashboardErrorMessage"}, + "dashboardValidationMessages":{"shape":"DashboardValidationMessages"} + }, + "error":{ + "code":"InvalidParameterInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DashboardName":{"type":"string"}, + "DashboardNamePrefix":{"type":"string"}, + "DashboardNames":{ + "type":"list", + "member":{"shape":"DashboardName"} + }, + "DashboardNotFoundError":{ + "type":"structure", + "members":{ + "message":{"shape":"DashboardErrorMessage"} + }, + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "DashboardValidationMessage":{ + "type":"structure", + "members":{ + "DataPath":{"shape":"DataPath"}, + "Message":{"shape":"Message"} + } + }, + "DashboardValidationMessages":{ + "type":"list", + "member":{"shape":"DashboardValidationMessage"} + }, + "DataPath":{"type":"string"}, "Datapoint":{ "type":"structure", "members":{ @@ -248,6 +373,17 @@ "AlarmNames":{"shape":"AlarmNames"} } }, + "DeleteDashboardsInput":{ + "type":"structure", + "members":{ + "DashboardNames":{"shape":"DashboardNames"} + } + }, + "DeleteDashboardsOutput":{ + "type":"structure", + "members":{ + } + }, "DescribeAlarmHistoryInput":{ "type":"structure", "members":{ @@ -388,6 +524,20 @@ "min":1 }, "FaultDescription":{"type":"string"}, + "GetDashboardInput":{ + "type":"structure", + "members":{ + "DashboardName":{"shape":"DashboardName"} + } + }, + "GetDashboardOutput":{ + "type":"structure", + "members":{ + "DashboardArn":{"shape":"DashboardArn"}, + "DashboardBody":{"shape":"DashboardBody"}, + "DashboardName":{"shape":"DashboardName"} + } + }, "GetMetricStatisticsInput":{ "type":"structure", "required":[ @@ -494,6 +644,7 @@ }, "exception":true }, + "LastModified":{"type":"timestamp"}, "LimitExceededFault":{ "type":"structure", "members":{ @@ -506,6 +657,20 @@ }, "exception":true }, + "ListDashboardsInput":{ + "type":"structure", + "members":{ + "DashboardNamePrefix":{"shape":"DashboardNamePrefix"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListDashboardsOutput":{ + "type":"structure", + "members":{ + "DashboardEntries":{"shape":"DashboardEntries"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListMetricsInput":{ "type":"structure", "members":{ @@ -531,6 +696,7 @@ "max":100, "min":1 }, + "Message":{"type":"string"}, "Metric":{ "type":"structure", "members":{ @@ -616,7 +782,8 @@ "Timestamp":{"shape":"Timestamp"}, "Value":{"shape":"DatapointValue"}, "StatisticValues":{"shape":"StatisticSet"}, - "Unit":{"shape":"StandardUnit"} + "Unit":{"shape":"StandardUnit"}, + "StorageResolution":{"shape":"StorageResolution"} } }, "MetricLabel":{"type":"string"}, @@ -654,7 +821,20 @@ }, "Period":{ "type":"integer", - "min":60 + "min":1 + }, + "PutDashboardInput":{ + "type":"structure", + "members":{ + "DashboardName":{"shape":"DashboardName"}, + "DashboardBody":{"shape":"DashboardBody"} + } + }, + "PutDashboardOutput":{ + "type":"structure", + "members":{ + "DashboardValidationMessages":{"shape":"DashboardValidationMessages"} + } }, "PutMetricAlarmInput":{ "type":"structure", @@ -735,6 +915,7 @@ "StateReasonData":{"shape":"StateReasonData"} } }, + "Size":{"type":"long"}, "StandardUnit":{ "type":"string", "enum":[ @@ -816,6 +997,10 @@ "max":5, "min":1 }, + "StorageResolution":{ + "type":"integer", + "min":1 + }, "Threshold":{"type":"double"}, "Timestamp":{"type":"timestamp"}, "TreatMissingData":{ diff --git a/models/apis/monitoring/2010-08-01/docs-2.json b/models/apis/monitoring/2010-08-01/docs-2.json index f8a58eb57ec..23027d3714a 100644 --- a/models/apis/monitoring/2010-08-01/docs-2.json +++ b/models/apis/monitoring/2010-08-01/docs-2.json @@ -1,18 +1,22 @@ { "version": "2.0", - "service": "

Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and the applications you run on AWS in real-time. You can use CloudWatch to collect and track metrics, which are the variables you want to measure for your resources and applications.

CloudWatch alarms send notifications or automatically make changes to the resources you are monitoring based on rules that you define. For example, you can monitor the CPU usage and disk reads and writes of your Amazon Elastic Compute Cloud (Amazon EC2) instances and then use this data to determine whether you should launch additional instances to handle increased load. You can also use this data to stop under-used instances to save money.

In addition to monitoring the built-in metrics that come with AWS, you can monitor your own custom metrics. With CloudWatch, you gain system-wide visibility into resource utilization, application performance, and operational health.

", + "service": "

Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and the applications you run on AWS in real time. You can use CloudWatch to collect and track metrics, which are the variables you want to measure for your resources and applications.

CloudWatch alarms send notifications or automatically change the resources you are monitoring based on rules that you define. For example, you can monitor the CPU usage and disk reads and writes of your Amazon EC2 instances. Then, use this data to determine whether you should launch additional instances to handle increased load. You can also use this data to stop under-used instances to save money.

In addition to monitoring the built-in metrics that come with AWS, you can monitor your own custom metrics. With CloudWatch, you gain system-wide visibility into resource utilization, application performance, and operational health.

", "operations": { "DeleteAlarms": "

Deletes the specified alarms. In the event of an error, no alarms are deleted.

", - "DescribeAlarmHistory": "

Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for all alarms are returned.

Note that Amazon CloudWatch retains the history of an alarm even if you delete the alarm.

", + "DeleteDashboards": "

Deletes all dashboards that you specify. You may specify up to 100 dashboards to delete. If there is an error during this call, no dashboards are deleted.

", + "DescribeAlarmHistory": "

Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for all alarms are returned.

CloudWatch retains the history of an alarm even if you delete the alarm.

", "DescribeAlarms": "

Retrieves the specified alarms. If no alarms are specified, all alarms are returned. Alarms can be retrieved by using only a prefix for the alarm name, the alarm state, or a prefix for any action.

", - "DescribeAlarmsForMetric": "

Retrieves the alarms for the specified metric. Specify a statistic, period, or unit to filter the results.

", + "DescribeAlarmsForMetric": "

Retrieves the alarms for the specified metric. To filter the results, specify a statistic, period, or unit.

", "DisableAlarmActions": "

Disables the actions for the specified alarms. When an alarm's actions are disabled, the alarm actions do not execute when the alarm state changes.

", "EnableAlarmActions": "

Enables the actions for the specified alarms.

", - "GetMetricStatistics": "

Gets statistics for the specified metric.

Amazon CloudWatch retains metric data as follows:

  • Data points with a period of 60 seconds (1 minute) are available for 15 days

  • Data points with a period of 300 seconds (5 minute) are available for 63 days

  • Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months)

Note that CloudWatch started retaining 5-minute and 1-hour metric data as of 9 July 2016.

The maximum number of data points returned from a single call is 1,440. If you request more than 1,440 data points, Amazon CloudWatch returns an error. To reduce the number of data points, you can narrow the specified time range and make multiple requests across adjacent time ranges, or you can increase the specified period. A period can be as short as one minute (60 seconds). Note that data points are not returned in chronological order.

Amazon CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-hour period, Amazon CloudWatch aggregates all data points with time stamps that fall within each one-hour period. Therefore, the number of values aggregated by CloudWatch is larger than the number of data points returned.

CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you cannot retrieve percentile statistics for this data unless one of the following conditions is true:

  • The SampleCount of the statistic set is 1

  • The Min and the Max of the statistic set are equal

For a list of metrics and dimensions supported by AWS services, see the Amazon CloudWatch Metrics and Dimensions Reference in the Amazon CloudWatch User Guide.

", + "GetDashboard": "

Displays the details of the dashboard that you specify.

To copy an existing dashboard, use GetDashboard, and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard to create the copy.

", + "GetMetricStatistics": "

Gets statistics for the specified metric.

The maximum number of data points returned from a single call is 1,440. If you request more than 1,440 data points, CloudWatch returns an error. To reduce the number of data points, you can narrow the specified time range and make multiple requests across adjacent time ranges, or you can increase the specified period. Data points are not returned in chronological order.

CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-hour period, CloudWatch aggregates all data points with time stamps that fall within each one-hour period. Therefore, the number of values aggregated by CloudWatch is larger than the number of data points returned.

CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true:

  • The SampleCount value of the statistic set is 1.

  • The Min and the Max values of the statistic set are equal.

Amazon CloudWatch retains metric data as follows:

  • Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1.

  • Data points with a period of 60 seconds (1-minute) are available for 15 days.

  • Data points with a period of 300 seconds (5-minute) are available for 63 days.

  • Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months).

Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour.

CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016.

For information about metrics and dimensions supported by AWS services, see the Amazon CloudWatch Metrics and Dimensions Reference in the Amazon CloudWatch User Guide.

", + "ListDashboards": "

Returns a list of the dashboards for your account. If you include DashboardNamePrefix, only those dashboards with names starting with the prefix are listed. Otherwise, all dashboards in your account are listed.

", "ListMetrics": "

List the specified metrics. You can use the returned metrics with GetMetricStatistics to obtain statistical data.

Up to 500 results are returned for any one call. To retrieve additional results, use the returned token with subsequent calls.

After you create a metric, allow up to fifteen minutes before the metric appears. Statistics about the metric, however, are available sooner using GetMetricStatistics.

", - "PutMetricAlarm": "

Creates or updates an alarm and associates it with the specified metric. Optionally, this operation can associate one or more Amazon SNS resources with the alarm.

When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is evaluated and its state is set appropriately. Any actions associated with the state are then executed.

When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.

If you are an AWS Identity and Access Management (IAM) user, you must have Amazon EC2 permissions for some operations:

  • ec2:DescribeInstanceStatus and ec2:DescribeInstances for all alarms on EC2 instance status metrics

  • ec2:StopInstances for alarms with stop actions

  • ec2:TerminateInstances for alarms with terminate actions

  • ec2:DescribeInstanceRecoveryAttribute and ec2:RecoverInstances for alarms with recover actions

If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm, but the stop or terminate actions won't be performed. However, if you are later granted the required permissions, the alarm actions that you created earlier will be performed.

If you are using an IAM role (for example, an Amazon EC2 instance profile), you cannot stop or terminate the instance using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS notifications or Auto Scaling policies.

If you are using temporary security credentials granted using the AWS Security Token Service (AWS STS), you cannot stop or terminate an Amazon EC2 instance using alarm actions.

Note that you must create at least one stop, terminate, or reboot alarm using the Amazon EC2 or CloudWatch console to create the EC2ActionsAccess IAM role. After this IAM role is created, you can create stop, terminate, or reboot alarms using a command-line interface or an API.

", - "PutMetricData": "

Publishes metric data points to Amazon CloudWatch. Amazon CloudWatch associates the data points with the specified metric. If the specified metric does not exist, Amazon CloudWatch creates the metric. When Amazon CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics.

Each PutMetricData request is limited to 40 KB in size for HTTP POST requests.

Although the Value parameter accepts numbers of type Double, Amazon CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (e.g., NaN, +Infinity, -Infinity) are not supported.

You can use up to 10 dimensions per metric to further clarify what data the metric collects. For more information on specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide.

Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricStatistics from the time they are submitted.

CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you cannot retrieve percentile statistics for this data unless one of the following conditions is true:

  • The SampleCount of the statistic set is 1

  • The Min and the Max of the statistic set are equal

", - "SetAlarmState": "

Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to ALARM sends an Amazon SNS message. The alarm returns to its actual state (often within seconds). Because the alarm state change happens very quickly, it is typically only visible in the alarm's History tab in the Amazon CloudWatch console or through DescribeAlarmHistory.

" + "PutDashboard": "

Creates a dashboard if it does not already exist, or updates an existing dashboard. If you update a dashboard, the entire contents are replaced with what you specify here.

You can have up to 500 dashboards per account. All dashboards in your account are global, not region-specific.

A simple way to create a dashboard using PutDashboard is to copy an existing dashboard. To copy an existing dashboard using the console, you can load the dashboard and then use the View/edit source command in the Actions menu to display the JSON block for that dashboard. Another way to copy a dashboard is to use GetDashboard, and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard.

When you create a dashboard with PutDashboard, a good practice is to add a text widget at the top of the dashboard with a message that the dashboard was created by script and should not be changed in the console. This message could also point console users to the location of the DashboardBody script or the CloudFormation template used to create the dashboard.

", + "PutMetricAlarm": "

Creates or updates an alarm and associates it with the specified metric. Optionally, this operation can associate one or more Amazon SNS resources with the alarm.

When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is evaluated and its state is set appropriately. Any actions associated with the state are then executed.

When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.

If you are an IAM user, you must have Amazon EC2 permissions for some operations:

  • ec2:DescribeInstanceStatus and ec2:DescribeInstances for all alarms on EC2 instance status metrics

  • ec2:StopInstances for alarms with stop actions

  • ec2:TerminateInstances for alarms with terminate actions

  • ec2:DescribeInstanceRecoveryAttribute and ec2:RecoverInstances for alarms with recover actions

If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm, but the stop or terminate actions are not performed. However, if you are later granted the required permissions, the alarm actions that you created earlier are performed.

If you are using an IAM role (for example, an EC2 instance profile), you cannot stop or terminate the instance using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS notifications or Auto Scaling policies.

If you are using temporary security credentials granted using AWS STS, you cannot stop or terminate an EC2 instance using alarm actions.

You must create at least one stop, terminate, or reboot alarm using either the Amazon EC2 or CloudWatch consoles to create the EC2ActionsAccess IAM role. After this IAM role is created, you can create stop, terminate, or reboot alarms using a command-line interface or API.

", + "PutMetricData": "

Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics.

Each PutMetricData request is limited to 40 KB in size for HTTP POST requests.

Although the Value parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

You can use up to 10 dimensions per metric to further clarify what data the metric collects. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide.

Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricStatistics from the time they are submitted.

CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true:

  • The SampleCount value of the statistic set is 1

  • The Min and the Max values of the statistic set are equal

", + "SetAlarmState": "

Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to ALARM sends an SNS message. The alarm returns to its actual state (often within seconds). Because the alarm state change happens quickly, it is typically only visible in the alarm's History tab in the Amazon CloudWatch console or through DescribeAlarmHistory.

" }, "shapes": { "ActionPrefix": { @@ -67,7 +71,7 @@ "AlarmNamePrefix": { "base": null, "refs": { - "DescribeAlarmsInput$AlarmNamePrefix": "

The alarm name prefix. You cannot specify AlarmNames if this parameter is specified.

" + "DescribeAlarmsInput$AlarmNamePrefix": "

The alarm name prefix. If this parameter is specified, you cannot specify AlarmNames.

" } }, "AlarmNames": { @@ -94,8 +98,92 @@ "PutMetricAlarmInput$ComparisonOperator": "

The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand.

" } }, + "DashboardArn": { + "base": null, + "refs": { + "DashboardEntry$DashboardArn": "

The Amazon Resource Name (ARN) of the dashboard.

", + "GetDashboardOutput$DashboardArn": "

The Amazon Resource Name (ARN) of the dashboard.

" + } + }, + "DashboardBody": { + "base": null, + "refs": { + "GetDashboardOutput$DashboardBody": "

The detailed information about the dashboard, including what widgets are included and their location on the dashboard. For more information about the DashboardBody syntax, see CloudWatch-Dashboard-Body-Structure.

", + "PutDashboardInput$DashboardBody": "

The detailed information about the dashboard in JSON format, including the widgets to include and their location on the dashboard.

For more information about the syntax, see CloudWatch-Dashboard-Body-Structure.

" + } + }, + "DashboardEntries": { + "base": null, + "refs": { + "ListDashboardsOutput$DashboardEntries": "

The list of matching dashboards.

" + } + }, + "DashboardEntry": { + "base": "

Represents a specific dashboard.

", + "refs": { + "DashboardEntries$member": null + } + }, + "DashboardErrorMessage": { + "base": null, + "refs": { + "DashboardInvalidInputError$message": null, + "DashboardNotFoundError$message": null + } + }, + "DashboardInvalidInputError": { + "base": "

Some part of the dashboard data is invalid.

", + "refs": { + } + }, + "DashboardName": { + "base": null, + "refs": { + "DashboardEntry$DashboardName": "

The name of the dashboard.

", + "DashboardNames$member": null, + "GetDashboardInput$DashboardName": "

The name of the dashboard to be described.

", + "GetDashboardOutput$DashboardName": "

The name of the dashboard.

", + "PutDashboardInput$DashboardName": "

The name of the dashboard. If a dashboard with this name already exists, this call modifies that dashboard, replacing its current contents. Otherwise, a new dashboard is created. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, \"-\", and \"_\".

" + } + }, + "DashboardNamePrefix": { + "base": null, + "refs": { + "ListDashboardsInput$DashboardNamePrefix": "

If you specify this parameter, only the dashboards with names starting with the specified string are listed. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, \".\", \"-\", and \"_\".

" + } + }, + "DashboardNames": { + "base": null, + "refs": { + "DeleteDashboardsInput$DashboardNames": "

The dashboards to be deleted.

" + } + }, + "DashboardNotFoundError": { + "base": "

The specified dashboard does not exist.

", + "refs": { + } + }, + "DashboardValidationMessage": { + "base": "

An error or warning for the operation.

", + "refs": { + "DashboardValidationMessages$member": null + } + }, + "DashboardValidationMessages": { + "base": null, + "refs": { + "DashboardInvalidInputError$dashboardValidationMessages": null, + "PutDashboardOutput$DashboardValidationMessages": "

If the input for PutDashboard was correct and the dashboard was successfully created or modified, this result is empty.

If this result includes only warning messages, then the input was valid enough for the dashboard to be created or modified, but some elements of the dashboard may not render.

If this result includes error messages, the input was not valid and the operation failed.

" + } + }, + "DataPath": { + "base": null, + "refs": { + "DashboardValidationMessage$DataPath": "

The data path related to the message.

" + } + }, "Datapoint": { - "base": "

Encapsulates the statistical data that Amazon CloudWatch computes from metric data.

", + "base": "

Encapsulates the statistical data that CloudWatch computes from metric data.

", "refs": { "Datapoints$member": null } @@ -109,7 +197,7 @@ "Datapoint$Minimum": "

The minimum metric value for the data point.

", "Datapoint$Maximum": "

The maximum metric value for the data point.

", "DatapointValueMap$value": null, - "MetricDatum$Value": "

The value for the metric.

Although the parameter accepts numbers of type Double, Amazon CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

", + "MetricDatum$Value": "

The value for the metric.

Although the parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

", "StatisticSet$SampleCount": "

The number of samples used for the statistic set.

", "StatisticSet$Sum": "

The sum of values for the sample set.

", "StatisticSet$Minimum": "

The minimum value of the sample set.

", @@ -133,6 +221,16 @@ "refs": { } }, + "DeleteDashboardsInput": { + "base": null, + "refs": { + } + }, + "DeleteDashboardsOutput": { + "base": null, + "refs": { + } + }, "DescribeAlarmHistoryInput": { "base": null, "refs": { @@ -199,7 +297,7 @@ "base": null, "refs": { "DescribeAlarmsForMetricInput$Dimensions": "

The dimensions associated with the metric. If the metric has any associated dimensions, you must specify them in order for the call to succeed.

", - "GetMetricStatisticsInput$Dimensions": "

The dimensions. If the metric contains multiple dimensions, you must include a value for each dimension. CloudWatch treats each unique combination of dimensions as a separate metric. You can't retrieve statistics using combinations of dimensions that were not specially published. You must specify the same dimensions that were used when the metrics were created. For an example, see Dimension Combinations in the Amazon CloudWatch User Guide. For more information on specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide.

", + "GetMetricStatisticsInput$Dimensions": "

The dimensions. If the metric contains multiple dimensions, you must include a value for each dimension. CloudWatch treats each unique combination of dimensions as a separate metric. If a specific combination of dimensions was not published, you can't retrieve statistics for it. You must specify the same dimensions that were used when the metrics were created. For an example, see Dimension Combinations in the Amazon CloudWatch User Guide. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide.

", "Metric$Dimensions": "

The dimensions for the metric.

", "MetricAlarm$Dimensions": "

The dimensions for the metric associated with the alarm.

", "MetricDatum$Dimensions": "

The dimensions associated with the metric.

", @@ -228,15 +326,15 @@ "EvaluateLowSampleCountPercentile": { "base": null, "refs": { - "MetricAlarm$EvaluateLowSampleCountPercentile": null, - "PutMetricAlarmInput$EvaluateLowSampleCountPercentile": "

Used only for alarms based on percentiles. If you specify ignore, the alarm state will not change during periods with too few data points to be statistically significant. If you specify evaluate or omit this parameter, the alarm will always be evaluated and possibly change state no matter how many data points are available. For more information, see Percentile-Based CloudWatch Alarms and Low Data Samples.

Valid Values: evaluate | ignore

" + "MetricAlarm$EvaluateLowSampleCountPercentile": "

Used only for alarms based on percentiles. If ignore, the alarm state does not change during periods with too few data points to be statistically significant. If evaluate or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available.

", + "PutMetricAlarmInput$EvaluateLowSampleCountPercentile": "

Used only for alarms based on percentiles. If you specify ignore, the alarm state does not change during periods with too few data points to be statistically significant. If you specify evaluate or omit this parameter, the alarm is always evaluated and possibly changes state no matter how many data points are available. For more information, see Percentile-Based CloudWatch Alarms and Low Data Samples.

Valid Values: evaluate | ignore

" } }, "EvaluationPeriods": { "base": null, "refs": { "MetricAlarm$EvaluationPeriods": "

The number of periods over which data is compared to the specified threshold.

", - "PutMetricAlarmInput$EvaluationPeriods": "

The number of periods over which data is compared to the specified threshold.

" + "PutMetricAlarmInput$EvaluationPeriods": "

The number of periods over which data is compared to the specified threshold. An alarm's total current evaluation period can be no longer than one day, so this number multiplied by Period cannot be more than 86,400 seconds.

" } }, "ExtendedStatistic": { @@ -252,7 +350,7 @@ "ExtendedStatistics": { "base": null, "refs": { - "GetMetricStatisticsInput$ExtendedStatistics": "

The percentile statistics. Specify values between p0.0 and p100.

" + "GetMetricStatisticsInput$ExtendedStatistics": "

The percentile statistics. Specify values between p0.0 and p100. When calling GetMetricStatistics, you must specify either Statistics or ExtendedStatistics, but not both.

" } }, "FaultDescription": { @@ -261,6 +359,16 @@ "InternalServiceFault$Message": "

" } }, + "GetDashboardInput": { + "base": null, + "refs": { + } + }, + "GetDashboardOutput": { + "base": null, + "refs": { + } + }, "GetMetricStatisticsInput": { "base": null, "refs": { @@ -306,7 +414,7 @@ } }, "InvalidParameterCombinationException": { - "base": "

Parameters that cannot be used together were used together.

", + "base": "

Parameters were used together that cannot be used together.

", "refs": { } }, @@ -315,11 +423,27 @@ "refs": { } }, + "LastModified": { + "base": null, + "refs": { + "DashboardEntry$LastModified": "

The time stamp of when the dashboard was last modified, either by an API call or through the console. This number is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

" + } + }, "LimitExceededFault": { "base": "

The quota for alarms for this customer has already been reached.

", "refs": { } }, + "ListDashboardsInput": { + "base": null, + "refs": { + } + }, + "ListDashboardsOutput": { + "base": null, + "refs": { + } + }, "ListMetricsInput": { "base": null, "refs": { @@ -337,6 +461,12 @@ "DescribeAlarmsInput$MaxRecords": "

The maximum number of alarm descriptions to retrieve.

" } }, + "Message": { + "base": null, + "refs": { + "DashboardValidationMessage$Message": "

A message describing the error or warning.

" + } + }, "Metric": { "base": "

Represents a specific metric.

", "refs": { @@ -416,6 +546,8 @@ "DescribeAlarmHistoryOutput$NextToken": "

The token that marks the start of the next batch of returned results.

", "DescribeAlarmsInput$NextToken": "

The token returned by a previous call to indicate that there is more data available.

", "DescribeAlarmsOutput$NextToken": "

The token that marks the start of the next batch of returned results.

", + "ListDashboardsInput$NextToken": "

The token returned by a previous call to indicate that there is more data available.

", + "ListDashboardsOutput$NextToken": "

The token that marks the start of the next batch of returned results.

", "ListMetricsInput$NextToken": "

The token returned by a previous call to indicate that there is more data available.

", "ListMetricsOutput$NextToken": "

The token that marks the start of the next batch of returned results.

" } @@ -424,9 +556,19 @@ "base": null, "refs": { "DescribeAlarmsForMetricInput$Period": "

The period, in seconds, over which the statistic is applied.

", - "GetMetricStatisticsInput$Period": "

The granularity, in seconds, of the returned data points. A period can be as short as one minute (60 seconds) and must be a multiple of 60. The default value is 60.

If the StartTime parameter specifies a time stamp that is greater than 15 days ago, you must specify the period as follows or no data points in that time range is returned:

  • Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes).

  • Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour).

", + "GetMetricStatisticsInput$Period": "

The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData call that includes a StorageResolution of 1 second.

If the StartTime parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned:

  • Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).

  • Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes).

  • Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour).

", "MetricAlarm$Period": "

The period, in seconds, over which the statistic is applied.

", - "PutMetricAlarmInput$Period": "

The period, in seconds, over which the specified statistic is applied.

" + "PutMetricAlarmInput$Period": "

The period, in seconds, over which the specified statistic is applied. Valid values are 10, 30, and any multiple of 60.

Be sure to specify 10 or 30 only for metrics that are stored by a PutMetricData call with a StorageResolution of 1. If you specify a Period of 10 or 30 for a metric that does not have sub-minute resolution, the alarm still attempts to gather data at the period rate that you specify. In this case, it does not receive data for the attempts that do not correspond to a one-minute data resolution, and the alarm may often lapse into INSUFFICENT_DATA status. Specifying 10 or 30 also sets this alarm as a high-resolution alarm, which has a higher charge than other alarms. For more information about pricing, see Amazon CloudWatch Pricing.

An alarm's total current evaluation period can be no longer than one day, so Period multiplied by EvaluationPeriods cannot be more than 86,400 seconds.

" + } + }, + "PutDashboardInput": { + "base": null, + "refs": { + } + }, + "PutDashboardOutput": { + "base": null, + "refs": { } }, "PutMetricAlarmInput": { @@ -466,6 +608,12 @@ "refs": { } }, + "Size": { + "base": null, + "refs": { + "DashboardEntry$Size": "

The size of the dashboard, in bytes.

" + } + }, "StandardUnit": { "base": null, "refs": { @@ -474,7 +622,7 @@ "GetMetricStatisticsInput$Unit": "

The unit for a given metric. Metrics may be reported in multiple units. Not supplying a unit results in all units being returned. If the metric only ever reports one unit, specifying a unit has no effect.

", "MetricAlarm$Unit": "

The unit of the metric associated with the alarm.

", "MetricDatum$Unit": "

The unit of the metric.

", - "PutMetricAlarmInput$Unit": "

The unit of measure for the statistic. For example, the units for the Amazon EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that an instance receives on all network interfaces. You can also specify a unit when you create a custom metric. Units help provide conceptual meaning to your data. Metric data points that specify a unit of measure, such as Percent, are aggregated separately.

If you specify a unit, you must use a unit that is appropriate for the metric. Otherwise, the Amazon CloudWatch alarm can get stuck in the INSUFFICIENT DATA state.

" + "PutMetricAlarmInput$Unit": "

The unit of measure for the statistic. For example, the units for the Amazon EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that an instance receives on all network interfaces. You can also specify a unit when you create a custom metric. Units help provide conceptual meaning to your data. Metric data points that specify a unit of measure, such as Percent, are aggregated separately.

If you specify a unit, you must use a unit that is appropriate for the metric. Otherwise, the CloudWatch alarm can get stuck in the INSUFFICIENT DATA state.

" } }, "StateReason": { @@ -517,7 +665,13 @@ "Statistics": { "base": null, "refs": { - "GetMetricStatisticsInput$Statistics": "

The metric statistics, other than percentile. For percentile statistics, use ExtendedStatistic.

" + "GetMetricStatisticsInput$Statistics": "

The metric statistics, other than percentile. For percentile statistics, use ExtendedStatistics. When calling GetMetricStatistics, you must specify either Statistics or ExtendedStatistics, but not both.

" + } + }, + "StorageResolution": { + "base": null, + "refs": { + "MetricDatum$StorageResolution": "

Valid values are 1 and 60. Setting this to 1 specifies this metric as a high-resolution metric, so that CloudWatch stores the metric with sub-minute resolution down to one second. Setting this to 60 specifies this metric as a regular-resolution metric, which CloudWatch stores at 1-minute resolution. Currently, high resolution is available only for custom metrics. For more information about high-resolution metrics, see High-Resolution Metrics in the Amazon CloudWatch User Guide.

This field is optional, if you do not specify it the default of 60 is used.

" } }, "Threshold": { @@ -534,8 +688,8 @@ "Datapoint$Timestamp": "

The time stamp used for the data point.

", "DescribeAlarmHistoryInput$StartDate": "

The starting date to retrieve alarm history.

", "DescribeAlarmHistoryInput$EndDate": "

The ending date to retrieve alarm history.

", - "GetMetricStatisticsInput$StartTime": "

The time stamp that determines the first data point to return. Note that start times are evaluated relative to the time that CloudWatch receives the request.

The value specified is inclusive; results include data points with the specified time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z).

CloudWatch rounds the specified time stamp as follows:

  • Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00.

  • Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00.

  • Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00.

", - "GetMetricStatisticsInput$EndTime": "

The time stamp that determines the last data point to return.

The value specified is exclusive; results will include data points up to the specified time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z).

", + "GetMetricStatisticsInput$StartTime": "

The time stamp that determines the first data point to return. Start times are evaluated relative to the time that CloudWatch receives the request.

The value specified is inclusive; results include data points with the specified time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z).

CloudWatch rounds the specified time stamp as follows:

  • Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00.

  • Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00.

  • Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00.

If you set Period to 5, 10, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15.

", + "GetMetricStatisticsInput$EndTime": "

The time stamp that determines the last data point to return.

The value specified is exclusive; results include data points up to the specified time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z).

", "MetricAlarm$AlarmConfigurationUpdatedTimestamp": "

The time stamp of the last update to the alarm configuration.

", "MetricAlarm$StateUpdatedTimestamp": "

The time stamp of the last update to the alarm state.

", "MetricDatum$Timestamp": "

The time the metric data was received, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

" @@ -544,7 +698,7 @@ "TreatMissingData": { "base": null, "refs": { - "MetricAlarm$TreatMissingData": null, + "MetricAlarm$TreatMissingData": "

Sets how this alarm is to handle missing data points. If this parameter is omitted, the default behavior of missing is used.

", "PutMetricAlarmInput$TreatMissingData": "

Sets how this alarm is to handle missing data points. If TreatMissingData is omitted, the default behavior of missing is used. For more information, see Configuring How CloudWatch Alarms Treats Missing Data.

Valid Values: breaching | notBreaching | ignore | missing

" } } diff --git a/models/apis/mq/2017-11-27/api-2.json b/models/apis/mq/2017-11-27/api-2.json new file mode 100644 index 00000000000..40f85908476 --- /dev/null +++ b/models/apis/mq/2017-11-27/api-2.json @@ -0,0 +1,1865 @@ +{ + "metadata" : { + "apiVersion" : "2017-11-27", + "endpointPrefix" : "mq", + "signingName" : "mq", + "serviceFullName" : "AmazonMQ", + "serviceId" : "mq", + "protocol" : "rest-json", + "jsonVersion" : "1.1", + "uid" : "mq-2017-11-27", + "signatureVersion" : "v4" + }, + "operations" : { + "CreateBroker" : { + "name" : "CreateBroker", + "http" : { + "method" : "POST", + "requestUri" : "/v1/brokers", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateBrokerRequest" + }, + "output" : { + "shape" : "CreateBrokerResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "UnauthorizedException" + }, { + "shape" : "ConflictException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "CreateConfiguration" : { + "name" : "CreateConfiguration", + "http" : { + "method" : "POST", + "requestUri" : "/v1/configurations", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateConfigurationRequest" + }, + "output" : { + "shape" : "CreateConfigurationResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ConflictException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "CreateUser" : { + "name" : "CreateUser", + "http" : { + "method" : "POST", + "requestUri" : "/v1/brokers/{broker-id}/users/{username}", + "responseCode" : 200 + }, + "input" : { + "shape" : "CreateUserRequest" + }, + "output" : { + "shape" : "CreateUserResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ConflictException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "DeleteBroker" : { + "name" : "DeleteBroker", + "http" : { + "method" : "DELETE", + "requestUri" : "/v1/brokers/{broker-id}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteBrokerRequest" + }, + "output" : { + "shape" : "DeleteBrokerResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "DeleteUser" : { + "name" : "DeleteUser", + "http" : { + "method" : "DELETE", + "requestUri" : "/v1/brokers/{broker-id}/users/{username}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteUserRequest" + }, + "output" : { + "shape" : "DeleteUserResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "DescribeBroker" : { + "name" : "DescribeBroker", + "http" : { + "method" : "GET", + "requestUri" : "/v1/brokers/{broker-id}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DescribeBrokerRequest" + }, + "output" : { + "shape" : "DescribeBrokerResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "DescribeConfiguration" : { + "name" : "DescribeConfiguration", + "http" : { + "method" : "GET", + "requestUri" : "/v1/configurations/{configuration-id}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DescribeConfigurationRequest" + }, + "output" : { + "shape" : "DescribeConfigurationResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "DescribeConfigurationRevision" : { + "name" : "DescribeConfigurationRevision", + "http" : { + "method" : "GET", + "requestUri" : "/v1/configurations/{configuration-id}/revisions/{configuration-revision}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DescribeConfigurationRevisionRequest" + }, + "output" : { + "shape" : "DescribeConfigurationRevisionResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "DescribeUser" : { + "name" : "DescribeUser", + "http" : { + "method" : "GET", + "requestUri" : "/v1/brokers/{broker-id}/users/{username}", + "responseCode" : 200 + }, + "input" : { + "shape" : "DescribeUserRequest" + }, + "output" : { + "shape" : "DescribeUserResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "ListBrokers" : { + "name" : "ListBrokers", + "http" : { + "method" : "GET", + "requestUri" : "/v1/brokers", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListBrokersRequest" + }, + "output" : { + "shape" : "ListBrokersResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "ListConfigurationRevisions" : { + "name" : "ListConfigurationRevisions", + "http" : { + "method" : "GET", + "requestUri" : "/v1/configurations/{configuration-id}/revisions", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListConfigurationRevisionsRequest" + }, + "output" : { + "shape" : "ListConfigurationRevisionsResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "ListConfigurations" : { + "name" : "ListConfigurations", + "http" : { + "method" : "GET", + "requestUri" : "/v1/configurations", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListConfigurationsRequest" + }, + "output" : { + "shape" : "ListConfigurationsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "ListUsers" : { + "name" : "ListUsers", + "http" : { + "method" : "GET", + "requestUri" : "/v1/brokers/{broker-id}/users", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListUsersRequest" + }, + "output" : { + "shape" : "ListUsersResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "RebootBroker" : { + "name" : "RebootBroker", + "http" : { + "method" : "POST", + "requestUri" : "/v1/brokers/{broker-id}/reboot", + "responseCode" : 200 + }, + "input" : { + "shape" : "RebootBrokerRequest" + }, + "output" : { + "shape" : "RebootBrokerResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "UpdateBroker" : { + "name" : "UpdateBroker", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/brokers/{broker-id}", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateBrokerRequest" + }, + "output" : { + "shape" : "UpdateBrokerResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "UpdateConfiguration" : { + "name" : "UpdateConfiguration", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/configurations/{configuration-id}", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateConfigurationRequest" + }, + "output" : { + "shape" : "UpdateConfigurationResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ConflictException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "UpdateUser" : { + "name" : "UpdateUser", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/brokers/{broker-id}/users/{username}", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateUserRequest" + }, + "output" : { + "shape" : "UpdateUserResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ConflictException" + }, { + "shape" : "ForbiddenException" + } ] + } + }, + "shapes" : { + "BadRequestException" : { + "type" : "structure", + "members" : { + "ErrorAttribute" : { + "shape" : "__string", + "locationName" : "errorAttribute" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 400 + } + }, + "BrokerInstance" : { + "type" : "structure", + "members" : { + "ConsoleURL" : { + "shape" : "__string", + "locationName" : "consoleURL" + }, + "Endpoints" : { + "shape" : "ListOf__string", + "locationName" : "endpoints" + } + } + }, + "BrokerState" : { + "type" : "string", + "enum" : [ "CREATION_IN_PROGRESS", "CREATION_FAILED", "DELETION_IN_PROGRESS", "RUNNING", "REBOOT_IN_PROGRESS" ] + }, + "BrokerSummary" : { + "type" : "structure", + "members" : { + "BrokerArn" : { + "shape" : "__string", + "locationName" : "brokerArn" + }, + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + }, + "BrokerName" : { + "shape" : "__string", + "locationName" : "brokerName" + }, + "BrokerState" : { + "shape" : "BrokerState", + "locationName" : "brokerState" + }, + "DeploymentMode" : { + "shape" : "DeploymentMode", + "locationName" : "deploymentMode" + }, + "HostInstanceType" : { + "shape" : "__string", + "locationName" : "hostInstanceType" + } + } + }, + "ChangeType" : { + "type" : "string", + "enum" : [ "CREATE", "UPDATE", "DELETE" ] + }, + "Configuration" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string", + "locationName" : "arn" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "EngineType" : { + "shape" : "EngineType", + "locationName" : "engineType" + }, + "EngineVersion" : { + "shape" : "__string", + "locationName" : "engineVersion" + }, + "Id" : { + "shape" : "__string", + "locationName" : "id" + }, + "LatestRevision" : { + "shape" : "ConfigurationRevision", + "locationName" : "latestRevision" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + } + } + }, + "ConfigurationId" : { + "type" : "structure", + "members" : { + "Id" : { + "shape" : "__string", + "locationName" : "id" + }, + "Revision" : { + "shape" : "__integer", + "locationName" : "revision" + } + } + }, + "ConfigurationRevision" : { + "type" : "structure", + "members" : { + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Revision" : { + "shape" : "__integer", + "locationName" : "revision" + } + } + }, + "Configurations" : { + "type" : "structure", + "members" : { + "Current" : { + "shape" : "ConfigurationId", + "locationName" : "current" + }, + "History" : { + "shape" : "ListOfConfigurationId", + "locationName" : "history" + }, + "Pending" : { + "shape" : "ConfigurationId", + "locationName" : "pending" + } + } + }, + "ConflictException" : { + "type" : "structure", + "members" : { + "ErrorAttribute" : { + "shape" : "__string", + "locationName" : "errorAttribute" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 409 + } + }, + "CreateBrokerInput" : { + "type" : "structure", + "members" : { + "AutoMinorVersionUpgrade" : { + "shape" : "__boolean", + "locationName" : "autoMinorVersionUpgrade" + }, + "BrokerName" : { + "shape" : "__string", + "locationName" : "brokerName" + }, + "Configuration" : { + "shape" : "ConfigurationId", + "locationName" : "configuration" + }, + "CreatorRequestId" : { + "shape" : "__string", + "locationName" : "creatorRequestId", + "idempotencyToken" : true + }, + "DeploymentMode" : { + "shape" : "DeploymentMode", + "locationName" : "deploymentMode" + }, + "EngineType" : { + "shape" : "EngineType", + "locationName" : "engineType" + }, + "EngineVersion" : { + "shape" : "__string", + "locationName" : "engineVersion" + }, + "HostInstanceType" : { + "shape" : "__string", + "locationName" : "hostInstanceType" + }, + "MaintenanceWindowStartTime" : { + "shape" : "WeeklyStartTime", + "locationName" : "maintenanceWindowStartTime" + }, + "PubliclyAccessible" : { + "shape" : "__boolean", + "locationName" : "publiclyAccessible" + }, + "SecurityGroups" : { + "shape" : "ListOf__string", + "locationName" : "securityGroups" + }, + "SubnetIds" : { + "shape" : "ListOf__string", + "locationName" : "subnetIds" + }, + "Users" : { + "shape" : "ListOfUser", + "locationName" : "users" + } + } + }, + "CreateBrokerOutput" : { + "type" : "structure", + "members" : { + "BrokerArn" : { + "shape" : "__string", + "locationName" : "brokerArn" + }, + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + } + } + }, + "CreateBrokerRequest" : { + "type" : "structure", + "members" : { + "AutoMinorVersionUpgrade" : { + "shape" : "__boolean", + "locationName" : "autoMinorVersionUpgrade" + }, + "BrokerName" : { + "shape" : "__string", + "locationName" : "brokerName" + }, + "Configuration" : { + "shape" : "ConfigurationId", + "locationName" : "configuration" + }, + "CreatorRequestId" : { + "shape" : "__string", + "locationName" : "creatorRequestId", + "idempotencyToken" : true + }, + "DeploymentMode" : { + "shape" : "DeploymentMode", + "locationName" : "deploymentMode" + }, + "EngineType" : { + "shape" : "EngineType", + "locationName" : "engineType" + }, + "EngineVersion" : { + "shape" : "__string", + "locationName" : "engineVersion" + }, + "HostInstanceType" : { + "shape" : "__string", + "locationName" : "hostInstanceType" + }, + "MaintenanceWindowStartTime" : { + "shape" : "WeeklyStartTime", + "locationName" : "maintenanceWindowStartTime" + }, + "PubliclyAccessible" : { + "shape" : "__boolean", + "locationName" : "publiclyAccessible" + }, + "SecurityGroups" : { + "shape" : "ListOf__string", + "locationName" : "securityGroups" + }, + "SubnetIds" : { + "shape" : "ListOf__string", + "locationName" : "subnetIds" + }, + "Users" : { + "shape" : "ListOfUser", + "locationName" : "users" + } + } + }, + "CreateBrokerResponse" : { + "type" : "structure", + "members" : { + "BrokerArn" : { + "shape" : "__string", + "locationName" : "brokerArn" + }, + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + } + } + }, + "CreateConfigurationInput" : { + "type" : "structure", + "members" : { + "EngineType" : { + "shape" : "EngineType", + "locationName" : "engineType" + }, + "EngineVersion" : { + "shape" : "__string", + "locationName" : "engineVersion" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + } + } + }, + "CreateConfigurationOutput" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string", + "locationName" : "arn" + }, + "Id" : { + "shape" : "__string", + "locationName" : "id" + }, + "LatestRevision" : { + "shape" : "ConfigurationRevision", + "locationName" : "latestRevision" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + } + } + }, + "CreateConfigurationRequest" : { + "type" : "structure", + "members" : { + "EngineType" : { + "shape" : "EngineType", + "locationName" : "engineType" + }, + "EngineVersion" : { + "shape" : "__string", + "locationName" : "engineVersion" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + } + } + }, + "CreateConfigurationResponse" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string", + "locationName" : "arn" + }, + "Id" : { + "shape" : "__string", + "locationName" : "id" + }, + "LatestRevision" : { + "shape" : "ConfigurationRevision", + "locationName" : "latestRevision" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + } + } + }, + "CreateUserInput" : { + "type" : "structure", + "members" : { + "ConsoleAccess" : { + "shape" : "__boolean", + "locationName" : "consoleAccess" + }, + "Groups" : { + "shape" : "ListOf__string", + "locationName" : "groups" + }, + "Password" : { + "shape" : "__string", + "locationName" : "password" + } + } + }, + "CreateUserRequest" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "broker-id" + }, + "ConsoleAccess" : { + "shape" : "__boolean", + "locationName" : "consoleAccess" + }, + "Groups" : { + "shape" : "ListOf__string", + "locationName" : "groups" + }, + "Password" : { + "shape" : "__string", + "locationName" : "password" + }, + "Username" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "username" + } + }, + "required" : [ "Username", "BrokerId" ] + }, + "CreateUserResponse" : { + "type" : "structure", + "members" : { } + }, + "DayOfWeek" : { + "type" : "string", + "enum" : [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY" ] + }, + "DeleteBrokerOutput" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + } + } + }, + "DeleteBrokerRequest" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "broker-id" + } + }, + "required" : [ "BrokerId" ] + }, + "DeleteBrokerResponse" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + } + } + }, + "DeleteUserRequest" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "broker-id" + }, + "Username" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "username" + } + }, + "required" : [ "Username", "BrokerId" ] + }, + "DeleteUserResponse" : { + "type" : "structure", + "members" : { } + }, + "DeploymentMode" : { + "type" : "string", + "enum" : [ "SINGLE_INSTANCE", "ACTIVE_STANDBY_MULTI_AZ" ] + }, + "DescribeBrokerOutput" : { + "type" : "structure", + "members" : { + "AutoMinorVersionUpgrade" : { + "shape" : "__boolean", + "locationName" : "autoMinorVersionUpgrade" + }, + "BrokerArn" : { + "shape" : "__string", + "locationName" : "brokerArn" + }, + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + }, + "BrokerInstances" : { + "shape" : "ListOfBrokerInstance", + "locationName" : "brokerInstances" + }, + "BrokerName" : { + "shape" : "__string", + "locationName" : "brokerName" + }, + "BrokerState" : { + "shape" : "BrokerState", + "locationName" : "brokerState" + }, + "Configurations" : { + "shape" : "Configurations", + "locationName" : "configurations" + }, + "DeploymentMode" : { + "shape" : "DeploymentMode", + "locationName" : "deploymentMode" + }, + "EngineType" : { + "shape" : "EngineType", + "locationName" : "engineType" + }, + "EngineVersion" : { + "shape" : "__string", + "locationName" : "engineVersion" + }, + "HostInstanceType" : { + "shape" : "__string", + "locationName" : "hostInstanceType" + }, + "MaintenanceWindowStartTime" : { + "shape" : "WeeklyStartTime", + "locationName" : "maintenanceWindowStartTime" + }, + "PubliclyAccessible" : { + "shape" : "__boolean", + "locationName" : "publiclyAccessible" + }, + "SecurityGroups" : { + "shape" : "ListOf__string", + "locationName" : "securityGroups" + }, + "SubnetIds" : { + "shape" : "ListOf__string", + "locationName" : "subnetIds" + }, + "Users" : { + "shape" : "ListOfUserSummary", + "locationName" : "users" + } + } + }, + "DescribeBrokerRequest" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "broker-id" + } + }, + "required" : [ "BrokerId" ] + }, + "DescribeBrokerResponse" : { + "type" : "structure", + "members" : { + "AutoMinorVersionUpgrade" : { + "shape" : "__boolean", + "locationName" : "autoMinorVersionUpgrade" + }, + "BrokerArn" : { + "shape" : "__string", + "locationName" : "brokerArn" + }, + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + }, + "BrokerInstances" : { + "shape" : "ListOfBrokerInstance", + "locationName" : "brokerInstances" + }, + "BrokerName" : { + "shape" : "__string", + "locationName" : "brokerName" + }, + "BrokerState" : { + "shape" : "BrokerState", + "locationName" : "brokerState" + }, + "Configurations" : { + "shape" : "Configurations", + "locationName" : "configurations" + }, + "DeploymentMode" : { + "shape" : "DeploymentMode", + "locationName" : "deploymentMode" + }, + "EngineType" : { + "shape" : "EngineType", + "locationName" : "engineType" + }, + "EngineVersion" : { + "shape" : "__string", + "locationName" : "engineVersion" + }, + "HostInstanceType" : { + "shape" : "__string", + "locationName" : "hostInstanceType" + }, + "MaintenanceWindowStartTime" : { + "shape" : "WeeklyStartTime", + "locationName" : "maintenanceWindowStartTime" + }, + "PubliclyAccessible" : { + "shape" : "__boolean", + "locationName" : "publiclyAccessible" + }, + "SecurityGroups" : { + "shape" : "ListOf__string", + "locationName" : "securityGroups" + }, + "SubnetIds" : { + "shape" : "ListOf__string", + "locationName" : "subnetIds" + }, + "Users" : { + "shape" : "ListOfUserSummary", + "locationName" : "users" + } + } + }, + "DescribeConfigurationRequest" : { + "type" : "structure", + "members" : { + "ConfigurationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "configuration-id" + } + }, + "required" : [ "ConfigurationId" ] + }, + "DescribeConfigurationResponse" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string", + "locationName" : "arn" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "EngineType" : { + "shape" : "EngineType", + "locationName" : "engineType" + }, + "EngineVersion" : { + "shape" : "__string", + "locationName" : "engineVersion" + }, + "Id" : { + "shape" : "__string", + "locationName" : "id" + }, + "LatestRevision" : { + "shape" : "ConfigurationRevision", + "locationName" : "latestRevision" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + } + } + }, + "DescribeConfigurationRevisionOutput" : { + "type" : "structure", + "members" : { + "ConfigurationId" : { + "shape" : "__string", + "locationName" : "configurationId" + }, + "Data" : { + "shape" : "__string", + "locationName" : "data" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + } + } + }, + "DescribeConfigurationRevisionRequest" : { + "type" : "structure", + "members" : { + "ConfigurationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "configuration-id" + }, + "ConfigurationRevision" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "configuration-revision" + } + }, + "required" : [ "ConfigurationRevision", "ConfigurationId" ] + }, + "DescribeConfigurationRevisionResponse" : { + "type" : "structure", + "members" : { + "ConfigurationId" : { + "shape" : "__string", + "locationName" : "configurationId" + }, + "Data" : { + "shape" : "__string", + "locationName" : "data" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + } + } + }, + "DescribeUserOutput" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + }, + "ConsoleAccess" : { + "shape" : "__boolean", + "locationName" : "consoleAccess" + }, + "Groups" : { + "shape" : "ListOf__string", + "locationName" : "groups" + }, + "Pending" : { + "shape" : "UserPendingChanges", + "locationName" : "pending" + }, + "Username" : { + "shape" : "__string", + "locationName" : "username" + } + } + }, + "DescribeUserRequest" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "broker-id" + }, + "Username" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "username" + } + }, + "required" : [ "Username", "BrokerId" ] + }, + "DescribeUserResponse" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + }, + "ConsoleAccess" : { + "shape" : "__boolean", + "locationName" : "consoleAccess" + }, + "Groups" : { + "shape" : "ListOf__string", + "locationName" : "groups" + }, + "Pending" : { + "shape" : "UserPendingChanges", + "locationName" : "pending" + }, + "Username" : { + "shape" : "__string", + "locationName" : "username" + } + } + }, + "EngineType" : { + "type" : "string", + "enum" : [ "ACTIVEMQ" ] + }, + "Error" : { + "type" : "structure", + "members" : { + "ErrorAttribute" : { + "shape" : "__string", + "locationName" : "errorAttribute" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + } + }, + "ForbiddenException" : { + "type" : "structure", + "members" : { + "ErrorAttribute" : { + "shape" : "__string", + "locationName" : "errorAttribute" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 403 + } + }, + "InternalServerErrorException" : { + "type" : "structure", + "members" : { + "ErrorAttribute" : { + "shape" : "__string", + "locationName" : "errorAttribute" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 500 + } + }, + "ListBrokersOutput" : { + "type" : "structure", + "members" : { + "BrokerSummaries" : { + "shape" : "ListOfBrokerSummary", + "locationName" : "brokerSummaries" + }, + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + } + } + }, + "ListBrokersRequest" : { + "type" : "structure", + "members" : { + "MaxResults" : { + "shape" : "MaxResults", + "location" : "querystring", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + } + } + }, + "ListBrokersResponse" : { + "type" : "structure", + "members" : { + "BrokerSummaries" : { + "shape" : "ListOfBrokerSummary", + "locationName" : "brokerSummaries" + }, + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + } + } + }, + "ListConfigurationRevisionsOutput" : { + "type" : "structure", + "members" : { + "ConfigurationId" : { + "shape" : "__string", + "locationName" : "configurationId" + }, + "MaxResults" : { + "shape" : "__integer", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + }, + "Revisions" : { + "shape" : "ListOfConfigurationRevision", + "locationName" : "revisions" + } + } + }, + "ListConfigurationRevisionsRequest" : { + "type" : "structure", + "members" : { + "ConfigurationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "configuration-id" + }, + "MaxResults" : { + "shape" : "MaxResults", + "location" : "querystring", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + } + }, + "required" : [ "ConfigurationId" ] + }, + "ListConfigurationRevisionsResponse" : { + "type" : "structure", + "members" : { + "ConfigurationId" : { + "shape" : "__string", + "locationName" : "configurationId" + }, + "MaxResults" : { + "shape" : "__integer", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + }, + "Revisions" : { + "shape" : "ListOfConfigurationRevision", + "locationName" : "revisions" + } + } + }, + "ListConfigurationsOutput" : { + "type" : "structure", + "members" : { + "Configurations" : { + "shape" : "ListOfConfiguration", + "locationName" : "configurations" + }, + "MaxResults" : { + "shape" : "__integer", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + } + } + }, + "ListConfigurationsRequest" : { + "type" : "structure", + "members" : { + "MaxResults" : { + "shape" : "MaxResults", + "location" : "querystring", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + } + } + }, + "ListConfigurationsResponse" : { + "type" : "structure", + "members" : { + "Configurations" : { + "shape" : "ListOfConfiguration", + "locationName" : "configurations" + }, + "MaxResults" : { + "shape" : "__integer", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + } + } + }, + "ListOfBrokerInstance" : { + "type" : "list", + "member" : { + "shape" : "BrokerInstance" + } + }, + "ListOfBrokerSummary" : { + "type" : "list", + "member" : { + "shape" : "BrokerSummary" + } + }, + "ListOfConfiguration" : { + "type" : "list", + "member" : { + "shape" : "Configuration" + } + }, + "ListOfConfigurationId" : { + "type" : "list", + "member" : { + "shape" : "ConfigurationId" + } + }, + "ListOfConfigurationRevision" : { + "type" : "list", + "member" : { + "shape" : "ConfigurationRevision" + } + }, + "ListOfSanitizationWarning" : { + "type" : "list", + "member" : { + "shape" : "SanitizationWarning" + } + }, + "ListOfUser" : { + "type" : "list", + "member" : { + "shape" : "User" + } + }, + "ListOfUserSummary" : { + "type" : "list", + "member" : { + "shape" : "UserSummary" + } + }, + "ListOf__string" : { + "type" : "list", + "member" : { + "shape" : "__string" + } + }, + "ListUsersOutput" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + }, + "MaxResults" : { + "shape" : "__integer", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + }, + "Users" : { + "shape" : "ListOfUserSummary", + "locationName" : "users" + } + } + }, + "ListUsersRequest" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "broker-id" + }, + "MaxResults" : { + "shape" : "MaxResults", + "location" : "querystring", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + } + }, + "required" : [ "BrokerId" ] + }, + "ListUsersResponse" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + }, + "MaxResults" : { + "shape" : "__integer", + "locationName" : "maxResults" + }, + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + }, + "Users" : { + "shape" : "ListOfUserSummary", + "locationName" : "users" + } + } + }, + "MaxResults" : { + "type" : "integer", + "min" : 1, + "max" : 100 + }, + "NotFoundException" : { + "type" : "structure", + "members" : { + "ErrorAttribute" : { + "shape" : "__string", + "locationName" : "errorAttribute" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 404 + } + }, + "RebootBrokerRequest" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "broker-id" + } + }, + "required" : [ "BrokerId" ] + }, + "RebootBrokerResponse" : { + "type" : "structure", + "members" : { } + }, + "SanitizationWarning" : { + "type" : "structure", + "members" : { + "AttributeName" : { + "shape" : "__string", + "locationName" : "attributeName" + }, + "ElementName" : { + "shape" : "__string", + "locationName" : "elementName" + }, + "Reason" : { + "shape" : "SanitizationWarningReason", + "locationName" : "reason" + } + } + }, + "SanitizationWarningReason" : { + "type" : "string", + "enum" : [ "DISALLOWED_ELEMENT_REMOVED", "DISALLOWED_ATTRIBUTE_REMOVED", "INVALID_ATTRIBUTE_VALUE_REMOVED" ] + }, + "UnauthorizedException" : { + "type" : "structure", + "members" : { + "ErrorAttribute" : { + "shape" : "__string", + "locationName" : "errorAttribute" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 401 + } + }, + "UpdateBrokerInput" : { + "type" : "structure", + "members" : { + "Configuration" : { + "shape" : "ConfigurationId", + "locationName" : "configuration" + } + } + }, + "UpdateBrokerOutput" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + }, + "Configuration" : { + "shape" : "ConfigurationId", + "locationName" : "configuration" + } + } + }, + "UpdateBrokerRequest" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "broker-id" + }, + "Configuration" : { + "shape" : "ConfigurationId", + "locationName" : "configuration" + } + }, + "required" : [ "BrokerId" ] + }, + "UpdateBrokerResponse" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "locationName" : "brokerId" + }, + "Configuration" : { + "shape" : "ConfigurationId", + "locationName" : "configuration" + } + } + }, + "UpdateConfigurationInput" : { + "type" : "structure", + "members" : { + "Data" : { + "shape" : "__string", + "locationName" : "data" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + } + } + }, + "UpdateConfigurationOutput" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string", + "locationName" : "arn" + }, + "Id" : { + "shape" : "__string", + "locationName" : "id" + }, + "LatestRevision" : { + "shape" : "ConfigurationRevision", + "locationName" : "latestRevision" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "Warnings" : { + "shape" : "ListOfSanitizationWarning", + "locationName" : "warnings" + } + } + }, + "UpdateConfigurationRequest" : { + "type" : "structure", + "members" : { + "ConfigurationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "configuration-id" + }, + "Data" : { + "shape" : "__string", + "locationName" : "data" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + } + }, + "required" : [ "ConfigurationId" ] + }, + "UpdateConfigurationResponse" : { + "type" : "structure", + "members" : { + "Arn" : { + "shape" : "__string", + "locationName" : "arn" + }, + "Id" : { + "shape" : "__string", + "locationName" : "id" + }, + "LatestRevision" : { + "shape" : "ConfigurationRevision", + "locationName" : "latestRevision" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "Warnings" : { + "shape" : "ListOfSanitizationWarning", + "locationName" : "warnings" + } + } + }, + "UpdateUserInput" : { + "type" : "structure", + "members" : { + "ConsoleAccess" : { + "shape" : "__boolean", + "locationName" : "consoleAccess" + }, + "Groups" : { + "shape" : "ListOf__string", + "locationName" : "groups" + }, + "Password" : { + "shape" : "__string", + "locationName" : "password" + } + } + }, + "UpdateUserRequest" : { + "type" : "structure", + "members" : { + "BrokerId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "broker-id" + }, + "ConsoleAccess" : { + "shape" : "__boolean", + "locationName" : "consoleAccess" + }, + "Groups" : { + "shape" : "ListOf__string", + "locationName" : "groups" + }, + "Password" : { + "shape" : "__string", + "locationName" : "password" + }, + "Username" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "username" + } + }, + "required" : [ "Username", "BrokerId" ] + }, + "UpdateUserResponse" : { + "type" : "structure", + "members" : { } + }, + "User" : { + "type" : "structure", + "members" : { + "ConsoleAccess" : { + "shape" : "__boolean", + "locationName" : "consoleAccess" + }, + "Groups" : { + "shape" : "ListOf__string", + "locationName" : "groups" + }, + "Password" : { + "shape" : "__string", + "locationName" : "password" + }, + "Username" : { + "shape" : "__string", + "locationName" : "username" + } + } + }, + "UserPendingChanges" : { + "type" : "structure", + "members" : { + "ConsoleAccess" : { + "shape" : "__boolean", + "locationName" : "consoleAccess" + }, + "Groups" : { + "shape" : "ListOf__string", + "locationName" : "groups" + }, + "PendingChange" : { + "shape" : "ChangeType", + "locationName" : "pendingChange" + } + } + }, + "UserSummary" : { + "type" : "structure", + "members" : { + "PendingChange" : { + "shape" : "ChangeType", + "locationName" : "pendingChange" + }, + "Username" : { + "shape" : "__string", + "locationName" : "username" + } + } + }, + "WeeklyStartTime" : { + "type" : "structure", + "members" : { + "DayOfWeek" : { + "shape" : "DayOfWeek", + "locationName" : "dayOfWeek" + }, + "TimeOfDay" : { + "shape" : "__string", + "locationName" : "timeOfDay" + }, + "TimeZone" : { + "shape" : "__string", + "locationName" : "timeZone" + } + } + }, + "__boolean" : { + "type" : "boolean" + }, + "__double" : { + "type" : "double" + }, + "__integer" : { + "type" : "integer" + }, + "__string" : { + "type" : "string" + }, + "__timestamp" : { + "type" : "timestamp" + } + } +} \ No newline at end of file diff --git a/models/apis/mq/2017-11-27/docs-2.json b/models/apis/mq/2017-11-27/docs-2.json new file mode 100644 index 00000000000..8c9c90a5eb7 --- /dev/null +++ b/models/apis/mq/2017-11-27/docs-2.json @@ -0,0 +1,394 @@ +{ + "version" : "2.0", + "service" : "Amazon MQ is a managed message broker service for Apache ActiveMQ that makes it easy to set up and operate message brokers in the cloud. A message broker allows software applications and components to communicate using various programming languages, operating systems, and formal messaging protocols.", + "operations" : { + "CreateBroker" : "Creates a broker. Note: This API is asynchronous.", + "CreateConfiguration" : "Creates a new configuration for the specified configuration name. Amazon MQ uses the default configuration (the engine type and version). Note: If the configuration name already exists, Amazon MQ doesn't create a configuration.", + "CreateUser" : "Creates an ActiveMQ user.", + "DeleteBroker" : "Deletes a broker. Note: This API is asynchronous.", + "DeleteUser" : "Deletes an ActiveMQ user.", + "DescribeBroker" : "Returns information about the specified broker.", + "DescribeConfiguration" : "Returns information about the specified configuration.", + "DescribeConfigurationRevision" : "Returns the specified configuration revision for the specified configuration.", + "DescribeUser" : "Returns information about an ActiveMQ user.", + "ListBrokers" : "Returns a list of all brokers.", + "ListConfigurationRevisions" : "Returns a list of all revisions for the specified configuration.", + "ListConfigurations" : "Returns a list of all configurations.", + "ListUsers" : "Returns a list of all ActiveMQ users.", + "RebootBroker" : "Reboots a broker. Note: This API is asynchronous.", + "UpdateBroker" : "Adds a pending configuration change to a broker.", + "UpdateConfiguration" : "Updates the specified configuration.", + "UpdateUser" : "Updates the information for an ActiveMQ user." + }, + "shapes" : { + "BadRequestException" : { + "base" : "Returns information about an error.", + "refs" : { } + }, + "BrokerInstance" : { + "base" : "Returns information about all brokers.", + "refs" : { + "ListOfBrokerInstance$member" : null + } + }, + "BrokerState" : { + "base" : "The status of the broker. Possible values: CREATION_IN_PROGRESS, CREATION_FAILED, DELETION_IN_PROGRESS, RUNNING, REBOOT_IN_PROGRESS", + "refs" : { + "BrokerSummary$BrokerState" : "The status of the broker. Possible values: CREATION_IN_PROGRESS, CREATION_FAILED, DELETION_IN_PROGRESS, RUNNING, REBOOT_IN_PROGRESS", + "DescribeBrokerOutput$BrokerState" : "The status of the broker. Possible values: CREATION_IN_PROGRESS, CREATION_FAILED, DELETION_IN_PROGRESS, RUNNING, REBOOT_IN_PROGRESS" + } + }, + "BrokerSummary" : { + "base" : "The Amazon Resource Name (ARN) of the broker.", + "refs" : { + "ListOfBrokerSummary$member" : null + } + }, + "ChangeType" : { + "base" : "The type of change pending for the ActiveMQ user. Possible values: CREATE, UPDATE, DELETE", + "refs" : { + "UserPendingChanges$PendingChange" : "Required. The type of change pending for the ActiveMQ user. Possible values: CREATE, UPDATE, DELETE", + "UserSummary$PendingChange" : "The type of change pending for the ActiveMQ user. Possible values: CREATE, UPDATE, DELETE" + } + }, + "Configuration" : { + "base" : "Returns information about all configurations.", + "refs" : { + "ListOfConfiguration$member" : null + } + }, + "ConfigurationId" : { + "base" : "A list of information about the configuration.", + "refs" : { + "Configurations$Current" : "The current configuration of the broker.", + "Configurations$Pending" : "The pending configuration of the broker.", + "CreateBrokerInput$Configuration" : "A list of information about the configuration.", + "ListOfConfigurationId$member" : null, + "UpdateBrokerInput$Configuration" : "A list of information about the configuration.", + "UpdateBrokerOutput$Configuration" : "The ID of the updated configuration." + } + }, + "ConfigurationRevision" : { + "base" : "Returns information about the specified configuration revision.", + "refs" : { + "Configuration$LatestRevision" : "Required. The latest revision of the configuration.", + "CreateConfigurationOutput$LatestRevision" : "The latest revision of the configuration.", + "ListOfConfigurationRevision$member" : null, + "UpdateConfigurationOutput$LatestRevision" : "The latest revision of the configuration." + } + }, + "Configurations" : { + "base" : "Broker configuration information", + "refs" : { + "DescribeBrokerOutput$Configurations" : "The list of all revisions for the specified configuration." + } + }, + "ConflictException" : { + "base" : "Returns information about an error.", + "refs" : { } + }, + "CreateBrokerInput" : { + "base" : "Required. The time period during which Amazon MQ applies pending updates or patches to the broker.", + "refs" : { } + }, + "CreateBrokerOutput" : { + "base" : "Returns information about the created broker.", + "refs" : { } + }, + "CreateConfigurationInput" : { + "base" : "Creates a new configuration for the specified configuration name. Amazon MQ uses the default configuration (the engine type and version). Note: If the configuration name already exists, Amazon MQ doesn't create a configuration.", + "refs" : { } + }, + "CreateConfigurationOutput" : { + "base" : "Returns information about the created configuration.", + "refs" : { } + }, + "CreateUserInput" : { + "base" : "Creates a new ActiveMQ user.", + "refs" : { } + }, + "DayOfWeek" : { + "base" : null, + "refs" : { + "WeeklyStartTime$DayOfWeek" : "Required. The day of the week. Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY" + } + }, + "DeleteBrokerOutput" : { + "base" : "Returns information about the deleted broker.", + "refs" : { } + }, + "DeploymentMode" : { + "base" : "The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability.", + "refs" : { + "BrokerSummary$DeploymentMode" : "Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability.", + "CreateBrokerInput$DeploymentMode" : "Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability.", + "DescribeBrokerOutput$DeploymentMode" : "Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability." + } + }, + "DescribeBrokerOutput" : { + "base" : "The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0.", + "refs" : { } + }, + "DescribeConfigurationRevisionOutput" : { + "base" : "Returns the specified configuration revision for the specified configuration.", + "refs" : { } + }, + "DescribeUserOutput" : { + "base" : "Returns information about an ActiveMQ user.", + "refs" : { } + }, + "EngineType" : { + "base" : "The type of broker engine. Note: Currently, Amazon MQ supports only ActiveMQ.", + "refs" : { + "Configuration$EngineType" : "Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.", + "CreateBrokerInput$EngineType" : "Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.", + "CreateConfigurationInput$EngineType" : "Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.", + "DescribeBrokerOutput$EngineType" : "Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ." + } + }, + "Error" : { + "base" : "Returns information about an error.", + "refs" : { } + }, + "ForbiddenException" : { + "base" : "Returns information about an error.", + "refs" : { } + }, + "InternalServerErrorException" : { + "base" : "Returns information about an error.", + "refs" : { } + }, + "ListBrokersOutput" : { + "base" : "A list of information about all brokers.", + "refs" : { } + }, + "ListConfigurationRevisionsOutput" : { + "base" : "Returns a list of all revisions for the specified configuration.", + "refs" : { } + }, + "ListConfigurationsOutput" : { + "base" : "Returns a list of all configurations.", + "refs" : { } + }, + "ListOfBrokerInstance" : { + "base" : null, + "refs" : { + "DescribeBrokerOutput$BrokerInstances" : "A list of information about allocated brokers." + } + }, + "ListOfBrokerSummary" : { + "base" : null, + "refs" : { + "ListBrokersOutput$BrokerSummaries" : "A list of information about all brokers." + } + }, + "ListOfConfiguration" : { + "base" : null, + "refs" : { + "ListConfigurationsOutput$Configurations" : "The list of all revisions for the specified configuration." + } + }, + "ListOfConfigurationId" : { + "base" : null, + "refs" : { + "Configurations$History" : "The history of configurations applied to the broker." + } + }, + "ListOfConfigurationRevision" : { + "base" : null, + "refs" : { + "ListConfigurationRevisionsOutput$Revisions" : "The list of all revisions for the specified configuration." + } + }, + "ListOfSanitizationWarning" : { + "base" : null, + "refs" : { + "UpdateConfigurationOutput$Warnings" : "The list of the first 20 warnings about the configuration XML elements or attributes that were sanitized." + } + }, + "ListOfUser" : { + "base" : null, + "refs" : { + "CreateBrokerInput$Users" : "Required. The list of ActiveMQ users (persons or applications) who can access queues and topics. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long." + } + }, + "ListOfUserSummary" : { + "base" : null, + "refs" : { + "DescribeBrokerOutput$Users" : "The list of all ActiveMQ usernames for the specified broker.", + "ListUsersOutput$Users" : "Required. The list of all ActiveMQ usernames for the specified broker." + } + }, + "ListOf__string" : { + "base" : null, + "refs" : { + "BrokerInstance$Endpoints" : "The broker's wire-level protocol endpoints.", + "CreateBrokerInput$SecurityGroups" : "Required. The list of rules (1 minimum, 125 maximum) that authorize connections to brokers.", + "CreateBrokerInput$SubnetIds" : "Required. The list of groups (2 maximum) that define which subnets and IP ranges the broker can use from different Availability Zones. A SINGLE_INSTANCE deployment requires one subnet (for example, the default subnet). An ACTIVE_STANDBY_MULTI_AZ deployment requires two subnets.", + "CreateUserInput$Groups" : "The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.", + "DescribeBrokerOutput$SecurityGroups" : "Required. The list of rules (1 minimum, 125 maximum) that authorize connections to brokers.", + "DescribeBrokerOutput$SubnetIds" : "The list of groups (2 maximum) that define which subnets and IP ranges the broker can use from different Availability Zones. A SINGLE_INSTANCE deployment requires one subnet (for example, the default subnet). An ACTIVE_STANDBY_MULTI_AZ deployment requires two subnets.", + "DescribeUserOutput$Groups" : "The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.", + "UpdateUserInput$Groups" : "The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.", + "User$Groups" : "The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.", + "UserPendingChanges$Groups" : "The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long." + } + }, + "ListUsersOutput" : { + "base" : "Returns a list of all ActiveMQ users.", + "refs" : { } + }, + "NotFoundException" : { + "base" : "Returns information about an error.", + "refs" : { } + }, + "SanitizationWarning" : { + "base" : "Returns information about the XML element or attribute that was sanitized in the configuration.", + "refs" : { + "ListOfSanitizationWarning$member" : null + } + }, + "SanitizationWarningReason" : { + "base" : "The reason for which the XML elements or attributes were sanitized. Possible values: DISALLOWED_ELEMENT_REMOVED, DISALLOWED_ATTRIBUTE_REMOVED, INVALID_ATTRIBUTE_VALUE_REMOVED DISALLOWED_ELEMENT_REMOVED shows that the provided element isn't allowed and has been removed. DISALLOWED_ATTRIBUTE_REMOVED shows that the provided attribute isn't allowed and has been removed. INVALID_ATTRIBUTE_VALUE_REMOVED shows that the provided value for the attribute isn't allowed and has been removed.", + "refs" : { + "SanitizationWarning$Reason" : "Required. The reason for which the XML elements or attributes were sanitized. Possible values: DISALLOWED_ELEMENT_REMOVED, DISALLOWED_ATTRIBUTE_REMOVED, INVALID_ATTRIBUTE_VALUE_REMOVED DISALLOWED_ELEMENT_REMOVED shows that the provided element isn't allowed and has been removed. DISALLOWED_ATTRIBUTE_REMOVED shows that the provided attribute isn't allowed and has been removed. INVALID_ATTRIBUTE_VALUE_REMOVED shows that the provided value for the attribute isn't allowed and has been removed." + } + }, + "UnauthorizedException" : { + "base" : "Returns information about an error.", + "refs" : { } + }, + "UpdateBrokerInput" : { + "base" : "Updates the broker using the specified properties.", + "refs" : { } + }, + "UpdateBrokerOutput" : { + "base" : "Returns information about the updated broker.", + "refs" : { } + }, + "UpdateConfigurationInput" : { + "base" : "Updates the specified configuration.", + "refs" : { } + }, + "UpdateConfigurationOutput" : { + "base" : "Returns information about the updated configuration.", + "refs" : { } + }, + "UpdateUserInput" : { + "base" : "Updates the information for an ActiveMQ user.", + "refs" : { } + }, + "User" : { + "base" : "An ActiveMQ user associated with the broker.", + "refs" : { + "ListOfUser$member" : null + } + }, + "UserPendingChanges" : { + "base" : "Returns information about the status of the changes pending for the ActiveMQ user.", + "refs" : { + "DescribeUserOutput$Pending" : "The status of the changes pending for the ActiveMQ user." + } + }, + "UserSummary" : { + "base" : "Returns a list of all ActiveMQ users.", + "refs" : { + "ListOfUserSummary$member" : null + } + }, + "WeeklyStartTime" : { + "base" : "The scheduled time period relative to UTC during which Amazon MQ begins to apply pending updates or patches to the broker.", + "refs" : { + "CreateBrokerInput$MaintenanceWindowStartTime" : "The parameters that determine the WeeklyStartTime.", + "DescribeBrokerOutput$MaintenanceWindowStartTime" : "The parameters that determine the WeeklyStartTime." + } + }, + "__boolean" : { + "base" : null, + "refs" : { + "CreateBrokerInput$AutoMinorVersionUpgrade" : "Required. Enables automatic upgrades to new minor versions for brokers, as Apache releases the versions. The automatic upgrades occur during the maintenance window of the broker or after a manual broker reboot.", + "CreateBrokerInput$PubliclyAccessible" : "Required. Enables connections from applications outside of the VPC that hosts the broker's subnets.", + "CreateUserInput$ConsoleAccess" : "Enables access to the the ActiveMQ Web Console for the ActiveMQ user.", + "DescribeBrokerOutput$AutoMinorVersionUpgrade" : "Required. Enables automatic upgrades to new minor versions for brokers, as Apache releases the versions. The automatic upgrades occur during the maintenance window of the broker or after a manual broker reboot.", + "DescribeBrokerOutput$PubliclyAccessible" : "Required. Enables connections from applications outside of the VPC that hosts the broker's subnets.", + "DescribeUserOutput$ConsoleAccess" : "Enables access to the the ActiveMQ Web Console for the ActiveMQ user.", + "UpdateUserInput$ConsoleAccess" : "Enables access to the the ActiveMQ Web Console for the ActiveMQ user.", + "User$ConsoleAccess" : "Enables access to the the ActiveMQ Web Console for the ActiveMQ user.", + "UserPendingChanges$ConsoleAccess" : "Enables access to the the ActiveMQ Web Console for the ActiveMQ user." + } + }, + "__integer" : { + "base" : null, + "refs" : { + "ConfigurationId$Revision" : "The Universally Unique Identifier (UUID) of the request.", + "ConfigurationRevision$Revision" : "Required. The revision of the configuration.", + "ListConfigurationRevisionsOutput$MaxResults" : "The maximum number of configuration revisions that can be returned per page (20 by default). This value must be an integer from 5 to 100.", + "ListConfigurationsOutput$MaxResults" : "The maximum number of configurations that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.", + "ListUsersOutput$MaxResults" : "Required. The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100." + } + }, + "__string" : { + "base" : null, + "refs" : { + "BrokerInstance$ConsoleURL" : "The URL of the broker's ActiveMQ Web Console.", + "BrokerSummary$BrokerArn" : "The Amazon Resource Name (ARN) of the broker.", + "BrokerSummary$BrokerId" : "The unique ID that Amazon MQ generates for the broker.", + "BrokerSummary$BrokerName" : "The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.", + "BrokerSummary$HostInstanceType" : "The broker's instance type. Possible values: mq.t2.micro, mq.m4.large", + "Configuration$Arn" : "Required. The ARN of the configuration.", + "Configuration$Description" : "Required. The description of the configuration.", + "Configuration$EngineVersion" : "Required. The version of the broker engine.", + "Configuration$Id" : "Required. The unique ID that Amazon MQ generates for the configuration.", + "Configuration$Name" : "Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.", + "ConfigurationId$Id" : "Required. The unique ID that Amazon MQ generates for the configuration.", + "ConfigurationRevision$Description" : "The description of the configuration revision.", + "CreateBrokerInput$BrokerName" : "Required. The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.", + "CreateBrokerInput$CreatorRequestId" : "The unique ID that the requester receives for the created broker. Amazon MQ passes your ID with the API action. Note: We recommend using a Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the creatorRequestId if your application doesn't require idempotency.", + "CreateBrokerInput$EngineVersion" : "Required. The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0.", + "CreateBrokerInput$HostInstanceType" : "Required. The broker's instance type. Possible values: mq.t2.micro, mq.m4.large", + "CreateBrokerOutput$BrokerArn" : "The Amazon Resource Name (ARN) of the broker.", + "CreateBrokerOutput$BrokerId" : "The unique ID that Amazon MQ generates for the broker.", + "CreateConfigurationInput$EngineVersion" : "Required. The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0.", + "CreateConfigurationInput$Name" : "Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.", + "CreateConfigurationOutput$Arn" : "Required. The Amazon Resource Name (ARN) of the configuration.", + "CreateConfigurationOutput$Id" : "Required. The unique ID that Amazon MQ generates for the configuration.", + "CreateConfigurationOutput$Name" : "Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.", + "CreateUserInput$Password" : "Required. The password of the user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas.", + "DeleteBrokerOutput$BrokerId" : "The unique ID that Amazon MQ generates for the broker.", + "DescribeBrokerOutput$BrokerArn" : "The Amazon Resource Name (ARN) of the broker.", + "DescribeBrokerOutput$BrokerId" : "The unique ID that Amazon MQ generates for the broker.", + "DescribeBrokerOutput$BrokerName" : "The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.", + "DescribeBrokerOutput$EngineVersion" : "The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0.", + "DescribeBrokerOutput$HostInstanceType" : "The broker's instance type. Possible values: mq.t2.micro, mq.m4.large", + "DescribeConfigurationRevisionOutput$ConfigurationId" : "Required. The unique ID that Amazon MQ generates for the configuration.", + "DescribeConfigurationRevisionOutput$Data" : "Required. The base64-encoded XML configuration.", + "DescribeConfigurationRevisionOutput$Description" : "The description of the configuration.", + "DescribeUserOutput$BrokerId" : "Required. The unique ID that Amazon MQ generates for the broker.", + "DescribeUserOutput$Username" : "Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.", + "Error$ErrorAttribute" : "The error attribute.", + "Error$Message" : "The error message.", + "ListBrokersOutput$NextToken" : "The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.", + "ListConfigurationRevisionsOutput$ConfigurationId" : "The unique ID that Amazon MQ generates for the configuration.", + "ListConfigurationRevisionsOutput$NextToken" : "The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.", + "ListConfigurationsOutput$NextToken" : "The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.", + "ListOf__string$member" : null, + "ListUsersOutput$BrokerId" : "Required. The unique ID that Amazon MQ generates for the broker.", + "ListUsersOutput$NextToken" : "The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.", + "SanitizationWarning$AttributeName" : "The name of the XML attribute that has been sanitized.", + "SanitizationWarning$ElementName" : "The name of the XML element that has been sanitized.", + "UpdateBrokerOutput$BrokerId" : "Required. The unique ID that Amazon MQ generates for the broker.", + "UpdateConfigurationInput$Data" : "Required. The base64-encoded XML configuration.", + "UpdateConfigurationInput$Description" : "The description of the configuration.", + "UpdateConfigurationOutput$Arn" : "Required. The Amazon Resource Name (ARN) of the configuration.", + "UpdateConfigurationOutput$Id" : "Required. The unique ID that Amazon MQ generates for the configuration.", + "UpdateConfigurationOutput$Name" : "Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.", + "UpdateUserInput$Password" : "The password of the user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas.", + "User$Password" : "Required. The password of the ActiveMQ user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas.", + "User$Username" : "Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.", + "UserSummary$Username" : "Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.", + "WeeklyStartTime$TimeOfDay" : "Required. The time, in 24-hour format.", + "WeeklyStartTime$TimeZone" : "The time zone, UTC by default, in either the Country/City format, or the UTC offset format." + } + } + } +} \ No newline at end of file diff --git a/models/apis/mturk-requester/2017-01-17/api-2.json b/models/apis/mturk-requester/2017-01-17/api-2.json index 2751c756f87..3d8c2155ca4 100644 --- a/models/apis/mturk-requester/2017-01-17/api-2.json +++ b/models/apis/mturk-requester/2017-01-17/api-2.json @@ -629,7 +629,7 @@ "type":"structure", "members":{ "WorkerId":{"shape":"CustomerId"}, - "BonusAmount":{"shape":"NumericValue"}, + "BonusAmount":{"shape":"CurrencyAmount"}, "AssignmentId":{"shape":"EntityId"}, "Reason":{"shape":"String"}, "GrantTime":{"shape":"Timestamp"} @@ -662,7 +662,10 @@ }, "CreateAdditionalAssignmentsForHITRequest":{ "type":"structure", - "required":["HITId"], + "required":[ + "HITId", + "NumberOfAdditionalAssignments" + ], "members":{ "HITId":{"shape":"EntityId"}, "NumberOfAdditionalAssignments":{"shape":"Integer"}, @@ -688,7 +691,7 @@ "AutoApprovalDelayInSeconds":{"shape":"Long"}, "LifetimeInSeconds":{"shape":"Long"}, "AssignmentDurationInSeconds":{"shape":"Long"}, - "Reward":{"shape":"NumericValue"}, + "Reward":{"shape":"CurrencyAmount"}, "Title":{"shape":"String"}, "Keywords":{"shape":"String"}, "Description":{"shape":"String"}, @@ -719,7 +722,7 @@ "members":{ "AutoApprovalDelayInSeconds":{"shape":"Long"}, "AssignmentDurationInSeconds":{"shape":"Long"}, - "Reward":{"shape":"NumericValue"}, + "Reward":{"shape":"CurrencyAmount"}, "Title":{"shape":"String"}, "Keywords":{"shape":"String"}, "Description":{"shape":"String"}, @@ -799,6 +802,10 @@ "members":{ } }, + "CurrencyAmount":{ + "type":"string", + "pattern":"^[0-9]+(\\.)?[0-9]{0,2}$" + }, "CustomerId":{ "type":"string", "max":64, @@ -899,8 +906,8 @@ "GetAccountBalanceResponse":{ "type":"structure", "members":{ - "AvailableBalance":{"shape":"NumericValue"}, - "OnHoldBalance":{"shape":"NumericValue"} + "AvailableBalance":{"shape":"CurrencyAmount"}, + "OnHoldBalance":{"shape":"CurrencyAmount"} } }, "GetAssignmentRequest":{ @@ -991,7 +998,7 @@ "Keywords":{"shape":"String"}, "HITStatus":{"shape":"HITStatus"}, "MaxAssignments":{"shape":"Integer"}, - "Reward":{"shape":"NumericValue"}, + "Reward":{"shape":"CurrencyAmount"}, "AutoApprovalDelayInSeconds":{"shape":"Long"}, "Expiration":{"shape":"Timestamp"}, "AssignmentDurationInSeconds":{"shape":"Long"}, @@ -1005,6 +1012,10 @@ }, "HITLayoutParameter":{ "type":"structure", + "required":[ + "Name", + "Value" + ], "members":{ "Name":{"shape":"String"}, "Value":{"shape":"String"} @@ -1239,7 +1250,9 @@ "type":"structure", "required":[ "Destination", - "Transport" + "Transport", + "Version", + "EventTypes" ], "members":{ "Destination":{"shape":"String"}, @@ -1252,7 +1265,8 @@ "type":"string", "enum":[ "Email", - "SQS" + "SQS", + "SNS" ] }, "NotifyWorkersFailureCode":{ @@ -1293,10 +1307,6 @@ "NotifyWorkersFailureStatuses":{"shape":"NotifyWorkersFailureStatusList"} } }, - "NumericValue":{ - "type":"string", - "pattern":"^[0-9]+(\\.)?[0-9]*$" - }, "PaginationToken":{ "type":"string", "max":255, @@ -1411,7 +1421,10 @@ }, "RejectAssignmentRequest":{ "type":"structure", - "required":["AssignmentId"], + "required":[ + "AssignmentId", + "RequesterFeedback" + ], "members":{ "AssignmentId":{"shape":"EntityId"}, "RequesterFeedback":{"shape":"String"} @@ -1476,6 +1489,7 @@ }, "ReviewPolicy":{ "type":"structure", + "required":["PolicyName"], "members":{ "PolicyName":{"shape":"String"}, "Parameters":{"shape":"PolicyParameterList"} @@ -1526,11 +1540,12 @@ "required":[ "WorkerId", "BonusAmount", - "AssignmentId" + "AssignmentId", + "Reason" ], "members":{ "WorkerId":{"shape":"CustomerId"}, - "BonusAmount":{"shape":"NumericValue"}, + "BonusAmount":{"shape":"CurrencyAmount"}, "AssignmentId":{"shape":"EntityId"}, "Reason":{"shape":"String"}, "UniqueRequestToken":{"shape":"IdempotencyToken"} @@ -1575,7 +1590,10 @@ "TurkErrorCode":{"type":"string"}, "UpdateExpirationForHITRequest":{ "type":"structure", - "required":["HITId"], + "required":[ + "HITId", + "ExpireAt" + ], "members":{ "HITId":{"shape":"EntityId"}, "ExpireAt":{"shape":"Timestamp"} diff --git a/models/apis/mturk-requester/2017-01-17/docs-2.json b/models/apis/mturk-requester/2017-01-17/docs-2.json index 5d0b9a55115..9f98ce07570 100644 --- a/models/apis/mturk-requester/2017-01-17/docs-2.json +++ b/models/apis/mturk-requester/2017-01-17/docs-2.json @@ -202,6 +202,18 @@ "refs": { } }, + "CurrencyAmount": { + "base": "

A string representing a currency amount.

", + "refs": { + "BonusPayment$BonusAmount": null, + "CreateHITRequest$Reward": "

The amount of money the Requester will pay a Worker for successfully completing the HIT.

", + "CreateHITTypeRequest$Reward": "

The amount of money the Requester will pay a Worker for successfully completing the HIT.

", + "GetAccountBalanceResponse$AvailableBalance": null, + "GetAccountBalanceResponse$OnHoldBalance": null, + "HIT$Reward": null, + "SendBonusRequest$BonusAmount": "

The Bonus amount is a US Dollar amount specified using a string (for example, \"5\" represents $5.00 USD and \"101.42\" represents $101.42 USD). Do not include currency symbols or currency codes.

" + } + }, "CustomerId": { "base": null, "refs": { @@ -626,7 +638,7 @@ "NotificationTransport": { "base": null, "refs": { - "NotificationSpecification$Transport": "

The method Amazon Mechanical Turk uses to send the notification. Valid Values: Email | SQS.

" + "NotificationSpecification$Transport": "

The method Amazon Mechanical Turk uses to send the notification. Valid Values: Email | SQS | SNS.

" } }, "NotifyWorkersFailureCode": { @@ -657,18 +669,6 @@ "refs": { } }, - "NumericValue": { - "base": "

A string representing a numeric value.

", - "refs": { - "BonusPayment$BonusAmount": null, - "CreateHITRequest$Reward": "

The amount of money the Requester will pay a Worker for successfully completing the HIT.

", - "CreateHITTypeRequest$Reward": "

The amount of money the Requester will pay a Worker for successfully completing the HIT.

", - "GetAccountBalanceResponse$AvailableBalance": null, - "GetAccountBalanceResponse$OnHoldBalance": null, - "HIT$Reward": null, - "SendBonusRequest$BonusAmount": "

The Bonus amount is a US Dollar amount specified using a string (for example, \"5\" represents $5.00 USD and \"101.42\" represents $101.42 USD). Do not include currency symbols or currency codes.

" - } - }, "PaginationToken": { "base": "

If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results.

", "refs": { @@ -954,7 +954,7 @@ "HITLayoutParameter$Name": "

The name of the parameter in the HITLayout.

", "HITLayoutParameter$Value": "

The value substituted for the parameter referenced in the HITLayout.

", "ListQualificationTypesRequest$Query": "

A text query against all of the searchable attributes of Qualification types.

", - "NotificationSpecification$Destination": "

The destination for notification messages. or email notifications (if Transport is Email), this is an email address. For Amazon Simple Queue Service (Amazon SQS) notifications (if Transport is SQS), this is the URL for your Amazon SQS queue.

", + "NotificationSpecification$Destination": "

The target for notification messages. The Destination’s format is determined by the specified Transport:

  • When Transport is Email, the Destination is your email address.

  • When Transport is SQS, the Destination is your queue URL.

  • When Transport is SNS, the Destination is the ARN of your topic.

", "NotificationSpecification$Version": "

The version of the Notification API to use. Valid value is 2006-05-05.

", "NotifyWorkersFailureStatus$NotifyWorkersFailureMessage": "

A message detailing the reason the Worker could not be notified.

", "NotifyWorkersRequest$Subject": "

The subject line of the email message to send. Can include up to 200 characters.

", diff --git a/models/apis/opsworkscm/2016-11-01/api-2.json b/models/apis/opsworkscm/2016-11-01/api-2.json index 469fb481edd..32b5a724e50 100644 --- a/models/apis/opsworkscm/2016-11-01/api-2.json +++ b/models/apis/opsworkscm/2016-11-01/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"OpsWorksCM", "serviceFullName":"AWS OpsWorks for Chef Automate", + "serviceId":"OpsWorksCM", "signatureVersion":"v4", "signingName":"opsworks-cm", "targetPrefix":"OpsWorksCM_V2016_11_01", @@ -452,7 +453,8 @@ "DescribeNodeAssociationStatusResponse":{ "type":"structure", "members":{ - "NodeAssociationStatus":{"shape":"NodeAssociationStatus"} + "NodeAssociationStatus":{"shape":"NodeAssociationStatus"}, + "EngineAttributes":{"shape":"EngineAttributes"} } }, "DescribeServersRequest":{ @@ -665,7 +667,8 @@ "type":"structure", "required":["ServerName"], "members":{ - "ServerName":{"shape":"ServerName"} + "ServerName":{"shape":"ServerName"}, + "EngineAttributes":{"shape":"EngineAttributes"} } }, "StartMaintenanceResponse":{ diff --git a/models/apis/opsworkscm/2016-11-01/docs-2.json b/models/apis/opsworkscm/2016-11-01/docs-2.json index 87c5ff921eb..d8d2a9279e3 100644 --- a/models/apis/opsworkscm/2016-11-01/docs-2.json +++ b/models/apis/opsworkscm/2016-11-01/docs-2.json @@ -1,22 +1,22 @@ { "version": "2.0", - "service": "AWS OpsWorks for Chef Automate

AWS OpsWorks for Chef Automate is a service that runs and manages configuration management servers.

Glossary of terms

  • Server: A configuration management server that can be highly-available. The configuration manager runs on your instances by using various AWS services, such as Amazon Elastic Compute Cloud (EC2), and potentially Amazon Relational Database Service (RDS). A server is a generic abstraction over the configuration manager that you want to use, much like Amazon RDS. In AWS OpsWorks for Chef Automate, you do not start or stop servers. After you create servers, they continue to run until they are deleted.

  • Engine: The specific configuration manager that you want to use (such as Chef) is the engine.

  • Backup: This is an application-level backup of the data that the configuration manager stores. A backup creates a .tar.gz file that is stored in an Amazon Simple Storage Service (S3) bucket in your account. AWS OpsWorks for Chef Automate creates the S3 bucket when you launch the first instance. A backup maintains a snapshot of all of a server's important attributes at the time of the backup.

  • Events: Events are always related to a server. Events are written during server creation, when health checks run, when backups are created, etc. When you delete a server, the server's events are also deleted.

  • AccountAttributes: Every account has attributes that are assigned in the AWS OpsWorks for Chef Automate database. These attributes store information about configuration limits (servers, backups, etc.) and your customer account.

Endpoints

AWS OpsWorks for Chef Automate supports the following endpoints, all HTTPS. You must connect to one of the following endpoints. Chef servers can only be accessed or managed within the endpoint in which they are created.

  • opsworks-cm.us-east-1.amazonaws.com

  • opsworks-cm.us-west-2.amazonaws.com

  • opsworks-cm.eu-west-1.amazonaws.com

Throttling limits

All API operations allow for five requests per second with a burst of 10 requests per second.

", + "service": "AWS OpsWorks CM

AWS OpsWorks for configuration management (CM) is a service that runs and manages configuration management servers.

Glossary of terms

  • Server: A configuration management server that can be highly-available. The configuration management server runs on an Amazon Elastic Compute Cloud (EC2) instance, and may use various other AWS services, such as Amazon Relational Database Service (RDS) and Elastic Load Balancing. A server is a generic abstraction over the configuration manager that you want to use, much like Amazon RDS. In AWS OpsWorks CM, you do not start or stop servers. After you create servers, they continue to run until they are deleted.

  • Engine: The engine is the specific configuration manager that you want to use. Valid values in this release include Chef and Puppet.

  • Backup: This is an application-level backup of the data that the configuration manager stores. AWS OpsWorks CM creates an S3 bucket for backups when you launch the first server. A backup maintains a snapshot of a server's configuration-related attributes at the time the backup starts.

  • Events: Events are always related to a server. Events are written during server creation, when health checks run, when backups are created, when system maintenance is performed, etc. When you delete a server, the server's events are also deleted.

  • Account attributes: Every account has attributes that are assigned in the AWS OpsWorks CM database. These attributes store information about configuration limits (servers, backups, etc.) and your customer account.

Endpoints

AWS OpsWorks CM supports the following endpoints, all HTTPS. You must connect to one of the following endpoints. Your servers can only be accessed or managed within the endpoint in which they are created.

  • opsworks-cm.us-east-1.amazonaws.com

  • opsworks-cm.us-west-2.amazonaws.com

  • opsworks-cm.eu-west-1.amazonaws.com

Throttling limits

All API operations allow for five requests per second with a burst of 10 requests per second.

", "operations": { - "AssociateNode": "

Associates a new node with the Chef server. This command is an alternative to knife bootstrap. For more information about how to disassociate a node, see DisassociateNode.

A node can can only be associated with servers that are in a HEALTHY state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. The AssociateNode API call can be integrated into Auto Scaling configurations, AWS Cloudformation templates, or the user data of a server's instance.

Example: aws opsworks-cm associate-node --server-name MyServer --node-name MyManagedNode --engine-attributes \"Name=MyOrganization,Value=default\" \"Name=Chef_node_public_key,Value=Public_key_contents\"

", + "AssociateNode": "

Associates a new node with the server. For more information about how to disassociate a node, see DisassociateNode.

On a Chef server: This command is an alternative to knife bootstrap.

Example (Chef): aws opsworks-cm associate-node --server-name MyServer --node-name MyManagedNode --engine-attributes \"Name=CHEF_ORGANIZATION,Value=default\" \"Name=CHEF_NODE_PUBLIC_KEY,Value=public-key-pem\"

On a Puppet server, this command is an alternative to the puppet cert sign command that signs a Puppet node CSR.

Example (Chef): aws opsworks-cm associate-node --server-name MyServer --node-name MyManagedNode --engine-attributes \"Name=PUPPET_NODE_CSR,Value=csr-pem\"

A node can can only be associated with servers that are in a HEALTHY state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid. The AssociateNode API call can be integrated into Auto Scaling configurations, AWS Cloudformation templates, or the user data of a server's instance.

", "CreateBackup": "

Creates an application-level backup of a server. While the server is in the BACKING_UP state, the server cannot be changed, and no additional backup can be created.

Backups can be created for servers in RUNNING, HEALTHY, and UNHEALTHY states. By default, you can create a maximum of 50 manual backups.

This operation is asynchronous.

A LimitExceededException is thrown when the maximum number of manual backups is reached. An InvalidStateException is thrown when the server is not in any of the following states: RUNNING, HEALTHY, or UNHEALTHY. A ResourceNotFoundException is thrown when the server is not found. A ValidationException is thrown when parameters of the request are not valid.

", - "CreateServer": "

Creates and immedately starts a new server. The server is ready to use when it is in the HEALTHY state. By default, you can create a maximum of 10 servers.

This operation is asynchronous.

A LimitExceededException is thrown when you have created the maximum number of servers (10). A ResourceAlreadyExistsException is thrown when a server with the same name already exists in the account. A ResourceNotFoundException is thrown when you specify a backup ID that is not valid or is for a backup that does not exist. A ValidationException is thrown when parameters of the request are not valid.

If you do not specify a security group by adding the SecurityGroupIds parameter, AWS OpsWorks creates a new security group. The default security group opens the Chef server to the world on TCP port 443. If a KeyName is present, AWS OpsWorks enables SSH access. SSH is also open to the world on TCP port 22.

By default, the Chef Server is accessible from any IP address. We recommend that you update your security group rules to allow access from known IP addresses and address ranges only. To edit security group rules, open Security Groups in the navigation pane of the EC2 management console.

", + "CreateServer": "

Creates and immedately starts a new server. The server is ready to use when it is in the HEALTHY state. By default, you can create a maximum of 10 servers.

This operation is asynchronous.

A LimitExceededException is thrown when you have created the maximum number of servers (10). A ResourceAlreadyExistsException is thrown when a server with the same name already exists in the account. A ResourceNotFoundException is thrown when you specify a backup ID that is not valid or is for a backup that does not exist. A ValidationException is thrown when parameters of the request are not valid.

If you do not specify a security group by adding the SecurityGroupIds parameter, AWS OpsWorks creates a new security group.

Chef Automate: The default security group opens the Chef server to the world on TCP port 443. If a KeyName is present, AWS OpsWorks enables SSH access. SSH is also open to the world on TCP port 22.

Puppet Enterprise: The default security group opens TCP ports 22, 443, 4433, 8140, 8142, 8143, and 8170. If a KeyName is present, AWS OpsWorks enables SSH access. SSH is also open to the world on TCP port 22.

By default, your server is accessible from any IP address. We recommend that you update your security group rules to allow access from known IP addresses and address ranges only. To edit security group rules, open Security Groups in the navigation pane of the EC2 management console.

", "DeleteBackup": "

Deletes a backup. You can delete both manual and automated backups. This operation is asynchronous.

An InvalidStateException is thrown when a backup deletion is already in progress. A ResourceNotFoundException is thrown when the backup does not exist. A ValidationException is thrown when parameters of the request are not valid.

", - "DeleteServer": "

Deletes the server and the underlying AWS CloudFormation stack (including the server's EC2 instance). When you run this command, the server state is updated to DELETING. After the server is deleted, it is no longer returned by DescribeServer requests. If the AWS CloudFormation stack cannot be deleted, the server cannot be deleted.

This operation is asynchronous.

An InvalidStateException is thrown when a server deletion is already in progress. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

", + "DeleteServer": "

Deletes the server and the underlying AWS CloudFormation stacks (including the server's EC2 instance). When you run this command, the server state is updated to DELETING. After the server is deleted, it is no longer returned by DescribeServer requests. If the AWS CloudFormation stack cannot be deleted, the server cannot be deleted.

This operation is asynchronous.

An InvalidStateException is thrown when a server deletion is already in progress. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

", "DescribeAccountAttributes": "

Describes your account attributes, and creates requests to increase limits before they are reached or exceeded.

This operation is synchronous.

", "DescribeBackups": "

Describes backups. The results are ordered by time, with newest backups first. If you do not specify a BackupId or ServerName, the command returns all backups.

This operation is synchronous.

A ResourceNotFoundException is thrown when the backup does not exist. A ValidationException is raised when parameters of the request are not valid.

", "DescribeEvents": "

Describes events for a specified server. Results are ordered by time, with newest events first.

This operation is synchronous.

A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

", "DescribeNodeAssociationStatus": "

Returns the current status of an existing association or disassociation request.

A ResourceNotFoundException is thrown when no recent association or disassociation request with the specified token is found, or when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

", - "DescribeServers": "

Lists all configuration management servers that are identified with your account. Only the stored results from Amazon DynamoDB are returned. AWS OpsWorks for Chef Automate does not query other services.

This operation is synchronous.

A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

", - "DisassociateNode": "

Disassociates a node from a Chef server, and removes the node from the Chef server's managed nodes. After a node is disassociated, the node key pair is no longer valid for accessing the Chef API. For more information about how to associate a node, see AssociateNode.

A node can can only be disassociated from a server that is in a HEALTHY state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

", + "DescribeServers": "

Lists all configuration management servers that are identified with your account. Only the stored results from Amazon DynamoDB are returned. AWS OpsWorks CM does not query other services.

This operation is synchronous.

A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

", + "DisassociateNode": "

Disassociates a node from an AWS OpsWorks CM server, and removes the node from the server's managed nodes. After a node is disassociated, the node key pair is no longer valid for accessing the configuration manager's API. For more information about how to associate a node, see AssociateNode.

A node can can only be disassociated from a server that is in a HEALTHY state. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

", "RestoreServer": "

Restores a backup to a server that is in a CONNECTION_LOST, HEALTHY, RUNNING, UNHEALTHY, or TERMINATED state. When you run RestoreServer, the server's EC2 instance is deleted, and a new EC2 instance is configured. RestoreServer maintains the existing server endpoint, so configuration management of the server's client devices (nodes) should continue to work.

This operation is asynchronous.

An InvalidStateException is thrown when the server is not in a valid state. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

", "StartMaintenance": "

Manually starts server maintenance. This command can be useful if an earlier maintenance attempt failed, and the underlying cause of maintenance failure has been resolved. The server is in an UNDER_MAINTENANCE state while maintenance is in progress.

Maintenance can only be started on servers in HEALTHY and UNHEALTHY states. Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

", "UpdateServer": "

Updates settings for a server.

This operation is synchronous.

", - "UpdateServerEngineAttributes": "

Updates engine-specific attributes on a specified server. The server enters the MODIFYING state when this operation is in progress. Only one update can occur at a time. You can use this command to reset the Chef server's private key (CHEF_PIVOTAL_KEY).

This operation is asynchronous.

This operation can only be called for servers in HEALTHY or UNHEALTHY states. Otherwise, an InvalidStateException is raised. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

" + "UpdateServerEngineAttributes": "

Updates engine-specific attributes on a specified server. The server enters the MODIFYING state when this operation is in progress. Only one update can occur at a time. You can use this command to reset a Chef server's private key (CHEF_PIVOTAL_KEY), a Chef server's admin password (CHEF_DELIVERY_ADMIN_PASSWORD), or a Puppet server's admin password (PUPPET_ADMIN_PASSWORD).

This operation is asynchronous.

This operation can only be called for servers in HEALTHY or UNHEALTHY states. Otherwise, an InvalidStateException is raised. A ResourceNotFoundException is thrown when the server does not exist. A ValidationException is raised when parameters of the request are not valid.

" }, "shapes": { "AccountAttribute": { @@ -64,7 +64,7 @@ "base": null, "refs": { "Backup$BackupId": "

The generated ID of the backup. Example: myServerName-yyyyMMddHHmmssSSS

", - "CreateServerRequest$BackupId": "

If you specify this field, AWS OpsWorks for Chef Automate creates the server by using the backup represented by BackupId.

", + "CreateServerRequest$BackupId": "

If you specify this field, AWS OpsWorks CM creates the server by using the backup represented by BackupId.

", "DeleteBackupRequest$BackupId": "

The ID of the backup to delete. Run the DescribeBackups command to get a list of backup IDs. Backup IDs are in the format ServerName-yyyyMMddHHmmssSSS.

", "DescribeBackupsRequest$BackupId": "

Describes a single backup.

", "RestoreServerRequest$BackupId": "

The ID of the backup that you want to use to restore a server.

" @@ -73,7 +73,7 @@ "BackupRetentionCountDefinition": { "base": null, "refs": { - "CreateServerRequest$BackupRetentionCount": "

The number of automated backups that you want to keep. Whenever a new backup is created, AWS OpsWorks for Chef Automate deletes the oldest backups if this number is exceeded. The default value is 1.

" + "CreateServerRequest$BackupRetentionCount": "

The number of automated backups that you want to keep. Whenever a new backup is created, AWS OpsWorks CM deletes the oldest backups if this number is exceeded. The default value is 1.

" } }, "BackupStatus": { @@ -225,10 +225,12 @@ "EngineAttributes": { "base": null, "refs": { - "AssociateNodeRequest$EngineAttributes": "

Engine attributes used for associating the node.

Attributes accepted in a AssociateNode request:

  • CHEF_ORGANIZATION: The Chef organization with which the node is associated. By default only one organization named default can exist.

  • CHEF_NODE_PUBLIC_KEY: A PEM-formatted public key. This key is required for the chef-client agent to access the Chef API.

", - "CreateServerRequest$EngineAttributes": "

Optional engine attributes on a specified server.

Attributes accepted in a createServer request:

  • CHEF_PIVOTAL_KEY: A base64-encoded RSA private key that is not stored by AWS OpsWorks for Chef. This private key is required to access the Chef API. When no CHEF_PIVOTAL_KEY is set, one is generated and returned in the response.

  • CHEF_DELIVERY_ADMIN_PASSWORD: The password for the administrative user in the Chef Automate GUI. The password length is a minimum of eight characters, and a maximum of 32. The password can contain letters, numbers, and special characters (!/@#$%^&+=_). The password must contain at least one lower case letter, one upper case letter, one number, and one special character. When no CHEF_DELIVERY_ADMIN_PASSWORD is set, one is generated and returned in the response.

", - "DisassociateNodeRequest$EngineAttributes": "

Engine attributes used for disassociating the node.

Attributes accepted in a DisassociateNode request:

  • CHEF_ORGANIZATION: The Chef organization with which the node was associated. By default only one organization named default can exist.

", - "Server$EngineAttributes": "

The response of a createServer() request returns the master credential to access the server in EngineAttributes. These credentials are not stored by AWS OpsWorks for Chef Automate; they are returned only as part of the result of createServer().

Attributes returned in a createServer response:

  • CHEF_PIVOTAL_KEY: A base64-encoded RSA private key that is generated by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API.

  • CHEF_STARTER_KIT: A base64-encoded ZIP file. The ZIP file contains a Chef starter kit, which includes a README, a configuration file, and the required RSA private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. From this directory, you can run Knife commands.

" + "AssociateNodeRequest$EngineAttributes": "

Engine attributes used for associating the node.

Attributes accepted in a AssociateNode request for Chef

  • CHEF_ORGANIZATION: The Chef organization with which the node is associated. By default only one organization named default can exist.

  • CHEF_NODE_PUBLIC_KEY: A PEM-formatted public key. This key is required for the chef-client agent to access the Chef API.

Attributes accepted in a AssociateNode request for Puppet

  • PUPPET_NODE_CSR: A PEM-formatted certificate-signing request (CSR) that is created by the node.

", + "CreateServerRequest$EngineAttributes": "

Optional engine attributes on a specified server.

Attributes accepted in a Chef createServer request:

  • CHEF_PIVOTAL_KEY: A base64-encoded RSA private key that is not stored by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API. When no CHEF_PIVOTAL_KEY is set, one is generated and returned in the response.

  • CHEF_DELIVERY_ADMIN_PASSWORD: The password for the administrative user in the Chef Automate GUI. The password length is a minimum of eight characters, and a maximum of 32. The password can contain letters, numbers, and special characters (!/@#$%^&+=_). The password must contain at least one lower case letter, one upper case letter, one number, and one special character. When no CHEF_DELIVERY_ADMIN_PASSWORD is set, one is generated and returned in the response.

Attributes accepted in a Puppet createServer request:

  • PUPPET_ADMIN_PASSWORD: To work with the Puppet Enterprise console, a password must use ASCII characters.

", + "DescribeNodeAssociationStatusResponse$EngineAttributes": "

Attributes specific to the node association. In Puppet, the attibute PUPPET_NODE_CERT contains the signed certificate (the result of the CSR).

", + "DisassociateNodeRequest$EngineAttributes": "

Engine attributes that are used for disassociating the node. No attributes are required for Puppet.

Attributes required in a DisassociateNode request for Chef

  • CHEF_ORGANIZATION: The Chef organization with which the node was associated. By default only one organization named default can exist.

", + "Server$EngineAttributes": "

The response of a createServer() request returns the master credential to access the server in EngineAttributes. These credentials are not stored by AWS OpsWorks CM; they are returned only as part of the result of createServer().

Attributes returned in a createServer response for Chef

  • CHEF_PIVOTAL_KEY: A base64-encoded RSA private key that is generated by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API.

  • CHEF_STARTER_KIT: A base64-encoded ZIP file. The ZIP file contains a Chef starter kit, which includes a README, a configuration file, and the required RSA private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. From this directory, you can run Knife commands.

Attributes returned in a createServer response for Puppet

  • PUPPET_STARTER_KIT: A base64-encoded ZIP file. The ZIP file contains a Puppet starter kit, including a README and a required private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents.

  • PUPPET_ADMIN_PASSWORD: An administrator password that you can use to sign in to the Puppet Enterprise console after the server is online.

", + "StartMaintenanceRequest$EngineAttributes": "

Engine attributes that are specific to the server on which you want to run maintenance.

" } }, "InstanceProfileArn": { @@ -301,15 +303,15 @@ "base": null, "refs": { "AssociateNodeResponse$NodeAssociationStatusToken": "

Contains a token which can be passed to the DescribeNodeAssociationStatus API call to get the status of the association request.

", - "DescribeNodeAssociationStatusRequest$NodeAssociationStatusToken": null, + "DescribeNodeAssociationStatusRequest$NodeAssociationStatusToken": "

The token returned in either the AssociateNodeResponse or the DisassociateNodeResponse.

", "DisassociateNodeResponse$NodeAssociationStatusToken": "

Contains a token which can be passed to the DescribeNodeAssociationStatus API call to get the status of the disassociation request.

" } }, "NodeName": { - "base": "

The node name that is used by chef-client for a new node. For more information, see the Chef Documentation.

", + "base": "

The node name that is used by chef-client or puppet-agentfor a new node. We recommend to use a unique FQDN as hostname. For more information, see the Chef or Puppet documentation.

", "refs": { - "AssociateNodeRequest$NodeName": "

The name of the Chef client node.

", - "DisassociateNodeRequest$NodeName": "

The name of the Chef client node.

" + "AssociateNodeRequest$NodeName": "

The name of the node.

", + "DisassociateNodeRequest$NodeName": "

The name of the client node.

" } }, "ResourceAlreadyExistsException": { @@ -382,13 +384,13 @@ "Servers": { "base": null, "refs": { - "DescribeServersResponse$Servers": "

Contains the response to a DescribeServers request.

" + "DescribeServersResponse$Servers": "

Contains the response to a DescribeServers request.

For Puppet Server: DescribeServersResponse$Servers$EngineAttributes contains PUPPET_API_CA_CERT. This is the PEM-encoded CA certificate that is used by the Puppet API over TCP port number 8140. The CA certificate is also used to sign node certificates.

" } }, "ServiceRoleArn": { "base": null, "refs": { - "CreateServerRequest$ServiceRoleArn": "

The service role that the AWS OpsWorks for Chef Automate service backend uses to work with your account. Although the AWS OpsWorks management console typically creates the service role for you, if you are using the AWS CLI or API commands, run the service-role-creation.yaml AWS CloudFormation template, located at https://s3.amazonaws.com/opsworks-stuff/latest/service-role-creation.yaml. This template creates a CloudFormation stack that includes the service role that you need.

" + "CreateServerRequest$ServiceRoleArn": "

The service role that the AWS OpsWorks CM service backend uses to work with your account. Although the AWS OpsWorks management console typically creates the service role for you, if you are using the AWS CLI or API commands, run the service-role-creation.yaml AWS CloudFormation template, located at https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml. This template creates a CloudFormation stack that includes the service role and instance profile that you need.

" } }, "StartMaintenanceRequest": { @@ -417,13 +419,13 @@ "Backup$S3LogUrl": "

The Amazon S3 URL of the backup's log file.

", "Backup$ServiceRoleArn": "

The service role ARN that is obtained from the server when the backup is created.

", "Backup$StatusDescription": "

An informational message about backup status.

", - "Backup$ToolsVersion": "

The version of AWS OpsWorks for Chef Automate-specific tools that is obtained from the server when the backup is created.

", + "Backup$ToolsVersion": "

The version of AWS OpsWorks CM-specific tools that is obtained from the server when the backup is created.

", "Backup$UserArn": "

The IAM user ARN of the requester for manual backups. This field is empty for automated backups.

", "CreateBackupRequest$Description": "

A user-defined description of the backup.

", - "CreateServerRequest$Engine": "

The configuration management engine to use. Valid values include Chef.

", - "CreateServerRequest$EngineModel": "

The engine model, or option. Valid values include Single.

", - "CreateServerRequest$EngineVersion": "

The major release version of the engine that you want to use. Values depend on the engine that you choose.

", - "CreateServerRequest$InstanceType": "

The Amazon EC2 instance type to use. Valid values must be specified in the following format: ^([cm][34]|t2).* For example, m4.large. Valid values are t2.medium, m4.large, or m4.2xlarge.

", + "CreateServerRequest$Engine": "

The configuration management engine to use. Valid values include Chef and Puppet.

", + "CreateServerRequest$EngineModel": "

The engine model of the server. Valid values in this release include Monolithic for Puppet and Single for Chef.

", + "CreateServerRequest$EngineVersion": "

The major release version of the engine that you want to use. For a Chef server, the valid value for EngineVersion is currently 12. For a Puppet server, the valid value is 2017.

", + "CreateServerRequest$InstanceType": "

The Amazon EC2 instance type to use. For example, m4.large. Recommended instance types include t2.medium and greater, m4.*, or c4.xlarge and greater.

", "DescribeBackupsResponse$NextToken": "

NextToken is a string that is returned in some command responses. It indicates that not all entries have been returned, and that you must run at least one more request to get remaining items. To get remaining results, call DescribeBackups again, and assign the token from the previous results as the value of the nextToken parameter. If there are no more results, the response object's nextToken parameter value is null. Setting a nextToken value that was not returned in your previous results causes an InvalidNextTokenException to occur.

", "DescribeEventsResponse$NextToken": "

NextToken is a string that is returned in some command responses. It indicates that not all entries have been returned, and that you must run at least one more request to get remaining items. To get remaining results, call DescribeEvents again, and assign the token from the previous results as the value of the nextToken parameter. If there are no more results, the response object's nextToken parameter value is null. Setting a nextToken value that was not returned in your previous results causes an InvalidNextTokenException to occur.

", "DescribeServersResponse$NextToken": "

NextToken is a string that is returned in some command responses. It indicates that not all entries have been returned, and that you must run at least one more request to get remaining items. To get remaining results, call DescribeServers again, and assign the token from the previous results as the value of the nextToken parameter. If there are no more results, the response object's nextToken parameter value is null. Setting a nextToken value that was not returned in your previous results causes an InvalidNextTokenException to occur.

", @@ -436,9 +438,9 @@ "Server$ServerName": "

The name of the server.

", "Server$CloudFormationStackArn": "

The ARN of the CloudFormation stack that was used to create the server.

", "Server$Endpoint": "

A DNS name that can be used to access the engine. Example: myserver-asdfghjkl.us-east-1.opsworks.io

", - "Server$Engine": "

The engine type of the server. The valid value in this release is Chef.

", - "Server$EngineModel": "

The engine model of the server. The valid value in this release is Single.

", - "Server$EngineVersion": "

The engine version of the server. Because Chef is the engine available in this release, the valid value for EngineVersion is 12.

", + "Server$Engine": "

The engine type of the server. Valid values in this release include Chef and Puppet.

", + "Server$EngineModel": "

The engine model of the server. Valid values in this release include Monolithic for Puppet and Single for Chef.

", + "Server$EngineVersion": "

The engine version of the server. For a Chef server, the valid value for EngineVersion is currently 12. For a Puppet server, the valid value is 2017.

", "Server$InstanceProfileArn": "

The instance profile ARN of the server.

", "Server$InstanceType": "

The instance type for the server, as specified in the CloudFormation stack. This might not be the same instance type that is shown in the EC2 console.

", "Server$KeyPair": "

The key pair associated with the server.

", @@ -457,8 +459,8 @@ "refs": { "Backup$SecurityGroupIds": "

The security group IDs that are obtained from the server when the backup is created.

", "Backup$SubnetIds": "

The subnet IDs that are obtained from the server when the backup is created.

", - "CreateServerRequest$SecurityGroupIds": "

A list of security group IDs to attach to the Amazon EC2 instance. If you add this parameter, the specified security groups must be within the VPC that is specified by SubnetIds.

If you do not specify this parameter, AWS OpsWorks for Chef Automate creates one new security group that uses TCP ports 22 and 443, open to 0.0.0.0/0 (everyone).

", - "CreateServerRequest$SubnetIds": "

The IDs of subnets in which to launch the server EC2 instance.

Amazon EC2-Classic customers: This field is required. All servers must run within a VPC. The VPC must have \"Auto Assign Public IP\" enabled.

EC2-VPC customers: This field is optional. If you do not specify subnet IDs, your EC2 instances are created in a default subnet that is selected by Amazon EC2. If you specify subnet IDs, the VPC must have \"Auto Assign Public IP\" enabled.

For more information about supported Amazon EC2 platforms, see Supported Platforms.

", + "CreateServerRequest$SecurityGroupIds": "

A list of security group IDs to attach to the Amazon EC2 instance. If you add this parameter, the specified security groups must be within the VPC that is specified by SubnetIds.

If you do not specify this parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22 and 443, open to 0.0.0.0/0 (everyone).

", + "CreateServerRequest$SubnetIds": "

The IDs of subnets in which to launch the server EC2 instance.

Amazon EC2-Classic customers: This field is required. All servers must run within a VPC. The VPC must have \"Auto Assign Public IP\" enabled.

EC2-VPC customers: This field is optional. If you do not specify subnet IDs, your EC2 instances are created in a default subnet that is selected by Amazon EC2. If you specify subnet IDs, the VPC must have \"Auto Assign Public IP\" enabled.

For more information about supported Amazon EC2 platforms, see Supported Platforms.

", "Server$SecurityGroupIds": "

The security group IDs for the server, as specified in the CloudFormation stack. These might not be the same security groups that are shown in the EC2 console.

", "Server$SubnetIds": "

The subnet IDs specified in a CreateServer request.

" } @@ -468,8 +470,8 @@ "refs": { "Backup$PreferredBackupWindow": "

The preferred backup period that is obtained from the server when the backup is created.

", "Backup$PreferredMaintenanceWindow": "

The preferred maintenance period that is obtained from the server when the backup is created.

", - "CreateServerRequest$PreferredMaintenanceWindow": "

The start time for a one-hour period each week during which AWS OpsWorks for Chef Automate performs maintenance on the instance. Valid values must be specified in the following format: DDD:HH:MM. The specified time is in coordinated universal time (UTC). The default value is a random one-hour period on Tuesday, Wednesday, or Friday. See TimeWindowDefinition for more information.

Example: Mon:08:00, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.)

", - "CreateServerRequest$PreferredBackupWindow": "

The start time for a one-hour period during which AWS OpsWorks for Chef Automate backs up application-level data on your server if automated backups are enabled. Valid values must be specified in one of the following formats:

  • HH:MM for daily backups

  • DDD:HH:MM for weekly backups

The specified time is in coordinated universal time (UTC). The default value is a random, daily start time.

Example: 08:00, which represents a daily start time of 08:00 UTC.

Example: Mon:08:00, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.)

", + "CreateServerRequest$PreferredMaintenanceWindow": "

The start time for a one-hour period each week during which AWS OpsWorks CM performs maintenance on the instance. Valid values must be specified in the following format: DDD:HH:MM. The specified time is in coordinated universal time (UTC). The default value is a random one-hour period on Tuesday, Wednesday, or Friday. See TimeWindowDefinition for more information.

Example: Mon:08:00, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.)

", + "CreateServerRequest$PreferredBackupWindow": "

The start time for a one-hour period during which AWS OpsWorks CM backs up application-level data on your server if automated backups are enabled. Valid values must be specified in one of the following formats:

  • HH:MM for daily backups

  • DDD:HH:MM for weekly backups

The specified time is in coordinated universal time (UTC). The default value is a random, daily start time.

Example: 08:00, which represents a daily start time of 08:00 UTC.

Example: Mon:08:00, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.)

", "Server$PreferredMaintenanceWindow": "

The preferred maintenance period specified for the server.

", "Server$PreferredBackupWindow": "

The preferred backup period specified for the server.

", "UpdateServerRequest$PreferredMaintenanceWindow": null, diff --git a/models/apis/opsworkscm/2016-11-01/waiters-2.json b/models/apis/opsworkscm/2016-11-01/waiters-2.json new file mode 100644 index 00000000000..f37dd040b81 --- /dev/null +++ b/models/apis/opsworkscm/2016-11-01/waiters-2.json @@ -0,0 +1,25 @@ +{ + "version": 2, + "waiters": { + "NodeAssociated": { + "delay": 15, + "maxAttempts": 15, + "operation": "DescribeNodeAssociationStatus", + "description": "Wait until node is associated or disassociated.", + "acceptors": [ + { + "expected": "SUCCESS", + "state": "success", + "matcher": "path", + "argument": "NodeAssociationStatus" + }, + { + "expected": "FAILED", + "state": "failure", + "matcher": "path", + "argument": "NodeAssociationStatus" + } + ] + } + } +} diff --git a/models/apis/organizations/2016-11-28/api-2.json b/models/apis/organizations/2016-11-28/api-2.json index b1f674e2cf2..255598bd9ba 100644 --- a/models/apis/organizations/2016-11-28/api-2.json +++ b/models/apis/organizations/2016-11-28/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"Organizations", "serviceFullName":"AWS Organizations", + "serviceId":"Organizations", "signatureVersion":"v4", "targetPrefix":"AWSOrganizationsV20161128", "timestampFormat":"unixTimestamp", @@ -31,7 +32,8 @@ {"shape":"InvalidInputException"}, {"shape":"ConcurrentModificationException"}, {"shape":"ServiceException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"AccessDeniedForDependencyException"} ] }, "AttachPolicy":{ @@ -108,7 +110,8 @@ {"shape":"ConstraintViolationException"}, {"shape":"InvalidInputException"}, {"shape":"ServiceException"}, - {"shape":"TooManyRequestsException"} + {"shape":"TooManyRequestsException"}, + {"shape":"AccessDeniedForDependencyException"} ] }, "CreateOrganizationalUnit":{ @@ -343,6 +346,23 @@ {"shape":"TooManyRequestsException"} ] }, + "DisableAWSServiceAccess":{ + "name":"DisableAWSServiceAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableAWSServiceAccessRequest"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"AWSOrganizationsNotInUseException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"ConstraintViolationException"}, + {"shape":"InvalidInputException"}, + {"shape":"ServiceException"}, + {"shape":"TooManyRequestsException"} + ] + }, "DisablePolicyType":{ "name":"DisablePolicyType", "http":{ @@ -363,6 +383,23 @@ {"shape":"TooManyRequestsException"} ] }, + "EnableAWSServiceAccess":{ + "name":"EnableAWSServiceAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableAWSServiceAccessRequest"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"AWSOrganizationsNotInUseException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"ConstraintViolationException"}, + {"shape":"InvalidInputException"}, + {"shape":"ServiceException"}, + {"shape":"TooManyRequestsException"} + ] + }, "EnableAllFeatures":{ "name":"EnableAllFeatures", "http":{ @@ -440,6 +477,23 @@ {"shape":"TooManyRequestsException"} ] }, + "ListAWSServiceAccessForOrganization":{ + "name":"ListAWSServiceAccessForOrganization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAWSServiceAccessForOrganizationRequest"}, + "output":{"shape":"ListAWSServiceAccessForOrganizationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"AWSOrganizationsNotInUseException"}, + {"shape":"ConstraintViolationException"}, + {"shape":"InvalidInputException"}, + {"shape":"ServiceException"}, + {"shape":"TooManyRequestsException"} + ] + }, "ListAccounts":{ "name":"ListAccounts", "http":{ @@ -747,6 +801,18 @@ }, "exception":true }, + "AccessDeniedForDependencyException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "Reason":{"shape":"AccessDeniedForDependencyExceptionReason"} + }, + "exception":true + }, + "AccessDeniedForDependencyExceptionReason":{ + "type":"string", + "enum":["ACCESS_DENIED_DURING_CREATE_SERVICE_LINKED_ROLE"] + }, "Account":{ "type":"structure", "members":{ @@ -803,7 +869,8 @@ "enum":[ "INVITE", "ENABLE_ALL_FEATURES", - "APPROVE_ALL_FEATURES" + "APPROVE_ALL_FEATURES", + "ADD_ORGANIZATIONS_SERVICE_LINKED_ROLE" ] }, "AlreadyInOrganizationException":{ @@ -898,7 +965,9 @@ "MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED", "MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED", "ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED", - "MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE" + "MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE", + "MASTER_ACCOUNT_MISSING_CONTACT_INFO", + "ORGANIZATION_NOT_IN_ALL_FEATURES_MODE" ] }, "CreateAccountFailureReason":{ @@ -908,6 +977,7 @@ "EMAIL_ALREADY_EXISTS", "INVALID_ADDRESS", "INVALID_EMAIL", + "CONCURRENT_ACCOUNT_MODIFICATION", "INTERNAL_FAILURE" ] }, @@ -1135,6 +1205,13 @@ "TargetId":{"shape":"PolicyTargetId"} } }, + "DisableAWSServiceAccessRequest":{ + "type":"structure", + "required":["ServicePrincipal"], + "members":{ + "ServicePrincipal":{"shape":"ServicePrincipal"} + } + }, "DisablePolicyTypeRequest":{ "type":"structure", "required":[ @@ -1194,6 +1271,13 @@ "pattern":"[^\\s@]+@[^\\s@]+\\.[^\\s@]+", "sensitive":true }, + "EnableAWSServiceAccessRequest":{ + "type":"structure", + "required":["ServicePrincipal"], + "members":{ + "ServicePrincipal":{"shape":"ServicePrincipal"} + } + }, "EnableAllFeaturesRequest":{ "type":"structure", "members":{ @@ -1222,6 +1306,17 @@ "Root":{"shape":"Root"} } }, + "EnabledServicePrincipal":{ + "type":"structure", + "members":{ + "ServicePrincipal":{"shape":"ServicePrincipal"}, + "DateEnabled":{"shape":"Timestamp"} + } + }, + "EnabledServicePrincipals":{ + "type":"list", + "member":{"shape":"EnabledServicePrincipal"} + }, "ExceptionMessage":{"type":"string"}, "ExceptionType":{"type":"string"}, "FinalizingOrganizationException":{ @@ -1309,6 +1404,10 @@ }, "HandshakeParty":{ "type":"structure", + "required":[ + "Id", + "Type" + ], "members":{ "Id":{"shape":"HandshakePartyId"}, "Type":{"shape":"HandshakePartyType"} @@ -1413,7 +1512,8 @@ "INVALID_NEXT_TOKEN", "MAX_LIMIT_EXCEEDED_FILTER", "MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS", - "INVALID_FULL_NAME_TARGET" + "INVALID_FULL_NAME_TARGET", + "UNRECOGNIZED_SERVICE_PRINCIPAL" ] }, "InviteAccountToOrganizationRequest":{ @@ -1430,6 +1530,20 @@ "Handshake":{"shape":"Handshake"} } }, + "ListAWSServiceAccessForOrganizationRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListAWSServiceAccessForOrganizationResponse":{ + "type":"structure", + "members":{ + "EnabledServicePrincipals":{"shape":"EnabledServicePrincipals"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListAccountsForParentRequest":{ "type":"structure", "required":["ParentId"], @@ -1936,6 +2050,11 @@ }, "exception":true }, + "ServicePrincipal":{ + "type":"string", + "max":1000, + "min":1 + }, "SourceParentNotFoundException":{ "type":"structure", "members":{ diff --git a/models/apis/organizations/2016-11-28/docs-2.json b/models/apis/organizations/2016-11-28/docs-2.json index ff05ccab6c9..995075a769c 100644 --- a/models/apis/organizations/2016-11-28/docs-2.json +++ b/models/apis/organizations/2016-11-28/docs-2.json @@ -1,16 +1,16 @@ { "version": "2.0", - "service": "AWS Organizations API Reference

AWS Organizations is a web service that enables you to consolidate your multiple AWS accounts into an organization and centrally manage your accounts and their resources.

This guide provides descriptions of the Organizations API. For more information about using this service, see the AWS Organizations User Guide.

API Version

This version of the Organizations API Reference documents the Organizations API version 2016-11-28.

As an alternative to using the API directly, you can use one of the AWS SDKs, which consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .NET, iOS, Android, and more). The SDKs provide a convenient way to create programmatic access to AWS Organizations. For example, the SDKs take care of cryptographically signing requests, managing errors, and retrying requests automatically. For more information about the AWS SDKs, including how to download and install them, see Tools for Amazon Web Services.

We recommend that you use the AWS SDKs to make programmatic API calls to Organizations. However, you also can use the Organizations Query API to make direct calls to the Organizations web service. To learn more about the Organizations Query API, see Making Query Requests in the AWS Organizations User Guide. Organizations supports GET and POST requests for all actions. That is, the API does not require you to use GET for some actions and POST for others. However, GET requests are subject to the limitation size of a URL. Therefore, for operations that require larger sizes, use a POST request.

Signing Requests

When you send HTTP requests to AWS, you must sign the requests so that AWS can identify who sent them. You sign requests with your AWS access key, which consists of an access key ID and a secret access key. We strongly recommend that you do not create an access key for your root account. Anyone who has the access key for your root account has unrestricted access to all the resources in your account. Instead, create an access key for an IAM user account that has administrative privileges. As another option, use AWS Security Token Service to generate temporary security credentials, and use those credentials to sign requests.

To sign requests, we recommend that you use Signature Version 4. If you have an existing application that uses Signature Version 2, you do not have to update it to use Signature Version 4. However, some operations now require Signature Version 4. The documentation for operations that require version 4 indicate this requirement.

When you use the AWS Command Line Interface (AWS CLI) or one of the AWS SDKs to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools.

In this release, each organization can have only one root. In a future release, a single organization will support multiple roots.

Support and Feedback for AWS Organizations

We welcome your feedback. Send your comments to feedback-awsorganizations@amazon.com or post your feedback and questions in our private AWS Organizations support forum. If you don't have access to the forum, send a request for access to the email address, along with your forum user ID. For more information about the AWS support forums, see Forums Help.

Endpoint to Call When Using the CLI or the AWS API

For the current release of Organizations, you must specify the us-east-1 region for all AWS API and CLI calls. You can do this in the CLI by using these parameters and commands:

  • Use the following parameter with each command to specify both the endpoint and its region:

    --endpoint-url https://organizations.us-east-1.amazonaws.com

  • Use the default endpoint, but configure your default region with this command:

    aws configure set default.region us-east-1

  • Use the following parameter with each command to specify the endpoint:

    --region us-east-1

For the various SDKs used to call the APIs, see the documentation for the SDK of interest to learn how to direct the requests to a specific endpoint. For more information, see Regions and Endpoints in the AWS General Reference.

How examples are presented

The JSON returned by the AWS Organizations service as response to your requests is returned as a single long string without line breaks or formatting whitespace. Both line breaks and whitespace are included in the examples in this guide to improve readability. When example input parameters also would result in long strings that would extend beyond the screen, we insert line breaks to enhance readability. You should always submit the input as a single JSON text string.

Recording API Requests

AWS Organizations supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by AWS CloudTrail, you can determine which requests were successfully made to Organizations, who made the request, when it was made, and so on. For more about AWS Organizations and its support for AWS CloudTrail, see Logging AWS Organizations Events with AWS CloudTrail in the AWS Organizations User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

", + "service": "AWS Organizations API Reference

AWS Organizations is a web service that enables you to consolidate your multiple AWS accounts into an organization and centrally manage your accounts and their resources.

This guide provides descriptions of the Organizations API. For more information about using this service, see the AWS Organizations User Guide.

API Version

This version of the Organizations API Reference documents the Organizations API version 2016-11-28.

As an alternative to using the API directly, you can use one of the AWS SDKs, which consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .NET, iOS, Android, and more). The SDKs provide a convenient way to create programmatic access to AWS Organizations. For example, the SDKs take care of cryptographically signing requests, managing errors, and retrying requests automatically. For more information about the AWS SDKs, including how to download and install them, see Tools for Amazon Web Services.

We recommend that you use the AWS SDKs to make programmatic API calls to Organizations. However, you also can use the Organizations Query API to make direct calls to the Organizations web service. To learn more about the Organizations Query API, see Making Query Requests in the AWS Organizations User Guide. Organizations supports GET and POST requests for all actions. That is, the API does not require you to use GET for some actions and POST for others. However, GET requests are subject to the limitation size of a URL. Therefore, for operations that require larger sizes, use a POST request.

Signing Requests

When you send HTTP requests to AWS, you must sign the requests so that AWS can identify who sent them. You sign requests with your AWS access key, which consists of an access key ID and a secret access key. We strongly recommend that you do not create an access key for your root account. Anyone who has the access key for your root account has unrestricted access to all the resources in your account. Instead, create an access key for an IAM user account that has administrative privileges. As another option, use AWS Security Token Service to generate temporary security credentials, and use those credentials to sign requests.

To sign requests, we recommend that you use Signature Version 4. If you have an existing application that uses Signature Version 2, you do not have to update it to use Signature Version 4. However, some operations now require Signature Version 4. The documentation for operations that require version 4 indicate this requirement.

When you use the AWS Command Line Interface (AWS CLI) or one of the AWS SDKs to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools.

In this release, each organization can have only one root. In a future release, a single organization will support multiple roots.

Support and Feedback for AWS Organizations

We welcome your feedback. Send your comments to feedback-awsorganizations@amazon.com or post your feedback and questions in the AWS Organizations support forum. For more information about the AWS support forums, see Forums Help.

Endpoint to Call When Using the CLI or the AWS API

For the current release of Organizations, you must specify the us-east-1 region for all AWS API and CLI calls. You can do this in the CLI by using these parameters and commands:

  • Use the following parameter with each command to specify both the endpoint and its region:

    --endpoint-url https://organizations.us-east-1.amazonaws.com

  • Use the default endpoint, but configure your default region with this command:

    aws configure set default.region us-east-1

  • Use the following parameter with each command to specify the endpoint:

    --region us-east-1

For the various SDKs used to call the APIs, see the documentation for the SDK of interest to learn how to direct the requests to a specific endpoint. For more information, see Regions and Endpoints in the AWS General Reference.

How examples are presented

The JSON returned by the AWS Organizations service as response to your requests is returned as a single long string without line breaks or formatting whitespace. Both line breaks and whitespace are included in the examples in this guide to improve readability. When example input parameters also would result in long strings that would extend beyond the screen, we insert line breaks to enhance readability. You should always submit the input as a single JSON text string.

Recording API Requests

AWS Organizations supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by AWS CloudTrail, you can determine which requests were successfully made to Organizations, who made the request, when it was made, and so on. For more about AWS Organizations and its support for AWS CloudTrail, see Logging AWS Organizations Events with AWS CloudTrail in the AWS Organizations User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

", "operations": { - "AcceptHandshake": "

Sends a response to the originator of a handshake agreeing to the action proposed by the handshake request.

This operation can be called only by the following principals when they also have the relevant IAM permissions:

  • Invitation to join or Approve all features request handshakes: only a principal from the member account.

  • Enable all features final confirmation handshake: only a principal from the master account.

    For more information about invitations, see Inviting an AWS Account to Join Your Organization in the AWS Organizations User Guide. For more information about requests to enable all features in the organization, see Enabling All Features in Your Organization in the AWS Organizations User Guide.

After you accept a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that it is deleted.

", + "AcceptHandshake": "

Sends a response to the originator of a handshake agreeing to the action proposed by the handshake request.

This operation can be called only by the following principals when they also have the relevant IAM permissions:

  • Invitation to join or Approve all features request handshakes: only a principal from the member account.

    The user who calls the API for an invitation to join must have the organizations:AcceptHandshake permission. If you enabled all features in the organization, then the user must also have the iam:CreateServiceLinkedRole permission so that Organizations can create the required service-linked role named OrgsServiceLinkedRoleName. For more information, see AWS Organizations and Service-Linked Roles in the AWS Organizations User Guide.

  • Enable all features final confirmation handshake: only a principal from the master account.

    For more information about invitations, see Inviting an AWS Account to Join Your Organization in the AWS Organizations User Guide. For more information about requests to enable all features in the organization, see Enabling All Features in Your Organization in the AWS Organizations User Guide.

After you accept a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that it is deleted.

", "AttachPolicy": "

Attaches a policy to a root, an organizational unit, or an individual account. How the policy affects accounts depends on the type of policy:

  • Service control policy (SCP) - An SCP specifies what permissions can be delegated to users in affected member accounts. The scope of influence for a policy depends on what you attach the policy to:

    • If you attach an SCP to a root, it affects all accounts in the organization.

    • If you attach an SCP to an OU, it affects all accounts in that OU and in any child OUs.

    • If you attach the policy directly to an account, then it affects only that account.

    SCPs essentially are permission \"filters\". When you attach one SCP to a higher level root or OU, and you also attach a different SCP to a child OU or to an account, the child policy can further restrict only the permissions that pass through the parent filter and are available to the child. An SCP that is attached to a child cannot grant a permission that is not already granted by the parent. For example, imagine that the parent SCP allows permissions A, B, C, D, and E. The child SCP allows C, D, E, F, and G. The result is that the accounts affected by the child SCP are allowed to use only C, D, and E. They cannot use A or B because they were filtered out by the child OU. They also cannot use F and G because they were filtered out by the parent OU. They cannot be granted back by the child SCP; child SCPs can only filter the permissions they receive from the parent SCP.

    AWS Organizations attaches a default SCP named \"FullAWSAccess to every root, OU, and account. This default SCP allows all services and actions, enabling any new child OU or account to inherit the permissions of the parent root or OU. If you detach the default policy, you must replace it with a policy that specifies the permissions that you want to allow in that OU or account.

    For more information about how Organizations policies permissions work, see Using Service Control Policies in the AWS Organizations User Guide.

This operation can be called only from the organization's master account.

", "CancelHandshake": "

Cancels a handshake. Canceling a handshake sets the handshake state to CANCELED.

This operation can be called only from the account that originated the handshake. The recipient of the handshake can't cancel it, but can use DeclineHandshake instead. After a handshake is canceled, the recipient can no longer respond to that handshake.

After you cancel a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that it is deleted.

", - "CreateAccount": "

Creates an AWS account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that AWS performs in the background. If you want to check the status of the request later, you need the OperationId response element from this operation to provide as a parameter to the DescribeCreateAccountStatus operation.

AWS Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole by default) that grants administrator permissions to the new account. Principals in the master account can assume the role. AWS Organizations clones the company name and address information for the new account from the organization's master account.

For more information about creating accounts, see Creating an AWS Account in Your Organization in the AWS Organizations User Guide.

You cannot remove accounts that are created with this operation from an organization. That also means that you cannot delete an organization that contains an account that is created with this operation.

When you create a member account with this operation, you can choose whether to create the account with the IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable this, then only the account root user can access billing information. For information about how to disable this for an account, see Granting Access to Your Billing Information and Tools.

This operation can be called only from the organization's master account.

", + "CreateAccount": "

Creates an AWS account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that AWS performs in the background. If you want to check the status of the request later, you need the OperationId response element from this operation to provide as a parameter to the DescribeCreateAccountStatus operation.

The user who calls the API for an invitation to join must have the organizations:CreateAccount permission. If you enabled all features in the organization, then the user must also have the iam:CreateServiceLinkedRole permission so that Organizations can create the required service-linked role named OrgsServiceLinkedRoleName. For more information, see AWS Organizations and Service-Linked Roles in the AWS Organizations User Guide.

The user in the master account who calls this API must also have the iam:CreateRole permission because AWS Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole by default) that grants users in the master account administrator permissions in the new member account. Principals in the master account can assume the role. AWS Organizations clones the company name and address information for the new account from the organization's master account.

This operation can be called only from the organization's master account.

For more information about creating accounts, see Creating an AWS Account in Your Organization in the AWS Organizations User Guide.

When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required for the account to operate as a standalone account, such as a payment method and signing the End User Licence Agreement (EULA) is not automatically collected. If you must remove an account from your organization later, you can do so only after you provide the missing information. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

When you create a member account with this operation, you can choose whether to create the account with the IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable this, then only the account root user can access billing information. For information about how to disable this for an account, see Granting Access to Your Billing Information and Tools.

This operation can be called only from the organization's master account.

If you get an exception that indicates that you exceeded your account limits for the organization or that you can\"t add an account because your organization is still initializing, please contact AWS Customer Support.

", "CreateOrganization": "

Creates an AWS organization. The account whose user is calling the CreateOrganization operation automatically becomes the master account of the new organization.

This operation must be called using credentials from the account that is to become the new organization's master account. The principal must also have the relevant IAM permissions.

By default (or if you set the FeatureSet parameter to ALL), the new organization is created with all features enabled and service control policies automatically enabled in the root. If you instead choose to create the organization supporting only the consolidated billing features by setting the FeatureSet parameter to CONSOLIDATED_BILLING\", then no policy types are enabled by default and you cannot use organization policies.

", "CreateOrganizationalUnit": "

Creates an organizational unit (OU) within a root or parent OU. An OU is a container for accounts that enables you to organize your accounts to apply policies according to your business requirements. The number of levels deep that you can nest OUs is dependent upon the policy types enabled for that root. For service control policies, the limit is five.

For more information about OUs, see Managing Organizational Units in the AWS Organizations User Guide.

This operation can be called only from the organization's master account.

", "CreatePolicy": "

Creates a policy of a specified type that you can attach to a root, an organizational unit (OU), or an individual AWS account.

For more information about policies and their use, see Managing Organization Policies.

This operation can be called only from the organization's master account.

", "DeclineHandshake": "

Declines a handshake request. This sets the handshake state to DECLINED and effectively deactivates the request.

This operation can be called only from the account that received the handshake. The originator of the handshake can use CancelHandshake instead. The originator can't reactivate a declined request, but can re-initiate the process with a new handshake request.

After you decline a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that it is deleted.

", - "DeleteOrganization": "

Deletes the organization. You can delete an organization only by using credentials from the master account. The organization must be empty of member accounts, OUs, and policies.

If you create any accounts using Organizations operations or the Organizations console, you can't remove those accounts from the organization, which means that you can't delete the organization.

", + "DeleteOrganization": "

Deletes the organization. You can delete an organization only by using credentials from the master account. The organization must be empty of member accounts, OUs, and policies.

", "DeleteOrganizationalUnit": "

Deletes an organizational unit from a root or another OU. You must first remove all accounts and child OUs from the OU that you want to delete.

This operation can be called only from the organization's master account.

", "DeletePolicy": "

Deletes the specified policy from your organization. Before you perform this operation, you must first detach the policy from all OUs, roots, and accounts.

This operation can be called only from the organization's master account.

", "DescribeAccount": "

Retrieves Organizations-related information about the specified account.

This operation can be called only from the organization's master account.

", @@ -20,14 +20,17 @@ "DescribeOrganizationalUnit": "

Retrieves information about an organizational unit (OU).

This operation can be called only from the organization's master account.

", "DescribePolicy": "

Retrieves information about a policy.

This operation can be called only from the organization's master account.

", "DetachPolicy": "

Detaches a policy from a target root, organizational unit, or account. If the policy being detached is a service control policy (SCP), the changes to permissions for IAM users and roles in affected accounts are immediate.

Note: Every root, OU, and account must have at least one SCP attached. If you want to replace the default FullAWSAccess policy with one that limits the permissions that can be delegated, then you must attach the replacement policy before you can remove the default one. This is the authorization strategy of whitelisting. If you instead attach a second SCP and leave the FullAWSAccess SCP still attached, and specify \"Effect\": \"Deny\" in the second SCP to override the \"Effect\": \"Allow\" in the FullAWSAccess policy (or any other attached SCP), then you are using the authorization strategy of blacklisting.

This operation can be called only from the organization's master account.

", - "DisablePolicyType": "

Disables an organizational control policy type in a root. A poicy of a certain type can be attached to entities in a root only if that type is enabled in the root. After you perform this operation, you no longer can attach policies of the specified type to that root or to any OU or account in that root. You can undo this by using the EnablePolicyType operation.

This operation can be called only from the organization's master account.

", + "DisableAWSServiceAccess": "

Disables the integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations. When you disable integration, the specified service no longer can create a service-linked role in new accounts in your organization. This means the service can't perform operations on your behalf on any new accounts in your organization. The service can still perform operations in older accounts until the service completes its clean-up from AWS Organizations.

We recommend that you disable integration between AWS Organizations and the specified AWS service by using the console or commands that are provided by the specified service. Doing so ensures that the other service is aware that it can clean up any resources that are required only for the integration. How the service cleans up its resources in the organization's accounts depends on that service. For more information, see the documentation for the other AWS service.

After you perform the DisableAWSServiceAccess operation, the specified service can no longer perform operations in your organization's accounts unless the operations are explicitly permitted by the IAM policies that are attached to your roles.

For more information about integrating other services with AWS Organizations, including the list of services that work with Organizations, see Integrating AWS Organizations with Other AWS Services in the AWS Organizations User Guide.

This operation can be called only from the organization's master account.

", + "DisablePolicyType": "

Disables an organizational control policy type in a root. A policy of a certain type can be attached to entities in a root only if that type is enabled in the root. After you perform this operation, you no longer can attach policies of the specified type to that root or to any OU or account in that root. You can undo this by using the EnablePolicyType operation.

This operation can be called only from the organization's master account.

", + "EnableAWSServiceAccess": "

Enables the integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations. When you enable integration, you allow the specified service to create a service-linked role in all the accounts in your organization. This allows the service to perform operations on your behalf in your organization and its accounts.

We recommend that you enable integration between AWS Organizations and the specified AWS service by using the console or commands that are provided by the specified service. Doing so ensures that the service is aware that it can create the resources that are required for the integration. How the service creates those resources in the organization's accounts depends on that service. For more information, see the documentation for the other AWS service.

For more information about enabling services to integrate with AWS Organizations, see Integrating AWS Organizations with Other AWS Services in the AWS Organizations User Guide.

This operation can be called only from the organization's master account and only if the organization has enabled all features.

", "EnableAllFeatures": "

Enables all features in an organization. This enables the use of organization policies that can restrict the services and actions that can be called in each account. Until you enable all features, you have access only to consolidated billing, and you can't use any of the advanced account administration features that AWS Organizations supports. For more information, see Enabling All Features in Your Organization in the AWS Organizations User Guide.

This operation is required only for organizations that were created explicitly with only the consolidated billing features enabled, or that were migrated from a Consolidated Billing account family to Organizations. Calling this operation sends a handshake to every invited account in the organization. The feature set change can be finalized and the additional features enabled only after all administrators in the invited accounts approve the change by accepting the handshake.

After all invited member accounts accept the handshake, you finalize the feature set change by accepting the handshake that contains \"Action\": \"ENABLE_ALL_FEATURES\". This completes the change.

After you enable all features in your organization, the master account in the organization can apply policies on all member accounts. These policies can restrict what users and even administrators in those accounts can do. The master account can apply policies that prevent accounts from leaving the organization. Ensure that your account administrators are aware of this.

This operation can be called only from the organization's master account.

", "EnablePolicyType": "

Enables a policy type in a root. After you enable a policy type in a root, you can attach policies of that type to the root, any OU, or account in that root. You can undo this by using the DisablePolicyType operation.

This operation can be called only from the organization's master account.

", - "InviteAccountToOrganization": "

Sends an invitation to another account to join your organization as a member account. Organizations sends email on your behalf to the email address that is associated with the other account's owner. The invitation is implemented as a Handshake whose details are in the response.

You can invite AWS accounts only from the same reseller as the master account. For example, if your organization's master account was created by Amazon Internet Services Pvt. Ltd (AISPL), an AWS reseller in India, then you can only invite other AISPL accounts to your organization. You can't combine accounts from AISPL and AWS. For more information, see Consolidated Billing in India.

This operation can be called only from the organization's master account.

", - "LeaveOrganization": "

Removes a member account from its parent organization. This version of the operation is performed by the account that wants to leave. To remove a member account as a user in the master account, use RemoveAccountFromOrganization instead.

This operation can be called only from a member account in the organization.

  • The master account in an organization with all features enabled can set service control policies (SCPs) that can restrict what administrators of member accounts can do, including preventing them from successfully calling LeaveOrganization and leaving the organization.

  • If you created the account using the AWS Organizations console, the Organizations API, or the Organizations CLI commands, then you cannot remove the account.

  • You can leave an organization only after you enable IAM user access to billing in your account. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide.

", + "InviteAccountToOrganization": "

Sends an invitation to another account to join your organization as a member account. Organizations sends email on your behalf to the email address that is associated with the other account's owner. The invitation is implemented as a Handshake whose details are in the response.

You can invite AWS accounts only from the same seller as the master account. For example, if your organization's master account was created by Amazon Internet Services Pvt. Ltd (AISPL), an AWS seller in India, then you can only invite other AISPL accounts to your organization. You can't combine accounts from AISPL and AWS, or any other AWS seller. For more information, see Consolidated Billing in India.

This operation can be called only from the organization's master account.

If you get an exception that indicates that you exceeded your account limits for the organization or that you can\"t add an account because your organization is still initializing, please contact AWS Customer Support.

", + "LeaveOrganization": "

Removes a member account from its parent organization. This version of the operation is performed by the account that wants to leave. To remove a member account as a user in the master account, use RemoveAccountFromOrganization instead.

This operation can be called only from a member account in the organization.

  • The master account in an organization with all features enabled can set service control policies (SCPs) that can restrict what administrators of member accounts can do, including preventing them from successfully calling LeaveOrganization and leaving the organization.

  • You can leave an organization as a member account only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required of standalone accounts is not automatically collected. For each account that you want to make standalone, you must accept the End User License Agreement (EULA), choose a support plan, provide and verify the required contact information, and provide a current payment method. AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account is not attached to an organization. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • You can leave an organization only after you enable IAM user access to billing in your account. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide.

", + "ListAWSServiceAccessForOrganization": "

Returns a list of the AWS services that you enabled to integrate with your organization. After a service on this list creates the resources that it requires for the integration, it can perform operations on your organization and its accounts.

For more information about integrating other services with AWS Organizations, including the list of services that currently work with Organizations, see Integrating AWS Organizations with Other AWS Services in the AWS Organizations User Guide.

This operation can be called only from the organization's master account.

", "ListAccounts": "

Lists all the accounts in the organization. To request only the accounts in a root or OU, use the ListAccountsForParent operation instead.

This operation can be called only from the organization's master account.

", - "ListAccountsForParent": "

Lists the accounts in an organization that are contained by the specified target root or organizational unit (OU). If you specify the root, you get a list of all the accounts that are not in any OU. If you specify an OU, you get a list of all the accounts in only that OU, and not in any child OUs. To get a list of all accounts in the organization, use the ListAccounts operation.

", - "ListChildren": "

Lists all of the OUs or accounts that are contained in the specified parent OU or root. This operation, along with ListParents enables you to traverse the tree structure that makes up this root.

", + "ListAccountsForParent": "

Lists the accounts in an organization that are contained by the specified target root or organizational unit (OU). If you specify the root, you get a list of all the accounts that are not in any OU. If you specify an OU, you get a list of all the accounts in only that OU, and not in any child OUs. To get a list of all accounts in the organization, use the ListAccounts operation.

This operation can be called only from the organization's master account.

", + "ListChildren": "

Lists all of the OUs or accounts that are contained in the specified parent OU or root. This operation, along with ListParents enables you to traverse the tree structure that makes up this root.

This operation can be called only from the organization's master account.

", "ListCreateAccountStatus": "

Lists the account creation requests that match the specified status that is currently being tracked for the organization.

This operation can be called only from the organization's master account.

", "ListHandshakesForAccount": "

Lists the current handshakes that are associated with the account of the requesting user.

Handshakes that are ACCEPTED, DECLINED, or CANCELED appear in the results of this API for only 30 days after changing to that state. After that they are deleted and no longer accessible.

This operation can be called from any account in the organization.

", "ListHandshakesForOrganization": "

Lists the handshakes that are associated with the organization that the requesting user is part of. The ListHandshakesForOrganization operation returns a list of handshake structures. Each structure contains details and status about a handshake.

Handshakes that are ACCEPTED, DECLINED, or CANCELED appear in the results of this API for only 30 days after changing to that state. After that they are deleted and no longer accessible.

This operation can be called only from the organization's master account.

", @@ -38,7 +41,7 @@ "ListRoots": "

Lists the roots that are defined in the current organization.

This operation can be called only from the organization's master account.

", "ListTargetsForPolicy": "

Lists all the roots, OUs, and accounts to which the specified policy is attached.

This operation can be called only from the organization's master account.

", "MoveAccount": "

Moves an account from its current source parent root or OU to the specified destination parent root or OU.

This operation can be called only from the organization's master account.

", - "RemoveAccountFromOrganization": "

Removes the specified account from the organization.

The removed account becomes a stand-alone account that is not a member of any organization. It is no longer subject to any policies and is responsible for its own bill payments. The organization's master account is no longer charged for any expenses accrued by the member account after it is removed from the organization.

This operation can be called only from the organization's master account. Member accounts can remove themselves with LeaveOrganization instead.

  • You can remove only accounts that were created outside your organization and invited to join. If you created the account using the AWS Organizations console, the Organizations API, or the Organizations CLI commands, then you cannot remove the account.

  • You can remove a member account only after you enable IAM user access to billing in the member account. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide.

", + "RemoveAccountFromOrganization": "

Removes the specified account from the organization.

The removed account becomes a stand-alone account that is not a member of any organization. It is no longer subject to any policies and is responsible for its own bill payments. The organization's master account is no longer charged for any expenses accrued by the member account after it is removed from the organization.

This operation can be called only from the organization's master account. Member accounts can remove themselves with LeaveOrganization instead.

  • You can remove an account from your organization only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required of standalone accounts is not automatically collected. For an account that you want to make standalone, you must accept the End User License Agreement (EULA), choose a support plan, provide and verify the required contact information, and provide a current payment method. AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account is not attached to an organization. To remove an account that does not yet have this information, you must sign in as the member account and follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • You can remove a member account only after you enable IAM user access to billing in the member account. For more information, see Activating Access to the Billing and Cost Management Console in the AWS Billing and Cost Management User Guide.

", "UpdateOrganizationalUnit": "

Renames the specified organizational unit (OU). The ID and ARN do not change. The child OUs and accounts remain in place, and any attached policies of the OU remain attached.

This operation can be called only from the organization's master account.

", "UpdatePolicy": "

Updates an existing policy with a new name, description, or content. If any parameter is not supplied, that value remains unchanged. Note that you cannot change a policy's type.

This operation can be called only from the organization's master account.

" }, @@ -63,6 +66,17 @@ "refs": { } }, + "AccessDeniedForDependencyException": { + "base": "

The operation you attempted requires you to have the iam:CreateServiceLinkedRole so that Organizations can create the required service-linked role. You do not have that permission.

", + "refs": { + } + }, + "AccessDeniedForDependencyExceptionReason": { + "base": null, + "refs": { + "AccessDeniedForDependencyException$Reason": null + } + }, "Account": { "base": "

Contains information about an AWS account that is a member of an organization.

", "refs": { @@ -123,7 +137,7 @@ "ActionType": { "base": null, "refs": { - "Handshake$Action": "

The type of handshake, indicating what action occurs when the recipient accepts the handshake.

", + "Handshake$Action": "

The type of handshake, indicating what action occurs when the recipient accepts the handshake. The following handshake types are supported:

  • INVITE: This type of handshake represents a request to join an organization. It is always sent from the master account to only non-member accounts.

  • ENABLE_ALL_FEATURES: This type of handshake represents a request to enable all features in an organization. It is always sent from the master account to only invited member accounts. Created accounts do not receive this because those accounts were created by the organization's master account and approval is inferred.

  • APPROVE_ALL_FEATURES: This type of handshake is sent from the Organizations service when all member accounts have approved the ENABLE_ALL_FEATURES invitation. It is sent only to the master account and signals the master that it can finalize the process to enable all features.

", "HandshakeFilter$ActionType": "

Specifies the type of handshake action.

If you specify ActionType, you cannot also specify ParentHandshakeId.

" } }, @@ -190,7 +204,7 @@ } }, "ConstraintViolationException": { - "base": "

Performing this operation violates a minimum or maximum value limit. For example, attempting to removing the last SCP from an OU or root, inviting or creating too many accounts to the organization, or attaching too many policies to an account, OU, or root. This exception includes a reason that contains additional information about the violated limit:

  • ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an organization. If you need more accounts, contact AWS Support to request an increase in your limit.

    Or, The number of invitations that you tried to send would cause you to exceed the limit of accounts in your organization. Send fewer invitations, or contact AWS Support to request an increase in the number of accounts.

    Note: deleted and closed accounts still count toward your limit.

  • HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes you can send in one day.

  • OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of organizational units you can have in an organization.

  • OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an organizational unit tree that is too many levels deep.

  • POLICY_NUMBER_LIMIT_EXCEEDED. You attempted to exceed the number of policies that you can have in an organization.

  • MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain type that can be attached to an entity at one time.

  • MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would cause the entity to have fewer than the minimum number of policies of a certain type required.

  • ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA: You attempted to remove an account from the organization that does not yet have enough information to exist as a stand-alone account. This account requires you to first agree to the End-User License Agreement (EULA).

  • ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization that does not yet have enough information to exist as a stand-alone account. This account requires you to first complete phone verification.

  • MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this account, you first must associate a payment instrument, such as a credit card, with the account.

  • MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you first must associate a payment instrument, such as a credit card, with the account.

  • ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create in one day.

  • MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first must migrate the organization's master account to the marketplace that corresponds to the master account's address. For example, accounts with India addresses must be associated with the AISPL marketplace. All accounts in an organization must be associated with the same marketplace.

", + "base": "

Performing this operation violates a minimum or maximum value limit. For example, attempting to removing the last SCP from an OU or root, inviting or creating too many accounts to the organization, or attaching too many policies to an account, OU, or root. This exception includes a reason that contains additional information about the violated limit:

Some of the reasons in the following list might not be applicable to this specific API or operation:

  • ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an organization. If you need more accounts, contact AWS Support to request an increase in your limit.

    Or, The number of invitations that you tried to send would cause you to exceed the limit of accounts in your organization. Send fewer invitations, or contact AWS Support to request an increase in the number of accounts.

    Note: deleted and closed accounts still count toward your limit.

    If you get an exception that indicates that you exceeded your account limits for the organization or that you can\"t add an account because your organization is still initializing, please contact AWS Customer Support.

  • HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes you can send in one day.

  • OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of organizational units you can have in an organization.

  • OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an organizational unit tree that is too many levels deep.

  • POLICY_NUMBER_LIMIT_EXCEEDED. You attempted to exceed the number of policies that you can have in an organization.

  • MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain type that can be attached to an entity at one time.

  • MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would cause the entity to have fewer than the minimum number of policies of a certain type required.

  • ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA: You attempted to remove an account from the organization that does not yet have enough information to exist as a stand-alone account. This account requires you to first agree to the AWS Customer Agreement. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization that does not yet have enough information to exist as a stand-alone account. This account requires you to first complete phone verification. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this account, you first must associate a payment instrument, such as a credit card, with the account. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you first must associate a payment instrument, such as a credit card, with the account. Follow the steps at To leave an organization when all required account information has not yet been provided in the AWS Organizations User Guide.

  • ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create in one day.

  • MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first must migrate the organization's master account to the marketplace that corresponds to the master account's address. For example, accounts with India addresses must be associated with the AISPL marketplace. All accounts in an organization must be associated with the same marketplace.

  • MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide contact a valid address and phone number for the master account. Then try the operation again.

", "refs": { } }, @@ -370,6 +384,11 @@ "refs": { } }, + "DisableAWSServiceAccessRequest": { + "base": null, + "refs": { + } + }, "DisablePolicyTypeRequest": { "base": null, "refs": { @@ -409,10 +428,15 @@ "base": null, "refs": { "Account$Email": "

The email address associated with the AWS account.

The regex pattern for this parameter is a string of characters that represents a standard Internet email address.

", - "CreateAccountRequest$Email": "

The email address of the owner to assign to the new member account. This email address must not already be associated with another AWS account.

", + "CreateAccountRequest$Email": "

The email address of the owner to assign to the new member account. This email address must not already be associated with another AWS account. You must use a valid email address to complete account creation. You cannot access the root user of the account or remove an account that was created with an invalid email address.

", "Organization$MasterAccountEmail": "

The email address that is associated with the AWS account that is designated as the master account for the organization.

" } }, + "EnableAWSServiceAccessRequest": { + "base": null, + "refs": { + } + }, "EnableAllFeaturesRequest": { "base": null, "refs": { @@ -433,11 +457,24 @@ "refs": { } }, + "EnabledServicePrincipal": { + "base": "

A structure that contains details of a service principal that is enabled to integrate with AWS Organizations.

", + "refs": { + "EnabledServicePrincipals$member": null + } + }, + "EnabledServicePrincipals": { + "base": null, + "refs": { + "ListAWSServiceAccessForOrganizationResponse$EnabledServicePrincipals": "

A list of the service principals for the services that are enabled to integrate with your organization. Each principal is a structure that includes the name and the date that it was enabled for integration with AWS Organizations.

" + } + }, "ExceptionMessage": { "base": null, "refs": { "AWSOrganizationsNotInUseException$Message": null, "AccessDeniedException$Message": null, + "AccessDeniedForDependencyException$Message": null, "AccountNotFoundException$Message": null, "AlreadyInOrganizationException$Message": null, "ChildNotFoundException$Message": null, @@ -516,7 +553,7 @@ } }, "HandshakeConstraintViolationException": { - "base": "

The requested operation would violate the constraint identified in the reason code.

  • ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an organization. Note: deleted and closed accounts still count toward your limit.

  • HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes you can send in one day.

  • ALREADY_IN_AN_ORGANIZATION: The handshake request is invalid because the invited account is already a member of an organization.

  • ORGANIZATION_ALREADY_HAS_ALL_FEATURES: The handshake request is invalid because the organization has already enabled all features.

  • INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES: You cannot issue new invitations to join an organization while it is in the process of enabling all features. You can resume inviting accounts after you finalize the process when all accounts have agreed to the change.

  • PAYMENT_INSTRUMENT_REQUIRED: You cannot complete the operation with an account that does not have a payment instrument, such as a credit card, associated with it.

  • ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD: The request failed because the account is from a different marketplace than the accounts in the organization. For example, accounts with India addresses must be associated with the AISPL marketplace. All accounts in an organization must be from the same marketplace.

  • ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED: You attempted to change the membership of an account too quickly after its previous change.

", + "base": "

The requested operation would violate the constraint identified in the reason code.

Some of the reasons in the following list might not be applicable to this specific API or operation:

  • ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an organization. Note: deleted and closed accounts still count toward your limit.

    If you get an exception that indicates that you exceeded your account limits for the organization or that you can\"t add an account because your organization is still initializing, please contact AWS Customer Support.

  • HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes you can send in one day.

  • ALREADY_IN_AN_ORGANIZATION: The handshake request is invalid because the invited account is already a member of an organization.

  • ORGANIZATION_ALREADY_HAS_ALL_FEATURES: The handshake request is invalid because the organization has already enabled all features.

  • INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES: You cannot issue new invitations to join an organization while it is in the process of enabling all features. You can resume inviting accounts after you finalize the process when all accounts have agreed to the change.

  • PAYMENT_INSTRUMENT_REQUIRED: You cannot complete the operation with an account that does not have a payment instrument, such as a credit card, associated with it.

  • ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD: The request failed because the account is from a different marketplace than the accounts in the organization. For example, accounts with India addresses must be associated with the AISPL marketplace. All accounts in an organization must be from the same marketplace.

  • ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED: You attempted to change the membership of an account too quickly after its previous change.

", "refs": { } }, @@ -565,7 +602,7 @@ "base": "

Identifies a participant in a handshake.

", "refs": { "HandshakeParties$member": null, - "InviteAccountToOrganizationRequest$Target": "

The identifier (ID) of the AWS account that you want to invite to join your organization. This is a JSON object that contains the following elements:

{ \"Type\": \"ACCOUNT\", \"Id\": \"< account id number >\" }

If you use the AWS CLI, you can submit this as a single string, similar to the following example:

--target id=123456789012,type=ACCOUNT

If you specify \"Type\": \"ACCOUNT\", then you must provide the AWS account ID number as the Id. If you specify \"Type\": \"EMAIL\", then you must specify the email address that is associated with the account.

--target id=bill@example.com,type=EMAIL

" + "InviteAccountToOrganizationRequest$Target": "

The identifier (ID) of the AWS account that you want to invite to join your organization. This is a JSON object that contains the following elements:

{ \"Type\": \"ACCOUNT\", \"Id\": \"< account id number >\" }

If you use the AWS CLI, you can submit this as a single string, similar to the following example:

--target Id=123456789012,Type=ACCOUNT

If you specify \"Type\": \"ACCOUNT\", then you must provide the AWS account ID number as the Id. If you specify \"Type\": \"EMAIL\", then you must specify the email address that is associated with the account.

--target Id=bill@example.com,Type=EMAIL

" } }, "HandshakePartyId": { @@ -630,7 +667,7 @@ } }, "InvalidInputException": { - "base": "

The requested operation failed because you provided invalid values for one or more of the request parameters. This exception includes a reason that contains additional information about the violated limit:

  • INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a party.

  • INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid ARN for the organization.

  • INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.

  • INVALID_ENUM: You specified a value that is not valid for that parameter.

  • INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.

  • INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.

  • MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.

  • MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.

  • MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.

  • MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.

  • IMMUTABLE_POLICY: You specified a policy that is managed by AWS and cannot be modified.

  • INVALID_PATTERN: You provided a value that doesn't match the required pattern.

  • INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.

  • INPUT_REQUIRED: You must include a value for all required parameters.

  • INVALID_PAGINATION_TOKEN: Get the value for the NextToken parameter from the response to a previous call of the operation.

  • MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.

  • MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.

", + "base": "

The requested operation failed because you provided invalid values for one or more of the request parameters. This exception includes a reason that contains additional information about the violated limit:

Some of the reasons in the following list might not be applicable to this specific API or operation:

  • INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a party.

  • INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid ARN for the organization.

  • INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.

  • INVALID_ENUM: You specified a value that is not valid for that parameter.

  • INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.

  • INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.

  • MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.

  • MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.

  • MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.

  • MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.

  • IMMUTABLE_POLICY: You specified a policy that is managed by AWS and cannot be modified.

  • INVALID_PATTERN: You provided a value that doesn't match the required pattern.

  • INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.

  • INPUT_REQUIRED: You must include a value for all required parameters.

  • INVALID_PAGINATION_TOKEN: Get the value for the NextToken parameter from the response to a previous call of the operation.

  • MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.

  • MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.

", "refs": { } }, @@ -650,6 +687,16 @@ "refs": { } }, + "ListAWSServiceAccessForOrganizationRequest": { + "base": null, + "refs": { + } + }, + "ListAWSServiceAccessForOrganizationResponse": { + "base": null, + "refs": { + } + }, "ListAccountsForParentRequest": { "base": null, "refs": { @@ -783,6 +830,7 @@ "MaxResults": { "base": null, "refs": { + "ListAWSServiceAccessForOrganizationRequest$MaxResults": "

(Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

", "ListAccountsForParentRequest$MaxResults": "

(Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

", "ListAccountsRequest$MaxResults": "

(Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

", "ListChildrenRequest$MaxResults": "

(Optional) Use this to limit the number of results you want included in the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

", @@ -805,6 +853,8 @@ "NextToken": { "base": null, "refs": { + "ListAWSServiceAccessForOrganizationRequest$NextToken": "

Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from.

", + "ListAWSServiceAccessForOrganizationResponse$NextToken": "

If present, this value indicates that there is more output available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null.

", "ListAccountsForParentRequest$NextToken": "

Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from.

", "ListAccountsForParentResponse$NextToken": "

If present, this value indicates that there is more output available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null.

", "ListAccountsRequest$NextToken": "

Use this parameter if you receive a NextToken response in a previous request that indicates that there is more output available. Set it to the value of the previous call's NextToken response to indicate where the output should continue from.

", @@ -1119,7 +1169,7 @@ "RootId": { "base": null, "refs": { - "DisablePolicyTypeRequest$RootId": "

The unique identifier (ID) of the root in which you want to disable a policy type. You can get the ID from the ListPolicies operation.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

", + "DisablePolicyTypeRequest$RootId": "

The unique identifier (ID) of the root in which you want to disable a policy type. You can get the ID from the ListRoots operation.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

", "EnablePolicyTypeRequest$RootId": "

The unique identifier (ID) of the root in which you want to enable a policy type. You can get the ID from the ListRoots operation.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

", "Root$Id": "

The unique identifier (ID) for the root.

The regex pattern for a root ID string requires \"r-\" followed by from 4 to 32 lower-case letters or digits.

" } @@ -1146,6 +1196,14 @@ "refs": { } }, + "ServicePrincipal": { + "base": null, + "refs": { + "DisableAWSServiceAccessRequest$ServicePrincipal": "

The service principal name of the AWS service for which you want to disable integration with your organization. This is typically in the form of a URL, such as service-abbreviation.amazonaws.com.

", + "EnableAWSServiceAccessRequest$ServicePrincipal": "

The service principal name of the AWS service for which you want to enable integration with your organization. This is typically in the form of a URL, such as service-abbreviation.amazonaws.com.

", + "EnabledServicePrincipal$ServicePrincipal": "

The name of the service principal. This is typically in the form of a URL, such as: servicename.amazonaws.com.

" + } + }, "SourceParentNotFoundException": { "base": "

We can't find a source root or OU with the ParentId that you specified.

", "refs": { @@ -1174,6 +1232,7 @@ "Account$JoinedTimestamp": "

The date the account became a part of the organization.

", "CreateAccountStatus$RequestedTimestamp": "

The date and time that the request was made for the account creation.

", "CreateAccountStatus$CompletedTimestamp": "

The date and time that the account was created and the request completed.

", + "EnabledServicePrincipal$DateEnabled": "

The date that the service principal was enabled for integration with AWS Organizations.

", "Handshake$RequestedTimestamp": "

The date and time that the handshake request was made.

", "Handshake$ExpirationTimestamp": "

The date and time that the handshake expires. If the recipient of the handshake request fails to respond before the specified date and time, the handshake becomes inactive and is no longer valid.

" } diff --git a/models/apis/organizations/2016-11-28/paginators-1.json b/models/apis/organizations/2016-11-28/paginators-1.json index ad365ba83cb..dd5602fee7b 100644 --- a/models/apis/organizations/2016-11-28/paginators-1.json +++ b/models/apis/organizations/2016-11-28/paginators-1.json @@ -1,5 +1,10 @@ { "pagination": { + "ListAWSServiceAccessForOrganization": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListAccounts": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/models/apis/pinpoint/2016-12-01/api-2.json b/models/apis/pinpoint/2016-12-01/api-2.json index 18c2d07d827..c5e9eef4813 100644 --- a/models/apis/pinpoint/2016-12-01/api-2.json +++ b/models/apis/pinpoint/2016-12-01/api-2.json @@ -4,11 +4,39 @@ "endpointPrefix" : "pinpoint", "signingName" : "mobiletargeting", "serviceFullName" : "Amazon Pinpoint", - "signatureVersion":"v4", "protocol" : "rest-json", - "jsonVersion" : "1.1" + "jsonVersion" : "1.1", + "uid" : "pinpoint-2016-12-01", + "signatureVersion" : "v4" }, "operations" : { + "CreateApp" : { + "name" : "CreateApp", + "http" : { + "method" : "POST", + "requestUri" : "/v1/apps", + "responseCode" : 201 + }, + "input" : { + "shape" : "CreateAppRequest" + }, + "output" : { + "shape" : "CreateAppResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "CreateCampaign" : { "name" : "CreateCampaign", "http" : { @@ -90,6 +118,33 @@ "shape" : "TooManyRequestsException" } ] }, + "DeleteAdmChannel" : { + "name" : "DeleteAdmChannel", + "http" : { + "method" : "DELETE", + "requestUri" : "/v1/apps/{application-id}/channels/adm", + "responseCode" : 200 + }, + "input" : { + "shape" : "DeleteAdmChannelRequest" + }, + "output" : { + "shape" : "DeleteAdmChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "DeleteApnsChannel" : { "name" : "DeleteApnsChannel", "http" : { @@ -144,18 +199,18 @@ "shape" : "TooManyRequestsException" } ] }, - "DeleteCampaign" : { - "name" : "DeleteCampaign", + "DeleteApnsVoipChannel" : { + "name" : "DeleteApnsVoipChannel", "http" : { "method" : "DELETE", - "requestUri" : "/v1/apps/{application-id}/campaigns/{campaign-id}", + "requestUri" : "/v1/apps/{application-id}/channels/apns_voip", "responseCode" : 200 }, "input" : { - "shape" : "DeleteCampaignRequest" + "shape" : "DeleteApnsVoipChannelRequest" }, "output" : { - "shape" : "DeleteCampaignResponse" + "shape" : "DeleteApnsVoipChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -171,18 +226,18 @@ "shape" : "TooManyRequestsException" } ] }, - "DeleteEmailChannel" : { - "name" : "DeleteEmailChannel", + "DeleteApnsVoipSandboxChannel" : { + "name" : "DeleteApnsVoipSandboxChannel", "http" : { "method" : "DELETE", - "requestUri" : "/v1/apps/{application-id}/channels/email", + "requestUri" : "/v1/apps/{application-id}/channels/apns_voip_sandbox", "responseCode" : 200 }, "input" : { - "shape" : "DeleteEmailChannelRequest" + "shape" : "DeleteApnsVoipSandboxChannelRequest" }, "output" : { - "shape" : "DeleteEmailChannelResponse" + "shape" : "DeleteApnsVoipSandboxChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -198,18 +253,18 @@ "shape" : "TooManyRequestsException" } ] }, - "DeleteEventStream" : { - "name" : "DeleteEventStream", + "DeleteApp" : { + "name" : "DeleteApp", "http" : { "method" : "DELETE", - "requestUri" : "/v1/apps/{application-id}/eventstream", + "requestUri" : "/v1/apps/{application-id}", "responseCode" : 200 }, "input" : { - "shape" : "DeleteEventStreamRequest" + "shape" : "DeleteAppRequest" }, "output" : { - "shape" : "DeleteEventStreamResponse" + "shape" : "DeleteAppResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -225,18 +280,18 @@ "shape" : "TooManyRequestsException" } ] }, - "DeleteGcmChannel" : { - "name" : "DeleteGcmChannel", + "DeleteBaiduChannel" : { + "name" : "DeleteBaiduChannel", "http" : { "method" : "DELETE", - "requestUri" : "/v1/apps/{application-id}/channels/gcm", + "requestUri" : "/v1/apps/{application-id}/channels/baidu", "responseCode" : 200 }, "input" : { - "shape" : "DeleteGcmChannelRequest" + "shape" : "DeleteBaiduChannelRequest" }, "output" : { - "shape" : "DeleteGcmChannelResponse" + "shape" : "DeleteBaiduChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -252,18 +307,18 @@ "shape" : "TooManyRequestsException" } ] }, - "DeleteSegment" : { - "name" : "DeleteSegment", + "DeleteCampaign" : { + "name" : "DeleteCampaign", "http" : { "method" : "DELETE", - "requestUri" : "/v1/apps/{application-id}/segments/{segment-id}", + "requestUri" : "/v1/apps/{application-id}/campaigns/{campaign-id}", "responseCode" : 200 }, "input" : { - "shape" : "DeleteSegmentRequest" + "shape" : "DeleteCampaignRequest" }, "output" : { - "shape" : "DeleteSegmentResponse" + "shape" : "DeleteCampaignResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -279,18 +334,18 @@ "shape" : "TooManyRequestsException" } ] }, - "DeleteSmsChannel" : { - "name" : "DeleteSmsChannel", + "DeleteEmailChannel" : { + "name" : "DeleteEmailChannel", "http" : { "method" : "DELETE", - "requestUri" : "/v1/apps/{application-id}/channels/sms", + "requestUri" : "/v1/apps/{application-id}/channels/email", "responseCode" : 200 }, "input" : { - "shape" : "DeleteSmsChannelRequest" + "shape" : "DeleteEmailChannelRequest" }, "output" : { - "shape" : "DeleteSmsChannelResponse" + "shape" : "DeleteEmailChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -306,18 +361,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetApnsChannel" : { - "name" : "GetApnsChannel", + "DeleteEventStream" : { + "name" : "DeleteEventStream", "http" : { - "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/channels/apns", + "method" : "DELETE", + "requestUri" : "/v1/apps/{application-id}/eventstream", "responseCode" : 200 }, "input" : { - "shape" : "GetApnsChannelRequest" + "shape" : "DeleteEventStreamRequest" }, "output" : { - "shape" : "GetApnsChannelResponse" + "shape" : "DeleteEventStreamResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -333,18 +388,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetApnsSandboxChannel" : { - "name" : "GetApnsSandboxChannel", + "DeleteGcmChannel" : { + "name" : "DeleteGcmChannel", "http" : { - "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/channels/apns_sandbox", + "method" : "DELETE", + "requestUri" : "/v1/apps/{application-id}/channels/gcm", "responseCode" : 200 }, "input" : { - "shape" : "GetApnsSandboxChannelRequest" + "shape" : "DeleteGcmChannelRequest" }, "output" : { - "shape" : "GetApnsSandboxChannelResponse" + "shape" : "DeleteGcmChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -360,18 +415,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetApplicationSettings" : { - "name" : "GetApplicationSettings", + "DeleteSegment" : { + "name" : "DeleteSegment", "http" : { - "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/settings", + "method" : "DELETE", + "requestUri" : "/v1/apps/{application-id}/segments/{segment-id}", "responseCode" : 200 }, "input" : { - "shape" : "GetApplicationSettingsRequest" + "shape" : "DeleteSegmentRequest" }, "output" : { - "shape" : "GetApplicationSettingsResponse" + "shape" : "DeleteSegmentResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -387,18 +442,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetCampaign" : { - "name" : "GetCampaign", + "DeleteSmsChannel" : { + "name" : "DeleteSmsChannel", "http" : { - "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/campaigns/{campaign-id}", + "method" : "DELETE", + "requestUri" : "/v1/apps/{application-id}/channels/sms", "responseCode" : 200 }, "input" : { - "shape" : "GetCampaignRequest" + "shape" : "DeleteSmsChannelRequest" }, "output" : { - "shape" : "GetCampaignResponse" + "shape" : "DeleteSmsChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -414,18 +469,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetCampaignActivities" : { - "name" : "GetCampaignActivities", + "GetAdmChannel" : { + "name" : "GetAdmChannel", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/campaigns/{campaign-id}/activities", + "requestUri" : "/v1/apps/{application-id}/channels/adm", "responseCode" : 200 }, "input" : { - "shape" : "GetCampaignActivitiesRequest" + "shape" : "GetAdmChannelRequest" }, "output" : { - "shape" : "GetCampaignActivitiesResponse" + "shape" : "GetAdmChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -441,18 +496,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetCampaignVersion" : { - "name" : "GetCampaignVersion", + "GetApnsChannel" : { + "name" : "GetApnsChannel", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/campaigns/{campaign-id}/versions/{version}", + "requestUri" : "/v1/apps/{application-id}/channels/apns", "responseCode" : 200 }, "input" : { - "shape" : "GetCampaignVersionRequest" + "shape" : "GetApnsChannelRequest" }, "output" : { - "shape" : "GetCampaignVersionResponse" + "shape" : "GetApnsChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -468,18 +523,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetCampaignVersions" : { - "name" : "GetCampaignVersions", + "GetApnsSandboxChannel" : { + "name" : "GetApnsSandboxChannel", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/campaigns/{campaign-id}/versions", + "requestUri" : "/v1/apps/{application-id}/channels/apns_sandbox", "responseCode" : 200 }, "input" : { - "shape" : "GetCampaignVersionsRequest" + "shape" : "GetApnsSandboxChannelRequest" }, "output" : { - "shape" : "GetCampaignVersionsResponse" + "shape" : "GetApnsSandboxChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -495,18 +550,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetCampaigns" : { - "name" : "GetCampaigns", + "GetApnsVoipChannel" : { + "name" : "GetApnsVoipChannel", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/campaigns", + "requestUri" : "/v1/apps/{application-id}/channels/apns_voip", "responseCode" : 200 }, "input" : { - "shape" : "GetCampaignsRequest" + "shape" : "GetApnsVoipChannelRequest" }, "output" : { - "shape" : "GetCampaignsResponse" + "shape" : "GetApnsVoipChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -522,18 +577,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetEmailChannel" : { - "name" : "GetEmailChannel", + "GetApnsVoipSandboxChannel" : { + "name" : "GetApnsVoipSandboxChannel", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/channels/email", + "requestUri" : "/v1/apps/{application-id}/channels/apns_voip_sandbox", "responseCode" : 200 }, "input" : { - "shape" : "GetEmailChannelRequest" + "shape" : "GetApnsVoipSandboxChannelRequest" }, "output" : { - "shape" : "GetEmailChannelResponse" + "shape" : "GetApnsVoipSandboxChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -549,18 +604,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetEndpoint" : { - "name" : "GetEndpoint", + "GetApp" : { + "name" : "GetApp", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/endpoints/{endpoint-id}", + "requestUri" : "/v1/apps/{application-id}", "responseCode" : 200 }, "input" : { - "shape" : "GetEndpointRequest" + "shape" : "GetAppRequest" }, "output" : { - "shape" : "GetEndpointResponse" + "shape" : "GetAppResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -576,18 +631,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetEventStream" : { - "name" : "GetEventStream", + "GetApplicationSettings" : { + "name" : "GetApplicationSettings", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/eventstream", + "requestUri" : "/v1/apps/{application-id}/settings", "responseCode" : 200 }, "input" : { - "shape" : "GetEventStreamRequest" + "shape" : "GetApplicationSettingsRequest" }, "output" : { - "shape" : "GetEventStreamResponse" + "shape" : "GetApplicationSettingsResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -603,18 +658,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetGcmChannel" : { - "name" : "GetGcmChannel", + "GetApps" : { + "name" : "GetApps", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/channels/gcm", + "requestUri" : "/v1/apps", "responseCode" : 200 }, "input" : { - "shape" : "GetGcmChannelRequest" + "shape" : "GetAppsRequest" }, "output" : { - "shape" : "GetGcmChannelResponse" + "shape" : "GetAppsResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -630,18 +685,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetImportJob" : { - "name" : "GetImportJob", + "GetBaiduChannel" : { + "name" : "GetBaiduChannel", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/jobs/import/{job-id}", + "requestUri" : "/v1/apps/{application-id}/channels/baidu", "responseCode" : 200 }, "input" : { - "shape" : "GetImportJobRequest" + "shape" : "GetBaiduChannelRequest" }, "output" : { - "shape" : "GetImportJobResponse" + "shape" : "GetBaiduChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -657,18 +712,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetImportJobs" : { - "name" : "GetImportJobs", + "GetCampaign" : { + "name" : "GetCampaign", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/jobs/import", + "requestUri" : "/v1/apps/{application-id}/campaigns/{campaign-id}", "responseCode" : 200 }, "input" : { - "shape" : "GetImportJobsRequest" + "shape" : "GetCampaignRequest" }, "output" : { - "shape" : "GetImportJobsResponse" + "shape" : "GetCampaignResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -684,18 +739,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetSegment" : { - "name" : "GetSegment", + "GetCampaignActivities" : { + "name" : "GetCampaignActivities", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/segments/{segment-id}", + "requestUri" : "/v1/apps/{application-id}/campaigns/{campaign-id}/activities", "responseCode" : 200 }, "input" : { - "shape" : "GetSegmentRequest" + "shape" : "GetCampaignActivitiesRequest" }, "output" : { - "shape" : "GetSegmentResponse" + "shape" : "GetCampaignActivitiesResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -711,18 +766,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetSegmentImportJobs" : { - "name" : "GetSegmentImportJobs", + "GetCampaignVersion" : { + "name" : "GetCampaignVersion", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/segments/{segment-id}/jobs/import", + "requestUri" : "/v1/apps/{application-id}/campaigns/{campaign-id}/versions/{version}", "responseCode" : 200 }, "input" : { - "shape" : "GetSegmentImportJobsRequest" + "shape" : "GetCampaignVersionRequest" }, "output" : { - "shape" : "GetSegmentImportJobsResponse" + "shape" : "GetCampaignVersionResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -738,18 +793,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetSegmentVersion" : { - "name" : "GetSegmentVersion", + "GetCampaignVersions" : { + "name" : "GetCampaignVersions", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/segments/{segment-id}/versions/{version}", + "requestUri" : "/v1/apps/{application-id}/campaigns/{campaign-id}/versions", "responseCode" : 200 }, "input" : { - "shape" : "GetSegmentVersionRequest" + "shape" : "GetCampaignVersionsRequest" }, "output" : { - "shape" : "GetSegmentVersionResponse" + "shape" : "GetCampaignVersionsResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -765,18 +820,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetSegmentVersions" : { - "name" : "GetSegmentVersions", + "GetCampaigns" : { + "name" : "GetCampaigns", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/segments/{segment-id}/versions", + "requestUri" : "/v1/apps/{application-id}/campaigns", "responseCode" : 200 }, "input" : { - "shape" : "GetSegmentVersionsRequest" + "shape" : "GetCampaignsRequest" }, "output" : { - "shape" : "GetSegmentVersionsResponse" + "shape" : "GetCampaignsResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -792,18 +847,18 @@ "shape" : "TooManyRequestsException" } ] }, - "GetSegments" : { - "name" : "GetSegments", + "GetEmailChannel" : { + "name" : "GetEmailChannel", "http" : { "method" : "GET", - "requestUri" : "/v1/apps/{application-id}/segments", + "requestUri" : "/v1/apps/{application-id}/channels/email", "responseCode" : 200 }, "input" : { - "shape" : "GetSegmentsRequest" + "shape" : "GetEmailChannelRequest" }, "output" : { - "shape" : "GetSegmentsResponse" + "shape" : "GetEmailChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -819,8 +874,278 @@ "shape" : "TooManyRequestsException" } ] }, - "GetSmsChannel" : { - "name" : "GetSmsChannel", + "GetEndpoint" : { + "name" : "GetEndpoint", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/endpoints/{endpoint-id}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetEndpointRequest" + }, + "output" : { + "shape" : "GetEndpointResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "GetEventStream" : { + "name" : "GetEventStream", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/eventstream", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetEventStreamRequest" + }, + "output" : { + "shape" : "GetEventStreamResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "GetGcmChannel" : { + "name" : "GetGcmChannel", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/channels/gcm", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetGcmChannelRequest" + }, + "output" : { + "shape" : "GetGcmChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "GetImportJob" : { + "name" : "GetImportJob", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/jobs/import/{job-id}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetImportJobRequest" + }, + "output" : { + "shape" : "GetImportJobResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "GetImportJobs" : { + "name" : "GetImportJobs", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/jobs/import", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetImportJobsRequest" + }, + "output" : { + "shape" : "GetImportJobsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "GetSegment" : { + "name" : "GetSegment", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/segments/{segment-id}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetSegmentRequest" + }, + "output" : { + "shape" : "GetSegmentResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "GetSegmentImportJobs" : { + "name" : "GetSegmentImportJobs", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/segments/{segment-id}/jobs/import", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetSegmentImportJobsRequest" + }, + "output" : { + "shape" : "GetSegmentImportJobsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "GetSegmentVersion" : { + "name" : "GetSegmentVersion", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/segments/{segment-id}/versions/{version}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetSegmentVersionRequest" + }, + "output" : { + "shape" : "GetSegmentVersionResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "GetSegmentVersions" : { + "name" : "GetSegmentVersions", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/segments/{segment-id}/versions", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetSegmentVersionsRequest" + }, + "output" : { + "shape" : "GetSegmentVersionsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "GetSegments" : { + "name" : "GetSegments", + "http" : { + "method" : "GET", + "requestUri" : "/v1/apps/{application-id}/segments", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetSegmentsRequest" + }, + "output" : { + "shape" : "GetSegmentsResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "GetSmsChannel" : { + "name" : "GetSmsChannel", "http" : { "method" : "GET", "requestUri" : "/v1/apps/{application-id}/channels/sms", @@ -900,6 +1225,60 @@ "shape" : "TooManyRequestsException" } ] }, + "SendUsersMessages" : { + "name" : "SendUsersMessages", + "http" : { + "method" : "POST", + "requestUri" : "/v1/apps/{application-id}/users-messages", + "responseCode" : 200 + }, + "input" : { + "shape" : "SendUsersMessagesRequest" + }, + "output" : { + "shape" : "SendUsersMessagesResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "UpdateAdmChannel" : { + "name" : "UpdateAdmChannel", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/apps/{application-id}/channels/adm", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateAdmChannelRequest" + }, + "output" : { + "shape" : "UpdateAdmChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, "UpdateApnsChannel" : { "name" : "UpdateApnsChannel", "http" : { @@ -938,7 +1317,88 @@ "shape" : "UpdateApnsSandboxChannelRequest" }, "output" : { - "shape" : "UpdateApnsSandboxChannelResponse" + "shape" : "UpdateApnsSandboxChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "UpdateApnsVoipChannel" : { + "name" : "UpdateApnsVoipChannel", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/apps/{application-id}/channels/apns_voip", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateApnsVoipChannelRequest" + }, + "output" : { + "shape" : "UpdateApnsVoipChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "UpdateApnsVoipSandboxChannel" : { + "name" : "UpdateApnsVoipSandboxChannel", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/apps/{application-id}/channels/apns_voip_sandbox", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateApnsVoipSandboxChannelRequest" + }, + "output" : { + "shape" : "UpdateApnsVoipSandboxChannelResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "MethodNotAllowedException" + }, { + "shape" : "TooManyRequestsException" + } ] + }, + "UpdateApplicationSettings" : { + "name" : "UpdateApplicationSettings", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/apps/{application-id}/settings", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateApplicationSettingsRequest" + }, + "output" : { + "shape" : "UpdateApplicationSettingsResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -954,18 +1414,18 @@ "shape" : "TooManyRequestsException" } ] }, - "UpdateApplicationSettings" : { - "name" : "UpdateApplicationSettings", + "UpdateBaiduChannel" : { + "name" : "UpdateBaiduChannel", "http" : { "method" : "PUT", - "requestUri" : "/v1/apps/{application-id}/settings", + "requestUri" : "/v1/apps/{application-id}/channels/baidu", "responseCode" : 200 }, "input" : { - "shape" : "UpdateApplicationSettingsRequest" + "shape" : "UpdateBaiduChannelRequest" }, "output" : { - "shape" : "UpdateApplicationSettingsResponse" + "shape" : "UpdateBaiduChannelResponse" }, "errors" : [ { "shape" : "BadRequestException" @@ -1172,17 +1632,134 @@ } }, "shapes" : { + "ADMChannelRequest" : { + "type" : "structure", + "members" : { + "ClientId" : { + "shape" : "__string" + }, + "ClientSecret" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + } + } + }, + "ADMChannelResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string" + }, + "CreationDate" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + }, + "HasCredential" : { + "shape" : "__boolean" + }, + "Id" : { + "shape" : "__string" + }, + "IsArchived" : { + "shape" : "__boolean" + }, + "LastModifiedBy" : { + "shape" : "__string" + }, + "LastModifiedDate" : { + "shape" : "__string" + }, + "Platform" : { + "shape" : "__string" + }, + "Version" : { + "shape" : "__integer" + } + } + }, + "ADMMessage" : { + "type" : "structure", + "members" : { + "Action" : { + "shape" : "Action" + }, + "Body" : { + "shape" : "__string" + }, + "ConsolidationKey" : { + "shape" : "__string" + }, + "Data" : { + "shape" : "MapOf__string" + }, + "ExpiresAfter" : { + "shape" : "__string" + }, + "IconReference" : { + "shape" : "__string" + }, + "ImageIconUrl" : { + "shape" : "__string" + }, + "ImageUrl" : { + "shape" : "__string" + }, + "MD5" : { + "shape" : "__string" + }, + "RawContent" : { + "shape" : "__string" + }, + "SilentPush" : { + "shape" : "__boolean" + }, + "SmallImageIconUrl" : { + "shape" : "__string" + }, + "Sound" : { + "shape" : "__string" + }, + "Substitutions" : { + "shape" : "MapOfListOf__string" + }, + "Title" : { + "shape" : "__string" + }, + "Url" : { + "shape" : "__string" + } + } + }, "APNSChannelRequest" : { "type" : "structure", "members" : { + "BundleId" : { + "shape" : "__string" + }, "Certificate" : { "shape" : "__string" }, + "DefaultAuthenticationMethod" : { + "shape" : "__string" + }, "Enabled" : { "shape" : "__boolean" }, "PrivateKey" : { "shape" : "__string" + }, + "TeamId" : { + "shape" : "__string" + }, + "TokenKey" : { + "shape" : "__string" + }, + "TokenKeyId" : { + "shape" : "__string" } } }, @@ -1195,9 +1772,18 @@ "CreationDate" : { "shape" : "__string" }, + "DefaultAuthenticationMethod" : { + "shape" : "__string" + }, "Enabled" : { "shape" : "__boolean" }, + "HasCredential" : { + "shape" : "__boolean" + }, + "HasTokenKey" : { + "shape" : "__boolean" + }, "Id" : { "shape" : "__string" }, @@ -1233,12 +1819,21 @@ "Category" : { "shape" : "__string" }, + "CollapseId" : { + "shape" : "__string" + }, "Data" : { "shape" : "MapOf__string" }, "MediaUrl" : { "shape" : "__string" }, + "PreferredAuthenticationMethod" : { + "shape" : "__string" + }, + "Priority" : { + "shape" : "__string" + }, "RawContent" : { "shape" : "__string" }, @@ -1254,6 +1849,9 @@ "ThreadId" : { "shape" : "__string" }, + "TimeToLive" : { + "shape" : "__integer" + }, "Title" : { "shape" : "__string" }, @@ -1265,14 +1863,29 @@ "APNSSandboxChannelRequest" : { "type" : "structure", "members" : { + "BundleId" : { + "shape" : "__string" + }, "Certificate" : { "shape" : "__string" }, + "DefaultAuthenticationMethod" : { + "shape" : "__string" + }, "Enabled" : { "shape" : "__boolean" }, "PrivateKey" : { "shape" : "__string" + }, + "TeamId" : { + "shape" : "__string" + }, + "TokenKey" : { + "shape" : "__string" + }, + "TokenKeyId" : { + "shape" : "__string" } } }, @@ -1285,9 +1898,158 @@ "CreationDate" : { "shape" : "__string" }, + "DefaultAuthenticationMethod" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + }, + "HasCredential" : { + "shape" : "__boolean" + }, + "HasTokenKey" : { + "shape" : "__boolean" + }, + "Id" : { + "shape" : "__string" + }, + "IsArchived" : { + "shape" : "__boolean" + }, + "LastModifiedBy" : { + "shape" : "__string" + }, + "LastModifiedDate" : { + "shape" : "__string" + }, + "Platform" : { + "shape" : "__string" + }, + "Version" : { + "shape" : "__integer" + } + } + }, + "APNSVoipChannelRequest" : { + "type" : "structure", + "members" : { + "BundleId" : { + "shape" : "__string" + }, + "Certificate" : { + "shape" : "__string" + }, + "DefaultAuthenticationMethod" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + }, + "PrivateKey" : { + "shape" : "__string" + }, + "TeamId" : { + "shape" : "__string" + }, + "TokenKey" : { + "shape" : "__string" + }, + "TokenKeyId" : { + "shape" : "__string" + } + } + }, + "APNSVoipChannelResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string" + }, + "CreationDate" : { + "shape" : "__string" + }, + "DefaultAuthenticationMethod" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + }, + "HasCredential" : { + "shape" : "__boolean" + }, + "HasTokenKey" : { + "shape" : "__boolean" + }, + "Id" : { + "shape" : "__string" + }, + "IsArchived" : { + "shape" : "__boolean" + }, + "LastModifiedBy" : { + "shape" : "__string" + }, + "LastModifiedDate" : { + "shape" : "__string" + }, + "Platform" : { + "shape" : "__string" + }, + "Version" : { + "shape" : "__integer" + } + } + }, + "APNSVoipSandboxChannelRequest" : { + "type" : "structure", + "members" : { + "BundleId" : { + "shape" : "__string" + }, + "Certificate" : { + "shape" : "__string" + }, + "DefaultAuthenticationMethod" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + }, + "PrivateKey" : { + "shape" : "__string" + }, + "TeamId" : { + "shape" : "__string" + }, + "TokenKey" : { + "shape" : "__string" + }, + "TokenKeyId" : { + "shape" : "__string" + } + } + }, + "APNSVoipSandboxChannelResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string" + }, + "CreationDate" : { + "shape" : "__string" + }, + "DefaultAuthenticationMethod" : { + "shape" : "__string" + }, "Enabled" : { "shape" : "__boolean" }, + "HasCredential" : { + "shape" : "__boolean" + }, + "HasTokenKey" : { + "shape" : "__boolean" + }, "Id" : { "shape" : "__string" }, @@ -1387,6 +2149,17 @@ } } }, + "ApplicationResponse" : { + "type" : "structure", + "members" : { + "Id" : { + "shape" : "__string" + }, + "Name" : { + "shape" : "__string" + } + } + }, "ApplicationSettingsResource" : { "type" : "structure", "members" : { @@ -1404,6 +2177,17 @@ } } }, + "ApplicationsResponse" : { + "type" : "structure", + "members" : { + "Item" : { + "shape" : "ListOfApplicationResponse" + }, + "NextToken" : { + "shape" : "__string" + } + } + }, "AttributeDimension" : { "type" : "structure", "members" : { @@ -1434,12 +2218,111 @@ "httpStatusCode" : 400 } }, + "BaiduChannelRequest" : { + "type" : "structure", + "members" : { + "ApiKey" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + }, + "SecretKey" : { + "shape" : "__string" + } + } + }, + "BaiduChannelResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string" + }, + "CreationDate" : { + "shape" : "__string" + }, + "Credential" : { + "shape" : "__string" + }, + "Enabled" : { + "shape" : "__boolean" + }, + "HasCredential" : { + "shape" : "__boolean" + }, + "Id" : { + "shape" : "__string" + }, + "IsArchived" : { + "shape" : "__boolean" + }, + "LastModifiedBy" : { + "shape" : "__string" + }, + "LastModifiedDate" : { + "shape" : "__string" + }, + "Platform" : { + "shape" : "__string" + }, + "Version" : { + "shape" : "__integer" + } + } + }, + "BaiduMessage" : { + "type" : "structure", + "members" : { + "Action" : { + "shape" : "Action" + }, + "Body" : { + "shape" : "__string" + }, + "Data" : { + "shape" : "MapOf__string" + }, + "IconReference" : { + "shape" : "__string" + }, + "ImageIconUrl" : { + "shape" : "__string" + }, + "ImageUrl" : { + "shape" : "__string" + }, + "RawContent" : { + "shape" : "__string" + }, + "SilentPush" : { + "shape" : "__boolean" + }, + "SmallImageIconUrl" : { + "shape" : "__string" + }, + "Sound" : { + "shape" : "__string" + }, + "Substitutions" : { + "shape" : "MapOfListOf__string" + }, + "Title" : { + "shape" : "__string" + }, + "Url" : { + "shape" : "__string" + } + } + }, "CampaignEmailMessage" : { "type" : "structure", "members" : { "Body" : { "shape" : "__string" }, + "FromAddress" : { + "shape" : "__string" + }, "HtmlBody" : { "shape" : "__string" }, @@ -1454,6 +2337,12 @@ "Daily" : { "shape" : "__integer" }, + "MaximumDuration" : { + "shape" : "__integer" + }, + "MessagesPerSecond" : { + "shape" : "__integer" + }, "Total" : { "shape" : "__integer" } @@ -1560,7 +2449,35 @@ }, "ChannelType" : { "type" : "string", - "enum" : [ "GCM", "APNS", "APNS_SANDBOX", "ADM", "SMS", "EMAIL" ] + "enum" : [ "GCM", "APNS", "APNS_SANDBOX", "APNS_VOIP", "APNS_VOIP_SANDBOX", "ADM", "SMS", "EMAIL", "BAIDU"] + }, + "CreateAppRequest" : { + "type" : "structure", + "members" : { + "CreateApplicationRequest" : { + "shape" : "CreateApplicationRequest" + } + }, + "required" : [ "CreateApplicationRequest" ], + "payload" : "CreateApplicationRequest" + }, + "CreateAppResponse" : { + "type" : "structure", + "members" : { + "ApplicationResponse" : { + "shape" : "ApplicationResponse" + } + }, + "required" : [ "ApplicationResponse" ], + "payload" : "ApplicationResponse" + }, + "CreateApplicationRequest" : { + "type" : "structure", + "members" : { + "Name" : { + "shape" : "__string" + } + } }, "CreateCampaignRequest" : { "type" : "structure", @@ -1674,6 +2591,27 @@ } } }, + "DeleteAdmChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "DeleteAdmChannelResponse" : { + "type" : "structure", + "members" : { + "ADMChannelResponse" : { + "shape" : "ADMChannelResponse" + } + }, + "required" : [ "ADMChannelResponse" ], + "payload" : "ADMChannelResponse" + }, "DeleteApnsChannelRequest" : { "type" : "structure", "members" : { @@ -1716,6 +2654,90 @@ "required" : [ "APNSSandboxChannelResponse" ], "payload" : "APNSSandboxChannelResponse" }, + "DeleteApnsVoipChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "DeleteApnsVoipChannelResponse" : { + "type" : "structure", + "members" : { + "APNSVoipChannelResponse" : { + "shape" : "APNSVoipChannelResponse" + } + }, + "required" : [ "APNSVoipChannelResponse" ], + "payload" : "APNSVoipChannelResponse" + }, + "DeleteApnsVoipSandboxChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "DeleteApnsVoipSandboxChannelResponse" : { + "type" : "structure", + "members" : { + "APNSVoipSandboxChannelResponse" : { + "shape" : "APNSVoipSandboxChannelResponse" + } + }, + "required" : [ "APNSVoipSandboxChannelResponse" ], + "payload" : "APNSVoipSandboxChannelResponse" + }, + "DeleteAppRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "DeleteAppResponse" : { + "type" : "structure", + "members" : { + "ApplicationResponse" : { + "shape" : "ApplicationResponse" + } + }, + "required" : [ "ApplicationResponse" ], + "payload" : "ApplicationResponse" + }, + "DeleteBaiduChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "DeleteBaiduChannelResponse" : { + "type" : "structure", + "members" : { + "BaiduChannelResponse" : { + "shape" : "BaiduChannelResponse" + } + }, + "required" : [ "BaiduChannelResponse" ], + "payload" : "BaiduChannelResponse" + }, "DeleteCampaignRequest" : { "type" : "structure", "members" : { @@ -1854,7 +2876,7 @@ }, "DeliveryStatus" : { "type" : "string", - "enum" : [ "SUCCESSFUL", "THROTTLED", "TEMPORARY_FAILURE", "PERMANENT_FAILURE" ] + "enum" : [ "SUCCESSFUL", "THROTTLED", "TEMPORARY_FAILURE", "PERMANENT_FAILURE", "UNKNOWN_FAILURE", "OPT_OUT", "DUPLICATE" ] }, "DimensionType" : { "type" : "string", @@ -1863,9 +2885,15 @@ "DirectMessageConfiguration" : { "type" : "structure", "members" : { + "ADMMessage" : { + "shape" : "ADMMessage" + }, "APNSMessage" : { "shape" : "APNSMessage" }, + "BaiduMessage" : { + "shape" : "BaiduMessage" + }, "DefaultMessage" : { "shape" : "DefaultMessage" }, @@ -1916,6 +2944,9 @@ "FromAddress" : { "shape" : "__string" }, + "HasCredential" : { + "shape" : "__boolean" + }, "Id" : { "shape" : "__string" }, @@ -2043,6 +3074,26 @@ } } }, + "EndpointMessageResult" : { + "type" : "structure", + "members" : { + "Address" : { + "shape" : "__string" + }, + "DeliveryStatus" : { + "shape" : "DeliveryStatus" + }, + "StatusCode" : { + "shape" : "__integer" + }, + "StatusMessage" : { + "shape" : "__string" + }, + "UpdatedToken" : { + "shape" : "__string" + } + } + }, "EndpointRequest" : { "type" : "structure", "members" : { @@ -2114,23 +3165,40 @@ "Id" : { "shape" : "__string" }, - "Location" : { - "shape" : "EndpointLocation" - }, - "Metrics" : { - "shape" : "MapOf__double" + "Location" : { + "shape" : "EndpointLocation" + }, + "Metrics" : { + "shape" : "MapOf__double" + }, + "OptOut" : { + "shape" : "__string" + }, + "RequestId" : { + "shape" : "__string" + }, + "User" : { + "shape" : "EndpointUser" + } + } + }, + "EndpointSendConfiguration" : { + "type" : "structure", + "members" : { + "BodyOverride" : { + "shape" : "__string" + }, + "Context" : { + "shape" : "MapOf__string" }, - "OptOut" : { + "RawContent" : { "shape" : "__string" }, - "RequestId" : { - "shape" : "__string" + "Substitutions" : { + "shape" : "MapOfListOf__string" }, - "ShardId" : { + "TitleOverride" : { "shape" : "__string" - }, - "User" : { - "shape" : "EndpointUser" } } }, @@ -2217,6 +3285,9 @@ "Enabled" : { "shape" : "__boolean" }, + "HasCredential" : { + "shape" : "__boolean" + }, "Id" : { "shape" : "__string" }, @@ -2261,6 +3332,9 @@ "ImageUrl" : { "shape" : "__string" }, + "Priority" : { + "shape" : "__string" + }, "RawContent" : { "shape" : "__string" }, @@ -2279,6 +3353,9 @@ "Substitutions" : { "shape" : "MapOfListOf__string" }, + "TimeToLive" : { + "shape" : "__integer" + }, "Title" : { "shape" : "__string" }, @@ -2287,6 +3364,27 @@ } } }, + "GetAdmChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "GetAdmChannelResponse" : { + "type" : "structure", + "members" : { + "ADMChannelResponse" : { + "shape" : "ADMChannelResponse" + } + }, + "required" : [ "ADMChannelResponse" ], + "payload" : "ADMChannelResponse" + }, "GetApnsChannelRequest" : { "type" : "structure", "members" : { @@ -2329,6 +3427,69 @@ "required" : [ "APNSSandboxChannelResponse" ], "payload" : "APNSSandboxChannelResponse" }, + "GetApnsVoipChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "GetApnsVoipChannelResponse" : { + "type" : "structure", + "members" : { + "APNSVoipChannelResponse" : { + "shape" : "APNSVoipChannelResponse" + } + }, + "required" : [ "APNSVoipChannelResponse" ], + "payload" : "APNSVoipChannelResponse" + }, + "GetApnsVoipSandboxChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "GetApnsVoipSandboxChannelResponse" : { + "type" : "structure", + "members" : { + "APNSVoipSandboxChannelResponse" : { + "shape" : "APNSVoipSandboxChannelResponse" + } + }, + "required" : [ "APNSVoipSandboxChannelResponse" ], + "payload" : "APNSVoipSandboxChannelResponse" + }, + "GetAppRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "GetAppResponse" : { + "type" : "structure", + "members" : { + "ApplicationResponse" : { + "shape" : "ApplicationResponse" + } + }, + "required" : [ "ApplicationResponse" ], + "payload" : "ApplicationResponse" + }, "GetApplicationSettingsRequest" : { "type" : "structure", "members" : { @@ -2350,6 +3511,52 @@ "required" : [ "ApplicationSettingsResource" ], "payload" : "ApplicationSettingsResource" }, + "GetAppsRequest" : { + "type" : "structure", + "members" : { + "PageSize" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "page-size" + }, + "Token" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "token" + } + } + }, + "GetAppsResponse" : { + "type" : "structure", + "members" : { + "ApplicationsResponse" : { + "shape" : "ApplicationsResponse" + } + }, + "required" : [ "ApplicationsResponse" ], + "payload" : "ApplicationsResponse" + }, + "GetBaiduChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId" ] + }, + "GetBaiduChannelResponse" : { + "type" : "structure", + "members" : { + "BaiduChannelResponse" : { + "shape" : "BaiduChannelResponse" + } + }, + "required" : [ "BaiduChannelResponse" ], + "payload" : "BaiduChannelResponse" + }, "GetCampaignActivitiesRequest" : { "type" : "structure", "members" : { @@ -2975,6 +4182,12 @@ "shape" : "ActivityResponse" } }, + "ListOfApplicationResponse" : { + "type" : "list", + "member" : { + "shape" : "ApplicationResponse" + } + }, "ListOfCampaignResponse" : { "type" : "list", "member" : { @@ -3035,6 +4248,24 @@ "shape" : "AttributeDimension" } }, + "MapOfEndpointMessageResult" : { + "type" : "map", + "key" : { + "shape" : "__string" + }, + "value" : { + "shape" : "EndpointMessageResult" + } + }, + "MapOfEndpointSendConfiguration" : { + "type" : "map", + "key" : { + "shape" : "__string" + }, + "value" : { + "shape" : "EndpointSendConfiguration" + } + }, "MapOfListOf__string" : { "type" : "map", "key" : { @@ -3044,6 +4275,15 @@ "shape" : "ListOf__string" } }, + "MapOfMapOfEndpointMessageResult" : { + "type" : "map", + "key" : { + "shape" : "__string" + }, + "value" : { + "shape" : "MapOfEndpointMessageResult" + } + }, "MapOfMessageResult" : { "type" : "map", "key" : { @@ -3104,6 +4344,9 @@ "MediaUrl" : { "shape" : "__string" }, + "RawContent" : { + "shape" : "__string" + }, "SilentPush" : { "shape" : "__boolean" }, @@ -3129,9 +4372,15 @@ "MessageConfiguration" : { "type" : "structure", "members" : { + "ADMMessage" : { + "shape" : "Message" + }, "APNSMessage" : { "shape" : "Message" }, + "BaiduMessage" : { + "shape" : "Message" + }, "DefaultMessage" : { "shape" : "Message" }, @@ -3155,6 +4404,9 @@ "Context" : { "shape" : "MapOf__string" }, + "Endpoints" : { + "shape" : "MapOfEndpointSendConfiguration" + }, "MessageConfiguration" : { "shape" : "DirectMessageConfiguration" } @@ -3166,6 +4418,9 @@ "ApplicationId" : { "shape" : "__string" }, + "EndpointResult" : { + "shape" : "MapOfEndpointMessageResult" + }, "RequestId" : { "shape" : "__string" }, @@ -3284,6 +4539,9 @@ }, "SenderId" : { "shape" : "__string" + }, + "ShortCode" : { + "shape" : "__string" } } }, @@ -3299,6 +4557,9 @@ "Enabled" : { "shape" : "__boolean" }, + "HasCredential" : { + "shape" : "__boolean" + }, "Id" : { "shape" : "__string" }, @@ -3519,6 +4780,59 @@ "required" : [ "MessageResponse" ], "payload" : "MessageResponse" }, + "SendUsersMessageRequest" : { + "type" : "structure", + "members" : { + "Context" : { + "shape" : "MapOf__string" + }, + "MessageConfiguration" : { + "shape" : "DirectMessageConfiguration" + }, + "Users" : { + "shape" : "MapOfEndpointSendConfiguration" + } + } + }, + "SendUsersMessageResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string" + }, + "RequestId" : { + "shape" : "__string" + }, + "Result" : { + "shape" : "MapOfMapOfEndpointMessageResult" + } + } + }, + "SendUsersMessagesRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + }, + "SendUsersMessageRequest" : { + "shape" : "SendUsersMessageRequest" + } + }, + "required" : [ "ApplicationId", "SendUsersMessageRequest" ], + "payload" : "SendUsersMessageRequest" + }, + "SendUsersMessagesResponse" : { + "type" : "structure", + "members" : { + "SendUsersMessageResponse" : { + "shape" : "SendUsersMessageResponse" + } + }, + "required" : [ "SendUsersMessageResponse" ], + "payload" : "SendUsersMessageResponse" + }, "SetDimension" : { "type" : "structure", "members" : { @@ -3571,6 +4885,31 @@ } } }, + "UpdateAdmChannelRequest" : { + "type" : "structure", + "members" : { + "ADMChannelRequest" : { + "shape" : "ADMChannelRequest" + }, + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId", "ADMChannelRequest" ], + "payload" : "ADMChannelRequest" + }, + "UpdateAdmChannelResponse" : { + "type" : "structure", + "members" : { + "ADMChannelResponse" : { + "shape" : "ADMChannelResponse" + } + }, + "required" : [ "ADMChannelResponse" ], + "payload" : "ADMChannelResponse" + }, "UpdateApnsChannelRequest" : { "type" : "structure", "members" : { @@ -3621,6 +4960,56 @@ "required" : [ "APNSSandboxChannelResponse" ], "payload" : "APNSSandboxChannelResponse" }, + "UpdateApnsVoipChannelRequest" : { + "type" : "structure", + "members" : { + "APNSVoipChannelRequest" : { + "shape" : "APNSVoipChannelRequest" + }, + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId", "APNSVoipChannelRequest" ], + "payload" : "APNSVoipChannelRequest" + }, + "UpdateApnsVoipChannelResponse" : { + "type" : "structure", + "members" : { + "APNSVoipChannelResponse" : { + "shape" : "APNSVoipChannelResponse" + } + }, + "required" : [ "APNSVoipChannelResponse" ], + "payload" : "APNSVoipChannelResponse" + }, + "UpdateApnsVoipSandboxChannelRequest" : { + "type" : "structure", + "members" : { + "APNSVoipSandboxChannelRequest" : { + "shape" : "APNSVoipSandboxChannelRequest" + }, + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + } + }, + "required" : [ "ApplicationId", "APNSVoipSandboxChannelRequest" ], + "payload" : "APNSVoipSandboxChannelRequest" + }, + "UpdateApnsVoipSandboxChannelResponse" : { + "type" : "structure", + "members" : { + "APNSVoipSandboxChannelResponse" : { + "shape" : "APNSVoipSandboxChannelResponse" + } + }, + "required" : [ "APNSVoipSandboxChannelResponse" ], + "payload" : "APNSVoipSandboxChannelResponse" + }, "UpdateApplicationSettingsRequest" : { "type" : "structure", "members" : { @@ -3646,6 +5035,31 @@ "required" : [ "ApplicationSettingsResource" ], "payload" : "ApplicationSettingsResource" }, + "UpdateBaiduChannelRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "application-id" + }, + "BaiduChannelRequest" : { + "shape" : "BaiduChannelRequest" + } + }, + "required" : [ "ApplicationId", "BaiduChannelRequest" ], + "payload" : "BaiduChannelRequest" + }, + "UpdateBaiduChannelResponse" : { + "type" : "structure", + "members" : { + "BaiduChannelResponse" : { + "shape" : "BaiduChannelResponse" + } + }, + "required" : [ "BaiduChannelResponse" ], + "payload" : "BaiduChannelResponse" + }, "UpdateCampaignRequest" : { "type" : "structure", "members" : { @@ -3946,4 +5360,4 @@ "type" : "timestamp" } } -} \ No newline at end of file +} diff --git a/models/apis/pinpoint/2016-12-01/docs-2.json b/models/apis/pinpoint/2016-12-01/docs-2.json index 269407585a9..9deb2249648 100644 --- a/models/apis/pinpoint/2016-12-01/docs-2.json +++ b/models/apis/pinpoint/2016-12-01/docs-2.json @@ -2,20 +2,32 @@ "version" : "2.0", "service" : null, "operations" : { + "CreateApp" : "Creates or updates an app.", "CreateCampaign" : "Creates or updates a campaign.", "CreateImportJob" : "Creates or updates an import job.", "CreateSegment" : "Used to create or update a segment.", + "DeleteAdmChannel" : "Delete an ADM channel", "DeleteApnsChannel" : "Deletes the APNs channel for an app.", "DeleteApnsSandboxChannel" : "Delete an APNS sandbox channel", + "DeleteApnsVoipChannel" : "Delete an APNS VOIP channel", + "DeleteApnsVoipSandboxChannel" : "Delete an APNS VOIP sandbox channel", + "DeleteApp" : "Deletes an app.", + "DeleteBaiduChannel" : "Delete a BAIDU GCM channel", "DeleteCampaign" : "Deletes a campaign.", "DeleteEmailChannel" : "Delete an email channel", "DeleteEventStream" : "Deletes the event stream for an app.", "DeleteGcmChannel" : "Deletes the GCM channel for an app.", "DeleteSegment" : "Deletes a segment.", "DeleteSmsChannel" : "Delete an SMS channel", + "GetAdmChannel" : "Get an ADM channel", "GetApnsChannel" : "Returns information about the APNs channel for an app.", "GetApnsSandboxChannel" : "Get an APNS sandbox channel", + "GetApnsVoipChannel" : "Get an APNS Voip channel", + "GetApnsVoipSandboxChannel" : "Get an APNS VoipSandbox channel", + "GetApp" : "Returns information about an app.", "GetApplicationSettings" : "Used to request the settings for an app.", + "GetApps" : "Returns information about your apps.", + "GetBaiduChannel" : "Get a BAIDU GCM channel", "GetCampaign" : "Returns information about a campaign.", "GetCampaignActivities" : "Returns information about the activity performed by a campaign.", "GetCampaignVersion" : "Returns information about a specific version of a campaign.", @@ -35,9 +47,14 @@ "GetSmsChannel" : "Get an SMS channel", "PutEventStream" : "Use to create or update the event stream for an app.", "SendMessages" : "Send a batch of messages", + "SendUsersMessages" : "Send a batch of messages to users", + "UpdateAdmChannel" : "Update an ADM channel", "UpdateApnsChannel" : "Use to update the APNs channel for an app.", "UpdateApnsSandboxChannel" : "Update an APNS sandbox channel", + "UpdateApnsVoipChannel" : "Update an APNS VOIP channel", + "UpdateApnsVoipSandboxChannel" : "Update an APNS VOIP sandbox channel", "UpdateApplicationSettings" : "Used to update the settings for an app.", + "UpdateBaiduChannel" : "Update a BAIDU GCM channel", "UpdateCampaign" : "Use to update a campaign.", "UpdateEmailChannel" : "Update an email channel", "UpdateEndpoint" : "Use to update an endpoint.", @@ -47,6 +64,20 @@ "UpdateSmsChannel" : "Update an SMS channel" }, "shapes" : { + "ADMChannelRequest" : { + "base" : "Amazon Device Messaging channel definition.", + "refs" : { } + }, + "ADMChannelResponse" : { + "base" : "Amazon Device Messaging channel definition.", + "refs" : { } + }, + "ADMMessage" : { + "base" : "ADM Message.", + "refs" : { + "DirectMessageConfiguration$ADMMessage" : "The message to ADM channels. Overrides the default push notification message." + } + }, "APNSChannelRequest" : { "base" : "Apple Push Notification Service channel definition.", "refs" : { } @@ -69,10 +100,28 @@ "base" : "Apple Development Push Notification Service channel definition.", "refs" : { } }, + "APNSVoipChannelRequest" : { + "base" : "Apple VOIP Push Notification Service channel definition.", + "refs" : { } + }, + "APNSVoipChannelResponse" : { + "base" : "Apple VOIP Push Notification Service channel definition.", + "refs" : { } + }, + "APNSVoipSandboxChannelRequest" : { + "base" : "Apple VOIP Developer Push Notification Service channel definition.", + "refs" : { } + }, + "APNSVoipSandboxChannelResponse" : { + "base" : "Apple VOIP Developer Push Notification Service channel definition.", + "refs" : { } + }, "Action" : { "base" : null, "refs" : { + "ADMMessage$Action" : "The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL", "APNSMessage$Action" : "The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL", + "BaiduMessage$Action" : "The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL", "DefaultPushNotificationMessage$Action" : "The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL", "GCMMessage$Action" : "The action that occurs if the user taps a push notification delivered by the campaign: OPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action. DEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app. URL - The default mobile browser on the user's device launches and opens a web page at the URL you specify. Possible values include: OPEN_APP | DEEP_LINK | URL", "Message$Action" : "The action that occurs if the user taps a push notification delivered by the campaign:\nOPEN_APP - Your app launches, or it becomes the foreground app if it has been sent to the background. This is the default action.\n\nDEEP_LINK - Uses deep linking features in iOS and Android to open your app and display a designated user interface within the app.\n\nURL - The default mobile browser on the user's device launches and opens a web page at the URL you specify." @@ -94,10 +143,20 @@ "MessageRequest$Addresses" : "A map of destination addresses, with the address as the key(Email address, phone number or push token) and the Address Configuration as the value." } }, + "ApplicationResponse" : { + "base" : "Application Response.", + "refs" : { + "ApplicationsResponse$Item" : "List of applications returned in this page." + } + }, "ApplicationSettingsResource" : { "base" : "Application settings.", "refs" : { } }, + "ApplicationsResponse" : { + "base" : "Get Applications Result.", + "refs" : { } + }, "AttributeDimension" : { "base" : "Custom attibute dimension", "refs" : { @@ -115,6 +174,20 @@ "base" : null, "refs" : { } }, + "BaiduChannelRequest" : { + "base" : "Baidu Cloud Push credentials", + "refs" : { } + }, + "BaiduChannelResponse" : { + "base" : "Baidu Cloud Messaging channel definition", + "refs" : { } + }, + "BaiduMessage" : { + "base" : "Baidu Message.", + "refs" : { + "DirectMessageConfiguration$BaiduMessage" : "The message to Baidu GCM channels. Overrides the default push notification message." + } + }, "CampaignEmailMessage" : { "base" : "The email message configuration.", "refs" : { @@ -163,12 +236,16 @@ "ChannelType" : { "base" : null, "refs" : { - "AddressConfiguration$ChannelType" : "Type of channel of this address", - "EndpointBatchItem$ChannelType" : "The channel type.\n\nValid values: APNS, GCM", - "EndpointRequest$ChannelType" : "The channel type.\n\nValid values: APNS, GCM", - "EndpointResponse$ChannelType" : "The channel type.\n\nValid values: APNS, GCM" + "AddressConfiguration$ChannelType" : "The channel type.\n\nValid values: GCM | APNS | SMS | EMAIL", + "EndpointBatchItem$ChannelType" : "The channel type.\n\nValid values: GCM | APNS | SMS | EMAIL", + "EndpointRequest$ChannelType" : "The channel type.\n\nValid values: GCM | APNS | SMS | EMAIL", + "EndpointResponse$ChannelType" : "The channel type.\n\nValid values: GCM | APNS | SMS | EMAIL" } }, + "CreateApplicationRequest" : { + "base" : "Application Request.", + "refs" : { } + }, "DefaultMessage" : { "base" : "Default Message across push notification, email, and sms.", "refs" : { @@ -184,6 +261,7 @@ "DeliveryStatus" : { "base" : null, "refs" : { + "EndpointMessageResult$DeliveryStatus" : "Delivery status of message.", "MessageResult$DeliveryStatus" : "Delivery status of message." } }, @@ -196,7 +274,8 @@ "DirectMessageConfiguration" : { "base" : "The message configuration.", "refs" : { - "MessageRequest$MessageConfiguration" : "Message configuration." + "MessageRequest$MessageConfiguration" : "Message configuration.", + "SendUsersMessageRequest$MessageConfiguration" : "Message configuration." } }, "Duration" : { @@ -239,6 +318,13 @@ "EndpointResponse$Location" : "The endpoint location attributes." } }, + "EndpointMessageResult" : { + "base" : "The result from sending a message to an endpoint.", + "refs" : { + "MessageResponse$EndpointResult" : "A map containing a multi part response for each address, with the endpointId as the key and the result as the value.", + "SendUsersMessageResponse$Result" : "A map containing of UserId to Map of EndpointId to Endpoint Message Result." + } + }, "EndpointRequest" : { "base" : "Endpoint update request", "refs" : { } @@ -247,6 +333,13 @@ "base" : "Endpoint response", "refs" : { } }, + "EndpointSendConfiguration" : { + "base" : "Endpoint send configuration.", + "refs" : { + "MessageRequest$Endpoints" : "A map of destination addresses, with the address as the key(Email address, phone number or push token) and the Address Configuration as the value.", + "SendUsersMessageRequest$Users" : "A map of destination endpoints, with the EndpointId as the key Endpoint Message Configuration as the value." + } + }, "EndpointUser" : { "base" : "Endpoint user specific custom userAttributes", "refs" : { @@ -325,6 +418,10 @@ "base" : null, "refs" : { } }, + "ListOfApplicationResponse" : { + "base" : null, + "refs" : { } + }, "ListOfCampaignResponse" : { "base" : null, "refs" : { } @@ -361,10 +458,22 @@ "base" : null, "refs" : { } }, + "MapOfEndpointMessageResult" : { + "base" : null, + "refs" : { } + }, + "MapOfEndpointSendConfiguration" : { + "base" : null, + "refs" : { } + }, "MapOfListOf__string" : { "base" : null, "refs" : { } }, + "MapOfMapOfEndpointMessageResult" : { + "base" : null, + "refs" : { } + }, "MapOfMessageResult" : { "base" : null, "refs" : { } @@ -384,7 +493,9 @@ "Message" : { "base" : null, "refs" : { + "MessageConfiguration$ADMMessage" : "The message that the campaign delivers to ADM channels. Overrides the default message.", "MessageConfiguration$APNSMessage" : "The message that the campaign delivers to APNS channels. Overrides the default message.", + "MessageConfiguration$BaiduMessage" : "The message that the campaign delivers to Baidu channels. Overrides the default message.", "MessageConfiguration$DefaultMessage" : "The default message for all channels.", "MessageConfiguration$GCMMessage" : "The message that the campaign delivers to GCM channels. Overrides the default message." } @@ -521,6 +632,14 @@ "base" : "Segments in your account.", "refs" : { } }, + "SendUsersMessageRequest" : { + "base" : "Send message request.", + "refs" : { } + }, + "SendUsersMessageResponse" : { + "base" : "User send message response.", + "refs" : { } + }, "SetDimension" : { "base" : "Dimension specification of a segment.", "refs" : { @@ -568,20 +687,46 @@ "__boolean" : { "base" : null, "refs" : { + "ADMChannelRequest$Enabled" : "If the channel is enabled for sending messages.", + "ADMChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "ADMChannelResponse$HasCredential" : "If the channel is registered with a credential for authentication.", + "ADMChannelResponse$IsArchived" : "Is this channel archived", + "ADMMessage$SilentPush" : "Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases.", "APNSChannelRequest$Enabled" : "If the channel is enabled for sending messages.", "APNSChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "APNSChannelResponse$HasCredential" : "If the channel is registered with a credential for authentication.", + "APNSChannelResponse$HasTokenKey" : "If the channel is registered with a token key for authentication.", "APNSChannelResponse$IsArchived" : "Is this channel archived", "APNSMessage$SilentPush" : "Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases.", "APNSSandboxChannelRequest$Enabled" : "If the channel is enabled for sending messages.", "APNSSandboxChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "APNSSandboxChannelResponse$HasCredential" : "If the channel is registered with a credential for authentication.", + "APNSSandboxChannelResponse$HasTokenKey" : "If the channel is registered with a token key for authentication.", "APNSSandboxChannelResponse$IsArchived" : "Is this channel archived", + "APNSVoipChannelRequest$Enabled" : "If the channel is enabled for sending messages.", + "APNSVoipChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "APNSVoipChannelResponse$HasCredential" : "If the channel is registered with a credential for authentication.", + "APNSVoipChannelResponse$HasTokenKey" : "If the channel is registered with a token key for authentication.", + "APNSVoipChannelResponse$IsArchived" : "Is this channel archived", + "APNSVoipSandboxChannelRequest$Enabled" : "If the channel is enabled for sending messages.", + "APNSVoipSandboxChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "APNSVoipSandboxChannelResponse$HasCredential" : "If the channel is registered with a credential for authentication.", + "APNSVoipSandboxChannelResponse$HasTokenKey" : "If the channel is registered with a token key for authentication.", + "APNSVoipSandboxChannelResponse$IsArchived" : "Is this channel archived", + "BaiduChannelRequest$Enabled" : "If the channel is enabled for sending messages.", + "BaiduChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "BaiduChannelResponse$HasCredential" : "If the channel is registered with a credential for authentication.", + "BaiduChannelResponse$IsArchived" : "Is this channel archived", + "BaiduMessage$SilentPush" : "Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases.", "CampaignResponse$IsPaused" : "Indicates whether the campaign is paused. A paused campaign does not send messages unless you resume it by setting IsPaused to false.", "DefaultPushNotificationMessage$SilentPush" : "Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases.", "EmailChannelRequest$Enabled" : "If the channel is enabled for sending messages.", "EmailChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "EmailChannelResponse$HasCredential" : "If the channel is registered with a credential for authentication.", "EmailChannelResponse$IsArchived" : "Is this channel archived", "GCMChannelRequest$Enabled" : "If the channel is enabled for sending messages.", "GCMChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "GCMChannelResponse$HasCredential" : "If the channel is registered with a credential for authentication.", "GCMChannelResponse$IsArchived" : "Is this channel archived", "GCMMessage$SilentPush" : "Indicates if the message should display on the users device. Silent pushes can be used for Remote Configuration and Phone Home use cases.", "ImportJobRequest$DefineSegment" : "Sets whether the endpoints create a segment when they are imported.", @@ -591,6 +736,7 @@ "Message$SilentPush" : "Indicates if the message should display on the users device.\n\nSilent pushes can be used for Remote Configuration and Phone Home use cases. ", "SMSChannelRequest$Enabled" : "If the channel is enabled for sending messages.", "SMSChannelResponse$Enabled" : "If the channel is enabled for sending messages.", + "SMSChannelResponse$HasCredential" : "If the channel is registered with a credential for authentication.", "SMSChannelResponse$IsArchived" : "Is this channel archived", "Schedule$IsLocalTime" : "Indicates whether the campaign schedule takes effect according to each user's local time.", "WriteCampaignRequest$IsPaused" : "Indicates whether the campaign is paused. A paused campaign does not send messages unless you resume it by setting IsPaused to false." @@ -606,20 +752,29 @@ "__integer" : { "base" : null, "refs" : { + "ADMChannelResponse$Version" : "Version of channel", "APNSChannelResponse$Version" : "Version of channel", "APNSMessage$Badge" : "Include this key when you want the system to modify the badge of your app icon. If this key is not included in the dictionary, the badge is not changed. To remove the badge, set the value of this key to 0.", + "APNSMessage$TimeToLive" : "This parameter specifies how long (in seconds) the message should be kept if APNS is unable to deliver the notification the first time. If the value is 0, APNS treats the notification as if it expires immediately and does not store the notification or attempt to redeliver it. This value is converted to the expiration field when sent to APNS", "APNSSandboxChannelResponse$Version" : "Version of channel", + "APNSVoipChannelResponse$Version" : "Version of channel", + "APNSVoipSandboxChannelResponse$Version" : "Version of channel", "ActivityResponse$SuccessfulEndpointCount" : "The total number of endpoints to which the campaign successfully delivered messages.", "ActivityResponse$TimezonesCompletedCount" : "The total number of timezones completed.", "ActivityResponse$TimezonesTotalCount" : "The total number of unique timezones present in the segment.", "ActivityResponse$TotalEndpointCount" : "The total number of endpoints to which the campaign attempts to deliver messages.", + "BaiduChannelResponse$Version" : "Version of channel", "CampaignLimits$Daily" : "The maximum number of messages that the campaign can send daily.", + "CampaignLimits$MaximumDuration" : "The maximum duration of a campaign from the scheduled start. Must be a minimum of 60 seconds.", + "CampaignLimits$MessagesPerSecond" : "The maximum number of messages per second that the campaign will send. This is a best effort maximum cap and can go as high as 20000 and as low as 50", "CampaignLimits$Total" : "The maximum total number of messages that the campaign can send.", "CampaignResponse$HoldoutPercent" : "The allocated percentage of end users who will not receive messages from this campaign.", "CampaignResponse$SegmentVersion" : "The version of the segment to which the campaign sends messages.", "CampaignResponse$Version" : "The campaign version number.", "EmailChannelResponse$Version" : "Version of channel", + "EndpointMessageResult$StatusCode" : "Downstream service status code.", "GCMChannelResponse$Version" : "Version of channel", + "GCMMessage$TimeToLive" : "This parameter specifies how long (in seconds) the message should be kept in GCM storage if the device is offline. The maximum time to live supported is 4 weeks, and the default value is 4 weeks.", "ImportJobResponse$CompletedPieces" : "The number of pieces that have successfully imported as of the time of the request.", "ImportJobResponse$FailedPieces" : "The number of pieces that have failed to import as of the time of the request.", "ImportJobResponse$TotalFailures" : "The number of endpoints that failed to import; for example, because of syntax errors.", @@ -638,30 +793,93 @@ "__string" : { "base" : null, "refs" : { + "ADMChannelRequest$ClientId" : "Client ID as gotten from Amazon", + "ADMChannelRequest$ClientSecret" : "Client secret as gotten from Amazon", + "ADMChannelResponse$ApplicationId" : "Application id", + "ADMChannelResponse$CreationDate" : "When was this segment created", + "ADMChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", + "ADMChannelResponse$LastModifiedBy" : "Who last updated this entry", + "ADMChannelResponse$LastModifiedDate" : "Last date this was updated", + "ADMChannelResponse$Platform" : "Platform type. Will be \"ADM\"", + "ADMMessage$Body" : "The message body of the notification, the email body or the text message.", + "ADMMessage$ConsolidationKey" : "Optional. Arbitrary string used to indicate multiple messages are logically the same and that ADM is allowed to drop previously enqueued messages in favor of this one.", + "ADMMessage$ExpiresAfter" : "Optional. Number of seconds ADM should retain the message if the device is offline", + "ADMMessage$IconReference" : "The icon image name of the asset saved in your application.", + "ADMMessage$ImageIconUrl" : "The URL that points to an image used as the large icon to the notification content view.", + "ADMMessage$ImageUrl" : "The URL that points to an image used in the push notification.", + "ADMMessage$MD5" : "Optional. Base-64-encoded MD5 checksum of the data parameter. Used to verify data integrity", + "ADMMessage$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", + "ADMMessage$SmallImageIconUrl" : "The URL that points to an image used as the small icon for the notification which will be used to represent the notification in the status bar and content view", + "ADMMessage$Sound" : "Indicates a sound to play when the device receives the notification. Supports default, or the filename of a sound resource bundled in the app. Android sound files must reside in /res/raw/", + "ADMMessage$Title" : "The message title that displays above the message on the user's device.", + "ADMMessage$Url" : "The URL to open in the user's mobile browser. Used if the value for Action is URL.", + "APNSChannelRequest$BundleId" : "The bundle id used for APNs Tokens.", "APNSChannelRequest$Certificate" : "The distribution certificate from Apple.", + "APNSChannelRequest$DefaultAuthenticationMethod" : "The default authentication method used for APNs.", "APNSChannelRequest$PrivateKey" : "The certificate private key.", + "APNSChannelRequest$TeamId" : "The team id used for APNs Tokens.", + "APNSChannelRequest$TokenKey" : "The token key used for APNs Tokens.", + "APNSChannelRequest$TokenKeyId" : "The token key used for APNs Tokens.", "APNSChannelResponse$ApplicationId" : "The ID of the application to which the channel applies.", "APNSChannelResponse$CreationDate" : "When was this segment created", - "APNSChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", + "APNSChannelResponse$DefaultAuthenticationMethod" : "The default authentication method used for APNs.", + "APNSChannelResponse$Id" : "Channel ID. Not used. Present only for backwards compatibility.", "APNSChannelResponse$LastModifiedBy" : "Who last updated this entry", "APNSChannelResponse$LastModifiedDate" : "Last date this was updated", "APNSChannelResponse$Platform" : "The platform type. Will be APNS.", "APNSMessage$Body" : "The message body of the notification, the email body or the text message.", "APNSMessage$Category" : "Provide this key with a string value that represents the notification's type. This value corresponds to the value in the identifier property of one of your app's registered categories.", + "APNSMessage$CollapseId" : "Multiple notifications with the same collapse identifier are displayed to the user as a single notification. The value of this key must not exceed 64 bytes.", "APNSMessage$MediaUrl" : "The URL that points to a video used in the push notification.", + "APNSMessage$PreferredAuthenticationMethod" : "The preferred authentication method, either \"CERTIFICATE\" or \"TOKEN\"", + "APNSMessage$Priority" : "Is this a transaction priority message or lower priority.", "APNSMessage$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", "APNSMessage$Sound" : "Include this key when you want the system to play a sound. The value of this key is the name of a sound file in your app's main bundle or in the Library/Sounds folder of your app's data container. If the sound file cannot be found, or if you specify defaultfor the value, the system plays the default alert sound.", "APNSMessage$ThreadId" : "Provide this key with a string value that represents the app-specific identifier for grouping notifications. If you provide a Notification Content app extension, you can use this value to group your notifications together.", "APNSMessage$Title" : "The message title that displays above the message on the user's device.", "APNSMessage$Url" : "The URL to open in the user's mobile browser. Used if the value for Action is URL.", + "APNSSandboxChannelRequest$BundleId" : "The bundle id used for APNs Tokens.", "APNSSandboxChannelRequest$Certificate" : "The distribution certificate from Apple.", + "APNSSandboxChannelRequest$DefaultAuthenticationMethod" : "The default authentication method used for APNs.", "APNSSandboxChannelRequest$PrivateKey" : "The certificate private key.", + "APNSSandboxChannelRequest$TeamId" : "The team id used for APNs Tokens.", + "APNSSandboxChannelRequest$TokenKey" : "The token key used for APNs Tokens.", + "APNSSandboxChannelRequest$TokenKeyId" : "The token key used for APNs Tokens.", "APNSSandboxChannelResponse$ApplicationId" : "Application id", "APNSSandboxChannelResponse$CreationDate" : "When was this segment created", + "APNSSandboxChannelResponse$DefaultAuthenticationMethod" : "The default authentication method used for APNs.", "APNSSandboxChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", "APNSSandboxChannelResponse$LastModifiedBy" : "Who last updated this entry", "APNSSandboxChannelResponse$LastModifiedDate" : "Last date this was updated", - "APNSSandboxChannelResponse$Platform" : "The platform type. Will be APNS.", + "APNSSandboxChannelResponse$Platform" : "The platform type. Will be APNS_SANDBOX.", + "APNSVoipChannelRequest$BundleId" : "The bundle id used for APNs Tokens.", + "APNSVoipChannelRequest$Certificate" : "The distribution certificate from Apple.", + "APNSVoipChannelRequest$DefaultAuthenticationMethod" : "The default authentication method used for APNs.", + "APNSVoipChannelRequest$PrivateKey" : "The certificate private key.", + "APNSVoipChannelRequest$TeamId" : "The team id used for APNs Tokens.", + "APNSVoipChannelRequest$TokenKey" : "The token key used for APNs Tokens.", + "APNSVoipChannelRequest$TokenKeyId" : "The token key used for APNs Tokens.", + "APNSVoipChannelResponse$ApplicationId" : "Application id", + "APNSVoipChannelResponse$CreationDate" : "When was this segment created", + "APNSVoipChannelResponse$DefaultAuthenticationMethod" : "The default authentication method used for APNs.", + "APNSVoipChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", + "APNSVoipChannelResponse$LastModifiedBy" : "Who made the last change", + "APNSVoipChannelResponse$LastModifiedDate" : "Last date this was updated", + "APNSVoipChannelResponse$Platform" : "The platform type. Will be APNS.", + "APNSVoipSandboxChannelRequest$BundleId" : "The bundle id used for APNs Tokens.", + "APNSVoipSandboxChannelRequest$Certificate" : "The distribution certificate from Apple.", + "APNSVoipSandboxChannelRequest$DefaultAuthenticationMethod" : "The default authentication method used for APNs.", + "APNSVoipSandboxChannelRequest$PrivateKey" : "The certificate private key.", + "APNSVoipSandboxChannelRequest$TeamId" : "The team id used for APNs Tokens.", + "APNSVoipSandboxChannelRequest$TokenKey" : "The token key used for APNs Tokens.", + "APNSVoipSandboxChannelRequest$TokenKeyId" : "The token key used for APNs Tokens.", + "APNSVoipSandboxChannelResponse$ApplicationId" : "Application id", + "APNSVoipSandboxChannelResponse$CreationDate" : "When was this segment created", + "APNSVoipSandboxChannelResponse$DefaultAuthenticationMethod" : "The default authentication method used for APNs.", + "APNSVoipSandboxChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", + "APNSVoipSandboxChannelResponse$LastModifiedBy" : "Who made the last change", + "APNSVoipSandboxChannelResponse$LastModifiedDate" : "Last date this was updated", + "APNSVoipSandboxChannelResponse$Platform" : "The platform type. Will be APNS.", "ActivityResponse$ApplicationId" : "The ID of the application to which the campaign applies.", "ActivityResponse$CampaignId" : "The ID of the campaign to which the activity applies.", "ActivityResponse$End" : "The actual time the activity was marked CANCELLED or COMPLETED. Provided in ISO 8601 format.", @@ -674,9 +892,31 @@ "AddressConfiguration$BodyOverride" : "Body override. If specified will override default body.", "AddressConfiguration$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", "AddressConfiguration$TitleOverride" : "Title override. If specified will override default title if applicable.", + "ApplicationResponse$Id" : "The unique application ID.", + "ApplicationResponse$Name" : "The display name of the application.", "ApplicationSettingsResource$ApplicationId" : "The unique ID for the application.", "ApplicationSettingsResource$LastModifiedDate" : "The date that the settings were last updated in ISO 8601 format.", + "ApplicationsResponse$NextToken" : "The string that you use in a subsequent request to get the next page of results in a paginated response.", + "BaiduChannelRequest$ApiKey" : "Platform credential API key from Baidu.", + "BaiduChannelRequest$SecretKey" : "Platform credential Secret key from Baidu.", + "BaiduChannelResponse$ApplicationId" : "Application id", + "BaiduChannelResponse$CreationDate" : "When was this segment created", + "BaiduChannelResponse$Credential" : "The Baidu API key from Baidu.", + "BaiduChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", + "BaiduChannelResponse$LastModifiedBy" : "Who made the last change", + "BaiduChannelResponse$LastModifiedDate" : "Last date this was updated", + "BaiduChannelResponse$Platform" : "The platform type. Will be BAIDU", + "BaiduMessage$Body" : "The message body of the notification, the email body or the text message.", + "BaiduMessage$IconReference" : "The icon image name of the asset saved in your application.", + "BaiduMessage$ImageIconUrl" : "The URL that points to an image used as the large icon to the notification content view.", + "BaiduMessage$ImageUrl" : "The URL that points to an image used in the push notification.", + "BaiduMessage$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", + "BaiduMessage$SmallImageIconUrl" : "The URL that points to an image used as the small icon for the notification which will be used to represent the notification in the status bar and content view", + "BaiduMessage$Sound" : "Indicates a sound to play when the device receives the notification. Supports default, or the filename of a sound resource bundled in the app. Android sound files must reside in /res/raw/", + "BaiduMessage$Title" : "The message title that displays above the message on the user's device.", + "BaiduMessage$Url" : "The URL to open in the user's mobile browser. Used if the value for Action is URL.", "CampaignEmailMessage$Body" : "The email text body.", + "CampaignEmailMessage$FromAddress" : "The email address used to send the email from. Defaults to use FromAddress specified in the Email Channel.", "CampaignEmailMessage$HtmlBody" : "The email html body.", "CampaignEmailMessage$Title" : "The email title (Or subject).", "CampaignResponse$ApplicationId" : "The ID of the application to which the campaign applies.", @@ -691,6 +931,7 @@ "CampaignSmsMessage$Body" : "The SMS text body.", "CampaignSmsMessage$SenderId" : "Sender ID of sent message.", "CampaignsResponse$NextToken" : "The string that you use in a subsequent request to get the next page of results in a paginated response.", + "CreateApplicationRequest$Name" : "The display name of the application. Used in the Amazon Pinpoint console.", "DefaultMessage$Body" : "The message body of the notification, the email body or the text message.", "DefaultPushNotificationMessage$Body" : "The message body of the notification, the email body or the text message.", "DefaultPushNotificationMessage$Title" : "The message title that displays above the message on the user's device.", @@ -698,7 +939,7 @@ "EmailChannelRequest$FromAddress" : "The email address used to send emails from.", "EmailChannelRequest$Identity" : "The ARN of an identity verified with SES.", "EmailChannelRequest$RoleArn" : "The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service", - "EmailChannelResponse$ApplicationId" : "Application id", + "EmailChannelResponse$ApplicationId" : "The unique ID of the application to which the email channel belongs.", "EmailChannelResponse$CreationDate" : "The date that the settings were last updated in ISO 8601 format.", "EmailChannelResponse$FromAddress" : "The email address used to send emails from.", "EmailChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", @@ -711,7 +952,7 @@ "EndpointBatchItem$EffectiveDate" : "The last time the endpoint was updated. Provided in ISO 8601 format.", "EndpointBatchItem$EndpointStatus" : "The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated.", "EndpointBatchItem$Id" : "The unique Id for the Endpoint in the batch.", - "EndpointBatchItem$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL – User receives all messages.\nNONE – User receives no messages.", + "EndpointBatchItem$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL - User has opted out of all messages.\n\nNONE - Users has not opted out and receives all messages.", "EndpointBatchItem$RequestId" : "The unique ID for the most recent request to update the endpoint.", "EndpointDemographic$AppVersion" : "The version of the application associated with the endpoint.", "EndpointDemographic$Locale" : "The endpoint locale in the following format: The ISO 639-1 alpha-2 code, followed by an underscore, followed by an ISO 3166-1 alpha-2 value.\n", @@ -725,10 +966,13 @@ "EndpointLocation$Country" : "Country according to ISO 3166-1 Alpha-2 codes. For example, US.", "EndpointLocation$PostalCode" : "The postal code or zip code of the endpoint.", "EndpointLocation$Region" : "The region of the endpoint location. For example, corresponds to a state in US.", + "EndpointMessageResult$Address" : "Address that endpoint message was delivered to.", + "EndpointMessageResult$StatusMessage" : "Status message for message delivery.", + "EndpointMessageResult$UpdatedToken" : "If token was updated as part of delivery. (This is GCM Specific)", "EndpointRequest$Address" : "The address or token of the endpoint as provided by your push provider (e.g. DeviceToken or RegistrationId).", "EndpointRequest$EffectiveDate" : "The last time the endpoint was updated. Provided in ISO 8601 format.", "EndpointRequest$EndpointStatus" : "The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated.", - "EndpointRequest$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL – User receives all messages.\nNONE – User receives no messages.", + "EndpointRequest$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL - User has opted out of all messages.\n\nNONE - Users has not opted out and receives all messages.", "EndpointRequest$RequestId" : "The unique ID for the most recent request to update the endpoint.", "EndpointResponse$Address" : "The address or token of the endpoint as provided by your push provider (e.g. DeviceToken or RegistrationId).", "EndpointResponse$ApplicationId" : "The ID of the application associated with the endpoint.", @@ -737,8 +981,11 @@ "EndpointResponse$EffectiveDate" : "The last time the endpoint was updated. Provided in ISO 8601 format.", "EndpointResponse$EndpointStatus" : "The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set to ACTIVE if the address is updated.", "EndpointResponse$Id" : "The unique ID that you assigned to the endpoint. The ID should be a globally unique identifier (GUID) to ensure that it is unique compared to all other endpoints for the application.", - "EndpointResponse$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL – User receives all messages.\nNONE – User receives no messages.", + "EndpointResponse$OptOut" : "Indicates whether a user has opted out of receiving messages with one of the following values:\n\nALL - User has opted out of all messages.\n\nNONE - Users has not opted out and receives all messages.", "EndpointResponse$RequestId" : "The unique ID for the most recent request to update the endpoint.", + "EndpointSendConfiguration$BodyOverride" : "Body override. If specified will override default body.", + "EndpointSendConfiguration$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", + "EndpointSendConfiguration$TitleOverride" : "Title override. If specified will override default title if applicable.", "EndpointUser$UserId" : "The unique ID of the user.", "EventStream$ApplicationId" : "The ID of the application from which events should be published.", "EventStream$DestinationStreamArn" : "The Amazon Resource Name (ARN) of the Amazon Kinesis stream or Firehose delivery stream to which you want to publish events.\n Firehose ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream/STREAM_NAME\n Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME", @@ -750,7 +997,7 @@ "GCMChannelResponse$ApplicationId" : "The ID of the application to which the channel applies.", "GCMChannelResponse$CreationDate" : "When was this segment created", "GCMChannelResponse$Credential" : "The GCM API key from Google.", - "GCMChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", + "GCMChannelResponse$Id" : "Channel ID. Not used. Present only for backwards compatibility.", "GCMChannelResponse$LastModifiedBy" : "Who last updated this entry", "GCMChannelResponse$LastModifiedDate" : "Last date this was updated", "GCMChannelResponse$Platform" : "The platform type. Will be GCM", @@ -759,6 +1006,7 @@ "GCMMessage$IconReference" : "The icon image name of the asset saved in your application.", "GCMMessage$ImageIconUrl" : "The URL that points to an image used as the large icon to the notification content view.", "GCMMessage$ImageUrl" : "The URL that points to an image used in the push notification.", + "GCMMessage$Priority" : "Is this a transaction priority message or lower priority.", "GCMMessage$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", "GCMMessage$RestrictedPackageName" : "This parameter specifies the package name of the application where the registration tokens must match in order to receive the message.", "GCMMessage$SmallImageIconUrl" : "The URL that points to an image used as the small icon for the notification which will be used to represent the notification in the status bar and content view", @@ -787,6 +1035,7 @@ "Message$ImageUrl" : "The URL that points to an image used in the push notification.", "Message$JsonBody" : "The JSON payload used for a silent push.", "Message$MediaUrl" : "The URL that points to the media resource, for example a .mp4 or .gif file.", + "Message$RawContent" : "The Raw JSON formatted string to be used as the payload. This value overrides the message.", "Message$Title" : "The message title that displays above the message on the user's device.", "Message$Url" : "The URL to open in the user's mobile browser. Used if the value for Action is URL.", "MessageBody$Message" : "The error message returned from the API.", @@ -798,7 +1047,8 @@ "QuietTime$End" : "The default end time for quiet time in ISO 8601 format.", "QuietTime$Start" : "The default start time for quiet time in ISO 8601 format.", "SMSChannelRequest$SenderId" : "Sender identifier of your messages.", - "SMSChannelResponse$ApplicationId" : "Application id", + "SMSChannelRequest$ShortCode" : "ShortCode registered with phone provider.", + "SMSChannelResponse$ApplicationId" : "The unique ID of the application to which the SMS channel belongs.", "SMSChannelResponse$CreationDate" : "The date that the settings were last updated in ISO 8601 format.", "SMSChannelResponse$Id" : "Channel ID. Not used, only for backwards compatibility.", "SMSChannelResponse$LastModifiedBy" : "Who last updated this entry", @@ -820,6 +1070,8 @@ "SegmentResponse$LastModifiedDate" : "The date the segment was last updated in ISO 8601 format.", "SegmentResponse$Name" : "The name of segment", "SegmentsResponse$NextToken" : "An identifier used to retrieve the next page of results. The token is null if no additional pages exist.", + "SendUsersMessageResponse$ApplicationId" : "Application id of the message.", + "SendUsersMessageResponse$RequestId" : "Original request Id for which this message was delivered.", "TreatmentResource$Id" : "The unique treatment ID.", "TreatmentResource$TreatmentDescription" : "A custom description for the treatment.", "TreatmentResource$TreatmentName" : "The custom name of a variation of the campaign used for A/B testing.", @@ -840,4 +1092,4 @@ } } } -} \ No newline at end of file +} diff --git a/models/apis/polly/2016-06-10/api-2.json b/models/apis/polly/2016-06-10/api-2.json index 5db81e88b85..15f501283b0 100644 --- a/models/apis/polly/2016-06-10/api-2.json +++ b/models/apis/polly/2016-06-10/api-2.json @@ -5,6 +5,7 @@ "endpointPrefix":"polly", "protocol":"rest-json", "serviceFullName":"Amazon Polly", + "serviceId":"Polly", "signatureVersion":"v4", "uid":"polly-2016-06-10" }, @@ -224,6 +225,7 @@ "fr-FR", "is-IS", "it-IT", + "ko-KR", "ja-JP", "nb-NO", "nl-NL", @@ -498,6 +500,7 @@ "Justin", "Kendra", "Kimberly", + "Matthew", "Salli", "Conchita", "Enrique", @@ -527,7 +530,10 @@ "Tatyana", "Astrid", "Filiz", - "Vicki" + "Vicki", + "Takumi", + "Seoyeon", + "Aditi" ] }, "VoiceList":{ diff --git a/models/apis/pricing/2017-10-15/api-2.json b/models/apis/pricing/2017-10-15/api-2.json new file mode 100644 index 00000000000..55a069d19cc --- /dev/null +++ b/models/apis/pricing/2017-10-15/api-2.json @@ -0,0 +1,227 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-10-15", + "endpointPrefix":"api.pricing", + "jsonVersion":"1.1", + "protocol":"json", + "serviceAbbreviation":"AWS Pricing", + "serviceFullName":"AWS Price List Service", + "signatureVersion":"v4", + "signingName":"pricing", + "targetPrefix":"AWSPriceListService", + "uid":"pricing-2017-10-15" + }, + "operations":{ + "DescribeServices":{ + "name":"DescribeServices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeServicesRequest"}, + "output":{"shape":"DescribeServicesResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ExpiredNextTokenException"} + ] + }, + "GetAttributeValues":{ + "name":"GetAttributeValues", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAttributeValuesRequest"}, + "output":{"shape":"GetAttributeValuesResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ExpiredNextTokenException"} + ] + }, + "GetProducts":{ + "name":"GetProducts", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetProductsRequest"}, + "output":{"shape":"GetProductsResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ExpiredNextTokenException"} + ] + } + }, + "shapes":{ + "AttributeNameList":{ + "type":"list", + "member":{"shape":"String"} + }, + "AttributeValue":{ + "type":"structure", + "members":{ + "Value":{"shape":"String"} + } + }, + "AttributeValueList":{ + "type":"list", + "member":{"shape":"AttributeValue"} + }, + "BoxedInteger":{ + "type":"integer", + "max":100, + "min":1 + }, + "DescribeServicesRequest":{ + "type":"structure", + "members":{ + "ServiceCode":{"shape":"String"}, + "FormatVersion":{"shape":"String"}, + "NextToken":{"shape":"String"}, + "MaxResults":{ + "shape":"BoxedInteger", + "box":true + } + } + }, + "DescribeServicesResponse":{ + "type":"structure", + "members":{ + "Services":{"shape":"ServiceList"}, + "FormatVersion":{"shape":"String"}, + "NextToken":{"shape":"String"} + } + }, + "ExpiredNextTokenException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true + }, + "Filter":{ + "type":"structure", + "required":[ + "Type", + "Field", + "Value" + ], + "members":{ + "Type":{"shape":"FilterType"}, + "Field":{"shape":"String"}, + "Value":{"shape":"String"} + } + }, + "FilterType":{ + "type":"string", + "enum":["TERM_MATCH"] + }, + "Filters":{ + "type":"list", + "member":{"shape":"Filter"} + }, + "GetAttributeValuesRequest":{ + "type":"structure", + "required":[ + "ServiceCode", + "AttributeName" + ], + "members":{ + "ServiceCode":{"shape":"String"}, + "AttributeName":{"shape":"String"}, + "NextToken":{"shape":"String"}, + "MaxResults":{ + "shape":"BoxedInteger", + "box":true + } + } + }, + "GetAttributeValuesResponse":{ + "type":"structure", + "members":{ + "AttributeValues":{"shape":"AttributeValueList"}, + "NextToken":{"shape":"String"} + } + }, + "GetProductsRequest":{ + "type":"structure", + "members":{ + "ServiceCode":{"shape":"String"}, + "Filters":{"shape":"Filters"}, + "FormatVersion":{"shape":"String"}, + "NextToken":{"shape":"String"}, + "MaxResults":{ + "shape":"BoxedInteger", + "box":true + } + } + }, + "GetProductsResponse":{ + "type":"structure", + "members":{ + "FormatVersion":{"shape":"String"}, + "PriceList":{"shape":"PriceList"}, + "NextToken":{"shape":"String"} + } + }, + "InternalErrorException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true + }, + "InvalidNextTokenException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true + }, + "NotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true + }, + "PriceList":{ + "type":"list", + "member":{ + "shape":"PriceListItemJSON", + "jsonvalue":true + } + }, + "PriceListItemJSON":{"type":"string"}, + "Service":{ + "type":"structure", + "members":{ + "ServiceCode":{"shape":"String"}, + "AttributeNames":{"shape":"AttributeNameList"} + } + }, + "ServiceList":{ + "type":"list", + "member":{"shape":"Service"} + }, + "String":{"type":"string"}, + "errorMessage":{"type":"string"} + } +} diff --git a/models/apis/pricing/2017-10-15/docs-2.json b/models/apis/pricing/2017-10-15/docs-2.json new file mode 100644 index 00000000000..1052182aafe --- /dev/null +++ b/models/apis/pricing/2017-10-15/docs-2.json @@ -0,0 +1,168 @@ +{ + "version": "2.0", + "service": "

AWS Price List Service API (AWS Price List Service) is a centralized and convenient way to programmatically query Amazon Web Services for services, products, and pricing information. The AWS Price List Service uses standardized product attributes such as Location, Storage Class, and Operating System, and provides prices at the SKU level. You can use the AWS Price List Service to build cost control and scenario planning tools, reconcile billing data, forecast future spend for budgeting purposes, and provide cost benefit analysis that compare your internal workloads with AWS.

Use GetServices without a service code to retrieve the service codes for all AWS services, then GetServices with a service code to retreive the attribute names for that service. After you have the service code and attribute names, you can use GetAttributeValues to see what values are available for an attribute. With the service code and an attribute name and value, you can use GetProducts to find specific products that you're interested in, such as an AmazonEC2 instance, with a Provisioned IOPS volumeType.

Service Endpoint

AWS Price List Service API provides the following two endpoints:

  • https://api.pricing.us-east-1.amazonaws.com

  • https://api.pricing.ap-south-1.amazonaws.com

", + "operations": { + "DescribeServices": "

Returns the metadata for one service or a list of the metadata for all services. Use this without a service code to get the service codes for all services. Use it with a service code, such as AmazonEC2, to get information specific to that service, such as the attribute names available for that service. For example, some of the attribute names available for EC2 are volumeType, maxIopsVolume, operation, locationType, and instanceCapacity10xlarge.

", + "GetAttributeValues": "

Returns a list of attribute values. Attibutes are similar to the details in a Price List API offer file. For a list of available attributes, see Offer File Definitions in the AWS Billing and Cost Management User Guide.

", + "GetProducts": "

Returns a list of all products that match the filter criteria.

" + }, + "shapes": { + "AttributeNameList": { + "base": null, + "refs": { + "Service$AttributeNames": "

The attributes that are available for this service.

" + } + }, + "AttributeValue": { + "base": "

The values of a given attribute, such as Throughput Optimized HDD or Provisioned IOPS for the Amazon EC2 volumeType attribute.

", + "refs": { + "AttributeValueList$member": null + } + }, + "AttributeValueList": { + "base": null, + "refs": { + "GetAttributeValuesResponse$AttributeValues": "

The list of values for an attribute. For example, Throughput Optimized HDD and Provisioned IOPS are two available values for the AmazonEC2 volumeType.

" + } + }, + "BoxedInteger": { + "base": null, + "refs": { + "DescribeServicesRequest$MaxResults": "

The maximum number of results that you want returned in the response.

", + "GetAttributeValuesRequest$MaxResults": "

The maximum number of results to return in response.

", + "GetProductsRequest$MaxResults": "

The maximum number of results to return in the response.

" + } + }, + "DescribeServicesRequest": { + "base": null, + "refs": { + } + }, + "DescribeServicesResponse": { + "base": null, + "refs": { + } + }, + "ExpiredNextTokenException": { + "base": "

The pagination token expired. Try again without a pagination token.

", + "refs": { + } + }, + "Filter": { + "base": "

The constraints that you want all returned products to match.

", + "refs": { + "Filters$member": null + } + }, + "FilterType": { + "base": null, + "refs": { + "Filter$Type": "

The type of filter that you want to use.

Valid values are: TERM_MATCH. TERM_MATCH returns only products that match both the given filter field and the given value.

" + } + }, + "Filters": { + "base": null, + "refs": { + "GetProductsRequest$Filters": "

The list of filters that limit the returned products. only products that match all filters are returned.

" + } + }, + "GetAttributeValuesRequest": { + "base": null, + "refs": { + } + }, + "GetAttributeValuesResponse": { + "base": null, + "refs": { + } + }, + "GetProductsRequest": { + "base": null, + "refs": { + } + }, + "GetProductsResponse": { + "base": null, + "refs": { + } + }, + "InternalErrorException": { + "base": "

An error on the server occurred during the processing of your request. Try again later.

", + "refs": { + } + }, + "InvalidNextTokenException": { + "base": "

The pagination token is invalid. Try again without a pagination token.

", + "refs": { + } + }, + "InvalidParameterException": { + "base": "

One or more parameters had an invalid value.

", + "refs": { + } + }, + "NotFoundException": { + "base": "

The requested resource can't be found.

", + "refs": { + } + }, + "PriceList": { + "base": null, + "refs": { + "GetProductsResponse$PriceList": "

The list of products that match your filters. The list contains both the product metadata and the price information.

" + } + }, + "PriceListItemJSON": { + "base": null, + "refs": { + "PriceList$member": null + } + }, + "Service": { + "base": "

The metadata for a service, such as the service code and available attribute names.

", + "refs": { + "ServiceList$member": null + } + }, + "ServiceList": { + "base": null, + "refs": { + "DescribeServicesResponse$Services": "

The service metadata for the service or services in the response.

" + } + }, + "String": { + "base": null, + "refs": { + "AttributeNameList$member": null, + "AttributeValue$Value": "

The specific value of an attributeName.

", + "DescribeServicesRequest$ServiceCode": "

The code for the service whose information you want to retrieve, such as AmazonEC2. You can use the ServiceCode to filter the results in a GetProducts call. To retrieve a list of all services, leave this blank.

", + "DescribeServicesRequest$FormatVersion": "

The format version that you want the response to be in.

Valid values are: aws_v1

", + "DescribeServicesRequest$NextToken": "

The pagination token that indicates the next set of results that you want to retrieve.

", + "DescribeServicesResponse$FormatVersion": "

The format version of the response. For example, aws_v1.

", + "DescribeServicesResponse$NextToken": "

The pagination token for the next set of retreivable results.

", + "Filter$Field": "

The product metadata field that you want to filter on. You can filter by just the service code to see all products for a specific service, filter by just the attribute name to see a specific attribute for multiple services, or use both a service code and an attribute name to retrieve only products that match both fields.

Valid values include: ServiceCode, and all attribute names

For example, you can filter by the AmazonEC2 service code and the volumeType attribute name to get the prices for only Amazon EC2 volumes.

", + "Filter$Value": "

The service code or attribute value that you want to filter by. If you are filtering by service code this is the actual service code, such as AmazonEC2. If you are filtering by attribute name, this is the attribute value that you want the returned products to match, such as a Provisioned IOPS volume.

", + "GetAttributeValuesRequest$ServiceCode": "

The service code for the service whose attributes you want to retrieve. For example, if you want the retrieve an EC2 attribute, use AmazonEC2.

", + "GetAttributeValuesRequest$AttributeName": "

The name of the attribute that you want to retrieve the values for, such as volumeType.

", + "GetAttributeValuesRequest$NextToken": "

The pagination token that indicates the next set of results that you want to retrieve.

", + "GetAttributeValuesResponse$NextToken": "

The pagination token that indicates the next set of results to retrieve.

", + "GetProductsRequest$ServiceCode": "

The code for the service whose products you want to retrieve.

", + "GetProductsRequest$FormatVersion": "

The format version that you want the response to be in.

Valid values are: aws_v1

", + "GetProductsRequest$NextToken": "

The pagination token that indicates the next set of results that you want to retrieve.

", + "GetProductsResponse$FormatVersion": "

The format version of the response. For example, aws_v1.

", + "GetProductsResponse$NextToken": "

The pagination token that indicates the next set of results to retrieve.

", + "Service$ServiceCode": "

The code for the AWS service.

" + } + }, + "errorMessage": { + "base": null, + "refs": { + "ExpiredNextTokenException$Message": null, + "InternalErrorException$Message": null, + "InvalidNextTokenException$Message": null, + "InvalidParameterException$Message": null, + "NotFoundException$Message": null + } + } + } +} diff --git a/models/apis/pricing/2017-10-15/examples-1.json b/models/apis/pricing/2017-10-15/examples-1.json new file mode 100644 index 00000000000..90aa3ef0a90 --- /dev/null +++ b/models/apis/pricing/2017-10-15/examples-1.json @@ -0,0 +1,103 @@ +{ + "version": "1.0", + "examples": { + "DescribeServices": [ + { + "input": { + "FormatVersion": "aws_v1", + "MaxResults": 1, + "ServiceCode": "AmazonEC2" + }, + "output": { + "FormatVersion": "aws_v1", + "NextToken": "abcdefg123", + "Services": [ + { + "AttributeNames": [ + "volumeType", + "maxIopsvolume", + "instanceCapacity10xlarge", + "locationType", + "operation" + ], + "ServiceCode": "AmazonEC2" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "id": "to-retrieve-service-metadata", + "title": "To retrieve a list of services and service codes" + } + ], + "GetAttributeValues": [ + { + "input": { + "AttributeName": "volumeType", + "MaxResults": 2, + "ServiceCode": "AmazonEC2" + }, + "output": { + "AttributeValues": [ + { + "Value": "Throughput Optimized HDD" + }, + { + "Value": "Provisioned IOPS" + } + ], + "NextToken": "GpgauEXAMPLEezucl5LV0w==:7GzYJ0nw0DBTJ2J66EoTIIynE6O1uXwQtTRqioJzQadBnDVgHPzI1en4BUQnPCLpzeBk9RQQAWaFieA4+DapFAGLgk+Z/9/cTw9GldnPOHN98+FdmJP7wKU3QQpQ8MQr5KOeBkIsAqvAQYdL0DkL7tHwPtE5iCEByAmg9gcC/yBU1vAOsf7R3VaNN4M5jMDv3woSWqASSIlBVB6tgW78YL22KhssoItM/jWW+aP6Jqtq4mldxp/ct6DWAl+xLFwHU/CbketimPPXyqHF3/UXDw==" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This operation returns a list of values available for the given attribute.", + "id": "to-retreive-attribute-values", + "title": "To retrieve a list of attribute values" + } + ], + "GetProducts": [ + { + "input": { + "Filters": [ + { + "Field": "ServiceCode", + "Type": "TERM_MATCH", + "Value": "AmazonEC2" + }, + { + "Field": "volumeType", + "Type": "TERM_MATCH", + "Value": "Provisioned IOPS" + } + ], + "FormatVersion": "aws_v1", + "MaxResults": 1 + }, + "output": { + "FormatVersion": "aws_v1", + "NextToken": "57r3EXAMPLEujbzWfHF7Ciw==:ywSmZsD3mtpQmQLQ5XfOsIMkYybSj+vAT+kGmwMFq+K9DGmIoJkz7lunVeamiOPgthdWSO2a7YKojCO+zY4dJmuNl2QvbNhXs+AJ2Ufn7xGmJncNI2TsEuAsVCUfTAvAQNcwwamtk6XuZ4YdNnooV62FjkV3ZAn40d9+wAxV7+FImvhUHi/+f8afgZdGh2zPUlH8jlV9uUtj0oHp8+DhPUuHXh+WBII1E/aoKpPSm3c=", + "PriceList": [ + "{\"product\":{\"productFamily\":\"Storage\",\"attributes\":{\"storageMedia\":\"SSD-backed\",\"maxThroughputvolume\":\"320 MB/sec\",\"volumeType\":\"Provisioned IOPS\",\"maxIopsvolume\":\"20000\",\"servicecode\":\"AmazonEC2\",\"usagetype\":\"CAN1-EBS:VolumeUsage.piops\",\"locationType\":\"AWS Region\",\"location\":\"Canada (Central)\",\"servicename\":\"Amazon Elastic Compute Cloud\",\"maxVolumeSize\":\"16 TiB\",\"operation\":\"\"},\"sku\":\"WQGC34PB2AWS8R4U\"},\"serviceCode\":\"AmazonEC2\",\"terms\":{\"OnDemand\":{\"WQGC34PB2AWS8R4U.JRTCKXETXF\":{\"priceDimensions\":{\"WQGC34PB2AWS8R4U.JRTCKXETXF.6YS6EN2CT7\":{\"unit\":\"GB-Mo\",\"endRange\":\"Inf\",\"description\":\"$0.138 per GB-month of Provisioned IOPS SSD (io1) provisioned storage - Canada (Central)\",\"appliesTo\":[],\"rateCode\":\"WQGC34PB2AWS8R4U.JRTCKXETXF.6YS6EN2CT7\",\"beginRange\":\"0\",\"pricePerUnit\":{\"USD\":\"0.1380000000\"}}},\"sku\":\"WQGC34PB2AWS8R4U\",\"effectiveDate\":\"2017-08-01T00:00:00Z\",\"offerTermCode\":\"JRTCKXETXF\",\"termAttributes\":{}}}},\"version\":\"20170901182201\",\"publicationDate\":\"2017-09-01T18:22:01Z\"}" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This operation returns a list of products that match the given criteria.", + "id": "to-retrieve-available products", + "title": "To retrieve a list of products" + } + ] + } +} diff --git a/models/apis/pricing/2017-10-15/paginators-1.json b/models/apis/pricing/2017-10-15/paginators-1.json new file mode 100644 index 00000000000..f4b247c29ac --- /dev/null +++ b/models/apis/pricing/2017-10-15/paginators-1.json @@ -0,0 +1,19 @@ +{ + "pagination": { + "DescribeServices": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetAttributeValues": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetProducts": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/rds/2013-01-10/api-2.json b/models/apis/rds/2013-01-10/api-2.json index 9d772d7181d..f7b1614c737 100644 --- a/models/apis/rds/2013-01-10/api-2.json +++ b/models/apis/rds/2013-01-10/api-2.json @@ -6,6 +6,7 @@ "protocol":"query", "serviceAbbreviation":"Amazon RDS", "serviceFullName":"Amazon Relational Database Service", + "serviceId":"RDS", "signatureVersion":"v4", "uid":"rds-2013-01-10", "xmlNamespace":"http://rds.amazonaws.com/doc/2013-01-10/" diff --git a/models/apis/rds/2013-02-12/api-2.json b/models/apis/rds/2013-02-12/api-2.json index 14cb606a236..76c0b639d5a 100644 --- a/models/apis/rds/2013-02-12/api-2.json +++ b/models/apis/rds/2013-02-12/api-2.json @@ -6,6 +6,7 @@ "protocol":"query", "serviceAbbreviation":"Amazon RDS", "serviceFullName":"Amazon Relational Database Service", + "serviceId":"RDS", "signatureVersion":"v4", "uid":"rds-2013-02-12", "xmlNamespace":"http://rds.amazonaws.com/doc/2013-02-12/" diff --git a/models/apis/rds/2013-09-09/api-2.json b/models/apis/rds/2013-09-09/api-2.json index e08f6be6f79..c7e975155af 100644 --- a/models/apis/rds/2013-09-09/api-2.json +++ b/models/apis/rds/2013-09-09/api-2.json @@ -6,6 +6,7 @@ "protocol":"query", "serviceAbbreviation":"Amazon RDS", "serviceFullName":"Amazon Relational Database Service", + "serviceId":"RDS", "signatureVersion":"v4", "uid":"rds-2013-09-09", "xmlNamespace":"http://rds.amazonaws.com/doc/2013-09-09/" diff --git a/models/apis/rds/2014-09-01/api-2.json b/models/apis/rds/2014-09-01/api-2.json index 5c0b48bff90..6115af1f02c 100644 --- a/models/apis/rds/2014-09-01/api-2.json +++ b/models/apis/rds/2014-09-01/api-2.json @@ -6,6 +6,7 @@ "protocol":"query", "serviceAbbreviation":"Amazon RDS", "serviceFullName":"Amazon Relational Database Service", + "serviceId":"RDS", "signatureVersion":"v4", "uid":"rds-2014-09-01", "xmlNamespace":"http://rds.amazonaws.com/doc/2014-09-01/" diff --git a/models/apis/rds/2014-10-31/api-2.json b/models/apis/rds/2014-10-31/api-2.json index 1f00411638c..4520f990368 100644 --- a/models/apis/rds/2014-10-31/api-2.json +++ b/models/apis/rds/2014-10-31/api-2.json @@ -6,6 +6,7 @@ "protocol":"query", "serviceAbbreviation":"Amazon RDS", "serviceFullName":"Amazon Relational Database Service", + "serviceId":"RDS", "signatureVersion":"v4", "uid":"rds-2014-10-31", "xmlNamespace":"http://rds.amazonaws.com/doc/2014-10-31/" @@ -952,6 +953,22 @@ "resultWrapper":"DescribeSourceRegionsResult" } }, + "DescribeValidDBInstanceModifications":{ + "name":"DescribeValidDBInstanceModifications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeValidDBInstanceModificationsMessage"}, + "output":{ + "shape":"DescribeValidDBInstanceModificationsResult", + "resultWrapper":"DescribeValidDBInstanceModificationsResult" + }, + "errors":[ + {"shape":"DBInstanceNotFoundFault"}, + {"shape":"InvalidDBInstanceStateFault"} + ] + }, "DownloadDBLogFilePortion":{ "name":"DownloadDBLogFilePortion", "http":{ @@ -1452,6 +1469,36 @@ {"shape":"DomainNotFoundFault"} ] }, + "RestoreDBInstanceFromS3":{ + "name":"RestoreDBInstanceFromS3", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreDBInstanceFromS3Message"}, + "output":{ + "shape":"RestoreDBInstanceFromS3Result", + "resultWrapper":"RestoreDBInstanceFromS3Result" + }, + "errors":[ + {"shape":"DBInstanceAlreadyExistsFault"}, + {"shape":"InsufficientDBInstanceCapacityFault"}, + {"shape":"DBParameterGroupNotFoundFault"}, + {"shape":"DBSecurityGroupNotFoundFault"}, + {"shape":"InstanceQuotaExceededFault"}, + {"shape":"StorageQuotaExceededFault"}, + {"shape":"DBSubnetGroupNotFoundFault"}, + {"shape":"DBSubnetGroupDoesNotCoverEnoughAZs"}, + {"shape":"InvalidSubnet"}, + {"shape":"InvalidVPCNetworkStateFault"}, + {"shape":"InvalidS3BucketFault"}, + {"shape":"ProvisionedIopsNotAvailableInAZFault"}, + {"shape":"OptionGroupNotFoundFault"}, + {"shape":"StorageTypeNotSupportedFault"}, + {"shape":"AuthorizationNotFoundFault"}, + {"shape":"KMSKeyNotAccessibleFault"} + ] + }, "RestoreDBInstanceToPointInTime":{ "name":"RestoreDBInstanceToPointInTime", "http":{ @@ -1983,7 +2030,9 @@ "DomainIAMRoleName":{"shape":"String"}, "PromotionTier":{"shape":"IntegerOptional"}, "Timezone":{"shape":"String"}, - "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"} + "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"}, + "EnablePerformanceInsights":{"shape":"BooleanOptional"}, + "PerformanceInsightsKMSKeyId":{"shape":"String"} } }, "CreateDBInstanceReadReplicaMessage":{ @@ -2010,7 +2059,9 @@ "MonitoringRoleArn":{"shape":"String"}, "KmsKeyId":{"shape":"String"}, "PreSignedUrl":{"shape":"String"}, - "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"} + "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"}, + "EnablePerformanceInsights":{"shape":"BooleanOptional"}, + "PerformanceInsightsKMSKeyId":{"shape":"String"} } }, "CreateDBInstanceReadReplicaResult":{ @@ -2522,7 +2573,9 @@ "PromotionTier":{"shape":"IntegerOptional"}, "DBInstanceArn":{"shape":"String"}, "Timezone":{"shape":"String"}, - "IAMDatabaseAuthenticationEnabled":{"shape":"Boolean"} + "IAMDatabaseAuthenticationEnabled":{"shape":"Boolean"}, + "PerformanceInsightsEnabled":{"shape":"BooleanOptional"}, + "PerformanceInsightsKMSKeyId":{"shape":"String"} }, "wrapper":true }, @@ -3399,6 +3452,19 @@ "Filters":{"shape":"FilterList"} } }, + "DescribeValidDBInstanceModificationsMessage":{ + "type":"structure", + "required":["DBInstanceIdentifier"], + "members":{ + "DBInstanceIdentifier":{"shape":"String"} + } + }, + "DescribeValidDBInstanceModificationsResult":{ + "type":"structure", + "members":{ + "ValidDBInstanceModificationsMessage":{"shape":"ValidDBInstanceModificationsMessage"} + } + }, "DomainMembership":{ "type":"structure", "members":{ @@ -3427,6 +3493,21 @@ "exception":true }, "Double":{"type":"double"}, + "DoubleOptional":{"type":"double"}, + "DoubleRange":{ + "type":"structure", + "members":{ + "From":{"shape":"Double"}, + "To":{"shape":"Double"} + } + }, + "DoubleRangeList":{ + "type":"list", + "member":{ + "shape":"DoubleRange", + "locationName":"DoubleRange" + } + }, "DownloadDBLogFilePortionDetails":{ "type":"structure", "members":{ @@ -3952,7 +4033,9 @@ "MonitoringRoleArn":{"shape":"String"}, "DomainIAMRoleName":{"shape":"String"}, "PromotionTier":{"shape":"IntegerOptional"}, - "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"} + "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"}, + "EnablePerformanceInsights":{"shape":"BooleanOptional"}, + "PerformanceInsightsKMSKeyId":{"shape":"String"} } }, "ModifyDBInstanceResult":{ @@ -3996,7 +4079,8 @@ "required":["DBSnapshotIdentifier"], "members":{ "DBSnapshotIdentifier":{"shape":"String"}, - "EngineVersion":{"shape":"String"} + "EngineVersion":{"shape":"String"}, + "OptionGroupName":{"shape":"String"} } }, "ModifyDBSnapshotResult":{ @@ -4153,6 +4237,9 @@ "OptionsConflictsWith":{"shape":"OptionsConflictsWith"}, "Persistent":{"shape":"Boolean"}, "Permanent":{"shape":"Boolean"}, + "RequiresAutoMinorEngineVersionUpgrade":{"shape":"Boolean"}, + "VpcOnly":{"shape":"Boolean"}, + "SupportsOptionVersionDowngrade":{"shape":"BooleanOptional"}, "OptionGroupOptionSettings":{"shape":"OptionGroupOptionSettingsList"}, "OptionGroupOptionVersions":{"shape":"OptionGroupOptionVersionsList"} } @@ -4296,7 +4383,14 @@ "StorageType":{"shape":"String"}, "SupportsIops":{"shape":"Boolean"}, "SupportsEnhancedMonitoring":{"shape":"Boolean"}, - "SupportsIAMDatabaseAuthentication":{"shape":"Boolean"} + "SupportsIAMDatabaseAuthentication":{"shape":"Boolean"}, + "SupportsPerformanceInsights":{"shape":"Boolean"}, + "MinStorageSize":{"shape":"IntegerOptional"}, + "MaxStorageSize":{"shape":"IntegerOptional"}, + "MinIopsPerDbInstance":{"shape":"IntegerOptional"}, + "MaxIopsPerDbInstance":{"shape":"IntegerOptional"}, + "MinIopsPerGib":{"shape":"DoubleOptional"}, + "MaxIopsPerGib":{"shape":"DoubleOptional"} }, "wrapper":true }, @@ -4452,6 +4546,21 @@ "ReservedDBInstance":{"shape":"ReservedDBInstance"} } }, + "Range":{ + "type":"structure", + "members":{ + "From":{"shape":"Integer"}, + "To":{"shape":"Integer"}, + "Step":{"shape":"IntegerOptional"} + } + }, + "RangeList":{ + "type":"list", + "member":{ + "shape":"Range", + "locationName":"Range" + } + }, "ReadReplicaDBClusterIdentifierList":{ "type":"list", "member":{ @@ -4826,6 +4935,64 @@ "DBInstance":{"shape":"DBInstance"} } }, + "RestoreDBInstanceFromS3Message":{ + "type":"structure", + "required":[ + "DBInstanceIdentifier", + "DBInstanceClass", + "Engine", + "SourceEngine", + "SourceEngineVersion", + "S3BucketName", + "S3IngestionRoleArn" + ], + "members":{ + "DBName":{"shape":"String"}, + "DBInstanceIdentifier":{"shape":"String"}, + "AllocatedStorage":{"shape":"IntegerOptional"}, + "DBInstanceClass":{"shape":"String"}, + "Engine":{"shape":"String"}, + "MasterUsername":{"shape":"String"}, + "MasterUserPassword":{"shape":"String"}, + "DBSecurityGroups":{"shape":"DBSecurityGroupNameList"}, + "VpcSecurityGroupIds":{"shape":"VpcSecurityGroupIdList"}, + "AvailabilityZone":{"shape":"String"}, + "DBSubnetGroupName":{"shape":"String"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "DBParameterGroupName":{"shape":"String"}, + "BackupRetentionPeriod":{"shape":"IntegerOptional"}, + "PreferredBackupWindow":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "MultiAZ":{"shape":"BooleanOptional"}, + "EngineVersion":{"shape":"String"}, + "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, + "LicenseModel":{"shape":"String"}, + "Iops":{"shape":"IntegerOptional"}, + "OptionGroupName":{"shape":"String"}, + "PubliclyAccessible":{"shape":"BooleanOptional"}, + "Tags":{"shape":"TagList"}, + "StorageType":{"shape":"String"}, + "StorageEncrypted":{"shape":"BooleanOptional"}, + "KmsKeyId":{"shape":"String"}, + "CopyTagsToSnapshot":{"shape":"BooleanOptional"}, + "MonitoringInterval":{"shape":"IntegerOptional"}, + "MonitoringRoleArn":{"shape":"String"}, + "EnableIAMDatabaseAuthentication":{"shape":"BooleanOptional"}, + "SourceEngine":{"shape":"String"}, + "SourceEngineVersion":{"shape":"String"}, + "S3BucketName":{"shape":"String"}, + "S3Prefix":{"shape":"String"}, + "S3IngestionRoleArn":{"shape":"String"}, + "EnablePerformanceInsights":{"shape":"BooleanOptional"}, + "PerformanceInsightsKMSKeyId":{"shape":"String"} + } + }, + "RestoreDBInstanceFromS3Result":{ + "type":"structure", + "members":{ + "DBInstance":{"shape":"DBInstance"} + } + }, "RestoreDBInstanceToPointInTimeMessage":{ "type":"structure", "required":[ @@ -5155,6 +5322,29 @@ "IsMajorVersionUpgrade":{"shape":"Boolean"} } }, + "ValidDBInstanceModificationsMessage":{ + "type":"structure", + "members":{ + "Storage":{"shape":"ValidStorageOptionsList"} + }, + "wrapper":true + }, + "ValidStorageOptions":{ + "type":"structure", + "members":{ + "StorageType":{"shape":"String"}, + "StorageSize":{"shape":"RangeList"}, + "ProvisionedIops":{"shape":"RangeList"}, + "IopsToStorageRatio":{"shape":"DoubleRangeList"} + } + }, + "ValidStorageOptionsList":{ + "type":"list", + "member":{ + "shape":"ValidStorageOptions", + "locationName":"ValidStorageOptions" + } + }, "ValidUpgradeTargetList":{ "type":"list", "member":{ diff --git a/models/apis/rds/2014-10-31/docs-2.json b/models/apis/rds/2014-10-31/docs-2.json index 9d165489086..9c9ec8340e8 100644 --- a/models/apis/rds/2014-10-31/docs-2.json +++ b/models/apis/rds/2014-10-31/docs-2.json @@ -1,33 +1,33 @@ { "version": "2.0", - "service": "Amazon Relational Database Service

Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizable capacity for an industry-standard relational database and manages common database administration tasks, freeing up developers to focus on what makes their applications and businesses unique.

Amazon RDS gives you access to the capabilities of a MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, Oracle, or Amazon Aurora database server. These capabilities mean that the code, applications, and tools you already use today with your existing databases work with Amazon RDS without modification. Amazon RDS automatically backs up your database and maintains the database software that powers your DB instance. Amazon RDS is flexible: you can scale your database instance's compute resources and storage capacity to meet your application's demand. As with all Amazon Web Services, there are no up-front investments, and you pay only for the resources you use.

This interface reference for Amazon RDS contains documentation for a programming or command line interface you can use to manage Amazon RDS. Note that Amazon RDS is asynchronous, which means that some interfaces might require techniques such as polling or callback functions to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a command is applied immediately, on the next instance reboot, or during the maintenance window. The reference structure is as follows, and we list following some related topics from the user guide.

Amazon RDS API Reference

Amazon RDS User Guide

", + "service": "Amazon Relational Database Service

Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizable capacity for an industry-standard relational database and manages common database administration tasks, freeing up developers to focus on what makes their applications and businesses unique.

Amazon RDS gives you access to the capabilities of a MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, Oracle, or Amazon Aurora database server. These capabilities mean that the code, applications, and tools you already use today with your existing databases work with Amazon RDS without modification. Amazon RDS automatically backs up your database and maintains the database software that powers your DB instance. Amazon RDS is flexible: you can scale your DB instance's compute resources and storage capacity to meet your application's demand. As with all Amazon Web Services, there are no up-front investments, and you pay only for the resources you use.

This interface reference for Amazon RDS contains documentation for a programming or command line interface you can use to manage Amazon RDS. Note that Amazon RDS is asynchronous, which means that some interfaces might require techniques such as polling or callback functions to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a command is applied immediately, on the next instance reboot, or during the maintenance window. The reference structure is as follows, and we list following some related topics from the user guide.

Amazon RDS API Reference

Amazon RDS User Guide

", "operations": { "AddRoleToDBCluster": "

Associates an Identity and Access Management (IAM) role from an Aurora DB cluster. For more information, see Authorizing Amazon Aurora to Access Other AWS Services On Your Behalf.

", "AddSourceIdentifierToSubscription": "

Adds a source identifier to an existing RDS event notification subscription.

", "AddTagsToResource": "

Adds metadata tags to an Amazon RDS resource. These tags can also be used with cost allocation reporting to track cost associated with Amazon RDS resources, or used in a Condition statement in an IAM policy for Amazon RDS.

For an overview on tagging Amazon RDS resources, see Tagging Amazon RDS Resources.

", "ApplyPendingMaintenanceAction": "

Applies a pending maintenance action to a resource (for example, to a DB instance).

", - "AuthorizeDBSecurityGroupIngress": "

Enables ingress to a DBSecurityGroup using one of two forms of authorization. First, EC2 or VPC security groups can be added to the DBSecurityGroup if the application using the database is running on EC2 or VPC instances. Second, IP ranges are available if the application accessing your database is running on the Internet. Required parameters for this API are one of CIDR range, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId for non-VPC).

You cannot authorize ingress from an EC2 security group in one region to an Amazon RDS DB instance in another. You cannot authorize ingress from a VPC security group in one VPC to an Amazon RDS DB instance in another.

For an overview of CIDR ranges, go to the Wikipedia Tutorial.

", + "AuthorizeDBSecurityGroupIngress": "

Enables ingress to a DBSecurityGroup using one of two forms of authorization. First, EC2 or VPC security groups can be added to the DBSecurityGroup if the application using the database is running on EC2 or VPC instances. Second, IP ranges are available if the application accessing your database is running on the Internet. Required parameters for this API are one of CIDR range, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId for non-VPC).

You can't authorize ingress from an EC2 security group in one AWS Region to an Amazon RDS DB instance in another. You can't authorize ingress from a VPC security group in one VPC to an Amazon RDS DB instance in another.

For an overview of CIDR ranges, go to the Wikipedia Tutorial.

", "CopyDBClusterParameterGroup": "

Copies the specified DB cluster parameter group.

", - "CopyDBClusterSnapshot": "

Copies a snapshot of a DB cluster.

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

You can copy an encrypted DB cluster snapshot from another AWS region. In that case, the region where you call the CopyDBClusterSnapshot action is the destination region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another region, you must provide the following values:

  • KmsKeyId - The AWS Key Management System (KMS) key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination region.

  • PreSignedUrl - A URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot action to be called in the source region where the DB cluster snapshot will be copied from. The pre-signed URL must be a valid request for the CopyDBClusterSnapshot API action that can be executed in the source region that contains the encrypted DB cluster snapshot to be copied.

    The pre-signed URL request must contain the following parameter values:

    • KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination region. This is the same identifier for both the CopyDBClusterSnapshot action that is called in the destination region, and the action contained in the pre-signed URL.

    • DestinationRegion - The name of the region that the DB cluster snapshot will be created in.

    • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

    To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

  • TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination region.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the ARN format for the source region and is the same value as the SourceDBClusterSnapshotIdentifier in the pre-signed URL.

To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

For more information on copying encrypted DB cluster snapshots from one region to another, see Copying a DB Cluster Snapshot in the Same Account, Either in the Same Region or Across Regions in the Amazon RDS User Guide.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", + "CopyDBClusterSnapshot": "

Copies a snapshot of a DB cluster.

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

You can copy an encrypted DB cluster snapshot from another AWS Region. In that case, the AWS Region where you call the CopyDBClusterSnapshot action is the destination AWS Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another AWS Region, you must provide the following values:

  • KmsKeyId - The AWS Key Management System (AWS KMS) key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination AWS Region.

  • PreSignedUrl - A URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot action to be called in the source AWS Region where the DB cluster snapshot is copied from. The pre-signed URL must be a valid request for the CopyDBClusterSnapshot API action that can be executed in the source AWS Region that contains the encrypted DB cluster snapshot to be copied.

    The pre-signed URL request must contain the following parameter values:

    • KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

    • DestinationRegion - The name of the AWS Region that the DB cluster snapshot will be created in.

    • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 AWS Region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

    To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

  • TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination AWS Region.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the ARN format for the source AWS Region and is the same value as the SourceDBClusterSnapshotIdentifier in the pre-signed URL.

To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

For more information on copying encrypted DB cluster snapshots from one AWS Region to another, see Copying a DB Cluster Snapshot in the Same Account, Either in the Same Region or Across Regions in the Amazon RDS User Guide.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "CopyDBParameterGroup": "

Copies the specified DB parameter group.

", - "CopyDBSnapshot": "

Copies the specified DB snapshot. The source DB snapshot must be in the \"available\" state.

You can copy a snapshot from one AWS region to another. In that case, the region where you call the CopyDBSnapshot action is the destination region for the DB snapshot copy.

You cannot copy an encrypted, shared DB snapshot from one AWS region to another.

For more information about copying snapshots, see Copying a DB Snapshot in the Amazon RDS User Guide.

", + "CopyDBSnapshot": "

Copies the specified DB snapshot. The source DB snapshot must be in the \"available\" state.

You can copy a snapshot from one AWS Region to another. In that case, the AWS Region where you call the CopyDBSnapshot action is the destination AWS Region for the DB snapshot copy.

You can't copy an encrypted, shared DB snapshot from one AWS Region to another.

For more information about copying snapshots, see Copying a DB Snapshot in the Amazon RDS User Guide.

", "CopyOptionGroup": "

Copies the specified option group.

", "CreateDBCluster": "

Creates a new Amazon Aurora DB cluster.

You can use the ReplicationSourceIdentifier parameter to create the DB cluster as a Read Replica of another DB cluster or Amazon RDS MySQL DB instance. For cross-region replication where the DB cluster identified by ReplicationSourceIdentifier is encrypted, you must also specify the PreSignedUrl parameter.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "CreateDBClusterParameterGroup": "

Creates a new DB cluster parameter group.

Parameters in a DB cluster parameter group apply to all of the instances in a DB cluster.

A DB cluster parameter group is initially created with the default parameters for the database engine used by instances in the DB cluster. To provide custom values for any of the parameters, you must modify the group after creating it using ModifyDBClusterParameterGroup. Once you've created a DB cluster parameter group, you need to associate it with your DB cluster using ModifyDBCluster. When you associate a new DB cluster parameter group with a running DB cluster, you need to reboot the DB instances in the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the DB cluster parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters command to verify that your DB cluster parameter group has been created or modified.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "CreateDBClusterSnapshot": "

Creates a snapshot of a DB cluster. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "CreateDBInstance": "

Creates a new DB instance.

", - "CreateDBInstanceReadReplica": "

Creates a DB instance for a DB instance running MySQL, MariaDB, or PostgreSQL that acts as a Read Replica of a source DB instance.

Amazon Aurora does not support this action. You must call the CreateDBInstance action to create a DB instance for an Aurora DB cluster.

All Read Replica DB instances are created as Single-AZ deployments with backups disabled. All other DB instance attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance, except as specified below.

The source DB instance must have backup retention enabled.

You can create an encrypted Read Replica in a different AWS Region than the source DB instance. In that case, the region where you call the CreateDBInstanceReadReplica action is the destination region of the encrypted Read Replica. The source DB instance must be encrypted.

To create an encrypted Read Replica in another AWS Region, you must provide the following values:

  • KmsKeyId - The AWS Key Management System (KMS) key identifier for the key to use to encrypt the Read Replica in the destination region.

  • PreSignedUrl - A URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API action in the AWS region that contains the source DB instance. The PreSignedUrl parameter must be used when encrypting a Read Replica from another AWS region.

    The presigned URL must be a valid request for the CreateDBInstanceReadReplica API action that can be executed in the source region that contains the encrypted DB instance. The presigned URL request must contain the following parameter values:

    • DestinationRegion - The AWS Region that the Read Replica is created in. This region is the same one where the CreateDBInstanceReadReplica action is called that contains this presigned URL.

      For example, if you create an encrypted Read Replica in the us-east-1 region, and the source DB instance is in the west-2 region, then you call the CreateDBInstanceReadReplica action in the us-east-1 region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica action in the us-west-2 region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 region.

    • KmsKeyId - The KMS key identifier for the key to use to encrypt the Read Replica in the destination region. This is the same identifier for both the CreateDBInstanceReadReplica action that is called in the destination region, and the action contained in the presigned URL.

    • SourceDBInstanceIdentifier - The DB instance identifier for the encrypted Read Replica to be created. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you create an encrypted Read Replica from a DB instance in the us-west-2 region, then your SourceDBInstanceIdentifier would look like this example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-instance-20161115.

    To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

  • DBInstanceIdentifier - The identifier for the encrypted Read Replica in the destination region.

  • SourceDBInstanceIdentifier - The DB instance identifier for the encrypted Read Replica. This identifier must be in the ARN format for the source region and is the same value as the SourceDBInstanceIdentifier in the presigned URL.

", + "CreateDBInstanceReadReplica": "

Creates a new DB instance that acts as a Read Replica for an existing source DB instance. You can create a Read Replica for a DB instance running MySQL, MariaDB, or PostgreSQL.

Amazon Aurora does not support this action. You must call the CreateDBInstance action to create a DB instance for an Aurora DB cluster.

All Read Replica DB instances are created as Single-AZ deployments with backups disabled. All other DB instance attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance, except as specified below.

The source DB instance must have backup retention enabled.

For more information, see Working with PostgreSQL, MySQL, and MariaDB Read Replicas.

", "CreateDBParameterGroup": "

Creates a new DB parameter group.

A DB parameter group is initially created with the default parameters for the database engine used by the DB instance. To provide custom values for any of the parameters, you must modify the group after creating it using ModifyDBParameterGroup. Once you've created a DB parameter group, you need to associate it with your DB instance using ModifyDBInstance. When you associate a new DB parameter group with a running DB instance, you need to reboot the DB instance without failover for the new DB parameter group and associated settings to take effect.

After you create a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBParameters command to verify that your DB parameter group has been created or modified.

", "CreateDBSecurityGroup": "

Creates a new DB security group. DB security groups control access to a DB instance.

", "CreateDBSnapshot": "

Creates a DBSnapshot. The source DBInstance must be in \"available\" state.

", - "CreateDBSubnetGroup": "

Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the region.

", - "CreateEventSubscription": "

Creates an RDS event notification subscription. This action requires a topic ARN (Amazon Resource Name) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console.

You can specify the type of source (SourceType) you want to be notified of, provide a list of RDS sources (SourceIds) that triggers the events, and provide a list of event categories (EventCategories) for events you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup.

If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIdentifier = myDBInstance1, you will be notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify a SourceIdentifier, you will receive notice of the events for that source type for all your RDS sources. If you do not specify either the SourceType nor the SourceIdentifier, you will be notified of events generated from all RDS sources belonging to your customer account.

", + "CreateDBSubnetGroup": "

Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the AWS Region.

", + "CreateEventSubscription": "

Creates an RDS event notification subscription. This action requires a topic ARN (Amazon Resource Name) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console.

You can specify the type of source (SourceType) you want to be notified of, provide a list of RDS sources (SourceIds) that triggers the events, and provide a list of event categories (EventCategories) for events you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup.

If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIdentifier = myDBInstance1, you are notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify a SourceIdentifier, you receive notice of the events for that source type for all your RDS sources. If you do not specify either the SourceType nor the SourceIdentifier, you are notified of events generated from all RDS sources belonging to your customer account.

", "CreateOptionGroup": "

Creates a new option group. You can create up to 20 option groups.

", - "DeleteDBCluster": "

The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and cannot be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", - "DeleteDBClusterParameterGroup": "

Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted cannot be associated with any DB clusters.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", + "DeleteDBCluster": "

The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", + "DeleteDBClusterParameterGroup": "

Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted can't be associated with any DB clusters.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "DeleteDBClusterSnapshot": "

Deletes a DB cluster snapshot. If the snapshot is being copied, the copy operation is terminated.

The DB cluster snapshot must be in the available state to be deleted.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", - "DeleteDBInstance": "

The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and cannot be recovered. Manual DB snapshots of the DB instance to be deleted by DeleteDBInstance are not deleted.

If you request a final DB snapshot the status of the Amazon RDS DB instance is deleting until the DB snapshot is created. The API action DescribeDBInstance is used to monitor the status of this operation. The action cannot be canceled or reverted once submitted.

Note that when a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, you can only delete it when the SkipFinalSnapshot parameter is set to true.

If the specified DB instance is part of an Amazon Aurora DB cluster, you cannot delete the DB instance if the following are true:

  • The DB cluster is a Read Replica of another Amazon Aurora DB cluster.

  • The DB instance is the only instance in the DB cluster.

To delete a DB instance in this case, first call the PromoteReadReplicaDBCluster API action to promote the DB cluster so it's no longer a Read Replica. After the promotion completes, then call the DeleteDBInstance API action to delete the final instance in the DB cluster.

", - "DeleteDBParameterGroup": "

Deletes a specified DBParameterGroup. The DBParameterGroup to be deleted cannot be associated with any DB instances.

", + "DeleteDBInstance": "

The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and can't be recovered. Manual DB snapshots of the DB instance to be deleted by DeleteDBInstance are not deleted.

If you request a final DB snapshot the status of the Amazon RDS DB instance is deleting until the DB snapshot is created. The API action DescribeDBInstance is used to monitor the status of this operation. The action can't be canceled or reverted once submitted.

Note that when a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, you can only delete it when the SkipFinalSnapshot parameter is set to true.

If the specified DB instance is part of an Amazon Aurora DB cluster, you can't delete the DB instance if both of the following conditions are true:

  • The DB cluster is a Read Replica of another Amazon Aurora DB cluster.

  • The DB instance is the only instance in the DB cluster.

To delete a DB instance in this case, first call the PromoteReadReplicaDBCluster API action to promote the DB cluster so it's no longer a Read Replica. After the promotion completes, then call the DeleteDBInstance API action to delete the final instance in the DB cluster.

", + "DeleteDBParameterGroup": "

Deletes a specified DBParameterGroup. The DBParameterGroup to be deleted can't be associated with any DB instances.

", "DeleteDBSecurityGroup": "

Deletes a DB security group.

The specified DB security group must not be associated with any DB instances.

", "DeleteDBSnapshot": "

Deletes a DBSnapshot. If the snapshot is being copied, the copy operation is terminated.

The DBSnapshot must be in the available state to be deleted.

", "DeleteDBSubnetGroup": "

Deletes a DB subnet group.

The specified database subnet group must not be associated with any DB instances.

", @@ -60,33 +60,35 @@ "DescribePendingMaintenanceActions": "

Returns a list of resources (for example, DB instances) that have at least one pending maintenance action.

", "DescribeReservedDBInstances": "

Returns information about reserved DB instances for this account, or about a specified reserved DB instance.

", "DescribeReservedDBInstancesOfferings": "

Lists available reserved DB instance offerings.

", - "DescribeSourceRegions": "

Returns a list of the source AWS regions where the current AWS region can create a Read Replica or copy a DB snapshot from. This API action supports pagination.

", + "DescribeSourceRegions": "

Returns a list of the source AWS Regions where the current AWS Region can create a Read Replica or copy a DB snapshot from. This API action supports pagination.

", + "DescribeValidDBInstanceModifications": "

You can call DescribeValidDBInstanceModifications to learn what modifications you can make to your DB instance. You can use this information when you call ModifyDBInstance.

", "DownloadDBLogFilePortion": "

Downloads all or a portion of the specified log file, up to 1 MB in size.

", "FailoverDBCluster": "

Forces a failover for a DB cluster.

A failover for a DB cluster promotes one of the Aurora Replicas (read-only instances) in the DB cluster to be the primary instance (the cluster writer).

Amazon Aurora will automatically fail over to an Aurora Replica, if one exists, when the primary instance fails. You can force a failover when you want to simulate a failure of a primary instance for testing. Because each instance in a DB cluster has its own endpoint address, you will need to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "ListTagsForResource": "

Lists all tags on an Amazon RDS resource.

For an overview on tagging an Amazon RDS resource, see Tagging Amazon RDS Resources.

", "ModifyDBCluster": "

Modify a setting for an Amazon Aurora DB cluster. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "ModifyDBClusterParameterGroup": "

Modifies the parameters of a DB cluster parameter group. To modify more than one parameter, submit a list of the following: ParameterName, ParameterValue, and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

Changes to dynamic parameters are applied immediately. Changes to static parameters require a reboot without failover to the DB cluster associated with the parameter group before the change can take effect.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters command to verify that your DB cluster parameter group has been created or modified.

", "ModifyDBClusterSnapshotAttribute": "

Adds an attribute and values to, or removes an attribute and values from, a manual DB cluster snapshot.

To share a manual DB cluster snapshot with other AWS accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the AWS accounts that are authorized to restore the manual DB cluster snapshot. Use the value all to make the manual DB cluster snapshot public, which means that it can be copied or restored by all AWS accounts. Do not add the all value for any manual DB cluster snapshots that contain private information that you don't want available to all AWS accounts. If a manual DB cluster snapshot is encrypted, it can be shared, but only by specifying a list of authorized AWS account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which AWS accounts have access to copy or restore a manual DB cluster snapshot, or whether a manual DB cluster snapshot public or private, use the DescribeDBClusterSnapshotAttributes API action.

", - "ModifyDBInstance": "

Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request.

", + "ModifyDBInstance": "

Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. To learn what modifications you can make to your DB instance, call DescribeValidDBInstanceModifications before you call ModifyDBInstance.

", "ModifyDBParameterGroup": "

Modifies the parameters of a DB parameter group. To modify more than one parameter, submit a list of the following: ParameterName, ParameterValue, and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

Changes to dynamic parameters are applied immediately. Changes to static parameters require a reboot without failover to the DB instance associated with the parameter group before the change can take effect.

After you modify a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon RDS to fully complete the modify action before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBParameters command to verify that your DB parameter group has been created or modified.

", - "ModifyDBSnapshot": "

Updates a manual DB snapshot, which can be encrypted or not encrypted, with a new engine version. You can update the engine version to either a new major or minor engine version.

Amazon RDS supports upgrading a MySQL DB snapshot from MySQL 5.1 to MySQL 5.5.

", + "ModifyDBSnapshot": "

Updates a manual DB snapshot, which can be encrypted or not encrypted, with a new engine version.

Amazon RDS supports upgrading DB snapshots for MySQL and Oracle.

", "ModifyDBSnapshotAttribute": "

Adds an attribute and values to, or removes an attribute and values from, a manual DB snapshot.

To share a manual DB snapshot with other AWS accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the AWS accounts that are authorized to restore the manual DB snapshot. Uses the value all to make the manual DB snapshot public, which means it can be copied or restored by all AWS accounts. Do not add the all value for any manual DB snapshots that contain private information that you don't want available to all AWS accounts. If the manual DB snapshot is encrypted, it can be shared, but only by specifying a list of authorized AWS account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which AWS accounts have access to copy or restore a manual DB snapshot, or whether a manual DB snapshot public or private, use the DescribeDBSnapshotAttributes API action.

", - "ModifyDBSubnetGroup": "

Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the region.

", - "ModifyEventSubscription": "

Modifies an existing RDS event notification subscription. Note that you cannot modify the source identifiers using this call; to change source identifiers for a subscription, use the AddSourceIdentifierToSubscription and RemoveSourceIdentifierFromSubscription calls.

You can see a list of the event categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action.

", + "ModifyDBSubnetGroup": "

Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the AWS Region.

", + "ModifyEventSubscription": "

Modifies an existing RDS event notification subscription. Note that you can't modify the source identifiers using this call; to change source identifiers for a subscription, use the AddSourceIdentifierToSubscription and RemoveSourceIdentifierFromSubscription calls.

You can see a list of the event categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action.

", "ModifyOptionGroup": "

Modifies an existing option group.

", "PromoteReadReplica": "

Promotes a Read Replica DB instance to a standalone DB instance.

We recommend that you enable automated backups on your Read Replica before promoting the Read Replica. This ensures that no backup is taken during the promotion process. Once the instance is promoted to a primary instance, backups are taken based on your backup settings.

", "PromoteReadReplicaDBCluster": "

Promotes a Read Replica DB cluster to a standalone DB cluster.

", "PurchaseReservedDBInstancesOffering": "

Purchases a reserved DB instance offering.

", - "RebootDBInstance": "

Rebooting a DB instance restarts the database engine service. A reboot also applies to the DB instance any modifications to the associated DB parameter group that were pending. Rebooting a DB instance results in a momentary outage of the instance, during which the DB instance status is set to rebooting. If the RDS instance is configured for MultiAZ, it is possible that the reboot will be conducted through a failover. An Amazon RDS event is created when the reboot is completed.

If your DB instance is deployed in multiple Availability Zones, you can force a failover from one AZ to the other during the reboot. You might force a failover to test the availability of your DB instance deployment or to restore operations to the original AZ after a failover occurs.

The time required to reboot is a function of the specific database engine's crash recovery process. To improve the reboot time, we recommend that you reduce database activities as much as possible during the reboot process to reduce rollback activity for in-transit transactions.

", + "RebootDBInstance": "

Rebooting a DB instance restarts the database engine service. A reboot also applies to the DB instance any modifications to the associated DB parameter group that were pending. Rebooting a DB instance results in a momentary outage of the instance, during which the DB instance status is set to rebooting. If the RDS instance is configured for MultiAZ, it is possible that the reboot is conducted through a failover. An Amazon RDS event is created when the reboot is completed.

If your DB instance is deployed in multiple Availability Zones, you can force a failover from one AZ to the other during the reboot. You might force a failover to test the availability of your DB instance deployment or to restore operations to the original AZ after a failover occurs.

The time required to reboot is a function of the specific database engine's crash recovery process. To improve the reboot time, we recommend that you reduce database activities as much as possible during the reboot process to reduce rollback activity for in-transit transactions.

", "RemoveRoleFromDBCluster": "

Disassociates an Identity and Access Management (IAM) role from an Aurora DB cluster. For more information, see Authorizing Amazon Aurora to Access Other AWS Services On Your Behalf.

", "RemoveSourceIdentifierFromSubscription": "

Removes a source identifier from an existing RDS event notification subscription.

", "RemoveTagsFromResource": "

Removes metadata tags from an Amazon RDS resource.

For an overview on tagging an Amazon RDS resource, see Tagging Amazon RDS Resources.

", "ResetDBClusterParameterGroup": "

Modifies the parameters of a DB cluster parameter group to the default value. To reset specific parameters submit a list of the following: ParameterName and ApplyMethod. To reset the entire DB cluster parameter group, specify the DBClusterParameterGroupName and ResetAllParameters parameters.

When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request. You must call RebootDBInstance for every DB instance in your DB cluster that you want the updated static parameter to apply to.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", - "ResetDBParameterGroup": "

Modifies the parameters of a DB parameter group to the engine/system default value. To reset specific parameters, provide a list of the following: ParameterName and ApplyMethod. To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request.

", + "ResetDBParameterGroup": "

Modifies the parameters of a DB parameter group to the engine/system default value. To reset specific parameters, provide a list of the following: ParameterName and ApplyMethod. To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request.

", "RestoreDBClusterFromS3": "

Creates an Amazon Aurora DB cluster from data stored in an Amazon S3 bucket. Amazon RDS must be authorized to access the Amazon S3 bucket and the data must be created using the Percona XtraBackup utility as described in Migrating Data from MySQL by Using an Amazon S3 Bucket.

", - "RestoreDBClusterFromSnapshot": "

Creates a new DB cluster from a DB cluster snapshot. The target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", - "RestoreDBClusterToPointInTime": "

Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", + "RestoreDBClusterFromSnapshot": "

Creates a new DB cluster from a DB snapshot or DB cluster snapshot.

If a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group.

If a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", + "RestoreDBClusterToPointInTime": "

Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group.

This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterToPointInTime action has completed and the DB cluster is available.

For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide.

", "RestoreDBInstanceFromDBSnapshot": "

Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with the most of original configuration with the default security group and the default DB parameter group. By default, the new DB instance is created as a single-AZ deployment except when the instance is a SQL Server instance that has an option group that is associated with mirroring; in this case, the instance becomes a mirrored AZ deployment and not a single-AZ deployment.

If your intent is to replace your original DB instance with the new, restored DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot action. RDS does not allow two DB instances with the same name. Once you have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you will replace the original DB instance with the DB instance created from the snapshot.

If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

", + "RestoreDBInstanceFromS3": "

Amazon Relational Database Service (Amazon RDS) supports importing MySQL databases by using backup files. You can create a backup of your on-premises database, store it on Amazon Simple Storage Service (Amazon S3), and then restore the backup file onto a new Amazon RDS DB instance running MySQL. For more information, see Importing Data into an Amazon RDS MySQL DB Instance.

", "RestoreDBInstanceToPointInTime": "

Restores a DB instance to an arbitrary point in time. You can restore to any point in time before the time identified by the LatestRestorableTime property. You can restore to a point up to the number of days specified by the BackupRetentionPeriod property.

The target database is created with most of the original configuration, but in a system-selected availability zone, with the default security group, the default subnet group, and the default DB parameter group. By default, the new DB instance is created as a single-AZ deployment except when the instance is a SQL Server instance that has an option group that is associated with mirroring; in this case, the instance becomes a mirrored deployment and not a single-AZ deployment.

", "RevokeDBSecurityGroupIngress": "

Revokes ingress from a DBSecurityGroup for previously authorized IP ranges or EC2 or VPC Security Groups. Required parameters for this API are one of CIDRIP, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId).

", "StartDBInstance": "

Starts a DB instance that was stopped using the AWS console, the stop-db-instance AWS CLI command, or the StopDBInstance action. For more information, see Stopping and Starting a DB instance in the AWS RDS user guide.

", @@ -192,13 +194,13 @@ "AvailabilityZoneList": { "base": null, "refs": { - "OrderableDBInstanceOption$AvailabilityZones": "

A list of Availability Zones for the orderable DB instance.

" + "OrderableDBInstanceOption$AvailabilityZones": "

A list of Availability Zones for a DB instance.

" } }, "AvailabilityZones": { "base": null, "refs": { - "CreateDBClusterMessage$AvailabilityZones": "

A list of EC2 Availability Zones that instances in the DB cluster can be created in. For information on regions and Availability Zones, see Regions and Availability Zones.

", + "CreateDBClusterMessage$AvailabilityZones": "

A list of EC2 Availability Zones that instances in the DB cluster can be created in. For information on AWS Regions and Availability Zones, see Regions and Availability Zones.

", "DBCluster$AvailabilityZones": "

Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in.

", "DBClusterSnapshot$AvailabilityZones": "

Provides the list of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in.

", "RestoreDBClusterFromS3Message$AvailabilityZones": "

A list of EC2 Availability Zones that instances in the restored DB cluster can be created in.

", @@ -210,30 +212,30 @@ "refs": { "DBCluster$MultiAZ": "

Specifies whether the DB cluster has instances in multiple Availability Zones.

", "DBCluster$StorageEncrypted": "

Specifies whether the DB cluster is encrypted.

", - "DBCluster$IAMDatabaseAuthenticationEnabled": "

True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled; otherwise false.

", + "DBCluster$IAMDatabaseAuthenticationEnabled": "

True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.

", "DBClusterMember$IsClusterWriter": "

Value that is true if the cluster member is the primary instance for the DB cluster and false otherwise.

", "DBClusterSnapshot$StorageEncrypted": "

Specifies whether the DB cluster snapshot is encrypted.

", - "DBClusterSnapshot$IAMDatabaseAuthenticationEnabled": "

True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled; otherwise false.

", + "DBClusterSnapshot$IAMDatabaseAuthenticationEnabled": "

True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.

", "DBInstance$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment.

", "DBInstance$AutoMinorVersionUpgrade": "

Indicates that minor version patches are applied automatically.

", - "DBInstance$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC:true

  • VPC:false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", + "DBInstance$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC:true

  • VPC:false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private.

", "DBInstance$StorageEncrypted": "

Specifies whether the DB instance is encrypted.

", "DBInstance$CopyTagsToSnapshot": "

Specifies whether tags are copied from the DB instance to snapshots of the DB instance.

", - "DBInstance$IAMDatabaseAuthenticationEnabled": "

True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled; otherwise false.

IAM database authentication can be enabled for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

  • Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type.

", + "DBInstance$IAMDatabaseAuthenticationEnabled": "

True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.

IAM database authentication can be enabled for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

  • Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type.

", "DBInstanceStatusInfo$Normal": "

Boolean value that is true if the instance is operating normally, or false if the instance is in an error state.

", "DBSnapshot$Encrypted": "

Specifies whether the DB snapshot is encrypted.

", - "DBSnapshot$IAMDatabaseAuthenticationEnabled": "

True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled; otherwise false.

", + "DBSnapshot$IAMDatabaseAuthenticationEnabled": "

True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.

", "DeleteDBClusterMessage$SkipFinalSnapshot": "

Determines whether a final DB cluster snapshot is created before the DB cluster is deleted. If true is specified, no DB cluster snapshot is created. If false is specified, a DB cluster snapshot is created before the DB cluster is deleted.

You must specify a FinalDBSnapshotIdentifier parameter if SkipFinalSnapshot is false.

Default: false

", "DeleteDBInstanceMessage$SkipFinalSnapshot": "

Determines whether a final DB snapshot is created before the DB instance is deleted. If true is specified, no DBSnapshot is created. If false is specified, a DB snapshot is created before the DB instance is deleted.

Note that when a DB instance is in a failure state and has a status of 'failed', 'incompatible-restore', or 'incompatible-network', it can only be deleted when the SkipFinalSnapshot parameter is set to \"true\".

Specify true when deleting a Read Replica.

The FinalDBSnapshotIdentifier parameter must be specified if SkipFinalSnapshot is false.

Default: false

", - "DescribeDBClusterSnapshotsMessage$IncludeShared": "

Set this value to true to include shared manual DB cluster snapshots from other AWS accounts that this AWS account has been given permission to copy or restore, otherwise set this value to false. The default is false.

You can give an AWS account permission to restore a manual DB cluster snapshot from another AWS account by the ModifyDBClusterSnapshotAttribute API action.

", - "DescribeDBClusterSnapshotsMessage$IncludePublic": "

Set this value to true to include manual DB cluster snapshots that are public and can be copied or restored by any AWS account, otherwise set this value to false. The default is false. The default is false.

You can share a manual DB cluster snapshot as public by using the ModifyDBClusterSnapshotAttribute API action.

", + "DescribeDBClusterSnapshotsMessage$IncludeShared": "

True to include shared manual DB cluster snapshots from other AWS accounts that this AWS account has been given permission to copy or restore, and otherwise false. The default is false.

You can give an AWS account permission to restore a manual DB cluster snapshot from another AWS account by the ModifyDBClusterSnapshotAttribute API action.

", + "DescribeDBClusterSnapshotsMessage$IncludePublic": "

True to include manual DB cluster snapshots that are public and can be copied or restored by any AWS account, and otherwise false. The default is false. The default is false.

You can share a manual DB cluster snapshot as public by using the ModifyDBClusterSnapshotAttribute API action.

", "DescribeDBEngineVersionsMessage$DefaultOnly": "

Indicates that only the default version of the specified engine or engine and major version combination is returned.

", - "DescribeDBSnapshotsMessage$IncludeShared": "

Set this value to true to include shared manual DB snapshots from other AWS accounts that this AWS account has been given permission to copy or restore, otherwise set this value to false. The default is false.

You can give an AWS account permission to restore a manual DB snapshot from another AWS account by using the ModifyDBSnapshotAttribute API action.

", - "DescribeDBSnapshotsMessage$IncludePublic": "

Set this value to true to include manual DB snapshots that are public and can be copied or restored by any AWS account, otherwise set this value to false. The default is false.

You can share a manual DB snapshot as public by using the ModifyDBSnapshotAttribute API.

", + "DescribeDBSnapshotsMessage$IncludeShared": "

True to include shared manual DB snapshots from other AWS accounts that this AWS account has been given permission to copy or restore, and otherwise false. The default is false.

You can give an AWS account permission to restore a manual DB snapshot from another AWS account by using the ModifyDBSnapshotAttribute API action.

", + "DescribeDBSnapshotsMessage$IncludePublic": "

True to include manual DB snapshots that are public and can be copied or restored by any AWS account, and otherwise false. The default is false.

You can share a manual DB snapshot as public by using the ModifyDBSnapshotAttribute API.

", "DownloadDBLogFilePortionDetails$AdditionalDataPending": "

Boolean value that if true, indicates there is more data to be downloaded.

", "EventSubscription$Enabled": "

A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.

", "ModifyDBClusterMessage$ApplyImmediately": "

A value that specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB cluster. If this parameter is set to false, changes to the DB cluster are applied during the next maintenance window.

The ApplyImmediately parameter only affects the NewDBClusterIdentifier and MasterUserPassword values. If you set the ApplyImmediately parameter value to false, then changes to the NewDBClusterIdentifier and MasterUserPassword values are applied during the next maintenance window. All other changes are applied immediately, regardless of the value of the ApplyImmediately parameter.

Default: false

", - "ModifyDBInstanceMessage$ApplyImmediately": "

Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB instance.

If this parameter is set to false, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and will be applied on the next call to RebootDBInstance, or the next failure reboot. Review the table of parameters in Modifying a DB Instance and Using the Apply Immediately Parameter to see the impact that setting ApplyImmediately to true or false has for each modified parameter and to determine when the changes will be applied.

Default: false

", + "ModifyDBInstanceMessage$ApplyImmediately": "

Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB instance.

If this parameter is set to false, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and are applied on the next call to RebootDBInstance, or the next failure reboot. Review the table of parameters in Modifying a DB Instance and Using the Apply Immediately Parameter to see the impact that setting ApplyImmediately to true or false has for each modified parameter and to determine when the changes are applied.

Default: false

", "ModifyDBInstanceMessage$AllowMajorVersionUpgrade": "

Indicates that major version upgrades are allowed. Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible.

Constraints: This parameter must be set to true when specifying a value for the EngineVersion parameter that is a different major version than the DB instance's current version.

", "ModifyOptionGroupMessage$ApplyImmediately": "

Indicates whether the changes should be applied immediately, or during the next maintenance window for each instance associated with the option group.

", "Option$Persistent": "

Indicate if this option is persistent.

", @@ -242,74 +244,89 @@ "OptionGroupOption$PortRequired": "

Specifies whether the option requires a port.

", "OptionGroupOption$Persistent": "

Persistent options can't be removed from an option group while DB instances are associated with the option group. If you disassociate all DB instances from the option group, your can remove the persistent option from the option group.

", "OptionGroupOption$Permanent": "

Permanent options can never be removed from an option group. An option group containing a permanent option can't be removed from a DB instance.

", + "OptionGroupOption$RequiresAutoMinorEngineVersionUpgrade": "

If true, you must enable the Auto Minor Version Upgrade setting for your DB instance before you can use this option. You can enable Auto Minor Version Upgrade when you first create your DB instance, or by modifying your DB instance later.

", + "OptionGroupOption$VpcOnly": "

If true, you can only use this option with a DB instance that is in a VPC.

", "OptionGroupOptionSetting$IsModifiable": "

Boolean value where true indicates that this option group option can be changed from the default value.

", "OptionSetting$IsModifiable": "

A Boolean value that, when true, indicates the option setting can be modified from the default.

", "OptionSetting$IsCollection": "

Indicates if the option setting is part of a collection.

", - "OptionVersion$IsDefault": "

True if the version is the default version of the option; otherwise, false.

", - "OrderableDBInstanceOption$MultiAZCapable": "

Indicates whether this orderable DB instance is multi-AZ capable.

", - "OrderableDBInstanceOption$ReadReplicaCapable": "

Indicates whether this orderable DB instance can have a Read Replica.

", - "OrderableDBInstanceOption$Vpc": "

Indicates whether this is a VPC orderable DB instance.

", - "OrderableDBInstanceOption$SupportsStorageEncryption": "

Indicates whether this orderable DB instance supports encrypted storage.

", - "OrderableDBInstanceOption$SupportsIops": "

Indicates whether this orderable DB instance supports provisioned IOPS.

", - "OrderableDBInstanceOption$SupportsEnhancedMonitoring": "

Indicates whether the DB instance supports enhanced monitoring at intervals from 1 to 60 seconds.

", - "OrderableDBInstanceOption$SupportsIAMDatabaseAuthentication": "

Indicates whether this orderable DB instance supports IAM database authentication.

", + "OptionVersion$IsDefault": "

True if the version is the default version of the option, and otherwise false.

", + "OrderableDBInstanceOption$MultiAZCapable": "

Indicates whether a DB instance is Multi-AZ capable.

", + "OrderableDBInstanceOption$ReadReplicaCapable": "

Indicates whether a DB instance can have a Read Replica.

", + "OrderableDBInstanceOption$Vpc": "

Indicates whether a DB instance is in a VPC.

", + "OrderableDBInstanceOption$SupportsStorageEncryption": "

Indicates whether a DB instance supports encrypted storage.

", + "OrderableDBInstanceOption$SupportsIops": "

Indicates whether a DB instance supports provisioned IOPS.

", + "OrderableDBInstanceOption$SupportsEnhancedMonitoring": "

Indicates whether a DB instance supports Enhanced Monitoring at intervals from 1 to 60 seconds.

", + "OrderableDBInstanceOption$SupportsIAMDatabaseAuthentication": "

Indicates whether a DB instance supports IAM database authentication.

", + "OrderableDBInstanceOption$SupportsPerformanceInsights": "

True if a DB instance supports Performance Insights, otherwise false.

", "Parameter$IsModifiable": "

Indicates whether (true) or not (false) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.

", "ReservedDBInstance$MultiAZ": "

Indicates if the reservation applies to Multi-AZ deployments.

", "ReservedDBInstancesOffering$MultiAZ": "

Indicates if the offering applies to Multi-AZ deployments.

", - "ResetDBClusterParameterGroupMessage$ResetAllParameters": "

A value that is set to true to reset all parameters in the DB cluster parameter group to their default values, and false otherwise. You cannot use this parameter if there is a list of parameter names specified for the Parameters parameter.

", + "ResetDBClusterParameterGroupMessage$ResetAllParameters": "

A value that is set to true to reset all parameters in the DB cluster parameter group to their default values, and false otherwise. You can't use this parameter if there is a list of parameter names specified for the Parameters parameter.

", "ResetDBParameterGroupMessage$ResetAllParameters": "

Specifies whether (true) or not (false) to reset all parameters in the DB parameter group to default values.

Default: true

", "RestoreDBClusterToPointInTimeMessage$UseLatestRestorableTime": "

A value that is set to true to restore the DB cluster to the latest restorable backup time, and false otherwise.

Default: false

Constraints: Cannot be specified if RestoreToTime parameter is provided.

", "RestoreDBInstanceToPointInTimeMessage$UseLatestRestorableTime": "

Specifies whether (true) or not (false) the DB instance is restored from the latest backup time.

Default: false

Constraints: Cannot be specified if RestoreTime parameter is provided.

", - "UpgradeTarget$AutoUpgrade": "

A value that indicates whether the target version will be applied to any source DB instances that have AutoMinorVersionUpgrade set to true.

", - "UpgradeTarget$IsMajorVersionUpgrade": "

A value that indicates whether a database engine will be upgraded to a major version.

" + "UpgradeTarget$AutoUpgrade": "

A value that indicates whether the target version is applied to any source DB instances that have AutoMinorVersionUpgrade set to true.

", + "UpgradeTarget$IsMajorVersionUpgrade": "

A value that indicates whether a database engine is upgraded to a major version.

" } }, "BooleanOptional": { "base": null, "refs": { - "CopyDBClusterSnapshotMessage$CopyTags": "

True to copy all tags from the source DB cluster snapshot to the target DB cluster snapshot; otherwise false. The default is false.

", - "CopyDBSnapshotMessage$CopyTags": "

True to copy all tags from the source DB snapshot to the target DB snapshot; otherwise false. The default is false.

", + "CopyDBClusterSnapshotMessage$CopyTags": "

True to copy all tags from the source DB cluster snapshot to the target DB cluster snapshot, and otherwise false. The default is false.

", + "CopyDBSnapshotMessage$CopyTags": "

True to copy all tags from the source DB snapshot to the target DB snapshot, and otherwise false. The default is false.

", "CreateDBClusterMessage$StorageEncrypted": "

Specifies whether the DB cluster is encrypted.

", - "CreateDBClusterMessage$EnableIAMDatabaseAuthentication": "

A Boolean value that is true to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", - "CreateDBInstanceMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the MultiAZ parameter is set to true.

", - "CreateDBInstanceMessage$AutoMinorVersionUpgrade": "

Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window.

Default: true

", - "CreateDBInstanceMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC: true

  • VPC: false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", - "CreateDBInstanceMessage$StorageEncrypted": "

Specifies whether the DB instance is encrypted.

Default: false

", - "CreateDBInstanceMessage$CopyTagsToSnapshot": "

True to copy all tags from the DB instance to snapshots of the DB instance; otherwise false. The default is false.

", - "CreateDBInstanceMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false.

You can enable IAM database authentication for the following database engines:

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

Default: false

", - "CreateDBInstanceReadReplicaMessage$AutoMinorVersionUpgrade": "

Indicates that minor engine upgrades will be applied automatically to the Read Replica during the maintenance window.

Default: Inherits from the source DB instance

", - "CreateDBInstanceReadReplicaMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC:true

  • VPC:false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", - "CreateDBInstanceReadReplicaMessage$CopyTagsToSnapshot": "

True to copy all tags from the Read Replica to snapshots of the Read Replica; otherwise false. The default is false.

", - "CreateDBInstanceReadReplicaMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false.

You can enable IAM database authentication for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

  • Aurora 5.6 or higher.

Default: false

", + "CreateDBClusterMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", + "CreateDBInstanceMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the MultiAZ parameter is set to true.

", + "CreateDBInstanceMessage$AutoMinorVersionUpgrade": "

Indicates that minor engine upgrades are applied automatically to the DB instance during the maintenance window.

Default: true

", + "CreateDBInstanceMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC: true

  • VPC: false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private.

", + "CreateDBInstanceMessage$StorageEncrypted": "

Specifies whether the DB instance is encrypted.

Amazon Aurora

Not applicable. The encryption for DB instances is managed by the DB cluster. For more information, see CreateDBCluster.

Default: false

", + "CreateDBInstanceMessage$CopyTagsToSnapshot": "

True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. The default is false.

", + "CreateDBInstanceMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

You can enable IAM database authentication for the following database engines:

Amazon Aurora

Not applicable. Mapping AWS IAM accounts to database accounts is managed by the DB cluster. For more information, see CreateDBCluster.

MySQL

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

Default: false

", + "CreateDBInstanceMessage$EnablePerformanceInsights": "

True to enable Performance Insights for the DB instance, and otherwise false.

", + "CreateDBInstanceReadReplicaMessage$AutoMinorVersionUpgrade": "

Indicates that minor engine upgrades are applied automatically to the Read Replica during the maintenance window.

Default: Inherits from the source DB instance

", + "CreateDBInstanceReadReplicaMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC:true

  • VPC:false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private.

", + "CreateDBInstanceReadReplicaMessage$CopyTagsToSnapshot": "

True to copy all tags from the Read Replica to snapshots of the Read Replica, and otherwise false. The default is false.

", + "CreateDBInstanceReadReplicaMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

You can enable IAM database authentication for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

  • Aurora 5.6 or higher.

Default: false

", + "CreateDBInstanceReadReplicaMessage$EnablePerformanceInsights": "

True to enable Performance Insights for the read replica, and otherwise false.

", "CreateEventSubscriptionMessage$Enabled": "

A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it.

", + "DBInstance$PerformanceInsightsEnabled": "

True if Performance Insights is enabled for the DB instance, and otherwise false.

", "DescribeDBEngineVersionsMessage$ListSupportedCharacterSets": "

If this parameter is specified and the requested engine supports the CharacterSetName parameter for CreateDBInstance, the response includes a list of supported character sets for each engine version.

", "DescribeDBEngineVersionsMessage$ListSupportedTimezones": "

If this parameter is specified and the requested engine supports the TimeZone parameter for CreateDBInstance, the response includes a list of supported time zones for each engine version.

", "DescribeOrderableDBInstanceOptionsMessage$Vpc": "

The VPC filter value. Specify this parameter to show only the available VPC or non-VPC offerings.

", "DescribeReservedDBInstancesMessage$MultiAZ": "

The Multi-AZ filter value. Specify this parameter to show only those reservations matching the specified Multi-AZ parameter.

", "DescribeReservedDBInstancesOfferingsMessage$MultiAZ": "

The Multi-AZ filter value. Specify this parameter to show only the available offerings matching the specified Multi-AZ parameter.

", - "ModifyDBClusterMessage$EnableIAMDatabaseAuthentication": "

A Boolean value that is true to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", + "ModifyDBClusterMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", "ModifyDBInstanceMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment. Changing this parameter does not result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request.

Constraints: Cannot be specified if the DB instance is a Read Replica.

", - "ModifyDBInstanceMessage$AutoMinorVersionUpgrade": "

Indicates that minor version upgrades will be applied automatically to the DB instance during the maintenance window. Changing this parameter does not result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to true during the maintenance window, and a newer minor version is available, and RDS has enabled auto patching for that engine version.

", - "ModifyDBInstanceMessage$CopyTagsToSnapshot": "

True to copy all tags from the DB instance to snapshots of the DB instance; otherwise false. The default is false.

", + "ModifyDBInstanceMessage$AutoMinorVersionUpgrade": "

Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window. Changing this parameter does not result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to true during the maintenance window, and a newer minor version is available, and RDS has enabled auto patching for that engine version.

", + "ModifyDBInstanceMessage$CopyTagsToSnapshot": "

True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. The default is false.

", "ModifyDBInstanceMessage$PubliclyAccessible": "

Boolean value that indicates if the DB instance has a publicly resolvable DNS name. Set to True to make the DB instance Internet-facing with a publicly resolvable DNS name, which resolves to a public IP address. Set to False to make the DB instance internal with a DNS name that resolves to a private IP address.

PubliclyAccessible only applies to DB instances in a VPC. The DB instance must be part of a public subnet and PubliclyAccessible must be true in order for it to be publicly accessible.

Changes to the PubliclyAccessible parameter are applied immediately regardless of the value of the ApplyImmediately parameter.

Default: false

", - "ModifyDBInstanceMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false.

You can enable IAM database authentication for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

Default: false

", + "ModifyDBInstanceMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

You can enable IAM database authentication for the following database engines

Amazon Aurora

Not applicable. Mapping AWS IAM accounts to database accounts is managed by the DB cluster. For more information, see ModifyDBCluster.

MySQL

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

Default: false

", + "ModifyDBInstanceMessage$EnablePerformanceInsights": "

True to enable Performance Insights for the DB instance, and otherwise false.

", "ModifyEventSubscriptionMessage$Enabled": "

A Boolean value; set to true to activate the subscription.

", + "OptionGroupOption$SupportsOptionVersionDowngrade": "

If true, you can change the option to an earlier version of the option. This only applies to options that have different versions available.

", "PendingModifiedValues$MultiAZ": "

Indicates that the Single-AZ DB instance is to change to a Multi-AZ deployment.

", - "RebootDBInstanceMessage$ForceFailover": "

When true, the reboot will be conducted through a MultiAZ failover.

Constraint: You cannot specify true if the instance is not configured for MultiAZ.

", + "RebootDBInstanceMessage$ForceFailover": "

When true, the reboot is conducted through a MultiAZ failover.

Constraint: You can't specify true if the instance is not configured for MultiAZ.

", "RestoreDBClusterFromS3Message$StorageEncrypted": "

Specifies whether the restored DB cluster is encrypted.

", - "RestoreDBClusterFromS3Message$EnableIAMDatabaseAuthentication": "

A Boolean value that is true to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", - "RestoreDBClusterFromSnapshotMessage$EnableIAMDatabaseAuthentication": "

A Boolean value that is true to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", - "RestoreDBClusterToPointInTimeMessage$EnableIAMDatabaseAuthentication": "

A Boolean value that is true to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", - "RestoreDBInstanceFromDBSnapshotMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment.

Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

", - "RestoreDBInstanceFromDBSnapshotMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC: true

  • VPC: false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", - "RestoreDBInstanceFromDBSnapshotMessage$AutoMinorVersionUpgrade": "

Indicates that minor version upgrades will be applied automatically to the DB instance during the maintenance window.

", - "RestoreDBInstanceFromDBSnapshotMessage$CopyTagsToSnapshot": "

True to copy all tags from the restored DB instance to snapshots of the DB instance; otherwise false. The default is false.

", - "RestoreDBInstanceFromDBSnapshotMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false.

You can enable IAM database authentication for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

  • Aurora 5.6 or higher.

Default: false

", - "RestoreDBInstanceToPointInTimeMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment.

Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

", - "RestoreDBInstanceToPointInTimeMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC:true

  • VPC:false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", - "RestoreDBInstanceToPointInTimeMessage$AutoMinorVersionUpgrade": "

Indicates that minor version upgrades will be applied automatically to the DB instance during the maintenance window.

", - "RestoreDBInstanceToPointInTimeMessage$CopyTagsToSnapshot": "

True to copy all tags from the restored DB instance to snapshots of the DB instance; otherwise false. The default is false.

", - "RestoreDBInstanceToPointInTimeMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts; otherwise false.

You can enable IAM database authentication for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

  • Aurora 5.6 or higher.

Default: false

" + "RestoreDBClusterFromS3Message$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", + "RestoreDBClusterFromSnapshotMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", + "RestoreDBClusterToPointInTimeMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", + "RestoreDBInstanceFromDBSnapshotMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment.

Constraint: You can't specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

", + "RestoreDBInstanceFromDBSnapshotMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC: true

  • VPC: false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private.

", + "RestoreDBInstanceFromDBSnapshotMessage$AutoMinorVersionUpgrade": "

Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window.

", + "RestoreDBInstanceFromDBSnapshotMessage$CopyTagsToSnapshot": "

True to copy all tags from the restored DB instance to snapshots of the DB instance, and otherwise false. The default is false.

", + "RestoreDBInstanceFromDBSnapshotMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

You can enable IAM database authentication for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

  • Aurora 5.6 or higher.

Default: false

", + "RestoreDBInstanceFromS3Message$MultiAZ": "

Specifies whether the DB instance is a Multi-AZ deployment. If MultiAZ is set to true, you can't set the AvailabilityZone parameter.

", + "RestoreDBInstanceFromS3Message$AutoMinorVersionUpgrade": "

True to indicate that minor engine upgrades are applied automatically to the DB instance during the maintenance window, and otherwise false.

Default: true

", + "RestoreDBInstanceFromS3Message$PubliclyAccessible": "

Specifies whether the DB instance is publicly accessible or not. For more information, see CreateDBInstance.

", + "RestoreDBInstanceFromS3Message$StorageEncrypted": "

Specifies whether the new DB instance is encrypted or not.

", + "RestoreDBInstanceFromS3Message$CopyTagsToSnapshot": "

True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false.

Default: false.

", + "RestoreDBInstanceFromS3Message$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

Default: false

", + "RestoreDBInstanceFromS3Message$EnablePerformanceInsights": "

True to enable Performance Insights for the DB instance, and otherwise false.

", + "RestoreDBInstanceToPointInTimeMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment.

Constraint: You can't specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

", + "RestoreDBInstanceToPointInTimeMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC:true

  • VPC:false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private.

", + "RestoreDBInstanceToPointInTimeMessage$AutoMinorVersionUpgrade": "

Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window.

", + "RestoreDBInstanceToPointInTimeMessage$CopyTagsToSnapshot": "

True to copy all tags from the restored DB instance to snapshots of the DB instance, and otherwise false. The default is false.

", + "RestoreDBInstanceToPointInTimeMessage$EnableIAMDatabaseAuthentication": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

You can enable IAM database authentication for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

  • Aurora 5.6 or higher.

Default: false

" } }, "Certificate": { @@ -502,7 +519,7 @@ } }, "DBCluster": { - "base": "

Contains the result of a successful invocation of the following actions:

This data type is used as a response element in the DescribeDBClusters action.

", + "base": "

Contains the details of an Amazon RDS DB cluster.

This data type is used as a response element in the DescribeDBClusters action.

", "refs": { "CreateDBClusterResult$DBCluster": null, "DBClusterList$member": null, @@ -561,7 +578,7 @@ } }, "DBClusterParameterGroup": { - "base": "

Contains the result of a successful invocation of the CreateDBClusterParameterGroup or CopyDBClusterParameterGroup action.

This data type is used as a request parameter in the DeleteDBClusterParameterGroup action, and as a response element in the DescribeDBClusterParameterGroups action.

", + "base": "

Contains the details of an Amazon RDS DB cluster parameter group.

This data type is used as a response element in the DescribeDBClusterParameterGroups action.

", "refs": { "CopyDBClusterParameterGroupResult$DBClusterParameterGroup": null, "CreateDBClusterParameterGroupResult$DBClusterParameterGroup": null, @@ -627,7 +644,7 @@ } }, "DBClusterSnapshot": { - "base": "

Contains the result of a successful invocation of the following actions:

This data type is used as a response element in the DescribeDBClusterSnapshots action.

", + "base": "

Contains the details for an Amazon RDS DB cluster snapshot

This data type is used as a response element in the DescribeDBClusterSnapshots action.

", "refs": { "CopyDBClusterSnapshotResult$DBClusterSnapshot": null, "CreateDBClusterSnapshotResult$DBClusterSnapshot": null, @@ -693,7 +710,7 @@ } }, "DBInstance": { - "base": "

Contains the result of a successful invocation of the following actions:

This data type is used as a response element in the DescribeDBInstances action.

", + "base": "

Contains the details of an Amazon RDS DB instance.

This data type is used as a response element in the DescribeDBInstances action.

", "refs": { "CreateDBInstanceReadReplicaResult$DBInstance": null, "CreateDBInstanceResult$DBInstance": null, @@ -703,6 +720,7 @@ "PromoteReadReplicaResult$DBInstance": null, "RebootDBInstanceResult$DBInstance": null, "RestoreDBInstanceFromDBSnapshotResult$DBInstance": null, + "RestoreDBInstanceFromS3Result$DBInstance": null, "RestoreDBInstanceToPointInTimeResult$DBInstance": null, "StartDBInstanceResult$DBInstance": null, "StopDBInstanceResult$DBInstance": null @@ -738,7 +756,7 @@ "DBInstanceStatusInfoList": { "base": null, "refs": { - "DBInstance$StatusInfos": "

The status of a Read Replica. If the instance is not a Read Replica, this will be blank.

" + "DBInstance$StatusInfos": "

The status of a Read Replica. If the instance is not a Read Replica, this is blank.

" } }, "DBLogFileNotFoundFault": { @@ -747,7 +765,7 @@ } }, "DBParameterGroup": { - "base": "

Contains the result of a successful invocation of the CreateDBParameterGroup action.

This data type is used as a request parameter in the DeleteDBParameterGroup action, and as a response element in the DescribeDBParameterGroups action.

", + "base": "

Contains the details of an Amazon RDS DB parameter group.

This data type is used as a response element in the DescribeDBParameterGroups action.

", "refs": { "CopyDBParameterGroupResult$DBParameterGroup": null, "CreateDBParameterGroupResult$DBParameterGroup": null, @@ -803,7 +821,7 @@ } }, "DBSecurityGroup": { - "base": "

Contains the result of a successful invocation of the following actions:

This data type is used as a response element in the DescribeDBSecurityGroups action.

", + "base": "

Contains the details for an Amazon RDS DB security group.

This data type is used as a response element in the DescribeDBSecurityGroups action.

", "refs": { "AuthorizeDBSecurityGroupIngressResult$DBSecurityGroup": null, "CreateDBSecurityGroupResult$DBSecurityGroup": null, @@ -838,8 +856,9 @@ "base": null, "refs": { "CreateDBInstanceMessage$DBSecurityGroups": "

A list of DB security groups to associate with this DB instance.

Default: The default DB security group for the database engine.

", - "ModifyDBInstanceMessage$DBSecurityGroups": "

A list of DB security groups to authorize on this DB instance. Changing this setting does not result in an outage and the change is asynchronously applied as soon as possible.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "OptionConfiguration$DBSecurityGroupMemberships": "

A list of DBSecurityGroupMemebrship name strings used for this option.

" + "ModifyDBInstanceMessage$DBSecurityGroups": "

A list of DB security groups to authorize on this DB instance. Changing this setting does not result in an outage and the change is asynchronously applied as soon as possible.

Constraints:

  • If supplied, must match existing DBSecurityGroups.

", + "OptionConfiguration$DBSecurityGroupMemberships": "

A list of DBSecurityGroupMemebrship name strings used for this option.

", + "RestoreDBInstanceFromS3Message$DBSecurityGroups": "

A list of DB security groups to associate with this DB instance.

Default: The default DB security group for the database engine.

" } }, "DBSecurityGroupNotFoundFault": { @@ -864,7 +883,7 @@ } }, "DBSnapshot": { - "base": "

Contains the result of a successful invocation of the following actions:

This data type is used as a response element in the DescribeDBSnapshots action.

", + "base": "

Contains the details of an Amazon RDS DB snapshot.

This data type is used as a response element in the DescribeDBSnapshots action.

", "refs": { "CopyDBSnapshotResult$DBSnapshot": null, "CreateDBSnapshotResult$DBSnapshot": null, @@ -914,7 +933,7 @@ } }, "DBSubnetGroup": { - "base": "

Contains the result of a successful invocation of the following actions:

This data type is used as a response element in the DescribeDBSubnetGroups action.

", + "base": "

Contains the details of an Amazon RDS DB subnet group.

This data type is used as a response element in the DescribeDBSubnetGroups action.

", "refs": { "CreateDBSubnetGroupResult$DBSubnetGroup": null, "DBInstance$DBSubnetGroup": "

Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.

", @@ -1220,6 +1239,16 @@ "refs": { } }, + "DescribeValidDBInstanceModificationsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeValidDBInstanceModificationsResult": { + "base": null, + "refs": { + } + }, "DomainMembership": { "base": "

An Active Directory Domain membership record associated with the DB instance.

", "refs": { @@ -1240,6 +1269,8 @@ "Double": { "base": null, "refs": { + "DoubleRange$From": "

The minimum value in the range.

", + "DoubleRange$To": "

The maximum value in the range.

", "RecurringCharge$RecurringChargeAmount": "

The amount of the recurring charge.

", "ReservedDBInstance$FixedPrice": "

The fixed price charged for this reserved DB instance.

", "ReservedDBInstance$UsagePrice": "

The hourly price charged for this reserved DB instance.

", @@ -1247,6 +1278,25 @@ "ReservedDBInstancesOffering$UsagePrice": "

The hourly price charged for this offering.

" } }, + "DoubleOptional": { + "base": null, + "refs": { + "OrderableDBInstanceOption$MinIopsPerGib": "

Minimum provisioned IOPS per GiB for a DB instance.

", + "OrderableDBInstanceOption$MaxIopsPerGib": "

Maximum provisioned IOPS per GiB for a DB instance.

" + } + }, + "DoubleRange": { + "base": "

A range of double values.

", + "refs": { + "DoubleRangeList$member": null + } + }, + "DoubleRangeList": { + "base": null, + "refs": { + "ValidStorageOptions$IopsToStorageRatio": "

The valid range of Provisioned IOPS to gigabytes of storage multiplier. For example, 3-10, which means that provisioned IOPS can be between 3 and 10 times storage.

" + } + }, "DownloadDBLogFilePortionDetails": { "base": "

This data type is used as a response element to DownloadDBLogFilePortion.

", "refs": { @@ -1379,7 +1429,7 @@ "DescribeDBClusterSnapshotsMessage$Filters": "

This parameter is not currently supported.

", "DescribeDBClustersMessage$Filters": "

A filter that specifies one or more DB clusters to describe.

Supported filters:

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB clusters identified by these ARNs.

", "DescribeDBEngineVersionsMessage$Filters": "

Not currently supported.

", - "DescribeDBInstancesMessage$Filters": "

A filter that specifies one or more DB instances to describe.

Supported filters:

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB instances associated with the DB Clusters identified by these ARNs.

  • db-instance-id - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). The results list will only include information about the DB instances identified by these ARNs.

", + "DescribeDBInstancesMessage$Filters": "

A filter that specifies one or more DB instances to describe.

Supported filters:

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB instances associated with the DB clusters identified by these ARNs.

  • db-instance-id - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). The results list will only include information about the DB instances identified by these ARNs.

", "DescribeDBLogFilesMessage$Filters": "

This parameter is not currently supported.

", "DescribeDBParameterGroupsMessage$Filters": "

This parameter is not currently supported.

", "DescribeDBParametersMessage$Filters": "

This parameter is not currently supported.

", @@ -1451,8 +1501,10 @@ "DBSnapshot$AllocatedStorage": "

Specifies the allocated storage size in gigabytes (GB).

", "DBSnapshot$Port": "

Specifies the port that the database engine was listening on at the time of the snapshot.

", "DBSnapshot$PercentProgress": "

The percentage of the estimated data that has been transferred.

", - "DownloadDBLogFilePortionMessage$NumberOfLines": "

The number of lines to download. If the number of lines specified results in a file over 1 MB in size, the file will be truncated at 1 MB in size.

If the NumberOfLines parameter is specified, then the block of lines returned can be from the beginning or the end of the log file, depending on the value of the Marker parameter.

  • If neither Marker or NumberOfLines are specified, the entire log file is returned up to a maximum of 10000 lines, starting with the most recent log entries first.

  • If NumberOfLines is specified and Marker is not specified, then the most recent lines from the end of the log file are returned.

  • If Marker is specified as \"0\", then the specified number of lines from the beginning of the log file are returned.

  • You can download the log file in blocks of lines by specifying the size of the block using the NumberOfLines parameter, and by specifying a value of \"0\" for the Marker parameter in your first request. Include the Marker value returned in the response as the Marker value for the next request, continuing until the AdditionalDataPending response element returns false.

", + "DownloadDBLogFilePortionMessage$NumberOfLines": "

The number of lines to download. If the number of lines specified results in a file over 1 MB in size, the file is truncated at 1 MB in size.

If the NumberOfLines parameter is specified, then the block of lines returned can be from the beginning or the end of the log file, depending on the value of the Marker parameter.

  • If neither Marker or NumberOfLines are specified, the entire log file is returned up to a maximum of 10000 lines, starting with the most recent log entries first.

  • If NumberOfLines is specified and Marker is not specified, then the most recent lines from the end of the log file are returned.

  • If Marker is specified as \"0\", then the specified number of lines from the beginning of the log file are returned.

  • You can download the log file in blocks of lines by specifying the size of the block using the NumberOfLines parameter, and by specifying a value of \"0\" for the Marker parameter in your first request. Include the Marker value returned in the response as the Marker value for the next request, continuing until the AdditionalDataPending response element returns false.

", "Endpoint$Port": "

Specifies the port that the database engine is listening on.

", + "Range$From": "

The minimum value in the range.

", + "Range$To": "

The maximum value in the range.

", "ReservedDBInstance$Duration": "

The duration of the reservation in seconds.

", "ReservedDBInstance$DBInstanceCount": "

The number of reserved DB instances.

", "ReservedDBInstancesOffering$Duration": "

The duration of the offering in seconds.

" @@ -1463,10 +1515,10 @@ "refs": { "CreateDBClusterMessage$BackupRetentionPeriod": "

The number of days for which automated backups are retained. You must specify a minimum value of 1.

Default: 1

Constraints:

  • Must be a value from 1 to 35

", "CreateDBClusterMessage$Port": "

The port number on which the instances in the DB cluster accept connections.

Default: 3306

", - "CreateDBInstanceMessage$AllocatedStorage": "

The amount of storage (in gigabytes) to be initially allocated for the database instance.

Type: Integer

Amazon Aurora

Not applicable. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume.

MySQL

Constraints: Must be an integer from 5 to 6144.

MariaDB

Constraints: Must be an integer from 5 to 6144.

PostgreSQL

Constraints: Must be an integer from 5 to 6144.

Oracle

Constraints: Must be an integer from 10 to 6144.

SQL Server

Constraints: Must be an integer from 200 to 4096 (Standard Edition and Enterprise Edition) or from 20 to 4096 (Express Edition and Web Edition)

", - "CreateDBInstanceMessage$BackupRetentionPeriod": "

The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Default: 1

Constraints:

  • Must be a value from 0 to 35

  • Cannot be set to 0 if the DB instance is a source to Read Replicas

", + "CreateDBInstanceMessage$AllocatedStorage": "

The amount of storage (in gigabytes) to be initially allocated for the DB instance.

Type: Integer

Amazon Aurora

Not applicable. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume.

MySQL

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2): Must be an integer from 5 to 6144.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 6144.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

MariaDB

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2): Must be an integer from 5 to 6144.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 6144.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

PostgreSQL

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2): Must be an integer from 5 to 6144.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 6144.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

Oracle

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2): Must be an integer from 10 to 6144.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 6144.

  • Magnetic storage (standard): Must be an integer from 10 to 3072.

SQL Server

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2):

    • Enterprise and Standard editions: Must be an integer from 200 to 16384.

    • Web and Express editions: Must be an integer from 20 to 16384.

  • Provisioned IOPS storage (io1):

    • Enterprise and Standard editions: Must be an integer from 200 to 16384.

    • Web and Express editions: Must be an integer from 100 to 16384.

  • Magnetic storage (standard):

    • Enterprise and Standard editions: Must be an integer from 200 to 1024.

    • Web and Express editions: Must be an integer from 20 to 1024.

", + "CreateDBInstanceMessage$BackupRetentionPeriod": "

The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Amazon Aurora

Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see CreateDBCluster.

Default: 1

Constraints:

  • Must be a value from 0 to 35

  • Cannot be set to 0 if the DB instance is a source to Read Replicas

", "CreateDBInstanceMessage$Port": "

The port number on which the database accepts connections.

MySQL

Default: 3306

Valid Values: 1150-65535

Type: Integer

MariaDB

Default: 3306

Valid Values: 1150-65535

Type: Integer

PostgreSQL

Default: 5432

Valid Values: 1150-65535

Type: Integer

Oracle

Default: 1521

Valid Values: 1150-65535

SQL Server

Default: 1433

Valid Values: 1150-65535 except for 1434, 3389, 47001, 49152, and 49152 through 49156.

Amazon Aurora

Default: 3306

Valid Values: 1150-65535

Type: Integer

", - "CreateDBInstanceMessage$Iops": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance.

Constraints: Must be a multiple between 3 and 10 of the storage amount for the DB instance. Must also be an integer multiple of 1000. For example, if the size of your DB instance is 500 GB, then your Iops value can be 2000, 3000, 4000, or 5000.

", + "CreateDBInstanceMessage$Iops": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. For information about valid Iops values, see see Amazon RDS Provisioned IOPS Storage to Improve Performance.

Constraints: Must be a multiple between 3 and 10 of the storage amount for the DB instance. Must also be an integer multiple of 1000. For example, if the size of your DB instance is 500 GB, then your Iops value can be 2000, 3000, 4000, or 5000.

", "CreateDBInstanceMessage$MonitoringInterval": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.

If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0.

Valid Values: 0, 1, 5, 10, 15, 30, 60

", "CreateDBInstanceMessage$PromotionTier": "

A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster.

Default: 1

Valid Values: 0 - 15

", "CreateDBInstanceReadReplicaMessage$Port": "

The port number that the DB instance uses for connections.

Default: Inherits from the source DB instance

Valid Values: 1150-65535

", @@ -1507,27 +1559,37 @@ "DescribeSourceRegionsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

", "ModifyDBClusterMessage$BackupRetentionPeriod": "

The number of days for which automated backups are retained. You must specify a minimum value of 1.

Default: 1

Constraints:

  • Must be a value from 1 to 35

", "ModifyDBClusterMessage$Port": "

The port number on which the DB cluster accepts connections.

Constraints: Value must be 1150-65535

Default: The same port as the original DB cluster.

", - "ModifyDBInstanceMessage$AllocatedStorage": "

The new storage capacity of the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless ApplyImmediately is set to true for this request.

MySQL

Default: Uses existing setting

Valid Values: 5-6144

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

Type: Integer

MariaDB

Default: Uses existing setting

Valid Values: 5-6144

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

Type: Integer

PostgreSQL

Default: Uses existing setting

Valid Values: 5-6144

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

Type: Integer

Oracle

Default: Uses existing setting

Valid Values: 10-6144

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

SQL Server

Cannot be modified.

If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance will be available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance will be suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a Read Replica for the instance, and creating a DB snapshot of the instance.

", - "ModifyDBInstanceMessage$BackupRetentionPeriod": "

The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Changing this parameter can result in an outage if you change from 0 to a non-zero value or from a non-zero value to 0. These changes are applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If you change the parameter from one non-zero value to another non-zero value, the change is asynchronously applied as soon as possible.

Default: Uses existing setting

Constraints:

  • Must be a value from 0 to 35

  • Can be specified for a MySQL Read Replica only if the source is running MySQL 5.6

  • Can be specified for a PostgreSQL Read Replica only if the source is running PostgreSQL 9.3.5

  • Cannot be set to 0 if the DB instance is a source to Read Replicas

", - "ModifyDBInstanceMessage$Iops": "

The new Provisioned IOPS (I/O operations per second) value for the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request.

Default: Uses existing setting

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. If you are migrating from Provisioned IOPS to standard storage, set this value to 0. The DB instance will require a reboot for the change in storage type to take effect.

SQL Server

Setting the IOPS value for the SQL Server database engine is not supported.

Type: Integer

If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance will be available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance will be suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a Read Replica for the instance, and creating a DB snapshot of the instance.

", + "ModifyDBInstanceMessage$AllocatedStorage": "

The new storage capacity of the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless ApplyImmediately is set to true for this request.

MySQL

Default: Uses existing setting

Valid Values: 5-6144

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

Type: Integer

MariaDB

Default: Uses existing setting

Valid Values: 5-6144

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

Type: Integer

PostgreSQL

Default: Uses existing setting

Valid Values: 5-6144

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

Type: Integer

Oracle

Default: Uses existing setting

Valid Values: 10-6144

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

SQL Server

Cannot be modified.

If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance is available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance are suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a Read Replica for the instance, and creating a DB snapshot of the instance.

", + "ModifyDBInstanceMessage$BackupRetentionPeriod": "

The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Changing this parameter can result in an outage if you change from 0 to a non-zero value or from a non-zero value to 0. These changes are applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If you change the parameter from one non-zero value to another non-zero value, the change is asynchronously applied as soon as possible.

Amazon Aurora

Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see ModifyDBCluster.

Default: Uses existing setting

Constraints:

  • Must be a value from 0 to 35

  • Can be specified for a MySQL Read Replica only if the source is running MySQL 5.6

  • Can be specified for a PostgreSQL Read Replica only if the source is running PostgreSQL 9.3.5

  • Cannot be set to 0 if the DB instance is a source to Read Replicas

", + "ModifyDBInstanceMessage$Iops": "

The new Provisioned IOPS (I/O operations per second) value for the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request.

Default: Uses existing setting

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. If you are migrating from Provisioned IOPS to standard storage, set this value to 0. The DB instance will require a reboot for the change in storage type to take effect.

SQL Server

Setting the IOPS value for the SQL Server database engine is not supported.

Type: Integer

If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance is available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance are suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a Read Replica for the instance, and creating a DB snapshot of the instance.

", "ModifyDBInstanceMessage$MonitoringInterval": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.

If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0.

Valid Values: 0, 1, 5, 10, 15, 30, 60

", "ModifyDBInstanceMessage$DBPortNumber": "

The port number on which the database accepts connections.

The value of the DBPortNumber parameter must not match any of the port values specified for options in the option group for the DB instance.

Your database will restart when you change the DBPortNumber value regardless of the value of the ApplyImmediately parameter.

MySQL

Default: 3306

Valid Values: 1150-65535

MariaDB

Default: 3306

Valid Values: 1150-65535

PostgreSQL

Default: 5432

Valid Values: 1150-65535

Type: Integer

Oracle

Default: 1521

Valid Values: 1150-65535

SQL Server

Default: 1433

Valid Values: 1150-65535 except for 1434, 3389, 47001, 49152, and 49152 through 49156.

Amazon Aurora

Default: 3306

Valid Values: 1150-65535

", "ModifyDBInstanceMessage$PromotionTier": "

A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster.

Default: 1

Valid Values: 0 - 15

", "Option$Port": "

If required, the port configured for this option to use.

", "OptionConfiguration$Port": "

The optional port for the option.

", "OptionGroupOption$DefaultPort": "

If the option requires a port, specifies the default port for the option.

", - "PendingModifiedValues$AllocatedStorage": "

Contains the new AllocatedStorage size for the DB instance that will be applied or is in progress.

", + "OrderableDBInstanceOption$MinStorageSize": "

Minimum storage size for a DB instance.

", + "OrderableDBInstanceOption$MaxStorageSize": "

Maximum storage size for a DB instance.

", + "OrderableDBInstanceOption$MinIopsPerDbInstance": "

Minimum total provisioned IOPS for a DB instance.

", + "OrderableDBInstanceOption$MaxIopsPerDbInstance": "

Maximum total provisioned IOPS for a DB instance.

", + "PendingModifiedValues$AllocatedStorage": "

Contains the new AllocatedStorage size for the DB instance that will be applied or is currently being applied.

", "PendingModifiedValues$Port": "

Specifies the pending port for the DB instance.

", "PendingModifiedValues$BackupRetentionPeriod": "

Specifies the pending number of days for which automated backups are retained.

", - "PendingModifiedValues$Iops": "

Specifies the new Provisioned IOPS value for the DB instance that will be applied or is being applied.

", + "PendingModifiedValues$Iops": "

Specifies the new Provisioned IOPS value for the DB instance that will be applied or is currently being applied.

", "PromoteReadReplicaMessage$BackupRetentionPeriod": "

The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Default: 1

Constraints:

  • Must be a value from 0 to 8

", "PurchaseReservedDBInstancesOfferingMessage$DBInstanceCount": "

The number of instances to reserve.

Default: 1

", + "Range$Step": "

The step value for the range. For example, if you have a range of 5,000 to 10,000, with a step value of 1,000, the valid values start at 5,000 and step up by 1,000. Even though 7,500 is within the range, it isn't a valid value for the range. The valid values are 5,000, 6,000, 7,000, 8,000...

", "RestoreDBClusterFromS3Message$BackupRetentionPeriod": "

The number of days for which automated backups of the restored DB cluster are retained. You must specify a minimum value of 1.

Default: 1

Constraints:

  • Must be a value from 1 to 35

", "RestoreDBClusterFromS3Message$Port": "

The port number on which the instances in the restored DB cluster accept connections.

Default: 3306

", "RestoreDBClusterFromSnapshotMessage$Port": "

The port number on which the new DB cluster accepts connections.

Constraints: Value must be 1150-65535

Default: The same port as the original DB cluster.

", "RestoreDBClusterToPointInTimeMessage$Port": "

The port number on which the new DB cluster accepts connections.

Constraints: Value must be 1150-65535

Default: The same port as the original DB cluster.

", "RestoreDBInstanceFromDBSnapshotMessage$Port": "

The port number on which the database accepts connections.

Default: The same port as the original DB instance

Constraints: Value must be 1150-65535

", - "RestoreDBInstanceFromDBSnapshotMessage$Iops": "

Specifies the amount of provisioned IOPS for the DB instance, expressed in I/O operations per second. If this parameter is not specified, the IOPS value will be taken from the backup. If this parameter is set to 0, the new instance will be converted to a non-PIOPS instance, which will take additional time, though your DB instance will be available for connections before the conversion starts.

Constraints: Must be an integer greater than 1000.

SQL Server

Setting the IOPS value for the SQL Server database engine is not supported.

", + "RestoreDBInstanceFromDBSnapshotMessage$Iops": "

Specifies the amount of provisioned IOPS for the DB instance, expressed in I/O operations per second. If this parameter is not specified, the IOPS value is taken from the backup. If this parameter is set to 0, the new instance is converted to a non-PIOPS instance. The conversion takes additional time, though your DB instance is available for connections before the conversion starts.

The provisioned IOPS value must follow the requirements for your database engine. For more information, see Amazon RDS Provisioned IOPS Storage to Improve Performance.

Constraints: Must be an integer greater than 1000.

", + "RestoreDBInstanceFromS3Message$AllocatedStorage": "

The amount of storage (in gigabytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance.

Be sure to allocate enough memory for your new DB instance so that the restore operation can succeed. You can also allocate additional memory for future growth.

", + "RestoreDBInstanceFromS3Message$BackupRetentionPeriod": "

The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. For more information, see CreateDBInstance.

", + "RestoreDBInstanceFromS3Message$Port": "

The port number on which the database accepts connections.

Type: Integer

Valid Values: 1150-65535

Default: 3306

", + "RestoreDBInstanceFromS3Message$Iops": "

The amount of Provisioned IOPS (input/output operations per second) to allocate initially for the DB instance. For information about valid Iops values, see see Amazon RDS Provisioned IOPS Storage to Improve Performance.

", + "RestoreDBInstanceFromS3Message$MonitoringInterval": "

The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0.

If MonitoringRoleArn is specified, then you must also set MonitoringInterval to a value other than 0.

Valid Values: 0, 1, 5, 10, 15, 30, 60

Default: 0

", "RestoreDBInstanceToPointInTimeMessage$Port": "

The port number on which the database accepts connections.

Constraints: Value must be 1150-65535

Default: The same port as the original DB instance.

", "RestoreDBInstanceToPointInTimeMessage$Iops": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance.

Constraints: Must be an integer greater than 1000.

SQL Server

Setting the IOPS value for the SQL Server database engine is not supported.

" } @@ -1874,7 +1936,7 @@ } }, "OrderableDBInstanceOption": { - "base": "

Contains a list of available options for a DB instance

This data type is used as a response element in the DescribeOrderableDBInstanceOptions action.

", + "base": "

Contains a list of available options for a DB instance.

This data type is used as a response element in the DescribeOrderableDBInstanceOptions action.

", "refs": { "OrderableDBInstanceOptionsList$member": null } @@ -1904,7 +1966,7 @@ "EngineDefaults$Parameters": "

Contains a list of engine default parameters.

", "ModifyDBClusterParameterGroupMessage$Parameters": "

A list of parameters in the DB cluster parameter group to modify.

", "ModifyDBParameterGroupMessage$Parameters": "

An array of parameter names, values, and the apply method for the parameter update. At least one parameter name, value, and apply method must be supplied; subsequent arguments are optional. A maximum of 20 parameters can be modified in a single request.

Valid Values (for the application method): immediate | pending-reboot

You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when you reboot the DB instance without failover.

", - "ResetDBClusterParameterGroupMessage$Parameters": "

A list of parameter names in the DB cluster parameter group to reset to the default values. You cannot use this parameter if the ResetAllParameters parameter is set to true.

", + "ResetDBClusterParameterGroupMessage$Parameters": "

A list of parameter names in the DB cluster parameter group to reset to the default values. You can't use this parameter if the ResetAllParameters parameter is set to true.

", "ResetDBParameterGroupMessage$Parameters": "

To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. To reset specific parameters, provide a list of the following: ParameterName and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

MySQL

Valid Values (for Apply method): immediate | pending-reboot

You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when DB instance reboots.

MariaDB

Valid Values (for Apply method): immediate | pending-reboot

You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when DB instance reboots.

Oracle

Valid Values (for Apply method): pending-reboot

" } }, @@ -1977,6 +2039,19 @@ "refs": { } }, + "Range": { + "base": "

A range of integer values.

", + "refs": { + "RangeList$member": null + } + }, + "RangeList": { + "base": null, + "refs": { + "ValidStorageOptions$StorageSize": "

The valid range of storage in gigabytes. For example, 100 to 6144.

", + "ValidStorageOptions$ProvisionedIops": "

The valid range of provisioned IOPS. For example, 1000-20000.

" + } + }, "ReadReplicaDBClusterIdentifierList": { "base": null, "refs": { @@ -2155,6 +2230,16 @@ "refs": { } }, + "RestoreDBInstanceFromS3Message": { + "base": null, + "refs": { + } + }, + "RestoreDBInstanceFromS3Result": { + "base": null, + "refs": { + } + }, "RestoreDBInstanceToPointInTimeMessage": { "base": "

", "refs": { @@ -2203,7 +2288,7 @@ "SourceIdsList": { "base": null, "refs": { - "CreateEventSubscriptionMessage$SourceIds": "

The list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens.

Constraints:

  • If SourceIds are supplied, SourceType must also be provided.

  • If the source type is a DB instance, then a DBInstanceIdentifier must be supplied.

  • If the source type is a DB security group, a DBSecurityGroupName must be supplied.

  • If the source type is a DB parameter group, a DBParameterGroupName must be supplied.

  • If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied.

", + "CreateEventSubscriptionMessage$SourceIds": "

The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.

Constraints:

  • If SourceIds are supplied, SourceType must also be provided.

  • If the source type is a DB instance, then a DBInstanceIdentifier must be supplied.

  • If the source type is a DB security group, a DBSecurityGroupName must be supplied.

  • If the source type is a DB parameter group, a DBParameterGroupName must be supplied.

  • If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied.

", "EventSubscription$SourceIdsList": "

A list of source IDs for the RDS event notification subscription.

" } }, @@ -2221,7 +2306,7 @@ "SourceRegionList": { "base": null, "refs": { - "SourceRegionMessage$SourceRegions": "

A list of SourceRegion instances that contains each source AWS Region that the current region can get a Read Replica or a DB snapshot from.

" + "SourceRegionMessage$SourceRegions": "

A list of SourceRegion instances that contains each source AWS Region that the current AWS Region can get a Read Replica or a DB snapshot from.

" } }, "SourceRegionMessage": { @@ -2273,11 +2358,11 @@ "AddRoleToDBClusterMessage$DBClusterIdentifier": "

The name of the DB cluster to associate the IAM role with.

", "AddRoleToDBClusterMessage$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role to associate with the Aurora DB cluster, for example arn:aws:iam::123456789012:role/AuroraAccessRole.

", "AddSourceIdentifierToSubscriptionMessage$SubscriptionName": "

The name of the RDS event notification subscription you want to add a source identifier to.

", - "AddSourceIdentifierToSubscriptionMessage$SourceIdentifier": "

The identifier of the event source to be added. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens.

Constraints:

  • If the source type is a DB instance, then a DBInstanceIdentifier must be supplied.

  • If the source type is a DB security group, a DBSecurityGroupName must be supplied.

  • If the source type is a DB parameter group, a DBParameterGroupName must be supplied.

  • If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied.

", - "AddTagsToResourceMessage$ResourceName": "

The Amazon RDS resource the tags will be added to. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", + "AddSourceIdentifierToSubscriptionMessage$SourceIdentifier": "

The identifier of the event source to be added.

Constraints:

  • If the source type is a DB instance, then a DBInstanceIdentifier must be supplied.

  • If the source type is a DB security group, a DBSecurityGroupName must be supplied.

  • If the source type is a DB parameter group, a DBParameterGroupName must be supplied.

  • If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied.

", + "AddTagsToResourceMessage$ResourceName": "

The Amazon RDS resource that the tags are added to. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", "ApplyPendingMaintenanceActionMessage$ResourceIdentifier": "

The RDS Amazon Resource Name (ARN) of the resource that the pending maintenance action applies to. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", "ApplyPendingMaintenanceActionMessage$ApplyAction": "

The pending maintenance action to apply to this resource.

Valid values: system-update, db-upgrade

", - "ApplyPendingMaintenanceActionMessage$OptInType": "

A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type immediate cannot be undone.

Valid values:

  • immediate - Apply the maintenance action immediately.

  • next-maintenance - Apply the maintenance action during the next maintenance window for the resource.

  • undo-opt-in - Cancel any existing next-maintenance opt-in requests.

", + "ApplyPendingMaintenanceActionMessage$OptInType": "

A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type immediate can't be undone.

Valid values:

  • immediate - Apply the maintenance action immediately.

  • next-maintenance - Apply the maintenance action during the next maintenance window for the resource.

  • undo-opt-in - Cancel any existing next-maintenance opt-in requests.

", "AttributeValueList$member": null, "AuthorizeDBSecurityGroupIngressMessage$DBSecurityGroupName": "

The name of the DB security group to add authorization to.

", "AuthorizeDBSecurityGroupIngressMessage$CIDRIP": "

The IP range to authorize.

", @@ -2293,91 +2378,93 @@ "CertificateMessage$Marker": "

An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", "CharacterSet$CharacterSetName": "

The name of the character set.

", "CharacterSet$CharacterSetDescription": "

The description of the character set.

", - "CopyDBClusterParameterGroupMessage$SourceDBClusterParameterGroupIdentifier": "

The identifier or Amazon Resource Name (ARN) for the source DB cluster parameter group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

Constraints:

  • Must specify a valid DB cluster parameter group.

  • If the source DB cluster parameter group is in the same region as the copy, specify a valid DB parameter group identifier, for example my-db-cluster-param-group, or a valid ARN.

  • If the source DB parameter group is in a different region than the copy, specify a valid DB cluster parameter group ARN, for example arn:aws:rds:us-east-1:123456789012:cluster-pg:custom-cluster-group1.

", - "CopyDBClusterParameterGroupMessage$TargetDBClusterParameterGroupIdentifier": "

The identifier for the copied DB cluster parameter group.

Constraints:

  • Cannot be null, empty, or blank

  • Must contain from 1 to 255 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-cluster-param-group1

", + "CopyDBClusterParameterGroupMessage$SourceDBClusterParameterGroupIdentifier": "

The identifier or Amazon Resource Name (ARN) for the source DB cluster parameter group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

Constraints:

  • Must specify a valid DB cluster parameter group.

  • If the source DB cluster parameter group is in the same AWS Region as the copy, specify a valid DB parameter group identifier, for example my-db-cluster-param-group, or a valid ARN.

  • If the source DB parameter group is in a different AWS Region than the copy, specify a valid DB cluster parameter group ARN, for example arn:aws:rds:us-east-1:123456789012:cluster-pg:custom-cluster-group1.

", + "CopyDBClusterParameterGroupMessage$TargetDBClusterParameterGroupIdentifier": "

The identifier for the copied DB cluster parameter group.

Constraints:

  • Cannot be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-cluster-param-group1

", "CopyDBClusterParameterGroupMessage$TargetDBClusterParameterGroupDescription": "

A description for the copied DB cluster parameter group.

", - "CopyDBClusterSnapshotMessage$SourceDBClusterSnapshotIdentifier": "

The identifier of the DB cluster snapshot to copy. This parameter is not case-sensitive.

You cannot copy an encrypted, shared DB cluster snapshot from one AWS region to another.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

  • Must specify a valid system snapshot in the \"available\" state.

  • If the source snapshot is in the same region as the copy, specify a valid DB snapshot identifier.

  • If the source snapshot is in a different region than the copy, specify a valid DB cluster snapshot ARN. For more information, go to Copying a DB Snapshot or DB Cluster Snapshot.

Example: my-cluster-snapshot1

", - "CopyDBClusterSnapshotMessage$TargetDBClusterSnapshotIdentifier": "

The identifier of the new DB cluster snapshot to create from the source DB cluster snapshot. This parameter is not case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster-snapshot2

", - "CopyDBClusterSnapshotMessage$KmsKeyId": "

The AWS KMS key ID for an encrypted DB cluster snapshot. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

If you copy an unencrypted DB cluster snapshot and specify a value for the KmsKeyId parameter, Amazon RDS encrypts the target DB cluster snapshot using the specified KMS encryption key.

If you copy an encrypted DB cluster snapshot from your AWS account, you can specify a value for KmsKeyId to encrypt the copy with a new KMS encryption key. If you don't specify a value for KmsKeyId, then the copy of the DB cluster snapshot is encrypted with the same KMS key as the source DB cluster snapshot.

If you copy an encrypted DB cluster snapshot that is shared from another AWS account, then you must specify a value for KmsKeyId.

To copy an encrypted DB cluster snapshot to another region, you must set KmsKeyId to the KMS key ID you want to use to encrypt the copy of the DB cluster snapshot in the destination region. KMS encryption keys are specific to the region that they are created in, and you cannot use encryption keys from one region in another region.

", - "CopyDBClusterSnapshotMessage$PreSignedUrl": "

The URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot API action in the AWS region that contains the source DB cluster snapshot to copy. The PreSignedUrl parameter must be used when copying an encrypted DB cluster snapshot from another AWS region.

The pre-signed URL must be a valid request for the CopyDBSClusterSnapshot API action that can be executed in the source region that contains the encrypted DB cluster snapshot to be copied. The pre-signed URL request must contain the following parameter values:

  • KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination region. This is the same identifier for both the CopyDBClusterSnapshot action that is called in the destination region, and the action contained in the pre-signed URL.

  • DestinationRegion - The name of the region that the DB cluster snapshot will be created in.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

", - "CopyDBParameterGroupMessage$SourceDBParameterGroupIdentifier": "

The identifier or ARN for the source DB parameter group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

Constraints:

  • Must specify a valid DB parameter group.

  • Must specify a valid DB parameter group identifier, for example my-db-param-group, or a valid ARN.

", - "CopyDBParameterGroupMessage$TargetDBParameterGroupIdentifier": "

The identifier for the copied DB parameter group.

Constraints:

  • Cannot be null, empty, or blank

  • Must contain from 1 to 255 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-db-parameter-group

", + "CopyDBClusterSnapshotMessage$SourceDBClusterSnapshotIdentifier": "

The identifier of the DB cluster snapshot to copy. This parameter is not case-sensitive.

You can't copy an encrypted, shared DB cluster snapshot from one AWS Region to another.

Constraints:

  • Must specify a valid system snapshot in the \"available\" state.

  • If the source snapshot is in the same AWS Region as the copy, specify a valid DB snapshot identifier.

  • If the source snapshot is in a different AWS Region than the copy, specify a valid DB cluster snapshot ARN. For more information, go to Copying a DB Snapshot or DB Cluster Snapshot.

Example: my-cluster-snapshot1

", + "CopyDBClusterSnapshotMessage$TargetDBClusterSnapshotIdentifier": "

The identifier of the new DB cluster snapshot to create from the source DB cluster snapshot. This parameter is not case-sensitive.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster-snapshot2

", + "CopyDBClusterSnapshotMessage$KmsKeyId": "

The AWS AWS KMS key ID for an encrypted DB cluster snapshot. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

If you copy an unencrypted DB cluster snapshot and specify a value for the KmsKeyId parameter, Amazon RDS encrypts the target DB cluster snapshot using the specified KMS encryption key.

If you copy an encrypted DB cluster snapshot from your AWS account, you can specify a value for KmsKeyId to encrypt the copy with a new KMS encryption key. If you don't specify a value for KmsKeyId, then the copy of the DB cluster snapshot is encrypted with the same KMS key as the source DB cluster snapshot.

If you copy an encrypted DB cluster snapshot that is shared from another AWS account, then you must specify a value for KmsKeyId.

To copy an encrypted DB cluster snapshot to another AWS Region, you must set KmsKeyId to the KMS key ID you want to use to encrypt the copy of the DB cluster snapshot in the destination AWS Region. KMS encryption keys are specific to the AWS Region that they are created in, and you can't use encryption keys from one AWS Region in another AWS Region.

", + "CopyDBClusterSnapshotMessage$PreSignedUrl": "

The URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot API action in the AWS Region that contains the source DB cluster snapshot to copy. The PreSignedUrl parameter must be used when copying an encrypted DB cluster snapshot from another AWS Region.

The pre-signed URL must be a valid request for the CopyDBSClusterSnapshot API action that can be executed in the source AWS Region that contains the encrypted DB cluster snapshot to be copied. The pre-signed URL request must contain the following parameter values:

  • KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

  • DestinationRegion - The name of the AWS Region that the DB cluster snapshot will be created in.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 AWS Region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

", + "CopyDBParameterGroupMessage$SourceDBParameterGroupIdentifier": "

The identifier or ARN for the source DB parameter group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

Constraints:

  • Must specify a valid DB parameter group.

  • Must specify a valid DB parameter group identifier, for example my-db-param-group, or a valid ARN.

", + "CopyDBParameterGroupMessage$TargetDBParameterGroupIdentifier": "

The identifier for the copied DB parameter group.

Constraints:

  • Cannot be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-db-parameter-group

", "CopyDBParameterGroupMessage$TargetDBParameterGroupDescription": "

A description for the copied DB parameter group.

", - "CopyDBSnapshotMessage$SourceDBSnapshotIdentifier": "

The identifier for the source DB snapshot.

If the source snapshot is in the same region as the copy, specify a valid DB snapshot identifier. For example, rds:mysql-instance1-snapshot-20130805.

If the source snapshot is in a different region than the copy, specify a valid DB snapshot ARN. For example, arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805.

If you are copying from a shared manual DB snapshot, this parameter must be the Amazon Resource Name (ARN) of the shared DB snapshot.

If you are copying an encrypted snapshot this parameter must be in the ARN format for the source region, and must match the SourceDBSnapshotIdentifier in the PreSignedUrl parameter.

Constraints:

  • Must specify a valid system snapshot in the \"available\" state.

Example: rds:mydb-2012-04-02-00-01

Example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805

", - "CopyDBSnapshotMessage$TargetDBSnapshotIdentifier": "

The identifier for the copy of the snapshot.

Constraints:

  • Cannot be null, empty, or blank

  • Must contain from 1 to 255 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-db-snapshot

", - "CopyDBSnapshotMessage$KmsKeyId": "

The AWS KMS key ID for an encrypted DB snapshot. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

If you copy an encrypted DB snapshot from your AWS account, you can specify a value for this parameter to encrypt the copy with a new KMS encryption key. If you don't specify a value for this parameter, then the copy of the DB snapshot is encrypted with the same KMS key as the source DB snapshot.

If you copy an encrypted DB snapshot that is shared from another AWS account, then you must specify a value for this parameter.

If you specify this parameter when you copy an unencrypted snapshot, the copy is encrypted.

If you copy an encrypted snapshot to a different AWS region, then you must specify a KMS key for the destination AWS region. KMS encryption keys are specific to the region that they are created in, and you cannot use encryption keys from one region in another region.

", - "CopyDBSnapshotMessage$PreSignedUrl": "

The URL that contains a Signature Version 4 signed request for the CopyDBSnapshot API action in the source AWS region that contains the source DB snapshot to copy.

You must specify this parameter when you copy an encrypted DB snapshot from another AWS region by using the Amazon RDS API. You can specify the source region option instead of this parameter when you copy an encrypted DB snapshot from another AWS region by using the AWS CLI.

The presigned URL must be a valid request for the CopyDBSnapshot API action that can be executed in the source region that contains the encrypted DB snapshot to be copied. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The AWS Region that the encrypted DB snapshot will be copied to. This region is the same one where the CopyDBSnapshot action is called that contains this presigned URL.

    For example, if you copy an encrypted DB snapshot from the us-west-2 region to the us-east-1 region, then you will call the CopyDBSnapshot action in the us-east-1 region and provide a presigned URL that contains a call to the CopyDBSnapshot action in the us-west-2 region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 region.

  • KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB snapshot in the destination region. This is the same identifier for both the CopyDBSnapshot action that is called in the destination region, and the action contained in the presigned URL.

  • SourceDBSnapshotIdentifier - The DB snapshot identifier for the encrypted snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you are copying an encrypted DB snapshot from the us-west-2 region, then your SourceDBSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

", - "CopyDBSnapshotMessage$OptionGroupName": "

The name of an option group to associate with the copy.

Specify this option if you are copying a snapshot from one AWS region to another, and your DB instance uses a non-default option group. If your source DB instance uses Transparent Data Encryption for Oracle or Microsoft SQL Server, you must specify this option when copying across regions. For more information, see Option Group Considerations.

", - "CopyOptionGroupMessage$SourceOptionGroupIdentifier": "

The identifier or ARN for the source option group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

Constraints:

  • Must specify a valid option group.

  • If the source option group is in the same region as the copy, specify a valid option group identifier, for example my-option-group, or a valid ARN.

  • If the source option group is in a different region than the copy, specify a valid option group ARN, for example arn:aws:rds:us-west-2:123456789012:og:special-options.

", - "CopyOptionGroupMessage$TargetOptionGroupIdentifier": "

The identifier for the copied option group.

Constraints:

  • Cannot be null, empty, or blank

  • Must contain from 1 to 255 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-option-group

", + "CopyDBSnapshotMessage$SourceDBSnapshotIdentifier": "

The identifier for the source DB snapshot.

If the source snapshot is in the same AWS Region as the copy, specify a valid DB snapshot identifier. For example, you might specify rds:mysql-instance1-snapshot-20130805.

If the source snapshot is in a different AWS Region than the copy, specify a valid DB snapshot ARN. For example, you might specify arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805.

If you are copying from a shared manual DB snapshot, this parameter must be the Amazon Resource Name (ARN) of the shared DB snapshot.

If you are copying an encrypted snapshot this parameter must be in the ARN format for the source AWS Region, and must match the SourceDBSnapshotIdentifier in the PreSignedUrl parameter.

Constraints:

  • Must specify a valid system snapshot in the \"available\" state.

Example: rds:mydb-2012-04-02-00-01

Example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805

", + "CopyDBSnapshotMessage$TargetDBSnapshotIdentifier": "

The identifier for the copy of the snapshot.

Constraints:

  • Cannot be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-db-snapshot

", + "CopyDBSnapshotMessage$KmsKeyId": "

The AWS KMS key ID for an encrypted DB snapshot. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

If you copy an encrypted DB snapshot from your AWS account, you can specify a value for this parameter to encrypt the copy with a new KMS encryption key. If you don't specify a value for this parameter, then the copy of the DB snapshot is encrypted with the same KMS key as the source DB snapshot.

If you copy an encrypted DB snapshot that is shared from another AWS account, then you must specify a value for this parameter.

If you specify this parameter when you copy an unencrypted snapshot, the copy is encrypted.

If you copy an encrypted snapshot to a different AWS Region, then you must specify a KMS key for the destination AWS Region. KMS encryption keys are specific to the AWS Region that they are created in, and you can't use encryption keys from one AWS Region in another AWS Region.

", + "CopyDBSnapshotMessage$PreSignedUrl": "

The URL that contains a Signature Version 4 signed request for the CopyDBSnapshot API action in the source AWS Region that contains the source DB snapshot to copy.

You must specify this parameter when you copy an encrypted DB snapshot from another AWS Region by using the Amazon RDS API. You can specify the --source-region option instead of this parameter when you copy an encrypted DB snapshot from another AWS Region by using the AWS CLI.

The presigned URL must be a valid request for the CopyDBSnapshot API action that can be executed in the source AWS Region that contains the encrypted DB snapshot to be copied. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The AWS Region that the encrypted DB snapshot is copied to. This AWS Region is the same one where the CopyDBSnapshot action is called that contains this presigned URL.

    For example, if you copy an encrypted DB snapshot from the us-west-2 AWS Region to the us-east-1 AWS Region, then you call the CopyDBSnapshot action in the us-east-1 AWS Region and provide a presigned URL that contains a call to the CopyDBSnapshot action in the us-west-2 AWS Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 AWS Region.

  • KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of the DB snapshot in the destination AWS Region. This is the same identifier for both the CopyDBSnapshot action that is called in the destination AWS Region, and the action contained in the presigned URL.

  • SourceDBSnapshotIdentifier - The DB snapshot identifier for the encrypted snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an encrypted DB snapshot from the us-west-2 AWS Region, then your SourceDBSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

", + "CopyDBSnapshotMessage$OptionGroupName": "

The name of an option group to associate with the copy of the snapshot.

Specify this option if you are copying a snapshot from one AWS Region to another, and your DB instance uses a nondefault option group. If your source DB instance uses Transparent Data Encryption for Oracle or Microsoft SQL Server, you must specify this option when copying across AWS Regions. For more information, see Option Group Considerations.

", + "CopyOptionGroupMessage$SourceOptionGroupIdentifier": "

The identifier or ARN for the source option group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

Constraints:

  • Must specify a valid option group.

  • If the source option group is in the same AWS Region as the copy, specify a valid option group identifier, for example my-option-group, or a valid ARN.

  • If the source option group is in a different AWS Region than the copy, specify a valid option group ARN, for example arn:aws:rds:us-west-2:123456789012:og:special-options.

", + "CopyOptionGroupMessage$TargetOptionGroupIdentifier": "

The identifier for the copied option group.

Constraints:

  • Cannot be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-option-group

", "CopyOptionGroupMessage$TargetOptionGroupDescription": "

The description for the copied option group.

", "CreateDBClusterMessage$CharacterSetName": "

A value that indicates that the DB cluster should be associated with the specified CharacterSet.

", "CreateDBClusterMessage$DatabaseName": "

The name for your database of up to 64 alpha-numeric characters. If you do not provide a name, Amazon RDS will not create a database in the DB cluster you are creating.

", - "CreateDBClusterMessage$DBClusterIdentifier": "

The DB cluster identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1

", - "CreateDBClusterMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, default.aurora5.6 will be used.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "CreateDBClusterMessage$DBSubnetGroupName": "

A DB subnet group to associate with this DB cluster.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", - "CreateDBClusterMessage$Engine": "

The name of the database engine to be used for this DB cluster.

Valid Values: aurora

", + "CreateDBClusterMessage$DBClusterIdentifier": "

The DB cluster identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1

", + "CreateDBClusterMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, default.aurora5.6 is used.

Constraints:

  • If supplied, must match the name of an existing DBClusterParameterGroup.

", + "CreateDBClusterMessage$DBSubnetGroupName": "

A DB subnet group to associate with this DB cluster.

Constraints: Must match the name of an existing DBSubnetGroup. Must not be default.

Example: mySubnetgroup

", + "CreateDBClusterMessage$Engine": "

The name of the database engine to be used for this DB cluster.

Valid Values: aurora, aurora-postgresql

", "CreateDBClusterMessage$EngineVersion": "

The version number of the database engine to use.

Aurora

Example: 5.6.10a

", - "CreateDBClusterMessage$MasterUsername": "

The name of the master user for the DB cluster.

Constraints:

  • Must be 1 to 16 alphanumeric characters.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

", + "CreateDBClusterMessage$MasterUsername": "

The name of the master user for the DB cluster.

Constraints:

  • Must be 1 to 16 letters or numbers.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

", "CreateDBClusterMessage$MasterUserPassword": "

The password for the master database user. This password can contain any printable ASCII character except \"/\", \"\"\", or \"@\".

Constraints: Must contain from 8 to 41 characters.

", - "CreateDBClusterMessage$OptionGroupName": "

A value that indicates that the DB cluster should be associated with the specified option group.

Permanent options cannot be removed from an option group. The option group cannot be removed from a DB cluster once it is associated with a DB cluster.

", - "CreateDBClusterMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.

Default: A 30-minute window selected at random from an 8-hour block of time per region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Times should be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", - "CreateDBClusterMessage$PreferredMaintenanceWindow": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Constraints: Minimum 30-minute window.

", + "CreateDBClusterMessage$OptionGroupName": "

A value that indicates that the DB cluster should be associated with the specified option group.

Permanent options can't be removed from an option group. The option group can't be removed from a DB cluster once it is associated with a DB cluster.

", + "CreateDBClusterMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", + "CreateDBClusterMessage$PreferredMaintenanceWindow": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.

Constraints: Minimum 30-minute window.

", "CreateDBClusterMessage$ReplicationSourceIdentifier": "

The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.

", - "CreateDBClusterMessage$KmsKeyId": "

The KMS key identifier for an encrypted DB cluster.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region.

If you create a Read Replica of an encrypted DB cluster in another region, you must set KmsKeyId to a KMS key ID that is valid in the destination region. This key is used to encrypt the Read Replica in that region.

", - "CreateDBClusterMessage$PreSignedUrl": "

A URL that contains a Signature Version 4 signed request for the CreateDBCluster action to be called in the source region where the DB cluster will be replicated from. You only need to specify PreSignedUrl when you are performing cross-region replication from an encrypted DB cluster.

The pre-signed URL must be a valid request for the CreateDBCluster API action that can be executed in the source region that contains the encrypted DB cluster to be copied.

The pre-signed URL request must contain the following parameter values:

  • KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB cluster in the destination region. This should refer to the same KMS key for both the CreateDBCluster action that is called in the destination region, and the action contained in the pre-signed URL.

  • DestinationRegion - The name of the region that Aurora Read Replica will be created in.

  • ReplicationSourceIdentifier - The DB cluster identifier for the encrypted DB cluster to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you are copying an encrypted DB cluster from the us-west-2 region, then your ReplicationSourceIdentifier would look like Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

", - "CreateDBClusterParameterGroupMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

This value is stored as a lowercase string.

", + "CreateDBClusterMessage$KmsKeyId": "

The AWS KMS key identifier for an encrypted DB cluster.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

If an encryption key is not specified in KmsKeyId:

  • If ReplicationSourceIdentifier identifies an encrypted source, then Amazon RDS will use the encryption key used to encrypt the source. Otherwise, Amazon RDS will use your default encryption key.

  • If the StorageEncrypted parameter is true and ReplicationSourceIdentifier is not specified, then Amazon RDS will use your default encryption key.

AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.

If you create a Read Replica of an encrypted DB cluster in another AWS Region, you must set KmsKeyId to a KMS key ID that is valid in the destination AWS Region. This key is used to encrypt the Read Replica in that AWS Region.

", + "CreateDBClusterMessage$PreSignedUrl": "

A URL that contains a Signature Version 4 signed request for the CreateDBCluster action to be called in the source AWS Region where the DB cluster is replicated from. You only need to specify PreSignedUrl when you are performing cross-region replication from an encrypted DB cluster.

The pre-signed URL must be a valid request for the CreateDBCluster API action that can be executed in the source AWS Region that contains the encrypted DB cluster to be copied.

The pre-signed URL request must contain the following parameter values:

  • KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of the DB cluster in the destination AWS Region. This should refer to the same KMS key for both the CreateDBCluster action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

  • DestinationRegion - The name of the AWS Region that Aurora Read Replica will be created in.

  • ReplicationSourceIdentifier - The DB cluster identifier for the encrypted DB cluster to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an encrypted DB cluster from the us-west-2 AWS Region, then your ReplicationSourceIdentifier would look like Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

", + "CreateDBClusterParameterGroupMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group.

Constraints:

  • Must match the name of an existing DBClusterParameterGroup.

This value is stored as a lowercase string.

", "CreateDBClusterParameterGroupMessage$DBParameterGroupFamily": "

The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.

", "CreateDBClusterParameterGroupMessage$Description": "

The description for the DB cluster parameter group.

", - "CreateDBClusterSnapshotMessage$DBClusterSnapshotIdentifier": "

The identifier of the DB cluster snapshot. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1-snapshot1

", - "CreateDBClusterSnapshotMessage$DBClusterIdentifier": "

The identifier of the DB cluster to create a snapshot for. This parameter is not case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1

", - "CreateDBInstanceMessage$DBName": "

The meaning of this parameter differs according to the database engine you use.

Type: String

MySQL

The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 alphanumeric characters

  • Cannot be a word reserved by the specified database engine

MariaDB

The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 alphanumeric characters

  • Cannot be a word reserved by the specified database engine

PostgreSQL

The name of the database to create when the DB instance is created. If this parameter is not specified, the default \"postgres\" database is created in the DB instance.

Constraints:

  • Must contain 1 to 63 alphanumeric characters

  • Must begin with a letter or an underscore. Subsequent characters can be letters, underscores, or digits (0-9).

  • Cannot be a word reserved by the specified database engine

Oracle

The Oracle System ID (SID) of the created DB instance. If you specify null, the default value ORCL is used. You can't specify the string NULL, or any other reserved word, for DBName.

Default: ORCL

Constraints:

  • Cannot be longer than 8 characters

SQL Server

Not applicable. Must be null.

Amazon Aurora

The name of the database to create when the primary instance of the DB cluster is created. If this parameter is not specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 alphanumeric characters

  • Cannot be a word reserved by the specified database engine

", - "CreateDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens (1 to 15 for SQL Server).

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: mydbinstance

", - "CreateDBInstanceMessage$DBInstanceClass": "

The compute and memory capacity of the DB instance. Note that not all instance classes are available in all regions for all DB engines.

Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large

", - "CreateDBInstanceMessage$Engine": "

The name of the database engine to be used for this instance.

Not every database engine is available for every AWS region.

Valid Values:

  • aurora

  • mariadb

  • mysql

  • oracle-ee

  • oracle-se2

  • oracle-se1

  • oracle-se

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

", - "CreateDBInstanceMessage$MasterUsername": "

The name for the master database user.

Amazon Aurora

Not applicable. You specify the name for the master database user when you create your DB cluster.

MariaDB

Constraints:

  • Must be 1 to 16 alphanumeric characters.

  • Cannot be a reserved word for the chosen database engine.

Microsoft SQL Server

Constraints:

  • Must be 1 to 128 alphanumeric characters.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

MySQL

Constraints:

  • Must be 1 to 16 alphanumeric characters.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

Oracle

Constraints:

  • Must be 1 to 30 alphanumeric characters.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

PostgreSQL

Constraints:

  • Must be 1 to 63 alphanumeric characters.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

", - "CreateDBInstanceMessage$MasterUserPassword": "

The password for the master database user. Can be any printable ASCII character except \"/\", \"\"\", or \"@\".

Amazon Aurora

Not applicable. You specify the password for the master database user when you create your DB cluster.

MariaDB

Constraints: Must contain from 8 to 41 characters.

Microsoft SQL Server

Constraints: Must contain from 8 to 128 characters.

MySQL

Constraints: Must contain from 8 to 41 characters.

Oracle

Constraints: Must contain from 8 to 30 characters.

PostgreSQL

Constraints: Must contain from 8 to 128 characters.

", - "CreateDBInstanceMessage$AvailabilityZone": "

The EC2 Availability Zone that the database instance will be created in. For information on regions and Availability Zones, see Regions and Availability Zones.

Default: A random, system-chosen Availability Zone in the endpoint's region.

Example: us-east-1d

Constraint: The AvailabilityZone parameter cannot be specified if the MultiAZ parameter is set to true. The specified Availability Zone must be in the same region as the current endpoint.

", + "CreateDBClusterSnapshotMessage$DBClusterSnapshotIdentifier": "

The identifier of the DB cluster snapshot. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1-snapshot1

", + "CreateDBClusterSnapshotMessage$DBClusterIdentifier": "

The identifier of the DB cluster to create a snapshot for. This parameter is not case-sensitive.

Constraints:

  • Must match the identifier of an existing DBCluster.

Example: my-cluster1

", + "CreateDBInstanceMessage$DBName": "

The meaning of this parameter differs according to the database engine you use.

Type: String

MySQL

The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 letters or numbers.

  • Cannot be a word reserved by the specified database engine

MariaDB

The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 letters or numbers.

  • Cannot be a word reserved by the specified database engine

PostgreSQL

The name of the database to create when the DB instance is created. If this parameter is not specified, the default \"postgres\" database is created in the DB instance.

Constraints:

  • Must contain 1 to 63 letters, numbers, or underscores.

  • Must begin with a letter or an underscore. Subsequent characters can be letters, underscores, or digits (0-9).

  • Cannot be a word reserved by the specified database engine

Oracle

The Oracle System ID (SID) of the created DB instance. If you specify null, the default value ORCL is used. You can't specify the string NULL, or any other reserved word, for DBName.

Default: ORCL

Constraints:

  • Cannot be longer than 8 characters

SQL Server

Not applicable. Must be null.

Amazon Aurora

The name of the database to create when the primary instance of the DB cluster is created. If this parameter is not specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 letters or numbers.

  • Cannot be a word reserved by the specified database engine

", + "CreateDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: mydbinstance

", + "CreateDBInstanceMessage$DBInstanceClass": "

The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

", + "CreateDBInstanceMessage$Engine": "

The name of the database engine to be used for this instance.

Not every database engine is available for every AWS Region.

Valid Values:

  • aurora

  • aurora-postgresql

  • mariadb

  • mysql

  • oracle-ee

  • oracle-se2

  • oracle-se1

  • oracle-se

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

", + "CreateDBInstanceMessage$MasterUsername": "

The name for the master user.

Amazon Aurora

Not applicable. The name for the master user is managed by the DB cluster. For more information, see CreateDBCluster.

MariaDB

Constraints:

  • Required for MariaDB.

  • Must be 1 to 16 letters or numbers.

  • Cannot be a reserved word for the chosen database engine.

Microsoft SQL Server

Constraints:

  • Required for SQL Server.

  • Must be 1 to 128 letters or numbers.

  • The first character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

MySQL

Constraints:

  • Required for MySQL.

  • Must be 1 to 16 letters or numbers.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

Oracle

Constraints:

  • Required for Oracle.

  • Must be 1 to 30 letters or numbers.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

PostgreSQL

Constraints:

  • Required for PostgreSQL.

  • Must be 1 to 63 letters or numbers.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

", + "CreateDBInstanceMessage$MasterUserPassword": "

The password for the master user. The password can include any printable ASCII character except \"/\", \"\"\", or \"@\".

Amazon Aurora

Not applicable. The password for the master user is managed by the DB cluster. For more information, see CreateDBCluster.

MariaDB

Constraints: Must contain from 8 to 41 characters.

Microsoft SQL Server

Constraints: Must contain from 8 to 128 characters.

MySQL

Constraints: Must contain from 8 to 41 characters.

Oracle

Constraints: Must contain from 8 to 30 characters.

PostgreSQL

Constraints: Must contain from 8 to 128 characters.

", + "CreateDBInstanceMessage$AvailabilityZone": "

The EC2 Availability Zone that the DB instance is created in. For information on AWS Regions and Availability Zones, see Regions and Availability Zones.

Default: A random, system-chosen Availability Zone in the endpoint's AWS Region.

Example: us-east-1d

Constraint: The AvailabilityZone parameter can't be specified if the MultiAZ parameter is set to true. The specified Availability Zone must be in the same AWS Region as the current endpoint.

", "CreateDBInstanceMessage$DBSubnetGroupName": "

A DB subnet group to associate with this DB instance.

If there is no DB subnet group, then it is a non-VPC DB instance.

", - "CreateDBInstanceMessage$PreferredMaintenanceWindow": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). For more information, see DB Instance Maintenance.

Format: ddd:hh24:mi-ddd:hh24:mi

Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Constraints: Minimum 30-minute window.

", - "CreateDBInstanceMessage$DBParameterGroupName": "

The name of the DB parameter group to associate with this DB instance. If this argument is omitted, the default DBParameterGroup for the specified engine will be used.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "CreateDBInstanceMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. For more information, see DB Instance Backups.

Default: A 30-minute window selected at random from an 8-hour block of time per region. To see the time blocks available, see Adjusting the Preferred DB Instance Maintenance Window.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Times should be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", - "CreateDBInstanceMessage$EngineVersion": "

The version number of the database engine to use.

The following are the database engines and major and minor versions that are available with Amazon RDS. Not every database engine is available for every AWS region.

Amazon Aurora

  • Version 5.6 (available in these AWS regions: ap-northeast-1, ap-northeast-2, ap-south-1, ap-southeast-2, eu-west-1, us-east-1, us-east-2, us-west-2): 5.6.10a

MariaDB

  • 10.1.19 (supported in all AWS regions)

  • 10.1.14 (supported in all regions except us-east-2)

  • 10.0.28 (supported in all AWS regions)

  • 10.0.24 (supported in all AWS regions)

  • 10.0.17 (supported in all regions except us-east-2, ca-central-1, eu-west-2)

Microsoft SQL Server 2016

  • 13.00.4422.0.v1 (supported for all editions, and all AWS regions)

  • 13.00.2164.0.v1 (supported for all editions, and all AWS regions)

Microsoft SQL Server 2014

  • 12.00.5546.0.v1 (supported for all editions, and all AWS regions)

  • 12.00.5000.0.v1 (supported for all editions, and all AWS regions)

  • 12.00.4422.0.v1 (supported for all editions except Enterprise Edition, and all AWS regions except ca-central-1 and eu-west-2)

Microsoft SQL Server 2012

  • 11.00.6594.0.v1 (supported for all editions, and all AWS regions)

  • 11.00.6020.0.v1 (supported for all editions, and all AWS regions)

  • 11.00.5058.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

  • 11.00.2100.60.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

Microsoft SQL Server 2008 R2

  • 10.50.6529.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

  • 10.50.6000.34.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

  • 10.50.2789.0.v1 (supported for all editions, and all AWS regions except us-east-2, ca-central-1, and eu-west-2)

MySQL

  • 5.7.17 (supported in all AWS regions)

  • 5.7.16 (supported in all AWS regions)

  • 5.7.11 (supported in all AWS regions)

  • 5.7.10 (supported in all regions except us-east-2, ca-central-1, eu-west-2)

  • 5.6.35 (supported in all AWS regions)

  • 5.6.34 (supported in all AWS regions)

  • 5.6.29 (supported in all AWS regions)

  • 5.6.27 (supported in all regions except us-east-2, ca-central-1, eu-west-2)

  • 5.6.23 (supported in all regions except us-east-2, ap-south-1, ca-central-1, eu-west-2)

  • 5.6.22 (supported in all regions except us-east-2, ap-south-1, ap-northeast-2, ca-central-1, eu-west-2)

  • 5.6.21b (supported in all regions except us-east-2, ap-south-1, ap-northeast-2, ca-central-1, eu-west-2)

  • 5.6.21 (supported in all regions except us-east-2, ap-south-1, ap-northeast-2, ca-central-1, eu-west-2)

  • 5.6.19b (supported in all regions except us-east-2, ap-south-1, ap-northeast-2, ca-central-1, eu-west-2)

  • 5.6.19a (supported in all regions except us-east-2, ap-south-1, ap-northeast-2, ca-central-1, eu-west-2)

  • 5.5.54 (supported in all AWS regions)

  • 5.5.53 (supported in all AWS regions)

  • 5.5.46 (supported in all AWS regions)

Oracle 12c

  • 12.1.0.2.v8 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v7 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v6 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v5 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v4 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v3 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v2 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v1 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

Oracle 11g

  • 11.2.0.4.v12 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v11 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v10 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v9 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v8 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v7 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v6 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v5 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v4 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v3 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v1 (supported for EE, SE1, and SE, in all AWS regions)

PostgreSQL

  • Version 9.6.x: 9.6.1 | 9.6.2

  • Version 9.5.x: 9.5.6 | 9.5.4 | 9.5.2

  • Version 9.4.x: 9.4.11 | 9.4.9 | 9.4.7

  • Version 9.3.x: 9.3.16 | 9.3.14 | 9.3.12

", + "CreateDBInstanceMessage$PreferredMaintenanceWindow": "

The time range each week during which system maintenance can occur, in Universal Coordinated Time (UTC). For more information, see Amazon RDS Maintenance Window.

Format: ddd:hh24:mi-ddd:hh24:mi

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.

Constraints: Minimum 30-minute window.

", + "CreateDBInstanceMessage$DBParameterGroupName": "

The name of the DB parameter group to associate with this DB instance. If this argument is omitted, the default DBParameterGroup for the specified engine is used.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "CreateDBInstanceMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. For more information, see The Backup Window.

Amazon Aurora

Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see CreateDBCluster.

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Instance Maintenance Window.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", + "CreateDBInstanceMessage$EngineVersion": "

The version number of the database engine to use.

The following are the database engines and major and minor versions that are available with Amazon RDS. Not every database engine is available for every AWS Region.

Amazon Aurora

Not applicable. The version number of the database engine to be used by the DB instance is managed by the DB cluster. For more information, see CreateDBCluster.

MariaDB

  • 10.1.23 (supported in all AWS Regions)

  • 10.1.19 (supported in all AWS Regions)

  • 10.1.14 (supported in all AWS Regions except us-east-2)

  • 10.0.31 (supported in all AWS Regions)

  • 10.0.28 (supported in all AWS Regions)

  • 10.0.24 (supported in all AWS Regions)

  • 10.0.17 (supported in all AWS Regions except us-east-2, ca-central-1, eu-west-2)

Microsoft SQL Server 2016

  • 13.00.4422.0.v1 (supported for all editions, and all AWS Regions)

  • 13.00.2164.0.v1 (supported for all editions, and all AWS Regions)

Microsoft SQL Server 2014

  • 12.00.5546.0.v1 (supported for all editions, and all AWS Regions)

  • 12.00.5000.0.v1 (supported for all editions, and all AWS Regions)

  • 12.00.4422.0.v1 (supported for all editions except Enterprise Edition, and all AWS Regions except ca-central-1 and eu-west-2)

Microsoft SQL Server 2012

  • 11.00.6594.0.v1 (supported for all editions, and all AWS Regions)

  • 11.00.6020.0.v1 (supported for all editions, and all AWS Regions)

  • 11.00.5058.0.v1 (supported for all editions, and all AWS Regions except us-east-2, ca-central-1, and eu-west-2)

  • 11.00.2100.60.v1 (supported for all editions, and all AWS Regions except us-east-2, ca-central-1, and eu-west-2)

Microsoft SQL Server 2008 R2

  • 10.50.6529.0.v1 (supported for all editions, and all AWS Regions except us-east-2, ca-central-1, and eu-west-2)

  • 10.50.6000.34.v1 (supported for all editions, and all AWS Regions except us-east-2, ca-central-1, and eu-west-2)

  • 10.50.2789.0.v1 (supported for all editions, and all AWS Regions except us-east-2, ca-central-1, and eu-west-2)

MySQL

  • 5.7.19 (supported in all AWS regions)

  • 5.7.17 (supported in all AWS regions)

  • 5.7.16 (supported in all AWS regions)

  • 5.6.37 (supported in all AWS Regions)

  • 5.6.35 (supported in all AWS Regions)

  • 5.6.34 (supported in all AWS Regions)

  • 5.6.29 (supported in all AWS Regions)

  • 5.6.27 (supported in all AWS Regions except us-east-2, ca-central-1, eu-west-2)

  • 5.5.57 (supported in all AWS Regions)

  • 5.5.54 (supported in all AWS Regions)

  • 5.5.53 (supported in all AWS Regions)

  • 5.5.46 (supported in all AWS Regions)

Oracle 12c

  • 12.1.0.2.v9 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v8 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v7 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v6 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v5 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v4 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v3 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v2 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

  • 12.1.0.2.v1 (supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1)

Oracle 11g

  • 11.2.0.4.v13 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v12 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v11 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v10 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v9 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v8 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v7 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v6 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v5 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v4 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v3 (supported for EE, SE1, and SE, in all AWS regions)

  • 11.2.0.4.v1 (supported for EE, SE1, and SE, in all AWS regions)

PostgreSQL

  • Version 9.6.x: 9.6.5 | 9.6.3 | 9.6.2 | 9.6.1

  • Version 9.5.x: 9.5.9 | 9.5.7 | 9.5.6 | 9.5.4 | 9.5.2

  • Version 9.4.x: 9.4.14 | 9.4.12 | 9.4.11 | 9.4.9 | 9.4.7

  • Version 9.3.x: 9.3.19 | 9.3.17 | 9.3.16 | 9.3.14 | 9.3.12

", "CreateDBInstanceMessage$LicenseModel": "

License model information for this DB instance.

Valid values: license-included | bring-your-own-license | general-public-license

", - "CreateDBInstanceMessage$OptionGroupName": "

Indicates that the DB instance should be associated with the specified option group.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", - "CreateDBInstanceMessage$CharacterSetName": "

For supported engines, indicates that the DB instance should be associated with the specified CharacterSet.

", + "CreateDBInstanceMessage$OptionGroupName": "

Indicates that the DB instance should be associated with the specified option group.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance

", + "CreateDBInstanceMessage$CharacterSetName": "

For supported engines, indicates that the DB instance should be associated with the specified CharacterSet.

Amazon Aurora

Not applicable. The character set is managed by the DB cluster. For more information, see CreateDBCluster.

", "CreateDBInstanceMessage$DBClusterIdentifier": "

The identifier of the DB cluster that the instance will belong to.

For information on creating a DB cluster, see CreateDBCluster.

Type: String

", - "CreateDBInstanceMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", - "CreateDBInstanceMessage$TdeCredentialArn": "

The ARN from the Key Store with which to associate the instance for TDE encryption.

", - "CreateDBInstanceMessage$TdeCredentialPassword": "

The password for the given ARN from the Key Store in order to access the device.

", - "CreateDBInstanceMessage$KmsKeyId": "

The KMS key identifier for an encrypted DB instance.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, then you can use the KMS key alias instead of the ARN for the KM encryption key.

If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region.

", + "CreateDBInstanceMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise standard

", + "CreateDBInstanceMessage$TdeCredentialArn": "

The ARN from the key store with which to associate the instance for TDE encryption.

", + "CreateDBInstanceMessage$TdeCredentialPassword": "

The password for the given ARN from the key store in order to access the device.

", + "CreateDBInstanceMessage$KmsKeyId": "

The AWS KMS key identifier for an encrypted DB instance.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, then you can use the KMS key alias instead of the ARN for the KM encryption key.

Amazon Aurora

Not applicable. The KMS key identifier is managed by the DB cluster. For more information, see CreateDBCluster.

If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.

", "CreateDBInstanceMessage$Domain": "

Specify the Active Directory Domain to create the instance in.

", - "CreateDBInstanceMessage$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to Setting Up and Enabling Enhanced Monitoring.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

", + "CreateDBInstanceMessage$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to Setting Up and Enabling Enhanced Monitoring.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

", "CreateDBInstanceMessage$DomainIAMRoleName": "

Specify the name of the IAM role to be used when making API calls to the Directory Service.

", "CreateDBInstanceMessage$Timezone": "

The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.

", + "CreateDBInstanceMessage$PerformanceInsightsKMSKeyId": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

", "CreateDBInstanceReadReplicaMessage$DBInstanceIdentifier": "

The DB instance identifier of the Read Replica. This identifier is the unique key that identifies a DB instance. This parameter is stored as a lowercase string.

", - "CreateDBInstanceReadReplicaMessage$SourceDBInstanceIdentifier": "

The identifier of the DB instance that will act as the source for the Read Replica. Each DB instance can have up to five Read Replicas.

Constraints:

  • Must be the identifier of an existing MySQL, MariaDB, or PostgreSQL DB instance.

  • Can specify a DB instance that is a MySQL Read Replica only if the source is running MySQL 5.6.

  • Can specify a DB instance that is a PostgreSQL DB instance only if the source is running PostgreSQL 9.3.5 or later.

  • The specified DB instance must have automatic backups enabled, its backup retention period must be greater than 0.

  • If the source DB instance is in the same region as the Read Replica, specify a valid DB instance identifier.

  • If the source DB instance is in a different region than the Read Replica, specify a valid DB instance ARN. For more information, go to Constructing a Amazon RDS Amazon Resource Name (ARN).

", - "CreateDBInstanceReadReplicaMessage$DBInstanceClass": "

The compute and memory capacity of the Read Replica. Note that not all instance classes are available in all regions for all DB engines.

Valid Values: db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large

Default: Inherits from the source DB instance.

", - "CreateDBInstanceReadReplicaMessage$AvailabilityZone": "

The Amazon EC2 Availability Zone that the Read Replica will be created in.

Default: A random, system-chosen Availability Zone in the endpoint's region.

Example: us-east-1d

", - "CreateDBInstanceReadReplicaMessage$OptionGroupName": "

The option group the DB instance will be associated with. If omitted, the default option group for the engine specified will be used.

", - "CreateDBInstanceReadReplicaMessage$DBSubnetGroupName": "

Specifies a DB subnet group for the DB instance. The new DB instance will be created in the VPC associated with the DB subnet group. If no DB subnet group is specified, then the new DB instance is not created in a VPC.

Constraints:

  • Can only be specified if the source DB instance identifier specifies a DB instance in another region.

  • The specified DB subnet group must be in the same region in which the operation is running.

  • All Read Replicas in one region that are created from the same source DB instance must either:>

    • Specify DB subnet groups from the same VPC. All these Read Replicas will be created in the same VPC.

    • Not specify a DB subnet group. All these Read Replicas will be created outside of any VPC.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", - "CreateDBInstanceReadReplicaMessage$StorageType": "

Specifies the storage type to be associated with the Read Replica.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", - "CreateDBInstanceReadReplicaMessage$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

", - "CreateDBInstanceReadReplicaMessage$KmsKeyId": "

The AWS KMS key ID for an encrypted Read Replica. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

If you create an unencrypted Read Replica and specify a value for the KmsKeyId parameter, Amazon RDS encrypts the target Read Replica using the specified KMS encryption key.

If you create an encrypted Read Replica from your AWS account, you can specify a value for KmsKeyId to encrypt the Read Replica with a new KMS encryption key. If you don't specify a value for KmsKeyId, then the Read Replica is encrypted with the same KMS key as the source DB instance.

If you create an encrypted Read Replica in a different AWS region, then you must specify a KMS key for the destination AWS region. KMS encryption keys are specific to the region that they are created in, and you cannot use encryption keys from one region in another region.

", - "CreateDBInstanceReadReplicaMessage$PreSignedUrl": "

The URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API action in the AWS region that contains the source DB instance. The PreSignedUrl parameter must be used when encrypting a Read Replica from another AWS region.

The presigned URL must be a valid request for the CreateDBInstanceReadReplica API action that can be executed in the source region that contains the encrypted DB instance. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The AWS Region that the Read Replica is created in. This region is the same one where the CreateDBInstanceReadReplica action is called that contains this presigned URL.

    For example, if you create an encrypted Read Replica in the us-east-1 region, and the source DB instance is in the west-2 region, then you call the CreateDBInstanceReadReplica action in the us-east-1 region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica action in the us-west-2 region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 region.

  • KmsKeyId - The KMS key identifier for the key to use to encrypt the Read Replica in the destination region. This is the same identifier for both the CreateDBInstanceReadReplica action that is called in the destination region, and the action contained in the presigned URL.

  • SourceDBInstanceIdentifier - The DB instance identifier for the encrypted Read Replica to be created. This identifier must be in the Amazon Resource Name (ARN) format for the source region. For example, if you create an encrypted Read Replica from a DB instance in the us-west-2 region, then your SourceDBInstanceIdentifier would look like this example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-instance-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

", - "CreateDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

This value is stored as a lowercase string.

", + "CreateDBInstanceReadReplicaMessage$SourceDBInstanceIdentifier": "

The identifier of the DB instance that will act as the source for the Read Replica. Each DB instance can have up to five Read Replicas.

Constraints:

  • Must be the identifier of an existing MySQL, MariaDB, or PostgreSQL DB instance.

  • Can specify a DB instance that is a MySQL Read Replica only if the source is running MySQL 5.6.

  • Can specify a DB instance that is a PostgreSQL DB instance only if the source is running PostgreSQL 9.3.5 or later (9.4.7 and higher for cross-region replication).

  • The specified DB instance must have automatic backups enabled, its backup retention period must be greater than 0.

  • If the source DB instance is in the same AWS Region as the Read Replica, specify a valid DB instance identifier.

  • If the source DB instance is in a different AWS Region than the Read Replica, specify a valid DB instance ARN. For more information, go to Constructing a Amazon RDS Amazon Resource Name (ARN).

", + "CreateDBInstanceReadReplicaMessage$DBInstanceClass": "

The compute and memory capacity of the Read Replica, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Default: Inherits from the source DB instance.

", + "CreateDBInstanceReadReplicaMessage$AvailabilityZone": "

The Amazon EC2 Availability Zone that the Read Replica is created in.

Default: A random, system-chosen Availability Zone in the endpoint's AWS Region.

Example: us-east-1d

", + "CreateDBInstanceReadReplicaMessage$OptionGroupName": "

The option group the DB instance is associated with. If omitted, the default option group for the engine specified is used.

", + "CreateDBInstanceReadReplicaMessage$DBSubnetGroupName": "

Specifies a DB subnet group for the DB instance. The new DB instance is created in the VPC associated with the DB subnet group. If no DB subnet group is specified, then the new DB instance is not created in a VPC.

Constraints:

  • Can only be specified if the source DB instance identifier specifies a DB instance in another AWS Region.

  • If supplied, must match the name of an existing DBSubnetGroup.

  • The specified DB subnet group must be in the same AWS Region in which the operation is running.

  • All Read Replicas in one AWS Region that are created from the same source DB instance must either:>

    • Specify DB subnet groups from the same VPC. All these Read Replicas are created in the same VPC.

    • Not specify a DB subnet group. All these Read Replicas are created outside of any VPC.

Example: mySubnetgroup

", + "CreateDBInstanceReadReplicaMessage$StorageType": "

Specifies the storage type to be associated with the Read Replica.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise standard

", + "CreateDBInstanceReadReplicaMessage$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

", + "CreateDBInstanceReadReplicaMessage$KmsKeyId": "

The AWS KMS key ID for an encrypted Read Replica. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

If you specify this parameter when you create a Read Replica from an unencrypted DB instance, the Read Replica is encrypted.

If you create an encrypted Read Replica in the same AWS Region as the source DB instance, then you do not have to specify a value for this parameter. The Read Replica is encrypted with the same KMS key as the source DB instance.

If you create an encrypted Read Replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region. KMS encryption keys are specific to the AWS Region that they are created in, and you can't use encryption keys from one AWS Region in another AWS Region.

", + "CreateDBInstanceReadReplicaMessage$PreSignedUrl": "

The URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API action in the source AWS Region that contains the source DB instance.

You must specify this parameter when you create an encrypted Read Replica from another AWS Region by using the Amazon RDS API. You can specify the --source-region option instead of this parameter when you create an encrypted Read Replica from another AWS Region by using the AWS CLI.

The presigned URL must be a valid request for the CreateDBInstanceReadReplica API action that can be executed in the source AWS Region that contains the encrypted source DB instance. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The AWS Region that the encrypted Read Replica is created in. This AWS Region is the same one where the CreateDBInstanceReadReplica action is called that contains this presigned URL.

    For example, if you create an encrypted DB instance in the us-west-1 AWS Region, from a source DB instance in the us-east-2 AWS Region, then you call the CreateDBInstanceReadReplica action in the us-east-1 AWS Region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica action in the us-west-2 AWS Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 AWS Region.

  • KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the Read Replica in the destination AWS Region. This is the same identifier for both the CreateDBInstanceReadReplica action that is called in the destination AWS Region, and the action contained in the presigned URL.

  • SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are creating an encrypted Read Replica from a DB instance in the us-west-2 AWS Region, then your SourceDBInstanceIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and Signature Version 4 Signing Process.

", + "CreateDBInstanceReadReplicaMessage$PerformanceInsightsKMSKeyId": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

", + "CreateDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

This value is stored as a lowercase string.

", "CreateDBParameterGroupMessage$DBParameterGroupFamily": "

The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.

", "CreateDBParameterGroupMessage$Description": "

The description for the DB parameter group.

", - "CreateDBSecurityGroupMessage$DBSecurityGroupName": "

The name for the DB security group. This value is stored as a lowercase string.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

  • Must not be \"Default\"

Example: mysecuritygroup

", + "CreateDBSecurityGroupMessage$DBSecurityGroupName": "

The name for the DB security group. This value is stored as a lowercase string.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

  • Must not be \"Default\"

Example: mysecuritygroup

", "CreateDBSecurityGroupMessage$DBSecurityGroupDescription": "

The description for the DB security group.

", - "CreateDBSnapshotMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot.

Constraints:

  • Cannot be null, empty, or blank

  • Must contain from 1 to 255 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", - "CreateDBSnapshotMessage$DBInstanceIdentifier": "

The DB instance identifier. This is the unique key that identifies a DB instance.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "CreateDBSubnetGroupMessage$DBSubnetGroupName": "

The name for the DB subnet group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", + "CreateDBSnapshotMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot.

Constraints:

  • Cannot be null, empty, or blank

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", + "CreateDBSnapshotMessage$DBInstanceIdentifier": "

The identifier of the DB instance that you want to create the snapshot of.

Constraints:

  • Must match the identifier of an existing DBInstance.

", + "CreateDBSubnetGroupMessage$DBSubnetGroupName": "

The name for the DB subnet group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", "CreateDBSubnetGroupMessage$DBSubnetGroupDescription": "

The description for the DB subnet group.

", "CreateEventSubscriptionMessage$SubscriptionName": "

The name of the subscription.

Constraints: The name must be less than 255 characters.

", "CreateEventSubscriptionMessage$SnsTopicArn": "

The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.

", - "CreateEventSubscriptionMessage$SourceType": "

The type of source that will be generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned.

Valid values: db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot

", - "CreateOptionGroupMessage$OptionGroupName": "

Specifies the name of the option group to be created.

Constraints:

  • Must be 1 to 255 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: myoptiongroup

", + "CreateEventSubscriptionMessage$SourceType": "

The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned.

Valid values: db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot

", + "CreateOptionGroupMessage$OptionGroupName": "

Specifies the name of the option group to be created.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: myoptiongroup

", "CreateOptionGroupMessage$EngineName": "

Specifies the name of the engine that this option group should be associated with.

", "CreateOptionGroupMessage$MajorEngineVersion": "

Specifies the major version of the engine that this option group should be associated with.

", "CreateOptionGroupMessage$OptionGroupDescription": "

The description of the option group.

", @@ -2389,7 +2476,7 @@ "DBCluster$Status": "

Specifies the current state of this DB cluster.

", "DBCluster$PercentProgress": "

Specifies the progress of the operation as a percentage.

", "DBCluster$Endpoint": "

Specifies the connection endpoint for the primary instance of the DB cluster.

", - "DBCluster$ReaderEndpoint": "

The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.

If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection will be dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.

", + "DBCluster$ReaderEndpoint": "

The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.

If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.

", "DBCluster$Engine": "

Provides the name of the database engine to be used for this DB cluster.

", "DBCluster$EngineVersion": "

Indicates the database engine version.

", "DBCluster$MasterUsername": "

Contains the master username for the DB cluster.

", @@ -2397,8 +2484,8 @@ "DBCluster$PreferredMaintenanceWindow": "

Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

", "DBCluster$ReplicationSourceIdentifier": "

Contains the identifier of the source DB cluster if this DB cluster is a Read Replica.

", "DBCluster$HostedZoneId": "

Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.

", - "DBCluster$KmsKeyId": "

If StorageEncrypted is true, the KMS key identifier for the encrypted DB cluster.

", - "DBCluster$DbClusterResourceId": "

The region-unique, immutable identifier for the DB cluster. This identifier is found in AWS CloudTrail log entries whenever the KMS key for the DB cluster is accessed.

", + "DBCluster$KmsKeyId": "

If StorageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster.

", + "DBCluster$DbClusterResourceId": "

The AWS Region-unique, immutable identifier for the DB cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.

", "DBCluster$DBClusterArn": "

The Amazon Resource Name (ARN) for the DB cluster.

", "DBCluster$CloneGroupId": "

Identifies the clone group to which the DB cluster is associated.

", "DBClusterMember$DBInstanceIdentifier": "

Specifies the instance identifier for this member of the DB cluster.

", @@ -2411,7 +2498,7 @@ "DBClusterParameterGroup$Description": "

Provides the customer-specified description for this DB cluster parameter group.

", "DBClusterParameterGroup$DBClusterParameterGroupArn": "

The Amazon Resource Name (ARN) for the DB cluster parameter group.

", "DBClusterParameterGroupDetails$Marker": "

An optional pagination token provided by a previous DescribeDBClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", - "DBClusterParameterGroupNameMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

This value is stored as a lowercase string.

", + "DBClusterParameterGroupNameMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group.

Constraints:

  • Must be 1 to 255 letters or numbers.

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

This value is stored as a lowercase string.

", "DBClusterParameterGroupsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBClusterParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DBClusterRole$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.

", "DBClusterRole$Status": "

Describes the state of association between the IAM role and the DB cluster. The Status property returns one of the following values:

  • ACTIVE - the IAM role ARN is associated with the DB cluster and can be used to access other AWS services on your behalf.

  • PENDING - the IAM role ARN is being associated with the DB cluster.

  • INVALID - the IAM role ARN is associated with the DB cluster, but the DB cluster is unable to assume the IAM role in order to access other AWS services on your behalf.

", @@ -2424,9 +2511,9 @@ "DBClusterSnapshot$EngineVersion": "

Provides the version of the database engine for this DB cluster snapshot.

", "DBClusterSnapshot$LicenseModel": "

Provides the license model information for this DB cluster snapshot.

", "DBClusterSnapshot$SnapshotType": "

Provides the type of the DB cluster snapshot.

", - "DBClusterSnapshot$KmsKeyId": "

If StorageEncrypted is true, the KMS key identifier for the encrypted DB cluster snapshot.

", + "DBClusterSnapshot$KmsKeyId": "

If StorageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot.

", "DBClusterSnapshot$DBClusterSnapshotArn": "

The Amazon Resource Name (ARN) for the DB cluster snapshot.

", - "DBClusterSnapshot$SourceDBClusterSnapshotArn": "

If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot; otherwise, a null value.

", + "DBClusterSnapshot$SourceDBClusterSnapshotArn": "

If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot, otherwise, a null value.

", "DBClusterSnapshotAttribute$AttributeName": "

The name of the manual DB cluster snapshot attribute.

The attribute named restore refers to the list of AWS accounts that have permission to copy or restore the manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute API action.

", "DBClusterSnapshotAttributesResult$DBClusterSnapshotIdentifier": "

The identifier of the manual DB cluster snapshot that the attributes apply to.

", "DBClusterSnapshotMessage$Marker": "

An optional pagination token provided by a previous DescribeDBClusterSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", @@ -2453,13 +2540,14 @@ "DBInstance$StorageType": "

Specifies the storage type associated with DB instance.

", "DBInstance$TdeCredentialArn": "

The ARN from the key store with which the instance is associated for TDE encryption.

", "DBInstance$DBClusterIdentifier": "

If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.

", - "DBInstance$KmsKeyId": "

If StorageEncrypted is true, the KMS key identifier for the encrypted DB instance.

", - "DBInstance$DbiResourceId": "

The region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the KMS key for the DB instance is accessed.

", + "DBInstance$KmsKeyId": "

If StorageEncrypted is true, the AWS KMS key identifier for the encrypted DB instance.

", + "DBInstance$DbiResourceId": "

The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.

", "DBInstance$CACertificateIdentifier": "

The identifier of the CA certificate for this DB instance.

", "DBInstance$EnhancedMonitoringResourceArn": "

The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.

", - "DBInstance$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to CloudWatch Logs.

", + "DBInstance$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.

", "DBInstance$DBInstanceArn": "

The Amazon Resource Name (ARN) for the DB instance.

", "DBInstance$Timezone": "

The time zone of the DB instance. In most cases, the Timezone element is empty. Timezone content appears only for Microsoft SQL Server DB instances that were created with a time zone specified.

", + "DBInstance$PerformanceInsightsKMSKeyId": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

", "DBInstanceMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", "DBInstanceStatusInfo$StatusType": "

This value is currently \"read replication.\"

", "DBInstanceStatusInfo$Status": "

Status of the DB instance. For a StatusType of read replica, the values can be replicating, error, stopped, or terminated.

", @@ -2493,11 +2581,11 @@ "DBSnapshot$LicenseModel": "

License model information for the restored DB instance.

", "DBSnapshot$SnapshotType": "

Provides the type of the DB snapshot.

", "DBSnapshot$OptionGroupName": "

Provides the option group name for the DB snapshot.

", - "DBSnapshot$SourceRegion": "

The region that the DB snapshot was created in or copied from.

", - "DBSnapshot$SourceDBSnapshotIdentifier": "

The DB snapshot Arn that the DB snapshot was copied from. It only has value in case of cross customer or cross region copy.

", + "DBSnapshot$SourceRegion": "

The AWS Region that the DB snapshot was created in or copied from.

", + "DBSnapshot$SourceDBSnapshotIdentifier": "

The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was copied from. It only has value in case of cross-customer or cross-region copy.

", "DBSnapshot$StorageType": "

Specifies the storage type associated with DB snapshot.

", "DBSnapshot$TdeCredentialArn": "

The ARN from the key store with which to associate the instance for TDE encryption.

", - "DBSnapshot$KmsKeyId": "

If Encrypted is true, the KMS key identifier for the encrypted DB snapshot.

", + "DBSnapshot$KmsKeyId": "

If Encrypted is true, the AWS KMS key identifier for the encrypted DB snapshot.

", "DBSnapshot$DBSnapshotArn": "

The Amazon Resource Name (ARN) for the DB snapshot.

", "DBSnapshot$Timezone": "

The time zone of the DB snapshot. In most cases, the Timezone element is empty. Timezone content appears only for snapshots taken from Microsoft SQL Server DB instances that were created with a time zone specified.

", "DBSnapshotAttribute$AttributeName": "

The name of the manual DB snapshot attribute.

The attribute named restore refers to the list of AWS accounts that have permission to copy or restore the manual DB cluster snapshot. For more information, see the ModifyDBSnapshotAttribute API action.

", @@ -2509,53 +2597,53 @@ "DBSubnetGroup$SubnetGroupStatus": "

Provides the status of the DB subnet group.

", "DBSubnetGroup$DBSubnetGroupArn": "

The Amazon Resource Name (ARN) for the DB subnet group.

", "DBSubnetGroupMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", - "DeleteDBClusterMessage$DBClusterIdentifier": "

The DB cluster identifier for the DB cluster to be deleted. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "DeleteDBClusterMessage$FinalDBSnapshotIdentifier": "

The DB cluster snapshot identifier of the new DB cluster snapshot created when SkipFinalSnapshot is set to false.

Specifying this parameter and also setting the SkipFinalShapshot parameter to true results in an error.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "DeleteDBClusterParameterGroupMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group.

Constraints:

  • Must be the name of an existing DB cluster parameter group.

  • You cannot delete a default DB cluster parameter group.

  • Cannot be associated with any DB clusters.

", + "DeleteDBClusterMessage$DBClusterIdentifier": "

The DB cluster identifier for the DB cluster to be deleted. This parameter isn't case-sensitive.

Constraints:

  • Must match an existing DBClusterIdentifier.

", + "DeleteDBClusterMessage$FinalDBSnapshotIdentifier": "

The DB cluster snapshot identifier of the new DB cluster snapshot created when SkipFinalSnapshot is set to false.

Specifying this parameter and also setting the SkipFinalShapshot parameter to true results in an error.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "DeleteDBClusterParameterGroupMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group.

Constraints:

  • Must be the name of an existing DB cluster parameter group.

  • You can't delete a default DB cluster parameter group.

  • Cannot be associated with any DB clusters.

", "DeleteDBClusterSnapshotMessage$DBClusterSnapshotIdentifier": "

The identifier of the DB cluster snapshot to delete.

Constraints: Must be the name of an existing DB cluster snapshot in the available state.

", - "DeleteDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier for the DB instance to be deleted. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "DeleteDBInstanceMessage$FinalDBSnapshotIdentifier": "

The DBSnapshotIdentifier of the new DBSnapshot created when SkipFinalSnapshot is set to false.

Specifying this parameter and also setting the SkipFinalShapshot parameter to true results in an error.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

  • Cannot be specified when deleting a Read Replica.

", - "DeleteDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be the name of an existing DB parameter group

  • You cannot delete a default DB parameter group

  • Cannot be associated with any DB instances

", - "DeleteDBSecurityGroupMessage$DBSecurityGroupName": "

The name of the DB security group to delete.

You cannot delete the default DB security group.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

  • Must not be \"Default\"

", + "DeleteDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier for the DB instance to be deleted. This parameter isn't case-sensitive.

Constraints:

  • Must match the name of an existing DB instance.

", + "DeleteDBInstanceMessage$FinalDBSnapshotIdentifier": "

The DBSnapshotIdentifier of the new DBSnapshot created when SkipFinalSnapshot is set to false.

Specifying this parameter and also setting the SkipFinalShapshot parameter to true results in an error.

Constraints:

  • Must be 1 to 255 letters or numbers.

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

  • Cannot be specified when deleting a Read Replica.

", + "DeleteDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be the name of an existing DB parameter group

  • You can't delete a default DB parameter group

  • Cannot be associated with any DB instances

", + "DeleteDBSecurityGroupMessage$DBSecurityGroupName": "

The name of the DB security group to delete.

You can't delete the default DB security group.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

  • Must not be \"Default\"

", "DeleteDBSnapshotMessage$DBSnapshotIdentifier": "

The DBSnapshot identifier.

Constraints: Must be the name of an existing DB snapshot in the available state.

", - "DeleteDBSubnetGroupMessage$DBSubnetGroupName": "

The name of the database subnet group to delete.

You cannot delete the default subnet group.

Constraints:

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", + "DeleteDBSubnetGroupMessage$DBSubnetGroupName": "

The name of the database subnet group to delete.

You can't delete the default subnet group.

Constraints:

Constraints: Must match the name of an existing DBSubnetGroup. Must not be default.

Example: mySubnetgroup

", "DeleteEventSubscriptionMessage$SubscriptionName": "

The name of the RDS event notification subscription you want to delete.

", - "DeleteOptionGroupMessage$OptionGroupName": "

The name of the option group to be deleted.

You cannot delete default option groups.

", - "DescribeCertificatesMessage$CertificateIdentifier": "

The user-supplied certificate identifier. If this parameter is specified, information for only the identified certificate is returned. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "DeleteOptionGroupMessage$OptionGroupName": "

The name of the option group to be deleted.

You can't delete default option groups.

", + "DescribeCertificatesMessage$CertificateIdentifier": "

The user-supplied certificate identifier. If this parameter is specified, information for only the identified certificate is returned. This parameter isn't case-sensitive.

Constraints:

  • Must match an existing CertificateIdentifier.

", "DescribeCertificatesMessage$Marker": "

An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", - "DescribeDBClusterParameterGroupsMessage$DBClusterParameterGroupName": "

The name of a specific DB cluster parameter group to return details for.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "DescribeDBClusterParameterGroupsMessage$DBClusterParameterGroupName": "

The name of a specific DB cluster parameter group to return details for.

Constraints:

  • If supplied, must match the name of an existing DBClusterParameterGroup.

", "DescribeDBClusterParameterGroupsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBClusterParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", - "DescribeDBClusterParametersMessage$DBClusterParameterGroupName": "

The name of a specific DB cluster parameter group to return parameter details for.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "DescribeDBClusterParametersMessage$DBClusterParameterGroupName": "

The name of a specific DB cluster parameter group to return parameter details for.

Constraints:

  • If supplied, must match the name of an existing DBClusterParameterGroup.

", "DescribeDBClusterParametersMessage$Source": "

A value that indicates to return only parameters for a specific source. Parameter sources can be engine, service, or customer.

", "DescribeDBClusterParametersMessage$Marker": "

An optional pagination token provided by a previous DescribeDBClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeDBClusterSnapshotAttributesMessage$DBClusterSnapshotIdentifier": "

The identifier for the DB cluster snapshot to describe the attributes for.

", - "DescribeDBClusterSnapshotsMessage$DBClusterIdentifier": "

The ID of the DB cluster to retrieve the list of DB cluster snapshots for. This parameter cannot be used in conjunction with the DBClusterSnapshotIdentifier parameter. This parameter is not case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "DescribeDBClusterSnapshotsMessage$DBClusterSnapshotIdentifier": "

A specific DB cluster snapshot identifier to describe. This parameter cannot be used in conjunction with the DBClusterIdentifier parameter. This value is stored as a lowercase string.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

  • If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

", + "DescribeDBClusterSnapshotsMessage$DBClusterIdentifier": "

The ID of the DB cluster to retrieve the list of DB cluster snapshots for. This parameter can't be used in conjunction with the DBClusterSnapshotIdentifier parameter. This parameter is not case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DBCluster.

", + "DescribeDBClusterSnapshotsMessage$DBClusterSnapshotIdentifier": "

A specific DB cluster snapshot identifier to describe. This parameter can't be used in conjunction with the DBClusterIdentifier parameter. This value is stored as a lowercase string.

Constraints:

  • If supplied, must match the identifier of an existing DBClusterSnapshot.

  • If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

", "DescribeDBClusterSnapshotsMessage$SnapshotType": "

The type of DB cluster snapshots to be returned. You can specify one of the following values:

  • automated - Return all DB cluster snapshots that have been automatically taken by Amazon RDS for my AWS account.

  • manual - Return all DB cluster snapshots that have been taken by my AWS account.

  • shared - Return all manual DB cluster snapshots that have been shared to my AWS account.

  • public - Return all DB cluster snapshots that have been marked as public.

If you don't specify a SnapshotType value, then both automated and manual DB cluster snapshots are returned. You can include shared DB cluster snapshots with these results by setting the IncludeShared parameter to true. You can include public DB cluster snapshots with these results by setting the IncludePublic parameter to true.

The IncludeShared and IncludePublic parameters don't apply for SnapshotType values of manual or automated. The IncludePublic parameter doesn't apply when SnapshotType is set to shared. The IncludeShared parameter doesn't apply when SnapshotType is set to public.

", "DescribeDBClusterSnapshotsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBClusterSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", - "DescribeDBClustersMessage$DBClusterIdentifier": "

The user-supplied DB cluster identifier. If this parameter is specified, information from only the specific DB cluster is returned. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "DescribeDBClustersMessage$Marker": "

An optional pagination token provided by a previous DescribeDBClusters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBClustersMessage$DBClusterIdentifier": "

The user-supplied DB cluster identifier. If this parameter is specified, information from only the specific DB cluster is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match an existing DBClusterIdentifier.

", + "DescribeDBClustersMessage$Marker": "

An optional pagination token provided by a previous DescribeDBClusters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeDBEngineVersionsMessage$Engine": "

The database engine to return.

", "DescribeDBEngineVersionsMessage$EngineVersion": "

The database engine version to return.

Example: 5.1.49

", - "DescribeDBEngineVersionsMessage$DBParameterGroupFamily": "

The name of a specific DB parameter group family to return details for.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "DescribeDBEngineVersionsMessage$DBParameterGroupFamily": "

The name of a specific DB parameter group family to return details for.

Constraints:

  • If supplied, must match an existing DBParameterGroupFamily.

", "DescribeDBEngineVersionsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", - "DescribeDBInstancesMessage$DBInstanceIdentifier": "

The user-supplied instance identifier. If this parameter is specified, information from only the specific DB instance is returned. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "DescribeDBInstancesMessage$DBInstanceIdentifier": "

The user-supplied instance identifier. If this parameter is specified, information from only the specific DB instance is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DBInstance.

", "DescribeDBInstancesMessage$Marker": "

An optional pagination token provided by a previous DescribeDBInstances request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeDBLogFilesDetails$LogFileName": "

The name of the log file for the specified DB instance.

", - "DescribeDBLogFilesMessage$DBInstanceIdentifier": "

The customer-assigned name of the DB instance that contains the log files you want to list.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "DescribeDBLogFilesMessage$DBInstanceIdentifier": "

The customer-assigned name of the DB instance that contains the log files you want to list.

Constraints:

  • Must match the identifier of an existing DBInstance.

", "DescribeDBLogFilesMessage$FilenameContains": "

Filters the available log files for log file names that contain the specified string.

", "DescribeDBLogFilesMessage$Marker": "

The pagination token provided in the previous request. If this parameter is specified the response includes only records beyond the marker, up to MaxRecords.

", "DescribeDBLogFilesResponse$Marker": "

A pagination token that can be used in a subsequent DescribeDBLogFiles request.

", - "DescribeDBParameterGroupsMessage$DBParameterGroupName": "

The name of a specific DB parameter group to return details for.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "DescribeDBParameterGroupsMessage$DBParameterGroupName": "

The name of a specific DB parameter group to return details for.

Constraints:

  • If supplied, must match the name of an existing DBClusterParameterGroup.

", "DescribeDBParameterGroupsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", - "DescribeDBParametersMessage$DBParameterGroupName": "

The name of a specific DB parameter group to return details for.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "DescribeDBParametersMessage$DBParameterGroupName": "

The name of a specific DB parameter group to return details for.

Constraints:

  • If supplied, must match the name of an existing DBParameterGroup.

", "DescribeDBParametersMessage$Source": "

The parameter types to return.

Default: All parameter types returned

Valid Values: user | system | engine-default

", "DescribeDBParametersMessage$Marker": "

An optional pagination token provided by a previous DescribeDBParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeDBSecurityGroupsMessage$DBSecurityGroupName": "

The name of the DB security group to return details for.

", "DescribeDBSecurityGroupsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBSecurityGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeDBSnapshotAttributesMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot to describe the attributes for.

", - "DescribeDBSnapshotsMessage$DBInstanceIdentifier": "

The ID of the DB instance to retrieve the list of DB snapshots for. This parameter cannot be used in conjunction with DBSnapshotIdentifier. This parameter is not case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "DescribeDBSnapshotsMessage$DBSnapshotIdentifier": "

A specific DB snapshot identifier to describe. This parameter cannot be used in conjunction with DBInstanceIdentifier. This value is stored as a lowercase string.

Constraints:

  • Must be 1 to 255 alphanumeric characters.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

  • If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

", + "DescribeDBSnapshotsMessage$DBInstanceIdentifier": "

The ID of the DB instance to retrieve the list of DB snapshots for. This parameter can't be used in conjunction with DBSnapshotIdentifier. This parameter is not case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DBInstance.

", + "DescribeDBSnapshotsMessage$DBSnapshotIdentifier": "

A specific DB snapshot identifier to describe. This parameter can't be used in conjunction with DBInstanceIdentifier. This value is stored as a lowercase string.

Constraints:

  • If supplied, must match the identifier of an existing DBSnapshot.

  • If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

", "DescribeDBSnapshotsMessage$SnapshotType": "

The type of snapshots to be returned. You can specify one of the following values:

  • automated - Return all DB snapshots that have been automatically taken by Amazon RDS for my AWS account.

  • manual - Return all DB snapshots that have been taken by my AWS account.

  • shared - Return all manual DB snapshots that have been shared to my AWS account.

  • public - Return all DB snapshots that have been marked as public.

If you don't specify a SnapshotType value, then both automated and manual snapshots are returned. Shared and public DB snapshots are not included in the returned results by default. You can include shared snapshots with these results by setting the IncludeShared parameter to true. You can include public snapshots with these results by setting the IncludePublic parameter to true.

The IncludeShared and IncludePublic parameters don't apply for SnapshotType values of manual or automated. The IncludePublic parameter doesn't apply when SnapshotType is set to shared. The IncludeShared parameter doesn't apply when SnapshotType is set to public.

", "DescribeDBSnapshotsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeDBSubnetGroupsMessage$DBSubnetGroupName": "

The name of the DB subnet group to return details for.

", @@ -2564,12 +2652,12 @@ "DescribeEngineDefaultClusterParametersMessage$Marker": "

An optional pagination token provided by a previous DescribeEngineDefaultClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeEngineDefaultParametersMessage$DBParameterGroupFamily": "

The name of the DB parameter group family.

", "DescribeEngineDefaultParametersMessage$Marker": "

An optional pagination token provided by a previous DescribeEngineDefaultParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", - "DescribeEventCategoriesMessage$SourceType": "

The type of source that will be generating the events.

Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot

", + "DescribeEventCategoriesMessage$SourceType": "

The type of source that is generating the events.

Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot

", "DescribeEventSubscriptionsMessage$SubscriptionName": "

The name of the RDS event notification subscription you want to describe.

", "DescribeEventSubscriptionsMessage$Marker": "

An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", - "DescribeEventsMessage$SourceIdentifier": "

The identifier of the event source for which events will be returned. If not specified, then all sources are included in the response.

Constraints:

  • If SourceIdentifier is supplied, SourceType must also be provided.

  • If the source type is DBInstance, then a DBInstanceIdentifier must be supplied.

  • If the source type is DBSecurityGroup, a DBSecurityGroupName must be supplied.

  • If the source type is DBParameterGroup, a DBParameterGroupName must be supplied.

  • If the source type is DBSnapshot, a DBSnapshotIdentifier must be supplied.

  • Cannot end with a hyphen or contain two consecutive hyphens.

", + "DescribeEventsMessage$SourceIdentifier": "

The identifier of the event source for which events are returned. If not specified, then all sources are included in the response.

Constraints:

  • If SourceIdentifier is supplied, SourceType must also be provided.

  • If the source type is DBInstance, then a DBInstanceIdentifier must be supplied.

  • If the source type is DBSecurityGroup, a DBSecurityGroupName must be supplied.

  • If the source type is DBParameterGroup, a DBParameterGroupName must be supplied.

  • If the source type is DBSnapshot, a DBSnapshotIdentifier must be supplied.

  • Cannot end with a hyphen or contain two consecutive hyphens.

", "DescribeEventsMessage$Marker": "

An optional pagination token provided by a previous DescribeEvents request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", - "DescribeOptionGroupOptionsMessage$EngineName": "

A required parameter. Options available for the given engine name will be described.

", + "DescribeOptionGroupOptionsMessage$EngineName": "

A required parameter. Options available for the given engine name are described.

", "DescribeOptionGroupOptionsMessage$MajorEngineVersion": "

If specified, filters the results to include only options for the specified major engine version.

", "DescribeOptionGroupOptionsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "DescribeOptionGroupsMessage$OptionGroupName": "

The name of the option group to describe. Cannot be supplied together with EngineName or MajorEngineVersion.

", @@ -2596,15 +2684,16 @@ "DescribeReservedDBInstancesOfferingsMessage$ProductDescription": "

Product description filter value. Specify this parameter to show only the available offerings matching the specified product description.

", "DescribeReservedDBInstancesOfferingsMessage$OfferingType": "

The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type.

Valid Values: \"Partial Upfront\" | \"All Upfront\" | \"No Upfront\"

", "DescribeReservedDBInstancesOfferingsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", - "DescribeSourceRegionsMessage$RegionName": "

The source region name. For example, us-east-1.

Constraints:

  • Must specify a valid AWS Region name.

", - "DescribeSourceRegionsMessage$Marker": "

An optional pagination token provided by a previous DescribeSourceRegions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeSourceRegionsMessage$RegionName": "

The source AWS Region name. For example, us-east-1.

Constraints:

  • Must specify a valid AWS Region name.

", + "DescribeSourceRegionsMessage$Marker": "

An optional pagination token provided by a previous DescribeSourceRegions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeValidDBInstanceModificationsMessage$DBInstanceIdentifier": "

The customer identifier or the ARN of your DB instance.

", "DomainMembership$Domain": "

The identifier of the Active Directory Domain.

", "DomainMembership$Status": "

The status of the DB instance's Active Directory Domain membership, such as joined, pending-join, failed etc).

", "DomainMembership$FQDN": "

The fully qualified domain name of the Active Directory Domain.

", "DomainMembership$IAMRoleName": "

The name of the IAM role to be used when making API calls to the Directory Service.

", "DownloadDBLogFilePortionDetails$LogFileData": "

Entries from the specified log file.

", "DownloadDBLogFilePortionDetails$Marker": "

A pagination token that can be used in a subsequent DownloadDBLogFilePortion request.

", - "DownloadDBLogFilePortionMessage$DBInstanceIdentifier": "

The customer-assigned name of the DB instance that contains the log files you want to list.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "DownloadDBLogFilePortionMessage$DBInstanceIdentifier": "

The customer-assigned name of the DB instance that contains the log files you want to list.

Constraints:

  • Must match the identifier of an existing DBInstance.

", "DownloadDBLogFilePortionMessage$LogFileName": "

The name of the log file to be downloaded.

", "DownloadDBLogFilePortionMessage$Marker": "

The pagination token provided in the previous request or \"0\". If the Marker parameter is specified the response includes only records beyond the marker until the end of the file or up to NumberOfLines.

", "EC2SecurityGroup$Status": "

Provides the status of the EC2 security group. Status can be \"authorizing\", \"authorized\", \"revoking\", and \"revoked\".

", @@ -2629,7 +2718,7 @@ "EventSubscription$EventSubscriptionArn": "

The Amazon Resource Name (ARN) for the event subscription.

", "EventSubscriptionsMessage$Marker": "

An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "EventsMessage$Marker": "

An optional pagination token provided by a previous Events request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", - "FailoverDBClusterMessage$DBClusterIdentifier": "

A DB cluster identifier to force a failover for. This parameter is not case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "FailoverDBClusterMessage$DBClusterIdentifier": "

A DB cluster identifier to force a failover for. This parameter is not case-sensitive.

Constraints:

  • Must match the identifier of an existing DBCluster.

", "FailoverDBClusterMessage$TargetDBInstanceIdentifier": "

The name of the instance to promote to the primary instance.

You must specify the instance identifier for an Aurora Replica in the DB cluster. For example, mydbcluster-replica1.

", "Filter$Name": "

This parameter is not currently supported.

", "FilterValueList$member": null, @@ -2637,45 +2726,47 @@ "IPRange$CIDRIP": "

Specifies the IP range.

", "KeyList$member": null, "ListTagsForResourceMessage$ResourceName": "

The Amazon RDS resource with tags to be listed. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", - "ModifyDBClusterMessage$DBClusterIdentifier": "

The DB cluster identifier for the cluster being modified. This parameter is not case-sensitive.

Constraints:

  • Must be the identifier for an existing DB cluster.

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

", - "ModifyDBClusterMessage$NewDBClusterIdentifier": "

The new DB cluster identifier for the DB cluster when renaming a DB cluster. This value is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-cluster2

", + "ModifyDBClusterMessage$DBClusterIdentifier": "

The DB cluster identifier for the cluster being modified. This parameter is not case-sensitive.

Constraints:

  • Must match the identifier of an existing DBCluster.

", + "ModifyDBClusterMessage$NewDBClusterIdentifier": "

The new DB cluster identifier for the DB cluster when renaming a DB cluster. This value is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens

  • The first character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-cluster2

", "ModifyDBClusterMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group to use for the DB cluster.

", "ModifyDBClusterMessage$MasterUserPassword": "

The new password for the master database user. This password can contain any printable ASCII character except \"/\", \"\"\", or \"@\".

Constraints: Must contain from 8 to 41 characters.

", - "ModifyDBClusterMessage$OptionGroupName": "

A value that indicates that the DB cluster should be associated with the specified option group. Changing this parameter does not result in an outage except in the following case, and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted.

Permanent options cannot be removed from an option group. The option group cannot be removed from a DB cluster once it is associated with a DB cluster.

", - "ModifyDBClusterMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.

Default: A 30-minute window selected at random from an 8-hour block of time per region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Times should be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", - "ModifyDBClusterMessage$PreferredMaintenanceWindow": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Constraints: Minimum 30-minute window.

", + "ModifyDBClusterMessage$OptionGroupName": "

A value that indicates that the DB cluster should be associated with the specified option group. Changing this parameter does not result in an outage except in the following case, and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted.

Permanent options can't be removed from an option group. The option group can't be removed from a DB cluster once it is associated with a DB cluster.

", + "ModifyDBClusterMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", + "ModifyDBClusterMessage$PreferredMaintenanceWindow": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.

Constraints: Minimum 30-minute window.

", "ModifyDBClusterParameterGroupMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group to modify.

", "ModifyDBClusterSnapshotAttributeMessage$DBClusterSnapshotIdentifier": "

The identifier for the DB cluster snapshot to modify the attributes for.

", "ModifyDBClusterSnapshotAttributeMessage$AttributeName": "

The name of the DB cluster snapshot attribute to modify.

To manage authorization for other AWS accounts to copy or restore a manual DB cluster snapshot, set this value to restore.

", - "ModifyDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier. This value is stored as a lowercase string.

Constraints:

  • Must be the identifier for an existing DB instance

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "ModifyDBInstanceMessage$DBInstanceClass": "

The new compute and memory capacity of the DB instance. To determine the instance classes that are available for a particular DB engine, use the DescribeOrderableDBInstanceOptions action. Note that not all instance classes are available in all regions for all DB engines.

Passing a value for this setting causes an outage during the change and is applied during the next maintenance window, unless ApplyImmediately is specified as true for this request.

Default: Uses existing setting

Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large

", - "ModifyDBInstanceMessage$DBSubnetGroupName": "

The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC. If your DB instance is not in a VPC, you can also use this parameter to move your DB instance into a VPC. For more information, see Updating the VPC for a DB Instance.

Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you specify true for the ApplyImmediately parameter.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens.

Example: mySubnetGroup

", - "ModifyDBInstanceMessage$MasterUserPassword": "

The new password for the DB instance master user. Can be any printable ASCII character except \"/\", \"\"\", or \"@\".

Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

Default: Uses existing setting

Constraints: Must be 8 to 41 alphanumeric characters (MySQL, MariaDB, and Amazon Aurora), 8 to 30 alphanumeric characters (Oracle), or 8 to 128 alphanumeric characters (SQL Server).

Amazon RDS API actions never return the password, so this action provides a way to regain access to a primary instance user if the password is lost. This includes restoring privileges that might have been accidentally revoked.

", + "ModifyDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier. This value is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing DBInstance.

", + "ModifyDBInstanceMessage$DBInstanceClass": "

The new compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

If you modify the DB instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless ApplyImmediately is specified as true for this request.

Default: Uses existing setting

", + "ModifyDBInstanceMessage$DBSubnetGroupName": "

The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC. If your DB instance is not in a VPC, you can also use this parameter to move your DB instance into a VPC. For more information, see Updating the VPC for a DB Instance.

Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you specify true for the ApplyImmediately parameter.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mySubnetGroup

", + "ModifyDBInstanceMessage$MasterUserPassword": "

The new password for the master user. The password can include any printable ASCII character except \"/\", \"\"\", or \"@\".

Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

Amazon Aurora

Not applicable. The password for the master user is managed by the DB cluster. For more information, see ModifyDBCluster.

Default: Uses existing setting

MariaDB

Constraints: Must contain from 8 to 41 characters.

Microsoft SQL Server

Constraints: Must contain from 8 to 128 characters.

MySQL

Constraints: Must contain from 8 to 41 characters.

Oracle

Constraints: Must contain from 8 to 30 characters.

PostgreSQL

Constraints: Must contain from 8 to 128 characters.

Amazon RDS API actions never return the password, so this action provides a way to regain access to a primary instance user if the password is lost. This includes restoring privileges that might have been accidentally revoked.

", "ModifyDBInstanceMessage$DBParameterGroupName": "

The name of the DB parameter group to apply to the DB instance. Changing this setting does not result in an outage. The parameter group name itself is changed immediately, but the actual parameter changes are not applied until you reboot the instance without failover. The db instance will NOT be rebooted automatically and the parameter changes will NOT be applied during the next maintenance window.

Default: Uses existing setting

Constraints: The DB parameter group must be in the same DB parameter group family as this DB instance.

", - "ModifyDBInstanceMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod parameter. Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible.

Constraints:

  • Must be in the format hh24:mi-hh24:mi

  • Times should be in Universal Time Coordinated (UTC)

  • Must not conflict with the preferred maintenance window

  • Must be at least 30 minutes

", + "ModifyDBInstanceMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod parameter. Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible.

Amazon Aurora

Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see ModifyDBCluster.

Constraints:

  • Must be in the format hh24:mi-hh24:mi

  • Must be in Universal Time Coordinated (UTC)

  • Must not conflict with the preferred maintenance window

  • Must be at least 30 minutes

", "ModifyDBInstanceMessage$PreferredMaintenanceWindow": "

The weekly time range (in UTC) during which system maintenance can occur, which might result in an outage. Changing this parameter does not result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, then changing this parameter will cause a reboot of the DB instance. If moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied.

Default: Uses existing setting

Format: ddd:hh24:mi-ddd:hh24:mi

Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun

Constraints: Must be at least 30 minutes

", - "ModifyDBInstanceMessage$EngineVersion": "

The version number of the database engine to upgrade to. Changing this parameter results in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request.

For major version upgrades, if a non-default DB parameter group is currently in use, a new DB parameter group in the DB parameter group family for the new engine version must be specified. The new DB parameter group can be the default for that DB parameter group family.

For a list of valid engine versions, see CreateDBInstance.

", + "ModifyDBInstanceMessage$EngineVersion": "

The version number of the database engine to upgrade to. Changing this parameter results in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request.

For major version upgrades, if a nondefault DB parameter group is currently in use, a new DB parameter group in the DB parameter group family for the new engine version must be specified. The new DB parameter group can be the default for that DB parameter group family.

For a list of valid engine versions, see CreateDBInstance.

", "ModifyDBInstanceMessage$LicenseModel": "

The license model for the DB instance.

Valid values: license-included | bring-your-own-license | general-public-license

", - "ModifyDBInstanceMessage$OptionGroupName": "

Indicates that the DB instance should be associated with the specified option group. Changing this parameter does not result in an outage except in the following case and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", - "ModifyDBInstanceMessage$NewDBInstanceIdentifier": "

The new DB instance identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot will occur immediately if you set Apply Immediately to true, or will occur during the next maintenance window if Apply Immediately to false. This value is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "ModifyDBInstanceMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", - "ModifyDBInstanceMessage$TdeCredentialArn": "

The ARN from the Key Store with which to associate the instance for TDE encryption.

", - "ModifyDBInstanceMessage$TdeCredentialPassword": "

The password for the given ARN from the Key Store in order to access the device.

", + "ModifyDBInstanceMessage$OptionGroupName": "

Indicates that the DB instance should be associated with the specified option group. Changing this parameter does not result in an outage except in the following case and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance

", + "ModifyDBInstanceMessage$NewDBInstanceIdentifier": "

The new DB instance identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot will occur immediately if you set Apply Immediately to true, or will occur during the next maintenance window if Apply Immediately to false. This value is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • The first character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: mydbinstance

", + "ModifyDBInstanceMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise standard

", + "ModifyDBInstanceMessage$TdeCredentialArn": "

The ARN from the key store with which to associate the instance for TDE encryption.

", + "ModifyDBInstanceMessage$TdeCredentialPassword": "

The password for the given ARN from the key store in order to access the device.

", "ModifyDBInstanceMessage$CACertificateIdentifier": "

Indicates the certificate that needs to be associated with the instance.

", "ModifyDBInstanceMessage$Domain": "

The Active Directory Domain to move the instance to. Specify none to remove the instance from its current domain. The domain must be created prior to this operation. Currently only a Microsoft SQL Server instance can be created in a Active Directory Domain.

", - "ModifyDBInstanceMessage$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

", + "ModifyDBInstanceMessage$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

", "ModifyDBInstanceMessage$DomainIAMRoleName": "

The name of the IAM role to use when making API calls to the Directory Service.

", - "ModifyDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be the name of an existing DB parameter group

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "ModifyDBInstanceMessage$PerformanceInsightsKMSKeyId": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

", + "ModifyDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • If supplied, must match the name of an existing DBParameterGroup.

", "ModifyDBSnapshotAttributeMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot to modify the attributes for.

", "ModifyDBSnapshotAttributeMessage$AttributeName": "

The name of the DB snapshot attribute to modify.

To manage authorization for other AWS accounts to copy or restore a manual DB snapshot, set this value to restore.

", "ModifyDBSnapshotMessage$DBSnapshotIdentifier": "

The identifier of the DB snapshot to modify.

", - "ModifyDBSnapshotMessage$EngineVersion": "

The engine version to update the DB snapshot to.

", - "ModifyDBSubnetGroupMessage$DBSubnetGroupName": "

The name for the DB subnet group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", + "ModifyDBSnapshotMessage$EngineVersion": "

The engine version to upgrade the DB snapshot to.

The following are the database engines and engine versions that are available when you upgrade a DB snapshot.

MySQL

  • 5.5.46 (supported for 5.1 DB snapshots)

Oracle

  • 12.1.0.2.v8 (supported for 12.1.0.1 DB snapshots)

  • 11.2.0.4.v12 (supported for 11.2.0.2 DB snapshots)

  • 11.2.0.4.v11 (supported for 11.2.0.3 DB snapshots)

", + "ModifyDBSnapshotMessage$OptionGroupName": "

The option group to identify with the upgraded DB snapshot.

You can specify this parameter when you upgrade an Oracle DB snapshot. The same option group considerations apply when upgrading a DB snapshot as when upgrading a DB instance. For more information, see Option Group Considerations.

", + "ModifyDBSubnetGroupMessage$DBSubnetGroupName": "

The name for the DB subnet group. This value is stored as a lowercase string. You can't modify the default subnet group.

Constraints: Must match the name of an existing DBSubnetGroup. Must not be default.

Example: mySubnetgroup

", "ModifyDBSubnetGroupMessage$DBSubnetGroupDescription": "

The description for the DB subnet group.

", "ModifyEventSubscriptionMessage$SubscriptionName": "

The name of the RDS event notification subscription.

", "ModifyEventSubscriptionMessage$SnsTopicArn": "

The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.

", - "ModifyEventSubscriptionMessage$SourceType": "

The type of source that will be generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned.

Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot

", - "ModifyOptionGroupMessage$OptionGroupName": "

The name of the option group to be modified.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", + "ModifyEventSubscriptionMessage$SourceType": "

The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned.

Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot

", + "ModifyOptionGroupMessage$OptionGroupName": "

The name of the option group to be modified.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance

", "Option$OptionName": "

The name of the option.

", "Option$OptionDescription": "

The description of the option.

", "Option$OptionVersion": "

The version of the option.

", @@ -2712,11 +2803,11 @@ "OptionVersion$Version": "

The version of the option.

", "OptionsConflictsWith$member": null, "OptionsDependedOn$member": null, - "OrderableDBInstanceOption$Engine": "

The engine type of the orderable DB instance.

", - "OrderableDBInstanceOption$EngineVersion": "

The engine version of the orderable DB instance.

", - "OrderableDBInstanceOption$DBInstanceClass": "

The DB instance class for the orderable DB instance.

", - "OrderableDBInstanceOption$LicenseModel": "

The license model for the orderable DB instance.

", - "OrderableDBInstanceOption$StorageType": "

Indicates the storage type for this orderable DB instance.

", + "OrderableDBInstanceOption$Engine": "

The engine type of a DB instance.

", + "OrderableDBInstanceOption$EngineVersion": "

The engine version of a DB instance.

", + "OrderableDBInstanceOption$DBInstanceClass": "

The DB instance class for a DB instance.

", + "OrderableDBInstanceOption$LicenseModel": "

The license model for a DB instance.

", + "OrderableDBInstanceOption$StorageType": "

Indicates the storage type for a DB instance.

", "OrderableDBInstanceOptionsMessage$Marker": "

An optional pagination token provided by a previous OrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", "Parameter$ParameterName": "

Specifies the name of the parameter.

", "Parameter$ParameterValue": "

Specifies the value of the parameter.

", @@ -2730,29 +2821,29 @@ "PendingMaintenanceAction$OptInStatus": "

Indicates the type of opt-in request that has been received for the resource.

", "PendingMaintenanceAction$Description": "

A description providing more detail about the maintenance action.

", "PendingMaintenanceActionsMessage$Marker": "

An optional pagination token provided by a previous DescribePendingMaintenanceActions request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by MaxRecords.

", - "PendingModifiedValues$DBInstanceClass": "

Contains the new DBInstanceClass for the DB instance that will be applied or is in progress.

", - "PendingModifiedValues$MasterUserPassword": "

Contains the pending or in-progress change of the master credentials for the DB instance.

", + "PendingModifiedValues$DBInstanceClass": "

Contains the new DBInstanceClass for the DB instance that will be applied or is currently being applied.

", + "PendingModifiedValues$MasterUserPassword": "

Contains the pending or currently-in-progress change of the master credentials for the DB instance.

", "PendingModifiedValues$EngineVersion": "

Indicates the database engine version.

", "PendingModifiedValues$LicenseModel": "

The license model for the DB instance.

Valid values: license-included | bring-your-own-license | general-public-license

", - "PendingModifiedValues$DBInstanceIdentifier": "

Contains the new DBInstanceIdentifier for the DB instance that will be applied or is in progress.

", + "PendingModifiedValues$DBInstanceIdentifier": "

Contains the new DBInstanceIdentifier for the DB instance that will be applied or is currently being applied.

", "PendingModifiedValues$StorageType": "

Specifies the storage type to be associated with the DB instance.

", "PendingModifiedValues$CACertificateIdentifier": "

Specifies the identifier of the CA certificate for the DB instance.

", "PendingModifiedValues$DBSubnetGroupName": "

The new DB subnet group for the DB instance.

", - "PromoteReadReplicaDBClusterMessage$DBClusterIdentifier": "

The identifier of the DB cluster Read Replica to promote. This parameter is not case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster-replica1

", - "PromoteReadReplicaMessage$DBInstanceIdentifier": "

The DB instance identifier. This value is stored as a lowercase string.

Constraints:

  • Must be the identifier for an existing Read Replica DB instance

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: mydbinstance

", - "PromoteReadReplicaMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.

Default: A 30-minute window selected at random from an 8-hour block of time per region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Times should be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", + "PromoteReadReplicaDBClusterMessage$DBClusterIdentifier": "

The identifier of the DB cluster Read Replica to promote. This parameter is not case-sensitive.

Constraints:

  • Must match the identifier of an existing DBCluster Read Replica.

Example: my-cluster-replica1

", + "PromoteReadReplicaMessage$DBInstanceIdentifier": "

The DB instance identifier. This value is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing Read Replica DB instance.

Example: mydbinstance

", + "PromoteReadReplicaMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", "PurchaseReservedDBInstancesOfferingMessage$ReservedDBInstancesOfferingId": "

The ID of the Reserved DB instance offering to purchase.

Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706

", "PurchaseReservedDBInstancesOfferingMessage$ReservedDBInstanceId": "

Customer-specified identifier to track this reservation.

Example: myreservationID

", "ReadReplicaDBClusterIdentifierList$member": null, "ReadReplicaDBInstanceIdentifierList$member": null, "ReadReplicaIdentifierList$member": null, - "RebootDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "RebootDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing DBInstance.

", "RecurringCharge$RecurringChargeFrequency": "

The frequency of the recurring charge.

", "RemoveRoleFromDBClusterMessage$DBClusterIdentifier": "

The name of the DB cluster to disassociate the IAM role from.

", "RemoveRoleFromDBClusterMessage$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role to disassociate from the Aurora DB cluster, for example arn:aws:iam::123456789012:role/AuroraAccessRole.

", "RemoveSourceIdentifierFromSubscriptionMessage$SubscriptionName": "

The name of the RDS event notification subscription you want to remove a source identifier from.

", "RemoveSourceIdentifierFromSubscriptionMessage$SourceIdentifier": "

The source identifier to be removed from the subscription, such as the DB instance identifier for a DB instance or the name of a security group.

", - "RemoveTagsFromResourceMessage$ResourceName": "

The Amazon RDS resource the tags will be removed from. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", + "RemoveTagsFromResourceMessage$ResourceName": "

The Amazon RDS resource that the tags are removed from. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", "ReservedDBInstance$ReservedDBInstanceId": "

The unique identifier for the reservation.

", "ReservedDBInstance$ReservedDBInstancesOfferingId": "

The offering identifier.

", "ReservedDBInstance$DBInstanceClass": "

The DB instance class for the reserved DB instance.

", @@ -2769,77 +2860,100 @@ "ReservedDBInstancesOffering$OfferingType": "

The offering type.

", "ReservedDBInstancesOfferingMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "ResetDBClusterParameterGroupMessage$DBClusterParameterGroupName": "

The name of the DB cluster parameter group to reset.

", - "ResetDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "ResetDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must match the name of an existing DBParameterGroup.

", "ResourcePendingMaintenanceActions$ResourceIdentifier": "

The ARN of the resource that has pending maintenance actions.

", "RestoreDBClusterFromS3Message$CharacterSetName": "

A value that indicates that the restored DB cluster should be associated with the specified CharacterSet.

", "RestoreDBClusterFromS3Message$DatabaseName": "

The database name for the restored DB cluster.

", - "RestoreDBClusterFromS3Message$DBClusterIdentifier": "

The name of the DB cluster to create from the source data in the S3 bucket. This parameter is isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1

", - "RestoreDBClusterFromS3Message$DBClusterParameterGroupName": "

The name of the DB cluster parameter group to associate with the restored DB cluster. If this argument is omitted, default.aurora5.6 will be used.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "RestoreDBClusterFromS3Message$DBSubnetGroupName": "

A DB subnet group to associate with the restored DB cluster.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", - "RestoreDBClusterFromS3Message$Engine": "

The name of the database engine to be used for the restored DB cluster.

Valid Values: aurora

", + "RestoreDBClusterFromS3Message$DBClusterIdentifier": "

The name of the DB cluster to create from the source data in the Amazon S3 bucket. This parameter is isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster1

", + "RestoreDBClusterFromS3Message$DBClusterParameterGroupName": "

The name of the DB cluster parameter group to associate with the restored DB cluster. If this argument is omitted, default.aurora5.6 is used.

Constraints:

  • If supplied, must match the name of an existing DBClusterParameterGroup.

", + "RestoreDBClusterFromS3Message$DBSubnetGroupName": "

A DB subnet group to associate with the restored DB cluster.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mySubnetgroup

", + "RestoreDBClusterFromS3Message$Engine": "

The name of the database engine to be used for the restored DB cluster.

Valid Values: aurora, aurora-postgresql

", "RestoreDBClusterFromS3Message$EngineVersion": "

The version number of the database engine to use.

Aurora

Example: 5.6.10a

", - "RestoreDBClusterFromS3Message$MasterUsername": "

The name of the master user for the restored DB cluster.

Constraints:

  • Must be 1 to 16 alphanumeric characters.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

", + "RestoreDBClusterFromS3Message$MasterUsername": "

The name of the master user for the restored DB cluster.

Constraints:

  • Must be 1 to 16 letters or numbers.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

", "RestoreDBClusterFromS3Message$MasterUserPassword": "

The password for the master database user. This password can contain any printable ASCII character except \"/\", \"\"\", or \"@\".

Constraints: Must contain from 8 to 41 characters.

", - "RestoreDBClusterFromS3Message$OptionGroupName": "

A value that indicates that the restored DB cluster should be associated with the specified option group.

Permanent options cannot be removed from an option group. An option group cannot be removed from a DB cluster once it is associated with a DB cluster.

", - "RestoreDBClusterFromS3Message$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.

Default: A 30-minute window selected at random from an 8-hour block of time per region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Times should be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", - "RestoreDBClusterFromS3Message$PreferredMaintenanceWindow": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Constraints: Minimum 30-minute window.

", - "RestoreDBClusterFromS3Message$KmsKeyId": "

The KMS key identifier for an encrypted DB cluster.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KM encryption key.

If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region.

", + "RestoreDBClusterFromS3Message$OptionGroupName": "

A value that indicates that the restored DB cluster should be associated with the specified option group.

Permanent options can't be removed from an option group. An option group can't be removed from a DB cluster once it is associated with a DB cluster.

", + "RestoreDBClusterFromS3Message$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", + "RestoreDBClusterFromS3Message$PreferredMaintenanceWindow": "

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.

Constraints: Minimum 30-minute window.

", + "RestoreDBClusterFromS3Message$KmsKeyId": "

The AWS KMS key identifier for an encrypted DB cluster.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KM encryption key.

If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.

", "RestoreDBClusterFromS3Message$SourceEngine": "

The identifier for the database engine that was backed up to create the files stored in the Amazon S3 bucket.

Valid values: mysql

", "RestoreDBClusterFromS3Message$SourceEngineVersion": "

The version of the database that the backup files were created from.

MySQL version 5.5 and 5.6 are supported.

Example: 5.6.22

", "RestoreDBClusterFromS3Message$S3BucketName": "

The name of the Amazon S3 bucket that contains the data used to create the Amazon Aurora DB cluster.

", "RestoreDBClusterFromS3Message$S3Prefix": "

The prefix for all of the file names that contain the data used to create the Amazon Aurora DB cluster. If you do not specify a SourceS3Prefix value, then the Amazon Aurora DB cluster is created by using all of the files in the Amazon S3 bucket.

", "RestoreDBClusterFromS3Message$S3IngestionRoleArn": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon RDS to access the Amazon S3 bucket on your behalf.

", - "RestoreDBClusterFromSnapshotMessage$DBClusterIdentifier": "

The name of the DB cluster to create from the DB cluster snapshot. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 255 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", - "RestoreDBClusterFromSnapshotMessage$SnapshotIdentifier": "

The identifier for the DB cluster snapshot to restore from.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "RestoreDBClusterFromSnapshotMessage$DBClusterIdentifier": "

The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 255 letters, numbers, or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", + "RestoreDBClusterFromSnapshotMessage$SnapshotIdentifier": "

The identifier for the DB snapshot or DB cluster snapshot to restore from.

You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.

Constraints:

  • Must match the identifier of an existing Snapshot.

", "RestoreDBClusterFromSnapshotMessage$Engine": "

The database engine to use for the new DB cluster.

Default: The same as source

Constraint: Must be compatible with the engine of the source

", "RestoreDBClusterFromSnapshotMessage$EngineVersion": "

The version of the database engine to use for the new DB cluster.

", - "RestoreDBClusterFromSnapshotMessage$DBSubnetGroupName": "

The name of the DB subnet group to use for the new DB cluster.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", + "RestoreDBClusterFromSnapshotMessage$DBSubnetGroupName": "

The name of the DB subnet group to use for the new DB cluster.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mySubnetgroup

", "RestoreDBClusterFromSnapshotMessage$DatabaseName": "

The database name for the restored DB cluster.

", "RestoreDBClusterFromSnapshotMessage$OptionGroupName": "

The name of the option group to use for the restored DB cluster.

", - "RestoreDBClusterFromSnapshotMessage$KmsKeyId": "

The KMS key identifier to use when restoring an encrypted DB cluster from a DB cluster snapshot.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

If you do not specify a value for the KmsKeyId parameter, then the following will occur:

  • If the DB cluster snapshot is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB cluster snapshot.

  • If the DB cluster snapshot is not encrypted, then the restored DB cluster is encrypted using the specified encryption key.

", - "RestoreDBClusterToPointInTimeMessage$DBClusterIdentifier": "

The name of the new DB cluster to be created.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "RestoreDBClusterToPointInTimeMessage$RestoreType": "

The type of restore to be performed. You can specify one of the following values:

  • full-copy - The new DB cluster is restored as a full copy of the source DB cluster.

  • copy-on-write - The new DB cluster is restored as a clone of the source DB cluster.

Constraints: You cannot specify copy-on-write if the engine version of the source DB cluster is earlier than 1.11.

If you don't specify a RestoreType value, then the new DB cluster is restored as a full copy of the source DB cluster.

", - "RestoreDBClusterToPointInTimeMessage$SourceDBClusterIdentifier": "

The identifier of the source DB cluster from which to restore.

Constraints:

  • Must be the identifier of an existing database instance

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "RestoreDBClusterToPointInTimeMessage$DBSubnetGroupName": "

The DB subnet group name to use for the new DB cluster.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", + "RestoreDBClusterFromSnapshotMessage$KmsKeyId": "

The AWS KMS key identifier to use when restoring an encrypted DB cluster from a DB snapshot or DB cluster snapshot.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

If you do not specify a value for the KmsKeyId parameter, then the following will occur:

  • If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB snapshot or DB cluster snapshot.

  • If the DB snapshot or DB cluster snapshot in SnapshotIdentifier is not encrypted, then the restored DB cluster is not encrypted.

", + "RestoreDBClusterToPointInTimeMessage$DBClusterIdentifier": "

The name of the new DB cluster to be created.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "RestoreDBClusterToPointInTimeMessage$RestoreType": "

The type of restore to be performed. You can specify one of the following values:

  • full-copy - The new DB cluster is restored as a full copy of the source DB cluster.

  • copy-on-write - The new DB cluster is restored as a clone of the source DB cluster.

Constraints: You can't specify copy-on-write if the engine version of the source DB cluster is earlier than 1.11.

If you don't specify a RestoreType value, then the new DB cluster is restored as a full copy of the source DB cluster.

", + "RestoreDBClusterToPointInTimeMessage$SourceDBClusterIdentifier": "

The identifier of the source DB cluster from which to restore.

Constraints:

  • Must match the identifier of an existing DBCluster.

", + "RestoreDBClusterToPointInTimeMessage$DBSubnetGroupName": "

The DB subnet group name to use for the new DB cluster.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mySubnetgroup

", "RestoreDBClusterToPointInTimeMessage$OptionGroupName": "

The name of the option group for the new DB cluster.

", - "RestoreDBClusterToPointInTimeMessage$KmsKeyId": "

The KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

You can restore to a new DB cluster and encrypt the new DB cluster with a KMS key that is different than the KMS key used to encrypt the source DB cluster. The new DB cluster will be encrypted with the KMS key identified by the KmsKeyId parameter.

If you do not specify a value for the KmsKeyId parameter, then the following will occur:

  • If the DB cluster is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the source DB cluster.

  • If the DB cluster is not encrypted, then the restored DB cluster is not encrypted.

If DBClusterIdentifier refers to a DB cluster that is not encrypted, then the restore request is rejected.

", - "RestoreDBInstanceFromDBSnapshotMessage$DBInstanceIdentifier": "

Name of the DB instance to create from the DB snapshot. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens (1 to 15 for SQL Server)

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", - "RestoreDBInstanceFromDBSnapshotMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot to restore from.

Constraints:

  • Must contain from 1 to 255 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

", - "RestoreDBInstanceFromDBSnapshotMessage$DBInstanceClass": "

The compute and memory capacity of the Amazon RDS DB instance.

Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large

", - "RestoreDBInstanceFromDBSnapshotMessage$AvailabilityZone": "

The EC2 Availability Zone that the database instance will be created in.

Default: A random, system-chosen Availability Zone.

Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

Example: us-east-1a

", - "RestoreDBInstanceFromDBSnapshotMessage$DBSubnetGroupName": "

The DB subnet group name to use for the new instance.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", + "RestoreDBClusterToPointInTimeMessage$KmsKeyId": "

The AWS KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

You can restore to a new DB cluster and encrypt the new DB cluster with a KMS key that is different than the KMS key used to encrypt the source DB cluster. The new DB cluster is encrypted with the KMS key identified by the KmsKeyId parameter.

If you do not specify a value for the KmsKeyId parameter, then the following will occur:

  • If the DB cluster is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the source DB cluster.

  • If the DB cluster is not encrypted, then the restored DB cluster is not encrypted.

If DBClusterIdentifier refers to a DB cluster that is not encrypted, then the restore request is rejected.

", + "RestoreDBInstanceFromDBSnapshotMessage$DBInstanceIdentifier": "

Name of the DB instance to create from the DB snapshot. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 numbers, letters, or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", + "RestoreDBInstanceFromDBSnapshotMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot to restore from.

Constraints:

  • Must match the identifier of an existing DBSnapshot.

  • If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

", + "RestoreDBInstanceFromDBSnapshotMessage$DBInstanceClass": "

The compute and memory capacity of the Amazon RDS DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Default: The same DBInstanceClass as the original DB instance.

", + "RestoreDBInstanceFromDBSnapshotMessage$AvailabilityZone": "

The EC2 Availability Zone that the DB instance is created in.

Default: A random, system-chosen Availability Zone.

Constraint: You can't specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

Example: us-east-1a

", + "RestoreDBInstanceFromDBSnapshotMessage$DBSubnetGroupName": "

The DB subnet group name to use for the new instance.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mySubnetgroup

", "RestoreDBInstanceFromDBSnapshotMessage$LicenseModel": "

License model information for the restored DB instance.

Default: Same as source.

Valid values: license-included | bring-your-own-license | general-public-license

", "RestoreDBInstanceFromDBSnapshotMessage$DBName": "

The database name for the restored DB instance.

This parameter doesn't apply to the MySQL, PostgreSQL, or MariaDB engines.

", - "RestoreDBInstanceFromDBSnapshotMessage$Engine": "

The database engine to use for the new instance.

Default: The same as source

Constraint: Must be compatible with the engine of the source. You can restore a MariaDB 10.1 DB instance from a MySQL 5.6 snapshot.

Valid Values: MySQL | mariadb | oracle-se1 | oracle-se | oracle-ee | sqlserver-ee | sqlserver-se | sqlserver-ex | sqlserver-web | postgres | aurora

", - "RestoreDBInstanceFromDBSnapshotMessage$OptionGroupName": "

The name of the option group to be used for the restored DB instance.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", - "RestoreDBInstanceFromDBSnapshotMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", - "RestoreDBInstanceFromDBSnapshotMessage$TdeCredentialArn": "

The ARN from the Key Store with which to associate the instance for TDE encryption.

", - "RestoreDBInstanceFromDBSnapshotMessage$TdeCredentialPassword": "

The password for the given ARN from the Key Store in order to access the device.

", + "RestoreDBInstanceFromDBSnapshotMessage$Engine": "

The database engine to use for the new instance.

Default: The same as source

Constraint: Must be compatible with the engine of the source. You can restore a MariaDB 10.1 DB instance from a MySQL 5.6 snapshot.

Valid Values:

  • aurora

  • aurora-postgresql

  • mariadb

  • mysql

  • oracle-ee

  • oracle-se2

  • oracle-se1

  • oracle-se

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

", + "RestoreDBInstanceFromDBSnapshotMessage$OptionGroupName": "

The name of the option group to be used for the restored DB instance.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance

", + "RestoreDBInstanceFromDBSnapshotMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise standard

", + "RestoreDBInstanceFromDBSnapshotMessage$TdeCredentialArn": "

The ARN from the key store with which to associate the instance for TDE encryption.

", + "RestoreDBInstanceFromDBSnapshotMessage$TdeCredentialPassword": "

The password for the given ARN from the key store in order to access the device.

", "RestoreDBInstanceFromDBSnapshotMessage$Domain": "

Specify the Active Directory Domain to restore the instance in.

", "RestoreDBInstanceFromDBSnapshotMessage$DomainIAMRoleName": "

Specify the name of the IAM role to be used when making API calls to the Directory Service.

", - "RestoreDBInstanceToPointInTimeMessage$SourceDBInstanceIdentifier": "

The identifier of the source DB instance from which to restore.

Constraints:

  • Must be the identifier of an existing database instance

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "RestoreDBInstanceToPointInTimeMessage$TargetDBInstanceIdentifier": "

The name of the new database instance to be created.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", - "RestoreDBInstanceToPointInTimeMessage$DBInstanceClass": "

The compute and memory capacity of the Amazon RDS DB instance.

Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large

Default: The same DBInstanceClass as the original DB instance.

", - "RestoreDBInstanceToPointInTimeMessage$AvailabilityZone": "

The EC2 Availability Zone that the database instance will be created in.

Default: A random, system-chosen Availability Zone.

Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

Example: us-east-1a

", - "RestoreDBInstanceToPointInTimeMessage$DBSubnetGroupName": "

The DB subnet group name to use for the new instance.

Constraints: Must contain no more than 255 alphanumeric characters, periods, underscores, spaces, or hyphens. Must not be default.

Example: mySubnetgroup

", + "RestoreDBInstanceFromS3Message$DBName": "

The name of the database to create when the DB instance is created. Follow the naming rules specified in CreateDBInstance.

", + "RestoreDBInstanceFromS3Message$DBInstanceIdentifier": "

The DB instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: mydbinstance

", + "RestoreDBInstanceFromS3Message$DBInstanceClass": "

The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Importing from Amazon S3 is not supported on the db.t2.micro DB instance class.

", + "RestoreDBInstanceFromS3Message$Engine": "

The name of the database engine to be used for this instance.

Valid Values: mysql

", + "RestoreDBInstanceFromS3Message$MasterUsername": "

The name for the master user.

Constraints:

  • Must be 1 to 16 letters or numbers.

  • First character must be a letter.

  • Cannot be a reserved word for the chosen database engine.

", + "RestoreDBInstanceFromS3Message$MasterUserPassword": "

The password for the master user. The password can include any printable ASCII character except \"/\", \"\"\", or \"@\".

Constraints: Must contain from 8 to 41 characters.

", + "RestoreDBInstanceFromS3Message$AvailabilityZone": "

The Availability Zone that the DB instance is created in. For information about AWS Regions and Availability Zones, see Regions and Availability Zones.

Default: A random, system-chosen Availability Zone in the endpoint's AWS Region.

Example: us-east-1d

Constraint: The AvailabilityZone parameter can't be specified if the MultiAZ parameter is set to true. The specified Availability Zone must be in the same AWS Region as the current endpoint.

", + "RestoreDBInstanceFromS3Message$DBSubnetGroupName": "

A DB subnet group to associate with this DB instance.

", + "RestoreDBInstanceFromS3Message$PreferredMaintenanceWindow": "

The time range each week during which system maintenance can occur, in Universal Coordinated Time (UTC). For more information, see Amazon RDS Maintenance Window.

Constraints:

  • Must be in the format ddd:hh24:mi-ddd:hh24:mi.

  • Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred backup window.

  • Must be at least 30 minutes.

", + "RestoreDBInstanceFromS3Message$DBParameterGroupName": "

The name of the DB parameter group to associate with this DB instance. If this argument is omitted, the default parameter group for the specified engine is used.

", + "RestoreDBInstanceFromS3Message$PreferredBackupWindow": "

The time range each day during which automated backups are created if automated backups are enabled. For more information, see The Backup Window.

Constraints:

  • Must be in the format hh24:mi-hh24:mi.

  • Must be in Universal Coordinated Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

", + "RestoreDBInstanceFromS3Message$EngineVersion": "

The version number of the database engine to use. Choose the latest minor version of your database engine as specified in CreateDBInstance.

", + "RestoreDBInstanceFromS3Message$LicenseModel": "

The license model for this DB instance. Use general-public-license.

", + "RestoreDBInstanceFromS3Message$OptionGroupName": "

The name of the option group to associate with this DB instance. If this argument is omitted, the default option group for the specified engine is used.

", + "RestoreDBInstanceFromS3Message$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", + "RestoreDBInstanceFromS3Message$KmsKeyId": "

The AWS KMS key identifier for an encrypted DB instance.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, then you can use the KMS key alias instead of the ARN for the KM encryption key.

If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.

", + "RestoreDBInstanceFromS3Message$MonitoringRoleArn": "

The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, see Setting Up and Enabling Enhanced Monitoring.

If MonitoringInterval is set to a value other than 0, then you must supply a MonitoringRoleArn value.

", + "RestoreDBInstanceFromS3Message$SourceEngine": "

The name of the engine of your source database.

Valid Values: mysql

", + "RestoreDBInstanceFromS3Message$SourceEngineVersion": "

The engine version of your source database.

Valid Values: 5.6

", + "RestoreDBInstanceFromS3Message$S3BucketName": "

The name of your Amazon S3 bucket that contains your database backup file.

", + "RestoreDBInstanceFromS3Message$S3Prefix": "

The prefix of your Amazon S3 bucket.

", + "RestoreDBInstanceFromS3Message$S3IngestionRoleArn": "

An AWS Identity and Access Management (IAM) role to allow Amazon RDS to access your Amazon S3 bucket.

", + "RestoreDBInstanceFromS3Message$PerformanceInsightsKMSKeyId": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), the KMS key identifier, or the KMS key alias for the KMS encryption key.

", + "RestoreDBInstanceToPointInTimeMessage$SourceDBInstanceIdentifier": "

The identifier of the source DB instance from which to restore.

Constraints:

  • Must match the identifier of an existing DBInstance.

", + "RestoreDBInstanceToPointInTimeMessage$TargetDBInstanceIdentifier": "

The name of the new DB instance to be created.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "RestoreDBInstanceToPointInTimeMessage$DBInstanceClass": "

The compute and memory capacity of the Amazon RDS DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Default: The same DBInstanceClass as the original DB instance.

", + "RestoreDBInstanceToPointInTimeMessage$AvailabilityZone": "

The EC2 Availability Zone that the DB instance is created in.

Default: A random, system-chosen Availability Zone.

Constraint: You can't specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

Example: us-east-1a

", + "RestoreDBInstanceToPointInTimeMessage$DBSubnetGroupName": "

The DB subnet group name to use for the new instance.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mySubnetgroup

", "RestoreDBInstanceToPointInTimeMessage$LicenseModel": "

License model information for the restored DB instance.

Default: Same as source.

Valid values: license-included | bring-your-own-license | general-public-license

", "RestoreDBInstanceToPointInTimeMessage$DBName": "

The database name for the restored DB instance.

This parameter is not used for the MySQL or MariaDB engines.

", - "RestoreDBInstanceToPointInTimeMessage$Engine": "

The database engine to use for the new instance.

Default: The same as source

Constraint: Must be compatible with the engine of the source

Valid Values: MySQL | mariadb | oracle-se1 | oracle-se | oracle-ee | sqlserver-ee | sqlserver-se | sqlserver-ex | sqlserver-web | postgres | aurora

", - "RestoreDBInstanceToPointInTimeMessage$OptionGroupName": "

The name of the option group to be used for the restored DB instance.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", - "RestoreDBInstanceToPointInTimeMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", - "RestoreDBInstanceToPointInTimeMessage$TdeCredentialArn": "

The ARN from the Key Store with which to associate the instance for TDE encryption.

", - "RestoreDBInstanceToPointInTimeMessage$TdeCredentialPassword": "

The password for the given ARN from the Key Store in order to access the device.

", + "RestoreDBInstanceToPointInTimeMessage$Engine": "

The database engine to use for the new instance.

Default: The same as source

Constraint: Must be compatible with the engine of the source

Valid Values:

  • aurora

  • aurora-postgresql

  • mariadb

  • mysql

  • oracle-ee

  • oracle-se2

  • oracle-se1

  • oracle-se

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

", + "RestoreDBInstanceToPointInTimeMessage$OptionGroupName": "

The name of the option group to be used for the restored DB instance.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance

", + "RestoreDBInstanceToPointInTimeMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise standard

", + "RestoreDBInstanceToPointInTimeMessage$TdeCredentialArn": "

The ARN from the key store with which to associate the instance for TDE encryption.

", + "RestoreDBInstanceToPointInTimeMessage$TdeCredentialPassword": "

The password for the given ARN from the key store in order to access the device.

", "RestoreDBInstanceToPointInTimeMessage$Domain": "

Specify the Active Directory Domain to restore the instance in.

", "RestoreDBInstanceToPointInTimeMessage$DomainIAMRoleName": "

Specify the name of the IAM role to be used when making API calls to the Directory Service.

", "RevokeDBSecurityGroupIngressMessage$DBSecurityGroupName": "

The name of the DB security group to revoke ingress from.

", - "RevokeDBSecurityGroupIngressMessage$CIDRIP": "

The IP range to revoke access from. Must be a valid CIDR range. If CIDRIP is specified, EC2SecurityGroupName, EC2SecurityGroupId and EC2SecurityGroupOwnerId cannot be provided.

", + "RevokeDBSecurityGroupIngressMessage$CIDRIP": "

The IP range to revoke access from. Must be a valid CIDR range. If CIDRIP is specified, EC2SecurityGroupName, EC2SecurityGroupId and EC2SecurityGroupOwnerId can't be provided.

", "RevokeDBSecurityGroupIngressMessage$EC2SecurityGroupName": "

The name of the EC2 security group to revoke access from. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

", "RevokeDBSecurityGroupIngressMessage$EC2SecurityGroupId": "

The id of the EC2 security group to revoke access from. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

", "RevokeDBSecurityGroupIngressMessage$EC2SecurityGroupOwnerId": "

The AWS Account Number of the owner of the EC2 security group specified in the EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable value. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

", "SourceIdsList$member": null, - "SourceRegion$RegionName": "

The source region name.

", - "SourceRegion$Endpoint": "

The source region endpoint.

", - "SourceRegion$Status": "

The status of the source region.

", + "SourceRegion$RegionName": "

The name of the source AWS Region.

", + "SourceRegion$Endpoint": "

The endpoint for the source AWS Region endpoint.

", + "SourceRegion$Status": "

The status of the source AWS Region.

", "SourceRegionMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", "StartDBInstanceMessage$DBInstanceIdentifier": "

The user-supplied instance identifier.

", "StopDBInstanceMessage$DBInstanceIdentifier": "

The user-supplied instance identifier.

", @@ -2847,12 +2961,13 @@ "Subnet$SubnetIdentifier": "

Specifies the identifier of the subnet.

", "Subnet$SubnetStatus": "

Specifies the status of the subnet.

", "SubnetIdentifierList$member": null, - "Tag$Key": "

A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and cannot be prefixed with \"aws:\" or \"rds:\". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

", - "Tag$Value": "

A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and cannot be prefixed with \"aws:\" or \"rds:\". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

", + "Tag$Key": "

A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with \"aws:\" or \"rds:\". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

", + "Tag$Value": "

A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with \"aws:\" or \"rds:\". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

", "Timezone$TimezoneName": "

The name of the time zone.

", "UpgradeTarget$Engine": "

The name of the upgrade target database engine.

", "UpgradeTarget$EngineVersion": "

The version number of the upgrade target database engine.

", "UpgradeTarget$Description": "

The version of the database engine that a DB instance can be upgraded to.

", + "ValidStorageOptions$StorageType": "

The valid storage types for your DB instance. For example, gp2, io1.

", "VpcSecurityGroupIdList$member": null, "VpcSecurityGroupMembership$VpcSecurityGroupId": "

The name of the VPC security group.

", "VpcSecurityGroupMembership$Status": "

The status of the VPC security group.

" @@ -2926,9 +3041,9 @@ "DescribeEventsMessage$StartTime": "

The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", "DescribeEventsMessage$EndTime": "

The end of the time interval for which to retrieve events, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", "Event$Date": "

Specifies the date and time of the event.

", - "PendingMaintenanceAction$AutoAppliedAfterDate": "

The date of the maintenance window when the action will be applied. The maintenance action will be applied to the resource during its first maintenance window after this date. If this date is specified, any next-maintenance opt-in requests are ignored.

", - "PendingMaintenanceAction$ForcedApplyDate": "

The date when the maintenance action will be automatically applied. The maintenance action will be applied to the resource on this date regardless of the maintenance window for the resource. If this date is specified, any immediate opt-in requests are ignored.

", - "PendingMaintenanceAction$CurrentApplyDate": "

The effective date when the pending maintenance action will be applied to the resource. This date takes into account opt-in requests received from the ApplyPendingMaintenanceAction API, the AutoAppliedAfterDate, and the ForcedApplyDate. This value is blank if an opt-in request has not been received and nothing has been specified as AutoAppliedAfterDate or ForcedApplyDate.

", + "PendingMaintenanceAction$AutoAppliedAfterDate": "

The date of the maintenance window when the action is applied. The maintenance action is applied to the resource during its first maintenance window after this date. If this date is specified, any next-maintenance opt-in requests are ignored.

", + "PendingMaintenanceAction$ForcedApplyDate": "

The date when the maintenance action is automatically applied. The maintenance action is applied to the resource on this date regardless of the maintenance window for the resource. If this date is specified, any immediate opt-in requests are ignored.

", + "PendingMaintenanceAction$CurrentApplyDate": "

The effective date when the pending maintenance action is applied to the resource. This date takes into account opt-in requests received from the ApplyPendingMaintenanceAction API, the AutoAppliedAfterDate, and the ForcedApplyDate. This value is blank if an opt-in request has not been received and nothing has been specified as AutoAppliedAfterDate or ForcedApplyDate.

", "ReservedDBInstance$StartTime": "

The time the reservation started.

", "RestoreDBClusterToPointInTimeMessage$RestoreToTime": "

The date and time to restore the DB cluster to.

Valid Values: Value must be a time in Universal Coordinated Time (UTC) format

Constraints:

  • Must be before the latest restorable time for the DB instance

  • Must be specified if UseLatestRestorableTime parameter is not provided

  • Cannot be specified if UseLatestRestorableTime parameter is true

  • Cannot be specified if RestoreType parameter is copy-on-write

Example: 2015-03-07T23:45:00Z

", "RestoreDBInstanceToPointInTimeMessage$RestoreTime": "

The date and time to restore from.

Valid Values: Value must be a time in Universal Coordinated Time (UTC) format

Constraints:

  • Must be before the latest restorable time for the DB instance

  • Cannot be specified if UseLatestRestorableTime parameter is true

Example: 2009-09-07T23:45:00Z

" @@ -2941,7 +3056,7 @@ } }, "TagList": { - "base": "

A list of tags.

", + "base": "

A list of tags. For more information, see Tagging Amazon RDS Resources.

", "refs": { "AddTagsToResourceMessage$Tags": "

The tags to be assigned to the Amazon RDS resource.

", "CopyDBClusterParameterGroupMessage$Tags": null, @@ -2965,6 +3080,7 @@ "RestoreDBClusterFromSnapshotMessage$Tags": "

The tags to be assigned to the restored DB cluster.

", "RestoreDBClusterToPointInTimeMessage$Tags": null, "RestoreDBInstanceFromDBSnapshotMessage$Tags": null, + "RestoreDBInstanceFromS3Message$Tags": "

A list of tags to associate with this DB instance. For more information, see Tagging Amazon RDS Resources.

", "RestoreDBInstanceToPointInTimeMessage$Tags": null, "TagListMessage$TagList": "

List of tags returned by the ListTagsForResource operation.

" } @@ -2986,6 +3102,24 @@ "ValidUpgradeTargetList$member": null } }, + "ValidDBInstanceModificationsMessage": { + "base": "

Information about valid modifications that you can make to your DB instance. Contains the result of a successful call to the DescribeValidDBInstanceModifications action. You can use this information when you call ModifyDBInstance.

", + "refs": { + "DescribeValidDBInstanceModificationsResult$ValidDBInstanceModificationsMessage": null + } + }, + "ValidStorageOptions": { + "base": "

Information about valid modifications that you can make to your DB instance. Contains the result of a successful call to the DescribeValidDBInstanceModifications action.

", + "refs": { + "ValidStorageOptionsList$member": null + } + }, + "ValidStorageOptionsList": { + "base": null, + "refs": { + "ValidDBInstanceModificationsMessage$Storage": "

Valid storage options for your DB instance.

" + } + }, "ValidUpgradeTargetList": { "base": null, "refs": { @@ -2996,13 +3130,14 @@ "base": null, "refs": { "CreateDBClusterMessage$VpcSecurityGroupIds": "

A list of EC2 VPC security groups to associate with this DB cluster.

", - "CreateDBInstanceMessage$VpcSecurityGroupIds": "

A list of EC2 VPC security groups to associate with this DB instance.

Default: The default EC2 VPC security group for the DB subnet group's VPC.

", + "CreateDBInstanceMessage$VpcSecurityGroupIds": "

A list of EC2 VPC security groups to associate with this DB instance.

Amazon Aurora

Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see CreateDBCluster.

Default: The default EC2 VPC security group for the DB subnet group's VPC.

", "ModifyDBClusterMessage$VpcSecurityGroupIds": "

A list of VPC security groups that the DB cluster will belong to.

", - "ModifyDBInstanceMessage$VpcSecurityGroupIds": "

A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible.

Constraints:

  • Must be 1 to 255 alphanumeric characters

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

", + "ModifyDBInstanceMessage$VpcSecurityGroupIds": "

A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible.

Amazon Aurora

Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see ModifyDBCluster.

Constraints:

  • If supplied, must match existing VpcSecurityGroupIds.

", "OptionConfiguration$VpcSecurityGroupMemberships": "

A list of VpcSecurityGroupMemebrship name strings used for this option.

", "RestoreDBClusterFromS3Message$VpcSecurityGroupIds": "

A list of EC2 VPC security groups to associate with the restored DB cluster.

", "RestoreDBClusterFromSnapshotMessage$VpcSecurityGroupIds": "

A list of VPC security groups that the new DB cluster will belong to.

", - "RestoreDBClusterToPointInTimeMessage$VpcSecurityGroupIds": "

A list of VPC security groups that the new DB cluster belongs to.

" + "RestoreDBClusterToPointInTimeMessage$VpcSecurityGroupIds": "

A list of VPC security groups that the new DB cluster belongs to.

", + "RestoreDBInstanceFromS3Message$VpcSecurityGroupIds": "

A list of VPC security groups to associate with this DB instance.

" } }, "VpcSecurityGroupMembership": { diff --git a/models/apis/rds/2014-10-31/waiters-2.json b/models/apis/rds/2014-10-31/waiters-2.json index e75f03b2aa8..6a223a583c5 100644 --- a/models/apis/rds/2014-10-31/waiters-2.json +++ b/models/apis/rds/2014-10-31/waiters-2.json @@ -85,6 +85,91 @@ "argument": "DBInstances[].DBInstanceStatus" } ] + }, + "DBSnapshotAvailable": { + "delay": 30, + "operation": "DescribeDBSnapshots", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "DBSnapshots[].Status" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "DBSnapshots[].Status" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "DBSnapshots[].Status" + }, + { + "expected": "failed", + "matcher": "pathAny", + "state": "failure", + "argument": "DBSnapshots[].Status" + }, + { + "expected": "incompatible-restore", + "matcher": "pathAny", + "state": "failure", + "argument": "DBSnapshots[].Status" + }, + { + "expected": "incompatible-parameters", + "matcher": "pathAny", + "state": "failure", + "argument": "DBSnapshots[].Status" + } + ] + }, + "DBSnapshotDeleted": { + "delay": 30, + "operation": "DescribeDBSnapshots", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "DBSnapshots[].Status" + }, + { + "expected": "DBSnapshotNotFound", + "matcher": "error", + "state": "success" + }, + { + "expected": "creating", + "matcher": "pathAny", + "state": "failure", + "argument": "DBSnapshots[].Status" + }, + { + "expected": "modifying", + "matcher": "pathAny", + "state": "failure", + "argument": "DBSnapshots[].Status" + }, + { + "expected": "rebooting", + "matcher": "pathAny", + "state": "failure", + "argument": "DBSnapshots[].Status" + }, + { + "expected": "resetting-master-credentials", + "matcher": "pathAny", + "state": "failure", + "argument": "DBSnapshots[].Status" + } + ] } } } diff --git a/models/apis/redshift/2012-12-01/api-2.json b/models/apis/redshift/2012-12-01/api-2.json index 58b4ed9150e..0d200734716 100644 --- a/models/apis/redshift/2012-12-01/api-2.json +++ b/models/apis/redshift/2012-12-01/api-2.json @@ -545,7 +545,8 @@ "resultWrapper":"DescribeEventSubscriptionsResult" }, "errors":[ - {"shape":"SubscriptionNotFoundFault"} + {"shape":"SubscriptionNotFoundFault"}, + {"shape":"InvalidTagFault"} ] }, "DescribeEvents":{ @@ -2097,7 +2098,9 @@ "members":{ "SubscriptionName":{"shape":"String"}, "MaxRecords":{"shape":"IntegerOptional"}, - "Marker":{"shape":"String"} + "Marker":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"}, + "TagValues":{"shape":"TagValueList"} } }, "DescribeEventsMessage":{ diff --git a/models/apis/redshift/2012-12-01/docs-2.json b/models/apis/redshift/2012-12-01/docs-2.json index 28cdd0d4777..a5d729ac621 100644 --- a/models/apis/redshift/2012-12-01/docs-2.json +++ b/models/apis/redshift/2012-12-01/docs-2.json @@ -34,7 +34,7 @@ "DescribeClusters": "

Returns properties of provisioned clusters including general cluster properties, cluster database properties, maintenance and backup properties, and security and access properties. This operation supports pagination. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all clusters that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all clusters that have any combination of those values are returned.

If both tag keys and values are omitted from the request, clusters are returned regardless of whether they have tag keys or values associated with them.

", "DescribeDefaultClusterParameters": "

Returns a list of parameter settings for the specified parameter group family.

For more information about parameters and parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.

", "DescribeEventCategories": "

Displays a list of event categories for all event source types, or for a specified source type. For a list of the event categories and source types, go to Amazon Redshift Event Notifications.

", - "DescribeEventSubscriptions": "

Lists descriptions of all the Amazon Redshift event notifications subscription for a customer account. If you specify a subscription name, lists the description for that subscription.

", + "DescribeEventSubscriptions": "

Lists descriptions of all the Amazon Redshift event notification subscriptions for a customer account. If you specify a subscription name, lists the description for that subscription.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all event notification subscriptions that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all subscriptions that have any combination of those values are returned.

If both tag keys and values are omitted from the request, subscriptions are returned regardless of whether they have tag keys or values associated with them.

", "DescribeEvents": "

Returns events related to clusters, security groups, snapshots, and parameter groups for the past 14 days. Events specific to a particular cluster, security group, snapshot or parameter group can be obtained by providing the name as a parameter. By default, the past hour of events are returned.

", "DescribeHsmClientCertificates": "

Returns information about the specified HSM client certificate. If no certificate ID is specified, returns information about all the HSM certificates owned by your AWS customer account.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all HSM client certificates that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all HSM client certificates that have any combination of those values are returned.

If both tag keys and values are omitted from the request, HSM client certificates are returned regardless of whether they have tag keys or values associated with them.

", "DescribeHsmConfigurations": "

Returns information about the specified Amazon Redshift HSM configuration. If no configuration ID is specified, returns information about all the HSM configurations owned by your AWS customer account.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all HSM connections that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all HSM connections that have any combination of those values are returned.

If both tag keys and values are omitted from the request, HSM connections are returned regardless of whether they have tag keys or values associated with them.

", @@ -50,7 +50,7 @@ "DisableSnapshotCopy": "

Disables the automatic copying of snapshots from one region to another region for a specified cluster.

If your cluster and its snapshots are encrypted using a customer master key (CMK) from AWS KMS, use DeleteSnapshotCopyGrant to delete the grant that grants Amazon Redshift permission to the CMK in the destination region.

", "EnableLogging": "

Starts logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster.

", "EnableSnapshotCopy": "

Enables the automatic copy of snapshots from one region to another region for a specified cluster.

", - "GetClusterCredentials": "

Returns a database user name and temporary password with temporary authorization to log in to an Amazon Redshift database. The action returns the database user name prefixed with IAM: if AutoCreate is False or IAMA: if AutoCreate is True. You can optionally specify one or more database user groups that the user will join at log in. By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes). For more information, see Generating IAM Database User Credentials in the Amazon Redshift Cluster Management Guide.

The IAM user or role that executes GetClusterCredentials must have an IAM policy attached that allows the redshift:GetClusterCredentials action with access to the dbuser resource on the cluster. The user name specified for dbuser in the IAM policy and the user name specified for the DbUser parameter must match.

If the DbGroups parameter is specified, the IAM policy must allow the redshift:JoinGroup action with access to the listed dbgroups.

In addition, if the AutoCreate parameter is set to True, then the policy must include the redshift:CreateClusterUser privilege.

If the DbName parameter is specified, the IAM policy must allow access to the resource dbname for the specified database name.

", + "GetClusterCredentials": "

Returns a database user name and temporary password with temporary authorization to log on to an Amazon Redshift database. The action returns the database user name prefixed with IAM: if AutoCreate is False or IAMA: if AutoCreate is True. You can optionally specify one or more database user groups that the user will join at log on. By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes). For more information, see Using IAM Authentication to Generate Database User Credentials in the Amazon Redshift Cluster Management Guide.

The AWS Identity and Access Management (IAM)user or role that executes GetClusterCredentials must have an IAM policy attached that allows access to all necessary actions and resources. For more information about permissions, see Resource Policies for GetClusterCredentials in the Amazon Redshift Cluster Management Guide.

If the DbGroups parameter is specified, the IAM policy must allow the redshift:JoinGroup action with access to the listed dbgroups.

In addition, if the AutoCreate parameter is set to True, then the policy must include the redshift:CreateClusterUser privilege.

If the DbName parameter is specified, the IAM policy must allow access to the resource dbname for the specified database name.

", "ModifyCluster": "

Modifies the settings for a cluster. For example, you can add another security or parameter group, update the preferred maintenance window, or change the master user password. Resetting a cluster password or modifying the security groups associated with a cluster do not need a reboot. However, modifying a parameter group requires a reboot for parameters to take effect. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide.

You can also change node type and the number of nodes to scale up or down the cluster. When resizing a cluster, you must specify both the number of nodes and the node type even if one of the parameters does not change.

", "ModifyClusterIamRoles": "

Modifies the list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.

A cluster can have up to 10 IAM roles associated at any time.

", "ModifyClusterParameterGroup": "

Modifies the parameters of a parameter group.

For more information about parameters and parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.

", @@ -157,7 +157,7 @@ "CreateClusterMessage$Encrypted": "

If true, the data in the cluster is encrypted at rest.

Default: false

", "CreateClusterMessage$EnhancedVpcRouting": "

An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see Enhanced VPC Routing in the Amazon Redshift Cluster Management Guide.

If this option is true, enhanced VPC routing is enabled.

Default: false

", "CreateEventSubscriptionMessage$Enabled": "

A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it.

", - "GetClusterCredentialsMessage$AutoCreate": "

Create a database user with the name specified for DbUser if one does not exist.

", + "GetClusterCredentialsMessage$AutoCreate": "

Create a database user with the name specified for the user named in DbUser if one does not exist.

", "ModifyClusterMessage$AllowVersionUpgrade": "

If true, major version upgrades will be applied automatically to the cluster during the maintenance window.

Default: false

", "ModifyClusterMessage$PubliclyAccessible": "

If true, the cluster can be accessed from a public network. Only clusters in VPCs can be set to be publicly available.

", "ModifyClusterMessage$EnhancedVpcRouting": "

An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see Enhanced VPC Routing in the Amazon Redshift Cluster Management Guide.

If this option is true, enhanced VPC routing is enabled.

Default: false

", @@ -196,7 +196,7 @@ } }, "ClusterCredentials": { - "base": "

Temporary credentials with authorization to log in to an Amazon Redshift database.

", + "base": "

Temporary credentials with authorization to log on to an Amazon Redshift database.

", "refs": { } }, @@ -551,7 +551,7 @@ "DbGroupList": { "base": null, "refs": { - "GetClusterCredentialsMessage$DbGroups": "

A list of the names of existing database groups that DbUser will join for the current session. If not specified, the new user is added only to PUBLIC.

" + "GetClusterCredentialsMessage$DbGroups": "

A list of the names of existing database groups that the user named in DbUser will join for the current session, in addition to any group memberships for an existing user. If not specified, a new user is added only to PUBLIC.

Database group name constraints

  • Must be 1 to 64 alphanumeric characters or hyphens

  • Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

" } }, "DefaultClusterParameters": { @@ -1628,7 +1628,7 @@ "Cluster$ClusterPublicKey": "

The public key for the cluster.

", "Cluster$ClusterRevisionNumber": "

The specific revision number of the database in the cluster.

", "Cluster$KmsKeyId": "

The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.

", - "ClusterCredentials$DbUser": "

A database user name that is authorized to log on to the database DbName using the password DbPassword. If the DbGroups parameter is specifed, DbUser is added to the listed groups for the current session. The user name is prefixed with IAM: for an existing user name or IAMA: if the user was auto-created.

", + "ClusterCredentials$DbUser": "

A database user name that is authorized to log on to the database DbName using the password DbPassword. If the specified DbUser exists in the database, the new user name has the same database privileges as the the user named in DbUser. By default, the user is added to PUBLIC. If the DbGroups parameter is specifed, DbUser is added to the listed groups for any sessions created using these credentials.

", "ClusterIamRole$IamRoleArn": "

The Amazon Resource Name (ARN) of the IAM role, for example, arn:aws:iam::123456789012:role/RedshiftCopyUnload.

", "ClusterIamRole$ApplyStatus": "

A value that describes the status of the IAM role's association with an Amazon Redshift cluster.

The following are possible statuses and descriptions.

  • in-sync: The role is available for use by the cluster.

  • adding: The role is in the process of being associated with the cluster.

  • removing: The role is in the process of being disassociated with the cluster.

", "ClusterNode$NodeRole": "

Whether the node is a leader node or a compute node.

", @@ -1744,7 +1744,7 @@ "DescribeDefaultClusterParametersMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeDefaultClusterParameters request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", "DescribeEventCategoriesMessage$SourceType": "

The source type, such as cluster or parameter group, to which the described event categories apply.

Valid values: cluster, cluster-snapshot, cluster-parameter-group, and cluster-security-group.

", "DescribeEventSubscriptionsMessage$SubscriptionName": "

The name of the Amazon Redshift event notification subscription to be described.

", - "DescribeEventSubscriptionsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEventSubscriptions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeEventSubscriptionsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEventSubscriptions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", "DescribeEventsMessage$SourceIdentifier": "

The identifier of the event source for which events will be returned. If this parameter is not specified, then all sources are included in the response.

Constraints:

If SourceIdentifier is supplied, SourceType must also be provided.

  • Specify a cluster identifier when SourceType is cluster.

  • Specify a cluster security group name when SourceType is cluster-security-group.

  • Specify a cluster parameter group name when SourceType is cluster-parameter-group.

  • Specify a cluster snapshot identifier when SourceType is cluster-snapshot.

", "DescribeEventsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEvents request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", "DescribeHsmClientCertificatesMessage$HsmClientCertificateIdentifier": "

The identifier of a specific HSM client certificate for which you want information. If no identifier is specified, information is returned for all HSM client certificates owned by your AWS customer account.

", @@ -1766,7 +1766,7 @@ "DescribeTableRestoreStatusMessage$TableRestoreRequestId": "

The identifier of the table restore request to return status for. If you don't specify a TableRestoreRequestId value, then DescribeTableRestoreStatus returns the status of all in-progress table restore requests.

", "DescribeTableRestoreStatusMessage$Marker": "

An optional pagination token provided by a previous DescribeTableRestoreStatus request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by the MaxRecords parameter.

", "DescribeTagsMessage$ResourceName": "

The Amazon Resource Name (ARN) for which you want to describe the tag or tags. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.

", - "DescribeTagsMessage$ResourceType": "

The type of resource with which you want to view tags. Valid resource types are:

  • Cluster

  • CIDR/IP

  • EC2 security group

  • Snapshot

  • Cluster security group

  • Subnet group

  • HSM connection

  • HSM certificate

  • Parameter group

  • Snapshot copy grant

For more information about Amazon Redshift resource types and constructing ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in the Amazon Redshift Cluster Management Guide.

", + "DescribeTagsMessage$ResourceType": "

The type of resource with which you want to view tags. Valid resource types are:

  • Cluster

  • CIDR/IP

  • EC2 security group

  • Snapshot

  • Cluster security group

  • Subnet group

  • HSM connection

  • HSM certificate

  • Parameter group

  • Snapshot copy grant

For more information about Amazon Redshift resource types and constructing ARNs, go to Specifying Policy Elements: Actions, Effects, Resources, and Principals in the Amazon Redshift Cluster Management Guide.

", "DescribeTagsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the marker parameter and retrying the command. If the marker field is empty, all response records have been retrieved for the request.

", "DisableLoggingMessage$ClusterIdentifier": "

The identifier of the cluster on which logging is to be stopped.

Example: examplecluster

", "DisableSnapshotCopyMessage$ClusterIdentifier": "

The unique identifier of the source cluster that you want to disable copying of snapshots to a destination region.

Constraints: Must be the valid name of an existing cluster that has cross-region snapshot copy enabled.

", @@ -1799,8 +1799,8 @@ "EventSubscription$Severity": "

The event severity specified in the Amazon Redshift event notification subscription.

Values: ERROR, INFO

", "EventSubscriptionsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", "EventsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", - "GetClusterCredentialsMessage$DbUser": "

The name of a database user. If a user name matching DbUser exists in the database, the temporary user credentials have the same permissions as the existing user. If DbUser doesn't exist in the database and Autocreate is True, a new user is created using the value for DbUser with PUBLIC permissions. If a database user matching the value for DbUser doesn't exist and Autocreate is False, then the command succeeds but the connection attempt will fail because the user doesn't exist in the database.

For more information, see CREATE USER in the Amazon Redshift Database Developer Guide.

Constraints:

  • Must be 1 to 128 alphanumeric characters or hyphens

  • Must contain only lowercase letters.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

", - "GetClusterCredentialsMessage$DbName": "

The name of a database that DbUser is authorized to log on to. If DbName is not specified, DbUser can log in to any existing database.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens

  • Must contain only lowercase letters.

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

", + "GetClusterCredentialsMessage$DbUser": "

The name of a database user. If a user name matching DbUser exists in the database, the temporary user credentials have the same permissions as the existing user. If DbUser doesn't exist in the database and Autocreate is True, a new user is created using the value for DbUser with PUBLIC permissions. If a database user matching the value for DbUser doesn't exist and Autocreate is False, then the command succeeds but the connection attempt will fail because the user doesn't exist in the database.

For more information, see CREATE USER in the Amazon Redshift Database Developer Guide.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens

  • Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

", + "GetClusterCredentialsMessage$DbName": "

The name of a database that DbUser is authorized to log on to. If DbName is not specified, DbUser can log on to any existing database.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens

  • Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

", "GetClusterCredentialsMessage$ClusterIdentifier": "

The unique identifier of the cluster that contains the database for which your are requesting credentials. This parameter is case sensitive.

", "HsmClientCertificate$HsmClientCertificateIdentifier": "

The identifier of the HSM client certificate.

", "HsmClientCertificate$HsmClientCertificatePublicKey": "

The public key that the Amazon Redshift cluster will use to connect to the HSM. You must register the public key in the HSM.

", @@ -1946,7 +1946,7 @@ "TagKeyList$member": null, "TagValueList$member": null, "TaggedResource$ResourceName": "

The Amazon Resource Name (ARN) with which the tag is associated. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.

", - "TaggedResource$ResourceType": "

The type of resource with which the tag is associated. Valid resource types are:

  • Cluster

  • CIDR/IP

  • EC2 security group

  • Snapshot

  • Cluster security group

  • Subnet group

  • HSM connection

  • HSM certificate

  • Parameter group

For more information about Amazon Redshift resource types and constructing ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in the Amazon Redshift Cluster Management Guide.

", + "TaggedResource$ResourceType": "

The type of resource with which the tag is associated. Valid resource types are:

  • Cluster

  • CIDR/IP

  • EC2 security group

  • Snapshot

  • Cluster security group

  • Subnet group

  • HSM connection

  • HSM certificate

  • Parameter group

For more information about Amazon Redshift resource types and constructing ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in the Amazon Redshift Cluster Management Guide.

", "TaggedResourceListMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", "VpcSecurityGroupIdList$member": null, "VpcSecurityGroupMembership$VpcSecurityGroupId": "

The identifier of the VPC security group.

", @@ -2006,7 +2006,7 @@ "base": null, "refs": { "Cluster$ClusterCreateTime": "

The date and time that the cluster was created.

", - "ClusterCredentials$Expiration": "

The date and time DbPassword expires.

", + "ClusterCredentials$Expiration": "

The date and time the password in DbPassword expires.

", "DescribeClusterSnapshotsMessage$StartTime": "

A value that requests only snapshots created at or after the specified time. The time value is specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2012-07-16T18:00:00Z

", "DescribeClusterSnapshotsMessage$EndTime": "

A time value that requests only snapshots created at or before the specified time. The time value is specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2012-07-16T18:00:00Z

", "DescribeEventsMessage$StartTime": "

The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", @@ -2066,6 +2066,7 @@ "DescribeClusterSnapshotsMessage$TagKeys": "

A tag key or keys for which you want to return all matching cluster snapshots that are associated with the specified key or keys. For example, suppose that you have snapshots that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the snapshots that have either or both of these tag keys associated with them.

", "DescribeClusterSubnetGroupsMessage$TagKeys": "

A tag key or keys for which you want to return all matching cluster subnet groups that are associated with the specified key or keys. For example, suppose that you have subnet groups that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the subnet groups that have either or both of these tag keys associated with them.

", "DescribeClustersMessage$TagKeys": "

A tag key or keys for which you want to return all matching clusters that are associated with the specified key or keys. For example, suppose that you have clusters that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the clusters that have either or both of these tag keys associated with them.

", + "DescribeEventSubscriptionsMessage$TagKeys": "

A tag key or keys for which you want to return all matching event notification subscriptions that are associated with the specified key or keys. For example, suppose that you have subscriptions that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag keys associated with them.

", "DescribeHsmClientCertificatesMessage$TagKeys": "

A tag key or keys for which you want to return all matching HSM client certificates that are associated with the specified key or keys. For example, suppose that you have HSM client certificates that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the HSM client certificates that have either or both of these tag keys associated with them.

", "DescribeHsmConfigurationsMessage$TagKeys": "

A tag key or keys for which you want to return all matching HSM configurations that are associated with the specified key or keys. For example, suppose that you have HSM configurations that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the HSM configurations that have either or both of these tag keys associated with them.

", "DescribeSnapshotCopyGrantsMessage$TagKeys": "

A tag key or keys for which you want to return all matching resources that are associated with the specified key or keys. For example, suppose that you have resources tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with all resources that have either or both of these tag keys associated with them.

", @@ -2111,6 +2112,7 @@ "DescribeClusterSnapshotsMessage$TagValues": "

A tag value or values for which you want to return all matching cluster snapshots that are associated with the specified tag value or values. For example, suppose that you have snapshots that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the snapshots that have either or both of these tag values associated with them.

", "DescribeClusterSubnetGroupsMessage$TagValues": "

A tag value or values for which you want to return all matching cluster subnet groups that are associated with the specified tag value or values. For example, suppose that you have subnet groups that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the subnet groups that have either or both of these tag values associated with them.

", "DescribeClustersMessage$TagValues": "

A tag value or values for which you want to return all matching clusters that are associated with the specified tag value or values. For example, suppose that you have clusters that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the clusters that have either or both of these tag values associated with them.

", + "DescribeEventSubscriptionsMessage$TagValues": "

A tag value or values for which you want to return all matching event notification subscriptions that are associated with the specified tag value or values. For example, suppose that you have subscriptions that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag values associated with them.

", "DescribeHsmClientCertificatesMessage$TagValues": "

A tag value or values for which you want to return all matching HSM client certificates that are associated with the specified tag value or values. For example, suppose that you have HSM client certificates that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the HSM client certificates that have either or both of these tag values associated with them.

", "DescribeHsmConfigurationsMessage$TagValues": "

A tag value or values for which you want to return all matching HSM configurations that are associated with the specified tag value or values. For example, suppose that you have HSM configurations that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the HSM configurations that have either or both of these tag values associated with them.

", "DescribeSnapshotCopyGrantsMessage$TagValues": "

A tag value or values for which you want to return all matching resources that are associated with the specified value or values. For example, suppose that you have resources tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with all resources that have either or both of these tag values associated with them.

", diff --git a/models/apis/rekognition/2016-06-27/api-2.json b/models/apis/rekognition/2016-06-27/api-2.json index b2d0df9478b..b15c9278666 100644 --- a/models/apis/rekognition/2016-06-27/api-2.json +++ b/models/apis/rekognition/2016-06-27/api-2.json @@ -6,6 +6,7 @@ "jsonVersion":"1.1", "protocol":"json", "serviceFullName":"Amazon Rekognition", + "serviceId":"Rekognition", "signatureVersion":"v4", "targetPrefix":"RekognitionService", "uid":"rekognition-2016-06-27" @@ -47,6 +48,24 @@ {"shape":"ResourceAlreadyExistsException"} ] }, + "CreateStreamProcessor":{ + "name":"CreateStreamProcessor", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateStreamProcessorRequest"}, + "output":{"shape":"CreateStreamProcessorResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, "DeleteCollection":{ "name":"DeleteCollection", "http":{ @@ -81,6 +100,41 @@ {"shape":"ResourceNotFoundException"} ] }, + "DeleteStreamProcessor":{ + "name":"DeleteStreamProcessor", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteStreamProcessorRequest"}, + "output":{"shape":"DeleteStreamProcessorResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, + "DescribeStreamProcessor":{ + "name":"DescribeStreamProcessor", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStreamProcessorRequest"}, + "output":{"shape":"DescribeStreamProcessorResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, "DetectFaces":{ "name":"DetectFaces", "http":{ @@ -138,6 +192,25 @@ {"shape":"InvalidImageFormatException"} ] }, + "DetectText":{ + "name":"DetectText", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetectTextRequest"}, + "output":{"shape":"DetectTextResponse"}, + "errors":[ + {"shape":"InvalidS3ObjectException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ImageTooLargeException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"InvalidImageFormatException"} + ] + }, "GetCelebrityInfo":{ "name":"GetCelebrityInfo", "http":{ @@ -155,6 +228,114 @@ {"shape":"ResourceNotFoundException"} ] }, + "GetCelebrityRecognition":{ + "name":"GetCelebrityRecognition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCelebrityRecognitionRequest"}, + "output":{"shape":"GetCelebrityRecognitionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetContentModeration":{ + "name":"GetContentModeration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetContentModerationRequest"}, + "output":{"shape":"GetContentModerationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetFaceDetection":{ + "name":"GetFaceDetection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetFaceDetectionRequest"}, + "output":{"shape":"GetFaceDetectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetFaceSearch":{ + "name":"GetFaceSearch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetFaceSearchRequest"}, + "output":{"shape":"GetFaceSearchResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetLabelDetection":{ + "name":"GetLabelDetection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLabelDetectionRequest"}, + "output":{"shape":"GetLabelDetectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetPersonTracking":{ + "name":"GetPersonTracking", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPersonTrackingRequest"}, + "output":{"shape":"GetPersonTrackingResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, "IndexFaces":{ "name":"IndexFaces", "http":{ @@ -211,6 +392,23 @@ {"shape":"ResourceNotFoundException"} ] }, + "ListStreamProcessors":{ + "name":"ListStreamProcessors", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStreamProcessorsRequest"}, + "output":{"shape":"ListStreamProcessorsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, "RecognizeCelebrities":{ "name":"RecognizeCelebrities", "http":{ @@ -267,6 +465,169 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidImageFormatException"} ] + }, + "StartCelebrityRecognition":{ + "name":"StartCelebrityRecognition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartCelebrityRecognitionRequest"}, + "output":{"shape":"StartCelebrityRecognitionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InternalServerError"}, + {"shape":"VideoTooLargeException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"} + ], + "idempotent":true + }, + "StartContentModeration":{ + "name":"StartContentModeration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartContentModerationRequest"}, + "output":{"shape":"StartContentModerationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InternalServerError"}, + {"shape":"VideoTooLargeException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"} + ], + "idempotent":true + }, + "StartFaceDetection":{ + "name":"StartFaceDetection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartFaceDetectionRequest"}, + "output":{"shape":"StartFaceDetectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InternalServerError"}, + {"shape":"VideoTooLargeException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"} + ], + "idempotent":true + }, + "StartFaceSearch":{ + "name":"StartFaceSearch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartFaceSearchRequest"}, + "output":{"shape":"StartFaceSearchResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InternalServerError"}, + {"shape":"VideoTooLargeException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "idempotent":true + }, + "StartLabelDetection":{ + "name":"StartLabelDetection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartLabelDetectionRequest"}, + "output":{"shape":"StartLabelDetectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InternalServerError"}, + {"shape":"VideoTooLargeException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"} + ], + "idempotent":true + }, + "StartPersonTracking":{ + "name":"StartPersonTracking", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartPersonTrackingRequest"}, + "output":{"shape":"StartPersonTrackingResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InternalServerError"}, + {"shape":"VideoTooLargeException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"} + ], + "idempotent":true + }, + "StartStreamProcessor":{ + "name":"StartStreamProcessor", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartStreamProcessorRequest"}, + "output":{"shape":"StartStreamProcessorResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] + }, + "StopStreamProcessor":{ + "name":"StopStreamProcessor", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopStreamProcessorRequest"}, + "output":{"shape":"StopStreamProcessorResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ProvisionedThroughputExceededException"} + ] } }, "shapes":{ @@ -321,10 +682,45 @@ "MatchConfidence":{"shape":"Percent"} } }, + "CelebrityDetail":{ + "type":"structure", + "members":{ + "Urls":{"shape":"Urls"}, + "Name":{"shape":"String"}, + "Id":{"shape":"RekognitionUniqueId"}, + "Confidence":{"shape":"Percent"}, + "BoundingBox":{"shape":"BoundingBox"}, + "Face":{"shape":"FaceDetail"} + } + }, "CelebrityList":{ "type":"list", "member":{"shape":"Celebrity"} }, + "CelebrityRecognition":{ + "type":"structure", + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "Celebrity":{"shape":"CelebrityDetail"} + } + }, + "CelebrityRecognitionSortBy":{ + "type":"string", + "enum":[ + "ID", + "TIMESTAMP" + ] + }, + "CelebrityRecognitions":{ + "type":"list", + "member":{"shape":"CelebrityRecognition"} + }, + "ClientRequestToken":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[a-zA-Z0-9-_]+$" + }, "CollectionId":{ "type":"string", "max":255, @@ -393,6 +789,24 @@ "Confidence":{"shape":"Percent"} } }, + "ContentModerationDetection":{ + "type":"structure", + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "ModerationLabel":{"shape":"ModerationLabel"} + } + }, + "ContentModerationDetections":{ + "type":"list", + "member":{"shape":"ContentModerationDetection"} + }, + "ContentModerationSortBy":{ + "type":"string", + "enum":[ + "NAME", + "TIMESTAMP" + ] + }, "CreateCollectionRequest":{ "type":"structure", "required":["CollectionId"], @@ -404,9 +818,34 @@ "type":"structure", "members":{ "StatusCode":{"shape":"UInteger"}, - "CollectionArn":{"shape":"String"} + "CollectionArn":{"shape":"String"}, + "FaceModelVersion":{"shape":"String"} } }, + "CreateStreamProcessorRequest":{ + "type":"structure", + "required":[ + "Input", + "Output", + "Name", + "Settings", + "RoleArn" + ], + "members":{ + "Input":{"shape":"StreamProcessorInput"}, + "Output":{"shape":"StreamProcessorOutput"}, + "Name":{"shape":"StreamProcessorName"}, + "Settings":{"shape":"StreamProcessorSettings"}, + "RoleArn":{"shape":"RoleArn"} + } + }, + "CreateStreamProcessorResponse":{ + "type":"structure", + "members":{ + "StreamProcessorArn":{"shape":"StreamProcessorArn"} + } + }, + "DateTime":{"type":"timestamp"}, "Degree":{ "type":"float", "max":180, @@ -442,6 +881,40 @@ "DeletedFaces":{"shape":"FaceIdList"} } }, + "DeleteStreamProcessorRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"StreamProcessorName"} + } + }, + "DeleteStreamProcessorResponse":{ + "type":"structure", + "members":{ + } + }, + "DescribeStreamProcessorRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"StreamProcessorName"} + } + }, + "DescribeStreamProcessorResponse":{ + "type":"structure", + "members":{ + "Name":{"shape":"StreamProcessorName"}, + "StreamProcessorArn":{"shape":"StreamProcessorArn"}, + "Status":{"shape":"StreamProcessorStatus"}, + "StatusMessage":{"shape":"String"}, + "CreationTimestamp":{"shape":"DateTime"}, + "LastUpdateTimestamp":{"shape":"DateTime"}, + "Input":{"shape":"StreamProcessorInput"}, + "Output":{"shape":"StreamProcessorOutput"}, + "RoleArn":{"shape":"RoleArn"}, + "Settings":{"shape":"StreamProcessorSettings"} + } + }, "DetectFacesRequest":{ "type":"structure", "required":["Image"], @@ -487,6 +960,19 @@ "ModerationLabels":{"shape":"ModerationLabels"} } }, + "DetectTextRequest":{ + "type":"structure", + "required":["Image"], + "members":{ + "Image":{"shape":"Image"} + } + }, + "DetectTextResponse":{ + "type":"structure", + "members":{ + "TextDetections":{"shape":"TextDetectionList"} + } + }, "Emotion":{ "type":"structure", "members":{ @@ -541,6 +1027,13 @@ "Confidence":{"shape":"Percent"} } }, + "FaceAttributes":{ + "type":"string", + "enum":[ + "DEFAULT", + "ALL" + ] + }, "FaceDetail":{ "type":"structure", "members":{ @@ -565,6 +1058,17 @@ "type":"list", "member":{"shape":"FaceDetail"} }, + "FaceDetection":{ + "type":"structure", + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "Face":{"shape":"FaceDetail"} + } + }, + "FaceDetections":{ + "type":"list", + "member":{"shape":"FaceDetection"} + }, "FaceId":{ "type":"string", "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" @@ -590,46 +1094,196 @@ "type":"list", "member":{"shape":"FaceMatch"} }, + "FaceModelVersionList":{ + "type":"list", + "member":{"shape":"String"} + }, "FaceRecord":{ "type":"structure", "members":{ - "Face":{"shape":"Face"}, - "FaceDetail":{"shape":"FaceDetail"} + "Face":{"shape":"Face"}, + "FaceDetail":{"shape":"FaceDetail"} + } + }, + "FaceRecordList":{ + "type":"list", + "member":{"shape":"FaceRecord"} + }, + "FaceSearchSettings":{ + "type":"structure", + "members":{ + "CollectionId":{"shape":"CollectionId"}, + "FaceMatchThreshold":{"shape":"Percent"} + } + }, + "FaceSearchSortBy":{ + "type":"string", + "enum":[ + "INDEX", + "TIMESTAMP" + ] + }, + "Float":{"type":"float"}, + "Gender":{ + "type":"structure", + "members":{ + "Value":{"shape":"GenderType"}, + "Confidence":{"shape":"Percent"} + } + }, + "GenderType":{ + "type":"string", + "enum":[ + "Male", + "Female" + ] + }, + "Geometry":{ + "type":"structure", + "members":{ + "BoundingBox":{"shape":"BoundingBox"}, + "Polygon":{"shape":"Polygon"} + } + }, + "GetCelebrityInfoRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{"shape":"RekognitionUniqueId"} + } + }, + "GetCelebrityInfoResponse":{ + "type":"structure", + "members":{ + "Urls":{"shape":"Urls"}, + "Name":{"shape":"String"} + } + }, + "GetCelebrityRecognitionRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{"shape":"JobId"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"PaginationToken"}, + "SortBy":{"shape":"CelebrityRecognitionSortBy"} + } + }, + "GetCelebrityRecognitionResponse":{ + "type":"structure", + "members":{ + "JobStatus":{"shape":"VideoJobStatus"}, + "StatusMessage":{"shape":"StatusMessage"}, + "VideoMetadata":{"shape":"VideoMetadata"}, + "NextToken":{"shape":"PaginationToken"}, + "Celebrities":{"shape":"CelebrityRecognitions"} + } + }, + "GetContentModerationRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{"shape":"JobId"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"PaginationToken"}, + "SortBy":{"shape":"ContentModerationSortBy"} + } + }, + "GetContentModerationResponse":{ + "type":"structure", + "members":{ + "JobStatus":{"shape":"VideoJobStatus"}, + "StatusMessage":{"shape":"StatusMessage"}, + "VideoMetadata":{"shape":"VideoMetadata"}, + "ModerationLabels":{"shape":"ContentModerationDetections"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "GetFaceDetectionRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{"shape":"JobId"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "GetFaceDetectionResponse":{ + "type":"structure", + "members":{ + "JobStatus":{"shape":"VideoJobStatus"}, + "StatusMessage":{"shape":"StatusMessage"}, + "VideoMetadata":{"shape":"VideoMetadata"}, + "NextToken":{"shape":"PaginationToken"}, + "Faces":{"shape":"FaceDetections"} + } + }, + "GetFaceSearchRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{"shape":"JobId"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"PaginationToken"}, + "SortBy":{"shape":"FaceSearchSortBy"} + } + }, + "GetFaceSearchResponse":{ + "type":"structure", + "members":{ + "JobStatus":{"shape":"VideoJobStatus"}, + "StatusMessage":{"shape":"StatusMessage"}, + "NextToken":{"shape":"PaginationToken"}, + "VideoMetadata":{"shape":"VideoMetadata"}, + "Persons":{"shape":"PersonMatches"} } }, - "FaceRecordList":{ - "type":"list", - "member":{"shape":"FaceRecord"} - }, - "Float":{"type":"float"}, - "Gender":{ + "GetLabelDetectionRequest":{ "type":"structure", + "required":["JobId"], "members":{ - "Value":{"shape":"GenderType"}, - "Confidence":{"shape":"Percent"} + "JobId":{"shape":"JobId"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"PaginationToken"}, + "SortBy":{"shape":"LabelDetectionSortBy"} } }, - "GenderType":{ - "type":"string", - "enum":[ - "MALE", - "FEMALE" - ] + "GetLabelDetectionResponse":{ + "type":"structure", + "members":{ + "JobStatus":{"shape":"VideoJobStatus"}, + "StatusMessage":{"shape":"StatusMessage"}, + "VideoMetadata":{"shape":"VideoMetadata"}, + "NextToken":{"shape":"PaginationToken"}, + "Labels":{"shape":"LabelDetections"} + } }, - "GetCelebrityInfoRequest":{ + "GetPersonTrackingRequest":{ "type":"structure", - "required":["Id"], + "required":["JobId"], "members":{ - "Id":{"shape":"RekognitionUniqueId"} + "JobId":{"shape":"JobId"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"PaginationToken"}, + "SortBy":{"shape":"PersonTrackingSortBy"} } }, - "GetCelebrityInfoResponse":{ + "GetPersonTrackingResponse":{ "type":"structure", "members":{ - "Urls":{"shape":"Urls"}, - "Name":{"shape":"String"} + "JobStatus":{"shape":"VideoJobStatus"}, + "StatusMessage":{"shape":"StatusMessage"}, + "VideoMetadata":{"shape":"VideoMetadata"}, + "NextToken":{"shape":"PaginationToken"}, + "Persons":{"shape":"PersonDetections"} } }, + "IdempotentParameterMismatchException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "Image":{ "type":"structure", "members":{ @@ -676,7 +1330,8 @@ "type":"structure", "members":{ "FaceRecords":{"shape":"FaceRecordList"}, - "OrientationCorrection":{"shape":"OrientationCorrection"} + "OrientationCorrection":{"shape":"OrientationCorrection"}, + "FaceModelVersion":{"shape":"String"} } }, "InternalServerError":{ @@ -710,6 +1365,38 @@ }, "exception":true }, + "JobId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[a-zA-Z0-9-_]+$" + }, + "JobTag":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9_.\\-:]+" + }, + "KinesisDataArn":{ + "type":"string", + "pattern":"(^arn:([a-z\\d-]+):kinesis:([a-z\\d-]+):\\d{12}:.+$)" + }, + "KinesisDataStream":{ + "type":"structure", + "members":{ + "Arn":{"shape":"KinesisDataArn"} + } + }, + "KinesisVideoArn":{ + "type":"string", + "pattern":"(^arn:([a-z\\d-]+):kinesisvideo:([a-z\\d-]+):\\d{12}:.+$)" + }, + "KinesisVideoStream":{ + "type":"structure", + "members":{ + "Arn":{"shape":"KinesisVideoArn"} + } + }, "Label":{ "type":"structure", "members":{ @@ -717,6 +1404,24 @@ "Confidence":{"shape":"Percent"} } }, + "LabelDetection":{ + "type":"structure", + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "Label":{"shape":"Label"} + } + }, + "LabelDetectionSortBy":{ + "type":"string", + "enum":[ + "NAME", + "TIMESTAMP" + ] + }, + "LabelDetections":{ + "type":"list", + "member":{"shape":"LabelDetection"} + }, "Labels":{ "type":"list", "member":{"shape":"Label"} @@ -732,37 +1437,43 @@ "LandmarkType":{ "type":"string", "enum":[ - "EYE_LEFT", - "EYE_RIGHT", - "NOSE", - "MOUTH_LEFT", - "MOUTH_RIGHT", - "LEFT_EYEBROW_LEFT", - "LEFT_EYEBROW_RIGHT", - "LEFT_EYEBROW_UP", - "RIGHT_EYEBROW_LEFT", - "RIGHT_EYEBROW_RIGHT", - "RIGHT_EYEBROW_UP", - "LEFT_EYE_LEFT", - "LEFT_EYE_RIGHT", - "LEFT_EYE_UP", - "LEFT_EYE_DOWN", - "RIGHT_EYE_LEFT", - "RIGHT_EYE_RIGHT", - "RIGHT_EYE_UP", - "RIGHT_EYE_DOWN", - "NOSE_LEFT", - "NOSE_RIGHT", - "MOUTH_UP", - "MOUTH_DOWN", - "LEFT_PUPIL", - "RIGHT_PUPIL" + "eyeLeft", + "eyeRight", + "nose", + "mouthLeft", + "mouthRight", + "leftEyeBrowLeft", + "leftEyeBrowRight", + "leftEyeBrowUp", + "rightEyeBrowLeft", + "rightEyeBrowRight", + "rightEyeBrowUp", + "leftEyeLeft", + "leftEyeRight", + "leftEyeUp", + "leftEyeDown", + "rightEyeLeft", + "rightEyeRight", + "rightEyeUp", + "rightEyeDown", + "noseLeft", + "noseRight", + "mouthUp", + "mouthDown", + "leftPupil", + "rightPupil" ] }, "Landmarks":{ "type":"list", "member":{"shape":"Landmark"} }, + "LimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "ListCollectionsRequest":{ "type":"structure", "members":{ @@ -774,7 +1485,8 @@ "type":"structure", "members":{ "CollectionIds":{"shape":"CollectionIdList"}, - "NextToken":{"shape":"PaginationToken"} + "NextToken":{"shape":"PaginationToken"}, + "FaceModelVersions":{"shape":"FaceModelVersionList"} } }, "ListFacesRequest":{ @@ -790,7 +1502,22 @@ "type":"structure", "members":{ "Faces":{"shape":"FaceList"}, - "NextToken":{"shape":"String"} + "NextToken":{"shape":"String"}, + "FaceModelVersion":{"shape":"String"} + } + }, + "ListStreamProcessorsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"PaginationToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListStreamProcessorsResponse":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"PaginationToken"}, + "StreamProcessors":{"shape":"StreamProcessorList"} } }, "MaxFaces":{ @@ -798,6 +1525,10 @@ "max":4096, "min":1 }, + "MaxResults":{ + "type":"integer", + "min":1 + }, "ModerationLabel":{ "type":"structure", "members":{ @@ -824,6 +1555,17 @@ "Confidence":{"shape":"Percent"} } }, + "NotificationChannel":{ + "type":"structure", + "required":[ + "SNSTopicArn", + "RoleArn" + ], + "members":{ + "SNSTopicArn":{"shape":"SNSTopicArn"}, + "RoleArn":{"shape":"RoleArn"} + } + }, "OrientationCorrection":{ "type":"string", "enum":[ @@ -847,6 +1589,56 @@ "max":100, "min":0 }, + "PersonDetail":{ + "type":"structure", + "members":{ + "Index":{"shape":"PersonIndex"}, + "BoundingBox":{"shape":"BoundingBox"}, + "Face":{"shape":"FaceDetail"} + } + }, + "PersonDetection":{ + "type":"structure", + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "Person":{"shape":"PersonDetail"} + } + }, + "PersonDetections":{ + "type":"list", + "member":{"shape":"PersonDetection"} + }, + "PersonIndex":{"type":"long"}, + "PersonMatch":{ + "type":"structure", + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "Person":{"shape":"PersonDetail"}, + "FaceMatches":{"shape":"FaceMatchList"} + } + }, + "PersonMatches":{ + "type":"list", + "member":{"shape":"PersonMatch"} + }, + "PersonTrackingSortBy":{ + "type":"string", + "enum":[ + "INDEX", + "TIMESTAMP" + ] + }, + "Point":{ + "type":"structure", + "members":{ + "X":{"shape":"Float"}, + "Y":{"shape":"Float"} + } + }, + "Polygon":{ + "type":"list", + "member":{"shape":"Point"} + }, "Pose":{ "type":"structure", "members":{ @@ -886,12 +1678,22 @@ }, "exception":true }, + "ResourceInUseException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "ResourceNotFoundException":{ "type":"structure", "members":{ }, "exception":true }, + "RoleArn":{ + "type":"string", + "pattern":"arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+" + }, "S3Bucket":{ "type":"string", "max":255, @@ -916,6 +1718,10 @@ "max":1024, "min":1 }, + "SNSTopicArn":{ + "type":"string", + "pattern":"(^arn:aws:sns:.*:\\w{12}:.+$)" + }, "SearchFacesByImageRequest":{ "type":"structure", "required":[ @@ -934,7 +1740,8 @@ "members":{ "SearchedFaceBoundingBox":{"shape":"BoundingBox"}, "SearchedFaceConfidence":{"shape":"Percent"}, - "FaceMatches":{"shape":"FaceMatchList"} + "FaceMatches":{"shape":"FaceMatchList"}, + "FaceModelVersion":{"shape":"String"} } }, "SearchFacesRequest":{ @@ -954,7 +1761,8 @@ "type":"structure", "members":{ "SearchedFaceId":{"shape":"FaceId"}, - "FaceMatches":{"shape":"FaceMatchList"} + "FaceMatches":{"shape":"FaceMatchList"}, + "FaceModelVersion":{"shape":"String"} } }, "Smile":{ @@ -964,6 +1772,184 @@ "Confidence":{"shape":"Percent"} } }, + "StartCelebrityRecognitionRequest":{ + "type":"structure", + "required":["Video"], + "members":{ + "Video":{"shape":"Video"}, + "ClientRequestToken":{"shape":"ClientRequestToken"}, + "NotificationChannel":{"shape":"NotificationChannel"}, + "JobTag":{"shape":"JobTag"} + } + }, + "StartCelebrityRecognitionResponse":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"} + } + }, + "StartContentModerationRequest":{ + "type":"structure", + "required":["Video"], + "members":{ + "Video":{"shape":"Video"}, + "MinConfidence":{"shape":"Percent"}, + "ClientRequestToken":{"shape":"ClientRequestToken"}, + "NotificationChannel":{"shape":"NotificationChannel"}, + "JobTag":{"shape":"JobTag"} + } + }, + "StartContentModerationResponse":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"} + } + }, + "StartFaceDetectionRequest":{ + "type":"structure", + "required":["Video"], + "members":{ + "Video":{"shape":"Video"}, + "ClientRequestToken":{"shape":"ClientRequestToken"}, + "NotificationChannel":{"shape":"NotificationChannel"}, + "FaceAttributes":{"shape":"FaceAttributes"}, + "JobTag":{"shape":"JobTag"} + } + }, + "StartFaceDetectionResponse":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"} + } + }, + "StartFaceSearchRequest":{ + "type":"structure", + "required":[ + "Video", + "CollectionId" + ], + "members":{ + "Video":{"shape":"Video"}, + "ClientRequestToken":{"shape":"ClientRequestToken"}, + "FaceMatchThreshold":{"shape":"Percent"}, + "CollectionId":{"shape":"CollectionId"}, + "NotificationChannel":{"shape":"NotificationChannel"}, + "JobTag":{"shape":"JobTag"} + } + }, + "StartFaceSearchResponse":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"} + } + }, + "StartLabelDetectionRequest":{ + "type":"structure", + "required":["Video"], + "members":{ + "Video":{"shape":"Video"}, + "ClientRequestToken":{"shape":"ClientRequestToken"}, + "MinConfidence":{"shape":"Percent"}, + "NotificationChannel":{"shape":"NotificationChannel"}, + "JobTag":{"shape":"JobTag"} + } + }, + "StartLabelDetectionResponse":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"} + } + }, + "StartPersonTrackingRequest":{ + "type":"structure", + "required":["Video"], + "members":{ + "Video":{"shape":"Video"}, + "ClientRequestToken":{"shape":"ClientRequestToken"}, + "NotificationChannel":{"shape":"NotificationChannel"}, + "JobTag":{"shape":"JobTag"} + } + }, + "StartPersonTrackingResponse":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"} + } + }, + "StartStreamProcessorRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"StreamProcessorName"} + } + }, + "StartStreamProcessorResponse":{ + "type":"structure", + "members":{ + } + }, + "StatusMessage":{"type":"string"}, + "StopStreamProcessorRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"StreamProcessorName"} + } + }, + "StopStreamProcessorResponse":{ + "type":"structure", + "members":{ + } + }, + "StreamProcessor":{ + "type":"structure", + "members":{ + "Name":{"shape":"StreamProcessorName"}, + "Status":{"shape":"StreamProcessorStatus"} + } + }, + "StreamProcessorArn":{ + "type":"string", + "pattern":"(^arn:[a-z\\d-]+:rekognition:[a-z\\d-]+:\\d{12}:streamprocessor\\/.+$)" + }, + "StreamProcessorInput":{ + "type":"structure", + "members":{ + "KinesisVideoStream":{"shape":"KinesisVideoStream"} + } + }, + "StreamProcessorList":{ + "type":"list", + "member":{"shape":"StreamProcessor"} + }, + "StreamProcessorName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9_.\\-]+" + }, + "StreamProcessorOutput":{ + "type":"structure", + "members":{ + "KinesisDataStream":{"shape":"KinesisDataStream"} + } + }, + "StreamProcessorSettings":{ + "type":"structure", + "members":{ + "FaceSearch":{"shape":"FaceSearchSettings"} + } + }, + "StreamProcessorStatus":{ + "type":"string", + "enum":[ + "STOPPED", + "STARTING", + "RUNNING", + "FAILED", + "STOPPING" + ] + }, "String":{"type":"string"}, "Sunglasses":{ "type":"structure", @@ -972,6 +1958,28 @@ "Confidence":{"shape":"Percent"} } }, + "TextDetection":{ + "type":"structure", + "members":{ + "DetectedText":{"shape":"String"}, + "Type":{"shape":"TextTypes"}, + "Id":{"shape":"UInteger"}, + "ParentId":{"shape":"UInteger"}, + "Confidence":{"shape":"Percent"}, + "Geometry":{"shape":"Geometry"} + } + }, + "TextDetectionList":{ + "type":"list", + "member":{"shape":"TextDetection"} + }, + "TextTypes":{ + "type":"string", + "enum":[ + "LINE", + "WORD" + ] + }, "ThrottlingException":{ "type":"structure", "members":{ @@ -979,14 +1987,50 @@ "exception":true, "fault":true }, + "Timestamp":{"type":"long"}, "UInteger":{ "type":"integer", "min":0 }, + "ULong":{ + "type":"long", + "min":0 + }, "Url":{"type":"string"}, "Urls":{ "type":"list", "member":{"shape":"Url"} + }, + "Video":{ + "type":"structure", + "members":{ + "S3Object":{"shape":"S3Object"} + } + }, + "VideoJobStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "SUCCEEDED", + "FAILED" + ] + }, + "VideoMetadata":{ + "type":"structure", + "members":{ + "Codec":{"shape":"String"}, + "DurationMillis":{"shape":"ULong"}, + "Format":{"shape":"String"}, + "FrameRate":{"shape":"Float"}, + "FrameHeight":{"shape":"ULong"}, + "FrameWidth":{"shape":"ULong"} + } + }, + "VideoTooLargeException":{ + "type":"structure", + "members":{ + }, + "exception":true } } } diff --git a/models/apis/rekognition/2016-06-27/docs-2.json b/models/apis/rekognition/2016-06-27/docs-2.json index 8b9324534bb..4a850d5c098 100644 --- a/models/apis/rekognition/2016-06-27/docs-2.json +++ b/models/apis/rekognition/2016-06-27/docs-2.json @@ -2,20 +2,39 @@ "version": "2.0", "service": "

This is the Amazon Rekognition API reference.

", "operations": { - "CompareFaces": "

Compares a face in the source input image with each face detected in the target input image.

If the source image contains multiple faces, the service detects the largest face and compares it with each face detected in the target image.

In response, the operation returns an array of face matches ordered by similarity score in descending order. For each face match, the response provides a bounding box of the face, facial landmarks, pose details (pitch, role, and yaw), quality (brightness and sharpness), and confidence value (indicating the level of confidence that the bounding box contains a face). The response also provides a similarity score, which indicates how closely the faces match.

By default, only faces with a similarity score of greater than or equal to 80% are returned in the response. You can change this value by specifying the SimilarityThreshold parameter.

CompareFaces also returns an array of faces that don't match the source image. For each face, it returns a bounding box, confidence value, landmarks, pose details, and quality. The response also returns information about the face in the source image, including the bounding box of the face and confidence value.

If the image doesn't contain Exif metadata, CompareFaces returns orientation information for the source and target images. Use these values to display the images with the correct image orientation.

This is a stateless API operation. That is, data returned by this operation doesn't persist.

For an example, see get-started-exercise-compare-faces.

This operation requires permissions to perform the rekognition:CompareFaces action.

", - "CreateCollection": "

Creates a collection in an AWS Region. You can add faces to the collection using the operation.

For example, you might create collections, one for each of your application users. A user can then index faces using the IndexFaces operation and persist results in a specific collection. Then, a user can search the collection for faces in the user-specific container.

Collection names are case-sensitive.

For an example, see example1.

This operation requires permissions to perform the rekognition:CreateCollection action.

", - "DeleteCollection": "

Deletes the specified collection. Note that this operation removes all faces in the collection. For an example, see example1.

This operation requires permissions to perform the rekognition:DeleteCollection action.

", + "CompareFaces": "

Compares a face in the source input image with each of the 100 largest faces detected in the target input image.

If the source image contains multiple faces, the service detects the largest face and compares it with each face detected in the target image.

You pass the input and target images either as base64-encoded image bytes or as a references to images in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

In response, the operation returns an array of face matches ordered by similarity score in descending order. For each face match, the response provides a bounding box of the face, facial landmarks, pose details (pitch, role, and yaw), quality (brightness and sharpness), and confidence value (indicating the level of confidence that the bounding box contains a face). The response also provides a similarity score, which indicates how closely the faces match.

By default, only faces with a similarity score of greater than or equal to 80% are returned in the response. You can change this value by specifying the SimilarityThreshold parameter.

CompareFaces also returns an array of faces that don't match the source image. For each face, it returns a bounding box, confidence value, landmarks, pose details, and quality. The response also returns information about the face in the source image, including the bounding box of the face and confidence value.

If the image doesn't contain Exif metadata, CompareFaces returns orientation information for the source and target images. Use these values to display the images with the correct image orientation.

If no faces are detected in the source or target images, CompareFaces returns an InvalidParameterException error.

This is a stateless API operation. That is, data returned by this operation doesn't persist.

For an example, see faces-compare-images.

This operation requires permissions to perform the rekognition:CompareFaces action.

", + "CreateCollection": "

Creates a collection in an AWS Region. You can add faces to the collection using the operation.

For example, you might create collections, one for each of your application users. A user can then index faces using the IndexFaces operation and persist results in a specific collection. Then, a user can search the collection for faces in the user-specific container.

Collection names are case-sensitive.

This operation requires permissions to perform the rekognition:CreateCollection action.

", + "CreateStreamProcessor": "

Creates an Amazon Rekognition stream processor that you can use to detect and recognize faces in a streaming video.

Rekognition Video is a consumer of live video from Amazon Kinesis Video Streams. Rekognition Video sends analysis results to Amazon Kinesis Data Streams.

You provide as input a Kinesis video stream (Input) and a Kinesis data stream (Output) stream. You also specify the face recognition criteria in Settings. For example, the collection containing faces that you want to recognize. Use Name to assign an identifier for the stream processor. You use Name to manage the stream processor. For example, you can start processing the source video by calling with the Name field.

After you have finished analyzing a streaming video, use to stop processing. You can delete the stream processor by calling .

", + "DeleteCollection": "

Deletes the specified collection. Note that this operation removes all faces in the collection. For an example, see delete-collection-procedure.

This operation requires permissions to perform the rekognition:DeleteCollection action.

", "DeleteFaces": "

Deletes faces from a collection. You specify a collection ID and an array of face IDs to remove from the collection.

This operation requires permissions to perform the rekognition:DeleteFaces action.

", - "DetectFaces": "

Detects faces within an image (JPEG or PNG) that is provided as input.

For each face detected, the operation returns face details including a bounding box of the face, a confidence value (that the bounding box contains a face), and a fixed set of attributes such as facial landmarks (for example, coordinates of eye and mouth), gender, presence of beard, sunglasses, etc.

The face-detection algorithm is most effective on frontal faces. For non-frontal or obscured faces, the algorithm may not detect the faces or might detect faces with lower confidence.

This is a stateless API operation. That is, the operation does not persist any data.

For an example, see get-started-exercise-detect-faces.

This operation requires permissions to perform the rekognition:DetectFaces action.

", - "DetectLabels": "

Detects instances of real-world labels within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature. For an example, see get-started-exercise-detect-labels.

For each object, scene, and concept the API returns one or more labels. Each label provides the object name, and the level of confidence that the image contains the object. For example, suppose the input image has a lighthouse, the sea, and a rock. The response will include all three labels, one for each object.

{Name: lighthouse, Confidence: 98.4629}

{Name: rock,Confidence: 79.2097}

{Name: sea,Confidence: 75.061}

In the preceding example, the operation returns one label for each of the three objects. The operation can also return multiple labels for the same object in the image. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels.

{Name: flower,Confidence: 99.0562}

{Name: plant,Confidence: 99.0562}

{Name: tulip,Confidence: 99.0562}

In this example, the detection algorithm more precisely identifies the flower as a tulip.

You can provide the input image as an S3 object or as base64-encoded bytes. In response, the API returns an array of labels. In addition, the response also includes the orientation correction. Optionally, you can specify MinConfidence to control the confidence threshold for the labels returned. The default is 50%. You can also add the MaxLabels parameter to limit the number of labels returned.

If the object detected is a person, the operation doesn't provide the same facial details that the DetectFaces operation provides.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectLabels action.

", - "DetectModerationLabels": "

Detects explicit or suggestive adult content in a specified JPEG or PNG format image. Use DetectModerationLabels to moderate images depending on your requirements. For example, you might want to filter images that contain nudity, but not images containing suggestive content.

To filter images, use the labels returned by DetectModerationLabels to determine which types of content are appropriate. For information about moderation labels, see image-moderation.

", - "GetCelebrityInfo": "

Gets the name and additional information about a celebrity based on his or her Rekognition ID. The additional information is returned as an array of URLs. If there is no additional information about the celebrity, this list is empty. For more information, see celebrity-recognition.

This operation requires permissions to perform the rekognition:GetCelebrityInfo action.

", - "IndexFaces": "

Detects faces in the input image and adds them to the specified collection.

Amazon Rekognition does not save the actual faces detected. Instead, the underlying detection algorithm first detects the faces in the input image, and for each face extracts facial features into a feature vector, and stores it in the back-end database. Amazon Rekognition uses feature vectors when performing face match and search operations using the and operations.

If you provide the optional externalImageID for the input image you provided, Amazon Rekognition associates this ID with all faces that it detects. When you call the operation, the response returns the external ID. You can use this external image ID to create a client-side index to associate the faces with each image. You can then use the index to find all faces in an image.

In response, the operation returns an array of metadata for all detected faces. This includes, the bounding box of the detected face, confidence value (indicating the bounding box contains a face), a face ID assigned by the service for each face that is detected and stored, and an image ID assigned by the service for the input image. If you request all facial attributes (using the detectionAttributes parameter, Amazon Rekognition returns detailed facial attributes such as facial landmarks (for example, location of eye and mount) and other facial attributes such gender. If you provide the same image, specify the same collection, and use the same external ID in the IndexFaces operation, Amazon Rekognition doesn't save duplicate face metadata.

For an example, see example2.

This operation requires permissions to perform the rekognition:IndexFaces action.

", - "ListCollections": "

Returns list of collection IDs in your account. If the result is truncated, the response also provides a NextToken that you can use in the subsequent request to fetch the next set of collection IDs.

For an example, see example1.

This operation requires permissions to perform the rekognition:ListCollections action.

", - "ListFaces": "

Returns metadata for faces in the specified collection. This metadata includes information such as the bounding box coordinates, the confidence (that the bounding box contains a face), and face ID. For an example, see example3.

This operation requires permissions to perform the rekognition:ListFaces action.

", - "RecognizeCelebrities": "

Returns an array of celebrities recognized in the input image. The image is passed either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. The image must be either a PNG or JPEG formatted file. For more information, see celebrity-recognition.

RecognizeCelebrities returns the 15 largest faces in the image. It lists recognized celebrities in the CelebrityFaces list and unrecognized faces in the UnrecognizedFaces list. The operation doesn't return celebrities whose face sizes are smaller than the largest 15 faces in the image.

For each celebrity recognized, the API returns a Celebrity object. The Celebrity object contains the celebrity name, ID, URL links to additional information, match confidence, and a ComparedFace object that you can use to locate the celebrity's face on the image.

Rekognition does not retain information about which images a celebrity has been recognized in. Your application must store this information and use the Celebrity ID property as a unique identifier for the celebrity. If you don't store the celebrity name or additional information URLs returned by RecognizeCelebrities, you will need the ID to identify the celebrity in a call to the operation.

For an example, see recognize-celebrities-tutorial.

This operation requires permissions to perform the rekognition:RecognizeCelebrities operation.

", - "SearchFaces": "

For a given input face ID, searches for matching faces in the collection the face belongs to. You get a face ID when you add a face to the collection using the IndexFaces operation. The operation compares the features of the input face with faces in the specified collection.

You can also search faces without indexing faces by using the SearchFacesByImage operation.

The operation response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match that is found. Along with the metadata, the response also includes a confidence value for each face match, indicating the confidence that the specific face matches the input face.

For an example, see example3.

This operation requires permissions to perform the rekognition:SearchFaces action.

", - "SearchFacesByImage": "

For a given input image, first detects the largest face in the image, and then searches the specified collection for matching faces. The operation compares the features of the input face with faces in the specified collection.

To search for all faces in an input image, you might first call the operation, and then use the face IDs returned in subsequent calls to the operation.

You can also call the DetectFaces operation and use the bounding boxes in the response to make face crops, which then you can pass in to the SearchFacesByImage operation.

The response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match found. Along with the metadata, the response also includes a similarity indicating how similar the face is to the input face. In the response, the operation also returns the bounding box (and a confidence level that the bounding box contains a face) of the face that Amazon Rekognition used for the input image.

For an example, see example3.

This operation requires permissions to perform the rekognition:SearchFacesByImage action.

" + "DeleteStreamProcessor": "

Deletes the stream processor identified by Name. You assign the value for Name when you create the stream processor with . You might not be able to use the same name for a stream processor for a few seconds after calling DeleteStreamProcessor.

", + "DescribeStreamProcessor": "

Provides information about a stream processor created by . You can get information about the input and output streams, the input parameters for the face recognition being performed, and the current status of the stream processor.

", + "DetectFaces": "

Detects faces within an image that is provided as input.

DetectFaces detects the 100 largest faces in the image. For each face detected, the operation returns face details including a bounding box of the face, a confidence value (that the bounding box contains a face), and a fixed set of attributes such as facial landmarks (for example, coordinates of eye and mouth), gender, presence of beard, sunglasses, etc.

The face-detection algorithm is most effective on frontal faces. For non-frontal or obscured faces, the algorithm may not detect the faces or might detect faces with lower confidence.

You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

This is a stateless API operation. That is, the operation does not persist any data.

For an example, see procedure-detecting-faces-in-images.

This operation requires permissions to perform the rekognition:DetectFaces action.

", + "DetectLabels": "

Detects instances of real-world entities within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature. For an example, see images-s3.

DetectLabels does not support the detection of activities. However, activity detection is supported for label detection in videos. For more information, see .

You pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

For each object, scene, and concept the API returns one or more labels. Each label provides the object name, and the level of confidence that the image contains the object. For example, suppose the input image has a lighthouse, the sea, and a rock. The response will include all three labels, one for each object.

{Name: lighthouse, Confidence: 98.4629}

{Name: rock,Confidence: 79.2097}

{Name: sea,Confidence: 75.061}

In the preceding example, the operation returns one label for each of the three objects. The operation can also return multiple labels for the same object in the image. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels.

{Name: flower,Confidence: 99.0562}

{Name: plant,Confidence: 99.0562}

{Name: tulip,Confidence: 99.0562}

In this example, the detection algorithm more precisely identifies the flower as a tulip.

In response, the API returns an array of labels. In addition, the response also includes the orientation correction. Optionally, you can specify MinConfidence to control the confidence threshold for the labels returned. The default is 50%. You can also add the MaxLabels parameter to limit the number of labels returned.

If the object detected is a person, the operation doesn't provide the same facial details that the DetectFaces operation provides.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectLabels action.

", + "DetectModerationLabels": "

Detects explicit or suggestive adult content in a specified JPEG or PNG format image. Use DetectModerationLabels to moderate images depending on your requirements. For example, you might want to filter images that contain nudity, but not images containing suggestive content.

To filter images, use the labels returned by DetectModerationLabels to determine which types of content are appropriate. For information about moderation labels, see moderation.

You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

", + "DetectText": "

Detects text in the input image and converts it into machine-readable text.

Pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, you must pass it as a reference to an image in an Amazon S3 bucket. For the AWS CLI, passing image bytes is not supported. The image must be either a .png or .jpeg formatted file.

The DetectText operation returns text in an array of elements, TextDetections. Each TextDetection element provides information about a single word or line of text that was detected in the image.

A word is one or more ISO basic latin script characters that are not separated by spaces. DetectText can detect up to 50 words in an image.

A line is a string of equally spaced words. A line isn't necessarily a complete sentence. For example, a driver's license number is detected as a line. A line ends when there is no aligned text after it. Also, a line ends when there is a large gap between words, relative to the length of the words. This means, depending on the gap between words, Amazon Rekognition may detect multiple lines in text aligned in the same direction. Periods don't represent the end of a line. If a sentence spans multiple lines, the DetectText operation returns multiple lines.

To determine whether a TextDetection element is a line of text or a word, use the TextDetection object Type field.

To be detected, text must be within +/- 30 degrees orientation of the horizontal axis.

For more information, see text-detection.

", + "GetCelebrityInfo": "

Gets the name and additional information about a celebrity based on his or her Rekognition ID. The additional information is returned as an array of URLs. If there is no additional information about the celebrity, this list is empty. For more information, see get-celebrity-info-procedure.

This operation requires permissions to perform the rekognition:GetCelebrityInfo action.

", + "GetCelebrityRecognition": "

Gets the celebrity recognition results for a Rekognition Video analysis started by .

Celebrity recognition in a video is an asynchronous operation. Analysis is started by a call to which returns a job identifier (JobId). When the celebrity recognition operation finishes, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartCelebrityRecognition. To get the results of the celebrity recognition analysis, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetCelebrityDetection and pass the job identifier (JobId) from the initial call to StartCelebrityDetection. For more information, see video.

GetCelebrityRecognition returns detected celebrities and the time(s) they are detected in an array (Celebrities) of objects. Each CelebrityRecognition contains information about the celebrity in a object and the time, Timestamp, the celebrity was detected.

By default, the Celebrities array is sorted by time (milliseconds from the start of the video). You can also sort the array by celebrity by specifying the value ID in the SortBy input parameter.

The CelebrityDetail object includes the celebrity identifer and additional information urls. If you don't store the additional information urls, you can get them later by calling with the celebrity identifer.

No information is returned for faces not recognized as celebrities.

Use MaxResults parameter to limit the number of labels returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetCelebrityDetection and populate the NextToken request parameter with the token value returned from the previous call to GetCelebrityRecognition.

", + "GetContentModeration": "

Gets the content moderation analysis results for a Rekognition Video analysis started by .

Content moderation analysis of a video is an asynchronous operation. You start analysis by calling . which returns a job identifier (JobId). When analysis finishes, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartContentModeration. To get the results of the content moderation analysis, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetCelebrityDetection and pass the job identifier (JobId) from the initial call to StartCelebrityDetection. For more information, see video.

GetContentModeration returns detected content moderation labels, and the time they are detected, in an array, ModerationLabels, of objects.

By default, the moderated labels are returned sorted by time, in milliseconds from the start of the video. You can also sort them by moderated label by specifying NAME for the SortBy input parameter.

Since video analysis can return a large number of results, use the MaxResults parameter to limit the number of labels returned in a single call to GetContentModeration. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetContentModeration and populate the NextToken request parameter with the value of NextToken returned from the previous call to GetContentModeration.

For more information, see moderation.

", + "GetFaceDetection": "

Gets face detection results for a Rekognition Video analysis started by .

Face detection with Rekognition Video is an asynchronous operation. You start face detection by calling which returns a job identifier (JobId). When the face detection operation finishes, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartFaceDetection. To get the results of the face detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartFaceDetection.

GetFaceDetection returns an array of detected faces (Faces) sorted by the time the faces were detected.

Use MaxResults parameter to limit the number of labels returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetFaceDetection and populate the NextToken request parameter with the token value returned from the previous call to GetFaceDetection.

", + "GetFaceSearch": "

Gets the face search results for Rekognition Video face search started by . The search returns faces in a collection that match the faces of persons detected in a video. It also includes the time(s) that faces are matched in the video.

Face search in a video is an asynchronous operation. You start face search by calling to which returns a job identifier (JobId). When the search operation finishes, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartFaceSearch. To get the search results, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetFaceSearch and pass the job identifier (JobId) from the initial call to StartFaceSearch. For more information, see collections.

The search results are retured in an array, Persons, of objects. EachPersonMatch element contains details about the matching faces in the input collection, person information for the matched person, and the time the person was matched in the video.

By default, the Persons array is sorted by the time, in milliseconds from the start of the video, persons are matched. You can also sort by persons by specifying INDEX for the SORTBY input parameter.

", + "GetLabelDetection": "

Gets the label detection results of a Rekognition Video analysis started by .

The label detection operation is started by a call to which returns a job identifier (JobId). When the label detection operation finishes, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartlabelDetection. To get the results of the label detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartLabelDetection.

GetLabelDetection returns an array of detected labels (Labels) sorted by the time the labels were detected. You can also sort by the label name by specifying NAME for the SortBy input parameter.

The labels returned include the label name, the percentage confidence in the accuracy of the detected label, and the time the label was detected in the video.

Use MaxResults parameter to limit the number of labels returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetlabelDetection and populate the NextToken request parameter with the token value returned from the previous call to GetLabelDetection.

", + "GetPersonTracking": "

Gets the person tracking results of a Rekognition Video analysis started by .

The person detection operation is started by a call to StartPersonTracking which returns a job identifier (JobId). When the person detection operation finishes, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartPersonTracking.

To get the results of the person tracking operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartPersonTracking.

GetPersonTracking returns an array, Persons, of tracked persons and the time(s) they were tracked in the video.

By default, the array is sorted by the time(s) a person is tracked in the video. You can sort by tracked persons by specifying INDEX for the SortBy input parameter.

Use the MaxResults parameter to limit the number of items returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetPersonTracking and populate the NextToken request parameter with the token value returned from the previous call to GetPersonTracking.

", + "IndexFaces": "

Detects faces in the input image and adds them to the specified collection.

Amazon Rekognition does not save the actual faces detected. Instead, the underlying detection algorithm first detects the faces in the input image, and for each face extracts facial features into a feature vector, and stores it in the back-end database. Amazon Rekognition uses feature vectors when performing face match and search operations using the and operations.

If you are using version 1.0 of the face detection model, IndexFaces indexes the 15 largest faces in the input image. Later versions of the face detection model index the 100 largest faces in the input image. To determine which version of the model you are using, check the the value of FaceModelVersion in the response from IndexFaces. For more information, see face-detection-model.

If you provide the optional ExternalImageID for the input image you provided, Amazon Rekognition associates this ID with all faces that it detects. When you call the operation, the response returns the external ID. You can use this external image ID to create a client-side index to associate the faces with each image. You can then use the index to find all faces in an image.

In response, the operation returns an array of metadata for all detected faces. This includes, the bounding box of the detected face, confidence value (indicating the bounding box contains a face), a face ID assigned by the service for each face that is detected and stored, and an image ID assigned by the service for the input image. If you request all facial attributes (using the detectionAttributes parameter, Amazon Rekognition returns detailed facial attributes such as facial landmarks (for example, location of eye and mount) and other facial attributes such gender. If you provide the same image, specify the same collection, and use the same external ID in the IndexFaces operation, Amazon Rekognition doesn't save duplicate face metadata.

The input image is passed either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

This operation requires permissions to perform the rekognition:IndexFaces action.

", + "ListCollections": "

Returns list of collection IDs in your account. If the result is truncated, the response also provides a NextToken that you can use in the subsequent request to fetch the next set of collection IDs.

For an example, see list-collection-procedure.

This operation requires permissions to perform the rekognition:ListCollections action.

", + "ListFaces": "

Returns metadata for faces in the specified collection. This metadata includes information such as the bounding box coordinates, the confidence (that the bounding box contains a face), and face ID. For an example, see list-faces-in-collection-procedure.

This operation requires permissions to perform the rekognition:ListFaces action.

", + "ListStreamProcessors": "

Gets a list of stream processors that you have created with .

", + "RecognizeCelebrities": "

Returns an array of celebrities recognized in the input image. For more information, see celebrities.

RecognizeCelebrities returns the 100 largest faces in the image. It lists recognized celebrities in the CelebrityFaces array and unrecognized faces in the UnrecognizedFaces array. RecognizeCelebrities doesn't return celebrities whose faces are not amongst the largest 100 faces in the image.

For each celebrity recognized, the RecognizeCelebrities returns a Celebrity object. The Celebrity object contains the celebrity name, ID, URL links to additional information, match confidence, and a ComparedFace object that you can use to locate the celebrity's face on the image.

Rekognition does not retain information about which images a celebrity has been recognized in. Your application must store this information and use the Celebrity ID property as a unique identifier for the celebrity. If you don't store the celebrity name or additional information URLs returned by RecognizeCelebrities, you will need the ID to identify the celebrity in a call to the operation.

You pass the imput image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

For an example, see celebrities-procedure-image.

This operation requires permissions to perform the rekognition:RecognizeCelebrities operation.

", + "SearchFaces": "

For a given input face ID, searches for matching faces in the collection the face belongs to. You get a face ID when you add a face to the collection using the IndexFaces operation. The operation compares the features of the input face with faces in the specified collection.

You can also search faces without indexing faces by using the SearchFacesByImage operation.

The operation response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match that is found. Along with the metadata, the response also includes a confidence value for each face match, indicating the confidence that the specific face matches the input face.

For an example, see search-face-with-id-procedure.

This operation requires permissions to perform the rekognition:SearchFaces action.

", + "SearchFacesByImage": "

For a given input image, first detects the largest face in the image, and then searches the specified collection for matching faces. The operation compares the features of the input face with faces in the specified collection.

To search for all faces in an input image, you might first call the operation, and then use the face IDs returned in subsequent calls to the operation.

You can also call the DetectFaces operation and use the bounding boxes in the response to make face crops, which then you can pass in to the SearchFacesByImage operation.

You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

The response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match found. Along with the metadata, the response also includes a similarity indicating how similar the face is to the input face. In the response, the operation also returns the bounding box (and a confidence level that the bounding box contains a face) of the face that Amazon Rekognition used for the input image.

For an example, see search-face-with-image-procedure.

This operation requires permissions to perform the rekognition:SearchFacesByImage action.

", + "StartCelebrityRecognition": "

Starts asynchronous recognition of celebrities in a stored video.

Rekognition Video can detect celebrities in a video must be stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartCelebrityRecognition returns a job identifier (JobId) which you use to get the results of the analysis. When celebrity recognition analysis is finished, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the results of the celebrity recognition analysis, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartCelebrityRecognition. For more information, see celebrities.

", + "StartContentModeration": "

Starts asynchronous detection of explicit or suggestive adult content in a stored video.

Rekognition Video can moderate content in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartContentModeration returns a job identifier (JobId) which you use to get the results of the analysis. When content moderation analysis is finished, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel.

To get the results of the content moderation analysis, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartContentModeration. For more information, see moderation.

", + "StartFaceDetection": "

Starts asynchronous detection of faces in a stored video.

Rekognition Video can detect faces in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartFaceDetection returns a job identifier (JobId) that you use to get the results of the operation. When face detection is finished, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the results of the label detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartFaceDetection. For more information, see faces-video.

", + "StartFaceSearch": "

Starts the asynchronous search for faces in a collection that match the faces of persons detected in a stored video.

The video must be stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartFaceSearch returns a job identifier (JobId) which you use to get the search results once the search has completed. When searching is finished, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel. To get the search results, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartFaceSearch. For more information, see collections-search-person.

", + "StartLabelDetection": "

Starts asynchronous detection of labels in a stored video.

Rekognition Video can detect labels in a video. Labels are instances of real-world entities. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; concepts like landscape, evening, and nature; and activities like a person getting out of a car or a person skiing.

The video must be stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartLabelDetection returns a job identifier (JobId) which you use to get the results of the operation. When label detection is finished, Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel.

To get the results of the label detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartLabelDetection.

", + "StartPersonTracking": "

Starts the asynchronous tracking of persons in a stored video.

Rekognition Video can track persons in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartPersonTracking returns a job identifier (JobId) which you use to get the results of the operation. When label detection is finished, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel.

To get the results of the person detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call and pass the job identifier (JobId) from the initial call to StartPersonTracking.

", + "StartStreamProcessor": "

Starts processing a stream processor. You create a stream processor by calling . To tell StartStreamProcessor which stream processor to start, use the value of the Name field specified in the call to CreateStreamProcessor.

", + "StopStreamProcessor": "

Stops a running stream processor that was created by .

" }, "shapes": { "AccessDeniedException": { @@ -61,12 +80,15 @@ } }, "BoundingBox": { - "base": "

Identifies the bounding box around the object or face. The left (x-coordinate) and top (y-coordinate) are coordinates representing the top and left sides of the bounding box. Note that the upper-left corner of the image is the origin (0,0).

The top and left values returned are ratios of the overall image size. For example, if the input image is 700x200 pixels, and the top-left coordinate of the bounding box is 350x50 pixels, the API returns a left value of 0.5 (350/700) and a top value of 0.25 (50/200).

The width and height values represent the dimensions of the bounding box as a ratio of the overall image dimension. For example, if the input image is 700x200 pixels, and the bounding box width is 70 pixels, the width returned is 0.1.

The bounding box coordinates can have negative values. For example, if Amazon Rekognition is able to detect a face that is at the image edge and is only partially visible, the service can return coordinates that are outside the image bounds and, depending on the image edge, you might get negative values or values greater than 1 for the left or top values.

", + "base": "

Identifies the bounding box around the object, face or text. The left (x-coordinate) and top (y-coordinate) are coordinates representing the top and left sides of the bounding box. Note that the upper-left corner of the image is the origin (0,0).

The top and left values returned are ratios of the overall image size. For example, if the input image is 700x200 pixels, and the top-left coordinate of the bounding box is 350x50 pixels, the API returns a left value of 0.5 (350/700) and a top value of 0.25 (50/200).

The width and height values represent the dimensions of the bounding box as a ratio of the overall image dimension. For example, if the input image is 700x200 pixels, and the bounding box width is 70 pixels, the width returned is 0.1.

The bounding box coordinates can have negative values. For example, if Amazon Rekognition is able to detect a face that is at the image edge and is only partially visible, the service can return coordinates that are outside the image bounds and, depending on the image edge, you might get negative values or values greater than 1 for the left or top values.

", "refs": { + "CelebrityDetail$BoundingBox": "

Bounding box around the body of a celebrity.

", "ComparedFace$BoundingBox": "

Bounding box of the face.

", "ComparedSourceImageFace$BoundingBox": "

Bounding box of the face.

", "Face$BoundingBox": "

Bounding box of the face.

", "FaceDetail$BoundingBox": "

Bounding box of the face.

", + "Geometry$BoundingBox": "

An axis-aligned coarse representation of the detected text's location on the image.

", + "PersonDetail$BoundingBox": "

Bounding box around the detected person.

", "SearchFacesByImageResponse$SearchedFaceBoundingBox": "

The bounding box around the face in the input image that Amazon Rekognition used for the search.

" } }, @@ -76,12 +98,47 @@ "CelebrityList$member": null } }, + "CelebrityDetail": { + "base": "

Information about a recognized celebrity.

", + "refs": { + "CelebrityRecognition$Celebrity": "

Information about a recognized celebrity.

" + } + }, "CelebrityList": { "base": null, "refs": { "RecognizeCelebritiesResponse$CelebrityFaces": "

Details about each celebrity found in the image. Amazon Rekognition can detect a maximum of 15 celebrities in an image.

" } }, + "CelebrityRecognition": { + "base": "

Information about a detected celebrity and the time the celebrity was detected in a stored video. For more information, see .

", + "refs": { + "CelebrityRecognitions$member": null + } + }, + "CelebrityRecognitionSortBy": { + "base": null, + "refs": { + "GetCelebrityRecognitionRequest$SortBy": "

Sort to use for celebrities returned in Celebrities field. Specify ID to sort by the celebrity identifier, specify TIMESTAMP to sort by the time the celebrity was recognized.

" + } + }, + "CelebrityRecognitions": { + "base": null, + "refs": { + "GetCelebrityRecognitionResponse$Celebrities": "

Array of celebrities recognized in the video.

" + } + }, + "ClientRequestToken": { + "base": null, + "refs": { + "StartCelebrityRecognitionRequest$ClientRequestToken": "

Idempotent token used to identify the start request. If you use the same token with multiple StartCelebrityRecognition requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once.

", + "StartContentModerationRequest$ClientRequestToken": "

Idempotent token used to identify the start request. If you use the same token with multiple StartContentModeration requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once.

", + "StartFaceDetectionRequest$ClientRequestToken": "

Idempotent token used to identify the start request. If you use the same token with multiple StartFaceDetection requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once.

", + "StartFaceSearchRequest$ClientRequestToken": "

Idempotent token used to identify the start request. If you use the same token with multiple StartFaceSearch requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once.

", + "StartLabelDetectionRequest$ClientRequestToken": "

Idempotent token used to identify the start request. If you use the same token with multiple StartLabelDetection requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once.

", + "StartPersonTrackingRequest$ClientRequestToken": "

Idempotent token used to identify the start request. If you use the same token with multiple StartPersonTracking requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once.

" + } + }, "CollectionId": { "base": null, "refs": { @@ -89,10 +146,12 @@ "CreateCollectionRequest$CollectionId": "

ID for the collection that you are creating.

", "DeleteCollectionRequest$CollectionId": "

ID of the collection to delete.

", "DeleteFacesRequest$CollectionId": "

Collection from which to remove the specific faces.

", + "FaceSearchSettings$CollectionId": "

The ID of a collection that contains faces that you want to search for.

", "IndexFacesRequest$CollectionId": "

The ID of an existing collection to which you want to add the faces that are detected in the input images.

", "ListFacesRequest$CollectionId": "

ID of the collection from which to list the faces.

", "SearchFacesByImageRequest$CollectionId": "

ID of the collection to search.

", - "SearchFacesRequest$CollectionId": "

ID of the collection the face belongs to.

" + "SearchFacesRequest$CollectionId": "

ID of the collection the face belongs to.

", + "StartFaceSearchRequest$CollectionId": "

ID of the collection that contains the faces you want to search for.

" } }, "CollectionIdList": { @@ -150,6 +209,24 @@ "CompareFacesResponse$SourceImageFace": "

The face in the source image that was used for comparison.

" } }, + "ContentModerationDetection": { + "base": "

Information about a moderation label detection in a stored video.

", + "refs": { + "ContentModerationDetections$member": null + } + }, + "ContentModerationDetections": { + "base": null, + "refs": { + "GetContentModerationResponse$ModerationLabels": "

The detected moderation labels and the time(s) they were detected.

" + } + }, + "ContentModerationSortBy": { + "base": null, + "refs": { + "GetContentModerationRequest$SortBy": "

Sort to use for elements in the ModerationLabelDetections array. Use TIMESTAMP to sort array elements by the time labels are detected. Use NAME to alphabetically group elements for a label together. Within each label group, the array element are sorted by detection confidence. The default sort is by TIMESTAMP.

" + } + }, "CreateCollectionRequest": { "base": null, "refs": { @@ -160,6 +237,23 @@ "refs": { } }, + "CreateStreamProcessorRequest": { + "base": null, + "refs": { + } + }, + "CreateStreamProcessorResponse": { + "base": null, + "refs": { + } + }, + "DateTime": { + "base": null, + "refs": { + "DescribeStreamProcessorResponse$CreationTimestamp": "

Date and time the stream processor was created

", + "DescribeStreamProcessorResponse$LastUpdateTimestamp": "

The time, in Unix format, the stream processor was last updated. For example, when the stream processor moves from a running state to a failed state, or when the user starts or stops the stream processor.

" + } + }, "Degree": { "base": null, "refs": { @@ -188,6 +282,26 @@ "refs": { } }, + "DeleteStreamProcessorRequest": { + "base": null, + "refs": { + } + }, + "DeleteStreamProcessorResponse": { + "base": null, + "refs": { + } + }, + "DescribeStreamProcessorRequest": { + "base": null, + "refs": { + } + }, + "DescribeStreamProcessorResponse": { + "base": null, + "refs": { + } + }, "DetectFacesRequest": { "base": null, "refs": { @@ -218,6 +332,16 @@ "refs": { } }, + "DetectTextRequest": { + "base": null, + "refs": { + } + }, + "DetectTextResponse": { + "base": null, + "refs": { + } + }, "Emotion": { "base": "

The emotions detected on the face, and the confidence level in the determination. For example, HAPPY, SAD, and ANGRY.

", "refs": { @@ -263,11 +387,20 @@ "FaceRecord$Face": "

Describes the face properties such as the bounding box, face ID, image ID of the input image, and external image ID that you assigned.

" } }, + "FaceAttributes": { + "base": null, + "refs": { + "StartFaceDetectionRequest$FaceAttributes": "

The face attributes you want returned.

DEFAULT - The following subset of facial attributes are returned: BoundingBox, Confidence, Pose, Quality and Landmarks.

ALL - All facial attributes are returned.

" + } + }, "FaceDetail": { "base": "

Structure containing attributes of the face that the algorithm detected.

", "refs": { + "CelebrityDetail$Face": "

Face details for the recognized celebrity.

", "FaceDetailList$member": null, - "FaceRecord$FaceDetail": "

Structure containing attributes of the face that the algorithm detected.

" + "FaceDetection$Face": "

The face properties for the detected face.

", + "FaceRecord$FaceDetail": "

Structure containing attributes of the face that the algorithm detected.

", + "PersonDetail$Face": "

Face details for the detected person.

" } }, "FaceDetailList": { @@ -276,6 +409,18 @@ "DetectFacesResponse$FaceDetails": "

Details of each face found in the image.

" } }, + "FaceDetection": { + "base": "

Information about a face detected in a video analysis request and the time the face was detected in the video.

", + "refs": { + "FaceDetections$member": null + } + }, + "FaceDetections": { + "base": null, + "refs": { + "GetFaceDetectionResponse$Faces": "

An array of faces detected in the video. Each element contains a detected face's details and the time, in milliseconds from the start of the video, the face was detected.

" + } + }, "FaceId": { "base": null, "refs": { @@ -307,10 +452,17 @@ "FaceMatchList": { "base": null, "refs": { + "PersonMatch$FaceMatches": "

Information about the faces in the input collection that match the face of a person in the video.

", "SearchFacesByImageResponse$FaceMatches": "

An array of faces that match the input face, along with the confidence in the match.

", "SearchFacesResponse$FaceMatches": "

An array of faces that matched the input face, along with the confidence in the match.

" } }, + "FaceModelVersionList": { + "base": null, + "refs": { + "ListCollectionsResponse$FaceModelVersions": "

Version numbers of the face detection models associated with the collections in the array CollectionIds. For example, the value of FaceModelVersions[2] is the version number for the face detection model used by the collection in CollectionId[2].

" + } + }, "FaceRecord": { "base": "

Object containing both the face metadata (stored in the back-end database) and facial attributes that are detected but aren't stored in the database.

", "refs": { @@ -320,7 +472,19 @@ "FaceRecordList": { "base": null, "refs": { - "IndexFacesResponse$FaceRecords": "

An array of faces detected and added to the collection. For more information, see howitworks-index-faces.

" + "IndexFacesResponse$FaceRecords": "

An array of faces detected and added to the collection. For more information, see collections-index-faces.

" + } + }, + "FaceSearchSettings": { + "base": "

Input face recognition parameters for an Amazon Rekognition stream processor. FaceRecognitionSettings is a request parameter for .

", + "refs": { + "StreamProcessorSettings$FaceSearch": "

Face search settings to use on a streaming video.

" + } + }, + "FaceSearchSortBy": { + "base": null, + "refs": { + "GetFaceSearchRequest$SortBy": "

Sort to use for grouping faces in the response. Use TIMESTAMP to group faces by the time that they are recognized. Use INDEX to sort by recognized faces.

" } }, "Float": { @@ -332,8 +496,11 @@ "BoundingBox$Top": "

Top coordinate of the bounding box as a ratio of overall image height.

", "ImageQuality$Brightness": "

Value representing brightness of the face. The service returns a value between 0 and 100 (inclusive). A higher value indicates a brighter face image.

", "ImageQuality$Sharpness": "

Value representing sharpness of the face. The service returns a value between 0 and 100 (inclusive). A higher value indicates a sharper face image.

", - "Landmark$X": "

x-coordinate from the top left of the landmark expressed as the ration of the width of the image. For example, if the images is 700x200 and the x-coordinate of the landmark is at 350 pixels, this value is 0.5.

", - "Landmark$Y": "

y-coordinate from the top left of the landmark expressed as the ration of the height of the image. For example, if the images is 700x200 and the y-coordinate of the landmark is at 100 pixels, this value is 0.5.

" + "Landmark$X": "

x-coordinate from the top left of the landmark expressed as the ratio of the width of the image. For example, if the images is 700x200 and the x-coordinate of the landmark is at 350 pixels, this value is 0.5.

", + "Landmark$Y": "

y-coordinate from the top left of the landmark expressed as the ratio of the height of the image. For example, if the images is 700x200 and the y-coordinate of the landmark is at 100 pixels, this value is 0.5.

", + "Point$X": "

The value of the X coordinate for a point on a Polygon.

", + "Point$Y": "

The value of the Y coordinate for a point on a Polygon.

", + "VideoMetadata$FrameRate": "

Number of frames per second in the video.

" } }, "Gender": { @@ -348,6 +515,12 @@ "Gender$Value": "

Gender of the face.

" } }, + "Geometry": { + "base": "

Information about where text detected by is located on an image.

", + "refs": { + "TextDetection$Geometry": "

The location of the detected text on the image. Includes an axis aligned coarse bounding box surrounding the text and a finer grain polygon for more accurate spatial information.

" + } + }, "GetCelebrityInfoRequest": { "base": null, "refs": { @@ -358,17 +531,83 @@ "refs": { } }, + "GetCelebrityRecognitionRequest": { + "base": null, + "refs": { + } + }, + "GetCelebrityRecognitionResponse": { + "base": null, + "refs": { + } + }, + "GetContentModerationRequest": { + "base": null, + "refs": { + } + }, + "GetContentModerationResponse": { + "base": null, + "refs": { + } + }, + "GetFaceDetectionRequest": { + "base": null, + "refs": { + } + }, + "GetFaceDetectionResponse": { + "base": null, + "refs": { + } + }, + "GetFaceSearchRequest": { + "base": null, + "refs": { + } + }, + "GetFaceSearchResponse": { + "base": null, + "refs": { + } + }, + "GetLabelDetectionRequest": { + "base": null, + "refs": { + } + }, + "GetLabelDetectionResponse": { + "base": null, + "refs": { + } + }, + "GetPersonTrackingRequest": { + "base": null, + "refs": { + } + }, + "GetPersonTrackingResponse": { + "base": null, + "refs": { + } + }, + "IdempotentParameterMismatchException": { + "base": "

A ClientRequestToken input parameter was reused with an operation, but at least one of the other input parameters is different from the previous call to the operation.

", + "refs": { + } + }, "Image": { - "base": "

Provides the input image either as bytes or an S3 object.

You pass image bytes to a Rekognition API operation by using the Bytes property. For example, you would use the Bytes property to pass an image loaded from a local file system. Image bytes passed by using the Bytes property must be base64-encoded. Your code may not need to encode image bytes if you are using an AWS SDK to call Rekognition API operations. For more information, see example4.

You pass images stored in an S3 bucket to a Rekognition API operation by using the S3Object property. Images stored in an S3 bucket do not need to be base64-encoded.

The region for the S3 bucket containing the S3 object must match the region you use for Amazon Rekognition operations.

If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes using the Bytes property is not supported. You must first upload the image to an Amazon S3 bucket and then call the operation using the S3Object property.

For Amazon Rekognition to process an S3 object, the user must have permission to access the S3 object. For more information, see manage-access-resource-policies.

", + "base": "

Provides the input image either as bytes or an S3 object.

You pass image bytes to a Rekognition API operation by using the Bytes property. For example, you would use the Bytes property to pass an image loaded from a local file system. Image bytes passed by using the Bytes property must be base64-encoded. Your code may not need to encode image bytes if you are using an AWS SDK to call Rekognition API operations. For more information, see images-bytes.

You pass images stored in an S3 bucket to a Rekognition API operation by using the S3Object property. Images stored in an S3 bucket do not need to be base64-encoded.

The region for the S3 bucket containing the S3 object must match the region you use for Amazon Rekognition operations.

If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes using the Bytes property is not supported. You must first upload the image to an Amazon S3 bucket and then call the operation using the S3Object property.

For Amazon Rekognition to process an S3 object, the user must have permission to access the S3 object. For more information, see manage-access-resource-policies.

", "refs": { - "CompareFacesRequest$SourceImage": "

The source image, either as bytes or as an S3 object.

", - "CompareFacesRequest$TargetImage": "

The target image, either as bytes or as an S3 object.

", - "DetectFacesRequest$Image": "

The image in which you want to detect faces. You can specify a blob or an S3 object.

", - "DetectLabelsRequest$Image": "

The input image. You can provide a blob of image bytes or an S3 object.

", - "DetectModerationLabelsRequest$Image": "

The input image as bytes or an S3 object.

", - "IndexFacesRequest$Image": "

The input image as bytes or an S3 object.

", - "RecognizeCelebritiesRequest$Image": "

The input image to use for celebrity recognition.

", - "SearchFacesByImageRequest$Image": "

The input image as bytes or an S3 object.

" + "CompareFacesRequest$SourceImage": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

", + "CompareFacesRequest$TargetImage": "

The target image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

", + "DetectFacesRequest$Image": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

", + "DetectLabelsRequest$Image": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

", + "DetectModerationLabelsRequest$Image": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

", + "DetectTextRequest$Image": "

The input image as base64-encoded bytes or an Amazon S3 object. If you use the AWS CLI to call Amazon Rekognition operations, you can't pass image bytes.

", + "IndexFacesRequest$Image": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

", + "RecognizeCelebritiesRequest$Image": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

", + "SearchFacesByImageRequest$Image": "

The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.

" } }, "ImageBlob": { @@ -430,12 +669,83 @@ "refs": { } }, + "JobId": { + "base": null, + "refs": { + "GetCelebrityRecognitionRequest$JobId": "

Job identifier for the required celebrity recognition analysis. You can get the job identifer from a call to StartCelebrityRecognition.

", + "GetContentModerationRequest$JobId": "

The identifier for the content moderation job. Use JobId to identify the job in a subsequent call to GetContentModeration.

", + "GetFaceDetectionRequest$JobId": "

Unique identifier for the face detection job. The JobId is returned from StartFaceDetection.

", + "GetFaceSearchRequest$JobId": "

The job identifer for the search request. You get the job identifier from an initial call to StartFaceSearch.

", + "GetLabelDetectionRequest$JobId": "

Job identifier for the label detection operation for which you want results returned. You get the job identifer from an initial call to StartlabelDetection.

", + "GetPersonTrackingRequest$JobId": "

The identifier for a job that tracks persons in a video. You get the JobId from a call to StartPersonTracking.

", + "StartCelebrityRecognitionResponse$JobId": "

The identifier for the celebrity recognition analysis job. Use JobId to identify the job in a subsequent call to GetCelebrityRecognition.

", + "StartContentModerationResponse$JobId": "

The identifier for the content moderation analysis job. Use JobId to identify the job in a subsequent call to GetContentModeration.

", + "StartFaceDetectionResponse$JobId": "

The identifier for the face detection job. Use JobId to identify the job in a subsequent call to GetFaceDetection.

", + "StartFaceSearchResponse$JobId": "

The identifier for the search job. Use JobId to identify the job in a subsequent call to GetFaceSearch.

", + "StartLabelDetectionResponse$JobId": "

The identifier for the label detection job. Use JobId to identify the job in a subsequent call to GetLabelDetection.

", + "StartPersonTrackingResponse$JobId": "

The identifier for the person detection job. Use JobId to identify the job in a subsequent call to GetPersonTracking.

" + } + }, + "JobTag": { + "base": null, + "refs": { + "StartCelebrityRecognitionRequest$JobTag": "

Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic.

", + "StartContentModerationRequest$JobTag": "

Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic.

", + "StartFaceDetectionRequest$JobTag": "

Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic.

", + "StartFaceSearchRequest$JobTag": "

Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic.

", + "StartLabelDetectionRequest$JobTag": "

Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic.

", + "StartPersonTrackingRequest$JobTag": "

Unique identifier you specify to identify the job in the completion status published to the Amazon Simple Notification Service topic.

" + } + }, + "KinesisDataArn": { + "base": null, + "refs": { + "KinesisDataStream$Arn": "

ARN of the output Amazon Kinesis Data Streams stream.

" + } + }, + "KinesisDataStream": { + "base": "

The Kinesis data stream Amazon Rekognition to which the analysis results of a Amazon Rekognition stream processor are streamed. For more information, see .

", + "refs": { + "StreamProcessorOutput$KinesisDataStream": "

The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results.

" + } + }, + "KinesisVideoArn": { + "base": null, + "refs": { + "KinesisVideoStream$Arn": "

ARN of the Kinesis video stream stream that streams the source video.

" + } + }, + "KinesisVideoStream": { + "base": "

Kinesis video stream stream that provides the source streaming video for a Rekognition Video stream processor. For more information, see .

", + "refs": { + "StreamProcessorInput$KinesisVideoStream": "

The Kinesis video stream input stream for the source streaming video.

" + } + }, "Label": { "base": "

Structure containing details about the detected label, including name, and level of confidence.

", "refs": { + "LabelDetection$Label": "

Details about the detected label.

", "Labels$member": null } }, + "LabelDetection": { + "base": "

Information about a label detected in a video analysis request and the time the label was detected in the video.

", + "refs": { + "LabelDetections$member": null + } + }, + "LabelDetectionSortBy": { + "base": null, + "refs": { + "GetLabelDetectionRequest$SortBy": "

Sort to use for elements in the Labels array. Use TIMESTAMP to sort array elements by the time labels are detected. Use NAME to alphabetically group elements for a label together. Within each label group, the array element are sorted by detection confidence. The default sort is by TIMESTAMP.

" + } + }, + "LabelDetections": { + "base": null, + "refs": { + "GetLabelDetectionResponse$Labels": "

An array of labels detected in the video. Each element contains the detected label and the time, in milliseconds from the start of the video, that the label was detected.

" + } + }, "Labels": { "base": null, "refs": { @@ -461,6 +771,11 @@ "FaceDetail$Landmarks": "

Indicates the location of landmarks on the face.

" } }, + "LimitExceededException": { + "base": "

", + "refs": { + } + }, "ListCollectionsRequest": { "base": null, "refs": { @@ -481,6 +796,16 @@ "refs": { } }, + "ListStreamProcessorsRequest": { + "base": null, + "refs": { + } + }, + "ListStreamProcessorsResponse": { + "base": null, + "refs": { + } + }, "MaxFaces": { "base": null, "refs": { @@ -488,16 +813,29 @@ "SearchFacesRequest$MaxFaces": "

Maximum number of faces to return. The operation returns the maximum number of faces with the highest confidence in the match.

" } }, + "MaxResults": { + "base": null, + "refs": { + "GetCelebrityRecognitionRequest$MaxResults": "

Maximum number of celebrities you want Rekognition Video to return in the response. The default is 1000.

", + "GetContentModerationRequest$MaxResults": "

Maximum number of content moderation labels to return. The default is 1000.

", + "GetFaceDetectionRequest$MaxResults": "

Maximum number of detected faces to return. The default is 1000.

", + "GetFaceSearchRequest$MaxResults": "

Maximum number of search results you want Rekognition Video to return in the response. The default is 1000.

", + "GetLabelDetectionRequest$MaxResults": "

Maximum number of labels you want Amazon Rekognition to return in the response. The default is 1000.

", + "GetPersonTrackingRequest$MaxResults": "

Maximum number of tracked persons to return. The default is 1000.

", + "ListStreamProcessorsRequest$MaxResults": "

Maximum number of stream processors you want Rekognition Video to return in the response. The default is 1000.

" + } + }, "ModerationLabel": { - "base": "

Provides information about a single type of moderated content found in an image. Each type of moderated content has a label within a hierarchical taxonomy. For more information, see image-moderation.

", + "base": "

Provides information about a single type of moderated content found in an image or video. Each type of moderated content has a label within a hierarchical taxonomy. For more information, see moderation.

", "refs": { + "ContentModerationDetection$ModerationLabel": "

The moderation label detected by in the stored video.

", "ModerationLabels$member": null } }, "ModerationLabels": { "base": null, "refs": { - "DetectModerationLabelsResponse$ModerationLabels": "

An array of labels for explicit or suggestive adult content found in the image. The list includes the top-level label and each child label detected in the image. This is useful for filtering specific categories of content.

" + "DetectModerationLabelsResponse$ModerationLabels": "

Array of detected Moderation labels and the time, in millseconds from the start of the video, they were detected.

" } }, "MouthOpen": { @@ -512,6 +850,17 @@ "FaceDetail$Mustache": "

Indicates whether or not the face has a mustache, and the confidence level in the determination.

" } }, + "NotificationChannel": { + "base": "

The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status of a video analysis operation. For more information, see api-video.

", + "refs": { + "StartCelebrityRecognitionRequest$NotificationChannel": "

The Amazon SNS topic ARN that you want Rekognition Video to publish the completion status of the celebrity recognition analysis to.

", + "StartContentModerationRequest$NotificationChannel": "

The Amazon SNS topic ARN that you want Rekognition Video to publish the completion status of the content moderation analysis to.

", + "StartFaceDetectionRequest$NotificationChannel": "

The ARN of the Amazon SNS topic to which you want Rekognition Video to publish the completion status of the face detection operation.

", + "StartFaceSearchRequest$NotificationChannel": "

The ARN of the Amazon SNS topic to which you want Rekognition Video to publish the completion status of the search.

", + "StartLabelDetectionRequest$NotificationChannel": "

The Amazon SNS topic ARN you want Rekognition Video to publish the completion status of the label detection operation to.

", + "StartPersonTrackingRequest$NotificationChannel": "

The Amazon SNS topic ARN you want Rekognition Video to publish the completion status of the people detection operation to.

" + } + }, "OrientationCorrection": { "base": null, "refs": { @@ -526,16 +875,30 @@ "PageSize": { "base": null, "refs": { - "ListCollectionsRequest$MaxResults": "

Maximum number of collection IDs to return.

", + "ListCollectionsRequest$MaxResults": "

Maximum number of collection IDs to return.

", "ListFacesRequest$MaxResults": "

Maximum number of faces to return.

" } }, "PaginationToken": { "base": null, "refs": { + "GetCelebrityRecognitionRequest$NextToken": "

If the previous response was incomplete (because there is more recognized celebrities to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of celebrities.

", + "GetCelebrityRecognitionResponse$NextToken": "

If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of celebrities.

", + "GetContentModerationRequest$NextToken": "

If the previous response was incomplete (because there is more data to retrieve), Amazon Rekognition returns a pagination token in the response. You can use this pagination token to retrieve the next set of content moderation labels.

", + "GetContentModerationResponse$NextToken": "

If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of moderation labels.

", + "GetFaceDetectionRequest$NextToken": "

If the previous response was incomplete (because there are more faces to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of faces.

", + "GetFaceDetectionResponse$NextToken": "

If the response is truncated, Amazon Rekognition returns this token that you can use in the subsequent request to retrieve the next set of faces.

", + "GetFaceSearchRequest$NextToken": "

If the previous response was incomplete (because there is more search results to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of search results.

", + "GetFaceSearchResponse$NextToken": "

If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of search results.

", + "GetLabelDetectionRequest$NextToken": "

If the previous response was incomplete (because there are more labels to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of labels.

", + "GetLabelDetectionResponse$NextToken": "

If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of labels.

", + "GetPersonTrackingRequest$NextToken": "

If the previous response was incomplete (because there are more persons to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of persons.

", + "GetPersonTrackingResponse$NextToken": "

If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of persons.

", "ListCollectionsRequest$NextToken": "

Pagination token from the previous response.

", "ListCollectionsResponse$NextToken": "

If the result is truncated, the response provides a NextToken that you can use in the subsequent request to fetch the next set of collection IDs.

", - "ListFacesRequest$NextToken": "

If the previous response was incomplete (because there is more data to retrieve), Amazon Rekognition returns a pagination token in the response. You can use this pagination token to retrieve the next set of faces.

" + "ListFacesRequest$NextToken": "

If the previous response was incomplete (because there is more data to retrieve), Amazon Rekognition returns a pagination token in the response. You can use this pagination token to retrieve the next set of faces.

", + "ListStreamProcessorsRequest$NextToken": "

If the previous response was incomplete (because there are more stream processors to retrieve), Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of stream processors.

", + "ListStreamProcessorsResponse$NextToken": "

If the response is truncated, Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of stream processors.

" } }, "Percent": { @@ -543,6 +906,7 @@ "refs": { "Beard$Confidence": "

Level of confidence in the determination.

", "Celebrity$MatchConfidence": "

The confidence, in percentage, that Rekognition has that the recognized face is the celebrity.

", + "CelebrityDetail$Confidence": "

The confidence, in percentage, that Amazon Rekognition has that the recognized face is the celebrity.

", "CompareFacesMatch$Similarity": "

Level of confidence that the faces match.

", "CompareFacesRequest$SimilarityThreshold": "

The minimum level of confidence in the face matches that a match must meet to be included in the FaceMatches array.

", "ComparedFace$Confidence": "

Level of confidence that what the bounding box contains is a face.

", @@ -555,6 +919,7 @@ "Face$Confidence": "

Confidence level that the bounding box contains a face (and not a different object such as a tree).

", "FaceDetail$Confidence": "

Confidence level that the bounding box contains a face (and not a different object such as a tree).

", "FaceMatch$Similarity": "

Confidence in the match of this face with the input face.

", + "FaceSearchSettings$FaceMatchThreshold": "

Minimum face match confidence score that must be met to return a result for a recognized face. Default is 70. 0 is the lowest confidence. 100 is the highest confidence.

", "Gender$Confidence": "

Level of confidence in the determination.

", "Label$Confidence": "

Level of confidence.

", "ModerationLabel$Confidence": "

Specifies the confidence that Amazon Rekognition has that the label has been correctly identified.

If you don't specify the MinConfidence parameter in the call to DetectModerationLabels, the operation returns labels with a confidence value greater than or equal to 50 percent.

", @@ -564,7 +929,66 @@ "SearchFacesByImageResponse$SearchedFaceConfidence": "

The level of confidence that the searchedFaceBoundingBox, contains a face.

", "SearchFacesRequest$FaceMatchThreshold": "

Optional value specifying the minimum confidence in the face match to return. For example, don't return any matches where confidence in matches is less than 70%.

", "Smile$Confidence": "

Level of confidence in the determination.

", - "Sunglasses$Confidence": "

Level of confidence in the determination.

" + "StartContentModerationRequest$MinConfidence": "

Specifies the minimum confidence that Amazon Rekognition must have in order to return a moderated content label. Confidence represents how certain Amazon Rekognition is that the moderated content is correctly identified. 0 is the lowest confidence. 100 is the highest confidence. Amazon Rekognition doesn't return any moderated content labels with a confidence level lower than this specified value.

", + "StartFaceSearchRequest$FaceMatchThreshold": "

The minimum confidence in the person match to return. For example, don't return any matches where confidence in matches is less than 70%.

", + "StartLabelDetectionRequest$MinConfidence": "

Specifies the minimum confidence that Rekognition Video must have in order to return a detected label. Confidence represents how certain Amazon Rekognition is that a label is correctly identified.0 is the lowest confidence. 100 is the highest confidence. Rekognition Video doesn't return any labels with a confidence level lower than this specified value.

If you don't specify MinConfidence, the operation returns labels with confidence values greater than or equal to 50 percent.

", + "Sunglasses$Confidence": "

Level of confidence in the determination.

", + "TextDetection$Confidence": "

The confidence that Amazon Rekognition has in the accuracy of the detected text and the accuracy of the geometry points around the detected text.

" + } + }, + "PersonDetail": { + "base": "

Details about a person detected in a video analysis request.

", + "refs": { + "PersonDetection$Person": "

Details about a person tracked in a video.

", + "PersonMatch$Person": "

Information about the matched person.

" + } + }, + "PersonDetection": { + "base": "

Details and tracking information for a single time a person is tracked in a video. Amazon Rekognition operations that track persons return an array of PersonDetection objects with elements for each time a person is tracked in a video. For more information, see .

", + "refs": { + "PersonDetections$member": null + } + }, + "PersonDetections": { + "base": null, + "refs": { + "GetPersonTrackingResponse$Persons": "

An array of the persons detected in the video and the times they are tracked throughout the video. An array element will exist for each time the person is tracked.

" + } + }, + "PersonIndex": { + "base": null, + "refs": { + "PersonDetail$Index": "

Identifier for the person detected person within a video. Use to keep track of the person throughout the video. The identifier is not stored by Amazon Rekognition.

" + } + }, + "PersonMatch": { + "base": "

Information about a person whose face matches a face(s) in a Amazon Rekognition collection. Includes information about the faces in the Amazon Rekognition collection (,information about the person (PersonDetail) and the timestamp for when the person was detected in a video. An array of PersonMatch objects is returned by .

", + "refs": { + "PersonMatches$member": null + } + }, + "PersonMatches": { + "base": null, + "refs": { + "GetFaceSearchResponse$Persons": "

An array of persons, , in the video whose face(s) match the face(s) in an Amazon Rekognition collection. It also includes time information for when persons are matched in the video. You specify the input collection in an initial call to StartFaceSearch. Each Persons element includes a time the person was matched, face match details (FaceMatches) for matching faces in the collection, and person information (Person) for the matched person.

" + } + }, + "PersonTrackingSortBy": { + "base": null, + "refs": { + "GetPersonTrackingRequest$SortBy": "

Sort to use for elements in the Persons array. Use TIMESTAMP to sort array elements by the time persons are detected. Use INDEX to sort by the tracked persons. If you sort by INDEX, the array elements for each person are sorted by detection confidence. The default sort is by TIMESTAMP.

" + } + }, + "Point": { + "base": "

The X and Y coordinates of a point on an image. The X and Y values returned are ratios of the overall image size. For example, if the input image is 700x200 and the operation returns X=0.5 and Y=0.25, then the point is at the (350,50) pixel coordinate on the image.

An array of Point objects, Polygon, is returned by . Polygon represents a fine-grained polygon around detected text. For more information, see .

", + "refs": { + "Polygon$member": null + } + }, + "Polygon": { + "base": null, + "refs": { + "Geometry$Polygon": "

Within the bounding box, a fine-grained polygon around the detected text.

" } }, "Pose": { @@ -593,6 +1017,7 @@ "base": null, "refs": { "Celebrity$Id": "

A unique identifier for the celebrity.

", + "CelebrityDetail$Id": "

The unique identifier for the celebrity.

", "GetCelebrityInfoRequest$Id": "

The ID for the celebrity. You get the celebrity ID from a call to the operation, which recognizes celebrities in an image.

" } }, @@ -601,11 +1026,24 @@ "refs": { } }, + "ResourceInUseException": { + "base": "

", + "refs": { + } + }, "ResourceNotFoundException": { - "base": "

Collection specified in the request is not found.

", + "base": "

The collection specified in the request cannot be found.

", "refs": { } }, + "RoleArn": { + "base": null, + "refs": { + "CreateStreamProcessorRequest$RoleArn": "

ARN of the IAM role that allows access to the stream processor.

", + "DescribeStreamProcessorResponse$RoleArn": "

ARN of the IAM role that allows access to the stream processor.

", + "NotificationChannel$RoleArn": "

The ARN of an IAM role that gives Amazon Rekognition publishing permissions to the Amazon SNS topic.

" + } + }, "S3Bucket": { "base": null, "refs": { @@ -615,7 +1053,8 @@ "S3Object": { "base": "

Provides the S3 bucket name and object name.

The region for the S3 bucket containing the S3 object must match the region you use for Amazon Rekognition operations.

For Amazon Rekognition to process an S3 object, the user must have permission to access the S3 object. For more information, see manage-access-resource-policies.

", "refs": { - "Image$S3Object": "

Identifies an S3 object as the image source.

" + "Image$S3Object": "

Identifies an S3 object as the image source.

", + "Video$S3Object": "

The Amazon S3 bucket name and file name for the video.

" } }, "S3ObjectName": { @@ -630,6 +1069,12 @@ "S3Object$Version": "

If the bucket is versioning enabled, you can specify the object version.

" } }, + "SNSTopicArn": { + "base": null, + "refs": { + "NotificationChannel$SNSTopicArn": "

The Amazon SNS topic to which Amazon Rekognition to posts the completion status.

" + } + }, "SearchFacesByImageRequest": { "base": null, "refs": { @@ -656,16 +1101,177 @@ "FaceDetail$Smile": "

Indicates whether or not the face is smiling, and the confidence level in the determination.

" } }, + "StartCelebrityRecognitionRequest": { + "base": null, + "refs": { + } + }, + "StartCelebrityRecognitionResponse": { + "base": null, + "refs": { + } + }, + "StartContentModerationRequest": { + "base": null, + "refs": { + } + }, + "StartContentModerationResponse": { + "base": null, + "refs": { + } + }, + "StartFaceDetectionRequest": { + "base": null, + "refs": { + } + }, + "StartFaceDetectionResponse": { + "base": null, + "refs": { + } + }, + "StartFaceSearchRequest": { + "base": null, + "refs": { + } + }, + "StartFaceSearchResponse": { + "base": null, + "refs": { + } + }, + "StartLabelDetectionRequest": { + "base": null, + "refs": { + } + }, + "StartLabelDetectionResponse": { + "base": null, + "refs": { + } + }, + "StartPersonTrackingRequest": { + "base": null, + "refs": { + } + }, + "StartPersonTrackingResponse": { + "base": null, + "refs": { + } + }, + "StartStreamProcessorRequest": { + "base": null, + "refs": { + } + }, + "StartStreamProcessorResponse": { + "base": null, + "refs": { + } + }, + "StatusMessage": { + "base": null, + "refs": { + "GetCelebrityRecognitionResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

", + "GetContentModerationResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

", + "GetFaceDetectionResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

", + "GetFaceSearchResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

", + "GetLabelDetectionResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

", + "GetPersonTrackingResponse$StatusMessage": "

If the job fails, StatusMessage provides a descriptive error message.

" + } + }, + "StopStreamProcessorRequest": { + "base": null, + "refs": { + } + }, + "StopStreamProcessorResponse": { + "base": null, + "refs": { + } + }, + "StreamProcessor": { + "base": "

An object that recognizes faces in a streaming video. An Amazon Rekognition stream processor is created by a call to . The request parameters for CreateStreamProcessor describe the Kinesis video stream source for the streaming video, face recognition parameters, and where to stream the analysis resullts.

", + "refs": { + "StreamProcessorList$member": null + } + }, + "StreamProcessorArn": { + "base": null, + "refs": { + "CreateStreamProcessorResponse$StreamProcessorArn": "

ARN for the newly create stream processor.

", + "DescribeStreamProcessorResponse$StreamProcessorArn": "

ARN of the stream processor.

" + } + }, + "StreamProcessorInput": { + "base": "

Information about the source streaming video.

", + "refs": { + "CreateStreamProcessorRequest$Input": "

Kinesis video stream stream that provides the source streaming video. If you are using the AWS CLI, the parameter name is StreamProcessorInput.

", + "DescribeStreamProcessorResponse$Input": "

Kinesis video stream that provides the source streaming video.

" + } + }, + "StreamProcessorList": { + "base": null, + "refs": { + "ListStreamProcessorsResponse$StreamProcessors": "

List of stream processors that you have created.

" + } + }, + "StreamProcessorName": { + "base": null, + "refs": { + "CreateStreamProcessorRequest$Name": "

An identifier you assign to the stream processor. You can use Name to manage the stream processor. For example, you can get the current status of the stream processor by calling . Name is idempotent.

", + "DeleteStreamProcessorRequest$Name": "

The name of the stream processor you want to delete.

", + "DescribeStreamProcessorRequest$Name": "

Name of the stream processor for which you want information.

", + "DescribeStreamProcessorResponse$Name": "

Name of the stream processor.

", + "StartStreamProcessorRequest$Name": "

The name of the stream processor to start processing.

", + "StopStreamProcessorRequest$Name": "

The name of a stream processor created by .

", + "StreamProcessor$Name": "

Name of the Amazon Rekognition stream processor.

" + } + }, + "StreamProcessorOutput": { + "base": "

Information about the Amazon Kinesis Data Streams stream to which a Rekognition Video stream processor streams the results of a video analysis. For more information, see .

", + "refs": { + "CreateStreamProcessorRequest$Output": "

Kinesis data stream stream to which Rekognition Video puts the analysis results. If you are using the AWS CLI, the parameter name is StreamProcessorOutput.

", + "DescribeStreamProcessorResponse$Output": "

Kinesis data stream to which Rekognition Video puts the analysis results.

" + } + }, + "StreamProcessorSettings": { + "base": "

Input parameters used to recognize faces in a streaming video analyzed by a Amazon Rekognition stream processor.

", + "refs": { + "CreateStreamProcessorRequest$Settings": "

Face recognition input parameters to be used by the stream processor. Includes the collection to use for face recognition and the face attributes to detect.

", + "DescribeStreamProcessorResponse$Settings": "

Face recognition input parameters that are being used by the stream processor. Includes the collection to use for face recognition and the face attributes to detect.

" + } + }, + "StreamProcessorStatus": { + "base": null, + "refs": { + "DescribeStreamProcessorResponse$Status": "

Current status of the stream processor.

", + "StreamProcessor$Status": "

Current status of the Amazon Rekognition stream processor.

" + } + }, "String": { "base": null, "refs": { "Celebrity$Name": "

The name of the celebrity.

", + "CelebrityDetail$Name": "

The name of the celebrity.

", "CreateCollectionResponse$CollectionArn": "

Amazon Resource Name (ARN) of the collection. You can use this to manage permissions on your resources.

", + "CreateCollectionResponse$FaceModelVersion": "

Version number of the face detection model associated with the collection you are creating.

", + "DescribeStreamProcessorResponse$StatusMessage": "

Detailed status message about the stream processor.

", + "FaceModelVersionList$member": null, "GetCelebrityInfoResponse$Name": "

The name of the celebrity.

", + "IndexFacesResponse$FaceModelVersion": "

Version number of the face detection model associated with the input collection (CollectionId).

", "Label$Name": "

The name (label) of the object.

", "ListFacesResponse$NextToken": "

If the response is truncated, Amazon Rekognition returns this token that you can use in the subsequent request to retrieve the next set of faces.

", + "ListFacesResponse$FaceModelVersion": "

Version number of the face detection model associated with the input collection (CollectionId).

", "ModerationLabel$Name": "

The label name for the type of content detected in the image.

", - "ModerationLabel$ParentName": "

The name for the parent label. Labels at the top-level of the hierarchy have the parent label \"\".

" + "ModerationLabel$ParentName": "

The name for the parent label. Labels at the top-level of the hierarchy have the parent label \"\".

", + "SearchFacesByImageResponse$FaceModelVersion": "

Version number of the face detection model associated with the input collection (CollectionId).

", + "SearchFacesResponse$FaceModelVersion": "

Version number of the face detection model associated with the input collection (CollectionId).

", + "TextDetection$DetectedText": "

The word or line of text recognized by Amazon Rekognition.

", + "VideoMetadata$Codec": "

Type of compression used in the analyzed video.

", + "VideoMetadata$Format": "

Format of the analyzed video. Possible values are MP4, MOV and AVI.

" } }, "Sunglasses": { @@ -674,11 +1280,40 @@ "FaceDetail$Sunglasses": "

Indicates whether or not the face is wearing sunglasses, and the confidence level in the determination.

" } }, + "TextDetection": { + "base": "

Information about a word or line of text detected by .

The DetectedText field contains the text that Amazon Rekognition detected in the image.

Every word and line has an identifier (Id). Each word belongs to a line and has a parent identifier (ParentId) that identifies the line of text in which the word appears. The word Id is also an index for the word within a line of words.

For more information, see text-detection.

", + "refs": { + "TextDetectionList$member": null + } + }, + "TextDetectionList": { + "base": null, + "refs": { + "DetectTextResponse$TextDetections": "

An array of text that was detected in the input image.

" + } + }, + "TextTypes": { + "base": null, + "refs": { + "TextDetection$Type": "

The type of text that was detected.

" + } + }, "ThrottlingException": { "base": "

Amazon Rekognition is temporarily unable to process the request. Try your call again.

", "refs": { } }, + "Timestamp": { + "base": null, + "refs": { + "CelebrityRecognition$Timestamp": "

The time, in milliseconds from the start of the video, that the celebrity was recognized.

", + "ContentModerationDetection$Timestamp": "

Time, in milliseconds from the beginning of the video, that the moderation label was detected.

", + "FaceDetection$Timestamp": "

Time, in milliseconds from the start of the video, that the face was detected.

", + "LabelDetection$Timestamp": "

Time, in milliseconds from the start of the video, that the label was detected.

", + "PersonDetection$Timestamp": "

The time, in milliseconds from the start of the video, that the person was tracked.

", + "PersonMatch$Timestamp": "

The time, in milliseconds from the beginning of the video, that the person was matched in the video.

" + } + }, "UInteger": { "base": null, "refs": { @@ -686,7 +1321,17 @@ "AgeRange$High": "

The highest estimated age.

", "CreateCollectionResponse$StatusCode": "

HTTP status code indicating the result of the operation.

", "DeleteCollectionResponse$StatusCode": "

HTTP status code that indicates the result of the operation.

", - "DetectLabelsRequest$MaxLabels": "

Maximum number of labels you want the service to return in the response. The service returns the specified number of highest confidence labels.

" + "DetectLabelsRequest$MaxLabels": "

Maximum number of labels you want the service to return in the response. The service returns the specified number of highest confidence labels.

", + "TextDetection$Id": "

The identifier for the detected text. The identifier is only unique for a single call to DetectText.

", + "TextDetection$ParentId": "

The Parent identifier for the detected text identified by the value of ID. If the type of detected text is LINE, the value of ParentId is Null.

" + } + }, + "ULong": { + "base": null, + "refs": { + "VideoMetadata$DurationMillis": "

Length of the video in milliseconds.

", + "VideoMetadata$FrameHeight": "

Vertical pixel dimension of the video.

", + "VideoMetadata$FrameWidth": "

Horizontal pixel dimension of the video.

" } }, "Url": { @@ -699,8 +1344,47 @@ "base": null, "refs": { "Celebrity$Urls": "

An array of URLs pointing to additional information about the celebrity. If there is no additional information about the celebrity, this list is empty.

", + "CelebrityDetail$Urls": "

An array of URLs pointing to additional celebrity information.

", "GetCelebrityInfoResponse$Urls": "

An array of URLs pointing to additional celebrity information.

" } + }, + "Video": { + "base": "

Video file stored in an Amazon S3 bucket. Amazon Rekognition video start operations such as use Video to specify a video for analysis. The supported file formats are .mp4, .mov and .avi.

", + "refs": { + "StartCelebrityRecognitionRequest$Video": "

The video in which you want to recognize celebrities. The video must be stored in an Amazon S3 bucket.

", + "StartContentModerationRequest$Video": "

The video in which you want to moderate content. The video must be stored in an Amazon S3 bucket.

", + "StartFaceDetectionRequest$Video": "

The video in which you want to detect faces. The video must be stored in an Amazon S3 bucket.

", + "StartFaceSearchRequest$Video": "

The video you want to search. The video must be stored in an Amazon S3 bucket.

", + "StartLabelDetectionRequest$Video": "

The video in which you want to detect labels. The video must be stored in an Amazon S3 bucket.

", + "StartPersonTrackingRequest$Video": "

The video in which you want to detect people. The video must be stored in an Amazon S3 bucket.

" + } + }, + "VideoJobStatus": { + "base": null, + "refs": { + "GetCelebrityRecognitionResponse$JobStatus": "

The current status of the celebrity recognition job.

", + "GetContentModerationResponse$JobStatus": "

The current status of the content moderation job.

", + "GetFaceDetectionResponse$JobStatus": "

The current status of the face detection job.

", + "GetFaceSearchResponse$JobStatus": "

The current status of the face search job.

", + "GetLabelDetectionResponse$JobStatus": "

The current status of the label detection job.

", + "GetPersonTrackingResponse$JobStatus": "

The current status of the person tracking job.

" + } + }, + "VideoMetadata": { + "base": "

Information about a video that Amazon Rekognition analyzed. Videometadata is returned in every page of paginated responses from a Amazon Rekognition video operation.

", + "refs": { + "GetCelebrityRecognitionResponse$VideoMetadata": "

Information about a video that Rekognition Video analyzed. Videometadata is returned in every page of paginated responses from a Rekognition Video operation.

", + "GetContentModerationResponse$VideoMetadata": "

Information about a video that Amazon Rekognition analyzed. Videometadata is returned in every page of paginated responses from GetContentModeration.

", + "GetFaceDetectionResponse$VideoMetadata": "

Information about a video that Rekognition Video analyzed. Videometadata is returned in every page of paginated responses from a Amazon Rekognition video operation.

", + "GetFaceSearchResponse$VideoMetadata": "

Information about a video that Amazon Rekognition analyzed. Videometadata is returned in every page of paginated responses from a Rekognition Video operation.

", + "GetLabelDetectionResponse$VideoMetadata": "

Information about a video that Rekognition Video analyzed. Videometadata is returned in every page of paginated responses from a Amazon Rekognition video operation.

", + "GetPersonTrackingResponse$VideoMetadata": "

Information about a video that Rekognition Video analyzed. Videometadata is returned in every page of paginated responses from a Rekognition Video operation.

" + } + }, + "VideoTooLargeException": { + "base": "

The file size or duration of the supplied media is too large. The maximum file size is 8GB. The maximum duration is 2 hours.

", + "refs": { + } } } } diff --git a/models/apis/rekognition/2016-06-27/examples-1.json b/models/apis/rekognition/2016-06-27/examples-1.json index 20b03280057..039e04d60f3 100644 --- a/models/apis/rekognition/2016-06-27/examples-1.json +++ b/models/apis/rekognition/2016-06-27/examples-1.json @@ -139,27 +139,27 @@ "Confidence": 100, "Landmarks": [ { - "Type": "EYE_LEFT", + "Type": "eyeLeft", "X": 0.6394737362861633, "Y": 0.40819624066352844 }, { - "Type": "EYE_RIGHT", + "Type": "eyeRight", "X": 0.7266660928726196, "Y": 0.41039225459098816 }, { - "Type": "NOSE_LEFT", + "Type": "eyeRight", "X": 0.6912462115287781, "Y": 0.44240960478782654 }, { - "Type": "MOUTH_DOWN", + "Type": "mouthDown", "X": 0.6306198239326477, "Y": 0.46700039505958557 }, { - "Type": "MOUTH_UP", + "Type": "mouthUp", "X": 0.7215608954429626, "Y": 0.47114261984825134 } @@ -262,27 +262,27 @@ "Confidence": 99.9991226196289, "Landmarks": [ { - "Type": "EYE_LEFT", + "Type": "eyeLeft", "X": 0.3976764678955078, "Y": 0.6248345971107483 }, { - "Type": "EYE_RIGHT", + "Type": "eyeRight", "X": 0.4810936450958252, "Y": 0.6317117214202881 }, { - "Type": "NOSE_LEFT", + "Type": "noseLeft", "X": 0.41986238956451416, "Y": 0.7111940383911133 }, { - "Type": "MOUTH_DOWN", + "Type": "mouthDown", "X": 0.40525302290916443, "Y": 0.7497701048851013 }, { - "Type": "MOUTH_UP", + "Type": "mouthUp", "X": 0.4753248989582062, "Y": 0.7558549642562866 } @@ -320,27 +320,27 @@ "Confidence": 99.99950408935547, "Landmarks": [ { - "Type": "EYE_LEFT", + "Type": "eyeLeft", "X": 0.6006892323493958, "Y": 0.290842205286026 }, { - "Type": "EYE_RIGHT", + "Type": "eyeRight", "X": 0.6808141469955444, "Y": 0.29609042406082153 }, { - "Type": "NOSE_LEFT", + "Type": "noseLeft", "X": 0.6395332217216492, "Y": 0.3522595763206482 }, { - "Type": "MOUTH_DOWN", + "Type": "mouthDown", "X": 0.5892083048820496, "Y": 0.38689887523651123 }, { - "Type": "MOUTH_UP", + "Type": "mouthUp", "X": 0.674560010433197, "Y": 0.394125759601593 } diff --git a/models/apis/rekognition/2016-06-27/paginators-1.json b/models/apis/rekognition/2016-06-27/paginators-1.json index 69bb561adc3..2448075c8b0 100644 --- a/models/apis/rekognition/2016-06-27/paginators-1.json +++ b/models/apis/rekognition/2016-06-27/paginators-1.json @@ -1,5 +1,35 @@ { "pagination": { + "GetCelebrityRecognition": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "GetContentModeration": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "GetFaceDetection": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "GetFaceSearch": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "GetLabelDetection": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "GetPersonTracking": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, "ListCollections": { "input_token": "NextToken", "limit_key": "MaxResults", @@ -11,6 +41,11 @@ "limit_key": "MaxResults", "output_token": "NextToken", "result_key": "Faces" + }, + "ListStreamProcessors": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" } } } \ No newline at end of file diff --git a/models/apis/resource-groups/2017-11-27/api-2.json b/models/apis/resource-groups/2017-11-27/api-2.json new file mode 100644 index 00000000000..a0938198f57 --- /dev/null +++ b/models/apis/resource-groups/2017-11-27/api-2.json @@ -0,0 +1,628 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-11-27", + "endpointPrefix":"resource-groups", + "protocol":"rest-json", + "serviceAbbreviation":"Resource Groups", + "serviceFullName":"AWS Resource Groups", + "serviceId":"Resource Groups", + "signatureVersion":"v4", + "signingName":"resource-groups", + "uid":"resource-groups-2017-11-27" + }, + "operations":{ + "CreateGroup":{ + "name":"CreateGroup", + "http":{ + "method":"POST", + "requestUri":"/groups" + }, + "input":{"shape":"CreateGroupInput"}, + "output":{"shape":"CreateGroupOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "DeleteGroup":{ + "name":"DeleteGroup", + "http":{ + "method":"DELETE", + "requestUri":"/groups/{GroupName}" + }, + "input":{"shape":"DeleteGroupInput"}, + "output":{"shape":"DeleteGroupOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "GetGroup":{ + "name":"GetGroup", + "http":{ + "method":"GET", + "requestUri":"/groups/{GroupName}" + }, + "input":{"shape":"GetGroupInput"}, + "output":{"shape":"GetGroupOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "GetGroupQuery":{ + "name":"GetGroupQuery", + "http":{ + "method":"GET", + "requestUri":"/groups/{GroupName}/query" + }, + "input":{"shape":"GetGroupQueryInput"}, + "output":{"shape":"GetGroupQueryOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "GetTags":{ + "name":"GetTags", + "http":{ + "method":"GET", + "requestUri":"/resources/{Arn}/tags" + }, + "input":{"shape":"GetTagsInput"}, + "output":{"shape":"GetTagsOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "ListGroupResources":{ + "name":"ListGroupResources", + "http":{ + "method":"GET", + "requestUri":"/groups/{GroupName}/resource-identifiers" + }, + "input":{"shape":"ListGroupResourcesInput"}, + "output":{"shape":"ListGroupResourcesOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "ListGroups":{ + "name":"ListGroups", + "http":{ + "method":"GET", + "requestUri":"/groups" + }, + "input":{"shape":"ListGroupsInput"}, + "output":{"shape":"ListGroupsOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "SearchResources":{ + "name":"SearchResources", + "http":{ + "method":"POST", + "requestUri":"/resources/search" + }, + "input":{"shape":"SearchResourcesInput"}, + "output":{"shape":"SearchResourcesOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "Tag":{ + "name":"Tag", + "http":{ + "method":"PUT", + "requestUri":"/resources/{Arn}/tags" + }, + "input":{"shape":"TagInput"}, + "output":{"shape":"TagOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "Untag":{ + "name":"Untag", + "http":{ + "method":"PATCH", + "requestUri":"/resources/{Arn}/tags" + }, + "input":{"shape":"UntagInput"}, + "output":{"shape":"UntagOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "UpdateGroup":{ + "name":"UpdateGroup", + "http":{ + "method":"PUT", + "requestUri":"/groups/{GroupName}" + }, + "input":{"shape":"UpdateGroupInput"}, + "output":{"shape":"UpdateGroupOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + }, + "UpdateGroupQuery":{ + "name":"UpdateGroupQuery", + "http":{ + "method":"PUT", + "requestUri":"/groups/{GroupName}/query" + }, + "input":{"shape":"UpdateGroupQueryInput"}, + "output":{"shape":"UpdateGroupQueryOutput"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"MethodNotAllowedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerErrorException"} + ] + } + }, + "shapes":{ + "BadRequestException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "CreateGroupInput":{ + "type":"structure", + "required":[ + "Name", + "ResourceQuery" + ], + "members":{ + "Name":{"shape":"GroupName"}, + "Description":{"shape":"GroupDescription"}, + "ResourceQuery":{"shape":"ResourceQuery"}, + "Tags":{"shape":"Tags"} + } + }, + "CreateGroupOutput":{ + "type":"structure", + "members":{ + "Group":{"shape":"Group"}, + "ResourceQuery":{"shape":"ResourceQuery"}, + "Tags":{"shape":"Tags"} + } + }, + "DeleteGroupInput":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "GroupName":{ + "shape":"GroupName", + "location":"uri", + "locationName":"GroupName" + } + } + }, + "DeleteGroupOutput":{ + "type":"structure", + "members":{ + "Group":{"shape":"Group"} + } + }, + "ErrorMessage":{ + "type":"string", + "max":1024, + "min":1 + }, + "ForbiddenException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "GetGroupInput":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "GroupName":{ + "shape":"GroupName", + "location":"uri", + "locationName":"GroupName" + } + } + }, + "GetGroupOutput":{ + "type":"structure", + "members":{ + "Group":{"shape":"Group"} + } + }, + "GetGroupQueryInput":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "GroupName":{ + "shape":"GroupName", + "location":"uri", + "locationName":"GroupName" + } + } + }, + "GetGroupQueryOutput":{ + "type":"structure", + "members":{ + "GroupQuery":{"shape":"GroupQuery"} + } + }, + "GetTagsInput":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"GroupArn", + "location":"uri", + "locationName":"Arn" + } + } + }, + "GetTagsOutput":{ + "type":"structure", + "members":{ + "Arn":{"shape":"GroupArn"}, + "Tags":{"shape":"Tags"} + } + }, + "Group":{ + "type":"structure", + "required":[ + "GroupArn", + "Name" + ], + "members":{ + "GroupArn":{"shape":"GroupArn"}, + "Name":{"shape":"GroupName"}, + "Description":{"shape":"GroupDescription"} + } + }, + "GroupArn":{ + "type":"string", + "pattern":"arn:aws:resource-groups:[a-z]{2}-[a-z]+-\\d{1}:[0-9]{12}:group/[a-zA-Z0-9_\\.-]{1,128}" + }, + "GroupDescription":{ + "type":"string", + "max":512, + "pattern":"[\\sa-zA-Z0-9_\\.-]+" + }, + "GroupList":{ + "type":"list", + "member":{"shape":"Group"} + }, + "GroupName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9_\\.-]+" + }, + "GroupQuery":{ + "type":"structure", + "required":[ + "GroupName", + "ResourceQuery" + ], + "members":{ + "GroupName":{"shape":"GroupName"}, + "ResourceQuery":{"shape":"ResourceQuery"} + } + }, + "InternalServerErrorException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":500}, + "exception":true + }, + "ListGroupResourcesInput":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "GroupName":{ + "shape":"GroupName", + "location":"uri", + "locationName":"GroupName" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListGroupResourcesOutput":{ + "type":"structure", + "members":{ + "ResourceIdentifiers":{"shape":"ResourceIdentifierList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListGroupsInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListGroupsOutput":{ + "type":"structure", + "members":{ + "Groups":{"shape":"GroupList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "MaxResults":{ + "type":"integer", + "max":50, + "min":1 + }, + "MethodNotAllowedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":405}, + "exception":true + }, + "NextToken":{"type":"string"}, + "NotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "Query":{ + "type":"string", + "max":2048 + }, + "QueryType":{ + "type":"string", + "enum":["TAG_FILTERS_1_0"] + }, + "ResourceArn":{ + "type":"string", + "pattern":"arn:aws:[a-z0-9]*:([a-z]{2}-[a-z]+-\\d{1})?:([0-9]{12})?:.+" + }, + "ResourceIdentifier":{ + "type":"structure", + "members":{ + "ResourceArn":{"shape":"ResourceArn"}, + "ResourceType":{"shape":"ResourceType"} + } + }, + "ResourceIdentifierList":{ + "type":"list", + "member":{"shape":"ResourceIdentifier"} + }, + "ResourceQuery":{ + "type":"structure", + "required":[ + "Type", + "Query" + ], + "members":{ + "Type":{"shape":"QueryType"}, + "Query":{"shape":"Query"} + } + }, + "ResourceType":{ + "type":"string", + "pattern":"AWS::[a-zA-Z0-9]+::\\w+" + }, + "SearchResourcesInput":{ + "type":"structure", + "required":["ResourceQuery"], + "members":{ + "ResourceQuery":{"shape":"ResourceQuery"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "SearchResourcesOutput":{ + "type":"structure", + "members":{ + "ResourceIdentifiers":{"shape":"ResourceIdentifierList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "TagInput":{ + "type":"structure", + "required":[ + "Arn", + "Tags" + ], + "members":{ + "Arn":{ + "shape":"GroupArn", + "location":"uri", + "locationName":"Arn" + }, + "Tags":{"shape":"Tags"} + } + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagOutput":{ + "type":"structure", + "members":{ + "Arn":{"shape":"GroupArn"}, + "Tags":{"shape":"Tags"} + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "Tags":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, + "TooManyRequestsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "UnauthorizedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":401}, + "exception":true + }, + "UntagInput":{ + "type":"structure", + "required":[ + "Arn", + "Keys" + ], + "members":{ + "Arn":{ + "shape":"GroupArn", + "location":"uri", + "locationName":"Arn" + }, + "Keys":{"shape":"TagKeyList"} + } + }, + "UntagOutput":{ + "type":"structure", + "members":{ + "Arn":{"shape":"GroupArn"}, + "Keys":{"shape":"TagKeyList"} + } + }, + "UpdateGroupInput":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "GroupName":{ + "shape":"GroupName", + "location":"uri", + "locationName":"GroupName" + }, + "Description":{"shape":"GroupDescription"} + } + }, + "UpdateGroupOutput":{ + "type":"structure", + "members":{ + "Group":{"shape":"Group"} + } + }, + "UpdateGroupQueryInput":{ + "type":"structure", + "required":[ + "GroupName", + "ResourceQuery" + ], + "members":{ + "GroupName":{ + "shape":"GroupName", + "location":"uri", + "locationName":"GroupName" + }, + "ResourceQuery":{"shape":"ResourceQuery"} + } + }, + "UpdateGroupQueryOutput":{ + "type":"structure", + "members":{ + "GroupQuery":{"shape":"GroupQuery"} + } + } + } +} diff --git a/models/apis/resource-groups/2017-11-27/docs-2.json b/models/apis/resource-groups/2017-11-27/docs-2.json new file mode 100644 index 00000000000..79084a96d3a --- /dev/null +++ b/models/apis/resource-groups/2017-11-27/docs-2.json @@ -0,0 +1,340 @@ +{ + "version": "2.0", + "service": "AWS Resource Groups

AWS Resource Groups lets you organize AWS resources such as Amazon EC2 instances, Amazon Relational Database Service databases, and Amazon S3 buckets into groups using criteria that you define as tags. A resource group is a collection of resources that match the resource types specified in a query, and share one or more tags or portions of tags. You can create a group of resources based on their roles in your cloud infrastructure, lifecycle stages, regions, application layers, or virtually any criteria. Resource groups enable you to automate management tasks, such as those in AWS Systems Manager Automation documents, on tag-related resources in AWS Systems Manager. Groups of tagged resources also let you quickly view a custom console in AWS Systems Manager that shows AWS Config compliance and other monitoring data about member resources.

To create a resource group, build a resource query, and specify tags that identify the criteria that members of the group have in common. Tags are key-value pairs.

For more information about Resource Groups, see the AWS Resource Groups User Guide.

AWS Resource Groups uses a REST-compliant API that you can use to perform the following types of operations.

  • Create, Read, Update, and Delete (CRUD) operations on resource groups and resource query entities

  • Applying, editing, and removing tags from resource groups

  • Resolving resource group member ARNs so they can be returned as search results

  • Getting data about resources that are members of a group

  • Searching AWS resources based on a resource query

", + "operations": { + "CreateGroup": "

Creates a group with a specified name, description, and resource query.

", + "DeleteGroup": "

Deletes a specified resource group. Deleting a resource group does not delete resources that are members of the group; it only deletes the group structure.

", + "GetGroup": "

Returns information about a specified resource group.

", + "GetGroupQuery": "

Returns the resource query associated with the specified resource group.

", + "GetTags": "

Returns a list of tags that are associated with a resource, specified by an ARN.

", + "ListGroupResources": "

Returns a list of ARNs of resources that are members of a specified resource group.

", + "ListGroups": "

Returns a list of existing resource groups in your account.

", + "SearchResources": "

Returns a list of AWS resource identifiers that matches a specified query. The query uses the same format as a resource query in a CreateGroup or UpdateGroupQuery operation.

", + "Tag": "

Adds specified tags to a resource with the specified ARN. Existing tags on a resource are not changed if they are not specified in the request parameters.

", + "Untag": "

Deletes specified tags from a specified resource.

", + "UpdateGroup": "

Updates an existing group with a new or changed description. You cannot update the name of a resource group.

", + "UpdateGroupQuery": "

Updates the resource query of a group.

" + }, + "shapes": { + "BadRequestException": { + "base": "

The request does not comply with validation rules that are defined for the request parameters.

", + "refs": { + } + }, + "CreateGroupInput": { + "base": null, + "refs": { + } + }, + "CreateGroupOutput": { + "base": null, + "refs": { + } + }, + "DeleteGroupInput": { + "base": null, + "refs": { + } + }, + "DeleteGroupOutput": { + "base": null, + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "BadRequestException$Message": null, + "ForbiddenException$Message": null, + "InternalServerErrorException$Message": null, + "MethodNotAllowedException$Message": null, + "NotFoundException$Message": null, + "TooManyRequestsException$Message": null, + "UnauthorizedException$Message": null + } + }, + "ForbiddenException": { + "base": "

The caller is not authorized to make the request.

", + "refs": { + } + }, + "GetGroupInput": { + "base": null, + "refs": { + } + }, + "GetGroupOutput": { + "base": null, + "refs": { + } + }, + "GetGroupQueryInput": { + "base": null, + "refs": { + } + }, + "GetGroupQueryOutput": { + "base": null, + "refs": { + } + }, + "GetTagsInput": { + "base": null, + "refs": { + } + }, + "GetTagsOutput": { + "base": null, + "refs": { + } + }, + "Group": { + "base": "

A resource group.

", + "refs": { + "CreateGroupOutput$Group": "

A full description of the resource group after it is created.

", + "DeleteGroupOutput$Group": "

A full description of the deleted resource group.

", + "GetGroupOutput$Group": "

A full description of the resource group.

", + "GroupList$member": null, + "UpdateGroupOutput$Group": "

The full description of the resource group after it has been updated.

" + } + }, + "GroupArn": { + "base": null, + "refs": { + "GetTagsInput$Arn": "

The ARN of the resource for which you want a list of tags. The resource must exist within the account you are using.

", + "GetTagsOutput$Arn": "

The ARN of the tagged resource.

", + "Group$GroupArn": "

The ARN of a resource group.

", + "TagInput$Arn": "

The ARN of the resource to which to add tags.

", + "TagOutput$Arn": "

The ARN of the tagged resource.

", + "UntagInput$Arn": "

The ARN of the resource from which to remove tags.

", + "UntagOutput$Arn": "

The ARN of the resource from which tags have been removed.

" + } + }, + "GroupDescription": { + "base": null, + "refs": { + "CreateGroupInput$Description": "

The description of the resource group. Descriptions can have a maximum of 511 characters, including letters, numbers, hyphens, underscores, punctuation, and spaces.

", + "Group$Description": "

The description of the resource group.

", + "UpdateGroupInput$Description": "

The description of the resource group. Descriptions can have a maximum of 511 characters, including letters, numbers, hyphens, underscores, punctuation, and spaces.

" + } + }, + "GroupList": { + "base": null, + "refs": { + "ListGroupsOutput$Groups": "

A list of resource groups.

" + } + }, + "GroupName": { + "base": null, + "refs": { + "CreateGroupInput$Name": "

The name of the group, which is the identifier of the group in other operations. A resource group name cannot be updated after it is created. A resource group name can have a maximum of 127 characters, including letters, numbers, hyphens, dots, and underscores. The name cannot start with AWS or aws; these are reserved. A resource group name must be unique within your account.

", + "DeleteGroupInput$GroupName": "

The name of the resource group to delete.

", + "GetGroupInput$GroupName": "

The name of the resource group.

", + "GetGroupQueryInput$GroupName": "

The name of the resource group.

", + "Group$Name": "

The name of a resource group.

", + "GroupQuery$GroupName": "

The name of a resource group that is associated with a specific resource query.

", + "ListGroupResourcesInput$GroupName": "

The name of the resource group.

", + "UpdateGroupInput$GroupName": "

The name of the resource group for which you want to update its description.

", + "UpdateGroupQueryInput$GroupName": "

The name of the resource group for which you want to edit the query.

" + } + }, + "GroupQuery": { + "base": "

The underlying resource query of a resource group. Resources that match query results are part of the group.

", + "refs": { + "GetGroupQueryOutput$GroupQuery": "

The resource query associated with the specified group.

", + "UpdateGroupQueryOutput$GroupQuery": "

The resource query associated with the resource group after the update.

" + } + }, + "InternalServerErrorException": { + "base": "

An internal error occurred while processing the request.

", + "refs": { + } + }, + "ListGroupResourcesInput": { + "base": null, + "refs": { + } + }, + "ListGroupResourcesOutput": { + "base": null, + "refs": { + } + }, + "ListGroupsInput": { + "base": null, + "refs": { + } + }, + "ListGroupsOutput": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListGroupResourcesInput$MaxResults": "

The maximum number of group member ARNs that are returned in a single call by ListGroupResources, in paginated output. By default, this number is 50.

", + "ListGroupsInput$MaxResults": "

The maximum number of resource group results that are returned by ListGroups in paginated output. By default, this number is 50.

", + "SearchResourcesInput$MaxResults": "

The maximum number of group member ARNs returned by SearchResources in paginated output. By default, this number is 50.

" + } + }, + "MethodNotAllowedException": { + "base": "

The request uses an HTTP method which is not allowed for the specified resource.

", + "refs": { + } + }, + "NextToken": { + "base": null, + "refs": { + "ListGroupResourcesInput$NextToken": "

The NextToken value that is returned in a paginated ListGroupResources request. To get the next page of results, run the call again, add the NextToken parameter, and specify the NextToken value.

", + "ListGroupResourcesOutput$NextToken": "

The NextToken value to include in a subsequent ListGroupResources request, to get more results.

", + "ListGroupsInput$NextToken": "

The NextToken value that is returned in a paginated ListGroups request. To get the next page of results, run the call again, add the NextToken parameter, and specify the NextToken value.

", + "ListGroupsOutput$NextToken": "

The NextToken value to include in a subsequent ListGroups request, to get more results.

", + "SearchResourcesInput$NextToken": "

The NextToken value that is returned in a paginated SearchResources request. To get the next page of results, run the call again, add the NextToken parameter, and specify the NextToken value.

", + "SearchResourcesOutput$NextToken": "

The NextToken value to include in a subsequent SearchResources request, to get more results.

" + } + }, + "NotFoundException": { + "base": "

One or more resources specified in the request do not exist.

", + "refs": { + } + }, + "Query": { + "base": null, + "refs": { + "ResourceQuery$Query": "

The query that defines a group or a search.

" + } + }, + "QueryType": { + "base": null, + "refs": { + "ResourceQuery$Type": "

The type of the query. The valid value in this release is TAG_FILTERS_1_0.

TAG_FILTERS_1_0: A JSON syntax that lets you specify a collection of simple tag filters for resource types and tags, as supported by the AWS Tagging API GetResources operation. When more than one element is present, only resources that match all filters are part of the result. If a filter specifies more than one value for a key, a resource matches the filter if its tag value matches any of the specified values.

" + } + }, + "ResourceArn": { + "base": null, + "refs": { + "ResourceIdentifier$ResourceArn": "

The ARN of a resource.

" + } + }, + "ResourceIdentifier": { + "base": "

The ARN of a resource, and its resource type.

", + "refs": { + "ResourceIdentifierList$member": null + } + }, + "ResourceIdentifierList": { + "base": null, + "refs": { + "ListGroupResourcesOutput$ResourceIdentifiers": "

The ARNs and resource types of resources that are members of the group that you specified.

", + "SearchResourcesOutput$ResourceIdentifiers": "

The ARNs and resource types of resources that are members of the group that you specified.

" + } + }, + "ResourceQuery": { + "base": "

The query that is used to define a resource group or a search for resources.

", + "refs": { + "CreateGroupInput$ResourceQuery": "

The resource query that determines which AWS resources are members of this group.

", + "CreateGroupOutput$ResourceQuery": "

The resource query associated with the group.

", + "GroupQuery$ResourceQuery": "

The resource query which determines which AWS resources are members of the associated resource group.

", + "SearchResourcesInput$ResourceQuery": "

The search query, using the same formats that are supported for resource group definition.

", + "UpdateGroupQueryInput$ResourceQuery": "

The resource query that determines which AWS resources are members of the resource group.

" + } + }, + "ResourceType": { + "base": null, + "refs": { + "ResourceIdentifier$ResourceType": "

The resource type of a resource, such as AWS::EC2::Instance.

" + } + }, + "SearchResourcesInput": { + "base": null, + "refs": { + } + }, + "SearchResourcesOutput": { + "base": null, + "refs": { + } + }, + "TagInput": { + "base": null, + "refs": { + } + }, + "TagKey": { + "base": null, + "refs": { + "TagKeyList$member": null, + "Tags$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagInput$Keys": "

The keys of the tags to be removed.

", + "UntagOutput$Keys": "

The keys of tags that have been removed.

" + } + }, + "TagOutput": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tags$value": null + } + }, + "Tags": { + "base": null, + "refs": { + "CreateGroupInput$Tags": "

The tags to add to the group. A tag is a string-to-string map of key-value pairs. Tag keys can have a maximum character length of 127 characters, and tag values can have a maximum length of 255 characters.

", + "CreateGroupOutput$Tags": "

The tags associated with the group.

", + "GetTagsOutput$Tags": "

The tags associated with the specified resource.

", + "TagInput$Tags": "

The tags to add to the specified resource. A tag is a string-to-string map of key-value pairs. Tag keys can have a maximum character length of 127 characters, and tag values can have a maximum length of 255 characters.

", + "TagOutput$Tags": "

The tags that have been added to the specified resource.

" + } + }, + "TooManyRequestsException": { + "base": "

The caller has exceeded throttling limits.

", + "refs": { + } + }, + "UnauthorizedException": { + "base": "

The request has not been applied because it lacks valid authentication credentials for the target resource.

", + "refs": { + } + }, + "UntagInput": { + "base": null, + "refs": { + } + }, + "UntagOutput": { + "base": null, + "refs": { + } + }, + "UpdateGroupInput": { + "base": null, + "refs": { + } + }, + "UpdateGroupOutput": { + "base": null, + "refs": { + } + }, + "UpdateGroupQueryInput": { + "base": null, + "refs": { + } + }, + "UpdateGroupQueryOutput": { + "base": null, + "refs": { + } + } + } +} diff --git a/models/apis/resource-groups/2017-11-27/examples-1.json b/models/apis/resource-groups/2017-11-27/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/resource-groups/2017-11-27/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/resource-groups/2017-11-27/paginators-1.json b/models/apis/resource-groups/2017-11-27/paginators-1.json new file mode 100644 index 00000000000..809603d71ab --- /dev/null +++ b/models/apis/resource-groups/2017-11-27/paginators-1.json @@ -0,0 +1,19 @@ +{ + "pagination": { + "ListGroupResources": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListGroups": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchResources": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/route53/2013-04-01/api-2.json b/models/apis/route53/2013-04-01/api-2.json index 21c81e86de3..35e79b002e5 100644 --- a/models/apis/route53/2013-04-01/api-2.json +++ b/models/apis/route53/2013-04-01/api-2.json @@ -117,6 +117,28 @@ {"shape":"DelegationSetNotReusable"} ] }, + "CreateQueryLoggingConfig":{ + "name":"CreateQueryLoggingConfig", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/queryloggingconfig", + "responseCode":201 + }, + "input":{ + "shape":"CreateQueryLoggingConfigRequest", + "locationName":"CreateQueryLoggingConfigRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"} + }, + "output":{"shape":"CreateQueryLoggingConfigResponse"}, + "errors":[ + {"shape":"ConcurrentModification"}, + {"shape":"NoSuchHostedZone"}, + {"shape":"NoSuchCloudWatchLogsLogGroup"}, + {"shape":"InvalidInput"}, + {"shape":"QueryLoggingConfigAlreadyExists"}, + {"shape":"InsufficientCloudWatchLogsResourcePolicy"} + ] + }, "CreateReusableDelegationSet":{ "name":"CreateReusableDelegationSet", "http":{ @@ -251,6 +273,20 @@ {"shape":"InvalidDomainName"} ] }, + "DeleteQueryLoggingConfig":{ + "name":"DeleteQueryLoggingConfig", + "http":{ + "method":"DELETE", + "requestUri":"/2013-04-01/queryloggingconfig/{Id}" + }, + "input":{"shape":"DeleteQueryLoggingConfigRequest"}, + "output":{"shape":"DeleteQueryLoggingConfigResponse"}, + "errors":[ + {"shape":"ConcurrentModification"}, + {"shape":"NoSuchQueryLoggingConfig"}, + {"shape":"InvalidInput"} + ] + }, "DeleteReusableDelegationSet":{ "name":"DeleteReusableDelegationSet", "http":{ @@ -335,6 +371,18 @@ {"shape":"InvalidInput"} ] }, + "GetAccountLimit":{ + "name":"GetAccountLimit", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/accountlimit/{Type}" + }, + "input":{"shape":"GetAccountLimitRequest"}, + "output":{"shape":"GetAccountLimitResponse"}, + "errors":[ + {"shape":"InvalidInput"} + ] + }, "GetChange":{ "name":"GetChange", "http":{ @@ -444,6 +492,33 @@ {"shape":"InvalidInput"} ] }, + "GetHostedZoneLimit":{ + "name":"GetHostedZoneLimit", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/hostedzonelimit/{Id}/{Type}" + }, + "input":{"shape":"GetHostedZoneLimitRequest"}, + "output":{"shape":"GetHostedZoneLimitResponse"}, + "errors":[ + {"shape":"NoSuchHostedZone"}, + {"shape":"InvalidInput"}, + {"shape":"HostedZoneNotPrivate"} + ] + }, + "GetQueryLoggingConfig":{ + "name":"GetQueryLoggingConfig", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/queryloggingconfig/{Id}" + }, + "input":{"shape":"GetQueryLoggingConfigRequest"}, + "output":{"shape":"GetQueryLoggingConfigResponse"}, + "errors":[ + {"shape":"NoSuchQueryLoggingConfig"}, + {"shape":"InvalidInput"} + ] + }, "GetReusableDelegationSet":{ "name":"GetReusableDelegationSet", "http":{ @@ -458,6 +533,19 @@ {"shape":"InvalidInput"} ] }, + "GetReusableDelegationSetLimit":{ + "name":"GetReusableDelegationSetLimit", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/reusabledelegationsetlimit/{Id}/{Type}" + }, + "input":{"shape":"GetReusableDelegationSetLimitRequest"}, + "output":{"shape":"GetReusableDelegationSetLimitResponse"}, + "errors":[ + {"shape":"InvalidInput"}, + {"shape":"NoSuchDelegationSet"} + ] + }, "GetTrafficPolicy":{ "name":"GetTrafficPolicy", "http":{ @@ -545,6 +633,20 @@ {"shape":"InvalidDomainName"} ] }, + "ListQueryLoggingConfigs":{ + "name":"ListQueryLoggingConfigs", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/queryloggingconfig" + }, + "input":{"shape":"ListQueryLoggingConfigsRequest"}, + "output":{"shape":"ListQueryLoggingConfigsResponse"}, + "errors":[ + {"shape":"InvalidInput"}, + {"shape":"InvalidPaginationToken"}, + {"shape":"NoSuchHostedZone"} + ] + }, "ListResourceRecordSets":{ "name":"ListResourceRecordSets", "http":{ @@ -774,6 +876,27 @@ } }, "shapes":{ + "AccountLimit":{ + "type":"structure", + "required":[ + "Type", + "Value" + ], + "members":{ + "Type":{"shape":"AccountLimitType"}, + "Value":{"shape":"LimitValue"} + } + }, + "AccountLimitType":{ + "type":"string", + "enum":[ + "MAX_HEALTH_CHECKS_BY_OWNER", + "MAX_HOSTED_ZONES_BY_OWNER", + "MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER", + "MAX_REUSABLE_DELEGATION_SETS_BY_OWNER", + "MAX_TRAFFIC_POLICIES_BY_OWNER" + ] + }, "AlarmIdentifier":{ "type":"structure", "required":[ @@ -966,6 +1089,7 @@ "Dimensions":{"shape":"DimensionList"} } }, + "CloudWatchLogsLogGroupArn":{"type":"string"}, "CloudWatchRegion":{ "type":"string", "enum":[ @@ -1079,6 +1203,32 @@ } } }, + "CreateQueryLoggingConfigRequest":{ + "type":"structure", + "required":[ + "HostedZoneId", + "CloudWatchLogsLogGroupArn" + ], + "members":{ + "HostedZoneId":{"shape":"ResourceId"}, + "CloudWatchLogsLogGroupArn":{"shape":"CloudWatchLogsLogGroupArn"} + } + }, + "CreateQueryLoggingConfigResponse":{ + "type":"structure", + "required":[ + "QueryLoggingConfig", + "Location" + ], + "members":{ + "QueryLoggingConfig":{"shape":"QueryLoggingConfig"}, + "Location":{ + "shape":"ResourceURI", + "location":"header", + "locationName":"Location" + } + } + }, "CreateReusableDelegationSetRequest":{ "type":"structure", "required":["CallerReference"], @@ -1316,6 +1466,22 @@ "ChangeInfo":{"shape":"ChangeInfo"} } }, + "DeleteQueryLoggingConfigRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"QueryLoggingConfigId", + "location":"uri", + "locationName":"Id" + } + } + }, + "DeleteQueryLoggingConfigResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteReusableDelegationSetRequest":{ "type":"structure", "required":["Id"], @@ -1518,6 +1684,28 @@ "max":64, "min":1 }, + "GetAccountLimitRequest":{ + "type":"structure", + "required":["Type"], + "members":{ + "Type":{ + "shape":"AccountLimitType", + "location":"uri", + "locationName":"Type" + } + } + }, + "GetAccountLimitResponse":{ + "type":"structure", + "required":[ + "Limit", + "Count" + ], + "members":{ + "Limit":{"shape":"AccountLimit"}, + "Count":{"shape":"UsageCount"} + } + }, "GetChangeRequest":{ "type":"structure", "required":["Id"], @@ -1653,6 +1841,36 @@ "HostedZoneCount":{"shape":"HostedZoneCount"} } }, + "GetHostedZoneLimitRequest":{ + "type":"structure", + "required":[ + "Type", + "HostedZoneId" + ], + "members":{ + "Type":{ + "shape":"HostedZoneLimitType", + "location":"uri", + "locationName":"Type" + }, + "HostedZoneId":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetHostedZoneLimitResponse":{ + "type":"structure", + "required":[ + "Limit", + "Count" + ], + "members":{ + "Limit":{"shape":"HostedZoneLimit"}, + "Count":{"shape":"UsageCount"} + } + }, "GetHostedZoneRequest":{ "type":"structure", "required":["Id"], @@ -1673,6 +1891,54 @@ "VPCs":{"shape":"VPCs"} } }, + "GetQueryLoggingConfigRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"QueryLoggingConfigId", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetQueryLoggingConfigResponse":{ + "type":"structure", + "required":["QueryLoggingConfig"], + "members":{ + "QueryLoggingConfig":{"shape":"QueryLoggingConfig"} + } + }, + "GetReusableDelegationSetLimitRequest":{ + "type":"structure", + "required":[ + "Type", + "DelegationSetId" + ], + "members":{ + "Type":{ + "shape":"ReusableDelegationSetLimitType", + "location":"uri", + "locationName":"Type" + }, + "DelegationSetId":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetReusableDelegationSetLimitResponse":{ + "type":"structure", + "required":[ + "Limit", + "Count" + ], + "members":{ + "Limit":{"shape":"ReusableDelegationSetLimit"}, + "Count":{"shape":"UsageCount"} + } + }, "GetReusableDelegationSetRequest":{ "type":"structure", "required":["Id"], @@ -1758,6 +2024,7 @@ "members":{ "Id":{"shape":"HealthCheckId"}, "CallerReference":{"shape":"HealthCheckNonce"}, + "LinkedService":{"shape":"LinkedService"}, "HealthCheckConfig":{"shape":"HealthCheckConfig"}, "HealthCheckVersion":{"shape":"HealthCheckVersion"}, "CloudWatchAlarmConfiguration":{"shape":"CloudWatchAlarmConfiguration"} @@ -1803,6 +2070,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, + "deprecated":true, "error":{"httpStatusCode":400}, "exception":true }, @@ -1898,7 +2166,8 @@ "Name":{"shape":"DNSName"}, "CallerReference":{"shape":"Nonce"}, "Config":{"shape":"HostedZoneConfig"}, - "ResourceRecordSetCount":{"shape":"HostedZoneRRSetCount"} + "ResourceRecordSetCount":{"shape":"HostedZoneRRSetCount"}, + "LinkedService":{"shape":"LinkedService"} } }, "HostedZoneAlreadyExists":{ @@ -1917,6 +2186,24 @@ } }, "HostedZoneCount":{"type":"long"}, + "HostedZoneLimit":{ + "type":"structure", + "required":[ + "Type", + "Value" + ], + "members":{ + "Type":{"shape":"HostedZoneLimitType"}, + "Value":{"shape":"LimitValue"} + } + }, + "HostedZoneLimitType":{ + "type":"string", + "enum":[ + "MAX_RRSETS_BY_ZONE", + "MAX_VPCS_ASSOCIATED_BY_ZONE" + ] + }, "HostedZoneNotEmpty":{ "type":"structure", "members":{ @@ -1932,6 +2219,13 @@ }, "exception":true }, + "HostedZoneNotPrivate":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "HostedZoneRRSetCount":{"type":"long"}, "HostedZones":{ "type":"list", @@ -1954,6 +2248,14 @@ "error":{"httpStatusCode":400}, "exception":true }, + "InsufficientCloudWatchLogsResourcePolicy":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, "InsufficientDataHealthStatus":{ "type":"string", "enum":[ @@ -1972,7 +2274,8 @@ "InvalidChangeBatch":{ "type":"structure", "members":{ - "messages":{"shape":"ErrorMessages"} + "messages":{"shape":"ErrorMessages"}, + "message":{"shape":"ErrorMessage"} }, "exception":true }, @@ -2026,6 +2329,10 @@ "error":{"httpStatusCode":400}, "exception":true }, + "LimitValue":{ + "type":"long", + "min":1 + }, "LimitsExceeded":{ "type":"structure", "members":{ @@ -2033,6 +2340,13 @@ }, "exception":true }, + "LinkedService":{ + "type":"structure", + "members":{ + "ServicePrincipal":{"shape":"ServicePrincipal"}, + "Description":{"shape":"ResourceDescription"} + } + }, "ListGeoLocationsRequest":{ "type":"structure", "members":{ @@ -2178,6 +2492,34 @@ "MaxItems":{"shape":"PageMaxItems"} } }, + "ListQueryLoggingConfigsRequest":{ + "type":"structure", + "members":{ + "HostedZoneId":{ + "shape":"ResourceId", + "location":"querystring", + "locationName":"hostedzoneid" + }, + "NextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nexttoken" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxresults" + } + } + }, + "ListQueryLoggingConfigsResponse":{ + "type":"structure", + "required":["QueryLoggingConfigs"], + "members":{ + "QueryLoggingConfigs":{"shape":"QueryLoggingConfigs"}, + "NextToken":{"shape":"PaginationToken"} + } + }, "ListResourceRecordSetsRequest":{ "type":"structure", "required":["HostedZoneId"], @@ -2569,6 +2911,14 @@ "error":{"httpStatusCode":404}, "exception":true }, + "NoSuchCloudWatchLogsLogGroup":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, "NoSuchDelegationSet":{ "type":"structure", "members":{ @@ -2600,6 +2950,14 @@ "error":{"httpStatusCode":404}, "exception":true }, + "NoSuchQueryLoggingConfig":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, "NoSuchTrafficPolicy":{ "type":"structure", "members":{ @@ -2664,6 +3022,39 @@ "error":{"httpStatusCode":400}, "exception":true }, + "QueryLoggingConfig":{ + "type":"structure", + "required":[ + "Id", + "HostedZoneId", + "CloudWatchLogsLogGroupArn" + ], + "members":{ + "Id":{"shape":"QueryLoggingConfigId"}, + "HostedZoneId":{"shape":"ResourceId"}, + "CloudWatchLogsLogGroupArn":{"shape":"CloudWatchLogsLogGroupArn"} + } + }, + "QueryLoggingConfigAlreadyExists":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "QueryLoggingConfigId":{ + "type":"string", + "max":36, + "min":1 + }, + "QueryLoggingConfigs":{ + "type":"list", + "member":{ + "shape":"QueryLoggingConfig", + "locationName":"QueryLoggingConfig" + } + }, "RData":{ "type":"string", "max":4000 @@ -2681,7 +3072,8 @@ "PTR", "SRV", "SPF", - "AAAA" + "AAAA", + "CAA" ] }, "RecordData":{ @@ -2701,6 +3093,25 @@ "max":30, "min":10 }, + "ResettableElementName":{ + "type":"string", + "enum":[ + "FullyQualifiedDomainName", + "Regions", + "ResourcePath", + "ChildHealthChecks" + ], + "max":64, + "min":1 + }, + "ResettableElementNameList":{ + "type":"list", + "member":{ + "shape":"ResettableElementName", + "locationName":"ResettableElementName" + }, + "max":64 + }, "ResourceDescription":{ "type":"string", "max":256 @@ -2816,10 +3227,29 @@ "type":"string", "max":1024 }, + "ReusableDelegationSetLimit":{ + "type":"structure", + "required":[ + "Type", + "Value" + ], + "members":{ + "Type":{"shape":"ReusableDelegationSetLimitType"}, + "Value":{"shape":"LimitValue"} + } + }, + "ReusableDelegationSetLimitType":{ + "type":"string", + "enum":["MAX_ZONES_BY_REUSABLE_DELEGATION_SET"] + }, "SearchString":{ "type":"string", "max":255 }, + "ServicePrincipal":{ + "type":"string", + "max":128 + }, "Statistic":{ "type":"string", "enum":[ @@ -3170,7 +3600,8 @@ "EnableSNI":{"shape":"EnableSNI"}, "Regions":{"shape":"HealthCheckRegionList"}, "AlarmIdentifier":{"shape":"AlarmIdentifier"}, - "InsufficientDataHealthStatus":{"shape":"InsufficientDataHealthStatus"} + "InsufficientDataHealthStatus":{"shape":"InsufficientDataHealthStatus"}, + "ResetElements":{"shape":"ResettableElementNameList"} } }, "UpdateHealthCheckResponse":{ @@ -3253,6 +3684,10 @@ "TrafficPolicyInstance":{"shape":"TrafficPolicyInstance"} } }, + "UsageCount":{ + "type":"long", + "min":0 + }, "VPC":{ "type":"structure", "members":{ diff --git a/models/apis/route53/2013-04-01/docs-2.json b/models/apis/route53/2013-04-01/docs-2.json index 270221d6364..2f3e225de9f 100644 --- a/models/apis/route53/2013-04-01/docs-2.json +++ b/models/apis/route53/2013-04-01/docs-2.json @@ -7,6 +7,7 @@ "ChangeTagsForResource": "

Adds, edits, or deletes tags for a health check or a hosted zone.

For information about using tags for cost allocation, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", "CreateHealthCheck": "

Creates a new health check.

For information about adding health checks to resource record sets, see ResourceRecordSet$HealthCheckId in ChangeResourceRecordSets.

ELB Load Balancers

If you're registering EC2 instances with an Elastic Load Balancing (ELB) load balancer, do not create Amazon Route 53 health checks for the EC2 instances. When you register an EC2 instance with a load balancer, you configure settings for an ELB health check, which performs a similar function to an Amazon Route 53 health check.

Private Hosted Zones

You can associate health checks with failover resource record sets in a private hosted zone. Note the following:

  • Amazon Route 53 health checkers are outside the VPC. To check the health of an endpoint within a VPC by IP address, you must assign a public IP address to the instance in the VPC.

  • You can configure a health checker to check the health of an external resource that the instance relies on, such as a database server.

  • You can create a CloudWatch metric, associate an alarm with the metric, and then create a health check that is based on the state of the alarm. For example, you might create a CloudWatch metric that checks the status of the Amazon EC2 StatusCheckFailed metric, add an alarm to the metric, and then create a health check that is based on the state of the alarm. For information about creating CloudWatch metrics and alarms by using the CloudWatch console, see the Amazon CloudWatch User Guide.

", "CreateHostedZone": "

Creates a new public hosted zone, which you use to specify how the Domain Name System (DNS) routes traffic on the Internet for a domain, such as example.com, and its subdomains.

You can't convert a public hosted zones to a private hosted zone or vice versa. Instead, you must create a new hosted zone with the same name and create new resource record sets.

For more information about charges for hosted zones, see Amazon Route 53 Pricing.

Note the following:

  • You can't create a hosted zone for a top-level domain (TLD).

  • Amazon Route 53 automatically creates a default SOA record and four NS records for the zone. For more information about SOA and NS records, see NS and SOA Records that Amazon Route 53 Creates for a Hosted Zone in the Amazon Route 53 Developer Guide.

    If you want to use the same name servers for multiple hosted zones, you can optionally associate a reusable delegation set with the hosted zone. See the DelegationSetId element.

  • If your domain is registered with a registrar other than Amazon Route 53, you must update the name servers with your registrar to make Amazon Route 53 your DNS service. For more information, see Configuring Amazon Route 53 as your DNS Service in the Amazon Route 53 Developer Guide.

When you submit a CreateHostedZone request, the initial status of the hosted zone is PENDING. This means that the NS and SOA records are not yet available on all Amazon Route 53 DNS servers. When the NS and SOA records are available, the status of the zone changes to INSYNC.

", + "CreateQueryLoggingConfig": "

Creates a configuration for DNS query logging. After you create a query logging configuration, Amazon Route 53 begins to publish log data to an Amazon CloudWatch Logs log group.

DNS query logs contain information about the queries that Amazon Route 53 receives for a specified public hosted zone, such as the following:

  • Amazon Route 53 edge location that responded to the DNS query

  • Domain or subdomain that was requested

  • DNS record type, such as A or AAAA

  • DNS response code, such as NoError or ServFail

Log Group and Resource Policy

Before you create a query logging configuration, perform the following operations.

If you create a query logging configuration using the Amazon Route 53 console, Amazon Route 53 performs these operations automatically.

  1. Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following:

    • You must create the log group in the us-east-1 region.

    • You must use the same AWS account to create the log group and the hosted zone that you want to configure query logging for.

    • When you create log groups for query logging, we recommend that you use a consistent prefix, for example:

      /aws/route53/hosted zone name

      In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated AWS resources, such as Amazon Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging.

  2. Create a CloudWatch Logs resource policy, and give it the permissions that Amazon Route 53 needs to create log streams and to send query logs to log streams. For the value of Resource, specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with *, for example:

    arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/*

    You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the AWS SDKs, or the AWS CLI.

Log Streams and Edge Locations

When Amazon Route 53 finishes creating the configuration for DNS query logging, it does the following:

  • Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Amazon Route 53 responds to for that edge location.

  • Begins to send query logs to the applicable log stream.

The name of each log stream is in the following format:

hosted zone ID/edge location code

The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see \"The Amazon Route 53 Global Network\" on the Amazon Route 53 Product Details page.

Queries That Are Logged

Query logs contain only the queries that DNS resolvers forward to Amazon Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Amazon Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see Routing Internet Traffic to Your Website or Web Application in the Amazon Route 53 Developer Guide.

Log File Format

For a list of the values in each query log and the format of each value, see Logging DNS Queries in the Amazon Route 53 Developer Guide.

Pricing

For information about charges for query logs, see Amazon CloudWatch Pricing.

How to Stop Logging

If you want Amazon Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see DeleteQueryLoggingConfig.

", "CreateReusableDelegationSet": "

Creates a delegation set (a group of four name servers) that can be reused by multiple hosted zones. If a hosted zoned ID is specified, CreateReusableDelegationSet marks the delegation set associated with that zone as reusable

A reusable delegation set can't be associated with a private hosted zone.

For information on how to use a reusable delegation set to configure white label name servers, see Configuring White Label Name Servers.

", "CreateTrafficPolicy": "

Creates a traffic policy, which you use to create multiple DNS resource record sets for one domain name (such as example.com) or one subdomain name (such as www.example.com).

", "CreateTrafficPolicyInstance": "

Creates resource record sets in a specified hosted zone based on the settings in a specified traffic policy version. In addition, CreateTrafficPolicyInstance associates the resource record sets with a specified domain name (such as example.com) or subdomain name (such as www.example.com). Amazon Route 53 responds to DNS queries for the domain or subdomain name by using the resource record sets that CreateTrafficPolicyInstance created.

", @@ -14,11 +15,13 @@ "CreateVPCAssociationAuthorization": "

Authorizes the AWS account that created a specified VPC to submit an AssociateVPCWithHostedZone request to associate the VPC with a specified hosted zone that was created by a different account. To submit a CreateVPCAssociationAuthorization request, you must use the account that created the hosted zone. After you authorize the association, use the account that created the VPC to submit an AssociateVPCWithHostedZone request.

If you want to associate multiple VPCs that you created by using one account with a hosted zone that you created by using a different account, you must submit one authorization request for each VPC.

", "DeleteHealthCheck": "

Deletes a health check.

Amazon Route 53 does not prevent you from deleting a health check even if the health check is associated with one or more resource record sets. If you delete a health check and you don't update the associated resource record sets, the future status of the health check can't be predicted and may change. This will affect the routing of DNS queries for your DNS failover configuration. For more information, see Replacing and Deleting Health Checks in the Amazon Route 53 Developer Guide.

", "DeleteHostedZone": "

Deletes a hosted zone.

If the name servers for the hosted zone are associated with a domain and if you want to make the domain unavailable on the Internet, we recommend that you delete the name servers from the domain to prevent future DNS queries from possibly being misrouted. If the domain is registered with Amazon Route 53, see UpdateDomainNameservers. If the domain is registered with another registrar, use the method provided by the registrar to delete name servers for the domain.

Some domain registries don't allow you to remove all of the name servers for a domain. If the registry for your domain requires one or more name servers, we recommend that you delete the hosted zone only if you transfer DNS service to another service provider, and you replace the name servers for the domain with name servers from the new provider.

You can delete a hosted zone only if it contains only the default SOA record and NS resource record sets. If the hosted zone contains other resource record sets, you must delete them before you can delete the hosted zone. If you try to delete a hosted zone that contains other resource record sets, the request fails, and Amazon Route 53 returns a HostedZoneNotEmpty error. For information about deleting records from your hosted zone, see ChangeResourceRecordSets.

To verify that the hosted zone has been deleted, do one of the following:

  • Use the GetHostedZone action to request information about the hosted zone.

  • Use the ListHostedZones action to get a list of the hosted zones associated with the current AWS account.

", + "DeleteQueryLoggingConfig": "

Deletes a configuration for DNS query logging. If you delete a configuration, Amazon Route 53 stops sending query logs to CloudWatch Logs. Amazon Route 53 doesn't delete any logs that are already in CloudWatch Logs.

For more information about DNS query logs, see CreateQueryLoggingConfig.

", "DeleteReusableDelegationSet": "

Deletes a reusable delegation set.

You can delete a reusable delegation set only if it isn't associated with any hosted zones.

To verify that the reusable delegation set is not associated with any hosted zones, submit a GetReusableDelegationSet request and specify the ID of the reusable delegation set that you want to delete.

", "DeleteTrafficPolicy": "

Deletes a traffic policy.

", "DeleteTrafficPolicyInstance": "

Deletes a traffic policy instance and all of the resource record sets that Amazon Route 53 created when you created the instance.

In the Amazon Route 53 console, traffic policy instances are known as policy records.

", "DeleteVPCAssociationAuthorization": "

Removes authorization to submit an AssociateVPCWithHostedZone request to associate a specified VPC with a hosted zone that was created by a different account. You must use the account that created the hosted zone to submit a DeleteVPCAssociationAuthorization request.

Sending this request only prevents the AWS account that created the VPC from associating the VPC with the Amazon Route 53 hosted zone in the future. If the VPC is already associated with the hosted zone, DeleteVPCAssociationAuthorization won't disassociate the VPC from the hosted zone. If you want to delete an existing association, use DisassociateVPCFromHostedZone.

", "DisassociateVPCFromHostedZone": "

Disassociates a VPC from a Amazon Route 53 private hosted zone.

You can't disassociate the last VPC from a private hosted zone.

You can't disassociate a VPC from a private hosted zone when only one VPC is associated with the hosted zone. You also can't convert a private hosted zone into a public hosted zone.

", + "GetAccountLimit": "

Gets the specified limit for the current account, for example, the maximum number of health checks that you can create using the account.

For the default limit, see Limits in the Amazon Route 53 Developer Guide. To request a higher limit, open a case.

", "GetChange": "

Returns the current status of a change batch request. The status is one of the following values:

  • PENDING indicates that the changes in this request have not propagated to all Amazon Route 53 DNS servers. This is the initial status of all change batch requests.

  • INSYNC indicates that the changes have propagated to all Amazon Route 53 DNS servers.

", "GetCheckerIpRanges": "

GetCheckerIpRanges still works, but we recommend that you download ip-ranges.json, which includes IP address ranges for all AWS services. For more information, see IP Address Ranges of Amazon Route 53 Servers in the Amazon Route 53 Developer Guide.

", "GetGeoLocation": "

Gets information about whether a specified geographic location is supported for Amazon Route 53 geolocation resource record sets.

Use the following syntax to determine whether a continent is supported for geolocation:

GET /2013-04-01/geolocation?ContinentCode=two-letter abbreviation for a continent

Use the following syntax to determine whether a country is supported for geolocation:

GET /2013-04-01/geolocation?CountryCode=two-character country code

Use the following syntax to determine whether a subdivision of a country is supported for geolocation:

GET /2013-04-01/geolocation?CountryCode=two-character country code&SubdivisionCode=subdivision code

", @@ -28,7 +31,10 @@ "GetHealthCheckStatus": "

Gets status of a specified health check.

", "GetHostedZone": "

Gets information about a specified hosted zone including the four name servers assigned to the hosted zone.

", "GetHostedZoneCount": "

Retrieves the number of hosted zones that are associated with the current AWS account.

", + "GetHostedZoneLimit": "

Gets the specified limit for a specified hosted zone, for example, the maximum number of records that you can create in the hosted zone.

For the default limit, see Limits in the Amazon Route 53 Developer Guide. To request a higher limit, open a case.

", + "GetQueryLoggingConfig": "

Gets information about a specified configuration for DNS query logging.

For more information about DNS query logs, see CreateQueryLoggingConfig and Logging DNS Queries.

", "GetReusableDelegationSet": "

Retrieves information about a specified reusable delegation set, including the four name servers that are assigned to the delegation set.

", + "GetReusableDelegationSetLimit": "

Gets the maximum number of hosted zones that you can associate with the specified reusable delegation set.

For the default limit, see Limits in the Amazon Route 53 Developer Guide. To request a higher limit, open a case.

", "GetTrafficPolicy": "

Gets information about a specific traffic policy version.

", "GetTrafficPolicyInstance": "

Gets information about a specified traffic policy instance.

After you submit a CreateTrafficPolicyInstance or an UpdateTrafficPolicyInstance request, there's a brief delay while Amazon Route 53 creates the resource record sets that are specified in the traffic policy definition. For more information, see the State response element.

In the Amazon Route 53 console, traffic policy instances are known as policy records.

", "GetTrafficPolicyInstanceCount": "

Gets the number of traffic policy instances that are associated with the current AWS account.

", @@ -36,6 +42,7 @@ "ListHealthChecks": "

Retrieve a list of the health checks that are associated with the current AWS account.

", "ListHostedZones": "

Retrieves a list of the public and private hosted zones that are associated with the current AWS account. The response includes a HostedZones child element for each hosted zone.

Amazon Route 53 returns a maximum of 100 items in each response. If you have a lot of hosted zones, you can use the maxitems parameter to list them in groups of up to 100.

", "ListHostedZonesByName": "

Retrieves a list of your hosted zones in lexicographic order. The response includes a HostedZones child element for each hosted zone created by the current AWS account.

ListHostedZonesByName sorts hosted zones by name with the labels reversed. For example:

com.example.www.

Note the trailing dot, which can change the sort order in some circumstances.

If the domain name includes escape characters or Punycode, ListHostedZonesByName alphabetizes the domain name using the escaped or Punycoded value, which is the format that Amazon Route 53 saves in its database. For example, to create a hosted zone for exämple.com, you specify ex\\344mple.com for the domain name. ListHostedZonesByName alphabetizes it as:

com.ex\\344mple.

The labels are reversed and alphabetized using the escaped value. For more information about valid domain name formats, including internationalized domain names, see DNS Domain Name Format in the Amazon Route 53 Developer Guide.

Amazon Route 53 returns up to 100 items in each response. If you have a lot of hosted zones, use the MaxItems parameter to list them in groups of up to 100. The response includes values that help navigate from one group of MaxItems hosted zones to the next:

  • The DNSName and HostedZoneId elements in the response contain the values, if any, specified for the dnsname and hostedzoneid parameters in the request that produced the current response.

  • The MaxItems element in the response contains the value, if any, that you specified for the maxitems parameter in the request that produced the current response.

  • If the value of IsTruncated in the response is true, there are more hosted zones associated with the current AWS account.

    If IsTruncated is false, this response includes the last hosted zone that is associated with the current account. The NextDNSName element and NextHostedZoneId elements are omitted from the response.

  • The NextDNSName and NextHostedZoneId elements in the response contain the domain name and the hosted zone ID of the next hosted zone that is associated with the current AWS account. If you want to list more hosted zones, make another call to ListHostedZonesByName, and specify the value of NextDNSName and NextHostedZoneId in the dnsname and hostedzoneid parameters, respectively.

", + "ListQueryLoggingConfigs": "

Lists the configurations for DNS query logging that are associated with the current AWS account or the configuration that is associated with a specified hosted zone.

For more information about DNS query logs, see CreateQueryLoggingConfig. Additional information, including the format of DNS query logs, appears in Logging DNS Queries in the Amazon Route 53 Developer Guide.

", "ListResourceRecordSets": "

Lists the resource record sets in a specified hosted zone.

ListResourceRecordSets returns up to 100 resource record sets at a time in ASCII order, beginning at a position specified by the name and type elements. The action sorts results first by DNS name with the labels reversed, for example:

com.example.www.

Note the trailing dot, which can change the sort order in some circumstances.

When multiple records have the same DNS name, the action sorts results by the record type.

You can use the name and type elements to adjust the beginning position of the list of resource record sets returned:

If you do not specify Name or Type

The results begin with the first resource record set that the hosted zone contains.

If you specify Name but not Type

The results begin with the first resource record set in the list whose name is greater than or equal to Name.

If you specify Type but not Name

Amazon Route 53 returns the InvalidInput error.

If you specify both Name and Type

The results begin with the first resource record set in the list whose name is greater than or equal to Name, and whose type is greater than or equal to Type.

This action returns the most current version of the records. This includes records that are PENDING, and that are not yet available on all Amazon Route 53 DNS servers.

To ensure that you get an accurate listing of the resource record sets for a hosted zone at a point in time, do not submit a ChangeResourceRecordSets request while you're paging through the results of a ListResourceRecordSets request. If you do, some pages may display results without the latest changes while other pages display results with the latest changes.

", "ListReusableDelegationSets": "

Retrieves a list of the reusable delegation sets that are associated with the current AWS account.

", "ListTagsForResource": "

Lists tags for one health check or hosted zone.

For information about using tags for cost allocation, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

", @@ -53,6 +60,19 @@ "UpdateTrafficPolicyInstance": "

Updates the resource record sets in a specified hosted zone that were created based on the settings in a specified traffic policy version.

When you update a traffic policy instance, Amazon Route 53 continues to respond to DNS queries for the root resource record set name (such as example.com) while it replaces one group of resource record sets with another. Amazon Route 53 performs the following operations:

  1. Amazon Route 53 creates a new group of resource record sets based on the specified traffic policy. This is true regardless of how significant the differences are between the existing resource record sets and the new resource record sets.

  2. When all of the new resource record sets have been created, Amazon Route 53 starts to respond to DNS queries for the root resource record set name (such as example.com) by using the new resource record sets.

  3. Amazon Route 53 deletes the old group of resource record sets that are associated with the root resource record set name.

" }, "shapes": { + "AccountLimit": { + "base": "

A complex type that contains the type of limit that you specified in the request and the current value for that limit.

", + "refs": { + "GetAccountLimitResponse$Limit": "

The current setting for the specified limit. For example, if you specified MAX_HEALTH_CHECKS_BY_OWNER for the value of Type in the request, the value of Limit is the maximum number of health checks that you can create using the current account.

" + } + }, + "AccountLimitType": { + "base": null, + "refs": { + "AccountLimit$Type": "

The limit that you requested. Valid values include the following:

  • MAX_HEALTH_CHECKS_BY_OWNER: The maximum number of health checks that you can create using the current account.

  • MAX_HOSTED_ZONES_BY_OWNER: The maximum number of hosted zones that you can create using the current account.

  • MAX_REUSABLE_DELEGATION_SETS_BY_OWNER: The maximum number of reusable delegation sets that you can create using the current account.

  • MAX_TRAFFIC_POLICIES_BY_OWNER: The maximum number of traffic policies that you can create using the current account.

  • MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER: The maximum number of traffic policy instances that you can create using the current account. (Traffic policy instances are referred to as traffic flow policy records in the Amazon Route 53 console.)

", + "GetAccountLimitRequest$Type": "

The limit that you want to get. Valid values include the following:

  • MAX_HEALTH_CHECKS_BY_OWNER: The maximum number of health checks that you can create using the current account.

  • MAX_HOSTED_ZONES_BY_OWNER: The maximum number of hosted zones that you can create using the current account.

  • MAX_REUSABLE_DELEGATION_SETS_BY_OWNER: The maximum number of reusable delegation sets that you can create using the current account.

  • MAX_TRAFFIC_POLICIES_BY_OWNER: The maximum number of traffic policies that you can create using the current account.

  • MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER: The maximum number of traffic policy instances that you can create using the current account. (Traffic policy instances are referred to as traffic flow policy records in the Amazon Route 53 console.)

" + } + }, "AlarmIdentifier": { "base": "

A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether this health check is healthy.

", "refs": { @@ -103,7 +123,7 @@ "ChangeAction": { "base": null, "refs": { - "Change$Action": "

The action to perform:

  • CREATE: Creates a resource record set that has the specified values.

  • DELETE: Deletes a existing resource record set.

    To delete the resource record set that is associated with a traffic policy instance, use DeleteTrafficPolicyInstance . Amazon Route 53 will delete the resource record set automatically. If you delete the resource record set by using ChangeResourceRecordSets, Amazon Route 53 doesn't automatically delete the traffic policy instance, and you'll continue to be charged for it even though it's no longer in use.

  • UPSERT: If a resource record set doesn't already exist, Amazon Route 53 creates it. If a resource record set does exist, Amazon Route 53 updates it with the values in the request.

The values that you need to include in the request depend on the type of resource record set that you're creating, deleting, or updating:

Basic resource record sets (excluding alias, failover, geolocation, latency, and weighted resource record sets)

  • Name

  • Type

  • TTL

Failover, geolocation, latency, or weighted resource record sets (excluding alias resource record sets)

  • Name

  • Type

  • TTL

  • SetIdentifier

Alias resource record sets (including failover alias, geolocation alias, latency alias, and weighted alias resource record sets)

  • Name

  • Type

  • AliasTarget (includes DNSName, EvaluateTargetHealth, and HostedZoneId)

  • SetIdentifier (for failover, geolocation, latency, and weighted resource record sets)

" + "Change$Action": "

The action to perform:

  • CREATE: Creates a resource record set that has the specified values.

  • DELETE: Deletes a existing resource record set.

    To delete the resource record set that is associated with a traffic policy instance, use DeleteTrafficPolicyInstance . Amazon Route 53 will delete the resource record set automatically. If you delete the resource record set by using ChangeResourceRecordSets, Amazon Route 53 doesn't automatically delete the traffic policy instance, and you'll continue to be charged for it even though it's no longer in use.

  • UPSERT: If a resource record set doesn't already exist, Amazon Route 53 creates it. If a resource record set does exist, Amazon Route 53 updates it with the values in the request.

" } }, "ChangeBatch": { @@ -174,6 +194,13 @@ "HealthCheck$CloudWatchAlarmConfiguration": "

A complex type that contains information about the CloudWatch alarm that Amazon Route 53 is monitoring for this health check.

" } }, + "CloudWatchLogsLogGroupArn": { + "base": null, + "refs": { + "CreateQueryLoggingConfigRequest$CloudWatchLogsLogGroupArn": "

The Amazon Resource Name (ARN) for the log group that you want to Amazon Route 53 to send query logs to. This is the format of the ARN:

arn:aws:logs:region:account-id:log-group:log_group_name

To get the ARN for a log group, you can use the CloudWatch console, the DescribeLogGroups API action, the describe-log-groups command, or the applicable command in one of the AWS SDKs.

", + "QueryLoggingConfig$CloudWatchLogsLogGroupArn": "

The Amazon Resource Name (ARN) of the CloudWatch Logs log group that Amazon Route 53 is publishing logs to.

" + } + }, "CloudWatchRegion": { "base": null, "refs": { @@ -187,7 +214,7 @@ } }, "ConcurrentModification": { - "base": "

Another user submitted a request to update the object at the same time that you did. Retry the request.

", + "base": "

Another user submitted a request to create, update, or delete the object at the same time that you did. Retry the request.

", "refs": { } }, @@ -221,6 +248,16 @@ "refs": { } }, + "CreateQueryLoggingConfigRequest": { + "base": null, + "refs": { + } + }, + "CreateQueryLoggingConfigResponse": { + "base": null, + "refs": { + } + }, "CreateReusableDelegationSetRequest": { "base": null, "refs": { @@ -274,7 +311,7 @@ "DNSName": { "base": null, "refs": { - "AliasTarget$DNSName": "

Alias resource record sets only: The value that you specify depends on where you want to route queries:

CloudFront distribution

Specify the domain name that CloudFront assigned when you created your distribution.

Your CloudFront distribution must include an alternate domain name that matches the name of the resource record set. For example, if the name of the resource record set is acme.example.com, your CloudFront distribution must include acme.example.com as one of the alternate domain names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon CloudFront Developer Guide.

Elastic Beanstalk environment

Specify the CNAME attribute for the environment. (The environment must have a regionalized domain name.) You can use the following methods to get the value of the CNAME attribute:

  • AWS Management Console: For information about how to get the value by using the console, see Using Custom Domains with AWS Elastic Beanstalk in the AWS Elastic Beanstalk Developer Guide.

  • Elastic Beanstalk API: Use the DescribeEnvironments action to get the value of the CNAME attribute. For more information, see DescribeEnvironments in the AWS Elastic Beanstalk API Reference.

  • AWS CLI: Use the describe-environments command to get the value of the CNAME attribute. For more information, see describe-environments in the AWS Command Line Interface Reference.

ELB load balancer

Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI.

  • AWS Management Console: Go to the EC2 page, choose Load Balancers in the navigation pane, choose the load balancer, choose the Description tab, and get the value of the DNS name field. (If you're routing traffic to a Classic Load Balancer, get the value that begins with dualstack.)

  • Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of DNSName. For more information, see the applicable guide:

  • AWS CLI: Use describe-load-balancers to get the value of DNSName.

Amazon S3 bucket that is configured as a static website

Specify the domain name of the Amazon S3 website endpoint in which you created the bucket, for example, s3-website-us-east-2.amazonaws.com. For more information about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the Amazon Web Services General Reference. For more information about using S3 buckets for websites, see Getting Started with Amazon Route 53 in the Amazon Route 53 Developer Guide.

Another Amazon Route 53 resource record set

Specify the value of the Name element for a resource record set in the current hosted zone.

", + "AliasTarget$DNSName": "

Alias resource record sets only: The value that you specify depends on where you want to route queries:

CloudFront distribution

Specify the domain name that CloudFront assigned when you created your distribution.

Your CloudFront distribution must include an alternate domain name that matches the name of the resource record set. For example, if the name of the resource record set is acme.example.com, your CloudFront distribution must include acme.example.com as one of the alternate domain names. For more information, see Using Alternate Domain Names (CNAMEs) in the Amazon CloudFront Developer Guide.

Elastic Beanstalk environment

Specify the CNAME attribute for the environment. (The environment must have a regionalized domain name.) You can use the following methods to get the value of the CNAME attribute:

  • AWS Management Console: For information about how to get the value by using the console, see Using Custom Domains with AWS Elastic Beanstalk in the AWS Elastic Beanstalk Developer Guide.

  • Elastic Beanstalk API: Use the DescribeEnvironments action to get the value of the CNAME attribute. For more information, see DescribeEnvironments in the AWS Elastic Beanstalk API Reference.

  • AWS CLI: Use the describe-environments command to get the value of the CNAME attribute. For more information, see describe-environments in the AWS Command Line Interface Reference.

ELB load balancer

Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI.

  • AWS Management Console: Go to the EC2 page, choose Load Balancers in the navigation pane, choose the load balancer, choose the Description tab, and get the value of the DNS name field. (If you're routing traffic to a Classic Load Balancer, get the value that begins with dualstack.)

  • Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of DNSName. For more information, see the applicable guide:

  • AWS CLI: Use describe-load-balancers to get the value of DNSName. For more information, see the applicable guide:

Amazon S3 bucket that is configured as a static website

Specify the domain name of the Amazon S3 website endpoint in which you created the bucket, for example, s3-website-us-east-2.amazonaws.com. For more information about valid values, see the table Amazon Simple Storage Service (S3) Website Endpoints in the Amazon Web Services General Reference. For more information about using S3 buckets for websites, see Getting Started with Amazon Route 53 in the Amazon Route 53 Developer Guide.

Another Amazon Route 53 resource record set

Specify the value of the Name element for a resource record set in the current hosted zone.

", "CreateHostedZoneRequest$Name": "

The name of the domain. For resource record types that include a domain name, specify a fully qualified domain name, for example, www.example.com. The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully qualified. This means that Amazon Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical.

If you're creating a public hosted zone, this is the name you have registered with your DNS registrar. If your domain name is registered with a registrar other than Amazon Route 53, change the name servers for your domain to the set of NameServers that CreateHostedZone returns in DelegationSet.

", "CreateTrafficPolicyInstanceRequest$Name": "

The domain name (such as example.com) or subdomain name (such as www.example.com) for which Amazon Route 53 responds to DNS queries by using the resource record sets that Amazon Route 53 creates for this traffic policy instance.

", "DelegationSetNameServers$member": null, @@ -369,6 +406,16 @@ "refs": { } }, + "DeleteQueryLoggingConfigRequest": { + "base": null, + "refs": { + } + }, + "DeleteQueryLoggingConfigResponse": { + "base": null, + "refs": { + } + }, "DeleteReusableDelegationSetRequest": { "base": "

A request to delete a reusable delegation set.

", "refs": { @@ -469,8 +516,11 @@ "HostedZoneAlreadyExists$message": "

Descriptive message for the error response.

", "HostedZoneNotEmpty$message": "

Descriptive message for the error response.

", "HostedZoneNotFound$message": "

Descriptive message for the error response.

", + "HostedZoneNotPrivate$message": "

Descriptive message for the error response.

", "IncompatibleVersion$message": null, + "InsufficientCloudWatchLogsResourcePolicy$message": null, "InvalidArgument$message": "

Descriptive message for the error response.

", + "InvalidChangeBatch$message": null, "InvalidDomainName$message": "

Descriptive message for the error response.

", "InvalidInput$message": "

Descriptive message for the error response.

", "InvalidPaginationToken$message": null, @@ -479,15 +529,18 @@ "LastVPCAssociation$message": "

Descriptive message for the error response.

", "LimitsExceeded$message": "

Descriptive message for the error response.

", "NoSuchChange$message": null, + "NoSuchCloudWatchLogsLogGroup$message": null, "NoSuchDelegationSet$message": "

Descriptive message for the error response.

", "NoSuchGeoLocation$message": "

Descriptive message for the error response.

", "NoSuchHealthCheck$message": "

Descriptive message for the error response.

", "NoSuchHostedZone$message": "

Descriptive message for the error response.

", + "NoSuchQueryLoggingConfig$message": null, "NoSuchTrafficPolicy$message": "

Descriptive message for the error response.

", "NoSuchTrafficPolicyInstance$message": "

Descriptive message for the error response.

", "NotAuthorizedException$message": "

Descriptive message for the error response.

", "PriorRequestNotComplete$message": null, "PublicZoneVPCAssociation$message": "

Descriptive message for the error response.

", + "QueryLoggingConfigAlreadyExists$message": null, "ThrottlingException$message": null, "TooManyHealthChecks$message": null, "TooManyHostedZones$message": "

Descriptive message for the error response.

", @@ -594,6 +647,16 @@ "GeoLocationDetails$SubdivisionName": "

The full name of the subdivision, for example, a state in the United States or a province in Canada.

" } }, + "GetAccountLimitRequest": { + "base": "

A complex type that contains information about the request to create a hosted zone.

", + "refs": { + } + }, + "GetAccountLimitResponse": { + "base": "

A complex type that contains the requested limit.

", + "refs": { + } + }, "GetChangeRequest": { "base": "

The input for a GetChange request.

", "refs": { @@ -674,6 +737,16 @@ "refs": { } }, + "GetHostedZoneLimitRequest": { + "base": "

A complex type that contains information about the request to create a hosted zone.

", + "refs": { + } + }, + "GetHostedZoneLimitResponse": { + "base": "

A complex type that contains the requested limit.

", + "refs": { + } + }, "GetHostedZoneRequest": { "base": "

A request to get information about a specified hosted zone.

", "refs": { @@ -684,6 +757,26 @@ "refs": { } }, + "GetQueryLoggingConfigRequest": { + "base": null, + "refs": { + } + }, + "GetQueryLoggingConfigResponse": { + "base": null, + "refs": { + } + }, + "GetReusableDelegationSetLimitRequest": { + "base": "

A complex type that contains information about the request to create a hosted zone.

", + "refs": { + } + }, + "GetReusableDelegationSetLimitResponse": { + "base": "

A complex type that contains the requested limit.

", + "refs": { + } + }, "GetReusableDelegationSetRequest": { "base": "

A request to get information about a specified reusable delegation set.

", "refs": { @@ -861,6 +954,19 @@ "GetHostedZoneCountResponse$HostedZoneCount": "

The total number of public and private hosted zones that are associated with the current AWS account.

" } }, + "HostedZoneLimit": { + "base": "

A complex type that contains the type of limit that you specified in the request and the current value for that limit.

", + "refs": { + "GetHostedZoneLimitResponse$Limit": "

The current setting for the specified limit. For example, if you specified MAX_RRSETS_BY_ZONE for the value of Type in the request, the value of Limit is the maximum number of records that you can create in the specified hosted zone.

" + } + }, + "HostedZoneLimitType": { + "base": null, + "refs": { + "GetHostedZoneLimitRequest$Type": "

The limit that you want to get. Valid values include the following:

  • MAX_RRSETS_BY_ZONE: The maximum number of records that you can create in the specified hosted zone.

  • MAX_VPCS_ASSOCIATED_BY_TYPE: The maximum number of Amazon VPCs that you can associate with the specified private hosted zone.

", + "HostedZoneLimit$Type": "

The limit that you requested. Valid values include the following:

  • MAX_RRSETS_BY_ZONE: The maximum number of records that you can create in the specified hosted zone.

  • MAX_VPCS_ASSOCIATED_BY_TYPE: The maximum number of Amazon VPCs that you can associate with the specified private hosted zone.

" + } + }, "HostedZoneNotEmpty": { "base": "

The hosted zone contains resource records that are not SOA or NS records.

", "refs": { @@ -871,6 +977,11 @@ "refs": { } }, + "HostedZoneNotPrivate": { + "base": "

The specified hosted zone is a public hosted zone, not a private hosted zone.

", + "refs": { + } + }, "HostedZoneRRSetCount": { "base": null, "refs": { @@ -905,6 +1016,11 @@ "refs": { } }, + "InsufficientCloudWatchLogsResourcePolicy": { + "base": "

Amazon Route 53 doesn't have the permissions required to create log streams and send query logs to log streams. Possible causes include the following:

  • There is no resource policy that specifies the log group ARN in the value for Resource.

  • The resource policy that includes the log group ARN in the value for Resource doesn't have the necessary permissions.

  • The resource policy hasn't finished propagating yet.

", + "refs": { + } + }, "InsufficientDataHealthStatus": { "base": null, "refs": { @@ -933,7 +1049,7 @@ } }, "InvalidPaginationToken": { - "base": null, + "base": "

The value that you specified to get the second or subsequent page of results is invalid.

", "refs": { } }, @@ -965,9 +1081,24 @@ "refs": { } }, + "LimitValue": { + "base": null, + "refs": { + "AccountLimit$Value": "

The current value for the limit that is specified by AccountLimit$Type.

", + "HostedZoneLimit$Value": "

The current value for the limit that is specified by Type.

", + "ReusableDelegationSetLimit$Value": "

The current value for the MAX_ZONES_BY_REUSABLE_DELEGATION_SET limit.

" + } + }, "LimitsExceeded": { - "base": "

The limits specified for a resource have been exceeded.

", + "base": "

This operation can't be completed either because the current account has reached the limit on reusable delegation sets that it can create or because you've reached the limit on the number of Amazon VPCs that you can associate with a private hosted zone. To get the current limit on the number of reusable delegation sets, see GetAccountLimit. To get the current limit on the number of Amazon VPCs that you can associate with a private hosted zone, see GetHostedZoneLimit. To request a higher limit, create a case with the AWS Support Center.

", + "refs": { + } + }, + "LinkedService": { + "base": "

If a health check or hosted zone was created by another service, LinkedService is a complex type that describes the service that created the resource. When a resource is created by another service, you can't edit or delete it using Amazon Route 53.

", "refs": { + "HealthCheck$LinkedService": "

If the health check was created by another service, the service that created the health check. When a health check is created by another service, you can't edit or delete it using Amazon Route 53.

", + "HostedZone$LinkedService": "

If the hosted zone was created by another service, the service that created the hosted zone. When a hosted zone is created by another service, you can't edit or delete it using Amazon Route 53.

" } }, "ListGeoLocationsRequest": { @@ -1010,6 +1141,16 @@ "refs": { } }, + "ListQueryLoggingConfigsRequest": { + "base": null, + "refs": { + } + }, + "ListQueryLoggingConfigsResponse": { + "base": null, + "refs": { + } + }, "ListResourceRecordSetsRequest": { "base": "

A request for the resource record sets that are associated with a specified hosted zone.

", "refs": { @@ -1113,6 +1254,7 @@ "MaxResults": { "base": null, "refs": { + "ListQueryLoggingConfigsRequest$MaxResults": "

(Optional) The maximum number of query logging configurations that you want Amazon Route 53 to return in response to the current request. If the current AWS account has more than MaxResults configurations, use the value of ListQueryLoggingConfigsResponse$NextToken in the response to get the next page of results.

If you don't specify a value for MaxResults, Amazon Route 53 returns up to 100 configurations.

", "ListVPCAssociationAuthorizationsRequest$MaxResults": "

Optional: An integer that specifies the maximum number of VPCs that you want Amazon Route 53 to return. If you don't specify a value for MaxResults, Amazon Route 53 returns up to 50 VPCs per page.

" } }, @@ -1151,6 +1293,11 @@ "refs": { } }, + "NoSuchCloudWatchLogsLogGroup": { + "base": "

There is no CloudWatch Logs log group with the specified ARN.

", + "refs": { + } + }, "NoSuchDelegationSet": { "base": "

A reusable delegation set with the specified ID does not exist.

", "refs": { @@ -1171,6 +1318,11 @@ "refs": { } }, + "NoSuchQueryLoggingConfig": { + "base": "

There is no DNS query logging configuration with the specified ID.

", + "refs": { + } + }, "NoSuchTrafficPolicy": { "base": "

No traffic policy exists with the specified ID.

", "refs": { @@ -1255,6 +1407,8 @@ "PaginationToken": { "base": null, "refs": { + "ListQueryLoggingConfigsRequest$NextToken": "

(Optional) If the current AWS account has more than MaxResults query logging configurations, use NextToken to get the second and subsequent pages of results.

For the first ListQueryLoggingConfigs request, omit this value.

For the second and subsequent requests, get the value of NextToken from the previous response and specify that value for NextToken in the request.

", + "ListQueryLoggingConfigsResponse$NextToken": "

If a response includes the last of the query logging configurations that are associated with the current AWS account, NextToken doesn't appear in the response.

If a response doesn't include the last of the configurations, you can get more configurations by submitting another ListQueryLoggingConfigs request. Get the value of NextToken that Amazon Route 53 returned in the previous response and include it in NextToken in the next request.

", "ListVPCAssociationAuthorizationsRequest$NextToken": "

Optional: If a response includes a NextToken element, there are more VPCs that can be associated with the specified hosted zone. To get the next page of results, submit another request, and include the value of NextToken from the response in the nexttoken parameter in another ListVPCAssociationAuthorizations request.

", "ListVPCAssociationAuthorizationsResponse$NextToken": "

When the response includes a NextToken element, there are more VPCs that can be associated with the specified hosted zone. To get the next page of VPCs, submit another ListVPCAssociationAuthorizations request, and include the value of the NextToken element from the response in the nexttoken request parameter.

" } @@ -1282,6 +1436,33 @@ "refs": { } }, + "QueryLoggingConfig": { + "base": "

A complex type that contains information about a configuration for DNS query logging.

", + "refs": { + "CreateQueryLoggingConfigResponse$QueryLoggingConfig": "

A complex type that contains the ID for a query logging configuration, the ID of the hosted zone that you want to log queries for, and the ARN for the log group that you want Amazon Route 53 to send query logs to.

", + "GetQueryLoggingConfigResponse$QueryLoggingConfig": "

A complex type that contains information about the query logging configuration that you specified in a GetQueryLoggingConfig request.

", + "QueryLoggingConfigs$member": null + } + }, + "QueryLoggingConfigAlreadyExists": { + "base": "

You can create only one query logging configuration for a hosted zone, and a query logging configuration already exists for this hosted zone.

", + "refs": { + } + }, + "QueryLoggingConfigId": { + "base": null, + "refs": { + "DeleteQueryLoggingConfigRequest$Id": "

The ID of the configuration that you want to delete.

", + "GetQueryLoggingConfigRequest$Id": "

The ID of the configuration for DNS query logging that you want to get information about.

", + "QueryLoggingConfig$Id": "

The ID for a configuration for DNS query logging.

" + } + }, + "QueryLoggingConfigs": { + "base": null, + "refs": { + "ListQueryLoggingConfigsResponse$QueryLoggingConfigs": "

An array that contains one QueryLoggingConfig element for each configuration for DNS query logging that is associated with the current AWS account.

" + } + }, "RData": { "base": null, "refs": { @@ -1291,7 +1472,7 @@ "RRType": { "base": null, "refs": { - "ListResourceRecordSetsRequest$StartRecordType": "

The type of resource record set to begin the record listing from.

Valid values for basic resource record sets: A | AAAA | CNAME | MX | NAPTR | NS | PTR | SOA | SPF | SRV | TXT

Values for weighted, latency, geo, and failover resource record sets: A | AAAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT

Values for alias resource record sets:

  • CloudFront distribution: A or AAAA

  • Elastic Beanstalk environment that has a regionalized subdomain: A

  • ELB load balancer: A | AAAA

  • Amazon S3 bucket: A

Constraint: Specifying type without specifying name returns an InvalidInput error.

", + "ListResourceRecordSetsRequest$StartRecordType": "

The type of resource record set to begin the record listing from.

Valid values for basic resource record sets: A | AAAA | CAA | CNAME | MX | NAPTR | NS | PTR | SOA | SPF | SRV | TXT

Values for weighted, latency, geo, and failover resource record sets: A | AAAA | CAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT

Values for alias resource record sets:

  • CloudFront distribution: A or AAAA

  • Elastic Beanstalk environment that has a regionalized subdomain: A

  • ELB load balancer: A | AAAA

  • Amazon S3 bucket: A

  • Another resource record set in this hosted zone: The type of the resource record set that the alias references.

Constraint: Specifying type without specifying name returns an InvalidInput error.

", "ListResourceRecordSetsResponse$NextRecordType": "

If the results were truncated, the type of the next record in the list.

This element is present only if IsTruncated is true.

", "ListTrafficPolicyInstancesByHostedZoneRequest$TrafficPolicyInstanceTypeMarker": "

If the value of IsTruncated in the previous response is true, you have more traffic policy instances. To get more traffic policy instances, submit another ListTrafficPolicyInstances request. For the value of trafficpolicyinstancetype, specify the value of TrafficPolicyInstanceTypeMarker from the previous response, which is the type of the first traffic policy instance in the next group of traffic policy instances.

If the value of IsTruncated in the previous response was false, there are no more traffic policy instances to get.

", "ListTrafficPolicyInstancesByHostedZoneResponse$TrafficPolicyInstanceTypeMarker": "

If IsTruncated is true, TrafficPolicyInstanceTypeMarker is the DNS type of the resource record sets that are associated with the first traffic policy instance in the next group of traffic policy instances.

", @@ -1299,7 +1480,7 @@ "ListTrafficPolicyInstancesByPolicyResponse$TrafficPolicyInstanceTypeMarker": "

If IsTruncated is true, TrafficPolicyInstanceTypeMarker is the DNS type of the resource record sets that are associated with the first traffic policy instance in the next group of MaxItems traffic policy instances.

", "ListTrafficPolicyInstancesRequest$TrafficPolicyInstanceTypeMarker": "

If the value of IsTruncated in the previous response was true, you have more traffic policy instances. To get more traffic policy instances, submit another ListTrafficPolicyInstances request. For the value of trafficpolicyinstancetype, specify the value of TrafficPolicyInstanceTypeMarker from the previous response, which is the type of the first traffic policy instance in the next group of traffic policy instances.

If the value of IsTruncated in the previous response was false, there are no more traffic policy instances to get.

", "ListTrafficPolicyInstancesResponse$TrafficPolicyInstanceTypeMarker": "

If IsTruncated is true, TrafficPolicyInstanceTypeMarker is the DNS type of the resource record sets that are associated with the first traffic policy instance that Amazon Route 53 will return if you submit another ListTrafficPolicyInstances request.

", - "ResourceRecordSet$Type": "

The DNS record type. For information about different record types and how data is encoded for them, see Supported DNS Resource Record Types in the Amazon Route 53 Developer Guide.

Valid values for basic resource record sets: A | AAAA | CNAME | MX | NAPTR | NS | PTR | SOA | SPF | SRV | TXT

Values for weighted, latency, geolocation, and failover resource record sets: A | AAAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT. When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group.

Valid values for multivalue answer resource record sets: A | AAAA | MX | NAPTR | PTR | SPF | SRV | TXT

SPF records were formerly used to verify the identity of the sender of email messages. However, we no longer recommend that you create resource record sets for which the value of Type is SPF. RFC 7208, Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1, has been updated to say, \"...[I]ts existence and mechanism defined in [RFC4408] have led to some interoperability issues. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it.\" In RFC 7208, see section 14.1, The SPF DNS Record Type.

Values for alias resource record sets:

  • CloudFront distributions: A

    If IPv6 is enabled for the distribution, create two resource record sets to route traffic to your distribution, one with a value of A and one with a value of AAAA.

  • AWS Elastic Beanstalk environment that has a regionalized subdomain: A

  • ELB load balancers: A | AAAA

  • Amazon S3 buckets: A

  • Another resource record set in this hosted zone: Specify the type of the resource record set that you're creating the alias for. All values are supported except NS and SOA.

", + "ResourceRecordSet$Type": "

The DNS record type. For information about different record types and how data is encoded for them, see Supported DNS Resource Record Types in the Amazon Route 53 Developer Guide.

Valid values for basic resource record sets: A | AAAA | CAA | CNAME | MX | NAPTR | NS | PTR | SOA | SPF | SRV | TXT

Values for weighted, latency, geolocation, and failover resource record sets: A | AAAA | CAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT. When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group.

Valid values for multivalue answer resource record sets: A | AAAA | MX | NAPTR | PTR | SPF | SRV | TXT

SPF records were formerly used to verify the identity of the sender of email messages. However, we no longer recommend that you create resource record sets for which the value of Type is SPF. RFC 7208, Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1, has been updated to say, \"...[I]ts existence and mechanism defined in [RFC4408] have led to some interoperability issues. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it.\" In RFC 7208, see section 14.1, The SPF DNS Record Type.

Values for alias resource record sets:

  • CloudFront distributions: A

    If IPv6 is enabled for the distribution, create two resource record sets to route traffic to your distribution, one with a value of A and one with a value of AAAA.

  • AWS Elastic Beanstalk environment that has a regionalized subdomain: A

  • ELB load balancers: A | AAAA

  • Amazon S3 buckets: A

  • Another resource record set in this hosted zone: Specify the type of the resource record set that you're creating the alias for. All values are supported except NS and SOA.

", "TestDNSAnswerRequest$RecordType": "

The type of the resource record set.

", "TestDNSAnswerResponse$RecordType": "

The type of the resource record set that you submitted a request for.

", "TrafficPolicy$Type": "

The DNS type of the resource record sets that Amazon Route 53 creates when you use a traffic policy to create a traffic policy instance.

", @@ -1325,23 +1506,37 @@ "HealthCheckConfig$RequestInterval": "

The number of seconds between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health check request. Each Amazon Route 53 health checker makes requests at this interval.

You can't change the value of RequestInterval after you create a health check.

If you don't specify a value for RequestInterval, the default value is 30 seconds.

" } }, + "ResettableElementName": { + "base": null, + "refs": { + "ResettableElementNameList$member": null + } + }, + "ResettableElementNameList": { + "base": null, + "refs": { + "UpdateHealthCheckRequest$ResetElements": "

A complex type that contains one ResettableElementName element for each element that you want to reset to the default value. Valid values for ResettableElementName include the following:

" + } + }, "ResourceDescription": { "base": null, "refs": { "ChangeBatch$Comment": "

Optional: Any comments you want to include about a change batch request.

", "ChangeInfo$Comment": "

A complex type that describes change information about changes made to your hosted zone.

This element contains an ID that you use when performing a GetChange action to get detailed information about the change.

", "HostedZoneConfig$Comment": "

Any comments that you want to include about the hosted zone.

", + "LinkedService$Description": "

If the health check or hosted zone was created by another service, an optional description that can be provided by the other service. When a resource is created by another service, you can't edit or delete it using Amazon Route 53.

", "UpdateHostedZoneCommentRequest$Comment": "

The new comment for the hosted zone. If you don't specify a value for Comment, Amazon Route 53 deletes the existing value of the Comment element, if any.

" } }, "ResourceId": { "base": null, "refs": { - "AliasTarget$HostedZoneId": "

Alias resource records sets only: The value used depends on where you want to route traffic:

CloudFront distribution

Specify Z2FDTNDATAQYW2.

Alias resource record sets for CloudFront can't be created in a private zone.

Elastic Beanstalk environment

Specify the hosted zone ID for the region in which you created the environment. The environment must have a regionalized subdomain. For a list of regions and the corresponding hosted zone IDs, see AWS Elastic Beanstalk in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference.

ELB load balancer

Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone ID:

  • Elastic Load Balancing table in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference: Use the value in the \"Amazon Route 53 Hosted Zone ID\" column that corresponds with the region that you created your load balancer in.

  • AWS Management Console: Go to the Amazon EC2 page, click Load Balancers in the navigation pane, select the load balancer, and get the value of the Hosted zone field on the Description tab.

  • Elastic Load Balancing API: Use DescribeLoadBalancers to get the value of CanonicalHostedZoneNameId. For more information, see the applicable guide:

  • AWS CLI: Use describe-load-balancers to get the value of CanonicalHostedZoneNameID.

An Amazon S3 bucket configured as a static website

Specify the hosted zone ID for the region that you created the bucket in. For more information about valid values, see the Amazon Simple Storage Service Website Endpoints table in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference.

Another Amazon Route 53 resource record set in your hosted zone

Specify the hosted zone ID of your hosted zone. (An alias resource record set can't reference a resource record set in a different hosted zone.)

", + "AliasTarget$HostedZoneId": "

Alias resource records sets only: The value used depends on where you want to route traffic:

CloudFront distribution

Specify Z2FDTNDATAQYW2.

Alias resource record sets for CloudFront can't be created in a private zone.

Elastic Beanstalk environment

Specify the hosted zone ID for the region in which you created the environment. The environment must have a regionalized subdomain. For a list of regions and the corresponding hosted zone IDs, see AWS Elastic Beanstalk in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference.

ELB load balancer

Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone ID:

  • Elastic Load Balancing table in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference: Use the value that corresponds with the region that you created your load balancer in. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers.

  • AWS Management Console: Go to the Amazon EC2 page, choose Load Balancers in the navigation pane, select the load balancer, and get the value of the Hosted zone field on the Description tab.

  • Elastic Load Balancing API: Use DescribeLoadBalancers to get the applicable value. For more information, see the applicable guide:

  • AWS CLI: Use describe-load-balancers to get the applicable value. For more information, see the applicable guide:

An Amazon S3 bucket configured as a static website

Specify the hosted zone ID for the region that you created the bucket in. For more information about valid values, see the Amazon Simple Storage Service Website Endpoints table in the \"AWS Regions and Endpoints\" chapter of the Amazon Web Services General Reference.

Another Amazon Route 53 resource record set in your hosted zone

Specify the hosted zone ID of your hosted zone. (An alias resource record set can't reference a resource record set in a different hosted zone.)

", "AssociateVPCWithHostedZoneRequest$HostedZoneId": "

The ID of the private hosted zone that you want to associate an Amazon VPC with.

Note that you can't associate a VPC with a hosted zone that doesn't have an existing VPC association.

", "ChangeInfo$Id": "

The ID of the request.

", "ChangeResourceRecordSetsRequest$HostedZoneId": "

The ID of the hosted zone that contains the resource record sets that you want to change.

", "CreateHostedZoneRequest$DelegationSetId": "

If you want to associate a reusable delegation set with this hosted zone, the ID that Amazon Route 53 assigned to the reusable delegation set when you created it. For more information about reusable delegation sets, see CreateReusableDelegationSet.

", + "CreateQueryLoggingConfigRequest$HostedZoneId": "

The ID of the hosted zone that you want to log queries for. You can log queries only for public hosted zones.

", "CreateReusableDelegationSetRequest$HostedZoneId": "

If you want to mark the delegation set for an existing hosted zone as reusable, the ID for that hosted zone.

", "CreateTrafficPolicyInstanceRequest$HostedZoneId": "

The ID of the hosted zone in which you want Amazon Route 53 to create resource record sets by using the configuration in a traffic policy.

", "CreateVPCAssociationAuthorizationRequest$HostedZoneId": "

The ID of the private hosted zone that you want to authorize associating a VPC with.

", @@ -1352,13 +1547,16 @@ "DeleteVPCAssociationAuthorizationRequest$HostedZoneId": "

When removing authorization to associate a VPC that was created by one AWS account with a hosted zone that was created with a different AWS account, the ID of the hosted zone.

", "DisassociateVPCFromHostedZoneRequest$HostedZoneId": "

The ID of the private hosted zone that you want to disassociate a VPC from.

", "GetChangeRequest$Id": "

The ID of the change batch request. The value that you specify here is the value that ChangeResourceRecordSets returned in the Id element when you submitted the request.

", + "GetHostedZoneLimitRequest$HostedZoneId": "

The ID of the hosted zone that you want to get a limit for.

", "GetHostedZoneRequest$Id": "

The ID of the hosted zone that you want to get information about.

", + "GetReusableDelegationSetLimitRequest$DelegationSetId": "

The ID of the delegation set that you want to get the limit for.

", "GetReusableDelegationSetRequest$Id": "

The ID of the reusable delegation set that you want to get a list of name servers for.

", "HostedZone$Id": "

The ID that Amazon Route 53 assigned to the hosted zone when you created it.

", "ListHostedZonesByNameRequest$HostedZoneId": "

(Optional) For your first request to ListHostedZonesByName, do not include the hostedzoneid parameter.

If you have more hosted zones than the value of maxitems, ListHostedZonesByName returns only the first maxitems hosted zones. To get the next group of maxitems hosted zones, submit another request to ListHostedZonesByName and include both dnsname and hostedzoneid parameters. For the value of hostedzoneid, specify the value of the NextHostedZoneId element from the previous response.

", "ListHostedZonesByNameResponse$HostedZoneId": "

The ID that Amazon Route 53 assigned to the hosted zone when you created it.

", "ListHostedZonesByNameResponse$NextHostedZoneId": "

If IsTruncated is true, the value of NextHostedZoneId identifies the first hosted zone in the next group of maxitems hosted zones. Call ListHostedZonesByName again and specify the value of NextDNSName and NextHostedZoneId in the dnsname and hostedzoneid parameters, respectively.

This element is present only if IsTruncated is true.

", "ListHostedZonesRequest$DelegationSetId": "

If you're using reusable delegation sets and you want to list all of the hosted zones that are associated with a reusable delegation set, specify the ID of that reusable delegation set.

", + "ListQueryLoggingConfigsRequest$HostedZoneId": "

(Optional) If you want to list the query logging configuration that is associated with a hosted zone, specify the ID in HostedZoneId.

If you don't specify a hosted zone ID, ListQueryLoggingConfigs returns all of the configurations that are associated with the current AWS account.

", "ListResourceRecordSetsRequest$HostedZoneId": "

The ID of the hosted zone that contains the resource record sets that you want to list.

", "ListTrafficPolicyInstancesByHostedZoneRequest$HostedZoneId": "

The ID of the hosted zone that you want to list traffic policy instances for.

", "ListTrafficPolicyInstancesByPolicyRequest$HostedZoneIdMarker": "

If the value of IsTruncated in the previous response was true, you have more traffic policy instances. To get more traffic policy instances, submit another ListTrafficPolicyInstancesByPolicy request.

For the value of hostedzoneid, specify the value of HostedZoneIdMarker from the previous response, which is the hosted zone ID of the first traffic policy instance that Amazon Route 53 will return if you submit another request.

If the value of IsTruncated in the previous response was false, there are no more traffic policy instances to get.

", @@ -1367,6 +1565,7 @@ "ListTrafficPolicyInstancesResponse$HostedZoneIdMarker": "

If IsTruncated is true, HostedZoneIdMarker is the ID of the hosted zone of the first traffic policy instance that Amazon Route 53 will return if you submit another ListTrafficPolicyInstances request.

", "ListVPCAssociationAuthorizationsRequest$HostedZoneId": "

The ID of the hosted zone for which you want a list of VPCs that can be associated with the hosted zone.

", "ListVPCAssociationAuthorizationsResponse$HostedZoneId": "

The ID of the hosted zone that you can associate the listed VPCs with.

", + "QueryLoggingConfig$HostedZoneId": "

The ID of the hosted zone that CloudWatch Logs is logging queries for.

", "TestDNSAnswerRequest$HostedZoneId": "

The ID of the hosted zone that you want Amazon Route 53 to simulate a query for.

", "TrafficPolicyInstance$HostedZoneId": "

The ID of the hosted zone that Amazon Route 53 created resource record sets in.

", "UpdateHostedZoneCommentRequest$Id": "

The ID for the hosted zone that you want to update the comment for.

" @@ -1454,12 +1653,26 @@ "refs": { "CreateHealthCheckResponse$Location": "

The unique URL representing the new health check.

", "CreateHostedZoneResponse$Location": "

The unique URL representing the new hosted zone.

", + "CreateQueryLoggingConfigResponse$Location": "

The unique URL representing the new query logging configuration.

", "CreateReusableDelegationSetResponse$Location": "

The unique URL representing the new reusable delegation set.

", "CreateTrafficPolicyInstanceResponse$Location": "

A unique URL that represents a new traffic policy instance.

", "CreateTrafficPolicyResponse$Location": "

A unique URL that represents a new traffic policy.

", "CreateTrafficPolicyVersionResponse$Location": "

A unique URL that represents a new traffic policy version.

" } }, + "ReusableDelegationSetLimit": { + "base": "

A complex type that contains the type of limit that you specified in the request and the current value for that limit.

", + "refs": { + "GetReusableDelegationSetLimitResponse$Limit": "

The current setting for the limit on hosted zones that you can associate with the specified reusable delegation set.

" + } + }, + "ReusableDelegationSetLimitType": { + "base": null, + "refs": { + "GetReusableDelegationSetLimitRequest$Type": "

Specify MAX_ZONES_BY_REUSABLE_DELEGATION_SET to get the maximum number of hosted zones that you can associate with the specified reusable delegation set.

", + "ReusableDelegationSetLimit$Type": "

The limit that you requested: MAX_ZONES_BY_REUSABLE_DELEGATION_SET, the maximum number of hosted zones that you can associate with the specified reusable delegation set.

" + } + }, "SearchString": { "base": null, "refs": { @@ -1467,6 +1680,12 @@ "UpdateHealthCheckRequest$SearchString": "

If the value of Type is HTTP_STR_MATCH or HTTP_STR_MATCH, the string that you want Amazon Route 53 to search for in the response body from the specified resource. If the string appears in the response body, Amazon Route 53 considers the resource healthy. (You can't change the value of Type when you update a health check.)

" } }, + "ServicePrincipal": { + "base": null, + "refs": { + "LinkedService$ServicePrincipal": "

If the health check or hosted zone was created by another service, the service that created the resource. When a resource is created by another service, you can't edit or delete it using Amazon Route 53.

" + } + }, "Statistic": { "base": null, "refs": { @@ -1585,22 +1804,22 @@ } }, "TooManyHealthChecks": { - "base": "

You have reached the maximum number of active health checks for an AWS account. The default limit is 100. To request a higher limit, create a case with the AWS Support Center.

", + "base": "

This health check can't be created because the current account has reached the limit on the number of active health checks.

For information about default limits, see Limits in the Amazon Route 53 Developer Guide.

For information about how to get the current limit for an account, see GetAccountLimit. To request a higher limit, create a case with the AWS Support Center.

You have reached the maximum number of active health checks for an AWS account. To request a higher limit, create a case with the AWS Support Center.

", "refs": { } }, "TooManyHostedZones": { - "base": "

This hosted zone can't be created because the hosted zone limit is exceeded. To request a limit increase, go to the Amazon Route 53 Contact Us page.

", + "base": "

This operation can't be completed either because the current account has reached the limit on the number of hosted zones or because you've reached the limit on the number of hosted zones that can be associated with a reusable delegation set.

For information about default limits, see Limits in the Amazon Route 53 Developer Guide.

To get the current limit on hosted zones that can be created by an account, see GetAccountLimit.

To get the current limit on hosted zones that can be associated with a reusable delegation set, see GetReusableDelegationSetLimit.

To request a higher limit, create a case with the AWS Support Center.

", "refs": { } }, "TooManyTrafficPolicies": { - "base": "

You've created the maximum number of traffic policies that can be created for the current AWS account. You can request an increase to the limit on the Contact Us page.

", + "base": "

This traffic policy can't be created because the current account has reached the limit on the number of traffic policies.

For information about default limits, see Limits in the Amazon Route 53 Developer Guide.

To get the current limit for an account, see GetAccountLimit.

To request a higher limit, create a case with the AWS Support Center.

", "refs": { } }, "TooManyTrafficPolicyInstances": { - "base": "

You've created the maximum number of traffic policy instances that can be created for the current AWS account. You can request an increase to the limit on the Contact Us page.

", + "base": "

This traffic policy instance can't be created because the current account has reached the limit on the number of traffic policy instances.

For information about default limits, see Limits in the Amazon Route 53 Developer Guide.

For information about how to get the current limit for an account, see GetAccountLimit.

To request a higher limit, create a case with the AWS Support Center.

", "refs": { } }, @@ -1680,7 +1899,7 @@ } }, "TrafficPolicyInstanceAlreadyExists": { - "base": "

Traffic policy instance with given Id already exists.

", + "base": "

There is already a traffic policy instance with the specified ID.

", "refs": { } }, @@ -1802,6 +2021,14 @@ "refs": { } }, + "UsageCount": { + "base": null, + "refs": { + "GetAccountLimitResponse$Count": "

The current number of entities that you have created of the specified type. For example, if you specified MAX_HEALTH_CHECKS_BY_OWNER for the value of Type in the request, the value of Count is the current number of health checks that you have created using the current account.

", + "GetHostedZoneLimitResponse$Count": "

The current number of entities that you have created of the specified type. For example, if you specified MAX_RRSETS_BY_ZONE for the value of Type in the request, the value of Count is the current number of records that you have created in the specified hosted zone.

", + "GetReusableDelegationSetLimitResponse$Count": "

The current number of hosted zones that you can associate with the specified reusable delegation set.

" + } + }, "VPC": { "base": "

(Private hosted zones only) A complex type that contains information about an Amazon VPC.

", "refs": { diff --git a/models/apis/route53domains/2014-05-15/api-2.json b/models/apis/route53domains/2014-05-15/api-2.json index cee390c17fb..f291a3d5321 100644 --- a/models/apis/route53domains/2014-05-15/api-2.json +++ b/models/apis/route53domains/2014-05-15/api-2.json @@ -24,6 +24,19 @@ {"shape":"UnsupportedTLD"} ] }, + "CheckDomainTransferability":{ + "name":"CheckDomainTransferability", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CheckDomainTransferabilityRequest"}, + "output":{"shape":"CheckDomainTransferabilityResponse"}, + "errors":[ + {"shape":"InvalidInput"}, + {"shape":"UnsupportedTLD"} + ] + }, "DeleteTagsForDomain":{ "name":"DeleteTagsForDomain", "http":{ @@ -374,6 +387,21 @@ "Availability":{"shape":"DomainAvailability"} } }, + "CheckDomainTransferabilityRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "AuthCode":{"shape":"DomainAuthCode"} + } + }, + "CheckDomainTransferabilityResponse":{ + "type":"structure", + "required":["Transferability"], + "members":{ + "Transferability":{"shape":"DomainTransferability"} + } + }, "City":{ "type":"string", "max":255 @@ -721,8 +749,7 @@ }, "DomainName":{ "type":"string", - "max":255, - "pattern":"[a-zA-Z0-9_\\-.]*" + "max":255 }, "DomainStatus":{"type":"string"}, "DomainStatusList":{ @@ -754,6 +781,12 @@ "type":"list", "member":{"shape":"DomainSummary"} }, + "DomainTransferability":{ + "type":"structure", + "members":{ + "Transferable":{"shape":"Transferable"} + } + }, "DuplicateRequest":{ "type":"structure", "members":{ @@ -831,11 +864,16 @@ "ES_LEGAL_FORM", "FI_BUSINESS_NUMBER", "FI_ID_NUMBER", + "FI_NATIONALITY", + "FI_ORGANIZATION_TYPE", "IT_PIN", + "IT_REGISTRANT_ENTITY_TYPE", "RU_PASSPORT_DATA", "SE_ID_NUMBER", "SG_ID_NUMBER", - "VAT_NUMBER" + "VAT_NUMBER", + "UK_CONTACT_TYPE", + "UK_COMPANY_NUMBER" ] }, "ExtraParamValue":{ @@ -1064,7 +1102,16 @@ "UPDATE_DOMAIN_CONTACT", "UPDATE_NAMESERVER", "CHANGE_PRIVACY_PROTECTION", - "DOMAIN_LOCK" + "DOMAIN_LOCK", + "ENABLE_AUTORENEW", + "DISABLE_AUTORENEW", + "ADD_DNSSEC", + "REMOVE_DNSSEC", + "EXPIRE_DOMAIN", + "TRANSFER_OUT_DOMAIN", + "CHANGE_DOMAIN_OWNER", + "RENEW_DOMAIN", + "PUSH_DOMAIN" ] }, "PageMarker":{ @@ -1226,6 +1273,14 @@ "OperationId":{"shape":"OperationId"} } }, + "Transferable":{ + "type":"string", + "enum":[ + "TRANSFERABLE", + "UNTRANSFERABLE", + "DONT_KNOW" + ] + }, "UnsupportedTLD":{ "type":"structure", "members":{ @@ -1275,7 +1330,10 @@ ], "members":{ "DomainName":{"shape":"DomainName"}, - "FIAuthKey":{"shape":"FIAuthKey"}, + "FIAuthKey":{ + "shape":"FIAuthKey", + "deprecated":true + }, "Nameservers":{"shape":"NameserverList"} } }, diff --git a/models/apis/route53domains/2014-05-15/docs-2.json b/models/apis/route53domains/2014-05-15/docs-2.json index e0932952d89..ccc2cee6908 100644 --- a/models/apis/route53domains/2014-05-15/docs-2.json +++ b/models/apis/route53domains/2014-05-15/docs-2.json @@ -3,7 +3,8 @@ "service": "

Amazon Route 53 API actions let you register domain names and perform related operations.

", "operations": { "CheckDomainAvailability": "

This operation checks the availability of one domain name. Note that if the availability status of a domain is pending, you must submit another request to determine the availability of the domain name.

", - "DeleteTagsForDomain": "

This operation deletes the specified tags for a domain.

All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations.

", + "CheckDomainTransferability": "

Checks whether a domain name can be transferred to Amazon Route 53.

", + "DeleteTagsForDomain": "

This operation deletes the specified tags for a domain.

All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

", "DisableDomainAutoRenew": "

This operation disables automatic renewal of domain registration for the specified domain.

", "DisableDomainTransferLock": "

This operation removes the transfer lock on the domain (specifically the clientTransferProhibited status) to allow domain transfers. We recommend you refrain from performing this action unless you intend to transfer the domain to a different registrar. Successful submission returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", "EnableDomainAutoRenew": "

This operation configures Amazon Route 53 to automatically renew the specified domain before the domain registration expires. The cost of renewing your domain registration is billed to your AWS account.

The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, see \"Renewal, restoration, and deletion times\" on the website for our registrar partner, Gandi. Route 53 requires that you renew before the end of the renewal period that is listed on the Gandi website so we can complete processing before the deadline.

", @@ -14,7 +15,7 @@ "GetOperationDetail": "

This operation returns the current status of an operation that is not completed.

", "ListDomains": "

This operation returns all the domain names registered with Amazon Route 53 for the current AWS account.

", "ListOperations": "

This operation returns the operation IDs of operations that are not yet complete.

", - "ListTagsForDomain": "

This operation returns all of the tags that are associated with the specified domain.

All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations.

", + "ListTagsForDomain": "

This operation returns all of the tags that are associated with the specified domain.

All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

", "RegisterDomain": "

This operation registers a domain. Domains are registered by the AWS registrar partner, Gandi. For some top-level domains (TLDs), this operation requires extra parameters.

When you register a domain, Amazon Route 53 does the following:

  • Creates a Amazon Route 53 hosted zone that has the same name as the domain. Amazon Route 53 assigns four name servers to your hosted zone and automatically updates your domain registration with the names of these name servers.

  • Enables autorenew, so your domain registration will renew automatically each year. We'll notify you in advance of the renewal date so you can choose whether to renew the registration.

  • Optionally enables privacy protection, so WHOIS queries return contact information for our registrar partner, Gandi, instead of the information you entered for registrant, admin, and tech contacts.

  • If registration is successful, returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant is notified by email.

  • Charges your AWS account an amount based on the top-level domain. For more information, see Amazon Route 53 Pricing.

", "RenewDomain": "

This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your AWS account.

We recommend that you renew your domain several weeks before the expiration date. Some TLD registries delete domains before the expiration date if you haven't renewed far enough in advance. For more information about renewing domain registration, see Renewing Registration for a Domain in the Amazon Route 53 Developer Guide.

", "ResendContactReachabilityEmail": "

For operations that require confirmation that the email address for the registrant contact is valid, such as registering a new domain, this operation resends the confirmation email to the current email address for the registrant contact.

", @@ -23,7 +24,7 @@ "UpdateDomainContact": "

This operation updates the contact information for a particular domain. Information for at least one contact (registrant, administrator, or technical) must be supplied for update.

If the update is successful, this method returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", "UpdateDomainContactPrivacy": "

This operation updates the specified domain contact's privacy setting. When the privacy option is enabled, personal information such as postal or email address is hidden from the results of a public WHOIS query. The privacy services are provided by the AWS registrar, Gandi. For more information, see the Gandi privacy features.

This operation only affects the privacy of the specified contact type (registrant, administrator, or tech). Successful acceptance returns an operation ID that you can use with GetOperationDetail to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", "UpdateDomainNameservers": "

This operation replaces the current set of name servers for the domain with the specified set of name servers. If you use Amazon Route 53 as your DNS service, specify the four name servers in the delegation set for the hosted zone for the domain.

If successful, this operation returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", - "UpdateTagsForDomain": "

This operation adds or updates tags for a specified domain.

All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations.

", + "UpdateTagsForDomain": "

This operation adds or updates tags for a specified domain.

All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

", "ViewBilling": "

Returns all the domain-related billing records for the current AWS account for a specified period

" }, "shapes": { @@ -80,6 +81,16 @@ "refs": { } }, + "CheckDomainTransferabilityRequest": { + "base": "

The CheckDomainTransferability request contains the following elements.

", + "refs": { + } + }, + "CheckDomainTransferabilityResponse": { + "base": "

The CheckDomainTransferability response includes the following elements.

", + "refs": { + } + }, "City": { "base": null, "refs": { @@ -176,6 +187,7 @@ "DomainAuthCode": { "base": null, "refs": { + "CheckDomainTransferabilityRequest$AuthCode": "

If the registrar for the top-level domain (TLD) requires an authorization code to transfer the domain, the code that you got from the current registrar for the domain.

", "RetrieveDomainAuthCodeResponse$AuthCode": "

The authorization code for the domain.

", "TransferDomainRequest$AuthCode": "

The authorization code for the domain. You get this value from the current registrar.

" } @@ -183,7 +195,7 @@ "DomainAvailability": { "base": null, "refs": { - "CheckDomainAvailabilityResponse$Availability": "

Whether the domain name is available for registering.

You can only register domains designated as AVAILABLE.

Valid values:

AVAILABLE

The domain name is available.

AVAILABLE_RESERVED

The domain name is reserved under specific conditions.

AVAILABLE_PREORDER

The domain name is available and can be preordered.

DONT_KNOW

The TLD registry didn't reply with a definitive answer about whether the domain name is available. Amazon Route 53 can return this response for a variety of reasons, for example, the registry is performing maintenance. Try again later.

PENDING

The TLD registry didn't return a response in the expected amount of time. When the response is delayed, it usually takes just a few extra seconds. You can resubmit the request immediately.

RESERVED

The domain name has been reserved for another person or organization.

UNAVAILABLE

The domain name is not available.

UNAVAILABLE_PREMIUM

The domain name is not available.

UNAVAILABLE_RESTRICTED

The domain name is forbidden.

" + "CheckDomainAvailabilityResponse$Availability": "

Whether the domain name is available for registering.

You can register only domains designated as AVAILABLE.

Valid values:

AVAILABLE

The domain name is available.

AVAILABLE_RESERVED

The domain name is reserved under specific conditions.

AVAILABLE_PREORDER

The domain name is available and can be preordered.

DONT_KNOW

The TLD registry didn't reply with a definitive answer about whether the domain name is available. Amazon Route 53 can return this response for a variety of reasons, for example, the registry is performing maintenance. Try again later.

PENDING

The TLD registry didn't return a response in the expected amount of time. When the response is delayed, it usually takes just a few extra seconds. You can resubmit the request immediately.

RESERVED

The domain name has been reserved for another person or organization.

UNAVAILABLE

The domain name is not available.

UNAVAILABLE_PREMIUM

The domain name is not available.

UNAVAILABLE_RESTRICTED

The domain name is forbidden.

" } }, "DomainLimitExceeded": { @@ -196,6 +208,7 @@ "refs": { "BillingRecord$DomainName": "

The name of the domain that the billing record applies to. If the domain name contains characters other than a-z, 0-9, and - (hyphen), such as an internationalized domain name, then this value is in Punycode. For more information, see DNS Domain Name Format in the Amazon Route 53 Developer Guidezzz.

", "CheckDomainAvailabilityRequest$DomainName": "

The name of the domain that you want to get availability for.

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

", + "CheckDomainTransferabilityRequest$DomainName": "

The name of the domain that you want to transfer to Amazon Route 53.

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

", "DeleteTagsForDomainRequest$DomainName": "

The domain for which you want to delete one or more tags.

", "DisableDomainAutoRenewRequest$DomainName": "

The name of the domain that you want to disable automatic renewal for.

", "DisableDomainTransferLockRequest$DomainName": "

The name of the domain that you want to remove the transfer lock for.

", @@ -258,6 +271,12 @@ "ListDomainsResponse$Domains": "

A summary of domains.

" } }, + "DomainTransferability": { + "base": null, + "refs": { + "CheckDomainTransferabilityResponse$Transferability": "

A complex type that contains information about whether the specified domain can be transferred to Amazon Route 53.

" + } + }, "DuplicateRequest": { "base": "

The request is already in progress for the domain.

", "refs": { @@ -305,10 +324,10 @@ "DomainLimitExceeded$message": "

The number of domains has exceeded the allowed threshold for the account.

", "DuplicateRequest$message": "

The request is already in progress for the domain.

", "GetOperationDetailResponse$Message": "

Detailed information on the status including possible errors.

", - "InvalidInput$message": "

The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.

", + "InvalidInput$message": "

The requested item is not acceptable. For example, for an OperationId it might refer to the ID of an operation that is already completed. For a domain name, it might not be a valid domain name or belong to the requester account.

", "OperationLimitExceeded$message": "

The number of operations or jobs running exceeded the allowed threshold for the account.

", "TLDRulesViolation$message": "

The top-level domain does not support this operation.

", - "UnsupportedTLD$message": "

Amazon Route 53 does not support this top-level domain.

" + "UnsupportedTLD$message": "

Amazon Route 53 does not support this top-level domain (TLD).

" } }, "ExtraParam": { @@ -406,7 +425,7 @@ } }, "InvalidInput": { - "base": "

The requested item is not acceptable. For example, for an OperationId it may refer to the ID of an operation that is already completed. For a domain name, it may not be a valid domain name or belong to the requester account.

", + "base": "

The requested item is not acceptable. For example, for an OperationId it might refer to the ID of an operation that is already completed. For a domain name, it might not be a valid domain name or belong to the requester account.

", "refs": { } }, @@ -690,8 +709,14 @@ "refs": { } }, + "Transferable": { + "base": "

Whether the domain name can be transferred to Amazon Route 53.

You can transfer only domains that have a value of TRANSFERABLE for Transferable.

Valid values:

TRANSFERABLE

The domain name can be transferred to Amazon Route 53.

UNTRANSFERRABLE

The domain name can't be transferred to Amazon Route 53.

DONT_KNOW

Reserved for future use.

", + "refs": { + "DomainTransferability$Transferable": null + } + }, "UnsupportedTLD": { - "base": "

Amazon Route 53 does not support this top-level domain.

", + "base": "

Amazon Route 53 does not support this top-level domain (TLD).

", "refs": { } }, diff --git a/models/apis/runtime.lex/2016-11-28/api-2.json b/models/apis/runtime.lex/2016-11-28/api-2.json index d47e4edd92c..91d42c10f98 100644 --- a/models/apis/runtime.lex/2016-11-28/api-2.json +++ b/models/apis/runtime.lex/2016-11-28/api-2.json @@ -56,6 +56,10 @@ }, "shapes":{ "Accept":{"type":"string"}, + "AttributesString":{ + "type":"string", + "sensitive":true + }, "BadGatewayException":{ "type":"structure", "members":{ @@ -215,11 +219,17 @@ "locationName":"userId" }, "sessionAttributes":{ - "shape":"String", + "shape":"AttributesString", "jsonvalue":true, "location":"header", "locationName":"x-amz-lex-session-attributes" }, + "requestAttributes":{ + "shape":"AttributesString", + "jsonvalue":true, + "location":"header", + "locationName":"x-amz-lex-request-attributes" + }, "contentType":{ "shape":"HttpContentType", "location":"header", @@ -308,6 +318,7 @@ "locationName":"userId" }, "sessionAttributes":{"shape":"StringMap"}, + "requestAttributes":{"shape":"StringMap"}, "inputText":{"shape":"Text"} } }, @@ -343,7 +354,8 @@ "StringMap":{ "type":"map", "key":{"shape":"String"}, - "value":{"shape":"String"} + "value":{"shape":"String"}, + "sensitive":true }, "StringUrlWithLength":{ "type":"string", @@ -358,7 +370,8 @@ "Text":{ "type":"string", "max":1024, - "min":1 + "min":1, + "sensitive":true }, "UnsupportedMediaTypeException":{ "type":"structure", diff --git a/models/apis/runtime.lex/2016-11-28/docs-2.json b/models/apis/runtime.lex/2016-11-28/docs-2.json index fb52a9b7072..00f049c8fb1 100644 --- a/models/apis/runtime.lex/2016-11-28/docs-2.json +++ b/models/apis/runtime.lex/2016-11-28/docs-2.json @@ -2,7 +2,7 @@ "version": "2.0", "service": "

Amazon Lex provides both build and runtime endpoints. Each endpoint provides a set of operations (API). Your conversational bot uses the runtime API to understand user utterances (user input text or voice). For example, suppose a user says \"I want pizza\", your bot sends this input to Amazon Lex using the runtime API. Amazon Lex recognizes that the user request is for the OrderPizza intent (one of the intents defined in the bot). Then Amazon Lex engages in user conversation on behalf of the bot to elicit required information (slot values, such as pizza size and crust type), and then performs fulfillment activity (that you configured when you created the bot). You use the build-time API to create and manage your Amazon Lex bot. For a list of build-time operations, see the build-time API, .

", "operations": { - "PostContent": "

Sends user input (text or speech) to Amazon Lex. Clients use this API to send requests to Amazon Lex at runtime. Amazon Lex interprets the user input using the machine learning model that it built for the bot.

In response, Amazon Lex returns the next message to convey to the user. Consider the following example messages:

  • For a user input \"I would like a pizza,\" Amazon Lex might return a response with a message eliciting slot data (for example, PizzaSize): \"What size pizza would you like?\".

  • After the user provides all of the pizza order information, Amazon Lex might return a response with a message to get user confirmation: \"Order the pizza?\".

  • After the user replies \"Yes\" to the confirmation prompt, Amazon Lex might return a conclusion statement: \"Thank you, your cheese pizza has been ordered.\".

Not all Amazon Lex messages require a response from the user. For example, conclusion statements do not require a response. Some messages require only a yes or no response. In addition to the message, Amazon Lex provides additional context about the message in the response that you can use to enhance client behavior, such as displaying the appropriate client user interface. Consider the following examples:

  • If the message is to elicit slot data, Amazon Lex returns the following context information:

    • x-amz-lex-dialog-state header set to ElicitSlot

    • x-amz-lex-intent-name header set to the intent name in the current context

    • x-amz-lex-slot-to-elicit header set to the slot name for which the message is eliciting information

    • x-amz-lex-slots header set to a map of slots configured for the intent with their current values

  • If the message is a confirmation prompt, the x-amz-lex-dialog-state header is set to Confirmation and the x-amz-lex-slot-to-elicit header is omitted.

  • If the message is a clarification prompt configured for the intent, indicating that the user intent is not understood, the x-amz-dialog-state header is set to ElicitIntent and the x-amz-slot-to-elicit header is omitted.

In addition, Amazon Lex also returns your application-specific sessionAttributes. For more information, see Managing Conversation Context.

", + "PostContent": "

Sends user input (text or speech) to Amazon Lex. Clients use this API to send text and audio requests to Amazon Lex at runtime. Amazon Lex interprets the user input using the machine learning model that it built for the bot.

The PostContent operation supports audio input at 8kHz and 16kHz. You can use 8kHz audio to achieve higher speech recognition accuracy in telephone audio applications.

In response, Amazon Lex returns the next message to convey to the user. Consider the following example messages:

  • For a user input \"I would like a pizza,\" Amazon Lex might return a response with a message eliciting slot data (for example, PizzaSize): \"What size pizza would you like?\".

  • After the user provides all of the pizza order information, Amazon Lex might return a response with a message to get user confirmation: \"Order the pizza?\".

  • After the user replies \"Yes\" to the confirmation prompt, Amazon Lex might return a conclusion statement: \"Thank you, your cheese pizza has been ordered.\".

Not all Amazon Lex messages require a response from the user. For example, conclusion statements do not require a response. Some messages require only a yes or no response. In addition to the message, Amazon Lex provides additional context about the message in the response that you can use to enhance client behavior, such as displaying the appropriate client user interface. Consider the following examples:

  • If the message is to elicit slot data, Amazon Lex returns the following context information:

    • x-amz-lex-dialog-state header set to ElicitSlot

    • x-amz-lex-intent-name header set to the intent name in the current context

    • x-amz-lex-slot-to-elicit header set to the slot name for which the message is eliciting information

    • x-amz-lex-slots header set to a map of slots configured for the intent with their current values

  • If the message is a confirmation prompt, the x-amz-lex-dialog-state header is set to Confirmation and the x-amz-lex-slot-to-elicit header is omitted.

  • If the message is a clarification prompt configured for the intent, indicating that the user intent is not understood, the x-amz-dialog-state header is set to ElicitIntent and the x-amz-slot-to-elicit header is omitted.

In addition, Amazon Lex also returns your application-specific sessionAttributes. For more information, see Managing Conversation Context.

", "PostText": "

Sends user input (text-only) to Amazon Lex. Client applications can use this API to send requests to Amazon Lex at runtime. Amazon Lex then interprets the user input using the machine learning model it built for the bot.

In response, Amazon Lex returns the next message to convey to the user an optional responseCard to display. Consider the following example messages:

  • For a user input \"I would like a pizza\", Amazon Lex might return a response with a message eliciting slot data (for example, PizzaSize): \"What size pizza would you like?\"

  • After the user provides all of the pizza order information, Amazon Lex might return a response with a message to obtain user confirmation \"Proceed with the pizza order?\".

  • After the user replies to a confirmation prompt with a \"yes\", Amazon Lex might return a conclusion statement: \"Thank you, your cheese pizza has been ordered.\".

Not all Amazon Lex messages require a user response. For example, a conclusion statement does not require a response. Some messages require only a \"yes\" or \"no\" user response. In addition to the message, Amazon Lex provides additional context about the message in the response that you might use to enhance client behavior, for example, to display the appropriate client user interface. These are the slotToElicit, dialogState, intentName, and slots fields in the response. Consider the following examples:

  • If the message is to elicit slot data, Amazon Lex returns the following context information:

    • dialogState set to ElicitSlot

    • intentName set to the intent name in the current context

    • slotToElicit set to the slot name for which the message is eliciting information

    • slots set to a map of slots, configured for the intent, with currently known values

  • If the message is a confirmation prompt, the dialogState is set to ConfirmIntent and SlotToElicit is set to null.

  • If the message is a clarification prompt (configured for the intent) that indicates that user intent is not understood, the dialogState is set to ElicitIntent and slotToElicit is set to null.

In addition, Amazon Lex also returns your application-specific sessionAttributes. For more information, see Managing Conversation Context.

" }, "shapes": { @@ -12,20 +12,27 @@ "PostContentRequest$accept": "

You pass this value as the Accept HTTP header.

The message Amazon Lex returns in the response can be either text or speech based on the Accept HTTP header value in the request.

  • If the value is text/plain; charset=utf-8, Amazon Lex returns text in the response.

  • If the value begins with audio/, Amazon Lex returns speech in the response. Amazon Lex uses Amazon Polly to generate the speech (using the configuration you specified in the Accept header). For example, if you specify audio/mpeg as the value, Amazon Lex returns speech in the MPEG format.

    The following are the accepted values:

    • audio/mpeg

    • audio/ogg

    • audio/pcm

    • text/plain; charset=utf-8

    • audio/* (defaults to mpeg)

" } }, + "AttributesString": { + "base": null, + "refs": { + "PostContentRequest$sessionAttributes": "

You pass this value as the x-amz-lex-session-attributes HTTP header.

Application-specific information passed between Amazon Lex and a client application. The value must be a JSON serialized and base64 encoded map with string keys and values. The total size of the sessionAttributes and requestAttributes headers is limited to 12 KB.

For more information, see Setting Session Attributes.

", + "PostContentRequest$requestAttributes": "

You pass this value as the x-amz-lex-request-attributes HTTP header.

Request-specific information passed between Amazon Lex and a client application. The value must be a JSON serialized and base64 encoded map with string keys and values. The total size of the requestAttributes and sessionAttributes headers is limited to 12 KB.

The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes with the prefix x-amz-lex:.

For more information, see Setting Request Attributes.

" + } + }, "BadGatewayException": { "base": "

Either the Amazon Lex bot is still building, or one of the dependent services (Amazon Polly, AWS Lambda) failed with an internal service error.

", "refs": { } }, "BadRequestException": { - "base": "

Request validation failed, there is no usable message in the context, or the bot build failed.

", + "base": "

Request validation failed, there is no usable message in the context, or the bot build failed, is still in progress, or contains unbuilt changes.

", "refs": { } }, "BlobStream": { "base": null, "refs": { - "PostContentRequest$inputStream": "

User input in PCM or Opus audio format or text format as described in the Content-Type HTTP header.

", + "PostContentRequest$inputStream": "

User input in PCM or Opus audio format or text format as described in the Content-Type HTTP header.

You can stream audio data to Amazon Lex or you can create a local buffer that captures all of the audio data before sending. In general, you get better performance if you stream audio data rather than buffering the data locally.

", "PostContentResponse$audioStream": "

The prompt (or statement) to convey to the user. This is based on the bot configuration and context. For example, if Amazon Lex did not understand the user intent, it sends the clarificationPrompt configured for the bot. If the intent requires confirmation before taking the fulfillment action, it sends the confirmationPrompt. Another example: Suppose that the Lambda function successfully fulfilled the intent, and sent a message to convey to the user. Then Amazon Lex sends that message in the response.

" } }, @@ -73,15 +80,15 @@ } }, "DependencyFailedException": { - "base": "

One of the downstream dependencies, such as AWS Lambda or Amazon Polly, threw an exception. For example, if Amazon Lex does not have sufficient permissions to call a Lambda function, it results in Lambda throwing an exception.

", + "base": "

One of the dependencies, such as AWS Lambda or Amazon Polly, threw an exception. For example,

  • If Amazon Lex does not have sufficient permissions to call a Lambda function.

  • If a Lambda function takes longer than 30 seconds to execute.

  • If a fulfillment Lambda function returns a Delegate dialog action without removing any slot values.

", "refs": { } }, "DialogState": { "base": null, "refs": { - "PostContentResponse$dialogState": "

Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface.

  • ElicitIntent – Amazon Lex wants to elicit the user's intent. Consider the following examples:

    For example, a user might utter an intent (\"I want to order a pizza\"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialog state.

  • ConfirmIntent – Amazon Lex is expecting a \"yes\" or \"no\" response.

    For example, Amazon Lex wants user confirmation before fulfilling an intent. Instead of a simple \"yes\" or \"no\" response, a user might respond with additional information. For example, \"yes, but make it a thick crust pizza\" or \"no, I want to order a drink.\" Amazon Lex can process such additional information (in these examples, update the crust type slot or change the intent from OrderPizza to OrderDrink).

  • ElicitSlot – Amazon Lex is expecting the value of a slot for the current intent.

    For example, suppose that in the response Amazon Lex sends this message: \"What size pizza would you like?\". A user might reply with the slot value (e.g., \"medium\"). The user might also provide additional information in the response (e.g., \"medium thick crust pizza\"). Amazon Lex can process such additional information appropriately.

  • Fulfilled – Conveys that the Lambda function has successfully fulfilled the intent.

  • ReadyForFulfillment – Conveys that the client has to fullfill the request.

  • Failed – Conveys that the conversation with the user failed.

    This can happen for various reasons, including that the user does not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or if the Lambda function fails to fulfill the intent.

", - "PostTextResponse$dialogState": "

Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface.

  • ElicitIntent – Amazon Lex wants to elicit user intent.

    For example, a user might utter an intent (\"I want to order a pizza\"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialogState.

  • ConfirmIntent – Amazon Lex is expecting a \"yes\" or \"no\" response.

    For example, Amazon Lex wants user confirmation before fulfilling an intent.

    Instead of a simple \"yes\" or \"no,\" a user might respond with additional information. For example, \"yes, but make it thick crust pizza\" or \"no, I want to order a drink\". Amazon Lex can process such additional information (in these examples, update the crust type slot value, or change intent from OrderPizza to OrderDrink).

  • ElicitSlot – Amazon Lex is expecting a slot value for the current intent.

    For example, suppose that in the response Amazon Lex sends this message: \"What size pizza would you like?\". A user might reply with the slot value (e.g., \"medium\"). The user might also provide additional information in the response (e.g., \"medium thick crust pizza\"). Amazon Lex can process such additional information appropriately.

  • Fulfilled – Conveys that the Lambda function configured for the intent has successfully fulfilled the intent.

  • ReadyForFulfillment – Conveys that the client has to fulfill the intent.

  • Failed – Conveys that the conversation with the user failed.

    This can happen for various reasons including that the user did not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or the Lambda function failed to fulfill the intent.

" + "PostContentResponse$dialogState": "

Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface.

  • ElicitIntent - Amazon Lex wants to elicit the user's intent. Consider the following examples:

    For example, a user might utter an intent (\"I want to order a pizza\"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialog state.

  • ConfirmIntent - Amazon Lex is expecting a \"yes\" or \"no\" response.

    For example, Amazon Lex wants user confirmation before fulfilling an intent. Instead of a simple \"yes\" or \"no\" response, a user might respond with additional information. For example, \"yes, but make it a thick crust pizza\" or \"no, I want to order a drink.\" Amazon Lex can process such additional information (in these examples, update the crust type slot or change the intent from OrderPizza to OrderDrink).

  • ElicitSlot - Amazon Lex is expecting the value of a slot for the current intent.

    For example, suppose that in the response Amazon Lex sends this message: \"What size pizza would you like?\". A user might reply with the slot value (e.g., \"medium\"). The user might also provide additional information in the response (e.g., \"medium thick crust pizza\"). Amazon Lex can process such additional information appropriately.

  • Fulfilled - Conveys that the Lambda function has successfully fulfilled the intent.

  • ReadyForFulfillment - Conveys that the client has to fulfill the request.

  • Failed - Conveys that the conversation with the user failed.

    This can happen for various reasons, including that the user does not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or if the Lambda function fails to fulfill the intent.

", + "PostTextResponse$dialogState": "

Identifies the current state of the user interaction. Amazon Lex returns one of the following values as dialogState. The client can optionally use this information to customize the user interface.

  • ElicitIntent - Amazon Lex wants to elicit user intent.

    For example, a user might utter an intent (\"I want to order a pizza\"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialogState.

  • ConfirmIntent - Amazon Lex is expecting a \"yes\" or \"no\" response.

    For example, Amazon Lex wants user confirmation before fulfilling an intent.

    Instead of a simple \"yes\" or \"no,\" a user might respond with additional information. For example, \"yes, but make it thick crust pizza\" or \"no, I want to order a drink\". Amazon Lex can process such additional information (in these examples, update the crust type slot value, or change intent from OrderPizza to OrderDrink).

  • ElicitSlot - Amazon Lex is expecting a slot value for the current intent.

    For example, suppose that in the response Amazon Lex sends this message: \"What size pizza would you like?\". A user might reply with the slot value (e.g., \"medium\"). The user might also provide additional information in the response (e.g., \"medium thick crust pizza\"). Amazon Lex can process such additional information appropriately.

  • Fulfilled - Conveys that the Lambda function configured for the intent has successfully fulfilled the intent.

  • ReadyForFulfillment - Conveys that the client has to fulfill the intent.

  • Failed - Conveys that the conversation with the user failed.

    This can happen for various reasons including that the user did not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or the Lambda function failed to fulfill the intent.

" } }, "ErrorMessage": { @@ -101,7 +108,7 @@ "HttpContentType": { "base": null, "refs": { - "PostContentRequest$contentType": "

You pass this values as the Content-Type HTTP header.

Indicates the audio format or text. The header value must start with one of the following prefixes:

  • PCM format

    • audio/l16; rate=16000; channels=1

    • audio/x-l16; sample-rate=16000; channel-count=1

  • Opus format

    • audio/x-cbr-opus-with-preamble; preamble-size=0; bit-rate=1; frame-size-milliseconds=1.1

  • Text format

    • text/plain; charset=utf-8

", + "PostContentRequest$contentType": "

You pass this value as the Content-Type HTTP header.

Indicates the audio format or text. The header value must start with one of the following prefixes:

  • PCM format, audio data must be in little-endian byte order.

    • audio/l16; rate=16000; channels=1

    • audio/x-l16; sample-rate=16000; channel-count=1

    • audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false

  • Opus format

    • audio/x-cbr-opus-with-preamble; preamble-size=0; bit-rate=256000; frame-size-milliseconds=4

  • Text format

    • text/plain; charset=utf-8

", "PostContentResponse$contentType": "

Content type as specified in the Accept HTTP header in the request.

" } }, @@ -123,7 +130,7 @@ } }, "LoopDetectedException": { - "base": "

Lambda fulfilment function returned DelegateDialogAction to Amazon Lex without changing any slot values.

", + "base": "

This exception is not used.

", "refs": { } }, @@ -178,11 +185,10 @@ "LimitExceededException$message": null, "NotAcceptableException$message": null, "NotFoundException$message": null, - "PostContentRequest$sessionAttributes": "

You pass this value in the x-amz-lex-session-attributes HTTP header. The value must be map (keys and values must be strings) that is JSON serialized and then base64 encoded.

A session represents dialog between a user and Amazon Lex. At runtime, a client application can pass contextual information, in the request to Amazon Lex. For example,

  • You might use session attributes to track the requestID of user requests.

  • In Getting Started Exercise 1, the example bot uses the price session attribute to maintain the price of flowers ordered (for example, \"price\":25). The code hook (Lambda function) sets this attribute based on the type of flowers ordered. For more information, see Review the Details of Information Flow.

  • In the BookTrip bot exercise, the bot uses the currentReservation session attribute to maintains the slot data during the in-progress conversation to book a hotel or book a car. For more information, see Details of Information Flow.

Amazon Lex passes these session attributes to the Lambda functions configured for the intent In the your Lambda function, you can use the session attributes for initialization and customization (prompts). Some examples are:

  • Initialization - In a pizza ordering bot, if you pass user location (for example, \"Location : 111 Maple Street\"), then your Lambda function might use this information to determine the closest pizzeria to place the order (and perhaps set the storeAddress slot value as well).

    Personalized prompts - For example, you can configure prompts to refer to the user by name (for example, \"Hey [firstName], what toppings would you like?\"). You can pass the user's name as a session attribute (\"firstName\": \"Joe\") so that Amazon Lex can substitute the placeholder to provide a personalized prompt to the user (\"Hey Joe, what toppings would you like?\").

Amazon Lex does not persist session attributes.

If you configured a code hook for the intent, Amazon Lex passes the incoming session attributes to the Lambda function. The Lambda function must return these session attributes if you want Amazon Lex to return them to the client.

If there is no code hook configured for the intent Amazon Lex simply returns the session attributes to the client application.

", - "PostContentResponse$slots": "

Map of zero or more intent slots (name/value pairs) Amazon Lex detected from the user input during the conversation.

", + "PostContentResponse$slots": "

Map of zero or more intent slots (name/value pairs) Amazon Lex detected from the user input during the conversation.

Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the valueSelectionStrategy selected when the slot type was created or updated. If valueSelectionStrategy is set to ORIGINAL_VALUE, the value provided by the user is returned, if the user value is similar to the slot values. If valueSelectionStrategy is set to TOP_RESOLUTION Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy, the default is ORIGINAL_VALUE.

", "PostContentResponse$sessionAttributes": "

Map of key/value pairs representing the session-specific context information.

", "PostContentResponse$slotToElicit": "

If the dialogState value is ElicitSlot, returns the name of the slot for which Amazon Lex is eliciting a value.

", - "PostContentResponse$inputTranscript": "

Transcript of the voice input to the operation.

", + "PostContentResponse$inputTranscript": "

The text used to process the request.

If the input was an audio stream, the inputTranscript field contains the text extracted from the audio stream. This is the text that is actually processed to recognize intents and slot values. You can use this information to determine if Amazon Lex is correctly processing the audio that you send.

", "PostTextResponse$slotToElicit": "

If the dialogState value is ElicitSlot, returns the name of the slot for which Amazon Lex is eliciting a value.

", "RequestTimeoutException$message": null, "ResponseCard$version": "

The version of the response card format.

", @@ -194,8 +200,9 @@ "StringMap": { "base": null, "refs": { - "PostTextRequest$sessionAttributes": "

By using session attributes, a client application can pass contextual information in the request to Amazon Lex For example,

  • In Getting Started Exercise 1, the example bot uses the price session attribute to maintain the price of the flowers ordered (for example, \"Price\":25). The code hook (the Lambda function) sets this attribute based on the type of flowers ordered. For more information, see Review the Details of Information Flow.

  • In the BookTrip bot exercise, the bot uses the currentReservation session attribute to maintain slot data during the in-progress conversation to book a hotel or book a car. For more information, see Details of Information Flow.

  • You might use the session attributes (key, value pairs) to track the requestID of user requests.

Amazon Lex simply passes these session attributes to the Lambda functions configured for the intent.

In your Lambda function, you can also use the session attributes for initialization and customization (prompts and response cards). Some examples are:

  • Initialization - In a pizza ordering bot, if you can pass the user location as a session attribute (for example, \"Location\" : \"111 Maple street\"), then your Lambda function might use this information to determine the closest pizzeria to place the order (perhaps to set the storeAddress slot value).

  • Personalize prompts - For example, you can configure prompts to refer to the user name. (For example, \"Hey [FirstName], what toppings would you like?\"). You can pass the user name as a session attribute (\"FirstName\" : \"Joe\") so that Amazon Lex can substitute the placeholder to provide a personalize prompt to the user (\"Hey Joe, what toppings would you like?\").

Amazon Lex does not persist session attributes.

If you configure a code hook for the intent, Amazon Lex passes the incoming session attributes to the Lambda function. If you want Amazon Lex to return these session attributes back to the client, the Lambda function must return them.

If there is no code hook configured for the intent, Amazon Lex simply returns the session attributes back to the client application.

", - "PostTextResponse$slots": "

The intent slots (name/value pairs) that Amazon Lex detected so far from the user input in the conversation.

", + "PostTextRequest$sessionAttributes": "

Application-specific information passed between Amazon Lex and a client application.

For more information, see Setting Session Attributes.

", + "PostTextRequest$requestAttributes": "

Request-specific information passed between Amazon Lex and a client application.

The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes with the prefix x-amz-lex:.

For more information, see Setting Request Attributes.

", + "PostTextResponse$slots": "

The intent slots that Amazon Lex detected from the user input in the conversation.

Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the valueSelectionStrategy selected when the slot type was created or updated. If valueSelectionStrategy is set to ORIGINAL_VALUE, the value provided by the user is returned, if the user value is similar to the slot values. If valueSelectionStrategy is set to TOP_RESOLUTION Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy, the default is ORIGINAL_VALUE.

", "PostTextResponse$sessionAttributes": "

A map of key-value pairs representing the session-specific context information.

" } }, @@ -229,8 +236,8 @@ "UserId": { "base": null, "refs": { - "PostContentRequest$userId": "

ID of the client application user. Typically, each of your application users should have a unique ID. The application developer decides the user IDs. At runtime, each request must include the user ID. Note the following considerations:

  • If you want a user to start conversation on one device and continue the conversation on another device, you might choose a user-specific identifier, such as the user's login, or Amazon Cognito user ID (assuming your application is using Amazon Cognito).

  • If you want the same user to be able to have two independent conversations on two different devices, you might choose device-specific identifier, such as device ID, or some globally unique identifier.

", - "PostTextRequest$userId": "

The ID of the client application user. The application developer decides the user IDs. At runtime, each request must include the user ID. Typically, each of your application users should have a unique ID. Note the following considerations:

  • If you want a user to start a conversation on one device and continue the conversation on another device, you might choose a user-specific identifier, such as a login or Amazon Cognito user ID (assuming your application is using Amazon Cognito).

  • If you want the same user to be able to have two independent conversations on two different devices, you might choose a device-specific identifier, such as device ID, or some globally unique identifier.

" + "PostContentRequest$userId": "

The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. At runtime, each request must contain the userID field.

To decide the user ID to use for your application, consider the following factors.

  • The userID field must not contain any personally identifiable information of the user, for example, name, personal identification numbers, or other end user personal information.

  • If you want a user to start a conversation on one device and continue on another device, use a user-specific identifier.

  • If you want the same user to be able to have two independent conversations on two different devices, choose a device-specific identifier.

  • A user can't have two independent conversations with two different versions of the same bot. For example, a user can't have a conversation with the PROD and BETA versions of the same bot. If you anticipate that a user will need to have conversation with two different versions, for example, while testing, include the bot alias in the user ID to separate the two conversations.

", + "PostTextRequest$userId": "

The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. At runtime, each request must contain the userID field.

To decide the user ID to use for your application, consider the following factors.

  • The userID field must not contain any personally identifiable information of the user, for example, name, personal identification numbers, or other end user personal information.

  • If you want a user to start a conversation on one device and continue on another device, use a user-specific identifier.

  • If you want the same user to be able to have two independent conversations on two different devices, choose a device-specific identifier.

  • A user can't have two independent conversations with two different versions of the same bot. For example, a user can't have a conversation with the PROD and BETA versions of the same bot. If you anticipate that a user will need to have conversation with two different versions, for example, while testing, include the bot alias in the user ID to separate the two conversations.

" } }, "genericAttachmentList": { diff --git a/models/apis/runtime.sagemaker/2017-05-13/api-2.json b/models/apis/runtime.sagemaker/2017-05-13/api-2.json new file mode 100644 index 00000000000..6381995c54a --- /dev/null +++ b/models/apis/runtime.sagemaker/2017-05-13/api-2.json @@ -0,0 +1,134 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-05-13", + "endpointPrefix":"runtime.sagemaker", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon SageMaker Runtime", + "serviceId":"SageMaker Runtime", + "signatureVersion":"v4", + "signingName":"sagemaker", + "uid":"runtime.sagemaker-2017-05-13" + }, + "operations":{ + "InvokeEndpoint":{ + "name":"InvokeEndpoint", + "http":{ + "method":"POST", + "requestUri":"/endpoints/{EndpointName}/invocations" + }, + "input":{"shape":"InvokeEndpointInput"}, + "output":{"shape":"InvokeEndpointOutput"}, + "errors":[ + {"shape":"InternalFailure"}, + {"shape":"ServiceUnavailable"}, + {"shape":"ValidationError"}, + {"shape":"ModelError"} + ] + } + }, + "shapes":{ + "BodyBlob":{ + "type":"blob", + "max":5242880, + "sensitive":true + }, + "EndpointName":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "Header":{ + "type":"string", + "max":1024 + }, + "InternalFailure":{ + "type":"structure", + "members":{ + "Message":{"shape":"Message"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "InvokeEndpointInput":{ + "type":"structure", + "required":[ + "EndpointName", + "Body" + ], + "members":{ + "EndpointName":{ + "shape":"EndpointName", + "location":"uri", + "locationName":"EndpointName" + }, + "Body":{"shape":"BodyBlob"}, + "ContentType":{ + "shape":"Header", + "location":"header", + "locationName":"Content-Type" + }, + "Accept":{ + "shape":"Header", + "location":"header", + "locationName":"Accept" + } + }, + "payload":"Body" + }, + "InvokeEndpointOutput":{ + "type":"structure", + "required":["Body"], + "members":{ + "Body":{"shape":"BodyBlob"}, + "ContentType":{ + "shape":"Header", + "location":"header", + "locationName":"Content-Type" + }, + "InvokedProductionVariant":{ + "shape":"Header", + "location":"header", + "locationName":"x-Amzn-Invoked-Production-Variant" + } + }, + "payload":"Body" + }, + "LogStreamArn":{"type":"string"}, + "Message":{ + "type":"string", + "max":2048 + }, + "ModelError":{ + "type":"structure", + "members":{ + "Message":{"shape":"Message"}, + "OriginalStatusCode":{"shape":"StatusCode"}, + "OriginalMessage":{"shape":"Message"}, + "LogStreamArn":{"shape":"LogStreamArn"} + }, + "error":{"httpStatusCode":424}, + "exception":true + }, + "ServiceUnavailable":{ + "type":"structure", + "members":{ + "Message":{"shape":"Message"} + }, + "error":{"httpStatusCode":503}, + "exception":true, + "fault":true + }, + "StatusCode":{"type":"integer"}, + "ValidationError":{ + "type":"structure", + "members":{ + "Message":{"shape":"Message"} + }, + "error":{"httpStatusCode":400}, + "exception":true + } + } +} diff --git a/models/apis/runtime.sagemaker/2017-05-13/docs-2.json b/models/apis/runtime.sagemaker/2017-05-13/docs-2.json new file mode 100644 index 00000000000..04927bdce5a --- /dev/null +++ b/models/apis/runtime.sagemaker/2017-05-13/docs-2.json @@ -0,0 +1,83 @@ +{ + "version": "2.0", + "service": "

Amazon SageMaker runtime API.

", + "operations": { + "InvokeEndpoint": "

After you deploy a model into production using Amazon SageMaker hosting services, your client applications use this API to get inferences from the model hosted at the specified endpoint.

For an overview of Amazon SageMaker, see How It Works

Amazon SageMaker strips all POST headers except those supported by the API. Amazon SageMaker might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax.

" + }, + "shapes": { + "BodyBlob": { + "base": null, + "refs": { + "InvokeEndpointInput$Body": "

Provides input data, in the format specified in the ContentType request header. Amazon SageMaker passes all of the data in the body to the model.

", + "InvokeEndpointOutput$Body": "

Includes the inference provided by the model.

" + } + }, + "EndpointName": { + "base": null, + "refs": { + "InvokeEndpointInput$EndpointName": "

The name of the endpoint that you specified when you created the endpoint using the CreateEndpoint API.

" + } + }, + "Header": { + "base": null, + "refs": { + "InvokeEndpointInput$ContentType": "

The MIME type of the input data in the request body.

", + "InvokeEndpointInput$Accept": "

The desired MIME type of the inference in the response.

", + "InvokeEndpointOutput$ContentType": "

The MIME type of the inference returned in the response body.

", + "InvokeEndpointOutput$InvokedProductionVariant": "

Identifies the production variant that was invoked.

" + } + }, + "InternalFailure": { + "base": "

Internal failure occurred.

", + "refs": { + } + }, + "InvokeEndpointInput": { + "base": null, + "refs": { + } + }, + "InvokeEndpointOutput": { + "base": null, + "refs": { + } + }, + "LogStreamArn": { + "base": null, + "refs": { + "ModelError$LogStreamArn": "

Amazon Resource Name (ARN) of the log stream.

" + } + }, + "Message": { + "base": null, + "refs": { + "InternalFailure$Message": null, + "ModelError$Message": null, + "ModelError$OriginalMessage": "

Original message.

", + "ServiceUnavailable$Message": null, + "ValidationError$Message": null + } + }, + "ModelError": { + "base": "

Model (owned by the customer in the container) returned an error 500.

", + "refs": { + } + }, + "ServiceUnavailable": { + "base": "

Service is unavailable. Try your call again.

", + "refs": { + } + }, + "StatusCode": { + "base": null, + "refs": { + "ModelError$OriginalStatusCode": "

Original status code.

" + } + }, + "ValidationError": { + "base": "

Inspect your request and try again.

", + "refs": { + } + } + } +} diff --git a/models/apis/runtime.sagemaker/2017-05-13/examples-1.json b/models/apis/runtime.sagemaker/2017-05-13/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/runtime.sagemaker/2017-05-13/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/runtime.sagemaker/2017-05-13/paginators-1.json b/models/apis/runtime.sagemaker/2017-05-13/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/runtime.sagemaker/2017-05-13/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/s3/2006-03-01/api-2.json b/models/apis/s3/2006-03-01/api-2.json index 3fb50bb63cd..0ba2fa8c9cf 100644 --- a/models/apis/s3/2006-03-01/api-2.json +++ b/models/apis/s3/2006-03-01/api-2.json @@ -8,6 +8,7 @@ "protocol":"rest-xml", "serviceAbbreviation":"Amazon S3", "serviceFullName":"Amazon Simple Storage Service", + "serviceId":"S3", "signatureVersion":"s3", "timestampFormat":"rfc822", "uid":"s3-2006-03-01" @@ -102,6 +103,14 @@ "input":{"shape":"DeleteBucketCorsRequest"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEcors.html" }, + "DeleteBucketEncryption":{ + "name":"DeleteBucketEncryption", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?encryption" + }, + "input":{"shape":"DeleteBucketEncryptionRequest"} + }, "DeleteBucketInventoryConfiguration":{ "name":"DeleteBucketInventoryConfiguration", "http":{ @@ -230,6 +239,15 @@ "output":{"shape":"GetBucketCorsOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETcors.html" }, + "GetBucketEncryption":{ + "name":"GetBucketEncryption", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?encryption" + }, + "input":{"shape":"GetBucketEncryptionRequest"}, + "output":{"shape":"GetBucketEncryptionOutput"} + }, "GetBucketInventoryConfiguration":{ "name":"GetBucketInventoryConfiguration", "http":{ @@ -565,6 +583,14 @@ "input":{"shape":"PutBucketCorsRequest"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTcors.html" }, + "PutBucketEncryption":{ + "name":"PutBucketEncryption", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?encryption" + }, + "input":{"shape":"PutBucketEncryptionRequest"} + }, "PutBucketInventoryConfiguration":{ "name":"PutBucketInventoryConfiguration", "http":{ @@ -812,6 +838,13 @@ "Owner":{"shape":"Owner"} } }, + "AccessControlTranslation":{ + "type":"structure", + "required":["Owner"], + "members":{ + "Owner":{"shape":"OwnerOverride"} + } + }, "AccountId":{"type":"string"}, "AllowedHeader":{"type":"string"}, "AllowedHeaders":{ @@ -1024,6 +1057,27 @@ "member":{"shape":"CORSRule"}, "flattened":true }, + "CSVInput":{ + "type":"structure", + "members":{ + "FileHeaderInfo":{"shape":"FileHeaderInfo"}, + "Comments":{"shape":"Comments"}, + "QuoteEscapeCharacter":{"shape":"QuoteEscapeCharacter"}, + "RecordDelimiter":{"shape":"RecordDelimiter"}, + "FieldDelimiter":{"shape":"FieldDelimiter"}, + "QuoteCharacter":{"shape":"QuoteCharacter"} + } + }, + "CSVOutput":{ + "type":"structure", + "members":{ + "QuoteFields":{"shape":"QuoteFields"}, + "QuoteEscapeCharacter":{"shape":"QuoteEscapeCharacter"}, + "RecordDelimiter":{"shape":"RecordDelimiter"}, + "FieldDelimiter":{"shape":"FieldDelimiter"}, + "QuoteCharacter":{"shape":"QuoteCharacter"} + } + }, "CacheControl":{"type":"string"}, "CloudFunction":{"type":"string"}, "CloudFunctionConfiguration":{ @@ -1044,6 +1098,7 @@ }, "CloudFunctionInvocationRole":{"type":"string"}, "Code":{"type":"string"}, + "Comments":{"type":"string"}, "CommonPrefix":{ "type":"structure", "members":{ @@ -1153,6 +1208,7 @@ "KeyPrefixEquals":{"shape":"KeyPrefixEquals"} } }, + "ConfirmRemoveSelfBucketAccess":{"type":"boolean"}, "ContentDisposition":{"type":"string"}, "ContentEncoding":{"type":"string"}, "ContentLanguage":{"type":"string"}, @@ -1693,6 +1749,17 @@ } } }, + "DeleteBucketEncryptionRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, "DeleteBucketInventoryConfigurationRequest":{ "type":"structure", "required":[ @@ -1962,12 +2029,16 @@ "flattened":true }, "Delimiter":{"type":"string"}, + "Description":{"type":"string"}, "Destination":{ "type":"structure", "required":["Bucket"], "members":{ "Bucket":{"shape":"BucketName"}, - "StorageClass":{"shape":"StorageClass"} + "Account":{"shape":"AccountId"}, + "StorageClass":{"shape":"StorageClass"}, + "AccessControlTranslation":{"shape":"AccessControlTranslation"}, + "EncryptionConfiguration":{"shape":"EncryptionConfiguration"} } }, "DisplayName":{"type":"string"}, @@ -1977,6 +2048,21 @@ "type":"string", "enum":["url"] }, + "Encryption":{ + "type":"structure", + "required":["EncryptionType"], + "members":{ + "EncryptionType":{"shape":"ServerSideEncryption"}, + "KMSKeyId":{"shape":"SSEKMSKeyId"}, + "KMSContext":{"shape":"KMSContext"} + } + }, + "EncryptionConfiguration":{ + "type":"structure", + "members":{ + "ReplicaKmsKeyID":{"shape":"ReplicaKmsKeyID"} + } + }, "Error":{ "type":"structure", "members":{ @@ -2033,7 +2119,21 @@ "member":{"shape":"ExposeHeader"}, "flattened":true }, + "Expression":{"type":"string"}, + "ExpressionType":{ + "type":"string", + "enum":["SQL"] + }, "FetchOwner":{"type":"boolean"}, + "FieldDelimiter":{"type":"string"}, + "FileHeaderInfo":{ + "type":"string", + "enum":[ + "USE", + "IGNORE", + "NONE" + ] + }, "FilterRule":{ "type":"structure", "members":{ @@ -2138,6 +2238,24 @@ } } }, + "GetBucketEncryptionOutput":{ + "type":"structure", + "members":{ + "ServerSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"} + }, + "payload":"ServerSideEncryptionConfiguration" + }, + "GetBucketEncryptionRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, "GetBucketInventoryConfigurationOutput":{ "type":"structure", "members":{ @@ -3038,6 +3156,12 @@ "DisplayName":{"shape":"DisplayName"} } }, + "InputSerialization":{ + "type":"structure", + "members":{ + "CSV":{"shape":"CSVInput"} + } + }, "InventoryConfiguration":{ "type":"structure", "required":[ @@ -3069,6 +3193,19 @@ "S3BucketDestination":{"shape":"InventoryS3BucketDestination"} } }, + "InventoryEncryption":{ + "type":"structure", + "members":{ + "SSES3":{ + "shape":"SSES3", + "locationName":"SSE-S3" + }, + "SSEKMS":{ + "shape":"SSEKMS", + "locationName":"SSE-KMS" + } + } + }, "InventoryFilter":{ "type":"structure", "required":["Prefix"], @@ -3078,7 +3215,10 @@ }, "InventoryFormat":{ "type":"string", - "enum":["CSV"] + "enum":[ + "CSV", + "ORC" + ] }, "InventoryFrequency":{ "type":"string", @@ -3103,7 +3243,8 @@ "StorageClass", "ETag", "IsMultipartUploaded", - "ReplicationStatus" + "ReplicationStatus", + "EncryptionStatus" ] }, "InventoryOptionalFields":{ @@ -3123,7 +3264,8 @@ "AccountId":{"shape":"AccountId"}, "Bucket":{"shape":"BucketName"}, "Format":{"shape":"InventoryFormat"}, - "Prefix":{"shape":"Prefix"} + "Prefix":{"shape":"Prefix"}, + "Encryption":{"shape":"InventoryEncryption"} } }, "InventorySchedule":{ @@ -3136,6 +3278,7 @@ "IsEnabled":{"type":"boolean"}, "IsLatest":{"type":"boolean"}, "IsTruncated":{"type":"boolean"}, + "KMSContext":{"type":"string"}, "KeyCount":{"type":"integer"}, "KeyMarker":{"type":"string"}, "KeyPrefixEquals":{"type":"string"}, @@ -3647,6 +3790,7 @@ } }, "Location":{"type":"string"}, + "LocationPrefix":{"type":"string"}, "LoggingEnabled":{ "type":"structure", "members":{ @@ -3688,6 +3832,13 @@ "REPLACE" ] }, + "MetadataEntry":{ + "type":"structure", + "members":{ + "Name":{"shape":"MetadataKey"}, + "Value":{"shape":"MetadataValue"} + } + }, "MetadataKey":{"type":"string"}, "MetadataValue":{"type":"string"}, "MetricsAndOperator":{ @@ -3906,6 +4057,18 @@ "type":"string", "enum":["STANDARD"] }, + "OutputLocation":{ + "type":"structure", + "members":{ + "S3":{"shape":"S3Location"} + } + }, + "OutputSerialization":{ + "type":"structure", + "members":{ + "CSV":{"shape":"CSVOutput"} + } + }, "Owner":{ "type":"structure", "members":{ @@ -3913,6 +4076,10 @@ "ID":{"shape":"ID"} } }, + "OwnerOverride":{ + "type":"string", + "enum":["Destination"] + }, "Part":{ "type":"structure", "members":{ @@ -4079,6 +4246,31 @@ }, "payload":"CORSConfiguration" }, + "PutBucketEncryptionRequest":{ + "type":"structure", + "required":[ + "Bucket", + "ServerSideEncryptionConfiguration" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "ServerSideEncryptionConfiguration":{ + "shape":"ServerSideEncryptionConfiguration", + "locationName":"ServerSideEncryptionConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"} + } + }, + "payload":"ServerSideEncryptionConfiguration" + }, "PutBucketInventoryConfigurationRequest":{ "type":"structure", "required":[ @@ -4257,6 +4449,11 @@ "location":"header", "locationName":"Content-MD5" }, + "ConfirmRemoveSelfBucketAccess":{ + "shape":"ConfirmRemoveSelfBucketAccess", + "location":"header", + "locationName":"x-amz-confirm-remove-self-bucket-access" + }, "Policy":{"shape":"Policy"} }, "payload":"Policy" @@ -4742,7 +4939,17 @@ "flattened":true }, "Quiet":{"type":"boolean"}, + "QuoteCharacter":{"type":"string"}, + "QuoteEscapeCharacter":{"type":"string"}, + "QuoteFields":{ + "type":"string", + "enum":[ + "ALWAYS", + "ASNEEDED" + ] + }, "Range":{"type":"string"}, + "RecordDelimiter":{"type":"string"}, "Redirect":{ "type":"structure", "members":{ @@ -4763,6 +4970,7 @@ }, "ReplaceKeyPrefixWith":{"type":"string"}, "ReplaceKeyWith":{"type":"string"}, + "ReplicaKmsKeyID":{"type":"string"}, "ReplicationConfiguration":{ "type":"structure", "required":[ @@ -4788,6 +4996,7 @@ "ID":{"shape":"ID"}, "Prefix":{"shape":"Prefix"}, "Status":{"shape":"ReplicationRuleStatus"}, + "SourceSelectionCriteria":{"shape":"SourceSelectionCriteria"}, "Destination":{"shape":"Destination"} } }, @@ -4841,6 +5050,11 @@ "shape":"RequestCharged", "location":"header", "locationName":"x-amz-request-charged" + }, + "RestoreOutputPath":{ + "shape":"RestoreOutputPath", + "location":"header", + "locationName":"x-amz-restore-output-path" } } }, @@ -4879,14 +5093,23 @@ }, "payload":"RestoreRequest" }, + "RestoreOutputPath":{"type":"string"}, "RestoreRequest":{ "type":"structure", - "required":["Days"], "members":{ "Days":{"shape":"Days"}, - "GlacierJobParameters":{"shape":"GlacierJobParameters"} + "GlacierJobParameters":{"shape":"GlacierJobParameters"}, + "Type":{"shape":"RestoreRequestType"}, + "Tier":{"shape":"Tier"}, + "Description":{"shape":"Description"}, + "SelectParameters":{"shape":"SelectParameters"}, + "OutputLocation":{"shape":"OutputLocation"} } }, + "RestoreRequestType":{ + "type":"string", + "enum":["SELECT"] + }, "Role":{"type":"string"}, "RoutingRule":{ "type":"structure", @@ -4934,16 +5157,62 @@ } } }, + "S3Location":{ + "type":"structure", + "required":[ + "BucketName", + "Prefix" + ], + "members":{ + "BucketName":{"shape":"BucketName"}, + "Prefix":{"shape":"LocationPrefix"}, + "Encryption":{"shape":"Encryption"}, + "CannedACL":{"shape":"ObjectCannedACL"}, + "AccessControlList":{"shape":"Grants"}, + "Tagging":{"shape":"Tagging"}, + "UserMetadata":{"shape":"UserMetadata"}, + "StorageClass":{"shape":"StorageClass"} + } + }, "SSECustomerAlgorithm":{"type":"string"}, "SSECustomerKey":{ "type":"string", "sensitive":true }, "SSECustomerKeyMD5":{"type":"string"}, + "SSEKMS":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"SSEKMSKeyId"} + }, + "locationName":"SSE-KMS" + }, "SSEKMSKeyId":{ "type":"string", "sensitive":true }, + "SSES3":{ + "type":"structure", + "members":{ + }, + "locationName":"SSE-S3" + }, + "SelectParameters":{ + "type":"structure", + "required":[ + "InputSerialization", + "ExpressionType", + "Expression", + "OutputSerialization" + ], + "members":{ + "InputSerialization":{"shape":"InputSerialization"}, + "ExpressionType":{"shape":"ExpressionType"}, + "Expression":{"shape":"Expression"}, + "OutputSerialization":{"shape":"OutputSerialization"} + } + }, "ServerSideEncryption":{ "type":"string", "enum":[ @@ -4951,7 +5220,56 @@ "aws:kms" ] }, + "ServerSideEncryptionByDefault":{ + "type":"structure", + "required":["SSEAlgorithm"], + "members":{ + "SSEAlgorithm":{"shape":"ServerSideEncryption"}, + "KMSMasterKeyID":{"shape":"SSEKMSKeyId"} + } + }, + "ServerSideEncryptionConfiguration":{ + "type":"structure", + "required":["Rules"], + "members":{ + "Rules":{ + "shape":"ServerSideEncryptionRules", + "locationName":"Rule" + } + } + }, + "ServerSideEncryptionRule":{ + "type":"structure", + "members":{ + "ApplyServerSideEncryptionByDefault":{"shape":"ServerSideEncryptionByDefault"} + } + }, + "ServerSideEncryptionRules":{ + "type":"list", + "member":{"shape":"ServerSideEncryptionRule"}, + "flattened":true + }, "Size":{"type":"integer"}, + "SourceSelectionCriteria":{ + "type":"structure", + "members":{ + "SseKmsEncryptedObjects":{"shape":"SseKmsEncryptedObjects"} + } + }, + "SseKmsEncryptedObjects":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{"shape":"SseKmsEncryptedObjectsStatus"} + } + }, + "SseKmsEncryptedObjectsStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, "StartAfter":{"type":"string"}, "StorageClass":{ "type":"string", @@ -5347,6 +5665,13 @@ }, "payload":"Body" }, + "UserMetadata":{ + "type":"list", + "member":{ + "shape":"MetadataEntry", + "locationName":"MetadataEntry" + } + }, "Value":{"type":"string"}, "VersionIdMarker":{"type":"string"}, "VersioningConfiguration":{ diff --git a/models/apis/s3/2006-03-01/docs-2.json b/models/apis/s3/2006-03-01/docs-2.json index 687fb68c585..11a65781891 100644 --- a/models/apis/s3/2006-03-01/docs-2.json +++ b/models/apis/s3/2006-03-01/docs-2.json @@ -10,6 +10,7 @@ "DeleteBucket": "Deletes the bucket. All objects (including all object versions and Delete Markers) in the bucket must be deleted before the bucket itself can be deleted.", "DeleteBucketAnalyticsConfiguration": "Deletes an analytics configuration for the bucket (specified by the analytics configuration ID).", "DeleteBucketCors": "Deletes the cors configuration information set for the bucket.", + "DeleteBucketEncryption": "Deletes the server-side encryption configuration from the bucket.", "DeleteBucketInventoryConfiguration": "Deletes an inventory configuration (identified by the inventory ID) from the bucket.", "DeleteBucketLifecycle": "Deletes the lifecycle configuration from the bucket.", "DeleteBucketMetricsConfiguration": "Deletes a metrics configuration (specified by the metrics configuration ID) from the bucket.", @@ -24,6 +25,7 @@ "GetBucketAcl": "Gets the access control policy for the bucket.", "GetBucketAnalyticsConfiguration": "Gets an analytics configuration for the bucket (specified by the analytics configuration ID).", "GetBucketCors": "Returns the cors configuration for the bucket.", + "GetBucketEncryption": "Returns the server-side encryption configuration of a bucket.", "GetBucketInventoryConfiguration": "Returns an inventory configuration (identified by the inventory ID) from the bucket.", "GetBucketLifecycle": "Deprecated, see the GetBucketLifecycleConfiguration operation.", "GetBucketLifecycleConfiguration": "Returns the lifecycle configuration information set on the bucket.", @@ -57,6 +59,7 @@ "PutBucketAcl": "Sets the permissions on a bucket using access control lists (ACL).", "PutBucketAnalyticsConfiguration": "Sets an analytics configuration for the bucket (specified by the analytics configuration ID).", "PutBucketCors": "Sets the cors configuration for a bucket.", + "PutBucketEncryption": "Creates a new server-side encryption configuration (or replaces an existing one, if present).", "PutBucketInventoryConfiguration": "Adds an inventory configuration (identified by the inventory ID) from the bucket.", "PutBucketLifecycle": "Deprecated, see the PutBucketLifecycleConfiguration operation.", "PutBucketLifecycleConfiguration": "Sets lifecycle configuration for your bucket. If a lifecycle configuration exists, it replaces it.", @@ -129,10 +132,17 @@ "PutObjectAclRequest$AccessControlPolicy": null } }, + "AccessControlTranslation": { + "base": "Container for information regarding the access control for replicas.", + "refs": { + "Destination$AccessControlTranslation": "Container for information regarding the access control for replicas." + } + }, "AccountId": { "base": null, "refs": { "AnalyticsS3BucketDestination$BucketAccountId": "The account ID that owns the destination bucket. If no account ID is provided, the owner will not be validated prior to exporting data.", + "Destination$Account": "Account ID of the destination bucket. Currently this is only being verified if Access Control Translation is enabled", "InventoryS3BucketDestination$AccountId": "The ID of the account that owns the destination bucket." } }, @@ -303,6 +313,7 @@ "CreateMultipartUploadRequest$Bucket": null, "DeleteBucketAnalyticsConfigurationRequest$Bucket": "The name of the bucket from which an analytics configuration is deleted.", "DeleteBucketCorsRequest$Bucket": null, + "DeleteBucketEncryptionRequest$Bucket": "The name of the bucket containing the server-side encryption configuration to delete.", "DeleteBucketInventoryConfigurationRequest$Bucket": "The name of the bucket containing the inventory configuration to delete.", "DeleteBucketLifecycleRequest$Bucket": null, "DeleteBucketMetricsConfigurationRequest$Bucket": "The name of the bucket containing the metrics configuration to delete.", @@ -319,6 +330,7 @@ "GetBucketAclRequest$Bucket": null, "GetBucketAnalyticsConfigurationRequest$Bucket": "The name of the bucket from which an analytics configuration is retrieved.", "GetBucketCorsRequest$Bucket": null, + "GetBucketEncryptionRequest$Bucket": "The name of the bucket from which the server-side encryption configuration is retrieved.", "GetBucketInventoryConfigurationRequest$Bucket": "The name of the bucket containing the inventory configuration to retrieve.", "GetBucketLifecycleConfigurationRequest$Bucket": null, "GetBucketLifecycleRequest$Bucket": null, @@ -356,6 +368,7 @@ "PutBucketAclRequest$Bucket": null, "PutBucketAnalyticsConfigurationRequest$Bucket": "The name of the bucket to which an analytics configuration is stored.", "PutBucketCorsRequest$Bucket": null, + "PutBucketEncryptionRequest$Bucket": "The name of the bucket for which the server-side encryption configuration is set.", "PutBucketInventoryConfigurationRequest$Bucket": "The name of the bucket where the inventory configuration will be stored.", "PutBucketLifecycleConfigurationRequest$Bucket": null, "PutBucketLifecycleRequest$Bucket": null, @@ -373,6 +386,7 @@ "PutObjectRequest$Bucket": "Name of the bucket to which the PUT operation was initiated.", "PutObjectTaggingRequest$Bucket": null, "RestoreObjectRequest$Bucket": null, + "S3Location$BucketName": "The name of the bucket where the restore results will be placed.", "UploadPartCopyRequest$Bucket": null, "UploadPartRequest$Bucket": "Name of the bucket to which the multipart upload was initiated." } @@ -409,6 +423,18 @@ "GetBucketCorsOutput$CORSRules": null } }, + "CSVInput": { + "base": "Describes how a CSV-formatted input object is formatted.", + "refs": { + "InputSerialization$CSV": "Describes the serialization of a CSV-encoded object." + } + }, + "CSVOutput": { + "base": "Describes how CSV-formatted results are formatted.", + "refs": { + "OutputSerialization$CSV": "Describes the serialization of CSV-encoded Select results." + } + }, "CacheControl": { "base": null, "refs": { @@ -443,6 +469,12 @@ "Error$Code": null } }, + "Comments": { + "base": null, + "refs": { + "CSVInput$Comments": "Single character used to indicate a row should be ignored when present at the start of a row." + } + }, "CommonPrefix": { "base": null, "refs": { @@ -492,6 +524,12 @@ "RoutingRule$Condition": "A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the /docs folder, redirect to the /documents folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error." } }, + "ConfirmRemoveSelfBucketAccess": { + "base": null, + "refs": { + "PutBucketPolicyRequest$ConfirmRemoveSelfBucketAccess": "Set this parameter to true to confirm that you want to remove your permissions to change this bucket policy in the future." + } + }, "ContentDisposition": { "base": null, "refs": { @@ -536,6 +574,7 @@ "refs": { "PutBucketAclRequest$ContentMD5": null, "PutBucketCorsRequest$ContentMD5": null, + "PutBucketEncryptionRequest$ContentMD5": "The base64-encoded 128-bit MD5 digest of the server-side encryption configuration.", "PutBucketLifecycleRequest$ContentMD5": null, "PutBucketLoggingRequest$ContentMD5": null, "PutBucketNotificationRequest$ContentMD5": null, @@ -703,7 +742,7 @@ "LifecycleExpiration$Days": "Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.", "NoncurrentVersionExpiration$NoncurrentDays": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.", "NoncurrentVersionTransition$NoncurrentDays": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.", - "RestoreRequest$Days": "Lifetime of the active copy in days", + "RestoreRequest$Days": "Lifetime of the active copy in days. Do not use with restores that specify OutputLocation.", "Transition$Days": "Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer." } }, @@ -729,6 +768,11 @@ "refs": { } }, + "DeleteBucketEncryptionRequest": { + "base": null, + "refs": { + } + }, "DeleteBucketInventoryConfigurationRequest": { "base": null, "refs": { @@ -851,10 +895,16 @@ "ListObjectsV2Request$Delimiter": "A delimiter is a character you use to group keys." } }, - "Destination": { + "Description": { "base": null, "refs": { - "ReplicationRule$Destination": null + "RestoreRequest$Description": "The optional description for the job." + } + }, + "Destination": { + "base": "Container for replication destination information.", + "refs": { + "ReplicationRule$Destination": "Container for replication destination information." } }, "DisplayName": { @@ -900,6 +950,18 @@ "ListObjectsV2Request$EncodingType": "Encoding type used by Amazon S3 to encode object keys in the response." } }, + "Encryption": { + "base": "Describes the server-side encryption that will be applied to the restore results.", + "refs": { + "S3Location$Encryption": null + } + }, + "EncryptionConfiguration": { + "base": "Container for information regarding encryption based configuration for replicas.", + "refs": { + "Destination$EncryptionConfiguration": "Container for information regarding encryption based configuration for replicas." + } + }, "Error": { "base": null, "refs": { @@ -984,12 +1046,37 @@ "CORSRule$ExposeHeaders": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object)." } }, + "Expression": { + "base": null, + "refs": { + "SelectParameters$Expression": "The expression that is used to query the object." + } + }, + "ExpressionType": { + "base": null, + "refs": { + "SelectParameters$ExpressionType": "The type of the provided expression (e.g., SQL)." + } + }, "FetchOwner": { "base": null, "refs": { "ListObjectsV2Request$FetchOwner": "The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true" } }, + "FieldDelimiter": { + "base": null, + "refs": { + "CSVInput$FieldDelimiter": "Value used to separate individual fields in a record.", + "CSVOutput$FieldDelimiter": "Value used to separate individual fields in a record." + } + }, + "FileHeaderInfo": { + "base": null, + "refs": { + "CSVInput$FileHeaderInfo": "Describes the first line of input. Valid values: None, Ignore, Use." + } + }, "FilterRule": { "base": "Container for key value pair that defines the criteria for the filter rule.", "refs": { @@ -1054,6 +1141,16 @@ "refs": { } }, + "GetBucketEncryptionOutput": { + "base": null, + "refs": { + } + }, + "GetBucketEncryptionRequest": { + "base": null, + "refs": { + } + }, "GetBucketInventoryConfigurationOutput": { "base": null, "refs": { @@ -1222,7 +1319,7 @@ "GlacierJobParameters": { "base": null, "refs": { - "RestoreRequest$GlacierJobParameters": "Glacier related prameters pertaining to this job." + "RestoreRequest$GlacierJobParameters": "Glacier related parameters pertaining to this job. Do not use with restores that specify OutputLocation." } }, "Grant": { @@ -1295,7 +1392,8 @@ "refs": { "AccessControlPolicy$Grants": "A list of grants.", "GetBucketAclOutput$Grants": "A list of grants.", - "GetObjectAclOutput$Grants": "A list of grants." + "GetObjectAclOutput$Grants": "A list of grants.", + "S3Location$AccessControlList": "A list of grants that control access to the staged results." } }, "HeadBucketRequest": { @@ -1391,6 +1489,12 @@ "MultipartUpload$Initiator": "Identifies who initiated the multipart upload." } }, + "InputSerialization": { + "base": "Describes the serialization format of the object.", + "refs": { + "SelectParameters$InputSerialization": "Describes the serialization format of the object." + } + }, "InventoryConfiguration": { "base": null, "refs": { @@ -1411,6 +1515,12 @@ "InventoryConfiguration$Destination": "Contains information about where to publish the inventory results." } }, + "InventoryEncryption": { + "base": "Contains the type of server-side encryption used to encrypt the inventory results.", + "refs": { + "InventoryS3BucketDestination$Encryption": "Contains the type of server-side encryption used to encrypt the inventory results." + } + }, "InventoryFilter": { "base": null, "refs": { @@ -1494,6 +1604,12 @@ "ListPartsOutput$IsTruncated": "Indicates whether the returned list of parts is truncated." } }, + "KMSContext": { + "base": null, + "refs": { + "Encryption$KMSContext": "If the encryption type is aws:kms, this optional value can be used to specify the encryption context for the restore results." + } + }, "KeyCount": { "base": null, "refs": { @@ -1676,6 +1792,12 @@ "CreateBucketOutput$Location": null } }, + "LocationPrefix": { + "base": null, + "refs": { + "S3Location$Prefix": "The prefix that is prepended to the restore results for this request." + } + }, "LoggingEnabled": { "base": null, "refs": { @@ -1763,16 +1885,24 @@ "CopyObjectRequest$MetadataDirective": "Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request." } }, + "MetadataEntry": { + "base": "A metadata key-value pair to store with an object.", + "refs": { + "UserMetadata$member": null + } + }, "MetadataKey": { "base": null, "refs": { - "Metadata$key": null + "Metadata$key": null, + "MetadataEntry$Name": null } }, "MetadataValue": { "base": null, "refs": { - "Metadata$value": null + "Metadata$value": null, + "MetadataEntry$Value": null } }, "MetricsAndOperator": { @@ -1965,7 +2095,8 @@ "CopyObjectRequest$ACL": "The canned ACL to apply to the object.", "CreateMultipartUploadRequest$ACL": "The canned ACL to apply to the object.", "PutObjectAclRequest$ACL": "The canned ACL to apply to the object.", - "PutObjectRequest$ACL": "The canned ACL to apply to the object." + "PutObjectRequest$ACL": "The canned ACL to apply to the object.", + "S3Location$CannedACL": "The canned ACL to apply to the restore results." } }, "ObjectIdentifier": { @@ -2079,6 +2210,18 @@ "ObjectVersion$StorageClass": "The class of storage used to store the object." } }, + "OutputLocation": { + "base": "Describes the location where the restore job's output is stored.", + "refs": { + "RestoreRequest$OutputLocation": "Describes the location where the restore job's output is stored." + } + }, + "OutputSerialization": { + "base": "Describes how results of the Select job are serialized.", + "refs": { + "SelectParameters$OutputSerialization": "Describes how the results of the Select job are serialized." + } + }, "Owner": { "base": null, "refs": { @@ -2093,6 +2236,12 @@ "ObjectVersion$Owner": null } }, + "OwnerOverride": { + "base": null, + "refs": { + "AccessControlTranslation$Owner": "The override value for the owner of the replica object." + } + }, "Part": { "base": null, "refs": { @@ -2203,6 +2352,11 @@ "refs": { } }, + "PutBucketEncryptionRequest": { + "base": null, + "refs": { + } + }, "PutBucketInventoryConfigurationRequest": { "base": null, "refs": { @@ -2329,6 +2483,26 @@ "Delete$Quiet": "Element to enable quiet mode for the request. When you add this element, you must set its value to true." } }, + "QuoteCharacter": { + "base": null, + "refs": { + "CSVInput$QuoteCharacter": "Value used for escaping where the field delimiter is part of the value.", + "CSVOutput$QuoteCharacter": "Value used for escaping where the field delimiter is part of the value." + } + }, + "QuoteEscapeCharacter": { + "base": null, + "refs": { + "CSVInput$QuoteEscapeCharacter": "Single character used for escaping the quote character inside an already escaped value.", + "CSVOutput$QuoteEscapeCharacter": "Single character used for escaping the quote character inside an already escaped value." + } + }, + "QuoteFields": { + "base": null, + "refs": { + "CSVOutput$QuoteFields": "Indicates whether or not all output fields should be quoted." + } + }, "Range": { "base": null, "refs": { @@ -2336,6 +2510,13 @@ "HeadObjectRequest$Range": "Downloads the specified range bytes of an object. For more information about the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35." } }, + "RecordDelimiter": { + "base": null, + "refs": { + "CSVInput$RecordDelimiter": "Value used to separate individual records.", + "CSVOutput$RecordDelimiter": "Value used to separate individual records." + } + }, "Redirect": { "base": null, "refs": { @@ -2361,6 +2542,12 @@ "Redirect$ReplaceKeyWith": "The specific object key to use in the redirect request. For example, redirect request to error.html. Not required if one of the sibling is present. Can be present only if ReplaceKeyPrefixWith is not provided." } }, + "ReplicaKmsKeyID": { + "base": null, + "refs": { + "EncryptionConfiguration$ReplicaKmsKeyID": "The id of the KMS key used to encrypt the replica object." + } + }, "ReplicationConfiguration": { "base": "Container for replication rules. You can add as many as 1,000 rules. Total replication configuration size can be up to 2 MB.", "refs": { @@ -2369,7 +2556,7 @@ } }, "ReplicationRule": { - "base": null, + "base": "Container for information about a particular replication rule.", "refs": { "ReplicationRules$member": null } @@ -2496,12 +2683,24 @@ "refs": { } }, - "RestoreRequest": { + "RestoreOutputPath": { "base": null, + "refs": { + "RestoreObjectOutput$RestoreOutputPath": "Indicates the path in the provided S3 output location where Select results will be restored to." + } + }, + "RestoreRequest": { + "base": "Container for restore job parameters.", "refs": { "RestoreObjectRequest$RestoreRequest": null } }, + "RestoreRequestType": { + "base": null, + "refs": { + "RestoreRequest$Type": "Type of restore request." + } + }, "Role": { "base": null, "refs": { @@ -2540,6 +2739,12 @@ "NotificationConfigurationFilter$Key": null } }, + "S3Location": { + "base": "Describes an S3 location that will receive the results of the restore request.", + "refs": { + "OutputLocation$S3": "Describes an S3 location that will receive the results of the restore request." + } + }, "SSECustomerAlgorithm": { "base": null, "refs": { @@ -2590,6 +2795,12 @@ "UploadPartRequest$SSECustomerKeyMD5": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error." } }, + "SSEKMS": { + "base": "Specifies the use of SSE-KMS to encrypt delievered Inventory reports.", + "refs": { + "InventoryEncryption$SSEKMS": "Specifies the use of SSE-KMS to encrypt delievered Inventory reports." + } + }, "SSEKMSKeyId": { "base": null, "refs": { @@ -2598,14 +2809,29 @@ "CopyObjectRequest$SSEKMSKeyId": "Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version", "CreateMultipartUploadOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", "CreateMultipartUploadRequest$SSEKMSKeyId": "Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version", + "Encryption$KMSKeyId": "If the encryption type is aws:kms, this optional value specifies the AWS KMS key ID to use for encryption of job results.", "GetObjectOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", "HeadObjectOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", "PutObjectOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", "PutObjectRequest$SSEKMSKeyId": "Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version", + "SSEKMS$KeyId": "Specifies the ID of the AWS Key Management Service (KMS) master encryption key to use for encrypting Inventory reports.", + "ServerSideEncryptionByDefault$KMSMasterKeyID": "KMS master key ID to use for the default encryption. This parameter is allowed if SSEAlgorithm is aws:kms.", "UploadPartCopyOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", "UploadPartOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object." } }, + "SSES3": { + "base": "Specifies the use of SSE-S3 to encrypt delievered Inventory reports.", + "refs": { + "InventoryEncryption$SSES3": "Specifies the use of SSE-S3 to encrypt delievered Inventory reports." + } + }, + "SelectParameters": { + "base": "Describes the parameters for Select job types.", + "refs": { + "RestoreRequest$SelectParameters": "Describes the parameters for Select job types." + } + }, "ServerSideEncryption": { "base": null, "refs": { @@ -2614,14 +2840,41 @@ "CopyObjectRequest$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", "CreateMultipartUploadOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", "CreateMultipartUploadRequest$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "Encryption$EncryptionType": "The server-side encryption algorithm used when storing job results in Amazon S3 (e.g., AES256, aws:kms).", "GetObjectOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", "HeadObjectOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", "PutObjectOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", "PutObjectRequest$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "ServerSideEncryptionByDefault$SSEAlgorithm": "Server-side encryption algorithm to use for the default encryption.", "UploadPartCopyOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", "UploadPartOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms)." } }, + "ServerSideEncryptionByDefault": { + "base": "Describes the default server-side encryption to apply to new objects in the bucket. If Put Object request does not specify any server-side encryption, this default encryption will be applied.", + "refs": { + "ServerSideEncryptionRule$ApplyServerSideEncryptionByDefault": "Describes the default server-side encryption to apply to new objects in the bucket. If Put Object request does not specify any server-side encryption, this default encryption will be applied." + } + }, + "ServerSideEncryptionConfiguration": { + "base": "Container for server-side encryption configuration rules. Currently S3 supports one rule only.", + "refs": { + "GetBucketEncryptionOutput$ServerSideEncryptionConfiguration": null, + "PutBucketEncryptionRequest$ServerSideEncryptionConfiguration": null + } + }, + "ServerSideEncryptionRule": { + "base": "Container for information about a particular server-side encryption configuration rule.", + "refs": { + "ServerSideEncryptionRules$member": null + } + }, + "ServerSideEncryptionRules": { + "base": null, + "refs": { + "ServerSideEncryptionConfiguration$Rules": "Container for information about a particular server-side encryption configuration rule." + } + }, "Size": { "base": null, "refs": { @@ -2630,6 +2883,24 @@ "Part$Size": "Size of the uploaded part data." } }, + "SourceSelectionCriteria": { + "base": "Container for filters that define which source objects should be replicated.", + "refs": { + "ReplicationRule$SourceSelectionCriteria": "Container for filters that define which source objects should be replicated." + } + }, + "SseKmsEncryptedObjects": { + "base": "Container for filter information of selection of KMS Encrypted S3 objects.", + "refs": { + "SourceSelectionCriteria$SseKmsEncryptedObjects": "Container for filter information of selection of KMS Encrypted S3 objects." + } + }, + "SseKmsEncryptedObjectsStatus": { + "base": null, + "refs": { + "SseKmsEncryptedObjects$Status": "The replication for KMS encrypted S3 objects is disabled if status is not Enabled." + } + }, "StartAfter": { "base": null, "refs": { @@ -2647,7 +2918,8 @@ "HeadObjectOutput$StorageClass": null, "ListPartsOutput$StorageClass": "The class of storage used to store the object.", "MultipartUpload$StorageClass": "The class of storage used to store the object.", - "PutObjectRequest$StorageClass": "The type of storage to use for the object. Defaults to 'STANDARD'." + "PutObjectRequest$StorageClass": "The type of storage to use for the object. Defaults to 'STANDARD'.", + "S3Location$StorageClass": "The class of storage used to store the restore results." } }, "StorageClassAnalysis": { @@ -2704,7 +2976,8 @@ "base": null, "refs": { "PutBucketTaggingRequest$Tagging": null, - "PutObjectTaggingRequest$Tagging": null + "PutObjectTaggingRequest$Tagging": null, + "S3Location$Tagging": "The tag-set that is applied to the restore results." } }, "TaggingDirective": { @@ -2748,7 +3021,8 @@ "Tier": { "base": null, "refs": { - "GlacierJobParameters$Tier": "Glacier retrieval tier at which the restore will be processed." + "GlacierJobParameters$Tier": "Glacier retrieval tier at which the restore will be processed.", + "RestoreRequest$Tier": "Glacier retrieval tier at which the restore will be processed." } }, "Token": { @@ -2848,6 +3122,12 @@ "refs": { } }, + "UserMetadata": { + "base": null, + "refs": { + "S3Location$UserMetadata": "A list of metadata to store with the restore results in S3." + } + }, "Value": { "base": null, "refs": { diff --git a/models/apis/s3/2006-03-01/examples-1.json b/models/apis/s3/2006-03-01/examples-1.json index ac9e0f4ecfe..c6b7825a532 100644 --- a/models/apis/s3/2006-03-01/examples-1.json +++ b/models/apis/s3/2006-03-01/examples-1.json @@ -1850,7 +1850,7 @@ { "input": { "Bucket": "examplebucket", - "CopySource": "bucketname/sourceobjectkey", + "CopySource": "/bucketname/sourceobjectkey", "Key": "examplelargeobject", "PartNumber": "1", "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" diff --git a/models/apis/serverlessrepo/2017-09-08/api-2.json b/models/apis/serverlessrepo/2017-09-08/api-2.json new file mode 100644 index 00000000000..f1812a472f6 --- /dev/null +++ b/models/apis/serverlessrepo/2017-09-08/api-2.json @@ -0,0 +1,1241 @@ +{ + "metadata" : { + "apiVersion" : "2017-09-08", + "endpointPrefix" : "serverlessrepo", + "signingName" : "serverlessrepo", + "serviceFullName" : "AWSServerlessApplicationRepository", + "serviceId" : "ServerlessApplicationRepository", + "protocol" : "rest-json", + "jsonVersion" : "1.1", + "uid" : "serverlessrepo-2017-09-08", + "signatureVersion" : "v4" + }, + "operations" : { + "CreateApplication" : { + "name" : "CreateApplication", + "http" : { + "method" : "POST", + "requestUri" : "/applications", + "responseCode" : 201 + }, + "input" : { + "shape" : "CreateApplicationRequest" + }, + "output" : { + "shape" : "CreateApplicationResponse" + }, + "errors" : [ { + "shape" : "TooManyRequestsException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ConflictException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "CreateApplicationVersion" : { + "name" : "CreateApplicationVersion", + "http" : { + "method" : "PUT", + "requestUri" : "/applications/{applicationId}/versions/{semanticVersion}", + "responseCode" : 201 + }, + "input" : { + "shape" : "CreateApplicationVersionRequest" + }, + "output" : { + "shape" : "CreateApplicationVersionResponse" + }, + "errors" : [ { + "shape" : "TooManyRequestsException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ConflictException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "CreateCloudFormationChangeSet" : { + "name" : "CreateCloudFormationChangeSet", + "http" : { + "method" : "POST", + "requestUri" : "/applications/{applicationId}/changesets", + "responseCode" : 201 + }, + "input" : { + "shape" : "CreateCloudFormationChangeSetRequest" + }, + "output" : { + "shape" : "CreateCloudFormationChangeSetResponse" + }, + "errors" : [ { + "shape" : "TooManyRequestsException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "GetApplication" : { + "name" : "GetApplication", + "http" : { + "method" : "GET", + "requestUri" : "/applications/{applicationId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetApplicationRequest" + }, + "output" : { + "shape" : "GetApplicationResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "TooManyRequestsException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "GetApplicationPolicy" : { + "name" : "GetApplicationPolicy", + "http" : { + "method" : "GET", + "requestUri" : "/applications/{applicationId}/policy", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetApplicationPolicyRequest" + }, + "output" : { + "shape" : "GetApplicationPolicyResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "TooManyRequestsException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "ListApplicationVersions" : { + "name" : "ListApplicationVersions", + "http" : { + "method" : "GET", + "requestUri" : "/applications/{applicationId}/versions", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListApplicationVersionsRequest" + }, + "output" : { + "shape" : "ListApplicationVersionsResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "TooManyRequestsException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "ListApplications" : { + "name" : "ListApplications", + "http" : { + "method" : "GET", + "requestUri" : "/applications", + "responseCode" : 200 + }, + "input" : { + "shape" : "ListApplicationsRequest" + }, + "output" : { + "shape" : "ListApplicationsResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "PutApplicationPolicy" : { + "name" : "PutApplicationPolicy", + "http" : { + "method" : "PUT", + "requestUri" : "/applications/{applicationId}/policy", + "responseCode" : 200 + }, + "input" : { + "shape" : "PutApplicationPolicyRequest" + }, + "output" : { + "shape" : "PutApplicationPolicyResponse" + }, + "errors" : [ { + "shape" : "NotFoundException" + }, { + "shape" : "TooManyRequestsException" + }, { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + } ] + }, + "UpdateApplication" : { + "name" : "UpdateApplication", + "http" : { + "method" : "PATCH", + "requestUri" : "/applications/{applicationId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateApplicationRequest" + }, + "output" : { + "shape" : "UpdateApplicationResponse" + }, + "errors" : [ { + "shape" : "BadRequestException" + }, { + "shape" : "InternalServerErrorException" + }, { + "shape" : "ForbiddenException" + }, { + "shape" : "NotFoundException" + }, { + "shape" : "TooManyRequestsException" + }, { + "shape" : "ConflictException" + } ] + } + }, + "shapes" : { + "Application" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "locationName" : "applicationId" + }, + "Author" : { + "shape" : "__string", + "locationName" : "author" + }, + "CreationTime" : { + "shape" : "__string", + "locationName" : "creationTime" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Labels" : { + "shape" : "ListOf__string", + "locationName" : "labels" + }, + "LicenseUrl" : { + "shape" : "__string", + "locationName" : "licenseUrl" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "ReadmeUrl" : { + "shape" : "__string", + "locationName" : "readmeUrl" + }, + "SpdxLicenseId" : { + "shape" : "__string", + "locationName" : "spdxLicenseId" + }, + "Version" : { + "shape" : "Version", + "locationName" : "version" + } + } + }, + "ApplicationPage" : { + "type" : "structure", + "members" : { + "Applications" : { + "shape" : "ListOfApplicationSummary", + "locationName" : "applications" + }, + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + } + } + }, + "ApplicationPolicy" : { + "type" : "structure", + "members" : { + "Statements" : { + "shape" : "ListOfApplicationPolicyStatement", + "locationName" : "statements" + } + } + }, + "ApplicationPolicyStatement" : { + "type" : "structure", + "members" : { + "Actions" : { + "shape" : "ListOf__string", + "locationName" : "actions" + }, + "Principals" : { + "shape" : "ListOf__string", + "locationName" : "principals" + }, + "StatementId" : { + "shape" : "__string", + "locationName" : "statementId" + } + } + }, + "ApplicationSummary" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "locationName" : "applicationId" + }, + "Author" : { + "shape" : "__string", + "locationName" : "author" + }, + "CreationTime" : { + "shape" : "__string", + "locationName" : "creationTime" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Labels" : { + "shape" : "ListOf__string", + "locationName" : "labels" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "SpdxLicenseId" : { + "shape" : "__string", + "locationName" : "spdxLicenseId" + } + } + }, + "ApplicationVersionPage" : { + "type" : "structure", + "members" : { + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + }, + "Versions" : { + "shape" : "ListOfVersionSummary", + "locationName" : "versions" + } + } + }, + "BadRequestException" : { + "type" : "structure", + "members" : { + "ErrorCode" : { + "shape" : "__string", + "locationName" : "errorCode" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 400 + } + }, + "ChangeSetDetails" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "locationName" : "applicationId" + }, + "ChangeSetId" : { + "shape" : "__string", + "locationName" : "changeSetId" + }, + "SemanticVersion" : { + "shape" : "__string", + "locationName" : "semanticVersion" + }, + "StackId" : { + "shape" : "__string", + "locationName" : "stackId" + } + } + }, + "ConflictException" : { + "type" : "structure", + "members" : { + "ErrorCode" : { + "shape" : "__string", + "locationName" : "errorCode" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 409 + } + }, + "CreateApplicationInput" : { + "type" : "structure", + "members" : { + "Author" : { + "shape" : "__string", + "locationName" : "author" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Labels" : { + "shape" : "ListOf__string", + "locationName" : "labels" + }, + "LicenseBody" : { + "shape" : "__string", + "locationName" : "licenseBody" + }, + "LicenseUrl" : { + "shape" : "__string", + "locationName" : "licenseUrl" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "ReadmeBody" : { + "shape" : "__string", + "locationName" : "readmeBody" + }, + "ReadmeUrl" : { + "shape" : "__string", + "locationName" : "readmeUrl" + }, + "SemanticVersion" : { + "shape" : "__string", + "locationName" : "semanticVersion" + }, + "SourceCodeUrl" : { + "shape" : "__string", + "locationName" : "sourceCodeUrl" + }, + "SpdxLicenseId" : { + "shape" : "__string", + "locationName" : "spdxLicenseId" + }, + "TemplateBody" : { + "shape" : "__string", + "locationName" : "templateBody" + }, + "TemplateUrl" : { + "shape" : "__string", + "locationName" : "templateUrl" + } + } + }, + "CreateApplicationRequest" : { + "type" : "structure", + "members" : { + "Author" : { + "shape" : "__string", + "locationName" : "author" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Labels" : { + "shape" : "ListOf__string", + "locationName" : "labels" + }, + "LicenseBody" : { + "shape" : "__string", + "locationName" : "licenseBody" + }, + "LicenseUrl" : { + "shape" : "__string", + "locationName" : "licenseUrl" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "ReadmeBody" : { + "shape" : "__string", + "locationName" : "readmeBody" + }, + "ReadmeUrl" : { + "shape" : "__string", + "locationName" : "readmeUrl" + }, + "SemanticVersion" : { + "shape" : "__string", + "locationName" : "semanticVersion" + }, + "SourceCodeUrl" : { + "shape" : "__string", + "locationName" : "sourceCodeUrl" + }, + "SpdxLicenseId" : { + "shape" : "__string", + "locationName" : "spdxLicenseId" + }, + "TemplateBody" : { + "shape" : "__string", + "locationName" : "templateBody" + }, + "TemplateUrl" : { + "shape" : "__string", + "locationName" : "templateUrl" + } + } + }, + "CreateApplicationResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "locationName" : "applicationId" + }, + "Author" : { + "shape" : "__string", + "locationName" : "author" + }, + "CreationTime" : { + "shape" : "__string", + "locationName" : "creationTime" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Labels" : { + "shape" : "ListOf__string", + "locationName" : "labels" + }, + "LicenseUrl" : { + "shape" : "__string", + "locationName" : "licenseUrl" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "ReadmeUrl" : { + "shape" : "__string", + "locationName" : "readmeUrl" + }, + "SpdxLicenseId" : { + "shape" : "__string", + "locationName" : "spdxLicenseId" + }, + "Version" : { + "shape" : "Version", + "locationName" : "version" + } + } + }, + "CreateApplicationVersionInput" : { + "type" : "structure", + "members" : { + "SourceCodeUrl" : { + "shape" : "__string", + "locationName" : "sourceCodeUrl" + }, + "TemplateBody" : { + "shape" : "__string", + "locationName" : "templateBody" + }, + "TemplateUrl" : { + "shape" : "__string", + "locationName" : "templateUrl" + } + } + }, + "CreateApplicationVersionRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "applicationId" + }, + "SemanticVersion" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "semanticVersion" + }, + "SourceCodeUrl" : { + "shape" : "__string", + "locationName" : "sourceCodeUrl" + }, + "TemplateBody" : { + "shape" : "__string", + "locationName" : "templateBody" + }, + "TemplateUrl" : { + "shape" : "__string", + "locationName" : "templateUrl" + } + }, + "required" : [ "ApplicationId", "SemanticVersion" ] + }, + "CreateApplicationVersionResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "locationName" : "applicationId" + }, + "CreationTime" : { + "shape" : "__string", + "locationName" : "creationTime" + }, + "ParameterDefinitions" : { + "shape" : "ListOfParameterDefinition", + "locationName" : "parameterDefinitions" + }, + "SemanticVersion" : { + "shape" : "__string", + "locationName" : "semanticVersion" + }, + "SourceCodeUrl" : { + "shape" : "__string", + "locationName" : "sourceCodeUrl" + }, + "TemplateUrl" : { + "shape" : "__string", + "locationName" : "templateUrl" + } + } + }, + "CreateCloudFormationChangeSetInput" : { + "type" : "structure", + "members" : { + "ParameterOverrides" : { + "shape" : "ListOfParameterValue", + "locationName" : "parameterOverrides" + }, + "SemanticVersion" : { + "shape" : "__string", + "locationName" : "semanticVersion" + }, + "StackName" : { + "shape" : "__string", + "locationName" : "stackName" + } + } + }, + "CreateCloudFormationChangeSetRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "applicationId" + }, + "ParameterOverrides" : { + "shape" : "ListOfParameterValue", + "locationName" : "parameterOverrides" + }, + "SemanticVersion" : { + "shape" : "__string", + "locationName" : "semanticVersion" + }, + "StackName" : { + "shape" : "__string", + "locationName" : "stackName" + } + }, + "required" : [ "ApplicationId" ] + }, + "CreateCloudFormationChangeSetResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "locationName" : "applicationId" + }, + "ChangeSetId" : { + "shape" : "__string", + "locationName" : "changeSetId" + }, + "SemanticVersion" : { + "shape" : "__string", + "locationName" : "semanticVersion" + }, + "StackId" : { + "shape" : "__string", + "locationName" : "stackId" + } + } + }, + "ForbiddenException" : { + "type" : "structure", + "members" : { + "ErrorCode" : { + "shape" : "__string", + "locationName" : "errorCode" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 403 + } + }, + "GetApplicationPolicyRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "applicationId" + } + }, + "required" : [ "ApplicationId" ] + }, + "GetApplicationPolicyResponse" : { + "type" : "structure", + "members" : { + "Statements" : { + "shape" : "ListOfApplicationPolicyStatement", + "locationName" : "statements" + } + } + }, + "GetApplicationRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "applicationId" + }, + "SemanticVersion" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "semanticVersion" + } + }, + "required" : [ "ApplicationId" ] + }, + "GetApplicationResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "locationName" : "applicationId" + }, + "Author" : { + "shape" : "__string", + "locationName" : "author" + }, + "CreationTime" : { + "shape" : "__string", + "locationName" : "creationTime" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Labels" : { + "shape" : "ListOf__string", + "locationName" : "labels" + }, + "LicenseUrl" : { + "shape" : "__string", + "locationName" : "licenseUrl" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "ReadmeUrl" : { + "shape" : "__string", + "locationName" : "readmeUrl" + }, + "SpdxLicenseId" : { + "shape" : "__string", + "locationName" : "spdxLicenseId" + }, + "Version" : { + "shape" : "Version", + "locationName" : "version" + } + } + }, + "InternalServerErrorException" : { + "type" : "structure", + "members" : { + "ErrorCode" : { + "shape" : "__string", + "locationName" : "errorCode" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 500 + } + }, + "ListApplicationVersionsRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "applicationId" + }, + "MaxItems" : { + "shape" : "MaxItems", + "location" : "querystring", + "locationName" : "maxItems" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + } + }, + "required" : [ "ApplicationId" ] + }, + "ListApplicationVersionsResponse" : { + "type" : "structure", + "members" : { + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + }, + "Versions" : { + "shape" : "ListOfVersionSummary", + "locationName" : "versions" + } + } + }, + "ListApplicationsRequest" : { + "type" : "structure", + "members" : { + "MaxItems" : { + "shape" : "MaxItems", + "location" : "querystring", + "locationName" : "maxItems" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken" + } + } + }, + "ListApplicationsResponse" : { + "type" : "structure", + "members" : { + "Applications" : { + "shape" : "ListOfApplicationSummary", + "locationName" : "applications" + }, + "NextToken" : { + "shape" : "__string", + "locationName" : "nextToken" + } + } + }, + "ListOfApplicationPolicyStatement" : { + "type" : "list", + "member" : { + "shape" : "ApplicationPolicyStatement" + } + }, + "ListOfApplicationSummary" : { + "type" : "list", + "member" : { + "shape" : "ApplicationSummary" + } + }, + "ListOfParameterDefinition" : { + "type" : "list", + "member" : { + "shape" : "ParameterDefinition" + } + }, + "ListOfParameterValue" : { + "type" : "list", + "member" : { + "shape" : "ParameterValue" + } + }, + "ListOfVersionSummary" : { + "type" : "list", + "member" : { + "shape" : "VersionSummary" + } + }, + "ListOf__string" : { + "type" : "list", + "member" : { + "shape" : "__string" + } + }, + "MaxItems" : { + "type" : "integer", + "min" : 1, + "max" : 100 + }, + "NotFoundException" : { + "type" : "structure", + "members" : { + "ErrorCode" : { + "shape" : "__string", + "locationName" : "errorCode" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 404 + } + }, + "ParameterDefinition" : { + "type" : "structure", + "members" : { + "AllowedPattern" : { + "shape" : "__string", + "locationName" : "allowedPattern" + }, + "AllowedValues" : { + "shape" : "ListOf__string", + "locationName" : "allowedValues" + }, + "ConstraintDescription" : { + "shape" : "__string", + "locationName" : "constraintDescription" + }, + "DefaultValue" : { + "shape" : "__string", + "locationName" : "defaultValue" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "MaxLength" : { + "shape" : "__integer", + "locationName" : "maxLength" + }, + "MaxValue" : { + "shape" : "__integer", + "locationName" : "maxValue" + }, + "MinLength" : { + "shape" : "__integer", + "locationName" : "minLength" + }, + "MinValue" : { + "shape" : "__integer", + "locationName" : "minValue" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "NoEcho" : { + "shape" : "__boolean", + "locationName" : "noEcho" + }, + "ReferencedByResources" : { + "shape" : "ListOf__string", + "locationName" : "referencedByResources" + }, + "Type" : { + "shape" : "__string", + "locationName" : "type" + } + } + }, + "ParameterValue" : { + "type" : "structure", + "members" : { + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "Value" : { + "shape" : "__string", + "locationName" : "value" + } + } + }, + "PutApplicationPolicyRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "applicationId" + }, + "Statements" : { + "shape" : "ListOfApplicationPolicyStatement", + "locationName" : "statements" + } + }, + "required" : [ "ApplicationId" ] + }, + "PutApplicationPolicyResponse" : { + "type" : "structure", + "members" : { + "Statements" : { + "shape" : "ListOfApplicationPolicyStatement", + "locationName" : "statements" + } + } + }, + "TooManyRequestsException" : { + "type" : "structure", + "members" : { + "ErrorCode" : { + "shape" : "__string", + "locationName" : "errorCode" + }, + "Message" : { + "shape" : "__string", + "locationName" : "message" + } + }, + "exception" : true, + "error" : { + "httpStatusCode" : 429 + } + }, + "UpdateApplicationInput" : { + "type" : "structure", + "members" : { + "Author" : { + "shape" : "__string", + "locationName" : "author" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Labels" : { + "shape" : "ListOf__string", + "locationName" : "labels" + }, + "ReadmeBody" : { + "shape" : "__string", + "locationName" : "readmeBody" + }, + "ReadmeUrl" : { + "shape" : "__string", + "locationName" : "readmeUrl" + } + } + }, + "UpdateApplicationRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "applicationId" + }, + "Author" : { + "shape" : "__string", + "locationName" : "author" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Labels" : { + "shape" : "ListOf__string", + "locationName" : "labels" + }, + "ReadmeBody" : { + "shape" : "__string", + "locationName" : "readmeBody" + }, + "ReadmeUrl" : { + "shape" : "__string", + "locationName" : "readmeUrl" + } + }, + "required" : [ "ApplicationId" ] + }, + "UpdateApplicationResponse" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "locationName" : "applicationId" + }, + "Author" : { + "shape" : "__string", + "locationName" : "author" + }, + "CreationTime" : { + "shape" : "__string", + "locationName" : "creationTime" + }, + "Description" : { + "shape" : "__string", + "locationName" : "description" + }, + "Labels" : { + "shape" : "ListOf__string", + "locationName" : "labels" + }, + "LicenseUrl" : { + "shape" : "__string", + "locationName" : "licenseUrl" + }, + "Name" : { + "shape" : "__string", + "locationName" : "name" + }, + "ReadmeUrl" : { + "shape" : "__string", + "locationName" : "readmeUrl" + }, + "SpdxLicenseId" : { + "shape" : "__string", + "locationName" : "spdxLicenseId" + }, + "Version" : { + "shape" : "Version", + "locationName" : "version" + } + } + }, + "Version" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "locationName" : "applicationId" + }, + "CreationTime" : { + "shape" : "__string", + "locationName" : "creationTime" + }, + "ParameterDefinitions" : { + "shape" : "ListOfParameterDefinition", + "locationName" : "parameterDefinitions" + }, + "SemanticVersion" : { + "shape" : "__string", + "locationName" : "semanticVersion" + }, + "SourceCodeUrl" : { + "shape" : "__string", + "locationName" : "sourceCodeUrl" + }, + "TemplateUrl" : { + "shape" : "__string", + "locationName" : "templateUrl" + } + } + }, + "VersionSummary" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "locationName" : "applicationId" + }, + "CreationTime" : { + "shape" : "__string", + "locationName" : "creationTime" + }, + "SemanticVersion" : { + "shape" : "__string", + "locationName" : "semanticVersion" + }, + "SourceCodeUrl" : { + "shape" : "__string", + "locationName" : "sourceCodeUrl" + } + } + }, + "__boolean" : { + "type" : "boolean" + }, + "__double" : { + "type" : "double" + }, + "__integer" : { + "type" : "integer" + }, + "__string" : { + "type" : "string" + }, + "__timestamp" : { + "type" : "timestamp" + } + }, + "authorizers" : { + "authorization_strategy" : { + "name" : "authorization_strategy", + "type" : "provided", + "placement" : { + "location" : "header", + "name" : "Authorization" + } + } + } +} \ No newline at end of file diff --git a/models/apis/serverlessrepo/2017-09-08/docs-2.json b/models/apis/serverlessrepo/2017-09-08/docs-2.json new file mode 100644 index 00000000000..3a7fb5a08f8 --- /dev/null +++ b/models/apis/serverlessrepo/2017-09-08/docs-2.json @@ -0,0 +1,248 @@ +{ + "version" : "2.0", + "service" : "AWS Serverless Application Repository", + "operations" : { + "CreateApplication" : "Creates an application, optionally including an AWS SAM file to create the first application version in the same call.", + "CreateApplicationVersion" : "Creates an application version.", + "CreateCloudFormationChangeSet" : "Creates an AWS CloudFormation ChangeSet for the given application.", + "GetApplication" : "Gets the specified application.", + "GetApplicationPolicy" : "Gets the policy for the specified application.", + "ListApplicationVersions" : "Lists versions for the specified application.", + "ListApplications" : "Lists applications owned by the requester.", + "PutApplicationPolicy" : "Puts the policy for the specified application.", + "UpdateApplication" : "Updates the specified application." + }, + "shapes" : { + "Application" : { + "base" : "Details about the application.", + "refs" : { } + }, + "ApplicationPage" : { + "base" : "List of application details.", + "refs" : { } + }, + "ApplicationPolicy" : { + "base" : "Policy statements applied to the application.", + "refs" : { } + }, + "ApplicationPolicyStatement" : { + "base" : "Policy statement applied to the application.", + "refs" : { + "ListOfApplicationPolicyStatement$member" : null + } + }, + "ApplicationSummary" : { + "base" : "Summary of details about the application.", + "refs" : { + "ListOfApplicationSummary$member" : null + } + }, + "ApplicationVersionPage" : { + "base" : "List of version summaries for the application.", + "refs" : { } + }, + "BadRequestException" : { + "base" : "One of the parameters in the request is invalid.", + "refs" : { } + }, + "ChangeSetDetails" : { + "base" : "Details of the change set.", + "refs" : { } + }, + "ConflictException" : { + "base" : "The resource already exists.", + "refs" : { } + }, + "CreateApplicationInput" : { + "base" : "Create application request.", + "refs" : { } + }, + "CreateApplicationVersionInput" : { + "base" : "Create version request.", + "refs" : { } + }, + "CreateCloudFormationChangeSetInput" : { + "base" : "Create application ChangeSet request.", + "refs" : { } + }, + "ForbiddenException" : { + "base" : "The client is not authenticated.", + "refs" : { } + }, + "InternalServerErrorException" : { + "base" : "The AWS Serverless Application Repository service encountered an internal error.", + "refs" : { } + }, + "ListOfApplicationPolicyStatement" : { + "base" : null, + "refs" : { + "ApplicationPolicy$Statements" : "Array of policy statements applied to the application." + } + }, + "ListOfApplicationSummary" : { + "base" : null, + "refs" : { + "ApplicationPage$Applications" : "Array of application summaries." + } + }, + "ListOfParameterDefinition" : { + "base" : null, + "refs" : { + "Version$ParameterDefinitions" : "Array of parameter types supported by the application." + } + }, + "ListOfParameterValue" : { + "base" : null, + "refs" : { + "CreateCloudFormationChangeSetInput$ParameterOverrides" : "A list of parameter values for the parameters of the application." + } + }, + "ListOfVersionSummary" : { + "base" : null, + "refs" : { + "ApplicationVersionPage$Versions" : "Array of version summaries for the application." + } + }, + "ListOf__string" : { + "base" : null, + "refs" : { + "Application$Labels" : "Labels to improve discovery of apps in search results.\\nMin Length=1. Max Length=127. Maximum number of labels: 10\\nPattern: \"^[a-zA-Z0-9+\\\\-_:\\\\/@]+$\";", + "ApplicationPolicyStatement$Actions" : "A list of supported actions:\\n\\n GetApplication \\n \\n\\n CreateCloudFormationChangeSet \\n \\n\\n ListApplicationVersions \\n \\n\\n SearchApplications \\n \\n\\n Deploy (Note: This action enables all other actions above.)", + "ApplicationPolicyStatement$Principals" : "An AWS account ID, or * to make the application public.", + "ApplicationSummary$Labels" : "Labels to improve discovery of apps in search results.\\nMin Length=1. Max Length=127. Maximum number of labels: 10\\nPattern: \"^[a-zA-Z0-9+\\\\-_:\\\\/@]+$\";", + "CreateApplicationInput$Labels" : "Labels to improve discovery of apps in search results.\\nMin Length=1. Max Length=127. Maximum number of labels: 10\\nPattern: \"^[a-zA-Z0-9+\\\\-_:\\\\/@]+$\";", + "ParameterDefinition$AllowedValues" : "Array containing the list of values allowed for the parameter.", + "ParameterDefinition$ReferencedByResources" : "A list of SAM resources that use this parameter.", + "UpdateApplicationInput$Labels" : "Labels to improve discovery of apps in search results.\\nMin Length=1. Max Length=127. Maximum number of labels: 10\\nPattern: \"^[a-zA-Z0-9+\\\\-_:\\\\/@]+$\";" + } + }, + "NotFoundException" : { + "base" : "The resource (for example, an access policy statement) specified in the request does not exist.", + "refs" : { } + }, + "ParameterDefinition" : { + "base" : "Parameters supported by the application.", + "refs" : { + "ListOfParameterDefinition$member" : null + } + }, + "ParameterValue" : { + "base" : "Parameter value of the application.", + "refs" : { + "ListOfParameterValue$member" : null + } + }, + "TooManyRequestsException" : { + "base" : "The client is sending more than the allowed number of requests per unit time.", + "refs" : { } + }, + "UpdateApplicationInput" : { + "base" : "Update application request.", + "refs" : { } + }, + "Version" : { + "base" : "Application version details.", + "refs" : { + "Application$Version" : "Version information about the application." + } + }, + "VersionSummary" : { + "base" : "Application version summary.", + "refs" : { + "ListOfVersionSummary$member" : null + } + }, + "__boolean" : { + "base" : null, + "refs" : { + "ParameterDefinition$NoEcho" : "Whether to mask the parameter value whenever anyone makes a call that describes the stack. If you set the\\n value to true, the parameter value is masked with asterisks (*****)." + } + }, + "__integer" : { + "base" : null, + "refs" : { + "ParameterDefinition$MaxLength" : "An integer value that determines the largest number of characters you want to allow for String types.", + "ParameterDefinition$MaxValue" : "A numeric value that determines the largest numeric value you want to allow for Number types.", + "ParameterDefinition$MinLength" : "An integer value that determines the smallest number of characters you want to allow for String types.", + "ParameterDefinition$MinValue" : "A numeric value that determines the smallest numeric value you want to allow for Number types." + } + }, + "__string" : { + "base" : null, + "refs" : { + "Application$ApplicationId" : "The application Amazon Resource Name (ARN).", + "Application$Author" : "The name of the author publishing the app.\\nMin Length=1. Max Length=127.\\nPattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";", + "Application$CreationTime" : "The date/time this resource was created.", + "Application$Description" : "The description of the application.\\nMin Length=1. Max Length=256", + "Application$LicenseUrl" : "A link to a license file of the app that matches the spdxLicenseID of your application.\\nMax size 5 MB", + "Application$Name" : "The name of the application.\\nMin Length=1. Max Length=140\\nPattern: \"[a-zA-Z0-9\\\\-]+\";", + "Application$ReadmeUrl" : "A link to the Readme file that contains a more detailed description of the application and how it works in markdown language.\\nMax size 5 MB", + "Application$SpdxLicenseId" : "A valid identifier from https://spdx.org/licenses/.", + "ApplicationPage$NextToken" : "The token to request the next page of results.", + "ApplicationPolicyStatement$StatementId" : "A unique ID for the statement.", + "ApplicationSummary$ApplicationId" : "The application ARN.", + "ApplicationSummary$Author" : "The name of the author publishing the app\\nMin Length=1. Max Length=127.\\nPattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";", + "ApplicationSummary$CreationTime" : "The date/time this resource was created.", + "ApplicationSummary$Description" : "The description of the application.\\nMin Length=1. Max Length=256", + "ApplicationSummary$Name" : "The name of the application.\\nMin Length=1. Max Length=140\\nPattern: \"[a-zA-Z0-9\\\\-]+\";", + "ApplicationSummary$SpdxLicenseId" : "A valid identifier from https://spdx.org/licenses/ .", + "ApplicationVersionPage$NextToken" : "The token to request the next page of results.", + "BadRequestException$ErrorCode" : "400", + "BadRequestException$Message" : "One of the parameters in the request is invalid.", + "ChangeSetDetails$ApplicationId" : "The application Amazon Resource Name (ARN).", + "ChangeSetDetails$ChangeSetId" : "The ARN of the change set.\\nLength Constraints: Minimum length of 1.\\nPattern: arn:[-a-zA-Z0-9:/]*", + "ChangeSetDetails$SemanticVersion" : "The semantic version of the application:\\n\\n https://semver.org/", + "ChangeSetDetails$StackId" : "The unique ID of the stack.", + "ConflictException$ErrorCode" : "409", + "ConflictException$Message" : "The resource already exists.", + "CreateApplicationInput$Author" : "The name of the author publishing the app.\\nMin Length=1. Max Length=127.\\nPattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";", + "CreateApplicationInput$Description" : "The description of the application.\\nMin Length=1. Max Length=256", + "CreateApplicationInput$LicenseBody" : "A raw text file that contains the license of the app that matches the spdxLicenseID of your application.\\nMax size 5 MB", + "CreateApplicationInput$LicenseUrl" : "A link to a license file of the app that matches the spdxLicenseID of your application.\\nMax size 5 MB", + "CreateApplicationInput$Name" : "The name of the application you want to publish.\\nMin Length=1. Max Length=140\\nPattern: \"[a-zA-Z0-9\\\\-]+\";", + "CreateApplicationInput$ReadmeBody" : "A raw text Readme file that contains a more detailed description of the application and how it works in markdown language.\\nMax size 5 MB", + "CreateApplicationInput$ReadmeUrl" : "A link to the Readme file that contains a more detailed description of the application and how it works in markdown language.\\nMax size 5 MB", + "CreateApplicationInput$SemanticVersion" : "The semantic version of the application:\\n\\n https://semver.org/", + "CreateApplicationInput$SourceCodeUrl" : "A link to a public repository for the source code of your application.", + "CreateApplicationInput$SpdxLicenseId" : "A valid identifier from https://spdx.org/licenses/ .", + "CreateApplicationInput$TemplateBody" : "The raw packaged SAM template of your application.", + "CreateApplicationInput$TemplateUrl" : "A link to the packaged SAM template of your application.", + "CreateApplicationVersionInput$SourceCodeUrl" : "A link to a public repository for the source code of your application.", + "CreateApplicationVersionInput$TemplateBody" : "The raw packaged SAM template of your application.", + "CreateApplicationVersionInput$TemplateUrl" : "A link to the packaged SAM template of your application.", + "CreateCloudFormationChangeSetInput$SemanticVersion" : "The semantic version of the application:\\n\\n https://semver.org/", + "CreateCloudFormationChangeSetInput$StackName" : "The name or the unique ID of the stack for which you are creating a change set. AWS CloudFormation generates\\n the change set by comparing this stack's information with the information that you submit, such as a modified\\n template or different parameter input values. \\nConstraints: Minimum length of 1.\\nPattern: ([a-zA-Z][-a-zA-Z0-9]*)|(arn:\\b(aws|aws-us-gov|aws-cn)\\b:[-a-zA-Z0-9:/._+]*)", + "ForbiddenException$ErrorCode" : "403", + "ForbiddenException$Message" : "The client is not authenticated.", + "InternalServerErrorException$ErrorCode" : "500", + "InternalServerErrorException$Message" : "The AWS Serverless Application Repository service encountered an internal error.", + "ListOf__string$member" : null, + "NotFoundException$ErrorCode" : "404", + "NotFoundException$Message" : "The resource (for example, an access policy statement) specified in the request does not exist.", + "ParameterDefinition$AllowedPattern" : "A regular expression that represents the patterns to allow for String types.", + "ParameterDefinition$ConstraintDescription" : "A string that explains a constraint when the constraint is violated. For example, without a constraint description,\\n a parameter that has an allowed pattern of [A-Za-z0-9]+ displays the following error message when the user\\n specifies an invalid value:\\n\\n Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+ \\n \\nBy adding a constraint description, such as \"must contain only uppercase and lowercase letters, and numbers,\" you can display\\n the following customized error message:\\n\\n Malformed input-Parameter MyParameter must contain only uppercase and lowercase letters and numbers.", + "ParameterDefinition$DefaultValue" : "A value of the appropriate type for the template to use if no value is specified when a stack is created.\\n If you define constraints for the parameter, you must specify a value that adheres to those constraints.", + "ParameterDefinition$Description" : "A string of up to 4,000 characters that describes the parameter.", + "ParameterDefinition$Name" : "The name of the parameter.", + "ParameterDefinition$Type" : "The type of the parameter.\\nValid values: String | Number | List | CommaDelimitedList \\n \\n\\n String : A literal string.\\nFor example, users could specify \"MyUserName\" .\\n\\n Number : An integer or float. AWS CloudFormation validates the parameter value as a number; however, when you use the\\n parameter elsewhere in your template (for example, by using the Ref intrinsic function), the parameter value becomes a string.\\nFor example, users could specify \"8888\" .\\n\\n List : An array of integers or floats that are separated by commas. AWS CloudFormation validates the parameter value as numbers; however, when\\n you use the parameter elsewhere in your template (for example, by using the Ref intrinsic function), the parameter value becomes a list of strings.\\nFor example, users could specify \"80,20\", and a Ref results in [\"80\",\"20\"] .\\n\\n CommaDelimitedList : An array of literal strings that are separated by commas. The total number of strings should be one more than the total number of commas.\\n Also, each member string is space-trimmed.\\nFor example, users could specify \"test,dev,prod\", and a Ref results in [\"test\",\"dev\",\"prod\"] .", + "ParameterValue$Name" : "The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation\\n uses the default value that is specified in your template.", + "ParameterValue$Value" : "The input value associated with the parameter.", + "TooManyRequestsException$ErrorCode" : "429", + "TooManyRequestsException$Message" : "The client is sending more than the allowed number of requests per unit time.", + "UpdateApplicationInput$Author" : "The name of the author publishing the app.\\nMin Length=1. Max Length=127.\\nPattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";", + "UpdateApplicationInput$Description" : "The description of the application.\\nMin Length=1. Max Length=256", + "UpdateApplicationInput$ReadmeBody" : "A raw text Readme file that contains a more detailed description of the application and how it works in markdown language.\\nMax size 5 MB", + "UpdateApplicationInput$ReadmeUrl" : "A link to the Readme file that contains a more detailed description of the application and how it works in markdown language.\\nMax size 5 MB", + "Version$ApplicationId" : "The application Amazon Resource Name (ARN).", + "Version$CreationTime" : "The date/time this resource was created.", + "Version$SemanticVersion" : "The semantic version of the application:\\n\\n https://semver.org/", + "Version$SourceCodeUrl" : "A link to a public repository for the source code of your application.", + "Version$TemplateUrl" : "A link to the packaged SAM template of your application.", + "VersionSummary$ApplicationId" : "The application Amazon Resource Name (ARN).", + "VersionSummary$CreationTime" : "The date/time this resource was created.", + "VersionSummary$SemanticVersion" : "The semantic version of the application:\\n\\n https://semver.org/", + "VersionSummary$SourceCodeUrl" : "A link to a public repository for the source code of your application." + } + } + } +} \ No newline at end of file diff --git a/models/apis/servicecatalog/2015-12-10/api-2.json b/models/apis/servicecatalog/2015-12-10/api-2.json index 38f70e5533c..2d6b3ceb585 100644 --- a/models/apis/servicecatalog/2015-12-10/api-2.json +++ b/models/apis/servicecatalog/2015-12-10/api-2.json @@ -70,6 +70,19 @@ {"shape":"InvalidStateException"} ] }, + "CopyProduct":{ + "name":"CopyProduct", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopyProductInput"}, + "output":{"shape":"CopyProductOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"} + ] + }, "CreateConstraint":{ "name":"CreateConstraint", "http":{ @@ -236,6 +249,18 @@ {"shape":"ResourceNotFoundException"} ] }, + "DescribeCopyProductStatus":{ + "name":"DescribeCopyProductStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCopyProductStatusInput"}, + "output":{"shape":"DescribeCopyProductStatusOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, "DescribePortfolio":{ "name":"DescribePortfolio", "http":{ @@ -825,6 +850,47 @@ "max":1024, "min":1 }, + "CopyOption":{ + "type":"string", + "enum":["CopyTags"] + }, + "CopyOptions":{ + "type":"list", + "member":{"shape":"CopyOption"} + }, + "CopyProductInput":{ + "type":"structure", + "required":[ + "SourceProductArn", + "IdempotencyToken" + ], + "members":{ + "AcceptLanguage":{"shape":"AcceptLanguage"}, + "SourceProductArn":{"shape":"ProductArn"}, + "TargetProductId":{"shape":"Id"}, + "TargetProductName":{"shape":"ProductViewName"}, + "SourceProvisioningArtifactIdentifiers":{"shape":"SourceProvisioningArtifactProperties"}, + "CopyOptions":{"shape":"CopyOptions"}, + "IdempotencyToken":{ + "shape":"IdempotencyToken", + "idempotencyToken":true + } + } + }, + "CopyProductOutput":{ + "type":"structure", + "members":{ + "CopyProductToken":{"shape":"Id"} + } + }, + "CopyProductStatus":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "IN_PROGRESS", + "FAILED" + ] + }, "CreateConstraintInput":{ "type":"structure", "required":[ @@ -1067,6 +1133,22 @@ "Status":{"shape":"Status"} } }, + "DescribeCopyProductStatusInput":{ + "type":"structure", + "required":["CopyProductToken"], + "members":{ + "AcceptLanguage":{"shape":"AcceptLanguage"}, + "CopyProductToken":{"shape":"Id"} + } + }, + "DescribeCopyProductStatusOutput":{ + "type":"structure", + "members":{ + "CopyProductStatus":{"shape":"CopyProductStatus"}, + "TargetProductId":{"shape":"Id"}, + "StatusDetail":{"shape":"StatusDetail"} + } + }, "DescribePortfolioInput":{ "type":"structure", "required":["Id"], @@ -1601,6 +1683,12 @@ "type":"list", "member":{"shape":"Principal"} }, + "ProductArn":{ + "type":"string", + "max":1224, + "min":1, + "pattern":"arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}" + }, "ProductSource":{ "type":"string", "enum":["ACCOUNT"] @@ -1829,6 +1917,11 @@ "Type":{"shape":"ProvisioningArtifactType"} } }, + "ProvisioningArtifactPropertyName":{ + "type":"string", + "enum":["Id"] + }, + "ProvisioningArtifactPropertyValue":{"type":"string"}, "ProvisioningArtifactSummaries":{ "type":"list", "member":{"shape":"ProvisioningArtifactSummary"} @@ -2061,6 +2154,15 @@ "DESCENDING" ] }, + "SourceProvisioningArtifactProperties":{ + "type":"list", + "member":{"shape":"SourceProvisioningArtifactPropertiesMap"} + }, + "SourceProvisioningArtifactPropertiesMap":{ + "type":"map", + "key":{"shape":"ProvisioningArtifactPropertyName"}, + "value":{"shape":"ProvisioningArtifactPropertyValue"} + }, "Status":{ "type":"string", "enum":[ @@ -2069,6 +2171,7 @@ "FAILED" ] }, + "StatusDetail":{"type":"string"}, "SupportDescription":{"type":"string"}, "SupportEmail":{"type":"string"}, "SupportUrl":{"type":"string"}, diff --git a/models/apis/servicecatalog/2015-12-10/docs-2.json b/models/apis/servicecatalog/2015-12-10/docs-2.json index 6b95bf0ba48..8276f503e41 100644 --- a/models/apis/servicecatalog/2015-12-10/docs-2.json +++ b/models/apis/servicecatalog/2015-12-10/docs-2.json @@ -6,11 +6,12 @@ "AssociatePrincipalWithPortfolio": "

Associates the specified principal ARN with the specified portfolio.

", "AssociateProductWithPortfolio": "

Associates a product with a portfolio.

", "AssociateTagOptionWithResource": "

Associate a TagOption identifier with a resource identifier.

", + "CopyProduct": "

Copies the specified source product to the specified target product or a new product.

You can copy the product to the same account or another account. You can copy the product to the same region or another region.

This operation is performed asynchronously. To track the progress of the operation, use DescribeCopyProductStatus.

", "CreateConstraint": "

Creates a new constraint. For more information, see Using Constraints.

", "CreatePortfolio": "

Creates a new portfolio.

", "CreatePortfolioShare": "

Creates a new portfolio share.

", "CreateProduct": "

Creates a new product.

", - "CreateProvisioningArtifact": "

Create a new provisioning artifact for the specified product. This operation does not work with a product that has been shared with you.

See the bottom of this topic for an example JSON request.

", + "CreateProvisioningArtifact": "

Create a new provisioning artifact for the specified product. This operation does not work with a product that has been shared with you.

", "CreateTagOption": "

Create a new TagOption.

", "DeleteConstraint": "

Deletes the specified constraint.

", "DeletePortfolio": "

Deletes the specified portfolio. This operation does not work with a portfolio that has been shared with you or if it has products, users, constraints, or shared accounts associated with it.

", @@ -18,6 +19,7 @@ "DeleteProduct": "

Deletes the specified product. This operation does not work with a product that has been shared with you or is associated with a portfolio.

", "DeleteProvisioningArtifact": "

Deletes the specified provisioning artifact. This operation does not work on a provisioning artifact associated with a product that has been shared with you, or on the last provisioning artifact associated with a product (a product must have at least one provisioning artifact).

", "DescribeConstraint": "

Retrieves detailed information for a specified constraint.

", + "DescribeCopyProductStatus": "

Describes the status of the specified copy product operation.

", "DescribePortfolio": "

Retrieves detailed information and any tags associated with the specified portfolio.

", "DescribeProduct": "

Retrieves information about a specified product.

This operation is functionally identical to DescribeProductView except that it takes as input ProductId instead of ProductViewId.

", "DescribeProductAsAdmin": "

Retrieves information about a specified product, run with administrator access.

", @@ -58,50 +60,52 @@ "AcceptLanguage": { "base": null, "refs": { - "AcceptPortfolioShareInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "AssociatePrincipalWithPortfolioInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "AssociateProductWithPortfolioInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "CreateConstraintInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "CreatePortfolioInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "CreatePortfolioShareInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "CreateProductInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "CreateProvisioningArtifactInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DeleteConstraintInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DeletePortfolioInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DeletePortfolioShareInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DeleteProductInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DeleteProvisioningArtifactInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DescribeConstraintInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DescribePortfolioInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DescribeProductAsAdminInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DescribeProductInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DescribeProductViewInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DescribeProvisionedProductInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DescribeProvisioningArtifactInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DescribeProvisioningParametersInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DescribeRecordInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DisassociatePrincipalFromPortfolioInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "DisassociateProductFromPortfolioInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ListAcceptedPortfolioSharesInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ListConstraintsForPortfolioInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ListLaunchPathsInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ListPortfolioAccessInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ListPortfoliosForProductInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ListPortfoliosInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ListPrincipalsForPortfolioInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ListProvisioningArtifactsInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ListRecordHistoryInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ProvisionProductInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "RejectPortfolioShareInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "ScanProvisionedProductsInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "SearchProductsAsAdminInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "SearchProductsInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "TerminateProvisionedProductInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "UpdateConstraintInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "UpdatePortfolioInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "UpdateProductInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "UpdateProvisionedProductInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

", - "UpdateProvisioningArtifactInput$AcceptLanguage": "

The language code to use for this operation. Supported language codes are as follows:

\"en\" (English)

\"jp\" (Japanese)

\"zh\" (Chinese)

If no code is specified, \"en\" is used as the default.

" + "AcceptPortfolioShareInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "AssociatePrincipalWithPortfolioInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "AssociateProductWithPortfolioInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "CopyProductInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "CreateConstraintInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "CreatePortfolioInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "CreatePortfolioShareInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "CreateProductInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "CreateProvisioningArtifactInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DeleteConstraintInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DeletePortfolioInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DeletePortfolioShareInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DeleteProductInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DeleteProvisioningArtifactInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DescribeConstraintInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DescribeCopyProductStatusInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DescribePortfolioInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DescribeProductAsAdminInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DescribeProductInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DescribeProductViewInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DescribeProvisionedProductInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DescribeProvisioningArtifactInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DescribeProvisioningParametersInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DescribeRecordInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DisassociatePrincipalFromPortfolioInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "DisassociateProductFromPortfolioInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ListAcceptedPortfolioSharesInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ListConstraintsForPortfolioInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ListLaunchPathsInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ListPortfolioAccessInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ListPortfoliosForProductInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ListPortfoliosInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ListPrincipalsForPortfolioInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ListProvisioningArtifactsInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ListRecordHistoryInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ProvisionProductInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "RejectPortfolioShareInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "ScanProvisionedProductsInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "SearchProductsAsAdminInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "SearchProductsInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "TerminateProvisionedProductInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "UpdateConstraintInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "UpdatePortfolioInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "UpdateProductInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "UpdateProvisionedProductInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

", + "UpdateProvisioningArtifactInput$AcceptLanguage": "

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

" } }, "AcceptPortfolioShareInput": { @@ -238,7 +242,7 @@ "ConstraintParameters": { "base": null, "refs": { - "CreateConstraintInput$Parameters": "

The constraint parameters. Expected values vary depending on which Type is specified. For examples, see the bottom of this topic.

For Type LAUNCH, the RoleArn property is required.

For Type NOTIFICATION, the NotificationArns property is required.

For Type TEMPLATE, the Rules property is required.

", + "CreateConstraintInput$Parameters": "

The constraint parameters. Expected values vary depending on which Type is specified. For more information, see the Examples section.

For Type LAUNCH, the RoleArn property is required.

For Type NOTIFICATION, the NotificationArns property is required.

For Type TEMPLATE, the Rules property is required.

", "CreateConstraintOutput$ConstraintParameters": "

The resulting constraint parameters.

", "DescribeConstraintOutput$ConstraintParameters": "

The current parameters associated with the specified constraint.

", "UpdateConstraintOutput$ConstraintParameters": "

The resulting updated constraint parameters.

" @@ -265,6 +269,34 @@ "CreateConstraintInput$Type": "

The type of the constraint. Case-sensitive valid values are: LAUNCH, NOTIFICATION, or TEMPLATE.

" } }, + "CopyOption": { + "base": null, + "refs": { + "CopyOptions$member": null + } + }, + "CopyOptions": { + "base": null, + "refs": { + "CopyProductInput$CopyOptions": "

The copy options. If the value is CopyTags, the tags from the source product are copied to the target product.

" + } + }, + "CopyProductInput": { + "base": null, + "refs": { + } + }, + "CopyProductOutput": { + "base": null, + "refs": { + } + }, + "CopyProductStatus": { + "base": null, + "refs": { + "DescribeCopyProductStatusOutput$CopyProductStatus": "

The status of the copy product operation.

" + } + }, "CreateConstraintInput": { "base": null, "refs": { @@ -406,6 +438,16 @@ "refs": { } }, + "DescribeCopyProductStatusInput": { + "base": null, + "refs": { + } + }, + "DescribeCopyProductStatusOutput": { + "base": null, + "refs": { + } + }, "DescribePortfolioInput": { "base": null, "refs": { @@ -565,6 +607,8 @@ "AssociateProductWithPortfolioInput$PortfolioId": "

The portfolio identifier.

", "AssociateProductWithPortfolioInput$SourcePortfolioId": "

The identifier of the source portfolio to use with this association.

", "ConstraintDetail$ConstraintId": "

The identifier of the constraint.

", + "CopyProductInput$TargetProductId": "

The ID of the target product. By default, a new product is created.

", + "CopyProductOutput$CopyProductToken": "

A unique token to pass to DescribeCopyProductStatus to track the progress of the operation.

", "CreateConstraintInput$PortfolioId": "

The portfolio identifier.

", "CreateConstraintInput$ProductId": "

The product identifier.

", "CreatePortfolioShareInput$PortfolioId": "

The portfolio identifier.

", @@ -576,6 +620,8 @@ "DeleteProvisioningArtifactInput$ProductId": "

The product identifier.

", "DeleteProvisioningArtifactInput$ProvisioningArtifactId": "

The identifier of the provisioning artifact for the delete request. This is sometimes referred to as the product version.

", "DescribeConstraintInput$Id": "

The identifier of the constraint.

", + "DescribeCopyProductStatusInput$CopyProductToken": "

The token returned from the call to CopyProduct that initiated the operation.

", + "DescribeCopyProductStatusOutput$TargetProductId": "

The ID of the copied product.

", "DescribePortfolioInput$Id": "

The identifier of the portfolio for which to retrieve information.

", "DescribeProductAsAdminInput$Id": "

The identifier of the product for which to retrieve information.

", "DescribeProductInput$Id": "

The ProductId of the product to describe.

", @@ -629,12 +675,13 @@ "IdempotencyToken": { "base": null, "refs": { - "CreateConstraintInput$IdempotencyToken": "

A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", - "CreatePortfolioInput$IdempotencyToken": "

A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", - "CreateProductInput$IdempotencyToken": "

A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", - "CreateProvisioningArtifactInput$IdempotencyToken": "

A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", + "CopyProductInput$IdempotencyToken": "

A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", + "CreateConstraintInput$IdempotencyToken": "

A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", + "CreatePortfolioInput$IdempotencyToken": "

A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", + "CreateProductInput$IdempotencyToken": "

A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", + "CreateProvisioningArtifactInput$IdempotencyToken": "

A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", "ProvisionProductInput$ProvisionToken": "

An idempotency token that uniquely identifies the provisioning request.

", - "ProvisionedProductDetail$IdempotencyToken": "

A token to disambiguate duplicate requests. You can create multiple resources using the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", + "ProvisionedProductDetail$IdempotencyToken": "

A token to disambiguate duplicate requests. You can use the same input in multiple requests, provided that you also specify a different idempotency token for each request.

", "TerminateProvisionedProductInput$TerminateToken": "

An idempotency token that uniquely identifies the termination request. This token is only valid during the termination process. After the ProvisionedProduct object is terminated, further requests to terminate the same ProvisionedProduct object always return ResourceNotFound regardless of the value of TerminateToken.

", "UpdateProvisionedProductInput$UpdateToken": "

The idempotency token that uniquely identifies the provisioning update request.

" } @@ -986,6 +1033,12 @@ "ListPrincipalsForPortfolioOutput$Principals": "

The IAM principals (users or roles) associated with the portfolio.

" } }, + "ProductArn": { + "base": null, + "refs": { + "CopyProductInput$SourceProductArn": "

The Amazon Resource Name (ARN) of the source product.

" + } + }, "ProductSource": { "base": null, "refs": { @@ -1072,6 +1125,7 @@ "ProductViewName": { "base": null, "refs": { + "CopyProductInput$TargetProductName": "

A name for the target product. The default is the name of the source product.

", "CreateProductInput$Name": "

The name of the product.

", "ProductViewSummary$Name": "

The name of the product.

", "UpdateProductInput$Name": "

The updated product name.

" @@ -1279,6 +1333,18 @@ "CreateProvisioningArtifactInput$Parameters": "

The parameters to use when creating the new provisioning artifact.

" } }, + "ProvisioningArtifactPropertyName": { + "base": null, + "refs": { + "SourceProvisioningArtifactPropertiesMap$key": null + } + }, + "ProvisioningArtifactPropertyValue": { + "base": null, + "refs": { + "SourceProvisioningArtifactPropertiesMap$value": null + } + }, "ProvisioningArtifactSummaries": { "base": null, "refs": { @@ -1524,6 +1590,18 @@ "SearchProductsInput$SortOrder": "

The sort order specifier. If no value is specified, results are not sorted.

" } }, + "SourceProvisioningArtifactProperties": { + "base": null, + "refs": { + "CopyProductInput$SourceProvisioningArtifactIdentifiers": "

The IDs of the product versions to copy. By default, all provisioning artifacts are copied.

" + } + }, + "SourceProvisioningArtifactPropertiesMap": { + "base": null, + "refs": { + "SourceProvisioningArtifactProperties$member": null + } + }, "Status": { "base": null, "refs": { @@ -1536,6 +1614,12 @@ "UpdateProvisioningArtifactOutput$Status": "

The status of the current request.

" } }, + "StatusDetail": { + "base": null, + "refs": { + "DescribeCopyProductStatusOutput$StatusDetail": "

The status message.

" + } + }, "SupportDescription": { "base": null, "refs": { diff --git a/models/apis/servicecatalog/2015-12-10/paginators-1.json b/models/apis/servicecatalog/2015-12-10/paginators-1.json index 8ff946fe59f..e988d6f2be9 100644 --- a/models/apis/servicecatalog/2015-12-10/paginators-1.json +++ b/models/apis/servicecatalog/2015-12-10/paginators-1.json @@ -1,5 +1,35 @@ { "pagination": { + "ListAcceptedPortfolioShares": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "limit_key": "PageSize" + }, + "ListConstraintsForPortfolio": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "limit_key": "PageSize" + }, + "ListLaunchPaths": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "limit_key": "PageSize" + }, + "ListPortfolios": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "limit_key": "PageSize" + }, + "ListPortfoliosForProduct": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "limit_key": "PageSize" + }, + "ListPrincipalsForPortfolio": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "limit_key": "PageSize" + }, "ListResourcesForTagOption": { "input_token": "PageToken", "output_token": "PageToken", @@ -9,6 +39,16 @@ "input_token": "PageToken", "output_token": "PageToken", "limit_key": "PageSize" + }, + "SearchProducts": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "limit_key": "PageSize" + }, + "SearchProductsAsAdmin": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "limit_key": "PageSize" } } } diff --git a/models/apis/shield/2016-06-02/api-2.json b/models/apis/shield/2016-06-02/api-2.json index 90e117cc201..d19f6ad500d 100644 --- a/models/apis/shield/2016-06-02/api-2.json +++ b/models/apis/shield/2016-06-02/api-2.json @@ -110,6 +110,18 @@ {"shape":"ResourceNotFoundException"} ] }, + "GetSubscriptionState":{ + "name":"GetSubscriptionState", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSubscriptionStateRequest"}, + "output":{"shape":"GetSubscriptionStateResponse"}, + "errors":[ + {"shape":"InternalErrorException"} + ] + }, "ListAttacks":{ "name":"ListAttacks", "http":{ @@ -148,6 +160,7 @@ "StartTime":{"shape":"AttackTimestamp"}, "EndTime":{"shape":"AttackTimestamp"}, "AttackCounters":{"shape":"SummarizedCounterList"}, + "AttackProperties":{"shape":"AttackProperties"}, "Mitigations":{"shape":"MitigationList"} } }, @@ -157,6 +170,38 @@ "min":1, "pattern":"[a-zA-Z0-9\\\\-]*" }, + "AttackLayer":{ + "type":"string", + "enum":[ + "NETWORK", + "APPLICATION" + ] + }, + "AttackProperties":{ + "type":"list", + "member":{"shape":"AttackProperty"} + }, + "AttackProperty":{ + "type":"structure", + "members":{ + "AttackLayer":{"shape":"AttackLayer"}, + "AttackPropertyIdentifier":{"shape":"AttackPropertyIdentifier"}, + "TopContributors":{"shape":"TopContributors"}, + "Unit":{"shape":"Unit"}, + "Total":{"shape":"Long"} + } + }, + "AttackPropertyIdentifier":{ + "type":"string", + "enum":[ + "DESTINATION_URL", + "REFERRER", + "SOURCE_ASN", + "SOURCE_COUNTRY", + "SOURCE_IP_ADDRESS", + "SOURCE_USER_AGENT" + ] + }, "AttackSummaries":{ "type":"list", "member":{"shape":"AttackSummary"} @@ -183,6 +228,13 @@ "type":"list", "member":{"shape":"AttackVectorDescription"} }, + "Contributor":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Value":{"shape":"Long"} + } + }, "CreateProtectionRequest":{ "type":"structure", "required":[ @@ -274,6 +326,18 @@ "type":"long", "min":0 }, + "GetSubscriptionStateRequest":{ + "type":"structure", + "members":{ + } + }, + "GetSubscriptionStateResponse":{ + "type":"structure", + "required":["SubscriptionState"], + "members":{ + "SubscriptionState":{"shape":"SubscriptionState"} + } + }, "Integer":{"type":"integer"}, "InternalErrorException":{ "type":"structure", @@ -353,10 +417,11 @@ }, "exception":true }, + "Long":{"type":"long"}, "MaxResults":{ "type":"integer", "box":true, - "max":100, + "max":10000, "min":0 }, "Mitigation":{ @@ -450,6 +515,13 @@ "TimeCommitmentInSeconds":{"shape":"DurationInSeconds"} } }, + "SubscriptionState":{ + "type":"string", + "enum":[ + "ACTIVE", + "INACTIVE" + ] + }, "SummarizedAttackVector":{ "type":"structure", "required":["VectorType"], @@ -489,6 +561,19 @@ "type":"string", "min":1 }, + "TopContributors":{ + "type":"list", + "member":{"shape":"Contributor"} + }, + "Unit":{ + "type":"string", + "enum":[ + "BITS", + "BYTES", + "PACKETS", + "REQUESTS" + ] + }, "errorMessage":{"type":"string"} } } diff --git a/models/apis/shield/2016-06-02/docs-2.json b/models/apis/shield/2016-06-02/docs-2.json index 52b52c2bbb5..b32a177f821 100644 --- a/models/apis/shield/2016-06-02/docs-2.json +++ b/models/apis/shield/2016-06-02/docs-2.json @@ -2,13 +2,14 @@ "version": "2.0", "service": "AWS Shield Advanced

This is the AWS Shield Advanced API Reference. This guide is for developers who need detailed information about the AWS Shield Advanced API actions, data types, and errors. For detailed information about AWS WAF and AWS Shield Advanced features and an overview of how to use the AWS WAF and AWS Shield Advanced APIs, see the AWS WAF and AWS Shield Developer Guide.

", "operations": { - "CreateProtection": "

Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Elastic Load Balancing load balancer, or an Amazon Route 53 hosted zone.

", + "CreateProtection": "

Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Elastic Load Balancing load balancer, Elastic IP Address, or an Amazon Route 53 hosted zone.

", "CreateSubscription": "

Activates AWS Shield Advanced for an account.

", "DeleteProtection": "

Deletes an AWS Shield Advanced Protection.

", - "DeleteSubscription": "

Removes AWS Shield Advanced from an account.

", + "DeleteSubscription": "

Removes AWS Shield Advanced from an account. AWS Shield Advanced requires a 1-year subscription commitment. You cannot delete a subscription prior to the completion of that commitment.

", "DescribeAttack": "

Describes the details of a DDoS attack.

", "DescribeProtection": "

Lists the details of a Protection object.

", "DescribeSubscription": "

Provides details about the AWS Shield Advanced subscription for an account.

", + "GetSubscriptionState": "

Returns the SubscriptionState, either Active or Inactive.

", "ListAttacks": "

Returns all ongoing DDoS attacks or all DDoS attacks during a specified time period.

", "ListProtections": "

Lists all Protection objects for the account.

" }, @@ -26,6 +27,30 @@ "DescribeAttackRequest$AttackId": "

The unique identifier (ID) for the attack that to be described.

" } }, + "AttackLayer": { + "base": null, + "refs": { + "AttackProperty$AttackLayer": "

The type of DDoS event that was observed. NETWORK indicates layer 3 and layer 4 events and APPLICATION indicates layer 7 events.

" + } + }, + "AttackProperties": { + "base": null, + "refs": { + "AttackDetail$AttackProperties": "

The array of AttackProperty objects.

" + } + }, + "AttackProperty": { + "base": "

Details of the described attack.

", + "refs": { + "AttackProperties$member": null + } + }, + "AttackPropertyIdentifier": { + "base": null, + "refs": { + "AttackProperty$AttackPropertyIdentifier": "

Defines the DDoS attack property information that is provided.

" + } + }, "AttackSummaries": { "base": null, "refs": { @@ -41,12 +66,12 @@ "AttackTimestamp": { "base": null, "refs": { - "AttackDetail$StartTime": "

The time the attack started, in the format 2016-12-16T13:50Z.

", - "AttackDetail$EndTime": "

The time the attack ended, in the format 2016-12-16T13:50Z.

", - "AttackSummary$StartTime": "

The start time of the attack, in the format 2016-12-16T13:50Z.

", - "AttackSummary$EndTime": "

The end time of the attack, in the format 2016-12-16T13:50Z.

", - "TimeRange$FromInclusive": "

The start time, in the format 2016-12-16T13:50Z.

", - "TimeRange$ToExclusive": "

The end time, in the format 2016-12-16T15:50Z.

" + "AttackDetail$StartTime": "

The time the attack started, in Unix time in seconds. For more information see timestamp.

", + "AttackDetail$EndTime": "

The time the attack ended, in Unix time in seconds. For more information see timestamp.

", + "AttackSummary$StartTime": "

The start time of the attack, in Unix time in seconds. For more information see timestamp.

", + "AttackSummary$EndTime": "

The end time of the attack, in Unix time in seconds. For more information see timestamp.

", + "TimeRange$FromInclusive": "

The start time, in Unix time in seconds. For more information see timestamp.

", + "TimeRange$ToExclusive": "

The end time, in Unix time in seconds. For more information see timestamp.

" } }, "AttackVectorDescription": { @@ -61,6 +86,12 @@ "AttackSummary$AttackVectors": "

The list of attacks for a specified time period.

" } }, + "Contributor": { + "base": "

A contributor to the attack and their contribution.

", + "refs": { + "TopContributors$member": null + } + }, "CreateProtectionRequest": { "base": null, "refs": { @@ -145,6 +176,16 @@ "Subscription$TimeCommitmentInSeconds": "

The length, in seconds, of the AWS Shield Advanced subscription for the account.

" } }, + "GetSubscriptionStateRequest": { + "base": null, + "refs": { + } + }, + "GetSubscriptionStateResponse": { + "base": null, + "refs": { + } + }, "Integer": { "base": null, "refs": { @@ -184,7 +225,7 @@ } }, "LimitsExceededException": { - "base": "

Exception that indicates that the operation would exceed a limit.

", + "base": "

Exception that indicates that the operation would exceed a limit.

Type is the type of limit that would be exceeded.

Limit is the threshold that would be exceeded.

", "refs": { } }, @@ -209,10 +250,17 @@ } }, "LockedSubscriptionException": { - "base": "

Exception that indicates that the subscription has been modified by another client. You can retry the request.

", + "base": "

Exception that indicates that the subscription you are trying to delete has not yet completed the 1-year commitment. You cannot delete this subscription.

", "refs": { } }, + "Long": { + "base": null, + "refs": { + "AttackProperty$Total": "

The total contributions made to this attack by all contributors, not just the five listed in the TopContributors list.

", + "Contributor$Value": "

The contribution of this contributor expressed in Protection units. For example 10,000.

" + } + }, "MaxResults": { "base": null, "refs": { @@ -275,7 +323,7 @@ "base": null, "refs": { "AttackDetail$ResourceArn": "

The ARN (Amazon Resource Name) of the resource that was attacked.

", - "CreateProtectionRequest$ResourceArn": "

The ARN (Amazon Resource Name) of the resource to be protected.

", + "CreateProtectionRequest$ResourceArn": "

The ARN (Amazon Resource Name) of the resource to be protected.

The ARN should be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Elastic Load Balancer (Classic Load Balancer): arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name

  • For AWS CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id

  • For Amazon Route 53: arn:aws:route53::account-id:hostedzone/hosted-zone-id

  • For an Elastic IP address: arn:aws:ec2:region:account-id:eip-allocation/allocation-id

", "Protection$ResourceArn": "

The ARN (Amazon Resource Name) of the AWS resource that is protected.

", "ResourceArnFilterList$member": null } @@ -296,7 +344,8 @@ "refs": { "AttackSummary$AttackId": "

The unique identifier (ID) of the attack.

", "AttackSummary$ResourceArn": "

The ARN (Amazon Resource Name) of the resource that was attacked.

", - "AttackVectorDescription$VectorType": "

The attack type, for example, SNMP reflection or SYN flood.

", + "AttackVectorDescription$VectorType": "

The attack type. Valid values:

  • UDP_TRAFFIC

  • UDP_FRAGMENT

  • GENERIC_UDP_REFLECTION

  • DNS_REFLECTION

  • NTP_REFLECTION

  • CHARGEN_REFLECTION

  • SSDP_REFLECTION

  • PORT_MAPPER

  • RIP_REFLECTION

  • SNMP_REFLECTION

  • MSSQL_REFLECTION

  • NET_BIOS_REFLECTION

  • SYN_FLOOD

  • ACK_FLOOD

  • REQUEST_FLOOD

", + "Contributor$Name": "

The name of the contributor. This is dependent on the AttackPropertyIdentifier. For example, if the AttackPropertyIdentifier is SOURCE_COUNTRY, the Name could be United States.

", "Mitigation$MitigationName": "

The name of the mitigation taken for this attack.

", "SubResourceSummary$Id": "

The unique identifier (ID) of the SubResource.

", "SummarizedAttackVector$VectorType": "

The attack type, for example, SNMP reflection or SYN flood.

", @@ -328,6 +377,12 @@ "DescribeSubscriptionResponse$Subscription": "

The AWS Shield Advanced subscription details for an account.

" } }, + "SubscriptionState": { + "base": null, + "refs": { + "GetSubscriptionStateResponse$SubscriptionState": "

The status of the subscription.

" + } + }, "SummarizedAttackVector": { "base": "

A summary of information about the attack.

", "refs": { @@ -357,14 +412,14 @@ "TimeRange": { "base": "

The time range.

", "refs": { - "ListAttacksRequest$StartTime": "

The time period for the attacks.

", - "ListAttacksRequest$EndTime": "

The end of the time period for the attacks.

" + "ListAttacksRequest$StartTime": "

The start of the time period for the attacks. This is a timestamp type. The sample request above indicates a number type because the default used by WAF is Unix time in seconds. However any valid timestamp format is allowed.

", + "ListAttacksRequest$EndTime": "

The end of the time period for the attacks. This is a timestamp type. The sample request above indicates a number type because the default used by WAF is Unix time in seconds. However any valid timestamp format is allowed.

" } }, "Timestamp": { "base": null, "refs": { - "Subscription$StartTime": "

The start time of the subscription, in the format \"2016-12-16T13:50Z\".

" + "Subscription$StartTime": "

The start time of the subscription, in Unix time in seconds. For more information see timestamp.

" } }, "Token": { @@ -376,6 +431,18 @@ "ListProtectionsResponse$NextToken": "

If you specify a value for MaxResults and you have more Protections than the value of MaxResults, AWS Shield Advanced returns a NextToken value in the response that allows you to list another group of Protections. For the second and subsequent ListProtections requests, specify the value of NextToken from the previous response to get information about another batch of Protections.

" } }, + "TopContributors": { + "base": null, + "refs": { + "AttackProperty$TopContributors": "

The array of Contributor objects that includes the top five contributors to an attack.

" + } + }, + "Unit": { + "base": null, + "refs": { + "AttackProperty$Unit": "

The unit of the Value of the contributions.

" + } + }, "errorMessage": { "base": null, "refs": { diff --git a/models/apis/shield/2016-06-02/paginators-1.json b/models/apis/shield/2016-06-02/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/shield/2016-06-02/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/sqs/2012-11-05/api-2.json b/models/apis/sqs/2012-11-05/api-2.json index 0531c8b24eb..c0d65b696b6 100644 --- a/models/apis/sqs/2012-11-05/api-2.json +++ b/models/apis/sqs/2012-11-05/api-2.json @@ -151,6 +151,18 @@ {"shape":"QueueDoesNotExist"} ] }, + "ListQueueTags":{ + "name":"ListQueueTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListQueueTagsRequest"}, + "output":{ + "shape":"ListQueueTagsResult", + "resultWrapper":"ListQueueTagsResult" + } + }, "ListQueues":{ "name":"ListQueues", "http":{ @@ -244,6 +256,22 @@ "errors":[ {"shape":"InvalidAttributeName"} ] + }, + "TagQueue":{ + "name":"TagQueue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagQueueRequest"} + }, + "UntagQueue":{ + "name":"UntagQueue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagQueueRequest"} } }, "shapes":{ @@ -586,6 +614,22 @@ "queueUrls":{"shape":"QueueUrlList"} } }, + "ListQueueTagsRequest":{ + "type":"structure", + "required":["QueueUrl"], + "members":{ + "QueueUrl":{"shape":"String"} + } + }, + "ListQueueTagsResult":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagMap", + "locationName":"Tag" + } + } + }, "ListQueuesRequest":{ "type":"structure", "members":{ @@ -962,6 +1006,40 @@ "locationName":"StringListValue" } }, + "TagKey":{"type":"string"}, + "TagKeyList":{ + "type":"list", + "member":{ + "shape":"TagKey", + "locationName":"TagKey" + }, + "flattened":true + }, + "TagMap":{ + "type":"map", + "key":{ + "shape":"TagKey", + "locationName":"Key" + }, + "value":{ + "shape":"TagValue", + "locationName":"Value" + }, + "flattened":true, + "locationName":"Tag" + }, + "TagQueueRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "Tags" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "Tags":{"shape":"TagMap"} + } + }, + "TagValue":{"type":"string"}, "TooManyEntriesInBatchRequest":{ "type":"structure", "members":{ @@ -983,6 +1061,17 @@ "senderFault":true }, "exception":true + }, + "UntagQueueRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "TagKeys" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"} + } } } } diff --git a/models/apis/sqs/2012-11-05/docs-2.json b/models/apis/sqs/2012-11-05/docs-2.json index 9293bb80e20..5c00d576d97 100644 --- a/models/apis/sqs/2012-11-05/docs-2.json +++ b/models/apis/sqs/2012-11-05/docs-2.json @@ -1,36 +1,39 @@ { "version": "2.0", - "service": "

Welcome to the Amazon Simple Queue Service API Reference.

Amazon Simple Queue Service (Amazon SQS) is a reliable, highly-scalable hosted queue for storing messages as they travel between applications or microservices. Amazon SQS moves data between distributed application components and helps you decouple these components.

Standard queues are available in all regions. FIFO queues are available in US West (Oregon) and US East (Ohio).

You can use AWS SDKs to access Amazon SQS using your favorite programming language. The SDKs perform tasks such as the following automatically:

  • Cryptographically sign your service requests

  • Retry requests

  • Handle error responses

Additional Information

", + "service": "

Welcome to the Amazon Simple Queue Service API Reference.

Amazon Simple Queue Service (Amazon SQS) is a reliable, highly-scalable hosted queue for storing messages as they travel between applications or microservices. Amazon SQS moves data between distributed application components and helps you decouple these components.

Standard queues are available in all regions. FIFO queues are available in the US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland) regions.

You can use AWS SDKs to access Amazon SQS using your favorite programming language. The SDKs perform tasks such as the following automatically:

  • Cryptographically sign your service requests

  • Retry requests

  • Handle error responses

Additional Information

", "operations": { - "AddPermission": "

Adds a permission to a queue for a specific principal. This allows sharing access to the queue.

When you create a queue, you have full control access rights for the queue. Only you, the owner of the queue, can grant or deny permissions to the queue. For more information about these permissions, see Shared Queues in the Amazon SQS Developer Guide.

AddPermission writes an Amazon-SQS-generated policy. If you want to write your own policy, use SetQueueAttributes to upload your policy. For more information about writing your own policy, see Using The Access Policy Language in the Amazon SQS Developer Guide.

Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", - "ChangeMessageVisibility": "

Changes the visibility timeout of a specified message in a queue to a new value. The maximum allowed timeout value is 12 hours. Thus, you can't extend the timeout of a message in an existing queue to more than a total visibility timeout of 12 hours. For more information, see Visibility Timeout in the Amazon SQS Developer Guide.

For example, you have a message and with the default visibility timeout of 5 minutes. After 3 minutes, you call ChangeMessageVisiblity with a timeout of 10 minutes. At that time, the timeout for the message is extended by 10 minutes beyond the time of the ChangeMessageVisibility action. This results in a total visibility timeout of 13 minutes. You can continue to call the ChangeMessageVisibility to extend the visibility timeout to a maximum of 12 hours. If you try to extend the visibility timeout beyond 12 hours, your request is rejected.

A message is considered to be in flight after it's received from a queue by a consumer, but not yet deleted from the queue.

For standard queues, there can be a maximum of 120,000 inflight messages per queue. If you reach this limit, Amazon SQS returns the OverLimit error message. To avoid reaching the limit, you should delete messages from the queue after they're processed. You can also increase the number of queues you use to process your messages.

For FIFO queues, there can be a maximum of 20,000 inflight messages per queue. If you reach this limit, Amazon SQS returns no error messages.

If you attempt to set the VisibilityTimeout to a value greater than the maximum time left, Amazon SQS returns an error. Amazon SQS doesn't automatically recalculate and increase the timeout to the maximum remaining time.

Unlike with a queue, when you change the visibility timeout for a specific message the timeout value is applied immediately but isn't saved in memory for that message. If you don't delete a message after it is received, the visibility timeout for the message reverts to the original timeout value (not to the value you set using the ChangeMessageVisibility action) the next time the message is received.

", + "AddPermission": "

Adds a permission to a queue for a specific principal. This allows sharing access to the queue.

When you create a queue, you have full control access rights for the queue. Only you, the owner of the queue, can grant or deny permissions to the queue. For more information about these permissions, see Shared Queues in the Amazon Simple Queue Service Developer Guide.

AddPermission writes an Amazon-SQS-generated policy. If you want to write your own policy, use SetQueueAttributes to upload your policy. For more information about writing your own policy, see Using The Access Policy Language in the Amazon Simple Queue Service Developer Guide.

Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", + "ChangeMessageVisibility": "

Changes the visibility timeout of a specified message in a queue to a new value. The maximum allowed timeout value is 12 hours. Thus, you can't extend the timeout of a message in an existing queue to more than a total visibility timeout of 12 hours. For more information, see Visibility Timeout in the Amazon Simple Queue Service Developer Guide.

For example, you have a message with a visibility timeout of 5 minutes. After 3 minutes, you call ChangeMessageVisiblity with a timeout of 10 minutes. At that time, the timeout for the message is extended by 10 minutes beyond the time of the ChangeMessageVisibility action. This results in a total visibility timeout of 13 minutes. You can continue to call the ChangeMessageVisibility to extend the visibility timeout to a maximum of 12 hours. If you try to extend the visibility timeout beyond 12 hours, your request is rejected.

A message is considered to be in flight after it's received from a queue by a consumer, but not yet deleted from the queue.

For standard queues, there can be a maximum of 120,000 inflight messages per queue. If you reach this limit, Amazon SQS returns the OverLimit error message. To avoid reaching the limit, you should delete messages from the queue after they're processed. You can also increase the number of queues you use to process your messages.

For FIFO queues, there can be a maximum of 20,000 inflight messages per queue. If you reach this limit, Amazon SQS returns no error messages.

If you attempt to set the VisibilityTimeout to a value greater than the maximum time left, Amazon SQS returns an error. Amazon SQS doesn't automatically recalculate and increase the timeout to the maximum remaining time.

Unlike with a queue, when you change the visibility timeout for a specific message the timeout value is applied immediately but isn't saved in memory for that message. If you don't delete a message after it is received, the visibility timeout for the message reverts to the original timeout value (not to the value you set using the ChangeMessageVisibility action) the next time the message is received.

", "ChangeMessageVisibilityBatch": "

Changes the visibility timeout of multiple messages. This is a batch version of ChangeMessageVisibility. The result of the action on each message is reported individually in the response. You can send up to 10 ChangeMessageVisibility requests with each ChangeMessageVisibilityBatch action.

Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200.

Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", - "CreateQueue": "

Creates a new standard or FIFO queue. You can pass one or more attributes in the request. Keep the following caveats in mind:

  • If you don't specify the FifoQueue attribute, Amazon SQS creates a standard queue.

    You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see Moving From a Standard Queue to a FIFO Queue in the Amazon SQS Developer Guide.

  • If you don't provide a value for an attribute, the queue is created with the default value for the attribute.

  • If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.

To successfully create a new queue, you must provide a queue name that adheres to the limits related to queues and is unique within the scope of your queues.

To get the queue URL, use the GetQueueUrl action. GetQueueUrl requires only the QueueName parameter. be aware of existing queue names:

  • If you provide the name of an existing queue along with the exact names and values of all the queue's attributes, CreateQueue returns the queue URL for the existing queue.

  • If the queue name, attribute names, or attribute values don't match an existing queue, CreateQueue returns an error.

Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", + "CreateQueue": "

Creates a new standard or FIFO queue. You can pass one or more attributes in the request. Keep the following caveats in mind:

  • If you don't specify the FifoQueue attribute, Amazon SQS creates a standard queue.

    You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see Moving From a Standard Queue to a FIFO Queue in the Amazon Simple Queue Service Developer Guide.

  • If you don't provide a value for an attribute, the queue is created with the default value for the attribute.

  • If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.

To successfully create a new queue, you must provide a queue name that adheres to the limits related to queues and is unique within the scope of your queues.

To get the queue URL, use the GetQueueUrl action. GetQueueUrl requires only the QueueName parameter. be aware of existing queue names:

  • If you provide the name of an existing queue along with the exact names and values of all the queue's attributes, CreateQueue returns the queue URL for the existing queue.

  • If the queue name, attribute names, or attribute values don't match an existing queue, CreateQueue returns an error.

Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", "DeleteMessage": "

Deletes the specified message from the specified queue. You specify the message by using the message's receipt handle and not the MessageId you receive when you send the message. Even if the message is locked by another reader due to the visibility timeout setting, it is still deleted from the queue. If you leave a message in the queue for longer than the queue's configured retention period, Amazon SQS automatically deletes the message.

The receipt handle is associated with a specific instance of receiving the message. If you receive a message more than once, the receipt handle you get each time you receive the message is different. If you don't provide the most recently received receipt handle for the message when you use the DeleteMessage action, the request succeeds, but the message might not be deleted.

For standard queues, it is possible to receive a message even after you delete it. This might happen on rare occasions if one of the servers storing a copy of the message is unavailable when you send the request to delete the message. The copy remains on the server and might be returned to you on a subsequent receive request. You should ensure that your application is idempotent, so that receiving a message more than once does not cause issues.

", "DeleteMessageBatch": "

Deletes up to ten messages from the specified queue. This is a batch version of DeleteMessage. The result of the action on each message is reported individually in the response.

Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200.

Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", - "DeleteQueue": "

Deletes the queue specified by the QueueUrl, even if the queue is empty. If the specified queue doesn't exist, Amazon SQS returns a successful response.

Be careful with the DeleteQueue action: When you delete a queue, any messages in the queue are no longer available.

When you delete a queue, the deletion process takes up to 60 seconds. Requests you send involving that queue during the 60 seconds might succeed. For example, a SendMessage request might succeed, but after 60 seconds the queue and the message you sent no longer exist.

When you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.

", + "DeleteQueue": "

Deletes the queue specified by the QueueUrl, regardless of the queue's contents. If the specified queue doesn't exist, Amazon SQS returns a successful response.

Be careful with the DeleteQueue action: When you delete a queue, any messages in the queue are no longer available.

When you delete a queue, the deletion process takes up to 60 seconds. Requests you send involving that queue during the 60 seconds might succeed. For example, a SendMessage request might succeed, but after 60 seconds the queue and the message you sent no longer exist.

When you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.

", "GetQueueAttributes": "

Gets attributes for the specified queue.

To determine whether a queue is FIFO, you can check whether QueueName ends with the .fifo suffix.

Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", - "GetQueueUrl": "

Returns the URL of an existing queue. This action provides a simple way to retrieve the URL of an Amazon SQS queue.

To access a queue that belongs to another AWS account, use the QueueOwnerAWSAccountId parameter to specify the account ID of the queue's owner. The queue's owner must grant you permission to access the queue. For more information about shared queue access, see AddPermission or see Shared Queues in the Amazon SQS Developer Guide.

", - "ListDeadLetterSourceQueues": "

Returns a list of your queues that have the RedrivePolicy queue attribute configured with a dead letter queue.

For more information about using dead letter queues, see Using Amazon SQS Dead Letter Queues in the Amazon SQS Developer Guide.

", + "GetQueueUrl": "

Returns the URL of an existing queue. This action provides a simple way to retrieve the URL of an Amazon SQS queue.

To access a queue that belongs to another AWS account, use the QueueOwnerAWSAccountId parameter to specify the account ID of the queue's owner. The queue's owner must grant you permission to access the queue. For more information about shared queue access, see AddPermission or see Shared Queues in the Amazon Simple Queue Service Developer Guide.

", + "ListDeadLetterSourceQueues": "

Returns a list of your queues that have the RedrivePolicy queue attribute configured with a dead-letter queue.

For more information about using dead-letter queues, see Using Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service Developer Guide.

", + "ListQueueTags": "

List all cost allocation tags added to the specified Amazon SQS queue. For an overview, see Tagging Amazon SQS Queues in the Amazon Simple Queue Service Developer Guide.

When you use queue tags, keep the following guidelines in mind:

  • Adding more than 50 tags to a queue isn't recommended.

  • Tags don't have any semantic meaning. Amazon SQS interprets tags as character strings.

  • Tags are case-sensitive.

  • A new tag with a key identical to that of an existing tag overwrites the existing tag.

  • Tagging API actions are limited to 5 TPS per AWS account. If your application requires a higher throughput, file a technical support request.

For a full list of tag restrictions, see Limits Related to Queues in the Amazon Simple Queue Service Developer Guide.

", "ListQueues": "

Returns a list of your queues. The maximum number of queues that can be returned is 1,000. If you specify a value for the optional QueueNamePrefix parameter, only queues with a name that begins with the specified value are returned.

", "PurgeQueue": "

Deletes the messages in a queue specified by the QueueURL parameter.

When you use the PurgeQueue action, you can't retrieve a message deleted from a queue.

When you purge a queue, the message deletion process takes up to 60 seconds. All messages sent to the queue before calling the PurgeQueue action are deleted. Messages sent to the queue while it is being purged might be deleted. While the queue is being purged, messages sent to the queue before PurgeQueue is called might be received, but are deleted within the next minute.

", - "ReceiveMessage": "

Retrieves one or more messages (up to 10), from the specified queue. Using the WaitTimeSeconds parameter enables long-poll support. For more information, see Amazon SQS Long Polling in the Amazon SQS Developer Guide.

Short poll is the default behavior where a weighted random set of machines is sampled on a ReceiveMessage call. Thus, only the messages on the sampled machines are returned. If the number of messages in the queue is small (fewer than 1,000), you most likely get fewer messages than you requested per ReceiveMessage call. If the number of messages in the queue is extremely small, you might not receive any messages in a particular ReceiveMessage response. If this happens, repeat the request.

For each message returned, the response includes the following:

  • The message body.

  • An MD5 digest of the message body. For information about MD5, see RFC1321.

  • The MessageId you received when you sent the message to the queue.

  • The receipt handle.

  • The message attributes.

  • An MD5 digest of the message attributes.

The receipt handle is the identifier you must provide when deleting the message. For more information, see Queue and Message Identifiers in the Amazon SQS Developer Guide.

You can provide the VisibilityTimeout parameter in your request. The parameter is applied to the messages that Amazon SQS returns in the response. If you don't include the parameter, the overall visibility timeout for the queue is used for the returned messages. For more information, see Visibility Timeout in the Amazon SQS Developer Guide.

A message that isn't deleted or a message whose visibility isn't extended before the visibility timeout expires counts as a failed receive. Depending on the configuration of the queue, the message might be sent to the dead letter queue.

In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully.

", + "ReceiveMessage": "

Retrieves one or more messages (up to 10), from the specified queue. Using the WaitTimeSeconds parameter enables long-poll support. For more information, see Amazon SQS Long Polling in the Amazon Simple Queue Service Developer Guide.

Short poll is the default behavior where a weighted random set of machines is sampled on a ReceiveMessage call. Thus, only the messages on the sampled machines are returned. If the number of messages in the queue is small (fewer than 1,000), you most likely get fewer messages than you requested per ReceiveMessage call. If the number of messages in the queue is extremely small, you might not receive any messages in a particular ReceiveMessage response. If this happens, repeat the request.

For each message returned, the response includes the following:

  • The message body.

  • An MD5 digest of the message body. For information about MD5, see RFC1321.

  • The MessageId you received when you sent the message to the queue.

  • The receipt handle.

  • The message attributes.

  • An MD5 digest of the message attributes.

The receipt handle is the identifier you must provide when deleting the message. For more information, see Queue and Message Identifiers in the Amazon Simple Queue Service Developer Guide.

You can provide the VisibilityTimeout parameter in your request. The parameter is applied to the messages that Amazon SQS returns in the response. If you don't include the parameter, the overall visibility timeout for the queue is used for the returned messages. For more information, see Visibility Timeout in the Amazon Simple Queue Service Developer Guide.

A message that isn't deleted or a message whose visibility isn't extended before the visibility timeout expires counts as a failed receive. Depending on the configuration of the queue, the message might be sent to the dead-letter queue.

In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully.

", "RemovePermission": "

Revokes any permissions in the queue policy that matches the specified Label parameter. Only the owner of the queue can remove permissions.

", "SendMessage": "

Delivers a message to the specified queue.

A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed:

#x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF

Any characters not included in this list will be rejected. For more information, see the W3C specification for characters.

", "SendMessageBatch": "

Delivers up to ten messages to the specified queue. This is a batch version of SendMessage. For a FIFO queue, multiple messages within a single batch are enqueued in the order they are sent.

The result of sending each message is reported individually in the response. Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200.

The maximum allowed individual message size and the maximum total payload size (the sum of the individual lengths of all of the batched messages) are both 256 KB (262,144 bytes).

A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed:

#x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF

Any characters not included in this list will be rejected. For more information, see the W3C specification for characters.

If you don't specify the DelaySeconds parameter for an entry, Amazon SQS uses the default value for the queue.

Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", - "SetQueueAttributes": "

Sets the value of one or more queue attributes. When you change a queue's attributes, the change can take up to 60 seconds for most of the attributes to propagate throughout the Amazon SQS system. Changes made to the MessageRetentionPeriod attribute can take up to 15 minutes.

In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully.

" + "SetQueueAttributes": "

Sets the value of one or more queue attributes. When you change a queue's attributes, the change can take up to 60 seconds for most of the attributes to propagate throughout the Amazon SQS system. Changes made to the MessageRetentionPeriod attribute can take up to 15 minutes.

In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully.

", + "TagQueue": "

Add cost allocation tags to the specified Amazon SQS queue. For an overview, see Tagging Amazon SQS Queues in the Amazon Simple Queue Service Developer Guide.

When you use queue tags, keep the following guidelines in mind:

  • Adding more than 50 tags to a queue isn't recommended.

  • Tags don't have any semantic meaning. Amazon SQS interprets tags as character strings.

  • Tags are case-sensitive.

  • A new tag with a key identical to that of an existing tag overwrites the existing tag.

  • Tagging API actions are limited to 5 TPS per AWS account. If your application requires a higher throughput, file a technical support request.

For a full list of tag restrictions, see Limits Related to Queues in the Amazon Simple Queue Service Developer Guide.

", + "UntagQueue": "

Remove cost allocation tags from the specified Amazon SQS queue. For an overview, see Tagging Amazon SQS Queues in the Amazon Simple Queue Service Developer Guide.

When you use queue tags, keep the following guidelines in mind:

  • Adding more than 50 tags to a queue isn't recommended.

  • Tags don't have any semantic meaning. Amazon SQS interprets tags as character strings.

  • Tags are case-sensitive.

  • A new tag with a key identical to that of an existing tag overwrites the existing tag.

  • Tagging API actions are limited to 5 TPS per AWS account. If your application requires a higher throughput, file a technical support request.

For a full list of tag restrictions, see Limits Related to Queues in the Amazon Simple Queue Service Developer Guide.

" }, "shapes": { "AWSAccountIdList": { "base": null, "refs": { - "AddPermissionRequest$AWSAccountIds": "

The AWS account number of the principal who is given permission. The principal must have an AWS account, but does not need to be signed up for Amazon SQS. For information about locating the AWS account identification, see Your AWS Identifiers in the Amazon SQS Developer Guide.

" + "AddPermissionRequest$AWSAccountIds": "

The AWS account number of the principal who is given permission. The principal must have an AWS account, but does not need to be signed up for Amazon SQS. For information about locating the AWS account identification, see Your AWS Identifiers in the Amazon Simple Queue Service Developer Guide.

" } }, "ActionNameList": { "base": null, "refs": { - "AddPermissionRequest$Actions": "

The action the client wants to allow for the specified principal. The following values are valid:

  • *

  • ChangeMessageVisibility

  • DeleteMessage

  • GetQueueAttributes

  • GetQueueUrl

  • ReceiveMessage

  • SendMessage

For more information about these actions, see Understanding Permissions in the Amazon SQS Developer Guide.

Specifying SendMessage, DeleteMessage, or ChangeMessageVisibility for ActionName.n also grants permissions for the corresponding batch versions of those actions: SendMessageBatch, DeleteMessageBatch, and ChangeMessageVisibilityBatch.

" + "AddPermissionRequest$Actions": "

The action the client wants to allow for the specified principal. The following values are valid:

  • *

  • ChangeMessageVisibility

  • DeleteMessage

  • GetQueueAttributes

  • GetQueueUrl

  • ReceiveMessage

  • SendMessage

For more information about these actions, see Understanding Permissions in the Amazon Simple Queue Service Developer Guide.

Specifying SendMessage, DeleteMessage, or ChangeMessageVisibility for ActionName.n also grants permissions for the corresponding batch versions of those actions: SendMessageBatch, DeleteMessageBatch, and ChangeMessageVisibilityBatch.

" } }, "AddPermissionRequest": { @@ -41,7 +44,7 @@ "AttributeNameList": { "base": null, "refs": { - "GetQueueAttributesRequest$AttributeNames": "

A list of attributes for which to retrieve information.

In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully.

The following attributes are supported:

  • All - Returns all values.

  • ApproximateNumberOfMessages - Returns the approximate number of visible messages in a queue. For more information, see Resources Required to Process Messages in the Amazon SQS Developer Guide.

  • ApproximateNumberOfMessagesDelayed - Returns the approximate number of messages that are waiting to be added to the queue.

  • ApproximateNumberOfMessagesNotVisible - Returns the approximate number of messages that have not timed-out and aren't deleted. For more information, see Resources Required to Process Messages in the Amazon SQS Developer Guide.

  • CreatedTimestamp - Returns the time when the queue was created in seconds (epoch time).

  • DelaySeconds - Returns the default delay on the queue in seconds.

  • LastModifiedTimestamp - Returns the time when the queue was last changed in seconds (epoch time).

  • MaximumMessageSize - Returns the limit of how many bytes a message can contain before Amazon SQS rejects it.

  • MessageRetentionPeriod - Returns the length of time, in seconds, for which Amazon SQS retains a message.

  • Policy - Returns the policy of the queue.

  • QueueArn - Returns the Amazon resource name (ARN) of the queue.

  • ReceiveMessageWaitTimeSeconds - Returns the length of time, in seconds, for which the ReceiveMessage action waits for a message to arrive.

  • RedrivePolicy - Returns the parameters for dead letter queue functionality of the source queue. For more information about the redrive policy and dead letter queues, see Using Amazon SQS Dead Letter Queues in the Amazon SQS Developer Guide.

  • VisibilityTimeout - Returns the visibility timeout for the queue. For more information about the visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide.

The following attributes apply only to server-side-encryption:

  • KmsMasterKeyId - Returns the ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms.

  • KmsDataKeyReusePeriodSeconds - Returns the length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again.

The following attributes apply only to FIFO (first-in-first-out) queues:

  • FifoQueue - Returns whether the queue is FIFO. For more information, see FIFO Queue Logic in the Amazon SQS Developer Guide.

    To determine whether a queue is FIFO, you can check whether QueueName ends with the .fifo suffix.

  • ContentBasedDeduplication - Returns whether content-based deduplication is enabled for the queue. For more information, see Exactly-Once Processing in the Amazon SQS Developer Guide.

", + "GetQueueAttributesRequest$AttributeNames": "

A list of attributes for which to retrieve information.

In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully.

The following attributes are supported:

  • All - Returns all values.

  • ApproximateNumberOfMessages - Returns the approximate number of visible messages in a queue. For more information, see Resources Required to Process Messages in the Amazon Simple Queue Service Developer Guide.

  • ApproximateNumberOfMessagesDelayed - Returns the approximate number of messages that are waiting to be added to the queue.

  • ApproximateNumberOfMessagesNotVisible - Returns the approximate number of messages that have not timed-out and aren't deleted. For more information, see Resources Required to Process Messages in the Amazon Simple Queue Service Developer Guide.

  • CreatedTimestamp - Returns the time when the queue was created in seconds (epoch time).

  • DelaySeconds - Returns the default delay on the queue in seconds.

  • LastModifiedTimestamp - Returns the time when the queue was last changed in seconds (epoch time).

  • MaximumMessageSize - Returns the limit of how many bytes a message can contain before Amazon SQS rejects it.

  • MessageRetentionPeriod - Returns the length of time, in seconds, for which Amazon SQS retains a message.

  • Policy - Returns the policy of the queue.

  • QueueArn - Returns the Amazon resource name (ARN) of the queue.

  • ReceiveMessageWaitTimeSeconds - Returns the length of time, in seconds, for which the ReceiveMessage action waits for a message to arrive.

  • RedrivePolicy - Returns the string that includes the parameters for dead-letter queue functionality of the source queue. For more information about the redrive policy and dead-letter queues, see Using Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service Developer Guide.

    • deadLetterTargetArn - The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the value of maxReceiveCount is exceeded.

    • maxReceiveCount - The number of times a message is delivered to the source queue before being moved to the dead-letter queue.

  • VisibilityTimeout - Returns the visibility timeout for the queue. For more information about the visibility timeout, see Visibility Timeout in the Amazon Simple Queue Service Developer Guide.

The following attributes apply only to server-side-encryption:

  • KmsMasterKeyId - Returns the ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms.

  • KmsDataKeyReusePeriodSeconds - Returns the length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. For more information, see How Does the Data Key Reuse Period Work?.

The following attributes apply only to FIFO (first-in-first-out) queues:

  • FifoQueue - Returns whether the queue is FIFO. For more information, see FIFO Queue Logic in the Amazon Simple Queue Service Developer Guide.

    To determine whether a queue is FIFO, you can check whether QueueName ends with the .fifo suffix.

  • ContentBasedDeduplication - Returns whether content-based deduplication is enabled for the queue. For more information, see Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide.

", "ReceiveMessageRequest$AttributeNames": "

A list of attributes that need to be returned along with each message. These attributes include:

  • All - Returns all values.

  • ApproximateFirstReceiveTimestamp - Returns the time the message was first received from the queue (epoch time in milliseconds).

  • ApproximateReceiveCount - Returns the number of times a message has been received from the queue but not deleted.

  • SenderId

    • For an IAM user, returns the IAM user ID, for example ABCDEFGHI1JKLMNOPQ23R.

    • For an IAM role, returns the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.

  • SentTimestamp - Returns the time the message was sent to the queue (epoch time in milliseconds).

  • MessageDeduplicationId - Returns the value provided by the sender that calls the SendMessage action.

  • MessageGroupId - Returns the value provided by the sender that calls the SendMessage action. Messages with the same MessageGroupId are returned in sequence.

  • SequenceNumber - Returns the value provided by Amazon SQS.

Any other valid special request parameters (such as the following) are ignored:

  • ApproximateNumberOfMessages

  • ApproximateNumberOfMessagesDelayed

  • ApproximateNumberOfMessagesNotVisible

  • CreatedTimestamp

  • ContentBasedDeduplication

  • DelaySeconds

  • FifoQueue

  • LastModifiedTimestamp

  • MaximumMessageSize

  • MessageRetentionPeriod

  • Policy

  • QueueArn,

  • ReceiveMessageWaitTimeSeconds

  • RedrivePolicy

  • VisibilityTimeout

" } }, @@ -202,7 +205,7 @@ } }, "GetQueueUrlResult": { - "base": "

For more information, see Responses in the Amazon SQS Developer Guide.

", + "base": "

For more information, see Responses in the Amazon Simple Queue Service Developer Guide.

", "refs": { } }, @@ -213,7 +216,7 @@ "ChangeMessageVisibilityRequest$VisibilityTimeout": "

The new value for the message's visibility timeout (in seconds). Values values: 0 to 43200. Maximum: 12 hours.

", "ReceiveMessageRequest$MaxNumberOfMessages": "

The maximum number of messages to return. Amazon SQS never returns more messages than this value (however, fewer messages might be returned). Valid values are 1 to 10. Default is 1.

", "ReceiveMessageRequest$VisibilityTimeout": "

The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request.

", - "ReceiveMessageRequest$WaitTimeSeconds": "

The duration (in seconds) for which the call waits for a message to arrive in the queue before returning. If a message is available, the call returns sooner than WaitTimeSeconds.

", + "ReceiveMessageRequest$WaitTimeSeconds": "

The duration (in seconds) for which the call waits for a message to arrive in the queue before returning. If a message is available, the call returns sooner than WaitTimeSeconds. If no messages are available and the wait time expires, the call returns successfully with an empty list of messages.

", "SendMessageBatchRequestEntry$DelaySeconds": "

The length of time, in seconds, for which a specific message is delayed. Valid values: 0 to 900. Maximum: 15 minutes. Messages with a positive DelaySeconds value become available for processing after the delay period is finished. If you don't specify a value, the default value for the queue is applied.

When you set FifoQueue, you can't set DelaySeconds per message. You can set this parameter only on a queue level.

", "SendMessageRequest$DelaySeconds": "

The length of time, in seconds, for which to delay a specific message. Valid values: 0 to 900. Maximum: 15 minutes. Messages with a positive DelaySeconds value become available for processing after the delay period is finished. If you don't specify a value, the default value for the queue applies.

When you set FifoQueue, you can't set DelaySeconds per message. You can set this parameter only on a queue level.

" } @@ -248,6 +251,16 @@ "refs": { } }, + "ListQueueTagsRequest": { + "base": null, + "refs": { + } + }, + "ListQueueTagsResult": { + "base": null, + "refs": { + } + }, "ListQueuesRequest": { "base": "

", "refs": { @@ -285,9 +298,9 @@ "MessageBodyAttributeMap": { "base": null, "refs": { - "Message$MessageAttributes": "

Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon SQS Developer Guide.

", - "SendMessageBatchRequestEntry$MessageAttributes": "

Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon SQS Developer Guide.

", - "SendMessageRequest$MessageAttributes": "

Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon SQS Developer Guide.

" + "Message$MessageAttributes": "

Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon Simple Queue Service Developer Guide.

", + "SendMessageBatchRequestEntry$MessageAttributes": "

Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon Simple Queue Service Developer Guide.

", + "SendMessageRequest$MessageAttributes": "

Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items and Validation in the Amazon Simple Queue Service Developer Guide.

" } }, "MessageList": { @@ -331,9 +344,9 @@ "QueueAttributeMap": { "base": null, "refs": { - "CreateQueueRequest$Attributes": "

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters that the CreateQueue action uses:

  • DelaySeconds - The length of time, in seconds, for which the delivery of all messages in the queue is delayed. Valid values: An integer from 0 to 900 seconds (15 minutes). The default is 0 (zero).

  • MaximumMessageSize - The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes (1 KiB) to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB).

  • MessageRetentionPeriod - The length of time, in seconds, for which Amazon SQS retains a message. Valid values: An integer from 60 seconds (1 minute) to 1,209,600 seconds (14 days). The default is 345,600 (4 days).

  • Policy - The queue's policy. A valid AWS policy. For more information about policy structure, see Overview of AWS IAM Policies in the Amazon IAM User Guide.

  • ReceiveMessageWaitTimeSeconds - The length of time, in seconds, for which a ReceiveMessage action waits for a message to arrive. Valid values: An integer from 0 to 20 (seconds). The default is 0 (zero).

  • RedrivePolicy - The parameters for the dead letter queue functionality of the source queue. For more information about the redrive policy and dead letter queues, see Using Amazon SQS Dead Letter Queues in the Amazon SQS Developer Guide.

    The dead letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead letter queue of a standard queue must also be a standard queue.

  • VisibilityTimeout - The visibility timeout for the queue. Valid values: An integer from 0 to 43,200 (12 hours). The default is 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide.

The following attributes apply only to server-side-encryption:

  • KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms. While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, the alias of a custom CMK can, for example, be alias/aws/sqs. For more examples, see KeyId in the AWS Key Management Service API Reference.

  • KmsDataKeyReusePeriodSeconds - The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes). A shorter time period provides better security but results in more calls to KMS which incur charges after Free Tier. For more information, see How Does the Data Key Reuse Period Work?.

The following attributes apply only to FIFO (first-in-first-out) queues:

  • FifoQueue - Designates a queue as FIFO. Valid values: true, false. You can provide this attribute only during queue creation. You can't change it for an existing queue. When you set this attribute, you must also provide the MessageGroupId for your messages explicitly.

    For more information, see FIFO Queue Logic in the Amazon SQS Developer Guide.

  • ContentBasedDeduplication - Enables content-based deduplication. Valid values: true, false. For more information, see Exactly-Once Processing in the Amazon SQS Developer Guide.

    • Every message must have a unique MessageDeduplicationId,

      • You may provide a MessageDeduplicationId explicitly.

      • If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

      • If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error.

      • If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one.

    • When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered.

    • If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered.

Any other valid special request parameters (such as the following) are ignored:

  • ApproximateNumberOfMessages

  • ApproximateNumberOfMessagesDelayed

  • ApproximateNumberOfMessagesNotVisible

  • CreatedTimestamp

  • LastModifiedTimestamp

  • QueueArn

", + "CreateQueueRequest$Attributes": "

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters that the CreateQueue action uses:

  • DelaySeconds - The length of time, in seconds, for which the delivery of all messages in the queue is delayed. Valid values: An integer from 0 to 900 seconds (15 minutes). The default is 0 (zero).

  • MaximumMessageSize - The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes (1 KiB) to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB).

  • MessageRetentionPeriod - The length of time, in seconds, for which Amazon SQS retains a message. Valid values: An integer from 60 seconds (1 minute) to 1,209,600 seconds (14 days). The default is 345,600 (4 days).

  • Policy - The queue's policy. A valid AWS policy. For more information about policy structure, see Overview of AWS IAM Policies in the Amazon IAM User Guide.

  • ReceiveMessageWaitTimeSeconds - The length of time, in seconds, for which a ReceiveMessage action waits for a message to arrive. Valid values: An integer from 0 to 20 (seconds). The default is 0 (zero).

  • RedrivePolicy - The string that includes the parameters for the dead-letter queue functionality of the source queue. For more information about the redrive policy and dead-letter queues, see Using Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service Developer Guide.

    • deadLetterTargetArn - The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the value of maxReceiveCount is exceeded.

    • maxReceiveCount - The number of times a message is delivered to the source queue before being moved to the dead-letter queue.

    The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue.

  • VisibilityTimeout - The visibility timeout for the queue. Valid values: An integer from 0 to 43,200 (12 hours). The default is 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon Simple Queue Service Developer Guide.

The following attributes apply only to server-side-encryption:

  • KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms. While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, the alias of a custom CMK can, for example, be alias/MyAlias . For more examples, see KeyId in the AWS Key Management Service API Reference.

  • KmsDataKeyReusePeriodSeconds - The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes). A shorter time period provides better security but results in more calls to KMS which might incur charges after Free Tier. For more information, see How Does the Data Key Reuse Period Work?.

The following attributes apply only to FIFO (first-in-first-out) queues:

  • FifoQueue - Designates a queue as FIFO. Valid values: true, false. You can provide this attribute only during queue creation. You can't change it for an existing queue. When you set this attribute, you must also provide the MessageGroupId for your messages explicitly.

    For more information, see FIFO Queue Logic in the Amazon Simple Queue Service Developer Guide.

  • ContentBasedDeduplication - Enables content-based deduplication. Valid values: true, false. For more information, see Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide.

    • Every message must have a unique MessageDeduplicationId,

      • You may provide a MessageDeduplicationId explicitly.

      • If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

      • If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error.

      • If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one.

    • When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered.

    • If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered.

Any other valid special request parameters (such as the following) are ignored:

  • ApproximateNumberOfMessages

  • ApproximateNumberOfMessagesDelayed

  • ApproximateNumberOfMessagesNotVisible

  • CreatedTimestamp

  • LastModifiedTimestamp

  • QueueArn

", "GetQueueAttributesResult$Attributes": "

A map of attributes to their respective values.

", - "SetQueueAttributesRequest$Attributes": "

A map of attributes to set.

The following lists the names, descriptions, and values of the special request parameters that the SetQueueAttributes action uses:

  • DelaySeconds - The length of time, in seconds, for which the delivery of all messages in the queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). The default is 0 (zero).

  • MaximumMessageSize - The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB).

  • MessageRetentionPeriod - The length of time, in seconds, for which Amazon SQS retains a message. Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days). The default is 345,600 (4 days).

  • Policy - The queue's policy. A valid AWS policy. For more information about policy structure, see Overview of AWS IAM Policies in the Amazon IAM User Guide.

  • ReceiveMessageWaitTimeSeconds - The length of time, in seconds, for which a ReceiveMessage action waits for a message to arrive. Valid values: an integer from 0 to 20 (seconds). The default is 0.

  • RedrivePolicy - The parameters for the dead letter queue functionality of the source queue. For more information about the redrive policy and dead letter queues, see Using Amazon SQS Dead Letter Queues in the Amazon SQS Developer Guide.

    The dead letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead letter queue of a standard queue must also be a standard queue.

  • VisibilityTimeout - The visibility timeout for the queue. Valid values: an integer from 0 to 43,200 (12 hours). The default is 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide.

The following attributes apply only to server-side-encryption:

  • KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms. While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, the alias of a custom CMK can, for example, be alias/aws/sqs. For more examples, see KeyId in the AWS Key Management Service API Reference.

  • KmsDataKeyReusePeriodSeconds - The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes). A shorter time period provides better security but results in more calls to KMS which incur charges after Free Tier. For more information, see How Does the Data Key Reuse Period Work?.

The following attribute applies only to FIFO (first-in-first-out) queues:

  • ContentBasedDeduplication - Enables content-based deduplication. For more information, see Exactly-Once Processing in the Amazon SQS Developer Guide.

    • Every message must have a unique MessageDeduplicationId,

      • You may provide a MessageDeduplicationId explicitly.

      • If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

      • If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error.

      • If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one.

    • When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered.

    • If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered.

Any other valid special request parameters (such as the following) are ignored:

  • ApproximateNumberOfMessages

  • ApproximateNumberOfMessagesDelayed

  • ApproximateNumberOfMessagesNotVisible

  • CreatedTimestamp

  • LastModifiedTimestamp

  • QueueArn

" + "SetQueueAttributesRequest$Attributes": "

A map of attributes to set.

The following lists the names, descriptions, and values of the special request parameters that the SetQueueAttributes action uses:

  • DelaySeconds - The length of time, in seconds, for which the delivery of all messages in the queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). The default is 0 (zero).

  • MaximumMessageSize - The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB).

  • MessageRetentionPeriod - The length of time, in seconds, for which Amazon SQS retains a message. Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days). The default is 345,600 (4 days).

  • Policy - The queue's policy. A valid AWS policy. For more information about policy structure, see Overview of AWS IAM Policies in the Amazon IAM User Guide.

  • ReceiveMessageWaitTimeSeconds - The length of time, in seconds, for which a ReceiveMessage action waits for a message to arrive. Valid values: an integer from 0 to 20 (seconds). The default is 0.

  • RedrivePolicy - The string that includes the parameters for the dead-letter queue functionality of the source queue. For more information about the redrive policy and dead-letter queues, see Using Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service Developer Guide.

    • deadLetterTargetArn - The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the value of maxReceiveCount is exceeded.

    • maxReceiveCount - The number of times a message is delivered to the source queue before being moved to the dead-letter queue.

    The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue.

  • VisibilityTimeout - The visibility timeout for the queue. Valid values: an integer from 0 to 43,200 (12 hours). The default is 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon Simple Queue Service Developer Guide.

The following attributes apply only to server-side-encryption:

  • KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms. While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, the alias of a custom CMK can, for example, be alias/MyAlias . For more examples, see KeyId in the AWS Key Management Service API Reference.

  • KmsDataKeyReusePeriodSeconds - The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes). A shorter time period provides better security but results in more calls to KMS which might incur charges after Free Tier. For more information, see How Does the Data Key Reuse Period Work?.

The following attribute applies only to FIFO (first-in-first-out) queues:

  • ContentBasedDeduplication - Enables content-based deduplication. For more information, see Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide.

    • Every message must have a unique MessageDeduplicationId,

      • You may provide a MessageDeduplicationId explicitly.

      • If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

      • If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error.

      • If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one.

    • When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered.

    • If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered.

Any other valid special request parameters (such as the following) are ignored:

  • ApproximateNumberOfMessages

  • ApproximateNumberOfMessagesDelayed

  • ApproximateNumberOfMessagesNotVisible

  • CreatedTimestamp

  • LastModifiedTimestamp

  • QueueArn

" } }, "QueueAttributeName": { @@ -361,7 +374,7 @@ "QueueUrlList": { "base": null, "refs": { - "ListDeadLetterSourceQueuesResult$queueUrls": "

A list of source queue URLs that have the RedrivePolicy queue attribute configured with a dead letter queue.

", + "ListDeadLetterSourceQueuesResult$queueUrls": "

A list of source queue URLs that have the RedrivePolicy queue attribute configured with a dead-letter queue.

", "ListQueuesResult$QueueUrls": "

A list of queue URLs, up to 1,000 entries.

" } }, @@ -463,7 +476,8 @@ "GetQueueUrlRequest$QueueName": "

The name of the queue whose URL must be fetched. Maximum 80 characters. Valid values: alphanumeric characters, hyphens (-), and underscores (_).

Queue names are case-sensitive.

", "GetQueueUrlRequest$QueueOwnerAWSAccountId": "

The AWS account ID of the account that created the queue.

", "GetQueueUrlResult$QueueUrl": "

The URL of the queue.

", - "ListDeadLetterSourceQueuesRequest$QueueUrl": "

The URL of a dead letter queue.

Queue URLs are case-sensitive.

", + "ListDeadLetterSourceQueuesRequest$QueueUrl": "

The URL of a dead-letter queue.

Queue URLs are case-sensitive.

", + "ListQueueTagsRequest$QueueUrl": "

The URL of the queue.

", "ListQueuesRequest$QueueNamePrefix": "

A string to use for filtering the list results. Only those queues whose name begins with the specified string are returned.

Queue names are case-sensitive.

", "Message$MessageId": "

A unique identifier for the message. A MessageIdis considered unique across all AWS accounts for an extended period of time.

", "Message$ReceiptHandle": "

An identifier associated with the act of receiving the message. A new receipt handle is returned every time you receive a message. When deleting a message, you provide the last received receipt handle to delete the message.

", @@ -471,7 +485,7 @@ "Message$Body": "

The message's contents (not URL-encoded).

", "Message$MD5OfMessageAttributes": "

An MD5 digest of the non-URL-encoded message attribute string. You can use this attribute to verify that Amazon SQS received the message correctly. Amazon SQS URL-decodes the message before creating the MD5 digest. For information about MD5, see RFC1321.

", "MessageAttributeValue$StringValue": "

Strings are Unicode with UTF-8 binary encoding. For a list of code values, see ASCII Printable Characters.

", - "MessageAttributeValue$DataType": "

Amazon SQS supports the following logical data types: String, Number, and Binary. For the Number data type, you must use StringValue.

You can also append custom labels. For more information, see Message Attribute Data Types and Validation in the Amazon SQS Developer Guide.

", + "MessageAttributeValue$DataType": "

Amazon SQS supports the following logical data types: String, Number, and Binary. For the Number data type, you must use StringValue.

You can also append custom labels. For more information, see Message Attribute Data Types and Validation in the Amazon Simple Queue Service Developer Guide.

", "MessageBodyAttributeMap$key": null, "MessageSystemAttributeMap$value": null, "PurgeQueueRequest$QueueUrl": "

The URL of the queue from which the PurgeQueue action deletes messages.

Queue URLs are case-sensitive.

", @@ -484,7 +498,7 @@ "SendMessageBatchRequest$QueueUrl": "

The URL of the Amazon SQS queue to which batched messages are sent.

Queue URLs are case-sensitive.

", "SendMessageBatchRequestEntry$Id": "

An identifier for a message in this batch used to communicate the result.

The Ids of a batch request need to be unique within a request

", "SendMessageBatchRequestEntry$MessageBody": "

The body of the message.

", - "SendMessageBatchRequestEntry$MessageDeduplicationId": "

This parameter applies only to FIFO (first-in-first-out) queues.

The token used for deduplication of messages within a 5-minute minimum deduplication interval. If a message with a particular MessageDeduplicationId is sent successfully, subsequent messages with the same MessageDeduplicationId are accepted successfully but aren't delivered. For more information, see Exactly-Once Processing in the Amazon SQS Developer Guide.

  • Every message must have a unique MessageDeduplicationId,

    • You may provide a MessageDeduplicationId explicitly.

    • If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

    • If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error.

    • If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one.

  • When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered.

  • If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered.

The MessageDeduplicationId is available to the recipient of the message (this can be useful for troubleshooting delivery issues).

If a message is sent successfully but the acknowledgement is lost and the message is resent with the same MessageDeduplicationId after the deduplication interval, Amazon SQS can't detect duplicate messages.

The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~).

For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId Property in the Amazon Simple Queue Service Developer Guide.

", + "SendMessageBatchRequestEntry$MessageDeduplicationId": "

This parameter applies only to FIFO (first-in-first-out) queues.

The token used for deduplication of messages within a 5-minute minimum deduplication interval. If a message with a particular MessageDeduplicationId is sent successfully, subsequent messages with the same MessageDeduplicationId are accepted successfully but aren't delivered. For more information, see Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide.

  • Every message must have a unique MessageDeduplicationId,

    • You may provide a MessageDeduplicationId explicitly.

    • If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

    • If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error.

    • If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one.

  • When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered.

  • If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered.

The MessageDeduplicationId is available to the recipient of the message (this can be useful for troubleshooting delivery issues).

If a message is sent successfully but the acknowledgement is lost and the message is resent with the same MessageDeduplicationId after the deduplication interval, Amazon SQS can't detect duplicate messages.

The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~).

For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId Property in the Amazon Simple Queue Service Developer Guide.

", "SendMessageBatchRequestEntry$MessageGroupId": "

This parameter applies only to FIFO (first-in-first-out) queues.

The tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are processed in a FIFO manner (however, messages in different message groups might be processed out of order). To interleave multiple ordered streams within a single queue, use MessageGroupId values (for example, session data for multiple users). In this scenario, multiple readers can process the queue, but the session data of each user is processed in a FIFO fashion.

  • You must associate a non-empty MessageGroupId with a message. If you don't provide a MessageGroupId, the action fails.

  • ReceiveMessage might return messages with multiple MessageGroupId values. For each MessageGroupId, the messages are sorted by time sent. The caller can't specify a MessageGroupId.

The length of MessageGroupId is 128 characters. Valid values are alphanumeric characters and punctuation (!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~).

For best practices of using MessageGroupId, see Using the MessageGroupId Property in the Amazon Simple Queue Service Developer Guide.

MessageGroupId is required for FIFO queues. You can't use it for Standard queues.

", "SendMessageBatchResultEntry$Id": "

An identifier for the message in this batch.

", "SendMessageBatchResultEntry$MessageId": "

An identifier for the message.

", @@ -493,14 +507,16 @@ "SendMessageBatchResultEntry$SequenceNumber": "

This parameter applies only to FIFO (first-in-first-out) queues.

The large, non-consecutive number that Amazon SQS assigns to each message.

The length of SequenceNumber is 128 bits. As SequenceNumber continues to increase for a particular MessageGroupId.

", "SendMessageRequest$QueueUrl": "

The URL of the Amazon SQS queue to which a message is sent.

Queue URLs are case-sensitive.

", "SendMessageRequest$MessageBody": "

The message to send. The maximum string size is 256 KB.

A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed:

#x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF

Any characters not included in this list will be rejected. For more information, see the W3C specification for characters.

", - "SendMessageRequest$MessageDeduplicationId": "

This parameter applies only to FIFO (first-in-first-out) queues.

The token used for deduplication of sent messages. If a message with a particular MessageDeduplicationId is sent successfully, any messages sent with the same MessageDeduplicationId are accepted successfully but aren't delivered during the 5-minute deduplication interval. For more information, see Exactly-Once Processing in the Amazon SQS Developer Guide.

  • Every message must have a unique MessageDeduplicationId,

    • You may provide a MessageDeduplicationId explicitly.

    • If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

    • If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error.

    • If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one.

  • When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered.

  • If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered.

The MessageDeduplicationId is available to the recipient of the message (this can be useful for troubleshooting delivery issues).

If a message is sent successfully but the acknowledgement is lost and the message is resent with the same MessageDeduplicationId after the deduplication interval, Amazon SQS can't detect duplicate messages.

The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~).

For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId Property in the Amazon Simple Queue Service Developer Guide.

", + "SendMessageRequest$MessageDeduplicationId": "

This parameter applies only to FIFO (first-in-first-out) queues.

The token used for deduplication of sent messages. If a message with a particular MessageDeduplicationId is sent successfully, any messages sent with the same MessageDeduplicationId are accepted successfully but aren't delivered during the 5-minute deduplication interval. For more information, see Exactly-Once Processing in the Amazon Simple Queue Service Developer Guide.

  • Every message must have a unique MessageDeduplicationId,

    • You may provide a MessageDeduplicationId explicitly.

    • If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

    • If you don't provide a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication set, the action fails with an error.

    • If the queue has ContentBasedDeduplication set, your MessageDeduplicationId overrides the generated one.

  • When ContentBasedDeduplication is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered.

  • If you send one message with ContentBasedDeduplication enabled and then another message with a MessageDeduplicationId that is the same as the one generated for the first MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered.

The MessageDeduplicationId is available to the recipient of the message (this can be useful for troubleshooting delivery issues).

If a message is sent successfully but the acknowledgement is lost and the message is resent with the same MessageDeduplicationId after the deduplication interval, Amazon SQS can't detect duplicate messages.

The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~).

For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId Property in the Amazon Simple Queue Service Developer Guide.

", "SendMessageRequest$MessageGroupId": "

This parameter applies only to FIFO (first-in-first-out) queues.

The tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are processed in a FIFO manner (however, messages in different message groups might be processed out of order). To interleave multiple ordered streams within a single queue, use MessageGroupId values (for example, session data for multiple users). In this scenario, multiple readers can process the queue, but the session data of each user is processed in a FIFO fashion.

  • You must associate a non-empty MessageGroupId with a message. If you don't provide a MessageGroupId, the action fails.

  • ReceiveMessage might return messages with multiple MessageGroupId values. For each MessageGroupId, the messages are sorted by time sent. The caller can't specify a MessageGroupId.

The length of MessageGroupId is 128 characters. Valid values are alphanumeric characters and punctuation (!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~).

For best practices of using MessageGroupId, see Using the MessageGroupId Property in the Amazon Simple Queue Service Developer Guide.

MessageGroupId is required for FIFO queues. You can't use it for Standard queues.

", "SendMessageResult$MD5OfMessageBody": "

An MD5 digest of the non-URL-encoded message attribute string. You can use this attribute to verify that Amazon SQS received the message correctly. Amazon SQS URL-decodes the message before creating the MD5 digest. For information about MD5, see RFC1321.

", "SendMessageResult$MD5OfMessageAttributes": "

An MD5 digest of the non-URL-encoded message attribute string. You can use this attribute to verify that Amazon SQS received the message correctly. Amazon SQS URL-decodes the message before creating the MD5 digest. For information about MD5, see RFC1321.

", - "SendMessageResult$MessageId": "

An attribute containing the MessageId of the message sent to the queue. For more information, see Queue and Message Identifiers in the Amazon SQS Developer Guide.

", + "SendMessageResult$MessageId": "

An attribute containing the MessageId of the message sent to the queue. For more information, see Queue and Message Identifiers in the Amazon Simple Queue Service Developer Guide.

", "SendMessageResult$SequenceNumber": "

This parameter applies only to FIFO (first-in-first-out) queues.

The large, non-consecutive number that Amazon SQS assigns to each message.

The length of SequenceNumber is 128 bits. SequenceNumber continues to increase for a particular MessageGroupId.

", "SetQueueAttributesRequest$QueueUrl": "

The URL of the Amazon SQS queue whose attributes are set.

Queue URLs are case-sensitive.

", - "StringList$member": null + "StringList$member": null, + "TagQueueRequest$QueueUrl": "

The URL of the queue.

", + "UntagQueueRequest$QueueUrl": "

The URL of the queue.

" } }, "StringList": { @@ -509,6 +525,37 @@ "MessageAttributeValue$StringListValues": "

Not implemented. Reserved for future use.

" } }, + "TagKey": { + "base": null, + "refs": { + "TagKeyList$member": null, + "TagMap$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagQueueRequest$TagKeys": "

The list of tags to be removed from the specified queue.

" + } + }, + "TagMap": { + "base": null, + "refs": { + "ListQueueTagsResult$Tags": "

The list of all tags added to the specified queue.

", + "TagQueueRequest$Tags": "

The list of tags to be added to the specified queue.

" + } + }, + "TagQueueRequest": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "TagMap$value": null + } + }, "TooManyEntriesInBatchRequest": { "base": "

The batch request contains more entries than permissible.

", "refs": { @@ -518,6 +565,11 @@ "base": "

Error code 400. Unsupported operation.

", "refs": { } + }, + "UntagQueueRequest": { + "base": null, + "refs": { + } } } } diff --git a/models/apis/ssm/2014-11-06/api-2.json b/models/apis/ssm/2014-11-06/api-2.json index 6348a099b9c..582fe6eaaff 100644 --- a/models/apis/ssm/2014-11-06/api-2.json +++ b/models/apis/ssm/2014-11-06/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"Amazon SSM", "serviceFullName":"Amazon Simple Systems Manager (SSM)", + "serviceId":"SSM", "signatureVersion":"v4", "targetPrefix":"AmazonSSM", "uid":"ssm-2014-11-06" @@ -169,7 +170,8 @@ "errors":[ {"shape":"InvalidActivationId"}, {"shape":"InvalidActivation"}, - {"shape":"InternalServerError"} + {"shape":"InternalServerError"}, + {"shape":"TooManyUpdates"} ] }, "DeleteAssociation":{ @@ -302,7 +304,8 @@ "output":{"shape":"DeregisterTargetFromMaintenanceWindowResult"}, "errors":[ {"shape":"DoesNotExistException"}, - {"shape":"InternalServerError"} + {"shape":"InternalServerError"}, + {"shape":"TargetInUseException"} ] }, "DeregisterTaskFromMaintenanceWindow":{ @@ -342,6 +345,7 @@ "output":{"shape":"DescribeAssociationResult"}, "errors":[ {"shape":"AssociationDoesNotExist"}, + {"shape":"InvalidAssociationVersion"}, {"shape":"InternalServerError"}, {"shape":"InvalidDocument"}, {"shape":"InvalidInstanceId"} @@ -356,7 +360,25 @@ "input":{"shape":"DescribeAutomationExecutionsRequest"}, "output":{"shape":"DescribeAutomationExecutionsResult"}, "errors":[ + {"shape":"InvalidFilterKey"}, + {"shape":"InvalidFilterValue"}, + {"shape":"InvalidNextToken"}, + {"shape":"InternalServerError"} + ] + }, + "DescribeAutomationStepExecutions":{ + "name":"DescribeAutomationStepExecutions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAutomationStepExecutionsRequest"}, + "output":{"shape":"DescribeAutomationStepExecutionsResult"}, + "errors":[ + {"shape":"AutomationExecutionNotFoundException"}, {"shape":"InvalidNextToken"}, + {"shape":"InvalidFilterKey"}, + {"shape":"InvalidFilterValue"}, {"shape":"InternalServerError"} ] }, @@ -425,6 +447,7 @@ "errors":[ {"shape":"InvalidResourceId"}, {"shape":"DoesNotExistException"}, + {"shape":"UnsupportedOperatingSystem"}, {"shape":"InternalServerError"} ] }, @@ -679,7 +702,8 @@ "input":{"shape":"GetDeployablePatchSnapshotForInstanceRequest"}, "output":{"shape":"GetDeployablePatchSnapshotForInstanceResult"}, "errors":[ - {"shape":"InternalServerError"} + {"shape":"InternalServerError"}, + {"shape":"UnsupportedOperatingSystem"} ] }, "GetDocument":{ @@ -765,6 +789,32 @@ {"shape":"InternalServerError"} ] }, + "GetMaintenanceWindowExecutionTaskInvocation":{ + "name":"GetMaintenanceWindowExecutionTaskInvocation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetMaintenanceWindowExecutionTaskInvocationRequest"}, + "output":{"shape":"GetMaintenanceWindowExecutionTaskInvocationResult"}, + "errors":[ + {"shape":"DoesNotExistException"}, + {"shape":"InternalServerError"} + ] + }, + "GetMaintenanceWindowTask":{ + "name":"GetMaintenanceWindowTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetMaintenanceWindowTaskRequest"}, + "output":{"shape":"GetMaintenanceWindowTaskResult"}, + "errors":[ + {"shape":"DoesNotExistException"}, + {"shape":"InternalServerError"} + ] + }, "GetParameter":{ "name":"GetParameter", "http":{ @@ -776,7 +826,8 @@ "errors":[ {"shape":"InternalServerError"}, {"shape":"InvalidKeyId"}, - {"shape":"ParameterNotFound"} + {"shape":"ParameterNotFound"}, + {"shape":"ParameterVersionNotFound"} ] }, "GetParameterHistory":{ @@ -850,6 +901,20 @@ {"shape":"InternalServerError"} ] }, + "ListAssociationVersions":{ + "name":"ListAssociationVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAssociationVersionsRequest"}, + "output":{"shape":"ListAssociationVersionsResult"}, + "errors":[ + {"shape":"InternalServerError"}, + {"shape":"InvalidNextToken"}, + {"shape":"AssociationDoesNotExist"} + ] + }, "ListAssociations":{ "name":"ListAssociations", "http":{ @@ -895,6 +960,36 @@ {"shape":"InvalidNextToken"} ] }, + "ListComplianceItems":{ + "name":"ListComplianceItems", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListComplianceItemsRequest"}, + "output":{"shape":"ListComplianceItemsResult"}, + "errors":[ + {"shape":"InvalidResourceType"}, + {"shape":"InvalidResourceId"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidFilter"}, + {"shape":"InvalidNextToken"} + ] + }, + "ListComplianceSummaries":{ + "name":"ListComplianceSummaries", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListComplianceSummariesRequest"}, + "output":{"shape":"ListComplianceSummariesResult"}, + "errors":[ + {"shape":"InvalidFilter"}, + {"shape":"InvalidNextToken"}, + {"shape":"InternalServerError"} + ] + }, "ListDocumentVersions":{ "name":"ListDocumentVersions", "http":{ @@ -939,6 +1034,20 @@ {"shape":"InvalidNextToken"} ] }, + "ListResourceComplianceSummaries":{ + "name":"ListResourceComplianceSummaries", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourceComplianceSummariesRequest"}, + "output":{"shape":"ListResourceComplianceSummariesResult"}, + "errors":[ + {"shape":"InvalidFilter"}, + {"shape":"InvalidNextToken"}, + {"shape":"InternalServerError"} + ] + }, "ListResourceDataSync":{ "name":"ListResourceDataSync", "http":{ @@ -982,6 +1091,24 @@ {"shape":"DocumentLimitExceeded"} ] }, + "PutComplianceItems":{ + "name":"PutComplianceItems", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutComplianceItemsRequest"}, + "output":{"shape":"PutComplianceItemsResult"}, + "errors":[ + {"shape":"InternalServerError"}, + {"shape":"InvalidItemContentException"}, + {"shape":"TotalSizeLimitExceededException"}, + {"shape":"ItemSizeLimitExceededException"}, + {"shape":"ComplianceTypeCountLimitExceededException"}, + {"shape":"InvalidResourceType"}, + {"shape":"InvalidResourceId"} + ] + }, "PutInventory":{ "name":"PutInventory", "http":{ @@ -999,7 +1126,10 @@ {"shape":"ItemSizeLimitExceededException"}, {"shape":"ItemContentMismatchException"}, {"shape":"CustomSchemaCountLimitExceededException"}, - {"shape":"UnsupportedInventorySchemaVersionException"} + {"shape":"UnsupportedInventorySchemaVersionException"}, + {"shape":"UnsupportedInventoryItemContextException"}, + {"shape":"InvalidInventoryItemContextException"}, + {"shape":"SubTypeCountLimitExceededException"} ] }, "PutParameter":{ @@ -1019,6 +1149,7 @@ {"shape":"HierarchyLevelLimitExceededException"}, {"shape":"HierarchyTypeMismatchException"}, {"shape":"InvalidAllowedPatternException"}, + {"shape":"ParameterMaxVersionLimitExceeded"}, {"shape":"ParameterPatternMismatchException"}, {"shape":"UnsupportedParameterType"} ] @@ -1080,6 +1211,7 @@ {"shape":"IdempotentParameterMismatch"}, {"shape":"DoesNotExistException"}, {"shape":"ResourceLimitExceededException"}, + {"shape":"FeatureNotAvailableException"}, {"shape":"InternalServerError"} ] }, @@ -1097,6 +1229,21 @@ {"shape":"InternalServerError"} ] }, + "SendAutomationSignal":{ + "name":"SendAutomationSignal", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendAutomationSignalRequest"}, + "output":{"shape":"SendAutomationSignalResult"}, + "errors":[ + {"shape":"AutomationExecutionNotFoundException"}, + {"shape":"AutomationStepNotFoundException"}, + {"shape":"InvalidAutomationSignalException"}, + {"shape":"InternalServerError"} + ] + }, "SendCommand":{ "name":"SendCommand", "http":{ @@ -1131,6 +1278,8 @@ {"shape":"InvalidAutomationExecutionParametersException"}, {"shape":"AutomationExecutionLimitExceededException"}, {"shape":"AutomationDefinitionVersionNotFoundException"}, + {"shape":"IdempotentParameterMismatch"}, + {"shape":"InvalidTarget"}, {"shape":"InternalServerError"} ] }, @@ -1144,6 +1293,7 @@ "output":{"shape":"StopAutomationExecutionResult"}, "errors":[ {"shape":"AutomationExecutionNotFoundException"}, + {"shape":"InvalidAutomationStatusUpdateException"}, {"shape":"InternalServerError"} ] }, @@ -1165,7 +1315,9 @@ {"shape":"InvalidUpdate"}, {"shape":"TooManyUpdates"}, {"shape":"InvalidDocument"}, - {"shape":"InvalidTarget"} + {"shape":"InvalidTarget"}, + {"shape":"InvalidAssociationVersion"}, + {"shape":"AssociationVersionLimitExceeded"} ] }, "UpdateAssociationStatus":{ @@ -1232,6 +1384,32 @@ {"shape":"InternalServerError"} ] }, + "UpdateMaintenanceWindowTarget":{ + "name":"UpdateMaintenanceWindowTarget", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateMaintenanceWindowTargetRequest"}, + "output":{"shape":"UpdateMaintenanceWindowTargetResult"}, + "errors":[ + {"shape":"DoesNotExistException"}, + {"shape":"InternalServerError"} + ] + }, + "UpdateMaintenanceWindowTask":{ + "name":"UpdateMaintenanceWindowTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateMaintenanceWindowTaskRequest"}, + "output":{"shape":"UpdateMaintenanceWindowTaskResult"}, + "errors":[ + {"shape":"DoesNotExistException"}, + {"shape":"InternalServerError"} + ] + }, "UpdateManagedInstanceRole":{ "name":"UpdateManagedInstanceRole", "http":{ @@ -1266,10 +1444,7 @@ }, "AccountIdList":{ "type":"list", - "member":{ - "shape":"AccountId", - "locationName":"AccountId" - }, + "member":{"shape":"AccountId"}, "max":20 }, "Activation":{ @@ -1326,6 +1501,7 @@ "type":"string", "max":10 }, + "AggregatorSchemaOnly":{"type":"boolean"}, "AllowedPattern":{ "type":"string", "max":1024, @@ -1355,11 +1531,13 @@ "Name":{"shape":"DocumentName"}, "InstanceId":{"shape":"InstanceId"}, "AssociationId":{"shape":"AssociationId"}, + "AssociationVersion":{"shape":"AssociationVersion"}, "DocumentVersion":{"shape":"DocumentVersion"}, "Targets":{"shape":"Targets"}, "LastExecutionDate":{"shape":"DateTime"}, "Overview":{"shape":"AssociationOverview"}, - "ScheduleExpression":{"shape":"ScheduleExpression"} + "ScheduleExpression":{"shape":"ScheduleExpression"}, + "AssociationName":{"shape":"AssociationName"} } }, "AssociationAlreadyExists":{ @@ -1373,6 +1551,7 @@ "members":{ "Name":{"shape":"DocumentName"}, "InstanceId":{"shape":"InstanceId"}, + "AssociationVersion":{"shape":"AssociationVersion"}, "Date":{"shape":"DateTime"}, "LastUpdateAssociationDate":{"shape":"DateTime"}, "Status":{"shape":"AssociationStatus"}, @@ -1384,15 +1563,13 @@ "ScheduleExpression":{"shape":"ScheduleExpression"}, "OutputLocation":{"shape":"InstanceAssociationOutputLocation"}, "LastExecutionDate":{"shape":"DateTime"}, - "LastSuccessfulExecutionDate":{"shape":"DateTime"} + "LastSuccessfulExecutionDate":{"shape":"DateTime"}, + "AssociationName":{"shape":"AssociationName"} } }, "AssociationDescriptionList":{ "type":"list", - "member":{ - "shape":"AssociationDescription", - "locationName":"AssociationDescription" - } + "member":{"shape":"AssociationDescription"} }, "AssociationDoesNotExist":{ "type":"structure", @@ -1420,15 +1597,13 @@ "AssociationId", "AssociationStatusName", "LastExecutedBefore", - "LastExecutedAfter" + "LastExecutedAfter", + "AssociationName" ] }, "AssociationFilterList":{ "type":"list", - "member":{ - "shape":"AssociationFilter", - "locationName":"AssociationFilter" - }, + "member":{"shape":"AssociationFilter"}, "min":1 }, "AssociationFilterValue":{ @@ -1447,10 +1622,11 @@ }, "AssociationList":{ "type":"list", - "member":{ - "shape":"Association", - "locationName":"Association" - } + "member":{"shape":"Association"} + }, + "AssociationName":{ + "type":"string", + "pattern":"^[a-zA-Z0-9_\\-.]{3,128}$" }, "AssociationOverview":{ "type":"structure", @@ -1487,6 +1663,37 @@ "Failed" ] }, + "AssociationVersion":{ + "type":"string", + "pattern":"([$]LATEST)|([1-9][0-9]*)" + }, + "AssociationVersionInfo":{ + "type":"structure", + "members":{ + "AssociationId":{"shape":"AssociationId"}, + "AssociationVersion":{"shape":"AssociationVersion"}, + "CreatedDate":{"shape":"DateTime"}, + "Name":{"shape":"DocumentName"}, + "DocumentVersion":{"shape":"DocumentVersion"}, + "Parameters":{"shape":"Parameters"}, + "Targets":{"shape":"Targets"}, + "ScheduleExpression":{"shape":"ScheduleExpression"}, + "OutputLocation":{"shape":"InstanceAssociationOutputLocation"}, + "AssociationName":{"shape":"AssociationName"} + } + }, + "AssociationVersionLimitExceeded":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "AssociationVersionList":{ + "type":"list", + "member":{"shape":"AssociationVersionInfo"}, + "min":1 + }, "AttributeName":{ "type":"string", "max":64, @@ -1494,7 +1701,7 @@ }, "AttributeValue":{ "type":"string", - "max":1024, + "max":4096, "min":0 }, "AutomationActionName":{ @@ -1525,9 +1732,21 @@ "ExecutionEndTime":{"shape":"DateTime"}, "AutomationExecutionStatus":{"shape":"AutomationExecutionStatus"}, "StepExecutions":{"shape":"StepExecutionList"}, + "StepExecutionsTruncated":{"shape":"Boolean"}, "Parameters":{"shape":"AutomationParameterMap"}, "Outputs":{"shape":"AutomationParameterMap"}, - "FailureMessage":{"shape":"String"} + "FailureMessage":{"shape":"String"}, + "Mode":{"shape":"ExecutionMode"}, + "ParentAutomationExecutionId":{"shape":"AutomationExecutionId"}, + "ExecutedBy":{"shape":"String"}, + "CurrentStepName":{"shape":"String"}, + "CurrentAction":{"shape":"String"}, + "TargetParameterName":{"shape":"AutomationParameterKey"}, + "Targets":{"shape":"Targets"}, + "ResolvedTargets":{"shape":"ResolvedTargets"}, + "MaxConcurrency":{"shape":"MaxConcurrency"}, + "MaxErrors":{"shape":"MaxErrors"}, + "Target":{"shape":"String"} } }, "AutomationExecutionFilter":{ @@ -1545,7 +1764,12 @@ "type":"string", "enum":[ "DocumentNamePrefix", - "ExecutionStatus" + "ExecutionStatus", + "ExecutionId", + "ParentExecutionId", + "CurrentAction", + "StartTimeBefore", + "StartTimeAfter" ] }, "AutomationExecutionFilterList":{ @@ -1588,14 +1812,23 @@ "ExecutionEndTime":{"shape":"DateTime"}, "ExecutedBy":{"shape":"String"}, "LogFile":{"shape":"String"}, - "Outputs":{"shape":"AutomationParameterMap"} + "Outputs":{"shape":"AutomationParameterMap"}, + "Mode":{"shape":"ExecutionMode"}, + "ParentAutomationExecutionId":{"shape":"AutomationExecutionId"}, + "CurrentStepName":{"shape":"String"}, + "CurrentAction":{"shape":"String"}, + "FailureMessage":{"shape":"String"}, + "TargetParameterName":{"shape":"AutomationParameterKey"}, + "Targets":{"shape":"Targets"}, + "ResolvedTargets":{"shape":"ResolvedTargets"}, + "MaxConcurrency":{"shape":"MaxConcurrency"}, + "MaxErrors":{"shape":"MaxErrors"}, + "Target":{"shape":"String"} } }, "AutomationExecutionMetadataList":{ "type":"list", - "member":{"shape":"AutomationExecutionMetadata"}, - "max":50, - "min":0 + "member":{"shape":"AutomationExecutionMetadata"} }, "AutomationExecutionNotFoundException":{ "type":"structure", @@ -1609,8 +1842,10 @@ "enum":[ "Pending", "InProgress", + "Waiting", "Success", "TimedOut", + "Cancelling", "Cancelled", "Failed" ] @@ -1638,6 +1873,13 @@ "max":10, "min":0 }, + "AutomationStepNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "BaselineDescription":{ "type":"string", "max":1024, @@ -1836,85 +2078,262 @@ "max":100 }, "CompletedCount":{"type":"integer"}, - "ComputerName":{ + "ComplianceExecutionId":{ "type":"string", - "max":255, - "min":1 + "max":100 }, - "CreateActivationRequest":{ + "ComplianceExecutionSummary":{ "type":"structure", - "required":["IamRole"], + "required":["ExecutionTime"], "members":{ - "Description":{"shape":"ActivationDescription"}, - "DefaultInstanceName":{"shape":"DefaultInstanceName"}, - "IamRole":{"shape":"IamRole"}, - "RegistrationLimit":{ - "shape":"RegistrationLimit", - "box":true - }, - "ExpirationDate":{"shape":"ExpirationDate"} + "ExecutionTime":{"shape":"DateTime"}, + "ExecutionId":{"shape":"ComplianceExecutionId"}, + "ExecutionType":{"shape":"ComplianceExecutionType"} } }, - "CreateActivationResult":{ + "ComplianceExecutionType":{ + "type":"string", + "max":50 + }, + "ComplianceFilterValue":{"type":"string"}, + "ComplianceItem":{ "type":"structure", "members":{ - "ActivationId":{"shape":"ActivationId"}, - "ActivationCode":{"shape":"ActivationCode"} + "ComplianceType":{"shape":"ComplianceTypeName"}, + "ResourceType":{"shape":"ComplianceResourceType"}, + "ResourceId":{"shape":"ComplianceResourceId"}, + "Id":{"shape":"ComplianceItemId"}, + "Title":{"shape":"ComplianceItemTitle"}, + "Status":{"shape":"ComplianceStatus"}, + "Severity":{"shape":"ComplianceSeverity"}, + "ExecutionSummary":{"shape":"ComplianceExecutionSummary"}, + "Details":{"shape":"ComplianceItemDetails"} } }, - "CreateAssociationBatchRequest":{ + "ComplianceItemContentHash":{ + "type":"string", + "max":256 + }, + "ComplianceItemDetails":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"AttributeValue"} + }, + "ComplianceItemEntry":{ "type":"structure", - "required":["Entries"], + "required":[ + "Severity", + "Status" + ], "members":{ - "Entries":{"shape":"CreateAssociationBatchRequestEntries"} + "Id":{"shape":"ComplianceItemId"}, + "Title":{"shape":"ComplianceItemTitle"}, + "Severity":{"shape":"ComplianceSeverity"}, + "Status":{"shape":"ComplianceStatus"}, + "Details":{"shape":"ComplianceItemDetails"} } }, - "CreateAssociationBatchRequestEntries":{ + "ComplianceItemEntryList":{ "type":"list", - "member":{ - "shape":"CreateAssociationBatchRequestEntry", - "locationName":"entries" - }, + "member":{"shape":"ComplianceItemEntry"}, + "max":10000, + "min":0 + }, + "ComplianceItemId":{ + "type":"string", + "max":100, "min":1 }, - "CreateAssociationBatchRequestEntry":{ - "type":"structure", - "required":["Name"], - "members":{ - "Name":{"shape":"DocumentName"}, - "InstanceId":{"shape":"InstanceId"}, - "Parameters":{"shape":"Parameters"}, - "DocumentVersion":{"shape":"DocumentVersion"}, - "Targets":{"shape":"Targets"}, - "ScheduleExpression":{"shape":"ScheduleExpression"}, - "OutputLocation":{"shape":"InstanceAssociationOutputLocation"} - } + "ComplianceItemList":{ + "type":"list", + "member":{"shape":"ComplianceItem"} }, - "CreateAssociationBatchResult":{ - "type":"structure", - "members":{ - "Successful":{"shape":"AssociationDescriptionList"}, - "Failed":{"shape":"FailedCreateAssociationList"} - } + "ComplianceItemTitle":{ + "type":"string", + "max":500 }, - "CreateAssociationRequest":{ - "type":"structure", - "required":["Name"], - "members":{ - "Name":{"shape":"DocumentName"}, - "DocumentVersion":{"shape":"DocumentVersion"}, - "InstanceId":{"shape":"InstanceId"}, - "Parameters":{"shape":"Parameters"}, - "Targets":{"shape":"Targets"}, - "ScheduleExpression":{"shape":"ScheduleExpression"}, - "OutputLocation":{"shape":"InstanceAssociationOutputLocation"} - } + "ComplianceQueryOperatorType":{ + "type":"string", + "enum":[ + "EQUAL", + "NOT_EQUAL", + "BEGIN_WITH", + "LESS_THAN", + "GREATER_THAN" + ] }, - "CreateAssociationResult":{ - "type":"structure", - "members":{ - "AssociationDescription":{"shape":"AssociationDescription"} - } + "ComplianceResourceId":{ + "type":"string", + "max":100, + "min":1 + }, + "ComplianceResourceIdList":{ + "type":"list", + "member":{"shape":"ComplianceResourceId"}, + "min":1 + }, + "ComplianceResourceType":{ + "type":"string", + "max":50, + "min":1 + }, + "ComplianceResourceTypeList":{ + "type":"list", + "member":{"shape":"ComplianceResourceType"}, + "min":1 + }, + "ComplianceSeverity":{ + "type":"string", + "enum":[ + "CRITICAL", + "HIGH", + "MEDIUM", + "LOW", + "INFORMATIONAL", + "UNSPECIFIED" + ] + }, + "ComplianceStatus":{ + "type":"string", + "enum":[ + "COMPLIANT", + "NON_COMPLIANT" + ] + }, + "ComplianceStringFilter":{ + "type":"structure", + "members":{ + "Key":{"shape":"ComplianceStringFilterKey"}, + "Values":{"shape":"ComplianceStringFilterValueList"}, + "Type":{"shape":"ComplianceQueryOperatorType"} + } + }, + "ComplianceStringFilterKey":{ + "type":"string", + "max":200, + "min":1 + }, + "ComplianceStringFilterList":{ + "type":"list", + "member":{"shape":"ComplianceStringFilter"} + }, + "ComplianceStringFilterValueList":{ + "type":"list", + "member":{"shape":"ComplianceFilterValue"}, + "max":20, + "min":1 + }, + "ComplianceSummaryCount":{"type":"integer"}, + "ComplianceSummaryItem":{ + "type":"structure", + "members":{ + "ComplianceType":{"shape":"ComplianceTypeName"}, + "CompliantSummary":{"shape":"CompliantSummary"}, + "NonCompliantSummary":{"shape":"NonCompliantSummary"} + } + }, + "ComplianceSummaryItemList":{ + "type":"list", + "member":{"shape":"ComplianceSummaryItem"} + }, + "ComplianceTypeCountLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "ComplianceTypeName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[A-Za-z0-9_\\-]\\w+|Custom:[a-zA-Z0-9_\\-]\\w+" + }, + "CompliantSummary":{ + "type":"structure", + "members":{ + "CompliantCount":{"shape":"ComplianceSummaryCount"}, + "SeveritySummary":{"shape":"SeveritySummary"} + } + }, + "ComputerName":{ + "type":"string", + "max":255, + "min":1 + }, + "CreateActivationRequest":{ + "type":"structure", + "required":["IamRole"], + "members":{ + "Description":{"shape":"ActivationDescription"}, + "DefaultInstanceName":{"shape":"DefaultInstanceName"}, + "IamRole":{"shape":"IamRole"}, + "RegistrationLimit":{ + "shape":"RegistrationLimit", + "box":true + }, + "ExpirationDate":{"shape":"ExpirationDate"} + } + }, + "CreateActivationResult":{ + "type":"structure", + "members":{ + "ActivationId":{"shape":"ActivationId"}, + "ActivationCode":{"shape":"ActivationCode"} + } + }, + "CreateAssociationBatchRequest":{ + "type":"structure", + "required":["Entries"], + "members":{ + "Entries":{"shape":"CreateAssociationBatchRequestEntries"} + } + }, + "CreateAssociationBatchRequestEntries":{ + "type":"list", + "member":{"shape":"CreateAssociationBatchRequestEntry"}, + "min":1 + }, + "CreateAssociationBatchRequestEntry":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"DocumentName"}, + "InstanceId":{"shape":"InstanceId"}, + "Parameters":{"shape":"Parameters"}, + "DocumentVersion":{"shape":"DocumentVersion"}, + "Targets":{"shape":"Targets"}, + "ScheduleExpression":{"shape":"ScheduleExpression"}, + "OutputLocation":{"shape":"InstanceAssociationOutputLocation"}, + "AssociationName":{"shape":"AssociationName"} + } + }, + "CreateAssociationBatchResult":{ + "type":"structure", + "members":{ + "Successful":{"shape":"AssociationDescriptionList"}, + "Failed":{"shape":"FailedCreateAssociationList"} + } + }, + "CreateAssociationRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"DocumentName"}, + "DocumentVersion":{"shape":"DocumentVersion"}, + "InstanceId":{"shape":"InstanceId"}, + "Parameters":{"shape":"Parameters"}, + "Targets":{"shape":"Targets"}, + "ScheduleExpression":{"shape":"ScheduleExpression"}, + "OutputLocation":{"shape":"InstanceAssociationOutputLocation"}, + "AssociationName":{"shape":"AssociationName"} + } + }, + "CreateAssociationResult":{ + "type":"structure", + "members":{ + "AssociationDescription":{"shape":"AssociationDescription"} + } }, "CreateDocumentRequest":{ "type":"structure", @@ -1925,7 +2344,9 @@ "members":{ "Content":{"shape":"DocumentContent"}, "Name":{"shape":"DocumentName"}, - "DocumentType":{"shape":"DocumentType"} + "DocumentType":{"shape":"DocumentType"}, + "DocumentFormat":{"shape":"DocumentFormat"}, + "TargetType":{"shape":"TargetType"} } }, "CreateDocumentResult":{ @@ -1945,6 +2366,7 @@ ], "members":{ "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"}, "Schedule":{"shape":"MaintenanceWindowSchedule"}, "Duration":{"shape":"MaintenanceWindowDurationHours"}, "Cutoff":{"shape":"MaintenanceWindowCutoff"}, @@ -1965,10 +2387,12 @@ "type":"structure", "required":["Name"], "members":{ + "OperatingSystem":{"shape":"OperatingSystem"}, "Name":{"shape":"BaselineName"}, "GlobalFilters":{"shape":"PatchFilterGroup"}, "ApprovalRules":{"shape":"PatchRuleGroup"}, "ApprovedPatches":{"shape":"PatchIdList"}, + "ApprovedPatchesComplianceLevel":{"shape":"PatchComplianceLevel"}, "RejectedPatches":{"shape":"PatchIdList"}, "Description":{"shape":"BaselineDescription"}, "ClientToken":{ @@ -2154,7 +2578,11 @@ ], "members":{ "WindowId":{"shape":"MaintenanceWindowId"}, - "WindowTargetId":{"shape":"MaintenanceWindowTargetId"} + "WindowTargetId":{"shape":"MaintenanceWindowTargetId"}, + "Safe":{ + "shape":"Boolean", + "box":true + } } }, "DeregisterTargetFromMaintenanceWindowResult":{ @@ -2224,7 +2652,8 @@ "members":{ "Name":{"shape":"DocumentName"}, "InstanceId":{"shape":"InstanceId"}, - "AssociationId":{"shape":"AssociationId"} + "AssociationId":{"shape":"AssociationId"}, + "AssociationVersion":{"shape":"AssociationVersion"} } }, "DescribeAssociationResult":{ @@ -2251,6 +2680,30 @@ "NextToken":{"shape":"NextToken"} } }, + "DescribeAutomationStepExecutionsRequest":{ + "type":"structure", + "required":["AutomationExecutionId"], + "members":{ + "AutomationExecutionId":{"shape":"AutomationExecutionId"}, + "Filters":{"shape":"StepExecutionFilterList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{ + "shape":"MaxResults", + "box":true + }, + "ReverseOrder":{ + "shape":"Boolean", + "box":true + } + } + }, + "DescribeAutomationStepExecutionsResult":{ + "type":"structure", + "members":{ + "StepExecutions":{"shape":"StepExecutionList"}, + "NextToken":{"shape":"NextToken"} + } + }, "DescribeAvailablePatchesRequest":{ "type":"structure", "members":{ @@ -2619,6 +3072,7 @@ "shape":"PatchBaselineMaxResults", "box":true }, + "Filters":{"shape":"PatchOrchestratorFilterList"}, "NextToken":{"shape":"NextToken"} } }, @@ -2669,7 +3123,10 @@ "DocumentType":{"shape":"DocumentType"}, "SchemaVersion":{"shape":"DocumentSchemaVersion"}, "LatestVersion":{"shape":"DocumentVersion"}, - "DefaultVersion":{"shape":"DocumentVersion"} + "DefaultVersion":{"shape":"DocumentVersion"}, + "DocumentFormat":{"shape":"DocumentFormat"}, + "TargetType":{"shape":"TargetType"}, + "Tags":{"shape":"TagList"} } }, "DocumentFilter":{ @@ -2694,16 +3151,20 @@ }, "DocumentFilterList":{ "type":"list", - "member":{ - "shape":"DocumentFilter", - "locationName":"DocumentFilter" - }, + "member":{"shape":"DocumentFilter"}, "min":1 }, "DocumentFilterValue":{ "type":"string", "min":1 }, + "DocumentFormat":{ + "type":"string", + "enum":[ + "YAML", + "JSON" + ] + }, "DocumentHash":{ "type":"string", "max":256 @@ -2723,16 +3184,43 @@ "PlatformTypes":{"shape":"PlatformTypeList"}, "DocumentVersion":{"shape":"DocumentVersion"}, "DocumentType":{"shape":"DocumentType"}, - "SchemaVersion":{"shape":"DocumentSchemaVersion"} + "SchemaVersion":{"shape":"DocumentSchemaVersion"}, + "DocumentFormat":{"shape":"DocumentFormat"}, + "TargetType":{"shape":"TargetType"}, + "Tags":{"shape":"TagList"} } }, "DocumentIdentifierList":{ "type":"list", - "member":{ - "shape":"DocumentIdentifier", - "locationName":"DocumentIdentifier" + "member":{"shape":"DocumentIdentifier"} + }, + "DocumentKeyValuesFilter":{ + "type":"structure", + "members":{ + "Key":{"shape":"DocumentKeyValuesFilterKey"}, + "Values":{"shape":"DocumentKeyValuesFilterValues"} } }, + "DocumentKeyValuesFilterKey":{ + "type":"string", + "max":128, + "min":1 + }, + "DocumentKeyValuesFilterList":{ + "type":"list", + "member":{"shape":"DocumentKeyValuesFilter"}, + "max":6, + "min":0 + }, + "DocumentKeyValuesFilterValue":{ + "type":"string", + "max":256, + "min":1 + }, + "DocumentKeyValuesFilterValues":{ + "type":"list", + "member":{"shape":"DocumentKeyValuesFilterValue"} + }, "DocumentLimitExceeded":{ "type":"structure", "members":{ @@ -2758,10 +3246,7 @@ "DocumentParameterDescrption":{"type":"string"}, "DocumentParameterList":{ "type":"list", - "member":{ - "shape":"DocumentParameter", - "locationName":"DocumentParameter" - } + "member":{"shape":"DocumentParameter"} }, "DocumentParameterName":{"type":"string"}, "DocumentParameterType":{ @@ -2814,7 +3299,8 @@ "Name":{"shape":"DocumentName"}, "DocumentVersion":{"shape":"DocumentVersion"}, "CreatedDate":{"shape":"DateTime"}, - "IsDefaultVersion":{"shape":"Boolean"} + "IsDefaultVersion":{"shape":"Boolean"}, + "DocumentFormat":{"shape":"DocumentFormat"} } }, "DocumentVersionLimitExceeded":{ @@ -2870,6 +3356,13 @@ "member":{"shape":"EffectivePatch"} }, "ErrorCount":{"type":"integer"}, + "ExecutionMode":{ + "type":"string", + "enum":[ + "Auto", + "Interactive" + ] + }, "ExpirationDate":{"type":"timestamp"}, "FailedCreateAssociation":{ "type":"structure", @@ -2881,10 +3374,7 @@ }, "FailedCreateAssociationList":{ "type":"list", - "member":{ - "shape":"FailedCreateAssociation", - "locationName":"FailedCreateAssociationEntry" - } + "member":{"shape":"FailedCreateAssociation"} }, "FailureDetails":{ "type":"structure", @@ -2902,6 +3392,13 @@ "Unknown" ] }, + "FeatureNotAvailableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "GetAutomationExecutionRequest":{ "type":"structure", "required":["AutomationExecutionId"], @@ -2950,12 +3447,14 @@ "GetDefaultPatchBaselineRequest":{ "type":"structure", "members":{ + "OperatingSystem":{"shape":"OperatingSystem"} } }, "GetDefaultPatchBaselineResult":{ "type":"structure", "members":{ - "BaselineId":{"shape":"BaselineId"} + "BaselineId":{"shape":"BaselineId"}, + "OperatingSystem":{"shape":"OperatingSystem"} } }, "GetDeployablePatchSnapshotForInstanceRequest":{ @@ -2974,7 +3473,8 @@ "members":{ "InstanceId":{"shape":"InstanceId"}, "SnapshotId":{"shape":"SnapshotId"}, - "SnapshotDownloadUrl":{"shape":"SnapshotDownloadUrl"} + "SnapshotDownloadUrl":{"shape":"SnapshotDownloadUrl"}, + "Product":{"shape":"Product"} } }, "GetDocumentRequest":{ @@ -2982,7 +3482,8 @@ "required":["Name"], "members":{ "Name":{"shape":"DocumentARN"}, - "DocumentVersion":{"shape":"DocumentVersion"} + "DocumentVersion":{"shape":"DocumentVersion"}, + "DocumentFormat":{"shape":"DocumentFormat"} } }, "GetDocumentResult":{ @@ -2991,13 +3492,15 @@ "Name":{"shape":"DocumentARN"}, "DocumentVersion":{"shape":"DocumentVersion"}, "Content":{"shape":"DocumentContent"}, - "DocumentType":{"shape":"DocumentType"} + "DocumentType":{"shape":"DocumentType"}, + "DocumentFormat":{"shape":"DocumentFormat"} } }, "GetInventoryRequest":{ "type":"structure", "members":{ "Filters":{"shape":"InventoryFilterList"}, + "Aggregators":{"shape":"InventoryAggregatorList"}, "ResultAttributes":{"shape":"ResultAttributeList"}, "NextToken":{"shape":"NextToken"}, "MaxResults":{ @@ -3026,6 +3529,11 @@ "MaxResults":{ "shape":"GetInventorySchemaMaxResults", "box":true + }, + "Aggregator":{"shape":"AggregatorSchemaOnly"}, + "SubType":{ + "shape":"IsSubTypeSchema", + "box":true } } }, @@ -3054,6 +3562,36 @@ "EndTime":{"shape":"DateTime"} } }, + "GetMaintenanceWindowExecutionTaskInvocationRequest":{ + "type":"structure", + "required":[ + "WindowExecutionId", + "TaskId", + "InvocationId" + ], + "members":{ + "WindowExecutionId":{"shape":"MaintenanceWindowExecutionId"}, + "TaskId":{"shape":"MaintenanceWindowExecutionTaskId"}, + "InvocationId":{"shape":"MaintenanceWindowExecutionTaskInvocationId"} + } + }, + "GetMaintenanceWindowExecutionTaskInvocationResult":{ + "type":"structure", + "members":{ + "WindowExecutionId":{"shape":"MaintenanceWindowExecutionId"}, + "TaskExecutionId":{"shape":"MaintenanceWindowExecutionTaskId"}, + "InvocationId":{"shape":"MaintenanceWindowExecutionTaskInvocationId"}, + "ExecutionId":{"shape":"MaintenanceWindowExecutionTaskExecutionId"}, + "TaskType":{"shape":"MaintenanceWindowTaskType"}, + "Parameters":{"shape":"MaintenanceWindowExecutionTaskInvocationParameters"}, + "Status":{"shape":"MaintenanceWindowExecutionStatus"}, + "StatusDetails":{"shape":"MaintenanceWindowExecutionStatusDetails"}, + "StartTime":{"shape":"DateTime"}, + "EndTime":{"shape":"DateTime"}, + "OwnerInformation":{"shape":"OwnerInformation"}, + "WindowTargetId":{"shape":"MaintenanceWindowTaskTargetId"} + } + }, "GetMaintenanceWindowExecutionTaskRequest":{ "type":"structure", "required":[ @@ -3095,6 +3633,7 @@ "members":{ "WindowId":{"shape":"MaintenanceWindowId"}, "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"}, "Schedule":{"shape":"MaintenanceWindowSchedule"}, "Duration":{"shape":"MaintenanceWindowDurationHours"}, "Cutoff":{"shape":"MaintenanceWindowCutoff"}, @@ -3104,6 +3643,36 @@ "ModifiedDate":{"shape":"DateTime"} } }, + "GetMaintenanceWindowTaskRequest":{ + "type":"structure", + "required":[ + "WindowId", + "WindowTaskId" + ], + "members":{ + "WindowId":{"shape":"MaintenanceWindowId"}, + "WindowTaskId":{"shape":"MaintenanceWindowTaskId"} + } + }, + "GetMaintenanceWindowTaskResult":{ + "type":"structure", + "members":{ + "WindowId":{"shape":"MaintenanceWindowId"}, + "WindowTaskId":{"shape":"MaintenanceWindowTaskId"}, + "Targets":{"shape":"Targets"}, + "TaskArn":{"shape":"MaintenanceWindowTaskArn"}, + "ServiceRoleArn":{"shape":"ServiceRole"}, + "TaskType":{"shape":"MaintenanceWindowTaskType"}, + "TaskParameters":{"shape":"MaintenanceWindowTaskParameters"}, + "TaskInvocationParameters":{"shape":"MaintenanceWindowTaskInvocationParameters"}, + "Priority":{"shape":"MaintenanceWindowTaskPriority"}, + "MaxConcurrency":{"shape":"MaxConcurrency"}, + "MaxErrors":{"shape":"MaxErrors"}, + "LoggingInfo":{"shape":"LoggingInfo"}, + "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"} + } + }, "GetParameterHistoryRequest":{ "type":"structure", "required":["Name"], @@ -3199,14 +3768,16 @@ "type":"structure", "required":["PatchGroup"], "members":{ - "PatchGroup":{"shape":"PatchGroup"} + "PatchGroup":{"shape":"PatchGroup"}, + "OperatingSystem":{"shape":"OperatingSystem"} } }, "GetPatchBaselineForPatchGroupResult":{ "type":"structure", "members":{ "BaselineId":{"shape":"BaselineId"}, - "PatchGroup":{"shape":"PatchGroup"} + "PatchGroup":{"shape":"PatchGroup"}, + "OperatingSystem":{"shape":"OperatingSystem"} } }, "GetPatchBaselineRequest":{ @@ -3221,9 +3792,11 @@ "members":{ "BaselineId":{"shape":"BaselineId"}, "Name":{"shape":"BaselineName"}, + "OperatingSystem":{"shape":"OperatingSystem"}, "GlobalFilters":{"shape":"PatchFilterGroup"}, "ApprovalRules":{"shape":"PatchRuleGroup"}, "ApprovedPatches":{"shape":"PatchIdList"}, + "ApprovedPatchesComplianceLevel":{"shape":"PatchComplianceLevel"}, "RejectedPatches":{"shape":"PatchIdList"}, "PatchGroups":{"shape":"PatchGroupList"}, "CreatedDate":{"shape":"DateTime"}, @@ -3254,6 +3827,12 @@ "type":"string", "max":64 }, + "IdempotencyToken":{ + "type":"string", + "max":36, + "min":36, + "pattern":"[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}" + }, "IdempotentParameterMismatch":{ "type":"structure", "members":{ @@ -3273,7 +3852,8 @@ "members":{ "AssociationId":{"shape":"AssociationId"}, "InstanceId":{"shape":"InstanceId"}, - "Content":{"shape":"DocumentContent"} + "Content":{"shape":"DocumentContent"}, + "AssociationVersion":{"shape":"AssociationVersion"} } }, "InstanceAssociationExecutionSummary":{ @@ -3308,13 +3888,15 @@ "AssociationId":{"shape":"AssociationId"}, "Name":{"shape":"DocumentName"}, "DocumentVersion":{"shape":"DocumentVersion"}, + "AssociationVersion":{"shape":"AssociationVersion"}, "InstanceId":{"shape":"InstanceId"}, "ExecutionDate":{"shape":"DateTime"}, "Status":{"shape":"StatusName"}, "DetailedStatus":{"shape":"StatusName"}, "ExecutionSummary":{"shape":"InstanceAssociationExecutionSummary"}, "ErrorCode":{"shape":"AgentErrorCode"}, - "OutputUrl":{"shape":"InstanceAssociationOutputUrl"} + "OutputUrl":{"shape":"InstanceAssociationOutputUrl"}, + "AssociationName":{"shape":"AssociationName"} } }, "InstanceAssociationStatusInfos":{ @@ -3391,10 +3973,7 @@ }, "InstanceInformationFilterList":{ "type":"list", - "member":{ - "shape":"InstanceInformationFilter", - "locationName":"InstanceInformationFilter" - }, + "member":{"shape":"InstanceInformationFilter"}, "min":0 }, "InstanceInformationFilterValue":{ @@ -3403,19 +3982,13 @@ }, "InstanceInformationFilterValueSet":{ "type":"list", - "member":{ - "shape":"InstanceInformationFilterValue", - "locationName":"InstanceInformationFilterValue" - }, + "member":{"shape":"InstanceInformationFilterValue"}, "max":100, "min":1 }, "InstanceInformationList":{ "type":"list", - "member":{ - "shape":"InstanceInformation", - "locationName":"InstanceInformation" - } + "member":{"shape":"InstanceInformation"} }, "InstanceInformationStringFilter":{ "type":"structure", @@ -3434,10 +4007,7 @@ }, "InstanceInformationStringFilterList":{ "type":"list", - "member":{ - "shape":"InstanceInformationStringFilter", - "locationName":"InstanceInformationStringFilter" - }, + "member":{"shape":"InstanceInformationStringFilter"}, "min":0 }, "InstancePatchState":{ @@ -3461,8 +4031,8 @@ "MissingCount":{"shape":"PatchMissingCount"}, "FailedCount":{"shape":"PatchFailedCount"}, "NotApplicableCount":{"shape":"PatchNotApplicableCount"}, - "OperationStartTime":{"shape":"PatchOperationStartTime"}, - "OperationEndTime":{"shape":"PatchOperationEndTime"}, + "OperationStartTime":{"shape":"DateTime"}, + "OperationEndTime":{"shape":"DateTime"}, "Operation":{"shape":"PatchOperationType"} } }, @@ -3549,6 +4119,13 @@ }, "exception":true }, + "InvalidAssociationVersion":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "InvalidAutomationExecutionParametersException":{ "type":"structure", "members":{ @@ -3556,6 +4133,20 @@ }, "exception":true }, + "InvalidAutomationSignalException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "InvalidAutomationStatusUpdateException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "InvalidCommandId":{ "type":"structure", "members":{ @@ -3638,6 +4229,13 @@ }, "exception":true }, + "InvalidInventoryItemContextException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "InvalidItemContentException":{ "type":"structure", "members":{ @@ -3753,6 +4351,24 @@ }, "exception":true }, + "InventoryAggregator":{ + "type":"structure", + "members":{ + "Expression":{"shape":"InventoryAggregatorExpression"}, + "Aggregators":{"shape":"InventoryAggregatorList"} + } + }, + "InventoryAggregatorExpression":{ + "type":"string", + "max":1000, + "min":1 + }, + "InventoryAggregatorList":{ + "type":"list", + "member":{"shape":"InventoryAggregator"}, + "max":10, + "min":1 + }, "InventoryAttributeDataType":{ "type":"string", "enum":[ @@ -3779,20 +4395,14 @@ }, "InventoryFilterList":{ "type":"list", - "member":{ - "shape":"InventoryFilter", - "locationName":"InventoryFilter" - }, + "member":{"shape":"InventoryFilter"}, "max":5, "min":1 }, "InventoryFilterValue":{"type":"string"}, "InventoryFilterValueList":{ "type":"list", - "member":{ - "shape":"InventoryFilterValue", - "locationName":"FilterValue" - }, + "member":{"shape":"InventoryFilterValue"}, "max":20, "min":1 }, @@ -3808,7 +4418,8 @@ "SchemaVersion":{"shape":"InventoryItemSchemaVersion"}, "CaptureTime":{"shape":"InventoryItemCaptureTime"}, "ContentHash":{"shape":"InventoryItemContentHash"}, - "Content":{"shape":"InventoryItemEntryList"} + "Content":{"shape":"InventoryItemEntryList"}, + "Context":{"shape":"InventoryItemContentContext"} } }, "InventoryItemAttribute":{ @@ -3824,10 +4435,7 @@ }, "InventoryItemAttributeList":{ "type":"list", - "member":{ - "shape":"InventoryItemAttribute", - "locationName":"Attribute" - }, + "member":{"shape":"InventoryItemAttribute"}, "max":50, "min":1 }, @@ -3836,6 +4444,13 @@ "type":"string", "pattern":"^(20)[0-9][0-9]-(0[1-9]|1[012])-([12][0-9]|3[01]|0[1-9])(T)(2[0-3]|[0-1][0-9])(:[0-5][0-9])(:[0-5][0-9])(Z)$" }, + "InventoryItemContentContext":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"AttributeValue"}, + "max":50, + "min":0 + }, "InventoryItemContentHash":{ "type":"string", "max":256 @@ -3855,10 +4470,7 @@ }, "InventoryItemList":{ "type":"list", - "member":{ - "shape":"InventoryItem", - "locationName":"Item" - }, + "member":{"shape":"InventoryItem"}, "max":30, "min":1 }, @@ -3871,7 +4483,8 @@ "members":{ "TypeName":{"shape":"InventoryItemTypeName"}, "Version":{"shape":"InventoryItemSchemaVersion"}, - "Attributes":{"shape":"InventoryItemAttributeList"} + "Attributes":{"shape":"InventoryItemAttributeList"}, + "DisplayName":{"shape":"InventoryTypeDisplayName"} } }, "InventoryItemSchemaResultList":{ @@ -3913,10 +4526,7 @@ "InventoryResultEntityId":{"type":"string"}, "InventoryResultEntityList":{ "type":"list", - "member":{ - "shape":"InventoryResultEntity", - "locationName":"Entity" - } + "member":{"shape":"InventoryResultEntity"} }, "InventoryResultItem":{ "type":"structure", @@ -3939,6 +4549,7 @@ "key":{"shape":"InventoryResultItemKey"}, "value":{"shape":"InventoryResultItem"} }, + "InventoryTypeDisplayName":{"type":"string"}, "InvocationDoesNotExist":{ "type":"structure", "members":{ @@ -3949,6 +4560,7 @@ "type":"string", "max":2500 }, + "IsSubTypeSchema":{"type":"boolean"}, "ItemContentMismatchException":{ "type":"structure", "members":{ @@ -3979,6 +4591,25 @@ }, "LastResourceDataSyncTime":{"type":"timestamp"}, "LastSuccessfulResourceDataSyncTime":{"type":"timestamp"}, + "ListAssociationVersionsRequest":{ + "type":"structure", + "required":["AssociationId"], + "members":{ + "AssociationId":{"shape":"AssociationId"}, + "MaxResults":{ + "shape":"MaxResults", + "box":true + }, + "NextToken":{"shape":"NextToken"} + } + }, + "ListAssociationVersionsResult":{ + "type":"structure", + "members":{ + "AssociationVersions":{"shape":"AssociationVersionList"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListAssociationsRequest":{ "type":"structure", "members":{ @@ -4038,6 +4669,44 @@ "NextToken":{"shape":"NextToken"} } }, + "ListComplianceItemsRequest":{ + "type":"structure", + "members":{ + "Filters":{"shape":"ComplianceStringFilterList"}, + "ResourceIds":{"shape":"ComplianceResourceIdList"}, + "ResourceTypes":{"shape":"ComplianceResourceTypeList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{ + "shape":"MaxResults", + "box":true + } + } + }, + "ListComplianceItemsResult":{ + "type":"structure", + "members":{ + "ComplianceItems":{"shape":"ComplianceItemList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListComplianceSummariesRequest":{ + "type":"structure", + "members":{ + "Filters":{"shape":"ComplianceStringFilterList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{ + "shape":"MaxResults", + "box":true + } + } + }, + "ListComplianceSummariesResult":{ + "type":"structure", + "members":{ + "ComplianceSummaryItems":{"shape":"ComplianceSummaryItemList"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListDocumentVersionsRequest":{ "type":"structure", "required":["Name"], @@ -4061,6 +4730,7 @@ "type":"structure", "members":{ "DocumentFilterList":{"shape":"DocumentFilterList"}, + "Filters":{"shape":"DocumentKeyValuesFilterList"}, "MaxResults":{ "shape":"MaxResults", "box":true @@ -4103,6 +4773,24 @@ "NextToken":{"shape":"NextToken"} } }, + "ListResourceComplianceSummariesRequest":{ + "type":"structure", + "members":{ + "Filters":{"shape":"ComplianceStringFilterList"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{ + "shape":"MaxResults", + "box":true + } + } + }, + "ListResourceComplianceSummariesResult":{ + "type":"structure", + "members":{ + "ResourceComplianceSummaryItems":{"shape":"ResourceComplianceSummaryItemList"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListResourceDataSyncRequest":{ "type":"structure", "members":{ @@ -4149,12 +4837,26 @@ "S3Region":{"shape":"S3Region"} } }, + "Long":{"type":"long"}, "MaintenanceWindowAllowUnassociatedTargets":{"type":"boolean"}, + "MaintenanceWindowAutomationParameters":{ + "type":"structure", + "members":{ + "DocumentVersion":{"shape":"DocumentVersion"}, + "Parameters":{"shape":"AutomationParameterMap"} + } + }, "MaintenanceWindowCutoff":{ "type":"integer", "max":23, "min":0 }, + "MaintenanceWindowDescription":{ + "type":"string", + "max":128, + "min":1, + "sensitive":true + }, "MaintenanceWindowDurationHours":{ "type":"integer", "max":24, @@ -4241,6 +4943,7 @@ "TaskExecutionId":{"shape":"MaintenanceWindowExecutionTaskId"}, "InvocationId":{"shape":"MaintenanceWindowExecutionTaskInvocationId"}, "ExecutionId":{"shape":"MaintenanceWindowExecutionTaskExecutionId"}, + "TaskType":{"shape":"MaintenanceWindowTaskType"}, "Parameters":{"shape":"MaintenanceWindowExecutionTaskInvocationParameters"}, "Status":{"shape":"MaintenanceWindowExecutionStatus"}, "StatusDetails":{"shape":"MaintenanceWindowExecutionStatusDetails"}, @@ -4296,6 +4999,7 @@ "members":{ "WindowId":{"shape":"MaintenanceWindowId"}, "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"}, "Enabled":{"shape":"MaintenanceWindowEnabled"}, "Duration":{"shape":"MaintenanceWindowDurationHours"}, "Cutoff":{"shape":"MaintenanceWindowCutoff"} @@ -4305,6 +5009,29 @@ "type":"list", "member":{"shape":"MaintenanceWindowIdentity"} }, + "MaintenanceWindowLambdaClientContext":{ + "type":"string", + "max":8000, + "min":1 + }, + "MaintenanceWindowLambdaParameters":{ + "type":"structure", + "members":{ + "ClientContext":{"shape":"MaintenanceWindowLambdaClientContext"}, + "Qualifier":{"shape":"MaintenanceWindowLambdaQualifier"}, + "Payload":{"shape":"MaintenanceWindowLambdaPayload"} + } + }, + "MaintenanceWindowLambdaPayload":{ + "type":"blob", + "max":4096, + "sensitive":true + }, + "MaintenanceWindowLambdaQualifier":{ + "type":"string", + "max":128, + "min":1 + }, "MaintenanceWindowMaxResults":{ "type":"integer", "max":100, @@ -4320,11 +5047,45 @@ "type":"string", "enum":["INSTANCE"] }, + "MaintenanceWindowRunCommandParameters":{ + "type":"structure", + "members":{ + "Comment":{"shape":"Comment"}, + "DocumentHash":{"shape":"DocumentHash"}, + "DocumentHashType":{"shape":"DocumentHashType"}, + "NotificationConfig":{"shape":"NotificationConfig"}, + "OutputS3BucketName":{"shape":"S3BucketName"}, + "OutputS3KeyPrefix":{"shape":"S3KeyPrefix"}, + "Parameters":{"shape":"Parameters"}, + "ServiceRoleArn":{"shape":"ServiceRole"}, + "TimeoutSeconds":{ + "shape":"TimeoutSeconds", + "box":true + } + } + }, "MaintenanceWindowSchedule":{ "type":"string", "max":256, "min":1 }, + "MaintenanceWindowStepFunctionsInput":{ + "type":"string", + "max":4096, + "sensitive":true + }, + "MaintenanceWindowStepFunctionsName":{ + "type":"string", + "max":80, + "min":1 + }, + "MaintenanceWindowStepFunctionsParameters":{ + "type":"structure", + "members":{ + "Input":{"shape":"MaintenanceWindowStepFunctionsInput"}, + "Name":{"shape":"MaintenanceWindowStepFunctionsName"} + } + }, "MaintenanceWindowTarget":{ "type":"structure", "members":{ @@ -4332,7 +5093,9 @@ "WindowTargetId":{"shape":"MaintenanceWindowTargetId"}, "ResourceType":{"shape":"MaintenanceWindowResourceType"}, "Targets":{"shape":"Targets"}, - "OwnerInformation":{"shape":"OwnerInformation"} + "OwnerInformation":{"shape":"OwnerInformation"}, + "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"} } }, "MaintenanceWindowTargetId":{ @@ -4358,7 +5121,9 @@ "LoggingInfo":{"shape":"LoggingInfo"}, "ServiceRoleArn":{"shape":"ServiceRole"}, "MaxConcurrency":{"shape":"MaxConcurrency"}, - "MaxErrors":{"shape":"MaxErrors"} + "MaxErrors":{"shape":"MaxErrors"}, + "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"} } }, "MaintenanceWindowTaskArn":{ @@ -4372,6 +5137,15 @@ "min":36, "pattern":"^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}$" }, + "MaintenanceWindowTaskInvocationParameters":{ + "type":"structure", + "members":{ + "RunCommand":{"shape":"MaintenanceWindowRunCommandParameters"}, + "Automation":{"shape":"MaintenanceWindowAutomationParameters"}, + "StepFunctions":{"shape":"MaintenanceWindowStepFunctionsParameters"}, + "Lambda":{"shape":"MaintenanceWindowLambdaParameters"} + } + }, "MaintenanceWindowTaskList":{ "type":"list", "member":{"shape":"MaintenanceWindowTask"} @@ -4420,7 +5194,12 @@ }, "MaintenanceWindowTaskType":{ "type":"string", - "enum":["RUN_COMMAND"] + "enum":[ + "RUN_COMMAND", + "AUTOMATION", + "STEP_FUNCTIONS", + "LAMBDA" + ] }, "ManagedInstanceId":{ "type":"string", @@ -4474,6 +5253,13 @@ } }, "NextToken":{"type":"string"}, + "NonCompliantSummary":{ + "type":"structure", + "members":{ + "NonCompliantCount":{"shape":"ComplianceSummaryCount"}, + "SeveritySummary":{"shape":"SeveritySummary"} + } + }, "NormalStringMap":{ "type":"map", "key":{"shape":"String"}, @@ -4510,6 +5296,15 @@ "Invocation" ] }, + "OperatingSystem":{ + "type":"string", + "enum":[ + "WINDOWS", + "AMAZON_LINUX", + "UBUNTU", + "REDHAT_ENTERPRISE_LINUX" + ] + }, "OwnerInformation":{ "type":"string", "max":128, @@ -4518,7 +5313,7 @@ }, "PSParameterName":{ "type":"string", - "max":1024, + "max":2048, "min":1 }, "PSParameterValue":{ @@ -4526,12 +5321,14 @@ "max":4096, "min":1 }, + "PSParameterVersion":{"type":"long"}, "Parameter":{ "type":"structure", "members":{ "Name":{"shape":"PSParameterName"}, "Type":{"shape":"ParameterType"}, - "Value":{"shape":"PSParameterValue"} + "Value":{"shape":"PSParameterValue"}, + "Version":{"shape":"PSParameterVersion"} } }, "ParameterAlreadyExists":{ @@ -4544,7 +5341,7 @@ "ParameterDescription":{ "type":"string", "max":1024, - "min":1 + "min":0 }, "ParameterHistory":{ "type":"structure", @@ -4556,7 +5353,8 @@ "LastModifiedUser":{"shape":"String"}, "Description":{"shape":"ParameterDescription"}, "Value":{"shape":"PSParameterValue"}, - "AllowedPattern":{"shape":"AllowedPattern"} + "AllowedPattern":{"shape":"AllowedPattern"}, + "Version":{"shape":"PSParameterVersion"} } }, "ParameterHistoryList":{ @@ -4580,6 +5378,13 @@ "type":"list", "member":{"shape":"Parameter"} }, + "ParameterMaxVersionLimitExceeded":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, "ParameterMetadata":{ "type":"structure", "members":{ @@ -4589,7 +5394,8 @@ "LastModifiedDate":{"shape":"DateTime"}, "LastModifiedUser":{"shape":"String"}, "Description":{"shape":"ParameterDescription"}, - "AllowedPattern":{"shape":"AllowedPattern"} + "AllowedPattern":{"shape":"AllowedPattern"}, + "Version":{"shape":"PSParameterVersion"} } }, "ParameterMetadataList":{ @@ -4665,6 +5471,13 @@ "type":"list", "member":{"shape":"ParameterValue"} }, + "ParameterVersionNotFound":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, "Parameters":{ "type":"map", "key":{"shape":"ParameterName"}, @@ -4727,6 +5540,7 @@ "members":{ "BaselineId":{"shape":"BaselineId"}, "BaselineName":{"shape":"BaselineName"}, + "OperatingSystem":{"shape":"OperatingSystem"}, "BaselineDescription":{"shape":"BaselineDescription"}, "DefaultBaseline":{"shape":"DefaultBaseline"} } @@ -4757,7 +5571,7 @@ "Classification":{"shape":"PatchClassification"}, "Severity":{"shape":"PatchSeverity"}, "State":{"shape":"PatchComplianceDataState"}, - "InstalledTime":{"shape":"PatchInstalledTime"} + "InstalledTime":{"shape":"DateTime"} } }, "PatchComplianceDataList":{ @@ -4774,6 +5588,17 @@ "FAILED" ] }, + "PatchComplianceLevel":{ + "type":"string", + "enum":[ + "CRITICAL", + "HIGH", + "MEDIUM", + "LOW", + "INFORMATIONAL", + "UNSPECIFIED" + ] + }, "PatchComplianceMaxResults":{ "type":"integer", "max":100, @@ -4815,7 +5640,10 @@ "PRODUCT", "CLASSIFICATION", "MSRC_SEVERITY", - "PATCH_ID" + "PATCH_ID", + "SECTION", + "PRIORITY", + "SEVERITY" ] }, "PatchFilterList":{ @@ -4858,7 +5686,8 @@ }, "PatchId":{ "type":"string", - "pattern":"(^KB[0-9]{1,7}$)|(^MS[0-9]{2}\\-[0-9]{3}$)" + "max":100, + "min":1 }, "PatchIdList":{ "type":"list", @@ -4868,7 +5697,6 @@ }, "PatchInstalledCount":{"type":"integer"}, "PatchInstalledOtherCount":{"type":"integer"}, - "PatchInstalledTime":{"type":"timestamp"}, "PatchKbNumber":{"type":"string"}, "PatchLanguage":{"type":"string"}, "PatchList":{ @@ -4879,8 +5707,6 @@ "PatchMsrcNumber":{"type":"string"}, "PatchMsrcSeverity":{"type":"string"}, "PatchNotApplicableCount":{"type":"integer"}, - "PatchOperationEndTime":{"type":"timestamp"}, - "PatchOperationStartTime":{"type":"timestamp"}, "PatchOperationType":{ "type":"string", "enum":[ @@ -4925,6 +5751,7 @@ ], "members":{ "PatchFilterGroup":{"shape":"PatchFilterGroup"}, + "ComplianceLevel":{"shape":"PatchComplianceLevel"}, "ApproveAfterDays":{ "shape":"ApproveAfterDays", "box":true @@ -4949,6 +5776,7 @@ "type":"structure", "members":{ "DeploymentStatus":{"shape":"PatchDeploymentStatus"}, + "ComplianceLevel":{"shape":"PatchComplianceLevel"}, "ApprovalDate":{"shape":"DateTime"} } }, @@ -4971,9 +5799,30 @@ }, "PlatformTypeList":{ "type":"list", - "member":{ - "shape":"PlatformType", - "locationName":"PlatformType" + "member":{"shape":"PlatformType"} + }, + "Product":{"type":"string"}, + "PutComplianceItemsRequest":{ + "type":"structure", + "required":[ + "ResourceId", + "ResourceType", + "ComplianceType", + "ExecutionSummary", + "Items" + ], + "members":{ + "ResourceId":{"shape":"ComplianceResourceId"}, + "ResourceType":{"shape":"ComplianceResourceType"}, + "ComplianceType":{"shape":"ComplianceTypeName"}, + "ExecutionSummary":{"shape":"ComplianceExecutionSummary"}, + "Items":{"shape":"ComplianceItemEntryList"}, + "ItemContentHash":{"shape":"ComplianceItemContentHash"} + } + }, + "PutComplianceItemsResult":{ + "type":"structure", + "members":{ } }, "PutInventoryRequest":{ @@ -5015,6 +5864,7 @@ "PutParameterResult":{ "type":"structure", "members":{ + "Version":{"shape":"PSParameterVersion"} } }, "RegisterDefaultPatchBaselineRequest":{ @@ -5060,6 +5910,8 @@ "ResourceType":{"shape":"MaintenanceWindowResourceType"}, "Targets":{"shape":"Targets"}, "OwnerInformation":{"shape":"OwnerInformation"}, + "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"}, "ClientToken":{ "shape":"ClientToken", "idempotencyToken":true @@ -5090,6 +5942,7 @@ "ServiceRoleArn":{"shape":"ServiceRole"}, "TaskType":{"shape":"MaintenanceWindowTaskType"}, "TaskParameters":{"shape":"MaintenanceWindowTaskParameters"}, + "TaskInvocationParameters":{"shape":"MaintenanceWindowTaskInvocationParameters"}, "Priority":{ "shape":"MaintenanceWindowTaskPriority", "box":true @@ -5097,6 +5950,8 @@ "MaxConcurrency":{"shape":"MaxConcurrency"}, "MaxErrors":{"shape":"MaxErrors"}, "LoggingInfo":{"shape":"LoggingInfo"}, + "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"}, "ClientToken":{ "shape":"ClientToken", "idempotencyToken":true @@ -5137,6 +5992,36 @@ "members":{ } }, + "ResolvedTargets":{ + "type":"structure", + "members":{ + "ParameterValues":{"shape":"TargetParameterList"}, + "Truncated":{"shape":"Boolean"} + } + }, + "ResourceComplianceSummaryItem":{ + "type":"structure", + "members":{ + "ComplianceType":{"shape":"ComplianceTypeName"}, + "ResourceType":{"shape":"ComplianceResourceType"}, + "ResourceId":{"shape":"ComplianceResourceId"}, + "Status":{"shape":"ComplianceStatus"}, + "OverallSeverity":{"shape":"ComplianceSeverity"}, + "ExecutionSummary":{"shape":"ComplianceExecutionSummary"}, + "CompliantSummary":{"shape":"CompliantSummary"}, + "NonCompliantSummary":{"shape":"NonCompliantSummary"} + } + }, + "ResourceComplianceSummaryItemList":{ + "type":"list", + "member":{"shape":"ResourceComplianceSummaryItem"} + }, + "ResourceDataSyncAWSKMSKeyARN":{ + "type":"string", + "max":512, + "min":1, + "pattern":"arn:.*" + }, "ResourceDataSyncAlreadyExistsException":{ "type":"structure", "members":{ @@ -5202,7 +6087,8 @@ "BucketName":{"shape":"ResourceDataSyncS3BucketName"}, "Prefix":{"shape":"ResourceDataSyncS3Prefix"}, "SyncFormat":{"shape":"ResourceDataSyncS3Format"}, - "Region":{"shape":"ResourceDataSyncS3Region"} + "Region":{"shape":"ResourceDataSyncS3Region"}, + "AWSKMSKeyARN":{"shape":"ResourceDataSyncAWSKMSKeyARN"} } }, "ResourceDataSyncS3Format":{ @@ -5245,9 +6131,11 @@ "ResourceTypeForTagging":{ "type":"string", "enum":[ + "Document", "ManagedInstance", "MaintenanceWindow", - "Parameter" + "Parameter", + "PatchBaseline" ] }, "ResponseCode":{"type":"integer"}, @@ -5260,10 +6148,7 @@ }, "ResultAttributeList":{ "type":"list", - "member":{ - "shape":"ResultAttribute", - "locationName":"ResultAttribute" - }, + "member":{"shape":"ResultAttribute"}, "max":1, "min":1 }, @@ -5300,6 +6185,23 @@ "max":256, "min":1 }, + "SendAutomationSignalRequest":{ + "type":"structure", + "required":[ + "AutomationExecutionId", + "SignalType" + ], + "members":{ + "AutomationExecutionId":{"shape":"AutomationExecutionId"}, + "SignalType":{"shape":"SignalType"}, + "Payload":{"shape":"AutomationParameterMap"} + } + }, + "SendAutomationSignalResult":{ + "type":"structure", + "members":{ + } + }, "SendCommandRequest":{ "type":"structure", "required":["DocumentName"], @@ -5331,6 +6233,27 @@ } }, "ServiceRole":{"type":"string"}, + "SeveritySummary":{ + "type":"structure", + "members":{ + "CriticalCount":{"shape":"ComplianceSummaryCount"}, + "HighCount":{"shape":"ComplianceSummaryCount"}, + "MediumCount":{"shape":"ComplianceSummaryCount"}, + "LowCount":{"shape":"ComplianceSummaryCount"}, + "InformationalCount":{"shape":"ComplianceSummaryCount"}, + "UnspecifiedCount":{"shape":"ComplianceSummaryCount"} + } + }, + "SignalType":{ + "type":"string", + "enum":[ + "Approve", + "Reject", + "StartStep", + "StopStep", + "Resume" + ] + }, "SnapshotDownloadUrl":{"type":"string"}, "SnapshotId":{ "type":"string", @@ -5355,7 +6278,13 @@ "shape":"DocumentVersion", "box":true }, - "Parameters":{"shape":"AutomationParameterMap"} + "Parameters":{"shape":"AutomationParameterMap"}, + "ClientToken":{"shape":"IdempotencyToken"}, + "Mode":{"shape":"ExecutionMode"}, + "TargetParameterName":{"shape":"AutomationParameterKey"}, + "Targets":{"shape":"Targets"}, + "MaxConcurrency":{"shape":"MaxConcurrency"}, + "MaxErrors":{"shape":"MaxErrors"} } }, "StartAutomationExecutionResult":{ @@ -5390,6 +6319,15 @@ "members":{ "StepName":{"shape":"String"}, "Action":{"shape":"AutomationActionName"}, + "TimeoutSeconds":{ + "shape":"Long", + "box":true + }, + "OnFailure":{"shape":"String"}, + "MaxAttempts":{ + "shape":"Integer", + "box":true + }, "ExecutionStartTime":{"shape":"DateTime"}, "ExecutionEndTime":{"shape":"DateTime"}, "StepStatus":{"shape":"AutomationExecutionStatus"}, @@ -5398,20 +6336,60 @@ "Outputs":{"shape":"AutomationParameterMap"}, "Response":{"shape":"String"}, "FailureMessage":{"shape":"String"}, - "FailureDetails":{"shape":"FailureDetails"} + "FailureDetails":{"shape":"FailureDetails"}, + "StepExecutionId":{"shape":"String"}, + "OverriddenParameters":{"shape":"AutomationParameterMap"} + } + }, + "StepExecutionFilter":{ + "type":"structure", + "required":[ + "Key", + "Values" + ], + "members":{ + "Key":{"shape":"StepExecutionFilterKey"}, + "Values":{"shape":"StepExecutionFilterValueList"} } }, + "StepExecutionFilterKey":{ + "type":"string", + "enum":[ + "StartTimeBefore", + "StartTimeAfter", + "StepExecutionStatus", + "StepExecutionId", + "StepName", + "Action" + ] + }, + "StepExecutionFilterList":{ + "type":"list", + "member":{"shape":"StepExecutionFilter"}, + "max":6, + "min":1 + }, + "StepExecutionFilterValue":{ + "type":"string", + "max":150, + "min":1 + }, + "StepExecutionFilterValueList":{ + "type":"list", + "member":{"shape":"StepExecutionFilterValue"}, + "max":10, + "min":1 + }, "StepExecutionList":{ "type":"list", - "member":{"shape":"StepExecution"}, - "max":100, - "min":0 + "member":{"shape":"StepExecution"} }, "StopAutomationExecutionRequest":{ "type":"structure", "required":["AutomationExecutionId"], "members":{ - "AutomationExecutionId":{"shape":"AutomationExecutionId"} + "AutomationExecutionId":{"shape":"AutomationExecutionId"}, + "Type":{"shape":"StopType"} } }, "StopAutomationExecutionResult":{ @@ -5419,6 +6397,13 @@ "members":{ } }, + "StopType":{ + "type":"string", + "enum":[ + "Complete", + "Cancel" + ] + }, "String":{"type":"string"}, "StringDateTime":{ "type":"string", @@ -5428,6 +6413,13 @@ "type":"list", "member":{"shape":"String"} }, + "SubTypeCountLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "Tag":{ "type":"structure", "required":[ @@ -5463,12 +6455,28 @@ } }, "TargetCount":{"type":"integer"}, + "TargetInUseException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "TargetKey":{ "type":"string", "max":128, "min":1, "pattern":"^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$" }, + "TargetParameterList":{ + "type":"list", + "member":{"shape":"ParameterValue"} + }, + "TargetType":{ + "type":"string", + "max":200, + "pattern":"^\\/[\\w\\.\\-\\:\\/]*$" + }, "TargetValue":{"type":"string"}, "TargetValues":{ "type":"list", @@ -5507,6 +6515,14 @@ }, "exception":true }, + "UnsupportedInventoryItemContextException":{ + "type":"structure", + "members":{ + "TypeName":{"shape":"InventoryItemTypeName"}, + "Message":{"shape":"String"} + }, + "exception":true + }, "UnsupportedInventorySchemaVersionException":{ "type":"structure", "members":{ @@ -5514,6 +6530,13 @@ }, "exception":true }, + "UnsupportedOperatingSystem":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, "UnsupportedParameterType":{ "type":"structure", "members":{ @@ -5538,7 +6561,9 @@ "ScheduleExpression":{"shape":"ScheduleExpression"}, "OutputLocation":{"shape":"InstanceAssociationOutputLocation"}, "Name":{"shape":"DocumentName"}, - "Targets":{"shape":"Targets"} + "Targets":{"shape":"Targets"}, + "AssociationName":{"shape":"AssociationName"}, + "AssociationVersion":{"shape":"AssociationVersion"} } }, "UpdateAssociationResult":{ @@ -5592,7 +6617,9 @@ "members":{ "Content":{"shape":"DocumentContent"}, "Name":{"shape":"DocumentName"}, - "DocumentVersion":{"shape":"DocumentVersion"} + "DocumentVersion":{"shape":"DocumentVersion"}, + "DocumentFormat":{"shape":"DocumentFormat"}, + "TargetType":{"shape":"TargetType"} } }, "UpdateDocumentResult":{ @@ -5607,6 +6634,7 @@ "members":{ "WindowId":{"shape":"MaintenanceWindowId"}, "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"}, "Schedule":{"shape":"MaintenanceWindowSchedule"}, "Duration":{ "shape":"MaintenanceWindowDurationHours", @@ -5623,6 +6651,10 @@ "Enabled":{ "shape":"MaintenanceWindowEnabled", "box":true + }, + "Replace":{ + "shape":"Boolean", + "box":true } } }, @@ -5631,6 +6663,7 @@ "members":{ "WindowId":{"shape":"MaintenanceWindowId"}, "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"}, "Schedule":{"shape":"MaintenanceWindowSchedule"}, "Duration":{"shape":"MaintenanceWindowDurationHours"}, "Cutoff":{"shape":"MaintenanceWindowCutoff"}, @@ -5638,6 +6671,83 @@ "Enabled":{"shape":"MaintenanceWindowEnabled"} } }, + "UpdateMaintenanceWindowTargetRequest":{ + "type":"structure", + "required":[ + "WindowId", + "WindowTargetId" + ], + "members":{ + "WindowId":{"shape":"MaintenanceWindowId"}, + "WindowTargetId":{"shape":"MaintenanceWindowTargetId"}, + "Targets":{"shape":"Targets"}, + "OwnerInformation":{"shape":"OwnerInformation"}, + "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"}, + "Replace":{ + "shape":"Boolean", + "box":true + } + } + }, + "UpdateMaintenanceWindowTargetResult":{ + "type":"structure", + "members":{ + "WindowId":{"shape":"MaintenanceWindowId"}, + "WindowTargetId":{"shape":"MaintenanceWindowTargetId"}, + "Targets":{"shape":"Targets"}, + "OwnerInformation":{"shape":"OwnerInformation"}, + "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"} + } + }, + "UpdateMaintenanceWindowTaskRequest":{ + "type":"structure", + "required":[ + "WindowId", + "WindowTaskId" + ], + "members":{ + "WindowId":{"shape":"MaintenanceWindowId"}, + "WindowTaskId":{"shape":"MaintenanceWindowTaskId"}, + "Targets":{"shape":"Targets"}, + "TaskArn":{"shape":"MaintenanceWindowTaskArn"}, + "ServiceRoleArn":{"shape":"ServiceRole"}, + "TaskParameters":{"shape":"MaintenanceWindowTaskParameters"}, + "TaskInvocationParameters":{"shape":"MaintenanceWindowTaskInvocationParameters"}, + "Priority":{ + "shape":"MaintenanceWindowTaskPriority", + "box":true + }, + "MaxConcurrency":{"shape":"MaxConcurrency"}, + "MaxErrors":{"shape":"MaxErrors"}, + "LoggingInfo":{"shape":"LoggingInfo"}, + "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"}, + "Replace":{ + "shape":"Boolean", + "box":true + } + } + }, + "UpdateMaintenanceWindowTaskResult":{ + "type":"structure", + "members":{ + "WindowId":{"shape":"MaintenanceWindowId"}, + "WindowTaskId":{"shape":"MaintenanceWindowTaskId"}, + "Targets":{"shape":"Targets"}, + "TaskArn":{"shape":"MaintenanceWindowTaskArn"}, + "ServiceRoleArn":{"shape":"ServiceRole"}, + "TaskParameters":{"shape":"MaintenanceWindowTaskParameters"}, + "TaskInvocationParameters":{"shape":"MaintenanceWindowTaskInvocationParameters"}, + "Priority":{"shape":"MaintenanceWindowTaskPriority"}, + "MaxConcurrency":{"shape":"MaxConcurrency"}, + "MaxErrors":{"shape":"MaxErrors"}, + "LoggingInfo":{"shape":"LoggingInfo"}, + "Name":{"shape":"MaintenanceWindowName"}, + "Description":{"shape":"MaintenanceWindowDescription"} + } + }, "UpdateManagedInstanceRoleRequest":{ "type":"structure", "required":[ @@ -5663,6 +6773,7 @@ "GlobalFilters":{"shape":"PatchFilterGroup"}, "ApprovalRules":{"shape":"PatchRuleGroup"}, "ApprovedPatches":{"shape":"PatchIdList"}, + "ApprovedPatchesComplianceLevel":{"shape":"PatchComplianceLevel"}, "RejectedPatches":{"shape":"PatchIdList"}, "Description":{"shape":"BaselineDescription"} } @@ -5672,9 +6783,11 @@ "members":{ "BaselineId":{"shape":"BaselineId"}, "Name":{"shape":"BaselineName"}, + "OperatingSystem":{"shape":"OperatingSystem"}, "GlobalFilters":{"shape":"PatchFilterGroup"}, "ApprovalRules":{"shape":"PatchRuleGroup"}, "ApprovedPatches":{"shape":"PatchIdList"}, + "ApprovedPatchesComplianceLevel":{"shape":"PatchComplianceLevel"}, "RejectedPatches":{"shape":"PatchIdList"}, "CreatedDate":{"shape":"DateTime"}, "ModifiedDate":{"shape":"DateTime"}, diff --git a/models/apis/ssm/2014-11-06/docs-2.json b/models/apis/ssm/2014-11-06/docs-2.json index b3dee5c7eab..da6fb58b554 100644 --- a/models/apis/ssm/2014-11-06/docs-2.json +++ b/models/apis/ssm/2014-11-06/docs-2.json @@ -1,8 +1,8 @@ { "version": "2.0", - "service": "Amazon EC2 Systems Manager

Amazon EC2 Systems Manager is a collection of capabilities that helps you automate management tasks such as collecting system inventory, applying operating system (OS) patches, automating the creation of Amazon Machine Images (AMIs), and configuring operating systems (OSs) and applications at scale. Systems Manager lets you remotely and securely manage the configuration of your managed instances. A managed instance is any Amazon EC2 instance or on-premises machine in your hybrid environment that has been configured for Systems Manager.

This reference is intended to be used with the Amazon EC2 Systems Manager User Guide.

To get started, verify prerequisites and configure managed instances. For more information, see Systems Manager Prerequisites.

", + "service": "AWS Systems Manager

AWS Systems Manager is a collection of capabilities that helps you automate management tasks such as collecting system inventory, applying operating system (OS) patches, automating the creation of Amazon Machine Images (AMIs), and configuring operating systems (OSs) and applications at scale. Systems Manager lets you remotely and securely manage the configuration of your managed instances. A managed instance is any Amazon EC2 instance or on-premises machine in your hybrid environment that has been configured for Systems Manager.

This reference is intended to be used with the AWS Systems Manager User Guide.

To get started, verify prerequisites and configure managed instances. For more information, see Systems Manager Prerequisites.

For information about other API actions you can perform on Amazon EC2 instances, see the Amazon EC2 API Reference. For information about how to use a Query API, see Making API Requests.

", "operations": { - "AddTagsToResource": "

Adds or overwrites one or more tags for the specified resource. Tags are metadata that you assign to your managed instances, Maintenance Windows, or Parameter Store parameters. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed instances that helps you track each instance's owner and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, or Test.

Each resource can have a maximum of 10 tags.

We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to Amazon EC2 and are interpreted strictly as a string of characters.

For more information about tags, see Tagging Your Amazon EC2 Resources in the Amazon EC2 User Guide.

", + "AddTagsToResource": "

Adds or overwrites one or more tags for the specified resource. Tags are metadata that you can assign to your documents, managed instances, Maintenance Windows, Parameter Store parameters, and patch baselines. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed instances that helps you track each instance's owner and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, or Test.

Each resource can have a maximum of 10 tags.

We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to Amazon EC2 and are interpreted strictly as a string of characters.

For more information about tags, see Tagging Your Amazon EC2 Resources in the Amazon EC2 User Guide.

", "CancelCommand": "

Attempts to cancel the command specified by the Command ID. There is no guarantee that the command will be terminated and the underlying process stopped.

", "CreateActivation": "

Registers your on-premises server or virtual machine with Amazon EC2 so that you can manage these resources using Run Command. An on-premises server or virtual machine that has been registered with EC2 is called a managed instance. For more information about activations, see Setting Up Systems Manager in Hybrid Environments.

", "CreateAssociation": "

Associates the specified Systems Manager document with the specified instances or targets.

When you associate a document with one or more instances using instance IDs or tags, the SSM Agent running on the instance processes the document and configures the instance as specified.

If you associate a document with an instance that already has an associated document, the system throws the AssociationAlreadyExists exception.

", @@ -10,13 +10,13 @@ "CreateDocument": "

Creates a Systems Manager document.

After you create a document, you can use CreateAssociation to associate it with one or more running instances.

", "CreateMaintenanceWindow": "

Creates a new Maintenance Window.

", "CreatePatchBaseline": "

Creates a patch baseline.

", - "CreateResourceDataSync": "

Creates a resource data sync configuration to a single bucket in Amazon S3. This is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data to the Amazon S3 bucket. To check the status of the sync, use the ListResourceDataSync operation.

By default, data is not encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy. To view an example of a restrictive Amazon S3 bucket policy for Resource Data Sync, see Creating a Resource Data Sync.

", + "CreateResourceDataSync": "

Creates a resource data sync configuration to a single bucket in Amazon S3. This is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data to the Amazon S3 bucket. To check the status of the sync, use the ListResourceDataSync.

By default, data is not encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy. To view an example of a restrictive Amazon S3 bucket policy for Resource Data Sync, see Configuring Resource Data Sync for Inventory.

", "DeleteActivation": "

Deletes an activation. You are not required to delete an activation. If you delete an activation, you can no longer use it to register additional managed instances. Deleting an activation does not de-register managed instances. You must manually de-register managed instances.

", "DeleteAssociation": "

Disassociates the specified Systems Manager document from the specified instance.

When you disassociate a document from an instance, it does not change the configuration of the instance. To change the configuration state of an instance after you disassociate a document, you must create a new document with the desired configuration and associate it with the instance.

", "DeleteDocument": "

Deletes the Systems Manager document and all instance associations to the document.

Before you delete the document, we recommend that you use DeleteAssociation to disassociate all instances that are associated with the document.

", "DeleteMaintenanceWindow": "

Deletes a Maintenance Window.

", "DeleteParameter": "

Delete a parameter from the system.

", - "DeleteParameters": "

Delete a list of parameters.

", + "DeleteParameters": "

Delete a list of parameters. This API is used to delete parameters by using the Amazon EC2 console.

", "DeletePatchBaseline": "

Deletes a patch baseline.

", "DeleteResourceDataSync": "

Deletes a Resource Data Sync configuration. After the configuration is deleted, changes to inventory data on managed instances are no longer synced with the target Amazon S3 bucket. Deleting a sync configuration does not delete data in the target Amazon S3 bucket.

", "DeregisterManagedInstance": "

Removes the server or virtual machine from the list of registered servers. You can reregister the instance again at any time. If you don't plan to use Run Command on the server, we suggest uninstalling the SSM Agent first.

", @@ -24,13 +24,14 @@ "DeregisterTargetFromMaintenanceWindow": "

Removes a target from a Maintenance Window.

", "DeregisterTaskFromMaintenanceWindow": "

Removes a task from a Maintenance Window.

", "DescribeActivations": "

Details about the activation, including: the date and time the activation was created, the expiration date, the IAM role assigned to the instances in the activation, and the number of instances activated by this registration.

", - "DescribeAssociation": "

Describes the associations for the specified Systems Manager document or instance.

", + "DescribeAssociation": "

Describes the association for the specified target or instance. If you created the association by using the Targets parameter, then you must retrieve the association by using the association ID. If you created the association by specifying an instance ID and a Systems Manager document, then you retrieve the association by specifying the document name and the instance ID.

", "DescribeAutomationExecutions": "

Provides details about all active and terminated Automation executions.

", + "DescribeAutomationStepExecutions": "

Information about all active and terminated step executions in an Automation workflow.

", "DescribeAvailablePatches": "

Lists all patches that could possibly be included in a patch baseline.

", - "DescribeDocument": "

Describes the specified SSM document.

", + "DescribeDocument": "

Describes the specified Systems Manager document.

", "DescribeDocumentPermission": "

Describes the permissions for a Systems Manager document. If you created the document, you are the owner. If a document is shared, it can either be shared privately (by specifying a user's AWS account ID) or publicly (All).

", "DescribeEffectiveInstanceAssociations": "

All associations for the instance(s).

", - "DescribeEffectivePatchesForPatchBaseline": "

Retrieves the current effective patches (the patch and the approval state) for the specified patch baseline.

", + "DescribeEffectivePatchesForPatchBaseline": "

Retrieves the current effective patches (the patch and the approval state) for the specified patch baseline. Note that this API applies only to Windows patch baselines.

", "DescribeInstanceAssociationsStatus": "

The status of the associations for the instance(s).

", "DescribeInstanceInformation": "

Describes one or more of your instances. You can use this to get information about instances like the operating system platform, the SSM Agent version (Linux), status etc. If you specify one or more instance IDs, it returns information for those instances. If you do not specify instance IDs, it returns information for all your instances. If you specify an instance ID that is not valid or an instance that you do not own, you receive an error.

", "DescribeInstancePatchStates": "

Retrieves the high-level patch state of one or more instances.

", @@ -38,39 +39,46 @@ "DescribeInstancePatches": "

Retrieves information about the patches on the specified instance and their state relative to the patch baseline being used for the instance.

", "DescribeMaintenanceWindowExecutionTaskInvocations": "

Retrieves the individual task executions (one per target) for a particular task executed as part of a Maintenance Window execution.

", "DescribeMaintenanceWindowExecutionTasks": "

For a given Maintenance Window execution, lists the tasks that were executed.

", - "DescribeMaintenanceWindowExecutions": "

Lists the executions of a Maintenance Window (meaning, information about when the Maintenance Window was scheduled to be active and information about tasks registered and run with the Maintenance Window).

", + "DescribeMaintenanceWindowExecutions": "

Lists the executions of a Maintenance Window. This includes information about when the Maintenance Window was scheduled to be active, and information about tasks registered and run with the Maintenance Window.

", "DescribeMaintenanceWindowTargets": "

Lists the targets registered with the Maintenance Window.

", "DescribeMaintenanceWindowTasks": "

Lists the tasks in a Maintenance Window.

", "DescribeMaintenanceWindows": "

Retrieves the Maintenance Windows in an AWS account.

", - "DescribeParameters": "

Get information about a parameter.

", + "DescribeParameters": "

Get information about a parameter.

Request results are returned on a best-effort basis. If you specify MaxResults in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of MaxResults. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a NextToken. You can specify the NextToken in a subsequent call to get the next set of results.

", "DescribePatchBaselines": "

Lists the patch baselines in your AWS account.

", "DescribePatchGroupState": "

Returns high-level aggregated patch compliance state for a patch group.

", "DescribePatchGroups": "

Lists all patch groups that have been registered with patch baselines.

", "GetAutomationExecution": "

Get detailed information about a particular Automation execution.

", "GetCommandInvocation": "

Returns detailed information about command execution for an invocation or plugin.

", - "GetDefaultPatchBaseline": "

Retrieves the default patch baseline.

", - "GetDeployablePatchSnapshotForInstance": "

Retrieves the current snapshot for the patch baseline the instance uses. This API is primarily used by the AWS-ApplyPatchBaseline Systems Manager document.

", - "GetDocument": "

Gets the contents of the specified SSM document.

", + "GetDefaultPatchBaseline": "

Retrieves the default patch baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.

", + "GetDeployablePatchSnapshotForInstance": "

Retrieves the current snapshot for the patch baseline the instance uses. This API is primarily used by the AWS-RunPatchBaseline Systems Manager document.

", + "GetDocument": "

Gets the contents of the specified Systems Manager document.

", "GetInventory": "

Query inventory information.

", "GetInventorySchema": "

Return a list of inventory type names for the account, or return a list of attribute names for a specific Inventory item type.

", "GetMaintenanceWindow": "

Retrieves a Maintenance Window.

", "GetMaintenanceWindowExecution": "

Retrieves details about a specific task executed as part of a Maintenance Window execution.

", "GetMaintenanceWindowExecutionTask": "

Retrieves the details about a specific task executed as part of a Maintenance Window execution.

", + "GetMaintenanceWindowExecutionTaskInvocation": "

Retrieves a task invocation. A task invocation is a specific task executing on a specific target. Maintenance Windows report status for all invocations.

", + "GetMaintenanceWindowTask": "

Lists the tasks in a Maintenance Window.

", "GetParameter": "

Get information about a parameter by using the parameter name.

", "GetParameterHistory": "

Query a list of all parameters used by the AWS account.

", "GetParameters": "

Get details of a parameter.

", - "GetParametersByPath": "

Retrieve parameters in a specific hierarchy. For more information, see Working with Systems Manager Parameters.

", + "GetParametersByPath": "

Retrieve parameters in a specific hierarchy. For more information, see Working with Systems Manager Parameters.

Request results are returned on a best-effort basis. If you specify MaxResults in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of MaxResults. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a NextToken. You can specify the NextToken in a subsequent call to get the next set of results.

", "GetPatchBaseline": "

Retrieves information about a patch baseline.

", "GetPatchBaselineForPatchGroup": "

Retrieves the patch baseline that should be used for the specified patch group.

", + "ListAssociationVersions": "

Retrieves all versions of an association for a specific association ID.

", "ListAssociations": "

Lists the associations for the specified Systems Manager document or instance.

", "ListCommandInvocations": "

An invocation is copy of a command sent to a specific instance. A command can apply to one or more instances. A command invocation applies to one instance. For example, if a user executes SendCommand against three instances, then a command invocation is created for each requested instance ID. ListCommandInvocations provide status about command execution.

", "ListCommands": "

Lists the commands requested by users of the AWS account.

", + "ListComplianceItems": "

For a specified resource ID, this API action returns a list of compliance statuses for different resource types. Currently, you can only specify one resource ID per call. List results depend on the criteria specified in the filter.

", + "ListComplianceSummaries": "

Returns a summary count of compliant and non-compliant resources for a compliance type. For example, this call can return State Manager associations, patches, or custom compliance types according to the filter criteria that you specify.

", "ListDocumentVersions": "

List all versions for a document.

", - "ListDocuments": "

Describes one or more of your SSM documents.

", + "ListDocuments": "

Describes one or more of your Systems Manager documents.

", "ListInventoryEntries": "

A list of inventory items returned by the request.

", + "ListResourceComplianceSummaries": "

Returns a resource-level summary count. The summary includes information about compliant and non-compliant statuses and detailed compliance-item severity counts, according to the filter criteria you specify.

", "ListResourceDataSync": "

Lists your resource data sync configurations. Includes information about the last time a sync attempted to start, the last sync status, and the last time a sync successfully completed.

The number of sync configurations might be too large to return using a single call to ListResourceDataSync. You can limit the number of sync configurations returned by using the MaxResults parameter. To determine whether there are more sync configurations to list, check the value of NextToken in the output. If there are more sync configurations to list, you can request them by specifying the NextToken returned in the call to the parameter of a subsequent call.

", "ListTagsForResource": "

Returns a list of the tags assigned to the specified resource.

", "ModifyDocumentPermission": "

Shares a Systems Manager document publicly or privately. If you share a document privately, you must specify the AWS user account IDs for those people who can use the document. If you share a document publicly, you must specify All as the account ID.

", + "PutComplianceItems": "

Registers a compliance type and other compliance details on a designated resource. This action lets you register custom compliance details with a resource. This call overwrites existing compliance information on the resource, so you must provide a full list of compliance items each time that you send the request.

", "PutInventory": "

Bulk update custom inventory items on one more instance. The request adds an inventory item, if it doesn't already exist, or updates an inventory item, if it does exist.

", "PutParameter": "

Add one or more parameters to the system.

", "RegisterDefaultPatchBaseline": "

Defines the default patch baseline.

", @@ -78,14 +86,17 @@ "RegisterTargetWithMaintenanceWindow": "

Registers a target with a Maintenance Window.

", "RegisterTaskWithMaintenanceWindow": "

Adds a new task to a Maintenance Window.

", "RemoveTagsFromResource": "

Removes all tags from the specified resource.

", + "SendAutomationSignal": "

Sends a signal to an Automation execution to change the current behavior or status of the execution.

", "SendCommand": "

Executes commands on one or more managed instances.

", "StartAutomationExecution": "

Initiates execution of an Automation document.

", "StopAutomationExecution": "

Stop an Automation that is currently executing.

", - "UpdateAssociation": "

Updates an association. You can only update the document version, schedule, parameters, and Amazon S3 output of an association.

", + "UpdateAssociation": "

Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon S3 output.

", "UpdateAssociationStatus": "

Updates the status of the Systems Manager document associated with the specified instance.

", "UpdateDocument": "

The document you want to update.

", "UpdateDocumentDefaultVersion": "

Set the default version of a document.

", "UpdateMaintenanceWindow": "

Updates an existing Maintenance Window. Only specified parameters are modified.

", + "UpdateMaintenanceWindowTarget": "

Modifies the target of an existing Maintenance Window. You can't change the target type, but you can change the following:

The target from being an ID target to a Tag target, or a Tag target to an ID target.

IDs for an ID target.

Tags for a Tag target.

Owner.

Name.

Description.

If a parameter is null, then the corresponding field is not modified.

", + "UpdateMaintenanceWindowTask": "

Modifies a task assigned to a Maintenance Window. You can't change the task type, but you can change the following values:

Task ARN. For example, you can change a RUN_COMMAND task from AWS-RunPowerShellScript to AWS-RunShellScript.

Service role ARN.

Task parameters.

Task priority.

Task MaxConcurrency and MaxErrors.

Log location.

If a parameter is null, then the corresponding field is not modified. Also, if you set Replace to true, then all fields required by the RegisterTaskWithMaintenanceWindow action are required for this request. Optional fields that aren't specified are set to null.

", "UpdateManagedInstanceRole": "

Assigns or changes an Amazon Identity and Access Management (IAM) role to the managed instance.

", "UpdatePatchBaseline": "

Modifies an existing patch baseline. Fields not specified in the request are left unchanged.

" }, @@ -154,6 +165,12 @@ "InstanceAssociationStatusInfo$ErrorCode": "

An error code returned by the request to create the association.

" } }, + "AggregatorSchemaOnly": { + "base": null, + "refs": { + "GetInventorySchemaRequest$Aggregator": "

Returns inventory schemas that support aggregation. For example, this call returns the AWS:InstanceInformation type, because it supports aggregation based on the PlatformName, PlatformType, and PlatformVersion attributes.

" + } + }, "AllowedPattern": { "base": null, "refs": { @@ -239,10 +256,12 @@ "refs": { "Association$AssociationId": "

The ID created by the system when you create an association. An association is a binding between a document and a set of targets with a schedule.

", "AssociationDescription$AssociationId": "

The association ID.

", + "AssociationVersionInfo$AssociationId": "

The ID created by the system when the association was created.

", "DeleteAssociationRequest$AssociationId": "

The association ID that you want to delete.

", "DescribeAssociationRequest$AssociationId": "

The association ID for which you want information.

", "InstanceAssociation$AssociationId": "

The association ID.

", "InstanceAssociationStatusInfo$AssociationId": "

The association ID.

", + "ListAssociationVersionsRequest$AssociationId": "

The association ID for which you want to view all versions.

", "UpdateAssociationRequest$AssociationId": "

The ID of the association you want to update.

" } }, @@ -257,6 +276,18 @@ "ListAssociationsResult$Associations": "

The associations.

" } }, + "AssociationName": { + "base": null, + "refs": { + "Association$AssociationName": "

The association name.

", + "AssociationDescription$AssociationName": "

The association name.

", + "AssociationVersionInfo$AssociationName": "

The name specified for the association version when the association version was created.

", + "CreateAssociationBatchRequestEntry$AssociationName": "

Specify a descriptive name for the association.

", + "CreateAssociationRequest$AssociationName": "

Specify a descriptive name for the association.

", + "InstanceAssociationStatusInfo$AssociationName": "

The name of the association applied to the instance.

", + "UpdateAssociationRequest$AssociationName": "

The name of the association that you want to update.

" + } + }, "AssociationOverview": { "base": "

Information about the association.

", "refs": { @@ -283,15 +314,48 @@ "AssociationStatus$Name": "

The status.

" } }, + "AssociationVersion": { + "base": null, + "refs": { + "Association$AssociationVersion": "

The association version.

", + "AssociationDescription$AssociationVersion": "

The association version.

", + "AssociationVersionInfo$AssociationVersion": "

The association version.

", + "DescribeAssociationRequest$AssociationVersion": "

Specify the association version to retrieve. To view the latest version, either specify $LATEST for this parameter, or omit this parameter. To view a list of all associations for an instance, use ListInstanceAssociations. To get a list of versions for a specific association, use ListAssociationVersions.

", + "InstanceAssociation$AssociationVersion": "

Version information for the association on the instance.

", + "InstanceAssociationStatusInfo$AssociationVersion": "

The version of the association applied to the instance.

", + "UpdateAssociationRequest$AssociationVersion": "

This parameter is provided for concurrency control purposes. You must specify the latest association version in the service. If you want to ensure that this request succeeds, either specify $LATEST, or omit this parameter.

" + } + }, + "AssociationVersionInfo": { + "base": "

Information about the association version.

", + "refs": { + "AssociationVersionList$member": null + } + }, + "AssociationVersionLimitExceeded": { + "base": "

You have reached the maximum number versions allowed for an association. Each association has a limit of 1,000 versions.

", + "refs": { + } + }, + "AssociationVersionList": { + "base": null, + "refs": { + "ListAssociationVersionsResult$AssociationVersions": "

Information about all versions of the association for the specified association ID.

" + } + }, "AttributeName": { "base": null, "refs": { + "ComplianceItemDetails$key": null, + "InventoryItemContentContext$key": null, "InventoryItemEntry$key": null } }, "AttributeValue": { "base": null, "refs": { + "ComplianceItemDetails$value": null, + "InventoryItemContentContext$value": null, "InventoryItemEntry$value": null } }, @@ -326,7 +390,7 @@ "AutomationExecutionFilterKey": { "base": null, "refs": { - "AutomationExecutionFilter$Key": "

The aspect of the Automation execution information that should be limited.

" + "AutomationExecutionFilter$Key": "

One or more keys to limit the results. Valid filter keys include the following: DocumentNamePrefix, ExecutionStatus, ExecutionId, ParentExecutionId, CurrentAction, StartTimeBefore, StartTimeAfter.

" } }, "AutomationExecutionFilterList": { @@ -351,8 +415,12 @@ "base": null, "refs": { "AutomationExecution$AutomationExecutionId": "

The execution ID.

", + "AutomationExecution$ParentAutomationExecutionId": "

The AutomationExecutionId of the parent automation.

", "AutomationExecutionMetadata$AutomationExecutionId": "

The execution ID.

", + "AutomationExecutionMetadata$ParentAutomationExecutionId": "

The ExecutionId of the parent Automation.

", + "DescribeAutomationStepExecutionsRequest$AutomationExecutionId": "

The Automation execution ID for which you want step execution descriptions.

", "GetAutomationExecutionRequest$AutomationExecutionId": "

The unique identifier for an existing automation execution to examine. The execution ID is returned by StartAutomationExecution when the execution of an Automation document is initiated.

", + "SendAutomationSignalRequest$AutomationExecutionId": "

The unique identifier for an existing Automation execution that you want to send the signal to.

", "StartAutomationExecutionResult$AutomationExecutionId": "

The unique ID of a newly scheduled automation execution.

", "StopAutomationExecutionRequest$AutomationExecutionId": "

The execution ID of the Automation to stop.

" } @@ -390,7 +458,10 @@ "AutomationParameterKey": { "base": null, "refs": { - "AutomationParameterMap$key": null + "AutomationExecution$TargetParameterName": "

The parameter name.

", + "AutomationExecutionMetadata$TargetParameterName": "

The list of execution outputs as defined in the Automation document.

", + "AutomationParameterMap$key": null, + "StartAutomationExecutionRequest$TargetParameterName": "

The name of the parameter used as the target resource for the rate-controlled execution. Required if you specify Targets.

" } }, "AutomationParameterMap": { @@ -400,8 +471,11 @@ "AutomationExecution$Outputs": "

The list of execution outputs as defined in the automation document.

", "AutomationExecutionMetadata$Outputs": "

The list of execution outputs as defined in the Automation document.

", "FailureDetails$Details": "

Detailed information about the Automation step failure.

", + "MaintenanceWindowAutomationParameters$Parameters": "

The parameters for the AUTOMATION task.

", + "SendAutomationSignalRequest$Payload": "

The data sent with the signal. The data schema depends on the type of signal used in the request.

", "StartAutomationExecutionRequest$Parameters": "

A key-value map of execution parameters, which match the declared parameters in the Automation document.

", - "StepExecution$Outputs": "

Returned values from the execution of the step.

" + "StepExecution$Outputs": "

Returned values from the execution of the step.

", + "StepExecution$OverriddenParameters": "

A user-specified list of parameters to override when executing a step.

" } }, "AutomationParameterValue": { @@ -416,6 +490,11 @@ "AutomationParameterMap$value": null } }, + "AutomationStepNotFoundException": { + "base": "

The specified step name and execution ID don't exist. Verify the information and try again.

", + "refs": { + } + }, "BaselineDescription": { "base": null, "refs": { @@ -469,6 +548,9 @@ "base": null, "refs": { "Activation$Expired": "

Whether or not the activation is expired.

", + "AutomationExecution$StepExecutionsTruncated": "

A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API action to get the full list of step executions.

", + "DeregisterTargetFromMaintenanceWindowRequest$Safe": "

The system checks if the target is being referenced by a task. If the target is being referenced, the system returns an error and does not deregister the target from the Maintenance Window.

", + "DescribeAutomationStepExecutionsRequest$ReverseOrder": "

A boolean that indicates whether to list step executions in reverse order by start time. The default value is false.

", "DocumentVersionInfo$IsDefaultVersion": "

An identifier for the default version of the document.

", "GetParameterHistoryRequest$WithDecryption": "

Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.

", "GetParameterRequest$WithDecryption": "

Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.

", @@ -477,7 +559,11 @@ "GetParametersRequest$WithDecryption": "

Return decrypted secure string value. Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.

", "InstanceInformation$IsLatestVersion": "

Indicates whether latest version of the SSM Agent is running on your instance.

", "ListCommandInvocationsRequest$Details": "

(Optional) If set this returns the response of the command executions and any command output. By default this is set to False.

", - "PutParameterRequest$Overwrite": "

Overwrite an existing parameter. If not specified, will default to \"false\".

" + "PutParameterRequest$Overwrite": "

Overwrite an existing parameter. If not specified, will default to \"false\".

", + "ResolvedTargets$Truncated": "

A boolean value indicating whether the resolved target list is truncated.

", + "UpdateMaintenanceWindowRequest$Replace": "

If True, then all fields that are required by the CreateMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null.

", + "UpdateMaintenanceWindowTargetRequest$Replace": "

If True, then all fields that are required by the RegisterTargetWithMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null.

", + "UpdateMaintenanceWindowTaskRequest$Replace": "

If True, then all fields that are required by the RegisterTaskWithMaintenanceWndow action are also required for this API request. Optional fields that are not specified are set to null.

" } }, "CancelCommandRequest": { @@ -619,6 +705,7 @@ "Command$Comment": "

User-specified information about the command, such as a brief description of what the command should do.

", "CommandInvocation$Comment": "

User-specified information about the command, such as a brief description of what the command should do.

", "GetCommandInvocationResult$Comment": "

The comment text for the command.

", + "MaintenanceWindowRunCommandParameters$Comment": "

Information about the command(s) to execute.

", "SendCommandRequest$Comment": "

User-specified information about the command, such as a brief description of what the command should do.

" } }, @@ -628,6 +715,207 @@ "Command$CompletedCount": "

The number of targets for which the command invocation reached a terminal state. Terminal states include the following: Success, Failed, Execution Timed Out, Delivery Timed Out, Canceled, Terminated, or Undeliverable.

" } }, + "ComplianceExecutionId": { + "base": null, + "refs": { + "ComplianceExecutionSummary$ExecutionId": "

An ID created by the system when PutComplianceItems was called. For example, CommandID is a valid execution ID. You can use this ID in subsequent calls.

" + } + }, + "ComplianceExecutionSummary": { + "base": "

A summary of the call execution that includes an execution ID, the type of execution (for example, Command), and the date/time of the execution using a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.

", + "refs": { + "ComplianceItem$ExecutionSummary": "

A summary for the compliance item. The summary includes an execution ID, the execution type (for example, command), and the execution time.

", + "PutComplianceItemsRequest$ExecutionSummary": "

A summary of the call execution that includes an execution ID, the type of execution (for example, Command), and the date/time of the execution using a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.

", + "ResourceComplianceSummaryItem$ExecutionSummary": "

Information about the execution.

" + } + }, + "ComplianceExecutionType": { + "base": null, + "refs": { + "ComplianceExecutionSummary$ExecutionType": "

The type of execution. For example, Command is a valid execution type.

" + } + }, + "ComplianceFilterValue": { + "base": null, + "refs": { + "ComplianceStringFilterValueList$member": null + } + }, + "ComplianceItem": { + "base": "

Information about the compliance as defined by the resource type. For example, for a patch resource type, Items includes information about the PatchSeverity, Classification, etc.

", + "refs": { + "ComplianceItemList$member": null + } + }, + "ComplianceItemContentHash": { + "base": null, + "refs": { + "PutComplianceItemsRequest$ItemContentHash": "

MD5 or SHA-256 content hash. The content hash is used to determine if existing information should be overwritten or ignored. If the content hashes match, the request to put compliance information is ignored.

" + } + }, + "ComplianceItemDetails": { + "base": null, + "refs": { + "ComplianceItem$Details": "

A \"Key\": \"Value\" tag combination for the compliance item.

", + "ComplianceItemEntry$Details": "

A \"Key\": \"Value\" tag combination for the compliance item.

" + } + }, + "ComplianceItemEntry": { + "base": "

Information about a compliance item.

", + "refs": { + "ComplianceItemEntryList$member": null + } + }, + "ComplianceItemEntryList": { + "base": null, + "refs": { + "PutComplianceItemsRequest$Items": "

Information about the compliance as defined by the resource type. For example, for a patch compliance type, Items includes information about the PatchSeverity, Classification, etc.

" + } + }, + "ComplianceItemId": { + "base": null, + "refs": { + "ComplianceItem$Id": "

An ID for the compliance item. For example, if the compliance item is a Windows patch, the ID could be the number of the KB article. Here's an example: KB4010320.

", + "ComplianceItemEntry$Id": "

The compliance item ID. For example, if the compliance item is a Windows patch, the ID could be the number of the KB article.

" + } + }, + "ComplianceItemList": { + "base": null, + "refs": { + "ListComplianceItemsResult$ComplianceItems": "

A list of compliance information for the specified resource ID.

" + } + }, + "ComplianceItemTitle": { + "base": null, + "refs": { + "ComplianceItem$Title": "

A title for the compliance item. For example, if the compliance item is a Windows patch, the title could be the title of the KB article for the patch. Here's an example: Security Update for Active Directory Federation Services.

", + "ComplianceItemEntry$Title": "

The title of the compliance item. For example, if the compliance item is a Windows patch, the title could be the title of the KB article for the patch. Here's an example: Security Update for Active Directory Federation Services.

" + } + }, + "ComplianceQueryOperatorType": { + "base": null, + "refs": { + "ComplianceStringFilter$Type": "

The type of comparison that should be performed for the value: Equal, NotEqual, BeginWith, LessThan, or GreaterThan.

" + } + }, + "ComplianceResourceId": { + "base": null, + "refs": { + "ComplianceItem$ResourceId": "

An ID for the resource. For a managed instance, this is the instance ID.

", + "ComplianceResourceIdList$member": null, + "PutComplianceItemsRequest$ResourceId": "

Specify an ID for this resource. For a managed instance, this is the instance ID.

", + "ResourceComplianceSummaryItem$ResourceId": "

The resource ID.

" + } + }, + "ComplianceResourceIdList": { + "base": null, + "refs": { + "ListComplianceItemsRequest$ResourceIds": "

The ID for the resources from which to get compliance information. Currently, you can only specify one resource ID.

" + } + }, + "ComplianceResourceType": { + "base": null, + "refs": { + "ComplianceItem$ResourceType": "

The type of resource. ManagedInstance is currently the only supported resource type.

", + "ComplianceResourceTypeList$member": null, + "PutComplianceItemsRequest$ResourceType": "

Specify the type of resource. ManagedInstance is currently the only supported resource type.

", + "ResourceComplianceSummaryItem$ResourceType": "

The resource type.

" + } + }, + "ComplianceResourceTypeList": { + "base": null, + "refs": { + "ListComplianceItemsRequest$ResourceTypes": "

The type of resource from which to get compliance information. Currently, the only supported resource type is ManagedInstance.

" + } + }, + "ComplianceSeverity": { + "base": null, + "refs": { + "ComplianceItem$Severity": "

The severity of the compliance status. Severity can be one of the following: Critical, High, Medium, Low, Informational, Unspecified.

", + "ComplianceItemEntry$Severity": "

The severity of the compliance status. Severity can be one of the following: Critical, High, Medium, Low, Informational, Unspecified.

", + "ResourceComplianceSummaryItem$OverallSeverity": "

The highest severity item found for the resource. The resource is compliant for this item.

" + } + }, + "ComplianceStatus": { + "base": null, + "refs": { + "ComplianceItem$Status": "

The status of the compliance item. An item is either COMPLIANT or NON_COMPLIANT.

", + "ComplianceItemEntry$Status": "

The status of the compliance item. An item is either COMPLIANT or NON_COMPLIANT.

", + "ResourceComplianceSummaryItem$Status": "

The compliance status for the resource.

" + } + }, + "ComplianceStringFilter": { + "base": "

One or more filters. Use a filter to return a more specific list of results.

", + "refs": { + "ComplianceStringFilterList$member": null + } + }, + "ComplianceStringFilterKey": { + "base": null, + "refs": { + "ComplianceStringFilter$Key": "

The name of the filter.

" + } + }, + "ComplianceStringFilterList": { + "base": null, + "refs": { + "ListComplianceItemsRequest$Filters": "

One or more compliance filters. Use a filter to return a more specific list of results.

", + "ListComplianceSummariesRequest$Filters": "

One or more compliance or inventory filters. Use a filter to return a more specific list of results.

", + "ListResourceComplianceSummariesRequest$Filters": "

One or more filters. Use a filter to return a more specific list of results.

" + } + }, + "ComplianceStringFilterValueList": { + "base": null, + "refs": { + "ComplianceStringFilter$Values": "

The value for which to search.

" + } + }, + "ComplianceSummaryCount": { + "base": null, + "refs": { + "CompliantSummary$CompliantCount": "

The total number of resources that are compliant.

", + "NonCompliantSummary$NonCompliantCount": "

The total number of compliance items that are not compliant.

", + "SeveritySummary$CriticalCount": "

The total number of resources or compliance items that have a severity level of critical. Critical severity is determined by the organization that published the compliance items.

", + "SeveritySummary$HighCount": "

The total number of resources or compliance items that have a severity level of high. High severity is determined by the organization that published the compliance items.

", + "SeveritySummary$MediumCount": "

The total number of resources or compliance items that have a severity level of medium. Medium severity is determined by the organization that published the compliance items.

", + "SeveritySummary$LowCount": "

The total number of resources or compliance items that have a severity level of low. Low severity is determined by the organization that published the compliance items.

", + "SeveritySummary$InformationalCount": "

The total number of resources or compliance items that have a severity level of informational. Informational severity is determined by the organization that published the compliance items.

", + "SeveritySummary$UnspecifiedCount": "

The total number of resources or compliance items that have a severity level of unspecified. Unspecified severity is determined by the organization that published the compliance items.

" + } + }, + "ComplianceSummaryItem": { + "base": "

A summary of compliance information by compliance type.

", + "refs": { + "ComplianceSummaryItemList$member": null + } + }, + "ComplianceSummaryItemList": { + "base": null, + "refs": { + "ListComplianceSummariesResult$ComplianceSummaryItems": "

A list of compliant and non-compliant summary counts based on compliance types. For example, this call returns State Manager associations, patches, or custom compliance types according to the filter criteria that you specified.

" + } + }, + "ComplianceTypeCountLimitExceededException": { + "base": "

You specified too many custom compliance types. You can specify a maximum of 10 different types.

", + "refs": { + } + }, + "ComplianceTypeName": { + "base": null, + "refs": { + "ComplianceItem$ComplianceType": "

The compliance type. For example, Association (for a State Manager association), Patch, or Custom:string are all valid compliance types.

", + "ComplianceSummaryItem$ComplianceType": "

The type of compliance item. For example, the compliance type can be Association, Patch, or Custom:string.

", + "PutComplianceItemsRequest$ComplianceType": "

Specify the compliance type. For example, specify Association (for a State Manager association), Patch, or Custom:string.

", + "ResourceComplianceSummaryItem$ComplianceType": "

The compliance type.

" + } + }, + "CompliantSummary": { + "base": "

A summary of resources that are compliant. The summary is organized according to the resource count for each compliance type.

", + "refs": { + "ComplianceSummaryItem$CompliantSummary": "

A list of COMPLIANT items for the specified compliance type.

", + "ResourceComplianceSummaryItem$CompliantSummary": "

A list of items that are compliant for the resource.

" + } + }, "ComputerName": { "base": null, "refs": { @@ -737,6 +1025,7 @@ "AssociationDescription$LastExecutionDate": "

The date on which the association was last run.

", "AssociationDescription$LastSuccessfulExecutionDate": "

The last date on which the association was successfully run.

", "AssociationStatus$Date": "

The date when the status changed.

", + "AssociationVersionInfo$CreatedDate": "

The date the association version was created.

", "AutomationExecution$ExecutionStartTime": "

The time the execution started.

", "AutomationExecution$ExecutionEndTime": "

The time the execution finished.

", "AutomationExecutionMetadata$ExecutionStartTime": "

The time the execution started.>

", @@ -746,10 +1035,13 @@ "CommandInvocation$RequestedDateTime": "

The time and date the request was sent to this instance.

", "CommandPlugin$ResponseStartDateTime": "

The time the plugin started executing.

", "CommandPlugin$ResponseFinishDateTime": "

The time the plugin stopped executing. Could stop prematurely if, for example, a cancel command was sent.

", + "ComplianceExecutionSummary$ExecutionTime": "

The time the execution ran as a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.

", "DocumentDescription$CreatedDate": "

The date when the document was created.

", "DocumentVersionInfo$CreatedDate": "

The date the document was created.

", "GetMaintenanceWindowExecutionResult$StartTime": "

The time the Maintenance Window started executing.

", "GetMaintenanceWindowExecutionResult$EndTime": "

The time the Maintenance Window finished executing.

", + "GetMaintenanceWindowExecutionTaskInvocationResult$StartTime": "

The time that the task started executing on the target.

", + "GetMaintenanceWindowExecutionTaskInvocationResult$EndTime": "

The time that the task finished executing on the target.

", "GetMaintenanceWindowExecutionTaskResult$StartTime": "

The time the task execution started.

", "GetMaintenanceWindowExecutionTaskResult$EndTime": "

The time the task execution completed.

", "GetMaintenanceWindowResult$CreatedDate": "

The date the Maintenance Window was created.

", @@ -761,6 +1053,8 @@ "InstanceInformation$RegistrationDate": "

The date the server or VM was registered with AWS as a managed instance.

", "InstanceInformation$LastAssociationExecutionDate": "

The date the association was last executed.

", "InstanceInformation$LastSuccessfulAssociationExecutionDate": "

The last date the association was successfully run.

", + "InstancePatchState$OperationStartTime": "

The time the most recent patching operation was started on the instance.

", + "InstancePatchState$OperationEndTime": "

The time the most recent patching operation completed on the instance.

", "MaintenanceWindowExecution$StartTime": "

The time the execution started.

", "MaintenanceWindowExecution$EndTime": "

The time the execution finished.

", "MaintenanceWindowExecutionTaskIdentity$StartTime": "

The time the task execution started.

", @@ -770,6 +1064,7 @@ "ParameterHistory$LastModifiedDate": "

Date the parameter was last changed or updated.

", "ParameterMetadata$LastModifiedDate": "

Date the parameter was last changed or updated.

", "Patch$ReleaseDate": "

The date the patch was released.

", + "PatchComplianceData$InstalledTime": "

The date/time the patch was installed on the instance. Note that not all operating systems provide this level of information.

", "PatchStatus$ApprovalDate": "

The date the patch was approved (or will be approved if the status is PENDING_APPROVAL).

", "StepExecution$ExecutionStartTime": "

If a step has begun execution, this contains the time the step started. If the step is in Pending status, this field is not populated.

", "StepExecution$ExecutionEndTime": "

If a step has finished execution, this contains the time the execution ended. If the step has not yet concluded, this field is not populated.

", @@ -780,7 +1075,7 @@ "DefaultBaseline": { "base": null, "refs": { - "PatchBaselineIdentity$DefaultBaseline": "

Whether this is the default baseline.

" + "PatchBaselineIdentity$DefaultBaseline": "

Whether this is the default baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.

" } }, "DefaultInstanceName": { @@ -958,6 +1253,16 @@ "refs": { } }, + "DescribeAutomationStepExecutionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeAutomationStepExecutionsResult": { + "base": null, + "refs": { + } + }, "DescribeAvailablePatchesRequest": { "base": null, "refs": { @@ -1167,11 +1472,11 @@ "DocumentARN": { "base": null, "refs": { - "DescribeDocumentRequest$Name": "

The name of the SSM document.

", - "DocumentDescription$Name": "

The name of the SSM document.

", - "DocumentIdentifier$Name": "

The name of the SSM document.

", - "GetDocumentRequest$Name": "

The name of the SSM document.

", - "GetDocumentResult$Name": "

The name of the SSM document.

", + "DescribeDocumentRequest$Name": "

The name of the Systems Manager document.

", + "DocumentDescription$Name": "

The name of the Systems Manager document.

", + "DocumentIdentifier$Name": "

The name of the Systems Manager document.

", + "GetDocumentRequest$Name": "

The name of the Systems Manager document.

", + "GetDocumentResult$Name": "

The name of the Systems Manager document.

", "SendCommandRequest$DocumentName": "

Required. The name of the Systems Manager document to execute. This can be a public document or a custom document.

", "StartAutomationExecutionRequest$DocumentName": "

The name of the Automation document to use for this execution.

" } @@ -1184,8 +1489,8 @@ "DocumentContent": { "base": null, "refs": { - "CreateDocumentRequest$Content": "

A valid JSON string.

", - "GetDocumentResult$Content": "

The contents of the SSM document.

", + "CreateDocumentRequest$Content": "

A valid JSON or YAML string.

", + "GetDocumentResult$Content": "

The contents of the Systems Manager document.

", "InstanceAssociation$Content": "

The content of the association document for the instance(s).

", "UpdateDocumentRequest$Content": "

The content in a document that you want to update.

" } @@ -1197,10 +1502,10 @@ } }, "DocumentDescription": { - "base": "

Describes an SSM document.

", + "base": "

Describes a Systems Manager document.

", "refs": { "CreateDocumentResult$DocumentDescription": "

Information about the Systems Manager document.

", - "DescribeDocumentResult$Document": "

Information about the SSM document.

", + "DescribeDocumentResult$Document": "

Information about the Systems Manager document.

", "UpdateDocumentResult$DocumentDescription": "

A description of the document that was updated.

" } }, @@ -1228,10 +1533,23 @@ "DocumentFilter$value": "

The value of the filter.

" } }, + "DocumentFormat": { + "base": null, + "refs": { + "CreateDocumentRequest$DocumentFormat": "

Specify the document format for the request. The document format can be either JSON or YAML. JSON is the default format.

", + "DocumentDescription$DocumentFormat": "

The document format, either JSON or YAML.

", + "DocumentIdentifier$DocumentFormat": "

The document format, either JSON or YAML.

", + "DocumentVersionInfo$DocumentFormat": "

The document format, either JSON or YAML.

", + "GetDocumentRequest$DocumentFormat": "

Returns the document in the specified format. The document format can be either JSON or YAML. JSON is the default format.

", + "GetDocumentResult$DocumentFormat": "

The document format, either JSON or YAML.

", + "UpdateDocumentRequest$DocumentFormat": "

Specify the document format for the new document version. Systems Manager supports JSON and YAML documents. JSON is the default format.

" + } + }, "DocumentHash": { "base": null, "refs": { "DocumentDescription$Hash": "

The Sha256 or Sha1 hash created by the system when the document was created.

Sha1 hashes have been deprecated.

", + "MaintenanceWindowRunCommandParameters$DocumentHash": "

The SHA-256 or SHA-1 hash created by the system when the document was created. SHA-1 hashes have been deprecated.

", "SendCommandRequest$DocumentHash": "

The Sha256 or Sha1 hash created by the system when the document was created.

Sha1 hashes have been deprecated.

" } }, @@ -1239,11 +1557,12 @@ "base": null, "refs": { "DocumentDescription$HashType": "

Sha256 or Sha1.

Sha1 hashes have been deprecated.

", + "MaintenanceWindowRunCommandParameters$DocumentHashType": "

SHA-256 or SHA-1. SHA-1 hashes have been deprecated.

", "SendCommandRequest$DocumentHashType": "

Sha256 or Sha1.

Sha1 hashes have been deprecated.

" } }, "DocumentIdentifier": { - "base": "

Describes the name of an SSM document.

", + "base": "

Describes the name of a Systems Manager document.

", "refs": { "DocumentIdentifierList$member": null } @@ -1251,19 +1570,50 @@ "DocumentIdentifierList": { "base": null, "refs": { - "ListDocumentsResult$DocumentIdentifiers": "

The names of the SSM documents.

" + "ListDocumentsResult$DocumentIdentifiers": "

The names of the Systems Manager documents.

" + } + }, + "DocumentKeyValuesFilter": { + "base": "

One or more filters. Use a filter to return a more specific list of documents.

For keys, you can specify one or more tags that have been applied to a document.

Other valid values include Owner, Name, PlatformTypes, and DocumentType.

Note that only one Owner can be specified in a request. For example: Key=Owner,Values=Self.

If you use Name as a key, you can use a name prefix to return a list of documents. For example, in the AWS CLI, to return a list of all documents that begin with Te, run the following command:

aws ssm list-documents --filters Key=Name,Values=Te

If you specify more than two keys, only documents that are identified by all the tags are returned in the results. If you specify more than two values for a key, documents that are identified by any of the values are returned in the results.

To specify a custom key and value pair, use the format Key=tag:[tagName],Values=[valueName].

For example, if you created a Key called region and are using the AWS CLI to call the list-documents command:

aws ssm list-documents --filters Key=tag:region,Values=east,west Key=Owner,Values=Self

", + "refs": { + "DocumentKeyValuesFilterList$member": null + } + }, + "DocumentKeyValuesFilterKey": { + "base": null, + "refs": { + "DocumentKeyValuesFilter$Key": "

The name of the filter key.

" + } + }, + "DocumentKeyValuesFilterList": { + "base": null, + "refs": { + "ListDocumentsRequest$Filters": "

One or more filters. Use a filter to return a more specific list of results.

" + } + }, + "DocumentKeyValuesFilterValue": { + "base": null, + "refs": { + "DocumentKeyValuesFilterValues$member": null + } + }, + "DocumentKeyValuesFilterValues": { + "base": null, + "refs": { + "DocumentKeyValuesFilter$Values": "

The value for the filter key.

" } }, "DocumentLimitExceeded": { - "base": "

You can have at most 200 active SSM documents.

", + "base": "

You can have at most 200 active Systems Manager documents.

", "refs": { } }, "DocumentName": { "base": null, "refs": { - "Association$Name": "

The name of the SSM document.

", - "AssociationDescription$Name": "

The name of the SSM document.

", + "Association$Name": "

The name of the Systems Manager document.

", + "AssociationDescription$Name": "

The name of the Systems Manager document.

", + "AssociationVersionInfo$Name": "

The name specified when the association was created.

", "AutomationExecution$DocumentName": "

The name of the Automation document used during the execution.

", "AutomationExecutionMetadata$DocumentName": "

The name of the Automation document used during execution.

", "Command$DocumentName": "

The name of the document requested for execution.

", @@ -1273,7 +1623,7 @@ "CreateDocumentRequest$Name": "

A name for the Systems Manager document.

", "DeleteAssociationRequest$Name": "

The name of the Systems Manager document.

", "DeleteDocumentRequest$Name": "

The name of the document.

", - "DescribeAssociationRequest$Name": "

The name of the SSM document.

", + "DescribeAssociationRequest$Name": "

The name of the Systems Manager document.

", "DescribeDocumentPermissionRequest$Name": "

The name of the document for which you are the owner.

", "DocumentDefaultVersionDescription$Name": "

The name of the document.

", "DocumentVersionInfo$Name": "

The document name.

", @@ -1282,7 +1632,7 @@ "ListDocumentVersionsRequest$Name": "

The name of the document about which you want version information.

", "ModifyDocumentPermissionRequest$Name": "

The name of the document that you want to share.

", "UpdateAssociationRequest$Name": "

The name of the association document.

", - "UpdateAssociationStatusRequest$Name": "

The name of the SSM document.

", + "UpdateAssociationStatusRequest$Name": "

The name of the Systems Manager document.

", "UpdateDocumentDefaultVersionRequest$Name": "

The name of a custom document that you want to set as the default version.

", "UpdateDocumentRequest$Name": "

The name of the document that you want to update.

" } @@ -1290,8 +1640,8 @@ "DocumentOwner": { "base": null, "refs": { - "DocumentDescription$Owner": "

The AWS user account of the person who created the document.

", - "DocumentIdentifier$Owner": "

The AWS user account of the person who created the document.

" + "DocumentDescription$Owner": "

The AWS user account that created the document.

", + "DocumentIdentifier$Owner": "

The AWS user account that created the document.

" } }, "DocumentParameter": { @@ -1352,13 +1702,13 @@ "DocumentSha1": { "base": null, "refs": { - "DocumentDescription$Sha1": "

The SHA1 hash of the document, which you can use for verification purposes.

" + "DocumentDescription$Sha1": "

The SHA1 hash of the document, which you can use for verification.

" } }, "DocumentStatus": { "base": null, "refs": { - "DocumentDescription$Status": "

The status of the SSM document.

" + "DocumentDescription$Status": "

The status of the Systems Manager document.

" } }, "DocumentType": { @@ -1375,6 +1725,7 @@ "refs": { "Association$DocumentVersion": "

The version of the document used in the association.

", "AssociationDescription$DocumentVersion": "

The document version.

", + "AssociationVersionInfo$DocumentVersion": "

The version of a Systems Manager document used when the association version was created.

", "AutomationExecution$DocumentVersion": "

The version of the document to use during execution.

", "AutomationExecutionMetadata$DocumentVersion": "

The document version used during the execution.

", "CreateAssociationBatchRequestEntry$DocumentVersion": "

The document version.

", @@ -1389,6 +1740,7 @@ "GetDocumentRequest$DocumentVersion": "

The document version for which you want information.

", "GetDocumentResult$DocumentVersion": "

The document version.

", "InstanceAssociationStatusInfo$DocumentVersion": "

The association document verions.

", + "MaintenanceWindowAutomationParameters$DocumentVersion": "

The version of an Automation document to use during task execution.

", "StartAutomationExecutionRequest$DocumentVersion": "

The version of the Automation document to use for this execution.

", "UpdateAssociationRequest$DocumentVersion": "

The document version you want update for the association.

", "UpdateDocumentRequest$DocumentVersion": "

The version of the document that you want to update.

" @@ -1456,6 +1808,14 @@ "Command$ErrorCount": "

The number of targets for which the status is Failed or Execution Timed Out.

" } }, + "ExecutionMode": { + "base": null, + "refs": { + "AutomationExecution$Mode": "

The automation execution mode.

", + "AutomationExecutionMetadata$Mode": "

The Automation execution mode.

", + "StartAutomationExecutionRequest$Mode": "

The execution mode of the automation. Valid modes include the following: Auto and Interactive. The default mode is Auto.

" + } + }, "ExpirationDate": { "base": null, "refs": { @@ -1487,6 +1847,11 @@ "FailedCreateAssociation$Fault": "

The source of the failure.

" } }, + "FeatureNotAvailableException": { + "base": "

You attempted to register a LAMBDA or STEP_FUNCTION task in a region where the corresponding service is not available.

", + "refs": { + } + }, "GetAutomationExecutionRequest": { "base": null, "refs": { @@ -1573,6 +1938,16 @@ "refs": { } }, + "GetMaintenanceWindowExecutionTaskInvocationRequest": { + "base": null, + "refs": { + } + }, + "GetMaintenanceWindowExecutionTaskInvocationResult": { + "base": null, + "refs": { + } + }, "GetMaintenanceWindowExecutionTaskRequest": { "base": null, "refs": { @@ -1593,6 +1968,16 @@ "refs": { } }, + "GetMaintenanceWindowTaskRequest": { + "base": null, + "refs": { + } + }, + "GetMaintenanceWindowTaskResult": { + "base": null, + "refs": { + } + }, "GetParameterHistoryRequest": { "base": null, "refs": { @@ -1684,6 +2069,12 @@ "UpdateManagedInstanceRoleRequest$IamRole": "

The IAM role you want to assign or change.

" } }, + "IdempotencyToken": { + "base": null, + "refs": { + "StartAutomationExecutionRequest$ClientToken": "

User-provided idempotency token. The token must be unique, is case insensitive, enforces the UUID format, and can't be reused.

" + } + }, "IdempotentParameterMismatch": { "base": "

Error returned when an idempotent operation is retried and the parameters don't match the original call to the API with the same idempotency token.

", "refs": { @@ -1717,6 +2108,7 @@ "base": "

An Amazon S3 bucket where you want to store the results of this request.

", "refs": { "AssociationDescription$OutputLocation": "

An Amazon S3 bucket where you want to store the output details of the request.

", + "AssociationVersionInfo$OutputLocation": "

The location in Amazon S3 specified for the association when the association version was created.

", "CreateAssociationBatchRequestEntry$OutputLocation": "

An Amazon S3 bucket where you want to store the results of this request.

", "CreateAssociationRequest$OutputLocation": "

An Amazon S3 bucket where you want to store the output details of the request.

", "UpdateAssociationRequest$OutputLocation": "

An Amazon S3 bucket where you want to store the results of this request.

" @@ -1922,7 +2314,8 @@ "DescribePatchGroupStateResult$InstancesWithInstalledOtherPatches": "

The number of instances with patches installed that aren't defined in the patch baseline.

", "DescribePatchGroupStateResult$InstancesWithMissingPatches": "

The number of instances with missing patches from the patch baseline.

", "DescribePatchGroupStateResult$InstancesWithFailedPatches": "

The number of instances with patches from the patch baseline that failed to install.

", - "DescribePatchGroupStateResult$InstancesWithNotApplicablePatches": "

The number of instances with patches that aren't applicable.

" + "DescribePatchGroupStateResult$InstancesWithNotApplicablePatches": "

The number of instances with patches that aren't applicable.

", + "StepExecution$MaxAttempts": "

The maximum number of tries to run the action of the step. The default value is 1.

" } }, "InternalServerError": { @@ -1945,11 +2338,26 @@ "refs": { } }, + "InvalidAssociationVersion": { + "base": "

The version you specified is not valid. Use ListAssociationVersions to view all versions of an association according to the association ID. Or, use the $LATEST parameter to view the latest version of the association.

", + "refs": { + } + }, "InvalidAutomationExecutionParametersException": { "base": "

The supplied parameters for invoking the specified Automation document are incorrect. For example, they may not match the set of parameters permitted for the specified Automation document.

", "refs": { } }, + "InvalidAutomationSignalException": { + "base": "

The signal is not valid for the current Automation execution.

", + "refs": { + } + }, + "InvalidAutomationStatusUpdateException": { + "base": "

The specified update status operation is not valid.

", + "refs": { + } + }, "InvalidCommandId": { "base": null, "refs": { @@ -2010,6 +2418,11 @@ "refs": { } }, + "InvalidInventoryItemContextException": { + "base": "

You specified invalid keys or values in the Context attribute for InventoryItem. Verify the keys and values, and try again.

", + "refs": { + } + }, "InvalidItemContentException": { "base": "

One or more content items is not valid.

", "refs": { @@ -2041,7 +2454,7 @@ } }, "InvalidParameters": { - "base": "

You must specify values for all required parameters in the SSM document. You can only supply values to parameters defined in the SSM document.

", + "base": "

You must specify values for all required parameters in the Systems Manager document. You can only supply values to parameters defined in the Systems Manager document.

", "refs": { } }, @@ -2061,7 +2474,7 @@ } }, "InvalidResourceType": { - "base": "

The resource type is not valid. If you are attempting to tag an instance, the instance must be a registered, managed instance.

", + "base": "

The resource type is not valid. For example, if you are attempting to tag an instance, the instance must be a registered, managed instance.

", "refs": { } }, @@ -2071,7 +2484,7 @@ } }, "InvalidRole": { - "base": "

The role name can't contain invalid characters. Also verify that you specified an IAM role for notifications that includes the required trust policy. For information about configuring the IAM role for Run Command notifications, see Configuring Amazon SNS Notifications for Run Command in the Amazon EC2 Systems Manager User Guide.

", + "base": "

The role name can't contain invalid characters. Also verify that you specified an IAM role for notifications that includes the required trust policy. For information about configuring the IAM role for Run Command notifications, see Configuring Amazon SNS Notifications for Run Command in the AWS Systems Manager User Guide.

", "refs": { } }, @@ -2095,6 +2508,25 @@ "refs": { } }, + "InventoryAggregator": { + "base": "

Specifies the inventory type and attribute for the aggregation execution.

", + "refs": { + "InventoryAggregatorList$member": null + } + }, + "InventoryAggregatorExpression": { + "base": null, + "refs": { + "InventoryAggregator$Expression": "

The inventory type and attribute name for aggregation.

" + } + }, + "InventoryAggregatorList": { + "base": null, + "refs": { + "GetInventoryRequest$Aggregators": "

Returns counts of inventory types based on one or more expressions. For example, if you aggregate by using an expression that uses the AWS:InstanceInformation.PlatformType type, you can see a count of how many Windows and Linux instances exist in your inventoried fleet.

", + "InventoryAggregator$Aggregators": "

Nested aggregators to further refine aggregation for an inventory type.

" + } + }, "InventoryAttributeDataType": { "base": null, "refs": { @@ -2164,6 +2596,12 @@ "ListInventoryEntriesResult$CaptureTime": "

The time that inventory information was collected for the instance(s).

" } }, + "InventoryItemContentContext": { + "base": null, + "refs": { + "InventoryItem$Context": "

A map of associated properties for a specified inventory type. For example, with this attribute, you can specify the ExecutionId, ExecutionType, ComplianceType properties of the AWS:ComplianceItem type.

" + } + }, "InventoryItemContentHash": { "base": null, "refs": { @@ -2223,7 +2661,8 @@ "ItemSizeLimitExceededException$TypeName": null, "ListInventoryEntriesRequest$TypeName": "

The type of inventory item for which you want information.

", "ListInventoryEntriesResult$TypeName": "

The type of inventory item returned by the request.

", - "ResultAttribute$TypeName": "

Name of the inventory item type. Valid value: AWS:InstanceInformation. Default Value: AWS:InstanceInformation.

" + "ResultAttribute$TypeName": "

Name of the inventory item type. Valid value: AWS:InstanceInformation. Default Value: AWS:InstanceInformation.

", + "UnsupportedInventoryItemContextException$TypeName": null } }, "InventoryItemTypeNameFilter": { @@ -2271,7 +2710,13 @@ "InventoryResultItemMap": { "base": null, "refs": { - "InventoryResultEntity$Data": "

The data section in the inventory result entity json.

" + "InventoryResultEntity$Data": "

The data section in the inventory result entity JSON.

" + } + }, + "InventoryTypeDisplayName": { + "base": null, + "refs": { + "InventoryItemSchema$DisplayName": "

The alias name of the inventory type. The alias name is used for display purposes.

" } }, "InvocationDoesNotExist": { @@ -2285,6 +2730,12 @@ "CommandInvocation$TraceOutput": "

Gets the trace output sent by the agent.

" } }, + "IsSubTypeSchema": { + "base": null, + "refs": { + "GetInventorySchemaRequest$SubType": "

Returns the sub-type schema for a specified inventory type.

" + } + }, "ItemContentMismatchException": { "base": "

The inventory item has invalid content.

", "refs": { @@ -2319,6 +2770,16 @@ "ResourceDataSyncItem$LastSuccessfulSyncTime": "

The last time the sync operations returned a status of SUCCESSFUL (UTC).

" } }, + "ListAssociationVersionsRequest": { + "base": null, + "refs": { + } + }, + "ListAssociationVersionsResult": { + "base": null, + "refs": { + } + }, "ListAssociationsRequest": { "base": null, "refs": { @@ -2349,6 +2810,26 @@ "refs": { } }, + "ListComplianceItemsRequest": { + "base": null, + "refs": { + } + }, + "ListComplianceItemsResult": { + "base": null, + "refs": { + } + }, + "ListComplianceSummariesRequest": { + "base": null, + "refs": { + } + }, + "ListComplianceSummariesResult": { + "base": null, + "refs": { + } + }, "ListDocumentVersionsRequest": { "base": null, "refs": { @@ -2379,6 +2860,16 @@ "refs": { } }, + "ListResourceComplianceSummariesRequest": { + "base": null, + "refs": { + } + }, + "ListResourceComplianceSummariesResult": { + "base": null, + "refs": { + } + }, "ListResourceDataSyncRequest": { "base": null, "refs": { @@ -2402,19 +2893,34 @@ "LoggingInfo": { "base": "

Information about an Amazon S3 bucket to write instance-level logs to.

", "refs": { + "GetMaintenanceWindowTaskResult$LoggingInfo": "

The location in Amazon S3 where the task results are logged.

", "MaintenanceWindowTask$LoggingInfo": "

Information about an Amazon S3 bucket to write task-level logs to.

", - "RegisterTaskWithMaintenanceWindowRequest$LoggingInfo": "

A structure containing information about an Amazon S3 bucket to write instance-level logs to.

" + "RegisterTaskWithMaintenanceWindowRequest$LoggingInfo": "

A structure containing information about an Amazon S3 bucket to write instance-level logs to.

", + "UpdateMaintenanceWindowTaskRequest$LoggingInfo": "

The new logging location in Amazon S3 to specify.

", + "UpdateMaintenanceWindowTaskResult$LoggingInfo": "

The updated logging information in Amazon S3.

" + } + }, + "Long": { + "base": null, + "refs": { + "StepExecution$TimeoutSeconds": "

The timeout seconds of the step.

" } }, "MaintenanceWindowAllowUnassociatedTargets": { "base": null, "refs": { - "CreateMaintenanceWindowRequest$AllowUnassociatedTargets": "

Whether targets must be registered with the Maintenance Window before tasks can be defined for those targets.

", + "CreateMaintenanceWindowRequest$AllowUnassociatedTargets": "

Enables a Maintenance Window task to execute on managed instances, even if you have not registered those instances as targets. If enabled, then you must specify the unregistered instances (by instance ID) when you register a task with the Maintenance Window

If you don't enable this option, then you must specify previously-registered targets when you register a task with the Maintenance Window.

", "GetMaintenanceWindowResult$AllowUnassociatedTargets": "

Whether targets must be registered with the Maintenance Window before tasks can be defined for those targets.

", "UpdateMaintenanceWindowRequest$AllowUnassociatedTargets": "

Whether targets must be registered with the Maintenance Window before tasks can be defined for those targets.

", "UpdateMaintenanceWindowResult$AllowUnassociatedTargets": "

Whether targets must be registered with the Maintenance Window before tasks can be defined for those targets.

" } }, + "MaintenanceWindowAutomationParameters": { + "base": "

The parameters for an AUTOMATION task type.

", + "refs": { + "MaintenanceWindowTaskInvocationParameters$Automation": "

The parameters for a AUTOMATION task type.

" + } + }, "MaintenanceWindowCutoff": { "base": null, "refs": { @@ -2425,6 +2931,25 @@ "UpdateMaintenanceWindowResult$Cutoff": "

The number of hours before the end of the Maintenance Window that Systems Manager stops scheduling new tasks for execution.

" } }, + "MaintenanceWindowDescription": { + "base": null, + "refs": { + "CreateMaintenanceWindowRequest$Description": "

An optional description for the Maintenance Window. We recommend specifying a description to help you organize your Maintenance Windows.

", + "GetMaintenanceWindowResult$Description": "

The description of the Maintenance Window.

", + "GetMaintenanceWindowTaskResult$Description": "

The retrieved task description.

", + "MaintenanceWindowIdentity$Description": "

A description of the Maintenance Window.

", + "MaintenanceWindowTarget$Description": "

A description of the target.

", + "MaintenanceWindowTask$Description": "

A description of the task.

", + "RegisterTargetWithMaintenanceWindowRequest$Description": "

An optional description for the target.

", + "RegisterTaskWithMaintenanceWindowRequest$Description": "

An optional description for the task.

", + "UpdateMaintenanceWindowRequest$Description": "

An optional description for the update request.

", + "UpdateMaintenanceWindowResult$Description": "

An optional description of the update.

", + "UpdateMaintenanceWindowTargetRequest$Description": "

An optional description for the update.

", + "UpdateMaintenanceWindowTargetResult$Description": "

The updated description.

", + "UpdateMaintenanceWindowTaskRequest$Description": "

The new task description to specify.

", + "UpdateMaintenanceWindowTaskResult$Description": "

The updated task description.

" + } + }, "MaintenanceWindowDurationHours": { "base": null, "refs": { @@ -2457,6 +2982,8 @@ "DescribeMaintenanceWindowExecutionTasksRequest$WindowExecutionId": "

The ID of the Maintenance Window execution whose task executions should be retrieved.

", "GetMaintenanceWindowExecutionRequest$WindowExecutionId": "

The ID of the Maintenance Window execution that includes the task.

", "GetMaintenanceWindowExecutionResult$WindowExecutionId": "

The ID of the Maintenance Window execution.

", + "GetMaintenanceWindowExecutionTaskInvocationRequest$WindowExecutionId": "

The ID of the Maintenance Window execution for which the task is a part.

", + "GetMaintenanceWindowExecutionTaskInvocationResult$WindowExecutionId": "

The Maintenance Window execution ID.

", "GetMaintenanceWindowExecutionTaskRequest$WindowExecutionId": "

The ID of the Maintenance Window execution that includes the task.

", "GetMaintenanceWindowExecutionTaskResult$WindowExecutionId": "

The ID of the Maintenance Window execution that includes the task.

", "MaintenanceWindowExecution$WindowExecutionId": "

The ID of the Maintenance Window execution.

", @@ -2474,6 +3001,7 @@ "base": null, "refs": { "GetMaintenanceWindowExecutionResult$Status": "

The status of the Maintenance Window execution.

", + "GetMaintenanceWindowExecutionTaskInvocationResult$Status": "

The task status for an invocation.

", "GetMaintenanceWindowExecutionTaskResult$Status": "

The status of the task.

", "MaintenanceWindowExecution$Status": "

The status of the execution.

", "MaintenanceWindowExecutionTaskIdentity$Status": "

The status of the task execution.

", @@ -2484,6 +3012,7 @@ "base": null, "refs": { "GetMaintenanceWindowExecutionResult$StatusDetails": "

The details explaining the Status. Only available for certain status values.

", + "GetMaintenanceWindowExecutionTaskInvocationResult$StatusDetails": "

The details explaining the status. Details are only available for certain status values.

", "GetMaintenanceWindowExecutionTaskResult$StatusDetails": "

The details explaining the Status. Only available for certain status values.

", "MaintenanceWindowExecution$StatusDetails": "

The details explaining the Status. Only available for certain status values.

", "MaintenanceWindowExecutionTaskIdentity$StatusDetails": "

The details explaining the status of the task execution. Only available for certain status values.

", @@ -2493,6 +3022,7 @@ "MaintenanceWindowExecutionTaskExecutionId": { "base": null, "refs": { + "GetMaintenanceWindowExecutionTaskInvocationResult$ExecutionId": "

The execution ID.

", "MaintenanceWindowExecutionTaskInvocationIdentity$ExecutionId": "

The ID of the action performed in the service that actually handled the task invocation. If the task type is RUN_COMMAND, this value is the command ID.

" } }, @@ -2500,6 +3030,8 @@ "base": null, "refs": { "DescribeMaintenanceWindowExecutionTaskInvocationsRequest$TaskId": "

The ID of the specific task in the Maintenance Window task that should be retrieved.

", + "GetMaintenanceWindowExecutionTaskInvocationRequest$TaskId": "

The ID of the specific task in the Maintenance Window task that should be retrieved.

", + "GetMaintenanceWindowExecutionTaskInvocationResult$TaskExecutionId": "

The task execution ID.

", "GetMaintenanceWindowExecutionTaskRequest$TaskId": "

The ID of the specific task execution in the Maintenance Window task that should be retrieved.

", "GetMaintenanceWindowExecutionTaskResult$TaskExecutionId": "

The ID of the specific task execution in the Maintenance Window task that was retrieved.

", "MaintenanceWindowExecutionTaskIdList$member": null, @@ -2528,6 +3060,8 @@ "MaintenanceWindowExecutionTaskInvocationId": { "base": null, "refs": { + "GetMaintenanceWindowExecutionTaskInvocationRequest$InvocationId": "

The invocation ID to retrieve.

", + "GetMaintenanceWindowExecutionTaskInvocationResult$InvocationId": "

The invocation ID.

", "MaintenanceWindowExecutionTaskInvocationIdentity$InvocationId": "

The ID of the task invocation.

" } }, @@ -2546,6 +3080,7 @@ "MaintenanceWindowExecutionTaskInvocationParameters": { "base": null, "refs": { + "GetMaintenanceWindowExecutionTaskInvocationResult$Parameters": "

The parameters used at the time that the task executed.

", "MaintenanceWindowExecutionTaskInvocationIdentity$Parameters": "

The parameters that were provided for the invocation when it was executed.

" } }, @@ -2599,6 +3134,8 @@ "DescribeMaintenanceWindowTasksRequest$WindowId": "

The ID of the Maintenance Window whose tasks should be retrieved.

", "GetMaintenanceWindowRequest$WindowId": "

The ID of the desired Maintenance Window.

", "GetMaintenanceWindowResult$WindowId": "

The ID of the created Maintenance Window.

", + "GetMaintenanceWindowTaskRequest$WindowId": "

The Maintenance Window ID that includes the task to retrieve.

", + "GetMaintenanceWindowTaskResult$WindowId": "

The retrieved Maintenance Window ID.

", "MaintenanceWindowExecution$WindowId": "

The ID of the Maintenance Window.

", "MaintenanceWindowIdentity$WindowId": "

The ID of the Maintenance Window.

", "MaintenanceWindowTarget$WindowId": "

The Maintenance Window ID where the target is registered.

", @@ -2606,7 +3143,11 @@ "RegisterTargetWithMaintenanceWindowRequest$WindowId": "

The ID of the Maintenance Window the target should be registered with.

", "RegisterTaskWithMaintenanceWindowRequest$WindowId": "

The id of the Maintenance Window the task should be added to.

", "UpdateMaintenanceWindowRequest$WindowId": "

The ID of the Maintenance Window to update.

", - "UpdateMaintenanceWindowResult$WindowId": "

The ID of the created Maintenance Window.

" + "UpdateMaintenanceWindowResult$WindowId": "

The ID of the created Maintenance Window.

", + "UpdateMaintenanceWindowTargetRequest$WindowId": "

The Maintenance Window ID with which to modify the target.

", + "UpdateMaintenanceWindowTargetResult$WindowId": "

The Maintenance Window ID specified in the update request.

", + "UpdateMaintenanceWindowTaskRequest$WindowId": "

The Maintenance Window ID that contains the task to modify.

", + "UpdateMaintenanceWindowTaskResult$WindowId": "

The ID of the Maintenance Window that was updated.

" } }, "MaintenanceWindowIdentity": { @@ -2621,6 +3162,30 @@ "DescribeMaintenanceWindowsResult$WindowIdentities": "

Information about the Maintenance Windows.

" } }, + "MaintenanceWindowLambdaClientContext": { + "base": null, + "refs": { + "MaintenanceWindowLambdaParameters$ClientContext": "

Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.

" + } + }, + "MaintenanceWindowLambdaParameters": { + "base": "

The parameters for a LAMBDA task type.

", + "refs": { + "MaintenanceWindowTaskInvocationParameters$Lambda": "

The parameters for a LAMBDA task type.

" + } + }, + "MaintenanceWindowLambdaPayload": { + "base": null, + "refs": { + "MaintenanceWindowLambdaParameters$Payload": "

JSON to provide to your Lambda function as input.

" + } + }, + "MaintenanceWindowLambdaQualifier": { + "base": null, + "refs": { + "MaintenanceWindowLambdaParameters$Qualifier": "

(Optional) Specify a Lambda function version or alias name. If you specify a function version, the action uses the qualified function ARN to invoke a specific Lambda function. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version to which the alias points.

" + } + }, "MaintenanceWindowMaxResults": { "base": null, "refs": { @@ -2637,9 +3202,18 @@ "refs": { "CreateMaintenanceWindowRequest$Name": "

The name of the Maintenance Window.

", "GetMaintenanceWindowResult$Name": "

The name of the Maintenance Window.

", + "GetMaintenanceWindowTaskResult$Name": "

The retrieved task name.

", "MaintenanceWindowIdentity$Name": "

The name of the Maintenance Window.

", + "MaintenanceWindowTarget$Name": "

The target name.

", + "MaintenanceWindowTask$Name": "

The task name.

", + "RegisterTargetWithMaintenanceWindowRequest$Name": "

An optional name for the target.

", + "RegisterTaskWithMaintenanceWindowRequest$Name": "

An optional name for the task.

", "UpdateMaintenanceWindowRequest$Name": "

The name of the Maintenance Window.

", - "UpdateMaintenanceWindowResult$Name": "

The name of the Maintenance Window.

" + "UpdateMaintenanceWindowResult$Name": "

The name of the Maintenance Window.

", + "UpdateMaintenanceWindowTargetRequest$Name": "

A name for the update.

", + "UpdateMaintenanceWindowTargetResult$Name": "

The updated name.

", + "UpdateMaintenanceWindowTaskRequest$Name": "

The new task name to specify.

", + "UpdateMaintenanceWindowTaskResult$Name": "

The updated task name.

" } }, "MaintenanceWindowResourceType": { @@ -2649,6 +3223,12 @@ "RegisterTargetWithMaintenanceWindowRequest$ResourceType": "

The type of target being registered with the Maintenance Window.

" } }, + "MaintenanceWindowRunCommandParameters": { + "base": "

The parameters for a RUN_COMMAND task type.

", + "refs": { + "MaintenanceWindowTaskInvocationParameters$RunCommand": "

The parameters for a RUN_COMMAND task type.

" + } + }, "MaintenanceWindowSchedule": { "base": null, "refs": { @@ -2658,6 +3238,24 @@ "UpdateMaintenanceWindowResult$Schedule": "

The schedule of the Maintenance Window in the form of a cron or rate expression.

" } }, + "MaintenanceWindowStepFunctionsInput": { + "base": null, + "refs": { + "MaintenanceWindowStepFunctionsParameters$Input": "

The inputs for the STEP_FUNCTION task.

" + } + }, + "MaintenanceWindowStepFunctionsName": { + "base": null, + "refs": { + "MaintenanceWindowStepFunctionsParameters$Name": "

The name of the STEP_FUNCTION task.

" + } + }, + "MaintenanceWindowStepFunctionsParameters": { + "base": "

The parameters for the STEP_FUNCTION execution.

", + "refs": { + "MaintenanceWindowTaskInvocationParameters$StepFunctions": "

The parameters for a STEP_FUNCTION task type.

" + } + }, "MaintenanceWindowTarget": { "base": "

The target registered with the Maintenance Window.

", "refs": { @@ -2670,7 +3268,9 @@ "DeregisterTargetFromMaintenanceWindowRequest$WindowTargetId": "

The ID of the target definition to remove.

", "DeregisterTargetFromMaintenanceWindowResult$WindowTargetId": "

The ID of the removed target definition.

", "MaintenanceWindowTarget$WindowTargetId": "

The ID of the target.

", - "RegisterTargetWithMaintenanceWindowResult$WindowTargetId": "

The ID of the target definition in this Maintenance Window.

" + "RegisterTargetWithMaintenanceWindowResult$WindowTargetId": "

The ID of the target definition in this Maintenance Window.

", + "UpdateMaintenanceWindowTargetRequest$WindowTargetId": "

The target ID to modify.

", + "UpdateMaintenanceWindowTargetResult$WindowTargetId": "

The target ID specified in the update request.

" } }, "MaintenanceWindowTargetList": { @@ -2689,9 +3289,12 @@ "base": null, "refs": { "GetMaintenanceWindowExecutionTaskResult$TaskArn": "

The ARN of the executed task.

", + "GetMaintenanceWindowTaskResult$TaskArn": "

The resource that the task used during execution. For RUN_COMMAND and AUTOMATION task types, the TaskArn is the Systems Manager Document name/ARN. For LAMBDA tasks, the value is the function name/ARN. For STEP_FUNCTION tasks, the value is the state machine ARN.

", "MaintenanceWindowExecutionTaskIdentity$TaskArn": "

The ARN of the executed task.

", - "MaintenanceWindowTask$TaskArn": "

The ARN of the task to execute.

", - "RegisterTaskWithMaintenanceWindowRequest$TaskArn": "

The ARN of the task to execute

" + "MaintenanceWindowTask$TaskArn": "

The resource that the task uses during execution. For RUN_COMMAND and AUTOMATION task types, TaskArn is the Systems Manager document name or ARN. For LAMBDA tasks, it's the function name or ARN. For STEP_FUNCTION tasks, it's the state machine ARN.

", + "RegisterTaskWithMaintenanceWindowRequest$TaskArn": "

The ARN of the task to execute

", + "UpdateMaintenanceWindowTaskRequest$TaskArn": "

The task ARN to modify.

", + "UpdateMaintenanceWindowTaskResult$TaskArn": "

The updated task ARN value.

" } }, "MaintenanceWindowTaskId": { @@ -2699,8 +3302,21 @@ "refs": { "DeregisterTaskFromMaintenanceWindowRequest$WindowTaskId": "

The ID of the task to remove from the Maintenance Window.

", "DeregisterTaskFromMaintenanceWindowResult$WindowTaskId": "

The ID of the task removed from the Maintenance Window.

", + "GetMaintenanceWindowTaskRequest$WindowTaskId": "

The Maintenance Window task ID to retrieve.

", + "GetMaintenanceWindowTaskResult$WindowTaskId": "

The retrieved Maintenance Window task ID.

", "MaintenanceWindowTask$WindowTaskId": "

The task ID.

", - "RegisterTaskWithMaintenanceWindowResult$WindowTaskId": "

The id of the task in the Maintenance Window.

" + "RegisterTaskWithMaintenanceWindowResult$WindowTaskId": "

The id of the task in the Maintenance Window.

", + "UpdateMaintenanceWindowTaskRequest$WindowTaskId": "

The task ID to modify.

", + "UpdateMaintenanceWindowTaskResult$WindowTaskId": "

The task ID of the Maintenance Window that was updated.

" + } + }, + "MaintenanceWindowTaskInvocationParameters": { + "base": "

The parameters for task execution.

", + "refs": { + "GetMaintenanceWindowTaskResult$TaskInvocationParameters": "

The parameters to pass to the task when it executes.

", + "RegisterTaskWithMaintenanceWindowRequest$TaskInvocationParameters": "

The parameters that the task should use during execution. Populate only the fields that match the task type. All other fields should be empty.

", + "UpdateMaintenanceWindowTaskRequest$TaskInvocationParameters": "

The parameters that the task should use during execution. Populate only the fields that match the task type. All other fields should be empty.

", + "UpdateMaintenanceWindowTaskResult$TaskInvocationParameters": "

The updated parameter values.

" } }, "MaintenanceWindowTaskList": { @@ -2736,9 +3352,12 @@ "MaintenanceWindowTaskParameters": { "base": null, "refs": { + "GetMaintenanceWindowTaskResult$TaskParameters": "

The parameters to pass to the task when it executes.

", "MaintenanceWindowTask$TaskParameters": "

The parameters that should be passed to the task when it is executed.

", "MaintenanceWindowTaskParametersList$member": null, - "RegisterTaskWithMaintenanceWindowRequest$TaskParameters": "

The parameters that should be passed to the task when it is executed.

" + "RegisterTaskWithMaintenanceWindowRequest$TaskParameters": "

The parameters that should be passed to the task when it is executed.

", + "UpdateMaintenanceWindowTaskRequest$TaskParameters": "

The parameters to modify. The map has the following format:

Key: string, between 1 and 255 characters

Value: an array of strings, each string is between 1 and 255 characters

", + "UpdateMaintenanceWindowTaskResult$TaskParameters": "

The updated parameter values.

" } }, "MaintenanceWindowTaskParametersList": { @@ -2751,22 +3370,29 @@ "base": null, "refs": { "GetMaintenanceWindowExecutionTaskResult$Priority": "

The priority of the task.

", - "MaintenanceWindowTask$Priority": "

The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel.

", - "RegisterTaskWithMaintenanceWindowRequest$Priority": "

The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel.

" + "GetMaintenanceWindowTaskResult$Priority": "

The priority of the task when it executes. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.

", + "MaintenanceWindowTask$Priority": "

The priority of the task in the Maintenance Window. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.

", + "RegisterTaskWithMaintenanceWindowRequest$Priority": "

The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel.

", + "UpdateMaintenanceWindowTaskRequest$Priority": "

The new task priority to specify. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.

", + "UpdateMaintenanceWindowTaskResult$Priority": "

The updated priority value.

" } }, "MaintenanceWindowTaskTargetId": { "base": null, "refs": { + "GetMaintenanceWindowExecutionTaskInvocationResult$WindowTargetId": "

The Maintenance Window target ID.

", "MaintenanceWindowExecutionTaskInvocationIdentity$WindowTargetId": "

The ID of the target definition in this Maintenance Window the invocation was performed for.

" } }, "MaintenanceWindowTaskType": { "base": null, "refs": { + "GetMaintenanceWindowExecutionTaskInvocationResult$TaskType": "

Retrieves the task type for a Maintenance Window. Task types include the following: LAMBDA, STEP_FUNCTION, AUTOMATION, RUN_COMMAND.

", "GetMaintenanceWindowExecutionTaskResult$Type": "

The type of task executed.

", + "GetMaintenanceWindowTaskResult$TaskType": "

The type of task to execute.

", "MaintenanceWindowExecutionTaskIdentity$TaskType": "

The type of executed task.

", - "MaintenanceWindowTask$Type": "

The type of task.

", + "MaintenanceWindowExecutionTaskInvocationIdentity$TaskType": "

The task type.

", + "MaintenanceWindowTask$Type": "

The type of task. The type can be one of the following: RUN_COMMAND, AUTOMATION, LAMBDA, or STEP_FUNCTION.

", "RegisterTaskWithMaintenanceWindowRequest$TaskType": "

The type of task being registered.

" } }, @@ -2780,11 +3406,17 @@ "MaxConcurrency": { "base": null, "refs": { + "AutomationExecution$MaxConcurrency": "

The MaxConcurrency value specified by the user when the execution started.

", + "AutomationExecutionMetadata$MaxConcurrency": "

The MaxConcurrency value specified by the user when starting the Automation.

", "Command$MaxConcurrency": "

The maximum number of instances that are allowed to execute the command at the same time. You can specify a number of instances, such as 10, or a percentage of instances, such as 10%. The default value is 50. For more information about how to use MaxConcurrency, see Executing a Command Using Systems Manager Run Command.

", "GetMaintenanceWindowExecutionTaskResult$MaxConcurrency": "

The defined maximum number of task executions that could be run in parallel.

", + "GetMaintenanceWindowTaskResult$MaxConcurrency": "

The maximum number of targets allowed to run this task in parallel.

", "MaintenanceWindowTask$MaxConcurrency": "

The maximum number of targets this task can be run for in parallel.

", "RegisterTaskWithMaintenanceWindowRequest$MaxConcurrency": "

The maximum number of targets this task can be run for in parallel.

", - "SendCommandRequest$MaxConcurrency": "

(Optional) The maximum number of instances that are allowed to execute the command at the same time. You can specify a number such as 10 or a percentage such as 10%. The default value is 50. For more information about how to use MaxConcurrency, see Using Concurrency Controls.

" + "SendCommandRequest$MaxConcurrency": "

(Optional) The maximum number of instances that are allowed to execute the command at the same time. You can specify a number such as 10 or a percentage such as 10%. The default value is 50. For more information about how to use MaxConcurrency, see Using Concurrency Controls.

", + "StartAutomationExecutionRequest$MaxConcurrency": "

The maximum number of targets allowed to run this task in parallel. You can specify a number, such as 10, or a percentage, such as 10%. The default value is 10.

", + "UpdateMaintenanceWindowTaskRequest$MaxConcurrency": "

The new MaxConcurrency value you want to specify. MaxConcurrency is the number of targets that are allowed to run this task in parallel.

", + "UpdateMaintenanceWindowTaskResult$MaxConcurrency": "

The updated MaxConcurrency value.

" } }, "MaxDocumentSizeExceeded": { @@ -2795,11 +3427,17 @@ "MaxErrors": { "base": null, "refs": { + "AutomationExecution$MaxErrors": "

The MaxErrors value specified by the user when the execution started.

", + "AutomationExecutionMetadata$MaxErrors": "

The MaxErrors value specified by the user when starting the Automation.

", "Command$MaxErrors": "

The maximum number of errors allowed before the system stops sending the command to additional targets. You can specify a number of errors, such as 10, or a percentage or errors, such as 10%. The default value is 50. For more information about how to use MaxErrors, see Executing a Command Using Systems Manager Run Command.

", "GetMaintenanceWindowExecutionTaskResult$MaxErrors": "

The defined maximum number of task execution errors allowed before scheduling of the task execution would have been stopped.

", + "GetMaintenanceWindowTaskResult$MaxErrors": "

The maximum number of errors allowed before the task stops being scheduled.

", "MaintenanceWindowTask$MaxErrors": "

The maximum number of errors allowed before this task stops being scheduled.

", "RegisterTaskWithMaintenanceWindowRequest$MaxErrors": "

The maximum number of errors allowed before this task stops being scheduled.

", - "SendCommandRequest$MaxErrors": "

The maximum number of errors allowed without the command failing. When the command fails one more time beyond the value of MaxErrors, the systems stops sending the command to additional targets. You can specify a number like 10 or a percentage like 10%. The default value is 50. For more information about how to use MaxErrors, see Using Error Controls.

" + "SendCommandRequest$MaxErrors": "

The maximum number of errors allowed without the command failing. When the command fails one more time beyond the value of MaxErrors, the systems stops sending the command to additional targets. You can specify a number like 10 or a percentage like 10%. The default value is 50. For more information about how to use MaxErrors, see Using Error Controls.

", + "StartAutomationExecutionRequest$MaxErrors": "

The number of errors that are allowed before the system stops running the automation on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops running the automation when the fourth error is received. If you specify 0, then the system stops running the automation on additional targets after the first error result is returned. If you run an automation on 50 resources and set max-errors to 10%, then the system stops running the automation on additional targets when the sixth error is received.

Executions that are already running an automation when max-errors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set max-concurrency to 1 so the executions proceed one at a time.

", + "UpdateMaintenanceWindowTaskRequest$MaxErrors": "

The new MaxErrors value to specify. MaxErrors is the maximum number of errors that are allowed before the task stops being scheduled.

", + "UpdateMaintenanceWindowTaskResult$MaxErrors": "

The updated MaxErrors value.

" } }, "MaxResults": { @@ -2807,14 +3445,19 @@ "refs": { "DescribeActivationsRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", "DescribeAutomationExecutionsRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", + "DescribeAutomationStepExecutionsRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", "DescribeInstanceAssociationsStatusRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", "DescribeParametersRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", "GetInventoryRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", "GetParameterHistoryRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", + "ListAssociationVersionsRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", "ListAssociationsRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", + "ListComplianceItemsRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", + "ListComplianceSummariesRequest$MaxResults": "

The maximum number of items to return for this call. Currently, you can specify null or 50. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", "ListDocumentVersionsRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", "ListDocumentsRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", "ListInventoryEntriesRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", + "ListResourceComplianceSummariesRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", "ListResourceDataSyncRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

" } }, @@ -2841,6 +3484,8 @@ "DescribeActivationsResult$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", "DescribeAutomationExecutionsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", "DescribeAutomationExecutionsResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "DescribeAutomationStepExecutionsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "DescribeAutomationStepExecutionsResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", "DescribeAvailablePatchesRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", "DescribeAvailablePatchesResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", "DescribeEffectiveInstanceAssociationsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", @@ -2883,22 +3528,37 @@ "GetParameterHistoryResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", "GetParametersByPathRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

", "GetParametersByPathResult$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", + "ListAssociationVersionsRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

", + "ListAssociationVersionsResult$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", "ListAssociationsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", "ListAssociationsResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", "ListCommandInvocationsRequest$NextToken": "

(Optional) The token for the next set of items to return. (You received this token from a previous call.)

", "ListCommandInvocationsResult$NextToken": "

(Optional) The token for the next set of items to return. (You received this token from a previous call.)

", "ListCommandsRequest$NextToken": "

(Optional) The token for the next set of items to return. (You received this token from a previous call.)

", "ListCommandsResult$NextToken": "

(Optional) The token for the next set of items to return. (You received this token from a previous call.)

", + "ListComplianceItemsRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

", + "ListComplianceItemsResult$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", + "ListComplianceSummariesRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

", + "ListComplianceSummariesResult$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", "ListDocumentVersionsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", "ListDocumentVersionsResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", "ListDocumentsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", "ListDocumentsResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", "ListInventoryEntriesRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", "ListInventoryEntriesResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "ListResourceComplianceSummariesRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

", + "ListResourceComplianceSummariesResult$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

", "ListResourceDataSyncRequest$NextToken": "

A token to start the list. Use this token to get the next set of results.

", "ListResourceDataSyncResult$NextToken": "

The token for the next set of items to return. Use this token to get the next set of results.

" } }, + "NonCompliantSummary": { + "base": "

A summary of resources that are not compliant. The summary is organized according to resource type.

", + "refs": { + "ComplianceSummaryItem$NonCompliantSummary": "

A list of NON_COMPLIANT items for the specified compliance type.

", + "ResourceComplianceSummaryItem$NonCompliantSummary": "

A list of items that aren't compliant for the resource.

" + } + }, "NormalStringMap": { "base": null, "refs": { @@ -2916,6 +3576,7 @@ "refs": { "Command$NotificationConfig": "

Configurations for sending notifications about command status changes.

", "CommandInvocation$NotificationConfig": "

Configurations for sending notifications about command status changes on a per instance basis.

", + "MaintenanceWindowRunCommandParameters$NotificationConfig": "

Configurations for sending notifications about command status changes on a per-instance basis.

", "SendCommandRequest$NotificationConfig": "

Configurations for sending notifications.

" } }, @@ -2928,7 +3589,7 @@ "NotificationEventList": { "base": null, "refs": { - "NotificationConfig$NotificationEvents": "

The different events for which you can receive notifications. These events include the following: All (events), InProgress, Success, TimedOut, Cancelled, Failed. To learn more about these events, see Setting Up Events and Notifications in the Amazon EC2 Systems Manager User Guide.

" + "NotificationConfig$NotificationEvents": "

The different events for which you can receive notifications. These events include the following: All (events), InProgress, Success, TimedOut, Cancelled, Failed. To learn more about these events, see Setting Up Events and Notifications in the AWS Systems Manager User Guide.

" } }, "NotificationType": { @@ -2937,13 +3598,29 @@ "NotificationConfig$NotificationType": "

Command: Receive notification when the status of a command changes. Invocation: For commands sent to multiple instances, receive notification on a per-instance basis when the status of a command changes.

" } }, + "OperatingSystem": { + "base": null, + "refs": { + "CreatePatchBaselineRequest$OperatingSystem": "

Defines the operating system the patch baseline applies to. The Default value is WINDOWS.

", + "GetDefaultPatchBaselineRequest$OperatingSystem": "

Returns the default patch baseline for the specified operating system.

", + "GetDefaultPatchBaselineResult$OperatingSystem": "

The operating system for the returned patch baseline.

", + "GetPatchBaselineForPatchGroupRequest$OperatingSystem": "

Returns he operating system rule specified for patch groups using the patch baseline.

", + "GetPatchBaselineForPatchGroupResult$OperatingSystem": "

The operating system rule specified for patch groups using the patch baseline.

", + "GetPatchBaselineResult$OperatingSystem": "

Returns the operating system specified for the patch baseline.

", + "PatchBaselineIdentity$OperatingSystem": "

Defines the operating system the patch baseline applies to. The Default value is WINDOWS.

", + "UpdatePatchBaselineResult$OperatingSystem": "

The operating system rule used by the updated patch baseline.

" + } + }, "OwnerInformation": { "base": null, "refs": { + "GetMaintenanceWindowExecutionTaskInvocationResult$OwnerInformation": "

User-provided value to be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.

", "InstancePatchState$OwnerInformation": "

Placeholder information, this field will always be empty in the current release of the service.

", "MaintenanceWindowExecutionTaskInvocationIdentity$OwnerInformation": "

User-provided value that was specified when the target was registered with the Maintenance Window. This was also included in any CloudWatch events raised during the task invocation.

", "MaintenanceWindowTarget$OwnerInformation": "

User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.

", - "RegisterTargetWithMaintenanceWindowRequest$OwnerInformation": "

User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.

" + "RegisterTargetWithMaintenanceWindowRequest$OwnerInformation": "

User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.

", + "UpdateMaintenanceWindowTargetRequest$OwnerInformation": "

User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.

", + "UpdateMaintenanceWindowTargetResult$OwnerInformation": "

The updated owner.

" } }, "PSParameterName": { @@ -2952,12 +3629,12 @@ "DeleteParameterRequest$Name": "

The name of the parameter to delete.

", "GetParameterHistoryRequest$Name": "

The name of a parameter you want to query.

", "GetParameterRequest$Name": "

The name of the parameter you want to query.

", - "GetParametersByPathRequest$Path": "

The hierarchy for the parameter. Hierarchies start with a forward slash (/) and end with the parameter name. A hierarchy can have a maximum of five levels. Examples: /Environment/Test/DBString003

/Finance/Prod/IAD/OS/WinServ2016/license15

", + "GetParametersByPathRequest$Path": "

The hierarchy for the parameter. Hierarchies start with a forward slash (/) and end with the parameter name. A hierarchy can have a maximum of five levels. For example: /Finance/Prod/IAD/WinServ2016/license15

", "Parameter$Name": "

The name of the parameter.

", "ParameterHistory$Name": "

The name of the parameter.

", "ParameterMetadata$Name": "

The parameter name.

", "ParameterNameList$member": null, - "PutParameterRequest$Name": "

The name of the parameter that you want to add to the system.

" + "PutParameterRequest$Name": "

The fully qualified name of the parameter that you want to add to the system. The fully qualified name includes the complete hierarchy of the parameter path and name. For example: /Dev/DBServer/MySQL/db-string13

The maximum length constraint listed below includes capacity for additional system attributes that are not part of the name. The maximum length for the fully qualified parameter name is 1011 characters.

" } }, "PSParameterValue": { @@ -2968,6 +3645,15 @@ "PutParameterRequest$Value": "

The parameter value that you want to add to the system.

" } }, + "PSParameterVersion": { + "base": null, + "refs": { + "Parameter$Version": "

The parameter version.

", + "ParameterHistory$Version": "

The parameter version.

", + "ParameterMetadata$Version": "

The parameter version.

", + "PutParameterResult$Version": "

The new version number of a parameter. If you edit a parameter value, Parameter Store automatically creates a new version and assigns this new version a unique ID. You can reference a parameter version ID in API actions or in Systems Manager documents (SSM documents). By default, if you don't specify a specific version, the system returns the latest parameter value when a parameter is called.

" + } + }, "Parameter": { "base": "

An Amazon EC2 Systems Manager parameter in Parameter Store.

", "refs": { @@ -2985,7 +3671,7 @@ "refs": { "ParameterHistory$Description": "

Information about the parameter.

", "ParameterMetadata$Description": "

Description of the parameter actions.

", - "PutParameterRequest$Description": "

Information about the parameter that you want to add to the system

" + "PutParameterRequest$Description": "

Information about the parameter that you want to add to the system.

" } }, "ParameterHistory": { @@ -3020,6 +3706,11 @@ "GetParametersResult$Parameters": "

A list of details for a parameter.

" } }, + "ParameterMaxVersionLimitExceeded": { + "base": "

The parameter exceeded the maximum number of allowed versions.

", + "refs": { + } + }, "ParameterMetadata": { "base": "

Metada includes information like the ARN of the last user and the date/time the parameter was last used.

", "refs": { @@ -3107,7 +3798,8 @@ "ParameterValue": { "base": null, "refs": { - "ParameterValueList$member": null + "ParameterValueList$member": null, + "TargetParameterList$member": null } }, "ParameterValueList": { @@ -3116,13 +3808,20 @@ "Parameters$value": null } }, + "ParameterVersionNotFound": { + "base": "

The specified parameter version was not found. Verify the parameter name and version, and try again.

", + "refs": { + } + }, "Parameters": { "base": null, "refs": { "AssociationDescription$Parameters": "

A description of the parameters for a document.

", + "AssociationVersionInfo$Parameters": "

Parameters specified when the association version was created.

", "Command$Parameters": "

The parameter values to be inserted in the document when executing the command.

", "CreateAssociationBatchRequestEntry$Parameters": "

A description of the parameters for a document.

", "CreateAssociationRequest$Parameters": "

The parameters for the documents runtime configuration.

", + "MaintenanceWindowRunCommandParameters$Parameters": "

The parameters for the RUN_COMMAND task execution.

", "SendCommandRequest$Parameters": "

The required and optional parameters specified in the document being executed.

", "UpdateAssociationRequest$Parameters": "

The parameters you want to update for the association. If you create a parameter using Parameter Store, you can reference the parameter using {{ssm:parameter-name}}

" } @@ -3211,6 +3910,17 @@ "PatchComplianceData$State": "

The state of the patch on the instance (INSTALLED, INSTALLED_OTHER, MISSING, NOT_APPLICABLE or FAILED).

" } }, + "PatchComplianceLevel": { + "base": null, + "refs": { + "CreatePatchBaselineRequest$ApprovedPatchesComplianceLevel": "

Defines the compliance level for approved patches. This means that if an approved patch is reported as missing, this is the severity of the compliance violation. Valid compliance severity levels include the following: CRITICAL, HIGH, MEDIUM, LOW, INFORMATIONAL, UNSPECIFIED. The default value is UNSPECIFIED.

", + "GetPatchBaselineResult$ApprovedPatchesComplianceLevel": "

Returns the specified compliance severity level for approved patches in the patch baseline.

", + "PatchRule$ComplianceLevel": "

A compliance severity level for all approved patches in a patch baseline. Valid compliance severity levels include the following: Unspecified, Critical, High, Medium, Low, and Informational.

", + "PatchStatus$ComplianceLevel": "

The compliance severity level for a patch.

", + "UpdatePatchBaselineRequest$ApprovedPatchesComplianceLevel": "

Assigns a new compliance severity level to an existing patch baseline.

", + "UpdatePatchBaselineResult$ApprovedPatchesComplianceLevel": "

The compliance severity level assigned to the patch baseline after the update completed.

" + } + }, "PatchComplianceMaxResults": { "base": null, "refs": { @@ -3349,17 +4059,11 @@ "InstancePatchState$InstalledOtherCount": "

The number of patches not specified in the patch baseline that are installed on the instance.

" } }, - "PatchInstalledTime": { - "base": null, - "refs": { - "PatchComplianceData$InstalledTime": "

The date/time the patch was installed on the instance.

" - } - }, "PatchKbNumber": { "base": null, "refs": { "Patch$KbNumber": "

The Microsoft Knowledge Base ID of the patch.

", - "PatchComplianceData$KBId": "

The Microsoft Knowledge Base ID of the patch.

" + "PatchComplianceData$KBId": "

The operating system-specific ID of the patch.

" } }, "PatchLanguage": { @@ -3398,18 +4102,6 @@ "InstancePatchState$NotApplicableCount": "

The number of patches from the patch baseline that aren't applicable for the instance and hence aren't installed on the instance.

" } }, - "PatchOperationEndTime": { - "base": null, - "refs": { - "InstancePatchState$OperationEndTime": "

The time the most recent patching operation completed on the instance.

" - } - }, - "PatchOperationStartTime": { - "base": null, - "refs": { - "InstancePatchState$OperationStartTime": "

The time the most recent patching operation was started on the instance.

" - } - }, "PatchOperationType": { "base": null, "refs": { @@ -3433,7 +4125,8 @@ "refs": { "DescribeAvailablePatchesRequest$Filters": "

Filters used to scope down the returned patches.

", "DescribeInstancePatchesRequest$Filters": "

Each entry in the array is a structure containing:

Key (string, between 1 and 128 characters)

Values (array of strings, each string between 1 and 256 characters)

", - "DescribePatchBaselinesRequest$Filters": "

Each element in the array is a structure containing:

Key: (string, \"NAME_PREFIX\" or \"OWNER\")

Value: (array of strings, exactly 1 entry, between 1 and 255 characters)

" + "DescribePatchBaselinesRequest$Filters": "

Each element in the array is a structure containing:

Key: (string, \"NAME_PREFIX\" or \"OWNER\")

Value: (array of strings, exactly 1 entry, between 1 and 255 characters)

", + "DescribePatchGroupsRequest$Filters": "

One or more filters. Use a filter to return a more specific list of results.

" } }, "PatchOrchestratorFilterValue": { @@ -3522,10 +4215,26 @@ "PlatformTypeList": { "base": null, "refs": { - "DocumentDescription$PlatformTypes": "

The list of OS platforms compatible with this SSM document.

", + "DocumentDescription$PlatformTypes": "

The list of OS platforms compatible with this Systems Manager document.

", "DocumentIdentifier$PlatformTypes": "

The operating system platform.

" } }, + "Product": { + "base": null, + "refs": { + "GetDeployablePatchSnapshotForInstanceResult$Product": "

Returns the specific operating system (for example Windows Server 2012 or Amazon Linux 2015.09) on the instance for the specified patch snapshot.

" + } + }, + "PutComplianceItemsRequest": { + "base": null, + "refs": { + } + }, + "PutComplianceItemsResult": { + "base": null, + "refs": { + } + }, "PutInventoryRequest": { "base": null, "refs": { @@ -3609,6 +4318,31 @@ "refs": { } }, + "ResolvedTargets": { + "base": "

Information about targets that resolved during the Automation execution.

", + "refs": { + "AutomationExecution$ResolvedTargets": "

A list of resolved targets in the rate control execution.

", + "AutomationExecutionMetadata$ResolvedTargets": "

A list of targets that resolved during the execution.

" + } + }, + "ResourceComplianceSummaryItem": { + "base": "

Compliance summary information for a specific resource.

", + "refs": { + "ResourceComplianceSummaryItemList$member": null + } + }, + "ResourceComplianceSummaryItemList": { + "base": null, + "refs": { + "ListResourceComplianceSummariesResult$ResourceComplianceSummaryItems": "

A summary count for specified or targeted managed instances. Summary count includes information about compliant and non-compliant State Manager associations, patch status, or custom items according to the filter criteria that you specify.

" + } + }, + "ResourceDataSyncAWSKMSKeyARN": { + "base": null, + "refs": { + "ResourceDataSyncS3Destination$AWSKMSKeyARN": "

The ARN of an encryption key for a destination in Amazon S3. Must belong to the same region as the destination Amazon S3 bucket.

" + } + }, "ResourceDataSyncAlreadyExistsException": { "base": "

A sync configuration with the same name already exists.

", "refs": { @@ -3691,7 +4425,7 @@ "ResourceId": { "base": null, "refs": { - "AddTagsToResourceRequest$ResourceId": "

The resource ID you want to tag.

", + "AddTagsToResourceRequest$ResourceId": "

The resource ID you want to tag.

For the ManagedInstance, MaintenanceWindow, and PatchBaseline values, use the ID of the resource, such as mw-01234361858c9b57b for a Maintenance Window.

For the Document and Parameter values, use the name of the resource.

", "ListTagsForResourceRequest$ResourceId": "

The resource ID for which you want to see a list of tags.

", "RemoveTagsFromResourceRequest$ResourceId": "

The resource ID for which you want to remove tags.

" } @@ -3745,6 +4479,7 @@ "Command$OutputS3BucketName": "

The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command.

", "CommandPlugin$OutputS3BucketName": "

The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command. For example, in the following response:

test_folder/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-1234567876543/awsrunShellScript

test_folder is the name of the Amazon S3 bucket;

ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix is the name of the S3 prefix;

i-1234567876543 is the instance ID;

awsrunShellScript is the name of the plugin.

", "LoggingInfo$S3BucketName": "

The name of an Amazon S3 bucket where execution logs are stored .

", + "MaintenanceWindowRunCommandParameters$OutputS3BucketName": "

The name of the Amazon S3 bucket.

", "S3OutputLocation$OutputS3BucketName": "

The name of the Amazon S3 bucket.

", "SendCommandRequest$OutputS3BucketName": "

The name of the S3 bucket where command execution responses should be stored.

" } @@ -3755,6 +4490,7 @@ "Command$OutputS3KeyPrefix": "

The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command.

", "CommandPlugin$OutputS3KeyPrefix": "

The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command. For example, in the following response:

test_folder/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-1234567876543/awsrunShellScript

test_folder is the name of the Amazon S3 bucket;

ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix is the name of the S3 prefix;

i-1234567876543 is the instance ID;

awsrunShellScript is the name of the plugin.

", "LoggingInfo$S3KeyPrefix": "

(Optional) The Amazon S3 bucket subfolder.

", + "MaintenanceWindowRunCommandParameters$OutputS3KeyPrefix": "

The Amazon S3 bucket subfolder.

", "S3OutputLocation$OutputS3KeyPrefix": "

The Amazon S3 bucket subfolder.

", "SendCommandRequest$OutputS3KeyPrefix": "

The directory structure within the S3 bucket where the responses should be stored.

" } @@ -3786,11 +4522,22 @@ "refs": { "Association$ScheduleExpression": "

A cron expression that specifies a schedule when the association runs.

", "AssociationDescription$ScheduleExpression": "

A cron expression that specifies a schedule when the association runs.

", + "AssociationVersionInfo$ScheduleExpression": "

The cron or rate schedule specified for the association when the association version was created.

", "CreateAssociationBatchRequestEntry$ScheduleExpression": "

A cron expression that specifies a schedule when the association runs.

", "CreateAssociationRequest$ScheduleExpression": "

A cron expression when the association will be applied to the target(s).

", "UpdateAssociationRequest$ScheduleExpression": "

The cron expression used to schedule the association that you want to update.

" } }, + "SendAutomationSignalRequest": { + "base": null, + "refs": { + } + }, + "SendAutomationSignalResult": { + "base": null, + "refs": { + } + }, "SendCommandRequest": { "base": null, "refs": { @@ -3807,9 +4554,26 @@ "Command$ServiceRole": "

The IAM service role that Run Command uses to act on your behalf when sending notifications about command status changes.

", "CommandInvocation$ServiceRole": "

The IAM service role that Run Command uses to act on your behalf when sending notifications about command status changes on a per instance basis.

", "GetMaintenanceWindowExecutionTaskResult$ServiceRole": "

The role that was assumed when executing the task.

", + "GetMaintenanceWindowTaskResult$ServiceRoleArn": "

The IAM service role to assume during task execution.

", + "MaintenanceWindowRunCommandParameters$ServiceRoleArn": "

The IAM service role to assume during task execution.

", "MaintenanceWindowTask$ServiceRoleArn": "

The role that should be assumed when executing the task

", "RegisterTaskWithMaintenanceWindowRequest$ServiceRoleArn": "

The role that should be assumed when executing the task.

", - "SendCommandRequest$ServiceRoleArn": "

The IAM role that Systems Manager uses to send notifications.

" + "SendCommandRequest$ServiceRoleArn": "

The IAM role that Systems Manager uses to send notifications.

", + "UpdateMaintenanceWindowTaskRequest$ServiceRoleArn": "

The IAM service role ARN to modify. The system assumes this role during task execution.

", + "UpdateMaintenanceWindowTaskResult$ServiceRoleArn": "

The updated service role ARN value.

" + } + }, + "SeveritySummary": { + "base": "

The number of managed instances found for each patch severity level defined in the request filter.

", + "refs": { + "CompliantSummary$SeveritySummary": "

A summary of the compliance severity by compliance type.

", + "NonCompliantSummary$SeveritySummary": "

A summary of the non-compliance severity by compliance type

" + } + }, + "SignalType": { + "base": null, + "refs": { + "SendAutomationSignalRequest$SignalType": "

The type of signal. Valid signal types include the following: Approve and Reject

" } }, "SnapshotDownloadUrl": { @@ -3893,10 +4657,41 @@ "StepExecutionList$member": null } }, + "StepExecutionFilter": { + "base": "

A filter to limit the amount of step execution information returned by the call.

", + "refs": { + "StepExecutionFilterList$member": null + } + }, + "StepExecutionFilterKey": { + "base": null, + "refs": { + "StepExecutionFilter$Key": "

One or more keys to limit the results. Valid filter keys include the following: StepName, Action, StepExecutionId, StepExecutionStatus, StartTimeBefore, StartTimeAfter.

" + } + }, + "StepExecutionFilterList": { + "base": null, + "refs": { + "DescribeAutomationStepExecutionsRequest$Filters": "

One or more filters to limit the number of step executions returned by the request.

" + } + }, + "StepExecutionFilterValue": { + "base": null, + "refs": { + "StepExecutionFilterValueList$member": null + } + }, + "StepExecutionFilterValueList": { + "base": null, + "refs": { + "StepExecutionFilter$Values": "

The values of the filter key.

" + } + }, "StepExecutionList": { "base": null, "refs": { - "AutomationExecution$StepExecutions": "

A list of details about the current state of all steps that comprise an execution. An Automation document contains a list of steps that are executed in order.

" + "AutomationExecution$StepExecutions": "

A list of details about the current state of all steps that comprise an execution. An Automation document contains a list of steps that are executed in order.

", + "DescribeAutomationStepExecutionsResult$StepExecutions": "

A list of details about the current state of all steps that make up an execution.

" } }, "StopAutomationExecutionRequest": { @@ -3909,18 +4704,35 @@ "refs": { } }, + "StopType": { + "base": null, + "refs": { + "StopAutomationExecutionRequest$Type": "

The stop request type. Valid types include the following: Cancel and Complete. The default type is Cancel.

" + } + }, "String": { "base": null, "refs": { "AlreadyExistsException$Message": null, "AssociationDoesNotExist$Message": null, + "AssociationVersionLimitExceeded$Message": null, "AutomationDefinitionNotFoundException$Message": null, "AutomationDefinitionVersionNotFoundException$Message": null, "AutomationExecution$FailureMessage": "

A message describing why an execution has failed, if the status is set to Failed.

", + "AutomationExecution$ExecutedBy": "

The Amazon Resource Name (ARN) of the user who executed the automation.

", + "AutomationExecution$CurrentStepName": "

The name of the currently executing step.

", + "AutomationExecution$CurrentAction": "

The action of the currently executing step.

", + "AutomationExecution$Target": "

The target of the execution.

", "AutomationExecutionLimitExceededException$Message": null, "AutomationExecutionMetadata$ExecutedBy": "

The IAM role ARN of the user who executed the Automation.

", "AutomationExecutionMetadata$LogFile": "

An Amazon S3 bucket where execution information is stored.

", + "AutomationExecutionMetadata$CurrentStepName": "

The name of the currently executing step.

", + "AutomationExecutionMetadata$CurrentAction": "

The action of the currently executing step.

", + "AutomationExecutionMetadata$FailureMessage": "

The list of execution outputs as defined in the Automation document.

", + "AutomationExecutionMetadata$Target": "

The list of execution outputs as defined in the Automation document.

", "AutomationExecutionNotFoundException$Message": null, + "AutomationStepNotFoundException$Message": null, + "ComplianceTypeCountLimitExceededException$Message": null, "CustomSchemaCountLimitExceededException$Message": null, "DocumentAlreadyExists$Message": null, "DocumentLimitExceeded$Message": null, @@ -3930,6 +4742,7 @@ "DuplicateDocumentContent$Message": null, "FailureDetails$FailureStage": "

The stage of the Automation execution when the failure occurred. The stages include the following: InputValidation, PreVerification, Invocation, PostVerification.

", "FailureDetails$FailureType": "

The type of Automation failure. Failure types include the following: Action, Permission, Throttling, Verification, Internal.

", + "FeatureNotAvailableException$Message": null, "HierarchyLevelLimitExceededException$message": "

A hierarchy can have a maximum of five levels. For example:

/Finance/Prod/IAD/OS/WinServ2016/license15

For more information, see Working with Systems Manager Parameters.

", "HierarchyTypeMismatchException$message": "

Parameter Store does not support changing a parameter type in a hierarchy. For example, you can't change a parameter from a String type to a SecureString type. You must create a new, unique parameter.

", "IdempotentParameterMismatch$Message": null, @@ -3940,7 +4753,10 @@ "InvalidActivation$Message": null, "InvalidActivationId$Message": null, "InvalidAllowedPatternException$message": "

The request does not meet the regular expression requirement.

", + "InvalidAssociationVersion$Message": null, "InvalidAutomationExecutionParametersException$Message": null, + "InvalidAutomationSignalException$Message": null, + "InvalidAutomationStatusUpdateException$Message": null, "InvalidDocument$Message": "

The document does not exist or the document is not available to the user. This exception can be issued by CreateAssociation, CreateAssociationBatch, DeleteAssociation, DeleteDocument, DescribeAssociation, DescribeDocument, GetDocument, SendCommand, or UpdateAssociationStatus.

", "InvalidDocumentContent$Message": "

A description of the validation error.

", "InvalidDocumentOperation$Message": null, @@ -3951,6 +4767,7 @@ "InvalidFilterValue$Message": null, "InvalidInstanceId$Message": null, "InvalidInstanceInformationFilterValue$message": null, + "InvalidInventoryItemContextException$Message": null, "InvalidItemContentException$Message": null, "InvalidKeyId$message": null, "InvalidNextToken$Message": null, @@ -3971,21 +4788,29 @@ "ParameterAlreadyExists$message": null, "ParameterHistory$LastModifiedUser": "

Amazon Resource Name (ARN) of the AWS user who last changed the parameter.

", "ParameterLimitExceeded$message": null, + "ParameterMaxVersionLimitExceeded$message": null, "ParameterMetadata$LastModifiedUser": "

Amazon Resource Name (ARN) of the AWS user who last changed the parameter.

", "ParameterNotFound$message": null, "ParameterPatternMismatchException$message": "

The parameter name is not valid.

", + "ParameterVersionNotFound$message": null, "ResourceDataSyncCountExceededException$Message": null, "ResourceDataSyncInvalidConfigurationException$Message": null, "ResourceInUseException$Message": null, "ResourceLimitExceededException$Message": null, "StepExecution$StepName": "

The name of this execution step.

", + "StepExecution$OnFailure": "

The action to take if the step fails. The default value is Abort.

", "StepExecution$ResponseCode": "

The response code returned by the execution of the step.

", "StepExecution$Response": "

A message associated with the response code for an execution.

", "StepExecution$FailureMessage": "

If a step failed, this message explains why the execution failed.

", + "StepExecution$StepExecutionId": "

The unique ID of a step execution.

", "StringList$member": null, + "SubTypeCountLimitExceededException$Message": null, + "TargetInUseException$Message": null, "TooManyUpdates$Message": null, "TotalSizeLimitExceededException$Message": null, + "UnsupportedInventoryItemContextException$Message": null, "UnsupportedInventorySchemaVersionException$Message": null, + "UnsupportedOperatingSystem$Message": null, "UnsupportedParameterType$message": null, "UnsupportedPlatformType$Message": null } @@ -4004,8 +4829,13 @@ "DescribeActivationsFilter$FilterValues": "

The filter values.

" } }, + "SubTypeCountLimitExceededException": { + "base": "

The sub-type count exceeded the limit for the inventory type.

", + "refs": { + } + }, "Tag": { - "base": "

Metadata that you assign to your managed instances. Tags enable you to categorize your managed instances in different ways, for example, by purpose, owner, or environment.

", + "base": "

Metadata that you assign to your AWS resources. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. In Systems Manager, you can apply tags to documents, managed instances, Maintenance Windows, Parameter Store parameters, and patch baselines.

", "refs": { "TagList$member": null } @@ -4021,6 +4851,8 @@ "base": null, "refs": { "AddTagsToResourceRequest$Tags": "

One or more tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string.

", + "DocumentDescription$Tags": "

The tags, or metadata, that have been applied to the document.

", + "DocumentIdentifier$Tags": "

The tags, or metadata, that have been applied to the document.

", "ListTagsForResourceResult$TagList": "

A list of tags.

" } }, @@ -4042,12 +4874,32 @@ "Command$TargetCount": "

The number of targets for the command.

" } }, + "TargetInUseException": { + "base": "

You specified the Safe option for the DeregisterTargetFromMaintenanceWindow operation, but the target is still referenced in a task.

", + "refs": { + } + }, "TargetKey": { "base": null, "refs": { "Target$Key": "

User-defined criteria for sending commands that target instances that meet the criteria. Key can be tag:<Amazon EC2 tag> or InstanceIds. For more information about how to send commands that target instances using Key,Value parameters, see Executing a Command Using Systems Manager Run Command.

" } }, + "TargetParameterList": { + "base": null, + "refs": { + "ResolvedTargets$ParameterValues": "

A list of parameter values sent to targets that resolved during the Automation execution.

" + } + }, + "TargetType": { + "base": null, + "refs": { + "CreateDocumentRequest$TargetType": "

Specify a target type to define the kinds of resources the document can run on. For example, to run a document on EC2 instances, specify the following value: /AWS::EC2::Instance. If you specify a value of '/' the document can run on all types of resources. If you don't specify a value, the document can't run on any resources. For a list of valid resource types, see AWS Resource Types Reference in the AWS CloudFormation User Guide.

", + "DocumentDescription$TargetType": "

The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see AWS Resource Types Reference in the AWS CloudFormation User Guide.

", + "DocumentIdentifier$TargetType": "

The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see AWS Resource Types Reference in the AWS CloudFormation User Guide.

", + "UpdateDocumentRequest$TargetType": "

Specify a new target type for the document.

" + } + }, "TargetValue": { "base": null, "refs": { @@ -4065,20 +4917,30 @@ "refs": { "Association$Targets": "

The instances targeted by the request to create an association.

", "AssociationDescription$Targets": "

The instances targeted by the request.

", + "AssociationVersionInfo$Targets": "

The targets specified for the association when the association version was created.

", + "AutomationExecution$Targets": "

The specified targets.

", + "AutomationExecutionMetadata$Targets": "

The targets defined by the user when starting the Automation.

", "Command$Targets": "

An array of search criteria that targets instances using a Key,Value combination that you specify. Targets is required if you don't provide one or more instance IDs in the call.

", "CreateAssociationBatchRequestEntry$Targets": "

The instances targeted by the request.

", "CreateAssociationRequest$Targets": "

The targets (either instances or tags) for the association.

", + "GetMaintenanceWindowTaskResult$Targets": "

The targets where the task should execute.

", "MaintenanceWindowTarget$Targets": "

The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>.

", "MaintenanceWindowTask$Targets": "

The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>.

", "RegisterTargetWithMaintenanceWindowRequest$Targets": "

The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>.

", "RegisterTaskWithMaintenanceWindowRequest$Targets": "

The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>.

", "SendCommandRequest$Targets": "

(Optional) An array of search criteria that targets instances using a Key,Value combination that you specify. Targets is required if you don't provide one or more instance IDs in the call. For more information about how to use Targets, see Sending Commands to a Fleet.

", - "UpdateAssociationRequest$Targets": "

The targets of the association.

" + "StartAutomationExecutionRequest$Targets": "

A key-value mapping to target resources. Required if you specify TargetParameterName.

", + "UpdateAssociationRequest$Targets": "

The targets of the association.

", + "UpdateMaintenanceWindowTargetRequest$Targets": "

The targets to add or replace.

", + "UpdateMaintenanceWindowTargetResult$Targets": "

The updated targets.

", + "UpdateMaintenanceWindowTaskRequest$Targets": "

The targets (either instances or tags) to modify. Instances are specified using Key=instanceids,Values=instanceID_1,instanceID_2. Tags are specified using Key=tag_name,Values=tag_value.

", + "UpdateMaintenanceWindowTaskResult$Targets": "

The updated target values.

" } }, "TimeoutSeconds": { "base": null, "refs": { + "MaintenanceWindowRunCommandParameters$TimeoutSeconds": "

If this time is reached and the command has not already started executing, it doesn not execute.

", "SendCommandRequest$TimeoutSeconds": "

If this time is reached and the command has not already started executing, it will not execute.

" } }, @@ -4097,11 +4959,21 @@ "refs": { } }, + "UnsupportedInventoryItemContextException": { + "base": "

The Context attribute that you specified for the InventoryItem is not allowed for this inventory type. You can only use the Context attribute with inventory types like AWS:ComplianceItem.

", + "refs": { + } + }, "UnsupportedInventorySchemaVersionException": { "base": "

Inventory item type schema version has to match supported versions in the service. Check output of GetInventorySchema to see the available schema version for each type.

", "refs": { } }, + "UnsupportedOperatingSystem": { + "base": "

The operating systems you specified is not supported, or the operation is not supported for the operating system. Valid operating systems include: Windows, AmazonLinux, RedhatEnterpriseLinux, and Ubuntu.

", + "refs": { + } + }, "UnsupportedParameterType": { "base": "

The parameter type is not supported.

", "refs": { @@ -4162,6 +5034,26 @@ "refs": { } }, + "UpdateMaintenanceWindowTargetRequest": { + "base": null, + "refs": { + } + }, + "UpdateMaintenanceWindowTargetResult": { + "base": null, + "refs": { + } + }, + "UpdateMaintenanceWindowTaskRequest": { + "base": null, + "refs": { + } + }, + "UpdateMaintenanceWindowTaskResult": { + "base": null, + "refs": { + } + }, "UpdateManagedInstanceRoleRequest": { "base": null, "refs": { diff --git a/models/apis/ssm/2014-11-06/smoke.json b/models/apis/ssm/2014-11-06/smoke.json new file mode 100644 index 00000000000..9c3494e7c2c --- /dev/null +++ b/models/apis/ssm/2014-11-06/smoke.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "defaultRegion": "us-west-2", + "testCases": [ + { + "operationName": "ListDocuments", + "input": {}, + "errorExpectedFromService": false + }, + { + "operationName": "GetDocument", + "input": { + "Name": "'fake-name'" + }, + "errorExpectedFromService": true + } + ] +} diff --git a/models/apis/states/2016-11-23/api-2.json b/models/apis/states/2016-11-23/api-2.json index e9bf2d9815b..ce51e981a62 100644 --- a/models/apis/states/2016-11-23/api-2.json +++ b/models/apis/states/2016-11-23/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"AWS SFN", "serviceFullName":"AWS Step Functions", + "serviceId":"SFN", "signatureVersion":"v4", "targetPrefix":"AWSStepFunctions", "uid":"states-2016-11-23" @@ -107,6 +108,19 @@ {"shape":"StateMachineDoesNotExist"} ] }, + "DescribeStateMachineForExecution":{ + "name":"DescribeStateMachineForExecution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStateMachineForExecutionInput"}, + "output":{"shape":"DescribeStateMachineForExecutionOutput"}, + "errors":[ + {"shape":"ExecutionDoesNotExist"}, + {"shape":"InvalidArn"} + ] + }, "GetActivityTask":{ "name":"GetActivityTask", "http":{ @@ -247,6 +261,23 @@ {"shape":"ExecutionDoesNotExist"}, {"shape":"InvalidArn"} ] + }, + "UpdateStateMachine":{ + "name":"UpdateStateMachine", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateStateMachineInput"}, + "output":{"shape":"UpdateStateMachineOutput"}, + "errors":[ + {"shape":"InvalidArn"}, + {"shape":"InvalidDefinition"}, + {"shape":"MissingRequiredParameter"}, + {"shape":"StateMachineDeleting"}, + {"shape":"StateMachineDoesNotExist"} + ], + "idempotent":true } }, "shapes":{ @@ -469,6 +500,30 @@ "output":{"shape":"Data"} } }, + "DescribeStateMachineForExecutionInput":{ + "type":"structure", + "required":["executionArn"], + "members":{ + "executionArn":{"shape":"Arn"} + } + }, + "DescribeStateMachineForExecutionOutput":{ + "type":"structure", + "required":[ + "stateMachineArn", + "name", + "definition", + "roleArn", + "updateDate" + ], + "members":{ + "stateMachineArn":{"shape":"Arn"}, + "name":{"shape":"Name"}, + "definition":{"shape":"Definition"}, + "roleArn":{"shape":"Arn"}, + "updateDate":{"shape":"Timestamp"} + } + }, "DescribeStateMachineInput":{ "type":"structure", "required":["stateMachineArn"], @@ -684,12 +739,18 @@ "LambdaFunctionTimedOut", "SucceedStateEntered", "SucceedStateExited", + "TaskStateAborted", "TaskStateEntered", "TaskStateExited", "PassStateEntered", "PassStateExited", + "ParallelStateAborted", "ParallelStateEntered", "ParallelStateExited", + "ParallelStateFailed", + "ParallelStateStarted", + "ParallelStateSucceeded", + "WaitStateAborted", "WaitStateEntered", "WaitStateExited" ] @@ -834,6 +895,13 @@ "nextToken":{"shape":"PageToken"} } }, + "MissingRequiredParameter":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "Name":{ "type":"string", "max":80, @@ -1016,6 +1084,22 @@ "min":1 }, "TimeoutInSeconds":{"type":"long"}, - "Timestamp":{"type":"timestamp"} + "Timestamp":{"type":"timestamp"}, + "UpdateStateMachineInput":{ + "type":"structure", + "required":["stateMachineArn"], + "members":{ + "stateMachineArn":{"shape":"Arn"}, + "definition":{"shape":"Definition"}, + "roleArn":{"shape":"Arn"} + } + }, + "UpdateStateMachineOutput":{ + "type":"structure", + "required":["updateDate"], + "members":{ + "updateDate":{"shape":"Timestamp"} + } + } } } diff --git a/models/apis/states/2016-11-23/docs-2.json b/models/apis/states/2016-11-23/docs-2.json index b0a3f956d3a..f35b3cb178d 100644 --- a/models/apis/states/2016-11-23/docs-2.json +++ b/models/apis/states/2016-11-23/docs-2.json @@ -1,24 +1,26 @@ { "version": "2.0", - "service": "AWS Step Functions

AWS Step Functions is a web service that enables you to coordinate the components of distributed applications and microservices using visual workflows. You build applications from individual components that each perform a discrete function, or task, allowing you to scale and change applications quickly. Step Functions provides a graphical console to visualize the components of your application as a series of steps. It automatically triggers and tracks each step, and retries when there are errors, so your application executes in order and as expected, every time. Step Functions logs the state of each step, so when things do go wrong, you can diagnose and debug problems quickly.

Step Functions manages the operations and underlying infrastructure for you to ensure your application is available at any scale. You can run tasks on the AWS cloud, on your own servers, or an any system that has access to AWS. Step Functions can be accessed and used with the Step Functions console, the AWS SDKs (included with your Beta release invitation email), or an HTTP API (the subject of this document).

", + "service": "AWS Step Functions

AWS Step Functions is a service that lets you coordinate the components of distributed applications and microservices using visual workflows.

You can use Step Functions to build applications from individual components, each of which performs a discrete function, or task, allowing you to scale and change applications quickly. Step Functions provides a console that helps visualize the components of your application as a series of steps. Step Functions automatically triggers and tracks each step, and retries steps when there are errors, so your application executes predictably and in the right order every time. Step Functions logs the state of each step, so you can quickly diagnose and debug any issues.

Step Functions manages operations and underlying infrastructure to ensure your application is available at any scale. You can run tasks on AWS, your own servers, or any system that has access to AWS. You can access and use Step Functions using the console, the AWS SDKs, or an HTTP API. For more information about Step Functions, see the AWS Step Functions Developer Guide .

", "operations": { - "CreateActivity": "

Creates an activity.

", - "CreateStateMachine": "

Creates a state machine.

", + "CreateActivity": "

Creates an activity. An activity is a task which you write in any programming language and host on any machine which has access to AWS Step Functions. Activities must poll Step Functions using the GetActivityTask API action and respond using SendTask* API actions. This function lets Step Functions know the existence of your activity and returns an identifier for use in a state machine and when polling from the activity.

", + "CreateStateMachine": "

Creates a state machine. A state machine consists of a collection of states that can do work (Task states), determine to which states to transition next (Choice states), stop an execution with an error (Fail states), and so on. State machines are specified using a JSON-based, structured language.

", "DeleteActivity": "

Deletes an activity.

", - "DeleteStateMachine": "

Deletes a state machine. This is an asynchronous operation-- it sets the state machine's status to \"DELETING\" and begins the delete process.

", + "DeleteStateMachine": "

Deletes a state machine. This is an asynchronous operation: It sets the state machine's status to DELETING and begins the deletion process. Each state machine execution is deleted the next time it makes a state transition.

The state machine itself is deleted after all executions are completed or deleted.

", "DescribeActivity": "

Describes an activity.

", "DescribeExecution": "

Describes an execution.

", "DescribeStateMachine": "

Describes a state machine.

", - "GetActivityTask": "

Used by workers to retrieve a task (with the specified activity ARN) scheduled for execution by a running state machine. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available (i.e. an execution of a task of this type is needed.) The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll will return an empty result, that is, the taskToken returned is an empty string.

Workers should set their client side socket timeout to at least 65 seconds (5 seconds higher than the maximum time the service may hold the poll request).

", - "GetExecutionHistory": "

Returns the history of the specified execution as a list of events. By default, the results are returned in ascending order of the timeStamp of the events. Use the reverseOrder parameter to get the latest events first. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextToken returned by the previous call.

", - "ListActivities": "

Lists the existing activities. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextToken returned by the previous call.

", - "ListExecutions": "

Lists the executions of a state machine that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextToken returned by the previous call.

", - "ListStateMachines": "

Lists the existing state machines. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextToken returned by the previous call.

", + "DescribeStateMachineForExecution": "

Describes the state machine associated with a specific execution.

", + "GetActivityTask": "

Used by workers to retrieve a task (with the specified activity ARN) which has been scheduled for execution by a running state machine. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available (i.e. an execution of a task of this type is needed.) The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll returns a taskToken with a null string.

Workers should set their client side socket timeout to at least 65 seconds (5 seconds higher than the maximum time the service may hold the poll request).

", + "GetExecutionHistory": "

Returns the history of the specified execution as a list of events. By default, the results are returned in ascending order of the timeStamp of the events. Use the reverseOrder parameter to get the latest events first.

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

", + "ListActivities": "

Lists the existing activities.

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

", + "ListExecutions": "

Lists the executions of a state machine that meet the filtering criteria.

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

", + "ListStateMachines": "

Lists the existing state machines.

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

", "SendTaskFailure": "

Used by workers to report that the task identified by the taskToken failed.

", - "SendTaskHeartbeat": "

Used by workers to report to the service that the task represented by the specified taskToken is still making progress. This action resets the Heartbeat clock. The Heartbeat threshold is specified in the state machine's Amazon States Language definition. This action does not in itself create an event in the execution history. However, if the task times out, the execution history will contain an ActivityTimedOut event.

The Timeout of a task, defined in the state machine's Amazon States Language definition, is its maximum allowed duration, regardless of the number of SendTaskHeartbeat requests received.

This operation is only useful for long-lived tasks to report the liveliness of the task.

", + "SendTaskHeartbeat": "

Used by workers to report to the service that the task represented by the specified taskToken is still making progress. This action resets the Heartbeat clock. The Heartbeat threshold is specified in the state machine's Amazon States Language definition. This action does not in itself create an event in the execution history. However, if the task times out, the execution history contains an ActivityTimedOut event.

The Timeout of a task, defined in the state machine's Amazon States Language definition, is its maximum allowed duration, regardless of the number of SendTaskHeartbeat requests received.

This operation is only useful for long-lived tasks to report the liveliness of the task.

", "SendTaskSuccess": "

Used by workers to report that the task identified by the taskToken completed successfully.

", "StartExecution": "

Starts a state machine execution.

", - "StopExecution": "

Stops an execution.

" + "StopExecution": "

Stops an execution.

", + "UpdateStateMachine": "

Updates an existing state machine by modifying its definition and/or roleArn. Running executions will continue to use the previous definition and roleArn.

All StartExecution calls within a few seconds will use the updated definition and roleArn. Executions started immediately after calling UpdateStateMachine may use the previous state machine definition and roleArn. You must include at least one of definition or roleArn or you will receive a MissingRequiredParameter error.

" }, "shapes": { "ActivityDoesNotExist": { @@ -27,7 +29,7 @@ } }, "ActivityFailedEventDetails": { - "base": null, + "base": "

Contains details about an activity which failed during an execution.

", "refs": { "HistoryEvent$activityFailedEventDetails": null } @@ -44,37 +46,37 @@ } }, "ActivityListItem": { - "base": null, + "base": "

Contains details about an activity.

", "refs": { "ActivityList$member": null } }, "ActivityScheduleFailedEventDetails": { - "base": null, + "base": "

Contains details about an activity schedule failure which occurred during an execution.

", "refs": { - "HistoryEvent$activityScheduleFailedEventDetails": null + "HistoryEvent$activityScheduleFailedEventDetails": "

Contains details about an activity schedule event which failed during an execution.

" } }, "ActivityScheduledEventDetails": { - "base": null, + "base": "

Contains details about an activity scheduled during an execution.

", "refs": { "HistoryEvent$activityScheduledEventDetails": null } }, "ActivityStartedEventDetails": { - "base": null, + "base": "

Contains details about the start of an activity during an execution.

", "refs": { "HistoryEvent$activityStartedEventDetails": null } }, "ActivitySucceededEventDetails": { - "base": null, + "base": "

Contains details about an activity which successfully terminated during an execution.

", "refs": { "HistoryEvent$activitySucceededEventDetails": null } }, "ActivityTimedOutEventDetails": { - "base": null, + "base": "

Contains details about an activity timeout which occurred during an execution.

", "refs": { "HistoryEvent$activityTimedOutEventDetails": null } @@ -99,20 +101,25 @@ "DescribeExecutionInput$executionArn": "

The Amazon Resource Name (ARN) of the execution to describe.

", "DescribeExecutionOutput$executionArn": "

The Amazon Resource Name (ARN) that identifies the execution.

", "DescribeExecutionOutput$stateMachineArn": "

The Amazon Resource Name (ARN) of the executed stated machine.

", + "DescribeStateMachineForExecutionInput$executionArn": "

The Amazon Resource Name (ARN) of the execution you want state machine information for.

", + "DescribeStateMachineForExecutionOutput$stateMachineArn": "

The Amazon Resource Name (ARN) of the state machine associated with the execution.

", + "DescribeStateMachineForExecutionOutput$roleArn": "

The Amazon Resource Name (ARN) of the IAM role of the State Machine for the execution.

", "DescribeStateMachineInput$stateMachineArn": "

The Amazon Resource Name (ARN) of the state machine to describe.

", "DescribeStateMachineOutput$stateMachineArn": "

The Amazon Resource Name (ARN) that identifies the state machine.

", - "DescribeStateMachineOutput$roleArn": "

The Amazon Resource Name (ARN) of the IAM role used for executing this state machine.

", + "DescribeStateMachineOutput$roleArn": "

The Amazon Resource Name (ARN) of the IAM role used when creating this state machine. (The IAM role maintains security by granting Step Functions access to AWS resources.)

", "ExecutionListItem$executionArn": "

The Amazon Resource Name (ARN) that identifies the execution.

", "ExecutionListItem$stateMachineArn": "

The Amazon Resource Name (ARN) of the executed state machine.

", "ExecutionStartedEventDetails$roleArn": "

The Amazon Resource Name (ARN) of the IAM role used for executing AWS Lambda tasks.

", - "GetActivityTaskInput$activityArn": "

The Amazon Resource Name (ARN) of the activity to retrieve tasks from.

", + "GetActivityTaskInput$activityArn": "

The Amazon Resource Name (ARN) of the activity to retrieve tasks from (assigned when you create the task using CreateActivity.)

", "GetExecutionHistoryInput$executionArn": "

The Amazon Resource Name (ARN) of the execution.

", "LambdaFunctionScheduledEventDetails$resource": "

The Amazon Resource Name (ARN) of the scheduled lambda function.

", - "ListExecutionsInput$stateMachineArn": "

The Amazon Resource Name (ARN) of the state machine whose executions will be listed.

", + "ListExecutionsInput$stateMachineArn": "

The Amazon Resource Name (ARN) of the state machine whose executions is listed.

", "StartExecutionInput$stateMachineArn": "

The Amazon Resource Name (ARN) of the state machine to execute.

", "StartExecutionOutput$executionArn": "

The Amazon Resource Name (ARN) that identifies the execution.

", "StateMachineListItem$stateMachineArn": "

The Amazon Resource Name (ARN) that identifies the state machine.

", - "StopExecutionInput$executionArn": "

The Amazon Resource Name (ARN) of the execution to stop.

" + "StopExecutionInput$executionArn": "

The Amazon Resource Name (ARN) of the execution to stop.

", + "UpdateStateMachineInput$stateMachineArn": "

The Amazon Resource Name (ARN) of the state machine.

", + "UpdateStateMachineInput$roleArn": "

The Amazon Resource Name (ARN) of the IAM role of the state machine.

" } }, "Cause": { @@ -157,16 +164,16 @@ "refs": { "ActivityScheduledEventDetails$input": "

The JSON data input to the activity task.

", "ActivitySucceededEventDetails$output": "

The JSON data output by the activity task.

", - "DescribeExecutionOutput$input": "

The JSON input data of the execution.

", - "DescribeExecutionOutput$output": "

The JSON output data of the execution.

", + "DescribeExecutionOutput$input": "

The string that contains the JSON input data of the execution.

", + "DescribeExecutionOutput$output": "

The JSON output data of the execution.

This field is set only if the execution succeeds. If the execution fails, this field is null.

", "ExecutionStartedEventDetails$input": "

The JSON data input to the execution.

", "ExecutionSucceededEventDetails$output": "

The JSON data output by the execution.

", - "GetActivityTaskOutput$input": "

The JSON input data for the task.

", + "GetActivityTaskOutput$input": "

The string that contains the JSON input data for the task.

", "LambdaFunctionScheduledEventDetails$input": "

The JSON data input to the lambda function.

", "LambdaFunctionSucceededEventDetails$output": "

The JSON data output by the lambda function.

", "SendTaskSuccessInput$output": "

The JSON output of the task.

", - "StartExecutionInput$input": "

The JSON input data for the execution.

", - "StateEnteredEventDetails$input": "

The JSON input data to the state.

", + "StartExecutionInput$input": "

The string that contains the JSON input data for the execution, for example:

\"input\": \"{\\\"first_name\\\" : \\\"test\\\"}\"

If you don't include any JSON input data, you still must include the two braces, for example: \"input\": \"{}\"

", + "StateEnteredEventDetails$input": "

The string that contains the JSON input data for the state.

", "StateExitedEventDetails$output": "

The JSON output data of the state.

" } }, @@ -174,7 +181,9 @@ "base": null, "refs": { "CreateStateMachineInput$definition": "

The Amazon States Language definition of the state machine.

", - "DescribeStateMachineOutput$definition": "

The Amazon States Language definition of the state machine.

" + "DescribeStateMachineForExecutionOutput$definition": "

The Amazon States Language definition of the state machine.

", + "DescribeStateMachineOutput$definition": "

The Amazon States Language definition of the state machine.

", + "UpdateStateMachineInput$definition": "

The Amazon States Language definition of the state machine.

" } }, "DeleteActivityInput": { @@ -217,6 +226,16 @@ "refs": { } }, + "DescribeStateMachineForExecutionInput": { + "base": null, + "refs": { + } + }, + "DescribeStateMachineForExecutionOutput": { + "base": null, + "refs": { + } + }, "DescribeStateMachineInput": { "base": null, "refs": { @@ -259,6 +278,7 @@ "InvalidName$message": null, "InvalidOutput$message": null, "InvalidToken$message": null, + "MissingRequiredParameter$message": null, "StateMachineAlreadyExists$message": null, "StateMachineDeleting$message": null, "StateMachineDoesNotExist$message": null, @@ -275,13 +295,13 @@ } }, "ExecutionAbortedEventDetails": { - "base": null, + "base": "

Contains details about an abort of an execution.

", "refs": { "HistoryEvent$executionAbortedEventDetails": null } }, "ExecutionAlreadyExists": { - "base": "

An execution with the same name already exists.

", + "base": "

The execution has the same name as another execution (but a different input).

Executions with the same name and input are considered idempotent.

", "refs": { } }, @@ -291,7 +311,7 @@ } }, "ExecutionFailedEventDetails": { - "base": null, + "base": "

Contains details about an execution failure event.

", "refs": { "HistoryEvent$executionFailedEventDetails": null } @@ -308,13 +328,13 @@ } }, "ExecutionListItem": { - "base": null, + "base": "

Contains details about an execution.

", "refs": { "ExecutionList$member": null } }, "ExecutionStartedEventDetails": { - "base": null, + "base": "

Contains details about the start of the execution.

", "refs": { "HistoryEvent$executionStartedEventDetails": null } @@ -328,13 +348,13 @@ } }, "ExecutionSucceededEventDetails": { - "base": null, + "base": "

Contains details about the successful termination of the execution.

", "refs": { "HistoryEvent$executionSucceededEventDetails": null } }, "ExecutionTimedOutEventDetails": { - "base": null, + "base": "

Contains details about the execution timeout which occurred during the execution.

", "refs": { "HistoryEvent$executionTimedOutEventDetails": null } @@ -360,13 +380,13 @@ } }, "HistoryEvent": { - "base": null, + "base": "

Contains details about the events of an execution.

", "refs": { "HistoryEventList$member": null } }, "HistoryEventList": { - "base": null, + "base": "

Contains details about the events which occurred during an execution.

", "refs": { "GetExecutionHistoryOutput$events": "

The list of events that occurred in the execution.

" } @@ -380,7 +400,7 @@ "Identity": { "base": null, "refs": { - "ActivityStartedEventDetails$workerName": "

The name of the worker that the task was assigned to. These names are provided by the workers when calling GetActivityTask.

" + "ActivityStartedEventDetails$workerName": "

The name of the worker that the task is assigned to. These names are provided by the workers when calling GetActivityTask.

" } }, "InvalidArn": { @@ -414,37 +434,37 @@ } }, "LambdaFunctionFailedEventDetails": { - "base": null, + "base": "

Contains details about a lambda function which failed during an execution.

", "refs": { "HistoryEvent$lambdaFunctionFailedEventDetails": null } }, "LambdaFunctionScheduleFailedEventDetails": { - "base": null, + "base": "

Contains details about a failed lambda function schedule event which occurred during an execution.

", "refs": { "HistoryEvent$lambdaFunctionScheduleFailedEventDetails": null } }, "LambdaFunctionScheduledEventDetails": { - "base": null, + "base": "

Contains details about a lambda function scheduled during an execution.

", "refs": { "HistoryEvent$lambdaFunctionScheduledEventDetails": null } }, "LambdaFunctionStartFailedEventDetails": { - "base": null, + "base": "

Contains details about a lambda function which failed to start during an execution.

", "refs": { - "HistoryEvent$lambdaFunctionStartFailedEventDetails": null + "HistoryEvent$lambdaFunctionStartFailedEventDetails": "

Contains details about a lambda function which failed to start during an execution.

" } }, "LambdaFunctionSucceededEventDetails": { - "base": null, + "base": "

Contains details about a lambda function which successfully terminated during an execution.

", "refs": { - "HistoryEvent$lambdaFunctionSucceededEventDetails": null + "HistoryEvent$lambdaFunctionSucceededEventDetails": "

Contains details about a lambda function which terminated successfully during an execution.

" } }, "LambdaFunctionTimedOutEventDetails": { - "base": null, + "base": "

Contains details about a lambda function timeout which occurred during an execution.

", "refs": { "HistoryEvent$lambdaFunctionTimedOutEventDetails": null } @@ -479,43 +499,49 @@ "refs": { } }, + "MissingRequiredParameter": { + "base": "

Request is missing a required parameter. This error occurs if both definition and roleArn are not specified.

", + "refs": { + } + }, "Name": { "base": null, "refs": { - "ActivityListItem$name": "

The name of the activity.

", - "CreateActivityInput$name": "

The name of the activity to create. This name must be unique for your AWS account and region.

", - "CreateStateMachineInput$name": "

The name of the state machine. This name must be unique for your AWS account and region.

", - "DescribeActivityOutput$name": "

The name of the activity.

", - "DescribeExecutionOutput$name": "

The name of the execution.

", - "DescribeStateMachineOutput$name": "

The name of the state machine.

", - "ExecutionListItem$name": "

The name of the execution.

", - "GetActivityTaskInput$workerName": "

An arbitrary name may be provided in order to identify the worker that the task is assigned to. This name will be used when it is logged in the execution history.

", - "StartExecutionInput$name": "

The name of the execution. This name must be unique for your AWS account and region.

", + "ActivityListItem$name": "

The name of the activity.

A name must not contain:

  • whitespace

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

", + "CreateActivityInput$name": "

The name of the activity to create. This name must be unique for your AWS account and region for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide.

A name must not contain:

  • whitespace

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

", + "CreateStateMachineInput$name": "

The name of the state machine. This name must be unique for your AWS account and region for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide.

A name must not contain:

  • whitespace

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

", + "DescribeActivityOutput$name": "

The name of the activity.

A name must not contain:

  • whitespace

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

", + "DescribeExecutionOutput$name": "

The name of the execution.

A name must not contain:

  • whitespace

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

", + "DescribeStateMachineForExecutionOutput$name": "

The name of the state machine associated with the execution.

", + "DescribeStateMachineOutput$name": "

The name of the state machine.

A name must not contain:

  • whitespace

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

", + "ExecutionListItem$name": "

The name of the execution.

A name must not contain:

  • whitespace

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

", + "GetActivityTaskInput$workerName": "

You can provide an arbitrary name in order to identify the worker that the task is assigned to. This name is used when it is logged in the execution history.

", + "StartExecutionInput$name": "

The name of the execution. This name must be unique for your AWS account and region for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide.

An execution can't use the name of another execution for 90 days.

When you make multiple StartExecution calls with the same name, the new execution doesn't run and the following rules apply:

  • When the original execution is open and the execution input from the new call is different, the ExecutionAlreadyExists message is returned.

  • When the original execution is open and the execution input from the new call is identical, the Success message is returned.

  • When the original execution is closed, the ExecutionAlreadyExists message is returned regardless of input.

A name must not contain:

  • whitespace

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

", "StateEnteredEventDetails$name": "

The name of the state.

", - "StateExitedEventDetails$name": "

The name of the state.

", - "StateMachineListItem$name": "

The name of the state machine.

" + "StateExitedEventDetails$name": "

The name of the state.

A name must not contain:

  • whitespace

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

", + "StateMachineListItem$name": "

The name of the state machine.

A name must not contain:

  • whitespace

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" } }, "PageSize": { "base": null, "refs": { - "GetExecutionHistoryInput$maxResults": "

The maximum number of results that will be returned per call. nextToken can be used to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", - "ListActivitiesInput$maxResults": "

The maximum number of results that will be returned per call. nextToken can be used to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", - "ListExecutionsInput$maxResults": "

The maximum number of results that will be returned per call. nextToken can be used to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", - "ListStateMachinesInput$maxResults": "

The maximum number of results that will be returned per call. nextToken can be used to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

" + "GetExecutionHistoryInput$maxResults": "

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 100 and the maximum allowed page size is 100. A value of 0 uses the default.

This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.

", + "ListActivitiesInput$maxResults": "

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 100 and the maximum allowed page size is 100. A value of 0 uses the default.

This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.

", + "ListExecutionsInput$maxResults": "

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 100 and the maximum allowed page size is 100. A value of 0 uses the default.

This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.

", + "ListStateMachinesInput$maxResults": "

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 100 and the maximum allowed page size is 100. A value of 0 uses the default.

This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.

" } }, "PageToken": { "base": null, "refs": { - "GetExecutionHistoryInput$nextToken": "

If a nextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", - "GetExecutionHistoryOutput$nextToken": "

If a nextToken is returned, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", - "ListActivitiesInput$nextToken": "

If a nextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", - "ListActivitiesOutput$nextToken": "

If a nextToken is returned, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", - "ListExecutionsInput$nextToken": "

If a nextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", - "ListExecutionsOutput$nextToken": "

If a nextToken is returned, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", - "ListStateMachinesInput$nextToken": "

If a nextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", - "ListStateMachinesOutput$nextToken": "

If a nextToken is returned, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

" + "GetExecutionHistoryInput$nextToken": "

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", + "GetExecutionHistoryOutput$nextToken": "

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", + "ListActivitiesInput$nextToken": "

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", + "ListActivitiesOutput$nextToken": "

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", + "ListExecutionsInput$nextToken": "

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", + "ListExecutionsOutput$nextToken": "

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", + "ListStateMachinesInput$nextToken": "

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

", + "ListStateMachinesOutput$nextToken": "

If a nextToken is returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextToken. Keep all other arguments unchanged.

The configured maxResults determines how many results can be returned in a single call.

" } }, "ReverseOrder": { @@ -565,13 +591,13 @@ } }, "StateEnteredEventDetails": { - "base": null, + "base": "

Contains details about a state entered during an execution.

", "refs": { "HistoryEvent$stateEnteredEventDetails": null } }, "StateExitedEventDetails": { - "base": null, + "base": "

Contains details about an exit from a state during an execution.

", "refs": { "HistoryEvent$stateExitedEventDetails": null } @@ -603,7 +629,7 @@ } }, "StateMachineListItem": { - "base": null, + "base": "

Contains details about the state machine.

", "refs": { "StateMachineList$member": null } @@ -639,8 +665,8 @@ "refs": { "GetActivityTaskOutput$taskToken": "

A token that identifies the scheduled task. This token must be copied and included in subsequent calls to SendTaskHeartbeat, SendTaskSuccess or SendTaskFailure in order to report the progress or completion of the task.

", "SendTaskFailureInput$taskToken": "

The token that represents this task. Task tokens are generated by the service when the tasks are assigned to a worker (see GetActivityTask::taskToken).

", - "SendTaskHeartbeatInput$taskToken": "

The token that represents this task. Task tokens are generated by the service when the tasks are assigned to a worker (see GetActivityTask::taskToken).

", - "SendTaskSuccessInput$taskToken": "

The token that represents this task. Task tokens are generated by the service when the tasks are assigned to a worker (see GetActivityTask::taskToken).

" + "SendTaskHeartbeatInput$taskToken": "

The token that represents this task. Task tokens are generated by the service when the tasks are assigned to a worker (see GetActivityTaskOutput$taskToken).

", + "SendTaskSuccessInput$taskToken": "

The token that represents this task. Task tokens are generated by the service when the tasks are assigned to a worker (see GetActivityTaskOutput$taskToken).

" } }, "TimeoutInSeconds": { @@ -654,19 +680,31 @@ "Timestamp": { "base": null, "refs": { - "ActivityListItem$creationDate": "

The date the activity was created.

", - "CreateActivityOutput$creationDate": "

The date the activity was created.

", - "CreateStateMachineOutput$creationDate": "

The date the state machine was created.

", - "DescribeActivityOutput$creationDate": "

The date the activity was created.

", - "DescribeExecutionOutput$startDate": "

The date the execution was started.

", + "ActivityListItem$creationDate": "

The date the activity is created.

", + "CreateActivityOutput$creationDate": "

The date the activity is created.

", + "CreateStateMachineOutput$creationDate": "

The date the state machine is created.

", + "DescribeActivityOutput$creationDate": "

The date the activity is created.

", + "DescribeExecutionOutput$startDate": "

The date the execution is started.

", "DescribeExecutionOutput$stopDate": "

If the execution has already ended, the date the execution stopped.

", - "DescribeStateMachineOutput$creationDate": "

The date the state machine was created.

", + "DescribeStateMachineForExecutionOutput$updateDate": "

The date and time the state machine associated with an execution was updated. For a newly created state machine, this is the creation date.

", + "DescribeStateMachineOutput$creationDate": "

The date the state machine is created.

", "ExecutionListItem$startDate": "

The date the execution started.

", "ExecutionListItem$stopDate": "

If the execution already ended, the date the execution stopped.

", - "HistoryEvent$timestamp": "

The date the event occured.

", - "StartExecutionOutput$startDate": "

The date the execution was started.

", - "StateMachineListItem$creationDate": "

The date the state machine was created.

", - "StopExecutionOutput$stopDate": "

The date the execution was stopped.

" + "HistoryEvent$timestamp": "

The date the event occurred.

", + "StartExecutionOutput$startDate": "

The date the execution is started.

", + "StateMachineListItem$creationDate": "

The date the state machine is created.

", + "StopExecutionOutput$stopDate": "

The date the execution is stopped.

", + "UpdateStateMachineOutput$updateDate": "

The date and time the state machine was updated.

" + } + }, + "UpdateStateMachineInput": { + "base": null, + "refs": { + } + }, + "UpdateStateMachineOutput": { + "base": null, + "refs": { } } } diff --git a/models/apis/states/2016-11-23/paginators-1.json b/models/apis/states/2016-11-23/paginators-1.json index 9feccba63c8..d7f05804c41 100644 --- a/models/apis/states/2016-11-23/paginators-1.json +++ b/models/apis/states/2016-11-23/paginators-1.json @@ -2,27 +2,27 @@ "pagination": { "GetExecutionHistory": { "input_token": "nextToken", - "output_token": "nextToken", "limit_key": "maxResults", + "output_token": "nextToken", "result_key": "events" }, "ListActivities": { "input_token": "nextToken", - "output_token": "nextToken", "limit_key": "maxResults", + "output_token": "nextToken", "result_key": "activities" }, "ListExecutions": { "input_token": "nextToken", - "output_token": "nextToken", "limit_key": "maxResults", + "output_token": "nextToken", "result_key": "executions" }, "ListStateMachines": { "input_token": "nextToken", - "output_token": "nextToken", "limit_key": "maxResults", + "output_token": "nextToken", "result_key": "stateMachines" } } -} +} \ No newline at end of file diff --git a/models/apis/storagegateway/2013-06-30/api-2.json b/models/apis/storagegateway/2013-06-30/api-2.json index b26ad65ad2d..5a3fded6f09 100644 --- a/models/apis/storagegateway/2013-06-30/api-2.json +++ b/models/apis/storagegateway/2013-06-30/api-2.json @@ -6,6 +6,7 @@ "jsonVersion":"1.1", "protocol":"json", "serviceFullName":"AWS Storage Gateway", + "serviceId":"Storage Gateway", "signatureVersion":"v4", "targetPrefix":"StorageGateway_20130630", "uid":"storagegateway-2013-06-30" @@ -611,6 +612,19 @@ {"shape":"InternalServerError"} ] }, + "NotifyWhenUploaded":{ + "name":"NotifyWhenUploaded", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"NotifyWhenUploadedInput"}, + "output":{"shape":"NotifyWhenUploadedOutput"}, + "errors":[ + {"shape":"InvalidGatewayRequestException"}, + {"shape":"InternalServerError"} + ] + }, "RefreshCache":{ "name":"RefreshCache", "http":{ @@ -943,7 +957,8 @@ "VolumeProgress":{"shape":"DoubleObject"}, "SourceSnapshotId":{"shape":"SnapshotId"}, "VolumeiSCSIAttributes":{"shape":"VolumeiSCSIAttributes"}, - "CreatedDate":{"shape":"CreatedDate"} + "CreatedDate":{"shape":"CreatedDate"}, + "VolumeUsedInBytes":{"shape":"VolumeUsedInBytes"} } }, "CachediSCSIVolumes":{ @@ -1052,7 +1067,8 @@ "DefaultStorageClass":{"shape":"StorageClass"}, "ClientList":{"shape":"FileShareClientList"}, "Squash":{"shape":"Squash"}, - "ReadOnly":{"shape":"Boolean"} + "ReadOnly":{"shape":"Boolean"}, + "GuessMIMETypeEnabled":{"shape":"Boolean"} } }, "CreateNFSFileShareOutput":{ @@ -1211,7 +1227,8 @@ "type":"structure", "required":["FileShareARN"], "members":{ - "FileShareARN":{"shape":"FileShareARN"} + "FileShareARN":{"shape":"FileShareARN"}, + "ForceDelete":{"shape":"boolean"} } }, "DeleteFileShareOutput":{ @@ -1973,7 +1990,8 @@ "DefaultStorageClass":{"shape":"StorageClass"}, "ClientList":{"shape":"FileShareClientList"}, "Squash":{"shape":"Squash"}, - "ReadOnly":{"shape":"Boolean"} + "ReadOnly":{"shape":"Boolean"}, + "GuessMIMETypeEnabled":{"shape":"Boolean"} } }, "NFSFileShareInfoList":{ @@ -1997,6 +2015,25 @@ "max":25, "min":1 }, + "NotificationId":{ + "type":"string", + "max":2048, + "min":1 + }, + "NotifyWhenUploadedInput":{ + "type":"structure", + "required":["FileShareARN"], + "members":{ + "FileShareARN":{"shape":"FileShareARN"} + } + }, + "NotifyWhenUploadedOutput":{ + "type":"structure", + "members":{ + "FileShareARN":{"shape":"FileShareARN"}, + "NotificationId":{"shape":"NotificationId"} + } + }, "NumTapesToCreate":{ "type":"integer", "max":10, @@ -2205,7 +2242,8 @@ "SourceSnapshotId":{"shape":"SnapshotId"}, "PreservedExistingData":{"shape":"boolean"}, "VolumeiSCSIAttributes":{"shape":"VolumeiSCSIAttributes"}, - "CreatedDate":{"shape":"CreatedDate"} + "CreatedDate":{"shape":"CreatedDate"}, + "VolumeUsedInBytes":{"shape":"VolumeUsedInBytes"} } }, "StorediSCSIVolumes":{ @@ -2443,7 +2481,8 @@ "DefaultStorageClass":{"shape":"StorageClass"}, "ClientList":{"shape":"FileShareClientList"}, "Squash":{"shape":"Squash"}, - "ReadOnly":{"shape":"Boolean"} + "ReadOnly":{"shape":"Boolean"}, + "GuessMIMETypeEnabled":{"shape":"Boolean"} } }, "UpdateNFSFileShareOutput":{ @@ -2567,6 +2606,7 @@ "max":100, "min":3 }, + "VolumeUsedInBytes":{"type":"long"}, "VolumeiSCSIAttributes":{ "type":"structure", "members":{ diff --git a/models/apis/storagegateway/2013-06-30/docs-2.json b/models/apis/storagegateway/2013-06-30/docs-2.json index eecc2857d9c..610e0ac5ab8 100644 --- a/models/apis/storagegateway/2013-06-30/docs-2.json +++ b/models/apis/storagegateway/2013-06-30/docs-2.json @@ -1,58 +1,59 @@ { "version": "2.0", - "service": "AWS Storage Gateway Service

AWS Storage Gateway is the service that connects an on-premises software appliance with cloud-based storage to provide seamless and secure integration between an organization's on-premises IT environment and AWS's storage infrastructure. The service enables you to securely upload data to the AWS cloud for cost effective backup and rapid disaster recovery.

Use the following links to get started using the AWS Storage Gateway Service API Reference:

AWS Storage Gateway resource IDs are in uppercase. When you use these resource IDs with the Amazon EC2 API, EC2 expects resource IDs in lowercase. You must change your resource ID to lowercase to use it with the EC2 API. For example, in Storage Gateway the ID for a volume might be vol-AA22BB012345DAF670. When you use this ID with the EC2 API, you must change it to vol-aa22bb012345daf670. Otherwise, the EC2 API might not behave as expected.

IDs for Storage Gateway volumes and Amazon EBS snapshots created from gateway volumes are changing to a longer format. Starting in December 2016, all new volumes and snapshots will be created with a 17-character string. Starting in April 2016, you will be able to use these longer IDs so you can test your systems with the new format. For more information, see Longer EC2 and EBS Resource IDs.

For example, a volume Amazon Resource Name (ARN) with the longer volume ID format looks like the following:

arn:aws:storagegateway:us-west-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABBCCDDEEFFG.

A snapshot ID with the longer ID format looks like the following: snap-78e226633445566ee.

For more information, see Announcement: Heads-up – Longer AWS Storage Gateway volume and snapshot IDs coming in 2016.

", + "service": "AWS Storage Gateway Service

AWS Storage Gateway is the service that connects an on-premises software appliance with cloud-based storage to provide seamless and secure integration between an organization's on-premises IT environment and AWS's storage infrastructure. The service enables you to securely upload data to the AWS cloud for cost effective backup and rapid disaster recovery.

Use the following links to get started using the AWS Storage Gateway Service API Reference:

AWS Storage Gateway resource IDs are in uppercase. When you use these resource IDs with the Amazon EC2 API, EC2 expects resource IDs in lowercase. You must change your resource ID to lowercase to use it with the EC2 API. For example, in Storage Gateway the ID for a volume might be vol-AA22BB012345DAF670. When you use this ID with the EC2 API, you must change it to vol-aa22bb012345daf670. Otherwise, the EC2 API might not behave as expected.

IDs for Storage Gateway volumes and Amazon EBS snapshots created from gateway volumes are changing to a longer format. Starting in December 2016, all new volumes and snapshots will be created with a 17-character string. Starting in April 2016, you will be able to use these longer IDs so you can test your systems with the new format. For more information, see Longer EC2 and EBS Resource IDs.

For example, a volume Amazon Resource Name (ARN) with the longer volume ID format looks like the following:

arn:aws:storagegateway:us-west-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABBCCDDEEFFG.

A snapshot ID with the longer ID format looks like the following: snap-78e226633445566ee.

For more information, see Announcement: Heads-up – Longer AWS Storage Gateway volume and snapshot IDs coming in 2016.

", "operations": { "ActivateGateway": "

Activates the gateway you previously deployed on your host. For more information, see Activate the AWS Storage Gateway. In the activation process, you specify information such as the region you want to use for storing snapshots or tapes, the time zone for scheduled snapshots the gateway snapshot schedule window, an activation key, and a name for your gateway. The activation process also associates your gateway with your account; for more information, see UpdateGatewayInformation.

You must turn on the gateway VM before you can activate your gateway.

", - "AddCache": "

Configures one or more gateway local disks as cache for a gateway. This operation is only supported in the cached volume, tape and file gateway architectures (see Storage Gateway Concepts).

In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add cache, and one or more disk IDs that you want to configure as cache.

", + "AddCache": "

Configures one or more gateway local disks as cache for a gateway. This operation is only supported in the cached volume, tape and file gateway type (see Storage Gateway Concepts).

In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add cache, and one or more disk IDs that you want to configure as cache.

", "AddTagsToResource": "

Adds one or more tags to the specified resource. You use tags to add metadata to resources, which you can use to categorize these resources. For example, you can categorize resources by purpose, owner, environment, or team. Each tag consists of a key and a value, which you define. You can add tags to the following AWS Storage Gateway resources:

  • Storage gateways of all types

  • Storage Volumes

  • Virtual Tapes

You can create a maximum of 10 tags for each resource. Virtual tapes and storage volumes that are recovered to a new gateway maintain their tags.

", - "AddUploadBuffer": "

Configures one or more gateway local disks as upload buffer for a specified gateway. This operation is supported for the stored volume, cached volume and tape gateway architectures.

In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add upload buffer, and one or more disk IDs that you want to configure as upload buffer.

", - "AddWorkingStorage": "

Configures one or more gateway local disks as working storage for a gateway. This operation is only supported in the stored volume gateway architecture. This operation is deprecated in cached volume API version 20120630. Use AddUploadBuffer instead.

Working storage is also referred to as upload buffer. You can also use the AddUploadBuffer operation to add upload buffer to a stored volume gateway.

In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add working storage, and one or more disk IDs that you want to configure as working storage.

", - "CancelArchival": "

Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated. This operation is only supported in the tape gateway architecture.

", - "CancelRetrieval": "

Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to a gateway after the retrieval process is initiated. The virtual tape is returned to the VTS.

", - "CreateCachediSCSIVolume": "

Creates a cached volume on a specified cached volume gateway. This operation is only supported in the cached volume gateway architecture.

Cache storage must be allocated to the gateway before you can create a cached volume. Use the AddCache operation to add cache storage to a gateway.

In the request, you must specify the gateway, size of the volume in bytes, the iSCSI target name, an IP address on which to expose the target, and a unique client token. In response, the gateway creates the volume and returns information about it. This information includes the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target.

Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN for this cached volume, which creates an exact copy of the existing volume’s latest recovery point. The VolumeSizeInBytes value must be equal to or larger than the size of the copied volume, in bytes.

", - "CreateNFSFileShare": "

Creates a file share on an existing file gateway. In Storage Gateway, a file share is a file system mount point backed by Amazon S3 cloud storage. Storage Gateway exposes file shares using a Network File System (NFS) interface. This operation is only supported in the file gateway architecture.

File gateway requires AWS Security Token Service (AWS STS) to be activated to enable you create a file share. Make sure AWS STS is activated in the region you are creating your file gateway in. If AWS STS is not activated in the region, activate it. For information about how to activate AWS STS, see Activating and Deactivating AWS STS in an AWS Region in the AWS Identity and Access Management User Guide.

File gateway does not support creating hard or symbolic links on a file share.

", - "CreateSnapshot": "

Initiates a snapshot of a volume.

AWS Storage Gateway provides the ability to back up point-in-time snapshots of your data to Amazon Simple Storage (S3) for durable off-site recovery, as well as import the data to an Amazon Elastic Block Store (EBS) volume in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway volume on a scheduled or ad-hoc basis. This API enables you to take ad-hoc snapshot. For more information, see Editing a Snapshot Schedule.

In the CreateSnapshot request you identify the volume by providing its Amazon Resource Name (ARN). You must also provide description for the snapshot. When AWS Storage Gateway takes the snapshot of specified volume, the snapshot and description appears in the AWS Storage Gateway Console. In response, AWS Storage Gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. This operation is only supported in stored and cached volume gateway architecture.

To list or delete a snapshot, you must use the Amazon EC2 API. For more information, see DescribeSnapshots or DeleteSnapshot in the EC2 API reference.

Volume and snapshot IDs are changing to a longer length ID format. For more information, see the important note on the Welcome page.

", - "CreateSnapshotFromVolumeRecoveryPoint": "

Initiates a snapshot of a gateway from a volume recovery point. This operation is only supported in the cached volume gateway architecture.

A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot. To get a list of volume recovery point for cached volume gateway, use ListVolumeRecoveryPoints.

In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide a description for the snapshot. When the gateway takes a snapshot of the specified volume, the snapshot and its description appear in the AWS Storage Gateway console. In response, the gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot.

To list or delete a snapshot, you must use the Amazon EC2 API. For more information, in Amazon Elastic Compute Cloud API Reference.

", - "CreateStorediSCSIVolume": "

Creates a volume on a specified gateway. This operation is only supported in the stored volume gateway architecture.

The size of the volume to create is inferred from the disk size. You can choose to preserve existing data on the disk, create volume from an existing snapshot, or create an empty volume. If you choose to create an empty gateway volume, then any existing data on the disk is erased.

In the request you must specify the gateway and the disk information on which you are creating the volume. In response, the gateway creates the volume and returns volume information such as the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target.

", - "CreateTapeWithBarcode": "

Creates a virtual tape by using your own barcode. You write data to the virtual tape and then archive the tape. This operation is only supported in the tape gateway architecture.

Cache storage must be allocated to the gateway before you can create a virtual tape. Use the AddCache operation to add cache storage to a gateway.

", - "CreateTapes": "

Creates one or more virtual tapes. You write data to the virtual tapes and then archive the tapes. This operation is only supported in the tape gateway architecture.

Cache storage must be allocated to the gateway before you can create virtual tapes. Use the AddCache operation to add cache storage to a gateway.

", + "AddUploadBuffer": "

Configures one or more gateway local disks as upload buffer for a specified gateway. This operation is supported for the stored volume, cached volume and tape gateway types.

In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add upload buffer, and one or more disk IDs that you want to configure as upload buffer.

", + "AddWorkingStorage": "

Configures one or more gateway local disks as working storage for a gateway. This operation is only supported in the stored volume gateway type. This operation is deprecated in cached volume API version 20120630. Use AddUploadBuffer instead.

Working storage is also referred to as upload buffer. You can also use the AddUploadBuffer operation to add upload buffer to a stored volume gateway.

In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add working storage, and one or more disk IDs that you want to configure as working storage.

", + "CancelArchival": "

Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated. This operation is only supported in the tape gateway type.

", + "CancelRetrieval": "

Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to a gateway after the retrieval process is initiated. The virtual tape is returned to the VTS. This operation is only supported in the tape gateway type.

", + "CreateCachediSCSIVolume": "

Creates a cached volume on a specified cached volume gateway. This operation is only supported in the cached volume gateway type.

Cache storage must be allocated to the gateway before you can create a cached volume. Use the AddCache operation to add cache storage to a gateway.

In the request, you must specify the gateway, size of the volume in bytes, the iSCSI target name, an IP address on which to expose the target, and a unique client token. In response, the gateway creates the volume and returns information about it. This information includes the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target.

Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN for this cached volume, which creates an exact copy of the existing volume’s latest recovery point. The VolumeSizeInBytes value must be equal to or larger than the size of the copied volume, in bytes.

", + "CreateNFSFileShare": "

Creates a file share on an existing file gateway. In Storage Gateway, a file share is a file system mount point backed by Amazon S3 cloud storage. Storage Gateway exposes file shares using a Network File System (NFS) interface. This operation is only supported in the file gateway type.

File gateway requires AWS Security Token Service (AWS STS) to be activated to enable you create a file share. Make sure AWS STS is activated in the region you are creating your file gateway in. If AWS STS is not activated in the region, activate it. For information about how to activate AWS STS, see Activating and Deactivating AWS STS in an AWS Region in the AWS Identity and Access Management User Guide.

File gateway does not support creating hard or symbolic links on a file share.

", + "CreateSnapshot": "

Initiates a snapshot of a volume.

AWS Storage Gateway provides the ability to back up point-in-time snapshots of your data to Amazon Simple Storage (S3) for durable off-site recovery, as well as import the data to an Amazon Elastic Block Store (EBS) volume in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway volume on a scheduled or ad-hoc basis. This API enables you to take ad-hoc snapshot. For more information, see Editing a Snapshot Schedule.

In the CreateSnapshot request you identify the volume by providing its Amazon Resource Name (ARN). You must also provide description for the snapshot. When AWS Storage Gateway takes the snapshot of specified volume, the snapshot and description appears in the AWS Storage Gateway Console. In response, AWS Storage Gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. This operation is only supported in stored and cached volume gateway type.

To list or delete a snapshot, you must use the Amazon EC2 API. For more information, see DescribeSnapshots or DeleteSnapshot in the EC2 API reference.

Volume and snapshot IDs are changing to a longer length ID format. For more information, see the important note on the Welcome page.

", + "CreateSnapshotFromVolumeRecoveryPoint": "

Initiates a snapshot of a gateway from a volume recovery point. This operation is only supported in the cached volume gateway type.

A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot. To get a list of volume recovery point for cached volume gateway, use ListVolumeRecoveryPoints.

In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide a description for the snapshot. When the gateway takes a snapshot of the specified volume, the snapshot and its description appear in the AWS Storage Gateway console. In response, the gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot.

To list or delete a snapshot, you must use the Amazon EC2 API. For more information, in Amazon Elastic Compute Cloud API Reference.

", + "CreateStorediSCSIVolume": "

Creates a volume on a specified gateway. This operation is only supported in the stored volume gateway type.

The size of the volume to create is inferred from the disk size. You can choose to preserve existing data on the disk, create volume from an existing snapshot, or create an empty volume. If you choose to create an empty gateway volume, then any existing data on the disk is erased.

In the request you must specify the gateway and the disk information on which you are creating the volume. In response, the gateway creates the volume and returns volume information such as the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target.

", + "CreateTapeWithBarcode": "

Creates a virtual tape by using your own barcode. You write data to the virtual tape and then archive the tape. A barcode is unique and can not be reused if it has already been used on a tape . This applies to barcodes used on deleted tapes. This operation is only supported in the tape gateway type.

Cache storage must be allocated to the gateway before you can create a virtual tape. Use the AddCache operation to add cache storage to a gateway.

", + "CreateTapes": "

Creates one or more virtual tapes. You write data to the virtual tapes and then archive the tapes. This operation is only supported in the tape gateway type.

Cache storage must be allocated to the gateway before you can create virtual tapes. Use the AddCache operation to add cache storage to a gateway.

", "DeleteBandwidthRateLimit": "

Deletes the bandwidth rate limits of a gateway. You can delete either the upload and download bandwidth rate limit, or you can delete both. If you delete only one of the limits, the other limit remains unchanged. To specify which gateway to work with, use the Amazon Resource Name (ARN) of the gateway in your request.

", "DeleteChapCredentials": "

Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target and initiator pair.

", - "DeleteFileShare": "

Deletes a file share from a file gateway. This operation is only supported in the file gateway architecture.

", + "DeleteFileShare": "

Deletes a file share from a file gateway. This operation is only supported in the file gateway type.

", "DeleteGateway": "

Deletes a gateway. To specify which gateway to delete, use the Amazon Resource Name (ARN) of the gateway in your request. The operation deletes the gateway; however, it does not delete the gateway virtual machine (VM) from your host computer.

After you delete a gateway, you cannot reactivate it. Completed snapshots of the gateway volumes are not deleted upon deleting the gateway, however, pending snapshots will not complete. After you delete a gateway, your next step is to remove it from your environment.

You no longer pay software charges after the gateway is deleted; however, your existing Amazon EBS snapshots persist and you will continue to be billed for these snapshots. You can choose to remove all remaining Amazon EBS snapshots by canceling your Amazon EC2 subscription.  If you prefer not to cancel your Amazon EC2 subscription, you can delete your snapshots using the Amazon EC2 console. For more information, see the AWS Storage Gateway Detail Page.

", - "DeleteSnapshotSchedule": "

Deletes a snapshot of a volume.

You can take snapshots of your gateway volumes on a scheduled or ad hoc basis. This API action enables you to delete a snapshot schedule for a volume. For more information, see Working with Snapshots. In the DeleteSnapshotSchedule request, you identify the volume by providing its Amazon Resource Name (ARN).

To list or delete a snapshot, you must use the Amazon EC2 API. in Amazon Elastic Compute Cloud API Reference.

", - "DeleteTape": "

Deletes the specified virtual tape. This operation is only supported in the tape gateway architecture.

", - "DeleteTapeArchive": "

Deletes the specified virtual tape from the virtual tape shelf (VTS). This operation is only supported in the tape gateway architecture.

", - "DeleteVolume": "

Deletes the specified storage volume that you previously created using the CreateCachediSCSIVolume or CreateStorediSCSIVolume API. This operation is only supported in the cached volume and stored volume architectures. For stored volume gateways, the local disk that was configured as the storage volume is not deleted. You can reuse the local disk to create another storage volume.

Before you delete a volume, make sure there are no iSCSI connections to the volume you are deleting. You should also make sure there is no snapshot in progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to query snapshots on the volume you are deleting and check the snapshot status. For more information, go to DescribeSnapshots in the Amazon Elastic Compute Cloud API Reference.

In the request, you must provide the Amazon Resource Name (ARN) of the storage volume you want to delete.

", + "DeleteSnapshotSchedule": "

Deletes a snapshot of a volume.

You can take snapshots of your gateway volumes on a scheduled or ad hoc basis. This API action enables you to delete a snapshot schedule for a volume. For more information, see Working with Snapshots. In the DeleteSnapshotSchedule request, you identify the volume by providing its Amazon Resource Name (ARN). This operation is only supported in stored and cached volume gateway types.

To list or delete a snapshot, you must use the Amazon EC2 API. in Amazon Elastic Compute Cloud API Reference.

", + "DeleteTape": "

Deletes the specified virtual tape. This operation is only supported in the tape gateway type.

", + "DeleteTapeArchive": "

Deletes the specified virtual tape from the virtual tape shelf (VTS). This operation is only supported in the tape gateway type.

", + "DeleteVolume": "

Deletes the specified storage volume that you previously created using the CreateCachediSCSIVolume or CreateStorediSCSIVolume API. This operation is only supported in the cached volume and stored volume types. For stored volume gateways, the local disk that was configured as the storage volume is not deleted. You can reuse the local disk to create another storage volume.

Before you delete a volume, make sure there are no iSCSI connections to the volume you are deleting. You should also make sure there is no snapshot in progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to query snapshots on the volume you are deleting and check the snapshot status. For more information, go to DescribeSnapshots in the Amazon Elastic Compute Cloud API Reference.

In the request, you must provide the Amazon Resource Name (ARN) of the storage volume you want to delete.

", "DescribeBandwidthRateLimit": "

Returns the bandwidth rate limits of a gateway. By default, these limits are not set, which means no bandwidth rate limiting is in effect.

This operation only returns a value for a bandwidth rate limit only if the limit is set. If no limits are set for the gateway, then this operation returns only the gateway ARN in the response body. To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request.

", - "DescribeCache": "

Returns information about the cache of a gateway. This operation is only supported in the cached volume,tape and file gateway architectures.

The response includes disk IDs that are configured as cache, and it includes the amount of cache allocated and used.

", - "DescribeCachediSCSIVolumes": "

Returns a description of the gateway volumes specified in the request. This operation is only supported in the cached volume gateway architecture.

The list of gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway returns volume information sorted by volume Amazon Resource Name (ARN).

", + "DescribeCache": "

Returns information about the cache of a gateway. This operation is only supported in the cached volume, tape and file gateway types.

The response includes disk IDs that are configured as cache, and it includes the amount of cache allocated and used.

", + "DescribeCachediSCSIVolumes": "

Returns a description of the gateway volumes specified in the request. This operation is only supported in the cached volume gateway types.

The list of gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway returns volume information sorted by volume Amazon Resource Name (ARN).

", "DescribeChapCredentials": "

Returns an array of Challenge-Handshake Authentication Protocol (CHAP) credentials information for a specified iSCSI target, one for each target-initiator pair.

", "DescribeGatewayInformation": "

Returns metadata about a gateway such as its name, network interfaces, configured time zone, and the state (whether the gateway is running or not). To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request.

", "DescribeMaintenanceStartTime": "

Returns your gateway's weekly maintenance start time including the day and time of the week. Note that values are in terms of the gateway's time zone.

", - "DescribeNFSFileShares": "

Gets a description for one or more file shares from a file gateway. This operation is only supported in file gateways.

", - "DescribeSnapshotSchedule": "

Describes the snapshot schedule for the specified gateway volume. The snapshot schedule information includes intervals at which snapshots are automatically initiated on the volume. This operation is only supported in the cached volume and stored volume architectures.

", - "DescribeStorediSCSIVolumes": "

Returns the description of the gateway volumes specified in the request. The list of gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway returns volume information sorted by volume ARNs. This operation is only supported in stored volume gateway architecture.

", - "DescribeTapeArchives": "

Returns a description of specified virtual tapes in the virtual tape shelf (VTS). This operation is only supported in the tape gateway architecture.

If a specific TapeARN is not specified, AWS Storage Gateway returns a description of all virtual tapes found in the VTS associated with your account.

", - "DescribeTapeRecoveryPoints": "

Returns a list of virtual tape recovery points that are available for the specified tape gateway.

A recovery point is a point-in-time view of a virtual tape at which all the data on the virtual tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway. This operation is only supported in the tape gateway architecture.

", - "DescribeTapes": "

Returns a description of the specified Amazon Resource Name (ARN) of virtual tapes. If a TapeARN is not specified, returns a description of all virtual tapes associated with the specified gateway. This operation is only supported in the tape gateway architecture.

", - "DescribeUploadBuffer": "

Returns information about the upload buffer of a gateway. This operation is supported for the stored volume, cached volume and tape gateway architectures.

The response includes disk IDs that are configured as upload buffer space, and it includes the amount of upload buffer space allocated and used.

", - "DescribeVTLDevices": "

Returns a description of virtual tape library (VTL) devices for the specified tape gateway. In the response, AWS Storage Gateway returns VTL device information.

This operation is only supported in the tape gateway architecture.

", - "DescribeWorkingStorage": "

Returns information about the working storage of a gateway. This operation is only supported in the stored volumes gateway architecture. This operation is deprecated in cached volumes API version (20120630). Use DescribeUploadBuffer instead.

Working storage is also referred to as upload buffer. You can also use the DescribeUploadBuffer operation to add upload buffer to a stored volume gateway.

The response includes disk IDs that are configured as working storage, and it includes the amount of working storage allocated and used.

", - "DisableGateway": "

Disables a tape gateway when the gateway is no longer functioning. For example, if your gateway VM is damaged, you can disable the gateway so you can recover virtual tapes.

Use this operation for a tape gateway that is not reachable or not functioning. This operation is only supported in the tape gateway architectures.

Once a gateway is disabled it cannot be enabled.

", - "ListFileShares": "

Gets a list of the file shares for a specific file gateway, or the list of file shares that belong to the calling user account. This operation is only supported in the file gateway architecture.

", + "DescribeNFSFileShares": "

Gets a description for one or more file shares from a file gateway. This operation is only supported in the file gateway type.

", + "DescribeSnapshotSchedule": "

Describes the snapshot schedule for the specified gateway volume. The snapshot schedule information includes intervals at which snapshots are automatically initiated on the volume. This operation is only supported in the cached volume and stored volume types.

", + "DescribeStorediSCSIVolumes": "

Returns the description of the gateway volumes specified in the request. The list of gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway returns volume information sorted by volume ARNs. This operation is only supported in stored volume gateway type.

", + "DescribeTapeArchives": "

Returns a description of specified virtual tapes in the virtual tape shelf (VTS). This operation is only supported in the tape gateway type.

If a specific TapeARN is not specified, AWS Storage Gateway returns a description of all virtual tapes found in the VTS associated with your account.

", + "DescribeTapeRecoveryPoints": "

Returns a list of virtual tape recovery points that are available for the specified tape gateway.

A recovery point is a point-in-time view of a virtual tape at which all the data on the virtual tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway. This operation is only supported in the tape gateway type.

", + "DescribeTapes": "

Returns a description of the specified Amazon Resource Name (ARN) of virtual tapes. If a TapeARN is not specified, returns a description of all virtual tapes associated with the specified gateway. This operation is only supported in the tape gateway type.

", + "DescribeUploadBuffer": "

Returns information about the upload buffer of a gateway. This operation is supported for the stored volume, cached volume and tape gateway types.

The response includes disk IDs that are configured as upload buffer space, and it includes the amount of upload buffer space allocated and used.

", + "DescribeVTLDevices": "

Returns a description of virtual tape library (VTL) devices for the specified tape gateway. In the response, AWS Storage Gateway returns VTL device information.

This operation is only supported in the tape gateway type.

", + "DescribeWorkingStorage": "

Returns information about the working storage of a gateway. This operation is only supported in the stored volumes gateway type. This operation is deprecated in cached volumes API version (20120630). Use DescribeUploadBuffer instead.

Working storage is also referred to as upload buffer. You can also use the DescribeUploadBuffer operation to add upload buffer to a stored volume gateway.

The response includes disk IDs that are configured as working storage, and it includes the amount of working storage allocated and used.

", + "DisableGateway": "

Disables a tape gateway when the gateway is no longer functioning. For example, if your gateway VM is damaged, you can disable the gateway so you can recover virtual tapes.

Use this operation for a tape gateway that is not reachable or not functioning. This operation is only supported in the tape gateway type.

Once a gateway is disabled it cannot be enabled.

", + "ListFileShares": "

Gets a list of the file shares for a specific file gateway, or the list of file shares that belong to the calling user account. This operation is only supported in the file gateway type.

", "ListGateways": "

Lists gateways owned by an AWS account in a region specified in the request. The returned list is ordered by gateway Amazon Resource Name (ARN).

By default, the operation returns a maximum of 100 gateways. This operation supports pagination that allows you to optionally reduce the number of gateways returned in a response.

If you have more gateways than are returned in a response (that is, the response returns only a truncated list of your gateways), the response contains a marker that you can specify in your next request to fetch the next page of gateways.

", "ListLocalDisks": "

Returns a list of the gateway's local disks. To specify which gateway to describe, you use the Amazon Resource Name (ARN) of the gateway in the body of the request.

The request returns a list of all disks, specifying which are configured as working storage, cache storage, or stored volume or not configured at all. The response includes a DiskStatus field. This field can have a value of present (the disk is available to use), missing (the disk is no longer connected to the gateway), or mismatch (the disk node is occupied by a disk that has incorrect metadata or the disk content is corrupted).

", - "ListTagsForResource": "

Lists the tags that have been added to the specified resource. This operation is only supported in the cached volume, stored volume and tape gateway architecture.

", - "ListTapes": "

Lists virtual tapes in your virtual tape library (VTL) and your virtual tape shelf (VTS). You specify the tapes to list by specifying one or more tape Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation lists all virtual tapes in both your VTL and VTS.

This operation supports pagination. By default, the operation returns a maximum of up to 100 tapes. You can optionally specify the Limit parameter in the body to limit the number of tapes in the response. If the number of tapes returned in the response is truncated, the response includes a Marker element that you can use in your subsequent request to retrieve the next set of tapes. This operation is only supported in the tape gateway architecture.

", - "ListVolumeInitiators": "

Lists iSCSI initiators that are connected to a volume. You can use this operation to determine whether a volume is being used or not. This operation is only supported in the cached volume and stored volume gateway architecture.

", - "ListVolumeRecoveryPoints": "

Lists the recovery points for a specified gateway. This operation is only supported in the cached volume gateway architecture.

Each cache volume has one recovery point. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot or clone a new cached volume from a source volume. To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint operation.

", - "ListVolumes": "

Lists the iSCSI stored volumes of a gateway. Results are sorted by volume ARN. The response includes only the volume ARNs. If you want additional volume information, use the DescribeStorediSCSIVolumes or the DescribeCachediSCSIVolumes API.

The operation supports pagination. By default, the operation returns a maximum of up to 100 volumes. You can optionally specify the Limit field in the body to limit the number of volumes in the response. If the number of volumes returned in the response is truncated, the response includes a Marker field. You can use this Marker value in your subsequent request to retrieve the next set of volumes. This operation is only supported in the cached volume and stored volume gateway architectures.

", - "RefreshCache": "

Refreshes the cache for the specified file share. This operation finds objects in the Amazon S3 bucket that were added or removed since the gateway last listed the bucket's contents and cached the results.

", - "RemoveTagsFromResource": "

Removes one or more tags from the specified resource. This operation is only supported in the cached volume, stored volume and tape gateway architectures.

", - "ResetCache": "

Resets all cache disks that have encountered a error and makes the disks available for reconfiguration as cache storage. If your cache disk encounters a error, the gateway prevents read and write operations on virtual tapes in the gateway. For example, an error can occur when a disk is corrupted or removed from the gateway. When a cache is reset, the gateway loses its cache storage. At this point you can reconfigure the disks as cache disks. This operation is only supported in the cached volume,tape and file gateway architectures.

If the cache disk you are resetting contains data that has not been uploaded to Amazon S3 yet, that data can be lost. After you reset cache disks, there will be no configured cache disks left in the gateway, so you must configure at least one new cache disk for your gateway to function properly.

", - "RetrieveTapeArchive": "

Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a tape gateway. Virtual tapes archived in the VTS are not associated with any gateway. However after a tape is retrieved, it is associated with a gateway, even though it is also listed in the VTS, that is, archive. This operation is only supported in the tape gateway architecture.

Once a tape is successfully retrieved to a gateway, it cannot be retrieved again to another gateway. You must archive the tape again before you can retrieve it to another gateway. This operation is only supported in the tape gateway architecture.

", - "RetrieveTapeRecoveryPoint": "

Retrieves the recovery point for the specified virtual tape. This operation is only supported in the tape gateway architecture.

A recovery point is a point in time view of a virtual tape at which all the data on the tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway.

The virtual tape can be retrieved to only one gateway. The retrieved tape is read-only. The virtual tape can be retrieved to only a tape gateway. There is no charge for retrieving recovery points.

", + "ListTagsForResource": "

Lists the tags that have been added to the specified resource. This operation is only supported in the cached volume, stored volume and tape gateway type.

", + "ListTapes": "

Lists virtual tapes in your virtual tape library (VTL) and your virtual tape shelf (VTS). You specify the tapes to list by specifying one or more tape Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation lists all virtual tapes in both your VTL and VTS.

This operation supports pagination. By default, the operation returns a maximum of up to 100 tapes. You can optionally specify the Limit parameter in the body to limit the number of tapes in the response. If the number of tapes returned in the response is truncated, the response includes a Marker element that you can use in your subsequent request to retrieve the next set of tapes. This operation is only supported in the tape gateway type.

", + "ListVolumeInitiators": "

Lists iSCSI initiators that are connected to a volume. You can use this operation to determine whether a volume is being used or not. This operation is only supported in the cached volume and stored volume gateway types.

", + "ListVolumeRecoveryPoints": "

Lists the recovery points for a specified gateway. This operation is only supported in the cached volume gateway type.

Each cache volume has one recovery point. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot or clone a new cached volume from a source volume. To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint operation.

", + "ListVolumes": "

Lists the iSCSI stored volumes of a gateway. Results are sorted by volume ARN. The response includes only the volume ARNs. If you want additional volume information, use the DescribeStorediSCSIVolumes or the DescribeCachediSCSIVolumes API.

The operation supports pagination. By default, the operation returns a maximum of up to 100 volumes. You can optionally specify the Limit field in the body to limit the number of volumes in the response. If the number of volumes returned in the response is truncated, the response includes a Marker field. You can use this Marker value in your subsequent request to retrieve the next set of volumes. This operation is only supported in the cached volume and stored volume gateway types.

", + "NotifyWhenUploaded": "

Sends you notification when all file data written to the NFS file share has been uploaded to Amazon S3.

AWS Storage Gateway can send a notification through Amazon CloudWatch Events when all files written to your file share up to that point in time have been uploaded to Amazon S3. These files include files written to the NFS file share up to the time that you make a request for notification. When the upload is done, Storage Gateway sends you notification through an Amazon CloudWatch event. You can configure CloudWatch Events to sent the notification through event targets such as email, SNS or a Lambda function. text or Lambda functions. This operation is only supported in the file gateway type.

", + "RefreshCache": "

Refreshes the cache for the specified file share. This operation finds objects in the Amazon S3 bucket that were added, removed or replaced since the gateway last listed the bucket's contents and cached the results. This operation is only supported in the file gateway type.

", + "RemoveTagsFromResource": "

Removes one or more tags from the specified resource. This operation is only supported in the cached volume, stored volume and tape gateway types.

", + "ResetCache": "

Resets all cache disks that have encountered a error and makes the disks available for reconfiguration as cache storage. If your cache disk encounters a error, the gateway prevents read and write operations on virtual tapes in the gateway. For example, an error can occur when a disk is corrupted or removed from the gateway. When a cache is reset, the gateway loses its cache storage. At this point you can reconfigure the disks as cache disks. This operation is only supported in the cached volume, tape and file gateway types.

If the cache disk you are resetting contains data that has not been uploaded to Amazon S3 yet, that data can be lost. After you reset cache disks, there will be no configured cache disks left in the gateway, so you must configure at least one new cache disk for your gateway to function properly.

", + "RetrieveTapeArchive": "

Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a tape gateway. Virtual tapes archived in the VTS are not associated with any gateway. However after a tape is retrieved, it is associated with a gateway, even though it is also listed in the VTS, that is, archive. This operation is only supported in the tape gateway type.

Once a tape is successfully retrieved to a gateway, it cannot be retrieved again to another gateway. You must archive the tape again before you can retrieve it to another gateway. This operation is only supported in the tape gateway type.

", + "RetrieveTapeRecoveryPoint": "

Retrieves the recovery point for the specified virtual tape. This operation is only supported in the tape gateway type.

A recovery point is a point in time view of a virtual tape at which all the data on the tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway.

The virtual tape can be retrieved to only one gateway. The retrieved tape is read-only. The virtual tape can be retrieved to only a tape gateway. There is no charge for retrieving recovery points.

", "SetLocalConsolePassword": "

Sets the password for your VM local console. When you log in to the local console for the first time, you log in to the VM with the default credentials. We recommend that you set a new password. You don't need to know the default password to set a new password.

", "ShutdownGateway": "

Shuts down a gateway. To specify which gateway to shut down, use the Amazon Resource Name (ARN) of the gateway in the body of your request.

The operation shuts down the gateway service component running in the gateway's virtual machine (VM) and not the host VM.

If you want to shut down the VM, it is recommended that you first shut down the gateway component in the VM to avoid unpredictable conditions.

After the gateway is shutdown, you cannot call any other API except StartGateway, DescribeGatewayInformation, and ListGateways. For more information, see ActivateGateway. Your applications cannot read from or write to the gateway's storage volumes, and there are no snapshots taken.

When you make a shutdown request, you will get a 200 OK success response immediately. However, it might take some time for the gateway to shut down. You can call the DescribeGatewayInformation API to check the status. For more information, see ActivateGateway.

If do not intend to use the gateway again, you must delete the gateway (using DeleteGateway) to no longer pay software charges associated with the gateway.

", "StartGateway": "

Starts a gateway that you previously shut down (see ShutdownGateway). After the gateway starts, you can then make other API calls, your applications can read from or write to the gateway's storage volumes and you will be able to take snapshot backups.

When you make a request, you will get a 200 OK success response immediately. However, it might take some time for the gateway to be ready. You should call DescribeGatewayInformation and check the status before making any additional API calls. For more information, see ActivateGateway.

To specify which gateway to start, use the Amazon Resource Name (ARN) of the gateway in your request.

", @@ -61,9 +62,9 @@ "UpdateGatewayInformation": "

Updates a gateway's metadata, which includes the gateway's name and time zone. To specify which gateway to update, use the Amazon Resource Name (ARN) of the gateway in your request.

For Gateways activated after September 2, 2015, the gateway's ARN contains the gateway ID rather than the gateway name. However, changing the name of the gateway has no effect on the gateway's ARN.

", "UpdateGatewaySoftwareNow": "

Updates the gateway virtual machine (VM) software. The request immediately triggers the software update.

When you make this request, you get a 200 OK success response immediately. However, it might take some time for the update to complete. You can call DescribeGatewayInformation to verify the gateway is in the STATE_RUNNING state.

A software update forces a system restart of your gateway. You can minimize the chance of any disruption to your applications by increasing your iSCSI Initiators' timeouts. For more information about increasing iSCSI Initiator timeouts for Windows and Linux, see Customizing Your Windows iSCSI Settings and Customizing Your Linux iSCSI Settings, respectively.

", "UpdateMaintenanceStartTime": "

Updates a gateway's weekly maintenance start time information, including day and time of the week. The maintenance time is the time in your gateway's time zone.

", - "UpdateNFSFileShare": "

Updates a file share. This operation is only supported in the file gateway architecture.

To leave a file share field unchanged, set the corresponding input field to null.

Updates the following file share setting:

  • Default storage class for your S3 bucket

  • Metadata defaults for your S3 bucket

  • Allowed NFS clients for your file share

  • Squash settings

  • Write status of your file share

To leave a file share field unchanged, set the corresponding input field to null. This operation is only supported in file gateways.

", - "UpdateSnapshotSchedule": "

Updates a snapshot schedule configured for a gateway volume. This operation is only supported in the cached volume and stored volume gateway architectures.

The default snapshot schedule for volume is once every 24 hours, starting at the creation time of the volume. You can use this API to change the snapshot schedule configured for the volume.

In the request you must identify the gateway volume whose snapshot schedule you want to update, and the schedule information, including when you want the snapshot to begin on a day and the frequency (in hours) of snapshots.

", - "UpdateVTLDeviceType": "

Updates the type of medium changer in a tape gateway. When you activate a tape gateway, you select a medium changer type for the tape gateway. This operation enables you to select a different type of medium changer after a tape gateway is activated. This operation is only supported in the tape gateway architecture.

" + "UpdateNFSFileShare": "

Updates a file share. This operation is only supported in the file gateway type.

To leave a file share field unchanged, set the corresponding input field to null.

Updates the following file share setting:

  • Default storage class for your S3 bucket

  • Metadata defaults for your S3 bucket

  • Allowed NFS clients for your file share

  • Squash settings

  • Write status of your file share

To leave a file share field unchanged, set the corresponding input field to null. This operation is only supported in file gateways.

", + "UpdateSnapshotSchedule": "

Updates a snapshot schedule configured for a gateway volume. This operation is only supported in the cached volume and stored volume gateway types.

The default snapshot schedule for volume is once every 24 hours, starting at the creation time of the volume. You can use this API to change the snapshot schedule configured for the volume.

In the request you must identify the gateway volume whose snapshot schedule you want to update, and the schedule information, including when you want the snapshot to begin on a day and the frequency (in hours) of snapshots.

", + "UpdateVTLDeviceType": "

Updates the type of medium changer in a tape gateway. When you activate a tape gateway, you select a medium changer type for the tape gateway. This operation enables you to select a different type of medium changer after a tape gateway is activated. This operation is only supported in the tape gateway type.

" }, "shapes": { "ActivateGatewayInput": { @@ -72,7 +73,7 @@ } }, "ActivateGatewayOutput": { - "base": "

AWS Storage Gateway returns the Amazon Resource Name (ARN) of the activated gateway. It is a string made of information such as your account, gateway name, and region. This ARN is used to reference the gateway in other API operations as well as resource-based authorization.

For gateways activated prior to September 02, 2015 the gateway ARN contains the gateway name rather than the gateway id. Changing the name of the gateway has no effect on the gateway ARN.

", + "base": "

AWS Storage Gateway returns the Amazon Resource Name (ARN) of the activated gateway. It is a string made of information such as your account, gateway name, and region. This ARN is used to reference the gateway in other API operations as well as resource-based authorization.

For gateways activated prior to September 02, 2015, the gateway ARN contains the gateway name rather than the gateway ID. Changing the name of the gateway has no effect on the gateway ARN.

", "refs": { } }, @@ -147,9 +148,12 @@ "refs": { "CreateNFSFileShareInput$KMSEncrypted": "

True to use Amazon S3 server side encryption with your own AWS KMS key, or false to use a key managed by Amazon S3. Optional.

", "CreateNFSFileShareInput$ReadOnly": "

Sets the write status of a file share: \"true\" if the write status is read-only, and otherwise \"false\".

", + "CreateNFSFileShareInput$GuessMIMETypeEnabled": "

Enables guessing of the MIME type for uploaded objects based on file extensions: \"true\" to enable MIME type guessing, and otherwise \"false\".

", "NFSFileShareInfo$ReadOnly": null, + "NFSFileShareInfo$GuessMIMETypeEnabled": "

Enables guessing of the MIME type for uploaded objects based on file extensions: \"true\" to enable MIME type guessing, and otherwise \"false\".

", "UpdateNFSFileShareInput$KMSEncrypted": "

True to use Amazon S3 server side encryption with your own AWS KMS key, or false to use a key managed by Amazon S3. Optional.

", - "UpdateNFSFileShareInput$ReadOnly": "

Sets the write status of a file share: \"true\" if the write status is read-only, and otherwise \"false\".

" + "UpdateNFSFileShareInput$ReadOnly": "

Sets the write status of a file share: \"true\" if the write status is read-only, otherwise \"false\".

", + "UpdateNFSFileShareInput$GuessMIMETypeEnabled": "

Enables guessing of the MIME type for uploaded objects based on file extensions: \"true\" to enable MIME type guessing, and otherwise \"false\".

" } }, "CachediSCSIVolume": { @@ -328,12 +332,12 @@ } }, "DeleteGatewayInput": { - "base": "

A JSON object containing the id of the gateway to delete.

", + "base": "

A JSON object containing the ID of the gateway to delete.

", "refs": { } }, "DeleteGatewayOutput": { - "base": "

A JSON object containing the id of the deleted gateway.

", + "base": "

A JSON object containing the ID of the deleted gateway.

", "refs": { } }, @@ -418,7 +422,7 @@ } }, "DescribeGatewayInformationInput": { - "base": "

A JSON object containing the id of the gateway.

", + "base": "

A JSON object containing the ID of the gateway.

", "refs": { } }, @@ -617,6 +621,8 @@ "FileShareARNList$member": null, "FileShareInfo$FileShareARN": null, "NFSFileShareInfo$FileShareARN": null, + "NotifyWhenUploadedInput$FileShareARN": null, + "NotifyWhenUploadedOutput$FileShareARN": null, "RefreshCacheInput$FileShareARN": null, "RefreshCacheOutput$FileShareARN": null, "UpdateNFSFileShareInput$FileShareARN": "

The Amazon Resource Name (ARN) of the file share to be updated.

", @@ -992,7 +998,7 @@ } }, "NFSFileShareDefaults": { - "base": "

Describes file share default values. Files and folders stored as Amazon S3 objects in S3 buckets don't, by default, have Unix file permissions assigned to them. Upon discovery in an S3 bucket by Storage Gateway, the S3 objects that represent files and folders are assigned these default Unix permissions. This operation is only supported in the file gateway architecture.

", + "base": "

Describes file share default values. Files and folders stored as Amazon S3 objects in S3 buckets don't, by default, have Unix file permissions assigned to them. Upon discovery in an S3 bucket by Storage Gateway, the S3 objects that represent files and folders are assigned these default Unix permissions. This operation is only supported in the file gateway type.

", "refs": { "CreateNFSFileShareInput$NFSFileShareDefaults": "

File share default values. Optional.

", "NFSFileShareInfo$NFSFileShareDefaults": null, @@ -1032,6 +1038,22 @@ "DescribeGatewayInformationOutput$NextUpdateAvailabilityDate": "

The date on which an update to the gateway is available. This date is in the time zone of the gateway. If the gateway is not available for an update this field is not returned in the response.

" } }, + "NotificationId": { + "base": "

The randomly generated ID of the notification that was sent. This ID is in UUID format.

", + "refs": { + "NotifyWhenUploadedOutput$NotificationId": null + } + }, + "NotifyWhenUploadedInput": { + "base": null, + "refs": { + } + }, + "NotifyWhenUploadedOutput": { + "base": null, + "refs": { + } + }, "NumTapesToCreate": { "base": null, "refs": { @@ -1334,7 +1356,7 @@ "TapeBarcode": { "base": null, "refs": { - "CreateTapeWithBarcodeInput$TapeBarcode": "

The barcode that you want to assign to the tape.

", + "CreateTapeWithBarcodeInput$TapeBarcode": "

The barcode that you want to assign to the tape.

Barcodes cannot be reused. This includes barcodes used for tapes that have been deleted.

", "Tape$TapeBarcode": "

The barcode that identifies a specific virtual tape.

", "TapeArchive$TapeBarcode": "

The barcode that identifies the archived virtual tape.

", "TapeInfo$TapeBarcode": "

The barcode that identifies a specific virtual tape.

" @@ -1403,8 +1425,8 @@ "TapeUsage": { "base": null, "refs": { - "Tape$TapeUsedInBytes": "

The size, in bytes, of data written to the virtual tape.

This value is not available for tapes created prior to May,13 2015.

", - "TapeArchive$TapeUsedInBytes": "

The size, in bytes, of data written to the virtual tape.

This value is not available for tapes created prior to May,13 2015.

" + "Tape$TapeUsedInBytes": "

The size, in bytes, of data stored on the virtual tape.

This value is not available for tapes created prior to May 13, 2015.

", + "TapeArchive$TapeUsedInBytes": "

The size, in bytes, of data stored on the virtual tape.

This value is not available for tapes created prior to May 13, 2015.

" } }, "Tapes": { @@ -1432,7 +1454,7 @@ "base": null, "refs": { "CreateCachediSCSIVolumeInput$TargetName": null, - "CreateStorediSCSIVolumeInput$TargetName": "

The name of the iSCSI target used by initiators to connect to the target and as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes of a gateway.

" + "CreateStorediSCSIVolumeInput$TargetName": "

The name of the iSCSI target used by initiators to connect to the target and as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes of a gateway.

" } }, "Time": { @@ -1592,7 +1614,7 @@ "UpdateSnapshotScheduleInput$VolumeARN": "

The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes.

", "UpdateSnapshotScheduleOutput$VolumeARN": "

", "VolumeARNs$member": null, - "VolumeInfo$VolumeARN": "

The Amazon Resource Name (ARN) for the storage volume. For example, the following is a valid ARN:

arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).

", + "VolumeInfo$VolumeARN": "

The Amazon Resource Name (ARN) for the storage volume. For example, the following is a valid ARN:

arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).

", "VolumeRecoveryPointInfo$VolumeARN": null } }, @@ -1650,6 +1672,13 @@ "VolumeInfo$VolumeType": null } }, + "VolumeUsedInBytes": { + "base": null, + "refs": { + "CachediSCSIVolume$VolumeUsedInBytes": "

The size of the data stored on the volume in bytes.

This value is not available for volumes created prior to May 13, 2015, until you store data on the volume.

", + "StorediSCSIVolume$VolumeUsedInBytes": "

The size of the data stored on the volume in bytes.

This value is not available for volumes created prior to May 13, 2015, until you store data on the volume.

" + } + }, "VolumeiSCSIAttributes": { "base": "

Lists iSCSI information about a volume.

", "refs": { @@ -1661,6 +1690,7 @@ "base": null, "refs": { "CreateStorediSCSIVolumeInput$PreserveExistingData": "

Specify this field as true if you want to preserve the data on the local disk. Otherwise, specifying this field as false creates an empty volume.

Valid Values: true, false

", + "DeleteFileShareInput$ForceDelete": "

If this value is set to true, the operation deletes a file share immediately and aborts all data uploads to AWS. Otherwise, the file share is not deleted until all data is uploaded to AWS. This process aborts the data upload process, and the file share enters the FORCE_DELETING status.

", "DeviceiSCSIAttributes$ChapEnabled": "

Indicates whether mutual CHAP is enabled for the iSCSI target.

", "NFSFileShareInfo$KMSEncrypted": "

True to use Amazon S3 server side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional.

", "StorediSCSIVolume$PreservedExistingData": "

Indicates if when the stored volume was created, existing data on the underlying local disk was preserved.

Valid Values: true, false

", @@ -1692,7 +1722,7 @@ "long": { "base": null, "refs": { - "CachediSCSIVolume$VolumeSizeInBytes": "

The size of the volume in bytes.

", + "CachediSCSIVolume$VolumeSizeInBytes": "

The size, in bytes, of the volume capacity.

", "CreateCachediSCSIVolumeInput$VolumeSizeInBytes": null, "CreateStorediSCSIVolumeOutput$VolumeSizeInBytes": "

The size of the volume in bytes.

", "DescribeCacheOutput$CacheAllocatedInBytes": null, diff --git a/models/apis/swf/2012-01-25/api-2.json b/models/apis/swf/2012-01-25/api-2.json index af5d426ee83..a2b71091539 100644 --- a/models/apis/swf/2012-01-25/api-2.json +++ b/models/apis/swf/2012-01-25/api-2.json @@ -1,16 +1,16 @@ { "version":"2.0", "metadata":{ - "uid":"swf-2012-01-25", "apiVersion":"2012-01-25", "endpointPrefix":"swf", "jsonVersion":"1.0", + "protocol":"json", "serviceAbbreviation":"Amazon SWF", "serviceFullName":"Amazon Simple Workflow Service", "signatureVersion":"v4", "targetPrefix":"SimpleWorkflowService", "timestampFormat":"unixTimestamp", - "protocol":"json" + "uid":"swf-2012-01-25" }, "operations":{ "CountClosedWorkflowExecutions":{ @@ -22,14 +22,8 @@ "input":{"shape":"CountClosedWorkflowExecutionsInput"}, "output":{"shape":"WorkflowExecutionCount"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "CountOpenWorkflowExecutions":{ @@ -41,14 +35,8 @@ "input":{"shape":"CountOpenWorkflowExecutionsInput"}, "output":{"shape":"WorkflowExecutionCount"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "CountPendingActivityTasks":{ @@ -60,14 +48,8 @@ "input":{"shape":"CountPendingActivityTasksInput"}, "output":{"shape":"PendingTaskCount"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "CountPendingDecisionTasks":{ @@ -79,14 +61,8 @@ "input":{"shape":"CountPendingDecisionTasksInput"}, "output":{"shape":"PendingTaskCount"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "DeprecateActivityType":{ @@ -97,18 +73,9 @@ }, "input":{"shape":"DeprecateActivityTypeInput"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"TypeDeprecatedFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"TypeDeprecatedFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "DeprecateDomain":{ @@ -119,18 +86,9 @@ }, "input":{"shape":"DeprecateDomainInput"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"DomainDeprecatedFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"DomainDeprecatedFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "DeprecateWorkflowType":{ @@ -141,18 +99,9 @@ }, "input":{"shape":"DeprecateWorkflowTypeInput"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"TypeDeprecatedFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"TypeDeprecatedFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "DescribeActivityType":{ @@ -164,14 +113,8 @@ "input":{"shape":"DescribeActivityTypeInput"}, "output":{"shape":"ActivityTypeDetail"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "DescribeDomain":{ @@ -183,14 +126,8 @@ "input":{"shape":"DescribeDomainInput"}, "output":{"shape":"DomainDetail"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "DescribeWorkflowExecution":{ @@ -202,14 +139,8 @@ "input":{"shape":"DescribeWorkflowExecutionInput"}, "output":{"shape":"WorkflowExecutionDetail"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "DescribeWorkflowType":{ @@ -221,14 +152,8 @@ "input":{"shape":"DescribeWorkflowTypeInput"}, "output":{"shape":"WorkflowTypeDetail"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "GetWorkflowExecutionHistory":{ @@ -240,14 +165,8 @@ "input":{"shape":"GetWorkflowExecutionHistoryInput"}, "output":{"shape":"History"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "ListActivityTypes":{ @@ -259,14 +178,8 @@ "input":{"shape":"ListActivityTypesInput"}, "output":{"shape":"ActivityTypeInfos"}, "errors":[ - { - "shape":"OperationNotPermittedFault", - "exception":true - }, - { - "shape":"UnknownResourceFault", - "exception":true - } + {"shape":"OperationNotPermittedFault"}, + {"shape":"UnknownResourceFault"} ] }, "ListClosedWorkflowExecutions":{ @@ -278,14 +191,8 @@ "input":{"shape":"ListClosedWorkflowExecutionsInput"}, "output":{"shape":"WorkflowExecutionInfos"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "ListDomains":{ @@ -297,10 +204,7 @@ "input":{"shape":"ListDomainsInput"}, "output":{"shape":"DomainInfos"}, "errors":[ - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"OperationNotPermittedFault"} ] }, "ListOpenWorkflowExecutions":{ @@ -312,14 +216,8 @@ "input":{"shape":"ListOpenWorkflowExecutionsInput"}, "output":{"shape":"WorkflowExecutionInfos"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "ListWorkflowTypes":{ @@ -331,14 +229,8 @@ "input":{"shape":"ListWorkflowTypesInput"}, "output":{"shape":"WorkflowTypeInfos"}, "errors":[ - { - "shape":"OperationNotPermittedFault", - "exception":true - }, - { - "shape":"UnknownResourceFault", - "exception":true - } + {"shape":"OperationNotPermittedFault"}, + {"shape":"UnknownResourceFault"} ] }, "PollForActivityTask":{ @@ -350,18 +242,9 @@ "input":{"shape":"PollForActivityTaskInput"}, "output":{"shape":"ActivityTask"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - }, - { - "shape":"LimitExceededFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"}, + {"shape":"LimitExceededFault"} ] }, "PollForDecisionTask":{ @@ -373,18 +256,9 @@ "input":{"shape":"PollForDecisionTaskInput"}, "output":{"shape":"DecisionTask"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - }, - { - "shape":"LimitExceededFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"}, + {"shape":"LimitExceededFault"} ] }, "RecordActivityTaskHeartbeat":{ @@ -396,14 +270,8 @@ "input":{"shape":"RecordActivityTaskHeartbeatInput"}, "output":{"shape":"ActivityTaskStatus"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "RegisterActivityType":{ @@ -414,22 +282,10 @@ }, "input":{"shape":"RegisterActivityTypeInput"}, "errors":[ - { - "shape":"TypeAlreadyExistsFault", - "exception":true - }, - { - "shape":"LimitExceededFault", - "exception":true - }, - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"TypeAlreadyExistsFault"}, + {"shape":"LimitExceededFault"}, + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "RegisterDomain":{ @@ -440,18 +296,9 @@ }, "input":{"shape":"RegisterDomainInput"}, "errors":[ - { - "shape":"DomainAlreadyExistsFault", - "exception":true - }, - { - "shape":"LimitExceededFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"DomainAlreadyExistsFault"}, + {"shape":"LimitExceededFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "RegisterWorkflowType":{ @@ -462,22 +309,10 @@ }, "input":{"shape":"RegisterWorkflowTypeInput"}, "errors":[ - { - "shape":"TypeAlreadyExistsFault", - "exception":true - }, - { - "shape":"LimitExceededFault", - "exception":true - }, - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"TypeAlreadyExistsFault"}, + {"shape":"LimitExceededFault"}, + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "RequestCancelWorkflowExecution":{ @@ -488,14 +323,8 @@ }, "input":{"shape":"RequestCancelWorkflowExecutionInput"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "RespondActivityTaskCanceled":{ @@ -506,14 +335,8 @@ }, "input":{"shape":"RespondActivityTaskCanceledInput"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "RespondActivityTaskCompleted":{ @@ -524,14 +347,8 @@ }, "input":{"shape":"RespondActivityTaskCompletedInput"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "RespondActivityTaskFailed":{ @@ -542,14 +359,8 @@ }, "input":{"shape":"RespondActivityTaskFailedInput"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "RespondDecisionTaskCompleted":{ @@ -560,14 +371,8 @@ }, "input":{"shape":"RespondDecisionTaskCompletedInput"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "SignalWorkflowExecution":{ @@ -578,14 +383,8 @@ }, "input":{"shape":"SignalWorkflowExecutionInput"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] }, "StartWorkflowExecution":{ @@ -597,30 +396,12 @@ "input":{"shape":"StartWorkflowExecutionInput"}, "output":{"shape":"Run"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"TypeDeprecatedFault", - "exception":true - }, - { - "shape":"WorkflowExecutionAlreadyStartedFault", - "exception":true - }, - { - "shape":"LimitExceededFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - }, - { - "shape":"DefaultUndefinedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"TypeDeprecatedFault"}, + {"shape":"WorkflowExecutionAlreadyStartedFault"}, + {"shape":"LimitExceededFault"}, + {"shape":"OperationNotPermittedFault"}, + {"shape":"DefaultUndefinedFault"} ] }, "TerminateWorkflowExecution":{ @@ -631,22 +412,16 @@ }, "input":{"shape":"TerminateWorkflowExecutionInput"}, "errors":[ - { - "shape":"UnknownResourceFault", - "exception":true - }, - { - "shape":"OperationNotPermittedFault", - "exception":true - } + {"shape":"UnknownResourceFault"}, + {"shape":"OperationNotPermittedFault"} ] } }, "shapes":{ "ActivityId":{ "type":"string", - "min":1, - "max":256 + "max":256, + "min":1 }, "ActivityTask":{ "type":"structure", @@ -837,8 +612,8 @@ }, "Arn":{ "type":"string", - "min":1, - "max":1224 + "max":1600, + "min":1 }, "CancelTimerDecisionAttributes":{ "type":"structure", @@ -1381,18 +1156,18 @@ }, "DomainName":{ "type":"string", - "min":1, - "max":256 + "max":256, + "min":1 }, "DurationInDays":{ "type":"string", - "min":1, - "max":8 + "max":8, + "min":1 }, "DurationInSeconds":{ "type":"string", - "min":1, - "max":8 + "max":8, + "min":1 }, "DurationInSecondsOptional":{ "type":"string", @@ -1527,18 +1302,18 @@ }, "FunctionId":{ "type":"string", - "min":1, - "max":256 + "max":256, + "min":1 }, "FunctionInput":{ "type":"string", - "min":1, - "max":32768 + "max":32768, + "min":0 }, "FunctionName":{ "type":"string", - "min":1, - "max":64 + "max":64, + "min":1 }, "GetWorkflowExecutionHistoryInput":{ "type":"structure", @@ -1672,6 +1447,7 @@ "members":{ "id":{"shape":"FunctionId"}, "name":{"shape":"FunctionName"}, + "control":{"shape":"Data"}, "input":{"shape":"FunctionInput"}, "startToCloseTimeout":{"shape":"DurationInSecondsOptional"}, "decisionTaskCompletedEventId":{"shape":"EventId"} @@ -1786,8 +1562,8 @@ }, "MarkerName":{ "type":"string", - "min":1, - "max":256 + "max":256, + "min":1 }, "MarkerRecordedEventAttributes":{ "type":"structure", @@ -1803,13 +1579,13 @@ }, "Name":{ "type":"string", - "min":1, - "max":256 + "max":256, + "min":1 }, "OpenDecisionTasksCount":{ "type":"integer", - "min":0, - "max":1 + "max":1, + "min":0 }, "OperationNotPermittedFault":{ "type":"structure", @@ -1820,8 +1596,8 @@ }, "PageSize":{ "type":"integer", - "min":0, - "max":1000 + "max":1000, + "min":0 }, "PageToken":{ "type":"string", @@ -1986,7 +1762,7 @@ "required":["workflowId"], "members":{ "workflowId":{"shape":"WorkflowId"}, - "runId":{"shape":"RunIdOptional"}, + "runId":{"shape":"WorkflowRunIdOptional"}, "control":{"shape":"Data"} } }, @@ -2008,7 +1784,7 @@ ], "members":{ "workflowId":{"shape":"WorkflowId"}, - "runId":{"shape":"RunIdOptional"}, + "runId":{"shape":"WorkflowRunIdOptional"}, "cause":{"shape":"RequestCancelExternalWorkflowExecutionFailedCause"}, "initiatedEventId":{"shape":"EventId"}, "decisionTaskCompletedEventId":{"shape":"EventId"}, @@ -2023,7 +1799,7 @@ ], "members":{ "workflowId":{"shape":"WorkflowId"}, - "runId":{"shape":"RunIdOptional"}, + "runId":{"shape":"WorkflowRunIdOptional"}, "decisionTaskCompletedEventId":{"shape":"EventId"}, "control":{"shape":"Data"} } @@ -2037,7 +1813,7 @@ "members":{ "domain":{"shape":"DomainName"}, "workflowId":{"shape":"WorkflowId"}, - "runId":{"shape":"RunIdOptional"} + "runId":{"shape":"WorkflowRunIdOptional"} } }, "RespondActivityTaskCanceledInput":{ @@ -2078,18 +1854,9 @@ "Run":{ "type":"structure", "members":{ - "runId":{"shape":"RunId"} + "runId":{"shape":"WorkflowRunId"} } }, - "RunId":{ - "type":"string", - "min":1, - "max":64 - }, - "RunIdOptional":{ - "type":"string", - "max":64 - }, "ScheduleActivityTaskDecisionAttributes":{ "type":"structure", "required":[ @@ -2149,6 +1916,7 @@ "members":{ "id":{"shape":"FunctionId"}, "name":{"shape":"FunctionName"}, + "control":{"shape":"Data"}, "input":{"shape":"FunctionInput"}, "startToCloseTimeout":{"shape":"DurationInSecondsOptional"} } @@ -2185,7 +1953,7 @@ ], "members":{ "workflowId":{"shape":"WorkflowId"}, - "runId":{"shape":"RunIdOptional"}, + "runId":{"shape":"WorkflowRunIdOptional"}, "signalName":{"shape":"SignalName"}, "input":{"shape":"Data"}, "control":{"shape":"Data"} @@ -2209,7 +1977,7 @@ ], "members":{ "workflowId":{"shape":"WorkflowId"}, - "runId":{"shape":"RunIdOptional"}, + "runId":{"shape":"WorkflowRunIdOptional"}, "cause":{"shape":"SignalExternalWorkflowExecutionFailedCause"}, "initiatedEventId":{"shape":"EventId"}, "decisionTaskCompletedEventId":{"shape":"EventId"}, @@ -2225,7 +1993,7 @@ ], "members":{ "workflowId":{"shape":"WorkflowId"}, - "runId":{"shape":"RunIdOptional"}, + "runId":{"shape":"WorkflowRunIdOptional"}, "signalName":{"shape":"SignalName"}, "input":{"shape":"Data"}, "decisionTaskCompletedEventId":{"shape":"EventId"}, @@ -2234,8 +2002,8 @@ }, "SignalName":{ "type":"string", - "min":1, - "max":256 + "max":256, + "min":1 }, "SignalWorkflowExecutionInput":{ "type":"structure", @@ -2247,7 +2015,7 @@ "members":{ "domain":{"shape":"DomainName"}, "workflowId":{"shape":"WorkflowId"}, - "runId":{"shape":"RunIdOptional"}, + "runId":{"shape":"WorkflowRunIdOptional"}, "signalName":{"shape":"SignalName"}, "input":{"shape":"Data"} } @@ -2399,8 +2167,8 @@ }, "Tag":{ "type":"string", - "min":1, - "max":256 + "max":256, + "min":0 }, "TagFilter":{ "type":"structure", @@ -2421,14 +2189,11 @@ "name":{"shape":"Name"} } }, - "TaskPriority":{ - "type":"string", - "max":11 - }, + "TaskPriority":{"type":"string"}, "TaskToken":{ "type":"string", - "min":1, - "max":1024 + "max":1024, + "min":1 }, "TerminateReason":{ "type":"string", @@ -2443,7 +2208,7 @@ "members":{ "domain":{"shape":"DomainName"}, "workflowId":{"shape":"WorkflowId"}, - "runId":{"shape":"RunIdOptional"}, + "runId":{"shape":"WorkflowRunIdOptional"}, "reason":{"shape":"TerminateReason"}, "details":{"shape":"Data"}, "childPolicy":{"shape":"ChildPolicy"} @@ -2475,8 +2240,8 @@ }, "TimerId":{ "type":"string", - "min":1, - "max":256 + "max":256, + "min":1 }, "TimerStartedEventAttributes":{ "type":"structure", @@ -2517,8 +2282,8 @@ }, "Version":{ "type":"string", - "min":1, - "max":64 + "max":64, + "min":1 }, "VersionOptional":{ "type":"string", @@ -2532,7 +2297,7 @@ ], "members":{ "workflowId":{"shape":"WorkflowId"}, - "runId":{"shape":"RunId"} + "runId":{"shape":"WorkflowRunId"} } }, "WorkflowExecutionAlreadyStartedFault":{ @@ -2599,7 +2364,7 @@ "members":{ "input":{"shape":"Data"}, "decisionTaskCompletedEventId":{"shape":"EventId"}, - "newExecutionRunId":{"shape":"RunId"}, + "newExecutionRunId":{"shape":"WorkflowRunId"}, "executionStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, "taskList":{"shape":"TaskList"}, "taskPriority":{"shape":"TaskPriority"}, @@ -2720,10 +2485,10 @@ "taskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, "childPolicy":{"shape":"ChildPolicy"}, "taskList":{"shape":"TaskList"}, + "taskPriority":{"shape":"TaskPriority"}, "workflowType":{"shape":"WorkflowType"}, "tagList":{"shape":"TagList"}, - "taskPriority":{"shape":"TaskPriority"}, - "continuedExecutionRunId":{"shape":"RunIdOptional"}, + "continuedExecutionRunId":{"shape":"WorkflowRunIdOptional"}, "parentWorkflowExecution":{"shape":"WorkflowExecution"}, "parentInitiatedEventId":{"shape":"EventId"}, "lambdaRole":{"shape":"Arn"} @@ -2764,8 +2529,17 @@ }, "WorkflowId":{ "type":"string", - "min":1, - "max":256 + "max":256, + "min":1 + }, + "WorkflowRunId":{ + "type":"string", + "max":64, + "min":1 + }, + "WorkflowRunIdOptional":{ + "type":"string", + "max":64 }, "WorkflowType":{ "type":"structure", diff --git a/models/apis/swf/2012-01-25/docs-2.json b/models/apis/swf/2012-01-25/docs-2.json index b2b5d16ca19..247649314f4 100644 --- a/models/apis/swf/2012-01-25/docs-2.json +++ b/models/apis/swf/2012-01-25/docs-2.json @@ -1,39 +1,39 @@ { "version": "2.0", + "service": "Amazon Simple Workflow Service

The Amazon Simple Workflow Service (Amazon SWF) makes it easy to build applications that use Amazon's cloud to coordinate work across distributed components. In Amazon SWF, a task represents a logical unit of work that is performed by a component of your workflow. Coordinating tasks in a workflow involves managing intertask dependencies, scheduling, and concurrency in accordance with the logical flow of the application.

Amazon SWF gives you full control over implementing tasks and coordinating them without worrying about underlying complexities such as tracking their progress and maintaining their state.

This documentation serves as reference only. For a broader overview of the Amazon SWF programming model, see the Amazon SWF Developer Guide .

", "operations": { - "CountClosedWorkflowExecutions": "

Returns the number of closed workflow executions within the given domain that meet the specified filtering criteria.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.
    • typeFilter.name: String constraint. The key is swf:typeFilter.name.
    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "CountOpenWorkflowExecutions": "

Returns the number of open workflow executions within the given domain that meet the specified filtering criteria.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.
    • typeFilter.name: String constraint. The key is swf:typeFilter.name.
    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "CountPendingActivityTasks": "

Returns the estimated number of activity tasks in the specified task list. The count returned is an approximation and is not guaranteed to be exact. If you specify a task list that no activity task was ever scheduled in then 0 will be returned.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "CountPendingDecisionTasks": "

Returns the estimated number of decision tasks in the specified task list. The count returned is an approximation and is not guaranteed to be exact. If you specify a task list that no decision task was ever scheduled in then 0 will be returned.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "DeprecateActivityType": "

Deprecates the specified activity type. After an activity type has been deprecated, you cannot create new tasks of that activity type. Tasks of this type that were scheduled before the type was deprecated will continue to run.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • activityType.name: String constraint. The key is swf:activityType.name.
    • activityType.version: String constraint. The key is swf:activityType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "DeprecateDomain": "

Deprecates the specified domain. After a domain has been deprecated it cannot be used to create new workflow executions or register new types. However, you can still use visibility actions on this domain. Deprecating a domain also deprecates all activity and workflow types registered in the domain. Executions that were started before the domain was deprecated will continue to run.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "DeprecateWorkflowType": "

Deprecates the specified workflow type. After a workflow type has been deprecated, you cannot create new executions of that type. Executions that were started before the type was deprecated will continue to run. A deprecated workflow type may still be used when calling visibility actions.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • workflowType.name: String constraint. The key is swf:workflowType.name.
    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "DescribeActivityType": "

Returns information about the specified activity type. This includes configuration settings provided when the type was registered and other general information about the type.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • activityType.name: String constraint. The key is swf:activityType.name.
    • activityType.version: String constraint. The key is swf:activityType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "DescribeDomain": "

Returns information about the specified domain, including description and status.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "DescribeWorkflowExecution": "

Returns information about the specified workflow execution including its type and some statistics.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "DescribeWorkflowType": "

Returns information about the specified workflow type. This includes configuration settings specified when the type was registered and other information such as creation date, current status, and so on.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • workflowType.name: String constraint. The key is swf:workflowType.name.
    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "GetWorkflowExecutionHistory": "

Returns the history of the specified workflow execution. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "ListActivityTypes": "

Returns information about all activities registered in the specified domain that match the specified name and registration status. The result includes information like creation date, current status of the activity, etc. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "ListClosedWorkflowExecutions": "

Returns a list of closed workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.
    • typeFilter.name: String constraint. The key is swf:typeFilter.name.
    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "ListDomains": "

Returns the list of domains registered in the account. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains. The element must be set to arn:aws:swf::AccountID:domain/*, where AccountID is the account ID, with no dashes.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "ListOpenWorkflowExecutions": "

Returns a list of open workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.
    • typeFilter.name: String constraint. The key is swf:typeFilter.name.
    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "ListWorkflowTypes": "

Returns information about workflow types in the specified domain. The results may be split into multiple pages that can be retrieved by making the call repeatedly.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "PollForActivityTask": "

Used by workers to get an ActivityTask from the specified activity taskList. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available. The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll will return an empty result. An empty result, in this context, means that an ActivityTask is returned, but that the value of taskToken is an empty string. If a task is returned, the worker should use its type to identify and process it correctly.

Workers should set their client side socket timeout to at least 70 seconds (10 seconds higher than the maximum time service may hold the poll request).

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "PollForDecisionTask": "

Used by deciders to get a DecisionTask from the specified decision taskList. A decision task may be returned for any open workflow execution that is using the specified task list. The task includes a paginated view of the history of the workflow execution. The decider should use the workflow type and the history to determine how to properly handle the task.

This action initiates a long poll, where the service holds the HTTP connection open and responds as soon a task becomes available. If no decision task is available in the specified task list before the timeout of 60 seconds expires, an empty result is returned. An empty result, in this context, means that a DecisionTask is returned, but that the value of taskToken is an empty string.

Deciders should set their client-side socket timeout to at least 70 seconds (10 seconds higher than the timeout). Because the number of workflow history events for a single workflow execution might be very large, the result returned might be split up across a number of pages. To retrieve subsequent pages, make additional calls to PollForDecisionTask using the nextPageToken returned by the initial call. Note that you do not call GetWorkflowExecutionHistory with this nextPageToken. Instead, call PollForDecisionTask again.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "RecordActivityTaskHeartbeat": "

Used by activity workers to report to the service that the ActivityTask represented by the specified taskToken is still making progress. The worker can also (optionally) specify details of the progress, for example percent complete, using the details parameter. This action can also be used by the worker as a mechanism to check if cancellation is being requested for the activity task. If a cancellation is being attempted for the specified task, then the boolean cancelRequested flag returned by the service is set to true.

This action resets the taskHeartbeatTimeout clock. The taskHeartbeatTimeout is specified in RegisterActivityType.

This action does not in itself create an event in the workflow execution history. However, if the task times out, the workflow execution history will contain a ActivityTaskTimedOut event that contains the information from the last heartbeat generated by the activity worker.

The taskStartToCloseTimeout of an activity type is the maximum duration of an activity task, regardless of the number of RecordActivityTaskHeartbeat requests received. The taskStartToCloseTimeout is also specified in RegisterActivityType. This operation is only useful for long-lived activities to report liveliness of the task and to determine if a cancellation is being attempted. If the cancelRequested flag returns true, a cancellation is being attempted. If the worker can cancel the activity, it should respond with RespondActivityTaskCanceled. Otherwise, it should ignore the cancellation request.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "RegisterActivityType": "

Registers a new activity type along with its configuration settings in the specified domain.

A TypeAlreadyExists fault is returned if the type already exists in the domain. You cannot change any configuration settings of the type after its registration, and it must be registered as a new version.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • defaultTaskList.name: String constraint. The key is swf:defaultTaskList.name.
    • name: String constraint. The key is swf:name.
    • version: String constraint. The key is swf:version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "RegisterDomain": "

Registers a new domain.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • You cannot use an IAM policy to control domain access for this action. The name of the domain being registered is available as the resource of this action.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "RegisterWorkflowType": "

Registers a new workflow type and its configuration settings in the specified domain.

The retention period for the workflow history is set by the RegisterDomain action.

If the type already exists, then a TypeAlreadyExists fault is returned. You cannot change the configuration settings of a workflow type once it is registered and it must be registered as a new version.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • defaultTaskList.name: String constraint. The key is swf:defaultTaskList.name.
    • name: String constraint. The key is swf:name.
    • version: String constraint. The key is swf:version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "RequestCancelWorkflowExecution": "

Records a WorkflowExecutionCancelRequested event in the currently running workflow execution identified by the given domain, workflowId, and runId. This logically requests the cancellation of the workflow execution as a whole. It is up to the decider to take appropriate actions when it receives an execution history with this event.

If the runId is not specified, the WorkflowExecutionCancelRequested event is recorded in the history of the current open workflow execution with the specified workflowId in the domain. Because this action allows the workflow to properly clean up and gracefully close, it should be used instead of TerminateWorkflowExecution when possible.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "RespondActivityTaskCanceled": "

Used by workers to tell the service that the ActivityTask identified by the taskToken was successfully canceled. Additional details can be optionally provided using the details argument.

These details (if provided) appear in the ActivityTaskCanceled event added to the workflow history.

Only use this operation if the canceled flag of a RecordActivityTaskHeartbeat request returns true and if the activity can be safely undone or abandoned.

A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "RespondActivityTaskCompleted": "

Used by workers to tell the service that the ActivityTask identified by the taskToken completed successfully with a result (if provided). The result appears in the ActivityTaskCompleted event in the workflow history.

If the requested task does not complete successfully, use RespondActivityTaskFailed instead. If the worker finds that the task is canceled through the canceled flag returned by RecordActivityTaskHeartbeat, it should cancel the task, clean up and then call RespondActivityTaskCanceled.

A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "RespondActivityTaskFailed": "

Used by workers to tell the service that the ActivityTask identified by the taskToken has failed with reason (if specified). The reason and details appear in the ActivityTaskFailed event added to the workflow history.

A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "RespondDecisionTaskCompleted": "

Used by deciders to tell the service that the DecisionTask identified by the taskToken has successfully completed. The decisions argument specifies the list of decisions made while processing the task.

A DecisionTaskCompleted event is added to the workflow history. The executionContext specified is attached to the event in the workflow execution history.

Access Control

If an IAM policy grants permission to use RespondDecisionTaskCompleted, it can express permissions for the list of decisions in the decisions parameter. Each of the decisions has one or more parameters, much like a regular API call. To allow for policies to be as readable as possible, you can express permissions on decisions as if they were actual API calls, including applying conditions to some parameters. For more information, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "SignalWorkflowExecution": "

Records a WorkflowExecutionSignaled event in the workflow execution history and creates a decision task for the workflow execution identified by the given domain, workflowId and runId. The event is recorded with the specified user defined signalName and input (if provided).

If a runId is not specified, then the WorkflowExecutionSignaled event is recorded in the history of the current open workflow with the matching workflowId in the domain. If the specified workflow execution is not open, this method fails with UnknownResource.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "StartWorkflowExecution": "

Starts an execution of the workflow type in the specified domain using the provided workflowId and input data.

This action returns the newly started workflow execution.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagList.member.0: The key is swf:tagList.member.0.
    • tagList.member.1: The key is swf:tagList.member.1.
    • tagList.member.2: The key is swf:tagList.member.2.
    • tagList.member.3: The key is swf:tagList.member.3.
    • tagList.member.4: The key is swf:tagList.member.4.
    • taskList: String constraint. The key is swf:taskList.name.
    • workflowType.name: String constraint. The key is swf:workflowType.name.
    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", - "TerminateWorkflowExecution": "

Records a WorkflowExecutionTerminated event and forces closure of the workflow execution identified by the given domain, runId, and workflowId. The child policy, registered with the workflow type or specified when starting this execution, is applied to any open child workflow executions of this workflow execution.

If the identified workflow execution was in progress, it is terminated immediately. If a runId is not specified, then the WorkflowExecutionTerminated event is recorded in the history of the current open workflow with the matching workflowId in the domain. You should consider using RequestCancelWorkflowExecution action instead because it allows the workflow to gracefully close while TerminateWorkflowExecution does not.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

" + "CountClosedWorkflowExecutions": "

Returns the number of closed workflow executions within the given domain that meet the specified filtering criteria.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.

    • typeFilter.name: String constraint. The key is swf:typeFilter.name.

    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "CountOpenWorkflowExecutions": "

Returns the number of open workflow executions within the given domain that meet the specified filtering criteria.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.

    • typeFilter.name: String constraint. The key is swf:typeFilter.name.

    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "CountPendingActivityTasks": "

Returns the estimated number of activity tasks in the specified task list. The count returned is an approximation and isn't guaranteed to be exact. If you specify a task list that no activity task was ever scheduled in then 0 is returned.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "CountPendingDecisionTasks": "

Returns the estimated number of decision tasks in the specified task list. The count returned is an approximation and isn't guaranteed to be exact. If you specify a task list that no decision task was ever scheduled in then 0 is returned.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "DeprecateActivityType": "

Deprecates the specified activity type. After an activity type has been deprecated, you cannot create new tasks of that activity type. Tasks of this type that were scheduled before the type was deprecated continue to run.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • activityType.name: String constraint. The key is swf:activityType.name.

    • activityType.version: String constraint. The key is swf:activityType.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "DeprecateDomain": "

Deprecates the specified domain. After a domain has been deprecated it cannot be used to create new workflow executions or register new types. However, you can still use visibility actions on this domain. Deprecating a domain also deprecates all activity and workflow types registered in the domain. Executions that were started before the domain was deprecated continues to run.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "DeprecateWorkflowType": "

Deprecates the specified workflow type. After a workflow type has been deprecated, you cannot create new executions of that type. Executions that were started before the type was deprecated continues to run. A deprecated workflow type may still be used when calling visibility actions.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • workflowType.name: String constraint. The key is swf:workflowType.name.

    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "DescribeActivityType": "

Returns information about the specified activity type. This includes configuration settings provided when the type was registered and other general information about the type.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • activityType.name: String constraint. The key is swf:activityType.name.

    • activityType.version: String constraint. The key is swf:activityType.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "DescribeDomain": "

Returns information about the specified domain, including description and status.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "DescribeWorkflowExecution": "

Returns information about the specified workflow execution including its type and some statistics.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "DescribeWorkflowType": "

Returns information about the specified workflow type. This includes configuration settings specified when the type was registered and other information such as creation date, current status, etc.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • workflowType.name: String constraint. The key is swf:workflowType.name.

    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "GetWorkflowExecutionHistory": "

Returns the history of the specified workflow execution. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "ListActivityTypes": "

Returns information about all activities registered in the specified domain that match the specified name and registration status. The result includes information like creation date, current status of the activity, etc. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "ListClosedWorkflowExecutions": "

Returns a list of closed workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.

    • typeFilter.name: String constraint. The key is swf:typeFilter.name.

    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "ListDomains": "

Returns the list of domains registered in the account. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains. The element must be set to arn:aws:swf::AccountID:domain/*, where AccountID is the account ID, with no dashes.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "ListOpenWorkflowExecutions": "

Returns a list of open workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.

    • typeFilter.name: String constraint. The key is swf:typeFilter.name.

    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "ListWorkflowTypes": "

Returns information about workflow types in the specified domain. The results may be split into multiple pages that can be retrieved by making the call repeatedly.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "PollForActivityTask": "

Used by workers to get an ActivityTask from the specified activity taskList. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available. The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll returns an empty result. An empty result, in this context, means that an ActivityTask is returned, but that the value of taskToken is an empty string. If a task is returned, the worker should use its type to identify and process it correctly.

Workers should set their client side socket timeout to at least 70 seconds (10 seconds higher than the maximum time service may hold the poll request).

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "PollForDecisionTask": "

Used by deciders to get a DecisionTask from the specified decision taskList. A decision task may be returned for any open workflow execution that is using the specified task list. The task includes a paginated view of the history of the workflow execution. The decider should use the workflow type and the history to determine how to properly handle the task.

This action initiates a long poll, where the service holds the HTTP connection open and responds as soon a task becomes available. If no decision task is available in the specified task list before the timeout of 60 seconds expires, an empty result is returned. An empty result, in this context, means that a DecisionTask is returned, but that the value of taskToken is an empty string.

Deciders should set their client side socket timeout to at least 70 seconds (10 seconds higher than the timeout).

Because the number of workflow history events for a single workflow execution might be very large, the result returned might be split up across a number of pages. To retrieve subsequent pages, make additional calls to PollForDecisionTask using the nextPageToken returned by the initial call. Note that you do not call GetWorkflowExecutionHistory with this nextPageToken. Instead, call PollForDecisionTask again.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "RecordActivityTaskHeartbeat": "

Used by activity workers to report to the service that the ActivityTask represented by the specified taskToken is still making progress. The worker can also specify details of the progress, for example percent complete, using the details parameter. This action can also be used by the worker as a mechanism to check if cancellation is being requested for the activity task. If a cancellation is being attempted for the specified task, then the boolean cancelRequested flag returned by the service is set to true.

This action resets the taskHeartbeatTimeout clock. The taskHeartbeatTimeout is specified in RegisterActivityType.

This action doesn't in itself create an event in the workflow execution history. However, if the task times out, the workflow execution history contains a ActivityTaskTimedOut event that contains the information from the last heartbeat generated by the activity worker.

The taskStartToCloseTimeout of an activity type is the maximum duration of an activity task, regardless of the number of RecordActivityTaskHeartbeat requests received. The taskStartToCloseTimeout is also specified in RegisterActivityType.

This operation is only useful for long-lived activities to report liveliness of the task and to determine if a cancellation is being attempted.

If the cancelRequested flag returns true, a cancellation is being attempted. If the worker can cancel the activity, it should respond with RespondActivityTaskCanceled. Otherwise, it should ignore the cancellation request.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "RegisterActivityType": "

Registers a new activity type along with its configuration settings in the specified domain.

A TypeAlreadyExists fault is returned if the type already exists in the domain. You cannot change any configuration settings of the type after its registration, and it must be registered as a new version.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • defaultTaskList.name: String constraint. The key is swf:defaultTaskList.name.

    • name: String constraint. The key is swf:name.

    • version: String constraint. The key is swf:version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "RegisterDomain": "

Registers a new domain.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • You cannot use an IAM policy to control domain access for this action. The name of the domain being registered is available as the resource of this action.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "RegisterWorkflowType": "

Registers a new workflow type and its configuration settings in the specified domain.

The retention period for the workflow history is set by the RegisterDomain action.

If the type already exists, then a TypeAlreadyExists fault is returned. You cannot change the configuration settings of a workflow type once it is registered and it must be registered as a new version.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • defaultTaskList.name: String constraint. The key is swf:defaultTaskList.name.

    • name: String constraint. The key is swf:name.

    • version: String constraint. The key is swf:version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "RequestCancelWorkflowExecution": "

Records a WorkflowExecutionCancelRequested event in the currently running workflow execution identified by the given domain, workflowId, and runId. This logically requests the cancellation of the workflow execution as a whole. It is up to the decider to take appropriate actions when it receives an execution history with this event.

If the runId isn't specified, the WorkflowExecutionCancelRequested event is recorded in the history of the current open workflow execution with the specified workflowId in the domain.

Because this action allows the workflow to properly clean up and gracefully close, it should be used instead of TerminateWorkflowExecution when possible.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "RespondActivityTaskCanceled": "

Used by workers to tell the service that the ActivityTask identified by the taskToken was successfully canceled. Additional details can be provided using the details argument.

These details (if provided) appear in the ActivityTaskCanceled event added to the workflow history.

Only use this operation if the canceled flag of a RecordActivityTaskHeartbeat request returns true and if the activity can be safely undone or abandoned.

A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "RespondActivityTaskCompleted": "

Used by workers to tell the service that the ActivityTask identified by the taskToken completed successfully with a result (if provided). The result appears in the ActivityTaskCompleted event in the workflow history.

If the requested task doesn't complete successfully, use RespondActivityTaskFailed instead. If the worker finds that the task is canceled through the canceled flag returned by RecordActivityTaskHeartbeat, it should cancel the task, clean up and then call RespondActivityTaskCanceled.

A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "RespondActivityTaskFailed": "

Used by workers to tell the service that the ActivityTask identified by the taskToken has failed with reason (if specified). The reason and details appear in the ActivityTaskFailed event added to the workflow history.

A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "RespondDecisionTaskCompleted": "

Used by deciders to tell the service that the DecisionTask identified by the taskToken has successfully completed. The decisions argument specifies the list of decisions made while processing the task.

A DecisionTaskCompleted event is added to the workflow history. The executionContext specified is attached to the event in the workflow execution history.

Access Control

If an IAM policy grants permission to use RespondDecisionTaskCompleted, it can express permissions for the list of decisions in the decisions parameter. Each of the decisions has one or more parameters, much like a regular API call. To allow for policies to be as readable as possible, you can express permissions on decisions as if they were actual API calls, including applying conditions to some parameters. For more information, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "SignalWorkflowExecution": "

Records a WorkflowExecutionSignaled event in the workflow execution history and creates a decision task for the workflow execution identified by the given domain, workflowId and runId. The event is recorded with the specified user defined signalName and input (if provided).

If a runId isn't specified, then the WorkflowExecutionSignaled event is recorded in the history of the current open workflow with the matching workflowId in the domain.

If the specified workflow execution isn't open, this method fails with UnknownResource.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "StartWorkflowExecution": "

Starts an execution of the workflow type in the specified domain using the provided workflowId and input data.

This action returns the newly started workflow execution.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • tagList.member.0: The key is swf:tagList.member.0.

    • tagList.member.1: The key is swf:tagList.member.1.

    • tagList.member.2: The key is swf:tagList.member.2.

    • tagList.member.3: The key is swf:tagList.member.3.

    • tagList.member.4: The key is swf:tagList.member.4.

    • taskList: String constraint. The key is swf:taskList.name.

    • workflowType.name: String constraint. The key is swf:workflowType.name.

    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", + "TerminateWorkflowExecution": "

Records a WorkflowExecutionTerminated event and forces closure of the workflow execution identified by the given domain, runId, and workflowId. The child policy, registered with the workflow type or specified when starting this execution, is applied to any open child workflow executions of this workflow execution.

If the identified workflow execution was in progress, it is terminated immediately.

If a runId isn't specified, then the WorkflowExecutionTerminated event is recorded in the history of the current open workflow with the matching workflowId in the domain.

You should consider using RequestCancelWorkflowExecution action instead because it allows the workflow to gracefully close while TerminateWorkflowExecution doesn't.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" }, - "service": "Amazon Simple Workflow Service

The Amazon Simple Workflow Service (Amazon SWF) makes it easy to build applications that use Amazon's cloud to coordinate work across distributed components. In Amazon SWF, a task represents a logical unit of work that is performed by a component of your workflow. Coordinating tasks in a workflow involves managing intertask dependencies, scheduling, and concurrency in accordance with the logical flow of the application.

Amazon SWF gives you full control over implementing tasks and coordinating them without worrying about underlying complexities such as tracking their progress and maintaining their state.

This documentation serves as reference only. For a broader overview of the Amazon SWF programming model, see the Amazon SWF Developer Guide.

", "shapes": { "ActivityId": { "base": null, @@ -43,7 +43,7 @@ "ActivityTaskScheduledEventAttributes$activityId": "

The unique ID of the activity task.

", "RequestCancelActivityTaskDecisionAttributes$activityId": "

The activityId of the activity task to be canceled.

", "RequestCancelActivityTaskFailedEventAttributes$activityId": "

The activityId provided in the RequestCancelActivityTask decision that failed.

", - "ScheduleActivityTaskDecisionAttributes$activityId": "

Required. The activityId of the activity task.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "ScheduleActivityTaskDecisionAttributes$activityId": "

The activityId of the activity task.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", "ScheduleActivityTaskFailedEventAttributes$activityId": "

The activityId provided in the ScheduleActivityTask decision that failed.

" } }, @@ -53,39 +53,39 @@ } }, "ActivityTaskCancelRequestedEventAttributes": { - "base": "

Provides details of the ActivityTaskCancelRequested event.

", + "base": "

Provides the details of the ActivityTaskCancelRequested event.

", "refs": { - "HistoryEvent$activityTaskCancelRequestedEventAttributes": "

If the event is of type ActivityTaskcancelRequested then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$activityTaskCancelRequestedEventAttributes": "

If the event is of type ActivityTaskcancelRequested then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ActivityTaskCanceledEventAttributes": { - "base": "

Provides details of the ActivityTaskCanceled event.

", + "base": "

Provides the details of the ActivityTaskCanceled event.

", "refs": { - "HistoryEvent$activityTaskCanceledEventAttributes": "

If the event is of type ActivityTaskCanceled then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$activityTaskCanceledEventAttributes": "

If the event is of type ActivityTaskCanceled then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ActivityTaskCompletedEventAttributes": { - "base": "

Provides details of the ActivityTaskCompleted event.

", + "base": "

Provides the details of the ActivityTaskCompleted event.

", "refs": { - "HistoryEvent$activityTaskCompletedEventAttributes": "

If the event is of type ActivityTaskCompleted then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$activityTaskCompletedEventAttributes": "

If the event is of type ActivityTaskCompleted then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ActivityTaskFailedEventAttributes": { - "base": "

Provides details of the ActivityTaskFailed event.

", + "base": "

Provides the details of the ActivityTaskFailed event.

", "refs": { - "HistoryEvent$activityTaskFailedEventAttributes": "

If the event is of type ActivityTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$activityTaskFailedEventAttributes": "

If the event is of type ActivityTaskFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ActivityTaskScheduledEventAttributes": { - "base": "

Provides details of the ActivityTaskScheduled event.

", + "base": "

Provides the details of the ActivityTaskScheduled event.

", "refs": { - "HistoryEvent$activityTaskScheduledEventAttributes": "

If the event is of type ActivityTaskScheduled then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$activityTaskScheduledEventAttributes": "

If the event is of type ActivityTaskScheduled then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ActivityTaskStartedEventAttributes": { - "base": "

Provides details of the ActivityTaskStarted event.

", + "base": "

Provides the details of the ActivityTaskStarted event.

", "refs": { - "HistoryEvent$activityTaskStartedEventAttributes": "

If the event is of type ActivityTaskStarted then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$activityTaskStartedEventAttributes": "

If the event is of type ActivityTaskStarted then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ActivityTaskStatus": { @@ -94,9 +94,9 @@ } }, "ActivityTaskTimedOutEventAttributes": { - "base": "

Provides details of the ActivityTaskTimedOut event.

", + "base": "

Provides the details of the ActivityTaskTimedOut event.

", "refs": { - "HistoryEvent$activityTaskTimedOutEventAttributes": "

If the event is of type ActivityTaskTimedOut then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$activityTaskTimedOutEventAttributes": "

If the event is of type ActivityTaskTimedOut then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ActivityTaskTimeoutType": { @@ -113,7 +113,7 @@ "ActivityTypeInfo$activityType": "

The ActivityType type structure representing the activity type.

", "DeprecateActivityTypeInput$activityType": "

The activity type to deprecate.

", "DescribeActivityTypeInput$activityType": "

The activity type to get information about. Activity types are identified by the name and version that were supplied when the activity was registered.

", - "ScheduleActivityTaskDecisionAttributes$activityType": "

Required. The type of the activity task to schedule.

", + "ScheduleActivityTaskDecisionAttributes$activityType": "

The type of the activity task to schedule.

", "ScheduleActivityTaskFailedEventAttributes$activityType": "

The activity type provided in the ScheduleActivityTask decision that failed.

" } }, @@ -131,7 +131,7 @@ "ActivityTypeInfo": { "base": "

Detailed information about an activity type.

", "refs": { - "ActivityTypeDetail$typeInfo": "

General information about the activity type.

The status of activity type (returned in the ActivityTypeInfo structure) can be one of the following.

  • REGISTERED: The type is registered and available. Workers supporting this type should be running.
  • DEPRECATED: The type was deprecated using DeprecateActivityType, but is still in use. You should keep workers supporting this type running. You cannot create new tasks of this type.
", + "ActivityTypeDetail$typeInfo": "

General information about the activity type.

The status of activity type (returned in the ActivityTypeInfo structure) can be one of the following.

  • REGISTERED – The type is registered and available. Workers supporting this type should be running.

  • DEPRECATED – The type was deprecated using DeprecateActivityType, but is still in use. You should keep workers supporting this type running. You cannot create new tasks of this type.

", "ActivityTypeInfoList$member": null } }, @@ -149,51 +149,51 @@ "Arn": { "base": null, "refs": { - "ContinueAsNewWorkflowExecutionDecisionAttributes$lambdaRole": "

The ARN of an IAM role that authorizes Amazon SWF to invoke AWS Lambda functions.

In order for this workflow execution to invoke AWS Lambda functions, an appropriate IAM role must be specified either as a default for the workflow type or through this field.", - "RegisterWorkflowTypeInput$defaultLambdaRole": "

The ARN of the default IAM role to use when a workflow execution of this type invokes AWS Lambda functions.

This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution and ContinueAsNewWorkflowExecution decision.

", - "StartChildWorkflowExecutionDecisionAttributes$lambdaRole": "

The ARN of an IAM role that authorizes Amazon SWF to invoke AWS Lambda functions.

In order for this workflow execution to invoke AWS Lambda functions, an appropriate IAM role must be specified either as a default for the workflow type or through this field.", - "StartChildWorkflowExecutionInitiatedEventAttributes$lambdaRole": "

The IAM role attached to this workflow execution to use when invoking AWS Lambda functions.

", - "StartWorkflowExecutionInput$lambdaRole": "

The ARN of an IAM role that authorizes Amazon SWF to invoke AWS Lambda functions.

In order for this workflow execution to invoke AWS Lambda functions, an appropriate IAM role must be specified either as a default for the workflow type or through this field.", - "WorkflowExecutionConfiguration$lambdaRole": "

The IAM role used by this workflow execution when invoking AWS Lambda functions.

", - "WorkflowExecutionContinuedAsNewEventAttributes$lambdaRole": "

The IAM role attached to this workflow execution to use when invoking AWS Lambda functions.

", - "WorkflowExecutionStartedEventAttributes$lambdaRole": "

The IAM role attached to this workflow execution to use when invoking AWS Lambda functions.

", - "WorkflowTypeConfiguration$defaultLambdaRole": "

The default IAM role to use when a workflow execution invokes a AWS Lambda function.

" + "ContinueAsNewWorkflowExecutionDecisionAttributes$lambdaRole": "

The IAM role to attach to the new (continued) execution.

", + "RegisterWorkflowTypeInput$defaultLambdaRole": "

The default IAM role attached to this workflow type.

Executions of this workflow type need IAM roles to invoke Lambda functions. If you don't specify an IAM role when you start this workflow type, the default Lambda role is attached to the execution. For more information, see http://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html in the Amazon SWF Developer Guide.

", + "StartChildWorkflowExecutionDecisionAttributes$lambdaRole": "

The IAM role attached to the child workflow execution.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$lambdaRole": "

The IAM role to attach to the child workflow execution.

", + "StartWorkflowExecutionInput$lambdaRole": "

The IAM role to attach to this workflow execution.

Executions of this workflow type need IAM roles to invoke Lambda functions. If you don't attach an IAM role, any attempt to schedule a Lambda task fails. This results in a ScheduleLambdaFunctionFailed history event. For more information, see http://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html in the Amazon SWF Developer Guide.

", + "WorkflowExecutionConfiguration$lambdaRole": "

The IAM role attached to the child workflow execution.

", + "WorkflowExecutionContinuedAsNewEventAttributes$lambdaRole": "

The IAM role to attach to the new (continued) workflow execution.

", + "WorkflowExecutionStartedEventAttributes$lambdaRole": "

The IAM role attached to the workflow execution.

", + "WorkflowTypeConfiguration$defaultLambdaRole": "

The default IAM role attached to this workflow type.

Executions of this workflow type need IAM roles to invoke Lambda functions. If you don't specify an IAM role when starting this workflow type, the default Lambda role is attached to the execution. For more information, see http://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html in the Amazon SWF Developer Guide.

" } }, "CancelTimerDecisionAttributes": { - "base": "

Provides details of the CancelTimer decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the CancelTimer decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$cancelTimerDecisionAttributes": "

Provides details of the CancelTimer decision. It is not set for other decision types.

" + "Decision$cancelTimerDecisionAttributes": "

Provides the details of the CancelTimer decision. It isn't set for other decision types.

" } }, "CancelTimerFailedCause": { "base": null, "refs": { - "CancelTimerFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "CancelTimerFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "CancelTimerFailedEventAttributes": { - "base": "

Provides details of the CancelTimerFailed event.

", + "base": "

Provides the details of the CancelTimerFailed event.

", "refs": { - "HistoryEvent$cancelTimerFailedEventAttributes": "

If the event is of type CancelTimerFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$cancelTimerFailedEventAttributes": "

If the event is of type CancelTimerFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "CancelWorkflowExecutionDecisionAttributes": { - "base": "

Provides details of the CancelWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the CancelWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$cancelWorkflowExecutionDecisionAttributes": "

Provides details of the CancelWorkflowExecution decision. It is not set for other decision types.

" + "Decision$cancelWorkflowExecutionDecisionAttributes": "

Provides the details of the CancelWorkflowExecution decision. It isn't set for other decision types.

" } }, "CancelWorkflowExecutionFailedCause": { "base": null, "refs": { - "CancelWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "CancelWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "CancelWorkflowExecutionFailedEventAttributes": { - "base": "

Provides details of the CancelWorkflowExecutionFailed event.

", + "base": "

Provides the details of the CancelWorkflowExecutionFailed event.

", "refs": { - "HistoryEvent$cancelWorkflowExecutionFailedEventAttributes": "

If the event is of type CancelWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$cancelWorkflowExecutionFailedEventAttributes": "

If the event is of type CancelWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "Canceled": { @@ -206,110 +206,110 @@ "CauseMessage": { "base": null, "refs": { - "StartLambdaFunctionFailedEventAttributes$message": "

The error message (if any).

" + "StartLambdaFunctionFailedEventAttributes$message": "

A description that can help diagnose the cause of the fault.

" } }, "ChildPolicy": { "base": null, "refs": { - "ContinueAsNewWorkflowExecutionDecisionAttributes$childPolicy": "

If set, specifies the policy to use for the child workflow executions of the new execution if it is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned.", - "RegisterWorkflowTypeInput$defaultChildPolicy": "

If set, specifies the default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", - "StartChildWorkflowExecutionDecisionAttributes$childPolicy": "

Optional. If set, specifies the policy to use for the child workflow executions if the workflow execution being started is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned.", - "StartChildWorkflowExecutionInitiatedEventAttributes$childPolicy": "

The policy to use for the child workflow executions if this execution gets terminated by explicitly calling the TerminateWorkflowExecution action or due to an expired timeout.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", - "StartWorkflowExecutionInput$childPolicy": "

If set, specifies the policy to use for the child workflow executions of this workflow execution if it is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned.", - "TerminateWorkflowExecutionInput$childPolicy": "

If set, specifies the policy to use for the child workflow executions of the workflow execution being terminated. This policy overrides the child policy specified for the workflow execution at registration time or when starting the execution.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned.", - "WorkflowExecutionConfiguration$childPolicy": "

The policy to use for the child workflow executions if this workflow execution is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", - "WorkflowExecutionContinuedAsNewEventAttributes$childPolicy": "

The policy to use for the child workflow executions of the new execution if it is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", - "WorkflowExecutionStartedEventAttributes$childPolicy": "

The policy to use for the child workflow executions if this workflow execution is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", - "WorkflowExecutionTerminatedEventAttributes$childPolicy": "

The policy used for the child workflow executions of this workflow execution.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", - "WorkflowExecutionTimedOutEventAttributes$childPolicy": "

The policy used for the child workflow executions of this workflow execution.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", - "WorkflowTypeConfiguration$defaultChildPolicy": "

Optional. The default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
" + "ContinueAsNewWorkflowExecutionDecisionAttributes$childPolicy": "

If set, specifies the policy to use for the child workflow executions of the new execution if it is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault is returned.

", + "RegisterWorkflowTypeInput$defaultChildPolicy": "

If set, specifies the default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

", + "StartChildWorkflowExecutionDecisionAttributes$childPolicy": "

If set, specifies the policy to use for the child workflow executions if the workflow execution being started is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault is returned.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$childPolicy": "

The policy to use for the child workflow executions if this execution gets terminated by explicitly calling the TerminateWorkflowExecution action or due to an expired timeout.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

", + "StartWorkflowExecutionInput$childPolicy": "

If set, specifies the policy to use for the child workflow executions of this workflow execution if it is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault is returned.

", + "TerminateWorkflowExecutionInput$childPolicy": "

If set, specifies the policy to use for the child workflow executions of the workflow execution being terminated. This policy overrides the child policy specified for the workflow execution at registration time or when starting the execution.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault is returned.

", + "WorkflowExecutionConfiguration$childPolicy": "

The policy to use for the child workflow executions if this workflow execution is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

", + "WorkflowExecutionContinuedAsNewEventAttributes$childPolicy": "

The policy to use for the child workflow executions of the new execution if it is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

", + "WorkflowExecutionStartedEventAttributes$childPolicy": "

The policy to use for the child workflow executions if this workflow execution is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

", + "WorkflowExecutionTerminatedEventAttributes$childPolicy": "

The policy used for the child workflow executions of this workflow execution.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

", + "WorkflowExecutionTimedOutEventAttributes$childPolicy": "

The policy used for the child workflow executions of this workflow execution.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

", + "WorkflowTypeConfiguration$defaultChildPolicy": "

The default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

The supported child policies are:

  • TERMINATE – The child executions are terminated.

  • REQUEST_CANCEL – A request to cancel is attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.

  • ABANDON – No action is taken. The child executions continue to run.

" } }, "ChildWorkflowExecutionCanceledEventAttributes": { "base": "

Provide details of the ChildWorkflowExecutionCanceled event.

", "refs": { - "HistoryEvent$childWorkflowExecutionCanceledEventAttributes": "

If the event is of type ChildWorkflowExecutionCanceled then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$childWorkflowExecutionCanceledEventAttributes": "

If the event is of type ChildWorkflowExecutionCanceled then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ChildWorkflowExecutionCompletedEventAttributes": { - "base": "

Provides details of the ChildWorkflowExecutionCompleted event.

", + "base": "

Provides the details of the ChildWorkflowExecutionCompleted event.

", "refs": { - "HistoryEvent$childWorkflowExecutionCompletedEventAttributes": "

If the event is of type ChildWorkflowExecutionCompleted then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$childWorkflowExecutionCompletedEventAttributes": "

If the event is of type ChildWorkflowExecutionCompleted then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ChildWorkflowExecutionFailedEventAttributes": { - "base": "

Provides details of the ChildWorkflowExecutionFailed event.

", + "base": "

Provides the details of the ChildWorkflowExecutionFailed event.

", "refs": { - "HistoryEvent$childWorkflowExecutionFailedEventAttributes": "

If the event is of type ChildWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$childWorkflowExecutionFailedEventAttributes": "

If the event is of type ChildWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ChildWorkflowExecutionStartedEventAttributes": { - "base": "

Provides details of the ChildWorkflowExecutionStarted event.

", + "base": "

Provides the details of the ChildWorkflowExecutionStarted event.

", "refs": { - "HistoryEvent$childWorkflowExecutionStartedEventAttributes": "

If the event is of type ChildWorkflowExecutionStarted then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$childWorkflowExecutionStartedEventAttributes": "

If the event is of type ChildWorkflowExecutionStarted then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ChildWorkflowExecutionTerminatedEventAttributes": { - "base": "

Provides details of the ChildWorkflowExecutionTerminated event.

", + "base": "

Provides the details of the ChildWorkflowExecutionTerminated event.

", "refs": { - "HistoryEvent$childWorkflowExecutionTerminatedEventAttributes": "

If the event is of type ChildWorkflowExecutionTerminated then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$childWorkflowExecutionTerminatedEventAttributes": "

If the event is of type ChildWorkflowExecutionTerminated then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ChildWorkflowExecutionTimedOutEventAttributes": { - "base": "

Provides details of the ChildWorkflowExecutionTimedOut event.

", + "base": "

Provides the details of the ChildWorkflowExecutionTimedOut event.

", "refs": { - "HistoryEvent$childWorkflowExecutionTimedOutEventAttributes": "

If the event is of type ChildWorkflowExecutionTimedOut then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$childWorkflowExecutionTimedOutEventAttributes": "

If the event is of type ChildWorkflowExecutionTimedOut then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "CloseStatus": { "base": null, "refs": { - "CloseStatusFilter$status": "

Required. The close status that must match the close status of an execution for it to meet the criteria of this filter.

", - "WorkflowExecutionInfo$closeStatus": "

If the execution status is closed then this specifies how the execution was closed:

  • COMPLETED: the execution was successfully completed.
  • CANCELED: the execution was canceled.Cancellation allows the implementation to gracefully clean up before the execution is closed.
  • TERMINATED: the execution was force terminated.
  • FAILED: the execution failed to complete.
  • TIMED_OUT: the execution did not complete in the alloted time and was automatically timed out.
  • CONTINUED_AS_NEW: the execution is logically continued. This means the current execution was completed and a new execution was started to carry on the workflow.
" + "CloseStatusFilter$status": "

The close status that must match the close status of an execution for it to meet the criteria of this filter.

", + "WorkflowExecutionInfo$closeStatus": "

If the execution status is closed then this specifies how the execution was closed:

  • COMPLETED – the execution was successfully completed.

  • CANCELED – the execution was canceled.Cancellation allows the implementation to gracefully clean up before the execution is closed.

  • TERMINATED – the execution was force terminated.

  • FAILED – the execution failed to complete.

  • TIMED_OUT – the execution did not complete in the alloted time and was automatically timed out.

  • CONTINUED_AS_NEW – the execution is logically continued. This means the current execution was completed and a new execution was started to carry on the workflow.

" } }, "CloseStatusFilter": { "base": "

Used to filter the closed workflow executions in visibility APIs by their close status.

", "refs": { - "CountClosedWorkflowExecutionsInput$closeStatusFilter": "

If specified, only workflow executions that match this close status are counted. This filter has an affect only if executionStatus is specified as CLOSED.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", - "ListClosedWorkflowExecutionsInput$closeStatusFilter": "

If specified, only workflow executions that match this close status are listed. For example, if TERMINATED is specified, then only TERMINATED workflow executions are listed.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request." + "CountClosedWorkflowExecutionsInput$closeStatusFilter": "

If specified, only workflow executions that match this close status are counted. This filter has an affect only if executionStatus is specified as CLOSED.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

", + "ListClosedWorkflowExecutionsInput$closeStatusFilter": "

If specified, only workflow executions that match this close status are listed. For example, if TERMINATED is specified, then only TERMINATED workflow executions are listed.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

" } }, "CompleteWorkflowExecutionDecisionAttributes": { - "base": "

Provides details of the CompleteWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the CompleteWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$completeWorkflowExecutionDecisionAttributes": "

Provides details of the CompleteWorkflowExecution decision. It is not set for other decision types.

" + "Decision$completeWorkflowExecutionDecisionAttributes": "

Provides the details of the CompleteWorkflowExecution decision. It isn't set for other decision types.

" } }, "CompleteWorkflowExecutionFailedCause": { "base": null, "refs": { - "CompleteWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "CompleteWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "CompleteWorkflowExecutionFailedEventAttributes": { - "base": "

Provides details of the CompleteWorkflowExecutionFailed event.

", + "base": "

Provides the details of the CompleteWorkflowExecutionFailed event.

", "refs": { - "HistoryEvent$completeWorkflowExecutionFailedEventAttributes": "

If the event is of type CompleteWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$completeWorkflowExecutionFailedEventAttributes": "

If the event is of type CompleteWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ContinueAsNewWorkflowExecutionDecisionAttributes": { - "base": "

Provides details of the ContinueAsNewWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tag: Optional.. A tag used to identify the workflow execution
    • taskList: String constraint. The key is swf:taskList.name.
    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the ContinueAsNewWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • tag – A tag used to identify the workflow execution

    • taskList – String constraint. The key is swf:taskList.name.

    • workflowType.version – String constraint. The key is swf:workflowType.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$continueAsNewWorkflowExecutionDecisionAttributes": "

Provides details of the ContinueAsNewWorkflowExecution decision. It is not set for other decision types.

" + "Decision$continueAsNewWorkflowExecutionDecisionAttributes": "

Provides the details of the ContinueAsNewWorkflowExecution decision. It isn't set for other decision types.

" } }, "ContinueAsNewWorkflowExecutionFailedCause": { "base": null, "refs": { - "ContinueAsNewWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "ContinueAsNewWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "ContinueAsNewWorkflowExecutionFailedEventAttributes": { - "base": "

Provides details of the ContinueAsNewWorkflowExecutionFailed event.

", + "base": "

Provides the details of the ContinueAsNewWorkflowExecutionFailed event.

", "refs": { - "HistoryEvent$continueAsNewWorkflowExecutionFailedEventAttributes": "

If the event is of type ContinueAsNewWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$continueAsNewWorkflowExecutionFailedEventAttributes": "

If the event is of type ContinueAsNewWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "Count": { @@ -317,10 +317,10 @@ "refs": { "PendingTaskCount$count": "

The number of tasks in the task list.

", "WorkflowExecutionCount$count": "

The number of workflow executions.

", - "WorkflowExecutionOpenCounts$openActivityTasks": "

The count of activity tasks whose status is OPEN.

", + "WorkflowExecutionOpenCounts$openActivityTasks": "

The count of activity tasks whose status is OPEN.

", "WorkflowExecutionOpenCounts$openTimers": "

The count of timers started by this workflow execution that have not fired yet.

", - "WorkflowExecutionOpenCounts$openChildWorkflowExecutions": "

The count of child workflow executions whose status is OPEN.

", - "WorkflowExecutionOpenCounts$openLambdaFunctions": "

The count of AWS Lambda functions that are currently executing.

" + "WorkflowExecutionOpenCounts$openChildWorkflowExecutions": "

The count of child workflow executions whose status is OPEN.

", + "WorkflowExecutionOpenCounts$openLambdaFunctions": "

The count of Lambda tasks whose status is OPEN.

" } }, "CountClosedWorkflowExecutionsInput": { @@ -347,59 +347,61 @@ "base": null, "refs": { "ActivityTask$input": "

The inputs provided when the activity task was scheduled. The form of the input is user defined and should be meaningful to the activity implementation.

", - "ActivityTaskCanceledEventAttributes$details": "

Details of the cancellation (if any).

", - "ActivityTaskCompletedEventAttributes$result": "

The results of the activity task (if any).

", - "ActivityTaskFailedEventAttributes$details": "

The details of the failure (if any).

", + "ActivityTaskCanceledEventAttributes$details": "

Details of the cancellation.

", + "ActivityTaskCompletedEventAttributes$result": "

The results of the activity task.

", + "ActivityTaskFailedEventAttributes$details": "

The details of the failure.

", "ActivityTaskScheduledEventAttributes$input": "

The input provided to the activity task.

", - "ActivityTaskScheduledEventAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the activity.

", - "CancelWorkflowExecutionDecisionAttributes$details": "

Optional. details of the cancellation.

", + "ActivityTaskScheduledEventAttributes$control": "

Data attached to the event that can be used by the decider in subsequent workflow tasks. This data isn't sent to the activity.

", + "CancelWorkflowExecutionDecisionAttributes$details": "

Details of the cancellation.

", "ChildWorkflowExecutionCanceledEventAttributes$details": "

Details of the cancellation (if provided).

", - "ChildWorkflowExecutionCompletedEventAttributes$result": "

The result of the child workflow execution (if any).

", + "ChildWorkflowExecutionCompletedEventAttributes$result": "

The result of the child workflow execution.

", "ChildWorkflowExecutionFailedEventAttributes$details": "

The details of the failure (if provided).

", "CompleteWorkflowExecutionDecisionAttributes$result": "

The result of the workflow execution. The form of the result is implementation defined.

", "ContinueAsNewWorkflowExecutionDecisionAttributes$input": "

The input provided to the new workflow execution.

", "DecisionTaskCompletedEventAttributes$executionContext": "

User defined context for the workflow execution.

", - "FailWorkflowExecutionDecisionAttributes$details": "

Optional. Details of the failure.

", - "LambdaFunctionCompletedEventAttributes$result": "

The result of the function execution (if any).

", - "LambdaFunctionFailedEventAttributes$details": "

The details of the failure (if any).

", - "MarkerRecordedEventAttributes$details": "

Details of the marker (if any).

", - "RecordMarkerDecisionAttributes$details": "

Optional. details of the marker.

", - "RequestCancelExternalWorkflowExecutionDecisionAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks.

", - "RequestCancelExternalWorkflowExecutionFailedEventAttributes$control": null, - "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks.

", - "RespondActivityTaskCanceledInput$details": "

Optional. Information about the cancellation.

", + "FailWorkflowExecutionDecisionAttributes$details": "

Details of the failure.

", + "LambdaFunctionCompletedEventAttributes$result": "

The results of the Lambda task.

", + "LambdaFunctionFailedEventAttributes$details": "

The details of the failure.

", + "LambdaFunctionScheduledEventAttributes$control": "

Data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the Lambda task.

", + "MarkerRecordedEventAttributes$details": "

The details of the marker.

", + "RecordMarkerDecisionAttributes$details": "

The details of the marker.

", + "RequestCancelExternalWorkflowExecutionDecisionAttributes$control": "

The data attached to the event that can be used by the decider in subsequent workflow tasks.

", + "RequestCancelExternalWorkflowExecutionFailedEventAttributes$control": "

The data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the workflow execution.

", + "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes$control": "

Data attached to the event that can be used by the decider in subsequent workflow tasks.

", + "RespondActivityTaskCanceledInput$details": "

Information about the cancellation.

", "RespondActivityTaskCompletedInput$result": "

The result of the activity task. It is a free form string that is implementation specific.

", - "RespondActivityTaskFailedInput$details": "

Optional. Detailed information about the failure.

", + "RespondActivityTaskFailedInput$details": "

Detailed information about the failure.

", "RespondDecisionTaskCompletedInput$executionContext": "

User defined context to add to workflow execution.

", - "ScheduleActivityTaskDecisionAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the activity.

", + "ScheduleActivityTaskDecisionAttributes$control": "

Data attached to the event that can be used by the decider in subsequent workflow tasks. This data isn't sent to the activity.

", "ScheduleActivityTaskDecisionAttributes$input": "

The input provided to the activity task.

", - "SignalExternalWorkflowExecutionDecisionAttributes$input": "

Optional. Input data to be provided with the signal. The target workflow execution will use the signal name and input data to process the signal.

", - "SignalExternalWorkflowExecutionDecisionAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent decision tasks.

", - "SignalExternalWorkflowExecutionFailedEventAttributes$control": null, - "SignalExternalWorkflowExecutionInitiatedEventAttributes$input": "

Input provided to the signal (if any).

", - "SignalExternalWorkflowExecutionInitiatedEventAttributes$control": "

Optional. data attached to the event that can be used by the decider in subsequent decision tasks.

", + "ScheduleLambdaFunctionDecisionAttributes$control": "

The data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the Lambda task.

", + "SignalExternalWorkflowExecutionDecisionAttributes$input": "

The input data to be provided with the signal. The target workflow execution uses the signal name and input data to process the signal.

", + "SignalExternalWorkflowExecutionDecisionAttributes$control": "

The data attached to the event that can be used by the decider in subsequent decision tasks.

", + "SignalExternalWorkflowExecutionFailedEventAttributes$control": "

The data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the workflow execution.

", + "SignalExternalWorkflowExecutionInitiatedEventAttributes$input": "

The input provided to the signal.

", + "SignalExternalWorkflowExecutionInitiatedEventAttributes$control": "

Data attached to the event that can be used by the decider in subsequent decision tasks.

", "SignalWorkflowExecutionInput$input": "

Data to attach to the WorkflowExecutionSignaled event in the target workflow execution's history.

", - "StartChildWorkflowExecutionDecisionAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the child workflow execution.

", + "StartChildWorkflowExecutionDecisionAttributes$control": "

The data attached to the event that can be used by the decider in subsequent workflow tasks. This data isn't sent to the child workflow execution.

", "StartChildWorkflowExecutionDecisionAttributes$input": "

The input to be provided to the workflow execution.

", - "StartChildWorkflowExecutionFailedEventAttributes$control": null, - "StartChildWorkflowExecutionInitiatedEventAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent decision tasks. This data is not sent to the activity.

", - "StartChildWorkflowExecutionInitiatedEventAttributes$input": "

The inputs provided to the child workflow execution (if any).

", - "StartTimerDecisionAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks.

", + "StartChildWorkflowExecutionFailedEventAttributes$control": "

The data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the child workflow execution.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$control": "

Data attached to the event that can be used by the decider in subsequent decision tasks. This data isn't sent to the activity.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$input": "

The inputs provided to the child workflow execution.

", + "StartTimerDecisionAttributes$control": "

The data attached to the event that can be used by the decider in subsequent workflow tasks.

", "StartWorkflowExecutionInput$input": "

The input for the workflow execution. This is a free form string which should be meaningful to the workflow you are starting. This input is made available to the new workflow execution in the WorkflowExecutionStarted history event.

", - "TerminateWorkflowExecutionInput$details": "

Optional. Details for terminating the workflow execution.

", - "TimerStartedEventAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks.

", - "WorkflowExecutionCanceledEventAttributes$details": "

Details for the cancellation (if any).

", + "TerminateWorkflowExecutionInput$details": "

Details for terminating the workflow execution.

", + "TimerStartedEventAttributes$control": "

Data attached to the event that can be used by the decider in subsequent workflow tasks.

", + "WorkflowExecutionCanceledEventAttributes$details": "

The details of the cancellation.

", "WorkflowExecutionCompletedEventAttributes$result": "

The result produced by the workflow execution upon successful completion.

", "WorkflowExecutionContinuedAsNewEventAttributes$input": "

The input provided to the new workflow execution.

", "WorkflowExecutionDetail$latestExecutionContext": "

The latest executionContext provided by the decider for this workflow execution. A decider can provide an executionContext (a free-form string) when closing a decision task using RespondDecisionTaskCompleted.

", - "WorkflowExecutionFailedEventAttributes$details": "

The details of the failure (if any).

", - "WorkflowExecutionSignaledEventAttributes$input": "

Inputs provided with the signal (if any). The decider can use the signal name and inputs to determine how to process the signal.

", - "WorkflowExecutionStartedEventAttributes$input": "

The input provided to the workflow execution (if any).

", - "WorkflowExecutionTerminatedEventAttributes$details": "

The details provided for the termination (if any).

" + "WorkflowExecutionFailedEventAttributes$details": "

The details of the failure.

", + "WorkflowExecutionSignaledEventAttributes$input": "

The inputs provided with the signal. The decider can use the signal name and inputs to determine how to process the signal.

", + "WorkflowExecutionStartedEventAttributes$input": "

The input provided to the workflow execution.

", + "WorkflowExecutionTerminatedEventAttributes$details": "

The details provided for the termination.

" } }, "Decision": { - "base": "

Specifies a decision made by the decider. A decision can be one of these types:

  • CancelTimer: cancels a previously started timer and records a TimerCanceled event in the history.
  • CancelWorkflowExecution: closes the workflow execution and records a WorkflowExecutionCanceled event in the history.
  • CompleteWorkflowExecution: closes the workflow execution and records a WorkflowExecutionCompleted event in the history .
  • ContinueAsNewWorkflowExecution: closes the workflow execution and starts a new workflow execution of the same type using the same workflow ID and a unique run ID. A WorkflowExecutionContinuedAsNew event is recorded in the history.
  • FailWorkflowExecution: closes the workflow execution and records a WorkflowExecutionFailed event in the history.
  • RecordMarker: records a MarkerRecorded event in the history. Markers can be used for adding custom information in the history for instance to let deciders know that they do not need to look at the history beyond the marker event.
  • RequestCancelActivityTask: attempts to cancel a previously scheduled activity task. If the activity task was scheduled but has not been assigned to a worker, then it will be canceled. If the activity task was already assigned to a worker, then the worker will be informed that cancellation has been requested in the response to RecordActivityTaskHeartbeat.
  • RequestCancelExternalWorkflowExecution: requests that a request be made to cancel the specified external workflow execution and records a RequestCancelExternalWorkflowExecutionInitiated event in the history.
  • ScheduleActivityTask: schedules an activity task.
  • ScheduleLambdaFunction: schedules a AWS Lambda function.
  • SignalExternalWorkflowExecution: requests a signal to be delivered to the specified external workflow execution and records a SignalExternalWorkflowExecutionInitiated event in the history.
  • StartChildWorkflowExecution: requests that a child workflow execution be started and records a StartChildWorkflowExecutionInitiated event in the history. The child workflow execution is a separate workflow execution with its own history.
  • StartTimer: starts a timer for this workflow execution and records a TimerStarted event in the history. This timer will fire after the specified delay and record a TimerFired event.

Access Control

If you grant permission to use RespondDecisionTaskCompleted, you can use IAM policies to express permissions for the list of decisions returned by this action as if they were members of the API. Treating decisions as a pseudo API maintains a uniform conceptual model and helps keep policies readable. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

Decision Failure

Decisions can fail for several reasons

  • The ordering of decisions should follow a logical flow. Some decisions might not make sense in the current context of the workflow execution and will therefore fail.
  • A limit on your account was reached.
  • The decision lacks sufficient permissions.

One of the following events might be added to the history to indicate an error. The event attribute's cause parameter indicates the cause. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

  • ScheduleActivityTaskFailed: a ScheduleActivityTask decision failed. This could happen if the activity type specified in the decision is not registered, is in a deprecated state, or the decision is not properly configured.
  • ScheduleLambdaFunctionFailed: a ScheduleLambdaFunctionFailed decision failed. This could happen if the AWS Lambda function specified in the decision does not exist, or the AWS Lambda service's limits are exceeded.
  • RequestCancelActivityTaskFailed: a RequestCancelActivityTask decision failed. This could happen if there is no open activity task with the specified activityId.
  • StartTimerFailed: a StartTimer decision failed. This could happen if there is another open timer with the same timerId.
  • CancelTimerFailed: a CancelTimer decision failed. This could happen if there is no open timer with the specified timerId.
  • StartChildWorkflowExecutionFailed: a StartChildWorkflowExecution decision failed. This could happen if the workflow type specified is not registered, is deprecated, or the decision is not properly configured.
  • SignalExternalWorkflowExecutionFailed: a SignalExternalWorkflowExecution decision failed. This could happen if the workflowID specified in the decision was incorrect.
  • RequestCancelExternalWorkflowExecutionFailed: a RequestCancelExternalWorkflowExecution decision failed. This could happen if the workflowID specified in the decision was incorrect.
  • CancelWorkflowExecutionFailed: a CancelWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution.
  • CompleteWorkflowExecutionFailed: a CompleteWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution.
  • ContinueAsNewWorkflowExecutionFailed: a ContinueAsNewWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution or the ContinueAsNewWorkflowExecution decision was not configured correctly.
  • FailWorkflowExecutionFailed: a FailWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution.

The preceding error events might occur due to an error in the decider logic, which might put the workflow execution in an unstable state The cause field in the event structure for the error event indicates the cause of the error.

A workflow execution may be closed by the decider by returning one of the following decisions when completing a decision task: CompleteWorkflowExecution, FailWorkflowExecution, CancelWorkflowExecution and ContinueAsNewWorkflowExecution. An UnhandledDecision fault will be returned if a workflow closing decision is specified and a signal or activity event had been added to the history while the decision task was being performed by the decider. Unlike the above situations which are logic issues, this fault is always possible because of race conditions in a distributed system. The right action here is to call RespondDecisionTaskCompleted without any decisions. This would result in another decision task with these new events included in the history. The decider should handle the new events and may decide to close the workflow execution.

How to code a decision

You code a decision by first setting the decision type field to one of the above decision values, and then set the corresponding attributes field shown below:

", + "base": "

Specifies a decision made by the decider. A decision can be one of these types:

  • CancelTimer – Cancels a previously started timer and records a TimerCanceled event in the history.

  • CancelWorkflowExecution – Closes the workflow execution and records a WorkflowExecutionCanceled event in the history.

  • CompleteWorkflowExecution – Closes the workflow execution and records a WorkflowExecutionCompleted event in the history .

  • ContinueAsNewWorkflowExecution – Closes the workflow execution and starts a new workflow execution of the same type using the same workflow ID and a unique run Id. A WorkflowExecutionContinuedAsNew event is recorded in the history.

  • FailWorkflowExecution – Closes the workflow execution and records a WorkflowExecutionFailed event in the history.

  • RecordMarker – Records a MarkerRecorded event in the history. Markers can be used for adding custom information in the history for instance to let deciders know that they don't need to look at the history beyond the marker event.

  • RequestCancelActivityTask – Attempts to cancel a previously scheduled activity task. If the activity task was scheduled but has not been assigned to a worker, then it is canceled. If the activity task was already assigned to a worker, then the worker is informed that cancellation has been requested in the response to RecordActivityTaskHeartbeat.

  • RequestCancelExternalWorkflowExecution – Requests that a request be made to cancel the specified external workflow execution and records a RequestCancelExternalWorkflowExecutionInitiated event in the history.

  • ScheduleActivityTask – Schedules an activity task.

  • SignalExternalWorkflowExecution – Requests a signal to be delivered to the specified external workflow execution and records a SignalExternalWorkflowExecutionInitiated event in the history.

  • StartChildWorkflowExecution – Requests that a child workflow execution be started and records a StartChildWorkflowExecutionInitiated event in the history. The child workflow execution is a separate workflow execution with its own history.

  • StartTimer – Starts a timer for this workflow execution and records a TimerStarted event in the history. This timer fires after the specified delay and record a TimerFired event.

Access Control

If you grant permission to use RespondDecisionTaskCompleted, you can use IAM policies to express permissions for the list of decisions returned by this action as if they were members of the API. Treating decisions as a pseudo API maintains a uniform conceptual model and helps keep policies readable. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

Decision Failure

Decisions can fail for several reasons

  • The ordering of decisions should follow a logical flow. Some decisions might not make sense in the current context of the workflow execution and therefore fails.

  • A limit on your account was reached.

  • The decision lacks sufficient permissions.

One of the following events might be added to the history to indicate an error. The event attribute's cause parameter indicates the cause. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

  • ScheduleActivityTaskFailed – A ScheduleActivityTask decision failed. This could happen if the activity type specified in the decision isn't registered, is in a deprecated state, or the decision isn't properly configured.

  • RequestCancelActivityTaskFailed – A RequestCancelActivityTask decision failed. This could happen if there is no open activity task with the specified activityId.

  • StartTimerFailed – A StartTimer decision failed. This could happen if there is another open timer with the same timerId.

  • CancelTimerFailed – A CancelTimer decision failed. This could happen if there is no open timer with the specified timerId.

  • StartChildWorkflowExecutionFailed – A StartChildWorkflowExecution decision failed. This could happen if the workflow type specified isn't registered, is deprecated, or the decision isn't properly configured.

  • SignalExternalWorkflowExecutionFailed – A SignalExternalWorkflowExecution decision failed. This could happen if the workflowID specified in the decision was incorrect.

  • RequestCancelExternalWorkflowExecutionFailed – A RequestCancelExternalWorkflowExecution decision failed. This could happen if the workflowID specified in the decision was incorrect.

  • CancelWorkflowExecutionFailed – A CancelWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution.

  • CompleteWorkflowExecutionFailed – A CompleteWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution.

  • ContinueAsNewWorkflowExecutionFailed – A ContinueAsNewWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution or the ContinueAsNewWorkflowExecution decision was not configured correctly.

  • FailWorkflowExecutionFailed – A FailWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution.

The preceding error events might occur due to an error in the decider logic, which might put the workflow execution in an unstable state The cause field in the event structure for the error event indicates the cause of the error.

A workflow execution may be closed by the decider by returning one of the following decisions when completing a decision task: CompleteWorkflowExecution, FailWorkflowExecution, CancelWorkflowExecution and ContinueAsNewWorkflowExecution. An UnhandledDecision fault is returned if a workflow closing decision is specified and a signal or activity event had been added to the history while the decision task was being performed by the decider. Unlike the above situations which are logic issues, this fault is always possible because of race conditions in a distributed system. The right action here is to call RespondDecisionTaskCompleted without any decisions. This would result in another decision task with these new events included in the history. The decider should handle the new events and may decide to close the workflow execution.

How to Code a Decision

You code a decision by first setting the decision type field to one of the above decision values, and then set the corresponding attributes field shown below:

", "refs": { "DecisionList$member": null } @@ -407,7 +409,7 @@ "DecisionList": { "base": null, "refs": { - "RespondDecisionTaskCompletedInput$decisions": "

The list of decisions (possibly empty) made by the decider while processing this decision task. See the docs for the decision structure for details.

" + "RespondDecisionTaskCompletedInput$decisions": "

The list of decisions (possibly empty) made by the decider while processing this decision task. See the docs for the Decision structure for details.

" } }, "DecisionTask": { @@ -416,27 +418,27 @@ } }, "DecisionTaskCompletedEventAttributes": { - "base": "

Provides details of the DecisionTaskCompleted event.

", + "base": "

Provides the details of the DecisionTaskCompleted event.

", "refs": { - "HistoryEvent$decisionTaskCompletedEventAttributes": "

If the event is of type DecisionTaskCompleted then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$decisionTaskCompletedEventAttributes": "

If the event is of type DecisionTaskCompleted then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "DecisionTaskScheduledEventAttributes": { "base": "

Provides details about the DecisionTaskScheduled event.

", "refs": { - "HistoryEvent$decisionTaskScheduledEventAttributes": "

If the event is of type DecisionTaskScheduled then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$decisionTaskScheduledEventAttributes": "

If the event is of type DecisionTaskScheduled then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "DecisionTaskStartedEventAttributes": { - "base": "

Provides details of the DecisionTaskStarted event.

", + "base": "

Provides the details of the DecisionTaskStarted event.

", "refs": { - "HistoryEvent$decisionTaskStartedEventAttributes": "

If the event is of type DecisionTaskStarted then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$decisionTaskStartedEventAttributes": "

If the event is of type DecisionTaskStarted then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "DecisionTaskTimedOutEventAttributes": { - "base": "

Provides details of the DecisionTaskTimedOut event.

", + "base": "

Provides the details of the DecisionTaskTimedOut event.

", "refs": { - "HistoryEvent$decisionTaskTimedOutEventAttributes": "

If the event is of type DecisionTaskTimedOut then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$decisionTaskTimedOutEventAttributes": "

If the event is of type DecisionTaskTimedOut then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "DecisionTaskTimeoutType": { @@ -452,7 +454,7 @@ } }, "DefaultUndefinedFault": { - "base": null, + "base": "

The StartWorkflowExecution API action was called without the required parameters set.

Some workflow execution parameters, such as the decision taskList, must be set to start the execution. However, these parameters might have been set as defaults when the workflow type was registered. In this case, you can omit these parameters from the StartWorkflowExecution call and Amazon SWF uses the values defined in the workflow type.

If these parameters aren't set and no default parameters were defined in the workflow type, this error is displayed.

", "refs": { } }, @@ -503,14 +505,14 @@ } }, "DomainAlreadyExistsFault": { - "base": "

Returned if the specified domain already exists. You will get this fault even if the existing domain is in deprecated status.

", + "base": "

Returned if the specified domain already exists. You get this fault even if the existing domain is in deprecated status.

", "refs": { } }, "DomainConfiguration": { "base": "

Contains the configuration settings of a domain.

", "refs": { - "DomainDetail$configuration": null + "DomainDetail$configuration": "

The domain configuration. Currently, this includes only the domain's retention period.

" } }, "DomainDeprecatedFault": { @@ -526,7 +528,7 @@ "DomainInfo": { "base": "

Contains general information about a domain.

", "refs": { - "DomainDetail$domainInfo": null, + "DomainDetail$domainInfo": "

The basic information about a domain, such as its name, status, and description.

", "DomainInfoList$member": null } }, @@ -564,7 +566,7 @@ "PollForActivityTaskInput$domain": "

The name of the domain that contains the task lists being polled.

", "PollForDecisionTaskInput$domain": "

The name of the domain containing the task lists to poll.

", "RegisterActivityTypeInput$domain": "

The name of the domain in which this activity is to be registered.

", - "RegisterDomainInput$name": "

Name of the domain to register. The name must be unique in the region that the domain is registered in.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "RegisterDomainInput$name": "

Name of the domain to register. The name must be unique in the region that the domain is registered in.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", "RegisterWorkflowTypeInput$domain": "

The name of the domain in which to register the workflow type.

", "RequestCancelWorkflowExecutionInput$domain": "

The name of the domain containing the workflow execution to cancel.

", "SignalWorkflowExecutionInput$domain": "

The name of the domain containing the workflow execution to signal.

", @@ -576,16 +578,16 @@ "base": null, "refs": { "DomainConfiguration$workflowExecutionRetentionPeriodInDays": "

The retention period for workflow executions in this domain.

", - "RegisterDomainInput$workflowExecutionRetentionPeriodInDays": "

The duration (in days) that records and histories of workflow executions on the domain should be kept by the service. After the retention period, the workflow execution is not available in the results of visibility calls.

If you pass the value NONE or 0 (zero), then the workflow execution history will not be retained. As soon as the workflow execution completes, the execution record and its history are deleted.

The maximum workflow execution retention period is 90 days. For more information about Amazon SWF service limits, see: Amazon SWF Service Limits in the Amazon SWF Developer Guide.

" + "RegisterDomainInput$workflowExecutionRetentionPeriodInDays": "

The duration (in days) that records and histories of workflow executions on the domain should be kept by the service. After the retention period, the workflow execution isn't available in the results of visibility calls.

If you pass the value NONE or 0 (zero), then the workflow execution history isn't retained. As soon as the workflow execution completes, the execution record and its history are deleted.

The maximum workflow execution retention period is 90 days. For more information about Amazon SWF service limits, see: Amazon SWF Service Limits in the Amazon SWF Developer Guide.

" } }, "DurationInSeconds": { "base": null, "refs": { - "StartTimerDecisionAttributes$startToFireTimeout": "

Required. The duration to wait before firing the timer.

The duration is specified in seconds; an integer greater than or equal to 0.

", - "TimerStartedEventAttributes$startToFireTimeout": "

The duration of time after which the timer will fire.

The duration is specified in seconds; an integer greater than or equal to 0.

", - "WorkflowExecutionConfiguration$taskStartToCloseTimeout": "

The maximum duration allowed for decision tasks for this workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "WorkflowExecutionConfiguration$executionStartToCloseTimeout": "

The total duration for this workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

" + "StartTimerDecisionAttributes$startToFireTimeout": "

The duration to wait before firing the timer.

The duration is specified in seconds, an integer greater than or equal to 0.

", + "TimerStartedEventAttributes$startToFireTimeout": "

The duration of time after which the timer fires.

The duration is specified in seconds, an integer greater than or equal to 0.

", + "WorkflowExecutionConfiguration$taskStartToCloseTimeout": "

The maximum duration allowed for decision tasks for this workflow execution.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "WorkflowExecutionConfiguration$executionStartToCloseTimeout": "

The total duration for this workflow execution.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

" } }, "DurationInSecondsOptional": { @@ -594,38 +596,38 @@ "ActivityTaskScheduledEventAttributes$scheduleToStartTimeout": "

The maximum amount of time the activity task can wait to be assigned to a worker.

", "ActivityTaskScheduledEventAttributes$scheduleToCloseTimeout": "

The maximum amount of time for this activity task.

", "ActivityTaskScheduledEventAttributes$startToCloseTimeout": "

The maximum amount of time a worker may take to process the activity task.

", - "ActivityTaskScheduledEventAttributes$heartbeatTimeout": "

The maximum time before which the worker processing this task must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or return a result, it will be ignored.

", - "ActivityTypeConfiguration$defaultTaskStartToCloseTimeout": "

Optional. The default maximum duration for tasks of an activity type specified when registering the activity type. You can override this default when scheduling a task through the ScheduleActivityTask decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "ActivityTypeConfiguration$defaultTaskHeartbeatTimeout": "

Optional. The default maximum time, in seconds, before which a worker processing a task must report progress by calling RecordActivityTaskHeartbeat.

You can specify this value only when registering an activity type. The registered default value can be overridden when you schedule a task through the ScheduleActivityTask decision. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an UnknownResource fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "ActivityTypeConfiguration$defaultTaskScheduleToStartTimeout": "

Optional. The default maximum duration, specified when registering the activity type, that a task of an activity type can wait before being assigned to a worker. You can override this default when scheduling a task through the ScheduleActivityTask decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "ActivityTypeConfiguration$defaultTaskScheduleToCloseTimeout": "

Optional. The default maximum duration, specified when registering the activity type, for tasks of this activity type. You can override this default when scheduling a task through the ScheduleActivityTask decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "ContinueAsNewWorkflowExecutionDecisionAttributes$executionStartToCloseTimeout": "

If set, specifies the total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this field. If neither this field is set nor a default execution start-to-close timeout was specified at registration time then a fault will be returned.", - "ContinueAsNewWorkflowExecutionDecisionAttributes$taskStartToCloseTimeout": "

Specifies the maximum duration of decision tasks for the new workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A task start-to-close timeout for the new workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned.", - "DecisionTaskScheduledEventAttributes$startToCloseTimeout": "

The maximum duration for this decision task. The task is considered timed out if it does not completed within this duration.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "LambdaFunctionScheduledEventAttributes$startToCloseTimeout": "

The maximum time, in seconds, that the AWS Lambda function can take to execute from start to close before it is marked as failed.

", - "RegisterActivityTypeInput$defaultTaskStartToCloseTimeout": "

If set, specifies the default maximum duration that a worker can take to process tasks of this activity type. This default can be overridden when scheduling an activity task using the ScheduleActivityTask decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "RegisterActivityTypeInput$defaultTaskHeartbeatTimeout": "

If set, specifies the default maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. This default can be overridden when scheduling an activity task using the ScheduleActivityTask decision. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an UnknownResource fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "RegisterActivityTypeInput$defaultTaskScheduleToStartTimeout": "

If set, specifies the default maximum duration that a task of this activity type can wait before being assigned to a worker. This default can be overridden when scheduling an activity task using the ScheduleActivityTask decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "RegisterActivityTypeInput$defaultTaskScheduleToCloseTimeout": "

If set, specifies the default maximum duration for a task of this activity type. This default can be overridden when scheduling an activity task using the ScheduleActivityTask decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "RegisterWorkflowTypeInput$defaultTaskStartToCloseTimeout": "

If set, specifies the default maximum duration of decision tasks for this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "RegisterWorkflowTypeInput$defaultExecutionStartToCloseTimeout": "

If set, specifies the default maximum duration for executions of this workflow type. You can override this default when starting an execution through the StartWorkflowExecution action or StartChildWorkflowExecution decision.

The duration is specified in seconds; an integer greater than or equal to 0. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of \"NONE\" for defaultExecutionStartToCloseTimeout; there is a one-year max limit on the time that a workflow execution can run. Exceeding this limit will always cause the workflow execution to time out.

", - "ScheduleActivityTaskDecisionAttributes$scheduleToCloseTimeout": "

The maximum duration for this activity task.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A schedule-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-close timeout was specified at registration time then a fault will be returned.", - "ScheduleActivityTaskDecisionAttributes$scheduleToStartTimeout": "

Optional. If set, specifies the maximum duration the activity task can wait to be assigned to a worker. This overrides the default schedule-to-start timeout specified when registering the activity type using RegisterActivityType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A schedule-to-start timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-start timeout was specified at registration time then a fault will be returned.", - "ScheduleActivityTaskDecisionAttributes$startToCloseTimeout": "

If set, specifies the maximum duration a worker may take to process this activity task. This overrides the default start-to-close timeout specified when registering the activity type using RegisterActivityType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A start-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default start-to-close timeout was specified at registration time then a fault will be returned.", - "ScheduleActivityTaskDecisionAttributes$heartbeatTimeout": "

If set, specifies the maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or returns a result, it will be ignored. This overrides the default heartbeat timeout specified when registering the activity type using RegisterActivityType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "ScheduleLambdaFunctionDecisionAttributes$startToCloseTimeout": "

If set, specifies the maximum duration the function may take to execute.

", - "StartChildWorkflowExecutionDecisionAttributes$executionStartToCloseTimeout": "

The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default execution start-to-close timeout was specified at registration time then a fault will be returned.", - "StartChildWorkflowExecutionDecisionAttributes$taskStartToCloseTimeout": "

Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned.", - "StartChildWorkflowExecutionInitiatedEventAttributes$executionStartToCloseTimeout": "

The maximum duration for the child workflow execution. If the workflow execution is not closed within this duration, it will be timed out and force terminated.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "StartChildWorkflowExecutionInitiatedEventAttributes$taskStartToCloseTimeout": "

The maximum duration allowed for the decision tasks for this workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "StartWorkflowExecutionInput$executionStartToCloseTimeout": "

The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type.

The duration is specified in seconds; an integer greater than or equal to 0. Exceeding this limit will cause the workflow execution to time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of \"NONE\" for this timeout; there is a one-year max limit on the time that a workflow execution can run.

An execution start-to-close timeout must be specified either through this parameter or as a default when the workflow type is registered. If neither this parameter nor a default execution start-to-close timeout is specified, a fault is returned.", - "StartWorkflowExecutionInput$taskStartToCloseTimeout": "

Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned.", - "WorkflowExecutionContinuedAsNewEventAttributes$executionStartToCloseTimeout": "

The total duration allowed for the new workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "WorkflowExecutionContinuedAsNewEventAttributes$taskStartToCloseTimeout": "

The maximum duration of decision tasks for the new workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "WorkflowExecutionStartedEventAttributes$executionStartToCloseTimeout": "

The maximum duration for this workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "WorkflowExecutionStartedEventAttributes$taskStartToCloseTimeout": "

The maximum duration of decision tasks for this workflow type.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "WorkflowTypeConfiguration$defaultTaskStartToCloseTimeout": "

Optional. The default maximum duration, specified when registering the workflow type, that a decision task for executions of this workflow type might take before returning completion or failure. If the task does not close in the specified time then the task is automatically timed out and rescheduled. If the decider eventually reports a completion or failure, it is ignored. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", - "WorkflowTypeConfiguration$defaultExecutionStartToCloseTimeout": "

Optional. The default maximum duration, specified when registering the workflow type, for executions of this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

" + "ActivityTaskScheduledEventAttributes$heartbeatTimeout": "

The maximum time before which the worker processing this task must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or return a result, it is ignored.

", + "ActivityTypeConfiguration$defaultTaskStartToCloseTimeout": "

The default maximum duration for tasks of an activity type specified when registering the activity type. You can override this default when scheduling a task through the ScheduleActivityTask Decision.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "ActivityTypeConfiguration$defaultTaskHeartbeatTimeout": "

The default maximum time, in seconds, before which a worker processing a task must report progress by calling RecordActivityTaskHeartbeat.

You can specify this value only when registering an activity type. The registered default value can be overridden when you schedule a task through the ScheduleActivityTask Decision. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an UnknownResource fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "ActivityTypeConfiguration$defaultTaskScheduleToStartTimeout": "

The default maximum duration, specified when registering the activity type, that a task of an activity type can wait before being assigned to a worker. You can override this default when scheduling a task through the ScheduleActivityTask Decision.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "ActivityTypeConfiguration$defaultTaskScheduleToCloseTimeout": "

The default maximum duration, specified when registering the activity type, for tasks of this activity type. You can override this default when scheduling a task through the ScheduleActivityTask Decision.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "ContinueAsNewWorkflowExecutionDecisionAttributes$executionStartToCloseTimeout": "

If set, specifies the total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this field. If neither this field is set nor a default execution start-to-close timeout was specified at registration time then a fault is returned.

", + "ContinueAsNewWorkflowExecutionDecisionAttributes$taskStartToCloseTimeout": "

Specifies the maximum duration of decision tasks for the new workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

A task start-to-close timeout for the new workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault is returned.

", + "DecisionTaskScheduledEventAttributes$startToCloseTimeout": "

The maximum duration for this decision task. The task is considered timed out if it doesn't completed within this duration.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "LambdaFunctionScheduledEventAttributes$startToCloseTimeout": "

The maximum amount of time a worker can take to process the Lambda task.

", + "RegisterActivityTypeInput$defaultTaskStartToCloseTimeout": "

If set, specifies the default maximum duration that a worker can take to process tasks of this activity type. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "RegisterActivityTypeInput$defaultTaskHeartbeatTimeout": "

If set, specifies the default maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an UnknownResource fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "RegisterActivityTypeInput$defaultTaskScheduleToStartTimeout": "

If set, specifies the default maximum duration that a task of this activity type can wait before being assigned to a worker. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "RegisterActivityTypeInput$defaultTaskScheduleToCloseTimeout": "

If set, specifies the default maximum duration for a task of this activity type. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "RegisterWorkflowTypeInput$defaultTaskStartToCloseTimeout": "

If set, specifies the default maximum duration of decision tasks for this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "RegisterWorkflowTypeInput$defaultExecutionStartToCloseTimeout": "

If set, specifies the default maximum duration for executions of this workflow type. You can override this default when starting an execution through the StartWorkflowExecution Action or StartChildWorkflowExecution Decision.

The duration is specified in seconds; an integer greater than or equal to 0. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of \"NONE\" for defaultExecutionStartToCloseTimeout; there is a one-year max limit on the time that a workflow execution can run. Exceeding this limit always causes the workflow execution to time out.

", + "ScheduleActivityTaskDecisionAttributes$scheduleToCloseTimeout": "

The maximum duration for this activity task.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

A schedule-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-close timeout was specified at registration time then a fault is returned.

", + "ScheduleActivityTaskDecisionAttributes$scheduleToStartTimeout": "

If set, specifies the maximum duration the activity task can wait to be assigned to a worker. This overrides the default schedule-to-start timeout specified when registering the activity type using RegisterActivityType.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

A schedule-to-start timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-start timeout was specified at registration time then a fault is returned.

", + "ScheduleActivityTaskDecisionAttributes$startToCloseTimeout": "

If set, specifies the maximum duration a worker may take to process this activity task. This overrides the default start-to-close timeout specified when registering the activity type using RegisterActivityType.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

A start-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default start-to-close timeout was specified at registration time then a fault is returned.

", + "ScheduleActivityTaskDecisionAttributes$heartbeatTimeout": "

If set, specifies the maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or returns a result, it is ignored. This overrides the default heartbeat timeout specified when registering the activity type using RegisterActivityType.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "ScheduleLambdaFunctionDecisionAttributes$startToCloseTimeout": "

The timeout value, in seconds, after which the Lambda function is considered to be failed once it has started. This can be any integer from 1-300 (1s-5m). If no value is supplied, than a default value of 300s is assumed.

", + "StartChildWorkflowExecutionDecisionAttributes$executionStartToCloseTimeout": "

The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default execution start-to-close timeout was specified at registration time then a fault is returned.

", + "StartChildWorkflowExecutionDecisionAttributes$taskStartToCloseTimeout": "

Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault is returned.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$executionStartToCloseTimeout": "

The maximum duration for the child workflow execution. If the workflow execution isn't closed within this duration, it is timed out and force-terminated.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$taskStartToCloseTimeout": "

The maximum duration allowed for the decision tasks for this workflow execution.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "StartWorkflowExecutionInput$executionStartToCloseTimeout": "

The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type.

The duration is specified in seconds; an integer greater than or equal to 0. Exceeding this limit causes the workflow execution to time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of \"NONE\" for this timeout; there is a one-year max limit on the time that a workflow execution can run.

An execution start-to-close timeout must be specified either through this parameter or as a default when the workflow type is registered. If neither this parameter nor a default execution start-to-close timeout is specified, a fault is returned.

", + "StartWorkflowExecutionInput$taskStartToCloseTimeout": "

Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault is returned.

", + "WorkflowExecutionContinuedAsNewEventAttributes$executionStartToCloseTimeout": "

The total duration allowed for the new workflow execution.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "WorkflowExecutionContinuedAsNewEventAttributes$taskStartToCloseTimeout": "

The maximum duration of decision tasks for the new workflow execution.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "WorkflowExecutionStartedEventAttributes$executionStartToCloseTimeout": "

The maximum duration for this workflow execution.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "WorkflowExecutionStartedEventAttributes$taskStartToCloseTimeout": "

The maximum duration of decision tasks for this workflow type.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "WorkflowTypeConfiguration$defaultTaskStartToCloseTimeout": "

The default maximum duration, specified when registering the workflow type, that a decision task for executions of this workflow type might take before returning completion or failure. If the task doesn'tdo close in the specified time then the task is automatically timed out and rescheduled. If the decider eventually reports a completion or failure, it is ignored. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

", + "WorkflowTypeConfiguration$defaultExecutionStartToCloseTimeout": "

The default maximum duration, specified when registering the workflow type, for executions of this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

The duration is specified in seconds, an integer greater than or equal to 0. You can use NONE to specify unlimited duration.

" } }, "ErrorMessage": { @@ -660,16 +662,16 @@ "ActivityTaskTimedOutEventAttributes$startedEventId": "

The ID of the ActivityTaskStarted event recorded when this activity task was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "CancelTimerFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelTimer decision to cancel this timer. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "CancelWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelWorkflowExecution decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "ChildWorkflowExecutionCanceledEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionCanceledEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "ChildWorkflowExecutionCanceledEventAttributes$startedEventId": "

The ID of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "ChildWorkflowExecutionCompletedEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionCompletedEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "ChildWorkflowExecutionCompletedEventAttributes$startedEventId": "

The ID of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "ChildWorkflowExecutionFailedEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionFailedEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "ChildWorkflowExecutionFailedEventAttributes$startedEventId": "

The ID of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "ChildWorkflowExecutionStartedEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "ChildWorkflowExecutionTerminatedEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionStartedEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionTerminatedEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "ChildWorkflowExecutionTerminatedEventAttributes$startedEventId": "

The ID of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "ChildWorkflowExecutionTimedOutEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionTimedOutEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "ChildWorkflowExecutionTimedOutEventAttributes$startedEventId": "

The ID of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "CompleteWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CompleteWorkflowExecution decision to complete this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "ContinueAsNewWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the ContinueAsNewWorkflowExecution decision that started this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", @@ -684,14 +686,14 @@ "ExternalWorkflowExecutionSignaledEventAttributes$initiatedEventId": "

The ID of the SignalExternalWorkflowExecutionInitiated event corresponding to the SignalExternalWorkflowExecution decision to request this signal. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "FailWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the FailWorkflowExecution decision to fail this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "HistoryEvent$eventId": "

The system generated ID of the event. This ID uniquely identifies the event with in the workflow execution history.

", - "LambdaFunctionCompletedEventAttributes$scheduledEventId": "

The ID of the LambdaFunctionScheduled event that was recorded when this AWS Lambda function was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "LambdaFunctionCompletedEventAttributes$startedEventId": "

The ID of the LambdaFunctionStarted event recorded in the history.

", - "LambdaFunctionFailedEventAttributes$scheduledEventId": "

The ID of the LambdaFunctionScheduled event that was recorded when this AWS Lambda function was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "LambdaFunctionFailedEventAttributes$startedEventId": "

The ID of the LambdaFunctionStarted event recorded in the history.

", - "LambdaFunctionScheduledEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event for the decision that resulted in the scheduling of this AWS Lambda function. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "LambdaFunctionStartedEventAttributes$scheduledEventId": "

The ID of the LambdaFunctionScheduled event that was recorded when this AWS Lambda function was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "LambdaFunctionTimedOutEventAttributes$scheduledEventId": "

The ID of the LambdaFunctionScheduled event that was recorded when this AWS Lambda function was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "LambdaFunctionTimedOutEventAttributes$startedEventId": "

The ID of the LambdaFunctionStarted event recorded in the history.

", + "LambdaFunctionCompletedEventAttributes$scheduledEventId": "

The ID of the LambdaFunctionScheduled event that was recorded when this Lambda task was scheduled. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

", + "LambdaFunctionCompletedEventAttributes$startedEventId": "

The ID of the LambdaFunctionStarted event recorded when this activity task started. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

", + "LambdaFunctionFailedEventAttributes$scheduledEventId": "

The ID of the LambdaFunctionScheduled event that was recorded when this activity task was scheduled. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

", + "LambdaFunctionFailedEventAttributes$startedEventId": "

The ID of the LambdaFunctionStarted event recorded when this activity task started. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

", + "LambdaFunctionScheduledEventAttributes$decisionTaskCompletedEventId": "

The ID of the LambdaFunctionCompleted event corresponding to the decision that resulted in scheduling this activity task. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

", + "LambdaFunctionStartedEventAttributes$scheduledEventId": "

The ID of the LambdaFunctionScheduled event that was recorded when this activity task was scheduled. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

", + "LambdaFunctionTimedOutEventAttributes$scheduledEventId": "

The ID of the LambdaFunctionScheduled event that was recorded when this activity task was scheduled. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

", + "LambdaFunctionTimedOutEventAttributes$startedEventId": "

The ID of the ActivityTaskStarted event that was recorded when this activity task started. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

", "MarkerRecordedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RecordMarker decision that requested this marker. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "RecordMarkerFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RecordMarkerFailed decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "RequestCancelActivityTaskFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RequestCancelActivityTask decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", @@ -699,14 +701,14 @@ "RequestCancelExternalWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RequestCancelExternalWorkflowExecution decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RequestCancelExternalWorkflowExecution decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "ScheduleActivityTaskFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision that resulted in the scheduling of this activity task. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "ScheduleLambdaFunctionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision that resulted in the scheduling of this AWS Lambda function. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ScheduleLambdaFunctionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the LambdaFunctionCompleted event corresponding to the decision that resulted in scheduling this Lambda task. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

", "SignalExternalWorkflowExecutionFailedEventAttributes$initiatedEventId": "

The ID of the SignalExternalWorkflowExecutionInitiated event corresponding to the SignalExternalWorkflowExecution decision to request this signal. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "SignalExternalWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the SignalExternalWorkflowExecution decision for this signal. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "SignalExternalWorkflowExecutionInitiatedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the SignalExternalWorkflowExecution decision for this signal. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "StartChildWorkflowExecutionFailedEventAttributes$initiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", - "StartChildWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartChildWorkflowExecution decision to request this child workflow execution. This information can be useful for diagnosing problems by tracing back the cause of events.

", - "StartChildWorkflowExecutionInitiatedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartChildWorkflowExecution decision to request this child workflow execution. This information can be useful for diagnosing problems by tracing back the cause of events.

", - "StartLambdaFunctionFailedEventAttributes$scheduledEventId": "

The ID of the LambdaFunctionScheduled event that was recorded when this AWS Lambda function was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "StartChildWorkflowExecutionFailedEventAttributes$initiatedEventId": "

When the cause is WORKFLOW_ALREADY_RUNNING, initiatedEventId is the ID of the StartChildWorkflowExecutionInitiated event that corresponds to the StartChildWorkflowExecution Decision to start the workflow execution. You can use this information to diagnose problems by tracing back the chain of events leading up to this event.

When the cause isn't WORKFLOW_ALREADY_RUNNING, initiatedEventId is set to 0 because the StartChildWorkflowExecutionInitiated event doesn't exist.

", + "StartChildWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartChildWorkflowExecution Decision to request this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartChildWorkflowExecution Decision to request this child workflow execution. This information can be useful for diagnosing problems by tracing back the cause of events.

", + "StartLambdaFunctionFailedEventAttributes$scheduledEventId": "

The ID of the ActivityTaskScheduled event that was recorded when this activity task was scheduled. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

", "StartTimerFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartTimer decision for this activity task. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "TimerCanceledEventAttributes$startedEventId": "

The ID of the TimerStarted event that was recorded when this timer was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "TimerCanceledEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelTimer decision to cancel this timer. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", @@ -718,7 +720,7 @@ "WorkflowExecutionContinuedAsNewEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the ContinueAsNewWorkflowExecution decision that started this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "WorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The ID of the DecisionTaskCompleted event corresponding to the decision task that resulted in the FailWorkflowExecution decision to fail this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", "WorkflowExecutionSignaledEventAttributes$externalInitiatedEventId": "

The ID of the SignalExternalWorkflowExecutionInitiated event corresponding to the SignalExternalWorkflow decision to signal this workflow execution.The source event with this ID can be found in the history of the source workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. This field is set only if the signal was initiated by another workflow execution.

", - "WorkflowExecutionStartedEventAttributes$parentInitiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution decision to start this workflow execution. The source event with this ID can be found in the history of the source workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

" + "WorkflowExecutionStartedEventAttributes$parentInitiatedEventId": "

The ID of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this workflow execution. The source event with this ID can be found in the history of the source workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

" } }, "EventType": { @@ -734,78 +736,78 @@ } }, "ExecutionTimeFilter": { - "base": "

Used to filter the workflow executions in visibility APIs by various time-based rules. Each parameter, if specified, defines a rule that must be satisfied by each returned query result. The parameter values are in the Unix Time format. For example: \"oldestDate\": 1325376070.

", + "base": "

Used to filter the workflow executions in visibility APIs by various time-based rules. Each parameter, if specified, defines a rule that must be satisfied by each returned query result. The parameter values are in the Unix Time format. For example: \"oldestDate\": 1325376070.

", "refs": { - "CountClosedWorkflowExecutionsInput$startTimeFilter": "

If specified, only workflow executions that meet the start time criteria of the filter are counted.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.", - "CountClosedWorkflowExecutionsInput$closeTimeFilter": "

If specified, only workflow executions that meet the close time criteria of the filter are counted.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.", + "CountClosedWorkflowExecutionsInput$startTimeFilter": "

If specified, only workflow executions that meet the start time criteria of the filter are counted.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.

", + "CountClosedWorkflowExecutionsInput$closeTimeFilter": "

If specified, only workflow executions that meet the close time criteria of the filter are counted.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.

", "CountOpenWorkflowExecutionsInput$startTimeFilter": "

Specifies the start time criteria that workflow executions must meet in order to be counted.

", - "ListClosedWorkflowExecutionsInput$startTimeFilter": "

If specified, the workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their start times.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.", - "ListClosedWorkflowExecutionsInput$closeTimeFilter": "

If specified, the workflow executions are included in the returned results based on whether their close times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their close times.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.", + "ListClosedWorkflowExecutionsInput$startTimeFilter": "

If specified, the workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their start times.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.

", + "ListClosedWorkflowExecutionsInput$closeTimeFilter": "

If specified, the workflow executions are included in the returned results based on whether their close times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their close times.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.

", "ListOpenWorkflowExecutionsInput$startTimeFilter": "

Workflow executions are included in the returned results based on whether their start times are within the range specified by this filter.

" } }, "ExternalWorkflowExecutionCancelRequestedEventAttributes": { - "base": "

Provides details of the ExternalWorkflowExecutionCancelRequested event.

", + "base": "

Provides the details of the ExternalWorkflowExecutionCancelRequested event.

", "refs": { - "HistoryEvent$externalWorkflowExecutionCancelRequestedEventAttributes": "

If the event is of type ExternalWorkflowExecutionCancelRequested then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$externalWorkflowExecutionCancelRequestedEventAttributes": "

If the event is of type ExternalWorkflowExecutionCancelRequested then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ExternalWorkflowExecutionSignaledEventAttributes": { - "base": "

Provides details of the ExternalWorkflowExecutionSignaled event.

", + "base": "

Provides the details of the ExternalWorkflowExecutionSignaled event.

", "refs": { - "HistoryEvent$externalWorkflowExecutionSignaledEventAttributes": "

If the event is of type ExternalWorkflowExecutionSignaled then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$externalWorkflowExecutionSignaledEventAttributes": "

If the event is of type ExternalWorkflowExecutionSignaled then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "FailWorkflowExecutionDecisionAttributes": { - "base": "

Provides details of the FailWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the FailWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$failWorkflowExecutionDecisionAttributes": "

Provides details of the FailWorkflowExecution decision. It is not set for other decision types.

" + "Decision$failWorkflowExecutionDecisionAttributes": "

Provides the details of the FailWorkflowExecution decision. It isn't set for other decision types.

" } }, "FailWorkflowExecutionFailedCause": { "base": null, "refs": { - "FailWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "FailWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "FailWorkflowExecutionFailedEventAttributes": { - "base": "

Provides details of the FailWorkflowExecutionFailed event.

", + "base": "

Provides the details of the FailWorkflowExecutionFailed event.

", "refs": { - "HistoryEvent$failWorkflowExecutionFailedEventAttributes": "

If the event is of type FailWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$failWorkflowExecutionFailedEventAttributes": "

If the event is of type FailWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "FailureReason": { "base": null, "refs": { - "ActivityTaskFailedEventAttributes$reason": "

The reason provided for the failure (if any).

", + "ActivityTaskFailedEventAttributes$reason": "

The reason provided for the failure.

", "ChildWorkflowExecutionFailedEventAttributes$reason": "

The reason for the failure (if provided).

", "FailWorkflowExecutionDecisionAttributes$reason": "

A descriptive reason for the failure that may help in diagnostics.

", - "LambdaFunctionFailedEventAttributes$reason": "

The reason provided for the failure (if any).

", + "LambdaFunctionFailedEventAttributes$reason": "

The reason provided for the failure.

", "RespondActivityTaskFailedInput$reason": "

Description of the error that may assist in diagnostics.

", - "WorkflowExecutionFailedEventAttributes$reason": "

The descriptive reason provided for the failure (if any).

" + "WorkflowExecutionFailedEventAttributes$reason": "

The descriptive reason provided for the failure.

" } }, "FunctionId": { "base": null, "refs": { - "LambdaFunctionScheduledEventAttributes$id": "

The unique Amazon SWF ID for the AWS Lambda task.

", - "ScheduleLambdaFunctionDecisionAttributes$id": "

Required. The SWF id of the AWS Lambda task.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", - "ScheduleLambdaFunctionFailedEventAttributes$id": "

The unique Amazon SWF ID of the AWS Lambda task.

" + "LambdaFunctionScheduledEventAttributes$id": "

The unique ID of the Lambda task.

", + "ScheduleLambdaFunctionDecisionAttributes$id": "

A string that identifies the Lambda function execution in the event history.

", + "ScheduleLambdaFunctionFailedEventAttributes$id": "

The ID provided in the ScheduleLambdaFunction decision that failed.

" } }, "FunctionInput": { "base": null, "refs": { - "LambdaFunctionScheduledEventAttributes$input": "

Input provided to the AWS Lambda function.

", - "ScheduleLambdaFunctionDecisionAttributes$input": "

The input provided to the AWS Lambda function.

" + "LambdaFunctionScheduledEventAttributes$input": "

The input provided to the Lambda task.

", + "ScheduleLambdaFunctionDecisionAttributes$input": "

The optional input data to be supplied to the Lambda function.

" } }, "FunctionName": { "base": null, "refs": { - "LambdaFunctionScheduledEventAttributes$name": "

The name of the scheduled AWS Lambda function.

", - "ScheduleLambdaFunctionDecisionAttributes$name": "

Required. The name of the AWS Lambda function to invoke.

", - "ScheduleLambdaFunctionFailedEventAttributes$name": "

The name of the scheduled AWS Lambda function.

" + "LambdaFunctionScheduledEventAttributes$name": "

The name of the Lambda function.

", + "ScheduleLambdaFunctionDecisionAttributes$name": "

The name, or ARN, of the Lambda function to schedule.

", + "ScheduleLambdaFunctionFailedEventAttributes$name": "

The name of the Lambda function.

" } }, "GetWorkflowExecutionHistoryInput": { @@ -819,7 +821,7 @@ } }, "HistoryEvent": { - "base": "

Event within a workflow execution. A history event can be one of these types:

  • WorkflowExecutionStarted: The workflow execution was started.
  • WorkflowExecutionCompleted: The workflow execution was closed due to successful completion.
  • WorkflowExecutionFailed: The workflow execution closed due to a failure.
  • WorkflowExecutionTimedOut: The workflow execution was closed because a time out was exceeded.
  • WorkflowExecutionCanceled: The workflow execution was successfully canceled and closed.
  • WorkflowExecutionTerminated: The workflow execution was terminated.
  • WorkflowExecutionContinuedAsNew: The workflow execution was closed and a new execution of the same type was created with the same workflowId.
  • WorkflowExecutionCancelRequested: A request to cancel this workflow execution was made.
  • DecisionTaskScheduled: A decision task was scheduled for the workflow execution.
  • DecisionTaskStarted: The decision task was dispatched to a decider.
  • DecisionTaskCompleted: The decider successfully completed a decision task by calling RespondDecisionTaskCompleted.
  • DecisionTaskTimedOut: The decision task timed out.
  • ActivityTaskScheduled: An activity task was scheduled for execution.
  • ScheduleActivityTaskFailed: Failed to process ScheduleActivityTask decision. This happens when the decision is not configured properly, for example the activity type specified is not registered.
  • ActivityTaskStarted: The scheduled activity task was dispatched to a worker.
  • ActivityTaskCompleted: An activity worker successfully completed an activity task by calling RespondActivityTaskCompleted.
  • ActivityTaskFailed: An activity worker failed an activity task by calling RespondActivityTaskFailed.
  • ActivityTaskTimedOut: The activity task timed out.
  • ActivityTaskCanceled: The activity task was successfully canceled.
  • ActivityTaskCancelRequested: A RequestCancelActivityTask decision was received by the system.
  • RequestCancelActivityTaskFailed: Failed to process RequestCancelActivityTask decision. This happens when the decision is not configured properly.
  • WorkflowExecutionSignaled: An external signal was received for the workflow execution.
  • MarkerRecorded: A marker was recorded in the workflow history as the result of a RecordMarker decision.
  • TimerStarted: A timer was started for the workflow execution due to a StartTimer decision.
  • StartTimerFailed: Failed to process StartTimer decision. This happens when the decision is not configured properly, for example a timer already exists with the specified timer ID.
  • TimerFired: A timer, previously started for this workflow execution, fired.
  • TimerCanceled: A timer, previously started for this workflow execution, was successfully canceled.
  • CancelTimerFailed: Failed to process CancelTimer decision. This happens when the decision is not configured properly, for example no timer exists with the specified timer ID.
  • StartChildWorkflowExecutionInitiated: A request was made to start a child workflow execution.
  • StartChildWorkflowExecutionFailed: Failed to process StartChildWorkflowExecution decision. This happens when the decision is not configured properly, for example the workflow type specified is not registered.
  • ChildWorkflowExecutionStarted: A child workflow execution was successfully started.
  • ChildWorkflowExecutionCompleted: A child workflow execution, started by this workflow execution, completed successfully and was closed.
  • ChildWorkflowExecutionFailed: A child workflow execution, started by this workflow execution, failed to complete successfully and was closed.
  • ChildWorkflowExecutionTimedOut: A child workflow execution, started by this workflow execution, timed out and was closed.
  • ChildWorkflowExecutionCanceled: A child workflow execution, started by this workflow execution, was canceled and closed.
  • ChildWorkflowExecutionTerminated: A child workflow execution, started by this workflow execution, was terminated.
  • SignalExternalWorkflowExecutionInitiated: A request to signal an external workflow was made.
  • ExternalWorkflowExecutionSignaled: A signal, requested by this workflow execution, was successfully delivered to the target external workflow execution.
  • SignalExternalWorkflowExecutionFailed: The request to signal an external workflow execution failed.
  • RequestCancelExternalWorkflowExecutionInitiated: A request was made to request the cancellation of an external workflow execution.
  • ExternalWorkflowExecutionCancelRequested: Request to cancel an external workflow execution was successfully delivered to the target execution.
  • RequestCancelExternalWorkflowExecutionFailed: Request to cancel an external workflow execution failed.
  • LambdaFunctionScheduled: An AWS Lambda function was scheduled for execution.
  • LambdaFunctionStarted: The scheduled function was invoked in the AWS Lambda service.
  • LambdaFunctionCompleted: The AWS Lambda function successfully completed.
  • LambdaFunctionFailed: The AWS Lambda function execution failed.
  • LambdaFunctionTimedOut: The AWS Lambda function execution timed out.
  • ScheduleLambdaFunctionFailed: Failed to process ScheduleLambdaFunction decision. This happens when the workflow execution does not have the proper IAM role attached to invoke AWS Lambda functions.
  • StartLambdaFunctionFailed: Failed to invoke the scheduled function in the AWS Lambda service. This happens when the AWS Lambda service is not available in the current region, or received too many requests.
", + "base": "

Event within a workflow execution. A history event can be one of these types:

  • ActivityTaskCancelRequested – A RequestCancelActivityTask decision was received by the system.

  • ActivityTaskCanceled – The activity task was successfully canceled.

  • ActivityTaskCompleted – An activity worker successfully completed an activity task by calling RespondActivityTaskCompleted.

  • ActivityTaskFailed – An activity worker failed an activity task by calling RespondActivityTaskFailed.

  • ActivityTaskScheduled – An activity task was scheduled for execution.

  • ActivityTaskStarted – The scheduled activity task was dispatched to a worker.

  • ActivityTaskTimedOut – The activity task timed out.

  • CancelTimerFailed – Failed to process CancelTimer decision. This happens when the decision isn't configured properly, for example no timer exists with the specified timer Id.

  • CancelWorkflowExecutionFailed – A request to cancel a workflow execution failed.

  • ChildWorkflowExecutionCanceled – A child workflow execution, started by this workflow execution, was canceled and closed.

  • ChildWorkflowExecutionCompleted – A child workflow execution, started by this workflow execution, completed successfully and was closed.

  • ChildWorkflowExecutionFailed – A child workflow execution, started by this workflow execution, failed to complete successfully and was closed.

  • ChildWorkflowExecutionStarted – A child workflow execution was successfully started.

  • ChildWorkflowExecutionTerminated – A child workflow execution, started by this workflow execution, was terminated.

  • ChildWorkflowExecutionTimedOut – A child workflow execution, started by this workflow execution, timed out and was closed.

  • CompleteWorkflowExecutionFailed – The workflow execution failed to complete.

  • ContinueAsNewWorkflowExecutionFailed – The workflow execution failed to complete after being continued as a new workflow execution.

  • DecisionTaskCompleted – The decider successfully completed a decision task by calling RespondDecisionTaskCompleted.

  • DecisionTaskScheduled – A decision task was scheduled for the workflow execution.

  • DecisionTaskStarted – The decision task was dispatched to a decider.

  • DecisionTaskTimedOut – The decision task timed out.

  • ExternalWorkflowExecutionCancelRequested – Request to cancel an external workflow execution was successfully delivered to the target execution.

  • ExternalWorkflowExecutionSignaled – A signal, requested by this workflow execution, was successfully delivered to the target external workflow execution.

  • FailWorkflowExecutionFailed – A request to mark a workflow execution as failed, itself failed.

  • MarkerRecorded – A marker was recorded in the workflow history as the result of a RecordMarker decision.

  • RecordMarkerFailed – A RecordMarker decision was returned as failed.

  • RequestCancelActivityTaskFailed – Failed to process RequestCancelActivityTask decision. This happens when the decision isn't configured properly.

  • RequestCancelExternalWorkflowExecutionFailed – Request to cancel an external workflow execution failed.

  • RequestCancelExternalWorkflowExecutionInitiated – A request was made to request the cancellation of an external workflow execution.

  • ScheduleActivityTaskFailed – Failed to process ScheduleActivityTask decision. This happens when the decision isn't configured properly, for example the activity type specified isn't registered.

  • SignalExternalWorkflowExecutionFailed – The request to signal an external workflow execution failed.

  • SignalExternalWorkflowExecutionInitiated – A request to signal an external workflow was made.

  • StartActivityTaskFailed – A scheduled activity task failed to start.

  • StartChildWorkflowExecutionFailed – Failed to process StartChildWorkflowExecution decision. This happens when the decision isn't configured properly, for example the workflow type specified isn't registered.

  • StartChildWorkflowExecutionInitiated – A request was made to start a child workflow execution.

  • StartTimerFailed – Failed to process StartTimer decision. This happens when the decision isn't configured properly, for example a timer already exists with the specified timer Id.

  • TimerCanceled – A timer, previously started for this workflow execution, was successfully canceled.

  • TimerFired – A timer, previously started for this workflow execution, fired.

  • TimerStarted – A timer was started for the workflow execution due to a StartTimer decision.

  • WorkflowExecutionCancelRequested – A request to cancel this workflow execution was made.

  • WorkflowExecutionCanceled – The workflow execution was successfully canceled and closed.

  • WorkflowExecutionCompleted – The workflow execution was closed due to successful completion.

  • WorkflowExecutionContinuedAsNew – The workflow execution was closed and a new execution of the same type was created with the same workflowId.

  • WorkflowExecutionFailed – The workflow execution closed due to a failure.

  • WorkflowExecutionSignaled – An external signal was received for the workflow execution.

  • WorkflowExecutionStarted – The workflow execution was started.

  • WorkflowExecutionTerminated – The workflow execution was terminated.

  • WorkflowExecutionTimedOut – The workflow execution was closed because a time out was exceeded.

", "refs": { "HistoryEventList$member": null } @@ -841,33 +843,33 @@ } }, "LambdaFunctionCompletedEventAttributes": { - "base": "

Provides details for the LambdaFunctionCompleted event.

", + "base": "

Provides the details of the LambdaFunctionCompleted event. It isn't set for other event types.

", "refs": { - "HistoryEvent$lambdaFunctionCompletedEventAttributes": null + "HistoryEvent$lambdaFunctionCompletedEventAttributes": "

Provides the details of the LambdaFunctionCompleted event. It isn't set for other event types.

" } }, "LambdaFunctionFailedEventAttributes": { - "base": "

Provides details for the LambdaFunctionFailed event.

", + "base": "

Provides the details of the LambdaFunctionFailed event. It isn't set for other event types.

", "refs": { - "HistoryEvent$lambdaFunctionFailedEventAttributes": null + "HistoryEvent$lambdaFunctionFailedEventAttributes": "

Provides the details of the LambdaFunctionFailed event. It isn't set for other event types.

" } }, "LambdaFunctionScheduledEventAttributes": { - "base": "

Provides details for the LambdaFunctionScheduled event.

", + "base": "

Provides the details of the LambdaFunctionScheduled event. It isn't set for other event types.

", "refs": { - "HistoryEvent$lambdaFunctionScheduledEventAttributes": null + "HistoryEvent$lambdaFunctionScheduledEventAttributes": "

Provides the details of the LambdaFunctionScheduled event. It isn't set for other event types.

" } }, "LambdaFunctionStartedEventAttributes": { - "base": "

Provides details for the LambdaFunctionStarted event.

", + "base": "

Provides the details of the LambdaFunctionStarted event. It isn't set for other event types.

", "refs": { - "HistoryEvent$lambdaFunctionStartedEventAttributes": null + "HistoryEvent$lambdaFunctionStartedEventAttributes": "

Provides the details of the LambdaFunctionStarted event. It isn't set for other event types.

" } }, "LambdaFunctionTimedOutEventAttributes": { - "base": "

Provides details for the LambdaFunctionTimedOut event.

", + "base": "

Provides details of the LambdaFunctionTimedOut event.

", "refs": { - "HistoryEvent$lambdaFunctionTimedOutEventAttributes": null + "HistoryEvent$lambdaFunctionTimedOutEventAttributes": "

Provides the details of the LambdaFunctionTimedOut event. It isn't set for other event types.

" } }, "LambdaFunctionTimeoutType": { @@ -917,27 +919,27 @@ "base": null, "refs": { "MarkerRecordedEventAttributes$markerName": "

The name of the marker.

", - "RecordMarkerDecisionAttributes$markerName": "

Required. The name of the marker.

", + "RecordMarkerDecisionAttributes$markerName": "

The name of the marker.

", "RecordMarkerFailedEventAttributes$markerName": "

The marker's name.

" } }, "MarkerRecordedEventAttributes": { - "base": "

Provides details of the MarkerRecorded event.

", + "base": "

Provides the details of the MarkerRecorded event.

", "refs": { - "HistoryEvent$markerRecordedEventAttributes": "

If the event is of type MarkerRecorded then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$markerRecordedEventAttributes": "

If the event is of type MarkerRecorded then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "Name": { "base": null, "refs": { - "ActivityType$name": "

The name of this activity.

The combination of activity type name and version must be unique within a domain.", + "ActivityType$name": "

The name of this activity.

The combination of activity type name and version must be unique within a domain.

", "ListActivityTypesInput$name": "

If specified, only lists the activity types that have this name.

", "ListWorkflowTypesInput$name": "

If specified, lists the workflow type with this name.

", - "RegisterActivityTypeInput$name": "

The name of the activity type within the domain.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", - "RegisterWorkflowTypeInput$name": "

The name of the workflow type.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "RegisterActivityTypeInput$name": "

The name of the activity type within the domain.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", + "RegisterWorkflowTypeInput$name": "

The name of the workflow type.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", "TaskList$name": "

The name of the task list.

", - "WorkflowType$name": "

Required. The name of the workflow type.

The combination of workflow type name and version must be unique with in a domain.", - "WorkflowTypeFilter$name": "

Required. Name of the workflow type.

" + "WorkflowType$name": "

The name of the workflow type.

The combination of workflow type name and version must be unique with in a domain.

", + "WorkflowTypeFilter$name": "

Name of the workflow type.

" } }, "OpenDecisionTasksCount": { @@ -947,20 +949,20 @@ } }, "OperationNotPermittedFault": { - "base": "

Returned when the caller does not have sufficient permissions to invoke the action.

", + "base": "

Returned when the caller doesn't have sufficient permissions to invoke the action.

", "refs": { } }, "PageSize": { "base": null, "refs": { - "GetWorkflowExecutionHistoryInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", - "ListActivityTypesInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", - "ListClosedWorkflowExecutionsInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", - "ListDomainsInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", - "ListOpenWorkflowExecutionsInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", - "ListWorkflowTypesInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", - "PollForDecisionTaskInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

" + "GetWorkflowExecutionHistoryInput$maximumPageSize": "

The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "ListActivityTypesInput$maximumPageSize": "

The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "ListClosedWorkflowExecutionsInput$maximumPageSize": "

The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "ListDomainsInput$maximumPageSize": "

The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "ListOpenWorkflowExecutionsInput$maximumPageSize": "

The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "ListWorkflowTypesInput$maximumPageSize": "

The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "PollForDecisionTaskInput$maximumPageSize": "

The maximum number of results that are returned per call. nextPageToken can be used to obtain futher pages of results. The default is 1000, which is the maximum allowed page size. You can, however, specify a page size smaller than the maximum.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

" } }, "PageToken": { @@ -976,7 +978,7 @@ "ListDomainsInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", "ListOpenWorkflowExecutionsInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", "ListWorkflowTypesInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", - "PollForDecisionTaskInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

The nextPageToken returned by this action cannot be used with GetWorkflowExecutionHistory to get the next page. You must call PollForDecisionTask again (with the nextPageToken) to retrieve the next page of history records. Calling PollForDecisionTask with a nextPageToken will not return a new decision task..", + "PollForDecisionTaskInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

The nextPageToken returned by this action cannot be used with GetWorkflowExecutionHistory to get the next page. You must call PollForDecisionTask again (with the nextPageToken) to retrieve the next page of history records. Calling PollForDecisionTask with a nextPageToken doesn't return a new decision task.

", "WorkflowExecutionInfos$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", "WorkflowTypeInfos$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

" } @@ -1002,21 +1004,21 @@ } }, "RecordMarkerDecisionAttributes": { - "base": "

Provides details of the RecordMarker decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the RecordMarker decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$recordMarkerDecisionAttributes": "

Provides details of the RecordMarker decision. It is not set for other decision types.

" + "Decision$recordMarkerDecisionAttributes": "

Provides the details of the RecordMarker decision. It isn't set for other decision types.

" } }, "RecordMarkerFailedCause": { "base": null, "refs": { - "RecordMarkerFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "RecordMarkerFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "RecordMarkerFailedEventAttributes": { - "base": "

Provides details of the RecordMarkerFailed event.

", + "base": "

Provides the details of the RecordMarkerFailed event.

", "refs": { - "HistoryEvent$recordMarkerFailedEventAttributes": "

If the event is of type DecisionTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$recordMarkerFailedEventAttributes": "

If the event is of type DecisionTaskFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "RegisterActivityTypeInput": { @@ -1038,7 +1040,7 @@ "base": null, "refs": { "ActivityTypeInfo$status": "

The current status of the activity type.

", - "DomainInfo$status": "

The status of the domain:

  • REGISTERED: The domain is properly registered and available. You can use this domain for registering types and creating new workflow executions.
  • DEPRECATED: The domain was deprecated using DeprecateDomain, but is still in use. You should not create new workflow executions in this domain.
", + "DomainInfo$status": "

The status of the domain:

  • REGISTERED – The domain is properly registered and available. You can use this domain for registering types and creating new workflow executions.

  • DEPRECATED – The domain was deprecated using DeprecateDomain, but is still in use. You should not create new workflow executions in this domain.

", "ListActivityTypesInput$registrationStatus": "

Specifies the registration status of the activity types to list.

", "ListDomainsInput$registrationStatus": "

Specifies the registration status of the domains to list.

", "ListWorkflowTypesInput$registrationStatus": "

Specifies the registration status of the workflow types to list.

", @@ -1046,45 +1048,45 @@ } }, "RequestCancelActivityTaskDecisionAttributes": { - "base": "

Provides details of the RequestCancelActivityTask decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the RequestCancelActivityTask decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$requestCancelActivityTaskDecisionAttributes": "

Provides details of the RequestCancelActivityTask decision. It is not set for other decision types.

" + "Decision$requestCancelActivityTaskDecisionAttributes": "

Provides the details of the RequestCancelActivityTask decision. It isn't set for other decision types.

" } }, "RequestCancelActivityTaskFailedCause": { "base": null, "refs": { - "RequestCancelActivityTaskFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "RequestCancelActivityTaskFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "RequestCancelActivityTaskFailedEventAttributes": { - "base": "

Provides details of the RequestCancelActivityTaskFailed event.

", + "base": "

Provides the details of the RequestCancelActivityTaskFailed event.

", "refs": { - "HistoryEvent$requestCancelActivityTaskFailedEventAttributes": "

If the event is of type RequestCancelActivityTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$requestCancelActivityTaskFailedEventAttributes": "

If the event is of type RequestCancelActivityTaskFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "RequestCancelExternalWorkflowExecutionDecisionAttributes": { - "base": "

Provides details of the RequestCancelExternalWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the RequestCancelExternalWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$requestCancelExternalWorkflowExecutionDecisionAttributes": "

Provides details of the RequestCancelExternalWorkflowExecution decision. It is not set for other decision types.

" + "Decision$requestCancelExternalWorkflowExecutionDecisionAttributes": "

Provides the details of the RequestCancelExternalWorkflowExecution decision. It isn't set for other decision types.

" } }, "RequestCancelExternalWorkflowExecutionFailedCause": { "base": null, "refs": { - "RequestCancelExternalWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "RequestCancelExternalWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "RequestCancelExternalWorkflowExecutionFailedEventAttributes": { - "base": "

Provides details of the RequestCancelExternalWorkflowExecutionFailed event.

", + "base": "

Provides the details of the RequestCancelExternalWorkflowExecutionFailed event.

", "refs": { - "HistoryEvent$requestCancelExternalWorkflowExecutionFailedEventAttributes": "

If the event is of type RequestCancelExternalWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$requestCancelExternalWorkflowExecutionFailedEventAttributes": "

If the event is of type RequestCancelExternalWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes": { - "base": "

Provides details of the RequestCancelExternalWorkflowExecutionInitiated event.

", + "base": "

Provides the details of the RequestCancelExternalWorkflowExecutionInitiated event.

", "refs": { - "HistoryEvent$requestCancelExternalWorkflowExecutionInitiatedEventAttributes": "

If the event is of type RequestCancelExternalWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$requestCancelExternalWorkflowExecutionInitiatedEventAttributes": "

If the event is of type RequestCancelExternalWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "RequestCancelWorkflowExecutionInput": { @@ -1108,7 +1110,7 @@ } }, "RespondDecisionTaskCompletedInput": { - "base": null, + "base": "

Input data for a TaskCompleted response to a decision task.

", "refs": { } }, @@ -1129,93 +1131,70 @@ "refs": { } }, - "RunId": { - "base": null, - "refs": { - "Run$runId": "

The runId of a workflow execution. This ID is generated by the service and can be used to uniquely identify the workflow execution within a domain.

", - "WorkflowExecution$runId": "

A system-generated unique identifier for the workflow execution.

", - "WorkflowExecutionContinuedAsNewEventAttributes$newExecutionRunId": "

The runId of the new workflow execution.

" - } - }, - "RunIdOptional": { - "base": null, - "refs": { - "RequestCancelExternalWorkflowExecutionDecisionAttributes$runId": "

The runId of the external workflow execution to cancel.

", - "RequestCancelExternalWorkflowExecutionFailedEventAttributes$runId": "

The runId of the external workflow execution.

", - "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes$runId": "

The runId of the external workflow execution to be canceled.

", - "RequestCancelWorkflowExecutionInput$runId": "

The runId of the workflow execution to cancel.

", - "SignalExternalWorkflowExecutionDecisionAttributes$runId": "

The runId of the workflow execution to be signaled.

", - "SignalExternalWorkflowExecutionFailedEventAttributes$runId": "

The runId of the external workflow execution that the signal was being delivered to.

", - "SignalExternalWorkflowExecutionInitiatedEventAttributes$runId": "

The runId of the external workflow execution to send the signal to.

", - "SignalWorkflowExecutionInput$runId": "

The runId of the workflow execution to signal.

", - "TerminateWorkflowExecutionInput$runId": "

The runId of the workflow execution to terminate.

", - "WorkflowExecutionStartedEventAttributes$continuedExecutionRunId": "

If this workflow execution was started due to a ContinueAsNewWorkflowExecution decision, then it contains the runId of the previous workflow execution that was closed and continued as this execution.

" - } - }, "ScheduleActivityTaskDecisionAttributes": { - "base": "

Provides details of the ScheduleActivityTask decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • activityType.name: String constraint. The key is swf:activityType.name.
    • activityType.version: String constraint. The key is swf:activityType.version.
    • taskList: String constraint. The key is swf:taskList.name.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the ScheduleActivityTask decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • activityType.name – String constraint. The key is swf:activityType.name.

    • activityType.version – String constraint. The key is swf:activityType.version.

    • taskList – String constraint. The key is swf:taskList.name.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$scheduleActivityTaskDecisionAttributes": "

Provides details of the ScheduleActivityTask decision. It is not set for other decision types.

" + "Decision$scheduleActivityTaskDecisionAttributes": "

Provides the details of the ScheduleActivityTask decision. It isn't set for other decision types.

" } }, "ScheduleActivityTaskFailedCause": { "base": null, "refs": { - "ScheduleActivityTaskFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "ScheduleActivityTaskFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "ScheduleActivityTaskFailedEventAttributes": { - "base": "

Provides details of the ScheduleActivityTaskFailed event.

", + "base": "

Provides the details of the ScheduleActivityTaskFailed event.

", "refs": { - "HistoryEvent$scheduleActivityTaskFailedEventAttributes": "

If the event is of type ScheduleActivityTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$scheduleActivityTaskFailedEventAttributes": "

If the event is of type ScheduleActivityTaskFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "ScheduleLambdaFunctionDecisionAttributes": { - "base": "

Provides details of the ScheduleLambdaFunction decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • activityType.name: String constraint. The key is swf:activityType.name.
    • activityType.version: String constraint. The key is swf:activityType.version.
    • taskList: String constraint. The key is swf:taskList.name.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Decision attributes specified in scheduleLambdaFunctionDecisionAttributes within the list of decisions decisions passed to RespondDecisionTaskCompleted.

", "refs": { - "Decision$scheduleLambdaFunctionDecisionAttributes": null + "Decision$scheduleLambdaFunctionDecisionAttributes": "

Provides the details of the ScheduleLambdaFunction decision. It isn't set for other decision types.

" } }, "ScheduleLambdaFunctionFailedCause": { "base": null, "refs": { - "ScheduleLambdaFunctionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "ScheduleLambdaFunctionFailedEventAttributes$cause": "

The cause of the failure. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "ScheduleLambdaFunctionFailedEventAttributes": { - "base": "

Provides details for the ScheduleLambdaFunctionFailed event.

", + "base": "

Provides the details of the ScheduleLambdaFunctionFailed event. It isn't set for other event types.

", "refs": { - "HistoryEvent$scheduleLambdaFunctionFailedEventAttributes": null + "HistoryEvent$scheduleLambdaFunctionFailedEventAttributes": "

Provides the details of the ScheduleLambdaFunctionFailed event. It isn't set for other event types.

" } }, "SignalExternalWorkflowExecutionDecisionAttributes": { - "base": "

Provides details of the SignalExternalWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the SignalExternalWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$signalExternalWorkflowExecutionDecisionAttributes": "

Provides details of the SignalExternalWorkflowExecution decision. It is not set for other decision types.

" + "Decision$signalExternalWorkflowExecutionDecisionAttributes": "

Provides the details of the SignalExternalWorkflowExecution decision. It isn't set for other decision types.

" } }, "SignalExternalWorkflowExecutionFailedCause": { "base": null, "refs": { - "SignalExternalWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "SignalExternalWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "SignalExternalWorkflowExecutionFailedEventAttributes": { - "base": "

Provides details of the SignalExternalWorkflowExecutionFailed event.

", + "base": "

Provides the details of the SignalExternalWorkflowExecutionFailed event.

", "refs": { - "HistoryEvent$signalExternalWorkflowExecutionFailedEventAttributes": "

If the event is of type SignalExternalWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$signalExternalWorkflowExecutionFailedEventAttributes": "

If the event is of type SignalExternalWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "SignalExternalWorkflowExecutionInitiatedEventAttributes": { - "base": "

Provides details of the SignalExternalWorkflowExecutionInitiated event.

", + "base": "

Provides the details of the SignalExternalWorkflowExecutionInitiated event.

", "refs": { - "HistoryEvent$signalExternalWorkflowExecutionInitiatedEventAttributes": "

If the event is of type SignalExternalWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$signalExternalWorkflowExecutionInitiatedEventAttributes": "

If the event is of type SignalExternalWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "SignalName": { "base": null, "refs": { - "SignalExternalWorkflowExecutionDecisionAttributes$signalName": "

Required. The name of the signal.The target workflow execution will use the signal name and input to process the signal.

", + "SignalExternalWorkflowExecutionDecisionAttributes$signalName": "

The name of the signal.The target workflow execution uses the signal name and input to process the signal.

", "SignalExternalWorkflowExecutionInitiatedEventAttributes$signalName": "

The name of the signal.

", "SignalWorkflowExecutionInput$signalName": "

The name of the signal. This name must be meaningful to the target workflow.

", "WorkflowExecutionSignaledEventAttributes$signalName": "

The name of the signal received. The decider can use the signal name and inputs to determine how to the process the signal.

" @@ -1227,57 +1206,57 @@ } }, "StartChildWorkflowExecutionDecisionAttributes": { - "base": "

Provides details of the StartChildWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagList.member.N: The key is \"swf:tagList.N\" where N is the tag number from 0 to 4, inclusive.
    • taskList: String constraint. The key is swf:taskList.name.
    • workflowType.name: String constraint. The key is swf:workflowType.name.
    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the StartChildWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • Constrain the following parameters by using a Condition element with the appropriate keys.

    • tagList.member.N – The key is \"swf:tagList.N\" where N is the tag number from 0 to 4, inclusive.

    • taskList – String constraint. The key is swf:taskList.name.

    • workflowType.name – String constraint. The key is swf:workflowType.name.

    • workflowType.version – String constraint. The key is swf:workflowType.version.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$startChildWorkflowExecutionDecisionAttributes": "

Provides details of the StartChildWorkflowExecution decision. It is not set for other decision types.

" + "Decision$startChildWorkflowExecutionDecisionAttributes": "

Provides the details of the StartChildWorkflowExecution decision. It isn't set for other decision types.

" } }, "StartChildWorkflowExecutionFailedCause": { "base": null, "refs": { - "StartChildWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "StartChildWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

When cause is set to OPERATION_NOT_PERMITTED, the decision fails because it lacks sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "StartChildWorkflowExecutionFailedEventAttributes": { - "base": "

Provides details of the StartChildWorkflowExecutionFailed event.

", + "base": "

Provides the details of the StartChildWorkflowExecutionFailed event.

", "refs": { - "HistoryEvent$startChildWorkflowExecutionFailedEventAttributes": "

If the event is of type StartChildWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$startChildWorkflowExecutionFailedEventAttributes": "

If the event is of type StartChildWorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "StartChildWorkflowExecutionInitiatedEventAttributes": { - "base": "

Provides details of the StartChildWorkflowExecutionInitiated event.

", + "base": "

Provides the details of the StartChildWorkflowExecutionInitiated event.

", "refs": { - "HistoryEvent$startChildWorkflowExecutionInitiatedEventAttributes": "

If the event is of type StartChildWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$startChildWorkflowExecutionInitiatedEventAttributes": "

If the event is of type StartChildWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "StartLambdaFunctionFailedCause": { "base": null, "refs": { - "StartLambdaFunctionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "StartLambdaFunctionFailedEventAttributes$cause": "

The cause of the failure. To help diagnose issues, use this information to trace back the chain of events leading up to this event.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because the IAM role attached to the execution lacked sufficient permissions. For details and example IAM policies, see Lambda Tasks in the Amazon SWF Developer Guide.

" } }, "StartLambdaFunctionFailedEventAttributes": { - "base": "

Provides details for the StartLambdaFunctionFailed event.

", + "base": "

Provides the details of the StartLambdaFunctionFailed event. It isn't set for other event types.

", "refs": { - "HistoryEvent$startLambdaFunctionFailedEventAttributes": null + "HistoryEvent$startLambdaFunctionFailedEventAttributes": "

Provides the details of the StartLambdaFunctionFailed event. It isn't set for other event types.

" } }, "StartTimerDecisionAttributes": { - "base": "

Provides details of the StartTimer decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "base": "

Provides the details of the StartTimer decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.

  • Use an Action element to allow or deny permission to call this action.

  • You cannot use an IAM policy to constrain this action's parameters.

If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter is set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

", "refs": { - "Decision$startTimerDecisionAttributes": "

Provides details of the StartTimer decision. It is not set for other decision types.

" + "Decision$startTimerDecisionAttributes": "

Provides the details of the StartTimer decision. It isn't set for other decision types.

" } }, "StartTimerFailedCause": { "base": null, "refs": { - "StartTimerFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + "StartTimerFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer Guide.

" } }, "StartTimerFailedEventAttributes": { - "base": "

Provides details of the StartTimerFailed event.

", + "base": "

Provides the details of the StartTimerFailed event.

", "refs": { - "HistoryEvent$startTimerFailedEventAttributes": "

If the event is of type StartTimerFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$startTimerFailedEventAttributes": "

If the event is of type StartTimerFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "StartWorkflowExecutionInput": { @@ -1288,17 +1267,17 @@ "Tag": { "base": null, "refs": { - "TagFilter$tag": "

Required. Specifies the tag that must be associated with the execution for it to meet the filter criteria.

", + "TagFilter$tag": "

Specifies the tag that must be associated with the execution for it to meet the filter criteria.

", "TagList$member": null } }, "TagFilter": { "base": "

Used to filter the workflow executions in visibility APIs based on a tag.

", "refs": { - "CountClosedWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have a tag that matches the filter are counted.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", - "CountOpenWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have a tag that matches the filter are counted.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", - "ListClosedWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have the matching tag are listed.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", - "ListOpenWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have the matching tag are listed.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request." + "CountClosedWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have a tag that matches the filter are counted.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

", + "CountOpenWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have a tag that matches the filter are counted.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

", + "ListClosedWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have the matching tag are listed.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

", + "ListOpenWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have the matching tag are listed.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

" } }, "TagList": { @@ -1317,42 +1296,42 @@ "base": "

Represents a task list.

", "refs": { "ActivityTaskScheduledEventAttributes$taskList": "

The task list in which the activity task has been scheduled.

", - "ActivityTypeConfiguration$defaultTaskList": "

Optional. The default task list specified for this activity type at registration. This default is used if a task list is not provided when a task is scheduled through the ScheduleActivityTask decision. You can override the default registered task list when scheduling a task through the ScheduleActivityTask decision.

", - "ContinueAsNewWorkflowExecutionDecisionAttributes$taskList": null, + "ActivityTypeConfiguration$defaultTaskList": "

The default task list specified for this activity type at registration. This default is used if a task list isn't provided when a task is scheduled through the ScheduleActivityTask Decision. You can override the default registered task list when scheduling a task through the ScheduleActivityTask Decision.

", + "ContinueAsNewWorkflowExecutionDecisionAttributes$taskList": "

The task list to use for the decisions of the new (continued) workflow execution.

", "CountPendingActivityTasksInput$taskList": "

The name of the task list.

", "CountPendingDecisionTasksInput$taskList": "

The name of the task list.

", "DecisionTaskScheduledEventAttributes$taskList": "

The name of the task list in which the decision task was scheduled.

", - "PollForActivityTaskInput$taskList": "

Specifies the task list to poll for activity tasks.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", - "PollForDecisionTaskInput$taskList": "

Specifies the task list to poll for decision tasks.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", - "RegisterActivityTypeInput$defaultTaskList": "

If set, specifies the default task list to use for scheduling tasks of this activity type. This default task list is used if a task list is not provided when a task is scheduled through the ScheduleActivityTask decision.

", - "RegisterWorkflowTypeInput$defaultTaskList": "

If set, specifies the default task list to use for scheduling decision tasks for executions of this workflow type. This default is used only if a task list is not provided when starting the execution through the StartWorkflowExecution action or StartChildWorkflowExecution decision.

", - "ScheduleActivityTaskDecisionAttributes$taskList": "

If set, specifies the name of the task list in which to schedule the activity task. If not specified, the defaultTaskList registered with the activity type will be used.

A task list for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default task list was specified at registration time then a fault will be returned.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", - "StartChildWorkflowExecutionDecisionAttributes$taskList": "

The name of the task list to be used for decision tasks of the child workflow execution.

A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault will be returned.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "PollForActivityTaskInput$taskList": "

Specifies the task list to poll for activity tasks.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", + "PollForDecisionTaskInput$taskList": "

Specifies the task list to poll for decision tasks.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", + "RegisterActivityTypeInput$defaultTaskList": "

If set, specifies the default task list to use for scheduling tasks of this activity type. This default task list is used if a task list isn't provided when a task is scheduled through the ScheduleActivityTask Decision.

", + "RegisterWorkflowTypeInput$defaultTaskList": "

If set, specifies the default task list to use for scheduling decision tasks for executions of this workflow type. This default is used only if a task list isn't provided when starting the execution through the StartWorkflowExecution Action or StartChildWorkflowExecution Decision.

", + "ScheduleActivityTaskDecisionAttributes$taskList": "

If set, specifies the name of the task list in which to schedule the activity task. If not specified, the defaultTaskList registered with the activity type is used.

A task list for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default task list was specified at registration time then a fault is returned.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", + "StartChildWorkflowExecutionDecisionAttributes$taskList": "

The name of the task list to be used for decision tasks of the child workflow execution.

A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault is returned.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", "StartChildWorkflowExecutionInitiatedEventAttributes$taskList": "

The name of the task list used for the decision tasks of the child workflow execution.

", - "StartWorkflowExecutionInput$taskList": "

The task list to use for the decision tasks generated for this workflow execution. This overrides the defaultTaskList specified when registering the workflow type.

A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault will be returned.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "StartWorkflowExecutionInput$taskList": "

The task list to use for the decision tasks generated for this workflow execution. This overrides the defaultTaskList specified when registering the workflow type.

A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault is returned.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", "WorkflowExecutionConfiguration$taskList": "

The task list used for the decision tasks generated for this workflow execution.

", - "WorkflowExecutionContinuedAsNewEventAttributes$taskList": null, + "WorkflowExecutionContinuedAsNewEventAttributes$taskList": "

The task list to use for the decisions of the new (continued) workflow execution.

", "WorkflowExecutionStartedEventAttributes$taskList": "

The name of the task list for scheduling the decision tasks for this workflow execution.

", - "WorkflowTypeConfiguration$defaultTaskList": "

Optional. The default task list, specified when registering the workflow type, for decisions tasks scheduled for workflow executions of this type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision.

" + "WorkflowTypeConfiguration$defaultTaskList": "

The default task list, specified when registering the workflow type, for decisions tasks scheduled for workflow executions of this type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

" } }, "TaskPriority": { "base": null, "refs": { - "ActivityTaskScheduledEventAttributes$taskPriority": "

Optional. The priority to assign to the scheduled activity task. If set, this will override any default priority value that was assigned when the activity type was registered.

Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "ActivityTypeConfiguration$defaultTaskPriority": "

Optional. The default task priority for tasks of this activity type, specified at registration. If not set, then \"0\" will be used as the default priority. This default can be overridden when scheduling an activity task.

Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "ContinueAsNewWorkflowExecutionDecisionAttributes$taskPriority": "

Optional. The task priority that, if set, specifies the priority for the decision tasks for this workflow execution. This overrides the defaultTaskPriority specified when registering the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "DecisionTaskScheduledEventAttributes$taskPriority": "

Optional. A task priority that, if set, specifies the priority for this decision task. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "RegisterActivityTypeInput$defaultTaskPriority": "

The default task priority to assign to the activity type. If not assigned, then \"0\" will be used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "RegisterWorkflowTypeInput$defaultTaskPriority": "

The default task priority to assign to the workflow type. If not assigned, then \"0\" will be used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "ScheduleActivityTaskDecisionAttributes$taskPriority": "

Optional. If set, specifies the priority with which the activity task is to be assigned to a worker. This overrides the defaultTaskPriority specified when registering the activity type using RegisterActivityType. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "StartChildWorkflowExecutionDecisionAttributes$taskPriority": "

Optional. A task priority that, if set, specifies the priority for a decision task of this workflow execution. This overrides the defaultTaskPriority specified when registering the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "StartChildWorkflowExecutionInitiatedEventAttributes$taskPriority": "

Optional. The priority assigned for the decision tasks for this workflow execution. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "StartWorkflowExecutionInput$taskPriority": "

The task priority to use for this workflow execution. This will override any default priority that was assigned when the workflow type was registered. If not set, then the default task priority for the workflow type will be used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "WorkflowExecutionConfiguration$taskPriority": "

The priority assigned to decision tasks for this workflow execution. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", - "WorkflowExecutionContinuedAsNewEventAttributes$taskPriority": null, - "WorkflowExecutionStartedEventAttributes$taskPriority": null, - "WorkflowTypeConfiguration$defaultTaskPriority": "

Optional. The default task priority, specified when registering the workflow type, for all decision tasks of this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision.

Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

" + "ActivityTaskScheduledEventAttributes$taskPriority": "

The priority to assign to the scheduled activity task. If set, this overrides any default priority value that was assigned when the activity type was registered.

Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

", + "ActivityTypeConfiguration$defaultTaskPriority": "

The default task priority for tasks of this activity type, specified at registration. If not set, then 0 is used as the default priority. This default can be overridden when scheduling an activity task.

Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

", + "ContinueAsNewWorkflowExecutionDecisionAttributes$taskPriority": "

The task priority that, if set, specifies the priority for the decision tasks for this workflow execution. This overrides the defaultTaskPriority specified when registering the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

", + "DecisionTaskScheduledEventAttributes$taskPriority": "

A task priority that, if set, specifies the priority for this decision task. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

", + "RegisterActivityTypeInput$defaultTaskPriority": "

The default task priority to assign to the activity type. If not assigned, then 0 is used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the in the Amazon SWF Developer Guide..

", + "RegisterWorkflowTypeInput$defaultTaskPriority": "

The default task priority to assign to the workflow type. If not assigned, then 0 is used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

", + "ScheduleActivityTaskDecisionAttributes$taskPriority": "

If set, specifies the priority with which the activity task is to be assigned to a worker. This overrides the defaultTaskPriority specified when registering the activity type using RegisterActivityType. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

", + "StartChildWorkflowExecutionDecisionAttributes$taskPriority": "

A task priority that, if set, specifies the priority for a decision task of this workflow execution. This overrides the defaultTaskPriority specified when registering the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$taskPriority": "

The priority assigned for the decision tasks for this workflow execution. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

", + "StartWorkflowExecutionInput$taskPriority": "

The task priority to use for this workflow execution. This overrides any default priority that was assigned when the workflow type was registered. If not set, then the default task priority for the workflow type is used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

", + "WorkflowExecutionConfiguration$taskPriority": "

The priority assigned to decision tasks for this workflow execution. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

", + "WorkflowExecutionContinuedAsNewEventAttributes$taskPriority": "

The priority of the task to use for the decisions of the new (continued) workflow execution.

", + "WorkflowExecutionStartedEventAttributes$taskPriority": "

The priority of the decision tasks in the workflow execution.

", + "WorkflowTypeConfiguration$defaultTaskPriority": "

The default task priority, specified when registering the workflow type, for all decision tasks of this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision.

Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon SWF Developer Guide.

" } }, "TaskToken": { @@ -1360,18 +1339,18 @@ "refs": { "ActivityTask$taskToken": "

The opaque string used as a handle on the task. This token is used by workers to communicate progress and response information back to the system about the task.

", "DecisionTask$taskToken": "

The opaque string used as a handle on the task. This token is used by workers to communicate progress and response information back to the system about the task.

", - "RecordActivityTaskHeartbeatInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. ", - "RespondActivityTaskCanceledInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.", - "RespondActivityTaskCompletedInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.", - "RespondActivityTaskFailedInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.", - "RespondDecisionTaskCompletedInput$taskToken": "

The taskToken from the DecisionTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results." + "RecordActivityTaskHeartbeatInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.

", + "RespondActivityTaskCanceledInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.

", + "RespondActivityTaskCompletedInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.

", + "RespondActivityTaskFailedInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.

", + "RespondDecisionTaskCompletedInput$taskToken": "

The taskToken from the DecisionTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.

" } }, "TerminateReason": { "base": null, "refs": { - "TerminateWorkflowExecutionInput$reason": "

Optional. A descriptive reason for terminating the workflow execution.

", - "WorkflowExecutionTerminatedEventAttributes$reason": "

The reason provided for the termination (if any).

" + "TerminateWorkflowExecutionInput$reason": "

A descriptive reason for terminating the workflow execution.

", + "WorkflowExecutionTerminatedEventAttributes$reason": "

The reason provided for the termination.

" } }, "TerminateWorkflowExecutionInput": { @@ -1380,33 +1359,33 @@ } }, "TimerCanceledEventAttributes": { - "base": "

Provides details of the TimerCanceled event.

", + "base": "

Provides the details of the TimerCanceled event.

", "refs": { - "HistoryEvent$timerCanceledEventAttributes": "

If the event is of type TimerCanceled then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$timerCanceledEventAttributes": "

If the event is of type TimerCanceled then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "TimerFiredEventAttributes": { - "base": "

Provides details of the TimerFired event.

", + "base": "

Provides the details of the TimerFired event.

", "refs": { - "HistoryEvent$timerFiredEventAttributes": "

If the event is of type TimerFired then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$timerFiredEventAttributes": "

If the event is of type TimerFired then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "TimerId": { "base": null, "refs": { - "CancelTimerDecisionAttributes$timerId": "

Required. The unique ID of the timer to cancel.

", + "CancelTimerDecisionAttributes$timerId": "

The unique ID of the timer to cancel.

", "CancelTimerFailedEventAttributes$timerId": "

The timerId provided in the CancelTimer decision that failed.

", - "StartTimerDecisionAttributes$timerId": "

Required. The unique ID of the timer.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "StartTimerDecisionAttributes$timerId": "

The unique ID of the timer.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", "StartTimerFailedEventAttributes$timerId": "

The timerId provided in the StartTimer decision that failed.

", - "TimerCanceledEventAttributes$timerId": "

The unique ID of the timer that was canceled.

", + "TimerCanceledEventAttributes$timerId": "

The unique ID of the timer that was canceled.

", "TimerFiredEventAttributes$timerId": "

The unique ID of the timer that fired.

", "TimerStartedEventAttributes$timerId": "

The unique ID of the timer that was started.

" } }, "TimerStartedEventAttributes": { - "base": "

Provides details of the TimerStarted event.

", + "base": "

Provides the details of the TimerStarted event.

", "refs": { - "HistoryEvent$timerStartedEventAttributes": "

If the event is of type TimerStarted then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$timerStartedEventAttributes": "

If the event is of type TimerStarted then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "Timestamp": { @@ -1432,7 +1411,7 @@ } }, "TypeAlreadyExistsFault": { - "base": "

Returned if the type already exists in the specified domain. You will get this fault even if the existing type is in deprecated status. You can specify another version if the intent is to create a new distinct version of the type.

", + "base": "

Returned if the type already exists in the specified domain. You get this fault even if the existing type is in deprecated status. You can specify another version if the intent is to create a new distinct version of the type.

", "refs": { } }, @@ -1449,11 +1428,11 @@ "Version": { "base": null, "refs": { - "ActivityType$version": "

The version of this activity.

The combination of activity type name and version must be unique with in a domain.", - "ContinueAsNewWorkflowExecutionDecisionAttributes$workflowTypeVersion": null, - "RegisterActivityTypeInput$version": "

The version of the activity type.

The activity type consists of the name and version, the combination of which must be unique within the domain.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", - "RegisterWorkflowTypeInput$version": "

The version of the workflow type.

The workflow type consists of the name and version, the combination of which must be unique within the domain. To get a list of all currently registered workflow types, use the ListWorkflowTypes action.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", - "WorkflowType$version": "

Required. The version of the workflow type.

The combination of workflow type name and version must be unique with in a domain." + "ActivityType$version": "

The version of this activity.

The combination of activity type name and version must be unique with in a domain.

", + "ContinueAsNewWorkflowExecutionDecisionAttributes$workflowTypeVersion": "

The version of the workflow to start.

", + "RegisterActivityTypeInput$version": "

The version of the activity type.

The activity type consists of the name and version, the combination of which must be unique within the domain.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", + "RegisterWorkflowTypeInput$version": "

The version of the workflow type.

The workflow type consists of the name and version, the combination of which must be unique within the domain. To get a list of all currently registered workflow types, use the ListWorkflowTypes action.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", + "WorkflowType$version": "

The version of the workflow type.

The combination of workflow type name and version must be unique with in a domain.

" } }, "VersionOptional": { @@ -1475,13 +1454,13 @@ "DecisionTask$workflowExecution": "

The workflow execution for which this decision task was created.

", "DescribeWorkflowExecutionInput$execution": "

The workflow execution to describe.

", "ExternalWorkflowExecutionCancelRequestedEventAttributes$workflowExecution": "

The external workflow execution to which the cancellation request was delivered.

", - "ExternalWorkflowExecutionSignaledEventAttributes$workflowExecution": "

The external workflow execution that the signal was delivered to.

", + "ExternalWorkflowExecutionSignaledEventAttributes$workflowExecution": "

The external workflow execution that the signal was delivered to.

", "GetWorkflowExecutionHistoryInput$execution": "

Specifies the workflow execution for which to return the history.

", "WorkflowExecutionCancelRequestedEventAttributes$externalWorkflowExecution": "

The external workflow execution for which the cancellation was requested.

", "WorkflowExecutionInfo$execution": "

The workflow execution this information is about.

", "WorkflowExecutionInfo$parent": "

If this workflow execution is a child of another execution then contains the workflow execution that started this execution.

", "WorkflowExecutionSignaledEventAttributes$externalWorkflowExecution": "

The workflow execution that sent the signal. This is set only of the signal was sent by another workflow execution.

", - "WorkflowExecutionStartedEventAttributes$parentWorkflowExecution": "

The source workflow execution that started this workflow execution. The member is not set if the workflow execution was not started by a workflow.

" + "WorkflowExecutionStartedEventAttributes$parentWorkflowExecution": "

The source workflow execution that started this workflow execution. The member isn't set if the workflow execution was not started by a workflow.

" } }, "WorkflowExecutionAlreadyStartedFault": { @@ -1496,21 +1475,21 @@ } }, "WorkflowExecutionCancelRequestedEventAttributes": { - "base": "

Provides details of the WorkflowExecutionCancelRequested event.

", + "base": "

Provides the details of the WorkflowExecutionCancelRequested event.

", "refs": { - "HistoryEvent$workflowExecutionCancelRequestedEventAttributes": "

If the event is of type WorkflowExecutionCancelRequested then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$workflowExecutionCancelRequestedEventAttributes": "

If the event is of type WorkflowExecutionCancelRequested then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "WorkflowExecutionCanceledEventAttributes": { - "base": "

Provides details of the WorkflowExecutionCanceled event.

", + "base": "

Provides the details of the WorkflowExecutionCanceled event.

", "refs": { - "HistoryEvent$workflowExecutionCanceledEventAttributes": "

If the event is of type WorkflowExecutionCanceled then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$workflowExecutionCanceledEventAttributes": "

If the event is of type WorkflowExecutionCanceled then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "WorkflowExecutionCompletedEventAttributes": { - "base": "

Provides details of the WorkflowExecutionCompleted event.

", + "base": "

Provides the details of the WorkflowExecutionCompleted event.

", "refs": { - "HistoryEvent$workflowExecutionCompletedEventAttributes": "

If the event is of type WorkflowExecutionCompleted then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$workflowExecutionCompletedEventAttributes": "

If the event is of type WorkflowExecutionCompleted then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "WorkflowExecutionConfiguration": { @@ -1520,13 +1499,13 @@ } }, "WorkflowExecutionContinuedAsNewEventAttributes": { - "base": "

Provides details of the WorkflowExecutionContinuedAsNew event.

", + "base": "

Provides the details of the WorkflowExecutionContinuedAsNew event.

", "refs": { - "HistoryEvent$workflowExecutionContinuedAsNewEventAttributes": "

If the event is of type WorkflowExecutionContinuedAsNew then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$workflowExecutionContinuedAsNewEventAttributes": "

If the event is of type WorkflowExecutionContinuedAsNew then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "WorkflowExecutionCount": { - "base": "

Contains the count of workflow executions returned from CountOpenWorkflowExecutions or CountClosedWorkflowExecutions

", + "base": "

Contains the count of workflow executions returned from CountOpenWorkflowExecutions or CountClosedWorkflowExecutions

", "refs": { } }, @@ -1536,22 +1515,22 @@ } }, "WorkflowExecutionFailedEventAttributes": { - "base": "

Provides details of the WorkflowExecutionFailed event.

", + "base": "

Provides the details of the WorkflowExecutionFailed event.

", "refs": { - "HistoryEvent$workflowExecutionFailedEventAttributes": "

If the event is of type WorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$workflowExecutionFailedEventAttributes": "

If the event is of type WorkflowExecutionFailed then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "WorkflowExecutionFilter": { "base": "

Used to filter the workflow executions in visibility APIs by their workflowId.

", "refs": { - "CountClosedWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the WorkflowId in the filter are counted.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", - "CountOpenWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the WorkflowId in the filter are counted.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", - "ListClosedWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the workflow ID specified in the filter are returned.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", - "ListOpenWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the workflow ID specified in the filter are returned.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request." + "CountClosedWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the WorkflowId in the filter are counted.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

", + "CountOpenWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the WorkflowId in the filter are counted.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

", + "ListClosedWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the workflow ID specified in the filter are returned.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

", + "ListOpenWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the workflow ID specified in the filter are returned.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

" } }, "WorkflowExecutionInfo": { - "base": "

Contains information about a workflow execution.

", + "base": "

Contains information about a workflow execution.

", "refs": { "WorkflowExecutionDetail$executionInfo": "

Information about the workflow execution.

", "WorkflowExecutionInfoList$member": null @@ -1575,15 +1554,15 @@ } }, "WorkflowExecutionSignaledEventAttributes": { - "base": "

Provides details of the WorkflowExecutionSignaled event.

", + "base": "

Provides the details of the WorkflowExecutionSignaled event.

", "refs": { - "HistoryEvent$workflowExecutionSignaledEventAttributes": "

If the event is of type WorkflowExecutionSignaled then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$workflowExecutionSignaledEventAttributes": "

If the event is of type WorkflowExecutionSignaled then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "WorkflowExecutionStartedEventAttributes": { "base": "

Provides details of WorkflowExecutionStarted event.

", "refs": { - "HistoryEvent$workflowExecutionStartedEventAttributes": "

If the event is of type WorkflowExecutionStarted then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$workflowExecutionStartedEventAttributes": "

If the event is of type WorkflowExecutionStarted then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "WorkflowExecutionTerminatedCause": { @@ -1593,15 +1572,15 @@ } }, "WorkflowExecutionTerminatedEventAttributes": { - "base": "

Provides details of the WorkflowExecutionTerminated event.

", + "base": "

Provides the details of the WorkflowExecutionTerminated event.

", "refs": { - "HistoryEvent$workflowExecutionTerminatedEventAttributes": "

If the event is of type WorkflowExecutionTerminated then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$workflowExecutionTerminatedEventAttributes": "

If the event is of type WorkflowExecutionTerminated then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "WorkflowExecutionTimedOutEventAttributes": { - "base": "

Provides details of the WorkflowExecutionTimedOut event.

", + "base": "

Provides the details of the WorkflowExecutionTimedOut event.

", "refs": { - "HistoryEvent$workflowExecutionTimedOutEventAttributes": "

If the event is of type WorkflowExecutionTimedOut then this member is set and provides detailed information about the event. It is not set for other event types.

" + "HistoryEvent$workflowExecutionTimedOutEventAttributes": "

If the event is of type WorkflowExecutionTimedOut then this member is set and provides detailed information about the event. It isn't set for other event types.

" } }, "WorkflowExecutionTimeoutType": { @@ -1614,40 +1593,63 @@ "WorkflowId": { "base": null, "refs": { - "RequestCancelExternalWorkflowExecutionDecisionAttributes$workflowId": "

Required. The workflowId of the external workflow execution to cancel.

", + "RequestCancelExternalWorkflowExecutionDecisionAttributes$workflowId": "

The workflowId of the external workflow execution to cancel.

", "RequestCancelExternalWorkflowExecutionFailedEventAttributes$workflowId": "

The workflowId of the external workflow to which the cancel request was to be delivered.

", "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes$workflowId": "

The workflowId of the external workflow execution to be canceled.

", "RequestCancelWorkflowExecutionInput$workflowId": "

The workflowId of the workflow execution to cancel.

", - "SignalExternalWorkflowExecutionDecisionAttributes$workflowId": "

Required. The workflowId of the workflow execution to be signaled.

", + "SignalExternalWorkflowExecutionDecisionAttributes$workflowId": "

The workflowId of the workflow execution to be signaled.

", "SignalExternalWorkflowExecutionFailedEventAttributes$workflowId": "

The workflowId of the external workflow execution that the signal was being delivered to.

", "SignalExternalWorkflowExecutionInitiatedEventAttributes$workflowId": "

The workflowId of the external workflow execution.

", "SignalWorkflowExecutionInput$workflowId": "

The workflowId of the workflow execution to signal.

", - "StartChildWorkflowExecutionDecisionAttributes$workflowId": "

Required. The workflowId of the workflow execution.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "StartChildWorkflowExecutionDecisionAttributes$workflowId": "

The workflowId of the workflow execution.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", "StartChildWorkflowExecutionFailedEventAttributes$workflowId": "

The workflowId of the child workflow execution.

", "StartChildWorkflowExecutionInitiatedEventAttributes$workflowId": "

The workflowId of the child workflow execution.

", - "StartWorkflowExecutionInput$workflowId": "

The user defined identifier associated with the workflow execution. You can use this to associate a custom identifier with the workflow execution. You may specify the same identifier if a workflow execution is logically a restart of a previous execution. You cannot have two open workflow executions with the same workflowId at the same time.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "StartWorkflowExecutionInput$workflowId": "

The user defined identifier associated with the workflow execution. You can use this to associate a custom identifier with the workflow execution. You may specify the same identifier if a workflow execution is logically a restart of a previous execution. You cannot have two open workflow executions with the same workflowId at the same time.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f-\\u009f). Also, it must not contain the literal string arn.

", "TerminateWorkflowExecutionInput$workflowId": "

The workflowId of the workflow execution to terminate.

", "WorkflowExecution$workflowId": "

The user defined identifier associated with the workflow execution.

", "WorkflowExecutionFilter$workflowId": "

The workflowId to pass of match the criteria of this filter.

" } }, + "WorkflowRunId": { + "base": null, + "refs": { + "Run$runId": "

The runId of a workflow execution. This ID is generated by the service and can be used to uniquely identify the workflow execution within a domain.

", + "WorkflowExecution$runId": "

A system-generated unique identifier for the workflow execution.

", + "WorkflowExecutionContinuedAsNewEventAttributes$newExecutionRunId": "

The runId of the new workflow execution.

" + } + }, + "WorkflowRunIdOptional": { + "base": null, + "refs": { + "RequestCancelExternalWorkflowExecutionDecisionAttributes$runId": "

The runId of the external workflow execution to cancel.

", + "RequestCancelExternalWorkflowExecutionFailedEventAttributes$runId": "

The runId of the external workflow execution.

", + "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes$runId": "

The runId of the external workflow execution to be canceled.

", + "RequestCancelWorkflowExecutionInput$runId": "

The runId of the workflow execution to cancel.

", + "SignalExternalWorkflowExecutionDecisionAttributes$runId": "

The runId of the workflow execution to be signaled.

", + "SignalExternalWorkflowExecutionFailedEventAttributes$runId": "

The runId of the external workflow execution that the signal was being delivered to.

", + "SignalExternalWorkflowExecutionInitiatedEventAttributes$runId": "

The runId of the external workflow execution to send the signal to.

", + "SignalWorkflowExecutionInput$runId": "

The runId of the workflow execution to signal.

", + "TerminateWorkflowExecutionInput$runId": "

The runId of the workflow execution to terminate.

", + "WorkflowExecutionStartedEventAttributes$continuedExecutionRunId": "

If this workflow execution was started due to a ContinueAsNewWorkflowExecution decision, then it contains the runId of the previous workflow execution that was closed and continued as this execution.

" + } + }, "WorkflowType": { "base": "

Represents a workflow type.

", "refs": { "ChildWorkflowExecutionCanceledEventAttributes$workflowType": "

The type of the child workflow execution.

", "ChildWorkflowExecutionCompletedEventAttributes$workflowType": "

The type of the child workflow execution.

", "ChildWorkflowExecutionFailedEventAttributes$workflowType": "

The type of the child workflow execution.

", - "ChildWorkflowExecutionStartedEventAttributes$workflowType": "

The type of the child workflow execution.

", + "ChildWorkflowExecutionStartedEventAttributes$workflowType": "

The type of the child workflow execution.

", "ChildWorkflowExecutionTerminatedEventAttributes$workflowType": "

The type of the child workflow execution.

", "ChildWorkflowExecutionTimedOutEventAttributes$workflowType": "

The type of the child workflow execution.

", "DecisionTask$workflowType": "

The type of the workflow execution for which this decision task was created.

", "DeprecateWorkflowTypeInput$workflowType": "

The workflow type to deprecate.

", "DescribeWorkflowTypeInput$workflowType": "

The workflow type to describe.

", - "StartChildWorkflowExecutionDecisionAttributes$workflowType": "

Required. The type of the workflow execution to be started.

", - "StartChildWorkflowExecutionFailedEventAttributes$workflowType": "

The workflow type provided in the StartChildWorkflowExecution decision that failed.

", + "StartChildWorkflowExecutionDecisionAttributes$workflowType": "

The type of the workflow execution to be started.

", + "StartChildWorkflowExecutionFailedEventAttributes$workflowType": "

The workflow type provided in the StartChildWorkflowExecution Decision that failed.

", "StartChildWorkflowExecutionInitiatedEventAttributes$workflowType": "

The type of the child workflow execution.

", "StartWorkflowExecutionInput$workflowType": "

The type of the workflow to start.

", - "WorkflowExecutionContinuedAsNewEventAttributes$workflowType": null, + "WorkflowExecutionContinuedAsNewEventAttributes$workflowType": "

The workflow type of this execution.

", "WorkflowExecutionInfo$workflowType": "

The type of the workflow execution.

", "WorkflowExecutionStartedEventAttributes$workflowType": "

The workflow type of this execution.

", "WorkflowTypeInfo$workflowType": "

The workflow type this information is about.

" @@ -1656,7 +1658,7 @@ "WorkflowTypeConfiguration": { "base": "

The configuration settings of a workflow type.

", "refs": { - "WorkflowTypeDetail$configuration": "

Configuration settings of the workflow type registered through RegisterWorkflowType

" + "WorkflowTypeDetail$configuration": "

Configuration settings of the workflow type registered through RegisterWorkflowType

" } }, "WorkflowTypeDetail": { @@ -1667,16 +1669,16 @@ "WorkflowTypeFilter": { "base": "

Used to filter workflow execution query results by type. Each parameter, if specified, defines a rule that must be satisfied by each returned result.

", "refs": { - "CountClosedWorkflowExecutionsInput$typeFilter": "

If specified, indicates the type of the workflow executions to be counted.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", - "CountOpenWorkflowExecutionsInput$typeFilter": "

Specifies the type of the workflow executions to be counted.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", - "ListClosedWorkflowExecutionsInput$typeFilter": "

If specified, only executions of the type specified in the filter are returned.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", - "ListOpenWorkflowExecutionsInput$typeFilter": "

If specified, only executions of the type specified in the filter are returned.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request." + "CountClosedWorkflowExecutionsInput$typeFilter": "

If specified, indicates the type of the workflow executions to be counted.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

", + "CountOpenWorkflowExecutionsInput$typeFilter": "

Specifies the type of the workflow executions to be counted.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

", + "ListClosedWorkflowExecutionsInput$typeFilter": "

If specified, only executions of the type specified in the filter are returned.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

", + "ListOpenWorkflowExecutionsInput$typeFilter": "

If specified, only executions of the type specified in the filter are returned.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.

" } }, "WorkflowTypeInfo": { "base": "

Contains information about a workflow type.

", "refs": { - "WorkflowTypeDetail$typeInfo": "

General information about the workflow type.

The status of the workflow type (returned in the WorkflowTypeInfo structure) can be one of the following.

  • REGISTERED: The type is registered and available. Workers supporting this type should be running.
  • DEPRECATED: The type was deprecated using DeprecateWorkflowType, but is still in use. You should keep workers supporting this type running. You cannot create new workflow executions of this type.
", + "WorkflowTypeDetail$typeInfo": "

General information about the workflow type.

The status of the workflow type (returned in the WorkflowTypeInfo structure) can be one of the following.

  • REGISTERED – The type is registered and available. Workers supporting this type should be running.

  • DEPRECATED – The type was deprecated using DeprecateWorkflowType, but is still in use. You should keep workers supporting this type running. You cannot create new workflow executions of this type.

", "WorkflowTypeInfoList$member": null } }, diff --git a/models/apis/swf/2012-01-25/examples-1.json b/models/apis/swf/2012-01-25/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/swf/2012-01-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/swf/2012-01-25/paginators-1.json b/models/apis/swf/2012-01-25/paginators-1.json index 892ee38b5a1..86cec203b84 100644 --- a/models/apis/swf/2012-01-25/paginators-1.json +++ b/models/apis/swf/2012-01-25/paginators-1.json @@ -1,46 +1,46 @@ { "pagination": { "GetWorkflowExecutionHistory": { - "limit_key": "maximumPageSize", "input_token": "nextPageToken", + "limit_key": "maximumPageSize", "output_token": "nextPageToken", "result_key": "events" }, "ListActivityTypes": { - "limit_key": "maximumPageSize", "input_token": "nextPageToken", + "limit_key": "maximumPageSize", "output_token": "nextPageToken", "result_key": "typeInfos" }, "ListClosedWorkflowExecutions": { - "limit_key": "maximumPageSize", "input_token": "nextPageToken", + "limit_key": "maximumPageSize", "output_token": "nextPageToken", "result_key": "executionInfos" }, "ListDomains": { - "limit_key": "maximumPageSize", "input_token": "nextPageToken", + "limit_key": "maximumPageSize", "output_token": "nextPageToken", "result_key": "domainInfos" }, "ListOpenWorkflowExecutions": { - "limit_key": "maximumPageSize", "input_token": "nextPageToken", + "limit_key": "maximumPageSize", "output_token": "nextPageToken", "result_key": "executionInfos" }, "ListWorkflowTypes": { - "limit_key": "maximumPageSize", "input_token": "nextPageToken", + "limit_key": "maximumPageSize", "output_token": "nextPageToken", "result_key": "typeInfos" }, "PollForDecisionTask": { - "limit_key": "maximumPageSize", "input_token": "nextPageToken", + "limit_key": "maximumPageSize", "output_token": "nextPageToken", "result_key": "events" } } -} +} \ No newline at end of file diff --git a/models/apis/translate/2017-07-01/api-2.json b/models/apis/translate/2017-07-01/api-2.json new file mode 100644 index 00000000000..e17694e9e94 --- /dev/null +++ b/models/apis/translate/2017-07-01/api-2.json @@ -0,0 +1,119 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-07-01", + "endpointPrefix":"translate", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"Amazon Translate", + "serviceId":"Translate", + "signatureVersion":"v4", + "signingName":"translate", + "targetPrefix":"AWSShineFrontendService_20170701", + "uid":"translate-2017-07-01" + }, + "operations":{ + "TranslateText":{ + "name":"TranslateText", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TranslateTextRequest"}, + "output":{"shape":"TranslateTextResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedLanguagePairException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceUnavailableException"} + ] + } + }, + "shapes":{ + "BoundedLengthString":{ + "type":"string", + "max":1000, + "min":1 + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true, + "fault":true + }, + "InvalidRequestException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "LanguageCodeString":{ + "type":"string", + "max":5, + "min":2 + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "String":{ + "type":"string", + "min":1 + }, + "TextSizeLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "TooManyRequestsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + }, + "TranslateTextRequest":{ + "type":"structure", + "required":[ + "Text", + "SourceLanguageCode", + "TargetLanguageCode" + ], + "members":{ + "Text":{"shape":"BoundedLengthString"}, + "SourceLanguageCode":{"shape":"LanguageCodeString"}, + "TargetLanguageCode":{"shape":"LanguageCodeString"} + } + }, + "TranslateTextResponse":{ + "type":"structure", + "required":[ + "TranslatedText", + "SourceLanguageCode", + "TargetLanguageCode" + ], + "members":{ + "TranslatedText":{"shape":"String"}, + "SourceLanguageCode":{"shape":"LanguageCodeString"}, + "TargetLanguageCode":{"shape":"LanguageCodeString"} + } + }, + "UnsupportedLanguagePairException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "exception":true + } + } +} diff --git a/models/apis/translate/2017-07-01/docs-2.json b/models/apis/translate/2017-07-01/docs-2.json new file mode 100644 index 00000000000..ab705eb9e1e --- /dev/null +++ b/models/apis/translate/2017-07-01/docs-2.json @@ -0,0 +1,76 @@ +{ + "version": "2.0", + "service": "

Provides translation between English and one of six languages, or between one of the six languages and English.

", + "operations": { + "TranslateText": "

Translates input text from the source language to the target language. You can translate between English (en) and one of the following languages, or between one of the following languages and English.

  • Arabic (ar)

  • Chinese (Simplified) (zh)

  • French (fr)

  • German (de)

  • Portuguese (pt)

  • Spanish (es)

" + }, + "shapes": { + "BoundedLengthString": { + "base": null, + "refs": { + "TranslateTextRequest$Text": "

The text to translate.

" + } + }, + "InternalServerException": { + "base": "

An internal server error occurred. Retry your request.

", + "refs": { + } + }, + "InvalidRequestException": { + "base": "

The request is invalid.

", + "refs": { + } + }, + "LanguageCodeString": { + "base": null, + "refs": { + "TranslateTextRequest$SourceLanguageCode": "

One of the supported language codes for the source text. If the TargetLanguageCode is not \"en\", the SourceLanguageCode must be \"en\".

", + "TranslateTextRequest$TargetLanguageCode": "

One of the supported language codes for the target text. If the SourceLanguageCode is not \"en\", the TargetLanguageCode must be \"en\".

", + "TranslateTextResponse$SourceLanguageCode": "

The language code for the language of the input text.

", + "TranslateTextResponse$TargetLanguageCode": "

The language code for the language of the translated text.

" + } + }, + "ServiceUnavailableException": { + "base": "

Amazon Translate is unavailable. Retry your request later.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "InternalServerException$Message": null, + "InvalidRequestException$Message": null, + "ServiceUnavailableException$Message": null, + "TextSizeLimitExceededException$Message": null, + "TooManyRequestsException$Message": null, + "TranslateTextResponse$TranslatedText": "

The text translated into the target language.

", + "UnsupportedLanguagePairException$Message": null + } + }, + "TextSizeLimitExceededException": { + "base": "

The size of the input text exceeds the length constraint for the Text field. Try again with a shorter text.

", + "refs": { + } + }, + "TooManyRequestsException": { + "base": "

The number of requests exceeds the limit. Resubmit your request later.

", + "refs": { + } + }, + "TranslateTextRequest": { + "base": null, + "refs": { + } + }, + "TranslateTextResponse": { + "base": null, + "refs": { + } + }, + "UnsupportedLanguagePairException": { + "base": "

Amazon Translate cannot translate input text in the source language into this target language. For more information, see how-to-error-msg.

", + "refs": { + } + } + } +} diff --git a/models/apis/translate/2017-07-01/examples-1.json b/models/apis/translate/2017-07-01/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/translate/2017-07-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/translate/2017-07-01/paginators-1.json b/models/apis/translate/2017-07-01/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/translate/2017-07-01/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/waf-regional/2016-11-28/api-2.json b/models/apis/waf-regional/2016-11-28/api-2.json index 4145e368cf3..29546f09377 100644 --- a/models/apis/waf-regional/2016-11-28/api-2.json +++ b/models/apis/waf-regional/2016-11-28/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"WAF Regional", "serviceFullName":"AWS WAF Regional", + "serviceId":"WAF Regional", "signatureVersion":"v4", "targetPrefix":"AWSWAF_Regional_20161128", "uid":"waf-regional-2016-11-28" @@ -45,6 +46,23 @@ {"shape":"WAFLimitsExceededException"} ] }, + "CreateGeoMatchSet":{ + "name":"CreateGeoMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGeoMatchSetRequest"}, + "output":{"shape":"CreateGeoMatchSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFDisallowedNameException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, "CreateIPSet":{ "name":"CreateIPSet", "http":{ @@ -78,6 +96,36 @@ {"shape":"WAFLimitsExceededException"} ] }, + "CreateRegexMatchSet":{ + "name":"CreateRegexMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRegexMatchSetRequest"}, + "output":{"shape":"CreateRegexMatchSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFDisallowedNameException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, + "CreateRegexPatternSet":{ + "name":"CreateRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRegexPatternSetRequest"}, + "output":{"shape":"CreateRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFDisallowedNameException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, "CreateRule":{ "name":"CreateRule", "http":{ @@ -94,6 +142,21 @@ {"shape":"WAFLimitsExceededException"} ] }, + "CreateRuleGroup":{ + "name":"CreateRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRuleGroupRequest"}, + "output":{"shape":"CreateRuleGroupResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFDisallowedNameException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, "CreateSizeConstraintSet":{ "name":"CreateSizeConstraintSet", "http":{ @@ -179,6 +242,23 @@ {"shape":"WAFNonEmptyEntityException"} ] }, + "DeleteGeoMatchSet":{ + "name":"DeleteGeoMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGeoMatchSetRequest"}, + "output":{"shape":"DeleteGeoMatchSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFReferencedItemException"}, + {"shape":"WAFNonEmptyEntityException"} + ] + }, "DeleteIPSet":{ "name":"DeleteIPSet", "http":{ @@ -213,6 +293,40 @@ {"shape":"WAFNonEmptyEntityException"} ] }, + "DeleteRegexMatchSet":{ + "name":"DeleteRegexMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRegexMatchSetRequest"}, + "output":{"shape":"DeleteRegexMatchSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFReferencedItemException"}, + {"shape":"WAFStaleDataException"}, + {"shape":"WAFNonEmptyEntityException"} + ] + }, + "DeleteRegexPatternSet":{ + "name":"DeleteRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRegexPatternSetRequest"}, + "output":{"shape":"DeleteRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFReferencedItemException"}, + {"shape":"WAFStaleDataException"}, + {"shape":"WAFNonEmptyEntityException"} + ] + }, "DeleteRule":{ "name":"DeleteRule", "http":{ @@ -230,6 +344,22 @@ {"shape":"WAFNonEmptyEntityException"} ] }, + "DeleteRuleGroup":{ + "name":"DeleteRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRuleGroupRequest"}, + "output":{"shape":"DeleteRuleGroupResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFReferencedItemException"}, + {"shape":"WAFNonEmptyEntityException"} + ] + }, "DeleteSizeConstraintSet":{ "name":"DeleteSizeConstraintSet", "http":{ @@ -352,6 +482,20 @@ {"shape":"WAFInternalErrorException"} ] }, + "GetGeoMatchSet":{ + "name":"GetGeoMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetGeoMatchSetRequest"}, + "output":{"shape":"GetGeoMatchSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, "GetIPSet":{ "name":"GetIPSet", "http":{ @@ -395,6 +539,34 @@ {"shape":"WAFInvalidParameterException"} ] }, + "GetRegexMatchSet":{ + "name":"GetRegexMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRegexMatchSetRequest"}, + "output":{"shape":"GetRegexMatchSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, + "GetRegexPatternSet":{ + "name":"GetRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRegexPatternSetRequest"}, + "output":{"shape":"GetRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, "GetRule":{ "name":"GetRule", "http":{ @@ -409,6 +581,19 @@ {"shape":"WAFNonexistentItemException"} ] }, + "GetRuleGroup":{ + "name":"GetRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRuleGroupRequest"}, + "output":{"shape":"GetRuleGroupResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, "GetSampledRequests":{ "name":"GetSampledRequests", "http":{ @@ -494,6 +679,20 @@ {"shape":"WAFNonexistentItemException"} ] }, + "ListActivatedRulesInRuleGroup":{ + "name":"ListActivatedRulesInRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListActivatedRulesInRuleGroupRequest"}, + "output":{"shape":"ListActivatedRulesInRuleGroupResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, "ListByteMatchSets":{ "name":"ListByteMatchSets", "http":{ @@ -507,6 +706,19 @@ {"shape":"WAFInvalidAccountException"} ] }, + "ListGeoMatchSets":{ + "name":"ListGeoMatchSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGeoMatchSetsRequest"}, + "output":{"shape":"ListGeoMatchSetsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"} + ] + }, "ListIPSets":{ "name":"ListIPSets", "http":{ @@ -533,6 +745,32 @@ {"shape":"WAFInvalidAccountException"} ] }, + "ListRegexMatchSets":{ + "name":"ListRegexMatchSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRegexMatchSetsRequest"}, + "output":{"shape":"ListRegexMatchSetsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"} + ] + }, + "ListRegexPatternSets":{ + "name":"ListRegexPatternSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRegexPatternSetsRequest"}, + "output":{"shape":"ListRegexPatternSetsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"} + ] + }, "ListResourcesForWebACL":{ "name":"ListResourcesForWebACL", "http":{ @@ -547,6 +785,18 @@ {"shape":"WAFNonexistentItemException"} ] }, + "ListRuleGroups":{ + "name":"ListRuleGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRuleGroupsRequest"}, + "output":{"shape":"ListRuleGroupsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"} + ] + }, "ListRules":{ "name":"ListRules", "http":{ @@ -586,6 +836,19 @@ {"shape":"WAFInvalidAccountException"} ] }, + "ListSubscribedRuleGroups":{ + "name":"ListSubscribedRuleGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSubscribedRuleGroupsRequest"}, + "output":{"shape":"ListSubscribedRuleGroupsResponse"}, + "errors":[ + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFInternalErrorException"} + ] + }, "ListWebACLs":{ "name":"ListWebACLs", "http":{ @@ -631,6 +894,26 @@ {"shape":"WAFLimitsExceededException"} ] }, + "UpdateGeoMatchSet":{ + "name":"UpdateGeoMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGeoMatchSetRequest"}, + "output":{"shape":"UpdateGeoMatchSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFInvalidOperationException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentContainerException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFReferencedItemException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, "UpdateIPSet":{ "name":"UpdateIPSet", "http":{ @@ -671,6 +954,44 @@ {"shape":"WAFLimitsExceededException"} ] }, + "UpdateRegexMatchSet":{ + "name":"UpdateRegexMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRegexMatchSetRequest"}, + "output":{"shape":"UpdateRegexMatchSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFDisallowedNameException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFNonexistentContainerException"}, + {"shape":"WAFInvalidOperationException"}, + {"shape":"WAFInvalidAccountException"} + ] + }, + "UpdateRegexPatternSet":{ + "name":"UpdateRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRegexPatternSetRequest"}, + "output":{"shape":"UpdateRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFNonexistentContainerException"}, + {"shape":"WAFInvalidOperationException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFInvalidRegexPatternException"} + ] + }, "UpdateRule":{ "name":"UpdateRule", "http":{ @@ -691,6 +1012,24 @@ {"shape":"WAFLimitsExceededException"} ] }, + "UpdateRuleGroup":{ + "name":"UpdateRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRuleGroupRequest"}, + "output":{"shape":"UpdateRuleGroupResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentContainerException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFInvalidOperationException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, "UpdateSizeConstraintSet":{ "name":"UpdateSizeConstraintSet", "http":{ @@ -747,7 +1086,8 @@ {"shape":"WAFNonexistentContainerException"}, {"shape":"WAFNonexistentItemException"}, {"shape":"WAFReferencedItemException"}, - {"shape":"WAFLimitsExceededException"} + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFSubscriptionNotFoundException"} ] }, "UpdateXssMatchSet":{ @@ -776,13 +1116,13 @@ "type":"structure", "required":[ "Priority", - "RuleId", - "Action" + "RuleId" ], "members":{ "Priority":{"shape":"RulePriority"}, "RuleId":{"shape":"ResourceId"}, "Action":{"shape":"WafAction"}, + "OverrideAction":{"shape":"WafOverrideAction"}, "Type":{"shape":"WafRuleType"} } }, @@ -846,7 +1186,8 @@ }, "ByteMatchSetUpdates":{ "type":"list", - "member":{"shape":"ByteMatchSetUpdate"} + "member":{"shape":"ByteMatchSetUpdate"}, + "min":1 }, "ByteMatchTargetString":{"type":"blob"}, "ByteMatchTuple":{ @@ -917,7 +1258,7 @@ "ChangeToken":{"shape":"ChangeToken"} } }, - "CreateIPSetRequest":{ + "CreateGeoMatchSetRequest":{ "type":"structure", "required":[ "Name", @@ -928,19 +1269,37 @@ "ChangeToken":{"shape":"ChangeToken"} } }, - "CreateIPSetResponse":{ + "CreateGeoMatchSetResponse":{ "type":"structure", "members":{ - "IPSet":{"shape":"IPSet"}, + "GeoMatchSet":{"shape":"GeoMatchSet"}, "ChangeToken":{"shape":"ChangeToken"} } }, - "CreateRateBasedRuleRequest":{ + "CreateIPSetRequest":{ "type":"structure", "required":[ "Name", - "MetricName", - "RateKey", + "ChangeToken" + ], + "members":{ + "Name":{"shape":"ResourceName"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateIPSetResponse":{ + "type":"structure", + "members":{ + "IPSet":{"shape":"IPSet"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRateBasedRuleRequest":{ + "type":"structure", + "required":[ + "Name", + "MetricName", + "RateKey", "RateLimit", "ChangeToken" ], @@ -959,6 +1318,62 @@ "ChangeToken":{"shape":"ChangeToken"} } }, + "CreateRegexMatchSetRequest":{ + "type":"structure", + "required":[ + "Name", + "ChangeToken" + ], + "members":{ + "Name":{"shape":"ResourceName"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRegexMatchSetResponse":{ + "type":"structure", + "members":{ + "RegexMatchSet":{"shape":"RegexMatchSet"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRegexPatternSetRequest":{ + "type":"structure", + "required":[ + "Name", + "ChangeToken" + ], + "members":{ + "Name":{"shape":"ResourceName"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "RegexPatternSet":{"shape":"RegexPatternSet"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRuleGroupRequest":{ + "type":"structure", + "required":[ + "Name", + "MetricName", + "ChangeToken" + ], + "members":{ + "Name":{"shape":"ResourceName"}, + "MetricName":{"shape":"MetricName"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRuleGroupResponse":{ + "type":"structure", + "members":{ + "RuleGroup":{"shape":"RuleGroup"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, "CreateRuleRequest":{ "type":"structure", "required":[ @@ -1072,6 +1487,23 @@ "ChangeToken":{"shape":"ChangeToken"} } }, + "DeleteGeoMatchSetRequest":{ + "type":"structure", + "required":[ + "GeoMatchSetId", + "ChangeToken" + ], + "members":{ + "GeoMatchSetId":{"shape":"ResourceId"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteGeoMatchSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, "DeleteIPSetRequest":{ "type":"structure", "required":[ @@ -1106,6 +1538,57 @@ "ChangeToken":{"shape":"ChangeToken"} } }, + "DeleteRegexMatchSetRequest":{ + "type":"structure", + "required":[ + "RegexMatchSetId", + "ChangeToken" + ], + "members":{ + "RegexMatchSetId":{"shape":"ResourceId"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteRegexMatchSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteRegexPatternSetRequest":{ + "type":"structure", + "required":[ + "RegexPatternSetId", + "ChangeToken" + ], + "members":{ + "RegexPatternSetId":{"shape":"ResourceId"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteRuleGroupRequest":{ + "type":"structure", + "required":[ + "RuleGroupId", + "ChangeToken" + ], + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteRuleGroupResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, "DeleteRuleRequest":{ "type":"structure", "required":[ @@ -1211,6 +1694,322 @@ "Data":{"shape":"MatchFieldData"} } }, + "GeoMatchConstraint":{ + "type":"structure", + "required":[ + "Type", + "Value" + ], + "members":{ + "Type":{"shape":"GeoMatchConstraintType"}, + "Value":{"shape":"GeoMatchConstraintValue"} + } + }, + "GeoMatchConstraintType":{ + "type":"string", + "enum":["Country"] + }, + "GeoMatchConstraintValue":{ + "type":"string", + "enum":[ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "KH", + "CM", + "CA", + "CV", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KP", + "KR", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MK", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SZ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "US", + "UM", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ] + }, + "GeoMatchConstraints":{ + "type":"list", + "member":{"shape":"GeoMatchConstraint"} + }, + "GeoMatchSet":{ + "type":"structure", + "required":[ + "GeoMatchSetId", + "GeoMatchConstraints" + ], + "members":{ + "GeoMatchSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"}, + "GeoMatchConstraints":{"shape":"GeoMatchConstraints"} + } + }, + "GeoMatchSetSummaries":{ + "type":"list", + "member":{"shape":"GeoMatchSetSummary"} + }, + "GeoMatchSetSummary":{ + "type":"structure", + "required":[ + "GeoMatchSetId", + "Name" + ], + "members":{ + "GeoMatchSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"} + } + }, + "GeoMatchSetUpdate":{ + "type":"structure", + "required":[ + "Action", + "GeoMatchConstraint" + ], + "members":{ + "Action":{"shape":"ChangeAction"}, + "GeoMatchConstraint":{"shape":"GeoMatchConstraint"} + } + }, + "GeoMatchSetUpdates":{ + "type":"list", + "member":{"shape":"GeoMatchSetUpdate"}, + "min":1 + }, "GetByteMatchSetRequest":{ "type":"structure", "required":["ByteMatchSetId"], @@ -1248,6 +2047,19 @@ "ChangeTokenStatus":{"shape":"ChangeTokenStatus"} } }, + "GetGeoMatchSetRequest":{ + "type":"structure", + "required":["GeoMatchSetId"], + "members":{ + "GeoMatchSetId":{"shape":"ResourceId"} + } + }, + "GetGeoMatchSetResponse":{ + "type":"structure", + "members":{ + "GeoMatchSet":{"shape":"GeoMatchSet"} + } + }, "GetIPSetRequest":{ "type":"structure", "required":["IPSetId"], @@ -1289,6 +2101,45 @@ "Rule":{"shape":"RateBasedRule"} } }, + "GetRegexMatchSetRequest":{ + "type":"structure", + "required":["RegexMatchSetId"], + "members":{ + "RegexMatchSetId":{"shape":"ResourceId"} + } + }, + "GetRegexMatchSetResponse":{ + "type":"structure", + "members":{ + "RegexMatchSet":{"shape":"RegexMatchSet"} + } + }, + "GetRegexPatternSetRequest":{ + "type":"structure", + "required":["RegexPatternSetId"], + "members":{ + "RegexPatternSetId":{"shape":"ResourceId"} + } + }, + "GetRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "RegexPatternSet":{"shape":"RegexPatternSet"} + } + }, + "GetRuleGroupRequest":{ + "type":"structure", + "required":["RuleGroupId"], + "members":{ + "RuleGroupId":{"shape":"ResourceId"} + } + }, + "GetRuleGroupResponse":{ + "type":"structure", + "members":{ + "RuleGroup":{"shape":"RuleGroup"} + } + }, "GetRuleRequest":{ "type":"structure", "required":["RuleId"], @@ -1484,9 +2335,25 @@ }, "IPSetUpdates":{ "type":"list", - "member":{"shape":"IPSetUpdate"} + "member":{"shape":"IPSetUpdate"}, + "min":1 }, "IPString":{"type":"string"}, + "ListActivatedRulesInRuleGroupRequest":{ + "type":"structure", + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListActivatedRulesInRuleGroupResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "ActivatedRules":{"shape":"ActivatedRules"} + } + }, "ListByteMatchSetsRequest":{ "type":"structure", "members":{ @@ -1501,6 +2368,20 @@ "ByteMatchSets":{"shape":"ByteMatchSetSummaries"} } }, + "ListGeoMatchSetsRequest":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListGeoMatchSetsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "GeoMatchSets":{"shape":"GeoMatchSetSummaries"} + } + }, "ListIPSetsRequest":{ "type":"structure", "members":{ @@ -1529,6 +2410,34 @@ "Rules":{"shape":"RuleSummaries"} } }, + "ListRegexMatchSetsRequest":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListRegexMatchSetsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "RegexMatchSets":{"shape":"RegexMatchSetSummaries"} + } + }, + "ListRegexPatternSetsRequest":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListRegexPatternSetsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "RegexPatternSets":{"shape":"RegexPatternSetSummaries"} + } + }, "ListResourcesForWebACLRequest":{ "type":"structure", "required":["WebACLId"], @@ -1542,6 +2451,20 @@ "ResourceArns":{"shape":"ResourceArns"} } }, + "ListRuleGroupsRequest":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListRuleGroupsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "RuleGroups":{"shape":"RuleGroupSummaries"} + } + }, "ListRulesRequest":{ "type":"structure", "members":{ @@ -1584,6 +2507,20 @@ "SqlInjectionMatchSets":{"shape":"SqlInjectionMatchSetSummaries"} } }, + "ListSubscribedRuleGroupsRequest":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListSubscribedRuleGroupsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "RuleGroups":{"shape":"SubscribedRuleGroupSummaries"} + } + }, "ListWebACLsRequest":{ "type":"structure", "members":{ @@ -1644,6 +2581,7 @@ "enum":[ "CHANGE_ACTION", "WAF_ACTION", + "WAF_OVERRIDE_ACTION", "PREDICATE_TYPE", "IPSET_TYPE", "BYTE_MATCH_FIELD_TYPE", @@ -1651,6 +2589,8 @@ "BYTE_MATCH_TEXT_TRANSFORMATION", "BYTE_MATCH_POSITIONAL_CONSTRAINT", "SIZE_CONSTRAINT_COMPARISON_OPERATOR", + "GEO_MATCH_LOCATION_TYPE", + "GEO_MATCH_LOCATION_VALUE", "RATE_KEY", "RULE_TYPE", "NEXT_MARKER" @@ -1697,8 +2637,10 @@ "IPMatch", "ByteMatch", "SqlInjectionMatch", + "GeoMatch", "SizeConstraint", - "XssMatch" + "XssMatch", + "RegexMatch" ] }, "Predicates":{ @@ -1730,6 +2672,114 @@ "type":"long", "min":2000 }, + "RegexMatchSet":{ + "type":"structure", + "members":{ + "RegexMatchSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"}, + "RegexMatchTuples":{"shape":"RegexMatchTuples"} + } + }, + "RegexMatchSetSummaries":{ + "type":"list", + "member":{"shape":"RegexMatchSetSummary"} + }, + "RegexMatchSetSummary":{ + "type":"structure", + "required":[ + "RegexMatchSetId", + "Name" + ], + "members":{ + "RegexMatchSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"} + } + }, + "RegexMatchSetUpdate":{ + "type":"structure", + "required":[ + "Action", + "RegexMatchTuple" + ], + "members":{ + "Action":{"shape":"ChangeAction"}, + "RegexMatchTuple":{"shape":"RegexMatchTuple"} + } + }, + "RegexMatchSetUpdates":{ + "type":"list", + "member":{"shape":"RegexMatchSetUpdate"}, + "min":1 + }, + "RegexMatchTuple":{ + "type":"structure", + "required":[ + "FieldToMatch", + "TextTransformation", + "RegexPatternSetId" + ], + "members":{ + "FieldToMatch":{"shape":"FieldToMatch"}, + "TextTransformation":{"shape":"TextTransformation"}, + "RegexPatternSetId":{"shape":"ResourceId"} + } + }, + "RegexMatchTuples":{ + "type":"list", + "member":{"shape":"RegexMatchTuple"} + }, + "RegexPatternSet":{ + "type":"structure", + "required":[ + "RegexPatternSetId", + "RegexPatternStrings" + ], + "members":{ + "RegexPatternSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"}, + "RegexPatternStrings":{"shape":"RegexPatternStrings"} + } + }, + "RegexPatternSetSummaries":{ + "type":"list", + "member":{"shape":"RegexPatternSetSummary"} + }, + "RegexPatternSetSummary":{ + "type":"structure", + "required":[ + "RegexPatternSetId", + "Name" + ], + "members":{ + "RegexPatternSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"} + } + }, + "RegexPatternSetUpdate":{ + "type":"structure", + "required":[ + "Action", + "RegexPatternString" + ], + "members":{ + "Action":{"shape":"ChangeAction"}, + "RegexPatternString":{"shape":"RegexPatternString"} + } + }, + "RegexPatternSetUpdates":{ + "type":"list", + "member":{"shape":"RegexPatternSetUpdate"}, + "min":1 + }, + "RegexPatternString":{ + "type":"string", + "min":1 + }, + "RegexPatternStrings":{ + "type":"list", + "member":{"shape":"RegexPatternString"}, + "max":10 + }, "ResourceArn":{ "type":"string", "max":1224, @@ -1762,6 +2812,46 @@ "Predicates":{"shape":"Predicates"} } }, + "RuleGroup":{ + "type":"structure", + "required":["RuleGroupId"], + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"}, + "MetricName":{"shape":"MetricName"} + } + }, + "RuleGroupSummaries":{ + "type":"list", + "member":{"shape":"RuleGroupSummary"} + }, + "RuleGroupSummary":{ + "type":"structure", + "required":[ + "RuleGroupId", + "Name" + ], + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"} + } + }, + "RuleGroupUpdate":{ + "type":"structure", + "required":[ + "Action", + "ActivatedRule" + ], + "members":{ + "Action":{"shape":"ChangeAction"}, + "ActivatedRule":{"shape":"ActivatedRule"} + } + }, + "RuleGroupUpdates":{ + "type":"list", + "member":{"shape":"RuleGroupUpdate"}, + "min":1 + }, "RulePriority":{"type":"integer"}, "RuleSummaries":{ "type":"list", @@ -1807,7 +2897,8 @@ "Request":{"shape":"HTTPRequest"}, "Weight":{"shape":"SampleWeight"}, "Timestamp":{"shape":"Timestamp"}, - "Action":{"shape":"Action"} + "Action":{"shape":"Action"}, + "RuleWithinRuleGroup":{"shape":"ResourceId"} } }, "SampledHTTPRequests":{ @@ -1874,7 +2965,8 @@ }, "SizeConstraintSetUpdates":{ "type":"list", - "member":{"shape":"SizeConstraintSetUpdate"} + "member":{"shape":"SizeConstraintSetUpdate"}, + "min":1 }, "SizeConstraints":{ "type":"list", @@ -1920,7 +3012,8 @@ }, "SqlInjectionMatchSetUpdates":{ "type":"list", - "member":{"shape":"SqlInjectionMatchSetUpdate"} + "member":{"shape":"SqlInjectionMatchSetUpdate"}, + "min":1 }, "SqlInjectionMatchTuple":{ "type":"structure", @@ -1937,6 +3030,23 @@ "type":"list", "member":{"shape":"SqlInjectionMatchTuple"} }, + "SubscribedRuleGroupSummaries":{ + "type":"list", + "member":{"shape":"SubscribedRuleGroupSummary"} + }, + "SubscribedRuleGroupSummary":{ + "type":"structure", + "required":[ + "RuleGroupId", + "Name", + "MetricName" + ], + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"}, + "MetricName":{"shape":"MetricName"} + } + }, "TextTransformation":{ "type":"string", "enum":[ @@ -1980,6 +3090,25 @@ "ChangeToken":{"shape":"ChangeToken"} } }, + "UpdateGeoMatchSetRequest":{ + "type":"structure", + "required":[ + "GeoMatchSetId", + "ChangeToken", + "Updates" + ], + "members":{ + "GeoMatchSetId":{"shape":"ResourceId"}, + "ChangeToken":{"shape":"ChangeToken"}, + "Updates":{"shape":"GeoMatchSetUpdates"} + } + }, + "UpdateGeoMatchSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, "UpdateIPSetRequest":{ "type":"structure", "required":[ @@ -2020,6 +3149,63 @@ "ChangeToken":{"shape":"ChangeToken"} } }, + "UpdateRegexMatchSetRequest":{ + "type":"structure", + "required":[ + "RegexMatchSetId", + "Updates", + "ChangeToken" + ], + "members":{ + "RegexMatchSetId":{"shape":"ResourceId"}, + "Updates":{"shape":"RegexMatchSetUpdates"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "UpdateRegexMatchSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "UpdateRegexPatternSetRequest":{ + "type":"structure", + "required":[ + "RegexPatternSetId", + "Updates", + "ChangeToken" + ], + "members":{ + "RegexPatternSetId":{"shape":"ResourceId"}, + "Updates":{"shape":"RegexPatternSetUpdates"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "UpdateRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "UpdateRuleGroupRequest":{ + "type":"structure", + "required":[ + "RuleGroupId", + "Updates", + "ChangeToken" + ], + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "Updates":{"shape":"RuleGroupUpdates"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "UpdateRuleGroupResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, "UpdateRuleRequest":{ "type":"structure", "required":[ @@ -2152,6 +3338,13 @@ }, "exception":true }, + "WAFInvalidRegexPatternException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "exception":true + }, "WAFLimitsExceededException":{ "type":"structure", "members":{ @@ -2194,6 +3387,13 @@ }, "exception":true }, + "WAFSubscriptionNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "exception":true + }, "WAFUnavailableEntityException":{ "type":"structure", "members":{ @@ -2216,11 +3416,26 @@ "COUNT" ] }, + "WafOverrideAction":{ + "type":"structure", + "required":["Type"], + "members":{ + "Type":{"shape":"WafOverrideActionType"} + } + }, + "WafOverrideActionType":{ + "type":"string", + "enum":[ + "NONE", + "COUNT" + ] + }, "WafRuleType":{ "type":"string", "enum":[ "REGULAR", - "RATE_BASED" + "RATE_BASED", + "GROUP" ] }, "WebACL":{ @@ -2308,7 +3523,8 @@ }, "XssMatchSetUpdates":{ "type":"list", - "member":{"shape":"XssMatchSetUpdate"} + "member":{"shape":"XssMatchSetUpdate"}, + "min":1 }, "XssMatchTuple":{ "type":"structure", diff --git a/models/apis/waf-regional/2016-11-28/docs-2.json b/models/apis/waf-regional/2016-11-28/docs-2.json index 30c0ec17062..65130477547 100644 --- a/models/apis/waf-regional/2016-11-28/docs-2.json +++ b/models/apis/waf-regional/2016-11-28/docs-2.json @@ -4,17 +4,25 @@ "operations": { "AssociateWebACL": "

Associates a web ACL with a resource.

", "CreateByteMatchSet": "

Creates a ByteMatchSet. You then use UpdateByteMatchSet to identify the part of a web request that you want AWS WAF to inspect, such as the values of the User-Agent header or the query string. For example, you can create a ByteMatchSet that matches any requests with User-Agent headers that contain the string BadBot. You can then configure AWS WAF to reject those requests.

To create and configure a ByteMatchSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateByteMatchSet request.

  2. Submit a CreateByteMatchSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateByteMatchSet request.

  4. Submit an UpdateByteMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "CreateGeoMatchSet": "

Creates an GeoMatchSet, which you use to specify which web requests you want to allow or block based on the country that the requests originate from. For example, if you're receiving a lot of requests from one or more countries and you want to block the requests, you can create an GeoMatchSet that contains those countries and then configure AWS WAF to block the requests.

To create and configure a GeoMatchSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateGeoMatchSet request.

  2. Submit a CreateGeoMatchSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateGeoMatchSet request.

  4. Submit an UpdateGeoMatchSetSet request to specify the countries that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateIPSet": "

Creates an IPSet, which you use to specify which web requests you want to allow or block based on the IP addresses that the requests originate from. For example, if you're receiving a lot of requests from one or more individual IP addresses or one or more ranges of IP addresses and you want to block the requests, you can create an IPSet that contains those IP addresses and then configure AWS WAF to block the requests.

To create and configure an IPSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateIPSet request.

  2. Submit a CreateIPSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request.

  4. Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateRateBasedRule": "

Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies the maximum number of requests that AWS WAF allows from a specified IP address in a five-minute period. The RateBasedRule also contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to count or block if these requests exceed the RateLimit.

If you add more than one predicate to a RateBasedRule, a request not only must exceed the RateLimit, but it also must match all the specifications to be counted or blocked. For example, suppose you add the following to a RateBasedRule:

  • An IPSet that matches the IP address 192.0.2.44/32

  • A ByteMatchSet that matches BadBot in the User-Agent header

Further, you specify a RateLimit of 15,000.

You then add the RateBasedRule to a WebACL and specify that you want to block requests that meet the conditions in the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. Further, requests that match these two conditions must be received at a rate of more than 15,000 requests every five minutes. If both conditions are met and the rate is exceeded, AWS WAF blocks the requests. If the rate drops below 15,000 for a five-minute period, AWS WAF no longer blocks the requests.

As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a RateBasedRule:

  • A ByteMatchSet with FieldToMatch of URI

  • A PositionalConstraint of STARTS_WITH

  • A TargetString of login

Further, you specify a RateLimit of 15,000.

By adding this RateBasedRule to a WebACL, you could limit requests to your login page without affecting the rest of your site.

To create and configure a RateBasedRule, perform the following steps:

  1. Create and update the predicates that you want to include in the rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request.

  3. Submit a CreateRateBasedRule request.

  4. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request.

  5. Submit an UpdateRateBasedRule request to specify the predicates that you want to include in the rule.

  6. Create and update a WebACL that contains the RateBasedRule. For more information, see CreateWebACL.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "CreateRegexMatchSet": "

Creates a RegexMatchSet. You then use UpdateRegexMatchSet to identify the part of a web request that you want AWS WAF to inspect, such as the values of the User-Agent header or the query string. For example, you can create a RegexMatchSet that contains a RegexMatchTuple that looks for any requests with User-Agent headers that match a RegexPatternSet with pattern B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.

To create and configure a RegexMatchSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRegexMatchSet request.

  2. Submit a CreateRegexMatchSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexMatchSet request.

  4. Submit an UpdateRegexMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value, using a RegexPatternSet, that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "CreateRegexPatternSet": "

Creates a RegexPatternSet. You then use UpdateRegexPatternSet to specify the regular expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.

To create and configure a RegexPatternSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRegexPatternSet request.

  2. Submit a CreateRegexPatternSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexPatternSet request.

  4. Submit an UpdateRegexPatternSet request to specify the string that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateRule": "

Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to block. If you add more than one predicate to a Rule, a request must match all of the specifications to be allowed or blocked. For example, suppose you add the following to a Rule:

  • An IPSet that matches the IP address 192.0.2.44/32

  • A ByteMatchSet that matches BadBot in the User-Agent header

You then add the Rule to a WebACL and specify that you want to blocks requests that satisfy the Rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot.

To create and configure a Rule, perform the following steps:

  1. Create and update the predicates that you want to include in the Rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request.

  3. Submit a CreateRule request.

  4. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request.

  5. Submit an UpdateRule request to specify the predicates that you want to include in the Rule.

  6. Create and update a WebACL that contains the Rule. For more information, see CreateWebACL.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "CreateRuleGroup": "

Creates a RuleGroup. A rule group is a collection of predefined rules that you add to a web ACL. You use UpdateRuleGroup to add rules to the rule group.

Rule groups are subject to the following limits:

  • Three rule groups per account. You can request an increase to this limit by contacting customer support.

  • One rule group per web ACL.

  • Ten rules per rule group.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateSizeConstraintSet": "

Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify the part of a web request that you want AWS WAF to check for length, such as the length of the User-Agent header or the length of the query string. For example, you can create a SizeConstraintSet that matches any requests that have a query string that is longer than 100 bytes. You can then configure AWS WAF to reject those requests.

To create and configure a SizeConstraintSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateSizeConstraintSet request.

  2. Submit a CreateSizeConstraintSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateSizeConstraintSet request.

  4. Submit an UpdateSizeConstraintSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateSqlInjectionMatchSet": "

Creates a SqlInjectionMatchSet, which you use to allow, block, or count requests that contain snippets of SQL code in a specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings.

To create and configure a SqlInjectionMatchSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateSqlInjectionMatchSet request.

  2. Submit a CreateSqlInjectionMatchSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateSqlInjectionMatchSet request.

  4. Submit an UpdateSqlInjectionMatchSet request to specify the parts of web requests in which you want to allow, block, or count malicious SQL code.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateWebACL": "

Creates a WebACL, which contains the Rules that identify the CloudFront web requests that you want to allow, block, or count. AWS WAF evaluates Rules in order based on the value of Priority for each Rule.

You also specify a default action, either ALLOW or BLOCK. If a web request doesn't match any of the Rules in a WebACL, AWS WAF responds to the request with the default action.

To create and configure a WebACL, perform the following steps:

  1. Create and update the ByteMatchSet objects and other predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.

  2. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateWebACL request.

  4. Submit a CreateWebACL request.

  5. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request.

  6. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution.

For more information about how to use the AWS WAF API, see the AWS WAF Developer Guide.

", "CreateXssMatchSet": "

Creates an XssMatchSet, which you use to allow, block, or count requests that contain cross-site scripting attacks in the specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings.

To create and configure an XssMatchSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateXssMatchSet request.

  2. Submit a CreateXssMatchSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateXssMatchSet request.

  4. Submit an UpdateXssMatchSet request to specify the parts of web requests in which you want to allow, block, or count cross-site scripting attacks.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "DeleteByteMatchSet": "

Permanently deletes a ByteMatchSet. You can't delete a ByteMatchSet if it's still used in any Rules or if it still includes any ByteMatchTuple objects (any filters).

If you just want to remove a ByteMatchSet from a Rule, use UpdateRule.

To permanently delete a ByteMatchSet, perform the following steps:

  1. Update the ByteMatchSet to remove filters, if any. For more information, see UpdateByteMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteByteMatchSet request.

  3. Submit a DeleteByteMatchSet request.

", + "DeleteGeoMatchSet": "

Permanently deletes a GeoMatchSet. You can't delete a GeoMatchSet if it's still used in any Rules or if it still includes any countries.

If you just want to remove a GeoMatchSet from a Rule, use UpdateRule.

To permanently delete a GeoMatchSet from AWS WAF, perform the following steps:

  1. Update the GeoMatchSet to remove any countries. For more information, see UpdateGeoMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteGeoMatchSet request.

  3. Submit a DeleteGeoMatchSet request.

", "DeleteIPSet": "

Permanently deletes an IPSet. You can't delete an IPSet if it's still used in any Rules or if it still includes any IP addresses.

If you just want to remove an IPSet from a Rule, use UpdateRule.

To permanently delete an IPSet from AWS WAF, perform the following steps:

  1. Update the IPSet to remove IP address ranges, if any. For more information, see UpdateIPSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteIPSet request.

  3. Submit a DeleteIPSet request.

", "DeleteRateBasedRule": "

Permanently deletes a RateBasedRule. You can't delete a rule if it's still used in any WebACL objects or if it still includes any predicates, such as ByteMatchSet objects.

If you just want to remove a rule from a WebACL, use UpdateWebACL.

To permanently delete a RateBasedRule from AWS WAF, perform the following steps:

  1. Update the RateBasedRule to remove predicates, if any. For more information, see UpdateRateBasedRule.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRateBasedRule request.

  3. Submit a DeleteRateBasedRule request.

", + "DeleteRegexMatchSet": "

Permanently deletes a RegexMatchSet. You can't delete a RegexMatchSet if it's still used in any Rules or if it still includes any RegexMatchTuples objects (any filters).

If you just want to remove a RegexMatchSet from a Rule, use UpdateRule.

To permanently delete a RegexMatchSet, perform the following steps:

  1. Update the RegexMatchSet to remove filters, if any. For more information, see UpdateRegexMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRegexMatchSet request.

  3. Submit a DeleteRegexMatchSet request.

", + "DeleteRegexPatternSet": "

Permanently deletes a RegexPatternSet. You can't delete a RegexPatternSet if it's still used in any RegexMatchSet or if the RegexPatternSet is not empty.

", "DeleteRule": "

Permanently deletes a Rule. You can't delete a Rule if it's still used in any WebACL objects or if it still includes any predicates, such as ByteMatchSet objects.

If you just want to remove a Rule from a WebACL, use UpdateWebACL.

To permanently delete a Rule from AWS WAF, perform the following steps:

  1. Update the Rule to remove predicates, if any. For more information, see UpdateRule.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRule request.

  3. Submit a DeleteRule request.

", + "DeleteRuleGroup": "

Permanently deletes a RuleGroup. You can't delete a RuleGroup if it's still used in any WebACL objects or if it still includes any rules.

If you just want to remove a RuleGroup from a WebACL, use UpdateWebACL.

To permanently delete a RuleGroup from AWS WAF, perform the following steps:

  1. Update the RuleGroup to remove rules, if any. For more information, see UpdateRuleGroup.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRuleGroup request.

  3. Submit a DeleteRuleGroup request.

", "DeleteSizeConstraintSet": "

Permanently deletes a SizeConstraintSet. You can't delete a SizeConstraintSet if it's still used in any Rules or if it still includes any SizeConstraint objects (any filters).

If you just want to remove a SizeConstraintSet from a Rule, use UpdateRule.

To permanently delete a SizeConstraintSet, perform the following steps:

  1. Update the SizeConstraintSet to remove filters, if any. For more information, see UpdateSizeConstraintSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteSizeConstraintSet request.

  3. Submit a DeleteSizeConstraintSet request.

", "DeleteSqlInjectionMatchSet": "

Permanently deletes a SqlInjectionMatchSet. You can't delete a SqlInjectionMatchSet if it's still used in any Rules or if it still contains any SqlInjectionMatchTuple objects.

If you just want to remove a SqlInjectionMatchSet from a Rule, use UpdateRule.

To permanently delete a SqlInjectionMatchSet from AWS WAF, perform the following steps:

  1. Update the SqlInjectionMatchSet to remove filters, if any. For more information, see UpdateSqlInjectionMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteSqlInjectionMatchSet request.

  3. Submit a DeleteSqlInjectionMatchSet request.

", "DeleteWebACL": "

Permanently deletes a WebACL. You can't delete a WebACL if it still contains any Rules.

To delete a WebACL, perform the following steps:

  1. Update the WebACL to remove Rules, if any. For more information, see UpdateWebACL.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteWebACL request.

  3. Submit a DeleteWebACL request.

", @@ -23,29 +31,43 @@ "GetByteMatchSet": "

Returns the ByteMatchSet specified by ByteMatchSetId.

", "GetChangeToken": "

When you want to create, update, or delete AWS WAF objects, get a change token and include the change token in the create, update, or delete request. Change tokens ensure that your application doesn't submit conflicting requests to AWS WAF.

Each create, update, or delete request must use a unique change token. If your application submits a GetChangeToken request and then submits a second GetChangeToken request before submitting a create, update, or delete request, the second GetChangeToken request returns the same value as the first GetChangeToken request.

When you use a change token in a create, update, or delete request, the status of the change token changes to PENDING, which indicates that AWS WAF is propagating the change to all AWS WAF servers. Use GetChangeTokenStatus to determine the status of your change token.

", "GetChangeTokenStatus": "

Returns the status of a ChangeToken that you got by calling GetChangeToken. ChangeTokenStatus is one of the following values:

  • PROVISIONED: You requested the change token by calling GetChangeToken, but you haven't used it yet in a call to create, update, or delete an AWS WAF object.

  • PENDING: AWS WAF is propagating the create, update, or delete request to all AWS WAF servers.

  • IN_SYNC: Propagation is complete.

", + "GetGeoMatchSet": "

Returns the GeoMatchSet that is specified by GeoMatchSetId.

", "GetIPSet": "

Returns the IPSet that is specified by IPSetId.

", "GetRateBasedRule": "

Returns the RateBasedRule that is specified by the RuleId that you included in the GetRateBasedRule request.

", "GetRateBasedRuleManagedKeys": "

Returns an array of IP addresses currently being blocked by the RateBasedRule that is specified by the RuleId. The maximum number of managed keys that will be blocked is 10,000. If more than 10,000 addresses exceed the rate limit, the 10,000 addresses with the highest rates will be blocked.

", + "GetRegexMatchSet": "

Returns the RegexMatchSet specified by RegexMatchSetId.

", + "GetRegexPatternSet": "

Returns the RegexPatternSet specified by RegexPatternSetId.

", "GetRule": "

Returns the Rule that is specified by the RuleId that you included in the GetRule request.

", + "GetRuleGroup": "

Returns the RuleGroup that is specified by the RuleGroupId that you included in the GetRuleGroup request.

To view the rules in a rule group, use ListActivatedRulesInRuleGroup.

", "GetSampledRequests": "

Gets detailed information about a specified number of requests--a sample--that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received during a time range that you choose. You can specify a sample size of up to 500 requests, and you can specify any time range in the previous three hours.

GetSampledRequests returns a time range, which is usually the time range that you specified. However, if your resource (such as a CloudFront distribution) received 5,000 requests before the specified time range elapsed, GetSampledRequests returns an updated time range. This new time range indicates the actual period during which AWS WAF selected the requests in the sample.

", "GetSizeConstraintSet": "

Returns the SizeConstraintSet specified by SizeConstraintSetId.

", "GetSqlInjectionMatchSet": "

Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId.

", "GetWebACL": "

Returns the WebACL that is specified by WebACLId.

", "GetWebACLForResource": "

Returns the web ACL for the specified resource.

", "GetXssMatchSet": "

Returns the XssMatchSet that is specified by XssMatchSetId.

", + "ListActivatedRulesInRuleGroup": "

Returns an array of ActivatedRule objects.

", "ListByteMatchSets": "

Returns an array of ByteMatchSetSummary objects.

", + "ListGeoMatchSets": "

Returns an array of GeoMatchSetSummary objects in the response.

", "ListIPSets": "

Returns an array of IPSetSummary objects in the response.

", "ListRateBasedRules": "

Returns an array of RuleSummary objects.

", + "ListRegexMatchSets": "

Returns an array of RegexMatchSetSummary objects.

", + "ListRegexPatternSets": "

Returns an array of RegexPatternSetSummary objects.

", "ListResourcesForWebACL": "

Returns an array of resources associated with the specified web ACL.

", + "ListRuleGroups": "

Returns an array of RuleGroup objects.

", "ListRules": "

Returns an array of RuleSummary objects.

", "ListSizeConstraintSets": "

Returns an array of SizeConstraintSetSummary objects.

", "ListSqlInjectionMatchSets": "

Returns an array of SqlInjectionMatchSet objects.

", + "ListSubscribedRuleGroups": "

Returns an array of RuleGroup objects that you are subscribed to.

", "ListWebACLs": "

Returns an array of WebACLSummary objects in the response.

", "ListXssMatchSets": "

Returns an array of XssMatchSet objects.

", "UpdateByteMatchSet": "

Inserts or deletes ByteMatchTuple objects (filters) in a ByteMatchSet. For each ByteMatchTuple object, you specify the following values:

  • Whether to insert or delete the object from the array. If you want to change a ByteMatchSetUpdate object, you delete the existing object and add a new one.

  • The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the User-Agent header.

  • The bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to look for. For more information, including how you specify the values for the AWS WAF API and the AWS CLI or SDKs, see TargetString in the ByteMatchTuple data type.

  • Where to look, such as at the beginning or the end of a query string.

  • Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.

For example, you can add a ByteMatchSetUpdate object that matches web requests in which User-Agent headers contain the string BadBot. You can then configure AWS WAF to block those requests.

To create and configure a ByteMatchSet, perform the following steps:

  1. Create a ByteMatchSet. For more information, see CreateByteMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateByteMatchSet request.

  3. Submit an UpdateByteMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "UpdateGeoMatchSet": "

Inserts or deletes GeoMatchConstraint objects in an GeoMatchSet. For each GeoMatchConstraint object, you specify the following values:

  • Whether to insert or delete the object from the array. If you want to change an GeoMatchConstraint object, you delete the existing object and add a new one.

  • The Type. The only valid value for Type is Country.

  • The Value, which is a two character code for the country to add to the GeoMatchConstraint object. Valid codes are listed in GeoMatchConstraint$Value.

To create and configure an GeoMatchSet, perform the following steps:

  1. Submit a CreateGeoMatchSet request.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateGeoMatchSet request.

  3. Submit an UpdateGeoMatchSet request to specify the country that you want AWS WAF to watch for.

When you update an GeoMatchSet, you specify the country that you want to add and/or the country that you want to delete. If you want to change a country, you delete the existing country and add the new one.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateIPSet": "

Inserts or deletes IPSetDescriptor objects in an IPSet. For each IPSetDescriptor object, you specify the following values:

  • Whether to insert or delete the object from the array. If you want to change an IPSetDescriptor object, you delete the existing object and add a new one.

  • The IP address version, IPv4 or IPv6.

  • The IP address in CIDR notation, for example, 192.0.2.0/24 (for the range of IP addresses from 192.0.2.0 to 192.0.2.255) or 192.0.2.44/32 (for the individual IP address 192.0.2.44).

AWS WAF supports /8, /16, /24, and /32 IP address ranges for IPv4, and /24, /32, /48, /56, /64 and /128 for IPv6. For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

IPv6 addresses can be represented using any of the following formats:

  • 1111:0000:0000:0000:0000:0000:0000:0111/128

  • 1111:0:0:0:0:0:0:0111/128

  • 1111::0111/128

  • 1111::111/128

You use an IPSet to specify which web requests you want to allow or block based on the IP addresses that the requests originated from. For example, if you're receiving a lot of requests from one or a small number of IP addresses and you want to block the requests, you can create an IPSet that specifies those IP addresses, and then configure AWS WAF to block the requests.

To create and configure an IPSet, perform the following steps:

  1. Submit a CreateIPSet request.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request.

  3. Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for.

When you update an IPSet, you specify the IP addresses that you want to add and/or the IP addresses that you want to delete. If you want to change an IP address, you delete the existing IP address and add the new one.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateRateBasedRule": "

Inserts or deletes Predicate objects in a rule and updates the RateLimit in the rule.

Each Predicate object identifies a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests that you want to block or count. The RateLimit specifies the number of requests every five minutes that triggers the rule.

If you add more than one predicate to a RateBasedRule, a request must match all the predicates and exceed the RateLimit to be counted or blocked. For example, suppose you add the following to a RateBasedRule:

  • An IPSet that matches the IP address 192.0.2.44/32

  • A ByteMatchSet that matches BadBot in the User-Agent header

Further, you specify a RateLimit of 15,000.

You then add the RateBasedRule to a WebACL and specify that you want to block requests that satisfy the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. Further, requests that match these two conditions much be received at a rate of more than 15,000 every five minutes. If the rate drops below this limit, AWS WAF no longer blocks the requests.

As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a RateBasedRule:

  • A ByteMatchSet with FieldToMatch of URI

  • A PositionalConstraint of STARTS_WITH

  • A TargetString of login

Further, you specify a RateLimit of 15,000.

By adding this RateBasedRule to a WebACL, you could limit requests to your login page without affecting the rest of your site.

", + "UpdateRegexMatchSet": "

Inserts or deletes RegexMatchTuple objects (filters) in a RegexMatchSet. For each RegexMatchSetUpdate object, you specify the following values:

  • Whether to insert or delete the object from the array. If you want to change a RegexMatchSetUpdate object, you delete the existing object and add a new one.

  • The part of a web request that you want AWS WAF to inspectupdate, such as a query string or the value of the User-Agent header.

  • The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see RegexPatternSet.

  • Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.

For example, you can create a RegexPatternSet that matches any requests with User-Agent headers that contain the string B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.

To create and configure a RegexMatchSet, perform the following steps:

  1. Create a RegexMatchSet. For more information, see CreateRegexMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexMatchSet request.

  3. Submit an UpdateRegexMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the identifier of the RegexPatternSet that contain the regular expression patters you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "UpdateRegexPatternSet": "

Inserts or deletes RegexPatternString objects in a RegexPatternSet. For each RegexPatternString object, you specify the following values:

  • Whether to insert or delete the RegexPatternString.

  • The regular expression pattern that you want to insert or delete. For more information, see RegexPatternSet.

For example, you can create a RegexPatternString such as B[a@]dB[o0]t. AWS WAF will match this RegexPatternString to:

  • BadBot

  • BadB0t

  • B@dBot

  • B@dB0t

To create and configure a RegexPatternSet, perform the following steps:

  1. Create a RegexPatternSet. For more information, see CreateRegexPatternSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexPatternSet request.

  3. Submit an UpdateRegexPatternSet request to specify the regular expression pattern that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateRule": "

Inserts or deletes Predicate objects in a Rule. Each Predicate object identifies a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests that you want to allow, block, or count. If you add more than one predicate to a Rule, a request must match all of the specifications to be allowed, blocked, or counted. For example, suppose you add the following to a Rule:

  • A ByteMatchSet that matches the value BadBot in the User-Agent header

  • An IPSet that matches the IP address 192.0.2.44

You then add the Rule to a WebACL and specify that you want to block requests that satisfy the Rule. For a request to be blocked, the User-Agent header in the request must contain the value BadBot and the request must originate from the IP address 192.0.2.44.

To create and configure a Rule, perform the following steps:

  1. Create and update the predicates that you want to include in the Rule.

  2. Create the Rule. See CreateRule.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request.

  4. Submit an UpdateRule request to add predicates to the Rule.

  5. Create and update a WebACL that contains the Rule. See CreateWebACL.

If you want to replace one ByteMatchSet or IPSet with another, you delete the existing one and add the new one.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "UpdateRuleGroup": "

Inserts or deletes ActivatedRule objects in a RuleGroup.

You can only insert REGULAR rules into a rule group.

You can have a maximum of ten rules per rule group.

To create and configure a RuleGroup, perform the following steps:

  1. Create and update the Rules that you want to include in the RuleGroup. See CreateRule.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRuleGroup request.

  3. Submit an UpdateRuleGroup request to add Rules to the RuleGroup.

  4. Create and update a WebACL that contains the RuleGroup. See CreateWebACL.

If you want to replace one Rule with another, you delete the existing one and add the new one.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateSizeConstraintSet": "

Inserts or deletes SizeConstraint objects (filters) in a SizeConstraintSet. For each SizeConstraint object, you specify the following values:

  • Whether to insert or delete the object from the array. If you want to change a SizeConstraintSetUpdate object, you delete the existing object and add a new one.

  • The part of a web request that you want AWS WAF to evaluate, such as the length of a query string or the length of the User-Agent header.

  • Whether to perform any transformations on the request, such as converting it to lowercase, before checking its length. Note that transformations of the request body are not supported because the AWS resource forwards only the first 8192 bytes of your request to AWS WAF.

  • A ComparisonOperator used for evaluating the selected part of the request against the specified Size, such as equals, greater than, less than, and so on.

  • The length, in bytes, that you want AWS WAF to watch for in selected part of the request. The length is computed after applying the transformation.

For example, you can add a SizeConstraintSetUpdate object that matches web requests in which the length of the User-Agent header is greater than 100 bytes. You can then configure AWS WAF to block those requests.

To create and configure a SizeConstraintSet, perform the following steps:

  1. Create a SizeConstraintSet. For more information, see CreateSizeConstraintSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateSizeConstraintSet request.

  3. Submit an UpdateSizeConstraintSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateSqlInjectionMatchSet": "

Inserts or deletes SqlInjectionMatchTuple objects (filters) in a SqlInjectionMatchSet. For each SqlInjectionMatchTuple object, you specify the following values:

  • Action: Whether to insert the object into or delete the object from the array. To change a SqlInjectionMatchTuple, you delete the existing object and add a new one.

  • FieldToMatch: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to inspect a header, the name of the header.

  • TextTransformation: Which text transformation, if any, to perform on the web request before inspecting the request for snippets of malicious SQL code.

You use SqlInjectionMatchSet objects to specify which CloudFront requests you want to allow, block, or count. For example, if you're receiving requests that contain snippets of SQL code in the query string and you want to block the requests, you can create a SqlInjectionMatchSet with the applicable settings, and then configure AWS WAF to block the requests.

To create and configure a SqlInjectionMatchSet, perform the following steps:

  1. Submit a CreateSqlInjectionMatchSet request.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request.

  3. Submit an UpdateSqlInjectionMatchSet request to specify the parts of web requests that you want AWS WAF to inspect for snippets of SQL code.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateWebACL": "

Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies web requests that you want to allow, block, or count. When you update a WebACL, you specify the following values:

  • A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the Rules in a WebACL.

  • The Rules that you want to add and/or delete. If you want to replace one Rule with another, you delete the existing Rule and add the new one.

  • For each Rule, whether you want AWS WAF to allow requests, block requests, or count requests that match the conditions in the Rule.

  • The order in which you want AWS WAF to evaluate the Rules in a WebACL. If you add more than one Rule to a WebACL, AWS WAF evaluates each request against the Rules in order based on the value of Priority. (The Rule that has the lowest value for Priority is evaluated first.) When a web request matches all of the predicates (such as ByteMatchSets and IPSets) in a Rule, AWS WAF immediately takes the corresponding action, allow or block, and doesn't evaluate the request against the remaining Rules in the WebACL, if any.

To create and configure a WebACL, perform the following steps:

  1. Create and update the predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.

  2. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule.

  3. Create a WebACL. See CreateWebACL.

  4. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request.

  5. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution.

Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the rule type when first creating the rule, the UpdateWebACL request will fail because the request tries to add a REGULAR rule (the default rule type) with the specified ID, which does not exist.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", @@ -62,12 +84,14 @@ "base": "

The ActivatedRule object in an UpdateWebACL request specifies a Rule that you want to insert or delete, the priority of the Rule in the WebACL, and the action that you want AWS WAF to take when a web request matches the Rule (ALLOW, BLOCK, or COUNT).

To specify whether to insert or delete a Rule, use the Action parameter in the WebACLUpdate data type.

", "refs": { "ActivatedRules$member": null, + "RuleGroupUpdate$ActivatedRule": "

The ActivatedRule object specifies a Rule that you want to insert or delete, the priority of the Rule in the WebACL, and the action that you want AWS WAF to take when a web request matches the Rule (ALLOW, BLOCK, or COUNT).

", "WebACLUpdate$ActivatedRule": "

The ActivatedRule object in an UpdateWebACL request specifies a Rule that you want to insert or delete, the priority of the Rule in the WebACL, and the action that you want AWS WAF to take when a web request matches the Rule (ALLOW, BLOCK, or COUNT).

" } }, "ActivatedRules": { "base": null, "refs": { + "ListActivatedRulesInRuleGroupResponse$ActivatedRules": "

An array of ActivatedRules objects.

", "WebACL$Rules": "

An array that contains the action for each Rule in a WebACL, the priority of the Rule, and the ID of the Rule.

" } }, @@ -135,7 +159,11 @@ "base": null, "refs": { "ByteMatchSetUpdate$Action": "

Specifies whether to insert or delete a ByteMatchTuple.

", + "GeoMatchSetUpdate$Action": "

Specifies whether to insert or delete a country with UpdateGeoMatchSet.

", "IPSetUpdate$Action": "

Specifies whether to insert or delete an IP address with UpdateIPSet.

", + "RegexMatchSetUpdate$Action": "

Specifies whether to insert or delete a RegexMatchTuple.

", + "RegexPatternSetUpdate$Action": "

Specifies whether to insert or delete a RegexPatternString.

", + "RuleGroupUpdate$Action": "

Specify INSERT to add an ActivatedRule to a RuleGroup. Use DELETE to remove an ActivatedRule from a RuleGroup.

", "RuleUpdate$Action": "

Specify INSERT to add a Predicate to a Rule. Use DELETE to remove a Predicate from a Rule.

", "SizeConstraintSetUpdate$Action": "

Specify INSERT to add a SizeConstraintSetUpdate to a SizeConstraintSet. Use DELETE to remove a SizeConstraintSetUpdate from a SizeConstraintSet.

", "SqlInjectionMatchSetUpdate$Action": "

Specify INSERT to add a SqlInjectionMatchSetUpdate to a SqlInjectionMatchSet. Use DELETE to remove a SqlInjectionMatchSetUpdate from a SqlInjectionMatchSet.

", @@ -148,10 +176,18 @@ "refs": { "CreateByteMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "CreateByteMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateByteMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "CreateGeoMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "CreateGeoMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "CreateIPSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "CreateIPSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "CreateRateBasedRuleRequest$ChangeToken": "

The ChangeToken that you used to submit the CreateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "CreateRateBasedRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "CreateRegexMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "CreateRegexMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "CreateRegexPatternSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "CreateRegexPatternSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "CreateRuleGroupRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "CreateRuleGroupResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "CreateRuleRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "CreateRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "CreateSizeConstraintSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", @@ -164,10 +200,18 @@ "CreateXssMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateXssMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "DeleteByteMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "DeleteByteMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteByteMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "DeleteGeoMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "DeleteGeoMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "DeleteIPSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "DeleteIPSetResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "DeleteRateBasedRuleRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "DeleteRateBasedRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "DeleteRegexMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "DeleteRegexMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "DeleteRegexPatternSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "DeleteRegexPatternSetResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "DeleteRuleGroupRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "DeleteRuleGroupResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "DeleteRuleRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "DeleteRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "DeleteSizeConstraintSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", @@ -182,10 +226,18 @@ "GetChangeTokenStatusRequest$ChangeToken": "

The change token for which you want to get the status. This change token was previously returned in the GetChangeToken response.

", "UpdateByteMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "UpdateByteMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateByteMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "UpdateGeoMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "UpdateGeoMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "UpdateIPSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "UpdateIPSetResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "UpdateRateBasedRuleRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "UpdateRateBasedRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "UpdateRegexMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "UpdateRegexMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "UpdateRegexPatternSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "UpdateRegexPatternSetResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "UpdateRuleGroupRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "UpdateRuleGroupResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "UpdateRuleRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "UpdateRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "UpdateSizeConstraintSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", @@ -226,6 +278,16 @@ "refs": { } }, + "CreateGeoMatchSetRequest": { + "base": null, + "refs": { + } + }, + "CreateGeoMatchSetResponse": { + "base": null, + "refs": { + } + }, "CreateIPSetRequest": { "base": null, "refs": { @@ -246,6 +308,36 @@ "refs": { } }, + "CreateRegexMatchSetRequest": { + "base": null, + "refs": { + } + }, + "CreateRegexMatchSetResponse": { + "base": null, + "refs": { + } + }, + "CreateRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "CreateRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "CreateRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateRuleGroupResponse": { + "base": null, + "refs": { + } + }, "CreateRuleRequest": { "base": null, "refs": { @@ -306,6 +398,16 @@ "refs": { } }, + "DeleteGeoMatchSetRequest": { + "base": null, + "refs": { + } + }, + "DeleteGeoMatchSetResponse": { + "base": null, + "refs": { + } + }, "DeleteIPSetRequest": { "base": null, "refs": { @@ -326,6 +428,36 @@ "refs": { } }, + "DeleteRegexMatchSetRequest": { + "base": null, + "refs": { + } + }, + "DeleteRegexMatchSetResponse": { + "base": null, + "refs": { + } + }, + "DeleteRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "DeleteRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "DeleteRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteRuleGroupResponse": { + "base": null, + "refs": { + } + }, "DeleteRuleRequest": { "base": null, "refs": { @@ -390,11 +522,68 @@ "base": "

Specifies where in a web request to look for TargetString.

", "refs": { "ByteMatchTuple$FieldToMatch": "

The part of a web request that you want AWS WAF to search, such as a specified header or a query string. For more information, see FieldToMatch.

", + "RegexMatchTuple$FieldToMatch": "

Specifies where in a web request to look for the RegexPatternSet.

", "SizeConstraint$FieldToMatch": "

Specifies where in a web request to look for the size constraint.

", "SqlInjectionMatchTuple$FieldToMatch": "

Specifies where in a web request to look for snippets of malicious SQL code.

", "XssMatchTuple$FieldToMatch": "

Specifies where in a web request to look for cross-site scripting attacks.

" } }, + "GeoMatchConstraint": { + "base": "

The country from which web requests originate that you want AWS WAF to search for.

", + "refs": { + "GeoMatchConstraints$member": null, + "GeoMatchSetUpdate$GeoMatchConstraint": "

The country from which web requests originate that you want AWS WAF to search for.

" + } + }, + "GeoMatchConstraintType": { + "base": null, + "refs": { + "GeoMatchConstraint$Type": "

The type of geographical area you want AWS WAF to search for. Currently Country is the only valid value.

" + } + }, + "GeoMatchConstraintValue": { + "base": null, + "refs": { + "GeoMatchConstraint$Value": "

The country that you want AWS WAF to search for.

" + } + }, + "GeoMatchConstraints": { + "base": null, + "refs": { + "GeoMatchSet$GeoMatchConstraints": "

An array of GeoMatchConstraint objects, which contain the country that you want AWS WAF to search for.

" + } + }, + "GeoMatchSet": { + "base": "

Contains one or more countries that AWS WAF will search for.

", + "refs": { + "CreateGeoMatchSetResponse$GeoMatchSet": "

The GeoMatchSet returned in the CreateGeoMatchSet response. The GeoMatchSet contains no GeoMatchConstraints.

", + "GetGeoMatchSetResponse$GeoMatchSet": "

Information about the GeoMatchSet that you specified in the GetGeoMatchSet request. This includes the Type, which for a GeoMatchContraint is always Country, as well as the Value, which is the identifier for a specific country.

" + } + }, + "GeoMatchSetSummaries": { + "base": null, + "refs": { + "ListGeoMatchSetsResponse$GeoMatchSets": "

An array of GeoMatchSetSummary objects.

" + } + }, + "GeoMatchSetSummary": { + "base": "

Contains the identifier and the name of the GeoMatchSet.

", + "refs": { + "GeoMatchSetSummaries$member": null + } + }, + "GeoMatchSetUpdate": { + "base": "

Specifies the type of update to perform to an GeoMatchSet with UpdateGeoMatchSet.

", + "refs": { + "GeoMatchSetUpdates$member": null + } + }, + "GeoMatchSetUpdates": { + "base": null, + "refs": { + "UpdateGeoMatchSetRequest$Updates": "

An array of GeoMatchSetUpdate objects that you want to insert into or delete from an GeoMatchSet. For more information, see the applicable data types:

  • GeoMatchSetUpdate: Contains Action and GeoMatchConstraint

  • GeoMatchConstraint: Contains Type and Value

    You can have only one Type and Value per GeoMatchConstraint. To add multiple countries, include multiple GeoMatchSetUpdate objects in your request.

" + } + }, "GetByteMatchSetRequest": { "base": null, "refs": { @@ -425,6 +614,16 @@ "refs": { } }, + "GetGeoMatchSetRequest": { + "base": null, + "refs": { + } + }, + "GetGeoMatchSetResponse": { + "base": null, + "refs": { + } + }, "GetIPSetRequest": { "base": null, "refs": { @@ -455,6 +654,36 @@ "refs": { } }, + "GetRegexMatchSetRequest": { + "base": null, + "refs": { + } + }, + "GetRegexMatchSetResponse": { + "base": null, + "refs": { + } + }, + "GetRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "GetRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "GetRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "GetRuleGroupResponse": { + "base": null, + "refs": { + } + }, "GetRuleRequest": { "base": null, "refs": { @@ -635,6 +864,16 @@ "HTTPRequest$ClientIP": "

The IP address that the request originated from. If the WebACL is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs:

  • c-ip, if the viewer did not use an HTTP proxy or a load balancer to send the request

  • x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer to send the request

" } }, + "ListActivatedRulesInRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "ListActivatedRulesInRuleGroupResponse": { + "base": null, + "refs": { + } + }, "ListByteMatchSetsRequest": { "base": null, "refs": { @@ -645,6 +884,16 @@ "refs": { } }, + "ListGeoMatchSetsRequest": { + "base": null, + "refs": { + } + }, + "ListGeoMatchSetsResponse": { + "base": null, + "refs": { + } + }, "ListIPSetsRequest": { "base": null, "refs": { @@ -665,6 +914,26 @@ "refs": { } }, + "ListRegexMatchSetsRequest": { + "base": null, + "refs": { + } + }, + "ListRegexMatchSetsResponse": { + "base": null, + "refs": { + } + }, + "ListRegexPatternSetsRequest": { + "base": null, + "refs": { + } + }, + "ListRegexPatternSetsResponse": { + "base": null, + "refs": { + } + }, "ListResourcesForWebACLRequest": { "base": null, "refs": { @@ -675,6 +944,16 @@ "refs": { } }, + "ListRuleGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListRuleGroupsResponse": { + "base": null, + "refs": { + } + }, "ListRulesRequest": { "base": null, "refs": { @@ -705,6 +984,16 @@ "refs": { } }, + "ListSubscribedRuleGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListSubscribedRuleGroupsResponse": { + "base": null, + "refs": { + } + }, "ListWebACLsRequest": { "base": null, "refs": { @@ -753,17 +1042,20 @@ "base": null, "refs": { "CreateRateBasedRuleRequest$MetricName": "

A friendly name or description for the metrics for this RateBasedRule. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RateBasedRule.

", + "CreateRuleGroupRequest$MetricName": "

A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup.

", "CreateRuleRequest$MetricName": "

A friendly name or description for the metrics for this Rule. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the Rule.

", "CreateWebACLRequest$MetricName": "

A friendly name or description for the metrics for this WebACL. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change MetricName after you create the WebACL.

", "RateBasedRule$MetricName": "

A friendly name or description for the metrics for a RateBasedRule. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RateBasedRule.

", "Rule$MetricName": "

A friendly name or description for the metrics for this Rule. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change MetricName after you create the Rule.

", + "RuleGroup$MetricName": "

A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup.

", + "SubscribedRuleGroupSummary$MetricName": "

A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup.

", "WebACL$MetricName": "

A friendly name or description for the metrics for this WebACL. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change MetricName after you create the WebACL.

" } }, "Negated": { "base": null, "refs": { - "Predicate$Negated": "

Set Negated to False if you want AWS WAF to allow, block, or count requests based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow or block requests based on that IP address.

Set Negated to True if you want AWS WAF to allow or block a request based on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow, block, or count requests based on all IP addresses except 192.0.2.44.

" + "Predicate$Negated": "

Set Negated to False if you want AWS WAF to allow, block, or count requests based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow or block requests based on that IP address.

Set Negated to True if you want AWS WAF to allow or block a request based on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow, block, or count requests based on all IP addresses except 192.0.2.44.

" } }, "NextMarker": { @@ -771,18 +1063,30 @@ "refs": { "GetRateBasedRuleManagedKeysRequest$NextMarker": "

A null value and not currently used. Do not include this in your request.

", "GetRateBasedRuleManagedKeysResponse$NextMarker": "

A null value and not currently used.

", + "ListActivatedRulesInRuleGroupRequest$NextMarker": "

If you specify a value for Limit and you have more ActivatedRules than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of ActivatedRules. For the second and subsequent ListActivatedRulesInRuleGroup requests, specify the value of NextMarker from the previous response to get information about another batch of ActivatedRules.

", + "ListActivatedRulesInRuleGroupResponse$NextMarker": "

If you have more ActivatedRules than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more ActivatedRules, submit another ListActivatedRulesInRuleGroup request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListByteMatchSetsRequest$NextMarker": "

If you specify a value for Limit and you have more ByteMatchSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of ByteMatchSets. For the second and subsequent ListByteMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of ByteMatchSets.

", "ListByteMatchSetsResponse$NextMarker": "

If you have more ByteMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more ByteMatchSet objects, submit another ListByteMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", - "ListIPSetsRequest$NextMarker": "

If you specify a value for Limit and you have more IPSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of IPSets. For the second and subsequent ListIPSets requests, specify the value of NextMarker from the previous response to get information about another batch of ByteMatchSets.

", + "ListGeoMatchSetsRequest$NextMarker": "

If you specify a value for Limit and you have more GeoMatchSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of GeoMatchSet objects. For the second and subsequent ListGeoMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of GeoMatchSet objects.

", + "ListGeoMatchSetsResponse$NextMarker": "

If you have more GeoMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more GeoMatchSet objects, submit another ListGeoMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", + "ListIPSetsRequest$NextMarker": "

If you specify a value for Limit and you have more IPSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of IPSets. For the second and subsequent ListIPSets requests, specify the value of NextMarker from the previous response to get information about another batch of IPSets.

", "ListIPSetsResponse$NextMarker": "

If you have more IPSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more IPSet objects, submit another ListIPSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListRateBasedRulesRequest$NextMarker": "

If you specify a value for Limit and you have more Rules than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of Rules. For the second and subsequent ListRateBasedRules requests, specify the value of NextMarker from the previous response to get information about another batch of Rules.

", "ListRateBasedRulesResponse$NextMarker": "

If you have more Rules than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more Rules, submit another ListRateBasedRules request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", + "ListRegexMatchSetsRequest$NextMarker": "

If you specify a value for Limit and you have more RegexMatchSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of ByteMatchSets. For the second and subsequent ListRegexMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of RegexMatchSet objects.

", + "ListRegexMatchSetsResponse$NextMarker": "

If you have more RegexMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RegexMatchSet objects, submit another ListRegexMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", + "ListRegexPatternSetsRequest$NextMarker": "

If you specify a value for Limit and you have more RegexPatternSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of RegexPatternSet objects. For the second and subsequent ListRegexPatternSets requests, specify the value of NextMarker from the previous response to get information about another batch of RegexPatternSet objects.

", + "ListRegexPatternSetsResponse$NextMarker": "

If you have more RegexPatternSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RegexPatternSet objects, submit another ListRegexPatternSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", + "ListRuleGroupsRequest$NextMarker": "

If you specify a value for Limit and you have more RuleGroups than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of RuleGroups. For the second and subsequent ListRuleGroups requests, specify the value of NextMarker from the previous response to get information about another batch of RuleGroups.

", + "ListRuleGroupsResponse$NextMarker": "

If you have more RuleGroups than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RuleGroups, submit another ListRuleGroups request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListRulesRequest$NextMarker": "

If you specify a value for Limit and you have more Rules than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of Rules. For the second and subsequent ListRules requests, specify the value of NextMarker from the previous response to get information about another batch of Rules.

", "ListRulesResponse$NextMarker": "

If you have more Rules than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more Rules, submit another ListRules request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListSizeConstraintSetsRequest$NextMarker": "

If you specify a value for Limit and you have more SizeConstraintSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of SizeConstraintSets. For the second and subsequent ListSizeConstraintSets requests, specify the value of NextMarker from the previous response to get information about another batch of SizeConstraintSets.

", "ListSizeConstraintSetsResponse$NextMarker": "

If you have more SizeConstraintSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SizeConstraintSet objects, submit another ListSizeConstraintSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListSqlInjectionMatchSetsRequest$NextMarker": "

If you specify a value for Limit and you have more SqlInjectionMatchSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of SqlInjectionMatchSets. For the second and subsequent ListSqlInjectionMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of SqlInjectionMatchSets.

", "ListSqlInjectionMatchSetsResponse$NextMarker": "

If you have more SqlInjectionMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SqlInjectionMatchSet objects, submit another ListSqlInjectionMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", + "ListSubscribedRuleGroupsRequest$NextMarker": "

If you specify a value for Limit and you have more ByteMatchSetssubscribed rule groups than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of subscribed rule groups. For the second and subsequent ListSubscribedRuleGroupsRequest requests, specify the value of NextMarker from the previous response to get information about another batch of subscribed rule groups.

", + "ListSubscribedRuleGroupsResponse$NextMarker": "

If you have more objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more objects, submit another ListSubscribedRuleGroups request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListWebACLsRequest$NextMarker": "

If you specify a value for Limit and you have more WebACL objects than the number that you specify for Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of WebACL objects. For the second and subsequent ListWebACLs requests, specify the value of NextMarker from the previous response to get information about another batch of WebACL objects.

", "ListWebACLsResponse$NextMarker": "

If you have more WebACL objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more WebACL objects, submit another ListWebACLs request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListXssMatchSetsRequest$NextMarker": "

If you specify a value for Limit and you have more XssMatchSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of XssMatchSets. For the second and subsequent ListXssMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of XssMatchSets.

", @@ -792,12 +1096,18 @@ "PaginationLimit": { "base": null, "refs": { + "ListActivatedRulesInRuleGroupRequest$Limit": "

Specifies the number of ActivatedRules that you want AWS WAF to return for this request. If you have more ActivatedRules than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of ActivatedRules.

", "ListByteMatchSetsRequest$Limit": "

Specifies the number of ByteMatchSet objects that you want AWS WAF to return for this request. If you have more ByteMatchSets objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of ByteMatchSet objects.

", + "ListGeoMatchSetsRequest$Limit": "

Specifies the number of GeoMatchSet objects that you want AWS WAF to return for this request. If you have more GeoMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of GeoMatchSet objects.

", "ListIPSetsRequest$Limit": "

Specifies the number of IPSet objects that you want AWS WAF to return for this request. If you have more IPSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of IPSet objects.

", "ListRateBasedRulesRequest$Limit": "

Specifies the number of Rules that you want AWS WAF to return for this request. If you have more Rules than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of Rules.

", + "ListRegexMatchSetsRequest$Limit": "

Specifies the number of RegexMatchSet objects that you want AWS WAF to return for this request. If you have more RegexMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RegexMatchSet objects.

", + "ListRegexPatternSetsRequest$Limit": "

Specifies the number of RegexPatternSet objects that you want AWS WAF to return for this request. If you have more RegexPatternSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RegexPatternSet objects.

", + "ListRuleGroupsRequest$Limit": "

Specifies the number of RuleGroups that you want AWS WAF to return for this request. If you have more RuleGroups than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RuleGroups.

", "ListRulesRequest$Limit": "

Specifies the number of Rules that you want AWS WAF to return for this request. If you have more Rules than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of Rules.

", "ListSizeConstraintSetsRequest$Limit": "

Specifies the number of SizeConstraintSet objects that you want AWS WAF to return for this request. If you have more SizeConstraintSets objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of SizeConstraintSet objects.

", "ListSqlInjectionMatchSetsRequest$Limit": "

Specifies the number of SqlInjectionMatchSet objects that you want AWS WAF to return for this request. If you have more SqlInjectionMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of Rules.

", + "ListSubscribedRuleGroupsRequest$Limit": "

Specifies the number of subscribed rule groups that you want AWS WAF to return for this request. If you have more objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of objects.

", "ListWebACLsRequest$Limit": "

Specifies the number of WebACL objects that you want AWS WAF to return for this request. If you have more WebACL objects than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of WebACL objects.

", "ListXssMatchSetsRequest$Limit": "

Specifies the number of XssMatchSet objects that you want AWS WAF to return for this request. If you have more XssMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of Rules.

" } @@ -833,7 +1143,7 @@ } }, "Predicate": { - "base": "

Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, and SizeConstraintSet objects that you want to add to a Rule and, for each object, indicates whether you want to negate the settings, for example, requests that do NOT originate from the IP address 192.0.2.44.

", + "base": "

Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, and SizeConstraintSet objects that you want to add to a Rule and, for each object, indicates whether you want to negate the settings, for example, requests that do NOT originate from the IP address 192.0.2.44.

", "refs": { "Predicates$member": null, "RuleUpdate$Predicate": "

The ID of the Predicate (such as an IPSet) that you want to add to a Rule.

" @@ -874,6 +1184,94 @@ "UpdateRateBasedRuleRequest$RateLimit": "

The maximum number of requests, which have an identical value in the field specified by the RateKey, allowed in a five-minute period. If the number of requests exceeds the RateLimit and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.

" } }, + "RegexMatchSet": { + "base": "

In a GetRegexMatchSet request, RegexMatchSet is a complex type that contains the RegexMatchSetId and Name of a RegexMatchSet, and the values that you specified when you updated the RegexMatchSet.

The values are contained in a RegexMatchTuple object, which specify the parts of web requests that you want AWS WAF to inspect and the values that you want AWS WAF to search for. If a RegexMatchSet contains more than one RegexMatchTuple object, a request needs to match the settings in only one ByteMatchTuple to be considered a match.

", + "refs": { + "CreateRegexMatchSetResponse$RegexMatchSet": "

A RegexMatchSet that contains no RegexMatchTuple objects.

", + "GetRegexMatchSetResponse$RegexMatchSet": "

Information about the RegexMatchSet that you specified in the GetRegexMatchSet request. For more information, see RegexMatchTuple.

" + } + }, + "RegexMatchSetSummaries": { + "base": null, + "refs": { + "ListRegexMatchSetsResponse$RegexMatchSets": "

An array of RegexMatchSetSummary objects.

" + } + }, + "RegexMatchSetSummary": { + "base": "

Returned by ListRegexMatchSets. Each RegexMatchSetSummary object includes the Name and RegexMatchSetId for one RegexMatchSet.

", + "refs": { + "RegexMatchSetSummaries$member": null + } + }, + "RegexMatchSetUpdate": { + "base": "

In an UpdateRegexMatchSet request, RegexMatchSetUpdate specifies whether to insert or delete a RegexMatchTuple and includes the settings for the RegexMatchTuple.

", + "refs": { + "RegexMatchSetUpdates$member": null + } + }, + "RegexMatchSetUpdates": { + "base": null, + "refs": { + "UpdateRegexMatchSetRequest$Updates": "

An array of RegexMatchSetUpdate objects that you want to insert into or delete from a RegexMatchSet. For more information, see RegexMatchTuple.

" + } + }, + "RegexMatchTuple": { + "base": "

The regular expression pattern that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings. Each RegexMatchTuple object contains:

  • The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the User-Agent header.

  • The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see RegexPatternSet.

  • Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.

", + "refs": { + "RegexMatchSetUpdate$RegexMatchTuple": "

Information about the part of a web request that you want AWS WAF to inspect and the identifier of the regular expression (regex) pattern that you want AWS WAF to search for. If you specify DELETE for the value of Action, the RegexMatchTuple values must exactly match the values in the RegexMatchTuple that you want to delete from the RegexMatchSet.

", + "RegexMatchTuples$member": null + } + }, + "RegexMatchTuples": { + "base": null, + "refs": { + "RegexMatchSet$RegexMatchTuples": "

Contains an array of RegexMatchTuple objects. Each RegexMatchTuple object contains:

  • The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the User-Agent header.

  • The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see RegexPatternSet.

  • Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.

" + } + }, + "RegexPatternSet": { + "base": "

The RegexPatternSet specifies the regular expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.

", + "refs": { + "CreateRegexPatternSetResponse$RegexPatternSet": "

A RegexPatternSet that contains no objects.

", + "GetRegexPatternSetResponse$RegexPatternSet": "

Information about the RegexPatternSet that you specified in the GetRegexPatternSet request, including the identifier of the pattern set and the regular expression patterns you want AWS WAF to search for.

" + } + }, + "RegexPatternSetSummaries": { + "base": null, + "refs": { + "ListRegexPatternSetsResponse$RegexPatternSets": "

An array of RegexPatternSetSummary objects.

" + } + }, + "RegexPatternSetSummary": { + "base": "

Returned by ListRegexPatternSets. Each RegexPatternSetSummary object includes the Name and RegexPatternSetId for one RegexPatternSet.

", + "refs": { + "RegexPatternSetSummaries$member": null + } + }, + "RegexPatternSetUpdate": { + "base": "

In an UpdateRegexPatternSet request, RegexPatternSetUpdate specifies whether to insert or delete a RegexPatternString and includes the settings for the RegexPatternString.

", + "refs": { + "RegexPatternSetUpdates$member": null + } + }, + "RegexPatternSetUpdates": { + "base": null, + "refs": { + "UpdateRegexPatternSetRequest$Updates": "

An array of RegexPatternSetUpdate objects that you want to insert into or delete from a RegexPatternSet.

" + } + }, + "RegexPatternString": { + "base": null, + "refs": { + "RegexPatternSetUpdate$RegexPatternString": "

Specifies the regular expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t.

", + "RegexPatternStrings$member": null + } + }, + "RegexPatternStrings": { + "base": null, + "refs": { + "RegexPatternSet$RegexPatternStrings": "

Specifies the regular expression (regex) patterns that you want AWS WAF to search for, such as B[a@]dB[o0]t.

" + } + }, "ResourceArn": { "base": null, "refs": { @@ -897,38 +1295,62 @@ "ByteMatchSet$ByteMatchSetId": "

The ByteMatchSetId for a ByteMatchSet. You use ByteMatchSetId to get information about a ByteMatchSet (see GetByteMatchSet), update a ByteMatchSet (see UpdateByteMatchSet), insert a ByteMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a ByteMatchSet from AWS WAF (see DeleteByteMatchSet).

ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.

", "ByteMatchSetSummary$ByteMatchSetId": "

The ByteMatchSetId for a ByteMatchSet. You use ByteMatchSetId to get information about a ByteMatchSet, update a ByteMatchSet, remove a ByteMatchSet from a Rule, and delete a ByteMatchSet from AWS WAF.

ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.

", "DeleteByteMatchSetRequest$ByteMatchSetId": "

The ByteMatchSetId of the ByteMatchSet that you want to delete. ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.

", + "DeleteGeoMatchSetRequest$GeoMatchSetId": "

The GeoMatchSetID of the GeoMatchSet that you want to delete. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets.

", "DeleteIPSetRequest$IPSetId": "

The IPSetId of the IPSet that you want to delete. IPSetId is returned by CreateIPSet and by ListIPSets.

", "DeleteRateBasedRuleRequest$RuleId": "

The RuleId of the RateBasedRule that you want to delete. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules.

", + "DeleteRegexMatchSetRequest$RegexMatchSetId": "

The RegexMatchSetId of the RegexMatchSet that you want to delete. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.

", + "DeleteRegexPatternSetRequest$RegexPatternSetId": "

The RegexPatternSetId of the RegexPatternSet that you want to delete. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", + "DeleteRuleGroupRequest$RuleGroupId": "

The RuleGroupId of the RuleGroup that you want to delete. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.

", "DeleteRuleRequest$RuleId": "

The RuleId of the Rule that you want to delete. RuleId is returned by CreateRule and by ListRules.

", "DeleteSizeConstraintSetRequest$SizeConstraintSetId": "

The SizeConstraintSetId of the SizeConstraintSet that you want to delete. SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.

", "DeleteSqlInjectionMatchSetRequest$SqlInjectionMatchSetId": "

The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to delete. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.

", "DeleteWebACLRequest$WebACLId": "

The WebACLId of the WebACL that you want to delete. WebACLId is returned by CreateWebACL and by ListWebACLs.

", "DeleteXssMatchSetRequest$XssMatchSetId": "

The XssMatchSetId of the XssMatchSet that you want to delete. XssMatchSetId is returned by CreateXssMatchSet and by ListXssMatchSets.

", + "GeoMatchSet$GeoMatchSetId": "

The GeoMatchSetId for an GeoMatchSet. You use GeoMatchSetId to get information about a GeoMatchSet (see GeoMatchSet), update a GeoMatchSet (see UpdateGeoMatchSet), insert a GeoMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a GeoMatchSet from AWS WAF (see DeleteGeoMatchSet).

GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets.

", + "GeoMatchSetSummary$GeoMatchSetId": "

The GeoMatchSetId for an GeoMatchSet. You can use GeoMatchSetId in a GetGeoMatchSet request to get detailed information about an GeoMatchSet.

", "GetByteMatchSetRequest$ByteMatchSetId": "

The ByteMatchSetId of the ByteMatchSet that you want to get. ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.

", + "GetGeoMatchSetRequest$GeoMatchSetId": "

The GeoMatchSetId of the GeoMatchSet that you want to get. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets.

", "GetIPSetRequest$IPSetId": "

The IPSetId of the IPSet that you want to get. IPSetId is returned by CreateIPSet and by ListIPSets.

", "GetRateBasedRuleManagedKeysRequest$RuleId": "

The RuleId of the RateBasedRule for which you want to get a list of ManagedKeys. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules.

", "GetRateBasedRuleRequest$RuleId": "

The RuleId of the RateBasedRule that you want to get. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules.

", + "GetRegexMatchSetRequest$RegexMatchSetId": "

The RegexMatchSetId of the RegexMatchSet that you want to get. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.

", + "GetRegexPatternSetRequest$RegexPatternSetId": "

The RegexPatternSetId of the RegexPatternSet that you want to get. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", + "GetRuleGroupRequest$RuleGroupId": "

The RuleGroupId of the RuleGroup that you want to get. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.

", "GetRuleRequest$RuleId": "

The RuleId of the Rule that you want to get. RuleId is returned by CreateRule and by ListRules.

", "GetSampledRequestsRequest$WebAclId": "

The WebACLId of the WebACL for which you want GetSampledRequests to return a sample of requests.

", - "GetSampledRequestsRequest$RuleId": "

RuleId is one of two values:

  • The RuleId of the Rule for which you want GetSampledRequests to return a sample of requests.

  • Default_Action, which causes GetSampledRequests to return a sample of the requests that didn't match any of the rules in the specified WebACL.

", + "GetSampledRequestsRequest$RuleId": "

RuleId is one of three values:

  • The RuleId of the Rule or the RuleGroupId of the RuleGroup for which you want GetSampledRequests to return a sample of requests.

  • Default_Action, which causes GetSampledRequests to return a sample of the requests that didn't match any of the rules in the specified WebACL.

", "GetSizeConstraintSetRequest$SizeConstraintSetId": "

The SizeConstraintSetId of the SizeConstraintSet that you want to get. SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.

", "GetSqlInjectionMatchSetRequest$SqlInjectionMatchSetId": "

The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to get. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.

", "GetWebACLRequest$WebACLId": "

The WebACLId of the WebACL that you want to get. WebACLId is returned by CreateWebACL and by ListWebACLs.

", "GetXssMatchSetRequest$XssMatchSetId": "

The XssMatchSetId of the XssMatchSet that you want to get. XssMatchSetId is returned by CreateXssMatchSet and by ListXssMatchSets.

", "IPSet$IPSetId": "

The IPSetId for an IPSet. You use IPSetId to get information about an IPSet (see GetIPSet), update an IPSet (see UpdateIPSet), insert an IPSet into a Rule or delete one from a Rule (see UpdateRule), and delete an IPSet from AWS WAF (see DeleteIPSet).

IPSetId is returned by CreateIPSet and by ListIPSets.

", "IPSetSummary$IPSetId": "

The IPSetId for an IPSet. You can use IPSetId in a GetIPSet request to get detailed information about an IPSet.

", + "ListActivatedRulesInRuleGroupRequest$RuleGroupId": "

The RuleGroupId of the RuleGroup for which you want to get a list of ActivatedRule objects.

", "ListResourcesForWebACLRequest$WebACLId": "

The unique identifier (ID) of the web ACL for which to list the associated resources.

", "Predicate$DataId": "

A unique identifier for a predicate in a Rule, such as ByteMatchSetId or IPSetId. The ID is returned by the corresponding Create or List command.

", "RateBasedRule$RuleId": "

A unique identifier for a RateBasedRule. You use RuleId to get more information about a RateBasedRule (see GetRateBasedRule), update a RateBasedRule (see UpdateRateBasedRule), insert a RateBasedRule into a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a RateBasedRule from AWS WAF (see DeleteRateBasedRule).

", + "RegexMatchSet$RegexMatchSetId": "

The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information about a RegexMatchSet (see GetRegexMatchSet), update a RegexMatchSet (see UpdateRegexMatchSet), insert a RegexMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a RegexMatchSet from AWS WAF (see DeleteRegexMatchSet).

RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.

", + "RegexMatchSetSummary$RegexMatchSetId": "

The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information about a RegexMatchSet, update a RegexMatchSet, remove a RegexMatchSet from a Rule, and delete a RegexMatchSet from AWS WAF.

RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.

", + "RegexMatchTuple$RegexPatternSetId": "

The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet (see GetRegexPatternSet), update a RegexPatternSet (see UpdateRegexPatternSet), insert a RegexPatternSet into a RegexMatchSet or delete one from a RegexMatchSet (see UpdateRegexMatchSet), and delete an RegexPatternSet from AWS WAF (see DeleteRegexPatternSet).

RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", + "RegexPatternSet$RegexPatternSetId": "

The identifier for the RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet, update a RegexPatternSet, remove a RegexPatternSet from a RegexMatchSet, and delete a RegexPatternSet from AWS WAF.

RegexMatchSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", + "RegexPatternSetSummary$RegexPatternSetId": "

The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet, update a RegexPatternSet, remove a RegexPatternSet from a RegexMatchSet, and delete a RegexPatternSet from AWS WAF.

RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", "Rule$RuleId": "

A unique identifier for a Rule. You use RuleId to get more information about a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a Rule from AWS WAF (see DeleteRule).

RuleId is returned by CreateRule and by ListRules.

", + "RuleGroup$RuleGroupId": "

A unique identifier for a RuleGroup. You use RuleGroupId to get more information about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup), insert a RuleGroup into a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a RuleGroup from AWS WAF (see DeleteRuleGroup).

RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.

", + "RuleGroupSummary$RuleGroupId": "

A unique identifier for a RuleGroup. You use RuleGroupId to get more information about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup), insert a RuleGroup into a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a RuleGroup from AWS WAF (see DeleteRuleGroup).

RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.

", "RuleSummary$RuleId": "

A unique identifier for a Rule. You use RuleId to get more information about a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a Rule from AWS WAF (see DeleteRule).

RuleId is returned by CreateRule and by ListRules.

", + "SampledHTTPRequest$RuleWithinRuleGroup": "

This value is returned if the GetSampledRequests request specifies the ID of a RuleGroup rather than the ID of an individual rule. RuleWithinRuleGroup is the rule within the specified RuleGroup that matched the request listed in the response.

", "SizeConstraintSet$SizeConstraintSetId": "

A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId to get information about a SizeConstraintSet (see GetSizeConstraintSet), update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet from AWS WAF (see DeleteSizeConstraintSet).

SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.

", "SizeConstraintSetSummary$SizeConstraintSetId": "

A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId to get information about a SizeConstraintSet (see GetSizeConstraintSet), update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet from AWS WAF (see DeleteSizeConstraintSet).

SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.

", "SqlInjectionMatchSet$SqlInjectionMatchSetId": "

A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet), update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet).

SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.

", "SqlInjectionMatchSetSummary$SqlInjectionMatchSetId": "

A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet), update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet).

SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.

", + "SubscribedRuleGroupSummary$RuleGroupId": "

A unique identifier for a RuleGroup.

", "UpdateByteMatchSetRequest$ByteMatchSetId": "

The ByteMatchSetId of the ByteMatchSet that you want to update. ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.

", + "UpdateGeoMatchSetRequest$GeoMatchSetId": "

The GeoMatchSetId of the GeoMatchSet that you want to update. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets.

", "UpdateIPSetRequest$IPSetId": "

The IPSetId of the IPSet that you want to update. IPSetId is returned by CreateIPSet and by ListIPSets.

", "UpdateRateBasedRuleRequest$RuleId": "

The RuleId of the RateBasedRule that you want to update. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules.

", + "UpdateRegexMatchSetRequest$RegexMatchSetId": "

The RegexMatchSetId of the RegexMatchSet that you want to update. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.

", + "UpdateRegexPatternSetRequest$RegexPatternSetId": "

The RegexPatternSetId of the RegexPatternSet that you want to update. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", + "UpdateRuleGroupRequest$RuleGroupId": "

The RuleGroupId of the RuleGroup that you want to update. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.

", "UpdateRuleRequest$RuleId": "

The RuleId of the Rule that you want to update. RuleId is returned by CreateRule and by ListRules.

", "UpdateSizeConstraintSetRequest$SizeConstraintSetId": "

The SizeConstraintSetId of the SizeConstraintSet that you want to update. SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.

", "UpdateSqlInjectionMatchSetRequest$SqlInjectionMatchSetId": "

The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to update. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.

", @@ -946,22 +1368,35 @@ "ByteMatchSet$Name": "

A friendly name or description of the ByteMatchSet. You can't change Name after you create a ByteMatchSet.

", "ByteMatchSetSummary$Name": "

A friendly name or description of the ByteMatchSet. You can't change Name after you create a ByteMatchSet.

", "CreateByteMatchSetRequest$Name": "

A friendly name or description of the ByteMatchSet. You can't change Name after you create a ByteMatchSet.

", + "CreateGeoMatchSetRequest$Name": "

A friendly name or description of the GeoMatchSet. You can't change Name after you create the GeoMatchSet.

", "CreateIPSetRequest$Name": "

A friendly name or description of the IPSet. You can't change Name after you create the IPSet.

", "CreateRateBasedRuleRequest$Name": "

A friendly name or description of the RateBasedRule. You can't change the name of a RateBasedRule after you create it.

", + "CreateRegexMatchSetRequest$Name": "

A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet.

", + "CreateRegexPatternSetRequest$Name": "

A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet.

", + "CreateRuleGroupRequest$Name": "

A friendly name or description of the RuleGroup. You can't change Name after you create a RuleGroup.

", "CreateRuleRequest$Name": "

A friendly name or description of the Rule. You can't change the name of a Rule after you create it.

", "CreateSizeConstraintSetRequest$Name": "

A friendly name or description of the SizeConstraintSet. You can't change Name after you create a SizeConstraintSet.

", "CreateSqlInjectionMatchSetRequest$Name": "

A friendly name or description for the SqlInjectionMatchSet that you're creating. You can't change Name after you create the SqlInjectionMatchSet.

", "CreateWebACLRequest$Name": "

A friendly name or description of the WebACL. You can't change Name after you create the WebACL.

", "CreateXssMatchSetRequest$Name": "

A friendly name or description for the XssMatchSet that you're creating. You can't change Name after you create the XssMatchSet.

", + "GeoMatchSet$Name": "

A friendly name or description of the GeoMatchSet. You can't change the name of an GeoMatchSet after you create it.

", + "GeoMatchSetSummary$Name": "

A friendly name or description of the GeoMatchSet. You can't change the name of an GeoMatchSet after you create it.

", "IPSet$Name": "

A friendly name or description of the IPSet. You can't change the name of an IPSet after you create it.

", "IPSetSummary$Name": "

A friendly name or description of the IPSet. You can't change the name of an IPSet after you create it.

", "RateBasedRule$Name": "

A friendly name or description for a RateBasedRule. You can't change the name of a RateBasedRule after you create it.

", + "RegexMatchSet$Name": "

A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet.

", + "RegexMatchSetSummary$Name": "

A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet.

", + "RegexPatternSet$Name": "

A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet.

", + "RegexPatternSetSummary$Name": "

A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet.

", "Rule$Name": "

The friendly name or description for the Rule. You can't change the name of a Rule after you create it.

", + "RuleGroup$Name": "

The friendly name or description for the RuleGroup. You can't change the name of a RuleGroup after you create it.

", + "RuleGroupSummary$Name": "

A friendly name or description of the RuleGroup. You can't change the name of a RuleGroup after you create it.

", "RuleSummary$Name": "

A friendly name or description of the Rule. You can't change the name of a Rule after you create it.

", "SizeConstraintSet$Name": "

The name, if any, of the SizeConstraintSet.

", "SizeConstraintSetSummary$Name": "

The name of the SizeConstraintSet, if any.

", "SqlInjectionMatchSet$Name": "

The name, if any, of the SqlInjectionMatchSet.

", "SqlInjectionMatchSetSummary$Name": "

The name of the SqlInjectionMatchSet, if any, specified by Id.

", + "SubscribedRuleGroupSummary$Name": "

A friendly name or description of the RuleGroup. You can't change the name of a RuleGroup after you create it.

", "WebACL$Name": "

A friendly name or description of the WebACL. You can't change the name of a WebACL after you create it.

", "WebACLSummary$Name": "

A friendly name or description of the WebACL. You can't change the name of a WebACL after you create it.

", "XssMatchSet$Name": "

The name, if any, of the XssMatchSet.

", @@ -975,6 +1410,37 @@ "GetRuleResponse$Rule": "

Information about the Rule that you specified in the GetRule request. For more information, see the following topics:

  • Rule: Contains MetricName, Name, an array of Predicate objects, and RuleId

  • Predicate: Each Predicate object contains DataId, Negated, and Type

" } }, + "RuleGroup": { + "base": "

A collection of predefined rules that you can add to a web ACL.

Rule groups are subject to the following limits:

  • Three rule groups per account. You can request an increase to this limit by contacting customer support.

  • One rule group per web ACL.

  • Ten rules per rule group.

", + "refs": { + "CreateRuleGroupResponse$RuleGroup": "

An empty RuleGroup.

", + "GetRuleGroupResponse$RuleGroup": "

Information about the RuleGroup that you specified in the GetRuleGroup request.

" + } + }, + "RuleGroupSummaries": { + "base": null, + "refs": { + "ListRuleGroupsResponse$RuleGroups": "

An array of RuleGroup objects.

" + } + }, + "RuleGroupSummary": { + "base": "

Contains the identifier and the friendly name or description of the RuleGroup.

", + "refs": { + "RuleGroupSummaries$member": null + } + }, + "RuleGroupUpdate": { + "base": "

Specifies an ActivatedRule and indicates whether you want to add it to a RuleGroup or delete it from a RuleGroup.

", + "refs": { + "RuleGroupUpdates$member": null + } + }, + "RuleGroupUpdates": { + "base": null, + "refs": { + "UpdateRuleGroupRequest$Updates": "

An array of RuleGroupUpdate objects that you want to insert into or delete from a RuleGroup.

You can only insert REGULAR rules into a rule group.

The Action data type within ActivatedRule is used only when submitting an UpdateWebACL request. ActivatedRule|Action is not applicable and therefore not available for UpdateRuleGroup.

" + } + }, "RulePriority": { "base": null, "refs": { @@ -1119,10 +1585,23 @@ "SqlInjectionMatchSet$SqlInjectionMatchTuples": "

Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code.

" } }, + "SubscribedRuleGroupSummaries": { + "base": null, + "refs": { + "ListSubscribedRuleGroupsResponse$RuleGroups": "

An array of RuleGroup objects.

" + } + }, + "SubscribedRuleGroupSummary": { + "base": "

A summary of the rule groups you are subscribed to.

", + "refs": { + "SubscribedRuleGroupSummaries$member": null + } + }, "TextTransformation": { "base": null, "refs": { "ByteMatchTuple$TextTransformation": "

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on TargetString before inspecting a request for a match.

CMD_LINE

When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

NONE

Specify NONE if you don't want to perform any text transformations.

", + "RegexMatchTuple$TextTransformation": "

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on RegexPatternSet before inspecting a request for a match.

CMD_LINE

When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

NONE

Specify NONE if you don't want to perform any text transformations.

", "SizeConstraint$TextTransformation": "

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on FieldToMatch before inspecting a request for a match.

Note that if you choose BODY for the value of Type, you must choose NONE for TextTransformation because CloudFront forwards only the first 8192 bytes for inspection.

NONE

Specify NONE if you don't want to perform any text transformations.

CMD_LINE

When you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

", "SqlInjectionMatchTuple$TextTransformation": "

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on FieldToMatch before inspecting a request for a match.

CMD_LINE

When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

NONE

Specify NONE if you don't want to perform any text transformations.

", "XssMatchTuple$TextTransformation": "

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on FieldToMatch before inspecting a request for a match.

CMD_LINE

When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

NONE

Specify NONE if you don't want to perform any text transformations.

" @@ -1159,6 +1638,16 @@ "refs": { } }, + "UpdateGeoMatchSetRequest": { + "base": null, + "refs": { + } + }, + "UpdateGeoMatchSetResponse": { + "base": null, + "refs": { + } + }, "UpdateIPSetRequest": { "base": null, "refs": { @@ -1179,6 +1668,36 @@ "refs": { } }, + "UpdateRegexMatchSetRequest": { + "base": null, + "refs": { + } + }, + "UpdateRegexMatchSetResponse": { + "base": null, + "refs": { + } + }, + "UpdateRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "UpdateRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "UpdateRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "UpdateRuleGroupResponse": { + "base": null, + "refs": { + } + }, "UpdateRuleRequest": { "base": null, "refs": { @@ -1250,7 +1769,12 @@ } }, "WAFInvalidParameterException": { - "base": "

The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

  • You specified an invalid parameter name.

  • You specified an invalid value.

  • You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) using an action other than INSERT or DELETE.

  • You tried to create a WebACL with a DefaultAction Type other than ALLOW, BLOCK, or COUNT.

  • You tried to create a RateBasedRule with a RateKey value other than IP.

  • You tried to update a WebACL with a WafAction Type other than ALLOW, BLOCK, or COUNT.

  • You tried to update a ByteMatchSet with a FieldToMatch Type other than HEADER, QUERY_STRING, or URI.

  • You tried to update a ByteMatchSet with a Field of HEADER but no value for Data.

  • Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL cannot be associated.

", + "base": "

The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

  • You specified an invalid parameter name.

  • You specified an invalid value.

  • You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) using an action other than INSERT or DELETE.

  • You tried to create a WebACL with a DefaultAction Type other than ALLOW, BLOCK, or COUNT.

  • You tried to create a RateBasedRule with a RateKey value other than IP.

  • You tried to update a WebACL with a WafAction Type other than ALLOW, BLOCK, or COUNT.

  • You tried to update a ByteMatchSet with a FieldToMatch Type other than HEADER, METHOD, QUERY_STRING, URI, or BODY.

  • You tried to update a ByteMatchSet with a Field of HEADER but no value for Data.

  • Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL cannot be associated.

", + "refs": { + } + }, + "WAFInvalidRegexPatternException": { + "base": "

The regular expression (regex) you specified in RegexPatternString is invalid.

", "refs": { } }, @@ -1284,6 +1808,11 @@ "refs": { } }, + "WAFSubscriptionNotFoundException": { + "base": "

The specified subscription does not exist.

", + "refs": { + } + }, "WAFUnavailableEntityException": { "base": "

The operation failed because the entity referenced is temporarily unavailable. Retry your request.

", "refs": { @@ -1292,7 +1821,7 @@ "WafAction": { "base": "

For the action that is associated with a rule in a WebACL, specifies the action that you want AWS WAF to perform when a web request matches all of the conditions in a rule. For the default action in a WebACL, specifies the action that you want AWS WAF to take when a web request doesn't match all of the conditions in any of the rules in a WebACL.

", "refs": { - "ActivatedRule$Action": "

Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the Rule. Valid values for Action include the following:

  • ALLOW: CloudFront responds with the requested object.

  • BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code.

  • COUNT: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL.

", + "ActivatedRule$Action": "

Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the Rule. Valid values for Action include the following:

  • ALLOW: CloudFront responds with the requested object.

  • BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code.

  • COUNT: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL.

The Action data type within ActivatedRule is used only when submitting an UpdateWebACL request. ActivatedRule|Action is not applicable and therefore not available for UpdateRuleGroup.

", "CreateWebACLRequest$DefaultAction": "

The action that you want AWS WAF to take when a request doesn't match the criteria specified in any of the Rule objects that are associated with the WebACL.

", "UpdateWebACLRequest$DefaultAction": "

A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the rules in a web ACL.

", "WebACL$DefaultAction": "

The action to perform if none of the Rules contained in the WebACL match. The action is specified by the WafAction object.

" @@ -1304,10 +1833,22 @@ "WafAction$Type": "

Specifies how you want AWS WAF to respond to requests that match the settings in a Rule. Valid settings include the following:

  • ALLOW: AWS WAF allows requests

  • BLOCK: AWS WAF blocks requests

  • COUNT: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify COUNT for the default action for a WebACL.

" } }, + "WafOverrideAction": { + "base": "

The action to take if any rule within the RuleGroup matches a request.

", + "refs": { + "ActivatedRule$OverrideAction": "

Use the OverrideAction to test your RuleGroup.

Any rule in a RuleGroup can potentially block a request. If you set the OverrideAction to None, the RuleGroup will block a request if any individual rule in the RuleGroup matches the request and is configured to block that request. However if you first want to test the RuleGroup, set the OverrideAction to Count. The RuleGroup will then override any block action specified by individual rules contained within the group. Instead of blocking matching requests, those requests will be counted. You can view a record of counted requests using GetSampledRequests.

The OverrideAction data type within ActivatedRule is used only when submitting an UpdateRuleGroup request. ActivatedRule|OverrideAction is not applicable and therefore not available for UpdateWebACL.

" + } + }, + "WafOverrideActionType": { + "base": null, + "refs": { + "WafOverrideAction$Type": "

COUNT overrides the action specified by the individual rule within a RuleGroup . If set to NONE, the rule's action will take place.

" + } + }, "WafRuleType": { "base": null, "refs": { - "ActivatedRule$Type": "

The rule type, either REGULAR, as defined by Rule, or RATE_BASED, as defined by RateBasedRule. The default is REGULAR. Although this field is optional, be aware that if you try to add a RATE_BASED rule to a web ACL without setting the type, the UpdateWebACL request will fail because the request tries to add a REGULAR rule with the specified ID, which does not exist.

" + "ActivatedRule$Type": "

The rule type, either REGULAR, as defined by Rule, RATE_BASED, as defined by RateBasedRule, or GROUP, as defined by RuleGroup. The default is REGULAR. Although this field is optional, be aware that if you try to add a RATE_BASED rule to a web ACL without setting the type, the UpdateWebACL request will fail because the request tries to add a REGULAR rule with the specified ID, which does not exist.

" } }, "WebACL": { @@ -1339,7 +1880,7 @@ "WebACLUpdates": { "base": null, "refs": { - "UpdateWebACLRequest$Updates": "

An array of updates to make to the WebACL.

An array of WebACLUpdate objects that you want to insert into or delete from a WebACL. For more information, see the applicable data types:

" + "UpdateWebACLRequest$Updates": "

An array of updates to make to the WebACL.

An array of WebACLUpdate objects that you want to insert into or delete from a WebACL. For more information, see the applicable data types:

  • WebACLUpdate: Contains Action and ActivatedRule

  • ActivatedRule: Contains Action, Priority, RuleId, and Type. The OverrideAction data type within ActivatedRule is used only when submitting an UpdateRuleGroup request. ActivatedRule|OverrideAction is not applicable and therefore not available for UpdateWebACL.

  • WafAction: Contains Type

" } }, "XssMatchSet": { @@ -1392,12 +1933,14 @@ "WAFDisallowedNameException$message": null, "WAFInternalErrorException$message": null, "WAFInvalidOperationException$message": null, + "WAFInvalidRegexPatternException$message": null, "WAFLimitsExceededException$message": null, "WAFNonEmptyEntityException$message": null, "WAFNonexistentContainerException$message": null, "WAFNonexistentItemException$message": null, "WAFReferencedItemException$message": null, "WAFStaleDataException$message": null, + "WAFSubscriptionNotFoundException$message": null, "WAFUnavailableEntityException$message": null } } diff --git a/models/apis/waf-regional/2016-11-28/smoke.json b/models/apis/waf-regional/2016-11-28/smoke.json new file mode 100644 index 00000000000..83717fc850d --- /dev/null +++ b/models/apis/waf-regional/2016-11-28/smoke.json @@ -0,0 +1,21 @@ +{ + "version": 1, + "defaultRegion": "us-east-1", + "testCases": [ + { + "operationName": "ListRules", + "input": { + "Limit": 20 + }, + "errorExpectedFromService": false + }, + { + "operationName": "CreateSqlInjectionMatchSet", + "input": { + "Name": "fake_name", + "ChangeToken": "fake_token" + }, + "errorExpectedFromService": true + } + ] +} \ No newline at end of file diff --git a/models/apis/waf/2015-08-24/api-2.json b/models/apis/waf/2015-08-24/api-2.json index 18afe155e35..13f837d4875 100644 --- a/models/apis/waf/2015-08-24/api-2.json +++ b/models/apis/waf/2015-08-24/api-2.json @@ -7,6 +7,7 @@ "protocol":"json", "serviceAbbreviation":"WAF", "serviceFullName":"AWS WAF", + "serviceId":"WAF", "signatureVersion":"v4", "targetPrefix":"AWSWAF_20150824", "uid":"waf-2015-08-24" @@ -29,6 +30,23 @@ {"shape":"WAFLimitsExceededException"} ] }, + "CreateGeoMatchSet":{ + "name":"CreateGeoMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGeoMatchSetRequest"}, + "output":{"shape":"CreateGeoMatchSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFDisallowedNameException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, "CreateIPSet":{ "name":"CreateIPSet", "http":{ @@ -62,6 +80,36 @@ {"shape":"WAFLimitsExceededException"} ] }, + "CreateRegexMatchSet":{ + "name":"CreateRegexMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRegexMatchSetRequest"}, + "output":{"shape":"CreateRegexMatchSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFDisallowedNameException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, + "CreateRegexPatternSet":{ + "name":"CreateRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRegexPatternSetRequest"}, + "output":{"shape":"CreateRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFDisallowedNameException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, "CreateRule":{ "name":"CreateRule", "http":{ @@ -78,6 +126,21 @@ {"shape":"WAFLimitsExceededException"} ] }, + "CreateRuleGroup":{ + "name":"CreateRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRuleGroupRequest"}, + "output":{"shape":"CreateRuleGroupResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFDisallowedNameException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, "CreateSizeConstraintSet":{ "name":"CreateSizeConstraintSet", "http":{ @@ -163,6 +226,23 @@ {"shape":"WAFNonEmptyEntityException"} ] }, + "DeleteGeoMatchSet":{ + "name":"DeleteGeoMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGeoMatchSetRequest"}, + "output":{"shape":"DeleteGeoMatchSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFReferencedItemException"}, + {"shape":"WAFNonEmptyEntityException"} + ] + }, "DeleteIPSet":{ "name":"DeleteIPSet", "http":{ @@ -197,6 +277,40 @@ {"shape":"WAFNonEmptyEntityException"} ] }, + "DeleteRegexMatchSet":{ + "name":"DeleteRegexMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRegexMatchSetRequest"}, + "output":{"shape":"DeleteRegexMatchSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFReferencedItemException"}, + {"shape":"WAFStaleDataException"}, + {"shape":"WAFNonEmptyEntityException"} + ] + }, + "DeleteRegexPatternSet":{ + "name":"DeleteRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRegexPatternSetRequest"}, + "output":{"shape":"DeleteRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFReferencedItemException"}, + {"shape":"WAFStaleDataException"}, + {"shape":"WAFNonEmptyEntityException"} + ] + }, "DeleteRule":{ "name":"DeleteRule", "http":{ @@ -214,6 +328,22 @@ {"shape":"WAFNonEmptyEntityException"} ] }, + "DeleteRuleGroup":{ + "name":"DeleteRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRuleGroupRequest"}, + "output":{"shape":"DeleteRuleGroupResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFReferencedItemException"}, + {"shape":"WAFNonEmptyEntityException"} + ] + }, "DeleteSizeConstraintSet":{ "name":"DeleteSizeConstraintSet", "http":{ @@ -321,6 +451,20 @@ {"shape":"WAFInternalErrorException"} ] }, + "GetGeoMatchSet":{ + "name":"GetGeoMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetGeoMatchSetRequest"}, + "output":{"shape":"GetGeoMatchSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, "GetIPSet":{ "name":"GetIPSet", "http":{ @@ -364,6 +508,34 @@ {"shape":"WAFInvalidParameterException"} ] }, + "GetRegexMatchSet":{ + "name":"GetRegexMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRegexMatchSetRequest"}, + "output":{"shape":"GetRegexMatchSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, + "GetRegexPatternSet":{ + "name":"GetRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRegexPatternSetRequest"}, + "output":{"shape":"GetRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, "GetRule":{ "name":"GetRule", "http":{ @@ -378,6 +550,19 @@ {"shape":"WAFNonexistentItemException"} ] }, + "GetRuleGroup":{ + "name":"GetRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRuleGroupRequest"}, + "output":{"shape":"GetRuleGroupResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"} + ] + }, "GetSampledRequests":{ "name":"GetSampledRequests", "http":{ @@ -447,6 +632,20 @@ {"shape":"WAFNonexistentItemException"} ] }, + "ListActivatedRulesInRuleGroup":{ + "name":"ListActivatedRulesInRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListActivatedRulesInRuleGroupRequest"}, + "output":{"shape":"ListActivatedRulesInRuleGroupResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, "ListByteMatchSets":{ "name":"ListByteMatchSets", "http":{ @@ -460,6 +659,19 @@ {"shape":"WAFInvalidAccountException"} ] }, + "ListGeoMatchSets":{ + "name":"ListGeoMatchSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGeoMatchSetsRequest"}, + "output":{"shape":"ListGeoMatchSetsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"} + ] + }, "ListIPSets":{ "name":"ListIPSets", "http":{ @@ -486,6 +698,44 @@ {"shape":"WAFInvalidAccountException"} ] }, + "ListRegexMatchSets":{ + "name":"ListRegexMatchSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRegexMatchSetsRequest"}, + "output":{"shape":"ListRegexMatchSetsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"} + ] + }, + "ListRegexPatternSets":{ + "name":"ListRegexPatternSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRegexPatternSetsRequest"}, + "output":{"shape":"ListRegexPatternSetsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"} + ] + }, + "ListRuleGroups":{ + "name":"ListRuleGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRuleGroupsRequest"}, + "output":{"shape":"ListRuleGroupsResponse"}, + "errors":[ + {"shape":"WAFInternalErrorException"} + ] + }, "ListRules":{ "name":"ListRules", "http":{ @@ -525,6 +775,19 @@ {"shape":"WAFInvalidAccountException"} ] }, + "ListSubscribedRuleGroups":{ + "name":"ListSubscribedRuleGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSubscribedRuleGroupsRequest"}, + "output":{"shape":"ListSubscribedRuleGroupsResponse"}, + "errors":[ + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFInternalErrorException"} + ] + }, "ListWebACLs":{ "name":"ListWebACLs", "http":{ @@ -570,6 +833,26 @@ {"shape":"WAFLimitsExceededException"} ] }, + "UpdateGeoMatchSet":{ + "name":"UpdateGeoMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGeoMatchSetRequest"}, + "output":{"shape":"UpdateGeoMatchSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFInvalidOperationException"}, + {"shape":"WAFInvalidParameterException"}, + {"shape":"WAFNonexistentContainerException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFReferencedItemException"}, + {"shape":"WAFLimitsExceededException"} + ] + }, "UpdateIPSet":{ "name":"UpdateIPSet", "http":{ @@ -610,6 +893,44 @@ {"shape":"WAFLimitsExceededException"} ] }, + "UpdateRegexMatchSet":{ + "name":"UpdateRegexMatchSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRegexMatchSetRequest"}, + "output":{"shape":"UpdateRegexMatchSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFDisallowedNameException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFNonexistentContainerException"}, + {"shape":"WAFInvalidOperationException"}, + {"shape":"WAFInvalidAccountException"} + ] + }, + "UpdateRegexPatternSet":{ + "name":"UpdateRegexPatternSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRegexPatternSetRequest"}, + "output":{"shape":"UpdateRegexPatternSetResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFNonexistentContainerException"}, + {"shape":"WAFInvalidOperationException"}, + {"shape":"WAFInvalidAccountException"}, + {"shape":"WAFInvalidRegexPatternException"} + ] + }, "UpdateRule":{ "name":"UpdateRule", "http":{ @@ -630,6 +951,24 @@ {"shape":"WAFLimitsExceededException"} ] }, + "UpdateRuleGroup":{ + "name":"UpdateRuleGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRuleGroupRequest"}, + "output":{"shape":"UpdateRuleGroupResponse"}, + "errors":[ + {"shape":"WAFStaleDataException"}, + {"shape":"WAFInternalErrorException"}, + {"shape":"WAFNonexistentContainerException"}, + {"shape":"WAFNonexistentItemException"}, + {"shape":"WAFInvalidOperationException"}, + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFInvalidParameterException"} + ] + }, "UpdateSizeConstraintSet":{ "name":"UpdateSizeConstraintSet", "http":{ @@ -686,7 +1025,8 @@ {"shape":"WAFNonexistentContainerException"}, {"shape":"WAFNonexistentItemException"}, {"shape":"WAFReferencedItemException"}, - {"shape":"WAFLimitsExceededException"} + {"shape":"WAFLimitsExceededException"}, + {"shape":"WAFSubscriptionNotFoundException"} ] }, "UpdateXssMatchSet":{ @@ -715,13 +1055,13 @@ "type":"structure", "required":[ "Priority", - "RuleId", - "Action" + "RuleId" ], "members":{ "Priority":{"shape":"RulePriority"}, "RuleId":{"shape":"ResourceId"}, "Action":{"shape":"WafAction"}, + "OverrideAction":{"shape":"WafOverrideAction"}, "Type":{"shape":"WafRuleType"} } }, @@ -769,7 +1109,8 @@ }, "ByteMatchSetUpdates":{ "type":"list", - "member":{"shape":"ByteMatchSetUpdate"} + "member":{"shape":"ByteMatchSetUpdate"}, + "min":1 }, "ByteMatchTargetString":{"type":"blob"}, "ByteMatchTuple":{ @@ -840,7 +1181,7 @@ "ChangeToken":{"shape":"ChangeToken"} } }, - "CreateIPSetRequest":{ + "CreateGeoMatchSetRequest":{ "type":"structure", "required":[ "Name", @@ -851,19 +1192,37 @@ "ChangeToken":{"shape":"ChangeToken"} } }, - "CreateIPSetResponse":{ + "CreateGeoMatchSetResponse":{ "type":"structure", "members":{ - "IPSet":{"shape":"IPSet"}, + "GeoMatchSet":{"shape":"GeoMatchSet"}, "ChangeToken":{"shape":"ChangeToken"} } }, - "CreateRateBasedRuleRequest":{ + "CreateIPSetRequest":{ "type":"structure", "required":[ "Name", - "MetricName", - "RateKey", + "ChangeToken" + ], + "members":{ + "Name":{"shape":"ResourceName"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateIPSetResponse":{ + "type":"structure", + "members":{ + "IPSet":{"shape":"IPSet"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRateBasedRuleRequest":{ + "type":"structure", + "required":[ + "Name", + "MetricName", + "RateKey", "RateLimit", "ChangeToken" ], @@ -882,6 +1241,62 @@ "ChangeToken":{"shape":"ChangeToken"} } }, + "CreateRegexMatchSetRequest":{ + "type":"structure", + "required":[ + "Name", + "ChangeToken" + ], + "members":{ + "Name":{"shape":"ResourceName"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRegexMatchSetResponse":{ + "type":"structure", + "members":{ + "RegexMatchSet":{"shape":"RegexMatchSet"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRegexPatternSetRequest":{ + "type":"structure", + "required":[ + "Name", + "ChangeToken" + ], + "members":{ + "Name":{"shape":"ResourceName"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "RegexPatternSet":{"shape":"RegexPatternSet"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRuleGroupRequest":{ + "type":"structure", + "required":[ + "Name", + "MetricName", + "ChangeToken" + ], + "members":{ + "Name":{"shape":"ResourceName"}, + "MetricName":{"shape":"MetricName"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "CreateRuleGroupResponse":{ + "type":"structure", + "members":{ + "RuleGroup":{"shape":"RuleGroup"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, "CreateRuleRequest":{ "type":"structure", "required":[ @@ -995,6 +1410,23 @@ "ChangeToken":{"shape":"ChangeToken"} } }, + "DeleteGeoMatchSetRequest":{ + "type":"structure", + "required":[ + "GeoMatchSetId", + "ChangeToken" + ], + "members":{ + "GeoMatchSetId":{"shape":"ResourceId"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteGeoMatchSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, "DeleteIPSetRequest":{ "type":"structure", "required":[ @@ -1029,6 +1461,57 @@ "ChangeToken":{"shape":"ChangeToken"} } }, + "DeleteRegexMatchSetRequest":{ + "type":"structure", + "required":[ + "RegexMatchSetId", + "ChangeToken" + ], + "members":{ + "RegexMatchSetId":{"shape":"ResourceId"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteRegexMatchSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteRegexPatternSetRequest":{ + "type":"structure", + "required":[ + "RegexPatternSetId", + "ChangeToken" + ], + "members":{ + "RegexPatternSetId":{"shape":"ResourceId"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteRuleGroupRequest":{ + "type":"structure", + "required":[ + "RuleGroupId", + "ChangeToken" + ], + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "DeleteRuleGroupResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, "DeleteRuleRequest":{ "type":"structure", "required":[ @@ -1122,6 +1605,322 @@ "Data":{"shape":"MatchFieldData"} } }, + "GeoMatchConstraint":{ + "type":"structure", + "required":[ + "Type", + "Value" + ], + "members":{ + "Type":{"shape":"GeoMatchConstraintType"}, + "Value":{"shape":"GeoMatchConstraintValue"} + } + }, + "GeoMatchConstraintType":{ + "type":"string", + "enum":["Country"] + }, + "GeoMatchConstraintValue":{ + "type":"string", + "enum":[ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "KH", + "CM", + "CA", + "CV", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KP", + "KR", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MK", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SZ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "US", + "UM", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ] + }, + "GeoMatchConstraints":{ + "type":"list", + "member":{"shape":"GeoMatchConstraint"} + }, + "GeoMatchSet":{ + "type":"structure", + "required":[ + "GeoMatchSetId", + "GeoMatchConstraints" + ], + "members":{ + "GeoMatchSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"}, + "GeoMatchConstraints":{"shape":"GeoMatchConstraints"} + } + }, + "GeoMatchSetSummaries":{ + "type":"list", + "member":{"shape":"GeoMatchSetSummary"} + }, + "GeoMatchSetSummary":{ + "type":"structure", + "required":[ + "GeoMatchSetId", + "Name" + ], + "members":{ + "GeoMatchSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"} + } + }, + "GeoMatchSetUpdate":{ + "type":"structure", + "required":[ + "Action", + "GeoMatchConstraint" + ], + "members":{ + "Action":{"shape":"ChangeAction"}, + "GeoMatchConstraint":{"shape":"GeoMatchConstraint"} + } + }, + "GeoMatchSetUpdates":{ + "type":"list", + "member":{"shape":"GeoMatchSetUpdate"}, + "min":1 + }, "GetByteMatchSetRequest":{ "type":"structure", "required":["ByteMatchSetId"], @@ -1159,6 +1958,19 @@ "ChangeTokenStatus":{"shape":"ChangeTokenStatus"} } }, + "GetGeoMatchSetRequest":{ + "type":"structure", + "required":["GeoMatchSetId"], + "members":{ + "GeoMatchSetId":{"shape":"ResourceId"} + } + }, + "GetGeoMatchSetResponse":{ + "type":"structure", + "members":{ + "GeoMatchSet":{"shape":"GeoMatchSet"} + } + }, "GetIPSetRequest":{ "type":"structure", "required":["IPSetId"], @@ -1200,6 +2012,45 @@ "Rule":{"shape":"RateBasedRule"} } }, + "GetRegexMatchSetRequest":{ + "type":"structure", + "required":["RegexMatchSetId"], + "members":{ + "RegexMatchSetId":{"shape":"ResourceId"} + } + }, + "GetRegexMatchSetResponse":{ + "type":"structure", + "members":{ + "RegexMatchSet":{"shape":"RegexMatchSet"} + } + }, + "GetRegexPatternSetRequest":{ + "type":"structure", + "required":["RegexPatternSetId"], + "members":{ + "RegexPatternSetId":{"shape":"ResourceId"} + } + }, + "GetRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "RegexPatternSet":{"shape":"RegexPatternSet"} + } + }, + "GetRuleGroupRequest":{ + "type":"structure", + "required":["RuleGroupId"], + "members":{ + "RuleGroupId":{"shape":"ResourceId"} + } + }, + "GetRuleGroupResponse":{ + "type":"structure", + "members":{ + "RuleGroup":{"shape":"RuleGroup"} + } + }, "GetRuleRequest":{ "type":"structure", "required":["RuleId"], @@ -1382,9 +2233,25 @@ }, "IPSetUpdates":{ "type":"list", - "member":{"shape":"IPSetUpdate"} + "member":{"shape":"IPSetUpdate"}, + "min":1 }, "IPString":{"type":"string"}, + "ListActivatedRulesInRuleGroupRequest":{ + "type":"structure", + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListActivatedRulesInRuleGroupResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "ActivatedRules":{"shape":"ActivatedRules"} + } + }, "ListByteMatchSetsRequest":{ "type":"structure", "members":{ @@ -1399,6 +2266,20 @@ "ByteMatchSets":{"shape":"ByteMatchSetSummaries"} } }, + "ListGeoMatchSetsRequest":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListGeoMatchSetsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "GeoMatchSets":{"shape":"GeoMatchSetSummaries"} + } + }, "ListIPSetsRequest":{ "type":"structure", "members":{ @@ -1427,6 +2308,48 @@ "Rules":{"shape":"RuleSummaries"} } }, + "ListRegexMatchSetsRequest":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListRegexMatchSetsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "RegexMatchSets":{"shape":"RegexMatchSetSummaries"} + } + }, + "ListRegexPatternSetsRequest":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListRegexPatternSetsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "RegexPatternSets":{"shape":"RegexPatternSetSummaries"} + } + }, + "ListRuleGroupsRequest":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListRuleGroupsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "RuleGroups":{"shape":"RuleGroupSummaries"} + } + }, "ListRulesRequest":{ "type":"structure", "members":{ @@ -1469,6 +2392,20 @@ "SqlInjectionMatchSets":{"shape":"SqlInjectionMatchSetSummaries"} } }, + "ListSubscribedRuleGroupsRequest":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "Limit":{"shape":"PaginationLimit"} + } + }, + "ListSubscribedRuleGroupsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"NextMarker"}, + "RuleGroups":{"shape":"SubscribedRuleGroupSummaries"} + } + }, "ListWebACLsRequest":{ "type":"structure", "members":{ @@ -1529,6 +2466,7 @@ "enum":[ "CHANGE_ACTION", "WAF_ACTION", + "WAF_OVERRIDE_ACTION", "PREDICATE_TYPE", "IPSET_TYPE", "BYTE_MATCH_FIELD_TYPE", @@ -1536,6 +2474,8 @@ "BYTE_MATCH_TEXT_TRANSFORMATION", "BYTE_MATCH_POSITIONAL_CONSTRAINT", "SIZE_CONSTRAINT_COMPARISON_OPERATOR", + "GEO_MATCH_LOCATION_TYPE", + "GEO_MATCH_LOCATION_VALUE", "RATE_KEY", "RULE_TYPE", "NEXT_MARKER" @@ -1582,8 +2522,10 @@ "IPMatch", "ByteMatch", "SqlInjectionMatch", + "GeoMatch", "SizeConstraint", - "XssMatch" + "XssMatch", + "RegexMatch" ] }, "Predicates":{ @@ -1615,6 +2557,114 @@ "type":"long", "min":2000 }, + "RegexMatchSet":{ + "type":"structure", + "members":{ + "RegexMatchSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"}, + "RegexMatchTuples":{"shape":"RegexMatchTuples"} + } + }, + "RegexMatchSetSummaries":{ + "type":"list", + "member":{"shape":"RegexMatchSetSummary"} + }, + "RegexMatchSetSummary":{ + "type":"structure", + "required":[ + "RegexMatchSetId", + "Name" + ], + "members":{ + "RegexMatchSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"} + } + }, + "RegexMatchSetUpdate":{ + "type":"structure", + "required":[ + "Action", + "RegexMatchTuple" + ], + "members":{ + "Action":{"shape":"ChangeAction"}, + "RegexMatchTuple":{"shape":"RegexMatchTuple"} + } + }, + "RegexMatchSetUpdates":{ + "type":"list", + "member":{"shape":"RegexMatchSetUpdate"}, + "min":1 + }, + "RegexMatchTuple":{ + "type":"structure", + "required":[ + "FieldToMatch", + "TextTransformation", + "RegexPatternSetId" + ], + "members":{ + "FieldToMatch":{"shape":"FieldToMatch"}, + "TextTransformation":{"shape":"TextTransformation"}, + "RegexPatternSetId":{"shape":"ResourceId"} + } + }, + "RegexMatchTuples":{ + "type":"list", + "member":{"shape":"RegexMatchTuple"} + }, + "RegexPatternSet":{ + "type":"structure", + "required":[ + "RegexPatternSetId", + "RegexPatternStrings" + ], + "members":{ + "RegexPatternSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"}, + "RegexPatternStrings":{"shape":"RegexPatternStrings"} + } + }, + "RegexPatternSetSummaries":{ + "type":"list", + "member":{"shape":"RegexPatternSetSummary"} + }, + "RegexPatternSetSummary":{ + "type":"structure", + "required":[ + "RegexPatternSetId", + "Name" + ], + "members":{ + "RegexPatternSetId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"} + } + }, + "RegexPatternSetUpdate":{ + "type":"structure", + "required":[ + "Action", + "RegexPatternString" + ], + "members":{ + "Action":{"shape":"ChangeAction"}, + "RegexPatternString":{"shape":"RegexPatternString"} + } + }, + "RegexPatternSetUpdates":{ + "type":"list", + "member":{"shape":"RegexPatternSetUpdate"}, + "min":1 + }, + "RegexPatternString":{ + "type":"string", + "min":1 + }, + "RegexPatternStrings":{ + "type":"list", + "member":{"shape":"RegexPatternString"}, + "max":10 + }, "ResourceId":{ "type":"string", "max":128, @@ -1638,6 +2688,46 @@ "Predicates":{"shape":"Predicates"} } }, + "RuleGroup":{ + "type":"structure", + "required":["RuleGroupId"], + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"}, + "MetricName":{"shape":"MetricName"} + } + }, + "RuleGroupSummaries":{ + "type":"list", + "member":{"shape":"RuleGroupSummary"} + }, + "RuleGroupSummary":{ + "type":"structure", + "required":[ + "RuleGroupId", + "Name" + ], + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"} + } + }, + "RuleGroupUpdate":{ + "type":"structure", + "required":[ + "Action", + "ActivatedRule" + ], + "members":{ + "Action":{"shape":"ChangeAction"}, + "ActivatedRule":{"shape":"ActivatedRule"} + } + }, + "RuleGroupUpdates":{ + "type":"list", + "member":{"shape":"RuleGroupUpdate"}, + "min":1 + }, "RulePriority":{"type":"integer"}, "RuleSummaries":{ "type":"list", @@ -1683,7 +2773,8 @@ "Request":{"shape":"HTTPRequest"}, "Weight":{"shape":"SampleWeight"}, "Timestamp":{"shape":"Timestamp"}, - "Action":{"shape":"Action"} + "Action":{"shape":"Action"}, + "RuleWithinRuleGroup":{"shape":"ResourceId"} } }, "SampledHTTPRequests":{ @@ -1750,7 +2841,8 @@ }, "SizeConstraintSetUpdates":{ "type":"list", - "member":{"shape":"SizeConstraintSetUpdate"} + "member":{"shape":"SizeConstraintSetUpdate"}, + "min":1 }, "SizeConstraints":{ "type":"list", @@ -1796,7 +2888,8 @@ }, "SqlInjectionMatchSetUpdates":{ "type":"list", - "member":{"shape":"SqlInjectionMatchSetUpdate"} + "member":{"shape":"SqlInjectionMatchSetUpdate"}, + "min":1 }, "SqlInjectionMatchTuple":{ "type":"structure", @@ -1813,6 +2906,23 @@ "type":"list", "member":{"shape":"SqlInjectionMatchTuple"} }, + "SubscribedRuleGroupSummaries":{ + "type":"list", + "member":{"shape":"SubscribedRuleGroupSummary"} + }, + "SubscribedRuleGroupSummary":{ + "type":"structure", + "required":[ + "RuleGroupId", + "Name", + "MetricName" + ], + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "Name":{"shape":"ResourceName"}, + "MetricName":{"shape":"MetricName"} + } + }, "TextTransformation":{ "type":"string", "enum":[ @@ -1856,6 +2966,25 @@ "ChangeToken":{"shape":"ChangeToken"} } }, + "UpdateGeoMatchSetRequest":{ + "type":"structure", + "required":[ + "GeoMatchSetId", + "ChangeToken", + "Updates" + ], + "members":{ + "GeoMatchSetId":{"shape":"ResourceId"}, + "ChangeToken":{"shape":"ChangeToken"}, + "Updates":{"shape":"GeoMatchSetUpdates"} + } + }, + "UpdateGeoMatchSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, "UpdateIPSetRequest":{ "type":"structure", "required":[ @@ -1896,6 +3025,63 @@ "ChangeToken":{"shape":"ChangeToken"} } }, + "UpdateRegexMatchSetRequest":{ + "type":"structure", + "required":[ + "RegexMatchSetId", + "Updates", + "ChangeToken" + ], + "members":{ + "RegexMatchSetId":{"shape":"ResourceId"}, + "Updates":{"shape":"RegexMatchSetUpdates"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "UpdateRegexMatchSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "UpdateRegexPatternSetRequest":{ + "type":"structure", + "required":[ + "RegexPatternSetId", + "Updates", + "ChangeToken" + ], + "members":{ + "RegexPatternSetId":{"shape":"ResourceId"}, + "Updates":{"shape":"RegexPatternSetUpdates"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "UpdateRegexPatternSetResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "UpdateRuleGroupRequest":{ + "type":"structure", + "required":[ + "RuleGroupId", + "Updates", + "ChangeToken" + ], + "members":{ + "RuleGroupId":{"shape":"ResourceId"}, + "Updates":{"shape":"RuleGroupUpdates"}, + "ChangeToken":{"shape":"ChangeToken"} + } + }, + "UpdateRuleGroupResponse":{ + "type":"structure", + "members":{ + "ChangeToken":{"shape":"ChangeToken"} + } + }, "UpdateRuleRequest":{ "type":"structure", "required":[ @@ -2028,6 +3214,13 @@ }, "exception":true }, + "WAFInvalidRegexPatternException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "exception":true + }, "WAFLimitsExceededException":{ "type":"structure", "members":{ @@ -2070,6 +3263,13 @@ }, "exception":true }, + "WAFSubscriptionNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "exception":true + }, "WafAction":{ "type":"structure", "required":["Type"], @@ -2085,11 +3285,26 @@ "COUNT" ] }, + "WafOverrideAction":{ + "type":"structure", + "required":["Type"], + "members":{ + "Type":{"shape":"WafOverrideActionType"} + } + }, + "WafOverrideActionType":{ + "type":"string", + "enum":[ + "NONE", + "COUNT" + ] + }, "WafRuleType":{ "type":"string", "enum":[ "REGULAR", - "RATE_BASED" + "RATE_BASED", + "GROUP" ] }, "WebACL":{ @@ -2177,7 +3392,8 @@ }, "XssMatchSetUpdates":{ "type":"list", - "member":{"shape":"XssMatchSetUpdate"} + "member":{"shape":"XssMatchSetUpdate"}, + "min":1 }, "XssMatchTuple":{ "type":"structure", diff --git a/models/apis/waf/2015-08-24/docs-2.json b/models/apis/waf/2015-08-24/docs-2.json index dfde32382fa..66c5cd0877a 100644 --- a/models/apis/waf/2015-08-24/docs-2.json +++ b/models/apis/waf/2015-08-24/docs-2.json @@ -3,17 +3,25 @@ "service": "

This is the AWS WAF API Reference for using AWS WAF with Amazon CloudFront. The AWS WAF actions and data types listed in the reference are available for protecting Amazon CloudFront distributions. You can use these actions and data types via the endpoint waf.amazonaws.com. This guide is for developers who need detailed information about the AWS WAF API actions, data types, and errors. For detailed information about AWS WAF features and an overview of how to use the AWS WAF API, see the AWS WAF Developer Guide.

", "operations": { "CreateByteMatchSet": "

Creates a ByteMatchSet. You then use UpdateByteMatchSet to identify the part of a web request that you want AWS WAF to inspect, such as the values of the User-Agent header or the query string. For example, you can create a ByteMatchSet that matches any requests with User-Agent headers that contain the string BadBot. You can then configure AWS WAF to reject those requests.

To create and configure a ByteMatchSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateByteMatchSet request.

  2. Submit a CreateByteMatchSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateByteMatchSet request.

  4. Submit an UpdateByteMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "CreateGeoMatchSet": "

Creates an GeoMatchSet, which you use to specify which web requests you want to allow or block based on the country that the requests originate from. For example, if you're receiving a lot of requests from one or more countries and you want to block the requests, you can create an GeoMatchSet that contains those countries and then configure AWS WAF to block the requests.

To create and configure a GeoMatchSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateGeoMatchSet request.

  2. Submit a CreateGeoMatchSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateGeoMatchSet request.

  4. Submit an UpdateGeoMatchSetSet request to specify the countries that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateIPSet": "

Creates an IPSet, which you use to specify which web requests you want to allow or block based on the IP addresses that the requests originate from. For example, if you're receiving a lot of requests from one or more individual IP addresses or one or more ranges of IP addresses and you want to block the requests, you can create an IPSet that contains those IP addresses and then configure AWS WAF to block the requests.

To create and configure an IPSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateIPSet request.

  2. Submit a CreateIPSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request.

  4. Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateRateBasedRule": "

Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies the maximum number of requests that AWS WAF allows from a specified IP address in a five-minute period. The RateBasedRule also contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to count or block if these requests exceed the RateLimit.

If you add more than one predicate to a RateBasedRule, a request not only must exceed the RateLimit, but it also must match all the specifications to be counted or blocked. For example, suppose you add the following to a RateBasedRule:

  • An IPSet that matches the IP address 192.0.2.44/32

  • A ByteMatchSet that matches BadBot in the User-Agent header

Further, you specify a RateLimit of 15,000.

You then add the RateBasedRule to a WebACL and specify that you want to block requests that meet the conditions in the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. Further, requests that match these two conditions must be received at a rate of more than 15,000 requests every five minutes. If both conditions are met and the rate is exceeded, AWS WAF blocks the requests. If the rate drops below 15,000 for a five-minute period, AWS WAF no longer blocks the requests.

As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a RateBasedRule:

  • A ByteMatchSet with FieldToMatch of URI

  • A PositionalConstraint of STARTS_WITH

  • A TargetString of login

Further, you specify a RateLimit of 15,000.

By adding this RateBasedRule to a WebACL, you could limit requests to your login page without affecting the rest of your site.

To create and configure a RateBasedRule, perform the following steps:

  1. Create and update the predicates that you want to include in the rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request.

  3. Submit a CreateRateBasedRule request.

  4. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request.

  5. Submit an UpdateRateBasedRule request to specify the predicates that you want to include in the rule.

  6. Create and update a WebACL that contains the RateBasedRule. For more information, see CreateWebACL.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "CreateRegexMatchSet": "

Creates a RegexMatchSet. You then use UpdateRegexMatchSet to identify the part of a web request that you want AWS WAF to inspect, such as the values of the User-Agent header or the query string. For example, you can create a RegexMatchSet that contains a RegexMatchTuple that looks for any requests with User-Agent headers that match a RegexPatternSet with pattern B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.

To create and configure a RegexMatchSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRegexMatchSet request.

  2. Submit a CreateRegexMatchSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexMatchSet request.

  4. Submit an UpdateRegexMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value, using a RegexPatternSet, that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "CreateRegexPatternSet": "

Creates a RegexPatternSet. You then use UpdateRegexPatternSet to specify the regular expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.

To create and configure a RegexPatternSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRegexPatternSet request.

  2. Submit a CreateRegexPatternSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexPatternSet request.

  4. Submit an UpdateRegexPatternSet request to specify the string that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateRule": "

Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and other predicates that identify the requests that you want to block. If you add more than one predicate to a Rule, a request must match all of the specifications to be allowed or blocked. For example, suppose you add the following to a Rule:

  • An IPSet that matches the IP address 192.0.2.44/32

  • A ByteMatchSet that matches BadBot in the User-Agent header

You then add the Rule to a WebACL and specify that you want to blocks requests that satisfy the Rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot.

To create and configure a Rule, perform the following steps:

  1. Create and update the predicates that you want to include in the Rule. For more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateRule request.

  3. Submit a CreateRule request.

  4. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request.

  5. Submit an UpdateRule request to specify the predicates that you want to include in the Rule.

  6. Create and update a WebACL that contains the Rule. For more information, see CreateWebACL.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "CreateRuleGroup": "

Creates a RuleGroup. A rule group is a collection of predefined rules that you add to a web ACL. You use UpdateRuleGroup to add rules to the rule group.

Rule groups are subject to the following limits:

  • Three rule groups per account. You can request an increase to this limit by contacting customer support.

  • One rule group per web ACL.

  • Ten rules per rule group.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateSizeConstraintSet": "

Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify the part of a web request that you want AWS WAF to check for length, such as the length of the User-Agent header or the length of the query string. For example, you can create a SizeConstraintSet that matches any requests that have a query string that is longer than 100 bytes. You can then configure AWS WAF to reject those requests.

To create and configure a SizeConstraintSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateSizeConstraintSet request.

  2. Submit a CreateSizeConstraintSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateSizeConstraintSet request.

  4. Submit an UpdateSizeConstraintSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateSqlInjectionMatchSet": "

Creates a SqlInjectionMatchSet, which you use to allow, block, or count requests that contain snippets of SQL code in a specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings.

To create and configure a SqlInjectionMatchSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateSqlInjectionMatchSet request.

  2. Submit a CreateSqlInjectionMatchSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateSqlInjectionMatchSet request.

  4. Submit an UpdateSqlInjectionMatchSet request to specify the parts of web requests in which you want to allow, block, or count malicious SQL code.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "CreateWebACL": "

Creates a WebACL, which contains the Rules that identify the CloudFront web requests that you want to allow, block, or count. AWS WAF evaluates Rules in order based on the value of Priority for each Rule.

You also specify a default action, either ALLOW or BLOCK. If a web request doesn't match any of the Rules in a WebACL, AWS WAF responds to the request with the default action.

To create and configure a WebACL, perform the following steps:

  1. Create and update the ByteMatchSet objects and other predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.

  2. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateWebACL request.

  4. Submit a CreateWebACL request.

  5. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request.

  6. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution.

For more information about how to use the AWS WAF API, see the AWS WAF Developer Guide.

", "CreateXssMatchSet": "

Creates an XssMatchSet, which you use to allow, block, or count requests that contain cross-site scripting attacks in the specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings.

To create and configure an XssMatchSet, perform the following steps:

  1. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a CreateXssMatchSet request.

  2. Submit a CreateXssMatchSet request.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateXssMatchSet request.

  4. Submit an UpdateXssMatchSet request to specify the parts of web requests in which you want to allow, block, or count cross-site scripting attacks.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "DeleteByteMatchSet": "

Permanently deletes a ByteMatchSet. You can't delete a ByteMatchSet if it's still used in any Rules or if it still includes any ByteMatchTuple objects (any filters).

If you just want to remove a ByteMatchSet from a Rule, use UpdateRule.

To permanently delete a ByteMatchSet, perform the following steps:

  1. Update the ByteMatchSet to remove filters, if any. For more information, see UpdateByteMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteByteMatchSet request.

  3. Submit a DeleteByteMatchSet request.

", + "DeleteGeoMatchSet": "

Permanently deletes a GeoMatchSet. You can't delete a GeoMatchSet if it's still used in any Rules or if it still includes any countries.

If you just want to remove a GeoMatchSet from a Rule, use UpdateRule.

To permanently delete a GeoMatchSet from AWS WAF, perform the following steps:

  1. Update the GeoMatchSet to remove any countries. For more information, see UpdateGeoMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteGeoMatchSet request.

  3. Submit a DeleteGeoMatchSet request.

", "DeleteIPSet": "

Permanently deletes an IPSet. You can't delete an IPSet if it's still used in any Rules or if it still includes any IP addresses.

If you just want to remove an IPSet from a Rule, use UpdateRule.

To permanently delete an IPSet from AWS WAF, perform the following steps:

  1. Update the IPSet to remove IP address ranges, if any. For more information, see UpdateIPSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteIPSet request.

  3. Submit a DeleteIPSet request.

", "DeleteRateBasedRule": "

Permanently deletes a RateBasedRule. You can't delete a rule if it's still used in any WebACL objects or if it still includes any predicates, such as ByteMatchSet objects.

If you just want to remove a rule from a WebACL, use UpdateWebACL.

To permanently delete a RateBasedRule from AWS WAF, perform the following steps:

  1. Update the RateBasedRule to remove predicates, if any. For more information, see UpdateRateBasedRule.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRateBasedRule request.

  3. Submit a DeleteRateBasedRule request.

", + "DeleteRegexMatchSet": "

Permanently deletes a RegexMatchSet. You can't delete a RegexMatchSet if it's still used in any Rules or if it still includes any RegexMatchTuples objects (any filters).

If you just want to remove a RegexMatchSet from a Rule, use UpdateRule.

To permanently delete a RegexMatchSet, perform the following steps:

  1. Update the RegexMatchSet to remove filters, if any. For more information, see UpdateRegexMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRegexMatchSet request.

  3. Submit a DeleteRegexMatchSet request.

", + "DeleteRegexPatternSet": "

Permanently deletes a RegexPatternSet. You can't delete a RegexPatternSet if it's still used in any RegexMatchSet or if the RegexPatternSet is not empty.

", "DeleteRule": "

Permanently deletes a Rule. You can't delete a Rule if it's still used in any WebACL objects or if it still includes any predicates, such as ByteMatchSet objects.

If you just want to remove a Rule from a WebACL, use UpdateWebACL.

To permanently delete a Rule from AWS WAF, perform the following steps:

  1. Update the Rule to remove predicates, if any. For more information, see UpdateRule.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRule request.

  3. Submit a DeleteRule request.

", + "DeleteRuleGroup": "

Permanently deletes a RuleGroup. You can't delete a RuleGroup if it's still used in any WebACL objects or if it still includes any rules.

If you just want to remove a RuleGroup from a WebACL, use UpdateWebACL.

To permanently delete a RuleGroup from AWS WAF, perform the following steps:

  1. Update the RuleGroup to remove rules, if any. For more information, see UpdateRuleGroup.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteRuleGroup request.

  3. Submit a DeleteRuleGroup request.

", "DeleteSizeConstraintSet": "

Permanently deletes a SizeConstraintSet. You can't delete a SizeConstraintSet if it's still used in any Rules or if it still includes any SizeConstraint objects (any filters).

If you just want to remove a SizeConstraintSet from a Rule, use UpdateRule.

To permanently delete a SizeConstraintSet, perform the following steps:

  1. Update the SizeConstraintSet to remove filters, if any. For more information, see UpdateSizeConstraintSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteSizeConstraintSet request.

  3. Submit a DeleteSizeConstraintSet request.

", "DeleteSqlInjectionMatchSet": "

Permanently deletes a SqlInjectionMatchSet. You can't delete a SqlInjectionMatchSet if it's still used in any Rules or if it still contains any SqlInjectionMatchTuple objects.

If you just want to remove a SqlInjectionMatchSet from a Rule, use UpdateRule.

To permanently delete a SqlInjectionMatchSet from AWS WAF, perform the following steps:

  1. Update the SqlInjectionMatchSet to remove filters, if any. For more information, see UpdateSqlInjectionMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteSqlInjectionMatchSet request.

  3. Submit a DeleteSqlInjectionMatchSet request.

", "DeleteWebACL": "

Permanently deletes a WebACL. You can't delete a WebACL if it still contains any Rules.

To delete a WebACL, perform the following steps:

  1. Update the WebACL to remove Rules, if any. For more information, see UpdateWebACL.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of a DeleteWebACL request.

  3. Submit a DeleteWebACL request.

", @@ -21,27 +29,41 @@ "GetByteMatchSet": "

Returns the ByteMatchSet specified by ByteMatchSetId.

", "GetChangeToken": "

When you want to create, update, or delete AWS WAF objects, get a change token and include the change token in the create, update, or delete request. Change tokens ensure that your application doesn't submit conflicting requests to AWS WAF.

Each create, update, or delete request must use a unique change token. If your application submits a GetChangeToken request and then submits a second GetChangeToken request before submitting a create, update, or delete request, the second GetChangeToken request returns the same value as the first GetChangeToken request.

When you use a change token in a create, update, or delete request, the status of the change token changes to PENDING, which indicates that AWS WAF is propagating the change to all AWS WAF servers. Use GetChangeTokenStatus to determine the status of your change token.

", "GetChangeTokenStatus": "

Returns the status of a ChangeToken that you got by calling GetChangeToken. ChangeTokenStatus is one of the following values:

  • PROVISIONED: You requested the change token by calling GetChangeToken, but you haven't used it yet in a call to create, update, or delete an AWS WAF object.

  • PENDING: AWS WAF is propagating the create, update, or delete request to all AWS WAF servers.

  • IN_SYNC: Propagation is complete.

", + "GetGeoMatchSet": "

Returns the GeoMatchSet that is specified by GeoMatchSetId.

", "GetIPSet": "

Returns the IPSet that is specified by IPSetId.

", "GetRateBasedRule": "

Returns the RateBasedRule that is specified by the RuleId that you included in the GetRateBasedRule request.

", "GetRateBasedRuleManagedKeys": "

Returns an array of IP addresses currently being blocked by the RateBasedRule that is specified by the RuleId. The maximum number of managed keys that will be blocked is 10,000. If more than 10,000 addresses exceed the rate limit, the 10,000 addresses with the highest rates will be blocked.

", + "GetRegexMatchSet": "

Returns the RegexMatchSet specified by RegexMatchSetId.

", + "GetRegexPatternSet": "

Returns the RegexPatternSet specified by RegexPatternSetId.

", "GetRule": "

Returns the Rule that is specified by the RuleId that you included in the GetRule request.

", + "GetRuleGroup": "

Returns the RuleGroup that is specified by the RuleGroupId that you included in the GetRuleGroup request.

To view the rules in a rule group, use ListActivatedRulesInRuleGroup.

", "GetSampledRequests": "

Gets detailed information about a specified number of requests--a sample--that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received during a time range that you choose. You can specify a sample size of up to 500 requests, and you can specify any time range in the previous three hours.

GetSampledRequests returns a time range, which is usually the time range that you specified. However, if your resource (such as a CloudFront distribution) received 5,000 requests before the specified time range elapsed, GetSampledRequests returns an updated time range. This new time range indicates the actual period during which AWS WAF selected the requests in the sample.

", "GetSizeConstraintSet": "

Returns the SizeConstraintSet specified by SizeConstraintSetId.

", "GetSqlInjectionMatchSet": "

Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId.

", "GetWebACL": "

Returns the WebACL that is specified by WebACLId.

", "GetXssMatchSet": "

Returns the XssMatchSet that is specified by XssMatchSetId.

", + "ListActivatedRulesInRuleGroup": "

Returns an array of ActivatedRule objects.

", "ListByteMatchSets": "

Returns an array of ByteMatchSetSummary objects.

", + "ListGeoMatchSets": "

Returns an array of GeoMatchSetSummary objects in the response.

", "ListIPSets": "

Returns an array of IPSetSummary objects in the response.

", "ListRateBasedRules": "

Returns an array of RuleSummary objects.

", + "ListRegexMatchSets": "

Returns an array of RegexMatchSetSummary objects.

", + "ListRegexPatternSets": "

Returns an array of RegexPatternSetSummary objects.

", + "ListRuleGroups": "

Returns an array of RuleGroup objects.

", "ListRules": "

Returns an array of RuleSummary objects.

", "ListSizeConstraintSets": "

Returns an array of SizeConstraintSetSummary objects.

", "ListSqlInjectionMatchSets": "

Returns an array of SqlInjectionMatchSet objects.

", + "ListSubscribedRuleGroups": "

Returns an array of RuleGroup objects that you are subscribed to.

", "ListWebACLs": "

Returns an array of WebACLSummary objects in the response.

", "ListXssMatchSets": "

Returns an array of XssMatchSet objects.

", "UpdateByteMatchSet": "

Inserts or deletes ByteMatchTuple objects (filters) in a ByteMatchSet. For each ByteMatchTuple object, you specify the following values:

  • Whether to insert or delete the object from the array. If you want to change a ByteMatchSetUpdate object, you delete the existing object and add a new one.

  • The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the User-Agent header.

  • The bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to look for. For more information, including how you specify the values for the AWS WAF API and the AWS CLI or SDKs, see TargetString in the ByteMatchTuple data type.

  • Where to look, such as at the beginning or the end of a query string.

  • Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.

For example, you can add a ByteMatchSetUpdate object that matches web requests in which User-Agent headers contain the string BadBot. You can then configure AWS WAF to block those requests.

To create and configure a ByteMatchSet, perform the following steps:

  1. Create a ByteMatchSet. For more information, see CreateByteMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateByteMatchSet request.

  3. Submit an UpdateByteMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "UpdateGeoMatchSet": "

Inserts or deletes GeoMatchConstraint objects in an GeoMatchSet. For each GeoMatchConstraint object, you specify the following values:

  • Whether to insert or delete the object from the array. If you want to change an GeoMatchConstraint object, you delete the existing object and add a new one.

  • The Type. The only valid value for Type is Country.

  • The Value, which is a two character code for the country to add to the GeoMatchConstraint object. Valid codes are listed in GeoMatchConstraint$Value.

To create and configure an GeoMatchSet, perform the following steps:

  1. Submit a CreateGeoMatchSet request.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateGeoMatchSet request.

  3. Submit an UpdateGeoMatchSet request to specify the country that you want AWS WAF to watch for.

When you update an GeoMatchSet, you specify the country that you want to add and/or the country that you want to delete. If you want to change a country, you delete the existing country and add the new one.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateIPSet": "

Inserts or deletes IPSetDescriptor objects in an IPSet. For each IPSetDescriptor object, you specify the following values:

  • Whether to insert or delete the object from the array. If you want to change an IPSetDescriptor object, you delete the existing object and add a new one.

  • The IP address version, IPv4 or IPv6.

  • The IP address in CIDR notation, for example, 192.0.2.0/24 (for the range of IP addresses from 192.0.2.0 to 192.0.2.255) or 192.0.2.44/32 (for the individual IP address 192.0.2.44).

AWS WAF supports /8, /16, /24, and /32 IP address ranges for IPv4, and /24, /32, /48, /56, /64 and /128 for IPv6. For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

IPv6 addresses can be represented using any of the following formats:

  • 1111:0000:0000:0000:0000:0000:0000:0111/128

  • 1111:0:0:0:0:0:0:0111/128

  • 1111::0111/128

  • 1111::111/128

You use an IPSet to specify which web requests you want to allow or block based on the IP addresses that the requests originated from. For example, if you're receiving a lot of requests from one or a small number of IP addresses and you want to block the requests, you can create an IPSet that specifies those IP addresses, and then configure AWS WAF to block the requests.

To create and configure an IPSet, perform the following steps:

  1. Submit a CreateIPSet request.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request.

  3. Submit an UpdateIPSet request to specify the IP addresses that you want AWS WAF to watch for.

When you update an IPSet, you specify the IP addresses that you want to add and/or the IP addresses that you want to delete. If you want to change an IP address, you delete the existing IP address and add the new one.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateRateBasedRule": "

Inserts or deletes Predicate objects in a rule and updates the RateLimit in the rule.

Each Predicate object identifies a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests that you want to block or count. The RateLimit specifies the number of requests every five minutes that triggers the rule.

If you add more than one predicate to a RateBasedRule, a request must match all the predicates and exceed the RateLimit to be counted or blocked. For example, suppose you add the following to a RateBasedRule:

  • An IPSet that matches the IP address 192.0.2.44/32

  • A ByteMatchSet that matches BadBot in the User-Agent header

Further, you specify a RateLimit of 15,000.

You then add the RateBasedRule to a WebACL and specify that you want to block requests that satisfy the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 and the User-Agent header in the request must contain the value BadBot. Further, requests that match these two conditions much be received at a rate of more than 15,000 every five minutes. If the rate drops below this limit, AWS WAF no longer blocks the requests.

As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a RateBasedRule:

  • A ByteMatchSet with FieldToMatch of URI

  • A PositionalConstraint of STARTS_WITH

  • A TargetString of login

Further, you specify a RateLimit of 15,000.

By adding this RateBasedRule to a WebACL, you could limit requests to your login page without affecting the rest of your site.

", + "UpdateRegexMatchSet": "

Inserts or deletes RegexMatchTuple objects (filters) in a RegexMatchSet. For each RegexMatchSetUpdate object, you specify the following values:

  • Whether to insert or delete the object from the array. If you want to change a RegexMatchSetUpdate object, you delete the existing object and add a new one.

  • The part of a web request that you want AWS WAF to inspectupdate, such as a query string or the value of the User-Agent header.

  • The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see RegexPatternSet.

  • Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.

For example, you can create a RegexPatternSet that matches any requests with User-Agent headers that contain the string B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.

To create and configure a RegexMatchSet, perform the following steps:

  1. Create a RegexMatchSet. For more information, see CreateRegexMatchSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexMatchSet request.

  3. Submit an UpdateRegexMatchSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the identifier of the RegexPatternSet that contain the regular expression patters you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "UpdateRegexPatternSet": "

Inserts or deletes RegexPatternString objects in a RegexPatternSet. For each RegexPatternString object, you specify the following values:

  • Whether to insert or delete the RegexPatternString.

  • The regular expression pattern that you want to insert or delete. For more information, see RegexPatternSet.

For example, you can create a RegexPatternString such as B[a@]dB[o0]t. AWS WAF will match this RegexPatternString to:

  • BadBot

  • BadB0t

  • B@dBot

  • B@dB0t

To create and configure a RegexPatternSet, perform the following steps:

  1. Create a RegexPatternSet. For more information, see CreateRegexPatternSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRegexPatternSet request.

  3. Submit an UpdateRegexPatternSet request to specify the regular expression pattern that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateRule": "

Inserts or deletes Predicate objects in a Rule. Each Predicate object identifies a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests that you want to allow, block, or count. If you add more than one predicate to a Rule, a request must match all of the specifications to be allowed, blocked, or counted. For example, suppose you add the following to a Rule:

  • A ByteMatchSet that matches the value BadBot in the User-Agent header

  • An IPSet that matches the IP address 192.0.2.44

You then add the Rule to a WebACL and specify that you want to block requests that satisfy the Rule. For a request to be blocked, the User-Agent header in the request must contain the value BadBot and the request must originate from the IP address 192.0.2.44.

To create and configure a Rule, perform the following steps:

  1. Create and update the predicates that you want to include in the Rule.

  2. Create the Rule. See CreateRule.

  3. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRule request.

  4. Submit an UpdateRule request to add predicates to the Rule.

  5. Create and update a WebACL that contains the Rule. See CreateWebACL.

If you want to replace one ByteMatchSet or IPSet with another, you delete the existing one and add the new one.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", + "UpdateRuleGroup": "

Inserts or deletes ActivatedRule objects in a RuleGroup.

You can only insert REGULAR rules into a rule group.

You can have a maximum of ten rules per rule group.

To create and configure a RuleGroup, perform the following steps:

  1. Create and update the Rules that you want to include in the RuleGroup. See CreateRule.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateRuleGroup request.

  3. Submit an UpdateRuleGroup request to add Rules to the RuleGroup.

  4. Create and update a WebACL that contains the RuleGroup. See CreateWebACL.

If you want to replace one Rule with another, you delete the existing one and add the new one.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateSizeConstraintSet": "

Inserts or deletes SizeConstraint objects (filters) in a SizeConstraintSet. For each SizeConstraint object, you specify the following values:

  • Whether to insert or delete the object from the array. If you want to change a SizeConstraintSetUpdate object, you delete the existing object and add a new one.

  • The part of a web request that you want AWS WAF to evaluate, such as the length of a query string or the length of the User-Agent header.

  • Whether to perform any transformations on the request, such as converting it to lowercase, before checking its length. Note that transformations of the request body are not supported because the AWS resource forwards only the first 8192 bytes of your request to AWS WAF.

  • A ComparisonOperator used for evaluating the selected part of the request against the specified Size, such as equals, greater than, less than, and so on.

  • The length, in bytes, that you want AWS WAF to watch for in selected part of the request. The length is computed after applying the transformation.

For example, you can add a SizeConstraintSetUpdate object that matches web requests in which the length of the User-Agent header is greater than 100 bytes. You can then configure AWS WAF to block those requests.

To create and configure a SizeConstraintSet, perform the following steps:

  1. Create a SizeConstraintSet. For more information, see CreateSizeConstraintSet.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateSizeConstraintSet request.

  3. Submit an UpdateSizeConstraintSet request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateSqlInjectionMatchSet": "

Inserts or deletes SqlInjectionMatchTuple objects (filters) in a SqlInjectionMatchSet. For each SqlInjectionMatchTuple object, you specify the following values:

  • Action: Whether to insert the object into or delete the object from the array. To change a SqlInjectionMatchTuple, you delete the existing object and add a new one.

  • FieldToMatch: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to inspect a header, the name of the header.

  • TextTransformation: Which text transformation, if any, to perform on the web request before inspecting the request for snippets of malicious SQL code.

You use SqlInjectionMatchSet objects to specify which CloudFront requests you want to allow, block, or count. For example, if you're receiving requests that contain snippets of SQL code in the query string and you want to block the requests, you can create a SqlInjectionMatchSet with the applicable settings, and then configure AWS WAF to block the requests.

To create and configure a SqlInjectionMatchSet, perform the following steps:

  1. Submit a CreateSqlInjectionMatchSet request.

  2. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateIPSet request.

  3. Submit an UpdateSqlInjectionMatchSet request to specify the parts of web requests that you want AWS WAF to inspect for snippets of SQL code.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", "UpdateWebACL": "

Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies web requests that you want to allow, block, or count. When you update a WebACL, you specify the following values:

  • A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the Rules in a WebACL.

  • The Rules that you want to add and/or delete. If you want to replace one Rule with another, you delete the existing Rule and add the new one.

  • For each Rule, whether you want AWS WAF to allow requests, block requests, or count requests that match the conditions in the Rule.

  • The order in which you want AWS WAF to evaluate the Rules in a WebACL. If you add more than one Rule to a WebACL, AWS WAF evaluates each request against the Rules in order based on the value of Priority. (The Rule that has the lowest value for Priority is evaluated first.) When a web request matches all of the predicates (such as ByteMatchSets and IPSets) in a Rule, AWS WAF immediately takes the corresponding action, allow or block, and doesn't evaluate the request against the remaining Rules in the WebACL, if any.

To create and configure a WebACL, perform the following steps:

  1. Create and update the predicates that you want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.

  2. Create and update the Rules that you want to include in the WebACL. For more information, see CreateRule and UpdateRule.

  3. Create a WebACL. See CreateWebACL.

  4. Use GetChangeToken to get the change token that you provide in the ChangeToken parameter of an UpdateWebACL request.

  5. Submit an UpdateWebACL request to specify the Rules that you want to include in the WebACL, to specify the default action, and to associate the WebACL with a CloudFront distribution.

Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the rule type when first creating the rule, the UpdateWebACL request will fail because the request tries to add a REGULAR rule (the default rule type) with the specified ID, which does not exist.

For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide.

", @@ -58,12 +80,14 @@ "base": "

The ActivatedRule object in an UpdateWebACL request specifies a Rule that you want to insert or delete, the priority of the Rule in the WebACL, and the action that you want AWS WAF to take when a web request matches the Rule (ALLOW, BLOCK, or COUNT).

To specify whether to insert or delete a Rule, use the Action parameter in the WebACLUpdate data type.

", "refs": { "ActivatedRules$member": null, + "RuleGroupUpdate$ActivatedRule": "

The ActivatedRule object specifies a Rule that you want to insert or delete, the priority of the Rule in the WebACL, and the action that you want AWS WAF to take when a web request matches the Rule (ALLOW, BLOCK, or COUNT).

", "WebACLUpdate$ActivatedRule": "

The ActivatedRule object in an UpdateWebACL request specifies a Rule that you want to insert or delete, the priority of the Rule in the WebACL, and the action that you want AWS WAF to take when a web request matches the Rule (ALLOW, BLOCK, or COUNT).

" } }, "ActivatedRules": { "base": null, "refs": { + "ListActivatedRulesInRuleGroupResponse$ActivatedRules": "

An array of ActivatedRules objects.

", "WebACL$Rules": "

An array that contains the action for each Rule in a WebACL, the priority of the Rule, and the ID of the Rule.

" } }, @@ -121,7 +145,11 @@ "base": null, "refs": { "ByteMatchSetUpdate$Action": "

Specifies whether to insert or delete a ByteMatchTuple.

", + "GeoMatchSetUpdate$Action": "

Specifies whether to insert or delete a country with UpdateGeoMatchSet.

", "IPSetUpdate$Action": "

Specifies whether to insert or delete an IP address with UpdateIPSet.

", + "RegexMatchSetUpdate$Action": "

Specifies whether to insert or delete a RegexMatchTuple.

", + "RegexPatternSetUpdate$Action": "

Specifies whether to insert or delete a RegexPatternString.

", + "RuleGroupUpdate$Action": "

Specify INSERT to add an ActivatedRule to a RuleGroup. Use DELETE to remove an ActivatedRule from a RuleGroup.

", "RuleUpdate$Action": "

Specify INSERT to add a Predicate to a Rule. Use DELETE to remove a Predicate from a Rule.

", "SizeConstraintSetUpdate$Action": "

Specify INSERT to add a SizeConstraintSetUpdate to a SizeConstraintSet. Use DELETE to remove a SizeConstraintSetUpdate from a SizeConstraintSet.

", "SqlInjectionMatchSetUpdate$Action": "

Specify INSERT to add a SqlInjectionMatchSetUpdate to a SqlInjectionMatchSet. Use DELETE to remove a SqlInjectionMatchSetUpdate from a SqlInjectionMatchSet.

", @@ -134,10 +162,18 @@ "refs": { "CreateByteMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "CreateByteMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateByteMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "CreateGeoMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "CreateGeoMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "CreateIPSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "CreateIPSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "CreateRateBasedRuleRequest$ChangeToken": "

The ChangeToken that you used to submit the CreateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "CreateRateBasedRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "CreateRegexMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "CreateRegexMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "CreateRegexPatternSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "CreateRegexPatternSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "CreateRuleGroupRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "CreateRuleGroupResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "CreateRuleRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "CreateRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "CreateSizeConstraintSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", @@ -150,10 +186,18 @@ "CreateXssMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the CreateXssMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "DeleteByteMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "DeleteByteMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteByteMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "DeleteGeoMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "DeleteGeoMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "DeleteIPSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "DeleteIPSetResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "DeleteRateBasedRuleRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "DeleteRateBasedRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "DeleteRegexMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "DeleteRegexMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "DeleteRegexPatternSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "DeleteRegexPatternSetResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "DeleteRuleGroupRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "DeleteRuleGroupResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "DeleteRuleRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "DeleteRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the DeleteRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "DeleteSizeConstraintSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", @@ -168,10 +212,18 @@ "GetChangeTokenStatusRequest$ChangeToken": "

The change token for which you want to get the status. This change token was previously returned in the GetChangeToken response.

", "UpdateByteMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "UpdateByteMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateByteMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "UpdateGeoMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "UpdateGeoMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateGeoMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "UpdateIPSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "UpdateIPSetResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateIPSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "UpdateRateBasedRuleRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "UpdateRateBasedRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateRateBasedRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "UpdateRegexMatchSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "UpdateRegexMatchSetResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateRegexMatchSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "UpdateRegexPatternSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "UpdateRegexPatternSetResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateRegexPatternSet request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", + "UpdateRuleGroupRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", + "UpdateRuleGroupResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateRuleGroup request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "UpdateRuleRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", "UpdateRuleResponse$ChangeToken": "

The ChangeToken that you used to submit the UpdateRule request. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.

", "UpdateSizeConstraintSetRequest$ChangeToken": "

The value returned by the most recent call to GetChangeToken.

", @@ -212,6 +264,16 @@ "refs": { } }, + "CreateGeoMatchSetRequest": { + "base": null, + "refs": { + } + }, + "CreateGeoMatchSetResponse": { + "base": null, + "refs": { + } + }, "CreateIPSetRequest": { "base": null, "refs": { @@ -232,6 +294,36 @@ "refs": { } }, + "CreateRegexMatchSetRequest": { + "base": null, + "refs": { + } + }, + "CreateRegexMatchSetResponse": { + "base": null, + "refs": { + } + }, + "CreateRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "CreateRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "CreateRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateRuleGroupResponse": { + "base": null, + "refs": { + } + }, "CreateRuleRequest": { "base": null, "refs": { @@ -292,6 +384,16 @@ "refs": { } }, + "DeleteGeoMatchSetRequest": { + "base": null, + "refs": { + } + }, + "DeleteGeoMatchSetResponse": { + "base": null, + "refs": { + } + }, "DeleteIPSetRequest": { "base": null, "refs": { @@ -312,6 +414,36 @@ "refs": { } }, + "DeleteRegexMatchSetRequest": { + "base": null, + "refs": { + } + }, + "DeleteRegexMatchSetResponse": { + "base": null, + "refs": { + } + }, + "DeleteRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "DeleteRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "DeleteRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteRuleGroupResponse": { + "base": null, + "refs": { + } + }, "DeleteRuleRequest": { "base": null, "refs": { @@ -366,11 +498,68 @@ "base": "

Specifies where in a web request to look for TargetString.

", "refs": { "ByteMatchTuple$FieldToMatch": "

The part of a web request that you want AWS WAF to search, such as a specified header or a query string. For more information, see FieldToMatch.

", + "RegexMatchTuple$FieldToMatch": "

Specifies where in a web request to look for the RegexPatternSet.

", "SizeConstraint$FieldToMatch": "

Specifies where in a web request to look for the size constraint.

", "SqlInjectionMatchTuple$FieldToMatch": "

Specifies where in a web request to look for snippets of malicious SQL code.

", "XssMatchTuple$FieldToMatch": "

Specifies where in a web request to look for cross-site scripting attacks.

" } }, + "GeoMatchConstraint": { + "base": "

The country from which web requests originate that you want AWS WAF to search for.

", + "refs": { + "GeoMatchConstraints$member": null, + "GeoMatchSetUpdate$GeoMatchConstraint": "

The country from which web requests originate that you want AWS WAF to search for.

" + } + }, + "GeoMatchConstraintType": { + "base": null, + "refs": { + "GeoMatchConstraint$Type": "

The type of geographical area you want AWS WAF to search for. Currently Country is the only valid value.

" + } + }, + "GeoMatchConstraintValue": { + "base": null, + "refs": { + "GeoMatchConstraint$Value": "

The country that you want AWS WAF to search for.

" + } + }, + "GeoMatchConstraints": { + "base": null, + "refs": { + "GeoMatchSet$GeoMatchConstraints": "

An array of GeoMatchConstraint objects, which contain the country that you want AWS WAF to search for.

" + } + }, + "GeoMatchSet": { + "base": "

Contains one or more countries that AWS WAF will search for.

", + "refs": { + "CreateGeoMatchSetResponse$GeoMatchSet": "

The GeoMatchSet returned in the CreateGeoMatchSet response. The GeoMatchSet contains no GeoMatchConstraints.

", + "GetGeoMatchSetResponse$GeoMatchSet": "

Information about the GeoMatchSet that you specified in the GetGeoMatchSet request. This includes the Type, which for a GeoMatchContraint is always Country, as well as the Value, which is the identifier for a specific country.

" + } + }, + "GeoMatchSetSummaries": { + "base": null, + "refs": { + "ListGeoMatchSetsResponse$GeoMatchSets": "

An array of GeoMatchSetSummary objects.

" + } + }, + "GeoMatchSetSummary": { + "base": "

Contains the identifier and the name of the GeoMatchSet.

", + "refs": { + "GeoMatchSetSummaries$member": null + } + }, + "GeoMatchSetUpdate": { + "base": "

Specifies the type of update to perform to an GeoMatchSet with UpdateGeoMatchSet.

", + "refs": { + "GeoMatchSetUpdates$member": null + } + }, + "GeoMatchSetUpdates": { + "base": null, + "refs": { + "UpdateGeoMatchSetRequest$Updates": "

An array of GeoMatchSetUpdate objects that you want to insert into or delete from an GeoMatchSet. For more information, see the applicable data types:

  • GeoMatchSetUpdate: Contains Action and GeoMatchConstraint

  • GeoMatchConstraint: Contains Type and Value

    You can have only one Type and Value per GeoMatchConstraint. To add multiple countries, include multiple GeoMatchSetUpdate objects in your request.

" + } + }, "GetByteMatchSetRequest": { "base": null, "refs": { @@ -401,6 +590,16 @@ "refs": { } }, + "GetGeoMatchSetRequest": { + "base": null, + "refs": { + } + }, + "GetGeoMatchSetResponse": { + "base": null, + "refs": { + } + }, "GetIPSetRequest": { "base": null, "refs": { @@ -431,6 +630,36 @@ "refs": { } }, + "GetRegexMatchSetRequest": { + "base": null, + "refs": { + } + }, + "GetRegexMatchSetResponse": { + "base": null, + "refs": { + } + }, + "GetRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "GetRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "GetRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "GetRuleGroupResponse": { + "base": null, + "refs": { + } + }, "GetRuleRequest": { "base": null, "refs": { @@ -601,6 +830,16 @@ "HTTPRequest$ClientIP": "

The IP address that the request originated from. If the WebACL is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs:

  • c-ip, if the viewer did not use an HTTP proxy or a load balancer to send the request

  • x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer to send the request

" } }, + "ListActivatedRulesInRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "ListActivatedRulesInRuleGroupResponse": { + "base": null, + "refs": { + } + }, "ListByteMatchSetsRequest": { "base": null, "refs": { @@ -611,6 +850,16 @@ "refs": { } }, + "ListGeoMatchSetsRequest": { + "base": null, + "refs": { + } + }, + "ListGeoMatchSetsResponse": { + "base": null, + "refs": { + } + }, "ListIPSetsRequest": { "base": null, "refs": { @@ -631,6 +880,36 @@ "refs": { } }, + "ListRegexMatchSetsRequest": { + "base": null, + "refs": { + } + }, + "ListRegexMatchSetsResponse": { + "base": null, + "refs": { + } + }, + "ListRegexPatternSetsRequest": { + "base": null, + "refs": { + } + }, + "ListRegexPatternSetsResponse": { + "base": null, + "refs": { + } + }, + "ListRuleGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListRuleGroupsResponse": { + "base": null, + "refs": { + } + }, "ListRulesRequest": { "base": null, "refs": { @@ -661,6 +940,16 @@ "refs": { } }, + "ListSubscribedRuleGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListSubscribedRuleGroupsResponse": { + "base": null, + "refs": { + } + }, "ListWebACLsRequest": { "base": null, "refs": { @@ -709,17 +998,20 @@ "base": null, "refs": { "CreateRateBasedRuleRequest$MetricName": "

A friendly name or description for the metrics for this RateBasedRule. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RateBasedRule.

", + "CreateRuleGroupRequest$MetricName": "

A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup.

", "CreateRuleRequest$MetricName": "

A friendly name or description for the metrics for this Rule. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the Rule.

", "CreateWebACLRequest$MetricName": "

A friendly name or description for the metrics for this WebACL. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change MetricName after you create the WebACL.

", "RateBasedRule$MetricName": "

A friendly name or description for the metrics for a RateBasedRule. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RateBasedRule.

", "Rule$MetricName": "

A friendly name or description for the metrics for this Rule. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change MetricName after you create the Rule.

", + "RuleGroup$MetricName": "

A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup.

", + "SubscribedRuleGroupSummary$MetricName": "

A friendly name or description for the metrics for this RuleGroup. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the RuleGroup.

", "WebACL$MetricName": "

A friendly name or description for the metrics for this WebACL. The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change MetricName after you create the WebACL.

" } }, "Negated": { "base": null, "refs": { - "Predicate$Negated": "

Set Negated to False if you want AWS WAF to allow, block, or count requests based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow or block requests based on that IP address.

Set Negated to True if you want AWS WAF to allow or block a request based on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow, block, or count requests based on all IP addresses except 192.0.2.44.

" + "Predicate$Negated": "

Set Negated to False if you want AWS WAF to allow, block, or count requests based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow or block requests based on that IP address.

Set Negated to True if you want AWS WAF to allow or block a request based on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example, if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow, block, or count requests based on all IP addresses except 192.0.2.44.

" } }, "NextMarker": { @@ -727,18 +1019,30 @@ "refs": { "GetRateBasedRuleManagedKeysRequest$NextMarker": "

A null value and not currently used. Do not include this in your request.

", "GetRateBasedRuleManagedKeysResponse$NextMarker": "

A null value and not currently used.

", + "ListActivatedRulesInRuleGroupRequest$NextMarker": "

If you specify a value for Limit and you have more ActivatedRules than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of ActivatedRules. For the second and subsequent ListActivatedRulesInRuleGroup requests, specify the value of NextMarker from the previous response to get information about another batch of ActivatedRules.

", + "ListActivatedRulesInRuleGroupResponse$NextMarker": "

If you have more ActivatedRules than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more ActivatedRules, submit another ListActivatedRulesInRuleGroup request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListByteMatchSetsRequest$NextMarker": "

If you specify a value for Limit and you have more ByteMatchSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of ByteMatchSets. For the second and subsequent ListByteMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of ByteMatchSets.

", "ListByteMatchSetsResponse$NextMarker": "

If you have more ByteMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more ByteMatchSet objects, submit another ListByteMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", - "ListIPSetsRequest$NextMarker": "

If you specify a value for Limit and you have more IPSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of IPSets. For the second and subsequent ListIPSets requests, specify the value of NextMarker from the previous response to get information about another batch of ByteMatchSets.

", + "ListGeoMatchSetsRequest$NextMarker": "

If you specify a value for Limit and you have more GeoMatchSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of GeoMatchSet objects. For the second and subsequent ListGeoMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of GeoMatchSet objects.

", + "ListGeoMatchSetsResponse$NextMarker": "

If you have more GeoMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more GeoMatchSet objects, submit another ListGeoMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", + "ListIPSetsRequest$NextMarker": "

If you specify a value for Limit and you have more IPSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of IPSets. For the second and subsequent ListIPSets requests, specify the value of NextMarker from the previous response to get information about another batch of IPSets.

", "ListIPSetsResponse$NextMarker": "

If you have more IPSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more IPSet objects, submit another ListIPSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListRateBasedRulesRequest$NextMarker": "

If you specify a value for Limit and you have more Rules than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of Rules. For the second and subsequent ListRateBasedRules requests, specify the value of NextMarker from the previous response to get information about another batch of Rules.

", "ListRateBasedRulesResponse$NextMarker": "

If you have more Rules than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more Rules, submit another ListRateBasedRules request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", + "ListRegexMatchSetsRequest$NextMarker": "

If you specify a value for Limit and you have more RegexMatchSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of ByteMatchSets. For the second and subsequent ListRegexMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of RegexMatchSet objects.

", + "ListRegexMatchSetsResponse$NextMarker": "

If you have more RegexMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RegexMatchSet objects, submit another ListRegexMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", + "ListRegexPatternSetsRequest$NextMarker": "

If you specify a value for Limit and you have more RegexPatternSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of RegexPatternSet objects. For the second and subsequent ListRegexPatternSets requests, specify the value of NextMarker from the previous response to get information about another batch of RegexPatternSet objects.

", + "ListRegexPatternSetsResponse$NextMarker": "

If you have more RegexPatternSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RegexPatternSet objects, submit another ListRegexPatternSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", + "ListRuleGroupsRequest$NextMarker": "

If you specify a value for Limit and you have more RuleGroups than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of RuleGroups. For the second and subsequent ListRuleGroups requests, specify the value of NextMarker from the previous response to get information about another batch of RuleGroups.

", + "ListRuleGroupsResponse$NextMarker": "

If you have more RuleGroups than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more RuleGroups, submit another ListRuleGroups request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListRulesRequest$NextMarker": "

If you specify a value for Limit and you have more Rules than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of Rules. For the second and subsequent ListRules requests, specify the value of NextMarker from the previous response to get information about another batch of Rules.

", "ListRulesResponse$NextMarker": "

If you have more Rules than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more Rules, submit another ListRules request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListSizeConstraintSetsRequest$NextMarker": "

If you specify a value for Limit and you have more SizeConstraintSets than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of SizeConstraintSets. For the second and subsequent ListSizeConstraintSets requests, specify the value of NextMarker from the previous response to get information about another batch of SizeConstraintSets.

", "ListSizeConstraintSetsResponse$NextMarker": "

If you have more SizeConstraintSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SizeConstraintSet objects, submit another ListSizeConstraintSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListSqlInjectionMatchSetsRequest$NextMarker": "

If you specify a value for Limit and you have more SqlInjectionMatchSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of SqlInjectionMatchSets. For the second and subsequent ListSqlInjectionMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of SqlInjectionMatchSets.

", "ListSqlInjectionMatchSetsResponse$NextMarker": "

If you have more SqlInjectionMatchSet objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more SqlInjectionMatchSet objects, submit another ListSqlInjectionMatchSets request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", + "ListSubscribedRuleGroupsRequest$NextMarker": "

If you specify a value for Limit and you have more ByteMatchSetssubscribed rule groups than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of subscribed rule groups. For the second and subsequent ListSubscribedRuleGroupsRequest requests, specify the value of NextMarker from the previous response to get information about another batch of subscribed rule groups.

", + "ListSubscribedRuleGroupsResponse$NextMarker": "

If you have more objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more objects, submit another ListSubscribedRuleGroups request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListWebACLsRequest$NextMarker": "

If you specify a value for Limit and you have more WebACL objects than the number that you specify for Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of WebACL objects. For the second and subsequent ListWebACLs requests, specify the value of NextMarker from the previous response to get information about another batch of WebACL objects.

", "ListWebACLsResponse$NextMarker": "

If you have more WebACL objects than the number that you specified for Limit in the request, the response includes a NextMarker value. To list more WebACL objects, submit another ListWebACLs request, and specify the NextMarker value from the response in the NextMarker value in the next request.

", "ListXssMatchSetsRequest$NextMarker": "

If you specify a value for Limit and you have more XssMatchSet objects than the value of Limit, AWS WAF returns a NextMarker value in the response that allows you to list another group of XssMatchSets. For the second and subsequent ListXssMatchSets requests, specify the value of NextMarker from the previous response to get information about another batch of XssMatchSets.

", @@ -748,12 +1052,18 @@ "PaginationLimit": { "base": null, "refs": { + "ListActivatedRulesInRuleGroupRequest$Limit": "

Specifies the number of ActivatedRules that you want AWS WAF to return for this request. If you have more ActivatedRules than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of ActivatedRules.

", "ListByteMatchSetsRequest$Limit": "

Specifies the number of ByteMatchSet objects that you want AWS WAF to return for this request. If you have more ByteMatchSets objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of ByteMatchSet objects.

", + "ListGeoMatchSetsRequest$Limit": "

Specifies the number of GeoMatchSet objects that you want AWS WAF to return for this request. If you have more GeoMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of GeoMatchSet objects.

", "ListIPSetsRequest$Limit": "

Specifies the number of IPSet objects that you want AWS WAF to return for this request. If you have more IPSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of IPSet objects.

", "ListRateBasedRulesRequest$Limit": "

Specifies the number of Rules that you want AWS WAF to return for this request. If you have more Rules than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of Rules.

", + "ListRegexMatchSetsRequest$Limit": "

Specifies the number of RegexMatchSet objects that you want AWS WAF to return for this request. If you have more RegexMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RegexMatchSet objects.

", + "ListRegexPatternSetsRequest$Limit": "

Specifies the number of RegexPatternSet objects that you want AWS WAF to return for this request. If you have more RegexPatternSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RegexPatternSet objects.

", + "ListRuleGroupsRequest$Limit": "

Specifies the number of RuleGroups that you want AWS WAF to return for this request. If you have more RuleGroups than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of RuleGroups.

", "ListRulesRequest$Limit": "

Specifies the number of Rules that you want AWS WAF to return for this request. If you have more Rules than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of Rules.

", "ListSizeConstraintSetsRequest$Limit": "

Specifies the number of SizeConstraintSet objects that you want AWS WAF to return for this request. If you have more SizeConstraintSets objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of SizeConstraintSet objects.

", "ListSqlInjectionMatchSetsRequest$Limit": "

Specifies the number of SqlInjectionMatchSet objects that you want AWS WAF to return for this request. If you have more SqlInjectionMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of Rules.

", + "ListSubscribedRuleGroupsRequest$Limit": "

Specifies the number of subscribed rule groups that you want AWS WAF to return for this request. If you have more objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of objects.

", "ListWebACLsRequest$Limit": "

Specifies the number of WebACL objects that you want AWS WAF to return for this request. If you have more WebACL objects than the number that you specify for Limit, the response includes a NextMarker value that you can use to get another batch of WebACL objects.

", "ListXssMatchSetsRequest$Limit": "

Specifies the number of XssMatchSet objects that you want AWS WAF to return for this request. If you have more XssMatchSet objects than the number you specify for Limit, the response includes a NextMarker value that you can use to get another batch of Rules.

" } @@ -789,7 +1099,7 @@ } }, "Predicate": { - "base": "

Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, and SizeConstraintSet objects that you want to add to a Rule and, for each object, indicates whether you want to negate the settings, for example, requests that do NOT originate from the IP address 192.0.2.44.

", + "base": "

Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, and SizeConstraintSet objects that you want to add to a Rule and, for each object, indicates whether you want to negate the settings, for example, requests that do NOT originate from the IP address 192.0.2.44.

", "refs": { "Predicates$member": null, "RuleUpdate$Predicate": "

The ID of the Predicate (such as an IPSet) that you want to add to a Rule.

" @@ -830,6 +1140,94 @@ "UpdateRateBasedRuleRequest$RateLimit": "

The maximum number of requests, which have an identical value in the field specified by the RateKey, allowed in a five-minute period. If the number of requests exceeds the RateLimit and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.

" } }, + "RegexMatchSet": { + "base": "

In a GetRegexMatchSet request, RegexMatchSet is a complex type that contains the RegexMatchSetId and Name of a RegexMatchSet, and the values that you specified when you updated the RegexMatchSet.

The values are contained in a RegexMatchTuple object, which specify the parts of web requests that you want AWS WAF to inspect and the values that you want AWS WAF to search for. If a RegexMatchSet contains more than one RegexMatchTuple object, a request needs to match the settings in only one ByteMatchTuple to be considered a match.

", + "refs": { + "CreateRegexMatchSetResponse$RegexMatchSet": "

A RegexMatchSet that contains no RegexMatchTuple objects.

", + "GetRegexMatchSetResponse$RegexMatchSet": "

Information about the RegexMatchSet that you specified in the GetRegexMatchSet request. For more information, see RegexMatchTuple.

" + } + }, + "RegexMatchSetSummaries": { + "base": null, + "refs": { + "ListRegexMatchSetsResponse$RegexMatchSets": "

An array of RegexMatchSetSummary objects.

" + } + }, + "RegexMatchSetSummary": { + "base": "

Returned by ListRegexMatchSets. Each RegexMatchSetSummary object includes the Name and RegexMatchSetId for one RegexMatchSet.

", + "refs": { + "RegexMatchSetSummaries$member": null + } + }, + "RegexMatchSetUpdate": { + "base": "

In an UpdateRegexMatchSet request, RegexMatchSetUpdate specifies whether to insert or delete a RegexMatchTuple and includes the settings for the RegexMatchTuple.

", + "refs": { + "RegexMatchSetUpdates$member": null + } + }, + "RegexMatchSetUpdates": { + "base": null, + "refs": { + "UpdateRegexMatchSetRequest$Updates": "

An array of RegexMatchSetUpdate objects that you want to insert into or delete from a RegexMatchSet. For more information, see RegexMatchTuple.

" + } + }, + "RegexMatchTuple": { + "base": "

The regular expression pattern that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings. Each RegexMatchTuple object contains:

  • The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the User-Agent header.

  • The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see RegexPatternSet.

  • Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.

", + "refs": { + "RegexMatchSetUpdate$RegexMatchTuple": "

Information about the part of a web request that you want AWS WAF to inspect and the identifier of the regular expression (regex) pattern that you want AWS WAF to search for. If you specify DELETE for the value of Action, the RegexMatchTuple values must exactly match the values in the RegexMatchTuple that you want to delete from the RegexMatchSet.

", + "RegexMatchTuples$member": null + } + }, + "RegexMatchTuples": { + "base": null, + "refs": { + "RegexMatchSet$RegexMatchTuples": "

Contains an array of RegexMatchTuple objects. Each RegexMatchTuple object contains:

  • The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the User-Agent header.

  • The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see RegexPatternSet.

  • Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.

" + } + }, + "RegexPatternSet": { + "base": "

The RegexPatternSet specifies the regular expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.

", + "refs": { + "CreateRegexPatternSetResponse$RegexPatternSet": "

A RegexPatternSet that contains no objects.

", + "GetRegexPatternSetResponse$RegexPatternSet": "

Information about the RegexPatternSet that you specified in the GetRegexPatternSet request, including the identifier of the pattern set and the regular expression patterns you want AWS WAF to search for.

" + } + }, + "RegexPatternSetSummaries": { + "base": null, + "refs": { + "ListRegexPatternSetsResponse$RegexPatternSets": "

An array of RegexPatternSetSummary objects.

" + } + }, + "RegexPatternSetSummary": { + "base": "

Returned by ListRegexPatternSets. Each RegexPatternSetSummary object includes the Name and RegexPatternSetId for one RegexPatternSet.

", + "refs": { + "RegexPatternSetSummaries$member": null + } + }, + "RegexPatternSetUpdate": { + "base": "

In an UpdateRegexPatternSet request, RegexPatternSetUpdate specifies whether to insert or delete a RegexPatternString and includes the settings for the RegexPatternString.

", + "refs": { + "RegexPatternSetUpdates$member": null + } + }, + "RegexPatternSetUpdates": { + "base": null, + "refs": { + "UpdateRegexPatternSetRequest$Updates": "

An array of RegexPatternSetUpdate objects that you want to insert into or delete from a RegexPatternSet.

" + } + }, + "RegexPatternString": { + "base": null, + "refs": { + "RegexPatternSetUpdate$RegexPatternString": "

Specifies the regular expression (regex) pattern that you want AWS WAF to search for, such as B[a@]dB[o0]t.

", + "RegexPatternStrings$member": null + } + }, + "RegexPatternStrings": { + "base": null, + "refs": { + "RegexPatternSet$RegexPatternStrings": "

Specifies the regular expression (regex) patterns that you want AWS WAF to search for, such as B[a@]dB[o0]t.

" + } + }, "ResourceId": { "base": null, "refs": { @@ -837,37 +1235,61 @@ "ByteMatchSet$ByteMatchSetId": "

The ByteMatchSetId for a ByteMatchSet. You use ByteMatchSetId to get information about a ByteMatchSet (see GetByteMatchSet), update a ByteMatchSet (see UpdateByteMatchSet), insert a ByteMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a ByteMatchSet from AWS WAF (see DeleteByteMatchSet).

ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.

", "ByteMatchSetSummary$ByteMatchSetId": "

The ByteMatchSetId for a ByteMatchSet. You use ByteMatchSetId to get information about a ByteMatchSet, update a ByteMatchSet, remove a ByteMatchSet from a Rule, and delete a ByteMatchSet from AWS WAF.

ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.

", "DeleteByteMatchSetRequest$ByteMatchSetId": "

The ByteMatchSetId of the ByteMatchSet that you want to delete. ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.

", + "DeleteGeoMatchSetRequest$GeoMatchSetId": "

The GeoMatchSetID of the GeoMatchSet that you want to delete. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets.

", "DeleteIPSetRequest$IPSetId": "

The IPSetId of the IPSet that you want to delete. IPSetId is returned by CreateIPSet and by ListIPSets.

", "DeleteRateBasedRuleRequest$RuleId": "

The RuleId of the RateBasedRule that you want to delete. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules.

", + "DeleteRegexMatchSetRequest$RegexMatchSetId": "

The RegexMatchSetId of the RegexMatchSet that you want to delete. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.

", + "DeleteRegexPatternSetRequest$RegexPatternSetId": "

The RegexPatternSetId of the RegexPatternSet that you want to delete. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", + "DeleteRuleGroupRequest$RuleGroupId": "

The RuleGroupId of the RuleGroup that you want to delete. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.

", "DeleteRuleRequest$RuleId": "

The RuleId of the Rule that you want to delete. RuleId is returned by CreateRule and by ListRules.

", "DeleteSizeConstraintSetRequest$SizeConstraintSetId": "

The SizeConstraintSetId of the SizeConstraintSet that you want to delete. SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.

", "DeleteSqlInjectionMatchSetRequest$SqlInjectionMatchSetId": "

The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to delete. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.

", "DeleteWebACLRequest$WebACLId": "

The WebACLId of the WebACL that you want to delete. WebACLId is returned by CreateWebACL and by ListWebACLs.

", "DeleteXssMatchSetRequest$XssMatchSetId": "

The XssMatchSetId of the XssMatchSet that you want to delete. XssMatchSetId is returned by CreateXssMatchSet and by ListXssMatchSets.

", + "GeoMatchSet$GeoMatchSetId": "

The GeoMatchSetId for an GeoMatchSet. You use GeoMatchSetId to get information about a GeoMatchSet (see GeoMatchSet), update a GeoMatchSet (see UpdateGeoMatchSet), insert a GeoMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a GeoMatchSet from AWS WAF (see DeleteGeoMatchSet).

GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets.

", + "GeoMatchSetSummary$GeoMatchSetId": "

The GeoMatchSetId for an GeoMatchSet. You can use GeoMatchSetId in a GetGeoMatchSet request to get detailed information about an GeoMatchSet.

", "GetByteMatchSetRequest$ByteMatchSetId": "

The ByteMatchSetId of the ByteMatchSet that you want to get. ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.

", + "GetGeoMatchSetRequest$GeoMatchSetId": "

The GeoMatchSetId of the GeoMatchSet that you want to get. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets.

", "GetIPSetRequest$IPSetId": "

The IPSetId of the IPSet that you want to get. IPSetId is returned by CreateIPSet and by ListIPSets.

", "GetRateBasedRuleManagedKeysRequest$RuleId": "

The RuleId of the RateBasedRule for which you want to get a list of ManagedKeys. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules.

", "GetRateBasedRuleRequest$RuleId": "

The RuleId of the RateBasedRule that you want to get. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules.

", + "GetRegexMatchSetRequest$RegexMatchSetId": "

The RegexMatchSetId of the RegexMatchSet that you want to get. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.

", + "GetRegexPatternSetRequest$RegexPatternSetId": "

The RegexPatternSetId of the RegexPatternSet that you want to get. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", + "GetRuleGroupRequest$RuleGroupId": "

The RuleGroupId of the RuleGroup that you want to get. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.

", "GetRuleRequest$RuleId": "

The RuleId of the Rule that you want to get. RuleId is returned by CreateRule and by ListRules.

", "GetSampledRequestsRequest$WebAclId": "

The WebACLId of the WebACL for which you want GetSampledRequests to return a sample of requests.

", - "GetSampledRequestsRequest$RuleId": "

RuleId is one of two values:

  • The RuleId of the Rule for which you want GetSampledRequests to return a sample of requests.

  • Default_Action, which causes GetSampledRequests to return a sample of the requests that didn't match any of the rules in the specified WebACL.

", + "GetSampledRequestsRequest$RuleId": "

RuleId is one of three values:

  • The RuleId of the Rule or the RuleGroupId of the RuleGroup for which you want GetSampledRequests to return a sample of requests.

  • Default_Action, which causes GetSampledRequests to return a sample of the requests that didn't match any of the rules in the specified WebACL.

", "GetSizeConstraintSetRequest$SizeConstraintSetId": "

The SizeConstraintSetId of the SizeConstraintSet that you want to get. SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.

", "GetSqlInjectionMatchSetRequest$SqlInjectionMatchSetId": "

The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to get. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.

", "GetWebACLRequest$WebACLId": "

The WebACLId of the WebACL that you want to get. WebACLId is returned by CreateWebACL and by ListWebACLs.

", "GetXssMatchSetRequest$XssMatchSetId": "

The XssMatchSetId of the XssMatchSet that you want to get. XssMatchSetId is returned by CreateXssMatchSet and by ListXssMatchSets.

", "IPSet$IPSetId": "

The IPSetId for an IPSet. You use IPSetId to get information about an IPSet (see GetIPSet), update an IPSet (see UpdateIPSet), insert an IPSet into a Rule or delete one from a Rule (see UpdateRule), and delete an IPSet from AWS WAF (see DeleteIPSet).

IPSetId is returned by CreateIPSet and by ListIPSets.

", "IPSetSummary$IPSetId": "

The IPSetId for an IPSet. You can use IPSetId in a GetIPSet request to get detailed information about an IPSet.

", + "ListActivatedRulesInRuleGroupRequest$RuleGroupId": "

The RuleGroupId of the RuleGroup for which you want to get a list of ActivatedRule objects.

", "Predicate$DataId": "

A unique identifier for a predicate in a Rule, such as ByteMatchSetId or IPSetId. The ID is returned by the corresponding Create or List command.

", "RateBasedRule$RuleId": "

A unique identifier for a RateBasedRule. You use RuleId to get more information about a RateBasedRule (see GetRateBasedRule), update a RateBasedRule (see UpdateRateBasedRule), insert a RateBasedRule into a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a RateBasedRule from AWS WAF (see DeleteRateBasedRule).

", + "RegexMatchSet$RegexMatchSetId": "

The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information about a RegexMatchSet (see GetRegexMatchSet), update a RegexMatchSet (see UpdateRegexMatchSet), insert a RegexMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a RegexMatchSet from AWS WAF (see DeleteRegexMatchSet).

RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.

", + "RegexMatchSetSummary$RegexMatchSetId": "

The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information about a RegexMatchSet, update a RegexMatchSet, remove a RegexMatchSet from a Rule, and delete a RegexMatchSet from AWS WAF.

RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.

", + "RegexMatchTuple$RegexPatternSetId": "

The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet (see GetRegexPatternSet), update a RegexPatternSet (see UpdateRegexPatternSet), insert a RegexPatternSet into a RegexMatchSet or delete one from a RegexMatchSet (see UpdateRegexMatchSet), and delete an RegexPatternSet from AWS WAF (see DeleteRegexPatternSet).

RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", + "RegexPatternSet$RegexPatternSetId": "

The identifier for the RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet, update a RegexPatternSet, remove a RegexPatternSet from a RegexMatchSet, and delete a RegexPatternSet from AWS WAF.

RegexMatchSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", + "RegexPatternSetSummary$RegexPatternSetId": "

The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to get information about a RegexPatternSet, update a RegexPatternSet, remove a RegexPatternSet from a RegexMatchSet, and delete a RegexPatternSet from AWS WAF.

RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", "Rule$RuleId": "

A unique identifier for a Rule. You use RuleId to get more information about a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a Rule from AWS WAF (see DeleteRule).

RuleId is returned by CreateRule and by ListRules.

", + "RuleGroup$RuleGroupId": "

A unique identifier for a RuleGroup. You use RuleGroupId to get more information about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup), insert a RuleGroup into a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a RuleGroup from AWS WAF (see DeleteRuleGroup).

RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.

", + "RuleGroupSummary$RuleGroupId": "

A unique identifier for a RuleGroup. You use RuleGroupId to get more information about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup), insert a RuleGroup into a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a RuleGroup from AWS WAF (see DeleteRuleGroup).

RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.

", "RuleSummary$RuleId": "

A unique identifier for a Rule. You use RuleId to get more information about a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a Rule from AWS WAF (see DeleteRule).

RuleId is returned by CreateRule and by ListRules.

", + "SampledHTTPRequest$RuleWithinRuleGroup": "

This value is returned if the GetSampledRequests request specifies the ID of a RuleGroup rather than the ID of an individual rule. RuleWithinRuleGroup is the rule within the specified RuleGroup that matched the request listed in the response.

", "SizeConstraintSet$SizeConstraintSetId": "

A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId to get information about a SizeConstraintSet (see GetSizeConstraintSet), update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet from AWS WAF (see DeleteSizeConstraintSet).

SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.

", "SizeConstraintSetSummary$SizeConstraintSetId": "

A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId to get information about a SizeConstraintSet (see GetSizeConstraintSet), update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet from AWS WAF (see DeleteSizeConstraintSet).

SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.

", "SqlInjectionMatchSet$SqlInjectionMatchSetId": "

A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet), update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet).

SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.

", "SqlInjectionMatchSetSummary$SqlInjectionMatchSetId": "

A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet), update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule), and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet).

SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.

", + "SubscribedRuleGroupSummary$RuleGroupId": "

A unique identifier for a RuleGroup.

", "UpdateByteMatchSetRequest$ByteMatchSetId": "

The ByteMatchSetId of the ByteMatchSet that you want to update. ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.

", + "UpdateGeoMatchSetRequest$GeoMatchSetId": "

The GeoMatchSetId of the GeoMatchSet that you want to update. GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets.

", "UpdateIPSetRequest$IPSetId": "

The IPSetId of the IPSet that you want to update. IPSetId is returned by CreateIPSet and by ListIPSets.

", "UpdateRateBasedRuleRequest$RuleId": "

The RuleId of the RateBasedRule that you want to update. RuleId is returned by CreateRateBasedRule and by ListRateBasedRules.

", + "UpdateRegexMatchSetRequest$RegexMatchSetId": "

The RegexMatchSetId of the RegexMatchSet that you want to update. RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.

", + "UpdateRegexPatternSetRequest$RegexPatternSetId": "

The RegexPatternSetId of the RegexPatternSet that you want to update. RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.

", + "UpdateRuleGroupRequest$RuleGroupId": "

The RuleGroupId of the RuleGroup that you want to update. RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.

", "UpdateRuleRequest$RuleId": "

The RuleId of the Rule that you want to update. RuleId is returned by CreateRule and by ListRules.

", "UpdateSizeConstraintSetRequest$SizeConstraintSetId": "

The SizeConstraintSetId of the SizeConstraintSet that you want to update. SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.

", "UpdateSqlInjectionMatchSetRequest$SqlInjectionMatchSetId": "

The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to update. SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.

", @@ -885,22 +1307,35 @@ "ByteMatchSet$Name": "

A friendly name or description of the ByteMatchSet. You can't change Name after you create a ByteMatchSet.

", "ByteMatchSetSummary$Name": "

A friendly name or description of the ByteMatchSet. You can't change Name after you create a ByteMatchSet.

", "CreateByteMatchSetRequest$Name": "

A friendly name or description of the ByteMatchSet. You can't change Name after you create a ByteMatchSet.

", + "CreateGeoMatchSetRequest$Name": "

A friendly name or description of the GeoMatchSet. You can't change Name after you create the GeoMatchSet.

", "CreateIPSetRequest$Name": "

A friendly name or description of the IPSet. You can't change Name after you create the IPSet.

", "CreateRateBasedRuleRequest$Name": "

A friendly name or description of the RateBasedRule. You can't change the name of a RateBasedRule after you create it.

", + "CreateRegexMatchSetRequest$Name": "

A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet.

", + "CreateRegexPatternSetRequest$Name": "

A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet.

", + "CreateRuleGroupRequest$Name": "

A friendly name or description of the RuleGroup. You can't change Name after you create a RuleGroup.

", "CreateRuleRequest$Name": "

A friendly name or description of the Rule. You can't change the name of a Rule after you create it.

", "CreateSizeConstraintSetRequest$Name": "

A friendly name or description of the SizeConstraintSet. You can't change Name after you create a SizeConstraintSet.

", "CreateSqlInjectionMatchSetRequest$Name": "

A friendly name or description for the SqlInjectionMatchSet that you're creating. You can't change Name after you create the SqlInjectionMatchSet.

", "CreateWebACLRequest$Name": "

A friendly name or description of the WebACL. You can't change Name after you create the WebACL.

", "CreateXssMatchSetRequest$Name": "

A friendly name or description for the XssMatchSet that you're creating. You can't change Name after you create the XssMatchSet.

", + "GeoMatchSet$Name": "

A friendly name or description of the GeoMatchSet. You can't change the name of an GeoMatchSet after you create it.

", + "GeoMatchSetSummary$Name": "

A friendly name or description of the GeoMatchSet. You can't change the name of an GeoMatchSet after you create it.

", "IPSet$Name": "

A friendly name or description of the IPSet. You can't change the name of an IPSet after you create it.

", "IPSetSummary$Name": "

A friendly name or description of the IPSet. You can't change the name of an IPSet after you create it.

", "RateBasedRule$Name": "

A friendly name or description for a RateBasedRule. You can't change the name of a RateBasedRule after you create it.

", + "RegexMatchSet$Name": "

A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet.

", + "RegexMatchSetSummary$Name": "

A friendly name or description of the RegexMatchSet. You can't change Name after you create a RegexMatchSet.

", + "RegexPatternSet$Name": "

A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet.

", + "RegexPatternSetSummary$Name": "

A friendly name or description of the RegexPatternSet. You can't change Name after you create a RegexPatternSet.

", "Rule$Name": "

The friendly name or description for the Rule. You can't change the name of a Rule after you create it.

", + "RuleGroup$Name": "

The friendly name or description for the RuleGroup. You can't change the name of a RuleGroup after you create it.

", + "RuleGroupSummary$Name": "

A friendly name or description of the RuleGroup. You can't change the name of a RuleGroup after you create it.

", "RuleSummary$Name": "

A friendly name or description of the Rule. You can't change the name of a Rule after you create it.

", "SizeConstraintSet$Name": "

The name, if any, of the SizeConstraintSet.

", "SizeConstraintSetSummary$Name": "

The name of the SizeConstraintSet, if any.

", "SqlInjectionMatchSet$Name": "

The name, if any, of the SqlInjectionMatchSet.

", "SqlInjectionMatchSetSummary$Name": "

The name of the SqlInjectionMatchSet, if any, specified by Id.

", + "SubscribedRuleGroupSummary$Name": "

A friendly name or description of the RuleGroup. You can't change the name of a RuleGroup after you create it.

", "WebACL$Name": "

A friendly name or description of the WebACL. You can't change the name of a WebACL after you create it.

", "WebACLSummary$Name": "

A friendly name or description of the WebACL. You can't change the name of a WebACL after you create it.

", "XssMatchSet$Name": "

The name, if any, of the XssMatchSet.

", @@ -914,6 +1349,37 @@ "GetRuleResponse$Rule": "

Information about the Rule that you specified in the GetRule request. For more information, see the following topics:

  • Rule: Contains MetricName, Name, an array of Predicate objects, and RuleId

  • Predicate: Each Predicate object contains DataId, Negated, and Type

" } }, + "RuleGroup": { + "base": "

A collection of predefined rules that you can add to a web ACL.

Rule groups are subject to the following limits:

  • Three rule groups per account. You can request an increase to this limit by contacting customer support.

  • One rule group per web ACL.

  • Ten rules per rule group.

", + "refs": { + "CreateRuleGroupResponse$RuleGroup": "

An empty RuleGroup.

", + "GetRuleGroupResponse$RuleGroup": "

Information about the RuleGroup that you specified in the GetRuleGroup request.

" + } + }, + "RuleGroupSummaries": { + "base": null, + "refs": { + "ListRuleGroupsResponse$RuleGroups": "

An array of RuleGroup objects.

" + } + }, + "RuleGroupSummary": { + "base": "

Contains the identifier and the friendly name or description of the RuleGroup.

", + "refs": { + "RuleGroupSummaries$member": null + } + }, + "RuleGroupUpdate": { + "base": "

Specifies an ActivatedRule and indicates whether you want to add it to a RuleGroup or delete it from a RuleGroup.

", + "refs": { + "RuleGroupUpdates$member": null + } + }, + "RuleGroupUpdates": { + "base": null, + "refs": { + "UpdateRuleGroupRequest$Updates": "

An array of RuleGroupUpdate objects that you want to insert into or delete from a RuleGroup.

You can only insert REGULAR rules into a rule group.

The Action data type within ActivatedRule is used only when submitting an UpdateWebACL request. ActivatedRule|Action is not applicable and therefore not available for UpdateRuleGroup.

" + } + }, "RulePriority": { "base": null, "refs": { @@ -1058,10 +1524,23 @@ "SqlInjectionMatchSet$SqlInjectionMatchTuples": "

Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code.

" } }, + "SubscribedRuleGroupSummaries": { + "base": null, + "refs": { + "ListSubscribedRuleGroupsResponse$RuleGroups": "

An array of RuleGroup objects.

" + } + }, + "SubscribedRuleGroupSummary": { + "base": "

A summary of the rule groups you are subscribed to.

", + "refs": { + "SubscribedRuleGroupSummaries$member": null + } + }, "TextTransformation": { "base": null, "refs": { "ByteMatchTuple$TextTransformation": "

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on TargetString before inspecting a request for a match.

CMD_LINE

When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

NONE

Specify NONE if you don't want to perform any text transformations.

", + "RegexMatchTuple$TextTransformation": "

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on RegexPatternSet before inspecting a request for a match.

CMD_LINE

When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

NONE

Specify NONE if you don't want to perform any text transformations.

", "SizeConstraint$TextTransformation": "

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on FieldToMatch before inspecting a request for a match.

Note that if you choose BODY for the value of Type, you must choose NONE for TextTransformation because CloudFront forwards only the first 8192 bytes for inspection.

NONE

Specify NONE if you don't want to perform any text transformations.

CMD_LINE

When you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

", "SqlInjectionMatchTuple$TextTransformation": "

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on FieldToMatch before inspecting a request for a match.

CMD_LINE

When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

NONE

Specify NONE if you don't want to perform any text transformations.

", "XssMatchTuple$TextTransformation": "

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on FieldToMatch before inspecting a request for a match.

CMD_LINE

When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations:

  • Delete the following characters: \\ \" ' ^

  • Delete spaces before the following characters: / (

  • Replace the following characters with a space: , ;

  • Replace multiple spaces with one space

  • Convert uppercase letters (A-Z) to lowercase (a-z)

COMPRESS_WHITE_SPACE

Use this option to replace the following characters with a space character (decimal 32):

  • \\f, formfeed, decimal 12

  • \\t, tab, decimal 9

  • \\n, newline, decimal 10

  • \\r, carriage return, decimal 13

  • \\v, vertical tab, decimal 11

  • non-breaking space, decimal 160

COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.

HTML_ENTITY_DECODE

Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE performs the following operations:

  • Replaces (ampersand)quot; with \"

  • Replaces (ampersand)nbsp; with a non-breaking space, decimal 160

  • Replaces (ampersand)lt; with a \"less than\" symbol

  • Replaces (ampersand)gt; with >

  • Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the corresponding characters

  • Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the corresponding characters

LOWERCASE

Use this option to convert uppercase letters (A-Z) to lowercase (a-z).

URL_DECODE

Use this option to decode a URL-encoded value.

NONE

Specify NONE if you don't want to perform any text transformations.

" @@ -1098,6 +1577,16 @@ "refs": { } }, + "UpdateGeoMatchSetRequest": { + "base": null, + "refs": { + } + }, + "UpdateGeoMatchSetResponse": { + "base": null, + "refs": { + } + }, "UpdateIPSetRequest": { "base": null, "refs": { @@ -1118,6 +1607,36 @@ "refs": { } }, + "UpdateRegexMatchSetRequest": { + "base": null, + "refs": { + } + }, + "UpdateRegexMatchSetResponse": { + "base": null, + "refs": { + } + }, + "UpdateRegexPatternSetRequest": { + "base": null, + "refs": { + } + }, + "UpdateRegexPatternSetResponse": { + "base": null, + "refs": { + } + }, + "UpdateRuleGroupRequest": { + "base": null, + "refs": { + } + }, + "UpdateRuleGroupResponse": { + "base": null, + "refs": { + } + }, "UpdateRuleRequest": { "base": null, "refs": { @@ -1189,7 +1708,12 @@ } }, "WAFInvalidParameterException": { - "base": "

The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

  • You specified an invalid parameter name.

  • You specified an invalid value.

  • You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) using an action other than INSERT or DELETE.

  • You tried to create a WebACL with a DefaultAction Type other than ALLOW, BLOCK, or COUNT.

  • You tried to create a RateBasedRule with a RateKey value other than IP.

  • You tried to update a WebACL with a WafAction Type other than ALLOW, BLOCK, or COUNT.

  • You tried to update a ByteMatchSet with a FieldToMatch Type other than HEADER, QUERY_STRING, or URI.

  • You tried to update a ByteMatchSet with a Field of HEADER but no value for Data.

  • Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL cannot be associated.

", + "base": "

The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

  • You specified an invalid parameter name.

  • You specified an invalid value.

  • You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) using an action other than INSERT or DELETE.

  • You tried to create a WebACL with a DefaultAction Type other than ALLOW, BLOCK, or COUNT.

  • You tried to create a RateBasedRule with a RateKey value other than IP.

  • You tried to update a WebACL with a WafAction Type other than ALLOW, BLOCK, or COUNT.

  • You tried to update a ByteMatchSet with a FieldToMatch Type other than HEADER, METHOD, QUERY_STRING, URI, or BODY.

  • You tried to update a ByteMatchSet with a Field of HEADER but no value for Data.

  • Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL cannot be associated.

", + "refs": { + } + }, + "WAFInvalidRegexPatternException": { + "base": "

The regular expression (regex) you specified in RegexPatternString is invalid.

", "refs": { } }, @@ -1223,10 +1747,15 @@ "refs": { } }, + "WAFSubscriptionNotFoundException": { + "base": "

The specified subscription does not exist.

", + "refs": { + } + }, "WafAction": { "base": "

For the action that is associated with a rule in a WebACL, specifies the action that you want AWS WAF to perform when a web request matches all of the conditions in a rule. For the default action in a WebACL, specifies the action that you want AWS WAF to take when a web request doesn't match all of the conditions in any of the rules in a WebACL.

", "refs": { - "ActivatedRule$Action": "

Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the Rule. Valid values for Action include the following:

  • ALLOW: CloudFront responds with the requested object.

  • BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code.

  • COUNT: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL.

", + "ActivatedRule$Action": "

Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the Rule. Valid values for Action include the following:

  • ALLOW: CloudFront responds with the requested object.

  • BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code.

  • COUNT: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL.

The Action data type within ActivatedRule is used only when submitting an UpdateWebACL request. ActivatedRule|Action is not applicable and therefore not available for UpdateRuleGroup.

", "CreateWebACLRequest$DefaultAction": "

The action that you want AWS WAF to take when a request doesn't match the criteria specified in any of the Rule objects that are associated with the WebACL.

", "UpdateWebACLRequest$DefaultAction": "

A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the rules in a web ACL.

", "WebACL$DefaultAction": "

The action to perform if none of the Rules contained in the WebACL match. The action is specified by the WafAction object.

" @@ -1238,10 +1767,22 @@ "WafAction$Type": "

Specifies how you want AWS WAF to respond to requests that match the settings in a Rule. Valid settings include the following:

  • ALLOW: AWS WAF allows requests

  • BLOCK: AWS WAF blocks requests

  • COUNT: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify COUNT for the default action for a WebACL.

" } }, + "WafOverrideAction": { + "base": "

The action to take if any rule within the RuleGroup matches a request.

", + "refs": { + "ActivatedRule$OverrideAction": "

Use the OverrideAction to test your RuleGroup.

Any rule in a RuleGroup can potentially block a request. If you set the OverrideAction to None, the RuleGroup will block a request if any individual rule in the RuleGroup matches the request and is configured to block that request. However if you first want to test the RuleGroup, set the OverrideAction to Count. The RuleGroup will then override any block action specified by individual rules contained within the group. Instead of blocking matching requests, those requests will be counted. You can view a record of counted requests using GetSampledRequests.

The OverrideAction data type within ActivatedRule is used only when submitting an UpdateRuleGroup request. ActivatedRule|OverrideAction is not applicable and therefore not available for UpdateWebACL.

" + } + }, + "WafOverrideActionType": { + "base": null, + "refs": { + "WafOverrideAction$Type": "

COUNT overrides the action specified by the individual rule within a RuleGroup . If set to NONE, the rule's action will take place.

" + } + }, "WafRuleType": { "base": null, "refs": { - "ActivatedRule$Type": "

The rule type, either REGULAR, as defined by Rule, or RATE_BASED, as defined by RateBasedRule. The default is REGULAR. Although this field is optional, be aware that if you try to add a RATE_BASED rule to a web ACL without setting the type, the UpdateWebACL request will fail because the request tries to add a REGULAR rule with the specified ID, which does not exist.

" + "ActivatedRule$Type": "

The rule type, either REGULAR, as defined by Rule, RATE_BASED, as defined by RateBasedRule, or GROUP, as defined by RuleGroup. The default is REGULAR. Although this field is optional, be aware that if you try to add a RATE_BASED rule to a web ACL without setting the type, the UpdateWebACL request will fail because the request tries to add a REGULAR rule with the specified ID, which does not exist.

" } }, "WebACL": { @@ -1272,7 +1813,7 @@ "WebACLUpdates": { "base": null, "refs": { - "UpdateWebACLRequest$Updates": "

An array of updates to make to the WebACL.

An array of WebACLUpdate objects that you want to insert into or delete from a WebACL. For more information, see the applicable data types:

" + "UpdateWebACLRequest$Updates": "

An array of updates to make to the WebACL.

An array of WebACLUpdate objects that you want to insert into or delete from a WebACL. For more information, see the applicable data types:

  • WebACLUpdate: Contains Action and ActivatedRule

  • ActivatedRule: Contains Action, Priority, RuleId, and Type. The OverrideAction data type within ActivatedRule is used only when submitting an UpdateRuleGroup request. ActivatedRule|OverrideAction is not applicable and therefore not available for UpdateWebACL.

  • WafAction: Contains Type

" } }, "XssMatchSet": { @@ -1325,12 +1866,14 @@ "WAFDisallowedNameException$message": null, "WAFInternalErrorException$message": null, "WAFInvalidOperationException$message": null, + "WAFInvalidRegexPatternException$message": null, "WAFLimitsExceededException$message": null, "WAFNonEmptyEntityException$message": null, "WAFNonexistentContainerException$message": null, "WAFNonexistentItemException$message": null, "WAFReferencedItemException$message": null, - "WAFStaleDataException$message": null + "WAFStaleDataException$message": null, + "WAFSubscriptionNotFoundException$message": null } } } diff --git a/models/apis/waf/2015-08-24/smoke.json b/models/apis/waf/2015-08-24/smoke.json new file mode 100644 index 00000000000..83717fc850d --- /dev/null +++ b/models/apis/waf/2015-08-24/smoke.json @@ -0,0 +1,21 @@ +{ + "version": 1, + "defaultRegion": "us-east-1", + "testCases": [ + { + "operationName": "ListRules", + "input": { + "Limit": 20 + }, + "errorExpectedFromService": false + }, + { + "operationName": "CreateSqlInjectionMatchSet", + "input": { + "Name": "fake_name", + "ChangeToken": "fake_token" + }, + "errorExpectedFromService": true + } + ] +} \ No newline at end of file diff --git a/models/apis/workdocs/2016-05-01/api-2.json b/models/apis/workdocs/2016-05-01/api-2.json index afe2920fcad..1aec283913f 100644 --- a/models/apis/workdocs/2016-05-01/api-2.json +++ b/models/apis/workdocs/2016-05-01/api-2.json @@ -392,6 +392,22 @@ {"shape":"ProhibitedStateException"} ] }, + "DescribeGroups":{ + "name":"DescribeGroups", + "http":{ + "method":"GET", + "requestUri":"/api/v1/groups", + "responseCode":200 + }, + "input":{"shape":"DescribeGroupsRequest"}, + "output":{"shape":"DescribeGroupsResponse"}, + "errors":[ + {"shape":"UnauthorizedOperationException"}, + {"shape":"UnauthorizedResourceAccessException"}, + {"shape":"FailedDependencyException"}, + {"shape":"ServiceUnavailableException"} + ] + }, "DescribeNotificationSubscriptions":{ "name":"DescribeNotificationSubscriptions", "http":{ @@ -489,7 +505,8 @@ {"shape":"UnauthorizedResourceAccessException"}, {"shape":"InvalidArgumentException"}, {"shape":"FailedDependencyException"}, - {"shape":"ServiceUnavailableException"} + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidPasswordException"} ] }, "GetDocumentPath":{ @@ -524,7 +541,8 @@ {"shape":"UnauthorizedResourceAccessException"}, {"shape":"FailedDependencyException"}, {"shape":"ServiceUnavailableException"}, - {"shape":"ProhibitedStateException"} + {"shape":"ProhibitedStateException"}, + {"shape":"InvalidPasswordException"} ] }, "GetFolder":{ @@ -691,7 +709,8 @@ {"shape":"IllegalUserStateException"}, {"shape":"FailedDependencyException"}, {"shape":"ServiceUnavailableException"}, - {"shape":"DeactivatingLastSystemUserException"} + {"shape":"DeactivatingLastSystemUserException"}, + {"shape":"InvalidArgumentException"} ] } }, @@ -808,7 +827,8 @@ "location":"uri", "locationName":"ResourceId" }, - "Principals":{"shape":"SharePrincipalList"} + "Principals":{"shape":"SharePrincipalList"}, + "NotificationOptions":{"shape":"NotificationOptions"} } }, "AddResourcePermissionsResponse":{ @@ -823,6 +843,13 @@ "min":1, "sensitive":true }, + "BooleanEnumType":{ + "type":"string", + "enum":[ + "TRUE", + "FALSE" + ] + }, "BooleanType":{"type":"boolean"}, "Comment":{ "type":"structure", @@ -985,7 +1012,7 @@ "location":"uri", "locationName":"ResourceId" }, - "Labels":{"shape":"Labels"}, + "Labels":{"shape":"SharedLabels"}, "AuthenticationToken":{ "shape":"AuthenticationHeaderType", "location":"header", @@ -1237,7 +1264,7 @@ "locationName":"Authentication" }, "Labels":{ - "shape":"Labels", + "shape":"SharedLabels", "location":"querystring", "locationName":"labels" }, @@ -1473,6 +1500,44 @@ "Marker":{"shape":"PageMarkerType"} } }, + "DescribeGroupsRequest":{ + "type":"structure", + "required":["SearchQuery"], + "members":{ + "AuthenticationToken":{ + "shape":"AuthenticationHeaderType", + "location":"header", + "locationName":"Authentication" + }, + "SearchQuery":{ + "shape":"SearchQueryType", + "location":"querystring", + "locationName":"searchQuery" + }, + "OrganizationId":{ + "shape":"IdType", + "location":"querystring", + "locationName":"organizationId" + }, + "Marker":{ + "shape":"MarkerType", + "location":"querystring", + "locationName":"marker" + }, + "Limit":{ + "shape":"PositiveIntegerType", + "location":"querystring", + "locationName":"limit" + } + } + }, + "DescribeGroupsResponse":{ + "type":"structure", + "members":{ + "Groups":{"shape":"GroupMetadataList"}, + "Marker":{"shape":"MarkerType"} + } + }, "DescribeNotificationSubscriptionsRequest":{ "type":"structure", "required":["OrganizationId"], @@ -1515,6 +1580,11 @@ "location":"uri", "locationName":"ResourceId" }, + "PrincipalId":{ + "shape":"IdType", + "location":"querystring", + "locationName":"principalId" + }, "Limit":{ "shape":"LimitType", "location":"querystring", @@ -1621,7 +1691,10 @@ "type":"structure", "members":{ "Users":{"shape":"OrganizationUserList"}, - "TotalNumberOfUsers":{"shape":"SizeType"}, + "TotalNumberOfUsers":{ + "shape":"SizeType", + "deprecated":true + }, "Marker":{"shape":"PageMarkerType"} } }, @@ -1648,7 +1721,7 @@ "ModifiedTimestamp":{"shape":"TimestampType"}, "LatestVersionMetadata":{"shape":"DocumentVersionMetadata"}, "ResourceState":{"shape":"ResourceStateType"}, - "Labels":{"shape":"Labels"} + "Labels":{"shape":"SharedLabels"} } }, "DocumentMetadataList":{ @@ -1788,7 +1861,7 @@ "ModifiedTimestamp":{"shape":"TimestampType"}, "ResourceState":{"shape":"ResourceStateType"}, "Signature":{"shape":"HashType"}, - "Labels":{"shape":"Labels"}, + "Labels":{"shape":"SharedLabels"}, "Size":{"shape":"SizeType"}, "LatestVersionSize":{"shape":"SizeType"} } @@ -2069,16 +2142,13 @@ "error":{"httpStatusCode":405}, "exception":true }, - "Label":{ - "type":"string", - "max":32, - "min":1, - "pattern":"[a-zA-Z0-9._+-/=][a-zA-Z0-9 ._+-/=]*" - }, - "Labels":{ - "type":"list", - "member":{"shape":"Label"}, - "max":20 + "InvalidPasswordException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessageType"} + }, + "error":{"httpStatusCode":401}, + "exception":true }, "LimitExceededException":{ "type":"structure", @@ -2121,6 +2191,13 @@ "min":0, "sensitive":true }, + "NotificationOptions":{ + "type":"structure", + "members":{ + "SendEmail":{"shape":"BooleanType"}, + "EmailMessage":{"shape":"MessageType"} + } + }, "OrderType":{ "type":"string", "enum":[ @@ -2162,6 +2239,10 @@ "type":"list", "member":{"shape":"PermissionInfo"} }, + "PositiveIntegerType":{ + "type":"integer", + "min":1 + }, "PositiveSizeType":{ "type":"long", "min":0 @@ -2383,6 +2464,17 @@ "FAILURE" ] }, + "SharedLabel":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[a-zA-Z0-9._+-/=][a-zA-Z0-9 ._+-/=]*" + }, + "SharedLabels":{ + "type":"list", + "member":{"shape":"SharedLabel"}, + "max":20 + }, "SignedHeaderMap":{ "type":"map", "key":{"shape":"HeaderNameType"}, @@ -2564,7 +2656,8 @@ "Type":{"shape":"UserType"}, "StorageRule":{"shape":"StorageRuleType"}, "TimeZoneId":{"shape":"TimeZoneIdType"}, - "Locale":{"shape":"LocaleType"} + "Locale":{"shape":"LocaleType"}, + "GrantPoweruserPrivileges":{"shape":"BooleanEnumType"} } }, "UpdateUserResponse":{ @@ -2671,7 +2764,10 @@ "type":"string", "enum":[ "USER", - "ADMIN" + "ADMIN", + "POWERUSER", + "MINIMALUSER", + "WORKSPACESUSER" ] }, "UsernameType":{ diff --git a/models/apis/workdocs/2016-05-01/docs-2.json b/models/apis/workdocs/2016-05-01/docs-2.json index 7f3dae2eb87..5761d7573ad 100644 --- a/models/apis/workdocs/2016-05-01/docs-2.json +++ b/models/apis/workdocs/2016-05-01/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "

The WorkDocs API is designed for the following use cases:

  • File Migration: File migration applications are supported for users who want to migrate their files from an on-premise or off-premise file system or service. Users can insert files into a user directory structure, as well as allow for basic metadata changes, such as modifications to the permissions of files.

  • Security: Support security applications are supported for users who have additional security needs, such as anti-virus or data loss prevention. The APIs, in conjunction with Amazon CloudTrail, allow these applications to detect when changes occur in Amazon WorkDocs, so the application can take the necessary actions and replace the target file. The application can also choose to email the user if the target file violates the policy.

  • eDiscovery/Analytics: General administrative applications are supported, such as eDiscovery and analytics. These applications can choose to mimic and/or record the actions in an Amazon WorkDocs site, in conjunction with Amazon CloudTrails, to replicate data for eDiscovery, backup, or analytical applications.

All Amazon WorkDocs APIs are Amazon authenticated, certificate-signed APIs. They not only require the use of the AWS SDK, but also allow for the exclusive use of IAM users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the Amazon WorkDocs site, the IAM user gains full administrative visibility into the entire Amazon WorkDocs site (or as set in the IAM policy). This includes, but is not limited to, the ability to modify file permissions and upload any file to any user. This allows developers to perform the three use cases above, as well as give users the ability to grant access on a selective basis using the IAM model.

", + "service": "

The WorkDocs API is designed for the following use cases:

  • File Migration: File migration applications are supported for users who want to migrate their files from an on-premises or off-premises file system or service. Users can insert files into a user directory structure, as well as allow for basic metadata changes, such as modifications to the permissions of files.

  • Security: Support security applications are supported for users who have additional security needs, such as antivirus or data loss prevention. The API actions, along with AWS CloudTrail, allow these applications to detect when changes occur in Amazon WorkDocs. Then, the application can take the necessary actions and replace the target file. If the target file violates the policy, the application can also choose to email the user.

  • eDiscovery/Analytics: General administrative applications are supported, such as eDiscovery and analytics. These applications can choose to mimic or record the actions in an Amazon WorkDocs site, along with AWS CloudTrail, to replicate data for eDiscovery, backup, or analytical applications.

All Amazon WorkDocs API actions are Amazon authenticated and certificate-signed. They not only require the use of the AWS SDK, but also allow for the exclusive use of IAM users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the Amazon WorkDocs site, the IAM user gains full administrative visibility into the entire Amazon WorkDocs site (or as set in the IAM policy). This includes, but is not limited to, the ability to modify file permissions and upload any file to any user. This allows developers to perform the three use cases above, as well as give users the ability to grant access on a selective basis using the IAM model.

", "operations": { "AbortDocumentVersionUpload": "

Aborts the upload of the specified document version that was previously initiated by InitiateDocumentVersionUpload. The client should make this call only when it no longer intends to upload the document version, or fails to do so.

", "ActivateUser": "

Activates the specified user. Only active users can access Amazon WorkDocs.

", @@ -24,9 +24,10 @@ "DescribeComments": "

List all the comments for the specified document version.

", "DescribeDocumentVersions": "

Retrieves the document versions for the specified document.

By default, only active versions are returned.

", "DescribeFolderContents": "

Describes the contents of the specified folder, including its documents and subfolders.

By default, Amazon WorkDocs returns the first 100 active document and folder metadata items. If there are more results, the response includes a marker that you can use to request the next set of results. You can also request initialized documents.

", + "DescribeGroups": "

Describes the groups specified by query.

", "DescribeNotificationSubscriptions": "

Lists the specified notification subscriptions.

", "DescribeResourcePermissions": "

Describes the permissions of a specified resource.

", - "DescribeRootFolders": "

Describes the current user's special folders; the RootFolder and the RecyleBin. RootFolder is the root of user's files and folders and RecyleBin is the root of recycled items. This is not a valid action for SigV4 (administrative API) clients.

", + "DescribeRootFolders": "

Describes the current user's special folders; the RootFolder and the RecycleBin. RootFolder is the root of user's files and folders and RecycleBin is the root of recycled items. This is not a valid action for SigV4 (administrative API) clients.

", "DescribeUsers": "

Describes the specified users. You can describe all users or filter the results (for example, by status or organization).

By default, Amazon WorkDocs returns the first 24 active or pending users. If there are more results, the response includes a marker that you can use to request the next set of results.

", "GetCurrentUser": "

Retrieves details of the current user for whom the authentication token was generated. This is not a valid action for SigV4 (administrative API) clients.

", "GetDocument": "

Retrieves details of a document.

", @@ -83,42 +84,49 @@ "AuthenticationHeaderType": { "base": null, "refs": { - "AbortDocumentVersionUploadRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "ActivateUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "AddResourcePermissionsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "CreateCommentRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "CreateCustomMetadataRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "CreateFolderRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "CreateLabelsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "CreateUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DeactivateUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DeleteCommentRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DeleteCustomMetadataRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DeleteDocumentRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DeleteFolderContentsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DeleteFolderRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DeleteLabelsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DeleteUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DescribeActivitiesRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DescribeCommentsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DescribeDocumentVersionsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DescribeFolderContentsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DescribeResourcePermissionsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DescribeRootFoldersRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "DescribeUsersRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "GetCurrentUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token.

", - "GetDocumentPathRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "GetDocumentRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "GetDocumentVersionRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "GetFolderPathRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "GetFolderRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "InitiateDocumentVersionUploadRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "RemoveAllResourcePermissionsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "RemoveResourcePermissionRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "UpdateDocumentRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "UpdateDocumentVersionRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "UpdateFolderRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

", - "UpdateUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.

" + "AbortDocumentVersionUploadRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "ActivateUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "AddResourcePermissionsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "CreateCommentRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "CreateCustomMetadataRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "CreateFolderRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "CreateLabelsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "CreateUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DeactivateUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DeleteCommentRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DeleteCustomMetadataRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DeleteDocumentRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DeleteFolderContentsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DeleteFolderRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DeleteLabelsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DeleteUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DescribeActivitiesRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DescribeCommentsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DescribeDocumentVersionsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DescribeFolderContentsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DescribeGroupsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DescribeResourcePermissionsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DescribeRootFoldersRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "DescribeUsersRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "GetCurrentUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "GetDocumentPathRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "GetDocumentRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "GetDocumentVersionRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "GetFolderPathRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "GetFolderRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "InitiateDocumentVersionUploadRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "RemoveAllResourcePermissionsRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "RemoveResourcePermissionRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "UpdateDocumentRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "UpdateDocumentVersionRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "UpdateFolderRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "UpdateUserRequest$AuthenticationToken": "

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

" + } + }, + "BooleanEnumType": { + "base": null, + "refs": { + "UpdateUserRequest$GrantPoweruserPrivileges": "

Boolean value to determine whether the user is granted Poweruser privileges.

" } }, "BooleanType": { @@ -129,7 +137,8 @@ "DeleteLabelsRequest$DeleteAll": "

Flag to request removal of all labels from the specified resource.

", "GetDocumentRequest$IncludeCustomMetadata": "

Set this to TRUE to include custom metadata in the response.

", "GetDocumentVersionRequest$IncludeCustomMetadata": "

Set this to TRUE to include custom metadata in the response.

", - "GetFolderRequest$IncludeCustomMetadata": "

Set to TRUE to include custom metadata in the response.

" + "GetFolderRequest$IncludeCustomMetadata": "

Set to TRUE to include custom metadata in the response.

", + "NotificationOptions$SendEmail": "

Boolean value to indicate an email notification should be sent to the receipients.

" } }, "Comment": { @@ -167,7 +176,7 @@ "base": null, "refs": { "Comment$Status": "

The status of the comment.

", - "CommentMetadata$CommentStatus": null + "CommentMetadata$CommentStatus": "

The status of the comment.

" } }, "CommentTextType": { @@ -382,6 +391,16 @@ "refs": { } }, + "DescribeGroupsRequest": { + "base": null, + "refs": { + } + }, + "DescribeGroupsResponse": { + "base": null, + "refs": { + } + }, "DescribeNotificationSubscriptionsRequest": { "base": null, "refs": { @@ -555,6 +574,7 @@ "IllegalUserStateException$Message": null, "InvalidArgumentException$Message": null, "InvalidOperationException$Message": null, + "InvalidPasswordException$Message": null, "LimitExceededException$Message": null, "ProhibitedStateException$Message": null, "ResourceAlreadyCheckedOutException$Message": null, @@ -567,7 +587,7 @@ } }, "FailedDependencyException": { - "base": "

The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the organization is failing, such as a connected active directory.

", + "base": "

The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the organization is failing, such as a connected Active Directory.

", "refs": { } }, @@ -673,6 +693,7 @@ "GroupMetadataList": { "base": null, "refs": { + "DescribeGroupsResponse$Groups": "

The list of groups.

", "Participants$Groups": "

The list of user groups.

" } }, @@ -716,7 +737,9 @@ "DeleteUserRequest$UserId": "

The ID of the user.

", "DescribeActivitiesRequest$OrganizationId": "

The ID of the organization. This is a mandatory parameter when using administrative API (SigV4) requests.

", "DescribeActivitiesRequest$UserId": "

The ID of the user who performed the action. The response includes activities pertaining to this user. This is an optional parameter and is only applicable for administrative API (SigV4) requests.

", + "DescribeGroupsRequest$OrganizationId": "

The ID of the organization.

", "DescribeNotificationSubscriptionsRequest$OrganizationId": "

The ID of the organization.

", + "DescribeResourcePermissionsRequest$PrincipalId": "

The ID of the principal to filter permissions by.

", "DescribeUsersRequest$OrganizationId": "

The ID of the organization.

", "DocumentMetadata$CreatorId": "

The ID of the creator.

", "DocumentVersionMetadata$CreatorId": "

The ID of the creator.

", @@ -753,7 +776,7 @@ } }, "InvalidArgumentException": { - "base": "

The pagination marker and/or limit fields are not valid.

", + "base": "

The pagination marker or limit fields are not valid.

", "refs": { } }, @@ -762,19 +785,9 @@ "refs": { } }, - "Label": { - "base": null, - "refs": { - "Labels$member": null - } - }, - "Labels": { - "base": null, + "InvalidPasswordException": { + "base": "

The password is invalid.

", "refs": { - "CreateLabelsRequest$Labels": "

List of labels to add to the resource.

", - "DeleteLabelsRequest$Labels": "

List of labels to delete from the resource.

", - "DocumentMetadata$Labels": "

List of labels on the document.

", - "FolderMetadata$Labels": "

List of labels on the folder.

" } }, "LimitExceededException": { @@ -807,18 +820,27 @@ "MarkerType": { "base": null, "refs": { - "DescribeActivitiesRequest$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", + "DescribeActivitiesRequest$Marker": "

The marker for the next set of results.

", "DescribeActivitiesResponse$Marker": "

The marker for the next set of results.

", "DescribeCommentsRequest$Marker": "

The marker for the next set of results. This marker was received from a previous call.

", - "DescribeCommentsResponse$Marker": "

The marker for the next set of results. This marker was received from a previous call.

" + "DescribeCommentsResponse$Marker": "

The marker for the next set of results. This marker was received from a previous call.

", + "DescribeGroupsRequest$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", + "DescribeGroupsResponse$Marker": "

The marker to use when requesting the next set of results. If there are no additional results, the string is empty.

" } }, "MessageType": { "base": null, "refs": { + "NotificationOptions$EmailMessage": "

Text value to be included in the email body.

", "ShareResult$StatusMessage": "

The status message.

" } }, + "NotificationOptions": { + "base": "

Set of options which defines notification preferences of given action.

", + "refs": { + "AddResourcePermissionsRequest$NotificationOptions": "

The notification options.

" + } + }, "OrderType": { "base": null, "refs": { @@ -852,7 +874,7 @@ } }, "Participants": { - "base": "

Describes the users and/or user groups.

", + "base": "

Describes the users or user groups.

", "refs": { "Activity$Participants": "

The list of users or groups impacted by this action. This is an optional field and is filled for the following sharing activities: DOCUMENT_SHARED, DOCUMENT_SHARED, DOCUMENT_UNSHARED, FOLDER_SHARED, FOLDER_UNSHARED.

" } @@ -875,6 +897,12 @@ "Principal$Roles": "

The permission information for the resource.

" } }, + "PositiveIntegerType": { + "base": null, + "refs": { + "DescribeGroupsRequest$Limit": "

The maximum number of items to return with this call.

" + } + }, "PositiveSizeType": { "base": null, "refs": { @@ -978,7 +1006,7 @@ "FolderMetadata$Name": "

The name of the folder.

", "InitiateDocumentVersionUploadRequest$Name": "

The name of the document.

", "ResourceMetadata$Name": "

The name of the resource.

", - "ResourceMetadata$OriginalName": "

The original name of the resource prior to a rename operation.

", + "ResourceMetadata$OriginalName": "

The original name of the resource before a rename operation.

", "ResourcePathComponent$Name": "

The name of the resource path.

", "UpdateDocumentRequest$Name": "

The name of the document.

", "UpdateFolderRequest$Name": "

The name of the folder.

" @@ -1014,8 +1042,8 @@ "refs": { "DocumentMetadata$ResourceState": "

The resource state.

", "FolderMetadata$ResourceState": "

The resource state of the folder.

", - "UpdateDocumentRequest$ResourceState": "

The resource state of the document. Note that only ACTIVE and RECYCLED are supported.

", - "UpdateFolderRequest$ResourceState": "

The resource state of the folder. Note that only ACTIVE and RECYCLED are accepted values from the API.

" + "UpdateDocumentRequest$ResourceState": "

The resource state of the document. Only ACTIVE and RECYCLED are supported.

", + "UpdateFolderRequest$ResourceState": "

The resource state of the folder. Only ACTIVE and RECYCLED are accepted values from the API.

" } }, "ResourceType": { @@ -1041,6 +1069,7 @@ "SearchQueryType": { "base": null, "refs": { + "DescribeGroupsRequest$SearchQuery": "

A query to describe groups by group name.

", "DescribeUsersRequest$Query": "

A query to filter users by user name.

" } }, @@ -1079,6 +1108,21 @@ "ShareResult$Status": "

The status.

" } }, + "SharedLabel": { + "base": null, + "refs": { + "SharedLabels$member": null + } + }, + "SharedLabels": { + "base": null, + "refs": { + "CreateLabelsRequest$Labels": "

List of labels to add to the resource.

", + "DeleteLabelsRequest$Labels": "

List of labels to delete from the resource.

", + "DocumentMetadata$Labels": "

List of labels on the document.

", + "FolderMetadata$Labels": "

List of labels on the folder.

" + } + }, "SignedHeaderMap": { "base": null, "refs": { @@ -1093,7 +1137,7 @@ "FolderMetadata$Size": "

The size of the folder metadata.

", "FolderMetadata$LatestVersionSize": "

The size of the latest version of the folder metadata.

", "InitiateDocumentVersionUploadRequest$DocumentSizeInBytes": "

The size of the document, in bytes.

", - "UserStorageMetadata$StorageUtilizedInBytes": "

The amount of storage utilized, in bytes.

" + "UserStorageMetadata$StorageUtilizedInBytes": "

The amount of storage used, in bytes.

" } }, "StorageLimitExceededException": { @@ -1143,7 +1187,7 @@ "SubscriptionProtocolType": { "base": null, "refs": { - "CreateNotificationSubscriptionRequest$Protocol": "

The protocol to use. The supported value is https, which delivers JSON-encoded messasges using HTTPS POST.

", + "CreateNotificationSubscriptionRequest$Protocol": "

The protocol to use. The supported value is https, which delivers JSON-encoded messages using HTTPS POST.

", "Subscription$Protocol": "

The protocol of the subscription.

" } }, @@ -1166,19 +1210,19 @@ "refs": { "Activity$TimeStamp": "

The timestamp when the action was performed.

", "Comment$CreatedTimestamp": "

The time that the comment was created.

", - "CommentMetadata$CreatedTimestamp": null, - "DescribeActivitiesRequest$StartTime": "

The timestamp that determines the starting time of the activities; the response includes the activities performed after the specified timestamp.

", - "DescribeActivitiesRequest$EndTime": "

The timestamp that determines the end time of the activities; the response includes the activities performed before the specified timestamp.

", + "CommentMetadata$CreatedTimestamp": "

The timestamp that the comment was created.

", + "DescribeActivitiesRequest$StartTime": "

The timestamp that determines the starting time of the activities. The response includes the activities performed after the specified timestamp.

", + "DescribeActivitiesRequest$EndTime": "

The timestamp that determines the end time of the activities. The response includes the activities performed before the specified timestamp.

", "DocumentMetadata$CreatedTimestamp": "

The time when the document was created.

", "DocumentMetadata$ModifiedTimestamp": "

The time when the document was updated.

", - "DocumentVersionMetadata$CreatedTimestamp": "

The time stamp when the document was first uploaded.

", - "DocumentVersionMetadata$ModifiedTimestamp": "

The time stamp when the document was last uploaded.

", - "DocumentVersionMetadata$ContentCreatedTimestamp": "

The time stamp when the content of the document was originally created.

", - "DocumentVersionMetadata$ContentModifiedTimestamp": "

The time stamp when the content of the document was modified.

", + "DocumentVersionMetadata$CreatedTimestamp": "

The timestamp when the document was first uploaded.

", + "DocumentVersionMetadata$ModifiedTimestamp": "

The timestamp when the document was last uploaded.

", + "DocumentVersionMetadata$ContentCreatedTimestamp": "

The timestamp when the content of the document was originally created.

", + "DocumentVersionMetadata$ContentModifiedTimestamp": "

The timestamp when the content of the document was modified.

", "FolderMetadata$CreatedTimestamp": "

The time when the folder was created.

", "FolderMetadata$ModifiedTimestamp": "

The time when the folder was updated.

", - "InitiateDocumentVersionUploadRequest$ContentCreatedTimestamp": "

The time stamp when the content of the document was originally created.

", - "InitiateDocumentVersionUploadRequest$ContentModifiedTimestamp": "

The time stamp when the content of the document was modified.

", + "InitiateDocumentVersionUploadRequest$ContentCreatedTimestamp": "

The timestamp when the content of the document was originally created.

", + "InitiateDocumentVersionUploadRequest$ContentModifiedTimestamp": "

The timestamp when the content of the document was modified.

", "User$CreatedTimestamp": "

The time when the user was created.

", "User$ModifiedTimestamp": "

The time when the user was modified.

" } @@ -1329,7 +1373,7 @@ "refs": { "CreateUserRequest$Username": "

The login name of the user.

", "User$Username": "

The login name of the user.

", - "UserMetadata$Username": "

The username of the user.

" + "UserMetadata$Username": "

The name of the user.

" } } } diff --git a/models/apis/xray/2016-04-12/api-2.json b/models/apis/xray/2016-04-12/api-2.json index 8c6e7f9a23e..1baab6ef8d3 100644 --- a/models/apis/xray/2016-04-12/api-2.json +++ b/models/apis/xray/2016-04-12/api-2.json @@ -147,6 +147,10 @@ } }, "Double":{"type":"double"}, + "EC2InstanceId":{ + "type":"string", + "max":20 + }, "Edge":{ "type":"structure", "members":{ @@ -172,6 +176,7 @@ "TotalResponseTime":{"shape":"NullableDouble"} } }, + "ErrorMessage":{"type":"string"}, "ErrorStatistics":{ "type":"structure", "members":{ @@ -190,7 +195,7 @@ "FilterExpression":{ "type":"string", "max":2000, - "min":0 + "min":1 }, "GetServiceGraphRequest":{ "type":"structure", @@ -262,6 +267,10 @@ "Count":{"shape":"Integer"} } }, + "Hostname":{ + "type":"string", + "max":255 + }, "Http":{ "type":"structure", "members":{ @@ -276,6 +285,7 @@ "InvalidRequestException":{ "type":"structure", "members":{ + "Message":{"shape":"ErrorMessage"} }, "exception":true }, @@ -288,9 +298,9 @@ "required":["TelemetryRecords"], "members":{ "TelemetryRecords":{"shape":"TelemetryRecordList"}, - "EC2InstanceId":{"shape":"String"}, - "Hostname":{"shape":"String"}, - "ResourceARN":{"shape":"String"} + "EC2InstanceId":{"shape":"EC2InstanceId"}, + "Hostname":{"shape":"Hostname"}, + "ResourceARN":{"shape":"ResourceARN"} } }, "PutTelemetryRecordsResult":{ @@ -311,6 +321,10 @@ "UnprocessedTraceSegments":{"shape":"UnprocessedTraceSegmentList"} } }, + "ResourceARN":{ + "type":"string", + "max":500 + }, "Segment":{ "type":"structure", "members":{ @@ -322,11 +336,7 @@ "type":"string", "min":1 }, - "SegmentId":{ - "type":"string", - "max":16, - "min":16 - }, + "SegmentId":{"type":"string"}, "SegmentList":{ "type":"list", "member":{"shape":"Segment"} @@ -383,6 +393,7 @@ "String":{"type":"string"}, "TelemetryRecord":{ "type":"structure", + "required":["Timestamp"], "members":{ "Timestamp":{"shape":"Timestamp"}, "SegmentsReceivedCount":{"shape":"NullableInteger"}, @@ -399,6 +410,7 @@ "ThrottledException":{ "type":"structure", "members":{ + "Message":{"shape":"ErrorMessage"} }, "error":{"httpStatusCode":429}, "exception":true @@ -415,7 +427,7 @@ "TraceId":{ "type":"string", "max":35, - "min":35 + "min":1 }, "TraceIdList":{ "type":"list", diff --git a/models/apis/xray/2016-04-12/docs-2.json b/models/apis/xray/2016-04-12/docs-2.json index 90e5cad0cb8..fd7434b8060 100644 --- a/models/apis/xray/2016-04-12/docs-2.json +++ b/models/apis/xray/2016-04-12/docs-2.json @@ -68,6 +68,12 @@ "HistogramEntry$Value": "

The value of the entry.

" } }, + "EC2InstanceId": { + "base": null, + "refs": { + "PutTelemetryRecordsRequest$EC2InstanceId": "

" + } + }, "Edge": { "base": "

Information about a connection between two services.

", "refs": { @@ -86,6 +92,13 @@ "Edge$SummaryStatistics": "

Response statistics for segments on the edge.

" } }, + "ErrorMessage": { + "base": null, + "refs": { + "InvalidRequestException$Message": null, + "ThrottledException$Message": null + } + }, "ErrorStatistics": { "base": "

Information about requests that failed with a 4xx Client Error status code.

", "refs": { @@ -150,6 +163,12 @@ "Histogram$member": null } }, + "Hostname": { + "base": null, + "refs": { + "PutTelemetryRecordsRequest$Hostname": "

" + } + }, "Http": { "base": "

Information about an HTTP request.

", "refs": { @@ -243,6 +262,12 @@ "refs": { } }, + "ResourceARN": { + "base": null, + "refs": { + "PutTelemetryRecordsRequest$ResourceARN": "

" + } + }, "Segment": { "base": "

A segment from a trace that has been ingested by the X-Ray service. The segment can be compiled from documents uploaded with PutTraceSegments, or an inferred segment for a downstream service, generated from a subsegment sent by the service that called it.

", "refs": { @@ -326,9 +351,6 @@ "Http$HttpMethod": "

The request method.

", "Http$UserAgent": "

The request's user agent string.

", "Http$ClientIp": "

The IP address of the requestor.

", - "PutTelemetryRecordsRequest$EC2InstanceId": "

", - "PutTelemetryRecordsRequest$Hostname": "

", - "PutTelemetryRecordsRequest$ResourceARN": "

", "Service$Name": "

The canonical name of the service.

", "Service$AccountId": "

Identifier of the AWS account in which the service runs.

", "Service$Type": "

The type of service.

  • AWS Resource - The type of an AWS resource. For example, AWS::EC2::Instance for a application running on Amazon EC2 or AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.

  • AWS Service - The type of an AWS service. For example, AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a specific table.

  • client - Represents the clients that sent requests to a root service.

  • remote - A downstream service of indeterminate type.

", diff --git a/models/apis/xray/2016-04-12/paginators-1.json b/models/apis/xray/2016-04-12/paginators-1.json index 5677bd8e4a2..801ae6236d4 100644 --- a/models/apis/xray/2016-04-12/paginators-1.json +++ b/models/apis/xray/2016-04-12/paginators-1.json @@ -1,4 +1,24 @@ { "pagination": { + "BatchGetTraces": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Traces" + }, + "GetServiceGraph": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Services" + }, + "GetTraceGraph": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Services" + }, + "GetTraceSummaries": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "TraceSummaries" + } } -} +} \ No newline at end of file diff --git a/models/endpoints/endpoint.json b/models/endpoints/endpoint.json deleted file mode 100644 index 131aba24aed..00000000000 --- a/models/endpoints/endpoint.json +++ /dev/null @@ -1,1936 +0,0 @@ -{ - "partitions": [ - { - "defaults": { - "hostname": "{service}.{region}.{dnsSuffix}", - "protocols": [ - "https" - ], - "signatureVersions": [ - "v4" - ] - }, - "dnsSuffix": "amazonaws.com", - "partition": "aws", - "partitionName": "AWS Standard", - "regionRegex": "^(us|eu|ap|sa|ca)\\-\\w+\\-\\d+$", - "regions": { - "ap-northeast-1": { - "description": "Asia Pacific (Tokyo)" - }, - "ap-northeast-2": { - "description": "Asia Pacific (Seoul)" - }, - "ap-south-1": { - "description": "Asia Pacific (Mumbai)" - }, - "ap-southeast-1": { - "description": "Asia Pacific (Singapore)" - }, - "ap-southeast-2": { - "description": "Asia Pacific (Sydney)" - }, - "ca-central-1": { - "description": "Canada (Central)" - }, - "eu-central-1": { - "description": "EU (Frankfurt)" - }, - "eu-west-1": { - "description": "EU (Ireland)" - }, - "eu-west-2": { - "description": "EU (London)" - }, - "sa-east-1": { - "description": "South America (Sao Paulo)" - }, - "us-east-1": { - "description": "US East (N. Virginia)" - }, - "us-east-2": { - "description": "US East (Ohio)" - }, - "us-west-1": { - "description": "US West (N. California)" - }, - "us-west-2": { - "description": "US West (Oregon)" - } - }, - "services": { - "acm": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "apigateway": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "application-autoscaling": { - "defaults": { - "credentialScope": { - "service": "application-autoscaling" - }, - "hostname": "autoscaling.{region}.amazonaws.com", - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "appstream2": { - "defaults": { - "credentialScope": { - "service": "appstream" - }, - "protocols": [ - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "autoscaling": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "batch": { - "endpoints": { - "us-east-1": {} - } - }, - "budgets": { - "endpoints": { - "aws-global": { - "credentialScope": { - "region": "us-east-1" - }, - "hostname": "budgets.amazonaws.com" - } - }, - "isRegionalized": false, - "partitionEndpoint": "aws-global" - }, - "clouddirectory": { - "endpoints": { - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "cloudformation": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "cloudfront": { - "endpoints": { - "aws-global": { - "credentialScope": { - "region": "us-east-1" - }, - "hostname": "cloudfront.amazonaws.com", - "protocols": [ - "http", - "https" - ] - } - }, - "isRegionalized": false, - "partitionEndpoint": "aws-global" - }, - "cloudhsm": { - "endpoints": { - "ap-northeast-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "cloudsearch": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "cloudtrail": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "codebuild": { - "endpoints": { - "eu-west-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "codecommit": { - "endpoints": { - "eu-west-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "codedeploy": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "codepipeline": { - "endpoints": { - "ap-northeast-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "cognito-identity": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "cognito-idp": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "cognito-sync": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "config": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "cur": { - "endpoints": { - "us-east-1": {} - } - }, - "data.iot": { - "defaults": { - "credentialScope": { - "service": "iotdata" - }, - "protocols": [ - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "datapipeline": { - "endpoints": { - "ap-northeast-1": {}, - "ap-southeast-2": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "devicefarm": { - "endpoints": { - "us-west-2": {} - } - }, - "directconnect": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "discovery": { - "endpoints": { - "us-west-2": {} - } - }, - "dms": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "ds": { - "endpoints": { - "ap-northeast-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "dynamodb": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "local": { - "credentialScope": { - "region": "us-east-1" - }, - "hostname": "localhost:8000", - "protocols": [ - "http" - ] - }, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "ec2": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "ecr": { - "endpoints": { - "ap-northeast-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "ecs": { - "endpoints": { - "ap-northeast-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "elasticache": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "elasticbeanstalk": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "elasticfilesystem": { - "endpoints": { - "eu-west-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "elasticloadbalancing": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "elasticmapreduce": { - "defaults": { - "protocols": [ - "http", - "https" - ], - "sslCommonName": "{region}.{service}.{dnsSuffix}" - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": { - "sslCommonName": "{service}.{region}.{dnsSuffix}" - }, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": { - "sslCommonName": "{service}.{region}.{dnsSuffix}" - }, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "elastictranscoder": { - "endpoints": { - "ap-northeast-1": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "email": { - "endpoints": { - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "es": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "events": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "firehose": { - "endpoints": { - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "gamelift": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "glacier": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "health": { - "endpoints": { - "us-east-1": {} - } - }, - "iam": { - "endpoints": { - "aws-global": { - "credentialScope": { - "region": "us-east-1" - }, - "hostname": "iam.amazonaws.com" - } - }, - "isRegionalized": false, - "partitionEndpoint": "aws-global" - }, - "importexport": { - "endpoints": { - "aws-global": { - "credentialScope": { - "region": "us-east-1", - "service": "IngestionService" - }, - "hostname": "importexport.amazonaws.com", - "signatureVersions": [ - "v2", - "v4" - ] - } - }, - "isRegionalized": false, - "partitionEndpoint": "aws-global" - }, - "inspector": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-2": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "iot": { - "defaults": { - "credentialScope": { - "service": "execute-api" - } - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "kinesis": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "kinesisanalytics": { - "endpoints": { - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "kms": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "lambda": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "lightsail": { - "endpoints": { - "us-east-1": {} - } - }, - "logs": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "machinelearning": { - "endpoints": { - "eu-west-1": {}, - "us-east-1": {} - } - }, - "marketplacecommerceanalytics": { - "endpoints": { - "us-east-1": {} - } - }, - "metering.marketplace": { - "defaults": { - "credentialScope": { - "service": "aws-marketplace" - } - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "mobileanalytics": { - "endpoints": { - "us-east-1": {} - } - }, - "monitoring": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "mturk-requester": { - "endpoints": { - "sandbox": { - "hostname": "mturk-requester-sandbox.us-east-1.amazonaws.com" - }, - "us-east-1": {} - }, - "isRegionalized": false - }, - "opsworks": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "opsworks-cm": { - "endpoints": { - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "organizations": { - "endpoints": { - "aws-global": { - "credentialScope": { - "region": "us-east-1" - }, - "hostname": "organizations.us-east-1.amazonaws.com" - } - }, - "isRegionalized": false, - "partitionEndpoint": "aws-global" - }, - "pinpoint": { - "defaults": { - "credentialScope": { - "service": "mobiletargeting" - } - }, - "endpoints": { - "us-east-1": {} - } - }, - "polly": { - "endpoints": { - "eu-west-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "rds": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": { - "sslCommonName": "{service}.{dnsSuffix}" - }, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "redshift": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "rekognition": { - "endpoints": { - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "route53": { - "endpoints": { - "aws-global": { - "credentialScope": { - "region": "us-east-1" - }, - "hostname": "route53.amazonaws.com" - } - }, - "isRegionalized": false, - "partitionEndpoint": "aws-global" - }, - "route53domains": { - "endpoints": { - "us-east-1": {} - } - }, - "runtime.lex": { - "defaults": { - "credentialScope": { - "service": "lex" - } - }, - "endpoints": { - "us-east-1": {} - } - }, - "s3": { - "defaults": { - "protocols": [ - "http", - "https" - ], - "signatureVersions": [ - "s3v4" - ] - }, - "endpoints": { - "ap-northeast-1": { - "hostname": "s3-ap-northeast-1.amazonaws.com", - "signatureVersions": [ - "s3", - "s3v4" - ] - }, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": { - "hostname": "s3-ap-southeast-1.amazonaws.com", - "signatureVersions": [ - "s3", - "s3v4" - ] - }, - "ap-southeast-2": { - "hostname": "s3-ap-southeast-2.amazonaws.com", - "signatureVersions": [ - "s3", - "s3v4" - ] - }, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": { - "hostname": "s3-eu-west-1.amazonaws.com", - "signatureVersions": [ - "s3", - "s3v4" - ] - }, - "eu-west-2": {}, - "s3-external-1": { - "credentialScope": { - "region": "us-east-1" - }, - "hostname": "s3-external-1.amazonaws.com", - "signatureVersions": [ - "s3", - "s3v4" - ] - }, - "sa-east-1": { - "hostname": "s3-sa-east-1.amazonaws.com", - "signatureVersions": [ - "s3", - "s3v4" - ] - }, - "us-east-1": { - "hostname": "s3.amazonaws.com", - "signatureVersions": [ - "s3", - "s3v4" - ] - }, - "us-east-2": {}, - "us-west-1": { - "hostname": "s3-us-west-1.amazonaws.com", - "signatureVersions": [ - "s3", - "s3v4" - ] - }, - "us-west-2": { - "hostname": "s3-us-west-2.amazonaws.com", - "signatureVersions": [ - "s3", - "s3v4" - ] - } - }, - "isRegionalized": true, - "partitionEndpoint": "us-east-1" - }, - "sdb": { - "defaults": { - "protocols": [ - "http", - "https" - ], - "signatureVersions": [ - "v2" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-west-1": {}, - "sa-east-1": {}, - "us-east-1": { - "hostname": "sdb.amazonaws.com" - }, - "us-west-1": {}, - "us-west-2": {} - } - }, - "servicecatalog": { - "endpoints": { - "ap-northeast-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "shield": { - "defaults": { - "protocols": [ - "https" - ], - "sslCommonName": "Shield.us-east-1.amazonaws.com" - }, - "endpoints": { - "us-east-1": {} - }, - "isRegionalized": false - }, - "sms": { - "endpoints": { - "ap-southeast-2": {}, - "eu-west-1": {}, - "us-east-1": {} - } - }, - "snowball": { - "endpoints": { - "ap-south-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "sns": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "sqs": { - "defaults": { - "protocols": [ - "http", - "https" - ], - "sslCommonName": "{region}.queue.{dnsSuffix}" - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": { - "sslCommonName": "queue.{dnsSuffix}" - }, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "ssm": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "states": { - "endpoints": { - "ap-northeast-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-2": {} - } - }, - "storagegateway": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "streams.dynamodb": { - "defaults": { - "credentialScope": { - "service": "dynamodb" - }, - "protocols": [ - "http", - "http", - "https", - "https" - ] - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "local": { - "credentialScope": { - "region": "us-east-1" - }, - "hostname": "localhost:8000", - "protocols": [ - "http" - ] - }, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "sts": { - "defaults": { - "credentialScope": { - "region": "us-east-1" - }, - "hostname": "sts.amazonaws.com" - }, - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": { - "credentialScope": { - "region": "ap-northeast-2" - }, - "hostname": "sts.ap-northeast-2.amazonaws.com" - }, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "aws-global": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - }, - "partitionEndpoint": "aws-global" - }, - "support": { - "endpoints": { - "us-east-1": {} - } - }, - "swf": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - }, - "waf": { - "endpoints": { - "aws-global": { - "credentialScope": { - "region": "us-east-1" - }, - "hostname": "waf.amazonaws.com" - } - }, - "isRegionalized": false, - "partitionEndpoint": "aws-global" - }, - "waf-regional": { - "endpoints": { - "ap-northeast-1": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "workdocs": { - "endpoints": { - "ap-northeast-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "workspaces": { - "endpoints": { - "ap-northeast-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "us-east-1": {}, - "us-west-2": {} - } - }, - "xray": { - "endpoints": { - "ap-northeast-1": {}, - "ap-northeast-2": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "eu-central-1": {}, - "eu-west-1": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {} - } - } - } - }, - { - "defaults": { - "hostname": "{service}.{region}.{dnsSuffix}", - "protocols": [ - "https" - ], - "signatureVersions": [ - "v4" - ] - }, - "dnsSuffix": "amazonaws.com.cn", - "partition": "aws-cn", - "partitionName": "AWS China", - "regionRegex": "^cn\\-\\w+\\-\\d+$", - "regions": { - "cn-north-1": { - "description": "China (Beijing)" - } - }, - "services": { - "autoscaling": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "cn-north-1": {} - } - }, - "cloudformation": { - "endpoints": { - "cn-north-1": {} - } - }, - "cloudtrail": { - "endpoints": { - "cn-north-1": {} - } - }, - "config": { - "endpoints": { - "cn-north-1": {} - } - }, - "directconnect": { - "endpoints": { - "cn-north-1": {} - } - }, - "dynamodb": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "cn-north-1": {} - } - }, - "ec2": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "cn-north-1": {} - } - }, - "elasticache": { - "endpoints": { - "cn-north-1": {} - } - }, - "elasticbeanstalk": { - "endpoints": { - "cn-north-1": {} - } - }, - "elasticloadbalancing": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "cn-north-1": {} - } - }, - "elasticmapreduce": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "cn-north-1": {} - } - }, - "events": { - "endpoints": { - "cn-north-1": {} - } - }, - "glacier": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "cn-north-1": {} - } - }, - "iam": { - "endpoints": { - "aws-cn-global": { - "credentialScope": { - "region": "cn-north-1" - }, - "hostname": "iam.cn-north-1.amazonaws.com.cn" - } - }, - "isRegionalized": false, - "partitionEndpoint": "aws-cn-global" - }, - "kinesis": { - "endpoints": { - "cn-north-1": {} - } - }, - "logs": { - "endpoints": { - "cn-north-1": {} - } - }, - "monitoring": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "cn-north-1": {} - } - }, - "rds": { - "endpoints": { - "cn-north-1": {} - } - }, - "redshift": { - "endpoints": { - "cn-north-1": {} - } - }, - "s3": { - "defaults": { - "protocols": [ - "http", - "https" - ], - "signatureVersions": [ - "s3v4" - ] - }, - "endpoints": { - "cn-north-1": {} - } - }, - "sns": { - "defaults": { - "protocols": [ - "http", - "https" - ] - }, - "endpoints": { - "cn-north-1": {} - } - }, - "sqs": { - "defaults": { - "protocols": [ - "http", - "https" - ], - "sslCommonName": "{region}.queue.{dnsSuffix}" - }, - "endpoints": { - "cn-north-1": {} - } - }, - "storagegateway": { - "endpoints": { - "cn-north-1": {} - } - }, - "streams.dynamodb": { - "defaults": { - "credentialScope": { - "service": "dynamodb" - }, - "protocols": [ - "http", - "http", - "https", - "https" - ] - }, - "endpoints": { - "cn-north-1": {} - } - }, - "sts": { - "endpoints": { - "cn-north-1": {} - } - }, - "swf": { - "endpoints": { - "cn-north-1": {} - } - } - } - }, - { - "defaults": { - "hostname": "{service}.{region}.{dnsSuffix}", - "protocols": [ - "https" - ], - "signatureVersions": [ - "v4" - ] - }, - "dnsSuffix": "amazonaws.com", - "partition": "aws-us-gov", - "partitionName": "AWS GovCloud (US)", - "regionRegex": "^us\\-gov\\-\\w+\\-\\d+$", - "regions": { - "us-gov-west-1": { - "description": "AWS GovCloud (US)" - } - }, - "services": { - "autoscaling": { - "endpoints": { - "us-gov-west-1": { - "protocols": [ - "http", - "https" - ] - } - } - }, - "cloudformation": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "cloudhsm": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "cloudtrail": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "config": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "directconnect": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "dynamodb": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "ec2": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "elasticache": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "elasticloadbalancing": { - "endpoints": { - "us-gov-west-1": { - "protocols": [ - "http", - "https" - ] - } - } - }, - "elasticmapreduce": { - "endpoints": { - "us-gov-west-1": { - "protocols": [ - "http", - "https" - ] - } - } - }, - "glacier": { - "endpoints": { - "us-gov-west-1": { - "protocols": [ - "http", - "https" - ] - } - } - }, - "iam": { - "endpoints": { - "aws-us-gov-global": { - "credentialScope": { - "region": "us-gov-west-1" - }, - "hostname": "iam.us-gov.amazonaws.com" - } - }, - "isRegionalized": false, - "partitionEndpoint": "aws-us-gov-global" - }, - "kinesis": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "kms": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "logs": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "monitoring": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "rds": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "redshift": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "s3": { - "defaults": { - "signatureVersions": [ - "s3", - "s3v4" - ] - }, - "endpoints": { - "fips-us-gov-west-1": { - "credentialScope": { - "region": "us-gov-west-1" - }, - "hostname": "s3-fips-us-gov-west-1.amazonaws.com" - }, - "us-gov-west-1": { - "hostname": "s3-us-gov-west-1.amazonaws.com", - "protocols": [ - "http", - "https" - ] - } - } - }, - "snowball": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "sns": { - "endpoints": { - "us-gov-west-1": { - "protocols": [ - "http", - "https" - ] - } - } - }, - "sqs": { - "endpoints": { - "us-gov-west-1": { - "protocols": [ - "http", - "https" - ], - "sslCommonName": "{region}.queue.{dnsSuffix}" - } - } - }, - "streams.dynamodb": { - "defaults": { - "credentialScope": { - "service": "dynamodb" - } - }, - "endpoints": { - "us-gov-west-1": {} - } - }, - "sts": { - "endpoints": { - "us-gov-west-1": {} - } - }, - "swf": { - "endpoints": { - "us-gov-west-1": {} - } - } - } - } - ], - "version": 3 -} diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json new file mode 100644 index 00000000000..555397b6f1a --- /dev/null +++ b/models/endpoints/endpoints.json @@ -0,0 +1,2157 @@ +{ + "partitions" : [ { + "defaults" : { + "hostname" : "{service}.{region}.{dnsSuffix}", + "protocols" : [ "https" ], + "signatureVersions" : [ "v4" ] + }, + "dnsSuffix" : "amazonaws.com", + "partition" : "aws", + "partitionName" : "AWS Standard", + "regionRegex" : "^(us|eu|ap|sa|ca)\\-\\w+\\-\\d+$", + "regions" : { + "ap-northeast-1" : { + "description" : "Asia Pacific (Tokyo)" + }, + "ap-northeast-2" : { + "description" : "Asia Pacific (Seoul)" + }, + "ap-south-1" : { + "description" : "Asia Pacific (Mumbai)" + }, + "ap-southeast-1" : { + "description" : "Asia Pacific (Singapore)" + }, + "ap-southeast-2" : { + "description" : "Asia Pacific (Sydney)" + }, + "ca-central-1" : { + "description" : "Canada (Central)" + }, + "eu-central-1" : { + "description" : "EU (Frankfurt)" + }, + "eu-west-1" : { + "description" : "EU (Ireland)" + }, + "eu-west-2" : { + "description" : "EU (London)" + }, + "sa-east-1" : { + "description" : "South America (Sao Paulo)" + }, + "us-east-1" : { + "description" : "US East (N. Virginia)" + }, + "us-east-2" : { + "description" : "US East (Ohio)" + }, + "us-west-1" : { + "description" : "US West (N. California)" + }, + "us-west-2" : { + "description" : "US West (Oregon)" + } + }, + "services" : { + "acm" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "api.pricing" : { + "defaults" : { + "credentialScope" : { + "service" : "pricing" + } + }, + "endpoints" : { + "ap-south-1" : { }, + "us-east-1" : { } + } + }, + "apigateway" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "application-autoscaling" : { + "defaults" : { + "credentialScope" : { + "service" : "application-autoscaling" + }, + "hostname" : "autoscaling.{region}.amazonaws.com", + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "appstream2" : { + "defaults" : { + "credentialScope" : { + "service" : "appstream" + }, + "protocols" : [ "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, + "athena" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "autoscaling" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "batch" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "budgets" : { + "endpoints" : { + "aws-global" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "budgets.amazonaws.com" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-global" + }, + "clouddirectory" : { + "endpoints" : { + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "cloudformation" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "cloudfront" : { + "endpoints" : { + "aws-global" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "cloudfront.amazonaws.com", + "protocols" : [ "http", "https" ] + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-global" + }, + "cloudhsm" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "cloudhsmv2" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "cloudsearch" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "cloudtrail" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "codebuild" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "codecommit" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "codedeploy" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "codepipeline" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "codestar" : { + "endpoints" : { + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "cognito-identity" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "cognito-idp" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "cognito-sync" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "config" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "cur" : { + "endpoints" : { + "us-east-1" : { } + } + }, + "data.iot" : { + "defaults" : { + "credentialScope" : { + "service" : "iotdata" + }, + "protocols" : [ "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, + "datapipeline" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-2" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, + "dax" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-south-1" : { }, + "eu-west-1" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "devicefarm" : { + "endpoints" : { + "us-west-2" : { } + } + }, + "directconnect" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "discovery" : { + "endpoints" : { + "us-west-2" : { } + } + }, + "dms" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "ds" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "dynamodb" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "local" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "localhost:8000", + "protocols" : [ "http" ] + }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "ec2" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "ecr" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "ecs" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "elasticache" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "elasticbeanstalk" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "elasticfilesystem" : { + "endpoints" : { + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "elasticloadbalancing" : { + "defaults" : { + "protocols" : [ "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "elasticmapreduce" : { + "defaults" : { + "protocols" : [ "http", "https" ], + "sslCommonName" : "{region}.{service}.{dnsSuffix}" + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { + "sslCommonName" : "{service}.{region}.{dnsSuffix}" + }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { + "sslCommonName" : "{service}.{region}.{dnsSuffix}" + }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "elastictranscoder" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "email" : { + "endpoints" : { + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, + "entitlement.marketplace" : { + "defaults" : { + "credentialScope" : { + "service" : "aws-marketplace" + } + }, + "endpoints" : { + "us-east-1" : { } + } + }, + "es" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "events" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "firehose" : { + "endpoints" : { + "ap-northeast-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "gamelift" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "glacier" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "glue" : { + "endpoints" : { + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "greengrass" : { + "defaults" : { + "protocols" : [ "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + }, + "isRegionalized" : true + }, + "health" : { + "endpoints" : { + "us-east-1" : { } + } + }, + "iam" : { + "endpoints" : { + "aws-global" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "iam.amazonaws.com" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-global" + }, + "importexport" : { + "endpoints" : { + "aws-global" : { + "credentialScope" : { + "region" : "us-east-1", + "service" : "IngestionService" + }, + "hostname" : "importexport.amazonaws.com", + "signatureVersions" : [ "v2", "v4" ] + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-global" + }, + "inspector" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-2" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "iot" : { + "defaults" : { + "credentialScope" : { + "service" : "execute-api" + } + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "kinesis" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "kinesisanalytics" : { + "endpoints" : { + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, + "kms" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "lambda" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "lightsail" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "logs" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "machinelearning" : { + "endpoints" : { + "eu-west-1" : { }, + "us-east-1" : { } + } + }, + "marketplacecommerceanalytics" : { + "endpoints" : { + "us-east-1" : { } + } + }, + "metering.marketplace" : { + "defaults" : { + "credentialScope" : { + "service" : "aws-marketplace" + } + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "mgh" : { + "endpoints" : { + "us-west-2" : { } + } + }, + "mobileanalytics" : { + "endpoints" : { + "us-east-1" : { } + } + }, + "models.lex" : { + "defaults" : { + "credentialScope" : { + "service" : "lex" + } + }, + "endpoints" : { + "us-east-1" : { } + } + }, + "monitoring" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "mturk-requester" : { + "endpoints" : { + "sandbox" : { + "hostname" : "mturk-requester-sandbox.us-east-1.amazonaws.com" + }, + "us-east-1" : { } + }, + "isRegionalized" : false + }, + "opsworks" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "opsworks-cm" : { + "endpoints" : { + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, + "organizations" : { + "endpoints" : { + "aws-global" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "organizations.us-east-1.amazonaws.com" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-global" + }, + "pinpoint" : { + "defaults" : { + "credentialScope" : { + "service" : "mobiletargeting" + } + }, + "endpoints" : { + "us-east-1" : { } + } + }, + "polly" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "rds" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { + "sslCommonName" : "{service}.{dnsSuffix}" + }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "redshift" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "rekognition" : { + "endpoints" : { + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, + "route53" : { + "endpoints" : { + "aws-global" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "route53.amazonaws.com" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-global" + }, + "route53domains" : { + "endpoints" : { + "us-east-1" : { } + } + }, + "runtime.lex" : { + "defaults" : { + "credentialScope" : { + "service" : "lex" + } + }, + "endpoints" : { + "eu-west-1" : { }, + "us-east-1" : { } + } + }, + "s3" : { + "defaults" : { + "protocols" : [ "http", "https" ], + "signatureVersions" : [ "s3v4" ] + }, + "endpoints" : { + "ap-northeast-1" : { + "hostname" : "s3.ap-northeast-1.amazonaws.com", + "signatureVersions" : [ "s3", "s3v4" ] + }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { + "hostname" : "s3.ap-southeast-1.amazonaws.com", + "signatureVersions" : [ "s3", "s3v4" ] + }, + "ap-southeast-2" : { + "hostname" : "s3.ap-southeast-2.amazonaws.com", + "signatureVersions" : [ "s3", "s3v4" ] + }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { + "hostname" : "s3.eu-west-1.amazonaws.com", + "signatureVersions" : [ "s3", "s3v4" ] + }, + "eu-west-2" : { }, + "s3-external-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "s3-external-1.amazonaws.com", + "signatureVersions" : [ "s3", "s3v4" ] + }, + "sa-east-1" : { + "hostname" : "s3.sa-east-1.amazonaws.com", + "signatureVersions" : [ "s3", "s3v4" ] + }, + "us-east-1" : { + "hostname" : "s3.amazonaws.com", + "signatureVersions" : [ "s3", "s3v4" ] + }, + "us-east-2" : { }, + "us-west-1" : { + "hostname" : "s3.us-west-1.amazonaws.com", + "signatureVersions" : [ "s3", "s3v4" ] + }, + "us-west-2" : { + "hostname" : "s3.us-west-2.amazonaws.com", + "signatureVersions" : [ "s3", "s3v4" ] + } + }, + "isRegionalized" : true, + "partitionEndpoint" : "us-east-1" + }, + "sdb" : { + "defaults" : { + "protocols" : [ "http", "https" ], + "signatureVersions" : [ "v2" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-west-1" : { }, + "sa-east-1" : { }, + "us-east-1" : { + "hostname" : "sdb.amazonaws.com" + }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "servicecatalog" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "shield" : { + "defaults" : { + "protocols" : [ "https" ], + "sslCommonName" : "Shield.us-east-1.amazonaws.com" + }, + "endpoints" : { + "us-east-1" : { } + }, + "isRegionalized" : false + }, + "sms" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "snowball" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-south-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "sns" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "sqs" : { + "defaults" : { + "protocols" : [ "http", "https" ], + "sslCommonName" : "{region}.queue.{dnsSuffix}" + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { + "sslCommonName" : "queue.{dnsSuffix}" + }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "ssm" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "states" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, + "storagegateway" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "streams.dynamodb" : { + "defaults" : { + "credentialScope" : { + "service" : "dynamodb" + }, + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "local" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "localhost:8000", + "protocols" : [ "http" ] + }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "sts" : { + "defaults" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "sts.amazonaws.com" + }, + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { + "credentialScope" : { + "region" : "ap-northeast-2" + }, + "hostname" : "sts.ap-northeast-2.amazonaws.com" + }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "aws-global" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-1-fips" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "sts-fips.us-east-1.amazonaws.com" + }, + "us-east-2" : { }, + "us-east-2-fips" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "sts-fips.us-east-2.amazonaws.com" + }, + "us-west-1" : { }, + "us-west-1-fips" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "hostname" : "sts-fips.us-west-1.amazonaws.com" + }, + "us-west-2" : { }, + "us-west-2-fips" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "sts-fips.us-west-2.amazonaws.com" + } + }, + "partitionEndpoint" : "aws-global" + }, + "support" : { + "endpoints" : { + "us-east-1" : { } + } + }, + "swf" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "tagging" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "waf" : { + "endpoints" : { + "aws-global" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "waf.amazonaws.com" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-global" + }, + "waf-regional" : { + "endpoints" : { + "ap-northeast-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, + "workdocs" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, + "workspaces" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, + "xray" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + } + } + }, { + "defaults" : { + "hostname" : "{service}.{region}.{dnsSuffix}", + "protocols" : [ "https" ], + "signatureVersions" : [ "v4" ] + }, + "dnsSuffix" : "amazonaws.com.cn", + "partition" : "aws-cn", + "partitionName" : "AWS China", + "regionRegex" : "^cn\\-\\w+\\-\\d+$", + "regions" : { + "cn-north-1" : { + "description" : "China (Beijing)" + } + }, + "services" : { + "apigateway" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "application-autoscaling" : { + "defaults" : { + "credentialScope" : { + "service" : "application-autoscaling" + }, + "hostname" : "autoscaling.{region}.amazonaws.com", + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "autoscaling" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "cloudformation" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "cloudtrail" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "codedeploy" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "cognito-identity" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "config" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "directconnect" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "dynamodb" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "ec2" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "ecr" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "ecs" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "elasticache" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "elasticbeanstalk" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "elasticloadbalancing" : { + "defaults" : { + "protocols" : [ "https" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "elasticmapreduce" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "es" : { }, + "events" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "glacier" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "iam" : { + "endpoints" : { + "aws-cn-global" : { + "credentialScope" : { + "region" : "cn-north-1" + }, + "hostname" : "iam.cn-north-1.amazonaws.com.cn" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-cn-global" + }, + "iot" : { + "defaults" : { + "credentialScope" : { + "service" : "execute-api" + } + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "kinesis" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "lambda" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "logs" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "monitoring" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "rds" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "redshift" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "s3" : { + "defaults" : { + "protocols" : [ "http", "https" ], + "signatureVersions" : [ "s3v4" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "snowball" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "sns" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "sqs" : { + "defaults" : { + "protocols" : [ "http", "https" ], + "sslCommonName" : "{region}.queue.{dnsSuffix}" + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "ssm" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "storagegateway" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "streams.dynamodb" : { + "defaults" : { + "credentialScope" : { + "service" : "dynamodb" + }, + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "cn-north-1" : { } + } + }, + "sts" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "swf" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "tagging" : { + "endpoints" : { + "cn-north-1" : { } + } + } + } + }, { + "defaults" : { + "hostname" : "{service}.{region}.{dnsSuffix}", + "protocols" : [ "https" ], + "signatureVersions" : [ "v4" ] + }, + "dnsSuffix" : "amazonaws.com", + "partition" : "aws-us-gov", + "partitionName" : "AWS GovCloud (US)", + "regionRegex" : "^us\\-gov\\-\\w+\\-\\d+$", + "regions" : { + "us-gov-west-1" : { + "description" : "AWS GovCloud (US)" + } + }, + "services" : { + "acm" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "apigateway" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "autoscaling" : { + "endpoints" : { + "us-gov-west-1" : { + "protocols" : [ "http", "https" ] + } + } + }, + "cloudformation" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "cloudhsm" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "cloudtrail" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "codedeploy" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "config" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "directconnect" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "dms" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "dynamodb" : { + "endpoints" : { + "us-gov-west-1" : { }, + "us-gov-west-1-fips" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "dynamodb.us-gov-west-1.amazonaws.com" + } + } + }, + "ec2" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "elasticache" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "elasticbeanstalk" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "elasticloadbalancing" : { + "endpoints" : { + "us-gov-west-1" : { + "protocols" : [ "http", "https" ] + } + } + }, + "elasticmapreduce" : { + "endpoints" : { + "us-gov-west-1" : { + "protocols" : [ "http", "https" ] + } + } + }, + "events" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "glacier" : { + "endpoints" : { + "us-gov-west-1" : { + "protocols" : [ "http", "https" ] + } + } + }, + "iam" : { + "endpoints" : { + "aws-us-gov-global" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "iam.us-gov.amazonaws.com" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-us-gov-global" + }, + "kinesis" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "kms" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "lambda" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "logs" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "monitoring" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "rds" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "redshift" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "rekognition" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "s3" : { + "defaults" : { + "signatureVersions" : [ "s3", "s3v4" ] + }, + "endpoints" : { + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "s3-fips-us-gov-west-1.amazonaws.com" + }, + "us-gov-west-1" : { + "hostname" : "s3.us-gov-west-1.amazonaws.com", + "protocols" : [ "http", "https" ] + } + } + }, + "sms" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "snowball" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "sns" : { + "endpoints" : { + "us-gov-west-1" : { + "protocols" : [ "http", "https" ] + } + } + }, + "sqs" : { + "endpoints" : { + "us-gov-west-1" : { + "protocols" : [ "http", "https" ], + "sslCommonName" : "{region}.queue.{dnsSuffix}" + } + } + }, + "ssm" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "streams.dynamodb" : { + "defaults" : { + "credentialScope" : { + "service" : "dynamodb" + } + }, + "endpoints" : { + "us-gov-west-1" : { }, + "us-gov-west-1-fips" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "dynamodb.us-gov-west-1.amazonaws.com" + } + } + }, + "sts" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, + "swf" : { + "endpoints" : { + "us-gov-west-1" : { } + } + } + } + } ], + "version" : 3 +} \ No newline at end of file diff --git a/module-exporter/publish-module.sh b/module-exporter/publish-module.sh index 50190fcc9bc..10778c74337 100644 --- a/module-exporter/publish-module.sh +++ b/module-exporter/publish-module.sh @@ -34,6 +34,7 @@ for D in $(find $SOURCE_PATH -maxdepth 1 -type d); do cd $D if [ -d "$D/.git" ]; then echo "Enter in $D" + swift package update GIT_STATUS_R=`git status` if [[ $GIT_STATUS_R == *"nothing to commit"* ]]; then @@ -43,7 +44,6 @@ for D in $(find $SOURCE_PATH -maxdepth 1 -type d); do fi echo "swift build start....." - swift package update swift build echo "swift build done!" echo ""